From 102d81995a47bbe688b6da6cfcc1fa000045368e Mon Sep 17 00:00:00 2001 From: Graham Steffaniak Date: Thu, 17 Aug 2023 17:58:31 -0500 Subject: [PATCH] updated --- CHANGELOG.md | 5 +- backend/go.mod | 24 +- backend/go.sum | 39 +- .../github.com/andybalholm/brotli/LICENSE | 19 - .../github.com/andybalholm/brotli/README.md | 7 - .../andybalholm/brotli/backward_references.go | 185 - .../brotli/backward_references_hq.go | 808 - .../github.com/andybalholm/brotli/bit_cost.go | 436 - .../andybalholm/brotli/bit_reader.go | 311 - .../andybalholm/brotli/block_splitter.go | 144 - .../brotli/block_splitter_command.go | 437 - .../brotli/block_splitter_distance.go | 436 - .../brotli/block_splitter_literal.go | 436 - .../andybalholm/brotli/brotli_bit_stream.go | 1325 - .../github.com/andybalholm/brotli/cluster.go | 30 - .../andybalholm/brotli/cluster_command.go | 332 - .../andybalholm/brotli/cluster_distance.go | 332 - .../andybalholm/brotli/cluster_literal.go | 332 - .../github.com/andybalholm/brotli/command.go | 254 - .../andybalholm/brotli/compress_fragment.go | 693 - .../brotli/compress_fragment_two_pass.go | 600 - .../andybalholm/brotli/constants.go | 77 - .../github.com/andybalholm/brotli/context.go | 2176 - .../github.com/andybalholm/brotli/decode.go | 2695 - .../andybalholm/brotli/dictionary.go | 122890 --------------- .../andybalholm/brotli/dictionary_hash.go | 32779 ---- .../github.com/andybalholm/brotli/encode.go | 1167 - .../andybalholm/brotli/encoder_dict.go | 22 - .../andybalholm/brotli/entropy_encode.go | 600 - .../brotli/entropy_encode_static.go | 4396 - .../github.com/andybalholm/brotli/fast_log.go | 299 - .../andybalholm/brotli/find_match_length.go | 45 - .../github.com/andybalholm/brotli/h10.go | 299 - .../github.com/andybalholm/brotli/h5.go | 223 - .../github.com/andybalholm/brotli/h6.go | 225 - .../github.com/andybalholm/brotli/hash.go | 349 - .../andybalholm/brotli/hash_composite.go | 99 - .../brotli/hash_forgetful_chain.go | 262 - .../brotli/hash_longest_match_quickly.go | 226 - .../andybalholm/brotli/hash_rolling.go | 178 - .../andybalholm/brotli/histogram.go | 226 - .../github.com/andybalholm/brotli/http.go | 192 - .../github.com/andybalholm/brotli/huffman.go | 662 - .../andybalholm/brotli/literal_cost.go | 182 - .../github.com/andybalholm/brotli/memory.go | 66 - .../andybalholm/brotli/metablock.go | 583 - .../andybalholm/brotli/metablock_command.go | 171 - .../andybalholm/brotli/metablock_distance.go | 171 - .../andybalholm/brotli/metablock_literal.go | 171 - .../github.com/andybalholm/brotli/params.go | 37 - .../github.com/andybalholm/brotli/platform.go | 103 - .../github.com/andybalholm/brotli/prefix.go | 33 - .../andybalholm/brotli/prefix_dec.go | 723 - .../github.com/andybalholm/brotli/quality.go | 205 - .../github.com/andybalholm/brotli/reader.go | 100 - .../andybalholm/brotli/ringbuffer.go | 140 - .../github.com/andybalholm/brotli/state.go | 295 - .../andybalholm/brotli/static_dict.go | 667 - .../andybalholm/brotli/static_dict_lut.go | 75094 --------- .../andybalholm/brotli/symbol_list.go | 22 - .../andybalholm/brotli/transform.go | 641 - .../andybalholm/brotli/utf8_util.go | 74 - .../github.com/andybalholm/brotli/util.go | 7 - .../andybalholm/brotli/write_bits.go | 94 - .../github.com/andybalholm/brotli/writer.go | 118 - .../github.com/asdine/storm/v3/.gitignore | 32 - .../github.com/asdine/storm/v3/.travis.yml | 19 - .../vendor/github.com/asdine/storm/v3/LICENSE | 21 - .../github.com/asdine/storm/v3/README.md | 643 - .../github.com/asdine/storm/v3/bucket.go | 47 - .../asdine/storm/v3/codec/.gitignore | 1 - .../github.com/asdine/storm/v3/codec/codec.go | 11 - .../asdine/storm/v3/codec/json/json.go | 25 - .../github.com/asdine/storm/v3/errors.go | 51 - .../github.com/asdine/storm/v3/extract.go | 226 - .../github.com/asdine/storm/v3/finder.go | 499 - .../asdine/storm/v3/index/errors.go | 14 - .../asdine/storm/v3/index/indexes.go | 14 - .../github.com/asdine/storm/v3/index/list.go | 283 - .../asdine/storm/v3/index/options.go | 15 - .../asdine/storm/v3/index/unique.go | 183 - .../asdine/storm/v3/internal/boltdb.go | 121 - .../vendor/github.com/asdine/storm/v3/kv.go | 170 - .../github.com/asdine/storm/v3/metadata.go | 69 - .../vendor/github.com/asdine/storm/v3/node.go | 126 - .../github.com/asdine/storm/v3/options.go | 97 - .../github.com/asdine/storm/v3/q/compare.go | 122 - .../asdine/storm/v3/q/fieldmatcher.go | 67 - .../github.com/asdine/storm/v3/q/regexp.go | 51 - .../github.com/asdine/storm/v3/q/tree.go | 247 - .../github.com/asdine/storm/v3/query.go | 219 - .../vendor/github.com/asdine/storm/v3/scan.go | 105 - .../vendor/github.com/asdine/storm/v3/sink.go | 620 - .../asdine/storm/v3/sink_sorter_swap.go | 23 - .../asdine/storm/v3/sink_sorter_swap_go1.8.go | 21 - .../github.com/asdine/storm/v3/store.go | 425 - .../github.com/asdine/storm/v3/storm.go | 142 - .../github.com/asdine/storm/v3/transaction.go | 52 - .../github.com/asdine/storm/v3/version.go | 4 - .../vendor/github.com/davecgh/go-spew/LICENSE | 15 - .../github.com/davecgh/go-spew/spew/bypass.go | 146 - .../davecgh/go-spew/spew/bypasssafe.go | 39 - .../github.com/davecgh/go-spew/spew/common.go | 341 - .../github.com/davecgh/go-spew/spew/config.go | 306 - .../github.com/davecgh/go-spew/spew/doc.go | 217 - .../github.com/davecgh/go-spew/spew/dump.go | 509 - .../github.com/davecgh/go-spew/spew/format.go | 419 - .../github.com/davecgh/go-spew/spew/spew.go | 148 - .../disintegration/imaging/.travis.yml | 12 - .../github.com/disintegration/imaging/LICENSE | 21 - .../disintegration/imaging/README.md | 226 - .../disintegration/imaging/adjust.go | 248 - .../disintegration/imaging/convolution.go | 148 - .../github.com/disintegration/imaging/doc.go | 7 - .../disintegration/imaging/effects.go | 167 - .../disintegration/imaging/histogram.go | 52 - .../github.com/disintegration/imaging/io.go | 442 - .../disintegration/imaging/resize.go | 590 - .../disintegration/imaging/scanner.go | 285 - .../disintegration/imaging/tools.go | 248 - .../disintegration/imaging/transform.go | 268 - .../disintegration/imaging/utils.go | 167 - .../github.com/dsnet/compress/.travis.yml | 36 - .../github.com/dsnet/compress/LICENSE.md | 24 - .../github.com/dsnet/compress/README.md | 75 - .../vendor/github.com/dsnet/compress/api.go | 74 - .../github.com/dsnet/compress/bzip2/bwt.go | 111 - .../github.com/dsnet/compress/bzip2/common.go | 112 - .../dsnet/compress/bzip2/fuzz_off.go | 14 - .../dsnet/compress/bzip2/fuzz_on.go | 78 - .../compress/bzip2/internal/sais/common.go | 28 - .../compress/bzip2/internal/sais/sais_byte.go | 661 - .../compress/bzip2/internal/sais/sais_int.go | 661 - .../dsnet/compress/bzip2/mtf_rle2.go | 133 - .../github.com/dsnet/compress/bzip2/prefix.go | 375 - .../github.com/dsnet/compress/bzip2/reader.go | 274 - .../github.com/dsnet/compress/bzip2/rle1.go | 103 - .../github.com/dsnet/compress/bzip2/writer.go | 307 - .../dsnet/compress/internal/common.go | 107 - .../dsnet/compress/internal/debug.go | 13 - .../dsnet/compress/internal/errors/errors.go | 120 - .../dsnet/compress/internal/gofuzz.go | 13 - .../dsnet/compress/internal/prefix/debug.go | 160 - .../dsnet/compress/internal/prefix/decoder.go | 136 - .../dsnet/compress/internal/prefix/encoder.go | 66 - .../dsnet/compress/internal/prefix/prefix.go | 400 - .../dsnet/compress/internal/prefix/range.go | 94 - .../dsnet/compress/internal/prefix/reader.go | 335 - .../dsnet/compress/internal/prefix/wrap.go | 146 - .../dsnet/compress/internal/prefix/writer.go | 166 - .../dsnet/compress/internal/release.go | 22 - .../github.com/dsnet/compress/zbench.sh | 12 - .../vendor/github.com/dsnet/compress/zfuzz.sh | 10 - .../vendor/github.com/dsnet/compress/zprof.sh | 54 - .../vendor/github.com/dsnet/compress/ztest.sh | 54 - .../dsoprea/go-exif/v3/.MODULE_ROOT | 0 .../github.com/dsoprea/go-exif/v3/LICENSE | 9 - .../dsoprea/go-exif/v3/common/ifd.go | 651 - .../dsoprea/go-exif/v3/common/parser.go | 280 - .../go-exif/v3/common/testing_common.go | 88 - .../dsoprea/go-exif/v3/common/type.go | 482 - .../dsoprea/go-exif/v3/common/utility.go | 148 - .../go-exif/v3/common/value_context.go | 464 - .../go-exif/v3/common/value_encoder.go | 272 - .../dsoprea/go-exif/v3/data_layer.go | 50 - .../github.com/dsoprea/go-exif/v3/error.go | 14 - .../github.com/dsoprea/go-exif/v3/exif.go | 333 - .../github.com/dsoprea/go-exif/v3/gps.go | 117 - .../dsoprea/go-exif/v3/ifd_builder.go | 1199 - .../dsoprea/go-exif/v3/ifd_builder_encode.go | 532 - .../dsoprea/go-exif/v3/ifd_enumerate.go | 1672 - .../dsoprea/go-exif/v3/ifd_tag_entry.go | 298 - .../github.com/dsoprea/go-exif/v3/package.go | 8 - .../github.com/dsoprea/go-exif/v3/tags.go | 475 - .../dsoprea/go-exif/v3/tags_data.go | 968 - .../dsoprea/go-exif/v3/testing_common.go | 188 - .../dsoprea/go-exif/v3/undefined/README.md | 4 - .../dsoprea/go-exif/v3/undefined/accessor.go | 62 - .../go-exif/v3/undefined/exif_8828_oecf.go | 148 - .../v3/undefined/exif_9000_exif_version.go | 69 - .../exif_9101_components_configuration.go | 124 - .../v3/undefined/exif_927C_maker_note.go | 114 - .../v3/undefined/exif_9286_user_comment.go | 142 - .../undefined/exif_A000_flashpix_version.go | 69 - .../exif_A20C_spatial_frequency_response.go | 160 - .../v3/undefined/exif_A300_file_source.go | 79 - .../v3/undefined/exif_A301_scene_type.go | 76 - .../v3/undefined/exif_A302_cfa_pattern.go | 97 - .../exif_iop_0002_interop_version.go | 69 - .../gps_001B_gps_processing_method.go | 65 - .../gps_001C_gps_area_information.go | 65 - .../go-exif/v3/undefined/registration.go | 42 - .../dsoprea/go-exif/v3/undefined/type.go | 44 - .../github.com/dsoprea/go-exif/v3/utility.go | 237 - .../github.com/dsoprea/go-logging/.travis.yml | 12 - .../github.com/dsoprea/go-logging/LICENSE | 9 - .../github.com/dsoprea/go-logging/README.md | 223 - .../github.com/dsoprea/go-logging/config.go | 246 - .../dsoprea/go-logging/console_adapter.go | 36 - .../github.com/dsoprea/go-logging/log.go | 538 - .../github.com/dsoprea/go-utility/v2/LICENSE | 7 - .../go-utility/v2/filesystem/README.md | 64 - .../go-utility/v2/filesystem/bounceback.go | 273 - .../filesystem/boundedreadwriteseekcloser.go | 95 - .../v2/filesystem/boundedreadwriteseeker.go | 156 - .../v2/filesystem/calculate_seek.go | 52 - .../go-utility/v2/filesystem/common.go | 15 - .../copy_bytes_between_positions.go | 40 - .../go-utility/v2/filesystem/does_exist.go | 19 - .../go-utility/v2/filesystem/graceful_copy.go | 54 - .../go-utility/v2/filesystem/list_files.go | 143 - .../v2/filesystem/progress_wrapper.go | 93 - .../go-utility/v2/filesystem/read_counter.go | 36 - .../v2/filesystem/readseeker_to_readerat.go | 63 - .../v2/filesystem/readwriteseekcloser.go | 29 - .../v2/filesystem/seekable_buffer.go | 146 - .../v2/filesystem/simplefileinfo.go | 69 - .../go-utility/v2/filesystem/utility.go | 17 - .../go-utility/v2/filesystem/write_counter.go | 36 - .../vendor/github.com/flynn/go-shlex/COPYING | 202 - .../vendor/github.com/flynn/go-shlex/Makefile | 21 - .../github.com/flynn/go-shlex/README.md | 2 - .../vendor/github.com/flynn/go-shlex/shlex.go | 457 - .../fsnotify/fsnotify/.editorconfig | 12 - .../fsnotify/fsnotify/.gitattributes | 1 - .../github.com/fsnotify/fsnotify/.gitignore | 6 - .../github.com/fsnotify/fsnotify/.mailmap | 2 - .../github.com/fsnotify/fsnotify/CHANGELOG.md | 470 - .../fsnotify/fsnotify/CONTRIBUTING.md | 26 - .../github.com/fsnotify/fsnotify/LICENSE | 25 - .../github.com/fsnotify/fsnotify/README.md | 161 - .../fsnotify/fsnotify/backend_fen.go | 162 - .../fsnotify/fsnotify/backend_inotify.go | 459 - .../fsnotify/fsnotify/backend_kqueue.go | 707 - .../fsnotify/fsnotify/backend_other.go | 66 - .../fsnotify/fsnotify/backend_windows.go | 746 - .../github.com/fsnotify/fsnotify/fsnotify.go | 81 - .../github.com/fsnotify/fsnotify/mkdoc.zsh | 208 - .../fsnotify/fsnotify/system_bsd.go | 8 - .../fsnotify/fsnotify/system_darwin.go | 9 - .../github.com/go-errors/errors/.travis.yml | 8 - .../github.com/go-errors/errors/LICENSE.MIT | 7 - .../github.com/go-errors/errors/README.md | 82 - .../github.com/go-errors/errors/error.go | 209 - .../github.com/go-errors/errors/error_1_13.go | 32 - .../go-errors/errors/error_backward.go | 58 - .../go-errors/errors/parse_panic.go | 127 - .../github.com/go-errors/errors/stackframe.go | 122 - .../github.com/go-ole/go-ole/.travis.yml | 8 - .../github.com/go-ole/go-ole/ChangeLog.md | 49 - .../vendor/github.com/go-ole/go-ole/LICENSE | 21 - .../vendor/github.com/go-ole/go-ole/README.md | 46 - .../github.com/go-ole/go-ole/appveyor.yml | 54 - .../vendor/github.com/go-ole/go-ole/com.go | 345 - .../github.com/go-ole/go-ole/com_func.go | 175 - .../github.com/go-ole/go-ole/connect.go | 192 - .../github.com/go-ole/go-ole/constants.go | 153 - .../vendor/github.com/go-ole/go-ole/error.go | 51 - .../github.com/go-ole/go-ole/error_func.go | 9 - .../github.com/go-ole/go-ole/error_windows.go | 25 - .../vendor/github.com/go-ole/go-ole/guid.go | 284 - .../go-ole/go-ole/iconnectionpoint.go | 20 - .../go-ole/go-ole/iconnectionpoint_func.go | 22 - .../go-ole/go-ole/iconnectionpoint_windows.go | 44 - .../go-ole/iconnectionpointcontainer.go | 17 - .../go-ole/iconnectionpointcontainer_func.go | 12 - .../iconnectionpointcontainer_windows.go | 26 - .../github.com/go-ole/go-ole/idispatch.go | 94 - .../go-ole/go-ole/idispatch_func.go | 20 - .../go-ole/go-ole/idispatch_windows.go | 203 - .../github.com/go-ole/go-ole/ienumvariant.go | 19 - .../go-ole/go-ole/ienumvariant_func.go | 20 - .../go-ole/go-ole/ienumvariant_windows.go | 64 - .../github.com/go-ole/go-ole/iinspectable.go | 18 - .../go-ole/go-ole/iinspectable_func.go | 16 - .../go-ole/go-ole/iinspectable_windows.go | 73 - .../go-ole/go-ole/iprovideclassinfo.go | 21 - .../go-ole/go-ole/iprovideclassinfo_func.go | 8 - .../go-ole/iprovideclassinfo_windows.go | 22 - .../github.com/go-ole/go-ole/itypeinfo.go | 34 - .../go-ole/go-ole/itypeinfo_func.go | 8 - .../go-ole/go-ole/itypeinfo_windows.go | 22 - .../github.com/go-ole/go-ole/iunknown.go | 57 - .../github.com/go-ole/go-ole/iunknown_func.go | 20 - .../go-ole/go-ole/iunknown_windows.go | 59 - .../vendor/github.com/go-ole/go-ole/ole.go | 190 - .../go-ole/go-ole/oleutil/connection.go | 101 - .../go-ole/go-ole/oleutil/connection_func.go | 11 - .../go-ole/oleutil/connection_windows.go | 59 - .../go-ole/go-ole/oleutil/go-get.go | 7 - .../go-ole/go-ole/oleutil/oleutil.go | 127 - .../github.com/go-ole/go-ole/safearray.go | 27 - .../go-ole/go-ole/safearray_func.go | 212 - .../go-ole/go-ole/safearray_windows.go | 338 - .../go-ole/go-ole/safearrayconversion.go | 140 - .../go-ole/go-ole/safearrayslices.go | 34 - .../github.com/go-ole/go-ole/utility.go | 101 - .../github.com/go-ole/go-ole/variables.go | 16 - .../github.com/go-ole/go-ole/variant.go | 105 - .../github.com/go-ole/go-ole/variant_386.go | 12 - .../github.com/go-ole/go-ole/variant_amd64.go | 13 - .../github.com/go-ole/go-ole/variant_arm.go | 12 - .../github.com/go-ole/go-ole/variant_arm64.go | 13 - .../go-ole/go-ole/variant_date_386.go | 23 - .../go-ole/go-ole/variant_date_amd64.go | 21 - .../go-ole/go-ole/variant_date_arm.go | 23 - .../go-ole/go-ole/variant_date_arm64.go | 23 - .../go-ole/go-ole/variant_ppc64le.go | 13 - .../github.com/go-ole/go-ole/variant_s390x.go | 13 - .../github.com/go-ole/go-ole/vt_string.go | 58 - .../vendor/github.com/go-ole/go-ole/winrt.go | 100 - .../github.com/go-ole/go-ole/winrt_doc.go | 37 - .../github.com/golang-jwt/jwt/v4/.gitignore | 4 - .../github.com/golang-jwt/jwt/v4/LICENSE | 9 - .../golang-jwt/jwt/v4/MIGRATION_GUIDE.md | 22 - .../github.com/golang-jwt/jwt/v4/README.md | 138 - .../github.com/golang-jwt/jwt/v4/SECURITY.md | 19 - .../golang-jwt/jwt/v4/VERSION_HISTORY.md | 135 - .../github.com/golang-jwt/jwt/v4/claims.go | 269 - .../github.com/golang-jwt/jwt/v4/doc.go | 4 - .../github.com/golang-jwt/jwt/v4/ecdsa.go | 142 - .../golang-jwt/jwt/v4/ecdsa_utils.go | 69 - .../github.com/golang-jwt/jwt/v4/ed25519.go | 85 - .../golang-jwt/jwt/v4/ed25519_utils.go | 64 - .../github.com/golang-jwt/jwt/v4/errors.go | 112 - .../github.com/golang-jwt/jwt/v4/hmac.go | 95 - .../golang-jwt/jwt/v4/map_claims.go | 151 - .../github.com/golang-jwt/jwt/v4/none.go | 52 - .../github.com/golang-jwt/jwt/v4/parser.go | 177 - .../golang-jwt/jwt/v4/parser_option.go | 29 - .../golang-jwt/jwt/v4/request/doc.go | 7 - .../golang-jwt/jwt/v4/request/extractor.go | 97 - .../golang-jwt/jwt/v4/request/oauth2.go | 28 - .../golang-jwt/jwt/v4/request/request.go | 70 - .../github.com/golang-jwt/jwt/v4/rsa.go | 101 - .../github.com/golang-jwt/jwt/v4/rsa_pss.go | 143 - .../github.com/golang-jwt/jwt/v4/rsa_utils.go | 105 - .../golang-jwt/jwt/v4/signing_method.go | 46 - .../golang-jwt/jwt/v4/staticcheck.conf | 1 - .../github.com/golang-jwt/jwt/v4/token.go | 143 - .../github.com/golang-jwt/jwt/v4/types.go | 145 - backend/vendor/github.com/golang/geo/LICENSE | 202 - .../vendor/github.com/golang/geo/r1/doc.go | 20 - .../github.com/golang/geo/r1/interval.go | 178 - .../vendor/github.com/golang/geo/r2/doc.go | 20 - .../vendor/github.com/golang/geo/r2/rect.go | 255 - .../vendor/github.com/golang/geo/r3/doc.go | 20 - .../github.com/golang/geo/r3/precisevector.go | 198 - .../vendor/github.com/golang/geo/r3/vector.go | 183 - .../vendor/github.com/golang/geo/s1/angle.go | 120 - .../github.com/golang/geo/s1/chordangle.go | 323 - .../vendor/github.com/golang/geo/s1/doc.go | 20 - .../github.com/golang/geo/s1/interval.go | 465 - .../github.com/golang/geo/s2/bits_go18.go | 54 - .../github.com/golang/geo/s2/bits_go19.go | 40 - .../vendor/github.com/golang/geo/s2/cap.go | 519 - .../vendor/github.com/golang/geo/s2/cell.go | 698 - .../github.com/golang/geo/s2/cell_index.go | 498 - .../vendor/github.com/golang/geo/s2/cellid.go | 944 - .../github.com/golang/geo/s2/cellunion.go | 590 - .../github.com/golang/geo/s2/centroids.go | 133 - .../golang/geo/s2/contains_point_query.go | 190 - .../golang/geo/s2/contains_vertex_query.go | 63 - .../golang/geo/s2/convex_hull_query.go | 258 - .../golang/geo/s2/crossing_edge_query.go | 409 - .../golang/geo/s2/distance_target.go | 149 - .../vendor/github.com/golang/geo/s2/doc.go | 29 - .../github.com/golang/geo/s2/edge_clipping.go | 673 - .../github.com/golang/geo/s2/edge_crosser.go | 226 - .../golang/geo/s2/edge_crossings.go | 396 - .../golang/geo/s2/edge_distances.go | 408 - .../github.com/golang/geo/s2/edge_query.go | 801 - .../golang/geo/s2/edge_tessellator.go | 291 - .../vendor/github.com/golang/geo/s2/encode.go | 224 - .../github.com/golang/geo/s2/interleave.go | 143 - .../vendor/github.com/golang/geo/s2/latlng.go | 101 - .../github.com/golang/geo/s2/lexicon.go | 175 - .../vendor/github.com/golang/geo/s2/loop.go | 1837 - .../github.com/golang/geo/s2/matrix3x3.go | 127 - .../golang/geo/s2/max_distance_targets.go | 306 - .../vendor/github.com/golang/geo/s2/metric.go | 164 - .../golang/geo/s2/min_distance_targets.go | 362 - .../github.com/golang/geo/s2/nthderivative.go | 93 - .../github.com/golang/geo/s2/paddedcell.go | 252 - .../vendor/github.com/golang/geo/s2/point.go | 258 - .../golang/geo/s2/point_measures.go | 149 - .../github.com/golang/geo/s2/point_vector.go | 42 - .../golang/geo/s2/pointcompression.go | 320 - .../github.com/golang/geo/s2/polygon.go | 1213 - .../github.com/golang/geo/s2/polyline.go | 589 - .../golang/geo/s2/polyline_measures.go | 53 - .../github.com/golang/geo/s2/predicates.go | 701 - .../github.com/golang/geo/s2/projections.go | 241 - .../github.com/golang/geo/s2/query_entry.go | 93 - .../github.com/golang/geo/s2/query_options.go | 196 - .../vendor/github.com/golang/geo/s2/rect.go | 713 - .../github.com/golang/geo/s2/rect_bounder.go | 351 - .../vendor/github.com/golang/geo/s2/region.go | 71 - .../github.com/golang/geo/s2/regioncoverer.go | 615 - .../github.com/golang/geo/s2/regionunion.go | 66 - .../vendor/github.com/golang/geo/s2/shape.go | 263 - .../github.com/golang/geo/s2/shapeindex.go | 1524 - .../github.com/golang/geo/s2/shapeutil.go | 228 - .../golang/geo/s2/shapeutil_edge_iterator.go | 72 - .../vendor/github.com/golang/geo/s2/stuv.go | 427 - .../vendor/github.com/golang/geo/s2/util.go | 125 - .../golang/geo/s2/wedge_relations.go | 97 - .../github.com/golang/snappy/.gitignore | 16 - .../vendor/github.com/golang/snappy/AUTHORS | 17 - .../github.com/golang/snappy/CONTRIBUTORS | 39 - .../vendor/github.com/golang/snappy/LICENSE | 27 - .../vendor/github.com/golang/snappy/README | 107 - .../vendor/github.com/golang/snappy/decode.go | 241 - .../github.com/golang/snappy/decode_amd64.s | 490 - .../github.com/golang/snappy/decode_arm64.s | 503 - .../github.com/golang/snappy/decode_asm.go | 16 - .../github.com/golang/snappy/decode_other.go | 116 - .../vendor/github.com/golang/snappy/encode.go | 289 - .../github.com/golang/snappy/encode_amd64.s | 730 - .../github.com/golang/snappy/encode_arm64.s | 729 - .../github.com/golang/snappy/encode_asm.go | 31 - .../github.com/golang/snappy/encode_other.go | 243 - .../vendor/github.com/golang/snappy/snappy.go | 98 - backend/vendor/github.com/gorilla/mux/AUTHORS | 8 - backend/vendor/github.com/gorilla/mux/LICENSE | 27 - .../vendor/github.com/gorilla/mux/README.md | 805 - backend/vendor/github.com/gorilla/mux/doc.go | 305 - .../github.com/gorilla/mux/middleware.go | 74 - backend/vendor/github.com/gorilla/mux/mux.go | 606 - .../vendor/github.com/gorilla/mux/regexp.go | 388 - .../vendor/github.com/gorilla/mux/route.go | 736 - .../github.com/gorilla/mux/test_helpers.go | 19 - .../github.com/gorilla/websocket/.gitignore | 25 - .../github.com/gorilla/websocket/AUTHORS | 9 - .../github.com/gorilla/websocket/LICENSE | 22 - .../github.com/gorilla/websocket/README.md | 39 - .../github.com/gorilla/websocket/client.go | 422 - .../gorilla/websocket/compression.go | 148 - .../github.com/gorilla/websocket/conn.go | 1230 - .../github.com/gorilla/websocket/doc.go | 227 - .../github.com/gorilla/websocket/join.go | 42 - .../github.com/gorilla/websocket/json.go | 60 - .../github.com/gorilla/websocket/mask.go | 55 - .../github.com/gorilla/websocket/mask_safe.go | 16 - .../github.com/gorilla/websocket/prepared.go | 102 - .../github.com/gorilla/websocket/proxy.go | 77 - .../github.com/gorilla/websocket/server.go | 365 - .../gorilla/websocket/tls_handshake.go | 21 - .../gorilla/websocket/tls_handshake_116.go | 21 - .../github.com/gorilla/websocket/util.go | 283 - .../gorilla/websocket/x_net_proxy.go | 473 - .../github.com/hashicorp/hcl/.gitignore | 9 - .../github.com/hashicorp/hcl/.travis.yml | 13 - .../vendor/github.com/hashicorp/hcl/LICENSE | 354 - .../vendor/github.com/hashicorp/hcl/Makefile | 18 - .../vendor/github.com/hashicorp/hcl/README.md | 125 - .../github.com/hashicorp/hcl/appveyor.yml | 19 - .../github.com/hashicorp/hcl/decoder.go | 729 - .../vendor/github.com/hashicorp/hcl/hcl.go | 11 - .../github.com/hashicorp/hcl/hcl/ast/ast.go | 219 - .../github.com/hashicorp/hcl/hcl/ast/walk.go | 52 - .../hashicorp/hcl/hcl/parser/error.go | 17 - .../hashicorp/hcl/hcl/parser/parser.go | 532 - .../hashicorp/hcl/hcl/printer/nodes.go | 788 - .../hashicorp/hcl/hcl/printer/printer.go | 66 - .../hashicorp/hcl/hcl/scanner/scanner.go | 652 - .../hashicorp/hcl/hcl/strconv/quote.go | 241 - .../hashicorp/hcl/hcl/token/position.go | 46 - .../hashicorp/hcl/hcl/token/token.go | 219 - .../hashicorp/hcl/json/parser/flatten.go | 117 - .../hashicorp/hcl/json/parser/parser.go | 313 - .../hashicorp/hcl/json/scanner/scanner.go | 451 - .../hashicorp/hcl/json/token/position.go | 46 - .../hashicorp/hcl/json/token/token.go | 118 - .../vendor/github.com/hashicorp/hcl/lex.go | 38 - .../vendor/github.com/hashicorp/hcl/parse.go | 39 - .../inconshreveable/mousetrap/LICENSE | 201 - .../inconshreveable/mousetrap/README.md | 23 - .../inconshreveable/mousetrap/trap_others.go | 16 - .../inconshreveable/mousetrap/trap_windows.go | 42 - .../github.com/klauspost/compress/LICENSE | 28 - .../klauspost/compress/flate/deflate.go | 821 - .../klauspost/compress/flate/dict_decoder.go | 184 - .../klauspost/compress/flate/fast_encoder.go | 254 - .../klauspost/compress/flate/gen_inflate.go | 295 - .../compress/flate/huffman_bit_writer.go | 911 - .../klauspost/compress/flate/huffman_code.go | 368 - .../compress/flate/huffman_sortByFreq.go | 178 - .../compress/flate/huffman_sortByLiteral.go | 201 - .../klauspost/compress/flate/inflate.go | 1010 - .../klauspost/compress/flate/inflate_gen.go | 1002 - .../klauspost/compress/flate/level1.go | 179 - .../klauspost/compress/flate/level2.go | 205 - .../klauspost/compress/flate/level3.go | 229 - .../klauspost/compress/flate/level4.go | 212 - .../klauspost/compress/flate/level5.go | 279 - .../klauspost/compress/flate/level6.go | 282 - .../klauspost/compress/flate/regmask_amd64.go | 37 - .../klauspost/compress/flate/regmask_other.go | 40 - .../klauspost/compress/flate/stateless.go | 297 - .../klauspost/compress/flate/token.go | 375 - .../klauspost/compress/fse/README.md | 79 - .../klauspost/compress/fse/bitreader.go | 122 - .../klauspost/compress/fse/bitwriter.go | 168 - .../klauspost/compress/fse/bytereader.go | 47 - .../klauspost/compress/fse/compress.go | 684 - .../klauspost/compress/fse/decompress.go | 374 - .../github.com/klauspost/compress/fse/fse.go | 144 - .../klauspost/compress/gzip/gunzip.go | 344 - .../klauspost/compress/gzip/gzip.go | 269 - .../klauspost/compress/huff0/.gitignore | 1 - .../klauspost/compress/huff0/README.md | 87 - .../klauspost/compress/huff0/bitreader.go | 329 - .../klauspost/compress/huff0/bitwriter.go | 210 - .../klauspost/compress/huff0/bytereader.go | 54 - .../klauspost/compress/huff0/compress.go | 657 - .../klauspost/compress/huff0/decompress.go | 1164 - .../klauspost/compress/huff0/huff0.go | 273 - .../klauspost/compress/snappy/.gitignore | 16 - .../klauspost/compress/snappy/AUTHORS | 15 - .../klauspost/compress/snappy/CONTRIBUTORS | 37 - .../klauspost/compress/snappy/LICENSE | 27 - .../klauspost/compress/snappy/README | 107 - .../klauspost/compress/snappy/decode.go | 237 - .../klauspost/compress/snappy/decode_amd64.go | 13 - .../klauspost/compress/snappy/decode_amd64.s | 482 - .../klauspost/compress/snappy/decode_other.go | 116 - .../klauspost/compress/snappy/encode.go | 285 - .../klauspost/compress/snappy/encode_amd64.go | 28 - .../klauspost/compress/snappy/encode_amd64.s | 730 - .../klauspost/compress/snappy/encode_other.go | 243 - .../klauspost/compress/snappy/runbench.cmd | 2 - .../klauspost/compress/snappy/snappy.go | 98 - .../klauspost/compress/zip/reader.go | 623 - .../klauspost/compress/zip/register.go | 149 - .../klauspost/compress/zip/struct.go | 387 - .../klauspost/compress/zip/writer.go | 747 - .../klauspost/compress/zstd/README.md | 417 - .../klauspost/compress/zstd/bitreader.go | 136 - .../klauspost/compress/zstd/bitwriter.go | 169 - .../klauspost/compress/zstd/blockdec.go | 739 - .../klauspost/compress/zstd/blockenc.go | 855 - .../compress/zstd/blocktype_string.go | 85 - .../klauspost/compress/zstd/bytebuf.go | 127 - .../klauspost/compress/zstd/bytereader.go | 88 - .../klauspost/compress/zstd/decodeheader.go | 202 - .../klauspost/compress/zstd/decoder.go | 552 - .../compress/zstd/decoder_options.go | 84 - .../klauspost/compress/zstd/dict.go | 122 - .../klauspost/compress/zstd/enc_base.go | 155 - .../klauspost/compress/zstd/enc_best.go | 484 - .../klauspost/compress/zstd/enc_better.go | 595 - .../klauspost/compress/zstd/enc_dfast.go | 713 - .../klauspost/compress/zstd/enc_fast.go | 661 - .../klauspost/compress/zstd/encoder.go | 570 - .../compress/zstd/encoder_options.go | 290 - .../klauspost/compress/zstd/framedec.go | 494 - .../klauspost/compress/zstd/frameenc.go | 137 - .../klauspost/compress/zstd/fse_decoder.go | 385 - .../klauspost/compress/zstd/fse_encoder.go | 726 - .../klauspost/compress/zstd/fse_predefined.go | 158 - .../klauspost/compress/zstd/hash.go | 78 - .../klauspost/compress/zstd/history.go | 89 - .../compress/zstd/internal/xxhash/LICENSE.txt | 22 - .../compress/zstd/internal/xxhash/README.md | 58 - .../compress/zstd/internal/xxhash/xxhash.go | 238 - .../zstd/internal/xxhash/xxhash_amd64.go | 12 - .../zstd/internal/xxhash/xxhash_amd64.s | 215 - .../zstd/internal/xxhash/xxhash_other.go | 77 - .../zstd/internal/xxhash/xxhash_safe.go | 11 - .../klauspost/compress/zstd/seqdec.go | 485 - .../klauspost/compress/zstd/seqenc.go | 115 - .../klauspost/compress/zstd/snappy.go | 436 - .../klauspost/compress/zstd/zstd.go | 144 - .../github.com/klauspost/pgzip/.gitignore | 24 - .../github.com/klauspost/pgzip/.travis.yml | 24 - .../github.com/klauspost/pgzip/GO_LICENSE | 27 - .../vendor/github.com/klauspost/pgzip/LICENSE | 21 - .../github.com/klauspost/pgzip/README.md | 135 - .../github.com/klauspost/pgzip/gunzip.go | 584 - .../vendor/github.com/klauspost/pgzip/gzip.go | 519 - .../magiconair/properties/.gitignore | 6 - .../magiconair/properties/CHANGELOG.md | 205 - .../magiconair/properties/LICENSE.md | 24 - .../magiconair/properties/README.md | 128 - .../magiconair/properties/decode.go | 289 - .../github.com/magiconair/properties/doc.go | 155 - .../magiconair/properties/integrate.go | 35 - .../github.com/magiconair/properties/lex.go | 395 - .../github.com/magiconair/properties/load.go | 293 - .../magiconair/properties/parser.go | 86 - .../magiconair/properties/properties.go | 848 - .../magiconair/properties/rangecheck.go | 31 - .../vendor/github.com/maruel/natural/LICENSE | 201 - .../github.com/maruel/natural/README.md | 50 - .../github.com/maruel/natural/natsort.go | 94 - .../marusama/semaphore/v2/.gitignore | 14 - .../marusama/semaphore/v2/.travis.yml | 21 - .../github.com/marusama/semaphore/v2/LICENSE | 21 - .../marusama/semaphore/v2/README.md | 82 - .../marusama/semaphore/v2/semaphore.go | 219 - .../github.com/mholt/archiver/v3/.gitignore | 10 - .../mholt/archiver/v3/.goreleaser.yml | 41 - .../github.com/mholt/archiver/v3/.prettierrc | 4 - .../github.com/mholt/archiver/v3/LICENSE | 21 - .../github.com/mholt/archiver/v3/README.md | 324 - .../github.com/mholt/archiver/v3/SECURITY.md | 15 - .../github.com/mholt/archiver/v3/archiver.go | 540 - .../github.com/mholt/archiver/v3/brotli.go | 55 - .../github.com/mholt/archiver/v3/build.bash | 13 - .../github.com/mholt/archiver/v3/bz2.go | 64 - .../github.com/mholt/archiver/v3/error.go | 27 - .../mholt/archiver/v3/filecompressor.go | 67 - .../vendor/github.com/mholt/archiver/v3/gz.go | 76 - .../github.com/mholt/archiver/v3/lz4.go | 63 - .../github.com/mholt/archiver/v3/rar.go | 446 - .../vendor/github.com/mholt/archiver/v3/sz.go | 51 - .../github.com/mholt/archiver/v3/tar.go | 659 - .../github.com/mholt/archiver/v3/tarbrotli.go | 114 - .../github.com/mholt/archiver/v3/tarbz2.go | 126 - .../github.com/mholt/archiver/v3/targz.go | 137 - .../github.com/mholt/archiver/v3/tarlz4.go | 129 - .../github.com/mholt/archiver/v3/tarsz.go | 114 - .../github.com/mholt/archiver/v3/tarxz.go | 119 - .../github.com/mholt/archiver/v3/tarzst.go | 120 - .../vendor/github.com/mholt/archiver/v3/xz.go | 58 - .../github.com/mholt/archiver/v3/zip.go | 711 - .../github.com/mholt/archiver/v3/zstd.go | 61 - .../mitchellh/mapstructure/CHANGELOG.md | 96 - .../github.com/mitchellh/mapstructure/LICENSE | 21 - .../mitchellh/mapstructure/README.md | 46 - .../mitchellh/mapstructure/decode_hooks.go | 279 - .../mitchellh/mapstructure/error.go | 50 - .../mitchellh/mapstructure/mapstructure.go | 1540 - .../github.com/nwaples/rardecode/LICENSE | 23 - .../github.com/nwaples/rardecode/README.md | 4 - .../github.com/nwaples/rardecode/archive.go | 309 - .../github.com/nwaples/rardecode/archive15.go | 468 - .../github.com/nwaples/rardecode/archive50.go | 475 - .../nwaples/rardecode/bit_reader.go | 119 - .../github.com/nwaples/rardecode/decode29.go | 264 - .../nwaples/rardecode/decode29_lz.go | 247 - .../nwaples/rardecode/decode29_ppm.go | 132 - .../github.com/nwaples/rardecode/decode50.go | 294 - .../nwaples/rardecode/decode_reader.go | 290 - .../nwaples/rardecode/decrypt_reader.go | 126 - .../github.com/nwaples/rardecode/filters.go | 416 - .../github.com/nwaples/rardecode/huffman.go | 208 - .../github.com/nwaples/rardecode/ppm_model.go | 1096 - .../github.com/nwaples/rardecode/reader.go | 376 - .../vendor/github.com/nwaples/rardecode/vm.go | 687 - .../pelletier/go-toml/v2/.dockerignore | 2 - .../pelletier/go-toml/v2/.gitattributes | 4 - .../pelletier/go-toml/v2/.gitignore | 6 - .../pelletier/go-toml/v2/.golangci.toml | 84 - .../pelletier/go-toml/v2/.goreleaser.yaml | 123 - .../pelletier/go-toml/v2/CONTRIBUTING.md | 196 - .../pelletier/go-toml/v2/Dockerfile | 5 - .../github.com/pelletier/go-toml/v2/LICENSE | 21 - .../github.com/pelletier/go-toml/v2/README.md | 563 - .../pelletier/go-toml/v2/SECURITY.md | 19 - .../github.com/pelletier/go-toml/v2/ci.sh | 279 - .../github.com/pelletier/go-toml/v2/decode.go | 550 - .../github.com/pelletier/go-toml/v2/doc.go | 2 - .../github.com/pelletier/go-toml/v2/errors.go | 252 - .../go-toml/v2/internal/characters/ascii.go | 42 - .../go-toml/v2/internal/characters/utf8.go | 199 - .../go-toml/v2/internal/danger/danger.go | 65 - .../go-toml/v2/internal/danger/typeid.go | 23 - .../go-toml/v2/internal/tracker/key.go | 48 - .../go-toml/v2/internal/tracker/seen.go | 356 - .../go-toml/v2/internal/tracker/tracker.go | 1 - .../pelletier/go-toml/v2/localtime.go | 122 - .../pelletier/go-toml/v2/marshaler.go | 1058 - .../github.com/pelletier/go-toml/v2/strict.go | 107 - .../github.com/pelletier/go-toml/v2/toml.abnf | 243 - .../github.com/pelletier/go-toml/v2/types.go | 14 - .../pelletier/go-toml/v2/unmarshaler.go | 1260 - .../pelletier/go-toml/v2/unstable/ast.go | 136 - .../pelletier/go-toml/v2/unstable/builder.go | 71 - .../pelletier/go-toml/v2/unstable/doc.go | 3 - .../pelletier/go-toml/v2/unstable/kind.go | 71 - .../pelletier/go-toml/v2/unstable/parser.go | 1239 - .../pelletier/go-toml/v2/unstable/scanner.go | 270 - .../github.com/pierrec/lz4/v4/.gitignore | 36 - .../vendor/github.com/pierrec/lz4/v4/LICENSE | 28 - .../github.com/pierrec/lz4/v4/README.md | 90 - .../pierrec/lz4/v4/internal/lz4block/block.go | 469 - .../lz4/v4/internal/lz4block/blocks.go | 88 - .../lz4/v4/internal/lz4block/decode_amd64.s | 369 - .../lz4/v4/internal/lz4block/decode_arm.s | 197 - .../lz4/v4/internal/lz4block/decode_asm.go | 10 - .../lz4/v4/internal/lz4block/decode_other.go | 109 - .../lz4/v4/internal/lz4errors/errors.go | 19 - .../lz4/v4/internal/lz4stream/block.go | 332 - .../lz4/v4/internal/lz4stream/frame.go | 200 - .../lz4/v4/internal/lz4stream/frame_gen.go | 105 - .../lz4/v4/internal/xxh32/xxh32zero.go | 212 - .../lz4/v4/internal/xxh32/xxh32zero_arm.go | 12 - .../lz4/v4/internal/xxh32/xxh32zero_arm.s | 259 - .../lz4/v4/internal/xxh32/xxh32zero_other.go | 11 - .../vendor/github.com/pierrec/lz4/v4/lz4.go | 147 - .../github.com/pierrec/lz4/v4/options.go | 213 - .../github.com/pierrec/lz4/v4/options_gen.go | 92 - .../github.com/pierrec/lz4/v4/reader.go | 243 - .../vendor/github.com/pierrec/lz4/v4/state.go | 75 - .../github.com/pierrec/lz4/v4/state_gen.go | 28 - .../github.com/pierrec/lz4/v4/writer.go | 233 - .../github.com/pmezard/go-difflib/LICENSE | 27 - .../pmezard/go-difflib/difflib/difflib.go | 775 - .../github.com/power-devops/perfstat/LICENSE | 23 - .../power-devops/perfstat/c_helpers.c | 159 - .../power-devops/perfstat/c_helpers.h | 58 - .../power-devops/perfstat/config.go | 19 - .../power-devops/perfstat/cpustat.go | 99 - .../power-devops/perfstat/diskstat.go | 138 - .../github.com/power-devops/perfstat/doc.go | 316 - .../power-devops/perfstat/fsstat.go | 32 - .../power-devops/perfstat/helpers.go | 765 - .../power-devops/perfstat/lparstat.go | 27 - .../power-devops/perfstat/lvmstat.go | 73 - .../power-devops/perfstat/memstat.go | 85 - .../power-devops/perfstat/netstat.go | 118 - .../power-devops/perfstat/procstat.go | 76 - .../power-devops/perfstat/sysconf.go | 196 - .../power-devops/perfstat/systemcfg.go | 636 - .../power-devops/perfstat/types_cpu.go | 186 - .../power-devops/perfstat/types_disk.go | 176 - .../power-devops/perfstat/types_fs.go | 195 - .../power-devops/perfstat/types_lpar.go | 68 - .../power-devops/perfstat/types_lvm.go | 31 - .../power-devops/perfstat/types_memory.go | 101 - .../power-devops/perfstat/types_network.go | 163 - .../power-devops/perfstat/types_process.go | 43 - .../power-devops/perfstat/uptime.go | 36 - .../github.com/shirou/gopsutil/v3/LICENSE | 61 - .../shirou/gopsutil/v3/disk/disk.go | 98 - .../shirou/gopsutil/v3/disk/disk_aix.go | 22 - .../shirou/gopsutil/v3/disk/disk_aix_cgo.go | 76 - .../shirou/gopsutil/v3/disk/disk_aix_nocgo.go | 82 - .../shirou/gopsutil/v3/disk/disk_darwin.go | 93 - .../gopsutil/v3/disk/disk_darwin_cgo.go | 45 - .../gopsutil/v3/disk/disk_darwin_nocgo.go | 14 - .../shirou/gopsutil/v3/disk/disk_fallback.go | 30 - .../shirou/gopsutil/v3/disk/disk_freebsd.go | 192 - .../gopsutil/v3/disk/disk_freebsd_386.go | 63 - .../gopsutil/v3/disk/disk_freebsd_amd64.go | 66 - .../gopsutil/v3/disk/disk_freebsd_arm.go | 63 - .../gopsutil/v3/disk/disk_freebsd_arm64.go | 66 - .../shirou/gopsutil/v3/disk/disk_linux.go | 539 - .../shirou/gopsutil/v3/disk/disk_openbsd.go | 159 - .../gopsutil/v3/disk/disk_openbsd_386.go | 38 - .../gopsutil/v3/disk/disk_openbsd_amd64.go | 36 - .../gopsutil/v3/disk/disk_openbsd_arm.go | 38 - .../gopsutil/v3/disk/disk_openbsd_arm64.go | 38 - .../shirou/gopsutil/v3/disk/disk_solaris.go | 260 - .../shirou/gopsutil/v3/disk/disk_unix.go | 63 - .../shirou/gopsutil/v3/disk/disk_windows.go | 237 - .../shirou/gopsutil/v3/disk/iostat_darwin.c | 129 - .../shirou/gopsutil/v3/disk/iostat_darwin.h | 32 - .../gopsutil/v3/internal/common/binary.go | 637 - .../gopsutil/v3/internal/common/common.go | 386 - .../v3/internal/common/common_darwin.go | 66 - .../v3/internal/common/common_freebsd.go | 82 - .../v3/internal/common/common_linux.go | 314 - .../v3/internal/common/common_openbsd.go | 66 - .../v3/internal/common/common_unix.go | 62 - .../v3/internal/common/common_windows.go | 304 - .../gopsutil/v3/internal/common/endian.go | 10 - .../gopsutil/v3/internal/common/sleep.go | 21 - .../gopsutil/v3/internal/common/warnings.go | 30 - .../vendor/github.com/spf13/afero/.gitignore | 2 - .../vendor/github.com/spf13/afero/LICENSE.txt | 174 - .../vendor/github.com/spf13/afero/README.md | 442 - .../vendor/github.com/spf13/afero/afero.go | 111 - .../github.com/spf13/afero/appveyor.yml | 10 - .../vendor/github.com/spf13/afero/basepath.go | 222 - .../github.com/spf13/afero/cacheOnReadFs.go | 315 - .../github.com/spf13/afero/const_bsds.go | 23 - .../github.com/spf13/afero/const_win_unix.go | 22 - .../github.com/spf13/afero/copyOnWriteFs.go | 327 - .../vendor/github.com/spf13/afero/httpFs.go | 114 - .../spf13/afero/internal/common/adapters.go | 27 - backend/vendor/github.com/spf13/afero/iofs.go | 298 - .../vendor/github.com/spf13/afero/ioutil.go | 243 - .../vendor/github.com/spf13/afero/lstater.go | 27 - .../vendor/github.com/spf13/afero/match.go | 110 - .../vendor/github.com/spf13/afero/mem/dir.go | 37 - .../github.com/spf13/afero/mem/dirmap.go | 43 - .../vendor/github.com/spf13/afero/mem/file.go | 359 - .../vendor/github.com/spf13/afero/memmap.go | 422 - backend/vendor/github.com/spf13/afero/os.go | 113 - backend/vendor/github.com/spf13/afero/path.go | 106 - .../github.com/spf13/afero/readonlyfs.go | 96 - .../vendor/github.com/spf13/afero/regexpfs.go | 223 - .../vendor/github.com/spf13/afero/symlink.go | 55 - .../github.com/spf13/afero/unionFile.go | 330 - backend/vendor/github.com/spf13/afero/util.go | 329 - .../vendor/github.com/spf13/cast/.gitignore | 25 - backend/vendor/github.com/spf13/cast/LICENSE | 21 - backend/vendor/github.com/spf13/cast/Makefile | 40 - .../vendor/github.com/spf13/cast/README.md | 75 - backend/vendor/github.com/spf13/cast/cast.go | 176 - backend/vendor/github.com/spf13/cast/caste.go | 1498 - .../spf13/cast/timeformattype_string.go | 27 - .../vendor/github.com/spf13/cobra/.gitignore | 39 - .../github.com/spf13/cobra/.golangci.yml | 62 - .../vendor/github.com/spf13/cobra/.mailmap | 3 - .../vendor/github.com/spf13/cobra/CONDUCT.md | 37 - .../github.com/spf13/cobra/CONTRIBUTING.md | 50 - .../vendor/github.com/spf13/cobra/LICENSE.txt | 174 - .../vendor/github.com/spf13/cobra/MAINTAINERS | 13 - .../vendor/github.com/spf13/cobra/Makefile | 35 - .../vendor/github.com/spf13/cobra/README.md | 112 - .../github.com/spf13/cobra/active_help.go | 63 - .../github.com/spf13/cobra/active_help.md | 157 - backend/vendor/github.com/spf13/cobra/args.go | 131 - .../spf13/cobra/bash_completions.go | 712 - .../spf13/cobra/bash_completions.md | 93 - .../spf13/cobra/bash_completionsV2.go | 396 - .../vendor/github.com/spf13/cobra/cobra.go | 239 - .../vendor/github.com/spf13/cobra/command.go | 1834 - .../github.com/spf13/cobra/command_notwin.go | 20 - .../github.com/spf13/cobra/command_win.go | 41 - .../github.com/spf13/cobra/completions.go | 878 - .../spf13/cobra/fish_completions.go | 292 - .../spf13/cobra/fish_completions.md | 4 - .../github.com/spf13/cobra/flag_groups.go | 224 - .../spf13/cobra/powershell_completions.go | 325 - .../spf13/cobra/powershell_completions.md | 3 - .../spf13/cobra/projects_using_cobra.md | 64 - .../spf13/cobra/shell_completions.go | 98 - .../spf13/cobra/shell_completions.md | 576 - .../github.com/spf13/cobra/user_guide.md | 726 - .../github.com/spf13/cobra/zsh_completions.go | 308 - .../github.com/spf13/cobra/zsh_completions.md | 48 - .../spf13/jwalterweatherman/.gitignore | 24 - .../spf13/jwalterweatherman/LICENSE | 21 - .../spf13/jwalterweatherman/README.md | 148 - .../jwalterweatherman/default_notepad.go | 111 - .../spf13/jwalterweatherman/log_counter.go | 46 - .../spf13/jwalterweatherman/notepad.go | 225 - .../vendor/github.com/spf13/pflag/.gitignore | 2 - .../vendor/github.com/spf13/pflag/.travis.yml | 22 - backend/vendor/github.com/spf13/pflag/LICENSE | 28 - .../vendor/github.com/spf13/pflag/README.md | 296 - backend/vendor/github.com/spf13/pflag/bool.go | 94 - .../github.com/spf13/pflag/bool_slice.go | 185 - .../vendor/github.com/spf13/pflag/bytes.go | 209 - .../vendor/github.com/spf13/pflag/count.go | 96 - .../vendor/github.com/spf13/pflag/duration.go | 86 - .../github.com/spf13/pflag/duration_slice.go | 166 - backend/vendor/github.com/spf13/pflag/flag.go | 1252 - .../vendor/github.com/spf13/pflag/float32.go | 88 - .../github.com/spf13/pflag/float32_slice.go | 174 - .../vendor/github.com/spf13/pflag/float64.go | 84 - .../github.com/spf13/pflag/float64_slice.go | 166 - .../github.com/spf13/pflag/golangflag.go | 105 - backend/vendor/github.com/spf13/pflag/int.go | 84 - .../vendor/github.com/spf13/pflag/int16.go | 88 - .../vendor/github.com/spf13/pflag/int32.go | 88 - .../github.com/spf13/pflag/int32_slice.go | 174 - .../vendor/github.com/spf13/pflag/int64.go | 84 - .../github.com/spf13/pflag/int64_slice.go | 166 - backend/vendor/github.com/spf13/pflag/int8.go | 88 - .../github.com/spf13/pflag/int_slice.go | 158 - backend/vendor/github.com/spf13/pflag/ip.go | 94 - .../vendor/github.com/spf13/pflag/ip_slice.go | 186 - .../vendor/github.com/spf13/pflag/ipmask.go | 122 - .../vendor/github.com/spf13/pflag/ipnet.go | 98 - .../vendor/github.com/spf13/pflag/string.go | 80 - .../github.com/spf13/pflag/string_array.go | 129 - .../github.com/spf13/pflag/string_slice.go | 175 - .../github.com/spf13/pflag/string_to_int.go | 149 - .../github.com/spf13/pflag/string_to_int64.go | 149 - .../spf13/pflag/string_to_string.go | 160 - backend/vendor/github.com/spf13/pflag/uint.go | 88 - .../vendor/github.com/spf13/pflag/uint16.go | 88 - .../vendor/github.com/spf13/pflag/uint32.go | 88 - .../vendor/github.com/spf13/pflag/uint64.go | 88 - .../vendor/github.com/spf13/pflag/uint8.go | 88 - .../github.com/spf13/pflag/uint_slice.go | 168 - .../github.com/spf13/viper/.editorconfig | 15 - .../vendor/github.com/spf13/viper/.gitignore | 5 - .../github.com/spf13/viper/.golangci.yaml | 98 - backend/vendor/github.com/spf13/viper/LICENSE | 21 - .../vendor/github.com/spf13/viper/Makefile | 76 - .../vendor/github.com/spf13/viper/README.md | 884 - .../github.com/spf13/viper/TROUBLESHOOTING.md | 32 - .../spf13/viper/experimental_logger.go | 11 - .../vendor/github.com/spf13/viper/flags.go | 57 - backend/vendor/github.com/spf13/viper/fs.go | 65 - .../spf13/viper/internal/encoding/decoder.go | 61 - .../viper/internal/encoding/dotenv/codec.go | 61 - .../internal/encoding/dotenv/map_utils.go | 41 - .../spf13/viper/internal/encoding/encoder.go | 60 - .../spf13/viper/internal/encoding/error.go | 7 - .../viper/internal/encoding/hcl/codec.go | 40 - .../viper/internal/encoding/ini/codec.go | 99 - .../viper/internal/encoding/ini/map_utils.go | 74 - .../internal/encoding/javaproperties/codec.go | 86 - .../encoding/javaproperties/map_utils.go | 74 - .../viper/internal/encoding/json/codec.go | 17 - .../viper/internal/encoding/toml/codec.go | 16 - .../viper/internal/encoding/yaml/codec.go | 14 - .../vendor/github.com/spf13/viper/logger.go | 77 - backend/vendor/github.com/spf13/viper/util.go | 222 - .../vendor/github.com/spf13/viper/viper.go | 2201 - .../github.com/spf13/viper/viper_go1_15.go | 57 - .../github.com/spf13/viper/viper_go1_16.go | 32 - .../vendor/github.com/spf13/viper/watch.go | 12 - .../spf13/viper/watch_unsupported.go | 32 - .../github.com/stretchr/testify/LICENSE | 21 - .../testify/assert/assertion_compare.go | 458 - .../assert/assertion_compare_can_convert.go | 16 - .../assert/assertion_compare_legacy.go | 16 - .../testify/assert/assertion_format.go | 805 - .../testify/assert/assertion_format.go.tmpl | 5 - .../testify/assert/assertion_forward.go | 1598 - .../testify/assert/assertion_forward.go.tmpl | 5 - .../testify/assert/assertion_order.go | 81 - .../stretchr/testify/assert/assertions.go | 2054 - .../github.com/stretchr/testify/assert/doc.go | 46 - .../stretchr/testify/assert/errors.go | 10 - .../testify/assert/forward_assertions.go | 16 - .../testify/assert/http_assertions.go | 162 - .../stretchr/testify/require/doc.go | 29 - .../testify/require/forward_requirements.go | 16 - .../stretchr/testify/require/require.go | 2031 - .../stretchr/testify/require/require.go.tmpl | 6 - .../testify/require/require_forward.go | 1599 - .../testify/require/require_forward.go.tmpl | 5 - .../stretchr/testify/require/requirements.go | 29 - .../vendor/github.com/subosito/gotenv/.env | 1 - .../github.com/subosito/gotenv/.env.invalid | 1 - .../github.com/subosito/gotenv/.gitignore | 4 - .../github.com/subosito/gotenv/.golangci.yaml | 7 - .../github.com/subosito/gotenv/CHANGELOG.md | 68 - .../vendor/github.com/subosito/gotenv/LICENSE | 21 - .../github.com/subosito/gotenv/README.md | 129 - .../github.com/subosito/gotenv/gotenv.go | 381 - .../github.com/tomasen/realip/.travis.yml | 19 - .../vendor/github.com/tomasen/realip/LICENSE | 21 - .../github.com/tomasen/realip/README.md | 33 - .../github.com/tomasen/realip/realip.go | 89 - .../vendor/github.com/ulikunitz/xz/.gitignore | 25 - .../vendor/github.com/ulikunitz/xz/LICENSE | 26 - .../vendor/github.com/ulikunitz/xz/README.md | 73 - .../github.com/ulikunitz/xz/SECURITY.md | 10 - .../vendor/github.com/ulikunitz/xz/TODO.md | 355 - .../vendor/github.com/ulikunitz/xz/bits.go | 79 - backend/vendor/github.com/ulikunitz/xz/crc.go | 54 - .../vendor/github.com/ulikunitz/xz/format.go | 716 - .../github.com/ulikunitz/xz/fox-check-none.xz | Bin 96 -> 0 bytes backend/vendor/github.com/ulikunitz/xz/fox.xz | Bin 104 -> 0 bytes .../ulikunitz/xz/internal/hash/cyclic_poly.go | 181 - .../ulikunitz/xz/internal/hash/doc.go | 14 - .../ulikunitz/xz/internal/hash/rabin_karp.go | 66 - .../ulikunitz/xz/internal/hash/roller.go | 29 - .../ulikunitz/xz/internal/xlog/xlog.go | 456 - .../github.com/ulikunitz/xz/lzma/bintree.go | 522 - .../github.com/ulikunitz/xz/lzma/bitops.go | 47 - .../github.com/ulikunitz/xz/lzma/breader.go | 39 - .../github.com/ulikunitz/xz/lzma/buffer.go | 171 - .../ulikunitz/xz/lzma/bytewriter.go | 37 - .../github.com/ulikunitz/xz/lzma/decoder.go | 277 - .../ulikunitz/xz/lzma/decoderdict.go | 128 - .../ulikunitz/xz/lzma/directcodec.go | 38 - .../github.com/ulikunitz/xz/lzma/distcodec.go | 140 - .../github.com/ulikunitz/xz/lzma/encoder.go | 268 - .../ulikunitz/xz/lzma/encoderdict.go | 149 - .../github.com/ulikunitz/xz/lzma/fox.lzma | Bin 67 -> 0 bytes .../github.com/ulikunitz/xz/lzma/hashtable.go | 309 - .../github.com/ulikunitz/xz/lzma/header.go | 167 - .../github.com/ulikunitz/xz/lzma/header2.go | 398 - .../ulikunitz/xz/lzma/lengthcodec.go | 115 - .../ulikunitz/xz/lzma/literalcodec.go | 125 - .../ulikunitz/xz/lzma/matchalgorithm.go | 52 - .../github.com/ulikunitz/xz/lzma/operation.go | 55 - .../github.com/ulikunitz/xz/lzma/prob.go | 53 - .../ulikunitz/xz/lzma/properties.go | 69 - .../ulikunitz/xz/lzma/rangecodec.go | 222 - .../github.com/ulikunitz/xz/lzma/reader.go | 100 - .../github.com/ulikunitz/xz/lzma/reader2.go | 231 - .../github.com/ulikunitz/xz/lzma/state.go | 145 - .../ulikunitz/xz/lzma/treecodecs.go | 133 - .../github.com/ulikunitz/xz/lzma/writer.go | 209 - .../github.com/ulikunitz/xz/lzma/writer2.go | 305 - .../github.com/ulikunitz/xz/lzmafilter.go | 117 - .../vendor/github.com/ulikunitz/xz/make-docs | 5 - .../github.com/ulikunitz/xz/none-check.go | 23 - .../vendor/github.com/ulikunitz/xz/reader.go | 362 - .../vendor/github.com/ulikunitz/xz/writer.go | 399 - backend/vendor/github.com/xi2/xz/AUTHORS | 8 - backend/vendor/github.com/xi2/xz/LICENSE | 18 - backend/vendor/github.com/xi2/xz/README.md | 10 - backend/vendor/github.com/xi2/xz/dec_bcj.go | 461 - backend/vendor/github.com/xi2/xz/dec_delta.go | 55 - backend/vendor/github.com/xi2/xz/dec_lzma2.go | 1235 - .../vendor/github.com/xi2/xz/dec_stream.go | 932 - backend/vendor/github.com/xi2/xz/dec_util.go | 52 - backend/vendor/github.com/xi2/xz/dec_xz.go | 124 - backend/vendor/github.com/xi2/xz/doc.go | 35 - backend/vendor/github.com/xi2/xz/reader.go | 256 - .../github.com/yusufpapurcu/wmi/LICENSE | 20 - .../github.com/yusufpapurcu/wmi/README.md | 6 - .../yusufpapurcu/wmi/swbemservices.go | 261 - .../vendor/github.com/yusufpapurcu/wmi/wmi.go | 591 - backend/vendor/go.etcd.io/bbolt/.gitignore | 10 - backend/vendor/go.etcd.io/bbolt/LICENSE | 20 - backend/vendor/go.etcd.io/bbolt/Makefile | 63 - backend/vendor/go.etcd.io/bbolt/README.md | 967 - backend/vendor/go.etcd.io/bbolt/bolt_386.go | 7 - backend/vendor/go.etcd.io/bbolt/bolt_amd64.go | 7 - backend/vendor/go.etcd.io/bbolt/bolt_arm.go | 7 - backend/vendor/go.etcd.io/bbolt/bolt_arm64.go | 10 - backend/vendor/go.etcd.io/bbolt/bolt_linux.go | 10 - .../vendor/go.etcd.io/bbolt/bolt_loong64.go | 10 - .../vendor/go.etcd.io/bbolt/bolt_mips64x.go | 10 - backend/vendor/go.etcd.io/bbolt/bolt_mipsx.go | 10 - .../vendor/go.etcd.io/bbolt/bolt_openbsd.go | 27 - backend/vendor/go.etcd.io/bbolt/bolt_ppc.go | 10 - backend/vendor/go.etcd.io/bbolt/bolt_ppc64.go | 10 - .../vendor/go.etcd.io/bbolt/bolt_ppc64le.go | 10 - .../vendor/go.etcd.io/bbolt/bolt_riscv64.go | 10 - backend/vendor/go.etcd.io/bbolt/bolt_s390x.go | 10 - backend/vendor/go.etcd.io/bbolt/bolt_unix.go | 87 - .../vendor/go.etcd.io/bbolt/bolt_unix_aix.go | 91 - .../go.etcd.io/bbolt/bolt_unix_solaris.go | 88 - .../vendor/go.etcd.io/bbolt/bolt_windows.go | 117 - .../vendor/go.etcd.io/bbolt/boltsync_unix.go | 9 - backend/vendor/go.etcd.io/bbolt/bucket.go | 791 - backend/vendor/go.etcd.io/bbolt/compact.go | 119 - backend/vendor/go.etcd.io/bbolt/cursor.go | 420 - backend/vendor/go.etcd.io/bbolt/db.go | 1361 - backend/vendor/go.etcd.io/bbolt/doc.go | 40 - backend/vendor/go.etcd.io/bbolt/errors.go | 78 - backend/vendor/go.etcd.io/bbolt/freelist.go | 405 - .../vendor/go.etcd.io/bbolt/freelist_hmap.go | 178 - backend/vendor/go.etcd.io/bbolt/mlock_unix.go | 37 - .../vendor/go.etcd.io/bbolt/mlock_windows.go | 11 - backend/vendor/go.etcd.io/bbolt/node.go | 610 - backend/vendor/go.etcd.io/bbolt/page.go | 214 - backend/vendor/go.etcd.io/bbolt/tx.go | 797 - backend/vendor/go.etcd.io/bbolt/tx_check.go | 226 - backend/vendor/go.etcd.io/bbolt/unsafe.go | 39 - backend/vendor/golang.org/x/crypto/LICENSE | 27 - backend/vendor/golang.org/x/crypto/PATENTS | 22 - .../golang.org/x/crypto/bcrypt/base64.go | 35 - .../golang.org/x/crypto/bcrypt/bcrypt.go | 304 - .../golang.org/x/crypto/blowfish/block.go | 159 - .../golang.org/x/crypto/blowfish/cipher.go | 99 - .../golang.org/x/crypto/blowfish/const.go | 199 - backend/vendor/golang.org/x/image/LICENSE | 27 - backend/vendor/golang.org/x/image/PATENTS | 22 - .../vendor/golang.org/x/image/bmp/reader.go | 245 - .../vendor/golang.org/x/image/bmp/writer.go | 262 - .../vendor/golang.org/x/image/ccitt/reader.go | 795 - .../vendor/golang.org/x/image/ccitt/table.go | 972 - .../vendor/golang.org/x/image/ccitt/writer.go | 102 - .../vendor/golang.org/x/image/tiff/buffer.go | 69 - .../golang.org/x/image/tiff/compress.go | 58 - .../vendor/golang.org/x/image/tiff/consts.go | 149 - .../vendor/golang.org/x/image/tiff/fuzz.go | 30 - .../golang.org/x/image/tiff/lzw/reader.go | 272 - .../vendor/golang.org/x/image/tiff/reader.go | 754 - .../vendor/golang.org/x/image/tiff/writer.go | 441 - backend/vendor/golang.org/x/net/LICENSE | 27 - backend/vendor/golang.org/x/net/PATENTS | 22 - .../golang.org/x/net/context/context.go | 56 - .../vendor/golang.org/x/net/context/go17.go | 73 - .../vendor/golang.org/x/net/context/go19.go | 21 - .../golang.org/x/net/context/pre_go17.go | 301 - .../golang.org/x/net/context/pre_go19.go | 110 - backend/vendor/golang.org/x/sys/LICENSE | 27 - backend/vendor/golang.org/x/sys/PATENTS | 22 - .../sys/internal/unsafeheader/unsafeheader.go | 30 - .../vendor/golang.org/x/sys/unix/.gitignore | 2 - .../vendor/golang.org/x/sys/unix/README.md | 184 - .../golang.org/x/sys/unix/affinity_linux.go | 86 - .../vendor/golang.org/x/sys/unix/aliases.go | 15 - .../golang.org/x/sys/unix/asm_aix_ppc64.s | 18 - .../golang.org/x/sys/unix/asm_bsd_386.s | 29 - .../golang.org/x/sys/unix/asm_bsd_amd64.s | 29 - .../golang.org/x/sys/unix/asm_bsd_arm.s | 29 - .../golang.org/x/sys/unix/asm_bsd_arm64.s | 29 - .../golang.org/x/sys/unix/asm_bsd_ppc64.s | 31 - .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 29 - .../golang.org/x/sys/unix/asm_linux_386.s | 66 - .../golang.org/x/sys/unix/asm_linux_amd64.s | 58 - .../golang.org/x/sys/unix/asm_linux_arm.s | 57 - .../golang.org/x/sys/unix/asm_linux_arm64.s | 53 - .../golang.org/x/sys/unix/asm_linux_loong64.s | 54 - .../golang.org/x/sys/unix/asm_linux_mips64x.s | 57 - .../golang.org/x/sys/unix/asm_linux_mipsx.s | 55 - .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 45 - .../golang.org/x/sys/unix/asm_linux_riscv64.s | 49 - .../golang.org/x/sys/unix/asm_linux_s390x.s | 57 - .../x/sys/unix/asm_openbsd_mips64.s | 30 - .../golang.org/x/sys/unix/asm_solaris_amd64.s | 18 - .../golang.org/x/sys/unix/asm_zos_s390x.s | 426 - .../golang.org/x/sys/unix/bluetooth_linux.go | 36 - .../golang.org/x/sys/unix/cap_freebsd.go | 196 - .../vendor/golang.org/x/sys/unix/constants.go | 14 - .../golang.org/x/sys/unix/dev_aix_ppc.go | 27 - .../golang.org/x/sys/unix/dev_aix_ppc64.go | 29 - .../golang.org/x/sys/unix/dev_darwin.go | 24 - .../golang.org/x/sys/unix/dev_dragonfly.go | 30 - .../golang.org/x/sys/unix/dev_freebsd.go | 30 - .../vendor/golang.org/x/sys/unix/dev_linux.go | 42 - .../golang.org/x/sys/unix/dev_netbsd.go | 29 - .../golang.org/x/sys/unix/dev_openbsd.go | 29 - .../vendor/golang.org/x/sys/unix/dev_zos.go | 29 - .../vendor/golang.org/x/sys/unix/dirent.go | 103 - .../golang.org/x/sys/unix/endian_big.go | 10 - .../golang.org/x/sys/unix/endian_little.go | 10 - .../vendor/golang.org/x/sys/unix/env_unix.go | 32 - .../vendor/golang.org/x/sys/unix/epoll_zos.go | 221 - backend/vendor/golang.org/x/sys/unix/fcntl.go | 37 - .../golang.org/x/sys/unix/fcntl_darwin.go | 24 - .../x/sys/unix/fcntl_linux_32bit.go | 14 - backend/vendor/golang.org/x/sys/unix/fdset.go | 30 - .../golang.org/x/sys/unix/fstatfs_zos.go | 164 - backend/vendor/golang.org/x/sys/unix/gccgo.go | 60 - .../vendor/golang.org/x/sys/unix/gccgo_c.c | 45 - .../x/sys/unix/gccgo_linux_amd64.go | 21 - .../golang.org/x/sys/unix/ifreq_linux.go | 142 - .../golang.org/x/sys/unix/ioctl_linux.go | 233 - .../golang.org/x/sys/unix/ioctl_signed.go | 70 - .../golang.org/x/sys/unix/ioctl_unsigned.go | 70 - .../vendor/golang.org/x/sys/unix/ioctl_zos.go | 72 - backend/vendor/golang.org/x/sys/unix/mkall.sh | 249 - .../vendor/golang.org/x/sys/unix/mkerrors.sh | 783 - .../golang.org/x/sys/unix/pagesize_unix.go | 16 - .../golang.org/x/sys/unix/pledge_openbsd.go | 163 - .../golang.org/x/sys/unix/ptrace_darwin.go | 18 - .../golang.org/x/sys/unix/ptrace_ios.go | 18 - backend/vendor/golang.org/x/sys/unix/race.go | 31 - backend/vendor/golang.org/x/sys/unix/race0.go | 26 - .../x/sys/unix/readdirent_getdents.go | 13 - .../x/sys/unix/readdirent_getdirentries.go | 20 - .../x/sys/unix/sockcmsg_dragonfly.go | 16 - .../golang.org/x/sys/unix/sockcmsg_linux.go | 85 - .../golang.org/x/sys/unix/sockcmsg_unix.go | 107 - .../x/sys/unix/sockcmsg_unix_other.go | 47 - .../vendor/golang.org/x/sys/unix/syscall.go | 87 - .../golang.org/x/sys/unix/syscall_aix.go | 599 - .../golang.org/x/sys/unix/syscall_aix_ppc.go | 53 - .../x/sys/unix/syscall_aix_ppc64.go | 84 - .../golang.org/x/sys/unix/syscall_bsd.go | 624 - .../golang.org/x/sys/unix/syscall_darwin.go | 826 - .../x/sys/unix/syscall_darwin_amd64.go | 52 - .../x/sys/unix/syscall_darwin_arm64.go | 52 - .../x/sys/unix/syscall_darwin_libSystem.go | 27 - .../x/sys/unix/syscall_dragonfly.go | 545 - .../x/sys/unix/syscall_dragonfly_amd64.go | 57 - .../golang.org/x/sys/unix/syscall_freebsd.go | 645 - .../x/sys/unix/syscall_freebsd_386.go | 65 - .../x/sys/unix/syscall_freebsd_amd64.go | 65 - .../x/sys/unix/syscall_freebsd_arm.go | 61 - .../x/sys/unix/syscall_freebsd_arm64.go | 61 - .../x/sys/unix/syscall_freebsd_riscv64.go | 61 - .../golang.org/x/sys/unix/syscall_hurd.go | 30 - .../golang.org/x/sys/unix/syscall_hurd_386.go | 29 - .../golang.org/x/sys/unix/syscall_illumos.go | 79 - .../golang.org/x/sys/unix/syscall_linux.go | 2544 - .../x/sys/unix/syscall_linux_386.go | 315 - .../x/sys/unix/syscall_linux_alarm.go | 14 - .../x/sys/unix/syscall_linux_amd64.go | 146 - .../x/sys/unix/syscall_linux_amd64_gc.go | 13 - .../x/sys/unix/syscall_linux_arm.go | 217 - .../x/sys/unix/syscall_linux_arm64.go | 185 - .../golang.org/x/sys/unix/syscall_linux_gc.go | 15 - .../x/sys/unix/syscall_linux_gc_386.go | 17 - .../x/sys/unix/syscall_linux_gc_arm.go | 14 - .../x/sys/unix/syscall_linux_gccgo_386.go | 31 - .../x/sys/unix/syscall_linux_gccgo_arm.go | 21 - .../x/sys/unix/syscall_linux_loong64.go | 217 - .../x/sys/unix/syscall_linux_mips64x.go | 190 - .../x/sys/unix/syscall_linux_mipsx.go | 176 - .../x/sys/unix/syscall_linux_ppc.go | 205 - .../x/sys/unix/syscall_linux_ppc64x.go | 117 - .../x/sys/unix/syscall_linux_riscv64.go | 179 - .../x/sys/unix/syscall_linux_s390x.go | 297 - .../x/sys/unix/syscall_linux_sparc64.go | 113 - .../golang.org/x/sys/unix/syscall_netbsd.go | 621 - .../x/sys/unix/syscall_netbsd_386.go | 38 - .../x/sys/unix/syscall_netbsd_amd64.go | 38 - .../x/sys/unix/syscall_netbsd_arm.go | 38 - .../x/sys/unix/syscall_netbsd_arm64.go | 38 - .../golang.org/x/sys/unix/syscall_openbsd.go | 403 - .../x/sys/unix/syscall_openbsd_386.go | 42 - .../x/sys/unix/syscall_openbsd_amd64.go | 42 - .../x/sys/unix/syscall_openbsd_arm.go | 42 - .../x/sys/unix/syscall_openbsd_arm64.go | 42 - .../x/sys/unix/syscall_openbsd_libc.go | 27 - .../x/sys/unix/syscall_openbsd_mips64.go | 39 - .../x/sys/unix/syscall_openbsd_ppc64.go | 42 - .../x/sys/unix/syscall_openbsd_riscv64.go | 42 - .../golang.org/x/sys/unix/syscall_solaris.go | 1135 - .../x/sys/unix/syscall_solaris_amd64.go | 28 - .../golang.org/x/sys/unix/syscall_unix.go | 596 - .../golang.org/x/sys/unix/syscall_unix_gc.go | 16 - .../x/sys/unix/syscall_unix_gc_ppc64x.go | 25 - .../x/sys/unix/syscall_zos_s390x.go | 1994 - .../golang.org/x/sys/unix/sysvshm_linux.go | 21 - .../golang.org/x/sys/unix/sysvshm_unix.go | 52 - .../x/sys/unix/sysvshm_unix_other.go | 14 - .../golang.org/x/sys/unix/timestruct.go | 77 - .../golang.org/x/sys/unix/unveil_openbsd.go | 42 - .../vendor/golang.org/x/sys/unix/xattr_bsd.go | 281 - .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1385 - .../x/sys/unix/zerrors_aix_ppc64.go | 1386 - .../x/sys/unix/zerrors_darwin_amd64.go | 1911 - .../x/sys/unix/zerrors_darwin_arm64.go | 1911 - .../x/sys/unix/zerrors_dragonfly_amd64.go | 1738 - .../x/sys/unix/zerrors_freebsd_386.go | 2043 - .../x/sys/unix/zerrors_freebsd_amd64.go | 2040 - .../x/sys/unix/zerrors_freebsd_arm.go | 2034 - .../x/sys/unix/zerrors_freebsd_arm64.go | 2034 - .../x/sys/unix/zerrors_freebsd_riscv64.go | 2148 - .../golang.org/x/sys/unix/zerrors_linux.go | 3493 - .../x/sys/unix/zerrors_linux_386.go | 829 - .../x/sys/unix/zerrors_linux_amd64.go | 829 - .../x/sys/unix/zerrors_linux_arm.go | 835 - .../x/sys/unix/zerrors_linux_arm64.go | 827 - .../x/sys/unix/zerrors_linux_loong64.go | 819 - .../x/sys/unix/zerrors_linux_mips.go | 836 - .../x/sys/unix/zerrors_linux_mips64.go | 836 - .../x/sys/unix/zerrors_linux_mips64le.go | 836 - .../x/sys/unix/zerrors_linux_mipsle.go | 836 - .../x/sys/unix/zerrors_linux_ppc.go | 888 - .../x/sys/unix/zerrors_linux_ppc64.go | 892 - .../x/sys/unix/zerrors_linux_ppc64le.go | 892 - .../x/sys/unix/zerrors_linux_riscv64.go | 816 - .../x/sys/unix/zerrors_linux_s390x.go | 891 - .../x/sys/unix/zerrors_linux_sparc64.go | 934 - .../x/sys/unix/zerrors_netbsd_386.go | 1780 - .../x/sys/unix/zerrors_netbsd_amd64.go | 1770 - .../x/sys/unix/zerrors_netbsd_arm.go | 1759 - .../x/sys/unix/zerrors_netbsd_arm64.go | 1770 - .../x/sys/unix/zerrors_openbsd_386.go | 1906 - .../x/sys/unix/zerrors_openbsd_amd64.go | 1906 - .../x/sys/unix/zerrors_openbsd_arm.go | 1906 - .../x/sys/unix/zerrors_openbsd_arm64.go | 1906 - .../x/sys/unix/zerrors_openbsd_mips64.go | 1906 - .../x/sys/unix/zerrors_openbsd_ppc64.go | 1905 - .../x/sys/unix/zerrors_openbsd_riscv64.go | 1904 - .../x/sys/unix/zerrors_solaris_amd64.go | 1557 - .../x/sys/unix/zerrors_zos_s390x.go | 860 - .../x/sys/unix/zptrace_armnn_linux.go | 42 - .../x/sys/unix/zptrace_linux_arm64.go | 17 - .../x/sys/unix/zptrace_mipsnn_linux.go | 51 - .../x/sys/unix/zptrace_mipsnnle_linux.go | 51 - .../x/sys/unix/zptrace_x86_linux.go | 81 - .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1484 - .../x/sys/unix/zsyscall_aix_ppc64.go | 1443 - .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1189 - .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1070 - .../x/sys/unix/zsyscall_darwin_amd64.go | 2572 - .../x/sys/unix/zsyscall_darwin_amd64.s | 903 - .../x/sys/unix/zsyscall_darwin_arm64.go | 2572 - .../x/sys/unix/zsyscall_darwin_arm64.s | 903 - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1689 - .../x/sys/unix/zsyscall_freebsd_386.go | 1909 - .../x/sys/unix/zsyscall_freebsd_amd64.go | 1909 - .../x/sys/unix/zsyscall_freebsd_arm.go | 1909 - .../x/sys/unix/zsyscall_freebsd_arm64.go | 1909 - .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1909 - .../x/sys/unix/zsyscall_illumos_amd64.go | 102 - .../golang.org/x/sys/unix/zsyscall_linux.go | 2188 - .../x/sys/unix/zsyscall_linux_386.go | 487 - .../x/sys/unix/zsyscall_linux_amd64.go | 654 - .../x/sys/unix/zsyscall_linux_arm.go | 602 - .../x/sys/unix/zsyscall_linux_arm64.go | 553 - .../x/sys/unix/zsyscall_linux_loong64.go | 487 - .../x/sys/unix/zsyscall_linux_mips.go | 654 - .../x/sys/unix/zsyscall_linux_mips64.go | 648 - .../x/sys/unix/zsyscall_linux_mips64le.go | 637 - .../x/sys/unix/zsyscall_linux_mipsle.go | 654 - .../x/sys/unix/zsyscall_linux_ppc.go | 659 - .../x/sys/unix/zsyscall_linux_ppc64.go | 705 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 705 - .../x/sys/unix/zsyscall_linux_riscv64.go | 533 - .../x/sys/unix/zsyscall_linux_s390x.go | 496 - .../x/sys/unix/zsyscall_linux_sparc64.go | 649 - .../x/sys/unix/zsyscall_netbsd_386.go | 1860 - .../x/sys/unix/zsyscall_netbsd_amd64.go | 1860 - .../x/sys/unix/zsyscall_netbsd_arm.go | 1860 - .../x/sys/unix/zsyscall_netbsd_arm64.go | 1860 - .../x/sys/unix/zsyscall_openbsd_386.go | 2251 - .../x/sys/unix/zsyscall_openbsd_386.s | 674 - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2253 - .../x/sys/unix/zsyscall_openbsd_amd64.s | 674 - .../x/sys/unix/zsyscall_openbsd_arm.go | 2251 - .../x/sys/unix/zsyscall_openbsd_arm.s | 674 - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2251 - .../x/sys/unix/zsyscall_openbsd_arm64.s | 674 - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2251 - .../x/sys/unix/zsyscall_openbsd_mips64.s | 674 - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2251 - .../x/sys/unix/zsyscall_openbsd_ppc64.s | 808 - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2251 - .../x/sys/unix/zsyscall_openbsd_riscv64.s | 674 - .../x/sys/unix/zsyscall_solaris_amd64.go | 2104 - .../x/sys/unix/zsyscall_zos_s390x.go | 1265 - .../x/sys/unix/zsysctl_openbsd_386.go | 281 - .../x/sys/unix/zsysctl_openbsd_amd64.go | 281 - .../x/sys/unix/zsysctl_openbsd_arm.go | 281 - .../x/sys/unix/zsysctl_openbsd_arm64.go | 281 - .../x/sys/unix/zsysctl_openbsd_mips64.go | 281 - .../x/sys/unix/zsysctl_openbsd_ppc64.go | 281 - .../x/sys/unix/zsysctl_openbsd_riscv64.go | 282 - .../x/sys/unix/zsysnum_darwin_amd64.go | 440 - .../x/sys/unix/zsysnum_darwin_arm64.go | 438 - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 317 - .../x/sys/unix/zsysnum_freebsd_386.go | 394 - .../x/sys/unix/zsysnum_freebsd_amd64.go | 394 - .../x/sys/unix/zsysnum_freebsd_arm.go | 394 - .../x/sys/unix/zsysnum_freebsd_arm64.go | 394 - .../x/sys/unix/zsysnum_freebsd_riscv64.go | 394 - .../x/sys/unix/zsysnum_linux_386.go | 450 - .../x/sys/unix/zsysnum_linux_amd64.go | 372 - .../x/sys/unix/zsysnum_linux_arm.go | 414 - .../x/sys/unix/zsysnum_linux_arm64.go | 317 - .../x/sys/unix/zsysnum_linux_loong64.go | 311 - .../x/sys/unix/zsysnum_linux_mips.go | 434 - .../x/sys/unix/zsysnum_linux_mips64.go | 364 - .../x/sys/unix/zsysnum_linux_mips64le.go | 364 - .../x/sys/unix/zsysnum_linux_mipsle.go | 434 - .../x/sys/unix/zsysnum_linux_ppc.go | 441 - .../x/sys/unix/zsysnum_linux_ppc64.go | 413 - .../x/sys/unix/zsysnum_linux_ppc64le.go | 413 - .../x/sys/unix/zsysnum_linux_riscv64.go | 316 - .../x/sys/unix/zsysnum_linux_s390x.go | 378 - .../x/sys/unix/zsysnum_linux_sparc64.go | 392 - .../x/sys/unix/zsysnum_netbsd_386.go | 275 - .../x/sys/unix/zsysnum_netbsd_amd64.go | 275 - .../x/sys/unix/zsysnum_netbsd_arm.go | 275 - .../x/sys/unix/zsysnum_netbsd_arm64.go | 275 - .../x/sys/unix/zsysnum_openbsd_386.go | 220 - .../x/sys/unix/zsysnum_openbsd_amd64.go | 220 - .../x/sys/unix/zsysnum_openbsd_arm.go | 220 - .../x/sys/unix/zsysnum_openbsd_arm64.go | 219 - .../x/sys/unix/zsysnum_openbsd_mips64.go | 222 - .../x/sys/unix/zsysnum_openbsd_ppc64.go | 218 - .../x/sys/unix/zsysnum_openbsd_riscv64.go | 219 - .../x/sys/unix/zsysnum_zos_s390x.go | 2670 - .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 354 - .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 358 - .../x/sys/unix/ztypes_darwin_amd64.go | 806 - .../x/sys/unix/ztypes_darwin_arm64.go | 806 - .../x/sys/unix/ztypes_dragonfly_amd64.go | 474 - .../x/sys/unix/ztypes_freebsd_386.go | 651 - .../x/sys/unix/ztypes_freebsd_amd64.go | 656 - .../x/sys/unix/ztypes_freebsd_arm.go | 642 - .../x/sys/unix/ztypes_freebsd_arm64.go | 636 - .../x/sys/unix/ztypes_freebsd_riscv64.go | 638 - .../golang.org/x/sys/unix/ztypes_linux.go | 5858 - .../golang.org/x/sys/unix/ztypes_linux_386.go | 696 - .../x/sys/unix/ztypes_linux_amd64.go | 711 - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 691 - .../x/sys/unix/ztypes_linux_arm64.go | 690 - .../x/sys/unix/ztypes_linux_loong64.go | 691 - .../x/sys/unix/ztypes_linux_mips.go | 696 - .../x/sys/unix/ztypes_linux_mips64.go | 693 - .../x/sys/unix/ztypes_linux_mips64le.go | 693 - .../x/sys/unix/ztypes_linux_mipsle.go | 696 - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 704 - .../x/sys/unix/ztypes_linux_ppc64.go | 699 - .../x/sys/unix/ztypes_linux_ppc64le.go | 699 - .../x/sys/unix/ztypes_linux_riscv64.go | 718 - .../x/sys/unix/ztypes_linux_s390x.go | 713 - .../x/sys/unix/ztypes_linux_sparc64.go | 694 - .../x/sys/unix/ztypes_netbsd_386.go | 586 - .../x/sys/unix/ztypes_netbsd_amd64.go | 594 - .../x/sys/unix/ztypes_netbsd_arm.go | 591 - .../x/sys/unix/ztypes_netbsd_arm64.go | 594 - .../x/sys/unix/ztypes_openbsd_386.go | 569 - .../x/sys/unix/ztypes_openbsd_amd64.go | 569 - .../x/sys/unix/ztypes_openbsd_arm.go | 576 - .../x/sys/unix/ztypes_openbsd_arm64.go | 569 - .../x/sys/unix/ztypes_openbsd_mips64.go | 569 - .../x/sys/unix/ztypes_openbsd_ppc64.go | 571 - .../x/sys/unix/ztypes_openbsd_riscv64.go | 571 - .../x/sys/unix/ztypes_solaris_amd64.go | 517 - .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 415 - .../golang.org/x/sys/windows/aliases.go | 13 - .../golang.org/x/sys/windows/dll_windows.go | 416 - .../vendor/golang.org/x/sys/windows/empty.s | 9 - .../golang.org/x/sys/windows/env_windows.go | 54 - .../golang.org/x/sys/windows/eventlog.go | 21 - .../golang.org/x/sys/windows/exec_windows.go | 183 - .../x/sys/windows/memory_windows.go | 48 - .../golang.org/x/sys/windows/mkerrors.bash | 70 - .../x/sys/windows/mkknownfolderids.bash | 27 - .../golang.org/x/sys/windows/mksyscall.go | 10 - .../vendor/golang.org/x/sys/windows/race.go | 31 - .../vendor/golang.org/x/sys/windows/race0.go | 26 - .../golang.org/x/sys/windows/registry/key.go | 206 - .../x/sys/windows/registry/mksyscall.go | 10 - .../x/sys/windows/registry/syscall.go | 33 - .../x/sys/windows/registry/value.go | 387 - .../sys/windows/registry/zsyscall_windows.go | 117 - .../x/sys/windows/security_windows.go | 1444 - .../golang.org/x/sys/windows/service.go | 254 - .../x/sys/windows/setupapi_windows.go | 1425 - .../vendor/golang.org/x/sys/windows/str.go | 23 - .../golang.org/x/sys/windows/syscall.go | 105 - .../x/sys/windows/syscall_windows.go | 1819 - .../golang.org/x/sys/windows/types_windows.go | 3349 - .../x/sys/windows/types_windows_386.go | 35 - .../x/sys/windows/types_windows_amd64.go | 34 - .../x/sys/windows/types_windows_arm.go | 35 - .../x/sys/windows/types_windows_arm64.go | 34 - .../x/sys/windows/zerrors_windows.go | 9468 -- .../x/sys/windows/zknownfolderids_windows.go | 149 - .../x/sys/windows/zsyscall_windows.go | 4341 - backend/vendor/golang.org/x/text/LICENSE | 27 - backend/vendor/golang.org/x/text/PATENTS | 22 - .../vendor/golang.org/x/text/cases/cases.go | 162 - .../vendor/golang.org/x/text/cases/context.go | 376 - .../vendor/golang.org/x/text/cases/fold.go | 34 - backend/vendor/golang.org/x/text/cases/icu.go | 62 - .../vendor/golang.org/x/text/cases/info.go | 82 - backend/vendor/golang.org/x/text/cases/map.go | 816 - .../golang.org/x/text/cases/tables10.0.0.go | 2256 - .../golang.org/x/text/cases/tables11.0.0.go | 2317 - .../golang.org/x/text/cases/tables12.0.0.go | 2360 - .../golang.org/x/text/cases/tables13.0.0.go | 2400 - .../golang.org/x/text/cases/tables9.0.0.go | 2216 - .../vendor/golang.org/x/text/cases/trieval.go | 217 - .../golang.org/x/text/internal/internal.go | 49 - .../x/text/internal/language/common.go | 16 - .../x/text/internal/language/compact.go | 29 - .../text/internal/language/compact/compact.go | 61 - .../internal/language/compact/language.go | 260 - .../text/internal/language/compact/parents.go | 120 - .../text/internal/language/compact/tables.go | 1015 - .../x/text/internal/language/compact/tags.go | 91 - .../x/text/internal/language/compose.go | 167 - .../x/text/internal/language/coverage.go | 28 - .../x/text/internal/language/language.go | 627 - .../x/text/internal/language/lookup.go | 412 - .../x/text/internal/language/match.go | 226 - .../x/text/internal/language/parse.go | 608 - .../x/text/internal/language/tables.go | 3472 - .../x/text/internal/language/tags.go | 48 - .../golang.org/x/text/internal/match.go | 67 - .../golang.org/x/text/internal/tag/tag.go | 100 - .../golang.org/x/text/language/coverage.go | 187 - .../vendor/golang.org/x/text/language/doc.go | 98 - .../golang.org/x/text/language/language.go | 605 - .../golang.org/x/text/language/match.go | 735 - .../golang.org/x/text/language/parse.go | 256 - .../golang.org/x/text/language/tables.go | 298 - .../vendor/golang.org/x/text/language/tags.go | 145 - .../vendor/golang.org/x/text/runes/cond.go | 187 - .../vendor/golang.org/x/text/runes/runes.go | 355 - .../golang.org/x/text/transform/transform.go | 709 - .../x/text/unicode/norm/composition.go | 512 - .../x/text/unicode/norm/forminfo.go | 279 - .../golang.org/x/text/unicode/norm/input.go | 109 - .../golang.org/x/text/unicode/norm/iter.go | 458 - .../x/text/unicode/norm/normalize.go | 610 - .../x/text/unicode/norm/readwriter.go | 125 - .../x/text/unicode/norm/tables10.0.0.go | 7658 - .../x/text/unicode/norm/tables11.0.0.go | 7694 - .../x/text/unicode/norm/tables12.0.0.go | 7711 - .../x/text/unicode/norm/tables13.0.0.go | 7761 - .../x/text/unicode/norm/tables9.0.0.go | 7638 - .../x/text/unicode/norm/transform.go | 88 - .../golang.org/x/text/unicode/norm/trie.go | 54 - backend/vendor/gopkg.in/ini.v1/.editorconfig | 12 - backend/vendor/gopkg.in/ini.v1/.gitignore | 7 - backend/vendor/gopkg.in/ini.v1/.golangci.yml | 27 - backend/vendor/gopkg.in/ini.v1/LICENSE | 191 - backend/vendor/gopkg.in/ini.v1/Makefile | 15 - backend/vendor/gopkg.in/ini.v1/README.md | 43 - backend/vendor/gopkg.in/ini.v1/codecov.yml | 16 - backend/vendor/gopkg.in/ini.v1/data_source.go | 76 - backend/vendor/gopkg.in/ini.v1/deprecated.go | 22 - backend/vendor/gopkg.in/ini.v1/error.go | 49 - backend/vendor/gopkg.in/ini.v1/file.go | 541 - backend/vendor/gopkg.in/ini.v1/helper.go | 24 - backend/vendor/gopkg.in/ini.v1/ini.go | 176 - backend/vendor/gopkg.in/ini.v1/key.go | 837 - backend/vendor/gopkg.in/ini.v1/parser.go | 520 - backend/vendor/gopkg.in/ini.v1/section.go | 256 - backend/vendor/gopkg.in/ini.v1/struct.go | 747 - .../natefinch/lumberjack.v2/.gitignore | 23 - .../natefinch/lumberjack.v2/.travis.yml | 11 - .../gopkg.in/natefinch/lumberjack.v2/LICENSE | 21 - .../natefinch/lumberjack.v2/README.md | 179 - .../gopkg.in/natefinch/lumberjack.v2/chown.go | 12 - .../natefinch/lumberjack.v2/chown_linux.go | 19 - .../natefinch/lumberjack.v2/lumberjack.go | 541 - backend/vendor/gopkg.in/yaml.v2/.travis.yml | 17 - backend/vendor/gopkg.in/yaml.v2/LICENSE | 201 - .../vendor/gopkg.in/yaml.v2/LICENSE.libyaml | 31 - backend/vendor/gopkg.in/yaml.v2/NOTICE | 13 - backend/vendor/gopkg.in/yaml.v2/README.md | 133 - backend/vendor/gopkg.in/yaml.v2/apic.go | 744 - backend/vendor/gopkg.in/yaml.v2/decode.go | 815 - backend/vendor/gopkg.in/yaml.v2/emitterc.go | 1684 - backend/vendor/gopkg.in/yaml.v2/encode.go | 390 - backend/vendor/gopkg.in/yaml.v2/parserc.go | 1111 - backend/vendor/gopkg.in/yaml.v2/readerc.go | 412 - backend/vendor/gopkg.in/yaml.v2/resolve.go | 258 - backend/vendor/gopkg.in/yaml.v2/scannerc.go | 2713 - backend/vendor/gopkg.in/yaml.v2/sorter.go | 113 - backend/vendor/gopkg.in/yaml.v2/writerc.go | 26 - backend/vendor/gopkg.in/yaml.v2/yaml.go | 475 - backend/vendor/gopkg.in/yaml.v2/yamlh.go | 742 - .../vendor/gopkg.in/yaml.v2/yamlprivateh.go | 173 - backend/vendor/gopkg.in/yaml.v3/LICENSE | 50 - backend/vendor/gopkg.in/yaml.v3/NOTICE | 13 - backend/vendor/gopkg.in/yaml.v3/README.md | 150 - backend/vendor/gopkg.in/yaml.v3/apic.go | 747 - backend/vendor/gopkg.in/yaml.v3/decode.go | 1000 - backend/vendor/gopkg.in/yaml.v3/emitterc.go | 2019 - backend/vendor/gopkg.in/yaml.v3/encode.go | 577 - backend/vendor/gopkg.in/yaml.v3/parserc.go | 1274 - backend/vendor/gopkg.in/yaml.v3/readerc.go | 434 - backend/vendor/gopkg.in/yaml.v3/resolve.go | 326 - backend/vendor/gopkg.in/yaml.v3/scannerc.go | 3040 - backend/vendor/gopkg.in/yaml.v3/sorter.go | 134 - backend/vendor/gopkg.in/yaml.v3/writerc.go | 48 - backend/vendor/gopkg.in/yaml.v3/yaml.go | 693 - backend/vendor/gopkg.in/yaml.v3/yamlh.go | 809 - .../vendor/gopkg.in/yaml.v3/yamlprivateh.go | 198 - backend/vendor/modules.txt | 234 - frontend/src/components/Search.vue | 28 +- frontend/src/css/header.css | 9 + frontend/src/css/mobile.css | 4 +- 1535 files changed, 61 insertions(+), 761224 deletions(-) delete mode 100644 backend/vendor/github.com/andybalholm/brotli/LICENSE delete mode 100644 backend/vendor/github.com/andybalholm/brotli/README.md delete mode 100644 backend/vendor/github.com/andybalholm/brotli/backward_references.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/backward_references_hq.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/bit_cost.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/bit_reader.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/block_splitter.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/block_splitter_command.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/block_splitter_distance.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/block_splitter_literal.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/cluster.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/cluster_command.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/cluster_distance.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/cluster_literal.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/command.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/compress_fragment.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/constants.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/context.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/decode.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/dictionary.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/dictionary_hash.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/encode.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/encoder_dict.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/entropy_encode.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/entropy_encode_static.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/fast_log.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/find_match_length.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/h10.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/h5.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/h6.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/hash.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/hash_composite.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/hash_rolling.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/histogram.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/http.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/huffman.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/literal_cost.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/memory.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/metablock.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/metablock_command.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/metablock_distance.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/metablock_literal.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/params.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/platform.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/prefix.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/prefix_dec.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/quality.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/reader.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/ringbuffer.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/state.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/static_dict.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/static_dict_lut.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/symbol_list.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/transform.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/utf8_util.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/util.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/write_bits.go delete mode 100644 backend/vendor/github.com/andybalholm/brotli/writer.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/.gitignore delete mode 100644 backend/vendor/github.com/asdine/storm/v3/.travis.yml delete mode 100644 backend/vendor/github.com/asdine/storm/v3/LICENSE delete mode 100644 backend/vendor/github.com/asdine/storm/v3/README.md delete mode 100644 backend/vendor/github.com/asdine/storm/v3/bucket.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/codec/.gitignore delete mode 100644 backend/vendor/github.com/asdine/storm/v3/codec/codec.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/codec/json/json.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/errors.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/extract.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/finder.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/index/errors.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/index/indexes.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/index/list.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/index/options.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/index/unique.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/internal/boltdb.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/kv.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/metadata.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/node.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/options.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/q/compare.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/q/fieldmatcher.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/q/regexp.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/q/tree.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/query.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/scan.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/sink.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap_go1.8.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/store.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/storm.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/transaction.go delete mode 100644 backend/vendor/github.com/asdine/storm/v3/version.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/LICENSE delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/bypass.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/common.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/config.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/doc.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/dump.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/format.go delete mode 100644 backend/vendor/github.com/davecgh/go-spew/spew/spew.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/.travis.yml delete mode 100644 backend/vendor/github.com/disintegration/imaging/LICENSE delete mode 100644 backend/vendor/github.com/disintegration/imaging/README.md delete mode 100644 backend/vendor/github.com/disintegration/imaging/adjust.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/convolution.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/doc.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/effects.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/histogram.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/io.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/resize.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/scanner.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/tools.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/transform.go delete mode 100644 backend/vendor/github.com/disintegration/imaging/utils.go delete mode 100644 backend/vendor/github.com/dsnet/compress/.travis.yml delete mode 100644 backend/vendor/github.com/dsnet/compress/LICENSE.md delete mode 100644 backend/vendor/github.com/dsnet/compress/README.md delete mode 100644 backend/vendor/github.com/dsnet/compress/api.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/bwt.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/common.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/fuzz_off.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/fuzz_on.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/common.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_byte.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_int.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/mtf_rle2.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/prefix.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/reader.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/rle1.go delete mode 100644 backend/vendor/github.com/dsnet/compress/bzip2/writer.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/common.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/debug.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/errors/errors.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/gofuzz.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/debug.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/decoder.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/encoder.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/prefix.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/range.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/reader.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/wrap.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/prefix/writer.go delete mode 100644 backend/vendor/github.com/dsnet/compress/internal/release.go delete mode 100644 backend/vendor/github.com/dsnet/compress/zbench.sh delete mode 100644 backend/vendor/github.com/dsnet/compress/zfuzz.sh delete mode 100644 backend/vendor/github.com/dsnet/compress/zprof.sh delete mode 100644 backend/vendor/github.com/dsnet/compress/ztest.sh delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/.MODULE_ROOT delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/LICENSE delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/ifd.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/parser.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/testing_common.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/type.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/utility.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/value_context.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/common/value_encoder.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/data_layer.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/error.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/exif.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/gps.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder_encode.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/ifd_enumerate.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/ifd_tag_entry.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/package.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/tags.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/tags_data.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/testing_common.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/README.md delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/accessor.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_8828_oecf.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9000_exif_version.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9101_components_configuration.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_927C_maker_note.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9286_user_comment.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A000_flashpix_version.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A20C_spatial_frequency_response.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A300_file_source.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A301_scene_type.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A302_cfa_pattern.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_iop_0002_interop_version.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001B_gps_processing_method.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001C_gps_area_information.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/registration.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/undefined/type.go delete mode 100644 backend/vendor/github.com/dsoprea/go-exif/v3/utility.go delete mode 100644 backend/vendor/github.com/dsoprea/go-logging/.travis.yml delete mode 100644 backend/vendor/github.com/dsoprea/go-logging/LICENSE delete mode 100644 backend/vendor/github.com/dsoprea/go-logging/README.md delete mode 100644 backend/vendor/github.com/dsoprea/go-logging/config.go delete mode 100644 backend/vendor/github.com/dsoprea/go-logging/console_adapter.go delete mode 100644 backend/vendor/github.com/dsoprea/go-logging/log.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/LICENSE delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/README.md delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/bounceback.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseekcloser.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseeker.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/calculate_seek.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/common.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/copy_bytes_between_positions.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/does_exist.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/graceful_copy.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/list_files.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/progress_wrapper.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/read_counter.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readseeker_to_readerat.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readwriteseekcloser.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/seekable_buffer.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/simplefileinfo.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/utility.go delete mode 100644 backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/write_counter.go delete mode 100644 backend/vendor/github.com/flynn/go-shlex/COPYING delete mode 100644 backend/vendor/github.com/flynn/go-shlex/Makefile delete mode 100644 backend/vendor/github.com/flynn/go-shlex/README.md delete mode 100644 backend/vendor/github.com/flynn/go-shlex/shlex.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/.editorconfig delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/.gitattributes delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/.gitignore delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/.mailmap delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/LICENSE delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/README.md delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/backend_fen.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/backend_inotify.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/backend_other.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/backend_windows.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/fsnotify.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/system_bsd.go delete mode 100644 backend/vendor/github.com/fsnotify/fsnotify/system_darwin.go delete mode 100644 backend/vendor/github.com/go-errors/errors/.travis.yml delete mode 100644 backend/vendor/github.com/go-errors/errors/LICENSE.MIT delete mode 100644 backend/vendor/github.com/go-errors/errors/README.md delete mode 100644 backend/vendor/github.com/go-errors/errors/error.go delete mode 100644 backend/vendor/github.com/go-errors/errors/error_1_13.go delete mode 100644 backend/vendor/github.com/go-errors/errors/error_backward.go delete mode 100644 backend/vendor/github.com/go-errors/errors/parse_panic.go delete mode 100644 backend/vendor/github.com/go-errors/errors/stackframe.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/.travis.yml delete mode 100644 backend/vendor/github.com/go-ole/go-ole/ChangeLog.md delete mode 100644 backend/vendor/github.com/go-ole/go-ole/LICENSE delete mode 100644 backend/vendor/github.com/go-ole/go-ole/README.md delete mode 100644 backend/vendor/github.com/go-ole/go-ole/appveyor.yml delete mode 100644 backend/vendor/github.com/go-ole/go-ole/com.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/com_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/connect.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/constants.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/error.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/error_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/error_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/guid.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iconnectionpoint.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/idispatch.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/idispatch_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/idispatch_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/ienumvariant.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/ienumvariant_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iinspectable.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iinspectable_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iinspectable_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/itypeinfo.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/itypeinfo_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iunknown.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iunknown_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/iunknown_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/ole.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/oleutil/connection.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/oleutil/go-get.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/safearray.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/safearray_func.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/safearray_windows.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/safearrayconversion.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/safearrayslices.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/utility.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variables.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_386.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_amd64.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_arm.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_arm64.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_date_386.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_date_amd64.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_date_arm.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_date_arm64.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_ppc64le.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/variant_s390x.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/vt_string.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/winrt.go delete mode 100644 backend/vendor/github.com/go-ole/go-ole/winrt_doc.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/.gitignore delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/LICENSE delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/README.md delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/claims.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/doc.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/ed25519.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/errors.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/hmac.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/map_claims.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/none.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/parser.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/parser_option.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/request/doc.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/request/extractor.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/request/oauth2.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/request/request.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/rsa.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/signing_method.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/token.go delete mode 100644 backend/vendor/github.com/golang-jwt/jwt/v4/types.go delete mode 100644 backend/vendor/github.com/golang/geo/LICENSE delete mode 100644 backend/vendor/github.com/golang/geo/r1/doc.go delete mode 100644 backend/vendor/github.com/golang/geo/r1/interval.go delete mode 100644 backend/vendor/github.com/golang/geo/r2/doc.go delete mode 100644 backend/vendor/github.com/golang/geo/r2/rect.go delete mode 100644 backend/vendor/github.com/golang/geo/r3/doc.go delete mode 100644 backend/vendor/github.com/golang/geo/r3/precisevector.go delete mode 100644 backend/vendor/github.com/golang/geo/r3/vector.go delete mode 100644 backend/vendor/github.com/golang/geo/s1/angle.go delete mode 100644 backend/vendor/github.com/golang/geo/s1/chordangle.go delete mode 100644 backend/vendor/github.com/golang/geo/s1/doc.go delete mode 100644 backend/vendor/github.com/golang/geo/s1/interval.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/bits_go18.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/bits_go19.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/cap.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/cell.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/cell_index.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/cellid.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/cellunion.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/centroids.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/contains_point_query.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/contains_vertex_query.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/convex_hull_query.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/crossing_edge_query.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/distance_target.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/doc.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/edge_clipping.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/edge_crosser.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/edge_crossings.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/edge_distances.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/edge_query.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/edge_tessellator.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/encode.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/interleave.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/latlng.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/lexicon.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/loop.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/matrix3x3.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/max_distance_targets.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/metric.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/min_distance_targets.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/nthderivative.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/paddedcell.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/point.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/point_measures.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/point_vector.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/pointcompression.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/polygon.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/polyline.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/polyline_measures.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/predicates.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/projections.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/query_entry.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/query_options.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/rect.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/rect_bounder.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/region.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/regioncoverer.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/regionunion.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/shape.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/shapeindex.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/shapeutil.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/shapeutil_edge_iterator.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/stuv.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/util.go delete mode 100644 backend/vendor/github.com/golang/geo/s2/wedge_relations.go delete mode 100644 backend/vendor/github.com/golang/snappy/.gitignore delete mode 100644 backend/vendor/github.com/golang/snappy/AUTHORS delete mode 100644 backend/vendor/github.com/golang/snappy/CONTRIBUTORS delete mode 100644 backend/vendor/github.com/golang/snappy/LICENSE delete mode 100644 backend/vendor/github.com/golang/snappy/README delete mode 100644 backend/vendor/github.com/golang/snappy/decode.go delete mode 100644 backend/vendor/github.com/golang/snappy/decode_amd64.s delete mode 100644 backend/vendor/github.com/golang/snappy/decode_arm64.s delete mode 100644 backend/vendor/github.com/golang/snappy/decode_asm.go delete mode 100644 backend/vendor/github.com/golang/snappy/decode_other.go delete mode 100644 backend/vendor/github.com/golang/snappy/encode.go delete mode 100644 backend/vendor/github.com/golang/snappy/encode_amd64.s delete mode 100644 backend/vendor/github.com/golang/snappy/encode_arm64.s delete mode 100644 backend/vendor/github.com/golang/snappy/encode_asm.go delete mode 100644 backend/vendor/github.com/golang/snappy/encode_other.go delete mode 100644 backend/vendor/github.com/golang/snappy/snappy.go delete mode 100644 backend/vendor/github.com/gorilla/mux/AUTHORS delete mode 100644 backend/vendor/github.com/gorilla/mux/LICENSE delete mode 100644 backend/vendor/github.com/gorilla/mux/README.md delete mode 100644 backend/vendor/github.com/gorilla/mux/doc.go delete mode 100644 backend/vendor/github.com/gorilla/mux/middleware.go delete mode 100644 backend/vendor/github.com/gorilla/mux/mux.go delete mode 100644 backend/vendor/github.com/gorilla/mux/regexp.go delete mode 100644 backend/vendor/github.com/gorilla/mux/route.go delete mode 100644 backend/vendor/github.com/gorilla/mux/test_helpers.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/.gitignore delete mode 100644 backend/vendor/github.com/gorilla/websocket/AUTHORS delete mode 100644 backend/vendor/github.com/gorilla/websocket/LICENSE delete mode 100644 backend/vendor/github.com/gorilla/websocket/README.md delete mode 100644 backend/vendor/github.com/gorilla/websocket/client.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/compression.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/conn.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/doc.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/join.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/json.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/mask.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/mask_safe.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/prepared.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/proxy.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/server.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/tls_handshake.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/tls_handshake_116.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/util.go delete mode 100644 backend/vendor/github.com/gorilla/websocket/x_net_proxy.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/.gitignore delete mode 100644 backend/vendor/github.com/hashicorp/hcl/.travis.yml delete mode 100644 backend/vendor/github.com/hashicorp/hcl/LICENSE delete mode 100644 backend/vendor/github.com/hashicorp/hcl/Makefile delete mode 100644 backend/vendor/github.com/hashicorp/hcl/README.md delete mode 100644 backend/vendor/github.com/hashicorp/hcl/appveyor.yml delete mode 100644 backend/vendor/github.com/hashicorp/hcl/decoder.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/parser/error.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/token/position.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/hcl/token/token.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/json/parser/flatten.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/json/parser/parser.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/json/token/position.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/json/token/token.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/lex.go delete mode 100644 backend/vendor/github.com/hashicorp/hcl/parse.go delete mode 100644 backend/vendor/github.com/inconshreveable/mousetrap/LICENSE delete mode 100644 backend/vendor/github.com/inconshreveable/mousetrap/README.md delete mode 100644 backend/vendor/github.com/inconshreveable/mousetrap/trap_others.go delete mode 100644 backend/vendor/github.com/inconshreveable/mousetrap/trap_windows.go delete mode 100644 backend/vendor/github.com/klauspost/compress/LICENSE delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/deflate.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/dict_decoder.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/fast_encoder.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/gen_inflate.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/huffman_code.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/huffman_sortByFreq.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/huffman_sortByLiteral.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/inflate.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/inflate_gen.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/level1.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/level2.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/level3.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/level4.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/level5.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/level6.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/regmask_amd64.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/regmask_other.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/stateless.go delete mode 100644 backend/vendor/github.com/klauspost/compress/flate/token.go delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/README.md delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/bitreader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/bitwriter.go delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/bytereader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/compress.go delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/decompress.go delete mode 100644 backend/vendor/github.com/klauspost/compress/fse/fse.go delete mode 100644 backend/vendor/github.com/klauspost/compress/gzip/gunzip.go delete mode 100644 backend/vendor/github.com/klauspost/compress/gzip/gzip.go delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/.gitignore delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/README.md delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/bitreader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/bitwriter.go delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/bytereader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/compress.go delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/decompress.go delete mode 100644 backend/vendor/github.com/klauspost/compress/huff0/huff0.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/.gitignore delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/AUTHORS delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/LICENSE delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/README delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/decode.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.s delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/decode_other.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/encode.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.s delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/encode_other.go delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/runbench.cmd delete mode 100644 backend/vendor/github.com/klauspost/compress/snappy/snappy.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zip/reader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zip/register.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zip/struct.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zip/writer.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/README.md delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/bitreader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/bitwriter.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/blockdec.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/blockenc.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/blocktype_string.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/bytebuf.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/bytereader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/decodeheader.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/decoder.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/decoder_options.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/dict.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/enc_base.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/enc_best.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/enc_better.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/enc_dfast.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/enc_fast.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/encoder.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/encoder_options.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/framedec.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/frameenc.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/fse_decoder.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/fse_encoder.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/fse_predefined.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/hash.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/history.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/seqdec.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/seqenc.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/snappy.go delete mode 100644 backend/vendor/github.com/klauspost/compress/zstd/zstd.go delete mode 100644 backend/vendor/github.com/klauspost/pgzip/.gitignore delete mode 100644 backend/vendor/github.com/klauspost/pgzip/.travis.yml delete mode 100644 backend/vendor/github.com/klauspost/pgzip/GO_LICENSE delete mode 100644 backend/vendor/github.com/klauspost/pgzip/LICENSE delete mode 100644 backend/vendor/github.com/klauspost/pgzip/README.md delete mode 100644 backend/vendor/github.com/klauspost/pgzip/gunzip.go delete mode 100644 backend/vendor/github.com/klauspost/pgzip/gzip.go delete mode 100644 backend/vendor/github.com/magiconair/properties/.gitignore delete mode 100644 backend/vendor/github.com/magiconair/properties/CHANGELOG.md delete mode 100644 backend/vendor/github.com/magiconair/properties/LICENSE.md delete mode 100644 backend/vendor/github.com/magiconair/properties/README.md delete mode 100644 backend/vendor/github.com/magiconair/properties/decode.go delete mode 100644 backend/vendor/github.com/magiconair/properties/doc.go delete mode 100644 backend/vendor/github.com/magiconair/properties/integrate.go delete mode 100644 backend/vendor/github.com/magiconair/properties/lex.go delete mode 100644 backend/vendor/github.com/magiconair/properties/load.go delete mode 100644 backend/vendor/github.com/magiconair/properties/parser.go delete mode 100644 backend/vendor/github.com/magiconair/properties/properties.go delete mode 100644 backend/vendor/github.com/magiconair/properties/rangecheck.go delete mode 100644 backend/vendor/github.com/maruel/natural/LICENSE delete mode 100644 backend/vendor/github.com/maruel/natural/README.md delete mode 100644 backend/vendor/github.com/maruel/natural/natsort.go delete mode 100644 backend/vendor/github.com/marusama/semaphore/v2/.gitignore delete mode 100644 backend/vendor/github.com/marusama/semaphore/v2/.travis.yml delete mode 100644 backend/vendor/github.com/marusama/semaphore/v2/LICENSE delete mode 100644 backend/vendor/github.com/marusama/semaphore/v2/README.md delete mode 100644 backend/vendor/github.com/marusama/semaphore/v2/semaphore.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/.gitignore delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/.goreleaser.yml delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/.prettierrc delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/LICENSE delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/README.md delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/SECURITY.md delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/archiver.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/brotli.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/build.bash delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/bz2.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/error.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/filecompressor.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/gz.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/lz4.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/rar.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/sz.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tar.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tarbrotli.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tarbz2.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/targz.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tarlz4.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tarsz.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tarxz.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/tarzst.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/xz.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/zip.go delete mode 100644 backend/vendor/github.com/mholt/archiver/v3/zstd.go delete mode 100644 backend/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md delete mode 100644 backend/vendor/github.com/mitchellh/mapstructure/LICENSE delete mode 100644 backend/vendor/github.com/mitchellh/mapstructure/README.md delete mode 100644 backend/vendor/github.com/mitchellh/mapstructure/decode_hooks.go delete mode 100644 backend/vendor/github.com/mitchellh/mapstructure/error.go delete mode 100644 backend/vendor/github.com/mitchellh/mapstructure/mapstructure.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/LICENSE delete mode 100644 backend/vendor/github.com/nwaples/rardecode/README.md delete mode 100644 backend/vendor/github.com/nwaples/rardecode/archive.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/archive15.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/archive50.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/bit_reader.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/decode29.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/decode29_lz.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/decode29_ppm.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/decode50.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/decode_reader.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/decrypt_reader.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/filters.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/huffman.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/ppm_model.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/reader.go delete mode 100644 backend/vendor/github.com/nwaples/rardecode/vm.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/.dockerignore delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/.gitattributes delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/.gitignore delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/.golangci.toml delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/Dockerfile delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/LICENSE delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/README.md delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/SECURITY.md delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/ci.sh delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/decode.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/doc.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/errors.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/ascii.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/utf8.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/danger.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/typeid.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/key.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/tracker.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/localtime.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/marshaler.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/strict.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/toml.abnf delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/types.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unstable/ast.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unstable/builder.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unstable/doc.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unstable/kind.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go delete mode 100644 backend/vendor/github.com/pelletier/go-toml/v2/unstable/scanner.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/.gitignore delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/LICENSE delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/README.md delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/blocks.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_amd64.s delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_arm.s delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_asm.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_other.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4errors/errors.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/block.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame_gen.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.s delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_other.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/lz4.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/options.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/options_gen.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/reader.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/state.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/state_gen.go delete mode 100644 backend/vendor/github.com/pierrec/lz4/v4/writer.go delete mode 100644 backend/vendor/github.com/pmezard/go-difflib/LICENSE delete mode 100644 backend/vendor/github.com/pmezard/go-difflib/difflib/difflib.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/LICENSE delete mode 100644 backend/vendor/github.com/power-devops/perfstat/c_helpers.c delete mode 100644 backend/vendor/github.com/power-devops/perfstat/c_helpers.h delete mode 100644 backend/vendor/github.com/power-devops/perfstat/config.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/cpustat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/diskstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/doc.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/fsstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/helpers.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/lparstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/lvmstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/memstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/netstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/procstat.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/sysconf.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/systemcfg.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_cpu.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_disk.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_fs.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_lpar.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_lvm.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_memory.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_network.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/types_process.go delete mode 100644 backend/vendor/github.com/power-devops/perfstat/uptime.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/LICENSE delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_cgo.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_nocgo.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_cgo.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_nocgo.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_fallback.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_386.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_amd64.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm64.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_linux.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_386.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_amd64.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm64.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_solaris.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_unix.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_windows.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.c delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.h delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/binary.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_darwin.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_freebsd.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_linux.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_openbsd.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_unix.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_windows.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/endian.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/sleep.go delete mode 100644 backend/vendor/github.com/shirou/gopsutil/v3/internal/common/warnings.go delete mode 100644 backend/vendor/github.com/spf13/afero/.gitignore delete mode 100644 backend/vendor/github.com/spf13/afero/LICENSE.txt delete mode 100644 backend/vendor/github.com/spf13/afero/README.md delete mode 100644 backend/vendor/github.com/spf13/afero/afero.go delete mode 100644 backend/vendor/github.com/spf13/afero/appveyor.yml delete mode 100644 backend/vendor/github.com/spf13/afero/basepath.go delete mode 100644 backend/vendor/github.com/spf13/afero/cacheOnReadFs.go delete mode 100644 backend/vendor/github.com/spf13/afero/const_bsds.go delete mode 100644 backend/vendor/github.com/spf13/afero/const_win_unix.go delete mode 100644 backend/vendor/github.com/spf13/afero/copyOnWriteFs.go delete mode 100644 backend/vendor/github.com/spf13/afero/httpFs.go delete mode 100644 backend/vendor/github.com/spf13/afero/internal/common/adapters.go delete mode 100644 backend/vendor/github.com/spf13/afero/iofs.go delete mode 100644 backend/vendor/github.com/spf13/afero/ioutil.go delete mode 100644 backend/vendor/github.com/spf13/afero/lstater.go delete mode 100644 backend/vendor/github.com/spf13/afero/match.go delete mode 100644 backend/vendor/github.com/spf13/afero/mem/dir.go delete mode 100644 backend/vendor/github.com/spf13/afero/mem/dirmap.go delete mode 100644 backend/vendor/github.com/spf13/afero/mem/file.go delete mode 100644 backend/vendor/github.com/spf13/afero/memmap.go delete mode 100644 backend/vendor/github.com/spf13/afero/os.go delete mode 100644 backend/vendor/github.com/spf13/afero/path.go delete mode 100644 backend/vendor/github.com/spf13/afero/readonlyfs.go delete mode 100644 backend/vendor/github.com/spf13/afero/regexpfs.go delete mode 100644 backend/vendor/github.com/spf13/afero/symlink.go delete mode 100644 backend/vendor/github.com/spf13/afero/unionFile.go delete mode 100644 backend/vendor/github.com/spf13/afero/util.go delete mode 100644 backend/vendor/github.com/spf13/cast/.gitignore delete mode 100644 backend/vendor/github.com/spf13/cast/LICENSE delete mode 100644 backend/vendor/github.com/spf13/cast/Makefile delete mode 100644 backend/vendor/github.com/spf13/cast/README.md delete mode 100644 backend/vendor/github.com/spf13/cast/cast.go delete mode 100644 backend/vendor/github.com/spf13/cast/caste.go delete mode 100644 backend/vendor/github.com/spf13/cast/timeformattype_string.go delete mode 100644 backend/vendor/github.com/spf13/cobra/.gitignore delete mode 100644 backend/vendor/github.com/spf13/cobra/.golangci.yml delete mode 100644 backend/vendor/github.com/spf13/cobra/.mailmap delete mode 100644 backend/vendor/github.com/spf13/cobra/CONDUCT.md delete mode 100644 backend/vendor/github.com/spf13/cobra/CONTRIBUTING.md delete mode 100644 backend/vendor/github.com/spf13/cobra/LICENSE.txt delete mode 100644 backend/vendor/github.com/spf13/cobra/MAINTAINERS delete mode 100644 backend/vendor/github.com/spf13/cobra/Makefile delete mode 100644 backend/vendor/github.com/spf13/cobra/README.md delete mode 100644 backend/vendor/github.com/spf13/cobra/active_help.go delete mode 100644 backend/vendor/github.com/spf13/cobra/active_help.md delete mode 100644 backend/vendor/github.com/spf13/cobra/args.go delete mode 100644 backend/vendor/github.com/spf13/cobra/bash_completions.go delete mode 100644 backend/vendor/github.com/spf13/cobra/bash_completions.md delete mode 100644 backend/vendor/github.com/spf13/cobra/bash_completionsV2.go delete mode 100644 backend/vendor/github.com/spf13/cobra/cobra.go delete mode 100644 backend/vendor/github.com/spf13/cobra/command.go delete mode 100644 backend/vendor/github.com/spf13/cobra/command_notwin.go delete mode 100644 backend/vendor/github.com/spf13/cobra/command_win.go delete mode 100644 backend/vendor/github.com/spf13/cobra/completions.go delete mode 100644 backend/vendor/github.com/spf13/cobra/fish_completions.go delete mode 100644 backend/vendor/github.com/spf13/cobra/fish_completions.md delete mode 100644 backend/vendor/github.com/spf13/cobra/flag_groups.go delete mode 100644 backend/vendor/github.com/spf13/cobra/powershell_completions.go delete mode 100644 backend/vendor/github.com/spf13/cobra/powershell_completions.md delete mode 100644 backend/vendor/github.com/spf13/cobra/projects_using_cobra.md delete mode 100644 backend/vendor/github.com/spf13/cobra/shell_completions.go delete mode 100644 backend/vendor/github.com/spf13/cobra/shell_completions.md delete mode 100644 backend/vendor/github.com/spf13/cobra/user_guide.md delete mode 100644 backend/vendor/github.com/spf13/cobra/zsh_completions.go delete mode 100644 backend/vendor/github.com/spf13/cobra/zsh_completions.md delete mode 100644 backend/vendor/github.com/spf13/jwalterweatherman/.gitignore delete mode 100644 backend/vendor/github.com/spf13/jwalterweatherman/LICENSE delete mode 100644 backend/vendor/github.com/spf13/jwalterweatherman/README.md delete mode 100644 backend/vendor/github.com/spf13/jwalterweatherman/default_notepad.go delete mode 100644 backend/vendor/github.com/spf13/jwalterweatherman/log_counter.go delete mode 100644 backend/vendor/github.com/spf13/jwalterweatherman/notepad.go delete mode 100644 backend/vendor/github.com/spf13/pflag/.gitignore delete mode 100644 backend/vendor/github.com/spf13/pflag/.travis.yml delete mode 100644 backend/vendor/github.com/spf13/pflag/LICENSE delete mode 100644 backend/vendor/github.com/spf13/pflag/README.md delete mode 100644 backend/vendor/github.com/spf13/pflag/bool.go delete mode 100644 backend/vendor/github.com/spf13/pflag/bool_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/bytes.go delete mode 100644 backend/vendor/github.com/spf13/pflag/count.go delete mode 100644 backend/vendor/github.com/spf13/pflag/duration.go delete mode 100644 backend/vendor/github.com/spf13/pflag/duration_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/flag.go delete mode 100644 backend/vendor/github.com/spf13/pflag/float32.go delete mode 100644 backend/vendor/github.com/spf13/pflag/float32_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/float64.go delete mode 100644 backend/vendor/github.com/spf13/pflag/float64_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/golangflag.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int16.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int32.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int32_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int64.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int64_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int8.go delete mode 100644 backend/vendor/github.com/spf13/pflag/int_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/ip.go delete mode 100644 backend/vendor/github.com/spf13/pflag/ip_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/ipmask.go delete mode 100644 backend/vendor/github.com/spf13/pflag/ipnet.go delete mode 100644 backend/vendor/github.com/spf13/pflag/string.go delete mode 100644 backend/vendor/github.com/spf13/pflag/string_array.go delete mode 100644 backend/vendor/github.com/spf13/pflag/string_slice.go delete mode 100644 backend/vendor/github.com/spf13/pflag/string_to_int.go delete mode 100644 backend/vendor/github.com/spf13/pflag/string_to_int64.go delete mode 100644 backend/vendor/github.com/spf13/pflag/string_to_string.go delete mode 100644 backend/vendor/github.com/spf13/pflag/uint.go delete mode 100644 backend/vendor/github.com/spf13/pflag/uint16.go delete mode 100644 backend/vendor/github.com/spf13/pflag/uint32.go delete mode 100644 backend/vendor/github.com/spf13/pflag/uint64.go delete mode 100644 backend/vendor/github.com/spf13/pflag/uint8.go delete mode 100644 backend/vendor/github.com/spf13/pflag/uint_slice.go delete mode 100644 backend/vendor/github.com/spf13/viper/.editorconfig delete mode 100644 backend/vendor/github.com/spf13/viper/.gitignore delete mode 100644 backend/vendor/github.com/spf13/viper/.golangci.yaml delete mode 100644 backend/vendor/github.com/spf13/viper/LICENSE delete mode 100644 backend/vendor/github.com/spf13/viper/Makefile delete mode 100644 backend/vendor/github.com/spf13/viper/README.md delete mode 100644 backend/vendor/github.com/spf13/viper/TROUBLESHOOTING.md delete mode 100644 backend/vendor/github.com/spf13/viper/experimental_logger.go delete mode 100644 backend/vendor/github.com/spf13/viper/flags.go delete mode 100644 backend/vendor/github.com/spf13/viper/fs.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/decoder.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/map_utils.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/encoder.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/error.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/hcl/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/ini/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/ini/map_utils.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/map_utils.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/json/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/toml/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/internal/encoding/yaml/codec.go delete mode 100644 backend/vendor/github.com/spf13/viper/logger.go delete mode 100644 backend/vendor/github.com/spf13/viper/util.go delete mode 100644 backend/vendor/github.com/spf13/viper/viper.go delete mode 100644 backend/vendor/github.com/spf13/viper/viper_go1_15.go delete mode 100644 backend/vendor/github.com/spf13/viper/viper_go1_16.go delete mode 100644 backend/vendor/github.com/spf13/viper/watch.go delete mode 100644 backend/vendor/github.com/spf13/viper/watch_unsupported.go delete mode 100644 backend/vendor/github.com/stretchr/testify/LICENSE delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_compare.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_format.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertion_order.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/assertions.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/doc.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/errors.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/forward_assertions.go delete mode 100644 backend/vendor/github.com/stretchr/testify/assert/http_assertions.go delete mode 100644 backend/vendor/github.com/stretchr/testify/require/doc.go delete mode 100644 backend/vendor/github.com/stretchr/testify/require/forward_requirements.go delete mode 100644 backend/vendor/github.com/stretchr/testify/require/require.go delete mode 100644 backend/vendor/github.com/stretchr/testify/require/require.go.tmpl delete mode 100644 backend/vendor/github.com/stretchr/testify/require/require_forward.go delete mode 100644 backend/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl delete mode 100644 backend/vendor/github.com/stretchr/testify/require/requirements.go delete mode 100644 backend/vendor/github.com/subosito/gotenv/.env delete mode 100644 backend/vendor/github.com/subosito/gotenv/.env.invalid delete mode 100644 backend/vendor/github.com/subosito/gotenv/.gitignore delete mode 100644 backend/vendor/github.com/subosito/gotenv/.golangci.yaml delete mode 100644 backend/vendor/github.com/subosito/gotenv/CHANGELOG.md delete mode 100644 backend/vendor/github.com/subosito/gotenv/LICENSE delete mode 100644 backend/vendor/github.com/subosito/gotenv/README.md delete mode 100644 backend/vendor/github.com/subosito/gotenv/gotenv.go delete mode 100644 backend/vendor/github.com/tomasen/realip/.travis.yml delete mode 100644 backend/vendor/github.com/tomasen/realip/LICENSE delete mode 100644 backend/vendor/github.com/tomasen/realip/README.md delete mode 100644 backend/vendor/github.com/tomasen/realip/realip.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/.gitignore delete mode 100644 backend/vendor/github.com/ulikunitz/xz/LICENSE delete mode 100644 backend/vendor/github.com/ulikunitz/xz/README.md delete mode 100644 backend/vendor/github.com/ulikunitz/xz/SECURITY.md delete mode 100644 backend/vendor/github.com/ulikunitz/xz/TODO.md delete mode 100644 backend/vendor/github.com/ulikunitz/xz/bits.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/crc.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/format.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/fox-check-none.xz delete mode 100644 backend/vendor/github.com/ulikunitz/xz/fox.xz delete mode 100644 backend/vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/internal/hash/doc.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/internal/hash/roller.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/bintree.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/bitops.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/breader.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/buffer.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/bytewriter.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/decoder.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/decoderdict.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/directcodec.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/distcodec.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/encoder.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/encoderdict.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/fox.lzma delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/hashtable.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/header.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/header2.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/literalcodec.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/operation.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/prob.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/properties.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/rangecodec.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/reader.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/reader2.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/state.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/treecodecs.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/writer.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzma/writer2.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/lzmafilter.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/make-docs delete mode 100644 backend/vendor/github.com/ulikunitz/xz/none-check.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/reader.go delete mode 100644 backend/vendor/github.com/ulikunitz/xz/writer.go delete mode 100644 backend/vendor/github.com/xi2/xz/AUTHORS delete mode 100644 backend/vendor/github.com/xi2/xz/LICENSE delete mode 100644 backend/vendor/github.com/xi2/xz/README.md delete mode 100644 backend/vendor/github.com/xi2/xz/dec_bcj.go delete mode 100644 backend/vendor/github.com/xi2/xz/dec_delta.go delete mode 100644 backend/vendor/github.com/xi2/xz/dec_lzma2.go delete mode 100644 backend/vendor/github.com/xi2/xz/dec_stream.go delete mode 100644 backend/vendor/github.com/xi2/xz/dec_util.go delete mode 100644 backend/vendor/github.com/xi2/xz/dec_xz.go delete mode 100644 backend/vendor/github.com/xi2/xz/doc.go delete mode 100644 backend/vendor/github.com/xi2/xz/reader.go delete mode 100644 backend/vendor/github.com/yusufpapurcu/wmi/LICENSE delete mode 100644 backend/vendor/github.com/yusufpapurcu/wmi/README.md delete mode 100644 backend/vendor/github.com/yusufpapurcu/wmi/swbemservices.go delete mode 100644 backend/vendor/github.com/yusufpapurcu/wmi/wmi.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/.gitignore delete mode 100644 backend/vendor/go.etcd.io/bbolt/LICENSE delete mode 100644 backend/vendor/go.etcd.io/bbolt/Makefile delete mode 100644 backend/vendor/go.etcd.io/bbolt/README.md delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_386.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_amd64.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_arm.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_arm64.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_linux.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_loong64.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_mips64x.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_mipsx.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_openbsd.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_ppc.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_ppc64.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_ppc64le.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_riscv64.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_s390x.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_unix.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_unix_aix.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bolt_windows.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/boltsync_unix.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/bucket.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/compact.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/cursor.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/db.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/doc.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/errors.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/freelist.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/freelist_hmap.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/mlock_unix.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/mlock_windows.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/node.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/page.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/tx.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/tx_check.go delete mode 100644 backend/vendor/go.etcd.io/bbolt/unsafe.go delete mode 100644 backend/vendor/golang.org/x/crypto/LICENSE delete mode 100644 backend/vendor/golang.org/x/crypto/PATENTS delete mode 100644 backend/vendor/golang.org/x/crypto/bcrypt/base64.go delete mode 100644 backend/vendor/golang.org/x/crypto/bcrypt/bcrypt.go delete mode 100644 backend/vendor/golang.org/x/crypto/blowfish/block.go delete mode 100644 backend/vendor/golang.org/x/crypto/blowfish/cipher.go delete mode 100644 backend/vendor/golang.org/x/crypto/blowfish/const.go delete mode 100644 backend/vendor/golang.org/x/image/LICENSE delete mode 100644 backend/vendor/golang.org/x/image/PATENTS delete mode 100644 backend/vendor/golang.org/x/image/bmp/reader.go delete mode 100644 backend/vendor/golang.org/x/image/bmp/writer.go delete mode 100644 backend/vendor/golang.org/x/image/ccitt/reader.go delete mode 100644 backend/vendor/golang.org/x/image/ccitt/table.go delete mode 100644 backend/vendor/golang.org/x/image/ccitt/writer.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/buffer.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/compress.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/consts.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/fuzz.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/lzw/reader.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/reader.go delete mode 100644 backend/vendor/golang.org/x/image/tiff/writer.go delete mode 100644 backend/vendor/golang.org/x/net/LICENSE delete mode 100644 backend/vendor/golang.org/x/net/PATENTS delete mode 100644 backend/vendor/golang.org/x/net/context/context.go delete mode 100644 backend/vendor/golang.org/x/net/context/go17.go delete mode 100644 backend/vendor/golang.org/x/net/context/go19.go delete mode 100644 backend/vendor/golang.org/x/net/context/pre_go17.go delete mode 100644 backend/vendor/golang.org/x/net/context/pre_go19.go delete mode 100644 backend/vendor/golang.org/x/sys/LICENSE delete mode 100644 backend/vendor/golang.org/x/sys/PATENTS delete mode 100644 backend/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/.gitignore delete mode 100644 backend/vendor/golang.org/x/sys/unix/README.md delete mode 100644 backend/vendor/golang.org/x/sys/unix/affinity_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/aliases.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_bsd_386.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_bsd_arm.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_386.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_amd64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_arm.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_arm64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_loong64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_linux_s390x.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/asm_zos_s390x.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/bluetooth_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/cap_freebsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/constants.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_aix_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_darwin.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_dragonfly.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_freebsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_netbsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_openbsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dev_zos.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/dirent.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/endian_big.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/endian_little.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/env_unix.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/epoll_zos.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/fcntl.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/fcntl_darwin.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/fdset.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/fstatfs_zos.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/gccgo.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/gccgo_c.c delete mode 100644 backend/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ifreq_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ioctl_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ioctl_signed.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ioctl_unsigned.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ioctl_zos.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/mkall.sh delete mode 100644 backend/vendor/golang.org/x/sys/unix/mkerrors.sh delete mode 100644 backend/vendor/golang.org/x/sys/unix/pagesize_unix.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/pledge_openbsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ptrace_darwin.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ptrace_ios.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/race.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/race0.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/readdirent_getdents.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sockcmsg_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sockcmsg_unix.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_aix.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_bsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_darwin.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_dragonfly.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_freebsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_hurd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_hurd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_illumos.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_gc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_netbsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_solaris.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_unix.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_unix_gc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sysvshm_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sysvshm_unix.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/timestruct.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/unveil_openbsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/xattr_bsd.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/aliases.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/dll_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/empty.s delete mode 100644 backend/vendor/golang.org/x/sys/windows/env_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/eventlog.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/exec_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/memory_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/mkerrors.bash delete mode 100644 backend/vendor/golang.org/x/sys/windows/mkknownfolderids.bash delete mode 100644 backend/vendor/golang.org/x/sys/windows/mksyscall.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/race.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/race0.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/registry/key.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/registry/mksyscall.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/registry/syscall.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/registry/value.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/security_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/service.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/setupapi_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/str.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/syscall.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/syscall_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/types_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/types_windows_386.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/types_windows_amd64.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/types_windows_arm.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/types_windows_arm64.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/zerrors_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go delete mode 100644 backend/vendor/golang.org/x/sys/windows/zsyscall_windows.go delete mode 100644 backend/vendor/golang.org/x/text/LICENSE delete mode 100644 backend/vendor/golang.org/x/text/PATENTS delete mode 100644 backend/vendor/golang.org/x/text/cases/cases.go delete mode 100644 backend/vendor/golang.org/x/text/cases/context.go delete mode 100644 backend/vendor/golang.org/x/text/cases/fold.go delete mode 100644 backend/vendor/golang.org/x/text/cases/icu.go delete mode 100644 backend/vendor/golang.org/x/text/cases/info.go delete mode 100644 backend/vendor/golang.org/x/text/cases/map.go delete mode 100644 backend/vendor/golang.org/x/text/cases/tables10.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/cases/tables11.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/cases/tables12.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/cases/tables13.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/cases/tables9.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/cases/trieval.go delete mode 100644 backend/vendor/golang.org/x/text/internal/internal.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/common.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compact.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compact/compact.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compact/language.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compact/parents.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compact/tables.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compact/tags.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/compose.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/coverage.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/language.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/lookup.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/match.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/parse.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/tables.go delete mode 100644 backend/vendor/golang.org/x/text/internal/language/tags.go delete mode 100644 backend/vendor/golang.org/x/text/internal/match.go delete mode 100644 backend/vendor/golang.org/x/text/internal/tag/tag.go delete mode 100644 backend/vendor/golang.org/x/text/language/coverage.go delete mode 100644 backend/vendor/golang.org/x/text/language/doc.go delete mode 100644 backend/vendor/golang.org/x/text/language/language.go delete mode 100644 backend/vendor/golang.org/x/text/language/match.go delete mode 100644 backend/vendor/golang.org/x/text/language/parse.go delete mode 100644 backend/vendor/golang.org/x/text/language/tables.go delete mode 100644 backend/vendor/golang.org/x/text/language/tags.go delete mode 100644 backend/vendor/golang.org/x/text/runes/cond.go delete mode 100644 backend/vendor/golang.org/x/text/runes/runes.go delete mode 100644 backend/vendor/golang.org/x/text/transform/transform.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/composition.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/forminfo.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/input.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/iter.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/normalize.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/readwriter.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/transform.go delete mode 100644 backend/vendor/golang.org/x/text/unicode/norm/trie.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/.editorconfig delete mode 100644 backend/vendor/gopkg.in/ini.v1/.gitignore delete mode 100644 backend/vendor/gopkg.in/ini.v1/.golangci.yml delete mode 100644 backend/vendor/gopkg.in/ini.v1/LICENSE delete mode 100644 backend/vendor/gopkg.in/ini.v1/Makefile delete mode 100644 backend/vendor/gopkg.in/ini.v1/README.md delete mode 100644 backend/vendor/gopkg.in/ini.v1/codecov.yml delete mode 100644 backend/vendor/gopkg.in/ini.v1/data_source.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/deprecated.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/error.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/file.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/helper.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/ini.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/key.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/parser.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/section.go delete mode 100644 backend/vendor/gopkg.in/ini.v1/struct.go delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/README.md delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go delete mode 100644 backend/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/.travis.yml delete mode 100644 backend/vendor/gopkg.in/yaml.v2/LICENSE delete mode 100644 backend/vendor/gopkg.in/yaml.v2/LICENSE.libyaml delete mode 100644 backend/vendor/gopkg.in/yaml.v2/NOTICE delete mode 100644 backend/vendor/gopkg.in/yaml.v2/README.md delete mode 100644 backend/vendor/gopkg.in/yaml.v2/apic.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/decode.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/emitterc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/encode.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/parserc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/readerc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/resolve.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/scannerc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/sorter.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/writerc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/yaml.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/yamlh.go delete mode 100644 backend/vendor/gopkg.in/yaml.v2/yamlprivateh.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/LICENSE delete mode 100644 backend/vendor/gopkg.in/yaml.v3/NOTICE delete mode 100644 backend/vendor/gopkg.in/yaml.v3/README.md delete mode 100644 backend/vendor/gopkg.in/yaml.v3/apic.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/decode.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/emitterc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/encode.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/parserc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/readerc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/resolve.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/scannerc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/sorter.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/writerc.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/yaml.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/yamlh.go delete mode 100644 backend/vendor/gopkg.in/yaml.v3/yamlprivateh.go delete mode 100644 backend/vendor/modules.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 76c239e0..eb752368 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,12 @@ All notable changes to this project will be documented in this file. See [standa - Added "compact" view option - fixed slash issue with css rtl logic - various backend fixes + - search has a sessionId attached so searches don't collide - search no longer searches by word with spaces, includes space in searches - - improved indexing speed and efficiency - prepared for full json configuration - made size search work for smaller and larger - made search types not show up in search bar when used + ## v0.1.3 - improved styling, colors, transparency, blur @@ -32,7 +33,7 @@ All notable changes to this project will be documented in this file. See [standa - Better icons with colors - GUI styling - Improved search performance - + ## v0.1.1 - Improved search with indexing diff --git a/backend/go.mod b/backend/go.mod index 350f445b..8ad814af 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -30,33 +30,33 @@ require ( ) require ( - github.com/andybalholm/brotli v1.0.5 // indirect + github.com/andybalholm/brotli v1.0.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd // indirect github.com/dsoprea/go-utility/v2 v2.0.0-20221003172846-a3e1774ef349 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-ole/go-ole v1.3.0 // indirect - github.com/golang/geo v0.0.0-20230421003525-6adc56603217 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 // indirect + github.com/golang/snappy v0.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/klauspost/compress v1.16.7 // indirect - github.com/klauspost/pgzip v1.2.6 // indirect + github.com/klauspost/compress v1.11.4 // indirect + github.com/klauspost/pgzip v1.2.5 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/nwaples/rardecode v1.1.3 // indirect - github.com/pierrec/lz4/v4 v4.1.18 // indirect + github.com/nwaples/rardecode v1.1.0 // indirect + github.com/pierrec/lz4/v4 v4.1.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/spf13/cast v1.5.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/subosito/gotenv v1.6.0 // indirect - github.com/ulikunitz/xz v0.5.11 // indirect + github.com/subosito/gotenv v1.4.2 // indirect + github.com/ulikunitz/xz v0.5.9 // indirect github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect - golang.org/x/net v0.14.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/sys v0.11.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/backend/go.sum b/backend/go.sum index 68ef4560..2c3368f4 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -42,9 +42,8 @@ github.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Sereal/Sereal v0.0.0-20190618215532-0b8ac451a863 h1:BRrxwOZBolJN4gIwvZMJY1tzqBvQgpaZiQRuIDD40jM= github.com/Sereal/Sereal v0.0.0-20190618215532-0b8ac451a863/go.mod h1:D0JMgToj/WdxCgd30Kc1UcA9E+WdZoJqeVOuYW7iTBM= +github.com/andybalholm/brotli v1.0.1 h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSULpEc= github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/asdine/storm/v3 v3.2.1 h1:I5AqhkPK6nBZ/qJXySdI7ot5BlXSZ7qvDY1zAn5ZJac= github.com/asdine/storm/v3 v3.2.1/go.mod h1:LEpXwGt4pIqrE/XcTvCnZHT5MgZCV6Ub9q7yQzOFWr0= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -100,16 +99,14 @@ github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3Bop github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/geo v0.0.0-20200319012246-673a6f80352d/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 h1:gtexQ/VGyN+VVFRXSFiguSNcXmS6rkKT+X7FdIrTtfo= github.com/golang/geo v0.0.0-20210211234256-740aa86cb551/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= -github.com/golang/geo v0.0.0-20230421003525-6adc56603217 h1:HKlyj6in2JV6wVkmQ4XmG/EIm+SCYlPZ+V4GWit7Z+I= -github.com/golang/geo v0.0.0-20230421003525-6adc56603217/go.mod h1:8wI0hitZ3a1IxZfeH3/5I97CI8i5cLGsYe7xNhQGs9U= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -137,9 +134,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -191,13 +187,11 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.11.4 h1:kz40R/YWls3iqT9zX9AHN3WoVsrAWVyui5sxuLqiXqU= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= -github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -215,21 +209,18 @@ github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Cl github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ= github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= -github.com/nwaples/rardecode v1.1.3 h1:cWCaZwfM5H7nAD6PyEdcVnczzV8i/JtotnyW/dD9lEc= -github.com/nwaples/rardecode v1.1.3/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0= github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pierrec/lz4/v4 v4.1.2 h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM= github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b h1:0LFwY6Q3gMACTjAbMZBjXAqTOzOwFaj2Ld6cjeQ7Rig= -github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= @@ -261,16 +252,15 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= +github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.9 h1:RsKRIA2MO8x56wkkcd3LbtcE/uMszhb6DpRf+3uwa3I= github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= -github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= @@ -376,8 +366,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -442,7 +432,6 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/backend/vendor/github.com/andybalholm/brotli/LICENSE b/backend/vendor/github.com/andybalholm/brotli/LICENSE deleted file mode 100644 index 33b7cdd2..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/backend/vendor/github.com/andybalholm/brotli/README.md b/backend/vendor/github.com/andybalholm/brotli/README.md deleted file mode 100644 index 1ea7fdb7..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/README.md +++ /dev/null @@ -1,7 +0,0 @@ -This package is a brotli compressor and decompressor implemented in Go. -It was translated from the reference implementation (https://github.com/google/brotli) -with the `c2go` tool at https://github.com/andybalholm/c2go. - -I am using it in production with https://github.com/andybalholm/redwood. - -API documentation is found at https://pkg.go.dev/github.com/andybalholm/brotli?tab=doc. diff --git a/backend/vendor/github.com/andybalholm/brotli/backward_references.go b/backend/vendor/github.com/andybalholm/brotli/backward_references.go deleted file mode 100644 index 008c054d..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/backward_references.go +++ /dev/null @@ -1,185 +0,0 @@ -package brotli - -import ( - "sync" -) - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function to find backward reference copies. */ - -func computeDistanceCode(distance uint, max_distance uint, dist_cache []int) uint { - if distance <= max_distance { - var distance_plus_3 uint = distance + 3 - var offset0 uint = distance_plus_3 - uint(dist_cache[0]) - var offset1 uint = distance_plus_3 - uint(dist_cache[1]) - if distance == uint(dist_cache[0]) { - return 0 - } else if distance == uint(dist_cache[1]) { - return 1 - } else if offset0 < 7 { - return (0x9750468 >> (4 * offset0)) & 0xF - } else if offset1 < 7 { - return (0xFDB1ACE >> (4 * offset1)) & 0xF - } else if distance == uint(dist_cache[2]) { - return 2 - } else if distance == uint(dist_cache[3]) { - return 3 - } - } - - return distance + numDistanceShortCodes - 1 -} - -var hasherSearchResultPool sync.Pool - -func createBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var insert_length uint = *last_insert_len - var pos_end uint = position + num_bytes - var store_end uint - if num_bytes >= hasher.StoreLookahead() { - store_end = position + num_bytes - hasher.StoreLookahead() + 1 - } else { - store_end = position - } - var random_heuristics_window_size uint = literalSpreeLengthForSparseSearch(params) - var apply_random_heuristics uint = position + random_heuristics_window_size - var gap uint = 0 - /* Set maximum distance, see section 9.1. of the spec. */ - - const kMinScore uint = scoreBase + 100 - - /* For speed up heuristics for random data. */ - - /* Minimum score to accept a backward reference. */ - hasher.PrepareDistanceCache(dist_cache) - sr2, _ := hasherSearchResultPool.Get().(*hasherSearchResult) - if sr2 == nil { - sr2 = &hasherSearchResult{} - } - sr, _ := hasherSearchResultPool.Get().(*hasherSearchResult) - if sr == nil { - sr = &hasherSearchResult{} - } - - for position+hasher.HashTypeLength() < pos_end { - var max_length uint = pos_end - position - var max_distance uint = brotli_min_size_t(position, max_backward_limit) - sr.len = 0 - sr.len_code_delta = 0 - sr.distance = 0 - sr.score = kMinScore - hasher.FindLongestMatch(¶ms.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position, max_length, max_distance, gap, params.dist.max_distance, sr) - if sr.score > kMinScore { - /* Found a match. Let's look for something even better ahead. */ - var delayed_backward_references_in_row int = 0 - max_length-- - for ; ; max_length-- { - var cost_diff_lazy uint = 175 - if params.quality < minQualityForExtensiveReferenceSearch { - sr2.len = brotli_min_size_t(sr.len-1, max_length) - } else { - sr2.len = 0 - } - sr2.len_code_delta = 0 - sr2.distance = 0 - sr2.score = kMinScore - max_distance = brotli_min_size_t(position+1, max_backward_limit) - hasher.FindLongestMatch(¶ms.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position+1, max_length, max_distance, gap, params.dist.max_distance, sr2) - if sr2.score >= sr.score+cost_diff_lazy { - /* Ok, let's just write one byte for now and start a match from the - next byte. */ - position++ - - insert_length++ - *sr = *sr2 - delayed_backward_references_in_row++ - if delayed_backward_references_in_row < 4 && position+hasher.HashTypeLength() < pos_end { - continue - } - } - - break - } - - apply_random_heuristics = position + 2*sr.len + random_heuristics_window_size - max_distance = brotli_min_size_t(position, max_backward_limit) - { - /* The first 16 codes are special short-codes, - and the minimum offset is 1. */ - var distance_code uint = computeDistanceCode(sr.distance, max_distance+gap, dist_cache) - if (sr.distance <= (max_distance + gap)) && distance_code > 0 { - dist_cache[3] = dist_cache[2] - dist_cache[2] = dist_cache[1] - dist_cache[1] = dist_cache[0] - dist_cache[0] = int(sr.distance) - hasher.PrepareDistanceCache(dist_cache) - } - - *commands = append(*commands, makeCommand(¶ms.dist, insert_length, sr.len, sr.len_code_delta, distance_code)) - } - - *num_literals += insert_length - insert_length = 0 - /* Put the hash keys into the table, if there are enough bytes left. - Depending on the hasher implementation, it can push all positions - in the given range or only a subset of them. - Avoid hash poisoning with RLE data. */ - { - var range_start uint = position + 2 - var range_end uint = brotli_min_size_t(position+sr.len, store_end) - if sr.distance < sr.len>>2 { - range_start = brotli_min_size_t(range_end, brotli_max_size_t(range_start, position+sr.len-(sr.distance<<2))) - } - - hasher.StoreRange(ringbuffer, ringbuffer_mask, range_start, range_end) - } - - position += sr.len - } else { - insert_length++ - position++ - - /* If we have not seen matches for a long time, we can skip some - match lookups. Unsuccessful match lookups are very very expensive - and this kind of a heuristic speeds up compression quite - a lot. */ - if position > apply_random_heuristics { - /* Going through uncompressible data, jump. */ - if position > apply_random_heuristics+4*random_heuristics_window_size { - var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 4) - /* It is quite a long time since we saw a copy, so we assume - that this data is not compressible, and store hashes less - often. Hashes of non compressible data are less likely to - turn out to be useful in the future, too, so we store less of - them to not to flood out the hash table of good compressible - data. */ - - var pos_jump uint = brotli_min_size_t(position+16, pos_end-kMargin) - for ; position < pos_jump; position += 4 { - hasher.Store(ringbuffer, ringbuffer_mask, position) - insert_length += 4 - } - } else { - var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 2) - var pos_jump uint = brotli_min_size_t(position+8, pos_end-kMargin) - for ; position < pos_jump; position += 2 { - hasher.Store(ringbuffer, ringbuffer_mask, position) - insert_length += 2 - } - } - } - } - } - - insert_length += pos_end - position - *last_insert_len = insert_length - - hasherSearchResultPool.Put(sr) - hasherSearchResultPool.Put(sr2) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/backward_references_hq.go b/backend/vendor/github.com/andybalholm/brotli/backward_references_hq.go deleted file mode 100644 index 86c980a3..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/backward_references_hq.go +++ /dev/null @@ -1,808 +0,0 @@ -package brotli - -import "math" - -type zopfliNode struct { - length uint32 - distance uint32 - dcode_insert_length uint32 - u struct { - cost float32 - next uint32 - shortcut uint32 - } -} - -const maxEffectiveDistanceAlphabetSize = 544 - -const kInfinity float32 = 1.7e38 /* ~= 2 ^ 127 */ - -var kDistanceCacheIndex = []uint32{0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1} - -var kDistanceCacheOffset = []int{0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3} - -func initZopfliNodes(array []zopfliNode, length uint) { - var stub zopfliNode - var i uint - stub.length = 1 - stub.distance = 0 - stub.dcode_insert_length = 0 - stub.u.cost = kInfinity - for i = 0; i < length; i++ { - array[i] = stub - } -} - -func zopfliNodeCopyLength(self *zopfliNode) uint32 { - return self.length & 0x1FFFFFF -} - -func zopfliNodeLengthCode(self *zopfliNode) uint32 { - var modifier uint32 = self.length >> 25 - return zopfliNodeCopyLength(self) + 9 - modifier -} - -func zopfliNodeCopyDistance(self *zopfliNode) uint32 { - return self.distance -} - -func zopfliNodeDistanceCode(self *zopfliNode) uint32 { - var short_code uint32 = self.dcode_insert_length >> 27 - if short_code == 0 { - return zopfliNodeCopyDistance(self) + numDistanceShortCodes - 1 - } else { - return short_code - 1 - } -} - -func zopfliNodeCommandLength(self *zopfliNode) uint32 { - return zopfliNodeCopyLength(self) + (self.dcode_insert_length & 0x7FFFFFF) -} - -/* Histogram based cost model for zopflification. */ -type zopfliCostModel struct { - cost_cmd_ [numCommandSymbols]float32 - cost_dist_ []float32 - distance_histogram_size uint32 - literal_costs_ []float32 - min_cost_cmd_ float32 - num_bytes_ uint -} - -func initZopfliCostModel(self *zopfliCostModel, dist *distanceParams, num_bytes uint) { - var distance_histogram_size uint32 = dist.alphabet_size - if distance_histogram_size > maxEffectiveDistanceAlphabetSize { - distance_histogram_size = maxEffectiveDistanceAlphabetSize - } - - self.num_bytes_ = num_bytes - self.literal_costs_ = make([]float32, (num_bytes + 2)) - self.cost_dist_ = make([]float32, (dist.alphabet_size)) - self.distance_histogram_size = distance_histogram_size -} - -func cleanupZopfliCostModel(self *zopfliCostModel) { - self.literal_costs_ = nil - self.cost_dist_ = nil -} - -func setCost(histogram []uint32, histogram_size uint, literal_histogram bool, cost []float32) { - var sum uint = 0 - var missing_symbol_sum uint - var log2sum float32 - var missing_symbol_cost float32 - var i uint - for i = 0; i < histogram_size; i++ { - sum += uint(histogram[i]) - } - - log2sum = float32(fastLog2(sum)) - missing_symbol_sum = sum - if !literal_histogram { - for i = 0; i < histogram_size; i++ { - if histogram[i] == 0 { - missing_symbol_sum++ - } - } - } - - missing_symbol_cost = float32(fastLog2(missing_symbol_sum)) + 2 - for i = 0; i < histogram_size; i++ { - if histogram[i] == 0 { - cost[i] = missing_symbol_cost - continue - } - - /* Shannon bits for this symbol. */ - cost[i] = log2sum - float32(fastLog2(uint(histogram[i]))) - - /* Cannot be coded with less than 1 bit */ - if cost[i] < 1 { - cost[i] = 1 - } - } -} - -func zopfliCostModelSetFromCommands(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint, commands []command, last_insert_len uint) { - var histogram_literal [numLiteralSymbols]uint32 - var histogram_cmd [numCommandSymbols]uint32 - var histogram_dist [maxEffectiveDistanceAlphabetSize]uint32 - var cost_literal [numLiteralSymbols]float32 - var pos uint = position - last_insert_len - var min_cost_cmd float32 = kInfinity - var cost_cmd []float32 = self.cost_cmd_[:] - var literal_costs []float32 - - histogram_literal = [numLiteralSymbols]uint32{} - histogram_cmd = [numCommandSymbols]uint32{} - histogram_dist = [maxEffectiveDistanceAlphabetSize]uint32{} - - for i := range commands { - var inslength uint = uint(commands[i].insert_len_) - var copylength uint = uint(commandCopyLen(&commands[i])) - var distcode uint = uint(commands[i].dist_prefix_) & 0x3FF - var cmdcode uint = uint(commands[i].cmd_prefix_) - var j uint - - histogram_cmd[cmdcode]++ - if cmdcode >= 128 { - histogram_dist[distcode]++ - } - - for j = 0; j < inslength; j++ { - histogram_literal[ringbuffer[(pos+j)&ringbuffer_mask]]++ - } - - pos += inslength + copylength - } - - setCost(histogram_literal[:], numLiteralSymbols, true, cost_literal[:]) - setCost(histogram_cmd[:], numCommandSymbols, false, cost_cmd) - setCost(histogram_dist[:], uint(self.distance_histogram_size), false, self.cost_dist_) - - for i := 0; i < numCommandSymbols; i++ { - min_cost_cmd = brotli_min_float(min_cost_cmd, cost_cmd[i]) - } - - self.min_cost_cmd_ = min_cost_cmd - { - literal_costs = self.literal_costs_ - var literal_carry float32 = 0.0 - num_bytes := int(self.num_bytes_) - literal_costs[0] = 0.0 - for i := 0; i < num_bytes; i++ { - literal_carry += cost_literal[ringbuffer[(position+uint(i))&ringbuffer_mask]] - literal_costs[i+1] = literal_costs[i] + literal_carry - literal_carry -= literal_costs[i+1] - literal_costs[i] - } - } -} - -func zopfliCostModelSetFromLiteralCosts(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint) { - var literal_costs []float32 = self.literal_costs_ - var literal_carry float32 = 0.0 - var cost_dist []float32 = self.cost_dist_ - var cost_cmd []float32 = self.cost_cmd_[:] - var num_bytes uint = self.num_bytes_ - var i uint - estimateBitCostsForLiterals(position, num_bytes, ringbuffer_mask, ringbuffer, literal_costs[1:]) - literal_costs[0] = 0.0 - for i = 0; i < num_bytes; i++ { - literal_carry += literal_costs[i+1] - literal_costs[i+1] = literal_costs[i] + literal_carry - literal_carry -= literal_costs[i+1] - literal_costs[i] - } - - for i = 0; i < numCommandSymbols; i++ { - cost_cmd[i] = float32(fastLog2(uint(11 + uint32(i)))) - } - - for i = 0; uint32(i) < self.distance_histogram_size; i++ { - cost_dist[i] = float32(fastLog2(uint(20 + uint32(i)))) - } - - self.min_cost_cmd_ = float32(fastLog2(11)) -} - -func zopfliCostModelGetCommandCost(self *zopfliCostModel, cmdcode uint16) float32 { - return self.cost_cmd_[cmdcode] -} - -func zopfliCostModelGetDistanceCost(self *zopfliCostModel, distcode uint) float32 { - return self.cost_dist_[distcode] -} - -func zopfliCostModelGetLiteralCosts(self *zopfliCostModel, from uint, to uint) float32 { - return self.literal_costs_[to] - self.literal_costs_[from] -} - -func zopfliCostModelGetMinCostCmd(self *zopfliCostModel) float32 { - return self.min_cost_cmd_ -} - -/* REQUIRES: len >= 2, start_pos <= pos */ -/* REQUIRES: cost < kInfinity, nodes[start_pos].cost < kInfinity */ -/* Maintains the "ZopfliNode array invariant". */ -func updateZopfliNode(nodes []zopfliNode, pos uint, start_pos uint, len uint, len_code uint, dist uint, short_code uint, cost float32) { - var next *zopfliNode = &nodes[pos+len] - next.length = uint32(len | (len+9-len_code)<<25) - next.distance = uint32(dist) - next.dcode_insert_length = uint32(short_code<<27 | (pos - start_pos)) - next.u.cost = cost -} - -type posData struct { - pos uint - distance_cache [4]int - costdiff float32 - cost float32 -} - -/* Maintains the smallest 8 cost difference together with their positions */ -type startPosQueue struct { - q_ [8]posData - idx_ uint -} - -func initStartPosQueue(self *startPosQueue) { - self.idx_ = 0 -} - -func startPosQueueSize(self *startPosQueue) uint { - return brotli_min_size_t(self.idx_, 8) -} - -func startPosQueuePush(self *startPosQueue, posdata *posData) { - var offset uint = ^(self.idx_) & 7 - self.idx_++ - var len uint = startPosQueueSize(self) - var i uint - var q []posData = self.q_[:] - q[offset] = *posdata - - /* Restore the sorted order. In the list of |len| items at most |len - 1| - adjacent element comparisons / swaps are required. */ - for i = 1; i < len; i++ { - if q[offset&7].costdiff > q[(offset+1)&7].costdiff { - var tmp posData = q[offset&7] - q[offset&7] = q[(offset+1)&7] - q[(offset+1)&7] = tmp - } - - offset++ - } -} - -func startPosQueueAt(self *startPosQueue, k uint) *posData { - return &self.q_[(k-self.idx_)&7] -} - -/* Returns the minimum possible copy length that can improve the cost of any */ -/* future position. */ -func computeMinimumCopyLength(start_cost float32, nodes []zopfliNode, num_bytes uint, pos uint) uint { - var min_cost float32 = start_cost - var len uint = 2 - var next_len_bucket uint = 4 - /* Compute the minimum possible cost of reaching any future position. */ - - var next_len_offset uint = 10 - for pos+len <= num_bytes && nodes[pos+len].u.cost <= min_cost { - /* We already reached (pos + len) with no more cost than the minimum - possible cost of reaching anything from this pos, so there is no point in - looking for lengths <= len. */ - len++ - - if len == next_len_offset { - /* We reached the next copy length code bucket, so we add one more - extra bit to the minimum cost. */ - min_cost += 1.0 - - next_len_offset += next_len_bucket - next_len_bucket *= 2 - } - } - - return uint(len) -} - -/* -REQUIRES: nodes[pos].cost < kInfinity - - REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". -*/ -func computeDistanceShortcut(block_start uint, pos uint, max_backward_limit uint, gap uint, nodes []zopfliNode) uint32 { - var clen uint = uint(zopfliNodeCopyLength(&nodes[pos])) - var ilen uint = uint(nodes[pos].dcode_insert_length & 0x7FFFFFF) - var dist uint = uint(zopfliNodeCopyDistance(&nodes[pos])) - - /* Since |block_start + pos| is the end position of the command, the copy part - starts from |block_start + pos - clen|. Distances that are greater than - this or greater than |max_backward_limit| + |gap| are static dictionary - references, and do not update the last distances. - Also distance code 0 (last distance) does not update the last distances. */ - if pos == 0 { - return 0 - } else if dist+clen <= block_start+pos+gap && dist <= max_backward_limit+gap && zopfliNodeDistanceCode(&nodes[pos]) > 0 { - return uint32(pos) - } else { - return nodes[pos-clen-ilen].u.shortcut - } -} - -/* -Fills in dist_cache[0..3] with the last four distances (as defined by - - Section 4. of the Spec) that would be used at (block_start + pos) if we - used the shortest path of commands from block_start, computed from - nodes[0..pos]. The last four distances at block_start are in - starting_dist_cache[0..3]. - REQUIRES: nodes[pos].cost < kInfinity - REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". -*/ -func computeDistanceCache(pos uint, starting_dist_cache []int, nodes []zopfliNode, dist_cache []int) { - var idx int = 0 - var p uint = uint(nodes[pos].u.shortcut) - for idx < 4 && p > 0 { - var ilen uint = uint(nodes[p].dcode_insert_length & 0x7FFFFFF) - var clen uint = uint(zopfliNodeCopyLength(&nodes[p])) - var dist uint = uint(zopfliNodeCopyDistance(&nodes[p])) - dist_cache[idx] = int(dist) - idx++ - - /* Because of prerequisite, p >= clen + ilen >= 2. */ - p = uint(nodes[p-clen-ilen].u.shortcut) - } - - for ; idx < 4; idx++ { - dist_cache[idx] = starting_dist_cache[0] - starting_dist_cache = starting_dist_cache[1:] - } -} - -/* -Maintains "ZopfliNode array invariant" and pushes node to the queue, if it - - is eligible. -*/ -func evaluateNode(block_start uint, pos uint, max_backward_limit uint, gap uint, starting_dist_cache []int, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) { - /* Save cost, because ComputeDistanceCache invalidates it. */ - var node_cost float32 = nodes[pos].u.cost - nodes[pos].u.shortcut = computeDistanceShortcut(block_start, pos, max_backward_limit, gap, nodes) - if node_cost <= zopfliCostModelGetLiteralCosts(model, 0, pos) { - var posdata posData - posdata.pos = pos - posdata.cost = node_cost - posdata.costdiff = node_cost - zopfliCostModelGetLiteralCosts(model, 0, pos) - computeDistanceCache(pos, starting_dist_cache, nodes, posdata.distance_cache[:]) - startPosQueuePush(queue, &posdata) - } -} - -/* Returns longest copy length. */ -func updateNodes(num_bytes uint, block_start uint, pos uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, max_backward_limit uint, starting_dist_cache []int, num_matches uint, matches []backwardMatch, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) uint { - var cur_ix uint = block_start + pos - var cur_ix_masked uint = cur_ix & ringbuffer_mask - var max_distance uint = brotli_min_size_t(cur_ix, max_backward_limit) - var max_len uint = num_bytes - pos - var max_zopfli_len uint = maxZopfliLen(params) - var max_iters uint = maxZopfliCandidates(params) - var min_len uint - var result uint = 0 - var k uint - var gap uint = 0 - - evaluateNode(block_start, pos, max_backward_limit, gap, starting_dist_cache, model, queue, nodes) - { - var posdata *posData = startPosQueueAt(queue, 0) - var min_cost float32 = (posdata.cost + zopfliCostModelGetMinCostCmd(model) + zopfliCostModelGetLiteralCosts(model, posdata.pos, pos)) - min_len = computeMinimumCopyLength(min_cost, nodes, num_bytes, pos) - } - - /* Go over the command starting positions in order of increasing cost - difference. */ - for k = 0; k < max_iters && k < startPosQueueSize(queue); k++ { - var posdata *posData = startPosQueueAt(queue, k) - var start uint = posdata.pos - var inscode uint16 = getInsertLengthCode(pos - start) - var start_costdiff float32 = posdata.costdiff - var base_cost float32 = start_costdiff + float32(getInsertExtra(inscode)) + zopfliCostModelGetLiteralCosts(model, 0, pos) - var best_len uint = min_len - 1 - var j uint = 0 - /* Look for last distance matches using the distance cache from this - starting position. */ - for ; j < numDistanceShortCodes && best_len < max_len; j++ { - var idx uint = uint(kDistanceCacheIndex[j]) - var backward uint = uint(posdata.distance_cache[idx] + kDistanceCacheOffset[j]) - var prev_ix uint = cur_ix - backward - var len uint = 0 - var continuation byte = ringbuffer[cur_ix_masked+best_len] - if cur_ix_masked+best_len > ringbuffer_mask { - break - } - - if backward > max_distance+gap { - /* Word dictionary -> ignore. */ - continue - } - - if backward <= max_distance { - /* Regular backward reference. */ - if prev_ix >= cur_ix { - continue - } - - prev_ix &= ringbuffer_mask - if prev_ix+best_len > ringbuffer_mask || continuation != ringbuffer[prev_ix+best_len] { - continue - } - - len = findMatchLengthWithLimit(ringbuffer[prev_ix:], ringbuffer[cur_ix_masked:], max_len) - } else { - continue - } - { - var dist_cost float32 = base_cost + zopfliCostModelGetDistanceCost(model, j) - var l uint - for l = best_len + 1; l <= len; l++ { - var copycode uint16 = getCopyLengthCode(l) - var cmdcode uint16 = combineLengthCodes(inscode, copycode, j == 0) - var tmp float32 - if cmdcode < 128 { - tmp = base_cost - } else { - tmp = dist_cost - } - var cost float32 = tmp + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) - if cost < nodes[pos+l].u.cost { - updateZopfliNode(nodes, pos, start, l, l, backward, j+1, cost) - result = brotli_max_size_t(result, l) - } - - best_len = l - } - } - } - - /* At higher iterations look only for new last distance matches, since - looking only for new command start positions with the same distances - does not help much. */ - if k >= 2 { - continue - } - { - /* Loop through all possible copy lengths at this position. */ - var len uint = min_len - for j = 0; j < num_matches; j++ { - var match backwardMatch = matches[j] - var dist uint = uint(match.distance) - var is_dictionary_match bool = (dist > max_distance+gap) - var dist_code uint = dist + numDistanceShortCodes - 1 - var dist_symbol uint16 - var distextra uint32 - var distnumextra uint32 - var dist_cost float32 - var max_match_len uint - /* We already tried all possible last distance matches, so we can use - normal distance code here. */ - prefixEncodeCopyDistance(dist_code, uint(params.dist.num_direct_distance_codes), uint(params.dist.distance_postfix_bits), &dist_symbol, &distextra) - - distnumextra = uint32(dist_symbol) >> 10 - dist_cost = base_cost + float32(distnumextra) + zopfliCostModelGetDistanceCost(model, uint(dist_symbol)&0x3FF) - - /* Try all copy lengths up until the maximum copy length corresponding - to this distance. If the distance refers to the static dictionary, or - the maximum length is long enough, try only one maximum length. */ - max_match_len = backwardMatchLength(&match) - - if len < max_match_len && (is_dictionary_match || max_match_len > max_zopfli_len) { - len = max_match_len - } - - for ; len <= max_match_len; len++ { - var len_code uint - if is_dictionary_match { - len_code = backwardMatchLengthCode(&match) - } else { - len_code = len - } - var copycode uint16 = getCopyLengthCode(len_code) - var cmdcode uint16 = combineLengthCodes(inscode, copycode, false) - var cost float32 = dist_cost + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) - if cost < nodes[pos+len].u.cost { - updateZopfliNode(nodes, pos, start, uint(len), len_code, dist, 0, cost) - if len > result { - result = len - } - } - } - } - } - } - - return result -} - -func computeShortestPathFromNodes(num_bytes uint, nodes []zopfliNode) uint { - var index uint = num_bytes - var num_commands uint = 0 - for nodes[index].dcode_insert_length&0x7FFFFFF == 0 && nodes[index].length == 1 { - index-- - } - nodes[index].u.next = math.MaxUint32 - for index != 0 { - var len uint = uint(zopfliNodeCommandLength(&nodes[index])) - index -= uint(len) - nodes[index].u.next = uint32(len) - num_commands++ - } - - return num_commands -} - -/* REQUIRES: nodes != NULL and len(nodes) >= num_bytes + 1 */ -func zopfliCreateCommands(num_bytes uint, block_start uint, nodes []zopfliNode, dist_cache []int, last_insert_len *uint, params *encoderParams, commands *[]command, num_literals *uint) { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var pos uint = 0 - var offset uint32 = nodes[0].u.next - var i uint - var gap uint = 0 - for i = 0; offset != math.MaxUint32; i++ { - var next *zopfliNode = &nodes[uint32(pos)+offset] - var copy_length uint = uint(zopfliNodeCopyLength(next)) - var insert_length uint = uint(next.dcode_insert_length & 0x7FFFFFF) - pos += insert_length - offset = next.u.next - if i == 0 { - insert_length += *last_insert_len - *last_insert_len = 0 - } - { - var distance uint = uint(zopfliNodeCopyDistance(next)) - var len_code uint = uint(zopfliNodeLengthCode(next)) - var max_distance uint = brotli_min_size_t(block_start+pos, max_backward_limit) - var is_dictionary bool = (distance > max_distance+gap) - var dist_code uint = uint(zopfliNodeDistanceCode(next)) - *commands = append(*commands, makeCommand(¶ms.dist, insert_length, copy_length, int(len_code)-int(copy_length), dist_code)) - - if !is_dictionary && dist_code > 0 { - dist_cache[3] = dist_cache[2] - dist_cache[2] = dist_cache[1] - dist_cache[1] = dist_cache[0] - dist_cache[0] = int(distance) - } - } - - *num_literals += insert_length - pos += copy_length - } - - *last_insert_len += num_bytes - pos -} - -func zopfliIterate(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, gap uint, dist_cache []int, model *zopfliCostModel, num_matches []uint32, matches []backwardMatch, nodes []zopfliNode) uint { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var max_zopfli_len uint = maxZopfliLen(params) - var queue startPosQueue - var cur_match_pos uint = 0 - var i uint - nodes[0].length = 0 - nodes[0].u.cost = 0 - initStartPosQueue(&queue) - for i = 0; i+3 < num_bytes; i++ { - var skip uint = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, uint(num_matches[i]), matches[cur_match_pos:], model, &queue, nodes) - if skip < longCopyQuickStep { - skip = 0 - } - cur_match_pos += uint(num_matches[i]) - if num_matches[i] == 1 && backwardMatchLength(&matches[cur_match_pos-1]) > max_zopfli_len { - skip = brotli_max_size_t(backwardMatchLength(&matches[cur_match_pos-1]), skip) - } - - if skip > 1 { - skip-- - for skip != 0 { - i++ - if i+3 >= num_bytes { - break - } - evaluateNode(position, i, max_backward_limit, gap, dist_cache, model, &queue, nodes) - cur_match_pos += uint(num_matches[i]) - skip-- - } - } - } - - return computeShortestPathFromNodes(num_bytes, nodes) -} - -/* -Computes the shortest path of commands from position to at most - - position + num_bytes. - - On return, path->size() is the number of commands found and path[i] is the - length of the i-th command (copy length plus insert length). - Note that the sum of the lengths of all commands can be less than num_bytes. - - On return, the nodes[0..num_bytes] array will have the following - "ZopfliNode array invariant": - For each i in [1..num_bytes], if nodes[i].cost < kInfinity, then - (1) nodes[i].copy_length() >= 2 - (2) nodes[i].command_length() <= i and - (3) nodes[i - nodes[i].command_length()].cost < kInfinity - -REQUIRES: nodes != nil and len(nodes) >= num_bytes + 1 -*/ -func zopfliComputeShortestPath(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, dist_cache []int, hasher *h10, nodes []zopfliNode) uint { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var max_zopfli_len uint = maxZopfliLen(params) - var model zopfliCostModel - var queue startPosQueue - var matches [2 * (maxNumMatchesH10 + 64)]backwardMatch - var store_end uint - if num_bytes >= hasher.StoreLookahead() { - store_end = position + num_bytes - hasher.StoreLookahead() + 1 - } else { - store_end = position - } - var i uint - var gap uint = 0 - var lz_matches_offset uint = 0 - nodes[0].length = 0 - nodes[0].u.cost = 0 - initZopfliCostModel(&model, ¶ms.dist, num_bytes) - zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) - initStartPosQueue(&queue) - for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { - var pos uint = position + i - var max_distance uint = brotli_min_size_t(pos, max_backward_limit) - var skip uint - var num_matches uint - num_matches = findAllMatchesH10(hasher, ¶ms.dictionary, ringbuffer, ringbuffer_mask, pos, num_bytes-i, max_distance, gap, params, matches[lz_matches_offset:]) - if num_matches > 0 && backwardMatchLength(&matches[num_matches-1]) > max_zopfli_len { - matches[0] = matches[num_matches-1] - num_matches = 1 - } - - skip = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, num_matches, matches[:], &model, &queue, nodes) - if skip < longCopyQuickStep { - skip = 0 - } - if num_matches == 1 && backwardMatchLength(&matches[0]) > max_zopfli_len { - skip = brotli_max_size_t(backwardMatchLength(&matches[0]), skip) - } - - if skip > 1 { - /* Add the tail of the copy to the hasher. */ - hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+skip, store_end)) - - skip-- - for skip != 0 { - i++ - if i+hasher.HashTypeLength()-1 >= num_bytes { - break - } - evaluateNode(position, i, max_backward_limit, gap, dist_cache, &model, &queue, nodes) - skip-- - } - } - } - - cleanupZopfliCostModel(&model) - return computeShortestPathFromNodes(num_bytes, nodes) -} - -func createZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher *h10, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { - var nodes []zopfliNode - nodes = make([]zopfliNode, (num_bytes + 1)) - initZopfliNodes(nodes, num_bytes+1) - zopfliComputeShortestPath(num_bytes, position, ringbuffer, ringbuffer_mask, params, dist_cache, hasher, nodes) - zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) - nodes = nil -} - -func createHqZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var num_matches []uint32 = make([]uint32, num_bytes) - var matches_size uint = 4 * num_bytes - var store_end uint - if num_bytes >= hasher.StoreLookahead() { - store_end = position + num_bytes - hasher.StoreLookahead() + 1 - } else { - store_end = position - } - var cur_match_pos uint = 0 - var i uint - var orig_num_literals uint - var orig_last_insert_len uint - var orig_dist_cache [4]int - var orig_num_commands int - var model zopfliCostModel - var nodes []zopfliNode - var matches []backwardMatch = make([]backwardMatch, matches_size) - var gap uint = 0 - var shadow_matches uint = 0 - var new_array []backwardMatch - for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { - var pos uint = position + i - var max_distance uint = brotli_min_size_t(pos, max_backward_limit) - var max_length uint = num_bytes - i - var num_found_matches uint - var cur_match_end uint - var j uint - - /* Ensure that we have enough free slots. */ - if matches_size < cur_match_pos+maxNumMatchesH10+shadow_matches { - var new_size uint = matches_size - if new_size == 0 { - new_size = cur_match_pos + maxNumMatchesH10 + shadow_matches - } - - for new_size < cur_match_pos+maxNumMatchesH10+shadow_matches { - new_size *= 2 - } - - new_array = make([]backwardMatch, new_size) - if matches_size != 0 { - copy(new_array, matches[:matches_size]) - } - - matches = new_array - matches_size = new_size - } - - num_found_matches = findAllMatchesH10(hasher.(*h10), ¶ms.dictionary, ringbuffer, ringbuffer_mask, pos, max_length, max_distance, gap, params, matches[cur_match_pos+shadow_matches:]) - cur_match_end = cur_match_pos + num_found_matches - for j = cur_match_pos; j+1 < cur_match_end; j++ { - assert(backwardMatchLength(&matches[j]) <= backwardMatchLength(&matches[j+1])) - } - - num_matches[i] = uint32(num_found_matches) - if num_found_matches > 0 { - var match_len uint = backwardMatchLength(&matches[cur_match_end-1]) - if match_len > maxZopfliLenQuality11 { - var skip uint = match_len - 1 - matches[cur_match_pos] = matches[cur_match_end-1] - cur_match_pos++ - num_matches[i] = 1 - - /* Add the tail of the copy to the hasher. */ - hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+match_len, store_end)) - var pos uint = i - for i := 0; i < int(skip); i++ { - num_matches[pos+1:][i] = 0 - } - i += skip - } else { - cur_match_pos = cur_match_end - } - } - } - - orig_num_literals = *num_literals - orig_last_insert_len = *last_insert_len - copy(orig_dist_cache[:], dist_cache[:4]) - orig_num_commands = len(*commands) - nodes = make([]zopfliNode, (num_bytes + 1)) - initZopfliCostModel(&model, ¶ms.dist, num_bytes) - for i = 0; i < 2; i++ { - initZopfliNodes(nodes, num_bytes+1) - if i == 0 { - zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) - } else { - zopfliCostModelSetFromCommands(&model, position, ringbuffer, ringbuffer_mask, (*commands)[orig_num_commands:], orig_last_insert_len) - } - - *commands = (*commands)[:orig_num_commands] - *num_literals = orig_num_literals - *last_insert_len = orig_last_insert_len - copy(dist_cache, orig_dist_cache[:4]) - zopfliIterate(num_bytes, position, ringbuffer, ringbuffer_mask, params, gap, dist_cache, &model, num_matches, matches, nodes) - zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) - } - - cleanupZopfliCostModel(&model) - nodes = nil - matches = nil - num_matches = nil -} diff --git a/backend/vendor/github.com/andybalholm/brotli/bit_cost.go b/backend/vendor/github.com/andybalholm/brotli/bit_cost.go deleted file mode 100644 index 0005fc15..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/bit_cost.go +++ /dev/null @@ -1,436 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Functions to estimate the bit cost of Huffman trees. */ -func shannonEntropy(population []uint32, size uint, total *uint) float64 { - var sum uint = 0 - var retval float64 = 0 - var population_end []uint32 = population[size:] - var p uint - for -cap(population) < -cap(population_end) { - p = uint(population[0]) - population = population[1:] - sum += p - retval -= float64(p) * fastLog2(p) - } - - if sum != 0 { - retval += float64(sum) * fastLog2(sum) - } - *total = sum - return retval -} - -func bitsEntropy(population []uint32, size uint) float64 { - var sum uint - var retval float64 = shannonEntropy(population, size, &sum) - if retval < float64(sum) { - /* At least one bit per literal is needed. */ - retval = float64(sum) - } - - return retval -} - -const kOneSymbolHistogramCost float64 = 12 -const kTwoSymbolHistogramCost float64 = 20 -const kThreeSymbolHistogramCost float64 = 28 -const kFourSymbolHistogramCost float64 = 37 - -func populationCostLiteral(histogram *histogramLiteral) float64 { - var data_size uint = histogramDataSizeLiteral() - var count int = 0 - var s [5]uint - var bits float64 = 0.0 - var i uint - if histogram.total_count_ == 0 { - return kOneSymbolHistogramCost - } - - for i = 0; i < data_size; i++ { - if histogram.data_[i] > 0 { - s[count] = i - count++ - if count > 4 { - break - } - } - } - - if count == 1 { - return kOneSymbolHistogramCost - } - - if count == 2 { - return kTwoSymbolHistogramCost + float64(histogram.total_count_) - } - - if count == 3 { - var histo0 uint32 = histogram.data_[s[0]] - var histo1 uint32 = histogram.data_[s[1]] - var histo2 uint32 = histogram.data_[s[2]] - var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) - return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) - } - - if count == 4 { - var histo [4]uint32 - var h23 uint32 - var histomax uint32 - for i = 0; i < 4; i++ { - histo[i] = histogram.data_[s[i]] - } - - /* Sort */ - for i = 0; i < 4; i++ { - var j uint - for j = i + 1; j < 4; j++ { - if histo[j] > histo[i] { - var tmp uint32 = histo[j] - histo[j] = histo[i] - histo[i] = tmp - } - } - } - - h23 = histo[2] + histo[3] - histomax = brotli_max_uint32_t(h23, histo[0]) - return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) - } - { - var max_depth uint = 1 - var depth_histo = [codeLengthCodes]uint32{0} - /* In this loop we compute the entropy of the histogram and simultaneously - build a simplified histogram of the code length codes where we use the - zero repeat code 17, but we don't use the non-zero repeat code 16. */ - - var log2total float64 = fastLog2(histogram.total_count_) - for i = 0; i < data_size; { - if histogram.data_[i] > 0 { - var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) - /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - = log2(total_count) - log2(count(symbol)) */ - - var depth uint = uint(log2p + 0.5) - /* Approximate the bit depth by round(-log2(P(symbol))) */ - bits += float64(histogram.data_[i]) * log2p - - if depth > 15 { - depth = 15 - } - - if depth > max_depth { - max_depth = depth - } - - depth_histo[depth]++ - i++ - } else { - var reps uint32 = 1 - /* Compute the run length of zeros and add the appropriate number of 0 - and 17 code length codes to the code length code histogram. */ - - var k uint - for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { - reps++ - } - - i += uint(reps) - if i == data_size { - /* Don't add any cost for the last zero run, since these are encoded - only implicitly. */ - break - } - - if reps < 3 { - depth_histo[0] += reps - } else { - reps -= 2 - for reps > 0 { - depth_histo[repeatZeroCodeLength]++ - - /* Add the 3 extra bits for the 17 code length code. */ - bits += 3 - - reps >>= 3 - } - } - } - } - - /* Add the estimated encoding cost of the code length code histogram. */ - bits += float64(18 + 2*max_depth) - - /* Add the entropy of the code length code histogram. */ - bits += bitsEntropy(depth_histo[:], codeLengthCodes) - } - - return bits -} - -func populationCostCommand(histogram *histogramCommand) float64 { - var data_size uint = histogramDataSizeCommand() - var count int = 0 - var s [5]uint - var bits float64 = 0.0 - var i uint - if histogram.total_count_ == 0 { - return kOneSymbolHistogramCost - } - - for i = 0; i < data_size; i++ { - if histogram.data_[i] > 0 { - s[count] = i - count++ - if count > 4 { - break - } - } - } - - if count == 1 { - return kOneSymbolHistogramCost - } - - if count == 2 { - return kTwoSymbolHistogramCost + float64(histogram.total_count_) - } - - if count == 3 { - var histo0 uint32 = histogram.data_[s[0]] - var histo1 uint32 = histogram.data_[s[1]] - var histo2 uint32 = histogram.data_[s[2]] - var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) - return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) - } - - if count == 4 { - var histo [4]uint32 - var h23 uint32 - var histomax uint32 - for i = 0; i < 4; i++ { - histo[i] = histogram.data_[s[i]] - } - - /* Sort */ - for i = 0; i < 4; i++ { - var j uint - for j = i + 1; j < 4; j++ { - if histo[j] > histo[i] { - var tmp uint32 = histo[j] - histo[j] = histo[i] - histo[i] = tmp - } - } - } - - h23 = histo[2] + histo[3] - histomax = brotli_max_uint32_t(h23, histo[0]) - return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) - } - { - var max_depth uint = 1 - var depth_histo = [codeLengthCodes]uint32{0} - /* In this loop we compute the entropy of the histogram and simultaneously - build a simplified histogram of the code length codes where we use the - zero repeat code 17, but we don't use the non-zero repeat code 16. */ - - var log2total float64 = fastLog2(histogram.total_count_) - for i = 0; i < data_size; { - if histogram.data_[i] > 0 { - var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) - /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - = log2(total_count) - log2(count(symbol)) */ - - var depth uint = uint(log2p + 0.5) - /* Approximate the bit depth by round(-log2(P(symbol))) */ - bits += float64(histogram.data_[i]) * log2p - - if depth > 15 { - depth = 15 - } - - if depth > max_depth { - max_depth = depth - } - - depth_histo[depth]++ - i++ - } else { - var reps uint32 = 1 - /* Compute the run length of zeros and add the appropriate number of 0 - and 17 code length codes to the code length code histogram. */ - - var k uint - for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { - reps++ - } - - i += uint(reps) - if i == data_size { - /* Don't add any cost for the last zero run, since these are encoded - only implicitly. */ - break - } - - if reps < 3 { - depth_histo[0] += reps - } else { - reps -= 2 - for reps > 0 { - depth_histo[repeatZeroCodeLength]++ - - /* Add the 3 extra bits for the 17 code length code. */ - bits += 3 - - reps >>= 3 - } - } - } - } - - /* Add the estimated encoding cost of the code length code histogram. */ - bits += float64(18 + 2*max_depth) - - /* Add the entropy of the code length code histogram. */ - bits += bitsEntropy(depth_histo[:], codeLengthCodes) - } - - return bits -} - -func populationCostDistance(histogram *histogramDistance) float64 { - var data_size uint = histogramDataSizeDistance() - var count int = 0 - var s [5]uint - var bits float64 = 0.0 - var i uint - if histogram.total_count_ == 0 { - return kOneSymbolHistogramCost - } - - for i = 0; i < data_size; i++ { - if histogram.data_[i] > 0 { - s[count] = i - count++ - if count > 4 { - break - } - } - } - - if count == 1 { - return kOneSymbolHistogramCost - } - - if count == 2 { - return kTwoSymbolHistogramCost + float64(histogram.total_count_) - } - - if count == 3 { - var histo0 uint32 = histogram.data_[s[0]] - var histo1 uint32 = histogram.data_[s[1]] - var histo2 uint32 = histogram.data_[s[2]] - var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) - return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) - } - - if count == 4 { - var histo [4]uint32 - var h23 uint32 - var histomax uint32 - for i = 0; i < 4; i++ { - histo[i] = histogram.data_[s[i]] - } - - /* Sort */ - for i = 0; i < 4; i++ { - var j uint - for j = i + 1; j < 4; j++ { - if histo[j] > histo[i] { - var tmp uint32 = histo[j] - histo[j] = histo[i] - histo[i] = tmp - } - } - } - - h23 = histo[2] + histo[3] - histomax = brotli_max_uint32_t(h23, histo[0]) - return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) - } - { - var max_depth uint = 1 - var depth_histo = [codeLengthCodes]uint32{0} - /* In this loop we compute the entropy of the histogram and simultaneously - build a simplified histogram of the code length codes where we use the - zero repeat code 17, but we don't use the non-zero repeat code 16. */ - - var log2total float64 = fastLog2(histogram.total_count_) - for i = 0; i < data_size; { - if histogram.data_[i] > 0 { - var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) - /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - = log2(total_count) - log2(count(symbol)) */ - - var depth uint = uint(log2p + 0.5) - /* Approximate the bit depth by round(-log2(P(symbol))) */ - bits += float64(histogram.data_[i]) * log2p - - if depth > 15 { - depth = 15 - } - - if depth > max_depth { - max_depth = depth - } - - depth_histo[depth]++ - i++ - } else { - var reps uint32 = 1 - /* Compute the run length of zeros and add the appropriate number of 0 - and 17 code length codes to the code length code histogram. */ - - var k uint - for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { - reps++ - } - - i += uint(reps) - if i == data_size { - /* Don't add any cost for the last zero run, since these are encoded - only implicitly. */ - break - } - - if reps < 3 { - depth_histo[0] += reps - } else { - reps -= 2 - for reps > 0 { - depth_histo[repeatZeroCodeLength]++ - - /* Add the 3 extra bits for the 17 code length code. */ - bits += 3 - - reps >>= 3 - } - } - } - } - - /* Add the estimated encoding cost of the code length code histogram. */ - bits += float64(18 + 2*max_depth) - - /* Add the entropy of the code length code histogram. */ - bits += bitsEntropy(depth_histo[:], codeLengthCodes) - } - - return bits -} diff --git a/backend/vendor/github.com/andybalholm/brotli/bit_reader.go b/backend/vendor/github.com/andybalholm/brotli/bit_reader.go deleted file mode 100644 index 65848b41..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/bit_reader.go +++ /dev/null @@ -1,311 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Bit reading helpers */ - -const shortFillBitWindowRead = (8 >> 1) - -var kBitMask = [33]uint32{ - 0x00000000, - 0x00000001, - 0x00000003, - 0x00000007, - 0x0000000F, - 0x0000001F, - 0x0000003F, - 0x0000007F, - 0x000000FF, - 0x000001FF, - 0x000003FF, - 0x000007FF, - 0x00000FFF, - 0x00001FFF, - 0x00003FFF, - 0x00007FFF, - 0x0000FFFF, - 0x0001FFFF, - 0x0003FFFF, - 0x0007FFFF, - 0x000FFFFF, - 0x001FFFFF, - 0x003FFFFF, - 0x007FFFFF, - 0x00FFFFFF, - 0x01FFFFFF, - 0x03FFFFFF, - 0x07FFFFFF, - 0x0FFFFFFF, - 0x1FFFFFFF, - 0x3FFFFFFF, - 0x7FFFFFFF, - 0xFFFFFFFF, -} - -func bitMask(n uint32) uint32 { - return kBitMask[n] -} - -type bitReader struct { - val_ uint64 - bit_pos_ uint32 - input []byte - input_len uint - byte_pos uint -} - -type bitReaderState struct { - val_ uint64 - bit_pos_ uint32 - input []byte - input_len uint - byte_pos uint -} - -/* Initializes the BrotliBitReader fields. */ - -/* -Ensures that accumulator is not empty. - - May consume up to sizeof(brotli_reg_t) - 1 bytes of input. - Returns false if data is required but there is no input available. - For BROTLI_ALIGNED_READ this function also prepares bit reader for aligned - reading. -*/ -func bitReaderSaveState(from *bitReader, to *bitReaderState) { - to.val_ = from.val_ - to.bit_pos_ = from.bit_pos_ - to.input = from.input - to.input_len = from.input_len - to.byte_pos = from.byte_pos -} - -func bitReaderRestoreState(to *bitReader, from *bitReaderState) { - to.val_ = from.val_ - to.bit_pos_ = from.bit_pos_ - to.input = from.input - to.input_len = from.input_len - to.byte_pos = from.byte_pos -} - -func getAvailableBits(br *bitReader) uint32 { - return 64 - br.bit_pos_ -} - -/* -Returns amount of unread bytes the bit reader still has buffered from the - - BrotliInput, including whole bytes in br->val_. -*/ -func getRemainingBytes(br *bitReader) uint { - return uint(uint32(br.input_len-br.byte_pos) + (getAvailableBits(br) >> 3)) -} - -/* -Checks if there is at least |num| bytes left in the input ring-buffer - - (excluding the bits remaining in br->val_). -*/ -func checkInputAmount(br *bitReader, num uint) bool { - return br.input_len-br.byte_pos >= num -} - -/* -Guarantees that there are at least |n_bits| + 1 bits in accumulator. - - Precondition: accumulator contains at least 1 bit. - |n_bits| should be in the range [1..24] for regular build. For portable - non-64-bit little-endian build only 16 bits are safe to request. -*/ -func fillBitWindow(br *bitReader, n_bits uint32) { - if br.bit_pos_ >= 32 { - br.val_ >>= 32 - br.bit_pos_ ^= 32 /* here same as -= 32 because of the if condition */ - br.val_ |= (uint64(binary.LittleEndian.Uint32(br.input[br.byte_pos:]))) << 32 - br.byte_pos += 4 - } -} - -/* -Mostly like BrotliFillBitWindow, but guarantees only 16 bits and reads no - - more than BROTLI_SHORT_FILL_BIT_WINDOW_READ bytes of input. -*/ -func fillBitWindow16(br *bitReader) { - fillBitWindow(br, 17) -} - -/* -Tries to pull one byte of input to accumulator. - - Returns false if there is no input available. -*/ -func pullByte(br *bitReader) bool { - if br.byte_pos == br.input_len { - return false - } - - br.val_ >>= 8 - br.val_ |= (uint64(br.input[br.byte_pos])) << 56 - br.bit_pos_ -= 8 - br.byte_pos++ - return true -} - -/* -Returns currently available bits. - - The number of valid bits could be calculated by BrotliGetAvailableBits. -*/ -func getBitsUnmasked(br *bitReader) uint64 { - return br.val_ >> br.bit_pos_ -} - -/* -Like BrotliGetBits, but does not mask the result. - - The result contains at least 16 valid bits. -*/ -func get16BitsUnmasked(br *bitReader) uint32 { - fillBitWindow(br, 16) - return uint32(getBitsUnmasked(br)) -} - -/* -Returns the specified number of bits from |br| without advancing bit - - position. -*/ -func getBits(br *bitReader, n_bits uint32) uint32 { - fillBitWindow(br, n_bits) - return uint32(getBitsUnmasked(br)) & bitMask(n_bits) -} - -/* -Tries to peek the specified amount of bits. Returns false, if there - - is not enough input. -*/ -func safeGetBits(br *bitReader, n_bits uint32, val *uint32) bool { - for getAvailableBits(br) < n_bits { - if !pullByte(br) { - return false - } - } - - *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) - return true -} - -/* Advances the bit pos by |n_bits|. */ -func dropBits(br *bitReader, n_bits uint32) { - br.bit_pos_ += n_bits -} - -func bitReaderUnload(br *bitReader) { - var unused_bytes uint32 = getAvailableBits(br) >> 3 - var unused_bits uint32 = unused_bytes << 3 - br.byte_pos -= uint(unused_bytes) - if unused_bits == 64 { - br.val_ = 0 - } else { - br.val_ <<= unused_bits - } - - br.bit_pos_ += unused_bits -} - -/* -Reads the specified number of bits from |br| and advances the bit pos. - - Precondition: accumulator MUST contain at least |n_bits|. -*/ -func takeBits(br *bitReader, n_bits uint32, val *uint32) { - *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) - dropBits(br, n_bits) -} - -/* -Reads the specified number of bits from |br| and advances the bit pos. - - Assumes that there is enough input to perform BrotliFillBitWindow. -*/ -func readBits(br *bitReader, n_bits uint32) uint32 { - var val uint32 - fillBitWindow(br, n_bits) - takeBits(br, n_bits, &val) - return val -} - -/* -Tries to read the specified amount of bits. Returns false, if there - - is not enough input. |n_bits| MUST be positive. -*/ -func safeReadBits(br *bitReader, n_bits uint32, val *uint32) bool { - for getAvailableBits(br) < n_bits { - if !pullByte(br) { - return false - } - } - - takeBits(br, n_bits, val) - return true -} - -/* -Advances the bit reader position to the next byte boundary and verifies - - that any skipped bits are set to zero. -*/ -func bitReaderJumpToByteBoundary(br *bitReader) bool { - var pad_bits_count uint32 = getAvailableBits(br) & 0x7 - var pad_bits uint32 = 0 - if pad_bits_count != 0 { - takeBits(br, pad_bits_count, &pad_bits) - } - - return pad_bits == 0 -} - -/* -Copies remaining input bytes stored in the bit reader to the output. Value - - |num| may not be larger than BrotliGetRemainingBytes. The bit reader must be - warmed up again after this. -*/ -func copyBytes(dest []byte, br *bitReader, num uint) { - for getAvailableBits(br) >= 8 && num > 0 { - dest[0] = byte(getBitsUnmasked(br)) - dropBits(br, 8) - dest = dest[1:] - num-- - } - - copy(dest, br.input[br.byte_pos:][:num]) - br.byte_pos += num -} - -func initBitReader(br *bitReader) { - br.val_ = 0 - br.bit_pos_ = 64 -} - -func warmupBitReader(br *bitReader) bool { - /* Fixing alignment after unaligned BrotliFillWindow would result accumulator - overflow. If unalignment is caused by BrotliSafeReadBits, then there is - enough space in accumulator to fix alignment. */ - if getAvailableBits(br) == 0 { - if !pullByte(br) { - return false - } - } - - return true -} diff --git a/backend/vendor/github.com/andybalholm/brotli/block_splitter.go b/backend/vendor/github.com/andybalholm/brotli/block_splitter.go deleted file mode 100644 index 978a1314..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/block_splitter.go +++ /dev/null @@ -1,144 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Block split point selection utilities. */ - -type blockSplit struct { - num_types uint - num_blocks uint - types []byte - lengths []uint32 - types_alloc_size uint - lengths_alloc_size uint -} - -const ( - kMaxLiteralHistograms uint = 100 - kMaxCommandHistograms uint = 50 - kLiteralBlockSwitchCost float64 = 28.1 - kCommandBlockSwitchCost float64 = 13.5 - kDistanceBlockSwitchCost float64 = 14.6 - kLiteralStrideLength uint = 70 - kCommandStrideLength uint = 40 - kSymbolsPerLiteralHistogram uint = 544 - kSymbolsPerCommandHistogram uint = 530 - kSymbolsPerDistanceHistogram uint = 544 - kMinLengthForBlockSplitting uint = 128 - kIterMulForRefining uint = 2 - kMinItersForRefining uint = 100 -) - -func countLiterals(cmds []command) uint { - var total_length uint = 0 - /* Count how many we have. */ - - for i := range cmds { - total_length += uint(cmds[i].insert_len_) - } - - return total_length -} - -func copyLiteralsToByteArray(cmds []command, data []byte, offset uint, mask uint, literals []byte) { - var pos uint = 0 - var from_pos uint = offset & mask - for i := range cmds { - var insert_len uint = uint(cmds[i].insert_len_) - if from_pos+insert_len > mask { - var head_size uint = mask + 1 - from_pos - copy(literals[pos:], data[from_pos:][:head_size]) - from_pos = 0 - pos += head_size - insert_len -= head_size - } - - if insert_len > 0 { - copy(literals[pos:], data[from_pos:][:insert_len]) - pos += insert_len - } - - from_pos = uint((uint32(from_pos+insert_len) + commandCopyLen(&cmds[i])) & uint32(mask)) - } -} - -func myRand(seed *uint32) uint32 { - /* Initial seed should be 7. In this case, loop length is (1 << 29). */ - *seed *= 16807 - - return *seed -} - -func bitCost(count uint) float64 { - if count == 0 { - return -2.0 - } else { - return fastLog2(count) - } -} - -const histogramsPerBatch = 64 - -const clustersPerBatch = 16 - -func initBlockSplit(self *blockSplit) { - self.num_types = 0 - self.num_blocks = 0 - self.types = self.types[:0] - self.lengths = self.lengths[:0] - self.types_alloc_size = 0 - self.lengths_alloc_size = 0 -} - -func splitBlock(cmds []command, data []byte, pos uint, mask uint, params *encoderParams, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit) { - { - var literals_count uint = countLiterals(cmds) - var literals []byte = make([]byte, literals_count) - - /* Create a continuous array of literals. */ - copyLiteralsToByteArray(cmds, data, pos, mask, literals) - - /* Create the block split on the array of literals. - Literal histograms have alphabet size 256. */ - splitByteVectorLiteral(literals, literals_count, kSymbolsPerLiteralHistogram, kMaxLiteralHistograms, kLiteralStrideLength, kLiteralBlockSwitchCost, params, literal_split) - - literals = nil - } - { - var insert_and_copy_codes []uint16 = make([]uint16, len(cmds)) - /* Compute prefix codes for commands. */ - - for i := range cmds { - insert_and_copy_codes[i] = cmds[i].cmd_prefix_ - } - - /* Create the block split on the array of command prefixes. */ - splitByteVectorCommand(insert_and_copy_codes, kSymbolsPerCommandHistogram, kMaxCommandHistograms, kCommandStrideLength, kCommandBlockSwitchCost, params, insert_and_copy_split) - - /* TODO: reuse for distances? */ - - insert_and_copy_codes = nil - } - { - var distance_prefixes []uint16 = make([]uint16, len(cmds)) - var j uint = 0 - /* Create a continuous array of distance prefixes. */ - - for i := range cmds { - var cmd *command = &cmds[i] - if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { - distance_prefixes[j] = cmd.dist_prefix_ & 0x3FF - j++ - } - } - - /* Create the block split on the array of distance prefixes. */ - splitByteVectorDistance(distance_prefixes, j, kSymbolsPerDistanceHistogram, kMaxCommandHistograms, kCommandStrideLength, kDistanceBlockSwitchCost, params, dist_split) - - distance_prefixes = nil - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/block_splitter_command.go b/backend/vendor/github.com/andybalholm/brotli/block_splitter_command.go deleted file mode 100644 index 0a7a458a..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/block_splitter_command.go +++ /dev/null @@ -1,437 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func initialEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { - var seed uint32 = 7 - var block_length uint = length / num_histograms - var i uint - clearHistogramsCommand(histograms, num_histograms) - for i = 0; i < num_histograms; i++ { - var pos uint = length * i / num_histograms - if i != 0 { - pos += uint(myRand(&seed) % uint32(block_length)) - } - - if pos+stride >= length { - pos = length - stride - 1 - } - - histogramAddVectorCommand(&histograms[i], data[pos:], stride) - } -} - -func randomSampleCommand(seed *uint32, data []uint16, length uint, stride uint, sample *histogramCommand) { - var pos uint = 0 - if stride >= length { - stride = length - } else { - pos = uint(myRand(seed) % uint32(length-stride+1)) - } - - histogramAddVectorCommand(sample, data[pos:], stride) -} - -func refineEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { - var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining - var seed uint32 = 7 - var iter uint - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms - for iter = 0; iter < iters; iter++ { - var sample histogramCommand - histogramClearCommand(&sample) - randomSampleCommand(&seed, data, length, stride, &sample) - histogramAddHistogramCommand(&histograms[iter%num_histograms], &sample) - } -} - -/* -Assigns a block id from the range [0, num_histograms) to each data element - - in data[0..length) and fills in block_id[0..length) with the assigned values. - Returns the number of blocks, i.e. one plus the number of block switches. -*/ -func findBlocksCommand(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramCommand, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { - var data_size uint = histogramDataSizeCommand() - var bitmaplen uint = (num_histograms + 7) >> 3 - var num_blocks uint = 1 - var i uint - var j uint - assert(num_histograms <= 256) - if num_histograms <= 1 { - for i = 0; i < length; i++ { - block_id[i] = 0 - } - - return 1 - } - - for i := 0; i < int(data_size*num_histograms); i++ { - insert_cost[i] = 0 - } - for i = 0; i < num_histograms; i++ { - insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) - } - - for i = data_size; i != 0; { - i-- - for j = 0; j < num_histograms; j++ { - insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) - } - } - - for i := 0; i < int(num_histograms); i++ { - cost[i] = 0 - } - for i := 0; i < int(length*bitmaplen); i++ { - switch_signal[i] = 0 - } - - /* After each iteration of this loop, cost[k] will contain the difference - between the minimum cost of arriving at the current byte position using - entropy code k, and the minimum cost of arriving at the current byte - position. This difference is capped at the block switch cost, and if it - reaches block switch cost, it means that when we trace back from the last - position, we need to switch here. */ - for i = 0; i < length; i++ { - var byte_ix uint = i - var ix uint = byte_ix * bitmaplen - var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms - var min_cost float64 = 1e99 - var block_switch_cost float64 = block_switch_bitcost - var k uint - for k = 0; k < num_histograms; k++ { - /* We are coding the symbol in data[byte_ix] with entropy code k. */ - cost[k] += insert_cost[insert_cost_ix+k] - - if cost[k] < min_cost { - min_cost = cost[k] - block_id[byte_ix] = byte(k) - } - } - - /* More blocks for the beginning. */ - if byte_ix < 2000 { - block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 - } - - for k = 0; k < num_histograms; k++ { - cost[k] -= min_cost - if cost[k] >= block_switch_cost { - var mask byte = byte(1 << (k & 7)) - cost[k] = block_switch_cost - assert(k>>3 < bitmaplen) - switch_signal[ix+(k>>3)] |= mask - /* Trace back from the last position and switch at the marked places. */ - } - } - } - { - var byte_ix uint = length - 1 - var ix uint = byte_ix * bitmaplen - var cur_id byte = block_id[byte_ix] - for byte_ix > 0 { - var mask byte = byte(1 << (cur_id & 7)) - assert(uint(cur_id)>>3 < bitmaplen) - byte_ix-- - ix -= bitmaplen - if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { - if cur_id != block_id[byte_ix] { - cur_id = block_id[byte_ix] - num_blocks++ - } - } - - block_id[byte_ix] = cur_id - } - } - - return num_blocks -} - -var remapBlockIdsCommand_kInvalidId uint16 = 256 - -func remapBlockIdsCommand(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { - var next_id uint16 = 0 - var i uint - for i = 0; i < num_histograms; i++ { - new_id[i] = remapBlockIdsCommand_kInvalidId - } - - for i = 0; i < length; i++ { - assert(uint(block_ids[i]) < num_histograms) - if new_id[block_ids[i]] == remapBlockIdsCommand_kInvalidId { - new_id[block_ids[i]] = next_id - next_id++ - } - } - - for i = 0; i < length; i++ { - block_ids[i] = byte(new_id[block_ids[i]]) - assert(uint(block_ids[i]) < num_histograms) - } - - assert(uint(next_id) <= num_histograms) - return uint(next_id) -} - -func buildBlockHistogramsCommand(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramCommand) { - var i uint - clearHistogramsCommand(histograms, num_histograms) - for i = 0; i < length; i++ { - histogramAddCommand(&histograms[block_ids[i]], uint(data[i])) - } -} - -var clusterBlocksCommand_kInvalidIndex uint32 = math.MaxUint32 - -func clusterBlocksCommand(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { - var histogram_symbols []uint32 = make([]uint32, num_blocks) - var block_lengths []uint32 = make([]uint32, num_blocks) - var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch - var all_histograms_size uint = 0 - var all_histograms_capacity uint = expected_num_clusters - var all_histograms []histogramCommand = make([]histogramCommand, all_histograms_capacity) - var cluster_size_size uint = 0 - var cluster_size_capacity uint = expected_num_clusters - var cluster_size []uint32 = make([]uint32, cluster_size_capacity) - var num_clusters uint = 0 - var histograms []histogramCommand = make([]histogramCommand, brotli_min_size_t(num_blocks, histogramsPerBatch)) - var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 - var pairs_capacity uint = max_num_pairs + 1 - var pairs []histogramPair = make([]histogramPair, pairs_capacity) - var pos uint = 0 - var clusters []uint32 - var num_final_clusters uint - var new_index []uint32 - var i uint - var sizes = [histogramsPerBatch]uint32{0} - var new_clusters = [histogramsPerBatch]uint32{0} - var symbols = [histogramsPerBatch]uint32{0} - var remap = [histogramsPerBatch]uint32{0} - - for i := 0; i < int(num_blocks); i++ { - block_lengths[i] = 0 - } - { - var block_idx uint = 0 - for i = 0; i < length; i++ { - assert(block_idx < num_blocks) - block_lengths[block_idx]++ - if i+1 == length || block_ids[i] != block_ids[i+1] { - block_idx++ - } - } - - assert(block_idx == num_blocks) - } - - for i = 0; i < num_blocks; i += histogramsPerBatch { - var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - var k uint - histogramClearCommand(&histograms[j]) - for k = 0; uint32(k) < block_lengths[i+j]; k++ { - histogramAddCommand(&histograms[j], uint(data[pos])) - pos++ - } - - histograms[j].bit_cost_ = populationCostCommand(&histograms[j]) - new_clusters[j] = uint32(j) - symbols[j] = uint32(j) - sizes[j] = 1 - } - - num_new_clusters = histogramCombineCommand(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) - if all_histograms_capacity < (all_histograms_size + num_new_clusters) { - var _new_size uint - if all_histograms_capacity == 0 { - _new_size = all_histograms_size + num_new_clusters - } else { - _new_size = all_histograms_capacity - } - var new_array []histogramCommand - for _new_size < (all_histograms_size + num_new_clusters) { - _new_size *= 2 - } - new_array = make([]histogramCommand, _new_size) - if all_histograms_capacity != 0 { - copy(new_array, all_histograms[:all_histograms_capacity]) - } - - all_histograms = new_array - all_histograms_capacity = _new_size - } - - brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) - for j = 0; j < num_new_clusters; j++ { - all_histograms[all_histograms_size] = histograms[new_clusters[j]] - all_histograms_size++ - cluster_size[cluster_size_size] = sizes[new_clusters[j]] - cluster_size_size++ - remap[new_clusters[j]] = uint32(j) - } - - for j = 0; j < num_to_combine; j++ { - histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] - } - - num_clusters += num_new_clusters - assert(num_clusters == cluster_size_size) - assert(num_clusters == all_histograms_size) - } - - histograms = nil - - max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < max_num_pairs+1 { - pairs = nil - pairs = make([]histogramPair, (max_num_pairs + 1)) - } - - clusters = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - clusters[i] = uint32(i) - } - - num_final_clusters = histogramCombineCommand(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) - pairs = nil - cluster_size = nil - - new_index = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - new_index[i] = clusterBlocksCommand_kInvalidIndex - } - pos = 0 - { - var next_index uint32 = 0 - for i = 0; i < num_blocks; i++ { - var histo histogramCommand - var j uint - var best_out uint32 - var best_bits float64 - histogramClearCommand(&histo) - for j = 0; uint32(j) < block_lengths[i]; j++ { - histogramAddCommand(&histo, uint(data[pos])) - pos++ - } - - if i == 0 { - best_out = histogram_symbols[0] - } else { - best_out = histogram_symbols[i-1] - } - best_bits = histogramBitCostDistanceCommand(&histo, &all_histograms[best_out]) - for j = 0; j < num_final_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceCommand(&histo, &all_histograms[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - histogram_symbols[i] = best_out - if new_index[best_out] == clusterBlocksCommand_kInvalidIndex { - new_index[best_out] = next_index - next_index++ - } - } - } - - clusters = nil - all_histograms = nil - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) - { - var cur_length uint32 = 0 - var block_idx uint = 0 - var max_type byte = 0 - for i = 0; i < num_blocks; i++ { - cur_length += block_lengths[i] - if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { - var id byte = byte(new_index[histogram_symbols[i]]) - split.types[block_idx] = id - split.lengths[block_idx] = cur_length - max_type = brotli_max_uint8_t(max_type, id) - cur_length = 0 - block_idx++ - } - } - - split.num_blocks = block_idx - split.num_types = uint(max_type) + 1 - } - - new_index = nil - block_lengths = nil - histogram_symbols = nil -} - -func splitByteVectorCommand(data []uint16, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { - length := uint(len(data)) - var data_size uint = histogramDataSizeCommand() - var num_histograms uint = length/literals_per_histogram + 1 - var histograms []histogramCommand - if num_histograms > max_histograms { - num_histograms = max_histograms - } - - if length == 0 { - split.num_types = 1 - return - } else if length < kMinLengthForBlockSplitting { - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) - split.num_types = 1 - split.types[split.num_blocks] = 0 - split.lengths[split.num_blocks] = uint32(length) - split.num_blocks++ - return - } - - histograms = make([]histogramCommand, num_histograms) - - /* Find good entropy codes. */ - initialEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) - - refineEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) - { - var block_ids []byte = make([]byte, length) - var num_blocks uint = 0 - var bitmaplen uint = (num_histograms + 7) >> 3 - var insert_cost []float64 = make([]float64, (data_size * num_histograms)) - var cost []float64 = make([]float64, num_histograms) - var switch_signal []byte = make([]byte, (length * bitmaplen)) - var new_id []uint16 = make([]uint16, num_histograms) - var iters uint - if params.quality < hqZopflificationQuality { - iters = 3 - } else { - iters = 10 - } - /* Find a good path through literals with the good entropy codes. */ - - var i uint - for i = 0; i < iters; i++ { - num_blocks = findBlocksCommand(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) - num_histograms = remapBlockIdsCommand(block_ids, length, new_id, num_histograms) - buildBlockHistogramsCommand(data, length, block_ids, num_histograms, histograms) - } - - insert_cost = nil - cost = nil - switch_signal = nil - new_id = nil - histograms = nil - clusterBlocksCommand(data, length, num_blocks, block_ids, split) - block_ids = nil - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/block_splitter_distance.go b/backend/vendor/github.com/andybalholm/brotli/block_splitter_distance.go deleted file mode 100644 index bb04fa8a..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/block_splitter_distance.go +++ /dev/null @@ -1,436 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func initialEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { - var seed uint32 = 7 - var block_length uint = length / num_histograms - var i uint - clearHistogramsDistance(histograms, num_histograms) - for i = 0; i < num_histograms; i++ { - var pos uint = length * i / num_histograms - if i != 0 { - pos += uint(myRand(&seed) % uint32(block_length)) - } - - if pos+stride >= length { - pos = length - stride - 1 - } - - histogramAddVectorDistance(&histograms[i], data[pos:], stride) - } -} - -func randomSampleDistance(seed *uint32, data []uint16, length uint, stride uint, sample *histogramDistance) { - var pos uint = 0 - if stride >= length { - stride = length - } else { - pos = uint(myRand(seed) % uint32(length-stride+1)) - } - - histogramAddVectorDistance(sample, data[pos:], stride) -} - -func refineEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { - var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining - var seed uint32 = 7 - var iter uint - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms - for iter = 0; iter < iters; iter++ { - var sample histogramDistance - histogramClearDistance(&sample) - randomSampleDistance(&seed, data, length, stride, &sample) - histogramAddHistogramDistance(&histograms[iter%num_histograms], &sample) - } -} - -/* -Assigns a block id from the range [0, num_histograms) to each data element - - in data[0..length) and fills in block_id[0..length) with the assigned values. - Returns the number of blocks, i.e. one plus the number of block switches. -*/ -func findBlocksDistance(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramDistance, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { - var data_size uint = histogramDataSizeDistance() - var bitmaplen uint = (num_histograms + 7) >> 3 - var num_blocks uint = 1 - var i uint - var j uint - assert(num_histograms <= 256) - if num_histograms <= 1 { - for i = 0; i < length; i++ { - block_id[i] = 0 - } - - return 1 - } - - for i := 0; i < int(data_size*num_histograms); i++ { - insert_cost[i] = 0 - } - for i = 0; i < num_histograms; i++ { - insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) - } - - for i = data_size; i != 0; { - i-- - for j = 0; j < num_histograms; j++ { - insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) - } - } - - for i := 0; i < int(num_histograms); i++ { - cost[i] = 0 - } - for i := 0; i < int(length*bitmaplen); i++ { - switch_signal[i] = 0 - } - - /* After each iteration of this loop, cost[k] will contain the difference - between the minimum cost of arriving at the current byte position using - entropy code k, and the minimum cost of arriving at the current byte - position. This difference is capped at the block switch cost, and if it - reaches block switch cost, it means that when we trace back from the last - position, we need to switch here. */ - for i = 0; i < length; i++ { - var byte_ix uint = i - var ix uint = byte_ix * bitmaplen - var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms - var min_cost float64 = 1e99 - var block_switch_cost float64 = block_switch_bitcost - var k uint - for k = 0; k < num_histograms; k++ { - /* We are coding the symbol in data[byte_ix] with entropy code k. */ - cost[k] += insert_cost[insert_cost_ix+k] - - if cost[k] < min_cost { - min_cost = cost[k] - block_id[byte_ix] = byte(k) - } - } - - /* More blocks for the beginning. */ - if byte_ix < 2000 { - block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 - } - - for k = 0; k < num_histograms; k++ { - cost[k] -= min_cost - if cost[k] >= block_switch_cost { - var mask byte = byte(1 << (k & 7)) - cost[k] = block_switch_cost - assert(k>>3 < bitmaplen) - switch_signal[ix+(k>>3)] |= mask - /* Trace back from the last position and switch at the marked places. */ - } - } - } - { - var byte_ix uint = length - 1 - var ix uint = byte_ix * bitmaplen - var cur_id byte = block_id[byte_ix] - for byte_ix > 0 { - var mask byte = byte(1 << (cur_id & 7)) - assert(uint(cur_id)>>3 < bitmaplen) - byte_ix-- - ix -= bitmaplen - if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { - if cur_id != block_id[byte_ix] { - cur_id = block_id[byte_ix] - num_blocks++ - } - } - - block_id[byte_ix] = cur_id - } - } - - return num_blocks -} - -var remapBlockIdsDistance_kInvalidId uint16 = 256 - -func remapBlockIdsDistance(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { - var next_id uint16 = 0 - var i uint - for i = 0; i < num_histograms; i++ { - new_id[i] = remapBlockIdsDistance_kInvalidId - } - - for i = 0; i < length; i++ { - assert(uint(block_ids[i]) < num_histograms) - if new_id[block_ids[i]] == remapBlockIdsDistance_kInvalidId { - new_id[block_ids[i]] = next_id - next_id++ - } - } - - for i = 0; i < length; i++ { - block_ids[i] = byte(new_id[block_ids[i]]) - assert(uint(block_ids[i]) < num_histograms) - } - - assert(uint(next_id) <= num_histograms) - return uint(next_id) -} - -func buildBlockHistogramsDistance(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramDistance) { - var i uint - clearHistogramsDistance(histograms, num_histograms) - for i = 0; i < length; i++ { - histogramAddDistance(&histograms[block_ids[i]], uint(data[i])) - } -} - -var clusterBlocksDistance_kInvalidIndex uint32 = math.MaxUint32 - -func clusterBlocksDistance(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { - var histogram_symbols []uint32 = make([]uint32, num_blocks) - var block_lengths []uint32 = make([]uint32, num_blocks) - var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch - var all_histograms_size uint = 0 - var all_histograms_capacity uint = expected_num_clusters - var all_histograms []histogramDistance = make([]histogramDistance, all_histograms_capacity) - var cluster_size_size uint = 0 - var cluster_size_capacity uint = expected_num_clusters - var cluster_size []uint32 = make([]uint32, cluster_size_capacity) - var num_clusters uint = 0 - var histograms []histogramDistance = make([]histogramDistance, brotli_min_size_t(num_blocks, histogramsPerBatch)) - var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 - var pairs_capacity uint = max_num_pairs + 1 - var pairs []histogramPair = make([]histogramPair, pairs_capacity) - var pos uint = 0 - var clusters []uint32 - var num_final_clusters uint - var new_index []uint32 - var i uint - var sizes = [histogramsPerBatch]uint32{0} - var new_clusters = [histogramsPerBatch]uint32{0} - var symbols = [histogramsPerBatch]uint32{0} - var remap = [histogramsPerBatch]uint32{0} - - for i := 0; i < int(num_blocks); i++ { - block_lengths[i] = 0 - } - { - var block_idx uint = 0 - for i = 0; i < length; i++ { - assert(block_idx < num_blocks) - block_lengths[block_idx]++ - if i+1 == length || block_ids[i] != block_ids[i+1] { - block_idx++ - } - } - - assert(block_idx == num_blocks) - } - - for i = 0; i < num_blocks; i += histogramsPerBatch { - var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - var k uint - histogramClearDistance(&histograms[j]) - for k = 0; uint32(k) < block_lengths[i+j]; k++ { - histogramAddDistance(&histograms[j], uint(data[pos])) - pos++ - } - - histograms[j].bit_cost_ = populationCostDistance(&histograms[j]) - new_clusters[j] = uint32(j) - symbols[j] = uint32(j) - sizes[j] = 1 - } - - num_new_clusters = histogramCombineDistance(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) - if all_histograms_capacity < (all_histograms_size + num_new_clusters) { - var _new_size uint - if all_histograms_capacity == 0 { - _new_size = all_histograms_size + num_new_clusters - } else { - _new_size = all_histograms_capacity - } - var new_array []histogramDistance - for _new_size < (all_histograms_size + num_new_clusters) { - _new_size *= 2 - } - new_array = make([]histogramDistance, _new_size) - if all_histograms_capacity != 0 { - copy(new_array, all_histograms[:all_histograms_capacity]) - } - - all_histograms = new_array - all_histograms_capacity = _new_size - } - - brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) - for j = 0; j < num_new_clusters; j++ { - all_histograms[all_histograms_size] = histograms[new_clusters[j]] - all_histograms_size++ - cluster_size[cluster_size_size] = sizes[new_clusters[j]] - cluster_size_size++ - remap[new_clusters[j]] = uint32(j) - } - - for j = 0; j < num_to_combine; j++ { - histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] - } - - num_clusters += num_new_clusters - assert(num_clusters == cluster_size_size) - assert(num_clusters == all_histograms_size) - } - - histograms = nil - - max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < max_num_pairs+1 { - pairs = nil - pairs = make([]histogramPair, (max_num_pairs + 1)) - } - - clusters = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - clusters[i] = uint32(i) - } - - num_final_clusters = histogramCombineDistance(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) - pairs = nil - cluster_size = nil - - new_index = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - new_index[i] = clusterBlocksDistance_kInvalidIndex - } - pos = 0 - { - var next_index uint32 = 0 - for i = 0; i < num_blocks; i++ { - var histo histogramDistance - var j uint - var best_out uint32 - var best_bits float64 - histogramClearDistance(&histo) - for j = 0; uint32(j) < block_lengths[i]; j++ { - histogramAddDistance(&histo, uint(data[pos])) - pos++ - } - - if i == 0 { - best_out = histogram_symbols[0] - } else { - best_out = histogram_symbols[i-1] - } - best_bits = histogramBitCostDistanceDistance(&histo, &all_histograms[best_out]) - for j = 0; j < num_final_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceDistance(&histo, &all_histograms[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - histogram_symbols[i] = best_out - if new_index[best_out] == clusterBlocksDistance_kInvalidIndex { - new_index[best_out] = next_index - next_index++ - } - } - } - - clusters = nil - all_histograms = nil - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) - { - var cur_length uint32 = 0 - var block_idx uint = 0 - var max_type byte = 0 - for i = 0; i < num_blocks; i++ { - cur_length += block_lengths[i] - if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { - var id byte = byte(new_index[histogram_symbols[i]]) - split.types[block_idx] = id - split.lengths[block_idx] = cur_length - max_type = brotli_max_uint8_t(max_type, id) - cur_length = 0 - block_idx++ - } - } - - split.num_blocks = block_idx - split.num_types = uint(max_type) + 1 - } - - new_index = nil - block_lengths = nil - histogram_symbols = nil -} - -func splitByteVectorDistance(data []uint16, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { - var data_size uint = histogramDataSizeDistance() - var num_histograms uint = length/literals_per_histogram + 1 - var histograms []histogramDistance - if num_histograms > max_histograms { - num_histograms = max_histograms - } - - if length == 0 { - split.num_types = 1 - return - } else if length < kMinLengthForBlockSplitting { - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) - split.num_types = 1 - split.types[split.num_blocks] = 0 - split.lengths[split.num_blocks] = uint32(length) - split.num_blocks++ - return - } - - histograms = make([]histogramDistance, num_histograms) - - /* Find good entropy codes. */ - initialEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) - - refineEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) - { - var block_ids []byte = make([]byte, length) - var num_blocks uint = 0 - var bitmaplen uint = (num_histograms + 7) >> 3 - var insert_cost []float64 = make([]float64, (data_size * num_histograms)) - var cost []float64 = make([]float64, num_histograms) - var switch_signal []byte = make([]byte, (length * bitmaplen)) - var new_id []uint16 = make([]uint16, num_histograms) - var iters uint - if params.quality < hqZopflificationQuality { - iters = 3 - } else { - iters = 10 - } - /* Find a good path through literals with the good entropy codes. */ - - var i uint - for i = 0; i < iters; i++ { - num_blocks = findBlocksDistance(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) - num_histograms = remapBlockIdsDistance(block_ids, length, new_id, num_histograms) - buildBlockHistogramsDistance(data, length, block_ids, num_histograms, histograms) - } - - insert_cost = nil - cost = nil - switch_signal = nil - new_id = nil - histograms = nil - clusterBlocksDistance(data, length, num_blocks, block_ids, split) - block_ids = nil - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/block_splitter_literal.go b/backend/vendor/github.com/andybalholm/brotli/block_splitter_literal.go deleted file mode 100644 index 652b041e..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/block_splitter_literal.go +++ /dev/null @@ -1,436 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func initialEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { - var seed uint32 = 7 - var block_length uint = length / num_histograms - var i uint - clearHistogramsLiteral(histograms, num_histograms) - for i = 0; i < num_histograms; i++ { - var pos uint = length * i / num_histograms - if i != 0 { - pos += uint(myRand(&seed) % uint32(block_length)) - } - - if pos+stride >= length { - pos = length - stride - 1 - } - - histogramAddVectorLiteral(&histograms[i], data[pos:], stride) - } -} - -func randomSampleLiteral(seed *uint32, data []byte, length uint, stride uint, sample *histogramLiteral) { - var pos uint = 0 - if stride >= length { - stride = length - } else { - pos = uint(myRand(seed) % uint32(length-stride+1)) - } - - histogramAddVectorLiteral(sample, data[pos:], stride) -} - -func refineEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { - var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining - var seed uint32 = 7 - var iter uint - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms - for iter = 0; iter < iters; iter++ { - var sample histogramLiteral - histogramClearLiteral(&sample) - randomSampleLiteral(&seed, data, length, stride, &sample) - histogramAddHistogramLiteral(&histograms[iter%num_histograms], &sample) - } -} - -/* -Assigns a block id from the range [0, num_histograms) to each data element - - in data[0..length) and fills in block_id[0..length) with the assigned values. - Returns the number of blocks, i.e. one plus the number of block switches. -*/ -func findBlocksLiteral(data []byte, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramLiteral, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { - var data_size uint = histogramDataSizeLiteral() - var bitmaplen uint = (num_histograms + 7) >> 3 - var num_blocks uint = 1 - var i uint - var j uint - assert(num_histograms <= 256) - if num_histograms <= 1 { - for i = 0; i < length; i++ { - block_id[i] = 0 - } - - return 1 - } - - for i := 0; i < int(data_size*num_histograms); i++ { - insert_cost[i] = 0 - } - for i = 0; i < num_histograms; i++ { - insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) - } - - for i = data_size; i != 0; { - i-- - for j = 0; j < num_histograms; j++ { - insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) - } - } - - for i := 0; i < int(num_histograms); i++ { - cost[i] = 0 - } - for i := 0; i < int(length*bitmaplen); i++ { - switch_signal[i] = 0 - } - - /* After each iteration of this loop, cost[k] will contain the difference - between the minimum cost of arriving at the current byte position using - entropy code k, and the minimum cost of arriving at the current byte - position. This difference is capped at the block switch cost, and if it - reaches block switch cost, it means that when we trace back from the last - position, we need to switch here. */ - for i = 0; i < length; i++ { - var byte_ix uint = i - var ix uint = byte_ix * bitmaplen - var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms - var min_cost float64 = 1e99 - var block_switch_cost float64 = block_switch_bitcost - var k uint - for k = 0; k < num_histograms; k++ { - /* We are coding the symbol in data[byte_ix] with entropy code k. */ - cost[k] += insert_cost[insert_cost_ix+k] - - if cost[k] < min_cost { - min_cost = cost[k] - block_id[byte_ix] = byte(k) - } - } - - /* More blocks for the beginning. */ - if byte_ix < 2000 { - block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 - } - - for k = 0; k < num_histograms; k++ { - cost[k] -= min_cost - if cost[k] >= block_switch_cost { - var mask byte = byte(1 << (k & 7)) - cost[k] = block_switch_cost - assert(k>>3 < bitmaplen) - switch_signal[ix+(k>>3)] |= mask - /* Trace back from the last position and switch at the marked places. */ - } - } - } - { - var byte_ix uint = length - 1 - var ix uint = byte_ix * bitmaplen - var cur_id byte = block_id[byte_ix] - for byte_ix > 0 { - var mask byte = byte(1 << (cur_id & 7)) - assert(uint(cur_id)>>3 < bitmaplen) - byte_ix-- - ix -= bitmaplen - if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { - if cur_id != block_id[byte_ix] { - cur_id = block_id[byte_ix] - num_blocks++ - } - } - - block_id[byte_ix] = cur_id - } - } - - return num_blocks -} - -var remapBlockIdsLiteral_kInvalidId uint16 = 256 - -func remapBlockIdsLiteral(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { - var next_id uint16 = 0 - var i uint - for i = 0; i < num_histograms; i++ { - new_id[i] = remapBlockIdsLiteral_kInvalidId - } - - for i = 0; i < length; i++ { - assert(uint(block_ids[i]) < num_histograms) - if new_id[block_ids[i]] == remapBlockIdsLiteral_kInvalidId { - new_id[block_ids[i]] = next_id - next_id++ - } - } - - for i = 0; i < length; i++ { - block_ids[i] = byte(new_id[block_ids[i]]) - assert(uint(block_ids[i]) < num_histograms) - } - - assert(uint(next_id) <= num_histograms) - return uint(next_id) -} - -func buildBlockHistogramsLiteral(data []byte, length uint, block_ids []byte, num_histograms uint, histograms []histogramLiteral) { - var i uint - clearHistogramsLiteral(histograms, num_histograms) - for i = 0; i < length; i++ { - histogramAddLiteral(&histograms[block_ids[i]], uint(data[i])) - } -} - -var clusterBlocksLiteral_kInvalidIndex uint32 = math.MaxUint32 - -func clusterBlocksLiteral(data []byte, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { - var histogram_symbols []uint32 = make([]uint32, num_blocks) - var block_lengths []uint32 = make([]uint32, num_blocks) - var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch - var all_histograms_size uint = 0 - var all_histograms_capacity uint = expected_num_clusters - var all_histograms []histogramLiteral = make([]histogramLiteral, all_histograms_capacity) - var cluster_size_size uint = 0 - var cluster_size_capacity uint = expected_num_clusters - var cluster_size []uint32 = make([]uint32, cluster_size_capacity) - var num_clusters uint = 0 - var histograms []histogramLiteral = make([]histogramLiteral, brotli_min_size_t(num_blocks, histogramsPerBatch)) - var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 - var pairs_capacity uint = max_num_pairs + 1 - var pairs []histogramPair = make([]histogramPair, pairs_capacity) - var pos uint = 0 - var clusters []uint32 - var num_final_clusters uint - var new_index []uint32 - var i uint - var sizes = [histogramsPerBatch]uint32{0} - var new_clusters = [histogramsPerBatch]uint32{0} - var symbols = [histogramsPerBatch]uint32{0} - var remap = [histogramsPerBatch]uint32{0} - - for i := 0; i < int(num_blocks); i++ { - block_lengths[i] = 0 - } - { - var block_idx uint = 0 - for i = 0; i < length; i++ { - assert(block_idx < num_blocks) - block_lengths[block_idx]++ - if i+1 == length || block_ids[i] != block_ids[i+1] { - block_idx++ - } - } - - assert(block_idx == num_blocks) - } - - for i = 0; i < num_blocks; i += histogramsPerBatch { - var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - var k uint - histogramClearLiteral(&histograms[j]) - for k = 0; uint32(k) < block_lengths[i+j]; k++ { - histogramAddLiteral(&histograms[j], uint(data[pos])) - pos++ - } - - histograms[j].bit_cost_ = populationCostLiteral(&histograms[j]) - new_clusters[j] = uint32(j) - symbols[j] = uint32(j) - sizes[j] = 1 - } - - num_new_clusters = histogramCombineLiteral(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) - if all_histograms_capacity < (all_histograms_size + num_new_clusters) { - var _new_size uint - if all_histograms_capacity == 0 { - _new_size = all_histograms_size + num_new_clusters - } else { - _new_size = all_histograms_capacity - } - var new_array []histogramLiteral - for _new_size < (all_histograms_size + num_new_clusters) { - _new_size *= 2 - } - new_array = make([]histogramLiteral, _new_size) - if all_histograms_capacity != 0 { - copy(new_array, all_histograms[:all_histograms_capacity]) - } - - all_histograms = new_array - all_histograms_capacity = _new_size - } - - brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) - for j = 0; j < num_new_clusters; j++ { - all_histograms[all_histograms_size] = histograms[new_clusters[j]] - all_histograms_size++ - cluster_size[cluster_size_size] = sizes[new_clusters[j]] - cluster_size_size++ - remap[new_clusters[j]] = uint32(j) - } - - for j = 0; j < num_to_combine; j++ { - histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] - } - - num_clusters += num_new_clusters - assert(num_clusters == cluster_size_size) - assert(num_clusters == all_histograms_size) - } - - histograms = nil - - max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < max_num_pairs+1 { - pairs = nil - pairs = make([]histogramPair, (max_num_pairs + 1)) - } - - clusters = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - clusters[i] = uint32(i) - } - - num_final_clusters = histogramCombineLiteral(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) - pairs = nil - cluster_size = nil - - new_index = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - new_index[i] = clusterBlocksLiteral_kInvalidIndex - } - pos = 0 - { - var next_index uint32 = 0 - for i = 0; i < num_blocks; i++ { - var histo histogramLiteral - var j uint - var best_out uint32 - var best_bits float64 - histogramClearLiteral(&histo) - for j = 0; uint32(j) < block_lengths[i]; j++ { - histogramAddLiteral(&histo, uint(data[pos])) - pos++ - } - - if i == 0 { - best_out = histogram_symbols[0] - } else { - best_out = histogram_symbols[i-1] - } - best_bits = histogramBitCostDistanceLiteral(&histo, &all_histograms[best_out]) - for j = 0; j < num_final_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceLiteral(&histo, &all_histograms[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - histogram_symbols[i] = best_out - if new_index[best_out] == clusterBlocksLiteral_kInvalidIndex { - new_index[best_out] = next_index - next_index++ - } - } - } - - clusters = nil - all_histograms = nil - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) - { - var cur_length uint32 = 0 - var block_idx uint = 0 - var max_type byte = 0 - for i = 0; i < num_blocks; i++ { - cur_length += block_lengths[i] - if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { - var id byte = byte(new_index[histogram_symbols[i]]) - split.types[block_idx] = id - split.lengths[block_idx] = cur_length - max_type = brotli_max_uint8_t(max_type, id) - cur_length = 0 - block_idx++ - } - } - - split.num_blocks = block_idx - split.num_types = uint(max_type) + 1 - } - - new_index = nil - block_lengths = nil - histogram_symbols = nil -} - -func splitByteVectorLiteral(data []byte, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { - var data_size uint = histogramDataSizeLiteral() - var num_histograms uint = length/literals_per_histogram + 1 - var histograms []histogramLiteral - if num_histograms > max_histograms { - num_histograms = max_histograms - } - - if length == 0 { - split.num_types = 1 - return - } else if length < kMinLengthForBlockSplitting { - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) - split.num_types = 1 - split.types[split.num_blocks] = 0 - split.lengths[split.num_blocks] = uint32(length) - split.num_blocks++ - return - } - - histograms = make([]histogramLiteral, num_histograms) - - /* Find good entropy codes. */ - initialEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) - - refineEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) - { - var block_ids []byte = make([]byte, length) - var num_blocks uint = 0 - var bitmaplen uint = (num_histograms + 7) >> 3 - var insert_cost []float64 = make([]float64, (data_size * num_histograms)) - var cost []float64 = make([]float64, num_histograms) - var switch_signal []byte = make([]byte, (length * bitmaplen)) - var new_id []uint16 = make([]uint16, num_histograms) - var iters uint - if params.quality < hqZopflificationQuality { - iters = 3 - } else { - iters = 10 - } - /* Find a good path through literals with the good entropy codes. */ - - var i uint - for i = 0; i < iters; i++ { - num_blocks = findBlocksLiteral(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) - num_histograms = remapBlockIdsLiteral(block_ids, length, new_id, num_histograms) - buildBlockHistogramsLiteral(data, length, block_ids, num_histograms, histograms) - } - - insert_cost = nil - cost = nil - switch_signal = nil - new_id = nil - histograms = nil - clusterBlocksLiteral(data, length, num_blocks, block_ids, split) - block_ids = nil - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go b/backend/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go deleted file mode 100644 index 1d9d91d2..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go +++ /dev/null @@ -1,1325 +0,0 @@ -package brotli - -import ( - "math" - "sync" -) - -const maxHuffmanTreeSize = (2*numCommandSymbols + 1) - -/* -The maximum size of Huffman dictionary for distances assuming that - - NPOSTFIX = 0 and NDIRECT = 0. -*/ -const maxSimpleDistanceAlphabetSize = 140 - -/* -Represents the range of values belonging to a prefix code: - - [offset, offset + 2^nbits) -*/ -type prefixCodeRange struct { - offset uint32 - nbits uint32 -} - -var kBlockLengthPrefixCode = [numBlockLenSymbols]prefixCodeRange{ - prefixCodeRange{1, 2}, - prefixCodeRange{5, 2}, - prefixCodeRange{9, 2}, - prefixCodeRange{13, 2}, - prefixCodeRange{17, 3}, - prefixCodeRange{25, 3}, - prefixCodeRange{33, 3}, - prefixCodeRange{41, 3}, - prefixCodeRange{49, 4}, - prefixCodeRange{65, 4}, - prefixCodeRange{81, 4}, - prefixCodeRange{97, 4}, - prefixCodeRange{113, 5}, - prefixCodeRange{145, 5}, - prefixCodeRange{177, 5}, - prefixCodeRange{209, 5}, - prefixCodeRange{241, 6}, - prefixCodeRange{305, 6}, - prefixCodeRange{369, 7}, - prefixCodeRange{497, 8}, - prefixCodeRange{753, 9}, - prefixCodeRange{1265, 10}, - prefixCodeRange{2289, 11}, - prefixCodeRange{4337, 12}, - prefixCodeRange{8433, 13}, - prefixCodeRange{16625, 24}, -} - -func blockLengthPrefixCode(len uint32) uint32 { - var code uint32 - if len >= 177 { - if len >= 753 { - code = 20 - } else { - code = 14 - } - } else if len >= 41 { - code = 7 - } else { - code = 0 - } - for code < (numBlockLenSymbols-1) && len >= kBlockLengthPrefixCode[code+1].offset { - code++ - } - return code -} - -func getBlockLengthPrefixCode(len uint32, code *uint, n_extra *uint32, extra *uint32) { - *code = uint(blockLengthPrefixCode(uint32(len))) - *n_extra = kBlockLengthPrefixCode[*code].nbits - *extra = len - kBlockLengthPrefixCode[*code].offset -} - -type blockTypeCodeCalculator struct { - last_type uint - second_last_type uint -} - -func initBlockTypeCodeCalculator(self *blockTypeCodeCalculator) { - self.last_type = 1 - self.second_last_type = 0 -} - -func nextBlockTypeCode(calculator *blockTypeCodeCalculator, type_ byte) uint { - var type_code uint - if uint(type_) == calculator.last_type+1 { - type_code = 1 - } else if uint(type_) == calculator.second_last_type { - type_code = 0 - } else { - type_code = uint(type_) + 2 - } - calculator.second_last_type = calculator.last_type - calculator.last_type = uint(type_) - return type_code -} - -/* -|nibblesbits| represents the 2 bits to encode MNIBBLES (0-3) - - REQUIRES: length > 0 - REQUIRES: length <= (1 << 24) -*/ -func encodeMlen(length uint, bits *uint64, numbits *uint, nibblesbits *uint64) { - var lg uint - if length == 1 { - lg = 1 - } else { - lg = uint(log2FloorNonZero(uint(uint32(length-1)))) + 1 - } - var tmp uint - if lg < 16 { - tmp = 16 - } else { - tmp = (lg + 3) - } - var mnibbles uint = tmp / 4 - assert(length > 0) - assert(length <= 1<<24) - assert(lg <= 24) - *nibblesbits = uint64(mnibbles) - 4 - *numbits = mnibbles * 4 - *bits = uint64(length) - 1 -} - -func storeCommandExtra(cmd *command, bw *bitWriter) { - var copylen_code uint32 = commandCopyLenCode(cmd) - var inscode uint16 = getInsertLengthCode(uint(cmd.insert_len_)) - var copycode uint16 = getCopyLengthCode(uint(copylen_code)) - var insnumextra uint32 = getInsertExtra(inscode) - var insextraval uint64 = uint64(cmd.insert_len_) - uint64(getInsertBase(inscode)) - var copyextraval uint64 = uint64(copylen_code) - uint64(getCopyBase(copycode)) - var bits uint64 = copyextraval< 0 - REQUIRES: length <= (1 << 24) -*/ -func storeCompressedMetaBlockHeader(is_final_block bool, length uint, bw *bitWriter) { - var lenbits uint64 - var nlenbits uint - var nibblesbits uint64 - var is_final uint64 - if is_final_block { - is_final = 1 - } else { - is_final = 0 - } - - /* Write ISLAST bit. */ - bw.writeBits(1, is_final) - - /* Write ISEMPTY bit. */ - if is_final_block { - bw.writeBits(1, 0) - } - - encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) - bw.writeBits(2, nibblesbits) - bw.writeBits(nlenbits, lenbits) - - if !is_final_block { - /* Write ISUNCOMPRESSED bit. */ - bw.writeBits(1, 0) - } -} - -/* -Stores the uncompressed meta-block header. - - REQUIRES: length > 0 - REQUIRES: length <= (1 << 24) -*/ -func storeUncompressedMetaBlockHeader(length uint, bw *bitWriter) { - var lenbits uint64 - var nlenbits uint - var nibblesbits uint64 - - /* Write ISLAST bit. - Uncompressed block cannot be the last one, so set to 0. */ - bw.writeBits(1, 0) - - encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) - bw.writeBits(2, nibblesbits) - bw.writeBits(nlenbits, lenbits) - - /* Write ISUNCOMPRESSED bit. */ - bw.writeBits(1, 1) -} - -var storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} - -var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols = [6]byte{0, 7, 3, 2, 1, 15} -var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths = [6]byte{2, 4, 3, 2, 2, 4} - -func storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes int, code_length_bitdepth []byte, bw *bitWriter) { - var skip_some uint = 0 - var codes_to_store uint = codeLengthCodes - /* The bit lengths of the Huffman code over the code length alphabet - are compressed with the following static Huffman code: - Symbol Code - ------ ---- - 0 00 - 1 1110 - 2 110 - 3 01 - 4 10 - 5 1111 */ - - /* Throw away trailing zeros: */ - if num_codes > 1 { - for ; codes_to_store > 0; codes_to_store-- { - if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[codes_to_store-1]] != 0 { - break - } - } - } - - if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[0]] == 0 && code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[1]] == 0 { - skip_some = 2 /* skips two. */ - if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[2]] == 0 { - skip_some = 3 /* skips three. */ - } - } - - bw.writeBits(2, uint64(skip_some)) - { - var i uint - for i = skip_some; i < codes_to_store; i++ { - var l uint = uint(code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[i]]) - bw.writeBits(uint(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths[l]), uint64(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols[l])) - } - } -} - -func storeHuffmanTreeToBitMask(huffman_tree_size uint, huffman_tree []byte, huffman_tree_extra_bits []byte, code_length_bitdepth []byte, code_length_bitdepth_symbols []uint16, bw *bitWriter) { - var i uint - for i = 0; i < huffman_tree_size; i++ { - var ix uint = uint(huffman_tree[i]) - bw.writeBits(uint(code_length_bitdepth[ix]), uint64(code_length_bitdepth_symbols[ix])) - - /* Extra bits */ - switch ix { - case repeatPreviousCodeLength: - bw.writeBits(2, uint64(huffman_tree_extra_bits[i])) - - case repeatZeroCodeLength: - bw.writeBits(3, uint64(huffman_tree_extra_bits[i])) - } - } -} - -func storeSimpleHuffmanTree(depths []byte, symbols []uint, num_symbols uint, max_bits uint, bw *bitWriter) { - /* value of 1 indicates a simple Huffman code */ - bw.writeBits(2, 1) - - bw.writeBits(2, uint64(num_symbols)-1) /* NSYM - 1 */ - { - /* Sort */ - var i uint - for i = 0; i < num_symbols; i++ { - var j uint - for j = i + 1; j < num_symbols; j++ { - if depths[symbols[j]] < depths[symbols[i]] { - var tmp uint = symbols[j] - symbols[j] = symbols[i] - symbols[i] = tmp - } - } - } - } - - if num_symbols == 2 { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - } else if num_symbols == 3 { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - bw.writeBits(max_bits, uint64(symbols[2])) - } else { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - bw.writeBits(max_bits, uint64(symbols[2])) - bw.writeBits(max_bits, uint64(symbols[3])) - - /* tree-select */ - var tmp int - if depths[symbols[0]] == 1 { - tmp = 1 - } else { - tmp = 0 - } - bw.writeBits(1, uint64(tmp)) - } -} - -/* -num = alphabet size - - depths = symbol depths -*/ -func storeHuffmanTree(depths []byte, num uint, tree []huffmanTree, bw *bitWriter) { - var huffman_tree [numCommandSymbols]byte - var huffman_tree_extra_bits [numCommandSymbols]byte - var huffman_tree_size uint = 0 - var code_length_bitdepth = [codeLengthCodes]byte{0} - var code_length_bitdepth_symbols [codeLengthCodes]uint16 - var huffman_tree_histogram = [codeLengthCodes]uint32{0} - var i uint - var num_codes int = 0 - /* Write the Huffman tree into the brotli-representation. - The command alphabet is the largest, so this allocation will fit all - alphabets. */ - - var code uint = 0 - - assert(num <= numCommandSymbols) - - writeHuffmanTree(depths, num, &huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:]) - - /* Calculate the statistics of the Huffman tree in brotli-representation. */ - for i = 0; i < huffman_tree_size; i++ { - huffman_tree_histogram[huffman_tree[i]]++ - } - - for i = 0; i < codeLengthCodes; i++ { - if huffman_tree_histogram[i] != 0 { - if num_codes == 0 { - code = i - num_codes = 1 - } else if num_codes == 1 { - num_codes = 2 - break - } - } - } - - /* Calculate another Huffman tree to use for compressing both the - earlier Huffman tree with. */ - createHuffmanTree(huffman_tree_histogram[:], codeLengthCodes, 5, tree, code_length_bitdepth[:]) - - convertBitDepthsToSymbols(code_length_bitdepth[:], codeLengthCodes, code_length_bitdepth_symbols[:]) - - /* Now, we have all the data, let's start storing it */ - storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes, code_length_bitdepth[:], bw) - - if num_codes == 1 { - code_length_bitdepth[code] = 0 - } - - /* Store the real Huffman tree now. */ - storeHuffmanTreeToBitMask(huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:], code_length_bitdepth[:], code_length_bitdepth_symbols[:], bw) -} - -/* -Builds a Huffman tree from histogram[0:length] into depth[0:length] and - - bits[0:length] and stores the encoded tree to the bit stream. -*/ -func buildAndStoreHuffmanTree(histogram []uint32, histogram_length uint, alphabet_size uint, tree []huffmanTree, depth []byte, bits []uint16, bw *bitWriter) { - var count uint = 0 - var s4 = [4]uint{0} - var i uint - var max_bits uint = 0 - for i = 0; i < histogram_length; i++ { - if histogram[i] != 0 { - if count < 4 { - s4[count] = i - } else if count > 4 { - break - } - - count++ - } - } - { - var max_bits_counter uint = alphabet_size - 1 - for max_bits_counter != 0 { - max_bits_counter >>= 1 - max_bits++ - } - } - - if count <= 1 { - bw.writeBits(4, 1) - bw.writeBits(max_bits, uint64(s4[0])) - depth[s4[0]] = 0 - bits[s4[0]] = 0 - return - } - - for i := 0; i < int(histogram_length); i++ { - depth[i] = 0 - } - createHuffmanTree(histogram, histogram_length, 15, tree, depth) - convertBitDepthsToSymbols(depth, histogram_length, bits) - - if count <= 4 { - storeSimpleHuffmanTree(depth, s4[:], count, max_bits, bw) - } else { - storeHuffmanTree(depth, histogram_length, tree, bw) - } -} - -func sortHuffmanTree1(v0 huffmanTree, v1 huffmanTree) bool { - return v0.total_count_ < v1.total_count_ -} - -var huffmanTreePool sync.Pool - -func buildAndStoreHuffmanTreeFast(histogram []uint32, histogram_total uint, max_bits uint, depth []byte, bits []uint16, bw *bitWriter) { - var count uint = 0 - var symbols = [4]uint{0} - var length uint = 0 - var total uint = histogram_total - for total != 0 { - if histogram[length] != 0 { - if count < 4 { - symbols[count] = length - } - - count++ - total -= uint(histogram[length]) - } - - length++ - } - - if count <= 1 { - bw.writeBits(4, 1) - bw.writeBits(max_bits, uint64(symbols[0])) - depth[symbols[0]] = 0 - bits[symbols[0]] = 0 - return - } - - for i := 0; i < int(length); i++ { - depth[i] = 0 - } - { - var max_tree_size uint = 2*length + 1 - tree, _ := huffmanTreePool.Get().(*[]huffmanTree) - if tree == nil || cap(*tree) < int(max_tree_size) { - tmp := make([]huffmanTree, max_tree_size) - tree = &tmp - } else { - *tree = (*tree)[:max_tree_size] - } - var count_limit uint32 - for count_limit = 1; ; count_limit *= 2 { - var node int = 0 - var l uint - for l = length; l != 0; { - l-- - if histogram[l] != 0 { - if histogram[l] >= count_limit { - initHuffmanTree(&(*tree)[node:][0], histogram[l], -1, int16(l)) - } else { - initHuffmanTree(&(*tree)[node:][0], count_limit, -1, int16(l)) - } - - node++ - } - } - { - var n int = node - /* Points to the next leaf node. */ /* Points to the next non-leaf node. */ - var sentinel huffmanTree - var i int = 0 - var j int = n + 1 - var k int - - sortHuffmanTreeItems(*tree, uint(n), huffmanTreeComparator(sortHuffmanTree1)) - - /* The nodes are: - [0, n): the sorted leaf nodes that we start with. - [n]: we add a sentinel here. - [n + 1, 2n): new parent nodes are added here, starting from - (n+1). These are naturally in ascending order. - [2n]: we add a sentinel at the end as well. - There will be (2n+1) elements at the end. */ - initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) - - (*tree)[node] = sentinel - node++ - (*tree)[node] = sentinel - node++ - - for k = n - 1; k > 0; k-- { - var left int - var right int - if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { - left = i - i++ - } else { - left = j - j++ - } - - if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { - right = i - i++ - } else { - right = j - j++ - } - - /* The sentinel node becomes the parent node. */ - (*tree)[node-1].total_count_ = (*tree)[left].total_count_ + (*tree)[right].total_count_ - - (*tree)[node-1].index_left_ = int16(left) - (*tree)[node-1].index_right_or_value_ = int16(right) - - /* Add back the last sentinel node. */ - (*tree)[node] = sentinel - node++ - } - - if setDepth(2*n-1, *tree, depth, 14) { - /* We need to pack the Huffman tree in 14 bits. If this was not - successful, add fake entities to the lowest values and retry. */ - break - } - } - } - - huffmanTreePool.Put(tree) - } - - convertBitDepthsToSymbols(depth, length, bits) - if count <= 4 { - var i uint - - /* value of 1 indicates a simple Huffman code */ - bw.writeBits(2, 1) - - bw.writeBits(2, uint64(count)-1) /* NSYM - 1 */ - - /* Sort */ - for i = 0; i < count; i++ { - var j uint - for j = i + 1; j < count; j++ { - if depth[symbols[j]] < depth[symbols[i]] { - var tmp uint = symbols[j] - symbols[j] = symbols[i] - symbols[i] = tmp - } - } - } - - if count == 2 { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - } else if count == 3 { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - bw.writeBits(max_bits, uint64(symbols[2])) - } else { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - bw.writeBits(max_bits, uint64(symbols[2])) - bw.writeBits(max_bits, uint64(symbols[3])) - - /* tree-select */ - bw.writeSingleBit(depth[symbols[0]] == 1) - } - } else { - var previous_value byte = 8 - var i uint - - /* Complex Huffman Tree */ - storeStaticCodeLengthCode(bw) - - /* Actual RLE coding. */ - for i = 0; i < length; { - var value byte = depth[i] - var reps uint = 1 - var k uint - for k = i + 1; k < length && depth[k] == value; k++ { - reps++ - } - - i += reps - if value == 0 { - bw.writeBits(uint(kZeroRepsDepth[reps]), kZeroRepsBits[reps]) - } else { - if previous_value != value { - bw.writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value])) - reps-- - } - - if reps < 3 { - for reps != 0 { - reps-- - bw.writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value])) - } - } else { - reps -= 3 - bw.writeBits(uint(kNonZeroRepsDepth[reps]), kNonZeroRepsBits[reps]) - } - - previous_value = value - } - } - } -} - -func indexOf(v []byte, v_size uint, value byte) uint { - var i uint = 0 - for ; i < v_size; i++ { - if v[i] == value { - return i - } - } - - return i -} - -func moveToFront(v []byte, index uint) { - var value byte = v[index] - var i uint - for i = index; i != 0; i-- { - v[i] = v[i-1] - } - - v[0] = value -} - -func moveToFrontTransform(v_in []uint32, v_size uint, v_out []uint32) { - var i uint - var mtf [256]byte - var max_value uint32 - if v_size == 0 { - return - } - - max_value = v_in[0] - for i = 1; i < v_size; i++ { - if v_in[i] > max_value { - max_value = v_in[i] - } - } - - assert(max_value < 256) - for i = 0; uint32(i) <= max_value; i++ { - mtf[i] = byte(i) - } - { - var mtf_size uint = uint(max_value + 1) - for i = 0; i < v_size; i++ { - var index uint = indexOf(mtf[:], mtf_size, byte(v_in[i])) - assert(index < mtf_size) - v_out[i] = uint32(index) - moveToFront(mtf[:], index) - } - } -} - -/* -Finds runs of zeros in v[0..in_size) and replaces them with a prefix code of - - the run length plus extra bits (lower 9 bits is the prefix code and the rest - are the extra bits). Non-zero values in v[] are shifted by - *max_length_prefix. Will not create prefix codes bigger than the initial - value of *max_run_length_prefix. The prefix code of run length L is simply - Log2Floor(L) and the number of extra bits is the same as the prefix code. -*/ -func runLengthCodeZeros(in_size uint, v []uint32, out_size *uint, max_run_length_prefix *uint32) { - var max_reps uint32 = 0 - var i uint - var max_prefix uint32 - for i = 0; i < in_size; { - var reps uint32 = 0 - for ; i < in_size && v[i] != 0; i++ { - } - for ; i < in_size && v[i] == 0; i++ { - reps++ - } - - max_reps = brotli_max_uint32_t(reps, max_reps) - } - - if max_reps > 0 { - max_prefix = log2FloorNonZero(uint(max_reps)) - } else { - max_prefix = 0 - } - max_prefix = brotli_min_uint32_t(max_prefix, *max_run_length_prefix) - *max_run_length_prefix = max_prefix - *out_size = 0 - for i = 0; i < in_size; { - assert(*out_size <= i) - if v[i] != 0 { - v[*out_size] = v[i] + *max_run_length_prefix - i++ - (*out_size)++ - } else { - var reps uint32 = 1 - var k uint - for k = i + 1; k < in_size && v[k] == 0; k++ { - reps++ - } - - i += uint(reps) - for reps != 0 { - if reps < 2< 0) - bw.writeSingleBit(use_rle) - if use_rle { - bw.writeBits(4, uint64(max_run_length_prefix)-1) - } - } - - buildAndStoreHuffmanTree(histogram[:], uint(uint32(num_clusters)+max_run_length_prefix), uint(uint32(num_clusters)+max_run_length_prefix), tree, depths[:], bits[:], bw) - for i = 0; i < num_rle_symbols; i++ { - var rle_symbol uint32 = rle_symbols[i] & encodeContextMap_kSymbolMask - var extra_bits_val uint32 = rle_symbols[i] >> symbolBits - bw.writeBits(uint(depths[rle_symbol]), uint64(bits[rle_symbol])) - if rle_symbol > 0 && rle_symbol <= max_run_length_prefix { - bw.writeBits(uint(rle_symbol), uint64(extra_bits_val)) - } - } - - bw.writeBits(1, 1) /* use move-to-front */ - rle_symbols = nil -} - -/* Stores the block switch command with index block_ix to the bit stream. */ -func storeBlockSwitch(code *blockSplitCode, block_len uint32, block_type byte, is_first_block bool, bw *bitWriter) { - var typecode uint = nextBlockTypeCode(&code.type_code_calculator, block_type) - var lencode uint - var len_nextra uint32 - var len_extra uint32 - if !is_first_block { - bw.writeBits(uint(code.type_depths[typecode]), uint64(code.type_bits[typecode])) - } - - getBlockLengthPrefixCode(block_len, &lencode, &len_nextra, &len_extra) - - bw.writeBits(uint(code.length_depths[lencode]), uint64(code.length_bits[lencode])) - bw.writeBits(uint(len_nextra), uint64(len_extra)) -} - -/* -Builds a BlockSplitCode data structure from the block split given by the - - vector of block types and block lengths and stores it to the bit stream. -*/ -func buildAndStoreBlockSplitCode(types []byte, lengths []uint32, num_blocks uint, num_types uint, tree []huffmanTree, code *blockSplitCode, bw *bitWriter) { - var type_histo [maxBlockTypeSymbols]uint32 - var length_histo [numBlockLenSymbols]uint32 - var i uint - var type_code_calculator blockTypeCodeCalculator - for i := 0; i < int(num_types+2); i++ { - type_histo[i] = 0 - } - length_histo = [numBlockLenSymbols]uint32{} - initBlockTypeCodeCalculator(&type_code_calculator) - for i = 0; i < num_blocks; i++ { - var type_code uint = nextBlockTypeCode(&type_code_calculator, types[i]) - if i != 0 { - type_histo[type_code]++ - } - length_histo[blockLengthPrefixCode(lengths[i])]++ - } - - storeVarLenUint8(num_types-1, bw) - if num_types > 1 { /* TODO: else? could StoreBlockSwitch occur? */ - buildAndStoreHuffmanTree(type_histo[0:], num_types+2, num_types+2, tree, code.type_depths[0:], code.type_bits[0:], bw) - buildAndStoreHuffmanTree(length_histo[0:], numBlockLenSymbols, numBlockLenSymbols, tree, code.length_depths[0:], code.length_bits[0:], bw) - storeBlockSwitch(code, lengths[0], types[0], true, bw) - } -} - -/* Stores a context map where the histogram type is always the block type. */ -func storeTrivialContextMap(num_types uint, context_bits uint, tree []huffmanTree, bw *bitWriter) { - storeVarLenUint8(num_types-1, bw) - if num_types > 1 { - var repeat_code uint = context_bits - 1 - var repeat_bits uint = (1 << repeat_code) - 1 - var alphabet_size uint = num_types + repeat_code - var histogram [maxContextMapSymbols]uint32 - var depths [maxContextMapSymbols]byte - var bits [maxContextMapSymbols]uint16 - var i uint - for i := 0; i < int(alphabet_size); i++ { - histogram[i] = 0 - } - - /* Write RLEMAX. */ - bw.writeBits(1, 1) - - bw.writeBits(4, uint64(repeat_code)-1) - histogram[repeat_code] = uint32(num_types) - histogram[0] = 1 - for i = context_bits; i < alphabet_size; i++ { - histogram[i] = 1 - } - - buildAndStoreHuffmanTree(histogram[:], alphabet_size, alphabet_size, tree, depths[:], bits[:], bw) - for i = 0; i < num_types; i++ { - var tmp uint - if i == 0 { - tmp = 0 - } else { - tmp = i + context_bits - 1 - } - var code uint = tmp - bw.writeBits(uint(depths[code]), uint64(bits[code])) - bw.writeBits(uint(depths[repeat_code]), uint64(bits[repeat_code])) - bw.writeBits(repeat_code, uint64(repeat_bits)) - } - - /* Write IMTF (inverse-move-to-front) bit. */ - bw.writeBits(1, 1) - } -} - -/* Manages the encoding of one block category (literal, command or distance). */ -type blockEncoder struct { - histogram_length_ uint - num_block_types_ uint - block_types_ []byte - block_lengths_ []uint32 - num_blocks_ uint - block_split_code_ blockSplitCode - block_ix_ uint - block_len_ uint - entropy_ix_ uint - depths_ []byte - bits_ []uint16 -} - -var blockEncoderPool sync.Pool - -func getBlockEncoder(histogram_length uint, num_block_types uint, block_types []byte, block_lengths []uint32, num_blocks uint) *blockEncoder { - self, _ := blockEncoderPool.Get().(*blockEncoder) - - if self != nil { - self.block_ix_ = 0 - self.entropy_ix_ = 0 - self.depths_ = self.depths_[:0] - self.bits_ = self.bits_[:0] - } else { - self = &blockEncoder{} - } - - self.histogram_length_ = histogram_length - self.num_block_types_ = num_block_types - self.block_types_ = block_types - self.block_lengths_ = block_lengths - self.num_blocks_ = num_blocks - initBlockTypeCodeCalculator(&self.block_split_code_.type_code_calculator) - if num_blocks == 0 { - self.block_len_ = 0 - } else { - self.block_len_ = uint(block_lengths[0]) - } - - return self -} - -func cleanupBlockEncoder(self *blockEncoder) { - blockEncoderPool.Put(self) -} - -/* -Creates entropy codes of block lengths and block types and stores them - - to the bit stream. -*/ -func buildAndStoreBlockSwitchEntropyCodes(self *blockEncoder, tree []huffmanTree, bw *bitWriter) { - buildAndStoreBlockSplitCode(self.block_types_, self.block_lengths_, self.num_blocks_, self.num_block_types_, tree, &self.block_split_code_, bw) -} - -/* -Stores the next symbol with the entropy code of the current block type. - - Updates the block type and block length at block boundaries. -*/ -func storeSymbol(self *blockEncoder, symbol uint, bw *bitWriter) { - if self.block_len_ == 0 { - self.block_ix_++ - var block_ix uint = self.block_ix_ - var block_len uint32 = self.block_lengths_[block_ix] - var block_type byte = self.block_types_[block_ix] - self.block_len_ = uint(block_len) - self.entropy_ix_ = uint(block_type) * self.histogram_length_ - storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, bw) - } - - self.block_len_-- - { - var ix uint = self.entropy_ix_ + symbol - bw.writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix])) - } -} - -/* -Stores the next symbol with the entropy code of the current block type and - - context value. - Updates the block type and block length at block boundaries. -*/ -func storeSymbolWithContext(self *blockEncoder, symbol uint, context uint, context_map []uint32, bw *bitWriter, context_bits uint) { - if self.block_len_ == 0 { - self.block_ix_++ - var block_ix uint = self.block_ix_ - var block_len uint32 = self.block_lengths_[block_ix] - var block_type byte = self.block_types_[block_ix] - self.block_len_ = uint(block_len) - self.entropy_ix_ = uint(block_type) << context_bits - storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, bw) - } - - self.block_len_-- - { - var histo_ix uint = uint(context_map[self.entropy_ix_+context]) - var ix uint = histo_ix*self.histogram_length_ + symbol - bw.writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix])) - } -} - -func buildAndStoreEntropyCodesLiteral(self *blockEncoder, histograms []histogramLiteral, histograms_size uint, alphabet_size uint, tree []huffmanTree, bw *bitWriter) { - var table_size uint = histograms_size * self.histogram_length_ - if cap(self.depths_) < int(table_size) { - self.depths_ = make([]byte, table_size) - } else { - self.depths_ = self.depths_[:table_size] - } - if cap(self.bits_) < int(table_size) { - self.bits_ = make([]uint16, table_size) - } else { - self.bits_ = self.bits_[:table_size] - } - { - var i uint - for i = 0; i < histograms_size; i++ { - var ix uint = i * self.histogram_length_ - buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], bw) - } - } -} - -func buildAndStoreEntropyCodesCommand(self *blockEncoder, histograms []histogramCommand, histograms_size uint, alphabet_size uint, tree []huffmanTree, bw *bitWriter) { - var table_size uint = histograms_size * self.histogram_length_ - if cap(self.depths_) < int(table_size) { - self.depths_ = make([]byte, table_size) - } else { - self.depths_ = self.depths_[:table_size] - } - if cap(self.bits_) < int(table_size) { - self.bits_ = make([]uint16, table_size) - } else { - self.bits_ = self.bits_[:table_size] - } - { - var i uint - for i = 0; i < histograms_size; i++ { - var ix uint = i * self.histogram_length_ - buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], bw) - } - } -} - -func buildAndStoreEntropyCodesDistance(self *blockEncoder, histograms []histogramDistance, histograms_size uint, alphabet_size uint, tree []huffmanTree, bw *bitWriter) { - var table_size uint = histograms_size * self.histogram_length_ - if cap(self.depths_) < int(table_size) { - self.depths_ = make([]byte, table_size) - } else { - self.depths_ = self.depths_[:table_size] - } - if cap(self.bits_) < int(table_size) { - self.bits_ = make([]uint16, table_size) - } else { - self.bits_ = self.bits_[:table_size] - } - { - var i uint - for i = 0; i < histograms_size; i++ { - var ix uint = i * self.histogram_length_ - buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], bw) - } - } -} - -func storeMetaBlock(input []byte, start_pos uint, length uint, mask uint, prev_byte byte, prev_byte2 byte, is_last bool, params *encoderParams, literal_context_mode int, commands []command, mb *metaBlockSplit, bw *bitWriter) { - var pos uint = start_pos - var i uint - var num_distance_symbols uint32 = params.dist.alphabet_size - var num_effective_distance_symbols uint32 = num_distance_symbols - var tree []huffmanTree - var literal_context_lut contextLUT = getContextLUT(literal_context_mode) - var dist *distanceParams = ¶ms.dist - if params.large_window && num_effective_distance_symbols > numHistogramDistanceSymbols { - num_effective_distance_symbols = numHistogramDistanceSymbols - } - - storeCompressedMetaBlockHeader(is_last, length, bw) - - tree = make([]huffmanTree, maxHuffmanTreeSize) - literal_enc := getBlockEncoder(numLiteralSymbols, mb.literal_split.num_types, mb.literal_split.types, mb.literal_split.lengths, mb.literal_split.num_blocks) - command_enc := getBlockEncoder(numCommandSymbols, mb.command_split.num_types, mb.command_split.types, mb.command_split.lengths, mb.command_split.num_blocks) - distance_enc := getBlockEncoder(uint(num_effective_distance_symbols), mb.distance_split.num_types, mb.distance_split.types, mb.distance_split.lengths, mb.distance_split.num_blocks) - - buildAndStoreBlockSwitchEntropyCodes(literal_enc, tree, bw) - buildAndStoreBlockSwitchEntropyCodes(command_enc, tree, bw) - buildAndStoreBlockSwitchEntropyCodes(distance_enc, tree, bw) - - bw.writeBits(2, uint64(dist.distance_postfix_bits)) - bw.writeBits(4, uint64(dist.num_direct_distance_codes)>>dist.distance_postfix_bits) - for i = 0; i < mb.literal_split.num_types; i++ { - bw.writeBits(2, uint64(literal_context_mode)) - } - - if mb.literal_context_map_size == 0 { - storeTrivialContextMap(mb.literal_histograms_size, literalContextBits, tree, bw) - } else { - encodeContextMap(mb.literal_context_map, mb.literal_context_map_size, mb.literal_histograms_size, tree, bw) - } - - if mb.distance_context_map_size == 0 { - storeTrivialContextMap(mb.distance_histograms_size, distanceContextBits, tree, bw) - } else { - encodeContextMap(mb.distance_context_map, mb.distance_context_map_size, mb.distance_histograms_size, tree, bw) - } - - buildAndStoreEntropyCodesLiteral(literal_enc, mb.literal_histograms, mb.literal_histograms_size, numLiteralSymbols, tree, bw) - buildAndStoreEntropyCodesCommand(command_enc, mb.command_histograms, mb.command_histograms_size, numCommandSymbols, tree, bw) - buildAndStoreEntropyCodesDistance(distance_enc, mb.distance_histograms, mb.distance_histograms_size, uint(num_distance_symbols), tree, bw) - tree = nil - - for _, cmd := range commands { - var cmd_code uint = uint(cmd.cmd_prefix_) - storeSymbol(command_enc, cmd_code, bw) - storeCommandExtra(&cmd, bw) - if mb.literal_context_map_size == 0 { - var j uint - for j = uint(cmd.insert_len_); j != 0; j-- { - storeSymbol(literal_enc, uint(input[pos&mask]), bw) - pos++ - } - } else { - var j uint - for j = uint(cmd.insert_len_); j != 0; j-- { - var context uint = uint(getContext(prev_byte, prev_byte2, literal_context_lut)) - var literal byte = input[pos&mask] - storeSymbolWithContext(literal_enc, uint(literal), context, mb.literal_context_map, bw, literalContextBits) - prev_byte2 = prev_byte - prev_byte = literal - pos++ - } - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 { - prev_byte2 = input[(pos-2)&mask] - prev_byte = input[(pos-1)&mask] - if cmd.cmd_prefix_ >= 128 { - var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF - var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 - var distextra uint64 = uint64(cmd.dist_extra_) - if mb.distance_context_map_size == 0 { - storeSymbol(distance_enc, dist_code, bw) - } else { - var context uint = uint(commandDistanceContext(&cmd)) - storeSymbolWithContext(distance_enc, dist_code, context, mb.distance_context_map, bw, distanceContextBits) - } - - bw.writeBits(uint(distnumextra), distextra) - } - } - } - - cleanupBlockEncoder(distance_enc) - cleanupBlockEncoder(command_enc) - cleanupBlockEncoder(literal_enc) - if is_last { - bw.jumpToByteBoundary() - } -} - -func buildHistograms(input []byte, start_pos uint, mask uint, commands []command, lit_histo *histogramLiteral, cmd_histo *histogramCommand, dist_histo *histogramDistance) { - var pos uint = start_pos - for _, cmd := range commands { - var j uint - histogramAddCommand(cmd_histo, uint(cmd.cmd_prefix_)) - for j = uint(cmd.insert_len_); j != 0; j-- { - histogramAddLiteral(lit_histo, uint(input[pos&mask])) - pos++ - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { - histogramAddDistance(dist_histo, uint(cmd.dist_prefix_)&0x3FF) - } - } -} - -func storeDataWithHuffmanCodes(input []byte, start_pos uint, mask uint, commands []command, lit_depth []byte, lit_bits []uint16, cmd_depth []byte, cmd_bits []uint16, dist_depth []byte, dist_bits []uint16, bw *bitWriter) { - var pos uint = start_pos - for _, cmd := range commands { - var cmd_code uint = uint(cmd.cmd_prefix_) - var j uint - bw.writeBits(uint(cmd_depth[cmd_code]), uint64(cmd_bits[cmd_code])) - storeCommandExtra(&cmd, bw) - for j = uint(cmd.insert_len_); j != 0; j-- { - var literal byte = input[pos&mask] - bw.writeBits(uint(lit_depth[literal]), uint64(lit_bits[literal])) - pos++ - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { - var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF - var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 - var distextra uint32 = cmd.dist_extra_ - bw.writeBits(uint(dist_depth[dist_code]), uint64(dist_bits[dist_code])) - bw.writeBits(uint(distnumextra), uint64(distextra)) - } - } -} - -func storeMetaBlockTrivial(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, bw *bitWriter) { - var lit_histo histogramLiteral - var cmd_histo histogramCommand - var dist_histo histogramDistance - var lit_depth [numLiteralSymbols]byte - var lit_bits [numLiteralSymbols]uint16 - var cmd_depth [numCommandSymbols]byte - var cmd_bits [numCommandSymbols]uint16 - var dist_depth [maxSimpleDistanceAlphabetSize]byte - var dist_bits [maxSimpleDistanceAlphabetSize]uint16 - var tree []huffmanTree - var num_distance_symbols uint32 = params.dist.alphabet_size - - storeCompressedMetaBlockHeader(is_last, length, bw) - - histogramClearLiteral(&lit_histo) - histogramClearCommand(&cmd_histo) - histogramClearDistance(&dist_histo) - - buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) - - bw.writeBits(13, 0) - - tree = make([]huffmanTree, maxHuffmanTreeSize) - buildAndStoreHuffmanTree(lit_histo.data_[:], numLiteralSymbols, numLiteralSymbols, tree, lit_depth[:], lit_bits[:], bw) - buildAndStoreHuffmanTree(cmd_histo.data_[:], numCommandSymbols, numCommandSymbols, tree, cmd_depth[:], cmd_bits[:], bw) - buildAndStoreHuffmanTree(dist_histo.data_[:], maxSimpleDistanceAlphabetSize, uint(num_distance_symbols), tree, dist_depth[:], dist_bits[:], bw) - tree = nil - storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], bw) - if is_last { - bw.jumpToByteBoundary() - } -} - -func storeMetaBlockFast(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, bw *bitWriter) { - var num_distance_symbols uint32 = params.dist.alphabet_size - var distance_alphabet_bits uint32 = log2FloorNonZero(uint(num_distance_symbols-1)) + 1 - - storeCompressedMetaBlockHeader(is_last, length, bw) - - bw.writeBits(13, 0) - - if len(commands) <= 128 { - var histogram = [numLiteralSymbols]uint32{0} - var pos uint = start_pos - var num_literals uint = 0 - var lit_depth [numLiteralSymbols]byte - var lit_bits [numLiteralSymbols]uint16 - for _, cmd := range commands { - var j uint - for j = uint(cmd.insert_len_); j != 0; j-- { - histogram[input[pos&mask]]++ - pos++ - } - - num_literals += uint(cmd.insert_len_) - pos += uint(commandCopyLen(&cmd)) - } - - buildAndStoreHuffmanTreeFast(histogram[:], num_literals, /* max_bits = */ - 8, lit_depth[:], lit_bits[:], bw) - - storeStaticCommandHuffmanTree(bw) - storeStaticDistanceHuffmanTree(bw) - storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], kStaticCommandCodeDepth[:], kStaticCommandCodeBits[:], kStaticDistanceCodeDepth[:], kStaticDistanceCodeBits[:], bw) - } else { - var lit_histo histogramLiteral - var cmd_histo histogramCommand - var dist_histo histogramDistance - var lit_depth [numLiteralSymbols]byte - var lit_bits [numLiteralSymbols]uint16 - var cmd_depth [numCommandSymbols]byte - var cmd_bits [numCommandSymbols]uint16 - var dist_depth [maxSimpleDistanceAlphabetSize]byte - var dist_bits [maxSimpleDistanceAlphabetSize]uint16 - histogramClearLiteral(&lit_histo) - histogramClearCommand(&cmd_histo) - histogramClearDistance(&dist_histo) - buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) - buildAndStoreHuffmanTreeFast(lit_histo.data_[:], lit_histo.total_count_, /* max_bits = */ - 8, lit_depth[:], lit_bits[:], bw) - - buildAndStoreHuffmanTreeFast(cmd_histo.data_[:], cmd_histo.total_count_, /* max_bits = */ - 10, cmd_depth[:], cmd_bits[:], bw) - - buildAndStoreHuffmanTreeFast(dist_histo.data_[:], dist_histo.total_count_, /* max_bits = */ - uint(distance_alphabet_bits), dist_depth[:], dist_bits[:], bw) - - storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], bw) - } - - if is_last { - bw.jumpToByteBoundary() - } -} - -/* -This is for storing uncompressed blocks (simple raw storage of - - bytes-as-bytes). -*/ -func storeUncompressedMetaBlock(is_final_block bool, input []byte, position uint, mask uint, len uint, bw *bitWriter) { - var masked_pos uint = position & mask - storeUncompressedMetaBlockHeader(uint(len), bw) - bw.jumpToByteBoundary() - - if masked_pos+len > mask+1 { - var len1 uint = mask + 1 - masked_pos - bw.writeBytes(input[masked_pos:][:len1]) - len -= len1 - masked_pos = 0 - } - - bw.writeBytes(input[masked_pos:][:len]) - - /* Since the uncompressed block itself may not be the final block, add an - empty one after this. */ - if is_final_block { - bw.writeBits(1, 1) /* islast */ - bw.writeBits(1, 1) /* isempty */ - bw.jumpToByteBoundary() - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/cluster.go b/backend/vendor/github.com/andybalholm/brotli/cluster.go deleted file mode 100644 index df8a3282..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/cluster.go +++ /dev/null @@ -1,30 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Functions for clustering similar histograms together. */ - -type histogramPair struct { - idx1 uint32 - idx2 uint32 - cost_combo float64 - cost_diff float64 -} - -func histogramPairIsLess(p1 *histogramPair, p2 *histogramPair) bool { - if p1.cost_diff != p2.cost_diff { - return p1.cost_diff > p2.cost_diff - } - - return (p1.idx2 - p1.idx1) > (p2.idx2 - p2.idx1) -} - -/* Returns entropy reduction of the context map when we combine two clusters. */ -func clusterCostDiff(size_a uint, size_b uint) float64 { - var size_c uint = size_a + size_b - return float64(size_a)*fastLog2(size_a) + float64(size_b)*fastLog2(size_b) - float64(size_c)*fastLog2(size_c) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/cluster_command.go b/backend/vendor/github.com/andybalholm/brotli/cluster_command.go deleted file mode 100644 index 5aee1c08..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/cluster_command.go +++ /dev/null @@ -1,332 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -Computes the bit cost reduction by combining out[idx1] and out[idx2] and if - - it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. -*/ -func compareAndPushToQueueCommand(out []histogramCommand, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { - var is_good_pair bool = false - var p histogramPair - p.idx2 = 0 - p.idx1 = p.idx2 - p.cost_combo = 0 - p.cost_diff = p.cost_combo - if idx1 == idx2 { - return - } - - if idx2 < idx1 { - var t uint32 = idx2 - idx2 = idx1 - idx1 = t - } - - p.idx1 = idx1 - p.idx2 = idx2 - p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) - p.cost_diff -= out[idx1].bit_cost_ - p.cost_diff -= out[idx2].bit_cost_ - - if out[idx1].total_count_ == 0 { - p.cost_combo = out[idx2].bit_cost_ - is_good_pair = true - } else if out[idx2].total_count_ == 0 { - p.cost_combo = out[idx1].bit_cost_ - is_good_pair = true - } else { - var threshold float64 - if *num_pairs == 0 { - threshold = 1e99 - } else { - threshold = brotli_max_double(0.0, pairs[0].cost_diff) - } - var combo histogramCommand = out[idx1] - var cost_combo float64 - histogramAddHistogramCommand(&combo, &out[idx2]) - cost_combo = populationCostCommand(&combo) - if cost_combo < threshold-p.cost_diff { - p.cost_combo = cost_combo - is_good_pair = true - } - } - - if is_good_pair { - p.cost_diff += p.cost_combo - if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { - /* Replace the top of the queue if needed. */ - if *num_pairs < max_num_pairs { - pairs[*num_pairs] = pairs[0] - (*num_pairs)++ - } - - pairs[0] = p - } else if *num_pairs < max_num_pairs { - pairs[*num_pairs] = p - (*num_pairs)++ - } - } -} - -func histogramCombineCommand(out []histogramCommand, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { - var cost_diff_threshold float64 = 0.0 - var min_cluster_size uint = 1 - var num_pairs uint = 0 - { - /* We maintain a vector of histogram pairs, with the property that the pair - with the maximum bit cost reduction is the first. */ - var idx1 uint - for idx1 = 0; idx1 < num_clusters; idx1++ { - var idx2 uint - for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { - compareAndPushToQueueCommand(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) - } - } - } - - for num_clusters > min_cluster_size { - var best_idx1 uint32 - var best_idx2 uint32 - var i uint - if pairs[0].cost_diff >= cost_diff_threshold { - cost_diff_threshold = 1e99 - min_cluster_size = max_clusters - continue - } - - /* Take the best pair from the top of heap. */ - best_idx1 = pairs[0].idx1 - - best_idx2 = pairs[0].idx2 - histogramAddHistogramCommand(&out[best_idx1], &out[best_idx2]) - out[best_idx1].bit_cost_ = pairs[0].cost_combo - cluster_size[best_idx1] += cluster_size[best_idx2] - for i = 0; i < symbols_size; i++ { - if symbols[i] == best_idx2 { - symbols[i] = best_idx1 - } - } - - for i = 0; i < num_clusters; i++ { - if clusters[i] == best_idx2 { - copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) - break - } - } - - num_clusters-- - { - /* Remove pairs intersecting the just combined best pair. */ - var copy_to_idx uint = 0 - for i = 0; i < num_pairs; i++ { - var p *histogramPair = &pairs[i] - if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { - /* Remove invalid pair from the queue. */ - continue - } - - if histogramPairIsLess(&pairs[0], p) { - /* Replace the top of the queue if needed. */ - var front histogramPair = pairs[0] - pairs[0] = *p - pairs[copy_to_idx] = front - } else { - pairs[copy_to_idx] = *p - } - - copy_to_idx++ - } - - num_pairs = copy_to_idx - } - - /* Push new pairs formed with the combined histogram to the heap. */ - for i = 0; i < num_clusters; i++ { - compareAndPushToQueueCommand(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) - } - } - - return num_clusters -} - -/* What is the bit cost of moving histogram from cur_symbol to candidate. */ -func histogramBitCostDistanceCommand(histogram *histogramCommand, candidate *histogramCommand) float64 { - if histogram.total_count_ == 0 { - return 0.0 - } else { - var tmp histogramCommand = *histogram - histogramAddHistogramCommand(&tmp, candidate) - return populationCostCommand(&tmp) - candidate.bit_cost_ - } -} - -/* -Find the best 'out' histogram for each of the 'in' histograms. - - When called, clusters[0..num_clusters) contains the unique values from - symbols[0..in_size), but this property is not preserved in this function. - Note: we assume that out[]->bit_cost_ is already up-to-date. -*/ -func histogramRemapCommand(in []histogramCommand, in_size uint, clusters []uint32, num_clusters uint, out []histogramCommand, symbols []uint32) { - var i uint - for i = 0; i < in_size; i++ { - var best_out uint32 - if i == 0 { - best_out = symbols[0] - } else { - best_out = symbols[i-1] - } - var best_bits float64 = histogramBitCostDistanceCommand(&in[i], &out[best_out]) - var j uint - for j = 0; j < num_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceCommand(&in[i], &out[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - symbols[i] = best_out - } - - /* Recompute each out based on raw and symbols. */ - for i = 0; i < num_clusters; i++ { - histogramClearCommand(&out[clusters[i]]) - } - - for i = 0; i < in_size; i++ { - histogramAddHistogramCommand(&out[symbols[i]], &in[i]) - } -} - -/* Reorders elements of the out[0..length) array and changes values in - symbols[0..length) array in the following way: - * when called, symbols[] contains indexes into out[], and has N unique - values (possibly N < length) - * on return, symbols'[i] = f(symbols[i]) and - out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, - where f is a bijection between the range of symbols[] and [0..N), and - the first occurrences of values in symbols'[i] come in consecutive - increasing order. - Returns N, the number of unique values in symbols[]. */ - -var histogramReindexCommand_kInvalidIndex uint32 = math.MaxUint32 - -func histogramReindexCommand(out []histogramCommand, symbols []uint32, length uint) uint { - var new_index []uint32 = make([]uint32, length) - var next_index uint32 - var tmp []histogramCommand - var i uint - for i = 0; i < length; i++ { - new_index[i] = histogramReindexCommand_kInvalidIndex - } - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == histogramReindexCommand_kInvalidIndex { - new_index[symbols[i]] = next_index - next_index++ - } - } - - /* TODO: by using idea of "cycle-sort" we can avoid allocation of - tmp and reduce the number of copying by the factor of 2. */ - tmp = make([]histogramCommand, next_index) - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == next_index { - tmp[next_index] = out[symbols[i]] - next_index++ - } - - symbols[i] = new_index[symbols[i]] - } - - new_index = nil - for i = 0; uint32(i) < next_index; i++ { - out[i] = tmp[i] - } - - tmp = nil - return uint(next_index) -} - -func clusterHistogramsCommand(in []histogramCommand, in_size uint, max_histograms uint, out []histogramCommand, out_size *uint, histogram_symbols []uint32) { - var cluster_size []uint32 = make([]uint32, in_size) - var clusters []uint32 = make([]uint32, in_size) - var num_clusters uint = 0 - var max_input_histograms uint = 64 - var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 - var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) - var i uint - - /* For the first pass of clustering, we allow all pairs. */ - for i = 0; i < in_size; i++ { - cluster_size[i] = 1 - } - - for i = 0; i < in_size; i++ { - out[i] = in[i] - out[i].bit_cost_ = populationCostCommand(&in[i]) - histogram_symbols[i] = uint32(i) - } - - for i = 0; i < in_size; i += max_input_histograms { - var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - clusters[num_clusters+j] = uint32(i + j) - } - - num_new_clusters = histogramCombineCommand(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) - num_clusters += num_new_clusters - } - { - /* For the second pass, we limit the total number of histogram pairs. - After this limit is reached, we only keep searching for the best pair. */ - var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < (max_num_pairs + 1) { - var _new_size uint - if pairs_capacity == 0 { - _new_size = max_num_pairs + 1 - } else { - _new_size = pairs_capacity - } - var new_array []histogramPair - for _new_size < (max_num_pairs + 1) { - _new_size *= 2 - } - new_array = make([]histogramPair, _new_size) - if pairs_capacity != 0 { - copy(new_array, pairs[:pairs_capacity]) - } - - pairs = new_array - pairs_capacity = _new_size - } - - /* Collapse similar histograms. */ - num_clusters = histogramCombineCommand(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) - } - - pairs = nil - cluster_size = nil - - /* Find the optimal map from original histograms to the final ones. */ - histogramRemapCommand(in, in_size, clusters, num_clusters, out, histogram_symbols) - - clusters = nil - - /* Convert the context map to a canonical form. */ - *out_size = histogramReindexCommand(out, histogram_symbols, in_size) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/cluster_distance.go b/backend/vendor/github.com/andybalholm/brotli/cluster_distance.go deleted file mode 100644 index 6b4c6516..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/cluster_distance.go +++ /dev/null @@ -1,332 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -Computes the bit cost reduction by combining out[idx1] and out[idx2] and if - - it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. -*/ -func compareAndPushToQueueDistance(out []histogramDistance, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { - var is_good_pair bool = false - var p histogramPair - p.idx2 = 0 - p.idx1 = p.idx2 - p.cost_combo = 0 - p.cost_diff = p.cost_combo - if idx1 == idx2 { - return - } - - if idx2 < idx1 { - var t uint32 = idx2 - idx2 = idx1 - idx1 = t - } - - p.idx1 = idx1 - p.idx2 = idx2 - p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) - p.cost_diff -= out[idx1].bit_cost_ - p.cost_diff -= out[idx2].bit_cost_ - - if out[idx1].total_count_ == 0 { - p.cost_combo = out[idx2].bit_cost_ - is_good_pair = true - } else if out[idx2].total_count_ == 0 { - p.cost_combo = out[idx1].bit_cost_ - is_good_pair = true - } else { - var threshold float64 - if *num_pairs == 0 { - threshold = 1e99 - } else { - threshold = brotli_max_double(0.0, pairs[0].cost_diff) - } - var combo histogramDistance = out[idx1] - var cost_combo float64 - histogramAddHistogramDistance(&combo, &out[idx2]) - cost_combo = populationCostDistance(&combo) - if cost_combo < threshold-p.cost_diff { - p.cost_combo = cost_combo - is_good_pair = true - } - } - - if is_good_pair { - p.cost_diff += p.cost_combo - if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { - /* Replace the top of the queue if needed. */ - if *num_pairs < max_num_pairs { - pairs[*num_pairs] = pairs[0] - (*num_pairs)++ - } - - pairs[0] = p - } else if *num_pairs < max_num_pairs { - pairs[*num_pairs] = p - (*num_pairs)++ - } - } -} - -func histogramCombineDistance(out []histogramDistance, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { - var cost_diff_threshold float64 = 0.0 - var min_cluster_size uint = 1 - var num_pairs uint = 0 - { - /* We maintain a vector of histogram pairs, with the property that the pair - with the maximum bit cost reduction is the first. */ - var idx1 uint - for idx1 = 0; idx1 < num_clusters; idx1++ { - var idx2 uint - for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { - compareAndPushToQueueDistance(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) - } - } - } - - for num_clusters > min_cluster_size { - var best_idx1 uint32 - var best_idx2 uint32 - var i uint - if pairs[0].cost_diff >= cost_diff_threshold { - cost_diff_threshold = 1e99 - min_cluster_size = max_clusters - continue - } - - /* Take the best pair from the top of heap. */ - best_idx1 = pairs[0].idx1 - - best_idx2 = pairs[0].idx2 - histogramAddHistogramDistance(&out[best_idx1], &out[best_idx2]) - out[best_idx1].bit_cost_ = pairs[0].cost_combo - cluster_size[best_idx1] += cluster_size[best_idx2] - for i = 0; i < symbols_size; i++ { - if symbols[i] == best_idx2 { - symbols[i] = best_idx1 - } - } - - for i = 0; i < num_clusters; i++ { - if clusters[i] == best_idx2 { - copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) - break - } - } - - num_clusters-- - { - /* Remove pairs intersecting the just combined best pair. */ - var copy_to_idx uint = 0 - for i = 0; i < num_pairs; i++ { - var p *histogramPair = &pairs[i] - if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { - /* Remove invalid pair from the queue. */ - continue - } - - if histogramPairIsLess(&pairs[0], p) { - /* Replace the top of the queue if needed. */ - var front histogramPair = pairs[0] - pairs[0] = *p - pairs[copy_to_idx] = front - } else { - pairs[copy_to_idx] = *p - } - - copy_to_idx++ - } - - num_pairs = copy_to_idx - } - - /* Push new pairs formed with the combined histogram to the heap. */ - for i = 0; i < num_clusters; i++ { - compareAndPushToQueueDistance(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) - } - } - - return num_clusters -} - -/* What is the bit cost of moving histogram from cur_symbol to candidate. */ -func histogramBitCostDistanceDistance(histogram *histogramDistance, candidate *histogramDistance) float64 { - if histogram.total_count_ == 0 { - return 0.0 - } else { - var tmp histogramDistance = *histogram - histogramAddHistogramDistance(&tmp, candidate) - return populationCostDistance(&tmp) - candidate.bit_cost_ - } -} - -/* -Find the best 'out' histogram for each of the 'in' histograms. - - When called, clusters[0..num_clusters) contains the unique values from - symbols[0..in_size), but this property is not preserved in this function. - Note: we assume that out[]->bit_cost_ is already up-to-date. -*/ -func histogramRemapDistance(in []histogramDistance, in_size uint, clusters []uint32, num_clusters uint, out []histogramDistance, symbols []uint32) { - var i uint - for i = 0; i < in_size; i++ { - var best_out uint32 - if i == 0 { - best_out = symbols[0] - } else { - best_out = symbols[i-1] - } - var best_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[best_out]) - var j uint - for j = 0; j < num_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - symbols[i] = best_out - } - - /* Recompute each out based on raw and symbols. */ - for i = 0; i < num_clusters; i++ { - histogramClearDistance(&out[clusters[i]]) - } - - for i = 0; i < in_size; i++ { - histogramAddHistogramDistance(&out[symbols[i]], &in[i]) - } -} - -/* Reorders elements of the out[0..length) array and changes values in - symbols[0..length) array in the following way: - * when called, symbols[] contains indexes into out[], and has N unique - values (possibly N < length) - * on return, symbols'[i] = f(symbols[i]) and - out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, - where f is a bijection between the range of symbols[] and [0..N), and - the first occurrences of values in symbols'[i] come in consecutive - increasing order. - Returns N, the number of unique values in symbols[]. */ - -var histogramReindexDistance_kInvalidIndex uint32 = math.MaxUint32 - -func histogramReindexDistance(out []histogramDistance, symbols []uint32, length uint) uint { - var new_index []uint32 = make([]uint32, length) - var next_index uint32 - var tmp []histogramDistance - var i uint - for i = 0; i < length; i++ { - new_index[i] = histogramReindexDistance_kInvalidIndex - } - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == histogramReindexDistance_kInvalidIndex { - new_index[symbols[i]] = next_index - next_index++ - } - } - - /* TODO: by using idea of "cycle-sort" we can avoid allocation of - tmp and reduce the number of copying by the factor of 2. */ - tmp = make([]histogramDistance, next_index) - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == next_index { - tmp[next_index] = out[symbols[i]] - next_index++ - } - - symbols[i] = new_index[symbols[i]] - } - - new_index = nil - for i = 0; uint32(i) < next_index; i++ { - out[i] = tmp[i] - } - - tmp = nil - return uint(next_index) -} - -func clusterHistogramsDistance(in []histogramDistance, in_size uint, max_histograms uint, out []histogramDistance, out_size *uint, histogram_symbols []uint32) { - var cluster_size []uint32 = make([]uint32, in_size) - var clusters []uint32 = make([]uint32, in_size) - var num_clusters uint = 0 - var max_input_histograms uint = 64 - var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 - var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) - var i uint - - /* For the first pass of clustering, we allow all pairs. */ - for i = 0; i < in_size; i++ { - cluster_size[i] = 1 - } - - for i = 0; i < in_size; i++ { - out[i] = in[i] - out[i].bit_cost_ = populationCostDistance(&in[i]) - histogram_symbols[i] = uint32(i) - } - - for i = 0; i < in_size; i += max_input_histograms { - var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - clusters[num_clusters+j] = uint32(i + j) - } - - num_new_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) - num_clusters += num_new_clusters - } - { - /* For the second pass, we limit the total number of histogram pairs. - After this limit is reached, we only keep searching for the best pair. */ - var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < (max_num_pairs + 1) { - var _new_size uint - if pairs_capacity == 0 { - _new_size = max_num_pairs + 1 - } else { - _new_size = pairs_capacity - } - var new_array []histogramPair - for _new_size < (max_num_pairs + 1) { - _new_size *= 2 - } - new_array = make([]histogramPair, _new_size) - if pairs_capacity != 0 { - copy(new_array, pairs[:pairs_capacity]) - } - - pairs = new_array - pairs_capacity = _new_size - } - - /* Collapse similar histograms. */ - num_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) - } - - pairs = nil - cluster_size = nil - - /* Find the optimal map from original histograms to the final ones. */ - histogramRemapDistance(in, in_size, clusters, num_clusters, out, histogram_symbols) - - clusters = nil - - /* Convert the context map to a canonical form. */ - *out_size = histogramReindexDistance(out, histogram_symbols, in_size) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/cluster_literal.go b/backend/vendor/github.com/andybalholm/brotli/cluster_literal.go deleted file mode 100644 index e00c90bc..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/cluster_literal.go +++ /dev/null @@ -1,332 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -Computes the bit cost reduction by combining out[idx1] and out[idx2] and if - - it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. -*/ -func compareAndPushToQueueLiteral(out []histogramLiteral, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { - var is_good_pair bool = false - var p histogramPair - p.idx2 = 0 - p.idx1 = p.idx2 - p.cost_combo = 0 - p.cost_diff = p.cost_combo - if idx1 == idx2 { - return - } - - if idx2 < idx1 { - var t uint32 = idx2 - idx2 = idx1 - idx1 = t - } - - p.idx1 = idx1 - p.idx2 = idx2 - p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) - p.cost_diff -= out[idx1].bit_cost_ - p.cost_diff -= out[idx2].bit_cost_ - - if out[idx1].total_count_ == 0 { - p.cost_combo = out[idx2].bit_cost_ - is_good_pair = true - } else if out[idx2].total_count_ == 0 { - p.cost_combo = out[idx1].bit_cost_ - is_good_pair = true - } else { - var threshold float64 - if *num_pairs == 0 { - threshold = 1e99 - } else { - threshold = brotli_max_double(0.0, pairs[0].cost_diff) - } - var combo histogramLiteral = out[idx1] - var cost_combo float64 - histogramAddHistogramLiteral(&combo, &out[idx2]) - cost_combo = populationCostLiteral(&combo) - if cost_combo < threshold-p.cost_diff { - p.cost_combo = cost_combo - is_good_pair = true - } - } - - if is_good_pair { - p.cost_diff += p.cost_combo - if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { - /* Replace the top of the queue if needed. */ - if *num_pairs < max_num_pairs { - pairs[*num_pairs] = pairs[0] - (*num_pairs)++ - } - - pairs[0] = p - } else if *num_pairs < max_num_pairs { - pairs[*num_pairs] = p - (*num_pairs)++ - } - } -} - -func histogramCombineLiteral(out []histogramLiteral, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { - var cost_diff_threshold float64 = 0.0 - var min_cluster_size uint = 1 - var num_pairs uint = 0 - { - /* We maintain a vector of histogram pairs, with the property that the pair - with the maximum bit cost reduction is the first. */ - var idx1 uint - for idx1 = 0; idx1 < num_clusters; idx1++ { - var idx2 uint - for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { - compareAndPushToQueueLiteral(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) - } - } - } - - for num_clusters > min_cluster_size { - var best_idx1 uint32 - var best_idx2 uint32 - var i uint - if pairs[0].cost_diff >= cost_diff_threshold { - cost_diff_threshold = 1e99 - min_cluster_size = max_clusters - continue - } - - /* Take the best pair from the top of heap. */ - best_idx1 = pairs[0].idx1 - - best_idx2 = pairs[0].idx2 - histogramAddHistogramLiteral(&out[best_idx1], &out[best_idx2]) - out[best_idx1].bit_cost_ = pairs[0].cost_combo - cluster_size[best_idx1] += cluster_size[best_idx2] - for i = 0; i < symbols_size; i++ { - if symbols[i] == best_idx2 { - symbols[i] = best_idx1 - } - } - - for i = 0; i < num_clusters; i++ { - if clusters[i] == best_idx2 { - copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) - break - } - } - - num_clusters-- - { - /* Remove pairs intersecting the just combined best pair. */ - var copy_to_idx uint = 0 - for i = 0; i < num_pairs; i++ { - var p *histogramPair = &pairs[i] - if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { - /* Remove invalid pair from the queue. */ - continue - } - - if histogramPairIsLess(&pairs[0], p) { - /* Replace the top of the queue if needed. */ - var front histogramPair = pairs[0] - pairs[0] = *p - pairs[copy_to_idx] = front - } else { - pairs[copy_to_idx] = *p - } - - copy_to_idx++ - } - - num_pairs = copy_to_idx - } - - /* Push new pairs formed with the combined histogram to the heap. */ - for i = 0; i < num_clusters; i++ { - compareAndPushToQueueLiteral(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) - } - } - - return num_clusters -} - -/* What is the bit cost of moving histogram from cur_symbol to candidate. */ -func histogramBitCostDistanceLiteral(histogram *histogramLiteral, candidate *histogramLiteral) float64 { - if histogram.total_count_ == 0 { - return 0.0 - } else { - var tmp histogramLiteral = *histogram - histogramAddHistogramLiteral(&tmp, candidate) - return populationCostLiteral(&tmp) - candidate.bit_cost_ - } -} - -/* -Find the best 'out' histogram for each of the 'in' histograms. - - When called, clusters[0..num_clusters) contains the unique values from - symbols[0..in_size), but this property is not preserved in this function. - Note: we assume that out[]->bit_cost_ is already up-to-date. -*/ -func histogramRemapLiteral(in []histogramLiteral, in_size uint, clusters []uint32, num_clusters uint, out []histogramLiteral, symbols []uint32) { - var i uint - for i = 0; i < in_size; i++ { - var best_out uint32 - if i == 0 { - best_out = symbols[0] - } else { - best_out = symbols[i-1] - } - var best_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[best_out]) - var j uint - for j = 0; j < num_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - symbols[i] = best_out - } - - /* Recompute each out based on raw and symbols. */ - for i = 0; i < num_clusters; i++ { - histogramClearLiteral(&out[clusters[i]]) - } - - for i = 0; i < in_size; i++ { - histogramAddHistogramLiteral(&out[symbols[i]], &in[i]) - } -} - -/* Reorders elements of the out[0..length) array and changes values in - symbols[0..length) array in the following way: - * when called, symbols[] contains indexes into out[], and has N unique - values (possibly N < length) - * on return, symbols'[i] = f(symbols[i]) and - out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, - where f is a bijection between the range of symbols[] and [0..N), and - the first occurrences of values in symbols'[i] come in consecutive - increasing order. - Returns N, the number of unique values in symbols[]. */ - -var histogramReindexLiteral_kInvalidIndex uint32 = math.MaxUint32 - -func histogramReindexLiteral(out []histogramLiteral, symbols []uint32, length uint) uint { - var new_index []uint32 = make([]uint32, length) - var next_index uint32 - var tmp []histogramLiteral - var i uint - for i = 0; i < length; i++ { - new_index[i] = histogramReindexLiteral_kInvalidIndex - } - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == histogramReindexLiteral_kInvalidIndex { - new_index[symbols[i]] = next_index - next_index++ - } - } - - /* TODO: by using idea of "cycle-sort" we can avoid allocation of - tmp and reduce the number of copying by the factor of 2. */ - tmp = make([]histogramLiteral, next_index) - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == next_index { - tmp[next_index] = out[symbols[i]] - next_index++ - } - - symbols[i] = new_index[symbols[i]] - } - - new_index = nil - for i = 0; uint32(i) < next_index; i++ { - out[i] = tmp[i] - } - - tmp = nil - return uint(next_index) -} - -func clusterHistogramsLiteral(in []histogramLiteral, in_size uint, max_histograms uint, out []histogramLiteral, out_size *uint, histogram_symbols []uint32) { - var cluster_size []uint32 = make([]uint32, in_size) - var clusters []uint32 = make([]uint32, in_size) - var num_clusters uint = 0 - var max_input_histograms uint = 64 - var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 - var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) - var i uint - - /* For the first pass of clustering, we allow all pairs. */ - for i = 0; i < in_size; i++ { - cluster_size[i] = 1 - } - - for i = 0; i < in_size; i++ { - out[i] = in[i] - out[i].bit_cost_ = populationCostLiteral(&in[i]) - histogram_symbols[i] = uint32(i) - } - - for i = 0; i < in_size; i += max_input_histograms { - var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - clusters[num_clusters+j] = uint32(i + j) - } - - num_new_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) - num_clusters += num_new_clusters - } - { - /* For the second pass, we limit the total number of histogram pairs. - After this limit is reached, we only keep searching for the best pair. */ - var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < (max_num_pairs + 1) { - var _new_size uint - if pairs_capacity == 0 { - _new_size = max_num_pairs + 1 - } else { - _new_size = pairs_capacity - } - var new_array []histogramPair - for _new_size < (max_num_pairs + 1) { - _new_size *= 2 - } - new_array = make([]histogramPair, _new_size) - if pairs_capacity != 0 { - copy(new_array, pairs[:pairs_capacity]) - } - - pairs = new_array - pairs_capacity = _new_size - } - - /* Collapse similar histograms. */ - num_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) - } - - pairs = nil - cluster_size = nil - - /* Find the optimal map from original histograms to the final ones. */ - histogramRemapLiteral(in, in_size, clusters, num_clusters, out, histogram_symbols) - - clusters = nil - - /* Convert the context map to a canonical form. */ - *out_size = histogramReindexLiteral(out, histogram_symbols, in_size) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/command.go b/backend/vendor/github.com/andybalholm/brotli/command.go deleted file mode 100644 index b1662a55..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/command.go +++ /dev/null @@ -1,254 +0,0 @@ -package brotli - -var kInsBase = []uint32{ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 8, - 10, - 14, - 18, - 26, - 34, - 50, - 66, - 98, - 130, - 194, - 322, - 578, - 1090, - 2114, - 6210, - 22594, -} - -var kInsExtra = []uint32{ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 7, - 8, - 9, - 10, - 12, - 14, - 24, -} - -var kCopyBase = []uint32{ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 12, - 14, - 18, - 22, - 30, - 38, - 54, - 70, - 102, - 134, - 198, - 326, - 582, - 1094, - 2118, -} - -var kCopyExtra = []uint32{ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 7, - 8, - 9, - 10, - 24, -} - -func getInsertLengthCode(insertlen uint) uint16 { - if insertlen < 6 { - return uint16(insertlen) - } else if insertlen < 130 { - var nbits uint32 = log2FloorNonZero(insertlen-2) - 1 - return uint16((nbits << 1) + uint32((insertlen-2)>>nbits) + 2) - } else if insertlen < 2114 { - return uint16(log2FloorNonZero(insertlen-66) + 10) - } else if insertlen < 6210 { - return 21 - } else if insertlen < 22594 { - return 22 - } else { - return 23 - } -} - -func getCopyLengthCode(copylen uint) uint16 { - if copylen < 10 { - return uint16(copylen - 2) - } else if copylen < 134 { - var nbits uint32 = log2FloorNonZero(copylen-6) - 1 - return uint16((nbits << 1) + uint32((copylen-6)>>nbits) + 4) - } else if copylen < 2118 { - return uint16(log2FloorNonZero(copylen-70) + 12) - } else { - return 23 - } -} - -func combineLengthCodes(inscode uint16, copycode uint16, use_last_distance bool) uint16 { - var bits64 uint16 = uint16(copycode&0x7 | (inscode&0x7)<<3) - if use_last_distance && inscode < 8 && copycode < 16 { - if copycode < 8 { - return bits64 - } else { - return bits64 | 64 - } - } else { - /* Specification: 5 Encoding of ... (last table) */ - /* offset = 2 * index, where index is in range [0..8] */ - var offset uint32 = 2 * ((uint32(copycode) >> 3) + 3*(uint32(inscode)>>3)) - - /* All values in specification are K * 64, - where K = [2, 3, 6, 4, 5, 8, 7, 9, 10], - i + 1 = [1, 2, 3, 4, 5, 6, 7, 8, 9], - K - i - 1 = [1, 1, 3, 0, 0, 2, 0, 1, 2] = D. - All values in D require only 2 bits to encode. - Magic constant is shifted 6 bits left, to avoid final multiplication. */ - offset = (offset << 5) + 0x40 + ((0x520D40 >> offset) & 0xC0) - - return uint16(offset | uint32(bits64)) - } -} - -func getLengthCode(insertlen uint, copylen uint, use_last_distance bool, code *uint16) { - var inscode uint16 = getInsertLengthCode(insertlen) - var copycode uint16 = getCopyLengthCode(copylen) - *code = combineLengthCodes(inscode, copycode, use_last_distance) -} - -func getInsertBase(inscode uint16) uint32 { - return kInsBase[inscode] -} - -func getInsertExtra(inscode uint16) uint32 { - return kInsExtra[inscode] -} - -func getCopyBase(copycode uint16) uint32 { - return kCopyBase[copycode] -} - -func getCopyExtra(copycode uint16) uint32 { - return kCopyExtra[copycode] -} - -type command struct { - insert_len_ uint32 - copy_len_ uint32 - dist_extra_ uint32 - cmd_prefix_ uint16 - dist_prefix_ uint16 -} - -/* distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. */ -func makeCommand(dist *distanceParams, insertlen uint, copylen uint, copylen_code_delta int, distance_code uint) (cmd command) { - /* Don't rely on signed int representation, use honest casts. */ - var delta uint32 = uint32(byte(int8(copylen_code_delta))) - cmd.insert_len_ = uint32(insertlen) - cmd.copy_len_ = uint32(uint32(copylen) | delta<<25) - - /* The distance prefix and extra bits are stored in this Command as if - npostfix and ndirect were 0, they are only recomputed later after the - clustering if needed. */ - prefixEncodeCopyDistance(distance_code, uint(dist.num_direct_distance_codes), uint(dist.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) - getLengthCode(insertlen, uint(int(copylen)+copylen_code_delta), (cmd.dist_prefix_&0x3FF == 0), &cmd.cmd_prefix_) - - return cmd -} - -func makeInsertCommand(insertlen uint) (cmd command) { - cmd.insert_len_ = uint32(insertlen) - cmd.copy_len_ = 4 << 25 - cmd.dist_extra_ = 0 - cmd.dist_prefix_ = numDistanceShortCodes - getLengthCode(insertlen, 4, false, &cmd.cmd_prefix_) - return cmd -} - -func commandRestoreDistanceCode(self *command, dist *distanceParams) uint32 { - if uint32(self.dist_prefix_&0x3FF) < numDistanceShortCodes+dist.num_direct_distance_codes { - return uint32(self.dist_prefix_) & 0x3FF - } else { - var dcode uint32 = uint32(self.dist_prefix_) & 0x3FF - var nbits uint32 = uint32(self.dist_prefix_) >> 10 - var extra uint32 = self.dist_extra_ - var postfix_mask uint32 = (1 << dist.distance_postfix_bits) - 1 - var hcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) >> dist.distance_postfix_bits - var lcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) & postfix_mask - var offset uint32 = ((2 + (hcode & 1)) << nbits) - 4 - return ((offset + extra) << dist.distance_postfix_bits) + lcode + dist.num_direct_distance_codes + numDistanceShortCodes - } -} - -func commandDistanceContext(self *command) uint32 { - var r uint32 = uint32(self.cmd_prefix_) >> 6 - var c uint32 = uint32(self.cmd_prefix_) & 7 - if (r == 0 || r == 2 || r == 4 || r == 7) && (c <= 2) { - return c - } - - return 3 -} - -func commandCopyLen(self *command) uint32 { - return self.copy_len_ & 0x1FFFFFF -} - -func commandCopyLenCode(self *command) uint32 { - var modifier uint32 = self.copy_len_ >> 25 - var delta int32 = int32(int8(byte(modifier | (modifier&0x40)<<1))) - return uint32(int32(self.copy_len_&0x1FFFFFF) + delta) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/compress_fragment.go b/backend/vendor/github.com/andybalholm/brotli/compress_fragment.go deleted file mode 100644 index 5f2cb9cb..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/compress_fragment.go +++ /dev/null @@ -1,693 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function for fast encoding of an input fragment, independently from the input - history. This function uses one-pass processing: when we find a backward - match, we immediately emit the corresponding command and literal codes to - the bit stream. - - Adapted from the CompressFragment() function in - https://github.com/google/snappy/blob/master/snappy.cc */ - -const maxDistance_compress_fragment = 262128 - -func hash5(p []byte, shift uint) uint32 { - var h uint64 = (binary.LittleEndian.Uint64(p) << 24) * uint64(kHashMul32) - return uint32(h >> shift) -} - -func hashBytesAtOffset5(v uint64, offset int, shift uint) uint32 { - assert(offset >= 0) - assert(offset <= 3) - { - var h uint64 = ((v >> uint(8*offset)) << 24) * uint64(kHashMul32) - return uint32(h >> shift) - } -} - -func isMatch5(p1 []byte, p2 []byte) bool { - return binary.LittleEndian.Uint32(p1) == binary.LittleEndian.Uint32(p2) && - p1[4] == p2[4] -} - -/* -Builds a literal prefix code into "depths" and "bits" based on the statistics - - of the "input" string and stores it into the bit stream. - Note that the prefix code here is built from the pre-LZ77 input, therefore - we can only approximate the statistics of the actual literal stream. - Moreover, for long inputs we build a histogram from a sample of the input - and thus have to assign a non-zero depth for each literal. - Returns estimated compression ratio millibytes/char for encoding given input - with generated code. -*/ -func buildAndStoreLiteralPrefixCode(input []byte, input_size uint, depths []byte, bits []uint16, bw *bitWriter) uint { - var histogram = [256]uint32{0} - var histogram_total uint - var i uint - if input_size < 1<<15 { - for i = 0; i < input_size; i++ { - histogram[input[i]]++ - } - - histogram_total = input_size - for i = 0; i < 256; i++ { - /* We weigh the first 11 samples with weight 3 to account for the - balancing effect of the LZ77 phase on the histogram. */ - var adjust uint32 = 2 * brotli_min_uint32_t(histogram[i], 11) - histogram[i] += adjust - histogram_total += uint(adjust) - } - } else { - const kSampleRate uint = 29 - for i = 0; i < input_size; i += kSampleRate { - histogram[input[i]]++ - } - - histogram_total = (input_size + kSampleRate - 1) / kSampleRate - for i = 0; i < 256; i++ { - /* We add 1 to each population count to avoid 0 bit depths (since this is - only a sample and we don't know if the symbol appears or not), and we - weigh the first 11 samples with weight 3 to account for the balancing - effect of the LZ77 phase on the histogram (more frequent symbols are - more likely to be in backward references instead as literals). */ - var adjust uint32 = 1 + 2*brotli_min_uint32_t(histogram[i], 11) - histogram[i] += adjust - histogram_total += uint(adjust) - } - } - - buildAndStoreHuffmanTreeFast(histogram[:], histogram_total, /* max_bits = */ - 8, depths, bits, bw) - { - var literal_ratio uint = 0 - for i = 0; i < 256; i++ { - if histogram[i] != 0 { - literal_ratio += uint(histogram[i] * uint32(depths[i])) - } - } - - /* Estimated encoding ratio, millibytes per symbol. */ - return (literal_ratio * 125) / histogram_total - } -} - -/* -Builds a command and distance prefix code (each 64 symbols) into "depth" and - - "bits" based on "histogram" and stores it into the bit stream. -*/ -func buildAndStoreCommandPrefixCode1(histogram []uint32, depth []byte, bits []uint16, bw *bitWriter) { - var tree [129]huffmanTree - var cmd_depth = [numCommandSymbols]byte{0} - /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ - - var cmd_bits [64]uint16 - - createHuffmanTree(histogram, 64, 15, tree[:], depth) - createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) - - /* We have to jump through a few hoops here in order to compute - the command bits because the symbols are in a different order than in - the full alphabet. This looks complicated, but having the symbols - in this order in the command bits saves a few branches in the Emit* - functions. */ - copy(cmd_depth[:], depth[:24]) - - copy(cmd_depth[24:][:], depth[40:][:8]) - copy(cmd_depth[32:][:], depth[24:][:8]) - copy(cmd_depth[40:][:], depth[48:][:8]) - copy(cmd_depth[48:][:], depth[32:][:8]) - copy(cmd_depth[56:][:], depth[56:][:8]) - convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) - copy(bits, cmd_bits[:24]) - copy(bits[24:], cmd_bits[32:][:8]) - copy(bits[32:], cmd_bits[48:][:8]) - copy(bits[40:], cmd_bits[24:][:8]) - copy(bits[48:], cmd_bits[40:][:8]) - copy(bits[56:], cmd_bits[56:][:8]) - convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) - { - /* Create the bit length array for the full command alphabet. */ - var i uint - for i := 0; i < int(64); i++ { - cmd_depth[i] = 0 - } /* only 64 first values were used */ - copy(cmd_depth[:], depth[:8]) - copy(cmd_depth[64:][:], depth[8:][:8]) - copy(cmd_depth[128:][:], depth[16:][:8]) - copy(cmd_depth[192:][:], depth[24:][:8]) - copy(cmd_depth[384:][:], depth[32:][:8]) - for i = 0; i < 8; i++ { - cmd_depth[128+8*i] = depth[40+i] - cmd_depth[256+8*i] = depth[48+i] - cmd_depth[448+8*i] = depth[56+i] - } - - storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], bw) - } - - storeHuffmanTree(depth[64:], 64, tree[:], bw) -} - -/* REQUIRES: insertlen < 6210 */ -func emitInsertLen1(insertlen uint, depth []byte, bits []uint16, histo []uint32, bw *bitWriter) { - if insertlen < 6 { - var code uint = insertlen + 40 - bw.writeBits(uint(depth[code]), uint64(bits[code])) - histo[code]++ - } else if insertlen < 130 { - var tail uint = insertlen - 2 - var nbits uint32 = log2FloorNonZero(tail) - 1 - var prefix uint = tail >> nbits - var inscode uint = uint((nbits << 1) + uint32(prefix) + 42) - bw.writeBits(uint(depth[inscode]), uint64(bits[inscode])) - bw.writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> nbits - var code uint = uint((nbits << 1) + uint32(prefix) + 20) - bw.writeBits(uint(depth[code]), uint64(bits[code])) - bw.writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> nbits - var code uint = uint((nbits << 1) + uint32(prefix) + 4) - bw.writeBits(uint(depth[code]), uint64(bits[code])) - bw.writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> 5) + 30 - bw.writeBits(uint(depth[code]), uint64(bits[code])) - bw.writeBits(5, uint64(tail)&31) - bw.writeBits(uint(depth[64]), uint64(bits[64])) - histo[code]++ - histo[64]++ - } else if copylen < 2120 { - var tail uint = copylen - 72 - var nbits uint32 = log2FloorNonZero(tail) - var code uint = uint(nbits + 28) - bw.writeBits(uint(depth[code]), uint64(bits[code])) - bw.writeBits(uint(nbits), uint64(tail)-(uint64(uint(1))<> nbits) & 1 - var offset uint = (2 + prefix) << nbits - var distcode uint = uint(2*(nbits-1) + uint32(prefix) + 80) - bw.writeBits(uint(depth[distcode]), uint64(bits[distcode])) - bw.writeBits(uint(nbits), uint64(d)-uint64(offset)) - histo[distcode]++ -} - -func emitLiterals(input []byte, len uint, depth []byte, bits []uint16, bw *bitWriter) { - var j uint - for j = 0; j < len; j++ { - var lit byte = input[j] - bw.writeBits(uint(depth[lit]), uint64(bits[lit])) - } -} - -/* REQUIRES: len <= 1 << 24. */ -func storeMetaBlockHeader1(len uint, is_uncompressed bool, bw *bitWriter) { - var nibbles uint = 6 - - /* ISLAST */ - bw.writeBits(1, 0) - - if len <= 1<<16 { - nibbles = 4 - } else if len <= 1<<20 { - nibbles = 5 - } - - bw.writeBits(2, uint64(nibbles)-4) - bw.writeBits(nibbles*4, uint64(len)-1) - - /* ISUNCOMPRESSED */ - bw.writeSingleBit(is_uncompressed) -} - -var shouldMergeBlock_kSampleRate uint = 43 - -func shouldMergeBlock(data []byte, len uint, depths []byte) bool { - var histo = [256]uint{0} - var i uint - for i = 0; i < len; i += shouldMergeBlock_kSampleRate { - histo[data[i]]++ - } - { - var total uint = (len + shouldMergeBlock_kSampleRate - 1) / shouldMergeBlock_kSampleRate - var r float64 = (fastLog2(total)+0.5)*float64(total) + 200 - for i = 0; i < 256; i++ { - r -= float64(histo[i]) * (float64(depths[i]) + fastLog2(histo[i])) - } - - return r >= 0.0 - } -} - -func shouldUseUncompressedMode(metablock_start []byte, next_emit []byte, insertlen uint, literal_ratio uint) bool { - var compressed uint = uint(-cap(next_emit) + cap(metablock_start)) - if compressed*50 > insertlen { - return false - } else { - return literal_ratio > 980 - } -} - -func emitUncompressedMetaBlock1(data []byte, storage_ix_start uint, bw *bitWriter) { - bw.rewind(storage_ix_start) - storeMetaBlockHeader1(uint(len(data)), true, bw) - bw.jumpToByteBoundary() - bw.writeBytes(data) -} - -var kCmdHistoSeed = [128]uint32{ - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, -} - -var compressFragmentFastImpl_kFirstBlockSize uint = 3 << 15 -var compressFragmentFastImpl_kMergeBlockSize uint = 1 << 16 - -func compressFragmentFastImpl(in []byte, input_size uint, is_last bool, table []int, table_bits uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, bw *bitWriter) { - var cmd_histo [128]uint32 - var ip_end int - var next_emit int = 0 - var base_ip int = 0 - var input int = 0 - const kInputMarginBytes uint = windowGap - const kMinMatchLen uint = 5 - var metablock_start int = input - var block_size uint = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) - var total_block_size uint = block_size - var mlen_storage_ix uint = bw.getPos() + 3 - var lit_depth [256]byte - var lit_bits [256]uint16 - var literal_ratio uint - var ip int - var last_distance int - var shift uint = 64 - table_bits - - /* "next_emit" is a pointer to the first byte that is not covered by a - previous copy. Bytes between "next_emit" and the start of the next copy or - the end of the input will be emitted as literal bytes. */ - - /* Save the start of the first block for position and distance computations. - */ - - /* Save the bit position of the MLEN field of the meta-block header, so that - we can update it later if we decide to extend this meta-block. */ - storeMetaBlockHeader1(block_size, false, bw) - - /* No block splits, no contexts. */ - bw.writeBits(13, 0) - - literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], bw) - { - /* Store the pre-compressed command and distance prefix codes. */ - var i uint - for i = 0; i+7 < *cmd_code_numbits; i += 8 { - bw.writeBits(8, uint64(cmd_code[i>>3])) - } - } - - bw.writeBits(*cmd_code_numbits&7, uint64(cmd_code[*cmd_code_numbits>>3])) - - /* Initialize the command and distance histograms. We will gather - statistics of command and distance codes during the processing - of this block and use it to update the command and distance - prefix codes for the next block. */ -emit_commands: - copy(cmd_histo[:], kCmdHistoSeed[:]) - - /* "ip" is the input pointer. */ - ip = input - - last_distance = -1 - ip_end = int(uint(input) + block_size) - - if block_size >= kInputMarginBytes { - var len_limit uint = brotli_min_size_t(block_size-kMinMatchLen, input_size-kInputMarginBytes) - var ip_limit int = int(uint(input) + len_limit) - /* For the last block, we need to keep a 16 bytes margin so that we can be - sure that all distances are at most window size - 16. - For all other blocks, we only need to keep a margin of 5 bytes so that - we don't go over the block size with a copy. */ - - var next_hash uint32 - ip++ - for next_hash = hash5(in[ip:], shift); ; { - var skip uint32 = 32 - var next_ip int = ip - /* Step 1: Scan forward in the input looking for a 5-byte-long match. - If we get close to exhausting the input then goto emit_remainder. - - Heuristic match skipping: If 32 bytes are scanned with no matches - found, start looking only at every other byte. If 32 more bytes are - scanned, look at every third byte, etc.. When a match is found, - immediately go back to looking at every byte. This is a small loss - (~5% performance, ~0.1% density) for compressible data due to more - bookkeeping, but for non-compressible data (such as JPEG) it's a huge - win since the compressor quickly "realizes" the data is incompressible - and doesn't bother looking for matches everywhere. - - The "skip" variable keeps track of how many bytes there are since the - last match; dividing it by 32 (i.e. right-shifting by five) gives the - number of bytes to move ahead for each iteration. */ - - var candidate int - assert(next_emit < ip) - - trawl: - for { - var hash uint32 = next_hash - var bytes_between_hash_lookups uint32 = skip >> 5 - skip++ - assert(hash == hash5(in[next_ip:], shift)) - ip = next_ip - next_ip = int(uint32(ip) + bytes_between_hash_lookups) - if next_ip > ip_limit { - goto emit_remainder - } - - next_hash = hash5(in[next_ip:], shift) - candidate = ip - last_distance - if isMatch5(in[ip:], in[candidate:]) { - if candidate < ip { - table[hash] = int(ip - base_ip) - break - } - } - - candidate = base_ip + table[hash] - assert(candidate >= base_ip) - assert(candidate < ip) - - table[hash] = int(ip - base_ip) - if !(!isMatch5(in[ip:], in[candidate:])) { - break - } - } - - /* Check copy distance. If candidate is not feasible, continue search. - Checking is done outside of hot loop to reduce overhead. */ - if ip-candidate > maxDistance_compress_fragment { - goto trawl - } - - /* Step 2: Emit the found match together with the literal bytes from - "next_emit" to the bit stream, and then see if we can find a next match - immediately afterwards. Repeat until we find no match for the input - without emitting some literal bytes. */ - { - var base int = ip - /* > 0 */ - var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) - var distance int = int(base - candidate) - /* We have a 5-byte match at ip, and we need to emit bytes in - [next_emit, ip). */ - - var insert uint = uint(base - next_emit) - ip += int(matched) - if insert < 6210 { - emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], bw) - } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { - emitUncompressedMetaBlock1(in[metablock_start:base], mlen_storage_ix-3, bw) - input_size -= uint(base - input) - input = base - next_emit = input - goto next_block - } else { - emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], bw) - } - - emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], bw) - if distance == last_distance { - bw.writeBits(uint(cmd_depth[64]), uint64(cmd_bits[64])) - cmd_histo[64]++ - } else { - emitDistance1(uint(distance), cmd_depth, cmd_bits, cmd_histo[:], bw) - last_distance = distance - } - - emitCopyLenLastDistance1(matched, cmd_depth, cmd_bits, cmd_histo[:], bw) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some positions - within the last copy. */ - { - var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) - var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) - var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) - table[prev_hash] = int(ip - base_ip - 1) - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - for isMatch5(in[ip:], in[candidate:]) { - var base int = ip - /* We have a 5-byte match at ip, and no need to emit any literal bytes - prior to ip. */ - - var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) - if ip-candidate > maxDistance_compress_fragment { - break - } - ip += int(matched) - last_distance = int(base - candidate) /* > 0 */ - emitCopyLen1(matched, cmd_depth, cmd_bits, cmd_histo[:], bw) - emitDistance1(uint(last_distance), cmd_depth, cmd_bits, cmd_histo[:], bw) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some positions - within the last copy. */ - { - var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) - var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) - var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) - table[prev_hash] = int(ip - base_ip - 1) - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - ip++ - next_hash = hash5(in[ip:], shift) - } - } - -emit_remainder: - assert(next_emit <= ip_end) - input += int(block_size) - input_size -= block_size - block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kMergeBlockSize) - - /* Decide if we want to continue this meta-block instead of emitting the - last insert-only command. */ - if input_size > 0 && total_block_size+block_size <= 1<<20 && shouldMergeBlock(in[input:], block_size, lit_depth[:]) { - assert(total_block_size > 1<<16) - - /* Update the size of the current meta-block and continue emitting commands. - We can do this because the current size and the new size both have 5 - nibbles. */ - total_block_size += block_size - - bw.updateBits(20, uint32(total_block_size-1), mlen_storage_ix) - goto emit_commands - } - - /* Emit the remaining bytes as literals. */ - if next_emit < ip_end { - var insert uint = uint(ip_end - next_emit) - if insert < 6210 { - emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], bw) - emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], bw) - } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { - emitUncompressedMetaBlock1(in[metablock_start:ip_end], mlen_storage_ix-3, bw) - } else { - emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], bw) - emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], bw) - } - } - - next_emit = ip_end - - /* If we have more data, write a new meta-block header and prefix codes and - then continue emitting commands. */ -next_block: - if input_size > 0 { - metablock_start = input - block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) - total_block_size = block_size - - /* Save the bit position of the MLEN field of the meta-block header, so that - we can update it later if we decide to extend this meta-block. */ - mlen_storage_ix = bw.getPos() + 3 - - storeMetaBlockHeader1(block_size, false, bw) - - /* No block splits, no contexts. */ - bw.writeBits(13, 0) - - literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], bw) - buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, bw) - goto emit_commands - } - - if !is_last { - /* If this is not the last block, update the command and distance prefix - codes for the next block and store the compressed forms. */ - var bw bitWriter - bw.dst = cmd_code - buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, &bw) - *cmd_code_numbits = bw.getPos() - } -} - -/* -Compresses "input" string to bw as one or more complete meta-blocks. - - If "is_last" is 1, emits an additional empty last meta-block. - - "cmd_depth" and "cmd_bits" contain the command and distance prefix codes - (see comment in encode.h) used for the encoding of this input fragment. - If "is_last" is 0, they are updated to reflect the statistics - of this input fragment, to be used for the encoding of the next fragment. - - "*cmd_code_numbits" is the number of bits of the compressed representation - of the command and distance prefix codes, and "cmd_code" is an array of - at least "(*cmd_code_numbits + 7) >> 3" size that contains the compressed - command and distance prefix codes. If "is_last" is 0, these are also - updated to represent the updated "cmd_depth" and "cmd_bits". - - REQUIRES: "input_size" is greater than zero, or "is_last" is 1. - REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). - REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. - REQUIRES: "table_size" is an odd (9, 11, 13, 15) power of two - OUTPUT: maximal copy distance <= |input_size| - OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) -*/ -func compressFragmentFast(input []byte, input_size uint, is_last bool, table []int, table_size uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, bw *bitWriter) { - var initial_storage_ix uint = bw.getPos() - var table_bits uint = uint(log2FloorNonZero(table_size)) - - if input_size == 0 { - assert(is_last) - bw.writeBits(1, 1) /* islast */ - bw.writeBits(1, 1) /* isempty */ - bw.jumpToByteBoundary() - return - } - - compressFragmentFastImpl(input, input_size, is_last, table, table_bits, cmd_depth, cmd_bits, cmd_code_numbits, cmd_code, bw) - - /* If output is larger than single uncompressed block, rewrite it. */ - if bw.getPos()-initial_storage_ix > 31+(input_size<<3) { - emitUncompressedMetaBlock1(input[:input_size], initial_storage_ix, bw) - } - - if is_last { - bw.writeBits(1, 1) /* islast */ - bw.writeBits(1, 1) /* isempty */ - bw.jumpToByteBoundary() - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go b/backend/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go deleted file mode 100644 index 2aa315b5..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go +++ /dev/null @@ -1,600 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function for fast encoding of an input fragment, independently from the input - history. This function uses two-pass processing: in the first pass we save - the found backward matches and literal bytes into a buffer, and in the - second pass we emit them into the bit stream using prefix codes built based - on the actual command and literal byte histograms. */ - -const kCompressFragmentTwoPassBlockSize uint = 1 << 17 - -func hash1(p []byte, shift uint, length uint) uint32 { - var h uint64 = (binary.LittleEndian.Uint64(p) << ((8 - length) * 8)) * uint64(kHashMul32) - return uint32(h >> shift) -} - -func hashBytesAtOffset(v uint64, offset uint, shift uint, length uint) uint32 { - assert(offset <= 8-length) - { - var h uint64 = ((v >> (8 * offset)) << ((8 - length) * 8)) * uint64(kHashMul32) - return uint32(h >> shift) - } -} - -func isMatch1(p1 []byte, p2 []byte, length uint) bool { - if binary.LittleEndian.Uint32(p1) != binary.LittleEndian.Uint32(p2) { - return false - } - if length == 4 { - return true - } - return p1[4] == p2[4] && p1[5] == p2[5] -} - -/* -Builds a command and distance prefix code (each 64 symbols) into "depth" and - - "bits" based on "histogram" and stores it into the bit stream. -*/ -func buildAndStoreCommandPrefixCode(histogram []uint32, depth []byte, bits []uint16, bw *bitWriter) { - var tree [129]huffmanTree - var cmd_depth = [numCommandSymbols]byte{0} - /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ - - var cmd_bits [64]uint16 - createHuffmanTree(histogram, 64, 15, tree[:], depth) - createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) - - /* We have to jump through a few hoops here in order to compute - the command bits because the symbols are in a different order than in - the full alphabet. This looks complicated, but having the symbols - in this order in the command bits saves a few branches in the Emit* - functions. */ - copy(cmd_depth[:], depth[24:][:24]) - - copy(cmd_depth[24:][:], depth[:8]) - copy(cmd_depth[32:][:], depth[48:][:8]) - copy(cmd_depth[40:][:], depth[8:][:8]) - copy(cmd_depth[48:][:], depth[56:][:8]) - copy(cmd_depth[56:][:], depth[16:][:8]) - convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) - copy(bits, cmd_bits[24:][:8]) - copy(bits[8:], cmd_bits[40:][:8]) - copy(bits[16:], cmd_bits[56:][:8]) - copy(bits[24:], cmd_bits[:24]) - copy(bits[48:], cmd_bits[32:][:8]) - copy(bits[56:], cmd_bits[48:][:8]) - convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) - { - /* Create the bit length array for the full command alphabet. */ - var i uint - for i := 0; i < int(64); i++ { - cmd_depth[i] = 0 - } /* only 64 first values were used */ - copy(cmd_depth[:], depth[24:][:8]) - copy(cmd_depth[64:][:], depth[32:][:8]) - copy(cmd_depth[128:][:], depth[40:][:8]) - copy(cmd_depth[192:][:], depth[48:][:8]) - copy(cmd_depth[384:][:], depth[56:][:8]) - for i = 0; i < 8; i++ { - cmd_depth[128+8*i] = depth[i] - cmd_depth[256+8*i] = depth[8+i] - cmd_depth[448+8*i] = depth[16+i] - } - - storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], bw) - } - - storeHuffmanTree(depth[64:], 64, tree[:], bw) -} - -func emitInsertLen(insertlen uint32, commands *[]uint32) { - if insertlen < 6 { - (*commands)[0] = insertlen - } else if insertlen < 130 { - var tail uint32 = insertlen - 2 - var nbits uint32 = log2FloorNonZero(uint(tail)) - 1 - var prefix uint32 = tail >> nbits - var inscode uint32 = (nbits << 1) + prefix + 2 - var extra uint32 = tail - (prefix << nbits) - (*commands)[0] = inscode | extra<<8 - } else if insertlen < 2114 { - var tail uint32 = insertlen - 66 - var nbits uint32 = log2FloorNonZero(uint(tail)) - var code uint32 = nbits + 10 - var extra uint32 = tail - (1 << nbits) - (*commands)[0] = code | extra<<8 - } else if insertlen < 6210 { - var extra uint32 = insertlen - 2114 - (*commands)[0] = 21 | extra<<8 - } else if insertlen < 22594 { - var extra uint32 = insertlen - 6210 - (*commands)[0] = 22 | extra<<8 - } else { - var extra uint32 = insertlen - 22594 - (*commands)[0] = 23 | extra<<8 - } - - *commands = (*commands)[1:] -} - -func emitCopyLen(copylen uint, commands *[]uint32) { - if copylen < 10 { - (*commands)[0] = uint32(copylen + 38) - } else if copylen < 134 { - var tail uint = copylen - 6 - var nbits uint = uint(log2FloorNonZero(tail) - 1) - var prefix uint = tail >> nbits - var code uint = (nbits << 1) + prefix + 44 - var extra uint = tail - (prefix << nbits) - (*commands)[0] = uint32(code | extra<<8) - } else if copylen < 2118 { - var tail uint = copylen - 70 - var nbits uint = uint(log2FloorNonZero(tail)) - var code uint = nbits + 52 - var extra uint = tail - (uint(1) << nbits) - (*commands)[0] = uint32(code | extra<<8) - } else { - var extra uint = copylen - 2118 - (*commands)[0] = uint32(63 | extra<<8) - } - - *commands = (*commands)[1:] -} - -func emitCopyLenLastDistance(copylen uint, commands *[]uint32) { - if copylen < 12 { - (*commands)[0] = uint32(copylen + 20) - *commands = (*commands)[1:] - } else if copylen < 72 { - var tail uint = copylen - 8 - var nbits uint = uint(log2FloorNonZero(tail) - 1) - var prefix uint = tail >> nbits - var code uint = (nbits << 1) + prefix + 28 - var extra uint = tail - (prefix << nbits) - (*commands)[0] = uint32(code | extra<<8) - *commands = (*commands)[1:] - } else if copylen < 136 { - var tail uint = copylen - 8 - var code uint = (tail >> 5) + 54 - var extra uint = tail & 31 - (*commands)[0] = uint32(code | extra<<8) - *commands = (*commands)[1:] - (*commands)[0] = 64 - *commands = (*commands)[1:] - } else if copylen < 2120 { - var tail uint = copylen - 72 - var nbits uint = uint(log2FloorNonZero(tail)) - var code uint = nbits + 52 - var extra uint = tail - (uint(1) << nbits) - (*commands)[0] = uint32(code | extra<<8) - *commands = (*commands)[1:] - (*commands)[0] = 64 - *commands = (*commands)[1:] - } else { - var extra uint = copylen - 2120 - (*commands)[0] = uint32(63 | extra<<8) - *commands = (*commands)[1:] - (*commands)[0] = 64 - *commands = (*commands)[1:] - } -} - -func emitDistance(distance uint32, commands *[]uint32) { - var d uint32 = distance + 3 - var nbits uint32 = log2FloorNonZero(uint(d)) - 1 - var prefix uint32 = (d >> nbits) & 1 - var offset uint32 = (2 + prefix) << nbits - var distcode uint32 = 2*(nbits-1) + prefix + 80 - var extra uint32 = d - offset - (*commands)[0] = distcode | extra<<8 - *commands = (*commands)[1:] -} - -/* REQUIRES: len <= 1 << 24. */ -func storeMetaBlockHeader(len uint, is_uncompressed bool, bw *bitWriter) { - var nibbles uint = 6 - - /* ISLAST */ - bw.writeBits(1, 0) - - if len <= 1<<16 { - nibbles = 4 - } else if len <= 1<<20 { - nibbles = 5 - } - - bw.writeBits(2, uint64(nibbles)-4) - bw.writeBits(nibbles*4, uint64(len)-1) - - /* ISUNCOMPRESSED */ - bw.writeSingleBit(is_uncompressed) -} - -func createCommands(input []byte, block_size uint, input_size uint, base_ip_ptr []byte, table []int, table_bits uint, min_match uint, literals *[]byte, commands *[]uint32) { - var ip int = 0 - var shift uint = 64 - table_bits - var ip_end int = int(block_size) - var base_ip int = -cap(base_ip_ptr) + cap(input) - var next_emit int = 0 - var last_distance int = -1 - /* "ip" is the input pointer. */ - - const kInputMarginBytes uint = windowGap - - /* "next_emit" is a pointer to the first byte that is not covered by a - previous copy. Bytes between "next_emit" and the start of the next copy or - the end of the input will be emitted as literal bytes. */ - if block_size >= kInputMarginBytes { - var len_limit uint = brotli_min_size_t(block_size-min_match, input_size-kInputMarginBytes) - var ip_limit int = int(len_limit) - /* For the last block, we need to keep a 16 bytes margin so that we can be - sure that all distances are at most window size - 16. - For all other blocks, we only need to keep a margin of 5 bytes so that - we don't go over the block size with a copy. */ - - var next_hash uint32 - ip++ - for next_hash = hash1(input[ip:], shift, min_match); ; { - var skip uint32 = 32 - var next_ip int = ip - /* Step 1: Scan forward in the input looking for a 6-byte-long match. - If we get close to exhausting the input then goto emit_remainder. - - Heuristic match skipping: If 32 bytes are scanned with no matches - found, start looking only at every other byte. If 32 more bytes are - scanned, look at every third byte, etc.. When a match is found, - immediately go back to looking at every byte. This is a small loss - (~5% performance, ~0.1% density) for compressible data due to more - bookkeeping, but for non-compressible data (such as JPEG) it's a huge - win since the compressor quickly "realizes" the data is incompressible - and doesn't bother looking for matches everywhere. - - The "skip" variable keeps track of how many bytes there are since the - last match; dividing it by 32 (ie. right-shifting by five) gives the - number of bytes to move ahead for each iteration. */ - - var candidate int - - assert(next_emit < ip) - - trawl: - for { - var hash uint32 = next_hash - var bytes_between_hash_lookups uint32 = skip >> 5 - skip++ - ip = next_ip - assert(hash == hash1(input[ip:], shift, min_match)) - next_ip = int(uint32(ip) + bytes_between_hash_lookups) - if next_ip > ip_limit { - goto emit_remainder - } - - next_hash = hash1(input[next_ip:], shift, min_match) - candidate = ip - last_distance - if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { - if candidate < ip { - table[hash] = int(ip - base_ip) - break - } - } - - candidate = base_ip + table[hash] - assert(candidate >= base_ip) - assert(candidate < ip) - - table[hash] = int(ip - base_ip) - if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { - break - } - } - - /* Check copy distance. If candidate is not feasible, continue search. - Checking is done outside of hot loop to reduce overhead. */ - if ip-candidate > maxDistance_compress_fragment { - goto trawl - } - - /* Step 2: Emit the found match together with the literal bytes from - "next_emit", and then see if we can find a next match immediately - afterwards. Repeat until we find no match for the input - without emitting some literal bytes. */ - { - var base int = ip - /* > 0 */ - var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) - var distance int = int(base - candidate) - /* We have a 6-byte match at ip, and we need to emit bytes in - [next_emit, ip). */ - - var insert int = int(base - next_emit) - ip += int(matched) - emitInsertLen(uint32(insert), commands) - copy(*literals, input[next_emit:][:uint(insert)]) - *literals = (*literals)[insert:] - if distance == last_distance { - (*commands)[0] = 64 - *commands = (*commands)[1:] - } else { - emitDistance(uint32(distance), commands) - last_distance = distance - } - - emitCopyLenLastDistance(matched, commands) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - { - var input_bytes uint64 - var cur_hash uint32 - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some - positions within the last copy. */ - - var prev_hash uint32 - if min_match == 4 { - input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) - cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } else { - input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 5) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 4) - prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) - cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - for ip-candidate <= maxDistance_compress_fragment && isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { - var base int = ip - /* We have a 6-byte match at ip, and no need to emit any - literal bytes prior to ip. */ - - var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) - ip += int(matched) - last_distance = int(base - candidate) /* > 0 */ - emitCopyLen(matched, commands) - emitDistance(uint32(last_distance), commands) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - { - var input_bytes uint64 - var cur_hash uint32 - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some - positions within the last copy. */ - - var prev_hash uint32 - if min_match == 4 { - input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) - cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } else { - input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 5) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 4) - prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) - cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - ip++ - next_hash = hash1(input[ip:], shift, min_match) - } - } - -emit_remainder: - assert(next_emit <= ip_end) - - /* Emit the remaining bytes as literals. */ - if next_emit < ip_end { - var insert uint32 = uint32(ip_end - next_emit) - emitInsertLen(insert, commands) - copy(*literals, input[next_emit:][:insert]) - *literals = (*literals)[insert:] - } -} - -var storeCommands_kNumExtraBits = [128]uint32{ - 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, - 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, - 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, -} -var storeCommands_kInsertOffset = [24]uint32{ - 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, - 1090, 2114, 6210, 22594, -} - -func storeCommands(literals []byte, num_literals uint, commands []uint32, num_commands uint, bw *bitWriter) { - var lit_depths [256]byte - var lit_bits [256]uint16 - var lit_histo = [256]uint32{0} - var cmd_depths = [128]byte{0} - var cmd_bits = [128]uint16{0} - var cmd_histo = [128]uint32{0} - var i uint - for i = 0; i < num_literals; i++ { - lit_histo[literals[i]]++ - } - - buildAndStoreHuffmanTreeFast(lit_histo[:], num_literals, /* max_bits = */ - 8, lit_depths[:], lit_bits[:], bw) - - for i = 0; i < num_commands; i++ { - var code uint32 = commands[i] & 0xFF - assert(code < 128) - cmd_histo[code]++ - } - - cmd_histo[1] += 1 - cmd_histo[2] += 1 - cmd_histo[64] += 1 - cmd_histo[84] += 1 - buildAndStoreCommandPrefixCode(cmd_histo[:], cmd_depths[:], cmd_bits[:], bw) - - for i = 0; i < num_commands; i++ { - var cmd uint32 = commands[i] - var code uint32 = cmd & 0xFF - var extra uint32 = cmd >> 8 - assert(code < 128) - bw.writeBits(uint(cmd_depths[code]), uint64(cmd_bits[code])) - bw.writeBits(uint(storeCommands_kNumExtraBits[code]), uint64(extra)) - if code < 24 { - var insert uint32 = storeCommands_kInsertOffset[code] + extra - var j uint32 - for j = 0; j < insert; j++ { - var lit byte = literals[0] - bw.writeBits(uint(lit_depths[lit]), uint64(lit_bits[lit])) - literals = literals[1:] - } - } - } -} - -/* Acceptable loss for uncompressible speedup is 2% */ -const minRatio = 0.98 - -const sampleRate = 43 - -func shouldCompress(input []byte, input_size uint, num_literals uint) bool { - var corpus_size float64 = float64(input_size) - if float64(num_literals) < minRatio*corpus_size { - return true - } else { - var literal_histo = [256]uint32{0} - var max_total_bit_cost float64 = corpus_size * 8 * minRatio / sampleRate - var i uint - for i = 0; i < input_size; i += sampleRate { - literal_histo[input[i]]++ - } - - return bitsEntropy(literal_histo[:], 256) < max_total_bit_cost - } -} - -func emitUncompressedMetaBlock(input []byte, input_size uint, bw *bitWriter) { - storeMetaBlockHeader(input_size, true, bw) - bw.jumpToByteBoundary() - bw.writeBytes(input[:input_size]) -} - -func compressFragmentTwoPassImpl(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_bits uint, min_match uint, bw *bitWriter) { - /* Save the start of the first block for position and distance computations. - */ - var base_ip []byte = input - - for input_size > 0 { - var block_size uint = brotli_min_size_t(input_size, kCompressFragmentTwoPassBlockSize) - var commands []uint32 = command_buf - var literals []byte = literal_buf - var num_literals uint - createCommands(input, block_size, input_size, base_ip, table, table_bits, min_match, &literals, &commands) - num_literals = uint(-cap(literals) + cap(literal_buf)) - if shouldCompress(input, block_size, num_literals) { - var num_commands uint = uint(-cap(commands) + cap(command_buf)) - storeMetaBlockHeader(block_size, false, bw) - - /* No block splits, no contexts. */ - bw.writeBits(13, 0) - - storeCommands(literal_buf, num_literals, command_buf, num_commands, bw) - } else { - /* Since we did not find many backward references and the entropy of - the data is close to 8 bits, we can simply emit an uncompressed block. - This makes compression speed of uncompressible data about 3x faster. */ - emitUncompressedMetaBlock(input, block_size, bw) - } - - input = input[block_size:] - input_size -= block_size - } -} - -/* -Compresses "input" string to bw as one or more complete meta-blocks. - - If "is_last" is 1, emits an additional empty last meta-block. - - REQUIRES: "input_size" is greater than zero, or "is_last" is 1. - REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). - REQUIRES: "command_buf" and "literal_buf" point to at least - kCompressFragmentTwoPassBlockSize long arrays. - REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. - REQUIRES: "table_size" is a power of two - OUTPUT: maximal copy distance <= |input_size| - OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) -*/ -func compressFragmentTwoPass(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_size uint, bw *bitWriter) { - var initial_storage_ix uint = bw.getPos() - var table_bits uint = uint(log2FloorNonZero(table_size)) - var min_match uint - if table_bits <= 15 { - min_match = 4 - } else { - min_match = 6 - } - compressFragmentTwoPassImpl(input, input_size, is_last, command_buf, literal_buf, table, table_bits, min_match, bw) - - /* If output is larger than single uncompressed block, rewrite it. */ - if bw.getPos()-initial_storage_ix > 31+(input_size<<3) { - bw.rewind(initial_storage_ix) - emitUncompressedMetaBlock(input, input_size, bw) - } - - if is_last { - bw.writeBits(1, 1) /* islast */ - bw.writeBits(1, 1) /* isempty */ - bw.jumpToByteBoundary() - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/constants.go b/backend/vendor/github.com/andybalholm/brotli/constants.go deleted file mode 100644 index a880dff7..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/constants.go +++ /dev/null @@ -1,77 +0,0 @@ -package brotli - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Specification: 7.3. Encoding of the context map */ -const contextMapMaxRle = 16 - -/* Specification: 2. Compressed representation overview */ -const maxNumberOfBlockTypes = 256 - -/* Specification: 3.3. Alphabet sizes: insert-and-copy length */ -const numLiteralSymbols = 256 - -const numCommandSymbols = 704 - -const numBlockLenSymbols = 26 - -const maxContextMapSymbols = (maxNumberOfBlockTypes + contextMapMaxRle) - -const maxBlockTypeSymbols = (maxNumberOfBlockTypes + 2) - -/* Specification: 3.5. Complex prefix codes */ -const repeatPreviousCodeLength = 16 - -const repeatZeroCodeLength = 17 - -const codeLengthCodes = (repeatZeroCodeLength + 1) - -/* "code length of 8 is repeated" */ -const initialRepeatedCodeLength = 8 - -/* "Large Window Brotli" */ -const largeMaxDistanceBits = 62 - -const largeMinWbits = 10 - -const largeMaxWbits = 30 - -/* Specification: 4. Encoding of distances */ -const numDistanceShortCodes = 16 - -const maxNpostfix = 3 - -const maxNdirect = 120 - -const maxDistanceBits = 24 - -func distanceAlphabetSize(NPOSTFIX uint, NDIRECT uint, MAXNBITS uint) uint { - return numDistanceShortCodes + NDIRECT + uint(MAXNBITS<<(NPOSTFIX+1)) -} - -/* numDistanceSymbols == 1128 */ -const numDistanceSymbols = 1128 - -const maxDistance = 0x3FFFFFC - -const maxAllowedDistance = 0x7FFFFFFC - -/* 7.1. Context modes and context ID lookup for literals */ -/* "context IDs for literals are in the range of 0..63" */ -const literalContextBits = 6 - -/* 7.2. Context ID for distances */ -const distanceContextBits = 2 - -/* 9.1. Format of the Stream Header */ -/* Number of slack bytes for window size. Don't confuse - with BROTLI_NUM_DISTANCE_SHORT_CODES. */ -const windowGap = 16 - -func maxBackwardLimit(W uint) uint { - return (uint(1) << W) - windowGap -} diff --git a/backend/vendor/github.com/andybalholm/brotli/context.go b/backend/vendor/github.com/andybalholm/brotli/context.go deleted file mode 100644 index 884ff8a2..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/context.go +++ /dev/null @@ -1,2176 +0,0 @@ -package brotli - -/* Lookup table to map the previous two bytes to a context id. - -There are four different context modeling modes defined here: - contextLSB6: context id is the least significant 6 bits of the last byte, - contextMSB6: context id is the most significant 6 bits of the last byte, - contextUTF8: second-order context model tuned for UTF8-encoded text, - contextSigned: second-order context model tuned for signed integers. - -If |p1| and |p2| are the previous two bytes, and |mode| is current context -mode, we calculate the context as: - - context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256]. - -For contextUTF8 mode, if the previous two bytes are ASCII characters -(i.e. < 128), this will be equivalent to - - context = 4 * context1(p1) + context2(p2), - -where context1 is based on the previous byte in the following way: - - 0 : non-ASCII control - 1 : \t, \n, \r - 2 : space - 3 : other punctuation - 4 : " ' - 5 : % - 6 : ( < [ { - 7 : ) > ] } - 8 : , ; : - 9 : . - 10 : = - 11 : number - 12 : upper-case vowel - 13 : upper-case consonant - 14 : lower-case vowel - 15 : lower-case consonant - -and context2 is based on the second last byte: - - 0 : control, space - 1 : punctuation - 2 : upper-case letter, number - 3 : lower-case letter - -If the last byte is ASCII, and the second last byte is not (in a valid UTF8 -stream it will be a continuation byte, value between 128 and 191), the -context is the same as if the second last byte was an ASCII control or space. - -If the last byte is a UTF8 lead byte (value >= 192), then the next byte will -be a continuation byte and the context id is 2 or 3 depending on the LSB of -the last byte and to a lesser extent on the second last byte if it is ASCII. - -If the last byte is a UTF8 continuation byte, the second last byte can be: - - continuation byte: the next byte is probably ASCII or lead byte (assuming - 4-byte UTF8 characters are rare) and the context id is 0 or 1. - - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1 - - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3 - -The possible value combinations of the previous two bytes, the range of -context ids and the type of the next byte is summarized in the table below: - -|--------\-----------------------------------------------------------------| -| \ Last byte | -| Second \---------------------------------------------------------------| -| last byte \ ASCII | cont. byte | lead byte | -| \ (0-127) | (128-191) | (192-) | -|=============|===================|=====================|==================| -| ASCII | next: ASCII/lead | not valid | next: cont. | -| (0-127) | context: 4 - 63 | | context: 2 - 3 | -|-------------|-------------------|---------------------|------------------| -| cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. | -| (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 | -|-------------|-------------------|---------------------|------------------| -| lead byte | not valid | next: ASCII/lead | not valid | -| (192-207) | | context: 0 - 1 | | -|-------------|-------------------|---------------------|------------------| -| lead byte | not valid | next: cont. | not valid | -| (208-) | | context: 2 - 3 | | -|-------------|-------------------|---------------------|------------------| -*/ - -const ( - contextLSB6 = 0 - contextMSB6 = 1 - contextUTF8 = 2 - contextSigned = 3 -) - -/* Common context lookup table for all context modes. */ -var kContextLookup = [2048]byte{ - /* CONTEXT_LSB6, last byte. */ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - - /* CONTEXT_LSB6, second last byte, */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - - /* CONTEXT_MSB6, last byte. */ - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 6, - 6, - 6, - 6, - 7, - 7, - 7, - 7, - 8, - 8, - 8, - 8, - 9, - 9, - 9, - 9, - 10, - 10, - 10, - 10, - 11, - 11, - 11, - 11, - 12, - 12, - 12, - 12, - 13, - 13, - 13, - 13, - 14, - 14, - 14, - 14, - 15, - 15, - 15, - 15, - 16, - 16, - 16, - 16, - 17, - 17, - 17, - 17, - 18, - 18, - 18, - 18, - 19, - 19, - 19, - 19, - 20, - 20, - 20, - 20, - 21, - 21, - 21, - 21, - 22, - 22, - 22, - 22, - 23, - 23, - 23, - 23, - 24, - 24, - 24, - 24, - 25, - 25, - 25, - 25, - 26, - 26, - 26, - 26, - 27, - 27, - 27, - 27, - 28, - 28, - 28, - 28, - 29, - 29, - 29, - 29, - 30, - 30, - 30, - 30, - 31, - 31, - 31, - 31, - 32, - 32, - 32, - 32, - 33, - 33, - 33, - 33, - 34, - 34, - 34, - 34, - 35, - 35, - 35, - 35, - 36, - 36, - 36, - 36, - 37, - 37, - 37, - 37, - 38, - 38, - 38, - 38, - 39, - 39, - 39, - 39, - 40, - 40, - 40, - 40, - 41, - 41, - 41, - 41, - 42, - 42, - 42, - 42, - 43, - 43, - 43, - 43, - 44, - 44, - 44, - 44, - 45, - 45, - 45, - 45, - 46, - 46, - 46, - 46, - 47, - 47, - 47, - 47, - 48, - 48, - 48, - 48, - 49, - 49, - 49, - 49, - 50, - 50, - 50, - 50, - 51, - 51, - 51, - 51, - 52, - 52, - 52, - 52, - 53, - 53, - 53, - 53, - 54, - 54, - 54, - 54, - 55, - 55, - 55, - 55, - 56, - 56, - 56, - 56, - 57, - 57, - 57, - 57, - 58, - 58, - 58, - 58, - 59, - 59, - 59, - 59, - 60, - 60, - 60, - 60, - 61, - 61, - 61, - 61, - 62, - 62, - 62, - 62, - 63, - 63, - 63, - 63, - - /* CONTEXT_MSB6, second last byte, */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - - /* CONTEXT_UTF8, last byte. */ - /* ASCII range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4, - 4, - 0, - 0, - 4, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8, - 12, - 16, - 12, - 12, - 20, - 12, - 16, - 24, - 28, - 12, - 12, - 32, - 12, - 36, - 12, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 32, - 32, - 24, - 40, - 28, - 12, - 12, - 48, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 52, - 52, - 24, - 12, - 28, - 12, - 12, - 12, - 56, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 60, - 60, - 24, - 12, - 28, - 12, - 0, - - /* UTF8 continuation byte range. */ - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - - /* UTF8 lead byte range. */ - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - - /* CONTEXT_UTF8 second last byte. */ - /* ASCII range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 1, - 1, - 1, - 1, - 1, - 1, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 1, - 1, - 1, - 1, - 0, - - /* UTF8 continuation byte range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - - /* UTF8 lead byte range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - - /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */ - 0, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 56, - - /* CONTEXT_SIGNED, second last byte. */ - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 7, -} - -type contextLUT []byte - -func getContextLUT(mode int) contextLUT { - return kContextLookup[mode<<9:] -} - -func getContext(p1 byte, p2 byte, lut contextLUT) byte { - return lut[p1] | lut[256+int(p2)] -} diff --git a/backend/vendor/github.com/andybalholm/brotli/decode.go b/backend/vendor/github.com/andybalholm/brotli/decode.go deleted file mode 100644 index 9e5dec05..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/decode.go +++ /dev/null @@ -1,2695 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -const ( - decoderResultError = 0 - decoderResultSuccess = 1 - decoderResultNeedsMoreInput = 2 - decoderResultNeedsMoreOutput = 3 -) - -/** - * Error code for detailed logging / production debugging. - * - * See ::BrotliDecoderGetErrorCode and ::BROTLI_LAST_ERROR_CODE. - */ -const ( - decoderNoError = 0 - decoderSuccess = 1 - decoderNeedsMoreInput = 2 - decoderNeedsMoreOutput = 3 - decoderErrorFormatExuberantNibble = -1 - decoderErrorFormatReserved = -2 - decoderErrorFormatExuberantMetaNibble = -3 - decoderErrorFormatSimpleHuffmanAlphabet = -4 - decoderErrorFormatSimpleHuffmanSame = -5 - decoderErrorFormatClSpace = -6 - decoderErrorFormatHuffmanSpace = -7 - decoderErrorFormatContextMapRepeat = -8 - decoderErrorFormatBlockLength1 = -9 - decoderErrorFormatBlockLength2 = -10 - decoderErrorFormatTransform = -11 - decoderErrorFormatDictionary = -12 - decoderErrorFormatWindowBits = -13 - decoderErrorFormatPadding1 = -14 - decoderErrorFormatPadding2 = -15 - decoderErrorFormatDistance = -16 - decoderErrorDictionaryNotSet = -19 - decoderErrorInvalidArguments = -20 - decoderErrorAllocContextModes = -21 - decoderErrorAllocTreeGroups = -22 - decoderErrorAllocContextMap = -25 - decoderErrorAllocRingBuffer1 = -26 - decoderErrorAllocRingBuffer2 = -27 - decoderErrorAllocBlockTypeTrees = -30 - decoderErrorUnreachable = -31 -) - -/** - * The value of the last error code, negative integer. - * - * All other error code values are in the range from ::lastErrorCode - * to @c -1. There are also 4 other possible non-error codes @c 0 .. @c 3 in - * ::BrotliDecoderErrorCode enumeration. - */ -const lastErrorCode = decoderErrorUnreachable - -/** Options to be used with ::BrotliDecoderSetParameter. */ -const ( - decoderParamDisableRingBufferReallocation = 0 - decoderParamLargeWindow = 1 -) - -const huffmanTableBits = 8 - -const huffmanTableMask = 0xFF - -/* -We need the slack region for the following reasons: - - doing up to two 16-byte copies for fast backward copying - - inserting transformed dictionary word (5 prefix + 24 base + 8 suffix) -*/ -const kRingBufferWriteAheadSlack uint32 = 42 - -var kCodeLengthCodeOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} - -/* Static prefix code for the complex code length code lengths. */ -var kCodeLengthPrefixLength = [16]byte{2, 2, 2, 3, 2, 2, 2, 4, 2, 2, 2, 3, 2, 2, 2, 4} - -var kCodeLengthPrefixValue = [16]byte{0, 4, 3, 2, 0, 4, 3, 1, 0, 4, 3, 2, 0, 4, 3, 5} - -func decoderSetParameter(state *Reader, p int, value uint32) bool { - if state.state != stateUninited { - return false - } - switch p { - case decoderParamDisableRingBufferReallocation: - if !(value == 0) { - state.canny_ringbuffer_allocation = 0 - } else { - state.canny_ringbuffer_allocation = 1 - } - return true - - case decoderParamLargeWindow: - state.large_window = (!(value == 0)) - return true - - default: - return false - } -} - -/* Saves error code and converts it to BrotliDecoderResult. */ -func saveErrorCode(s *Reader, e int) int { - s.error_code = int(e) - switch e { - case decoderSuccess: - return decoderResultSuccess - - case decoderNeedsMoreInput: - return decoderResultNeedsMoreInput - - case decoderNeedsMoreOutput: - return decoderResultNeedsMoreOutput - - default: - return decoderResultError - } -} - -/* -Decodes WBITS by reading 1 - 7 bits, or 0x11 for "Large Window Brotli". - - Precondition: bit-reader accumulator has at least 8 bits. -*/ -func decodeWindowBits(s *Reader, br *bitReader) int { - var n uint32 - var large_window bool = s.large_window - s.large_window = false - takeBits(br, 1, &n) - if n == 0 { - s.window_bits = 16 - return decoderSuccess - } - - takeBits(br, 3, &n) - if n != 0 { - s.window_bits = 17 + n - return decoderSuccess - } - - takeBits(br, 3, &n) - if n == 1 { - if large_window { - takeBits(br, 1, &n) - if n == 1 { - return decoderErrorFormatWindowBits - } - - s.large_window = true - return decoderSuccess - } else { - return decoderErrorFormatWindowBits - } - } - - if n != 0 { - s.window_bits = 8 + n - return decoderSuccess - } - - s.window_bits = 17 - return decoderSuccess -} - -/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */ -func decodeVarLenUint8(s *Reader, br *bitReader, value *uint32) int { - var bits uint32 - switch s.substate_decode_uint8 { - case stateDecodeUint8None: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits == 0 { - *value = 0 - return decoderSuccess - } - fallthrough - - /* Fall through. */ - case stateDecodeUint8Short: - if !safeReadBits(br, 3, &bits) { - s.substate_decode_uint8 = stateDecodeUint8Short - return decoderNeedsMoreInput - } - - if bits == 0 { - *value = 1 - s.substate_decode_uint8 = stateDecodeUint8None - return decoderSuccess - } - - /* Use output value as a temporary storage. It MUST be persisted. */ - *value = bits - fallthrough - - /* Fall through. */ - case stateDecodeUint8Long: - if !safeReadBits(br, *value, &bits) { - s.substate_decode_uint8 = stateDecodeUint8Long - return decoderNeedsMoreInput - } - - *value = (1 << *value) + bits - s.substate_decode_uint8 = stateDecodeUint8None - return decoderSuccess - - default: - return decoderErrorUnreachable - } -} - -/* Decodes a metablock length and flags by reading 2 - 31 bits. */ -func decodeMetaBlockLength(s *Reader, br *bitReader) int { - var bits uint32 - var i int - for { - switch s.substate_metablock_header { - case stateMetablockHeaderNone: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - s.is_last_metablock = 1 - } else { - s.is_last_metablock = 0 - } - s.meta_block_remaining_len = 0 - s.is_uncompressed = 0 - s.is_metadata = 0 - if s.is_last_metablock == 0 { - s.substate_metablock_header = stateMetablockHeaderNibbles - break - } - - s.substate_metablock_header = stateMetablockHeaderEmpty - fallthrough - - /* Fall through. */ - case stateMetablockHeaderEmpty: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - } - - s.substate_metablock_header = stateMetablockHeaderNibbles - fallthrough - - /* Fall through. */ - case stateMetablockHeaderNibbles: - if !safeReadBits(br, 2, &bits) { - return decoderNeedsMoreInput - } - - s.size_nibbles = uint(byte(bits + 4)) - s.loop_counter = 0 - if bits == 3 { - s.is_metadata = 1 - s.substate_metablock_header = stateMetablockHeaderReserved - break - } - - s.substate_metablock_header = stateMetablockHeaderSize - fallthrough - - /* Fall through. */ - case stateMetablockHeaderSize: - i = s.loop_counter - - for ; i < int(s.size_nibbles); i++ { - if !safeReadBits(br, 4, &bits) { - s.loop_counter = i - return decoderNeedsMoreInput - } - - if uint(i+1) == s.size_nibbles && s.size_nibbles > 4 && bits == 0 { - return decoderErrorFormatExuberantNibble - } - - s.meta_block_remaining_len |= int(bits << uint(i*4)) - } - - s.substate_metablock_header = stateMetablockHeaderUncompressed - fallthrough - - /* Fall through. */ - case stateMetablockHeaderUncompressed: - if s.is_last_metablock == 0 { - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - s.is_uncompressed = 1 - } else { - s.is_uncompressed = 0 - } - } - - s.meta_block_remaining_len++ - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - - case stateMetablockHeaderReserved: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - return decoderErrorFormatReserved - } - - s.substate_metablock_header = stateMetablockHeaderBytes - fallthrough - - /* Fall through. */ - case stateMetablockHeaderBytes: - if !safeReadBits(br, 2, &bits) { - return decoderNeedsMoreInput - } - - if bits == 0 { - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - } - - s.size_nibbles = uint(byte(bits)) - s.substate_metablock_header = stateMetablockHeaderMetadata - fallthrough - - /* Fall through. */ - case stateMetablockHeaderMetadata: - i = s.loop_counter - - for ; i < int(s.size_nibbles); i++ { - if !safeReadBits(br, 8, &bits) { - s.loop_counter = i - return decoderNeedsMoreInput - } - - if uint(i+1) == s.size_nibbles && s.size_nibbles > 1 && bits == 0 { - return decoderErrorFormatExuberantMetaNibble - } - - s.meta_block_remaining_len |= int(bits << uint(i*8)) - } - - s.meta_block_remaining_len++ - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - - default: - return decoderErrorUnreachable - } - } -} - -/* -Decodes the Huffman code. - - This method doesn't read data from the bit reader, BUT drops the amount of - bits that correspond to the decoded symbol. - bits MUST contain at least 15 (BROTLI_HUFFMAN_MAX_CODE_LENGTH) valid bits. -*/ -func decodeSymbol(bits uint32, table []huffmanCode, br *bitReader) uint32 { - table = table[bits&huffmanTableMask:] - if table[0].bits > huffmanTableBits { - var nbits uint32 = uint32(table[0].bits) - huffmanTableBits - dropBits(br, huffmanTableBits) - table = table[uint32(table[0].value)+((bits>>huffmanTableBits)&bitMask(nbits)):] - } - - dropBits(br, uint32(table[0].bits)) - return uint32(table[0].value) -} - -/* -Reads and decodes the next Huffman code from bit-stream. - - This method peeks 16 bits of input and drops 0 - 15 of them. -*/ -func readSymbol(table []huffmanCode, br *bitReader) uint32 { - return decodeSymbol(get16BitsUnmasked(br), table, br) -} - -/* -Same as DecodeSymbol, but it is known that there is less than 15 bits of - - input are currently available. -*/ -func safeDecodeSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { - var val uint32 - var available_bits uint32 = getAvailableBits(br) - if available_bits == 0 { - if table[0].bits == 0 { - *result = uint32(table[0].value) - return true - } - - return false /* No valid bits at all. */ - } - - val = uint32(getBitsUnmasked(br)) - table = table[val&huffmanTableMask:] - if table[0].bits <= huffmanTableBits { - if uint32(table[0].bits) <= available_bits { - dropBits(br, uint32(table[0].bits)) - *result = uint32(table[0].value) - return true - } else { - return false /* Not enough bits for the first level. */ - } - } - - if available_bits <= huffmanTableBits { - return false /* Not enough bits to move to the second level. */ - } - - /* Speculatively drop HUFFMAN_TABLE_BITS. */ - val = (val & bitMask(uint32(table[0].bits))) >> huffmanTableBits - - available_bits -= huffmanTableBits - table = table[uint32(table[0].value)+val:] - if available_bits < uint32(table[0].bits) { - return false /* Not enough bits for the second level. */ - } - - dropBits(br, huffmanTableBits+uint32(table[0].bits)) - *result = uint32(table[0].value) - return true -} - -func safeReadSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { - var val uint32 - if safeGetBits(br, 15, &val) { - *result = decodeSymbol(val, table, br) - return true - } - - return safeDecodeSymbol(table, br, result) -} - -/* Makes a look-up in first level Huffman table. Peeks 8 bits. */ -func preloadSymbol(safe int, table []huffmanCode, br *bitReader, bits *uint32, value *uint32) { - if safe != 0 { - return - } - - table = table[getBits(br, huffmanTableBits):] - *bits = uint32(table[0].bits) - *value = uint32(table[0].value) -} - -/* -Decodes the next Huffman code using data prepared by PreloadSymbol. - - Reads 0 - 15 bits. Also peeks 8 following bits. -*/ -func readPreloadedSymbol(table []huffmanCode, br *bitReader, bits *uint32, value *uint32) uint32 { - var result uint32 = *value - var ext []huffmanCode - if *bits > huffmanTableBits { - var val uint32 = get16BitsUnmasked(br) - ext = table[val&huffmanTableMask:][*value:] - var mask uint32 = bitMask((*bits - huffmanTableBits)) - dropBits(br, huffmanTableBits) - ext = ext[(val>>huffmanTableBits)&mask:] - dropBits(br, uint32(ext[0].bits)) - result = uint32(ext[0].value) - } else { - dropBits(br, *bits) - } - - preloadSymbol(0, table, br, bits, value) - return result -} - -func log2Floor(x uint32) uint32 { - var result uint32 = 0 - for x != 0 { - x >>= 1 - result++ - } - - return result -} - -/* -Reads (s->symbol + 1) symbols. - - Totally 1..4 symbols are read, 1..11 bits each. - The list of symbols MUST NOT contain duplicates. -*/ -func readSimpleHuffmanSymbols(alphabet_size uint32, max_symbol uint32, s *Reader) int { - var br *bitReader = &s.br - var max_bits uint32 = log2Floor(alphabet_size - 1) - var i uint32 = s.sub_loop_counter - /* max_bits == 1..11; symbol == 0..3; 1..44 bits will be read. */ - - var num_symbols uint32 = s.symbol - for i <= num_symbols { - var v uint32 - if !safeReadBits(br, max_bits, &v) { - s.sub_loop_counter = i - s.substate_huffman = stateHuffmanSimpleRead - return decoderNeedsMoreInput - } - - if v >= max_symbol { - return decoderErrorFormatSimpleHuffmanAlphabet - } - - s.symbols_lists_array[i] = uint16(v) - i++ - } - - for i = 0; i < num_symbols; i++ { - var k uint32 = i + 1 - for ; k <= num_symbols; k++ { - if s.symbols_lists_array[i] == s.symbols_lists_array[k] { - return decoderErrorFormatSimpleHuffmanSame - } - } - } - - return decoderSuccess -} - -/* -Process single decoded symbol code length: - - A) reset the repeat variable - B) remember code length (if it is not 0) - C) extend corresponding index-chain - D) reduce the Huffman space - E) update the histogram -*/ -func processSingleCodeLength(code_len uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { - *repeat = 0 - if code_len != 0 { /* code_len == 1..15 */ - symbolListPut(symbol_lists, next_symbol[code_len], uint16(*symbol)) - next_symbol[code_len] = int(*symbol) - *prev_code_len = code_len - *space -= 32768 >> code_len - code_length_histo[code_len]++ - } - - (*symbol)++ -} - -/* -Process repeated symbol code length. - - A) Check if it is the extension of previous repeat sequence; if the decoded - value is not BROTLI_REPEAT_PREVIOUS_CODE_LENGTH, then it is a new - symbol-skip - B) Update repeat variable - C) Check if operation is feasible (fits alphabet) - D) For each symbol do the same operations as in ProcessSingleCodeLength - - PRECONDITION: code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH or - code_len == BROTLI_REPEAT_ZERO_CODE_LENGTH -*/ -func processRepeatedCodeLength(code_len uint32, repeat_delta uint32, alphabet_size uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, repeat_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { - var old_repeat uint32 /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ - var extra_bits uint32 = 3 - var new_len uint32 = 0 - if code_len == repeatPreviousCodeLength { - new_len = *prev_code_len - extra_bits = 2 - } - - if *repeat_code_len != new_len { - *repeat = 0 - *repeat_code_len = new_len - } - - old_repeat = *repeat - if *repeat > 0 { - *repeat -= 2 - *repeat <<= extra_bits - } - - *repeat += repeat_delta + 3 - repeat_delta = *repeat - old_repeat - if *symbol+repeat_delta > alphabet_size { - *symbol = alphabet_size - *space = 0xFFFFF - return - } - - if *repeat_code_len != 0 { - var last uint = uint(*symbol + repeat_delta) - var next int = next_symbol[*repeat_code_len] - for { - symbolListPut(symbol_lists, next, uint16(*symbol)) - next = int(*symbol) - (*symbol)++ - if (*symbol) == uint32(last) { - break - } - } - - next_symbol[*repeat_code_len] = next - *space -= repeat_delta << (15 - *repeat_code_len) - code_length_histo[*repeat_code_len] = uint16(uint32(code_length_histo[*repeat_code_len]) + repeat_delta) - } else { - *symbol += repeat_delta - } -} - -/* Reads and decodes symbol codelengths. */ -func readSymbolCodeLengths(alphabet_size uint32, s *Reader) int { - var br *bitReader = &s.br - var symbol uint32 = s.symbol - var repeat uint32 = s.repeat - var space uint32 = s.space - var prev_code_len uint32 = s.prev_code_len - var repeat_code_len uint32 = s.repeat_code_len - var symbol_lists symbolList = s.symbol_lists - var code_length_histo []uint16 = s.code_length_histo[:] - var next_symbol []int = s.next_symbol[:] - if !warmupBitReader(br) { - return decoderNeedsMoreInput - } - var p []huffmanCode - for symbol < alphabet_size && space > 0 { - p = s.table[:] - var code_len uint32 - if !checkInputAmount(br, shortFillBitWindowRead) { - s.symbol = symbol - s.repeat = repeat - s.prev_code_len = prev_code_len - s.repeat_code_len = repeat_code_len - s.space = space - return decoderNeedsMoreInput - } - - fillBitWindow16(br) - p = p[getBitsUnmasked(br)&uint64(bitMask(huffmanMaxCodeLengthCodeLength)):] - dropBits(br, uint32(p[0].bits)) /* Use 1..5 bits. */ - code_len = uint32(p[0].value) /* code_len == 0..17 */ - if code_len < repeatPreviousCodeLength { - processSingleCodeLength(code_len, &symbol, &repeat, &space, &prev_code_len, symbol_lists, code_length_histo, next_symbol) /* code_len == 16..17, extra_bits == 2..3 */ - } else { - var extra_bits uint32 - if code_len == repeatPreviousCodeLength { - extra_bits = 2 - } else { - extra_bits = 3 - } - var repeat_delta uint32 = uint32(getBitsUnmasked(br)) & bitMask(extra_bits) - dropBits(br, extra_bits) - processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &symbol, &repeat, &space, &prev_code_len, &repeat_code_len, symbol_lists, code_length_histo, next_symbol) - } - } - - s.space = space - return decoderSuccess -} - -func safeReadSymbolCodeLengths(alphabet_size uint32, s *Reader) int { - var br *bitReader = &s.br - var get_byte bool = false - var p []huffmanCode - for s.symbol < alphabet_size && s.space > 0 { - p = s.table[:] - var code_len uint32 - var available_bits uint32 - var bits uint32 = 0 - if get_byte && !pullByte(br) { - return decoderNeedsMoreInput - } - get_byte = false - available_bits = getAvailableBits(br) - if available_bits != 0 { - bits = uint32(getBitsUnmasked(br)) - } - - p = p[bits&bitMask(huffmanMaxCodeLengthCodeLength):] - if uint32(p[0].bits) > available_bits { - get_byte = true - continue - } - - code_len = uint32(p[0].value) /* code_len == 0..17 */ - if code_len < repeatPreviousCodeLength { - dropBits(br, uint32(p[0].bits)) - processSingleCodeLength(code_len, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) /* code_len == 16..17, extra_bits == 2..3 */ - } else { - var extra_bits uint32 = code_len - 14 - var repeat_delta uint32 = (bits >> p[0].bits) & bitMask(extra_bits) - if available_bits < uint32(p[0].bits)+extra_bits { - get_byte = true - continue - } - - dropBits(br, uint32(p[0].bits)+extra_bits) - processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, &s.repeat_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) - } - } - - return decoderSuccess -} - -/* -Reads and decodes 15..18 codes using static prefix code. - - Each code is 2..4 bits long. In total 30..72 bits are used. -*/ -func readCodeLengthCodeLengths(s *Reader) int { - var br *bitReader = &s.br - var num_codes uint32 = s.repeat - var space uint32 = s.space - var i uint32 = s.sub_loop_counter - for ; i < codeLengthCodes; i++ { - var code_len_idx byte = kCodeLengthCodeOrder[i] - var ix uint32 - var v uint32 - if !safeGetBits(br, 4, &ix) { - var available_bits uint32 = getAvailableBits(br) - if available_bits != 0 { - ix = uint32(getBitsUnmasked(br) & 0xF) - } else { - ix = 0 - } - - if uint32(kCodeLengthPrefixLength[ix]) > available_bits { - s.sub_loop_counter = i - s.repeat = num_codes - s.space = space - s.substate_huffman = stateHuffmanComplex - return decoderNeedsMoreInput - } - } - - v = uint32(kCodeLengthPrefixValue[ix]) - dropBits(br, uint32(kCodeLengthPrefixLength[ix])) - s.code_length_code_lengths[code_len_idx] = byte(v) - if v != 0 { - space = space - (32 >> v) - num_codes++ - s.code_length_histo[v]++ - if space-1 >= 32 { - /* space is 0 or wrapped around. */ - break - } - } - } - - if num_codes != 1 && space != 0 { - return decoderErrorFormatClSpace - } - - return decoderSuccess -} - -/* -Decodes the Huffman tables. - - There are 2 scenarios: - A) Huffman code contains only few symbols (1..4). Those symbols are read - directly; their code lengths are defined by the number of symbols. - For this scenario 4 - 49 bits will be read. - - B) 2-phase decoding: - B.1) Small Huffman table is decoded; it is specified with code lengths - encoded with predefined entropy code. 32 - 74 bits are used. - B.2) Decoded table is used to decode code lengths of symbols in resulting - Huffman table. In worst case 3520 bits are read. -*/ -func readHuffmanCode(alphabet_size uint32, max_symbol uint32, table []huffmanCode, opt_table_size *uint32, s *Reader) int { - var br *bitReader = &s.br - - /* Unnecessary masking, but might be good for safety. */ - alphabet_size &= 0x7FF - - /* State machine. */ - for { - switch s.substate_huffman { - case stateHuffmanNone: - if !safeReadBits(br, 2, &s.sub_loop_counter) { - return decoderNeedsMoreInput - } - - /* The value is used as follows: - 1 for simple code; - 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */ - if s.sub_loop_counter != 1 { - s.space = 32 - s.repeat = 0 /* num_codes */ - var i int - for i = 0; i <= huffmanMaxCodeLengthCodeLength; i++ { - s.code_length_histo[i] = 0 - } - - for i = 0; i < codeLengthCodes; i++ { - s.code_length_code_lengths[i] = 0 - } - - s.substate_huffman = stateHuffmanComplex - continue - } - fallthrough - - /* Read symbols, codes & code lengths directly. */ - case stateHuffmanSimpleSize: - if !safeReadBits(br, 2, &s.symbol) { /* num_symbols */ - s.substate_huffman = stateHuffmanSimpleSize - return decoderNeedsMoreInput - } - - s.sub_loop_counter = 0 - fallthrough - - case stateHuffmanSimpleRead: - { - var result int = readSimpleHuffmanSymbols(alphabet_size, max_symbol, s) - if result != decoderSuccess { - return result - } - } - fallthrough - - case stateHuffmanSimpleBuild: - var table_size uint32 - if s.symbol == 3 { - var bits uint32 - if !safeReadBits(br, 1, &bits) { - s.substate_huffman = stateHuffmanSimpleBuild - return decoderNeedsMoreInput - } - - s.symbol += bits - } - - table_size = buildSimpleHuffmanTable(table, huffmanTableBits, s.symbols_lists_array[:], s.symbol) - if opt_table_size != nil { - *opt_table_size = table_size - } - - s.substate_huffman = stateHuffmanNone - return decoderSuccess - - /* Decode Huffman-coded code lengths. */ - case stateHuffmanComplex: - { - var i uint32 - var result int = readCodeLengthCodeLengths(s) - if result != decoderSuccess { - return result - } - - buildCodeLengthsHuffmanTable(s.table[:], s.code_length_code_lengths[:], s.code_length_histo[:]) - for i = 0; i < 16; i++ { - s.code_length_histo[i] = 0 - } - - for i = 0; i <= huffmanMaxCodeLength; i++ { - s.next_symbol[i] = int(i) - (huffmanMaxCodeLength + 1) - symbolListPut(s.symbol_lists, s.next_symbol[i], 0xFFFF) - } - - s.symbol = 0 - s.prev_code_len = initialRepeatedCodeLength - s.repeat = 0 - s.repeat_code_len = 0 - s.space = 32768 - s.substate_huffman = stateHuffmanLengthSymbols - } - fallthrough - - case stateHuffmanLengthSymbols: - var table_size uint32 - var result int = readSymbolCodeLengths(max_symbol, s) - if result == decoderNeedsMoreInput { - result = safeReadSymbolCodeLengths(max_symbol, s) - } - - if result != decoderSuccess { - return result - } - - if s.space != 0 { - return decoderErrorFormatHuffmanSpace - } - - table_size = buildHuffmanTable(table, huffmanTableBits, s.symbol_lists, s.code_length_histo[:]) - if opt_table_size != nil { - *opt_table_size = table_size - } - - s.substate_huffman = stateHuffmanNone - return decoderSuccess - - default: - return decoderErrorUnreachable - } - } -} - -/* Decodes a block length by reading 3..39 bits. */ -func readBlockLength(table []huffmanCode, br *bitReader) uint32 { - var code uint32 - var nbits uint32 - code = readSymbol(table, br) - nbits = kBlockLengthPrefixCode[code].nbits /* nbits == 2..24 */ - return kBlockLengthPrefixCode[code].offset + readBits(br, nbits) -} - -/* -WARNING: if state is not BROTLI_STATE_READ_BLOCK_LENGTH_NONE, then - - reading can't be continued with ReadBlockLength. -*/ -func safeReadBlockLength(s *Reader, result *uint32, table []huffmanCode, br *bitReader) bool { - var index uint32 - if s.substate_read_block_length == stateReadBlockLengthNone { - if !safeReadSymbol(table, br, &index) { - return false - } - } else { - index = s.block_length_index - } - { - var bits uint32 /* nbits == 2..24 */ - var nbits uint32 = kBlockLengthPrefixCode[index].nbits - if !safeReadBits(br, nbits, &bits) { - s.block_length_index = index - s.substate_read_block_length = stateReadBlockLengthSuffix - return false - } - - *result = kBlockLengthPrefixCode[index].offset + bits - s.substate_read_block_length = stateReadBlockLengthNone - return true - } -} - -/* -Transform: - - 1. initialize list L with values 0, 1,... 255 - - 2. For each input element X: - 2.1) let Y = L[X] - 2.2) remove X-th element from L - 2.3) prepend Y to L - 2.4) append Y to output - - In most cases max(Y) <= 7, so most of L remains intact. - To reduce the cost of initialization, we reuse L, remember the upper bound - of Y values, and reinitialize only first elements in L. - - Most of input values are 0 and 1. To reduce number of branches, we replace - inner for loop with do-while. -*/ -func inverseMoveToFrontTransform(v []byte, v_len uint32, state *Reader) { - var mtf [256]byte - var i int - for i = 1; i < 256; i++ { - mtf[i] = byte(i) - } - var mtf_1 byte - - /* Transform the input. */ - for i = 0; uint32(i) < v_len; i++ { - var index int = int(v[i]) - var value byte = mtf[index] - v[i] = value - mtf_1 = value - for index >= 1 { - index-- - mtf[index+1] = mtf[index] - } - - mtf[0] = mtf_1 - } -} - -/* Decodes a series of Huffman table using ReadHuffmanCode function. */ -func huffmanTreeGroupDecode(group *huffmanTreeGroup, s *Reader) int { - if s.substate_tree_group != stateTreeGroupLoop { - s.next = group.codes - s.htree_index = 0 - s.substate_tree_group = stateTreeGroupLoop - } - - for s.htree_index < int(group.num_htrees) { - var table_size uint32 - var result int = readHuffmanCode(uint32(group.alphabet_size), uint32(group.max_symbol), s.next, &table_size, s) - if result != decoderSuccess { - return result - } - group.htrees[s.htree_index] = s.next - s.next = s.next[table_size:] - s.htree_index++ - } - - s.substate_tree_group = stateTreeGroupNone - return decoderSuccess -} - -/* -Decodes a context map. - - Decoding is done in 4 phases: - 1) Read auxiliary information (6..16 bits) and allocate memory. - In case of trivial context map, decoding is finished at this phase. - 2) Decode Huffman table using ReadHuffmanCode function. - This table will be used for reading context map items. - 3) Read context map items; "0" values could be run-length encoded. - 4) Optionally, apply InverseMoveToFront transform to the resulting map. -*/ -func decodeContextMap(context_map_size uint32, num_htrees *uint32, context_map_arg *[]byte, s *Reader) int { - var br *bitReader = &s.br - var result int = decoderSuccess - - switch int(s.substate_context_map) { - case stateContextMapNone: - result = decodeVarLenUint8(s, br, num_htrees) - if result != decoderSuccess { - return result - } - - (*num_htrees)++ - s.context_index = 0 - *context_map_arg = make([]byte, uint(context_map_size)) - if *context_map_arg == nil { - return decoderErrorAllocContextMap - } - - if *num_htrees <= 1 { - for i := 0; i < int(context_map_size); i++ { - (*context_map_arg)[i] = 0 - } - return decoderSuccess - } - - s.substate_context_map = stateContextMapReadPrefix - fallthrough - /* Fall through. */ - case stateContextMapReadPrefix: - { - var bits uint32 - - /* In next stage ReadHuffmanCode uses at least 4 bits, so it is safe - to peek 4 bits ahead. */ - if !safeGetBits(br, 5, &bits) { - return decoderNeedsMoreInput - } - - if bits&1 != 0 { /* Use RLE for zeros. */ - s.max_run_length_prefix = (bits >> 1) + 1 - dropBits(br, 5) - } else { - s.max_run_length_prefix = 0 - dropBits(br, 1) - } - - s.substate_context_map = stateContextMapHuffman - } - fallthrough - - /* Fall through. */ - case stateContextMapHuffman: - { - var alphabet_size uint32 = *num_htrees + s.max_run_length_prefix - result = readHuffmanCode(alphabet_size, alphabet_size, s.context_map_table[:], nil, s) - if result != decoderSuccess { - return result - } - s.code = 0xFFFF - s.substate_context_map = stateContextMapDecode - } - fallthrough - - /* Fall through. */ - case stateContextMapDecode: - { - var context_index uint32 = s.context_index - var max_run_length_prefix uint32 = s.max_run_length_prefix - var context_map []byte = *context_map_arg - var code uint32 = s.code - var skip_preamble bool = (code != 0xFFFF) - for context_index < context_map_size || skip_preamble { - if !skip_preamble { - if !safeReadSymbol(s.context_map_table[:], br, &code) { - s.code = 0xFFFF - s.context_index = context_index - return decoderNeedsMoreInput - } - - if code == 0 { - context_map[context_index] = 0 - context_index++ - continue - } - - if code > max_run_length_prefix { - context_map[context_index] = byte(code - max_run_length_prefix) - context_index++ - continue - } - } else { - skip_preamble = false - } - - /* RLE sub-stage. */ - { - var reps uint32 - if !safeReadBits(br, code, &reps) { - s.code = code - s.context_index = context_index - return decoderNeedsMoreInput - } - - reps += 1 << code - if context_index+reps > context_map_size { - return decoderErrorFormatContextMapRepeat - } - - for { - context_map[context_index] = 0 - context_index++ - reps-- - if reps == 0 { - break - } - } - } - } - } - fallthrough - - case stateContextMapTransform: - var bits uint32 - if !safeReadBits(br, 1, &bits) { - s.substate_context_map = stateContextMapTransform - return decoderNeedsMoreInput - } - - if bits != 0 { - inverseMoveToFrontTransform(*context_map_arg, context_map_size, s) - } - - s.substate_context_map = stateContextMapNone - return decoderSuccess - - default: - return decoderErrorUnreachable - } -} - -/* -Decodes a command or literal and updates block type ring-buffer. - - Reads 3..54 bits. -*/ -func decodeBlockTypeAndLength(safe int, s *Reader, tree_type int) bool { - var max_block_type uint32 = s.num_block_types[tree_type] - var type_tree []huffmanCode - type_tree = s.block_type_trees[tree_type*huffmanMaxSize258:] - var len_tree []huffmanCode - len_tree = s.block_len_trees[tree_type*huffmanMaxSize26:] - var br *bitReader = &s.br - var ringbuffer []uint32 = s.block_type_rb[tree_type*2:] - var block_type uint32 - if max_block_type <= 1 { - return false - } - - /* Read 0..15 + 3..39 bits. */ - if safe == 0 { - block_type = readSymbol(type_tree, br) - s.block_length[tree_type] = readBlockLength(len_tree, br) - } else { - var memento bitReaderState - bitReaderSaveState(br, &memento) - if !safeReadSymbol(type_tree, br, &block_type) { - return false - } - if !safeReadBlockLength(s, &s.block_length[tree_type], len_tree, br) { - s.substate_read_block_length = stateReadBlockLengthNone - bitReaderRestoreState(br, &memento) - return false - } - } - - if block_type == 1 { - block_type = ringbuffer[1] + 1 - } else if block_type == 0 { - block_type = ringbuffer[0] - } else { - block_type -= 2 - } - - if block_type >= max_block_type { - block_type -= max_block_type - } - - ringbuffer[0] = ringbuffer[1] - ringbuffer[1] = block_type - return true -} - -func detectTrivialLiteralBlockTypes(s *Reader) { - var i uint - for i = 0; i < 8; i++ { - s.trivial_literal_contexts[i] = 0 - } - for i = 0; uint32(i) < s.num_block_types[0]; i++ { - var offset uint = i << literalContextBits - var error uint = 0 - var sample uint = uint(s.context_map[offset]) - var j uint - for j = 0; j < 1<>5] |= 1 << (i & 31) - } - } -} - -func prepareLiteralDecoding(s *Reader) { - var context_mode byte - var trivial uint - var block_type uint32 = s.block_type_rb[1] - var context_offset uint32 = block_type << literalContextBits - s.context_map_slice = s.context_map[context_offset:] - trivial = uint(s.trivial_literal_contexts[block_type>>5]) - s.trivial_literal_context = int((trivial >> (block_type & 31)) & 1) - s.literal_htree = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[0]]) - context_mode = s.context_modes[block_type] & 3 - s.context_lookup = getContextLUT(int(context_mode)) -} - -/* -Decodes the block type and updates the state for literal context. - - Reads 3..54 bits. -*/ -func decodeLiteralBlockSwitchInternal(safe int, s *Reader) bool { - if !decodeBlockTypeAndLength(safe, s, 0) { - return false - } - - prepareLiteralDecoding(s) - return true -} - -func decodeLiteralBlockSwitch(s *Reader) { - decodeLiteralBlockSwitchInternal(0, s) -} - -func safeDecodeLiteralBlockSwitch(s *Reader) bool { - return decodeLiteralBlockSwitchInternal(1, s) -} - -/* -Block switch for insert/copy length. - - Reads 3..54 bits. -*/ -func decodeCommandBlockSwitchInternal(safe int, s *Reader) bool { - if !decodeBlockTypeAndLength(safe, s, 1) { - return false - } - - s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[s.block_type_rb[3]]) - return true -} - -func decodeCommandBlockSwitch(s *Reader) { - decodeCommandBlockSwitchInternal(0, s) -} - -func safeDecodeCommandBlockSwitch(s *Reader) bool { - return decodeCommandBlockSwitchInternal(1, s) -} - -/* -Block switch for distance codes. - - Reads 3..54 bits. -*/ -func decodeDistanceBlockSwitchInternal(safe int, s *Reader) bool { - if !decodeBlockTypeAndLength(safe, s, 2) { - return false - } - - s.dist_context_map_slice = s.dist_context_map[s.block_type_rb[5]< s.ringbuffer_size { - pos = uint(s.ringbuffer_size) - } else { - pos = uint(s.pos) - } - var partial_pos_rb uint = (s.rb_roundtrips * uint(s.ringbuffer_size)) + pos - return partial_pos_rb - s.partial_pos_out -} - -/* -Dumps output. - - Returns BROTLI_DECODER_NEEDS_MORE_OUTPUT only if there is more output to push - and either ring-buffer is as big as window size, or |force| is true. -*/ -func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out *uint, force bool) int { - var start []byte - start = s.ringbuffer[s.partial_pos_out&uint(s.ringbuffer_mask):] - var to_write uint = unwrittenBytes(s, true) - var num_written uint = *available_out - if num_written > to_write { - num_written = to_write - } - - if s.meta_block_remaining_len < 0 { - return decoderErrorFormatBlockLength1 - } - - if next_out != nil && *next_out == nil { - *next_out = start - } else { - if next_out != nil { - copy(*next_out, start[:num_written]) - *next_out = (*next_out)[num_written:] - } - } - - *available_out -= num_written - s.partial_pos_out += num_written - if total_out != nil { - *total_out = s.partial_pos_out - } - - if num_written < to_write { - if s.ringbuffer_size == 1<= s.ringbuffer_size { - s.pos -= s.ringbuffer_size - s.rb_roundtrips++ - if uint(s.pos) != 0 { - s.should_wrap_ringbuffer = 1 - } else { - s.should_wrap_ringbuffer = 0 - } - } - - return decoderSuccess -} - -func wrapRingBuffer(s *Reader) { - if s.should_wrap_ringbuffer != 0 { - copy(s.ringbuffer, s.ringbuffer_end[:uint(s.pos)]) - s.should_wrap_ringbuffer = 0 - } -} - -/* -Allocates ring-buffer. - - s->ringbuffer_size MUST be updated by BrotliCalculateRingBufferSize before - this function is called. - - Last two bytes of ring-buffer are initialized to 0, so context calculation - could be done uniformly for the first two and all other positions. -*/ -func ensureRingBuffer(s *Reader) bool { - var old_ringbuffer []byte = s.ringbuffer - if s.ringbuffer_size == s.new_ringbuffer_size { - return true - } - - s.ringbuffer = make([]byte, uint(s.new_ringbuffer_size)+uint(kRingBufferWriteAheadSlack)) - if s.ringbuffer == nil { - /* Restore previous value. */ - s.ringbuffer = old_ringbuffer - - return false - } - - s.ringbuffer[s.new_ringbuffer_size-2] = 0 - s.ringbuffer[s.new_ringbuffer_size-1] = 0 - - if !(old_ringbuffer == nil) { - copy(s.ringbuffer, old_ringbuffer[:uint(s.pos)]) - - old_ringbuffer = nil - } - - s.ringbuffer_size = s.new_ringbuffer_size - s.ringbuffer_mask = s.new_ringbuffer_size - 1 - s.ringbuffer_end = s.ringbuffer[s.ringbuffer_size:] - - return true -} - -func copyUncompressedBlockToOutput(available_out *uint, next_out *[]byte, total_out *uint, s *Reader) int { - /* TODO: avoid allocation for single uncompressed block. */ - if !ensureRingBuffer(s) { - return decoderErrorAllocRingBuffer1 - } - - /* State machine */ - for { - switch s.substate_uncompressed { - case stateUncompressedNone: - { - var nbytes int = int(getRemainingBytes(&s.br)) - if nbytes > s.meta_block_remaining_len { - nbytes = s.meta_block_remaining_len - } - - if s.pos+nbytes > s.ringbuffer_size { - nbytes = s.ringbuffer_size - s.pos - } - - /* Copy remaining bytes from s->br.buf_ to ring-buffer. */ - copyBytes(s.ringbuffer[s.pos:], &s.br, uint(nbytes)) - - s.pos += nbytes - s.meta_block_remaining_len -= nbytes - if s.pos < 1<>1 >= min_size { - new_ringbuffer_size >>= 1 - } - } - - s.new_ringbuffer_size = new_ringbuffer_size -} - -/* Reads 1..256 2-bit context modes. */ -func readContextModes(s *Reader) int { - var br *bitReader = &s.br - var i int = s.loop_counter - - for i < int(s.num_block_types[0]) { - var bits uint32 - if !safeReadBits(br, 2, &bits) { - s.loop_counter = i - return decoderNeedsMoreInput - } - - s.context_modes[i] = byte(bits) - i++ - } - - return decoderSuccess -} - -func takeDistanceFromRingBuffer(s *Reader) { - if s.distance_code == 0 { - s.dist_rb_idx-- - s.distance_code = s.dist_rb[s.dist_rb_idx&3] - - /* Compensate double distance-ring-buffer roll for dictionary items. */ - s.distance_context = 1 - } else { - var distance_code int = s.distance_code << 1 - const kDistanceShortCodeIndexOffset uint32 = 0xAAAFFF1B - const kDistanceShortCodeValueOffset uint32 = 0xFA5FA500 - var v int = (s.dist_rb_idx + int(kDistanceShortCodeIndexOffset>>uint(distance_code))) & 0x3 - /* kDistanceShortCodeIndexOffset has 2-bit values from LSB: - 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 */ - - /* kDistanceShortCodeValueOffset has 2-bit values from LSB: - -0, 0,-0, 0,-1, 1,-2, 2,-3, 3,-1, 1,-2, 2,-3, 3 */ - s.distance_code = s.dist_rb[v] - - v = int(kDistanceShortCodeValueOffset>>uint(distance_code)) & 0x3 - if distance_code&0x3 != 0 { - s.distance_code += v - } else { - s.distance_code -= v - if s.distance_code <= 0 { - /* A huge distance will cause a () soon. - This is a little faster than failing here. */ - s.distance_code = 0x7FFFFFFF - } - } - } -} - -func safeReadBitsMaybeZero(br *bitReader, n_bits uint32, val *uint32) bool { - if n_bits != 0 { - return safeReadBits(br, n_bits, val) - } else { - *val = 0 - return true - } -} - -/* Precondition: s->distance_code < 0. */ -func readDistanceInternal(safe int, s *Reader, br *bitReader) bool { - var distval int - var memento bitReaderState - var distance_tree []huffmanCode = []huffmanCode(s.distance_hgroup.htrees[s.dist_htree_index]) - if safe == 0 { - s.distance_code = int(readSymbol(distance_tree, br)) - } else { - var code uint32 - bitReaderSaveState(br, &memento) - if !safeReadSymbol(distance_tree, br, &code) { - return false - } - - s.distance_code = int(code) - } - - /* Convert the distance code to the actual distance by possibly - looking up past distances from the s->ringbuffer. */ - s.distance_context = 0 - - if s.distance_code&^0xF == 0 { - takeDistanceFromRingBuffer(s) - s.block_length[2]-- - return true - } - - distval = s.distance_code - int(s.num_direct_distance_codes) - if distval >= 0 { - var nbits uint32 - var postfix int - var offset int - if safe == 0 && (s.distance_postfix_bits == 0) { - nbits = (uint32(distval) >> 1) + 1 - offset = ((2 + (distval & 1)) << nbits) - 4 - s.distance_code = int(s.num_direct_distance_codes) + offset + int(readBits(br, nbits)) - } else { - /* This branch also works well when s->distance_postfix_bits == 0. */ - var bits uint32 - postfix = distval & s.distance_postfix_mask - distval >>= s.distance_postfix_bits - nbits = (uint32(distval) >> 1) + 1 - if safe != 0 { - if !safeReadBitsMaybeZero(br, nbits, &bits) { - s.distance_code = -1 /* Restore precondition. */ - bitReaderRestoreState(br, &memento) - return false - } - } else { - bits = readBits(br, nbits) - } - - offset = ((2 + (distval & 1)) << nbits) - 4 - s.distance_code = int(s.num_direct_distance_codes) + ((offset + int(bits)) << s.distance_postfix_bits) + postfix - } - } - - s.distance_code = s.distance_code - numDistanceShortCodes + 1 - s.block_length[2]-- - return true -} - -func readDistance(s *Reader, br *bitReader) { - readDistanceInternal(0, s, br) -} - -func safeReadDistance(s *Reader, br *bitReader) bool { - return readDistanceInternal(1, s, br) -} - -func readCommandInternal(safe int, s *Reader, br *bitReader, insert_length *int) bool { - var cmd_code uint32 - var insert_len_extra uint32 = 0 - var copy_length uint32 - var v cmdLutElement - var memento bitReaderState - if safe == 0 { - cmd_code = readSymbol(s.htree_command, br) - } else { - bitReaderSaveState(br, &memento) - if !safeReadSymbol(s.htree_command, br, &cmd_code) { - return false - } - } - - v = kCmdLut[cmd_code] - s.distance_code = int(v.distance_code) - s.distance_context = int(v.context) - s.dist_htree_index = s.dist_context_map_slice[s.distance_context] - *insert_length = int(v.insert_len_offset) - if safe == 0 { - if v.insert_len_extra_bits != 0 { - insert_len_extra = readBits(br, uint32(v.insert_len_extra_bits)) - } - - copy_length = readBits(br, uint32(v.copy_len_extra_bits)) - } else { - if !safeReadBitsMaybeZero(br, uint32(v.insert_len_extra_bits), &insert_len_extra) || !safeReadBitsMaybeZero(br, uint32(v.copy_len_extra_bits), ©_length) { - bitReaderRestoreState(br, &memento) - return false - } - } - - s.copy_length = int(copy_length) + int(v.copy_len_offset) - s.block_length[1]-- - *insert_length += int(insert_len_extra) - return true -} - -func readCommand(s *Reader, br *bitReader, insert_length *int) { - readCommandInternal(0, s, br, insert_length) -} - -func safeReadCommand(s *Reader, br *bitReader, insert_length *int) bool { - return readCommandInternal(1, s, br, insert_length) -} - -func checkInputAmountMaybeSafe(safe int, br *bitReader, num uint) bool { - if safe != 0 { - return true - } - - return checkInputAmount(br, num) -} - -func processCommandsInternal(safe int, s *Reader) int { - var pos int = s.pos - var i int = s.loop_counter - var result int = decoderSuccess - var br *bitReader = &s.br - var hc []huffmanCode - - if !checkInputAmountMaybeSafe(safe, br, 28) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if safe == 0 { - warmupBitReader(br) - } - - /* Jump into state machine. */ - if s.state == stateCommandBegin { - goto CommandBegin - } else if s.state == stateCommandInner { - goto CommandInner - } else if s.state == stateCommandPostDecodeLiterals { - goto CommandPostDecodeLiterals - } else if s.state == stateCommandPostWrapCopy { - goto CommandPostWrapCopy - } else { - return decoderErrorUnreachable - } - -CommandBegin: - if safe != 0 { - s.state = stateCommandBegin - } - - if !checkInputAmountMaybeSafe(safe, br, 28) { /* 156 bits + 7 bytes */ - s.state = stateCommandBegin - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if s.block_length[1] == 0 { - if safe != 0 { - if !safeDecodeCommandBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeCommandBlockSwitch(s) - } - - goto CommandBegin - } - - /* Read the insert/copy length in the command. */ - if safe != 0 { - if !safeReadCommand(s, br, &i) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - readCommand(s, br, &i) - } - - if i == 0 { - goto CommandPostDecodeLiterals - } - - s.meta_block_remaining_len -= i - -CommandInner: - if safe != 0 { - s.state = stateCommandInner - } - - /* Read the literals in the command. */ - if s.trivial_literal_context != 0 { - var bits uint32 - var value uint32 - preloadSymbol(safe, s.literal_htree, br, &bits, &value) - for { - if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ - s.state = stateCommandInner - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if s.block_length[0] == 0 { - if safe != 0 { - if !safeDecodeLiteralBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeLiteralBlockSwitch(s) - } - - preloadSymbol(safe, s.literal_htree, br, &bits, &value) - if s.trivial_literal_context == 0 { - goto CommandInner - } - } - - if safe == 0 { - s.ringbuffer[pos] = byte(readPreloadedSymbol(s.literal_htree, br, &bits, &value)) - } else { - var literal uint32 - if !safeReadSymbol(s.literal_htree, br, &literal) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - s.ringbuffer[pos] = byte(literal) - } - - s.block_length[0]-- - pos++ - if pos == s.ringbuffer_size { - s.state = stateCommandInnerWrite - i-- - goto saveStateAndReturn - } - i-- - if i == 0 { - break - } - } - } else { - var p1 byte = s.ringbuffer[(pos-1)&s.ringbuffer_mask] - var p2 byte = s.ringbuffer[(pos-2)&s.ringbuffer_mask] - for { - var context byte - if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ - s.state = stateCommandInner - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if s.block_length[0] == 0 { - if safe != 0 { - if !safeDecodeLiteralBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeLiteralBlockSwitch(s) - } - - if s.trivial_literal_context != 0 { - goto CommandInner - } - } - - context = getContext(p1, p2, s.context_lookup) - hc = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[context]]) - p2 = p1 - if safe == 0 { - p1 = byte(readSymbol(hc, br)) - } else { - var literal uint32 - if !safeReadSymbol(hc, br, &literal) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - p1 = byte(literal) - } - - s.ringbuffer[pos] = p1 - s.block_length[0]-- - pos++ - if pos == s.ringbuffer_size { - s.state = stateCommandInnerWrite - i-- - goto saveStateAndReturn - } - i-- - if i == 0 { - break - } - } - } - - if s.meta_block_remaining_len <= 0 { - s.state = stateMetablockDone - goto saveStateAndReturn - } - -CommandPostDecodeLiterals: - if safe != 0 { - s.state = stateCommandPostDecodeLiterals - } - - if s.distance_code >= 0 { - /* Implicit distance case. */ - if s.distance_code != 0 { - s.distance_context = 0 - } else { - s.distance_context = 1 - } - - s.dist_rb_idx-- - s.distance_code = s.dist_rb[s.dist_rb_idx&3] - } else { - /* Read distance code in the command, unless it was implicitly zero. */ - if s.block_length[2] == 0 { - if safe != 0 { - if !safeDecodeDistanceBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeDistanceBlockSwitch(s) - } - } - - if safe != 0 { - if !safeReadDistance(s, br) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - readDistance(s, br) - } - } - - if s.max_distance != s.max_backward_distance { - if pos < s.max_backward_distance { - s.max_distance = pos - } else { - s.max_distance = s.max_backward_distance - } - } - - i = s.copy_length - - /* Apply copy of LZ77 back-reference, or static dictionary reference if - the distance is larger than the max LZ77 distance */ - if s.distance_code > s.max_distance { - /* The maximum allowed distance is BROTLI_MAX_ALLOWED_DISTANCE = 0x7FFFFFFC. - With this choice, no signed overflow can occur after decoding - a special distance code (e.g., after adding 3 to the last distance). */ - if s.distance_code > maxAllowedDistance { - return decoderErrorFormatDistance - } - - if i >= minDictionaryWordLength && i <= maxDictionaryWordLength { - var address int = s.distance_code - s.max_distance - 1 - var words *dictionary = s.dictionary - var trans *transforms = s.transforms - var offset int = int(s.dictionary.offsets_by_length[i]) - var shift uint32 = uint32(s.dictionary.size_bits_by_length[i]) - var mask int = int(bitMask(shift)) - var word_idx int = address & mask - var transform_idx int = address >> shift - - /* Compensate double distance-ring-buffer roll. */ - s.dist_rb_idx += s.distance_context - - offset += word_idx * i - if words.data == nil { - return decoderErrorDictionaryNotSet - } - - if transform_idx < int(trans.num_transforms) { - var word []byte - word = words.data[offset:] - var len int = i - if transform_idx == int(trans.cutOffTransforms[0]) { - copy(s.ringbuffer[pos:], word[:uint(len)]) - } else { - len = transformDictionaryWord(s.ringbuffer[pos:], word, int(len), trans, transform_idx) - } - - pos += int(len) - s.meta_block_remaining_len -= int(len) - if pos >= s.ringbuffer_size { - s.state = stateCommandPostWrite1 - goto saveStateAndReturn - } - } else { - return decoderErrorFormatTransform - } - } else { - return decoderErrorFormatDictionary - } - } else { - var src_start int = (pos - s.distance_code) & s.ringbuffer_mask - var copy_dst []byte - copy_dst = s.ringbuffer[pos:] - var copy_src []byte - copy_src = s.ringbuffer[src_start:] - var dst_end int = pos + i - var src_end int = src_start + i - - /* Update the recent distances cache. */ - s.dist_rb[s.dist_rb_idx&3] = s.distance_code - - s.dist_rb_idx++ - s.meta_block_remaining_len -= i - - /* There are 32+ bytes of slack in the ring-buffer allocation. - Also, we have 16 short codes, that make these 16 bytes irrelevant - in the ring-buffer. Let's copy over them as a first guess. */ - copy(copy_dst, copy_src[:16]) - - if src_end > pos && dst_end > src_start { - /* Regions intersect. */ - goto CommandPostWrapCopy - } - - if dst_end >= s.ringbuffer_size || src_end >= s.ringbuffer_size { - /* At least one region wraps. */ - goto CommandPostWrapCopy - } - - pos += i - if i > 16 { - if i > 32 { - copy(copy_dst[16:], copy_src[16:][:uint(i-16)]) - } else { - /* This branch covers about 45% cases. - Fixed size short copy allows more compiler optimizations. */ - copy(copy_dst[16:], copy_src[16:][:16]) - } - } - } - - if s.meta_block_remaining_len <= 0 { - /* Next metablock, if any. */ - s.state = stateMetablockDone - - goto saveStateAndReturn - } else { - goto CommandBegin - } -CommandPostWrapCopy: - { - var wrap_guard int = s.ringbuffer_size - pos - for { - i-- - if i < 0 { - break - } - s.ringbuffer[pos] = s.ringbuffer[(pos-s.distance_code)&s.ringbuffer_mask] - pos++ - wrap_guard-- - if wrap_guard == 0 { - s.state = stateCommandPostWrite2 - goto saveStateAndReturn - } - } - } - - if s.meta_block_remaining_len <= 0 { - /* Next metablock, if any. */ - s.state = stateMetablockDone - - goto saveStateAndReturn - } else { - goto CommandBegin - } - -saveStateAndReturn: - s.pos = pos - s.loop_counter = i - return result -} - -func processCommands(s *Reader) int { - return processCommandsInternal(0, s) -} - -func safeProcessCommands(s *Reader) int { - return processCommandsInternal(1, s) -} - -/* Returns the maximum number of distance symbols which can only represent - distances not exceeding BROTLI_MAX_ALLOWED_DISTANCE. */ - -var maxDistanceSymbol_bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} -var maxDistanceSymbol_diff = [maxNpostfix + 1]uint32{73, 126, 228, 424} - -func maxDistanceSymbol(ndirect uint32, npostfix uint32) uint32 { - var postfix uint32 = 1 << npostfix - if ndirect < maxDistanceSymbol_bound[npostfix] { - return ndirect + maxDistanceSymbol_diff[npostfix] + postfix - } else if ndirect > maxDistanceSymbol_bound[npostfix]+postfix { - return ndirect + maxDistanceSymbol_diff[npostfix] - } else { - return maxDistanceSymbol_bound[npostfix] + maxDistanceSymbol_diff[npostfix] + postfix - } -} - -/* -Invariant: input stream is never overconsumed: - - invalid input implies that the whole stream is invalid -> any amount of - input could be read and discarded - - when result is "needs more input", then at least one more byte is REQUIRED - to complete decoding; all input data MUST be consumed by decoder, so - client could swap the input buffer - - when result is "needs more output" decoder MUST ensure that it doesn't - hold more than 7 bits in bit reader; this saves client from swapping input - buffer ahead of time - - when result is "success" decoder MUST return all unused data back to input - buffer; this is possible because the invariant is held on enter -*/ -func decoderDecompressStream(s *Reader, available_in *uint, next_in *[]byte, available_out *uint, next_out *[]byte) int { - var result int = decoderSuccess - var br *bitReader = &s.br - - /* Do not try to process further in a case of unrecoverable error. */ - if int(s.error_code) < 0 { - return decoderResultError - } - - if *available_out != 0 && (next_out == nil || *next_out == nil) { - return saveErrorCode(s, decoderErrorInvalidArguments) - } - - if *available_out == 0 { - next_out = nil - } - if s.buffer_length == 0 { /* Just connect bit reader to input stream. */ - br.input_len = *available_in - br.input = *next_in - br.byte_pos = 0 - } else { - /* At least one byte of input is required. More than one byte of input may - be required to complete the transaction -> reading more data must be - done in a loop -> do it in a main loop. */ - result = decoderNeedsMoreInput - - br.input = s.buffer.u8[:] - br.byte_pos = 0 - } - - /* State machine */ - for { - if result != decoderSuccess { - /* Error, needs more input/output. */ - if result == decoderNeedsMoreInput { - if s.ringbuffer != nil { /* Pro-actively push output. */ - var intermediate_result int = writeRingBuffer(s, available_out, next_out, nil, true) - - /* WriteRingBuffer checks s->meta_block_remaining_len validity. */ - if int(intermediate_result) < 0 { - result = intermediate_result - break - } - } - - if s.buffer_length != 0 { /* Used with internal buffer. */ - if br.byte_pos == br.input_len { - /* Successfully finished read transaction. - Accumulator contains less than 8 bits, because internal buffer - is expanded byte-by-byte until it is enough to complete read. */ - s.buffer_length = 0 - - /* Switch to input stream and restart. */ - result = decoderSuccess - - br.input_len = *available_in - br.input = *next_in - br.byte_pos = 0 - continue - } else if *available_in != 0 { - /* Not enough data in buffer, but can take one more byte from - input stream. */ - result = decoderSuccess - - s.buffer.u8[s.buffer_length] = (*next_in)[0] - s.buffer_length++ - br.input_len = uint(s.buffer_length) - *next_in = (*next_in)[1:] - (*available_in)-- - - /* Retry with more data in buffer. */ - continue - } - - /* Can't finish reading and no more input. */ - break - /* Input stream doesn't contain enough input. */ - } else { - /* Copy tail to internal buffer and return. */ - *next_in = br.input[br.byte_pos:] - - *available_in = br.input_len - br.byte_pos - for *available_in != 0 { - s.buffer.u8[s.buffer_length] = (*next_in)[0] - s.buffer_length++ - *next_in = (*next_in)[1:] - (*available_in)-- - } - - break - } - } - - /* Unreachable. */ - - /* Fail or needs more output. */ - if s.buffer_length != 0 { - /* Just consumed the buffered input and produced some output. Otherwise - it would result in "needs more input". Reset internal buffer. */ - s.buffer_length = 0 - } else { - /* Using input stream in last iteration. When decoder switches to input - stream it has less than 8 bits in accumulator, so it is safe to - return unused accumulator bits there. */ - bitReaderUnload(br) - - *available_in = br.input_len - br.byte_pos - *next_in = br.input[br.byte_pos:] - } - - break - } - - switch s.state { - /* Prepare to the first read. */ - case stateUninited: - if !warmupBitReader(br) { - result = decoderNeedsMoreInput - break - } - - /* Decode window size. */ - result = decodeWindowBits(s, br) /* Reads 1..8 bits. */ - if result != decoderSuccess { - break - } - - if s.large_window { - s.state = stateLargeWindowBits - break - } - - s.state = stateInitialize - - case stateLargeWindowBits: - if !safeReadBits(br, 6, &s.window_bits) { - result = decoderNeedsMoreInput - break - } - - if s.window_bits < largeMinWbits || s.window_bits > largeMaxWbits { - result = decoderErrorFormatWindowBits - break - } - - s.state = stateInitialize - fallthrough - - /* Maximum distance, see section 9.1. of the spec. */ - /* Fall through. */ - case stateInitialize: - s.max_backward_distance = (1 << s.window_bits) - windowGap - - /* Allocate memory for both block_type_trees and block_len_trees. */ - s.block_type_trees = make([]huffmanCode, (3 * (huffmanMaxSize258 + huffmanMaxSize26))) - - if s.block_type_trees == nil { - result = decoderErrorAllocBlockTypeTrees - break - } - - s.block_len_trees = s.block_type_trees[3*huffmanMaxSize258:] - - s.state = stateMetablockBegin - fallthrough - - /* Fall through. */ - case stateMetablockBegin: - decoderStateMetablockBegin(s) - - s.state = stateMetablockHeader - fallthrough - - /* Fall through. */ - case stateMetablockHeader: - result = decodeMetaBlockLength(s, br) - /* Reads 2 - 31 bits. */ - if result != decoderSuccess { - break - } - - if s.is_metadata != 0 || s.is_uncompressed != 0 { - if !bitReaderJumpToByteBoundary(br) { - result = decoderErrorFormatPadding1 - break - } - } - - if s.is_metadata != 0 { - s.state = stateMetadata - break - } - - if s.meta_block_remaining_len == 0 { - s.state = stateMetablockDone - break - } - - calculateRingBufferSize(s) - if s.is_uncompressed != 0 { - s.state = stateUncompressed - break - } - - s.loop_counter = 0 - s.state = stateHuffmanCode0 - - case stateUncompressed: - result = copyUncompressedBlockToOutput(available_out, next_out, nil, s) - if result == decoderSuccess { - s.state = stateMetablockDone - } - - case stateMetadata: - for ; s.meta_block_remaining_len > 0; s.meta_block_remaining_len-- { - var bits uint32 - - /* Read one byte and ignore it. */ - if !safeReadBits(br, 8, &bits) { - result = decoderNeedsMoreInput - break - } - } - - if result == decoderSuccess { - s.state = stateMetablockDone - } - - case stateHuffmanCode0: - if s.loop_counter >= 3 { - s.state = stateMetablockHeader2 - break - } - - /* Reads 1..11 bits. */ - result = decodeVarLenUint8(s, br, &s.num_block_types[s.loop_counter]) - - if result != decoderSuccess { - break - } - - s.num_block_types[s.loop_counter]++ - if s.num_block_types[s.loop_counter] < 2 { - s.loop_counter++ - break - } - - s.state = stateHuffmanCode1 - fallthrough - - case stateHuffmanCode1: - { - var alphabet_size uint32 = s.num_block_types[s.loop_counter] + 2 - var tree_offset int = s.loop_counter * huffmanMaxSize258 - result = readHuffmanCode(alphabet_size, alphabet_size, s.block_type_trees[tree_offset:], nil, s) - if result != decoderSuccess { - break - } - s.state = stateHuffmanCode2 - } - fallthrough - - case stateHuffmanCode2: - { - var alphabet_size uint32 = numBlockLenSymbols - var tree_offset int = s.loop_counter * huffmanMaxSize26 - result = readHuffmanCode(alphabet_size, alphabet_size, s.block_len_trees[tree_offset:], nil, s) - if result != decoderSuccess { - break - } - s.state = stateHuffmanCode3 - } - fallthrough - - case stateHuffmanCode3: - var tree_offset int = s.loop_counter * huffmanMaxSize26 - if !safeReadBlockLength(s, &s.block_length[s.loop_counter], s.block_len_trees[tree_offset:], br) { - result = decoderNeedsMoreInput - break - } - - s.loop_counter++ - s.state = stateHuffmanCode0 - - case stateMetablockHeader2: - { - var bits uint32 - if !safeReadBits(br, 6, &bits) { - result = decoderNeedsMoreInput - break - } - - s.distance_postfix_bits = bits & bitMask(2) - bits >>= 2 - s.num_direct_distance_codes = numDistanceShortCodes + (bits << s.distance_postfix_bits) - s.distance_postfix_mask = int(bitMask(s.distance_postfix_bits)) - s.context_modes = make([]byte, uint(s.num_block_types[0])) - if s.context_modes == nil { - result = decoderErrorAllocContextModes - break - } - - s.loop_counter = 0 - s.state = stateContextModes - } - fallthrough - - case stateContextModes: - result = readContextModes(s) - - if result != decoderSuccess { - break - } - - s.state = stateContextMap1 - fallthrough - - case stateContextMap1: - result = decodeContextMap(s.num_block_types[0]<= 3 { - prepareLiteralDecoding(s) - s.dist_context_map_slice = s.dist_context_map - s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[0]) - if !ensureRingBuffer(s) { - result = decoderErrorAllocRingBuffer2 - break - } - - s.state = stateCommandBegin - } - - case stateCommandBegin, stateCommandInner, stateCommandPostDecodeLiterals, stateCommandPostWrapCopy: - result = processCommands(s) - - if result == decoderNeedsMoreInput { - result = safeProcessCommands(s) - } - - case stateCommandInnerWrite, stateCommandPostWrite1, stateCommandPostWrite2: - result = writeRingBuffer(s, available_out, next_out, nil, false) - - if result != decoderSuccess { - break - } - - wrapRingBuffer(s) - if s.ringbuffer_size == 1<= uint64(block_size) { - return 0 - } - return block_size - uint(delta) -} - -/* -Wraps 64-bit input position to 32-bit ring-buffer position preserving - - "not-a-first-lap" feature. -*/ -func wrapPosition(position uint64) uint32 { - var result uint32 = uint32(position) - var gb uint64 = position >> 30 - if gb > 2 { - /* Wrap every 2GiB; The first 3GB are continuous. */ - result = result&((1<<30)-1) | (uint32((gb-1)&1)+1)<<30 - } - - return result -} - -func hashTableSize(max_table_size uint, input_size uint) uint { - var htsize uint = 256 - for htsize < max_table_size && htsize < input_size { - htsize <<= 1 - } - - return htsize -} - -func getHashTable(s *Writer, quality int, input_size uint, table_size *uint) []int { - var max_table_size uint = maxHashTableSize(quality) - var htsize uint = hashTableSize(max_table_size, input_size) - /* Use smaller hash table when input.size() is smaller, since we - fill the table, incurring O(hash table size) overhead for - compression, and if the input is short, we won't need that - many hash table entries anyway. */ - - var table []int - assert(max_table_size >= 256) - if quality == fastOnePassCompressionQuality { - /* Only odd shifts are supported by fast-one-pass. */ - if htsize&0xAAAAA == 0 { - htsize <<= 1 - } - } - - if htsize <= uint(len(s.small_table_)) { - table = s.small_table_[:] - } else { - if htsize > s.large_table_size_ { - s.large_table_size_ = htsize - s.large_table_ = nil - s.large_table_ = make([]int, htsize) - } - - table = s.large_table_ - } - - *table_size = htsize - for i := 0; i < int(htsize); i++ { - table[i] = 0 - } - return table -} - -func encodeWindowBits(lgwin int, large_window bool, bw *bitWriter) { - if large_window { - bw.writeBits(14, uint64((lgwin&0x3F)<<8|0x11)) - } else { - if lgwin == 16 { - bw.writeBits(1, 0) - } else if lgwin == 17 { - bw.writeBits(7, 1) - } else if lgwin > 17 { - bw.writeBits(4, uint64((lgwin-17)<<1|0x01)) - } else { - bw.writeBits(7, uint64((lgwin-8)<<4|0x01)) - } - } -} - -/* Decide about the context map based on the ability of the prediction - ability of the previous byte UTF8-prefix on the next byte. The - prediction ability is calculated as Shannon entropy. Here we need - Shannon entropy instead of 'BitsEntropy' since the prefix will be - encoded with the remaining 6 bits of the following byte, and - BitsEntropy will assume that symbol to be stored alone using Huffman - coding. */ - -var kStaticContextMapContinuation = [64]uint32{ - 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -} -var kStaticContextMapSimpleUTF8 = [64]uint32{ - 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -} - -func chooseContextMap(quality int, bigram_histo []uint32, num_literal_contexts *uint, literal_context_map *[]uint32) { - var monogram_histo = [3]uint32{0} - var two_prefix_histo = [6]uint32{0} - var total uint - var i uint - var dummy uint - var entropy [4]float64 - for i = 0; i < 9; i++ { - monogram_histo[i%3] += bigram_histo[i] - two_prefix_histo[i%6] += bigram_histo[i] - } - - entropy[1] = shannonEntropy(monogram_histo[:], 3, &dummy) - entropy[2] = (shannonEntropy(two_prefix_histo[:], 3, &dummy) + shannonEntropy(two_prefix_histo[3:], 3, &dummy)) - entropy[3] = 0 - for i = 0; i < 3; i++ { - entropy[3] += shannonEntropy(bigram_histo[3*i:], 3, &dummy) - } - - total = uint(monogram_histo[0] + monogram_histo[1] + monogram_histo[2]) - assert(total != 0) - entropy[0] = 1.0 / float64(total) - entropy[1] *= entropy[0] - entropy[2] *= entropy[0] - entropy[3] *= entropy[0] - - if quality < minQualityForHqContextModeling { - /* 3 context models is a bit slower, don't use it at lower qualities. */ - entropy[3] = entropy[1] * 10 - } - - /* If expected savings by symbol are less than 0.2 bits, skip the - context modeling -- in exchange for faster decoding speed. */ - if entropy[1]-entropy[2] < 0.2 && entropy[1]-entropy[3] < 0.2 { - *num_literal_contexts = 1 - } else if entropy[2]-entropy[3] < 0.02 { - *num_literal_contexts = 2 - *literal_context_map = kStaticContextMapSimpleUTF8[:] - } else { - *num_literal_contexts = 3 - *literal_context_map = kStaticContextMapContinuation[:] - } -} - -/* Decide if we want to use a more complex static context map containing 13 - context values, based on the entropy reduction of histograms over the - first 5 bits of literals. */ - -var kStaticContextMapComplexUTF8 = [64]uint32{ - 11, 11, 12, 12, /* 0 special */ - 0, 0, 0, 0, /* 4 lf */ - 1, 1, 9, 9, /* 8 space */ - 2, 2, 2, 2, /* !, first after space/lf and after something else. */ - 1, 1, 1, 1, /* " */ - 8, 3, 3, 3, /* % */ - 1, 1, 1, 1, /* ({[ */ - 2, 2, 2, 2, /* }]) */ - 8, 4, 4, 4, /* :; */ - 8, 7, 4, 4, /* . */ - 8, 0, 0, 0, /* > */ - 3, 3, 3, 3, /* [0..9] */ - 5, 5, 10, 5, /* [A-Z] */ - 5, 5, 10, 5, - 6, 6, 6, 6, /* [a-z] */ - 6, 6, 6, 6, -} - -func shouldUseComplexStaticContextMap(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) bool { - /* Try the more complex static context map only for long data. */ - if size_hint < 1<<20 { - return false - } else { - var end_pos uint = start_pos + length - var combined_histo = [32]uint32{0} - var context_histo = [13][32]uint32{[32]uint32{0}} - var total uint32 = 0 - var entropy [3]float64 - var dummy uint - var i uint - var utf8_lut contextLUT = getContextLUT(contextUTF8) - /* To make entropy calculations faster and to fit on the stack, we collect - histograms over the 5 most significant bits of literals. One histogram - without context and 13 additional histograms for each context value. */ - for ; start_pos+64 <= end_pos; start_pos += 4096 { - var stride_end_pos uint = start_pos + 64 - var prev2 byte = input[start_pos&mask] - var prev1 byte = input[(start_pos+1)&mask] - var pos uint - - /* To make the analysis of the data faster we only examine 64 byte long - strides at every 4kB intervals. */ - for pos = start_pos + 2; pos < stride_end_pos; pos++ { - var literal byte = input[pos&mask] - var context byte = byte(kStaticContextMapComplexUTF8[getContext(prev1, prev2, utf8_lut)]) - total++ - combined_histo[literal>>3]++ - context_histo[context][literal>>3]++ - prev2 = prev1 - prev1 = literal - } - } - - entropy[1] = shannonEntropy(combined_histo[:], 32, &dummy) - entropy[2] = 0 - for i = 0; i < 13; i++ { - entropy[2] += shannonEntropy(context_histo[i][0:], 32, &dummy) - } - - entropy[0] = 1.0 / float64(total) - entropy[1] *= entropy[0] - entropy[2] *= entropy[0] - - /* The triggering heuristics below were tuned by compressing the individual - files of the silesia corpus. If we skip this kind of context modeling - for not very well compressible input (i.e. entropy using context modeling - is 60% of maximal entropy) or if expected savings by symbol are less - than 0.2 bits, then in every case when it triggers, the final compression - ratio is improved. Note however that this heuristics might be too strict - for some cases and could be tuned further. */ - if entropy[2] > 3.0 || entropy[1]-entropy[2] < 0.2 { - return false - } else { - *num_literal_contexts = 13 - *literal_context_map = kStaticContextMapComplexUTF8[:] - return true - } - } -} - -func decideOverLiteralContextModeling(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) { - if quality < minQualityForContextModeling || length < 64 { - return - } else if shouldUseComplexStaticContextMap(input, start_pos, length, mask, quality, size_hint, num_literal_contexts, literal_context_map) { - } else /* Context map was already set, nothing else to do. */ - { - var end_pos uint = start_pos + length - /* Gather bi-gram data of the UTF8 byte prefixes. To make the analysis of - UTF8 data faster we only examine 64 byte long strides at every 4kB - intervals. */ - - var bigram_prefix_histo = [9]uint32{0} - for ; start_pos+64 <= end_pos; start_pos += 4096 { - var lut = [4]int{0, 0, 1, 2} - var stride_end_pos uint = start_pos + 64 - var prev int = lut[input[start_pos&mask]>>6] * 3 - var pos uint - for pos = start_pos + 1; pos < stride_end_pos; pos++ { - var literal byte = input[pos&mask] - bigram_prefix_histo[prev+lut[literal>>6]]++ - prev = lut[literal>>6] * 3 - } - } - - chooseContextMap(quality, bigram_prefix_histo[0:], num_literal_contexts, literal_context_map) - } -} - -func shouldCompress_encode(data []byte, mask uint, last_flush_pos uint64, bytes uint, num_literals uint, num_commands uint) bool { - /* TODO: find more precise minimal block overhead. */ - if bytes <= 2 { - return false - } - if num_commands < (bytes>>8)+2 { - if float64(num_literals) > 0.99*float64(bytes) { - var literal_histo = [256]uint32{0} - const kSampleRate uint32 = 13 - const kMinEntropy float64 = 7.92 - var bit_cost_threshold float64 = float64(bytes) * kMinEntropy / float64(kSampleRate) - var t uint = uint((uint32(bytes) + kSampleRate - 1) / kSampleRate) - var pos uint32 = uint32(last_flush_pos) - var i uint - for i = 0; i < t; i++ { - literal_histo[data[pos&uint32(mask)]]++ - pos += kSampleRate - } - - if bitsEntropy(literal_histo[:], 256) > bit_cost_threshold { - return false - } - } - } - - return true -} - -/* Chooses the literal context mode for a metablock */ -func chooseContextMode(params *encoderParams, data []byte, pos uint, mask uint, length uint) int { - /* We only do the computation for the option of something else than - CONTEXT_UTF8 for the highest qualities */ - if params.quality >= minQualityForHqBlockSplitting && !isMostlyUTF8(data, pos, mask, length, kMinUTF8Ratio) { - return contextSigned - } - - return contextUTF8 -} - -func writeMetaBlockInternal(data []byte, mask uint, last_flush_pos uint64, bytes uint, is_last bool, literal_context_mode int, params *encoderParams, prev_byte byte, prev_byte2 byte, num_literals uint, commands []command, saved_dist_cache []int, dist_cache []int, bw *bitWriter) { - var wrapped_last_flush_pos uint32 = wrapPosition(last_flush_pos) - var literal_context_lut contextLUT = getContextLUT(literal_context_mode) - var block_params encoderParams = *params - - if bytes == 0 { - /* Write the ISLAST and ISEMPTY bits. */ - bw.writeBits(2, 3) - bw.jumpToByteBoundary() - return - } - - if !shouldCompress_encode(data, mask, last_flush_pos, bytes, num_literals, uint(len(commands))) { - /* Restore the distance cache, as its last update by - CreateBackwardReferences is now unused. */ - copy(dist_cache, saved_dist_cache[:4]) - - storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, bw) - return - } - - savedPos := bw.getPos() - if params.quality <= maxQualityForStaticEntropyCodes { - storeMetaBlockFast(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, bw) - } else if params.quality < minQualityForBlockSplit { - storeMetaBlockTrivial(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, bw) - } else { - mb := getMetaBlockSplit() - if params.quality < minQualityForHqBlockSplitting { - var num_literal_contexts uint = 1 - var literal_context_map []uint32 = nil - if !params.disable_literal_context_modeling { - decideOverLiteralContextModeling(data, uint(wrapped_last_flush_pos), bytes, mask, params.quality, params.size_hint, &num_literal_contexts, &literal_context_map) - } - - buildMetaBlockGreedy(data, uint(wrapped_last_flush_pos), mask, prev_byte, prev_byte2, literal_context_lut, num_literal_contexts, literal_context_map, commands, mb) - } else { - buildMetaBlock(data, uint(wrapped_last_flush_pos), mask, &block_params, prev_byte, prev_byte2, commands, literal_context_mode, mb) - } - - if params.quality >= minQualityForOptimizeHistograms { - /* The number of distance symbols effectively used for distance - histograms. It might be less than distance alphabet size - for "Large Window Brotli" (32-bit). */ - var num_effective_dist_codes uint32 = block_params.dist.alphabet_size - if num_effective_dist_codes > numHistogramDistanceSymbols { - num_effective_dist_codes = numHistogramDistanceSymbols - } - - optimizeHistograms(num_effective_dist_codes, mb) - } - - storeMetaBlock(data, uint(wrapped_last_flush_pos), bytes, mask, prev_byte, prev_byte2, is_last, &block_params, literal_context_mode, commands, mb, bw) - freeMetaBlockSplit(mb) - } - - if bytes+4 < bw.getPos()>>3 { - /* Restore the distance cache and last byte. */ - copy(dist_cache, saved_dist_cache[:4]) - bw.rewind(savedPos) - storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, bw) - } -} - -func chooseDistanceParams(params *encoderParams) { - var distance_postfix_bits uint32 = 0 - var num_direct_distance_codes uint32 = 0 - - if params.quality >= minQualityForNonzeroDistanceParams { - var ndirect_msb uint32 - if params.mode == modeFont { - distance_postfix_bits = 1 - num_direct_distance_codes = 12 - } else { - distance_postfix_bits = params.dist.distance_postfix_bits - num_direct_distance_codes = params.dist.num_direct_distance_codes - } - - ndirect_msb = (num_direct_distance_codes >> distance_postfix_bits) & 0x0F - if distance_postfix_bits > maxNpostfix || num_direct_distance_codes > maxNdirect || ndirect_msb<>25)), (last_command.dist_prefix_&0x3FF == 0), &last_command.cmd_prefix_) - } -} - -/* -Processes the accumulated input data and writes -the new output meta-block to s.dest, if one has been -created (otherwise the processed input data is buffered internally). -If |is_last| or |force_flush| is true, an output meta-block is -always created. However, until |is_last| is true encoder may retain up -to 7 bits of the last byte of output. To force encoder to dump the remaining -bits use WriteMetadata() to append an empty meta-data block. -Returns false if the size of the input data is larger than -input_block_size(). -*/ -func encodeData(s *Writer, is_last bool, force_flush bool) bool { - var delta uint64 = unprocessedInputSize(s) - var bytes uint32 = uint32(delta) - var wrapped_last_processed_pos uint32 = wrapPosition(s.last_processed_pos_) - var data []byte - var mask uint32 - var literal_context_mode int - - data = s.ringbuffer_.buffer_ - mask = s.ringbuffer_.mask_ - - /* Adding more blocks after "last" block is forbidden. */ - if s.is_last_block_emitted_ { - return false - } - if is_last { - s.is_last_block_emitted_ = true - } - - if delta > uint64(inputBlockSize(s)) { - return false - } - - if s.params.quality == fastTwoPassCompressionQuality { - if s.command_buf_ == nil || cap(s.command_buf_) < int(kCompressFragmentTwoPassBlockSize) { - s.command_buf_ = make([]uint32, kCompressFragmentTwoPassBlockSize) - s.literal_buf_ = make([]byte, kCompressFragmentTwoPassBlockSize) - } else { - s.command_buf_ = s.command_buf_[:kCompressFragmentTwoPassBlockSize] - s.literal_buf_ = s.literal_buf_[:kCompressFragmentTwoPassBlockSize] - } - } - - if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { - var table_size uint - var table []int - - if delta == 0 && !is_last { - /* We have no new input data and we don't have to finish the stream, so - nothing to do. */ - return true - } - - table = getHashTable(s, s.params.quality, uint(bytes), &table_size) - if s.params.quality == fastOnePassCompressionQuality { - compressFragmentFast(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &s.bw) - } else { - compressFragmentTwoPass(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, s.command_buf_, s.literal_buf_, table, table_size, &s.bw) - } - - updateLastProcessedPos(s) - s.writeOutput(s.bw.dst) - s.bw.dst = s.bw.dst[:0] - return true - } - { - /* Theoretical max number of commands is 1 per 2 bytes. */ - newsize := len(s.commands) + int(bytes)/2 + 1 - if newsize > cap(s.commands) { - /* Reserve a bit more memory to allow merging with a next block - without reallocation: that would impact speed. */ - newsize += int(bytes/4) + 16 - - new_commands := make([]command, len(s.commands), newsize) - if s.commands != nil { - copy(new_commands, s.commands) - } - - s.commands = new_commands - } - } - - initOrStitchToPreviousBlock(&s.hasher_, data, uint(mask), &s.params, uint(wrapped_last_processed_pos), uint(bytes), is_last) - - literal_context_mode = chooseContextMode(&s.params, data, uint(wrapPosition(s.last_flush_pos_)), uint(mask), uint(s.input_pos_-s.last_flush_pos_)) - - if len(s.commands) != 0 && s.last_insert_len_ == 0 { - extendLastCommand(s, &bytes, &wrapped_last_processed_pos) - } - - if s.params.quality == zopflificationQuality { - assert(s.params.hasher.type_ == 10) - createZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_.(*h10), s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) - } else if s.params.quality == hqZopflificationQuality { - assert(s.params.hasher.type_ == 10) - createHqZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) - } else { - createBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) - } - { - var max_length uint = maxMetablockSize(&s.params) - var max_literals uint = max_length / 8 - max_commands := int(max_length / 8) - var processed_bytes uint = uint(s.input_pos_ - s.last_flush_pos_) - var next_input_fits_metablock bool = (processed_bytes+inputBlockSize(s) <= max_length) - var should_flush bool = (s.params.quality < minQualityForBlockSplit && s.num_literals_+uint(len(s.commands)) >= maxNumDelayedSymbols) - /* If maximal possible additional block doesn't fit metablock, flush now. */ - /* TODO: Postpone decision until next block arrives? */ - - /* If block splitting is not used, then flush as soon as there is some - amount of commands / literals produced. */ - if !is_last && !force_flush && !should_flush && next_input_fits_metablock && s.num_literals_ < max_literals && len(s.commands) < max_commands { - /* Merge with next input block. Everything will happen later. */ - if updateLastProcessedPos(s) { - hasherReset(s.hasher_) - } - - return true - } - } - - /* Create the last insert-only command. */ - if s.last_insert_len_ > 0 { - s.commands = append(s.commands, makeInsertCommand(s.last_insert_len_)) - s.num_literals_ += s.last_insert_len_ - s.last_insert_len_ = 0 - } - - if !is_last && s.input_pos_ == s.last_flush_pos_ { - /* We have no new input data and we don't have to finish the stream, so - nothing to do. */ - return true - } - - assert(s.input_pos_ >= s.last_flush_pos_) - assert(s.input_pos_ > s.last_flush_pos_ || is_last) - assert(s.input_pos_-s.last_flush_pos_ <= 1<<24) - { - var metablock_size uint32 = uint32(s.input_pos_ - s.last_flush_pos_) - writeMetaBlockInternal(data, uint(mask), s.last_flush_pos_, uint(metablock_size), is_last, literal_context_mode, &s.params, s.prev_byte_, s.prev_byte2_, s.num_literals_, s.commands, s.saved_dist_cache_[:], s.dist_cache_[:], &s.bw) - s.last_flush_pos_ = s.input_pos_ - if updateLastProcessedPos(s) { - hasherReset(s.hasher_) - } - - if s.last_flush_pos_ > 0 { - s.prev_byte_ = data[(uint32(s.last_flush_pos_)-1)&mask] - } - - if s.last_flush_pos_ > 1 { - s.prev_byte2_ = data[uint32(s.last_flush_pos_-2)&mask] - } - - s.commands = s.commands[:0] - s.num_literals_ = 0 - - /* Save the state of the distance cache in case we need to restore it for - emitting an uncompressed block. */ - copy(s.saved_dist_cache_[:], s.dist_cache_[:]) - - s.writeOutput(s.bw.dst) - s.bw.dst = s.bw.dst[:0] - return true - } -} - -/* -Dumps remaining output bits and metadata header to s.bw. - - REQUIRED: |block_size| <= (1 << 24). -*/ -func writeMetadataHeader(s *Writer, block_size uint) { - bw := &s.bw - - bw.writeBits(1, 0) - bw.writeBits(2, 3) - bw.writeBits(1, 0) - if block_size == 0 { - bw.writeBits(2, 0) - } else { - var nbits uint32 - if block_size == 1 { - nbits = 0 - } else { - nbits = log2FloorNonZero(uint(uint32(block_size)-1)) + 1 - } - var nbytes uint32 = (nbits + 7) / 8 - bw.writeBits(2, uint64(nbytes)) - bw.writeBits(uint(8*nbytes), uint64(block_size)-1) - } - - bw.jumpToByteBoundary() -} - -func injectBytePaddingBlock(s *Writer) { - /* is_last = 0, data_nibbles = 11, reserved = 0, meta_nibbles = 00 */ - s.bw.writeBits(6, 0x6) - s.bw.jumpToByteBoundary() - s.writeOutput(s.bw.dst) - s.bw.dst = s.bw.dst[:0] -} - -func checkFlushComplete(s *Writer) { - if s.stream_state_ == streamFlushRequested && s.err == nil { - s.stream_state_ = streamProcessing - } -} - -func encoderCompressStreamFast(s *Writer, op int, available_in *uint, next_in *[]byte) bool { - var block_size_limit uint = uint(1) << s.params.lgwin - var buf_size uint = brotli_min_size_t(kCompressFragmentTwoPassBlockSize, brotli_min_size_t(*available_in, block_size_limit)) - var command_buf []uint32 = nil - var literal_buf []byte = nil - if s.params.quality != fastOnePassCompressionQuality && s.params.quality != fastTwoPassCompressionQuality { - return false - } - - if s.params.quality == fastTwoPassCompressionQuality { - if s.command_buf_ == nil || cap(s.command_buf_) < int(buf_size) { - s.command_buf_ = make([]uint32, buf_size) - s.literal_buf_ = make([]byte, buf_size) - } else { - s.command_buf_ = s.command_buf_[:buf_size] - s.literal_buf_ = s.literal_buf_[:buf_size] - } - - command_buf = s.command_buf_ - literal_buf = s.literal_buf_ - } - - for { - if s.stream_state_ == streamFlushRequested && s.bw.nbits&7 != 0 { - injectBytePaddingBlock(s) - continue - } - - /* Compress block only when stream is not - finished, there is no pending flush request, and there is either - additional input or pending operation. */ - if s.stream_state_ == streamProcessing && (*available_in != 0 || op != int(operationProcess)) { - var block_size uint = brotli_min_size_t(block_size_limit, *available_in) - var is_last bool = (*available_in == block_size) && (op == int(operationFinish)) - var force_flush bool = (*available_in == block_size) && (op == int(operationFlush)) - var table_size uint - var table []int - - if force_flush && block_size == 0 { - s.stream_state_ = streamFlushRequested - continue - } - - table = getHashTable(s, s.params.quality, block_size, &table_size) - - if s.params.quality == fastOnePassCompressionQuality { - compressFragmentFast(*next_in, block_size, is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &s.bw) - } else { - compressFragmentTwoPass(*next_in, block_size, is_last, command_buf, literal_buf, table, table_size, &s.bw) - } - - *next_in = (*next_in)[block_size:] - *available_in -= block_size - s.writeOutput(s.bw.dst) - s.bw.dst = s.bw.dst[:0] - - if force_flush { - s.stream_state_ = streamFlushRequested - } - if is_last { - s.stream_state_ = streamFinished - } - continue - } - - break - } - - checkFlushComplete(s) - return true -} - -func processMetadata(s *Writer, available_in *uint, next_in *[]byte) bool { - if *available_in > 1<<24 { - return false - } - - /* Switch to metadata block workflow, if required. */ - if s.stream_state_ == streamProcessing { - s.remaining_metadata_bytes_ = uint32(*available_in) - s.stream_state_ = streamMetadataHead - } - - if s.stream_state_ != streamMetadataHead && s.stream_state_ != streamMetadataBody { - return false - } - - for { - if s.stream_state_ == streamFlushRequested && s.bw.nbits&7 != 0 { - injectBytePaddingBlock(s) - continue - } - - if s.input_pos_ != s.last_flush_pos_ { - var result bool = encodeData(s, false, true) - if !result { - return false - } - continue - } - - if s.stream_state_ == streamMetadataHead { - writeMetadataHeader(s, uint(s.remaining_metadata_bytes_)) - s.writeOutput(s.bw.dst) - s.bw.dst = s.bw.dst[:0] - s.stream_state_ = streamMetadataBody - continue - } else { - /* Exit workflow only when there is no more input and no more output. - Otherwise client may continue producing empty metadata blocks. */ - if s.remaining_metadata_bytes_ == 0 { - s.remaining_metadata_bytes_ = math.MaxUint32 - s.stream_state_ = streamProcessing - break - } - - /* This guarantees progress in "TakeOutput" workflow. */ - var c uint32 = brotli_min_uint32_t(s.remaining_metadata_bytes_, 16) - copy(s.tiny_buf_.u8[:], (*next_in)[:c]) - *next_in = (*next_in)[c:] - *available_in -= uint(c) - s.remaining_metadata_bytes_ -= c - s.writeOutput(s.tiny_buf_.u8[:c]) - - continue - } - } - - return true -} - -func updateSizeHint(s *Writer, available_in uint) { - if s.params.size_hint == 0 { - var delta uint64 = unprocessedInputSize(s) - var tail uint64 = uint64(available_in) - var limit uint32 = 1 << 30 - var total uint32 - if (delta >= uint64(limit)) || (tail >= uint64(limit)) || ((delta + tail) >= uint64(limit)) { - total = limit - } else { - total = uint32(delta + tail) - } - - s.params.size_hint = uint(total) - } -} - -func encoderCompressStream(s *Writer, op int, available_in *uint, next_in *[]byte) bool { - if !ensureInitialized(s) { - return false - } - - /* Unfinished metadata block; check requirements. */ - if s.remaining_metadata_bytes_ != math.MaxUint32 { - if uint32(*available_in) != s.remaining_metadata_bytes_ { - return false - } - if op != int(operationEmitMetadata) { - return false - } - } - - if op == int(operationEmitMetadata) { - updateSizeHint(s, 0) /* First data metablock might be emitted here. */ - return processMetadata(s, available_in, next_in) - } - - if s.stream_state_ == streamMetadataHead || s.stream_state_ == streamMetadataBody { - return false - } - - if s.stream_state_ != streamProcessing && *available_in != 0 { - return false - } - - if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { - return encoderCompressStreamFast(s, op, available_in, next_in) - } - - for { - var remaining_block_size uint = remainingInputBlockSize(s) - - if remaining_block_size != 0 && *available_in != 0 { - var copy_input_size uint = brotli_min_size_t(remaining_block_size, *available_in) - copyInputToRingBuffer(s, copy_input_size, *next_in) - *next_in = (*next_in)[copy_input_size:] - *available_in -= copy_input_size - continue - } - - if s.stream_state_ == streamFlushRequested && s.bw.nbits&7 != 0 { - injectBytePaddingBlock(s) - continue - } - - /* Compress data only when stream is not - finished and there is no pending flush request. */ - if s.stream_state_ == streamProcessing { - if remaining_block_size == 0 || op != int(operationProcess) { - var is_last bool = ((*available_in == 0) && op == int(operationFinish)) - var force_flush bool = ((*available_in == 0) && op == int(operationFlush)) - var result bool - updateSizeHint(s, *available_in) - result = encodeData(s, is_last, force_flush) - if !result { - return false - } - if force_flush { - s.stream_state_ = streamFlushRequested - } - if is_last { - s.stream_state_ = streamFinished - } - continue - } - } - - break - } - - checkFlushComplete(s) - return true -} - -func (w *Writer) writeOutput(data []byte) { - if w.err != nil { - return - } - - _, w.err = w.dst.Write(data) - if w.err == nil { - checkFlushComplete(w) - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/encoder_dict.go b/backend/vendor/github.com/andybalholm/brotli/encoder_dict.go deleted file mode 100644 index 55c051c6..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/encoder_dict.go +++ /dev/null @@ -1,22 +0,0 @@ -package brotli - -/* Dictionary data (words and transforms) for 1 possible context */ -type encoderDictionary struct { - words *dictionary - cutoffTransformsCount uint32 - cutoffTransforms uint64 - hash_table []uint16 - buckets []uint16 - dict_words []dictWord -} - -func initEncoderDictionary(dict *encoderDictionary) { - dict.words = getDictionary() - - dict.hash_table = kStaticDictionaryHash[:] - dict.buckets = kStaticDictionaryBuckets[:] - dict.dict_words = kStaticDictionaryWords[:] - - dict.cutoffTransformsCount = kCutoffTransformsCount - dict.cutoffTransforms = kCutoffTransforms -} diff --git a/backend/vendor/github.com/andybalholm/brotli/entropy_encode.go b/backend/vendor/github.com/andybalholm/brotli/entropy_encode.go deleted file mode 100644 index 8ba6e380..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/entropy_encode.go +++ /dev/null @@ -1,600 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Entropy encoding (Huffman) utilities. */ - -/* A node of a Huffman tree. */ -type huffmanTree struct { - total_count_ uint32 - index_left_ int16 - index_right_or_value_ int16 -} - -func initHuffmanTree(self *huffmanTree, count uint32, left int16, right int16) { - self.total_count_ = count - self.index_left_ = left - self.index_right_or_value_ = right -} - -/* Input size optimized Shell sort. */ -type huffmanTreeComparator func(huffmanTree, huffmanTree) bool - -var sortHuffmanTreeItems_gaps = []uint{132, 57, 23, 10, 4, 1} - -func sortHuffmanTreeItems(items []huffmanTree, n uint, comparator huffmanTreeComparator) { - if n < 13 { - /* Insertion sort. */ - var i uint - for i = 1; i < n; i++ { - var tmp huffmanTree = items[i] - var k uint = i - var j uint = i - 1 - for comparator(tmp, items[j]) { - items[k] = items[j] - k = j - if j == 0 { - break - } - j-- - } - - items[k] = tmp - } - - return - } else { - var g int - if n < 57 { - g = 2 - } else { - g = 0 - } - for ; g < 6; g++ { - var gap uint = sortHuffmanTreeItems_gaps[g] - var i uint - for i = gap; i < n; i++ { - var j uint = i - var tmp huffmanTree = items[i] - for ; j >= gap && comparator(tmp, items[j-gap]); j -= gap { - items[j] = items[j-gap] - } - - items[j] = tmp - } - } - } -} - -/* Returns 1 if assignment of depths succeeded, otherwise 0. */ -func setDepth(p0 int, pool []huffmanTree, depth []byte, max_depth int) bool { - var stack [16]int - var level int = 0 - var p int = p0 - assert(max_depth <= 15) - stack[0] = -1 - for { - if pool[p].index_left_ >= 0 { - level++ - if level > max_depth { - return false - } - stack[level] = int(pool[p].index_right_or_value_) - p = int(pool[p].index_left_) - continue - } else { - depth[pool[p].index_right_or_value_] = byte(level) - } - - for level >= 0 && stack[level] == -1 { - level-- - } - if level < 0 { - return true - } - p = stack[level] - stack[level] = -1 - } -} - -/* Sort the root nodes, least popular first. */ -func sortHuffmanTree(v0 huffmanTree, v1 huffmanTree) bool { - if v0.total_count_ != v1.total_count_ { - return v0.total_count_ < v1.total_count_ - } - - return v0.index_right_or_value_ > v1.index_right_or_value_ -} - -/* -This function will create a Huffman tree. - - The catch here is that the tree cannot be arbitrarily deep. - Brotli specifies a maximum depth of 15 bits for "code trees" - and 7 bits for "code length code trees." - - count_limit is the value that is to be faked as the minimum value - and this minimum value is raised until the tree matches the - maximum length requirement. - - This algorithm is not of excellent performance for very long data blocks, - especially when population counts are longer than 2**tree_limit, but - we are not planning to use this with extremely long blocks. - - See http://en.wikipedia.org/wiki/Huffman_coding -*/ -func createHuffmanTree(data []uint32, length uint, tree_limit int, tree []huffmanTree, depth []byte) { - var count_limit uint32 - var sentinel huffmanTree - initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) - - /* For block sizes below 64 kB, we never need to do a second iteration - of this loop. Probably all of our block sizes will be smaller than - that, so this loop is mostly of academic interest. If we actually - would need this, we would be better off with the Katajainen algorithm. */ - for count_limit = 1; ; count_limit *= 2 { - var n uint = 0 - var i uint - var j uint - var k uint - for i = length; i != 0; { - i-- - if data[i] != 0 { - var count uint32 = brotli_max_uint32_t(data[i], count_limit) - initHuffmanTree(&tree[n], count, -1, int16(i)) - n++ - } - } - - if n == 1 { - depth[tree[0].index_right_or_value_] = 1 /* Only one element. */ - break - } - - sortHuffmanTreeItems(tree, n, huffmanTreeComparator(sortHuffmanTree)) - - /* The nodes are: - [0, n): the sorted leaf nodes that we start with. - [n]: we add a sentinel here. - [n + 1, 2n): new parent nodes are added here, starting from - (n+1). These are naturally in ascending order. - [2n]: we add a sentinel at the end as well. - There will be (2n+1) elements at the end. */ - tree[n] = sentinel - - tree[n+1] = sentinel - - i = 0 /* Points to the next leaf node. */ - j = n + 1 /* Points to the next non-leaf node. */ - for k = n - 1; k != 0; k-- { - var left uint - var right uint - if tree[i].total_count_ <= tree[j].total_count_ { - left = i - i++ - } else { - left = j - j++ - } - - if tree[i].total_count_ <= tree[j].total_count_ { - right = i - i++ - } else { - right = j - j++ - } - { - /* The sentinel node becomes the parent node. */ - var j_end uint = 2*n - k - tree[j_end].total_count_ = tree[left].total_count_ + tree[right].total_count_ - tree[j_end].index_left_ = int16(left) - tree[j_end].index_right_or_value_ = int16(right) - - /* Add back the last sentinel node. */ - tree[j_end+1] = sentinel - } - } - - if setDepth(int(2*n-1), tree[0:], depth, tree_limit) { - /* We need to pack the Huffman tree in tree_limit bits. If this was not - successful, add fake entities to the lowest values and retry. */ - break - } - } -} - -func reverse(v []byte, start uint, end uint) { - end-- - for start < end { - var tmp byte = v[start] - v[start] = v[end] - v[end] = tmp - start++ - end-- - } -} - -func writeHuffmanTreeRepetitions(previous_value byte, value byte, repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { - assert(repetitions > 0) - if previous_value != value { - tree[*tree_size] = value - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - repetitions-- - } - - if repetitions == 7 { - tree[*tree_size] = value - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - repetitions-- - } - - if repetitions < 3 { - var i uint - for i = 0; i < repetitions; i++ { - tree[*tree_size] = value - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - } - } else { - var start uint = *tree_size - repetitions -= 3 - for { - tree[*tree_size] = repeatPreviousCodeLength - extra_bits_data[*tree_size] = byte(repetitions & 0x3) - (*tree_size)++ - repetitions >>= 2 - if repetitions == 0 { - break - } - - repetitions-- - } - - reverse(tree, start, *tree_size) - reverse(extra_bits_data, start, *tree_size) - } -} - -func writeHuffmanTreeRepetitionsZeros(repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { - if repetitions == 11 { - tree[*tree_size] = 0 - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - repetitions-- - } - - if repetitions < 3 { - var i uint - for i = 0; i < repetitions; i++ { - tree[*tree_size] = 0 - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - } - } else { - var start uint = *tree_size - repetitions -= 3 - for { - tree[*tree_size] = repeatZeroCodeLength - extra_bits_data[*tree_size] = byte(repetitions & 0x7) - (*tree_size)++ - repetitions >>= 3 - if repetitions == 0 { - break - } - - repetitions-- - } - - reverse(tree, start, *tree_size) - reverse(extra_bits_data, start, *tree_size) - } -} - -/* -Change the population counts in a way that the consequent - - Huffman tree compression, especially its RLE-part will be more - likely to compress this data more efficiently. - - length contains the size of the histogram. - counts contains the population counts. - good_for_rle is a buffer of at least length size -*/ -func optimizeHuffmanCountsForRLE(length uint, counts []uint32, good_for_rle []byte) { - var nonzero_count uint = 0 - var stride uint - var limit uint - var sum uint - var streak_limit uint = 1240 - var i uint - /* Let's make the Huffman code more compatible with RLE encoding. */ - for i = 0; i < length; i++ { - if counts[i] != 0 { - nonzero_count++ - } - } - - if nonzero_count < 16 { - return - } - - for length != 0 && counts[length-1] == 0 { - length-- - } - - if length == 0 { - return /* All zeros. */ - } - - /* Now counts[0..length - 1] does not have trailing zeros. */ - { - var nonzeros uint = 0 - var smallest_nonzero uint32 = 1 << 30 - for i = 0; i < length; i++ { - if counts[i] != 0 { - nonzeros++ - if smallest_nonzero > counts[i] { - smallest_nonzero = counts[i] - } - } - } - - if nonzeros < 5 { - /* Small histogram will model it well. */ - return - } - - if smallest_nonzero < 4 { - var zeros uint = length - nonzeros - if zeros < 6 { - for i = 1; i < length-1; i++ { - if counts[i-1] != 0 && counts[i] == 0 && counts[i+1] != 0 { - counts[i] = 1 - } - } - } - } - - if nonzeros < 28 { - return - } - } - - /* 2) Let's mark all population counts that already can be encoded - with an RLE code. */ - for i := 0; i < int(length); i++ { - good_for_rle[i] = 0 - } - { - var symbol uint32 = counts[0] - /* Let's not spoil any of the existing good RLE codes. - Mark any seq of 0's that is longer as 5 as a good_for_rle. - Mark any seq of non-0's that is longer as 7 as a good_for_rle. */ - - var step uint = 0 - for i = 0; i <= length; i++ { - if i == length || counts[i] != symbol { - if (symbol == 0 && step >= 5) || (symbol != 0 && step >= 7) { - var k uint - for k = 0; k < step; k++ { - good_for_rle[i-k-1] = 1 - } - } - - step = 1 - if i != length { - symbol = counts[i] - } - } else { - step++ - } - } - } - - /* 3) Let's replace those population counts that lead to more RLE codes. - Math here is in 24.8 fixed point representation. */ - stride = 0 - - limit = uint(256*(counts[0]+counts[1]+counts[2])/3 + 420) - sum = 0 - for i = 0; i <= length; i++ { - if i == length || good_for_rle[i] != 0 || (i != 0 && good_for_rle[i-1] != 0) || (256*counts[i]-uint32(limit)+uint32(streak_limit)) >= uint32(2*streak_limit) { - if stride >= 4 || (stride >= 3 && sum == 0) { - var k uint - var count uint = (sum + stride/2) / stride - /* The stride must end, collapse what we have, if we have enough (4). */ - if count == 0 { - count = 1 - } - - if sum == 0 { - /* Don't make an all zeros stride to be upgraded to ones. */ - count = 0 - } - - for k = 0; k < stride; k++ { - /* We don't want to change value at counts[i], - that is already belonging to the next stride. Thus - 1. */ - counts[i-k-1] = uint32(count) - } - } - - stride = 0 - sum = 0 - if i < length-2 { - /* All interesting strides have a count of at least 4, */ - /* at least when non-zeros. */ - limit = uint(256*(counts[i]+counts[i+1]+counts[i+2])/3 + 420) - } else if i < length { - limit = uint(256 * counts[i]) - } else { - limit = 0 - } - } - - stride++ - if i != length { - sum += uint(counts[i]) - if stride >= 4 { - limit = (256*sum + stride/2) / stride - } - - if stride == 4 { - limit += 120 - } - } - } -} - -func decideOverRLEUse(depth []byte, length uint, use_rle_for_non_zero *bool, use_rle_for_zero *bool) { - var total_reps_zero uint = 0 - var total_reps_non_zero uint = 0 - var count_reps_zero uint = 1 - var count_reps_non_zero uint = 1 - var i uint - for i = 0; i < length; { - var value byte = depth[i] - var reps uint = 1 - var k uint - for k = i + 1; k < length && depth[k] == value; k++ { - reps++ - } - - if reps >= 3 && value == 0 { - total_reps_zero += reps - count_reps_zero++ - } - - if reps >= 4 && value != 0 { - total_reps_non_zero += reps - count_reps_non_zero++ - } - - i += reps - } - - *use_rle_for_non_zero = total_reps_non_zero > count_reps_non_zero*2 - *use_rle_for_zero = total_reps_zero > count_reps_zero*2 -} - -/* -Write a Huffman tree from bit depths into the bit-stream representation - - of a Huffman tree. The generated Huffman tree is to be compressed once - more using a Huffman tree -*/ -func writeHuffmanTree(depth []byte, length uint, tree_size *uint, tree []byte, extra_bits_data []byte) { - var previous_value byte = initialRepeatedCodeLength - var i uint - var use_rle_for_non_zero bool = false - var use_rle_for_zero bool = false - var new_length uint = length - /* Throw away trailing zeros. */ - for i = 0; i < length; i++ { - if depth[length-i-1] == 0 { - new_length-- - } else { - break - } - } - - /* First gather statistics on if it is a good idea to do RLE. */ - if length > 50 { - /* Find RLE coding for longer codes. - Shorter codes seem not to benefit from RLE. */ - decideOverRLEUse(depth, new_length, &use_rle_for_non_zero, &use_rle_for_zero) - } - - /* Actual RLE coding. */ - for i = 0; i < new_length; { - var value byte = depth[i] - var reps uint = 1 - if (value != 0 && use_rle_for_non_zero) || (value == 0 && use_rle_for_zero) { - var k uint - for k = i + 1; k < new_length && depth[k] == value; k++ { - reps++ - } - } - - if value == 0 { - writeHuffmanTreeRepetitionsZeros(reps, tree_size, tree, extra_bits_data) - } else { - writeHuffmanTreeRepetitions(previous_value, value, reps, tree_size, tree, extra_bits_data) - previous_value = value - } - - i += reps - } -} - -var reverseBits_kLut = [16]uint{ - 0x00, - 0x08, - 0x04, - 0x0C, - 0x02, - 0x0A, - 0x06, - 0x0E, - 0x01, - 0x09, - 0x05, - 0x0D, - 0x03, - 0x0B, - 0x07, - 0x0F, -} - -func reverseBits(num_bits uint, bits uint16) uint16 { - var retval uint = reverseBits_kLut[bits&0x0F] - var i uint - for i = 4; i < num_bits; i += 4 { - retval <<= 4 - bits = uint16(bits >> 4) - retval |= reverseBits_kLut[bits&0x0F] - } - - retval >>= ((0 - num_bits) & 0x03) - return uint16(retval) -} - -/* 0..15 are values for bits */ -const maxHuffmanBits = 16 - -/* Get the actual bit values for a tree of bit depths. */ -func convertBitDepthsToSymbols(depth []byte, len uint, bits []uint16) { - var bl_count = [maxHuffmanBits]uint16{0} - var next_code [maxHuffmanBits]uint16 - var i uint - /* In Brotli, all bit depths are [1..15] - 0 bit depth means that the symbol does not exist. */ - - var code int = 0 - for i = 0; i < len; i++ { - bl_count[depth[i]]++ - } - - bl_count[0] = 0 - next_code[0] = 0 - for i = 1; i < maxHuffmanBits; i++ { - code = (code + int(bl_count[i-1])) << 1 - next_code[i] = uint16(code) - } - - for i = 0; i < len; i++ { - if depth[i] != 0 { - bits[i] = reverseBits(uint(depth[i]), next_code[depth[i]]) - next_code[depth[i]]++ - } - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/entropy_encode_static.go b/backend/vendor/github.com/andybalholm/brotli/entropy_encode_static.go deleted file mode 100644 index 2543f8f0..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/entropy_encode_static.go +++ /dev/null @@ -1,4396 +0,0 @@ -package brotli - -var kCodeLengthDepth = [18]byte{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 0, 4, 4} - -var kStaticCommandCodeDepth = [numCommandSymbols]byte{ - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, -} - -var kStaticDistanceCodeDepth = [64]byte{ - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, -} - -var kCodeLengthBits = [18]uint32{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 15, 31, 0, 11, 7} - -func storeStaticCodeLengthCode(bw *bitWriter) { - bw.writeBits(32, 0x55555554) - bw.writeBits(8, 0xFF) -} - -var kZeroRepsBits = [numCommandSymbols]uint64{ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000007, - 0x00000017, - 0x00000027, - 0x00000037, - 0x00000047, - 0x00000057, - 0x00000067, - 0x00000077, - 0x00000770, - 0x00000b87, - 0x00001387, - 0x00001b87, - 0x00002387, - 0x00002b87, - 0x00003387, - 0x00003b87, - 0x00000397, - 0x00000b97, - 0x00001397, - 0x00001b97, - 0x00002397, - 0x00002b97, - 0x00003397, - 0x00003b97, - 0x000003a7, - 0x00000ba7, - 0x000013a7, - 0x00001ba7, - 0x000023a7, - 0x00002ba7, - 0x000033a7, - 0x00003ba7, - 0x000003b7, - 0x00000bb7, - 0x000013b7, - 0x00001bb7, - 0x000023b7, - 0x00002bb7, - 0x000033b7, - 0x00003bb7, - 0x000003c7, - 0x00000bc7, - 0x000013c7, - 0x00001bc7, - 0x000023c7, - 0x00002bc7, - 0x000033c7, - 0x00003bc7, - 0x000003d7, - 0x00000bd7, - 0x000013d7, - 0x00001bd7, - 0x000023d7, - 0x00002bd7, - 0x000033d7, - 0x00003bd7, - 0x000003e7, - 0x00000be7, - 0x000013e7, - 0x00001be7, - 0x000023e7, - 0x00002be7, - 0x000033e7, - 0x00003be7, - 0x000003f7, - 0x00000bf7, - 0x000013f7, - 0x00001bf7, - 0x000023f7, - 0x00002bf7, - 0x000033f7, - 0x00003bf7, - 0x0001c387, - 0x0005c387, - 0x0009c387, - 0x000dc387, - 0x0011c387, - 0x0015c387, - 0x0019c387, - 0x001dc387, - 0x0001cb87, - 0x0005cb87, - 0x0009cb87, - 0x000dcb87, - 0x0011cb87, - 0x0015cb87, - 0x0019cb87, - 0x001dcb87, - 0x0001d387, - 0x0005d387, - 0x0009d387, - 0x000dd387, - 0x0011d387, - 0x0015d387, - 0x0019d387, - 0x001dd387, - 0x0001db87, - 0x0005db87, - 0x0009db87, - 0x000ddb87, - 0x0011db87, - 0x0015db87, - 0x0019db87, - 0x001ddb87, - 0x0001e387, - 0x0005e387, - 0x0009e387, - 0x000de387, - 0x0011e387, - 0x0015e387, - 0x0019e387, - 0x001de387, - 0x0001eb87, - 0x0005eb87, - 0x0009eb87, - 0x000deb87, - 0x0011eb87, - 0x0015eb87, - 0x0019eb87, - 0x001deb87, - 0x0001f387, - 0x0005f387, - 0x0009f387, - 0x000df387, - 0x0011f387, - 0x0015f387, - 0x0019f387, - 0x001df387, - 0x0001fb87, - 0x0005fb87, - 0x0009fb87, - 0x000dfb87, - 0x0011fb87, - 0x0015fb87, - 0x0019fb87, - 0x001dfb87, - 0x0001c397, - 0x0005c397, - 0x0009c397, - 0x000dc397, - 0x0011c397, - 0x0015c397, - 0x0019c397, - 0x001dc397, - 0x0001cb97, - 0x0005cb97, - 0x0009cb97, - 0x000dcb97, - 0x0011cb97, - 0x0015cb97, - 0x0019cb97, - 0x001dcb97, - 0x0001d397, - 0x0005d397, - 0x0009d397, - 0x000dd397, - 0x0011d397, - 0x0015d397, - 0x0019d397, - 0x001dd397, - 0x0001db97, - 0x0005db97, - 0x0009db97, - 0x000ddb97, - 0x0011db97, - 0x0015db97, - 0x0019db97, - 0x001ddb97, - 0x0001e397, - 0x0005e397, - 0x0009e397, - 0x000de397, - 0x0011e397, - 0x0015e397, - 0x0019e397, - 0x001de397, - 0x0001eb97, - 0x0005eb97, - 0x0009eb97, - 0x000deb97, - 0x0011eb97, - 0x0015eb97, - 0x0019eb97, - 0x001deb97, - 0x0001f397, - 0x0005f397, - 0x0009f397, - 0x000df397, - 0x0011f397, - 0x0015f397, - 0x0019f397, - 0x001df397, - 0x0001fb97, - 0x0005fb97, - 0x0009fb97, - 0x000dfb97, - 0x0011fb97, - 0x0015fb97, - 0x0019fb97, - 0x001dfb97, - 0x0001c3a7, - 0x0005c3a7, - 0x0009c3a7, - 0x000dc3a7, - 0x0011c3a7, - 0x0015c3a7, - 0x0019c3a7, - 0x001dc3a7, - 0x0001cba7, - 0x0005cba7, - 0x0009cba7, - 0x000dcba7, - 0x0011cba7, - 0x0015cba7, - 0x0019cba7, - 0x001dcba7, - 0x0001d3a7, - 0x0005d3a7, - 0x0009d3a7, - 0x000dd3a7, - 0x0011d3a7, - 0x0015d3a7, - 0x0019d3a7, - 0x001dd3a7, - 0x0001dba7, - 0x0005dba7, - 0x0009dba7, - 0x000ddba7, - 0x0011dba7, - 0x0015dba7, - 0x0019dba7, - 0x001ddba7, - 0x0001e3a7, - 0x0005e3a7, - 0x0009e3a7, - 0x000de3a7, - 0x0011e3a7, - 0x0015e3a7, - 0x0019e3a7, - 0x001de3a7, - 0x0001eba7, - 0x0005eba7, - 0x0009eba7, - 0x000deba7, - 0x0011eba7, - 0x0015eba7, - 0x0019eba7, - 0x001deba7, - 0x0001f3a7, - 0x0005f3a7, - 0x0009f3a7, - 0x000df3a7, - 0x0011f3a7, - 0x0015f3a7, - 0x0019f3a7, - 0x001df3a7, - 0x0001fba7, - 0x0005fba7, - 0x0009fba7, - 0x000dfba7, - 0x0011fba7, - 0x0015fba7, - 0x0019fba7, - 0x001dfba7, - 0x0001c3b7, - 0x0005c3b7, - 0x0009c3b7, - 0x000dc3b7, - 0x0011c3b7, - 0x0015c3b7, - 0x0019c3b7, - 0x001dc3b7, - 0x0001cbb7, - 0x0005cbb7, - 0x0009cbb7, - 0x000dcbb7, - 0x0011cbb7, - 0x0015cbb7, - 0x0019cbb7, - 0x001dcbb7, - 0x0001d3b7, - 0x0005d3b7, - 0x0009d3b7, - 0x000dd3b7, - 0x0011d3b7, - 0x0015d3b7, - 0x0019d3b7, - 0x001dd3b7, - 0x0001dbb7, - 0x0005dbb7, - 0x0009dbb7, - 0x000ddbb7, - 0x0011dbb7, - 0x0015dbb7, - 0x0019dbb7, - 0x001ddbb7, - 0x0001e3b7, - 0x0005e3b7, - 0x0009e3b7, - 0x000de3b7, - 0x0011e3b7, - 0x0015e3b7, - 0x0019e3b7, - 0x001de3b7, - 0x0001ebb7, - 0x0005ebb7, - 0x0009ebb7, - 0x000debb7, - 0x0011ebb7, - 0x0015ebb7, - 0x0019ebb7, - 0x001debb7, - 0x0001f3b7, - 0x0005f3b7, - 0x0009f3b7, - 0x000df3b7, - 0x0011f3b7, - 0x0015f3b7, - 0x0019f3b7, - 0x001df3b7, - 0x0001fbb7, - 0x0005fbb7, - 0x0009fbb7, - 0x000dfbb7, - 0x0011fbb7, - 0x0015fbb7, - 0x0019fbb7, - 0x001dfbb7, - 0x0001c3c7, - 0x0005c3c7, - 0x0009c3c7, - 0x000dc3c7, - 0x0011c3c7, - 0x0015c3c7, - 0x0019c3c7, - 0x001dc3c7, - 0x0001cbc7, - 0x0005cbc7, - 0x0009cbc7, - 0x000dcbc7, - 0x0011cbc7, - 0x0015cbc7, - 0x0019cbc7, - 0x001dcbc7, - 0x0001d3c7, - 0x0005d3c7, - 0x0009d3c7, - 0x000dd3c7, - 0x0011d3c7, - 0x0015d3c7, - 0x0019d3c7, - 0x001dd3c7, - 0x0001dbc7, - 0x0005dbc7, - 0x0009dbc7, - 0x000ddbc7, - 0x0011dbc7, - 0x0015dbc7, - 0x0019dbc7, - 0x001ddbc7, - 0x0001e3c7, - 0x0005e3c7, - 0x0009e3c7, - 0x000de3c7, - 0x0011e3c7, - 0x0015e3c7, - 0x0019e3c7, - 0x001de3c7, - 0x0001ebc7, - 0x0005ebc7, - 0x0009ebc7, - 0x000debc7, - 0x0011ebc7, - 0x0015ebc7, - 0x0019ebc7, - 0x001debc7, - 0x0001f3c7, - 0x0005f3c7, - 0x0009f3c7, - 0x000df3c7, - 0x0011f3c7, - 0x0015f3c7, - 0x0019f3c7, - 0x001df3c7, - 0x0001fbc7, - 0x0005fbc7, - 0x0009fbc7, - 0x000dfbc7, - 0x0011fbc7, - 0x0015fbc7, - 0x0019fbc7, - 0x001dfbc7, - 0x0001c3d7, - 0x0005c3d7, - 0x0009c3d7, - 0x000dc3d7, - 0x0011c3d7, - 0x0015c3d7, - 0x0019c3d7, - 0x001dc3d7, - 0x0001cbd7, - 0x0005cbd7, - 0x0009cbd7, - 0x000dcbd7, - 0x0011cbd7, - 0x0015cbd7, - 0x0019cbd7, - 0x001dcbd7, - 0x0001d3d7, - 0x0005d3d7, - 0x0009d3d7, - 0x000dd3d7, - 0x0011d3d7, - 0x0015d3d7, - 0x0019d3d7, - 0x001dd3d7, - 0x0001dbd7, - 0x0005dbd7, - 0x0009dbd7, - 0x000ddbd7, - 0x0011dbd7, - 0x0015dbd7, - 0x0019dbd7, - 0x001ddbd7, - 0x0001e3d7, - 0x0005e3d7, - 0x0009e3d7, - 0x000de3d7, - 0x0011e3d7, - 0x0015e3d7, - 0x0019e3d7, - 0x001de3d7, - 0x0001ebd7, - 0x0005ebd7, - 0x0009ebd7, - 0x000debd7, - 0x0011ebd7, - 0x0015ebd7, - 0x0019ebd7, - 0x001debd7, - 0x0001f3d7, - 0x0005f3d7, - 0x0009f3d7, - 0x000df3d7, - 0x0011f3d7, - 0x0015f3d7, - 0x0019f3d7, - 0x001df3d7, - 0x0001fbd7, - 0x0005fbd7, - 0x0009fbd7, - 0x000dfbd7, - 0x0011fbd7, - 0x0015fbd7, - 0x0019fbd7, - 0x001dfbd7, - 0x0001c3e7, - 0x0005c3e7, - 0x0009c3e7, - 0x000dc3e7, - 0x0011c3e7, - 0x0015c3e7, - 0x0019c3e7, - 0x001dc3e7, - 0x0001cbe7, - 0x0005cbe7, - 0x0009cbe7, - 0x000dcbe7, - 0x0011cbe7, - 0x0015cbe7, - 0x0019cbe7, - 0x001dcbe7, - 0x0001d3e7, - 0x0005d3e7, - 0x0009d3e7, - 0x000dd3e7, - 0x0011d3e7, - 0x0015d3e7, - 0x0019d3e7, - 0x001dd3e7, - 0x0001dbe7, - 0x0005dbe7, - 0x0009dbe7, - 0x000ddbe7, - 0x0011dbe7, - 0x0015dbe7, - 0x0019dbe7, - 0x001ddbe7, - 0x0001e3e7, - 0x0005e3e7, - 0x0009e3e7, - 0x000de3e7, - 0x0011e3e7, - 0x0015e3e7, - 0x0019e3e7, - 0x001de3e7, - 0x0001ebe7, - 0x0005ebe7, - 0x0009ebe7, - 0x000debe7, - 0x0011ebe7, - 0x0015ebe7, - 0x0019ebe7, - 0x001debe7, - 0x0001f3e7, - 0x0005f3e7, - 0x0009f3e7, - 0x000df3e7, - 0x0011f3e7, - 0x0015f3e7, - 0x0019f3e7, - 0x001df3e7, - 0x0001fbe7, - 0x0005fbe7, - 0x0009fbe7, - 0x000dfbe7, - 0x0011fbe7, - 0x0015fbe7, - 0x0019fbe7, - 0x001dfbe7, - 0x0001c3f7, - 0x0005c3f7, - 0x0009c3f7, - 0x000dc3f7, - 0x0011c3f7, - 0x0015c3f7, - 0x0019c3f7, - 0x001dc3f7, - 0x0001cbf7, - 0x0005cbf7, - 0x0009cbf7, - 0x000dcbf7, - 0x0011cbf7, - 0x0015cbf7, - 0x0019cbf7, - 0x001dcbf7, - 0x0001d3f7, - 0x0005d3f7, - 0x0009d3f7, - 0x000dd3f7, - 0x0011d3f7, - 0x0015d3f7, - 0x0019d3f7, - 0x001dd3f7, - 0x0001dbf7, - 0x0005dbf7, - 0x0009dbf7, - 0x000ddbf7, - 0x0011dbf7, - 0x0015dbf7, - 0x0019dbf7, - 0x001ddbf7, - 0x0001e3f7, - 0x0005e3f7, - 0x0009e3f7, - 0x000de3f7, - 0x0011e3f7, - 0x0015e3f7, - 0x0019e3f7, - 0x001de3f7, - 0x0001ebf7, - 0x0005ebf7, - 0x0009ebf7, - 0x000debf7, - 0x0011ebf7, - 0x0015ebf7, - 0x0019ebf7, - 0x001debf7, - 0x0001f3f7, - 0x0005f3f7, - 0x0009f3f7, - 0x000df3f7, - 0x0011f3f7, - 0x0015f3f7, - 0x0019f3f7, - 0x001df3f7, - 0x0001fbf7, - 0x0005fbf7, - 0x0009fbf7, - 0x000dfbf7, - 0x0011fbf7, - 0x0015fbf7, - 0x0019fbf7, - 0x001dfbf7, - 0x00e1c387, - 0x02e1c387, - 0x04e1c387, - 0x06e1c387, - 0x08e1c387, - 0x0ae1c387, - 0x0ce1c387, - 0x0ee1c387, - 0x00e5c387, - 0x02e5c387, - 0x04e5c387, - 0x06e5c387, - 0x08e5c387, - 0x0ae5c387, - 0x0ce5c387, - 0x0ee5c387, - 0x00e9c387, - 0x02e9c387, - 0x04e9c387, - 0x06e9c387, - 0x08e9c387, - 0x0ae9c387, - 0x0ce9c387, - 0x0ee9c387, - 0x00edc387, - 0x02edc387, - 0x04edc387, - 0x06edc387, - 0x08edc387, - 0x0aedc387, - 0x0cedc387, - 0x0eedc387, - 0x00f1c387, - 0x02f1c387, - 0x04f1c387, - 0x06f1c387, - 0x08f1c387, - 0x0af1c387, - 0x0cf1c387, - 0x0ef1c387, - 0x00f5c387, - 0x02f5c387, - 0x04f5c387, - 0x06f5c387, - 0x08f5c387, - 0x0af5c387, - 0x0cf5c387, - 0x0ef5c387, - 0x00f9c387, - 0x02f9c387, - 0x04f9c387, - 0x06f9c387, - 0x08f9c387, - 0x0af9c387, - 0x0cf9c387, - 0x0ef9c387, - 0x00fdc387, - 0x02fdc387, - 0x04fdc387, - 0x06fdc387, - 0x08fdc387, - 0x0afdc387, - 0x0cfdc387, - 0x0efdc387, - 0x00e1cb87, - 0x02e1cb87, - 0x04e1cb87, - 0x06e1cb87, - 0x08e1cb87, - 0x0ae1cb87, - 0x0ce1cb87, - 0x0ee1cb87, - 0x00e5cb87, - 0x02e5cb87, - 0x04e5cb87, - 0x06e5cb87, - 0x08e5cb87, - 0x0ae5cb87, - 0x0ce5cb87, - 0x0ee5cb87, - 0x00e9cb87, - 0x02e9cb87, - 0x04e9cb87, - 0x06e9cb87, - 0x08e9cb87, - 0x0ae9cb87, - 0x0ce9cb87, - 0x0ee9cb87, - 0x00edcb87, - 0x02edcb87, - 0x04edcb87, - 0x06edcb87, - 0x08edcb87, - 0x0aedcb87, - 0x0cedcb87, - 0x0eedcb87, - 0x00f1cb87, - 0x02f1cb87, - 0x04f1cb87, - 0x06f1cb87, - 0x08f1cb87, - 0x0af1cb87, - 0x0cf1cb87, - 0x0ef1cb87, - 0x00f5cb87, - 0x02f5cb87, - 0x04f5cb87, - 0x06f5cb87, - 0x08f5cb87, - 0x0af5cb87, - 0x0cf5cb87, - 0x0ef5cb87, - 0x00f9cb87, - 0x02f9cb87, - 0x04f9cb87, - 0x06f9cb87, - 0x08f9cb87, -} - -var kZeroRepsDepth = [numCommandSymbols]uint32{ - 0, - 4, - 8, - 7, - 7, - 7, - 7, - 7, - 7, - 7, - 7, - 11, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, -} - -var kNonZeroRepsBits = [numCommandSymbols]uint64{ - 0x0000000b, - 0x0000001b, - 0x0000002b, - 0x0000003b, - 0x000002cb, - 0x000006cb, - 0x00000acb, - 0x00000ecb, - 0x000002db, - 0x000006db, - 0x00000adb, - 0x00000edb, - 0x000002eb, - 0x000006eb, - 0x00000aeb, - 0x00000eeb, - 0x000002fb, - 0x000006fb, - 0x00000afb, - 0x00000efb, - 0x0000b2cb, - 0x0001b2cb, - 0x0002b2cb, - 0x0003b2cb, - 0x0000b6cb, - 0x0001b6cb, - 0x0002b6cb, - 0x0003b6cb, - 0x0000bacb, - 0x0001bacb, - 0x0002bacb, - 0x0003bacb, - 0x0000becb, - 0x0001becb, - 0x0002becb, - 0x0003becb, - 0x0000b2db, - 0x0001b2db, - 0x0002b2db, - 0x0003b2db, - 0x0000b6db, - 0x0001b6db, - 0x0002b6db, - 0x0003b6db, - 0x0000badb, - 0x0001badb, - 0x0002badb, - 0x0003badb, - 0x0000bedb, - 0x0001bedb, - 0x0002bedb, - 0x0003bedb, - 0x0000b2eb, - 0x0001b2eb, - 0x0002b2eb, - 0x0003b2eb, - 0x0000b6eb, - 0x0001b6eb, - 0x0002b6eb, - 0x0003b6eb, - 0x0000baeb, - 0x0001baeb, - 0x0002baeb, - 0x0003baeb, - 0x0000beeb, - 0x0001beeb, - 0x0002beeb, - 0x0003beeb, - 0x0000b2fb, - 0x0001b2fb, - 0x0002b2fb, - 0x0003b2fb, - 0x0000b6fb, - 0x0001b6fb, - 0x0002b6fb, - 0x0003b6fb, - 0x0000bafb, - 0x0001bafb, - 0x0002bafb, - 0x0003bafb, - 0x0000befb, - 0x0001befb, - 0x0002befb, - 0x0003befb, - 0x002cb2cb, - 0x006cb2cb, - 0x00acb2cb, - 0x00ecb2cb, - 0x002db2cb, - 0x006db2cb, - 0x00adb2cb, - 0x00edb2cb, - 0x002eb2cb, - 0x006eb2cb, - 0x00aeb2cb, - 0x00eeb2cb, - 0x002fb2cb, - 0x006fb2cb, - 0x00afb2cb, - 0x00efb2cb, - 0x002cb6cb, - 0x006cb6cb, - 0x00acb6cb, - 0x00ecb6cb, - 0x002db6cb, - 0x006db6cb, - 0x00adb6cb, - 0x00edb6cb, - 0x002eb6cb, - 0x006eb6cb, - 0x00aeb6cb, - 0x00eeb6cb, - 0x002fb6cb, - 0x006fb6cb, - 0x00afb6cb, - 0x00efb6cb, - 0x002cbacb, - 0x006cbacb, - 0x00acbacb, - 0x00ecbacb, - 0x002dbacb, - 0x006dbacb, - 0x00adbacb, - 0x00edbacb, - 0x002ebacb, - 0x006ebacb, - 0x00aebacb, - 0x00eebacb, - 0x002fbacb, - 0x006fbacb, - 0x00afbacb, - 0x00efbacb, - 0x002cbecb, - 0x006cbecb, - 0x00acbecb, - 0x00ecbecb, - 0x002dbecb, - 0x006dbecb, - 0x00adbecb, - 0x00edbecb, - 0x002ebecb, - 0x006ebecb, - 0x00aebecb, - 0x00eebecb, - 0x002fbecb, - 0x006fbecb, - 0x00afbecb, - 0x00efbecb, - 0x002cb2db, - 0x006cb2db, - 0x00acb2db, - 0x00ecb2db, - 0x002db2db, - 0x006db2db, - 0x00adb2db, - 0x00edb2db, - 0x002eb2db, - 0x006eb2db, - 0x00aeb2db, - 0x00eeb2db, - 0x002fb2db, - 0x006fb2db, - 0x00afb2db, - 0x00efb2db, - 0x002cb6db, - 0x006cb6db, - 0x00acb6db, - 0x00ecb6db, - 0x002db6db, - 0x006db6db, - 0x00adb6db, - 0x00edb6db, - 0x002eb6db, - 0x006eb6db, - 0x00aeb6db, - 0x00eeb6db, - 0x002fb6db, - 0x006fb6db, - 0x00afb6db, - 0x00efb6db, - 0x002cbadb, - 0x006cbadb, - 0x00acbadb, - 0x00ecbadb, - 0x002dbadb, - 0x006dbadb, - 0x00adbadb, - 0x00edbadb, - 0x002ebadb, - 0x006ebadb, - 0x00aebadb, - 0x00eebadb, - 0x002fbadb, - 0x006fbadb, - 0x00afbadb, - 0x00efbadb, - 0x002cbedb, - 0x006cbedb, - 0x00acbedb, - 0x00ecbedb, - 0x002dbedb, - 0x006dbedb, - 0x00adbedb, - 0x00edbedb, - 0x002ebedb, - 0x006ebedb, - 0x00aebedb, - 0x00eebedb, - 0x002fbedb, - 0x006fbedb, - 0x00afbedb, - 0x00efbedb, - 0x002cb2eb, - 0x006cb2eb, - 0x00acb2eb, - 0x00ecb2eb, - 0x002db2eb, - 0x006db2eb, - 0x00adb2eb, - 0x00edb2eb, - 0x002eb2eb, - 0x006eb2eb, - 0x00aeb2eb, - 0x00eeb2eb, - 0x002fb2eb, - 0x006fb2eb, - 0x00afb2eb, - 0x00efb2eb, - 0x002cb6eb, - 0x006cb6eb, - 0x00acb6eb, - 0x00ecb6eb, - 0x002db6eb, - 0x006db6eb, - 0x00adb6eb, - 0x00edb6eb, - 0x002eb6eb, - 0x006eb6eb, - 0x00aeb6eb, - 0x00eeb6eb, - 0x002fb6eb, - 0x006fb6eb, - 0x00afb6eb, - 0x00efb6eb, - 0x002cbaeb, - 0x006cbaeb, - 0x00acbaeb, - 0x00ecbaeb, - 0x002dbaeb, - 0x006dbaeb, - 0x00adbaeb, - 0x00edbaeb, - 0x002ebaeb, - 0x006ebaeb, - 0x00aebaeb, - 0x00eebaeb, - 0x002fbaeb, - 0x006fbaeb, - 0x00afbaeb, - 0x00efbaeb, - 0x002cbeeb, - 0x006cbeeb, - 0x00acbeeb, - 0x00ecbeeb, - 0x002dbeeb, - 0x006dbeeb, - 0x00adbeeb, - 0x00edbeeb, - 0x002ebeeb, - 0x006ebeeb, - 0x00aebeeb, - 0x00eebeeb, - 0x002fbeeb, - 0x006fbeeb, - 0x00afbeeb, - 0x00efbeeb, - 0x002cb2fb, - 0x006cb2fb, - 0x00acb2fb, - 0x00ecb2fb, - 0x002db2fb, - 0x006db2fb, - 0x00adb2fb, - 0x00edb2fb, - 0x002eb2fb, - 0x006eb2fb, - 0x00aeb2fb, - 0x00eeb2fb, - 0x002fb2fb, - 0x006fb2fb, - 0x00afb2fb, - 0x00efb2fb, - 0x002cb6fb, - 0x006cb6fb, - 0x00acb6fb, - 0x00ecb6fb, - 0x002db6fb, - 0x006db6fb, - 0x00adb6fb, - 0x00edb6fb, - 0x002eb6fb, - 0x006eb6fb, - 0x00aeb6fb, - 0x00eeb6fb, - 0x002fb6fb, - 0x006fb6fb, - 0x00afb6fb, - 0x00efb6fb, - 0x002cbafb, - 0x006cbafb, - 0x00acbafb, - 0x00ecbafb, - 0x002dbafb, - 0x006dbafb, - 0x00adbafb, - 0x00edbafb, - 0x002ebafb, - 0x006ebafb, - 0x00aebafb, - 0x00eebafb, - 0x002fbafb, - 0x006fbafb, - 0x00afbafb, - 0x00efbafb, - 0x002cbefb, - 0x006cbefb, - 0x00acbefb, - 0x00ecbefb, - 0x002dbefb, - 0x006dbefb, - 0x00adbefb, - 0x00edbefb, - 0x002ebefb, - 0x006ebefb, - 0x00aebefb, - 0x00eebefb, - 0x002fbefb, - 0x006fbefb, - 0x00afbefb, - 0x00efbefb, - 0x0b2cb2cb, - 0x1b2cb2cb, - 0x2b2cb2cb, - 0x3b2cb2cb, - 0x0b6cb2cb, - 0x1b6cb2cb, - 0x2b6cb2cb, - 0x3b6cb2cb, - 0x0bacb2cb, - 0x1bacb2cb, - 0x2bacb2cb, - 0x3bacb2cb, - 0x0becb2cb, - 0x1becb2cb, - 0x2becb2cb, - 0x3becb2cb, - 0x0b2db2cb, - 0x1b2db2cb, - 0x2b2db2cb, - 0x3b2db2cb, - 0x0b6db2cb, - 0x1b6db2cb, - 0x2b6db2cb, - 0x3b6db2cb, - 0x0badb2cb, - 0x1badb2cb, - 0x2badb2cb, - 0x3badb2cb, - 0x0bedb2cb, - 0x1bedb2cb, - 0x2bedb2cb, - 0x3bedb2cb, - 0x0b2eb2cb, - 0x1b2eb2cb, - 0x2b2eb2cb, - 0x3b2eb2cb, - 0x0b6eb2cb, - 0x1b6eb2cb, - 0x2b6eb2cb, - 0x3b6eb2cb, - 0x0baeb2cb, - 0x1baeb2cb, - 0x2baeb2cb, - 0x3baeb2cb, - 0x0beeb2cb, - 0x1beeb2cb, - 0x2beeb2cb, - 0x3beeb2cb, - 0x0b2fb2cb, - 0x1b2fb2cb, - 0x2b2fb2cb, - 0x3b2fb2cb, - 0x0b6fb2cb, - 0x1b6fb2cb, - 0x2b6fb2cb, - 0x3b6fb2cb, - 0x0bafb2cb, - 0x1bafb2cb, - 0x2bafb2cb, - 0x3bafb2cb, - 0x0befb2cb, - 0x1befb2cb, - 0x2befb2cb, - 0x3befb2cb, - 0x0b2cb6cb, - 0x1b2cb6cb, - 0x2b2cb6cb, - 0x3b2cb6cb, - 0x0b6cb6cb, - 0x1b6cb6cb, - 0x2b6cb6cb, - 0x3b6cb6cb, - 0x0bacb6cb, - 0x1bacb6cb, - 0x2bacb6cb, - 0x3bacb6cb, - 0x0becb6cb, - 0x1becb6cb, - 0x2becb6cb, - 0x3becb6cb, - 0x0b2db6cb, - 0x1b2db6cb, - 0x2b2db6cb, - 0x3b2db6cb, - 0x0b6db6cb, - 0x1b6db6cb, - 0x2b6db6cb, - 0x3b6db6cb, - 0x0badb6cb, - 0x1badb6cb, - 0x2badb6cb, - 0x3badb6cb, - 0x0bedb6cb, - 0x1bedb6cb, - 0x2bedb6cb, - 0x3bedb6cb, - 0x0b2eb6cb, - 0x1b2eb6cb, - 0x2b2eb6cb, - 0x3b2eb6cb, - 0x0b6eb6cb, - 0x1b6eb6cb, - 0x2b6eb6cb, - 0x3b6eb6cb, - 0x0baeb6cb, - 0x1baeb6cb, - 0x2baeb6cb, - 0x3baeb6cb, - 0x0beeb6cb, - 0x1beeb6cb, - 0x2beeb6cb, - 0x3beeb6cb, - 0x0b2fb6cb, - 0x1b2fb6cb, - 0x2b2fb6cb, - 0x3b2fb6cb, - 0x0b6fb6cb, - 0x1b6fb6cb, - 0x2b6fb6cb, - 0x3b6fb6cb, - 0x0bafb6cb, - 0x1bafb6cb, - 0x2bafb6cb, - 0x3bafb6cb, - 0x0befb6cb, - 0x1befb6cb, - 0x2befb6cb, - 0x3befb6cb, - 0x0b2cbacb, - 0x1b2cbacb, - 0x2b2cbacb, - 0x3b2cbacb, - 0x0b6cbacb, - 0x1b6cbacb, - 0x2b6cbacb, - 0x3b6cbacb, - 0x0bacbacb, - 0x1bacbacb, - 0x2bacbacb, - 0x3bacbacb, - 0x0becbacb, - 0x1becbacb, - 0x2becbacb, - 0x3becbacb, - 0x0b2dbacb, - 0x1b2dbacb, - 0x2b2dbacb, - 0x3b2dbacb, - 0x0b6dbacb, - 0x1b6dbacb, - 0x2b6dbacb, - 0x3b6dbacb, - 0x0badbacb, - 0x1badbacb, - 0x2badbacb, - 0x3badbacb, - 0x0bedbacb, - 0x1bedbacb, - 0x2bedbacb, - 0x3bedbacb, - 0x0b2ebacb, - 0x1b2ebacb, - 0x2b2ebacb, - 0x3b2ebacb, - 0x0b6ebacb, - 0x1b6ebacb, - 0x2b6ebacb, - 0x3b6ebacb, - 0x0baebacb, - 0x1baebacb, - 0x2baebacb, - 0x3baebacb, - 0x0beebacb, - 0x1beebacb, - 0x2beebacb, - 0x3beebacb, - 0x0b2fbacb, - 0x1b2fbacb, - 0x2b2fbacb, - 0x3b2fbacb, - 0x0b6fbacb, - 0x1b6fbacb, - 0x2b6fbacb, - 0x3b6fbacb, - 0x0bafbacb, - 0x1bafbacb, - 0x2bafbacb, - 0x3bafbacb, - 0x0befbacb, - 0x1befbacb, - 0x2befbacb, - 0x3befbacb, - 0x0b2cbecb, - 0x1b2cbecb, - 0x2b2cbecb, - 0x3b2cbecb, - 0x0b6cbecb, - 0x1b6cbecb, - 0x2b6cbecb, - 0x3b6cbecb, - 0x0bacbecb, - 0x1bacbecb, - 0x2bacbecb, - 0x3bacbecb, - 0x0becbecb, - 0x1becbecb, - 0x2becbecb, - 0x3becbecb, - 0x0b2dbecb, - 0x1b2dbecb, - 0x2b2dbecb, - 0x3b2dbecb, - 0x0b6dbecb, - 0x1b6dbecb, - 0x2b6dbecb, - 0x3b6dbecb, - 0x0badbecb, - 0x1badbecb, - 0x2badbecb, - 0x3badbecb, - 0x0bedbecb, - 0x1bedbecb, - 0x2bedbecb, - 0x3bedbecb, - 0x0b2ebecb, - 0x1b2ebecb, - 0x2b2ebecb, - 0x3b2ebecb, - 0x0b6ebecb, - 0x1b6ebecb, - 0x2b6ebecb, - 0x3b6ebecb, - 0x0baebecb, - 0x1baebecb, - 0x2baebecb, - 0x3baebecb, - 0x0beebecb, - 0x1beebecb, - 0x2beebecb, - 0x3beebecb, - 0x0b2fbecb, - 0x1b2fbecb, - 0x2b2fbecb, - 0x3b2fbecb, - 0x0b6fbecb, - 0x1b6fbecb, - 0x2b6fbecb, - 0x3b6fbecb, - 0x0bafbecb, - 0x1bafbecb, - 0x2bafbecb, - 0x3bafbecb, - 0x0befbecb, - 0x1befbecb, - 0x2befbecb, - 0x3befbecb, - 0x0b2cb2db, - 0x1b2cb2db, - 0x2b2cb2db, - 0x3b2cb2db, - 0x0b6cb2db, - 0x1b6cb2db, - 0x2b6cb2db, - 0x3b6cb2db, - 0x0bacb2db, - 0x1bacb2db, - 0x2bacb2db, - 0x3bacb2db, - 0x0becb2db, - 0x1becb2db, - 0x2becb2db, - 0x3becb2db, - 0x0b2db2db, - 0x1b2db2db, - 0x2b2db2db, - 0x3b2db2db, - 0x0b6db2db, - 0x1b6db2db, - 0x2b6db2db, - 0x3b6db2db, - 0x0badb2db, - 0x1badb2db, - 0x2badb2db, - 0x3badb2db, - 0x0bedb2db, - 0x1bedb2db, - 0x2bedb2db, - 0x3bedb2db, - 0x0b2eb2db, - 0x1b2eb2db, - 0x2b2eb2db, - 0x3b2eb2db, - 0x0b6eb2db, - 0x1b6eb2db, - 0x2b6eb2db, - 0x3b6eb2db, - 0x0baeb2db, - 0x1baeb2db, - 0x2baeb2db, - 0x3baeb2db, - 0x0beeb2db, - 0x1beeb2db, - 0x2beeb2db, - 0x3beeb2db, - 0x0b2fb2db, - 0x1b2fb2db, - 0x2b2fb2db, - 0x3b2fb2db, - 0x0b6fb2db, - 0x1b6fb2db, - 0x2b6fb2db, - 0x3b6fb2db, - 0x0bafb2db, - 0x1bafb2db, - 0x2bafb2db, - 0x3bafb2db, - 0x0befb2db, - 0x1befb2db, - 0x2befb2db, - 0x3befb2db, - 0x0b2cb6db, - 0x1b2cb6db, - 0x2b2cb6db, - 0x3b2cb6db, - 0x0b6cb6db, - 0x1b6cb6db, - 0x2b6cb6db, - 0x3b6cb6db, - 0x0bacb6db, - 0x1bacb6db, - 0x2bacb6db, - 0x3bacb6db, - 0x0becb6db, - 0x1becb6db, - 0x2becb6db, - 0x3becb6db, - 0x0b2db6db, - 0x1b2db6db, - 0x2b2db6db, - 0x3b2db6db, - 0x0b6db6db, - 0x1b6db6db, - 0x2b6db6db, - 0x3b6db6db, - 0x0badb6db, - 0x1badb6db, - 0x2badb6db, - 0x3badb6db, - 0x0bedb6db, - 0x1bedb6db, - 0x2bedb6db, - 0x3bedb6db, - 0x0b2eb6db, - 0x1b2eb6db, - 0x2b2eb6db, - 0x3b2eb6db, - 0x0b6eb6db, - 0x1b6eb6db, - 0x2b6eb6db, - 0x3b6eb6db, - 0x0baeb6db, - 0x1baeb6db, - 0x2baeb6db, - 0x3baeb6db, -} - -var kNonZeroRepsDepth = [numCommandSymbols]uint32{ - 6, - 6, - 6, - 6, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, -} - -var kStaticCommandCodeBits = [numCommandSymbols]uint16{ - 0, - 256, - 128, - 384, - 64, - 320, - 192, - 448, - 32, - 288, - 160, - 416, - 96, - 352, - 224, - 480, - 16, - 272, - 144, - 400, - 80, - 336, - 208, - 464, - 48, - 304, - 176, - 432, - 112, - 368, - 240, - 496, - 8, - 264, - 136, - 392, - 72, - 328, - 200, - 456, - 40, - 296, - 168, - 424, - 104, - 360, - 232, - 488, - 24, - 280, - 152, - 408, - 88, - 344, - 216, - 472, - 56, - 312, - 184, - 440, - 120, - 376, - 248, - 504, - 4, - 260, - 132, - 388, - 68, - 324, - 196, - 452, - 36, - 292, - 164, - 420, - 100, - 356, - 228, - 484, - 20, - 276, - 148, - 404, - 84, - 340, - 212, - 468, - 52, - 308, - 180, - 436, - 116, - 372, - 244, - 500, - 12, - 268, - 140, - 396, - 76, - 332, - 204, - 460, - 44, - 300, - 172, - 428, - 108, - 364, - 236, - 492, - 28, - 284, - 156, - 412, - 92, - 348, - 220, - 476, - 60, - 316, - 188, - 444, - 124, - 380, - 252, - 508, - 2, - 258, - 130, - 386, - 66, - 322, - 194, - 450, - 34, - 290, - 162, - 418, - 98, - 354, - 226, - 482, - 18, - 274, - 146, - 402, - 82, - 338, - 210, - 466, - 50, - 306, - 178, - 434, - 114, - 370, - 242, - 498, - 10, - 266, - 138, - 394, - 74, - 330, - 202, - 458, - 42, - 298, - 170, - 426, - 106, - 362, - 234, - 490, - 26, - 282, - 154, - 410, - 90, - 346, - 218, - 474, - 58, - 314, - 186, - 442, - 122, - 378, - 250, - 506, - 6, - 262, - 134, - 390, - 70, - 326, - 198, - 454, - 38, - 294, - 166, - 422, - 102, - 358, - 230, - 486, - 22, - 278, - 150, - 406, - 86, - 342, - 214, - 470, - 54, - 310, - 182, - 438, - 118, - 374, - 246, - 502, - 14, - 270, - 142, - 398, - 78, - 334, - 206, - 462, - 46, - 302, - 174, - 430, - 110, - 366, - 238, - 494, - 30, - 286, - 158, - 414, - 94, - 350, - 222, - 478, - 62, - 318, - 190, - 446, - 126, - 382, - 254, - 510, - 1, - 257, - 129, - 385, - 65, - 321, - 193, - 449, - 33, - 289, - 161, - 417, - 97, - 353, - 225, - 481, - 17, - 273, - 145, - 401, - 81, - 337, - 209, - 465, - 49, - 305, - 177, - 433, - 113, - 369, - 241, - 497, - 9, - 265, - 137, - 393, - 73, - 329, - 201, - 457, - 41, - 297, - 169, - 425, - 105, - 361, - 233, - 489, - 25, - 281, - 153, - 409, - 89, - 345, - 217, - 473, - 57, - 313, - 185, - 441, - 121, - 377, - 249, - 505, - 5, - 261, - 133, - 389, - 69, - 325, - 197, - 453, - 37, - 293, - 165, - 421, - 101, - 357, - 229, - 485, - 21, - 277, - 149, - 405, - 85, - 341, - 213, - 469, - 53, - 309, - 181, - 437, - 117, - 373, - 245, - 501, - 13, - 269, - 141, - 397, - 77, - 333, - 205, - 461, - 45, - 301, - 173, - 429, - 109, - 365, - 237, - 493, - 29, - 285, - 157, - 413, - 93, - 349, - 221, - 477, - 61, - 317, - 189, - 445, - 125, - 381, - 253, - 509, - 3, - 259, - 131, - 387, - 67, - 323, - 195, - 451, - 35, - 291, - 163, - 419, - 99, - 355, - 227, - 483, - 19, - 275, - 147, - 403, - 83, - 339, - 211, - 467, - 51, - 307, - 179, - 435, - 115, - 371, - 243, - 499, - 11, - 267, - 139, - 395, - 75, - 331, - 203, - 459, - 43, - 299, - 171, - 427, - 107, - 363, - 235, - 491, - 27, - 283, - 155, - 411, - 91, - 347, - 219, - 475, - 59, - 315, - 187, - 443, - 123, - 379, - 251, - 507, - 7, - 1031, - 519, - 1543, - 263, - 1287, - 775, - 1799, - 135, - 1159, - 647, - 1671, - 391, - 1415, - 903, - 1927, - 71, - 1095, - 583, - 1607, - 327, - 1351, - 839, - 1863, - 199, - 1223, - 711, - 1735, - 455, - 1479, - 967, - 1991, - 39, - 1063, - 551, - 1575, - 295, - 1319, - 807, - 1831, - 167, - 1191, - 679, - 1703, - 423, - 1447, - 935, - 1959, - 103, - 1127, - 615, - 1639, - 359, - 1383, - 871, - 1895, - 231, - 1255, - 743, - 1767, - 487, - 1511, - 999, - 2023, - 23, - 1047, - 535, - 1559, - 279, - 1303, - 791, - 1815, - 151, - 1175, - 663, - 1687, - 407, - 1431, - 919, - 1943, - 87, - 1111, - 599, - 1623, - 343, - 1367, - 855, - 1879, - 215, - 1239, - 727, - 1751, - 471, - 1495, - 983, - 2007, - 55, - 1079, - 567, - 1591, - 311, - 1335, - 823, - 1847, - 183, - 1207, - 695, - 1719, - 439, - 1463, - 951, - 1975, - 119, - 1143, - 631, - 1655, - 375, - 1399, - 887, - 1911, - 247, - 1271, - 759, - 1783, - 503, - 1527, - 1015, - 2039, - 15, - 1039, - 527, - 1551, - 271, - 1295, - 783, - 1807, - 143, - 1167, - 655, - 1679, - 399, - 1423, - 911, - 1935, - 79, - 1103, - 591, - 1615, - 335, - 1359, - 847, - 1871, - 207, - 1231, - 719, - 1743, - 463, - 1487, - 975, - 1999, - 47, - 1071, - 559, - 1583, - 303, - 1327, - 815, - 1839, - 175, - 1199, - 687, - 1711, - 431, - 1455, - 943, - 1967, - 111, - 1135, - 623, - 1647, - 367, - 1391, - 879, - 1903, - 239, - 1263, - 751, - 1775, - 495, - 1519, - 1007, - 2031, - 31, - 1055, - 543, - 1567, - 287, - 1311, - 799, - 1823, - 159, - 1183, - 671, - 1695, - 415, - 1439, - 927, - 1951, - 95, - 1119, - 607, - 1631, - 351, - 1375, - 863, - 1887, - 223, - 1247, - 735, - 1759, - 479, - 1503, - 991, - 2015, - 63, - 1087, - 575, - 1599, - 319, - 1343, - 831, - 1855, - 191, - 1215, - 703, - 1727, - 447, - 1471, - 959, - 1983, - 127, - 1151, - 639, - 1663, - 383, - 1407, - 895, - 1919, - 255, - 1279, - 767, - 1791, - 511, - 1535, - 1023, - 2047, -} - -func storeStaticCommandHuffmanTree(bw *bitWriter) { - bw.writeBits(32, 0x16307003) - bw.writeBits(24, 0x926244) - bw.writeBits(3, 0x00000000) -} - -var kStaticDistanceCodeBits = [64]uint16{ - 0, - 32, - 16, - 48, - 8, - 40, - 24, - 56, - 4, - 36, - 20, - 52, - 12, - 44, - 28, - 60, - 2, - 34, - 18, - 50, - 10, - 42, - 26, - 58, - 6, - 38, - 22, - 54, - 14, - 46, - 30, - 62, - 1, - 33, - 17, - 49, - 9, - 41, - 25, - 57, - 5, - 37, - 21, - 53, - 13, - 45, - 29, - 61, - 3, - 35, - 19, - 51, - 11, - 43, - 27, - 59, - 7, - 39, - 23, - 55, - 15, - 47, - 31, - 63, -} - -func storeStaticDistanceHuffmanTree(bw *bitWriter) { - bw.writeBits(28, 0x0369DC03) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/fast_log.go b/backend/vendor/github.com/andybalholm/brotli/fast_log.go deleted file mode 100644 index 600337a2..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/fast_log.go +++ /dev/null @@ -1,299 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Utilities for fast computation of logarithms. */ - -func log2FloorNonZero(n uint) uint32 { - /* TODO: generalize and move to platform.h */ - var result uint32 = 0 - for { - n >>= 1 - if n == 0 { - break - } - result++ - } - return result -} - -/* -A lookup table for small values of log2(int) to be used in entropy - - computation. - - ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) -*/ -var kLog2Table = []float32{ - 0.0000000000000000, - 0.0000000000000000, - 1.0000000000000000, - 1.5849625007211563, - 2.0000000000000000, - 2.3219280948873622, - 2.5849625007211561, - 2.8073549220576042, - 3.0000000000000000, - 3.1699250014423126, - 3.3219280948873626, - 3.4594316186372978, - 3.5849625007211565, - 3.7004397181410922, - 3.8073549220576037, - 3.9068905956085187, - 4.0000000000000000, - 4.0874628412503400, - 4.1699250014423122, - 4.2479275134435852, - 4.3219280948873626, - 4.3923174227787607, - 4.4594316186372973, - 4.5235619560570131, - 4.5849625007211570, - 4.6438561897747244, - 4.7004397181410926, - 4.7548875021634691, - 4.8073549220576037, - 4.8579809951275728, - 4.9068905956085187, - 4.9541963103868758, - 5.0000000000000000, - 5.0443941193584534, - 5.0874628412503400, - 5.1292830169449664, - 5.1699250014423122, - 5.2094533656289501, - 5.2479275134435852, - 5.2854022188622487, - 5.3219280948873626, - 5.3575520046180838, - 5.3923174227787607, - 5.4262647547020979, - 5.4594316186372973, - 5.4918530963296748, - 5.5235619560570131, - 5.5545888516776376, - 5.5849625007211570, - 5.6147098441152083, - 5.6438561897747244, - 5.6724253419714961, - 5.7004397181410926, - 5.7279204545631996, - 5.7548875021634691, - 5.7813597135246599, - 5.8073549220576046, - 5.8328900141647422, - 5.8579809951275719, - 5.8826430493618416, - 5.9068905956085187, - 5.9307373375628867, - 5.9541963103868758, - 5.9772799234999168, - 6.0000000000000000, - 6.0223678130284544, - 6.0443941193584534, - 6.0660891904577721, - 6.0874628412503400, - 6.1085244567781700, - 6.1292830169449672, - 6.1497471195046822, - 6.1699250014423122, - 6.1898245588800176, - 6.2094533656289510, - 6.2288186904958804, - 6.2479275134435861, - 6.2667865406949019, - 6.2854022188622487, - 6.3037807481771031, - 6.3219280948873617, - 6.3398500028846252, - 6.3575520046180847, - 6.3750394313469254, - 6.3923174227787598, - 6.4093909361377026, - 6.4262647547020979, - 6.4429434958487288, - 6.4594316186372982, - 6.4757334309663976, - 6.4918530963296748, - 6.5077946401986964, - 6.5235619560570131, - 6.5391588111080319, - 6.5545888516776376, - 6.5698556083309478, - 6.5849625007211561, - 6.5999128421871278, - 6.6147098441152092, - 6.6293566200796095, - 6.6438561897747253, - 6.6582114827517955, - 6.6724253419714952, - 6.6865005271832185, - 6.7004397181410917, - 6.7142455176661224, - 6.7279204545631988, - 6.7414669864011465, - 6.7548875021634691, - 6.7681843247769260, - 6.7813597135246599, - 6.7944158663501062, - 6.8073549220576037, - 6.8201789624151887, - 6.8328900141647422, - 6.8454900509443757, - 6.8579809951275719, - 6.8703647195834048, - 6.8826430493618416, - 6.8948177633079437, - 6.9068905956085187, - 6.9188632372745955, - 6.9307373375628867, - 6.9425145053392399, - 6.9541963103868758, - 6.9657842846620879, - 6.9772799234999168, - 6.9886846867721664, - 7.0000000000000000, - 7.0112272554232540, - 7.0223678130284544, - 7.0334230015374501, - 7.0443941193584534, - 7.0552824355011898, - 7.0660891904577721, - 7.0768155970508317, - 7.0874628412503400, - 7.0980320829605272, - 7.1085244567781700, - 7.1189410727235076, - 7.1292830169449664, - 7.1395513523987937, - 7.1497471195046822, - 7.1598713367783891, - 7.1699250014423130, - 7.1799090900149345, - 7.1898245588800176, - 7.1996723448363644, - 7.2094533656289492, - 7.2191685204621621, - 7.2288186904958804, - 7.2384047393250794, - 7.2479275134435861, - 7.2573878426926521, - 7.2667865406949019, - 7.2761244052742384, - 7.2854022188622487, - 7.2946207488916270, - 7.3037807481771031, - 7.3128829552843557, - 7.3219280948873617, - 7.3309168781146177, - 7.3398500028846243, - 7.3487281542310781, - 7.3575520046180847, - 7.3663222142458151, - 7.3750394313469254, - 7.3837042924740528, - 7.3923174227787607, - 7.4008794362821844, - 7.4093909361377026, - 7.4178525148858991, - 7.4262647547020979, - 7.4346282276367255, - 7.4429434958487288, - 7.4512111118323299, - 7.4594316186372973, - 7.4676055500829976, - 7.4757334309663976, - 7.4838157772642564, - 7.4918530963296748, - 7.4998458870832057, - 7.5077946401986964, - 7.5156998382840436, - 7.5235619560570131, - 7.5313814605163119, - 7.5391588111080319, - 7.5468944598876373, - 7.5545888516776376, - 7.5622424242210728, - 7.5698556083309478, - 7.5774288280357487, - 7.5849625007211561, - 7.5924570372680806, - 7.5999128421871278, - 7.6073303137496113, - 7.6147098441152075, - 7.6220518194563764, - 7.6293566200796095, - 7.6366246205436488, - 7.6438561897747244, - 7.6510516911789290, - 7.6582114827517955, - 7.6653359171851765, - 7.6724253419714952, - 7.6794800995054464, - 7.6865005271832185, - 7.6934869574993252, - 7.7004397181410926, - 7.7073591320808825, - 7.7142455176661224, - 7.7210991887071856, - 7.7279204545631996, - 7.7347096202258392, - 7.7414669864011465, - 7.7481928495894596, - 7.7548875021634691, - 7.7615512324444795, - 7.7681843247769260, - 7.7747870596011737, - 7.7813597135246608, - 7.7879025593914317, - 7.7944158663501062, - 7.8008998999203047, - 7.8073549220576037, - 7.8137811912170374, - 7.8201789624151887, - 7.8265484872909159, - 7.8328900141647422, - 7.8392037880969445, - 7.8454900509443757, - 7.8517490414160571, - 7.8579809951275719, - 7.8641861446542798, - 7.8703647195834048, - 7.8765169465650002, - 7.8826430493618425, - 7.8887432488982601, - 7.8948177633079446, - 7.9008668079807496, - 7.9068905956085187, - 7.9128893362299619, - 7.9188632372745955, - 7.9248125036057813, - 7.9307373375628867, - 7.9366379390025719, - 7.9425145053392399, - 7.9483672315846778, - 7.9541963103868758, - 7.9600019320680806, - 7.9657842846620870, - 7.9715435539507720, - 7.9772799234999168, - 7.9829935746943104, - 7.9886846867721664, - 7.9943534368588578, -} - -/* Faster logarithm for small integers, with the property of log2(0) == 0. */ -func fastLog2(v uint) float64 { - if v < uint(len(kLog2Table)) { - return float64(kLog2Table[v]) - } - - return math.Log2(float64(v)) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/find_match_length.go b/backend/vendor/github.com/andybalholm/brotli/find_match_length.go deleted file mode 100644 index 09d2ae67..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/find_match_length.go +++ /dev/null @@ -1,45 +0,0 @@ -package brotli - -import ( - "encoding/binary" - "math/bits" - "runtime" -) - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function to find maximal matching prefixes of strings. */ -func findMatchLengthWithLimit(s1 []byte, s2 []byte, limit uint) uint { - var matched uint = 0 - _, _ = s1[limit-1], s2[limit-1] // bounds check - switch runtime.GOARCH { - case "amd64": - // Compare 8 bytes at at time. - for matched+8 <= limit { - w1 := binary.LittleEndian.Uint64(s1[matched:]) - w2 := binary.LittleEndian.Uint64(s2[matched:]) - if w1 != w2 { - return matched + uint(bits.TrailingZeros64(w1^w2)>>3) - } - matched += 8 - } - case "386": - // Compare 4 bytes at at time. - for matched+4 <= limit { - w1 := binary.LittleEndian.Uint32(s1[matched:]) - w2 := binary.LittleEndian.Uint32(s2[matched:]) - if w1 != w2 { - return matched + uint(bits.TrailingZeros32(w1^w2)>>3) - } - matched += 4 - } - } - for matched < limit && s1[matched] == s2[matched] { - matched++ - } - return matched -} diff --git a/backend/vendor/github.com/andybalholm/brotli/h10.go b/backend/vendor/github.com/andybalholm/brotli/h10.go deleted file mode 100644 index 5933ea2a..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/h10.go +++ /dev/null @@ -1,299 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func (*h10) HashTypeLength() uint { - return 4 -} - -func (*h10) StoreLookahead() uint { - return 128 -} - -func hashBytesH10(data []byte) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return h >> (32 - 17) -} - -/* -A (forgetful) hash table where each hash bucket contains a binary tree of - - sequences whose first 4 bytes share the same hash code. - Each sequence is 128 long and is identified by its starting - position in the input data. The binary tree is sorted by the lexicographic - order of the sequences, and it is also a max-heap with respect to the - starting positions. -*/ -type h10 struct { - hasherCommon - window_mask_ uint - buckets_ [1 << 17]uint32 - invalid_pos_ uint32 - forest []uint32 -} - -func (h *h10) Initialize(params *encoderParams) { - h.window_mask_ = (1 << params.lgwin) - 1 - h.invalid_pos_ = uint32(0 - h.window_mask_) - var num_nodes uint = uint(1) << params.lgwin - h.forest = make([]uint32, 2*num_nodes) -} - -func (h *h10) Prepare(one_shot bool, input_size uint, data []byte) { - var invalid_pos uint32 = h.invalid_pos_ - var i uint32 - for i = 0; i < 1<<17; i++ { - h.buckets_[i] = invalid_pos - } -} - -func leftChildIndexH10(self *h10, pos uint) uint { - return 2 * (pos & self.window_mask_) -} - -func rightChildIndexH10(self *h10, pos uint) uint { - return 2*(pos&self.window_mask_) + 1 -} - -/* -Stores the hash of the next 4 bytes and in a single tree-traversal, the - - hash bucket's binary tree is searched for matches and is re-rooted at the - current position. - - If less than 128 data is available, the hash bucket of the - current position is searched for matches, but the state of the hash table - is not changed, since we can not know the final sorting order of the - current (incomplete) sequence. - - This function must be called with increasing cur_ix positions. -*/ -func storeAndFindMatchesH10(self *h10, data []byte, cur_ix uint, ring_buffer_mask uint, max_length uint, max_backward uint, best_len *uint, matches []backwardMatch) []backwardMatch { - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var max_comp_len uint = brotli_min_size_t(max_length, 128) - var should_reroot_tree bool = (max_length >= 128) - var key uint32 = hashBytesH10(data[cur_ix_masked:]) - var forest []uint32 = self.forest - var prev_ix uint = uint(self.buckets_[key]) - var node_left uint = leftChildIndexH10(self, cur_ix) - var node_right uint = rightChildIndexH10(self, cur_ix) - var best_len_left uint = 0 - var best_len_right uint = 0 - var depth_remaining uint - /* The forest index of the rightmost node of the left subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - - /* The forest index of the leftmost node of the right subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - - /* The match length of the rightmost node of the left subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - - /* The match length of the leftmost node of the right subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - if should_reroot_tree { - self.buckets_[key] = uint32(cur_ix) - } - - for depth_remaining = 64; ; depth_remaining-- { - var backward uint = cur_ix - prev_ix - var prev_ix_masked uint = prev_ix & ring_buffer_mask - if backward == 0 || backward > max_backward || depth_remaining == 0 { - if should_reroot_tree { - forest[node_left] = self.invalid_pos_ - forest[node_right] = self.invalid_pos_ - } - - break - } - { - var cur_len uint = brotli_min_size_t(best_len_left, best_len_right) - var len uint - assert(cur_len <= 128) - len = cur_len + findMatchLengthWithLimit(data[cur_ix_masked+cur_len:], data[prev_ix_masked+cur_len:], max_length-cur_len) - if matches != nil && len > *best_len { - *best_len = uint(len) - initBackwardMatch(&matches[0], backward, uint(len)) - matches = matches[1:] - } - - if len >= max_comp_len { - if should_reroot_tree { - forest[node_left] = forest[leftChildIndexH10(self, prev_ix)] - forest[node_right] = forest[rightChildIndexH10(self, prev_ix)] - } - - break - } - - if data[cur_ix_masked+len] > data[prev_ix_masked+len] { - best_len_left = uint(len) - if should_reroot_tree { - forest[node_left] = uint32(prev_ix) - } - - node_left = rightChildIndexH10(self, prev_ix) - prev_ix = uint(forest[node_left]) - } else { - best_len_right = uint(len) - if should_reroot_tree { - forest[node_right] = uint32(prev_ix) - } - - node_right = leftChildIndexH10(self, prev_ix) - prev_ix = uint(forest[node_right]) - } - } - } - - return matches -} - -/* -Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the - - length of max_length and stores the position cur_ix in the hash table. - - Sets *num_matches to the number of matches found, and stores the found - matches in matches[0] to matches[*num_matches - 1]. The matches will be - sorted by strictly increasing length and (non-strictly) increasing - distance. -*/ -func findAllMatchesH10(handle *h10, dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, cur_ix uint, max_length uint, max_backward uint, gap uint, params *encoderParams, matches []backwardMatch) uint { - var orig_matches []backwardMatch = matches - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var best_len uint = 1 - var short_match_max_backward uint - if params.quality != hqZopflificationQuality { - short_match_max_backward = 16 - } else { - short_match_max_backward = 64 - } - var stop uint = cur_ix - short_match_max_backward - var dict_matches [maxStaticDictionaryMatchLen + 1]uint32 - var i uint - if cur_ix < short_match_max_backward { - stop = 0 - } - for i = cur_ix - 1; i > stop && best_len <= 2; i-- { - var prev_ix uint = i - var backward uint = cur_ix - prev_ix - if backward > max_backward { - break - } - - prev_ix &= ring_buffer_mask - if data[cur_ix_masked] != data[prev_ix] || data[cur_ix_masked+1] != data[prev_ix+1] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len > best_len { - best_len = uint(len) - initBackwardMatch(&matches[0], backward, uint(len)) - matches = matches[1:] - } - } - } - - if best_len < max_length { - matches = storeAndFindMatchesH10(handle, data, cur_ix, ring_buffer_mask, max_length, max_backward, &best_len, matches) - } - - for i = 0; i <= maxStaticDictionaryMatchLen; i++ { - dict_matches[i] = kInvalidMatch - } - { - var minlen uint = brotli_max_size_t(4, best_len+1) - if findAllStaticDictionaryMatches(dictionary, data[cur_ix_masked:], minlen, max_length, dict_matches[0:]) { - var maxlen uint = brotli_min_size_t(maxStaticDictionaryMatchLen, max_length) - var l uint - for l = minlen; l <= maxlen; l++ { - var dict_id uint32 = dict_matches[l] - if dict_id < kInvalidMatch { - var distance uint = max_backward + gap + uint(dict_id>>5) + 1 - if distance <= params.dist.max_distance { - initDictionaryBackwardMatch(&matches[0], distance, l, uint(dict_id&31)) - matches = matches[1:] - } - } - } - } - } - - return uint(-cap(matches) + cap(orig_matches)) -} - -/* -Stores the hash of the next 4 bytes and re-roots the binary tree at the - - current sequence, without returning any matches. - REQUIRES: ix + 128 <= end-of-current-block -*/ -func (h *h10) Store(data []byte, mask uint, ix uint) { - var max_backward uint = h.window_mask_ - windowGap + 1 - /* Maximum distance is window size - 16, see section 9.1. of the spec. */ - storeAndFindMatchesH10(h, data, ix, mask, 128, max_backward, nil, nil) -} - -func (h *h10) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint = ix_start - var j uint = ix_start - if ix_start+63 <= ix_end { - i = ix_end - 63 - } - - if ix_start+512 <= i { - for ; j < i; j += 8 { - h.Store(data, mask, j) - } - } - - for ; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *h10) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 128 { - var i_start uint = position - 128 + 1 - var i_end uint = brotli_min_size_t(position, i_start+num_bytes) - /* Store the last `128 - 1` positions in the hasher. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - - var i uint - for i = i_start; i < i_end; i++ { - /* Maximum distance is window size - 16, see section 9.1. of the spec. - Furthermore, we have to make sure that we don't look further back - from the start of the next block than the window size, otherwise we - could access already overwritten areas of the ring-buffer. */ - var max_backward uint = h.window_mask_ - brotli_max_size_t(windowGap-1, position-i) - - /* We know that i + 128 <= position + num_bytes, i.e. the - end of the current block and that we have at least - 128 tail in the ring-buffer. */ - storeAndFindMatchesH10(h, ringbuffer, i, ringbuffer_mask, 128, max_backward, nil, nil) - } - } -} - -/* MAX_NUM_MATCHES == 64 + MAX_TREE_SEARCH_DEPTH */ -const maxNumMatchesH10 = 128 - -func (*h10) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - panic("unimplemented") -} - -func (*h10) PrepareDistanceCache(distance_cache []int) { - panic("unimplemented") -} diff --git a/backend/vendor/github.com/andybalholm/brotli/h5.go b/backend/vendor/github.com/andybalholm/brotli/h5.go deleted file mode 100644 index 58b51b4b..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/h5.go +++ /dev/null @@ -1,223 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -A (forgetful) hash table to the data seen by the compressor, to - - help create backward references to previous data. - - This is a hash map of fixed size (bucket_size_) to a ring buffer of - fixed size (block_size_). The ring buffer contains the last block_size_ - index positions of the given hash key in the compressed data. -*/ -func (*h5) HashTypeLength() uint { - return 4 -} - -func (*h5) StoreLookahead() uint { - return 4 -} - -/* HashBytes is the function that chooses the bucket to place the address in. */ -func hashBytesH5(data []byte, shift int) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint32(h >> uint(shift)) -} - -type h5 struct { - hasherCommon - bucket_size_ uint - block_size_ uint - hash_shift_ int - block_mask_ uint32 - num []uint16 - buckets []uint32 -} - -func (h *h5) Initialize(params *encoderParams) { - h.hash_shift_ = 32 - h.params.bucket_bits - h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) - h.block_size_ = uint(1) << uint(h.params.block_bits) - h.block_mask_ = uint32(h.block_size_ - 1) - h.num = make([]uint16, h.bucket_size_) - h.buckets = make([]uint32, h.block_size_*h.bucket_size_) -} - -func (h *h5) Prepare(one_shot bool, input_size uint, data []byte) { - var num []uint16 = h.num - var partial_prepare_threshold uint = h.bucket_size_ >> 6 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var key uint32 = hashBytesH5(data[i:], h.hash_shift_) - num[key] = 0 - } - } else { - for i := 0; i < int(h.bucket_size_); i++ { - num[i] = 0 - } - } -} - -/* -Look at 4 bytes at &data[ix & mask]. - - Compute a hash from these, and store the value of ix at that position. -*/ -func (h *h5) Store(data []byte, mask uint, ix uint) { - var num []uint16 = h.num - var key uint32 = hashBytesH5(data[ix&mask:], h.hash_shift_) - var minor_ix uint = uint(num[key]) & uint(h.block_mask_) - var offset uint = minor_ix + uint(key<= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ringbuffer_mask, position-3) - h.Store(ringbuffer, ringbuffer_mask, position-2) - h.Store(ringbuffer, ringbuffer_mask, position-1) - } -} - -func (h *h5) PrepareDistanceCache(distance_cache []int) { - prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) -} - -/* -Find a longest backward match of &data[cur_ix] up to the length of - - max_length and stores the position cur_ix in the hash table. - - REQUIRES: PrepareDistanceCacheH5 must be invoked for current distance cache - values; if this method is invoked repeatedly with the same distance - cache values, it is enough to invoke PrepareDistanceCacheH5 once. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. -*/ -func (h *h5) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var num []uint16 = h.num - var buckets []uint32 = h.buckets - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = out.len - var i uint - var bucket []uint32 - /* Don't accept a short copy from far away. */ - out.len = 0 - - out.len_code_delta = 0 - - /* Try last distance first. */ - for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { - var backward uint = uint(distance_cache[i]) - var prev_ix uint = uint(cur_ix - backward) - if prev_ix >= cur_ix { - continue - } - - if backward > max_backward { - continue - } - - prev_ix &= ring_buffer_mask - - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 3 || (len == 2 && i < 2) { - /* Comparing for >= 2 does not change the semantics, but just saves for - a few unnecessary binary logarithms in backward reference score, - since we are not interested in such short matches. */ - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - if i != 0 { - score -= backwardReferencePenaltyUsingLastDistance(i) - } - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - } - { - var key uint32 = hashBytesH5(data[cur_ix_masked:], h.hash_shift_) - bucket = buckets[key< h.block_size_ { - down = uint(num[key]) - h.block_size_ - } else { - down = 0 - } - for i = uint(num[key]); i > down; { - var prev_ix uint - i-- - prev_ix = uint(bucket[uint32(i)&h.block_mask_]) - var backward uint = cur_ix - prev_ix - if backward > max_backward { - break - } - - prev_ix &= ring_buffer_mask - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - /* Comparing for >= 3 does not change the semantics, but just saves - for a few unnecessary binary logarithms in backward reference - score, since we are not interested in such short matches. */ - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - - bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) - num[key]++ - } - - if min_score == out.score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/h6.go b/backend/vendor/github.com/andybalholm/brotli/h6.go deleted file mode 100644 index d2902b46..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/h6.go +++ /dev/null @@ -1,225 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -A (forgetful) hash table to the data seen by the compressor, to - - help create backward references to previous data. - - This is a hash map of fixed size (bucket_size_) to a ring buffer of - fixed size (block_size_). The ring buffer contains the last block_size_ - index positions of the given hash key in the compressed data. -*/ -func (*h6) HashTypeLength() uint { - return 8 -} - -func (*h6) StoreLookahead() uint { - return 8 -} - -/* HashBytes is the function that chooses the bucket to place the address in. */ -func hashBytesH6(data []byte, mask uint64, shift int) uint32 { - var h uint64 = (binary.LittleEndian.Uint64(data) & mask) * kHashMul64Long - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint32(h >> uint(shift)) -} - -type h6 struct { - hasherCommon - bucket_size_ uint - block_size_ uint - hash_shift_ int - hash_mask_ uint64 - block_mask_ uint32 - num []uint16 - buckets []uint32 -} - -func (h *h6) Initialize(params *encoderParams) { - h.hash_shift_ = 64 - h.params.bucket_bits - h.hash_mask_ = (^(uint64(0))) >> uint(64-8*h.params.hash_len) - h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) - h.block_size_ = uint(1) << uint(h.params.block_bits) - h.block_mask_ = uint32(h.block_size_ - 1) - h.num = make([]uint16, h.bucket_size_) - h.buckets = make([]uint32, h.block_size_*h.bucket_size_) -} - -func (h *h6) Prepare(one_shot bool, input_size uint, data []byte) { - var num []uint16 = h.num - var partial_prepare_threshold uint = h.bucket_size_ >> 6 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var key uint32 = hashBytesH6(data[i:], h.hash_mask_, h.hash_shift_) - num[key] = 0 - } - } else { - for i := 0; i < int(h.bucket_size_); i++ { - num[i] = 0 - } - } -} - -/* -Look at 4 bytes at &data[ix & mask]. - - Compute a hash from these, and store the value of ix at that position. -*/ -func (h *h6) Store(data []byte, mask uint, ix uint) { - var num []uint16 = h.num - var key uint32 = hashBytesH6(data[ix&mask:], h.hash_mask_, h.hash_shift_) - var minor_ix uint = uint(num[key]) & uint(h.block_mask_) - var offset uint = minor_ix + uint(key<= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ringbuffer_mask, position-3) - h.Store(ringbuffer, ringbuffer_mask, position-2) - h.Store(ringbuffer, ringbuffer_mask, position-1) - } -} - -func (h *h6) PrepareDistanceCache(distance_cache []int) { - prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) -} - -/* -Find a longest backward match of &data[cur_ix] up to the length of - - max_length and stores the position cur_ix in the hash table. - - REQUIRES: PrepareDistanceCacheH6 must be invoked for current distance cache - values; if this method is invoked repeatedly with the same distance - cache values, it is enough to invoke PrepareDistanceCacheH6 once. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. -*/ -func (h *h6) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var num []uint16 = h.num - var buckets []uint32 = h.buckets - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = out.len - var i uint - var bucket []uint32 - /* Don't accept a short copy from far away. */ - out.len = 0 - - out.len_code_delta = 0 - - /* Try last distance first. */ - for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { - var backward uint = uint(distance_cache[i]) - var prev_ix uint = uint(cur_ix - backward) - if prev_ix >= cur_ix { - continue - } - - if backward > max_backward { - continue - } - - prev_ix &= ring_buffer_mask - - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 3 || (len == 2 && i < 2) { - /* Comparing for >= 2 does not change the semantics, but just saves for - a few unnecessary binary logarithms in backward reference score, - since we are not interested in such short matches. */ - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - if i != 0 { - score -= backwardReferencePenaltyUsingLastDistance(i) - } - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - } - { - var key uint32 = hashBytesH6(data[cur_ix_masked:], h.hash_mask_, h.hash_shift_) - bucket = buckets[key< h.block_size_ { - down = uint(num[key]) - h.block_size_ - } else { - down = 0 - } - for i = uint(num[key]); i > down; { - var prev_ix uint - i-- - prev_ix = uint(bucket[uint32(i)&h.block_mask_]) - var backward uint = cur_ix - prev_ix - if backward > max_backward { - break - } - - prev_ix &= ring_buffer_mask - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - /* Comparing for >= 3 does not change the semantics, but just saves - for a few unnecessary binary logarithms in backward reference - score, since we are not interested in such short matches. */ - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - - bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) - num[key]++ - } - - if min_score == out.score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/hash.go b/backend/vendor/github.com/andybalholm/brotli/hash.go deleted file mode 100644 index 5d49b86d..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/hash.go +++ /dev/null @@ -1,349 +0,0 @@ -package brotli - -import ( - "encoding/binary" - "fmt" -) - -type hasherCommon struct { - params hasherParams - is_prepared_ bool - dict_num_lookups uint - dict_num_matches uint -} - -func (h *hasherCommon) Common() *hasherCommon { - return h -} - -type hasherHandle interface { - Common() *hasherCommon - Initialize(params *encoderParams) - Prepare(one_shot bool, input_size uint, data []byte) - StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) - HashTypeLength() uint - StoreLookahead() uint - PrepareDistanceCache(distance_cache []int) - FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) - StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) - Store(data []byte, mask uint, ix uint) -} - -type score_t uint - -const kCutoffTransformsCount uint32 = 10 - -/* 0, 12, 27, 23, 42, 63, 56, 48, 59, 64 */ -/* 0+0, 4+8, 8+19, 12+11, 16+26, 20+43, 24+32, 28+20, 32+27, 36+28 */ -const kCutoffTransforms uint64 = 0x071B520ADA2D3200 - -type hasherSearchResult struct { - len uint - distance uint - score uint - len_code_delta int -} - -/* -kHashMul32 multiplier has these properties: - - The multiplier must be odd. Otherwise we may lose the highest bit. - - No long streaks of ones or zeros. - - There is no effort to ensure that it is a prime, the oddity is enough - for this use. - - The number has been tuned heuristically against compression benchmarks. -*/ -const kHashMul32 uint32 = 0x1E35A7BD - -const kHashMul64 uint64 = 0x1E35A7BD1E35A7BD - -const kHashMul64Long uint64 = 0x1FE35A7BD3579BD3 - -func hash14(data []byte) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return h >> (32 - 14) -} - -func prepareDistanceCache(distance_cache []int, num_distances int) { - if num_distances > 4 { - var last_distance int = distance_cache[0] - distance_cache[4] = last_distance - 1 - distance_cache[5] = last_distance + 1 - distance_cache[6] = last_distance - 2 - distance_cache[7] = last_distance + 2 - distance_cache[8] = last_distance - 3 - distance_cache[9] = last_distance + 3 - if num_distances > 10 { - var next_last_distance int = distance_cache[1] - distance_cache[10] = next_last_distance - 1 - distance_cache[11] = next_last_distance + 1 - distance_cache[12] = next_last_distance - 2 - distance_cache[13] = next_last_distance + 2 - distance_cache[14] = next_last_distance - 3 - distance_cache[15] = next_last_distance + 3 - } - } -} - -const literalByteScore = 135 - -const distanceBitPenalty = 30 - -/* Score must be positive after applying maximal penalty. */ -const scoreBase = (distanceBitPenalty * 8 * 8) - -/* -Usually, we always choose the longest backward reference. This function - - allows for the exception of that rule. - - If we choose a backward reference that is further away, it will - usually be coded with more bits. We approximate this by assuming - log2(distance). If the distance can be expressed in terms of the - last four distances, we use some heuristic constants to estimate - the bits cost. For the first up to four literals we use the bit - cost of the literals from the literal cost model, after that we - use the average bit cost of the cost model. - - This function is used to sometimes discard a longer backward reference - when it is not much longer and the bit cost for encoding it is more - than the saved literals. - - backward_reference_offset MUST be positive. -*/ -func backwardReferenceScore(copy_length uint, backward_reference_offset uint) uint { - return scoreBase + literalByteScore*uint(copy_length) - distanceBitPenalty*uint(log2FloorNonZero(backward_reference_offset)) -} - -func backwardReferenceScoreUsingLastDistance(copy_length uint) uint { - return literalByteScore*uint(copy_length) + scoreBase + 15 -} - -func backwardReferencePenaltyUsingLastDistance(distance_short_code uint) uint { - return uint(39) + ((0x1CA10 >> (distance_short_code & 0xE)) & 0xE) -} - -func testStaticDictionaryItem(dictionary *encoderDictionary, item uint, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult) bool { - var len uint - var word_idx uint - var offset uint - var matchlen uint - var backward uint - var score uint - len = item & 0x1F - word_idx = item >> 5 - offset = uint(dictionary.words.offsets_by_length[len]) + len*word_idx - if len > max_length { - return false - } - - matchlen = findMatchLengthWithLimit(data, dictionary.words.data[offset:], uint(len)) - if matchlen+uint(dictionary.cutoffTransformsCount) <= len || matchlen == 0 { - return false - } - { - var cut uint = len - matchlen - var transform_id uint = (cut << 2) + uint((dictionary.cutoffTransforms>>(cut*6))&0x3F) - backward = max_backward + 1 + word_idx + (transform_id << dictionary.words.size_bits_by_length[len]) - } - - if backward > max_distance { - return false - } - - score = backwardReferenceScore(matchlen, backward) - if score < out.score { - return false - } - - out.len = matchlen - out.len_code_delta = int(len) - int(matchlen) - out.distance = backward - out.score = score - return true -} - -func searchInStaticDictionary(dictionary *encoderDictionary, handle hasherHandle, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult, shallow bool) { - var key uint - var i uint - var self *hasherCommon = handle.Common() - if self.dict_num_matches < self.dict_num_lookups>>7 { - return - } - - key = uint(hash14(data) << 1) - for i = 0; ; (func() { i++; key++ })() { - var tmp uint - if shallow { - tmp = 1 - } else { - tmp = 2 - } - if i >= tmp { - break - } - var item uint = uint(dictionary.hash_table[key]) - self.dict_num_lookups++ - if item != 0 { - var item_matches bool = testStaticDictionaryItem(dictionary, item, data, max_length, max_backward, max_distance, out) - if item_matches { - self.dict_num_matches++ - } - } - } -} - -type backwardMatch struct { - distance uint32 - length_and_code uint32 -} - -func initBackwardMatch(self *backwardMatch, dist uint, len uint) { - self.distance = uint32(dist) - self.length_and_code = uint32(len << 5) -} - -func initDictionaryBackwardMatch(self *backwardMatch, dist uint, len uint, len_code uint) { - self.distance = uint32(dist) - var tmp uint - if len == len_code { - tmp = 0 - } else { - tmp = len_code - } - self.length_and_code = uint32(len<<5 | tmp) -} - -func backwardMatchLength(self *backwardMatch) uint { - return uint(self.length_and_code >> 5) -} - -func backwardMatchLengthCode(self *backwardMatch) uint { - var code uint = uint(self.length_and_code) & 31 - if code != 0 { - return code - } else { - return backwardMatchLength(self) - } -} - -func hasherReset(handle hasherHandle) { - if handle == nil { - return - } - handle.Common().is_prepared_ = false -} - -func newHasher(typ int) hasherHandle { - switch typ { - case 2: - return &hashLongestMatchQuickly{ - bucketBits: 16, - bucketSweep: 1, - hashLen: 5, - useDictionary: true, - } - case 3: - return &hashLongestMatchQuickly{ - bucketBits: 16, - bucketSweep: 2, - hashLen: 5, - useDictionary: false, - } - case 4: - return &hashLongestMatchQuickly{ - bucketBits: 17, - bucketSweep: 4, - hashLen: 5, - useDictionary: true, - } - case 5: - return new(h5) - case 6: - return new(h6) - case 10: - return new(h10) - case 35: - return &hashComposite{ - ha: newHasher(3), - hb: &hashRolling{jump: 4}, - } - case 40: - return &hashForgetfulChain{ - bucketBits: 15, - numBanks: 1, - bankBits: 16, - numLastDistancesToCheck: 4, - } - case 41: - return &hashForgetfulChain{ - bucketBits: 15, - numBanks: 1, - bankBits: 16, - numLastDistancesToCheck: 10, - } - case 42: - return &hashForgetfulChain{ - bucketBits: 15, - numBanks: 512, - bankBits: 9, - numLastDistancesToCheck: 16, - } - case 54: - return &hashLongestMatchQuickly{ - bucketBits: 20, - bucketSweep: 4, - hashLen: 7, - useDictionary: false, - } - case 55: - return &hashComposite{ - ha: newHasher(54), - hb: &hashRolling{jump: 4}, - } - case 65: - return &hashComposite{ - ha: newHasher(6), - hb: &hashRolling{jump: 1}, - } - } - - panic(fmt.Sprintf("unknown hasher type: %d", typ)) -} - -func hasherSetup(handle *hasherHandle, params *encoderParams, data []byte, position uint, input_size uint, is_last bool) { - var self hasherHandle = nil - var common *hasherCommon = nil - var one_shot bool = (position == 0 && is_last) - if *handle == nil { - chooseHasher(params, ¶ms.hasher) - self = newHasher(params.hasher.type_) - - *handle = self - common = self.Common() - common.params = params.hasher - self.Initialize(params) - } - - self = *handle - common = self.Common() - if !common.is_prepared_ { - self.Prepare(one_shot, input_size, data) - - if position == 0 { - common.dict_num_lookups = 0 - common.dict_num_matches = 0 - } - - common.is_prepared_ = true - } -} - -func initOrStitchToPreviousBlock(handle *hasherHandle, data []byte, mask uint, params *encoderParams, position uint, input_size uint, is_last bool) { - var self hasherHandle - hasherSetup(handle, params, data, position, input_size, is_last) - self = *handle - self.StitchToPreviousBlock(input_size, position, data, mask) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/hash_composite.go b/backend/vendor/github.com/andybalholm/brotli/hash_composite.go deleted file mode 100644 index 1ad3c043..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/hash_composite.go +++ /dev/null @@ -1,99 +0,0 @@ -package brotli - -/* Copyright 2018 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func (h *hashComposite) HashTypeLength() uint { - var a uint = h.ha.HashTypeLength() - var b uint = h.hb.HashTypeLength() - if a > b { - return a - } else { - return b - } -} - -func (h *hashComposite) StoreLookahead() uint { - var a uint = h.ha.StoreLookahead() - var b uint = h.hb.StoreLookahead() - if a > b { - return a - } else { - return b - } -} - -/* -Composite hasher: This hasher allows to combine two other hashers, HASHER_A - - and HASHER_B. -*/ -type hashComposite struct { - hasherCommon - ha hasherHandle - hb hasherHandle - params *encoderParams -} - -func (h *hashComposite) Initialize(params *encoderParams) { - h.params = params -} - -/* -TODO: Initialize of the hashers is defered to Prepare (and params - - remembered here) because we don't get the one_shot and input_size params - here that are needed to know the memory size of them. Instead provide - those params to all hashers InitializehashComposite -*/ -func (h *hashComposite) Prepare(one_shot bool, input_size uint, data []byte) { - if h.ha == nil { - var common_a *hasherCommon - var common_b *hasherCommon - - common_a = h.ha.Common() - common_a.params = h.params.hasher - common_a.is_prepared_ = false - common_a.dict_num_lookups = 0 - common_a.dict_num_matches = 0 - h.ha.Initialize(h.params) - - common_b = h.hb.Common() - common_b.params = h.params.hasher - common_b.is_prepared_ = false - common_b.dict_num_lookups = 0 - common_b.dict_num_matches = 0 - h.hb.Initialize(h.params) - } - - h.ha.Prepare(one_shot, input_size, data) - h.hb.Prepare(one_shot, input_size, data) -} - -func (h *hashComposite) Store(data []byte, mask uint, ix uint) { - h.ha.Store(data, mask, ix) - h.hb.Store(data, mask, ix) -} - -func (h *hashComposite) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - h.ha.StoreRange(data, mask, ix_start, ix_end) - h.hb.StoreRange(data, mask, ix_start, ix_end) -} - -func (h *hashComposite) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { - h.ha.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) - h.hb.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) -} - -func (h *hashComposite) PrepareDistanceCache(distance_cache []int) { - h.ha.PrepareDistanceCache(distance_cache) - h.hb.PrepareDistanceCache(distance_cache) -} - -func (h *hashComposite) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - h.ha.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) - h.hb.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go b/backend/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go deleted file mode 100644 index ba2c2bce..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go +++ /dev/null @@ -1,262 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func (*hashForgetfulChain) HashTypeLength() uint { - return 4 -} - -func (*hashForgetfulChain) StoreLookahead() uint { - return 4 -} - -/* HashBytes is the function that chooses the bucket to place the address in.*/ -func (h *hashForgetfulChain) HashBytes(data []byte) uint { - var hash uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint(hash >> (32 - h.bucketBits)) -} - -type slot struct { - delta uint16 - next uint16 -} - -/* -A (forgetful) hash table to the data seen by the compressor, to - - help create backward references to previous data. - - Hashes are stored in chains which are bucketed to groups. Group of chains - share a storage "bank". When more than "bank size" chain nodes are added, - oldest nodes are replaced; this way several chains may share a tail. -*/ -type hashForgetfulChain struct { - hasherCommon - - bucketBits uint - numBanks uint - bankBits uint - numLastDistancesToCheck int - - addr []uint32 - head []uint16 - tiny_hash [65536]byte - banks [][]slot - free_slot_idx []uint16 - max_hops uint -} - -func (h *hashForgetfulChain) Initialize(params *encoderParams) { - var q uint - if params.quality > 6 { - q = 7 - } else { - q = 8 - } - h.max_hops = q << uint(params.quality-4) - - bankSize := 1 << h.bankBits - bucketSize := 1 << h.bucketBits - - h.addr = make([]uint32, bucketSize) - h.head = make([]uint16, bucketSize) - h.banks = make([][]slot, h.numBanks) - for i := range h.banks { - h.banks[i] = make([]slot, bankSize) - } - h.free_slot_idx = make([]uint16, h.numBanks) -} - -func (h *hashForgetfulChain) Prepare(one_shot bool, input_size uint, data []byte) { - var partial_prepare_threshold uint = (1 << h.bucketBits) >> 6 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var bucket uint = h.HashBytes(data[i:]) - - /* See InitEmpty comment. */ - h.addr[bucket] = 0xCCCCCCCC - - h.head[bucket] = 0xCCCC - } - } else { - /* Fill |addr| array with 0xCCCCCCCC value. Because of wrapping, position - processed by hasher never reaches 3GB + 64M; this makes all new chains - to be terminated after the first node. */ - for i := range h.addr { - h.addr[i] = 0xCCCCCCCC - } - - for i := range h.head { - h.head[i] = 0 - } - } - - h.tiny_hash = [65536]byte{} - for i := range h.free_slot_idx { - h.free_slot_idx[i] = 0 - } -} - -/* -Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and prepend - - node to corresponding chain; also update tiny_hash for current position. -*/ -func (h *hashForgetfulChain) Store(data []byte, mask uint, ix uint) { - var key uint = h.HashBytes(data[ix&mask:]) - var bank uint = key & (h.numBanks - 1) - var idx uint - idx = uint(h.free_slot_idx[bank]) & ((1 << h.bankBits) - 1) - h.free_slot_idx[bank]++ - var delta uint = ix - uint(h.addr[key]) - h.tiny_hash[uint16(ix)] = byte(key) - if delta > 0xFFFF { - delta = 0xFFFF - } - h.banks[bank][idx].delta = uint16(delta) - h.banks[bank][idx].next = h.head[key] - h.addr[key] = uint32(ix) - h.head[key] = uint16(idx) -} - -func (h *hashForgetfulChain) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint - for i = ix_start; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *hashForgetfulChain) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ring_buffer_mask, position-3) - h.Store(ringbuffer, ring_buffer_mask, position-2) - h.Store(ringbuffer, ring_buffer_mask, position-1) - } -} - -func (h *hashForgetfulChain) PrepareDistanceCache(distance_cache []int) { - prepareDistanceCache(distance_cache, h.numLastDistancesToCheck) -} - -/* -Find a longest backward match of &data[cur_ix] up to the length of - - max_length and stores the position cur_ix in the hash table. - - REQUIRES: PrepareDistanceCachehashForgetfulChain must be invoked for current distance cache - values; if this method is invoked repeatedly with the same distance - cache values, it is enough to invoke PrepareDistanceCachehashForgetfulChain once. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. -*/ -func (h *hashForgetfulChain) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = out.len - var key uint = h.HashBytes(data[cur_ix_masked:]) - var tiny_hash byte = byte(key) - /* Don't accept a short copy from far away. */ - out.len = 0 - - out.len_code_delta = 0 - - /* Try last distance first. */ - for i := 0; i < h.numLastDistancesToCheck; i++ { - var backward uint = uint(distance_cache[i]) - var prev_ix uint = (cur_ix - backward) - - /* For distance code 0 we want to consider 2-byte matches. */ - if i > 0 && h.tiny_hash[uint16(prev_ix)] != tiny_hash { - continue - } - if prev_ix >= cur_ix || backward > max_backward { - continue - } - - prev_ix &= ring_buffer_mask - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 2 { - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - if i != 0 { - score -= backwardReferencePenaltyUsingLastDistance(uint(i)) - } - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - } - { - var bank uint = key & (h.numBanks - 1) - var backward uint = 0 - var hops uint = h.max_hops - var delta uint = cur_ix - uint(h.addr[key]) - var slot uint = uint(h.head[key]) - for { - tmp6 := hops - hops-- - if tmp6 == 0 { - break - } - var prev_ix uint - var last uint = slot - backward += delta - if backward > max_backward { - break - } - prev_ix = (cur_ix - backward) & ring_buffer_mask - slot = uint(h.banks[bank][last].next) - delta = uint(h.banks[bank][last].delta) - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - /* Comparing for >= 3 does not change the semantics, but just saves - for a few unnecessary binary logarithms in backward reference - score, since we are not interested in such short matches. */ - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - - h.Store(data, ring_buffer_mask, cur_ix) - } - - if out.score == min_score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go b/backend/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go deleted file mode 100644 index 30d6b7d6..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go +++ /dev/null @@ -1,226 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* For BUCKET_SWEEP == 1, enabling the dictionary lookup makes compression - a little faster (0.5% - 1%) and it compresses 0.15% better on small text - and HTML inputs. */ - -func (*hashLongestMatchQuickly) HashTypeLength() uint { - return 8 -} - -func (*hashLongestMatchQuickly) StoreLookahead() uint { - return 8 -} - -/* -HashBytes is the function that chooses the bucket to place - - the address in. The HashLongestMatch and hashLongestMatchQuickly - classes have separate, different implementations of hashing. -*/ -func (h *hashLongestMatchQuickly) HashBytes(data []byte) uint32 { - var hash uint64 = ((binary.LittleEndian.Uint64(data) << (64 - 8*h.hashLen)) * kHashMul64) - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint32(hash >> (64 - h.bucketBits)) -} - -/* -A (forgetful) hash table to the data seen by the compressor, to - - help create backward references to previous data. - - This is a hash map of fixed size (1 << 16). Starting from the - given index, 1 buckets are used to store values of a key. -*/ -type hashLongestMatchQuickly struct { - hasherCommon - - bucketBits uint - bucketSweep int - hashLen uint - useDictionary bool - - buckets []uint32 -} - -func (h *hashLongestMatchQuickly) Initialize(params *encoderParams) { - h.buckets = make([]uint32, 1<> 7 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var key uint32 = h.HashBytes(data[i:]) - for j := 0; j < h.bucketSweep; j++ { - h.buckets[key+uint32(j)] = 0 - } - } - } else { - /* It is not strictly necessary to fill this buffer here, but - not filling will make the results of the compression stochastic - (but correct). This is because random data would cause the - system to find accidentally good backward references here and there. */ - for i := range h.buckets { - h.buckets[i] = 0 - } - } -} - -/* -Look at 5 bytes at &data[ix & mask]. - - Compute a hash from these, and store the value somewhere within - [ix .. ix+3]. -*/ -func (h *hashLongestMatchQuickly) Store(data []byte, mask uint, ix uint) { - var key uint32 = h.HashBytes(data[ix&mask:]) - var off uint32 = uint32(ix>>3) % uint32(h.bucketSweep) - /* Wiggle the value with the bucket sweep range. */ - h.buckets[key+off] = uint32(ix) -} - -func (h *hashLongestMatchQuickly) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint - for i = ix_start; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *hashLongestMatchQuickly) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ringbuffer_mask, position-3) - h.Store(ringbuffer, ringbuffer_mask, position-2) - h.Store(ringbuffer, ringbuffer_mask, position-1) - } -} - -func (*hashLongestMatchQuickly) PrepareDistanceCache(distance_cache []int) { -} - -/* -Find a longest backward match of &data[cur_ix & ring_buffer_mask] - - up to the length of max_length and stores the position cur_ix in the - hash table. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. -*/ -func (h *hashLongestMatchQuickly) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var best_len_in uint = out.len - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var key uint32 = h.HashBytes(data[cur_ix_masked:]) - var compare_char int = int(data[cur_ix_masked+best_len_in]) - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = best_len_in - var cached_backward uint = uint(distance_cache[0]) - var prev_ix uint = cur_ix - cached_backward - var bucket []uint32 - out.len_code_delta = 0 - if prev_ix < cur_ix { - prev_ix &= uint(uint32(ring_buffer_mask)) - if compare_char == int(data[prev_ix+best_len]) { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = uint(len) - out.distance = cached_backward - out.score = best_score - compare_char = int(data[cur_ix_masked+best_len]) - if h.bucketSweep == 1 { - h.buckets[key] = uint32(cur_ix) - return - } - } - } - } - } - - if h.bucketSweep == 1 { - var backward uint - var len uint - - /* Only one to look for, don't bother to prepare for a loop. */ - prev_ix = uint(h.buckets[key]) - - h.buckets[key] = uint32(cur_ix) - backward = cur_ix - prev_ix - prev_ix &= uint(uint32(ring_buffer_mask)) - if compare_char != int(data[prev_ix+best_len_in]) { - return - } - - if backward == 0 || backward > max_backward { - return - } - - len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - out.len = uint(len) - out.distance = backward - out.score = score - return - } - } - } else { - bucket = h.buckets[key:] - var i int - prev_ix = uint(bucket[0]) - bucket = bucket[1:] - for i = 0; i < h.bucketSweep; (func() { i++; tmp3 := bucket; bucket = bucket[1:]; prev_ix = uint(tmp3[0]) })() { - var backward uint = cur_ix - prev_ix - var len uint - prev_ix &= uint(uint32(ring_buffer_mask)) - if compare_char != int(data[prev_ix+best_len]) { - continue - } - - if backward == 0 || backward > max_backward { - continue - } - - len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = score - compare_char = int(data[cur_ix_masked+best_len]) - } - } - } - } - - if h.useDictionary && min_score == out.score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, true) - } - - h.buckets[key+uint32((cur_ix>>3)%uint(h.bucketSweep))] = uint32(cur_ix) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/hash_rolling.go b/backend/vendor/github.com/andybalholm/brotli/hash_rolling.go deleted file mode 100644 index 02388abf..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/hash_rolling.go +++ /dev/null @@ -1,178 +0,0 @@ -package brotli - -/* Copyright 2018 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* NOTE: this hasher does not search in the dictionary. It is used as - backup-hasher, the main hasher already searches in it. */ - -const kRollingHashMul32 uint32 = 69069 - -const kInvalidPosHashRolling uint32 = 0xffffffff - -/* -This hasher uses a longer forward length, but returning a higher value here - - will hurt compression by the main hasher when combined with a composite - hasher. The hasher tests for forward itself instead. -*/ -func (*hashRolling) HashTypeLength() uint { - return 4 -} - -func (*hashRolling) StoreLookahead() uint { - return 4 -} - -/* -Computes a code from a single byte. A lookup table of 256 values could be - - used, but simply adding 1 works about as good. -*/ -func (*hashRolling) HashByte(b byte) uint32 { - return uint32(b) + 1 -} - -func (h *hashRolling) HashRollingFunctionInitial(state uint32, add byte, factor uint32) uint32 { - return uint32(factor*state + h.HashByte(add)) -} - -func (h *hashRolling) HashRollingFunction(state uint32, add byte, rem byte, factor uint32, factor_remove uint32) uint32 { - return uint32(factor*state + h.HashByte(add) - factor_remove*h.HashByte(rem)) -} - -/* -Rolling hash for long distance long string matches. Stores one position - - per bucket, bucket key is computed over a long region. -*/ -type hashRolling struct { - hasherCommon - - jump int - - state uint32 - table []uint32 - next_ix uint - chunk_len uint32 - factor uint32 - factor_remove uint32 -} - -func (h *hashRolling) Initialize(params *encoderParams) { - h.state = 0 - h.next_ix = 0 - - h.factor = kRollingHashMul32 - - /* Compute the factor of the oldest byte to remove: factor**steps modulo - 0xffffffff (the multiplications rely on 32-bit overflow) */ - h.factor_remove = 1 - - for i := 0; i < 32; i += h.jump { - h.factor_remove *= h.factor - } - - h.table = make([]uint32, 16777216) - for i := 0; i < 16777216; i++ { - h.table[i] = kInvalidPosHashRolling - } -} - -func (h *hashRolling) Prepare(one_shot bool, input_size uint, data []byte) { - /* Too small size, cannot use this hasher. */ - if input_size < 32 { - return - } - h.state = 0 - for i := 0; i < 32; i += h.jump { - h.state = h.HashRollingFunctionInitial(h.state, data[i], h.factor) - } -} - -func (*hashRolling) Store(data []byte, mask uint, ix uint) { -} - -func (*hashRolling) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { -} - -func (h *hashRolling) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { - var position_masked uint - /* In this case we must re-initialize the hasher from scratch from the - current position. */ - - var available uint = num_bytes - if position&uint(h.jump-1) != 0 { - var diff uint = uint(h.jump) - (position & uint(h.jump-1)) - if diff > available { - available = 0 - } else { - available = available - diff - } - position += diff - } - - position_masked = position & ring_buffer_mask - - /* wrapping around ringbuffer not handled. */ - if available > ring_buffer_mask-position_masked { - available = ring_buffer_mask - position_masked - } - - h.Prepare(false, available, ringbuffer[position&ring_buffer_mask:]) - h.next_ix = position -} - -func (*hashRolling) PrepareDistanceCache(distance_cache []int) { -} - -func (h *hashRolling) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var pos uint = h.next_ix - - if cur_ix&uint(h.jump-1) != 0 { - return - } - - /* Not enough lookahead */ - if max_length < 32 { - return - } - - for pos = h.next_ix; pos <= cur_ix; pos += uint(h.jump) { - var code uint32 = h.state & ((16777216 * 64) - 1) - var rem byte = data[pos&ring_buffer_mask] - var add byte = data[(pos+32)&ring_buffer_mask] - var found_ix uint = uint(kInvalidPosHashRolling) - - h.state = h.HashRollingFunction(h.state, add, rem, h.factor, h.factor_remove) - - if code < 16777216 { - found_ix = uint(h.table[code]) - h.table[code] = uint32(pos) - if pos == cur_ix && uint32(found_ix) != kInvalidPosHashRolling { - /* The cast to 32-bit makes backward distances up to 4GB work even - if cur_ix is above 4GB, despite using 32-bit values in the table. */ - var backward uint = uint(uint32(cur_ix - found_ix)) - if backward <= max_backward { - var found_ix_masked uint = found_ix & ring_buffer_mask - var len uint = findMatchLengthWithLimit(data[found_ix_masked:], data[cur_ix_masked:], max_length) - if len >= 4 && len > out.len { - var score uint = backwardReferenceScore(uint(len), backward) - if score > out.score { - out.len = uint(len) - out.distance = backward - out.score = score - out.len_code_delta = 0 - } - } - } - } - } - } - - h.next_ix = cur_ix + uint(h.jump) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/histogram.go b/backend/vendor/github.com/andybalholm/brotli/histogram.go deleted file mode 100644 index 0346622b..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/histogram.go +++ /dev/null @@ -1,226 +0,0 @@ -package brotli - -import "math" - -/* The distance symbols effectively used by "Large Window Brotli" (32-bit). */ -const numHistogramDistanceSymbols = 544 - -type histogramLiteral struct { - data_ [numLiteralSymbols]uint32 - total_count_ uint - bit_cost_ float64 -} - -func histogramClearLiteral(self *histogramLiteral) { - self.data_ = [numLiteralSymbols]uint32{} - self.total_count_ = 0 - self.bit_cost_ = math.MaxFloat64 -} - -func clearHistogramsLiteral(array []histogramLiteral, length uint) { - var i uint - for i = 0; i < length; i++ { - histogramClearLiteral(&array[i:][0]) - } -} - -func histogramAddLiteral(self *histogramLiteral, val uint) { - self.data_[val]++ - self.total_count_++ -} - -func histogramAddVectorLiteral(self *histogramLiteral, p []byte, n uint) { - self.total_count_ += n - n += 1 - for { - n-- - if n == 0 { - break - } - self.data_[p[0]]++ - p = p[1:] - } -} - -func histogramAddHistogramLiteral(self *histogramLiteral, v *histogramLiteral) { - var i uint - self.total_count_ += v.total_count_ - for i = 0; i < numLiteralSymbols; i++ { - self.data_[i] += v.data_[i] - } -} - -func histogramDataSizeLiteral() uint { - return numLiteralSymbols -} - -type histogramCommand struct { - data_ [numCommandSymbols]uint32 - total_count_ uint - bit_cost_ float64 -} - -func histogramClearCommand(self *histogramCommand) { - self.data_ = [numCommandSymbols]uint32{} - self.total_count_ = 0 - self.bit_cost_ = math.MaxFloat64 -} - -func clearHistogramsCommand(array []histogramCommand, length uint) { - var i uint - for i = 0; i < length; i++ { - histogramClearCommand(&array[i:][0]) - } -} - -func histogramAddCommand(self *histogramCommand, val uint) { - self.data_[val]++ - self.total_count_++ -} - -func histogramAddVectorCommand(self *histogramCommand, p []uint16, n uint) { - self.total_count_ += n - n += 1 - for { - n-- - if n == 0 { - break - } - self.data_[p[0]]++ - p = p[1:] - } -} - -func histogramAddHistogramCommand(self *histogramCommand, v *histogramCommand) { - var i uint - self.total_count_ += v.total_count_ - for i = 0; i < numCommandSymbols; i++ { - self.data_[i] += v.data_[i] - } -} - -func histogramDataSizeCommand() uint { - return numCommandSymbols -} - -type histogramDistance struct { - data_ [numDistanceSymbols]uint32 - total_count_ uint - bit_cost_ float64 -} - -func histogramClearDistance(self *histogramDistance) { - self.data_ = [numDistanceSymbols]uint32{} - self.total_count_ = 0 - self.bit_cost_ = math.MaxFloat64 -} - -func clearHistogramsDistance(array []histogramDistance, length uint) { - var i uint - for i = 0; i < length; i++ { - histogramClearDistance(&array[i:][0]) - } -} - -func histogramAddDistance(self *histogramDistance, val uint) { - self.data_[val]++ - self.total_count_++ -} - -func histogramAddVectorDistance(self *histogramDistance, p []uint16, n uint) { - self.total_count_ += n - n += 1 - for { - n-- - if n == 0 { - break - } - self.data_[p[0]]++ - p = p[1:] - } -} - -func histogramAddHistogramDistance(self *histogramDistance, v *histogramDistance) { - var i uint - self.total_count_ += v.total_count_ - for i = 0; i < numDistanceSymbols; i++ { - self.data_[i] += v.data_[i] - } -} - -func histogramDataSizeDistance() uint { - return numDistanceSymbols -} - -type blockSplitIterator struct { - split_ *blockSplit - idx_ uint - type_ uint - length_ uint -} - -func initBlockSplitIterator(self *blockSplitIterator, split *blockSplit) { - self.split_ = split - self.idx_ = 0 - self.type_ = 0 - if len(split.lengths) > 0 { - self.length_ = uint(split.lengths[0]) - } else { - self.length_ = 0 - } -} - -func blockSplitIteratorNext(self *blockSplitIterator) { - if self.length_ == 0 { - self.idx_++ - self.type_ = uint(self.split_.types[self.idx_]) - self.length_ = uint(self.split_.lengths[self.idx_]) - } - - self.length_-- -} - -func buildHistogramsWithContext(cmds []command, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit, ringbuffer []byte, start_pos uint, mask uint, prev_byte byte, prev_byte2 byte, context_modes []int, literal_histograms []histogramLiteral, insert_and_copy_histograms []histogramCommand, copy_dist_histograms []histogramDistance) { - var pos uint = start_pos - var literal_it blockSplitIterator - var insert_and_copy_it blockSplitIterator - var dist_it blockSplitIterator - - initBlockSplitIterator(&literal_it, literal_split) - initBlockSplitIterator(&insert_and_copy_it, insert_and_copy_split) - initBlockSplitIterator(&dist_it, dist_split) - for i := range cmds { - var cmd *command = &cmds[i] - var j uint - blockSplitIteratorNext(&insert_and_copy_it) - histogramAddCommand(&insert_and_copy_histograms[insert_and_copy_it.type_], uint(cmd.cmd_prefix_)) - - /* TODO: unwrap iterator blocks. */ - for j = uint(cmd.insert_len_); j != 0; j-- { - var context uint - blockSplitIteratorNext(&literal_it) - context = literal_it.type_ - if context_modes != nil { - var lut contextLUT = getContextLUT(context_modes[context]) - context = (context << literalContextBits) + uint(getContext(prev_byte, prev_byte2, lut)) - } - - histogramAddLiteral(&literal_histograms[context], uint(ringbuffer[pos&mask])) - prev_byte2 = prev_byte - prev_byte = ringbuffer[pos&mask] - pos++ - } - - pos += uint(commandCopyLen(cmd)) - if commandCopyLen(cmd) != 0 { - prev_byte2 = ringbuffer[(pos-2)&mask] - prev_byte = ringbuffer[(pos-1)&mask] - if cmd.cmd_prefix_ >= 128 { - var context uint - blockSplitIteratorNext(&dist_it) - context = uint(uint32(dist_it.type_< bestQ && - (spec.Value == "*" || spec.Value == offer) { - bestQ = spec.Q - bestOffer = offer - } - } - } - if bestQ == 0 { - bestOffer = "" - } - return bestOffer -} - -// acceptSpec describes an Accept* header. -type acceptSpec struct { - Value string - Q float64 -} - -// parseAccept parses Accept* headers. -func parseAccept(header http.Header, key string) (specs []acceptSpec) { -loop: - for _, s := range header[key] { - for { - var spec acceptSpec - spec.Value, s = expectTokenSlash(s) - if spec.Value == "" { - continue loop - } - spec.Q = 1.0 - s = skipSpace(s) - if strings.HasPrefix(s, ";") { - s = skipSpace(s[1:]) - if !strings.HasPrefix(s, "q=") { - continue loop - } - spec.Q, s = expectQuality(s[2:]) - if spec.Q < 0.0 { - continue loop - } - } - specs = append(specs, spec) - s = skipSpace(s) - if !strings.HasPrefix(s, ",") { - continue loop - } - s = skipSpace(s[1:]) - } - } - return -} - -func skipSpace(s string) (rest string) { - i := 0 - for ; i < len(s); i++ { - if octetTypes[s[i]]&isSpace == 0 { - break - } - } - return s[i:] -} - -func expectTokenSlash(s string) (token, rest string) { - i := 0 - for ; i < len(s); i++ { - b := s[i] - if (octetTypes[b]&isToken == 0) && b != '/' { - break - } - } - return s[:i], s[i:] -} - -func expectQuality(s string) (q float64, rest string) { - switch { - case len(s) == 0: - return -1, "" - case s[0] == '0': - q = 0 - case s[0] == '1': - q = 1 - default: - return -1, "" - } - s = s[1:] - if !strings.HasPrefix(s, ".") { - return q, s - } - s = s[1:] - i := 0 - n := 0 - d := 1 - for ; i < len(s); i++ { - b := s[i] - if b < '0' || b > '9' { - break - } - n = n*10 + int(b) - '0' - d *= 10 - } - return q + float64(n)/float64(d), s[i:] -} - -// Octet types from RFC 2616. -var octetTypes [256]octetType - -type octetType byte - -const ( - isToken octetType = 1 << iota - isSpace -) - -func init() { - // OCTET = - // CHAR = - // CTL = - // CR = - // LF = - // SP = - // HT = - // <"> = - // CRLF = CR LF - // LWS = [CRLF] 1*( SP | HT ) - // TEXT = - // separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> - // | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT - // token = 1* - // qdtext = > - - for c := 0; c < 256; c++ { - var t octetType - isCtl := c <= 31 || c == 127 - isChar := 0 <= c && c <= 127 - isSeparator := strings.IndexRune(" \t\"(),/:;<=>?@[]\\{}", rune(c)) >= 0 - if strings.IndexRune(" \t\r\n", rune(c)) >= 0 { - t |= isSpace - } - if isChar && !isCtl && !isSeparator { - t |= isToken - } - octetTypes[c] = t - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/huffman.go b/backend/vendor/github.com/andybalholm/brotli/huffman.go deleted file mode 100644 index 46beb1fe..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/huffman.go +++ /dev/null @@ -1,662 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Utilities for building Huffman decoding tables. */ - -const huffmanMaxCodeLength = 15 - -/* -Maximum possible Huffman table size for an alphabet size of (index * 32), - - max code length 15 and root table bits 8. -*/ -var kMaxHuffmanTableSize = []uint16{ - 256, - 402, - 436, - 468, - 500, - 534, - 566, - 598, - 630, - 662, - 694, - 726, - 758, - 790, - 822, - 854, - 886, - 920, - 952, - 984, - 1016, - 1048, - 1080, - 1112, - 1144, - 1176, - 1208, - 1240, - 1272, - 1304, - 1336, - 1368, - 1400, - 1432, - 1464, - 1496, - 1528, -} - -/* BROTLI_NUM_BLOCK_LEN_SYMBOLS == 26 */ -const huffmanMaxSize26 = 396 - -/* BROTLI_MAX_BLOCK_TYPE_SYMBOLS == 258 */ -const huffmanMaxSize258 = 632 - -/* BROTLI_MAX_CONTEXT_MAP_SYMBOLS == 272 */ -const huffmanMaxSize272 = 646 - -const huffmanMaxCodeLengthCodeLength = 5 - -/* Do not create this struct directly - use the ConstructHuffmanCode - * constructor below! */ -type huffmanCode struct { - bits byte - value uint16 -} - -func constructHuffmanCode(bits byte, value uint16) huffmanCode { - var h huffmanCode - h.bits = bits - h.value = value - return h -} - -/* Builds Huffman lookup table assuming code lengths are in symbol order. */ - -/* Builds Huffman lookup table assuming code lengths are in symbol order. - Returns size of resulting table. */ - -/* Builds a simple Huffman table. The |num_symbols| parameter is to be - interpreted as follows: 0 means 1 symbol, 1 means 2 symbols, - 2 means 3 symbols, 3 means 4 symbols with lengths [2, 2, 2, 2], - 4 means 4 symbols with lengths [1, 2, 3, 3]. */ - -/* Contains a collection of Huffman trees with the same alphabet size. */ -/* max_symbol is needed due to simple codes since log2(alphabet_size) could be - greater than log2(max_symbol). */ -type huffmanTreeGroup struct { - htrees [][]huffmanCode - codes []huffmanCode - alphabet_size uint16 - max_symbol uint16 - num_htrees uint16 -} - -const reverseBitsMax = 8 - -const reverseBitsBase = 0 - -var kReverseBits = [1 << reverseBitsMax]byte{ - 0x00, - 0x80, - 0x40, - 0xC0, - 0x20, - 0xA0, - 0x60, - 0xE0, - 0x10, - 0x90, - 0x50, - 0xD0, - 0x30, - 0xB0, - 0x70, - 0xF0, - 0x08, - 0x88, - 0x48, - 0xC8, - 0x28, - 0xA8, - 0x68, - 0xE8, - 0x18, - 0x98, - 0x58, - 0xD8, - 0x38, - 0xB8, - 0x78, - 0xF8, - 0x04, - 0x84, - 0x44, - 0xC4, - 0x24, - 0xA4, - 0x64, - 0xE4, - 0x14, - 0x94, - 0x54, - 0xD4, - 0x34, - 0xB4, - 0x74, - 0xF4, - 0x0C, - 0x8C, - 0x4C, - 0xCC, - 0x2C, - 0xAC, - 0x6C, - 0xEC, - 0x1C, - 0x9C, - 0x5C, - 0xDC, - 0x3C, - 0xBC, - 0x7C, - 0xFC, - 0x02, - 0x82, - 0x42, - 0xC2, - 0x22, - 0xA2, - 0x62, - 0xE2, - 0x12, - 0x92, - 0x52, - 0xD2, - 0x32, - 0xB2, - 0x72, - 0xF2, - 0x0A, - 0x8A, - 0x4A, - 0xCA, - 0x2A, - 0xAA, - 0x6A, - 0xEA, - 0x1A, - 0x9A, - 0x5A, - 0xDA, - 0x3A, - 0xBA, - 0x7A, - 0xFA, - 0x06, - 0x86, - 0x46, - 0xC6, - 0x26, - 0xA6, - 0x66, - 0xE6, - 0x16, - 0x96, - 0x56, - 0xD6, - 0x36, - 0xB6, - 0x76, - 0xF6, - 0x0E, - 0x8E, - 0x4E, - 0xCE, - 0x2E, - 0xAE, - 0x6E, - 0xEE, - 0x1E, - 0x9E, - 0x5E, - 0xDE, - 0x3E, - 0xBE, - 0x7E, - 0xFE, - 0x01, - 0x81, - 0x41, - 0xC1, - 0x21, - 0xA1, - 0x61, - 0xE1, - 0x11, - 0x91, - 0x51, - 0xD1, - 0x31, - 0xB1, - 0x71, - 0xF1, - 0x09, - 0x89, - 0x49, - 0xC9, - 0x29, - 0xA9, - 0x69, - 0xE9, - 0x19, - 0x99, - 0x59, - 0xD9, - 0x39, - 0xB9, - 0x79, - 0xF9, - 0x05, - 0x85, - 0x45, - 0xC5, - 0x25, - 0xA5, - 0x65, - 0xE5, - 0x15, - 0x95, - 0x55, - 0xD5, - 0x35, - 0xB5, - 0x75, - 0xF5, - 0x0D, - 0x8D, - 0x4D, - 0xCD, - 0x2D, - 0xAD, - 0x6D, - 0xED, - 0x1D, - 0x9D, - 0x5D, - 0xDD, - 0x3D, - 0xBD, - 0x7D, - 0xFD, - 0x03, - 0x83, - 0x43, - 0xC3, - 0x23, - 0xA3, - 0x63, - 0xE3, - 0x13, - 0x93, - 0x53, - 0xD3, - 0x33, - 0xB3, - 0x73, - 0xF3, - 0x0B, - 0x8B, - 0x4B, - 0xCB, - 0x2B, - 0xAB, - 0x6B, - 0xEB, - 0x1B, - 0x9B, - 0x5B, - 0xDB, - 0x3B, - 0xBB, - 0x7B, - 0xFB, - 0x07, - 0x87, - 0x47, - 0xC7, - 0x27, - 0xA7, - 0x67, - 0xE7, - 0x17, - 0x97, - 0x57, - 0xD7, - 0x37, - 0xB7, - 0x77, - 0xF7, - 0x0F, - 0x8F, - 0x4F, - 0xCF, - 0x2F, - 0xAF, - 0x6F, - 0xEF, - 0x1F, - 0x9F, - 0x5F, - 0xDF, - 0x3F, - 0xBF, - 0x7F, - 0xFF, -} - -const reverseBitsLowest = (uint64(1) << (reverseBitsMax - 1 + reverseBitsBase)) - -/* -Returns reverse(num >> BROTLI_REVERSE_BITS_BASE, BROTLI_REVERSE_BITS_MAX), - - where reverse(value, len) is the bit-wise reversal of the len least - significant bits of value. -*/ -func reverseBits8(num uint64) uint64 { - return uint64(kReverseBits[num]) -} - -/* Stores code in table[0], table[step], table[2*step], ..., table[end] */ -/* Assumes that end is an integer multiple of step */ -func replicateValue(table []huffmanCode, step int, end int, code huffmanCode) { - for { - end -= step - table[end] = code - if end <= 0 { - break - } - } -} - -/* -Returns the table width of the next 2nd level table. |count| is the histogram - - of bit lengths for the remaining symbols, |len| is the code length of the - next processed symbol. -*/ -func nextTableBitSize(count []uint16, len int, root_bits int) int { - var left int = 1 << uint(len-root_bits) - for len < huffmanMaxCodeLength { - left -= int(count[len]) - if left <= 0 { - break - } - len++ - left <<= 1 - } - - return len - root_bits -} - -func buildCodeLengthsHuffmanTable(table []huffmanCode, code_lengths []byte, count []uint16) { - var code huffmanCode /* current table entry */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* step size to replicate values in current table */ /* size of current table */ /* symbols sorted by code length */ - var symbol int - var key uint64 - var key_step uint64 - var step int - var table_size int - var sorted [codeLengthCodes]int - var offset [huffmanMaxCodeLengthCodeLength + 1]int - var bits int - var bits_count int - /* offsets in sorted table for each length */ - assert(huffmanMaxCodeLengthCodeLength <= reverseBitsMax) - - /* Generate offsets into sorted symbol table by code length. */ - symbol = -1 - - bits = 1 - var i int - for i = 0; i < huffmanMaxCodeLengthCodeLength; i++ { - symbol += int(count[bits]) - offset[bits] = symbol - bits++ - } - - /* Symbols with code length 0 are placed after all other symbols. */ - offset[0] = codeLengthCodes - 1 - - /* Sort symbols by length, by symbol order within each length. */ - symbol = codeLengthCodes - - for { - var i int - for i = 0; i < 6; i++ { - symbol-- - sorted[offset[code_lengths[symbol]]] = symbol - offset[code_lengths[symbol]]-- - } - if symbol == 0 { - break - } - } - - table_size = 1 << huffmanMaxCodeLengthCodeLength - - /* Special case: all symbols but one have 0 code length. */ - if offset[0] == 0 { - code = constructHuffmanCode(0, uint16(sorted[0])) - for key = 0; key < uint64(table_size); key++ { - table[key] = code - } - - return - } - - /* Fill in table. */ - key = 0 - - key_step = reverseBitsLowest - symbol = 0 - bits = 1 - step = 2 - for { - for bits_count = int(count[bits]); bits_count != 0; bits_count-- { - code = constructHuffmanCode(byte(bits), uint16(sorted[symbol])) - symbol++ - replicateValue(table[reverseBits8(key):], step, table_size, code) - key += key_step - } - - step <<= 1 - key_step >>= 1 - bits++ - if bits > huffmanMaxCodeLengthCodeLength { - break - } - } -} - -func buildHuffmanTable(root_table []huffmanCode, root_bits int, symbol_lists symbolList, count []uint16) uint32 { - var code huffmanCode /* current table entry */ /* next available space in table */ /* current code length */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* 2nd level table prefix code */ /* 2nd level table prefix code addend */ /* step size to replicate values in current table */ /* key length of current table */ /* size of current table */ /* sum of root table size and 2nd level table sizes */ - var table []huffmanCode - var len int - var symbol int - var key uint64 - var key_step uint64 - var sub_key uint64 - var sub_key_step uint64 - var step int - var table_bits int - var table_size int - var total_size int - var max_length int = -1 - var bits int - var bits_count int - - assert(root_bits <= reverseBitsMax) - assert(huffmanMaxCodeLength-root_bits <= reverseBitsMax) - - for symbolListGet(symbol_lists, max_length) == 0xFFFF { - max_length-- - } - max_length += huffmanMaxCodeLength + 1 - - table = root_table - table_bits = root_bits - table_size = 1 << uint(table_bits) - total_size = table_size - - /* Fill in the root table. Reduce the table size to if possible, - and create the repetitions by memcpy. */ - if table_bits > max_length { - table_bits = max_length - table_size = 1 << uint(table_bits) - } - - key = 0 - key_step = reverseBitsLowest - bits = 1 - step = 2 - for { - symbol = bits - (huffmanMaxCodeLength + 1) - for bits_count = int(count[bits]); bits_count != 0; bits_count-- { - symbol = int(symbolListGet(symbol_lists, symbol)) - code = constructHuffmanCode(byte(bits), uint16(symbol)) - replicateValue(table[reverseBits8(key):], step, table_size, code) - key += key_step - } - - step <<= 1 - key_step >>= 1 - bits++ - if bits > table_bits { - break - } - } - - /* If root_bits != table_bits then replicate to fill the remaining slots. */ - for total_size != table_size { - copy(table[table_size:], table[:uint(table_size)]) - table_size <<= 1 - } - - /* Fill in 2nd level tables and add pointers to root table. */ - key_step = reverseBitsLowest >> uint(root_bits-1) - - sub_key = reverseBitsLowest << 1 - sub_key_step = reverseBitsLowest - len = root_bits + 1 - step = 2 - for ; len <= max_length; len++ { - symbol = len - (huffmanMaxCodeLength + 1) - for ; count[len] != 0; count[len]-- { - if sub_key == reverseBitsLowest<<1 { - table = table[table_size:] - table_bits = nextTableBitSize(count, int(len), root_bits) - table_size = 1 << uint(table_bits) - total_size += table_size - sub_key = reverseBits8(key) - key += key_step - root_table[sub_key] = constructHuffmanCode(byte(table_bits+root_bits), uint16(uint64(uint(-cap(table)+cap(root_table)))-sub_key)) - sub_key = 0 - } - - symbol = int(symbolListGet(symbol_lists, symbol)) - code = constructHuffmanCode(byte(len-root_bits), uint16(symbol)) - replicateValue(table[reverseBits8(sub_key):], step, table_size, code) - sub_key += sub_key_step - } - - step <<= 1 - sub_key_step >>= 1 - } - - return uint32(total_size) -} - -func buildSimpleHuffmanTable(table []huffmanCode, root_bits int, val []uint16, num_symbols uint32) uint32 { - var table_size uint32 = 1 - var goal_size uint32 = 1 << uint(root_bits) - switch num_symbols { - case 0: - table[0] = constructHuffmanCode(0, val[0]) - - case 1: - if val[1] > val[0] { - table[0] = constructHuffmanCode(1, val[0]) - table[1] = constructHuffmanCode(1, val[1]) - } else { - table[0] = constructHuffmanCode(1, val[1]) - table[1] = constructHuffmanCode(1, val[0]) - } - - table_size = 2 - - case 2: - table[0] = constructHuffmanCode(1, val[0]) - table[2] = constructHuffmanCode(1, val[0]) - if val[2] > val[1] { - table[1] = constructHuffmanCode(2, val[1]) - table[3] = constructHuffmanCode(2, val[2]) - } else { - table[1] = constructHuffmanCode(2, val[2]) - table[3] = constructHuffmanCode(2, val[1]) - } - - table_size = 4 - - case 3: - var i int - var k int - for i = 0; i < 3; i++ { - for k = i + 1; k < 4; k++ { - if val[k] < val[i] { - var t uint16 = val[k] - val[k] = val[i] - val[i] = t - } - } - } - - table[0] = constructHuffmanCode(2, val[0]) - table[2] = constructHuffmanCode(2, val[1]) - table[1] = constructHuffmanCode(2, val[2]) - table[3] = constructHuffmanCode(2, val[3]) - table_size = 4 - - case 4: - if val[3] < val[2] { - var t uint16 = val[3] - val[3] = val[2] - val[2] = t - } - - table[0] = constructHuffmanCode(1, val[0]) - table[1] = constructHuffmanCode(2, val[1]) - table[2] = constructHuffmanCode(1, val[0]) - table[3] = constructHuffmanCode(3, val[2]) - table[4] = constructHuffmanCode(1, val[0]) - table[5] = constructHuffmanCode(2, val[1]) - table[6] = constructHuffmanCode(1, val[0]) - table[7] = constructHuffmanCode(3, val[3]) - table_size = 8 - } - - for table_size != goal_size { - copy(table[table_size:], table[:uint(table_size)]) - table_size <<= 1 - } - - return goal_size -} diff --git a/backend/vendor/github.com/andybalholm/brotli/literal_cost.go b/backend/vendor/github.com/andybalholm/brotli/literal_cost.go deleted file mode 100644 index 5a9ace94..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/literal_cost.go +++ /dev/null @@ -1,182 +0,0 @@ -package brotli - -func utf8Position(last uint, c uint, clamp uint) uint { - if c < 128 { - return 0 /* Next one is the 'Byte 1' again. */ - } else if c >= 192 { /* Next one is the 'Byte 2' of utf-8 encoding. */ - return brotli_min_size_t(1, clamp) - } else { - /* Let's decide over the last byte if this ends the sequence. */ - if last < 0xE0 { - return 0 /* Completed two or three byte coding. */ /* Next one is the 'Byte 3' of utf-8 encoding. */ - } else { - return brotli_min_size_t(2, clamp) - } - } -} - -func decideMultiByteStatsLevel(pos uint, len uint, mask uint, data []byte) uint { - var counts = [3]uint{0} /* should be 2, but 1 compresses better. */ - var max_utf8 uint = 1 - var last_c uint = 0 - var i uint - for i = 0; i < len; i++ { - var c uint = uint(data[(pos+i)&mask]) - counts[utf8Position(last_c, c, 2)]++ - last_c = c - } - - if counts[2] < 500 { - max_utf8 = 1 - } - - if counts[1]+counts[2] < 25 { - max_utf8 = 0 - } - - return max_utf8 -} - -func estimateBitCostsForLiteralsUTF8(pos uint, len uint, mask uint, data []byte, cost []float32) { - var max_utf8 uint = decideMultiByteStatsLevel(pos, uint(len), mask, data) - /* Bootstrap histograms. */ - var histogram = [3][256]uint{[256]uint{0}} - var window_half uint = 495 - var in_window uint = brotli_min_size_t(window_half, uint(len)) - var in_window_utf8 = [3]uint{0} - /* max_utf8 is 0 (normal ASCII single byte modeling), - 1 (for 2-byte UTF-8 modeling), or 2 (for 3-byte UTF-8 modeling). */ - - var i uint - { - var last_c uint = 0 - var utf8_pos uint = 0 - for i = 0; i < in_window; i++ { - var c uint = uint(data[(pos+i)&mask]) - histogram[utf8_pos][c]++ - in_window_utf8[utf8_pos]++ - utf8_pos = utf8Position(last_c, c, max_utf8) - last_c = c - } - } - - /* Compute bit costs with sliding window. */ - for i = 0; i < len; i++ { - if i >= window_half { - var c uint - var last_c uint - if i < window_half+1 { - c = 0 - } else { - c = uint(data[(pos+i-window_half-1)&mask]) - } - if i < window_half+2 { - last_c = 0 - } else { - last_c = uint(data[(pos+i-window_half-2)&mask]) - } - /* Remove a byte in the past. */ - - var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) - histogram[utf8_pos2][data[(pos+i-window_half)&mask]]-- - in_window_utf8[utf8_pos2]-- - } - - if i+window_half < len { - var c uint = uint(data[(pos+i+window_half-1)&mask]) - var last_c uint = uint(data[(pos+i+window_half-2)&mask]) - /* Add a byte in the future. */ - - var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) - histogram[utf8_pos2][data[(pos+i+window_half)&mask]]++ - in_window_utf8[utf8_pos2]++ - } - { - var c uint - var last_c uint - if i < 1 { - c = 0 - } else { - c = uint(data[(pos+i-1)&mask]) - } - if i < 2 { - last_c = 0 - } else { - last_c = uint(data[(pos+i-2)&mask]) - } - var utf8_pos uint = utf8Position(last_c, c, max_utf8) - var masked_pos uint = (pos + i) & mask - var histo uint = histogram[utf8_pos][data[masked_pos]] - var lit_cost float64 - if histo == 0 { - histo = 1 - } - - lit_cost = fastLog2(in_window_utf8[utf8_pos]) - fastLog2(histo) - lit_cost += 0.02905 - if lit_cost < 1.0 { - lit_cost *= 0.5 - lit_cost += 0.5 - } - - /* Make the first bytes more expensive -- seems to help, not sure why. - Perhaps because the entropy source is changing its properties - rapidly in the beginning of the file, perhaps because the beginning - of the data is a statistical "anomaly". */ - if i < 2000 { - lit_cost += 0.7 - (float64(2000-i) / 2000.0 * 0.35) - } - - cost[i] = float32(lit_cost) - } - } -} - -func estimateBitCostsForLiterals(pos uint, len uint, mask uint, data []byte, cost []float32) { - if isMostlyUTF8(data, pos, mask, uint(len), kMinUTF8Ratio) { - estimateBitCostsForLiteralsUTF8(pos, uint(len), mask, data, cost) - return - } else { - var histogram = [256]uint{0} - var window_half uint = 2000 - var in_window uint = brotli_min_size_t(window_half, uint(len)) - var i uint - /* Bootstrap histogram. */ - for i = 0; i < in_window; i++ { - histogram[data[(pos+i)&mask]]++ - } - - /* Compute bit costs with sliding window. */ - for i = 0; i < len; i++ { - var histo uint - if i >= window_half { - /* Remove a byte in the past. */ - histogram[data[(pos+i-window_half)&mask]]-- - - in_window-- - } - - if i+window_half < len { - /* Add a byte in the future. */ - histogram[data[(pos+i+window_half)&mask]]++ - - in_window++ - } - - histo = histogram[data[(pos+i)&mask]] - if histo == 0 { - histo = 1 - } - { - var lit_cost float64 = fastLog2(in_window) - fastLog2(histo) - lit_cost += 0.029 - if lit_cost < 1.0 { - lit_cost *= 0.5 - lit_cost += 0.5 - } - - cost[i] = float32(lit_cost) - } - } - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/memory.go b/backend/vendor/github.com/andybalholm/brotli/memory.go deleted file mode 100644 index a07c7050..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/memory.go +++ /dev/null @@ -1,66 +0,0 @@ -package brotli - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -Dynamically grows array capacity to at least the requested size -T: data type -A: array -C: capacity -R: requested size -*/ -func brotli_ensure_capacity_uint8_t(a *[]byte, c *uint, r uint) { - if *c < r { - var new_size uint = *c - if new_size == 0 { - new_size = r - } - - for new_size < r { - new_size *= 2 - } - - if cap(*a) < int(new_size) { - var new_array []byte = make([]byte, new_size) - if *c != 0 { - copy(new_array, (*a)[:*c]) - } - - *a = new_array - } else { - *a = (*a)[:new_size] - } - - *c = new_size - } -} - -func brotli_ensure_capacity_uint32_t(a *[]uint32, c *uint, r uint) { - var new_array []uint32 - if *c < r { - var new_size uint = *c - if new_size == 0 { - new_size = r - } - - for new_size < r { - new_size *= 2 - } - - if cap(*a) < int(new_size) { - new_array = make([]uint32, new_size) - if *c != 0 { - copy(new_array, (*a)[:*c]) - } - - *a = new_array - } else { - *a = (*a)[:new_size] - } - *c = new_size - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/metablock.go b/backend/vendor/github.com/andybalholm/brotli/metablock.go deleted file mode 100644 index 4bbea200..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/metablock.go +++ /dev/null @@ -1,583 +0,0 @@ -package brotli - -import ( - "sync" -) - -/* Copyright 2014 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Algorithms for distributing the literals and commands of a metablock between - block types and contexts. */ - -type metaBlockSplit struct { - literal_split blockSplit - command_split blockSplit - distance_split blockSplit - literal_context_map []uint32 - literal_context_map_size uint - distance_context_map []uint32 - distance_context_map_size uint - literal_histograms []histogramLiteral - literal_histograms_size uint - command_histograms []histogramCommand - command_histograms_size uint - distance_histograms []histogramDistance - distance_histograms_size uint -} - -var metaBlockPool sync.Pool - -func getMetaBlockSplit() *metaBlockSplit { - mb, _ := metaBlockPool.Get().(*metaBlockSplit) - - if mb == nil { - mb = &metaBlockSplit{} - } else { - initBlockSplit(&mb.literal_split) - initBlockSplit(&mb.command_split) - initBlockSplit(&mb.distance_split) - mb.literal_context_map = mb.literal_context_map[:0] - mb.literal_context_map_size = 0 - mb.distance_context_map = mb.distance_context_map[:0] - mb.distance_context_map_size = 0 - mb.literal_histograms = mb.literal_histograms[:0] - mb.command_histograms = mb.command_histograms[:0] - mb.distance_histograms = mb.distance_histograms[:0] - } - return mb -} - -func freeMetaBlockSplit(mb *metaBlockSplit) { - metaBlockPool.Put(mb) -} - -func initDistanceParams(params *encoderParams, npostfix uint32, ndirect uint32) { - var dist_params *distanceParams = ¶ms.dist - var alphabet_size uint32 - var max_distance uint32 - - dist_params.distance_postfix_bits = npostfix - dist_params.num_direct_distance_codes = ndirect - - alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), maxDistanceBits)) - max_distance = ndirect + (1 << (maxDistanceBits + npostfix + 2)) - (1 << (npostfix + 2)) - - if params.large_window { - var bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} - var postfix uint32 = 1 << npostfix - alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), largeMaxDistanceBits)) - - /* The maximum distance is set so that no distance symbol used can encode - a distance larger than BROTLI_MAX_ALLOWED_DISTANCE with all - its extra bits set. */ - if ndirect < bound[npostfix] { - max_distance = maxAllowedDistance - (bound[npostfix] - ndirect) - } else if ndirect >= bound[npostfix]+postfix { - max_distance = (3 << 29) - 4 + (ndirect - bound[npostfix]) - } else { - max_distance = maxAllowedDistance - } - } - - dist_params.alphabet_size = alphabet_size - dist_params.max_distance = uint(max_distance) -} - -func recomputeDistancePrefixes(cmds []command, orig_params *distanceParams, new_params *distanceParams) { - if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { - return - } - - for i := range cmds { - var cmd *command = &cmds[i] - if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { - prefixEncodeCopyDistance(uint(commandRestoreDistanceCode(cmd, orig_params)), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) - } - } -} - -func computeDistanceCost(cmds []command, orig_params *distanceParams, new_params *distanceParams, cost *float64) bool { - var equal_params bool = false - var dist_prefix uint16 - var dist_extra uint32 - var extra_bits float64 = 0.0 - var histo histogramDistance - histogramClearDistance(&histo) - - if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { - equal_params = true - } - - for i := range cmds { - cmd := &cmds[i] - if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { - if equal_params { - dist_prefix = cmd.dist_prefix_ - } else { - var distance uint32 = commandRestoreDistanceCode(cmd, orig_params) - if distance > uint32(new_params.max_distance) { - return false - } - - prefixEncodeCopyDistance(uint(distance), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &dist_prefix, &dist_extra) - } - - histogramAddDistance(&histo, uint(dist_prefix)&0x3FF) - extra_bits += float64(dist_prefix >> 10) - } - } - - *cost = populationCostDistance(&histo) + extra_bits - return true -} - -var buildMetaBlock_kMaxNumberOfHistograms uint = 256 - -func buildMetaBlock(ringbuffer []byte, pos uint, mask uint, params *encoderParams, prev_byte byte, prev_byte2 byte, cmds []command, literal_context_mode int, mb *metaBlockSplit) { - var distance_histograms []histogramDistance - var literal_histograms []histogramLiteral - var literal_context_modes []int = nil - var literal_histograms_size uint - var distance_histograms_size uint - var i uint - var literal_context_multiplier uint = 1 - var npostfix uint32 - var ndirect_msb uint32 = 0 - var check_orig bool = true - var best_dist_cost float64 = 1e99 - var orig_params encoderParams = *params - /* Histogram ids need to fit in one byte. */ - - var new_params encoderParams = *params - - for npostfix = 0; npostfix <= maxNpostfix; npostfix++ { - for ; ndirect_msb < 16; ndirect_msb++ { - var ndirect uint32 = ndirect_msb << npostfix - var skip bool - var dist_cost float64 - initDistanceParams(&new_params, npostfix, ndirect) - if npostfix == orig_params.dist.distance_postfix_bits && ndirect == orig_params.dist.num_direct_distance_codes { - check_orig = false - } - - skip = !computeDistanceCost(cmds, &orig_params.dist, &new_params.dist, &dist_cost) - if skip || (dist_cost > best_dist_cost) { - break - } - - best_dist_cost = dist_cost - params.dist = new_params.dist - } - - if ndirect_msb > 0 { - ndirect_msb-- - } - ndirect_msb /= 2 - } - - if check_orig { - var dist_cost float64 - computeDistanceCost(cmds, &orig_params.dist, &orig_params.dist, &dist_cost) - if dist_cost < best_dist_cost { - /* NB: currently unused; uncomment when more param tuning is added. */ - /* best_dist_cost = dist_cost; */ - params.dist = orig_params.dist - } - } - - recomputeDistancePrefixes(cmds, &orig_params.dist, ¶ms.dist) - - splitBlock(cmds, ringbuffer, pos, mask, params, &mb.literal_split, &mb.command_split, &mb.distance_split) - - if !params.disable_literal_context_modeling { - literal_context_multiplier = 1 << literalContextBits - literal_context_modes = make([]int, (mb.literal_split.num_types)) - for i = 0; i < mb.literal_split.num_types; i++ { - literal_context_modes[i] = literal_context_mode - } - } - - literal_histograms_size = mb.literal_split.num_types * literal_context_multiplier - literal_histograms = make([]histogramLiteral, literal_histograms_size) - clearHistogramsLiteral(literal_histograms, literal_histograms_size) - - distance_histograms_size = mb.distance_split.num_types << distanceContextBits - distance_histograms = make([]histogramDistance, distance_histograms_size) - clearHistogramsDistance(distance_histograms, distance_histograms_size) - - mb.command_histograms_size = mb.command_split.num_types - if cap(mb.command_histograms) < int(mb.command_histograms_size) { - mb.command_histograms = make([]histogramCommand, (mb.command_histograms_size)) - } else { - mb.command_histograms = mb.command_histograms[:mb.command_histograms_size] - } - clearHistogramsCommand(mb.command_histograms, mb.command_histograms_size) - - buildHistogramsWithContext(cmds, &mb.literal_split, &mb.command_split, &mb.distance_split, ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_modes, literal_histograms, mb.command_histograms, distance_histograms) - literal_context_modes = nil - - mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits - if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { - mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) - } else { - mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] - } - - mb.literal_histograms_size = mb.literal_context_map_size - if cap(mb.literal_histograms) < int(mb.literal_histograms_size) { - mb.literal_histograms = make([]histogramLiteral, (mb.literal_histograms_size)) - } else { - mb.literal_histograms = mb.literal_histograms[:mb.literal_histograms_size] - } - - clusterHistogramsLiteral(literal_histograms, literal_histograms_size, buildMetaBlock_kMaxNumberOfHistograms, mb.literal_histograms, &mb.literal_histograms_size, mb.literal_context_map) - literal_histograms = nil - - if params.disable_literal_context_modeling { - /* Distribute assignment to all contexts. */ - for i = mb.literal_split.num_types; i != 0; { - var j uint = 0 - i-- - for ; j < 1< 0 { - var entropy [maxStaticContexts]float64 - var combined_histo []histogramLiteral = make([]histogramLiteral, (2 * num_contexts)) - var combined_entropy [2 * maxStaticContexts]float64 - var diff = [2]float64{0.0} - /* Try merging the set of histograms for the current block type with the - respective set of histograms for the last and second last block types. - Decide over the split based on the total reduction of entropy across - all contexts. */ - - var i uint - for i = 0; i < num_contexts; i++ { - var curr_histo_ix uint = self.curr_histogram_ix_ + i - var j uint - entropy[i] = bitsEntropy(histograms[curr_histo_ix].data_[:], self.alphabet_size_) - for j = 0; j < 2; j++ { - var jx uint = j*num_contexts + i - var last_histogram_ix uint = self.last_histogram_ix_[j] + i - combined_histo[jx] = histograms[curr_histo_ix] - histogramAddHistogramLiteral(&combined_histo[jx], &histograms[last_histogram_ix]) - combined_entropy[jx] = bitsEntropy(combined_histo[jx].data_[0:], self.alphabet_size_) - diff[j] += combined_entropy[jx] - entropy[i] - last_entropy[jx] - } - } - - if split.num_types < self.max_block_types_ && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = split.num_types * num_contexts - for i = 0; i < num_contexts; i++ { - last_entropy[num_contexts+i] = last_entropy[i] - last_entropy[i] = entropy[i] - } - - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_ += num_contexts - if self.curr_histogram_ix_ < *self.histograms_size_ { - clearHistogramsLiteral(self.histograms_[self.curr_histogram_ix_:], self.num_contexts_) - } - - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - for i = 0; i < num_contexts; i++ { - histograms[self.last_histogram_ix_[0]+i] = combined_histo[num_contexts+i] - last_entropy[num_contexts+i] = last_entropy[i] - last_entropy[i] = combined_entropy[num_contexts+i] - histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) - } - - self.num_blocks_++ - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - for i = 0; i < num_contexts; i++ { - histograms[self.last_histogram_ix_[0]+i] = combined_histo[i] - last_entropy[i] = combined_entropy[i] - if split.num_types == 1 { - last_entropy[num_contexts+i] = last_entropy[i] - } - - histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) - } - - self.block_size_ = 0 - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - - combined_histo = nil - } - - if is_final { - *self.histograms_size_ = split.num_types * num_contexts - split.num_blocks = self.num_blocks_ - } -} - -/* -Adds the next symbol to the current block type and context. When the - - current block reaches the target size, decides on merging the block. -*/ -func contextBlockSplitterAddSymbol(self *contextBlockSplitter, symbol uint, context uint) { - histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_+context], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - contextBlockSplitterFinishBlock(self, false) /* is_final = */ - } -} - -func mapStaticContexts(num_contexts uint, static_context_map []uint32, mb *metaBlockSplit) { - var i uint - mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits - if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { - mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) - } else { - mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] - } - - for i = 0; i < mb.literal_split.num_types; i++ { - var offset uint32 = uint32(i * num_contexts) - var j uint - for j = 0; j < 1<= 128 { - blockSplitterAddSymbolDistance(&dist_blocks, uint(cmd.dist_prefix_)&0x3FF) - } - } - } - - if num_contexts == 1 { - blockSplitterFinishBlockLiteral(&lit_blocks.plain, true) /* is_final = */ - } else { - contextBlockSplitterFinishBlock(&lit_blocks.ctx, true) /* is_final = */ - } - - blockSplitterFinishBlockCommand(&cmd_blocks, true) /* is_final = */ - blockSplitterFinishBlockDistance(&dist_blocks, true) /* is_final = */ - - if num_contexts > 1 { - mapStaticContexts(num_contexts, static_context_map, mb) - } -} - -func buildMetaBlockGreedy(ringbuffer []byte, pos uint, mask uint, prev_byte byte, prev_byte2 byte, literal_context_lut contextLUT, num_contexts uint, static_context_map []uint32, commands []command, mb *metaBlockSplit) { - if num_contexts == 1 { - buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, 1, nil, commands, mb) - } else { - buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, num_contexts, static_context_map, commands, mb) - } -} - -func optimizeHistograms(num_distance_codes uint32, mb *metaBlockSplit) { - var good_for_rle [numCommandSymbols]byte - var i uint - for i = 0; i < mb.literal_histograms_size; i++ { - optimizeHuffmanCountsForRLE(256, mb.literal_histograms[i].data_[:], good_for_rle[:]) - } - - for i = 0; i < mb.command_histograms_size; i++ { - optimizeHuffmanCountsForRLE(numCommandSymbols, mb.command_histograms[i].data_[:], good_for_rle[:]) - } - - for i = 0; i < mb.distance_histograms_size; i++ { - optimizeHuffmanCountsForRLE(uint(num_distance_codes), mb.distance_histograms[i].data_[:], good_for_rle[:]) - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/metablock_command.go b/backend/vendor/github.com/andybalholm/brotli/metablock_command.go deleted file mode 100644 index e2d1b2de..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/metablock_command.go +++ /dev/null @@ -1,171 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Greedy block splitter for one block category (literal, command or distance). - */ -type blockSplitterCommand struct { - alphabet_size_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramCommand - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2]float64 - merge_last_count_ uint -} - -func initBlockSplitterCommand(self *blockSplitterCommand, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramCommand, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - self.alphabet_size_ = alphabet_size - - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - self.split_.num_blocks = max_num_blocks - *histograms_size = max_num_types - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramCommand, (*histograms_size)) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - histogramClearCommand(&self.histograms_[0]) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* -Does either of three things: - - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. -*/ -func blockSplitterFinishBlockCommand(self *blockSplitterCommand, is_final bool) { - var split *blockSplit = self.split_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramCommand = self.histograms_ - self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) - if self.num_blocks_ == 0 { - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) - last_entropy[1] = last_entropy[0] - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) - var combined_histo [2]histogramCommand - var combined_entropy [2]float64 - var diff [2]float64 - var j uint - for j = 0; j < 2; j++ { - var last_histogram_ix uint = self.last_histogram_ix_[j] - combined_histo[j] = histograms[self.curr_histogram_ix_] - histogramAddHistogramCommand(&combined_histo[j], &histograms[last_histogram_ix]) - combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) - diff[j] = combined_entropy[j] - entropy - last_entropy[j] - } - - if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = uint(byte(split.num_types)) - last_entropy[1] = last_entropy[0] - last_entropy[0] = entropy - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - histograms[self.last_histogram_ix_[0]] = combined_histo[1] - last_entropy[1] = last_entropy[0] - last_entropy[0] = combined_entropy[1] - self.num_blocks_++ - self.block_size_ = 0 - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - histograms[self.last_histogram_ix_[0]] = combined_histo[0] - last_entropy[0] = combined_entropy[0] - if split.num_types == 1 { - last_entropy[1] = last_entropy[0] - } - - self.block_size_ = 0 - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - } - - if is_final { - *self.histograms_size_ = split.num_types - split.num_blocks = self.num_blocks_ - } -} - -/* -Adds the next symbol to the current histogram. When the current histogram - - reaches the target size, decides on merging the block. -*/ -func blockSplitterAddSymbolCommand(self *blockSplitterCommand, symbol uint) { - histogramAddCommand(&self.histograms_[self.curr_histogram_ix_], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - blockSplitterFinishBlockCommand(self, false) /* is_final = */ - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/metablock_distance.go b/backend/vendor/github.com/andybalholm/brotli/metablock_distance.go deleted file mode 100644 index 9981513c..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/metablock_distance.go +++ /dev/null @@ -1,171 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Greedy block splitter for one block category (literal, command or distance). - */ -type blockSplitterDistance struct { - alphabet_size_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramDistance - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2]float64 - merge_last_count_ uint -} - -func initBlockSplitterDistance(self *blockSplitterDistance, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramDistance, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - self.alphabet_size_ = alphabet_size - - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - self.split_.num_blocks = max_num_blocks - *histograms_size = max_num_types - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramDistance, *histograms_size) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - histogramClearDistance(&self.histograms_[0]) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* -Does either of three things: - - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. -*/ -func blockSplitterFinishBlockDistance(self *blockSplitterDistance, is_final bool) { - var split *blockSplit = self.split_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramDistance = self.histograms_ - self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) - if self.num_blocks_ == 0 { - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) - last_entropy[1] = last_entropy[0] - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) - var combined_histo [2]histogramDistance - var combined_entropy [2]float64 - var diff [2]float64 - var j uint - for j = 0; j < 2; j++ { - var last_histogram_ix uint = self.last_histogram_ix_[j] - combined_histo[j] = histograms[self.curr_histogram_ix_] - histogramAddHistogramDistance(&combined_histo[j], &histograms[last_histogram_ix]) - combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) - diff[j] = combined_entropy[j] - entropy - last_entropy[j] - } - - if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = uint(byte(split.num_types)) - last_entropy[1] = last_entropy[0] - last_entropy[0] = entropy - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - histograms[self.last_histogram_ix_[0]] = combined_histo[1] - last_entropy[1] = last_entropy[0] - last_entropy[0] = combined_entropy[1] - self.num_blocks_++ - self.block_size_ = 0 - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - histograms[self.last_histogram_ix_[0]] = combined_histo[0] - last_entropy[0] = combined_entropy[0] - if split.num_types == 1 { - last_entropy[1] = last_entropy[0] - } - - self.block_size_ = 0 - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - } - - if is_final { - *self.histograms_size_ = split.num_types - split.num_blocks = self.num_blocks_ - } -} - -/* -Adds the next symbol to the current histogram. When the current histogram - - reaches the target size, decides on merging the block. -*/ -func blockSplitterAddSymbolDistance(self *blockSplitterDistance, symbol uint) { - histogramAddDistance(&self.histograms_[self.curr_histogram_ix_], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - blockSplitterFinishBlockDistance(self, false) /* is_final = */ - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/metablock_literal.go b/backend/vendor/github.com/andybalholm/brotli/metablock_literal.go deleted file mode 100644 index 36630969..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/metablock_literal.go +++ /dev/null @@ -1,171 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Greedy block splitter for one block category (literal, command or distance). - */ -type blockSplitterLiteral struct { - alphabet_size_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramLiteral - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2]float64 - merge_last_count_ uint -} - -func initBlockSplitterLiteral(self *blockSplitterLiteral, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramLiteral, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - self.alphabet_size_ = alphabet_size - - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - self.split_.num_blocks = max_num_blocks - *histograms_size = max_num_types - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramLiteral, *histograms_size) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - histogramClearLiteral(&self.histograms_[0]) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* -Does either of three things: - - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. -*/ -func blockSplitterFinishBlockLiteral(self *blockSplitterLiteral, is_final bool) { - var split *blockSplit = self.split_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramLiteral = self.histograms_ - self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) - if self.num_blocks_ == 0 { - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) - last_entropy[1] = last_entropy[0] - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) - var combined_histo [2]histogramLiteral - var combined_entropy [2]float64 - var diff [2]float64 - var j uint - for j = 0; j < 2; j++ { - var last_histogram_ix uint = self.last_histogram_ix_[j] - combined_histo[j] = histograms[self.curr_histogram_ix_] - histogramAddHistogramLiteral(&combined_histo[j], &histograms[last_histogram_ix]) - combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) - diff[j] = combined_entropy[j] - entropy - last_entropy[j] - } - - if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = uint(byte(split.num_types)) - last_entropy[1] = last_entropy[0] - last_entropy[0] = entropy - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - histograms[self.last_histogram_ix_[0]] = combined_histo[1] - last_entropy[1] = last_entropy[0] - last_entropy[0] = combined_entropy[1] - self.num_blocks_++ - self.block_size_ = 0 - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - histograms[self.last_histogram_ix_[0]] = combined_histo[0] - last_entropy[0] = combined_entropy[0] - if split.num_types == 1 { - last_entropy[1] = last_entropy[0] - } - - self.block_size_ = 0 - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - } - - if is_final { - *self.histograms_size_ = split.num_types - split.num_blocks = self.num_blocks_ - } -} - -/* -Adds the next symbol to the current histogram. When the current histogram - - reaches the target size, decides on merging the block. -*/ -func blockSplitterAddSymbolLiteral(self *blockSplitterLiteral, symbol uint) { - histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - blockSplitterFinishBlockLiteral(self, false) /* is_final = */ - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/params.go b/backend/vendor/github.com/andybalholm/brotli/params.go deleted file mode 100644 index 0a4c6875..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/params.go +++ /dev/null @@ -1,37 +0,0 @@ -package brotli - -/* Copyright 2017 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Parameters for the Brotli encoder with chosen quality levels. */ -type hasherParams struct { - type_ int - bucket_bits int - block_bits int - hash_len int - num_last_distances_to_check int -} - -type distanceParams struct { - distance_postfix_bits uint32 - num_direct_distance_codes uint32 - alphabet_size uint32 - max_distance uint -} - -/* Encoding parameters */ -type encoderParams struct { - mode int - quality int - lgwin uint - lgblock int - size_hint uint - disable_literal_context_modeling bool - large_window bool - hasher hasherParams - dist distanceParams - dictionary encoderDictionary -} diff --git a/backend/vendor/github.com/andybalholm/brotli/platform.go b/backend/vendor/github.com/andybalholm/brotli/platform.go deleted file mode 100644 index 4ebfb152..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/platform.go +++ /dev/null @@ -1,103 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func brotli_min_double(a float64, b float64) float64 { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_double(a float64, b float64) float64 { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_float(a float32, b float32) float32 { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_float(a float32, b float32) float32 { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_int(a int, b int) int { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_int(a int, b int) int { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_size_t(a uint, b uint) uint { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_size_t(a uint, b uint) uint { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_uint32_t(a uint32, b uint32) uint32 { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_uint32_t(a uint32, b uint32) uint32 { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_uint8_t(a byte, b byte) byte { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_uint8_t(a byte, b byte) byte { - if a > b { - return a - } else { - return b - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/prefix.go b/backend/vendor/github.com/andybalholm/brotli/prefix.go deleted file mode 100644 index 8b657d25..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/prefix.go +++ /dev/null @@ -1,33 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Functions for encoding of integers into prefix codes the amount of extra - bits, and the actual values of the extra bits. */ - -/* -Here distance_code is an intermediate code, i.e. one of the special codes or - - the actual distance increased by BROTLI_NUM_DISTANCE_SHORT_CODES - 1. -*/ -func prefixEncodeCopyDistance(distance_code uint, num_direct_codes uint, postfix_bits uint, code *uint16, extra_bits *uint32) { - if distance_code < numDistanceShortCodes+num_direct_codes { - *code = uint16(distance_code) - *extra_bits = 0 - return - } else { - var dist uint = (uint(1) << (postfix_bits + 2)) + (distance_code - numDistanceShortCodes - num_direct_codes) - var bucket uint = uint(log2FloorNonZero(dist) - 1) - var postfix_mask uint = (1 << postfix_bits) - 1 - var postfix uint = dist & postfix_mask - var prefix uint = (dist >> bucket) & 1 - var offset uint = (2 + prefix) << bucket - var nbits uint = bucket - postfix_bits - *code = uint16(nbits<<10 | (numDistanceShortCodes + num_direct_codes + ((2*(nbits-1) + prefix) << postfix_bits) + postfix)) - *extra_bits = uint32((dist - offset) >> postfix_bits) - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/prefix_dec.go b/backend/vendor/github.com/andybalholm/brotli/prefix_dec.go deleted file mode 100644 index 183f0d53..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/prefix_dec.go +++ /dev/null @@ -1,723 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -type cmdLutElement struct { - insert_len_extra_bits byte - copy_len_extra_bits byte - distance_code int8 - context byte - insert_len_offset uint16 - copy_len_offset uint16 -} - -var kCmdLut = [numCommandSymbols]cmdLutElement{ - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0000, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0000, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0000, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0001, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0001, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0001, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0002, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0002, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0002, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0003, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0003, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0003, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0004, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0004, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0004, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0005, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0005, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0005, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0009}, - cmdLutElement{0x01, 0x00, 0, 0x00, 0x0006, 0x0002}, - cmdLutElement{0x01, 0x00, 0, 0x01, 0x0006, 0x0003}, - cmdLutElement{0x01, 0x00, 0, 0x02, 0x0006, 0x0004}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0005}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0006}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0007}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0008}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0009}, - cmdLutElement{0x01, 0x00, 0, 0x00, 0x0008, 0x0002}, - cmdLutElement{0x01, 0x00, 0, 0x01, 0x0008, 0x0003}, - cmdLutElement{0x01, 0x00, 0, 0x02, 0x0008, 0x0004}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0005}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0006}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0007}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0008}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0009}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0036}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000a}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000c}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x000e}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x0012}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x0016}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x001e}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0026}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0036}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000a}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000c}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x000e}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x0012}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x0016}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x001e}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0026}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0036}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0000, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0000, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0000, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0001, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0001, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0001, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0002, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0002, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0002, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0003, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0003, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0003, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0004, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0004, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0004, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0005, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0005, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0005, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0009}, - cmdLutElement{0x01, 0x00, -1, 0x00, 0x0006, 0x0002}, - cmdLutElement{0x01, 0x00, -1, 0x01, 0x0006, 0x0003}, - cmdLutElement{0x01, 0x00, -1, 0x02, 0x0006, 0x0004}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0005}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0006}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0007}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0008}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0009}, - cmdLutElement{0x01, 0x00, -1, 0x00, 0x0008, 0x0002}, - cmdLutElement{0x01, 0x00, -1, 0x01, 0x0008, 0x0003}, - cmdLutElement{0x01, 0x00, -1, 0x02, 0x0008, 0x0004}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0005}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0006}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0007}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0008}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0009}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0036}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000a}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000c}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x000e}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x0012}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x0016}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x001e}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0026}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0036}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000a}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000c}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x000e}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x0012}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x0016}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x001e}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0026}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0036}, - cmdLutElement{0x02, 0x00, -1, 0x00, 0x000a, 0x0002}, - cmdLutElement{0x02, 0x00, -1, 0x01, 0x000a, 0x0003}, - cmdLutElement{0x02, 0x00, -1, 0x02, 0x000a, 0x0004}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0005}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0006}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0007}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0008}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0009}, - cmdLutElement{0x02, 0x00, -1, 0x00, 0x000e, 0x0002}, - cmdLutElement{0x02, 0x00, -1, 0x01, 0x000e, 0x0003}, - cmdLutElement{0x02, 0x00, -1, 0x02, 0x000e, 0x0004}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0005}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0006}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0007}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0008}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0009}, - cmdLutElement{0x03, 0x00, -1, 0x00, 0x0012, 0x0002}, - cmdLutElement{0x03, 0x00, -1, 0x01, 0x0012, 0x0003}, - cmdLutElement{0x03, 0x00, -1, 0x02, 0x0012, 0x0004}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0005}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0006}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0007}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0008}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0009}, - cmdLutElement{0x03, 0x00, -1, 0x00, 0x001a, 0x0002}, - cmdLutElement{0x03, 0x00, -1, 0x01, 0x001a, 0x0003}, - cmdLutElement{0x03, 0x00, -1, 0x02, 0x001a, 0x0004}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0005}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0006}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0007}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0008}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0009}, - cmdLutElement{0x04, 0x00, -1, 0x00, 0x0022, 0x0002}, - cmdLutElement{0x04, 0x00, -1, 0x01, 0x0022, 0x0003}, - cmdLutElement{0x04, 0x00, -1, 0x02, 0x0022, 0x0004}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0005}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0006}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0007}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0008}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0009}, - cmdLutElement{0x04, 0x00, -1, 0x00, 0x0032, 0x0002}, - cmdLutElement{0x04, 0x00, -1, 0x01, 0x0032, 0x0003}, - cmdLutElement{0x04, 0x00, -1, 0x02, 0x0032, 0x0004}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0005}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0006}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0007}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0008}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0009}, - cmdLutElement{0x05, 0x00, -1, 0x00, 0x0042, 0x0002}, - cmdLutElement{0x05, 0x00, -1, 0x01, 0x0042, 0x0003}, - cmdLutElement{0x05, 0x00, -1, 0x02, 0x0042, 0x0004}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0005}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0006}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0007}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0008}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0009}, - cmdLutElement{0x05, 0x00, -1, 0x00, 0x0062, 0x0002}, - cmdLutElement{0x05, 0x00, -1, 0x01, 0x0062, 0x0003}, - cmdLutElement{0x05, 0x00, -1, 0x02, 0x0062, 0x0004}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0005}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0006}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0007}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0008}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0009}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000a}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000c}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x000e}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x0012}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x0016}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x001e}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0026}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0036}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000a}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000c}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x000e}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x0012}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x0016}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x001e}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0026}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0036}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000a}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000c}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x000e}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x0012}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x0016}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x001e}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0026}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0036}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000a}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000c}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x000e}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x0012}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x0016}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x001e}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0026}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0036}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000a}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000c}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x000e}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x0012}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x0016}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x001e}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0026}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0036}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000a}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000c}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x000e}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x0012}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x0016}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x001e}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0026}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0036}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000a}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000c}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x000e}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x0012}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x0016}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x001e}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0026}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0036}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000a}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000c}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x000e}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x0012}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x0016}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x001e}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0026}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0036}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0000, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0000, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0000, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0000, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0000, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0000, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0001, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0001, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0001, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0001, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0001, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0001, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0002, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0002, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0002, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0002, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0002, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0002, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0003, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0003, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0003, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0003, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0003, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0003, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0004, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0004, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0004, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0004, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0004, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0004, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0005, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0005, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0005, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0005, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0005, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0005, 0x0846}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0046}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0066}, - cmdLutElement{0x01, 0x06, -1, 0x03, 0x0006, 0x0086}, - cmdLutElement{0x01, 0x07, -1, 0x03, 0x0006, 0x00c6}, - cmdLutElement{0x01, 0x08, -1, 0x03, 0x0006, 0x0146}, - cmdLutElement{0x01, 0x09, -1, 0x03, 0x0006, 0x0246}, - cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0006, 0x0446}, - cmdLutElement{0x01, 0x18, -1, 0x03, 0x0006, 0x0846}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0046}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0066}, - cmdLutElement{0x01, 0x06, -1, 0x03, 0x0008, 0x0086}, - cmdLutElement{0x01, 0x07, -1, 0x03, 0x0008, 0x00c6}, - cmdLutElement{0x01, 0x08, -1, 0x03, 0x0008, 0x0146}, - cmdLutElement{0x01, 0x09, -1, 0x03, 0x0008, 0x0246}, - cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0008, 0x0446}, - cmdLutElement{0x01, 0x18, -1, 0x03, 0x0008, 0x0846}, - cmdLutElement{0x06, 0x00, -1, 0x00, 0x0082, 0x0002}, - cmdLutElement{0x06, 0x00, -1, 0x01, 0x0082, 0x0003}, - cmdLutElement{0x06, 0x00, -1, 0x02, 0x0082, 0x0004}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0005}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0006}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0007}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0008}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0009}, - cmdLutElement{0x07, 0x00, -1, 0x00, 0x00c2, 0x0002}, - cmdLutElement{0x07, 0x00, -1, 0x01, 0x00c2, 0x0003}, - cmdLutElement{0x07, 0x00, -1, 0x02, 0x00c2, 0x0004}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0005}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0006}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0007}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0008}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0009}, - cmdLutElement{0x08, 0x00, -1, 0x00, 0x0142, 0x0002}, - cmdLutElement{0x08, 0x00, -1, 0x01, 0x0142, 0x0003}, - cmdLutElement{0x08, 0x00, -1, 0x02, 0x0142, 0x0004}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0005}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0006}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0007}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0008}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0009}, - cmdLutElement{0x09, 0x00, -1, 0x00, 0x0242, 0x0002}, - cmdLutElement{0x09, 0x00, -1, 0x01, 0x0242, 0x0003}, - cmdLutElement{0x09, 0x00, -1, 0x02, 0x0242, 0x0004}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0005}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0006}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0007}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0008}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0009}, - cmdLutElement{0x0a, 0x00, -1, 0x00, 0x0442, 0x0002}, - cmdLutElement{0x0a, 0x00, -1, 0x01, 0x0442, 0x0003}, - cmdLutElement{0x0a, 0x00, -1, 0x02, 0x0442, 0x0004}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0005}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0006}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0007}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0008}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0009}, - cmdLutElement{0x0c, 0x00, -1, 0x00, 0x0842, 0x0002}, - cmdLutElement{0x0c, 0x00, -1, 0x01, 0x0842, 0x0003}, - cmdLutElement{0x0c, 0x00, -1, 0x02, 0x0842, 0x0004}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0005}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0006}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0007}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0008}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0009}, - cmdLutElement{0x0e, 0x00, -1, 0x00, 0x1842, 0x0002}, - cmdLutElement{0x0e, 0x00, -1, 0x01, 0x1842, 0x0003}, - cmdLutElement{0x0e, 0x00, -1, 0x02, 0x1842, 0x0004}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0005}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0006}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0007}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0008}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0009}, - cmdLutElement{0x18, 0x00, -1, 0x00, 0x5842, 0x0002}, - cmdLutElement{0x18, 0x00, -1, 0x01, 0x5842, 0x0003}, - cmdLutElement{0x18, 0x00, -1, 0x02, 0x5842, 0x0004}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0005}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0006}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0007}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0008}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0009}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0046}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0066}, - cmdLutElement{0x02, 0x06, -1, 0x03, 0x000a, 0x0086}, - cmdLutElement{0x02, 0x07, -1, 0x03, 0x000a, 0x00c6}, - cmdLutElement{0x02, 0x08, -1, 0x03, 0x000a, 0x0146}, - cmdLutElement{0x02, 0x09, -1, 0x03, 0x000a, 0x0246}, - cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000a, 0x0446}, - cmdLutElement{0x02, 0x18, -1, 0x03, 0x000a, 0x0846}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0046}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0066}, - cmdLutElement{0x02, 0x06, -1, 0x03, 0x000e, 0x0086}, - cmdLutElement{0x02, 0x07, -1, 0x03, 0x000e, 0x00c6}, - cmdLutElement{0x02, 0x08, -1, 0x03, 0x000e, 0x0146}, - cmdLutElement{0x02, 0x09, -1, 0x03, 0x000e, 0x0246}, - cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000e, 0x0446}, - cmdLutElement{0x02, 0x18, -1, 0x03, 0x000e, 0x0846}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0046}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0066}, - cmdLutElement{0x03, 0x06, -1, 0x03, 0x0012, 0x0086}, - cmdLutElement{0x03, 0x07, -1, 0x03, 0x0012, 0x00c6}, - cmdLutElement{0x03, 0x08, -1, 0x03, 0x0012, 0x0146}, - cmdLutElement{0x03, 0x09, -1, 0x03, 0x0012, 0x0246}, - cmdLutElement{0x03, 0x0a, -1, 0x03, 0x0012, 0x0446}, - cmdLutElement{0x03, 0x18, -1, 0x03, 0x0012, 0x0846}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0046}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0066}, - cmdLutElement{0x03, 0x06, -1, 0x03, 0x001a, 0x0086}, - cmdLutElement{0x03, 0x07, -1, 0x03, 0x001a, 0x00c6}, - cmdLutElement{0x03, 0x08, -1, 0x03, 0x001a, 0x0146}, - cmdLutElement{0x03, 0x09, -1, 0x03, 0x001a, 0x0246}, - cmdLutElement{0x03, 0x0a, -1, 0x03, 0x001a, 0x0446}, - cmdLutElement{0x03, 0x18, -1, 0x03, 0x001a, 0x0846}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0046}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0066}, - cmdLutElement{0x04, 0x06, -1, 0x03, 0x0022, 0x0086}, - cmdLutElement{0x04, 0x07, -1, 0x03, 0x0022, 0x00c6}, - cmdLutElement{0x04, 0x08, -1, 0x03, 0x0022, 0x0146}, - cmdLutElement{0x04, 0x09, -1, 0x03, 0x0022, 0x0246}, - cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0022, 0x0446}, - cmdLutElement{0x04, 0x18, -1, 0x03, 0x0022, 0x0846}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0046}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0066}, - cmdLutElement{0x04, 0x06, -1, 0x03, 0x0032, 0x0086}, - cmdLutElement{0x04, 0x07, -1, 0x03, 0x0032, 0x00c6}, - cmdLutElement{0x04, 0x08, -1, 0x03, 0x0032, 0x0146}, - cmdLutElement{0x04, 0x09, -1, 0x03, 0x0032, 0x0246}, - cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0032, 0x0446}, - cmdLutElement{0x04, 0x18, -1, 0x03, 0x0032, 0x0846}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0046}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0066}, - cmdLutElement{0x05, 0x06, -1, 0x03, 0x0042, 0x0086}, - cmdLutElement{0x05, 0x07, -1, 0x03, 0x0042, 0x00c6}, - cmdLutElement{0x05, 0x08, -1, 0x03, 0x0042, 0x0146}, - cmdLutElement{0x05, 0x09, -1, 0x03, 0x0042, 0x0246}, - cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0042, 0x0446}, - cmdLutElement{0x05, 0x18, -1, 0x03, 0x0042, 0x0846}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0046}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0066}, - cmdLutElement{0x05, 0x06, -1, 0x03, 0x0062, 0x0086}, - cmdLutElement{0x05, 0x07, -1, 0x03, 0x0062, 0x00c6}, - cmdLutElement{0x05, 0x08, -1, 0x03, 0x0062, 0x0146}, - cmdLutElement{0x05, 0x09, -1, 0x03, 0x0062, 0x0246}, - cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0062, 0x0446}, - cmdLutElement{0x05, 0x18, -1, 0x03, 0x0062, 0x0846}, - cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000a}, - cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000c}, - cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x000e}, - cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x0012}, - cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x0016}, - cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x001e}, - cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0026}, - cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0036}, - cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000a}, - cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000c}, - cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x000e}, - cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x0012}, - cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x0016}, - cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x001e}, - cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0026}, - cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0036}, - cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000a}, - cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000c}, - cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x000e}, - cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x0012}, - cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x0016}, - cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x001e}, - cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0026}, - cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0036}, - cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000a}, - cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000c}, - cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x000e}, - cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x0012}, - cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x0016}, - cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x001e}, - cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0026}, - cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0036}, - cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000a}, - cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000c}, - cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x000e}, - cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x0012}, - cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x0016}, - cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x001e}, - cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0026}, - cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0036}, - cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000a}, - cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000c}, - cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x000e}, - cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x0012}, - cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x0016}, - cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x001e}, - cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0026}, - cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0036}, - cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000a}, - cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000c}, - cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x000e}, - cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x0012}, - cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x0016}, - cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x001e}, - cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0026}, - cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0036}, - cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000a}, - cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000c}, - cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x000e}, - cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x0012}, - cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x0016}, - cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x001e}, - cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0026}, - cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0036}, - cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0046}, - cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0066}, - cmdLutElement{0x06, 0x06, -1, 0x03, 0x0082, 0x0086}, - cmdLutElement{0x06, 0x07, -1, 0x03, 0x0082, 0x00c6}, - cmdLutElement{0x06, 0x08, -1, 0x03, 0x0082, 0x0146}, - cmdLutElement{0x06, 0x09, -1, 0x03, 0x0082, 0x0246}, - cmdLutElement{0x06, 0x0a, -1, 0x03, 0x0082, 0x0446}, - cmdLutElement{0x06, 0x18, -1, 0x03, 0x0082, 0x0846}, - cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0046}, - cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0066}, - cmdLutElement{0x07, 0x06, -1, 0x03, 0x00c2, 0x0086}, - cmdLutElement{0x07, 0x07, -1, 0x03, 0x00c2, 0x00c6}, - cmdLutElement{0x07, 0x08, -1, 0x03, 0x00c2, 0x0146}, - cmdLutElement{0x07, 0x09, -1, 0x03, 0x00c2, 0x0246}, - cmdLutElement{0x07, 0x0a, -1, 0x03, 0x00c2, 0x0446}, - cmdLutElement{0x07, 0x18, -1, 0x03, 0x00c2, 0x0846}, - cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0046}, - cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0066}, - cmdLutElement{0x08, 0x06, -1, 0x03, 0x0142, 0x0086}, - cmdLutElement{0x08, 0x07, -1, 0x03, 0x0142, 0x00c6}, - cmdLutElement{0x08, 0x08, -1, 0x03, 0x0142, 0x0146}, - cmdLutElement{0x08, 0x09, -1, 0x03, 0x0142, 0x0246}, - cmdLutElement{0x08, 0x0a, -1, 0x03, 0x0142, 0x0446}, - cmdLutElement{0x08, 0x18, -1, 0x03, 0x0142, 0x0846}, - cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0046}, - cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0066}, - cmdLutElement{0x09, 0x06, -1, 0x03, 0x0242, 0x0086}, - cmdLutElement{0x09, 0x07, -1, 0x03, 0x0242, 0x00c6}, - cmdLutElement{0x09, 0x08, -1, 0x03, 0x0242, 0x0146}, - cmdLutElement{0x09, 0x09, -1, 0x03, 0x0242, 0x0246}, - cmdLutElement{0x09, 0x0a, -1, 0x03, 0x0242, 0x0446}, - cmdLutElement{0x09, 0x18, -1, 0x03, 0x0242, 0x0846}, - cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0046}, - cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0066}, - cmdLutElement{0x0a, 0x06, -1, 0x03, 0x0442, 0x0086}, - cmdLutElement{0x0a, 0x07, -1, 0x03, 0x0442, 0x00c6}, - cmdLutElement{0x0a, 0x08, -1, 0x03, 0x0442, 0x0146}, - cmdLutElement{0x0a, 0x09, -1, 0x03, 0x0442, 0x0246}, - cmdLutElement{0x0a, 0x0a, -1, 0x03, 0x0442, 0x0446}, - cmdLutElement{0x0a, 0x18, -1, 0x03, 0x0442, 0x0846}, - cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0046}, - cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0066}, - cmdLutElement{0x0c, 0x06, -1, 0x03, 0x0842, 0x0086}, - cmdLutElement{0x0c, 0x07, -1, 0x03, 0x0842, 0x00c6}, - cmdLutElement{0x0c, 0x08, -1, 0x03, 0x0842, 0x0146}, - cmdLutElement{0x0c, 0x09, -1, 0x03, 0x0842, 0x0246}, - cmdLutElement{0x0c, 0x0a, -1, 0x03, 0x0842, 0x0446}, - cmdLutElement{0x0c, 0x18, -1, 0x03, 0x0842, 0x0846}, - cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0046}, - cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0066}, - cmdLutElement{0x0e, 0x06, -1, 0x03, 0x1842, 0x0086}, - cmdLutElement{0x0e, 0x07, -1, 0x03, 0x1842, 0x00c6}, - cmdLutElement{0x0e, 0x08, -1, 0x03, 0x1842, 0x0146}, - cmdLutElement{0x0e, 0x09, -1, 0x03, 0x1842, 0x0246}, - cmdLutElement{0x0e, 0x0a, -1, 0x03, 0x1842, 0x0446}, - cmdLutElement{0x0e, 0x18, -1, 0x03, 0x1842, 0x0846}, - cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0046}, - cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0066}, - cmdLutElement{0x18, 0x06, -1, 0x03, 0x5842, 0x0086}, - cmdLutElement{0x18, 0x07, -1, 0x03, 0x5842, 0x00c6}, - cmdLutElement{0x18, 0x08, -1, 0x03, 0x5842, 0x0146}, - cmdLutElement{0x18, 0x09, -1, 0x03, 0x5842, 0x0246}, - cmdLutElement{0x18, 0x0a, -1, 0x03, 0x5842, 0x0446}, - cmdLutElement{0x18, 0x18, -1, 0x03, 0x5842, 0x0846}, -} diff --git a/backend/vendor/github.com/andybalholm/brotli/quality.go b/backend/vendor/github.com/andybalholm/brotli/quality.go deleted file mode 100644 index a970f284..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/quality.go +++ /dev/null @@ -1,205 +0,0 @@ -package brotli - -const fastOnePassCompressionQuality = 0 - -const fastTwoPassCompressionQuality = 1 - -const zopflificationQuality = 10 - -const hqZopflificationQuality = 11 - -const maxQualityForStaticEntropyCodes = 2 - -const minQualityForBlockSplit = 4 - -const minQualityForNonzeroDistanceParams = 4 - -const minQualityForOptimizeHistograms = 4 - -const minQualityForExtensiveReferenceSearch = 5 - -const minQualityForContextModeling = 5 - -const minQualityForHqContextModeling = 7 - -const minQualityForHqBlockSplitting = 10 - -/* -For quality below MIN_QUALITY_FOR_BLOCK_SPLIT there is no block splitting, - - so we buffer at most this much literals and commands. -*/ -const maxNumDelayedSymbols = 0x2FFF - -/* Returns hash-table size for quality levels 0 and 1. */ -func maxHashTableSize(quality int) uint { - if quality == fastOnePassCompressionQuality { - return 1 << 15 - } else { - return 1 << 17 - } -} - -/* The maximum length for which the zopflification uses distinct distances. */ -const maxZopfliLenQuality10 = 150 - -const maxZopfliLenQuality11 = 325 - -/* Do not thoroughly search when a long copy is found. */ -const longCopyQuickStep = 16384 - -func maxZopfliLen(params *encoderParams) uint { - if params.quality <= 10 { - return maxZopfliLenQuality10 - } else { - return maxZopfliLenQuality11 - } -} - -/* Number of best candidates to evaluate to expand Zopfli chain. */ -func maxZopfliCandidates(params *encoderParams) uint { - if params.quality <= 10 { - return 1 - } else { - return 5 - } -} - -func sanitizeParams(params *encoderParams) { - params.quality = brotli_min_int(maxQuality, brotli_max_int(minQuality, params.quality)) - if params.quality <= maxQualityForStaticEntropyCodes { - params.large_window = false - } - - if params.lgwin < minWindowBits { - params.lgwin = minWindowBits - } else { - var max_lgwin int - if params.large_window { - max_lgwin = largeMaxWindowBits - } else { - max_lgwin = maxWindowBits - } - if params.lgwin > uint(max_lgwin) { - params.lgwin = uint(max_lgwin) - } - } -} - -/* Returns optimized lg_block value. */ -func computeLgBlock(params *encoderParams) int { - var lgblock int = params.lgblock - if params.quality == fastOnePassCompressionQuality || params.quality == fastTwoPassCompressionQuality { - lgblock = int(params.lgwin) - } else if params.quality < minQualityForBlockSplit { - lgblock = 14 - } else if lgblock == 0 { - lgblock = 16 - if params.quality >= 9 && params.lgwin > uint(lgblock) { - lgblock = brotli_min_int(18, int(params.lgwin)) - } - } else { - lgblock = brotli_min_int(maxInputBlockBits, brotli_max_int(minInputBlockBits, lgblock)) - } - - return lgblock -} - -/* -Returns log2 of the size of main ring buffer area. - - Allocate at least lgwin + 1 bits for the ring buffer so that the newly - added block fits there completely and we still get lgwin bits and at least - read_block_size_bits + 1 bits because the copy tail length needs to be - smaller than ring-buffer size. -*/ -func computeRbBits(params *encoderParams) int { - return 1 + brotli_max_int(int(params.lgwin), params.lgblock) -} - -func maxMetablockSize(params *encoderParams) uint { - var bits int = brotli_min_int(computeRbBits(params), maxInputBlockBits) - return uint(1) << uint(bits) -} - -/* -When searching for backward references and have not seen matches for a long - - time, we can skip some match lookups. Unsuccessful match lookups are very - expensive and this kind of a heuristic speeds up compression quite a lot. - At first 8 byte strides are taken and every second byte is put to hasher. - After 4x more literals stride by 16 bytes, every put 4-th byte to hasher. - Applied only to qualities 2 to 9. -*/ -func literalSpreeLengthForSparseSearch(params *encoderParams) uint { - if params.quality < 9 { - return 64 - } else { - return 512 - } -} - -func chooseHasher(params *encoderParams, hparams *hasherParams) { - if params.quality > 9 { - hparams.type_ = 10 - } else if params.quality == 4 && params.size_hint >= 1<<20 { - hparams.type_ = 54 - } else if params.quality < 5 { - hparams.type_ = params.quality - } else if params.lgwin <= 16 { - if params.quality < 7 { - hparams.type_ = 40 - } else if params.quality < 9 { - hparams.type_ = 41 - } else { - hparams.type_ = 42 - } - } else if params.size_hint >= 1<<20 && params.lgwin >= 19 { - hparams.type_ = 6 - hparams.block_bits = params.quality - 1 - hparams.bucket_bits = 15 - hparams.hash_len = 5 - if params.quality < 7 { - hparams.num_last_distances_to_check = 4 - } else if params.quality < 9 { - hparams.num_last_distances_to_check = 10 - } else { - hparams.num_last_distances_to_check = 16 - } - } else { - hparams.type_ = 5 - hparams.block_bits = params.quality - 1 - if params.quality < 7 { - hparams.bucket_bits = 14 - } else { - hparams.bucket_bits = 15 - } - if params.quality < 7 { - hparams.num_last_distances_to_check = 4 - } else if params.quality < 9 { - hparams.num_last_distances_to_check = 10 - } else { - hparams.num_last_distances_to_check = 16 - } - } - - if params.lgwin > 24 { - /* Different hashers for large window brotli: not for qualities <= 2, - these are too fast for large window. Not for qualities >= 10: their - hasher already works well with large window. So the changes are: - H3 --> H35: for quality 3. - H54 --> H55: for quality 4 with size hint > 1MB - H6 --> H65: for qualities 5, 6, 7, 8, 9. */ - if hparams.type_ == 3 { - hparams.type_ = 35 - } - - if hparams.type_ == 54 { - hparams.type_ = 55 - } - - if hparams.type_ == 6 { - hparams.type_ = 65 - } - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/reader.go b/backend/vendor/github.com/andybalholm/brotli/reader.go deleted file mode 100644 index 5c795e6e..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/reader.go +++ /dev/null @@ -1,100 +0,0 @@ -package brotli - -import ( - "errors" - "io" -) - -type decodeError int - -func (err decodeError) Error() string { - return "brotli: " + string(decoderErrorString(int(err))) -} - -var errExcessiveInput = errors.New("brotli: excessive input") -var errInvalidState = errors.New("brotli: invalid state") - -// readBufSize is a "good" buffer size that avoids excessive round-trips -// between C and Go but doesn't waste too much memory on buffering. -// It is arbitrarily chosen to be equal to the constant used in io.Copy. -const readBufSize = 32 * 1024 - -// NewReader creates a new Reader reading the given reader. -func NewReader(src io.Reader) *Reader { - r := new(Reader) - r.Reset(src) - return r -} - -// Reset discards the Reader's state and makes it equivalent to the result of -// its original state from NewReader, but writing to src instead. -// This permits reusing a Reader rather than allocating a new one. -// Error is always nil -func (r *Reader) Reset(src io.Reader) error { - decoderStateInit(r) - r.src = src - r.buf = make([]byte, readBufSize) - return nil -} - -func (r *Reader) Read(p []byte) (n int, err error) { - if !decoderHasMoreOutput(r) && len(r.in) == 0 { - m, readErr := r.src.Read(r.buf) - if m == 0 { - // If readErr is `nil`, we just proxy underlying stream behavior. - return 0, readErr - } - r.in = r.buf[:m] - } - - if len(p) == 0 { - return 0, nil - } - - for { - var written uint - in_len := uint(len(r.in)) - out_len := uint(len(p)) - in_remaining := in_len - out_remaining := out_len - result := decoderDecompressStream(r, &in_remaining, &r.in, &out_remaining, &p) - written = out_len - out_remaining - n = int(written) - - switch result { - case decoderResultSuccess: - if len(r.in) > 0 { - return n, errExcessiveInput - } - return n, nil - case decoderResultError: - return n, decodeError(decoderGetErrorCode(r)) - case decoderResultNeedsMoreOutput: - if n == 0 { - return 0, io.ErrShortBuffer - } - return n, nil - case decoderNeedsMoreInput: - } - - if len(r.in) != 0 { - return 0, errInvalidState - } - - // Calling r.src.Read may block. Don't block if we have data to return. - if n > 0 { - return n, nil - } - - // Top off the buffer. - encN, err := r.src.Read(r.buf) - if encN == 0 { - // Not enough data to complete decoding. - if err == io.EOF { - return 0, io.ErrUnexpectedEOF - } - return 0, err - } - r.in = r.buf[:encN] - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/ringbuffer.go b/backend/vendor/github.com/andybalholm/brotli/ringbuffer.go deleted file mode 100644 index 630f3079..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/ringbuffer.go +++ /dev/null @@ -1,140 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -A ringBuffer(window_bits, tail_bits) contains `1 << window_bits' bytes of - - data in a circular manner: writing a byte writes it to: - `position() % (1 << window_bits)'. - For convenience, the ringBuffer array contains another copy of the - first `1 << tail_bits' bytes: - buffer_[i] == buffer_[i + (1 << window_bits)], if i < (1 << tail_bits), - and another copy of the last two bytes: - buffer_[-1] == buffer_[(1 << window_bits) - 1] and - buffer_[-2] == buffer_[(1 << window_bits) - 2]. -*/ -type ringBuffer struct { - size_ uint32 - mask_ uint32 - tail_size_ uint32 - total_size_ uint32 - cur_size_ uint32 - pos_ uint32 - data_ []byte - buffer_ []byte -} - -func ringBufferInit(rb *ringBuffer) { - rb.pos_ = 0 -} - -func ringBufferSetup(params *encoderParams, rb *ringBuffer) { - var window_bits int = computeRbBits(params) - var tail_bits int = params.lgblock - *(*uint32)(&rb.size_) = 1 << uint(window_bits) - *(*uint32)(&rb.mask_) = (1 << uint(window_bits)) - 1 - *(*uint32)(&rb.tail_size_) = 1 << uint(tail_bits) - *(*uint32)(&rb.total_size_) = rb.size_ + rb.tail_size_ -} - -const kSlackForEightByteHashingEverywhere uint = 7 - -/* -Allocates or re-allocates data_ to the given length + plus some slack - - region before and after. Fills the slack regions with zeros. -*/ -func ringBufferInitBuffer(buflen uint32, rb *ringBuffer) { - var new_data []byte - var i uint - size := 2 + int(buflen) + int(kSlackForEightByteHashingEverywhere) - if cap(rb.data_) < size { - new_data = make([]byte, size) - } else { - new_data = rb.data_[:size] - } - if rb.data_ != nil { - copy(new_data, rb.data_[:2+rb.cur_size_+uint32(kSlackForEightByteHashingEverywhere)]) - } - - rb.data_ = new_data - rb.cur_size_ = buflen - rb.buffer_ = rb.data_[2:] - rb.data_[1] = 0 - rb.data_[0] = rb.data_[1] - for i = 0; i < kSlackForEightByteHashingEverywhere; i++ { - rb.buffer_[rb.cur_size_+uint32(i)] = 0 - } -} - -func ringBufferWriteTail(bytes []byte, n uint, rb *ringBuffer) { - var masked_pos uint = uint(rb.pos_ & rb.mask_) - if uint32(masked_pos) < rb.tail_size_ { - /* Just fill the tail buffer with the beginning data. */ - var p uint = uint(rb.size_ + uint32(masked_pos)) - copy(rb.buffer_[p:], bytes[:brotli_min_size_t(n, uint(rb.tail_size_-uint32(masked_pos)))]) - } -} - -/* Push bytes into the ring buffer. */ -func ringBufferWrite(bytes []byte, n uint, rb *ringBuffer) { - if rb.pos_ == 0 && uint32(n) < rb.tail_size_ { - /* Special case for the first write: to process the first block, we don't - need to allocate the whole ring-buffer and we don't need the tail - either. However, we do this memory usage optimization only if the - first write is less than the tail size, which is also the input block - size, otherwise it is likely that other blocks will follow and we - will need to reallocate to the full size anyway. */ - rb.pos_ = uint32(n) - - ringBufferInitBuffer(rb.pos_, rb) - copy(rb.buffer_, bytes[:n]) - return - } - - if rb.cur_size_ < rb.total_size_ { - /* Lazily allocate the full buffer. */ - ringBufferInitBuffer(rb.total_size_, rb) - - /* Initialize the last two bytes to zero, so that we don't have to worry - later when we copy the last two bytes to the first two positions. */ - rb.buffer_[rb.size_-2] = 0 - - rb.buffer_[rb.size_-1] = 0 - } - { - var masked_pos uint = uint(rb.pos_ & rb.mask_) - - /* The length of the writes is limited so that we do not need to worry - about a write */ - ringBufferWriteTail(bytes, n, rb) - - if uint32(masked_pos+n) <= rb.size_ { - /* A single write fits. */ - copy(rb.buffer_[masked_pos:], bytes[:n]) - } else { - /* Split into two writes. - Copy into the end of the buffer, including the tail buffer. */ - copy(rb.buffer_[masked_pos:], bytes[:brotli_min_size_t(n, uint(rb.total_size_-uint32(masked_pos)))]) - - /* Copy into the beginning of the buffer */ - copy(rb.buffer_, bytes[rb.size_-uint32(masked_pos):][:uint32(n)-(rb.size_-uint32(masked_pos))]) - } - } - { - var not_first_lap bool = rb.pos_&(1<<31) != 0 - var rb_pos_mask uint32 = (1 << 31) - 1 - rb.data_[0] = rb.buffer_[rb.size_-2] - rb.data_[1] = rb.buffer_[rb.size_-1] - rb.pos_ = (rb.pos_ & rb_pos_mask) + uint32(uint32(n)&rb_pos_mask) - if not_first_lap { - /* Wrap, but preserve not-a-first-lap feature. */ - rb.pos_ |= 1 << 31 - } - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/state.go b/backend/vendor/github.com/andybalholm/brotli/state.go deleted file mode 100644 index d03348fe..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/state.go +++ /dev/null @@ -1,295 +0,0 @@ -package brotli - -import "io" - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Brotli state for partial streaming decoding. */ -const ( - stateUninited = iota - stateLargeWindowBits - stateInitialize - stateMetablockBegin - stateMetablockHeader - stateMetablockHeader2 - stateContextModes - stateCommandBegin - stateCommandInner - stateCommandPostDecodeLiterals - stateCommandPostWrapCopy - stateUncompressed - stateMetadata - stateCommandInnerWrite - stateMetablockDone - stateCommandPostWrite1 - stateCommandPostWrite2 - stateHuffmanCode0 - stateHuffmanCode1 - stateHuffmanCode2 - stateHuffmanCode3 - stateContextMap1 - stateContextMap2 - stateTreeGroup - stateDone -) - -const ( - stateMetablockHeaderNone = iota - stateMetablockHeaderEmpty - stateMetablockHeaderNibbles - stateMetablockHeaderSize - stateMetablockHeaderUncompressed - stateMetablockHeaderReserved - stateMetablockHeaderBytes - stateMetablockHeaderMetadata -) - -const ( - stateUncompressedNone = iota - stateUncompressedWrite -) - -const ( - stateTreeGroupNone = iota - stateTreeGroupLoop -) - -const ( - stateContextMapNone = iota - stateContextMapReadPrefix - stateContextMapHuffman - stateContextMapDecode - stateContextMapTransform -) - -const ( - stateHuffmanNone = iota - stateHuffmanSimpleSize - stateHuffmanSimpleRead - stateHuffmanSimpleBuild - stateHuffmanComplex - stateHuffmanLengthSymbols -) - -const ( - stateDecodeUint8None = iota - stateDecodeUint8Short - stateDecodeUint8Long -) - -const ( - stateReadBlockLengthNone = iota - stateReadBlockLengthSuffix -) - -type Reader struct { - src io.Reader - buf []byte // scratch space for reading from src - in []byte // current chunk to decode; usually aliases buf - - state int - loop_counter int - br bitReader - buffer struct { - u64 uint64 - u8 [8]byte - } - buffer_length uint32 - pos int - max_backward_distance int - max_distance int - ringbuffer_size int - ringbuffer_mask int - dist_rb_idx int - dist_rb [4]int - error_code int - sub_loop_counter uint32 - ringbuffer []byte - ringbuffer_end []byte - htree_command []huffmanCode - context_lookup []byte - context_map_slice []byte - dist_context_map_slice []byte - literal_hgroup huffmanTreeGroup - insert_copy_hgroup huffmanTreeGroup - distance_hgroup huffmanTreeGroup - block_type_trees []huffmanCode - block_len_trees []huffmanCode - trivial_literal_context int - distance_context int - meta_block_remaining_len int - block_length_index uint32 - block_length [3]uint32 - num_block_types [3]uint32 - block_type_rb [6]uint32 - distance_postfix_bits uint32 - num_direct_distance_codes uint32 - distance_postfix_mask int - num_dist_htrees uint32 - dist_context_map []byte - literal_htree []huffmanCode - dist_htree_index byte - repeat_code_len uint32 - prev_code_len uint32 - copy_length int - distance_code int - rb_roundtrips uint - partial_pos_out uint - symbol uint32 - repeat uint32 - space uint32 - table [32]huffmanCode - symbol_lists symbolList - symbols_lists_array [huffmanMaxCodeLength + 1 + numCommandSymbols]uint16 - next_symbol [32]int - code_length_code_lengths [codeLengthCodes]byte - code_length_histo [16]uint16 - htree_index int - next []huffmanCode - context_index uint32 - max_run_length_prefix uint32 - code uint32 - context_map_table [huffmanMaxSize272]huffmanCode - substate_metablock_header int - substate_tree_group int - substate_context_map int - substate_uncompressed int - substate_huffman int - substate_decode_uint8 int - substate_read_block_length int - is_last_metablock uint - is_uncompressed uint - is_metadata uint - should_wrap_ringbuffer uint - canny_ringbuffer_allocation uint - large_window bool - size_nibbles uint - window_bits uint32 - new_ringbuffer_size int - num_literal_htrees uint32 - context_map []byte - context_modes []byte - dictionary *dictionary - transforms *transforms - trivial_literal_contexts [8]uint32 -} - -func decoderStateInit(s *Reader) bool { - s.error_code = 0 /* BROTLI_DECODER_NO_ERROR */ - - initBitReader(&s.br) - s.state = stateUninited - s.large_window = false - s.substate_metablock_header = stateMetablockHeaderNone - s.substate_tree_group = stateTreeGroupNone - s.substate_context_map = stateContextMapNone - s.substate_uncompressed = stateUncompressedNone - s.substate_huffman = stateHuffmanNone - s.substate_decode_uint8 = stateDecodeUint8None - s.substate_read_block_length = stateReadBlockLengthNone - - s.buffer_length = 0 - s.loop_counter = 0 - s.pos = 0 - s.rb_roundtrips = 0 - s.partial_pos_out = 0 - - s.block_type_trees = nil - s.block_len_trees = nil - s.ringbuffer = nil - s.ringbuffer_size = 0 - s.new_ringbuffer_size = 0 - s.ringbuffer_mask = 0 - - s.context_map = nil - s.context_modes = nil - s.dist_context_map = nil - s.context_map_slice = nil - s.dist_context_map_slice = nil - - s.sub_loop_counter = 0 - - s.literal_hgroup.codes = nil - s.literal_hgroup.htrees = nil - s.insert_copy_hgroup.codes = nil - s.insert_copy_hgroup.htrees = nil - s.distance_hgroup.codes = nil - s.distance_hgroup.htrees = nil - - s.is_last_metablock = 0 - s.is_uncompressed = 0 - s.is_metadata = 0 - s.should_wrap_ringbuffer = 0 - s.canny_ringbuffer_allocation = 1 - - s.window_bits = 0 - s.max_distance = 0 - s.dist_rb[0] = 16 - s.dist_rb[1] = 15 - s.dist_rb[2] = 11 - s.dist_rb[3] = 4 - s.dist_rb_idx = 0 - s.block_type_trees = nil - s.block_len_trees = nil - - s.symbol_lists.storage = s.symbols_lists_array[:] - s.symbol_lists.offset = huffmanMaxCodeLength + 1 - - s.dictionary = getDictionary() - s.transforms = getTransforms() - - return true -} - -func decoderStateMetablockBegin(s *Reader) { - s.meta_block_remaining_len = 0 - s.block_length[0] = 1 << 24 - s.block_length[1] = 1 << 24 - s.block_length[2] = 1 << 24 - s.num_block_types[0] = 1 - s.num_block_types[1] = 1 - s.num_block_types[2] = 1 - s.block_type_rb[0] = 1 - s.block_type_rb[1] = 0 - s.block_type_rb[2] = 1 - s.block_type_rb[3] = 0 - s.block_type_rb[4] = 1 - s.block_type_rb[5] = 0 - s.context_map = nil - s.context_modes = nil - s.dist_context_map = nil - s.context_map_slice = nil - s.literal_htree = nil - s.dist_context_map_slice = nil - s.dist_htree_index = 0 - s.context_lookup = nil - s.literal_hgroup.codes = nil - s.literal_hgroup.htrees = nil - s.insert_copy_hgroup.codes = nil - s.insert_copy_hgroup.htrees = nil - s.distance_hgroup.codes = nil - s.distance_hgroup.htrees = nil -} - -func decoderStateCleanupAfterMetablock(s *Reader) { - s.context_modes = nil - s.context_map = nil - s.dist_context_map = nil - s.literal_hgroup.htrees = nil - s.insert_copy_hgroup.htrees = nil - s.distance_hgroup.htrees = nil -} - -func decoderHuffmanTreeGroupInit(s *Reader, group *huffmanTreeGroup, alphabet_size uint32, max_symbol uint32, ntrees uint32) bool { - var max_table_size uint = uint(kMaxHuffmanTableSize[(alphabet_size+31)>>5]) - group.alphabet_size = uint16(alphabet_size) - group.max_symbol = uint16(max_symbol) - group.num_htrees = uint16(ntrees) - group.htrees = make([][]huffmanCode, ntrees) - group.codes = make([]huffmanCode, (uint(ntrees) * max_table_size)) - return !(group.codes == nil) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/static_dict.go b/backend/vendor/github.com/andybalholm/brotli/static_dict.go deleted file mode 100644 index 0bd725d8..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/static_dict.go +++ /dev/null @@ -1,667 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Class to model the static dictionary. */ - -const maxStaticDictionaryMatchLen = 37 - -const kInvalidMatch uint32 = 0xFFFFFFF - -/* -Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ -func hash(data []byte) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kDictHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return h >> uint(32-kDictNumBits) -} - -func addMatch(distance uint, len uint, len_code uint, matches []uint32) { - var match uint32 = uint32((distance << 5) + len_code) - matches[len] = brotli_min_uint32_t(matches[len], match) -} - -func dictMatchLength(dict *dictionary, data []byte, id uint, len uint, maxlen uint) uint { - var offset uint = uint(dict.offsets_by_length[len]) + len*id - return findMatchLengthWithLimit(dict.data[offset:], data, brotli_min_size_t(uint(len), maxlen)) -} - -func isMatch(d *dictionary, w dictWord, data []byte, max_length uint) bool { - if uint(w.len) > max_length { - return false - } else { - var offset uint = uint(d.offsets_by_length[w.len]) + uint(w.len)*uint(w.idx) - var dict []byte = d.data[offset:] - if w.transform == 0 { - /* Match against base dictionary word. */ - return findMatchLengthWithLimit(dict, data, uint(w.len)) == uint(w.len) - } else if w.transform == 10 { - /* Match against uppercase first transform. - Note that there are only ASCII uppercase words in the lookup table. */ - return dict[0] >= 'a' && dict[0] <= 'z' && (dict[0]^32) == data[0] && findMatchLengthWithLimit(dict[1:], data[1:], uint(w.len)-1) == uint(w.len-1) - } else { - /* Match against uppercase all transform. - Note that there are only ASCII uppercase words in the lookup table. */ - var i uint - for i = 0; i < uint(w.len); i++ { - if dict[i] >= 'a' && dict[i] <= 'z' { - if (dict[i] ^ 32) != data[i] { - return false - } - } else { - if dict[i] != data[i] { - return false - } - } - } - - return true - } - } -} - -func findAllStaticDictionaryMatches(dict *encoderDictionary, data []byte, min_length uint, max_length uint, matches []uint32) bool { - var has_found_match bool = false - { - var offset uint = uint(dict.buckets[hash(data)]) - var end bool = offset == 0 - for !end { - var w dictWord - w = dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 { - var matchlen uint = dictMatchLength(dict.words, data, id, l, max_length) - var s []byte - var minlen uint - var maxlen uint - var len uint - - /* Transform "" + BROTLI_TRANSFORM_IDENTITY + "" */ - if matchlen == l { - addMatch(id, l, l, matches) - has_found_match = true - } - - /* Transforms "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "" and - "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "ing " */ - if matchlen >= l-1 { - addMatch(id+12*n, l-1, l, matches) - if l+2 < max_length && data[l-1] == 'i' && data[l] == 'n' && data[l+1] == 'g' && data[l+2] == ' ' { - addMatch(id+49*n, l+3, l, matches) - } - - has_found_match = true - } - - /* Transform "" + BROTLI_TRANSFORM_OMIT_LAST_# + "" (# = 2 .. 9) */ - minlen = min_length - - if l > 9 { - minlen = brotli_max_size_t(minlen, l-9) - } - maxlen = brotli_min_size_t(matchlen, l-2) - for len = minlen; len <= maxlen; len++ { - var cut uint = l - len - var transform_id uint = (cut << 2) + uint((dict.cutoffTransforms>>(cut*6))&0x3F) - addMatch(id+transform_id*n, uint(len), l, matches) - has_found_match = true - } - - if matchlen < l || l+6 >= max_length { - continue - } - - s = data[l:] - - /* Transforms "" + BROTLI_TRANSFORM_IDENTITY + */ - if s[0] == ' ' { - addMatch(id+n, l+1, l, matches) - if s[1] == 'a' { - if s[2] == ' ' { - addMatch(id+28*n, l+3, l, matches) - } else if s[2] == 's' { - if s[3] == ' ' { - addMatch(id+46*n, l+4, l, matches) - } - } else if s[2] == 't' { - if s[3] == ' ' { - addMatch(id+60*n, l+4, l, matches) - } - } else if s[2] == 'n' { - if s[3] == 'd' && s[4] == ' ' { - addMatch(id+10*n, l+5, l, matches) - } - } - } else if s[1] == 'b' { - if s[2] == 'y' && s[3] == ' ' { - addMatch(id+38*n, l+4, l, matches) - } - } else if s[1] == 'i' { - if s[2] == 'n' { - if s[3] == ' ' { - addMatch(id+16*n, l+4, l, matches) - } - } else if s[2] == 's' { - if s[3] == ' ' { - addMatch(id+47*n, l+4, l, matches) - } - } - } else if s[1] == 'f' { - if s[2] == 'o' { - if s[3] == 'r' && s[4] == ' ' { - addMatch(id+25*n, l+5, l, matches) - } - } else if s[2] == 'r' { - if s[3] == 'o' && s[4] == 'm' && s[5] == ' ' { - addMatch(id+37*n, l+6, l, matches) - } - } - } else if s[1] == 'o' { - if s[2] == 'f' { - if s[3] == ' ' { - addMatch(id+8*n, l+4, l, matches) - } - } else if s[2] == 'n' { - if s[3] == ' ' { - addMatch(id+45*n, l+4, l, matches) - } - } - } else if s[1] == 'n' { - if s[2] == 'o' && s[3] == 't' && s[4] == ' ' { - addMatch(id+80*n, l+5, l, matches) - } - } else if s[1] == 't' { - if s[2] == 'h' { - if s[3] == 'e' { - if s[4] == ' ' { - addMatch(id+5*n, l+5, l, matches) - } - } else if s[3] == 'a' { - if s[4] == 't' && s[5] == ' ' { - addMatch(id+29*n, l+6, l, matches) - } - } - } else if s[2] == 'o' { - if s[3] == ' ' { - addMatch(id+17*n, l+4, l, matches) - } - } - } else if s[1] == 'w' { - if s[2] == 'i' && s[3] == 't' && s[4] == 'h' && s[5] == ' ' { - addMatch(id+35*n, l+6, l, matches) - } - } - } else if s[0] == '"' { - addMatch(id+19*n, l+1, l, matches) - if s[1] == '>' { - addMatch(id+21*n, l+2, l, matches) - } - } else if s[0] == '.' { - addMatch(id+20*n, l+1, l, matches) - if s[1] == ' ' { - addMatch(id+31*n, l+2, l, matches) - if s[2] == 'T' && s[3] == 'h' { - if s[4] == 'e' { - if s[5] == ' ' { - addMatch(id+43*n, l+6, l, matches) - } - } else if s[4] == 'i' { - if s[5] == 's' && s[6] == ' ' { - addMatch(id+75*n, l+7, l, matches) - } - } - } - } - } else if s[0] == ',' { - addMatch(id+76*n, l+1, l, matches) - if s[1] == ' ' { - addMatch(id+14*n, l+2, l, matches) - } - } else if s[0] == '\n' { - addMatch(id+22*n, l+1, l, matches) - if s[1] == '\t' { - addMatch(id+50*n, l+2, l, matches) - } - } else if s[0] == ']' { - addMatch(id+24*n, l+1, l, matches) - } else if s[0] == '\'' { - addMatch(id+36*n, l+1, l, matches) - } else if s[0] == ':' { - addMatch(id+51*n, l+1, l, matches) - } else if s[0] == '(' { - addMatch(id+57*n, l+1, l, matches) - } else if s[0] == '=' { - if s[1] == '"' { - addMatch(id+70*n, l+2, l, matches) - } else if s[1] == '\'' { - addMatch(id+86*n, l+2, l, matches) - } - } else if s[0] == 'a' { - if s[1] == 'l' && s[2] == ' ' { - addMatch(id+84*n, l+3, l, matches) - } - } else if s[0] == 'e' { - if s[1] == 'd' { - if s[2] == ' ' { - addMatch(id+53*n, l+3, l, matches) - } - } else if s[1] == 'r' { - if s[2] == ' ' { - addMatch(id+82*n, l+3, l, matches) - } - } else if s[1] == 's' { - if s[2] == 't' && s[3] == ' ' { - addMatch(id+95*n, l+4, l, matches) - } - } - } else if s[0] == 'f' { - if s[1] == 'u' && s[2] == 'l' && s[3] == ' ' { - addMatch(id+90*n, l+4, l, matches) - } - } else if s[0] == 'i' { - if s[1] == 'v' { - if s[2] == 'e' && s[3] == ' ' { - addMatch(id+92*n, l+4, l, matches) - } - } else if s[1] == 'z' { - if s[2] == 'e' && s[3] == ' ' { - addMatch(id+100*n, l+4, l, matches) - } - } - } else if s[0] == 'l' { - if s[1] == 'e' { - if s[2] == 's' && s[3] == 's' && s[4] == ' ' { - addMatch(id+93*n, l+5, l, matches) - } - } else if s[1] == 'y' { - if s[2] == ' ' { - addMatch(id+61*n, l+3, l, matches) - } - } - } else if s[0] == 'o' { - if s[1] == 'u' && s[2] == 's' && s[3] == ' ' { - addMatch(id+106*n, l+4, l, matches) - } - } - } else { - var is_all_caps bool = (w.transform != transformUppercaseFirst) - /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and - is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) - transform. */ - - var s []byte - if !isMatch(dict.words, w, data, max_length) { - continue - } - - /* Transform "" + kUppercase{First,All} + "" */ - var tmp int - if is_all_caps { - tmp = 44 - } else { - tmp = 9 - } - addMatch(id+uint(tmp)*n, l, l, matches) - - has_found_match = true - if l+1 >= max_length { - continue - } - - /* Transforms "" + kUppercase{First,All} + */ - s = data[l:] - - if s[0] == ' ' { - var tmp int - if is_all_caps { - tmp = 68 - } else { - tmp = 4 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - } else if s[0] == '"' { - var tmp int - if is_all_caps { - tmp = 87 - } else { - tmp = 66 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - if s[1] == '>' { - var tmp int - if is_all_caps { - tmp = 97 - } else { - tmp = 69 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } else if s[0] == '.' { - var tmp int - if is_all_caps { - tmp = 101 - } else { - tmp = 79 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 114 - } else { - tmp = 88 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } else if s[0] == ',' { - var tmp int - if is_all_caps { - tmp = 112 - } else { - tmp = 99 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 107 - } else { - tmp = 58 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } else if s[0] == '\'' { - var tmp int - if is_all_caps { - tmp = 94 - } else { - tmp = 74 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - } else if s[0] == '(' { - var tmp int - if is_all_caps { - tmp = 113 - } else { - tmp = 78 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - } else if s[0] == '=' { - if s[1] == '"' { - var tmp int - if is_all_caps { - tmp = 105 - } else { - tmp = 104 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if s[1] == '\'' { - var tmp int - if is_all_caps { - tmp = 116 - } else { - tmp = 108 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } - } - } - } - - /* Transforms with prefixes " " and "." */ - if max_length >= 5 && (data[0] == ' ' || data[0] == '.') { - var is_space bool = (data[0] == ' ') - var offset uint = uint(dict.buckets[hash(data[1:])]) - var end bool = offset == 0 - for !end { - var w dictWord - w = dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 { - var s []byte - if !isMatch(dict.words, w, data[1:], max_length-1) { - continue - } - - /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + "" and - "." + BROTLI_TRANSFORM_IDENTITY + "" */ - var tmp int - if is_space { - tmp = 6 - } else { - tmp = 32 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - - has_found_match = true - if l+2 >= max_length { - continue - } - - /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + and - "." + BROTLI_TRANSFORM_IDENTITY + - */ - s = data[l+1:] - - if s[0] == ' ' { - var tmp int - if is_space { - tmp = 2 - } else { - tmp = 77 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if s[0] == '(' { - var tmp int - if is_space { - tmp = 89 - } else { - tmp = 67 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if is_space { - if s[0] == ',' { - addMatch(id+103*n, l+2, l, matches) - if s[1] == ' ' { - addMatch(id+33*n, l+3, l, matches) - } - } else if s[0] == '.' { - addMatch(id+71*n, l+2, l, matches) - if s[1] == ' ' { - addMatch(id+52*n, l+3, l, matches) - } - } else if s[0] == '=' { - if s[1] == '"' { - addMatch(id+81*n, l+3, l, matches) - } else if s[1] == '\'' { - addMatch(id+98*n, l+3, l, matches) - } - } - } - } else if is_space { - var is_all_caps bool = (w.transform != transformUppercaseFirst) - /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and - is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) - transform. */ - - var s []byte - if !isMatch(dict.words, w, data[1:], max_length-1) { - continue - } - - /* Transforms " " + kUppercase{First,All} + "" */ - var tmp int - if is_all_caps { - tmp = 85 - } else { - tmp = 30 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - - has_found_match = true - if l+2 >= max_length { - continue - } - - /* Transforms " " + kUppercase{First,All} + */ - s = data[l+1:] - - if s[0] == ' ' { - var tmp int - if is_all_caps { - tmp = 83 - } else { - tmp = 15 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if s[0] == ',' { - if !is_all_caps { - addMatch(id+109*n, l+2, l, matches) - } - - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 111 - } else { - tmp = 65 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } - } else if s[0] == '.' { - var tmp int - if is_all_caps { - tmp = 115 - } else { - tmp = 96 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 117 - } else { - tmp = 91 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } - } else if s[0] == '=' { - if s[1] == '"' { - var tmp int - if is_all_caps { - tmp = 110 - } else { - tmp = 118 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } else if s[1] == '\'' { - var tmp int - if is_all_caps { - tmp = 119 - } else { - tmp = 120 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } - } - } - } - } - - if max_length >= 6 { - /* Transforms with prefixes "e ", "s ", ", " and "\xC2\xA0" */ - if (data[1] == ' ' && (data[0] == 'e' || data[0] == 's' || data[0] == ',')) || (data[0] == 0xC2 && data[1] == 0xA0) { - var offset uint = uint(dict.buckets[hash(data[2:])]) - var end bool = offset == 0 - for !end { - var w dictWord - w = dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 && isMatch(dict.words, w, data[2:], max_length-2) { - if data[0] == 0xC2 { - addMatch(id+102*n, l+2, l, matches) - has_found_match = true - } else if l+2 < max_length && data[l+2] == ' ' { - var t uint = 13 - if data[0] == 'e' { - t = 18 - } else if data[0] == 's' { - t = 7 - } - addMatch(id+t*n, l+3, l, matches) - has_found_match = true - } - } - } - } - } - - if max_length >= 9 { - /* Transforms with prefixes " the " and ".com/" */ - if (data[0] == ' ' && data[1] == 't' && data[2] == 'h' && data[3] == 'e' && data[4] == ' ') || (data[0] == '.' && data[1] == 'c' && data[2] == 'o' && data[3] == 'm' && data[4] == '/') { - var offset uint = uint(dict.buckets[hash(data[5:])]) - var end bool = offset == 0 - for !end { - var w dictWord - w = dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 && isMatch(dict.words, w, data[5:], max_length-5) { - var tmp int - if data[0] == ' ' { - tmp = 41 - } else { - tmp = 72 - } - addMatch(id+uint(tmp)*n, l+5, l, matches) - has_found_match = true - if l+5 < max_length { - var s []byte = data[l+5:] - if data[0] == ' ' { - if l+8 < max_length && s[0] == ' ' && s[1] == 'o' && s[2] == 'f' && s[3] == ' ' { - addMatch(id+62*n, l+9, l, matches) - if l+12 < max_length && s[4] == 't' && s[5] == 'h' && s[6] == 'e' && s[7] == ' ' { - addMatch(id+73*n, l+13, l, matches) - } - } - } - } - } - } - } - } - - return has_found_match -} diff --git a/backend/vendor/github.com/andybalholm/brotli/static_dict_lut.go b/backend/vendor/github.com/andybalholm/brotli/static_dict_lut.go deleted file mode 100644 index b33963e9..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/static_dict_lut.go +++ /dev/null @@ -1,75094 +0,0 @@ -package brotli - -/* Copyright 2017 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Lookup table for static dictionary and transforms. */ - -type dictWord struct { - len byte - transform byte - idx uint16 -} - -const kDictNumBits int = 15 - -const kDictHashMul32 uint32 = 0x1E35A7BD - -var kStaticDictionaryBuckets = [32768]uint16{ - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3, - 6, - 0, - 0, - 0, - 0, - 0, - 20, - 0, - 0, - 0, - 21, - 0, - 22, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23, - 0, - 0, - 25, - 0, - 29, - 0, - 53, - 0, - 0, - 0, - 0, - 0, - 0, - 55, - 0, - 0, - 0, - 0, - 0, - 0, - 61, - 76, - 0, - 0, - 0, - 94, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 0, - 97, - 0, - 98, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 99, - 101, - 106, - 108, - 0, - 0, - 0, - 0, - 0, - 110, - 0, - 111, - 112, - 0, - 113, - 118, - 124, - 0, - 0, - 0, - 0, - 0, - 125, - 128, - 0, - 0, - 0, - 0, - 129, - 0, - 0, - 131, - 0, - 0, - 0, - 0, - 0, - 0, - 132, - 0, - 0, - 135, - 0, - 0, - 0, - 137, - 0, - 0, - 0, - 0, - 0, - 138, - 139, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 142, - 143, - 144, - 0, - 0, - 0, - 0, - 0, - 145, - 0, - 0, - 0, - 146, - 149, - 151, - 152, - 0, - 0, - 153, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 154, - 0, - 0, - 0, - 0, - 0, - 0, - 155, - 0, - 0, - 0, - 0, - 160, - 182, - 0, - 0, - 0, - 0, - 0, - 0, - 183, - 0, - 0, - 0, - 188, - 189, - 0, - 0, - 192, - 0, - 0, - 0, - 0, - 0, - 0, - 194, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 197, - 202, - 209, - 0, - 0, - 210, - 0, - 224, - 0, - 0, - 0, - 225, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 231, - 0, - 0, - 0, - 232, - 0, - 240, - 0, - 0, - 242, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 244, - 0, - 0, - 0, - 246, - 0, - 0, - 249, - 251, - 253, - 0, - 0, - 0, - 0, - 0, - 258, - 0, - 0, - 261, - 263, - 0, - 0, - 0, - 267, - 0, - 0, - 268, - 0, - 269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 271, - 0, - 0, - 0, - 0, - 0, - 0, - 272, - 0, - 273, - 0, - 277, - 0, - 278, - 286, - 0, - 0, - 0, - 0, - 287, - 0, - 289, - 290, - 291, - 0, - 0, - 0, - 295, - 0, - 0, - 296, - 297, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 298, - 0, - 0, - 0, - 299, - 0, - 0, - 305, - 0, - 324, - 0, - 0, - 0, - 0, - 0, - 327, - 0, - 328, - 329, - 0, - 0, - 0, - 0, - 336, - 0, - 0, - 340, - 0, - 341, - 342, - 343, - 0, - 0, - 346, - 0, - 348, - 0, - 0, - 0, - 0, - 0, - 0, - 349, - 351, - 0, - 0, - 355, - 0, - 363, - 0, - 364, - 0, - 368, - 369, - 0, - 370, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 373, - 0, - 375, - 0, - 0, - 0, - 0, - 376, - 377, - 0, - 0, - 394, - 395, - 396, - 0, - 0, - 398, - 0, - 0, - 0, - 0, - 400, - 0, - 0, - 408, - 0, - 0, - 0, - 0, - 420, - 0, - 0, - 0, - 0, - 0, - 0, - 421, - 0, - 0, - 422, - 423, - 0, - 0, - 429, - 435, - 436, - 442, - 0, - 0, - 443, - 0, - 444, - 445, - 453, - 456, - 0, - 457, - 0, - 0, - 0, - 0, - 0, - 458, - 0, - 0, - 0, - 459, - 0, - 0, - 0, - 460, - 0, - 462, - 463, - 465, - 0, - 0, - 0, - 0, - 0, - 0, - 466, - 469, - 0, - 0, - 0, - 0, - 0, - 0, - 470, - 0, - 0, - 0, - 474, - 0, - 476, - 0, - 0, - 0, - 0, - 483, - 0, - 485, - 0, - 0, - 0, - 486, - 0, - 0, - 488, - 491, - 492, - 0, - 0, - 497, - 499, - 500, - 0, - 501, - 0, - 0, - 0, - 505, - 0, - 0, - 506, - 0, - 0, - 0, - 507, - 0, - 0, - 0, - 509, - 0, - 0, - 0, - 0, - 511, - 512, - 519, - 0, - 0, - 0, - 0, - 0, - 0, - 529, - 530, - 0, - 0, - 0, - 534, - 0, - 0, - 0, - 0, - 543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 553, - 0, - 0, - 0, - 0, - 557, - 560, - 0, - 0, - 0, - 0, - 0, - 0, - 561, - 0, - 564, - 0, - 0, - 0, - 0, - 0, - 0, - 565, - 566, - 0, - 575, - 0, - 619, - 0, - 620, - 0, - 0, - 623, - 624, - 0, - 0, - 0, - 625, - 0, - 0, - 626, - 627, - 0, - 0, - 628, - 0, - 0, - 0, - 0, - 630, - 0, - 631, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 641, - 0, - 0, - 0, - 0, - 643, - 656, - 668, - 0, - 0, - 0, - 673, - 0, - 0, - 0, - 674, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 682, - 0, - 687, - 0, - 690, - 0, - 693, - 699, - 700, - 0, - 0, - 0, - 0, - 0, - 0, - 704, - 705, - 0, - 0, - 0, - 0, - 707, - 710, - 0, - 711, - 0, - 0, - 0, - 0, - 726, - 0, - 0, - 729, - 0, - 0, - 0, - 730, - 731, - 0, - 0, - 0, - 0, - 0, - 752, - 0, - 0, - 0, - 762, - 0, - 763, - 0, - 0, - 767, - 0, - 0, - 0, - 770, - 774, - 0, - 0, - 775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 776, - 0, - 0, - 0, - 777, - 783, - 0, - 0, - 0, - 785, - 788, - 0, - 0, - 0, - 0, - 790, - 0, - 0, - 0, - 793, - 0, - 0, - 0, - 0, - 794, - 0, - 0, - 804, - 819, - 821, - 0, - 827, - 0, - 0, - 0, - 834, - 0, - 0, - 835, - 0, - 0, - 0, - 841, - 0, - 844, - 0, - 850, - 851, - 859, - 0, - 860, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 874, - 0, - 876, - 0, - 877, - 890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 893, - 894, - 898, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 899, - 0, - 0, - 0, - 900, - 904, - 906, - 0, - 0, - 0, - 907, - 0, - 908, - 909, - 0, - 910, - 0, - 0, - 0, - 0, - 911, - 0, - 0, - 0, - 0, - 0, - 916, - 0, - 0, - 0, - 922, - 925, - 0, - 930, - 0, - 934, - 0, - 0, - 0, - 0, - 0, - 943, - 0, - 0, - 944, - 0, - 953, - 954, - 0, - 0, - 0, - 0, - 0, - 0, - 955, - 0, - 962, - 963, - 0, - 0, - 976, - 0, - 0, - 977, - 978, - 979, - 980, - 0, - 981, - 0, - 0, - 0, - 0, - 984, - 0, - 0, - 985, - 0, - 0, - 987, - 989, - 991, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 992, - 0, - 0, - 0, - 993, - 0, - 0, - 0, - 0, - 0, - 0, - 996, - 0, - 0, - 0, - 1000, - 0, - 0, - 0, - 0, - 0, - 1002, - 0, - 0, - 0, - 0, - 1005, - 1007, - 0, - 0, - 0, - 1009, - 0, - 0, - 0, - 1010, - 0, - 0, - 0, - 0, - 0, - 0, - 1011, - 0, - 1012, - 0, - 0, - 0, - 0, - 1014, - 1016, - 0, - 0, - 0, - 1020, - 0, - 1021, - 0, - 0, - 0, - 0, - 1022, - 0, - 0, - 0, - 1024, - 0, - 0, - 0, - 0, - 0, - 0, - 1025, - 0, - 0, - 1026, - 1027, - 0, - 0, - 0, - 0, - 0, - 1031, - 0, - 1033, - 0, - 0, - 0, - 0, - 1034, - 0, - 0, - 0, - 1037, - 1040, - 0, - 0, - 0, - 1042, - 1043, - 0, - 0, - 1053, - 0, - 1054, - 0, - 0, - 1057, - 0, - 0, - 0, - 1058, - 0, - 0, - 1060, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1061, - 0, - 0, - 1062, - 0, - 0, - 0, - 0, - 1063, - 0, - 0, - 0, - 0, - 1064, - 0, - 0, - 0, - 0, - 0, - 1065, - 0, - 0, - 0, - 0, - 1066, - 1067, - 0, - 0, - 0, - 1069, - 1070, - 1072, - 0, - 0, - 0, - 0, - 0, - 0, - 1073, - 0, - 1075, - 0, - 0, - 0, - 0, - 0, - 0, - 1080, - 1084, - 0, - 0, - 0, - 0, - 1088, - 0, - 0, - 0, - 0, - 0, - 0, - 1094, - 0, - 1095, - 0, - 1107, - 0, - 0, - 0, - 1112, - 1114, - 0, - 1119, - 0, - 1122, - 0, - 0, - 1126, - 0, - 1129, - 0, - 1130, - 0, - 0, - 0, - 0, - 0, - 1132, - 0, - 0, - 0, - 0, - 0, - 0, - 1144, - 0, - 0, - 1145, - 1146, - 0, - 1148, - 1149, - 0, - 0, - 1150, - 1151, - 0, - 0, - 0, - 0, - 1152, - 0, - 1153, - 0, - 0, - 0, - 0, - 0, - 1154, - 0, - 1163, - 0, - 0, - 0, - 1164, - 0, - 0, - 0, - 0, - 0, - 1165, - 0, - 1167, - 0, - 1170, - 0, - 0, - 0, - 0, - 0, - 1171, - 1172, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1173, - 1175, - 1177, - 0, - 1186, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1195, - 0, - 0, - 1221, - 0, - 0, - 1224, - 0, - 0, - 1227, - 0, - 0, - 0, - 0, - 0, - 1228, - 1229, - 0, - 0, - 1230, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1231, - 0, - 0, - 0, - 1233, - 0, - 0, - 1243, - 1244, - 1246, - 1248, - 0, - 0, - 0, - 0, - 1254, - 1255, - 1258, - 1259, - 0, - 0, - 0, - 1260, - 0, - 0, - 1261, - 0, - 0, - 0, - 1262, - 1264, - 0, - 0, - 1265, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1266, - 0, - 1267, - 0, - 0, - 0, - 0, - 1273, - 1274, - 1276, - 1289, - 0, - 0, - 1291, - 1292, - 1293, - 0, - 0, - 1294, - 1295, - 1296, - 0, - 0, - 0, - 0, - 1302, - 0, - 1304, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1311, - 1312, - 0, - 1314, - 0, - 1316, - 1320, - 1321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1322, - 1323, - 1324, - 0, - 1335, - 0, - 1336, - 0, - 0, - 0, - 0, - 1341, - 1342, - 0, - 1346, - 0, - 1357, - 0, - 0, - 0, - 1358, - 1360, - 0, - 0, - 0, - 0, - 0, - 0, - 1361, - 0, - 0, - 0, - 1362, - 1365, - 0, - 1366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1379, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1386, - 0, - 1388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1395, - 0, - 0, - 0, - 0, - 1403, - 0, - 1405, - 0, - 0, - 1407, - 0, - 0, - 0, - 0, - 0, - 1408, - 1409, - 0, - 1410, - 0, - 0, - 0, - 1412, - 1413, - 1416, - 0, - 0, - 1429, - 1451, - 0, - 0, - 1454, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1455, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1456, - 0, - 0, - 0, - 0, - 1459, - 1460, - 1461, - 1475, - 0, - 0, - 0, - 0, - 0, - 0, - 1477, - 0, - 1480, - 0, - 1481, - 0, - 0, - 1486, - 0, - 0, - 1495, - 0, - 0, - 0, - 1496, - 0, - 0, - 1498, - 1499, - 1501, - 1520, - 1521, - 0, - 0, - 0, - 1526, - 0, - 0, - 0, - 0, - 1528, - 1529, - 0, - 1533, - 1536, - 0, - 0, - 0, - 1537, - 1538, - 1549, - 0, - 1550, - 1558, - 1559, - 1572, - 0, - 1573, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1575, - 0, - 0, - 0, - 0, - 0, - 1579, - 0, - 1599, - 0, - 1603, - 0, - 1604, - 0, - 1605, - 0, - 0, - 0, - 0, - 0, - 1608, - 1610, - 0, - 0, - 0, - 0, - 1611, - 0, - 1615, - 0, - 1616, - 1618, - 0, - 1619, - 0, - 0, - 1622, - 0, - 0, - 0, - 0, - 1634, - 0, - 0, - 0, - 1635, - 0, - 0, - 0, - 1641, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1643, - 0, - 0, - 0, - 1650, - 0, - 0, - 1652, - 0, - 0, - 0, - 0, - 0, - 1653, - 0, - 0, - 0, - 1654, - 0, - 0, - 0, - 0, - 1655, - 0, - 1662, - 0, - 0, - 1663, - 1664, - 0, - 0, - 1668, - 0, - 0, - 1669, - 1670, - 0, - 1672, - 1673, - 0, - 0, - 0, - 0, - 0, - 1674, - 0, - 0, - 0, - 1675, - 1676, - 1680, - 0, - 1682, - 0, - 0, - 1687, - 0, - 0, - 0, - 0, - 0, - 1704, - 0, - 0, - 1705, - 0, - 0, - 1721, - 0, - 0, - 0, - 0, - 1734, - 1735, - 0, - 0, - 0, - 0, - 1737, - 0, - 0, - 0, - 0, - 1739, - 0, - 0, - 1740, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1741, - 1743, - 0, - 0, - 0, - 0, - 1745, - 0, - 0, - 0, - 1749, - 0, - 0, - 0, - 1751, - 0, - 0, - 0, - 0, - 0, - 0, - 1760, - 0, - 0, - 0, - 0, - 1765, - 0, - 0, - 0, - 0, - 0, - 1784, - 0, - 1785, - 1787, - 0, - 0, - 0, - 0, - 1788, - 1789, - 0, - 0, - 0, - 0, - 1790, - 1791, - 1793, - 0, - 1798, - 1799, - 0, - 0, - 0, - 0, - 1801, - 0, - 1803, - 1805, - 0, - 0, - 0, - 1806, - 1811, - 0, - 1812, - 1814, - 0, - 1821, - 0, - 0, - 0, - 0, - 0, - 1822, - 1833, - 0, - 0, - 0, - 0, - 0, - 0, - 1848, - 0, - 0, - 0, - 0, - 0, - 0, - 1857, - 0, - 0, - 0, - 1859, - 0, - 0, - 0, - 0, - 1861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1866, - 0, - 1921, - 1925, - 0, - 0, - 0, - 1929, - 1930, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1931, - 0, - 0, - 0, - 0, - 1932, - 0, - 0, - 0, - 1934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1946, - 0, - 0, - 1948, - 0, - 0, - 0, - 0, - 1950, - 0, - 1957, - 0, - 1958, - 0, - 0, - 0, - 0, - 0, - 1965, - 1967, - 0, - 0, - 0, - 0, - 1968, - 0, - 1969, - 0, - 1971, - 1972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1973, - 0, - 0, - 0, - 0, - 1975, - 0, - 0, - 0, - 0, - 1976, - 1979, - 0, - 1982, - 0, - 0, - 0, - 0, - 1984, - 1988, - 0, - 0, - 0, - 0, - 1990, - 2004, - 2008, - 0, - 0, - 0, - 2012, - 2013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2015, - 0, - 2016, - 2017, - 0, - 0, - 0, - 0, - 2021, - 0, - 0, - 2025, - 0, - 0, - 0, - 0, - 0, - 2029, - 2036, - 2040, - 0, - 2042, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2043, - 0, - 0, - 0, - 0, - 0, - 2045, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2046, - 2047, - 0, - 2048, - 2049, - 0, - 2059, - 0, - 0, - 2063, - 0, - 2064, - 2065, - 0, - 0, - 2066, - 0, - 0, - 0, - 0, - 0, - 0, - 2069, - 0, - 0, - 0, - 0, - 2070, - 0, - 2071, - 0, - 2072, - 0, - 0, - 0, - 0, - 2080, - 2082, - 2083, - 0, - 0, - 0, - 0, - 0, - 2085, - 0, - 2086, - 2088, - 2089, - 2105, - 0, - 0, - 0, - 0, - 2107, - 0, - 0, - 2116, - 2117, - 0, - 2120, - 0, - 0, - 2122, - 0, - 0, - 0, - 0, - 0, - 2123, - 0, - 0, - 2125, - 2127, - 2128, - 0, - 0, - 0, - 2130, - 0, - 0, - 0, - 2137, - 2139, - 2140, - 2141, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2144, - 2145, - 0, - 0, - 2146, - 2149, - 0, - 0, - 0, - 0, - 2150, - 0, - 0, - 2151, - 2158, - 0, - 2159, - 0, - 2160, - 0, - 0, - 0, - 0, - 0, - 0, - 2161, - 2162, - 0, - 0, - 2194, - 2202, - 0, - 0, - 0, - 0, - 0, - 0, - 2205, - 2217, - 0, - 2220, - 0, - 2221, - 0, - 2222, - 2224, - 0, - 0, - 0, - 0, - 2237, - 0, - 0, - 0, - 0, - 0, - 2238, - 0, - 2239, - 2241, - 0, - 0, - 2242, - 0, - 0, - 0, - 0, - 0, - 2243, - 0, - 0, - 0, - 0, - 0, - 0, - 2252, - 0, - 0, - 2253, - 0, - 0, - 0, - 2257, - 2258, - 0, - 0, - 0, - 2260, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2262, - 0, - 2264, - 0, - 0, - 0, - 0, - 0, - 2269, - 2270, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2271, - 0, - 2273, - 0, - 0, - 0, - 0, - 2277, - 0, - 0, - 0, - 0, - 2278, - 0, - 0, - 0, - 0, - 2279, - 0, - 2280, - 0, - 2283, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2287, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2289, - 2290, - 0, - 0, - 0, - 0, - 2291, - 0, - 2292, - 0, - 0, - 0, - 2293, - 2295, - 2296, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2298, - 0, - 0, - 0, - 0, - 0, - 2303, - 0, - 2305, - 0, - 0, - 2306, - 0, - 2307, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2313, - 2314, - 2315, - 2316, - 0, - 0, - 2318, - 0, - 2319, - 0, - 2322, - 0, - 0, - 2323, - 0, - 2324, - 0, - 2326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2335, - 0, - 2336, - 2338, - 2339, - 0, - 2340, - 0, - 0, - 0, - 2355, - 0, - 2375, - 0, - 2382, - 2386, - 0, - 2387, - 0, - 0, - 2394, - 0, - 0, - 0, - 0, - 2395, - 0, - 2397, - 0, - 0, - 0, - 0, - 0, - 2398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2399, - 2402, - 2404, - 2408, - 2411, - 0, - 0, - 0, - 2413, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2415, - 0, - 0, - 2416, - 2417, - 2419, - 0, - 2420, - 0, - 0, - 0, - 0, - 0, - 2425, - 0, - 0, - 0, - 2426, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2427, - 2428, - 0, - 2429, - 0, - 0, - 2430, - 2434, - 0, - 2436, - 0, - 0, - 0, - 0, - 0, - 0, - 2441, - 2442, - 0, - 2445, - 0, - 0, - 2446, - 2457, - 0, - 2459, - 0, - 0, - 2462, - 0, - 2464, - 0, - 2477, - 0, - 2478, - 2486, - 0, - 0, - 0, - 2491, - 0, - 0, - 2493, - 0, - 0, - 2494, - 0, - 2495, - 0, - 2513, - 2523, - 0, - 0, - 0, - 0, - 2524, - 0, - 0, - 0, - 0, - 0, - 0, - 2528, - 2529, - 2530, - 0, - 0, - 2531, - 0, - 2533, - 0, - 0, - 2534, - 2535, - 0, - 2536, - 2537, - 0, - 2538, - 0, - 2539, - 2540, - 0, - 0, - 0, - 2545, - 2546, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2548, - 0, - 0, - 2549, - 0, - 2550, - 2555, - 0, - 0, - 0, - 0, - 0, - 2557, - 0, - 2560, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2561, - 0, - 2576, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2577, - 2578, - 0, - 0, - 0, - 2579, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2580, - 0, - 0, - 0, - 0, - 2581, - 0, - 0, - 0, - 0, - 2583, - 0, - 2584, - 0, - 2588, - 2590, - 0, - 0, - 0, - 2591, - 0, - 0, - 0, - 0, - 2593, - 2594, - 0, - 2595, - 0, - 2601, - 2602, - 0, - 0, - 2603, - 0, - 2605, - 0, - 0, - 0, - 2606, - 2607, - 2611, - 0, - 2615, - 0, - 0, - 0, - 2617, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2619, - 0, - 0, - 2620, - 0, - 0, - 0, - 2621, - 0, - 2623, - 0, - 2625, - 0, - 0, - 2628, - 2629, - 0, - 0, - 2635, - 2636, - 2637, - 0, - 0, - 2639, - 0, - 0, - 0, - 2642, - 0, - 0, - 0, - 0, - 2643, - 0, - 2644, - 0, - 2649, - 0, - 0, - 0, - 0, - 0, - 0, - 2655, - 2656, - 0, - 0, - 2657, - 0, - 0, - 0, - 0, - 0, - 2658, - 0, - 0, - 0, - 0, - 0, - 2659, - 0, - 0, - 0, - 0, - 2664, - 2685, - 0, - 2687, - 0, - 2688, - 0, - 0, - 2689, - 0, - 0, - 2694, - 0, - 2695, - 0, - 0, - 2698, - 0, - 2701, - 2706, - 0, - 0, - 0, - 2707, - 0, - 2709, - 2710, - 2711, - 0, - 0, - 0, - 2720, - 2730, - 2735, - 0, - 0, - 0, - 0, - 2738, - 2740, - 0, - 0, - 0, - 0, - 2747, - 0, - 0, - 0, - 0, - 0, - 0, - 2748, - 0, - 0, - 2749, - 0, - 0, - 0, - 0, - 0, - 2750, - 0, - 0, - 2752, - 2754, - 0, - 0, - 0, - 0, - 0, - 2758, - 0, - 0, - 0, - 0, - 2762, - 0, - 0, - 0, - 0, - 2763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2764, - 2767, - 0, - 0, - 0, - 0, - 2768, - 0, - 0, - 2770, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2772, - 0, - 0, - 0, - 0, - 0, - 2773, - 2776, - 0, - 0, - 2783, - 0, - 0, - 2784, - 0, - 2789, - 0, - 2790, - 0, - 0, - 0, - 2792, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2793, - 2795, - 0, - 0, - 0, - 0, - 0, - 0, - 2796, - 0, - 0, - 0, - 0, - 0, - 0, - 2797, - 2799, - 0, - 0, - 0, - 0, - 2803, - 0, - 0, - 0, - 0, - 2806, - 0, - 2807, - 2808, - 2817, - 2819, - 0, - 0, - 0, - 0, - 0, - 2821, - 0, - 0, - 0, - 0, - 2822, - 2823, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2824, - 0, - 0, - 2828, - 0, - 2834, - 0, - 0, - 0, - 0, - 0, - 0, - 2836, - 0, - 2838, - 0, - 0, - 2839, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2841, - 0, - 0, - 0, - 2842, - 0, - 0, - 0, - 0, - 0, - 2843, - 2844, - 0, - 0, - 0, - 0, - 2846, - 0, - 0, - 2847, - 0, - 2849, - 0, - 2853, - 0, - 0, - 0, - 0, - 0, - 2857, - 0, - 0, - 0, - 0, - 2858, - 0, - 2859, - 0, - 0, - 2860, - 0, - 2862, - 2868, - 0, - 0, - 0, - 0, - 2875, - 0, - 2876, - 0, - 0, - 2877, - 2878, - 2884, - 2889, - 2890, - 0, - 0, - 2891, - 0, - 0, - 2892, - 0, - 0, - 0, - 2906, - 2912, - 0, - 2913, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2916, - 0, - 2934, - 0, - 0, - 0, - 0, - 0, - 2935, - 0, - 0, - 0, - 0, - 2939, - 0, - 2940, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2941, - 0, - 0, - 0, - 2946, - 0, - 2949, - 0, - 0, - 2950, - 2954, - 2955, - 0, - 0, - 0, - 2959, - 2961, - 0, - 0, - 2962, - 0, - 2963, - 0, - 0, - 0, - 0, - 0, - 0, - 2964, - 2965, - 2966, - 2967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2969, - 0, - 0, - 0, - 0, - 0, - 2970, - 2975, - 0, - 2982, - 2983, - 2984, - 0, - 0, - 0, - 0, - 0, - 2989, - 0, - 0, - 2990, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2991, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2998, - 0, - 3000, - 3001, - 0, - 0, - 3002, - 0, - 0, - 0, - 3003, - 0, - 0, - 3012, - 0, - 0, - 3022, - 0, - 0, - 3024, - 0, - 0, - 3025, - 3027, - 0, - 0, - 0, - 3030, - 0, - 0, - 0, - 0, - 3034, - 3035, - 0, - 0, - 3036, - 0, - 3039, - 0, - 3049, - 0, - 0, - 3050, - 0, - 0, - 0, - 0, - 0, - 0, - 3051, - 0, - 3053, - 0, - 0, - 0, - 0, - 3057, - 0, - 3058, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3063, - 0, - 0, - 3073, - 3074, - 3078, - 3079, - 0, - 3080, - 3086, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3087, - 0, - 3092, - 0, - 3095, - 0, - 3099, - 0, - 0, - 0, - 3100, - 0, - 3101, - 3102, - 0, - 3122, - 0, - 0, - 0, - 3124, - 0, - 3125, - 0, - 0, - 0, - 0, - 0, - 0, - 3132, - 3134, - 0, - 0, - 3136, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3147, - 0, - 0, - 3149, - 0, - 0, - 0, - 0, - 0, - 3150, - 3151, - 3152, - 0, - 0, - 0, - 0, - 3158, - 0, - 0, - 3160, - 0, - 0, - 3161, - 0, - 0, - 3162, - 0, - 3163, - 3166, - 3168, - 0, - 0, - 3169, - 3170, - 0, - 0, - 3171, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3182, - 0, - 3184, - 0, - 0, - 3188, - 0, - 0, - 3194, - 0, - 0, - 0, - 0, - 0, - 0, - 3204, - 0, - 0, - 0, - 0, - 3209, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3216, - 3217, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3219, - 0, - 0, - 3220, - 3222, - 0, - 3223, - 0, - 0, - 0, - 0, - 3224, - 0, - 3225, - 3226, - 0, - 3228, - 3233, - 0, - 3239, - 3241, - 3242, - 0, - 0, - 3251, - 3252, - 3253, - 3255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3260, - 0, - 0, - 3261, - 0, - 0, - 0, - 3267, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3271, - 0, - 0, - 0, - 3278, - 0, - 3282, - 0, - 0, - 0, - 3284, - 0, - 0, - 0, - 3285, - 3286, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3287, - 3292, - 0, - 0, - 0, - 0, - 3294, - 3296, - 0, - 0, - 3299, - 3300, - 3301, - 0, - 3302, - 0, - 0, - 0, - 0, - 0, - 3304, - 3306, - 0, - 0, - 0, - 0, - 0, - 0, - 3308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3312, - 3314, - 3315, - 0, - 3318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3319, - 0, - 0, - 0, - 0, - 0, - 3321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3322, - 0, - 0, - 3324, - 3325, - 0, - 0, - 3326, - 0, - 0, - 3328, - 3329, - 3331, - 0, - 0, - 3335, - 0, - 0, - 3337, - 0, - 3338, - 0, - 0, - 0, - 0, - 3343, - 3347, - 0, - 0, - 0, - 3348, - 0, - 0, - 3351, - 0, - 0, - 0, - 0, - 0, - 0, - 3354, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3355, - 0, - 0, - 3365, - 3366, - 3367, - 0, - 0, - 0, - 0, - 0, - 0, - 3368, - 3369, - 0, - 3370, - 0, - 0, - 3373, - 0, - 0, - 3376, - 0, - 0, - 3377, - 0, - 3379, - 3387, - 0, - 0, - 0, - 0, - 0, - 3390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3402, - 0, - 3403, - 3436, - 3437, - 3439, - 0, - 0, - 3441, - 0, - 0, - 0, - 3442, - 0, - 0, - 3449, - 0, - 0, - 0, - 3450, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3451, - 0, - 0, - 3452, - 0, - 3453, - 3456, - 0, - 3457, - 0, - 0, - 3458, - 0, - 3459, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3460, - 0, - 0, - 3469, - 3470, - 0, - 0, - 3475, - 0, - 0, - 0, - 3480, - 3487, - 3489, - 0, - 3490, - 0, - 0, - 3491, - 3499, - 0, - 3500, - 0, - 0, - 3501, - 0, - 0, - 0, - 3502, - 0, - 3514, - 0, - 0, - 0, - 3516, - 3517, - 0, - 0, - 0, - 3518, - 0, - 0, - 0, - 0, - 3520, - 3521, - 3522, - 0, - 0, - 3526, - 3530, - 0, - 0, - 0, - 0, - 3531, - 0, - 0, - 0, - 0, - 3536, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3539, - 3541, - 0, - 0, - 3542, - 3544, - 0, - 3547, - 3548, - 0, - 0, - 3550, - 0, - 3553, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3554, - 0, - 3555, - 0, - 3558, - 0, - 3559, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3563, - 0, - 3581, - 0, - 0, - 0, - 3599, - 0, - 0, - 0, - 3600, - 0, - 3601, - 0, - 3602, - 3603, - 0, - 0, - 3606, - 3608, - 0, - 3610, - 3611, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3612, - 3616, - 3619, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3624, - 3628, - 0, - 3629, - 3634, - 3635, - 0, - 0, - 0, - 0, - 0, - 0, - 3636, - 0, - 3637, - 0, - 0, - 3638, - 3651, - 0, - 0, - 0, - 0, - 0, - 0, - 3652, - 3653, - 0, - 0, - 0, - 0, - 3656, - 3657, - 0, - 0, - 0, - 0, - 0, - 3658, - 0, - 0, - 0, - 0, - 3659, - 0, - 3661, - 3663, - 3664, - 0, - 3665, - 0, - 3692, - 0, - 0, - 0, - 3694, - 3696, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3698, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3700, - 0, - 0, - 3701, - 0, - 0, - 0, - 3708, - 3709, - 0, - 0, - 0, - 3711, - 3712, - 0, - 0, - 0, - 0, - 0, - 3723, - 0, - 3724, - 3725, - 0, - 0, - 3726, - 0, - 0, - 0, - 0, - 0, - 0, - 3728, - 3729, - 0, - 3734, - 3735, - 3737, - 0, - 0, - 0, - 3743, - 0, - 3745, - 0, - 0, - 3746, - 0, - 0, - 3747, - 3748, - 0, - 3757, - 0, - 3759, - 3766, - 3767, - 0, - 3768, - 0, - 0, - 0, - 0, - 3769, - 0, - 0, - 3771, - 0, - 3774, - 0, - 0, - 0, - 0, - 0, - 0, - 3775, - 0, - 0, - 0, - 0, - 0, - 0, - 3776, - 0, - 3777, - 3786, - 0, - 3788, - 3789, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3791, - 0, - 3811, - 0, - 0, - 0, - 0, - 0, - 3814, - 3815, - 3816, - 3820, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3821, - 0, - 0, - 3825, - 0, - 0, - 0, - 0, - 3835, - 0, - 0, - 3848, - 3849, - 0, - 0, - 0, - 0, - 3850, - 3851, - 3853, - 0, - 0, - 0, - 0, - 3859, - 0, - 3860, - 3862, - 0, - 0, - 0, - 0, - 0, - 3863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3873, - 0, - 3874, - 0, - 3875, - 3886, - 0, - 3887, - 0, - 0, - 0, - 0, - 3892, - 3913, - 0, - 3914, - 0, - 0, - 0, - 3925, - 3931, - 0, - 0, - 0, - 0, - 3934, - 3941, - 3942, - 0, - 0, - 0, - 0, - 3943, - 0, - 0, - 0, - 3944, - 0, - 0, - 0, - 0, - 0, - 3945, - 0, - 3947, - 0, - 0, - 0, - 3956, - 3957, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3958, - 0, - 3959, - 3965, - 0, - 0, - 0, - 0, - 3966, - 0, - 0, - 0, - 3967, - 0, - 0, - 0, - 3968, - 3974, - 0, - 0, - 0, - 0, - 0, - 3975, - 3977, - 3978, - 0, - 0, - 0, - 0, - 3980, - 0, - 3985, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3986, - 4011, - 0, - 0, - 4017, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4018, - 0, - 0, - 0, - 0, - 4019, - 0, - 4023, - 0, - 0, - 0, - 4027, - 4028, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4031, - 4034, - 0, - 0, - 4035, - 4037, - 4039, - 4040, - 0, - 0, - 0, - 0, - 0, - 4059, - 0, - 4060, - 4061, - 0, - 4062, - 4063, - 4066, - 0, - 0, - 4072, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4088, - 0, - 0, - 0, - 0, - 0, - 4091, - 0, - 0, - 0, - 0, - 4094, - 4095, - 0, - 0, - 4096, - 0, - 0, - 0, - 0, - 0, - 4098, - 4099, - 0, - 0, - 0, - 4101, - 0, - 4104, - 0, - 0, - 0, - 4105, - 4108, - 0, - 4113, - 0, - 0, - 4115, - 4116, - 0, - 4126, - 0, - 0, - 4127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4128, - 4132, - 4133, - 0, - 4134, - 0, - 0, - 0, - 4137, - 0, - 0, - 4141, - 0, - 0, - 0, - 0, - 4144, - 4146, - 4147, - 0, - 0, - 0, - 0, - 4148, - 0, - 0, - 4311, - 0, - 0, - 0, - 4314, - 4329, - 0, - 4331, - 4332, - 0, - 4333, - 0, - 4334, - 0, - 0, - 0, - 4335, - 0, - 4336, - 0, - 0, - 0, - 4337, - 0, - 0, - 0, - 4342, - 4345, - 4346, - 4350, - 0, - 4351, - 4352, - 0, - 4354, - 4355, - 0, - 0, - 4364, - 0, - 0, - 0, - 0, - 4369, - 0, - 0, - 0, - 4373, - 0, - 4374, - 0, - 0, - 0, - 0, - 4377, - 0, - 0, - 0, - 0, - 4378, - 0, - 0, - 0, - 4380, - 0, - 0, - 0, - 4381, - 4382, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4384, - 0, - 0, - 0, - 0, - 4385, - 0, - 0, - 0, - 4386, - 0, - 0, - 0, - 4391, - 4398, - 0, - 0, - 0, - 0, - 4407, - 4409, - 0, - 0, - 0, - 0, - 4410, - 0, - 0, - 4411, - 0, - 4414, - 4415, - 4418, - 0, - 4427, - 4428, - 4430, - 0, - 4431, - 0, - 4448, - 0, - 0, - 0, - 0, - 0, - 4449, - 0, - 0, - 0, - 4451, - 4452, - 0, - 4453, - 4454, - 0, - 4456, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4459, - 0, - 4463, - 0, - 0, - 0, - 0, - 0, - 4466, - 0, - 4467, - 0, - 4469, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4470, - 4471, - 0, - 4473, - 0, - 0, - 4475, - 0, - 0, - 0, - 0, - 4477, - 4478, - 0, - 0, - 0, - 4479, - 4481, - 0, - 4482, - 0, - 4484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4486, - 0, - 0, - 4488, - 0, - 0, - 4497, - 0, - 4508, - 0, - 0, - 4510, - 4511, - 0, - 4520, - 4523, - 0, - 4524, - 0, - 4525, - 0, - 4527, - 0, - 0, - 4528, - 0, - 0, - 0, - 0, - 4530, - 0, - 4531, - 0, - 0, - 4532, - 0, - 0, - 0, - 4533, - 0, - 0, - 0, - 0, - 0, - 4535, - 0, - 0, - 0, - 4536, - 0, - 0, - 0, - 0, - 0, - 4541, - 4543, - 4544, - 4545, - 4547, - 0, - 4548, - 0, - 0, - 0, - 0, - 4550, - 4551, - 0, - 4553, - 0, - 0, - 0, - 0, - 4562, - 0, - 0, - 4571, - 0, - 0, - 0, - 4574, - 0, - 0, - 0, - 4575, - 0, - 4576, - 0, - 4577, - 0, - 0, - 0, - 4581, - 0, - 0, - 0, - 0, - 0, - 4582, - 0, - 0, - 4586, - 0, - 0, - 0, - 4588, - 0, - 0, - 4597, - 0, - 4598, - 0, - 0, - 0, - 0, - 4616, - 4617, - 0, - 4618, - 0, - 0, - 0, - 0, - 4619, - 0, - 4620, - 0, - 0, - 4621, - 0, - 4624, - 0, - 0, - 0, - 0, - 0, - 4625, - 0, - 0, - 0, - 0, - 4657, - 0, - 4659, - 0, - 4667, - 0, - 0, - 0, - 4668, - 4670, - 0, - 4672, - 0, - 0, - 0, - 0, - 0, - 4673, - 4676, - 0, - 0, - 0, - 0, - 4687, - 0, - 0, - 0, - 0, - 4697, - 0, - 0, - 0, - 0, - 4699, - 0, - 4701, - 0, - 0, - 0, - 0, - 4702, - 0, - 0, - 4706, - 0, - 0, - 4713, - 0, - 0, - 0, - 4714, - 4715, - 4716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4717, - 0, - 0, - 4720, - 0, - 4721, - 4729, - 4735, - 0, - 0, - 0, - 4737, - 0, - 0, - 0, - 4739, - 0, - 0, - 0, - 4740, - 0, - 0, - 0, - 4741, - 0, - 0, - 0, - 0, - 0, - 4742, - 0, - 4745, - 4746, - 4747, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4748, - 0, - 0, - 0, - 4749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4751, - 4786, - 0, - 4787, - 0, - 4788, - 4796, - 0, - 0, - 4797, - 4798, - 0, - 4799, - 4806, - 4807, - 0, - 0, - 0, - 0, - 4809, - 4810, - 0, - 0, - 0, - 0, - 0, - 0, - 4811, - 0, - 0, - 0, - 0, - 0, - 4812, - 0, - 4813, - 0, - 0, - 4815, - 0, - 4821, - 4822, - 0, - 0, - 0, - 0, - 4823, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4824, - 0, - 0, - 0, - 0, - 4826, - 0, - 0, - 0, - 4828, - 0, - 4829, - 0, - 0, - 0, - 4843, - 0, - 0, - 4847, - 0, - 4853, - 4855, - 4858, - 0, - 0, - 0, - 0, - 0, - 4859, - 0, - 4864, - 0, - 0, - 4879, - 0, - 0, - 0, - 0, - 4880, - 0, - 0, - 0, - 0, - 4881, - 0, - 4882, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4883, - 0, - 0, - 0, - 0, - 4884, - 0, - 0, - 0, - 0, - 0, - 4886, - 4887, - 4888, - 4894, - 4896, - 0, - 4902, - 0, - 0, - 4905, - 0, - 0, - 4915, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4916, - 4917, - 4919, - 4921, - 0, - 0, - 0, - 0, - 0, - 4926, - 0, - 0, - 0, - 0, - 4927, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4929, - 0, - 4930, - 4931, - 0, - 4938, - 0, - 4952, - 0, - 4953, - 4957, - 4960, - 4964, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5019, - 5020, - 5022, - 0, - 0, - 0, - 0, - 0, - 5023, - 0, - 0, - 0, - 5024, - 0, - 0, - 0, - 5025, - 0, - 0, - 0, - 0, - 5028, - 0, - 0, - 0, - 0, - 5029, - 5030, - 5031, - 0, - 5033, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5034, - 5035, - 0, - 5036, - 0, - 0, - 5037, - 0, - 0, - 0, - 0, - 5038, - 0, - 0, - 5039, - 0, - 0, - 0, - 5041, - 5042, - 0, - 0, - 0, - 0, - 5044, - 5049, - 5054, - 0, - 5055, - 0, - 5057, - 0, - 0, - 0, - 5060, - 0, - 0, - 0, - 0, - 0, - 5063, - 0, - 5064, - 5065, - 0, - 5067, - 0, - 0, - 0, - 5068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5076, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5077, - 0, - 0, - 5078, - 5080, - 0, - 0, - 5083, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5085, - 0, - 0, - 0, - 0, - 0, - 0, - 5098, - 5099, - 5101, - 5105, - 5107, - 0, - 5108, - 0, - 5109, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5110, - 0, - 0, - 0, - 0, - 0, - 5117, - 5118, - 0, - 5121, - 0, - 5122, - 0, - 0, - 5130, - 0, - 0, - 0, - 5137, - 0, - 0, - 0, - 5148, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5151, - 5154, - 0, - 0, - 0, - 5155, - 0, - 0, - 5156, - 5159, - 5161, - 0, - 0, - 0, - 0, - 5162, - 0, - 0, - 0, - 0, - 5163, - 5164, - 0, - 5166, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5167, - 0, - 0, - 0, - 5172, - 0, - 0, - 0, - 0, - 0, - 0, - 5178, - 5179, - 0, - 0, - 5190, - 0, - 0, - 5191, - 5192, - 5194, - 0, - 0, - 5198, - 5201, - 0, - 0, - 0, - 0, - 0, - 5203, - 0, - 5206, - 5209, - 0, - 0, - 0, - 0, - 0, - 0, - 5213, - 0, - 5214, - 5216, - 0, - 0, - 0, - 0, - 0, - 5217, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5218, - 5219, - 0, - 5231, - 0, - 0, - 5244, - 5249, - 0, - 5254, - 0, - 5255, - 0, - 0, - 5257, - 0, - 0, - 0, - 0, - 0, - 5258, - 0, - 5260, - 5270, - 0, - 5277, - 0, - 0, - 0, - 0, - 0, - 0, - 5280, - 5281, - 5282, - 5283, - 0, - 0, - 0, - 0, - 0, - 5284, - 0, - 5285, - 0, - 0, - 0, - 0, - 0, - 5287, - 5288, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5289, - 5291, - 0, - 0, - 5294, - 0, - 0, - 5295, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5304, - 0, - 0, - 5306, - 5307, - 5308, - 0, - 5309, - 0, - 0, - 5310, - 0, - 0, - 0, - 0, - 5311, - 5312, - 0, - 5313, - 0, - 0, - 0, - 0, - 0, - 5316, - 0, - 0, - 0, - 5317, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5325, - 0, - 0, - 0, - 0, - 0, - 0, - 5326, - 0, - 5327, - 5329, - 0, - 5332, - 0, - 0, - 0, - 0, - 5338, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5340, - 0, - 0, - 5341, - 0, - 0, - 0, - 5342, - 0, - 5343, - 5344, - 0, - 0, - 5345, - 0, - 0, - 0, - 0, - 0, - 0, - 5347, - 5348, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5349, - 0, - 5350, - 0, - 5354, - 0, - 0, - 0, - 0, - 5358, - 0, - 0, - 5359, - 0, - 0, - 5361, - 0, - 0, - 5365, - 0, - 5367, - 0, - 5373, - 0, - 0, - 0, - 5379, - 0, - 0, - 0, - 5380, - 0, - 0, - 0, - 5382, - 0, - 5384, - 0, - 0, - 0, - 0, - 0, - 0, - 5385, - 0, - 0, - 0, - 0, - 5387, - 0, - 0, - 0, - 0, - 0, - 0, - 5388, - 5390, - 5393, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5396, - 0, - 0, - 0, - 0, - 5397, - 5402, - 0, - 0, - 0, - 0, - 0, - 5403, - 0, - 0, - 0, - 5404, - 5405, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5406, - 0, - 0, - 0, - 0, - 5410, - 0, - 0, - 5411, - 0, - 5415, - 0, - 0, - 0, - 0, - 5416, - 5434, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5438, - 0, - 5440, - 0, - 0, - 0, - 0, - 0, - 0, - 5441, - 5442, - 0, - 0, - 0, - 5443, - 5444, - 5447, - 0, - 0, - 5448, - 5449, - 5451, - 0, - 0, - 0, - 5456, - 5457, - 0, - 0, - 0, - 5459, - 0, - 0, - 0, - 5461, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5464, - 0, - 5466, - 0, - 0, - 5467, - 0, - 5470, - 0, - 0, - 5473, - 0, - 0, - 5474, - 0, - 0, - 5476, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5477, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5484, - 0, - 0, - 5485, - 5486, - 0, - 0, - 0, - 0, - 0, - 5488, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5489, - 0, - 0, - 0, - 0, - 0, - 5507, - 0, - 0, - 0, - 5510, - 0, - 5511, - 0, - 0, - 5512, - 0, - 0, - 0, - 5513, - 0, - 5515, - 0, - 0, - 5516, - 5517, - 0, - 5518, - 0, - 0, - 5522, - 0, - 0, - 0, - 0, - 0, - 5534, - 5535, - 0, - 0, - 5536, - 0, - 5538, - 0, - 0, - 5543, - 0, - 5544, - 0, - 0, - 5545, - 0, - 5547, - 0, - 5557, - 0, - 0, - 5558, - 0, - 5560, - 5567, - 0, - 0, - 0, - 0, - 5568, - 0, - 0, - 0, - 5571, - 5573, - 0, - 5574, - 0, - 5575, - 0, - 0, - 0, - 0, - 5577, - 0, - 0, - 5598, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5600, - 5609, - 0, - 0, - 0, - 0, - 5610, - 0, - 0, - 5612, - 0, - 5624, - 0, - 5625, - 0, - 0, - 0, - 5629, - 0, - 5641, - 0, - 5642, - 5643, - 0, - 0, - 0, - 0, - 0, - 0, - 5651, - 0, - 0, - 0, - 5652, - 5653, - 0, - 5661, - 5662, - 5678, - 0, - 5679, - 0, - 0, - 0, - 0, - 5685, - 5686, - 0, - 0, - 0, - 0, - 0, - 5690, - 5692, - 0, - 5703, - 0, - 0, - 0, - 0, - 0, - 5706, - 0, - 0, - 0, - 0, - 5707, - 0, - 0, - 0, - 0, - 0, - 0, - 5708, - 0, - 0, - 5709, - 0, - 5710, - 0, - 0, - 0, - 5712, - 0, - 5733, - 0, - 5734, - 5735, - 0, - 0, - 5744, - 5751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5752, - 0, - 5754, - 0, - 0, - 0, - 0, - 0, - 0, - 5757, - 5758, - 0, - 5760, - 5761, - 0, - 0, - 0, - 0, - 5763, - 5764, - 5765, - 0, - 5766, - 0, - 5767, - 5768, - 0, - 5770, - 0, - 0, - 0, - 0, - 5776, - 5780, - 0, - 0, - 0, - 0, - 5782, - 0, - 0, - 0, - 0, - 5784, - 0, - 0, - 5788, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5797, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5799, - 0, - 0, - 5801, - 0, - 0, - 0, - 5811, - 0, - 0, - 0, - 0, - 0, - 0, - 5816, - 0, - 0, - 5827, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5830, - 5831, - 0, - 0, - 5832, - 0, - 0, - 5833, - 0, - 5835, - 5844, - 5845, - 0, - 5846, - 0, - 0, - 0, - 0, - 0, - 5850, - 0, - 0, - 0, - 0, - 0, - 5852, - 0, - 5855, - 5857, - 0, - 0, - 5859, - 0, - 5861, - 0, - 0, - 5863, - 0, - 5865, - 0, - 0, - 0, - 5873, - 5875, - 0, - 0, - 0, - 5877, - 0, - 5879, - 0, - 0, - 0, - 5888, - 0, - 0, - 5889, - 5891, - 0, - 5894, - 0, - 0, - 0, - 0, - 0, - 0, - 5895, - 0, - 5897, - 0, - 0, - 0, - 0, - 0, - 0, - 5907, - 0, - 5911, - 0, - 0, - 5912, - 0, - 5913, - 5922, - 5924, - 0, - 5927, - 5928, - 0, - 0, - 0, - 0, - 5929, - 5930, - 0, - 5933, - 0, - 0, - 0, - 0, - 5949, - 0, - 0, - 5951, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5953, - 0, - 0, - 5954, - 0, - 5959, - 5960, - 5961, - 0, - 5964, - 0, - 0, - 0, - 5976, - 5978, - 5987, - 5990, - 0, - 0, - 0, - 0, - 0, - 5991, - 0, - 5992, - 0, - 0, - 0, - 5994, - 5995, - 0, - 0, - 5996, - 0, - 0, - 6001, - 6003, - 0, - 0, - 0, - 0, - 6007, - 0, - 0, - 0, - 0, - 0, - 6008, - 0, - 0, - 6009, - 0, - 6010, - 0, - 0, - 0, - 6011, - 6015, - 0, - 6017, - 0, - 6019, - 0, - 6023, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6025, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6026, - 0, - 6030, - 0, - 0, - 6032, - 0, - 0, - 0, - 6033, - 6038, - 6040, - 0, - 0, - 0, - 6041, - 6045, - 0, - 0, - 6046, - 0, - 0, - 6053, - 0, - 0, - 6054, - 0, - 6055, - 0, - 0, - 0, - 0, - 0, - 0, - 6057, - 0, - 6063, - 0, - 0, - 0, - 6064, - 0, - 6066, - 6071, - 6072, - 0, - 0, - 0, - 0, - 0, - 0, - 6075, - 6076, - 0, - 0, - 6077, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6078, - 6079, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6080, - 0, - 6083, - 0, - 0, - 0, - 0, - 0, - 6084, - 0, - 0, - 6088, - 0, - 6089, - 0, - 0, - 6093, - 6105, - 0, - 0, - 6107, - 0, - 6110, - 0, - 0, - 0, - 6111, - 6125, - 6126, - 0, - 0, - 0, - 6129, - 0, - 0, - 0, - 0, - 6130, - 0, - 0, - 0, - 6131, - 6134, - 0, - 0, - 0, - 0, - 0, - 0, - 6142, - 0, - 0, - 0, - 0, - 0, - 6144, - 0, - 0, - 6146, - 6151, - 6153, - 0, - 6156, - 0, - 6163, - 0, - 6180, - 6181, - 0, - 0, - 0, - 0, - 0, - 6182, - 0, - 0, - 0, - 0, - 6184, - 6195, - 0, - 0, - 6206, - 0, - 6208, - 0, - 0, - 6212, - 6213, - 6214, - 0, - 6215, - 0, - 0, - 0, - 6228, - 0, - 0, - 0, - 6234, - 0, - 0, - 0, - 0, - 0, - 0, - 6235, - 6240, - 0, - 6242, - 6243, - 6244, - 0, - 6250, - 6255, - 0, - 0, - 0, - 0, - 0, - 6257, - 0, - 0, - 0, - 6258, - 6278, - 0, - 6284, - 0, - 0, - 0, - 6285, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6286, - 0, - 0, - 0, - 6320, - 0, - 0, - 6322, - 6332, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6334, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6335, - 0, - 0, - 6337, - 0, - 6338, - 0, - 6339, - 6340, - 0, - 0, - 6356, - 6357, - 6369, - 0, - 0, - 0, - 6370, - 6371, - 6372, - 0, - 6373, - 0, - 0, - 0, - 0, - 0, - 6376, - 0, - 0, - 0, - 0, - 0, - 6382, - 6383, - 6384, - 0, - 0, - 0, - 0, - 6386, - 0, - 6389, - 6397, - 6400, - 6411, - 0, - 6414, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6415, - 6416, - 0, - 0, - 0, - 0, - 0, - 0, - 6417, - 0, - 0, - 0, - 0, - 6418, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6420, - 0, - 6421, - 6423, - 6425, - 0, - 6429, - 6430, - 0, - 6433, - 6438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6439, - 6440, - 0, - 0, - 6441, - 0, - 0, - 6444, - 0, - 0, - 0, - 0, - 6446, - 0, - 0, - 0, - 0, - 6447, - 6448, - 0, - 0, - 6450, - 0, - 0, - 0, - 6454, - 0, - 0, - 6455, - 0, - 6461, - 0, - 0, - 0, - 0, - 0, - 0, - 6462, - 0, - 0, - 6463, - 0, - 6464, - 0, - 6465, - 6467, - 0, - 0, - 0, - 6468, - 0, - 6479, - 6480, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6481, - 0, - 0, - 6485, - 6487, - 0, - 0, - 0, - 0, - 0, - 0, - 6493, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6494, - 6495, - 6496, - 0, - 0, - 0, - 0, - 0, - 6498, - 0, - 0, - 0, - 6507, - 6508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6511, - 6512, - 0, - 0, - 0, - 0, - 6513, - 0, - 0, - 0, - 6514, - 0, - 0, - 0, - 0, - 0, - 6516, - 0, - 0, - 6517, - 6518, - 0, - 0, - 0, - 6519, - 6520, - 6521, - 0, - 6523, - 0, - 0, - 0, - 0, - 6524, - 6528, - 0, - 6530, - 0, - 0, - 6532, - 0, - 6578, - 0, - 0, - 0, - 6583, - 0, - 6584, - 0, - 0, - 0, - 6587, - 0, - 0, - 0, - 6590, - 0, - 6591, - 0, - 0, - 0, - 0, - 0, - 6592, - 0, - 0, - 0, - 0, - 6593, - 6594, - 0, - 0, - 0, - 0, - 0, - 6599, - 6600, - 0, - 0, - 6601, - 6602, - 6604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6608, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6610, - 6611, - 0, - 6615, - 0, - 6616, - 6618, - 6620, - 0, - 6637, - 0, - 0, - 0, - 0, - 6639, - 0, - 0, - 0, - 0, - 6641, - 0, - 6642, - 0, - 0, - 0, - 6647, - 0, - 6660, - 6663, - 0, - 6664, - 0, - 6666, - 6669, - 0, - 6675, - 6676, - 6677, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6678, - 0, - 0, - 0, - 6679, - 0, - 6680, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6693, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6704, - 6705, - 6706, - 0, - 0, - 6711, - 6713, - 0, - 0, - 0, - 0, - 0, - 6716, - 0, - 0, - 0, - 6717, - 0, - 6719, - 6724, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6725, - 6726, - 0, - 0, - 0, - 0, - 0, - 6728, - 6729, - 6735, - 0, - 6737, - 6742, - 0, - 0, - 6743, - 6750, - 0, - 6751, - 0, - 0, - 6752, - 6753, - 0, - 0, - 0, - 0, - 0, - 0, - 6754, - 0, - 0, - 0, - 0, - 0, - 6756, - 0, - 0, - 0, - 0, - 0, - 0, - 6763, - 0, - 0, - 6764, - 6765, - 0, - 0, - 0, - 6770, - 0, - 0, - 0, - 6776, - 6780, - 0, - 6781, - 0, - 0, - 0, - 6783, - 0, - 6784, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6785, - 0, - 0, - 0, - 6792, - 0, - 0, - 0, - 6793, - 0, - 0, - 6802, - 0, - 0, - 0, - 0, - 0, - 6803, - 0, - 0, - 0, - 6804, - 0, - 0, - 0, - 6812, - 0, - 0, - 6823, - 0, - 6824, - 6839, - 0, - 0, - 0, - 0, - 6852, - 0, - 0, - 6854, - 0, - 6856, - 6857, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6867, - 0, - 6868, - 6870, - 6872, - 0, - 0, - 0, - 6873, - 6874, - 0, - 0, - 0, - 0, - 0, - 6875, - 0, - 0, - 6877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6878, - 0, - 0, - 0, - 6879, - 0, - 6880, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6887, - 0, - 6888, - 6891, - 6893, - 0, - 6895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6899, - 0, - 0, - 0, - 0, - 6901, - 0, - 0, - 0, - 0, - 6910, - 0, - 6911, - 0, - 0, - 6912, - 0, - 0, - 6913, - 6914, - 0, - 0, - 0, - 6915, - 0, - 0, - 0, - 6916, - 6919, - 0, - 0, - 0, - 0, - 0, - 0, - 6924, - 0, - 6925, - 0, - 0, - 0, - 6926, - 6927, - 6928, - 0, - 6929, - 0, - 6930, - 0, - 0, - 6931, - 6935, - 0, - 6936, - 0, - 0, - 0, - 0, - 6939, - 6940, - 6941, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6942, - 6948, - 6949, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6952, - 6954, - 6963, - 6965, - 6966, - 0, - 0, - 6967, - 6968, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6969, - 0, - 0, - 6970, - 6979, - 0, - 0, - 6980, - 0, - 0, - 6983, - 0, - 0, - 0, - 0, - 0, - 6984, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6988, - 6990, - 6992, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6995, - 0, - 0, - 0, - 7012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7019, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7021, - 0, - 0, - 7022, - 7023, - 7028, - 0, - 7030, - 7033, - 0, - 0, - 0, - 0, - 0, - 0, - 7038, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7039, - 0, - 0, - 0, - 0, - 0, - 7046, - 0, - 7047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7048, - 7052, - 0, - 0, - 0, - 0, - 0, - 7054, - 0, - 7060, - 0, - 0, - 0, - 0, - 7061, - 0, - 7065, - 0, - 0, - 0, - 0, - 7067, - 7069, - 0, - 7070, - 7071, - 7072, - 0, - 0, - 7078, - 0, - 7080, - 7081, - 0, - 7083, - 0, - 0, - 0, - 7084, - 7087, - 7088, - 0, - 0, - 7090, - 0, - 7093, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7107, - 0, - 0, - 7108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7110, - 0, - 7114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7115, - 0, - 7116, - 0, - 0, - 0, - 0, - 0, - 7117, - 0, - 0, - 7118, - 0, - 0, - 7124, - 0, - 7125, - 0, - 0, - 7126, - 0, - 0, - 0, - 0, - 7128, - 0, - 0, - 0, - 0, - 0, - 7129, - 0, - 7130, - 0, - 7132, - 7133, - 0, - 0, - 7134, - 0, - 0, - 7139, - 0, - 7148, - 7150, - 0, - 0, - 0, - 0, - 7152, - 0, - 0, - 0, - 7153, - 7156, - 7157, - 0, - 0, - 0, - 0, - 0, - 7158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7163, - 7165, - 7169, - 0, - 7171, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7172, - 0, - 7173, - 7181, - 0, - 0, - 0, - 0, - 0, - 7182, - 7185, - 0, - 0, - 0, - 0, - 7187, - 0, - 7201, - 7204, - 0, - 0, - 0, - 0, - 0, - 7206, - 7207, - 0, - 0, - 0, - 0, - 7211, - 7216, - 0, - 7218, - 0, - 0, - 0, - 0, - 7226, - 7228, - 7230, - 7232, - 7233, - 7235, - 7237, - 0, - 0, - 0, - 0, - 7238, - 7241, - 0, - 7242, - 0, - 0, - 7247, - 0, - 0, - 0, - 7266, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7289, - 0, - 0, - 7290, - 7291, - 0, - 0, - 7292, - 0, - 7297, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7300, - 0, - 7301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7302, - 0, - 0, - 0, - 0, - 7305, - 0, - 0, - 0, - 0, - 7307, - 0, - 7308, - 0, - 7310, - 0, - 7335, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7337, - 0, - 7343, - 7347, - 0, - 0, - 0, - 0, - 0, - 7348, - 0, - 7349, - 7350, - 7352, - 7354, - 0, - 0, - 0, - 0, - 7357, - 0, - 7358, - 7366, - 0, - 7367, - 7368, - 0, - 0, - 7373, - 0, - 0, - 0, - 7374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7376, - 0, - 0, - 0, - 7377, - 0, - 0, - 0, - 0, - 0, - 7378, - 0, - 7379, - 7380, - 0, - 0, - 0, - 0, - 0, - 7383, - 0, - 0, - 7386, - 0, - 0, - 0, - 0, - 7398, - 0, - 0, - 0, - 7399, - 7400, - 0, - 7401, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7402, - 0, - 0, - 0, - 0, - 0, - 7405, - 0, - 0, - 0, - 0, - 0, - 7406, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7421, - 7427, - 7429, - 0, - 0, - 0, - 7435, - 0, - 0, - 7436, - 0, - 0, - 0, - 7437, - 0, - 0, - 0, - 0, - 0, - 0, - 7438, - 7443, - 0, - 7446, - 0, - 7448, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7456, - 0, - 0, - 0, - 0, - 0, - 7457, - 0, - 0, - 7461, - 0, - 0, - 0, - 0, - 0, - 7462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7463, - 7466, - 7472, - 0, - 7476, - 0, - 0, - 7490, - 0, - 7491, - 0, - 0, - 7493, - 0, - 0, - 0, - 7498, - 7499, - 0, - 0, - 7508, - 0, - 0, - 0, - 0, - 0, - 7512, - 0, - 0, - 0, - 7513, - 7514, - 7516, - 0, - 0, - 0, - 0, - 7518, - 0, - 0, - 7519, - 7521, - 7522, - 0, - 0, - 0, - 7526, - 0, - 0, - 7529, - 0, - 0, - 7531, - 0, - 7536, - 0, - 7538, - 0, - 7539, - 0, - 0, - 7541, - 7542, - 7546, - 0, - 0, - 0, - 0, - 0, - 7547, - 0, - 7548, - 0, - 0, - 0, - 0, - 0, - 7550, - 0, - 0, - 7552, - 7553, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7554, - 7563, - 0, - 7573, - 0, - 0, - 0, - 0, - 0, - 0, - 7574, - 7576, - 0, - 7578, - 7581, - 7583, - 0, - 0, - 0, - 7584, - 0, - 7587, - 0, - 0, - 0, - 0, - 0, - 7589, - 0, - 0, - 0, - 7594, - 0, - 0, - 7595, - 0, - 0, - 7600, - 7602, - 7610, - 0, - 0, - 0, - 0, - 0, - 7612, - 0, - 7613, - 7614, - 0, - 0, - 7615, - 0, - 0, - 7616, - 0, - 7620, - 0, - 7621, - 7622, - 0, - 7623, - 0, - 0, - 0, - 0, - 7626, - 0, - 0, - 0, - 0, - 7627, - 7629, - 7631, - 0, - 0, - 7633, - 0, - 0, - 0, - 0, - 0, - 7639, - 0, - 7640, - 7642, - 0, - 0, - 7643, - 0, - 0, - 0, - 0, - 7644, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7645, - 0, - 0, - 0, - 0, - 0, - 7661, - 7662, - 7663, - 7665, - 0, - 7666, - 0, - 7667, - 0, - 7684, - 7688, - 7690, - 0, - 7691, - 0, - 0, - 0, - 0, - 0, - 0, - 7692, - 0, - 0, - 7700, - 0, - 7707, - 0, - 7708, - 0, - 7709, - 0, - 7721, - 0, - 0, - 0, - 7722, - 0, - 7724, - 0, - 0, - 0, - 0, - 0, - 0, - 7729, - 7731, - 0, - 7732, - 0, - 7733, - 7735, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7739, - 0, - 0, - 7741, - 7745, - 0, - 7748, - 0, - 0, - 0, - 7751, - 0, - 0, - 0, - 7752, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7753, - 0, - 0, - 7756, - 0, - 7757, - 0, - 7759, - 0, - 7760, - 0, - 0, - 0, - 0, - 7761, - 7768, - 0, - 0, - 7769, - 0, - 0, - 7770, - 0, - 0, - 7771, - 0, - 0, - 7772, - 0, - 0, - 7773, - 0, - 0, - 0, - 0, - 0, - 7778, - 7783, - 0, - 0, - 0, - 0, - 0, - 7784, - 7785, - 0, - 7790, - 0, - 0, - 0, - 0, - 7792, - 0, - 7798, - 0, - 0, - 0, - 0, - 0, - 7799, - 0, - 7810, - 0, - 0, - 7813, - 0, - 7814, - 0, - 7816, - 0, - 7818, - 7824, - 7825, - 7826, - 0, - 7828, - 7830, - 0, - 0, - 0, - 7840, - 0, - 7842, - 0, - 7843, - 0, - 0, - 0, - 0, - 7844, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7846, - 0, - 0, - 0, - 0, - 0, - 7856, - 7857, - 7858, - 7862, - 0, - 7865, - 0, - 0, - 7866, - 0, - 0, - 7913, - 0, - 0, - 0, - 0, - 7914, - 0, - 0, - 7915, - 7917, - 7918, - 7919, - 0, - 7920, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7921, - 7922, - 0, - 7924, - 0, - 0, - 7925, - 0, - 0, - 7927, - 0, - 7930, - 7935, - 0, - 0, - 7937, - 0, - 0, - 0, - 0, - 0, - 0, - 7939, - 0, - 7940, - 0, - 0, - 0, - 0, - 0, - 7941, - 0, - 0, - 0, - 0, - 7945, - 0, - 0, - 0, - 0, - 7949, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7950, - 0, - 7953, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7968, - 0, - 0, - 0, - 0, - 7969, - 7972, - 7992, - 0, - 7993, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7994, - 0, - 0, - 0, - 0, - 8007, - 8008, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8010, - 0, - 0, - 0, - 8012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8018, - 0, - 8028, - 8029, - 0, - 0, - 8030, - 0, - 0, - 8032, - 8033, - 0, - 0, - 8034, - 8036, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8037, - 0, - 0, - 0, - 8043, - 8052, - 8059, - 8060, - 0, - 0, - 8061, - 0, - 0, - 0, - 8062, - 0, - 8063, - 0, - 8064, - 0, - 8066, - 8068, - 0, - 0, - 0, - 8080, - 8081, - 0, - 8089, - 0, - 0, - 0, - 0, - 0, - 8092, - 0, - 0, - 0, - 0, - 0, - 0, - 8093, - 8110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8111, - 0, - 0, - 0, - 0, - 0, - 8112, - 8115, - 0, - 8117, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8120, - 8121, - 8122, - 8128, - 8129, - 8130, - 8131, - 0, - 0, - 8139, - 0, - 0, - 8144, - 0, - 0, - 0, - 0, - 8145, - 8146, - 8153, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8154, - 0, - 8157, - 8160, - 8162, - 0, - 8164, - 8165, - 0, - 0, - 0, - 0, - 8166, - 8167, - 0, - 0, - 8179, - 0, - 0, - 0, - 8185, - 0, - 0, - 0, - 8186, - 0, - 0, - 8187, - 0, - 0, - 0, - 8188, - 0, - 0, - 0, - 0, - 0, - 8204, - 0, - 0, - 0, - 0, - 8210, - 0, - 0, - 0, - 0, - 0, - 8213, - 0, - 8214, - 0, - 0, - 8215, - 0, - 0, - 0, - 0, - 0, - 0, - 8218, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8219, - 0, - 8221, - 0, - 0, - 8222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8225, - 0, - 0, - 0, - 8233, - 0, - 0, - 8242, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8247, - 0, - 8248, - 8252, - 0, - 8256, - 8257, - 0, - 0, - 8261, - 0, - 8264, - 8265, - 0, - 0, - 0, - 0, - 8267, - 0, - 0, - 0, - 8269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8270, - 0, - 0, - 0, - 8278, - 0, - 8279, - 8283, - 0, - 0, - 8285, - 8286, - 8289, - 8292, - 0, - 0, - 0, - 0, - 8293, - 8295, - 8299, - 8300, - 8301, - 0, - 0, - 0, - 0, - 0, - 0, - 8304, - 8307, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8321, - 0, - 0, - 0, - 8322, - 8323, - 8325, - 8326, - 8327, - 0, - 0, - 8332, - 8338, - 0, - 0, - 8340, - 0, - 0, - 0, - 0, - 0, - 8350, - 0, - 0, - 8351, - 0, - 8354, - 8355, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8360, - 8372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8377, - 0, - 0, - 0, - 0, - 8380, - 0, - 0, - 0, - 8383, - 0, - 8384, - 0, - 0, - 0, - 0, - 8386, - 8392, - 0, - 0, - 8394, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8396, - 8397, - 0, - 8398, - 0, - 8399, - 0, - 0, - 0, - 0, - 0, - 8400, - 0, - 8401, - 8410, - 8411, - 0, - 8412, - 8413, - 8422, - 0, - 0, - 0, - 0, - 8423, - 0, - 0, - 0, - 0, - 8424, - 0, - 0, - 8425, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8441, - 8442, - 0, - 0, - 0, - 0, - 0, - 0, - 8443, - 0, - 0, - 8444, - 0, - 8447, - 0, - 0, - 0, - 0, - 8451, - 0, - 8458, - 0, - 8462, - 0, - 0, - 8468, - 0, - 8469, - 0, - 0, - 0, - 8470, - 0, - 8473, - 8479, - 8480, - 0, - 0, - 0, - 0, - 8481, - 8483, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8484, - 0, - 0, - 8490, - 0, - 0, - 0, - 0, - 0, - 0, - 8491, - 8493, - 8494, - 0, - 8528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8530, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8534, - 8538, - 8540, - 0, - 0, - 8541, - 0, - 0, - 8545, - 0, - 8557, - 0, - 0, - 8569, - 8570, - 0, - 0, - 8571, - 8574, - 8575, - 8579, - 0, - 8583, - 0, - 0, - 0, - 0, - 8591, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8606, - 0, - 8607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8608, - 0, - 0, - 8609, - 0, - 0, - 0, - 8610, - 0, - 0, - 0, - 8611, - 0, - 0, - 8613, - 8617, - 8621, - 0, - 0, - 8622, - 0, - 8623, - 0, - 8624, - 8625, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8637, - 8638, - 8639, - 8650, - 0, - 0, - 0, - 0, - 8652, - 8654, - 8655, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8656, - 0, - 0, - 0, - 0, - 0, - 8657, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8658, - 0, - 0, - 8659, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8660, - 0, - 0, - 0, - 0, - 0, - 0, - 8661, - 8663, - 8664, - 0, - 0, - 0, - 0, - 8665, - 0, - 8669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8671, - 8674, - 0, - 8684, - 0, - 8686, - 0, - 0, - 0, - 8689, - 0, - 0, - 0, - 8690, - 0, - 8706, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8710, - 0, - 8711, - 8713, - 8714, - 8724, - 8727, - 8728, - 8733, - 8736, - 0, - 8737, - 8739, - 0, - 0, - 0, - 0, - 8742, - 8743, - 8745, - 8754, - 0, - 0, - 0, - 0, - 8756, - 0, - 0, - 0, - 0, - 0, - 0, - 8757, - 8760, - 0, - 0, - 0, - 0, - 0, - 8762, - 8763, - 8764, - 0, - 8766, - 8769, - 8770, - 8773, - 0, - 8774, - 0, - 8779, - 0, - 0, - 0, - 0, - 8780, - 0, - 0, - 8781, - 0, - 0, - 8783, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8784, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8785, - 0, - 0, - 0, - 0, - 8786, - 0, - 0, - 0, - 0, - 8788, - 8790, - 0, - 0, - 0, - 8803, - 0, - 8813, - 8814, - 0, - 0, - 0, - 0, - 0, - 8815, - 8816, - 0, - 0, - 0, - 0, - 8818, - 0, - 0, - 0, - 0, - 8822, - 8828, - 8829, - 0, - 8831, - 0, - 0, - 0, - 0, - 8833, - 0, - 0, - 0, - 8834, - 0, - 0, - 0, - 8835, - 0, - 8836, - 0, - 0, - 0, - 8837, - 0, - 0, - 0, - 0, - 0, - 0, - 8838, - 8839, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8840, - 0, - 0, - 0, - 8841, - 0, - 8842, - 0, - 0, - 0, - 8846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8847, - 0, - 8848, - 0, - 0, - 8864, - 0, - 0, - 8866, - 0, - 0, - 8870, - 8872, - 0, - 0, - 8873, - 8874, - 0, - 0, - 0, - 0, - 0, - 0, - 8875, - 0, - 8876, - 0, - 0, - 0, - 0, - 8896, - 8900, - 0, - 0, - 0, - 0, - 8901, - 0, - 0, - 0, - 0, - 0, - 8904, - 0, - 8907, - 0, - 0, - 0, - 0, - 8911, - 8912, - 8913, - 0, - 0, - 0, - 8914, - 0, - 8915, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8916, - 0, - 0, - 0, - 8929, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8930, - 0, - 8932, - 0, - 8943, - 0, - 0, - 0, - 8945, - 8947, - 0, - 0, - 0, - 0, - 8949, - 0, - 8950, - 0, - 8954, - 8957, - 0, - 0, - 8970, - 0, - 0, - 0, - 0, - 8971, - 0, - 8996, - 0, - 0, - 0, - 0, - 8997, - 9000, - 0, - 0, - 0, - 0, - 9001, - 9002, - 0, - 9004, - 9009, - 9024, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9027, - 9082, - 0, - 0, - 9083, - 9089, - 0, - 0, - 0, - 0, - 0, - 0, - 9090, - 0, - 0, - 0, - 9092, - 0, - 0, - 9093, - 0, - 9095, - 0, - 0, - 9096, - 9097, - 9101, - 9102, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9112, - 0, - 0, - 0, - 0, - 0, - 0, - 9114, - 0, - 0, - 9120, - 0, - 9121, - 9122, - 0, - 0, - 0, - 9123, - 9124, - 0, - 0, - 9125, - 0, - 0, - 9126, - 0, - 9127, - 0, - 0, - 9129, - 9131, - 0, - 0, - 0, - 9132, - 0, - 0, - 9136, - 0, - 9144, - 0, - 0, - 9148, - 0, - 0, - 0, - 0, - 0, - 0, - 9149, - 0, - 9152, - 9163, - 0, - 0, - 9165, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9166, - 0, - 9169, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9170, - 0, - 0, - 0, - 0, - 9172, - 0, - 9174, - 9175, - 9176, - 0, - 9177, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9186, - 0, - 9187, - 0, - 0, - 0, - 9188, - 9189, - 0, - 0, - 9190, - 0, - 0, - 0, - 0, - 9191, - 0, - 0, - 0, - 9193, - 0, - 0, - 0, - 0, - 9197, - 9198, - 0, - 0, - 0, - 9208, - 9211, - 0, - 0, - 0, - 0, - 9216, - 9217, - 0, - 9220, - 0, - 0, - 0, - 0, - 9221, - 9222, - 9223, - 0, - 9224, - 9225, - 0, - 0, - 9227, - 0, - 9228, - 9229, - 0, - 0, - 9230, - 0, - 9232, - 0, - 9233, - 0, - 0, - 0, - 0, - 0, - 9234, - 9235, - 0, - 0, - 9237, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9238, - 9240, - 0, - 0, - 9241, - 0, - 0, - 0, - 0, - 9244, - 0, - 0, - 0, - 0, - 9247, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9248, - 0, - 0, - 0, - 9249, - 0, - 0, - 0, - 0, - 0, - 9250, - 0, - 0, - 0, - 0, - 9251, - 0, - 0, - 9252, - 9255, - 0, - 0, - 0, - 9256, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9257, - 0, - 0, - 9258, - 0, - 0, - 0, - 0, - 0, - 0, - 9259, - 0, - 0, - 0, - 0, - 0, - 9262, - 9263, - 0, - 0, - 9265, - 9266, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9268, - 9271, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9273, - 0, - 0, - 0, - 9276, - 9277, - 9279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9280, - 0, - 0, - 9293, - 0, - 0, - 0, - 0, - 0, - 9297, - 9301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9308, - 9309, - 9313, - 9321, - 9322, - 0, - 9326, - 9327, - 0, - 0, - 9477, - 0, - 9479, - 0, - 0, - 0, - 0, - 9482, - 0, - 0, - 0, - 9483, - 0, - 9484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9485, - 0, - 0, - 9486, - 0, - 0, - 0, - 9489, - 0, - 0, - 0, - 0, - 9490, - 9491, - 0, - 0, - 0, - 0, - 9493, - 0, - 9495, - 9496, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9500, - 0, - 9502, - 0, - 0, - 0, - 0, - 0, - 9504, - 9507, - 0, - 9509, - 0, - 9511, - 0, - 0, - 9513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9515, - 0, - 0, - 0, - 0, - 0, - 0, - 9516, - 9517, - 0, - 0, - 0, - 0, - 9532, - 0, - 0, - 9533, - 0, - 0, - 9538, - 0, - 9539, - 9540, - 0, - 0, - 0, - 0, - 9541, - 0, - 0, - 0, - 9542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9544, - 9545, - 0, - 9546, - 0, - 0, - 0, - 0, - 0, - 0, - 9547, - 9548, - 0, - 0, - 0, - 9550, - 0, - 9557, - 0, - 9558, - 0, - 9561, - 0, - 9563, - 9570, - 0, - 9572, - 9574, - 9575, - 0, - 0, - 0, - 9577, - 9592, - 0, - 0, - 9596, - 0, - 0, - 0, - 9598, - 0, - 9600, - 0, - 9601, - 0, - 0, - 0, - 0, - 0, - 0, - 9608, - 0, - 9638, - 9639, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9641, - 0, - 0, - 9643, - 9644, - 9645, - 9646, - 0, - 0, - 0, - 9648, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9650, - 9654, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9655, - 0, - 0, - 0, - 0, - 0, - 9656, - 0, - 9657, - 0, - 0, - 0, - 0, - 9658, - 0, - 0, - 9659, - 0, - 0, - 9664, - 0, - 0, - 9665, - 0, - 9667, - 9669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9671, - 0, - 9673, - 9681, - 0, - 0, - 0, - 0, - 9682, - 9683, - 9684, - 0, - 0, - 0, - 0, - 9686, - 9698, - 0, - 0, - 9700, - 9701, - 9702, - 0, - 9703, - 9717, - 0, - 0, - 0, - 0, - 9718, - 0, - 9726, - 0, - 0, - 0, - 0, - 9727, - 0, - 0, - 0, - 9728, - 0, - 9742, - 0, - 9744, - 0, - 0, - 0, - 9750, - 0, - 9754, - 9755, - 0, - 0, - 0, - 0, - 0, - 9756, - 0, - 9757, - 9768, - 0, - 9769, - 0, - 0, - 0, - 9770, - 9771, - 0, - 9773, - 0, - 9774, - 0, - 9775, - 0, - 0, - 0, - 9776, - 9777, - 9784, - 0, - 0, - 0, - 9786, - 0, - 9789, - 0, - 0, - 0, - 0, - 9793, - 9794, - 0, - 0, - 0, - 9808, - 0, - 0, - 0, - 0, - 0, - 9811, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9812, - 0, - 9820, - 0, - 9823, - 0, - 9828, - 0, - 0, - 0, - 0, - 9830, - 0, - 0, - 9833, - 9836, - 0, - 0, - 0, - 9840, - 0, - 0, - 0, - 9841, - 0, - 0, - 9842, - 0, - 9845, - 0, - 0, - 0, - 9847, - 9848, - 0, - 0, - 9855, - 0, - 0, - 0, - 0, - 0, - 0, - 9856, - 9863, - 9865, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9866, - 9867, - 9868, - 9873, - 9875, - 0, - 0, - 0, - 0, - 0, - 0, - 9880, - 0, - 9886, - 0, - 0, - 0, - 9887, - 0, - 0, - 9891, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9906, - 9907, - 9908, - 0, - 0, - 0, - 9909, - 0, - 0, - 0, - 0, - 0, - 0, - 9910, - 0, - 0, - 0, - 0, - 9913, - 0, - 0, - 0, - 0, - 9914, - 0, - 0, - 0, - 0, - 0, - 9922, - 0, - 0, - 0, - 0, - 9923, - 9925, - 0, - 0, - 0, - 0, - 0, - 0, - 9930, - 0, - 0, - 0, - 9931, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9932, - 0, - 9939, - 0, - 0, - 9940, - 9962, - 9966, - 0, - 9969, - 9970, - 0, - 0, - 9974, - 0, - 9979, - 9981, - 9982, - 0, - 0, - 0, - 9985, - 0, - 0, - 0, - 0, - 0, - 0, - 9987, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9988, - 9993, - 0, - 0, - 9994, - 0, - 0, - 0, - 9997, - 0, - 10004, - 0, - 0, - 0, - 0, - 0, - 10007, - 10019, - 10020, - 10022, - 0, - 0, - 0, - 10031, - 0, - 0, - 0, - 0, - 0, - 10032, - 0, - 0, - 10034, - 0, - 10036, - 0, - 0, - 0, - 0, - 10038, - 0, - 10039, - 10040, - 10041, - 10042, - 0, - 0, - 0, - 0, - 0, - 10043, - 0, - 0, - 0, - 0, - 0, - 10045, - 10054, - 0, - 0, - 0, - 0, - 10055, - 0, - 0, - 10057, - 10058, - 0, - 0, - 0, - 0, - 0, - 0, - 10059, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10060, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10063, - 0, - 10066, - 0, - 0, - 0, - 10070, - 0, - 10072, - 0, - 0, - 10076, - 10077, - 0, - 0, - 10084, - 0, - 10087, - 10090, - 10091, - 0, - 0, - 0, - 10094, - 10097, - 0, - 0, - 0, - 0, - 0, - 0, - 10098, - 0, - 0, - 0, - 0, - 0, - 0, - 10103, - 0, - 10104, - 0, - 10108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10120, - 0, - 0, - 0, - 10122, - 0, - 0, - 10125, - 0, - 0, - 0, - 0, - 10127, - 10128, - 0, - 0, - 10134, - 0, - 10135, - 10136, - 0, - 10137, - 0, - 0, - 10147, - 0, - 10149, - 10150, - 0, - 0, - 10156, - 0, - 10158, - 10159, - 10160, - 10168, - 0, - 0, - 10171, - 0, - 10173, - 0, - 0, - 0, - 10176, - 0, - 0, - 0, - 0, - 10177, - 0, - 0, - 0, - 0, - 10178, - 0, - 0, - 0, - 0, - 10194, - 0, - 10202, - 0, - 0, - 10203, - 10204, - 0, - 10205, - 10206, - 0, - 10207, - 0, - 0, - 0, - 0, - 10209, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10213, - 0, - 0, - 0, - 0, - 0, - 0, - 10217, - 0, - 10229, - 0, - 10230, - 10231, - 0, - 0, - 10232, - 0, - 0, - 10237, - 10238, - 10244, - 0, - 0, - 0, - 0, - 0, - 10250, - 0, - 10252, - 0, - 0, - 0, - 0, - 0, - 0, - 10255, - 0, - 0, - 10257, - 0, - 0, - 0, - 0, - 0, - 0, - 10258, - 0, - 10259, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10260, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10284, - 10288, - 10289, - 0, - 0, - 0, - 10290, - 0, - 10296, - 0, - 0, - 0, - 0, - 0, - 10297, - 0, - 0, - 0, - 0, - 0, - 0, - 10298, - 0, - 0, - 0, - 0, - 10299, - 10303, - 0, - 0, - 0, - 0, - 0, - 10306, - 0, - 0, - 0, - 10307, - 0, - 10308, - 0, - 0, - 0, - 0, - 10311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10315, - 10317, - 0, - 0, - 0, - 10318, - 10319, - 0, - 10321, - 0, - 10326, - 0, - 10328, - 0, - 0, - 0, - 0, - 10329, - 0, - 0, - 10331, - 0, - 10332, - 0, - 0, - 0, - 0, - 0, - 0, - 10334, - 0, - 0, - 10335, - 10338, - 0, - 0, - 0, - 0, - 0, - 10339, - 10349, - 0, - 0, - 0, - 0, - 0, - 0, - 10351, - 0, - 10353, - 0, - 0, - 0, - 0, - 0, - 0, - 10362, - 0, - 10368, - 0, - 10369, - 0, - 0, - 0, - 10372, - 10373, - 0, - 0, - 0, - 0, - 0, - 10374, - 0, - 0, - 0, - 10375, - 0, - 10376, - 0, - 0, - 10386, - 10388, - 10390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10391, - 0, - 0, - 10392, - 10394, - 0, - 0, - 10396, - 0, - 10397, - 0, - 10403, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10404, - 0, - 10405, - 10410, - 0, - 0, - 10411, - 0, - 10412, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10421, - 10422, - 10423, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10425, - 0, - 0, - 10427, - 0, - 0, - 10430, - 0, - 0, - 0, - 0, - 0, - 10432, - 0, - 10433, - 10434, - 0, - 0, - 0, - 0, - 10436, - 10437, - 0, - 10438, - 0, - 10439, - 0, - 10444, - 10446, - 0, - 0, - 0, - 0, - 0, - 10448, - 0, - 0, - 0, - 0, - 0, - 10449, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10451, - 0, - 10453, - 0, - 0, - 0, - 10454, - 10457, - 0, - 0, - 10459, - 0, - 10469, - 0, - 0, - 0, - 0, - 0, - 10472, - 10481, - 0, - 0, - 0, - 0, - 0, - 10482, - 10483, - 0, - 10492, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10499, - 0, - 0, - 0, - 10502, - 0, - 0, - 10510, - 0, - 10521, - 10524, - 0, - 0, - 10525, - 10526, - 10528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10530, - 0, - 0, - 0, - 0, - 10533, - 0, - 10534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10535, - 10536, - 0, - 0, - 10544, - 0, - 10553, - 10556, - 0, - 10557, - 10559, - 0, - 0, - 0, - 0, - 0, - 10562, - 10563, - 10564, - 0, - 10565, - 0, - 0, - 0, - 10566, - 0, - 10567, - 0, - 0, - 0, - 0, - 10575, - 0, - 0, - 10576, - 0, - 10578, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10585, - 10586, - 10587, - 10589, - 0, - 10590, - 0, - 0, - 10594, - 0, - 0, - 0, - 0, - 0, - 10598, - 0, - 0, - 10601, - 0, - 0, - 0, - 10602, - 0, - 10603, - 0, - 10604, - 0, - 10605, - 0, - 0, - 10607, - 0, - 10626, - 0, - 10627, - 0, - 0, - 0, - 0, - 0, - 10629, - 10630, - 10631, - 0, - 0, - 0, - 10646, - 0, - 0, - 0, - 10647, - 0, - 10650, - 0, - 10651, - 0, - 0, - 0, - 10652, - 10653, - 10655, - 0, - 10658, - 0, - 0, - 10659, - 0, - 10667, - 0, - 0, - 0, - 0, - 10669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10670, - 0, - 0, - 0, - 10671, - 0, - 0, - 0, - 0, - 10672, - 10673, - 0, - 10674, - 0, - 0, - 0, - 10676, - 0, - 0, - 0, - 0, - 0, - 0, - 10678, - 0, - 10682, - 0, - 0, - 10692, - 0, - 10697, - 0, - 0, - 0, - 0, - 10698, - 0, - 0, - 0, - 10700, - 0, - 0, - 0, - 0, - 0, - 10703, - 0, - 10704, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10705, - 0, - 10715, - 10718, - 10720, - 0, - 0, - 10722, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10723, - 0, - 0, - 0, - 0, - 10726, - 0, - 0, - 0, - 0, - 0, - 10727, - 10730, - 10743, - 0, - 0, - 0, - 0, - 0, - 0, - 10744, - 0, - 0, - 10745, - 0, - 0, - 0, - 0, - 0, - 0, - 10748, - 0, - 0, - 0, - 0, - 10750, - 0, - 0, - 10752, - 10753, - 0, - 0, - 0, - 10756, - 0, - 0, - 0, - 0, - 0, - 0, - 10758, - 0, - 0, - 0, - 10759, - 0, - 10769, - 0, - 0, - 10772, - 0, - 0, - 0, - 0, - 0, - 0, - 10773, - 0, - 0, - 0, - 10777, - 0, - 0, - 10779, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10780, - 10784, - 0, - 0, - 0, - 10789, - 0, - 0, - 0, - 10791, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10795, - 0, - 0, - 10796, - 0, - 10808, - 0, - 10809, - 0, - 0, - 0, - 10810, - 0, - 0, - 0, - 10812, - 0, - 0, - 10814, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10815, - 0, - 0, - 0, - 0, - 10816, - 10817, - 0, - 0, - 0, - 0, - 10819, - 0, - 10820, - 0, - 0, - 0, - 0, - 10821, - 10822, - 10823, - 0, - 10826, - 10849, - 0, - 0, - 0, - 0, - 10850, - 0, - 0, - 10852, - 0, - 10853, - 0, - 0, - 10856, - 0, - 0, - 10857, - 10858, - 10859, - 10860, - 0, - 0, - 0, - 0, - 0, - 0, - 10863, - 0, - 10866, - 10867, - 10872, - 10890, - 0, - 0, - 10891, - 10892, - 0, - 0, - 0, - 0, - 0, - 10893, - 0, - 0, - 0, - 10896, - 10899, - 0, - 0, - 10900, - 10902, - 0, - 0, - 0, - 0, - 0, - 10903, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10905, - 0, - 10906, - 0, - 0, - 0, - 0, - 10908, - 10911, - 0, - 10912, - 0, - 0, - 10916, - 0, - 0, - 0, - 0, - 0, - 10917, - 0, - 10918, - 0, - 0, - 0, - 10923, - 0, - 0, - 0, - 0, - 0, - 10924, - 0, - 0, - 10928, - 10929, - 0, - 0, - 10930, - 0, - 0, - 0, - 10932, - 0, - 0, - 0, - 0, - 10939, - 0, - 0, - 10945, - 0, - 0, - 0, - 10947, - 0, - 0, - 10948, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10958, - 0, - 10960, - 10962, - 0, - 0, - 10964, - 0, - 0, - 0, - 10966, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10967, - 0, - 0, - 0, - 10968, - 0, - 0, - 0, - 10973, - 0, - 0, - 0, - 0, - 0, - 10975, - 0, - 0, - 0, - 10976, - 10978, - 0, - 0, - 10982, - 10984, - 10987, - 0, - 0, - 10988, - 0, - 10989, - 0, - 0, - 10991, - 0, - 0, - 0, - 0, - 10992, - 0, - 0, - 0, - 10993, - 0, - 10995, - 0, - 0, - 0, - 10996, - 10997, - 0, - 0, - 0, - 10998, - 0, - 10999, - 0, - 11001, - 0, - 0, - 0, - 0, - 0, - 0, - 11010, - 11012, - 0, - 11013, - 11016, - 11017, - 0, - 0, - 11019, - 11020, - 11021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11022, - 0, - 0, - 11023, - 11029, - 0, - 0, - 0, - 0, - 11031, - 0, - 0, - 0, - 11034, - 0, - 0, - 0, - 0, - 11055, - 0, - 0, - 0, - 0, - 0, - 11056, - 11060, - 0, - 0, - 0, - 0, - 0, - 0, - 11061, - 0, - 0, - 11064, - 11065, - 0, - 11066, - 0, - 11069, - 0, - 11085, - 0, - 0, - 0, - 0, - 0, - 11086, - 0, - 0, - 0, - 11088, - 0, - 0, - 0, - 11094, - 0, - 0, - 0, - 11095, - 11096, - 0, - 0, - 0, - 0, - 0, - 0, - 11097, - 11098, - 0, - 0, - 0, - 0, - 0, - 0, - 11099, - 0, - 0, - 11102, - 11108, - 0, - 0, - 0, - 11109, - 0, - 11114, - 11119, - 0, - 11131, - 0, - 0, - 0, - 11142, - 0, - 0, - 11143, - 0, - 11146, - 0, - 11147, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11148, - 0, - 11149, - 11152, - 11153, - 11154, - 0, - 11156, - 0, - 11157, - 0, - 0, - 0, - 11158, - 0, - 0, - 11159, - 11160, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11163, - 0, - 0, - 11164, - 11166, - 0, - 0, - 0, - 11172, - 11174, - 0, - 0, - 0, - 11176, - 0, - 0, - 0, - 0, - 0, - 11182, - 11183, - 0, - 0, - 0, - 11184, - 11187, - 0, - 0, - 11188, - 11189, - 0, - 0, - 0, - 0, - 0, - 0, - 11194, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11200, - 11202, - 0, - 0, - 0, - 0, - 0, - 0, - 11203, - 0, - 11204, - 0, - 0, - 0, - 0, - 0, - 11205, - 0, - 0, - 0, - 11206, - 0, - 11207, - 0, - 0, - 11209, - 0, - 11211, - 0, - 11214, - 0, - 0, - 11231, - 0, - 0, - 0, - 11293, - 11295, - 0, - 0, - 11296, - 11297, - 11302, - 0, - 0, - 0, - 11307, - 0, - 0, - 0, - 0, - 11309, - 11310, - 0, - 11311, - 0, - 0, - 0, - 11313, - 0, - 11314, - 0, - 0, - 0, - 0, - 11334, - 0, - 11338, - 0, - 0, - 0, - 11339, - 0, - 0, - 0, - 0, - 0, - 11340, - 0, - 11341, - 11342, - 0, - 11344, - 0, - 11345, - 0, - 0, - 0, - 11348, - 11349, - 0, - 0, - 11350, - 0, - 0, - 0, - 11355, - 0, - 0, - 0, - 0, - 0, - 0, - 11356, - 0, - 11357, - 11370, - 0, - 0, - 11371, - 0, - 11374, - 11376, - 0, - 0, - 0, - 11377, - 0, - 0, - 11378, - 11383, - 0, - 11386, - 11399, - 0, - 11400, - 11406, - 0, - 0, - 0, - 11408, - 0, - 0, - 11409, - 11412, - 0, - 0, - 0, - 0, - 11417, - 0, - 0, - 0, - 11418, - 0, - 11421, - 0, - 11426, - 11429, - 0, - 0, - 0, - 0, - 0, - 11430, - 0, - 11437, - 0, - 11438, - 0, - 0, - 0, - 0, - 0, - 11440, - 11453, - 0, - 0, - 0, - 0, - 0, - 0, - 11454, - 0, - 0, - 0, - 0, - 11455, - 0, - 0, - 11456, - 11460, - 11461, - 11463, - 0, - 11469, - 0, - 11473, - 0, - 0, - 0, - 0, - 11474, - 0, - 0, - 0, - 11475, - 0, - 11476, - 11477, - 11480, - 0, - 0, - 0, - 0, - 11481, - 0, - 0, - 11484, - 0, - 0, - 11487, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11497, - 0, - 0, - 11502, - 0, - 11509, - 0, - 0, - 11510, - 11511, - 11513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11515, - 0, - 0, - 0, - 0, - 11516, - 0, - 11520, - 11521, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11529, - 11530, - 11531, - 11534, - 0, - 0, - 11543, - 0, - 0, - 0, - 0, - 0, - 11547, - 0, - 11548, - 0, - 0, - 0, - 0, - 0, - 11552, - 11556, - 0, - 11557, - 0, - 0, - 11559, - 0, - 11560, - 0, - 0, - 0, - 0, - 0, - 0, - 11561, - 0, - 0, - 11563, - 11564, - 0, - 11565, - 0, - 0, - 0, - 0, - 11567, - 0, - 0, - 0, - 11569, - 0, - 11574, - 0, - 11575, - 0, - 0, - 0, - 11577, - 0, - 11578, - 0, - 0, - 0, - 11580, - 11581, - 0, - 0, - 0, - 11582, - 11584, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11587, - 0, - 11588, - 11591, - 0, - 11595, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11596, - 0, - 11597, - 0, - 0, - 0, - 0, - 11598, - 11601, - 0, - 0, - 0, - 11602, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11603, - 11604, - 0, - 11606, - 0, - 0, - 11608, - 0, - 0, - 0, - 0, - 11610, - 0, - 0, - 11611, - 0, - 0, - 0, - 0, - 11613, - 0, - 11622, - 0, - 0, - 0, - 11623, - 0, - 0, - 0, - 0, - 11625, - 0, - 0, - 11626, - 11627, - 11628, - 11630, - 0, - 0, - 0, - 0, - 0, - 0, - 11639, - 0, - 0, - 11646, - 0, - 11648, - 11649, - 0, - 11650, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11651, - 0, - 0, - 11652, - 11653, - 11656, - 0, - 0, - 11677, - 11679, - 0, - 0, - 0, - 0, - 11680, - 0, - 0, - 11681, - 0, - 11685, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11688, - 0, - 0, - 0, - 11716, - 0, - 11719, - 0, - 0, - 0, - 0, - 0, - 11721, - 0, - 0, - 11724, - 11743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11745, - 11748, - 11750, - 0, - 0, - 0, - 0, - 0, - 11751, - 0, - 0, - 0, - 11752, - 11754, - 0, - 11755, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11759, - 0, - 0, - 0, - 0, - 0, - 0, - 11760, - 0, - 0, - 0, - 11761, - 0, - 0, - 0, - 0, - 0, - 0, - 11766, - 11767, - 0, - 11772, - 11773, - 0, - 11774, - 0, - 0, - 11775, - 0, - 11777, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11778, - 11780, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11783, - 0, - 11784, - 0, - 0, - 0, - 11785, - 0, - 0, - 0, - 11786, - 0, - 0, - 0, - 0, - 11788, - 0, - 0, - 11789, - 11791, - 11792, - 0, - 0, - 0, - 0, - 11795, - 11834, - 11835, - 11836, - 0, - 0, - 11837, - 0, - 0, - 0, - 11838, - 0, - 0, - 11846, - 11851, - 0, - 11852, - 0, - 11869, - 0, - 0, - 0, - 11871, - 0, - 0, - 0, - 11872, - 11874, - 0, - 0, - 0, - 0, - 0, - 0, - 11875, - 0, - 11876, - 11877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11883, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11884, - 0, - 11885, - 0, - 11886, - 0, - 0, - 11887, - 0, - 11894, - 11895, - 11897, - 11909, - 11910, - 0, - 11912, - 11918, - 0, - 0, - 11920, - 0, - 11922, - 11924, - 11927, - 11928, - 0, - 0, - 0, - 0, - 11929, - 0, - 11934, - 0, - 0, - 0, - 0, - 0, - 11941, - 11943, - 11944, - 0, - 11945, - 0, - 0, - 0, - 0, - 11948, - 11949, - 0, - 0, - 0, - 0, - 11953, - 0, - 11954, - 0, - 11955, - 0, - 11956, - 0, - 0, - 0, - 0, - 0, - 11957, - 0, - 0, - 11959, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11961, - 0, - 0, - 0, - 0, - 0, - 11978, - 0, - 0, - 0, - 11979, - 11980, - 11986, - 11987, - 0, - 11992, - 0, - 0, - 0, - 0, - 0, - 11993, - 0, - 0, - 0, - 11994, - 0, - 11999, - 12004, - 12005, - 12006, - 0, - 0, - 0, - 0, - 0, - 12011, - 0, - 0, - 12012, - 12014, - 0, - 0, - 12015, - 0, - 0, - 12019, - 12028, - 0, - 0, - 12029, - 0, - 0, - 12032, - 12033, - 0, - 0, - 0, - 0, - 12034, - 0, - 12041, - 12043, - 0, - 0, - 12044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12054, - 12055, - 0, - 12056, - 0, - 0, - 0, - 12060, - 12064, - 0, - 0, - 0, - 0, - 0, - 12065, - 12067, - 12068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12074, - 0, - 0, - 0, - 12075, - 12076, - 0, - 0, - 0, - 12079, - 0, - 12081, - 12086, - 12087, - 0, - 0, - 12088, - 0, - 0, - 0, - 0, - 12089, - 0, - 12092, - 0, - 0, - 0, - 0, - 12097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12098, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12102, - 12103, - 12104, - 12111, - 0, - 0, - 12114, - 12116, - 0, - 0, - 0, - 12118, - 0, - 0, - 0, - 12119, - 12120, - 12128, - 0, - 0, - 0, - 0, - 12130, - 0, - 0, - 0, - 0, - 0, - 0, - 12131, - 0, - 0, - 0, - 12132, - 12134, - 0, - 0, - 0, - 0, - 12137, - 0, - 12139, - 0, - 12141, - 0, - 0, - 12142, - 0, - 0, - 0, - 12144, - 0, - 0, - 0, - 0, - 0, - 12145, - 0, - 12148, - 0, - 12153, - 0, - 0, - 0, - 0, - 12154, - 12171, - 12173, - 0, - 0, - 0, - 12175, - 0, - 0, - 0, - 0, - 12178, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12183, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12184, - 0, - 0, - 0, - 12186, - 0, - 0, - 0, - 0, - 0, - 12187, - 12188, - 0, - 0, - 12189, - 0, - 12196, - 0, - 12197, - 0, - 0, - 12198, - 0, - 12201, - 0, - 0, - 0, - 0, - 12203, - 0, - 12209, - 0, - 0, - 0, - 0, - 12210, - 12211, - 12212, - 12213, - 0, - 12217, - 12218, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12223, - 0, - 0, - 12229, - 0, - 0, - 0, - 0, - 12233, - 0, - 0, - 0, - 0, - 12234, - 0, - 0, - 12236, - 12242, - 0, - 0, - 0, - 12243, - 0, - 0, - 0, - 12244, - 12253, - 0, - 12254, - 12256, - 0, - 12257, - 0, - 0, - 12275, - 0, - 0, - 0, - 0, - 0, - 12277, - 0, - 0, - 0, - 0, - 0, - 12278, - 0, - 12289, - 0, - 0, - 12290, - 0, - 12292, - 12293, - 0, - 0, - 12294, - 0, - 12295, - 0, - 0, - 12296, - 0, - 12297, - 0, - 12298, - 0, - 0, - 0, - 0, - 12301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12309, - 0, - 12338, - 12340, - 0, - 0, - 0, - 0, - 12341, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12342, - 12343, - 0, - 12344, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12345, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12346, - 0, - 0, - 0, - 0, - 12348, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12351, - 0, - 12355, - 12356, - 12357, - 0, - 0, - 12367, - 12370, - 12371, - 0, - 0, - 0, - 0, - 0, - 12372, - 12376, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12379, - 0, - 12382, - 0, - 12383, - 0, - 0, - 12384, - 0, - 0, - 0, - 0, - 12393, - 0, - 0, - 12394, - 0, - 0, - 0, - 0, - 12398, - 12403, - 0, - 0, - 12404, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12410, - 0, - 0, - 0, - 12411, - 0, - 0, - 0, - 12412, - 0, - 0, - 0, - 0, - 12420, - 0, - 12421, - 0, - 0, - 0, - 0, - 0, - 12423, - 0, - 12425, - 12429, - 0, - 0, - 0, - 12431, - 12432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12434, - 0, - 0, - 0, - 0, - 0, - 12435, - 12436, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12437, - 0, - 0, - 0, - 0, - 0, - 12438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12445, - 0, - 0, - 0, - 12450, - 12451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12452, - 12475, - 0, - 0, - 12493, - 12494, - 0, - 0, - 0, - 12495, - 0, - 0, - 0, - 0, - 12496, - 12502, - 12509, - 0, - 0, - 0, - 0, - 12510, - 0, - 12512, - 12513, - 0, - 0, - 0, - 0, - 12514, - 0, - 0, - 0, - 12515, - 0, - 12520, - 0, - 0, - 0, - 12524, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12527, - 0, - 0, - 0, - 12528, - 0, - 0, - 0, - 12529, - 0, - 0, - 0, - 0, - 0, - 12530, - 0, - 12535, - 0, - 0, - 12536, - 0, - 12538, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12540, - 0, - 12548, - 0, - 0, - 0, - 0, - 0, - 12550, - 0, - 0, - 0, - 12551, - 12552, - 0, - 0, - 0, - 12554, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12555, - 0, - 0, - 12562, - 0, - 12565, - 0, - 12566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12569, - 0, - 0, - 0, - 12571, - 12574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12577, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12578, - 12579, - 12603, - 0, - 12608, - 0, - 0, - 12611, - 0, - 12612, - 0, - 12615, - 0, - 12625, - 0, - 0, - 0, - 0, - 12627, - 12646, - 0, - 12648, - 0, - 0, - 12657, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12670, - 0, - 0, - 12671, - 0, - 12673, - 12677, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12679, - 0, - 12681, - 0, - 12682, - 12693, - 0, - 12694, - 0, - 12697, - 0, - 12701, - 0, - 0, - 0, - 12703, - 12704, - 0, - 0, - 0, - 0, - 12707, - 12737, - 0, - 0, - 12739, - 0, - 0, - 12740, - 0, - 0, - 12742, - 12743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12745, - 0, - 12746, - 12747, - 0, - 12748, - 0, - 0, - 12759, - 12767, - 0, - 0, - 0, - 0, - 12773, - 0, - 12774, - 12778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12779, - 0, - 0, - 0, - 0, - 0, - 12780, - 12793, - 0, - 12824, - 0, - 12825, - 0, - 12836, - 0, - 0, - 0, - 0, - 12839, - 0, - 12842, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12843, - 12845, - 0, - 12846, - 0, - 0, - 0, - 0, - 12847, - 0, - 0, - 12850, - 12852, - 12853, - 0, - 0, - 0, - 12854, - 0, - 0, - 0, - 12855, - 0, - 12856, - 0, - 12858, - 0, - 0, - 12859, - 0, - 12862, - 0, - 12863, - 0, - 0, - 12866, - 0, - 12869, - 12872, - 12873, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12875, - 0, - 12877, - 0, - 0, - 12878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12884, - 12885, - 12888, - 0, - 12889, - 0, - 0, - 0, - 0, - 12893, - 0, - 0, - 0, - 12895, - 12896, - 12898, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12902, - 0, - 12909, - 12910, - 0, - 12926, - 0, - 12928, - 0, - 0, - 0, - 12929, - 0, - 12930, - 0, - 0, - 0, - 0, - 12931, - 0, - 12932, - 12933, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12934, - 0, - 12942, - 0, - 0, - 0, - 0, - 12944, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12946, - 0, - 0, - 12948, - 0, - 0, - 12949, - 0, - 0, - 0, - 0, - 12950, - 0, - 0, - 0, - 0, - 12951, - 0, - 12952, - 0, - 12953, - 0, - 0, - 0, - 12954, - 12958, - 12959, - 0, - 0, - 0, - 0, - 0, - 12960, - 12964, - 0, - 0, - 0, - 0, - 0, - 12966, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12970, - 0, - 12971, - 0, - 0, - 0, - 0, - 0, - 0, - 12972, - 0, - 0, - 12982, - 0, - 0, - 0, - 12984, - 12985, - 0, - 12986, - 12996, - 12997, - 13001, - 13002, - 0, - 0, - 0, - 0, - 13004, - 0, - 0, - 13005, - 0, - 0, - 13007, - 13009, - 0, - 13017, - 0, - 0, - 0, - 13020, - 0, - 13021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13022, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13024, - 13027, - 0, - 0, - 0, - 0, - 0, - 13028, - 0, - 0, - 13029, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13032, - 0, - 13037, - 0, - 0, - 0, - 0, - 0, - 0, - 13040, - 0, - 0, - 13041, - 0, - 0, - 0, - 13043, - 13044, - 13046, - 0, - 0, - 0, - 0, - 13047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13049, - 13054, - 0, - 13056, - 0, - 0, - 13060, - 13061, - 0, - 0, - 0, - 0, - 0, - 13067, - 0, - 0, - 13068, - 0, - 13071, - 0, - 0, - 0, - 0, - 0, - 13077, - 13078, - 0, - 0, - 0, - 0, - 0, - 13079, - 13080, - 13081, - 0, - 13082, - 0, - 0, - 0, - 13085, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13086, - 0, - 13087, - 13088, - 0, - 0, - 0, - 0, - 0, - 13094, - 0, - 13099, - 0, - 13100, - 0, - 0, - 0, - 13101, - 0, - 13125, - 13126, - 13128, - 13129, - 0, - 0, - 13130, - 0, - 13131, - 0, - 0, - 0, - 0, - 0, - 0, - 13134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13150, - 0, - 13168, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13169, - 0, - 0, - 13170, - 0, - 0, - 0, - 0, - 13174, - 0, - 0, - 0, - 13176, - 0, - 0, - 0, - 0, - 0, - 13177, - 0, - 13178, - 13183, - 13187, - 0, - 0, - 0, - 13189, - 0, - 0, - 13190, - 0, - 0, - 13191, - 0, - 0, - 13206, - 0, - 0, - 0, - 13207, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13212, - 0, - 0, - 13219, - 13232, - 0, - 0, - 0, - 13241, - 0, - 13249, - 13253, - 0, - 0, - 0, - 0, - 0, - 13255, - 13259, - 0, - 13260, - 13261, - 0, - 13262, - 0, - 13272, - 0, - 0, - 0, - 0, - 13276, - 0, - 0, - 0, - 0, - 13277, - 13299, - 0, - 0, - 13301, - 13302, - 0, - 0, - 13303, - 0, - 0, - 13305, - 0, - 13310, - 0, - 0, - 0, - 13311, - 0, - 0, - 0, - 0, - 13325, - 0, - 13328, - 0, - 0, - 0, - 13329, - 0, - 0, - 0, - 0, - 0, - 0, - 13330, - 0, - 0, - 13331, - 0, - 13335, - 0, - 0, - 13342, - 0, - 0, - 0, - 0, - 0, - 13343, - 0, - 13354, - 0, - 13362, - 0, - 13366, - 13367, - 13369, - 0, - 0, - 13371, - 13372, - 0, - 13373, - 13374, - 0, - 13376, - 0, - 13380, - 13381, - 13386, - 0, - 13387, - 13388, - 0, - 13389, - 13391, - 13395, - 0, - 0, - 0, - 0, - 0, - 13401, - 13409, - 0, - 13410, - 0, - 0, - 0, - 0, - 13420, - 0, - 0, - 0, - 0, - 0, - 13422, - 0, - 0, - 0, - 0, - 13423, - 0, - 0, - 0, - 0, - 13425, - 0, - 0, - 0, - 0, - 0, - 13427, - 0, - 0, - 0, - 13428, - 0, - 0, - 13430, - 13438, - 0, - 13439, - 0, - 13445, - 0, - 13448, - 13449, - 0, - 0, - 0, - 0, - 0, - 0, - 13451, - 0, - 13457, - 0, - 0, - 0, - 0, - 13458, - 13459, - 0, - 13460, - 0, - 0, - 0, - 0, - 13464, - 13465, - 13466, - 13470, - 0, - 13471, - 13472, - 13474, - 13475, - 0, - 13476, - 0, - 0, - 13478, - 13479, - 0, - 13481, - 0, - 0, - 0, - 0, - 13487, - 0, - 13490, - 0, - 13493, - 0, - 0, - 13494, - 0, - 0, - 13495, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13496, - 13497, - 0, - 13500, - 0, - 0, - 13516, - 13522, - 0, - 0, - 13525, - 13528, - 0, - 0, - 0, - 13530, - 13535, - 0, - 13537, - 13539, - 0, - 13540, - 0, - 13543, - 0, - 13544, - 0, - 0, - 0, - 0, - 0, - 0, - 13545, - 0, - 0, - 0, - 0, - 0, - 0, - 13547, - 0, - 0, - 0, - 13549, - 13555, - 0, - 0, - 0, - 13556, - 13557, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13558, - 0, - 13563, - 0, - 0, - 0, - 0, - 13564, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13566, - 0, - 0, - 0, - 0, - 0, - 0, - 13569, - 0, - 0, - 13571, - 0, - 0, - 0, - 0, - 13573, - 0, - 0, - 0, - 0, - 0, - 0, - 13578, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13581, - 0, - 13586, - 0, - 13595, - 0, - 13600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13601, - 13603, - 0, - 13604, - 13605, - 13606, - 13607, - 0, - 0, - 13617, - 13618, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13623, - 0, - 13625, - 13627, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13629, - 0, - 0, - 0, - 13634, - 0, - 0, - 0, - 13638, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13654, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13656, - 0, - 13659, - 0, - 0, - 13660, - 0, - 0, - 13662, - 0, - 0, - 0, - 13663, - 0, - 13664, - 0, - 0, - 0, - 0, - 0, - 13668, - 0, - 13669, - 13671, - 0, - 0, - 13672, - 0, - 0, - 0, - 0, - 0, - 0, - 13675, - 13685, - 0, - 13686, - 0, - 0, - 0, - 13687, - 0, - 0, - 0, - 13692, - 13694, - 13697, - 0, - 0, - 0, - 13702, - 0, - 0, - 0, - 0, - 0, - 13705, - 0, - 0, - 0, - 0, - 13707, - 0, - 0, - 0, - 13714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13715, - 0, - 13716, - 13717, - 0, - 0, - 13719, - 13724, - 13730, - 13731, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13732, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13734, - 0, - 13736, - 0, - 0, - 13737, - 13738, - 13747, - 0, - 13751, - 0, - 0, - 13752, - 0, - 0, - 0, - 13753, - 0, - 13757, - 0, - 0, - 13762, - 13763, - 0, - 13764, - 13765, - 0, - 13766, - 0, - 0, - 13767, - 0, - 0, - 0, - 13768, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13769, - 0, - 0, - 13772, - 0, - 13775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13776, - 13778, - 13787, - 0, - 0, - 0, - 13797, - 0, - 13798, - 0, - 13801, - 0, - 13804, - 13806, - 0, - 0, - 0, - 0, - 13816, - 13817, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13834, - 0, - 13836, - 0, - 0, - 13838, - 0, - 0, - 13839, - 0, - 13840, - 0, - 0, - 0, - 0, - 13842, - 0, - 0, - 0, - 0, - 0, - 0, - 13843, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13845, - 0, - 0, - 0, - 0, - 0, - 13858, - 0, - 0, - 13860, - 0, - 0, - 13861, - 0, - 0, - 13862, - 13863, - 0, - 13868, - 0, - 13869, - 13870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13872, - 0, - 0, - 0, - 0, - 13873, - 13878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13886, - 0, - 13888, - 13889, - 13890, - 0, - 0, - 13891, - 13894, - 0, - 13897, - 13899, - 13900, - 13904, - 0, - 0, - 13906, - 0, - 0, - 0, - 13909, - 0, - 0, - 0, - 13910, - 0, - 0, - 0, - 13911, - 0, - 0, - 0, - 0, - 0, - 13912, - 13917, - 0, - 0, - 0, - 0, - 13918, - 0, - 13919, - 0, - 0, - 13920, - 0, - 0, - 0, - 13921, - 0, - 0, - 13922, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13924, - 0, - 13927, - 0, - 0, - 0, - 0, - 0, - 13932, - 0, - 13933, - 0, - 13934, - 0, - 0, - 13935, - 0, - 13944, - 0, - 0, - 0, - 13954, - 0, - 0, - 13955, - 0, - 0, - 0, - 0, - 13956, - 0, - 13957, - 0, - 13967, - 13969, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13970, - 13990, - 0, - 13991, - 13994, - 0, - 13995, - 0, - 0, - 0, - 0, - 13996, - 0, - 0, - 13999, - 0, - 0, - 0, - 14018, - 0, - 14019, - 0, - 14021, - 0, - 0, - 0, - 0, - 0, - 0, - 14041, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14043, - 0, - 0, - 0, - 0, - 14046, - 0, - 0, - 0, - 14048, - 14049, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14051, - 0, - 0, - 14052, - 14056, - 0, - 14063, - 0, - 14064, - 14066, - 0, - 0, - 14067, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14068, - 0, - 0, - 0, - 14072, - 0, - 14074, - 14075, - 0, - 14076, - 14079, - 14085, - 14086, - 14087, - 14093, - 0, - 0, - 0, - 0, - 14095, - 0, - 0, - 0, - 0, - 0, - 0, - 14096, - 14097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14098, - 0, - 14102, - 0, - 0, - 0, - 0, - 0, - 14103, - 0, - 0, - 0, - 14104, - 0, - 0, - 14105, - 0, - 0, - 0, - 14107, - 14108, - 0, - 0, - 14109, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14117, - 0, - 0, - 0, - 0, - 14118, - 0, - 0, - 0, - 0, - 14119, - 0, - 0, - 14120, - 0, - 0, - 14121, - 0, - 14122, - 14127, - 0, - 14128, - 14136, - 0, - 0, - 14138, - 0, - 14140, - 0, - 0, - 0, - 14141, - 14142, - 0, - 0, - 0, - 0, - 14146, - 0, - 0, - 14149, - 0, - 14151, - 0, - 0, - 0, - 14152, - 0, - 0, - 14153, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14154, - 0, - 14156, - 14157, - 0, - 0, - 14159, - 0, - 14161, - 0, - 0, - 0, - 0, - 14162, - 0, - 0, - 0, - 0, - 0, - 0, - 14163, - 0, - 0, - 14173, - 0, - 0, - 0, - 0, - 0, - 0, - 14174, - 0, - 0, - 14176, - 0, - 0, - 14178, - 0, - 0, - 14179, - 14181, - 0, - 0, - 14182, - 14185, - 14187, - 0, - 14190, - 0, - 0, - 14197, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14198, - 0, - 0, - 0, - 0, - 0, - 0, - 14199, - 14200, - 0, - 0, - 0, - 14204, - 0, - 0, - 14208, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14231, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14234, - 0, - 0, - 14235, - 0, - 0, - 0, - 14240, - 14241, - 0, - 0, - 0, - 14246, - 0, - 0, - 0, - 14247, - 0, - 14250, - 0, - 0, - 14251, - 0, - 0, - 14254, - 0, - 0, - 14256, - 0, - 0, - 0, - 14260, - 0, - 14261, - 0, - 0, - 0, - 0, - 14262, - 14267, - 14269, - 0, - 0, - 14277, - 0, - 0, - 14278, - 0, - 14279, - 14282, - 0, - 0, - 0, - 14283, - 0, - 0, - 0, - 14284, - 14285, - 0, - 0, - 0, - 0, - 14286, - 0, - 0, - 0, - 14288, - 0, - 0, - 0, - 14289, - 0, - 14290, - 0, - 14293, - 14301, - 14302, - 14304, - 14305, - 0, - 14307, - 0, - 14308, - 14309, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14311, - 14312, - 0, - 0, - 14317, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14318, - 0, - 0, - 0, - 0, - 14320, - 0, - 0, - 0, - 0, - 14321, - 14322, - 0, - 0, - 0, - 0, - 0, - 14326, - 14329, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14330, - 14331, - 0, - 0, - 0, - 0, - 14332, - 0, - 0, - 0, - 14333, - 0, - 0, - 14337, - 14340, - 0, - 14341, - 0, - 0, - 14342, - 0, - 14345, - 14346, - 0, - 0, - 14347, - 0, - 14362, - 0, - 0, - 0, - 0, - 0, - 14364, - 14365, - 14371, - 0, - 14373, - 0, - 0, - 14374, - 0, - 14379, - 0, - 14400, - 0, - 0, - 0, - 0, - 0, - 14401, - 0, - 0, - 14405, - 0, - 14406, - 0, - 14408, - 14409, - 0, - 0, - 0, - 14417, - 0, - 0, - 14424, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14430, - 0, - 0, - 0, - 14431, - 0, - 0, - 14435, - 0, - 14440, - 0, - 0, - 0, - 0, - 0, - 0, - 14442, - 0, - 0, - 14443, - 0, - 0, - 0, - 0, - 0, - 14446, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14454, - 0, - 14457, - 0, - 14460, - 0, - 0, - 14466, - 0, - 0, - 0, - 0, - 0, - 14467, - 0, - 0, - 0, - 0, - 0, - 0, - 14469, - 0, - 14477, - 0, - 0, - 0, - 0, - 0, - 0, - 14478, - 14482, - 0, - 0, - 0, - 14483, - 0, - 0, - 0, - 14485, - 14486, - 0, - 0, - 0, - 14487, - 14488, - 14489, - 14492, - 14493, - 14494, - 14495, - 14496, - 14497, - 0, - 14499, - 0, - 14501, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14502, - 0, - 14507, - 14512, - 14513, - 14514, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14515, - 14526, - 14530, - 0, - 14537, - 0, - 14544, - 0, - 14547, - 0, - 0, - 14548, - 14550, - 14551, - 0, - 0, - 14552, - 0, - 0, - 0, - 14553, - 0, - 14554, - 0, - 0, - 0, - 0, - 14556, - 14564, - 0, - 0, - 14565, - 14566, - 0, - 0, - 0, - 0, - 0, - 0, - 14568, - 0, - 0, - 14569, - 0, - 0, - 0, - 14571, - 14576, - 0, - 0, - 14577, - 14578, - 14579, - 0, - 0, - 14580, - 0, - 0, - 0, - 0, - 14582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14583, - 0, - 0, - 0, - 0, - 0, - 14587, - 0, - 14588, - 0, - 0, - 14600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14601, - 0, - 0, - 14604, - 14605, - 14611, - 0, - 14613, - 0, - 0, - 0, - 0, - 14615, - 0, - 0, - 0, - 0, - 0, - 0, - 14627, - 0, - 14628, - 0, - 0, - 0, - 0, - 14631, - 0, - 14633, - 14634, - 0, - 0, - 0, - 0, - 14635, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14636, - 0, - 0, - 14639, - 14642, - 0, - 0, - 0, - 0, - 14644, - 0, - 0, - 0, - 0, - 14645, - 14646, - 0, - 14653, - 0, - 0, - 14654, - 0, - 14658, - 0, - 14661, - 0, - 0, - 0, - 14665, - 0, - 0, - 0, - 14668, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14669, - 0, - 0, - 14670, - 0, - 0, - 0, - 14680, - 0, - 0, - 14681, - 0, - 0, - 0, - 0, - 0, - 14682, - 14683, - 0, - 0, - 0, - 0, - 14686, - 0, - 0, - 0, - 0, - 14687, - 14697, - 0, - 0, - 0, - 0, - 14699, - 14705, - 14711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14712, - 0, - 0, - 0, - 14713, - 0, - 0, - 0, - 0, - 14719, - 0, - 14720, - 14721, - 14726, - 0, - 0, - 0, - 14728, - 14729, - 0, - 0, - 0, - 0, - 14731, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14733, - 14736, - 14737, - 0, - 0, - 14740, - 14742, - 0, - 0, - 0, - 14744, - 14753, - 0, - 0, - 0, - 0, - 14755, - 14758, - 14760, - 0, - 0, - 0, - 0, - 0, - 14761, - 14762, - 14765, - 14771, - 0, - 14772, - 0, - 14773, - 14774, - 0, - 0, - 14775, - 0, - 0, - 14776, - 0, - 0, - 0, - 0, - 14777, - 0, - 14779, - 0, - 0, - 14782, - 0, - 0, - 14785, - 14786, - 14788, - 0, - 0, - 0, - 0, - 0, - 14795, - 0, - 0, - 0, - 0, - 0, - 0, - 14798, - 0, - 14803, - 14804, - 14806, - 0, - 0, - 0, - 14809, - 0, - 0, - 0, - 0, - 0, - 0, - 14810, - 0, - 0, - 0, - 0, - 14811, - 0, - 14812, - 0, - 0, - 0, - 0, - 0, - 14815, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14816, - 0, - 14818, - 0, - 0, - 0, - 0, - 0, - 0, - 14819, - 0, - 14820, - 0, - 14823, - 0, - 0, - 0, - 14824, - 0, - 0, - 14826, - 14827, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14830, - 0, - 0, - 0, - 0, - 0, - 14833, - 0, - 14845, - 0, - 0, - 0, - 0, - 0, - 14846, - 0, - 0, - 14847, - 14871, - 0, - 14873, - 0, - 14876, - 0, - 14877, - 14878, - 14880, - 0, - 0, - 0, - 0, - 0, - 14881, - 0, - 14882, - 14894, - 0, - 0, - 0, - 0, - 14895, - 0, - 14907, - 0, - 14908, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14911, - 0, - 0, - 0, - 0, - 14920, - 0, - 0, - 14931, - 0, - 14932, - 14934, - 14935, - 0, - 0, - 14936, - 0, - 14945, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14947, - 0, - 0, - 14948, - 14949, - 14951, - 0, - 0, - 14952, - 0, - 0, - 0, - 14964, - 14973, - 0, - 0, - 14990, - 0, - 0, - 0, - 0, - 14995, - 0, - 0, - 14998, - 15001, - 0, - 0, - 15002, - 15020, - 0, - 0, - 0, - 0, - 0, - 0, - 15021, - 0, - 15022, - 0, - 0, - 0, - 0, - 15023, - 0, - 0, - 15025, - 15029, - 15033, - 0, - 0, - 0, - 15034, - 0, - 0, - 0, - 15035, - 0, - 0, - 0, - 0, - 0, - 15043, - 15044, - 0, - 0, - 0, - 15045, - 15046, - 15048, - 15050, - 0, - 15065, - 0, - 0, - 0, - 0, - 15066, - 0, - 0, - 15075, - 15082, - 15084, - 0, - 0, - 15085, - 15086, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15088, - 0, - 0, - 0, - 15089, - 0, - 0, - 0, - 0, - 15094, - 0, - 15096, - 0, - 15097, - 0, - 15100, - 0, - 0, - 15102, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15105, - 0, - 0, - 15106, - 0, - 15109, - 15113, - 0, - 0, - 0, - 15115, - 0, - 15118, - 0, - 0, - 0, - 0, - 0, - 0, - 15119, - 0, - 0, - 15120, - 0, - 0, - 0, - 0, - 0, - 15123, - 15129, - 0, - 0, - 0, - 15130, - 0, - 15131, - 0, - 0, - 15134, - 0, - 15135, - 0, - 0, - 0, - 15137, - 15138, - 0, - 0, - 0, - 0, - 0, - 0, - 15139, - 0, - 0, - 0, - 0, - 0, - 15140, - 0, - 0, - 15154, - 15162, - 0, - 15169, - 15170, - 0, - 15175, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15177, - 0, - 15178, - 15179, - 0, - 0, - 0, - 0, - 0, - 15183, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15185, - 15187, - 0, - 15194, - 15195, - 15196, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15204, - 0, - 0, - 0, - 0, - 15206, - 0, - 0, - 0, - 0, - 0, - 15207, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15213, - 0, - 15214, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15232, - 0, - 0, - 0, - 0, - 15234, - 0, - 15238, - 15240, - 0, - 15248, - 0, - 0, - 0, - 0, - 15250, - 15251, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15252, - 0, - 0, - 0, - 15255, - 15262, - 15266, - 0, - 0, - 0, - 15267, - 0, - 0, - 0, - 15277, - 15279, - 0, - 0, - 0, - 15280, - 15281, - 15282, - 0, - 0, - 0, - 0, - 0, - 15285, - 0, - 0, - 0, - 0, - 15289, - 0, - 0, - 15291, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15296, - 15297, - 0, - 0, - 15304, - 0, - 0, - 0, - 0, - 15306, - 0, - 0, - 0, - 0, - 0, - 0, - 15307, - 15308, - 0, - 15309, - 0, - 0, - 15311, - 0, - 0, - 15312, - 15313, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15314, - 15317, - 0, - 0, - 0, - 15318, - 15319, - 0, - 0, - 0, - 0, - 15320, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15321, - 0, - 0, - 0, - 0, - 0, - 15324, - 0, - 15325, - 15326, - 0, - 15330, - 0, - 0, - 0, - 0, - 15334, - 0, - 15335, - 0, - 15341, - 0, - 0, - 15342, - 0, - 0, - 15343, - 15344, - 0, - 0, - 0, - 0, - 15345, - 0, - 0, - 0, - 0, - 15347, - 0, - 0, - 15348, - 15349, - 15350, - 0, - 15356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15357, - 0, - 15358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15359, - 15360, - 15364, - 0, - 15380, - 0, - 0, - 0, - 0, - 0, - 15392, - 0, - 0, - 15393, - 0, - 15395, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15396, - 0, - 0, - 15397, - 15398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15399, - 0, - 15400, - 0, - 0, - 0, - 15402, - 0, - 15405, - 15410, - 0, - 0, - 0, - 0, - 15411, - 0, - 0, - 0, - 15412, - 0, - 15416, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15428, - 0, - 15435, - 0, - 0, - 15438, - 0, - 0, - 0, - 0, - 15439, - 0, - 0, - 0, - 15440, - 0, - 0, - 0, - 15441, - 15449, - 15451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15452, - 0, - 0, - 15455, - 0, - 0, - 0, - 15456, - 0, - 0, - 15458, - 0, - 15460, - 15461, - 0, - 0, - 0, - 0, - 0, - 15462, - 15464, - 0, - 15465, - 0, - 0, - 15466, - 0, - 0, - 15467, - 0, - 0, - 0, - 0, - 0, - 15468, - 0, - 0, - 0, - 0, - 15481, - 0, - 0, - 15484, - 0, - 15485, - 15486, - 0, - 0, - 0, - 15487, - 0, - 0, - 0, - 0, - 0, - 15488, - 0, - 15492, - 15498, - 0, - 0, - 0, - 15499, - 0, - 0, - 0, - 15500, - 0, - 15501, - 0, - 0, - 15512, - 0, - 15522, - 0, - 0, - 0, - 15524, - 0, - 15525, - 15526, - 0, - 0, - 15527, - 0, - 0, - 15545, - 15546, - 0, - 15548, - 15552, - 0, - 15553, - 0, - 0, - 0, - 15554, - 0, - 15555, - 0, - 15557, - 15565, - 15573, - 15577, - 15578, - 0, - 15582, - 0, - 15583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15586, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15588, - 0, - 0, - 0, - 0, - 0, - 15589, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15593, - 15594, - 0, - 0, - 0, - 0, - 15595, - 0, - 0, - 0, - 0, - 0, - 0, - 15596, - 0, - 0, - 0, - 15597, - 0, - 0, - 0, - 0, - 15600, - 0, - 0, - 15601, - 0, - 0, - 0, - 0, - 15602, - 15603, - 0, - 0, - 0, - 0, - 0, - 0, - 15604, - 0, - 15609, - 0, - 0, - 15612, - 0, - 0, - 15613, - 0, - 0, - 15615, - 15617, - 15618, - 0, - 0, - 15620, - 0, - 15636, - 15637, - 0, - 0, - 15649, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15650, - 0, - 0, - 15651, - 0, - 0, - 0, - 15656, - 0, - 15658, - 0, - 0, - 0, - 15664, - 0, - 0, - 15665, - 0, - 0, - 15668, - 0, - 0, - 0, - 0, - 0, - 15669, - 0, - 0, - 15674, - 0, - 0, - 15675, - 0, - 0, - 0, - 0, - 15676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15677, - 0, - 0, - 0, - 0, - 15678, - 0, - 0, - 0, - 0, - 0, - 15679, - 0, - 0, - 15681, - 0, - 15686, - 0, - 0, - 0, - 0, - 15687, - 0, - 15688, - 0, - 0, - 15690, - 0, - 0, - 0, - 15697, - 0, - 15699, - 15700, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15701, - 0, - 15702, - 15703, - 0, - 15704, - 0, - 15705, - 0, - 15707, - 0, - 15709, - 0, - 15712, - 15716, - 0, - 15717, - 0, - 15718, - 15720, - 0, - 0, - 0, - 0, - 0, - 15724, - 0, - 0, - 0, - 15725, - 0, - 15726, - 0, - 0, - 0, - 15740, - 0, - 15745, - 15746, - 0, - 0, - 15747, - 0, - 15748, - 0, - 0, - 0, - 0, - 0, - 15749, - 0, - 0, - 0, - 15752, - 0, - 15753, - 0, - 0, - 0, - 0, - 0, - 0, - 15759, - 0, - 0, - 0, - 15765, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15767, - 0, - 0, - 0, - 15771, - 0, - 0, - 15784, - 0, - 0, - 0, - 0, - 15785, - 15790, - 15791, - 0, - 0, - 15792, - 0, - 0, - 0, - 15807, - 0, - 15811, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15818, - 0, - 0, - 0, - 15819, - 0, - 0, - 0, - 0, - 15821, - 0, - 0, - 0, - 0, - 0, - 15822, - 15824, - 0, - 0, - 15827, - 0, - 0, - 15829, - 15831, - 0, - 15832, - 0, - 0, - 15833, - 0, - 15835, - 15838, - 15839, - 15843, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15844, - 0, - 0, - 0, - 0, - 15845, - 15851, - 15856, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15858, - 15860, - 0, - 15861, - 0, - 0, - 0, - 15864, - 0, - 0, - 0, - 0, - 15865, - 0, - 0, - 0, - 0, - 0, - 0, - 15866, - 0, - 15872, - 0, - 0, - 15876, - 0, - 0, - 0, - 0, - 15877, - 15878, - 15883, - 15885, - 0, - 0, - 15888, - 0, - 0, - 0, - 0, - 0, - 15889, - 15890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15893, - 0, - 0, - 15894, - 0, - 0, - 0, - 15895, - 0, - 15896, - 15897, - 0, - 15898, - 15901, - 15902, - 0, - 15911, - 15915, - 0, - 15916, - 0, - 15924, - 15935, - 0, - 15937, - 0, - 0, - 0, - 0, - 0, - 15950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15958, - 0, - 0, - 0, - 15961, - 0, - 0, - 15966, - 0, - 15967, - 0, - 0, - 15977, - 0, - 0, - 15978, - 0, - 0, - 15981, - 15982, - 15983, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15986, - 0, - 0, - 0, - 15990, - 0, - 15991, - 15995, - 15998, - 0, - 15999, - 0, - 16000, - 0, - 0, - 0, - 0, - 16008, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16009, - 16011, - 0, - 16013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16014, - 0, - 0, - 16015, - 16023, - 16024, - 16025, - 0, - 0, - 16026, - 0, - 16030, - 0, - 16032, - 0, - 16033, - 0, - 0, - 0, - 0, - 0, - 0, - 16035, - 16036, - 16037, - 0, - 0, - 0, - 0, - 0, - 16039, - 0, - 0, - 0, - 0, - 16041, - 0, - 0, - 0, - 0, - 0, - 16043, - 16044, - 0, - 0, - 16047, - 0, - 0, - 0, - 16048, - 0, - 0, - 16049, - 16050, - 16052, - 0, - 0, - 0, - 0, - 0, - 16055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16056, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16058, - 16060, - 16061, - 0, - 0, - 16063, - 0, - 0, - 16064, - 0, - 0, - 0, - 16067, - 16068, - 0, - 0, - 16069, - 16078, - 0, - 0, - 0, - 16079, - 0, - 0, - 0, - 16080, - 0, - 16081, - 0, - 0, - 0, - 16088, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16089, - 16093, - 0, - 16097, - 0, - 16103, - 0, - 16104, - 16105, - 0, - 0, - 16256, - 0, - 0, - 16259, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16260, - 16261, - 0, - 0, - 16262, - 0, - 0, - 16263, - 0, - 16268, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16269, - 0, - 0, - 16270, - 16273, - 0, - 16274, - 0, - 0, - 0, - 0, - 16275, - 16276, - 16277, - 16280, - 0, - 0, - 0, - 16281, - 16284, - 0, - 0, - 0, - 16286, - 0, - 16289, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16290, - 0, - 0, - 0, - 0, - 16291, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16293, - 16295, - 16297, - 0, - 16302, - 0, - 16304, - 0, - 16305, - 0, - 16306, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16307, - 16308, - 16312, - 0, - 0, - 0, - 0, - 0, - 0, - 16313, - 16315, - 0, - 16318, - 0, - 0, - 0, - 16321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16326, - 16333, - 16336, - 0, - 0, - 0, - 0, - 16337, - 16340, - 0, - 0, - 0, - 0, - 0, - 16345, - 0, - 0, - 16346, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16347, - 0, - 0, - 16348, - 0, - 0, - 0, - 0, - 16349, - 0, - 0, - 0, - 16350, - 0, - 16357, - 0, - 0, - 0, - 0, - 16359, - 16360, - 0, - 0, - 0, - 0, - 16362, - 16363, - 16364, - 16365, - 0, - 0, - 16366, - 0, - 0, - 0, - 0, - 16367, - 16368, - 0, - 16369, - 16374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16376, - 0, - 0, - 0, - 0, - 16378, - 16379, - 0, - 16380, - 0, - 0, - 0, - 16381, - 16383, - 0, - 0, - 0, - 0, - 0, - 16390, - 0, - 0, - 0, - 16399, - 0, - 16402, - 16404, - 16406, - 16407, - 0, - 0, - 0, - 16409, - 16411, - 0, - 0, - 0, - 0, - 16412, - 0, - 16413, - 16415, - 16423, - 0, - 0, - 0, - 0, - 0, - 16424, - 0, - 0, - 0, - 16428, - 16434, - 16435, - 16449, - 0, - 16450, - 16451, - 0, - 0, - 0, - 16453, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16454, - 0, - 0, - 16456, - 16458, - 0, - 0, - 16459, - 0, - 0, - 16460, - 0, - 0, - 0, - 0, - 16462, - 0, - 16463, - 0, - 0, - 16466, - 0, - 0, - 0, - 0, - 0, - 16479, - 0, - 0, - 16480, - 0, - 16481, - 16484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16485, - 0, - 0, - 0, - 0, - 0, - 0, - 16489, - 0, - 0, - 0, - 0, - 0, - 16491, - 0, - 0, - 16498, - 0, - 0, - 16503, - 0, - 16505, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16506, - 0, - 0, - 0, - 16508, - 16509, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16511, - 16513, - 0, - 0, - 0, - 16516, - 0, - 16517, - 0, - 16519, - 0, - 16529, - 0, - 0, - 16531, - 0, - 0, - 0, - 0, - 0, - 0, - 16534, - 0, - 0, - 16541, - 16542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16543, - 16547, - 16548, - 0, - 0, - 0, - 16551, - 0, - 16552, - 0, - 0, - 0, - 16553, - 0, - 0, - 16558, - 0, - 0, - 16562, - 16565, - 0, - 0, - 0, - 16570, - 0, - 0, - 0, - 16573, - 16585, - 0, - 0, - 0, - 16586, - 16587, - 16595, - 0, - 16596, - 0, - 16598, - 0, - 0, - 0, - 16600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16601, - 0, - 0, - 0, - 0, - 16603, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16604, - 16612, - 0, - 0, - 0, - 0, - 16613, - 0, - 16618, - 0, - 0, - 0, - 16640, - 0, - 0, - 16641, - 0, - 0, - 0, - 0, - 0, - 0, - 16645, - 0, - 0, - 0, - 0, - 16646, - 0, - 0, - 0, - 0, - 0, - 0, - 16651, - 0, - 0, - 0, - 0, - 16653, - 16654, - 0, - 0, - 0, - 16655, - 0, - 0, - 16656, - 16667, - 0, - 0, - 0, - 0, - 16671, - 0, - 16672, - 0, - 0, - 0, - 16673, - 0, - 0, - 0, - 0, - 0, - 16676, - 0, - 16686, - 0, - 0, - 0, - 0, - 16689, - 0, - 16690, - 0, - 16692, - 0, - 16693, - 0, - 16694, - 0, - 16696, - 0, - 0, - 0, - 16705, - 0, - 0, - 0, - 0, - 0, - 0, - 16707, - 0, - 0, - 0, - 16709, - 0, - 0, - 0, - 0, - 16711, - 0, - 16712, - 16713, - 0, - 0, - 0, - 16715, - 0, - 0, - 0, - 0, - 16716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16718, - 16724, - 0, - 0, - 16726, - 16727, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16728, - 0, - 16729, - 0, - 0, - 16730, - 0, - 0, - 0, - 0, - 0, - 16731, - 0, - 0, - 0, - 16732, - 0, - 0, - 0, - 0, - 16734, - 16738, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16743, - 0, - 0, - 16745, - 0, - 0, - 0, - 0, - 0, - 16749, - 0, - 16752, - 0, - 0, - 0, - 0, - 16756, - 0, - 0, - 16758, - 0, - 16759, - 0, - 0, - 0, - 0, - 0, - 16760, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16762, - 0, - 16769, - 0, - 16770, - 0, - 16772, - 0, - 0, - 0, - 16777, - 16780, - 0, - 0, - 0, - 0, - 0, - 0, - 16781, - 0, - 0, - 16782, - 0, - 16784, - 0, - 0, - 16785, - 16787, - 16792, - 0, - 0, - 16794, - 0, - 0, - 0, - 16798, - 0, - 0, - 16809, - 0, - 0, - 16814, - 16816, - 16817, - 0, - 16819, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16820, - 0, - 0, - 16836, - 16839, - 0, - 0, - 16841, - 16851, - 16857, - 0, - 0, - 16858, - 16859, - 0, - 0, - 16860, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16862, - 0, - 16863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16864, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16876, - 0, - 16881, - 16882, - 0, - 16885, - 16886, - 0, - 16887, - 0, - 0, - 0, - 16889, - 16891, - 0, - 0, - 0, - 0, - 0, - 16894, - 16895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16897, - 0, - 16898, - 0, - 0, - 0, - 0, - 0, - 16913, - 0, - 0, - 16924, - 16925, - 16926, - 0, - 0, - 16927, - 0, - 0, - 0, - 16937, - 16938, - 0, - 0, - 0, - 16940, - 16941, - 0, - 0, - 0, - 16942, - 16945, - 0, - 16946, - 16949, - 16950, - 0, - 0, - 0, - 16952, - 16955, - 0, - 0, - 0, - 16965, - 0, - 16969, - 0, - 0, - 16975, - 0, - 0, - 16976, - 0, - 0, - 0, - 0, - 16978, - 0, - 0, - 16981, - 0, - 16983, - 16989, - 0, - 0, - 0, - 0, - 16990, - 0, - 0, - 16991, - 0, - 0, - 0, - 16993, - 0, - 16994, - 16996, - 17000, - 0, - 0, - 0, - 0, - 0, - 17002, - 17004, - 0, - 17006, - 0, - 0, - 17007, - 0, - 0, - 0, - 0, - 17008, - 17013, - 17014, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17021, - 0, - 17031, - 0, - 0, - 0, - 0, - 0, - 17033, - 17036, - 0, - 17038, - 0, - 0, - 17039, - 0, - 17045, - 0, - 0, - 17046, - 17047, - 0, - 0, - 0, - 0, - 17048, - 0, - 17049, - 17050, - 0, - 17051, - 17053, - 0, - 17054, - 0, - 17055, - 0, - 0, - 0, - 0, - 0, - 17063, - 0, - 0, - 17064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17065, - 0, - 0, - 17068, - 0, - 0, - 0, - 0, - 0, - 17072, - 0, - 0, - 0, - 0, - 0, - 0, - 17073, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17074, - 0, - 17080, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17081, - 17083, - 17084, - 0, - 0, - 0, - 17085, - 0, - 0, - 0, - 0, - 17092, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17093, - 0, - 17095, - 17102, - 0, - 0, - 0, - 0, - 0, - 0, - 17103, - 0, - 0, - 17105, - 0, - 17107, - 0, - 0, - 0, - 0, - 17114, - 0, - 0, - 0, - 0, - 0, - 17115, - 17125, - 17127, - 0, - 0, - 17128, - 0, - 0, - 0, - 17129, - 17130, - 0, - 17131, - 0, - 0, - 0, - 0, - 0, - 17132, - 17135, - 17145, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17146, - 0, - 17147, - 0, - 17148, - 0, - 0, - 0, - 0, - 0, - 0, - 17149, - 17150, - 0, - 17151, - 17153, - 0, - 17155, - 0, - 0, - 0, - 0, - 17163, - 17171, - 0, - 17174, - 0, - 0, - 0, - 0, - 17179, - 0, - 0, - 17182, - 17185, - 0, - 0, - 0, - 0, - 0, - 17186, - 0, - 0, - 17188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17189, - 17191, - 0, - 17194, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17195, - 17196, - 17203, - 17204, - 0, - 0, - 17205, - 17217, - 0, - 0, - 0, - 0, - 0, - 17218, - 0, - 0, - 0, - 0, - 17219, - 0, - 17220, - 0, - 17221, - 0, - 0, - 17230, - 0, - 0, - 0, - 0, - 0, - 17236, - 0, - 17238, - 17239, - 0, - 0, - 0, - 17241, - 17244, - 0, - 0, - 17245, - 0, - 17248, - 0, - 0, - 17251, - 0, - 17252, - 0, - 0, - 17264, - 0, - 17266, - 0, - 0, - 0, - 17268, - 0, - 0, - 0, - 0, - 17271, - 17272, - 0, - 17273, - 0, - 17295, - 0, - 17302, - 0, - 17305, - 0, - 0, - 0, - 17306, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17309, - 0, - 17310, - 17313, - 0, - 0, - 0, - 0, - 17314, - 17315, - 0, - 17317, - 0, - 0, - 0, - 0, - 17318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17320, - 0, - 0, - 0, - 0, - 0, - 0, - 17334, - 0, - 17344, - 17348, - 0, - 0, - 0, - 17350, - 17351, - 0, - 0, - 17353, - 0, - 0, - 17354, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17355, - 0, - 0, - 0, - 0, - 0, - 0, - 17356, - 17357, - 0, - 0, - 17359, - 0, - 0, - 0, - 17371, - 0, - 17372, - 0, - 0, - 0, - 17393, - 0, - 0, - 0, - 0, - 17394, - 0, - 0, - 0, - 0, - 0, - 17395, - 0, - 0, - 17399, - 0, - 0, - 0, - 17401, - 17417, - 0, - 17418, - 0, - 17419, - 0, - 0, - 0, - 0, - 0, - 17422, - 17423, - 0, - 0, - 0, - 0, - 0, - 17424, - 0, - 0, - 0, - 0, - 0, - 17428, - 17429, - 17433, - 0, - 0, - 0, - 17437, - 0, - 0, - 17441, - 0, - 0, - 17442, - 0, - 0, - 17453, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17454, - 17456, - 17462, - 0, - 0, - 17466, - 0, - 0, - 17468, - 0, - 0, - 17469, - 0, - 0, - 0, - 0, - 17470, - 0, - 17475, - 0, - 0, - 0, - 0, - 0, - 17479, - 0, - 0, - 0, - 17483, - 17484, - 0, - 17485, - 0, - 17486, - 0, - 17491, - 17492, - 0, - 0, - 17493, - 0, - 17494, - 17495, - 0, - 0, - 0, - 17496, - 0, - 0, - 0, - 17497, - 0, - 0, - 0, - 17502, - 0, - 0, - 0, - 0, - 0, - 17503, - 0, - 17505, - 0, - 17507, - 0, - 0, - 0, - 17512, - 17513, - 17514, - 0, - 0, - 17515, - 0, - 0, - 0, - 17519, - 0, - 0, - 0, - 17522, - 0, - 0, - 17523, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17527, - 0, - 0, - 0, - 17528, - 0, - 0, - 0, - 17534, - 0, - 0, - 0, - 0, - 17536, - 0, - 0, - 0, - 17539, - 0, - 17540, - 17543, - 17549, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17556, - 0, - 0, - 17558, - 0, - 17559, - 0, - 0, - 17560, - 0, - 0, - 0, - 17563, - 0, - 0, - 0, - 0, - 0, - 0, - 17564, - 0, - 0, - 17565, - 17566, - 0, - 17567, - 0, - 0, - 0, - 0, - 0, - 0, - 17569, - 17570, - 0, - 17575, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17581, - 0, - 0, - 0, - 17582, - 17583, - 0, - 17586, - 0, - 0, - 17587, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17588, - 0, - 0, - 0, - 0, - 17596, - 17597, - 0, - 0, - 17598, - 17600, - 0, - 0, - 0, - 0, - 0, - 0, - 17601, - 0, - 0, - 0, - 17604, - 0, - 0, - 17605, - 0, - 0, - 17607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17612, - 0, - 0, - 17618, - 0, - 17621, - 17622, - 0, - 0, - 0, - 0, - 17623, - 0, - 0, - 17624, - 0, - 0, - 17630, - 0, - 0, - 17631, - 17633, - 17634, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17635, - 0, - 0, - 17636, - 0, - 0, - 17637, - 0, - 17638, - 0, - 17640, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17641, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17643, - 0, - 0, - 0, - 0, - 17645, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17646, - 17662, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17663, - 17664, - 0, - 17665, - 17666, - 0, - 0, - 0, - 17669, - 17671, - 17673, - 0, - 17679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17684, - 0, - 0, - 0, - 17686, - 0, - 17714, - 0, - 0, - 17720, - 17722, - 17726, - 0, - 0, - 17728, - 0, - 0, - 17729, - 0, - 0, - 0, - 17732, - 0, - 17733, - 0, - 17734, - 0, - 0, - 0, - 17735, - 0, - 0, - 0, - 0, - 17737, - 0, - 0, - 0, - 0, - 17739, - 0, - 0, - 0, - 17741, - 17742, - 0, - 0, - 0, - 0, - 17743, - 17744, - 17745, - 0, - 0, - 0, - 17749, - 0, - 17750, - 17751, - 17752, - 17754, - 17761, - 17762, - 0, - 17763, - 0, - 17766, - 0, - 17772, - 0, - 0, - 0, - 0, - 0, - 17775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17776, - 0, - 0, - 17777, - 0, - 0, - 17778, - 17779, - 0, - 17782, - 17783, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17784, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17821, - 0, - 0, - 0, - 17822, - 0, - 0, - 0, - 17823, - 17825, - 0, - 0, - 0, - 0, - 0, - 17826, - 17831, - 17832, - 17833, - 0, - 0, - 17845, - 0, - 0, - 0, - 17846, - 0, - 0, - 0, - 17848, - 17850, - 17854, - 0, - 17855, - 0, - 0, - 17859, - 0, - 0, - 0, - 0, - 0, - 0, - 17860, - 17861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17870, - 17871, - 0, - 0, - 0, - 0, - 0, - 0, - 17872, - 0, - 0, - 0, - 17879, - 0, - 0, - 0, - 17881, - 17883, - 0, - 17884, - 0, - 17885, - 0, - 0, - 17886, - 0, - 0, - 17887, - 17891, - 17953, - 0, - 0, - 0, - 0, - 17954, - 0, - 0, - 17955, - 0, - 17968, - 0, - 0, - 17972, - 0, - 0, - 0, - 0, - 0, - 17974, - 0, - 0, - 0, - 0, - 17976, - 17978, - 0, - 0, - 17983, - 0, - 0, - 0, - 0, - 18003, - 0, - 0, - 0, - 0, - 0, - 18007, - 0, - 0, - 0, - 0, - 0, - 18009, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18010, - 0, - 0, - 0, - 0, - 0, - 0, - 18012, - 0, - 0, - 18014, - 0, - 0, - 0, - 18015, - 0, - 0, - 0, - 18016, - 0, - 18017, - 0, - 0, - 0, - 18030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18031, - 0, - 0, - 18036, - 18037, - 18038, - 0, - 0, - 18049, - 18056, - 0, - 18057, - 18058, - 0, - 18059, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18062, - 0, - 0, - 0, - 0, - 18064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18067, - 0, - 0, - 0, - 18068, - 0, - 0, - 18075, - 0, - 0, - 18078, - 18093, - 18094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18097, - 0, - 0, - 0, - 0, - 0, - 18098, - 18100, - 0, - 0, - 0, - 18108, - 0, - 18111, - 0, - 0, - 18112, - 0, - 18113, - 0, - 0, - 18115, - 18116, - 0, - 18118, - 0, - 0, - 0, - 0, - 18121, - 0, - 0, - 0, - 0, - 18123, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18124, - 0, - 0, - 0, - 0, - 18125, - 18126, - 0, - 18127, - 0, - 0, - 18128, - 18135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18150, - 0, - 0, - 0, - 0, - 0, - 18151, - 18152, - 0, - 0, - 18156, - 18164, - 0, - 18166, - 18171, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18172, - 18183, - 0, - 18184, - 0, - 0, - 0, - 0, - 18185, - 0, - 18187, - 0, - 0, - 0, - 0, - 0, - 18188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18189, - 0, - 0, - 18190, - 0, - 0, - 18191, - 18192, - 0, - 0, - 18194, - 18195, - 18196, - 0, - 0, - 0, - 18197, - 0, - 18203, - 0, - 18204, - 0, - 0, - 0, - 0, - 18205, - 0, - 0, - 0, - 18207, - 18208, - 0, - 0, - 18214, - 0, - 0, - 0, - 18215, - 18216, - 0, - 0, - 0, - 18220, - 0, - 0, - 18222, - 0, - 0, - 0, - 0, - 0, - 18223, - 0, - 18225, - 18231, - 0, - 18234, - 0, - 18235, - 0, - 0, - 0, - 0, - 18240, - 0, - 0, - 18241, - 18242, - 0, - 0, - 0, - 0, - 0, - 18243, - 18251, - 0, - 18253, - 0, - 18254, - 0, - 0, - 0, - 18266, - 0, - 0, - 0, - 0, - 0, - 0, - 18269, - 18270, - 18271, - 18273, - 18281, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18282, - 0, - 18283, - 0, - 18284, - 0, - 0, - 0, - 0, - 0, - 0, - 18285, - 0, - 18287, - 18289, - 0, - 0, - 18290, - 0, - 0, - 0, - 0, - 18308, - 0, - 0, - 0, - 18310, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18311, - 0, - 18312, - 18313, - 0, - 18315, - 0, - 0, - 18316, - 18320, - 0, - 18331, - 0, - 18332, - 0, - 18336, - 0, - 0, - 0, - 0, - 18337, - 0, - 18340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18341, - 0, - 18344, - 18345, - 0, - 18346, - 0, - 0, - 0, - 0, - 0, - 18348, - 0, - 18351, - 0, - 0, - 18356, - 0, - 0, - 0, - 0, - 0, - 0, - 18357, - 0, - 0, - 0, - 0, - 0, - 18367, - 0, - 0, - 0, - 18368, - 0, - 18369, - 0, - 18370, - 18371, - 0, - 0, - 0, - 18437, - 18444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18445, - 18450, - 0, - 0, - 0, - 0, - 18451, - 0, - 18452, - 0, - 0, - 0, - 18453, - 0, - 0, - 0, - 0, - 0, - 18455, - 0, - 0, - 0, - 18456, - 0, - 18457, - 0, - 18460, - 0, - 0, - 18461, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18466, - 0, - 0, - 18467, - 0, - 0, - 0, - 0, - 18473, - 0, - 0, - 0, - 18476, - 0, - 18477, - 0, - 0, - 0, - 18478, - 18479, - 18480, - 0, - 0, - 0, - 18485, - 0, - 0, - 0, - 18486, - 0, - 0, - 0, - 0, - 0, - 0, - 18488, - 18490, - 0, - 0, - 0, - 0, - 0, - 0, - 18491, - 0, - 0, - 0, - 0, - 0, - 18495, - 0, - 0, - 18496, - 0, - 0, - 0, - 0, - 0, - 0, - 18505, - 0, - 18521, - 0, - 18522, - 18523, - 0, - 0, - 0, - 18525, - 18526, - 0, - 0, - 0, - 0, - 0, - 18527, - 0, - 0, - 0, - 0, - 18532, - 18533, - 0, - 18534, - 0, - 0, - 0, - 0, - 0, - 0, - 18535, - 18537, - 0, - 18538, - 0, - 0, - 0, - 0, - 0, - 0, - 18540, - 18541, - 18542, - 18543, - 0, - 18546, - 0, - 0, - 0, - 0, - 18553, - 18556, - 0, - 0, - 18558, - 0, - 0, - 18569, - 18571, - 0, - 0, - 0, - 18572, - 0, - 18574, - 0, - 0, - 0, - 0, - 18586, - 0, - 0, - 0, - 0, - 0, - 18588, - 0, - 0, - 18589, - 0, - 0, - 0, - 0, - 0, - 0, - 18590, - 0, - 18592, - 0, - 0, - 0, - 0, - 18594, - 0, - 0, - 0, - 18596, - 0, - 0, - 18597, - 18598, - 0, - 0, - 18601, - 0, - 0, - 0, - 0, - 18602, - 0, - 0, - 0, - 18603, - 18604, - 0, - 18605, - 0, - 0, - 0, - 0, - 18608, - 0, - 0, - 18611, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18612, - 0, - 18616, - 0, - 0, - 18617, - 18619, - 0, - 0, - 0, - 18628, - 0, - 0, - 0, - 18629, - 0, - 0, - 18630, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18631, - 0, - 18632, - 0, - 0, - 18635, - 18637, - 0, - 0, - 0, - 0, - 0, - 0, - 18641, - 18643, - 18648, - 0, - 18652, - 0, - 0, - 18653, - 0, - 18655, - 18656, - 0, - 0, - 0, - 18657, - 0, - 0, - 18666, - 18674, - 0, - 0, - 0, - 0, - 18677, - 18684, - 18685, - 0, - 0, - 18686, - 0, - 0, - 18690, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18695, - 18696, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18697, - 0, - 0, - 18700, - 0, - 0, - 0, - 0, - 0, - 0, - 18702, - 0, - 18708, - 0, - 0, - 18709, - 0, - 18710, - 0, - 0, - 18711, - 0, - 18714, - 0, - 0, - 18718, - 0, - 0, - 0, - 0, - 0, - 0, - 18719, - 0, - 0, - 18722, - 0, - 18726, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18731, - 0, - 0, - 0, - 0, - 0, - 18739, - 18741, - 0, - 0, - 18742, - 0, - 18743, - 18744, - 18746, - 18748, - 0, - 18752, - 18753, - 0, - 0, - 18754, - 18763, - 0, - 18765, - 0, - 0, - 0, - 18766, - 0, - 0, - 0, - 18769, - 0, - 0, - 0, - 0, - 0, - 18773, - 18778, - 18779, - 18781, - 0, - 0, - 18784, - 18787, - 0, - 18788, - 0, - 18793, - 0, - 0, - 0, - 0, - 0, - 0, - 18795, - 0, - 0, - 18800, - 0, - 0, - 0, - 0, - 0, - 18801, - 18804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18806, - 0, - 0, - 0, - 18811, - 18815, - 18816, - 0, - 0, - 0, - 0, - 18825, - 0, - 0, - 18827, - 18829, - 0, - 0, - 18830, - 0, - 0, - 0, - 0, - 18831, - 0, - 0, - 18832, - 0, - 0, - 0, - 0, - 18833, - 0, - 18840, - 0, - 18841, - 0, - 18842, - 0, - 0, - 0, - 0, - 18843, - 0, - 18844, - 0, - 0, - 0, - 0, - 0, - 0, - 18845, - 18846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18848, - 0, - 0, - 0, - 18853, - 18860, - 0, - 0, - 18862, - 18866, - 0, - 0, - 18867, - 18869, - 0, - 0, - 18874, - 18881, - 18891, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18895, - 0, - 18896, - 0, - 0, - 0, - 18900, - 0, - 0, - 0, - 18901, - 0, - 18902, - 18915, - 18916, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18919, - 0, - 0, - 0, - 0, - 0, - 18920, - 0, - 0, - 0, - 18921, - 18929, - 0, - 0, - 0, - 0, - 18930, - 0, - 0, - 0, - 0, - 0, - 0, - 18932, - 0, - 0, - 0, - 0, - 18934, - 18942, - 0, - 0, - 0, - 18951, - 18957, - 0, - 0, - 0, - 0, - 18958, - 0, - 0, - 0, - 0, - 18959, - 18960, - 0, - 0, - 18961, - 0, - 0, - 18962, - 0, - 0, - 0, - 0, - 18963, - 18964, - 0, - 0, - 0, - 18965, - 0, - 18967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18968, - 0, - 18969, - 0, - 18970, - 18973, - 18976, - 0, - 0, - 0, - 0, - 0, - 0, - 18977, - 0, - 0, - 0, - 18981, - 0, - 0, - 0, - 18990, - 0, - 18998, - 0, - 0, - 0, - 0, - 0, - 18999, - 19003, - 0, - 0, - 19005, - 0, - 0, - 0, - 19006, - 0, - 0, - 0, - 0, - 0, - 0, - 19008, - 19011, - 0, - 0, - 19018, - 0, - 0, - 19019, - 0, - 19024, - 0, - 19031, - 19032, - 0, - 19039, - 0, - 19041, - 19050, - 0, - 0, - 0, - 19051, - 19055, - 19056, - 0, - 19059, - 19063, - 19064, - 0, - 0, - 19088, - 0, - 0, - 0, - 19093, - 19094, - 0, - 0, - 0, - 0, - 19095, - 0, - 19096, - 0, - 0, - 0, - 19097, - 0, - 0, - 19098, - 0, - 19099, - 19100, - 0, - 0, - 19103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19111, - 0, - 0, - 0, - 0, - 0, - 0, - 19112, - 0, - 0, - 0, - 19116, - 19117, - 0, - 19121, - 19122, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19123, - 19124, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19125, - 19126, - 0, - 19128, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19129, - 19130, - 19131, - 19132, - 0, - 0, - 19146, - 0, - 0, - 19147, - 19156, - 19158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19182, - 19185, - 0, - 0, - 19187, - 0, - 0, - 0, - 19193, - 0, - 0, - 0, - 0, - 0, - 19194, - 0, - 19197, - 0, - 0, - 0, - 0, - 19198, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19202, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19203, - 0, - 19205, - 19210, - 0, - 0, - 0, - 19213, - 0, - 19218, - 0, - 0, - 0, - 19223, - 19229, - 0, - 0, - 19230, - 0, - 0, - 19231, - 19232, - 19233, - 19239, - 0, - 0, - 0, - 0, - 0, - 19240, - 0, - 19248, - 19249, - 0, - 0, - 0, - 0, - 19254, - 0, - 19256, - 19258, - 19259, - 0, - 0, - 19261, - 0, - 19266, - 0, - 0, - 0, - 19272, - 0, - 19278, - 19281, - 19282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19283, - 0, - 0, - 19284, - 0, - 0, - 19285, - 19287, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19288, - 19291, - 0, - 19292, - 0, - 0, - 0, - 0, - 19297, - 0, - 19298, - 0, - 0, - 0, - 0, - 19302, - 19303, - 0, - 0, - 0, - 0, - 19304, - 19305, - 0, - 0, - 0, - 0, - 19314, - 0, - 0, - 19315, - 0, - 0, - 19321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19322, - 0, - 19333, - 0, - 19334, - 19335, - 0, - 19336, - 19337, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19346, - 0, - 0, - 19353, - 0, - 19354, - 19362, - 0, - 19366, - 19367, - 0, - 0, - 19369, - 0, - 19375, - 0, - 19377, - 19380, - 19388, - 0, - 0, - 0, - 0, - 0, - 19389, - 19390, - 0, - 0, - 0, - 0, - 19392, - 0, - 0, - 0, - 0, - 0, - 19402, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19412, - 0, - 0, - 19413, - 19422, - 0, - 19424, - 0, - 0, - 0, - 19425, - 0, - 0, - 0, - 19428, - 0, - 0, - 0, - 0, - 19431, - 0, - 0, - 0, - 0, - 0, - 19432, - 0, - 0, - 0, - 0, - 0, - 19448, - 19459, - 0, - 0, - 19461, - 0, - 19462, - 19463, - 0, - 19467, - 19474, - 19482, - 0, - 0, - 0, - 0, - 19494, - 0, - 0, - 0, - 0, - 19501, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19502, - 19504, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19505, - 0, - 0, - 0, - 0, - 19506, - 19507, - 0, - 0, - 0, - 19508, - 0, - 0, - 19511, - 0, - 0, - 19514, - 0, - 19515, - 0, - 19516, - 0, - 19518, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19530, - 0, - 19537, - 19538, - 0, - 19543, - 19546, - 0, - 19547, - 19551, - 0, - 0, - 0, - 0, - 0, - 0, - 19552, - 19553, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19555, - 0, - 0, - 19556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19560, - 19561, - 0, - 0, - 19562, - 0, - 0, - 0, - 0, - 0, - 0, - 19565, - 19567, - 0, - 19568, - 0, - 0, - 0, - 19569, - 19570, - 0, - 19578, - 0, - 0, - 0, - 0, - 19580, - 0, - 0, - 0, - 0, - 19581, - 19584, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19585, - 19586, - 0, - 0, - 0, - 19587, - 19588, - 0, - 19589, - 0, - 0, - 0, - 0, - 0, - 0, - 19592, - 19593, - 19599, - 0, - 19600, - 0, - 0, - 19604, - 0, - 0, - 19605, - 0, - 19606, - 19608, - 19610, - 0, - 19613, - 19614, - 0, - 0, - 0, - 0, - 0, - 0, - 19616, - 19617, - 0, - 0, - 19618, - 0, - 0, - 19619, - 0, - 0, - 0, - 19620, - 19621, - 19631, - 0, - 0, - 19632, - 19634, - 19636, - 0, - 19643, - 0, - 0, - 19644, - 19658, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19659, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19675, - 19677, - 0, - 0, - 0, - 0, - 19679, - 0, - 19683, - 0, - 19684, - 0, - 0, - 0, - 0, - 0, - 0, - 19687, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19688, - 19689, - 19692, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19695, - 19697, - 0, - 0, - 0, - 0, - 0, - 19698, - 19699, - 0, - 0, - 19700, - 0, - 19702, - 0, - 0, - 19703, - 0, - 0, - 0, - 0, - 0, - 0, - 19704, - 19708, - 0, - 19710, - 0, - 19713, - 0, - 0, - 0, - 19715, - 0, - 0, - 0, - 0, - 19718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19720, - 0, - 19722, - 0, - 0, - 19725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19730, - 0, - 0, - 0, - 0, - 0, - 19731, - 0, - 19734, - 19735, - 19739, - 0, - 0, - 19740, - 0, - 19741, - 0, - 0, - 0, - 19746, - 0, - 0, - 19747, - 0, - 19771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19772, - 19775, - 0, - 0, - 0, - 0, - 0, - 0, - 19778, - 0, - 0, - 0, - 0, - 0, - 19779, - 0, - 0, - 19780, - 19790, - 0, - 19791, - 0, - 0, - 19792, - 0, - 0, - 0, - 19793, - 0, - 0, - 19796, - 19797, - 0, - 0, - 0, - 19799, - 0, - 0, - 0, - 19801, - 0, - 0, - 0, - 0, - 19803, - 0, - 19804, - 0, - 19805, - 0, - 0, - 19807, - 0, - 0, - 0, - 19808, - 0, - 0, - 0, - 0, - 0, - 0, - 19809, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19816, - 0, - 19821, - 0, - 19822, - 19830, - 19831, - 0, - 0, - 0, - 19833, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19838, - 0, - 0, - 0, - 0, - 19839, - 0, - 0, - 19843, - 0, - 0, - 0, - 0, - 19845, - 0, - 0, - 0, - 0, - 19847, - 0, - 0, - 19848, - 0, - 19849, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19851, - 0, - 0, - 0, - 19854, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19864, - 0, - 19865, - 0, - 19866, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19868, - 0, - 0, - 19870, - 0, - 0, - 19871, - 0, - 0, - 19872, - 19873, - 19875, - 0, - 19880, - 19882, - 19884, - 0, - 0, - 19885, - 19886, - 19888, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19890, - 19892, - 19893, - 0, - 0, - 19894, - 0, - 0, - 0, - 19895, - 0, - 19896, - 19902, - 0, - 0, - 19903, - 0, - 0, - 19905, - 0, - 0, - 0, - 19906, - 0, - 19908, - 0, - 19909, - 19911, - 0, - 0, - 0, - 19913, - 19920, - 0, - 19938, - 19939, - 19940, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19942, - 0, - 19943, - 0, - 19945, - 0, - 0, - 0, - 19951, - 19952, - 19954, - 19960, - 0, - 19965, - 0, - 19971, - 0, - 0, - 0, - 0, - 0, - 19975, - 0, - 19976, - 0, - 19990, - 0, - 0, - 19991, - 0, - 19993, - 0, - 19995, - 0, - 0, - 0, - 19998, - 19999, - 20001, - 0, - 20003, - 20005, - 0, - 20011, - 20012, - 0, - 0, - 0, - 0, - 0, - 0, - 20014, - 0, - 20020, - 0, - 0, - 0, - 0, - 20021, - 0, - 0, - 0, - 0, - 0, - 20023, - 20024, - 0, - 0, - 0, - 0, - 0, - 20025, - 0, - 0, - 20027, - 0, - 0, - 20029, - 0, - 0, - 20032, - 0, - 0, - 0, - 0, - 20044, - 20045, - 0, - 20048, - 20049, - 0, - 0, - 20050, - 0, - 20052, - 0, - 0, - 20054, - 20057, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20059, - 0, - 0, - 20061, - 0, - 20062, - 0, - 20064, - 0, - 0, - 20066, - 0, - 0, - 20067, - 0, - 0, - 0, - 0, - 20069, - 0, - 0, - 0, - 0, - 0, - 0, - 20070, - 20071, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20072, - 0, - 0, - 20073, - 20074, - 0, - 0, - 0, - 0, - 0, - 20075, - 0, - 20078, - 0, - 0, - 0, - 0, - 20080, - 0, - 20081, - 0, - 0, - 0, - 0, - 0, - 0, - 20095, - 0, - 20098, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20107, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20112, - 0, - 0, - 0, - 20113, - 20114, - 0, - 0, - 0, - 20115, - 20123, - 20124, - 0, - 0, - 0, - 20131, - 20133, - 20134, - 0, - 0, - 0, - 0, - 20136, - 0, - 0, - 20137, - 20138, - 20150, - 0, - 20152, - 0, - 0, - 0, - 20153, - 0, - 0, - 20154, - 0, - 0, - 0, - 20158, - 0, - 20163, - 0, - 0, - 20164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20166, - 0, - 20168, - 0, - 20170, - 0, - 20175, - 0, - 0, - 20178, - 0, - 0, - 0, - 0, - 20223, - 0, - 0, - 0, - 0, - 20224, - 0, - 20226, - 0, - 0, - 20230, - 0, - 20231, - 0, - 0, - 0, - 0, - 20232, - 0, - 0, - 20233, - 20234, - 0, - 20244, - 0, - 20247, - 0, - 0, - 0, - 0, - 0, - 0, - 20249, - 0, - 0, - 0, - 20250, - 0, - 0, - 0, - 0, - 20251, - 0, - 20253, - 0, - 20254, - 0, - 0, - 0, - 0, - 20256, - 0, - 0, - 20264, - 0, - 0, - 0, - 0, - 20266, - 0, - 0, - 0, - 20278, - 0, - 0, - 20279, - 20282, - 0, - 0, - 0, - 0, - 0, - 20283, - 0, - 20284, - 0, - 20285, - 0, - 20287, - 20290, - 0, - 0, - 0, - 0, - 20292, - 0, - 0, - 0, - 0, - 20293, - 20297, - 0, - 0, - 0, - 0, - 0, - 0, - 20299, - 0, - 20300, - 20303, - 0, - 0, - 0, - 0, - 0, - 0, - 20307, - 0, - 0, - 20308, - 0, - 20309, - 0, - 20310, - 0, - 0, - 0, - 0, - 0, - 0, - 20312, - 0, - 0, - 0, - 20314, - 0, - 0, - 0, - 0, - 20315, - 20316, - 0, - 20322, - 0, - 0, - 0, - 0, - 0, - 0, - 20339, - 0, - 0, - 0, - 20342, - 0, - 0, - 0, - 0, - 20352, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20362, - 0, - 0, - 20365, - 0, - 20375, - 20377, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20378, - 20379, - 0, - 20380, - 0, - 0, - 20381, - 0, - 20382, - 0, - 20383, - 0, - 20388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20390, - 20392, - 20393, - 0, - 0, - 20395, - 0, - 0, - 0, - 0, - 0, - 20396, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20398, - 20415, - 0, - 0, - 0, - 20417, - 0, - 0, - 20420, - 0, - 0, - 20426, - 20428, - 0, - 20431, - 0, - 0, - 20432, - 0, - 20433, - 20434, - 20435, - 0, - 0, - 0, - 0, - 20440, - 0, - 0, - 0, - 0, - 0, - 20442, - 0, - 20443, - 0, - 20446, - 0, - 0, - 0, - 0, - 20448, - 0, - 20451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20452, - 20453, - 0, - 0, - 20454, - 0, - 0, - 0, - 0, - 0, - 0, - 20457, - 0, - 20458, - 0, - 0, - 0, - 20465, - 0, - 0, - 0, - 0, - 0, - 20469, - 0, - 0, - 0, - 20473, - 0, - 20476, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20477, - 0, - 0, - 20485, - 0, - 0, - 20486, - 0, - 0, - 20487, - 0, - 20496, - 0, - 20497, - 0, - 0, - 20498, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20499, - 20500, - 0, - 20501, - 0, - 0, - 0, - 0, - 0, - 20520, - 20527, - 0, - 20529, - 0, - 0, - 0, - 0, - 20539, - 0, - 0, - 20540, - 0, - 0, - 0, - 20543, - 0, - 0, - 0, - 20546, - 0, - 0, - 0, - 0, - 0, - 20548, - 0, - 0, - 20563, - 0, - 0, - 20564, - 0, - 20566, - 0, - 0, - 0, - 0, - 0, - 20589, - 0, - 0, - 0, - 0, - 20590, - 0, - 0, - 20593, - 20594, - 0, - 0, - 0, - 0, - 20595, - 0, - 20597, - 20598, - 0, - 0, - 0, - 20618, - 20620, - 0, - 0, - 0, - 0, - 20621, - 0, - 0, - 0, - 0, - 20627, - 0, - 0, - 0, - 0, - 0, - 20628, - 0, - 0, - 0, - 20629, - 0, - 20630, - 0, - 0, - 20639, - 0, - 0, - 0, - 0, - 0, - 20707, - 0, - 0, - 20709, - 0, - 0, - 0, - 20713, - 20714, - 0, - 0, - 0, - 0, - 0, - 20724, - 20725, - 0, - 0, - 0, - 0, - 20726, - 20728, - 20729, - 0, - 20733, - 0, - 20734, - 0, - 20735, - 20736, - 0, - 20737, - 0, - 0, - 20744, - 0, - 20745, - 0, - 20748, - 0, - 0, - 20749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20750, - 0, - 0, - 0, - 0, - 20754, - 0, - 0, - 0, - 20761, - 0, - 0, - 20763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20766, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20767, - 0, - 0, - 0, - 0, - 20768, - 0, - 20769, - 20777, - 0, - 0, - 0, - 0, - 0, - 0, - 20785, - 0, - 0, - 0, - 20786, - 20795, - 20801, - 0, - 20802, - 0, - 20807, - 0, - 0, - 20808, - 0, - 0, - 20810, - 0, - 0, - 20811, - 0, - 20812, - 0, - 0, - 0, - 0, - 0, - 20813, - 0, - 0, - 20818, - 20820, - 20821, - 0, - 0, - 0, - 20822, - 0, - 20823, - 0, - 0, - 0, - 20826, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20829, - 20830, - 20831, - 0, - 20832, - 20836, - 0, - 0, - 20839, - 0, - 0, - 20840, - 20842, - 0, - 20843, - 0, - 20844, - 0, - 20854, - 0, - 0, - 0, - 20855, - 0, - 0, - 0, - 0, - 20856, - 0, - 0, - 0, - 20869, - 0, - 0, - 20871, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20873, - 0, - 0, - 0, - 0, - 0, - 20876, - 0, - 0, - 0, - 0, - 0, - 20880, - 0, - 0, - 20882, - 0, - 0, - 0, - 0, - 20883, - 20884, - 0, - 0, - 20890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20891, - 0, - 0, - 0, - 0, - 0, - 20905, - 0, - 20906, - 20910, - 0, - 0, - 20912, - 20915, - 0, - 0, - 0, - 0, - 0, - 20916, - 0, - 20917, - 0, - 20919, - 20920, - 20922, - 0, - 20927, - 0, - 20928, - 20929, - 20930, - 0, - 0, - 20935, - 0, - 0, - 20939, - 0, - 0, - 20941, - 0, - 0, - 0, - 20943, - 0, - 0, - 0, - 20946, - 20947, - 0, - 0, - 0, - 0, - 0, - 20950, - 0, - 20954, - 0, - 0, - 20955, - 20964, - 0, - 0, - 20967, - 0, - 0, - 0, - 0, - 0, - 20973, - 20975, - 0, - 0, - 0, - 20984, - 0, - 20987, - 20988, - 0, - 0, - 0, - 0, - 0, - 20989, - 0, - 0, - 0, - 20995, - 0, - 20998, - 0, - 20999, - 0, - 0, - 0, - 0, - 21000, - 21001, - 0, - 0, - 0, - 0, - 21008, - 0, - 21010, - 0, - 21016, - 0, - 0, - 0, - 21017, - 21018, - 0, - 0, - 0, - 0, - 0, - 21021, - 21026, - 21027, - 21028, - 0, - 0, - 21029, - 0, - 0, - 0, - 0, - 0, - 21030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21031, - 21032, - 0, - 0, - 0, - 0, - 0, - 21037, - 0, - 0, - 21038, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21039, - 0, - 21041, - 0, - 21046, - 21047, - 0, - 0, - 0, - 21049, - 21053, - 0, - 0, - 21057, - 21064, - 21065, - 0, - 0, - 21066, - 21067, - 0, - 0, - 0, - 21069, - 0, - 0, - 0, - 21071, - 21072, - 0, - 0, - 21073, - 0, - 21074, - 0, - 0, - 21078, - 0, - 0, - 0, - 0, - 21079, - 0, - 0, - 21080, - 21081, - 0, - 0, - 21086, - 21087, - 0, - 21089, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21091, - 0, - 21093, - 0, - 21094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21095, - 0, - 0, - 0, - 0, - 0, - 21096, - 0, - 21098, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21099, - 0, - 0, - 21100, - 21101, - 21102, - 0, - 0, - 0, - 0, - 0, - 21103, - 0, - 21104, - 0, - 0, - 0, - 0, - 0, - 21105, - 21108, - 21109, - 0, - 0, - 21112, - 21113, - 0, - 0, - 0, - 0, - 0, - 0, - 21115, - 21122, - 21123, - 0, - 0, - 0, - 0, - 0, - 21125, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21129, - 21131, - 0, - 0, - 21134, - 0, - 0, - 0, - 21137, - 21142, - 0, - 21143, - 0, - 0, - 21144, - 0, - 21145, - 21146, - 0, - 21152, - 21154, - 21155, - 21156, - 0, - 0, - 0, - 21160, - 0, - 0, - 0, - 0, - 0, - 0, - 21161, - 0, - 21164, - 0, - 21166, - 0, - 0, - 0, - 0, - 21170, - 0, - 0, - 0, - 0, - 21171, - 0, - 0, - 21172, - 0, - 21174, - 0, - 21175, - 0, - 0, - 0, - 0, - 0, - 21176, - 21179, - 21188, - 0, - 0, - 0, - 21189, - 0, - 0, - 21190, - 0, - 0, - 0, - 21192, - 0, - 0, - 21193, - 0, - 0, - 0, - 21198, - 0, - 21212, - 0, - 0, - 21213, - 0, - 0, - 0, - 0, - 0, - 0, - 21215, - 21216, - 0, - 0, - 21223, - 21225, - 0, - 21226, - 0, - 0, - 0, - 0, - 21227, - 21228, - 0, - 0, - 21229, - 0, - 0, - 0, - 0, - 21230, - 21236, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21237, - 0, - 0, - 21238, - 21239, - 0, - 0, - 0, - 0, - 21256, - 0, - 0, - 0, - 0, - 0, - 21257, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21259, - 0, - 0, - 0, - 21263, - 0, - 21272, - 0, - 21274, - 0, - 21282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21283, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21294, - 0, - 0, - 21297, - 0, - 0, - 0, - 0, - 21298, - 0, - 0, - 0, - 21299, - 0, - 21300, - 21302, - 0, - 21316, - 0, - 21318, - 21322, - 21323, - 0, - 21324, - 0, - 21326, - 0, - 0, - 0, - 21327, - 21328, - 0, - 0, - 0, - 21352, - 0, - 0, - 21354, - 21361, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21362, - 0, - 0, - 0, - 21363, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21366, - 0, - 0, - 21367, - 21372, - 21374, - 0, - 0, - 0, - 21375, - 21377, - 0, - 21378, - 0, - 0, - 0, - 21380, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21381, - 0, - 0, - 0, - 0, - 0, - 0, - 21382, - 0, - 21383, - 0, - 0, - 21384, - 0, - 0, - 21385, - 0, - 0, - 0, - 0, - 21389, - 21390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21397, - 21398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21399, - 0, - 21400, - 0, - 0, - 0, - 0, - 21402, - 0, - 0, - 0, - 21403, - 21404, - 0, - 21405, - 21406, - 0, - 0, - 0, - 21407, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21408, - 0, - 0, - 0, - 0, - 21409, - 0, - 21421, - 0, - 21422, - 0, - 0, - 0, - 21425, - 21428, - 0, - 0, - 0, - 0, - 21429, - 0, - 0, - 0, - 0, - 0, - 21433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21434, - 0, - 21443, - 0, - 21444, - 21449, - 0, - 21452, - 0, - 21453, - 21454, - 0, - 0, - 0, - 21457, - 0, - 0, - 21458, - 0, - 0, - 0, - 21460, - 21461, - 0, - 0, - 21464, - 0, - 0, - 0, - 21473, - 21478, - 0, - 0, - 21479, - 0, - 0, - 21481, - 21483, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21484, - 0, - 0, - 21485, - 21486, - 0, - 0, - 21488, - 0, - 0, - 0, - 0, - 0, - 0, - 21523, - 0, - 0, - 21525, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21526, - 0, - 0, - 0, - 0, - 0, - 0, - 21529, - 21530, - 0, - 0, - 21531, - 0, - 0, - 21533, - 0, - 0, - 21539, - 21564, - 0, - 21567, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21575, - 0, - 0, - 0, - 0, - 21577, - 0, - 0, - 0, - 0, - 0, - 21591, - 0, - 0, - 21604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21605, - 0, - 21606, - 0, - 0, - 21617, - 21618, - 21619, - 21620, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21623, - 0, - 0, - 0, - 0, - 21631, - 0, - 21635, - 0, - 0, - 0, - 0, - 21639, - 21646, - 21653, - 21662, - 0, - 0, - 21663, - 21664, - 0, - 21666, - 0, - 0, - 21667, - 0, - 21670, - 21672, - 21673, - 0, - 21674, - 21683, - 0, - 0, - 0, - 0, - 0, - 21684, - 0, - 21694, - 0, - 0, - 0, - 0, - 21695, - 21700, - 0, - 21703, - 0, - 21704, - 0, - 0, - 21709, - 0, - 0, - 0, - 21710, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21711, - 0, - 0, - 0, - 21712, - 0, - 21717, - 0, - 21730, - 0, - 0, - 0, - 21731, - 21733, - 0, - 0, - 0, - 0, - 21737, - 21741, - 21742, - 0, - 21747, - 0, - 0, - 0, - 21749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21750, - 0, - 0, - 0, - 0, - 0, - 21752, - 0, - 0, - 0, - 0, - 21753, - 0, - 0, - 0, - 0, - 0, - 0, - 21755, - 21756, - 0, - 21757, - 0, - 0, - 0, - 0, - 0, - 0, - 21760, - 0, - 0, - 21763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21764, - 0, - 0, - 21766, - 0, - 0, - 21767, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21773, - 0, - 21774, - 0, - 0, - 21775, - 0, - 0, - 0, - 0, - 21776, - 0, - 0, - 21777, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21780, - 21787, - 21788, - 21791, - 0, - 0, - 0, - 21797, - 0, - 0, - 0, - 0, - 0, - 21805, - 0, - 0, - 0, - 0, - 21806, - 0, - 21807, - 21809, - 0, - 21810, - 21811, - 0, - 21817, - 21819, - 21820, - 0, - 21823, - 0, - 21824, - 0, - 0, - 21825, - 0, - 0, - 21826, - 21832, - 0, - 0, - 0, - 0, - 0, - 21833, - 21848, - 21849, - 0, - 0, - 21867, - 21870, - 21871, - 21873, - 0, - 0, - 0, - 21874, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21875, - 0, - 21878, - 0, - 0, - 0, - 21879, - 0, - 21881, - 21886, - 0, - 0, - 0, - 0, - 21887, - 0, - 0, - 21888, - 21894, - 21895, - 21897, - 0, - 21901, - 0, - 21904, - 0, - 0, - 21906, - 0, - 0, - 0, - 21909, - 21910, - 21911, - 0, - 0, - 21912, - 0, - 0, - 21913, - 21914, - 21915, - 0, - 21919, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21921, - 0, - 0, - 21922, - 21933, - 21939, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21944, - 0, - 0, - 0, - 0, - 0, - 21945, - 0, - 21947, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21949, - 0, - 0, - 0, - 21950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21951, - 0, - 21952, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21954, - 21957, - 0, - 0, - 0, - 0, - 21958, - 0, - 21959, - 0, - 0, - 0, - 0, - 0, - 0, - 21962, - 21963, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21964, - 21965, - 0, - 0, - 21969, - 21970, - 0, - 0, - 0, - 21974, - 0, - 0, - 21980, - 21981, - 0, - 21982, - 0, - 0, - 0, - 0, - 0, - 21985, - 0, - 21988, - 0, - 21992, - 0, - 21999, - 0, - 0, - 0, - 0, - 0, - 0, - 22001, - 0, - 22002, - 0, - 0, - 0, - 0, - 0, - 0, - 22003, - 0, - 0, - 0, - 0, - 0, - 22004, - 0, - 0, - 0, - 22008, - 0, - 22009, - 22015, - 0, - 0, - 22016, - 0, - 0, - 0, - 22017, - 22019, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22020, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22021, - 22037, - 0, - 22039, - 0, - 0, - 0, - 22040, - 0, - 0, - 0, - 22048, - 22049, - 0, - 0, - 22053, - 22055, - 22056, - 22059, - 0, - 0, - 22060, - 22061, - 0, - 0, - 22064, - 0, - 0, - 0, - 0, - 22066, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22073, - 0, - 0, - 0, - 22074, - 22075, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22076, - 0, - 0, - 0, - 0, - 22077, - 22084, - 22099, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22104, - 0, - 0, - 22107, - 0, - 22108, - 0, - 22109, - 0, - 22110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22111, - 22119, - 0, - 22120, - 22122, - 0, - 0, - 0, - 0, - 22125, - 0, - 0, - 0, - 22128, - 22129, - 0, - 0, - 0, - 0, - 0, - 0, - 22141, - 0, - 0, - 0, - 22142, - 0, - 0, - 22144, - 22146, - 0, - 22148, - 22149, - 22151, - 22154, - 0, - 0, - 0, - 22162, - 0, - 0, - 0, - 0, - 22164, - 22177, - 0, - 0, - 0, - 0, - 22179, - 0, - 22182, - 22183, - 0, - 0, - 22184, - 22188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22190, - 0, - 22194, - 22201, - 0, - 0, - 22208, - 0, - 22209, - 0, - 22212, - 0, - 0, - 22215, - 0, - 22223, - 22231, - 0, - 0, - 22232, - 0, - 22234, - 0, - 0, - 22235, - 22236, - 0, - 22237, - 0, - 22240, - 0, - 0, - 0, - 0, - 0, - 22241, - 0, - 0, - 0, - 22242, - 22246, - 22247, - 0, - 0, - 0, - 22259, - 22268, - 0, - 22269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22270, - 0, - 0, - 0, - 0, - 22271, - 0, - 22272, - 0, - 22277, - 0, - 0, - 0, - 0, - 0, - 22278, - 22280, - 22283, - 22286, - 0, - 0, - 22287, - 22289, - 0, - 0, - 22290, - 0, - 22293, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22295, - 0, - 22301, - 22302, - 0, - 0, - 0, - 22305, - 0, - 22308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22315, - 0, - 0, - 0, - 22317, - 0, - 22334, - 0, - 0, - 0, - 22335, - 0, - 0, - 0, - 0, - 0, - 22336, - 0, - 22338, - 22344, - 0, - 22347, - 22349, - 0, - 22350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22357, - 0, - 0, - 0, - 0, - 0, - 22358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22359, - 22360, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22361, - 22366, - 0, - 0, - 22369, - 0, - 22370, - 22373, - 0, - 0, - 0, - 0, - 0, - 22375, - 0, - 22377, - 0, - 0, - 0, - 0, - 0, - 22378, - 0, - 0, - 0, - 0, - 22381, - 0, - 0, - 0, - 0, - 22382, - 0, - 22383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22391, - 0, - 0, - 22392, - 22395, - 22396, - 22402, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22405, - 0, - 0, - 22406, - 0, - 0, - 22408, - 0, - 0, - 22409, - 22410, - 0, - 0, - 0, - 0, - 0, - 0, - 22424, - 0, - 0, - 0, - 0, - 22426, - 0, - 0, - 0, - 22427, - 0, - 22428, - 0, - 22432, - 0, - 22435, - 22442, - 22443, - 0, - 0, - 0, - 0, - 22444, - 0, - 0, - 0, - 0, - 0, - 22446, - 0, - 22454, - 0, - 22455, - 0, - 0, - 0, - 22465, - 0, - 22470, - 0, - 22471, - 0, - 0, - 0, - 0, - 22472, - 22473, - 0, - 22487, - 0, - 0, - 0, - 22488, - 0, - 0, - 0, - 0, - 22489, - 0, - 0, - 22499, - 0, - 0, - 0, - 0, - 0, - 0, - 22514, - 0, - 0, - 22515, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22516, - 0, - 0, - 0, - 22517, - 22520, - 0, - 0, - 0, - 22534, - 0, - 0, - 22535, - 0, - 0, - 22536, - 0, - 22540, - 22553, - 0, - 22555, - 0, - 0, - 0, - 0, - 22561, - 0, - 0, - 22562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22566, - 0, - 0, - 0, - 0, - 22567, - 22568, - 0, - 0, - 22575, - 0, - 22579, - 0, - 22582, - 22583, - 22585, - 0, - 0, - 0, - 0, - 0, - 22586, - 0, - 0, - 22587, - 0, - 0, - 22590, - 0, - 0, - 0, - 0, - 0, - 22591, - 0, - 22592, - 0, - 0, - 0, - 0, - 0, - 22593, - 0, - 22602, - 0, - 0, - 22604, - 0, - 0, - 22609, - 0, - 0, - 22618, - 0, - 0, - 0, - 0, - 0, - 0, - 22619, - 0, - 22624, - 22625, - 0, - 0, - 22638, - 0, - 0, - 0, - 0, - 0, - 22639, - 0, - 0, - 22640, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22644, - 0, - 22645, - 22647, - 0, - 0, - 0, - 0, - 22652, - 22653, - 0, - 0, - 0, - 22654, - 0, - 22655, - 0, - 0, - 0, - 22656, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22673, - 22675, - 22676, - 0, - 0, - 22678, - 22679, - 0, - 22691, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22693, - 0, - 0, - 22696, - 0, - 22699, - 22707, - 22708, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22718, - 0, - 22719, - 0, - 0, - 0, - 0, - 22723, - 0, - 0, - 0, - 22724, - 22725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22726, - 22728, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22729, - 0, - 0, - 22731, - 0, - 0, - 0, - 0, - 22732, - 22735, - 22736, - 0, - 0, - 0, - 0, - 22739, - 0, - 22749, - 0, - 0, - 22751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22758, - 0, - 0, - 0, - 0, - 0, - 22760, - 0, - 0, - 0, - 0, - 0, - 22764, - 22765, - 22766, - 0, - 22768, - 0, - 0, - 0, - 0, - 0, - 22769, - 22770, - 0, - 0, - 0, - 0, - 0, - 0, - 22771, - 0, - 0, - 22772, - 22775, - 0, - 22776, - 22777, - 22780, - 0, - 0, - 22782, - 22784, - 0, - 22787, - 0, - 22789, - 22796, - 0, - 0, - 0, - 0, - 0, - 22798, - 0, - 0, - 0, - 0, - 0, - 0, - 22802, - 0, - 22803, - 22804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22805, - 0, - 0, - 22810, - 22811, - 22814, - 22816, - 0, - 22825, - 22826, - 0, - 22831, - 22833, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22834, - 0, - 22836, - 22838, - 0, - 22839, - 0, - 0, - 0, - 0, - 0, - 22840, - 0, - 22847, - 0, - 0, - 0, - 0, - 0, - 22856, - 22857, - 0, - 22858, - 22859, - 0, - 0, - 22862, - 0, - 0, - 22864, - 0, - 0, - 0, - 0, - 22865, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22866, - 0, - 22867, - 22868, - 0, - 0, - 0, - 0, - 22869, - 0, - 22871, - 0, - 22872, - 0, - 22873, - 22881, - 22882, - 22884, - 22885, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22886, - 22887, - 0, - 22894, - 0, - 22895, - 0, - 0, - 0, - 22900, - 0, - 22901, - 0, - 0, - 0, - 0, - 22904, - 0, - 0, - 0, - 0, - 22905, - 22907, - 0, - 0, - 0, - 22915, - 22917, - 0, - 0, - 22918, - 0, - 0, - 0, - 22920, - 0, - 0, - 0, - 22929, - 22930, - 0, - 0, - 0, - 22941, - 22942, - 0, - 0, - 0, - 22943, - 0, - 0, - 0, - 22944, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22946, - 0, - 22947, - 0, - 0, - 22954, - 0, - 22956, - 0, - 0, - 22962, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22963, - 0, - 0, - 22964, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22965, - 0, - 22968, - 0, - 0, - 0, - 22969, - 0, - 0, - 0, - 0, - 0, - 22970, - 0, - 22971, - 0, - 0, - 0, - 0, - 0, - 22978, - 0, - 0, - 22979, - 0, - 22987, - 0, - 0, - 22989, - 0, - 0, - 0, - 0, - 0, - 0, - 22990, - 0, - 23005, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23006, - 23007, - 23008, - 0, - 0, - 23023, - 23024, - 23029, - 0, - 0, - 0, - 0, - 23030, - 0, - 0, - 0, - 0, - 0, - 23032, - 0, - 0, - 0, - 0, - 0, - 23035, - 0, - 0, - 0, - 0, - 23038, - 0, - 0, - 0, - 23048, - 0, - 23049, - 23052, - 23053, - 23060, - 23061, - 0, - 23063, - 0, - 0, - 0, - 0, - 23067, - 23068, - 0, - 0, - 0, - 23069, - 23073, - 0, - 0, - 0, - 23127, - 0, - 23128, - 0, - 0, - 0, - 0, - 0, - 23129, - 0, - 23138, - 23141, - 0, - 23149, - 0, - 0, - 23150, - 0, - 0, - 0, - 23152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23154, - 0, - 0, - 0, - 0, - 23157, - 23159, - 23160, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23180, - 0, - 0, - 0, - 0, - 23181, - 0, - 0, - 23188, - 0, - 23189, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23195, - 0, - 0, - 23196, - 23199, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23202, - 0, - 23204, - 0, - 23207, - 0, - 23209, - 23210, - 0, - 0, - 0, - 0, - 0, - 0, - 23227, - 23229, - 0, - 0, - 23230, - 23234, - 23238, - 0, - 0, - 0, - 23245, - 23246, - 23248, - 0, - 0, - 0, - 0, - 23249, - 23254, - 0, - 0, - 0, - 23265, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23268, - 0, - 23276, - 0, - 0, - 0, - 0, - 23277, - 0, - 23297, - 0, - 23298, - 0, - 0, - 0, - 0, - 23299, - 0, - 23302, - 0, - 0, - 23303, - 23312, - 0, - 0, - 23314, - 0, - 23320, - 0, - 0, - 0, - 0, - 23324, - 0, - 23325, - 0, - 23328, - 0, - 23334, - 0, - 0, - 0, - 23337, - 0, - 0, - 0, - 0, - 23343, - 23344, - 23346, - 0, - 23348, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23353, - 0, - 0, - 0, - 0, - 23355, - 0, - 23356, - 23358, - 0, - 0, - 0, - 23359, - 23360, - 0, - 23361, - 0, - 23367, - 0, - 23369, - 0, - 0, - 23373, - 0, - 23378, - 23379, - 0, - 23382, - 23383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23387, - 0, - 0, - 0, - 0, - 0, - 0, - 23388, - 23390, - 0, - 0, - 23393, - 23398, - 0, - 0, - 0, - 23399, - 0, - 0, - 0, - 23400, - 0, - 0, - 0, - 0, - 23401, - 0, - 0, - 0, - 23415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23416, - 0, - 23422, - 0, - 23443, - 23444, - 0, - 0, - 0, - 0, - 23448, - 0, - 23454, - 0, - 0, - 0, - 0, - 0, - 0, - 23456, - 0, - 0, - 23458, - 23464, - 0, - 0, - 0, - 0, - 0, - 0, - 23465, - 0, - 0, - 0, - 23470, - 23471, - 0, - 0, - 23472, - 0, - 0, - 0, - 23473, - 23496, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23497, - 0, - 23499, - 0, - 0, - 23502, - 0, - 0, - 23503, - 0, - 0, - 23513, - 0, - 0, - 23515, - 0, - 0, - 0, - 23517, - 0, - 0, - 0, - 0, - 23518, - 23519, - 23521, - 23524, - 0, - 23525, - 23528, - 23539, - 0, - 0, - 0, - 0, - 0, - 23541, - 0, - 0, - 23544, - 0, - 0, - 23556, - 0, - 0, - 23557, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23559, - 0, - 23560, - 0, - 0, - 23561, - 0, - 0, - 23566, - 0, - 0, - 0, - 0, - 0, - 23568, - 23569, - 23570, - 0, - 0, - 0, - 0, - 23571, - 0, - 23574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23575, - 0, - 23579, - 0, - 0, - 23581, - 0, - 0, - 0, - 0, - 0, - 0, - 23587, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23596, - 23598, - 0, - 0, - 0, - 0, - 23602, - 23606, - 0, - 0, - 23607, - 0, - 23608, - 0, - 0, - 0, - 23614, - 23616, - 0, - 0, - 0, - 0, - 0, - 23618, - 0, - 0, - 23619, - 0, - 0, - 0, - 0, - 23621, - 23626, - 0, - 23627, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23629, - 0, - 23630, - 0, - 0, - 0, - 0, - 23634, - 0, - 23636, - 0, - 0, - 0, - 0, - 0, - 0, - 23638, - 0, - 0, - 0, - 0, - 23640, - 23667, - 0, - 23669, - 0, - 0, - 0, - 23681, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23682, - 0, - 23683, - 0, - 0, - 0, - 0, - 0, - 23684, - 0, - 0, - 0, - 23685, - 23689, - 0, - 23693, - 23694, - 23700, - 0, - 23702, - 0, - 23709, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23712, - 0, - 0, - 0, - 0, - 0, - 23714, - 0, - 0, - 23715, - 0, - 0, - 0, - 0, - 23718, - 0, - 0, - 23720, - 0, - 0, - 0, - 0, - 23722, - 0, - 0, - 0, - 23726, - 23729, - 0, - 23741, - 23746, - 0, - 23748, - 0, - 0, - 0, - 0, - 23749, - 0, - 0, - 0, - 0, - 0, - 23750, - 0, - 0, - 0, - 0, - 23751, - 0, - 23753, - 0, - 0, - 0, - 0, - 23757, - 23765, - 0, - 0, - 0, - 23770, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23771, - 0, - 23772, - 23781, - 0, - 0, - 23796, - 0, - 0, - 0, - 0, - 23798, - 0, - 23799, - 0, - 0, - 0, - 23802, - 0, - 0, - 23806, - 0, - 23807, - 0, - 0, - 23808, - 0, - 23809, - 0, - 23819, - 0, - 0, - 0, - 23821, - 0, - 23827, - 0, - 0, - 0, - 23829, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23830, - 0, - 0, - 0, - 0, - 0, - 0, - 23832, - 23833, - 23834, - 23835, - 0, - 0, - 0, - 0, - 23837, - 23838, - 0, - 0, - 0, - 0, - 0, - 23846, - 0, - 0, - 0, - 0, - 0, - 0, - 23847, - 0, - 0, - 0, - 0, - 0, - 23879, - 23881, - 0, - 0, - 23882, - 23883, - 23895, - 0, - 23899, - 0, - 0, - 0, - 0, - 23901, - 0, - 0, - 0, - 0, - 0, - 0, - 23902, - 0, - 0, - 0, - 0, - 0, - 23903, - 23905, - 0, - 23906, - 0, - 23907, - 23918, - 23919, - 23920, - 0, - 23922, - 0, - 23924, - 0, - 23927, - 0, - 23934, - 0, - 23937, - 23941, - 0, - 23942, - 23946, - 0, - 0, - 0, - 0, - 0, - 23955, - 23956, - 23958, - 0, - 0, - 0, - 0, - 0, - 0, - 23959, - 0, - 23962, - 23965, - 0, - 23966, - 0, - 0, - 0, - 0, - 23967, - 23968, - 0, - 0, - 23973, - 0, - 0, - 23974, - 0, - 0, - 0, - 0, - 23975, - 0, - 23976, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23977, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23980, - 0, - 0, - 23984, - 0, - 23985, - 0, - 0, - 23987, - 0, - 0, - 23988, - 23990, - 23991, - 0, - 0, - 0, - 0, - 0, - 0, - 23992, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23994, - 0, - 0, - 0, - 23998, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23999, - 0, - 0, - 24003, - 0, - 24004, - 0, - 24006, - 0, - 0, - 0, - 24007, - 0, - 0, - 24008, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24009, - 0, - 0, - 24010, - 0, - 0, - 24011, - 0, - 0, - 24013, - 24014, - 0, - 0, - 24015, - 24016, - 24027, - 0, - 24028, - 24029, - 0, - 24030, - 0, - 0, - 0, - 0, - 0, - 24033, - 24034, - 0, - 24035, - 0, - 0, - 24036, - 0, - 0, - 24044, - 0, - 24048, - 24049, - 24063, - 24067, - 0, - 24068, - 24070, - 0, - 0, - 24071, - 24078, - 24087, - 0, - 24090, - 0, - 0, - 0, - 24095, - 0, - 24098, - 24101, - 24104, - 24106, - 0, - 24107, - 0, - 0, - 0, - 24108, - 0, - 0, - 0, - 0, - 24110, - 24111, - 0, - 24113, - 0, - 0, - 24115, - 24120, - 0, - 0, - 0, - 0, - 0, - 0, - 24124, - 0, - 24125, - 0, - 24126, - 0, - 24127, - 0, - 0, - 0, - 0, - 0, - 24135, - 0, - 0, - 24136, - 0, - 24137, - 24142, - 0, - 0, - 0, - 24146, - 0, - 0, - 24147, - 24149, - 24154, - 0, - 24163, - 0, - 0, - 0, - 24165, - 24166, - 24167, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24169, - 24170, - 24175, - 0, - 0, - 0, - 24178, - 0, - 0, - 24179, - 0, - 0, - 24181, - 0, - 24184, - 24197, - 0, - 24201, - 24204, - 0, - 0, - 0, - 0, - 0, - 0, - 24206, - 24212, - 24220, - 0, - 0, - 0, - 24224, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24226, - 0, - 24234, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24235, - 0, - 24236, - 0, - 0, - 0, - 0, - 0, - 24239, - 24240, - 24241, - 0, - 0, - 24248, - 0, - 0, - 24249, - 0, - 24251, - 0, - 0, - 0, - 0, - 0, - 0, - 24253, - 0, - 24268, - 0, - 0, - 0, - 24269, - 0, - 24271, - 24272, - 0, - 0, - 0, - 0, - 24273, - 0, - 0, - 24274, - 0, - 0, - 24279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24280, - 0, - 24293, - 24294, - 0, - 0, - 0, - 0, - 0, - 0, - 24296, - 0, - 0, - 24323, - 0, - 0, - 0, - 24329, - 24330, - 24331, - 24339, - 0, - 24351, - 0, - 0, - 24369, - 24370, - 0, - 0, - 0, - 24371, - 0, - 0, - 0, - 0, - 24372, - 24373, - 24374, - 0, - 0, - 0, - 0, - 0, - 24378, - 0, - 0, - 0, - 0, - 24379, - 0, - 24381, - 0, - 24383, - 24389, - 0, - 24390, - 0, - 0, - 24394, - 24395, - 24400, - 0, - 0, - 0, - 24401, - 24402, - 0, - 24406, - 0, - 0, - 0, - 24411, - 0, - 0, - 0, - 24415, - 0, - 24416, - 0, - 0, - 0, - 0, - 0, - 24417, - 0, - 24419, - 0, - 24422, - 0, - 24423, - 24428, - 0, - 24435, - 0, - 0, - 0, - 24439, - 0, - 0, - 0, - 24440, - 24442, - 24446, - 0, - 0, - 0, - 24447, - 24448, - 24449, - 24452, - 0, - 0, - 0, - 0, - 24453, - 24457, - 0, - 0, - 24458, - 24459, - 24460, - 0, - 24465, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24470, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24471, - 0, - 24473, - 24474, - 24475, - 24476, - 0, - 24478, - 0, - 0, - 0, - 0, - 24480, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24481, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24482, - 24485, - 0, - 0, - 0, - 0, - 24486, - 0, - 0, - 0, - 24488, - 0, - 0, - 0, - 24494, - 0, - 0, - 0, - 0, - 24497, - 0, - 0, - 24498, - 0, - 0, - 0, - 24499, - 24506, - 0, - 0, - 0, - 24507, - 0, - 0, - 24511, - 0, - 0, - 24513, - 24514, - 0, - 0, - 0, - 0, - 0, - 24517, - 0, - 24518, - 0, - 24520, - 0, - 24521, - 24524, - 24525, - 0, - 0, - 0, - 0, - 0, - 24527, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24537, - 24539, - 0, - 24540, - 0, - 0, - 0, - 24548, - 0, - 0, - 0, - 0, - 0, - 24549, - 24550, - 0, - 0, - 0, - 24553, - 24554, - 0, - 24555, - 0, - 24556, - 0, - 24558, - 0, - 0, - 0, - 0, - 0, - 24560, - 0, - 0, - 0, - 24561, - 0, - 0, - 0, - 0, - 0, - 24562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24567, - 0, - 0, - 0, - 0, - 0, - 24569, - 0, - 0, - 0, - 24574, - 0, - 24575, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24577, - 24581, - 0, - 24584, - 0, - 0, - 0, - 0, - 0, - 24585, - 0, - 0, - 0, - 0, - 0, - 24586, - 0, - 0, - 24587, - 0, - 24588, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24590, - 24591, - 0, - 0, - 0, - 0, - 24592, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24594, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24596, - 24597, - 0, - 0, - 0, - 0, - 24602, - 24603, - 0, - 0, - 0, - 0, - 24604, - 0, - 0, - 24605, - 0, - 24610, - 0, - 0, - 24611, - 0, - 0, - 0, - 0, - 24612, - 24615, - 24616, - 24624, - 0, - 0, - 0, - 24627, - 0, - 24638, - 24639, - 0, - 0, - 0, - 0, - 24640, - 0, - 0, - 0, - 24655, - 24656, - 24657, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24662, - 0, - 24663, - 24664, - 0, - 0, - 0, - 0, - 0, - 24665, - 0, - 0, - 0, - 0, - 24667, - 0, - 0, - 0, - 0, - 0, - 0, - 24668, - 24669, - 0, - 24670, - 24674, - 0, - 0, - 0, - 24675, - 0, - 24678, - 0, - 0, - 24679, - 0, - 0, - 0, - 24681, - 0, - 24683, - 0, - 0, - 0, - 0, - 24684, - 0, - 24685, - 0, - 0, - 24686, - 0, - 0, - 24688, - 24689, - 0, - 0, - 0, - 0, - 24690, - 24691, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24697, - 0, - 24698, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24709, - 0, - 0, - 0, - 0, - 0, - 24710, - 0, - 24712, - 0, - 0, - 0, - 0, - 0, - 0, - 24713, - 24714, - 0, - 24715, - 0, - 24716, - 24718, - 0, - 24719, - 0, - 0, - 0, - 0, - 24720, - 0, - 0, - 24725, - 0, - 0, - 24738, - 0, - 24749, - 24750, - 0, - 0, - 0, - 24752, - 0, - 0, - 0, - 24753, - 0, - 0, - 0, - 24758, - 0, - 0, - 0, - 0, - 0, - 24762, - 0, - 24763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24764, - 0, - 0, - 0, - 0, - 0, - 24765, - 24767, - 24768, - 0, - 24772, - 0, - 0, - 0, - 0, - 24773, - 0, - 0, - 0, - 0, - 24777, - 0, - 0, - 0, - 0, - 0, - 24785, - 0, - 24786, - 24788, - 0, - 0, - 0, - 24789, - 0, - 0, - 0, - 0, - 24794, - 24798, - 0, - 24799, - 24800, - 0, - 0, - 0, - 24803, - 0, - 24804, - 24806, - 0, - 24807, - 0, - 0, - 0, - 24810, - 0, - 0, - 0, - 0, - 0, - 0, - 24827, - 24828, - 0, - 24835, - 0, - 0, - 0, - 0, - 0, - 0, - 24836, - 0, - 0, - 0, - 0, - 0, - 24839, - 0, - 24843, - 24844, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24847, - 0, - 0, - 24848, - 0, - 0, - 0, - 0, - 0, - 0, - 24849, - 0, - 24850, - 24851, - 0, - 0, - 0, - 24852, - 0, - 24853, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24854, - 0, - 24855, - 0, - 0, - 24868, - 0, - 0, - 0, - 24883, - 0, - 0, - 0, - 24884, - 0, - 24895, - 24897, - 0, - 0, - 0, - 0, - 0, - 24899, - 0, - 0, - 0, - 0, - 0, - 24900, - 0, - 24913, - 0, - 0, - 0, - 0, - 0, - 0, - 24914, - 0, - 0, - 24917, - 24930, - 24931, - 0, - 0, - 0, - 24932, - 0, - 0, - 24939, - 0, - 0, - 24942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24945, - 24950, - 0, - 24951, - 0, - 0, - 24953, - 0, - 0, - 0, - 24954, - 0, - 24959, - 0, - 0, - 0, - 24961, - 0, - 0, - 24962, - 0, - 24964, - 24968, - 24970, - 24972, - 0, - 0, - 0, - 0, - 0, - 24976, - 0, - 0, - 0, - 24977, - 0, - 24982, - 0, - 0, - 24983, - 0, - 0, - 24984, - 0, - 0, - 0, - 24993, - 0, - 0, - 0, - 24994, - 0, - 0, - 25001, - 0, - 0, - 0, - 25003, - 0, - 0, - 25018, - 0, - 0, - 25023, - 0, - 0, - 0, - 25034, - 0, - 0, - 25035, - 25036, - 0, - 25037, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25039, - 0, - 0, - 0, - 0, - 0, - 25040, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25042, - 0, - 0, - 25043, - 25045, - 0, - 0, - 0, - 0, - 0, - 0, - 25049, - 0, - 0, - 25051, - 0, - 25052, - 25053, - 0, - 0, - 25054, - 0, - 0, - 0, - 25055, - 0, - 0, - 0, - 0, - 25057, - 25059, - 0, - 0, - 25060, - 25064, - 0, - 25065, - 25069, - 25070, - 0, - 0, - 0, - 0, - 25072, - 0, - 25073, - 0, - 25090, - 0, - 0, - 25092, - 25093, - 25101, - 0, - 0, - 0, - 0, - 0, - 0, - 25105, - 25108, - 0, - 0, - 25113, - 0, - 0, - 25115, - 25116, - 0, - 0, - 0, - 0, - 0, - 0, - 25117, - 0, - 0, - 0, - 25120, - 25121, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25125, - 0, - 0, - 0, - 25126, - 0, - 25130, - 25134, - 0, - 25139, - 0, - 25143, - 0, - 0, - 0, - 25151, - 0, - 25161, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25163, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25174, - 0, - 25175, - 0, - 25207, - 0, - 0, - 0, - 25209, - 0, - 0, - 0, - 0, - 25213, - 0, - 25219, - 0, - 25223, - 0, - 25225, - 0, - 0, - 0, - 25227, - 0, - 0, - 0, - 25228, - 0, - 0, - 0, - 25229, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25231, - 25233, - 0, - 0, - 0, - 0, - 25237, - 25239, - 0, - 0, - 0, - 25243, - 0, - 0, - 0, - 25252, - 0, - 25257, - 25258, - 0, - 0, - 0, - 0, - 25260, - 25265, - 0, - 25268, - 0, - 0, - 25273, - 25324, - 0, - 25325, - 0, - 25326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25327, - 0, - 0, - 0, - 0, - 0, - 25328, - 0, - 0, - 0, - 0, - 0, - 0, - 25332, - 0, - 0, - 0, - 25333, - 0, - 0, - 0, - 25336, - 25337, - 25338, - 0, - 0, - 25343, - 0, - 25350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25352, - 0, - 25354, - 0, - 25375, - 0, - 25379, - 0, - 0, - 0, - 0, - 25384, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25386, - 0, - 25388, - 0, - 25390, - 0, - 0, - 25399, - 0, - 0, - 25401, - 0, - 0, - 0, - 25402, - 0, - 0, - 0, - 25407, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25413, - 25415, - 0, - 0, - 25417, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25419, - 0, - 0, - 0, - 25421, - 0, - 0, - 0, - 25424, - 0, - 0, - 0, - 0, - 25433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25435, - 0, - 0, - 0, - 0, - 0, - 0, - 25436, - 0, - 0, - 0, - 25437, - 0, - 0, - 25440, - 0, - 0, - 0, - 0, - 0, - 0, - 25442, - 0, - 0, - 25443, - 0, - 25446, - 0, - 0, - 25449, - 0, - 0, - 0, - 25450, - 0, - 0, - 0, - 0, - 25452, - 0, - 25453, - 25454, - 25455, - 0, - 0, - 0, - 25456, - 0, - 25457, - 0, - 0, - 0, - 25459, - 0, - 25461, - 0, - 25468, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25469, - 0, - 0, - 0, - 0, - 0, - 25471, - 0, - 0, - 0, - 0, - 0, - 25474, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25475, - 0, - 0, - 0, - 0, - 25477, - 0, - 0, - 0, - 0, - 25483, - 0, - 0, - 0, - 0, - 0, - 25484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25485, - 0, - 25497, - 0, - 0, - 25498, - 0, - 25504, - 0, - 25510, - 0, - 25512, - 0, - 0, - 25513, - 25514, - 0, - 0, - 0, - 0, - 0, - 0, - 25517, - 25518, - 25519, - 0, - 25520, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25521, - 0, - 25522, - 25527, - 25534, - 0, - 25536, - 0, - 25537, - 0, - 0, - 25548, - 25550, - 0, - 0, - 25551, - 0, - 25552, - 0, - 0, - 0, - 0, - 0, - 25554, - 0, - 25555, - 0, - 25556, - 25557, - 25568, - 0, - 0, - 0, - 25570, - 25571, - 0, - 0, - 0, - 0, - 0, - 0, - 25574, - 0, - 0, - 0, - 0, - 25579, - 0, - 0, - 0, - 25581, - 0, - 0, - 0, - 25582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25588, - 0, - 0, - 0, - 0, - 25589, - 0, - 0, - 0, - 0, - 25590, - 0, - 25591, - 25592, - 25593, - 0, - 25594, - 0, - 0, - 0, - 25596, - 0, - 25597, - 25615, - 0, - 0, - 0, - 0, - 0, - 25618, - 0, - 0, - 0, - 0, - 25619, - 25623, - 0, - 0, - 25629, - 0, - 0, - 25631, - 0, - 0, - 0, - 25635, - 25636, - 0, - 0, - 25649, - 0, - 0, - 0, - 0, - 25654, - 0, - 0, - 0, - 25661, - 25663, - 0, - 0, - 25671, - 0, - 0, - 25678, - 25698, - 0, - 25699, - 25702, - 25703, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25704, - 0, - 0, - 0, - 0, - 0, - 25706, - 0, - 0, - 25710, - 0, - 25711, - 0, - 25712, - 0, - 25715, - 25716, - 25717, - 0, - 0, - 25718, - 25728, - 25732, - 0, - 0, - 0, - 25734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25737, - 0, - 0, - 25739, - 0, - 0, - 0, - 25740, - 0, - 25741, - 25745, - 0, - 25746, - 0, - 25748, - 25772, - 25778, - 0, - 0, - 0, - 0, - 0, - 25780, - 0, - 0, - 0, - 0, - 25781, - 0, - 25782, - 25784, - 25785, - 0, - 0, - 0, - 25789, - 0, - 0, - 0, - 0, - 0, - 0, - 25797, - 25801, - 0, - 0, - 0, - 25808, - 25809, - 0, - 0, - 25811, - 25814, - 25815, - 0, - 0, - 25817, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25820, - 0, - 0, - 0, - 0, - 25832, - 25833, - 0, - 0, - 0, - 25846, - 0, - 0, - 0, - 25847, - 25848, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25849, - 25850, - 0, - 0, - 25851, - 0, - 0, - 25852, - 0, - 25862, - 0, - 0, - 0, - 25863, - 25865, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25867, - 25868, - 0, - 25869, - 25874, - 0, - 25875, - 0, - 25876, - 25877, - 0, - 0, - 0, - 0, - 25878, - 25902, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25903, - 25904, - 25905, - 0, - 0, - 0, - 25908, - 25909, - 0, - 0, - 0, - 0, - 25910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25912, - 0, - 25913, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25914, - 0, - 0, - 25916, - 0, - 0, - 0, - 0, - 0, - 25917, - 25927, - 0, - 0, - 0, - 0, - 25928, - 0, - 0, - 25930, - 0, - 0, - 0, - 25933, - 0, - 0, - 25938, - 25942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25945, - 0, - 25950, - 0, - 25956, - 0, - 0, - 25961, - 25962, - 0, - 0, - 25963, - 0, - 25964, - 25965, - 25966, - 0, - 0, - 0, - 0, - 0, - 25967, - 0, - 0, - 0, - 0, - 25968, - 0, - 0, - 0, - 25969, - 25971, - 0, - 0, - 0, - 0, - 0, - 25973, - 25975, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25978, - 0, - 25981, - 0, - 0, - 0, - 25982, - 0, - 0, - 0, - 25984, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25993, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26002, - 0, - 0, - 0, - 26005, - 0, - 0, - 0, - 26006, - 26007, - 0, - 0, - 26014, - 26015, - 26016, - 0, - 0, - 0, - 0, - 0, - 0, - 26017, - 26018, - 26020, - 0, - 26022, - 26023, - 0, - 0, - 0, - 26024, - 26028, - 0, - 26029, - 26033, - 26034, - 26044, - 0, - 0, - 0, - 0, - 0, - 26046, - 0, - 0, - 26047, - 0, - 0, - 26049, - 0, - 26050, - 0, - 26051, - 0, - 0, - 0, - 0, - 0, - 26053, - 0, - 0, - 0, - 0, - 26054, - 26059, - 0, - 0, - 0, - 0, - 0, - 0, - 26060, - 0, - 26066, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26067, - 0, - 26069, - 0, - 0, - 26071, - 0, - 0, - 0, - 26073, - 0, - 26074, - 26077, - 0, - 0, - 0, - 0, - 26078, - 0, - 0, - 0, - 26079, - 0, - 26090, - 0, - 0, - 26094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26095, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26096, - 26101, - 0, - 26107, - 26122, - 0, - 26124, - 0, - 0, - 26125, - 0, - 0, - 0, - 0, - 0, - 0, - 26136, - 26141, - 26155, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26164, - 26166, - 0, - 0, - 0, - 26167, - 0, - 26170, - 26171, - 0, - 0, - 26172, - 0, - 0, - 26174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26175, - 0, - 0, - 0, - 26176, - 26177, - 0, - 26321, - 26322, - 0, - 26323, - 0, - 0, - 26324, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26325, - 0, - 26331, - 0, - 0, - 0, - 0, - 0, - 0, - 26335, - 0, - 0, - 0, - 26350, - 0, - 0, - 0, - 26379, - 0, - 0, - 26382, - 26383, - 26385, - 0, - 0, - 26392, - 26406, - 0, - 0, - 0, - 0, - 26411, - 0, - 0, - 0, - 0, - 0, - 26412, - 0, - 0, - 26420, - 0, - 0, - 26423, - 0, - 26424, - 26426, - 26432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26435, - 0, - 26436, - 0, - 0, - 0, - 0, - 0, - 26441, - 0, - 26444, - 0, - 0, - 0, - 26446, - 0, - 0, - 0, - 0, - 26447, - 0, - 0, - 0, - 0, - 26449, - 0, - 26450, - 26452, - 0, - 26453, - 26454, - 0, - 0, - 0, - 26455, - 0, - 0, - 0, - 26456, - 0, - 0, - 26458, - 0, - 0, - 26460, - 0, - 26463, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26464, - 26470, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26473, - 0, - 0, - 26474, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26475, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26477, - 0, - 26485, - 0, - 0, - 26486, - 0, - 26487, - 0, - 0, - 26488, - 26493, - 26494, - 0, - 0, - 26495, - 0, - 26497, - 26504, - 26506, - 0, - 0, - 0, - 0, - 0, - 26507, - 0, - 0, - 0, - 0, - 0, - 26509, - 0, - 0, - 26510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26512, - 0, - 26513, - 26515, - 0, - 0, - 0, - 26518, - 0, - 0, - 0, - 26519, - 0, - 26524, - 26526, - 0, - 0, - 0, - 26527, - 0, - 26532, - 0, - 26533, - 26537, - 26558, - 0, - 0, - 0, - 26559, - 0, - 0, - 0, - 26571, - 0, - 0, - 26573, - 0, - 26588, - 0, - 26593, - 0, - 0, - 0, - 0, - 0, - 0, - 26603, - 0, - 26604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26606, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26607, - 26609, - 26611, - 26614, - 0, - 0, - 0, - 26616, - 26620, - 0, - 26621, - 0, - 0, - 0, - 0, - 0, - 26627, - 0, - 26629, - 0, - 0, - 26630, - 0, - 0, - 26632, - 26643, - 0, - 0, - 0, - 26644, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26646, - 26647, - 0, - 0, - 0, - 26650, - 0, - 0, - 26656, - 0, - 0, - 0, - 0, - 26663, - 26670, - 26671, - 0, - 0, - 0, - 26685, - 26686, - 26687, - 0, - 26689, - 0, - 0, - 0, - 0, - 26744, - 0, - 26745, - 0, - 26747, - 26748, - 0, - 26749, - 26750, - 26751, - 0, - 0, - 0, - 0, - 26752, - 26755, - 0, - 0, - 0, - 26756, - 26769, - 0, - 0, - 0, - 26774, - 0, - 0, - 0, - 0, - 0, - 26775, - 0, - 26777, - 26778, - 0, - 26786, - 0, - 0, - 0, - 26787, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26788, - 0, - 0, - 26789, - 0, - 0, - 0, - 0, - 0, - 26791, - 0, - 26792, - 26793, - 0, - 0, - 0, - 26794, - 0, - 26797, - 26798, - 0, - 0, - 0, - 26800, - 0, - 0, - 26803, - 0, - 26804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26805, - 0, - 0, - 26808, - 0, - 0, - 26809, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26812, - 0, - 26825, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26826, - 0, - 0, - 26827, - 26829, - 26834, - 0, - 0, - 0, - 0, - 26835, - 0, - 0, - 26849, - 0, - 26851, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26852, - 0, - 26853, - 26857, - 0, - 26858, - 0, - 26859, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26876, - 0, - 26878, - 26882, - 26883, - 0, - 0, - 0, - 0, - 26890, - 26894, - 0, - 0, - 0, - 0, - 26895, - 26896, - 0, - 0, - 0, - 0, - 0, - 26900, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26911, - 26913, - 26914, - 26915, - 26916, - 26919, - 0, - 0, - 0, - 26921, - 26922, - 0, - 0, - 26925, - 0, - 0, - 0, - 26928, - 0, - 0, - 26929, - 26930, - 0, - 0, - 0, - 26931, - 0, - 26932, - 0, - 0, - 0, - 0, - 0, - 26933, - 0, - 0, - 0, - 0, - 0, - 0, - 26937, - 0, - 0, - 26943, - 0, - 0, - 26944, - 0, - 0, - 0, - 26946, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26956, - 0, - 26958, - 0, - 0, - 26963, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26965, - 0, - 26969, - 26970, - 26972, - 0, - 0, - 0, - 0, - 0, - 26973, - 0, - 26974, - 0, - 26978, - 0, - 26980, - 0, - 0, - 0, - 0, - 0, - 0, - 26982, - 0, - 26986, - 26987, - 0, - 26990, - 0, - 0, - 0, - 0, - 27003, - 27006, - 0, - 0, - 27007, - 27010, - 27012, - 27013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27014, - 27015, - 27018, - 0, - 27019, - 0, - 0, - 0, - 0, - 0, - 27025, - 0, - 0, - 0, - 27026, - 0, - 0, - 0, - 0, - 27029, - 27030, - 27031, - 27034, - 0, - 0, - 27036, - 27037, - 0, - 0, - 0, - 27038, - 27042, - 0, - 0, - 0, - 27044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27045, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27047, - 27049, - 0, - 27050, - 0, - 0, - 0, - 27051, - 27052, - 0, - 27055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27056, - 27058, - 27059, - 0, - 27061, - 0, - 27064, - 0, - 0, - 0, - 0, - 0, - 27069, - 0, - 0, - 27070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27072, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27076, - 0, - 0, - 0, - 0, - 0, - 27078, - 0, - 27079, - 0, - 0, - 0, - 27081, - 0, - 0, - 0, - 0, - 0, - 0, - 27082, - 0, - 27083, - 27086, - 0, - 0, - 0, - 0, - 27087, - 0, - 0, - 0, - 0, - 0, - 27088, - 27090, - 0, - 27094, - 0, - 0, - 27095, - 0, - 27099, - 27102, - 0, - 0, - 0, - 27103, - 0, - 0, - 0, - 0, - 27105, - 0, - 0, - 0, - 27106, - 0, - 0, - 0, - 0, - 0, - 0, - 27107, - 0, - 0, - 0, - 0, - 27108, - 27117, - 0, - 0, - 0, - 0, - 27118, - 0, - 0, - 27124, - 0, - 27126, - 0, - 0, - 27130, - 27131, - 0, - 0, - 0, - 0, - 0, - 0, - 27147, - 0, - 0, - 0, - 0, - 27148, - 27149, - 0, - 0, - 0, - 0, - 27150, - 27151, - 0, - 27152, - 0, - 27159, - 0, - 0, - 0, - 27164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27175, - 0, - 27189, - 0, - 0, - 27191, - 0, - 27193, - 0, - 27195, - 0, - 27198, - 0, - 0, - 0, - 0, - 0, - 27200, - 0, - 0, - 0, - 0, - 27202, - 0, - 0, - 0, - 0, - 27203, - 0, - 0, - 27204, - 0, - 0, - 27206, - 0, - 27207, - 0, - 0, - 0, - 0, - 27209, - 0, - 0, - 0, - 27213, - 0, - 0, - 27216, - 27219, - 27220, - 27222, - 27223, - 0, - 27224, - 0, - 27225, - 27226, - 0, - 0, - 27233, - 0, - 0, - 0, - 0, - 27235, - 0, - 27237, - 0, - 27238, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27239, - 0, - 27242, - 27243, - 0, - 27250, - 0, - 0, - 0, - 27251, - 0, - 27253, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27254, - 27255, - 27258, - 0, - 0, - 0, - 27259, - 0, - 0, - 0, - 0, - 0, - 0, - 27267, - 0, - 27276, - 27278, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27296, - 27297, - 27301, - 0, - 0, - 0, - 0, - 0, - 0, - 27302, - 0, - 0, - 0, - 0, - 0, - 0, - 27312, - 27313, - 0, - 0, - 0, - 0, - 0, - 27318, - 0, - 27320, - 0, - 27329, - 0, - 27330, - 27331, - 0, - 27332, - 0, - 0, - 0, - 0, - 27340, - 0, - 0, - 0, - 27348, - 0, - 0, - 0, - 0, - 0, - 0, - 27350, - 0, - 27351, - 0, - 0, - 0, - 0, - 27355, - 0, - 0, - 27358, - 27359, - 27361, - 0, - 0, - 0, - 27365, - 0, - 27367, - 0, - 27376, - 27378, - 0, - 0, - 27379, - 0, - 0, - 0, - 0, - 0, - 0, - 27396, - 0, - 27397, - 27404, - 0, - 0, - 0, - 0, - 0, - 27408, - 0, - 0, - 0, - 0, - 27453, - 0, - 0, - 0, - 27456, - 0, - 0, - 0, - 27458, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27459, - 0, - 0, - 0, - 27460, - 0, - 0, - 27461, - 0, - 27465, - 27467, - 0, - 0, - 27469, - 0, - 27470, - 0, - 27471, - 0, - 27477, - 27482, - 0, - 0, - 0, - 0, - 0, - 0, - 27484, - 0, - 0, - 0, - 0, - 0, - 0, - 27485, - 0, - 0, - 0, - 0, - 0, - 27493, - 0, - 27494, - 27502, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27511, - 27532, - 0, - 0, - 0, - 27533, - 27545, - 0, - 0, - 0, - 27546, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27547, - 0, - 0, - 27549, - 27550, - 0, - 27551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27555, - 0, - 0, - 27571, - 0, - 27573, - 27574, - 27575, - 27577, - 0, - 27578, - 0, - 0, - 27579, - 27585, - 0, - 0, - 0, - 0, - 0, - 27586, - 0, - 0, - 27588, - 27589, - 0, - 0, - 0, - 0, - 27596, - 0, - 0, - 27600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27608, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27610, - 0, - 0, - 0, - 27618, - 0, - 0, - 27620, - 0, - 0, - 0, - 27631, - 0, - 0, - 27632, - 27634, - 0, - 27636, - 27638, - 0, - 0, - 0, - 27643, - 0, - 27644, - 27649, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27651, - 27660, - 0, - 27661, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27662, - 0, - 0, - 27664, - 0, - 27665, - 0, - 0, - 0, - 27669, - 0, - 27671, - 0, - 0, - 0, - 27673, - 27674, - 0, - 0, - 0, - 27682, - 0, - 0, - 0, - 27711, - 0, - 27712, - 27713, - 27719, - 27720, - 0, - 0, - 27728, - 0, - 27729, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27731, - 0, - 0, - 27732, - 0, - 27733, - 0, - 27738, - 0, - 0, - 0, - 27742, - 0, - 0, - 0, - 27743, - 27744, - 0, - 0, - 0, - 0, - 0, - 0, - 27745, - 27746, - 0, - 0, - 0, - 27747, - 27748, - 27751, - 27752, - 0, - 0, - 0, - 27768, - 27770, - 0, - 0, - 0, - 27774, - 27775, - 0, - 27776, - 27777, - 0, - 0, - 27781, - 0, - 27784, - 0, - 27786, - 0, - 0, - 27791, - 0, - 27792, - 27793, - 27804, - 0, - 27812, - 27813, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27814, - 0, - 27825, - 0, - 27827, - 0, - 0, - 0, - 0, - 27828, - 27861, - 27862, - 0, - 0, - 0, - 27864, - 0, - 0, - 0, - 27865, - 27884, - 0, - 27889, - 0, - 0, - 0, - 0, - 0, - 27890, - 0, - 27891, - 0, - 0, - 0, - 27892, - 0, - 0, - 0, - 0, - 0, - 27897, - 27898, - 0, - 0, - 27899, - 0, - 0, - 0, - 27901, - 27905, - 0, - 0, - 27920, - 0, - 0, - 27921, - 0, - 27922, - 0, - 0, - 0, - 27931, - 27934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27941, - 0, - 27942, - 0, - 27945, - 0, - 27947, - 27954, - 0, - 0, - 0, - 0, - 27960, - 27963, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27964, - 27965, - 0, - 0, - 0, - 27967, - 0, - 27969, - 27975, - 0, - 27976, - 27977, - 0, - 27981, - 0, - 27983, - 28051, - 28052, - 0, - 0, - 0, - 0, - 0, - 28056, - 0, - 0, - 0, - 0, - 0, - 0, - 28058, - 28059, - 0, - 0, - 28061, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28063, - 0, - 0, - 0, - 0, - 0, - 0, - 28066, - 0, - 0, - 0, - 0, - 0, - 0, - 28069, - 28070, - 28072, - 0, - 28073, - 0, - 0, - 28074, - 0, - 0, - 0, - 0, - 28075, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28078, - 0, - 0, - 0, - 0, - 28085, - 0, - 0, - 0, - 0, - 28086, - 0, - 0, - 0, - 0, - 0, - 0, - 28088, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28090, - 0, - 28097, - 28114, - 28115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28116, - 0, - 0, - 0, - 0, - 0, - 28118, - 0, - 28129, - 0, - 28131, - 0, - 0, - 28135, - 0, - 0, - 0, - 28140, - 28141, - 0, - 0, - 0, - 28146, - 0, - 0, - 0, - 0, - 28152, - 0, - 0, - 0, - 0, - 28155, - 28157, - 28161, - 0, - 0, - 0, - 0, - 28166, - 0, - 28167, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28172, - 0, - 0, - 0, - 0, - 0, - 0, - 28173, - 0, - 0, - 28175, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28178, - 28188, - 0, - 28190, - 0, - 0, - 0, - 0, - 0, - 28191, - 0, - 28193, - 28206, - 0, - 0, - 28207, - 28209, - 0, - 28211, - 0, - 28213, - 0, - 0, - 0, - 28215, - 28216, - 28217, - 0, - 28222, - 0, - 28223, - 28225, - 0, - 0, - 0, - 28226, - 0, - 28227, - 28229, - 28232, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28235, - 0, - 28241, - 0, - 0, - 28242, - 0, - 0, - 0, - 0, - 28243, - 0, - 0, - 0, - 28245, - 0, - 0, - 0, - 28248, - 28250, - 0, - 28251, - 28252, - 0, - 0, - 0, - 0, - 0, - 0, - 28253, - 0, - 0, - 28254, - 28255, - 0, - 0, - 28256, - 0, - 0, - 28258, - 0, - 0, - 0, - 0, - 0, - 28259, - 0, - 0, - 28260, - 0, - 0, - 28261, - 0, - 0, - 0, - 0, - 28262, - 28263, - 0, - 0, - 28264, - 0, - 0, - 0, - 28266, - 0, - 28268, - 28269, - 0, - 28270, - 28272, - 28274, - 0, - 28277, - 28278, - 0, - 0, - 0, - 28279, - 0, - 28280, - 28281, - 28283, - 0, - 28292, - 0, - 28294, - 0, - 28297, - 0, - 0, - 0, - 0, - 28299, - 0, - 0, - 0, - 0, - 0, - 28300, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28302, - 28303, - 0, - 0, - 0, - 0, - 28304, - 0, - 0, - 28305, - 0, - 28312, - 0, - 28313, - 28314, - 0, - 0, - 0, - 0, - 0, - 0, - 28315, - 0, - 0, - 0, - 28320, - 28321, - 0, - 0, - 28328, - 0, - 0, - 0, - 28329, - 28338, - 0, - 28339, - 0, - 0, - 28344, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28347, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28348, - 0, - 0, - 0, - 0, - 0, - 28411, - 0, - 28412, - 28413, - 0, - 28416, - 0, - 0, - 0, - 28420, - 0, - 0, - 0, - 0, - 0, - 28421, - 0, - 0, - 0, - 0, - 28423, - 0, - 0, - 0, - 28424, - 0, - 0, - 28428, - 0, - 0, - 0, - 0, - 0, - 28429, - 0, - 0, - 0, - 28431, - 28434, - 0, - 28458, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28464, - 0, - 0, - 0, - 0, - 28465, - 0, - 28467, - 0, - 0, - 0, - 0, - 0, - 0, - 28471, - 0, - 0, - 0, - 0, - 28474, - 0, - 28480, - 0, - 28481, - 0, - 0, - 28485, - 0, - 0, - 0, - 0, - 28486, - 28488, - 0, - 0, - 28489, - 0, - 0, - 0, - 0, - 28492, - 0, - 0, - 0, - 28495, - 0, - 28497, - 0, - 28499, - 0, - 0, - 0, - 0, - 28500, - 0, - 0, - 28502, - 28503, - 0, - 0, - 0, - 28508, - 0, - 0, - 0, - 28510, - 0, - 0, - 28512, - 28513, - 28514, - 28521, - 0, - 28526, - 0, - 28527, - 28528, - 0, - 0, - 0, - 0, - 28529, - 0, - 0, - 28532, - 0, - 0, - 28537, - 28538, - 0, - 0, - 0, - 28539, - 0, - 28548, - 0, - 28553, - 28554, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28560, - 28563, - 0, - 0, - 28564, - 0, - 0, - 0, - 0, - 28565, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28566, - 28568, - 0, - 0, - 0, - 0, - 0, - 0, - 28569, - 0, - 0, - 0, - 28570, - 0, - 28572, - 28573, - 0, - 0, - 0, - 0, - 28575, - 0, - 0, - 0, - 0, - 28576, - 28581, - 28588, - 0, - 0, - 28589, - 0, - 0, - 0, - 28590, - 28595, - 0, - 28598, - 0, - 0, - 28601, - 0, - 0, - 28605, - 0, - 0, - 0, - 0, - 28614, - 28615, - 28619, - 0, - 0, - 0, - 0, - 0, - 0, - 28620, - 0, - 28626, - 0, - 0, - 28628, - 0, - 28631, - 0, - 28632, - 0, - 0, - 0, - 0, - 0, - 0, - 28635, - 0, - 0, - 0, - 28637, - 28638, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28639, - 0, - 28643, - 0, - 0, - 28652, - 0, - 0, - 0, - 28662, - 0, - 28670, - 28671, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28672, - 28673, - 28675, - 28676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28691, - 0, - 0, - 0, - 28695, - 0, - 0, - 0, - 28696, - 0, - 28697, - 28698, - 0, - 28705, - 0, - 28707, - 28708, - 28710, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28711, - 28728, - 0, - 0, - 0, - 28736, - 0, - 0, - 0, - 28737, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28738, - 0, - 28739, - 0, - 28741, - 0, - 0, - 28742, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28745, - 0, - 0, - 0, - 0, - 0, - 0, - 28749, - 28750, - 28752, - 28754, - 28756, - 0, - 28757, - 0, - 0, - 0, - 0, - 28759, - 28760, - 0, - 0, - 0, - 0, - 0, - 0, - 28762, - 0, - 0, - 0, - 28764, - 0, - 0, - 0, - 0, - 0, - 0, - 28766, - 0, - 28767, - 28768, - 0, - 0, - 0, - 0, - 28769, - 28770, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28772, - 0, - 28773, - 0, - 28782, - 0, - 0, - 0, - 0, - 0, - 0, - 28784, - 0, - 28785, - 0, - 28786, - 0, - 0, - 0, - 28787, - 0, - 0, - 0, - 28797, - 0, - 0, - 0, - 0, - 0, - 0, - 28799, - 0, - 0, - 28801, - 0, - 0, - 0, - 0, - 28802, - 0, - 28805, - 0, - 0, - 28806, - 0, - 0, - 28807, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28808, - 0, - 0, - 0, - 0, - 0, - 28810, - 28812, - 0, - 0, - 28816, - 28819, - 0, - 0, - 28821, - 0, - 28826, - 0, - 0, - 0, - 28842, - 28852, - 0, - 0, - 28853, - 0, - 28854, - 28855, - 0, - 0, - 0, - 28857, - 0, - 0, - 0, - 28858, - 0, - 28867, - 28868, - 28869, - 0, - 0, - 0, - 28874, - 28880, - 28882, - 28890, - 28892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28895, - 0, - 0, - 0, - 28898, - 28899, - 0, - 0, - 0, - 28900, - 0, - 0, - 28904, - 0, - 28906, - 0, - 0, - 0, - 0, - 28907, - 0, - 0, - 0, - 0, - 0, - 0, - 28908, - 0, - 0, - 0, - 28910, - 0, - 28914, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28915, - 28916, - 28919, - 0, - 0, - 28920, - 0, - 28921, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28924, - 0, - 0, - 0, - 0, - 28926, - 28929, - 0, - 0, - 0, - 28930, - 0, - 28936, - 0, - 28939, - 0, - 0, - 0, - 0, - 28942, - 0, - 0, - 0, - 0, - 0, - 0, - 28956, - 0, - 0, - 0, - 28966, - 0, - 0, - 0, - 0, - 28967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28968, - 0, - 28971, - 0, - 28975, - 28976, - 0, - 28982, - 28983, - 0, - 0, - 28984, - 28989, - 28996, - 28997, - 28998, - 0, - 0, - 0, - 0, - 0, - 0, - 28999, - 0, - 0, - 0, - 0, - 0, - 29000, - 0, - 29001, - 0, - 0, - 0, - 29009, - 0, - 0, - 29011, - 0, - 0, - 29021, - 0, - 0, - 0, - 0, - 29024, - 0, - 29025, - 0, - 0, - 0, - 0, - 0, - 29026, - 0, - 0, - 0, - 29036, - 0, - 0, - 0, - 29037, - 0, - 0, - 0, - 0, - 29038, - 0, - 29045, - 0, - 29047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29051, - 0, - 0, - 0, - 29054, - 29056, - 29062, - 0, - 29070, - 29082, - 0, - 0, - 0, - 29083, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29084, - 0, - 0, - 0, - 0, - 29085, - 29088, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29090, - 29097, - 0, - 0, - 0, - 29103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29105, - 0, - 0, - 0, - 0, - 0, - 29107, - 0, - 29109, - 0, - 0, - 0, - 29115, - 0, - 0, - 29120, - 0, - 0, - 29138, - 29140, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29152, - 0, - 29160, - 29174, - 0, - 29176, - 0, - 0, - 29180, - 0, - 29181, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29228, - 0, - 0, - 29229, - 0, - 0, - 29230, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29234, - 0, - 0, - 0, - 29241, - 0, - 29245, - 0, - 29248, - 0, - 29250, - 29256, - 29280, - 0, - 29282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29285, - 0, - 0, - 29286, - 29291, - 29292, - 0, - 0, - 0, - 0, - 29294, - 0, - 29295, - 0, - 0, - 0, - 0, - 0, - 29296, - 29297, - 29298, - 29300, - 0, - 29302, - 0, - 0, - 29304, - 29307, - 0, - 29312, - 0, - 0, - 0, - 29322, - 0, - 0, - 29323, - 0, - 0, - 29324, - 29326, - 29328, - 0, - 29335, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29338, - 29339, - 0, - 0, - 0, - 0, - 0, - 29341, - 29343, - 0, - 0, - 0, - 0, - 29344, - 0, - 0, - 0, - 0, - 0, - 29345, - 0, - 0, - 0, - 0, - 29346, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29347, - 29348, - 29349, - 0, - 0, - 29354, - 0, - 0, - 29355, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29357, - 0, - 0, - 0, - 0, - 29364, - 0, - 29365, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29366, - 0, - 0, - 29368, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29378, - 0, - 29381, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29386, - 0, - 0, - 0, - 0, - 0, - 0, - 29389, - 0, - 0, - 0, - 29390, - 0, - 0, - 29391, - 29397, - 0, - 29398, - 29412, - 29414, - 29418, - 29419, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29420, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29423, - 0, - 0, - 0, - 29435, - 0, - 0, - 0, - 29437, - 0, - 0, - 29439, - 0, - 29441, - 0, - 0, - 0, - 0, - 29443, - 0, - 29446, - 29450, - 29452, - 0, - 0, - 0, - 0, - 0, - 29456, - 0, - 0, - 0, - 0, - 0, - 29461, - 0, - 0, - 0, - 29464, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29468, - 0, - 29473, - 0, - 0, - 0, - 29486, - 0, - 0, - 0, - 29490, - 0, - 0, - 0, - 29491, - 29492, - 0, - 0, - 29497, - 0, - 0, - 0, - 29498, - 0, - 29499, - 0, - 29502, - 29505, - 0, - 29509, - 0, - 0, - 0, - 29510, - 0, - 0, - 0, - 29512, - 0, - 0, - 0, - 29516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29518, - 0, - 29519, - 0, - 0, - 0, - 0, - 0, - 29520, - 29521, - 29529, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29530, - 0, - 0, - 29531, - 29538, - 0, - 29540, - 0, - 0, - 0, - 29542, - 0, - 29543, - 29544, - 29547, - 0, - 0, - 29548, - 0, - 0, - 0, - 29549, - 0, - 0, - 0, - 29550, - 0, - 0, - 29552, - 0, - 0, - 0, - 0, - 29558, - 29561, - 0, - 29562, - 29564, - 0, - 0, - 29565, - 0, - 0, - 29566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29578, - 29584, - 29586, - 29591, - 0, - 0, - 0, - 0, - 29593, - 29594, - 0, - 0, - 29597, - 0, - 0, - 29613, - 0, - 29614, - 0, - 29615, - 0, - 0, - 0, - 0, - 29616, - 29617, - 0, - 0, - 29625, - 0, - 0, - 0, - 29632, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29633, - 0, - 0, - 0, - 0, - 0, - 29634, - 29635, - 29637, - 0, - 29638, - 0, - 29641, - 29643, - 0, - 0, - 0, - 0, - 0, - 0, - 29644, - 0, - 29645, - 0, - 29649, - 0, - 0, - 0, - 29650, - 0, - 29653, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29656, - 29659, - 0, - 0, - 29660, - 0, - 0, - 0, - 29661, - 0, - 0, - 0, - 0, - 0, - 29664, - 0, - 0, - 0, - 29671, - 29673, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29675, - 0, - 29677, - 29679, - 0, - 0, - 29684, - 0, - 0, - 0, - 0, - 0, - 29685, - 0, - 0, - 0, - 29687, - 0, - 0, - 0, - 29688, - 0, - 29689, - 29690, - 29700, - 0, - 29701, - 0, - 0, - 0, - 29702, - 0, - 29706, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29720, - 0, - 29721, - 0, - 29727, - 0, - 29733, - 29734, - 0, - 29750, - 29761, - 0, - 29763, - 0, - 0, - 0, - 0, - 0, - 29764, - 0, - 0, - 29765, - 0, - 0, - 0, - 29771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29772, - 0, - 0, - 0, - 29773, - 29774, - 29775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29822, - 0, - 0, - 0, - 29824, - 0, - 29825, - 0, - 0, - 0, - 0, - 0, - 29827, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29829, - 0, - 29832, - 29834, - 0, - 0, - 29835, - 0, - 0, - 29837, - 29838, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29843, - 0, - 0, - 0, - 0, - 29844, - 29845, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29849, - 0, - 0, - 29869, - 29872, - 29890, - 29905, - 0, - 0, - 0, - 0, - 0, - 29907, - 29921, - 0, - 29922, - 0, - 0, - 29923, - 29926, - 29944, - 29946, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29947, - 29948, - 0, - 0, - 0, - 29951, - 0, - 0, - 0, - 0, - 0, - 29953, - 0, - 0, - 29956, - 0, - 29957, - 0, - 0, - 29962, - 0, - 0, - 0, - 0, - 29971, - 0, - 0, - 0, - 29972, - 0, - 0, - 0, - 0, - 0, - 29978, - 0, - 29979, - 29992, - 30007, - 30008, - 30010, - 0, - 0, - 0, - 30013, - 0, - 0, - 0, - 0, - 30014, - 30016, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30017, - 0, - 0, - 0, - 0, - 0, - 30023, - 30031, - 0, - 0, - 30033, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30034, - 0, - 30038, - 0, - 30039, - 0, - 30040, - 0, - 0, - 0, - 0, - 0, - 0, - 30067, - 30068, - 0, - 0, - 0, - 30069, - 0, - 30072, - 0, - 0, - 0, - 30073, - 0, - 0, - 0, - 0, - 30075, - 0, - 0, - 0, - 0, - 0, - 0, - 30079, - 0, - 0, - 30080, - 0, - 0, - 0, - 0, - 0, - 30082, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30084, - 30090, - 0, - 0, - 30091, - 0, - 0, - 0, - 0, - 30098, - 30118, - 0, - 30119, - 0, - 30121, - 30130, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30131, - 30132, - 30133, - 0, - 0, - 0, - 0, - 0, - 0, - 30135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30136, - 0, - 0, - 30137, - 30138, - 0, - 0, - 0, - 30139, - 30146, - 0, - 0, - 0, - 0, - 0, - 30147, - 0, - 0, - 30148, - 30151, - 0, - 0, - 0, - 30168, - 0, - 30172, - 30173, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30180, - 30181, - 0, - 30192, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30194, - 30196, - 0, - 0, - 30199, - 0, - 0, - 30202, - 0, - 0, - 0, - 0, - 30203, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30213, - 0, - 0, - 0, - 30216, - 0, - 0, - 30217, - 0, - 0, - 0, - 30218, - 0, - 0, - 0, - 0, - 30219, - 0, - 30220, - 0, - 30222, - 30227, - 0, - 0, - 0, - 0, - 0, - 30231, - 0, - 0, - 30233, - 30235, - 0, - 0, - 0, - 0, - 30238, - 0, - 30240, - 30243, - 30245, - 0, - 30250, - 30252, - 0, - 0, - 0, - 30269, - 0, - 0, - 30271, - 30272, - 0, - 0, - 0, - 30278, - 30280, - 0, - 0, - 30282, - 0, - 30284, - 0, - 30294, - 0, - 0, - 0, - 0, - 30295, - 30296, - 0, - 0, - 0, - 0, - 0, - 30298, - 30299, - 30302, - 30304, - 30306, - 0, - 0, - 0, - 0, - 0, - 0, - 30316, - 30317, - 0, - 0, - 0, - 30318, - 0, - 0, - 0, - 30319, - 0, - 30320, - 30322, - 30326, - 0, - 0, - 0, - 0, - 0, - 30327, - 0, - 30332, - 30348, - 30349, - 0, - 0, - 30356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30357, - 0, - 30358, - 0, - 30359, - 30360, - 0, - 0, - 30365, - 30366, - 30378, - 0, - 0, - 0, - 0, - 30379, - 0, - 0, - 30381, - 0, - 30385, - 0, - 30388, - 30397, - 0, - 0, - 0, - 30401, - 0, - 0, - 0, - 0, - 30403, - 0, - 0, - 0, - 0, - 0, - 30404, - 0, - 0, - 30405, - 0, - 30406, - 30408, - 0, - 30409, - 0, - 30410, - 0, - 0, - 0, - 30417, - 0, - 0, - 30418, - 30419, - 0, - 30420, - 0, - 30424, - 0, - 0, - 0, - 30427, - 30430, - 30432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30436, - 0, - 30437, - 30438, - 0, - 30441, - 30442, - 0, - 0, - 0, - 30445, - 0, - 0, - 0, - 0, - 30452, - 30456, - 30457, - 0, - 0, - 0, - 30458, - 0, - 30464, - 0, - 0, - 0, - 0, - 0, - 0, - 30467, - 0, - 30469, - 0, - 0, - 0, - 0, - 0, - 30477, - 0, - 0, - 30484, - 0, - 0, - 0, - 0, - 0, - 30485, - 0, - 0, - 0, - 0, - 0, - 30486, - 30487, - 30497, - 30498, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30505, - 0, - 30508, - 0, - 0, - 0, - 30509, - 30510, - 0, - 30514, - 30516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30523, - 0, - 30524, - 0, - 30525, - 0, - 0, - 0, - 0, - 30537, - 0, - 0, - 30538, - 0, - 0, - 0, - 0, - 0, - 30553, - 0, - 0, - 30555, - 30556, - 30558, - 30559, - 30560, - 0, - 0, - 30561, - 0, - 30562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30563, - 30570, - 30571, - 0, - 30586, - 30587, - 0, - 0, - 30590, - 0, - 0, - 30594, - 0, - 0, - 0, - 0, - 30611, - 30612, - 30623, - 30634, - 0, - 0, - 30636, - 30640, - 30655, - 30656, - 0, - 30657, - 0, - 0, - 30658, - 30669, - 0, - 30670, - 0, - 30676, - 30678, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30695, - 0, - 0, - 30698, - 0, - 0, - 0, - 0, - 30700, - 0, - 0, - 0, - 0, - 30701, - 0, - 30702, - 30703, - 0, - 0, - 0, - 0, - 30707, - 0, - 0, - 0, - 30709, - 0, - 0, - 30710, - 30719, - 30729, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30731, - 0, - 0, - 30733, - 0, - 0, - 0, - 30734, - 0, - 0, - 0, - 0, - 0, - 30736, - 30737, - 0, - 0, - 0, - 30740, - 0, - 0, - 0, - 30743, - 0, - 30746, - 0, - 30747, - 30748, - 0, - 0, - 30751, - 30752, - 30753, - 0, - 0, - 0, - 30754, - 0, - 0, - 30760, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30763, - 0, - 30764, - 0, - 0, - 30766, - 0, - 30769, - 30770, - 30771, - 30774, - 30777, - 0, - 0, - 30779, - 30780, - 30781, - 0, - 0, - 0, - 0, - 30790, - 0, - 0, - 0, - 30792, - 0, - 0, - 0, - 0, - 30810, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30812, - 30819, - 0, - 0, - 30823, - 30824, - 0, - 30825, - 0, - 30827, - 0, - 0, - 0, - 0, - 0, - 0, - 30828, - 0, - 0, - 30830, - 0, - 0, - 0, - 30834, - 0, - 30835, - 0, - 30837, - 30838, - 0, - 30845, - 0, - 0, - 0, - 0, - 0, - 30846, - 30847, - 0, - 0, - 30849, - 0, - 30851, - 0, - 0, - 0, - 0, - 0, - 30852, - 30858, - 0, - 0, - 30859, - 0, - 30865, - 0, - 0, - 30866, - 0, - 0, - 30868, - 0, - 0, - 30869, - 0, - 0, - 0, - 30881, - 30883, - 0, - 0, - 0, - 0, - 0, - 30889, - 0, - 30891, - 0, - 0, - 0, - 0, - 30894, - 0, - 30895, - 0, - 30897, - 0, - 30898, - 0, - 0, - 0, - 30904, - 30906, - 0, - 30909, - 0, - 0, - 0, - 0, - 0, - 0, - 30910, - 0, - 0, - 0, - 30915, - 30933, - 30942, - 0, - 0, - 0, - 0, - 30943, - 0, - 0, - 30945, - 0, - 0, - 0, - 0, - 0, - 0, - 30946, - 0, - 0, - 30947, - 0, - 0, - 30955, - 30956, - 0, - 0, - 30960, - 0, - 0, - 30961, - 30962, - 30966, - 0, - 0, - 30969, - 30974, - 0, - 0, - 0, - 30976, - 0, - 0, - 30977, - 0, - 30978, - 30982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30994, - 30995, - 30998, - 0, - 31000, - 0, - 0, - 31001, - 0, - 0, - 31003, - 31005, - 0, - 0, - 31006, - 31011, - 0, - 0, - 31014, - 0, - 31016, - 0, - 0, - 0, - 0, - 31018, - 0, - 0, - 31020, - 31023, - 31024, - 31025, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31027, - 31028, - 31029, - 0, - 0, - 0, - 0, - 0, - 0, - 31032, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31036, - 31037, - 31038, - 0, - 0, - 0, - 31041, - 31043, - 31045, - 0, - 31047, - 0, - 0, - 0, - 31048, - 0, - 31049, - 0, - 0, - 0, - 31053, - 31054, - 31055, - 0, - 0, - 31063, - 0, - 0, - 0, - 0, - 0, - 31066, - 0, - 31068, - 31071, - 0, - 0, - 0, - 31072, - 31073, - 0, - 0, - 0, - 0, - 31075, - 0, - 0, - 31076, - 0, - 0, - 0, - 31077, - 31079, - 0, - 31080, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31087, - 0, - 31142, - 0, - 31144, - 0, - 0, - 31145, - 31146, - 31147, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31149, - 0, - 31151, - 31152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31162, - 31171, - 31174, - 31175, - 0, - 0, - 0, - 31176, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31179, - 0, - 0, - 0, - 31186, - 0, - 0, - 0, - 31192, - 31195, - 0, - 0, - 31196, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31198, - 0, - 0, - 0, - 0, - 0, - 31199, - 0, - 0, - 0, - 31205, - 0, - 0, - 0, - 0, - 31211, - 31215, - 0, - 0, - 0, - 0, - 31231, - 0, - 31232, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31233, - 31236, - 31253, - 0, - 31254, - 0, - 0, - 0, - 0, - 0, - 0, - 31255, - 0, - 0, - 31257, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31258, - 31259, - 0, - 0, - 31260, - 0, - 31261, - 0, - 0, - 0, - 0, - 0, - 31262, - 31263, - 0, - 0, - 31264, - 0, - 31266, - 0, - 31267, - 0, - 0, - 0, - 0, - 0, - 31281, - 0, - 31282, - 0, - 31284, - 0, - 0, - 31285, - 31287, - 31288, - 0, - 0, - 31290, - 0, - 0, - 0, - 31292, - 31295, - 0, - 31299, - 0, - 31300, - 0, - 0, - 0, - 0, - 0, - 31302, - 0, - 0, - 0, - 0, - 31303, - 0, - 0, - 0, - 0, - 0, - 0, - 31304, - 0, - 0, - 0, - 0, - 0, - 31305, - 31308, - 31309, - 31315, - 0, - 31317, - 0, - 0, - 0, - 0, - 0, - 31323, - 0, - 31324, - 0, - 0, - 0, - 0, - 0, - 31325, - 31327, - 0, - 0, - 31331, - 0, - 0, - 0, - 0, - 0, - 31333, - 0, - 0, - 0, - 0, - 0, - 31336, - 0, - 0, - 31337, - 0, - 0, - 0, - 0, - 0, - 0, - 31338, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31339, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31342, - 0, - 0, - 0, - 0, - 31345, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31347, - 0, - 0, - 0, - 0, - 0, - 0, - 31348, - 0, - 0, - 31350, - 31351, - 0, - 31352, - 0, - 0, - 31354, - 0, - 0, - 0, - 0, - 31355, - 0, - 0, - 31356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31363, - 0, - 31372, - 0, - 0, - 31373, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31376, - 0, - 31388, - 0, - 31389, - 0, - 31392, - 0, - 31401, - 0, - 31405, - 31407, - 31408, - 0, - 31409, - 0, - 0, - 0, - 0, - 0, - 0, - 31413, - 31415, - 0, - 0, - 0, - 31416, - 31418, - 0, - 0, - 0, - 0, - 0, - 0, - 31422, - 31423, - 0, - 0, - 31424, - 0, - 31425, - 31432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31434, - 0, - 0, - 0, - 0, - 0, - 0, - 31435, - 0, - 0, - 0, - 0, - 31438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31442, - 0, - 31444, - 0, - 31448, - 0, - 0, - 31451, - 0, - 0, - 0, - 0, - 31452, - 0, - 31461, - 31465, - 0, - 0, - 31466, - 0, - 0, - 31467, - 0, - 0, - 31468, - 0, - 0, - 0, - 31469, - 31473, - 0, - 31476, - 0, - 0, - 0, - 0, - 31489, - 31490, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31492, - 31493, - 31494, - 0, - 0, - 0, - 0, - 31501, - 31504, - 31505, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31509, - 0, - 0, - 0, - 0, - 31510, - 0, - 0, - 31511, - 0, - 0, - 31513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31514, - 0, - 31522, - 31536, - 31539, - 31540, - 0, - 31541, - 0, - 0, - 0, - 0, - 0, - 0, - 31546, - 31553, - 31559, - 0, - 0, - 0, - 31560, - 31561, - 31562, - 0, - 0, - 31564, - 31567, - 0, - 31569, - 0, - 0, - 0, - 31570, - 0, - 0, - 0, - 0, - 31571, - 0, - 0, - 0, - 0, - 0, - 0, - 31572, - 31574, - 31580, - 31581, - 0, - 0, - 31582, - 31584, - 31585, - 31586, - 31595, - 0, - 31596, - 0, - 0, - 0, - 0, - 31597, - 0, - 31599, - 0, - 31600, - 31601, - 0, - 0, - 31603, - 31604, - 0, - 0, - 31608, - 31610, - 0, - 0, - 0, - 31611, - 0, - 31615, - 0, - 0, - 0, - 0, - 31616, - 0, - 0, - 0, - 0, - 0, - 0, - 31617, - 0, - 0, - 0, - 0, - 0, - 31618, - 0, - 0, - 0, - 0, - 0, - 0, - 31621, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31622, - 31625, - 0, - 0, - 0, - 0, - 31627, - 0, - 31641, - 0, - 0, - 31642, - 0, - 0, - 31643, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31644, - 0, - 31646, - 0, - 0, - 0, - 0, - 31648, - 0, - 0, - 0, - 31652, - 0, - 0, - 0, - 31657, - 0, - 0, - 31676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31689, - 31691, - 31692, - 0, - 31694, - 0, - 0, - 0, - 31696, - 0, - 31702, - 0, - 31703, - 0, -} - -var kStaticDictionaryWords = [31705]dictWord{ - dictWord{0, 0, 0}, - dictWord{8, 0, 1002}, - dictWord{136, 0, 1015}, - dictWord{4, 0, 683}, - dictWord{4, 10, 325}, - dictWord{138, 10, 125}, - dictWord{7, 11, 572}, - dictWord{ - 9, - 11, - 592, - }, - dictWord{11, 11, 680}, - dictWord{11, 11, 842}, - dictWord{11, 11, 924}, - dictWord{12, 11, 356}, - dictWord{12, 11, 550}, - dictWord{13, 11, 317}, - dictWord{13, 11, 370}, - dictWord{13, 11, 469}, - dictWord{13, 11, 471}, - dictWord{14, 11, 397}, - dictWord{18, 11, 69}, - dictWord{146, 11, 145}, - dictWord{ - 134, - 0, - 1265, - }, - dictWord{136, 11, 534}, - dictWord{134, 0, 1431}, - dictWord{11, 0, 138}, - dictWord{140, 0, 40}, - dictWord{4, 0, 155}, - dictWord{7, 0, 1689}, - dictWord{ - 4, - 10, - 718, - }, - dictWord{135, 10, 1216}, - dictWord{4, 0, 245}, - dictWord{5, 0, 151}, - dictWord{5, 0, 741}, - dictWord{6, 0, 1147}, - dictWord{7, 0, 498}, - dictWord{7, 0, 870}, - dictWord{7, 0, 1542}, - dictWord{12, 0, 213}, - dictWord{14, 0, 36}, - dictWord{14, 0, 391}, - dictWord{17, 0, 111}, - dictWord{18, 0, 6}, - dictWord{18, 0, 46}, - dictWord{ - 18, - 0, - 151, - }, - dictWord{19, 0, 36}, - dictWord{20, 0, 32}, - dictWord{20, 0, 56}, - dictWord{20, 0, 69}, - dictWord{20, 0, 102}, - dictWord{21, 0, 4}, - dictWord{22, 0, 8}, - dictWord{ - 22, - 0, - 10, - }, - dictWord{22, 0, 14}, - dictWord{150, 0, 31}, - dictWord{4, 0, 624}, - dictWord{135, 0, 1752}, - dictWord{5, 10, 124}, - dictWord{5, 10, 144}, - dictWord{6, 10, 548}, - dictWord{7, 10, 15}, - dictWord{7, 10, 153}, - dictWord{137, 10, 629}, - dictWord{6, 0, 503}, - dictWord{9, 0, 586}, - dictWord{13, 0, 468}, - dictWord{14, 0, 66}, - dictWord{ - 16, - 0, - 58, - }, - dictWord{7, 10, 1531}, - dictWord{8, 10, 416}, - dictWord{9, 10, 275}, - dictWord{10, 10, 100}, - dictWord{11, 10, 658}, - dictWord{11, 10, 979}, - dictWord{ - 12, - 10, - 86, - }, - dictWord{14, 10, 207}, - dictWord{15, 10, 20}, - dictWord{143, 10, 25}, - dictWord{5, 0, 603}, - dictWord{7, 0, 1212}, - dictWord{9, 0, 565}, - dictWord{ - 14, - 0, - 301, - }, - dictWord{5, 10, 915}, - dictWord{6, 10, 1783}, - dictWord{7, 10, 211}, - dictWord{7, 10, 1353}, - dictWord{9, 10, 83}, - dictWord{10, 10, 376}, - dictWord{ - 10, - 10, - 431, - }, - dictWord{11, 10, 543}, - dictWord{12, 10, 664}, - dictWord{13, 10, 280}, - dictWord{13, 10, 428}, - dictWord{14, 10, 128}, - dictWord{17, 10, 52}, - dictWord{ - 145, - 10, - 81, - }, - dictWord{4, 0, 492}, - dictWord{133, 0, 451}, - dictWord{135, 0, 835}, - dictWord{141, 0, 70}, - dictWord{132, 0, 539}, - dictWord{7, 11, 748}, - dictWord{ - 139, - 11, - 700, - }, - dictWord{7, 11, 1517}, - dictWord{11, 11, 597}, - dictWord{14, 11, 76}, - dictWord{14, 11, 335}, - dictWord{148, 11, 33}, - dictWord{6, 0, 113}, - dictWord{135, 0, 436}, - dictWord{4, 10, 338}, - dictWord{133, 10, 400}, - dictWord{136, 0, 718}, - dictWord{133, 11, 127}, - dictWord{133, 11, 418}, - dictWord{ - 6, - 0, - 1505, - }, - dictWord{7, 0, 520}, - dictWord{6, 11, 198}, - dictWord{11, 10, 892}, - dictWord{140, 11, 83}, - dictWord{4, 10, 221}, - dictWord{5, 10, 659}, - dictWord{ - 5, - 10, - 989, - }, - dictWord{7, 10, 697}, - dictWord{7, 10, 1211}, - dictWord{138, 10, 284}, - dictWord{135, 0, 1070}, - dictWord{5, 11, 276}, - dictWord{6, 11, 55}, - dictWord{ - 135, - 11, - 1369, - }, - dictWord{134, 0, 1515}, - dictWord{6, 11, 1752}, - dictWord{136, 11, 726}, - dictWord{138, 10, 507}, - dictWord{15, 0, 78}, - dictWord{4, 10, 188}, - dictWord{135, 10, 805}, - dictWord{5, 10, 884}, - dictWord{139, 10, 991}, - dictWord{133, 11, 764}, - dictWord{134, 10, 1653}, - dictWord{6, 11, 309}, - dictWord{ - 7, - 11, - 331, - }, - dictWord{138, 11, 550}, - dictWord{135, 11, 1861}, - dictWord{132, 11, 348}, - dictWord{135, 11, 986}, - dictWord{135, 11, 1573}, - dictWord{ - 12, - 0, - 610, - }, - dictWord{13, 0, 431}, - dictWord{144, 0, 59}, - dictWord{9, 11, 799}, - dictWord{140, 10, 166}, - dictWord{134, 0, 1530}, - dictWord{132, 0, 750}, - dictWord{132, 0, 307}, - dictWord{133, 0, 964}, - dictWord{6, 11, 194}, - dictWord{7, 11, 133}, - dictWord{10, 11, 493}, - dictWord{10, 11, 570}, - dictWord{139, 11, 664}, - dictWord{5, 11, 24}, - dictWord{5, 11, 569}, - dictWord{6, 11, 3}, - dictWord{6, 11, 119}, - dictWord{6, 11, 143}, - dictWord{6, 11, 440}, - dictWord{7, 11, 295}, - dictWord{ - 7, - 11, - 599, - }, - dictWord{7, 11, 1686}, - dictWord{7, 11, 1854}, - dictWord{8, 11, 424}, - dictWord{9, 11, 43}, - dictWord{9, 11, 584}, - dictWord{9, 11, 760}, - dictWord{ - 10, - 11, - 148, - }, - dictWord{10, 11, 328}, - dictWord{11, 11, 159}, - dictWord{11, 11, 253}, - dictWord{11, 11, 506}, - dictWord{12, 11, 487}, - dictWord{12, 11, 531}, - dictWord{144, 11, 33}, - dictWord{136, 10, 760}, - dictWord{5, 11, 14}, - dictWord{5, 11, 892}, - dictWord{6, 11, 283}, - dictWord{7, 11, 234}, - dictWord{136, 11, 537}, - dictWord{135, 11, 1251}, - dictWord{4, 11, 126}, - dictWord{8, 11, 635}, - dictWord{147, 11, 34}, - dictWord{4, 11, 316}, - dictWord{135, 11, 1561}, - dictWord{ - 6, - 0, - 999, - }, - dictWord{6, 0, 1310}, - dictWord{137, 11, 861}, - dictWord{4, 11, 64}, - dictWord{5, 11, 352}, - dictWord{5, 11, 720}, - dictWord{6, 11, 368}, - dictWord{ - 139, - 11, - 359, - }, - dictWord{4, 0, 75}, - dictWord{5, 0, 180}, - dictWord{6, 0, 500}, - dictWord{7, 0, 58}, - dictWord{7, 0, 710}, - dictWord{10, 0, 645}, - dictWord{136, 10, 770}, - dictWord{133, 0, 649}, - dictWord{6, 0, 276}, - dictWord{7, 0, 282}, - dictWord{7, 0, 879}, - dictWord{7, 0, 924}, - dictWord{8, 0, 459}, - dictWord{9, 0, 599}, - dictWord{9, 0, 754}, - dictWord{11, 0, 574}, - dictWord{12, 0, 128}, - dictWord{12, 0, 494}, - dictWord{13, 0, 52}, - dictWord{13, 0, 301}, - dictWord{15, 0, 30}, - dictWord{143, 0, 132}, - dictWord{132, 0, 200}, - dictWord{4, 10, 89}, - dictWord{5, 10, 489}, - dictWord{6, 10, 315}, - dictWord{7, 10, 553}, - dictWord{7, 10, 1745}, - dictWord{138, 10, 243}, - dictWord{135, 11, 1050}, - dictWord{7, 0, 1621}, - dictWord{6, 10, 1658}, - dictWord{9, 10, 3}, - dictWord{10, 10, 154}, - dictWord{11, 10, 641}, - dictWord{13, 10, 85}, - dictWord{13, 10, 201}, - dictWord{141, 10, 346}, - dictWord{6, 11, 175}, - dictWord{137, 11, 289}, - dictWord{5, 11, 432}, - dictWord{133, 11, 913}, - dictWord{ - 6, - 0, - 225, - }, - dictWord{137, 0, 211}, - dictWord{7, 0, 718}, - dictWord{8, 0, 687}, - dictWord{139, 0, 374}, - dictWord{4, 10, 166}, - dictWord{133, 10, 505}, - dictWord{ - 9, - 0, - 110, - }, - dictWord{134, 10, 1670}, - dictWord{8, 0, 58}, - dictWord{9, 0, 724}, - dictWord{11, 0, 809}, - dictWord{13, 0, 113}, - dictWord{145, 0, 72}, - dictWord{6, 0, 345}, - dictWord{7, 0, 1247}, - dictWord{144, 11, 82}, - dictWord{5, 11, 931}, - dictWord{134, 11, 1698}, - dictWord{8, 0, 767}, - dictWord{8, 0, 803}, - dictWord{9, 0, 301}, - dictWord{137, 0, 903}, - dictWord{139, 0, 203}, - dictWord{134, 0, 1154}, - dictWord{7, 0, 1949}, - dictWord{136, 0, 674}, - dictWord{134, 0, 259}, - dictWord{ - 135, - 0, - 1275, - }, - dictWord{5, 11, 774}, - dictWord{6, 11, 1637}, - dictWord{6, 11, 1686}, - dictWord{134, 11, 1751}, - dictWord{134, 0, 1231}, - dictWord{7, 10, 445}, - dictWord{8, 10, 307}, - dictWord{8, 10, 704}, - dictWord{10, 10, 41}, - dictWord{10, 10, 439}, - dictWord{11, 10, 237}, - dictWord{11, 10, 622}, - dictWord{140, 10, 201}, - dictWord{136, 0, 254}, - dictWord{6, 11, 260}, - dictWord{135, 11, 1484}, - dictWord{139, 0, 277}, - dictWord{135, 10, 1977}, - dictWord{4, 10, 189}, - dictWord{ - 5, - 10, - 713, - }, - dictWord{6, 11, 573}, - dictWord{136, 10, 57}, - dictWord{138, 10, 371}, - dictWord{132, 10, 552}, - dictWord{134, 11, 344}, - dictWord{133, 0, 248}, - dictWord{9, 0, 800}, - dictWord{10, 0, 693}, - dictWord{11, 0, 482}, - dictWord{11, 0, 734}, - dictWord{11, 0, 789}, - dictWord{134, 11, 240}, - dictWord{4, 0, 116}, - dictWord{ - 5, - 0, - 95, - }, - dictWord{5, 0, 445}, - dictWord{7, 0, 1688}, - dictWord{8, 0, 29}, - dictWord{9, 0, 272}, - dictWord{11, 0, 509}, - dictWord{11, 0, 915}, - dictWord{4, 11, 292}, - dictWord{4, 11, 736}, - dictWord{5, 11, 871}, - dictWord{6, 11, 171}, - dictWord{6, 11, 1689}, - dictWord{7, 11, 1324}, - dictWord{7, 11, 1944}, - dictWord{9, 11, 415}, - dictWord{9, 11, 580}, - dictWord{14, 11, 230}, - dictWord{146, 11, 68}, - dictWord{7, 0, 490}, - dictWord{13, 0, 100}, - dictWord{143, 0, 75}, - dictWord{135, 0, 1641}, - dictWord{133, 0, 543}, - dictWord{7, 11, 209}, - dictWord{8, 11, 661}, - dictWord{10, 11, 42}, - dictWord{11, 11, 58}, - dictWord{12, 11, 58}, - dictWord{12, 11, 118}, - dictWord{141, 11, 32}, - dictWord{5, 0, 181}, - dictWord{8, 0, 41}, - dictWord{6, 11, 63}, - dictWord{135, 11, 920}, - dictWord{133, 0, 657}, - dictWord{133, 11, 793}, - dictWord{138, 0, 709}, - dictWord{7, 0, 25}, - dictWord{8, 0, 202}, - dictWord{138, 0, 536}, - dictWord{5, 11, 665}, - dictWord{135, 10, 1788}, - dictWord{145, 10, 49}, - dictWord{9, 0, 423}, - dictWord{140, 0, 89}, - dictWord{5, 11, 67}, - dictWord{6, 11, 62}, - dictWord{6, 11, 374}, - dictWord{135, 11, 1391}, - dictWord{8, 0, 113}, - dictWord{ - 9, - 0, - 877, - }, - dictWord{10, 0, 554}, - dictWord{11, 0, 83}, - dictWord{12, 0, 136}, - dictWord{19, 0, 109}, - dictWord{9, 11, 790}, - dictWord{140, 11, 47}, - dictWord{ - 138, - 10, - 661, - }, - dictWord{4, 0, 963}, - dictWord{10, 0, 927}, - dictWord{14, 0, 442}, - dictWord{135, 10, 1945}, - dictWord{133, 0, 976}, - dictWord{132, 0, 206}, - dictWord{ - 4, - 11, - 391, - }, - dictWord{135, 11, 1169}, - dictWord{134, 0, 2002}, - dictWord{6, 0, 696}, - dictWord{134, 0, 1008}, - dictWord{134, 0, 1170}, - dictWord{132, 11, 271}, - dictWord{7, 0, 13}, - dictWord{8, 0, 226}, - dictWord{10, 0, 537}, - dictWord{11, 0, 570}, - dictWord{11, 0, 605}, - dictWord{11, 0, 799}, - dictWord{11, 0, 804}, - dictWord{ - 12, - 0, - 85, - }, - dictWord{12, 0, 516}, - dictWord{12, 0, 623}, - dictWord{13, 0, 112}, - dictWord{13, 0, 361}, - dictWord{14, 0, 77}, - dictWord{14, 0, 78}, - dictWord{17, 0, 28}, - dictWord{19, 0, 110}, - dictWord{140, 11, 314}, - dictWord{132, 0, 769}, - dictWord{134, 0, 1544}, - dictWord{4, 0, 551}, - dictWord{137, 0, 678}, - dictWord{5, 10, 84}, - dictWord{134, 10, 163}, - dictWord{9, 0, 57}, - dictWord{9, 0, 459}, - dictWord{10, 0, 425}, - dictWord{11, 0, 119}, - dictWord{12, 0, 184}, - dictWord{12, 0, 371}, - dictWord{ - 13, - 0, - 358, - }, - dictWord{145, 0, 51}, - dictWord{5, 0, 188}, - dictWord{5, 0, 814}, - dictWord{8, 0, 10}, - dictWord{9, 0, 421}, - dictWord{9, 0, 729}, - dictWord{10, 0, 609}, - dictWord{11, 0, 689}, - dictWord{4, 11, 253}, - dictWord{5, 10, 410}, - dictWord{5, 11, 544}, - dictWord{7, 11, 300}, - dictWord{137, 11, 340}, - dictWord{134, 0, 624}, - dictWord{138, 11, 321}, - dictWord{135, 0, 1941}, - dictWord{18, 0, 130}, - dictWord{5, 10, 322}, - dictWord{8, 10, 186}, - dictWord{9, 10, 262}, - dictWord{10, 10, 187}, - dictWord{142, 10, 208}, - dictWord{5, 11, 53}, - dictWord{5, 11, 541}, - dictWord{6, 11, 94}, - dictWord{6, 11, 499}, - dictWord{7, 11, 230}, - dictWord{139, 11, 321}, - dictWord{133, 10, 227}, - dictWord{4, 0, 378}, - dictWord{4, 11, 920}, - dictWord{5, 11, 25}, - dictWord{5, 11, 790}, - dictWord{6, 11, 457}, - dictWord{135, 11, 853}, - dictWord{137, 0, 269}, - dictWord{132, 0, 528}, - dictWord{134, 0, 1146}, - dictWord{7, 10, 1395}, - dictWord{8, 10, 486}, - dictWord{9, 10, 236}, - dictWord{9, 10, 878}, - dictWord{10, 10, 218}, - dictWord{11, 10, 95}, - dictWord{19, 10, 17}, - dictWord{147, 10, 31}, - dictWord{7, 10, 2043}, - dictWord{8, 10, 672}, - dictWord{ - 141, - 10, - 448, - }, - dictWord{134, 0, 1105}, - dictWord{134, 0, 1616}, - dictWord{134, 11, 1765}, - dictWord{140, 11, 163}, - dictWord{5, 10, 412}, - dictWord{133, 11, 822}, - dictWord{132, 11, 634}, - dictWord{6, 0, 656}, - dictWord{134, 11, 1730}, - dictWord{134, 0, 1940}, - dictWord{5, 0, 104}, - dictWord{6, 0, 173}, - dictWord{ - 135, - 0, - 1631, - }, - dictWord{136, 10, 562}, - dictWord{6, 11, 36}, - dictWord{7, 11, 658}, - dictWord{8, 11, 454}, - dictWord{147, 11, 86}, - dictWord{5, 0, 457}, - dictWord{ - 134, - 10, - 1771, - }, - dictWord{7, 0, 810}, - dictWord{8, 0, 138}, - dictWord{8, 0, 342}, - dictWord{9, 0, 84}, - dictWord{10, 0, 193}, - dictWord{11, 0, 883}, - dictWord{140, 0, 359}, - dictWord{9, 0, 620}, - dictWord{135, 10, 1190}, - dictWord{137, 10, 132}, - dictWord{7, 11, 975}, - dictWord{137, 11, 789}, - dictWord{6, 0, 95}, - dictWord{6, 0, 1934}, - dictWord{136, 0, 967}, - dictWord{141, 11, 335}, - dictWord{6, 0, 406}, - dictWord{10, 0, 409}, - dictWord{10, 0, 447}, - dictWord{11, 0, 44}, - dictWord{140, 0, 100}, - dictWord{4, 10, 317}, - dictWord{135, 10, 1279}, - dictWord{132, 0, 477}, - dictWord{134, 0, 1268}, - dictWord{6, 0, 1941}, - dictWord{8, 0, 944}, - dictWord{5, 10, 63}, - dictWord{133, 10, 509}, - dictWord{132, 0, 629}, - dictWord{132, 11, 104}, - dictWord{4, 0, 246}, - dictWord{133, 0, 375}, - dictWord{6, 0, 1636}, - dictWord{ - 132, - 10, - 288, - }, - dictWord{135, 11, 1614}, - dictWord{9, 0, 49}, - dictWord{10, 0, 774}, - dictWord{8, 10, 89}, - dictWord{8, 10, 620}, - dictWord{11, 10, 628}, - dictWord{ - 12, - 10, - 322, - }, - dictWord{143, 10, 124}, - dictWord{4, 0, 282}, - dictWord{7, 0, 1034}, - dictWord{11, 0, 398}, - dictWord{11, 0, 634}, - dictWord{12, 0, 1}, - dictWord{12, 0, 79}, - dictWord{12, 0, 544}, - dictWord{14, 0, 237}, - dictWord{17, 0, 10}, - dictWord{146, 0, 20}, - dictWord{132, 0, 824}, - dictWord{7, 11, 45}, - dictWord{9, 11, 542}, - dictWord{ - 9, - 11, - 566, - }, - dictWord{138, 11, 728}, - dictWord{5, 0, 118}, - dictWord{5, 0, 499}, - dictWord{6, 0, 476}, - dictWord{6, 0, 665}, - dictWord{6, 0, 1176}, - dictWord{ - 6, - 0, - 1196, - }, - dictWord{7, 0, 600}, - dictWord{7, 0, 888}, - dictWord{135, 0, 1096}, - dictWord{7, 0, 296}, - dictWord{7, 0, 596}, - dictWord{8, 0, 560}, - dictWord{8, 0, 586}, - dictWord{9, 0, 612}, - dictWord{11, 0, 304}, - dictWord{12, 0, 46}, - dictWord{13, 0, 89}, - dictWord{14, 0, 112}, - dictWord{145, 0, 122}, - dictWord{5, 0, 894}, - dictWord{ - 6, - 0, - 1772, - }, - dictWord{9, 0, 1009}, - dictWord{138, 10, 120}, - dictWord{5, 11, 533}, - dictWord{7, 11, 755}, - dictWord{138, 11, 780}, - dictWord{151, 10, 1}, - dictWord{ - 6, - 0, - 1474, - }, - dictWord{7, 11, 87}, - dictWord{142, 11, 288}, - dictWord{139, 0, 366}, - dictWord{137, 10, 461}, - dictWord{7, 11, 988}, - dictWord{7, 11, 1939}, - dictWord{ - 9, - 11, - 64, - }, - dictWord{9, 11, 502}, - dictWord{12, 11, 7}, - dictWord{12, 11, 34}, - dictWord{13, 11, 12}, - dictWord{13, 11, 234}, - dictWord{147, 11, 77}, - dictWord{ - 7, - 0, - 1599, - }, - dictWord{7, 0, 1723}, - dictWord{8, 0, 79}, - dictWord{8, 0, 106}, - dictWord{8, 0, 190}, - dictWord{8, 0, 302}, - dictWord{8, 0, 383}, - dictWord{8, 0, 713}, - dictWord{ - 9, - 0, - 119, - }, - dictWord{9, 0, 233}, - dictWord{9, 0, 419}, - dictWord{9, 0, 471}, - dictWord{10, 0, 181}, - dictWord{10, 0, 406}, - dictWord{11, 0, 57}, - dictWord{11, 0, 85}, - dictWord{11, 0, 120}, - dictWord{11, 0, 177}, - dictWord{11, 0, 296}, - dictWord{11, 0, 382}, - dictWord{11, 0, 454}, - dictWord{11, 0, 758}, - dictWord{11, 0, 999}, - dictWord{ - 12, - 0, - 27, - }, - dictWord{12, 0, 98}, - dictWord{12, 0, 131}, - dictWord{12, 0, 245}, - dictWord{12, 0, 312}, - dictWord{12, 0, 446}, - dictWord{12, 0, 454}, - dictWord{13, 0, 25}, - dictWord{13, 0, 98}, - dictWord{13, 0, 426}, - dictWord{13, 0, 508}, - dictWord{14, 0, 70}, - dictWord{14, 0, 163}, - dictWord{14, 0, 272}, - dictWord{14, 0, 277}, - dictWord{ - 14, - 0, - 370, - }, - dictWord{15, 0, 95}, - dictWord{15, 0, 138}, - dictWord{15, 0, 167}, - dictWord{17, 0, 38}, - dictWord{148, 0, 96}, - dictWord{135, 10, 1346}, - dictWord{ - 10, - 0, - 200, - }, - dictWord{19, 0, 2}, - dictWord{151, 0, 22}, - dictWord{135, 11, 141}, - dictWord{134, 10, 85}, - dictWord{134, 0, 1759}, - dictWord{138, 0, 372}, - dictWord{ - 145, - 0, - 16, - }, - dictWord{8, 0, 943}, - dictWord{132, 11, 619}, - dictWord{139, 11, 88}, - dictWord{5, 11, 246}, - dictWord{8, 11, 189}, - dictWord{9, 11, 355}, - dictWord{ - 9, - 11, - 512, - }, - dictWord{10, 11, 124}, - dictWord{10, 11, 453}, - dictWord{11, 11, 143}, - dictWord{11, 11, 416}, - dictWord{11, 11, 859}, - dictWord{141, 11, 341}, - dictWord{ - 5, - 0, - 258, - }, - dictWord{134, 0, 719}, - dictWord{6, 0, 1798}, - dictWord{6, 0, 1839}, - dictWord{8, 0, 900}, - dictWord{10, 0, 874}, - dictWord{10, 0, 886}, - dictWord{ - 12, - 0, - 698, - }, - dictWord{12, 0, 732}, - dictWord{12, 0, 770}, - dictWord{16, 0, 106}, - dictWord{18, 0, 163}, - dictWord{18, 0, 170}, - dictWord{18, 0, 171}, - dictWord{152, 0, 20}, - dictWord{9, 0, 707}, - dictWord{11, 0, 326}, - dictWord{11, 0, 339}, - dictWord{12, 0, 423}, - dictWord{12, 0, 502}, - dictWord{20, 0, 62}, - dictWord{9, 11, 707}, - dictWord{ - 11, - 11, - 326, - }, - dictWord{11, 11, 339}, - dictWord{12, 11, 423}, - dictWord{12, 11, 502}, - dictWord{148, 11, 62}, - dictWord{5, 0, 30}, - dictWord{7, 0, 495}, - dictWord{ - 8, - 0, - 134, - }, - dictWord{9, 0, 788}, - dictWord{140, 0, 438}, - dictWord{133, 11, 678}, - dictWord{5, 10, 279}, - dictWord{6, 10, 235}, - dictWord{7, 10, 468}, - dictWord{ - 8, - 10, - 446, - }, - dictWord{9, 10, 637}, - dictWord{10, 10, 717}, - dictWord{11, 10, 738}, - dictWord{140, 10, 514}, - dictWord{5, 11, 35}, - dictWord{6, 11, 287}, - dictWord{ - 7, - 11, - 862, - }, - dictWord{7, 11, 1886}, - dictWord{138, 11, 179}, - dictWord{7, 0, 1948}, - dictWord{7, 0, 2004}, - dictWord{132, 11, 517}, - dictWord{5, 10, 17}, - dictWord{ - 6, - 10, - 371, - }, - dictWord{137, 10, 528}, - dictWord{4, 0, 115}, - dictWord{5, 0, 669}, - dictWord{6, 0, 407}, - dictWord{8, 0, 311}, - dictWord{11, 0, 10}, - dictWord{141, 0, 5}, - dictWord{137, 0, 381}, - dictWord{5, 0, 50}, - dictWord{6, 0, 439}, - dictWord{7, 0, 780}, - dictWord{135, 0, 1040}, - dictWord{136, 11, 667}, - dictWord{11, 11, 403}, - dictWord{146, 11, 83}, - dictWord{5, 0, 1}, - dictWord{6, 0, 81}, - dictWord{138, 0, 520}, - dictWord{134, 0, 738}, - dictWord{5, 0, 482}, - dictWord{8, 0, 98}, - dictWord{9, 0, 172}, - dictWord{10, 0, 360}, - dictWord{10, 0, 700}, - dictWord{10, 0, 822}, - dictWord{11, 0, 302}, - dictWord{11, 0, 778}, - dictWord{12, 0, 50}, - dictWord{12, 0, 127}, - dictWord{ - 12, - 0, - 396, - }, - dictWord{13, 0, 62}, - dictWord{13, 0, 328}, - dictWord{14, 0, 122}, - dictWord{147, 0, 72}, - dictWord{9, 11, 157}, - dictWord{10, 11, 131}, - dictWord{ - 140, - 11, - 72, - }, - dictWord{135, 11, 714}, - dictWord{135, 11, 539}, - dictWord{5, 0, 2}, - dictWord{6, 0, 512}, - dictWord{7, 0, 797}, - dictWord{7, 0, 1494}, - dictWord{8, 0, 253}, - dictWord{8, 0, 589}, - dictWord{9, 0, 77}, - dictWord{10, 0, 1}, - dictWord{10, 0, 129}, - dictWord{10, 0, 225}, - dictWord{11, 0, 118}, - dictWord{11, 0, 226}, - dictWord{ - 11, - 0, - 251, - }, - dictWord{11, 0, 430}, - dictWord{11, 0, 701}, - dictWord{11, 0, 974}, - dictWord{11, 0, 982}, - dictWord{12, 0, 64}, - dictWord{12, 0, 260}, - dictWord{12, 0, 488}, - dictWord{140, 0, 690}, - dictWord{5, 11, 394}, - dictWord{7, 11, 367}, - dictWord{7, 11, 487}, - dictWord{7, 11, 857}, - dictWord{7, 11, 1713}, - dictWord{8, 11, 246}, - dictWord{9, 11, 537}, - dictWord{10, 11, 165}, - dictWord{12, 11, 219}, - dictWord{140, 11, 561}, - dictWord{136, 0, 557}, - dictWord{5, 10, 779}, - dictWord{5, 10, 807}, - dictWord{6, 10, 1655}, - dictWord{134, 10, 1676}, - dictWord{4, 10, 196}, - dictWord{5, 10, 558}, - dictWord{133, 10, 949}, - dictWord{11, 11, 827}, - dictWord{ - 12, - 11, - 56, - }, - dictWord{14, 11, 34}, - dictWord{143, 11, 148}, - dictWord{137, 0, 347}, - dictWord{133, 0, 572}, - dictWord{134, 0, 832}, - dictWord{4, 0, 12}, - dictWord{ - 7, - 0, - 504, - }, - dictWord{7, 0, 522}, - dictWord{7, 0, 809}, - dictWord{8, 0, 797}, - dictWord{141, 0, 88}, - dictWord{4, 10, 752}, - dictWord{133, 11, 449}, - dictWord{7, 11, 86}, - dictWord{8, 11, 103}, - dictWord{145, 11, 69}, - dictWord{7, 11, 2028}, - dictWord{138, 11, 641}, - dictWord{5, 0, 528}, - dictWord{6, 11, 1}, - dictWord{142, 11, 2}, - dictWord{134, 0, 861}, - dictWord{10, 0, 294}, - dictWord{4, 10, 227}, - dictWord{5, 10, 159}, - dictWord{5, 10, 409}, - dictWord{7, 10, 80}, - dictWord{10, 10, 479}, - dictWord{ - 12, - 10, - 418, - }, - dictWord{14, 10, 50}, - dictWord{14, 10, 249}, - dictWord{142, 10, 295}, - dictWord{7, 10, 1470}, - dictWord{8, 10, 66}, - dictWord{8, 10, 137}, - dictWord{ - 8, - 10, - 761, - }, - dictWord{9, 10, 638}, - dictWord{11, 10, 80}, - dictWord{11, 10, 212}, - dictWord{11, 10, 368}, - dictWord{11, 10, 418}, - dictWord{12, 10, 8}, - dictWord{ - 13, - 10, - 15, - }, - dictWord{16, 10, 61}, - dictWord{17, 10, 59}, - dictWord{19, 10, 28}, - dictWord{148, 10, 84}, - dictWord{20, 0, 109}, - dictWord{135, 11, 1148}, - dictWord{ - 6, - 11, - 277, - }, - dictWord{7, 11, 1274}, - dictWord{7, 11, 1386}, - dictWord{7, 11, 1392}, - dictWord{12, 11, 129}, - dictWord{146, 11, 87}, - dictWord{6, 11, 187}, - dictWord{7, 11, 39}, - dictWord{7, 11, 1203}, - dictWord{8, 11, 380}, - dictWord{8, 11, 542}, - dictWord{14, 11, 117}, - dictWord{149, 11, 28}, - dictWord{134, 0, 1187}, - dictWord{5, 0, 266}, - dictWord{9, 0, 290}, - dictWord{9, 0, 364}, - dictWord{10, 0, 293}, - dictWord{11, 0, 606}, - dictWord{142, 0, 45}, - dictWord{6, 11, 297}, - dictWord{ - 7, - 11, - 793, - }, - dictWord{139, 11, 938}, - dictWord{4, 0, 50}, - dictWord{6, 0, 594}, - dictWord{9, 0, 121}, - dictWord{10, 0, 49}, - dictWord{10, 0, 412}, - dictWord{139, 0, 834}, - dictWord{136, 0, 748}, - dictWord{7, 11, 464}, - dictWord{8, 11, 438}, - dictWord{11, 11, 105}, - dictWord{11, 11, 363}, - dictWord{12, 11, 231}, - dictWord{ - 14, - 11, - 386, - }, - dictWord{15, 11, 102}, - dictWord{148, 11, 75}, - dictWord{132, 0, 466}, - dictWord{13, 0, 399}, - dictWord{14, 0, 337}, - dictWord{6, 10, 38}, - dictWord{ - 7, - 10, - 1220, - }, - dictWord{8, 10, 185}, - dictWord{8, 10, 256}, - dictWord{9, 10, 22}, - dictWord{9, 10, 331}, - dictWord{10, 10, 738}, - dictWord{11, 10, 205}, - dictWord{ - 11, - 10, - 540, - }, - dictWord{11, 10, 746}, - dictWord{13, 10, 465}, - dictWord{142, 10, 194}, - dictWord{9, 0, 378}, - dictWord{141, 0, 162}, - dictWord{137, 0, 519}, - dictWord{ - 4, - 10, - 159, - }, - dictWord{6, 10, 115}, - dictWord{7, 10, 252}, - dictWord{7, 10, 257}, - dictWord{7, 10, 1928}, - dictWord{8, 10, 69}, - dictWord{9, 10, 384}, - dictWord{ - 10, - 10, - 91, - }, - dictWord{10, 10, 615}, - dictWord{12, 10, 375}, - dictWord{14, 10, 235}, - dictWord{18, 10, 117}, - dictWord{147, 10, 123}, - dictWord{5, 11, 604}, - dictWord{ - 5, - 10, - 911, - }, - dictWord{136, 10, 278}, - dictWord{132, 0, 667}, - dictWord{8, 0, 351}, - dictWord{9, 0, 322}, - dictWord{4, 10, 151}, - dictWord{135, 10, 1567}, - dictWord{134, 0, 902}, - dictWord{133, 10, 990}, - dictWord{12, 0, 180}, - dictWord{5, 10, 194}, - dictWord{7, 10, 1662}, - dictWord{137, 10, 90}, - dictWord{4, 0, 869}, - dictWord{134, 0, 1996}, - dictWord{134, 0, 813}, - dictWord{133, 10, 425}, - dictWord{137, 11, 761}, - dictWord{132, 0, 260}, - dictWord{133, 10, 971}, - dictWord{ - 5, - 11, - 20, - }, - dictWord{6, 11, 298}, - dictWord{7, 11, 659}, - dictWord{7, 11, 1366}, - dictWord{137, 11, 219}, - dictWord{4, 0, 39}, - dictWord{5, 0, 36}, - dictWord{ - 7, - 0, - 1843, - }, - dictWord{8, 0, 407}, - dictWord{11, 0, 144}, - dictWord{140, 0, 523}, - dictWord{4, 0, 510}, - dictWord{10, 0, 587}, - dictWord{139, 10, 752}, - dictWord{7, 0, 29}, - dictWord{7, 0, 66}, - dictWord{7, 0, 1980}, - dictWord{10, 0, 487}, - dictWord{138, 0, 809}, - dictWord{13, 0, 260}, - dictWord{14, 0, 82}, - dictWord{18, 0, 63}, - dictWord{ - 137, - 10, - 662, - }, - dictWord{5, 10, 72}, - dictWord{6, 10, 264}, - dictWord{7, 10, 21}, - dictWord{7, 10, 46}, - dictWord{7, 10, 2013}, - dictWord{8, 10, 215}, - dictWord{ - 8, - 10, - 513, - }, - dictWord{10, 10, 266}, - dictWord{139, 10, 22}, - dictWord{134, 0, 570}, - dictWord{6, 0, 565}, - dictWord{7, 0, 1667}, - dictWord{4, 11, 439}, - dictWord{ - 10, - 10, - 95, - }, - dictWord{11, 10, 603}, - dictWord{12, 11, 242}, - dictWord{13, 10, 443}, - dictWord{14, 10, 160}, - dictWord{143, 10, 4}, - dictWord{134, 0, 1464}, - dictWord{ - 134, - 10, - 431, - }, - dictWord{9, 0, 372}, - dictWord{15, 0, 2}, - dictWord{19, 0, 10}, - dictWord{19, 0, 18}, - dictWord{5, 10, 874}, - dictWord{6, 10, 1677}, - dictWord{143, 10, 0}, - dictWord{132, 0, 787}, - dictWord{6, 0, 380}, - dictWord{12, 0, 399}, - dictWord{21, 0, 19}, - dictWord{7, 10, 939}, - dictWord{7, 10, 1172}, - dictWord{7, 10, 1671}, - dictWord{9, 10, 540}, - dictWord{10, 10, 696}, - dictWord{11, 10, 265}, - dictWord{11, 10, 732}, - dictWord{11, 10, 928}, - dictWord{11, 10, 937}, - dictWord{ - 141, - 10, - 438, - }, - dictWord{137, 0, 200}, - dictWord{132, 11, 233}, - dictWord{132, 0, 516}, - dictWord{134, 11, 577}, - dictWord{132, 0, 844}, - dictWord{11, 0, 887}, - dictWord{14, 0, 365}, - dictWord{142, 0, 375}, - dictWord{132, 11, 482}, - dictWord{8, 0, 821}, - dictWord{140, 0, 44}, - dictWord{7, 0, 1655}, - dictWord{136, 0, 305}, - dictWord{5, 10, 682}, - dictWord{135, 10, 1887}, - dictWord{135, 11, 346}, - dictWord{132, 10, 696}, - dictWord{4, 0, 10}, - dictWord{7, 0, 917}, - dictWord{139, 0, 786}, - dictWord{5, 11, 795}, - dictWord{6, 11, 1741}, - dictWord{8, 11, 417}, - dictWord{137, 11, 782}, - dictWord{4, 0, 1016}, - dictWord{134, 0, 2031}, - dictWord{5, 0, 684}, - dictWord{4, 10, 726}, - dictWord{133, 10, 630}, - dictWord{6, 0, 1021}, - dictWord{134, 0, 1480}, - dictWord{8, 10, 802}, - dictWord{136, 10, 838}, - dictWord{ - 134, - 0, - 27, - }, - dictWord{134, 0, 395}, - dictWord{135, 11, 622}, - dictWord{7, 11, 625}, - dictWord{135, 11, 1750}, - dictWord{4, 11, 203}, - dictWord{135, 11, 1936}, - dictWord{6, 10, 118}, - dictWord{7, 10, 215}, - dictWord{7, 10, 1521}, - dictWord{140, 10, 11}, - dictWord{132, 0, 813}, - dictWord{136, 0, 511}, - dictWord{7, 10, 615}, - dictWord{138, 10, 251}, - dictWord{135, 10, 1044}, - dictWord{145, 0, 56}, - dictWord{133, 10, 225}, - dictWord{6, 0, 342}, - dictWord{6, 0, 496}, - dictWord{8, 0, 275}, - dictWord{137, 0, 206}, - dictWord{4, 0, 909}, - dictWord{133, 0, 940}, - dictWord{132, 0, 891}, - dictWord{7, 11, 311}, - dictWord{9, 11, 308}, - dictWord{ - 140, - 11, - 255, - }, - dictWord{4, 10, 370}, - dictWord{5, 10, 756}, - dictWord{135, 10, 1326}, - dictWord{4, 0, 687}, - dictWord{134, 0, 1596}, - dictWord{134, 0, 1342}, - dictWord{ - 6, - 10, - 1662, - }, - dictWord{7, 10, 48}, - dictWord{8, 10, 771}, - dictWord{10, 10, 116}, - dictWord{13, 10, 104}, - dictWord{14, 10, 105}, - dictWord{14, 10, 184}, - dictWord{15, 10, 168}, - dictWord{19, 10, 92}, - dictWord{148, 10, 68}, - dictWord{138, 10, 209}, - dictWord{4, 11, 400}, - dictWord{5, 11, 267}, - dictWord{135, 11, 232}, - dictWord{151, 11, 12}, - dictWord{6, 0, 41}, - dictWord{141, 0, 160}, - dictWord{141, 11, 314}, - dictWord{134, 0, 1718}, - dictWord{136, 0, 778}, - dictWord{ - 142, - 11, - 261, - }, - dictWord{134, 0, 1610}, - dictWord{133, 0, 115}, - dictWord{132, 0, 294}, - dictWord{14, 0, 314}, - dictWord{132, 10, 120}, - dictWord{132, 0, 983}, - dictWord{5, 0, 193}, - dictWord{140, 0, 178}, - dictWord{138, 10, 429}, - dictWord{5, 10, 820}, - dictWord{135, 10, 931}, - dictWord{6, 0, 994}, - dictWord{6, 0, 1051}, - dictWord{6, 0, 1439}, - dictWord{7, 0, 174}, - dictWord{133, 11, 732}, - dictWord{4, 11, 100}, - dictWord{7, 11, 679}, - dictWord{8, 11, 313}, - dictWord{138, 10, 199}, - dictWord{6, 10, 151}, - dictWord{6, 10, 1675}, - dictWord{7, 10, 383}, - dictWord{151, 10, 10}, - dictWord{6, 0, 1796}, - dictWord{8, 0, 848}, - dictWord{8, 0, 867}, - dictWord{ - 8, - 0, - 907, - }, - dictWord{10, 0, 855}, - dictWord{140, 0, 703}, - dictWord{140, 0, 221}, - dictWord{4, 0, 122}, - dictWord{5, 0, 796}, - dictWord{5, 0, 952}, - dictWord{6, 0, 1660}, - dictWord{6, 0, 1671}, - dictWord{8, 0, 567}, - dictWord{9, 0, 687}, - dictWord{9, 0, 742}, - dictWord{10, 0, 686}, - dictWord{11, 0, 682}, - dictWord{11, 0, 909}, - dictWord{ - 140, - 0, - 281, - }, - dictWord{5, 11, 362}, - dictWord{5, 11, 443}, - dictWord{6, 11, 318}, - dictWord{7, 11, 1019}, - dictWord{139, 11, 623}, - dictWord{5, 11, 463}, - dictWord{136, 11, 296}, - dictWord{11, 0, 583}, - dictWord{13, 0, 262}, - dictWord{6, 10, 1624}, - dictWord{12, 10, 422}, - dictWord{142, 10, 360}, - dictWord{5, 0, 179}, - dictWord{7, 0, 1095}, - dictWord{135, 0, 1213}, - dictWord{4, 10, 43}, - dictWord{4, 11, 454}, - dictWord{5, 10, 344}, - dictWord{133, 10, 357}, - dictWord{4, 0, 66}, - dictWord{7, 0, 722}, - dictWord{135, 0, 904}, - dictWord{134, 0, 773}, - dictWord{7, 0, 352}, - dictWord{133, 10, 888}, - dictWord{5, 11, 48}, - dictWord{5, 11, 404}, - dictWord{ - 6, - 11, - 557, - }, - dictWord{7, 11, 458}, - dictWord{8, 11, 597}, - dictWord{10, 11, 455}, - dictWord{10, 11, 606}, - dictWord{11, 11, 49}, - dictWord{11, 11, 548}, - dictWord{ - 12, - 11, - 476, - }, - dictWord{13, 11, 18}, - dictWord{141, 11, 450}, - dictWord{134, 11, 418}, - dictWord{132, 10, 711}, - dictWord{5, 11, 442}, - dictWord{ - 135, - 11, - 1984, - }, - dictWord{141, 0, 35}, - dictWord{137, 0, 152}, - dictWord{134, 0, 1197}, - dictWord{135, 11, 1093}, - dictWord{137, 11, 203}, - dictWord{137, 10, 440}, - dictWord{10, 0, 592}, - dictWord{10, 0, 753}, - dictWord{12, 0, 317}, - dictWord{12, 0, 355}, - dictWord{12, 0, 465}, - dictWord{12, 0, 469}, - dictWord{12, 0, 560}, - dictWord{12, 0, 578}, - dictWord{141, 0, 243}, - dictWord{133, 0, 564}, - dictWord{134, 0, 797}, - dictWord{5, 10, 958}, - dictWord{133, 10, 987}, - dictWord{5, 11, 55}, - dictWord{7, 11, 376}, - dictWord{140, 11, 161}, - dictWord{133, 11, 450}, - dictWord{134, 0, 556}, - dictWord{134, 0, 819}, - dictWord{11, 10, 276}, - dictWord{ - 142, - 10, - 293, - }, - dictWord{7, 0, 544}, - dictWord{138, 0, 61}, - dictWord{8, 0, 719}, - dictWord{4, 10, 65}, - dictWord{5, 10, 479}, - dictWord{5, 10, 1004}, - dictWord{7, 10, 1913}, - dictWord{8, 10, 317}, - dictWord{9, 10, 302}, - dictWord{10, 10, 612}, - dictWord{141, 10, 22}, - dictWord{4, 0, 5}, - dictWord{5, 0, 498}, - dictWord{8, 0, 637}, - dictWord{ - 9, - 0, - 521, - }, - dictWord{4, 11, 213}, - dictWord{4, 10, 261}, - dictWord{7, 11, 223}, - dictWord{7, 10, 510}, - dictWord{136, 11, 80}, - dictWord{5, 0, 927}, - dictWord{7, 0, 101}, - dictWord{4, 10, 291}, - dictWord{7, 11, 381}, - dictWord{7, 11, 806}, - dictWord{7, 11, 820}, - dictWord{8, 11, 354}, - dictWord{8, 11, 437}, - dictWord{8, 11, 787}, - dictWord{9, 10, 515}, - dictWord{9, 11, 657}, - dictWord{10, 11, 58}, - dictWord{10, 11, 339}, - dictWord{10, 11, 749}, - dictWord{11, 11, 914}, - dictWord{12, 10, 152}, - dictWord{12, 11, 162}, - dictWord{12, 10, 443}, - dictWord{13, 11, 75}, - dictWord{13, 10, 392}, - dictWord{14, 11, 106}, - dictWord{14, 11, 198}, - dictWord{ - 14, - 11, - 320, - }, - dictWord{14, 10, 357}, - dictWord{14, 11, 413}, - dictWord{146, 11, 43}, - dictWord{6, 0, 1153}, - dictWord{7, 0, 1441}, - dictWord{136, 11, 747}, - dictWord{ - 4, - 0, - 893, - }, - dictWord{5, 0, 780}, - dictWord{133, 0, 893}, - dictWord{138, 11, 654}, - dictWord{133, 11, 692}, - dictWord{133, 0, 238}, - dictWord{134, 11, 191}, - dictWord{4, 10, 130}, - dictWord{135, 10, 843}, - dictWord{6, 0, 1296}, - dictWord{5, 10, 42}, - dictWord{5, 10, 879}, - dictWord{7, 10, 245}, - dictWord{7, 10, 324}, - dictWord{ - 7, - 10, - 1532, - }, - dictWord{11, 10, 463}, - dictWord{11, 10, 472}, - dictWord{13, 10, 363}, - dictWord{144, 10, 52}, - dictWord{134, 0, 1729}, - dictWord{6, 0, 1999}, - dictWord{136, 0, 969}, - dictWord{4, 10, 134}, - dictWord{133, 10, 372}, - dictWord{4, 0, 60}, - dictWord{7, 0, 941}, - dictWord{7, 0, 1800}, - dictWord{8, 0, 314}, - dictWord{ - 9, - 0, - 700, - }, - dictWord{139, 0, 487}, - dictWord{134, 0, 1144}, - dictWord{6, 11, 162}, - dictWord{7, 11, 1960}, - dictWord{136, 11, 831}, - dictWord{132, 11, 706}, - dictWord{135, 0, 1147}, - dictWord{138, 11, 426}, - dictWord{138, 11, 89}, - dictWord{7, 0, 1853}, - dictWord{138, 0, 437}, - dictWord{136, 0, 419}, - dictWord{ - 135, - 10, - 1634, - }, - dictWord{133, 0, 828}, - dictWord{5, 0, 806}, - dictWord{7, 0, 176}, - dictWord{7, 0, 178}, - dictWord{7, 0, 1240}, - dictWord{7, 0, 1976}, - dictWord{ - 132, - 10, - 644, - }, - dictWord{135, 11, 1877}, - dictWord{5, 11, 420}, - dictWord{135, 11, 1449}, - dictWord{4, 0, 51}, - dictWord{5, 0, 39}, - dictWord{6, 0, 4}, - dictWord{7, 0, 591}, - dictWord{7, 0, 849}, - dictWord{7, 0, 951}, - dictWord{7, 0, 1613}, - dictWord{7, 0, 1760}, - dictWord{7, 0, 1988}, - dictWord{9, 0, 434}, - dictWord{10, 0, 754}, - dictWord{ - 11, - 0, - 25, - }, - dictWord{139, 0, 37}, - dictWord{10, 11, 57}, - dictWord{138, 11, 277}, - dictWord{135, 10, 540}, - dictWord{132, 11, 204}, - dictWord{135, 0, 159}, - dictWord{139, 11, 231}, - dictWord{133, 0, 902}, - dictWord{7, 0, 928}, - dictWord{7, 11, 366}, - dictWord{9, 11, 287}, - dictWord{12, 11, 199}, - dictWord{12, 11, 556}, - dictWord{140, 11, 577}, - dictWord{6, 10, 623}, - dictWord{136, 10, 789}, - dictWord{4, 10, 908}, - dictWord{5, 10, 359}, - dictWord{5, 10, 508}, - dictWord{6, 10, 1723}, - dictWord{7, 10, 343}, - dictWord{7, 10, 1996}, - dictWord{135, 10, 2026}, - dictWord{134, 0, 270}, - dictWord{4, 10, 341}, - dictWord{135, 10, 480}, - dictWord{ - 5, - 11, - 356, - }, - dictWord{135, 11, 224}, - dictWord{11, 11, 588}, - dictWord{11, 11, 864}, - dictWord{11, 11, 968}, - dictWord{143, 11, 160}, - dictWord{132, 0, 556}, - dictWord{137, 0, 801}, - dictWord{132, 0, 416}, - dictWord{142, 0, 372}, - dictWord{5, 0, 152}, - dictWord{5, 0, 197}, - dictWord{7, 0, 340}, - dictWord{7, 0, 867}, - dictWord{ - 10, - 0, - 548, - }, - dictWord{10, 0, 581}, - dictWord{11, 0, 6}, - dictWord{12, 0, 3}, - dictWord{12, 0, 19}, - dictWord{14, 0, 110}, - dictWord{142, 0, 289}, - dictWord{139, 0, 369}, - dictWord{7, 11, 630}, - dictWord{9, 11, 567}, - dictWord{11, 11, 150}, - dictWord{11, 11, 444}, - dictWord{141, 11, 119}, - dictWord{134, 11, 539}, - dictWord{ - 7, - 10, - 1995, - }, - dictWord{8, 10, 299}, - dictWord{11, 10, 890}, - dictWord{140, 10, 674}, - dictWord{7, 0, 34}, - dictWord{7, 0, 190}, - dictWord{8, 0, 28}, - dictWord{8, 0, 141}, - dictWord{8, 0, 444}, - dictWord{8, 0, 811}, - dictWord{9, 0, 468}, - dictWord{11, 0, 334}, - dictWord{12, 0, 24}, - dictWord{12, 0, 386}, - dictWord{140, 0, 576}, - dictWord{ - 133, - 0, - 757, - }, - dictWord{7, 0, 1553}, - dictWord{136, 0, 898}, - dictWord{133, 0, 721}, - dictWord{136, 0, 1012}, - dictWord{4, 0, 789}, - dictWord{5, 0, 647}, - dictWord{ - 135, - 0, - 1102, - }, - dictWord{132, 0, 898}, - dictWord{10, 0, 183}, - dictWord{4, 10, 238}, - dictWord{5, 10, 503}, - dictWord{6, 10, 179}, - dictWord{7, 10, 2003}, - dictWord{ - 8, - 10, - 381, - }, - dictWord{8, 10, 473}, - dictWord{9, 10, 149}, - dictWord{10, 10, 788}, - dictWord{15, 10, 45}, - dictWord{15, 10, 86}, - dictWord{20, 10, 110}, - dictWord{ - 150, - 10, - 57, - }, - dictWord{9, 0, 136}, - dictWord{19, 0, 107}, - dictWord{4, 10, 121}, - dictWord{5, 10, 156}, - dictWord{5, 10, 349}, - dictWord{10, 10, 605}, - dictWord{ - 142, - 10, - 342, - }, - dictWord{4, 11, 235}, - dictWord{135, 11, 255}, - dictWord{4, 11, 194}, - dictWord{5, 11, 584}, - dictWord{6, 11, 384}, - dictWord{7, 11, 583}, - dictWord{ - 10, - 11, - 761, - }, - dictWord{11, 11, 760}, - dictWord{139, 11, 851}, - dictWord{6, 10, 80}, - dictWord{6, 10, 1694}, - dictWord{7, 10, 173}, - dictWord{7, 10, 1974}, - dictWord{ - 9, - 10, - 547, - }, - dictWord{10, 10, 730}, - dictWord{14, 10, 18}, - dictWord{150, 10, 39}, - dictWord{4, 10, 923}, - dictWord{134, 10, 1711}, - dictWord{5, 0, 277}, - dictWord{141, 0, 247}, - dictWord{132, 0, 435}, - dictWord{133, 11, 562}, - dictWord{134, 0, 1311}, - dictWord{5, 11, 191}, - dictWord{137, 11, 271}, - dictWord{ - 132, - 10, - 595, - }, - dictWord{7, 11, 1537}, - dictWord{14, 11, 96}, - dictWord{143, 11, 73}, - dictWord{5, 0, 437}, - dictWord{7, 0, 502}, - dictWord{7, 0, 519}, - dictWord{7, 0, 1122}, - dictWord{7, 0, 1751}, - dictWord{14, 0, 211}, - dictWord{6, 10, 459}, - dictWord{7, 10, 1753}, - dictWord{7, 10, 1805}, - dictWord{8, 10, 658}, - dictWord{9, 10, 1}, - dictWord{11, 10, 959}, - dictWord{141, 10, 446}, - dictWord{6, 0, 814}, - dictWord{4, 11, 470}, - dictWord{5, 11, 473}, - dictWord{6, 11, 153}, - dictWord{7, 11, 1503}, - dictWord{7, 11, 1923}, - dictWord{10, 11, 701}, - dictWord{11, 11, 132}, - dictWord{11, 11, 168}, - dictWord{11, 11, 227}, - dictWord{11, 11, 320}, - dictWord{ - 11, - 11, - 436, - }, - dictWord{11, 11, 525}, - dictWord{11, 11, 855}, - dictWord{12, 11, 41}, - dictWord{12, 11, 286}, - dictWord{13, 11, 103}, - dictWord{13, 11, 284}, - dictWord{ - 14, - 11, - 255, - }, - dictWord{14, 11, 262}, - dictWord{15, 11, 117}, - dictWord{143, 11, 127}, - dictWord{5, 0, 265}, - dictWord{6, 0, 212}, - dictWord{135, 0, 28}, - dictWord{ - 138, - 0, - 750, - }, - dictWord{133, 11, 327}, - dictWord{6, 11, 552}, - dictWord{7, 11, 1754}, - dictWord{137, 11, 604}, - dictWord{134, 0, 2012}, - dictWord{132, 0, 702}, - dictWord{5, 11, 80}, - dictWord{6, 11, 405}, - dictWord{7, 11, 403}, - dictWord{7, 11, 1502}, - dictWord{7, 11, 1626}, - dictWord{8, 11, 456}, - dictWord{9, 11, 487}, - dictWord{9, 11, 853}, - dictWord{9, 11, 889}, - dictWord{10, 11, 309}, - dictWord{11, 11, 721}, - dictWord{11, 11, 994}, - dictWord{12, 11, 430}, - dictWord{ - 141, - 11, - 165, - }, - dictWord{5, 0, 808}, - dictWord{135, 0, 2045}, - dictWord{5, 0, 166}, - dictWord{8, 0, 739}, - dictWord{140, 0, 511}, - dictWord{134, 10, 490}, - dictWord{ - 4, - 11, - 453, - }, - dictWord{5, 11, 887}, - dictWord{6, 11, 535}, - dictWord{8, 11, 6}, - dictWord{136, 11, 543}, - dictWord{4, 0, 119}, - dictWord{5, 0, 170}, - dictWord{5, 0, 447}, - dictWord{7, 0, 1708}, - dictWord{7, 0, 1889}, - dictWord{9, 0, 357}, - dictWord{9, 0, 719}, - dictWord{12, 0, 486}, - dictWord{140, 0, 596}, - dictWord{137, 0, 500}, - dictWord{ - 7, - 10, - 250, - }, - dictWord{136, 10, 507}, - dictWord{132, 10, 158}, - dictWord{6, 0, 809}, - dictWord{134, 0, 1500}, - dictWord{9, 0, 327}, - dictWord{11, 0, 350}, - dictWord{11, 0, 831}, - dictWord{13, 0, 352}, - dictWord{4, 10, 140}, - dictWord{7, 10, 362}, - dictWord{8, 10, 209}, - dictWord{9, 10, 10}, - dictWord{9, 10, 503}, - dictWord{ - 9, - 10, - 614, - }, - dictWord{10, 10, 689}, - dictWord{11, 10, 327}, - dictWord{11, 10, 725}, - dictWord{12, 10, 252}, - dictWord{12, 10, 583}, - dictWord{13, 10, 192}, - dictWord{14, 10, 269}, - dictWord{14, 10, 356}, - dictWord{148, 10, 50}, - dictWord{135, 11, 741}, - dictWord{4, 0, 450}, - dictWord{7, 0, 1158}, - dictWord{19, 10, 1}, - dictWord{19, 10, 26}, - dictWord{150, 10, 9}, - dictWord{6, 0, 597}, - dictWord{135, 0, 1318}, - dictWord{134, 0, 1602}, - dictWord{6, 10, 228}, - dictWord{7, 10, 1341}, - dictWord{9, 10, 408}, - dictWord{138, 10, 343}, - dictWord{7, 0, 1375}, - dictWord{7, 0, 1466}, - dictWord{138, 0, 331}, - dictWord{132, 0, 754}, - dictWord{ - 132, - 10, - 557, - }, - dictWord{5, 11, 101}, - dictWord{6, 11, 88}, - dictWord{6, 11, 543}, - dictWord{7, 11, 1677}, - dictWord{9, 11, 100}, - dictWord{10, 11, 677}, - dictWord{ - 14, - 11, - 169, - }, - dictWord{14, 11, 302}, - dictWord{14, 11, 313}, - dictWord{15, 11, 48}, - dictWord{143, 11, 84}, - dictWord{134, 0, 1368}, - dictWord{4, 11, 310}, - dictWord{ - 9, - 11, - 795, - }, - dictWord{10, 11, 733}, - dictWord{11, 11, 451}, - dictWord{12, 11, 249}, - dictWord{14, 11, 115}, - dictWord{14, 11, 286}, - dictWord{143, 11, 100}, - dictWord{132, 10, 548}, - dictWord{10, 0, 557}, - dictWord{7, 10, 197}, - dictWord{8, 10, 142}, - dictWord{8, 10, 325}, - dictWord{9, 10, 150}, - dictWord{9, 10, 596}, - dictWord{10, 10, 353}, - dictWord{11, 10, 74}, - dictWord{11, 10, 315}, - dictWord{12, 10, 662}, - dictWord{12, 10, 681}, - dictWord{14, 10, 423}, - dictWord{ - 143, - 10, - 141, - }, - dictWord{133, 11, 587}, - dictWord{5, 0, 850}, - dictWord{136, 0, 799}, - dictWord{10, 0, 908}, - dictWord{12, 0, 701}, - dictWord{12, 0, 757}, - dictWord{ - 142, - 0, - 466, - }, - dictWord{4, 0, 62}, - dictWord{5, 0, 275}, - dictWord{18, 0, 19}, - dictWord{6, 10, 399}, - dictWord{6, 10, 579}, - dictWord{7, 10, 692}, - dictWord{7, 10, 846}, - dictWord{ - 7, - 10, - 1015, - }, - dictWord{7, 10, 1799}, - dictWord{8, 10, 403}, - dictWord{9, 10, 394}, - dictWord{10, 10, 133}, - dictWord{12, 10, 4}, - dictWord{12, 10, 297}, - dictWord{12, 10, 452}, - dictWord{16, 10, 81}, - dictWord{18, 10, 25}, - dictWord{21, 10, 14}, - dictWord{22, 10, 12}, - dictWord{151, 10, 18}, - dictWord{12, 0, 459}, - dictWord{ - 7, - 10, - 1546, - }, - dictWord{11, 10, 299}, - dictWord{142, 10, 407}, - dictWord{132, 10, 177}, - dictWord{132, 11, 498}, - dictWord{7, 11, 217}, - dictWord{ - 8, - 11, - 140, - }, - dictWord{138, 11, 610}, - dictWord{5, 10, 411}, - dictWord{135, 10, 653}, - dictWord{134, 0, 1802}, - dictWord{7, 10, 439}, - dictWord{10, 10, 727}, - dictWord{11, 10, 260}, - dictWord{139, 10, 684}, - dictWord{133, 11, 905}, - dictWord{11, 11, 580}, - dictWord{142, 11, 201}, - dictWord{134, 0, 1397}, - dictWord{ - 5, - 10, - 208, - }, - dictWord{7, 10, 753}, - dictWord{135, 10, 1528}, - dictWord{7, 0, 238}, - dictWord{7, 0, 2033}, - dictWord{8, 0, 120}, - dictWord{8, 0, 188}, - dictWord{8, 0, 659}, - dictWord{9, 0, 598}, - dictWord{10, 0, 466}, - dictWord{12, 0, 342}, - dictWord{12, 0, 588}, - dictWord{13, 0, 503}, - dictWord{14, 0, 246}, - dictWord{143, 0, 92}, - dictWord{135, 11, 1041}, - dictWord{4, 11, 456}, - dictWord{7, 11, 105}, - dictWord{7, 11, 358}, - dictWord{7, 11, 1637}, - dictWord{8, 11, 643}, - dictWord{139, 11, 483}, - dictWord{6, 0, 1318}, - dictWord{134, 0, 1324}, - dictWord{4, 0, 201}, - dictWord{7, 0, 1744}, - dictWord{8, 0, 602}, - dictWord{11, 0, 247}, - dictWord{11, 0, 826}, - dictWord{17, 0, 65}, - dictWord{133, 10, 242}, - dictWord{8, 0, 164}, - dictWord{146, 0, 62}, - dictWord{133, 10, 953}, - dictWord{139, 10, 802}, - dictWord{133, 0, 615}, - dictWord{7, 11, 1566}, - dictWord{8, 11, 269}, - dictWord{9, 11, 212}, - dictWord{9, 11, 718}, - dictWord{14, 11, 15}, - dictWord{14, 11, 132}, - dictWord{142, 11, 227}, - dictWord{133, 10, 290}, - dictWord{132, 10, 380}, - dictWord{5, 10, 52}, - dictWord{7, 10, 277}, - dictWord{9, 10, 368}, - dictWord{139, 10, 791}, - dictWord{ - 135, - 0, - 1243, - }, - dictWord{133, 11, 539}, - dictWord{11, 11, 919}, - dictWord{141, 11, 409}, - dictWord{136, 0, 968}, - dictWord{133, 11, 470}, - dictWord{134, 0, 882}, - dictWord{132, 0, 907}, - dictWord{5, 0, 100}, - dictWord{10, 0, 329}, - dictWord{12, 0, 416}, - dictWord{149, 0, 29}, - dictWord{10, 10, 138}, - dictWord{139, 10, 476}, - dictWord{5, 10, 725}, - dictWord{5, 10, 727}, - dictWord{6, 11, 91}, - dictWord{7, 11, 435}, - dictWord{135, 10, 1811}, - dictWord{4, 11, 16}, - dictWord{5, 11, 316}, - dictWord{5, 11, 842}, - dictWord{6, 11, 370}, - dictWord{6, 11, 1778}, - dictWord{8, 11, 166}, - dictWord{11, 11, 812}, - dictWord{12, 11, 206}, - dictWord{12, 11, 351}, - dictWord{14, 11, 418}, - dictWord{16, 11, 15}, - dictWord{16, 11, 34}, - dictWord{18, 11, 3}, - dictWord{19, 11, 3}, - dictWord{19, 11, 7}, - dictWord{20, 11, 4}, - dictWord{ - 149, - 11, - 21, - }, - dictWord{132, 0, 176}, - dictWord{5, 0, 636}, - dictWord{5, 0, 998}, - dictWord{7, 0, 9}, - dictWord{7, 0, 1508}, - dictWord{8, 0, 26}, - dictWord{9, 0, 317}, - dictWord{ - 9, - 0, - 358, - }, - dictWord{10, 0, 210}, - dictWord{10, 0, 292}, - dictWord{10, 0, 533}, - dictWord{11, 0, 555}, - dictWord{12, 0, 526}, - dictWord{12, 0, 607}, - dictWord{ - 13, - 0, - 263, - }, - dictWord{13, 0, 459}, - dictWord{142, 0, 271}, - dictWord{6, 0, 256}, - dictWord{8, 0, 265}, - dictWord{4, 10, 38}, - dictWord{7, 10, 307}, - dictWord{7, 10, 999}, - dictWord{7, 10, 1481}, - dictWord{7, 10, 1732}, - dictWord{7, 10, 1738}, - dictWord{9, 10, 414}, - dictWord{11, 10, 316}, - dictWord{12, 10, 52}, - dictWord{13, 10, 420}, - dictWord{147, 10, 100}, - dictWord{135, 10, 1296}, - dictWord{4, 11, 611}, - dictWord{133, 11, 606}, - dictWord{4, 0, 643}, - dictWord{142, 11, 21}, - dictWord{ - 133, - 11, - 715, - }, - dictWord{133, 10, 723}, - dictWord{6, 0, 610}, - dictWord{135, 11, 597}, - dictWord{10, 0, 127}, - dictWord{141, 0, 27}, - dictWord{6, 0, 1995}, - dictWord{ - 6, - 0, - 2001, - }, - dictWord{8, 0, 119}, - dictWord{136, 0, 973}, - dictWord{4, 11, 149}, - dictWord{138, 11, 368}, - dictWord{12, 0, 522}, - dictWord{4, 11, 154}, - dictWord{ - 5, - 10, - 109, - }, - dictWord{6, 10, 1784}, - dictWord{7, 11, 1134}, - dictWord{7, 10, 1895}, - dictWord{8, 11, 105}, - dictWord{12, 10, 296}, - dictWord{140, 10, 302}, - dictWord{4, 11, 31}, - dictWord{6, 11, 429}, - dictWord{7, 11, 962}, - dictWord{9, 11, 458}, - dictWord{139, 11, 691}, - dictWord{10, 0, 553}, - dictWord{11, 0, 876}, - dictWord{13, 0, 193}, - dictWord{13, 0, 423}, - dictWord{14, 0, 166}, - dictWord{19, 0, 84}, - dictWord{4, 11, 312}, - dictWord{5, 10, 216}, - dictWord{7, 10, 1879}, - dictWord{ - 9, - 10, - 141, - }, - dictWord{9, 10, 270}, - dictWord{9, 10, 679}, - dictWord{10, 10, 159}, - dictWord{11, 10, 197}, - dictWord{12, 10, 538}, - dictWord{12, 10, 559}, - dictWord{14, 10, 144}, - dictWord{14, 10, 167}, - dictWord{143, 10, 67}, - dictWord{134, 0, 1582}, - dictWord{7, 0, 1578}, - dictWord{135, 11, 1578}, - dictWord{ - 137, - 10, - 81, - }, - dictWord{132, 11, 236}, - dictWord{134, 10, 391}, - dictWord{134, 0, 795}, - dictWord{7, 10, 322}, - dictWord{136, 10, 249}, - dictWord{5, 11, 836}, - dictWord{ - 5, - 11, - 857, - }, - dictWord{6, 11, 1680}, - dictWord{7, 11, 59}, - dictWord{147, 11, 53}, - dictWord{135, 0, 432}, - dictWord{10, 11, 68}, - dictWord{139, 11, 494}, - dictWord{4, 11, 81}, - dictWord{139, 11, 867}, - dictWord{7, 0, 126}, - dictWord{136, 0, 84}, - dictWord{142, 11, 280}, - dictWord{5, 11, 282}, - dictWord{8, 11, 650}, - dictWord{ - 9, - 11, - 295, - }, - dictWord{9, 11, 907}, - dictWord{138, 11, 443}, - dictWord{136, 0, 790}, - dictWord{5, 10, 632}, - dictWord{138, 10, 526}, - dictWord{6, 0, 64}, - dictWord{12, 0, 377}, - dictWord{13, 0, 309}, - dictWord{14, 0, 141}, - dictWord{14, 0, 429}, - dictWord{14, 11, 141}, - dictWord{142, 11, 429}, - dictWord{134, 0, 1529}, - dictWord{6, 0, 321}, - dictWord{7, 0, 1857}, - dictWord{9, 0, 530}, - dictWord{19, 0, 99}, - dictWord{7, 10, 948}, - dictWord{7, 10, 1042}, - dictWord{8, 10, 235}, - dictWord{ - 8, - 10, - 461, - }, - dictWord{9, 10, 453}, - dictWord{10, 10, 354}, - dictWord{145, 10, 77}, - dictWord{7, 0, 1104}, - dictWord{11, 0, 269}, - dictWord{11, 0, 539}, - dictWord{ - 11, - 0, - 627, - }, - dictWord{11, 0, 706}, - dictWord{11, 0, 975}, - dictWord{12, 0, 248}, - dictWord{12, 0, 434}, - dictWord{12, 0, 600}, - dictWord{12, 0, 622}, - dictWord{ - 13, - 0, - 297, - }, - dictWord{13, 0, 485}, - dictWord{14, 0, 69}, - dictWord{14, 0, 409}, - dictWord{143, 0, 108}, - dictWord{4, 10, 362}, - dictWord{7, 10, 52}, - dictWord{7, 10, 303}, - dictWord{10, 11, 70}, - dictWord{12, 11, 26}, - dictWord{14, 11, 17}, - dictWord{14, 11, 178}, - dictWord{15, 11, 34}, - dictWord{149, 11, 12}, - dictWord{11, 0, 977}, - dictWord{141, 0, 507}, - dictWord{9, 0, 34}, - dictWord{139, 0, 484}, - dictWord{5, 10, 196}, - dictWord{6, 10, 486}, - dictWord{7, 10, 212}, - dictWord{8, 10, 309}, - dictWord{136, 10, 346}, - dictWord{6, 0, 1700}, - dictWord{7, 0, 26}, - dictWord{7, 0, 293}, - dictWord{7, 0, 382}, - dictWord{7, 0, 1026}, - dictWord{7, 0, 1087}, - dictWord{ - 7, - 0, - 2027, - }, - dictWord{8, 0, 24}, - dictWord{8, 0, 114}, - dictWord{8, 0, 252}, - dictWord{8, 0, 727}, - dictWord{8, 0, 729}, - dictWord{9, 0, 30}, - dictWord{9, 0, 199}, - dictWord{ - 9, - 0, - 231, - }, - dictWord{9, 0, 251}, - dictWord{9, 0, 334}, - dictWord{9, 0, 361}, - dictWord{9, 0, 712}, - dictWord{10, 0, 55}, - dictWord{10, 0, 60}, - dictWord{10, 0, 232}, - dictWord{ - 10, - 0, - 332, - }, - dictWord{10, 0, 384}, - dictWord{10, 0, 396}, - dictWord{10, 0, 504}, - dictWord{10, 0, 542}, - dictWord{10, 0, 652}, - dictWord{11, 0, 20}, - dictWord{11, 0, 48}, - dictWord{11, 0, 207}, - dictWord{11, 0, 291}, - dictWord{11, 0, 298}, - dictWord{11, 0, 342}, - dictWord{11, 0, 365}, - dictWord{11, 0, 394}, - dictWord{11, 0, 620}, - dictWord{11, 0, 705}, - dictWord{11, 0, 1017}, - dictWord{12, 0, 123}, - dictWord{12, 0, 340}, - dictWord{12, 0, 406}, - dictWord{12, 0, 643}, - dictWord{13, 0, 61}, - dictWord{ - 13, - 0, - 269, - }, - dictWord{13, 0, 311}, - dictWord{13, 0, 319}, - dictWord{13, 0, 486}, - dictWord{14, 0, 234}, - dictWord{15, 0, 62}, - dictWord{15, 0, 85}, - dictWord{16, 0, 71}, - dictWord{18, 0, 119}, - dictWord{20, 0, 105}, - dictWord{135, 10, 1912}, - dictWord{4, 11, 71}, - dictWord{5, 11, 376}, - dictWord{7, 11, 119}, - dictWord{138, 11, 665}, - dictWord{10, 0, 918}, - dictWord{10, 0, 926}, - dictWord{4, 10, 686}, - dictWord{136, 11, 55}, - dictWord{138, 10, 625}, - dictWord{136, 10, 706}, - dictWord{ - 132, - 11, - 479, - }, - dictWord{4, 10, 30}, - dictWord{133, 10, 43}, - dictWord{6, 0, 379}, - dictWord{7, 0, 270}, - dictWord{8, 0, 176}, - dictWord{8, 0, 183}, - dictWord{9, 0, 432}, - dictWord{ - 9, - 0, - 661, - }, - dictWord{12, 0, 247}, - dictWord{12, 0, 617}, - dictWord{18, 0, 125}, - dictWord{7, 11, 607}, - dictWord{8, 11, 99}, - dictWord{152, 11, 4}, - dictWord{ - 5, - 0, - 792, - }, - dictWord{133, 0, 900}, - dictWord{4, 11, 612}, - dictWord{133, 11, 561}, - dictWord{4, 11, 41}, - dictWord{4, 10, 220}, - dictWord{5, 11, 74}, - dictWord{ - 7, - 10, - 1535, - }, - dictWord{7, 11, 1627}, - dictWord{11, 11, 871}, - dictWord{140, 11, 619}, - dictWord{135, 0, 1920}, - dictWord{7, 11, 94}, - dictWord{11, 11, 329}, - dictWord{11, 11, 965}, - dictWord{12, 11, 241}, - dictWord{14, 11, 354}, - dictWord{15, 11, 22}, - dictWord{148, 11, 63}, - dictWord{9, 11, 209}, - dictWord{137, 11, 300}, - dictWord{134, 0, 771}, - dictWord{135, 0, 1979}, - dictWord{4, 0, 901}, - dictWord{133, 0, 776}, - dictWord{142, 0, 254}, - dictWord{133, 11, 98}, - dictWord{ - 9, - 11, - 16, - }, - dictWord{141, 11, 386}, - dictWord{133, 11, 984}, - dictWord{4, 11, 182}, - dictWord{6, 11, 205}, - dictWord{135, 11, 220}, - dictWord{7, 10, 1725}, - dictWord{ - 7, - 10, - 1774, - }, - dictWord{138, 10, 393}, - dictWord{5, 10, 263}, - dictWord{134, 10, 414}, - dictWord{4, 11, 42}, - dictWord{9, 11, 205}, - dictWord{9, 11, 786}, - dictWord{138, 11, 659}, - dictWord{14, 0, 140}, - dictWord{148, 0, 41}, - dictWord{8, 0, 440}, - dictWord{10, 0, 359}, - dictWord{6, 10, 178}, - dictWord{6, 11, 289}, - dictWord{ - 6, - 10, - 1750, - }, - dictWord{7, 11, 1670}, - dictWord{9, 10, 690}, - dictWord{10, 10, 155}, - dictWord{10, 10, 373}, - dictWord{11, 10, 698}, - dictWord{12, 11, 57}, - dictWord{13, 10, 155}, - dictWord{20, 10, 93}, - dictWord{151, 11, 4}, - dictWord{4, 0, 37}, - dictWord{5, 0, 334}, - dictWord{7, 0, 1253}, - dictWord{151, 11, 25}, - dictWord{ - 4, - 0, - 508, - }, - dictWord{4, 11, 635}, - dictWord{5, 10, 97}, - dictWord{137, 10, 393}, - dictWord{139, 11, 533}, - dictWord{4, 0, 640}, - dictWord{133, 0, 513}, - dictWord{ - 134, - 10, - 1639, - }, - dictWord{132, 11, 371}, - dictWord{4, 11, 272}, - dictWord{7, 11, 836}, - dictWord{7, 11, 1651}, - dictWord{145, 11, 89}, - dictWord{5, 11, 825}, - dictWord{6, 11, 444}, - dictWord{6, 11, 1640}, - dictWord{136, 11, 308}, - dictWord{4, 10, 191}, - dictWord{7, 10, 934}, - dictWord{8, 10, 647}, - dictWord{145, 10, 97}, - dictWord{12, 0, 246}, - dictWord{15, 0, 162}, - dictWord{19, 0, 64}, - dictWord{20, 0, 8}, - dictWord{20, 0, 95}, - dictWord{22, 0, 24}, - dictWord{152, 0, 17}, - dictWord{4, 0, 533}, - dictWord{5, 10, 165}, - dictWord{9, 10, 346}, - dictWord{138, 10, 655}, - dictWord{5, 11, 737}, - dictWord{139, 10, 885}, - dictWord{133, 10, 877}, - dictWord{ - 8, - 10, - 128, - }, - dictWord{139, 10, 179}, - dictWord{137, 11, 307}, - dictWord{140, 0, 752}, - dictWord{133, 0, 920}, - dictWord{135, 0, 1048}, - dictWord{5, 0, 153}, - dictWord{ - 6, - 0, - 580, - }, - dictWord{6, 10, 1663}, - dictWord{7, 10, 132}, - dictWord{7, 10, 1154}, - dictWord{7, 10, 1415}, - dictWord{7, 10, 1507}, - dictWord{12, 10, 493}, - dictWord{15, 10, 105}, - dictWord{151, 10, 15}, - dictWord{5, 10, 459}, - dictWord{7, 10, 1073}, - dictWord{8, 10, 241}, - dictWord{136, 10, 334}, - dictWord{138, 0, 391}, - dictWord{135, 0, 1952}, - dictWord{133, 11, 525}, - dictWord{8, 11, 641}, - dictWord{11, 11, 388}, - dictWord{140, 11, 580}, - dictWord{142, 0, 126}, - dictWord{ - 134, - 0, - 640, - }, - dictWord{132, 0, 483}, - dictWord{7, 0, 1616}, - dictWord{9, 0, 69}, - dictWord{6, 10, 324}, - dictWord{6, 10, 520}, - dictWord{7, 10, 338}, - dictWord{ - 7, - 10, - 1729, - }, - dictWord{8, 10, 228}, - dictWord{139, 10, 750}, - dictWord{5, 11, 493}, - dictWord{134, 11, 528}, - dictWord{135, 0, 734}, - dictWord{4, 11, 174}, - dictWord{135, 11, 911}, - dictWord{138, 0, 480}, - dictWord{9, 0, 495}, - dictWord{146, 0, 104}, - dictWord{135, 10, 705}, - dictWord{9, 0, 472}, - dictWord{4, 10, 73}, - dictWord{6, 10, 612}, - dictWord{7, 10, 927}, - dictWord{7, 10, 1330}, - dictWord{7, 10, 1822}, - dictWord{8, 10, 217}, - dictWord{9, 10, 765}, - dictWord{9, 10, 766}, - dictWord{10, 10, 408}, - dictWord{11, 10, 51}, - dictWord{11, 10, 793}, - dictWord{12, 10, 266}, - dictWord{15, 10, 158}, - dictWord{20, 10, 89}, - dictWord{150, 10, 32}, - dictWord{7, 11, 548}, - dictWord{137, 11, 58}, - dictWord{4, 11, 32}, - dictWord{5, 11, 215}, - dictWord{6, 11, 269}, - dictWord{7, 11, 1782}, - dictWord{7, 11, 1892}, - dictWord{10, 11, 16}, - dictWord{11, 11, 822}, - dictWord{11, 11, 954}, - dictWord{141, 11, 481}, - dictWord{132, 0, 874}, - dictWord{9, 0, 229}, - dictWord{5, 10, 389}, - dictWord{136, 10, 636}, - dictWord{7, 11, 1749}, - dictWord{136, 11, 477}, - dictWord{134, 0, 948}, - dictWord{5, 11, 308}, - dictWord{135, 11, 1088}, - dictWord{ - 4, - 0, - 748, - }, - dictWord{139, 0, 1009}, - dictWord{136, 10, 21}, - dictWord{6, 0, 555}, - dictWord{135, 0, 485}, - dictWord{5, 11, 126}, - dictWord{8, 11, 297}, - dictWord{ - 9, - 11, - 366, - }, - dictWord{9, 11, 445}, - dictWord{12, 11, 53}, - dictWord{12, 11, 374}, - dictWord{141, 11, 492}, - dictWord{7, 11, 1551}, - dictWord{139, 11, 361}, - dictWord{136, 0, 193}, - dictWord{136, 0, 472}, - dictWord{8, 0, 653}, - dictWord{13, 0, 93}, - dictWord{147, 0, 14}, - dictWord{132, 0, 984}, - dictWord{132, 11, 175}, - dictWord{5, 0, 172}, - dictWord{6, 0, 1971}, - dictWord{132, 11, 685}, - dictWord{149, 11, 8}, - dictWord{133, 11, 797}, - dictWord{13, 0, 83}, - dictWord{5, 10, 189}, - dictWord{ - 7, - 10, - 442, - }, - dictWord{7, 10, 443}, - dictWord{8, 10, 281}, - dictWord{12, 10, 174}, - dictWord{141, 10, 261}, - dictWord{134, 0, 1568}, - dictWord{133, 11, 565}, - dictWord{139, 0, 384}, - dictWord{133, 0, 260}, - dictWord{7, 0, 758}, - dictWord{7, 0, 880}, - dictWord{7, 0, 1359}, - dictWord{9, 0, 164}, - dictWord{9, 0, 167}, - dictWord{ - 10, - 0, - 156, - }, - dictWord{10, 0, 588}, - dictWord{12, 0, 101}, - dictWord{14, 0, 48}, - dictWord{15, 0, 70}, - dictWord{6, 10, 2}, - dictWord{7, 10, 1262}, - dictWord{ - 7, - 10, - 1737, - }, - dictWord{8, 10, 22}, - dictWord{8, 10, 270}, - dictWord{8, 10, 612}, - dictWord{9, 10, 312}, - dictWord{9, 10, 436}, - dictWord{10, 10, 311}, - dictWord{ - 10, - 10, - 623, - }, - dictWord{11, 10, 72}, - dictWord{11, 10, 330}, - dictWord{11, 10, 455}, - dictWord{12, 10, 321}, - dictWord{12, 10, 504}, - dictWord{12, 10, 530}, - dictWord{ - 12, - 10, - 543, - }, - dictWord{13, 10, 17}, - dictWord{13, 10, 156}, - dictWord{13, 10, 334}, - dictWord{17, 10, 60}, - dictWord{148, 10, 64}, - dictWord{4, 11, 252}, - dictWord{ - 7, - 11, - 1068, - }, - dictWord{10, 11, 434}, - dictWord{11, 11, 228}, - dictWord{11, 11, 426}, - dictWord{13, 11, 231}, - dictWord{18, 11, 106}, - dictWord{148, 11, 87}, - dictWord{7, 10, 354}, - dictWord{10, 10, 410}, - dictWord{139, 10, 815}, - dictWord{6, 0, 367}, - dictWord{7, 10, 670}, - dictWord{7, 10, 1327}, - dictWord{8, 10, 411}, - dictWord{8, 10, 435}, - dictWord{9, 10, 653}, - dictWord{9, 10, 740}, - dictWord{10, 10, 385}, - dictWord{11, 10, 222}, - dictWord{11, 10, 324}, - dictWord{11, 10, 829}, - dictWord{140, 10, 611}, - dictWord{7, 0, 1174}, - dictWord{6, 10, 166}, - dictWord{135, 10, 374}, - dictWord{146, 0, 121}, - dictWord{132, 0, 828}, - dictWord{ - 5, - 11, - 231, - }, - dictWord{138, 11, 509}, - dictWord{7, 11, 601}, - dictWord{9, 11, 277}, - dictWord{9, 11, 674}, - dictWord{10, 11, 178}, - dictWord{10, 11, 257}, - dictWord{ - 10, - 11, - 418, - }, - dictWord{11, 11, 531}, - dictWord{11, 11, 544}, - dictWord{11, 11, 585}, - dictWord{12, 11, 113}, - dictWord{12, 11, 475}, - dictWord{13, 11, 99}, - dictWord{142, 11, 428}, - dictWord{134, 0, 1541}, - dictWord{135, 11, 1779}, - dictWord{5, 0, 343}, - dictWord{134, 10, 398}, - dictWord{135, 10, 50}, - dictWord{ - 135, - 11, - 1683, - }, - dictWord{4, 0, 440}, - dictWord{7, 0, 57}, - dictWord{8, 0, 167}, - dictWord{8, 0, 375}, - dictWord{9, 0, 82}, - dictWord{9, 0, 561}, - dictWord{9, 0, 744}, - dictWord{ - 10, - 0, - 620, - }, - dictWord{137, 11, 744}, - dictWord{134, 0, 926}, - dictWord{6, 10, 517}, - dictWord{7, 10, 1159}, - dictWord{10, 10, 621}, - dictWord{139, 10, 192}, - dictWord{137, 0, 827}, - dictWord{8, 0, 194}, - dictWord{136, 0, 756}, - dictWord{10, 10, 223}, - dictWord{139, 10, 645}, - dictWord{7, 10, 64}, - dictWord{ - 136, - 10, - 245, - }, - dictWord{4, 11, 399}, - dictWord{5, 11, 119}, - dictWord{5, 11, 494}, - dictWord{7, 11, 751}, - dictWord{137, 11, 556}, - dictWord{132, 0, 808}, - dictWord{ - 135, - 0, - 22, - }, - dictWord{7, 10, 1763}, - dictWord{140, 10, 310}, - dictWord{5, 0, 639}, - dictWord{7, 0, 1249}, - dictWord{11, 0, 896}, - dictWord{134, 11, 584}, - dictWord{ - 134, - 0, - 1614, - }, - dictWord{135, 0, 860}, - dictWord{135, 11, 1121}, - dictWord{5, 10, 129}, - dictWord{6, 10, 61}, - dictWord{135, 10, 947}, - dictWord{4, 0, 102}, - dictWord{ - 7, - 0, - 815, - }, - dictWord{7, 0, 1699}, - dictWord{139, 0, 964}, - dictWord{13, 10, 505}, - dictWord{141, 10, 506}, - dictWord{139, 10, 1000}, - dictWord{ - 132, - 11, - 679, - }, - dictWord{132, 0, 899}, - dictWord{132, 0, 569}, - dictWord{5, 11, 694}, - dictWord{137, 11, 714}, - dictWord{136, 0, 795}, - dictWord{6, 0, 2045}, - dictWord{ - 139, - 11, - 7, - }, - dictWord{6, 0, 52}, - dictWord{9, 0, 104}, - dictWord{9, 0, 559}, - dictWord{12, 0, 308}, - dictWord{147, 0, 87}, - dictWord{4, 0, 301}, - dictWord{132, 0, 604}, - dictWord{133, 10, 637}, - dictWord{136, 0, 779}, - dictWord{5, 11, 143}, - dictWord{5, 11, 769}, - dictWord{6, 11, 1760}, - dictWord{7, 11, 682}, - dictWord{7, 11, 1992}, - dictWord{136, 11, 736}, - dictWord{137, 10, 590}, - dictWord{147, 0, 32}, - dictWord{137, 11, 527}, - dictWord{5, 10, 280}, - dictWord{135, 10, 1226}, - dictWord{134, 0, 494}, - dictWord{6, 0, 677}, - dictWord{6, 0, 682}, - dictWord{134, 0, 1044}, - dictWord{133, 10, 281}, - dictWord{135, 10, 1064}, - dictWord{7, 0, 508}, - dictWord{133, 11, 860}, - dictWord{6, 11, 422}, - dictWord{7, 11, 0}, - dictWord{7, 11, 1544}, - dictWord{9, 11, 577}, - dictWord{11, 11, 990}, - dictWord{12, 11, 141}, - dictWord{12, 11, 453}, - dictWord{13, 11, 47}, - dictWord{141, 11, 266}, - dictWord{134, 0, 1014}, - dictWord{5, 11, 515}, - dictWord{137, 11, 131}, - dictWord{ - 134, - 0, - 957, - }, - dictWord{132, 11, 646}, - dictWord{6, 0, 310}, - dictWord{7, 0, 1849}, - dictWord{8, 0, 72}, - dictWord{8, 0, 272}, - dictWord{8, 0, 431}, - dictWord{9, 0, 12}, - dictWord{ - 9, - 0, - 376, - }, - dictWord{10, 0, 563}, - dictWord{10, 0, 630}, - dictWord{10, 0, 796}, - dictWord{10, 0, 810}, - dictWord{11, 0, 367}, - dictWord{11, 0, 599}, - dictWord{ - 11, - 0, - 686, - }, - dictWord{140, 0, 672}, - dictWord{7, 0, 570}, - dictWord{4, 11, 396}, - dictWord{7, 10, 120}, - dictWord{7, 11, 728}, - dictWord{8, 10, 489}, - dictWord{9, 11, 117}, - dictWord{9, 10, 319}, - dictWord{10, 10, 820}, - dictWord{11, 10, 1004}, - dictWord{12, 10, 379}, - dictWord{12, 10, 679}, - dictWord{13, 10, 117}, - dictWord{ - 13, - 11, - 202, - }, - dictWord{13, 10, 412}, - dictWord{14, 10, 25}, - dictWord{15, 10, 52}, - dictWord{15, 10, 161}, - dictWord{16, 10, 47}, - dictWord{20, 11, 51}, - dictWord{ - 149, - 10, - 2, - }, - dictWord{6, 11, 121}, - dictWord{6, 11, 124}, - dictWord{6, 11, 357}, - dictWord{7, 11, 1138}, - dictWord{7, 11, 1295}, - dictWord{8, 11, 162}, - dictWord{ - 139, - 11, - 655, - }, - dictWord{8, 0, 449}, - dictWord{4, 10, 937}, - dictWord{5, 10, 801}, - dictWord{136, 11, 449}, - dictWord{139, 11, 958}, - dictWord{6, 0, 181}, - dictWord{ - 7, - 0, - 537, - }, - dictWord{8, 0, 64}, - dictWord{9, 0, 127}, - dictWord{10, 0, 496}, - dictWord{12, 0, 510}, - dictWord{141, 0, 384}, - dictWord{138, 11, 253}, - dictWord{4, 0, 244}, - dictWord{135, 0, 233}, - dictWord{133, 11, 237}, - dictWord{132, 10, 365}, - dictWord{6, 0, 1650}, - dictWord{10, 0, 702}, - dictWord{139, 0, 245}, - dictWord{ - 5, - 10, - 7, - }, - dictWord{139, 10, 774}, - dictWord{13, 0, 463}, - dictWord{20, 0, 49}, - dictWord{13, 11, 463}, - dictWord{148, 11, 49}, - dictWord{4, 10, 734}, - dictWord{ - 5, - 10, - 662, - }, - dictWord{134, 10, 430}, - dictWord{4, 10, 746}, - dictWord{135, 10, 1090}, - dictWord{5, 10, 360}, - dictWord{136, 10, 237}, - dictWord{137, 0, 338}, - dictWord{143, 11, 10}, - dictWord{7, 11, 571}, - dictWord{138, 11, 366}, - dictWord{134, 0, 1279}, - dictWord{9, 11, 513}, - dictWord{10, 11, 22}, - dictWord{10, 11, 39}, - dictWord{12, 11, 122}, - dictWord{140, 11, 187}, - dictWord{133, 0, 896}, - dictWord{146, 0, 178}, - dictWord{134, 0, 695}, - dictWord{137, 0, 808}, - dictWord{ - 134, - 11, - 587, - }, - dictWord{7, 11, 107}, - dictWord{7, 11, 838}, - dictWord{8, 11, 550}, - dictWord{138, 11, 401}, - dictWord{7, 0, 1117}, - dictWord{136, 0, 539}, - dictWord{ - 4, - 10, - 277, - }, - dictWord{5, 10, 608}, - dictWord{6, 10, 493}, - dictWord{7, 10, 457}, - dictWord{140, 10, 384}, - dictWord{133, 11, 768}, - dictWord{12, 0, 257}, - dictWord{ - 7, - 10, - 27, - }, - dictWord{135, 10, 316}, - dictWord{140, 0, 1003}, - dictWord{4, 0, 207}, - dictWord{5, 0, 586}, - dictWord{5, 0, 676}, - dictWord{6, 0, 448}, - dictWord{ - 8, - 0, - 244, - }, - dictWord{11, 0, 1}, - dictWord{13, 0, 3}, - dictWord{16, 0, 54}, - dictWord{17, 0, 4}, - dictWord{18, 0, 13}, - dictWord{133, 10, 552}, - dictWord{4, 10, 401}, - dictWord{ - 137, - 10, - 264, - }, - dictWord{5, 0, 516}, - dictWord{7, 0, 1883}, - dictWord{135, 11, 1883}, - dictWord{12, 0, 960}, - dictWord{132, 11, 894}, - dictWord{5, 0, 4}, - dictWord{ - 5, - 0, - 810, - }, - dictWord{6, 0, 13}, - dictWord{6, 0, 538}, - dictWord{6, 0, 1690}, - dictWord{6, 0, 1726}, - dictWord{7, 0, 499}, - dictWord{7, 0, 1819}, - dictWord{8, 0, 148}, - dictWord{ - 8, - 0, - 696, - }, - dictWord{8, 0, 791}, - dictWord{12, 0, 125}, - dictWord{143, 0, 9}, - dictWord{135, 0, 1268}, - dictWord{11, 0, 30}, - dictWord{14, 0, 315}, - dictWord{ - 9, - 10, - 543, - }, - dictWord{10, 10, 524}, - dictWord{12, 10, 524}, - dictWord{16, 10, 18}, - dictWord{20, 10, 26}, - dictWord{148, 10, 65}, - dictWord{6, 0, 748}, - dictWord{ - 4, - 10, - 205, - }, - dictWord{5, 10, 623}, - dictWord{7, 10, 104}, - dictWord{136, 10, 519}, - dictWord{11, 0, 542}, - dictWord{139, 0, 852}, - dictWord{140, 0, 6}, - dictWord{ - 132, - 0, - 848, - }, - dictWord{7, 0, 1385}, - dictWord{11, 0, 582}, - dictWord{11, 0, 650}, - dictWord{11, 0, 901}, - dictWord{11, 0, 949}, - dictWord{12, 0, 232}, - dictWord{12, 0, 236}, - dictWord{13, 0, 413}, - dictWord{13, 0, 501}, - dictWord{18, 0, 116}, - dictWord{7, 10, 579}, - dictWord{9, 10, 41}, - dictWord{9, 10, 244}, - dictWord{9, 10, 669}, - dictWord{10, 10, 5}, - dictWord{11, 10, 861}, - dictWord{11, 10, 951}, - dictWord{139, 10, 980}, - dictWord{4, 0, 945}, - dictWord{6, 0, 1811}, - dictWord{6, 0, 1845}, - dictWord{ - 6, - 0, - 1853, - }, - dictWord{6, 0, 1858}, - dictWord{8, 0, 862}, - dictWord{12, 0, 782}, - dictWord{12, 0, 788}, - dictWord{18, 0, 160}, - dictWord{148, 0, 117}, - dictWord{ - 132, - 10, - 717, - }, - dictWord{4, 0, 925}, - dictWord{5, 0, 803}, - dictWord{8, 0, 698}, - dictWord{138, 0, 828}, - dictWord{134, 0, 1416}, - dictWord{132, 0, 610}, - dictWord{ - 139, - 0, - 992, - }, - dictWord{6, 0, 878}, - dictWord{134, 0, 1477}, - dictWord{135, 0, 1847}, - dictWord{138, 11, 531}, - dictWord{137, 11, 539}, - dictWord{134, 11, 272}, - dictWord{133, 0, 383}, - dictWord{134, 0, 1404}, - dictWord{132, 10, 489}, - dictWord{4, 11, 9}, - dictWord{5, 11, 128}, - dictWord{7, 11, 368}, - dictWord{ - 11, - 11, - 480, - }, - dictWord{148, 11, 3}, - dictWord{136, 0, 986}, - dictWord{9, 0, 660}, - dictWord{138, 0, 347}, - dictWord{135, 10, 892}, - dictWord{136, 11, 682}, - dictWord{ - 7, - 0, - 572, - }, - dictWord{9, 0, 592}, - dictWord{11, 0, 680}, - dictWord{12, 0, 356}, - dictWord{140, 0, 550}, - dictWord{7, 0, 1411}, - dictWord{138, 11, 527}, - dictWord{ - 4, - 11, - 2, - }, - dictWord{7, 11, 545}, - dictWord{135, 11, 894}, - dictWord{137, 10, 473}, - dictWord{11, 0, 64}, - dictWord{7, 11, 481}, - dictWord{7, 10, 819}, - dictWord{9, 10, 26}, - dictWord{9, 10, 392}, - dictWord{9, 11, 792}, - dictWord{10, 10, 152}, - dictWord{10, 10, 226}, - dictWord{12, 10, 276}, - dictWord{12, 10, 426}, - dictWord{ - 12, - 10, - 589, - }, - dictWord{13, 10, 460}, - dictWord{15, 10, 97}, - dictWord{19, 10, 48}, - dictWord{148, 10, 104}, - dictWord{135, 10, 51}, - dictWord{136, 11, 445}, - dictWord{136, 11, 646}, - dictWord{135, 0, 606}, - dictWord{132, 10, 674}, - dictWord{6, 0, 1829}, - dictWord{134, 0, 1830}, - dictWord{132, 10, 770}, - dictWord{ - 5, - 10, - 79, - }, - dictWord{7, 10, 1027}, - dictWord{7, 10, 1477}, - dictWord{139, 10, 52}, - dictWord{5, 11, 530}, - dictWord{142, 11, 113}, - dictWord{134, 10, 1666}, - dictWord{ - 7, - 0, - 748, - }, - dictWord{139, 0, 700}, - dictWord{134, 10, 195}, - dictWord{133, 10, 789}, - dictWord{9, 0, 87}, - dictWord{10, 0, 365}, - dictWord{4, 10, 251}, - dictWord{ - 4, - 10, - 688, - }, - dictWord{7, 10, 513}, - dictWord{135, 10, 1284}, - dictWord{136, 11, 111}, - dictWord{133, 0, 127}, - dictWord{6, 0, 198}, - dictWord{140, 0, 83}, - dictWord{133, 11, 556}, - dictWord{133, 10, 889}, - dictWord{4, 10, 160}, - dictWord{5, 10, 330}, - dictWord{7, 10, 1434}, - dictWord{136, 10, 174}, - dictWord{5, 0, 276}, - dictWord{6, 0, 55}, - dictWord{7, 0, 1369}, - dictWord{138, 0, 864}, - dictWord{8, 11, 16}, - dictWord{140, 11, 568}, - dictWord{6, 0, 1752}, - dictWord{136, 0, 726}, - dictWord{135, 0, 1066}, - dictWord{133, 0, 764}, - dictWord{6, 11, 186}, - dictWord{137, 11, 426}, - dictWord{11, 0, 683}, - dictWord{139, 11, 683}, - dictWord{ - 6, - 0, - 309, - }, - dictWord{7, 0, 331}, - dictWord{138, 0, 550}, - dictWord{133, 10, 374}, - dictWord{6, 0, 1212}, - dictWord{6, 0, 1852}, - dictWord{7, 0, 1062}, - dictWord{ - 8, - 0, - 874, - }, - dictWord{8, 0, 882}, - dictWord{138, 0, 936}, - dictWord{132, 11, 585}, - dictWord{134, 0, 1364}, - dictWord{7, 0, 986}, - dictWord{133, 10, 731}, - dictWord{ - 6, - 0, - 723, - }, - dictWord{6, 0, 1408}, - dictWord{138, 0, 381}, - dictWord{135, 0, 1573}, - dictWord{134, 0, 1025}, - dictWord{4, 10, 626}, - dictWord{5, 10, 642}, - dictWord{ - 6, - 10, - 425, - }, - dictWord{10, 10, 202}, - dictWord{139, 10, 141}, - dictWord{4, 11, 93}, - dictWord{5, 11, 252}, - dictWord{6, 11, 229}, - dictWord{7, 11, 291}, - dictWord{ - 9, - 11, - 550, - }, - dictWord{139, 11, 644}, - dictWord{137, 11, 749}, - dictWord{137, 11, 162}, - dictWord{132, 11, 381}, - dictWord{135, 0, 1559}, - dictWord{ - 6, - 0, - 194, - }, - dictWord{7, 0, 133}, - dictWord{10, 0, 493}, - dictWord{10, 0, 570}, - dictWord{139, 0, 664}, - dictWord{5, 0, 24}, - dictWord{5, 0, 569}, - dictWord{6, 0, 3}, - dictWord{ - 6, - 0, - 119, - }, - dictWord{6, 0, 143}, - dictWord{6, 0, 440}, - dictWord{7, 0, 295}, - dictWord{7, 0, 599}, - dictWord{7, 0, 1686}, - dictWord{7, 0, 1854}, - dictWord{8, 0, 424}, - dictWord{ - 9, - 0, - 43, - }, - dictWord{9, 0, 584}, - dictWord{9, 0, 760}, - dictWord{10, 0, 148}, - dictWord{10, 0, 328}, - dictWord{11, 0, 159}, - dictWord{11, 0, 253}, - dictWord{11, 0, 506}, - dictWord{12, 0, 487}, - dictWord{140, 0, 531}, - dictWord{6, 0, 661}, - dictWord{134, 0, 1517}, - dictWord{136, 10, 835}, - dictWord{151, 10, 17}, - dictWord{5, 0, 14}, - dictWord{5, 0, 892}, - dictWord{6, 0, 283}, - dictWord{7, 0, 234}, - dictWord{136, 0, 537}, - dictWord{139, 0, 541}, - dictWord{4, 0, 126}, - dictWord{8, 0, 635}, - dictWord{ - 147, - 0, - 34, - }, - dictWord{4, 0, 316}, - dictWord{4, 0, 495}, - dictWord{135, 0, 1561}, - dictWord{4, 11, 187}, - dictWord{5, 11, 184}, - dictWord{5, 11, 690}, - dictWord{ - 7, - 11, - 1869, - }, - dictWord{138, 11, 756}, - dictWord{139, 11, 783}, - dictWord{4, 0, 998}, - dictWord{137, 0, 861}, - dictWord{136, 0, 1009}, - dictWord{139, 11, 292}, - dictWord{5, 11, 21}, - dictWord{6, 11, 77}, - dictWord{6, 11, 157}, - dictWord{7, 11, 974}, - dictWord{7, 11, 1301}, - dictWord{7, 11, 1339}, - dictWord{7, 11, 1490}, - dictWord{ - 7, - 11, - 1873, - }, - dictWord{137, 11, 628}, - dictWord{7, 11, 1283}, - dictWord{9, 11, 227}, - dictWord{9, 11, 499}, - dictWord{10, 11, 341}, - dictWord{11, 11, 325}, - dictWord{11, 11, 408}, - dictWord{14, 11, 180}, - dictWord{15, 11, 144}, - dictWord{18, 11, 47}, - dictWord{147, 11, 49}, - dictWord{4, 0, 64}, - dictWord{5, 0, 352}, - dictWord{5, 0, 720}, - dictWord{6, 0, 368}, - dictWord{139, 0, 359}, - dictWord{5, 10, 384}, - dictWord{8, 10, 455}, - dictWord{140, 10, 48}, - dictWord{5, 10, 264}, - dictWord{ - 134, - 10, - 184, - }, - dictWord{7, 0, 1577}, - dictWord{10, 0, 304}, - dictWord{10, 0, 549}, - dictWord{12, 0, 365}, - dictWord{13, 0, 220}, - dictWord{13, 0, 240}, - dictWord{ - 142, - 0, - 33, - }, - dictWord{134, 0, 1107}, - dictWord{134, 0, 929}, - dictWord{135, 0, 1142}, - dictWord{6, 0, 175}, - dictWord{137, 0, 289}, - dictWord{5, 0, 432}, - dictWord{ - 133, - 0, - 913, - }, - dictWord{6, 0, 279}, - dictWord{7, 0, 219}, - dictWord{5, 10, 633}, - dictWord{135, 10, 1323}, - dictWord{7, 0, 785}, - dictWord{7, 10, 359}, - dictWord{ - 8, - 10, - 243, - }, - dictWord{140, 10, 175}, - dictWord{139, 0, 595}, - dictWord{132, 10, 105}, - dictWord{8, 11, 398}, - dictWord{9, 11, 681}, - dictWord{139, 11, 632}, - dictWord{140, 0, 80}, - dictWord{5, 0, 931}, - dictWord{134, 0, 1698}, - dictWord{142, 11, 241}, - dictWord{134, 11, 20}, - dictWord{134, 0, 1323}, - dictWord{11, 0, 526}, - dictWord{11, 0, 939}, - dictWord{141, 0, 290}, - dictWord{5, 0, 774}, - dictWord{6, 0, 780}, - dictWord{6, 0, 1637}, - dictWord{6, 0, 1686}, - dictWord{6, 0, 1751}, - dictWord{ - 8, - 0, - 559, - }, - dictWord{141, 0, 109}, - dictWord{141, 0, 127}, - dictWord{7, 0, 1167}, - dictWord{11, 0, 934}, - dictWord{13, 0, 391}, - dictWord{17, 0, 76}, - dictWord{ - 135, - 11, - 709, - }, - dictWord{135, 0, 963}, - dictWord{6, 0, 260}, - dictWord{135, 0, 1484}, - dictWord{134, 0, 573}, - dictWord{4, 10, 758}, - dictWord{139, 11, 941}, - dictWord{135, 10, 1649}, - dictWord{145, 11, 36}, - dictWord{4, 0, 292}, - dictWord{137, 0, 580}, - dictWord{4, 0, 736}, - dictWord{5, 0, 871}, - dictWord{6, 0, 1689}, - dictWord{135, 0, 1944}, - dictWord{7, 11, 945}, - dictWord{11, 11, 713}, - dictWord{139, 11, 744}, - dictWord{134, 0, 1164}, - dictWord{135, 11, 937}, - dictWord{ - 6, - 0, - 1922, - }, - dictWord{9, 0, 982}, - dictWord{15, 0, 173}, - dictWord{15, 0, 178}, - dictWord{15, 0, 200}, - dictWord{18, 0, 189}, - dictWord{18, 0, 207}, - dictWord{21, 0, 47}, - dictWord{135, 11, 1652}, - dictWord{7, 0, 1695}, - dictWord{139, 10, 128}, - dictWord{6, 0, 63}, - dictWord{135, 0, 920}, - dictWord{133, 0, 793}, - dictWord{ - 143, - 11, - 134, - }, - dictWord{133, 10, 918}, - dictWord{5, 0, 67}, - dictWord{6, 0, 62}, - dictWord{6, 0, 374}, - dictWord{135, 0, 1391}, - dictWord{9, 0, 790}, - dictWord{12, 0, 47}, - dictWord{4, 11, 579}, - dictWord{5, 11, 226}, - dictWord{5, 11, 323}, - dictWord{135, 11, 960}, - dictWord{10, 11, 784}, - dictWord{141, 11, 191}, - dictWord{4, 0, 391}, - dictWord{135, 0, 1169}, - dictWord{137, 0, 443}, - dictWord{13, 11, 232}, - dictWord{146, 11, 35}, - dictWord{132, 10, 340}, - dictWord{132, 0, 271}, - dictWord{ - 137, - 11, - 313, - }, - dictWord{5, 11, 973}, - dictWord{137, 11, 659}, - dictWord{134, 0, 1140}, - dictWord{6, 11, 135}, - dictWord{135, 11, 1176}, - dictWord{4, 0, 253}, - dictWord{5, 0, 544}, - dictWord{7, 0, 300}, - dictWord{137, 0, 340}, - dictWord{7, 0, 897}, - dictWord{5, 10, 985}, - dictWord{7, 10, 509}, - dictWord{145, 10, 96}, - dictWord{ - 138, - 11, - 735, - }, - dictWord{135, 10, 1919}, - dictWord{138, 0, 890}, - dictWord{5, 0, 818}, - dictWord{134, 0, 1122}, - dictWord{5, 0, 53}, - dictWord{5, 0, 541}, - dictWord{ - 6, - 0, - 94, - }, - dictWord{6, 0, 499}, - dictWord{7, 0, 230}, - dictWord{139, 0, 321}, - dictWord{4, 0, 920}, - dictWord{5, 0, 25}, - dictWord{5, 0, 790}, - dictWord{6, 0, 457}, - dictWord{ - 7, - 0, - 853, - }, - dictWord{8, 0, 788}, - dictWord{142, 11, 31}, - dictWord{132, 10, 247}, - dictWord{135, 11, 314}, - dictWord{132, 0, 468}, - dictWord{7, 0, 243}, - dictWord{ - 6, - 10, - 337, - }, - dictWord{7, 10, 494}, - dictWord{8, 10, 27}, - dictWord{8, 10, 599}, - dictWord{138, 10, 153}, - dictWord{4, 10, 184}, - dictWord{5, 10, 390}, - dictWord{ - 7, - 10, - 618, - }, - dictWord{7, 10, 1456}, - dictWord{139, 10, 710}, - dictWord{134, 0, 870}, - dictWord{134, 0, 1238}, - dictWord{134, 0, 1765}, - dictWord{10, 0, 853}, - dictWord{10, 0, 943}, - dictWord{14, 0, 437}, - dictWord{14, 0, 439}, - dictWord{14, 0, 443}, - dictWord{14, 0, 446}, - dictWord{14, 0, 452}, - dictWord{14, 0, 469}, - dictWord{ - 14, - 0, - 471, - }, - dictWord{14, 0, 473}, - dictWord{16, 0, 93}, - dictWord{16, 0, 102}, - dictWord{16, 0, 110}, - dictWord{148, 0, 121}, - dictWord{4, 0, 605}, - dictWord{ - 7, - 0, - 518, - }, - dictWord{7, 0, 1282}, - dictWord{7, 0, 1918}, - dictWord{10, 0, 180}, - dictWord{139, 0, 218}, - dictWord{133, 0, 822}, - dictWord{4, 0, 634}, - dictWord{ - 11, - 0, - 916, - }, - dictWord{142, 0, 419}, - dictWord{6, 11, 281}, - dictWord{7, 11, 6}, - dictWord{8, 11, 282}, - dictWord{8, 11, 480}, - dictWord{8, 11, 499}, - dictWord{9, 11, 198}, - dictWord{10, 11, 143}, - dictWord{10, 11, 169}, - dictWord{10, 11, 211}, - dictWord{10, 11, 417}, - dictWord{10, 11, 574}, - dictWord{11, 11, 147}, - dictWord{ - 11, - 11, - 395, - }, - dictWord{12, 11, 75}, - dictWord{12, 11, 407}, - dictWord{12, 11, 608}, - dictWord{13, 11, 500}, - dictWord{142, 11, 251}, - dictWord{134, 0, 898}, - dictWord{ - 6, - 0, - 36, - }, - dictWord{7, 0, 658}, - dictWord{8, 0, 454}, - dictWord{150, 11, 48}, - dictWord{133, 11, 674}, - dictWord{135, 11, 1776}, - dictWord{4, 11, 419}, - dictWord{ - 10, - 10, - 227, - }, - dictWord{11, 10, 497}, - dictWord{11, 10, 709}, - dictWord{140, 10, 415}, - dictWord{6, 10, 360}, - dictWord{7, 10, 1664}, - dictWord{136, 10, 478}, - dictWord{137, 0, 806}, - dictWord{12, 11, 508}, - dictWord{14, 11, 102}, - dictWord{14, 11, 226}, - dictWord{144, 11, 57}, - dictWord{135, 11, 1123}, - dictWord{ - 4, - 11, - 138, - }, - dictWord{7, 11, 1012}, - dictWord{7, 11, 1280}, - dictWord{137, 11, 76}, - dictWord{5, 11, 29}, - dictWord{140, 11, 638}, - dictWord{136, 10, 699}, - dictWord{134, 0, 1326}, - dictWord{132, 0, 104}, - dictWord{135, 11, 735}, - dictWord{132, 10, 739}, - dictWord{134, 0, 1331}, - dictWord{7, 0, 260}, - dictWord{ - 135, - 11, - 260, - }, - dictWord{135, 11, 1063}, - dictWord{7, 0, 45}, - dictWord{9, 0, 542}, - dictWord{9, 0, 566}, - dictWord{10, 0, 728}, - dictWord{137, 10, 869}, - dictWord{ - 4, - 10, - 67, - }, - dictWord{5, 10, 422}, - dictWord{7, 10, 1037}, - dictWord{7, 10, 1289}, - dictWord{7, 10, 1555}, - dictWord{9, 10, 741}, - dictWord{145, 10, 108}, - dictWord{ - 139, - 0, - 263, - }, - dictWord{134, 0, 1516}, - dictWord{14, 0, 146}, - dictWord{15, 0, 42}, - dictWord{16, 0, 23}, - dictWord{17, 0, 86}, - dictWord{146, 0, 17}, - dictWord{ - 138, - 0, - 468, - }, - dictWord{136, 0, 1005}, - dictWord{4, 11, 17}, - dictWord{5, 11, 23}, - dictWord{7, 11, 995}, - dictWord{11, 11, 383}, - dictWord{11, 11, 437}, - dictWord{ - 12, - 11, - 460, - }, - dictWord{140, 11, 532}, - dictWord{7, 0, 87}, - dictWord{142, 0, 288}, - dictWord{138, 10, 96}, - dictWord{135, 11, 626}, - dictWord{144, 10, 26}, - dictWord{ - 7, - 0, - 988, - }, - dictWord{7, 0, 1939}, - dictWord{9, 0, 64}, - dictWord{9, 0, 502}, - dictWord{12, 0, 22}, - dictWord{12, 0, 34}, - dictWord{13, 0, 12}, - dictWord{13, 0, 234}, - dictWord{147, 0, 77}, - dictWord{13, 0, 133}, - dictWord{8, 10, 203}, - dictWord{11, 10, 823}, - dictWord{11, 10, 846}, - dictWord{12, 10, 482}, - dictWord{13, 10, 277}, - dictWord{13, 10, 302}, - dictWord{13, 10, 464}, - dictWord{14, 10, 205}, - dictWord{142, 10, 221}, - dictWord{4, 10, 449}, - dictWord{133, 10, 718}, - dictWord{ - 135, - 0, - 141, - }, - dictWord{6, 0, 1842}, - dictWord{136, 0, 872}, - dictWord{8, 11, 70}, - dictWord{12, 11, 171}, - dictWord{141, 11, 272}, - dictWord{4, 10, 355}, - dictWord{ - 6, - 10, - 311, - }, - dictWord{9, 10, 256}, - dictWord{138, 10, 404}, - dictWord{132, 0, 619}, - dictWord{137, 0, 261}, - dictWord{10, 11, 233}, - dictWord{10, 10, 758}, - dictWord{139, 11, 76}, - dictWord{5, 0, 246}, - dictWord{8, 0, 189}, - dictWord{9, 0, 355}, - dictWord{9, 0, 512}, - dictWord{10, 0, 124}, - dictWord{10, 0, 453}, - dictWord{ - 11, - 0, - 143, - }, - dictWord{11, 0, 416}, - dictWord{11, 0, 859}, - dictWord{141, 0, 341}, - dictWord{134, 11, 442}, - dictWord{133, 10, 827}, - dictWord{5, 10, 64}, - dictWord{ - 140, - 10, - 581, - }, - dictWord{4, 10, 442}, - dictWord{7, 10, 1047}, - dictWord{7, 10, 1352}, - dictWord{135, 10, 1643}, - dictWord{134, 11, 1709}, - dictWord{5, 0, 678}, - dictWord{6, 0, 305}, - dictWord{7, 0, 775}, - dictWord{7, 0, 1065}, - dictWord{133, 10, 977}, - dictWord{11, 11, 69}, - dictWord{12, 11, 105}, - dictWord{12, 11, 117}, - dictWord{13, 11, 213}, - dictWord{14, 11, 13}, - dictWord{14, 11, 62}, - dictWord{14, 11, 177}, - dictWord{14, 11, 421}, - dictWord{15, 11, 19}, - dictWord{146, 11, 141}, - dictWord{137, 11, 309}, - dictWord{5, 0, 35}, - dictWord{7, 0, 862}, - dictWord{7, 0, 1886}, - dictWord{138, 0, 179}, - dictWord{136, 0, 285}, - dictWord{132, 0, 517}, - dictWord{7, 11, 976}, - dictWord{9, 11, 146}, - dictWord{10, 11, 206}, - dictWord{10, 11, 596}, - dictWord{13, 11, 218}, - dictWord{142, 11, 153}, - dictWord{ - 132, - 10, - 254, - }, - dictWord{6, 0, 214}, - dictWord{12, 0, 540}, - dictWord{4, 10, 275}, - dictWord{7, 10, 1219}, - dictWord{140, 10, 376}, - dictWord{8, 0, 667}, - dictWord{ - 11, - 0, - 403, - }, - dictWord{146, 0, 83}, - dictWord{12, 0, 74}, - dictWord{10, 11, 648}, - dictWord{11, 11, 671}, - dictWord{143, 11, 46}, - dictWord{135, 0, 125}, - dictWord{ - 134, - 10, - 1753, - }, - dictWord{133, 0, 761}, - dictWord{6, 0, 912}, - dictWord{4, 11, 518}, - dictWord{6, 10, 369}, - dictWord{6, 10, 502}, - dictWord{7, 10, 1036}, - dictWord{ - 7, - 11, - 1136, - }, - dictWord{8, 10, 348}, - dictWord{9, 10, 452}, - dictWord{10, 10, 26}, - dictWord{11, 10, 224}, - dictWord{11, 10, 387}, - dictWord{11, 10, 772}, - dictWord{12, 10, 95}, - dictWord{12, 10, 629}, - dictWord{13, 10, 195}, - dictWord{13, 10, 207}, - dictWord{13, 10, 241}, - dictWord{14, 10, 260}, - dictWord{14, 10, 270}, - dictWord{143, 10, 140}, - dictWord{10, 0, 131}, - dictWord{140, 0, 72}, - dictWord{132, 10, 269}, - dictWord{5, 10, 480}, - dictWord{7, 10, 532}, - dictWord{ - 7, - 10, - 1197, - }, - dictWord{7, 10, 1358}, - dictWord{8, 10, 291}, - dictWord{11, 10, 349}, - dictWord{142, 10, 396}, - dictWord{8, 11, 689}, - dictWord{137, 11, 863}, - dictWord{ - 8, - 0, - 333, - }, - dictWord{138, 0, 182}, - dictWord{4, 11, 18}, - dictWord{7, 11, 145}, - dictWord{7, 11, 444}, - dictWord{7, 11, 1278}, - dictWord{8, 11, 49}, - dictWord{ - 8, - 11, - 400, - }, - dictWord{9, 11, 71}, - dictWord{9, 11, 250}, - dictWord{10, 11, 459}, - dictWord{12, 11, 160}, - dictWord{144, 11, 24}, - dictWord{14, 11, 35}, - dictWord{ - 142, - 11, - 191, - }, - dictWord{135, 11, 1864}, - dictWord{135, 0, 1338}, - dictWord{148, 10, 15}, - dictWord{14, 0, 94}, - dictWord{15, 0, 65}, - dictWord{16, 0, 4}, - dictWord{ - 16, - 0, - 77, - }, - dictWord{16, 0, 80}, - dictWord{145, 0, 5}, - dictWord{12, 11, 82}, - dictWord{143, 11, 36}, - dictWord{133, 11, 1010}, - dictWord{133, 0, 449}, - dictWord{ - 133, - 0, - 646, - }, - dictWord{7, 0, 86}, - dictWord{8, 0, 103}, - dictWord{135, 10, 657}, - dictWord{7, 0, 2028}, - dictWord{138, 0, 641}, - dictWord{136, 10, 533}, - dictWord{ - 134, - 0, - 1, - }, - dictWord{139, 11, 970}, - dictWord{5, 11, 87}, - dictWord{7, 11, 313}, - dictWord{7, 11, 1103}, - dictWord{10, 11, 112}, - dictWord{10, 11, 582}, - dictWord{ - 11, - 11, - 389, - }, - dictWord{11, 11, 813}, - dictWord{12, 11, 385}, - dictWord{13, 11, 286}, - dictWord{14, 11, 124}, - dictWord{146, 11, 108}, - dictWord{6, 0, 869}, - dictWord{ - 132, - 11, - 267, - }, - dictWord{6, 0, 277}, - dictWord{7, 0, 1274}, - dictWord{7, 0, 1386}, - dictWord{146, 0, 87}, - dictWord{6, 0, 187}, - dictWord{7, 0, 39}, - dictWord{7, 0, 1203}, - dictWord{8, 0, 380}, - dictWord{14, 0, 117}, - dictWord{149, 0, 28}, - dictWord{4, 10, 211}, - dictWord{4, 10, 332}, - dictWord{5, 10, 335}, - dictWord{6, 10, 238}, - dictWord{ - 7, - 10, - 269, - }, - dictWord{7, 10, 811}, - dictWord{7, 10, 1797}, - dictWord{8, 10, 836}, - dictWord{9, 10, 507}, - dictWord{141, 10, 242}, - dictWord{4, 0, 785}, - dictWord{ - 5, - 0, - 368, - }, - dictWord{6, 0, 297}, - dictWord{7, 0, 793}, - dictWord{139, 0, 938}, - dictWord{7, 0, 464}, - dictWord{8, 0, 558}, - dictWord{11, 0, 105}, - dictWord{12, 0, 231}, - dictWord{14, 0, 386}, - dictWord{15, 0, 102}, - dictWord{148, 0, 75}, - dictWord{133, 10, 1009}, - dictWord{8, 0, 877}, - dictWord{140, 0, 731}, - dictWord{ - 139, - 11, - 289, - }, - dictWord{10, 11, 249}, - dictWord{139, 11, 209}, - dictWord{132, 11, 561}, - dictWord{134, 0, 1608}, - dictWord{132, 11, 760}, - dictWord{134, 0, 1429}, - dictWord{9, 11, 154}, - dictWord{140, 11, 485}, - dictWord{5, 10, 228}, - dictWord{6, 10, 203}, - dictWord{7, 10, 156}, - dictWord{8, 10, 347}, - dictWord{ - 137, - 10, - 265, - }, - dictWord{7, 0, 1010}, - dictWord{11, 0, 733}, - dictWord{11, 0, 759}, - dictWord{13, 0, 34}, - dictWord{14, 0, 427}, - dictWord{146, 0, 45}, - dictWord{7, 10, 1131}, - dictWord{135, 10, 1468}, - dictWord{136, 11, 255}, - dictWord{7, 0, 1656}, - dictWord{9, 0, 369}, - dictWord{10, 0, 338}, - dictWord{10, 0, 490}, - dictWord{ - 11, - 0, - 154, - }, - dictWord{11, 0, 545}, - dictWord{11, 0, 775}, - dictWord{13, 0, 77}, - dictWord{141, 0, 274}, - dictWord{133, 11, 621}, - dictWord{134, 0, 1038}, - dictWord{ - 4, - 11, - 368, - }, - dictWord{135, 11, 641}, - dictWord{6, 0, 2010}, - dictWord{8, 0, 979}, - dictWord{8, 0, 985}, - dictWord{10, 0, 951}, - dictWord{138, 0, 1011}, - dictWord{ - 134, - 0, - 1005, - }, - dictWord{19, 0, 121}, - dictWord{5, 10, 291}, - dictWord{5, 10, 318}, - dictWord{7, 10, 765}, - dictWord{9, 10, 389}, - dictWord{140, 10, 548}, - dictWord{ - 5, - 0, - 20, - }, - dictWord{6, 0, 298}, - dictWord{7, 0, 659}, - dictWord{137, 0, 219}, - dictWord{7, 0, 1440}, - dictWord{11, 0, 854}, - dictWord{11, 0, 872}, - dictWord{11, 0, 921}, - dictWord{12, 0, 551}, - dictWord{13, 0, 472}, - dictWord{142, 0, 367}, - dictWord{5, 0, 490}, - dictWord{6, 0, 615}, - dictWord{6, 0, 620}, - dictWord{135, 0, 683}, - dictWord{ - 6, - 0, - 1070, - }, - dictWord{134, 0, 1597}, - dictWord{139, 0, 522}, - dictWord{132, 0, 439}, - dictWord{136, 0, 669}, - dictWord{6, 0, 766}, - dictWord{6, 0, 1143}, - dictWord{ - 6, - 0, - 1245, - }, - dictWord{10, 10, 525}, - dictWord{139, 10, 82}, - dictWord{9, 11, 92}, - dictWord{147, 11, 91}, - dictWord{6, 0, 668}, - dictWord{134, 0, 1218}, - dictWord{ - 6, - 11, - 525, - }, - dictWord{9, 11, 876}, - dictWord{140, 11, 284}, - dictWord{132, 0, 233}, - dictWord{136, 0, 547}, - dictWord{132, 10, 422}, - dictWord{5, 10, 355}, - dictWord{145, 10, 0}, - dictWord{6, 11, 300}, - dictWord{135, 11, 1515}, - dictWord{4, 0, 482}, - dictWord{137, 10, 905}, - dictWord{4, 0, 886}, - dictWord{7, 0, 346}, - dictWord{133, 11, 594}, - dictWord{133, 10, 865}, - dictWord{5, 10, 914}, - dictWord{134, 10, 1625}, - dictWord{135, 0, 334}, - dictWord{5, 0, 795}, - dictWord{ - 6, - 0, - 1741, - }, - dictWord{133, 10, 234}, - dictWord{135, 10, 1383}, - dictWord{6, 11, 1641}, - dictWord{136, 11, 820}, - dictWord{135, 0, 371}, - dictWord{7, 11, 1313}, - dictWord{138, 11, 660}, - dictWord{135, 10, 1312}, - dictWord{135, 0, 622}, - dictWord{7, 0, 625}, - dictWord{135, 0, 1750}, - dictWord{135, 0, 339}, - dictWord{ - 4, - 0, - 203, - }, - dictWord{135, 0, 1936}, - dictWord{15, 0, 29}, - dictWord{16, 0, 38}, - dictWord{15, 11, 29}, - dictWord{144, 11, 38}, - dictWord{5, 0, 338}, - dictWord{ - 135, - 0, - 1256, - }, - dictWord{135, 10, 1493}, - dictWord{10, 0, 130}, - dictWord{6, 10, 421}, - dictWord{7, 10, 61}, - dictWord{7, 10, 1540}, - dictWord{138, 10, 501}, - dictWord{ - 6, - 11, - 389, - }, - dictWord{7, 11, 149}, - dictWord{9, 11, 142}, - dictWord{138, 11, 94}, - dictWord{137, 10, 341}, - dictWord{11, 0, 678}, - dictWord{12, 0, 307}, - dictWord{142, 10, 98}, - dictWord{6, 11, 8}, - dictWord{7, 11, 1881}, - dictWord{136, 11, 91}, - dictWord{135, 0, 2044}, - dictWord{6, 0, 770}, - dictWord{6, 0, 802}, - dictWord{ - 6, - 0, - 812, - }, - dictWord{7, 0, 311}, - dictWord{9, 0, 308}, - dictWord{12, 0, 255}, - dictWord{6, 10, 102}, - dictWord{7, 10, 72}, - dictWord{15, 10, 142}, - dictWord{ - 147, - 10, - 67, - }, - dictWord{151, 10, 30}, - dictWord{135, 10, 823}, - dictWord{135, 0, 1266}, - dictWord{135, 11, 1746}, - dictWord{135, 10, 1870}, - dictWord{4, 0, 400}, - dictWord{5, 0, 267}, - dictWord{135, 0, 232}, - dictWord{7, 11, 24}, - dictWord{11, 11, 542}, - dictWord{139, 11, 852}, - dictWord{135, 11, 1739}, - dictWord{4, 11, 503}, - dictWord{135, 11, 1661}, - dictWord{5, 11, 130}, - dictWord{7, 11, 1314}, - dictWord{9, 11, 610}, - dictWord{10, 11, 718}, - dictWord{11, 11, 601}, - dictWord{ - 11, - 11, - 819, - }, - dictWord{11, 11, 946}, - dictWord{140, 11, 536}, - dictWord{10, 11, 149}, - dictWord{11, 11, 280}, - dictWord{142, 11, 336}, - dictWord{7, 0, 739}, - dictWord{11, 0, 690}, - dictWord{7, 11, 1946}, - dictWord{8, 10, 48}, - dictWord{8, 10, 88}, - dictWord{8, 10, 582}, - dictWord{8, 10, 681}, - dictWord{9, 10, 373}, - dictWord{ - 9, - 10, - 864, - }, - dictWord{11, 10, 157}, - dictWord{11, 10, 843}, - dictWord{148, 10, 27}, - dictWord{134, 0, 990}, - dictWord{4, 10, 88}, - dictWord{5, 10, 137}, - dictWord{ - 5, - 10, - 174, - }, - dictWord{5, 10, 777}, - dictWord{6, 10, 1664}, - dictWord{6, 10, 1725}, - dictWord{7, 10, 77}, - dictWord{7, 10, 426}, - dictWord{7, 10, 1317}, - dictWord{ - 7, - 10, - 1355, - }, - dictWord{8, 10, 126}, - dictWord{8, 10, 563}, - dictWord{9, 10, 523}, - dictWord{9, 10, 750}, - dictWord{10, 10, 310}, - dictWord{10, 10, 836}, - dictWord{ - 11, - 10, - 42, - }, - dictWord{11, 10, 318}, - dictWord{11, 10, 731}, - dictWord{12, 10, 68}, - dictWord{12, 10, 92}, - dictWord{12, 10, 507}, - dictWord{12, 10, 692}, - dictWord{ - 13, - 10, - 81, - }, - dictWord{13, 10, 238}, - dictWord{13, 10, 374}, - dictWord{14, 10, 436}, - dictWord{18, 10, 138}, - dictWord{19, 10, 78}, - dictWord{19, 10, 111}, - dictWord{20, 10, 55}, - dictWord{20, 10, 77}, - dictWord{148, 10, 92}, - dictWord{141, 10, 418}, - dictWord{7, 0, 1831}, - dictWord{132, 10, 938}, - dictWord{6, 0, 776}, - dictWord{134, 0, 915}, - dictWord{138, 10, 351}, - dictWord{5, 11, 348}, - dictWord{6, 11, 522}, - dictWord{6, 10, 1668}, - dictWord{7, 10, 1499}, - dictWord{8, 10, 117}, - dictWord{9, 10, 314}, - dictWord{138, 10, 174}, - dictWord{135, 10, 707}, - dictWord{132, 0, 613}, - dictWord{133, 10, 403}, - dictWord{132, 11, 392}, - dictWord{ - 5, - 11, - 433, - }, - dictWord{9, 11, 633}, - dictWord{139, 11, 629}, - dictWord{133, 0, 763}, - dictWord{132, 0, 878}, - dictWord{132, 0, 977}, - dictWord{132, 0, 100}, - dictWord{6, 0, 463}, - dictWord{4, 10, 44}, - dictWord{5, 10, 311}, - dictWord{7, 10, 639}, - dictWord{7, 10, 762}, - dictWord{7, 10, 1827}, - dictWord{9, 10, 8}, - dictWord{ - 9, - 10, - 462, - }, - dictWord{148, 10, 83}, - dictWord{134, 11, 234}, - dictWord{4, 10, 346}, - dictWord{7, 10, 115}, - dictWord{9, 10, 180}, - dictWord{9, 10, 456}, - dictWord{ - 138, - 10, - 363, - }, - dictWord{5, 0, 362}, - dictWord{5, 0, 443}, - dictWord{6, 0, 318}, - dictWord{7, 0, 1019}, - dictWord{139, 0, 623}, - dictWord{5, 0, 463}, - dictWord{8, 0, 296}, - dictWord{7, 11, 140}, - dictWord{7, 11, 1950}, - dictWord{8, 11, 680}, - dictWord{11, 11, 817}, - dictWord{147, 11, 88}, - dictWord{7, 11, 1222}, - dictWord{ - 138, - 11, - 386, - }, - dictWord{142, 0, 137}, - dictWord{132, 0, 454}, - dictWord{7, 0, 1914}, - dictWord{6, 11, 5}, - dictWord{7, 10, 1051}, - dictWord{9, 10, 545}, - dictWord{ - 11, - 11, - 249, - }, - dictWord{12, 11, 313}, - dictWord{16, 11, 66}, - dictWord{145, 11, 26}, - dictWord{135, 0, 1527}, - dictWord{145, 0, 58}, - dictWord{148, 11, 59}, - dictWord{ - 5, - 0, - 48, - }, - dictWord{5, 0, 404}, - dictWord{6, 0, 557}, - dictWord{7, 0, 458}, - dictWord{8, 0, 597}, - dictWord{10, 0, 455}, - dictWord{10, 0, 606}, - dictWord{11, 0, 49}, - dictWord{ - 11, - 0, - 548, - }, - dictWord{12, 0, 476}, - dictWord{13, 0, 18}, - dictWord{141, 0, 450}, - dictWord{5, 11, 963}, - dictWord{134, 11, 1773}, - dictWord{133, 0, 729}, - dictWord{138, 11, 586}, - dictWord{5, 0, 442}, - dictWord{135, 0, 1984}, - dictWord{134, 0, 449}, - dictWord{144, 0, 40}, - dictWord{4, 0, 853}, - dictWord{7, 11, 180}, - dictWord{8, 11, 509}, - dictWord{136, 11, 792}, - dictWord{6, 10, 185}, - dictWord{7, 10, 1899}, - dictWord{9, 10, 875}, - dictWord{139, 10, 673}, - dictWord{ - 134, - 11, - 524, - }, - dictWord{12, 0, 227}, - dictWord{4, 10, 327}, - dictWord{5, 10, 478}, - dictWord{7, 10, 1332}, - dictWord{136, 10, 753}, - dictWord{6, 0, 1491}, - dictWord{ - 5, - 10, - 1020, - }, - dictWord{133, 10, 1022}, - dictWord{4, 10, 103}, - dictWord{133, 10, 401}, - dictWord{132, 11, 931}, - dictWord{4, 10, 499}, - dictWord{135, 10, 1421}, - dictWord{5, 0, 55}, - dictWord{7, 0, 376}, - dictWord{140, 0, 161}, - dictWord{133, 0, 450}, - dictWord{6, 0, 1174}, - dictWord{134, 0, 1562}, - dictWord{10, 0, 62}, - dictWord{13, 0, 400}, - dictWord{135, 11, 1837}, - dictWord{140, 0, 207}, - dictWord{135, 0, 869}, - dictWord{4, 11, 773}, - dictWord{5, 11, 618}, - dictWord{ - 137, - 11, - 756, - }, - dictWord{132, 10, 96}, - dictWord{4, 0, 213}, - dictWord{7, 0, 223}, - dictWord{8, 0, 80}, - dictWord{135, 10, 968}, - dictWord{4, 11, 90}, - dictWord{5, 11, 337}, - dictWord{5, 11, 545}, - dictWord{7, 11, 754}, - dictWord{9, 11, 186}, - dictWord{10, 11, 72}, - dictWord{10, 11, 782}, - dictWord{11, 11, 513}, - dictWord{11, 11, 577}, - dictWord{11, 11, 610}, - dictWord{11, 11, 889}, - dictWord{11, 11, 961}, - dictWord{12, 11, 354}, - dictWord{12, 11, 362}, - dictWord{12, 11, 461}, - dictWord{ - 12, - 11, - 595, - }, - dictWord{13, 11, 79}, - dictWord{143, 11, 121}, - dictWord{7, 0, 381}, - dictWord{7, 0, 806}, - dictWord{7, 0, 820}, - dictWord{8, 0, 354}, - dictWord{8, 0, 437}, - dictWord{8, 0, 787}, - dictWord{9, 0, 657}, - dictWord{10, 0, 58}, - dictWord{10, 0, 339}, - dictWord{10, 0, 749}, - dictWord{11, 0, 914}, - dictWord{12, 0, 162}, - dictWord{ - 13, - 0, - 75, - }, - dictWord{14, 0, 106}, - dictWord{14, 0, 198}, - dictWord{14, 0, 320}, - dictWord{14, 0, 413}, - dictWord{146, 0, 43}, - dictWord{136, 0, 747}, - dictWord{ - 136, - 0, - 954, - }, - dictWord{134, 0, 1073}, - dictWord{135, 0, 556}, - dictWord{7, 11, 151}, - dictWord{9, 11, 329}, - dictWord{139, 11, 254}, - dictWord{5, 0, 692}, - dictWord{ - 134, - 0, - 1395, - }, - dictWord{6, 10, 563}, - dictWord{137, 10, 224}, - dictWord{134, 0, 191}, - dictWord{132, 0, 804}, - dictWord{9, 11, 187}, - dictWord{10, 11, 36}, - dictWord{17, 11, 44}, - dictWord{146, 11, 64}, - dictWord{7, 11, 165}, - dictWord{7, 11, 919}, - dictWord{136, 11, 517}, - dictWord{4, 11, 506}, - dictWord{5, 11, 295}, - dictWord{7, 11, 1680}, - dictWord{15, 11, 14}, - dictWord{144, 11, 5}, - dictWord{4, 0, 706}, - dictWord{6, 0, 162}, - dictWord{7, 0, 1960}, - dictWord{136, 0, 831}, - dictWord{ - 135, - 11, - 1376, - }, - dictWord{7, 11, 987}, - dictWord{9, 11, 688}, - dictWord{10, 11, 522}, - dictWord{11, 11, 788}, - dictWord{140, 11, 566}, - dictWord{150, 0, 35}, - dictWord{138, 0, 426}, - dictWord{135, 0, 1235}, - dictWord{135, 11, 1741}, - dictWord{7, 11, 389}, - dictWord{7, 11, 700}, - dictWord{7, 11, 940}, - dictWord{ - 8, - 11, - 514, - }, - dictWord{9, 11, 116}, - dictWord{9, 11, 535}, - dictWord{10, 11, 118}, - dictWord{11, 11, 107}, - dictWord{11, 11, 148}, - dictWord{11, 11, 922}, - dictWord{ - 12, - 11, - 254, - }, - dictWord{12, 11, 421}, - dictWord{142, 11, 238}, - dictWord{134, 0, 1234}, - dictWord{132, 11, 743}, - dictWord{4, 10, 910}, - dictWord{5, 10, 832}, - dictWord{135, 11, 1335}, - dictWord{141, 0, 96}, - dictWord{135, 11, 185}, - dictWord{146, 0, 149}, - dictWord{4, 0, 204}, - dictWord{137, 0, 902}, - dictWord{ - 4, - 11, - 784, - }, - dictWord{133, 11, 745}, - dictWord{136, 0, 833}, - dictWord{136, 0, 949}, - dictWord{7, 0, 366}, - dictWord{9, 0, 287}, - dictWord{12, 0, 199}, - dictWord{ - 12, - 0, - 556, - }, - dictWord{12, 0, 577}, - dictWord{5, 11, 81}, - dictWord{7, 11, 146}, - dictWord{7, 11, 1342}, - dictWord{7, 11, 1446}, - dictWord{8, 11, 53}, - dictWord{8, 11, 561}, - dictWord{8, 11, 694}, - dictWord{8, 11, 754}, - dictWord{9, 11, 97}, - dictWord{9, 11, 115}, - dictWord{9, 11, 894}, - dictWord{10, 11, 462}, - dictWord{10, 11, 813}, - dictWord{11, 11, 230}, - dictWord{11, 11, 657}, - dictWord{11, 11, 699}, - dictWord{11, 11, 748}, - dictWord{12, 11, 119}, - dictWord{12, 11, 200}, - dictWord{ - 12, - 11, - 283, - }, - dictWord{14, 11, 273}, - dictWord{145, 11, 15}, - dictWord{5, 11, 408}, - dictWord{137, 11, 747}, - dictWord{9, 11, 498}, - dictWord{140, 11, 181}, - dictWord{ - 6, - 0, - 2020, - }, - dictWord{136, 0, 992}, - dictWord{5, 0, 356}, - dictWord{135, 0, 224}, - dictWord{134, 0, 784}, - dictWord{7, 0, 630}, - dictWord{9, 0, 567}, - dictWord{ - 11, - 0, - 150, - }, - dictWord{11, 0, 444}, - dictWord{13, 0, 119}, - dictWord{8, 10, 528}, - dictWord{137, 10, 348}, - dictWord{134, 0, 539}, - dictWord{4, 10, 20}, - dictWord{ - 133, - 10, - 616, - }, - dictWord{142, 0, 27}, - dictWord{7, 11, 30}, - dictWord{8, 11, 86}, - dictWord{8, 11, 315}, - dictWord{8, 11, 700}, - dictWord{9, 11, 576}, - dictWord{9, 11, 858}, - dictWord{11, 11, 310}, - dictWord{11, 11, 888}, - dictWord{11, 11, 904}, - dictWord{12, 11, 361}, - dictWord{141, 11, 248}, - dictWord{138, 11, 839}, - dictWord{ - 134, - 0, - 755, - }, - dictWord{134, 0, 1063}, - dictWord{7, 10, 1091}, - dictWord{135, 10, 1765}, - dictWord{134, 11, 428}, - dictWord{7, 11, 524}, - dictWord{8, 11, 169}, - dictWord{8, 11, 234}, - dictWord{9, 11, 480}, - dictWord{138, 11, 646}, - dictWord{139, 0, 814}, - dictWord{7, 11, 1462}, - dictWord{139, 11, 659}, - dictWord{ - 4, - 10, - 26, - }, - dictWord{5, 10, 429}, - dictWord{6, 10, 245}, - dictWord{7, 10, 704}, - dictWord{7, 10, 1379}, - dictWord{135, 10, 1474}, - dictWord{7, 11, 1205}, - dictWord{ - 138, - 11, - 637, - }, - dictWord{139, 11, 803}, - dictWord{132, 10, 621}, - dictWord{136, 0, 987}, - dictWord{4, 11, 266}, - dictWord{8, 11, 4}, - dictWord{9, 11, 39}, - dictWord{ - 10, - 11, - 166, - }, - dictWord{11, 11, 918}, - dictWord{12, 11, 635}, - dictWord{20, 11, 10}, - dictWord{22, 11, 27}, - dictWord{150, 11, 43}, - dictWord{4, 0, 235}, - dictWord{ - 135, - 0, - 255, - }, - dictWord{4, 0, 194}, - dictWord{5, 0, 584}, - dictWord{6, 0, 384}, - dictWord{7, 0, 583}, - dictWord{10, 0, 761}, - dictWord{11, 0, 760}, - dictWord{139, 0, 851}, - dictWord{133, 10, 542}, - dictWord{134, 0, 1086}, - dictWord{133, 10, 868}, - dictWord{8, 0, 1016}, - dictWord{136, 0, 1018}, - dictWord{7, 0, 1396}, - dictWord{ - 7, - 11, - 1396, - }, - dictWord{136, 10, 433}, - dictWord{135, 10, 1495}, - dictWord{138, 10, 215}, - dictWord{141, 10, 124}, - dictWord{7, 11, 157}, - dictWord{ - 8, - 11, - 279, - }, - dictWord{9, 11, 759}, - dictWord{16, 11, 31}, - dictWord{16, 11, 39}, - dictWord{16, 11, 75}, - dictWord{18, 11, 24}, - dictWord{20, 11, 42}, - dictWord{152, 11, 1}, - dictWord{5, 0, 562}, - dictWord{134, 11, 604}, - dictWord{134, 0, 913}, - dictWord{5, 0, 191}, - dictWord{137, 0, 271}, - dictWord{4, 0, 470}, - dictWord{6, 0, 153}, - dictWord{7, 0, 1503}, - dictWord{7, 0, 1923}, - dictWord{10, 0, 701}, - dictWord{11, 0, 132}, - dictWord{11, 0, 227}, - dictWord{11, 0, 320}, - dictWord{11, 0, 436}, - dictWord{ - 11, - 0, - 525, - }, - dictWord{11, 0, 855}, - dictWord{11, 0, 873}, - dictWord{12, 0, 41}, - dictWord{12, 0, 286}, - dictWord{13, 0, 103}, - dictWord{13, 0, 284}, - dictWord{ - 14, - 0, - 255, - }, - dictWord{14, 0, 262}, - dictWord{15, 0, 117}, - dictWord{143, 0, 127}, - dictWord{7, 0, 475}, - dictWord{12, 0, 45}, - dictWord{147, 10, 112}, - dictWord{ - 132, - 11, - 567, - }, - dictWord{137, 11, 859}, - dictWord{6, 0, 713}, - dictWord{6, 0, 969}, - dictWord{6, 0, 1290}, - dictWord{134, 0, 1551}, - dictWord{133, 0, 327}, - dictWord{ - 6, - 0, - 552, - }, - dictWord{6, 0, 1292}, - dictWord{7, 0, 1754}, - dictWord{137, 0, 604}, - dictWord{4, 0, 223}, - dictWord{6, 0, 359}, - dictWord{11, 0, 3}, - dictWord{13, 0, 108}, - dictWord{14, 0, 89}, - dictWord{16, 0, 22}, - dictWord{5, 11, 762}, - dictWord{7, 11, 1880}, - dictWord{9, 11, 680}, - dictWord{139, 11, 798}, - dictWord{5, 0, 80}, - dictWord{ - 6, - 0, - 405, - }, - dictWord{7, 0, 403}, - dictWord{7, 0, 1502}, - dictWord{8, 0, 456}, - dictWord{9, 0, 487}, - dictWord{9, 0, 853}, - dictWord{9, 0, 889}, - dictWord{10, 0, 309}, - dictWord{ - 11, - 0, - 721, - }, - dictWord{11, 0, 994}, - dictWord{12, 0, 430}, - dictWord{141, 0, 165}, - dictWord{133, 11, 298}, - dictWord{132, 10, 647}, - dictWord{134, 0, 2016}, - dictWord{18, 10, 10}, - dictWord{146, 11, 10}, - dictWord{4, 0, 453}, - dictWord{5, 0, 887}, - dictWord{6, 0, 535}, - dictWord{8, 0, 6}, - dictWord{8, 0, 543}, - dictWord{ - 136, - 0, - 826, - }, - dictWord{136, 0, 975}, - dictWord{10, 0, 961}, - dictWord{138, 0, 962}, - dictWord{138, 10, 220}, - dictWord{6, 0, 1891}, - dictWord{6, 0, 1893}, - dictWord{ - 9, - 0, - 916, - }, - dictWord{9, 0, 965}, - dictWord{9, 0, 972}, - dictWord{12, 0, 801}, - dictWord{12, 0, 859}, - dictWord{12, 0, 883}, - dictWord{15, 0, 226}, - dictWord{149, 0, 51}, - dictWord{132, 10, 109}, - dictWord{135, 11, 267}, - dictWord{7, 11, 92}, - dictWord{7, 11, 182}, - dictWord{8, 11, 453}, - dictWord{9, 11, 204}, - dictWord{11, 11, 950}, - dictWord{12, 11, 94}, - dictWord{12, 11, 644}, - dictWord{16, 11, 20}, - dictWord{16, 11, 70}, - dictWord{16, 11, 90}, - dictWord{147, 11, 55}, - dictWord{ - 134, - 10, - 1746, - }, - dictWord{6, 11, 71}, - dictWord{7, 11, 845}, - dictWord{7, 11, 1308}, - dictWord{8, 11, 160}, - dictWord{137, 11, 318}, - dictWord{5, 0, 101}, - dictWord{6, 0, 88}, - dictWord{7, 0, 263}, - dictWord{7, 0, 628}, - dictWord{7, 0, 1677}, - dictWord{8, 0, 349}, - dictWord{9, 0, 100}, - dictWord{10, 0, 677}, - dictWord{14, 0, 169}, - dictWord{ - 14, - 0, - 302, - }, - dictWord{14, 0, 313}, - dictWord{15, 0, 48}, - dictWord{15, 0, 84}, - dictWord{7, 11, 237}, - dictWord{8, 11, 664}, - dictWord{9, 11, 42}, - dictWord{9, 11, 266}, - dictWord{9, 11, 380}, - dictWord{9, 11, 645}, - dictWord{10, 11, 177}, - dictWord{138, 11, 276}, - dictWord{138, 11, 69}, - dictWord{4, 0, 310}, - dictWord{7, 0, 708}, - dictWord{7, 0, 996}, - dictWord{9, 0, 795}, - dictWord{10, 0, 390}, - dictWord{10, 0, 733}, - dictWord{11, 0, 451}, - dictWord{12, 0, 249}, - dictWord{14, 0, 115}, - dictWord{ - 14, - 0, - 286, - }, - dictWord{143, 0, 100}, - dictWord{5, 0, 587}, - dictWord{4, 10, 40}, - dictWord{10, 10, 67}, - dictWord{11, 10, 117}, - dictWord{11, 10, 768}, - dictWord{ - 139, - 10, - 935, - }, - dictWord{6, 0, 1942}, - dictWord{7, 0, 512}, - dictWord{136, 0, 983}, - dictWord{7, 10, 992}, - dictWord{8, 10, 301}, - dictWord{9, 10, 722}, - dictWord{12, 10, 63}, - dictWord{13, 10, 29}, - dictWord{14, 10, 161}, - dictWord{143, 10, 18}, - dictWord{136, 11, 76}, - dictWord{139, 10, 923}, - dictWord{134, 0, 645}, - dictWord{ - 134, - 0, - 851, - }, - dictWord{4, 0, 498}, - dictWord{132, 11, 293}, - dictWord{7, 0, 217}, - dictWord{8, 0, 140}, - dictWord{10, 0, 610}, - dictWord{14, 11, 352}, - dictWord{ - 17, - 11, - 53, - }, - dictWord{18, 11, 146}, - dictWord{18, 11, 152}, - dictWord{19, 11, 11}, - dictWord{150, 11, 54}, - dictWord{134, 0, 1448}, - dictWord{138, 11, 841}, - dictWord{133, 0, 905}, - dictWord{4, 11, 605}, - dictWord{7, 11, 518}, - dictWord{7, 11, 1282}, - dictWord{7, 11, 1918}, - dictWord{10, 11, 180}, - dictWord{139, 11, 218}, - dictWord{139, 11, 917}, - dictWord{135, 10, 825}, - dictWord{140, 10, 328}, - dictWord{4, 0, 456}, - dictWord{7, 0, 105}, - dictWord{7, 0, 358}, - dictWord{7, 0, 1637}, - dictWord{8, 0, 643}, - dictWord{139, 0, 483}, - dictWord{134, 0, 792}, - dictWord{6, 11, 96}, - dictWord{135, 11, 1426}, - dictWord{137, 11, 691}, - dictWord{ - 4, - 11, - 651, - }, - dictWord{133, 11, 289}, - dictWord{7, 11, 688}, - dictWord{8, 11, 35}, - dictWord{9, 11, 511}, - dictWord{10, 11, 767}, - dictWord{147, 11, 118}, - dictWord{ - 150, - 0, - 56, - }, - dictWord{5, 0, 243}, - dictWord{5, 0, 535}, - dictWord{6, 10, 204}, - dictWord{10, 10, 320}, - dictWord{10, 10, 583}, - dictWord{13, 10, 502}, - dictWord{ - 14, - 10, - 72, - }, - dictWord{14, 10, 274}, - dictWord{14, 10, 312}, - dictWord{14, 10, 344}, - dictWord{15, 10, 159}, - dictWord{16, 10, 62}, - dictWord{16, 10, 69}, - dictWord{ - 17, - 10, - 30, - }, - dictWord{18, 10, 42}, - dictWord{18, 10, 53}, - dictWord{18, 10, 84}, - dictWord{18, 10, 140}, - dictWord{19, 10, 68}, - dictWord{19, 10, 85}, - dictWord{20, 10, 5}, - dictWord{20, 10, 45}, - dictWord{20, 10, 101}, - dictWord{22, 10, 7}, - dictWord{150, 10, 20}, - dictWord{4, 10, 558}, - dictWord{6, 10, 390}, - dictWord{7, 10, 162}, - dictWord{7, 10, 689}, - dictWord{9, 10, 360}, - dictWord{138, 10, 653}, - dictWord{146, 11, 23}, - dictWord{135, 0, 1748}, - dictWord{5, 10, 856}, - dictWord{ - 6, - 10, - 1672, - }, - dictWord{6, 10, 1757}, - dictWord{134, 10, 1781}, - dictWord{5, 0, 539}, - dictWord{5, 0, 754}, - dictWord{6, 0, 876}, - dictWord{132, 11, 704}, - dictWord{ - 135, - 11, - 1078, - }, - dictWord{5, 10, 92}, - dictWord{10, 10, 736}, - dictWord{140, 10, 102}, - dictWord{17, 0, 91}, - dictWord{5, 10, 590}, - dictWord{137, 10, 213}, - dictWord{134, 0, 1565}, - dictWord{6, 0, 91}, - dictWord{135, 0, 435}, - dictWord{4, 0, 939}, - dictWord{140, 0, 792}, - dictWord{134, 0, 1399}, - dictWord{4, 0, 16}, - dictWord{ - 5, - 0, - 316, - }, - dictWord{5, 0, 842}, - dictWord{6, 0, 370}, - dictWord{6, 0, 1778}, - dictWord{8, 0, 166}, - dictWord{11, 0, 812}, - dictWord{12, 0, 206}, - dictWord{12, 0, 351}, - dictWord{14, 0, 418}, - dictWord{16, 0, 15}, - dictWord{16, 0, 34}, - dictWord{18, 0, 3}, - dictWord{19, 0, 3}, - dictWord{19, 0, 7}, - dictWord{20, 0, 4}, - dictWord{21, 0, 21}, - dictWord{ - 4, - 11, - 720, - }, - dictWord{133, 11, 306}, - dictWord{144, 0, 95}, - dictWord{133, 11, 431}, - dictWord{132, 11, 234}, - dictWord{135, 0, 551}, - dictWord{4, 0, 999}, - dictWord{6, 0, 1966}, - dictWord{134, 0, 2042}, - dictWord{7, 0, 619}, - dictWord{10, 0, 547}, - dictWord{11, 0, 122}, - dictWord{12, 0, 601}, - dictWord{15, 0, 7}, - dictWord{148, 0, 20}, - dictWord{5, 11, 464}, - dictWord{6, 11, 236}, - dictWord{7, 11, 276}, - dictWord{7, 11, 696}, - dictWord{7, 11, 914}, - dictWord{7, 11, 1108}, - dictWord{ - 7, - 11, - 1448, - }, - dictWord{9, 11, 15}, - dictWord{9, 11, 564}, - dictWord{10, 11, 14}, - dictWord{12, 11, 565}, - dictWord{13, 11, 449}, - dictWord{14, 11, 53}, - dictWord{ - 15, - 11, - 13, - }, - dictWord{16, 11, 64}, - dictWord{145, 11, 41}, - dictWord{6, 0, 884}, - dictWord{6, 0, 1019}, - dictWord{134, 0, 1150}, - dictWord{6, 11, 1767}, - dictWord{ - 12, - 11, - 194, - }, - dictWord{145, 11, 107}, - dictWord{136, 10, 503}, - dictWord{133, 11, 840}, - dictWord{7, 0, 671}, - dictWord{134, 10, 466}, - dictWord{132, 0, 888}, - dictWord{4, 0, 149}, - dictWord{138, 0, 368}, - dictWord{4, 0, 154}, - dictWord{7, 0, 1134}, - dictWord{136, 0, 105}, - dictWord{135, 0, 983}, - dictWord{9, 11, 642}, - dictWord{11, 11, 236}, - dictWord{142, 11, 193}, - dictWord{4, 0, 31}, - dictWord{6, 0, 429}, - dictWord{7, 0, 962}, - dictWord{9, 0, 458}, - dictWord{139, 0, 691}, - dictWord{ - 6, - 0, - 643, - }, - dictWord{134, 0, 1102}, - dictWord{132, 0, 312}, - dictWord{4, 11, 68}, - dictWord{5, 11, 634}, - dictWord{6, 11, 386}, - dictWord{7, 11, 794}, - dictWord{ - 8, - 11, - 273, - }, - dictWord{9, 11, 563}, - dictWord{10, 11, 105}, - dictWord{10, 11, 171}, - dictWord{11, 11, 94}, - dictWord{139, 11, 354}, - dictWord{133, 0, 740}, - dictWord{ - 135, - 0, - 1642, - }, - dictWord{4, 11, 95}, - dictWord{7, 11, 416}, - dictWord{8, 11, 211}, - dictWord{139, 11, 830}, - dictWord{132, 0, 236}, - dictWord{138, 10, 241}, - dictWord{7, 11, 731}, - dictWord{13, 11, 20}, - dictWord{143, 11, 11}, - dictWord{5, 0, 836}, - dictWord{5, 0, 857}, - dictWord{6, 0, 1680}, - dictWord{135, 0, 59}, - dictWord{ - 10, - 0, - 68, - }, - dictWord{11, 0, 494}, - dictWord{152, 11, 6}, - dictWord{4, 0, 81}, - dictWord{139, 0, 867}, - dictWord{135, 0, 795}, - dictWord{133, 11, 689}, - dictWord{ - 4, - 0, - 1001, - }, - dictWord{5, 0, 282}, - dictWord{6, 0, 1932}, - dictWord{6, 0, 1977}, - dictWord{6, 0, 1987}, - dictWord{6, 0, 1992}, - dictWord{8, 0, 650}, - dictWord{8, 0, 919}, - dictWord{8, 0, 920}, - dictWord{8, 0, 923}, - dictWord{8, 0, 926}, - dictWord{8, 0, 927}, - dictWord{8, 0, 931}, - dictWord{8, 0, 939}, - dictWord{8, 0, 947}, - dictWord{8, 0, 956}, - dictWord{8, 0, 997}, - dictWord{9, 0, 907}, - dictWord{10, 0, 950}, - dictWord{10, 0, 953}, - dictWord{10, 0, 954}, - dictWord{10, 0, 956}, - dictWord{10, 0, 958}, - dictWord{ - 10, - 0, - 959, - }, - dictWord{10, 0, 964}, - dictWord{10, 0, 970}, - dictWord{10, 0, 972}, - dictWord{10, 0, 973}, - dictWord{10, 0, 975}, - dictWord{10, 0, 976}, - dictWord{ - 10, - 0, - 980, - }, - dictWord{10, 0, 981}, - dictWord{10, 0, 984}, - dictWord{10, 0, 988}, - dictWord{10, 0, 990}, - dictWord{10, 0, 995}, - dictWord{10, 0, 999}, - dictWord{ - 10, - 0, - 1002, - }, - dictWord{10, 0, 1003}, - dictWord{10, 0, 1005}, - dictWord{10, 0, 1006}, - dictWord{10, 0, 1008}, - dictWord{10, 0, 1009}, - dictWord{10, 0, 1012}, - dictWord{10, 0, 1014}, - dictWord{10, 0, 1015}, - dictWord{10, 0, 1019}, - dictWord{10, 0, 1020}, - dictWord{10, 0, 1022}, - dictWord{12, 0, 959}, - dictWord{12, 0, 961}, - dictWord{12, 0, 962}, - dictWord{12, 0, 963}, - dictWord{12, 0, 964}, - dictWord{12, 0, 965}, - dictWord{12, 0, 967}, - dictWord{12, 0, 968}, - dictWord{12, 0, 969}, - dictWord{12, 0, 970}, - dictWord{12, 0, 971}, - dictWord{12, 0, 972}, - dictWord{12, 0, 973}, - dictWord{12, 0, 974}, - dictWord{12, 0, 975}, - dictWord{12, 0, 976}, - dictWord{ - 12, - 0, - 977, - }, - dictWord{12, 0, 979}, - dictWord{12, 0, 981}, - dictWord{12, 0, 982}, - dictWord{12, 0, 983}, - dictWord{12, 0, 984}, - dictWord{12, 0, 985}, - dictWord{ - 12, - 0, - 986, - }, - dictWord{12, 0, 987}, - dictWord{12, 0, 989}, - dictWord{12, 0, 990}, - dictWord{12, 0, 992}, - dictWord{12, 0, 993}, - dictWord{12, 0, 995}, - dictWord{12, 0, 998}, - dictWord{12, 0, 999}, - dictWord{12, 0, 1000}, - dictWord{12, 0, 1001}, - dictWord{12, 0, 1002}, - dictWord{12, 0, 1004}, - dictWord{12, 0, 1005}, - dictWord{ - 12, - 0, - 1006, - }, - dictWord{12, 0, 1007}, - dictWord{12, 0, 1008}, - dictWord{12, 0, 1009}, - dictWord{12, 0, 1010}, - dictWord{12, 0, 1011}, - dictWord{12, 0, 1012}, - dictWord{12, 0, 1014}, - dictWord{12, 0, 1015}, - dictWord{12, 0, 1016}, - dictWord{12, 0, 1017}, - dictWord{12, 0, 1018}, - dictWord{12, 0, 1019}, - dictWord{ - 12, - 0, - 1022, - }, - dictWord{12, 0, 1023}, - dictWord{14, 0, 475}, - dictWord{14, 0, 477}, - dictWord{14, 0, 478}, - dictWord{14, 0, 479}, - dictWord{14, 0, 480}, - dictWord{ - 14, - 0, - 482, - }, - dictWord{14, 0, 483}, - dictWord{14, 0, 484}, - dictWord{14, 0, 485}, - dictWord{14, 0, 486}, - dictWord{14, 0, 487}, - dictWord{14, 0, 488}, - dictWord{14, 0, 489}, - dictWord{14, 0, 490}, - dictWord{14, 0, 491}, - dictWord{14, 0, 492}, - dictWord{14, 0, 493}, - dictWord{14, 0, 494}, - dictWord{14, 0, 495}, - dictWord{14, 0, 496}, - dictWord{14, 0, 497}, - dictWord{14, 0, 498}, - dictWord{14, 0, 499}, - dictWord{14, 0, 500}, - dictWord{14, 0, 501}, - dictWord{14, 0, 502}, - dictWord{14, 0, 503}, - dictWord{ - 14, - 0, - 504, - }, - dictWord{14, 0, 506}, - dictWord{14, 0, 507}, - dictWord{14, 0, 508}, - dictWord{14, 0, 509}, - dictWord{14, 0, 510}, - dictWord{14, 0, 511}, - dictWord{ - 16, - 0, - 113, - }, - dictWord{16, 0, 114}, - dictWord{16, 0, 115}, - dictWord{16, 0, 117}, - dictWord{16, 0, 118}, - dictWord{16, 0, 119}, - dictWord{16, 0, 121}, - dictWord{16, 0, 122}, - dictWord{16, 0, 123}, - dictWord{16, 0, 124}, - dictWord{16, 0, 125}, - dictWord{16, 0, 126}, - dictWord{16, 0, 127}, - dictWord{18, 0, 242}, - dictWord{18, 0, 243}, - dictWord{18, 0, 244}, - dictWord{18, 0, 245}, - dictWord{18, 0, 248}, - dictWord{18, 0, 249}, - dictWord{18, 0, 250}, - dictWord{18, 0, 251}, - dictWord{18, 0, 252}, - dictWord{ - 18, - 0, - 253, - }, - dictWord{18, 0, 254}, - dictWord{18, 0, 255}, - dictWord{20, 0, 125}, - dictWord{20, 0, 126}, - dictWord{148, 0, 127}, - dictWord{7, 11, 1717}, - dictWord{ - 7, - 11, - 1769, - }, - dictWord{138, 11, 546}, - dictWord{7, 11, 1127}, - dictWord{7, 11, 1572}, - dictWord{10, 11, 297}, - dictWord{10, 11, 422}, - dictWord{11, 11, 764}, - dictWord{11, 11, 810}, - dictWord{12, 11, 264}, - dictWord{13, 11, 102}, - dictWord{13, 11, 300}, - dictWord{13, 11, 484}, - dictWord{14, 11, 147}, - dictWord{ - 14, - 11, - 229, - }, - dictWord{17, 11, 71}, - dictWord{18, 11, 118}, - dictWord{147, 11, 120}, - dictWord{6, 0, 1148}, - dictWord{134, 0, 1586}, - dictWord{132, 0, 775}, - dictWord{135, 10, 954}, - dictWord{133, 11, 864}, - dictWord{133, 11, 928}, - dictWord{138, 11, 189}, - dictWord{135, 10, 1958}, - dictWord{6, 10, 549}, - dictWord{ - 8, - 10, - 34, - }, - dictWord{8, 10, 283}, - dictWord{9, 10, 165}, - dictWord{138, 10, 475}, - dictWord{5, 10, 652}, - dictWord{5, 10, 701}, - dictWord{135, 10, 449}, - dictWord{135, 11, 695}, - dictWord{4, 10, 655}, - dictWord{7, 10, 850}, - dictWord{17, 10, 75}, - dictWord{146, 10, 137}, - dictWord{140, 11, 682}, - dictWord{ - 133, - 11, - 523, - }, - dictWord{8, 0, 970}, - dictWord{136, 10, 670}, - dictWord{136, 11, 555}, - dictWord{7, 11, 76}, - dictWord{8, 11, 44}, - dictWord{9, 11, 884}, - dictWord{ - 10, - 11, - 580, - }, - dictWord{11, 11, 399}, - dictWord{11, 11, 894}, - dictWord{15, 11, 122}, - dictWord{18, 11, 144}, - dictWord{147, 11, 61}, - dictWord{6, 10, 159}, - dictWord{ - 6, - 10, - 364, - }, - dictWord{7, 10, 516}, - dictWord{7, 10, 1439}, - dictWord{137, 10, 518}, - dictWord{4, 0, 71}, - dictWord{5, 0, 376}, - dictWord{7, 0, 119}, - dictWord{ - 138, - 0, - 665, - }, - dictWord{141, 10, 151}, - dictWord{11, 0, 827}, - dictWord{14, 0, 34}, - dictWord{143, 0, 148}, - dictWord{133, 11, 518}, - dictWord{4, 0, 479}, - dictWord{ - 135, - 11, - 1787, - }, - dictWord{135, 11, 1852}, - dictWord{135, 10, 993}, - dictWord{7, 0, 607}, - dictWord{136, 0, 99}, - dictWord{134, 0, 1960}, - dictWord{132, 0, 793}, - dictWord{4, 0, 41}, - dictWord{5, 0, 74}, - dictWord{7, 0, 1627}, - dictWord{11, 0, 871}, - dictWord{140, 0, 619}, - dictWord{7, 0, 94}, - dictWord{11, 0, 329}, - dictWord{ - 11, - 0, - 965, - }, - dictWord{12, 0, 241}, - dictWord{14, 0, 354}, - dictWord{15, 0, 22}, - dictWord{148, 0, 63}, - dictWord{7, 10, 501}, - dictWord{9, 10, 111}, - dictWord{10, 10, 141}, - dictWord{11, 10, 332}, - dictWord{13, 10, 43}, - dictWord{13, 10, 429}, - dictWord{14, 10, 130}, - dictWord{14, 10, 415}, - dictWord{145, 10, 102}, - dictWord{ - 9, - 0, - 209, - }, - dictWord{137, 0, 300}, - dictWord{134, 0, 1497}, - dictWord{138, 11, 255}, - dictWord{4, 11, 934}, - dictWord{5, 11, 138}, - dictWord{136, 11, 610}, - dictWord{133, 0, 98}, - dictWord{6, 0, 1316}, - dictWord{10, 11, 804}, - dictWord{138, 11, 832}, - dictWord{8, 11, 96}, - dictWord{9, 11, 36}, - dictWord{10, 11, 607}, - dictWord{11, 11, 423}, - dictWord{11, 11, 442}, - dictWord{12, 11, 309}, - dictWord{14, 11, 199}, - dictWord{15, 11, 90}, - dictWord{145, 11, 110}, - dictWord{ - 132, - 0, - 463, - }, - dictWord{5, 10, 149}, - dictWord{136, 10, 233}, - dictWord{133, 10, 935}, - dictWord{4, 11, 652}, - dictWord{8, 11, 320}, - dictWord{9, 11, 13}, - dictWord{ - 9, - 11, - 398, - }, - dictWord{9, 11, 727}, - dictWord{10, 11, 75}, - dictWord{10, 11, 184}, - dictWord{10, 11, 230}, - dictWord{10, 11, 564}, - dictWord{10, 11, 569}, - dictWord{ - 11, - 11, - 973, - }, - dictWord{12, 11, 70}, - dictWord{12, 11, 189}, - dictWord{13, 11, 57}, - dictWord{13, 11, 257}, - dictWord{22, 11, 6}, - dictWord{150, 11, 16}, - dictWord{ - 142, - 0, - 291, - }, - dictWord{12, 10, 582}, - dictWord{146, 10, 131}, - dictWord{136, 10, 801}, - dictWord{133, 0, 984}, - dictWord{145, 11, 116}, - dictWord{4, 11, 692}, - dictWord{133, 11, 321}, - dictWord{4, 0, 182}, - dictWord{6, 0, 205}, - dictWord{135, 0, 220}, - dictWord{4, 0, 42}, - dictWord{9, 0, 205}, - dictWord{9, 0, 786}, - dictWord{ - 138, - 0, - 659, - }, - dictWord{6, 0, 801}, - dictWord{11, 11, 130}, - dictWord{140, 11, 609}, - dictWord{132, 0, 635}, - dictWord{5, 11, 345}, - dictWord{135, 11, 1016}, - dictWord{139, 0, 533}, - dictWord{132, 0, 371}, - dictWord{4, 0, 272}, - dictWord{135, 0, 836}, - dictWord{6, 0, 1282}, - dictWord{135, 11, 1100}, - dictWord{5, 0, 825}, - dictWord{134, 0, 1640}, - dictWord{135, 11, 1325}, - dictWord{133, 11, 673}, - dictWord{4, 11, 287}, - dictWord{133, 11, 1018}, - dictWord{135, 0, 357}, - dictWord{ - 6, - 0, - 467, - }, - dictWord{137, 0, 879}, - dictWord{7, 0, 317}, - dictWord{135, 0, 569}, - dictWord{6, 0, 924}, - dictWord{134, 0, 1588}, - dictWord{5, 11, 34}, - dictWord{ - 5, - 10, - 406, - }, - dictWord{10, 11, 724}, - dictWord{12, 11, 444}, - dictWord{13, 11, 354}, - dictWord{18, 11, 32}, - dictWord{23, 11, 24}, - dictWord{23, 11, 31}, - dictWord{ - 152, - 11, - 5, - }, - dictWord{6, 0, 1795}, - dictWord{6, 0, 1835}, - dictWord{6, 0, 1836}, - dictWord{6, 0, 1856}, - dictWord{8, 0, 844}, - dictWord{8, 0, 849}, - dictWord{8, 0, 854}, - dictWord{8, 0, 870}, - dictWord{8, 0, 887}, - dictWord{10, 0, 852}, - dictWord{138, 0, 942}, - dictWord{6, 10, 69}, - dictWord{135, 10, 117}, - dictWord{137, 0, 307}, - dictWord{ - 4, - 0, - 944, - }, - dictWord{6, 0, 1799}, - dictWord{6, 0, 1825}, - dictWord{10, 0, 848}, - dictWord{10, 0, 875}, - dictWord{10, 0, 895}, - dictWord{10, 0, 899}, - dictWord{ - 10, - 0, - 902, - }, - dictWord{140, 0, 773}, - dictWord{11, 0, 43}, - dictWord{13, 0, 72}, - dictWord{141, 0, 142}, - dictWord{135, 10, 1830}, - dictWord{134, 11, 382}, - dictWord{ - 4, - 10, - 432, - }, - dictWord{135, 10, 824}, - dictWord{132, 11, 329}, - dictWord{7, 0, 1820}, - dictWord{139, 11, 124}, - dictWord{133, 10, 826}, - dictWord{ - 133, - 0, - 525, - }, - dictWord{132, 11, 906}, - dictWord{7, 11, 1940}, - dictWord{136, 11, 366}, - dictWord{138, 11, 10}, - dictWord{4, 11, 123}, - dictWord{4, 11, 649}, - dictWord{ - 5, - 11, - 605, - }, - dictWord{7, 11, 1509}, - dictWord{136, 11, 36}, - dictWord{6, 0, 110}, - dictWord{135, 0, 1681}, - dictWord{133, 0, 493}, - dictWord{133, 11, 767}, - dictWord{4, 0, 174}, - dictWord{135, 0, 911}, - dictWord{138, 11, 786}, - dictWord{8, 0, 417}, - dictWord{137, 0, 782}, - dictWord{133, 10, 1000}, - dictWord{7, 0, 733}, - dictWord{137, 0, 583}, - dictWord{4, 10, 297}, - dictWord{6, 10, 529}, - dictWord{7, 10, 152}, - dictWord{7, 10, 713}, - dictWord{7, 10, 1845}, - dictWord{8, 10, 710}, - dictWord{8, 10, 717}, - dictWord{12, 10, 639}, - dictWord{140, 10, 685}, - dictWord{4, 0, 32}, - dictWord{5, 0, 215}, - dictWord{6, 0, 269}, - dictWord{7, 0, 1782}, - dictWord{ - 7, - 0, - 1892, - }, - dictWord{10, 0, 16}, - dictWord{11, 0, 822}, - dictWord{11, 0, 954}, - dictWord{141, 0, 481}, - dictWord{4, 11, 273}, - dictWord{5, 11, 658}, - dictWord{ - 133, - 11, - 995, - }, - dictWord{136, 0, 477}, - dictWord{134, 11, 72}, - dictWord{135, 11, 1345}, - dictWord{5, 0, 308}, - dictWord{7, 0, 1088}, - dictWord{4, 10, 520}, - dictWord{ - 135, - 10, - 575, - }, - dictWord{133, 11, 589}, - dictWord{5, 0, 126}, - dictWord{8, 0, 297}, - dictWord{9, 0, 366}, - dictWord{140, 0, 374}, - dictWord{7, 0, 1551}, - dictWord{ - 139, - 0, - 361, - }, - dictWord{5, 11, 117}, - dictWord{6, 11, 514}, - dictWord{6, 11, 541}, - dictWord{7, 11, 1164}, - dictWord{7, 11, 1436}, - dictWord{8, 11, 220}, - dictWord{ - 8, - 11, - 648, - }, - dictWord{10, 11, 688}, - dictWord{139, 11, 560}, - dictWord{133, 11, 686}, - dictWord{4, 0, 946}, - dictWord{6, 0, 1807}, - dictWord{8, 0, 871}, - dictWord{ - 10, - 0, - 854, - }, - dictWord{10, 0, 870}, - dictWord{10, 0, 888}, - dictWord{10, 0, 897}, - dictWord{10, 0, 920}, - dictWord{12, 0, 722}, - dictWord{12, 0, 761}, - dictWord{ - 12, - 0, - 763, - }, - dictWord{12, 0, 764}, - dictWord{14, 0, 454}, - dictWord{14, 0, 465}, - dictWord{16, 0, 107}, - dictWord{18, 0, 167}, - dictWord{18, 0, 168}, - dictWord{ - 146, - 0, - 172, - }, - dictWord{132, 0, 175}, - dictWord{135, 0, 1307}, - dictWord{132, 0, 685}, - dictWord{135, 11, 1834}, - dictWord{133, 0, 797}, - dictWord{6, 0, 745}, - dictWord{ - 6, - 0, - 858, - }, - dictWord{134, 0, 963}, - dictWord{133, 0, 565}, - dictWord{5, 10, 397}, - dictWord{6, 10, 154}, - dictWord{7, 11, 196}, - dictWord{7, 10, 676}, - dictWord{ - 8, - 10, - 443, - }, - dictWord{8, 10, 609}, - dictWord{9, 10, 24}, - dictWord{9, 10, 325}, - dictWord{10, 10, 35}, - dictWord{10, 11, 765}, - dictWord{11, 11, 347}, - dictWord{ - 11, - 10, - 535, - }, - dictWord{11, 11, 552}, - dictWord{11, 11, 576}, - dictWord{11, 10, 672}, - dictWord{11, 11, 790}, - dictWord{11, 10, 1018}, - dictWord{12, 11, 263}, - dictWord{12, 10, 637}, - dictWord{13, 11, 246}, - dictWord{13, 11, 270}, - dictWord{13, 11, 395}, - dictWord{14, 11, 74}, - dictWord{14, 11, 176}, - dictWord{ - 14, - 11, - 190, - }, - dictWord{14, 11, 398}, - dictWord{14, 11, 412}, - dictWord{15, 11, 32}, - dictWord{15, 11, 63}, - dictWord{16, 10, 30}, - dictWord{16, 11, 88}, - dictWord{ - 147, - 11, - 105, - }, - dictWord{13, 11, 84}, - dictWord{141, 11, 122}, - dictWord{4, 0, 252}, - dictWord{7, 0, 1068}, - dictWord{10, 0, 434}, - dictWord{11, 0, 228}, - dictWord{ - 11, - 0, - 426, - }, - dictWord{13, 0, 231}, - dictWord{18, 0, 106}, - dictWord{148, 0, 87}, - dictWord{137, 0, 826}, - dictWord{4, 11, 589}, - dictWord{139, 11, 282}, - dictWord{ - 5, - 11, - 381, - }, - dictWord{135, 11, 1792}, - dictWord{132, 0, 791}, - dictWord{5, 0, 231}, - dictWord{10, 0, 509}, - dictWord{133, 10, 981}, - dictWord{7, 0, 601}, - dictWord{ - 9, - 0, - 277, - }, - dictWord{9, 0, 674}, - dictWord{10, 0, 178}, - dictWord{10, 0, 418}, - dictWord{10, 0, 571}, - dictWord{11, 0, 531}, - dictWord{12, 0, 113}, - dictWord{12, 0, 475}, - dictWord{13, 0, 99}, - dictWord{142, 0, 428}, - dictWord{4, 10, 56}, - dictWord{7, 11, 616}, - dictWord{7, 10, 1791}, - dictWord{8, 10, 607}, - dictWord{8, 10, 651}, - dictWord{10, 11, 413}, - dictWord{11, 10, 465}, - dictWord{11, 10, 835}, - dictWord{12, 10, 337}, - dictWord{141, 10, 480}, - dictWord{7, 0, 1591}, - dictWord{144, 0, 43}, - dictWord{9, 10, 158}, - dictWord{138, 10, 411}, - dictWord{135, 0, 1683}, - dictWord{8, 0, 289}, - dictWord{11, 0, 45}, - dictWord{12, 0, 278}, - dictWord{140, 0, 537}, - dictWord{6, 11, 120}, - dictWord{7, 11, 1188}, - dictWord{7, 11, 1710}, - dictWord{8, 11, 286}, - dictWord{9, 11, 667}, - dictWord{11, 11, 592}, - dictWord{ - 139, - 11, - 730, - }, - dictWord{136, 10, 617}, - dictWord{135, 0, 1120}, - dictWord{135, 11, 1146}, - dictWord{139, 10, 563}, - dictWord{4, 11, 352}, - dictWord{4, 10, 369}, - dictWord{135, 11, 687}, - dictWord{143, 11, 38}, - dictWord{4, 0, 399}, - dictWord{5, 0, 119}, - dictWord{5, 0, 494}, - dictWord{7, 0, 751}, - dictWord{9, 0, 556}, - dictWord{ - 14, - 11, - 179, - }, - dictWord{15, 11, 151}, - dictWord{150, 11, 11}, - dictWord{4, 11, 192}, - dictWord{5, 11, 49}, - dictWord{6, 11, 200}, - dictWord{6, 11, 293}, - dictWord{ - 6, - 11, - 1696, - }, - dictWord{135, 11, 488}, - dictWord{4, 0, 398}, - dictWord{133, 0, 660}, - dictWord{7, 0, 1030}, - dictWord{134, 10, 622}, - dictWord{135, 11, 595}, - dictWord{141, 0, 168}, - dictWord{132, 11, 147}, - dictWord{7, 0, 973}, - dictWord{10, 10, 624}, - dictWord{142, 10, 279}, - dictWord{132, 10, 363}, - dictWord{ - 132, - 0, - 642, - }, - dictWord{133, 11, 934}, - dictWord{134, 0, 1615}, - dictWord{7, 11, 505}, - dictWord{135, 11, 523}, - dictWord{7, 0, 594}, - dictWord{7, 0, 851}, - dictWord{ - 7, - 0, - 1858, - }, - dictWord{9, 0, 411}, - dictWord{9, 0, 574}, - dictWord{9, 0, 666}, - dictWord{9, 0, 737}, - dictWord{10, 0, 346}, - dictWord{10, 0, 712}, - dictWord{11, 0, 246}, - dictWord{11, 0, 432}, - dictWord{11, 0, 517}, - dictWord{11, 0, 647}, - dictWord{11, 0, 679}, - dictWord{11, 0, 727}, - dictWord{12, 0, 304}, - dictWord{12, 0, 305}, - dictWord{ - 12, - 0, - 323, - }, - dictWord{12, 0, 483}, - dictWord{12, 0, 572}, - dictWord{12, 0, 593}, - dictWord{12, 0, 602}, - dictWord{13, 0, 95}, - dictWord{13, 0, 101}, - dictWord{ - 13, - 0, - 171, - }, - dictWord{13, 0, 315}, - dictWord{13, 0, 378}, - dictWord{13, 0, 425}, - dictWord{13, 0, 475}, - dictWord{14, 0, 63}, - dictWord{14, 0, 380}, - dictWord{14, 0, 384}, - dictWord{15, 0, 133}, - dictWord{18, 0, 112}, - dictWord{148, 0, 72}, - dictWord{135, 0, 1093}, - dictWord{132, 0, 679}, - dictWord{8, 0, 913}, - dictWord{10, 0, 903}, - dictWord{10, 0, 915}, - dictWord{12, 0, 648}, - dictWord{12, 0, 649}, - dictWord{14, 0, 455}, - dictWord{16, 0, 112}, - dictWord{138, 11, 438}, - dictWord{137, 0, 203}, - dictWord{134, 10, 292}, - dictWord{134, 0, 1492}, - dictWord{7, 0, 1374}, - dictWord{8, 0, 540}, - dictWord{5, 10, 177}, - dictWord{6, 10, 616}, - dictWord{7, 10, 827}, - dictWord{9, 10, 525}, - dictWord{138, 10, 656}, - dictWord{135, 0, 1486}, - dictWord{9, 0, 714}, - dictWord{138, 10, 31}, - dictWord{136, 0, 825}, - dictWord{ - 134, - 0, - 1511, - }, - dictWord{132, 11, 637}, - dictWord{134, 0, 952}, - dictWord{4, 10, 161}, - dictWord{133, 10, 631}, - dictWord{5, 0, 143}, - dictWord{5, 0, 769}, - dictWord{ - 6, - 0, - 1760, - }, - dictWord{7, 0, 682}, - dictWord{7, 0, 1992}, - dictWord{136, 0, 736}, - dictWord{132, 0, 700}, - dictWord{134, 0, 1540}, - dictWord{132, 11, 777}, - dictWord{ - 9, - 11, - 867, - }, - dictWord{138, 11, 837}, - dictWord{7, 0, 1557}, - dictWord{135, 10, 1684}, - dictWord{133, 0, 860}, - dictWord{6, 0, 422}, - dictWord{7, 0, 0}, - dictWord{ - 7, - 0, - 1544, - }, - dictWord{9, 0, 605}, - dictWord{11, 0, 990}, - dictWord{12, 0, 235}, - dictWord{12, 0, 453}, - dictWord{13, 0, 47}, - dictWord{13, 0, 266}, - dictWord{9, 10, 469}, - dictWord{9, 10, 709}, - dictWord{12, 10, 512}, - dictWord{14, 10, 65}, - dictWord{145, 10, 12}, - dictWord{11, 0, 807}, - dictWord{10, 10, 229}, - dictWord{11, 10, 73}, - dictWord{139, 10, 376}, - dictWord{6, 11, 170}, - dictWord{7, 11, 1080}, - dictWord{8, 11, 395}, - dictWord{8, 11, 487}, - dictWord{11, 11, 125}, - dictWord{ - 141, - 11, - 147, - }, - dictWord{5, 0, 515}, - dictWord{137, 0, 131}, - dictWord{7, 0, 1605}, - dictWord{11, 0, 962}, - dictWord{146, 0, 139}, - dictWord{132, 0, 646}, - dictWord{ - 4, - 0, - 396, - }, - dictWord{7, 0, 728}, - dictWord{9, 0, 117}, - dictWord{13, 0, 202}, - dictWord{148, 0, 51}, - dictWord{6, 0, 121}, - dictWord{6, 0, 124}, - dictWord{6, 0, 357}, - dictWord{ - 7, - 0, - 1138, - }, - dictWord{7, 0, 1295}, - dictWord{8, 0, 162}, - dictWord{8, 0, 508}, - dictWord{11, 0, 655}, - dictWord{4, 11, 535}, - dictWord{6, 10, 558}, - dictWord{ - 7, - 10, - 651, - }, - dictWord{8, 11, 618}, - dictWord{9, 10, 0}, - dictWord{10, 10, 34}, - dictWord{139, 10, 1008}, - dictWord{135, 11, 1245}, - dictWord{138, 0, 357}, - dictWord{ - 150, - 11, - 23, - }, - dictWord{133, 0, 237}, - dictWord{135, 0, 1784}, - dictWord{7, 10, 1832}, - dictWord{138, 10, 374}, - dictWord{132, 0, 713}, - dictWord{132, 11, 46}, - dictWord{6, 0, 1536}, - dictWord{10, 0, 348}, - dictWord{5, 11, 811}, - dictWord{6, 11, 1679}, - dictWord{6, 11, 1714}, - dictWord{135, 11, 2032}, - dictWord{ - 11, - 11, - 182, - }, - dictWord{142, 11, 195}, - dictWord{6, 0, 523}, - dictWord{7, 0, 738}, - dictWord{7, 10, 771}, - dictWord{7, 10, 1731}, - dictWord{9, 10, 405}, - dictWord{ - 138, - 10, - 421, - }, - dictWord{7, 11, 1458}, - dictWord{9, 11, 407}, - dictWord{139, 11, 15}, - dictWord{6, 11, 34}, - dictWord{7, 11, 69}, - dictWord{7, 11, 640}, - dictWord{ - 7, - 11, - 1089, - }, - dictWord{8, 11, 708}, - dictWord{8, 11, 721}, - dictWord{9, 11, 363}, - dictWord{9, 11, 643}, - dictWord{10, 11, 628}, - dictWord{148, 11, 98}, - dictWord{ - 133, - 0, - 434, - }, - dictWord{135, 0, 1877}, - dictWord{7, 0, 571}, - dictWord{138, 0, 366}, - dictWord{5, 10, 881}, - dictWord{133, 10, 885}, - dictWord{9, 0, 513}, - dictWord{ - 10, - 0, - 25, - }, - dictWord{10, 0, 39}, - dictWord{12, 0, 122}, - dictWord{140, 0, 187}, - dictWord{132, 0, 580}, - dictWord{5, 10, 142}, - dictWord{134, 10, 546}, - dictWord{ - 132, - 11, - 462, - }, - dictWord{137, 0, 873}, - dictWord{5, 10, 466}, - dictWord{11, 10, 571}, - dictWord{12, 10, 198}, - dictWord{13, 10, 283}, - dictWord{14, 10, 186}, - dictWord{15, 10, 21}, - dictWord{143, 10, 103}, - dictWord{7, 0, 171}, - dictWord{4, 10, 185}, - dictWord{5, 10, 257}, - dictWord{5, 10, 839}, - dictWord{5, 10, 936}, - dictWord{ - 9, - 10, - 399, - }, - dictWord{10, 10, 258}, - dictWord{10, 10, 395}, - dictWord{10, 10, 734}, - dictWord{11, 10, 1014}, - dictWord{12, 10, 23}, - dictWord{13, 10, 350}, - dictWord{14, 10, 150}, - dictWord{147, 10, 6}, - dictWord{134, 0, 625}, - dictWord{7, 0, 107}, - dictWord{7, 0, 838}, - dictWord{8, 0, 550}, - dictWord{138, 0, 401}, - dictWord{ - 5, - 11, - 73, - }, - dictWord{6, 11, 23}, - dictWord{134, 11, 338}, - dictWord{4, 0, 943}, - dictWord{6, 0, 1850}, - dictWord{12, 0, 713}, - dictWord{142, 0, 434}, - dictWord{ - 11, - 0, - 588, - }, - dictWord{11, 0, 864}, - dictWord{11, 0, 936}, - dictWord{11, 0, 968}, - dictWord{12, 0, 73}, - dictWord{12, 0, 343}, - dictWord{12, 0, 394}, - dictWord{13, 0, 275}, - dictWord{14, 0, 257}, - dictWord{15, 0, 160}, - dictWord{7, 10, 404}, - dictWord{7, 10, 1377}, - dictWord{7, 10, 1430}, - dictWord{7, 10, 2017}, - dictWord{8, 10, 149}, - dictWord{8, 10, 239}, - dictWord{8, 10, 512}, - dictWord{8, 10, 793}, - dictWord{8, 10, 818}, - dictWord{9, 10, 474}, - dictWord{9, 10, 595}, - dictWord{10, 10, 122}, - dictWord{10, 10, 565}, - dictWord{10, 10, 649}, - dictWord{10, 10, 783}, - dictWord{11, 10, 239}, - dictWord{11, 10, 295}, - dictWord{11, 10, 447}, - dictWord{ - 11, - 10, - 528, - }, - dictWord{11, 10, 639}, - dictWord{11, 10, 800}, - dictWord{12, 10, 25}, - dictWord{12, 10, 157}, - dictWord{12, 10, 316}, - dictWord{12, 10, 390}, - dictWord{ - 12, - 10, - 391, - }, - dictWord{12, 10, 395}, - dictWord{12, 10, 478}, - dictWord{12, 10, 503}, - dictWord{12, 10, 592}, - dictWord{12, 10, 680}, - dictWord{13, 10, 50}, - dictWord{13, 10, 53}, - dictWord{13, 10, 132}, - dictWord{13, 10, 198}, - dictWord{13, 10, 322}, - dictWord{13, 10, 415}, - dictWord{13, 10, 511}, - dictWord{14, 10, 71}, - dictWord{14, 10, 395}, - dictWord{15, 10, 71}, - dictWord{15, 10, 136}, - dictWord{17, 10, 123}, - dictWord{18, 10, 93}, - dictWord{147, 10, 58}, - dictWord{ - 133, - 0, - 768, - }, - dictWord{11, 0, 103}, - dictWord{142, 0, 0}, - dictWord{136, 10, 712}, - dictWord{132, 0, 799}, - dictWord{132, 0, 894}, - dictWord{7, 11, 725}, - dictWord{ - 8, - 11, - 498, - }, - dictWord{139, 11, 268}, - dictWord{135, 11, 1798}, - dictWord{135, 11, 773}, - dictWord{141, 11, 360}, - dictWord{4, 10, 377}, - dictWord{152, 10, 13}, - dictWord{135, 0, 1673}, - dictWord{132, 11, 583}, - dictWord{134, 0, 1052}, - dictWord{133, 11, 220}, - dictWord{140, 11, 69}, - dictWord{132, 11, 544}, - dictWord{ - 4, - 10, - 180, - }, - dictWord{135, 10, 1906}, - dictWord{134, 0, 272}, - dictWord{4, 0, 441}, - dictWord{134, 0, 1421}, - dictWord{4, 0, 9}, - dictWord{5, 0, 128}, - dictWord{ - 7, - 0, - 368, - }, - dictWord{11, 0, 480}, - dictWord{148, 0, 3}, - dictWord{5, 11, 176}, - dictWord{6, 11, 437}, - dictWord{6, 11, 564}, - dictWord{11, 11, 181}, - dictWord{ - 141, - 11, - 183, - }, - dictWord{132, 10, 491}, - dictWord{7, 0, 1182}, - dictWord{141, 11, 67}, - dictWord{6, 0, 1346}, - dictWord{4, 10, 171}, - dictWord{138, 10, 234}, - dictWord{ - 4, - 10, - 586, - }, - dictWord{7, 10, 1186}, - dictWord{138, 10, 631}, - dictWord{136, 0, 682}, - dictWord{134, 0, 1004}, - dictWord{15, 0, 24}, - dictWord{143, 11, 24}, - dictWord{134, 0, 968}, - dictWord{4, 0, 2}, - dictWord{6, 0, 742}, - dictWord{6, 0, 793}, - dictWord{7, 0, 545}, - dictWord{7, 0, 894}, - dictWord{9, 10, 931}, - dictWord{ - 10, - 10, - 334, - }, - dictWord{148, 10, 71}, - dictWord{136, 11, 600}, - dictWord{133, 10, 765}, - dictWord{9, 0, 769}, - dictWord{140, 0, 185}, - dictWord{4, 11, 790}, - dictWord{ - 5, - 11, - 273, - }, - dictWord{134, 11, 394}, - dictWord{7, 0, 474}, - dictWord{137, 0, 578}, - dictWord{4, 11, 135}, - dictWord{6, 11, 127}, - dictWord{7, 11, 1185}, - dictWord{ - 7, - 11, - 1511, - }, - dictWord{8, 11, 613}, - dictWord{11, 11, 5}, - dictWord{12, 11, 133}, - dictWord{12, 11, 495}, - dictWord{12, 11, 586}, - dictWord{14, 11, 385}, - dictWord{15, 11, 118}, - dictWord{17, 11, 20}, - dictWord{146, 11, 98}, - dictWord{133, 10, 424}, - dictWord{5, 0, 530}, - dictWord{142, 0, 113}, - dictWord{6, 11, 230}, - dictWord{7, 11, 961}, - dictWord{7, 11, 1085}, - dictWord{136, 11, 462}, - dictWord{7, 11, 1954}, - dictWord{137, 11, 636}, - dictWord{136, 10, 714}, - dictWord{ - 149, - 11, - 6, - }, - dictWord{135, 10, 685}, - dictWord{9, 10, 420}, - dictWord{10, 10, 269}, - dictWord{10, 10, 285}, - dictWord{10, 10, 576}, - dictWord{11, 10, 397}, - dictWord{13, 10, 175}, - dictWord{145, 10, 90}, - dictWord{132, 10, 429}, - dictWord{5, 0, 556}, - dictWord{5, 11, 162}, - dictWord{136, 11, 68}, - dictWord{132, 11, 654}, - dictWord{4, 11, 156}, - dictWord{7, 11, 998}, - dictWord{7, 11, 1045}, - dictWord{7, 11, 1860}, - dictWord{9, 11, 48}, - dictWord{9, 11, 692}, - dictWord{11, 11, 419}, - dictWord{139, 11, 602}, - dictWord{6, 0, 1317}, - dictWord{8, 0, 16}, - dictWord{9, 0, 825}, - dictWord{12, 0, 568}, - dictWord{7, 11, 1276}, - dictWord{8, 11, 474}, - dictWord{137, 11, 652}, - dictWord{18, 0, 97}, - dictWord{7, 10, 18}, - dictWord{7, 10, 699}, - dictWord{7, 10, 1966}, - dictWord{8, 10, 752}, - dictWord{9, 10, 273}, - dictWord{ - 9, - 10, - 412, - }, - dictWord{9, 10, 703}, - dictWord{10, 10, 71}, - dictWord{10, 10, 427}, - dictWord{138, 10, 508}, - dictWord{10, 0, 703}, - dictWord{7, 11, 1454}, - dictWord{138, 11, 703}, - dictWord{4, 10, 53}, - dictWord{5, 10, 186}, - dictWord{135, 10, 752}, - dictWord{134, 0, 892}, - dictWord{134, 0, 1571}, - dictWord{8, 10, 575}, - dictWord{10, 10, 289}, - dictWord{139, 10, 319}, - dictWord{6, 0, 186}, - dictWord{137, 0, 426}, - dictWord{134, 0, 1101}, - dictWord{132, 10, 675}, - dictWord{ - 132, - 0, - 585, - }, - dictWord{6, 0, 1870}, - dictWord{137, 0, 937}, - dictWord{152, 11, 10}, - dictWord{9, 11, 197}, - dictWord{10, 11, 300}, - dictWord{12, 11, 473}, - dictWord{ - 13, - 11, - 90, - }, - dictWord{141, 11, 405}, - dictWord{4, 0, 93}, - dictWord{5, 0, 252}, - dictWord{6, 0, 229}, - dictWord{7, 0, 291}, - dictWord{9, 0, 550}, - dictWord{139, 0, 644}, - dictWord{137, 0, 749}, - dictWord{9, 0, 162}, - dictWord{6, 10, 209}, - dictWord{8, 10, 468}, - dictWord{9, 10, 210}, - dictWord{11, 10, 36}, - dictWord{12, 10, 28}, - dictWord{12, 10, 630}, - dictWord{13, 10, 21}, - dictWord{13, 10, 349}, - dictWord{14, 10, 7}, - dictWord{145, 10, 13}, - dictWord{132, 0, 381}, - dictWord{132, 11, 606}, - dictWord{4, 10, 342}, - dictWord{135, 10, 1179}, - dictWord{7, 11, 1587}, - dictWord{7, 11, 1707}, - dictWord{10, 11, 528}, - dictWord{139, 11, 504}, - dictWord{ - 12, - 11, - 39, - }, - dictWord{13, 11, 265}, - dictWord{141, 11, 439}, - dictWord{4, 10, 928}, - dictWord{133, 10, 910}, - dictWord{7, 10, 1838}, - dictWord{7, 11, 1978}, - dictWord{136, 11, 676}, - dictWord{6, 0, 762}, - dictWord{6, 0, 796}, - dictWord{134, 0, 956}, - dictWord{4, 10, 318}, - dictWord{4, 10, 496}, - dictWord{7, 10, 856}, - dictWord{139, 10, 654}, - dictWord{137, 11, 242}, - dictWord{4, 11, 361}, - dictWord{133, 11, 315}, - dictWord{132, 11, 461}, - dictWord{132, 11, 472}, - dictWord{ - 132, - 0, - 857, - }, - dictWord{5, 0, 21}, - dictWord{6, 0, 77}, - dictWord{6, 0, 157}, - dictWord{7, 0, 974}, - dictWord{7, 0, 1301}, - dictWord{7, 0, 1339}, - dictWord{7, 0, 1490}, - dictWord{ - 7, - 0, - 1873, - }, - dictWord{9, 0, 628}, - dictWord{7, 10, 915}, - dictWord{8, 10, 247}, - dictWord{147, 10, 0}, - dictWord{4, 10, 202}, - dictWord{5, 10, 382}, - dictWord{ - 6, - 10, - 454, - }, - dictWord{7, 10, 936}, - dictWord{7, 10, 1803}, - dictWord{8, 10, 758}, - dictWord{9, 10, 375}, - dictWord{9, 10, 895}, - dictWord{10, 10, 743}, - dictWord{ - 10, - 10, - 792, - }, - dictWord{11, 10, 978}, - dictWord{11, 10, 1012}, - dictWord{142, 10, 109}, - dictWord{7, 11, 617}, - dictWord{10, 11, 498}, - dictWord{11, 11, 501}, - dictWord{12, 11, 16}, - dictWord{140, 11, 150}, - dictWord{7, 10, 1150}, - dictWord{7, 10, 1425}, - dictWord{7, 10, 1453}, - dictWord{10, 11, 747}, - dictWord{ - 140, - 10, - 513, - }, - dictWord{133, 11, 155}, - dictWord{11, 0, 919}, - dictWord{141, 0, 409}, - dictWord{138, 10, 791}, - dictWord{10, 0, 633}, - dictWord{139, 11, 729}, - dictWord{ - 7, - 11, - 163, - }, - dictWord{8, 11, 319}, - dictWord{9, 11, 402}, - dictWord{10, 11, 24}, - dictWord{10, 11, 681}, - dictWord{11, 11, 200}, - dictWord{11, 11, 567}, - dictWord{12, 11, 253}, - dictWord{12, 11, 410}, - dictWord{142, 11, 219}, - dictWord{5, 11, 475}, - dictWord{7, 11, 1780}, - dictWord{9, 11, 230}, - dictWord{11, 11, 297}, - dictWord{11, 11, 558}, - dictWord{14, 11, 322}, - dictWord{147, 11, 76}, - dictWord{7, 0, 332}, - dictWord{6, 10, 445}, - dictWord{137, 10, 909}, - dictWord{ - 135, - 11, - 1956, - }, - dictWord{136, 11, 274}, - dictWord{134, 10, 578}, - dictWord{135, 0, 1489}, - dictWord{135, 11, 1848}, - dictWord{5, 11, 944}, - dictWord{ - 134, - 11, - 1769, - }, - dictWord{132, 11, 144}, - dictWord{136, 10, 766}, - dictWord{4, 0, 832}, - dictWord{135, 10, 541}, - dictWord{8, 0, 398}, - dictWord{9, 0, 681}, - dictWord{ - 139, - 0, - 632, - }, - dictWord{136, 0, 645}, - dictWord{9, 0, 791}, - dictWord{10, 0, 93}, - dictWord{16, 0, 13}, - dictWord{17, 0, 23}, - dictWord{18, 0, 135}, - dictWord{19, 0, 12}, - dictWord{20, 0, 1}, - dictWord{20, 0, 12}, - dictWord{148, 0, 14}, - dictWord{6, 11, 247}, - dictWord{137, 11, 555}, - dictWord{134, 0, 20}, - dictWord{132, 0, 800}, - dictWord{135, 0, 1841}, - dictWord{139, 10, 983}, - dictWord{137, 10, 768}, - dictWord{132, 10, 584}, - dictWord{141, 11, 51}, - dictWord{6, 0, 1993}, - dictWord{ - 4, - 11, - 620, - }, - dictWord{138, 11, 280}, - dictWord{136, 0, 769}, - dictWord{11, 0, 290}, - dictWord{11, 0, 665}, - dictWord{7, 11, 1810}, - dictWord{11, 11, 866}, - dictWord{ - 12, - 11, - 103, - }, - dictWord{13, 11, 495}, - dictWord{17, 11, 67}, - dictWord{147, 11, 74}, - dictWord{134, 0, 1426}, - dictWord{139, 0, 60}, - dictWord{4, 10, 326}, - dictWord{135, 10, 1770}, - dictWord{7, 0, 1874}, - dictWord{9, 0, 641}, - dictWord{132, 10, 226}, - dictWord{6, 0, 644}, - dictWord{5, 10, 426}, - dictWord{8, 10, 30}, - dictWord{ - 9, - 10, - 2, - }, - dictWord{11, 10, 549}, - dictWord{147, 10, 122}, - dictWord{5, 11, 428}, - dictWord{138, 11, 442}, - dictWord{135, 11, 1871}, - dictWord{ - 135, - 0, - 1757, - }, - dictWord{147, 10, 117}, - dictWord{135, 0, 937}, - dictWord{135, 0, 1652}, - dictWord{6, 0, 654}, - dictWord{134, 0, 1476}, - dictWord{133, 11, 99}, - dictWord{135, 0, 527}, - dictWord{132, 10, 345}, - dictWord{4, 10, 385}, - dictWord{4, 11, 397}, - dictWord{7, 10, 265}, - dictWord{135, 10, 587}, - dictWord{4, 0, 579}, - dictWord{5, 0, 226}, - dictWord{5, 0, 323}, - dictWord{135, 0, 960}, - dictWord{134, 0, 1486}, - dictWord{8, 11, 502}, - dictWord{144, 11, 9}, - dictWord{4, 10, 347}, - dictWord{ - 5, - 10, - 423, - }, - dictWord{5, 10, 996}, - dictWord{135, 10, 1329}, - dictWord{7, 11, 727}, - dictWord{146, 11, 73}, - dictWord{4, 11, 485}, - dictWord{7, 11, 353}, - dictWord{7, 10, 1259}, - dictWord{7, 11, 1523}, - dictWord{9, 10, 125}, - dictWord{139, 10, 65}, - dictWord{6, 0, 325}, - dictWord{5, 10, 136}, - dictWord{6, 11, 366}, - dictWord{ - 7, - 11, - 1384, - }, - dictWord{7, 11, 1601}, - dictWord{136, 10, 644}, - dictWord{138, 11, 160}, - dictWord{6, 0, 1345}, - dictWord{137, 11, 282}, - dictWord{18, 0, 91}, - dictWord{147, 0, 70}, - dictWord{136, 0, 404}, - dictWord{4, 11, 157}, - dictWord{133, 11, 471}, - dictWord{133, 0, 973}, - dictWord{6, 0, 135}, - dictWord{ - 135, - 0, - 1176, - }, - dictWord{8, 11, 116}, - dictWord{11, 11, 551}, - dictWord{142, 11, 159}, - dictWord{4, 0, 549}, - dictWord{4, 10, 433}, - dictWord{133, 10, 719}, - dictWord{ - 136, - 0, - 976, - }, - dictWord{5, 11, 160}, - dictWord{7, 11, 363}, - dictWord{7, 11, 589}, - dictWord{10, 11, 170}, - dictWord{141, 11, 55}, - dictWord{144, 0, 21}, - dictWord{ - 144, - 0, - 51, - }, - dictWord{135, 0, 314}, - dictWord{135, 10, 1363}, - dictWord{4, 11, 108}, - dictWord{7, 11, 405}, - dictWord{10, 11, 491}, - dictWord{139, 11, 498}, - dictWord{146, 0, 4}, - dictWord{4, 10, 555}, - dictWord{8, 10, 536}, - dictWord{10, 10, 288}, - dictWord{139, 10, 1005}, - dictWord{135, 11, 1005}, - dictWord{6, 0, 281}, - dictWord{7, 0, 6}, - dictWord{8, 0, 282}, - dictWord{8, 0, 480}, - dictWord{8, 0, 499}, - dictWord{9, 0, 198}, - dictWord{10, 0, 143}, - dictWord{10, 0, 169}, - dictWord{ - 10, - 0, - 211, - }, - dictWord{10, 0, 417}, - dictWord{10, 0, 574}, - dictWord{11, 0, 147}, - dictWord{11, 0, 395}, - dictWord{12, 0, 75}, - dictWord{12, 0, 407}, - dictWord{12, 0, 608}, - dictWord{13, 0, 500}, - dictWord{142, 0, 251}, - dictWord{6, 0, 1093}, - dictWord{6, 0, 1405}, - dictWord{9, 10, 370}, - dictWord{138, 10, 90}, - dictWord{4, 11, 926}, - dictWord{133, 11, 983}, - dictWord{135, 0, 1776}, - dictWord{134, 0, 1528}, - dictWord{132, 0, 419}, - dictWord{132, 11, 538}, - dictWord{6, 11, 294}, - dictWord{ - 7, - 11, - 1267, - }, - dictWord{136, 11, 624}, - dictWord{135, 11, 1772}, - dictWord{138, 11, 301}, - dictWord{4, 10, 257}, - dictWord{135, 10, 2031}, - dictWord{4, 0, 138}, - dictWord{7, 0, 1012}, - dictWord{7, 0, 1280}, - dictWord{9, 0, 76}, - dictWord{135, 10, 1768}, - dictWord{132, 11, 757}, - dictWord{5, 0, 29}, - dictWord{140, 0, 638}, - dictWord{7, 11, 655}, - dictWord{135, 11, 1844}, - dictWord{7, 0, 1418}, - dictWord{6, 11, 257}, - dictWord{135, 11, 1522}, - dictWord{8, 11, 469}, - dictWord{ - 138, - 11, - 47, - }, - dictWord{142, 11, 278}, - dictWord{6, 10, 83}, - dictWord{6, 10, 1733}, - dictWord{135, 10, 1389}, - dictWord{11, 11, 204}, - dictWord{11, 11, 243}, - dictWord{140, 11, 293}, - dictWord{135, 11, 1875}, - dictWord{6, 0, 1710}, - dictWord{135, 0, 2038}, - dictWord{137, 11, 299}, - dictWord{4, 0, 17}, - dictWord{5, 0, 23}, - dictWord{7, 0, 995}, - dictWord{11, 0, 383}, - dictWord{11, 0, 437}, - dictWord{12, 0, 460}, - dictWord{140, 0, 532}, - dictWord{133, 0, 862}, - dictWord{137, 10, 696}, - dictWord{6, 0, 592}, - dictWord{138, 0, 946}, - dictWord{138, 11, 599}, - dictWord{7, 10, 1718}, - dictWord{9, 10, 95}, - dictWord{9, 10, 274}, - dictWord{10, 10, 279}, - dictWord{10, 10, 317}, - dictWord{10, 10, 420}, - dictWord{11, 10, 303}, - dictWord{11, 10, 808}, - dictWord{12, 10, 134}, - dictWord{12, 10, 367}, - dictWord{ - 13, - 10, - 149, - }, - dictWord{13, 10, 347}, - dictWord{14, 10, 349}, - dictWord{14, 10, 406}, - dictWord{18, 10, 22}, - dictWord{18, 10, 89}, - dictWord{18, 10, 122}, - dictWord{ - 147, - 10, - 47, - }, - dictWord{8, 0, 70}, - dictWord{12, 0, 171}, - dictWord{141, 0, 272}, - dictWord{133, 10, 26}, - dictWord{132, 10, 550}, - dictWord{137, 0, 812}, - dictWord{ - 10, - 0, - 233, - }, - dictWord{139, 0, 76}, - dictWord{134, 0, 988}, - dictWord{134, 0, 442}, - dictWord{136, 10, 822}, - dictWord{7, 0, 896}, - dictWord{4, 10, 902}, - dictWord{ - 5, - 10, - 809, - }, - dictWord{134, 10, 122}, - dictWord{5, 11, 150}, - dictWord{7, 11, 106}, - dictWord{8, 11, 603}, - dictWord{9, 11, 593}, - dictWord{9, 11, 634}, - dictWord{ - 10, - 11, - 44, - }, - dictWord{10, 11, 173}, - dictWord{11, 11, 462}, - dictWord{11, 11, 515}, - dictWord{13, 11, 216}, - dictWord{13, 11, 288}, - dictWord{142, 11, 400}, - dictWord{136, 0, 483}, - dictWord{135, 10, 262}, - dictWord{6, 0, 1709}, - dictWord{133, 10, 620}, - dictWord{4, 10, 34}, - dictWord{5, 10, 574}, - dictWord{7, 10, 279}, - dictWord{7, 10, 1624}, - dictWord{136, 10, 601}, - dictWord{137, 10, 170}, - dictWord{147, 0, 119}, - dictWord{12, 11, 108}, - dictWord{141, 11, 291}, - dictWord{ - 11, - 0, - 69, - }, - dictWord{12, 0, 105}, - dictWord{12, 0, 117}, - dictWord{13, 0, 213}, - dictWord{14, 0, 13}, - dictWord{14, 0, 62}, - dictWord{14, 0, 177}, - dictWord{14, 0, 421}, - dictWord{15, 0, 19}, - dictWord{146, 0, 141}, - dictWord{137, 0, 309}, - dictWord{11, 11, 278}, - dictWord{142, 11, 73}, - dictWord{7, 0, 608}, - dictWord{7, 0, 976}, - dictWord{9, 0, 146}, - dictWord{10, 0, 206}, - dictWord{10, 0, 596}, - dictWord{13, 0, 218}, - dictWord{142, 0, 153}, - dictWord{133, 10, 332}, - dictWord{6, 10, 261}, - dictWord{ - 8, - 10, - 182, - }, - dictWord{139, 10, 943}, - dictWord{4, 11, 493}, - dictWord{144, 11, 55}, - dictWord{134, 10, 1721}, - dictWord{132, 0, 768}, - dictWord{4, 10, 933}, - dictWord{133, 10, 880}, - dictWord{7, 11, 555}, - dictWord{7, 11, 1316}, - dictWord{7, 11, 1412}, - dictWord{7, 11, 1839}, - dictWord{9, 11, 192}, - dictWord{ - 9, - 11, - 589, - }, - dictWord{11, 11, 241}, - dictWord{11, 11, 676}, - dictWord{11, 11, 811}, - dictWord{11, 11, 891}, - dictWord{12, 11, 140}, - dictWord{12, 11, 346}, - dictWord{ - 12, - 11, - 479, - }, - dictWord{13, 11, 30}, - dictWord{13, 11, 49}, - dictWord{13, 11, 381}, - dictWord{14, 11, 188}, - dictWord{15, 11, 150}, - dictWord{16, 11, 76}, - dictWord{18, 11, 30}, - dictWord{148, 11, 52}, - dictWord{4, 0, 518}, - dictWord{135, 0, 1136}, - dictWord{6, 11, 568}, - dictWord{7, 11, 112}, - dictWord{7, 11, 1804}, - dictWord{8, 11, 362}, - dictWord{8, 11, 410}, - dictWord{8, 11, 830}, - dictWord{9, 11, 514}, - dictWord{11, 11, 649}, - dictWord{142, 11, 157}, - dictWord{135, 11, 673}, - dictWord{8, 0, 689}, - dictWord{137, 0, 863}, - dictWord{4, 0, 18}, - dictWord{7, 0, 145}, - dictWord{7, 0, 444}, - dictWord{7, 0, 1278}, - dictWord{8, 0, 49}, - dictWord{8, 0, 400}, - dictWord{9, 0, 71}, - dictWord{9, 0, 250}, - dictWord{10, 0, 459}, - dictWord{12, 0, 160}, - dictWord{16, 0, 24}, - dictWord{132, 11, 625}, - dictWord{140, 0, 1020}, - dictWord{4, 0, 997}, - dictWord{6, 0, 1946}, - dictWord{6, 0, 1984}, - dictWord{134, 0, 1998}, - dictWord{6, 11, 16}, - dictWord{6, 11, 158}, - dictWord{7, 11, 43}, - dictWord{ - 7, - 11, - 129, - }, - dictWord{7, 11, 181}, - dictWord{8, 11, 276}, - dictWord{8, 11, 377}, - dictWord{10, 11, 523}, - dictWord{11, 11, 816}, - dictWord{12, 11, 455}, - dictWord{ - 13, - 11, - 303, - }, - dictWord{142, 11, 135}, - dictWord{133, 10, 812}, - dictWord{134, 0, 658}, - dictWord{4, 11, 1}, - dictWord{7, 11, 1143}, - dictWord{7, 11, 1463}, - dictWord{8, 11, 61}, - dictWord{9, 11, 207}, - dictWord{9, 11, 390}, - dictWord{9, 11, 467}, - dictWord{139, 11, 836}, - dictWord{150, 11, 26}, - dictWord{140, 0, 106}, - dictWord{6, 0, 1827}, - dictWord{10, 0, 931}, - dictWord{18, 0, 166}, - dictWord{20, 0, 114}, - dictWord{4, 10, 137}, - dictWord{7, 10, 1178}, - dictWord{7, 11, 1319}, - dictWord{135, 10, 1520}, - dictWord{133, 0, 1010}, - dictWord{4, 11, 723}, - dictWord{5, 11, 895}, - dictWord{7, 11, 1031}, - dictWord{8, 11, 199}, - dictWord{8, 11, 340}, - dictWord{9, 11, 153}, - dictWord{9, 11, 215}, - dictWord{10, 11, 21}, - dictWord{10, 11, 59}, - dictWord{10, 11, 80}, - dictWord{10, 11, 224}, - dictWord{11, 11, 229}, - dictWord{11, 11, 652}, - dictWord{12, 11, 192}, - dictWord{13, 11, 146}, - dictWord{142, 11, 91}, - dictWord{132, 11, 295}, - dictWord{6, 11, 619}, - dictWord{ - 7, - 11, - 898, - }, - dictWord{7, 11, 1092}, - dictWord{8, 11, 485}, - dictWord{18, 11, 28}, - dictWord{147, 11, 116}, - dictWord{137, 11, 51}, - dictWord{6, 10, 1661}, - dictWord{ - 7, - 10, - 1975, - }, - dictWord{7, 10, 2009}, - dictWord{135, 10, 2011}, - dictWord{5, 11, 309}, - dictWord{140, 11, 211}, - dictWord{5, 0, 87}, - dictWord{7, 0, 313}, - dictWord{ - 7, - 0, - 1103, - }, - dictWord{10, 0, 208}, - dictWord{10, 0, 582}, - dictWord{11, 0, 389}, - dictWord{11, 0, 813}, - dictWord{12, 0, 385}, - dictWord{13, 0, 286}, - dictWord{ - 14, - 0, - 124, - }, - dictWord{146, 0, 108}, - dictWord{5, 11, 125}, - dictWord{8, 11, 77}, - dictWord{138, 11, 15}, - dictWord{132, 0, 267}, - dictWord{133, 0, 703}, - dictWord{ - 137, - 11, - 155, - }, - dictWord{133, 11, 439}, - dictWord{11, 11, 164}, - dictWord{140, 11, 76}, - dictWord{9, 0, 496}, - dictWord{5, 10, 89}, - dictWord{7, 10, 1915}, - dictWord{ - 9, - 10, - 185, - }, - dictWord{9, 10, 235}, - dictWord{10, 10, 64}, - dictWord{10, 10, 270}, - dictWord{10, 10, 403}, - dictWord{10, 10, 469}, - dictWord{10, 10, 529}, - dictWord{10, 10, 590}, - dictWord{11, 10, 140}, - dictWord{11, 10, 860}, - dictWord{13, 10, 1}, - dictWord{13, 10, 422}, - dictWord{14, 10, 341}, - dictWord{14, 10, 364}, - dictWord{17, 10, 93}, - dictWord{18, 10, 113}, - dictWord{19, 10, 97}, - dictWord{147, 10, 113}, - dictWord{133, 10, 695}, - dictWord{135, 0, 1121}, - dictWord{ - 5, - 10, - 6, - }, - dictWord{6, 10, 183}, - dictWord{7, 10, 680}, - dictWord{7, 10, 978}, - dictWord{7, 10, 1013}, - dictWord{7, 10, 1055}, - dictWord{12, 10, 230}, - dictWord{ - 13, - 10, - 172, - }, - dictWord{146, 10, 29}, - dictWord{4, 11, 8}, - dictWord{7, 11, 1152}, - dictWord{7, 11, 1153}, - dictWord{7, 11, 1715}, - dictWord{9, 11, 374}, - dictWord{ - 10, - 11, - 478, - }, - dictWord{139, 11, 648}, - dictWord{135, 11, 1099}, - dictWord{6, 10, 29}, - dictWord{139, 10, 63}, - dictWord{4, 0, 561}, - dictWord{10, 0, 249}, - dictWord{ - 139, - 0, - 209, - }, - dictWord{132, 0, 760}, - dictWord{7, 11, 799}, - dictWord{138, 11, 511}, - dictWord{136, 11, 87}, - dictWord{9, 0, 154}, - dictWord{140, 0, 485}, - dictWord{136, 0, 255}, - dictWord{132, 0, 323}, - dictWord{140, 0, 419}, - dictWord{132, 10, 311}, - dictWord{134, 10, 1740}, - dictWord{4, 0, 368}, - dictWord{ - 135, - 0, - 641, - }, - dictWord{7, 10, 170}, - dictWord{8, 10, 90}, - dictWord{8, 10, 177}, - dictWord{8, 10, 415}, - dictWord{11, 10, 714}, - dictWord{142, 10, 281}, - dictWord{ - 4, - 11, - 69, - }, - dictWord{5, 11, 122}, - dictWord{9, 11, 656}, - dictWord{138, 11, 464}, - dictWord{5, 11, 849}, - dictWord{134, 11, 1633}, - dictWord{8, 0, 522}, - dictWord{ - 142, - 0, - 328, - }, - dictWord{11, 10, 91}, - dictWord{13, 10, 129}, - dictWord{15, 10, 101}, - dictWord{145, 10, 125}, - dictWord{7, 0, 562}, - dictWord{8, 0, 551}, - dictWord{ - 4, - 10, - 494, - }, - dictWord{6, 10, 74}, - dictWord{7, 10, 44}, - dictWord{11, 11, 499}, - dictWord{12, 10, 17}, - dictWord{15, 10, 5}, - dictWord{148, 10, 11}, - dictWord{4, 10, 276}, - dictWord{133, 10, 296}, - dictWord{9, 0, 92}, - dictWord{147, 0, 91}, - dictWord{4, 10, 7}, - dictWord{5, 10, 90}, - dictWord{5, 10, 158}, - dictWord{6, 10, 542}, - dictWord{ - 7, - 10, - 221, - }, - dictWord{7, 10, 1574}, - dictWord{9, 10, 490}, - dictWord{10, 10, 540}, - dictWord{11, 10, 443}, - dictWord{139, 10, 757}, - dictWord{6, 0, 525}, - dictWord{ - 6, - 0, - 1976, - }, - dictWord{8, 0, 806}, - dictWord{9, 0, 876}, - dictWord{140, 0, 284}, - dictWord{5, 11, 859}, - dictWord{7, 10, 588}, - dictWord{7, 11, 1160}, - dictWord{ - 8, - 11, - 107, - }, - dictWord{9, 10, 175}, - dictWord{9, 11, 291}, - dictWord{9, 11, 439}, - dictWord{10, 10, 530}, - dictWord{10, 11, 663}, - dictWord{11, 11, 609}, - dictWord{ - 140, - 11, - 197, - }, - dictWord{7, 11, 168}, - dictWord{13, 11, 196}, - dictWord{141, 11, 237}, - dictWord{139, 0, 958}, - dictWord{133, 0, 594}, - dictWord{135, 10, 580}, - dictWord{7, 10, 88}, - dictWord{136, 10, 627}, - dictWord{6, 0, 479}, - dictWord{6, 0, 562}, - dictWord{7, 0, 1060}, - dictWord{13, 0, 6}, - dictWord{5, 10, 872}, - dictWord{ - 6, - 10, - 57, - }, - dictWord{7, 10, 471}, - dictWord{9, 10, 447}, - dictWord{137, 10, 454}, - dictWord{136, 11, 413}, - dictWord{145, 11, 19}, - dictWord{4, 11, 117}, - dictWord{ - 6, - 11, - 372, - }, - dictWord{7, 11, 1905}, - dictWord{142, 11, 323}, - dictWord{4, 11, 722}, - dictWord{139, 11, 471}, - dictWord{17, 0, 61}, - dictWord{5, 10, 31}, - dictWord{134, 10, 614}, - dictWord{8, 10, 330}, - dictWord{140, 10, 477}, - dictWord{7, 10, 1200}, - dictWord{138, 10, 460}, - dictWord{6, 10, 424}, - dictWord{ - 135, - 10, - 1866, - }, - dictWord{6, 0, 1641}, - dictWord{136, 0, 820}, - dictWord{6, 0, 1556}, - dictWord{134, 0, 1618}, - dictWord{9, 11, 5}, - dictWord{12, 11, 216}, - dictWord{ - 12, - 11, - 294, - }, - dictWord{12, 11, 298}, - dictWord{12, 11, 400}, - dictWord{12, 11, 518}, - dictWord{13, 11, 229}, - dictWord{143, 11, 139}, - dictWord{15, 11, 155}, - dictWord{144, 11, 79}, - dictWord{4, 0, 302}, - dictWord{135, 0, 1766}, - dictWord{5, 10, 13}, - dictWord{134, 10, 142}, - dictWord{6, 0, 148}, - dictWord{7, 0, 1313}, - dictWord{ - 7, - 10, - 116, - }, - dictWord{8, 10, 322}, - dictWord{8, 10, 755}, - dictWord{9, 10, 548}, - dictWord{10, 10, 714}, - dictWord{11, 10, 884}, - dictWord{141, 10, 324}, - dictWord{137, 0, 676}, - dictWord{9, 11, 88}, - dictWord{139, 11, 270}, - dictWord{5, 11, 12}, - dictWord{7, 11, 375}, - dictWord{137, 11, 438}, - dictWord{134, 0, 1674}, - dictWord{7, 10, 1472}, - dictWord{135, 10, 1554}, - dictWord{11, 0, 178}, - dictWord{7, 10, 1071}, - dictWord{7, 10, 1541}, - dictWord{7, 10, 1767}, - dictWord{ - 7, - 10, - 1806, - }, - dictWord{11, 10, 162}, - dictWord{11, 10, 242}, - dictWord{12, 10, 605}, - dictWord{15, 10, 26}, - dictWord{144, 10, 44}, - dictWord{6, 0, 389}, - dictWord{ - 7, - 0, - 149, - }, - dictWord{9, 0, 142}, - dictWord{138, 0, 94}, - dictWord{140, 11, 71}, - dictWord{145, 10, 115}, - dictWord{6, 0, 8}, - dictWord{7, 0, 1881}, - dictWord{8, 0, 91}, - dictWord{11, 11, 966}, - dictWord{12, 11, 287}, - dictWord{13, 11, 342}, - dictWord{13, 11, 402}, - dictWord{15, 11, 110}, - dictWord{143, 11, 163}, - dictWord{ - 4, - 11, - 258, - }, - dictWord{136, 11, 639}, - dictWord{6, 11, 22}, - dictWord{7, 11, 903}, - dictWord{138, 11, 577}, - dictWord{133, 11, 681}, - dictWord{135, 10, 1111}, - dictWord{135, 11, 1286}, - dictWord{9, 0, 112}, - dictWord{8, 10, 1}, - dictWord{138, 10, 326}, - dictWord{5, 10, 488}, - dictWord{6, 10, 527}, - dictWord{7, 10, 489}, - dictWord{ - 7, - 10, - 1636, - }, - dictWord{8, 10, 121}, - dictWord{8, 10, 144}, - dictWord{8, 10, 359}, - dictWord{9, 10, 193}, - dictWord{9, 10, 241}, - dictWord{9, 10, 336}, - dictWord{ - 9, - 10, - 882, - }, - dictWord{11, 10, 266}, - dictWord{11, 10, 372}, - dictWord{11, 10, 944}, - dictWord{12, 10, 401}, - dictWord{140, 10, 641}, - dictWord{4, 11, 664}, - dictWord{133, 11, 804}, - dictWord{6, 0, 747}, - dictWord{134, 0, 1015}, - dictWord{135, 0, 1746}, - dictWord{9, 10, 31}, - dictWord{10, 10, 244}, - dictWord{ - 10, - 10, - 699, - }, - dictWord{12, 10, 149}, - dictWord{141, 10, 497}, - dictWord{133, 10, 377}, - dictWord{135, 0, 24}, - dictWord{6, 0, 1352}, - dictWord{5, 11, 32}, - dictWord{ - 145, - 10, - 101, - }, - dictWord{7, 0, 1530}, - dictWord{10, 0, 158}, - dictWord{13, 0, 13}, - dictWord{13, 0, 137}, - dictWord{13, 0, 258}, - dictWord{14, 0, 111}, - dictWord{ - 14, - 0, - 225, - }, - dictWord{14, 0, 253}, - dictWord{14, 0, 304}, - dictWord{14, 0, 339}, - dictWord{14, 0, 417}, - dictWord{146, 0, 33}, - dictWord{4, 0, 503}, - dictWord{ - 135, - 0, - 1661, - }, - dictWord{5, 0, 130}, - dictWord{6, 0, 845}, - dictWord{7, 0, 1314}, - dictWord{9, 0, 610}, - dictWord{10, 0, 718}, - dictWord{11, 0, 601}, - dictWord{11, 0, 819}, - dictWord{11, 0, 946}, - dictWord{140, 0, 536}, - dictWord{10, 0, 149}, - dictWord{11, 0, 280}, - dictWord{142, 0, 336}, - dictWord{134, 0, 1401}, - dictWord{ - 135, - 0, - 1946, - }, - dictWord{8, 0, 663}, - dictWord{144, 0, 8}, - dictWord{134, 0, 1607}, - dictWord{135, 10, 2023}, - dictWord{4, 11, 289}, - dictWord{7, 11, 629}, - dictWord{ - 7, - 11, - 1698, - }, - dictWord{7, 11, 1711}, - dictWord{140, 11, 215}, - dictWord{6, 11, 450}, - dictWord{136, 11, 109}, - dictWord{10, 0, 882}, - dictWord{10, 0, 883}, - dictWord{10, 0, 914}, - dictWord{138, 0, 928}, - dictWord{133, 10, 843}, - dictWord{136, 11, 705}, - dictWord{132, 10, 554}, - dictWord{133, 10, 536}, - dictWord{ - 5, - 0, - 417, - }, - dictWord{9, 10, 79}, - dictWord{11, 10, 625}, - dictWord{145, 10, 7}, - dictWord{7, 11, 1238}, - dictWord{142, 11, 37}, - dictWord{4, 0, 392}, - dictWord{ - 135, - 0, - 1597, - }, - dictWord{5, 0, 433}, - dictWord{9, 0, 633}, - dictWord{11, 0, 629}, - dictWord{132, 10, 424}, - dictWord{7, 10, 336}, - dictWord{136, 10, 785}, - dictWord{ - 134, - 11, - 355, - }, - dictWord{6, 0, 234}, - dictWord{7, 0, 769}, - dictWord{9, 0, 18}, - dictWord{138, 0, 358}, - dictWord{4, 10, 896}, - dictWord{134, 10, 1777}, - dictWord{ - 138, - 11, - 323, - }, - dictWord{7, 0, 140}, - dictWord{7, 0, 1950}, - dictWord{8, 0, 680}, - dictWord{11, 0, 817}, - dictWord{147, 0, 88}, - dictWord{7, 0, 1222}, - dictWord{ - 138, - 0, - 386, - }, - dictWord{139, 11, 908}, - dictWord{11, 0, 249}, - dictWord{12, 0, 313}, - dictWord{16, 0, 66}, - dictWord{145, 0, 26}, - dictWord{134, 0, 5}, - dictWord{7, 10, 750}, - dictWord{9, 10, 223}, - dictWord{11, 10, 27}, - dictWord{11, 10, 466}, - dictWord{12, 10, 624}, - dictWord{14, 10, 265}, - dictWord{146, 10, 61}, - dictWord{ - 134, - 11, - 26, - }, - dictWord{134, 0, 1216}, - dictWord{5, 0, 963}, - dictWord{134, 0, 1773}, - dictWord{4, 11, 414}, - dictWord{5, 11, 467}, - dictWord{9, 11, 654}, - dictWord{ - 10, - 11, - 451, - }, - dictWord{12, 11, 59}, - dictWord{141, 11, 375}, - dictWord{135, 11, 17}, - dictWord{4, 10, 603}, - dictWord{133, 10, 661}, - dictWord{4, 10, 11}, - dictWord{ - 6, - 10, - 128, - }, - dictWord{7, 10, 231}, - dictWord{7, 10, 1533}, - dictWord{138, 10, 725}, - dictWord{135, 11, 955}, - dictWord{7, 0, 180}, - dictWord{8, 0, 509}, - dictWord{ - 136, - 0, - 792, - }, - dictWord{132, 10, 476}, - dictWord{132, 0, 1002}, - dictWord{133, 11, 538}, - dictWord{135, 10, 1807}, - dictWord{132, 0, 931}, - dictWord{7, 0, 943}, - dictWord{11, 0, 614}, - dictWord{140, 0, 747}, - dictWord{135, 0, 1837}, - dictWord{9, 10, 20}, - dictWord{10, 10, 324}, - dictWord{10, 10, 807}, - dictWord{ - 139, - 10, - 488, - }, - dictWord{134, 0, 641}, - dictWord{6, 11, 280}, - dictWord{10, 11, 502}, - dictWord{11, 11, 344}, - dictWord{140, 11, 38}, - dictWord{5, 11, 45}, - dictWord{ - 7, - 11, - 1161, - }, - dictWord{11, 11, 448}, - dictWord{11, 11, 880}, - dictWord{13, 11, 139}, - dictWord{13, 11, 407}, - dictWord{15, 11, 16}, - dictWord{17, 11, 95}, - dictWord{ - 18, - 11, - 66, - }, - dictWord{18, 11, 88}, - dictWord{18, 11, 123}, - dictWord{149, 11, 7}, - dictWord{9, 0, 280}, - dictWord{138, 0, 134}, - dictWord{22, 0, 22}, - dictWord{23, 0, 5}, - dictWord{151, 0, 29}, - dictWord{136, 11, 777}, - dictWord{4, 0, 90}, - dictWord{5, 0, 545}, - dictWord{7, 0, 754}, - dictWord{9, 0, 186}, - dictWord{10, 0, 72}, - dictWord{ - 10, - 0, - 782, - }, - dictWord{11, 0, 577}, - dictWord{11, 0, 610}, - dictWord{11, 0, 960}, - dictWord{12, 0, 354}, - dictWord{12, 0, 362}, - dictWord{12, 0, 595}, - dictWord{ - 4, - 11, - 410, - }, - dictWord{135, 11, 521}, - dictWord{135, 11, 1778}, - dictWord{5, 10, 112}, - dictWord{6, 10, 103}, - dictWord{134, 10, 150}, - dictWord{138, 10, 356}, - dictWord{132, 0, 742}, - dictWord{7, 0, 151}, - dictWord{9, 0, 329}, - dictWord{139, 0, 254}, - dictWord{8, 0, 853}, - dictWord{8, 0, 881}, - dictWord{8, 0, 911}, - dictWord{ - 8, - 0, - 912, - }, - dictWord{10, 0, 872}, - dictWord{12, 0, 741}, - dictWord{12, 0, 742}, - dictWord{152, 0, 18}, - dictWord{4, 11, 573}, - dictWord{136, 11, 655}, - dictWord{ - 6, - 0, - 921, - }, - dictWord{134, 0, 934}, - dictWord{9, 0, 187}, - dictWord{10, 0, 36}, - dictWord{11, 0, 1016}, - dictWord{17, 0, 44}, - dictWord{146, 0, 64}, - dictWord{7, 0, 833}, - dictWord{136, 0, 517}, - dictWord{4, 0, 506}, - dictWord{5, 0, 295}, - dictWord{135, 0, 1680}, - dictWord{4, 10, 708}, - dictWord{8, 10, 15}, - dictWord{9, 10, 50}, - dictWord{ - 9, - 10, - 386, - }, - dictWord{11, 10, 18}, - dictWord{11, 10, 529}, - dictWord{140, 10, 228}, - dictWord{7, 0, 251}, - dictWord{7, 0, 1701}, - dictWord{8, 0, 436}, - dictWord{ - 4, - 10, - 563, - }, - dictWord{7, 10, 592}, - dictWord{7, 10, 637}, - dictWord{7, 10, 770}, - dictWord{8, 10, 463}, - dictWord{9, 10, 60}, - dictWord{9, 10, 335}, - dictWord{9, 10, 904}, - dictWord{10, 10, 73}, - dictWord{11, 10, 434}, - dictWord{12, 10, 585}, - dictWord{13, 10, 331}, - dictWord{18, 10, 110}, - dictWord{148, 10, 60}, - dictWord{ - 132, - 10, - 502, - }, - dictWord{136, 0, 584}, - dictWord{6, 10, 347}, - dictWord{138, 10, 161}, - dictWord{7, 0, 987}, - dictWord{9, 0, 688}, - dictWord{10, 0, 522}, - dictWord{ - 11, - 0, - 788, - }, - dictWord{12, 0, 137}, - dictWord{12, 0, 566}, - dictWord{14, 0, 9}, - dictWord{14, 0, 24}, - dictWord{14, 0, 64}, - dictWord{7, 11, 899}, - dictWord{142, 11, 325}, - dictWord{4, 0, 214}, - dictWord{5, 0, 500}, - dictWord{5, 10, 102}, - dictWord{6, 10, 284}, - dictWord{7, 10, 1079}, - dictWord{7, 10, 1423}, - dictWord{7, 10, 1702}, - dictWord{ - 8, - 10, - 470, - }, - dictWord{9, 10, 554}, - dictWord{9, 10, 723}, - dictWord{139, 10, 333}, - dictWord{7, 10, 246}, - dictWord{135, 10, 840}, - dictWord{6, 10, 10}, - dictWord{ - 8, - 10, - 571, - }, - dictWord{9, 10, 739}, - dictWord{143, 10, 91}, - dictWord{133, 10, 626}, - dictWord{146, 0, 195}, - dictWord{134, 0, 1775}, - dictWord{7, 0, 389}, - dictWord{7, 0, 700}, - dictWord{7, 0, 940}, - dictWord{8, 0, 514}, - dictWord{9, 0, 116}, - dictWord{9, 0, 535}, - dictWord{10, 0, 118}, - dictWord{11, 0, 107}, - dictWord{ - 11, - 0, - 148, - }, - dictWord{11, 0, 922}, - dictWord{12, 0, 254}, - dictWord{12, 0, 421}, - dictWord{142, 0, 238}, - dictWord{5, 10, 18}, - dictWord{6, 10, 526}, - dictWord{13, 10, 24}, - dictWord{13, 10, 110}, - dictWord{19, 10, 5}, - dictWord{147, 10, 44}, - dictWord{132, 0, 743}, - dictWord{11, 0, 292}, - dictWord{4, 10, 309}, - dictWord{5, 10, 462}, - dictWord{7, 10, 970}, - dictWord{135, 10, 1097}, - dictWord{22, 10, 30}, - dictWord{150, 10, 33}, - dictWord{139, 11, 338}, - dictWord{135, 11, 1598}, - dictWord{ - 7, - 0, - 1283, - }, - dictWord{9, 0, 227}, - dictWord{11, 0, 325}, - dictWord{11, 0, 408}, - dictWord{14, 0, 180}, - dictWord{146, 0, 47}, - dictWord{4, 0, 953}, - dictWord{6, 0, 1805}, - dictWord{6, 0, 1814}, - dictWord{6, 0, 1862}, - dictWord{140, 0, 774}, - dictWord{6, 11, 611}, - dictWord{135, 11, 1733}, - dictWord{135, 11, 1464}, - dictWord{ - 5, - 0, - 81, - }, - dictWord{7, 0, 146}, - dictWord{7, 0, 1342}, - dictWord{8, 0, 53}, - dictWord{8, 0, 561}, - dictWord{8, 0, 694}, - dictWord{8, 0, 754}, - dictWord{9, 0, 115}, - dictWord{ - 9, - 0, - 179, - }, - dictWord{9, 0, 894}, - dictWord{10, 0, 462}, - dictWord{10, 0, 813}, - dictWord{11, 0, 230}, - dictWord{11, 0, 657}, - dictWord{11, 0, 699}, - dictWord{11, 0, 748}, - dictWord{12, 0, 119}, - dictWord{12, 0, 200}, - dictWord{12, 0, 283}, - dictWord{142, 0, 273}, - dictWord{5, 0, 408}, - dictWord{6, 0, 789}, - dictWord{6, 0, 877}, - dictWord{ - 6, - 0, - 1253, - }, - dictWord{6, 0, 1413}, - dictWord{137, 0, 747}, - dictWord{134, 10, 1704}, - dictWord{135, 11, 663}, - dictWord{6, 0, 1910}, - dictWord{6, 0, 1915}, - dictWord{6, 0, 1923}, - dictWord{9, 0, 913}, - dictWord{9, 0, 928}, - dictWord{9, 0, 950}, - dictWord{9, 0, 954}, - dictWord{9, 0, 978}, - dictWord{9, 0, 993}, - dictWord{12, 0, 812}, - dictWord{12, 0, 819}, - dictWord{12, 0, 831}, - dictWord{12, 0, 833}, - dictWord{12, 0, 838}, - dictWord{12, 0, 909}, - dictWord{12, 0, 928}, - dictWord{12, 0, 931}, - dictWord{12, 0, 950}, - dictWord{15, 0, 186}, - dictWord{15, 0, 187}, - dictWord{15, 0, 195}, - dictWord{15, 0, 196}, - dictWord{15, 0, 209}, - dictWord{15, 0, 215}, - dictWord{ - 15, - 0, - 236, - }, - dictWord{15, 0, 241}, - dictWord{15, 0, 249}, - dictWord{15, 0, 253}, - dictWord{18, 0, 180}, - dictWord{18, 0, 221}, - dictWord{18, 0, 224}, - dictWord{ - 18, - 0, - 227, - }, - dictWord{18, 0, 229}, - dictWord{149, 0, 60}, - dictWord{7, 0, 1826}, - dictWord{135, 0, 1938}, - dictWord{11, 0, 490}, - dictWord{18, 0, 143}, - dictWord{ - 5, - 10, - 86, - }, - dictWord{7, 10, 743}, - dictWord{9, 10, 85}, - dictWord{10, 10, 281}, - dictWord{10, 10, 432}, - dictWord{12, 10, 251}, - dictWord{13, 10, 118}, - dictWord{ - 142, - 10, - 378, - }, - dictWord{5, 10, 524}, - dictWord{133, 10, 744}, - dictWord{141, 11, 442}, - dictWord{10, 10, 107}, - dictWord{140, 10, 436}, - dictWord{135, 11, 503}, - dictWord{134, 0, 1162}, - dictWord{132, 10, 927}, - dictWord{7, 0, 30}, - dictWord{8, 0, 86}, - dictWord{8, 0, 315}, - dictWord{8, 0, 700}, - dictWord{9, 0, 576}, - dictWord{ - 9, - 0, - 858, - }, - dictWord{10, 0, 414}, - dictWord{11, 0, 310}, - dictWord{11, 0, 888}, - dictWord{11, 0, 904}, - dictWord{12, 0, 361}, - dictWord{13, 0, 248}, - dictWord{13, 0, 371}, - dictWord{14, 0, 142}, - dictWord{12, 10, 670}, - dictWord{146, 10, 94}, - dictWord{134, 0, 721}, - dictWord{4, 11, 113}, - dictWord{5, 11, 163}, - dictWord{5, 11, 735}, - dictWord{7, 11, 1009}, - dictWord{7, 10, 1149}, - dictWord{9, 11, 9}, - dictWord{9, 10, 156}, - dictWord{9, 11, 771}, - dictWord{12, 11, 90}, - dictWord{13, 11, 138}, - dictWord{13, 11, 410}, - dictWord{143, 11, 128}, - dictWord{138, 0, 839}, - dictWord{133, 10, 778}, - dictWord{137, 0, 617}, - dictWord{133, 10, 502}, - dictWord{ - 8, - 10, - 196, - }, - dictWord{10, 10, 283}, - dictWord{139, 10, 406}, - dictWord{6, 0, 428}, - dictWord{7, 0, 524}, - dictWord{8, 0, 169}, - dictWord{8, 0, 234}, - dictWord{9, 0, 480}, - dictWord{138, 0, 646}, - dictWord{133, 10, 855}, - dictWord{134, 0, 1648}, - dictWord{7, 0, 1205}, - dictWord{138, 0, 637}, - dictWord{7, 0, 1596}, - dictWord{ - 4, - 11, - 935, - }, - dictWord{133, 11, 823}, - dictWord{5, 11, 269}, - dictWord{7, 11, 434}, - dictWord{7, 11, 891}, - dictWord{8, 11, 339}, - dictWord{9, 11, 702}, - dictWord{ - 11, - 11, - 594, - }, - dictWord{11, 11, 718}, - dictWord{145, 11, 100}, - dictWord{7, 11, 878}, - dictWord{9, 11, 485}, - dictWord{141, 11, 264}, - dictWord{4, 0, 266}, - dictWord{ - 8, - 0, - 4, - }, - dictWord{9, 0, 39}, - dictWord{10, 0, 166}, - dictWord{11, 0, 918}, - dictWord{12, 0, 635}, - dictWord{20, 0, 10}, - dictWord{22, 0, 27}, - dictWord{22, 0, 43}, - dictWord{ - 22, - 0, - 52, - }, - dictWord{134, 11, 1713}, - dictWord{7, 10, 1400}, - dictWord{9, 10, 446}, - dictWord{138, 10, 45}, - dictWord{135, 11, 900}, - dictWord{132, 0, 862}, - dictWord{134, 0, 1554}, - dictWord{135, 11, 1033}, - dictWord{19, 0, 16}, - dictWord{147, 11, 16}, - dictWord{135, 11, 1208}, - dictWord{7, 0, 157}, - dictWord{ - 136, - 0, - 279, - }, - dictWord{6, 0, 604}, - dictWord{136, 0, 391}, - dictWord{13, 10, 455}, - dictWord{15, 10, 99}, - dictWord{15, 10, 129}, - dictWord{144, 10, 68}, - dictWord{ - 135, - 10, - 172, - }, - dictWord{7, 0, 945}, - dictWord{11, 0, 713}, - dictWord{139, 0, 744}, - dictWord{4, 0, 973}, - dictWord{10, 0, 877}, - dictWord{10, 0, 937}, - dictWord{ - 10, - 0, - 938, - }, - dictWord{140, 0, 711}, - dictWord{139, 0, 1022}, - dictWord{132, 10, 568}, - dictWord{142, 11, 143}, - dictWord{4, 0, 567}, - dictWord{9, 0, 859}, - dictWord{ - 132, - 10, - 732, - }, - dictWord{7, 0, 1846}, - dictWord{136, 0, 628}, - dictWord{136, 10, 733}, - dictWord{133, 0, 762}, - dictWord{4, 10, 428}, - dictWord{135, 10, 1789}, - dictWord{10, 0, 784}, - dictWord{13, 0, 191}, - dictWord{7, 10, 2015}, - dictWord{140, 10, 665}, - dictWord{133, 0, 298}, - dictWord{7, 0, 633}, - dictWord{7, 0, 905}, - dictWord{7, 0, 909}, - dictWord{7, 0, 1538}, - dictWord{9, 0, 767}, - dictWord{140, 0, 636}, - dictWord{138, 10, 806}, - dictWord{132, 0, 795}, - dictWord{139, 0, 301}, - dictWord{135, 0, 1970}, - dictWord{5, 11, 625}, - dictWord{135, 11, 1617}, - dictWord{135, 11, 275}, - dictWord{7, 11, 37}, - dictWord{8, 11, 425}, - dictWord{ - 8, - 11, - 693, - }, - dictWord{9, 11, 720}, - dictWord{10, 11, 380}, - dictWord{10, 11, 638}, - dictWord{11, 11, 273}, - dictWord{11, 11, 307}, - dictWord{11, 11, 473}, - dictWord{ - 12, - 11, - 61, - }, - dictWord{143, 11, 43}, - dictWord{135, 11, 198}, - dictWord{134, 0, 1236}, - dictWord{7, 0, 369}, - dictWord{12, 0, 644}, - dictWord{12, 0, 645}, - dictWord{144, 0, 90}, - dictWord{19, 0, 15}, - dictWord{149, 0, 27}, - dictWord{6, 0, 71}, - dictWord{7, 0, 845}, - dictWord{8, 0, 160}, - dictWord{9, 0, 318}, - dictWord{6, 10, 1623}, - dictWord{134, 10, 1681}, - dictWord{134, 0, 1447}, - dictWord{134, 0, 1255}, - dictWord{138, 0, 735}, - dictWord{8, 0, 76}, - dictWord{132, 11, 168}, - dictWord{ - 6, - 10, - 1748, - }, - dictWord{8, 10, 715}, - dictWord{9, 10, 802}, - dictWord{10, 10, 46}, - dictWord{10, 10, 819}, - dictWord{13, 10, 308}, - dictWord{14, 10, 351}, - dictWord{14, 10, 363}, - dictWord{146, 10, 67}, - dictWord{135, 11, 91}, - dictWord{6, 0, 474}, - dictWord{4, 10, 63}, - dictWord{133, 10, 347}, - dictWord{133, 10, 749}, - dictWord{138, 0, 841}, - dictWord{133, 10, 366}, - dictWord{6, 0, 836}, - dictWord{132, 11, 225}, - dictWord{135, 0, 1622}, - dictWord{135, 10, 89}, - dictWord{ - 140, - 0, - 735, - }, - dictWord{134, 0, 1601}, - dictWord{138, 11, 145}, - dictWord{6, 0, 1390}, - dictWord{137, 0, 804}, - dictWord{142, 0, 394}, - dictWord{6, 11, 15}, - dictWord{ - 7, - 11, - 70, - }, - dictWord{10, 11, 240}, - dictWord{147, 11, 93}, - dictWord{6, 0, 96}, - dictWord{135, 0, 1426}, - dictWord{4, 0, 651}, - dictWord{133, 0, 289}, - dictWord{ - 7, - 11, - 956, - }, - dictWord{7, 10, 977}, - dictWord{7, 11, 1157}, - dictWord{7, 11, 1506}, - dictWord{7, 11, 1606}, - dictWord{7, 11, 1615}, - dictWord{7, 11, 1619}, - dictWord{ - 7, - 11, - 1736, - }, - dictWord{7, 11, 1775}, - dictWord{8, 11, 590}, - dictWord{9, 11, 324}, - dictWord{9, 11, 736}, - dictWord{9, 11, 774}, - dictWord{9, 11, 776}, - dictWord{ - 9, - 11, - 784, - }, - dictWord{10, 11, 567}, - dictWord{10, 11, 708}, - dictWord{11, 11, 518}, - dictWord{11, 11, 613}, - dictWord{11, 11, 695}, - dictWord{11, 11, 716}, - dictWord{11, 11, 739}, - dictWord{11, 11, 770}, - dictWord{11, 11, 771}, - dictWord{11, 11, 848}, - dictWord{11, 11, 857}, - dictWord{11, 11, 931}, - dictWord{ - 11, - 11, - 947, - }, - dictWord{12, 11, 326}, - dictWord{12, 11, 387}, - dictWord{12, 11, 484}, - dictWord{12, 11, 528}, - dictWord{12, 11, 552}, - dictWord{12, 11, 613}, - dictWord{ - 13, - 11, - 189, - }, - dictWord{13, 11, 256}, - dictWord{13, 11, 340}, - dictWord{13, 11, 432}, - dictWord{13, 11, 436}, - dictWord{13, 11, 440}, - dictWord{13, 11, 454}, - dictWord{14, 11, 174}, - dictWord{14, 11, 220}, - dictWord{14, 11, 284}, - dictWord{14, 11, 390}, - dictWord{145, 11, 121}, - dictWord{7, 0, 688}, - dictWord{8, 0, 35}, - dictWord{9, 0, 511}, - dictWord{10, 0, 767}, - dictWord{147, 0, 118}, - dictWord{134, 0, 667}, - dictWord{4, 0, 513}, - dictWord{5, 10, 824}, - dictWord{133, 10, 941}, - dictWord{7, 10, 440}, - dictWord{8, 10, 230}, - dictWord{139, 10, 106}, - dictWord{134, 0, 2034}, - dictWord{135, 11, 1399}, - dictWord{143, 11, 66}, - dictWord{ - 135, - 11, - 1529, - }, - dictWord{4, 11, 145}, - dictWord{6, 11, 176}, - dictWord{7, 11, 395}, - dictWord{9, 11, 562}, - dictWord{144, 11, 28}, - dictWord{132, 11, 501}, - dictWord{132, 0, 704}, - dictWord{134, 0, 1524}, - dictWord{7, 0, 1078}, - dictWord{134, 11, 464}, - dictWord{6, 11, 509}, - dictWord{10, 11, 82}, - dictWord{20, 11, 91}, - dictWord{151, 11, 13}, - dictWord{4, 0, 720}, - dictWord{133, 0, 306}, - dictWord{133, 0, 431}, - dictWord{7, 0, 1196}, - dictWord{4, 10, 914}, - dictWord{5, 10, 800}, - dictWord{133, 10, 852}, - dictWord{135, 11, 1189}, - dictWord{10, 0, 54}, - dictWord{141, 10, 115}, - dictWord{7, 10, 564}, - dictWord{142, 10, 168}, - dictWord{ - 5, - 0, - 464, - }, - dictWord{6, 0, 236}, - dictWord{7, 0, 696}, - dictWord{7, 0, 914}, - dictWord{7, 0, 1108}, - dictWord{7, 0, 1448}, - dictWord{9, 0, 15}, - dictWord{9, 0, 564}, - dictWord{ - 10, - 0, - 14, - }, - dictWord{12, 0, 565}, - dictWord{13, 0, 449}, - dictWord{14, 0, 53}, - dictWord{15, 0, 13}, - dictWord{16, 0, 64}, - dictWord{17, 0, 41}, - dictWord{4, 10, 918}, - dictWord{133, 10, 876}, - dictWord{6, 0, 1418}, - dictWord{134, 10, 1764}, - dictWord{4, 10, 92}, - dictWord{133, 10, 274}, - dictWord{134, 0, 907}, - dictWord{ - 4, - 11, - 114, - }, - dictWord{8, 10, 501}, - dictWord{9, 11, 492}, - dictWord{13, 11, 462}, - dictWord{142, 11, 215}, - dictWord{4, 11, 77}, - dictWord{5, 11, 361}, - dictWord{ - 6, - 11, - 139, - }, - dictWord{6, 11, 401}, - dictWord{6, 11, 404}, - dictWord{7, 11, 413}, - dictWord{7, 11, 715}, - dictWord{7, 11, 1716}, - dictWord{11, 11, 279}, - dictWord{ - 12, - 11, - 179, - }, - dictWord{12, 11, 258}, - dictWord{13, 11, 244}, - dictWord{142, 11, 358}, - dictWord{6, 0, 1767}, - dictWord{12, 0, 194}, - dictWord{145, 0, 107}, - dictWord{ - 134, - 11, - 1717, - }, - dictWord{5, 10, 743}, - dictWord{142, 11, 329}, - dictWord{4, 10, 49}, - dictWord{7, 10, 280}, - dictWord{135, 10, 1633}, - dictWord{5, 0, 840}, - dictWord{7, 11, 1061}, - dictWord{8, 11, 82}, - dictWord{11, 11, 250}, - dictWord{12, 11, 420}, - dictWord{141, 11, 184}, - dictWord{135, 11, 724}, - dictWord{ - 134, - 0, - 900, - }, - dictWord{136, 10, 47}, - dictWord{134, 0, 1436}, - dictWord{144, 11, 0}, - dictWord{6, 0, 675}, - dictWord{7, 0, 1008}, - dictWord{7, 0, 1560}, - dictWord{ - 9, - 0, - 642, - }, - dictWord{11, 0, 236}, - dictWord{14, 0, 193}, - dictWord{5, 10, 272}, - dictWord{5, 10, 908}, - dictWord{5, 10, 942}, - dictWord{8, 10, 197}, - dictWord{9, 10, 47}, - dictWord{11, 10, 538}, - dictWord{139, 10, 742}, - dictWord{4, 0, 68}, - dictWord{5, 0, 628}, - dictWord{5, 0, 634}, - dictWord{6, 0, 386}, - dictWord{7, 0, 794}, - dictWord{ - 8, - 0, - 273, - }, - dictWord{9, 0, 563}, - dictWord{10, 0, 105}, - dictWord{10, 0, 171}, - dictWord{11, 0, 94}, - dictWord{139, 0, 354}, - dictWord{135, 10, 1911}, - dictWord{ - 137, - 10, - 891, - }, - dictWord{4, 0, 95}, - dictWord{6, 0, 1297}, - dictWord{6, 0, 1604}, - dictWord{7, 0, 416}, - dictWord{139, 0, 830}, - dictWord{6, 11, 513}, - dictWord{ - 135, - 11, - 1052, - }, - dictWord{7, 0, 731}, - dictWord{13, 0, 20}, - dictWord{143, 0, 11}, - dictWord{137, 11, 899}, - dictWord{10, 0, 850}, - dictWord{140, 0, 697}, - dictWord{ - 4, - 0, - 662, - }, - dictWord{7, 11, 1417}, - dictWord{12, 11, 382}, - dictWord{17, 11, 48}, - dictWord{152, 11, 12}, - dictWord{133, 0, 736}, - dictWord{132, 0, 861}, - dictWord{ - 4, - 10, - 407, - }, - dictWord{132, 10, 560}, - dictWord{141, 10, 490}, - dictWord{6, 11, 545}, - dictWord{7, 11, 565}, - dictWord{7, 11, 1669}, - dictWord{10, 11, 114}, - dictWord{11, 11, 642}, - dictWord{140, 11, 618}, - dictWord{6, 0, 871}, - dictWord{134, 0, 1000}, - dictWord{5, 0, 864}, - dictWord{10, 0, 648}, - dictWord{11, 0, 671}, - dictWord{15, 0, 46}, - dictWord{133, 11, 5}, - dictWord{133, 0, 928}, - dictWord{11, 0, 90}, - dictWord{13, 0, 7}, - dictWord{4, 10, 475}, - dictWord{11, 10, 35}, - dictWord{ - 13, - 10, - 71, - }, - dictWord{13, 10, 177}, - dictWord{142, 10, 422}, - dictWord{136, 0, 332}, - dictWord{135, 11, 192}, - dictWord{134, 0, 1055}, - dictWord{136, 11, 763}, - dictWord{11, 0, 986}, - dictWord{140, 0, 682}, - dictWord{7, 0, 76}, - dictWord{8, 0, 44}, - dictWord{9, 0, 884}, - dictWord{10, 0, 580}, - dictWord{11, 0, 399}, - dictWord{ - 11, - 0, - 894, - }, - dictWord{143, 0, 122}, - dictWord{135, 11, 1237}, - dictWord{135, 10, 636}, - dictWord{11, 0, 300}, - dictWord{6, 10, 222}, - dictWord{7, 10, 1620}, - dictWord{ - 8, - 10, - 409, - }, - dictWord{137, 10, 693}, - dictWord{4, 11, 87}, - dictWord{5, 11, 250}, - dictWord{10, 11, 601}, - dictWord{13, 11, 298}, - dictWord{13, 11, 353}, - dictWord{141, 11, 376}, - dictWord{5, 0, 518}, - dictWord{10, 0, 340}, - dictWord{11, 0, 175}, - dictWord{149, 0, 16}, - dictWord{140, 0, 771}, - dictWord{6, 0, 1108}, - dictWord{137, 0, 831}, - dictWord{132, 0, 836}, - dictWord{135, 0, 1852}, - dictWord{4, 0, 957}, - dictWord{6, 0, 1804}, - dictWord{8, 0, 842}, - dictWord{8, 0, 843}, - dictWord{ - 8, - 0, - 851, - }, - dictWord{8, 0, 855}, - dictWord{140, 0, 767}, - dictWord{135, 11, 814}, - dictWord{4, 11, 57}, - dictWord{7, 11, 1195}, - dictWord{7, 11, 1438}, - dictWord{ - 7, - 11, - 1548, - }, - dictWord{7, 11, 1835}, - dictWord{7, 11, 1904}, - dictWord{9, 11, 757}, - dictWord{10, 11, 604}, - dictWord{139, 11, 519}, - dictWord{133, 10, 882}, - dictWord{138, 0, 246}, - dictWord{4, 0, 934}, - dictWord{5, 0, 202}, - dictWord{8, 0, 610}, - dictWord{7, 11, 1897}, - dictWord{12, 11, 290}, - dictWord{13, 11, 80}, - dictWord{13, 11, 437}, - dictWord{145, 11, 74}, - dictWord{8, 0, 96}, - dictWord{9, 0, 36}, - dictWord{10, 0, 607}, - dictWord{10, 0, 804}, - dictWord{10, 0, 832}, - dictWord{ - 11, - 0, - 423, - }, - dictWord{11, 0, 442}, - dictWord{12, 0, 309}, - dictWord{14, 0, 199}, - dictWord{15, 0, 90}, - dictWord{145, 0, 110}, - dictWord{132, 10, 426}, - dictWord{ - 7, - 0, - 654, - }, - dictWord{8, 0, 240}, - dictWord{6, 10, 58}, - dictWord{7, 10, 745}, - dictWord{7, 10, 1969}, - dictWord{8, 10, 675}, - dictWord{9, 10, 479}, - dictWord{9, 10, 731}, - dictWord{10, 10, 330}, - dictWord{10, 10, 593}, - dictWord{10, 10, 817}, - dictWord{11, 10, 32}, - dictWord{11, 10, 133}, - dictWord{11, 10, 221}, - dictWord{ - 145, - 10, - 68, - }, - dictWord{9, 0, 13}, - dictWord{9, 0, 398}, - dictWord{9, 0, 727}, - dictWord{10, 0, 75}, - dictWord{10, 0, 184}, - dictWord{10, 0, 230}, - dictWord{10, 0, 564}, - dictWord{ - 10, - 0, - 569, - }, - dictWord{11, 0, 973}, - dictWord{12, 0, 70}, - dictWord{12, 0, 189}, - dictWord{13, 0, 57}, - dictWord{141, 0, 257}, - dictWord{4, 11, 209}, - dictWord{ - 135, - 11, - 902, - }, - dictWord{7, 0, 391}, - dictWord{137, 10, 538}, - dictWord{134, 0, 403}, - dictWord{6, 11, 303}, - dictWord{7, 11, 335}, - dictWord{7, 11, 1437}, - dictWord{ - 7, - 11, - 1668, - }, - dictWord{8, 11, 553}, - dictWord{8, 11, 652}, - dictWord{8, 11, 656}, - dictWord{9, 11, 558}, - dictWord{11, 11, 743}, - dictWord{149, 11, 18}, - dictWord{ - 132, - 11, - 559, - }, - dictWord{11, 0, 75}, - dictWord{142, 0, 267}, - dictWord{6, 0, 815}, - dictWord{141, 11, 2}, - dictWord{141, 0, 366}, - dictWord{137, 0, 631}, - dictWord{ - 133, - 11, - 1017, - }, - dictWord{5, 0, 345}, - dictWord{135, 0, 1016}, - dictWord{133, 11, 709}, - dictWord{134, 11, 1745}, - dictWord{133, 10, 566}, - dictWord{7, 0, 952}, - dictWord{6, 10, 48}, - dictWord{9, 10, 139}, - dictWord{10, 10, 399}, - dictWord{11, 10, 469}, - dictWord{12, 10, 634}, - dictWord{141, 10, 223}, - dictWord{ - 133, - 0, - 673, - }, - dictWord{9, 0, 850}, - dictWord{7, 11, 8}, - dictWord{136, 11, 206}, - dictWord{6, 0, 662}, - dictWord{149, 0, 35}, - dictWord{4, 0, 287}, - dictWord{133, 0, 1018}, - dictWord{6, 10, 114}, - dictWord{7, 10, 1224}, - dictWord{7, 10, 1556}, - dictWord{136, 10, 3}, - dictWord{8, 10, 576}, - dictWord{137, 10, 267}, - dictWord{4, 0, 884}, - dictWord{5, 0, 34}, - dictWord{10, 0, 724}, - dictWord{12, 0, 444}, - dictWord{13, 0, 354}, - dictWord{18, 0, 32}, - dictWord{23, 0, 24}, - dictWord{23, 0, 31}, - dictWord{ - 152, - 0, - 5, - }, - dictWord{133, 10, 933}, - dictWord{132, 11, 776}, - dictWord{138, 0, 151}, - dictWord{136, 0, 427}, - dictWord{134, 0, 382}, - dictWord{132, 0, 329}, - dictWord{ - 9, - 0, - 846, - }, - dictWord{10, 0, 827}, - dictWord{138, 11, 33}, - dictWord{9, 0, 279}, - dictWord{10, 0, 407}, - dictWord{14, 0, 84}, - dictWord{22, 0, 18}, - dictWord{ - 135, - 11, - 1297, - }, - dictWord{136, 11, 406}, - dictWord{132, 0, 906}, - dictWord{136, 0, 366}, - dictWord{134, 0, 843}, - dictWord{134, 0, 1443}, - dictWord{135, 0, 1372}, - dictWord{138, 0, 992}, - dictWord{4, 0, 123}, - dictWord{5, 0, 605}, - dictWord{7, 0, 1509}, - dictWord{136, 0, 36}, - dictWord{132, 0, 649}, - dictWord{8, 11, 175}, - dictWord{10, 11, 168}, - dictWord{138, 11, 573}, - dictWord{133, 0, 767}, - dictWord{134, 0, 1018}, - dictWord{135, 11, 1305}, - dictWord{12, 10, 30}, - dictWord{ - 13, - 10, - 148, - }, - dictWord{14, 10, 87}, - dictWord{14, 10, 182}, - dictWord{16, 10, 42}, - dictWord{148, 10, 70}, - dictWord{134, 11, 607}, - dictWord{4, 0, 273}, - dictWord{ - 5, - 0, - 658, - }, - dictWord{133, 0, 995}, - dictWord{6, 0, 72}, - dictWord{139, 11, 174}, - dictWord{10, 0, 483}, - dictWord{12, 0, 368}, - dictWord{7, 10, 56}, - dictWord{ - 7, - 10, - 1989, - }, - dictWord{8, 10, 337}, - dictWord{8, 10, 738}, - dictWord{9, 10, 600}, - dictWord{13, 10, 447}, - dictWord{142, 10, 92}, - dictWord{5, 11, 784}, - dictWord{ - 138, - 10, - 666, - }, - dictWord{135, 0, 1345}, - dictWord{139, 11, 882}, - dictWord{134, 0, 1293}, - dictWord{133, 0, 589}, - dictWord{134, 0, 1988}, - dictWord{5, 0, 117}, - dictWord{6, 0, 514}, - dictWord{6, 0, 541}, - dictWord{7, 0, 1164}, - dictWord{7, 0, 1436}, - dictWord{8, 0, 220}, - dictWord{8, 0, 648}, - dictWord{10, 0, 688}, - dictWord{ - 139, - 0, - 560, - }, - dictWord{136, 0, 379}, - dictWord{5, 0, 686}, - dictWord{7, 10, 866}, - dictWord{135, 10, 1163}, - dictWord{132, 10, 328}, - dictWord{9, 11, 14}, - dictWord{ - 9, - 11, - 441, - }, - dictWord{10, 11, 306}, - dictWord{139, 11, 9}, - dictWord{4, 10, 101}, - dictWord{135, 10, 1171}, - dictWord{5, 10, 833}, - dictWord{136, 10, 744}, - dictWord{5, 11, 161}, - dictWord{7, 11, 839}, - dictWord{135, 11, 887}, - dictWord{7, 0, 196}, - dictWord{10, 0, 765}, - dictWord{11, 0, 347}, - dictWord{11, 0, 552}, - dictWord{11, 0, 790}, - dictWord{12, 0, 263}, - dictWord{13, 0, 246}, - dictWord{13, 0, 270}, - dictWord{13, 0, 395}, - dictWord{14, 0, 176}, - dictWord{14, 0, 190}, - dictWord{ - 14, - 0, - 398, - }, - dictWord{14, 0, 412}, - dictWord{15, 0, 32}, - dictWord{15, 0, 63}, - dictWord{16, 0, 88}, - dictWord{147, 0, 105}, - dictWord{6, 10, 9}, - dictWord{6, 10, 397}, - dictWord{7, 10, 53}, - dictWord{7, 10, 1742}, - dictWord{10, 10, 632}, - dictWord{11, 10, 828}, - dictWord{140, 10, 146}, - dictWord{5, 0, 381}, - dictWord{135, 0, 1792}, - dictWord{134, 0, 1452}, - dictWord{135, 11, 429}, - dictWord{8, 0, 367}, - dictWord{10, 0, 760}, - dictWord{14, 0, 79}, - dictWord{20, 0, 17}, - dictWord{152, 0, 0}, - dictWord{7, 0, 616}, - dictWord{138, 0, 413}, - dictWord{11, 10, 417}, - dictWord{12, 10, 223}, - dictWord{140, 10, 265}, - dictWord{7, 11, 1611}, - dictWord{13, 11, 14}, - dictWord{15, 11, 44}, - dictWord{19, 11, 13}, - dictWord{148, 11, 76}, - dictWord{135, 0, 1229}, - dictWord{6, 0, 120}, - dictWord{7, 0, 1188}, - dictWord{7, 0, 1710}, - dictWord{8, 0, 286}, - dictWord{9, 0, 667}, - dictWord{11, 0, 592}, - dictWord{139, 0, 730}, - dictWord{135, 11, 1814}, - dictWord{135, 0, 1146}, - dictWord{4, 10, 186}, - dictWord{5, 10, 157}, - dictWord{8, 10, 168}, - dictWord{138, 10, 6}, - dictWord{4, 0, 352}, - dictWord{135, 0, 687}, - dictWord{4, 0, 192}, - dictWord{5, 0, 49}, - dictWord{ - 6, - 0, - 200, - }, - dictWord{6, 0, 293}, - dictWord{6, 0, 1696}, - dictWord{135, 0, 1151}, - dictWord{133, 10, 875}, - dictWord{5, 10, 773}, - dictWord{5, 10, 991}, - dictWord{ - 6, - 10, - 1635, - }, - dictWord{134, 10, 1788}, - dictWord{7, 10, 111}, - dictWord{136, 10, 581}, - dictWord{6, 0, 935}, - dictWord{134, 0, 1151}, - dictWord{134, 0, 1050}, - dictWord{132, 0, 650}, - dictWord{132, 0, 147}, - dictWord{11, 0, 194}, - dictWord{12, 0, 62}, - dictWord{12, 0, 88}, - dictWord{11, 11, 194}, - dictWord{12, 11, 62}, - dictWord{140, 11, 88}, - dictWord{6, 0, 339}, - dictWord{135, 0, 923}, - dictWord{134, 10, 1747}, - dictWord{7, 11, 643}, - dictWord{136, 11, 236}, - dictWord{ - 133, - 0, - 934, - }, - dictWord{7, 10, 1364}, - dictWord{7, 10, 1907}, - dictWord{141, 10, 158}, - dictWord{132, 10, 659}, - dictWord{4, 10, 404}, - dictWord{135, 10, 675}, - dictWord{7, 11, 581}, - dictWord{9, 11, 644}, - dictWord{137, 11, 699}, - dictWord{13, 0, 211}, - dictWord{14, 0, 133}, - dictWord{14, 0, 204}, - dictWord{15, 0, 64}, - dictWord{ - 15, - 0, - 69, - }, - dictWord{15, 0, 114}, - dictWord{16, 0, 10}, - dictWord{19, 0, 23}, - dictWord{19, 0, 35}, - dictWord{19, 0, 39}, - dictWord{19, 0, 51}, - dictWord{19, 0, 71}, - dictWord{19, 0, 75}, - dictWord{152, 0, 15}, - dictWord{133, 10, 391}, - dictWord{5, 11, 54}, - dictWord{135, 11, 1513}, - dictWord{7, 0, 222}, - dictWord{8, 0, 341}, - dictWord{ - 5, - 10, - 540, - }, - dictWord{134, 10, 1697}, - dictWord{134, 10, 78}, - dictWord{132, 11, 744}, - dictWord{136, 0, 293}, - dictWord{137, 11, 701}, - dictWord{ - 7, - 11, - 930, - }, - dictWord{10, 11, 402}, - dictWord{10, 11, 476}, - dictWord{13, 11, 452}, - dictWord{18, 11, 55}, - dictWord{147, 11, 104}, - dictWord{132, 0, 637}, - dictWord{133, 10, 460}, - dictWord{8, 11, 50}, - dictWord{137, 11, 624}, - dictWord{132, 11, 572}, - dictWord{134, 0, 1159}, - dictWord{4, 10, 199}, - dictWord{ - 139, - 10, - 34, - }, - dictWord{134, 0, 847}, - dictWord{134, 10, 388}, - dictWord{6, 11, 43}, - dictWord{7, 11, 38}, - dictWord{8, 11, 248}, - dictWord{9, 11, 504}, - dictWord{ - 138, - 11, - 513, - }, - dictWord{9, 0, 683}, - dictWord{4, 10, 511}, - dictWord{6, 10, 608}, - dictWord{9, 10, 333}, - dictWord{10, 10, 602}, - dictWord{11, 10, 441}, - dictWord{ - 11, - 10, - 723, - }, - dictWord{11, 10, 976}, - dictWord{140, 10, 357}, - dictWord{9, 0, 867}, - dictWord{138, 0, 837}, - dictWord{6, 0, 944}, - dictWord{135, 11, 326}, - dictWord{ - 135, - 0, - 1809, - }, - dictWord{5, 10, 938}, - dictWord{7, 11, 783}, - dictWord{136, 10, 707}, - dictWord{133, 11, 766}, - dictWord{133, 11, 363}, - dictWord{6, 0, 170}, - dictWord{7, 0, 1080}, - dictWord{8, 0, 395}, - dictWord{8, 0, 487}, - dictWord{141, 0, 147}, - dictWord{6, 11, 258}, - dictWord{140, 11, 409}, - dictWord{4, 0, 535}, - dictWord{ - 8, - 0, - 618, - }, - dictWord{5, 11, 249}, - dictWord{148, 11, 82}, - dictWord{6, 0, 1379}, - dictWord{149, 11, 15}, - dictWord{135, 0, 1625}, - dictWord{150, 0, 23}, - dictWord{ - 5, - 11, - 393, - }, - dictWord{6, 11, 378}, - dictWord{7, 11, 1981}, - dictWord{9, 11, 32}, - dictWord{9, 11, 591}, - dictWord{10, 11, 685}, - dictWord{10, 11, 741}, - dictWord{ - 142, - 11, - 382, - }, - dictWord{133, 11, 788}, - dictWord{7, 11, 1968}, - dictWord{10, 11, 19}, - dictWord{139, 11, 911}, - dictWord{7, 11, 1401}, - dictWord{ - 135, - 11, - 1476, - }, - dictWord{4, 11, 61}, - dictWord{5, 11, 58}, - dictWord{5, 11, 171}, - dictWord{5, 11, 635}, - dictWord{5, 11, 683}, - dictWord{5, 11, 700}, - dictWord{6, 11, 291}, - dictWord{6, 11, 566}, - dictWord{7, 11, 1650}, - dictWord{11, 11, 523}, - dictWord{12, 11, 273}, - dictWord{12, 11, 303}, - dictWord{15, 11, 39}, - dictWord{ - 143, - 11, - 111, - }, - dictWord{6, 10, 469}, - dictWord{7, 10, 1709}, - dictWord{138, 10, 515}, - dictWord{4, 0, 778}, - dictWord{134, 11, 589}, - dictWord{132, 0, 46}, - dictWord{ - 5, - 0, - 811, - }, - dictWord{6, 0, 1679}, - dictWord{6, 0, 1714}, - dictWord{135, 0, 2032}, - dictWord{7, 0, 1458}, - dictWord{9, 0, 407}, - dictWord{11, 0, 15}, - dictWord{12, 0, 651}, - dictWord{149, 0, 37}, - dictWord{7, 0, 938}, - dictWord{132, 10, 500}, - dictWord{6, 0, 34}, - dictWord{7, 0, 69}, - dictWord{7, 0, 1089}, - dictWord{7, 0, 1281}, - dictWord{ - 8, - 0, - 708, - }, - dictWord{8, 0, 721}, - dictWord{9, 0, 363}, - dictWord{148, 0, 98}, - dictWord{10, 11, 231}, - dictWord{147, 11, 124}, - dictWord{7, 11, 726}, - dictWord{ - 152, - 11, - 9, - }, - dictWord{5, 10, 68}, - dictWord{134, 10, 383}, - dictWord{136, 11, 583}, - dictWord{4, 11, 917}, - dictWord{133, 11, 1005}, - dictWord{11, 10, 216}, - dictWord{139, 10, 340}, - dictWord{135, 11, 1675}, - dictWord{8, 0, 441}, - dictWord{10, 0, 314}, - dictWord{143, 0, 3}, - dictWord{132, 11, 919}, - dictWord{4, 10, 337}, - dictWord{6, 10, 353}, - dictWord{7, 10, 1934}, - dictWord{8, 10, 488}, - dictWord{137, 10, 429}, - dictWord{7, 0, 889}, - dictWord{7, 10, 1795}, - dictWord{8, 10, 259}, - dictWord{9, 10, 135}, - dictWord{9, 10, 177}, - dictWord{9, 10, 860}, - dictWord{10, 10, 825}, - dictWord{11, 10, 115}, - dictWord{11, 10, 370}, - dictWord{11, 10, 405}, - dictWord{11, 10, 604}, - dictWord{12, 10, 10}, - dictWord{12, 10, 667}, - dictWord{12, 10, 669}, - dictWord{13, 10, 76}, - dictWord{14, 10, 310}, - dictWord{ - 15, - 10, - 76, - }, - dictWord{15, 10, 147}, - dictWord{148, 10, 23}, - dictWord{4, 10, 15}, - dictWord{4, 11, 255}, - dictWord{5, 10, 22}, - dictWord{5, 11, 302}, - dictWord{6, 11, 132}, - dictWord{6, 10, 244}, - dictWord{7, 10, 40}, - dictWord{7, 11, 128}, - dictWord{7, 10, 200}, - dictWord{7, 11, 283}, - dictWord{7, 10, 906}, - dictWord{7, 10, 1199}, - dictWord{ - 7, - 11, - 1299, - }, - dictWord{9, 10, 616}, - dictWord{10, 11, 52}, - dictWord{10, 11, 514}, - dictWord{10, 10, 716}, - dictWord{11, 10, 635}, - dictWord{11, 10, 801}, - dictWord{11, 11, 925}, - dictWord{12, 10, 458}, - dictWord{13, 11, 92}, - dictWord{142, 11, 309}, - dictWord{132, 0, 462}, - dictWord{137, 11, 173}, - dictWord{ - 135, - 10, - 1735, - }, - dictWord{8, 0, 525}, - dictWord{5, 10, 598}, - dictWord{7, 10, 791}, - dictWord{8, 10, 108}, - dictWord{137, 10, 123}, - dictWord{5, 0, 73}, - dictWord{6, 0, 23}, - dictWord{134, 0, 338}, - dictWord{132, 0, 676}, - dictWord{132, 10, 683}, - dictWord{7, 0, 725}, - dictWord{8, 0, 498}, - dictWord{139, 0, 268}, - dictWord{12, 0, 21}, - dictWord{151, 0, 7}, - dictWord{135, 0, 773}, - dictWord{4, 10, 155}, - dictWord{135, 10, 1689}, - dictWord{4, 0, 164}, - dictWord{5, 0, 730}, - dictWord{5, 10, 151}, - dictWord{ - 5, - 10, - 741, - }, - dictWord{6, 11, 210}, - dictWord{7, 10, 498}, - dictWord{7, 10, 870}, - dictWord{7, 10, 1542}, - dictWord{12, 10, 213}, - dictWord{14, 10, 36}, - dictWord{ - 14, - 10, - 391, - }, - dictWord{17, 10, 111}, - dictWord{18, 10, 6}, - dictWord{18, 10, 46}, - dictWord{18, 10, 151}, - dictWord{19, 10, 36}, - dictWord{20, 10, 32}, - dictWord{ - 20, - 10, - 56, - }, - dictWord{20, 10, 69}, - dictWord{20, 10, 102}, - dictWord{21, 10, 4}, - dictWord{22, 10, 8}, - dictWord{22, 10, 10}, - dictWord{22, 10, 14}, - dictWord{ - 150, - 10, - 31, - }, - dictWord{4, 10, 624}, - dictWord{135, 10, 1752}, - dictWord{4, 0, 583}, - dictWord{9, 0, 936}, - dictWord{15, 0, 214}, - dictWord{18, 0, 199}, - dictWord{24, 0, 26}, - dictWord{134, 11, 588}, - dictWord{7, 0, 1462}, - dictWord{11, 0, 659}, - dictWord{4, 11, 284}, - dictWord{134, 11, 223}, - dictWord{133, 0, 220}, - dictWord{ - 139, - 0, - 803, - }, - dictWord{132, 0, 544}, - dictWord{4, 10, 492}, - dictWord{133, 10, 451}, - dictWord{16, 0, 98}, - dictWord{148, 0, 119}, - dictWord{4, 11, 218}, - dictWord{ - 7, - 11, - 526, - }, - dictWord{143, 11, 137}, - dictWord{135, 10, 835}, - dictWord{4, 11, 270}, - dictWord{5, 11, 192}, - dictWord{6, 11, 332}, - dictWord{7, 11, 1322}, - dictWord{ - 13, - 11, - 9, - }, - dictWord{13, 10, 70}, - dictWord{14, 11, 104}, - dictWord{142, 11, 311}, - dictWord{132, 10, 539}, - dictWord{140, 11, 661}, - dictWord{5, 0, 176}, - dictWord{ - 6, - 0, - 437, - }, - dictWord{6, 0, 564}, - dictWord{11, 0, 181}, - dictWord{141, 0, 183}, - dictWord{135, 0, 1192}, - dictWord{6, 10, 113}, - dictWord{135, 10, 436}, - dictWord{136, 10, 718}, - dictWord{135, 10, 520}, - dictWord{135, 0, 1878}, - dictWord{140, 11, 196}, - dictWord{7, 11, 379}, - dictWord{8, 11, 481}, - dictWord{ - 137, - 11, - 377, - }, - dictWord{5, 11, 1003}, - dictWord{6, 11, 149}, - dictWord{137, 11, 746}, - dictWord{8, 11, 262}, - dictWord{9, 11, 627}, - dictWord{10, 11, 18}, - dictWord{ - 11, - 11, - 214, - }, - dictWord{11, 11, 404}, - dictWord{11, 11, 457}, - dictWord{11, 11, 780}, - dictWord{11, 11, 849}, - dictWord{11, 11, 913}, - dictWord{13, 11, 330}, - dictWord{13, 11, 401}, - dictWord{142, 11, 200}, - dictWord{149, 0, 26}, - dictWord{136, 11, 304}, - dictWord{132, 11, 142}, - dictWord{135, 0, 944}, - dictWord{ - 4, - 0, - 790, - }, - dictWord{5, 0, 273}, - dictWord{134, 0, 394}, - dictWord{134, 0, 855}, - dictWord{4, 0, 135}, - dictWord{6, 0, 127}, - dictWord{7, 0, 1185}, - dictWord{7, 0, 1511}, - dictWord{8, 0, 613}, - dictWord{11, 0, 5}, - dictWord{12, 0, 336}, - dictWord{12, 0, 495}, - dictWord{12, 0, 586}, - dictWord{12, 0, 660}, - dictWord{12, 0, 668}, - dictWord{ - 14, - 0, - 385, - }, - dictWord{15, 0, 118}, - dictWord{17, 0, 20}, - dictWord{146, 0, 98}, - dictWord{6, 0, 230}, - dictWord{9, 0, 752}, - dictWord{18, 0, 109}, - dictWord{12, 10, 610}, - dictWord{13, 10, 431}, - dictWord{144, 10, 59}, - dictWord{7, 0, 1954}, - dictWord{135, 11, 925}, - dictWord{4, 11, 471}, - dictWord{5, 11, 51}, - dictWord{6, 11, 602}, - dictWord{8, 11, 484}, - dictWord{10, 11, 195}, - dictWord{140, 11, 159}, - dictWord{132, 10, 307}, - dictWord{136, 11, 688}, - dictWord{132, 11, 697}, - dictWord{ - 7, - 11, - 812, - }, - dictWord{7, 11, 1261}, - dictWord{7, 11, 1360}, - dictWord{9, 11, 632}, - dictWord{140, 11, 352}, - dictWord{5, 0, 162}, - dictWord{8, 0, 68}, - dictWord{ - 133, - 10, - 964, - }, - dictWord{4, 0, 654}, - dictWord{136, 11, 212}, - dictWord{4, 0, 156}, - dictWord{7, 0, 998}, - dictWord{7, 0, 1045}, - dictWord{7, 0, 1860}, - dictWord{9, 0, 48}, - dictWord{9, 0, 692}, - dictWord{11, 0, 419}, - dictWord{139, 0, 602}, - dictWord{133, 11, 221}, - dictWord{4, 11, 373}, - dictWord{5, 11, 283}, - dictWord{6, 11, 480}, - dictWord{135, 11, 609}, - dictWord{142, 11, 216}, - dictWord{132, 0, 240}, - dictWord{6, 11, 192}, - dictWord{9, 11, 793}, - dictWord{145, 11, 55}, - dictWord{ - 4, - 10, - 75, - }, - dictWord{5, 10, 180}, - dictWord{6, 10, 500}, - dictWord{7, 10, 58}, - dictWord{7, 10, 710}, - dictWord{138, 10, 645}, - dictWord{4, 11, 132}, - dictWord{5, 11, 69}, - dictWord{5, 10, 649}, - dictWord{135, 11, 1242}, - dictWord{6, 10, 276}, - dictWord{7, 10, 282}, - dictWord{7, 10, 879}, - dictWord{7, 10, 924}, - dictWord{8, 10, 459}, - dictWord{9, 10, 599}, - dictWord{9, 10, 754}, - dictWord{11, 10, 574}, - dictWord{12, 10, 128}, - dictWord{12, 10, 494}, - dictWord{13, 10, 52}, - dictWord{13, 10, 301}, - dictWord{15, 10, 30}, - dictWord{143, 10, 132}, - dictWord{132, 10, 200}, - dictWord{4, 11, 111}, - dictWord{135, 11, 302}, - dictWord{9, 0, 197}, - dictWord{ - 10, - 0, - 300, - }, - dictWord{12, 0, 473}, - dictWord{13, 0, 90}, - dictWord{141, 0, 405}, - dictWord{132, 11, 767}, - dictWord{6, 11, 42}, - dictWord{7, 11, 1416}, - dictWord{ - 7, - 11, - 1590, - }, - dictWord{7, 11, 2005}, - dictWord{8, 11, 131}, - dictWord{8, 11, 466}, - dictWord{9, 11, 672}, - dictWord{13, 11, 252}, - dictWord{148, 11, 103}, - dictWord{ - 8, - 0, - 958, - }, - dictWord{8, 0, 999}, - dictWord{10, 0, 963}, - dictWord{138, 0, 1001}, - dictWord{135, 10, 1621}, - dictWord{135, 0, 858}, - dictWord{4, 0, 606}, - dictWord{ - 137, - 11, - 444, - }, - dictWord{6, 11, 44}, - dictWord{136, 11, 368}, - dictWord{139, 11, 172}, - dictWord{4, 11, 570}, - dictWord{133, 11, 120}, - dictWord{139, 11, 624}, - dictWord{7, 0, 1978}, - dictWord{8, 0, 676}, - dictWord{6, 10, 225}, - dictWord{137, 10, 211}, - dictWord{7, 0, 972}, - dictWord{11, 0, 102}, - dictWord{136, 10, 687}, - dictWord{6, 11, 227}, - dictWord{135, 11, 1589}, - dictWord{8, 10, 58}, - dictWord{9, 10, 724}, - dictWord{11, 10, 809}, - dictWord{13, 10, 113}, - dictWord{ - 145, - 10, - 72, - }, - dictWord{4, 0, 361}, - dictWord{133, 0, 315}, - dictWord{132, 0, 461}, - dictWord{6, 10, 345}, - dictWord{135, 10, 1247}, - dictWord{132, 0, 472}, - dictWord{ - 8, - 10, - 767, - }, - dictWord{8, 10, 803}, - dictWord{9, 10, 301}, - dictWord{137, 10, 903}, - dictWord{135, 11, 1333}, - dictWord{135, 11, 477}, - dictWord{7, 10, 1949}, - dictWord{136, 10, 674}, - dictWord{6, 0, 905}, - dictWord{138, 0, 747}, - dictWord{133, 0, 155}, - dictWord{134, 10, 259}, - dictWord{7, 0, 163}, - dictWord{8, 0, 319}, - dictWord{9, 0, 402}, - dictWord{10, 0, 24}, - dictWord{10, 0, 681}, - dictWord{11, 0, 200}, - dictWord{12, 0, 253}, - dictWord{12, 0, 410}, - dictWord{142, 0, 219}, - dictWord{ - 5, - 0, - 475, - }, - dictWord{7, 0, 1780}, - dictWord{9, 0, 230}, - dictWord{11, 0, 297}, - dictWord{11, 0, 558}, - dictWord{14, 0, 322}, - dictWord{19, 0, 76}, - dictWord{6, 11, 1667}, - dictWord{7, 11, 2036}, - dictWord{138, 11, 600}, - dictWord{136, 10, 254}, - dictWord{6, 0, 848}, - dictWord{135, 0, 1956}, - dictWord{6, 11, 511}, - dictWord{ - 140, - 11, - 132, - }, - dictWord{5, 11, 568}, - dictWord{6, 11, 138}, - dictWord{135, 11, 1293}, - dictWord{6, 0, 631}, - dictWord{137, 0, 838}, - dictWord{149, 0, 36}, - dictWord{ - 4, - 11, - 565, - }, - dictWord{8, 11, 23}, - dictWord{136, 11, 827}, - dictWord{5, 0, 944}, - dictWord{134, 0, 1769}, - dictWord{4, 0, 144}, - dictWord{6, 0, 842}, - dictWord{ - 6, - 0, - 1400, - }, - dictWord{4, 11, 922}, - dictWord{133, 11, 1023}, - dictWord{133, 10, 248}, - dictWord{9, 10, 800}, - dictWord{10, 10, 693}, - dictWord{11, 10, 482}, - dictWord{11, 10, 734}, - dictWord{139, 10, 789}, - dictWord{7, 11, 1002}, - dictWord{139, 11, 145}, - dictWord{4, 10, 116}, - dictWord{5, 10, 95}, - dictWord{5, 10, 445}, - dictWord{7, 10, 1688}, - dictWord{8, 10, 29}, - dictWord{9, 10, 272}, - dictWord{11, 10, 509}, - dictWord{139, 10, 915}, - dictWord{14, 0, 369}, - dictWord{146, 0, 72}, - dictWord{135, 10, 1641}, - dictWord{132, 11, 740}, - dictWord{133, 10, 543}, - dictWord{140, 11, 116}, - dictWord{6, 0, 247}, - dictWord{9, 0, 555}, - dictWord{ - 5, - 10, - 181, - }, - dictWord{136, 10, 41}, - dictWord{133, 10, 657}, - dictWord{136, 0, 996}, - dictWord{138, 10, 709}, - dictWord{7, 0, 189}, - dictWord{8, 10, 202}, - dictWord{ - 138, - 10, - 536, - }, - dictWord{136, 11, 402}, - dictWord{4, 11, 716}, - dictWord{141, 11, 31}, - dictWord{10, 0, 280}, - dictWord{138, 0, 797}, - dictWord{9, 10, 423}, - dictWord{140, 10, 89}, - dictWord{8, 10, 113}, - dictWord{9, 10, 877}, - dictWord{10, 10, 554}, - dictWord{11, 10, 83}, - dictWord{12, 10, 136}, - dictWord{147, 10, 109}, - dictWord{133, 10, 976}, - dictWord{7, 0, 746}, - dictWord{132, 10, 206}, - dictWord{136, 0, 526}, - dictWord{139, 0, 345}, - dictWord{136, 0, 1017}, - dictWord{ - 8, - 11, - 152, - }, - dictWord{9, 11, 53}, - dictWord{9, 11, 268}, - dictWord{9, 11, 901}, - dictWord{10, 11, 518}, - dictWord{10, 11, 829}, - dictWord{11, 11, 188}, - dictWord{ - 13, - 11, - 74, - }, - dictWord{14, 11, 46}, - dictWord{15, 11, 17}, - dictWord{15, 11, 33}, - dictWord{17, 11, 40}, - dictWord{18, 11, 36}, - dictWord{19, 11, 20}, - dictWord{22, 11, 1}, - dictWord{152, 11, 2}, - dictWord{133, 11, 736}, - dictWord{136, 11, 532}, - dictWord{5, 0, 428}, - dictWord{138, 0, 651}, - dictWord{135, 11, 681}, - dictWord{ - 135, - 0, - 1162, - }, - dictWord{7, 0, 327}, - dictWord{13, 0, 230}, - dictWord{17, 0, 113}, - dictWord{8, 10, 226}, - dictWord{10, 10, 537}, - dictWord{11, 10, 570}, - dictWord{ - 11, - 10, - 605, - }, - dictWord{11, 10, 799}, - dictWord{11, 10, 804}, - dictWord{12, 10, 85}, - dictWord{12, 10, 516}, - dictWord{12, 10, 623}, - dictWord{12, 11, 677}, - dictWord{ - 13, - 10, - 361, - }, - dictWord{14, 10, 77}, - dictWord{14, 10, 78}, - dictWord{147, 10, 110}, - dictWord{4, 0, 792}, - dictWord{7, 0, 1717}, - dictWord{10, 0, 546}, - dictWord{ - 132, - 10, - 769, - }, - dictWord{4, 11, 684}, - dictWord{136, 11, 384}, - dictWord{132, 10, 551}, - dictWord{134, 0, 1203}, - dictWord{9, 10, 57}, - dictWord{9, 10, 459}, - dictWord{10, 10, 425}, - dictWord{11, 10, 119}, - dictWord{12, 10, 184}, - dictWord{12, 10, 371}, - dictWord{13, 10, 358}, - dictWord{145, 10, 51}, - dictWord{5, 0, 672}, - dictWord{5, 10, 814}, - dictWord{8, 10, 10}, - dictWord{9, 10, 421}, - dictWord{9, 10, 729}, - dictWord{10, 10, 609}, - dictWord{139, 10, 689}, - dictWord{138, 0, 189}, - dictWord{134, 10, 624}, - dictWord{7, 11, 110}, - dictWord{7, 11, 188}, - dictWord{8, 11, 290}, - dictWord{8, 11, 591}, - dictWord{9, 11, 382}, - dictWord{9, 11, 649}, - dictWord{11, 11, 71}, - dictWord{11, 11, 155}, - dictWord{11, 11, 313}, - dictWord{12, 11, 5}, - dictWord{13, 11, 325}, - dictWord{142, 11, 287}, - dictWord{133, 0, 99}, - dictWord{6, 0, 1053}, - dictWord{135, 0, 298}, - dictWord{7, 11, 360}, - dictWord{7, 11, 425}, - dictWord{9, 11, 66}, - dictWord{9, 11, 278}, - dictWord{138, 11, 644}, - dictWord{4, 0, 397}, - dictWord{136, 0, 555}, - dictWord{137, 10, 269}, - dictWord{132, 10, 528}, - dictWord{4, 11, 900}, - dictWord{133, 11, 861}, - dictWord{ - 6, - 0, - 1157, - }, - dictWord{5, 11, 254}, - dictWord{7, 11, 985}, - dictWord{136, 11, 73}, - dictWord{7, 11, 1959}, - dictWord{136, 11, 683}, - dictWord{12, 0, 398}, - dictWord{ - 20, - 0, - 39, - }, - dictWord{21, 0, 11}, - dictWord{150, 0, 41}, - dictWord{4, 0, 485}, - dictWord{7, 0, 353}, - dictWord{135, 0, 1523}, - dictWord{6, 0, 366}, - dictWord{7, 0, 1384}, - dictWord{135, 0, 1601}, - dictWord{138, 0, 787}, - dictWord{137, 0, 282}, - dictWord{5, 10, 104}, - dictWord{6, 10, 173}, - dictWord{135, 10, 1631}, - dictWord{ - 139, - 11, - 146, - }, - dictWord{4, 0, 157}, - dictWord{133, 0, 471}, - dictWord{134, 0, 941}, - dictWord{132, 11, 725}, - dictWord{7, 0, 1336}, - dictWord{8, 10, 138}, - dictWord{ - 8, - 10, - 342, - }, - dictWord{9, 10, 84}, - dictWord{10, 10, 193}, - dictWord{11, 10, 883}, - dictWord{140, 10, 359}, - dictWord{134, 11, 196}, - dictWord{136, 0, 116}, - dictWord{133, 11, 831}, - dictWord{134, 0, 787}, - dictWord{134, 10, 95}, - dictWord{6, 10, 406}, - dictWord{10, 10, 409}, - dictWord{10, 10, 447}, - dictWord{ - 11, - 10, - 44, - }, - dictWord{140, 10, 100}, - dictWord{5, 0, 160}, - dictWord{7, 0, 363}, - dictWord{7, 0, 589}, - dictWord{10, 0, 170}, - dictWord{141, 0, 55}, - dictWord{134, 0, 1815}, - dictWord{132, 0, 866}, - dictWord{6, 0, 889}, - dictWord{6, 0, 1067}, - dictWord{6, 0, 1183}, - dictWord{4, 11, 321}, - dictWord{134, 11, 569}, - dictWord{5, 11, 848}, - dictWord{134, 11, 66}, - dictWord{4, 11, 36}, - dictWord{6, 10, 1636}, - dictWord{7, 11, 1387}, - dictWord{10, 11, 205}, - dictWord{11, 11, 755}, - dictWord{ - 141, - 11, - 271, - }, - dictWord{132, 0, 689}, - dictWord{9, 0, 820}, - dictWord{4, 10, 282}, - dictWord{7, 10, 1034}, - dictWord{11, 10, 398}, - dictWord{11, 10, 634}, - dictWord{ - 12, - 10, - 1, - }, - dictWord{12, 10, 79}, - dictWord{12, 10, 544}, - dictWord{14, 10, 237}, - dictWord{17, 10, 10}, - dictWord{146, 10, 20}, - dictWord{4, 0, 108}, - dictWord{7, 0, 804}, - dictWord{139, 0, 498}, - dictWord{132, 11, 887}, - dictWord{6, 0, 1119}, - dictWord{135, 11, 620}, - dictWord{6, 11, 165}, - dictWord{138, 11, 388}, - dictWord{ - 5, - 0, - 244, - }, - dictWord{5, 10, 499}, - dictWord{6, 10, 476}, - dictWord{7, 10, 600}, - dictWord{7, 10, 888}, - dictWord{135, 10, 1096}, - dictWord{140, 0, 609}, - dictWord{ - 135, - 0, - 1005, - }, - dictWord{4, 0, 412}, - dictWord{133, 0, 581}, - dictWord{4, 11, 719}, - dictWord{135, 11, 155}, - dictWord{7, 10, 296}, - dictWord{7, 10, 596}, - dictWord{ - 8, - 10, - 560, - }, - dictWord{8, 10, 586}, - dictWord{9, 10, 612}, - dictWord{11, 10, 304}, - dictWord{12, 10, 46}, - dictWord{13, 10, 89}, - dictWord{14, 10, 112}, - dictWord{ - 145, - 10, - 122, - }, - dictWord{4, 0, 895}, - dictWord{133, 0, 772}, - dictWord{142, 11, 307}, - dictWord{135, 0, 1898}, - dictWord{4, 0, 926}, - dictWord{133, 0, 983}, - dictWord{4, 11, 353}, - dictWord{6, 11, 146}, - dictWord{6, 11, 1789}, - dictWord{7, 11, 288}, - dictWord{7, 11, 990}, - dictWord{7, 11, 1348}, - dictWord{9, 11, 665}, - dictWord{ - 9, - 11, - 898, - }, - dictWord{11, 11, 893}, - dictWord{142, 11, 212}, - dictWord{132, 0, 538}, - dictWord{133, 11, 532}, - dictWord{6, 0, 294}, - dictWord{7, 0, 1267}, - dictWord{8, 0, 624}, - dictWord{141, 0, 496}, - dictWord{7, 0, 1325}, - dictWord{4, 11, 45}, - dictWord{135, 11, 1257}, - dictWord{138, 0, 301}, - dictWord{9, 0, 298}, - dictWord{12, 0, 291}, - dictWord{13, 0, 276}, - dictWord{14, 0, 6}, - dictWord{17, 0, 18}, - dictWord{21, 0, 32}, - dictWord{7, 10, 1599}, - dictWord{7, 10, 1723}, - dictWord{ - 8, - 10, - 79, - }, - dictWord{8, 10, 106}, - dictWord{8, 10, 190}, - dictWord{8, 10, 302}, - dictWord{8, 10, 383}, - dictWord{8, 10, 713}, - dictWord{9, 10, 119}, - dictWord{9, 10, 233}, - dictWord{9, 10, 419}, - dictWord{9, 10, 471}, - dictWord{10, 10, 181}, - dictWord{10, 10, 406}, - dictWord{11, 10, 57}, - dictWord{11, 10, 85}, - dictWord{11, 10, 120}, - dictWord{11, 10, 177}, - dictWord{11, 10, 296}, - dictWord{11, 10, 382}, - dictWord{11, 10, 454}, - dictWord{11, 10, 758}, - dictWord{11, 10, 999}, - dictWord{ - 12, - 10, - 27, - }, - dictWord{12, 10, 131}, - dictWord{12, 10, 245}, - dictWord{12, 10, 312}, - dictWord{12, 10, 446}, - dictWord{12, 10, 454}, - dictWord{13, 10, 98}, - dictWord{ - 13, - 10, - 426, - }, - dictWord{13, 10, 508}, - dictWord{14, 10, 163}, - dictWord{14, 10, 272}, - dictWord{14, 10, 277}, - dictWord{14, 10, 370}, - dictWord{15, 10, 95}, - dictWord{15, 10, 138}, - dictWord{15, 10, 167}, - dictWord{17, 10, 38}, - dictWord{148, 10, 96}, - dictWord{132, 0, 757}, - dictWord{134, 0, 1263}, - dictWord{4, 0, 820}, - dictWord{134, 10, 1759}, - dictWord{133, 0, 722}, - dictWord{136, 11, 816}, - dictWord{138, 10, 372}, - dictWord{145, 10, 16}, - dictWord{134, 0, 1039}, - dictWord{ - 4, - 0, - 991, - }, - dictWord{134, 0, 2028}, - dictWord{133, 10, 258}, - dictWord{7, 0, 1875}, - dictWord{139, 0, 124}, - dictWord{6, 11, 559}, - dictWord{6, 11, 1691}, - dictWord{135, 11, 586}, - dictWord{5, 0, 324}, - dictWord{7, 0, 881}, - dictWord{8, 10, 134}, - dictWord{9, 10, 788}, - dictWord{140, 10, 438}, - dictWord{7, 11, 1823}, - dictWord{139, 11, 693}, - dictWord{6, 0, 1348}, - dictWord{134, 0, 1545}, - dictWord{134, 0, 911}, - dictWord{132, 0, 954}, - dictWord{8, 0, 329}, - dictWord{8, 0, 414}, - dictWord{7, 10, 1948}, - dictWord{135, 10, 2004}, - dictWord{5, 0, 517}, - dictWord{6, 10, 439}, - dictWord{7, 10, 780}, - dictWord{135, 10, 1040}, - dictWord{ - 132, - 0, - 816, - }, - dictWord{5, 10, 1}, - dictWord{6, 10, 81}, - dictWord{138, 10, 520}, - dictWord{9, 0, 713}, - dictWord{10, 0, 222}, - dictWord{5, 10, 482}, - dictWord{8, 10, 98}, - dictWord{10, 10, 700}, - dictWord{10, 10, 822}, - dictWord{11, 10, 302}, - dictWord{11, 10, 778}, - dictWord{12, 10, 50}, - dictWord{12, 10, 127}, - dictWord{12, 10, 396}, - dictWord{13, 10, 62}, - dictWord{13, 10, 328}, - dictWord{14, 10, 122}, - dictWord{147, 10, 72}, - dictWord{137, 0, 33}, - dictWord{5, 10, 2}, - dictWord{7, 10, 1494}, - dictWord{136, 10, 589}, - dictWord{6, 10, 512}, - dictWord{7, 10, 797}, - dictWord{8, 10, 253}, - dictWord{9, 10, 77}, - dictWord{10, 10, 1}, - dictWord{10, 11, 108}, - dictWord{10, 10, 129}, - dictWord{10, 10, 225}, - dictWord{11, 11, 116}, - dictWord{11, 10, 118}, - dictWord{11, 10, 226}, - dictWord{11, 10, 251}, - dictWord{ - 11, - 10, - 430, - }, - dictWord{11, 10, 701}, - dictWord{11, 10, 974}, - dictWord{11, 10, 982}, - dictWord{12, 10, 64}, - dictWord{12, 10, 260}, - dictWord{12, 10, 488}, - dictWord{ - 140, - 10, - 690, - }, - dictWord{134, 11, 456}, - dictWord{133, 11, 925}, - dictWord{5, 0, 150}, - dictWord{7, 0, 106}, - dictWord{7, 0, 774}, - dictWord{8, 0, 603}, - dictWord{ - 9, - 0, - 593, - }, - dictWord{9, 0, 634}, - dictWord{10, 0, 44}, - dictWord{10, 0, 173}, - dictWord{11, 0, 462}, - dictWord{11, 0, 515}, - dictWord{13, 0, 216}, - dictWord{13, 0, 288}, - dictWord{142, 0, 400}, - dictWord{137, 10, 347}, - dictWord{5, 0, 748}, - dictWord{134, 0, 553}, - dictWord{12, 0, 108}, - dictWord{141, 0, 291}, - dictWord{7, 0, 420}, - dictWord{4, 10, 12}, - dictWord{7, 10, 522}, - dictWord{7, 10, 809}, - dictWord{8, 10, 797}, - dictWord{141, 10, 88}, - dictWord{6, 11, 193}, - dictWord{7, 11, 240}, - dictWord{ - 7, - 11, - 1682, - }, - dictWord{10, 11, 51}, - dictWord{10, 11, 640}, - dictWord{11, 11, 410}, - dictWord{13, 11, 82}, - dictWord{14, 11, 247}, - dictWord{14, 11, 331}, - dictWord{142, 11, 377}, - dictWord{133, 10, 528}, - dictWord{135, 0, 1777}, - dictWord{4, 0, 493}, - dictWord{144, 0, 55}, - dictWord{136, 11, 633}, - dictWord{ - 139, - 0, - 81, - }, - dictWord{6, 0, 980}, - dictWord{136, 0, 321}, - dictWord{148, 10, 109}, - dictWord{5, 10, 266}, - dictWord{9, 10, 290}, - dictWord{9, 10, 364}, - dictWord{ - 10, - 10, - 293, - }, - dictWord{11, 10, 606}, - dictWord{142, 10, 45}, - dictWord{6, 0, 568}, - dictWord{7, 0, 112}, - dictWord{7, 0, 1804}, - dictWord{8, 0, 362}, - dictWord{8, 0, 410}, - dictWord{8, 0, 830}, - dictWord{9, 0, 514}, - dictWord{11, 0, 649}, - dictWord{142, 0, 157}, - dictWord{4, 0, 74}, - dictWord{6, 0, 510}, - dictWord{6, 10, 594}, - dictWord{ - 9, - 10, - 121, - }, - dictWord{10, 10, 49}, - dictWord{10, 10, 412}, - dictWord{139, 10, 834}, - dictWord{134, 0, 838}, - dictWord{136, 10, 748}, - dictWord{132, 10, 466}, - dictWord{132, 0, 625}, - dictWord{135, 11, 1443}, - dictWord{4, 11, 237}, - dictWord{135, 11, 514}, - dictWord{9, 10, 378}, - dictWord{141, 10, 162}, - dictWord{6, 0, 16}, - dictWord{6, 0, 158}, - dictWord{7, 0, 43}, - dictWord{7, 0, 129}, - dictWord{7, 0, 181}, - dictWord{8, 0, 276}, - dictWord{8, 0, 377}, - dictWord{10, 0, 523}, - dictWord{ - 11, - 0, - 816, - }, - dictWord{12, 0, 455}, - dictWord{13, 0, 303}, - dictWord{142, 0, 135}, - dictWord{135, 0, 281}, - dictWord{4, 0, 1}, - dictWord{7, 0, 1143}, - dictWord{7, 0, 1463}, - dictWord{8, 0, 61}, - dictWord{9, 0, 207}, - dictWord{9, 0, 390}, - dictWord{9, 0, 467}, - dictWord{139, 0, 836}, - dictWord{6, 11, 392}, - dictWord{7, 11, 65}, - dictWord{ - 135, - 11, - 2019, - }, - dictWord{132, 10, 667}, - dictWord{4, 0, 723}, - dictWord{5, 0, 895}, - dictWord{7, 0, 1031}, - dictWord{8, 0, 199}, - dictWord{8, 0, 340}, - dictWord{9, 0, 153}, - dictWord{9, 0, 215}, - dictWord{10, 0, 21}, - dictWord{10, 0, 59}, - dictWord{10, 0, 80}, - dictWord{10, 0, 224}, - dictWord{10, 0, 838}, - dictWord{11, 0, 229}, - dictWord{ - 11, - 0, - 652, - }, - dictWord{12, 0, 192}, - dictWord{13, 0, 146}, - dictWord{142, 0, 91}, - dictWord{132, 0, 295}, - dictWord{137, 0, 51}, - dictWord{9, 11, 222}, - dictWord{ - 10, - 11, - 43, - }, - dictWord{139, 11, 900}, - dictWord{5, 0, 309}, - dictWord{140, 0, 211}, - dictWord{5, 0, 125}, - dictWord{8, 0, 77}, - dictWord{138, 0, 15}, - dictWord{136, 11, 604}, - dictWord{138, 0, 789}, - dictWord{5, 0, 173}, - dictWord{4, 10, 39}, - dictWord{7, 10, 1843}, - dictWord{8, 10, 407}, - dictWord{11, 10, 144}, - dictWord{140, 10, 523}, - dictWord{138, 11, 265}, - dictWord{133, 0, 439}, - dictWord{132, 10, 510}, - dictWord{7, 0, 648}, - dictWord{7, 0, 874}, - dictWord{11, 0, 164}, - dictWord{12, 0, 76}, - dictWord{18, 0, 9}, - dictWord{7, 10, 1980}, - dictWord{10, 10, 487}, - dictWord{138, 10, 809}, - dictWord{12, 0, 111}, - dictWord{14, 0, 294}, - dictWord{19, 0, 45}, - dictWord{13, 10, 260}, - dictWord{146, 10, 63}, - dictWord{133, 11, 549}, - dictWord{134, 10, 570}, - dictWord{4, 0, 8}, - dictWord{7, 0, 1152}, - dictWord{7, 0, 1153}, - dictWord{7, 0, 1715}, - dictWord{9, 0, 374}, - dictWord{10, 0, 478}, - dictWord{139, 0, 648}, - dictWord{135, 0, 1099}, - dictWord{5, 0, 575}, - dictWord{6, 0, 354}, - dictWord{ - 135, - 0, - 701, - }, - dictWord{7, 11, 36}, - dictWord{8, 11, 201}, - dictWord{136, 11, 605}, - dictWord{4, 10, 787}, - dictWord{136, 11, 156}, - dictWord{6, 0, 518}, - dictWord{ - 149, - 11, - 13, - }, - dictWord{140, 11, 224}, - dictWord{134, 0, 702}, - dictWord{132, 10, 516}, - dictWord{5, 11, 724}, - dictWord{10, 11, 305}, - dictWord{11, 11, 151}, - dictWord{12, 11, 33}, - dictWord{12, 11, 121}, - dictWord{12, 11, 381}, - dictWord{17, 11, 3}, - dictWord{17, 11, 27}, - dictWord{17, 11, 78}, - dictWord{18, 11, 18}, - dictWord{19, 11, 54}, - dictWord{149, 11, 5}, - dictWord{8, 0, 87}, - dictWord{4, 11, 523}, - dictWord{5, 11, 638}, - dictWord{11, 10, 887}, - dictWord{14, 10, 365}, - dictWord{ - 142, - 10, - 375, - }, - dictWord{138, 0, 438}, - dictWord{136, 10, 821}, - dictWord{135, 11, 1908}, - dictWord{6, 11, 242}, - dictWord{7, 11, 227}, - dictWord{7, 11, 1581}, - dictWord{8, 11, 104}, - dictWord{9, 11, 113}, - dictWord{9, 11, 220}, - dictWord{9, 11, 427}, - dictWord{10, 11, 74}, - dictWord{10, 11, 239}, - dictWord{11, 11, 579}, - dictWord{11, 11, 1023}, - dictWord{13, 11, 4}, - dictWord{13, 11, 204}, - dictWord{13, 11, 316}, - dictWord{18, 11, 95}, - dictWord{148, 11, 86}, - dictWord{4, 0, 69}, - dictWord{5, 0, 122}, - dictWord{5, 0, 849}, - dictWord{6, 0, 1633}, - dictWord{9, 0, 656}, - dictWord{138, 0, 464}, - dictWord{7, 0, 1802}, - dictWord{4, 10, 10}, - dictWord{ - 139, - 10, - 786, - }, - dictWord{135, 11, 861}, - dictWord{139, 0, 499}, - dictWord{7, 0, 476}, - dictWord{7, 0, 1592}, - dictWord{138, 0, 87}, - dictWord{133, 10, 684}, - dictWord{ - 4, - 0, - 840, - }, - dictWord{134, 10, 27}, - dictWord{142, 0, 283}, - dictWord{6, 0, 1620}, - dictWord{7, 11, 1328}, - dictWord{136, 11, 494}, - dictWord{5, 0, 859}, - dictWord{ - 7, - 0, - 1160, - }, - dictWord{8, 0, 107}, - dictWord{9, 0, 291}, - dictWord{9, 0, 439}, - dictWord{10, 0, 663}, - dictWord{11, 0, 609}, - dictWord{140, 0, 197}, - dictWord{ - 7, - 11, - 1306, - }, - dictWord{8, 11, 505}, - dictWord{9, 11, 482}, - dictWord{10, 11, 126}, - dictWord{11, 11, 225}, - dictWord{12, 11, 347}, - dictWord{12, 11, 449}, - dictWord{ - 13, - 11, - 19, - }, - dictWord{142, 11, 218}, - dictWord{5, 11, 268}, - dictWord{10, 11, 764}, - dictWord{12, 11, 120}, - dictWord{13, 11, 39}, - dictWord{145, 11, 127}, - dictWord{145, 10, 56}, - dictWord{7, 11, 1672}, - dictWord{10, 11, 472}, - dictWord{11, 11, 189}, - dictWord{143, 11, 51}, - dictWord{6, 10, 342}, - dictWord{6, 10, 496}, - dictWord{8, 10, 275}, - dictWord{137, 10, 206}, - dictWord{133, 0, 600}, - dictWord{4, 0, 117}, - dictWord{6, 0, 372}, - dictWord{7, 0, 1905}, - dictWord{142, 0, 323}, - dictWord{4, 10, 909}, - dictWord{5, 10, 940}, - dictWord{135, 11, 1471}, - dictWord{132, 10, 891}, - dictWord{4, 0, 722}, - dictWord{139, 0, 471}, - dictWord{4, 11, 384}, - dictWord{135, 11, 1022}, - dictWord{132, 10, 687}, - dictWord{9, 0, 5}, - dictWord{12, 0, 216}, - dictWord{12, 0, 294}, - dictWord{12, 0, 298}, - dictWord{12, 0, 400}, - dictWord{12, 0, 518}, - dictWord{13, 0, 229}, - dictWord{143, 0, 139}, - dictWord{135, 11, 1703}, - dictWord{7, 11, 1602}, - dictWord{10, 11, 698}, - dictWord{ - 12, - 11, - 212, - }, - dictWord{141, 11, 307}, - dictWord{6, 10, 41}, - dictWord{141, 10, 160}, - dictWord{135, 11, 1077}, - dictWord{9, 11, 159}, - dictWord{11, 11, 28}, - dictWord{140, 11, 603}, - dictWord{4, 0, 514}, - dictWord{7, 0, 1304}, - dictWord{138, 0, 477}, - dictWord{134, 0, 1774}, - dictWord{9, 0, 88}, - dictWord{139, 0, 270}, - dictWord{5, 0, 12}, - dictWord{7, 0, 375}, - dictWord{9, 0, 438}, - dictWord{134, 10, 1718}, - dictWord{132, 11, 515}, - dictWord{136, 10, 778}, - dictWord{8, 11, 632}, - dictWord{8, 11, 697}, - dictWord{137, 11, 854}, - dictWord{6, 0, 362}, - dictWord{6, 0, 997}, - dictWord{146, 0, 51}, - dictWord{7, 0, 816}, - dictWord{7, 0, 1241}, - dictWord{ - 9, - 0, - 283, - }, - dictWord{9, 0, 520}, - dictWord{10, 0, 213}, - dictWord{10, 0, 307}, - dictWord{10, 0, 463}, - dictWord{10, 0, 671}, - dictWord{10, 0, 746}, - dictWord{11, 0, 401}, - dictWord{11, 0, 794}, - dictWord{12, 0, 517}, - dictWord{18, 0, 107}, - dictWord{147, 0, 115}, - dictWord{133, 10, 115}, - dictWord{150, 11, 28}, - dictWord{4, 11, 136}, - dictWord{133, 11, 551}, - dictWord{142, 10, 314}, - dictWord{132, 0, 258}, - dictWord{6, 0, 22}, - dictWord{7, 0, 903}, - dictWord{7, 0, 1963}, - dictWord{8, 0, 639}, - dictWord{138, 0, 577}, - dictWord{5, 0, 681}, - dictWord{8, 0, 782}, - dictWord{13, 0, 130}, - dictWord{17, 0, 84}, - dictWord{5, 10, 193}, - dictWord{140, 10, 178}, - dictWord{ - 9, - 11, - 17, - }, - dictWord{138, 11, 291}, - dictWord{7, 11, 1287}, - dictWord{9, 11, 44}, - dictWord{10, 11, 552}, - dictWord{10, 11, 642}, - dictWord{11, 11, 839}, - dictWord{12, 11, 274}, - dictWord{12, 11, 275}, - dictWord{12, 11, 372}, - dictWord{13, 11, 91}, - dictWord{142, 11, 125}, - dictWord{135, 10, 174}, - dictWord{4, 0, 664}, - dictWord{5, 0, 804}, - dictWord{139, 0, 1013}, - dictWord{134, 0, 942}, - dictWord{6, 0, 1349}, - dictWord{6, 0, 1353}, - dictWord{6, 0, 1450}, - dictWord{7, 11, 1518}, - dictWord{139, 11, 694}, - dictWord{11, 0, 356}, - dictWord{4, 10, 122}, - dictWord{5, 10, 796}, - dictWord{5, 10, 952}, - dictWord{6, 10, 1660}, - dictWord{ - 6, - 10, - 1671, - }, - dictWord{8, 10, 567}, - dictWord{9, 10, 687}, - dictWord{9, 10, 742}, - dictWord{10, 10, 686}, - dictWord{11, 10, 682}, - dictWord{140, 10, 281}, - dictWord{ - 5, - 0, - 32, - }, - dictWord{6, 11, 147}, - dictWord{7, 11, 886}, - dictWord{9, 11, 753}, - dictWord{138, 11, 268}, - dictWord{5, 10, 179}, - dictWord{7, 10, 1095}, - dictWord{ - 135, - 10, - 1213, - }, - dictWord{4, 10, 66}, - dictWord{7, 10, 722}, - dictWord{135, 10, 904}, - dictWord{135, 10, 352}, - dictWord{9, 11, 245}, - dictWord{138, 11, 137}, - dictWord{4, 0, 289}, - dictWord{7, 0, 629}, - dictWord{7, 0, 1698}, - dictWord{7, 0, 1711}, - dictWord{12, 0, 215}, - dictWord{133, 11, 414}, - dictWord{6, 0, 1975}, - dictWord{135, 11, 1762}, - dictWord{6, 0, 450}, - dictWord{136, 0, 109}, - dictWord{141, 10, 35}, - dictWord{134, 11, 599}, - dictWord{136, 0, 705}, - dictWord{ - 133, - 0, - 664, - }, - dictWord{134, 11, 1749}, - dictWord{11, 11, 402}, - dictWord{12, 11, 109}, - dictWord{12, 11, 431}, - dictWord{13, 11, 179}, - dictWord{13, 11, 206}, - dictWord{14, 11, 175}, - dictWord{14, 11, 217}, - dictWord{16, 11, 3}, - dictWord{148, 11, 53}, - dictWord{135, 0, 1238}, - dictWord{134, 11, 1627}, - dictWord{ - 132, - 11, - 488, - }, - dictWord{13, 0, 318}, - dictWord{10, 10, 592}, - dictWord{10, 10, 753}, - dictWord{12, 10, 317}, - dictWord{12, 10, 355}, - dictWord{12, 10, 465}, - dictWord{ - 12, - 10, - 469, - }, - dictWord{12, 10, 560}, - dictWord{140, 10, 578}, - dictWord{133, 10, 564}, - dictWord{132, 11, 83}, - dictWord{140, 11, 676}, - dictWord{6, 0, 1872}, - dictWord{6, 0, 1906}, - dictWord{6, 0, 1907}, - dictWord{9, 0, 934}, - dictWord{9, 0, 956}, - dictWord{9, 0, 960}, - dictWord{9, 0, 996}, - dictWord{12, 0, 794}, - dictWord{ - 12, - 0, - 876, - }, - dictWord{12, 0, 880}, - dictWord{12, 0, 918}, - dictWord{15, 0, 230}, - dictWord{18, 0, 234}, - dictWord{18, 0, 238}, - dictWord{21, 0, 38}, - dictWord{149, 0, 62}, - dictWord{134, 10, 556}, - dictWord{134, 11, 278}, - dictWord{137, 0, 103}, - dictWord{7, 10, 544}, - dictWord{8, 10, 719}, - dictWord{138, 10, 61}, - dictWord{ - 4, - 10, - 5, - }, - dictWord{5, 10, 498}, - dictWord{8, 10, 637}, - dictWord{137, 10, 521}, - dictWord{7, 0, 777}, - dictWord{12, 0, 229}, - dictWord{12, 0, 239}, - dictWord{15, 0, 12}, - dictWord{12, 11, 229}, - dictWord{12, 11, 239}, - dictWord{143, 11, 12}, - dictWord{6, 0, 26}, - dictWord{7, 11, 388}, - dictWord{7, 11, 644}, - dictWord{139, 11, 781}, - dictWord{7, 11, 229}, - dictWord{8, 11, 59}, - dictWord{9, 11, 190}, - dictWord{9, 11, 257}, - dictWord{10, 11, 378}, - dictWord{140, 11, 191}, - dictWord{133, 10, 927}, - dictWord{135, 10, 1441}, - dictWord{4, 10, 893}, - dictWord{5, 10, 780}, - dictWord{133, 10, 893}, - dictWord{4, 0, 414}, - dictWord{5, 0, 467}, - dictWord{9, 0, 654}, - dictWord{10, 0, 451}, - dictWord{12, 0, 59}, - dictWord{141, 0, 375}, - dictWord{142, 0, 173}, - dictWord{135, 0, 17}, - dictWord{7, 0, 1350}, - dictWord{133, 10, 238}, - dictWord{135, 0, 955}, - dictWord{4, 0, 960}, - dictWord{10, 0, 887}, - dictWord{12, 0, 753}, - dictWord{18, 0, 161}, - dictWord{18, 0, 162}, - dictWord{152, 0, 19}, - dictWord{136, 11, 344}, - dictWord{6, 10, 1729}, - dictWord{137, 11, 288}, - dictWord{132, 11, 660}, - dictWord{4, 0, 217}, - dictWord{5, 0, 710}, - dictWord{7, 0, 760}, - dictWord{7, 0, 1926}, - dictWord{9, 0, 428}, - dictWord{9, 0, 708}, - dictWord{10, 0, 254}, - dictWord{10, 0, 296}, - dictWord{10, 0, 720}, - dictWord{11, 0, 109}, - dictWord{ - 11, - 0, - 255, - }, - dictWord{12, 0, 165}, - dictWord{12, 0, 315}, - dictWord{13, 0, 107}, - dictWord{13, 0, 203}, - dictWord{14, 0, 54}, - dictWord{14, 0, 99}, - dictWord{14, 0, 114}, - dictWord{14, 0, 388}, - dictWord{16, 0, 85}, - dictWord{17, 0, 9}, - dictWord{17, 0, 33}, - dictWord{20, 0, 25}, - dictWord{20, 0, 28}, - dictWord{20, 0, 29}, - dictWord{21, 0, 9}, - dictWord{21, 0, 10}, - dictWord{21, 0, 34}, - dictWord{22, 0, 17}, - dictWord{4, 10, 60}, - dictWord{7, 10, 1800}, - dictWord{8, 10, 314}, - dictWord{9, 10, 700}, - dictWord{ - 139, - 10, - 487, - }, - dictWord{7, 11, 1035}, - dictWord{138, 11, 737}, - dictWord{7, 11, 690}, - dictWord{9, 11, 217}, - dictWord{9, 11, 587}, - dictWord{140, 11, 521}, - dictWord{6, 0, 919}, - dictWord{7, 11, 706}, - dictWord{7, 11, 1058}, - dictWord{138, 11, 538}, - dictWord{7, 10, 1853}, - dictWord{138, 10, 437}, - dictWord{ - 136, - 10, - 419, - }, - dictWord{6, 0, 280}, - dictWord{10, 0, 502}, - dictWord{11, 0, 344}, - dictWord{140, 0, 38}, - dictWord{5, 0, 45}, - dictWord{7, 0, 1161}, - dictWord{11, 0, 448}, - dictWord{11, 0, 880}, - dictWord{13, 0, 139}, - dictWord{13, 0, 407}, - dictWord{15, 0, 16}, - dictWord{17, 0, 95}, - dictWord{18, 0, 66}, - dictWord{18, 0, 88}, - dictWord{ - 18, - 0, - 123, - }, - dictWord{149, 0, 7}, - dictWord{11, 11, 92}, - dictWord{11, 11, 196}, - dictWord{11, 11, 409}, - dictWord{11, 11, 450}, - dictWord{11, 11, 666}, - dictWord{ - 11, - 11, - 777, - }, - dictWord{12, 11, 262}, - dictWord{13, 11, 385}, - dictWord{13, 11, 393}, - dictWord{15, 11, 115}, - dictWord{16, 11, 45}, - dictWord{145, 11, 82}, - dictWord{136, 0, 777}, - dictWord{134, 11, 1744}, - dictWord{4, 0, 410}, - dictWord{7, 0, 521}, - dictWord{133, 10, 828}, - dictWord{134, 0, 673}, - dictWord{7, 0, 1110}, - dictWord{7, 0, 1778}, - dictWord{7, 10, 176}, - dictWord{135, 10, 178}, - dictWord{5, 10, 806}, - dictWord{7, 11, 268}, - dictWord{7, 10, 1976}, - dictWord{ - 136, - 11, - 569, - }, - dictWord{4, 11, 733}, - dictWord{9, 11, 194}, - dictWord{10, 11, 92}, - dictWord{11, 11, 198}, - dictWord{12, 11, 84}, - dictWord{12, 11, 87}, - dictWord{ - 13, - 11, - 128, - }, - dictWord{144, 11, 74}, - dictWord{5, 0, 341}, - dictWord{7, 0, 1129}, - dictWord{11, 0, 414}, - dictWord{4, 10, 51}, - dictWord{6, 10, 4}, - dictWord{7, 10, 591}, - dictWord{7, 10, 849}, - dictWord{7, 10, 951}, - dictWord{7, 10, 1613}, - dictWord{7, 10, 1760}, - dictWord{7, 10, 1988}, - dictWord{9, 10, 434}, - dictWord{10, 10, 754}, - dictWord{11, 10, 25}, - dictWord{139, 10, 37}, - dictWord{133, 10, 902}, - dictWord{135, 10, 928}, - dictWord{135, 0, 787}, - dictWord{132, 0, 436}, - dictWord{ - 134, - 10, - 270, - }, - dictWord{7, 0, 1587}, - dictWord{135, 0, 1707}, - dictWord{6, 0, 377}, - dictWord{7, 0, 1025}, - dictWord{9, 0, 613}, - dictWord{145, 0, 104}, - dictWord{ - 7, - 11, - 982, - }, - dictWord{7, 11, 1361}, - dictWord{10, 11, 32}, - dictWord{143, 11, 56}, - dictWord{139, 0, 96}, - dictWord{132, 0, 451}, - dictWord{132, 10, 416}, - dictWord{ - 142, - 10, - 372, - }, - dictWord{5, 10, 152}, - dictWord{5, 10, 197}, - dictWord{7, 11, 306}, - dictWord{7, 10, 340}, - dictWord{7, 10, 867}, - dictWord{10, 10, 548}, - dictWord{ - 10, - 10, - 581, - }, - dictWord{11, 10, 6}, - dictWord{12, 10, 3}, - dictWord{12, 10, 19}, - dictWord{14, 10, 110}, - dictWord{142, 10, 289}, - dictWord{134, 0, 680}, - dictWord{ - 134, - 11, - 609, - }, - dictWord{7, 0, 483}, - dictWord{7, 10, 190}, - dictWord{8, 10, 28}, - dictWord{8, 10, 141}, - dictWord{8, 10, 444}, - dictWord{8, 10, 811}, - dictWord{ - 9, - 10, - 468, - }, - dictWord{11, 10, 334}, - dictWord{12, 10, 24}, - dictWord{12, 10, 386}, - dictWord{140, 10, 576}, - dictWord{10, 0, 916}, - dictWord{133, 10, 757}, - dictWord{ - 5, - 10, - 721, - }, - dictWord{135, 10, 1553}, - dictWord{133, 11, 178}, - dictWord{134, 0, 937}, - dictWord{132, 10, 898}, - dictWord{133, 0, 739}, - dictWord{ - 147, - 0, - 82, - }, - dictWord{135, 0, 663}, - dictWord{146, 0, 128}, - dictWord{5, 10, 277}, - dictWord{141, 10, 247}, - dictWord{134, 0, 1087}, - dictWord{132, 10, 435}, - dictWord{ - 6, - 11, - 381, - }, - dictWord{7, 11, 645}, - dictWord{7, 11, 694}, - dictWord{136, 11, 546}, - dictWord{7, 0, 503}, - dictWord{135, 0, 1885}, - dictWord{6, 0, 1965}, - dictWord{ - 8, - 0, - 925, - }, - dictWord{138, 0, 955}, - dictWord{4, 0, 113}, - dictWord{5, 0, 163}, - dictWord{5, 0, 735}, - dictWord{7, 0, 1009}, - dictWord{9, 0, 9}, - dictWord{9, 0, 771}, - dictWord{12, 0, 90}, - dictWord{13, 0, 138}, - dictWord{13, 0, 410}, - dictWord{143, 0, 128}, - dictWord{4, 0, 324}, - dictWord{138, 0, 104}, - dictWord{7, 0, 460}, - dictWord{ - 5, - 10, - 265, - }, - dictWord{134, 10, 212}, - dictWord{133, 11, 105}, - dictWord{7, 11, 261}, - dictWord{7, 11, 1107}, - dictWord{7, 11, 1115}, - dictWord{7, 11, 1354}, - dictWord{7, 11, 1588}, - dictWord{7, 11, 1705}, - dictWord{7, 11, 1902}, - dictWord{9, 11, 465}, - dictWord{10, 11, 248}, - dictWord{10, 11, 349}, - dictWord{10, 11, 647}, - dictWord{11, 11, 527}, - dictWord{11, 11, 660}, - dictWord{11, 11, 669}, - dictWord{12, 11, 529}, - dictWord{141, 11, 305}, - dictWord{5, 11, 438}, - dictWord{ - 9, - 11, - 694, - }, - dictWord{12, 11, 627}, - dictWord{141, 11, 210}, - dictWord{152, 11, 11}, - dictWord{4, 0, 935}, - dictWord{133, 0, 823}, - dictWord{132, 10, 702}, - dictWord{ - 5, - 0, - 269, - }, - dictWord{7, 0, 434}, - dictWord{7, 0, 891}, - dictWord{8, 0, 339}, - dictWord{9, 0, 702}, - dictWord{11, 0, 594}, - dictWord{11, 0, 718}, - dictWord{17, 0, 100}, - dictWord{5, 10, 808}, - dictWord{135, 10, 2045}, - dictWord{7, 0, 1014}, - dictWord{9, 0, 485}, - dictWord{141, 0, 264}, - dictWord{134, 0, 1713}, - dictWord{7, 0, 1810}, - dictWord{11, 0, 866}, - dictWord{12, 0, 103}, - dictWord{13, 0, 495}, - dictWord{140, 11, 233}, - dictWord{4, 0, 423}, - dictWord{10, 0, 949}, - dictWord{138, 0, 1013}, - dictWord{135, 0, 900}, - dictWord{8, 11, 25}, - dictWord{138, 11, 826}, - dictWord{5, 10, 166}, - dictWord{8, 10, 739}, - dictWord{140, 10, 511}, - dictWord{ - 134, - 0, - 2018, - }, - dictWord{7, 11, 1270}, - dictWord{139, 11, 612}, - dictWord{4, 10, 119}, - dictWord{5, 10, 170}, - dictWord{5, 10, 447}, - dictWord{7, 10, 1708}, - dictWord{ - 7, - 10, - 1889, - }, - dictWord{9, 10, 357}, - dictWord{9, 10, 719}, - dictWord{12, 10, 486}, - dictWord{140, 10, 596}, - dictWord{12, 0, 574}, - dictWord{140, 11, 574}, - dictWord{132, 11, 308}, - dictWord{6, 0, 964}, - dictWord{6, 0, 1206}, - dictWord{134, 0, 1302}, - dictWord{4, 10, 450}, - dictWord{135, 10, 1158}, - dictWord{ - 135, - 11, - 150, - }, - dictWord{136, 11, 649}, - dictWord{14, 0, 213}, - dictWord{148, 0, 38}, - dictWord{9, 11, 45}, - dictWord{9, 11, 311}, - dictWord{141, 11, 42}, - dictWord{ - 134, - 11, - 521, - }, - dictWord{7, 10, 1375}, - dictWord{7, 10, 1466}, - dictWord{138, 10, 331}, - dictWord{132, 10, 754}, - dictWord{5, 11, 339}, - dictWord{7, 11, 1442}, - dictWord{14, 11, 3}, - dictWord{15, 11, 41}, - dictWord{147, 11, 66}, - dictWord{136, 11, 378}, - dictWord{134, 0, 1022}, - dictWord{5, 10, 850}, - dictWord{136, 10, 799}, - dictWord{142, 0, 143}, - dictWord{135, 0, 2029}, - dictWord{134, 11, 1628}, - dictWord{8, 0, 523}, - dictWord{150, 0, 34}, - dictWord{5, 0, 625}, - dictWord{ - 135, - 0, - 1617, - }, - dictWord{7, 0, 275}, - dictWord{7, 10, 238}, - dictWord{7, 10, 2033}, - dictWord{8, 10, 120}, - dictWord{8, 10, 188}, - dictWord{8, 10, 659}, - dictWord{ - 9, - 10, - 598, - }, - dictWord{10, 10, 466}, - dictWord{12, 10, 342}, - dictWord{12, 10, 588}, - dictWord{13, 10, 503}, - dictWord{14, 10, 246}, - dictWord{143, 10, 92}, - dictWord{ - 7, - 0, - 37, - }, - dictWord{8, 0, 425}, - dictWord{8, 0, 693}, - dictWord{9, 0, 720}, - dictWord{10, 0, 380}, - dictWord{10, 0, 638}, - dictWord{11, 0, 273}, - dictWord{11, 0, 473}, - dictWord{12, 0, 61}, - dictWord{143, 0, 43}, - dictWord{135, 11, 829}, - dictWord{135, 0, 1943}, - dictWord{132, 0, 765}, - dictWord{5, 11, 486}, - dictWord{ - 135, - 11, - 1349, - }, - dictWord{7, 11, 1635}, - dictWord{8, 11, 17}, - dictWord{10, 11, 217}, - dictWord{138, 11, 295}, - dictWord{4, 10, 201}, - dictWord{7, 10, 1744}, - dictWord{ - 8, - 10, - 602, - }, - dictWord{11, 10, 247}, - dictWord{11, 10, 826}, - dictWord{145, 10, 65}, - dictWord{138, 11, 558}, - dictWord{11, 0, 551}, - dictWord{142, 0, 159}, - dictWord{8, 10, 164}, - dictWord{146, 10, 62}, - dictWord{139, 11, 176}, - dictWord{132, 0, 168}, - dictWord{136, 0, 1010}, - dictWord{134, 0, 1994}, - dictWord{ - 135, - 0, - 91, - }, - dictWord{138, 0, 532}, - dictWord{135, 10, 1243}, - dictWord{135, 0, 1884}, - dictWord{132, 10, 907}, - dictWord{5, 10, 100}, - dictWord{10, 10, 329}, - dictWord{12, 10, 416}, - dictWord{149, 10, 29}, - dictWord{134, 11, 447}, - dictWord{132, 10, 176}, - dictWord{5, 10, 636}, - dictWord{5, 10, 998}, - dictWord{7, 10, 9}, - dictWord{7, 10, 1508}, - dictWord{8, 10, 26}, - dictWord{9, 10, 317}, - dictWord{9, 10, 358}, - dictWord{10, 10, 210}, - dictWord{10, 10, 292}, - dictWord{10, 10, 533}, - dictWord{11, 10, 555}, - dictWord{12, 10, 526}, - dictWord{12, 10, 607}, - dictWord{13, 10, 263}, - dictWord{13, 10, 459}, - dictWord{142, 10, 271}, - dictWord{ - 4, - 11, - 609, - }, - dictWord{135, 11, 756}, - dictWord{6, 0, 15}, - dictWord{7, 0, 70}, - dictWord{10, 0, 240}, - dictWord{147, 0, 93}, - dictWord{4, 11, 930}, - dictWord{133, 11, 947}, - dictWord{134, 0, 1227}, - dictWord{134, 0, 1534}, - dictWord{133, 11, 939}, - dictWord{133, 11, 962}, - dictWord{5, 11, 651}, - dictWord{8, 11, 170}, - dictWord{ - 9, - 11, - 61, - }, - dictWord{9, 11, 63}, - dictWord{10, 11, 23}, - dictWord{10, 11, 37}, - dictWord{10, 11, 834}, - dictWord{11, 11, 4}, - dictWord{11, 11, 187}, - dictWord{ - 11, - 11, - 281, - }, - dictWord{11, 11, 503}, - dictWord{11, 11, 677}, - dictWord{12, 11, 96}, - dictWord{12, 11, 130}, - dictWord{12, 11, 244}, - dictWord{14, 11, 5}, - dictWord{ - 14, - 11, - 40, - }, - dictWord{14, 11, 162}, - dictWord{14, 11, 202}, - dictWord{146, 11, 133}, - dictWord{4, 11, 406}, - dictWord{5, 11, 579}, - dictWord{12, 11, 492}, - dictWord{ - 150, - 11, - 15, - }, - dictWord{139, 0, 392}, - dictWord{6, 10, 610}, - dictWord{10, 10, 127}, - dictWord{141, 10, 27}, - dictWord{7, 0, 655}, - dictWord{7, 0, 1844}, - dictWord{ - 136, - 10, - 119, - }, - dictWord{4, 0, 145}, - dictWord{6, 0, 176}, - dictWord{7, 0, 395}, - dictWord{137, 0, 562}, - dictWord{132, 0, 501}, - dictWord{140, 11, 145}, - dictWord{ - 136, - 0, - 1019, - }, - dictWord{134, 0, 509}, - dictWord{139, 0, 267}, - dictWord{6, 11, 17}, - dictWord{7, 11, 16}, - dictWord{7, 11, 1001}, - dictWord{7, 11, 1982}, - dictWord{ - 9, - 11, - 886, - }, - dictWord{10, 11, 489}, - dictWord{10, 11, 800}, - dictWord{11, 11, 782}, - dictWord{12, 11, 320}, - dictWord{13, 11, 467}, - dictWord{14, 11, 145}, - dictWord{14, 11, 387}, - dictWord{143, 11, 119}, - dictWord{145, 11, 17}, - dictWord{6, 0, 1099}, - dictWord{133, 11, 458}, - dictWord{7, 11, 1983}, - dictWord{8, 11, 0}, - dictWord{8, 11, 171}, - dictWord{9, 11, 120}, - dictWord{9, 11, 732}, - dictWord{10, 11, 473}, - dictWord{11, 11, 656}, - dictWord{11, 11, 998}, - dictWord{18, 11, 0}, - dictWord{18, 11, 2}, - dictWord{147, 11, 21}, - dictWord{12, 11, 427}, - dictWord{146, 11, 38}, - dictWord{10, 0, 948}, - dictWord{138, 0, 968}, - dictWord{7, 10, 126}, - dictWord{136, 10, 84}, - dictWord{136, 10, 790}, - dictWord{4, 0, 114}, - dictWord{9, 0, 492}, - dictWord{13, 0, 462}, - dictWord{142, 0, 215}, - dictWord{6, 10, 64}, - dictWord{12, 10, 377}, - dictWord{141, 10, 309}, - dictWord{4, 0, 77}, - dictWord{5, 0, 361}, - dictWord{6, 0, 139}, - dictWord{6, 0, 401}, - dictWord{6, 0, 404}, - dictWord{ - 7, - 0, - 413, - }, - dictWord{7, 0, 715}, - dictWord{7, 0, 1716}, - dictWord{11, 0, 279}, - dictWord{12, 0, 179}, - dictWord{12, 0, 258}, - dictWord{13, 0, 244}, - dictWord{142, 0, 358}, - dictWord{134, 0, 1717}, - dictWord{7, 0, 772}, - dictWord{7, 0, 1061}, - dictWord{7, 0, 1647}, - dictWord{8, 0, 82}, - dictWord{11, 0, 250}, - dictWord{11, 0, 607}, - dictWord{12, 0, 311}, - dictWord{12, 0, 420}, - dictWord{13, 0, 184}, - dictWord{13, 0, 367}, - dictWord{7, 10, 1104}, - dictWord{11, 10, 269}, - dictWord{11, 10, 539}, - dictWord{11, 10, 627}, - dictWord{11, 10, 706}, - dictWord{11, 10, 975}, - dictWord{12, 10, 248}, - dictWord{12, 10, 434}, - dictWord{12, 10, 600}, - dictWord{ - 12, - 10, - 622, - }, - dictWord{13, 10, 297}, - dictWord{13, 10, 485}, - dictWord{14, 10, 69}, - dictWord{14, 10, 409}, - dictWord{143, 10, 108}, - dictWord{135, 0, 724}, - dictWord{ - 4, - 11, - 512, - }, - dictWord{4, 11, 519}, - dictWord{133, 11, 342}, - dictWord{134, 0, 1133}, - dictWord{145, 11, 29}, - dictWord{11, 10, 977}, - dictWord{141, 10, 507}, - dictWord{6, 0, 841}, - dictWord{6, 0, 1042}, - dictWord{6, 0, 1194}, - dictWord{10, 0, 993}, - dictWord{140, 0, 1021}, - dictWord{6, 11, 31}, - dictWord{7, 11, 491}, - dictWord{7, 11, 530}, - dictWord{8, 11, 592}, - dictWord{9, 10, 34}, - dictWord{11, 11, 53}, - dictWord{11, 10, 484}, - dictWord{11, 11, 779}, - dictWord{12, 11, 167}, - dictWord{12, 11, 411}, - dictWord{14, 11, 14}, - dictWord{14, 11, 136}, - dictWord{15, 11, 72}, - dictWord{16, 11, 17}, - dictWord{144, 11, 72}, - dictWord{4, 0, 1021}, - dictWord{6, 0, 2037}, - dictWord{133, 11, 907}, - dictWord{7, 0, 373}, - dictWord{8, 0, 335}, - dictWord{8, 0, 596}, - dictWord{9, 0, 488}, - dictWord{6, 10, 1700}, - dictWord{ - 7, - 10, - 293, - }, - dictWord{7, 10, 382}, - dictWord{7, 10, 1026}, - dictWord{7, 10, 1087}, - dictWord{7, 10, 2027}, - dictWord{8, 10, 252}, - dictWord{8, 10, 727}, - dictWord{ - 8, - 10, - 729, - }, - dictWord{9, 10, 30}, - dictWord{9, 10, 199}, - dictWord{9, 10, 231}, - dictWord{9, 10, 251}, - dictWord{9, 10, 334}, - dictWord{9, 10, 361}, - dictWord{9, 10, 712}, - dictWord{10, 10, 55}, - dictWord{10, 10, 60}, - dictWord{10, 10, 232}, - dictWord{10, 10, 332}, - dictWord{10, 10, 384}, - dictWord{10, 10, 396}, - dictWord{ - 10, - 10, - 504, - }, - dictWord{10, 10, 542}, - dictWord{10, 10, 652}, - dictWord{11, 10, 20}, - dictWord{11, 10, 48}, - dictWord{11, 10, 207}, - dictWord{11, 10, 291}, - dictWord{ - 11, - 10, - 298, - }, - dictWord{11, 10, 342}, - dictWord{11, 10, 365}, - dictWord{11, 10, 394}, - dictWord{11, 10, 620}, - dictWord{11, 10, 705}, - dictWord{11, 10, 1017}, - dictWord{12, 10, 123}, - dictWord{12, 10, 340}, - dictWord{12, 10, 406}, - dictWord{12, 10, 643}, - dictWord{13, 10, 61}, - dictWord{13, 10, 269}, - dictWord{ - 13, - 10, - 311, - }, - dictWord{13, 10, 319}, - dictWord{13, 10, 486}, - dictWord{14, 10, 234}, - dictWord{15, 10, 62}, - dictWord{15, 10, 85}, - dictWord{16, 10, 71}, - dictWord{ - 18, - 10, - 119, - }, - dictWord{148, 10, 105}, - dictWord{150, 0, 37}, - dictWord{4, 11, 208}, - dictWord{5, 11, 106}, - dictWord{6, 11, 531}, - dictWord{8, 11, 408}, - dictWord{ - 9, - 11, - 188, - }, - dictWord{138, 11, 572}, - dictWord{132, 0, 564}, - dictWord{6, 0, 513}, - dictWord{135, 0, 1052}, - dictWord{132, 0, 825}, - dictWord{9, 0, 899}, - dictWord{ - 140, - 11, - 441, - }, - dictWord{134, 0, 778}, - dictWord{133, 11, 379}, - dictWord{7, 0, 1417}, - dictWord{12, 0, 382}, - dictWord{17, 0, 48}, - dictWord{152, 0, 12}, - dictWord{ - 132, - 11, - 241, - }, - dictWord{7, 0, 1116}, - dictWord{6, 10, 379}, - dictWord{7, 10, 270}, - dictWord{8, 10, 176}, - dictWord{8, 10, 183}, - dictWord{9, 10, 432}, - dictWord{ - 9, - 10, - 661, - }, - dictWord{12, 10, 247}, - dictWord{12, 10, 617}, - dictWord{146, 10, 125}, - dictWord{5, 10, 792}, - dictWord{133, 10, 900}, - dictWord{6, 0, 545}, - dictWord{ - 7, - 0, - 565, - }, - dictWord{7, 0, 1669}, - dictWord{10, 0, 114}, - dictWord{11, 0, 642}, - dictWord{140, 0, 618}, - dictWord{133, 0, 5}, - dictWord{138, 11, 7}, - dictWord{ - 132, - 11, - 259, - }, - dictWord{135, 0, 192}, - dictWord{134, 0, 701}, - dictWord{136, 0, 763}, - dictWord{135, 10, 1979}, - dictWord{4, 10, 901}, - dictWord{133, 10, 776}, - dictWord{10, 0, 755}, - dictWord{147, 0, 29}, - dictWord{133, 0, 759}, - dictWord{4, 11, 173}, - dictWord{5, 11, 312}, - dictWord{5, 11, 512}, - dictWord{135, 11, 1285}, - dictWord{7, 11, 1603}, - dictWord{7, 11, 1691}, - dictWord{9, 11, 464}, - dictWord{11, 11, 195}, - dictWord{12, 11, 279}, - dictWord{12, 11, 448}, - dictWord{ - 14, - 11, - 11, - }, - dictWord{147, 11, 102}, - dictWord{7, 0, 370}, - dictWord{7, 0, 1007}, - dictWord{7, 0, 1177}, - dictWord{135, 0, 1565}, - dictWord{135, 0, 1237}, - dictWord{ - 4, - 0, - 87, - }, - dictWord{5, 0, 250}, - dictWord{141, 0, 298}, - dictWord{4, 11, 452}, - dictWord{5, 11, 583}, - dictWord{5, 11, 817}, - dictWord{6, 11, 433}, - dictWord{7, 11, 593}, - dictWord{7, 11, 720}, - dictWord{7, 11, 1378}, - dictWord{8, 11, 161}, - dictWord{9, 11, 284}, - dictWord{10, 11, 313}, - dictWord{139, 11, 886}, - dictWord{4, 11, 547}, - dictWord{135, 11, 1409}, - dictWord{136, 11, 722}, - dictWord{4, 10, 37}, - dictWord{5, 10, 334}, - dictWord{135, 10, 1253}, - dictWord{132, 10, 508}, - dictWord{ - 12, - 0, - 107, - }, - dictWord{146, 0, 31}, - dictWord{8, 11, 420}, - dictWord{139, 11, 193}, - dictWord{135, 0, 814}, - dictWord{135, 11, 409}, - dictWord{140, 0, 991}, - dictWord{4, 0, 57}, - dictWord{7, 0, 1195}, - dictWord{7, 0, 1438}, - dictWord{7, 0, 1548}, - dictWord{7, 0, 1835}, - dictWord{7, 0, 1904}, - dictWord{9, 0, 757}, - dictWord{ - 10, - 0, - 604, - }, - dictWord{139, 0, 519}, - dictWord{132, 0, 540}, - dictWord{138, 11, 308}, - dictWord{132, 10, 533}, - dictWord{136, 0, 608}, - dictWord{144, 11, 65}, - dictWord{4, 0, 1014}, - dictWord{134, 0, 2029}, - dictWord{4, 0, 209}, - dictWord{7, 0, 902}, - dictWord{5, 11, 1002}, - dictWord{136, 11, 745}, - dictWord{134, 0, 2030}, - dictWord{6, 0, 303}, - dictWord{7, 0, 335}, - dictWord{7, 0, 1437}, - dictWord{7, 0, 1668}, - dictWord{8, 0, 553}, - dictWord{8, 0, 652}, - dictWord{8, 0, 656}, - dictWord{ - 9, - 0, - 558, - }, - dictWord{11, 0, 743}, - dictWord{149, 0, 18}, - dictWord{5, 11, 575}, - dictWord{6, 11, 354}, - dictWord{135, 11, 701}, - dictWord{4, 11, 239}, - dictWord{ - 6, - 11, - 477, - }, - dictWord{7, 11, 1607}, - dictWord{11, 11, 68}, - dictWord{139, 11, 617}, - dictWord{132, 0, 559}, - dictWord{8, 0, 527}, - dictWord{18, 0, 60}, - dictWord{ - 147, - 0, - 24, - }, - dictWord{133, 10, 920}, - dictWord{138, 0, 511}, - dictWord{133, 0, 1017}, - dictWord{133, 0, 675}, - dictWord{138, 10, 391}, - dictWord{11, 0, 156}, - dictWord{135, 10, 1952}, - dictWord{138, 11, 369}, - dictWord{132, 11, 367}, - dictWord{133, 0, 709}, - dictWord{6, 0, 698}, - dictWord{134, 0, 887}, - dictWord{ - 142, - 10, - 126, - }, - dictWord{134, 0, 1745}, - dictWord{132, 10, 483}, - dictWord{13, 11, 299}, - dictWord{142, 11, 75}, - dictWord{133, 0, 714}, - dictWord{7, 0, 8}, - dictWord{ - 136, - 0, - 206, - }, - dictWord{138, 10, 480}, - dictWord{4, 11, 694}, - dictWord{9, 10, 495}, - dictWord{146, 10, 104}, - dictWord{7, 11, 1248}, - dictWord{11, 11, 621}, - dictWord{139, 11, 702}, - dictWord{140, 11, 687}, - dictWord{132, 0, 776}, - dictWord{139, 10, 1009}, - dictWord{135, 0, 1272}, - dictWord{134, 0, 1059}, - dictWord{ - 8, - 10, - 653, - }, - dictWord{13, 10, 93}, - dictWord{147, 10, 14}, - dictWord{135, 11, 213}, - dictWord{136, 0, 406}, - dictWord{133, 10, 172}, - dictWord{132, 0, 947}, - dictWord{8, 0, 175}, - dictWord{10, 0, 168}, - dictWord{138, 0, 573}, - dictWord{132, 0, 870}, - dictWord{6, 0, 1567}, - dictWord{151, 11, 28}, - dictWord{ - 134, - 11, - 472, - }, - dictWord{5, 10, 260}, - dictWord{136, 11, 132}, - dictWord{4, 11, 751}, - dictWord{11, 11, 390}, - dictWord{140, 11, 32}, - dictWord{4, 11, 409}, - dictWord{ - 133, - 11, - 78, - }, - dictWord{12, 0, 554}, - dictWord{6, 11, 473}, - dictWord{145, 11, 105}, - dictWord{133, 0, 784}, - dictWord{8, 0, 908}, - dictWord{136, 11, 306}, - dictWord{139, 0, 882}, - dictWord{6, 0, 358}, - dictWord{7, 0, 1393}, - dictWord{8, 0, 396}, - dictWord{10, 0, 263}, - dictWord{14, 0, 154}, - dictWord{16, 0, 48}, - dictWord{ - 17, - 0, - 8, - }, - dictWord{7, 11, 1759}, - dictWord{8, 11, 396}, - dictWord{10, 11, 263}, - dictWord{14, 11, 154}, - dictWord{16, 11, 48}, - dictWord{145, 11, 8}, - dictWord{ - 13, - 11, - 163, - }, - dictWord{13, 11, 180}, - dictWord{18, 11, 78}, - dictWord{148, 11, 35}, - dictWord{14, 0, 32}, - dictWord{18, 0, 85}, - dictWord{20, 0, 2}, - dictWord{152, 0, 16}, - dictWord{7, 0, 228}, - dictWord{10, 0, 770}, - dictWord{8, 10, 167}, - dictWord{8, 10, 375}, - dictWord{9, 10, 82}, - dictWord{9, 10, 561}, - dictWord{138, 10, 620}, - dictWord{132, 0, 845}, - dictWord{9, 0, 14}, - dictWord{9, 0, 441}, - dictWord{10, 0, 306}, - dictWord{139, 0, 9}, - dictWord{11, 0, 966}, - dictWord{12, 0, 287}, - dictWord{ - 13, - 0, - 342, - }, - dictWord{13, 0, 402}, - dictWord{15, 0, 110}, - dictWord{15, 0, 163}, - dictWord{8, 10, 194}, - dictWord{136, 10, 756}, - dictWord{134, 0, 1578}, - dictWord{ - 4, - 0, - 967, - }, - dictWord{6, 0, 1820}, - dictWord{6, 0, 1847}, - dictWord{140, 0, 716}, - dictWord{136, 0, 594}, - dictWord{7, 0, 1428}, - dictWord{7, 0, 1640}, - dictWord{ - 7, - 0, - 1867, - }, - dictWord{9, 0, 169}, - dictWord{9, 0, 182}, - dictWord{9, 0, 367}, - dictWord{9, 0, 478}, - dictWord{9, 0, 506}, - dictWord{9, 0, 551}, - dictWord{9, 0, 557}, - dictWord{ - 9, - 0, - 648, - }, - dictWord{9, 0, 697}, - dictWord{9, 0, 705}, - dictWord{9, 0, 725}, - dictWord{9, 0, 787}, - dictWord{9, 0, 794}, - dictWord{10, 0, 198}, - dictWord{10, 0, 214}, - dictWord{10, 0, 267}, - dictWord{10, 0, 275}, - dictWord{10, 0, 456}, - dictWord{10, 0, 551}, - dictWord{10, 0, 561}, - dictWord{10, 0, 613}, - dictWord{10, 0, 627}, - dictWord{ - 10, - 0, - 668, - }, - dictWord{10, 0, 675}, - dictWord{10, 0, 691}, - dictWord{10, 0, 695}, - dictWord{10, 0, 707}, - dictWord{10, 0, 715}, - dictWord{11, 0, 183}, - dictWord{ - 11, - 0, - 201, - }, - dictWord{11, 0, 244}, - dictWord{11, 0, 262}, - dictWord{11, 0, 352}, - dictWord{11, 0, 439}, - dictWord{11, 0, 493}, - dictWord{11, 0, 572}, - dictWord{11, 0, 591}, - dictWord{11, 0, 608}, - dictWord{11, 0, 611}, - dictWord{11, 0, 646}, - dictWord{11, 0, 674}, - dictWord{11, 0, 711}, - dictWord{11, 0, 751}, - dictWord{11, 0, 761}, - dictWord{11, 0, 776}, - dictWord{11, 0, 785}, - dictWord{11, 0, 850}, - dictWord{11, 0, 853}, - dictWord{11, 0, 862}, - dictWord{11, 0, 865}, - dictWord{11, 0, 868}, - dictWord{ - 11, - 0, - 875, - }, - dictWord{11, 0, 898}, - dictWord{11, 0, 902}, - dictWord{11, 0, 903}, - dictWord{11, 0, 910}, - dictWord{11, 0, 932}, - dictWord{11, 0, 942}, - dictWord{ - 11, - 0, - 957, - }, - dictWord{11, 0, 967}, - dictWord{11, 0, 972}, - dictWord{12, 0, 148}, - dictWord{12, 0, 195}, - dictWord{12, 0, 220}, - dictWord{12, 0, 237}, - dictWord{12, 0, 318}, - dictWord{12, 0, 339}, - dictWord{12, 0, 393}, - dictWord{12, 0, 445}, - dictWord{12, 0, 450}, - dictWord{12, 0, 474}, - dictWord{12, 0, 505}, - dictWord{12, 0, 509}, - dictWord{12, 0, 533}, - dictWord{12, 0, 591}, - dictWord{12, 0, 594}, - dictWord{12, 0, 597}, - dictWord{12, 0, 621}, - dictWord{12, 0, 633}, - dictWord{12, 0, 642}, - dictWord{ - 13, - 0, - 59, - }, - dictWord{13, 0, 60}, - dictWord{13, 0, 145}, - dictWord{13, 0, 239}, - dictWord{13, 0, 250}, - dictWord{13, 0, 329}, - dictWord{13, 0, 344}, - dictWord{13, 0, 365}, - dictWord{13, 0, 372}, - dictWord{13, 0, 387}, - dictWord{13, 0, 403}, - dictWord{13, 0, 414}, - dictWord{13, 0, 456}, - dictWord{13, 0, 470}, - dictWord{13, 0, 478}, - dictWord{13, 0, 483}, - dictWord{13, 0, 489}, - dictWord{14, 0, 55}, - dictWord{14, 0, 57}, - dictWord{14, 0, 81}, - dictWord{14, 0, 90}, - dictWord{14, 0, 148}, - dictWord{ - 14, - 0, - 239, - }, - dictWord{14, 0, 266}, - dictWord{14, 0, 321}, - dictWord{14, 0, 326}, - dictWord{14, 0, 327}, - dictWord{14, 0, 330}, - dictWord{14, 0, 347}, - dictWord{14, 0, 355}, - dictWord{14, 0, 401}, - dictWord{14, 0, 404}, - dictWord{14, 0, 411}, - dictWord{14, 0, 414}, - dictWord{14, 0, 416}, - dictWord{14, 0, 420}, - dictWord{15, 0, 61}, - dictWord{15, 0, 74}, - dictWord{15, 0, 87}, - dictWord{15, 0, 88}, - dictWord{15, 0, 94}, - dictWord{15, 0, 96}, - dictWord{15, 0, 116}, - dictWord{15, 0, 149}, - dictWord{15, 0, 154}, - dictWord{16, 0, 50}, - dictWord{16, 0, 63}, - dictWord{16, 0, 73}, - dictWord{17, 0, 2}, - dictWord{17, 0, 66}, - dictWord{17, 0, 92}, - dictWord{17, 0, 103}, - dictWord{ - 17, - 0, - 112, - }, - dictWord{17, 0, 120}, - dictWord{18, 0, 50}, - dictWord{18, 0, 54}, - dictWord{18, 0, 82}, - dictWord{18, 0, 86}, - dictWord{18, 0, 90}, - dictWord{18, 0, 111}, - dictWord{ - 18, - 0, - 115, - }, - dictWord{18, 0, 156}, - dictWord{19, 0, 40}, - dictWord{19, 0, 79}, - dictWord{20, 0, 78}, - dictWord{21, 0, 22}, - dictWord{135, 11, 883}, - dictWord{5, 0, 161}, - dictWord{135, 0, 839}, - dictWord{4, 0, 782}, - dictWord{13, 11, 293}, - dictWord{142, 11, 56}, - dictWord{133, 11, 617}, - dictWord{139, 11, 50}, - dictWord{ - 135, - 10, - 22, - }, - dictWord{145, 0, 64}, - dictWord{5, 10, 639}, - dictWord{7, 10, 1249}, - dictWord{139, 10, 896}, - dictWord{138, 0, 998}, - dictWord{135, 11, 2042}, - dictWord{ - 4, - 11, - 546, - }, - dictWord{142, 11, 233}, - dictWord{6, 0, 1043}, - dictWord{134, 0, 1574}, - dictWord{134, 0, 1496}, - dictWord{4, 10, 102}, - dictWord{7, 10, 815}, - dictWord{7, 10, 1699}, - dictWord{139, 10, 964}, - dictWord{12, 0, 781}, - dictWord{142, 0, 461}, - dictWord{4, 11, 313}, - dictWord{133, 11, 577}, - dictWord{ - 6, - 0, - 639, - }, - dictWord{6, 0, 1114}, - dictWord{137, 0, 817}, - dictWord{8, 11, 184}, - dictWord{141, 11, 433}, - dictWord{7, 0, 1814}, - dictWord{135, 11, 935}, - dictWord{ - 10, - 0, - 997, - }, - dictWord{140, 0, 958}, - dictWord{4, 0, 812}, - dictWord{137, 11, 625}, - dictWord{132, 10, 899}, - dictWord{136, 10, 795}, - dictWord{5, 11, 886}, - dictWord{6, 11, 46}, - dictWord{6, 11, 1790}, - dictWord{7, 11, 14}, - dictWord{7, 11, 732}, - dictWord{7, 11, 1654}, - dictWord{8, 11, 95}, - dictWord{8, 11, 327}, - dictWord{ - 8, - 11, - 616, - }, - dictWord{10, 11, 598}, - dictWord{10, 11, 769}, - dictWord{11, 11, 134}, - dictWord{11, 11, 747}, - dictWord{12, 11, 378}, - dictWord{142, 11, 97}, - dictWord{136, 0, 139}, - dictWord{6, 10, 52}, - dictWord{9, 10, 104}, - dictWord{9, 10, 559}, - dictWord{12, 10, 308}, - dictWord{147, 10, 87}, - dictWord{133, 11, 1021}, - dictWord{132, 10, 604}, - dictWord{132, 10, 301}, - dictWord{136, 10, 779}, - dictWord{7, 0, 643}, - dictWord{136, 0, 236}, - dictWord{132, 11, 153}, - dictWord{ - 134, - 0, - 1172, - }, - dictWord{147, 10, 32}, - dictWord{133, 11, 798}, - dictWord{6, 0, 1338}, - dictWord{132, 11, 587}, - dictWord{6, 11, 598}, - dictWord{7, 11, 42}, - dictWord{ - 8, - 11, - 695, - }, - dictWord{10, 11, 212}, - dictWord{11, 11, 158}, - dictWord{14, 11, 196}, - dictWord{145, 11, 85}, - dictWord{135, 10, 508}, - dictWord{5, 11, 957}, - dictWord{5, 11, 1008}, - dictWord{135, 11, 249}, - dictWord{4, 11, 129}, - dictWord{135, 11, 465}, - dictWord{5, 0, 54}, - dictWord{7, 11, 470}, - dictWord{7, 11, 1057}, - dictWord{7, 11, 1201}, - dictWord{9, 11, 755}, - dictWord{11, 11, 906}, - dictWord{140, 11, 527}, - dictWord{7, 11, 908}, - dictWord{146, 11, 7}, - dictWord{ - 5, - 11, - 148, - }, - dictWord{136, 11, 450}, - dictWord{144, 11, 1}, - dictWord{4, 0, 256}, - dictWord{135, 0, 1488}, - dictWord{9, 0, 351}, - dictWord{6, 10, 310}, - dictWord{ - 7, - 10, - 1849, - }, - dictWord{8, 10, 72}, - dictWord{8, 10, 272}, - dictWord{8, 10, 431}, - dictWord{9, 10, 12}, - dictWord{10, 10, 563}, - dictWord{10, 10, 630}, - dictWord{ - 10, - 10, - 796, - }, - dictWord{10, 10, 810}, - dictWord{11, 10, 367}, - dictWord{11, 10, 599}, - dictWord{11, 10, 686}, - dictWord{140, 10, 672}, - dictWord{6, 0, 1885}, - dictWord{ - 6, - 0, - 1898, - }, - dictWord{6, 0, 1899}, - dictWord{140, 0, 955}, - dictWord{4, 0, 714}, - dictWord{133, 0, 469}, - dictWord{6, 0, 1270}, - dictWord{134, 0, 1456}, - dictWord{132, 0, 744}, - dictWord{6, 0, 313}, - dictWord{7, 10, 537}, - dictWord{8, 10, 64}, - dictWord{9, 10, 127}, - dictWord{10, 10, 496}, - dictWord{12, 10, 510}, - dictWord{141, 10, 384}, - dictWord{4, 11, 217}, - dictWord{4, 10, 244}, - dictWord{5, 11, 710}, - dictWord{7, 10, 233}, - dictWord{7, 11, 1926}, - dictWord{9, 11, 428}, - dictWord{9, 11, 708}, - dictWord{10, 11, 254}, - dictWord{10, 11, 296}, - dictWord{10, 11, 720}, - dictWord{11, 11, 109}, - dictWord{11, 11, 255}, - dictWord{12, 11, 165}, - dictWord{12, 11, 315}, - dictWord{13, 11, 107}, - dictWord{13, 11, 203}, - dictWord{14, 11, 54}, - dictWord{14, 11, 99}, - dictWord{14, 11, 114}, - dictWord{ - 14, - 11, - 388, - }, - dictWord{16, 11, 85}, - dictWord{17, 11, 9}, - dictWord{17, 11, 33}, - dictWord{20, 11, 25}, - dictWord{20, 11, 28}, - dictWord{20, 11, 29}, - dictWord{21, 11, 9}, - dictWord{21, 11, 10}, - dictWord{21, 11, 34}, - dictWord{150, 11, 17}, - dictWord{138, 0, 402}, - dictWord{7, 0, 969}, - dictWord{146, 0, 55}, - dictWord{8, 0, 50}, - dictWord{ - 137, - 0, - 624, - }, - dictWord{134, 0, 1355}, - dictWord{132, 0, 572}, - dictWord{134, 10, 1650}, - dictWord{10, 10, 702}, - dictWord{139, 10, 245}, - dictWord{ - 10, - 0, - 847, - }, - dictWord{142, 0, 445}, - dictWord{6, 0, 43}, - dictWord{7, 0, 38}, - dictWord{8, 0, 248}, - dictWord{138, 0, 513}, - dictWord{133, 0, 369}, - dictWord{137, 10, 338}, - dictWord{133, 0, 766}, - dictWord{133, 0, 363}, - dictWord{133, 10, 896}, - dictWord{8, 11, 392}, - dictWord{11, 11, 54}, - dictWord{13, 11, 173}, - dictWord{ - 13, - 11, - 294, - }, - dictWord{148, 11, 7}, - dictWord{134, 0, 678}, - dictWord{7, 11, 1230}, - dictWord{136, 11, 531}, - dictWord{6, 0, 258}, - dictWord{140, 0, 409}, - dictWord{ - 5, - 0, - 249, - }, - dictWord{148, 0, 82}, - dictWord{7, 10, 1117}, - dictWord{136, 10, 539}, - dictWord{5, 0, 393}, - dictWord{6, 0, 378}, - dictWord{7, 0, 1981}, - dictWord{9, 0, 32}, - dictWord{9, 0, 591}, - dictWord{10, 0, 685}, - dictWord{10, 0, 741}, - dictWord{142, 0, 382}, - dictWord{133, 0, 788}, - dictWord{134, 0, 1281}, - dictWord{ - 134, - 0, - 1295, - }, - dictWord{7, 0, 1968}, - dictWord{141, 0, 509}, - dictWord{4, 0, 61}, - dictWord{5, 0, 58}, - dictWord{5, 0, 171}, - dictWord{5, 0, 683}, - dictWord{6, 0, 291}, - dictWord{ - 6, - 0, - 566, - }, - dictWord{7, 0, 1650}, - dictWord{11, 0, 523}, - dictWord{12, 0, 273}, - dictWord{12, 0, 303}, - dictWord{15, 0, 39}, - dictWord{143, 0, 111}, - dictWord{ - 6, - 0, - 706, - }, - dictWord{134, 0, 1283}, - dictWord{134, 0, 589}, - dictWord{135, 11, 1433}, - dictWord{133, 11, 435}, - dictWord{7, 0, 1059}, - dictWord{13, 0, 54}, - dictWord{ - 5, - 10, - 4, - }, - dictWord{5, 10, 810}, - dictWord{6, 10, 13}, - dictWord{6, 10, 538}, - dictWord{6, 10, 1690}, - dictWord{6, 10, 1726}, - dictWord{7, 10, 1819}, - dictWord{ - 8, - 10, - 148, - }, - dictWord{8, 10, 696}, - dictWord{8, 10, 791}, - dictWord{12, 10, 125}, - dictWord{143, 10, 9}, - dictWord{135, 10, 1268}, - dictWord{5, 11, 85}, - dictWord{ - 6, - 11, - 419, - }, - dictWord{7, 11, 134}, - dictWord{7, 11, 305}, - dictWord{7, 11, 361}, - dictWord{7, 11, 1337}, - dictWord{8, 11, 71}, - dictWord{140, 11, 519}, - dictWord{ - 137, - 0, - 824, - }, - dictWord{140, 11, 688}, - dictWord{5, 11, 691}, - dictWord{7, 11, 345}, - dictWord{7, 10, 1385}, - dictWord{9, 11, 94}, - dictWord{11, 10, 582}, - dictWord{ - 11, - 10, - 650, - }, - dictWord{11, 10, 901}, - dictWord{11, 10, 949}, - dictWord{12, 11, 169}, - dictWord{12, 10, 232}, - dictWord{12, 10, 236}, - dictWord{13, 10, 413}, - dictWord{13, 10, 501}, - dictWord{146, 10, 116}, - dictWord{4, 0, 917}, - dictWord{133, 0, 1005}, - dictWord{7, 0, 1598}, - dictWord{5, 11, 183}, - dictWord{6, 11, 582}, - dictWord{9, 11, 344}, - dictWord{10, 11, 679}, - dictWord{140, 11, 435}, - dictWord{4, 10, 925}, - dictWord{5, 10, 803}, - dictWord{8, 10, 698}, - dictWord{ - 138, - 10, - 828, - }, - dictWord{132, 0, 919}, - dictWord{135, 11, 511}, - dictWord{139, 10, 992}, - dictWord{4, 0, 255}, - dictWord{5, 0, 302}, - dictWord{6, 0, 132}, - dictWord{ - 7, - 0, - 128, - }, - dictWord{7, 0, 283}, - dictWord{7, 0, 1299}, - dictWord{10, 0, 52}, - dictWord{10, 0, 514}, - dictWord{11, 0, 925}, - dictWord{13, 0, 92}, - dictWord{142, 0, 309}, - dictWord{134, 0, 1369}, - dictWord{135, 10, 1847}, - dictWord{134, 0, 328}, - dictWord{7, 11, 1993}, - dictWord{136, 11, 684}, - dictWord{133, 10, 383}, - dictWord{137, 0, 173}, - dictWord{134, 11, 583}, - dictWord{134, 0, 1411}, - dictWord{19, 0, 65}, - dictWord{5, 11, 704}, - dictWord{8, 11, 357}, - dictWord{10, 11, 745}, - dictWord{14, 11, 426}, - dictWord{17, 11, 94}, - dictWord{147, 11, 57}, - dictWord{9, 10, 660}, - dictWord{138, 10, 347}, - dictWord{4, 11, 179}, - dictWord{5, 11, 198}, - dictWord{133, 11, 697}, - dictWord{7, 11, 347}, - dictWord{7, 11, 971}, - dictWord{8, 11, 181}, - dictWord{138, 11, 711}, - dictWord{141, 0, 442}, - dictWord{ - 11, - 0, - 842, - }, - dictWord{11, 0, 924}, - dictWord{13, 0, 317}, - dictWord{13, 0, 370}, - dictWord{13, 0, 469}, - dictWord{13, 0, 471}, - dictWord{14, 0, 397}, - dictWord{18, 0, 69}, - dictWord{18, 0, 145}, - dictWord{7, 10, 572}, - dictWord{9, 10, 592}, - dictWord{11, 10, 680}, - dictWord{12, 10, 356}, - dictWord{140, 10, 550}, - dictWord{14, 11, 19}, - dictWord{14, 11, 28}, - dictWord{144, 11, 29}, - dictWord{136, 0, 534}, - dictWord{4, 11, 243}, - dictWord{5, 11, 203}, - dictWord{7, 11, 19}, - dictWord{7, 11, 71}, - dictWord{7, 11, 113}, - dictWord{10, 11, 405}, - dictWord{11, 11, 357}, - dictWord{142, 11, 240}, - dictWord{6, 0, 210}, - dictWord{10, 0, 845}, - dictWord{138, 0, 862}, - dictWord{7, 11, 1351}, - dictWord{9, 11, 581}, - dictWord{10, 11, 639}, - dictWord{11, 11, 453}, - dictWord{140, 11, 584}, - dictWord{7, 11, 1450}, - dictWord{ - 139, - 11, - 99, - }, - dictWord{10, 0, 892}, - dictWord{12, 0, 719}, - dictWord{144, 0, 105}, - dictWord{4, 0, 284}, - dictWord{6, 0, 223}, - dictWord{134, 11, 492}, - dictWord{5, 11, 134}, - dictWord{6, 11, 408}, - dictWord{6, 11, 495}, - dictWord{135, 11, 1593}, - dictWord{136, 0, 529}, - dictWord{137, 0, 807}, - dictWord{4, 0, 218}, - dictWord{7, 0, 526}, - dictWord{143, 0, 137}, - dictWord{6, 0, 1444}, - dictWord{142, 11, 4}, - dictWord{132, 11, 665}, - dictWord{4, 0, 270}, - dictWord{5, 0, 192}, - dictWord{6, 0, 332}, - dictWord{7, 0, 1322}, - dictWord{4, 11, 248}, - dictWord{7, 11, 137}, - dictWord{137, 11, 349}, - dictWord{140, 0, 661}, - dictWord{7, 0, 1517}, - dictWord{11, 0, 597}, - dictWord{14, 0, 76}, - dictWord{14, 0, 335}, - dictWord{20, 0, 33}, - dictWord{7, 10, 748}, - dictWord{139, 10, 700}, - dictWord{5, 11, 371}, - dictWord{135, 11, 563}, - dictWord{146, 11, 57}, - dictWord{133, 10, 127}, - dictWord{133, 0, 418}, - dictWord{4, 11, 374}, - dictWord{7, 11, 547}, - dictWord{7, 11, 1700}, - dictWord{7, 11, 1833}, - dictWord{139, 11, 858}, - dictWord{6, 10, 198}, - dictWord{140, 10, 83}, - dictWord{7, 11, 1812}, - dictWord{13, 11, 259}, - dictWord{13, 11, 356}, - dictWord{ - 14, - 11, - 242, - }, - dictWord{147, 11, 114}, - dictWord{7, 0, 379}, - dictWord{8, 0, 481}, - dictWord{9, 0, 377}, - dictWord{5, 10, 276}, - dictWord{6, 10, 55}, - dictWord{ - 135, - 10, - 1369, - }, - dictWord{138, 11, 286}, - dictWord{5, 0, 1003}, - dictWord{6, 0, 149}, - dictWord{6, 10, 1752}, - dictWord{136, 10, 726}, - dictWord{8, 0, 262}, - dictWord{ - 9, - 0, - 627, - }, - dictWord{10, 0, 18}, - dictWord{11, 0, 214}, - dictWord{11, 0, 404}, - dictWord{11, 0, 457}, - dictWord{11, 0, 780}, - dictWord{11, 0, 913}, - dictWord{13, 0, 401}, - dictWord{14, 0, 200}, - dictWord{6, 11, 1647}, - dictWord{7, 11, 1552}, - dictWord{7, 11, 2010}, - dictWord{9, 11, 494}, - dictWord{137, 11, 509}, - dictWord{ - 135, - 0, - 742, - }, - dictWord{136, 0, 304}, - dictWord{132, 0, 142}, - dictWord{133, 10, 764}, - dictWord{6, 10, 309}, - dictWord{7, 10, 331}, - dictWord{138, 10, 550}, - dictWord{135, 10, 1062}, - dictWord{6, 11, 123}, - dictWord{7, 11, 214}, - dictWord{7, 10, 986}, - dictWord{9, 11, 728}, - dictWord{10, 11, 157}, - dictWord{11, 11, 346}, - dictWord{11, 11, 662}, - dictWord{143, 11, 106}, - dictWord{135, 10, 1573}, - dictWord{7, 0, 925}, - dictWord{137, 0, 799}, - dictWord{4, 0, 471}, - dictWord{5, 0, 51}, - dictWord{6, 0, 602}, - dictWord{8, 0, 484}, - dictWord{138, 0, 195}, - dictWord{136, 0, 688}, - dictWord{132, 0, 697}, - dictWord{6, 0, 1169}, - dictWord{6, 0, 1241}, - dictWord{6, 10, 194}, - dictWord{7, 10, 133}, - dictWord{10, 10, 493}, - dictWord{10, 10, 570}, - dictWord{139, 10, 664}, - dictWord{140, 0, 751}, - dictWord{7, 0, 929}, - dictWord{10, 0, 452}, - dictWord{11, 0, 878}, - dictWord{16, 0, 33}, - dictWord{5, 10, 24}, - dictWord{5, 10, 569}, - dictWord{6, 10, 3}, - dictWord{6, 10, 119}, - dictWord{ - 6, - 10, - 143, - }, - dictWord{6, 10, 440}, - dictWord{7, 10, 599}, - dictWord{7, 10, 1686}, - dictWord{7, 10, 1854}, - dictWord{8, 10, 424}, - dictWord{9, 10, 43}, - dictWord{ - 9, - 10, - 584, - }, - dictWord{9, 10, 760}, - dictWord{10, 10, 328}, - dictWord{11, 10, 159}, - dictWord{11, 10, 253}, - dictWord{12, 10, 487}, - dictWord{140, 10, 531}, - dictWord{ - 4, - 11, - 707, - }, - dictWord{13, 11, 106}, - dictWord{18, 11, 49}, - dictWord{147, 11, 41}, - dictWord{5, 0, 221}, - dictWord{5, 11, 588}, - dictWord{134, 11, 393}, - dictWord{134, 0, 1437}, - dictWord{6, 11, 211}, - dictWord{7, 11, 1690}, - dictWord{11, 11, 486}, - dictWord{140, 11, 369}, - dictWord{5, 10, 14}, - dictWord{5, 10, 892}, - dictWord{6, 10, 283}, - dictWord{7, 10, 234}, - dictWord{136, 10, 537}, - dictWord{4, 0, 988}, - dictWord{136, 0, 955}, - dictWord{135, 0, 1251}, - dictWord{4, 10, 126}, - dictWord{8, 10, 635}, - dictWord{147, 10, 34}, - dictWord{4, 10, 316}, - dictWord{135, 10, 1561}, - dictWord{137, 10, 861}, - dictWord{4, 10, 64}, - dictWord{ - 5, - 10, - 352, - }, - dictWord{5, 10, 720}, - dictWord{6, 10, 368}, - dictWord{139, 10, 359}, - dictWord{134, 0, 192}, - dictWord{4, 0, 132}, - dictWord{5, 0, 69}, - dictWord{ - 135, - 0, - 1242, - }, - dictWord{7, 10, 1577}, - dictWord{10, 10, 304}, - dictWord{10, 10, 549}, - dictWord{12, 10, 365}, - dictWord{13, 10, 220}, - dictWord{13, 10, 240}, - dictWord{142, 10, 33}, - dictWord{4, 0, 111}, - dictWord{7, 0, 865}, - dictWord{134, 11, 219}, - dictWord{5, 11, 582}, - dictWord{6, 11, 1646}, - dictWord{7, 11, 99}, - dictWord{ - 7, - 11, - 1962, - }, - dictWord{7, 11, 1986}, - dictWord{8, 11, 515}, - dictWord{8, 11, 773}, - dictWord{9, 11, 23}, - dictWord{9, 11, 491}, - dictWord{12, 11, 620}, - dictWord{ - 14, - 11, - 52, - }, - dictWord{145, 11, 50}, - dictWord{132, 0, 767}, - dictWord{7, 11, 568}, - dictWord{148, 11, 21}, - dictWord{6, 0, 42}, - dictWord{7, 0, 1416}, - dictWord{ - 7, - 0, - 2005, - }, - dictWord{8, 0, 131}, - dictWord{8, 0, 466}, - dictWord{9, 0, 672}, - dictWord{13, 0, 252}, - dictWord{20, 0, 103}, - dictWord{133, 11, 851}, - dictWord{ - 135, - 0, - 1050, - }, - dictWord{6, 10, 175}, - dictWord{137, 10, 289}, - dictWord{5, 10, 432}, - dictWord{133, 10, 913}, - dictWord{6, 0, 44}, - dictWord{136, 0, 368}, - dictWord{ - 135, - 11, - 784, - }, - dictWord{132, 0, 570}, - dictWord{133, 0, 120}, - dictWord{139, 10, 595}, - dictWord{140, 0, 29}, - dictWord{6, 0, 227}, - dictWord{135, 0, 1589}, - dictWord{4, 11, 98}, - dictWord{7, 11, 1365}, - dictWord{9, 11, 422}, - dictWord{9, 11, 670}, - dictWord{10, 11, 775}, - dictWord{11, 11, 210}, - dictWord{13, 11, 26}, - dictWord{13, 11, 457}, - dictWord{141, 11, 476}, - dictWord{140, 10, 80}, - dictWord{5, 10, 931}, - dictWord{134, 10, 1698}, - dictWord{133, 0, 522}, - dictWord{ - 134, - 0, - 1120, - }, - dictWord{135, 0, 1529}, - dictWord{12, 0, 739}, - dictWord{14, 0, 448}, - dictWord{142, 0, 467}, - dictWord{11, 10, 526}, - dictWord{11, 10, 939}, - dictWord{141, 10, 290}, - dictWord{5, 10, 774}, - dictWord{6, 10, 1637}, - dictWord{6, 10, 1686}, - dictWord{134, 10, 1751}, - dictWord{6, 0, 1667}, - dictWord{ - 135, - 0, - 2036, - }, - dictWord{7, 10, 1167}, - dictWord{11, 10, 934}, - dictWord{13, 10, 391}, - dictWord{145, 10, 76}, - dictWord{137, 11, 147}, - dictWord{6, 10, 260}, - dictWord{ - 7, - 10, - 1484, - }, - dictWord{11, 11, 821}, - dictWord{12, 11, 110}, - dictWord{12, 11, 153}, - dictWord{18, 11, 41}, - dictWord{150, 11, 19}, - dictWord{6, 0, 511}, - dictWord{12, 0, 132}, - dictWord{134, 10, 573}, - dictWord{5, 0, 568}, - dictWord{6, 0, 138}, - dictWord{135, 0, 1293}, - dictWord{132, 0, 1020}, - dictWord{8, 0, 258}, - dictWord{9, 0, 208}, - dictWord{137, 0, 359}, - dictWord{4, 0, 565}, - dictWord{8, 0, 23}, - dictWord{136, 0, 827}, - dictWord{134, 0, 344}, - dictWord{4, 0, 922}, - dictWord{ - 5, - 0, - 1023, - }, - dictWord{13, 11, 477}, - dictWord{14, 11, 120}, - dictWord{148, 11, 61}, - dictWord{134, 0, 240}, - dictWord{5, 11, 209}, - dictWord{6, 11, 30}, - dictWord{ - 11, - 11, - 56, - }, - dictWord{139, 11, 305}, - dictWord{6, 0, 171}, - dictWord{7, 0, 1002}, - dictWord{7, 0, 1324}, - dictWord{9, 0, 415}, - dictWord{14, 0, 230}, - dictWord{ - 18, - 0, - 68, - }, - dictWord{4, 10, 292}, - dictWord{4, 10, 736}, - dictWord{5, 10, 871}, - dictWord{6, 10, 1689}, - dictWord{7, 10, 1944}, - dictWord{137, 10, 580}, - dictWord{ - 9, - 11, - 635, - }, - dictWord{139, 11, 559}, - dictWord{4, 11, 150}, - dictWord{5, 11, 303}, - dictWord{134, 11, 327}, - dictWord{6, 10, 63}, - dictWord{135, 10, 920}, - dictWord{ - 133, - 10, - 793, - }, - dictWord{8, 11, 192}, - dictWord{10, 11, 78}, - dictWord{10, 11, 555}, - dictWord{11, 11, 308}, - dictWord{13, 11, 359}, - dictWord{147, 11, 95}, - dictWord{135, 11, 786}, - dictWord{135, 11, 1712}, - dictWord{136, 0, 402}, - dictWord{6, 0, 754}, - dictWord{6, 11, 1638}, - dictWord{7, 11, 79}, - dictWord{7, 11, 496}, - dictWord{9, 11, 138}, - dictWord{10, 11, 336}, - dictWord{11, 11, 12}, - dictWord{12, 11, 412}, - dictWord{12, 11, 440}, - dictWord{142, 11, 305}, - dictWord{4, 0, 716}, - dictWord{141, 0, 31}, - dictWord{133, 0, 982}, - dictWord{8, 0, 691}, - dictWord{8, 0, 731}, - dictWord{5, 10, 67}, - dictWord{6, 10, 62}, - dictWord{6, 10, 374}, - dictWord{ - 135, - 10, - 1391, - }, - dictWord{9, 10, 790}, - dictWord{140, 10, 47}, - dictWord{139, 11, 556}, - dictWord{151, 11, 1}, - dictWord{7, 11, 204}, - dictWord{7, 11, 415}, - dictWord{8, 11, 42}, - dictWord{10, 11, 85}, - dictWord{11, 11, 33}, - dictWord{11, 11, 564}, - dictWord{12, 11, 571}, - dictWord{149, 11, 1}, - dictWord{8, 0, 888}, - dictWord{ - 7, - 11, - 610, - }, - dictWord{135, 11, 1501}, - dictWord{4, 10, 391}, - dictWord{135, 10, 1169}, - dictWord{5, 0, 847}, - dictWord{9, 0, 840}, - dictWord{138, 0, 803}, - dictWord{137, 0, 823}, - dictWord{134, 0, 785}, - dictWord{8, 0, 152}, - dictWord{9, 0, 53}, - dictWord{9, 0, 268}, - dictWord{9, 0, 901}, - dictWord{10, 0, 518}, - dictWord{ - 10, - 0, - 829, - }, - dictWord{11, 0, 188}, - dictWord{13, 0, 74}, - dictWord{14, 0, 46}, - dictWord{15, 0, 17}, - dictWord{15, 0, 33}, - dictWord{17, 0, 40}, - dictWord{18, 0, 36}, - dictWord{ - 19, - 0, - 20, - }, - dictWord{22, 0, 1}, - dictWord{152, 0, 2}, - dictWord{4, 11, 3}, - dictWord{5, 11, 247}, - dictWord{5, 11, 644}, - dictWord{7, 11, 744}, - dictWord{7, 11, 1207}, - dictWord{7, 11, 1225}, - dictWord{7, 11, 1909}, - dictWord{146, 11, 147}, - dictWord{136, 0, 532}, - dictWord{135, 0, 681}, - dictWord{132, 10, 271}, - dictWord{ - 140, - 0, - 314, - }, - dictWord{140, 0, 677}, - dictWord{4, 0, 684}, - dictWord{136, 0, 384}, - dictWord{5, 11, 285}, - dictWord{9, 11, 67}, - dictWord{13, 11, 473}, - dictWord{ - 143, - 11, - 82, - }, - dictWord{4, 10, 253}, - dictWord{5, 10, 544}, - dictWord{7, 10, 300}, - dictWord{137, 10, 340}, - dictWord{7, 0, 110}, - dictWord{7, 0, 447}, - dictWord{8, 0, 290}, - dictWord{8, 0, 591}, - dictWord{9, 0, 382}, - dictWord{9, 0, 649}, - dictWord{11, 0, 71}, - dictWord{11, 0, 155}, - dictWord{11, 0, 313}, - dictWord{12, 0, 5}, - dictWord{13, 0, 325}, - dictWord{142, 0, 287}, - dictWord{134, 0, 1818}, - dictWord{136, 0, 1007}, - dictWord{138, 0, 321}, - dictWord{7, 0, 360}, - dictWord{7, 0, 425}, - dictWord{9, 0, 66}, - dictWord{9, 0, 278}, - dictWord{138, 0, 644}, - dictWord{133, 10, 818}, - dictWord{5, 0, 385}, - dictWord{5, 10, 541}, - dictWord{6, 10, 94}, - dictWord{6, 10, 499}, - dictWord{ - 7, - 10, - 230, - }, - dictWord{139, 10, 321}, - dictWord{4, 10, 920}, - dictWord{5, 10, 25}, - dictWord{5, 10, 790}, - dictWord{6, 10, 457}, - dictWord{7, 10, 853}, - dictWord{ - 136, - 10, - 788, - }, - dictWord{4, 0, 900}, - dictWord{133, 0, 861}, - dictWord{5, 0, 254}, - dictWord{7, 0, 985}, - dictWord{136, 0, 73}, - dictWord{7, 0, 1959}, - dictWord{ - 136, - 0, - 683, - }, - dictWord{134, 10, 1765}, - dictWord{133, 10, 822}, - dictWord{132, 10, 634}, - dictWord{4, 11, 29}, - dictWord{6, 11, 532}, - dictWord{7, 11, 1628}, - dictWord{ - 7, - 11, - 1648, - }, - dictWord{9, 11, 303}, - dictWord{9, 11, 350}, - dictWord{10, 11, 433}, - dictWord{11, 11, 97}, - dictWord{11, 11, 557}, - dictWord{11, 11, 745}, - dictWord{12, 11, 289}, - dictWord{12, 11, 335}, - dictWord{12, 11, 348}, - dictWord{12, 11, 606}, - dictWord{13, 11, 116}, - dictWord{13, 11, 233}, - dictWord{ - 13, - 11, - 466, - }, - dictWord{14, 11, 181}, - dictWord{14, 11, 209}, - dictWord{14, 11, 232}, - dictWord{14, 11, 236}, - dictWord{14, 11, 300}, - dictWord{16, 11, 41}, - dictWord{ - 148, - 11, - 97, - }, - dictWord{19, 0, 86}, - dictWord{6, 10, 36}, - dictWord{7, 10, 658}, - dictWord{136, 10, 454}, - dictWord{135, 11, 1692}, - dictWord{132, 0, 725}, - dictWord{ - 5, - 11, - 501, - }, - dictWord{7, 11, 1704}, - dictWord{9, 11, 553}, - dictWord{11, 11, 520}, - dictWord{12, 11, 557}, - dictWord{141, 11, 249}, - dictWord{134, 0, 196}, - dictWord{133, 0, 831}, - dictWord{136, 0, 723}, - dictWord{7, 0, 1897}, - dictWord{13, 0, 80}, - dictWord{13, 0, 437}, - dictWord{145, 0, 74}, - dictWord{4, 0, 992}, - dictWord{ - 6, - 0, - 627, - }, - dictWord{136, 0, 994}, - dictWord{135, 11, 1294}, - dictWord{132, 10, 104}, - dictWord{5, 0, 848}, - dictWord{6, 0, 66}, - dictWord{136, 0, 764}, - dictWord{ - 4, - 0, - 36, - }, - dictWord{7, 0, 1387}, - dictWord{10, 0, 205}, - dictWord{139, 0, 755}, - dictWord{6, 0, 1046}, - dictWord{134, 0, 1485}, - dictWord{134, 0, 950}, - dictWord{132, 0, 887}, - dictWord{14, 0, 450}, - dictWord{148, 0, 111}, - dictWord{7, 0, 620}, - dictWord{7, 0, 831}, - dictWord{9, 10, 542}, - dictWord{9, 10, 566}, - dictWord{ - 138, - 10, - 728, - }, - dictWord{6, 0, 165}, - dictWord{138, 0, 388}, - dictWord{139, 10, 263}, - dictWord{4, 0, 719}, - dictWord{135, 0, 155}, - dictWord{138, 10, 468}, - dictWord{6, 11, 453}, - dictWord{144, 11, 36}, - dictWord{134, 11, 129}, - dictWord{5, 0, 533}, - dictWord{7, 0, 755}, - dictWord{138, 0, 780}, - dictWord{134, 0, 1465}, - dictWord{4, 0, 353}, - dictWord{6, 0, 146}, - dictWord{6, 0, 1789}, - dictWord{7, 0, 427}, - dictWord{7, 0, 990}, - dictWord{7, 0, 1348}, - dictWord{9, 0, 665}, - dictWord{9, 0, 898}, - dictWord{11, 0, 893}, - dictWord{142, 0, 212}, - dictWord{7, 10, 87}, - dictWord{142, 10, 288}, - dictWord{4, 0, 45}, - dictWord{135, 0, 1257}, - dictWord{12, 0, 7}, - dictWord{7, 10, 988}, - dictWord{7, 10, 1939}, - dictWord{9, 10, 64}, - dictWord{9, 10, 502}, - dictWord{12, 10, 34}, - dictWord{13, 10, 12}, - dictWord{13, 10, 234}, - dictWord{147, 10, 77}, - dictWord{4, 0, 607}, - dictWord{5, 11, 60}, - dictWord{6, 11, 504}, - dictWord{7, 11, 614}, - dictWord{7, 11, 1155}, - dictWord{140, 11, 0}, - dictWord{ - 135, - 10, - 141, - }, - dictWord{8, 11, 198}, - dictWord{11, 11, 29}, - dictWord{140, 11, 534}, - dictWord{140, 0, 65}, - dictWord{136, 0, 816}, - dictWord{132, 10, 619}, - dictWord{139, 0, 88}, - dictWord{5, 10, 246}, - dictWord{8, 10, 189}, - dictWord{9, 10, 355}, - dictWord{9, 10, 512}, - dictWord{10, 10, 124}, - dictWord{10, 10, 453}, - dictWord{11, 10, 143}, - dictWord{11, 10, 416}, - dictWord{11, 10, 859}, - dictWord{141, 10, 341}, - dictWord{4, 11, 379}, - dictWord{135, 11, 1397}, - dictWord{ - 4, - 0, - 600, - }, - dictWord{137, 0, 621}, - dictWord{133, 0, 367}, - dictWord{134, 0, 561}, - dictWord{6, 0, 559}, - dictWord{134, 0, 1691}, - dictWord{6, 0, 585}, - dictWord{ - 134, - 11, - 585, - }, - dictWord{135, 11, 1228}, - dictWord{4, 11, 118}, - dictWord{5, 10, 678}, - dictWord{6, 11, 274}, - dictWord{6, 11, 361}, - dictWord{7, 11, 75}, - dictWord{ - 141, - 11, - 441, - }, - dictWord{135, 11, 1818}, - dictWord{137, 11, 841}, - dictWord{5, 0, 573}, - dictWord{6, 0, 287}, - dictWord{7, 10, 862}, - dictWord{7, 10, 1886}, - dictWord{138, 10, 179}, - dictWord{132, 10, 517}, - dictWord{140, 11, 693}, - dictWord{5, 11, 314}, - dictWord{6, 11, 221}, - dictWord{7, 11, 419}, - dictWord{ - 10, - 11, - 650, - }, - dictWord{11, 11, 396}, - dictWord{12, 11, 156}, - dictWord{13, 11, 369}, - dictWord{14, 11, 333}, - dictWord{145, 11, 47}, - dictWord{140, 10, 540}, - dictWord{136, 10, 667}, - dictWord{11, 10, 403}, - dictWord{146, 10, 83}, - dictWord{6, 0, 672}, - dictWord{133, 10, 761}, - dictWord{9, 0, 157}, - dictWord{10, 10, 131}, - dictWord{140, 10, 72}, - dictWord{7, 0, 714}, - dictWord{134, 11, 460}, - dictWord{134, 0, 456}, - dictWord{133, 0, 925}, - dictWord{5, 11, 682}, - dictWord{ - 135, - 11, - 1887, - }, - dictWord{136, 11, 510}, - dictWord{136, 11, 475}, - dictWord{133, 11, 1016}, - dictWord{9, 0, 19}, - dictWord{7, 11, 602}, - dictWord{8, 11, 179}, - dictWord{ - 10, - 11, - 781, - }, - dictWord{140, 11, 126}, - dictWord{6, 11, 329}, - dictWord{138, 11, 111}, - dictWord{6, 0, 822}, - dictWord{134, 0, 1473}, - dictWord{144, 11, 86}, - dictWord{11, 0, 113}, - dictWord{139, 11, 113}, - dictWord{5, 11, 821}, - dictWord{134, 11, 1687}, - dictWord{133, 10, 449}, - dictWord{7, 0, 463}, - dictWord{ - 17, - 0, - 69, - }, - dictWord{136, 10, 103}, - dictWord{7, 10, 2028}, - dictWord{138, 10, 641}, - dictWord{6, 0, 193}, - dictWord{7, 0, 240}, - dictWord{7, 0, 1682}, - dictWord{ - 10, - 0, - 51, - }, - dictWord{10, 0, 640}, - dictWord{11, 0, 410}, - dictWord{13, 0, 82}, - dictWord{14, 0, 247}, - dictWord{14, 0, 331}, - dictWord{142, 0, 377}, - dictWord{6, 0, 471}, - dictWord{11, 0, 411}, - dictWord{142, 0, 2}, - dictWord{5, 11, 71}, - dictWord{7, 11, 1407}, - dictWord{9, 11, 388}, - dictWord{9, 11, 704}, - dictWord{10, 11, 261}, - dictWord{ - 10, - 11, - 619, - }, - dictWord{11, 11, 547}, - dictWord{11, 11, 619}, - dictWord{143, 11, 157}, - dictWord{136, 0, 633}, - dictWord{135, 0, 1148}, - dictWord{6, 0, 554}, - dictWord{7, 0, 1392}, - dictWord{12, 0, 129}, - dictWord{7, 10, 1274}, - dictWord{7, 10, 1386}, - dictWord{7, 11, 2008}, - dictWord{9, 11, 337}, - dictWord{10, 11, 517}, - dictWord{146, 10, 87}, - dictWord{7, 0, 803}, - dictWord{8, 0, 542}, - dictWord{6, 10, 187}, - dictWord{7, 10, 1203}, - dictWord{8, 10, 380}, - dictWord{14, 10, 117}, - dictWord{149, 10, 28}, - dictWord{6, 10, 297}, - dictWord{7, 10, 793}, - dictWord{139, 10, 938}, - dictWord{8, 0, 438}, - dictWord{11, 0, 363}, - dictWord{7, 10, 464}, - dictWord{11, 10, 105}, - dictWord{12, 10, 231}, - dictWord{14, 10, 386}, - dictWord{15, 10, 102}, - dictWord{148, 10, 75}, - dictWord{5, 11, 16}, - dictWord{6, 11, 86}, - dictWord{6, 11, 603}, - dictWord{7, 11, 292}, - dictWord{7, 11, 561}, - dictWord{8, 11, 257}, - dictWord{8, 11, 382}, - dictWord{9, 11, 721}, - dictWord{9, 11, 778}, - dictWord{ - 11, - 11, - 581, - }, - dictWord{140, 11, 466}, - dictWord{6, 0, 717}, - dictWord{4, 11, 486}, - dictWord{133, 11, 491}, - dictWord{132, 0, 875}, - dictWord{132, 11, 72}, - dictWord{6, 11, 265}, - dictWord{135, 11, 847}, - dictWord{4, 0, 237}, - dictWord{135, 0, 514}, - dictWord{6, 0, 392}, - dictWord{7, 0, 65}, - dictWord{135, 0, 2019}, - dictWord{140, 11, 261}, - dictWord{135, 11, 922}, - dictWord{137, 11, 404}, - dictWord{12, 0, 563}, - dictWord{14, 0, 101}, - dictWord{18, 0, 129}, - dictWord{ - 7, - 10, - 1010, - }, - dictWord{11, 10, 733}, - dictWord{11, 10, 759}, - dictWord{13, 10, 34}, - dictWord{146, 10, 45}, - dictWord{7, 10, 1656}, - dictWord{9, 10, 369}, - dictWord{ - 10, - 10, - 338, - }, - dictWord{10, 10, 490}, - dictWord{11, 10, 154}, - dictWord{11, 10, 545}, - dictWord{11, 10, 775}, - dictWord{13, 10, 77}, - dictWord{141, 10, 274}, - dictWord{4, 0, 444}, - dictWord{10, 0, 146}, - dictWord{140, 0, 9}, - dictWord{139, 11, 163}, - dictWord{7, 0, 1260}, - dictWord{135, 0, 1790}, - dictWord{9, 0, 222}, - dictWord{10, 0, 43}, - dictWord{139, 0, 900}, - dictWord{137, 11, 234}, - dictWord{138, 0, 971}, - dictWord{137, 0, 761}, - dictWord{134, 0, 699}, - dictWord{ - 136, - 11, - 434, - }, - dictWord{6, 0, 1116}, - dictWord{7, 0, 1366}, - dictWord{5, 10, 20}, - dictWord{6, 11, 197}, - dictWord{6, 10, 298}, - dictWord{7, 10, 659}, - dictWord{8, 11, 205}, - dictWord{137, 10, 219}, - dictWord{132, 11, 490}, - dictWord{11, 11, 820}, - dictWord{150, 11, 51}, - dictWord{7, 10, 1440}, - dictWord{11, 10, 854}, - dictWord{ - 11, - 10, - 872, - }, - dictWord{11, 10, 921}, - dictWord{12, 10, 551}, - dictWord{13, 10, 472}, - dictWord{142, 10, 367}, - dictWord{140, 11, 13}, - dictWord{132, 0, 829}, - dictWord{12, 0, 242}, - dictWord{132, 10, 439}, - dictWord{136, 10, 669}, - dictWord{6, 0, 593}, - dictWord{6, 11, 452}, - dictWord{7, 11, 312}, - dictWord{ - 138, - 11, - 219, - }, - dictWord{4, 11, 333}, - dictWord{9, 11, 176}, - dictWord{12, 11, 353}, - dictWord{141, 11, 187}, - dictWord{7, 0, 36}, - dictWord{8, 0, 201}, - dictWord{ - 136, - 0, - 605, - }, - dictWord{140, 0, 224}, - dictWord{132, 10, 233}, - dictWord{134, 0, 1430}, - dictWord{134, 0, 1806}, - dictWord{4, 0, 523}, - dictWord{133, 0, 638}, - dictWord{ - 6, - 0, - 1889, - }, - dictWord{9, 0, 958}, - dictWord{9, 0, 971}, - dictWord{9, 0, 976}, - dictWord{12, 0, 796}, - dictWord{12, 0, 799}, - dictWord{12, 0, 808}, - dictWord{ - 12, - 0, - 835, - }, - dictWord{12, 0, 836}, - dictWord{12, 0, 914}, - dictWord{12, 0, 946}, - dictWord{15, 0, 216}, - dictWord{15, 0, 232}, - dictWord{18, 0, 183}, - dictWord{18, 0, 187}, - dictWord{18, 0, 194}, - dictWord{18, 0, 212}, - dictWord{18, 0, 232}, - dictWord{149, 0, 49}, - dictWord{132, 10, 482}, - dictWord{6, 0, 827}, - dictWord{134, 0, 1434}, - dictWord{135, 10, 346}, - dictWord{134, 0, 2043}, - dictWord{6, 0, 242}, - dictWord{7, 0, 227}, - dictWord{7, 0, 1581}, - dictWord{8, 0, 104}, - dictWord{9, 0, 113}, - dictWord{9, 0, 220}, - dictWord{9, 0, 427}, - dictWord{10, 0, 136}, - dictWord{10, 0, 239}, - dictWord{11, 0, 579}, - dictWord{11, 0, 1023}, - dictWord{13, 0, 4}, - dictWord{ - 13, - 0, - 204, - }, - dictWord{13, 0, 316}, - dictWord{148, 0, 86}, - dictWord{134, 11, 1685}, - dictWord{7, 0, 148}, - dictWord{8, 0, 284}, - dictWord{141, 0, 63}, - dictWord{ - 142, - 0, - 10, - }, - dictWord{135, 11, 584}, - dictWord{134, 0, 1249}, - dictWord{7, 0, 861}, - dictWord{135, 10, 334}, - dictWord{5, 10, 795}, - dictWord{6, 10, 1741}, - dictWord{ - 137, - 11, - 70, - }, - dictWord{132, 0, 807}, - dictWord{7, 11, 135}, - dictWord{8, 11, 7}, - dictWord{8, 11, 62}, - dictWord{9, 11, 243}, - dictWord{10, 11, 658}, - dictWord{ - 10, - 11, - 697, - }, - dictWord{11, 11, 456}, - dictWord{139, 11, 756}, - dictWord{9, 11, 395}, - dictWord{138, 11, 79}, - dictWord{137, 11, 108}, - dictWord{147, 0, 94}, - dictWord{136, 0, 494}, - dictWord{135, 11, 631}, - dictWord{135, 10, 622}, - dictWord{7, 0, 1510}, - dictWord{135, 10, 1750}, - dictWord{4, 10, 203}, - dictWord{ - 135, - 10, - 1936, - }, - dictWord{7, 11, 406}, - dictWord{7, 11, 459}, - dictWord{8, 11, 606}, - dictWord{139, 11, 726}, - dictWord{7, 0, 1306}, - dictWord{8, 0, 505}, - dictWord{ - 9, - 0, - 482, - }, - dictWord{10, 0, 126}, - dictWord{11, 0, 225}, - dictWord{12, 0, 347}, - dictWord{12, 0, 449}, - dictWord{13, 0, 19}, - dictWord{14, 0, 218}, - dictWord{142, 0, 435}, - dictWord{5, 0, 268}, - dictWord{10, 0, 764}, - dictWord{12, 0, 120}, - dictWord{13, 0, 39}, - dictWord{145, 0, 127}, - dictWord{142, 11, 68}, - dictWord{11, 10, 678}, - dictWord{140, 10, 307}, - dictWord{12, 11, 268}, - dictWord{12, 11, 640}, - dictWord{142, 11, 119}, - dictWord{135, 10, 2044}, - dictWord{133, 11, 612}, - dictWord{ - 4, - 11, - 372, - }, - dictWord{7, 11, 482}, - dictWord{8, 11, 158}, - dictWord{9, 11, 602}, - dictWord{9, 11, 615}, - dictWord{10, 11, 245}, - dictWord{10, 11, 678}, - dictWord{ - 10, - 11, - 744, - }, - dictWord{11, 11, 248}, - dictWord{139, 11, 806}, - dictWord{7, 10, 311}, - dictWord{9, 10, 308}, - dictWord{140, 10, 255}, - dictWord{4, 0, 384}, - dictWord{135, 0, 1022}, - dictWord{5, 11, 854}, - dictWord{135, 11, 1991}, - dictWord{135, 10, 1266}, - dictWord{4, 10, 400}, - dictWord{5, 10, 267}, - dictWord{ - 135, - 10, - 232, - }, - dictWord{135, 0, 1703}, - dictWord{9, 0, 159}, - dictWord{11, 0, 661}, - dictWord{140, 0, 603}, - dictWord{4, 0, 964}, - dictWord{14, 0, 438}, - dictWord{ - 14, - 0, - 444, - }, - dictWord{14, 0, 456}, - dictWord{22, 0, 60}, - dictWord{22, 0, 63}, - dictWord{9, 11, 106}, - dictWord{9, 11, 163}, - dictWord{9, 11, 296}, - dictWord{10, 11, 167}, - dictWord{10, 11, 172}, - dictWord{10, 11, 777}, - dictWord{139, 11, 16}, - dictWord{136, 0, 583}, - dictWord{132, 0, 515}, - dictWord{8, 0, 632}, - dictWord{8, 0, 697}, - dictWord{137, 0, 854}, - dictWord{5, 11, 195}, - dictWord{135, 11, 1685}, - dictWord{6, 0, 1123}, - dictWord{134, 0, 1365}, - dictWord{134, 11, 328}, - dictWord{ - 7, - 11, - 1997, - }, - dictWord{8, 11, 730}, - dictWord{139, 11, 1006}, - dictWord{4, 0, 136}, - dictWord{133, 0, 551}, - dictWord{134, 0, 1782}, - dictWord{7, 0, 1287}, - dictWord{ - 9, - 0, - 44, - }, - dictWord{10, 0, 552}, - dictWord{10, 0, 642}, - dictWord{11, 0, 839}, - dictWord{12, 0, 274}, - dictWord{12, 0, 275}, - dictWord{12, 0, 372}, - dictWord{ - 13, - 0, - 91, - }, - dictWord{142, 0, 125}, - dictWord{5, 11, 751}, - dictWord{11, 11, 797}, - dictWord{140, 11, 203}, - dictWord{133, 0, 732}, - dictWord{7, 0, 679}, - dictWord{ - 8, - 0, - 313, - }, - dictWord{4, 10, 100}, - dictWord{135, 11, 821}, - dictWord{10, 0, 361}, - dictWord{142, 0, 316}, - dictWord{134, 0, 595}, - dictWord{6, 0, 147}, - dictWord{ - 7, - 0, - 886, - }, - dictWord{9, 0, 753}, - dictWord{138, 0, 268}, - dictWord{5, 10, 362}, - dictWord{5, 10, 443}, - dictWord{6, 10, 318}, - dictWord{7, 10, 1019}, - dictWord{ - 139, - 10, - 623, - }, - dictWord{5, 10, 463}, - dictWord{136, 10, 296}, - dictWord{4, 10, 454}, - dictWord{5, 11, 950}, - dictWord{5, 11, 994}, - dictWord{134, 11, 351}, - dictWord{ - 138, - 0, - 137, - }, - dictWord{5, 10, 48}, - dictWord{5, 10, 404}, - dictWord{6, 10, 557}, - dictWord{7, 10, 458}, - dictWord{8, 10, 597}, - dictWord{10, 10, 455}, - dictWord{ - 10, - 10, - 606, - }, - dictWord{11, 10, 49}, - dictWord{11, 10, 548}, - dictWord{12, 10, 476}, - dictWord{13, 10, 18}, - dictWord{141, 10, 450}, - dictWord{133, 0, 414}, - dictWord{ - 135, - 0, - 1762, - }, - dictWord{5, 11, 421}, - dictWord{135, 11, 47}, - dictWord{5, 10, 442}, - dictWord{135, 10, 1984}, - dictWord{134, 0, 599}, - dictWord{134, 0, 1749}, - dictWord{134, 0, 1627}, - dictWord{4, 0, 488}, - dictWord{132, 11, 350}, - dictWord{137, 11, 751}, - dictWord{132, 0, 83}, - dictWord{140, 0, 676}, - dictWord{ - 133, - 11, - 967, - }, - dictWord{7, 0, 1639}, - dictWord{5, 10, 55}, - dictWord{140, 10, 161}, - dictWord{4, 11, 473}, - dictWord{7, 11, 623}, - dictWord{8, 11, 808}, - dictWord{ - 9, - 11, - 871, - }, - dictWord{9, 11, 893}, - dictWord{11, 11, 38}, - dictWord{11, 11, 431}, - dictWord{12, 11, 112}, - dictWord{12, 11, 217}, - dictWord{12, 11, 243}, - dictWord{ - 12, - 11, - 562, - }, - dictWord{12, 11, 683}, - dictWord{13, 11, 141}, - dictWord{13, 11, 197}, - dictWord{13, 11, 227}, - dictWord{13, 11, 406}, - dictWord{13, 11, 487}, - dictWord{14, 11, 156}, - dictWord{14, 11, 203}, - dictWord{14, 11, 224}, - dictWord{14, 11, 256}, - dictWord{18, 11, 58}, - dictWord{150, 11, 0}, - dictWord{ - 133, - 10, - 450, - }, - dictWord{7, 11, 736}, - dictWord{139, 11, 264}, - dictWord{134, 0, 278}, - dictWord{4, 11, 222}, - dictWord{7, 11, 286}, - dictWord{136, 11, 629}, - dictWord{ - 135, - 10, - 869, - }, - dictWord{140, 0, 97}, - dictWord{144, 0, 14}, - dictWord{134, 0, 1085}, - dictWord{4, 10, 213}, - dictWord{7, 10, 223}, - dictWord{136, 10, 80}, - dictWord{ - 7, - 0, - 388, - }, - dictWord{7, 0, 644}, - dictWord{139, 0, 781}, - dictWord{132, 0, 849}, - dictWord{7, 0, 229}, - dictWord{8, 0, 59}, - dictWord{9, 0, 190}, - dictWord{10, 0, 378}, - dictWord{140, 0, 191}, - dictWord{7, 10, 381}, - dictWord{7, 10, 806}, - dictWord{7, 10, 820}, - dictWord{8, 10, 354}, - dictWord{8, 10, 437}, - dictWord{8, 10, 787}, - dictWord{9, 10, 657}, - dictWord{10, 10, 58}, - dictWord{10, 10, 339}, - dictWord{10, 10, 749}, - dictWord{11, 10, 914}, - dictWord{12, 10, 162}, - dictWord{13, 10, 75}, - dictWord{14, 10, 106}, - dictWord{14, 10, 198}, - dictWord{14, 10, 320}, - dictWord{14, 10, 413}, - dictWord{146, 10, 43}, - dictWord{141, 11, 306}, - dictWord{ - 136, - 10, - 747, - }, - dictWord{134, 0, 1115}, - dictWord{16, 0, 94}, - dictWord{16, 0, 108}, - dictWord{136, 11, 146}, - dictWord{6, 0, 700}, - dictWord{6, 0, 817}, - dictWord{ - 134, - 0, - 1002, - }, - dictWord{133, 10, 692}, - dictWord{4, 11, 465}, - dictWord{135, 11, 1663}, - dictWord{134, 10, 191}, - dictWord{6, 0, 1414}, - dictWord{ - 135, - 11, - 913, - }, - dictWord{132, 0, 660}, - dictWord{7, 0, 1035}, - dictWord{138, 0, 737}, - dictWord{6, 10, 162}, - dictWord{7, 10, 1960}, - dictWord{136, 10, 831}, - dictWord{ - 132, - 10, - 706, - }, - dictWord{7, 0, 690}, - dictWord{9, 0, 217}, - dictWord{9, 0, 587}, - dictWord{140, 0, 521}, - dictWord{138, 10, 426}, - dictWord{135, 10, 1235}, - dictWord{ - 6, - 11, - 82, - }, - dictWord{7, 11, 138}, - dictWord{7, 11, 517}, - dictWord{9, 11, 673}, - dictWord{139, 11, 238}, - dictWord{138, 0, 272}, - dictWord{5, 11, 495}, - dictWord{ - 7, - 11, - 834, - }, - dictWord{9, 11, 733}, - dictWord{139, 11, 378}, - dictWord{134, 0, 1744}, - dictWord{132, 0, 1011}, - dictWord{7, 11, 828}, - dictWord{142, 11, 116}, - dictWord{4, 0, 733}, - dictWord{9, 0, 194}, - dictWord{10, 0, 92}, - dictWord{11, 0, 198}, - dictWord{12, 0, 84}, - dictWord{13, 0, 128}, - dictWord{133, 11, 559}, - dictWord{ - 10, - 0, - 57, - }, - dictWord{10, 0, 277}, - dictWord{6, 11, 21}, - dictWord{6, 11, 1737}, - dictWord{7, 11, 1444}, - dictWord{136, 11, 224}, - dictWord{4, 10, 204}, - dictWord{ - 137, - 10, - 902, - }, - dictWord{136, 10, 833}, - dictWord{11, 0, 348}, - dictWord{12, 0, 99}, - dictWord{18, 0, 1}, - dictWord{18, 0, 11}, - dictWord{19, 0, 4}, - dictWord{7, 10, 366}, - dictWord{9, 10, 287}, - dictWord{12, 10, 199}, - dictWord{12, 10, 556}, - dictWord{140, 10, 577}, - dictWord{6, 0, 1981}, - dictWord{136, 0, 936}, - dictWord{ - 21, - 0, - 33, - }, - dictWord{150, 0, 40}, - dictWord{5, 11, 519}, - dictWord{138, 11, 204}, - dictWord{5, 10, 356}, - dictWord{135, 10, 224}, - dictWord{134, 0, 775}, - dictWord{ - 135, - 0, - 306, - }, - dictWord{7, 10, 630}, - dictWord{9, 10, 567}, - dictWord{11, 10, 150}, - dictWord{11, 10, 444}, - dictWord{141, 10, 119}, - dictWord{5, 0, 979}, - dictWord{ - 134, - 10, - 539, - }, - dictWord{133, 0, 611}, - dictWord{4, 11, 402}, - dictWord{135, 11, 1679}, - dictWord{5, 0, 178}, - dictWord{7, 11, 2}, - dictWord{8, 11, 323}, - dictWord{ - 136, - 11, - 479, - }, - dictWord{5, 11, 59}, - dictWord{135, 11, 672}, - dictWord{4, 0, 1010}, - dictWord{6, 0, 1969}, - dictWord{138, 11, 237}, - dictWord{133, 11, 412}, - dictWord{146, 11, 34}, - dictWord{7, 11, 1740}, - dictWord{146, 11, 48}, - dictWord{134, 0, 664}, - dictWord{139, 10, 814}, - dictWord{4, 11, 85}, - dictWord{ - 135, - 11, - 549, - }, - dictWord{133, 11, 94}, - dictWord{133, 11, 457}, - dictWord{132, 0, 390}, - dictWord{134, 0, 1510}, - dictWord{4, 10, 235}, - dictWord{135, 10, 255}, - dictWord{4, 10, 194}, - dictWord{5, 10, 584}, - dictWord{6, 11, 11}, - dictWord{6, 10, 384}, - dictWord{7, 11, 187}, - dictWord{7, 10, 583}, - dictWord{10, 10, 761}, - dictWord{ - 11, - 10, - 760, - }, - dictWord{139, 10, 851}, - dictWord{4, 11, 522}, - dictWord{139, 11, 802}, - dictWord{135, 0, 493}, - dictWord{10, 11, 776}, - dictWord{13, 11, 345}, - dictWord{142, 11, 425}, - dictWord{146, 0, 37}, - dictWord{4, 11, 52}, - dictWord{135, 11, 661}, - dictWord{134, 0, 724}, - dictWord{134, 0, 829}, - dictWord{ - 133, - 11, - 520, - }, - dictWord{133, 10, 562}, - dictWord{4, 11, 281}, - dictWord{5, 11, 38}, - dictWord{7, 11, 194}, - dictWord{7, 11, 668}, - dictWord{7, 11, 1893}, - dictWord{ - 137, - 11, - 397, - }, - dictWord{5, 10, 191}, - dictWord{137, 10, 271}, - dictWord{7, 0, 1537}, - dictWord{14, 0, 96}, - dictWord{143, 0, 73}, - dictWord{5, 0, 473}, - dictWord{ - 11, - 0, - 168, - }, - dictWord{4, 10, 470}, - dictWord{6, 10, 153}, - dictWord{7, 10, 1503}, - dictWord{7, 10, 1923}, - dictWord{10, 10, 701}, - dictWord{11, 10, 132}, - dictWord{ - 11, - 10, - 227, - }, - dictWord{11, 10, 320}, - dictWord{11, 10, 436}, - dictWord{11, 10, 525}, - dictWord{11, 10, 855}, - dictWord{12, 10, 41}, - dictWord{12, 10, 286}, - dictWord{13, 10, 103}, - dictWord{13, 10, 284}, - dictWord{14, 10, 255}, - dictWord{14, 10, 262}, - dictWord{15, 10, 117}, - dictWord{143, 10, 127}, - dictWord{ - 133, - 0, - 105, - }, - dictWord{5, 0, 438}, - dictWord{9, 0, 694}, - dictWord{12, 0, 627}, - dictWord{141, 0, 210}, - dictWord{133, 10, 327}, - dictWord{6, 10, 552}, - dictWord{ - 7, - 10, - 1754, - }, - dictWord{137, 10, 604}, - dictWord{134, 0, 1256}, - dictWord{152, 0, 11}, - dictWord{5, 11, 448}, - dictWord{11, 11, 98}, - dictWord{139, 11, 524}, - dictWord{ - 7, - 0, - 1626, - }, - dictWord{5, 10, 80}, - dictWord{6, 10, 405}, - dictWord{7, 10, 403}, - dictWord{7, 10, 1502}, - dictWord{8, 10, 456}, - dictWord{9, 10, 487}, - dictWord{ - 9, - 10, - 853, - }, - dictWord{9, 10, 889}, - dictWord{10, 10, 309}, - dictWord{11, 10, 721}, - dictWord{11, 10, 994}, - dictWord{12, 10, 430}, - dictWord{13, 10, 165}, - dictWord{ - 14, - 11, - 16, - }, - dictWord{146, 11, 44}, - dictWord{132, 0, 779}, - dictWord{8, 0, 25}, - dictWord{138, 0, 826}, - dictWord{4, 10, 453}, - dictWord{5, 10, 887}, - dictWord{ - 6, - 10, - 535, - }, - dictWord{8, 10, 6}, - dictWord{8, 10, 543}, - dictWord{136, 10, 826}, - dictWord{137, 11, 461}, - dictWord{140, 11, 632}, - dictWord{132, 0, 308}, - dictWord{135, 0, 741}, - dictWord{132, 0, 671}, - dictWord{7, 0, 150}, - dictWord{8, 0, 649}, - dictWord{136, 0, 1020}, - dictWord{9, 0, 99}, - dictWord{6, 11, 336}, - dictWord{ - 8, - 11, - 552, - }, - dictWord{9, 11, 285}, - dictWord{10, 11, 99}, - dictWord{139, 11, 568}, - dictWord{134, 0, 521}, - dictWord{5, 0, 339}, - dictWord{14, 0, 3}, - dictWord{ - 15, - 0, - 41, - }, - dictWord{15, 0, 166}, - dictWord{147, 0, 66}, - dictWord{6, 11, 423}, - dictWord{7, 11, 665}, - dictWord{7, 11, 1210}, - dictWord{9, 11, 218}, - dictWord{ - 141, - 11, - 222, - }, - dictWord{6, 0, 543}, - dictWord{5, 10, 101}, - dictWord{5, 11, 256}, - dictWord{6, 10, 88}, - dictWord{7, 10, 1677}, - dictWord{9, 10, 100}, - dictWord{10, 10, 677}, - dictWord{14, 10, 169}, - dictWord{14, 10, 302}, - dictWord{14, 10, 313}, - dictWord{15, 10, 48}, - dictWord{143, 10, 84}, - dictWord{4, 10, 310}, - dictWord{ - 7, - 10, - 708, - }, - dictWord{7, 10, 996}, - dictWord{9, 10, 795}, - dictWord{10, 10, 390}, - dictWord{10, 10, 733}, - dictWord{11, 10, 451}, - dictWord{12, 10, 249}, - dictWord{ - 14, - 10, - 115, - }, - dictWord{14, 10, 286}, - dictWord{143, 10, 100}, - dictWord{133, 10, 587}, - dictWord{13, 11, 417}, - dictWord{14, 11, 129}, - dictWord{143, 11, 15}, - dictWord{134, 0, 1358}, - dictWord{136, 11, 554}, - dictWord{132, 10, 498}, - dictWord{7, 10, 217}, - dictWord{8, 10, 140}, - dictWord{138, 10, 610}, - dictWord{ - 135, - 11, - 989, - }, - dictWord{135, 11, 634}, - dictWord{6, 0, 155}, - dictWord{140, 0, 234}, - dictWord{135, 11, 462}, - dictWord{132, 11, 618}, - dictWord{ - 134, - 0, - 1628, - }, - dictWord{132, 0, 766}, - dictWord{4, 11, 339}, - dictWord{5, 10, 905}, - dictWord{135, 11, 259}, - dictWord{135, 0, 829}, - dictWord{4, 11, 759}, - dictWord{ - 141, - 11, - 169, - }, - dictWord{7, 0, 1445}, - dictWord{4, 10, 456}, - dictWord{7, 10, 358}, - dictWord{7, 10, 1637}, - dictWord{8, 10, 643}, - dictWord{139, 10, 483}, - dictWord{ - 5, - 0, - 486, - }, - dictWord{135, 0, 1349}, - dictWord{5, 11, 688}, - dictWord{135, 11, 712}, - dictWord{7, 0, 1635}, - dictWord{8, 0, 17}, - dictWord{10, 0, 217}, - dictWord{ - 10, - 0, - 295, - }, - dictWord{12, 0, 2}, - dictWord{140, 11, 2}, - dictWord{138, 0, 558}, - dictWord{150, 10, 56}, - dictWord{4, 11, 278}, - dictWord{5, 11, 465}, - dictWord{ - 135, - 11, - 1367, - }, - dictWord{136, 11, 482}, - dictWord{133, 10, 535}, - dictWord{6, 0, 1362}, - dictWord{6, 0, 1461}, - dictWord{10, 11, 274}, - dictWord{10, 11, 625}, - dictWord{139, 11, 530}, - dictWord{5, 0, 599}, - dictWord{5, 11, 336}, - dictWord{6, 11, 341}, - dictWord{6, 11, 478}, - dictWord{6, 11, 1763}, - dictWord{136, 11, 386}, - dictWord{7, 10, 1748}, - dictWord{137, 11, 151}, - dictWord{134, 0, 1376}, - dictWord{133, 10, 539}, - dictWord{135, 11, 73}, - dictWord{135, 11, 1971}, - dictWord{139, 11, 283}, - dictWord{9, 0, 93}, - dictWord{139, 0, 474}, - dictWord{6, 10, 91}, - dictWord{135, 10, 435}, - dictWord{6, 0, 447}, - dictWord{5, 11, 396}, - dictWord{134, 11, 501}, - dictWord{4, 10, 16}, - dictWord{5, 10, 316}, - dictWord{5, 10, 842}, - dictWord{6, 10, 370}, - dictWord{6, 10, 1778}, - dictWord{8, 10, 166}, - dictWord{11, 10, 812}, - dictWord{12, 10, 206}, - dictWord{12, 10, 351}, - dictWord{14, 10, 418}, - dictWord{16, 10, 15}, - dictWord{16, 10, 34}, - dictWord{18, 10, 3}, - dictWord{19, 10, 3}, - dictWord{19, 10, 7}, - dictWord{20, 10, 4}, - dictWord{149, 10, 21}, - dictWord{7, 0, 577}, - dictWord{7, 0, 1432}, - dictWord{9, 0, 475}, - dictWord{9, 0, 505}, - dictWord{9, 0, 526}, - dictWord{9, 0, 609}, - dictWord{9, 0, 689}, - dictWord{9, 0, 726}, - dictWord{9, 0, 735}, - dictWord{9, 0, 738}, - dictWord{10, 0, 556}, - dictWord{ - 10, - 0, - 674, - }, - dictWord{10, 0, 684}, - dictWord{11, 0, 89}, - dictWord{11, 0, 202}, - dictWord{11, 0, 272}, - dictWord{11, 0, 380}, - dictWord{11, 0, 415}, - dictWord{11, 0, 505}, - dictWord{11, 0, 537}, - dictWord{11, 0, 550}, - dictWord{11, 0, 562}, - dictWord{11, 0, 640}, - dictWord{11, 0, 667}, - dictWord{11, 0, 688}, - dictWord{11, 0, 847}, - dictWord{11, 0, 927}, - dictWord{11, 0, 930}, - dictWord{11, 0, 940}, - dictWord{12, 0, 144}, - dictWord{12, 0, 325}, - dictWord{12, 0, 329}, - dictWord{12, 0, 389}, - dictWord{ - 12, - 0, - 403, - }, - dictWord{12, 0, 451}, - dictWord{12, 0, 515}, - dictWord{12, 0, 604}, - dictWord{12, 0, 616}, - dictWord{12, 0, 626}, - dictWord{13, 0, 66}, - dictWord{ - 13, - 0, - 131, - }, - dictWord{13, 0, 167}, - dictWord{13, 0, 236}, - dictWord{13, 0, 368}, - dictWord{13, 0, 411}, - dictWord{13, 0, 434}, - dictWord{13, 0, 453}, - dictWord{13, 0, 461}, - dictWord{13, 0, 474}, - dictWord{14, 0, 59}, - dictWord{14, 0, 60}, - dictWord{14, 0, 139}, - dictWord{14, 0, 152}, - dictWord{14, 0, 276}, - dictWord{14, 0, 353}, - dictWord{ - 14, - 0, - 402, - }, - dictWord{15, 0, 28}, - dictWord{15, 0, 81}, - dictWord{15, 0, 123}, - dictWord{15, 0, 152}, - dictWord{18, 0, 136}, - dictWord{148, 0, 88}, - dictWord{ - 4, - 11, - 929, - }, - dictWord{133, 11, 799}, - dictWord{136, 11, 46}, - dictWord{142, 0, 307}, - dictWord{4, 0, 609}, - dictWord{7, 0, 756}, - dictWord{9, 0, 544}, - dictWord{ - 11, - 0, - 413, - }, - dictWord{144, 0, 25}, - dictWord{10, 0, 687}, - dictWord{7, 10, 619}, - dictWord{10, 10, 547}, - dictWord{11, 10, 122}, - dictWord{140, 10, 601}, - dictWord{ - 4, - 0, - 930, - }, - dictWord{133, 0, 947}, - dictWord{133, 0, 939}, - dictWord{142, 0, 21}, - dictWord{4, 11, 892}, - dictWord{133, 11, 770}, - dictWord{133, 0, 962}, - dictWord{ - 5, - 0, - 651, - }, - dictWord{8, 0, 170}, - dictWord{9, 0, 61}, - dictWord{9, 0, 63}, - dictWord{10, 0, 23}, - dictWord{10, 0, 37}, - dictWord{10, 0, 834}, - dictWord{11, 0, 4}, - dictWord{ - 11, - 0, - 187, - }, - dictWord{11, 0, 281}, - dictWord{11, 0, 503}, - dictWord{11, 0, 677}, - dictWord{12, 0, 96}, - dictWord{12, 0, 130}, - dictWord{12, 0, 244}, - dictWord{14, 0, 5}, - dictWord{14, 0, 40}, - dictWord{14, 0, 162}, - dictWord{14, 0, 202}, - dictWord{146, 0, 133}, - dictWord{4, 0, 406}, - dictWord{5, 0, 579}, - dictWord{12, 0, 492}, - dictWord{ - 150, - 0, - 15, - }, - dictWord{135, 11, 158}, - dictWord{135, 0, 597}, - dictWord{132, 0, 981}, - dictWord{132, 10, 888}, - dictWord{4, 10, 149}, - dictWord{138, 10, 368}, - dictWord{132, 0, 545}, - dictWord{4, 10, 154}, - dictWord{7, 10, 1134}, - dictWord{136, 10, 105}, - dictWord{135, 11, 2001}, - dictWord{134, 0, 1558}, - dictWord{ - 4, - 10, - 31, - }, - dictWord{6, 10, 429}, - dictWord{7, 10, 962}, - dictWord{9, 10, 458}, - dictWord{139, 10, 691}, - dictWord{132, 10, 312}, - dictWord{135, 10, 1642}, - dictWord{ - 6, - 0, - 17, - }, - dictWord{6, 0, 1304}, - dictWord{7, 0, 16}, - dictWord{7, 0, 1001}, - dictWord{9, 0, 886}, - dictWord{10, 0, 489}, - dictWord{10, 0, 800}, - dictWord{11, 0, 782}, - dictWord{12, 0, 320}, - dictWord{13, 0, 467}, - dictWord{14, 0, 145}, - dictWord{14, 0, 387}, - dictWord{143, 0, 119}, - dictWord{135, 0, 1982}, - dictWord{17, 0, 17}, - dictWord{7, 11, 1461}, - dictWord{140, 11, 91}, - dictWord{4, 10, 236}, - dictWord{132, 11, 602}, - dictWord{138, 0, 907}, - dictWord{136, 0, 110}, - dictWord{7, 0, 272}, - dictWord{19, 0, 53}, - dictWord{5, 10, 836}, - dictWord{5, 10, 857}, - dictWord{134, 10, 1680}, - dictWord{5, 0, 458}, - dictWord{7, 11, 1218}, - dictWord{136, 11, 303}, - dictWord{7, 0, 1983}, - dictWord{8, 0, 0}, - dictWord{8, 0, 171}, - dictWord{9, 0, 120}, - dictWord{9, 0, 732}, - dictWord{10, 0, 473}, - dictWord{11, 0, 656}, - dictWord{ - 11, - 0, - 998, - }, - dictWord{18, 0, 0}, - dictWord{18, 0, 2}, - dictWord{19, 0, 21}, - dictWord{10, 10, 68}, - dictWord{139, 10, 494}, - dictWord{137, 11, 662}, - dictWord{4, 11, 13}, - dictWord{5, 11, 567}, - dictWord{7, 11, 1498}, - dictWord{9, 11, 124}, - dictWord{11, 11, 521}, - dictWord{140, 11, 405}, - dictWord{4, 10, 81}, - dictWord{139, 10, 867}, - dictWord{135, 11, 1006}, - dictWord{7, 11, 800}, - dictWord{7, 11, 1783}, - dictWord{138, 11, 12}, - dictWord{9, 0, 295}, - dictWord{10, 0, 443}, - dictWord{ - 5, - 10, - 282, - }, - dictWord{8, 10, 650}, - dictWord{137, 10, 907}, - dictWord{132, 11, 735}, - dictWord{4, 11, 170}, - dictWord{4, 10, 775}, - dictWord{135, 11, 323}, - dictWord{ - 6, - 0, - 1844, - }, - dictWord{10, 0, 924}, - dictWord{11, 11, 844}, - dictWord{12, 11, 104}, - dictWord{140, 11, 625}, - dictWord{5, 11, 304}, - dictWord{7, 11, 1403}, - dictWord{140, 11, 498}, - dictWord{134, 0, 1232}, - dictWord{4, 0, 519}, - dictWord{10, 0, 70}, - dictWord{12, 0, 26}, - dictWord{14, 0, 17}, - dictWord{14, 0, 178}, - dictWord{ - 15, - 0, - 34, - }, - dictWord{149, 0, 12}, - dictWord{132, 0, 993}, - dictWord{4, 11, 148}, - dictWord{133, 11, 742}, - dictWord{6, 0, 31}, - dictWord{7, 0, 491}, - dictWord{7, 0, 530}, - dictWord{8, 0, 592}, - dictWord{11, 0, 53}, - dictWord{11, 0, 779}, - dictWord{12, 0, 167}, - dictWord{12, 0, 411}, - dictWord{14, 0, 14}, - dictWord{14, 0, 136}, - dictWord{ - 15, - 0, - 72, - }, - dictWord{16, 0, 17}, - dictWord{144, 0, 72}, - dictWord{133, 0, 907}, - dictWord{134, 0, 733}, - dictWord{133, 11, 111}, - dictWord{4, 10, 71}, - dictWord{ - 5, - 10, - 376, - }, - dictWord{7, 10, 119}, - dictWord{138, 10, 665}, - dictWord{136, 0, 55}, - dictWord{8, 0, 430}, - dictWord{136, 11, 430}, - dictWord{4, 0, 208}, - dictWord{ - 5, - 0, - 106, - }, - dictWord{6, 0, 531}, - dictWord{8, 0, 408}, - dictWord{9, 0, 188}, - dictWord{138, 0, 572}, - dictWord{12, 0, 56}, - dictWord{11, 10, 827}, - dictWord{14, 10, 34}, - dictWord{143, 10, 148}, - dictWord{134, 0, 1693}, - dictWord{133, 11, 444}, - dictWord{132, 10, 479}, - dictWord{140, 0, 441}, - dictWord{9, 0, 449}, - dictWord{ - 10, - 0, - 192, - }, - dictWord{138, 0, 740}, - dictWord{134, 0, 928}, - dictWord{4, 0, 241}, - dictWord{7, 10, 607}, - dictWord{136, 10, 99}, - dictWord{8, 11, 123}, - dictWord{ - 15, - 11, - 6, - }, - dictWord{144, 11, 7}, - dictWord{6, 11, 285}, - dictWord{8, 11, 654}, - dictWord{11, 11, 749}, - dictWord{12, 11, 190}, - dictWord{12, 11, 327}, - dictWord{ - 13, - 11, - 120, - }, - dictWord{13, 11, 121}, - dictWord{13, 11, 327}, - dictWord{15, 11, 47}, - dictWord{146, 11, 40}, - dictWord{4, 10, 41}, - dictWord{5, 10, 74}, - dictWord{ - 7, - 10, - 1627, - }, - dictWord{11, 10, 871}, - dictWord{140, 10, 619}, - dictWord{7, 0, 1525}, - dictWord{11, 10, 329}, - dictWord{11, 10, 965}, - dictWord{12, 10, 241}, - dictWord{14, 10, 354}, - dictWord{15, 10, 22}, - dictWord{148, 10, 63}, - dictWord{132, 0, 259}, - dictWord{135, 11, 183}, - dictWord{9, 10, 209}, - dictWord{ - 137, - 10, - 300, - }, - dictWord{5, 11, 937}, - dictWord{135, 11, 100}, - dictWord{133, 10, 98}, - dictWord{4, 0, 173}, - dictWord{5, 0, 312}, - dictWord{5, 0, 512}, - dictWord{ - 135, - 0, - 1285, - }, - dictWord{141, 0, 185}, - dictWord{7, 0, 1603}, - dictWord{7, 0, 1691}, - dictWord{9, 0, 464}, - dictWord{11, 0, 195}, - dictWord{12, 0, 279}, - dictWord{ - 12, - 0, - 448, - }, - dictWord{14, 0, 11}, - dictWord{147, 0, 102}, - dictWord{135, 0, 1113}, - dictWord{133, 10, 984}, - dictWord{4, 0, 452}, - dictWord{5, 0, 583}, - dictWord{ - 135, - 0, - 720, - }, - dictWord{4, 0, 547}, - dictWord{5, 0, 817}, - dictWord{6, 0, 433}, - dictWord{7, 0, 593}, - dictWord{7, 0, 1378}, - dictWord{8, 0, 161}, - dictWord{9, 0, 284}, - dictWord{ - 10, - 0, - 313, - }, - dictWord{139, 0, 886}, - dictWord{8, 0, 722}, - dictWord{4, 10, 182}, - dictWord{6, 10, 205}, - dictWord{135, 10, 220}, - dictWord{150, 0, 13}, - dictWord{ - 4, - 10, - 42, - }, - dictWord{9, 10, 205}, - dictWord{9, 10, 786}, - dictWord{138, 10, 659}, - dictWord{6, 0, 289}, - dictWord{7, 0, 1670}, - dictWord{12, 0, 57}, - dictWord{151, 0, 4}, - dictWord{132, 10, 635}, - dictWord{14, 0, 43}, - dictWord{146, 0, 21}, - dictWord{139, 10, 533}, - dictWord{135, 0, 1694}, - dictWord{8, 0, 420}, - dictWord{ - 139, - 0, - 193, - }, - dictWord{135, 0, 409}, - dictWord{132, 10, 371}, - dictWord{4, 10, 272}, - dictWord{135, 10, 836}, - dictWord{5, 10, 825}, - dictWord{134, 10, 1640}, - dictWord{5, 11, 251}, - dictWord{5, 11, 956}, - dictWord{8, 11, 268}, - dictWord{9, 11, 214}, - dictWord{146, 11, 142}, - dictWord{138, 0, 308}, - dictWord{6, 0, 1863}, - dictWord{141, 11, 37}, - dictWord{137, 10, 879}, - dictWord{7, 10, 317}, - dictWord{135, 10, 569}, - dictWord{132, 11, 294}, - dictWord{134, 0, 790}, - dictWord{ - 5, - 0, - 1002, - }, - dictWord{136, 0, 745}, - dictWord{5, 11, 346}, - dictWord{5, 11, 711}, - dictWord{136, 11, 390}, - dictWord{135, 0, 289}, - dictWord{5, 0, 504}, - dictWord{ - 11, - 0, - 68, - }, - dictWord{137, 10, 307}, - dictWord{4, 0, 239}, - dictWord{6, 0, 477}, - dictWord{7, 0, 1607}, - dictWord{139, 0, 617}, - dictWord{149, 0, 13}, - dictWord{ - 133, - 0, - 609, - }, - dictWord{133, 11, 624}, - dictWord{5, 11, 783}, - dictWord{7, 11, 1998}, - dictWord{135, 11, 2047}, - dictWord{133, 10, 525}, - dictWord{132, 0, 367}, - dictWord{132, 11, 594}, - dictWord{6, 0, 528}, - dictWord{133, 10, 493}, - dictWord{4, 10, 174}, - dictWord{135, 10, 911}, - dictWord{8, 10, 417}, - dictWord{ - 137, - 10, - 782, - }, - dictWord{132, 0, 694}, - dictWord{7, 0, 548}, - dictWord{137, 0, 58}, - dictWord{4, 10, 32}, - dictWord{5, 10, 215}, - dictWord{6, 10, 269}, - dictWord{7, 10, 1782}, - dictWord{7, 10, 1892}, - dictWord{10, 10, 16}, - dictWord{11, 10, 822}, - dictWord{11, 10, 954}, - dictWord{141, 10, 481}, - dictWord{140, 0, 687}, - dictWord{ - 7, - 0, - 1749, - }, - dictWord{136, 10, 477}, - dictWord{132, 11, 569}, - dictWord{133, 10, 308}, - dictWord{135, 10, 1088}, - dictWord{4, 0, 661}, - dictWord{138, 0, 1004}, - dictWord{5, 11, 37}, - dictWord{6, 11, 39}, - dictWord{6, 11, 451}, - dictWord{7, 11, 218}, - dictWord{7, 11, 667}, - dictWord{7, 11, 1166}, - dictWord{7, 11, 1687}, - dictWord{8, 11, 662}, - dictWord{144, 11, 2}, - dictWord{9, 0, 445}, - dictWord{12, 0, 53}, - dictWord{13, 0, 492}, - dictWord{5, 10, 126}, - dictWord{8, 10, 297}, - dictWord{ - 9, - 10, - 366, - }, - dictWord{140, 10, 374}, - dictWord{7, 10, 1551}, - dictWord{139, 10, 361}, - dictWord{148, 0, 74}, - dictWord{134, 11, 508}, - dictWord{135, 0, 213}, - dictWord{132, 10, 175}, - dictWord{132, 10, 685}, - dictWord{6, 0, 760}, - dictWord{6, 0, 834}, - dictWord{134, 0, 1248}, - dictWord{7, 11, 453}, - dictWord{7, 11, 635}, - dictWord{7, 11, 796}, - dictWord{8, 11, 331}, - dictWord{9, 11, 328}, - dictWord{9, 11, 330}, - dictWord{9, 11, 865}, - dictWord{10, 11, 119}, - dictWord{10, 11, 235}, - dictWord{11, 11, 111}, - dictWord{11, 11, 129}, - dictWord{11, 11, 240}, - dictWord{12, 11, 31}, - dictWord{12, 11, 66}, - dictWord{12, 11, 222}, - dictWord{12, 11, 269}, - dictWord{12, 11, 599}, - dictWord{12, 11, 689}, - dictWord{13, 11, 186}, - dictWord{13, 11, 364}, - dictWord{142, 11, 345}, - dictWord{7, 0, 1672}, - dictWord{ - 139, - 0, - 189, - }, - dictWord{133, 10, 797}, - dictWord{133, 10, 565}, - dictWord{6, 0, 1548}, - dictWord{6, 11, 98}, - dictWord{7, 11, 585}, - dictWord{135, 11, 702}, - dictWord{ - 9, - 0, - 968, - }, - dictWord{15, 0, 192}, - dictWord{149, 0, 56}, - dictWord{4, 10, 252}, - dictWord{6, 11, 37}, - dictWord{7, 11, 299}, - dictWord{7, 10, 1068}, - dictWord{ - 7, - 11, - 1666, - }, - dictWord{8, 11, 195}, - dictWord{8, 11, 316}, - dictWord{9, 11, 178}, - dictWord{9, 11, 276}, - dictWord{9, 11, 339}, - dictWord{9, 11, 536}, - dictWord{ - 10, - 11, - 102, - }, - dictWord{10, 11, 362}, - dictWord{10, 10, 434}, - dictWord{10, 11, 785}, - dictWord{11, 11, 55}, - dictWord{11, 11, 149}, - dictWord{11, 10, 228}, - dictWord{ - 11, - 10, - 426, - }, - dictWord{11, 11, 773}, - dictWord{13, 10, 231}, - dictWord{13, 11, 416}, - dictWord{13, 11, 419}, - dictWord{14, 11, 38}, - dictWord{14, 11, 41}, - dictWord{14, 11, 210}, - dictWord{18, 10, 106}, - dictWord{148, 10, 87}, - dictWord{4, 0, 751}, - dictWord{11, 0, 390}, - dictWord{140, 0, 32}, - dictWord{4, 0, 409}, - dictWord{133, 0, 78}, - dictWord{11, 11, 458}, - dictWord{12, 11, 15}, - dictWord{140, 11, 432}, - dictWord{7, 0, 1602}, - dictWord{10, 0, 257}, - dictWord{10, 0, 698}, - dictWord{11, 0, 544}, - dictWord{11, 0, 585}, - dictWord{12, 0, 212}, - dictWord{13, 0, 307}, - dictWord{5, 10, 231}, - dictWord{7, 10, 601}, - dictWord{9, 10, 277}, - dictWord{ - 9, - 10, - 674, - }, - dictWord{10, 10, 178}, - dictWord{10, 10, 418}, - dictWord{10, 10, 509}, - dictWord{11, 10, 531}, - dictWord{12, 10, 113}, - dictWord{12, 10, 475}, - dictWord{13, 10, 99}, - dictWord{142, 10, 428}, - dictWord{6, 0, 473}, - dictWord{145, 0, 105}, - dictWord{6, 0, 1949}, - dictWord{15, 0, 156}, - dictWord{133, 11, 645}, - dictWord{7, 10, 1591}, - dictWord{144, 10, 43}, - dictWord{135, 0, 1779}, - dictWord{135, 10, 1683}, - dictWord{4, 11, 290}, - dictWord{135, 11, 1356}, - dictWord{134, 0, 763}, - dictWord{6, 11, 70}, - dictWord{7, 11, 1292}, - dictWord{10, 11, 762}, - dictWord{139, 11, 288}, - dictWord{142, 0, 29}, - dictWord{140, 11, 428}, - dictWord{7, 0, 883}, - dictWord{7, 11, 131}, - dictWord{7, 11, 422}, - dictWord{8, 11, 210}, - dictWord{140, 11, 573}, - dictWord{134, 0, 488}, - dictWord{4, 10, 399}, - dictWord{5, 10, 119}, - dictWord{5, 10, 494}, - dictWord{7, 10, 751}, - dictWord{137, 10, 556}, - dictWord{133, 0, 617}, - dictWord{132, 11, 936}, - dictWord{ - 139, - 0, - 50, - }, - dictWord{7, 0, 1518}, - dictWord{139, 0, 694}, - dictWord{137, 0, 785}, - dictWord{4, 0, 546}, - dictWord{135, 0, 2042}, - dictWord{7, 11, 716}, - dictWord{ - 13, - 11, - 97, - }, - dictWord{141, 11, 251}, - dictWord{132, 11, 653}, - dictWord{145, 0, 22}, - dictWord{134, 0, 1016}, - dictWord{4, 0, 313}, - dictWord{133, 0, 577}, - dictWord{ - 136, - 11, - 657, - }, - dictWord{8, 0, 184}, - dictWord{141, 0, 433}, - dictWord{135, 0, 935}, - dictWord{6, 0, 720}, - dictWord{9, 0, 114}, - dictWord{146, 11, 80}, - dictWord{ - 12, - 0, - 186, - }, - dictWord{12, 0, 292}, - dictWord{14, 0, 100}, - dictWord{18, 0, 70}, - dictWord{7, 10, 594}, - dictWord{7, 10, 851}, - dictWord{7, 10, 1858}, - dictWord{ - 9, - 10, - 411, - }, - dictWord{9, 10, 574}, - dictWord{9, 10, 666}, - dictWord{9, 10, 737}, - dictWord{10, 10, 346}, - dictWord{10, 10, 712}, - dictWord{11, 10, 246}, - dictWord{ - 11, - 10, - 432, - }, - dictWord{11, 10, 517}, - dictWord{11, 10, 647}, - dictWord{11, 10, 679}, - dictWord{11, 10, 727}, - dictWord{12, 10, 304}, - dictWord{12, 10, 305}, - dictWord{12, 10, 323}, - dictWord{12, 10, 483}, - dictWord{12, 10, 572}, - dictWord{12, 10, 593}, - dictWord{12, 10, 602}, - dictWord{13, 10, 95}, - dictWord{13, 10, 101}, - dictWord{13, 10, 171}, - dictWord{13, 10, 315}, - dictWord{13, 10, 378}, - dictWord{13, 10, 425}, - dictWord{13, 10, 475}, - dictWord{14, 10, 63}, - dictWord{ - 14, - 10, - 380, - }, - dictWord{14, 10, 384}, - dictWord{15, 10, 133}, - dictWord{18, 10, 112}, - dictWord{148, 10, 72}, - dictWord{135, 10, 1093}, - dictWord{135, 11, 1836}, - dictWord{132, 10, 679}, - dictWord{137, 10, 203}, - dictWord{11, 0, 402}, - dictWord{12, 0, 109}, - dictWord{12, 0, 431}, - dictWord{13, 0, 179}, - dictWord{13, 0, 206}, - dictWord{14, 0, 217}, - dictWord{16, 0, 3}, - dictWord{148, 0, 53}, - dictWord{7, 11, 1368}, - dictWord{8, 11, 232}, - dictWord{8, 11, 361}, - dictWord{10, 11, 682}, - dictWord{138, 11, 742}, - dictWord{137, 10, 714}, - dictWord{5, 0, 886}, - dictWord{6, 0, 46}, - dictWord{6, 0, 1790}, - dictWord{7, 0, 14}, - dictWord{7, 0, 732}, - dictWord{ - 7, - 0, - 1654, - }, - dictWord{8, 0, 95}, - dictWord{8, 0, 327}, - dictWord{8, 0, 616}, - dictWord{9, 0, 892}, - dictWord{10, 0, 598}, - dictWord{10, 0, 769}, - dictWord{11, 0, 134}, - dictWord{11, 0, 747}, - dictWord{12, 0, 378}, - dictWord{14, 0, 97}, - dictWord{137, 11, 534}, - dictWord{4, 0, 969}, - dictWord{136, 10, 825}, - dictWord{137, 11, 27}, - dictWord{6, 0, 727}, - dictWord{142, 11, 12}, - dictWord{133, 0, 1021}, - dictWord{134, 0, 1190}, - dictWord{134, 11, 1657}, - dictWord{5, 10, 143}, - dictWord{ - 5, - 10, - 769, - }, - dictWord{6, 10, 1760}, - dictWord{7, 10, 682}, - dictWord{7, 10, 1992}, - dictWord{136, 10, 736}, - dictWord{132, 0, 153}, - dictWord{135, 11, 127}, - dictWord{133, 0, 798}, - dictWord{132, 0, 587}, - dictWord{6, 0, 598}, - dictWord{7, 0, 42}, - dictWord{8, 0, 695}, - dictWord{10, 0, 212}, - dictWord{11, 0, 158}, - dictWord{ - 14, - 0, - 196, - }, - dictWord{145, 0, 85}, - dictWord{133, 10, 860}, - dictWord{6, 0, 1929}, - dictWord{134, 0, 1933}, - dictWord{5, 0, 957}, - dictWord{5, 0, 1008}, - dictWord{ - 9, - 0, - 577, - }, - dictWord{12, 0, 141}, - dictWord{6, 10, 422}, - dictWord{7, 10, 0}, - dictWord{7, 10, 1544}, - dictWord{8, 11, 364}, - dictWord{11, 10, 990}, - dictWord{ - 12, - 10, - 453, - }, - dictWord{13, 10, 47}, - dictWord{141, 10, 266}, - dictWord{134, 0, 1319}, - dictWord{4, 0, 129}, - dictWord{135, 0, 465}, - dictWord{7, 0, 470}, - dictWord{ - 7, - 0, - 1057, - }, - dictWord{7, 0, 1201}, - dictWord{9, 0, 755}, - dictWord{11, 0, 906}, - dictWord{140, 0, 527}, - dictWord{7, 0, 908}, - dictWord{146, 0, 7}, - dictWord{5, 0, 148}, - dictWord{136, 0, 450}, - dictWord{5, 10, 515}, - dictWord{137, 10, 131}, - dictWord{7, 10, 1605}, - dictWord{11, 10, 962}, - dictWord{146, 10, 139}, - dictWord{ - 132, - 10, - 646, - }, - dictWord{134, 0, 1166}, - dictWord{4, 10, 396}, - dictWord{7, 10, 728}, - dictWord{9, 10, 117}, - dictWord{13, 10, 202}, - dictWord{148, 10, 51}, - dictWord{ - 6, - 10, - 121, - }, - dictWord{6, 10, 124}, - dictWord{6, 10, 357}, - dictWord{7, 10, 1138}, - dictWord{7, 10, 1295}, - dictWord{8, 10, 162}, - dictWord{139, 10, 655}, - dictWord{14, 0, 374}, - dictWord{142, 11, 374}, - dictWord{138, 0, 253}, - dictWord{139, 0, 1003}, - dictWord{5, 11, 909}, - dictWord{9, 11, 849}, - dictWord{ - 138, - 11, - 805, - }, - dictWord{133, 10, 237}, - dictWord{7, 11, 525}, - dictWord{7, 11, 1579}, - dictWord{8, 11, 497}, - dictWord{136, 11, 573}, - dictWord{137, 0, 46}, - dictWord{ - 132, - 0, - 879, - }, - dictWord{134, 0, 806}, - dictWord{135, 0, 1868}, - dictWord{6, 0, 1837}, - dictWord{134, 0, 1846}, - dictWord{6, 0, 730}, - dictWord{134, 0, 881}, - dictWord{7, 0, 965}, - dictWord{7, 0, 1460}, - dictWord{7, 0, 1604}, - dictWord{7, 11, 193}, - dictWord{7, 11, 397}, - dictWord{7, 11, 1105}, - dictWord{8, 11, 124}, - dictWord{ - 8, - 11, - 619, - }, - dictWord{9, 11, 305}, - dictWord{10, 11, 264}, - dictWord{11, 11, 40}, - dictWord{12, 11, 349}, - dictWord{13, 11, 134}, - dictWord{13, 11, 295}, - dictWord{14, 11, 155}, - dictWord{15, 11, 120}, - dictWord{146, 11, 105}, - dictWord{136, 0, 506}, - dictWord{143, 0, 10}, - dictWord{4, 11, 262}, - dictWord{7, 11, 342}, - dictWord{7, 10, 571}, - dictWord{7, 10, 1877}, - dictWord{10, 10, 366}, - dictWord{141, 11, 23}, - dictWord{133, 11, 641}, - dictWord{10, 0, 22}, - dictWord{9, 10, 513}, - dictWord{10, 10, 39}, - dictWord{12, 10, 122}, - dictWord{140, 10, 187}, - dictWord{135, 11, 1431}, - dictWord{150, 11, 49}, - dictWord{4, 11, 99}, - dictWord{ - 6, - 11, - 250, - }, - dictWord{6, 11, 346}, - dictWord{8, 11, 127}, - dictWord{138, 11, 81}, - dictWord{6, 0, 2014}, - dictWord{8, 0, 928}, - dictWord{10, 0, 960}, - dictWord{10, 0, 979}, - dictWord{140, 0, 996}, - dictWord{134, 0, 296}, - dictWord{132, 11, 915}, - dictWord{5, 11, 75}, - dictWord{9, 11, 517}, - dictWord{10, 11, 470}, - dictWord{ - 12, - 11, - 155, - }, - dictWord{141, 11, 224}, - dictWord{137, 10, 873}, - dictWord{4, 0, 854}, - dictWord{140, 11, 18}, - dictWord{134, 0, 587}, - dictWord{7, 10, 107}, - dictWord{ - 7, - 10, - 838, - }, - dictWord{8, 10, 550}, - dictWord{138, 10, 401}, - dictWord{11, 0, 636}, - dictWord{15, 0, 145}, - dictWord{17, 0, 34}, - dictWord{19, 0, 50}, - dictWord{ - 23, - 0, - 20, - }, - dictWord{11, 10, 588}, - dictWord{11, 10, 864}, - dictWord{11, 10, 968}, - dictWord{143, 10, 160}, - dictWord{135, 11, 216}, - dictWord{7, 0, 982}, - dictWord{ - 10, - 0, - 32, - }, - dictWord{143, 0, 56}, - dictWord{133, 10, 768}, - dictWord{133, 11, 954}, - dictWord{6, 11, 304}, - dictWord{7, 11, 1114}, - dictWord{8, 11, 418}, - dictWord{ - 10, - 11, - 345, - }, - dictWord{11, 11, 341}, - dictWord{11, 11, 675}, - dictWord{141, 11, 40}, - dictWord{9, 11, 410}, - dictWord{139, 11, 425}, - dictWord{136, 0, 941}, - dictWord{5, 0, 435}, - dictWord{132, 10, 894}, - dictWord{5, 0, 85}, - dictWord{6, 0, 419}, - dictWord{7, 0, 134}, - dictWord{7, 0, 305}, - dictWord{7, 0, 361}, - dictWord{ - 7, - 0, - 1337, - }, - dictWord{8, 0, 71}, - dictWord{140, 0, 519}, - dictWord{140, 0, 688}, - dictWord{135, 0, 740}, - dictWord{5, 0, 691}, - dictWord{7, 0, 345}, - dictWord{9, 0, 94}, - dictWord{140, 0, 169}, - dictWord{5, 0, 183}, - dictWord{6, 0, 582}, - dictWord{10, 0, 679}, - dictWord{140, 0, 435}, - dictWord{134, 11, 14}, - dictWord{6, 0, 945}, - dictWord{135, 0, 511}, - dictWord{134, 11, 1708}, - dictWord{5, 11, 113}, - dictWord{6, 11, 243}, - dictWord{7, 11, 1865}, - dictWord{11, 11, 161}, - dictWord{16, 11, 37}, - dictWord{145, 11, 99}, - dictWord{132, 11, 274}, - dictWord{137, 0, 539}, - dictWord{7, 0, 1993}, - dictWord{8, 0, 684}, - dictWord{134, 10, 272}, - dictWord{ - 6, - 0, - 659, - }, - dictWord{134, 0, 982}, - dictWord{4, 10, 9}, - dictWord{5, 10, 128}, - dictWord{7, 10, 368}, - dictWord{11, 10, 480}, - dictWord{148, 10, 3}, - dictWord{ - 134, - 0, - 583, - }, - dictWord{132, 0, 803}, - dictWord{133, 0, 704}, - dictWord{4, 0, 179}, - dictWord{5, 0, 198}, - dictWord{133, 0, 697}, - dictWord{7, 0, 347}, - dictWord{7, 0, 971}, - dictWord{8, 0, 181}, - dictWord{10, 0, 711}, - dictWord{135, 11, 166}, - dictWord{136, 10, 682}, - dictWord{4, 10, 2}, - dictWord{7, 10, 545}, - dictWord{7, 10, 894}, - dictWord{136, 11, 521}, - dictWord{135, 0, 481}, - dictWord{132, 0, 243}, - dictWord{5, 0, 203}, - dictWord{7, 0, 19}, - dictWord{7, 0, 71}, - dictWord{7, 0, 113}, - dictWord{ - 10, - 0, - 405, - }, - dictWord{11, 0, 357}, - dictWord{142, 0, 240}, - dictWord{5, 11, 725}, - dictWord{5, 11, 727}, - dictWord{135, 11, 1811}, - dictWord{6, 0, 826}, - dictWord{ - 137, - 11, - 304, - }, - dictWord{7, 0, 1450}, - dictWord{139, 0, 99}, - dictWord{133, 11, 654}, - dictWord{134, 0, 492}, - dictWord{5, 0, 134}, - dictWord{6, 0, 408}, - dictWord{ - 6, - 0, - 495, - }, - dictWord{7, 0, 1593}, - dictWord{6, 11, 273}, - dictWord{10, 11, 188}, - dictWord{13, 11, 377}, - dictWord{146, 11, 77}, - dictWord{9, 10, 769}, - dictWord{ - 140, - 10, - 185, - }, - dictWord{135, 11, 410}, - dictWord{142, 0, 4}, - dictWord{4, 0, 665}, - dictWord{134, 11, 1785}, - dictWord{4, 0, 248}, - dictWord{7, 0, 137}, - dictWord{ - 137, - 0, - 349, - }, - dictWord{5, 10, 530}, - dictWord{142, 10, 113}, - dictWord{7, 0, 1270}, - dictWord{139, 0, 612}, - dictWord{132, 11, 780}, - dictWord{5, 0, 371}, - dictWord{135, 0, 563}, - dictWord{135, 0, 826}, - dictWord{6, 0, 1535}, - dictWord{23, 0, 21}, - dictWord{151, 0, 23}, - dictWord{4, 0, 374}, - dictWord{7, 0, 547}, - dictWord{ - 7, - 0, - 1700, - }, - dictWord{7, 0, 1833}, - dictWord{139, 0, 858}, - dictWord{133, 10, 556}, - dictWord{7, 11, 612}, - dictWord{8, 11, 545}, - dictWord{8, 11, 568}, - dictWord{ - 8, - 11, - 642, - }, - dictWord{9, 11, 717}, - dictWord{10, 11, 541}, - dictWord{10, 11, 763}, - dictWord{11, 11, 449}, - dictWord{12, 11, 489}, - dictWord{13, 11, 153}, - dictWord{ - 13, - 11, - 296, - }, - dictWord{14, 11, 138}, - dictWord{14, 11, 392}, - dictWord{15, 11, 50}, - dictWord{16, 11, 6}, - dictWord{16, 11, 12}, - dictWord{148, 11, 9}, - dictWord{ - 9, - 0, - 311, - }, - dictWord{141, 0, 42}, - dictWord{8, 10, 16}, - dictWord{140, 10, 568}, - dictWord{6, 0, 1968}, - dictWord{6, 0, 2027}, - dictWord{138, 0, 991}, - dictWord{ - 6, - 0, - 1647, - }, - dictWord{7, 0, 1552}, - dictWord{7, 0, 2010}, - dictWord{9, 0, 494}, - dictWord{137, 0, 509}, - dictWord{133, 11, 948}, - dictWord{6, 10, 186}, - dictWord{ - 137, - 10, - 426, - }, - dictWord{134, 0, 769}, - dictWord{134, 0, 642}, - dictWord{132, 10, 585}, - dictWord{6, 0, 123}, - dictWord{7, 0, 214}, - dictWord{9, 0, 728}, - dictWord{ - 10, - 0, - 157, - }, - dictWord{11, 0, 346}, - dictWord{11, 0, 662}, - dictWord{143, 0, 106}, - dictWord{142, 11, 381}, - dictWord{135, 0, 1435}, - dictWord{4, 11, 532}, - dictWord{ - 5, - 11, - 706, - }, - dictWord{135, 11, 662}, - dictWord{5, 11, 837}, - dictWord{134, 11, 1651}, - dictWord{4, 10, 93}, - dictWord{5, 10, 252}, - dictWord{6, 10, 229}, - dictWord{ - 7, - 10, - 291, - }, - dictWord{9, 10, 550}, - dictWord{139, 10, 644}, - dictWord{148, 0, 79}, - dictWord{137, 10, 749}, - dictWord{134, 0, 1425}, - dictWord{ - 137, - 10, - 162, - }, - dictWord{4, 11, 362}, - dictWord{7, 11, 52}, - dictWord{7, 11, 303}, - dictWord{140, 11, 166}, - dictWord{132, 10, 381}, - dictWord{4, 11, 330}, - dictWord{ - 7, - 11, - 933, - }, - dictWord{7, 11, 2012}, - dictWord{136, 11, 292}, - dictWord{135, 11, 767}, - dictWord{4, 0, 707}, - dictWord{5, 0, 588}, - dictWord{6, 0, 393}, - dictWord{ - 13, - 0, - 106, - }, - dictWord{18, 0, 49}, - dictWord{147, 0, 41}, - dictWord{6, 0, 211}, - dictWord{7, 0, 1690}, - dictWord{11, 0, 486}, - dictWord{140, 0, 369}, - dictWord{ - 137, - 11, - 883, - }, - dictWord{4, 11, 703}, - dictWord{135, 11, 207}, - dictWord{4, 0, 187}, - dictWord{5, 0, 184}, - dictWord{5, 0, 690}, - dictWord{7, 0, 1869}, - dictWord{10, 0, 756}, - dictWord{139, 0, 783}, - dictWord{132, 11, 571}, - dictWord{134, 0, 1382}, - dictWord{5, 0, 175}, - dictWord{6, 10, 77}, - dictWord{6, 10, 157}, - dictWord{7, 10, 974}, - dictWord{7, 10, 1301}, - dictWord{7, 10, 1339}, - dictWord{7, 10, 1490}, - dictWord{7, 10, 1873}, - dictWord{137, 10, 628}, - dictWord{134, 0, 1493}, - dictWord{ - 5, - 11, - 873, - }, - dictWord{133, 11, 960}, - dictWord{134, 0, 1007}, - dictWord{12, 11, 93}, - dictWord{12, 11, 501}, - dictWord{13, 11, 362}, - dictWord{14, 11, 151}, - dictWord{15, 11, 40}, - dictWord{15, 11, 59}, - dictWord{16, 11, 46}, - dictWord{17, 11, 25}, - dictWord{18, 11, 14}, - dictWord{18, 11, 134}, - dictWord{19, 11, 25}, - dictWord{ - 19, - 11, - 69, - }, - dictWord{20, 11, 16}, - dictWord{20, 11, 19}, - dictWord{20, 11, 66}, - dictWord{21, 11, 23}, - dictWord{21, 11, 25}, - dictWord{150, 11, 42}, - dictWord{ - 11, - 10, - 919, - }, - dictWord{141, 10, 409}, - dictWord{134, 0, 219}, - dictWord{5, 0, 582}, - dictWord{6, 0, 1646}, - dictWord{7, 0, 99}, - dictWord{7, 0, 1962}, - dictWord{ - 7, - 0, - 1986, - }, - dictWord{8, 0, 515}, - dictWord{8, 0, 773}, - dictWord{9, 0, 23}, - dictWord{9, 0, 491}, - dictWord{12, 0, 620}, - dictWord{142, 0, 93}, - dictWord{133, 0, 851}, - dictWord{5, 11, 33}, - dictWord{134, 11, 470}, - dictWord{135, 11, 1291}, - dictWord{134, 0, 1278}, - dictWord{135, 11, 1882}, - dictWord{135, 10, 1489}, - dictWord{132, 0, 1000}, - dictWord{138, 0, 982}, - dictWord{8, 0, 762}, - dictWord{8, 0, 812}, - dictWord{137, 0, 910}, - dictWord{6, 11, 47}, - dictWord{7, 11, 90}, - dictWord{ - 7, - 11, - 664, - }, - dictWord{7, 11, 830}, - dictWord{7, 11, 1380}, - dictWord{7, 11, 2025}, - dictWord{8, 11, 448}, - dictWord{136, 11, 828}, - dictWord{4, 0, 98}, - dictWord{ - 4, - 0, - 940, - }, - dictWord{6, 0, 1819}, - dictWord{6, 0, 1834}, - dictWord{6, 0, 1841}, - dictWord{7, 0, 1365}, - dictWord{8, 0, 859}, - dictWord{8, 0, 897}, - dictWord{8, 0, 918}, - dictWord{9, 0, 422}, - dictWord{9, 0, 670}, - dictWord{10, 0, 775}, - dictWord{10, 0, 894}, - dictWord{10, 0, 909}, - dictWord{10, 0, 910}, - dictWord{10, 0, 935}, - dictWord{ - 11, - 0, - 210, - }, - dictWord{12, 0, 750}, - dictWord{12, 0, 755}, - dictWord{13, 0, 26}, - dictWord{13, 0, 457}, - dictWord{13, 0, 476}, - dictWord{16, 0, 100}, - dictWord{16, 0, 109}, - dictWord{18, 0, 173}, - dictWord{18, 0, 175}, - dictWord{8, 10, 398}, - dictWord{9, 10, 681}, - dictWord{139, 10, 632}, - dictWord{9, 11, 417}, - dictWord{ - 137, - 11, - 493, - }, - dictWord{136, 10, 645}, - dictWord{138, 0, 906}, - dictWord{134, 0, 1730}, - dictWord{134, 10, 20}, - dictWord{133, 11, 1019}, - dictWord{134, 0, 1185}, - dictWord{10, 0, 40}, - dictWord{136, 10, 769}, - dictWord{9, 0, 147}, - dictWord{134, 11, 208}, - dictWord{140, 0, 650}, - dictWord{5, 0, 209}, - dictWord{6, 0, 30}, - dictWord{11, 0, 56}, - dictWord{139, 0, 305}, - dictWord{132, 0, 553}, - dictWord{138, 11, 344}, - dictWord{6, 11, 68}, - dictWord{7, 11, 398}, - dictWord{7, 11, 448}, - dictWord{ - 7, - 11, - 1629, - }, - dictWord{7, 11, 1813}, - dictWord{8, 11, 387}, - dictWord{8, 11, 442}, - dictWord{9, 11, 710}, - dictWord{10, 11, 282}, - dictWord{138, 11, 722}, - dictWord{5, 0, 597}, - dictWord{14, 0, 20}, - dictWord{142, 11, 20}, - dictWord{135, 0, 1614}, - dictWord{135, 10, 1757}, - dictWord{4, 0, 150}, - dictWord{5, 0, 303}, - dictWord{6, 0, 327}, - dictWord{135, 10, 937}, - dictWord{16, 0, 49}, - dictWord{7, 10, 1652}, - dictWord{144, 11, 49}, - dictWord{8, 0, 192}, - dictWord{10, 0, 78}, - dictWord{ - 141, - 0, - 359, - }, - dictWord{135, 0, 786}, - dictWord{143, 0, 134}, - dictWord{6, 0, 1638}, - dictWord{7, 0, 79}, - dictWord{7, 0, 496}, - dictWord{9, 0, 138}, - dictWord{ - 10, - 0, - 336, - }, - dictWord{11, 0, 12}, - dictWord{12, 0, 412}, - dictWord{12, 0, 440}, - dictWord{142, 0, 305}, - dictWord{136, 11, 491}, - dictWord{4, 10, 579}, - dictWord{ - 5, - 10, - 226, - }, - dictWord{5, 10, 323}, - dictWord{135, 10, 960}, - dictWord{7, 0, 204}, - dictWord{7, 0, 415}, - dictWord{8, 0, 42}, - dictWord{10, 0, 85}, - dictWord{139, 0, 564}, - dictWord{132, 0, 614}, - dictWord{4, 11, 403}, - dictWord{5, 11, 441}, - dictWord{7, 11, 450}, - dictWord{11, 11, 101}, - dictWord{12, 11, 193}, - dictWord{141, 11, 430}, - dictWord{135, 11, 1927}, - dictWord{135, 11, 1330}, - dictWord{4, 0, 3}, - dictWord{5, 0, 247}, - dictWord{5, 0, 644}, - dictWord{7, 0, 744}, - dictWord{7, 0, 1207}, - dictWord{7, 0, 1225}, - dictWord{7, 0, 1909}, - dictWord{146, 0, 147}, - dictWord{136, 0, 942}, - dictWord{4, 0, 1019}, - dictWord{134, 0, 2023}, - dictWord{5, 11, 679}, - dictWord{133, 10, 973}, - dictWord{5, 0, 285}, - dictWord{9, 0, 67}, - dictWord{13, 0, 473}, - dictWord{143, 0, 82}, - dictWord{7, 11, 328}, - dictWord{137, 11, 326}, - dictWord{151, 0, 8}, - dictWord{6, 10, 135}, - dictWord{135, 10, 1176}, - dictWord{135, 11, 1128}, - dictWord{134, 0, 1309}, - dictWord{135, 11, 1796}, - dictWord{ - 135, - 10, - 314, - }, - dictWord{4, 11, 574}, - dictWord{7, 11, 350}, - dictWord{7, 11, 1024}, - dictWord{8, 11, 338}, - dictWord{9, 11, 677}, - dictWord{10, 11, 808}, - dictWord{ - 139, - 11, - 508, - }, - dictWord{7, 11, 818}, - dictWord{17, 11, 14}, - dictWord{17, 11, 45}, - dictWord{18, 11, 75}, - dictWord{148, 11, 18}, - dictWord{146, 10, 4}, - dictWord{ - 135, - 11, - 1081, - }, - dictWord{4, 0, 29}, - dictWord{6, 0, 532}, - dictWord{7, 0, 1628}, - dictWord{7, 0, 1648}, - dictWord{9, 0, 350}, - dictWord{10, 0, 433}, - dictWord{11, 0, 97}, - dictWord{11, 0, 557}, - dictWord{11, 0, 745}, - dictWord{12, 0, 289}, - dictWord{12, 0, 335}, - dictWord{12, 0, 348}, - dictWord{12, 0, 606}, - dictWord{13, 0, 116}, - dictWord{13, 0, 233}, - dictWord{13, 0, 466}, - dictWord{14, 0, 181}, - dictWord{14, 0, 209}, - dictWord{14, 0, 232}, - dictWord{14, 0, 236}, - dictWord{14, 0, 300}, - dictWord{ - 16, - 0, - 41, - }, - dictWord{148, 0, 97}, - dictWord{7, 0, 318}, - dictWord{6, 10, 281}, - dictWord{8, 10, 282}, - dictWord{8, 10, 480}, - dictWord{8, 10, 499}, - dictWord{9, 10, 198}, - dictWord{10, 10, 143}, - dictWord{10, 10, 169}, - dictWord{10, 10, 211}, - dictWord{10, 10, 417}, - dictWord{10, 10, 574}, - dictWord{11, 10, 147}, - dictWord{ - 11, - 10, - 395, - }, - dictWord{12, 10, 75}, - dictWord{12, 10, 407}, - dictWord{12, 10, 608}, - dictWord{13, 10, 500}, - dictWord{142, 10, 251}, - dictWord{135, 11, 1676}, - dictWord{135, 11, 2037}, - dictWord{135, 0, 1692}, - dictWord{5, 0, 501}, - dictWord{7, 0, 1704}, - dictWord{9, 0, 553}, - dictWord{11, 0, 520}, - dictWord{12, 0, 557}, - dictWord{141, 0, 249}, - dictWord{6, 0, 1527}, - dictWord{14, 0, 324}, - dictWord{15, 0, 55}, - dictWord{15, 0, 80}, - dictWord{14, 11, 324}, - dictWord{15, 11, 55}, - dictWord{143, 11, 80}, - dictWord{135, 10, 1776}, - dictWord{8, 0, 988}, - dictWord{137, 11, 297}, - dictWord{132, 10, 419}, - dictWord{142, 0, 223}, - dictWord{ - 139, - 11, - 234, - }, - dictWord{7, 0, 1123}, - dictWord{12, 0, 508}, - dictWord{14, 0, 102}, - dictWord{14, 0, 226}, - dictWord{144, 0, 57}, - dictWord{4, 10, 138}, - dictWord{ - 7, - 10, - 1012, - }, - dictWord{7, 10, 1280}, - dictWord{137, 10, 76}, - dictWord{7, 0, 1764}, - dictWord{5, 10, 29}, - dictWord{140, 10, 638}, - dictWord{134, 0, 2015}, - dictWord{134, 0, 1599}, - dictWord{138, 11, 56}, - dictWord{6, 11, 306}, - dictWord{7, 11, 1140}, - dictWord{7, 11, 1340}, - dictWord{8, 11, 133}, - dictWord{ - 138, - 11, - 449, - }, - dictWord{139, 11, 1011}, - dictWord{6, 10, 1710}, - dictWord{135, 10, 2038}, - dictWord{7, 11, 1763}, - dictWord{140, 11, 310}, - dictWord{6, 0, 129}, - dictWord{4, 10, 17}, - dictWord{5, 10, 23}, - dictWord{7, 10, 995}, - dictWord{11, 10, 383}, - dictWord{11, 10, 437}, - dictWord{12, 10, 460}, - dictWord{140, 10, 532}, - dictWord{5, 11, 329}, - dictWord{136, 11, 260}, - dictWord{133, 10, 862}, - dictWord{132, 0, 534}, - dictWord{6, 0, 811}, - dictWord{135, 0, 626}, - dictWord{ - 132, - 11, - 657, - }, - dictWord{4, 0, 25}, - dictWord{5, 0, 60}, - dictWord{6, 0, 504}, - dictWord{7, 0, 614}, - dictWord{7, 0, 1155}, - dictWord{12, 0, 0}, - dictWord{152, 11, 7}, - dictWord{ - 7, - 0, - 1248, - }, - dictWord{11, 0, 621}, - dictWord{139, 0, 702}, - dictWord{137, 0, 321}, - dictWord{8, 10, 70}, - dictWord{12, 10, 171}, - dictWord{141, 10, 272}, - dictWord{ - 10, - 10, - 233, - }, - dictWord{139, 10, 76}, - dictWord{4, 0, 379}, - dictWord{7, 0, 1397}, - dictWord{134, 10, 442}, - dictWord{5, 11, 66}, - dictWord{7, 11, 1896}, - dictWord{ - 136, - 11, - 288, - }, - dictWord{134, 11, 1643}, - dictWord{134, 10, 1709}, - dictWord{4, 11, 21}, - dictWord{5, 11, 91}, - dictWord{5, 11, 570}, - dictWord{5, 11, 648}, - dictWord{5, 11, 750}, - dictWord{5, 11, 781}, - dictWord{6, 11, 54}, - dictWord{6, 11, 112}, - dictWord{6, 11, 402}, - dictWord{6, 11, 1732}, - dictWord{7, 11, 315}, - dictWord{ - 7, - 11, - 749, - }, - dictWord{7, 11, 1347}, - dictWord{7, 11, 1900}, - dictWord{9, 11, 78}, - dictWord{9, 11, 508}, - dictWord{10, 11, 611}, - dictWord{11, 11, 510}, - dictWord{ - 11, - 11, - 728, - }, - dictWord{13, 11, 36}, - dictWord{14, 11, 39}, - dictWord{16, 11, 83}, - dictWord{17, 11, 124}, - dictWord{148, 11, 30}, - dictWord{4, 0, 118}, - dictWord{ - 6, - 0, - 274, - }, - dictWord{6, 0, 361}, - dictWord{7, 0, 75}, - dictWord{141, 0, 441}, - dictWord{10, 11, 322}, - dictWord{10, 11, 719}, - dictWord{139, 11, 407}, - dictWord{ - 147, - 10, - 119, - }, - dictWord{12, 11, 549}, - dictWord{14, 11, 67}, - dictWord{147, 11, 60}, - dictWord{11, 10, 69}, - dictWord{12, 10, 105}, - dictWord{12, 10, 117}, - dictWord{13, 10, 213}, - dictWord{14, 10, 13}, - dictWord{14, 10, 62}, - dictWord{14, 10, 177}, - dictWord{14, 10, 421}, - dictWord{15, 10, 19}, - dictWord{146, 10, 141}, - dictWord{9, 0, 841}, - dictWord{137, 10, 309}, - dictWord{7, 10, 608}, - dictWord{7, 10, 976}, - dictWord{8, 11, 125}, - dictWord{8, 11, 369}, - dictWord{8, 11, 524}, - dictWord{9, 10, 146}, - dictWord{10, 10, 206}, - dictWord{10, 11, 486}, - dictWord{10, 10, 596}, - dictWord{11, 11, 13}, - dictWord{11, 11, 381}, - dictWord{11, 11, 736}, - dictWord{11, 11, 766}, - dictWord{11, 11, 845}, - dictWord{13, 11, 114}, - dictWord{13, 10, 218}, - dictWord{13, 11, 292}, - dictWord{14, 11, 47}, - dictWord{ - 142, - 10, - 153, - }, - dictWord{12, 0, 693}, - dictWord{135, 11, 759}, - dictWord{5, 0, 314}, - dictWord{6, 0, 221}, - dictWord{7, 0, 419}, - dictWord{10, 0, 650}, - dictWord{11, 0, 396}, - dictWord{12, 0, 156}, - dictWord{13, 0, 369}, - dictWord{14, 0, 333}, - dictWord{145, 0, 47}, - dictWord{6, 11, 1684}, - dictWord{6, 11, 1731}, - dictWord{7, 11, 356}, - dictWord{7, 11, 1932}, - dictWord{8, 11, 54}, - dictWord{8, 11, 221}, - dictWord{9, 11, 225}, - dictWord{9, 11, 356}, - dictWord{10, 11, 77}, - dictWord{10, 11, 446}, - dictWord{10, 11, 731}, - dictWord{12, 11, 404}, - dictWord{141, 11, 491}, - dictWord{132, 11, 375}, - dictWord{4, 10, 518}, - dictWord{135, 10, 1136}, - dictWord{ - 4, - 0, - 913, - }, - dictWord{4, 11, 411}, - dictWord{11, 11, 643}, - dictWord{140, 11, 115}, - dictWord{4, 11, 80}, - dictWord{133, 11, 44}, - dictWord{8, 10, 689}, - dictWord{ - 137, - 10, - 863, - }, - dictWord{138, 0, 880}, - dictWord{4, 10, 18}, - dictWord{7, 10, 145}, - dictWord{7, 10, 444}, - dictWord{7, 10, 1278}, - dictWord{8, 10, 49}, - dictWord{ - 8, - 10, - 400, - }, - dictWord{9, 10, 71}, - dictWord{9, 10, 250}, - dictWord{10, 10, 459}, - dictWord{12, 10, 160}, - dictWord{144, 10, 24}, - dictWord{136, 0, 475}, - dictWord{ - 5, - 0, - 1016, - }, - dictWord{5, 11, 299}, - dictWord{135, 11, 1083}, - dictWord{7, 0, 602}, - dictWord{8, 0, 179}, - dictWord{10, 0, 781}, - dictWord{140, 0, 126}, - dictWord{ - 6, - 0, - 329, - }, - dictWord{138, 0, 111}, - dictWord{135, 0, 1864}, - dictWord{4, 11, 219}, - dictWord{7, 11, 1761}, - dictWord{137, 11, 86}, - dictWord{6, 0, 1888}, - dictWord{ - 6, - 0, - 1892, - }, - dictWord{6, 0, 1901}, - dictWord{6, 0, 1904}, - dictWord{9, 0, 953}, - dictWord{9, 0, 985}, - dictWord{9, 0, 991}, - dictWord{9, 0, 1001}, - dictWord{12, 0, 818}, - dictWord{12, 0, 846}, - dictWord{12, 0, 847}, - dictWord{12, 0, 861}, - dictWord{12, 0, 862}, - dictWord{12, 0, 873}, - dictWord{12, 0, 875}, - dictWord{12, 0, 877}, - dictWord{12, 0, 879}, - dictWord{12, 0, 881}, - dictWord{12, 0, 884}, - dictWord{12, 0, 903}, - dictWord{12, 0, 915}, - dictWord{12, 0, 926}, - dictWord{12, 0, 939}, - dictWord{ - 15, - 0, - 182, - }, - dictWord{15, 0, 219}, - dictWord{15, 0, 255}, - dictWord{18, 0, 191}, - dictWord{18, 0, 209}, - dictWord{18, 0, 211}, - dictWord{149, 0, 41}, - dictWord{ - 5, - 11, - 328, - }, - dictWord{135, 11, 918}, - dictWord{137, 0, 780}, - dictWord{12, 0, 82}, - dictWord{143, 0, 36}, - dictWord{133, 10, 1010}, - dictWord{5, 0, 821}, - dictWord{ - 134, - 0, - 1687, - }, - dictWord{133, 11, 514}, - dictWord{132, 0, 956}, - dictWord{134, 0, 1180}, - dictWord{10, 0, 112}, - dictWord{5, 10, 87}, - dictWord{7, 10, 313}, - dictWord{ - 7, - 10, - 1103, - }, - dictWord{10, 10, 582}, - dictWord{11, 10, 389}, - dictWord{11, 10, 813}, - dictWord{12, 10, 385}, - dictWord{13, 10, 286}, - dictWord{14, 10, 124}, - dictWord{146, 10, 108}, - dictWord{5, 0, 71}, - dictWord{7, 0, 1407}, - dictWord{9, 0, 704}, - dictWord{10, 0, 261}, - dictWord{10, 0, 619}, - dictWord{11, 0, 547}, - dictWord{11, 0, 619}, - dictWord{143, 0, 157}, - dictWord{4, 0, 531}, - dictWord{5, 0, 455}, - dictWord{5, 11, 301}, - dictWord{6, 11, 571}, - dictWord{14, 11, 49}, - dictWord{ - 146, - 11, - 102, - }, - dictWord{132, 10, 267}, - dictWord{6, 0, 385}, - dictWord{7, 0, 2008}, - dictWord{9, 0, 337}, - dictWord{138, 0, 517}, - dictWord{133, 11, 726}, - dictWord{133, 11, 364}, - dictWord{4, 11, 76}, - dictWord{7, 11, 1550}, - dictWord{9, 11, 306}, - dictWord{9, 11, 430}, - dictWord{9, 11, 663}, - dictWord{10, 11, 683}, - dictWord{11, 11, 427}, - dictWord{11, 11, 753}, - dictWord{12, 11, 334}, - dictWord{12, 11, 442}, - dictWord{14, 11, 258}, - dictWord{14, 11, 366}, - dictWord{ - 143, - 11, - 131, - }, - dictWord{6, 0, 1865}, - dictWord{6, 0, 1879}, - dictWord{6, 0, 1881}, - dictWord{6, 0, 1894}, - dictWord{6, 0, 1908}, - dictWord{9, 0, 915}, - dictWord{9, 0, 926}, - dictWord{9, 0, 940}, - dictWord{9, 0, 943}, - dictWord{9, 0, 966}, - dictWord{9, 0, 980}, - dictWord{9, 0, 989}, - dictWord{9, 0, 1005}, - dictWord{9, 0, 1010}, - dictWord{ - 12, - 0, - 813, - }, - dictWord{12, 0, 817}, - dictWord{12, 0, 840}, - dictWord{12, 0, 843}, - dictWord{12, 0, 855}, - dictWord{12, 0, 864}, - dictWord{12, 0, 871}, - dictWord{12, 0, 872}, - dictWord{12, 0, 899}, - dictWord{12, 0, 905}, - dictWord{12, 0, 924}, - dictWord{15, 0, 171}, - dictWord{15, 0, 181}, - dictWord{15, 0, 224}, - dictWord{15, 0, 235}, - dictWord{15, 0, 251}, - dictWord{146, 0, 184}, - dictWord{137, 11, 52}, - dictWord{5, 0, 16}, - dictWord{6, 0, 86}, - dictWord{6, 0, 603}, - dictWord{7, 0, 292}, - dictWord{7, 0, 561}, - dictWord{8, 0, 257}, - dictWord{8, 0, 382}, - dictWord{9, 0, 721}, - dictWord{9, 0, 778}, - dictWord{11, 0, 581}, - dictWord{140, 0, 466}, - dictWord{4, 0, 486}, - dictWord{ - 5, - 0, - 491, - }, - dictWord{135, 10, 1121}, - dictWord{4, 0, 72}, - dictWord{6, 0, 265}, - dictWord{135, 0, 1300}, - dictWord{135, 11, 1183}, - dictWord{10, 10, 249}, - dictWord{139, 10, 209}, - dictWord{132, 10, 561}, - dictWord{137, 11, 519}, - dictWord{4, 11, 656}, - dictWord{4, 10, 760}, - dictWord{135, 11, 779}, - dictWord{ - 9, - 10, - 154, - }, - dictWord{140, 10, 485}, - dictWord{135, 11, 1793}, - dictWord{135, 11, 144}, - dictWord{136, 10, 255}, - dictWord{133, 0, 621}, - dictWord{4, 10, 368}, - dictWord{135, 10, 641}, - dictWord{135, 11, 1373}, - dictWord{7, 11, 554}, - dictWord{7, 11, 605}, - dictWord{141, 11, 10}, - dictWord{137, 0, 234}, - dictWord{ - 5, - 0, - 815, - }, - dictWord{6, 0, 1688}, - dictWord{134, 0, 1755}, - dictWord{5, 11, 838}, - dictWord{5, 11, 841}, - dictWord{134, 11, 1649}, - dictWord{7, 0, 1987}, - dictWord{ - 7, - 0, - 2040, - }, - dictWord{136, 0, 743}, - dictWord{133, 11, 1012}, - dictWord{6, 0, 197}, - dictWord{136, 0, 205}, - dictWord{6, 0, 314}, - dictWord{134, 11, 314}, - dictWord{144, 11, 53}, - dictWord{6, 11, 251}, - dictWord{7, 11, 365}, - dictWord{7, 11, 1357}, - dictWord{7, 11, 1497}, - dictWord{8, 11, 154}, - dictWord{141, 11, 281}, - dictWord{133, 11, 340}, - dictWord{6, 0, 452}, - dictWord{7, 0, 312}, - dictWord{138, 0, 219}, - dictWord{138, 0, 589}, - dictWord{4, 0, 333}, - dictWord{9, 0, 176}, - dictWord{12, 0, 353}, - dictWord{141, 0, 187}, - dictWord{9, 10, 92}, - dictWord{147, 10, 91}, - dictWord{134, 0, 1110}, - dictWord{11, 0, 47}, - dictWord{139, 11, 495}, - dictWord{6, 10, 525}, - dictWord{8, 10, 806}, - dictWord{9, 10, 876}, - dictWord{140, 10, 284}, - dictWord{8, 11, 261}, - dictWord{9, 11, 144}, - dictWord{9, 11, 466}, - dictWord{10, 11, 370}, - dictWord{12, 11, 470}, - dictWord{13, 11, 144}, - dictWord{142, 11, 348}, - dictWord{137, 11, 897}, - dictWord{8, 0, 863}, - dictWord{8, 0, 864}, - dictWord{8, 0, 868}, - dictWord{8, 0, 884}, - dictWord{10, 0, 866}, - dictWord{10, 0, 868}, - dictWord{10, 0, 873}, - dictWord{10, 0, 911}, - dictWord{10, 0, 912}, - dictWord{ - 10, - 0, - 944, - }, - dictWord{12, 0, 727}, - dictWord{6, 11, 248}, - dictWord{9, 11, 546}, - dictWord{10, 11, 535}, - dictWord{11, 11, 681}, - dictWord{141, 11, 135}, - dictWord{ - 6, - 0, - 300, - }, - dictWord{135, 0, 1515}, - dictWord{134, 0, 1237}, - dictWord{139, 10, 958}, - dictWord{133, 10, 594}, - dictWord{140, 11, 250}, - dictWord{ - 134, - 0, - 1685, - }, - dictWord{134, 11, 567}, - dictWord{7, 0, 135}, - dictWord{8, 0, 7}, - dictWord{8, 0, 62}, - dictWord{9, 0, 243}, - dictWord{10, 0, 658}, - dictWord{10, 0, 697}, - dictWord{11, 0, 456}, - dictWord{139, 0, 756}, - dictWord{9, 0, 395}, - dictWord{138, 0, 79}, - dictWord{6, 10, 1641}, - dictWord{136, 10, 820}, - dictWord{4, 10, 302}, - dictWord{135, 10, 1766}, - dictWord{134, 11, 174}, - dictWord{135, 10, 1313}, - dictWord{135, 0, 631}, - dictWord{134, 10, 1674}, - dictWord{134, 11, 395}, - dictWord{138, 0, 835}, - dictWord{7, 0, 406}, - dictWord{7, 0, 459}, - dictWord{8, 0, 606}, - dictWord{139, 0, 726}, - dictWord{134, 11, 617}, - dictWord{134, 0, 979}, - dictWord{ - 6, - 10, - 389, - }, - dictWord{7, 10, 149}, - dictWord{9, 10, 142}, - dictWord{138, 10, 94}, - dictWord{5, 11, 878}, - dictWord{133, 11, 972}, - dictWord{6, 10, 8}, - dictWord{ - 7, - 10, - 1881, - }, - dictWord{8, 10, 91}, - dictWord{136, 11, 511}, - dictWord{133, 0, 612}, - dictWord{132, 11, 351}, - dictWord{4, 0, 372}, - dictWord{7, 0, 482}, - dictWord{ - 8, - 0, - 158, - }, - dictWord{9, 0, 602}, - dictWord{9, 0, 615}, - dictWord{10, 0, 245}, - dictWord{10, 0, 678}, - dictWord{10, 0, 744}, - dictWord{11, 0, 248}, - dictWord{ - 139, - 0, - 806, - }, - dictWord{5, 0, 854}, - dictWord{135, 0, 1991}, - dictWord{132, 11, 286}, - dictWord{135, 11, 344}, - dictWord{7, 11, 438}, - dictWord{7, 11, 627}, - dictWord{ - 7, - 11, - 1516, - }, - dictWord{8, 11, 40}, - dictWord{9, 11, 56}, - dictWord{9, 11, 294}, - dictWord{10, 11, 30}, - dictWord{10, 11, 259}, - dictWord{11, 11, 969}, - dictWord{ - 146, - 11, - 148, - }, - dictWord{135, 0, 1492}, - dictWord{5, 11, 259}, - dictWord{7, 11, 414}, - dictWord{7, 11, 854}, - dictWord{142, 11, 107}, - dictWord{135, 10, 1746}, - dictWord{6, 0, 833}, - dictWord{134, 0, 998}, - dictWord{135, 10, 24}, - dictWord{6, 0, 750}, - dictWord{135, 0, 1739}, - dictWord{4, 10, 503}, - dictWord{ - 135, - 10, - 1661, - }, - dictWord{5, 10, 130}, - dictWord{7, 10, 1314}, - dictWord{9, 10, 610}, - dictWord{10, 10, 718}, - dictWord{11, 10, 601}, - dictWord{11, 10, 819}, - dictWord{ - 11, - 10, - 946, - }, - dictWord{140, 10, 536}, - dictWord{10, 10, 149}, - dictWord{11, 10, 280}, - dictWord{142, 10, 336}, - dictWord{132, 11, 738}, - dictWord{ - 135, - 10, - 1946, - }, - dictWord{5, 0, 195}, - dictWord{135, 0, 1685}, - dictWord{7, 0, 1997}, - dictWord{8, 0, 730}, - dictWord{139, 0, 1006}, - dictWord{151, 11, 17}, - dictWord{ - 133, - 11, - 866, - }, - dictWord{14, 0, 463}, - dictWord{14, 0, 470}, - dictWord{150, 0, 61}, - dictWord{5, 0, 751}, - dictWord{8, 0, 266}, - dictWord{11, 0, 578}, - dictWord{ - 4, - 10, - 392, - }, - dictWord{135, 10, 1597}, - dictWord{5, 10, 433}, - dictWord{9, 10, 633}, - dictWord{139, 10, 629}, - dictWord{135, 0, 821}, - dictWord{6, 0, 715}, - dictWord{ - 134, - 0, - 1325, - }, - dictWord{133, 11, 116}, - dictWord{6, 0, 868}, - dictWord{132, 11, 457}, - dictWord{134, 0, 959}, - dictWord{6, 10, 234}, - dictWord{138, 11, 199}, - dictWord{7, 0, 1053}, - dictWord{7, 10, 1950}, - dictWord{8, 10, 680}, - dictWord{11, 10, 817}, - dictWord{147, 10, 88}, - dictWord{7, 10, 1222}, - dictWord{ - 138, - 10, - 386, - }, - dictWord{5, 0, 950}, - dictWord{5, 0, 994}, - dictWord{6, 0, 351}, - dictWord{134, 0, 1124}, - dictWord{134, 0, 1081}, - dictWord{7, 0, 1595}, - dictWord{6, 10, 5}, - dictWord{11, 10, 249}, - dictWord{12, 10, 313}, - dictWord{16, 10, 66}, - dictWord{145, 10, 26}, - dictWord{148, 0, 59}, - dictWord{5, 11, 527}, - dictWord{6, 11, 189}, - dictWord{135, 11, 859}, - dictWord{5, 10, 963}, - dictWord{6, 10, 1773}, - dictWord{11, 11, 104}, - dictWord{11, 11, 554}, - dictWord{15, 11, 60}, - dictWord{ - 143, - 11, - 125, - }, - dictWord{135, 0, 47}, - dictWord{137, 0, 684}, - dictWord{134, 11, 116}, - dictWord{134, 0, 1606}, - dictWord{134, 0, 777}, - dictWord{7, 0, 1020}, - dictWord{ - 8, - 10, - 509, - }, - dictWord{136, 10, 792}, - dictWord{135, 0, 1094}, - dictWord{132, 0, 350}, - dictWord{133, 11, 487}, - dictWord{4, 11, 86}, - dictWord{5, 11, 667}, - dictWord{5, 11, 753}, - dictWord{6, 11, 316}, - dictWord{6, 11, 455}, - dictWord{135, 11, 946}, - dictWord{7, 0, 1812}, - dictWord{13, 0, 259}, - dictWord{13, 0, 356}, - dictWord{14, 0, 242}, - dictWord{147, 0, 114}, - dictWord{132, 10, 931}, - dictWord{133, 0, 967}, - dictWord{4, 0, 473}, - dictWord{7, 0, 623}, - dictWord{8, 0, 808}, - dictWord{ - 9, - 0, - 871, - }, - dictWord{9, 0, 893}, - dictWord{11, 0, 38}, - dictWord{11, 0, 431}, - dictWord{12, 0, 112}, - dictWord{12, 0, 217}, - dictWord{12, 0, 243}, - dictWord{12, 0, 562}, - dictWord{12, 0, 663}, - dictWord{12, 0, 683}, - dictWord{13, 0, 141}, - dictWord{13, 0, 197}, - dictWord{13, 0, 227}, - dictWord{13, 0, 406}, - dictWord{13, 0, 487}, - dictWord{14, 0, 156}, - dictWord{14, 0, 203}, - dictWord{14, 0, 224}, - dictWord{14, 0, 256}, - dictWord{18, 0, 58}, - dictWord{150, 0, 0}, - dictWord{138, 0, 286}, - dictWord{ - 7, - 10, - 943, - }, - dictWord{139, 10, 614}, - dictWord{135, 10, 1837}, - dictWord{150, 11, 45}, - dictWord{132, 0, 798}, - dictWord{4, 0, 222}, - dictWord{7, 0, 286}, - dictWord{136, 0, 629}, - dictWord{4, 11, 79}, - dictWord{7, 11, 1773}, - dictWord{10, 11, 450}, - dictWord{11, 11, 589}, - dictWord{13, 11, 332}, - dictWord{13, 11, 493}, - dictWord{14, 11, 183}, - dictWord{14, 11, 334}, - dictWord{14, 11, 362}, - dictWord{14, 11, 368}, - dictWord{14, 11, 376}, - dictWord{14, 11, 379}, - dictWord{ - 19, - 11, - 90, - }, - dictWord{19, 11, 103}, - dictWord{19, 11, 127}, - dictWord{148, 11, 90}, - dictWord{5, 0, 337}, - dictWord{11, 0, 513}, - dictWord{11, 0, 889}, - dictWord{ - 11, - 0, - 961, - }, - dictWord{12, 0, 461}, - dictWord{13, 0, 79}, - dictWord{15, 0, 121}, - dictWord{4, 10, 90}, - dictWord{5, 10, 545}, - dictWord{7, 10, 754}, - dictWord{9, 10, 186}, - dictWord{10, 10, 72}, - dictWord{10, 10, 782}, - dictWord{11, 10, 577}, - dictWord{11, 10, 610}, - dictWord{12, 10, 354}, - dictWord{12, 10, 362}, - dictWord{ - 140, - 10, - 595, - }, - dictWord{141, 0, 306}, - dictWord{136, 0, 146}, - dictWord{7, 0, 1646}, - dictWord{9, 10, 329}, - dictWord{11, 10, 254}, - dictWord{141, 11, 124}, - dictWord{ - 4, - 0, - 465, - }, - dictWord{135, 0, 1663}, - dictWord{132, 0, 525}, - dictWord{133, 11, 663}, - dictWord{10, 0, 299}, - dictWord{18, 0, 74}, - dictWord{9, 10, 187}, - dictWord{ - 11, - 10, - 1016, - }, - dictWord{145, 10, 44}, - dictWord{7, 0, 165}, - dictWord{7, 0, 919}, - dictWord{4, 10, 506}, - dictWord{136, 10, 517}, - dictWord{5, 10, 295}, - dictWord{ - 135, - 10, - 1680, - }, - dictWord{133, 11, 846}, - dictWord{134, 0, 1064}, - dictWord{5, 11, 378}, - dictWord{7, 11, 1402}, - dictWord{7, 11, 1414}, - dictWord{8, 11, 465}, - dictWord{9, 11, 286}, - dictWord{10, 11, 185}, - dictWord{10, 11, 562}, - dictWord{10, 11, 635}, - dictWord{11, 11, 31}, - dictWord{11, 11, 393}, - dictWord{ - 12, - 11, - 456, - }, - dictWord{13, 11, 312}, - dictWord{18, 11, 65}, - dictWord{18, 11, 96}, - dictWord{147, 11, 89}, - dictWord{132, 0, 596}, - dictWord{7, 10, 987}, - dictWord{ - 9, - 10, - 688, - }, - dictWord{10, 10, 522}, - dictWord{11, 10, 788}, - dictWord{140, 10, 566}, - dictWord{6, 0, 82}, - dictWord{7, 0, 138}, - dictWord{7, 0, 517}, - dictWord{7, 0, 1741}, - dictWord{11, 0, 238}, - dictWord{4, 11, 648}, - dictWord{134, 10, 1775}, - dictWord{7, 0, 1233}, - dictWord{7, 10, 700}, - dictWord{7, 10, 940}, - dictWord{8, 10, 514}, - dictWord{9, 10, 116}, - dictWord{9, 10, 535}, - dictWord{10, 10, 118}, - dictWord{11, 10, 107}, - dictWord{11, 10, 148}, - dictWord{11, 10, 922}, - dictWord{ - 12, - 10, - 254, - }, - dictWord{12, 10, 421}, - dictWord{142, 10, 238}, - dictWord{4, 0, 962}, - dictWord{6, 0, 1824}, - dictWord{8, 0, 894}, - dictWord{12, 0, 708}, - dictWord{ - 12, - 0, - 725, - }, - dictWord{14, 0, 451}, - dictWord{20, 0, 94}, - dictWord{22, 0, 59}, - dictWord{150, 0, 62}, - dictWord{5, 11, 945}, - dictWord{6, 11, 1656}, - dictWord{6, 11, 1787}, - dictWord{7, 11, 167}, - dictWord{8, 11, 824}, - dictWord{9, 11, 391}, - dictWord{10, 11, 375}, - dictWord{139, 11, 185}, - dictWord{5, 0, 495}, - dictWord{7, 0, 834}, - dictWord{9, 0, 733}, - dictWord{139, 0, 378}, - dictWord{4, 10, 743}, - dictWord{135, 11, 1273}, - dictWord{6, 0, 1204}, - dictWord{7, 11, 1645}, - dictWord{8, 11, 352}, - dictWord{137, 11, 249}, - dictWord{139, 10, 292}, - dictWord{133, 0, 559}, - dictWord{132, 11, 152}, - dictWord{9, 0, 499}, - dictWord{10, 0, 341}, - dictWord{ - 15, - 0, - 144, - }, - dictWord{19, 0, 49}, - dictWord{7, 10, 1283}, - dictWord{9, 10, 227}, - dictWord{11, 10, 325}, - dictWord{11, 10, 408}, - dictWord{14, 10, 180}, - dictWord{ - 146, - 10, - 47, - }, - dictWord{6, 0, 21}, - dictWord{6, 0, 1737}, - dictWord{7, 0, 1444}, - dictWord{136, 0, 224}, - dictWord{133, 11, 1006}, - dictWord{7, 0, 1446}, - dictWord{ - 9, - 0, - 97, - }, - dictWord{17, 0, 15}, - dictWord{5, 10, 81}, - dictWord{7, 10, 146}, - dictWord{7, 10, 1342}, - dictWord{8, 10, 53}, - dictWord{8, 10, 561}, - dictWord{8, 10, 694}, - dictWord{8, 10, 754}, - dictWord{9, 10, 115}, - dictWord{9, 10, 894}, - dictWord{10, 10, 462}, - dictWord{10, 10, 813}, - dictWord{11, 10, 230}, - dictWord{11, 10, 657}, - dictWord{11, 10, 699}, - dictWord{11, 10, 748}, - dictWord{12, 10, 119}, - dictWord{12, 10, 200}, - dictWord{12, 10, 283}, - dictWord{142, 10, 273}, - dictWord{ - 5, - 10, - 408, - }, - dictWord{137, 10, 747}, - dictWord{135, 11, 431}, - dictWord{135, 11, 832}, - dictWord{6, 0, 729}, - dictWord{134, 0, 953}, - dictWord{4, 0, 727}, - dictWord{ - 8, - 0, - 565, - }, - dictWord{5, 11, 351}, - dictWord{7, 11, 264}, - dictWord{136, 11, 565}, - dictWord{134, 0, 1948}, - dictWord{5, 0, 519}, - dictWord{5, 11, 40}, - dictWord{ - 7, - 11, - 598, - }, - dictWord{7, 11, 1638}, - dictWord{8, 11, 78}, - dictWord{9, 11, 166}, - dictWord{9, 11, 640}, - dictWord{9, 11, 685}, - dictWord{9, 11, 773}, - dictWord{ - 11, - 11, - 215, - }, - dictWord{13, 11, 65}, - dictWord{14, 11, 172}, - dictWord{14, 11, 317}, - dictWord{145, 11, 6}, - dictWord{8, 11, 60}, - dictWord{9, 11, 343}, - dictWord{ - 139, - 11, - 769, - }, - dictWord{137, 11, 455}, - dictWord{134, 0, 1193}, - dictWord{140, 0, 790}, - dictWord{7, 11, 1951}, - dictWord{8, 11, 765}, - dictWord{8, 11, 772}, - dictWord{140, 11, 671}, - dictWord{7, 11, 108}, - dictWord{8, 11, 219}, - dictWord{8, 11, 388}, - dictWord{9, 11, 639}, - dictWord{9, 11, 775}, - dictWord{11, 11, 275}, - dictWord{140, 11, 464}, - dictWord{132, 11, 468}, - dictWord{7, 10, 30}, - dictWord{8, 10, 86}, - dictWord{8, 10, 315}, - dictWord{8, 10, 700}, - dictWord{9, 10, 576}, - dictWord{ - 9, - 10, - 858, - }, - dictWord{11, 10, 310}, - dictWord{11, 10, 888}, - dictWord{11, 10, 904}, - dictWord{12, 10, 361}, - dictWord{141, 10, 248}, - dictWord{5, 11, 15}, - dictWord{6, 11, 56}, - dictWord{7, 11, 1758}, - dictWord{8, 11, 500}, - dictWord{9, 11, 730}, - dictWord{11, 11, 331}, - dictWord{13, 11, 150}, - dictWord{142, 11, 282}, - dictWord{4, 0, 402}, - dictWord{7, 0, 2}, - dictWord{8, 0, 323}, - dictWord{136, 0, 479}, - dictWord{138, 10, 839}, - dictWord{11, 0, 580}, - dictWord{142, 0, 201}, - dictWord{ - 5, - 0, - 59, - }, - dictWord{135, 0, 672}, - dictWord{137, 10, 617}, - dictWord{146, 0, 34}, - dictWord{134, 11, 1886}, - dictWord{4, 0, 961}, - dictWord{136, 0, 896}, - dictWord{ - 6, - 0, - 1285, - }, - dictWord{5, 11, 205}, - dictWord{6, 11, 438}, - dictWord{137, 11, 711}, - dictWord{134, 10, 428}, - dictWord{7, 10, 524}, - dictWord{8, 10, 169}, - dictWord{8, 10, 234}, - dictWord{9, 10, 480}, - dictWord{138, 10, 646}, - dictWord{148, 0, 46}, - dictWord{141, 0, 479}, - dictWord{133, 11, 534}, - dictWord{6, 0, 2019}, - dictWord{134, 10, 1648}, - dictWord{4, 0, 85}, - dictWord{7, 0, 549}, - dictWord{7, 10, 1205}, - dictWord{138, 10, 637}, - dictWord{4, 0, 663}, - dictWord{5, 0, 94}, - dictWord{ - 7, - 11, - 235, - }, - dictWord{7, 11, 1475}, - dictWord{15, 11, 68}, - dictWord{146, 11, 120}, - dictWord{6, 11, 443}, - dictWord{9, 11, 237}, - dictWord{9, 11, 571}, - dictWord{ - 9, - 11, - 695, - }, - dictWord{10, 11, 139}, - dictWord{11, 11, 715}, - dictWord{12, 11, 417}, - dictWord{141, 11, 421}, - dictWord{132, 0, 783}, - dictWord{4, 0, 682}, - dictWord{8, 0, 65}, - dictWord{9, 10, 39}, - dictWord{10, 10, 166}, - dictWord{11, 10, 918}, - dictWord{12, 10, 635}, - dictWord{20, 10, 10}, - dictWord{22, 10, 27}, - dictWord{ - 22, - 10, - 43, - }, - dictWord{150, 10, 52}, - dictWord{6, 0, 11}, - dictWord{135, 0, 187}, - dictWord{132, 0, 522}, - dictWord{4, 0, 52}, - dictWord{135, 0, 661}, - dictWord{ - 4, - 0, - 383, - }, - dictWord{133, 0, 520}, - dictWord{135, 11, 546}, - dictWord{11, 0, 343}, - dictWord{142, 0, 127}, - dictWord{4, 11, 578}, - dictWord{7, 10, 157}, - dictWord{ - 7, - 11, - 624, - }, - dictWord{7, 11, 916}, - dictWord{8, 10, 279}, - dictWord{10, 11, 256}, - dictWord{11, 11, 87}, - dictWord{139, 11, 703}, - dictWord{134, 10, 604}, - dictWord{ - 4, - 0, - 281, - }, - dictWord{5, 0, 38}, - dictWord{7, 0, 194}, - dictWord{7, 0, 668}, - dictWord{7, 0, 1893}, - dictWord{137, 0, 397}, - dictWord{7, 10, 945}, - dictWord{11, 10, 713}, - dictWord{139, 10, 744}, - dictWord{139, 10, 1022}, - dictWord{9, 0, 635}, - dictWord{139, 0, 559}, - dictWord{5, 11, 923}, - dictWord{7, 11, 490}, - dictWord{ - 12, - 11, - 553, - }, - dictWord{13, 11, 100}, - dictWord{14, 11, 118}, - dictWord{143, 11, 75}, - dictWord{132, 0, 975}, - dictWord{132, 10, 567}, - dictWord{137, 10, 859}, - dictWord{7, 10, 1846}, - dictWord{7, 11, 1846}, - dictWord{8, 10, 628}, - dictWord{136, 11, 628}, - dictWord{148, 0, 116}, - dictWord{138, 11, 750}, - dictWord{14, 0, 51}, - dictWord{14, 11, 51}, - dictWord{15, 11, 7}, - dictWord{148, 11, 20}, - dictWord{132, 0, 858}, - dictWord{134, 0, 1075}, - dictWord{4, 11, 924}, - dictWord{ - 133, - 10, - 762, - }, - dictWord{136, 0, 535}, - dictWord{133, 0, 448}, - dictWord{10, 10, 784}, - dictWord{141, 10, 191}, - dictWord{133, 10, 298}, - dictWord{7, 0, 610}, - dictWord{135, 0, 1501}, - dictWord{7, 10, 633}, - dictWord{7, 10, 905}, - dictWord{7, 10, 909}, - dictWord{7, 10, 1538}, - dictWord{9, 10, 767}, - dictWord{140, 10, 636}, - dictWord{4, 11, 265}, - dictWord{7, 11, 807}, - dictWord{135, 11, 950}, - dictWord{5, 11, 93}, - dictWord{12, 11, 267}, - dictWord{144, 11, 26}, - dictWord{136, 0, 191}, - dictWord{139, 10, 301}, - dictWord{135, 10, 1970}, - dictWord{135, 0, 267}, - dictWord{4, 0, 319}, - dictWord{5, 0, 699}, - dictWord{138, 0, 673}, - dictWord{ - 6, - 0, - 336, - }, - dictWord{7, 0, 92}, - dictWord{7, 0, 182}, - dictWord{8, 0, 453}, - dictWord{8, 0, 552}, - dictWord{9, 0, 204}, - dictWord{9, 0, 285}, - dictWord{10, 0, 99}, - dictWord{ - 11, - 0, - 568, - }, - dictWord{11, 0, 950}, - dictWord{12, 0, 94}, - dictWord{16, 0, 20}, - dictWord{16, 0, 70}, - dictWord{19, 0, 55}, - dictWord{12, 10, 644}, - dictWord{144, 10, 90}, - dictWord{6, 0, 551}, - dictWord{7, 0, 1308}, - dictWord{7, 10, 845}, - dictWord{7, 11, 994}, - dictWord{8, 10, 160}, - dictWord{137, 10, 318}, - dictWord{19, 11, 1}, - dictWord{ - 19, - 11, - 26, - }, - dictWord{150, 11, 9}, - dictWord{7, 0, 1406}, - dictWord{9, 0, 218}, - dictWord{141, 0, 222}, - dictWord{5, 0, 256}, - dictWord{138, 0, 69}, - dictWord{ - 5, - 11, - 233, - }, - dictWord{5, 11, 320}, - dictWord{6, 11, 140}, - dictWord{7, 11, 330}, - dictWord{136, 11, 295}, - dictWord{6, 0, 1980}, - dictWord{136, 0, 952}, - dictWord{ - 4, - 0, - 833, - }, - dictWord{137, 11, 678}, - dictWord{133, 11, 978}, - dictWord{4, 11, 905}, - dictWord{6, 11, 1701}, - dictWord{137, 11, 843}, - dictWord{138, 10, 735}, - dictWord{136, 10, 76}, - dictWord{17, 0, 39}, - dictWord{148, 0, 36}, - dictWord{18, 0, 81}, - dictWord{146, 11, 81}, - dictWord{14, 0, 352}, - dictWord{17, 0, 53}, - dictWord{ - 18, - 0, - 146, - }, - dictWord{18, 0, 152}, - dictWord{19, 0, 11}, - dictWord{150, 0, 54}, - dictWord{135, 0, 634}, - dictWord{138, 10, 841}, - dictWord{132, 0, 618}, - dictWord{ - 4, - 0, - 339, - }, - dictWord{7, 0, 259}, - dictWord{17, 0, 73}, - dictWord{4, 11, 275}, - dictWord{140, 11, 376}, - dictWord{132, 11, 509}, - dictWord{7, 11, 273}, - dictWord{ - 139, - 11, - 377, - }, - dictWord{4, 0, 759}, - dictWord{13, 0, 169}, - dictWord{137, 10, 804}, - dictWord{6, 10, 96}, - dictWord{135, 10, 1426}, - dictWord{4, 10, 651}, - dictWord{133, 10, 289}, - dictWord{7, 0, 1075}, - dictWord{8, 10, 35}, - dictWord{9, 10, 511}, - dictWord{10, 10, 767}, - dictWord{147, 10, 118}, - dictWord{6, 0, 649}, - dictWord{6, 0, 670}, - dictWord{136, 0, 482}, - dictWord{5, 0, 336}, - dictWord{6, 0, 341}, - dictWord{6, 0, 478}, - dictWord{6, 0, 1763}, - dictWord{136, 0, 386}, - dictWord{ - 5, - 11, - 802, - }, - dictWord{7, 11, 2021}, - dictWord{8, 11, 805}, - dictWord{14, 11, 94}, - dictWord{15, 11, 65}, - dictWord{16, 11, 4}, - dictWord{16, 11, 77}, - dictWord{16, 11, 80}, - dictWord{145, 11, 5}, - dictWord{6, 0, 1035}, - dictWord{5, 11, 167}, - dictWord{5, 11, 899}, - dictWord{6, 11, 410}, - dictWord{137, 11, 777}, - dictWord{ - 134, - 11, - 1705, - }, - dictWord{5, 0, 924}, - dictWord{133, 0, 969}, - dictWord{132, 10, 704}, - dictWord{135, 0, 73}, - dictWord{135, 11, 10}, - dictWord{135, 10, 1078}, - dictWord{ - 5, - 11, - 11, - }, - dictWord{6, 11, 117}, - dictWord{6, 11, 485}, - dictWord{7, 11, 1133}, - dictWord{9, 11, 582}, - dictWord{9, 11, 594}, - dictWord{11, 11, 21}, - dictWord{ - 11, - 11, - 818, - }, - dictWord{12, 11, 535}, - dictWord{141, 11, 86}, - dictWord{135, 0, 1971}, - dictWord{4, 11, 264}, - dictWord{7, 11, 1067}, - dictWord{8, 11, 204}, - dictWord{8, 11, 385}, - dictWord{139, 11, 953}, - dictWord{6, 0, 1458}, - dictWord{135, 0, 1344}, - dictWord{5, 0, 396}, - dictWord{134, 0, 501}, - dictWord{4, 10, 720}, - dictWord{133, 10, 306}, - dictWord{4, 0, 929}, - dictWord{5, 0, 799}, - dictWord{8, 0, 46}, - dictWord{8, 0, 740}, - dictWord{133, 10, 431}, - dictWord{7, 11, 646}, - dictWord{ - 7, - 11, - 1730, - }, - dictWord{11, 11, 446}, - dictWord{141, 11, 178}, - dictWord{7, 0, 276}, - dictWord{5, 10, 464}, - dictWord{6, 10, 236}, - dictWord{7, 10, 696}, - dictWord{ - 7, - 10, - 914, - }, - dictWord{7, 10, 1108}, - dictWord{7, 10, 1448}, - dictWord{9, 10, 15}, - dictWord{9, 10, 564}, - dictWord{10, 10, 14}, - dictWord{12, 10, 565}, - dictWord{ - 13, - 10, - 449, - }, - dictWord{14, 10, 53}, - dictWord{15, 10, 13}, - dictWord{16, 10, 64}, - dictWord{145, 10, 41}, - dictWord{4, 0, 892}, - dictWord{133, 0, 770}, - dictWord{ - 6, - 10, - 1767, - }, - dictWord{12, 10, 194}, - dictWord{145, 10, 107}, - dictWord{135, 0, 158}, - dictWord{5, 10, 840}, - dictWord{138, 11, 608}, - dictWord{134, 0, 1432}, - dictWord{138, 11, 250}, - dictWord{8, 11, 794}, - dictWord{9, 11, 400}, - dictWord{10, 11, 298}, - dictWord{142, 11, 228}, - dictWord{151, 0, 25}, - dictWord{ - 7, - 11, - 1131, - }, - dictWord{135, 11, 1468}, - dictWord{135, 0, 2001}, - dictWord{9, 10, 642}, - dictWord{11, 10, 236}, - dictWord{142, 10, 193}, - dictWord{4, 10, 68}, - dictWord{5, 10, 634}, - dictWord{6, 10, 386}, - dictWord{7, 10, 794}, - dictWord{8, 10, 273}, - dictWord{9, 10, 563}, - dictWord{10, 10, 105}, - dictWord{10, 10, 171}, - dictWord{11, 10, 94}, - dictWord{139, 10, 354}, - dictWord{136, 11, 724}, - dictWord{132, 0, 478}, - dictWord{11, 11, 512}, - dictWord{13, 11, 205}, - dictWord{ - 19, - 11, - 30, - }, - dictWord{22, 11, 36}, - dictWord{151, 11, 19}, - dictWord{7, 0, 1461}, - dictWord{140, 0, 91}, - dictWord{6, 11, 190}, - dictWord{7, 11, 768}, - dictWord{ - 135, - 11, - 1170, - }, - dictWord{4, 0, 602}, - dictWord{8, 0, 211}, - dictWord{4, 10, 95}, - dictWord{7, 10, 416}, - dictWord{139, 10, 830}, - dictWord{7, 10, 731}, - dictWord{13, 10, 20}, - dictWord{143, 10, 11}, - dictWord{6, 0, 1068}, - dictWord{135, 0, 1872}, - dictWord{4, 0, 13}, - dictWord{5, 0, 567}, - dictWord{7, 0, 1498}, - dictWord{9, 0, 124}, - dictWord{11, 0, 521}, - dictWord{12, 0, 405}, - dictWord{135, 11, 1023}, - dictWord{135, 0, 1006}, - dictWord{132, 0, 735}, - dictWord{138, 0, 812}, - dictWord{4, 0, 170}, - dictWord{135, 0, 323}, - dictWord{6, 11, 137}, - dictWord{9, 11, 75}, - dictWord{9, 11, 253}, - dictWord{10, 11, 194}, - dictWord{138, 11, 444}, - dictWord{5, 0, 304}, - dictWord{7, 0, 1403}, - dictWord{5, 10, 864}, - dictWord{10, 10, 648}, - dictWord{11, 10, 671}, - dictWord{143, 10, 46}, - dictWord{135, 11, 1180}, - dictWord{ - 133, - 10, - 928, - }, - dictWord{4, 0, 148}, - dictWord{133, 0, 742}, - dictWord{11, 10, 986}, - dictWord{140, 10, 682}, - dictWord{133, 0, 523}, - dictWord{135, 11, 1743}, - dictWord{7, 0, 730}, - dictWord{18, 0, 144}, - dictWord{19, 0, 61}, - dictWord{8, 10, 44}, - dictWord{9, 10, 884}, - dictWord{10, 10, 580}, - dictWord{11, 10, 399}, - dictWord{ - 11, - 10, - 894, - }, - dictWord{143, 10, 122}, - dictWord{5, 11, 760}, - dictWord{7, 11, 542}, - dictWord{8, 11, 135}, - dictWord{136, 11, 496}, - dictWord{136, 0, 981}, - dictWord{133, 0, 111}, - dictWord{10, 0, 132}, - dictWord{11, 0, 191}, - dictWord{11, 0, 358}, - dictWord{139, 0, 460}, - dictWord{7, 11, 319}, - dictWord{7, 11, 355}, - dictWord{ - 7, - 11, - 763, - }, - dictWord{10, 11, 389}, - dictWord{145, 11, 43}, - dictWord{134, 0, 890}, - dictWord{134, 0, 1420}, - dictWord{136, 11, 557}, - dictWord{ - 133, - 10, - 518, - }, - dictWord{133, 0, 444}, - dictWord{135, 0, 1787}, - dictWord{135, 10, 1852}, - dictWord{8, 0, 123}, - dictWord{15, 0, 6}, - dictWord{144, 0, 7}, - dictWord{ - 6, - 0, - 2041, - }, - dictWord{10, 11, 38}, - dictWord{139, 11, 784}, - dictWord{136, 0, 932}, - dictWord{5, 0, 937}, - dictWord{135, 0, 100}, - dictWord{6, 0, 995}, - dictWord{ - 4, - 11, - 58, - }, - dictWord{5, 11, 286}, - dictWord{6, 11, 319}, - dictWord{7, 11, 402}, - dictWord{7, 11, 1254}, - dictWord{7, 11, 1903}, - dictWord{8, 11, 356}, - dictWord{ - 140, - 11, - 408, - }, - dictWord{4, 11, 389}, - dictWord{9, 11, 181}, - dictWord{9, 11, 255}, - dictWord{10, 11, 8}, - dictWord{10, 11, 29}, - dictWord{10, 11, 816}, - dictWord{ - 11, - 11, - 311, - }, - dictWord{11, 11, 561}, - dictWord{12, 11, 67}, - dictWord{141, 11, 181}, - dictWord{138, 0, 255}, - dictWord{5, 0, 138}, - dictWord{4, 10, 934}, - dictWord{ - 136, - 10, - 610, - }, - dictWord{4, 0, 965}, - dictWord{10, 0, 863}, - dictWord{138, 0, 898}, - dictWord{10, 10, 804}, - dictWord{138, 10, 832}, - dictWord{12, 0, 631}, - dictWord{ - 8, - 10, - 96, - }, - dictWord{9, 10, 36}, - dictWord{10, 10, 607}, - dictWord{11, 10, 423}, - dictWord{11, 10, 442}, - dictWord{12, 10, 309}, - dictWord{14, 10, 199}, - dictWord{ - 15, - 10, - 90, - }, - dictWord{145, 10, 110}, - dictWord{134, 0, 1394}, - dictWord{4, 0, 652}, - dictWord{8, 0, 320}, - dictWord{22, 0, 6}, - dictWord{22, 0, 16}, - dictWord{ - 9, - 10, - 13, - }, - dictWord{9, 10, 398}, - dictWord{9, 10, 727}, - dictWord{10, 10, 75}, - dictWord{10, 10, 184}, - dictWord{10, 10, 230}, - dictWord{10, 10, 564}, - dictWord{ - 10, - 10, - 569, - }, - dictWord{11, 10, 973}, - dictWord{12, 10, 70}, - dictWord{12, 10, 189}, - dictWord{13, 10, 57}, - dictWord{141, 10, 257}, - dictWord{6, 0, 897}, - dictWord{ - 134, - 0, - 1333, - }, - dictWord{4, 0, 692}, - dictWord{133, 0, 321}, - dictWord{133, 11, 373}, - dictWord{135, 0, 922}, - dictWord{5, 0, 619}, - dictWord{133, 0, 698}, - dictWord{ - 137, - 10, - 631, - }, - dictWord{5, 10, 345}, - dictWord{135, 10, 1016}, - dictWord{9, 0, 957}, - dictWord{9, 0, 1018}, - dictWord{12, 0, 828}, - dictWord{12, 0, 844}, - dictWord{ - 12, - 0, - 897, - }, - dictWord{12, 0, 901}, - dictWord{12, 0, 943}, - dictWord{15, 0, 180}, - dictWord{18, 0, 197}, - dictWord{18, 0, 200}, - dictWord{18, 0, 213}, - dictWord{ - 18, - 0, - 214, - }, - dictWord{146, 0, 226}, - dictWord{5, 0, 917}, - dictWord{134, 0, 1659}, - dictWord{135, 0, 1100}, - dictWord{134, 0, 1173}, - dictWord{134, 0, 1930}, - dictWord{5, 0, 251}, - dictWord{5, 0, 956}, - dictWord{8, 0, 268}, - dictWord{9, 0, 214}, - dictWord{146, 0, 142}, - dictWord{133, 10, 673}, - dictWord{137, 10, 850}, - dictWord{ - 4, - 10, - 287, - }, - dictWord{133, 10, 1018}, - dictWord{132, 11, 672}, - dictWord{5, 0, 346}, - dictWord{5, 0, 711}, - dictWord{8, 0, 390}, - dictWord{11, 11, 752}, - dictWord{139, 11, 885}, - dictWord{5, 10, 34}, - dictWord{10, 10, 724}, - dictWord{12, 10, 444}, - dictWord{13, 10, 354}, - dictWord{18, 10, 32}, - dictWord{23, 10, 24}, - dictWord{23, 10, 31}, - dictWord{152, 10, 5}, - dictWord{4, 11, 710}, - dictWord{134, 11, 606}, - dictWord{134, 0, 744}, - dictWord{134, 10, 382}, - dictWord{ - 133, - 11, - 145, - }, - dictWord{4, 10, 329}, - dictWord{7, 11, 884}, - dictWord{140, 11, 124}, - dictWord{4, 11, 467}, - dictWord{5, 11, 405}, - dictWord{134, 11, 544}, - dictWord{ - 9, - 10, - 846, - }, - dictWord{138, 10, 827}, - dictWord{133, 0, 624}, - dictWord{9, 11, 372}, - dictWord{15, 11, 2}, - dictWord{19, 11, 10}, - dictWord{147, 11, 18}, - dictWord{ - 4, - 11, - 387, - }, - dictWord{135, 11, 1288}, - dictWord{5, 0, 783}, - dictWord{7, 0, 1998}, - dictWord{135, 0, 2047}, - dictWord{132, 10, 906}, - dictWord{136, 10, 366}, - dictWord{135, 11, 550}, - dictWord{4, 10, 123}, - dictWord{4, 10, 649}, - dictWord{5, 10, 605}, - dictWord{7, 10, 1509}, - dictWord{136, 10, 36}, - dictWord{ - 134, - 0, - 1125, - }, - dictWord{132, 0, 594}, - dictWord{133, 10, 767}, - dictWord{135, 11, 1227}, - dictWord{136, 11, 467}, - dictWord{4, 11, 576}, - dictWord{ - 135, - 11, - 1263, - }, - dictWord{4, 0, 268}, - dictWord{7, 0, 1534}, - dictWord{135, 11, 1534}, - dictWord{4, 10, 273}, - dictWord{5, 10, 658}, - dictWord{5, 11, 919}, - dictWord{ - 5, - 10, - 995, - }, - dictWord{134, 11, 1673}, - dictWord{133, 0, 563}, - dictWord{134, 10, 72}, - dictWord{135, 10, 1345}, - dictWord{4, 11, 82}, - dictWord{5, 11, 333}, - dictWord{ - 5, - 11, - 904, - }, - dictWord{6, 11, 207}, - dictWord{7, 11, 325}, - dictWord{7, 11, 1726}, - dictWord{8, 11, 101}, - dictWord{10, 11, 778}, - dictWord{139, 11, 220}, - dictWord{5, 0, 37}, - dictWord{6, 0, 39}, - dictWord{6, 0, 451}, - dictWord{7, 0, 218}, - dictWord{7, 0, 667}, - dictWord{7, 0, 1166}, - dictWord{7, 0, 1687}, - dictWord{8, 0, 662}, - dictWord{16, 0, 2}, - dictWord{133, 10, 589}, - dictWord{134, 0, 1332}, - dictWord{133, 11, 903}, - dictWord{134, 0, 508}, - dictWord{5, 10, 117}, - dictWord{6, 10, 514}, - dictWord{6, 10, 541}, - dictWord{7, 10, 1164}, - dictWord{7, 10, 1436}, - dictWord{8, 10, 220}, - dictWord{8, 10, 648}, - dictWord{10, 10, 688}, - dictWord{11, 10, 560}, - dictWord{140, 11, 147}, - dictWord{6, 11, 555}, - dictWord{135, 11, 485}, - dictWord{133, 10, 686}, - dictWord{7, 0, 453}, - dictWord{7, 0, 635}, - dictWord{7, 0, 796}, - dictWord{8, 0, 331}, - dictWord{9, 0, 330}, - dictWord{9, 0, 865}, - dictWord{10, 0, 119}, - dictWord{10, 0, 235}, - dictWord{11, 0, 111}, - dictWord{11, 0, 129}, - dictWord{ - 11, - 0, - 240, - }, - dictWord{12, 0, 31}, - dictWord{12, 0, 66}, - dictWord{12, 0, 222}, - dictWord{12, 0, 269}, - dictWord{12, 0, 599}, - dictWord{12, 0, 684}, - dictWord{12, 0, 689}, - dictWord{12, 0, 691}, - dictWord{142, 0, 345}, - dictWord{135, 0, 1834}, - dictWord{4, 11, 705}, - dictWord{7, 11, 615}, - dictWord{138, 11, 251}, - dictWord{ - 136, - 11, - 345, - }, - dictWord{137, 0, 527}, - dictWord{6, 0, 98}, - dictWord{7, 0, 702}, - dictWord{135, 0, 991}, - dictWord{11, 0, 576}, - dictWord{14, 0, 74}, - dictWord{7, 10, 196}, - dictWord{10, 10, 765}, - dictWord{11, 10, 347}, - dictWord{11, 10, 552}, - dictWord{11, 10, 790}, - dictWord{12, 10, 263}, - dictWord{13, 10, 246}, - dictWord{ - 13, - 10, - 270, - }, - dictWord{13, 10, 395}, - dictWord{14, 10, 176}, - dictWord{14, 10, 190}, - dictWord{14, 10, 398}, - dictWord{14, 10, 412}, - dictWord{15, 10, 32}, - dictWord{ - 15, - 10, - 63, - }, - dictWord{16, 10, 88}, - dictWord{147, 10, 105}, - dictWord{134, 11, 90}, - dictWord{13, 0, 84}, - dictWord{141, 0, 122}, - dictWord{6, 0, 37}, - dictWord{ - 7, - 0, - 299, - }, - dictWord{7, 0, 1666}, - dictWord{8, 0, 195}, - dictWord{8, 0, 316}, - dictWord{9, 0, 178}, - dictWord{9, 0, 276}, - dictWord{9, 0, 339}, - dictWord{9, 0, 536}, - dictWord{ - 10, - 0, - 102, - }, - dictWord{10, 0, 362}, - dictWord{10, 0, 785}, - dictWord{11, 0, 55}, - dictWord{11, 0, 149}, - dictWord{11, 0, 773}, - dictWord{13, 0, 416}, - dictWord{ - 13, - 0, - 419, - }, - dictWord{14, 0, 38}, - dictWord{14, 0, 41}, - dictWord{142, 0, 210}, - dictWord{5, 10, 381}, - dictWord{135, 10, 1792}, - dictWord{7, 11, 813}, - dictWord{ - 12, - 11, - 497, - }, - dictWord{141, 11, 56}, - dictWord{7, 10, 616}, - dictWord{138, 10, 413}, - dictWord{133, 0, 645}, - dictWord{6, 11, 125}, - dictWord{135, 11, 1277}, - dictWord{132, 0, 290}, - dictWord{6, 0, 70}, - dictWord{7, 0, 1292}, - dictWord{10, 0, 762}, - dictWord{139, 0, 288}, - dictWord{6, 10, 120}, - dictWord{7, 10, 1188}, - dictWord{ - 7, - 10, - 1710, - }, - dictWord{8, 10, 286}, - dictWord{9, 10, 667}, - dictWord{11, 10, 592}, - dictWord{139, 10, 730}, - dictWord{135, 11, 1784}, - dictWord{7, 0, 1315}, - dictWord{135, 11, 1315}, - dictWord{134, 0, 1955}, - dictWord{135, 10, 1146}, - dictWord{7, 0, 131}, - dictWord{7, 0, 422}, - dictWord{8, 0, 210}, - dictWord{ - 140, - 0, - 573, - }, - dictWord{4, 10, 352}, - dictWord{135, 10, 687}, - dictWord{139, 0, 797}, - dictWord{143, 0, 38}, - dictWord{14, 0, 179}, - dictWord{15, 0, 151}, - dictWord{ - 150, - 0, - 11, - }, - dictWord{7, 0, 488}, - dictWord{4, 10, 192}, - dictWord{5, 10, 49}, - dictWord{6, 10, 200}, - dictWord{6, 10, 293}, - dictWord{134, 10, 1696}, - dictWord{ - 132, - 0, - 936, - }, - dictWord{135, 11, 703}, - dictWord{6, 11, 160}, - dictWord{7, 11, 1106}, - dictWord{9, 11, 770}, - dictWord{10, 11, 618}, - dictWord{11, 11, 112}, - dictWord{ - 140, - 11, - 413, - }, - dictWord{5, 0, 453}, - dictWord{134, 0, 441}, - dictWord{135, 0, 595}, - dictWord{132, 10, 650}, - dictWord{132, 10, 147}, - dictWord{6, 0, 991}, - dictWord{6, 0, 1182}, - dictWord{12, 11, 271}, - dictWord{145, 11, 109}, - dictWord{133, 10, 934}, - dictWord{140, 11, 221}, - dictWord{132, 0, 653}, - dictWord{ - 7, - 0, - 505, - }, - dictWord{135, 0, 523}, - dictWord{134, 0, 903}, - dictWord{135, 11, 479}, - dictWord{7, 11, 304}, - dictWord{9, 11, 646}, - dictWord{9, 11, 862}, - dictWord{ - 10, - 11, - 262, - }, - dictWord{11, 11, 696}, - dictWord{12, 11, 208}, - dictWord{15, 11, 79}, - dictWord{147, 11, 108}, - dictWord{146, 0, 80}, - dictWord{135, 11, 981}, - dictWord{142, 0, 432}, - dictWord{132, 0, 314}, - dictWord{137, 11, 152}, - dictWord{7, 0, 1368}, - dictWord{8, 0, 232}, - dictWord{8, 0, 361}, - dictWord{10, 0, 682}, - dictWord{138, 0, 742}, - dictWord{135, 11, 1586}, - dictWord{9, 0, 534}, - dictWord{4, 11, 434}, - dictWord{11, 11, 663}, - dictWord{12, 11, 210}, - dictWord{13, 11, 166}, - dictWord{13, 11, 310}, - dictWord{14, 11, 373}, - dictWord{147, 11, 43}, - dictWord{7, 11, 1091}, - dictWord{135, 11, 1765}, - dictWord{6, 11, 550}, - dictWord{ - 135, - 11, - 652, - }, - dictWord{137, 0, 27}, - dictWord{142, 0, 12}, - dictWord{4, 10, 637}, - dictWord{5, 11, 553}, - dictWord{7, 11, 766}, - dictWord{138, 11, 824}, - dictWord{ - 7, - 11, - 737, - }, - dictWord{8, 11, 298}, - dictWord{136, 11, 452}, - dictWord{7, 0, 736}, - dictWord{139, 0, 264}, - dictWord{134, 0, 1657}, - dictWord{133, 11, 292}, - dictWord{138, 11, 135}, - dictWord{6, 0, 844}, - dictWord{134, 0, 1117}, - dictWord{135, 0, 127}, - dictWord{9, 10, 867}, - dictWord{138, 10, 837}, - dictWord{ - 6, - 0, - 1184, - }, - dictWord{134, 0, 1208}, - dictWord{134, 0, 1294}, - dictWord{136, 0, 364}, - dictWord{6, 0, 1415}, - dictWord{7, 0, 1334}, - dictWord{11, 0, 125}, - dictWord{ - 6, - 10, - 170, - }, - dictWord{7, 11, 393}, - dictWord{8, 10, 395}, - dictWord{8, 10, 487}, - dictWord{10, 11, 603}, - dictWord{11, 11, 206}, - dictWord{141, 10, 147}, - dictWord{137, 11, 748}, - dictWord{4, 11, 912}, - dictWord{137, 11, 232}, - dictWord{4, 10, 535}, - dictWord{136, 10, 618}, - dictWord{137, 0, 792}, - dictWord{ - 7, - 11, - 1973, - }, - dictWord{136, 11, 716}, - dictWord{135, 11, 98}, - dictWord{5, 0, 909}, - dictWord{9, 0, 849}, - dictWord{138, 0, 805}, - dictWord{4, 0, 630}, - dictWord{ - 132, - 0, - 699, - }, - dictWord{5, 11, 733}, - dictWord{14, 11, 103}, - dictWord{150, 10, 23}, - dictWord{12, 11, 158}, - dictWord{18, 11, 8}, - dictWord{19, 11, 62}, - dictWord{ - 20, - 11, - 6, - }, - dictWord{22, 11, 4}, - dictWord{23, 11, 2}, - dictWord{151, 11, 9}, - dictWord{132, 0, 968}, - dictWord{132, 10, 778}, - dictWord{132, 10, 46}, - dictWord{5, 10, 811}, - dictWord{6, 10, 1679}, - dictWord{6, 10, 1714}, - dictWord{135, 10, 2032}, - dictWord{6, 0, 1446}, - dictWord{7, 10, 1458}, - dictWord{9, 10, 407}, - dictWord{ - 139, - 10, - 15, - }, - dictWord{7, 0, 206}, - dictWord{7, 0, 397}, - dictWord{7, 0, 621}, - dictWord{7, 0, 640}, - dictWord{8, 0, 124}, - dictWord{8, 0, 619}, - dictWord{9, 0, 305}, - dictWord{ - 9, - 0, - 643, - }, - dictWord{10, 0, 264}, - dictWord{10, 0, 628}, - dictWord{11, 0, 40}, - dictWord{12, 0, 349}, - dictWord{13, 0, 134}, - dictWord{13, 0, 295}, - dictWord{ - 14, - 0, - 155, - }, - dictWord{15, 0, 120}, - dictWord{18, 0, 105}, - dictWord{6, 10, 34}, - dictWord{7, 10, 1089}, - dictWord{8, 10, 708}, - dictWord{8, 10, 721}, - dictWord{9, 10, 363}, - dictWord{148, 10, 98}, - dictWord{4, 0, 262}, - dictWord{5, 0, 641}, - dictWord{135, 0, 342}, - dictWord{137, 11, 72}, - dictWord{4, 0, 99}, - dictWord{6, 0, 250}, - dictWord{ - 6, - 0, - 346, - }, - dictWord{8, 0, 127}, - dictWord{138, 0, 81}, - dictWord{132, 0, 915}, - dictWord{5, 0, 75}, - dictWord{9, 0, 517}, - dictWord{10, 0, 470}, - dictWord{12, 0, 155}, - dictWord{141, 0, 224}, - dictWord{132, 10, 462}, - dictWord{11, 11, 600}, - dictWord{11, 11, 670}, - dictWord{141, 11, 245}, - dictWord{142, 0, 83}, - dictWord{ - 5, - 10, - 73, - }, - dictWord{6, 10, 23}, - dictWord{134, 10, 338}, - dictWord{6, 0, 1031}, - dictWord{139, 11, 923}, - dictWord{7, 11, 164}, - dictWord{7, 11, 1571}, - dictWord{ - 9, - 11, - 107, - }, - dictWord{140, 11, 225}, - dictWord{134, 0, 1470}, - dictWord{133, 0, 954}, - dictWord{6, 0, 304}, - dictWord{8, 0, 418}, - dictWord{10, 0, 345}, - dictWord{ - 11, - 0, - 341, - }, - dictWord{139, 0, 675}, - dictWord{9, 0, 410}, - dictWord{139, 0, 425}, - dictWord{4, 11, 27}, - dictWord{5, 11, 484}, - dictWord{5, 11, 510}, - dictWord{6, 11, 434}, - dictWord{7, 11, 1000}, - dictWord{7, 11, 1098}, - dictWord{8, 11, 2}, - dictWord{136, 11, 200}, - dictWord{134, 0, 734}, - dictWord{140, 11, 257}, - dictWord{ - 7, - 10, - 725, - }, - dictWord{8, 10, 498}, - dictWord{139, 10, 268}, - dictWord{134, 0, 1822}, - dictWord{135, 0, 1798}, - dictWord{135, 10, 773}, - dictWord{132, 11, 460}, - dictWord{4, 11, 932}, - dictWord{133, 11, 891}, - dictWord{134, 0, 14}, - dictWord{132, 10, 583}, - dictWord{7, 10, 1462}, - dictWord{8, 11, 625}, - dictWord{ - 139, - 10, - 659, - }, - dictWord{5, 0, 113}, - dictWord{6, 0, 243}, - dictWord{6, 0, 1708}, - dictWord{7, 0, 1865}, - dictWord{11, 0, 161}, - dictWord{16, 0, 37}, - dictWord{17, 0, 99}, - dictWord{133, 10, 220}, - dictWord{134, 11, 76}, - dictWord{5, 11, 461}, - dictWord{135, 11, 1925}, - dictWord{140, 0, 69}, - dictWord{8, 11, 92}, - dictWord{ - 137, - 11, - 221, - }, - dictWord{139, 10, 803}, - dictWord{132, 10, 544}, - dictWord{4, 0, 274}, - dictWord{134, 0, 922}, - dictWord{132, 0, 541}, - dictWord{5, 0, 627}, - dictWord{ - 6, - 10, - 437, - }, - dictWord{6, 10, 564}, - dictWord{11, 10, 181}, - dictWord{141, 10, 183}, - dictWord{135, 10, 1192}, - dictWord{7, 0, 166}, - dictWord{132, 11, 763}, - dictWord{133, 11, 253}, - dictWord{134, 0, 849}, - dictWord{9, 11, 73}, - dictWord{10, 11, 110}, - dictWord{14, 11, 185}, - dictWord{145, 11, 119}, - dictWord{5, 11, 212}, - dictWord{12, 11, 35}, - dictWord{141, 11, 382}, - dictWord{133, 0, 717}, - dictWord{137, 0, 304}, - dictWord{136, 0, 600}, - dictWord{133, 0, 654}, - dictWord{ - 6, - 0, - 273, - }, - dictWord{10, 0, 188}, - dictWord{13, 0, 377}, - dictWord{146, 0, 77}, - dictWord{4, 10, 790}, - dictWord{5, 10, 273}, - dictWord{134, 10, 394}, - dictWord{ - 132, - 0, - 543, - }, - dictWord{135, 0, 410}, - dictWord{11, 0, 98}, - dictWord{11, 0, 524}, - dictWord{141, 0, 87}, - dictWord{132, 0, 941}, - dictWord{135, 11, 1175}, - dictWord{ - 4, - 0, - 250, - }, - dictWord{7, 0, 1612}, - dictWord{11, 0, 186}, - dictWord{12, 0, 133}, - dictWord{6, 10, 127}, - dictWord{7, 10, 1511}, - dictWord{8, 10, 613}, - dictWord{ - 12, - 10, - 495, - }, - dictWord{12, 10, 586}, - dictWord{12, 10, 660}, - dictWord{12, 10, 668}, - dictWord{14, 10, 385}, - dictWord{15, 10, 118}, - dictWord{17, 10, 20}, - dictWord{ - 146, - 10, - 98, - }, - dictWord{6, 0, 1785}, - dictWord{133, 11, 816}, - dictWord{134, 0, 1339}, - dictWord{7, 0, 961}, - dictWord{7, 0, 1085}, - dictWord{7, 0, 1727}, - dictWord{ - 8, - 0, - 462, - }, - dictWord{6, 10, 230}, - dictWord{135, 11, 1727}, - dictWord{9, 0, 636}, - dictWord{135, 10, 1954}, - dictWord{132, 0, 780}, - dictWord{5, 11, 869}, - dictWord{5, 11, 968}, - dictWord{6, 11, 1626}, - dictWord{8, 11, 734}, - dictWord{136, 11, 784}, - dictWord{4, 11, 542}, - dictWord{6, 11, 1716}, - dictWord{6, 11, 1727}, - dictWord{7, 11, 1082}, - dictWord{7, 11, 1545}, - dictWord{8, 11, 56}, - dictWord{8, 11, 118}, - dictWord{8, 11, 412}, - dictWord{8, 11, 564}, - dictWord{9, 11, 888}, - dictWord{9, 11, 908}, - dictWord{10, 11, 50}, - dictWord{10, 11, 423}, - dictWord{11, 11, 685}, - dictWord{11, 11, 697}, - dictWord{11, 11, 933}, - dictWord{12, 11, 299}, - dictWord{13, 11, 126}, - dictWord{13, 11, 136}, - dictWord{13, 11, 170}, - dictWord{141, 11, 190}, - dictWord{134, 11, 226}, - dictWord{4, 11, 232}, - dictWord{ - 9, - 11, - 202, - }, - dictWord{10, 11, 474}, - dictWord{140, 11, 433}, - dictWord{137, 11, 500}, - dictWord{5, 0, 529}, - dictWord{136, 10, 68}, - dictWord{132, 10, 654}, - dictWord{ - 4, - 10, - 156, - }, - dictWord{7, 10, 998}, - dictWord{7, 10, 1045}, - dictWord{7, 10, 1860}, - dictWord{9, 10, 48}, - dictWord{9, 10, 692}, - dictWord{11, 10, 419}, - dictWord{139, 10, 602}, - dictWord{7, 0, 1276}, - dictWord{8, 0, 474}, - dictWord{9, 0, 652}, - dictWord{6, 11, 108}, - dictWord{7, 11, 1003}, - dictWord{7, 11, 1181}, - dictWord{136, 11, 343}, - dictWord{7, 11, 1264}, - dictWord{7, 11, 1678}, - dictWord{11, 11, 945}, - dictWord{12, 11, 341}, - dictWord{12, 11, 471}, - dictWord{ - 140, - 11, - 569, - }, - dictWord{134, 11, 1712}, - dictWord{5, 0, 948}, - dictWord{12, 0, 468}, - dictWord{19, 0, 96}, - dictWord{148, 0, 24}, - dictWord{4, 11, 133}, - dictWord{ - 7, - 11, - 711, - }, - dictWord{7, 11, 1298}, - dictWord{7, 11, 1585}, - dictWord{135, 11, 1929}, - dictWord{6, 0, 753}, - dictWord{140, 0, 657}, - dictWord{139, 0, 941}, - dictWord{ - 6, - 11, - 99, - }, - dictWord{7, 11, 1808}, - dictWord{145, 11, 57}, - dictWord{6, 11, 574}, - dictWord{7, 11, 428}, - dictWord{7, 11, 1250}, - dictWord{10, 11, 669}, - dictWord{ - 11, - 11, - 485, - }, - dictWord{11, 11, 840}, - dictWord{12, 11, 300}, - dictWord{142, 11, 250}, - dictWord{4, 0, 532}, - dictWord{5, 0, 706}, - dictWord{135, 0, 662}, - dictWord{ - 5, - 0, - 837, - }, - dictWord{6, 0, 1651}, - dictWord{139, 0, 985}, - dictWord{7, 0, 1861}, - dictWord{9, 10, 197}, - dictWord{10, 10, 300}, - dictWord{12, 10, 473}, - dictWord{ - 13, - 10, - 90, - }, - dictWord{141, 10, 405}, - dictWord{137, 11, 252}, - dictWord{6, 11, 323}, - dictWord{135, 11, 1564}, - dictWord{4, 0, 330}, - dictWord{4, 0, 863}, - dictWord{7, 0, 933}, - dictWord{7, 0, 2012}, - dictWord{8, 0, 292}, - dictWord{7, 11, 461}, - dictWord{8, 11, 775}, - dictWord{138, 11, 435}, - dictWord{132, 10, 606}, - dictWord{ - 4, - 11, - 655, - }, - dictWord{7, 11, 850}, - dictWord{17, 11, 75}, - dictWord{146, 11, 137}, - dictWord{135, 0, 767}, - dictWord{7, 10, 1978}, - dictWord{136, 10, 676}, - dictWord{132, 0, 641}, - dictWord{135, 11, 1559}, - dictWord{134, 0, 1233}, - dictWord{137, 0, 242}, - dictWord{17, 0, 114}, - dictWord{4, 10, 361}, - dictWord{ - 133, - 10, - 315, - }, - dictWord{137, 0, 883}, - dictWord{132, 10, 461}, - dictWord{138, 0, 274}, - dictWord{134, 0, 2008}, - dictWord{134, 0, 1794}, - dictWord{4, 0, 703}, - dictWord{135, 0, 207}, - dictWord{12, 0, 285}, - dictWord{132, 10, 472}, - dictWord{132, 0, 571}, - dictWord{5, 0, 873}, - dictWord{5, 0, 960}, - dictWord{8, 0, 823}, - dictWord{9, 0, 881}, - dictWord{136, 11, 577}, - dictWord{7, 0, 617}, - dictWord{10, 0, 498}, - dictWord{11, 0, 501}, - dictWord{12, 0, 16}, - dictWord{140, 0, 150}, - dictWord{ - 138, - 10, - 747, - }, - dictWord{132, 0, 431}, - dictWord{133, 10, 155}, - dictWord{11, 0, 283}, - dictWord{11, 0, 567}, - dictWord{7, 10, 163}, - dictWord{8, 10, 319}, - dictWord{ - 9, - 10, - 402, - }, - dictWord{10, 10, 24}, - dictWord{10, 10, 681}, - dictWord{11, 10, 200}, - dictWord{12, 10, 253}, - dictWord{12, 10, 410}, - dictWord{142, 10, 219}, - dictWord{4, 11, 413}, - dictWord{5, 11, 677}, - dictWord{8, 11, 432}, - dictWord{140, 11, 280}, - dictWord{9, 0, 401}, - dictWord{5, 10, 475}, - dictWord{7, 10, 1780}, - dictWord{11, 10, 297}, - dictWord{11, 10, 558}, - dictWord{14, 10, 322}, - dictWord{147, 10, 76}, - dictWord{6, 0, 781}, - dictWord{9, 0, 134}, - dictWord{10, 0, 2}, - dictWord{ - 10, - 0, - 27, - }, - dictWord{10, 0, 333}, - dictWord{11, 0, 722}, - dictWord{143, 0, 1}, - dictWord{5, 0, 33}, - dictWord{6, 0, 470}, - dictWord{139, 0, 424}, - dictWord{ - 135, - 0, - 2006, - }, - dictWord{12, 0, 783}, - dictWord{135, 10, 1956}, - dictWord{136, 0, 274}, - dictWord{135, 0, 1882}, - dictWord{132, 0, 794}, - dictWord{135, 0, 1848}, - dictWord{5, 10, 944}, - dictWord{134, 10, 1769}, - dictWord{6, 0, 47}, - dictWord{7, 0, 90}, - dictWord{7, 0, 664}, - dictWord{7, 0, 830}, - dictWord{7, 0, 1380}, - dictWord{ - 7, - 0, - 2025, - }, - dictWord{8, 0, 448}, - dictWord{136, 0, 828}, - dictWord{132, 10, 144}, - dictWord{134, 0, 1199}, - dictWord{4, 11, 395}, - dictWord{139, 11, 762}, - dictWord{135, 11, 1504}, - dictWord{9, 0, 417}, - dictWord{137, 0, 493}, - dictWord{9, 11, 174}, - dictWord{10, 11, 164}, - dictWord{11, 11, 440}, - dictWord{11, 11, 841}, - dictWord{143, 11, 98}, - dictWord{134, 11, 426}, - dictWord{139, 11, 1002}, - dictWord{134, 0, 295}, - dictWord{134, 0, 816}, - dictWord{6, 10, 247}, - dictWord{ - 137, - 10, - 555, - }, - dictWord{133, 0, 1019}, - dictWord{4, 0, 620}, - dictWord{5, 11, 476}, - dictWord{10, 10, 280}, - dictWord{138, 10, 797}, - dictWord{139, 0, 464}, - dictWord{5, 11, 76}, - dictWord{6, 11, 458}, - dictWord{6, 11, 497}, - dictWord{7, 11, 764}, - dictWord{7, 11, 868}, - dictWord{9, 11, 658}, - dictWord{10, 11, 594}, - dictWord{ - 11, - 11, - 173, - }, - dictWord{11, 11, 566}, - dictWord{12, 11, 20}, - dictWord{12, 11, 338}, - dictWord{141, 11, 200}, - dictWord{134, 0, 208}, - dictWord{4, 11, 526}, - dictWord{7, 11, 1029}, - dictWord{135, 11, 1054}, - dictWord{132, 11, 636}, - dictWord{6, 11, 233}, - dictWord{7, 11, 660}, - dictWord{7, 11, 1124}, - dictWord{ - 17, - 11, - 31, - }, - dictWord{19, 11, 22}, - dictWord{151, 11, 14}, - dictWord{10, 0, 442}, - dictWord{133, 10, 428}, - dictWord{10, 0, 930}, - dictWord{140, 0, 778}, - dictWord{ - 6, - 0, - 68, - }, - dictWord{7, 0, 448}, - dictWord{7, 0, 1629}, - dictWord{7, 0, 1769}, - dictWord{7, 0, 1813}, - dictWord{8, 0, 442}, - dictWord{8, 0, 516}, - dictWord{9, 0, 710}, - dictWord{ - 10, - 0, - 282, - }, - dictWord{10, 0, 722}, - dictWord{7, 10, 1717}, - dictWord{138, 10, 546}, - dictWord{134, 0, 1128}, - dictWord{11, 0, 844}, - dictWord{12, 0, 104}, - dictWord{140, 0, 625}, - dictWord{4, 11, 432}, - dictWord{135, 11, 824}, - dictWord{138, 10, 189}, - dictWord{133, 0, 787}, - dictWord{133, 10, 99}, - dictWord{ - 4, - 11, - 279, - }, - dictWord{7, 11, 301}, - dictWord{137, 11, 362}, - dictWord{8, 0, 491}, - dictWord{4, 10, 397}, - dictWord{136, 10, 555}, - dictWord{4, 11, 178}, - dictWord{ - 133, - 11, - 399, - }, - dictWord{134, 0, 711}, - dictWord{144, 0, 9}, - dictWord{4, 0, 403}, - dictWord{5, 0, 441}, - dictWord{7, 0, 450}, - dictWord{10, 0, 840}, - dictWord{11, 0, 101}, - dictWord{12, 0, 193}, - dictWord{141, 0, 430}, - dictWord{135, 11, 1246}, - dictWord{12, 10, 398}, - dictWord{20, 10, 39}, - dictWord{21, 10, 11}, - dictWord{ - 150, - 10, - 41, - }, - dictWord{4, 10, 485}, - dictWord{7, 10, 353}, - dictWord{135, 10, 1523}, - dictWord{6, 10, 366}, - dictWord{7, 10, 1384}, - dictWord{7, 10, 1601}, - dictWord{ - 135, - 11, - 1912, - }, - dictWord{7, 0, 396}, - dictWord{10, 0, 160}, - dictWord{135, 11, 396}, - dictWord{137, 10, 282}, - dictWord{134, 11, 1692}, - dictWord{4, 10, 157}, - dictWord{5, 10, 471}, - dictWord{6, 11, 202}, - dictWord{10, 11, 448}, - dictWord{11, 11, 208}, - dictWord{12, 11, 360}, - dictWord{17, 11, 117}, - dictWord{ - 17, - 11, - 118, - }, - dictWord{18, 11, 27}, - dictWord{148, 11, 67}, - dictWord{133, 0, 679}, - dictWord{137, 0, 326}, - dictWord{136, 10, 116}, - dictWord{7, 11, 872}, - dictWord{ - 10, - 11, - 516, - }, - dictWord{139, 11, 167}, - dictWord{132, 11, 224}, - dictWord{5, 11, 546}, - dictWord{7, 11, 35}, - dictWord{8, 11, 11}, - dictWord{8, 11, 12}, - dictWord{ - 9, - 11, - 315, - }, - dictWord{9, 11, 533}, - dictWord{10, 11, 802}, - dictWord{11, 11, 166}, - dictWord{12, 11, 525}, - dictWord{142, 11, 243}, - dictWord{7, 0, 1128}, - dictWord{135, 11, 1920}, - dictWord{5, 11, 241}, - dictWord{8, 11, 242}, - dictWord{9, 11, 451}, - dictWord{10, 11, 667}, - dictWord{11, 11, 598}, - dictWord{ - 140, - 11, - 429, - }, - dictWord{6, 0, 737}, - dictWord{5, 10, 160}, - dictWord{7, 10, 363}, - dictWord{7, 10, 589}, - dictWord{10, 10, 170}, - dictWord{141, 10, 55}, - dictWord{ - 135, - 0, - 1796, - }, - dictWord{142, 11, 254}, - dictWord{4, 0, 574}, - dictWord{7, 0, 350}, - dictWord{7, 0, 1024}, - dictWord{8, 0, 338}, - dictWord{9, 0, 677}, - dictWord{138, 0, 808}, - dictWord{134, 0, 1096}, - dictWord{137, 11, 516}, - dictWord{7, 0, 405}, - dictWord{10, 0, 491}, - dictWord{4, 10, 108}, - dictWord{4, 11, 366}, - dictWord{ - 139, - 10, - 498, - }, - dictWord{11, 11, 337}, - dictWord{142, 11, 303}, - dictWord{134, 11, 1736}, - dictWord{7, 0, 1081}, - dictWord{140, 11, 364}, - dictWord{7, 10, 1005}, - dictWord{140, 10, 609}, - dictWord{7, 0, 1676}, - dictWord{4, 10, 895}, - dictWord{133, 10, 772}, - dictWord{135, 0, 2037}, - dictWord{6, 0, 1207}, - dictWord{ - 11, - 11, - 916, - }, - dictWord{142, 11, 419}, - dictWord{14, 11, 140}, - dictWord{148, 11, 41}, - dictWord{6, 11, 331}, - dictWord{136, 11, 623}, - dictWord{9, 0, 944}, - dictWord{ - 9, - 0, - 969, - }, - dictWord{9, 0, 1022}, - dictWord{12, 0, 913}, - dictWord{12, 0, 936}, - dictWord{15, 0, 177}, - dictWord{15, 0, 193}, - dictWord{4, 10, 926}, - dictWord{ - 133, - 10, - 983, - }, - dictWord{5, 0, 354}, - dictWord{135, 11, 506}, - dictWord{8, 0, 598}, - dictWord{9, 0, 664}, - dictWord{138, 0, 441}, - dictWord{4, 11, 640}, - dictWord{ - 133, - 11, - 513, - }, - dictWord{137, 0, 297}, - dictWord{132, 10, 538}, - dictWord{6, 10, 294}, - dictWord{7, 10, 1267}, - dictWord{136, 10, 624}, - dictWord{7, 0, 1772}, - dictWord{ - 7, - 11, - 1888, - }, - dictWord{8, 11, 289}, - dictWord{11, 11, 45}, - dictWord{12, 11, 278}, - dictWord{140, 11, 537}, - dictWord{135, 10, 1325}, - dictWord{138, 0, 751}, - dictWord{141, 0, 37}, - dictWord{134, 0, 1828}, - dictWord{132, 10, 757}, - dictWord{132, 11, 394}, - dictWord{6, 0, 257}, - dictWord{135, 0, 1522}, - dictWord{ - 4, - 0, - 582, - }, - dictWord{9, 0, 191}, - dictWord{135, 11, 1931}, - dictWord{7, 11, 574}, - dictWord{7, 11, 1719}, - dictWord{137, 11, 145}, - dictWord{132, 11, 658}, - dictWord{10, 0, 790}, - dictWord{132, 11, 369}, - dictWord{9, 11, 781}, - dictWord{10, 11, 144}, - dictWord{11, 11, 385}, - dictWord{13, 11, 161}, - dictWord{13, 11, 228}, - dictWord{13, 11, 268}, - dictWord{148, 11, 107}, - dictWord{8, 0, 469}, - dictWord{10, 0, 47}, - dictWord{136, 11, 374}, - dictWord{6, 0, 306}, - dictWord{7, 0, 1140}, - dictWord{7, 0, 1340}, - dictWord{8, 0, 133}, - dictWord{138, 0, 449}, - dictWord{139, 0, 1011}, - dictWord{7, 10, 1875}, - dictWord{139, 10, 124}, - dictWord{ - 4, - 11, - 344, - }, - dictWord{6, 11, 498}, - dictWord{139, 11, 323}, - dictWord{137, 0, 299}, - dictWord{132, 0, 837}, - dictWord{133, 11, 906}, - dictWord{5, 0, 329}, - dictWord{ - 8, - 0, - 260, - }, - dictWord{138, 0, 10}, - dictWord{134, 0, 1320}, - dictWord{4, 0, 657}, - dictWord{146, 0, 158}, - dictWord{135, 0, 1191}, - dictWord{152, 0, 7}, - dictWord{ - 6, - 0, - 1939, - }, - dictWord{8, 0, 974}, - dictWord{138, 0, 996}, - dictWord{135, 0, 1665}, - dictWord{11, 11, 126}, - dictWord{139, 11, 287}, - dictWord{143, 0, 8}, - dictWord{ - 14, - 11, - 149, - }, - dictWord{14, 11, 399}, - dictWord{143, 11, 57}, - dictWord{5, 0, 66}, - dictWord{7, 0, 1896}, - dictWord{136, 0, 288}, - dictWord{7, 0, 175}, - dictWord{ - 10, - 0, - 494, - }, - dictWord{5, 10, 150}, - dictWord{8, 10, 603}, - dictWord{9, 10, 593}, - dictWord{9, 10, 634}, - dictWord{10, 10, 173}, - dictWord{11, 10, 462}, - dictWord{ - 11, - 10, - 515, - }, - dictWord{13, 10, 216}, - dictWord{13, 10, 288}, - dictWord{142, 10, 400}, - dictWord{134, 0, 1643}, - dictWord{136, 11, 21}, - dictWord{4, 0, 21}, - dictWord{ - 5, - 0, - 91, - }, - dictWord{5, 0, 648}, - dictWord{5, 0, 750}, - dictWord{5, 0, 781}, - dictWord{6, 0, 54}, - dictWord{6, 0, 112}, - dictWord{6, 0, 402}, - dictWord{6, 0, 1732}, - dictWord{ - 7, - 0, - 315, - }, - dictWord{7, 0, 749}, - dictWord{7, 0, 1427}, - dictWord{7, 0, 1900}, - dictWord{9, 0, 78}, - dictWord{9, 0, 508}, - dictWord{10, 0, 611}, - dictWord{10, 0, 811}, - dictWord{11, 0, 510}, - dictWord{11, 0, 728}, - dictWord{13, 0, 36}, - dictWord{14, 0, 39}, - dictWord{16, 0, 83}, - dictWord{17, 0, 124}, - dictWord{148, 0, 30}, - dictWord{ - 4, - 0, - 668, - }, - dictWord{136, 0, 570}, - dictWord{10, 0, 322}, - dictWord{10, 0, 719}, - dictWord{139, 0, 407}, - dictWord{135, 11, 1381}, - dictWord{136, 11, 193}, - dictWord{12, 10, 108}, - dictWord{141, 10, 291}, - dictWord{132, 11, 616}, - dictWord{136, 11, 692}, - dictWord{8, 0, 125}, - dictWord{8, 0, 369}, - dictWord{8, 0, 524}, - dictWord{10, 0, 486}, - dictWord{11, 0, 13}, - dictWord{11, 0, 381}, - dictWord{11, 0, 736}, - dictWord{11, 0, 766}, - dictWord{11, 0, 845}, - dictWord{13, 0, 114}, - dictWord{ - 13, - 0, - 292, - }, - dictWord{142, 0, 47}, - dictWord{134, 0, 1247}, - dictWord{6, 0, 1684}, - dictWord{6, 0, 1731}, - dictWord{7, 0, 356}, - dictWord{8, 0, 54}, - dictWord{8, 0, 221}, - dictWord{9, 0, 225}, - dictWord{9, 0, 356}, - dictWord{10, 0, 77}, - dictWord{10, 0, 446}, - dictWord{10, 0, 731}, - dictWord{12, 0, 404}, - dictWord{141, 0, 491}, - dictWord{135, 10, 1777}, - dictWord{4, 11, 305}, - dictWord{4, 10, 493}, - dictWord{144, 10, 55}, - dictWord{4, 0, 951}, - dictWord{6, 0, 1809}, - dictWord{6, 0, 1849}, - dictWord{8, 0, 846}, - dictWord{8, 0, 866}, - dictWord{8, 0, 899}, - dictWord{10, 0, 896}, - dictWord{12, 0, 694}, - dictWord{142, 0, 468}, - dictWord{5, 11, 214}, - dictWord{ - 7, - 11, - 603, - }, - dictWord{8, 11, 611}, - dictWord{9, 11, 686}, - dictWord{10, 11, 88}, - dictWord{11, 11, 459}, - dictWord{11, 11, 496}, - dictWord{12, 11, 463}, - dictWord{ - 12, - 11, - 590, - }, - dictWord{13, 11, 0}, - dictWord{142, 11, 214}, - dictWord{132, 0, 411}, - dictWord{4, 0, 80}, - dictWord{133, 0, 44}, - dictWord{140, 11, 74}, - dictWord{ - 143, - 0, - 31, - }, - dictWord{7, 0, 669}, - dictWord{6, 10, 568}, - dictWord{7, 10, 1804}, - dictWord{8, 10, 362}, - dictWord{8, 10, 410}, - dictWord{8, 10, 830}, - dictWord{9, 10, 514}, - dictWord{11, 10, 649}, - dictWord{142, 10, 157}, - dictWord{7, 0, 673}, - dictWord{134, 11, 1703}, - dictWord{132, 10, 625}, - dictWord{134, 0, 1303}, - dictWord{ - 5, - 0, - 299, - }, - dictWord{135, 0, 1083}, - dictWord{138, 0, 704}, - dictWord{6, 0, 275}, - dictWord{7, 0, 408}, - dictWord{6, 10, 158}, - dictWord{7, 10, 129}, - dictWord{ - 7, - 10, - 181, - }, - dictWord{8, 10, 276}, - dictWord{8, 10, 377}, - dictWord{10, 10, 523}, - dictWord{11, 10, 816}, - dictWord{12, 10, 455}, - dictWord{13, 10, 303}, - dictWord{ - 142, - 10, - 135, - }, - dictWord{4, 0, 219}, - dictWord{7, 0, 367}, - dictWord{7, 0, 1713}, - dictWord{7, 0, 1761}, - dictWord{9, 0, 86}, - dictWord{9, 0, 537}, - dictWord{10, 0, 165}, - dictWord{12, 0, 219}, - dictWord{140, 0, 561}, - dictWord{8, 0, 216}, - dictWord{4, 10, 1}, - dictWord{4, 11, 737}, - dictWord{6, 11, 317}, - dictWord{7, 10, 1143}, - dictWord{ - 7, - 10, - 1463, - }, - dictWord{9, 10, 207}, - dictWord{9, 10, 390}, - dictWord{9, 10, 467}, - dictWord{10, 11, 98}, - dictWord{11, 11, 294}, - dictWord{11, 10, 836}, - dictWord{ - 12, - 11, - 60, - }, - dictWord{12, 11, 437}, - dictWord{13, 11, 64}, - dictWord{13, 11, 380}, - dictWord{142, 11, 430}, - dictWord{6, 11, 1758}, - dictWord{8, 11, 520}, - dictWord{9, 11, 345}, - dictWord{9, 11, 403}, - dictWord{142, 11, 350}, - dictWord{5, 11, 47}, - dictWord{10, 11, 242}, - dictWord{138, 11, 579}, - dictWord{5, 11, 139}, - dictWord{7, 11, 1168}, - dictWord{138, 11, 539}, - dictWord{135, 0, 1319}, - dictWord{4, 10, 295}, - dictWord{4, 10, 723}, - dictWord{5, 10, 895}, - dictWord{ - 7, - 10, - 1031, - }, - dictWord{8, 10, 199}, - dictWord{8, 10, 340}, - dictWord{9, 10, 153}, - dictWord{9, 10, 215}, - dictWord{10, 10, 21}, - dictWord{10, 10, 59}, - dictWord{ - 10, - 10, - 80, - }, - dictWord{10, 10, 224}, - dictWord{10, 10, 838}, - dictWord{11, 10, 229}, - dictWord{11, 10, 652}, - dictWord{12, 10, 192}, - dictWord{13, 10, 146}, - dictWord{ - 142, - 10, - 91, - }, - dictWord{140, 0, 428}, - dictWord{137, 10, 51}, - dictWord{133, 0, 514}, - dictWord{5, 10, 309}, - dictWord{140, 10, 211}, - dictWord{6, 0, 1010}, - dictWord{5, 10, 125}, - dictWord{8, 10, 77}, - dictWord{138, 10, 15}, - dictWord{4, 0, 55}, - dictWord{5, 0, 301}, - dictWord{6, 0, 571}, - dictWord{142, 0, 49}, - dictWord{ - 146, - 0, - 102, - }, - dictWord{136, 11, 370}, - dictWord{4, 11, 107}, - dictWord{7, 11, 613}, - dictWord{8, 11, 358}, - dictWord{8, 11, 439}, - dictWord{8, 11, 504}, - dictWord{ - 9, - 11, - 501, - }, - dictWord{10, 11, 383}, - dictWord{139, 11, 477}, - dictWord{132, 11, 229}, - dictWord{133, 0, 364}, - dictWord{133, 10, 439}, - dictWord{4, 11, 903}, - dictWord{135, 11, 1816}, - dictWord{11, 0, 379}, - dictWord{140, 10, 76}, - dictWord{4, 0, 76}, - dictWord{4, 0, 971}, - dictWord{7, 0, 1550}, - dictWord{9, 0, 306}, - dictWord{ - 9, - 0, - 430, - }, - dictWord{9, 0, 663}, - dictWord{10, 0, 683}, - dictWord{10, 0, 921}, - dictWord{11, 0, 427}, - dictWord{11, 0, 753}, - dictWord{12, 0, 334}, - dictWord{12, 0, 442}, - dictWord{14, 0, 258}, - dictWord{14, 0, 366}, - dictWord{143, 0, 131}, - dictWord{137, 0, 52}, - dictWord{4, 11, 47}, - dictWord{6, 11, 373}, - dictWord{7, 11, 452}, - dictWord{7, 11, 543}, - dictWord{7, 11, 1714}, - dictWord{7, 11, 1856}, - dictWord{9, 11, 6}, - dictWord{11, 11, 257}, - dictWord{139, 11, 391}, - dictWord{4, 10, 8}, - dictWord{ - 7, - 10, - 1152, - }, - dictWord{7, 10, 1153}, - dictWord{7, 10, 1715}, - dictWord{9, 10, 374}, - dictWord{10, 10, 478}, - dictWord{139, 10, 648}, - dictWord{4, 11, 785}, - dictWord{133, 11, 368}, - dictWord{135, 10, 1099}, - dictWord{135, 11, 860}, - dictWord{5, 11, 980}, - dictWord{134, 11, 1754}, - dictWord{134, 0, 1258}, - dictWord{ - 6, - 0, - 1058, - }, - dictWord{6, 0, 1359}, - dictWord{7, 11, 536}, - dictWord{7, 11, 1331}, - dictWord{136, 11, 143}, - dictWord{4, 0, 656}, - dictWord{135, 0, 779}, - dictWord{136, 10, 87}, - dictWord{5, 11, 19}, - dictWord{6, 11, 533}, - dictWord{146, 11, 126}, - dictWord{7, 0, 144}, - dictWord{138, 10, 438}, - dictWord{5, 11, 395}, - dictWord{5, 11, 951}, - dictWord{134, 11, 1776}, - dictWord{135, 0, 1373}, - dictWord{7, 0, 554}, - dictWord{7, 0, 605}, - dictWord{141, 0, 10}, - dictWord{4, 10, 69}, - dictWord{ - 5, - 10, - 122, - }, - dictWord{9, 10, 656}, - dictWord{138, 10, 464}, - dictWord{5, 10, 849}, - dictWord{134, 10, 1633}, - dictWord{5, 0, 838}, - dictWord{5, 0, 841}, - dictWord{134, 0, 1649}, - dictWord{133, 0, 1012}, - dictWord{139, 10, 499}, - dictWord{7, 10, 476}, - dictWord{7, 10, 1592}, - dictWord{138, 10, 87}, - dictWord{ - 6, - 0, - 251, - }, - dictWord{7, 0, 365}, - dictWord{7, 0, 1357}, - dictWord{7, 0, 1497}, - dictWord{8, 0, 154}, - dictWord{141, 0, 281}, - dictWord{132, 11, 441}, - dictWord{ - 132, - 11, - 695, - }, - dictWord{7, 11, 497}, - dictWord{9, 11, 387}, - dictWord{147, 11, 81}, - dictWord{133, 0, 340}, - dictWord{14, 10, 283}, - dictWord{142, 11, 283}, - dictWord{ - 134, - 0, - 810, - }, - dictWord{135, 11, 1894}, - dictWord{139, 0, 495}, - dictWord{5, 11, 284}, - dictWord{6, 11, 49}, - dictWord{6, 11, 350}, - dictWord{7, 11, 1}, - dictWord{ - 7, - 11, - 377, - }, - dictWord{7, 11, 1693}, - dictWord{8, 11, 18}, - dictWord{8, 11, 678}, - dictWord{9, 11, 161}, - dictWord{9, 11, 585}, - dictWord{9, 11, 671}, - dictWord{ - 9, - 11, - 839, - }, - dictWord{11, 11, 912}, - dictWord{141, 11, 427}, - dictWord{5, 10, 859}, - dictWord{7, 10, 1160}, - dictWord{8, 10, 107}, - dictWord{9, 10, 291}, - dictWord{ - 9, - 10, - 439, - }, - dictWord{10, 10, 663}, - dictWord{11, 10, 609}, - dictWord{140, 10, 197}, - dictWord{8, 0, 261}, - dictWord{9, 0, 144}, - dictWord{9, 0, 466}, - dictWord{ - 10, - 0, - 370, - }, - dictWord{12, 0, 470}, - dictWord{13, 0, 144}, - dictWord{142, 0, 348}, - dictWord{137, 0, 897}, - dictWord{6, 0, 248}, - dictWord{9, 0, 546}, - dictWord{10, 0, 535}, - dictWord{11, 0, 681}, - dictWord{141, 0, 135}, - dictWord{4, 0, 358}, - dictWord{135, 0, 1496}, - dictWord{134, 0, 567}, - dictWord{136, 0, 445}, - dictWord{ - 4, - 10, - 117, - }, - dictWord{6, 10, 372}, - dictWord{7, 10, 1905}, - dictWord{142, 10, 323}, - dictWord{4, 10, 722}, - dictWord{139, 10, 471}, - dictWord{6, 0, 697}, - dictWord{ - 134, - 0, - 996, - }, - dictWord{7, 11, 2007}, - dictWord{9, 11, 101}, - dictWord{9, 11, 450}, - dictWord{10, 11, 66}, - dictWord{10, 11, 842}, - dictWord{11, 11, 536}, - dictWord{ - 140, - 11, - 587, - }, - dictWord{132, 0, 577}, - dictWord{134, 0, 1336}, - dictWord{9, 10, 5}, - dictWord{12, 10, 216}, - dictWord{12, 10, 294}, - dictWord{12, 10, 298}, - dictWord{12, 10, 400}, - dictWord{12, 10, 518}, - dictWord{13, 10, 229}, - dictWord{143, 10, 139}, - dictWord{6, 0, 174}, - dictWord{138, 0, 917}, - dictWord{ - 134, - 10, - 1774, - }, - dictWord{5, 10, 12}, - dictWord{7, 10, 375}, - dictWord{9, 10, 88}, - dictWord{9, 10, 438}, - dictWord{11, 11, 62}, - dictWord{139, 10, 270}, - dictWord{ - 134, - 11, - 1766, - }, - dictWord{6, 11, 0}, - dictWord{7, 11, 84}, - dictWord{7, 10, 816}, - dictWord{7, 10, 1241}, - dictWord{9, 10, 283}, - dictWord{9, 10, 520}, - dictWord{10, 10, 213}, - dictWord{10, 10, 307}, - dictWord{10, 10, 463}, - dictWord{10, 10, 671}, - dictWord{10, 10, 746}, - dictWord{11, 10, 401}, - dictWord{11, 10, 794}, - dictWord{ - 11, - 11, - 895, - }, - dictWord{12, 10, 517}, - dictWord{17, 11, 11}, - dictWord{18, 10, 107}, - dictWord{147, 10, 115}, - dictWord{5, 0, 878}, - dictWord{133, 0, 972}, - dictWord{ - 6, - 11, - 1665, - }, - dictWord{7, 11, 256}, - dictWord{7, 11, 1388}, - dictWord{138, 11, 499}, - dictWord{4, 10, 258}, - dictWord{136, 10, 639}, - dictWord{4, 11, 22}, - dictWord{5, 11, 10}, - dictWord{6, 10, 22}, - dictWord{7, 11, 848}, - dictWord{7, 10, 903}, - dictWord{7, 10, 1963}, - dictWord{8, 11, 97}, - dictWord{138, 10, 577}, - dictWord{ - 5, - 10, - 681, - }, - dictWord{136, 10, 782}, - dictWord{133, 11, 481}, - dictWord{132, 0, 351}, - dictWord{4, 10, 664}, - dictWord{5, 10, 804}, - dictWord{139, 10, 1013}, - dictWord{6, 11, 134}, - dictWord{7, 11, 437}, - dictWord{7, 11, 959}, - dictWord{9, 11, 37}, - dictWord{14, 11, 285}, - dictWord{14, 11, 371}, - dictWord{144, 11, 60}, - dictWord{7, 11, 486}, - dictWord{8, 11, 155}, - dictWord{11, 11, 93}, - dictWord{140, 11, 164}, - dictWord{132, 0, 286}, - dictWord{7, 0, 438}, - dictWord{7, 0, 627}, - dictWord{7, 0, 1516}, - dictWord{8, 0, 40}, - dictWord{9, 0, 56}, - dictWord{9, 0, 294}, - dictWord{10, 0, 30}, - dictWord{11, 0, 969}, - dictWord{11, 0, 995}, - dictWord{146, 0, 148}, - dictWord{5, 11, 591}, - dictWord{135, 11, 337}, - dictWord{134, 0, 1950}, - dictWord{133, 10, 32}, - dictWord{138, 11, 500}, - dictWord{5, 11, 380}, - dictWord{ - 5, - 11, - 650, - }, - dictWord{136, 11, 310}, - dictWord{4, 11, 364}, - dictWord{7, 11, 1156}, - dictWord{7, 11, 1187}, - dictWord{137, 11, 409}, - dictWord{4, 0, 738}, - dictWord{134, 11, 482}, - dictWord{4, 11, 781}, - dictWord{6, 11, 487}, - dictWord{7, 11, 926}, - dictWord{8, 11, 263}, - dictWord{139, 11, 500}, - dictWord{135, 11, 418}, - dictWord{6, 0, 2047}, - dictWord{10, 0, 969}, - dictWord{4, 10, 289}, - dictWord{7, 10, 629}, - dictWord{7, 10, 1698}, - dictWord{7, 10, 1711}, - dictWord{ - 140, - 10, - 215, - }, - dictWord{6, 10, 450}, - dictWord{136, 10, 109}, - dictWord{134, 0, 818}, - dictWord{136, 10, 705}, - dictWord{133, 0, 866}, - dictWord{4, 11, 94}, - dictWord{ - 135, - 11, - 1265, - }, - dictWord{132, 11, 417}, - dictWord{134, 0, 1467}, - dictWord{135, 10, 1238}, - dictWord{4, 0, 972}, - dictWord{6, 0, 1851}, - dictWord{ - 134, - 0, - 1857, - }, - dictWord{134, 0, 355}, - dictWord{133, 0, 116}, - dictWord{132, 0, 457}, - dictWord{135, 11, 1411}, - dictWord{4, 11, 408}, - dictWord{4, 11, 741}, - dictWord{135, 11, 500}, - dictWord{134, 10, 26}, - dictWord{142, 11, 137}, - dictWord{5, 0, 527}, - dictWord{6, 0, 189}, - dictWord{7, 0, 859}, - dictWord{136, 0, 267}, - dictWord{11, 0, 104}, - dictWord{11, 0, 554}, - dictWord{15, 0, 60}, - dictWord{143, 0, 125}, - dictWord{134, 0, 1613}, - dictWord{4, 10, 414}, - dictWord{5, 10, 467}, - dictWord{ - 9, - 10, - 654, - }, - dictWord{10, 10, 451}, - dictWord{12, 10, 59}, - dictWord{141, 10, 375}, - dictWord{135, 10, 17}, - dictWord{134, 0, 116}, - dictWord{135, 11, 541}, - dictWord{135, 10, 955}, - dictWord{6, 11, 73}, - dictWord{135, 11, 177}, - dictWord{133, 11, 576}, - dictWord{134, 0, 886}, - dictWord{133, 0, 487}, - dictWord{ - 4, - 0, - 86, - }, - dictWord{5, 0, 667}, - dictWord{5, 0, 753}, - dictWord{6, 0, 316}, - dictWord{6, 0, 455}, - dictWord{135, 0, 946}, - dictWord{142, 11, 231}, - dictWord{150, 0, 45}, - dictWord{134, 0, 863}, - dictWord{134, 0, 1953}, - dictWord{6, 10, 280}, - dictWord{10, 10, 502}, - dictWord{11, 10, 344}, - dictWord{140, 10, 38}, - dictWord{4, 0, 79}, - dictWord{7, 0, 1773}, - dictWord{10, 0, 450}, - dictWord{11, 0, 589}, - dictWord{13, 0, 332}, - dictWord{13, 0, 493}, - dictWord{14, 0, 183}, - dictWord{14, 0, 334}, - dictWord{14, 0, 362}, - dictWord{14, 0, 368}, - dictWord{14, 0, 376}, - dictWord{14, 0, 379}, - dictWord{19, 0, 90}, - dictWord{19, 0, 103}, - dictWord{19, 0, 127}, - dictWord{ - 148, - 0, - 90, - }, - dictWord{5, 10, 45}, - dictWord{7, 10, 1161}, - dictWord{11, 10, 448}, - dictWord{11, 10, 880}, - dictWord{13, 10, 139}, - dictWord{13, 10, 407}, - dictWord{ - 15, - 10, - 16, - }, - dictWord{17, 10, 95}, - dictWord{18, 10, 66}, - dictWord{18, 10, 88}, - dictWord{18, 10, 123}, - dictWord{149, 10, 7}, - dictWord{136, 10, 777}, - dictWord{ - 4, - 10, - 410, - }, - dictWord{135, 10, 521}, - dictWord{135, 10, 1778}, - dictWord{135, 11, 538}, - dictWord{142, 0, 381}, - dictWord{133, 11, 413}, - dictWord{ - 134, - 0, - 1142, - }, - dictWord{6, 0, 1189}, - dictWord{136, 11, 495}, - dictWord{5, 0, 663}, - dictWord{6, 0, 1962}, - dictWord{134, 0, 2003}, - dictWord{7, 11, 54}, - dictWord{ - 8, - 11, - 312, - }, - dictWord{10, 11, 191}, - dictWord{10, 11, 614}, - dictWord{140, 11, 567}, - dictWord{132, 10, 436}, - dictWord{133, 0, 846}, - dictWord{10, 0, 528}, - dictWord{11, 0, 504}, - dictWord{7, 10, 1587}, - dictWord{135, 10, 1707}, - dictWord{5, 0, 378}, - dictWord{8, 0, 465}, - dictWord{9, 0, 286}, - dictWord{10, 0, 185}, - dictWord{ - 10, - 0, - 562, - }, - dictWord{10, 0, 635}, - dictWord{11, 0, 31}, - dictWord{11, 0, 393}, - dictWord{13, 0, 312}, - dictWord{18, 0, 65}, - dictWord{18, 0, 96}, - dictWord{147, 0, 89}, - dictWord{7, 0, 899}, - dictWord{14, 0, 325}, - dictWord{6, 11, 468}, - dictWord{7, 11, 567}, - dictWord{7, 11, 1478}, - dictWord{8, 11, 530}, - dictWord{142, 11, 290}, - dictWord{7, 0, 1880}, - dictWord{9, 0, 680}, - dictWord{139, 0, 798}, - dictWord{134, 0, 1770}, - dictWord{132, 0, 648}, - dictWord{150, 11, 35}, - dictWord{5, 0, 945}, - dictWord{6, 0, 1656}, - dictWord{6, 0, 1787}, - dictWord{7, 0, 167}, - dictWord{8, 0, 824}, - dictWord{9, 0, 391}, - dictWord{10, 0, 375}, - dictWord{139, 0, 185}, - dictWord{ - 6, - 11, - 484, - }, - dictWord{135, 11, 822}, - dictWord{134, 0, 2046}, - dictWord{7, 0, 1645}, - dictWord{8, 0, 352}, - dictWord{137, 0, 249}, - dictWord{132, 0, 152}, - dictWord{6, 0, 611}, - dictWord{135, 0, 1733}, - dictWord{6, 11, 1724}, - dictWord{135, 11, 2022}, - dictWord{133, 0, 1006}, - dictWord{141, 11, 96}, - dictWord{ - 5, - 0, - 420, - }, - dictWord{135, 0, 1449}, - dictWord{146, 11, 149}, - dictWord{135, 0, 832}, - dictWord{135, 10, 663}, - dictWord{133, 0, 351}, - dictWord{5, 0, 40}, - dictWord{ - 7, - 0, - 598, - }, - dictWord{7, 0, 1638}, - dictWord{8, 0, 78}, - dictWord{9, 0, 166}, - dictWord{9, 0, 640}, - dictWord{9, 0, 685}, - dictWord{9, 0, 773}, - dictWord{11, 0, 215}, - dictWord{13, 0, 65}, - dictWord{14, 0, 172}, - dictWord{14, 0, 317}, - dictWord{145, 0, 6}, - dictWord{8, 0, 60}, - dictWord{9, 0, 343}, - dictWord{139, 0, 769}, - dictWord{ - 134, - 0, - 1354, - }, - dictWord{132, 0, 724}, - dictWord{137, 0, 745}, - dictWord{132, 11, 474}, - dictWord{7, 0, 1951}, - dictWord{8, 0, 765}, - dictWord{8, 0, 772}, - dictWord{ - 140, - 0, - 671, - }, - dictWord{7, 0, 108}, - dictWord{8, 0, 219}, - dictWord{8, 0, 388}, - dictWord{9, 0, 775}, - dictWord{11, 0, 275}, - dictWord{140, 0, 464}, - dictWord{137, 0, 639}, - dictWord{135, 10, 503}, - dictWord{133, 11, 366}, - dictWord{5, 0, 15}, - dictWord{6, 0, 56}, - dictWord{7, 0, 1758}, - dictWord{8, 0, 500}, - dictWord{9, 0, 730}, - dictWord{ - 11, - 0, - 331, - }, - dictWord{13, 0, 150}, - dictWord{14, 0, 282}, - dictWord{5, 11, 305}, - dictWord{9, 11, 560}, - dictWord{141, 11, 208}, - dictWord{4, 10, 113}, - dictWord{ - 5, - 10, - 163, - }, - dictWord{5, 10, 735}, - dictWord{7, 10, 1009}, - dictWord{9, 10, 9}, - dictWord{9, 10, 771}, - dictWord{12, 10, 90}, - dictWord{13, 10, 138}, - dictWord{ - 13, - 10, - 410, - }, - dictWord{143, 10, 128}, - dictWord{4, 10, 324}, - dictWord{138, 10, 104}, - dictWord{135, 11, 466}, - dictWord{142, 11, 27}, - dictWord{134, 0, 1886}, - dictWord{5, 0, 205}, - dictWord{6, 0, 438}, - dictWord{9, 0, 711}, - dictWord{4, 11, 480}, - dictWord{6, 11, 167}, - dictWord{6, 11, 302}, - dictWord{6, 11, 1642}, - dictWord{ - 7, - 11, - 130, - }, - dictWord{7, 11, 656}, - dictWord{7, 11, 837}, - dictWord{7, 11, 1547}, - dictWord{7, 11, 1657}, - dictWord{8, 11, 429}, - dictWord{9, 11, 228}, - dictWord{ - 10, - 11, - 643, - }, - dictWord{13, 11, 289}, - dictWord{13, 11, 343}, - dictWord{147, 11, 101}, - dictWord{134, 0, 865}, - dictWord{6, 0, 2025}, - dictWord{136, 0, 965}, - dictWord{ - 7, - 11, - 278, - }, - dictWord{10, 11, 739}, - dictWord{11, 11, 708}, - dictWord{141, 11, 348}, - dictWord{133, 0, 534}, - dictWord{135, 11, 1922}, - dictWord{ - 137, - 0, - 691, - }, - dictWord{4, 10, 935}, - dictWord{133, 10, 823}, - dictWord{6, 0, 443}, - dictWord{9, 0, 237}, - dictWord{9, 0, 571}, - dictWord{9, 0, 695}, - dictWord{10, 0, 139}, - dictWord{11, 0, 715}, - dictWord{12, 0, 417}, - dictWord{141, 0, 421}, - dictWord{5, 10, 269}, - dictWord{7, 10, 434}, - dictWord{7, 10, 891}, - dictWord{8, 10, 339}, - dictWord{ - 9, - 10, - 702, - }, - dictWord{11, 10, 594}, - dictWord{11, 10, 718}, - dictWord{145, 10, 100}, - dictWord{6, 0, 1555}, - dictWord{7, 0, 878}, - dictWord{9, 10, 485}, - dictWord{141, 10, 264}, - dictWord{134, 10, 1713}, - dictWord{7, 10, 1810}, - dictWord{11, 10, 866}, - dictWord{12, 10, 103}, - dictWord{141, 10, 495}, - dictWord{ - 135, - 10, - 900, - }, - dictWord{6, 0, 1410}, - dictWord{9, 11, 316}, - dictWord{139, 11, 256}, - dictWord{4, 0, 995}, - dictWord{135, 0, 1033}, - dictWord{132, 0, 578}, - dictWord{10, 0, 881}, - dictWord{12, 0, 740}, - dictWord{12, 0, 743}, - dictWord{140, 0, 759}, - dictWord{132, 0, 822}, - dictWord{133, 0, 923}, - dictWord{142, 10, 143}, - dictWord{135, 11, 1696}, - dictWord{6, 11, 363}, - dictWord{7, 11, 1955}, - dictWord{136, 11, 725}, - dictWord{132, 0, 924}, - dictWord{133, 0, 665}, - dictWord{ - 135, - 10, - 2029, - }, - dictWord{135, 0, 1901}, - dictWord{4, 0, 265}, - dictWord{6, 0, 1092}, - dictWord{6, 0, 1417}, - dictWord{7, 0, 807}, - dictWord{135, 0, 950}, - dictWord{ - 5, - 0, - 93, - }, - dictWord{12, 0, 267}, - dictWord{141, 0, 498}, - dictWord{135, 0, 1451}, - dictWord{5, 11, 813}, - dictWord{135, 11, 2046}, - dictWord{5, 10, 625}, - dictWord{135, 10, 1617}, - dictWord{135, 0, 747}, - dictWord{6, 0, 788}, - dictWord{137, 0, 828}, - dictWord{7, 0, 184}, - dictWord{11, 0, 307}, - dictWord{11, 0, 400}, - dictWord{15, 0, 130}, - dictWord{5, 11, 712}, - dictWord{7, 11, 1855}, - dictWord{8, 10, 425}, - dictWord{8, 10, 693}, - dictWord{9, 10, 720}, - dictWord{10, 10, 380}, - dictWord{10, 10, 638}, - dictWord{11, 11, 17}, - dictWord{11, 10, 473}, - dictWord{12, 10, 61}, - dictWord{13, 11, 321}, - dictWord{144, 11, 67}, - dictWord{135, 0, 198}, - dictWord{6, 11, 320}, - dictWord{7, 11, 781}, - dictWord{7, 11, 1921}, - dictWord{9, 11, 55}, - dictWord{10, 11, 186}, - dictWord{10, 11, 273}, - dictWord{10, 11, 664}, - dictWord{10, 11, 801}, - dictWord{11, 11, 996}, - dictWord{11, 11, 997}, - dictWord{13, 11, 157}, - dictWord{142, 11, 170}, - dictWord{136, 11, 271}, - dictWord{ - 135, - 0, - 994, - }, - dictWord{7, 11, 103}, - dictWord{7, 11, 863}, - dictWord{11, 11, 184}, - dictWord{14, 11, 299}, - dictWord{145, 11, 62}, - dictWord{11, 10, 551}, - dictWord{142, 10, 159}, - dictWord{5, 0, 233}, - dictWord{5, 0, 320}, - dictWord{6, 0, 140}, - dictWord{8, 0, 295}, - dictWord{8, 0, 615}, - dictWord{136, 11, 615}, - dictWord{ - 133, - 0, - 978, - }, - dictWord{4, 0, 905}, - dictWord{6, 0, 1701}, - dictWord{137, 0, 843}, - dictWord{132, 10, 168}, - dictWord{4, 0, 974}, - dictWord{8, 0, 850}, - dictWord{ - 12, - 0, - 709, - }, - dictWord{12, 0, 768}, - dictWord{140, 0, 786}, - dictWord{135, 10, 91}, - dictWord{152, 0, 6}, - dictWord{138, 10, 532}, - dictWord{135, 10, 1884}, - dictWord{132, 0, 509}, - dictWord{6, 0, 1307}, - dictWord{135, 0, 273}, - dictWord{5, 11, 77}, - dictWord{7, 11, 1455}, - dictWord{10, 11, 843}, - dictWord{19, 11, 73}, - dictWord{150, 11, 5}, - dictWord{132, 11, 458}, - dictWord{135, 11, 1420}, - dictWord{6, 11, 109}, - dictWord{138, 11, 382}, - dictWord{6, 0, 201}, - dictWord{6, 11, 330}, - dictWord{7, 10, 70}, - dictWord{7, 11, 1084}, - dictWord{10, 10, 240}, - dictWord{11, 11, 142}, - dictWord{147, 10, 93}, - dictWord{7, 0, 1041}, - dictWord{ - 140, - 11, - 328, - }, - dictWord{133, 11, 354}, - dictWord{134, 0, 1040}, - dictWord{133, 0, 693}, - dictWord{134, 0, 774}, - dictWord{139, 0, 234}, - dictWord{132, 0, 336}, - dictWord{7, 0, 1399}, - dictWord{139, 10, 392}, - dictWord{20, 0, 22}, - dictWord{148, 11, 22}, - dictWord{5, 0, 802}, - dictWord{7, 0, 2021}, - dictWord{136, 0, 805}, - dictWord{ - 5, - 0, - 167, - }, - dictWord{5, 0, 899}, - dictWord{6, 0, 410}, - dictWord{137, 0, 777}, - dictWord{137, 0, 789}, - dictWord{134, 0, 1705}, - dictWord{7, 10, 655}, - dictWord{ - 135, - 10, - 1844, - }, - dictWord{4, 10, 145}, - dictWord{6, 10, 176}, - dictWord{7, 10, 395}, - dictWord{137, 10, 562}, - dictWord{132, 10, 501}, - dictWord{135, 0, 10}, - dictWord{5, 0, 11}, - dictWord{6, 0, 117}, - dictWord{6, 0, 485}, - dictWord{7, 0, 1133}, - dictWord{9, 0, 582}, - dictWord{9, 0, 594}, - dictWord{10, 0, 82}, - dictWord{11, 0, 21}, - dictWord{11, 0, 818}, - dictWord{12, 0, 535}, - dictWord{13, 0, 86}, - dictWord{20, 0, 91}, - dictWord{23, 0, 13}, - dictWord{134, 10, 509}, - dictWord{4, 0, 264}, - dictWord{ - 7, - 0, - 1067, - }, - dictWord{8, 0, 204}, - dictWord{8, 0, 385}, - dictWord{139, 0, 953}, - dictWord{139, 11, 737}, - dictWord{138, 0, 56}, - dictWord{134, 0, 1917}, - dictWord{ - 133, - 0, - 470, - }, - dictWord{10, 11, 657}, - dictWord{14, 11, 297}, - dictWord{142, 11, 361}, - dictWord{135, 11, 412}, - dictWord{7, 0, 1198}, - dictWord{7, 11, 1198}, - dictWord{8, 11, 556}, - dictWord{14, 11, 123}, - dictWord{14, 11, 192}, - dictWord{143, 11, 27}, - dictWord{7, 11, 1985}, - dictWord{14, 11, 146}, - dictWord{15, 11, 42}, - dictWord{16, 11, 23}, - dictWord{17, 11, 86}, - dictWord{146, 11, 17}, - dictWord{11, 0, 1015}, - dictWord{136, 11, 122}, - dictWord{4, 10, 114}, - dictWord{ - 9, - 10, - 492, - }, - dictWord{13, 10, 462}, - dictWord{142, 10, 215}, - dictWord{4, 10, 77}, - dictWord{5, 10, 361}, - dictWord{6, 10, 139}, - dictWord{6, 10, 401}, - dictWord{ - 6, - 10, - 404, - }, - dictWord{7, 10, 413}, - dictWord{7, 10, 715}, - dictWord{7, 10, 1716}, - dictWord{11, 10, 279}, - dictWord{12, 10, 179}, - dictWord{12, 10, 258}, - dictWord{ - 13, - 10, - 244, - }, - dictWord{142, 10, 358}, - dictWord{134, 10, 1717}, - dictWord{7, 10, 1061}, - dictWord{8, 10, 82}, - dictWord{11, 10, 250}, - dictWord{12, 10, 420}, - dictWord{141, 10, 184}, - dictWord{133, 0, 715}, - dictWord{135, 10, 724}, - dictWord{9, 0, 919}, - dictWord{9, 0, 922}, - dictWord{9, 0, 927}, - dictWord{9, 0, 933}, - dictWord{9, 0, 962}, - dictWord{9, 0, 1000}, - dictWord{9, 0, 1002}, - dictWord{9, 0, 1021}, - dictWord{12, 0, 890}, - dictWord{12, 0, 907}, - dictWord{12, 0, 930}, - dictWord{ - 15, - 0, - 207, - }, - dictWord{15, 0, 228}, - dictWord{15, 0, 238}, - dictWord{149, 0, 61}, - dictWord{8, 0, 794}, - dictWord{9, 0, 400}, - dictWord{10, 0, 298}, - dictWord{142, 0, 228}, - dictWord{5, 11, 430}, - dictWord{5, 11, 932}, - dictWord{6, 11, 131}, - dictWord{7, 11, 417}, - dictWord{9, 11, 522}, - dictWord{11, 11, 314}, - dictWord{141, 11, 390}, - dictWord{132, 0, 867}, - dictWord{8, 0, 724}, - dictWord{132, 11, 507}, - dictWord{137, 11, 261}, - dictWord{4, 11, 343}, - dictWord{133, 11, 511}, - dictWord{ - 6, - 0, - 190, - }, - dictWord{7, 0, 768}, - dictWord{135, 0, 1170}, - dictWord{6, 10, 513}, - dictWord{135, 10, 1052}, - dictWord{7, 11, 455}, - dictWord{138, 11, 591}, - dictWord{134, 0, 1066}, - dictWord{137, 10, 899}, - dictWord{14, 0, 67}, - dictWord{147, 0, 60}, - dictWord{4, 0, 948}, - dictWord{18, 0, 174}, - dictWord{146, 0, 176}, - dictWord{135, 0, 1023}, - dictWord{7, 10, 1417}, - dictWord{12, 10, 382}, - dictWord{17, 10, 48}, - dictWord{152, 10, 12}, - dictWord{134, 11, 575}, - dictWord{ - 132, - 0, - 764, - }, - dictWord{6, 10, 545}, - dictWord{7, 10, 565}, - dictWord{7, 10, 1669}, - dictWord{10, 10, 114}, - dictWord{11, 10, 642}, - dictWord{140, 10, 618}, - dictWord{ - 6, - 0, - 137, - }, - dictWord{9, 0, 75}, - dictWord{9, 0, 253}, - dictWord{10, 0, 194}, - dictWord{138, 0, 444}, - dictWord{4, 0, 756}, - dictWord{133, 10, 5}, - dictWord{8, 0, 1008}, - dictWord{135, 10, 192}, - dictWord{132, 0, 842}, - dictWord{11, 0, 643}, - dictWord{12, 0, 115}, - dictWord{136, 10, 763}, - dictWord{139, 0, 67}, - dictWord{ - 133, - 10, - 759, - }, - dictWord{4, 0, 821}, - dictWord{5, 0, 760}, - dictWord{7, 0, 542}, - dictWord{8, 0, 135}, - dictWord{8, 0, 496}, - dictWord{135, 11, 580}, - dictWord{7, 10, 370}, - dictWord{7, 10, 1007}, - dictWord{7, 10, 1177}, - dictWord{135, 10, 1565}, - dictWord{135, 10, 1237}, - dictWord{140, 0, 736}, - dictWord{7, 0, 319}, - dictWord{ - 7, - 0, - 355, - }, - dictWord{7, 0, 763}, - dictWord{10, 0, 389}, - dictWord{145, 0, 43}, - dictWord{8, 11, 333}, - dictWord{138, 11, 182}, - dictWord{4, 10, 87}, - dictWord{5, 10, 250}, - dictWord{141, 10, 298}, - dictWord{138, 0, 786}, - dictWord{134, 0, 2044}, - dictWord{8, 11, 330}, - dictWord{140, 11, 477}, - dictWord{135, 11, 1338}, - dictWord{132, 11, 125}, - dictWord{134, 0, 1030}, - dictWord{134, 0, 1083}, - dictWord{132, 11, 721}, - dictWord{135, 10, 814}, - dictWord{7, 11, 776}, - dictWord{ - 8, - 11, - 145, - }, - dictWord{147, 11, 56}, - dictWord{134, 0, 1226}, - dictWord{4, 10, 57}, - dictWord{7, 10, 1195}, - dictWord{7, 10, 1438}, - dictWord{7, 10, 1548}, - dictWord{ - 7, - 10, - 1835, - }, - dictWord{7, 10, 1904}, - dictWord{9, 10, 757}, - dictWord{10, 10, 604}, - dictWord{139, 10, 519}, - dictWord{7, 11, 792}, - dictWord{8, 11, 147}, - dictWord{10, 11, 821}, - dictWord{139, 11, 1021}, - dictWord{137, 11, 797}, - dictWord{4, 0, 58}, - dictWord{5, 0, 286}, - dictWord{6, 0, 319}, - dictWord{7, 0, 402}, - dictWord{ - 7, - 0, - 1254, - }, - dictWord{7, 0, 1903}, - dictWord{8, 0, 356}, - dictWord{140, 0, 408}, - dictWord{4, 0, 389}, - dictWord{4, 0, 815}, - dictWord{9, 0, 181}, - dictWord{9, 0, 255}, - dictWord{10, 0, 8}, - dictWord{10, 0, 29}, - dictWord{10, 0, 816}, - dictWord{11, 0, 311}, - dictWord{11, 0, 561}, - dictWord{12, 0, 67}, - dictWord{141, 0, 181}, - dictWord{ - 7, - 11, - 1472, - }, - dictWord{135, 11, 1554}, - dictWord{7, 11, 1071}, - dictWord{7, 11, 1541}, - dictWord{7, 11, 1767}, - dictWord{7, 11, 1806}, - dictWord{7, 11, 1999}, - dictWord{9, 11, 248}, - dictWord{10, 11, 400}, - dictWord{11, 11, 162}, - dictWord{11, 11, 178}, - dictWord{11, 11, 242}, - dictWord{12, 11, 605}, - dictWord{ - 15, - 11, - 26, - }, - dictWord{144, 11, 44}, - dictWord{5, 11, 168}, - dictWord{5, 11, 930}, - dictWord{8, 11, 74}, - dictWord{9, 11, 623}, - dictWord{12, 11, 500}, - dictWord{ - 12, - 11, - 579, - }, - dictWord{13, 11, 41}, - dictWord{143, 11, 93}, - dictWord{6, 11, 220}, - dictWord{7, 11, 1101}, - dictWord{141, 11, 105}, - dictWord{5, 0, 474}, - dictWord{ - 7, - 0, - 507, - }, - dictWord{4, 10, 209}, - dictWord{7, 11, 507}, - dictWord{135, 10, 902}, - dictWord{132, 0, 427}, - dictWord{6, 0, 413}, - dictWord{7, 10, 335}, - dictWord{ - 7, - 10, - 1437, - }, - dictWord{7, 10, 1668}, - dictWord{8, 10, 553}, - dictWord{8, 10, 652}, - dictWord{8, 10, 656}, - dictWord{9, 10, 558}, - dictWord{11, 10, 743}, - dictWord{ - 149, - 10, - 18, - }, - dictWord{132, 0, 730}, - dictWord{6, 11, 19}, - dictWord{7, 11, 1413}, - dictWord{139, 11, 428}, - dictWord{133, 0, 373}, - dictWord{132, 10, 559}, - dictWord{7, 11, 96}, - dictWord{8, 11, 401}, - dictWord{137, 11, 896}, - dictWord{7, 0, 799}, - dictWord{7, 0, 1972}, - dictWord{5, 10, 1017}, - dictWord{138, 10, 511}, - dictWord{135, 0, 1793}, - dictWord{7, 11, 1961}, - dictWord{7, 11, 1965}, - dictWord{8, 11, 702}, - dictWord{136, 11, 750}, - dictWord{8, 11, 150}, - dictWord{8, 11, 737}, - dictWord{140, 11, 366}, - dictWord{132, 0, 322}, - dictWord{133, 10, 709}, - dictWord{8, 11, 800}, - dictWord{9, 11, 148}, - dictWord{9, 11, 872}, - dictWord{ - 9, - 11, - 890, - }, - dictWord{11, 11, 309}, - dictWord{11, 11, 1001}, - dictWord{13, 11, 267}, - dictWord{141, 11, 323}, - dictWord{134, 10, 1745}, - dictWord{7, 0, 290}, - dictWord{136, 10, 206}, - dictWord{7, 0, 1651}, - dictWord{145, 0, 89}, - dictWord{139, 0, 2}, - dictWord{132, 0, 672}, - dictWord{6, 0, 1860}, - dictWord{8, 0, 905}, - dictWord{ - 10, - 0, - 844, - }, - dictWord{10, 0, 846}, - dictWord{10, 0, 858}, - dictWord{12, 0, 699}, - dictWord{12, 0, 746}, - dictWord{140, 0, 772}, - dictWord{135, 11, 424}, - dictWord{133, 11, 547}, - dictWord{133, 0, 737}, - dictWord{5, 11, 490}, - dictWord{6, 11, 615}, - dictWord{6, 11, 620}, - dictWord{135, 11, 683}, - dictWord{6, 0, 746}, - dictWord{134, 0, 1612}, - dictWord{132, 10, 776}, - dictWord{9, 11, 385}, - dictWord{149, 11, 17}, - dictWord{133, 0, 145}, - dictWord{135, 10, 1272}, - dictWord{ - 7, - 0, - 884, - }, - dictWord{140, 0, 124}, - dictWord{4, 0, 387}, - dictWord{135, 0, 1288}, - dictWord{5, 11, 133}, - dictWord{136, 10, 406}, - dictWord{136, 11, 187}, - dictWord{ - 6, - 0, - 679, - }, - dictWord{8, 11, 8}, - dictWord{138, 11, 0}, - dictWord{135, 0, 550}, - dictWord{135, 11, 798}, - dictWord{136, 11, 685}, - dictWord{7, 11, 1086}, - dictWord{145, 11, 46}, - dictWord{8, 10, 175}, - dictWord{10, 10, 168}, - dictWord{138, 10, 573}, - dictWord{135, 0, 1305}, - dictWord{4, 0, 576}, - dictWord{ - 135, - 0, - 1263, - }, - dictWord{6, 0, 686}, - dictWord{134, 0, 1563}, - dictWord{134, 0, 607}, - dictWord{5, 0, 919}, - dictWord{134, 0, 1673}, - dictWord{148, 0, 37}, - dictWord{ - 8, - 11, - 774, - }, - dictWord{10, 11, 670}, - dictWord{140, 11, 51}, - dictWord{133, 10, 784}, - dictWord{139, 10, 882}, - dictWord{4, 0, 82}, - dictWord{5, 0, 333}, - dictWord{ - 5, - 0, - 904, - }, - dictWord{6, 0, 207}, - dictWord{7, 0, 325}, - dictWord{7, 0, 1726}, - dictWord{8, 0, 101}, - dictWord{10, 0, 778}, - dictWord{139, 0, 220}, - dictWord{135, 11, 371}, - dictWord{132, 0, 958}, - dictWord{133, 0, 903}, - dictWord{4, 11, 127}, - dictWord{5, 11, 350}, - dictWord{6, 11, 356}, - dictWord{8, 11, 426}, - dictWord{9, 11, 572}, - dictWord{10, 11, 247}, - dictWord{139, 11, 312}, - dictWord{140, 0, 147}, - dictWord{6, 11, 59}, - dictWord{7, 11, 885}, - dictWord{9, 11, 603}, - dictWord{ - 141, - 11, - 397, - }, - dictWord{10, 0, 367}, - dictWord{9, 10, 14}, - dictWord{9, 10, 441}, - dictWord{139, 10, 9}, - dictWord{11, 10, 966}, - dictWord{12, 10, 287}, - dictWord{ - 13, - 10, - 342, - }, - dictWord{13, 10, 402}, - dictWord{15, 10, 110}, - dictWord{143, 10, 163}, - dictWord{134, 0, 690}, - dictWord{132, 0, 705}, - dictWord{9, 0, 651}, - dictWord{ - 11, - 0, - 971, - }, - dictWord{13, 0, 273}, - dictWord{7, 10, 1428}, - dictWord{7, 10, 1640}, - dictWord{7, 10, 1867}, - dictWord{9, 10, 169}, - dictWord{9, 10, 182}, - dictWord{ - 9, - 10, - 367, - }, - dictWord{9, 10, 478}, - dictWord{9, 10, 506}, - dictWord{9, 10, 551}, - dictWord{9, 10, 557}, - dictWord{9, 10, 648}, - dictWord{9, 10, 697}, - dictWord{ - 9, - 10, - 705, - }, - dictWord{9, 10, 725}, - dictWord{9, 10, 787}, - dictWord{9, 10, 794}, - dictWord{10, 10, 198}, - dictWord{10, 10, 214}, - dictWord{10, 10, 267}, - dictWord{ - 10, - 10, - 275, - }, - dictWord{10, 10, 456}, - dictWord{10, 10, 551}, - dictWord{10, 10, 561}, - dictWord{10, 10, 613}, - dictWord{10, 10, 627}, - dictWord{10, 10, 668}, - dictWord{10, 10, 675}, - dictWord{10, 10, 691}, - dictWord{10, 10, 695}, - dictWord{10, 10, 707}, - dictWord{10, 10, 715}, - dictWord{11, 10, 183}, - dictWord{ - 11, - 10, - 201, - }, - dictWord{11, 10, 262}, - dictWord{11, 10, 352}, - dictWord{11, 10, 439}, - dictWord{11, 10, 493}, - dictWord{11, 10, 572}, - dictWord{11, 10, 591}, - dictWord{ - 11, - 10, - 608, - }, - dictWord{11, 10, 611}, - dictWord{11, 10, 646}, - dictWord{11, 10, 674}, - dictWord{11, 10, 711}, - dictWord{11, 10, 751}, - dictWord{11, 10, 761}, - dictWord{11, 10, 776}, - dictWord{11, 10, 785}, - dictWord{11, 10, 850}, - dictWord{11, 10, 853}, - dictWord{11, 10, 862}, - dictWord{11, 10, 865}, - dictWord{ - 11, - 10, - 868, - }, - dictWord{11, 10, 875}, - dictWord{11, 10, 898}, - dictWord{11, 10, 902}, - dictWord{11, 10, 903}, - dictWord{11, 10, 910}, - dictWord{11, 10, 932}, - dictWord{ - 11, - 10, - 942, - }, - dictWord{11, 10, 957}, - dictWord{11, 10, 967}, - dictWord{11, 10, 972}, - dictWord{12, 10, 148}, - dictWord{12, 10, 195}, - dictWord{12, 10, 220}, - dictWord{12, 10, 237}, - dictWord{12, 10, 318}, - dictWord{12, 10, 339}, - dictWord{12, 10, 393}, - dictWord{12, 10, 445}, - dictWord{12, 10, 450}, - dictWord{ - 12, - 10, - 474, - }, - dictWord{12, 10, 505}, - dictWord{12, 10, 509}, - dictWord{12, 10, 533}, - dictWord{12, 10, 591}, - dictWord{12, 10, 594}, - dictWord{12, 10, 597}, - dictWord{ - 12, - 10, - 621, - }, - dictWord{12, 10, 633}, - dictWord{12, 10, 642}, - dictWord{13, 10, 59}, - dictWord{13, 10, 60}, - dictWord{13, 10, 145}, - dictWord{13, 10, 239}, - dictWord{13, 10, 250}, - dictWord{13, 10, 329}, - dictWord{13, 10, 344}, - dictWord{13, 10, 365}, - dictWord{13, 10, 372}, - dictWord{13, 10, 387}, - dictWord{ - 13, - 10, - 403, - }, - dictWord{13, 10, 414}, - dictWord{13, 10, 456}, - dictWord{13, 10, 470}, - dictWord{13, 10, 478}, - dictWord{13, 10, 483}, - dictWord{13, 10, 489}, - dictWord{ - 14, - 10, - 55, - }, - dictWord{14, 10, 57}, - dictWord{14, 10, 81}, - dictWord{14, 10, 90}, - dictWord{14, 10, 148}, - dictWord{14, 10, 239}, - dictWord{14, 10, 266}, - dictWord{ - 14, - 10, - 321, - }, - dictWord{14, 10, 326}, - dictWord{14, 10, 327}, - dictWord{14, 10, 330}, - dictWord{14, 10, 347}, - dictWord{14, 10, 355}, - dictWord{14, 10, 401}, - dictWord{14, 10, 404}, - dictWord{14, 10, 411}, - dictWord{14, 10, 414}, - dictWord{14, 10, 416}, - dictWord{14, 10, 420}, - dictWord{15, 10, 61}, - dictWord{ - 15, - 10, - 74, - }, - dictWord{15, 10, 87}, - dictWord{15, 10, 88}, - dictWord{15, 10, 94}, - dictWord{15, 10, 96}, - dictWord{15, 10, 116}, - dictWord{15, 10, 149}, - dictWord{ - 15, - 10, - 154, - }, - dictWord{16, 10, 50}, - dictWord{16, 10, 63}, - dictWord{16, 10, 73}, - dictWord{17, 10, 2}, - dictWord{17, 10, 66}, - dictWord{17, 10, 92}, - dictWord{17, 10, 103}, - dictWord{17, 10, 112}, - dictWord{17, 10, 120}, - dictWord{18, 10, 50}, - dictWord{18, 10, 54}, - dictWord{18, 10, 82}, - dictWord{18, 10, 86}, - dictWord{18, 10, 90}, - dictWord{18, 10, 111}, - dictWord{18, 10, 115}, - dictWord{18, 10, 156}, - dictWord{19, 10, 40}, - dictWord{19, 10, 79}, - dictWord{20, 10, 78}, - dictWord{149, 10, 22}, - dictWord{7, 0, 887}, - dictWord{5, 10, 161}, - dictWord{135, 10, 839}, - dictWord{142, 11, 98}, - dictWord{134, 0, 90}, - dictWord{138, 11, 356}, - dictWord{ - 135, - 11, - 441, - }, - dictWord{6, 11, 111}, - dictWord{7, 11, 4}, - dictWord{8, 11, 163}, - dictWord{8, 11, 776}, - dictWord{138, 11, 566}, - dictWord{134, 0, 908}, - dictWord{ - 134, - 0, - 1261, - }, - dictWord{7, 0, 813}, - dictWord{12, 0, 497}, - dictWord{141, 0, 56}, - dictWord{134, 0, 1235}, - dictWord{135, 0, 429}, - dictWord{135, 11, 1994}, - dictWord{138, 0, 904}, - dictWord{6, 0, 125}, - dictWord{7, 0, 1277}, - dictWord{137, 0, 772}, - dictWord{151, 0, 12}, - dictWord{4, 0, 841}, - dictWord{5, 0, 386}, - dictWord{ - 133, - 11, - 386, - }, - dictWord{5, 11, 297}, - dictWord{135, 11, 1038}, - dictWord{6, 0, 860}, - dictWord{6, 0, 1069}, - dictWord{135, 11, 309}, - dictWord{136, 0, 946}, - dictWord{135, 10, 1814}, - dictWord{141, 11, 418}, - dictWord{136, 11, 363}, - dictWord{10, 0, 768}, - dictWord{139, 0, 787}, - dictWord{22, 11, 30}, - dictWord{ - 150, - 11, - 33, - }, - dictWord{6, 0, 160}, - dictWord{7, 0, 1106}, - dictWord{9, 0, 770}, - dictWord{11, 0, 112}, - dictWord{140, 0, 413}, - dictWord{11, 11, 216}, - dictWord{ - 139, - 11, - 340, - }, - dictWord{136, 10, 139}, - dictWord{135, 11, 1390}, - dictWord{135, 11, 808}, - dictWord{132, 11, 280}, - dictWord{12, 0, 271}, - dictWord{17, 0, 109}, - dictWord{7, 10, 643}, - dictWord{136, 10, 236}, - dictWord{140, 11, 54}, - dictWord{4, 11, 421}, - dictWord{133, 11, 548}, - dictWord{11, 0, 719}, - dictWord{12, 0, 36}, - dictWord{141, 0, 337}, - dictWord{7, 0, 581}, - dictWord{9, 0, 644}, - dictWord{137, 0, 699}, - dictWord{11, 11, 511}, - dictWord{13, 11, 394}, - dictWord{14, 11, 298}, - dictWord{14, 11, 318}, - dictWord{146, 11, 103}, - dictWord{7, 0, 304}, - dictWord{9, 0, 646}, - dictWord{9, 0, 862}, - dictWord{11, 0, 696}, - dictWord{12, 0, 208}, - dictWord{15, 0, 79}, - dictWord{147, 0, 108}, - dictWord{4, 0, 631}, - dictWord{7, 0, 1126}, - dictWord{135, 0, 1536}, - dictWord{135, 11, 1527}, - dictWord{8, 0, 880}, - dictWord{10, 0, 869}, - dictWord{138, 0, 913}, - dictWord{7, 0, 1513}, - dictWord{5, 10, 54}, - dictWord{6, 11, 254}, - dictWord{9, 11, 109}, - dictWord{138, 11, 103}, - dictWord{135, 0, 981}, - dictWord{133, 11, 729}, - dictWord{132, 10, 744}, - dictWord{132, 0, 434}, - dictWord{134, 0, 550}, - dictWord{7, 0, 930}, - dictWord{10, 0, 476}, - dictWord{13, 0, 452}, - dictWord{19, 0, 104}, - dictWord{6, 11, 1630}, - dictWord{10, 10, 402}, - dictWord{146, 10, 55}, - dictWord{5, 0, 553}, - dictWord{138, 0, 824}, - dictWord{136, 0, 452}, - dictWord{8, 0, 151}, - dictWord{137, 10, 624}, - dictWord{132, 10, 572}, - dictWord{132, 0, 772}, - dictWord{133, 11, 671}, - dictWord{ - 133, - 0, - 292, - }, - dictWord{138, 0, 135}, - dictWord{132, 11, 889}, - dictWord{140, 11, 207}, - dictWord{9, 0, 504}, - dictWord{6, 10, 43}, - dictWord{7, 10, 38}, - dictWord{ - 8, - 10, - 248, - }, - dictWord{138, 10, 513}, - dictWord{6, 0, 1089}, - dictWord{135, 11, 1910}, - dictWord{4, 11, 627}, - dictWord{133, 11, 775}, - dictWord{135, 0, 783}, - dictWord{133, 10, 766}, - dictWord{133, 10, 363}, - dictWord{7, 0, 387}, - dictWord{135, 11, 387}, - dictWord{7, 0, 393}, - dictWord{10, 0, 603}, - dictWord{11, 0, 206}, - dictWord{7, 11, 202}, - dictWord{11, 11, 362}, - dictWord{11, 11, 948}, - dictWord{140, 11, 388}, - dictWord{6, 11, 507}, - dictWord{7, 11, 451}, - dictWord{8, 11, 389}, - dictWord{12, 11, 490}, - dictWord{13, 11, 16}, - dictWord{13, 11, 215}, - dictWord{13, 11, 351}, - dictWord{18, 11, 132}, - dictWord{147, 11, 125}, - dictWord{ - 4, - 0, - 912, - }, - dictWord{9, 0, 232}, - dictWord{135, 11, 841}, - dictWord{6, 10, 258}, - dictWord{140, 10, 409}, - dictWord{5, 10, 249}, - dictWord{148, 10, 82}, - dictWord{ - 136, - 11, - 566, - }, - dictWord{6, 0, 977}, - dictWord{135, 11, 1214}, - dictWord{7, 0, 1973}, - dictWord{136, 0, 716}, - dictWord{135, 0, 98}, - dictWord{133, 0, 733}, - dictWord{ - 5, - 11, - 912, - }, - dictWord{134, 11, 1695}, - dictWord{5, 10, 393}, - dictWord{6, 10, 378}, - dictWord{7, 10, 1981}, - dictWord{9, 10, 32}, - dictWord{9, 10, 591}, - dictWord{10, 10, 685}, - dictWord{10, 10, 741}, - dictWord{142, 10, 382}, - dictWord{133, 10, 788}, - dictWord{10, 0, 19}, - dictWord{11, 0, 911}, - dictWord{7, 10, 1968}, - dictWord{141, 10, 509}, - dictWord{5, 0, 668}, - dictWord{5, 11, 236}, - dictWord{6, 11, 572}, - dictWord{8, 11, 492}, - dictWord{11, 11, 618}, - dictWord{144, 11, 56}, - dictWord{135, 11, 1789}, - dictWord{4, 0, 360}, - dictWord{5, 0, 635}, - dictWord{5, 0, 700}, - dictWord{5, 10, 58}, - dictWord{5, 10, 171}, - dictWord{5, 10, 683}, - dictWord{ - 6, - 10, - 291, - }, - dictWord{6, 10, 566}, - dictWord{7, 10, 1650}, - dictWord{11, 10, 523}, - dictWord{12, 10, 273}, - dictWord{12, 10, 303}, - dictWord{15, 10, 39}, - dictWord{143, 10, 111}, - dictWord{133, 0, 901}, - dictWord{134, 10, 589}, - dictWord{5, 11, 190}, - dictWord{136, 11, 318}, - dictWord{140, 0, 656}, - dictWord{ - 7, - 0, - 726, - }, - dictWord{152, 0, 9}, - dictWord{4, 10, 917}, - dictWord{133, 10, 1005}, - dictWord{135, 10, 1598}, - dictWord{134, 11, 491}, - dictWord{4, 10, 919}, - dictWord{133, 11, 434}, - dictWord{137, 0, 72}, - dictWord{6, 0, 1269}, - dictWord{6, 0, 1566}, - dictWord{134, 0, 1621}, - dictWord{9, 0, 463}, - dictWord{10, 0, 595}, - dictWord{4, 10, 255}, - dictWord{5, 10, 302}, - dictWord{6, 10, 132}, - dictWord{7, 10, 128}, - dictWord{7, 10, 283}, - dictWord{7, 10, 1299}, - dictWord{10, 10, 52}, - dictWord{ - 10, - 10, - 514, - }, - dictWord{11, 10, 925}, - dictWord{13, 10, 92}, - dictWord{142, 10, 309}, - dictWord{135, 0, 1454}, - dictWord{134, 0, 1287}, - dictWord{11, 0, 600}, - dictWord{13, 0, 245}, - dictWord{137, 10, 173}, - dictWord{136, 0, 989}, - dictWord{7, 0, 164}, - dictWord{7, 0, 1571}, - dictWord{9, 0, 107}, - dictWord{140, 0, 225}, - dictWord{6, 0, 1061}, - dictWord{141, 10, 442}, - dictWord{4, 0, 27}, - dictWord{5, 0, 484}, - dictWord{5, 0, 510}, - dictWord{6, 0, 434}, - dictWord{7, 0, 1000}, - dictWord{ - 7, - 0, - 1098, - }, - dictWord{136, 0, 2}, - dictWord{7, 11, 85}, - dictWord{7, 11, 247}, - dictWord{8, 11, 585}, - dictWord{10, 11, 163}, - dictWord{138, 11, 316}, - dictWord{ - 11, - 11, - 103, - }, - dictWord{142, 11, 0}, - dictWord{134, 0, 1127}, - dictWord{4, 0, 460}, - dictWord{134, 0, 852}, - dictWord{134, 10, 210}, - dictWord{4, 0, 932}, - dictWord{ - 133, - 0, - 891, - }, - dictWord{6, 0, 588}, - dictWord{147, 11, 83}, - dictWord{8, 0, 625}, - dictWord{4, 10, 284}, - dictWord{134, 10, 223}, - dictWord{134, 0, 76}, - dictWord{8, 0, 92}, - dictWord{137, 0, 221}, - dictWord{4, 11, 124}, - dictWord{10, 11, 457}, - dictWord{11, 11, 121}, - dictWord{11, 11, 169}, - dictWord{11, 11, 422}, - dictWord{ - 11, - 11, - 870, - }, - dictWord{12, 11, 214}, - dictWord{13, 11, 389}, - dictWord{14, 11, 187}, - dictWord{143, 11, 77}, - dictWord{9, 11, 618}, - dictWord{138, 11, 482}, - dictWord{ - 4, - 10, - 218, - }, - dictWord{7, 10, 526}, - dictWord{143, 10, 137}, - dictWord{13, 0, 9}, - dictWord{14, 0, 104}, - dictWord{14, 0, 311}, - dictWord{4, 10, 270}, - dictWord{ - 5, - 10, - 192, - }, - dictWord{6, 10, 332}, - dictWord{135, 10, 1322}, - dictWord{140, 10, 661}, - dictWord{135, 11, 1193}, - dictWord{6, 11, 107}, - dictWord{7, 11, 638}, - dictWord{7, 11, 1632}, - dictWord{137, 11, 396}, - dictWord{132, 0, 763}, - dictWord{4, 0, 622}, - dictWord{5, 11, 370}, - dictWord{134, 11, 1756}, - dictWord{ - 133, - 0, - 253, - }, - dictWord{135, 0, 546}, - dictWord{9, 0, 73}, - dictWord{10, 0, 110}, - dictWord{14, 0, 185}, - dictWord{17, 0, 119}, - dictWord{133, 11, 204}, - dictWord{7, 0, 624}, - dictWord{7, 0, 916}, - dictWord{10, 0, 256}, - dictWord{139, 0, 87}, - dictWord{7, 10, 379}, - dictWord{8, 10, 481}, - dictWord{137, 10, 377}, - dictWord{5, 0, 212}, - dictWord{12, 0, 35}, - dictWord{13, 0, 382}, - dictWord{5, 11, 970}, - dictWord{134, 11, 1706}, - dictWord{9, 0, 746}, - dictWord{5, 10, 1003}, - dictWord{134, 10, 149}, - dictWord{10, 0, 150}, - dictWord{11, 0, 849}, - dictWord{13, 0, 330}, - dictWord{8, 10, 262}, - dictWord{9, 10, 627}, - dictWord{11, 10, 214}, - dictWord{11, 10, 404}, - dictWord{11, 10, 457}, - dictWord{11, 10, 780}, - dictWord{11, 10, 913}, - dictWord{13, 10, 401}, - dictWord{142, 10, 200}, - dictWord{134, 0, 1466}, - dictWord{ - 135, - 11, - 3, - }, - dictWord{6, 0, 1299}, - dictWord{4, 11, 35}, - dictWord{5, 11, 121}, - dictWord{5, 11, 483}, - dictWord{5, 11, 685}, - dictWord{6, 11, 489}, - dictWord{7, 11, 1204}, - dictWord{136, 11, 394}, - dictWord{135, 10, 742}, - dictWord{4, 10, 142}, - dictWord{136, 10, 304}, - dictWord{4, 11, 921}, - dictWord{133, 11, 1007}, - dictWord{ - 134, - 0, - 1518, - }, - dictWord{6, 0, 1229}, - dictWord{135, 0, 1175}, - dictWord{133, 0, 816}, - dictWord{12, 0, 159}, - dictWord{4, 10, 471}, - dictWord{4, 11, 712}, - dictWord{ - 5, - 10, - 51, - }, - dictWord{6, 10, 602}, - dictWord{7, 10, 925}, - dictWord{8, 10, 484}, - dictWord{138, 10, 195}, - dictWord{134, 11, 1629}, - dictWord{5, 0, 869}, - dictWord{ - 5, - 0, - 968, - }, - dictWord{6, 0, 1626}, - dictWord{8, 0, 734}, - dictWord{136, 0, 784}, - dictWord{4, 0, 542}, - dictWord{6, 0, 1716}, - dictWord{6, 0, 1727}, - dictWord{ - 7, - 0, - 1082, - }, - dictWord{7, 0, 1545}, - dictWord{8, 0, 56}, - dictWord{8, 0, 118}, - dictWord{8, 0, 412}, - dictWord{8, 0, 564}, - dictWord{9, 0, 888}, - dictWord{9, 0, 908}, - dictWord{ - 10, - 0, - 50, - }, - dictWord{10, 0, 423}, - dictWord{11, 0, 685}, - dictWord{11, 0, 697}, - dictWord{11, 0, 933}, - dictWord{12, 0, 299}, - dictWord{13, 0, 126}, - dictWord{ - 13, - 0, - 136, - }, - dictWord{13, 0, 170}, - dictWord{13, 0, 190}, - dictWord{136, 10, 688}, - dictWord{132, 10, 697}, - dictWord{4, 0, 232}, - dictWord{9, 0, 202}, - dictWord{ - 10, - 0, - 474, - }, - dictWord{140, 0, 433}, - dictWord{136, 0, 212}, - dictWord{6, 0, 108}, - dictWord{7, 0, 1003}, - dictWord{7, 0, 1181}, - dictWord{8, 0, 111}, - dictWord{ - 136, - 0, - 343, - }, - dictWord{5, 10, 221}, - dictWord{135, 11, 1255}, - dictWord{133, 11, 485}, - dictWord{134, 0, 1712}, - dictWord{142, 0, 216}, - dictWord{5, 0, 643}, - dictWord{ - 6, - 0, - 516, - }, - dictWord{4, 11, 285}, - dictWord{5, 11, 317}, - dictWord{6, 11, 301}, - dictWord{7, 11, 7}, - dictWord{8, 11, 153}, - dictWord{10, 11, 766}, - dictWord{ - 11, - 11, - 468, - }, - dictWord{12, 11, 467}, - dictWord{141, 11, 143}, - dictWord{4, 0, 133}, - dictWord{7, 0, 711}, - dictWord{7, 0, 1298}, - dictWord{135, 0, 1585}, - dictWord{ - 134, - 0, - 650, - }, - dictWord{135, 11, 512}, - dictWord{6, 0, 99}, - dictWord{7, 0, 1808}, - dictWord{145, 0, 57}, - dictWord{6, 0, 246}, - dictWord{6, 0, 574}, - dictWord{7, 0, 428}, - dictWord{9, 0, 793}, - dictWord{10, 0, 669}, - dictWord{11, 0, 485}, - dictWord{11, 0, 840}, - dictWord{12, 0, 300}, - dictWord{14, 0, 250}, - dictWord{145, 0, 55}, - dictWord{ - 4, - 10, - 132, - }, - dictWord{5, 10, 69}, - dictWord{135, 10, 1242}, - dictWord{136, 0, 1023}, - dictWord{7, 0, 302}, - dictWord{132, 10, 111}, - dictWord{135, 0, 1871}, - dictWord{132, 0, 728}, - dictWord{9, 0, 252}, - dictWord{132, 10, 767}, - dictWord{6, 0, 461}, - dictWord{7, 0, 1590}, - dictWord{7, 10, 1416}, - dictWord{7, 10, 2005}, - dictWord{8, 10, 131}, - dictWord{8, 10, 466}, - dictWord{9, 10, 672}, - dictWord{13, 10, 252}, - dictWord{148, 10, 103}, - dictWord{6, 0, 323}, - dictWord{135, 0, 1564}, - dictWord{7, 0, 461}, - dictWord{136, 0, 775}, - dictWord{6, 10, 44}, - dictWord{136, 10, 368}, - dictWord{139, 0, 172}, - dictWord{132, 0, 464}, - dictWord{4, 10, 570}, - dictWord{133, 10, 120}, - dictWord{137, 11, 269}, - dictWord{6, 10, 227}, - dictWord{135, 10, 1589}, - dictWord{6, 11, 1719}, - dictWord{6, 11, 1735}, - dictWord{ - 7, - 11, - 2016, - }, - dictWord{7, 11, 2020}, - dictWord{8, 11, 837}, - dictWord{137, 11, 852}, - dictWord{7, 0, 727}, - dictWord{146, 0, 73}, - dictWord{132, 0, 1023}, - dictWord{135, 11, 852}, - dictWord{135, 10, 1529}, - dictWord{136, 0, 577}, - dictWord{138, 11, 568}, - dictWord{134, 0, 1037}, - dictWord{8, 11, 67}, - dictWord{ - 138, - 11, - 419, - }, - dictWord{4, 0, 413}, - dictWord{5, 0, 677}, - dictWord{8, 0, 432}, - dictWord{140, 0, 280}, - dictWord{10, 0, 600}, - dictWord{6, 10, 1667}, - dictWord{ - 7, - 11, - 967, - }, - dictWord{7, 10, 2036}, - dictWord{141, 11, 11}, - dictWord{6, 10, 511}, - dictWord{140, 10, 132}, - dictWord{6, 0, 799}, - dictWord{5, 10, 568}, - dictWord{ - 6, - 10, - 138, - }, - dictWord{135, 10, 1293}, - dictWord{8, 0, 159}, - dictWord{4, 10, 565}, - dictWord{136, 10, 827}, - dictWord{7, 0, 646}, - dictWord{7, 0, 1730}, - dictWord{ - 11, - 0, - 446, - }, - dictWord{141, 0, 178}, - dictWord{4, 10, 922}, - dictWord{133, 10, 1023}, - dictWord{135, 11, 11}, - dictWord{132, 0, 395}, - dictWord{11, 0, 145}, - dictWord{135, 10, 1002}, - dictWord{9, 0, 174}, - dictWord{10, 0, 164}, - dictWord{11, 0, 440}, - dictWord{11, 0, 514}, - dictWord{11, 0, 841}, - dictWord{15, 0, 98}, - dictWord{149, 0, 20}, - dictWord{134, 0, 426}, - dictWord{10, 0, 608}, - dictWord{139, 0, 1002}, - dictWord{7, 11, 320}, - dictWord{8, 11, 51}, - dictWord{12, 11, 481}, - dictWord{12, 11, 570}, - dictWord{148, 11, 106}, - dictWord{9, 0, 977}, - dictWord{9, 0, 983}, - dictWord{132, 11, 445}, - dictWord{138, 0, 250}, - dictWord{139, 0, 100}, - dictWord{6, 0, 1982}, - dictWord{136, 10, 402}, - dictWord{133, 11, 239}, - dictWord{4, 10, 716}, - dictWord{141, 10, 31}, - dictWord{5, 0, 476}, - dictWord{7, 11, 83}, - dictWord{7, 11, 1990}, - dictWord{8, 11, 130}, - dictWord{139, 11, 720}, - dictWord{8, 10, 691}, - dictWord{136, 10, 731}, - dictWord{5, 11, 123}, - dictWord{ - 6, - 11, - 530, - }, - dictWord{7, 11, 348}, - dictWord{135, 11, 1419}, - dictWord{5, 0, 76}, - dictWord{6, 0, 458}, - dictWord{6, 0, 497}, - dictWord{7, 0, 868}, - dictWord{9, 0, 658}, - dictWord{10, 0, 594}, - dictWord{11, 0, 173}, - dictWord{11, 0, 566}, - dictWord{12, 0, 20}, - dictWord{12, 0, 338}, - dictWord{141, 0, 200}, - dictWord{9, 11, 139}, - dictWord{ - 10, - 11, - 399, - }, - dictWord{11, 11, 469}, - dictWord{12, 11, 634}, - dictWord{141, 11, 223}, - dictWord{9, 10, 840}, - dictWord{138, 10, 803}, - dictWord{133, 10, 847}, - dictWord{11, 11, 223}, - dictWord{140, 11, 168}, - dictWord{132, 11, 210}, - dictWord{8, 0, 447}, - dictWord{9, 10, 53}, - dictWord{9, 10, 268}, - dictWord{9, 10, 901}, - dictWord{10, 10, 518}, - dictWord{10, 10, 829}, - dictWord{11, 10, 188}, - dictWord{13, 10, 74}, - dictWord{14, 10, 46}, - dictWord{15, 10, 17}, - dictWord{15, 10, 33}, - dictWord{17, 10, 40}, - dictWord{18, 10, 36}, - dictWord{19, 10, 20}, - dictWord{22, 10, 1}, - dictWord{152, 10, 2}, - dictWord{4, 0, 526}, - dictWord{7, 0, 1029}, - dictWord{135, 0, 1054}, - dictWord{19, 11, 59}, - dictWord{150, 11, 2}, - dictWord{4, 0, 636}, - dictWord{6, 0, 1875}, - dictWord{6, 0, 1920}, - dictWord{9, 0, 999}, - dictWord{ - 12, - 0, - 807, - }, - dictWord{12, 0, 825}, - dictWord{15, 0, 179}, - dictWord{15, 0, 190}, - dictWord{18, 0, 182}, - dictWord{136, 10, 532}, - dictWord{6, 0, 1699}, - dictWord{ - 7, - 0, - 660, - }, - dictWord{7, 0, 1124}, - dictWord{17, 0, 31}, - dictWord{19, 0, 22}, - dictWord{151, 0, 14}, - dictWord{135, 10, 681}, - dictWord{132, 11, 430}, - dictWord{ - 140, - 10, - 677, - }, - dictWord{4, 10, 684}, - dictWord{136, 10, 384}, - dictWord{132, 11, 756}, - dictWord{133, 11, 213}, - dictWord{7, 0, 188}, - dictWord{7, 10, 110}, - dictWord{ - 8, - 10, - 290, - }, - dictWord{8, 10, 591}, - dictWord{9, 10, 382}, - dictWord{9, 10, 649}, - dictWord{11, 10, 71}, - dictWord{11, 10, 155}, - dictWord{11, 10, 313}, - dictWord{ - 12, - 10, - 5, - }, - dictWord{13, 10, 325}, - dictWord{142, 10, 287}, - dictWord{7, 10, 360}, - dictWord{7, 10, 425}, - dictWord{9, 10, 66}, - dictWord{9, 10, 278}, - dictWord{ - 138, - 10, - 644, - }, - dictWord{142, 11, 164}, - dictWord{4, 0, 279}, - dictWord{7, 0, 301}, - dictWord{137, 0, 362}, - dictWord{134, 11, 586}, - dictWord{135, 0, 1743}, - dictWord{4, 0, 178}, - dictWord{133, 0, 399}, - dictWord{4, 10, 900}, - dictWord{133, 10, 861}, - dictWord{5, 10, 254}, - dictWord{7, 10, 985}, - dictWord{136, 10, 73}, - dictWord{133, 11, 108}, - dictWord{7, 10, 1959}, - dictWord{136, 10, 683}, - dictWord{133, 11, 219}, - dictWord{4, 11, 193}, - dictWord{5, 11, 916}, - dictWord{ - 7, - 11, - 364, - }, - dictWord{10, 11, 398}, - dictWord{10, 11, 726}, - dictWord{11, 11, 317}, - dictWord{11, 11, 626}, - dictWord{12, 11, 142}, - dictWord{12, 11, 288}, - dictWord{ - 12, - 11, - 678, - }, - dictWord{13, 11, 313}, - dictWord{15, 11, 113}, - dictWord{18, 11, 114}, - dictWord{21, 11, 30}, - dictWord{150, 11, 53}, - dictWord{6, 11, 241}, - dictWord{7, 11, 907}, - dictWord{8, 11, 832}, - dictWord{9, 11, 342}, - dictWord{10, 11, 729}, - dictWord{11, 11, 284}, - dictWord{11, 11, 445}, - dictWord{11, 11, 651}, - dictWord{11, 11, 863}, - dictWord{13, 11, 398}, - dictWord{146, 11, 99}, - dictWord{132, 0, 872}, - dictWord{134, 0, 831}, - dictWord{134, 0, 1692}, - dictWord{ - 6, - 0, - 202, - }, - dictWord{6, 0, 1006}, - dictWord{9, 0, 832}, - dictWord{10, 0, 636}, - dictWord{11, 0, 208}, - dictWord{12, 0, 360}, - dictWord{17, 0, 118}, - dictWord{18, 0, 27}, - dictWord{20, 0, 67}, - dictWord{137, 11, 734}, - dictWord{132, 10, 725}, - dictWord{7, 11, 993}, - dictWord{138, 11, 666}, - dictWord{134, 0, 1954}, - dictWord{ - 134, - 10, - 196, - }, - dictWord{7, 0, 872}, - dictWord{10, 0, 516}, - dictWord{139, 0, 167}, - dictWord{133, 10, 831}, - dictWord{4, 11, 562}, - dictWord{9, 11, 254}, - dictWord{ - 139, - 11, - 879, - }, - dictWord{137, 0, 313}, - dictWord{4, 0, 224}, - dictWord{132, 11, 786}, - dictWord{11, 0, 24}, - dictWord{12, 0, 170}, - dictWord{136, 10, 723}, - dictWord{ - 5, - 0, - 546, - }, - dictWord{7, 0, 35}, - dictWord{8, 0, 11}, - dictWord{8, 0, 12}, - dictWord{9, 0, 315}, - dictWord{9, 0, 533}, - dictWord{10, 0, 802}, - dictWord{11, 0, 166}, - dictWord{ - 12, - 0, - 525, - }, - dictWord{142, 0, 243}, - dictWord{7, 0, 1937}, - dictWord{13, 10, 80}, - dictWord{13, 10, 437}, - dictWord{145, 10, 74}, - dictWord{5, 0, 241}, - dictWord{ - 8, - 0, - 242, - }, - dictWord{9, 0, 451}, - dictWord{10, 0, 667}, - dictWord{11, 0, 598}, - dictWord{140, 0, 429}, - dictWord{150, 0, 46}, - dictWord{6, 0, 1273}, - dictWord{ - 137, - 0, - 830, - }, - dictWord{5, 10, 848}, - dictWord{6, 10, 66}, - dictWord{136, 10, 764}, - dictWord{6, 0, 825}, - dictWord{134, 0, 993}, - dictWord{4, 0, 1006}, - dictWord{ - 10, - 0, - 327, - }, - dictWord{13, 0, 271}, - dictWord{4, 10, 36}, - dictWord{7, 10, 1387}, - dictWord{139, 10, 755}, - dictWord{134, 0, 1023}, - dictWord{135, 0, 1580}, - dictWord{ - 4, - 0, - 366, - }, - dictWord{137, 0, 516}, - dictWord{132, 10, 887}, - dictWord{6, 0, 1736}, - dictWord{135, 0, 1891}, - dictWord{6, 11, 216}, - dictWord{7, 11, 901}, - dictWord{ - 7, - 11, - 1343, - }, - dictWord{136, 11, 493}, - dictWord{6, 10, 165}, - dictWord{138, 10, 388}, - dictWord{7, 11, 341}, - dictWord{139, 11, 219}, - dictWord{4, 10, 719}, - dictWord{135, 10, 155}, - dictWord{134, 0, 1935}, - dictWord{132, 0, 826}, - dictWord{6, 0, 331}, - dictWord{6, 0, 1605}, - dictWord{8, 0, 623}, - dictWord{11, 0, 139}, - dictWord{139, 0, 171}, - dictWord{135, 11, 1734}, - dictWord{10, 11, 115}, - dictWord{11, 11, 420}, - dictWord{12, 11, 154}, - dictWord{13, 11, 404}, - dictWord{ - 14, - 11, - 346, - }, - dictWord{15, 11, 54}, - dictWord{143, 11, 112}, - dictWord{7, 0, 288}, - dictWord{4, 10, 353}, - dictWord{6, 10, 146}, - dictWord{6, 10, 1789}, - dictWord{ - 7, - 10, - 990, - }, - dictWord{7, 10, 1348}, - dictWord{9, 10, 665}, - dictWord{9, 10, 898}, - dictWord{11, 10, 893}, - dictWord{142, 10, 212}, - dictWord{6, 0, 916}, - dictWord{134, 0, 1592}, - dictWord{7, 0, 1888}, - dictWord{4, 10, 45}, - dictWord{135, 10, 1257}, - dictWord{5, 11, 1011}, - dictWord{136, 11, 701}, - dictWord{ - 139, - 11, - 596, - }, - dictWord{4, 11, 54}, - dictWord{5, 11, 666}, - dictWord{7, 11, 1039}, - dictWord{7, 11, 1130}, - dictWord{9, 11, 195}, - dictWord{138, 11, 302}, - dictWord{ - 134, - 0, - 1471, - }, - dictWord{134, 0, 1570}, - dictWord{132, 0, 394}, - dictWord{140, 10, 65}, - dictWord{136, 10, 816}, - dictWord{135, 0, 1931}, - dictWord{7, 0, 574}, - dictWord{135, 0, 1719}, - dictWord{134, 11, 467}, - dictWord{132, 0, 658}, - dictWord{9, 0, 781}, - dictWord{10, 0, 144}, - dictWord{11, 0, 385}, - dictWord{13, 0, 161}, - dictWord{13, 0, 228}, - dictWord{13, 0, 268}, - dictWord{20, 0, 107}, - dictWord{134, 11, 1669}, - dictWord{136, 0, 374}, - dictWord{135, 0, 735}, - dictWord{4, 0, 344}, - dictWord{6, 0, 498}, - dictWord{139, 0, 323}, - dictWord{7, 0, 586}, - dictWord{7, 0, 1063}, - dictWord{6, 10, 559}, - dictWord{134, 10, 1691}, - dictWord{137, 0, 155}, - dictWord{133, 0, 906}, - dictWord{7, 11, 122}, - dictWord{9, 11, 259}, - dictWord{10, 11, 84}, - dictWord{11, 11, 470}, - dictWord{12, 11, 541}, - dictWord{ - 141, - 11, - 379, - }, - dictWord{134, 0, 1139}, - dictWord{10, 0, 108}, - dictWord{139, 0, 116}, - dictWord{134, 10, 456}, - dictWord{133, 10, 925}, - dictWord{5, 11, 82}, - dictWord{ - 5, - 11, - 131, - }, - dictWord{7, 11, 1755}, - dictWord{8, 11, 31}, - dictWord{9, 11, 168}, - dictWord{9, 11, 764}, - dictWord{139, 11, 869}, - dictWord{134, 11, 605}, - dictWord{ - 5, - 11, - 278, - }, - dictWord{137, 11, 68}, - dictWord{4, 11, 163}, - dictWord{5, 11, 201}, - dictWord{5, 11, 307}, - dictWord{5, 11, 310}, - dictWord{6, 11, 335}, - dictWord{ - 7, - 11, - 284, - }, - dictWord{136, 11, 165}, - dictWord{135, 11, 1660}, - dictWord{6, 11, 33}, - dictWord{135, 11, 1244}, - dictWord{4, 0, 616}, - dictWord{136, 11, 483}, - dictWord{8, 0, 857}, - dictWord{8, 0, 902}, - dictWord{8, 0, 910}, - dictWord{10, 0, 879}, - dictWord{12, 0, 726}, - dictWord{4, 11, 199}, - dictWord{139, 11, 34}, - dictWord{136, 0, 692}, - dictWord{6, 10, 193}, - dictWord{7, 10, 240}, - dictWord{7, 10, 1682}, - dictWord{10, 10, 51}, - dictWord{10, 10, 640}, - dictWord{11, 10, 410}, - dictWord{13, 10, 82}, - dictWord{14, 10, 247}, - dictWord{14, 10, 331}, - dictWord{142, 10, 377}, - dictWord{6, 0, 823}, - dictWord{134, 0, 983}, - dictWord{ - 139, - 10, - 411, - }, - dictWord{132, 0, 305}, - dictWord{136, 10, 633}, - dictWord{138, 11, 203}, - dictWord{134, 0, 681}, - dictWord{6, 11, 326}, - dictWord{7, 11, 677}, - dictWord{137, 11, 425}, - dictWord{5, 0, 214}, - dictWord{7, 0, 603}, - dictWord{8, 0, 611}, - dictWord{9, 0, 686}, - dictWord{10, 0, 88}, - dictWord{11, 0, 459}, - dictWord{ - 11, - 0, - 496, - }, - dictWord{12, 0, 463}, - dictWord{12, 0, 590}, - dictWord{141, 0, 0}, - dictWord{136, 0, 1004}, - dictWord{142, 0, 23}, - dictWord{134, 0, 1703}, - dictWord{ - 147, - 11, - 8, - }, - dictWord{145, 11, 56}, - dictWord{135, 0, 1443}, - dictWord{4, 10, 237}, - dictWord{135, 10, 514}, - dictWord{6, 0, 714}, - dictWord{145, 0, 19}, - dictWord{ - 5, - 11, - 358, - }, - dictWord{7, 11, 473}, - dictWord{7, 11, 1184}, - dictWord{10, 11, 662}, - dictWord{13, 11, 212}, - dictWord{13, 11, 304}, - dictWord{13, 11, 333}, - dictWord{145, 11, 98}, - dictWord{4, 0, 737}, - dictWord{10, 0, 98}, - dictWord{11, 0, 294}, - dictWord{12, 0, 60}, - dictWord{12, 0, 437}, - dictWord{13, 0, 64}, - dictWord{ - 13, - 0, - 380, - }, - dictWord{142, 0, 430}, - dictWord{6, 10, 392}, - dictWord{7, 10, 65}, - dictWord{135, 10, 2019}, - dictWord{6, 0, 1758}, - dictWord{8, 0, 520}, - dictWord{ - 9, - 0, - 345, - }, - dictWord{9, 0, 403}, - dictWord{142, 0, 350}, - dictWord{5, 0, 47}, - dictWord{10, 0, 242}, - dictWord{138, 0, 579}, - dictWord{5, 0, 139}, - dictWord{7, 0, 1168}, - dictWord{138, 0, 539}, - dictWord{134, 0, 1459}, - dictWord{13, 0, 388}, - dictWord{141, 11, 388}, - dictWord{134, 0, 253}, - dictWord{7, 10, 1260}, - dictWord{ - 135, - 10, - 1790, - }, - dictWord{10, 0, 252}, - dictWord{9, 10, 222}, - dictWord{139, 10, 900}, - dictWord{140, 0, 745}, - dictWord{133, 11, 946}, - dictWord{4, 0, 107}, - dictWord{ - 7, - 0, - 613, - }, - dictWord{8, 0, 439}, - dictWord{8, 0, 504}, - dictWord{9, 0, 501}, - dictWord{10, 0, 383}, - dictWord{139, 0, 477}, - dictWord{135, 11, 1485}, - dictWord{ - 132, - 0, - 871, - }, - dictWord{7, 11, 411}, - dictWord{7, 11, 590}, - dictWord{8, 11, 631}, - dictWord{9, 11, 323}, - dictWord{10, 11, 355}, - dictWord{11, 11, 491}, - dictWord{ - 12, - 11, - 143, - }, - dictWord{12, 11, 402}, - dictWord{13, 11, 73}, - dictWord{14, 11, 408}, - dictWord{15, 11, 107}, - dictWord{146, 11, 71}, - dictWord{132, 0, 229}, - dictWord{132, 0, 903}, - dictWord{140, 0, 71}, - dictWord{133, 0, 549}, - dictWord{4, 0, 47}, - dictWord{6, 0, 373}, - dictWord{7, 0, 452}, - dictWord{7, 0, 543}, - dictWord{ - 7, - 0, - 1828, - }, - dictWord{7, 0, 1856}, - dictWord{9, 0, 6}, - dictWord{11, 0, 257}, - dictWord{139, 0, 391}, - dictWord{7, 11, 1467}, - dictWord{8, 11, 328}, - dictWord{ - 10, - 11, - 544, - }, - dictWord{11, 11, 955}, - dictWord{13, 11, 320}, - dictWord{145, 11, 83}, - dictWord{5, 0, 980}, - dictWord{134, 0, 1754}, - dictWord{136, 0, 865}, - dictWord{ - 5, - 0, - 705, - }, - dictWord{137, 0, 606}, - dictWord{7, 0, 161}, - dictWord{8, 10, 201}, - dictWord{136, 10, 605}, - dictWord{143, 11, 35}, - dictWord{5, 11, 835}, - dictWord{ - 6, - 11, - 483, - }, - dictWord{140, 10, 224}, - dictWord{7, 0, 536}, - dictWord{7, 0, 1331}, - dictWord{136, 0, 143}, - dictWord{134, 0, 1388}, - dictWord{5, 0, 724}, - dictWord{ - 10, - 0, - 305, - }, - dictWord{11, 0, 151}, - dictWord{12, 0, 33}, - dictWord{12, 0, 121}, - dictWord{12, 0, 381}, - dictWord{17, 0, 3}, - dictWord{17, 0, 27}, - dictWord{17, 0, 78}, - dictWord{18, 0, 18}, - dictWord{19, 0, 54}, - dictWord{149, 0, 5}, - dictWord{4, 10, 523}, - dictWord{133, 10, 638}, - dictWord{5, 0, 19}, - dictWord{134, 0, 533}, - dictWord{ - 5, - 0, - 395, - }, - dictWord{5, 0, 951}, - dictWord{134, 0, 1776}, - dictWord{135, 0, 1908}, - dictWord{132, 0, 846}, - dictWord{10, 0, 74}, - dictWord{11, 0, 663}, - dictWord{ - 12, - 0, - 210, - }, - dictWord{13, 0, 166}, - dictWord{13, 0, 310}, - dictWord{14, 0, 373}, - dictWord{18, 0, 95}, - dictWord{19, 0, 43}, - dictWord{6, 10, 242}, - dictWord{7, 10, 227}, - dictWord{7, 10, 1581}, - dictWord{8, 10, 104}, - dictWord{9, 10, 113}, - dictWord{9, 10, 220}, - dictWord{9, 10, 427}, - dictWord{10, 10, 239}, - dictWord{11, 10, 579}, - dictWord{11, 10, 1023}, - dictWord{13, 10, 4}, - dictWord{13, 10, 204}, - dictWord{13, 10, 316}, - dictWord{148, 10, 86}, - dictWord{9, 11, 716}, - dictWord{11, 11, 108}, - dictWord{13, 11, 123}, - dictWord{14, 11, 252}, - dictWord{19, 11, 38}, - dictWord{21, 11, 3}, - dictWord{151, 11, 11}, - dictWord{8, 0, 372}, - dictWord{9, 0, 122}, - dictWord{138, 0, 175}, - dictWord{132, 11, 677}, - dictWord{7, 11, 1374}, - dictWord{136, 11, 540}, - dictWord{135, 10, 861}, - dictWord{132, 0, 695}, - dictWord{ - 7, - 0, - 497, - }, - dictWord{9, 0, 387}, - dictWord{147, 0, 81}, - dictWord{136, 0, 937}, - dictWord{134, 0, 718}, - dictWord{7, 0, 1328}, - dictWord{136, 10, 494}, - dictWord{ - 132, - 11, - 331, - }, - dictWord{6, 0, 1581}, - dictWord{133, 11, 747}, - dictWord{5, 0, 284}, - dictWord{6, 0, 49}, - dictWord{6, 0, 350}, - dictWord{7, 0, 1}, - dictWord{7, 0, 377}, - dictWord{7, 0, 1693}, - dictWord{8, 0, 18}, - dictWord{8, 0, 678}, - dictWord{9, 0, 161}, - dictWord{9, 0, 585}, - dictWord{9, 0, 671}, - dictWord{9, 0, 839}, - dictWord{11, 0, 912}, - dictWord{141, 0, 427}, - dictWord{7, 10, 1306}, - dictWord{8, 10, 505}, - dictWord{9, 10, 482}, - dictWord{10, 10, 126}, - dictWord{11, 10, 225}, - dictWord{12, 10, 347}, - dictWord{12, 10, 449}, - dictWord{13, 10, 19}, - dictWord{14, 10, 218}, - dictWord{142, 10, 435}, - dictWord{10, 10, 764}, - dictWord{12, 10, 120}, - dictWord{ - 13, - 10, - 39, - }, - dictWord{145, 10, 127}, - dictWord{4, 0, 597}, - dictWord{133, 10, 268}, - dictWord{134, 0, 1094}, - dictWord{4, 0, 1008}, - dictWord{134, 0, 1973}, - dictWord{132, 0, 811}, - dictWord{139, 0, 908}, - dictWord{135, 0, 1471}, - dictWord{133, 11, 326}, - dictWord{4, 10, 384}, - dictWord{135, 10, 1022}, - dictWord{ - 7, - 0, - 1935, - }, - dictWord{8, 0, 324}, - dictWord{12, 0, 42}, - dictWord{4, 11, 691}, - dictWord{7, 11, 1935}, - dictWord{8, 11, 324}, - dictWord{9, 11, 35}, - dictWord{10, 11, 680}, - dictWord{11, 11, 364}, - dictWord{12, 11, 42}, - dictWord{13, 11, 357}, - dictWord{146, 11, 16}, - dictWord{135, 0, 2014}, - dictWord{7, 0, 2007}, - dictWord{ - 9, - 0, - 101, - }, - dictWord{9, 0, 450}, - dictWord{10, 0, 66}, - dictWord{10, 0, 842}, - dictWord{11, 0, 536}, - dictWord{12, 0, 587}, - dictWord{6, 11, 32}, - dictWord{7, 11, 385}, - dictWord{7, 11, 757}, - dictWord{7, 11, 1916}, - dictWord{8, 11, 37}, - dictWord{8, 11, 94}, - dictWord{8, 11, 711}, - dictWord{9, 11, 541}, - dictWord{10, 11, 162}, - dictWord{ - 10, - 11, - 795, - }, - dictWord{11, 11, 989}, - dictWord{11, 11, 1010}, - dictWord{12, 11, 14}, - dictWord{142, 11, 308}, - dictWord{139, 0, 586}, - dictWord{ - 135, - 10, - 1703, - }, - dictWord{7, 0, 1077}, - dictWord{11, 0, 28}, - dictWord{9, 10, 159}, - dictWord{140, 10, 603}, - dictWord{6, 0, 1221}, - dictWord{136, 10, 583}, - dictWord{ - 6, - 11, - 152, - }, - dictWord{6, 11, 349}, - dictWord{6, 11, 1682}, - dictWord{7, 11, 1252}, - dictWord{8, 11, 112}, - dictWord{9, 11, 435}, - dictWord{9, 11, 668}, - dictWord{ - 10, - 11, - 290, - }, - dictWord{10, 11, 319}, - dictWord{10, 11, 815}, - dictWord{11, 11, 180}, - dictWord{11, 11, 837}, - dictWord{12, 11, 240}, - dictWord{13, 11, 152}, - dictWord{13, 11, 219}, - dictWord{142, 11, 158}, - dictWord{139, 0, 62}, - dictWord{132, 10, 515}, - dictWord{8, 10, 632}, - dictWord{8, 10, 697}, - dictWord{ - 137, - 10, - 854, - }, - dictWord{134, 0, 1766}, - dictWord{132, 11, 581}, - dictWord{6, 11, 126}, - dictWord{7, 11, 573}, - dictWord{8, 11, 397}, - dictWord{142, 11, 44}, - dictWord{ - 150, - 0, - 28, - }, - dictWord{11, 0, 670}, - dictWord{22, 0, 25}, - dictWord{4, 10, 136}, - dictWord{133, 10, 551}, - dictWord{6, 0, 1665}, - dictWord{7, 0, 256}, - dictWord{ - 7, - 0, - 1388, - }, - dictWord{138, 0, 499}, - dictWord{4, 0, 22}, - dictWord{5, 0, 10}, - dictWord{7, 0, 1576}, - dictWord{136, 0, 97}, - dictWord{134, 10, 1782}, - dictWord{5, 0, 481}, - dictWord{7, 10, 1287}, - dictWord{9, 10, 44}, - dictWord{10, 10, 552}, - dictWord{10, 10, 642}, - dictWord{11, 10, 839}, - dictWord{12, 10, 274}, - dictWord{ - 12, - 10, - 275, - }, - dictWord{12, 10, 372}, - dictWord{13, 10, 91}, - dictWord{142, 10, 125}, - dictWord{133, 11, 926}, - dictWord{7, 11, 1232}, - dictWord{137, 11, 531}, - dictWord{6, 0, 134}, - dictWord{7, 0, 437}, - dictWord{7, 0, 1824}, - dictWord{9, 0, 37}, - dictWord{14, 0, 285}, - dictWord{142, 0, 371}, - dictWord{7, 0, 486}, - dictWord{8, 0, 155}, - dictWord{11, 0, 93}, - dictWord{140, 0, 164}, - dictWord{6, 0, 1391}, - dictWord{134, 0, 1442}, - dictWord{133, 11, 670}, - dictWord{133, 0, 591}, - dictWord{ - 6, - 10, - 147, - }, - dictWord{7, 10, 886}, - dictWord{7, 11, 1957}, - dictWord{9, 10, 753}, - dictWord{138, 10, 268}, - dictWord{5, 0, 380}, - dictWord{5, 0, 650}, - dictWord{ - 7, - 0, - 1173, - }, - dictWord{136, 0, 310}, - dictWord{4, 0, 364}, - dictWord{7, 0, 1156}, - dictWord{7, 0, 1187}, - dictWord{137, 0, 409}, - dictWord{135, 11, 1621}, - dictWord{ - 134, - 0, - 482, - }, - dictWord{133, 11, 506}, - dictWord{4, 0, 781}, - dictWord{6, 0, 487}, - dictWord{7, 0, 926}, - dictWord{8, 0, 263}, - dictWord{139, 0, 500}, - dictWord{ - 138, - 10, - 137, - }, - dictWord{135, 11, 242}, - dictWord{139, 11, 96}, - dictWord{133, 10, 414}, - dictWord{135, 10, 1762}, - dictWord{134, 0, 804}, - dictWord{5, 11, 834}, - dictWord{7, 11, 1202}, - dictWord{8, 11, 14}, - dictWord{9, 11, 481}, - dictWord{137, 11, 880}, - dictWord{134, 10, 599}, - dictWord{4, 0, 94}, - dictWord{135, 0, 1265}, - dictWord{4, 0, 415}, - dictWord{132, 0, 417}, - dictWord{5, 0, 348}, - dictWord{6, 0, 522}, - dictWord{6, 10, 1749}, - dictWord{7, 11, 1526}, - dictWord{138, 11, 465}, - dictWord{134, 10, 1627}, - dictWord{132, 0, 1012}, - dictWord{132, 10, 488}, - dictWord{4, 11, 357}, - dictWord{6, 11, 172}, - dictWord{7, 11, 143}, - dictWord{ - 137, - 11, - 413, - }, - dictWord{4, 10, 83}, - dictWord{4, 11, 590}, - dictWord{146, 11, 76}, - dictWord{140, 10, 676}, - dictWord{7, 11, 287}, - dictWord{8, 11, 355}, - dictWord{ - 9, - 11, - 293, - }, - dictWord{137, 11, 743}, - dictWord{134, 10, 278}, - dictWord{6, 0, 1803}, - dictWord{18, 0, 165}, - dictWord{24, 0, 21}, - dictWord{5, 11, 169}, - dictWord{ - 7, - 11, - 333, - }, - dictWord{136, 11, 45}, - dictWord{12, 10, 97}, - dictWord{140, 11, 97}, - dictWord{4, 0, 408}, - dictWord{4, 0, 741}, - dictWord{135, 0, 500}, - dictWord{ - 132, - 11, - 198, - }, - dictWord{7, 10, 388}, - dictWord{7, 10, 644}, - dictWord{139, 10, 781}, - dictWord{4, 11, 24}, - dictWord{5, 11, 140}, - dictWord{5, 11, 185}, - dictWord{ - 7, - 11, - 1500, - }, - dictWord{11, 11, 565}, - dictWord{139, 11, 838}, - dictWord{6, 0, 1321}, - dictWord{9, 0, 257}, - dictWord{7, 10, 229}, - dictWord{8, 10, 59}, - dictWord{ - 9, - 10, - 190, - }, - dictWord{10, 10, 378}, - dictWord{140, 10, 191}, - dictWord{4, 11, 334}, - dictWord{133, 11, 593}, - dictWord{135, 11, 1885}, - dictWord{134, 0, 1138}, - dictWord{4, 0, 249}, - dictWord{6, 0, 73}, - dictWord{135, 0, 177}, - dictWord{133, 0, 576}, - dictWord{142, 0, 231}, - dictWord{137, 0, 288}, - dictWord{132, 10, 660}, - dictWord{7, 10, 1035}, - dictWord{138, 10, 737}, - dictWord{135, 0, 1487}, - dictWord{6, 0, 989}, - dictWord{9, 0, 433}, - dictWord{7, 10, 690}, - dictWord{9, 10, 587}, - dictWord{140, 10, 521}, - dictWord{7, 0, 1264}, - dictWord{7, 0, 1678}, - dictWord{11, 0, 945}, - dictWord{12, 0, 341}, - dictWord{12, 0, 471}, - dictWord{140, 0, 569}, - dictWord{132, 11, 709}, - dictWord{133, 11, 897}, - dictWord{5, 11, 224}, - dictWord{13, 11, 174}, - dictWord{146, 11, 52}, - dictWord{135, 11, 1840}, - dictWord{ - 134, - 10, - 1744, - }, - dictWord{12, 0, 87}, - dictWord{16, 0, 74}, - dictWord{4, 10, 733}, - dictWord{9, 10, 194}, - dictWord{10, 10, 92}, - dictWord{11, 10, 198}, - dictWord{ - 12, - 10, - 84, - }, - dictWord{141, 10, 128}, - dictWord{140, 0, 779}, - dictWord{135, 0, 538}, - dictWord{4, 11, 608}, - dictWord{133, 11, 497}, - dictWord{133, 0, 413}, - dictWord{7, 11, 1375}, - dictWord{7, 11, 1466}, - dictWord{138, 11, 331}, - dictWord{136, 0, 495}, - dictWord{6, 11, 540}, - dictWord{136, 11, 136}, - dictWord{7, 0, 54}, - dictWord{8, 0, 312}, - dictWord{10, 0, 191}, - dictWord{10, 0, 614}, - dictWord{140, 0, 567}, - dictWord{6, 0, 468}, - dictWord{7, 0, 567}, - dictWord{7, 0, 1478}, - dictWord{ - 8, - 0, - 530, - }, - dictWord{14, 0, 290}, - dictWord{133, 11, 999}, - dictWord{4, 11, 299}, - dictWord{7, 10, 306}, - dictWord{135, 11, 1004}, - dictWord{142, 11, 296}, - dictWord{134, 0, 1484}, - dictWord{133, 10, 979}, - dictWord{6, 0, 609}, - dictWord{9, 0, 815}, - dictWord{12, 11, 137}, - dictWord{14, 11, 9}, - dictWord{14, 11, 24}, - dictWord{142, 11, 64}, - dictWord{133, 11, 456}, - dictWord{6, 0, 484}, - dictWord{135, 0, 822}, - dictWord{133, 10, 178}, - dictWord{136, 11, 180}, - dictWord{ - 132, - 11, - 755, - }, - dictWord{137, 0, 900}, - dictWord{135, 0, 1335}, - dictWord{6, 0, 1724}, - dictWord{135, 0, 2022}, - dictWord{135, 11, 1139}, - dictWord{5, 0, 640}, - dictWord{132, 10, 390}, - dictWord{6, 0, 1831}, - dictWord{138, 11, 633}, - dictWord{135, 11, 566}, - dictWord{4, 11, 890}, - dictWord{5, 11, 805}, - dictWord{5, 11, 819}, - dictWord{5, 11, 961}, - dictWord{6, 11, 396}, - dictWord{6, 11, 1631}, - dictWord{6, 11, 1678}, - dictWord{7, 11, 1967}, - dictWord{7, 11, 2041}, - dictWord{ - 9, - 11, - 630, - }, - dictWord{11, 11, 8}, - dictWord{11, 11, 1019}, - dictWord{12, 11, 176}, - dictWord{13, 11, 225}, - dictWord{14, 11, 292}, - dictWord{149, 11, 24}, - dictWord{ - 132, - 0, - 474, - }, - dictWord{134, 0, 1103}, - dictWord{135, 0, 1504}, - dictWord{134, 0, 1576}, - dictWord{6, 0, 961}, - dictWord{6, 0, 1034}, - dictWord{140, 0, 655}, - dictWord{11, 11, 514}, - dictWord{149, 11, 20}, - dictWord{5, 0, 305}, - dictWord{135, 11, 1815}, - dictWord{7, 11, 1505}, - dictWord{10, 11, 190}, - dictWord{ - 10, - 11, - 634, - }, - dictWord{11, 11, 792}, - dictWord{12, 11, 358}, - dictWord{140, 11, 447}, - dictWord{5, 11, 0}, - dictWord{6, 11, 536}, - dictWord{7, 11, 604}, - dictWord{ - 13, - 11, - 445, - }, - dictWord{145, 11, 126}, - dictWord{7, 0, 1236}, - dictWord{133, 10, 105}, - dictWord{4, 0, 480}, - dictWord{6, 0, 217}, - dictWord{6, 0, 302}, - dictWord{ - 6, - 0, - 1642, - }, - dictWord{7, 0, 130}, - dictWord{7, 0, 837}, - dictWord{7, 0, 1321}, - dictWord{7, 0, 1547}, - dictWord{7, 0, 1657}, - dictWord{8, 0, 429}, - dictWord{9, 0, 228}, - dictWord{13, 0, 289}, - dictWord{13, 0, 343}, - dictWord{19, 0, 101}, - dictWord{6, 11, 232}, - dictWord{6, 11, 412}, - dictWord{7, 11, 1074}, - dictWord{8, 11, 9}, - dictWord{ - 8, - 11, - 157, - }, - dictWord{8, 11, 786}, - dictWord{9, 11, 196}, - dictWord{9, 11, 352}, - dictWord{9, 11, 457}, - dictWord{10, 11, 337}, - dictWord{11, 11, 232}, - dictWord{ - 11, - 11, - 877, - }, - dictWord{12, 11, 480}, - dictWord{140, 11, 546}, - dictWord{5, 10, 438}, - dictWord{7, 11, 958}, - dictWord{9, 10, 694}, - dictWord{12, 10, 627}, - dictWord{ - 13, - 11, - 38, - }, - dictWord{141, 10, 210}, - dictWord{4, 11, 382}, - dictWord{136, 11, 579}, - dictWord{7, 0, 278}, - dictWord{10, 0, 739}, - dictWord{11, 0, 708}, - dictWord{ - 141, - 0, - 348, - }, - dictWord{4, 11, 212}, - dictWord{135, 11, 1206}, - dictWord{135, 11, 1898}, - dictWord{6, 0, 708}, - dictWord{6, 0, 1344}, - dictWord{152, 10, 11}, - dictWord{137, 11, 768}, - dictWord{134, 0, 1840}, - dictWord{140, 0, 233}, - dictWord{8, 10, 25}, - dictWord{138, 10, 826}, - dictWord{6, 0, 2017}, - dictWord{ - 133, - 11, - 655, - }, - dictWord{6, 0, 1488}, - dictWord{139, 11, 290}, - dictWord{132, 10, 308}, - dictWord{134, 0, 1590}, - dictWord{134, 0, 1800}, - dictWord{134, 0, 1259}, - dictWord{16, 0, 28}, - dictWord{6, 11, 231}, - dictWord{7, 11, 95}, - dictWord{136, 11, 423}, - dictWord{133, 11, 300}, - dictWord{135, 10, 150}, - dictWord{ - 136, - 10, - 649, - }, - dictWord{7, 11, 1874}, - dictWord{137, 11, 641}, - dictWord{6, 11, 237}, - dictWord{7, 11, 611}, - dictWord{8, 11, 100}, - dictWord{9, 11, 416}, - dictWord{ - 11, - 11, - 335, - }, - dictWord{12, 11, 173}, - dictWord{146, 11, 101}, - dictWord{137, 0, 45}, - dictWord{134, 10, 521}, - dictWord{17, 0, 36}, - dictWord{14, 11, 26}, - dictWord{ - 146, - 11, - 150, - }, - dictWord{7, 0, 1442}, - dictWord{14, 0, 22}, - dictWord{5, 10, 339}, - dictWord{15, 10, 41}, - dictWord{15, 10, 166}, - dictWord{147, 10, 66}, - dictWord{ - 8, - 0, - 378, - }, - dictWord{6, 11, 581}, - dictWord{135, 11, 1119}, - dictWord{134, 0, 1507}, - dictWord{147, 11, 117}, - dictWord{139, 0, 39}, - dictWord{134, 0, 1054}, - dictWord{6, 0, 363}, - dictWord{7, 0, 1955}, - dictWord{136, 0, 725}, - dictWord{134, 0, 2036}, - dictWord{133, 11, 199}, - dictWord{6, 0, 1871}, - dictWord{9, 0, 935}, - dictWord{9, 0, 961}, - dictWord{9, 0, 1004}, - dictWord{9, 0, 1016}, - dictWord{12, 0, 805}, - dictWord{12, 0, 852}, - dictWord{12, 0, 853}, - dictWord{12, 0, 869}, - dictWord{ - 12, - 0, - 882, - }, - dictWord{12, 0, 896}, - dictWord{12, 0, 906}, - dictWord{12, 0, 917}, - dictWord{12, 0, 940}, - dictWord{15, 0, 170}, - dictWord{15, 0, 176}, - dictWord{ - 15, - 0, - 188, - }, - dictWord{15, 0, 201}, - dictWord{15, 0, 205}, - dictWord{15, 0, 212}, - dictWord{15, 0, 234}, - dictWord{15, 0, 244}, - dictWord{18, 0, 181}, - dictWord{18, 0, 193}, - dictWord{18, 0, 196}, - dictWord{18, 0, 201}, - dictWord{18, 0, 202}, - dictWord{18, 0, 210}, - dictWord{18, 0, 217}, - dictWord{18, 0, 235}, - dictWord{18, 0, 236}, - dictWord{18, 0, 237}, - dictWord{21, 0, 54}, - dictWord{21, 0, 55}, - dictWord{21, 0, 58}, - dictWord{21, 0, 59}, - dictWord{152, 0, 22}, - dictWord{134, 10, 1628}, - dictWord{ - 137, - 0, - 805, - }, - dictWord{5, 0, 813}, - dictWord{135, 0, 2046}, - dictWord{142, 11, 42}, - dictWord{5, 0, 712}, - dictWord{6, 0, 1240}, - dictWord{11, 0, 17}, - dictWord{ - 13, - 0, - 321, - }, - dictWord{144, 0, 67}, - dictWord{132, 0, 617}, - dictWord{135, 10, 829}, - dictWord{6, 0, 320}, - dictWord{7, 0, 781}, - dictWord{7, 0, 1921}, - dictWord{9, 0, 55}, - dictWord{10, 0, 186}, - dictWord{10, 0, 273}, - dictWord{10, 0, 664}, - dictWord{10, 0, 801}, - dictWord{11, 0, 996}, - dictWord{11, 0, 997}, - dictWord{13, 0, 157}, - dictWord{142, 0, 170}, - dictWord{136, 0, 271}, - dictWord{5, 10, 486}, - dictWord{135, 10, 1349}, - dictWord{18, 11, 91}, - dictWord{147, 11, 70}, - dictWord{10, 0, 445}, - dictWord{7, 10, 1635}, - dictWord{8, 10, 17}, - dictWord{138, 10, 295}, - dictWord{136, 11, 404}, - dictWord{7, 0, 103}, - dictWord{7, 0, 863}, - dictWord{11, 0, 184}, - dictWord{145, 0, 62}, - dictWord{138, 10, 558}, - dictWord{137, 0, 659}, - dictWord{6, 11, 312}, - dictWord{6, 11, 1715}, - dictWord{10, 11, 584}, - dictWord{ - 11, - 11, - 546, - }, - dictWord{11, 11, 692}, - dictWord{12, 11, 259}, - dictWord{12, 11, 295}, - dictWord{13, 11, 46}, - dictWord{141, 11, 154}, - dictWord{134, 0, 676}, - dictWord{132, 11, 588}, - dictWord{4, 11, 231}, - dictWord{5, 11, 61}, - dictWord{6, 11, 104}, - dictWord{7, 11, 729}, - dictWord{7, 11, 964}, - dictWord{7, 11, 1658}, - dictWord{140, 11, 414}, - dictWord{6, 11, 263}, - dictWord{138, 11, 757}, - dictWord{11, 0, 337}, - dictWord{142, 0, 303}, - dictWord{135, 11, 1363}, - dictWord{ - 132, - 11, - 320, - }, - dictWord{140, 0, 506}, - dictWord{134, 10, 447}, - dictWord{5, 0, 77}, - dictWord{7, 0, 1455}, - dictWord{10, 0, 843}, - dictWord{147, 0, 73}, - dictWord{ - 7, - 10, - 577, - }, - dictWord{7, 10, 1432}, - dictWord{9, 10, 475}, - dictWord{9, 10, 505}, - dictWord{9, 10, 526}, - dictWord{9, 10, 609}, - dictWord{9, 10, 689}, - dictWord{ - 9, - 10, - 726, - }, - dictWord{9, 10, 735}, - dictWord{9, 10, 738}, - dictWord{10, 10, 556}, - dictWord{10, 10, 674}, - dictWord{10, 10, 684}, - dictWord{11, 10, 89}, - dictWord{ - 11, - 10, - 202, - }, - dictWord{11, 10, 272}, - dictWord{11, 10, 380}, - dictWord{11, 10, 415}, - dictWord{11, 10, 505}, - dictWord{11, 10, 537}, - dictWord{11, 10, 550}, - dictWord{11, 10, 562}, - dictWord{11, 10, 640}, - dictWord{11, 10, 667}, - dictWord{11, 10, 688}, - dictWord{11, 10, 847}, - dictWord{11, 10, 927}, - dictWord{ - 11, - 10, - 930, - }, - dictWord{11, 10, 940}, - dictWord{12, 10, 144}, - dictWord{12, 10, 325}, - dictWord{12, 10, 329}, - dictWord{12, 10, 389}, - dictWord{12, 10, 403}, - dictWord{ - 12, - 10, - 451, - }, - dictWord{12, 10, 515}, - dictWord{12, 10, 604}, - dictWord{12, 10, 616}, - dictWord{12, 10, 626}, - dictWord{13, 10, 66}, - dictWord{13, 10, 131}, - dictWord{13, 10, 167}, - dictWord{13, 10, 236}, - dictWord{13, 10, 368}, - dictWord{13, 10, 411}, - dictWord{13, 10, 434}, - dictWord{13, 10, 453}, - dictWord{ - 13, - 10, - 461, - }, - dictWord{13, 10, 474}, - dictWord{14, 10, 59}, - dictWord{14, 10, 60}, - dictWord{14, 10, 139}, - dictWord{14, 10, 152}, - dictWord{14, 10, 276}, - dictWord{ - 14, - 10, - 353, - }, - dictWord{14, 10, 402}, - dictWord{15, 10, 28}, - dictWord{15, 10, 81}, - dictWord{15, 10, 123}, - dictWord{15, 10, 152}, - dictWord{18, 10, 136}, - dictWord{148, 10, 88}, - dictWord{132, 0, 458}, - dictWord{135, 0, 1420}, - dictWord{6, 0, 109}, - dictWord{10, 0, 382}, - dictWord{4, 11, 405}, - dictWord{4, 10, 609}, - dictWord{7, 10, 756}, - dictWord{7, 11, 817}, - dictWord{9, 10, 544}, - dictWord{11, 10, 413}, - dictWord{14, 11, 58}, - dictWord{14, 10, 307}, - dictWord{16, 10, 25}, - dictWord{17, 11, 37}, - dictWord{146, 11, 124}, - dictWord{6, 0, 330}, - dictWord{7, 0, 1084}, - dictWord{11, 0, 142}, - dictWord{133, 11, 974}, - dictWord{4, 10, 930}, - dictWord{133, 10, 947}, - dictWord{5, 10, 939}, - dictWord{142, 11, 394}, - dictWord{16, 0, 91}, - dictWord{145, 0, 87}, - dictWord{5, 11, 235}, - dictWord{5, 10, 962}, - dictWord{7, 11, 1239}, - dictWord{11, 11, 131}, - dictWord{140, 11, 370}, - dictWord{11, 0, 492}, - dictWord{5, 10, 651}, - dictWord{8, 10, 170}, - dictWord{9, 10, 61}, - dictWord{9, 10, 63}, - dictWord{10, 10, 23}, - dictWord{10, 10, 37}, - dictWord{10, 10, 834}, - dictWord{11, 10, 4}, - dictWord{11, 10, 281}, - dictWord{11, 10, 503}, - dictWord{ - 11, - 10, - 677, - }, - dictWord{12, 10, 96}, - dictWord{12, 10, 130}, - dictWord{12, 10, 244}, - dictWord{14, 10, 5}, - dictWord{14, 10, 40}, - dictWord{14, 10, 162}, - dictWord{ - 14, - 10, - 202, - }, - dictWord{146, 10, 133}, - dictWord{4, 10, 406}, - dictWord{5, 10, 579}, - dictWord{12, 10, 492}, - dictWord{150, 10, 15}, - dictWord{9, 11, 137}, - dictWord{138, 11, 221}, - dictWord{134, 0, 1239}, - dictWord{11, 0, 211}, - dictWord{140, 0, 145}, - dictWord{7, 11, 390}, - dictWord{138, 11, 140}, - dictWord{ - 135, - 11, - 1418, - }, - dictWord{135, 11, 1144}, - dictWord{134, 0, 1049}, - dictWord{7, 0, 321}, - dictWord{6, 10, 17}, - dictWord{7, 10, 1001}, - dictWord{7, 10, 1982}, - dictWord{ - 9, - 10, - 886, - }, - dictWord{10, 10, 489}, - dictWord{10, 10, 800}, - dictWord{11, 10, 782}, - dictWord{12, 10, 320}, - dictWord{13, 10, 467}, - dictWord{14, 10, 145}, - dictWord{14, 10, 387}, - dictWord{143, 10, 119}, - dictWord{145, 10, 17}, - dictWord{5, 11, 407}, - dictWord{11, 11, 489}, - dictWord{19, 11, 37}, - dictWord{20, 11, 73}, - dictWord{150, 11, 38}, - dictWord{133, 10, 458}, - dictWord{135, 0, 1985}, - dictWord{7, 10, 1983}, - dictWord{8, 10, 0}, - dictWord{8, 10, 171}, - dictWord{ - 9, - 10, - 120, - }, - dictWord{9, 10, 732}, - dictWord{10, 10, 473}, - dictWord{11, 10, 656}, - dictWord{11, 10, 998}, - dictWord{18, 10, 0}, - dictWord{18, 10, 2}, - dictWord{ - 147, - 10, - 21, - }, - dictWord{5, 11, 325}, - dictWord{7, 11, 1483}, - dictWord{8, 11, 5}, - dictWord{8, 11, 227}, - dictWord{9, 11, 105}, - dictWord{10, 11, 585}, - dictWord{ - 140, - 11, - 614, - }, - dictWord{136, 0, 122}, - dictWord{132, 0, 234}, - dictWord{135, 11, 1196}, - dictWord{6, 0, 976}, - dictWord{6, 0, 1098}, - dictWord{134, 0, 1441}, - dictWord{ - 7, - 0, - 253, - }, - dictWord{136, 0, 549}, - dictWord{6, 11, 621}, - dictWord{13, 11, 504}, - dictWord{144, 11, 19}, - dictWord{132, 10, 519}, - dictWord{5, 0, 430}, - dictWord{ - 5, - 0, - 932, - }, - dictWord{6, 0, 131}, - dictWord{7, 0, 417}, - dictWord{9, 0, 522}, - dictWord{11, 0, 314}, - dictWord{141, 0, 390}, - dictWord{14, 0, 149}, - dictWord{14, 0, 399}, - dictWord{143, 0, 57}, - dictWord{5, 10, 907}, - dictWord{6, 10, 31}, - dictWord{6, 11, 218}, - dictWord{7, 10, 491}, - dictWord{7, 10, 530}, - dictWord{8, 10, 592}, - dictWord{11, 10, 53}, - dictWord{11, 10, 779}, - dictWord{12, 10, 167}, - dictWord{12, 10, 411}, - dictWord{14, 10, 14}, - dictWord{14, 10, 136}, - dictWord{15, 10, 72}, - dictWord{16, 10, 17}, - dictWord{144, 10, 72}, - dictWord{140, 11, 330}, - dictWord{7, 11, 454}, - dictWord{7, 11, 782}, - dictWord{136, 11, 768}, - dictWord{ - 132, - 0, - 507, - }, - dictWord{10, 11, 676}, - dictWord{140, 11, 462}, - dictWord{6, 0, 630}, - dictWord{9, 0, 811}, - dictWord{4, 10, 208}, - dictWord{5, 10, 106}, - dictWord{ - 6, - 10, - 531, - }, - dictWord{8, 10, 408}, - dictWord{9, 10, 188}, - dictWord{138, 10, 572}, - dictWord{4, 0, 343}, - dictWord{5, 0, 511}, - dictWord{134, 10, 1693}, - dictWord{ - 134, - 11, - 164, - }, - dictWord{132, 0, 448}, - dictWord{7, 0, 455}, - dictWord{138, 0, 591}, - dictWord{135, 0, 1381}, - dictWord{12, 10, 441}, - dictWord{150, 11, 50}, - dictWord{9, 10, 449}, - dictWord{10, 10, 192}, - dictWord{138, 10, 740}, - dictWord{6, 0, 575}, - dictWord{132, 10, 241}, - dictWord{134, 0, 1175}, - dictWord{ - 134, - 0, - 653, - }, - dictWord{134, 0, 1761}, - dictWord{134, 0, 1198}, - dictWord{132, 10, 259}, - dictWord{6, 11, 343}, - dictWord{7, 11, 195}, - dictWord{9, 11, 226}, - dictWord{ - 10, - 11, - 197, - }, - dictWord{10, 11, 575}, - dictWord{11, 11, 502}, - dictWord{139, 11, 899}, - dictWord{7, 0, 1127}, - dictWord{7, 0, 1572}, - dictWord{10, 0, 297}, - dictWord{10, 0, 422}, - dictWord{11, 0, 764}, - dictWord{11, 0, 810}, - dictWord{12, 0, 264}, - dictWord{13, 0, 102}, - dictWord{13, 0, 300}, - dictWord{13, 0, 484}, - dictWord{ - 14, - 0, - 147, - }, - dictWord{14, 0, 229}, - dictWord{17, 0, 71}, - dictWord{18, 0, 118}, - dictWord{147, 0, 120}, - dictWord{135, 11, 666}, - dictWord{132, 0, 678}, - dictWord{ - 4, - 10, - 173, - }, - dictWord{5, 10, 312}, - dictWord{5, 10, 512}, - dictWord{135, 10, 1285}, - dictWord{7, 10, 1603}, - dictWord{7, 10, 1691}, - dictWord{9, 10, 464}, - dictWord{11, 10, 195}, - dictWord{12, 10, 279}, - dictWord{12, 10, 448}, - dictWord{14, 10, 11}, - dictWord{147, 10, 102}, - dictWord{16, 0, 99}, - dictWord{146, 0, 164}, - dictWord{7, 11, 1125}, - dictWord{9, 11, 143}, - dictWord{11, 11, 61}, - dictWord{14, 11, 405}, - dictWord{150, 11, 21}, - dictWord{137, 11, 260}, - dictWord{ - 4, - 10, - 452, - }, - dictWord{5, 10, 583}, - dictWord{5, 10, 817}, - dictWord{6, 10, 433}, - dictWord{7, 10, 593}, - dictWord{7, 10, 720}, - dictWord{7, 10, 1378}, - dictWord{ - 8, - 10, - 161, - }, - dictWord{9, 10, 284}, - dictWord{10, 10, 313}, - dictWord{139, 10, 886}, - dictWord{132, 10, 547}, - dictWord{136, 10, 722}, - dictWord{14, 0, 35}, - dictWord{142, 0, 191}, - dictWord{141, 0, 45}, - dictWord{138, 0, 121}, - dictWord{132, 0, 125}, - dictWord{134, 0, 1622}, - dictWord{133, 11, 959}, - dictWord{ - 8, - 10, - 420, - }, - dictWord{139, 10, 193}, - dictWord{132, 0, 721}, - dictWord{135, 10, 409}, - dictWord{136, 0, 145}, - dictWord{7, 0, 792}, - dictWord{8, 0, 147}, - dictWord{ - 10, - 0, - 821, - }, - dictWord{11, 0, 970}, - dictWord{11, 0, 1021}, - dictWord{136, 11, 173}, - dictWord{134, 11, 266}, - dictWord{132, 0, 715}, - dictWord{7, 0, 1999}, - dictWord{138, 10, 308}, - dictWord{133, 0, 531}, - dictWord{5, 0, 168}, - dictWord{5, 0, 930}, - dictWord{8, 0, 74}, - dictWord{9, 0, 623}, - dictWord{12, 0, 500}, - dictWord{ - 140, - 0, - 579, - }, - dictWord{144, 0, 65}, - dictWord{138, 11, 246}, - dictWord{6, 0, 220}, - dictWord{7, 0, 1101}, - dictWord{13, 0, 105}, - dictWord{142, 11, 314}, - dictWord{ - 5, - 10, - 1002, - }, - dictWord{136, 10, 745}, - dictWord{134, 0, 960}, - dictWord{20, 0, 0}, - dictWord{148, 11, 0}, - dictWord{4, 0, 1005}, - dictWord{4, 10, 239}, - dictWord{ - 6, - 10, - 477, - }, - dictWord{7, 10, 1607}, - dictWord{11, 10, 68}, - dictWord{139, 10, 617}, - dictWord{6, 0, 19}, - dictWord{7, 0, 1413}, - dictWord{139, 0, 428}, - dictWord{ - 149, - 10, - 13, - }, - dictWord{7, 0, 96}, - dictWord{8, 0, 401}, - dictWord{8, 0, 703}, - dictWord{9, 0, 896}, - dictWord{136, 11, 300}, - dictWord{134, 0, 1595}, - dictWord{145, 0, 116}, - dictWord{136, 0, 1021}, - dictWord{7, 0, 1961}, - dictWord{7, 0, 1965}, - dictWord{7, 0, 2030}, - dictWord{8, 0, 150}, - dictWord{8, 0, 702}, - dictWord{8, 0, 737}, - dictWord{ - 8, - 0, - 750, - }, - dictWord{140, 0, 366}, - dictWord{11, 11, 75}, - dictWord{142, 11, 267}, - dictWord{132, 10, 367}, - dictWord{8, 0, 800}, - dictWord{9, 0, 148}, - dictWord{ - 9, - 0, - 872, - }, - dictWord{9, 0, 890}, - dictWord{11, 0, 309}, - dictWord{11, 0, 1001}, - dictWord{13, 0, 267}, - dictWord{13, 0, 323}, - dictWord{5, 11, 427}, - dictWord{ - 5, - 11, - 734, - }, - dictWord{7, 11, 478}, - dictWord{136, 11, 52}, - dictWord{7, 11, 239}, - dictWord{11, 11, 217}, - dictWord{142, 11, 165}, - dictWord{132, 11, 323}, - dictWord{140, 11, 419}, - dictWord{13, 0, 299}, - dictWord{142, 0, 75}, - dictWord{6, 11, 87}, - dictWord{6, 11, 1734}, - dictWord{7, 11, 20}, - dictWord{7, 11, 1056}, - dictWord{ - 8, - 11, - 732, - }, - dictWord{9, 11, 406}, - dictWord{9, 11, 911}, - dictWord{138, 11, 694}, - dictWord{134, 0, 1383}, - dictWord{132, 10, 694}, - dictWord{ - 133, - 11, - 613, - }, - dictWord{137, 0, 779}, - dictWord{4, 0, 598}, - dictWord{140, 10, 687}, - dictWord{6, 0, 970}, - dictWord{135, 0, 424}, - dictWord{133, 0, 547}, - dictWord{ - 7, - 11, - 32, - }, - dictWord{7, 11, 984}, - dictWord{8, 11, 85}, - dictWord{8, 11, 709}, - dictWord{9, 11, 579}, - dictWord{9, 11, 847}, - dictWord{9, 11, 856}, - dictWord{10, 11, 799}, - dictWord{11, 11, 258}, - dictWord{11, 11, 1007}, - dictWord{12, 11, 331}, - dictWord{12, 11, 615}, - dictWord{13, 11, 188}, - dictWord{13, 11, 435}, - dictWord{ - 14, - 11, - 8, - }, - dictWord{15, 11, 165}, - dictWord{16, 11, 27}, - dictWord{148, 11, 40}, - dictWord{6, 0, 1222}, - dictWord{134, 0, 1385}, - dictWord{132, 0, 876}, - dictWord{ - 138, - 11, - 151, - }, - dictWord{135, 10, 213}, - dictWord{4, 11, 167}, - dictWord{135, 11, 82}, - dictWord{133, 0, 133}, - dictWord{6, 11, 24}, - dictWord{7, 11, 74}, - dictWord{ - 7, - 11, - 678, - }, - dictWord{137, 11, 258}, - dictWord{5, 11, 62}, - dictWord{6, 11, 534}, - dictWord{7, 11, 684}, - dictWord{7, 11, 1043}, - dictWord{7, 11, 1072}, - dictWord{ - 8, - 11, - 280, - }, - dictWord{8, 11, 541}, - dictWord{8, 11, 686}, - dictWord{10, 11, 519}, - dictWord{11, 11, 252}, - dictWord{140, 11, 282}, - dictWord{136, 0, 187}, - dictWord{8, 0, 8}, - dictWord{10, 0, 0}, - dictWord{10, 0, 818}, - dictWord{139, 0, 988}, - dictWord{132, 11, 359}, - dictWord{11, 0, 429}, - dictWord{15, 0, 51}, - dictWord{ - 135, - 10, - 1672, - }, - dictWord{136, 0, 685}, - dictWord{5, 11, 211}, - dictWord{7, 11, 88}, - dictWord{136, 11, 627}, - dictWord{134, 0, 472}, - dictWord{136, 0, 132}, - dictWord{ - 6, - 11, - 145, - }, - dictWord{141, 11, 336}, - dictWord{4, 10, 751}, - dictWord{11, 10, 390}, - dictWord{140, 10, 32}, - dictWord{6, 0, 938}, - dictWord{6, 0, 1060}, - dictWord{ - 4, - 11, - 263, - }, - dictWord{4, 10, 409}, - dictWord{133, 10, 78}, - dictWord{137, 0, 874}, - dictWord{8, 0, 774}, - dictWord{10, 0, 670}, - dictWord{12, 0, 51}, - dictWord{ - 4, - 11, - 916, - }, - dictWord{6, 10, 473}, - dictWord{7, 10, 1602}, - dictWord{10, 10, 698}, - dictWord{12, 10, 212}, - dictWord{13, 10, 307}, - dictWord{145, 10, 105}, - dictWord{146, 0, 92}, - dictWord{143, 10, 156}, - dictWord{132, 0, 830}, - dictWord{137, 0, 701}, - dictWord{4, 11, 599}, - dictWord{6, 11, 1634}, - dictWord{7, 11, 5}, - dictWord{7, 11, 55}, - dictWord{7, 11, 67}, - dictWord{7, 11, 97}, - dictWord{7, 11, 691}, - dictWord{7, 11, 979}, - dictWord{7, 11, 1697}, - dictWord{8, 11, 207}, - dictWord{ - 8, - 11, - 214, - }, - dictWord{8, 11, 231}, - dictWord{8, 11, 294}, - dictWord{8, 11, 336}, - dictWord{8, 11, 428}, - dictWord{8, 11, 451}, - dictWord{8, 11, 460}, - dictWord{8, 11, 471}, - dictWord{8, 11, 622}, - dictWord{8, 11, 626}, - dictWord{8, 11, 679}, - dictWord{8, 11, 759}, - dictWord{8, 11, 829}, - dictWord{9, 11, 11}, - dictWord{9, 11, 246}, - dictWord{ - 9, - 11, - 484, - }, - dictWord{9, 11, 573}, - dictWord{9, 11, 706}, - dictWord{9, 11, 762}, - dictWord{9, 11, 798}, - dictWord{9, 11, 855}, - dictWord{9, 11, 870}, - dictWord{ - 9, - 11, - 912, - }, - dictWord{10, 11, 303}, - dictWord{10, 11, 335}, - dictWord{10, 11, 424}, - dictWord{10, 11, 461}, - dictWord{10, 11, 543}, - dictWord{10, 11, 759}, - dictWord{10, 11, 814}, - dictWord{11, 11, 59}, - dictWord{11, 11, 199}, - dictWord{11, 11, 235}, - dictWord{11, 11, 475}, - dictWord{11, 11, 590}, - dictWord{11, 11, 929}, - dictWord{11, 11, 963}, - dictWord{12, 11, 114}, - dictWord{12, 11, 182}, - dictWord{12, 11, 226}, - dictWord{12, 11, 332}, - dictWord{12, 11, 439}, - dictWord{ - 12, - 11, - 575, - }, - dictWord{12, 11, 598}, - dictWord{13, 11, 8}, - dictWord{13, 11, 125}, - dictWord{13, 11, 194}, - dictWord{13, 11, 287}, - dictWord{14, 11, 197}, - dictWord{ - 14, - 11, - 383, - }, - dictWord{15, 11, 53}, - dictWord{17, 11, 63}, - dictWord{19, 11, 46}, - dictWord{19, 11, 98}, - dictWord{19, 11, 106}, - dictWord{148, 11, 85}, - dictWord{ - 4, - 0, - 127, - }, - dictWord{5, 0, 350}, - dictWord{6, 0, 356}, - dictWord{8, 0, 426}, - dictWord{9, 0, 572}, - dictWord{10, 0, 247}, - dictWord{139, 0, 312}, - dictWord{134, 0, 1215}, - dictWord{6, 0, 59}, - dictWord{9, 0, 603}, - dictWord{13, 0, 397}, - dictWord{7, 11, 1853}, - dictWord{138, 11, 437}, - dictWord{134, 0, 1762}, - dictWord{ - 147, - 11, - 126, - }, - dictWord{135, 10, 883}, - dictWord{13, 0, 293}, - dictWord{142, 0, 56}, - dictWord{133, 10, 617}, - dictWord{139, 10, 50}, - dictWord{5, 11, 187}, - dictWord{ - 7, - 10, - 1518, - }, - dictWord{139, 10, 694}, - dictWord{135, 0, 441}, - dictWord{6, 0, 111}, - dictWord{7, 0, 4}, - dictWord{8, 0, 163}, - dictWord{8, 0, 776}, - dictWord{ - 138, - 0, - 566, - }, - dictWord{132, 0, 806}, - dictWord{4, 11, 215}, - dictWord{9, 11, 38}, - dictWord{10, 11, 3}, - dictWord{11, 11, 23}, - dictWord{11, 11, 127}, - dictWord{ - 139, - 11, - 796, - }, - dictWord{14, 0, 233}, - dictWord{4, 10, 546}, - dictWord{135, 10, 2042}, - dictWord{135, 0, 1994}, - dictWord{134, 0, 1739}, - dictWord{135, 11, 1530}, - dictWord{136, 0, 393}, - dictWord{5, 0, 297}, - dictWord{7, 0, 1038}, - dictWord{14, 0, 359}, - dictWord{19, 0, 52}, - dictWord{148, 0, 47}, - dictWord{135, 0, 309}, - dictWord{ - 4, - 10, - 313, - }, - dictWord{133, 10, 577}, - dictWord{8, 10, 184}, - dictWord{141, 10, 433}, - dictWord{135, 10, 935}, - dictWord{12, 10, 186}, - dictWord{ - 12, - 10, - 292, - }, - dictWord{14, 10, 100}, - dictWord{146, 10, 70}, - dictWord{136, 0, 363}, - dictWord{14, 0, 175}, - dictWord{11, 10, 402}, - dictWord{12, 10, 109}, - dictWord{ - 12, - 10, - 431, - }, - dictWord{13, 10, 179}, - dictWord{13, 10, 206}, - dictWord{14, 10, 217}, - dictWord{16, 10, 3}, - dictWord{148, 10, 53}, - dictWord{5, 10, 886}, - dictWord{ - 6, - 10, - 46, - }, - dictWord{6, 10, 1790}, - dictWord{7, 10, 14}, - dictWord{7, 10, 732}, - dictWord{7, 10, 1654}, - dictWord{8, 10, 95}, - dictWord{8, 10, 327}, - dictWord{ - 8, - 10, - 616, - }, - dictWord{9, 10, 892}, - dictWord{10, 10, 598}, - dictWord{10, 10, 769}, - dictWord{11, 10, 134}, - dictWord{11, 10, 747}, - dictWord{12, 10, 378}, - dictWord{ - 142, - 10, - 97, - }, - dictWord{136, 0, 666}, - dictWord{135, 0, 1675}, - dictWord{6, 0, 655}, - dictWord{134, 0, 1600}, - dictWord{135, 0, 808}, - dictWord{133, 10, 1021}, - dictWord{4, 11, 28}, - dictWord{5, 11, 440}, - dictWord{7, 11, 248}, - dictWord{11, 11, 833}, - dictWord{140, 11, 344}, - dictWord{134, 11, 1654}, - dictWord{ - 132, - 0, - 280, - }, - dictWord{140, 0, 54}, - dictWord{4, 0, 421}, - dictWord{133, 0, 548}, - dictWord{132, 10, 153}, - dictWord{6, 11, 339}, - dictWord{135, 11, 923}, - dictWord{ - 133, - 11, - 853, - }, - dictWord{133, 10, 798}, - dictWord{132, 10, 587}, - dictWord{6, 11, 249}, - dictWord{7, 11, 1234}, - dictWord{139, 11, 573}, - dictWord{6, 10, 598}, - dictWord{7, 10, 42}, - dictWord{8, 10, 695}, - dictWord{10, 10, 212}, - dictWord{11, 10, 158}, - dictWord{14, 10, 196}, - dictWord{145, 10, 85}, - dictWord{7, 0, 249}, - dictWord{5, 10, 957}, - dictWord{133, 10, 1008}, - dictWord{4, 10, 129}, - dictWord{135, 10, 465}, - dictWord{6, 0, 254}, - dictWord{7, 0, 842}, - dictWord{7, 0, 1659}, - dictWord{9, 0, 109}, - dictWord{10, 0, 103}, - dictWord{7, 10, 908}, - dictWord{7, 10, 1201}, - dictWord{9, 10, 755}, - dictWord{11, 10, 906}, - dictWord{12, 10, 527}, - dictWord{146, 10, 7}, - dictWord{5, 0, 262}, - dictWord{136, 10, 450}, - dictWord{144, 0, 1}, - dictWord{10, 11, 201}, - dictWord{142, 11, 319}, - dictWord{7, 11, 49}, - dictWord{ - 7, - 11, - 392, - }, - dictWord{8, 11, 20}, - dictWord{8, 11, 172}, - dictWord{8, 11, 690}, - dictWord{9, 11, 383}, - dictWord{9, 11, 845}, - dictWord{10, 11, 48}, - dictWord{ - 11, - 11, - 293, - }, - dictWord{11, 11, 832}, - dictWord{11, 11, 920}, - dictWord{141, 11, 221}, - dictWord{5, 11, 858}, - dictWord{133, 11, 992}, - dictWord{134, 0, 805}, - dictWord{139, 10, 1003}, - dictWord{6, 0, 1630}, - dictWord{134, 11, 307}, - dictWord{7, 11, 1512}, - dictWord{135, 11, 1794}, - dictWord{6, 11, 268}, - dictWord{ - 137, - 11, - 62, - }, - dictWord{135, 10, 1868}, - dictWord{133, 0, 671}, - dictWord{4, 0, 989}, - dictWord{8, 0, 972}, - dictWord{136, 0, 998}, - dictWord{132, 11, 423}, - dictWord{132, 0, 889}, - dictWord{135, 0, 1382}, - dictWord{135, 0, 1910}, - dictWord{7, 10, 965}, - dictWord{7, 10, 1460}, - dictWord{135, 10, 1604}, - dictWord{ - 4, - 0, - 627, - }, - dictWord{5, 0, 775}, - dictWord{138, 11, 106}, - dictWord{134, 11, 348}, - dictWord{7, 0, 202}, - dictWord{11, 0, 362}, - dictWord{11, 0, 948}, - dictWord{ - 140, - 0, - 388, - }, - dictWord{138, 11, 771}, - dictWord{6, 11, 613}, - dictWord{136, 11, 223}, - dictWord{6, 0, 560}, - dictWord{7, 0, 451}, - dictWord{8, 0, 389}, - dictWord{ - 12, - 0, - 490, - }, - dictWord{13, 0, 16}, - dictWord{13, 0, 215}, - dictWord{13, 0, 351}, - dictWord{18, 0, 132}, - dictWord{147, 0, 125}, - dictWord{135, 0, 841}, - dictWord{ - 136, - 0, - 566, - }, - dictWord{136, 0, 938}, - dictWord{132, 11, 670}, - dictWord{5, 0, 912}, - dictWord{6, 0, 1695}, - dictWord{140, 11, 55}, - dictWord{9, 11, 40}, - dictWord{ - 139, - 11, - 136, - }, - dictWord{7, 0, 1361}, - dictWord{7, 10, 982}, - dictWord{10, 10, 32}, - dictWord{143, 10, 56}, - dictWord{11, 11, 259}, - dictWord{140, 11, 270}, - dictWord{ - 5, - 0, - 236, - }, - dictWord{6, 0, 572}, - dictWord{8, 0, 492}, - dictWord{11, 0, 618}, - dictWord{144, 0, 56}, - dictWord{8, 11, 572}, - dictWord{9, 11, 310}, - dictWord{9, 11, 682}, - dictWord{137, 11, 698}, - dictWord{134, 0, 1854}, - dictWord{5, 0, 190}, - dictWord{136, 0, 318}, - dictWord{133, 10, 435}, - dictWord{135, 0, 1376}, - dictWord{ - 4, - 11, - 296, - }, - dictWord{6, 11, 352}, - dictWord{7, 11, 401}, - dictWord{7, 11, 1410}, - dictWord{7, 11, 1594}, - dictWord{7, 11, 1674}, - dictWord{8, 11, 63}, - dictWord{ - 8, - 11, - 660, - }, - dictWord{137, 11, 74}, - dictWord{7, 0, 349}, - dictWord{5, 10, 85}, - dictWord{6, 10, 419}, - dictWord{7, 10, 305}, - dictWord{7, 10, 361}, - dictWord{7, 10, 1337}, - dictWord{8, 10, 71}, - dictWord{140, 10, 519}, - dictWord{4, 11, 139}, - dictWord{4, 11, 388}, - dictWord{140, 11, 188}, - dictWord{6, 0, 1972}, - dictWord{6, 0, 2013}, - dictWord{8, 0, 951}, - dictWord{10, 0, 947}, - dictWord{10, 0, 974}, - dictWord{10, 0, 1018}, - dictWord{142, 0, 476}, - dictWord{140, 10, 688}, - dictWord{ - 135, - 10, - 740, - }, - dictWord{5, 10, 691}, - dictWord{7, 10, 345}, - dictWord{9, 10, 94}, - dictWord{140, 10, 169}, - dictWord{9, 0, 344}, - dictWord{5, 10, 183}, - dictWord{6, 10, 582}, - dictWord{10, 10, 679}, - dictWord{140, 10, 435}, - dictWord{135, 10, 511}, - dictWord{132, 0, 850}, - dictWord{8, 11, 441}, - dictWord{10, 11, 314}, - dictWord{ - 143, - 11, - 3, - }, - dictWord{7, 10, 1993}, - dictWord{136, 10, 684}, - dictWord{4, 11, 747}, - dictWord{6, 11, 290}, - dictWord{6, 10, 583}, - dictWord{7, 11, 649}, - dictWord{ - 7, - 11, - 1479, - }, - dictWord{135, 11, 1583}, - dictWord{133, 11, 232}, - dictWord{133, 10, 704}, - dictWord{134, 0, 910}, - dictWord{4, 10, 179}, - dictWord{5, 10, 198}, - dictWord{133, 10, 697}, - dictWord{7, 10, 347}, - dictWord{7, 10, 971}, - dictWord{8, 10, 181}, - dictWord{138, 10, 711}, - dictWord{136, 11, 525}, - dictWord{ - 14, - 0, - 19, - }, - dictWord{14, 0, 28}, - dictWord{144, 0, 29}, - dictWord{7, 0, 85}, - dictWord{7, 0, 247}, - dictWord{8, 0, 585}, - dictWord{138, 0, 163}, - dictWord{4, 0, 487}, - dictWord{ - 7, - 11, - 472, - }, - dictWord{7, 11, 1801}, - dictWord{10, 11, 748}, - dictWord{141, 11, 458}, - dictWord{4, 10, 243}, - dictWord{5, 10, 203}, - dictWord{7, 10, 19}, - dictWord{ - 7, - 10, - 71, - }, - dictWord{7, 10, 113}, - dictWord{10, 10, 405}, - dictWord{11, 10, 357}, - dictWord{142, 10, 240}, - dictWord{7, 10, 1450}, - dictWord{139, 10, 99}, - dictWord{132, 11, 425}, - dictWord{138, 0, 145}, - dictWord{147, 0, 83}, - dictWord{6, 10, 492}, - dictWord{137, 11, 247}, - dictWord{4, 0, 1013}, - dictWord{ - 134, - 0, - 2033, - }, - dictWord{5, 10, 134}, - dictWord{6, 10, 408}, - dictWord{6, 10, 495}, - dictWord{135, 10, 1593}, - dictWord{135, 0, 1922}, - dictWord{134, 11, 1768}, - dictWord{4, 0, 124}, - dictWord{10, 0, 457}, - dictWord{11, 0, 121}, - dictWord{11, 0, 169}, - dictWord{11, 0, 870}, - dictWord{11, 0, 874}, - dictWord{12, 0, 214}, - dictWord{ - 14, - 0, - 187, - }, - dictWord{143, 0, 77}, - dictWord{5, 0, 557}, - dictWord{135, 0, 1457}, - dictWord{139, 0, 66}, - dictWord{5, 11, 943}, - dictWord{6, 11, 1779}, - dictWord{ - 142, - 10, - 4, - }, - dictWord{4, 10, 248}, - dictWord{4, 10, 665}, - dictWord{7, 10, 137}, - dictWord{137, 10, 349}, - dictWord{7, 0, 1193}, - dictWord{5, 11, 245}, - dictWord{ - 6, - 11, - 576, - }, - dictWord{7, 11, 582}, - dictWord{136, 11, 225}, - dictWord{144, 0, 82}, - dictWord{7, 10, 1270}, - dictWord{139, 10, 612}, - dictWord{5, 0, 454}, - dictWord{ - 10, - 0, - 352, - }, - dictWord{138, 11, 352}, - dictWord{18, 0, 57}, - dictWord{5, 10, 371}, - dictWord{135, 10, 563}, - dictWord{135, 0, 1333}, - dictWord{6, 0, 107}, - dictWord{ - 7, - 0, - 638, - }, - dictWord{7, 0, 1632}, - dictWord{9, 0, 396}, - dictWord{134, 11, 610}, - dictWord{5, 0, 370}, - dictWord{134, 0, 1756}, - dictWord{4, 10, 374}, - dictWord{ - 7, - 10, - 547, - }, - dictWord{7, 10, 1700}, - dictWord{7, 10, 1833}, - dictWord{139, 10, 858}, - dictWord{133, 0, 204}, - dictWord{6, 0, 1305}, - dictWord{9, 10, 311}, - dictWord{ - 141, - 10, - 42, - }, - dictWord{5, 0, 970}, - dictWord{134, 0, 1706}, - dictWord{6, 10, 1647}, - dictWord{7, 10, 1552}, - dictWord{7, 10, 2010}, - dictWord{9, 10, 494}, - dictWord{137, 10, 509}, - dictWord{13, 11, 455}, - dictWord{15, 11, 99}, - dictWord{15, 11, 129}, - dictWord{144, 11, 68}, - dictWord{135, 0, 3}, - dictWord{4, 0, 35}, - dictWord{ - 5, - 0, - 121, - }, - dictWord{5, 0, 483}, - dictWord{5, 0, 685}, - dictWord{6, 0, 489}, - dictWord{6, 0, 782}, - dictWord{6, 0, 1032}, - dictWord{7, 0, 1204}, - dictWord{136, 0, 394}, - dictWord{4, 0, 921}, - dictWord{133, 0, 1007}, - dictWord{8, 11, 360}, - dictWord{138, 11, 63}, - dictWord{135, 0, 1696}, - dictWord{134, 0, 1519}, - dictWord{ - 132, - 11, - 443, - }, - dictWord{135, 11, 944}, - dictWord{6, 10, 123}, - dictWord{7, 10, 214}, - dictWord{9, 10, 728}, - dictWord{10, 10, 157}, - dictWord{11, 10, 346}, - dictWord{11, 10, 662}, - dictWord{143, 10, 106}, - dictWord{137, 0, 981}, - dictWord{135, 10, 1435}, - dictWord{134, 0, 1072}, - dictWord{132, 0, 712}, - dictWord{ - 134, - 0, - 1629, - }, - dictWord{134, 0, 728}, - dictWord{4, 11, 298}, - dictWord{137, 11, 483}, - dictWord{6, 0, 1177}, - dictWord{6, 0, 1271}, - dictWord{5, 11, 164}, - dictWord{ - 7, - 11, - 121, - }, - dictWord{142, 11, 189}, - dictWord{7, 0, 1608}, - dictWord{4, 10, 707}, - dictWord{5, 10, 588}, - dictWord{6, 10, 393}, - dictWord{13, 10, 106}, - dictWord{ - 18, - 10, - 49, - }, - dictWord{147, 10, 41}, - dictWord{23, 0, 16}, - dictWord{151, 11, 16}, - dictWord{6, 10, 211}, - dictWord{7, 10, 1690}, - dictWord{11, 10, 486}, - dictWord{140, 10, 369}, - dictWord{133, 0, 485}, - dictWord{19, 11, 15}, - dictWord{149, 11, 27}, - dictWord{4, 11, 172}, - dictWord{9, 11, 611}, - dictWord{10, 11, 436}, - dictWord{12, 11, 673}, - dictWord{141, 11, 255}, - dictWord{5, 11, 844}, - dictWord{10, 11, 484}, - dictWord{11, 11, 754}, - dictWord{12, 11, 457}, - dictWord{ - 14, - 11, - 171, - }, - dictWord{14, 11, 389}, - dictWord{146, 11, 153}, - dictWord{4, 0, 285}, - dictWord{5, 0, 27}, - dictWord{5, 0, 317}, - dictWord{6, 0, 301}, - dictWord{7, 0, 7}, - dictWord{ - 8, - 0, - 153, - }, - dictWord{10, 0, 766}, - dictWord{11, 0, 468}, - dictWord{12, 0, 467}, - dictWord{141, 0, 143}, - dictWord{134, 0, 1462}, - dictWord{9, 11, 263}, - dictWord{ - 10, - 11, - 147, - }, - dictWord{138, 11, 492}, - dictWord{133, 11, 537}, - dictWord{6, 0, 1945}, - dictWord{6, 0, 1986}, - dictWord{6, 0, 1991}, - dictWord{134, 0, 2038}, - dictWord{134, 10, 219}, - dictWord{137, 11, 842}, - dictWord{14, 0, 52}, - dictWord{17, 0, 50}, - dictWord{5, 10, 582}, - dictWord{6, 10, 1646}, - dictWord{7, 10, 99}, - dictWord{7, 10, 1962}, - dictWord{7, 10, 1986}, - dictWord{8, 10, 515}, - dictWord{8, 10, 773}, - dictWord{9, 10, 23}, - dictWord{9, 10, 491}, - dictWord{12, 10, 620}, - dictWord{142, 10, 93}, - dictWord{138, 11, 97}, - dictWord{20, 0, 21}, - dictWord{20, 0, 44}, - dictWord{133, 10, 851}, - dictWord{136, 0, 819}, - dictWord{139, 0, 917}, - dictWord{5, 11, 230}, - dictWord{5, 11, 392}, - dictWord{6, 11, 420}, - dictWord{8, 10, 762}, - dictWord{8, 10, 812}, - dictWord{9, 11, 568}, - dictWord{9, 10, 910}, - dictWord{140, 11, 612}, - dictWord{135, 0, 784}, - dictWord{15, 0, 135}, - dictWord{143, 11, 135}, - dictWord{10, 0, 454}, - dictWord{140, 0, 324}, - dictWord{4, 11, 0}, - dictWord{5, 11, 41}, - dictWord{7, 11, 1459}, - dictWord{7, 11, 1469}, - dictWord{7, 11, 1618}, - dictWord{7, 11, 1859}, - dictWord{9, 11, 549}, - dictWord{139, 11, 905}, - dictWord{4, 10, 98}, - dictWord{7, 10, 1365}, - dictWord{9, 10, 422}, - dictWord{9, 10, 670}, - dictWord{10, 10, 775}, - dictWord{11, 10, 210}, - dictWord{13, 10, 26}, - dictWord{13, 10, 457}, - dictWord{141, 10, 476}, - dictWord{6, 0, 1719}, - dictWord{6, 0, 1735}, - dictWord{7, 0, 2016}, - dictWord{7, 0, 2020}, - dictWord{8, 0, 837}, - dictWord{137, 0, 852}, - dictWord{133, 11, 696}, - dictWord{135, 0, 852}, - dictWord{132, 0, 952}, - dictWord{134, 10, 1730}, - dictWord{132, 11, 771}, - dictWord{ - 138, - 0, - 568, - }, - dictWord{137, 0, 448}, - dictWord{139, 0, 146}, - dictWord{8, 0, 67}, - dictWord{138, 0, 419}, - dictWord{133, 11, 921}, - dictWord{137, 10, 147}, - dictWord{134, 0, 1826}, - dictWord{10, 0, 657}, - dictWord{14, 0, 297}, - dictWord{142, 0, 361}, - dictWord{6, 0, 666}, - dictWord{6, 0, 767}, - dictWord{134, 0, 1542}, - dictWord{139, 0, 729}, - dictWord{6, 11, 180}, - dictWord{7, 11, 1137}, - dictWord{8, 11, 751}, - dictWord{139, 11, 805}, - dictWord{4, 11, 183}, - dictWord{7, 11, 271}, - dictWord{11, 11, 824}, - dictWord{11, 11, 952}, - dictWord{13, 11, 278}, - dictWord{13, 11, 339}, - dictWord{13, 11, 482}, - dictWord{14, 11, 424}, - dictWord{ - 148, - 11, - 99, - }, - dictWord{4, 0, 669}, - dictWord{5, 11, 477}, - dictWord{5, 11, 596}, - dictWord{6, 11, 505}, - dictWord{7, 11, 1221}, - dictWord{11, 11, 907}, - dictWord{ - 12, - 11, - 209, - }, - dictWord{141, 11, 214}, - dictWord{135, 11, 1215}, - dictWord{5, 0, 402}, - dictWord{6, 10, 30}, - dictWord{11, 10, 56}, - dictWord{139, 10, 305}, - dictWord{ - 7, - 11, - 564, - }, - dictWord{142, 11, 168}, - dictWord{139, 0, 152}, - dictWord{7, 0, 912}, - dictWord{135, 10, 1614}, - dictWord{4, 10, 150}, - dictWord{5, 10, 303}, - dictWord{134, 10, 327}, - dictWord{7, 0, 320}, - dictWord{8, 0, 51}, - dictWord{9, 0, 868}, - dictWord{10, 0, 833}, - dictWord{12, 0, 481}, - dictWord{12, 0, 570}, - dictWord{ - 148, - 0, - 106, - }, - dictWord{132, 0, 445}, - dictWord{7, 11, 274}, - dictWord{11, 11, 263}, - dictWord{11, 11, 479}, - dictWord{11, 11, 507}, - dictWord{140, 11, 277}, - dictWord{10, 0, 555}, - dictWord{11, 0, 308}, - dictWord{19, 0, 95}, - dictWord{6, 11, 1645}, - dictWord{8, 10, 192}, - dictWord{10, 10, 78}, - dictWord{141, 10, 359}, - dictWord{135, 10, 786}, - dictWord{6, 11, 92}, - dictWord{6, 11, 188}, - dictWord{7, 11, 1269}, - dictWord{7, 11, 1524}, - dictWord{7, 11, 1876}, - dictWord{10, 11, 228}, - dictWord{139, 11, 1020}, - dictWord{4, 11, 459}, - dictWord{133, 11, 966}, - dictWord{11, 0, 386}, - dictWord{6, 10, 1638}, - dictWord{7, 10, 79}, - dictWord{ - 7, - 10, - 496, - }, - dictWord{9, 10, 138}, - dictWord{10, 10, 336}, - dictWord{12, 10, 412}, - dictWord{12, 10, 440}, - dictWord{142, 10, 305}, - dictWord{133, 0, 239}, - dictWord{ - 7, - 0, - 83, - }, - dictWord{7, 0, 1990}, - dictWord{8, 0, 130}, - dictWord{139, 0, 720}, - dictWord{138, 11, 709}, - dictWord{4, 0, 143}, - dictWord{5, 0, 550}, - dictWord{ - 133, - 0, - 752, - }, - dictWord{5, 0, 123}, - dictWord{6, 0, 530}, - dictWord{7, 0, 348}, - dictWord{135, 0, 1419}, - dictWord{135, 0, 2024}, - dictWord{6, 11, 18}, - dictWord{7, 11, 179}, - dictWord{7, 11, 721}, - dictWord{7, 11, 932}, - dictWord{8, 11, 548}, - dictWord{8, 11, 757}, - dictWord{9, 11, 54}, - dictWord{9, 11, 65}, - dictWord{9, 11, 532}, - dictWord{ - 9, - 11, - 844, - }, - dictWord{10, 11, 113}, - dictWord{10, 11, 117}, - dictWord{10, 11, 236}, - dictWord{10, 11, 315}, - dictWord{10, 11, 430}, - dictWord{10, 11, 798}, - dictWord{11, 11, 153}, - dictWord{11, 11, 351}, - dictWord{11, 11, 375}, - dictWord{12, 11, 78}, - dictWord{12, 11, 151}, - dictWord{12, 11, 392}, - dictWord{ - 14, - 11, - 248, - }, - dictWord{143, 11, 23}, - dictWord{7, 10, 204}, - dictWord{7, 10, 415}, - dictWord{8, 10, 42}, - dictWord{10, 10, 85}, - dictWord{139, 10, 564}, - dictWord{ - 134, - 0, - 958, - }, - dictWord{133, 11, 965}, - dictWord{132, 0, 210}, - dictWord{135, 11, 1429}, - dictWord{138, 11, 480}, - dictWord{134, 11, 182}, - dictWord{ - 139, - 11, - 345, - }, - dictWord{10, 11, 65}, - dictWord{10, 11, 488}, - dictWord{138, 11, 497}, - dictWord{4, 10, 3}, - dictWord{5, 10, 247}, - dictWord{5, 10, 644}, - dictWord{ - 7, - 10, - 744, - }, - dictWord{7, 10, 1207}, - dictWord{7, 10, 1225}, - dictWord{7, 10, 1909}, - dictWord{146, 10, 147}, - dictWord{132, 0, 430}, - dictWord{5, 10, 285}, - dictWord{ - 9, - 10, - 67, - }, - dictWord{13, 10, 473}, - dictWord{143, 10, 82}, - dictWord{144, 11, 16}, - dictWord{7, 11, 1162}, - dictWord{9, 11, 588}, - dictWord{10, 11, 260}, - dictWord{151, 10, 8}, - dictWord{133, 0, 213}, - dictWord{138, 0, 7}, - dictWord{135, 0, 801}, - dictWord{134, 11, 1786}, - dictWord{135, 11, 308}, - dictWord{6, 0, 936}, - dictWord{134, 0, 1289}, - dictWord{133, 0, 108}, - dictWord{132, 0, 885}, - dictWord{133, 0, 219}, - dictWord{139, 0, 587}, - dictWord{4, 0, 193}, - dictWord{5, 0, 916}, - dictWord{6, 0, 1041}, - dictWord{7, 0, 364}, - dictWord{10, 0, 398}, - dictWord{10, 0, 726}, - dictWord{11, 0, 317}, - dictWord{11, 0, 626}, - dictWord{12, 0, 142}, - dictWord{12, 0, 288}, - dictWord{12, 0, 678}, - dictWord{13, 0, 313}, - dictWord{15, 0, 113}, - dictWord{146, 0, 114}, - dictWord{135, 0, 1165}, - dictWord{6, 0, 241}, - dictWord{ - 9, - 0, - 342, - }, - dictWord{10, 0, 729}, - dictWord{11, 0, 284}, - dictWord{11, 0, 445}, - dictWord{11, 0, 651}, - dictWord{11, 0, 863}, - dictWord{13, 0, 398}, - dictWord{ - 146, - 0, - 99, - }, - dictWord{7, 0, 907}, - dictWord{136, 0, 832}, - dictWord{9, 0, 303}, - dictWord{4, 10, 29}, - dictWord{6, 10, 532}, - dictWord{7, 10, 1628}, - dictWord{7, 10, 1648}, - dictWord{9, 10, 350}, - dictWord{10, 10, 433}, - dictWord{11, 10, 97}, - dictWord{11, 10, 557}, - dictWord{11, 10, 745}, - dictWord{12, 10, 289}, - dictWord{ - 12, - 10, - 335, - }, - dictWord{12, 10, 348}, - dictWord{12, 10, 606}, - dictWord{13, 10, 116}, - dictWord{13, 10, 233}, - dictWord{13, 10, 466}, - dictWord{14, 10, 181}, - dictWord{ - 14, - 10, - 209, - }, - dictWord{14, 10, 232}, - dictWord{14, 10, 236}, - dictWord{14, 10, 300}, - dictWord{16, 10, 41}, - dictWord{148, 10, 97}, - dictWord{7, 11, 423}, - dictWord{7, 10, 1692}, - dictWord{136, 11, 588}, - dictWord{6, 0, 931}, - dictWord{134, 0, 1454}, - dictWord{5, 10, 501}, - dictWord{7, 10, 1704}, - dictWord{9, 10, 553}, - dictWord{11, 10, 520}, - dictWord{12, 10, 557}, - dictWord{141, 10, 249}, - dictWord{136, 11, 287}, - dictWord{4, 0, 562}, - dictWord{9, 0, 254}, - dictWord{ - 139, - 0, - 879, - }, - dictWord{132, 0, 786}, - dictWord{14, 11, 32}, - dictWord{18, 11, 85}, - dictWord{20, 11, 2}, - dictWord{152, 11, 16}, - dictWord{135, 0, 1294}, - dictWord{ - 7, - 11, - 723, - }, - dictWord{135, 11, 1135}, - dictWord{6, 0, 216}, - dictWord{7, 0, 901}, - dictWord{7, 0, 1343}, - dictWord{8, 0, 493}, - dictWord{134, 11, 403}, - dictWord{ - 7, - 11, - 719, - }, - dictWord{8, 11, 809}, - dictWord{136, 11, 834}, - dictWord{5, 11, 210}, - dictWord{6, 11, 213}, - dictWord{7, 11, 60}, - dictWord{10, 11, 364}, - dictWord{ - 139, - 11, - 135, - }, - dictWord{7, 0, 341}, - dictWord{11, 0, 219}, - dictWord{5, 11, 607}, - dictWord{8, 11, 326}, - dictWord{136, 11, 490}, - dictWord{4, 11, 701}, - dictWord{ - 5, - 11, - 472, - }, - dictWord{5, 11, 639}, - dictWord{7, 11, 1249}, - dictWord{9, 11, 758}, - dictWord{139, 11, 896}, - dictWord{135, 11, 380}, - dictWord{135, 11, 1947}, - dictWord{139, 0, 130}, - dictWord{135, 0, 1734}, - dictWord{10, 0, 115}, - dictWord{11, 0, 420}, - dictWord{12, 0, 154}, - dictWord{13, 0, 404}, - dictWord{14, 0, 346}, - dictWord{143, 0, 54}, - dictWord{134, 10, 129}, - dictWord{4, 11, 386}, - dictWord{7, 11, 41}, - dictWord{8, 11, 405}, - dictWord{9, 11, 497}, - dictWord{11, 11, 110}, - dictWord{11, 11, 360}, - dictWord{15, 11, 37}, - dictWord{144, 11, 84}, - dictWord{141, 11, 282}, - dictWord{5, 11, 46}, - dictWord{7, 11, 1452}, - dictWord{7, 11, 1480}, - dictWord{8, 11, 634}, - dictWord{140, 11, 472}, - dictWord{4, 11, 524}, - dictWord{136, 11, 810}, - dictWord{10, 11, 238}, - dictWord{141, 11, 33}, - dictWord{ - 133, - 0, - 604, - }, - dictWord{5, 0, 1011}, - dictWord{136, 0, 701}, - dictWord{8, 0, 856}, - dictWord{8, 0, 858}, - dictWord{8, 0, 879}, - dictWord{12, 0, 702}, - dictWord{142, 0, 447}, - dictWord{4, 0, 54}, - dictWord{5, 0, 666}, - dictWord{7, 0, 1039}, - dictWord{7, 0, 1130}, - dictWord{9, 0, 195}, - dictWord{138, 0, 302}, - dictWord{4, 10, 25}, - dictWord{ - 5, - 10, - 60, - }, - dictWord{6, 10, 504}, - dictWord{7, 10, 614}, - dictWord{7, 10, 1155}, - dictWord{140, 10, 0}, - dictWord{7, 10, 1248}, - dictWord{11, 10, 621}, - dictWord{ - 139, - 10, - 702, - }, - dictWord{133, 11, 997}, - dictWord{137, 10, 321}, - dictWord{134, 0, 1669}, - dictWord{134, 0, 1791}, - dictWord{4, 10, 379}, - dictWord{ - 135, - 10, - 1397, - }, - dictWord{138, 11, 372}, - dictWord{5, 11, 782}, - dictWord{5, 11, 829}, - dictWord{134, 11, 1738}, - dictWord{135, 0, 1228}, - dictWord{4, 10, 118}, - dictWord{6, 10, 274}, - dictWord{6, 10, 361}, - dictWord{7, 10, 75}, - dictWord{141, 10, 441}, - dictWord{132, 0, 623}, - dictWord{9, 11, 279}, - dictWord{10, 11, 407}, - dictWord{14, 11, 84}, - dictWord{150, 11, 18}, - dictWord{137, 10, 841}, - dictWord{135, 0, 798}, - dictWord{140, 10, 693}, - dictWord{5, 10, 314}, - dictWord{6, 10, 221}, - dictWord{7, 10, 419}, - dictWord{10, 10, 650}, - dictWord{11, 10, 396}, - dictWord{12, 10, 156}, - dictWord{13, 10, 369}, - dictWord{14, 10, 333}, - dictWord{ - 145, - 10, - 47, - }, - dictWord{135, 11, 1372}, - dictWord{7, 0, 122}, - dictWord{9, 0, 259}, - dictWord{10, 0, 84}, - dictWord{11, 0, 470}, - dictWord{12, 0, 541}, - dictWord{ - 141, - 0, - 379, - }, - dictWord{134, 0, 837}, - dictWord{8, 0, 1013}, - dictWord{4, 11, 78}, - dictWord{5, 11, 96}, - dictWord{5, 11, 182}, - dictWord{7, 11, 1724}, - dictWord{ - 7, - 11, - 1825, - }, - dictWord{10, 11, 394}, - dictWord{10, 11, 471}, - dictWord{11, 11, 532}, - dictWord{14, 11, 340}, - dictWord{145, 11, 88}, - dictWord{134, 0, 577}, - dictWord{135, 11, 1964}, - dictWord{132, 10, 913}, - dictWord{134, 0, 460}, - dictWord{8, 0, 891}, - dictWord{10, 0, 901}, - dictWord{10, 0, 919}, - dictWord{10, 0, 932}, - dictWord{12, 0, 715}, - dictWord{12, 0, 728}, - dictWord{12, 0, 777}, - dictWord{14, 0, 457}, - dictWord{144, 0, 103}, - dictWord{5, 0, 82}, - dictWord{5, 0, 131}, - dictWord{ - 7, - 0, - 1755, - }, - dictWord{8, 0, 31}, - dictWord{9, 0, 168}, - dictWord{9, 0, 764}, - dictWord{139, 0, 869}, - dictWord{136, 10, 475}, - dictWord{6, 0, 605}, - dictWord{ - 5, - 10, - 1016, - }, - dictWord{9, 11, 601}, - dictWord{9, 11, 619}, - dictWord{10, 11, 505}, - dictWord{10, 11, 732}, - dictWord{11, 11, 355}, - dictWord{140, 11, 139}, - dictWord{ - 7, - 10, - 602, - }, - dictWord{8, 10, 179}, - dictWord{10, 10, 781}, - dictWord{140, 10, 126}, - dictWord{134, 0, 1246}, - dictWord{6, 10, 329}, - dictWord{138, 10, 111}, - dictWord{6, 11, 215}, - dictWord{7, 11, 1028}, - dictWord{7, 11, 1473}, - dictWord{7, 11, 1721}, - dictWord{9, 11, 424}, - dictWord{138, 11, 779}, - dictWord{5, 0, 278}, - dictWord{137, 0, 68}, - dictWord{6, 0, 932}, - dictWord{6, 0, 1084}, - dictWord{144, 0, 86}, - dictWord{4, 0, 163}, - dictWord{5, 0, 201}, - dictWord{5, 0, 307}, - dictWord{ - 5, - 0, - 310, - }, - dictWord{6, 0, 335}, - dictWord{7, 0, 284}, - dictWord{7, 0, 1660}, - dictWord{136, 0, 165}, - dictWord{136, 0, 781}, - dictWord{134, 0, 707}, - dictWord{6, 0, 33}, - dictWord{135, 0, 1244}, - dictWord{5, 10, 821}, - dictWord{6, 11, 67}, - dictWord{6, 10, 1687}, - dictWord{7, 11, 258}, - dictWord{7, 11, 1630}, - dictWord{9, 11, 354}, - dictWord{9, 11, 675}, - dictWord{10, 11, 830}, - dictWord{14, 11, 80}, - dictWord{145, 11, 80}, - dictWord{6, 11, 141}, - dictWord{7, 11, 225}, - dictWord{9, 11, 59}, - dictWord{9, 11, 607}, - dictWord{10, 11, 312}, - dictWord{11, 11, 687}, - dictWord{12, 11, 555}, - dictWord{13, 11, 373}, - dictWord{13, 11, 494}, - dictWord{148, 11, 58}, - dictWord{134, 0, 1113}, - dictWord{9, 0, 388}, - dictWord{5, 10, 71}, - dictWord{7, 10, 1407}, - dictWord{9, 10, 704}, - dictWord{10, 10, 261}, - dictWord{10, 10, 619}, - dictWord{11, 10, 547}, - dictWord{11, 10, 619}, - dictWord{143, 10, 157}, - dictWord{7, 0, 1953}, - dictWord{136, 0, 720}, - dictWord{138, 0, 203}, - dictWord{ - 7, - 10, - 2008, - }, - dictWord{9, 10, 337}, - dictWord{138, 10, 517}, - dictWord{6, 0, 326}, - dictWord{7, 0, 677}, - dictWord{137, 0, 425}, - dictWord{139, 11, 81}, - dictWord{ - 7, - 0, - 1316, - }, - dictWord{7, 0, 1412}, - dictWord{7, 0, 1839}, - dictWord{9, 0, 589}, - dictWord{11, 0, 241}, - dictWord{11, 0, 676}, - dictWord{11, 0, 811}, - dictWord{11, 0, 891}, - dictWord{12, 0, 140}, - dictWord{12, 0, 346}, - dictWord{12, 0, 479}, - dictWord{13, 0, 140}, - dictWord{13, 0, 381}, - dictWord{14, 0, 188}, - dictWord{18, 0, 30}, - dictWord{148, 0, 108}, - dictWord{5, 0, 416}, - dictWord{6, 10, 86}, - dictWord{6, 10, 603}, - dictWord{7, 10, 292}, - dictWord{7, 10, 561}, - dictWord{8, 10, 257}, - dictWord{ - 8, - 10, - 382, - }, - dictWord{9, 10, 721}, - dictWord{9, 10, 778}, - dictWord{11, 10, 581}, - dictWord{140, 10, 466}, - dictWord{4, 10, 486}, - dictWord{133, 10, 491}, - dictWord{134, 0, 1300}, - dictWord{132, 10, 72}, - dictWord{7, 0, 847}, - dictWord{6, 10, 265}, - dictWord{7, 11, 430}, - dictWord{139, 11, 46}, - dictWord{5, 11, 602}, - dictWord{6, 11, 106}, - dictWord{7, 11, 1786}, - dictWord{7, 11, 1821}, - dictWord{7, 11, 2018}, - dictWord{9, 11, 418}, - dictWord{137, 11, 763}, - dictWord{5, 0, 358}, - dictWord{7, 0, 535}, - dictWord{7, 0, 1184}, - dictWord{10, 0, 662}, - dictWord{13, 0, 212}, - dictWord{13, 0, 304}, - dictWord{13, 0, 333}, - dictWord{145, 0, 98}, - dictWord{ - 5, - 11, - 65, - }, - dictWord{6, 11, 416}, - dictWord{7, 11, 1720}, - dictWord{7, 11, 1924}, - dictWord{8, 11, 677}, - dictWord{10, 11, 109}, - dictWord{11, 11, 14}, - dictWord{ - 11, - 11, - 70, - }, - dictWord{11, 11, 569}, - dictWord{11, 11, 735}, - dictWord{15, 11, 153}, - dictWord{148, 11, 80}, - dictWord{6, 0, 1823}, - dictWord{8, 0, 839}, - dictWord{ - 8, - 0, - 852, - }, - dictWord{8, 0, 903}, - dictWord{10, 0, 940}, - dictWord{12, 0, 707}, - dictWord{140, 0, 775}, - dictWord{135, 11, 1229}, - dictWord{6, 0, 1522}, - dictWord{ - 140, - 0, - 654, - }, - dictWord{136, 11, 595}, - dictWord{139, 0, 163}, - dictWord{141, 0, 314}, - dictWord{132, 0, 978}, - dictWord{4, 0, 601}, - dictWord{6, 0, 2035}, - dictWord{137, 10, 234}, - dictWord{5, 10, 815}, - dictWord{6, 10, 1688}, - dictWord{134, 10, 1755}, - dictWord{133, 0, 946}, - dictWord{136, 0, 434}, - dictWord{ - 6, - 10, - 197, - }, - dictWord{136, 10, 205}, - dictWord{7, 0, 411}, - dictWord{7, 0, 590}, - dictWord{8, 0, 631}, - dictWord{9, 0, 323}, - dictWord{10, 0, 355}, - dictWord{11, 0, 491}, - dictWord{12, 0, 143}, - dictWord{12, 0, 402}, - dictWord{13, 0, 73}, - dictWord{14, 0, 408}, - dictWord{15, 0, 107}, - dictWord{146, 0, 71}, - dictWord{7, 0, 1467}, - dictWord{ - 8, - 0, - 328, - }, - dictWord{10, 0, 544}, - dictWord{11, 0, 955}, - dictWord{12, 0, 13}, - dictWord{13, 0, 320}, - dictWord{145, 0, 83}, - dictWord{142, 0, 410}, - dictWord{ - 11, - 0, - 511, - }, - dictWord{13, 0, 394}, - dictWord{14, 0, 298}, - dictWord{14, 0, 318}, - dictWord{146, 0, 103}, - dictWord{6, 10, 452}, - dictWord{7, 10, 312}, - dictWord{ - 138, - 10, - 219, - }, - dictWord{138, 10, 589}, - dictWord{4, 10, 333}, - dictWord{9, 10, 176}, - dictWord{12, 10, 353}, - dictWord{141, 10, 187}, - dictWord{135, 11, 329}, - dictWord{132, 11, 469}, - dictWord{5, 0, 835}, - dictWord{134, 0, 483}, - dictWord{134, 11, 1743}, - dictWord{5, 11, 929}, - dictWord{6, 11, 340}, - dictWord{8, 11, 376}, - dictWord{136, 11, 807}, - dictWord{134, 10, 1685}, - dictWord{132, 0, 677}, - dictWord{5, 11, 218}, - dictWord{7, 11, 1610}, - dictWord{138, 11, 83}, - dictWord{ - 5, - 11, - 571, - }, - dictWord{135, 11, 1842}, - dictWord{132, 11, 455}, - dictWord{137, 0, 70}, - dictWord{135, 0, 1405}, - dictWord{7, 10, 135}, - dictWord{8, 10, 7}, - dictWord{ - 8, - 10, - 62, - }, - dictWord{9, 10, 243}, - dictWord{10, 10, 658}, - dictWord{10, 10, 697}, - dictWord{11, 10, 456}, - dictWord{139, 10, 756}, - dictWord{9, 10, 395}, - dictWord{138, 10, 79}, - dictWord{137, 0, 108}, - dictWord{6, 11, 161}, - dictWord{7, 11, 372}, - dictWord{137, 11, 597}, - dictWord{132, 11, 349}, - dictWord{ - 132, - 0, - 777, - }, - dictWord{132, 0, 331}, - dictWord{135, 10, 631}, - dictWord{133, 0, 747}, - dictWord{6, 11, 432}, - dictWord{6, 11, 608}, - dictWord{139, 11, 322}, - dictWord{138, 10, 835}, - dictWord{5, 11, 468}, - dictWord{7, 11, 1809}, - dictWord{10, 11, 325}, - dictWord{11, 11, 856}, - dictWord{12, 11, 345}, - dictWord{ - 143, - 11, - 104, - }, - dictWord{133, 11, 223}, - dictWord{7, 10, 406}, - dictWord{7, 10, 459}, - dictWord{8, 10, 606}, - dictWord{139, 10, 726}, - dictWord{132, 11, 566}, - dictWord{142, 0, 68}, - dictWord{4, 11, 59}, - dictWord{135, 11, 1394}, - dictWord{6, 11, 436}, - dictWord{139, 11, 481}, - dictWord{4, 11, 48}, - dictWord{5, 11, 271}, - dictWord{135, 11, 953}, - dictWord{139, 11, 170}, - dictWord{5, 11, 610}, - dictWord{136, 11, 457}, - dictWord{133, 11, 755}, - dictWord{135, 11, 1217}, - dictWord{ - 133, - 10, - 612, - }, - dictWord{132, 11, 197}, - dictWord{132, 0, 505}, - dictWord{4, 10, 372}, - dictWord{7, 10, 482}, - dictWord{8, 10, 158}, - dictWord{9, 10, 602}, - dictWord{ - 9, - 10, - 615, - }, - dictWord{10, 10, 245}, - dictWord{10, 10, 678}, - dictWord{10, 10, 744}, - dictWord{11, 10, 248}, - dictWord{139, 10, 806}, - dictWord{133, 0, 326}, - dictWord{5, 10, 854}, - dictWord{135, 10, 1991}, - dictWord{4, 0, 691}, - dictWord{146, 0, 16}, - dictWord{6, 0, 628}, - dictWord{9, 0, 35}, - dictWord{10, 0, 680}, - dictWord{10, 0, 793}, - dictWord{11, 0, 364}, - dictWord{13, 0, 357}, - dictWord{143, 0, 164}, - dictWord{138, 0, 654}, - dictWord{6, 0, 32}, - dictWord{7, 0, 385}, - dictWord{ - 7, - 0, - 757, - }, - dictWord{7, 0, 1916}, - dictWord{8, 0, 37}, - dictWord{8, 0, 94}, - dictWord{8, 0, 711}, - dictWord{9, 0, 541}, - dictWord{10, 0, 162}, - dictWord{10, 0, 795}, - dictWord{ - 11, - 0, - 989, - }, - dictWord{11, 0, 1010}, - dictWord{12, 0, 14}, - dictWord{142, 0, 308}, - dictWord{133, 11, 217}, - dictWord{6, 0, 152}, - dictWord{6, 0, 349}, - dictWord{ - 6, - 0, - 1682, - }, - dictWord{7, 0, 1252}, - dictWord{8, 0, 112}, - dictWord{9, 0, 435}, - dictWord{9, 0, 668}, - dictWord{10, 0, 290}, - dictWord{10, 0, 319}, - dictWord{10, 0, 815}, - dictWord{11, 0, 180}, - dictWord{11, 0, 837}, - dictWord{12, 0, 240}, - dictWord{13, 0, 152}, - dictWord{13, 0, 219}, - dictWord{142, 0, 158}, - dictWord{4, 0, 581}, - dictWord{134, 0, 726}, - dictWord{5, 10, 195}, - dictWord{135, 10, 1685}, - dictWord{6, 0, 126}, - dictWord{7, 0, 573}, - dictWord{8, 0, 397}, - dictWord{142, 0, 44}, - dictWord{138, 0, 89}, - dictWord{7, 10, 1997}, - dictWord{8, 10, 730}, - dictWord{139, 10, 1006}, - dictWord{134, 0, 1531}, - dictWord{134, 0, 1167}, - dictWord{ - 5, - 0, - 926, - }, - dictWord{12, 0, 203}, - dictWord{133, 10, 751}, - dictWord{4, 11, 165}, - dictWord{7, 11, 1398}, - dictWord{135, 11, 1829}, - dictWord{7, 0, 1232}, - dictWord{137, 0, 531}, - dictWord{135, 10, 821}, - dictWord{134, 0, 943}, - dictWord{133, 0, 670}, - dictWord{4, 0, 880}, - dictWord{139, 0, 231}, - dictWord{ - 134, - 0, - 1617, - }, - dictWord{135, 0, 1957}, - dictWord{5, 11, 9}, - dictWord{7, 11, 297}, - dictWord{7, 11, 966}, - dictWord{140, 11, 306}, - dictWord{6, 0, 975}, - dictWord{ - 134, - 0, - 985, - }, - dictWord{5, 10, 950}, - dictWord{5, 10, 994}, - dictWord{134, 10, 351}, - dictWord{12, 11, 21}, - dictWord{151, 11, 7}, - dictWord{5, 11, 146}, - dictWord{ - 6, - 11, - 411, - }, - dictWord{138, 11, 721}, - dictWord{7, 0, 242}, - dictWord{135, 0, 1942}, - dictWord{6, 11, 177}, - dictWord{135, 11, 467}, - dictWord{5, 0, 421}, - dictWord{ - 7, - 10, - 47, - }, - dictWord{137, 10, 684}, - dictWord{5, 0, 834}, - dictWord{7, 0, 1202}, - dictWord{8, 0, 14}, - dictWord{9, 0, 481}, - dictWord{137, 0, 880}, - dictWord{138, 0, 465}, - dictWord{6, 0, 688}, - dictWord{9, 0, 834}, - dictWord{132, 10, 350}, - dictWord{132, 0, 855}, - dictWord{4, 0, 357}, - dictWord{6, 0, 172}, - dictWord{7, 0, 143}, - dictWord{137, 0, 413}, - dictWord{133, 11, 200}, - dictWord{132, 0, 590}, - dictWord{7, 10, 1812}, - dictWord{13, 10, 259}, - dictWord{13, 10, 356}, - dictWord{ - 14, - 10, - 242, - }, - dictWord{147, 10, 114}, - dictWord{133, 10, 967}, - dictWord{11, 0, 114}, - dictWord{4, 10, 473}, - dictWord{7, 10, 623}, - dictWord{8, 10, 808}, - dictWord{ - 9, - 10, - 871, - }, - dictWord{9, 10, 893}, - dictWord{11, 10, 431}, - dictWord{12, 10, 112}, - dictWord{12, 10, 217}, - dictWord{12, 10, 243}, - dictWord{12, 10, 562}, - dictWord{ - 12, - 10, - 663, - }, - dictWord{12, 10, 683}, - dictWord{13, 10, 141}, - dictWord{13, 10, 197}, - dictWord{13, 10, 227}, - dictWord{13, 10, 406}, - dictWord{13, 10, 487}, - dictWord{14, 10, 156}, - dictWord{14, 10, 203}, - dictWord{14, 10, 224}, - dictWord{14, 10, 256}, - dictWord{18, 10, 58}, - dictWord{150, 10, 0}, - dictWord{ - 138, - 10, - 286, - }, - dictWord{4, 10, 222}, - dictWord{7, 10, 286}, - dictWord{136, 10, 629}, - dictWord{5, 0, 169}, - dictWord{7, 0, 333}, - dictWord{136, 0, 45}, - dictWord{ - 134, - 11, - 481, - }, - dictWord{132, 0, 198}, - dictWord{4, 0, 24}, - dictWord{5, 0, 140}, - dictWord{5, 0, 185}, - dictWord{7, 0, 1500}, - dictWord{11, 0, 565}, - dictWord{11, 0, 838}, - dictWord{4, 11, 84}, - dictWord{7, 11, 1482}, - dictWord{10, 11, 76}, - dictWord{138, 11, 142}, - dictWord{133, 0, 585}, - dictWord{141, 10, 306}, - dictWord{ - 133, - 11, - 1015, - }, - dictWord{4, 11, 315}, - dictWord{5, 11, 507}, - dictWord{135, 11, 1370}, - dictWord{136, 10, 146}, - dictWord{6, 0, 691}, - dictWord{134, 0, 1503}, - dictWord{ - 4, - 0, - 334, - }, - dictWord{133, 0, 593}, - dictWord{4, 10, 465}, - dictWord{135, 10, 1663}, - dictWord{142, 11, 173}, - dictWord{135, 0, 913}, - dictWord{12, 0, 116}, - dictWord{134, 11, 1722}, - dictWord{134, 0, 1360}, - dictWord{132, 0, 802}, - dictWord{8, 11, 222}, - dictWord{8, 11, 476}, - dictWord{9, 11, 238}, - dictWord{ - 11, - 11, - 516, - }, - dictWord{11, 11, 575}, - dictWord{15, 11, 109}, - dictWord{146, 11, 100}, - dictWord{6, 0, 308}, - dictWord{9, 0, 673}, - dictWord{7, 10, 138}, - dictWord{ - 7, - 10, - 517, - }, - dictWord{139, 10, 238}, - dictWord{132, 0, 709}, - dictWord{6, 0, 1876}, - dictWord{6, 0, 1895}, - dictWord{9, 0, 994}, - dictWord{9, 0, 1006}, - dictWord{ - 12, - 0, - 829, - }, - dictWord{12, 0, 888}, - dictWord{12, 0, 891}, - dictWord{146, 0, 185}, - dictWord{148, 10, 94}, - dictWord{4, 0, 228}, - dictWord{133, 0, 897}, - dictWord{ - 7, - 0, - 1840, - }, - dictWord{5, 10, 495}, - dictWord{7, 10, 834}, - dictWord{9, 10, 733}, - dictWord{139, 10, 378}, - dictWord{133, 10, 559}, - dictWord{6, 10, 21}, - dictWord{ - 6, - 10, - 1737, - }, - dictWord{7, 10, 1444}, - dictWord{136, 10, 224}, - dictWord{4, 0, 608}, - dictWord{133, 0, 497}, - dictWord{6, 11, 40}, - dictWord{135, 11, 1781}, - dictWord{134, 0, 1573}, - dictWord{135, 0, 2039}, - dictWord{6, 0, 540}, - dictWord{136, 0, 136}, - dictWord{4, 0, 897}, - dictWord{5, 0, 786}, - dictWord{133, 10, 519}, - dictWord{6, 0, 1878}, - dictWord{6, 0, 1884}, - dictWord{9, 0, 938}, - dictWord{9, 0, 948}, - dictWord{9, 0, 955}, - dictWord{9, 0, 973}, - dictWord{9, 0, 1012}, - dictWord{ - 12, - 0, - 895, - }, - dictWord{12, 0, 927}, - dictWord{143, 0, 254}, - dictWord{134, 0, 1469}, - dictWord{133, 0, 999}, - dictWord{4, 0, 299}, - dictWord{135, 0, 1004}, - dictWord{ - 4, - 0, - 745, - }, - dictWord{133, 0, 578}, - dictWord{136, 11, 574}, - dictWord{133, 0, 456}, - dictWord{134, 0, 1457}, - dictWord{7, 0, 1679}, - dictWord{132, 10, 402}, - dictWord{7, 0, 693}, - dictWord{8, 0, 180}, - dictWord{12, 0, 163}, - dictWord{8, 10, 323}, - dictWord{136, 10, 479}, - dictWord{11, 10, 580}, - dictWord{142, 10, 201}, - dictWord{5, 10, 59}, - dictWord{135, 10, 672}, - dictWord{132, 11, 354}, - dictWord{146, 10, 34}, - dictWord{4, 0, 755}, - dictWord{135, 11, 1558}, - dictWord{ - 7, - 0, - 1740, - }, - dictWord{146, 0, 48}, - dictWord{4, 10, 85}, - dictWord{135, 10, 549}, - dictWord{139, 0, 338}, - dictWord{133, 10, 94}, - dictWord{134, 0, 1091}, - dictWord{135, 11, 469}, - dictWord{12, 0, 695}, - dictWord{12, 0, 704}, - dictWord{20, 0, 113}, - dictWord{5, 11, 830}, - dictWord{14, 11, 338}, - dictWord{148, 11, 81}, - dictWord{135, 0, 1464}, - dictWord{6, 10, 11}, - dictWord{135, 10, 187}, - dictWord{135, 0, 975}, - dictWord{13, 0, 335}, - dictWord{132, 10, 522}, - dictWord{ - 134, - 0, - 1979, - }, - dictWord{5, 11, 496}, - dictWord{135, 11, 203}, - dictWord{4, 10, 52}, - dictWord{135, 10, 661}, - dictWord{7, 0, 1566}, - dictWord{8, 0, 269}, - dictWord{ - 9, - 0, - 212, - }, - dictWord{9, 0, 718}, - dictWord{14, 0, 15}, - dictWord{14, 0, 132}, - dictWord{142, 0, 227}, - dictWord{4, 0, 890}, - dictWord{5, 0, 805}, - dictWord{5, 0, 819}, - dictWord{ - 5, - 0, - 961, - }, - dictWord{6, 0, 396}, - dictWord{6, 0, 1631}, - dictWord{6, 0, 1678}, - dictWord{7, 0, 1967}, - dictWord{7, 0, 2041}, - dictWord{9, 0, 630}, - dictWord{11, 0, 8}, - dictWord{11, 0, 1019}, - dictWord{12, 0, 176}, - dictWord{13, 0, 225}, - dictWord{14, 0, 292}, - dictWord{21, 0, 24}, - dictWord{4, 10, 383}, - dictWord{133, 10, 520}, - dictWord{134, 11, 547}, - dictWord{135, 11, 1748}, - dictWord{5, 11, 88}, - dictWord{137, 11, 239}, - dictWord{146, 11, 128}, - dictWord{7, 11, 650}, - dictWord{ - 135, - 11, - 1310, - }, - dictWord{4, 10, 281}, - dictWord{5, 10, 38}, - dictWord{7, 10, 194}, - dictWord{7, 10, 668}, - dictWord{7, 10, 1893}, - dictWord{137, 10, 397}, - dictWord{135, 0, 1815}, - dictWord{9, 10, 635}, - dictWord{139, 10, 559}, - dictWord{7, 0, 1505}, - dictWord{10, 0, 190}, - dictWord{10, 0, 634}, - dictWord{11, 0, 792}, - dictWord{12, 0, 358}, - dictWord{140, 0, 447}, - dictWord{5, 0, 0}, - dictWord{6, 0, 536}, - dictWord{7, 0, 604}, - dictWord{13, 0, 445}, - dictWord{145, 0, 126}, - dictWord{ - 7, - 11, - 1076, - }, - dictWord{9, 11, 80}, - dictWord{11, 11, 78}, - dictWord{11, 11, 421}, - dictWord{11, 11, 534}, - dictWord{140, 11, 545}, - dictWord{8, 0, 966}, - dictWord{ - 10, - 0, - 1023, - }, - dictWord{14, 11, 369}, - dictWord{146, 11, 72}, - dictWord{135, 11, 1641}, - dictWord{6, 0, 232}, - dictWord{6, 0, 412}, - dictWord{7, 0, 1074}, - dictWord{ - 8, - 0, - 9, - }, - dictWord{8, 0, 157}, - dictWord{8, 0, 786}, - dictWord{9, 0, 196}, - dictWord{9, 0, 352}, - dictWord{9, 0, 457}, - dictWord{10, 0, 337}, - dictWord{11, 0, 232}, - dictWord{ - 11, - 0, - 877, - }, - dictWord{12, 0, 480}, - dictWord{140, 0, 546}, - dictWord{135, 0, 958}, - dictWord{4, 0, 382}, - dictWord{136, 0, 579}, - dictWord{4, 0, 212}, - dictWord{ - 135, - 0, - 1206, - }, - dictWord{4, 11, 497}, - dictWord{5, 11, 657}, - dictWord{135, 11, 1584}, - dictWord{132, 0, 681}, - dictWord{8, 0, 971}, - dictWord{138, 0, 965}, - dictWord{ - 5, - 10, - 448, - }, - dictWord{136, 10, 535}, - dictWord{14, 0, 16}, - dictWord{146, 0, 44}, - dictWord{11, 0, 584}, - dictWord{11, 0, 616}, - dictWord{14, 0, 275}, - dictWord{ - 11, - 11, - 584, - }, - dictWord{11, 11, 616}, - dictWord{142, 11, 275}, - dictWord{136, 11, 13}, - dictWord{7, 10, 610}, - dictWord{135, 10, 1501}, - dictWord{7, 11, 642}, - dictWord{8, 11, 250}, - dictWord{11, 11, 123}, - dictWord{11, 11, 137}, - dictWord{13, 11, 48}, - dictWord{142, 11, 95}, - dictWord{133, 0, 655}, - dictWord{17, 0, 67}, - dictWord{147, 0, 74}, - dictWord{134, 0, 751}, - dictWord{134, 0, 1967}, - dictWord{6, 0, 231}, - dictWord{136, 0, 423}, - dictWord{5, 0, 300}, - dictWord{138, 0, 1016}, - dictWord{4, 10, 319}, - dictWord{5, 10, 699}, - dictWord{138, 10, 673}, - dictWord{6, 0, 237}, - dictWord{7, 0, 611}, - dictWord{8, 0, 100}, - dictWord{9, 0, 416}, - dictWord{ - 11, - 0, - 335, - }, - dictWord{12, 0, 173}, - dictWord{18, 0, 101}, - dictWord{6, 10, 336}, - dictWord{8, 10, 552}, - dictWord{9, 10, 285}, - dictWord{10, 10, 99}, - dictWord{ - 139, - 10, - 568, - }, - dictWord{134, 0, 1370}, - dictWord{7, 10, 1406}, - dictWord{9, 10, 218}, - dictWord{141, 10, 222}, - dictWord{133, 10, 256}, - dictWord{ - 135, - 0, - 1208, - }, - dictWord{14, 11, 213}, - dictWord{148, 11, 38}, - dictWord{6, 0, 1219}, - dictWord{135, 11, 1642}, - dictWord{13, 0, 417}, - dictWord{14, 0, 129}, - dictWord{143, 0, 15}, - dictWord{10, 11, 545}, - dictWord{140, 11, 301}, - dictWord{17, 10, 39}, - dictWord{148, 10, 36}, - dictWord{133, 0, 199}, - dictWord{4, 11, 904}, - dictWord{133, 11, 794}, - dictWord{12, 0, 427}, - dictWord{146, 0, 38}, - dictWord{134, 0, 949}, - dictWord{8, 0, 665}, - dictWord{135, 10, 634}, - dictWord{ - 132, - 10, - 618, - }, - dictWord{135, 10, 259}, - dictWord{132, 10, 339}, - dictWord{133, 11, 761}, - dictWord{141, 10, 169}, - dictWord{132, 10, 759}, - dictWord{5, 0, 688}, - dictWord{7, 0, 539}, - dictWord{135, 0, 712}, - dictWord{7, 11, 386}, - dictWord{138, 11, 713}, - dictWord{134, 0, 1186}, - dictWord{6, 11, 7}, - dictWord{6, 11, 35}, - dictWord{ - 7, - 11, - 147, - }, - dictWord{7, 11, 1069}, - dictWord{7, 11, 1568}, - dictWord{7, 11, 1575}, - dictWord{7, 11, 1917}, - dictWord{8, 11, 43}, - dictWord{8, 11, 208}, - dictWord{ - 9, - 11, - 128, - }, - dictWord{9, 11, 866}, - dictWord{10, 11, 20}, - dictWord{11, 11, 981}, - dictWord{147, 11, 33}, - dictWord{7, 11, 893}, - dictWord{8, 10, 482}, - dictWord{141, 11, 424}, - dictWord{6, 0, 312}, - dictWord{6, 0, 1715}, - dictWord{10, 0, 584}, - dictWord{11, 0, 546}, - dictWord{11, 0, 692}, - dictWord{12, 0, 259}, - dictWord{ - 12, - 0, - 295, - }, - dictWord{13, 0, 46}, - dictWord{141, 0, 154}, - dictWord{5, 10, 336}, - dictWord{6, 10, 341}, - dictWord{6, 10, 478}, - dictWord{6, 10, 1763}, - dictWord{ - 136, - 10, - 386, - }, - dictWord{137, 0, 151}, - dictWord{132, 0, 588}, - dictWord{152, 0, 4}, - dictWord{6, 11, 322}, - dictWord{9, 11, 552}, - dictWord{11, 11, 274}, - dictWord{ - 13, - 11, - 209, - }, - dictWord{13, 11, 499}, - dictWord{14, 11, 85}, - dictWord{15, 11, 126}, - dictWord{145, 11, 70}, - dictWord{135, 10, 73}, - dictWord{4, 0, 231}, - dictWord{ - 5, - 0, - 61, - }, - dictWord{6, 0, 104}, - dictWord{7, 0, 729}, - dictWord{7, 0, 964}, - dictWord{7, 0, 1658}, - dictWord{140, 0, 414}, - dictWord{6, 0, 263}, - dictWord{138, 0, 757}, - dictWord{135, 10, 1971}, - dictWord{4, 0, 612}, - dictWord{133, 0, 561}, - dictWord{132, 0, 320}, - dictWord{135, 10, 1344}, - dictWord{8, 11, 83}, - dictWord{ - 8, - 11, - 817, - }, - dictWord{9, 11, 28}, - dictWord{9, 11, 29}, - dictWord{9, 11, 885}, - dictWord{10, 11, 387}, - dictWord{11, 11, 633}, - dictWord{11, 11, 740}, - dictWord{ - 13, - 11, - 235, - }, - dictWord{13, 11, 254}, - dictWord{15, 11, 143}, - dictWord{143, 11, 146}, - dictWord{5, 10, 396}, - dictWord{134, 10, 501}, - dictWord{140, 11, 49}, - dictWord{132, 0, 225}, - dictWord{4, 10, 929}, - dictWord{5, 10, 799}, - dictWord{8, 10, 46}, - dictWord{136, 10, 740}, - dictWord{4, 0, 405}, - dictWord{7, 0, 817}, - dictWord{ - 14, - 0, - 58, - }, - dictWord{17, 0, 37}, - dictWord{146, 0, 124}, - dictWord{133, 0, 974}, - dictWord{4, 11, 412}, - dictWord{133, 11, 581}, - dictWord{4, 10, 892}, - dictWord{ - 133, - 10, - 770, - }, - dictWord{4, 0, 996}, - dictWord{134, 0, 2026}, - dictWord{4, 0, 527}, - dictWord{5, 0, 235}, - dictWord{7, 0, 1239}, - dictWord{11, 0, 131}, - dictWord{ - 140, - 0, - 370, - }, - dictWord{9, 0, 16}, - dictWord{13, 0, 386}, - dictWord{135, 11, 421}, - dictWord{7, 0, 956}, - dictWord{7, 0, 1157}, - dictWord{7, 0, 1506}, - dictWord{7, 0, 1606}, - dictWord{7, 0, 1615}, - dictWord{7, 0, 1619}, - dictWord{7, 0, 1736}, - dictWord{7, 0, 1775}, - dictWord{8, 0, 590}, - dictWord{9, 0, 324}, - dictWord{9, 0, 736}, - dictWord{ - 9, - 0, - 774, - }, - dictWord{9, 0, 776}, - dictWord{9, 0, 784}, - dictWord{10, 0, 567}, - dictWord{10, 0, 708}, - dictWord{11, 0, 518}, - dictWord{11, 0, 613}, - dictWord{11, 0, 695}, - dictWord{11, 0, 716}, - dictWord{11, 0, 739}, - dictWord{11, 0, 770}, - dictWord{11, 0, 771}, - dictWord{11, 0, 848}, - dictWord{11, 0, 857}, - dictWord{11, 0, 931}, - dictWord{ - 11, - 0, - 947, - }, - dictWord{12, 0, 326}, - dictWord{12, 0, 387}, - dictWord{12, 0, 484}, - dictWord{12, 0, 528}, - dictWord{12, 0, 552}, - dictWord{12, 0, 613}, - dictWord{ - 13, - 0, - 189, - }, - dictWord{13, 0, 256}, - dictWord{13, 0, 340}, - dictWord{13, 0, 432}, - dictWord{13, 0, 436}, - dictWord{13, 0, 440}, - dictWord{13, 0, 454}, - dictWord{14, 0, 174}, - dictWord{14, 0, 220}, - dictWord{14, 0, 284}, - dictWord{14, 0, 390}, - dictWord{145, 0, 121}, - dictWord{135, 10, 158}, - dictWord{9, 0, 137}, - dictWord{138, 0, 221}, - dictWord{4, 11, 110}, - dictWord{10, 11, 415}, - dictWord{10, 11, 597}, - dictWord{142, 11, 206}, - dictWord{141, 11, 496}, - dictWord{135, 11, 205}, - dictWord{ - 151, - 10, - 25, - }, - dictWord{135, 11, 778}, - dictWord{7, 11, 1656}, - dictWord{7, 10, 2001}, - dictWord{9, 11, 369}, - dictWord{10, 11, 338}, - dictWord{10, 11, 490}, - dictWord{11, 11, 154}, - dictWord{11, 11, 545}, - dictWord{11, 11, 775}, - dictWord{13, 11, 77}, - dictWord{141, 11, 274}, - dictWord{4, 11, 444}, - dictWord{ - 10, - 11, - 146, - }, - dictWord{140, 11, 9}, - dictWord{7, 0, 390}, - dictWord{138, 0, 140}, - dictWord{135, 0, 1144}, - dictWord{134, 0, 464}, - dictWord{7, 10, 1461}, - dictWord{ - 140, - 10, - 91, - }, - dictWord{132, 10, 602}, - dictWord{4, 11, 283}, - dictWord{135, 11, 1194}, - dictWord{5, 0, 407}, - dictWord{11, 0, 204}, - dictWord{11, 0, 243}, - dictWord{ - 11, - 0, - 489, - }, - dictWord{12, 0, 293}, - dictWord{19, 0, 37}, - dictWord{20, 0, 73}, - dictWord{150, 0, 38}, - dictWord{7, 0, 1218}, - dictWord{136, 0, 303}, - dictWord{ - 5, - 0, - 325, - }, - dictWord{8, 0, 5}, - dictWord{8, 0, 227}, - dictWord{9, 0, 105}, - dictWord{10, 0, 585}, - dictWord{12, 0, 614}, - dictWord{4, 10, 13}, - dictWord{5, 10, 567}, - dictWord{ - 7, - 10, - 1498, - }, - dictWord{9, 10, 124}, - dictWord{11, 10, 521}, - dictWord{140, 10, 405}, - dictWord{135, 10, 1006}, - dictWord{7, 0, 800}, - dictWord{10, 0, 12}, - dictWord{134, 11, 1720}, - dictWord{135, 0, 1783}, - dictWord{132, 10, 735}, - dictWord{138, 10, 812}, - dictWord{4, 10, 170}, - dictWord{135, 10, 323}, - dictWord{ - 6, - 0, - 621, - }, - dictWord{13, 0, 504}, - dictWord{144, 0, 89}, - dictWord{5, 10, 304}, - dictWord{135, 10, 1403}, - dictWord{137, 11, 216}, - dictWord{6, 0, 920}, - dictWord{ - 6, - 0, - 1104, - }, - dictWord{9, 11, 183}, - dictWord{139, 11, 286}, - dictWord{4, 0, 376}, - dictWord{133, 10, 742}, - dictWord{134, 0, 218}, - dictWord{8, 0, 641}, - dictWord{ - 11, - 0, - 388, - }, - dictWord{140, 0, 580}, - dictWord{7, 0, 454}, - dictWord{7, 0, 782}, - dictWord{8, 0, 768}, - dictWord{140, 0, 686}, - dictWord{137, 11, 33}, - dictWord{ - 133, - 10, - 111, - }, - dictWord{144, 0, 0}, - dictWord{10, 0, 676}, - dictWord{140, 0, 462}, - dictWord{6, 0, 164}, - dictWord{136, 11, 735}, - dictWord{133, 10, 444}, - dictWord{ - 150, - 0, - 50, - }, - dictWord{7, 11, 1862}, - dictWord{12, 11, 491}, - dictWord{12, 11, 520}, - dictWord{13, 11, 383}, - dictWord{14, 11, 244}, - dictWord{146, 11, 12}, - dictWord{ - 5, - 11, - 132, - }, - dictWord{9, 11, 486}, - dictWord{9, 11, 715}, - dictWord{10, 11, 458}, - dictWord{11, 11, 373}, - dictWord{11, 11, 668}, - dictWord{11, 11, 795}, - dictWord{11, 11, 897}, - dictWord{12, 11, 272}, - dictWord{12, 11, 424}, - dictWord{12, 11, 539}, - dictWord{12, 11, 558}, - dictWord{14, 11, 245}, - dictWord{ - 14, - 11, - 263, - }, - dictWord{14, 11, 264}, - dictWord{14, 11, 393}, - dictWord{142, 11, 403}, - dictWord{8, 10, 123}, - dictWord{15, 10, 6}, - dictWord{144, 10, 7}, - dictWord{ - 6, - 0, - 285, - }, - dictWord{8, 0, 654}, - dictWord{11, 0, 749}, - dictWord{12, 0, 190}, - dictWord{12, 0, 327}, - dictWord{13, 0, 120}, - dictWord{13, 0, 121}, - dictWord{13, 0, 327}, - dictWord{15, 0, 47}, - dictWord{146, 0, 40}, - dictWord{5, 11, 8}, - dictWord{6, 11, 89}, - dictWord{6, 11, 400}, - dictWord{7, 11, 1569}, - dictWord{7, 11, 1623}, - dictWord{ - 7, - 11, - 1850, - }, - dictWord{8, 11, 218}, - dictWord{8, 11, 422}, - dictWord{9, 11, 570}, - dictWord{138, 11, 626}, - dictWord{6, 11, 387}, - dictWord{7, 11, 882}, - dictWord{141, 11, 111}, - dictWord{6, 0, 343}, - dictWord{7, 0, 195}, - dictWord{9, 0, 226}, - dictWord{10, 0, 197}, - dictWord{10, 0, 575}, - dictWord{11, 0, 502}, - dictWord{ - 11, - 0, - 899, - }, - dictWord{6, 11, 224}, - dictWord{7, 11, 877}, - dictWord{137, 11, 647}, - dictWord{5, 10, 937}, - dictWord{135, 10, 100}, - dictWord{135, 11, 790}, - dictWord{150, 0, 29}, - dictWord{147, 0, 8}, - dictWord{134, 0, 1812}, - dictWord{149, 0, 8}, - dictWord{135, 11, 394}, - dictWord{7, 0, 1125}, - dictWord{9, 0, 143}, - dictWord{ - 11, - 0, - 61, - }, - dictWord{14, 0, 405}, - dictWord{150, 0, 21}, - dictWord{10, 11, 755}, - dictWord{147, 11, 29}, - dictWord{9, 11, 378}, - dictWord{141, 11, 162}, - dictWord{135, 10, 922}, - dictWord{5, 10, 619}, - dictWord{133, 10, 698}, - dictWord{134, 0, 1327}, - dictWord{6, 0, 1598}, - dictWord{137, 0, 575}, - dictWord{ - 9, - 11, - 569, - }, - dictWord{12, 11, 12}, - dictWord{12, 11, 81}, - dictWord{12, 11, 319}, - dictWord{13, 11, 69}, - dictWord{14, 11, 259}, - dictWord{16, 11, 87}, - dictWord{ - 17, - 11, - 1, - }, - dictWord{17, 11, 21}, - dictWord{17, 11, 24}, - dictWord{18, 11, 15}, - dictWord{18, 11, 56}, - dictWord{18, 11, 59}, - dictWord{18, 11, 127}, - dictWord{18, 11, 154}, - dictWord{19, 11, 19}, - dictWord{148, 11, 31}, - dictWord{6, 0, 895}, - dictWord{135, 11, 1231}, - dictWord{5, 0, 959}, - dictWord{7, 11, 124}, - dictWord{136, 11, 38}, - dictWord{5, 11, 261}, - dictWord{7, 11, 78}, - dictWord{7, 11, 199}, - dictWord{8, 11, 815}, - dictWord{9, 11, 126}, - dictWord{138, 11, 342}, - dictWord{5, 10, 917}, - dictWord{134, 10, 1659}, - dictWord{7, 0, 1759}, - dictWord{5, 11, 595}, - dictWord{135, 11, 1863}, - dictWord{136, 0, 173}, - dictWord{134, 0, 266}, - dictWord{ - 142, - 0, - 261, - }, - dictWord{132, 11, 628}, - dictWord{5, 10, 251}, - dictWord{5, 10, 956}, - dictWord{8, 10, 268}, - dictWord{9, 10, 214}, - dictWord{146, 10, 142}, - dictWord{ - 7, - 11, - 266, - }, - dictWord{136, 11, 804}, - dictWord{135, 11, 208}, - dictWord{6, 11, 79}, - dictWord{7, 11, 1021}, - dictWord{135, 11, 1519}, - dictWord{11, 11, 704}, - dictWord{141, 11, 396}, - dictWord{5, 10, 346}, - dictWord{5, 10, 711}, - dictWord{136, 10, 390}, - dictWord{136, 11, 741}, - dictWord{134, 11, 376}, - dictWord{ - 134, - 0, - 1427, - }, - dictWord{6, 0, 1033}, - dictWord{6, 0, 1217}, - dictWord{136, 0, 300}, - dictWord{133, 10, 624}, - dictWord{6, 11, 100}, - dictWord{7, 11, 244}, - dictWord{ - 7, - 11, - 632, - }, - dictWord{7, 11, 1609}, - dictWord{8, 11, 178}, - dictWord{8, 11, 638}, - dictWord{141, 11, 58}, - dictWord{6, 0, 584}, - dictWord{5, 10, 783}, - dictWord{ - 7, - 10, - 1998, - }, - dictWord{135, 10, 2047}, - dictWord{5, 0, 427}, - dictWord{5, 0, 734}, - dictWord{7, 0, 478}, - dictWord{136, 0, 52}, - dictWord{7, 0, 239}, - dictWord{ - 11, - 0, - 217, - }, - dictWord{142, 0, 165}, - dictWord{134, 0, 1129}, - dictWord{6, 0, 168}, - dictWord{6, 0, 1734}, - dictWord{7, 0, 20}, - dictWord{7, 0, 1056}, - dictWord{8, 0, 732}, - dictWord{9, 0, 406}, - dictWord{9, 0, 911}, - dictWord{138, 0, 694}, - dictWord{132, 10, 594}, - dictWord{133, 11, 791}, - dictWord{7, 11, 686}, - dictWord{8, 11, 33}, - dictWord{8, 11, 238}, - dictWord{10, 11, 616}, - dictWord{11, 11, 467}, - dictWord{11, 11, 881}, - dictWord{13, 11, 217}, - dictWord{13, 11, 253}, - dictWord{ - 142, - 11, - 268, - }, - dictWord{137, 11, 476}, - dictWord{134, 0, 418}, - dictWord{133, 0, 613}, - dictWord{132, 0, 632}, - dictWord{132, 11, 447}, - dictWord{7, 0, 32}, - dictWord{ - 7, - 0, - 984, - }, - dictWord{8, 0, 85}, - dictWord{8, 0, 709}, - dictWord{9, 0, 579}, - dictWord{9, 0, 847}, - dictWord{9, 0, 856}, - dictWord{10, 0, 799}, - dictWord{11, 0, 258}, - dictWord{ - 11, - 0, - 1007, - }, - dictWord{12, 0, 331}, - dictWord{12, 0, 615}, - dictWord{13, 0, 188}, - dictWord{13, 0, 435}, - dictWord{14, 0, 8}, - dictWord{15, 0, 165}, - dictWord{ - 16, - 0, - 27, - }, - dictWord{20, 0, 40}, - dictWord{144, 11, 35}, - dictWord{4, 11, 128}, - dictWord{5, 11, 415}, - dictWord{6, 11, 462}, - dictWord{7, 11, 294}, - dictWord{7, 11, 578}, - dictWord{10, 11, 710}, - dictWord{139, 11, 86}, - dictWord{5, 0, 694}, - dictWord{136, 0, 909}, - dictWord{7, 0, 1109}, - dictWord{11, 0, 7}, - dictWord{5, 10, 37}, - dictWord{ - 6, - 10, - 39, - }, - dictWord{6, 10, 451}, - dictWord{7, 10, 218}, - dictWord{7, 10, 1166}, - dictWord{7, 10, 1687}, - dictWord{8, 10, 662}, - dictWord{144, 10, 2}, - dictWord{ - 136, - 11, - 587, - }, - dictWord{6, 11, 427}, - dictWord{7, 11, 1018}, - dictWord{138, 11, 692}, - dictWord{4, 11, 195}, - dictWord{6, 10, 508}, - dictWord{135, 11, 802}, - dictWord{4, 0, 167}, - dictWord{135, 0, 82}, - dictWord{5, 0, 62}, - dictWord{6, 0, 24}, - dictWord{6, 0, 534}, - dictWord{7, 0, 74}, - dictWord{7, 0, 678}, - dictWord{7, 0, 684}, - dictWord{ - 7, - 0, - 1043, - }, - dictWord{7, 0, 1072}, - dictWord{8, 0, 280}, - dictWord{8, 0, 541}, - dictWord{8, 0, 686}, - dictWord{9, 0, 258}, - dictWord{10, 0, 519}, - dictWord{11, 0, 252}, - dictWord{140, 0, 282}, - dictWord{138, 0, 33}, - dictWord{4, 0, 359}, - dictWord{133, 11, 738}, - dictWord{7, 0, 980}, - dictWord{9, 0, 328}, - dictWord{13, 0, 186}, - dictWord{13, 0, 364}, - dictWord{7, 10, 635}, - dictWord{7, 10, 796}, - dictWord{8, 10, 331}, - dictWord{9, 10, 330}, - dictWord{9, 10, 865}, - dictWord{10, 10, 119}, - dictWord{ - 10, - 10, - 235, - }, - dictWord{11, 10, 111}, - dictWord{11, 10, 129}, - dictWord{11, 10, 240}, - dictWord{12, 10, 31}, - dictWord{12, 10, 66}, - dictWord{12, 10, 222}, - dictWord{12, 10, 269}, - dictWord{12, 10, 599}, - dictWord{12, 10, 684}, - dictWord{12, 10, 689}, - dictWord{12, 10, 691}, - dictWord{142, 10, 345}, - dictWord{ - 137, - 10, - 527, - }, - dictWord{6, 0, 596}, - dictWord{7, 0, 585}, - dictWord{135, 10, 702}, - dictWord{134, 11, 1683}, - dictWord{133, 0, 211}, - dictWord{6, 0, 145}, - dictWord{ - 141, - 0, - 336, - }, - dictWord{134, 0, 1130}, - dictWord{7, 0, 873}, - dictWord{6, 10, 37}, - dictWord{7, 10, 1666}, - dictWord{8, 10, 195}, - dictWord{8, 10, 316}, - dictWord{ - 9, - 10, - 178, - }, - dictWord{9, 10, 276}, - dictWord{9, 10, 339}, - dictWord{9, 10, 536}, - dictWord{10, 10, 102}, - dictWord{10, 10, 362}, - dictWord{10, 10, 785}, - dictWord{ - 11, - 10, - 55, - }, - dictWord{11, 10, 149}, - dictWord{11, 10, 773}, - dictWord{13, 10, 416}, - dictWord{13, 10, 419}, - dictWord{14, 10, 38}, - dictWord{14, 10, 41}, - dictWord{ - 142, - 10, - 210, - }, - dictWord{8, 0, 840}, - dictWord{136, 0, 841}, - dictWord{132, 0, 263}, - dictWord{5, 11, 3}, - dictWord{8, 11, 578}, - dictWord{9, 11, 118}, - dictWord{ - 10, - 11, - 705, - }, - dictWord{12, 11, 383}, - dictWord{141, 11, 279}, - dictWord{132, 0, 916}, - dictWord{133, 11, 229}, - dictWord{133, 10, 645}, - dictWord{15, 0, 155}, - dictWord{16, 0, 79}, - dictWord{8, 11, 102}, - dictWord{10, 11, 578}, - dictWord{10, 11, 672}, - dictWord{12, 11, 496}, - dictWord{13, 11, 408}, - dictWord{14, 11, 121}, - dictWord{145, 11, 106}, - dictWord{4, 0, 599}, - dictWord{5, 0, 592}, - dictWord{6, 0, 1634}, - dictWord{7, 0, 5}, - dictWord{7, 0, 55}, - dictWord{7, 0, 67}, - dictWord{7, 0, 97}, - dictWord{7, 0, 691}, - dictWord{7, 0, 979}, - dictWord{7, 0, 1600}, - dictWord{7, 0, 1697}, - dictWord{8, 0, 207}, - dictWord{8, 0, 214}, - dictWord{8, 0, 231}, - dictWord{8, 0, 294}, - dictWord{8, 0, 336}, - dictWord{8, 0, 428}, - dictWord{8, 0, 471}, - dictWord{8, 0, 622}, - dictWord{8, 0, 626}, - dictWord{8, 0, 679}, - dictWord{8, 0, 759}, - dictWord{8, 0, 829}, - dictWord{9, 0, 11}, - dictWord{9, 0, 246}, - dictWord{9, 0, 484}, - dictWord{9, 0, 573}, - dictWord{9, 0, 706}, - dictWord{9, 0, 762}, - dictWord{9, 0, 798}, - dictWord{9, 0, 855}, - dictWord{9, 0, 870}, - dictWord{9, 0, 912}, - dictWord{10, 0, 303}, - dictWord{10, 0, 335}, - dictWord{10, 0, 424}, - dictWord{10, 0, 461}, - dictWord{10, 0, 543}, - dictWord{ - 10, - 0, - 759, - }, - dictWord{10, 0, 814}, - dictWord{11, 0, 59}, - dictWord{11, 0, 199}, - dictWord{11, 0, 235}, - dictWord{11, 0, 590}, - dictWord{11, 0, 631}, - dictWord{11, 0, 929}, - dictWord{11, 0, 963}, - dictWord{11, 0, 987}, - dictWord{12, 0, 114}, - dictWord{12, 0, 182}, - dictWord{12, 0, 226}, - dictWord{12, 0, 332}, - dictWord{12, 0, 439}, - dictWord{12, 0, 575}, - dictWord{12, 0, 598}, - dictWord{12, 0, 675}, - dictWord{13, 0, 8}, - dictWord{13, 0, 125}, - dictWord{13, 0, 194}, - dictWord{13, 0, 287}, - dictWord{ - 14, - 0, - 197, - }, - dictWord{14, 0, 383}, - dictWord{15, 0, 53}, - dictWord{17, 0, 63}, - dictWord{19, 0, 46}, - dictWord{19, 0, 98}, - dictWord{19, 0, 106}, - dictWord{148, 0, 85}, - dictWord{ - 7, - 0, - 1356, - }, - dictWord{132, 10, 290}, - dictWord{6, 10, 70}, - dictWord{7, 10, 1292}, - dictWord{10, 10, 762}, - dictWord{139, 10, 288}, - dictWord{150, 11, 55}, - dictWord{4, 0, 593}, - dictWord{8, 11, 115}, - dictWord{8, 11, 350}, - dictWord{9, 11, 489}, - dictWord{10, 11, 128}, - dictWord{11, 11, 306}, - dictWord{12, 11, 373}, - dictWord{14, 11, 30}, - dictWord{17, 11, 79}, - dictWord{147, 11, 80}, - dictWord{135, 11, 1235}, - dictWord{134, 0, 1392}, - dictWord{4, 11, 230}, - dictWord{ - 133, - 11, - 702, - }, - dictWord{147, 0, 126}, - dictWord{7, 10, 131}, - dictWord{7, 10, 422}, - dictWord{8, 10, 210}, - dictWord{140, 10, 573}, - dictWord{134, 0, 1179}, - dictWord{ - 139, - 11, - 435, - }, - dictWord{139, 10, 797}, - dictWord{134, 11, 1728}, - dictWord{4, 0, 162}, - dictWord{18, 11, 26}, - dictWord{19, 11, 42}, - dictWord{20, 11, 43}, - dictWord{21, 11, 0}, - dictWord{23, 11, 27}, - dictWord{152, 11, 14}, - dictWord{132, 10, 936}, - dictWord{6, 0, 765}, - dictWord{5, 10, 453}, - dictWord{134, 10, 441}, - dictWord{133, 0, 187}, - dictWord{135, 0, 1286}, - dictWord{6, 0, 635}, - dictWord{6, 0, 904}, - dictWord{6, 0, 1210}, - dictWord{134, 0, 1489}, - dictWord{4, 0, 215}, - dictWord{ - 8, - 0, - 890, - }, - dictWord{9, 0, 38}, - dictWord{10, 0, 923}, - dictWord{11, 0, 23}, - dictWord{11, 0, 127}, - dictWord{139, 0, 796}, - dictWord{6, 0, 1165}, - dictWord{ - 134, - 0, - 1306, - }, - dictWord{7, 0, 716}, - dictWord{13, 0, 97}, - dictWord{141, 0, 251}, - dictWord{132, 10, 653}, - dictWord{136, 0, 657}, - dictWord{146, 10, 80}, - dictWord{ - 5, - 11, - 622, - }, - dictWord{7, 11, 1032}, - dictWord{11, 11, 26}, - dictWord{11, 11, 213}, - dictWord{11, 11, 707}, - dictWord{12, 11, 380}, - dictWord{13, 11, 226}, - dictWord{141, 11, 355}, - dictWord{6, 0, 299}, - dictWord{5, 11, 70}, - dictWord{6, 11, 334}, - dictWord{9, 11, 171}, - dictWord{11, 11, 637}, - dictWord{12, 11, 202}, - dictWord{14, 11, 222}, - dictWord{145, 11, 42}, - dictWord{142, 0, 134}, - dictWord{4, 11, 23}, - dictWord{5, 11, 313}, - dictWord{5, 11, 1014}, - dictWord{6, 11, 50}, - dictWord{ - 6, - 11, - 51, - }, - dictWord{7, 11, 142}, - dictWord{7, 11, 384}, - dictWord{9, 11, 783}, - dictWord{139, 11, 741}, - dictWord{4, 11, 141}, - dictWord{7, 11, 559}, - dictWord{ - 8, - 11, - 640, - }, - dictWord{9, 11, 460}, - dictWord{12, 11, 183}, - dictWord{141, 11, 488}, - dictWord{136, 11, 614}, - dictWord{7, 10, 1368}, - dictWord{8, 10, 232}, - dictWord{8, 10, 361}, - dictWord{10, 10, 682}, - dictWord{138, 10, 742}, - dictWord{137, 10, 534}, - dictWord{6, 0, 1082}, - dictWord{140, 0, 658}, - dictWord{ - 137, - 10, - 27, - }, - dictWord{135, 0, 2002}, - dictWord{142, 10, 12}, - dictWord{4, 0, 28}, - dictWord{5, 0, 440}, - dictWord{7, 0, 248}, - dictWord{11, 0, 833}, - dictWord{140, 0, 344}, - dictWord{7, 10, 736}, - dictWord{139, 10, 264}, - dictWord{134, 10, 1657}, - dictWord{134, 0, 1654}, - dictWord{138, 0, 531}, - dictWord{5, 11, 222}, - dictWord{ - 9, - 11, - 140, - }, - dictWord{138, 11, 534}, - dictWord{6, 0, 634}, - dictWord{6, 0, 798}, - dictWord{134, 0, 840}, - dictWord{138, 11, 503}, - dictWord{135, 10, 127}, - dictWord{133, 0, 853}, - dictWord{5, 11, 154}, - dictWord{7, 11, 1491}, - dictWord{10, 11, 379}, - dictWord{138, 11, 485}, - dictWord{6, 0, 249}, - dictWord{7, 0, 1234}, - dictWord{139, 0, 573}, - dictWord{133, 11, 716}, - dictWord{7, 11, 1570}, - dictWord{140, 11, 542}, - dictWord{136, 10, 364}, - dictWord{138, 0, 527}, - dictWord{ - 4, - 11, - 91, - }, - dictWord{5, 11, 388}, - dictWord{5, 11, 845}, - dictWord{6, 11, 206}, - dictWord{6, 11, 252}, - dictWord{6, 11, 365}, - dictWord{7, 11, 136}, - dictWord{7, 11, 531}, - dictWord{8, 11, 264}, - dictWord{136, 11, 621}, - dictWord{134, 0, 1419}, - dictWord{135, 11, 1441}, - dictWord{7, 0, 49}, - dictWord{7, 0, 392}, - dictWord{8, 0, 20}, - dictWord{8, 0, 172}, - dictWord{8, 0, 690}, - dictWord{9, 0, 383}, - dictWord{9, 0, 845}, - dictWord{10, 0, 48}, - dictWord{11, 0, 293}, - dictWord{11, 0, 832}, - dictWord{ - 11, - 0, - 920, - }, - dictWord{11, 0, 984}, - dictWord{141, 0, 221}, - dictWord{5, 0, 858}, - dictWord{133, 0, 992}, - dictWord{5, 0, 728}, - dictWord{137, 10, 792}, - dictWord{ - 5, - 10, - 909, - }, - dictWord{9, 10, 849}, - dictWord{138, 10, 805}, - dictWord{7, 0, 525}, - dictWord{7, 0, 1579}, - dictWord{8, 0, 497}, - dictWord{136, 0, 573}, - dictWord{6, 0, 268}, - dictWord{137, 0, 62}, - dictWord{135, 11, 576}, - dictWord{134, 0, 1201}, - dictWord{5, 11, 771}, - dictWord{5, 11, 863}, - dictWord{5, 11, 898}, - dictWord{ - 6, - 11, - 1632, - }, - dictWord{6, 11, 1644}, - dictWord{134, 11, 1780}, - dictWord{133, 11, 331}, - dictWord{7, 0, 193}, - dictWord{7, 0, 1105}, - dictWord{10, 0, 495}, - dictWord{ - 7, - 10, - 397, - }, - dictWord{8, 10, 124}, - dictWord{8, 10, 619}, - dictWord{9, 10, 305}, - dictWord{11, 10, 40}, - dictWord{12, 10, 349}, - dictWord{13, 10, 134}, - dictWord{ - 13, - 10, - 295, - }, - dictWord{14, 10, 155}, - dictWord{15, 10, 120}, - dictWord{146, 10, 105}, - dictWord{138, 0, 106}, - dictWord{6, 0, 859}, - dictWord{5, 11, 107}, - dictWord{ - 7, - 11, - 201, - }, - dictWord{136, 11, 518}, - dictWord{6, 11, 446}, - dictWord{135, 11, 1817}, - dictWord{13, 0, 23}, - dictWord{4, 10, 262}, - dictWord{135, 10, 342}, - dictWord{133, 10, 641}, - dictWord{137, 11, 851}, - dictWord{6, 0, 925}, - dictWord{137, 0, 813}, - dictWord{132, 11, 504}, - dictWord{6, 0, 613}, - dictWord{ - 136, - 0, - 223, - }, - dictWord{4, 10, 99}, - dictWord{6, 10, 250}, - dictWord{6, 10, 346}, - dictWord{8, 10, 127}, - dictWord{138, 10, 81}, - dictWord{136, 0, 953}, - dictWord{ - 132, - 10, - 915, - }, - dictWord{139, 11, 892}, - dictWord{5, 10, 75}, - dictWord{9, 10, 517}, - dictWord{10, 10, 470}, - dictWord{12, 10, 155}, - dictWord{141, 10, 224}, - dictWord{ - 4, - 0, - 666, - }, - dictWord{7, 0, 1017}, - dictWord{7, 11, 996}, - dictWord{138, 11, 390}, - dictWord{5, 11, 883}, - dictWord{133, 11, 975}, - dictWord{14, 10, 83}, - dictWord{ - 142, - 11, - 83, - }, - dictWord{4, 0, 670}, - dictWord{5, 11, 922}, - dictWord{134, 11, 1707}, - dictWord{135, 0, 216}, - dictWord{9, 0, 40}, - dictWord{11, 0, 136}, - dictWord{ - 135, - 11, - 787, - }, - dictWord{5, 10, 954}, - dictWord{5, 11, 993}, - dictWord{7, 11, 515}, - dictWord{137, 11, 91}, - dictWord{139, 0, 259}, - dictWord{7, 0, 1114}, - dictWord{ - 9, - 0, - 310, - }, - dictWord{9, 0, 682}, - dictWord{10, 0, 440}, - dictWord{13, 0, 40}, - dictWord{6, 10, 304}, - dictWord{8, 10, 418}, - dictWord{11, 10, 341}, - dictWord{ - 139, - 10, - 675, - }, - dictWord{14, 0, 296}, - dictWord{9, 10, 410}, - dictWord{139, 10, 425}, - dictWord{10, 11, 377}, - dictWord{12, 11, 363}, - dictWord{13, 11, 68}, - dictWord{ - 13, - 11, - 94, - }, - dictWord{14, 11, 108}, - dictWord{142, 11, 306}, - dictWord{7, 0, 1401}, - dictWord{135, 0, 1476}, - dictWord{4, 0, 296}, - dictWord{6, 0, 475}, - dictWord{ - 7, - 0, - 401, - }, - dictWord{7, 0, 1410}, - dictWord{7, 0, 1594}, - dictWord{7, 0, 1674}, - dictWord{8, 0, 63}, - dictWord{8, 0, 660}, - dictWord{137, 0, 74}, - dictWord{4, 0, 139}, - dictWord{4, 0, 388}, - dictWord{140, 0, 188}, - dictWord{132, 0, 797}, - dictWord{132, 11, 766}, - dictWord{5, 11, 103}, - dictWord{7, 11, 921}, - dictWord{8, 11, 580}, - dictWord{8, 11, 593}, - dictWord{8, 11, 630}, - dictWord{138, 11, 28}, - dictWord{4, 11, 911}, - dictWord{5, 11, 867}, - dictWord{133, 11, 1013}, - dictWord{134, 10, 14}, - dictWord{134, 0, 1572}, - dictWord{134, 10, 1708}, - dictWord{21, 0, 39}, - dictWord{5, 10, 113}, - dictWord{6, 10, 243}, - dictWord{7, 10, 1865}, - dictWord{ - 11, - 10, - 161, - }, - dictWord{16, 10, 37}, - dictWord{145, 10, 99}, - dictWord{7, 11, 1563}, - dictWord{141, 11, 182}, - dictWord{5, 11, 135}, - dictWord{6, 11, 519}, - dictWord{ - 7, - 11, - 1722, - }, - dictWord{10, 11, 271}, - dictWord{11, 11, 261}, - dictWord{145, 11, 54}, - dictWord{132, 10, 274}, - dictWord{134, 0, 1594}, - dictWord{4, 11, 300}, - dictWord{5, 11, 436}, - dictWord{135, 11, 484}, - dictWord{4, 0, 747}, - dictWord{6, 0, 290}, - dictWord{7, 0, 649}, - dictWord{7, 0, 1479}, - dictWord{135, 0, 1583}, - dictWord{133, 11, 535}, - dictWord{147, 11, 82}, - dictWord{133, 0, 232}, - dictWord{137, 0, 887}, - dictWord{135, 10, 166}, - dictWord{136, 0, 521}, - dictWord{4, 0, 14}, - dictWord{7, 0, 472}, - dictWord{7, 0, 1801}, - dictWord{10, 0, 748}, - dictWord{141, 0, 458}, - dictWord{134, 0, 741}, - dictWord{134, 0, 992}, - dictWord{16, 0, 111}, - dictWord{137, 10, 304}, - dictWord{4, 0, 425}, - dictWord{5, 11, 387}, - dictWord{7, 11, 557}, - dictWord{12, 11, 547}, - dictWord{142, 11, 86}, - dictWord{ - 135, - 11, - 1747, - }, - dictWord{5, 10, 654}, - dictWord{135, 11, 1489}, - dictWord{7, 0, 789}, - dictWord{4, 11, 6}, - dictWord{5, 11, 708}, - dictWord{136, 11, 75}, - dictWord{ - 6, - 10, - 273, - }, - dictWord{10, 10, 188}, - dictWord{13, 10, 377}, - dictWord{146, 10, 77}, - dictWord{6, 0, 1593}, - dictWord{4, 11, 303}, - dictWord{7, 11, 619}, - dictWord{ - 10, - 11, - 547, - }, - dictWord{10, 11, 687}, - dictWord{11, 11, 122}, - dictWord{140, 11, 601}, - dictWord{134, 0, 1768}, - dictWord{135, 10, 410}, - dictWord{138, 11, 772}, - dictWord{11, 0, 233}, - dictWord{139, 10, 524}, - dictWord{5, 0, 943}, - dictWord{134, 0, 1779}, - dictWord{134, 10, 1785}, - dictWord{136, 11, 529}, - dictWord{ - 132, - 0, - 955, - }, - dictWord{5, 0, 245}, - dictWord{6, 0, 576}, - dictWord{7, 0, 582}, - dictWord{136, 0, 225}, - dictWord{132, 10, 780}, - dictWord{142, 0, 241}, - dictWord{ - 134, - 0, - 1943, - }, - dictWord{4, 11, 106}, - dictWord{7, 11, 310}, - dictWord{7, 11, 1785}, - dictWord{10, 11, 690}, - dictWord{139, 11, 717}, - dictWord{134, 0, 1284}, - dictWord{5, 11, 890}, - dictWord{133, 11, 988}, - dictWord{6, 11, 626}, - dictWord{142, 11, 431}, - dictWord{10, 11, 706}, - dictWord{145, 11, 32}, - dictWord{ - 137, - 11, - 332, - }, - dictWord{132, 11, 698}, - dictWord{135, 0, 709}, - dictWord{5, 10, 948}, - dictWord{138, 11, 17}, - dictWord{136, 0, 554}, - dictWord{134, 0, 1564}, - dictWord{139, 10, 941}, - dictWord{132, 0, 443}, - dictWord{134, 0, 909}, - dictWord{134, 11, 84}, - dictWord{142, 0, 280}, - dictWord{4, 10, 532}, - dictWord{5, 10, 706}, - dictWord{135, 10, 662}, - dictWord{132, 0, 729}, - dictWord{5, 10, 837}, - dictWord{6, 10, 1651}, - dictWord{139, 10, 985}, - dictWord{135, 10, 1861}, - dictWord{ - 4, - 0, - 348, - }, - dictWord{152, 11, 3}, - dictWord{5, 11, 986}, - dictWord{6, 11, 130}, - dictWord{7, 11, 1582}, - dictWord{8, 11, 458}, - dictWord{10, 11, 101}, - dictWord{ - 10, - 11, - 318, - }, - dictWord{138, 11, 823}, - dictWord{134, 0, 758}, - dictWord{4, 0, 298}, - dictWord{137, 0, 848}, - dictWord{4, 10, 330}, - dictWord{7, 10, 933}, - dictWord{ - 7, - 10, - 2012, - }, - dictWord{136, 10, 292}, - dictWord{7, 11, 1644}, - dictWord{137, 11, 129}, - dictWord{6, 0, 1422}, - dictWord{9, 0, 829}, - dictWord{135, 10, 767}, - dictWord{5, 0, 164}, - dictWord{7, 0, 121}, - dictWord{142, 0, 189}, - dictWord{7, 0, 812}, - dictWord{7, 0, 1261}, - dictWord{7, 0, 1360}, - dictWord{9, 0, 632}, - dictWord{ - 140, - 0, - 352, - }, - dictWord{135, 11, 1788}, - dictWord{139, 0, 556}, - dictWord{135, 11, 997}, - dictWord{145, 10, 114}, - dictWord{4, 0, 172}, - dictWord{9, 0, 611}, - dictWord{10, 0, 436}, - dictWord{12, 0, 673}, - dictWord{13, 0, 255}, - dictWord{137, 10, 883}, - dictWord{11, 0, 530}, - dictWord{138, 10, 274}, - dictWord{133, 0, 844}, - dictWord{134, 0, 984}, - dictWord{13, 0, 232}, - dictWord{18, 0, 35}, - dictWord{4, 10, 703}, - dictWord{135, 10, 207}, - dictWord{132, 10, 571}, - dictWord{9, 0, 263}, - dictWord{10, 0, 147}, - dictWord{138, 0, 492}, - dictWord{7, 11, 1756}, - dictWord{137, 11, 98}, - dictWord{5, 10, 873}, - dictWord{5, 10, 960}, - dictWord{8, 10, 823}, - dictWord{137, 10, 881}, - dictWord{133, 0, 537}, - dictWord{132, 0, 859}, - dictWord{7, 11, 1046}, - dictWord{139, 11, 160}, - dictWord{137, 0, 842}, - dictWord{ - 139, - 10, - 283, - }, - dictWord{5, 10, 33}, - dictWord{6, 10, 470}, - dictWord{139, 10, 424}, - dictWord{6, 11, 45}, - dictWord{7, 11, 433}, - dictWord{8, 11, 129}, - dictWord{ - 9, - 11, - 21, - }, - dictWord{10, 11, 392}, - dictWord{11, 11, 79}, - dictWord{12, 11, 499}, - dictWord{13, 11, 199}, - dictWord{141, 11, 451}, - dictWord{135, 0, 1291}, - dictWord{135, 10, 1882}, - dictWord{7, 11, 558}, - dictWord{136, 11, 353}, - dictWord{134, 0, 1482}, - dictWord{5, 0, 230}, - dictWord{5, 0, 392}, - dictWord{6, 0, 420}, - dictWord{9, 0, 568}, - dictWord{140, 0, 612}, - dictWord{6, 0, 262}, - dictWord{7, 10, 90}, - dictWord{7, 10, 664}, - dictWord{7, 10, 830}, - dictWord{7, 10, 1380}, - dictWord{ - 7, - 10, - 2025, - }, - dictWord{8, 11, 81}, - dictWord{8, 10, 448}, - dictWord{8, 10, 828}, - dictWord{9, 11, 189}, - dictWord{9, 11, 201}, - dictWord{11, 11, 478}, - dictWord{ - 11, - 11, - 712, - }, - dictWord{141, 11, 338}, - dictWord{142, 0, 31}, - dictWord{5, 11, 353}, - dictWord{151, 11, 26}, - dictWord{132, 0, 753}, - dictWord{4, 0, 0}, - dictWord{ - 5, - 0, - 41, - }, - dictWord{7, 0, 1459}, - dictWord{7, 0, 1469}, - dictWord{7, 0, 1859}, - dictWord{9, 0, 549}, - dictWord{139, 0, 905}, - dictWord{9, 10, 417}, - dictWord{ - 137, - 10, - 493, - }, - dictWord{135, 11, 1113}, - dictWord{133, 0, 696}, - dictWord{141, 11, 448}, - dictWord{134, 10, 295}, - dictWord{132, 0, 834}, - dictWord{4, 0, 771}, - dictWord{5, 10, 1019}, - dictWord{6, 11, 25}, - dictWord{7, 11, 855}, - dictWord{7, 11, 1258}, - dictWord{144, 11, 32}, - dictWord{134, 0, 1076}, - dictWord{133, 0, 921}, - dictWord{133, 0, 674}, - dictWord{4, 11, 4}, - dictWord{7, 11, 1118}, - dictWord{7, 11, 1320}, - dictWord{7, 11, 1706}, - dictWord{8, 11, 277}, - dictWord{9, 11, 622}, - dictWord{10, 11, 9}, - dictWord{11, 11, 724}, - dictWord{12, 11, 350}, - dictWord{12, 11, 397}, - dictWord{13, 11, 28}, - dictWord{13, 11, 159}, - dictWord{15, 11, 89}, - dictWord{18, 11, 5}, - dictWord{19, 11, 9}, - dictWord{20, 11, 34}, - dictWord{150, 11, 47}, - dictWord{134, 10, 208}, - dictWord{6, 0, 444}, - dictWord{136, 0, 308}, - dictWord{ - 6, - 0, - 180, - }, - dictWord{7, 0, 1137}, - dictWord{8, 0, 751}, - dictWord{139, 0, 805}, - dictWord{4, 0, 183}, - dictWord{7, 0, 271}, - dictWord{11, 0, 824}, - dictWord{ - 11, - 0, - 952, - }, - dictWord{13, 0, 278}, - dictWord{13, 0, 339}, - dictWord{13, 0, 482}, - dictWord{14, 0, 424}, - dictWord{148, 0, 99}, - dictWord{7, 11, 317}, - dictWord{ - 135, - 11, - 569, - }, - dictWord{4, 0, 19}, - dictWord{5, 0, 477}, - dictWord{5, 0, 596}, - dictWord{6, 0, 505}, - dictWord{7, 0, 1221}, - dictWord{11, 0, 907}, - dictWord{12, 0, 209}, - dictWord{141, 0, 214}, - dictWord{135, 0, 1215}, - dictWord{6, 0, 271}, - dictWord{7, 0, 398}, - dictWord{8, 0, 387}, - dictWord{10, 0, 344}, - dictWord{7, 10, 448}, - dictWord{ - 7, - 10, - 1629, - }, - dictWord{7, 10, 1813}, - dictWord{8, 10, 442}, - dictWord{9, 10, 710}, - dictWord{10, 10, 282}, - dictWord{138, 10, 722}, - dictWord{11, 10, 844}, - dictWord{12, 10, 104}, - dictWord{140, 10, 625}, - dictWord{134, 11, 255}, - dictWord{133, 10, 787}, - dictWord{134, 0, 1645}, - dictWord{11, 11, 956}, - dictWord{ - 151, - 11, - 3, - }, - dictWord{6, 0, 92}, - dictWord{6, 0, 188}, - dictWord{7, 0, 209}, - dictWord{7, 0, 1269}, - dictWord{7, 0, 1524}, - dictWord{7, 0, 1876}, - dictWord{8, 0, 661}, - dictWord{10, 0, 42}, - dictWord{10, 0, 228}, - dictWord{11, 0, 58}, - dictWord{11, 0, 1020}, - dictWord{12, 0, 58}, - dictWord{12, 0, 118}, - dictWord{141, 0, 32}, - dictWord{ - 4, - 0, - 459, - }, - dictWord{133, 0, 966}, - dictWord{4, 11, 536}, - dictWord{7, 11, 1141}, - dictWord{10, 11, 723}, - dictWord{139, 11, 371}, - dictWord{140, 0, 330}, - dictWord{134, 0, 1557}, - dictWord{7, 11, 285}, - dictWord{135, 11, 876}, - dictWord{136, 10, 491}, - dictWord{135, 11, 560}, - dictWord{6, 0, 18}, - dictWord{7, 0, 179}, - dictWord{7, 0, 932}, - dictWord{8, 0, 548}, - dictWord{8, 0, 757}, - dictWord{9, 0, 54}, - dictWord{9, 0, 65}, - dictWord{9, 0, 532}, - dictWord{9, 0, 844}, - dictWord{10, 0, 113}, - dictWord{10, 0, 117}, - dictWord{10, 0, 315}, - dictWord{10, 0, 560}, - dictWord{10, 0, 622}, - dictWord{10, 0, 798}, - dictWord{11, 0, 153}, - dictWord{11, 0, 351}, - dictWord{ - 11, - 0, - 375, - }, - dictWord{12, 0, 78}, - dictWord{12, 0, 151}, - dictWord{12, 0, 392}, - dictWord{12, 0, 666}, - dictWord{14, 0, 248}, - dictWord{143, 0, 23}, - dictWord{ - 6, - 0, - 1742, - }, - dictWord{132, 11, 690}, - dictWord{4, 10, 403}, - dictWord{5, 10, 441}, - dictWord{7, 10, 450}, - dictWord{10, 10, 840}, - dictWord{11, 10, 101}, - dictWord{ - 12, - 10, - 193, - }, - dictWord{141, 10, 430}, - dictWord{133, 0, 965}, - dictWord{134, 0, 182}, - dictWord{10, 0, 65}, - dictWord{10, 0, 488}, - dictWord{138, 0, 497}, - dictWord{135, 11, 1346}, - dictWord{6, 0, 973}, - dictWord{6, 0, 1158}, - dictWord{10, 11, 200}, - dictWord{19, 11, 2}, - dictWord{151, 11, 22}, - dictWord{4, 11, 190}, - dictWord{133, 11, 554}, - dictWord{133, 10, 679}, - dictWord{7, 0, 328}, - dictWord{137, 10, 326}, - dictWord{133, 11, 1001}, - dictWord{9, 0, 588}, - dictWord{ - 138, - 0, - 260, - }, - dictWord{133, 11, 446}, - dictWord{135, 10, 1128}, - dictWord{135, 10, 1796}, - dictWord{147, 11, 119}, - dictWord{134, 0, 1786}, - dictWord{ - 6, - 0, - 1328, - }, - dictWord{6, 0, 1985}, - dictWord{8, 0, 962}, - dictWord{138, 0, 1017}, - dictWord{135, 0, 308}, - dictWord{11, 0, 508}, - dictWord{4, 10, 574}, - dictWord{ - 7, - 10, - 350, - }, - dictWord{7, 10, 1024}, - dictWord{8, 10, 338}, - dictWord{9, 10, 677}, - dictWord{138, 10, 808}, - dictWord{138, 11, 752}, - dictWord{135, 10, 1081}, - dictWord{137, 11, 96}, - dictWord{7, 10, 1676}, - dictWord{135, 10, 2037}, - dictWord{136, 0, 588}, - dictWord{132, 11, 304}, - dictWord{133, 0, 614}, - dictWord{ - 140, - 0, - 793, - }, - dictWord{136, 0, 287}, - dictWord{137, 10, 297}, - dictWord{141, 10, 37}, - dictWord{6, 11, 53}, - dictWord{6, 11, 199}, - dictWord{7, 11, 1408}, - dictWord{ - 8, - 11, - 32, - }, - dictWord{8, 11, 93}, - dictWord{9, 11, 437}, - dictWord{10, 11, 397}, - dictWord{10, 11, 629}, - dictWord{11, 11, 593}, - dictWord{11, 11, 763}, - dictWord{ - 13, - 11, - 326, - }, - dictWord{145, 11, 35}, - dictWord{134, 11, 105}, - dictWord{9, 11, 320}, - dictWord{10, 11, 506}, - dictWord{138, 11, 794}, - dictWord{5, 11, 114}, - dictWord{5, 11, 255}, - dictWord{141, 11, 285}, - dictWord{140, 0, 290}, - dictWord{7, 11, 2035}, - dictWord{8, 11, 19}, - dictWord{9, 11, 89}, - dictWord{138, 11, 831}, - dictWord{134, 0, 1136}, - dictWord{7, 0, 719}, - dictWord{8, 0, 796}, - dictWord{8, 0, 809}, - dictWord{8, 0, 834}, - dictWord{6, 10, 306}, - dictWord{7, 10, 1140}, - dictWord{ - 7, - 10, - 1340, - }, - dictWord{8, 10, 133}, - dictWord{138, 10, 449}, - dictWord{139, 10, 1011}, - dictWord{5, 0, 210}, - dictWord{6, 0, 213}, - dictWord{7, 0, 60}, - dictWord{ - 10, - 0, - 364, - }, - dictWord{139, 0, 135}, - dictWord{5, 0, 607}, - dictWord{8, 0, 326}, - dictWord{136, 0, 490}, - dictWord{138, 11, 176}, - dictWord{132, 0, 701}, - dictWord{ - 5, - 0, - 472, - }, - dictWord{7, 0, 380}, - dictWord{137, 0, 758}, - dictWord{135, 0, 1947}, - dictWord{6, 0, 1079}, - dictWord{138, 0, 278}, - dictWord{138, 11, 391}, - dictWord{ - 5, - 10, - 329, - }, - dictWord{8, 10, 260}, - dictWord{139, 11, 156}, - dictWord{4, 0, 386}, - dictWord{7, 0, 41}, - dictWord{8, 0, 405}, - dictWord{8, 0, 728}, - dictWord{9, 0, 497}, - dictWord{11, 0, 110}, - dictWord{11, 0, 360}, - dictWord{15, 0, 37}, - dictWord{144, 0, 84}, - dictWord{5, 0, 46}, - dictWord{7, 0, 1452}, - dictWord{7, 0, 1480}, - dictWord{ - 8, - 0, - 634, - }, - dictWord{140, 0, 472}, - dictWord{136, 0, 961}, - dictWord{4, 0, 524}, - dictWord{136, 0, 810}, - dictWord{10, 0, 238}, - dictWord{141, 0, 33}, - dictWord{ - 132, - 10, - 657, - }, - dictWord{152, 10, 7}, - dictWord{133, 0, 532}, - dictWord{5, 0, 997}, - dictWord{135, 10, 1665}, - dictWord{7, 11, 594}, - dictWord{7, 11, 851}, - dictWord{ - 7, - 11, - 1858, - }, - dictWord{9, 11, 411}, - dictWord{9, 11, 574}, - dictWord{9, 11, 666}, - dictWord{9, 11, 737}, - dictWord{10, 11, 346}, - dictWord{10, 11, 712}, - dictWord{ - 11, - 11, - 246, - }, - dictWord{11, 11, 432}, - dictWord{11, 11, 517}, - dictWord{11, 11, 647}, - dictWord{11, 11, 679}, - dictWord{11, 11, 727}, - dictWord{12, 11, 304}, - dictWord{12, 11, 305}, - dictWord{12, 11, 323}, - dictWord{12, 11, 483}, - dictWord{12, 11, 572}, - dictWord{12, 11, 593}, - dictWord{12, 11, 602}, - dictWord{ - 13, - 11, - 95, - }, - dictWord{13, 11, 101}, - dictWord{13, 11, 171}, - dictWord{13, 11, 315}, - dictWord{13, 11, 378}, - dictWord{13, 11, 425}, - dictWord{13, 11, 475}, - dictWord{ - 14, - 11, - 63, - }, - dictWord{14, 11, 380}, - dictWord{14, 11, 384}, - dictWord{15, 11, 133}, - dictWord{18, 11, 112}, - dictWord{148, 11, 72}, - dictWord{5, 11, 955}, - dictWord{136, 11, 814}, - dictWord{134, 0, 1301}, - dictWord{5, 10, 66}, - dictWord{7, 10, 1896}, - dictWord{136, 10, 288}, - dictWord{133, 11, 56}, - dictWord{ - 134, - 10, - 1643, - }, - dictWord{6, 0, 1298}, - dictWord{148, 11, 100}, - dictWord{5, 0, 782}, - dictWord{5, 0, 829}, - dictWord{6, 0, 671}, - dictWord{6, 0, 1156}, - dictWord{6, 0, 1738}, - dictWord{137, 11, 621}, - dictWord{4, 0, 306}, - dictWord{5, 0, 570}, - dictWord{7, 0, 1347}, - dictWord{5, 10, 91}, - dictWord{5, 10, 648}, - dictWord{5, 10, 750}, - dictWord{ - 5, - 10, - 781, - }, - dictWord{6, 10, 54}, - dictWord{6, 10, 112}, - dictWord{6, 10, 402}, - dictWord{6, 10, 1732}, - dictWord{7, 10, 315}, - dictWord{7, 10, 749}, - dictWord{ - 7, - 10, - 1900, - }, - dictWord{9, 10, 78}, - dictWord{9, 10, 508}, - dictWord{10, 10, 611}, - dictWord{10, 10, 811}, - dictWord{11, 10, 510}, - dictWord{11, 10, 728}, - dictWord{ - 13, - 10, - 36, - }, - dictWord{14, 10, 39}, - dictWord{16, 10, 83}, - dictWord{17, 10, 124}, - dictWord{148, 10, 30}, - dictWord{8, 10, 570}, - dictWord{9, 11, 477}, - dictWord{ - 141, - 11, - 78, - }, - dictWord{4, 11, 639}, - dictWord{10, 11, 4}, - dictWord{10, 10, 322}, - dictWord{10, 10, 719}, - dictWord{11, 10, 407}, - dictWord{11, 11, 638}, - dictWord{ - 12, - 11, - 177, - }, - dictWord{148, 11, 57}, - dictWord{7, 0, 1823}, - dictWord{139, 0, 693}, - dictWord{7, 0, 759}, - dictWord{5, 11, 758}, - dictWord{8, 10, 125}, - dictWord{ - 8, - 10, - 369, - }, - dictWord{8, 10, 524}, - dictWord{10, 10, 486}, - dictWord{11, 10, 13}, - dictWord{11, 10, 381}, - dictWord{11, 10, 736}, - dictWord{11, 10, 766}, - dictWord{ - 11, - 10, - 845, - }, - dictWord{13, 10, 114}, - dictWord{13, 10, 292}, - dictWord{142, 10, 47}, - dictWord{7, 0, 1932}, - dictWord{6, 10, 1684}, - dictWord{6, 10, 1731}, - dictWord{7, 10, 356}, - dictWord{8, 10, 54}, - dictWord{8, 10, 221}, - dictWord{9, 10, 225}, - dictWord{9, 10, 356}, - dictWord{10, 10, 77}, - dictWord{10, 10, 446}, - dictWord{ - 10, - 10, - 731, - }, - dictWord{12, 10, 404}, - dictWord{141, 10, 491}, - dictWord{135, 11, 552}, - dictWord{135, 11, 1112}, - dictWord{4, 0, 78}, - dictWord{5, 0, 96}, - dictWord{ - 5, - 0, - 182, - }, - dictWord{6, 0, 1257}, - dictWord{7, 0, 1724}, - dictWord{7, 0, 1825}, - dictWord{10, 0, 394}, - dictWord{10, 0, 471}, - dictWord{11, 0, 532}, - dictWord{ - 14, - 0, - 340, - }, - dictWord{145, 0, 88}, - dictWord{139, 11, 328}, - dictWord{135, 0, 1964}, - dictWord{132, 10, 411}, - dictWord{4, 10, 80}, - dictWord{5, 10, 44}, - dictWord{ - 137, - 11, - 133, - }, - dictWord{5, 11, 110}, - dictWord{6, 11, 169}, - dictWord{6, 11, 1702}, - dictWord{7, 11, 400}, - dictWord{8, 11, 538}, - dictWord{9, 11, 184}, - dictWord{ - 9, - 11, - 524, - }, - dictWord{140, 11, 218}, - dictWord{4, 0, 521}, - dictWord{5, 10, 299}, - dictWord{7, 10, 1083}, - dictWord{140, 11, 554}, - dictWord{6, 11, 133}, - dictWord{ - 9, - 11, - 353, - }, - dictWord{12, 11, 628}, - dictWord{146, 11, 79}, - dictWord{6, 0, 215}, - dictWord{7, 0, 584}, - dictWord{7, 0, 1028}, - dictWord{7, 0, 1473}, - dictWord{ - 7, - 0, - 1721, - }, - dictWord{9, 0, 424}, - dictWord{138, 0, 779}, - dictWord{7, 0, 857}, - dictWord{7, 0, 1209}, - dictWord{7, 10, 1713}, - dictWord{9, 10, 537}, - dictWord{ - 10, - 10, - 165, - }, - dictWord{12, 10, 219}, - dictWord{140, 10, 561}, - dictWord{4, 10, 219}, - dictWord{6, 11, 93}, - dictWord{7, 11, 1422}, - dictWord{7, 10, 1761}, - dictWord{ - 7, - 11, - 1851, - }, - dictWord{8, 11, 673}, - dictWord{9, 10, 86}, - dictWord{9, 11, 529}, - dictWord{140, 11, 43}, - dictWord{137, 11, 371}, - dictWord{136, 0, 671}, - dictWord{ - 5, - 0, - 328, - }, - dictWord{135, 0, 918}, - dictWord{132, 0, 529}, - dictWord{9, 11, 25}, - dictWord{10, 11, 467}, - dictWord{138, 11, 559}, - dictWord{4, 11, 335}, - dictWord{ - 135, - 11, - 942, - }, - dictWord{134, 0, 716}, - dictWord{134, 0, 1509}, - dictWord{6, 0, 67}, - dictWord{7, 0, 258}, - dictWord{7, 0, 1630}, - dictWord{9, 0, 354}, - dictWord{ - 9, - 0, - 675, - }, - dictWord{10, 0, 830}, - dictWord{14, 0, 80}, - dictWord{17, 0, 80}, - dictWord{140, 10, 428}, - dictWord{134, 0, 1112}, - dictWord{6, 0, 141}, - dictWord{7, 0, 225}, - dictWord{9, 0, 59}, - dictWord{9, 0, 607}, - dictWord{10, 0, 312}, - dictWord{11, 0, 687}, - dictWord{12, 0, 555}, - dictWord{13, 0, 373}, - dictWord{13, 0, 494}, - dictWord{ - 148, - 0, - 58, - }, - dictWord{133, 10, 514}, - dictWord{8, 11, 39}, - dictWord{10, 11, 773}, - dictWord{11, 11, 84}, - dictWord{12, 11, 205}, - dictWord{142, 11, 1}, - dictWord{ - 8, - 0, - 783, - }, - dictWord{5, 11, 601}, - dictWord{133, 11, 870}, - dictWord{136, 11, 594}, - dictWord{4, 10, 55}, - dictWord{5, 10, 301}, - dictWord{6, 10, 571}, - dictWord{ - 14, - 10, - 49, - }, - dictWord{146, 10, 102}, - dictWord{132, 11, 181}, - dictWord{134, 11, 1652}, - dictWord{133, 10, 364}, - dictWord{4, 11, 97}, - dictWord{5, 11, 147}, - dictWord{6, 11, 286}, - dictWord{7, 11, 1362}, - dictWord{141, 11, 176}, - dictWord{4, 10, 76}, - dictWord{7, 10, 1550}, - dictWord{9, 10, 306}, - dictWord{9, 10, 430}, - dictWord{9, 10, 663}, - dictWord{10, 10, 683}, - dictWord{11, 10, 427}, - dictWord{11, 10, 753}, - dictWord{12, 10, 334}, - dictWord{12, 10, 442}, - dictWord{ - 14, - 10, - 258, - }, - dictWord{14, 10, 366}, - dictWord{143, 10, 131}, - dictWord{137, 10, 52}, - dictWord{6, 0, 955}, - dictWord{134, 0, 1498}, - dictWord{6, 11, 375}, - dictWord{ - 7, - 11, - 169, - }, - dictWord{7, 11, 254}, - dictWord{136, 11, 780}, - dictWord{7, 0, 430}, - dictWord{11, 0, 46}, - dictWord{14, 0, 343}, - dictWord{142, 11, 343}, - dictWord{ - 135, - 0, - 1183, - }, - dictWord{5, 0, 602}, - dictWord{7, 0, 2018}, - dictWord{9, 0, 418}, - dictWord{9, 0, 803}, - dictWord{135, 11, 1447}, - dictWord{8, 0, 677}, - dictWord{ - 135, - 11, - 1044, - }, - dictWord{139, 11, 285}, - dictWord{4, 10, 656}, - dictWord{135, 10, 779}, - dictWord{135, 10, 144}, - dictWord{5, 11, 629}, - dictWord{ - 135, - 11, - 1549, - }, - dictWord{135, 10, 1373}, - dictWord{138, 11, 209}, - dictWord{7, 10, 554}, - dictWord{7, 10, 605}, - dictWord{141, 10, 10}, - dictWord{5, 10, 838}, - dictWord{ - 5, - 10, - 841, - }, - dictWord{134, 10, 1649}, - dictWord{133, 10, 1012}, - dictWord{6, 0, 1357}, - dictWord{134, 0, 1380}, - dictWord{144, 0, 53}, - dictWord{6, 0, 590}, - dictWord{7, 10, 365}, - dictWord{7, 10, 1357}, - dictWord{7, 10, 1497}, - dictWord{8, 10, 154}, - dictWord{141, 10, 281}, - dictWord{133, 10, 340}, - dictWord{ - 132, - 11, - 420, - }, - dictWord{135, 0, 329}, - dictWord{147, 11, 32}, - dictWord{4, 0, 469}, - dictWord{10, 11, 429}, - dictWord{139, 10, 495}, - dictWord{8, 10, 261}, - dictWord{ - 9, - 10, - 144, - }, - dictWord{9, 10, 466}, - dictWord{10, 10, 370}, - dictWord{12, 10, 470}, - dictWord{13, 10, 144}, - dictWord{142, 10, 348}, - dictWord{142, 0, 460}, - dictWord{4, 11, 325}, - dictWord{9, 10, 897}, - dictWord{138, 11, 125}, - dictWord{6, 0, 1743}, - dictWord{6, 10, 248}, - dictWord{9, 10, 546}, - dictWord{10, 10, 535}, - dictWord{11, 10, 681}, - dictWord{141, 10, 135}, - dictWord{4, 0, 990}, - dictWord{5, 0, 929}, - dictWord{6, 0, 340}, - dictWord{8, 0, 376}, - dictWord{8, 0, 807}, - dictWord{ - 8, - 0, - 963, - }, - dictWord{8, 0, 980}, - dictWord{138, 0, 1007}, - dictWord{134, 0, 1603}, - dictWord{140, 0, 250}, - dictWord{4, 11, 714}, - dictWord{133, 11, 469}, - dictWord{134, 10, 567}, - dictWord{136, 10, 445}, - dictWord{5, 0, 218}, - dictWord{7, 0, 1610}, - dictWord{8, 0, 646}, - dictWord{10, 0, 83}, - dictWord{11, 11, 138}, - dictWord{140, 11, 40}, - dictWord{7, 0, 1512}, - dictWord{135, 0, 1794}, - dictWord{135, 11, 1216}, - dictWord{11, 0, 0}, - dictWord{16, 0, 78}, - dictWord{132, 11, 718}, - dictWord{133, 0, 571}, - dictWord{132, 0, 455}, - dictWord{134, 0, 1012}, - dictWord{5, 11, 124}, - dictWord{5, 11, 144}, - dictWord{6, 11, 548}, - dictWord{7, 11, 15}, - dictWord{7, 11, 153}, - dictWord{137, 11, 629}, - dictWord{142, 11, 10}, - dictWord{6, 11, 75}, - dictWord{7, 11, 1531}, - dictWord{8, 11, 416}, - dictWord{9, 11, 240}, - dictWord{9, 11, 275}, - dictWord{10, 11, 100}, - dictWord{11, 11, 658}, - dictWord{11, 11, 979}, - dictWord{12, 11, 86}, - dictWord{13, 11, 468}, - dictWord{14, 11, 66}, - dictWord{14, 11, 207}, - dictWord{15, 11, 20}, - dictWord{15, 11, 25}, - dictWord{144, 11, 58}, - dictWord{132, 10, 577}, - dictWord{5, 11, 141}, - dictWord{ - 5, - 11, - 915, - }, - dictWord{6, 11, 1783}, - dictWord{7, 11, 211}, - dictWord{7, 11, 698}, - dictWord{7, 11, 1353}, - dictWord{9, 11, 83}, - dictWord{9, 11, 281}, - dictWord{ - 10, - 11, - 376, - }, - dictWord{10, 11, 431}, - dictWord{11, 11, 543}, - dictWord{12, 11, 664}, - dictWord{13, 11, 280}, - dictWord{13, 11, 428}, - dictWord{14, 11, 61}, - dictWord{ - 14, - 11, - 128, - }, - dictWord{17, 11, 52}, - dictWord{145, 11, 81}, - dictWord{6, 0, 161}, - dictWord{7, 0, 372}, - dictWord{137, 0, 597}, - dictWord{132, 0, 349}, - dictWord{ - 10, - 11, - 702, - }, - dictWord{139, 11, 245}, - dictWord{134, 0, 524}, - dictWord{134, 10, 174}, - dictWord{6, 0, 432}, - dictWord{9, 0, 751}, - dictWord{139, 0, 322}, - dictWord{147, 11, 94}, - dictWord{4, 11, 338}, - dictWord{133, 11, 400}, - dictWord{5, 0, 468}, - dictWord{10, 0, 325}, - dictWord{11, 0, 856}, - dictWord{12, 0, 345}, - dictWord{143, 0, 104}, - dictWord{133, 0, 223}, - dictWord{132, 0, 566}, - dictWord{4, 11, 221}, - dictWord{5, 11, 659}, - dictWord{5, 11, 989}, - dictWord{7, 11, 697}, - dictWord{7, 11, 1211}, - dictWord{138, 11, 284}, - dictWord{135, 11, 1070}, - dictWord{4, 0, 59}, - dictWord{135, 0, 1394}, - dictWord{6, 0, 436}, - dictWord{11, 0, 481}, - dictWord{5, 10, 878}, - dictWord{133, 10, 972}, - dictWord{4, 0, 48}, - dictWord{5, 0, 271}, - dictWord{135, 0, 953}, - dictWord{5, 0, 610}, - dictWord{136, 0, 457}, - dictWord{ - 4, - 0, - 773, - }, - dictWord{5, 0, 618}, - dictWord{137, 0, 756}, - dictWord{133, 0, 755}, - dictWord{135, 0, 1217}, - dictWord{138, 11, 507}, - dictWord{132, 10, 351}, - dictWord{132, 0, 197}, - dictWord{143, 11, 78}, - dictWord{4, 11, 188}, - dictWord{7, 11, 805}, - dictWord{11, 11, 276}, - dictWord{142, 11, 293}, - dictWord{ - 5, - 11, - 884, - }, - dictWord{139, 11, 991}, - dictWord{132, 10, 286}, - dictWord{10, 0, 259}, - dictWord{10, 0, 428}, - dictWord{7, 10, 438}, - dictWord{7, 10, 627}, - dictWord{ - 7, - 10, - 1516, - }, - dictWord{8, 10, 40}, - dictWord{9, 10, 56}, - dictWord{9, 10, 294}, - dictWord{11, 10, 969}, - dictWord{11, 10, 995}, - dictWord{146, 10, 148}, - dictWord{ - 4, - 0, - 356, - }, - dictWord{5, 0, 217}, - dictWord{5, 0, 492}, - dictWord{5, 0, 656}, - dictWord{8, 0, 544}, - dictWord{136, 11, 544}, - dictWord{5, 0, 259}, - dictWord{6, 0, 1230}, - dictWord{7, 0, 414}, - dictWord{7, 0, 854}, - dictWord{142, 0, 107}, - dictWord{132, 0, 1007}, - dictWord{15, 0, 14}, - dictWord{144, 0, 5}, - dictWord{6, 0, 1580}, - dictWord{ - 132, - 10, - 738, - }, - dictWord{132, 11, 596}, - dictWord{132, 0, 673}, - dictWord{133, 10, 866}, - dictWord{6, 0, 1843}, - dictWord{135, 11, 1847}, - dictWord{4, 0, 165}, - dictWord{7, 0, 1398}, - dictWord{135, 0, 1829}, - dictWord{135, 11, 1634}, - dictWord{147, 11, 65}, - dictWord{6, 0, 885}, - dictWord{6, 0, 1009}, - dictWord{ - 137, - 0, - 809, - }, - dictWord{133, 10, 116}, - dictWord{132, 10, 457}, - dictWord{136, 11, 770}, - dictWord{9, 0, 498}, - dictWord{12, 0, 181}, - dictWord{10, 11, 361}, - dictWord{142, 11, 316}, - dictWord{134, 11, 595}, - dictWord{5, 0, 9}, - dictWord{7, 0, 297}, - dictWord{7, 0, 966}, - dictWord{140, 0, 306}, - dictWord{4, 11, 89}, - dictWord{ - 5, - 11, - 489, - }, - dictWord{6, 11, 315}, - dictWord{7, 11, 553}, - dictWord{7, 11, 1745}, - dictWord{138, 11, 243}, - dictWord{134, 0, 1487}, - dictWord{132, 0, 437}, - dictWord{ - 5, - 0, - 146, - }, - dictWord{6, 0, 411}, - dictWord{138, 0, 721}, - dictWord{5, 10, 527}, - dictWord{6, 10, 189}, - dictWord{135, 10, 859}, - dictWord{11, 10, 104}, - dictWord{ - 11, - 10, - 554, - }, - dictWord{15, 10, 60}, - dictWord{143, 10, 125}, - dictWord{6, 11, 1658}, - dictWord{9, 11, 3}, - dictWord{10, 11, 154}, - dictWord{11, 11, 641}, - dictWord{13, 11, 85}, - dictWord{13, 11, 201}, - dictWord{141, 11, 346}, - dictWord{6, 0, 177}, - dictWord{135, 0, 467}, - dictWord{134, 0, 1377}, - dictWord{ - 134, - 10, - 116, - }, - dictWord{136, 11, 645}, - dictWord{4, 11, 166}, - dictWord{5, 11, 505}, - dictWord{6, 11, 1670}, - dictWord{137, 11, 110}, - dictWord{133, 10, 487}, - dictWord{ - 4, - 10, - 86, - }, - dictWord{5, 10, 667}, - dictWord{5, 10, 753}, - dictWord{6, 10, 316}, - dictWord{6, 10, 455}, - dictWord{135, 10, 946}, - dictWord{133, 0, 200}, - dictWord{132, 0, 959}, - dictWord{6, 0, 1928}, - dictWord{134, 0, 1957}, - dictWord{139, 11, 203}, - dictWord{150, 10, 45}, - dictWord{4, 10, 79}, - dictWord{7, 10, 1773}, - dictWord{10, 10, 450}, - dictWord{11, 10, 589}, - dictWord{13, 10, 332}, - dictWord{13, 10, 493}, - dictWord{14, 10, 183}, - dictWord{14, 10, 334}, - dictWord{ - 14, - 10, - 362, - }, - dictWord{14, 10, 368}, - dictWord{14, 10, 376}, - dictWord{14, 10, 379}, - dictWord{19, 10, 90}, - dictWord{19, 10, 103}, - dictWord{19, 10, 127}, - dictWord{148, 10, 90}, - dictWord{6, 0, 1435}, - dictWord{135, 11, 1275}, - dictWord{134, 0, 481}, - dictWord{7, 11, 445}, - dictWord{8, 11, 307}, - dictWord{8, 11, 704}, - dictWord{10, 11, 41}, - dictWord{10, 11, 439}, - dictWord{11, 11, 237}, - dictWord{11, 11, 622}, - dictWord{140, 11, 201}, - dictWord{135, 11, 869}, - dictWord{ - 4, - 0, - 84, - }, - dictWord{7, 0, 1482}, - dictWord{10, 0, 76}, - dictWord{138, 0, 142}, - dictWord{11, 11, 277}, - dictWord{144, 11, 14}, - dictWord{135, 11, 1977}, - dictWord{ - 4, - 11, - 189, - }, - dictWord{5, 11, 713}, - dictWord{136, 11, 57}, - dictWord{133, 0, 1015}, - dictWord{138, 11, 371}, - dictWord{4, 0, 315}, - dictWord{5, 0, 507}, - dictWord{ - 135, - 0, - 1370, - }, - dictWord{4, 11, 552}, - dictWord{142, 10, 381}, - dictWord{9, 0, 759}, - dictWord{16, 0, 31}, - dictWord{16, 0, 39}, - dictWord{16, 0, 75}, - dictWord{18, 0, 24}, - dictWord{20, 0, 42}, - dictWord{152, 0, 1}, - dictWord{134, 0, 712}, - dictWord{134, 0, 1722}, - dictWord{133, 10, 663}, - dictWord{133, 10, 846}, - dictWord{ - 8, - 0, - 222, - }, - dictWord{8, 0, 476}, - dictWord{9, 0, 238}, - dictWord{11, 0, 516}, - dictWord{11, 0, 575}, - dictWord{15, 0, 109}, - dictWord{146, 0, 100}, - dictWord{7, 0, 1402}, - dictWord{7, 0, 1414}, - dictWord{12, 0, 456}, - dictWord{5, 10, 378}, - dictWord{8, 10, 465}, - dictWord{9, 10, 286}, - dictWord{10, 10, 185}, - dictWord{10, 10, 562}, - dictWord{10, 10, 635}, - dictWord{11, 10, 31}, - dictWord{11, 10, 393}, - dictWord{13, 10, 312}, - dictWord{18, 10, 65}, - dictWord{18, 10, 96}, - dictWord{147, 10, 89}, - dictWord{4, 0, 986}, - dictWord{6, 0, 1958}, - dictWord{6, 0, 2032}, - dictWord{8, 0, 934}, - dictWord{138, 0, 985}, - dictWord{7, 10, 1880}, - dictWord{9, 10, 680}, - dictWord{139, 10, 798}, - dictWord{134, 10, 1770}, - dictWord{145, 11, 49}, - dictWord{132, 11, 614}, - dictWord{132, 10, 648}, - dictWord{5, 10, 945}, - dictWord{ - 6, - 10, - 1656, - }, - dictWord{6, 10, 1787}, - dictWord{7, 10, 167}, - dictWord{8, 10, 824}, - dictWord{9, 10, 391}, - dictWord{10, 10, 375}, - dictWord{139, 10, 185}, - dictWord{138, 11, 661}, - dictWord{7, 0, 1273}, - dictWord{135, 11, 1945}, - dictWord{7, 0, 706}, - dictWord{7, 0, 1058}, - dictWord{138, 0, 538}, - dictWord{7, 10, 1645}, - dictWord{8, 10, 352}, - dictWord{137, 10, 249}, - dictWord{132, 10, 152}, - dictWord{11, 0, 92}, - dictWord{11, 0, 196}, - dictWord{11, 0, 409}, - dictWord{11, 0, 450}, - dictWord{11, 0, 666}, - dictWord{11, 0, 777}, - dictWord{12, 0, 262}, - dictWord{13, 0, 385}, - dictWord{13, 0, 393}, - dictWord{15, 0, 115}, - dictWord{16, 0, 45}, - dictWord{145, 0, 82}, - dictWord{133, 10, 1006}, - dictWord{6, 0, 40}, - dictWord{135, 0, 1781}, - dictWord{9, 11, 614}, - dictWord{139, 11, 327}, - dictWord{5, 10, 420}, - dictWord{135, 10, 1449}, - dictWord{135, 0, 431}, - dictWord{10, 0, 97}, - dictWord{135, 10, 832}, - dictWord{6, 0, 423}, - dictWord{7, 0, 665}, - dictWord{ - 135, - 0, - 1210, - }, - dictWord{7, 0, 237}, - dictWord{8, 0, 664}, - dictWord{9, 0, 42}, - dictWord{9, 0, 266}, - dictWord{9, 0, 380}, - dictWord{9, 0, 645}, - dictWord{10, 0, 177}, - dictWord{ - 138, - 0, - 276, - }, - dictWord{7, 0, 264}, - dictWord{133, 10, 351}, - dictWord{8, 0, 213}, - dictWord{5, 10, 40}, - dictWord{7, 10, 598}, - dictWord{7, 10, 1638}, - dictWord{ - 9, - 10, - 166, - }, - dictWord{9, 10, 640}, - dictWord{9, 10, 685}, - dictWord{9, 10, 773}, - dictWord{11, 10, 215}, - dictWord{13, 10, 65}, - dictWord{14, 10, 172}, - dictWord{ - 14, - 10, - 317, - }, - dictWord{145, 10, 6}, - dictWord{5, 11, 84}, - dictWord{134, 11, 163}, - dictWord{8, 10, 60}, - dictWord{9, 10, 343}, - dictWord{139, 10, 769}, - dictWord{ - 137, - 0, - 455, - }, - dictWord{133, 11, 410}, - dictWord{8, 0, 906}, - dictWord{12, 0, 700}, - dictWord{12, 0, 706}, - dictWord{140, 0, 729}, - dictWord{21, 11, 33}, - dictWord{ - 150, - 11, - 40, - }, - dictWord{7, 10, 1951}, - dictWord{8, 10, 765}, - dictWord{8, 10, 772}, - dictWord{140, 10, 671}, - dictWord{7, 10, 108}, - dictWord{8, 10, 219}, - dictWord{ - 8, - 10, - 388, - }, - dictWord{9, 10, 639}, - dictWord{9, 10, 775}, - dictWord{11, 10, 275}, - dictWord{140, 10, 464}, - dictWord{5, 11, 322}, - dictWord{7, 11, 1941}, - dictWord{ - 8, - 11, - 186, - }, - dictWord{9, 11, 262}, - dictWord{10, 11, 187}, - dictWord{14, 11, 208}, - dictWord{146, 11, 130}, - dictWord{139, 0, 624}, - dictWord{8, 0, 574}, - dictWord{ - 5, - 11, - 227, - }, - dictWord{140, 11, 29}, - dictWord{7, 11, 1546}, - dictWord{11, 11, 299}, - dictWord{142, 11, 407}, - dictWord{5, 10, 15}, - dictWord{6, 10, 56}, - dictWord{ - 7, - 10, - 1758, - }, - dictWord{8, 10, 500}, - dictWord{9, 10, 730}, - dictWord{11, 10, 331}, - dictWord{13, 10, 150}, - dictWord{142, 10, 282}, - dictWord{7, 11, 1395}, - dictWord{8, 11, 486}, - dictWord{9, 11, 236}, - dictWord{9, 11, 878}, - dictWord{10, 11, 218}, - dictWord{11, 11, 95}, - dictWord{19, 11, 17}, - dictWord{147, 11, 31}, - dictWord{135, 11, 2043}, - dictWord{4, 0, 354}, - dictWord{146, 11, 4}, - dictWord{140, 11, 80}, - dictWord{135, 0, 1558}, - dictWord{134, 10, 1886}, - dictWord{ - 5, - 10, - 205, - }, - dictWord{6, 10, 438}, - dictWord{137, 10, 711}, - dictWord{133, 11, 522}, - dictWord{133, 10, 534}, - dictWord{7, 0, 235}, - dictWord{7, 0, 1475}, - dictWord{ - 15, - 0, - 68, - }, - dictWord{146, 0, 120}, - dictWord{137, 10, 691}, - dictWord{4, 0, 942}, - dictWord{6, 0, 1813}, - dictWord{8, 0, 917}, - dictWord{10, 0, 884}, - dictWord{ - 12, - 0, - 696, - }, - dictWord{12, 0, 717}, - dictWord{12, 0, 723}, - dictWord{12, 0, 738}, - dictWord{12, 0, 749}, - dictWord{12, 0, 780}, - dictWord{16, 0, 97}, - dictWord{146, 0, 169}, - dictWord{6, 10, 443}, - dictWord{8, 11, 562}, - dictWord{9, 10, 237}, - dictWord{9, 10, 571}, - dictWord{9, 10, 695}, - dictWord{10, 10, 139}, - dictWord{11, 10, 715}, - dictWord{12, 10, 417}, - dictWord{141, 10, 421}, - dictWord{135, 0, 957}, - dictWord{133, 0, 830}, - dictWord{134, 11, 1771}, - dictWord{146, 0, 23}, - dictWord{ - 5, - 0, - 496, - }, - dictWord{6, 0, 694}, - dictWord{7, 0, 203}, - dictWord{7, 11, 1190}, - dictWord{137, 11, 620}, - dictWord{137, 11, 132}, - dictWord{6, 0, 547}, - dictWord{ - 134, - 0, - 1549, - }, - dictWord{8, 11, 258}, - dictWord{9, 11, 208}, - dictWord{137, 11, 359}, - dictWord{4, 0, 864}, - dictWord{5, 0, 88}, - dictWord{137, 0, 239}, - dictWord{ - 135, - 11, - 493, - }, - dictWord{4, 11, 317}, - dictWord{135, 11, 1279}, - dictWord{132, 11, 477}, - dictWord{4, 10, 578}, - dictWord{5, 11, 63}, - dictWord{133, 11, 509}, - dictWord{ - 7, - 0, - 650, - }, - dictWord{135, 0, 1310}, - dictWord{7, 0, 1076}, - dictWord{9, 0, 80}, - dictWord{11, 0, 78}, - dictWord{11, 0, 421}, - dictWord{11, 0, 534}, - dictWord{ - 140, - 0, - 545, - }, - dictWord{132, 11, 288}, - dictWord{12, 0, 553}, - dictWord{14, 0, 118}, - dictWord{133, 10, 923}, - dictWord{7, 0, 274}, - dictWord{11, 0, 479}, - dictWord{ - 139, - 0, - 507, - }, - dictWord{8, 11, 89}, - dictWord{8, 11, 620}, - dictWord{9, 11, 49}, - dictWord{10, 11, 774}, - dictWord{11, 11, 628}, - dictWord{12, 11, 322}, - dictWord{ - 143, - 11, - 124, - }, - dictWord{4, 0, 497}, - dictWord{135, 0, 1584}, - dictWord{7, 0, 261}, - dictWord{7, 0, 1115}, - dictWord{7, 0, 1354}, - dictWord{7, 0, 1404}, - dictWord{ - 7, - 0, - 1588, - }, - dictWord{7, 0, 1705}, - dictWord{7, 0, 1902}, - dictWord{9, 0, 465}, - dictWord{10, 0, 248}, - dictWord{10, 0, 349}, - dictWord{10, 0, 647}, - dictWord{11, 0, 527}, - dictWord{11, 0, 660}, - dictWord{11, 0, 669}, - dictWord{12, 0, 529}, - dictWord{13, 0, 305}, - dictWord{132, 10, 924}, - dictWord{133, 10, 665}, - dictWord{ - 136, - 0, - 13, - }, - dictWord{6, 0, 791}, - dictWord{138, 11, 120}, - dictWord{7, 0, 642}, - dictWord{8, 0, 250}, - dictWord{11, 0, 123}, - dictWord{11, 0, 137}, - dictWord{13, 0, 48}, - dictWord{142, 0, 95}, - dictWord{4, 10, 265}, - dictWord{7, 10, 807}, - dictWord{135, 10, 950}, - dictWord{5, 10, 93}, - dictWord{140, 10, 267}, - dictWord{135, 0, 1429}, - dictWord{4, 0, 949}, - dictWord{10, 0, 885}, - dictWord{10, 0, 891}, - dictWord{10, 0, 900}, - dictWord{10, 0, 939}, - dictWord{12, 0, 760}, - dictWord{142, 0, 449}, - dictWord{139, 11, 366}, - dictWord{132, 0, 818}, - dictWord{134, 11, 85}, - dictWord{135, 10, 994}, - dictWord{7, 0, 330}, - dictWord{5, 10, 233}, - dictWord{5, 10, 320}, - dictWord{6, 10, 140}, - dictWord{136, 10, 295}, - dictWord{4, 0, 1004}, - dictWord{8, 0, 982}, - dictWord{136, 0, 993}, - dictWord{133, 10, 978}, - dictWord{4, 10, 905}, - dictWord{6, 10, 1701}, - dictWord{137, 10, 843}, - dictWord{10, 0, 545}, - dictWord{140, 0, 301}, - dictWord{6, 0, 947}, - dictWord{134, 0, 1062}, - dictWord{ - 134, - 0, - 1188, - }, - dictWord{4, 0, 904}, - dictWord{5, 0, 794}, - dictWord{152, 10, 6}, - dictWord{134, 0, 1372}, - dictWord{135, 11, 608}, - dictWord{5, 11, 279}, - dictWord{ - 6, - 11, - 235, - }, - dictWord{7, 11, 468}, - dictWord{8, 11, 446}, - dictWord{9, 11, 637}, - dictWord{10, 11, 717}, - dictWord{11, 11, 738}, - dictWord{140, 11, 514}, - dictWord{ - 132, - 10, - 509, - }, - dictWord{5, 11, 17}, - dictWord{6, 11, 371}, - dictWord{137, 11, 528}, - dictWord{132, 0, 693}, - dictWord{4, 11, 115}, - dictWord{5, 11, 669}, - dictWord{ - 6, - 11, - 407, - }, - dictWord{8, 11, 311}, - dictWord{11, 11, 10}, - dictWord{141, 11, 5}, - dictWord{11, 0, 377}, - dictWord{7, 10, 273}, - dictWord{137, 11, 381}, - dictWord{ - 135, - 0, - 695, - }, - dictWord{7, 0, 386}, - dictWord{138, 0, 713}, - dictWord{135, 10, 1041}, - dictWord{134, 0, 1291}, - dictWord{6, 0, 7}, - dictWord{6, 0, 35}, - dictWord{ - 7, - 0, - 147, - }, - dictWord{7, 0, 1069}, - dictWord{7, 0, 1568}, - dictWord{7, 0, 1575}, - dictWord{7, 0, 1917}, - dictWord{8, 0, 43}, - dictWord{8, 0, 208}, - dictWord{9, 0, 128}, - dictWord{ - 9, - 0, - 866, - }, - dictWord{10, 0, 20}, - dictWord{11, 0, 981}, - dictWord{147, 0, 33}, - dictWord{7, 0, 893}, - dictWord{141, 0, 424}, - dictWord{139, 10, 234}, - dictWord{ - 150, - 11, - 56, - }, - dictWord{5, 11, 779}, - dictWord{5, 11, 807}, - dictWord{6, 11, 1655}, - dictWord{134, 11, 1676}, - dictWord{5, 10, 802}, - dictWord{7, 10, 2021}, - dictWord{136, 10, 805}, - dictWord{4, 11, 196}, - dictWord{5, 10, 167}, - dictWord{5, 11, 558}, - dictWord{5, 10, 899}, - dictWord{5, 11, 949}, - dictWord{6, 10, 410}, - dictWord{137, 10, 777}, - dictWord{137, 10, 789}, - dictWord{134, 10, 1705}, - dictWord{8, 0, 904}, - dictWord{140, 0, 787}, - dictWord{6, 0, 322}, - dictWord{9, 0, 552}, - dictWord{11, 0, 274}, - dictWord{13, 0, 209}, - dictWord{13, 0, 499}, - dictWord{14, 0, 85}, - dictWord{15, 0, 126}, - dictWord{145, 0, 70}, - dictWord{135, 10, 10}, - dictWord{ - 5, - 10, - 11, - }, - dictWord{6, 10, 117}, - dictWord{6, 10, 485}, - dictWord{7, 10, 1133}, - dictWord{9, 10, 582}, - dictWord{9, 10, 594}, - dictWord{11, 10, 21}, - dictWord{ - 11, - 10, - 818, - }, - dictWord{12, 10, 535}, - dictWord{141, 10, 86}, - dictWord{4, 10, 264}, - dictWord{7, 10, 1067}, - dictWord{8, 10, 204}, - dictWord{8, 10, 385}, - dictWord{139, 10, 953}, - dictWord{132, 11, 752}, - dictWord{138, 10, 56}, - dictWord{133, 10, 470}, - dictWord{6, 0, 1808}, - dictWord{8, 0, 83}, - dictWord{8, 0, 742}, - dictWord{8, 0, 817}, - dictWord{9, 0, 28}, - dictWord{9, 0, 29}, - dictWord{9, 0, 885}, - dictWord{10, 0, 387}, - dictWord{11, 0, 633}, - dictWord{11, 0, 740}, - dictWord{13, 0, 235}, - dictWord{13, 0, 254}, - dictWord{15, 0, 143}, - dictWord{143, 0, 146}, - dictWord{140, 0, 49}, - dictWord{134, 0, 1832}, - dictWord{4, 11, 227}, - dictWord{5, 11, 159}, - dictWord{5, 11, 409}, - dictWord{7, 11, 80}, - dictWord{10, 11, 294}, - dictWord{10, 11, 479}, - dictWord{12, 11, 418}, - dictWord{14, 11, 50}, - dictWord{14, 11, 249}, - dictWord{142, 11, 295}, - dictWord{7, 11, 1470}, - dictWord{8, 11, 66}, - dictWord{8, 11, 137}, - dictWord{8, 11, 761}, - dictWord{9, 11, 638}, - dictWord{11, 11, 80}, - dictWord{11, 11, 212}, - dictWord{11, 11, 368}, - dictWord{11, 11, 418}, - dictWord{12, 11, 8}, - dictWord{13, 11, 15}, - dictWord{16, 11, 61}, - dictWord{17, 11, 59}, - dictWord{19, 11, 28}, - dictWord{148, 11, 84}, - dictWord{139, 10, 1015}, - dictWord{138, 11, 468}, - dictWord{135, 0, 421}, - dictWord{6, 0, 415}, - dictWord{ - 7, - 0, - 1049, - }, - dictWord{137, 0, 442}, - dictWord{6, 11, 38}, - dictWord{7, 11, 1220}, - dictWord{8, 11, 185}, - dictWord{8, 11, 256}, - dictWord{9, 11, 22}, - dictWord{ - 9, - 11, - 331, - }, - dictWord{10, 11, 738}, - dictWord{11, 11, 205}, - dictWord{11, 11, 540}, - dictWord{11, 11, 746}, - dictWord{13, 11, 399}, - dictWord{13, 11, 465}, - dictWord{ - 14, - 11, - 88, - }, - dictWord{142, 11, 194}, - dictWord{139, 0, 289}, - dictWord{133, 10, 715}, - dictWord{4, 0, 110}, - dictWord{10, 0, 415}, - dictWord{10, 0, 597}, - dictWord{142, 0, 206}, - dictWord{4, 11, 159}, - dictWord{6, 11, 115}, - dictWord{7, 11, 252}, - dictWord{7, 11, 257}, - dictWord{7, 11, 1928}, - dictWord{8, 11, 69}, - dictWord{ - 9, - 11, - 384, - }, - dictWord{10, 11, 91}, - dictWord{10, 11, 615}, - dictWord{12, 11, 375}, - dictWord{14, 11, 235}, - dictWord{18, 11, 117}, - dictWord{147, 11, 123}, - dictWord{5, 11, 911}, - dictWord{136, 11, 278}, - dictWord{7, 0, 205}, - dictWord{7, 0, 2000}, - dictWord{8, 10, 794}, - dictWord{9, 10, 400}, - dictWord{10, 10, 298}, - dictWord{142, 10, 228}, - dictWord{135, 11, 1774}, - dictWord{4, 11, 151}, - dictWord{7, 11, 1567}, - dictWord{8, 11, 351}, - dictWord{137, 11, 322}, - dictWord{ - 136, - 10, - 724, - }, - dictWord{133, 11, 990}, - dictWord{7, 0, 1539}, - dictWord{11, 0, 512}, - dictWord{13, 0, 205}, - dictWord{19, 0, 30}, - dictWord{22, 0, 36}, - dictWord{23, 0, 19}, - dictWord{135, 11, 1539}, - dictWord{5, 11, 194}, - dictWord{7, 11, 1662}, - dictWord{9, 11, 90}, - dictWord{140, 11, 180}, - dictWord{6, 10, 190}, - dictWord{ - 7, - 10, - 768, - }, - dictWord{135, 10, 1170}, - dictWord{134, 0, 1340}, - dictWord{4, 0, 283}, - dictWord{135, 0, 1194}, - dictWord{133, 11, 425}, - dictWord{133, 11, 971}, - dictWord{12, 0, 549}, - dictWord{14, 10, 67}, - dictWord{147, 10, 60}, - dictWord{135, 10, 1023}, - dictWord{134, 0, 1720}, - dictWord{138, 11, 587}, - dictWord{ - 5, - 11, - 72, - }, - dictWord{6, 11, 264}, - dictWord{7, 11, 21}, - dictWord{7, 11, 46}, - dictWord{7, 11, 2013}, - dictWord{8, 11, 215}, - dictWord{8, 11, 513}, - dictWord{10, 11, 266}, - dictWord{139, 11, 22}, - dictWord{5, 0, 319}, - dictWord{135, 0, 534}, - dictWord{6, 10, 137}, - dictWord{9, 10, 75}, - dictWord{9, 10, 253}, - dictWord{10, 10, 194}, - dictWord{138, 10, 444}, - dictWord{7, 0, 1180}, - dictWord{20, 0, 112}, - dictWord{6, 11, 239}, - dictWord{7, 11, 118}, - dictWord{10, 11, 95}, - dictWord{11, 11, 603}, - dictWord{13, 11, 443}, - dictWord{14, 11, 160}, - dictWord{143, 11, 4}, - dictWord{134, 11, 431}, - dictWord{5, 11, 874}, - dictWord{6, 11, 1677}, - dictWord{ - 11, - 10, - 643, - }, - dictWord{12, 10, 115}, - dictWord{143, 11, 0}, - dictWord{134, 0, 967}, - dictWord{6, 11, 65}, - dictWord{7, 11, 939}, - dictWord{7, 11, 1172}, - dictWord{ - 7, - 11, - 1671, - }, - dictWord{9, 11, 540}, - dictWord{10, 11, 696}, - dictWord{11, 11, 265}, - dictWord{11, 11, 732}, - dictWord{11, 11, 928}, - dictWord{11, 11, 937}, - dictWord{ - 12, - 11, - 399, - }, - dictWord{13, 11, 438}, - dictWord{149, 11, 19}, - dictWord{137, 11, 200}, - dictWord{135, 0, 1940}, - dictWord{5, 10, 760}, - dictWord{7, 10, 542}, - dictWord{8, 10, 135}, - dictWord{136, 10, 496}, - dictWord{140, 11, 44}, - dictWord{7, 11, 1655}, - dictWord{136, 11, 305}, - dictWord{7, 10, 319}, - dictWord{ - 7, - 10, - 355, - }, - dictWord{7, 10, 763}, - dictWord{10, 10, 389}, - dictWord{145, 10, 43}, - dictWord{136, 0, 735}, - dictWord{138, 10, 786}, - dictWord{137, 11, 19}, - dictWord{132, 11, 696}, - dictWord{5, 0, 132}, - dictWord{9, 0, 486}, - dictWord{9, 0, 715}, - dictWord{10, 0, 458}, - dictWord{11, 0, 373}, - dictWord{11, 0, 668}, - dictWord{ - 11, - 0, - 795, - }, - dictWord{11, 0, 897}, - dictWord{12, 0, 272}, - dictWord{12, 0, 424}, - dictWord{12, 0, 539}, - dictWord{12, 0, 558}, - dictWord{14, 0, 245}, - dictWord{ - 14, - 0, - 263, - }, - dictWord{14, 0, 264}, - dictWord{14, 0, 393}, - dictWord{142, 0, 403}, - dictWord{10, 0, 38}, - dictWord{139, 0, 784}, - dictWord{132, 0, 838}, - dictWord{ - 4, - 11, - 302, - }, - dictWord{135, 11, 1766}, - dictWord{133, 0, 379}, - dictWord{5, 0, 8}, - dictWord{6, 0, 89}, - dictWord{6, 0, 400}, - dictWord{7, 0, 1569}, - dictWord{7, 0, 1623}, - dictWord{7, 0, 1850}, - dictWord{8, 0, 218}, - dictWord{8, 0, 422}, - dictWord{9, 0, 570}, - dictWord{10, 0, 626}, - dictWord{4, 11, 726}, - dictWord{133, 11, 630}, - dictWord{ - 4, - 0, - 1017, - }, - dictWord{138, 0, 660}, - dictWord{6, 0, 387}, - dictWord{7, 0, 882}, - dictWord{141, 0, 111}, - dictWord{6, 0, 224}, - dictWord{7, 0, 877}, - dictWord{ - 137, - 0, - 647, - }, - dictWord{4, 10, 58}, - dictWord{5, 10, 286}, - dictWord{6, 10, 319}, - dictWord{7, 10, 402}, - dictWord{7, 10, 1254}, - dictWord{7, 10, 1903}, - dictWord{ - 8, - 10, - 356, - }, - dictWord{140, 10, 408}, - dictWord{135, 0, 790}, - dictWord{9, 0, 510}, - dictWord{10, 0, 53}, - dictWord{4, 10, 389}, - dictWord{9, 10, 181}, - dictWord{ - 10, - 10, - 29, - }, - dictWord{10, 10, 816}, - dictWord{11, 10, 311}, - dictWord{11, 10, 561}, - dictWord{12, 10, 67}, - dictWord{141, 10, 181}, - dictWord{142, 0, 458}, - dictWord{ - 6, - 11, - 118, - }, - dictWord{7, 11, 215}, - dictWord{7, 11, 1521}, - dictWord{140, 11, 11}, - dictWord{134, 0, 954}, - dictWord{135, 0, 394}, - dictWord{134, 0, 1367}, - dictWord{5, 11, 225}, - dictWord{133, 10, 373}, - dictWord{132, 0, 882}, - dictWord{7, 0, 1409}, - dictWord{135, 10, 1972}, - dictWord{135, 10, 1793}, - dictWord{ - 4, - 11, - 370, - }, - dictWord{5, 11, 756}, - dictWord{135, 11, 1326}, - dictWord{150, 11, 13}, - dictWord{7, 11, 354}, - dictWord{10, 11, 410}, - dictWord{139, 11, 815}, - dictWord{6, 11, 1662}, - dictWord{7, 11, 48}, - dictWord{8, 11, 771}, - dictWord{10, 11, 116}, - dictWord{13, 11, 104}, - dictWord{14, 11, 105}, - dictWord{14, 11, 184}, - dictWord{15, 11, 168}, - dictWord{19, 11, 92}, - dictWord{148, 11, 68}, - dictWord{7, 0, 124}, - dictWord{136, 0, 38}, - dictWord{5, 0, 261}, - dictWord{7, 0, 78}, - dictWord{ - 7, - 0, - 199, - }, - dictWord{8, 0, 815}, - dictWord{9, 0, 126}, - dictWord{10, 0, 342}, - dictWord{140, 0, 647}, - dictWord{4, 0, 628}, - dictWord{140, 0, 724}, - dictWord{7, 0, 266}, - dictWord{8, 0, 804}, - dictWord{7, 10, 1651}, - dictWord{145, 10, 89}, - dictWord{135, 0, 208}, - dictWord{134, 0, 1178}, - dictWord{6, 0, 79}, - dictWord{135, 0, 1519}, - dictWord{132, 10, 672}, - dictWord{133, 10, 737}, - dictWord{136, 0, 741}, - dictWord{132, 11, 120}, - dictWord{4, 0, 710}, - dictWord{6, 0, 376}, - dictWord{ - 134, - 0, - 606, - }, - dictWord{134, 0, 1347}, - dictWord{134, 0, 1494}, - dictWord{6, 0, 850}, - dictWord{6, 0, 1553}, - dictWord{137, 0, 821}, - dictWord{5, 10, 145}, - dictWord{ - 134, - 11, - 593, - }, - dictWord{7, 0, 1311}, - dictWord{140, 0, 135}, - dictWord{4, 0, 467}, - dictWord{5, 0, 405}, - dictWord{134, 0, 544}, - dictWord{5, 11, 820}, - dictWord{ - 135, - 11, - 931, - }, - dictWord{6, 0, 100}, - dictWord{7, 0, 244}, - dictWord{7, 0, 632}, - dictWord{7, 0, 1609}, - dictWord{8, 0, 178}, - dictWord{8, 0, 638}, - dictWord{141, 0, 58}, - dictWord{4, 10, 387}, - dictWord{135, 10, 1288}, - dictWord{6, 11, 151}, - dictWord{6, 11, 1675}, - dictWord{7, 11, 383}, - dictWord{151, 11, 10}, - dictWord{ - 132, - 0, - 481, - }, - dictWord{135, 10, 550}, - dictWord{134, 0, 1378}, - dictWord{6, 11, 1624}, - dictWord{11, 11, 11}, - dictWord{12, 11, 422}, - dictWord{13, 11, 262}, - dictWord{142, 11, 360}, - dictWord{133, 0, 791}, - dictWord{4, 11, 43}, - dictWord{5, 11, 344}, - dictWord{133, 11, 357}, - dictWord{7, 0, 1227}, - dictWord{140, 0, 978}, - dictWord{7, 0, 686}, - dictWord{8, 0, 33}, - dictWord{8, 0, 238}, - dictWord{10, 0, 616}, - dictWord{11, 0, 467}, - dictWord{11, 0, 881}, - dictWord{13, 0, 217}, - dictWord{ - 13, - 0, - 253, - }, - dictWord{142, 0, 268}, - dictWord{137, 0, 857}, - dictWord{8, 0, 467}, - dictWord{8, 0, 1006}, - dictWord{7, 11, 148}, - dictWord{8, 11, 284}, - dictWord{ - 141, - 11, - 63, - }, - dictWord{4, 10, 576}, - dictWord{135, 10, 1263}, - dictWord{133, 11, 888}, - dictWord{5, 10, 919}, - dictWord{134, 10, 1673}, - dictWord{20, 10, 37}, - dictWord{148, 11, 37}, - dictWord{132, 0, 447}, - dictWord{132, 11, 711}, - dictWord{4, 0, 128}, - dictWord{5, 0, 415}, - dictWord{6, 0, 462}, - dictWord{7, 0, 294}, - dictWord{ - 7, - 0, - 578, - }, - dictWord{10, 0, 710}, - dictWord{139, 0, 86}, - dictWord{4, 10, 82}, - dictWord{5, 10, 333}, - dictWord{5, 10, 904}, - dictWord{6, 10, 207}, - dictWord{7, 10, 325}, - dictWord{7, 10, 1726}, - dictWord{8, 10, 101}, - dictWord{10, 10, 778}, - dictWord{139, 10, 220}, - dictWord{136, 0, 587}, - dictWord{137, 11, 440}, - dictWord{ - 133, - 10, - 903, - }, - dictWord{6, 0, 427}, - dictWord{7, 0, 1018}, - dictWord{138, 0, 692}, - dictWord{4, 0, 195}, - dictWord{135, 0, 802}, - dictWord{140, 10, 147}, - dictWord{ - 134, - 0, - 1546, - }, - dictWord{134, 0, 684}, - dictWord{132, 10, 705}, - dictWord{136, 0, 345}, - dictWord{11, 11, 678}, - dictWord{140, 11, 307}, - dictWord{ - 133, - 0, - 365, - }, - dictWord{134, 0, 1683}, - dictWord{4, 11, 65}, - dictWord{5, 11, 479}, - dictWord{5, 11, 1004}, - dictWord{7, 11, 1913}, - dictWord{8, 11, 317}, - dictWord{ - 9, - 11, - 302, - }, - dictWord{10, 11, 612}, - dictWord{141, 11, 22}, - dictWord{138, 0, 472}, - dictWord{4, 11, 261}, - dictWord{135, 11, 510}, - dictWord{134, 10, 90}, - dictWord{142, 0, 433}, - dictWord{151, 0, 28}, - dictWord{4, 11, 291}, - dictWord{7, 11, 101}, - dictWord{9, 11, 515}, - dictWord{12, 11, 152}, - dictWord{12, 11, 443}, - dictWord{13, 11, 392}, - dictWord{142, 11, 357}, - dictWord{140, 0, 997}, - dictWord{5, 0, 3}, - dictWord{8, 0, 578}, - dictWord{9, 0, 118}, - dictWord{10, 0, 705}, - dictWord{ - 141, - 0, - 279, - }, - dictWord{135, 11, 1266}, - dictWord{7, 10, 813}, - dictWord{12, 10, 497}, - dictWord{141, 10, 56}, - dictWord{133, 0, 229}, - dictWord{6, 10, 125}, - dictWord{135, 10, 1277}, - dictWord{8, 0, 102}, - dictWord{10, 0, 578}, - dictWord{10, 0, 672}, - dictWord{12, 0, 496}, - dictWord{13, 0, 408}, - dictWord{14, 0, 121}, - dictWord{17, 0, 106}, - dictWord{151, 10, 12}, - dictWord{6, 0, 866}, - dictWord{134, 0, 1080}, - dictWord{136, 0, 1022}, - dictWord{4, 11, 130}, - dictWord{135, 11, 843}, - dictWord{5, 11, 42}, - dictWord{5, 11, 879}, - dictWord{7, 11, 245}, - dictWord{7, 11, 324}, - dictWord{7, 11, 1532}, - dictWord{11, 11, 463}, - dictWord{11, 11, 472}, - dictWord{13, 11, 363}, - dictWord{144, 11, 52}, - dictWord{150, 0, 55}, - dictWord{8, 0, 115}, - dictWord{8, 0, 350}, - dictWord{9, 0, 489}, - dictWord{10, 0, 128}, - dictWord{ - 11, - 0, - 306, - }, - dictWord{12, 0, 373}, - dictWord{14, 0, 30}, - dictWord{17, 0, 79}, - dictWord{19, 0, 80}, - dictWord{4, 11, 134}, - dictWord{133, 11, 372}, - dictWord{ - 134, - 0, - 657, - }, - dictWord{134, 0, 933}, - dictWord{135, 11, 1147}, - dictWord{4, 0, 230}, - dictWord{133, 0, 702}, - dictWord{134, 0, 1728}, - dictWord{4, 0, 484}, - dictWord{ - 18, - 0, - 26, - }, - dictWord{19, 0, 42}, - dictWord{20, 0, 43}, - dictWord{21, 0, 0}, - dictWord{23, 0, 27}, - dictWord{152, 0, 14}, - dictWord{7, 0, 185}, - dictWord{135, 0, 703}, - dictWord{ - 6, - 0, - 417, - }, - dictWord{10, 0, 618}, - dictWord{7, 10, 1106}, - dictWord{9, 10, 770}, - dictWord{11, 10, 112}, - dictWord{140, 10, 413}, - dictWord{134, 0, 803}, - dictWord{132, 11, 644}, - dictWord{134, 0, 1262}, - dictWord{7, 11, 540}, - dictWord{12, 10, 271}, - dictWord{145, 10, 109}, - dictWord{135, 11, 123}, - dictWord{ - 132, - 0, - 633, - }, - dictWord{134, 11, 623}, - dictWord{4, 11, 908}, - dictWord{5, 11, 359}, - dictWord{5, 11, 508}, - dictWord{6, 11, 1723}, - dictWord{7, 11, 343}, - dictWord{ - 7, - 11, - 1996, - }, - dictWord{135, 11, 2026}, - dictWord{135, 0, 479}, - dictWord{10, 0, 262}, - dictWord{7, 10, 304}, - dictWord{9, 10, 646}, - dictWord{9, 10, 862}, - dictWord{ - 11, - 10, - 696, - }, - dictWord{12, 10, 208}, - dictWord{15, 10, 79}, - dictWord{147, 10, 108}, - dictWord{4, 11, 341}, - dictWord{135, 11, 480}, - dictWord{134, 0, 830}, - dictWord{5, 0, 70}, - dictWord{5, 0, 622}, - dictWord{6, 0, 334}, - dictWord{7, 0, 1032}, - dictWord{9, 0, 171}, - dictWord{11, 0, 26}, - dictWord{11, 0, 213}, - dictWord{ - 11, - 0, - 637, - }, - dictWord{11, 0, 707}, - dictWord{12, 0, 202}, - dictWord{12, 0, 380}, - dictWord{13, 0, 226}, - dictWord{13, 0, 355}, - dictWord{14, 0, 222}, - dictWord{145, 0, 42}, - dictWord{135, 10, 981}, - dictWord{143, 0, 217}, - dictWord{137, 11, 114}, - dictWord{4, 0, 23}, - dictWord{4, 0, 141}, - dictWord{5, 0, 313}, - dictWord{5, 0, 1014}, - dictWord{6, 0, 50}, - dictWord{6, 0, 51}, - dictWord{7, 0, 142}, - dictWord{7, 0, 384}, - dictWord{7, 0, 559}, - dictWord{8, 0, 640}, - dictWord{9, 0, 460}, - dictWord{9, 0, 783}, - dictWord{11, 0, 741}, - dictWord{12, 0, 183}, - dictWord{141, 0, 488}, - dictWord{141, 0, 360}, - dictWord{7, 0, 1586}, - dictWord{7, 11, 1995}, - dictWord{8, 11, 299}, - dictWord{11, 11, 890}, - dictWord{140, 11, 674}, - dictWord{132, 10, 434}, - dictWord{7, 0, 652}, - dictWord{134, 10, 550}, - dictWord{7, 0, 766}, - dictWord{5, 10, 553}, - dictWord{138, 10, 824}, - dictWord{7, 0, 737}, - dictWord{8, 0, 298}, - dictWord{136, 10, 452}, - dictWord{4, 11, 238}, - dictWord{5, 11, 503}, - dictWord{6, 11, 179}, - dictWord{7, 11, 2003}, - dictWord{8, 11, 381}, - dictWord{8, 11, 473}, - dictWord{9, 11, 149}, - dictWord{10, 11, 183}, - dictWord{15, 11, 45}, - dictWord{143, 11, 86}, - dictWord{133, 10, 292}, - dictWord{5, 0, 222}, - dictWord{9, 0, 655}, - dictWord{138, 0, 534}, - dictWord{138, 10, 135}, - dictWord{4, 11, 121}, - dictWord{5, 11, 156}, - dictWord{5, 11, 349}, - dictWord{9, 11, 136}, - dictWord{10, 11, 605}, - dictWord{14, 11, 342}, - dictWord{147, 11, 107}, - dictWord{137, 0, 906}, - dictWord{6, 0, 1013}, - dictWord{134, 0, 1250}, - dictWord{6, 0, 1956}, - dictWord{6, 0, 2009}, - dictWord{8, 0, 991}, - dictWord{144, 0, 120}, - dictWord{135, 11, 1192}, - dictWord{ - 138, - 0, - 503, - }, - dictWord{5, 0, 154}, - dictWord{7, 0, 1491}, - dictWord{10, 0, 379}, - dictWord{138, 0, 485}, - dictWord{6, 0, 1867}, - dictWord{6, 0, 1914}, - dictWord{6, 0, 1925}, - dictWord{9, 0, 917}, - dictWord{9, 0, 925}, - dictWord{9, 0, 932}, - dictWord{9, 0, 951}, - dictWord{9, 0, 1007}, - dictWord{9, 0, 1013}, - dictWord{12, 0, 806}, - dictWord{ - 12, - 0, - 810, - }, - dictWord{12, 0, 814}, - dictWord{12, 0, 816}, - dictWord{12, 0, 824}, - dictWord{12, 0, 832}, - dictWord{12, 0, 837}, - dictWord{12, 0, 863}, - dictWord{ - 12, - 0, - 868, - }, - dictWord{12, 0, 870}, - dictWord{12, 0, 889}, - dictWord{12, 0, 892}, - dictWord{12, 0, 900}, - dictWord{12, 0, 902}, - dictWord{12, 0, 908}, - dictWord{12, 0, 933}, - dictWord{12, 0, 942}, - dictWord{12, 0, 949}, - dictWord{12, 0, 954}, - dictWord{15, 0, 175}, - dictWord{15, 0, 203}, - dictWord{15, 0, 213}, - dictWord{15, 0, 218}, - dictWord{15, 0, 225}, - dictWord{15, 0, 231}, - dictWord{15, 0, 239}, - dictWord{15, 0, 248}, - dictWord{15, 0, 252}, - dictWord{18, 0, 190}, - dictWord{18, 0, 204}, - dictWord{ - 18, - 0, - 215, - }, - dictWord{18, 0, 216}, - dictWord{18, 0, 222}, - dictWord{18, 0, 225}, - dictWord{18, 0, 230}, - dictWord{18, 0, 239}, - dictWord{18, 0, 241}, - dictWord{ - 21, - 0, - 42, - }, - dictWord{21, 0, 43}, - dictWord{21, 0, 44}, - dictWord{21, 0, 45}, - dictWord{21, 0, 46}, - dictWord{21, 0, 53}, - dictWord{24, 0, 27}, - dictWord{152, 0, 31}, - dictWord{ - 133, - 0, - 716, - }, - dictWord{135, 0, 844}, - dictWord{4, 0, 91}, - dictWord{5, 0, 388}, - dictWord{5, 0, 845}, - dictWord{6, 0, 206}, - dictWord{6, 0, 252}, - dictWord{6, 0, 365}, - dictWord{ - 7, - 0, - 136, - }, - dictWord{7, 0, 531}, - dictWord{136, 0, 621}, - dictWord{7, 10, 393}, - dictWord{10, 10, 603}, - dictWord{139, 10, 206}, - dictWord{6, 11, 80}, - dictWord{ - 6, - 11, - 1694, - }, - dictWord{7, 11, 173}, - dictWord{7, 11, 1974}, - dictWord{9, 11, 547}, - dictWord{10, 11, 730}, - dictWord{14, 11, 18}, - dictWord{150, 11, 39}, - dictWord{137, 0, 748}, - dictWord{4, 11, 923}, - dictWord{134, 11, 1711}, - dictWord{4, 10, 912}, - dictWord{137, 10, 232}, - dictWord{7, 10, 98}, - dictWord{7, 10, 1973}, - dictWord{136, 10, 716}, - dictWord{14, 0, 103}, - dictWord{133, 10, 733}, - dictWord{132, 11, 595}, - dictWord{12, 0, 158}, - dictWord{18, 0, 8}, - dictWord{19, 0, 62}, - dictWord{20, 0, 6}, - dictWord{22, 0, 4}, - dictWord{23, 0, 2}, - dictWord{23, 0, 9}, - dictWord{5, 11, 240}, - dictWord{6, 11, 459}, - dictWord{7, 11, 12}, - dictWord{7, 11, 114}, - dictWord{7, 11, 502}, - dictWord{7, 11, 1751}, - dictWord{7, 11, 1753}, - dictWord{7, 11, 1805}, - dictWord{8, 11, 658}, - dictWord{9, 11, 1}, - dictWord{11, 11, 959}, - dictWord{13, 11, 446}, - dictWord{142, 11, 211}, - dictWord{135, 0, 576}, - dictWord{5, 0, 771}, - dictWord{5, 0, 863}, - dictWord{5, 0, 898}, - dictWord{6, 0, 648}, - dictWord{ - 6, - 0, - 1632, - }, - dictWord{6, 0, 1644}, - dictWord{134, 0, 1780}, - dictWord{133, 0, 331}, - dictWord{7, 11, 633}, - dictWord{7, 11, 905}, - dictWord{7, 11, 909}, - dictWord{ - 7, - 11, - 1538, - }, - dictWord{9, 11, 767}, - dictWord{140, 11, 636}, - dictWord{140, 0, 632}, - dictWord{5, 0, 107}, - dictWord{7, 0, 201}, - dictWord{136, 0, 518}, - dictWord{ - 6, - 0, - 446, - }, - dictWord{7, 0, 1817}, - dictWord{134, 11, 490}, - dictWord{9, 0, 851}, - dictWord{141, 0, 510}, - dictWord{7, 11, 250}, - dictWord{8, 11, 506}, - dictWord{ - 136, - 11, - 507, - }, - dictWord{4, 0, 504}, - dictWord{137, 10, 72}, - dictWord{132, 11, 158}, - dictWord{4, 11, 140}, - dictWord{7, 11, 362}, - dictWord{8, 11, 209}, - dictWord{ - 9, - 11, - 10, - }, - dictWord{9, 11, 160}, - dictWord{9, 11, 503}, - dictWord{10, 11, 689}, - dictWord{11, 11, 350}, - dictWord{11, 11, 553}, - dictWord{11, 11, 725}, - dictWord{ - 12, - 11, - 252, - }, - dictWord{12, 11, 583}, - dictWord{13, 11, 192}, - dictWord{13, 11, 352}, - dictWord{14, 11, 269}, - dictWord{14, 11, 356}, - dictWord{148, 11, 50}, - dictWord{6, 11, 597}, - dictWord{135, 11, 1318}, - dictWord{135, 10, 1454}, - dictWord{5, 0, 883}, - dictWord{5, 0, 975}, - dictWord{8, 0, 392}, - dictWord{148, 0, 7}, - dictWord{6, 11, 228}, - dictWord{7, 11, 1341}, - dictWord{9, 11, 408}, - dictWord{138, 11, 343}, - dictWord{11, 11, 348}, - dictWord{11, 10, 600}, - dictWord{12, 11, 99}, - dictWord{13, 10, 245}, - dictWord{18, 11, 1}, - dictWord{18, 11, 11}, - dictWord{147, 11, 4}, - dictWord{134, 11, 296}, - dictWord{5, 0, 922}, - dictWord{134, 0, 1707}, - dictWord{132, 11, 557}, - dictWord{4, 11, 548}, - dictWord{7, 10, 164}, - dictWord{7, 10, 1571}, - dictWord{9, 10, 107}, - dictWord{140, 10, 225}, - dictWord{ - 7, - 11, - 197, - }, - dictWord{8, 11, 142}, - dictWord{8, 11, 325}, - dictWord{9, 11, 150}, - dictWord{9, 11, 596}, - dictWord{10, 11, 350}, - dictWord{10, 11, 353}, - dictWord{ - 11, - 11, - 74, - }, - dictWord{11, 11, 315}, - dictWord{14, 11, 423}, - dictWord{143, 11, 141}, - dictWord{5, 0, 993}, - dictWord{7, 0, 515}, - dictWord{137, 0, 91}, - dictWord{4, 0, 131}, - dictWord{8, 0, 200}, - dictWord{5, 10, 484}, - dictWord{5, 10, 510}, - dictWord{6, 10, 434}, - dictWord{7, 10, 1000}, - dictWord{7, 10, 1098}, - dictWord{136, 10, 2}, - dictWord{152, 0, 10}, - dictWord{4, 11, 62}, - dictWord{5, 11, 83}, - dictWord{6, 11, 399}, - dictWord{6, 11, 579}, - dictWord{7, 11, 692}, - dictWord{7, 11, 846}, - dictWord{ - 7, - 11, - 1015, - }, - dictWord{7, 11, 1799}, - dictWord{8, 11, 403}, - dictWord{9, 11, 394}, - dictWord{10, 11, 133}, - dictWord{12, 11, 4}, - dictWord{12, 11, 297}, - dictWord{ - 12, - 11, - 452, - }, - dictWord{16, 11, 81}, - dictWord{18, 11, 19}, - dictWord{18, 11, 25}, - dictWord{21, 11, 14}, - dictWord{22, 11, 12}, - dictWord{151, 11, 18}, - dictWord{ - 140, - 11, - 459, - }, - dictWord{132, 11, 177}, - dictWord{7, 0, 1433}, - dictWord{9, 0, 365}, - dictWord{137, 11, 365}, - dictWord{132, 10, 460}, - dictWord{5, 0, 103}, - dictWord{ - 6, - 0, - 2004, - }, - dictWord{7, 0, 921}, - dictWord{8, 0, 580}, - dictWord{8, 0, 593}, - dictWord{8, 0, 630}, - dictWord{10, 0, 28}, - dictWord{5, 11, 411}, - dictWord{ - 135, - 11, - 653, - }, - dictWord{4, 10, 932}, - dictWord{133, 10, 891}, - dictWord{4, 0, 911}, - dictWord{5, 0, 867}, - dictWord{5, 0, 1013}, - dictWord{7, 0, 2034}, - dictWord{8, 0, 798}, - dictWord{136, 0, 813}, - dictWord{7, 11, 439}, - dictWord{10, 11, 727}, - dictWord{11, 11, 260}, - dictWord{139, 11, 684}, - dictWord{136, 10, 625}, - dictWord{ - 5, - 11, - 208, - }, - dictWord{7, 11, 753}, - dictWord{135, 11, 1528}, - dictWord{5, 0, 461}, - dictWord{7, 0, 1925}, - dictWord{12, 0, 39}, - dictWord{13, 0, 265}, - dictWord{ - 13, - 0, - 439, - }, - dictWord{134, 10, 76}, - dictWord{6, 0, 853}, - dictWord{8, 10, 92}, - dictWord{137, 10, 221}, - dictWord{5, 0, 135}, - dictWord{6, 0, 519}, - dictWord{7, 0, 1722}, - dictWord{10, 0, 271}, - dictWord{11, 0, 261}, - dictWord{145, 0, 54}, - dictWord{139, 11, 814}, - dictWord{14, 0, 338}, - dictWord{148, 0, 81}, - dictWord{4, 0, 300}, - dictWord{133, 0, 436}, - dictWord{5, 0, 419}, - dictWord{5, 0, 687}, - dictWord{7, 0, 864}, - dictWord{9, 0, 470}, - dictWord{135, 11, 864}, - dictWord{9, 0, 836}, - dictWord{ - 133, - 11, - 242, - }, - dictWord{134, 0, 1937}, - dictWord{4, 10, 763}, - dictWord{133, 11, 953}, - dictWord{132, 10, 622}, - dictWord{132, 0, 393}, - dictWord{ - 133, - 10, - 253, - }, - dictWord{8, 0, 357}, - dictWord{10, 0, 745}, - dictWord{14, 0, 426}, - dictWord{17, 0, 94}, - dictWord{19, 0, 57}, - dictWord{135, 10, 546}, - dictWord{5, 11, 615}, - dictWord{146, 11, 37}, - dictWord{9, 10, 73}, - dictWord{10, 10, 110}, - dictWord{14, 10, 185}, - dictWord{145, 10, 119}, - dictWord{11, 0, 703}, - dictWord{7, 10, 624}, - dictWord{7, 10, 916}, - dictWord{10, 10, 256}, - dictWord{139, 10, 87}, - dictWord{133, 11, 290}, - dictWord{5, 10, 212}, - dictWord{12, 10, 35}, - dictWord{ - 141, - 10, - 382, - }, - dictWord{132, 11, 380}, - dictWord{5, 11, 52}, - dictWord{7, 11, 277}, - dictWord{9, 11, 368}, - dictWord{139, 11, 791}, - dictWord{133, 0, 387}, - dictWord{ - 10, - 11, - 138, - }, - dictWord{139, 11, 476}, - dictWord{4, 0, 6}, - dictWord{5, 0, 708}, - dictWord{136, 0, 75}, - dictWord{7, 0, 1351}, - dictWord{9, 0, 581}, - dictWord{10, 0, 639}, - dictWord{11, 0, 453}, - dictWord{140, 0, 584}, - dictWord{132, 0, 303}, - dictWord{138, 0, 772}, - dictWord{135, 10, 1175}, - dictWord{4, 0, 749}, - dictWord{ - 5, - 10, - 816, - }, - dictWord{6, 11, 256}, - dictWord{7, 11, 307}, - dictWord{7, 11, 999}, - dictWord{7, 11, 1481}, - dictWord{7, 11, 1732}, - dictWord{7, 11, 1738}, - dictWord{ - 8, - 11, - 265, - }, - dictWord{9, 11, 414}, - dictWord{11, 11, 316}, - dictWord{12, 11, 52}, - dictWord{13, 11, 420}, - dictWord{147, 11, 100}, - dictWord{135, 11, 1296}, - dictWord{ - 6, - 0, - 1065, - }, - dictWord{5, 10, 869}, - dictWord{5, 10, 968}, - dictWord{6, 10, 1626}, - dictWord{8, 10, 734}, - dictWord{136, 10, 784}, - dictWord{4, 10, 542}, - dictWord{ - 6, - 10, - 1716, - }, - dictWord{6, 10, 1727}, - dictWord{7, 10, 1082}, - dictWord{7, 10, 1545}, - dictWord{8, 10, 56}, - dictWord{8, 10, 118}, - dictWord{8, 10, 412}, - dictWord{ - 8, - 10, - 564, - }, - dictWord{9, 10, 888}, - dictWord{9, 10, 908}, - dictWord{10, 10, 50}, - dictWord{10, 10, 423}, - dictWord{11, 10, 685}, - dictWord{11, 10, 697}, - dictWord{11, 10, 933}, - dictWord{12, 10, 299}, - dictWord{13, 10, 126}, - dictWord{13, 10, 136}, - dictWord{13, 10, 170}, - dictWord{141, 10, 190}, - dictWord{ - 134, - 0, - 226, - }, - dictWord{4, 0, 106}, - dictWord{7, 0, 310}, - dictWord{11, 0, 717}, - dictWord{133, 11, 723}, - dictWord{5, 0, 890}, - dictWord{5, 0, 988}, - dictWord{4, 10, 232}, - dictWord{9, 10, 202}, - dictWord{10, 10, 474}, - dictWord{140, 10, 433}, - dictWord{6, 0, 626}, - dictWord{142, 0, 431}, - dictWord{10, 0, 706}, - dictWord{150, 0, 44}, - dictWord{13, 0, 51}, - dictWord{6, 10, 108}, - dictWord{7, 10, 1003}, - dictWord{7, 10, 1181}, - dictWord{8, 10, 111}, - dictWord{136, 10, 343}, - dictWord{132, 0, 698}, - dictWord{5, 11, 109}, - dictWord{6, 11, 1784}, - dictWord{7, 11, 1895}, - dictWord{12, 11, 296}, - dictWord{140, 11, 302}, - dictWord{134, 0, 828}, - dictWord{ - 134, - 10, - 1712, - }, - dictWord{138, 0, 17}, - dictWord{7, 0, 1929}, - dictWord{4, 10, 133}, - dictWord{5, 11, 216}, - dictWord{7, 10, 711}, - dictWord{7, 10, 1298}, - dictWord{ - 7, - 10, - 1585, - }, - dictWord{7, 11, 1879}, - dictWord{9, 11, 141}, - dictWord{9, 11, 270}, - dictWord{9, 11, 679}, - dictWord{10, 11, 159}, - dictWord{10, 11, 553}, - dictWord{ - 11, - 11, - 197, - }, - dictWord{11, 11, 438}, - dictWord{12, 11, 538}, - dictWord{12, 11, 559}, - dictWord{13, 11, 193}, - dictWord{13, 11, 423}, - dictWord{14, 11, 144}, - dictWord{14, 11, 166}, - dictWord{14, 11, 167}, - dictWord{15, 11, 67}, - dictWord{147, 11, 84}, - dictWord{141, 11, 127}, - dictWord{7, 11, 1872}, - dictWord{ - 137, - 11, - 81, - }, - dictWord{6, 10, 99}, - dictWord{7, 10, 1808}, - dictWord{145, 10, 57}, - dictWord{134, 11, 391}, - dictWord{5, 0, 689}, - dictWord{6, 0, 84}, - dictWord{7, 0, 1250}, - dictWord{6, 10, 574}, - dictWord{7, 10, 428}, - dictWord{10, 10, 669}, - dictWord{11, 10, 485}, - dictWord{11, 10, 840}, - dictWord{12, 10, 300}, - dictWord{ - 142, - 10, - 250, - }, - dictWord{7, 11, 322}, - dictWord{136, 11, 249}, - dictWord{7, 11, 432}, - dictWord{135, 11, 1649}, - dictWord{135, 10, 1871}, - dictWord{137, 10, 252}, - dictWord{6, 11, 155}, - dictWord{140, 11, 234}, - dictWord{7, 0, 871}, - dictWord{19, 0, 27}, - dictWord{147, 11, 27}, - dictWord{140, 0, 498}, - dictWord{5, 0, 986}, - dictWord{6, 0, 130}, - dictWord{138, 0, 823}, - dictWord{6, 0, 1793}, - dictWord{7, 0, 1582}, - dictWord{8, 0, 458}, - dictWord{10, 0, 101}, - dictWord{10, 0, 318}, - dictWord{ - 10, - 0, - 945, - }, - dictWord{12, 0, 734}, - dictWord{16, 0, 104}, - dictWord{18, 0, 177}, - dictWord{6, 10, 323}, - dictWord{135, 10, 1564}, - dictWord{5, 11, 632}, - dictWord{ - 138, - 11, - 526, - }, - dictWord{10, 0, 435}, - dictWord{7, 10, 461}, - dictWord{136, 10, 775}, - dictWord{6, 11, 144}, - dictWord{7, 11, 948}, - dictWord{7, 11, 1042}, - dictWord{ - 7, - 11, - 1857, - }, - dictWord{8, 11, 235}, - dictWord{8, 11, 461}, - dictWord{9, 11, 453}, - dictWord{9, 11, 530}, - dictWord{10, 11, 354}, - dictWord{17, 11, 77}, - dictWord{ - 19, - 11, - 99, - }, - dictWord{148, 11, 79}, - dictWord{138, 0, 966}, - dictWord{7, 0, 1644}, - dictWord{137, 0, 129}, - dictWord{135, 0, 997}, - dictWord{136, 0, 502}, - dictWord{ - 5, - 11, - 196, - }, - dictWord{6, 11, 486}, - dictWord{7, 11, 212}, - dictWord{8, 11, 309}, - dictWord{136, 11, 346}, - dictWord{7, 10, 727}, - dictWord{146, 10, 73}, - dictWord{132, 0, 823}, - dictWord{132, 11, 686}, - dictWord{135, 0, 1927}, - dictWord{4, 0, 762}, - dictWord{7, 0, 1756}, - dictWord{137, 0, 98}, - dictWord{136, 10, 577}, - dictWord{24, 0, 8}, - dictWord{4, 11, 30}, - dictWord{5, 11, 43}, - dictWord{152, 11, 8}, - dictWord{7, 0, 1046}, - dictWord{139, 0, 160}, - dictWord{7, 0, 492}, - dictWord{ - 4, - 10, - 413, - }, - dictWord{5, 10, 677}, - dictWord{7, 11, 492}, - dictWord{8, 10, 432}, - dictWord{140, 10, 280}, - dictWord{6, 0, 45}, - dictWord{7, 0, 433}, - dictWord{8, 0, 129}, - dictWord{9, 0, 21}, - dictWord{10, 0, 392}, - dictWord{11, 0, 79}, - dictWord{12, 0, 499}, - dictWord{13, 0, 199}, - dictWord{141, 0, 451}, - dictWord{7, 0, 558}, - dictWord{ - 136, - 0, - 353, - }, - dictWord{4, 11, 220}, - dictWord{7, 11, 1535}, - dictWord{9, 11, 93}, - dictWord{139, 11, 474}, - dictWord{7, 10, 646}, - dictWord{7, 10, 1730}, - dictWord{ - 11, - 10, - 446, - }, - dictWord{141, 10, 178}, - dictWord{133, 0, 785}, - dictWord{134, 0, 1145}, - dictWord{8, 0, 81}, - dictWord{9, 0, 189}, - dictWord{9, 0, 201}, - dictWord{ - 11, - 0, - 478, - }, - dictWord{11, 0, 712}, - dictWord{141, 0, 338}, - dictWord{5, 0, 353}, - dictWord{151, 0, 26}, - dictWord{11, 0, 762}, - dictWord{132, 10, 395}, - dictWord{ - 134, - 0, - 2024, - }, - dictWord{4, 0, 611}, - dictWord{133, 0, 606}, - dictWord{9, 10, 174}, - dictWord{10, 10, 164}, - dictWord{11, 10, 440}, - dictWord{11, 10, 841}, - dictWord{ - 143, - 10, - 98, - }, - dictWord{134, 10, 426}, - dictWord{10, 10, 608}, - dictWord{139, 10, 1002}, - dictWord{138, 10, 250}, - dictWord{6, 0, 25}, - dictWord{7, 0, 855}, - dictWord{7, 0, 1258}, - dictWord{144, 0, 32}, - dictWord{7, 11, 1725}, - dictWord{138, 11, 393}, - dictWord{5, 11, 263}, - dictWord{134, 11, 414}, - dictWord{6, 0, 2011}, - dictWord{133, 10, 476}, - dictWord{4, 0, 4}, - dictWord{7, 0, 1118}, - dictWord{7, 0, 1320}, - dictWord{7, 0, 1706}, - dictWord{8, 0, 277}, - dictWord{9, 0, 622}, - dictWord{ - 10, - 0, - 9, - }, - dictWord{11, 0, 724}, - dictWord{12, 0, 350}, - dictWord{12, 0, 397}, - dictWord{13, 0, 28}, - dictWord{13, 0, 159}, - dictWord{15, 0, 89}, - dictWord{18, 0, 5}, - dictWord{ - 19, - 0, - 9, - }, - dictWord{20, 0, 34}, - dictWord{22, 0, 47}, - dictWord{6, 11, 178}, - dictWord{6, 11, 1750}, - dictWord{8, 11, 251}, - dictWord{9, 11, 690}, - dictWord{ - 10, - 11, - 155, - }, - dictWord{10, 11, 196}, - dictWord{10, 11, 373}, - dictWord{11, 11, 698}, - dictWord{13, 11, 155}, - dictWord{148, 11, 93}, - dictWord{5, 11, 97}, - dictWord{ - 137, - 11, - 393, - }, - dictWord{7, 0, 764}, - dictWord{11, 0, 461}, - dictWord{12, 0, 172}, - dictWord{5, 10, 76}, - dictWord{6, 10, 458}, - dictWord{6, 10, 497}, - dictWord{ - 7, - 10, - 868, - }, - dictWord{9, 10, 658}, - dictWord{10, 10, 594}, - dictWord{11, 10, 566}, - dictWord{12, 10, 338}, - dictWord{141, 10, 200}, - dictWord{134, 0, 1449}, - dictWord{138, 11, 40}, - dictWord{134, 11, 1639}, - dictWord{134, 0, 1445}, - dictWord{6, 0, 1168}, - dictWord{4, 10, 526}, - dictWord{7, 10, 1029}, - dictWord{ - 135, - 10, - 1054, - }, - dictWord{4, 11, 191}, - dictWord{7, 11, 934}, - dictWord{8, 11, 647}, - dictWord{145, 11, 97}, - dictWord{132, 10, 636}, - dictWord{6, 0, 233}, - dictWord{ - 7, - 10, - 660, - }, - dictWord{7, 10, 1124}, - dictWord{17, 10, 31}, - dictWord{19, 10, 22}, - dictWord{151, 10, 14}, - dictWord{6, 10, 1699}, - dictWord{136, 11, 110}, - dictWord{ - 12, - 11, - 246, - }, - dictWord{15, 11, 162}, - dictWord{19, 11, 64}, - dictWord{20, 11, 8}, - dictWord{20, 11, 95}, - dictWord{22, 11, 24}, - dictWord{152, 11, 17}, - dictWord{ - 5, - 11, - 165, - }, - dictWord{9, 11, 346}, - dictWord{138, 11, 655}, - dictWord{5, 11, 319}, - dictWord{135, 11, 534}, - dictWord{134, 0, 255}, - dictWord{9, 0, 216}, - dictWord{ - 8, - 11, - 128, - }, - dictWord{139, 11, 179}, - dictWord{9, 0, 183}, - dictWord{139, 0, 286}, - dictWord{11, 0, 956}, - dictWord{151, 0, 3}, - dictWord{4, 0, 536}, - dictWord{ - 7, - 0, - 1141, - }, - dictWord{10, 0, 723}, - dictWord{139, 0, 371}, - dictWord{4, 10, 279}, - dictWord{7, 10, 301}, - dictWord{137, 10, 362}, - dictWord{7, 0, 285}, - dictWord{ - 5, - 11, - 57, - }, - dictWord{6, 11, 101}, - dictWord{6, 11, 1663}, - dictWord{7, 11, 132}, - dictWord{7, 11, 1048}, - dictWord{7, 11, 1154}, - dictWord{7, 11, 1415}, - dictWord{ - 7, - 11, - 1507, - }, - dictWord{12, 11, 493}, - dictWord{15, 11, 105}, - dictWord{151, 11, 15}, - dictWord{5, 11, 459}, - dictWord{7, 11, 1073}, - dictWord{7, 10, 1743}, - dictWord{ - 8, - 11, - 241, - }, - dictWord{136, 11, 334}, - dictWord{4, 10, 178}, - dictWord{133, 10, 399}, - dictWord{135, 0, 560}, - dictWord{132, 0, 690}, - dictWord{135, 0, 1246}, - dictWord{18, 0, 157}, - dictWord{147, 0, 63}, - dictWord{10, 0, 599}, - dictWord{11, 0, 33}, - dictWord{12, 0, 571}, - dictWord{149, 0, 1}, - dictWord{6, 11, 324}, - dictWord{ - 6, - 11, - 520, - }, - dictWord{7, 11, 338}, - dictWord{7, 11, 1616}, - dictWord{7, 11, 1729}, - dictWord{8, 11, 228}, - dictWord{9, 11, 69}, - dictWord{139, 11, 750}, - dictWord{ - 7, - 0, - 1862, - }, - dictWord{12, 0, 491}, - dictWord{12, 0, 520}, - dictWord{13, 0, 383}, - dictWord{142, 0, 244}, - dictWord{135, 11, 734}, - dictWord{134, 10, 1692}, - dictWord{10, 0, 448}, - dictWord{11, 0, 630}, - dictWord{17, 0, 117}, - dictWord{6, 10, 202}, - dictWord{7, 11, 705}, - dictWord{12, 10, 360}, - dictWord{17, 10, 118}, - dictWord{18, 10, 27}, - dictWord{148, 10, 67}, - dictWord{4, 11, 73}, - dictWord{6, 11, 612}, - dictWord{7, 11, 927}, - dictWord{7, 11, 1822}, - dictWord{8, 11, 217}, - dictWord{ - 9, - 11, - 472, - }, - dictWord{9, 11, 765}, - dictWord{9, 11, 766}, - dictWord{10, 11, 408}, - dictWord{11, 11, 51}, - dictWord{11, 11, 793}, - dictWord{12, 11, 266}, - dictWord{ - 15, - 11, - 158, - }, - dictWord{20, 11, 89}, - dictWord{150, 11, 32}, - dictWord{4, 0, 190}, - dictWord{133, 0, 554}, - dictWord{133, 0, 1001}, - dictWord{5, 11, 389}, - dictWord{ - 8, - 11, - 636, - }, - dictWord{137, 11, 229}, - dictWord{5, 0, 446}, - dictWord{7, 10, 872}, - dictWord{10, 10, 516}, - dictWord{139, 10, 167}, - dictWord{137, 10, 313}, - dictWord{132, 10, 224}, - dictWord{134, 0, 1313}, - dictWord{5, 10, 546}, - dictWord{7, 10, 35}, - dictWord{8, 10, 11}, - dictWord{8, 10, 12}, - dictWord{9, 10, 315}, - dictWord{9, 10, 533}, - dictWord{10, 10, 802}, - dictWord{11, 10, 166}, - dictWord{12, 10, 525}, - dictWord{142, 10, 243}, - dictWord{6, 0, 636}, - dictWord{137, 0, 837}, - dictWord{5, 10, 241}, - dictWord{8, 10, 242}, - dictWord{9, 10, 451}, - dictWord{10, 10, 667}, - dictWord{11, 10, 598}, - dictWord{140, 10, 429}, - dictWord{22, 10, 46}, - dictWord{150, 11, 46}, - dictWord{136, 11, 472}, - dictWord{11, 0, 278}, - dictWord{142, 0, 73}, - dictWord{141, 11, 185}, - dictWord{132, 0, 868}, - dictWord{ - 134, - 0, - 972, - }, - dictWord{4, 10, 366}, - dictWord{137, 10, 516}, - dictWord{138, 0, 1010}, - dictWord{5, 11, 189}, - dictWord{6, 10, 1736}, - dictWord{7, 11, 442}, - dictWord{ - 7, - 11, - 443, - }, - dictWord{8, 11, 281}, - dictWord{12, 11, 174}, - dictWord{13, 11, 83}, - dictWord{141, 11, 261}, - dictWord{139, 11, 384}, - dictWord{6, 11, 2}, - dictWord{ - 7, - 11, - 191, - }, - dictWord{7, 11, 446}, - dictWord{7, 11, 758}, - dictWord{7, 11, 1262}, - dictWord{7, 11, 1737}, - dictWord{8, 11, 22}, - dictWord{8, 11, 270}, - dictWord{ - 8, - 11, - 612, - }, - dictWord{9, 11, 4}, - dictWord{9, 11, 167}, - dictWord{9, 11, 312}, - dictWord{9, 11, 436}, - dictWord{10, 11, 156}, - dictWord{10, 11, 216}, - dictWord{ - 10, - 11, - 311, - }, - dictWord{10, 11, 623}, - dictWord{11, 11, 72}, - dictWord{11, 11, 330}, - dictWord{11, 11, 455}, - dictWord{12, 11, 101}, - dictWord{12, 11, 321}, - dictWord{ - 12, - 11, - 504, - }, - dictWord{12, 11, 530}, - dictWord{12, 11, 543}, - dictWord{13, 11, 17}, - dictWord{13, 11, 156}, - dictWord{13, 11, 334}, - dictWord{14, 11, 48}, - dictWord{15, 11, 70}, - dictWord{17, 11, 60}, - dictWord{148, 11, 64}, - dictWord{6, 10, 331}, - dictWord{136, 10, 623}, - dictWord{135, 0, 1231}, - dictWord{132, 0, 304}, - dictWord{6, 11, 60}, - dictWord{7, 11, 670}, - dictWord{7, 11, 1327}, - dictWord{8, 11, 411}, - dictWord{8, 11, 435}, - dictWord{9, 11, 653}, - dictWord{9, 11, 740}, - dictWord{10, 11, 385}, - dictWord{11, 11, 222}, - dictWord{11, 11, 324}, - dictWord{11, 11, 829}, - dictWord{140, 11, 611}, - dictWord{7, 0, 506}, - dictWord{6, 11, 166}, - dictWord{7, 11, 374}, - dictWord{135, 11, 1174}, - dictWord{14, 11, 43}, - dictWord{146, 11, 21}, - dictWord{135, 11, 1694}, - dictWord{135, 10, 1888}, - dictWord{ - 5, - 11, - 206, - }, - dictWord{134, 11, 398}, - dictWord{135, 11, 50}, - dictWord{150, 0, 26}, - dictWord{6, 0, 53}, - dictWord{6, 0, 199}, - dictWord{7, 0, 1408}, - dictWord{ - 8, - 0, - 32, - }, - dictWord{8, 0, 93}, - dictWord{10, 0, 397}, - dictWord{10, 0, 629}, - dictWord{11, 0, 593}, - dictWord{11, 0, 763}, - dictWord{13, 0, 326}, - dictWord{145, 0, 35}, - dictWord{134, 0, 105}, - dictWord{132, 10, 394}, - dictWord{4, 0, 843}, - dictWord{138, 0, 794}, - dictWord{11, 0, 704}, - dictWord{141, 0, 396}, - dictWord{5, 0, 114}, - dictWord{5, 0, 255}, - dictWord{141, 0, 285}, - dictWord{6, 0, 619}, - dictWord{7, 0, 898}, - dictWord{7, 0, 1092}, - dictWord{8, 0, 485}, - dictWord{18, 0, 28}, - dictWord{ - 19, - 0, - 116, - }, - dictWord{135, 10, 1931}, - dictWord{9, 0, 145}, - dictWord{7, 10, 574}, - dictWord{135, 10, 1719}, - dictWord{7, 0, 2035}, - dictWord{8, 0, 19}, - dictWord{ - 9, - 0, - 89, - }, - dictWord{138, 0, 831}, - dictWord{132, 10, 658}, - dictWord{6, 11, 517}, - dictWord{7, 11, 1159}, - dictWord{10, 11, 621}, - dictWord{139, 11, 192}, - dictWord{ - 7, - 0, - 1933, - }, - dictWord{7, 11, 1933}, - dictWord{9, 10, 781}, - dictWord{10, 10, 144}, - dictWord{11, 10, 385}, - dictWord{13, 10, 161}, - dictWord{13, 10, 228}, - dictWord{13, 10, 268}, - dictWord{148, 10, 107}, - dictWord{136, 10, 374}, - dictWord{10, 11, 223}, - dictWord{139, 11, 645}, - dictWord{135, 0, 1728}, - dictWord{ - 7, - 11, - 64, - }, - dictWord{7, 11, 289}, - dictWord{136, 11, 245}, - dictWord{4, 10, 344}, - dictWord{6, 10, 498}, - dictWord{139, 10, 323}, - dictWord{136, 0, 746}, - dictWord{ - 135, - 10, - 1063, - }, - dictWord{137, 10, 155}, - dictWord{4, 0, 987}, - dictWord{6, 0, 1964}, - dictWord{6, 0, 1974}, - dictWord{6, 0, 1990}, - dictWord{136, 0, 995}, - dictWord{133, 11, 609}, - dictWord{133, 10, 906}, - dictWord{134, 0, 1550}, - dictWord{134, 0, 874}, - dictWord{5, 11, 129}, - dictWord{6, 11, 61}, - dictWord{ - 135, - 11, - 947, - }, - dictWord{4, 0, 1018}, - dictWord{6, 0, 1938}, - dictWord{6, 0, 2021}, - dictWord{134, 0, 2039}, - dictWord{132, 0, 814}, - dictWord{11, 0, 126}, - dictWord{ - 139, - 0, - 287, - }, - dictWord{134, 0, 1264}, - dictWord{5, 0, 955}, - dictWord{136, 0, 814}, - dictWord{141, 11, 506}, - dictWord{132, 11, 314}, - dictWord{6, 0, 981}, - dictWord{139, 11, 1000}, - dictWord{5, 0, 56}, - dictWord{8, 0, 892}, - dictWord{8, 0, 915}, - dictWord{140, 0, 776}, - dictWord{148, 0, 100}, - dictWord{10, 0, 4}, - dictWord{ - 10, - 0, - 13, - }, - dictWord{11, 0, 638}, - dictWord{148, 0, 57}, - dictWord{148, 11, 74}, - dictWord{5, 0, 738}, - dictWord{132, 10, 616}, - dictWord{133, 11, 637}, - dictWord{ - 136, - 10, - 692, - }, - dictWord{133, 0, 758}, - dictWord{132, 10, 305}, - dictWord{137, 11, 590}, - dictWord{5, 11, 280}, - dictWord{135, 11, 1226}, - dictWord{ - 134, - 11, - 494, - }, - dictWord{135, 0, 1112}, - dictWord{133, 11, 281}, - dictWord{13, 0, 44}, - dictWord{14, 0, 214}, - dictWord{5, 10, 214}, - dictWord{7, 10, 603}, - dictWord{ - 8, - 10, - 611, - }, - dictWord{9, 10, 686}, - dictWord{10, 10, 88}, - dictWord{11, 10, 459}, - dictWord{11, 10, 496}, - dictWord{12, 10, 463}, - dictWord{140, 10, 590}, - dictWord{ - 139, - 0, - 328, - }, - dictWord{135, 11, 1064}, - dictWord{137, 0, 133}, - dictWord{7, 0, 168}, - dictWord{13, 0, 196}, - dictWord{141, 0, 237}, - dictWord{134, 10, 1703}, - dictWord{134, 0, 1152}, - dictWord{135, 0, 1245}, - dictWord{5, 0, 110}, - dictWord{6, 0, 169}, - dictWord{6, 0, 1702}, - dictWord{7, 0, 400}, - dictWord{8, 0, 538}, - dictWord{ - 9, - 0, - 184, - }, - dictWord{9, 0, 524}, - dictWord{140, 0, 218}, - dictWord{6, 0, 1816}, - dictWord{10, 0, 871}, - dictWord{12, 0, 769}, - dictWord{140, 0, 785}, - dictWord{ - 132, - 11, - 630, - }, - dictWord{7, 11, 33}, - dictWord{7, 11, 120}, - dictWord{8, 11, 489}, - dictWord{9, 11, 319}, - dictWord{10, 11, 820}, - dictWord{11, 11, 1004}, - dictWord{ - 12, - 11, - 379, - }, - dictWord{13, 11, 117}, - dictWord{13, 11, 412}, - dictWord{14, 11, 25}, - dictWord{15, 11, 52}, - dictWord{15, 11, 161}, - dictWord{16, 11, 47}, - dictWord{149, 11, 2}, - dictWord{6, 0, 133}, - dictWord{8, 0, 413}, - dictWord{9, 0, 353}, - dictWord{139, 0, 993}, - dictWord{145, 10, 19}, - dictWord{4, 11, 937}, - dictWord{ - 133, - 11, - 801, - }, - dictWord{134, 0, 978}, - dictWord{6, 0, 93}, - dictWord{6, 0, 1508}, - dictWord{7, 0, 1422}, - dictWord{7, 0, 1851}, - dictWord{8, 0, 673}, - dictWord{9, 0, 529}, - dictWord{140, 0, 43}, - dictWord{6, 0, 317}, - dictWord{10, 0, 512}, - dictWord{4, 10, 737}, - dictWord{11, 10, 294}, - dictWord{12, 10, 60}, - dictWord{12, 10, 437}, - dictWord{13, 10, 64}, - dictWord{13, 10, 380}, - dictWord{142, 10, 430}, - dictWord{9, 0, 371}, - dictWord{7, 11, 1591}, - dictWord{144, 11, 43}, - dictWord{6, 10, 1758}, - dictWord{8, 10, 520}, - dictWord{9, 10, 345}, - dictWord{9, 10, 403}, - dictWord{142, 10, 350}, - dictWord{5, 0, 526}, - dictWord{10, 10, 242}, - dictWord{ - 138, - 10, - 579, - }, - dictWord{9, 0, 25}, - dictWord{10, 0, 467}, - dictWord{138, 0, 559}, - dictWord{5, 10, 139}, - dictWord{7, 10, 1168}, - dictWord{138, 10, 539}, - dictWord{ - 4, - 0, - 335, - }, - dictWord{135, 0, 942}, - dictWord{140, 0, 754}, - dictWord{132, 11, 365}, - dictWord{11, 0, 182}, - dictWord{142, 0, 195}, - dictWord{142, 11, 29}, - dictWord{ - 5, - 11, - 7, - }, - dictWord{139, 11, 774}, - dictWord{4, 11, 746}, - dictWord{135, 11, 1090}, - dictWord{8, 0, 39}, - dictWord{10, 0, 773}, - dictWord{11, 0, 84}, - dictWord{ - 12, - 0, - 205, - }, - dictWord{142, 0, 1}, - dictWord{5, 0, 601}, - dictWord{5, 0, 870}, - dictWord{5, 11, 360}, - dictWord{136, 11, 237}, - dictWord{132, 0, 181}, - dictWord{ - 136, - 0, - 370, - }, - dictWord{134, 0, 1652}, - dictWord{8, 0, 358}, - dictWord{4, 10, 107}, - dictWord{7, 10, 613}, - dictWord{8, 10, 439}, - dictWord{8, 10, 504}, - dictWord{ - 9, - 10, - 501, - }, - dictWord{10, 10, 383}, - dictWord{139, 10, 477}, - dictWord{132, 10, 229}, - dictWord{137, 11, 785}, - dictWord{4, 0, 97}, - dictWord{5, 0, 147}, - dictWord{ - 6, - 0, - 286, - }, - dictWord{7, 0, 1362}, - dictWord{141, 0, 176}, - dictWord{6, 0, 537}, - dictWord{7, 0, 788}, - dictWord{7, 0, 1816}, - dictWord{132, 10, 903}, - dictWord{ - 140, - 10, - 71, - }, - dictWord{6, 0, 743}, - dictWord{134, 0, 1223}, - dictWord{6, 0, 375}, - dictWord{7, 0, 169}, - dictWord{7, 0, 254}, - dictWord{8, 0, 780}, - dictWord{135, 11, 1493}, - dictWord{7, 0, 1714}, - dictWord{4, 10, 47}, - dictWord{6, 10, 373}, - dictWord{7, 10, 452}, - dictWord{7, 10, 543}, - dictWord{7, 10, 1856}, - dictWord{9, 10, 6}, - dictWord{ - 11, - 10, - 257, - }, - dictWord{139, 10, 391}, - dictWord{6, 0, 896}, - dictWord{136, 0, 1003}, - dictWord{135, 0, 1447}, - dictWord{137, 11, 341}, - dictWord{5, 10, 980}, - dictWord{134, 10, 1754}, - dictWord{145, 11, 22}, - dictWord{4, 11, 277}, - dictWord{5, 11, 608}, - dictWord{6, 11, 493}, - dictWord{7, 11, 457}, - dictWord{ - 140, - 11, - 384, - }, - dictWord{7, 10, 536}, - dictWord{7, 10, 1331}, - dictWord{136, 10, 143}, - dictWord{140, 0, 744}, - dictWord{7, 11, 27}, - dictWord{135, 11, 316}, - dictWord{ - 18, - 0, - 126, - }, - dictWord{5, 10, 19}, - dictWord{134, 10, 533}, - dictWord{4, 0, 788}, - dictWord{11, 0, 41}, - dictWord{5, 11, 552}, - dictWord{5, 11, 586}, - dictWord{ - 5, - 11, - 676, - }, - dictWord{6, 11, 448}, - dictWord{8, 11, 244}, - dictWord{11, 11, 1}, - dictWord{11, 11, 41}, - dictWord{13, 11, 3}, - dictWord{16, 11, 54}, - dictWord{17, 11, 4}, - dictWord{146, 11, 13}, - dictWord{4, 0, 985}, - dictWord{6, 0, 1801}, - dictWord{4, 11, 401}, - dictWord{137, 11, 264}, - dictWord{5, 10, 395}, - dictWord{5, 10, 951}, - dictWord{134, 10, 1776}, - dictWord{5, 0, 629}, - dictWord{135, 0, 1549}, - dictWord{11, 10, 663}, - dictWord{12, 10, 210}, - dictWord{13, 10, 166}, - dictWord{ - 13, - 10, - 310, - }, - dictWord{14, 10, 373}, - dictWord{147, 10, 43}, - dictWord{9, 11, 543}, - dictWord{10, 11, 524}, - dictWord{11, 11, 30}, - dictWord{12, 11, 524}, - dictWord{ - 14, - 11, - 315, - }, - dictWord{16, 11, 18}, - dictWord{20, 11, 26}, - dictWord{148, 11, 65}, - dictWord{4, 11, 205}, - dictWord{5, 11, 623}, - dictWord{7, 11, 104}, - dictWord{ - 136, - 11, - 519, - }, - dictWord{5, 0, 293}, - dictWord{134, 0, 601}, - dictWord{7, 11, 579}, - dictWord{9, 11, 41}, - dictWord{9, 11, 244}, - dictWord{9, 11, 669}, - dictWord{ - 10, - 11, - 5, - }, - dictWord{11, 11, 861}, - dictWord{11, 11, 951}, - dictWord{139, 11, 980}, - dictWord{132, 11, 717}, - dictWord{132, 10, 695}, - dictWord{7, 10, 497}, - dictWord{ - 9, - 10, - 387, - }, - dictWord{147, 10, 81}, - dictWord{132, 0, 420}, - dictWord{142, 0, 37}, - dictWord{6, 0, 1134}, - dictWord{6, 0, 1900}, - dictWord{12, 0, 830}, - dictWord{ - 12, - 0, - 878, - }, - dictWord{12, 0, 894}, - dictWord{15, 0, 221}, - dictWord{143, 0, 245}, - dictWord{132, 11, 489}, - dictWord{7, 0, 1570}, - dictWord{140, 0, 542}, - dictWord{ - 8, - 0, - 933, - }, - dictWord{136, 0, 957}, - dictWord{6, 0, 1371}, - dictWord{7, 0, 31}, - dictWord{8, 0, 373}, - dictWord{5, 10, 284}, - dictWord{6, 10, 49}, - dictWord{6, 10, 350}, - dictWord{7, 10, 377}, - dictWord{7, 10, 1693}, - dictWord{8, 10, 678}, - dictWord{9, 10, 161}, - dictWord{9, 10, 585}, - dictWord{9, 10, 671}, - dictWord{9, 10, 839}, - dictWord{11, 10, 912}, - dictWord{141, 10, 427}, - dictWord{135, 11, 892}, - dictWord{4, 0, 325}, - dictWord{138, 0, 125}, - dictWord{139, 11, 47}, - dictWord{ - 132, - 10, - 597, - }, - dictWord{138, 0, 323}, - dictWord{6, 0, 1547}, - dictWord{7, 11, 1605}, - dictWord{9, 11, 473}, - dictWord{11, 11, 962}, - dictWord{146, 11, 139}, - dictWord{ - 139, - 10, - 908, - }, - dictWord{7, 11, 819}, - dictWord{9, 11, 26}, - dictWord{9, 11, 392}, - dictWord{10, 11, 152}, - dictWord{10, 11, 226}, - dictWord{11, 11, 19}, - dictWord{ - 12, - 11, - 276, - }, - dictWord{12, 11, 426}, - dictWord{12, 11, 589}, - dictWord{13, 11, 460}, - dictWord{15, 11, 97}, - dictWord{19, 11, 48}, - dictWord{148, 11, 104}, - dictWord{135, 11, 51}, - dictWord{4, 0, 718}, - dictWord{135, 0, 1216}, - dictWord{6, 0, 1896}, - dictWord{6, 0, 1905}, - dictWord{6, 0, 1912}, - dictWord{9, 0, 947}, - dictWord{ - 9, - 0, - 974, - }, - dictWord{12, 0, 809}, - dictWord{12, 0, 850}, - dictWord{12, 0, 858}, - dictWord{12, 0, 874}, - dictWord{12, 0, 887}, - dictWord{12, 0, 904}, - dictWord{ - 12, - 0, - 929, - }, - dictWord{12, 0, 948}, - dictWord{12, 0, 952}, - dictWord{15, 0, 198}, - dictWord{15, 0, 206}, - dictWord{15, 0, 220}, - dictWord{15, 0, 227}, - dictWord{15, 0, 247}, - dictWord{18, 0, 188}, - dictWord{21, 0, 48}, - dictWord{21, 0, 50}, - dictWord{24, 0, 25}, - dictWord{24, 0, 29}, - dictWord{7, 11, 761}, - dictWord{7, 11, 1051}, - dictWord{ - 137, - 11, - 545, - }, - dictWord{5, 0, 124}, - dictWord{5, 0, 144}, - dictWord{6, 0, 548}, - dictWord{7, 0, 15}, - dictWord{7, 0, 153}, - dictWord{137, 0, 629}, - dictWord{ - 135, - 11, - 606, - }, - dictWord{135, 10, 2014}, - dictWord{7, 10, 2007}, - dictWord{9, 11, 46}, - dictWord{9, 10, 101}, - dictWord{9, 10, 450}, - dictWord{10, 10, 66}, - dictWord{ - 10, - 10, - 842, - }, - dictWord{11, 10, 536}, - dictWord{140, 10, 587}, - dictWord{6, 0, 75}, - dictWord{7, 0, 1531}, - dictWord{8, 0, 416}, - dictWord{9, 0, 240}, - dictWord{9, 0, 275}, - dictWord{10, 0, 100}, - dictWord{11, 0, 658}, - dictWord{11, 0, 979}, - dictWord{12, 0, 86}, - dictWord{14, 0, 207}, - dictWord{15, 0, 20}, - dictWord{143, 0, 25}, - dictWord{ - 5, - 0, - 141, - }, - dictWord{5, 0, 915}, - dictWord{6, 0, 1783}, - dictWord{7, 0, 211}, - dictWord{7, 0, 698}, - dictWord{7, 0, 1353}, - dictWord{9, 0, 83}, - dictWord{9, 0, 281}, - dictWord{ - 10, - 0, - 376, - }, - dictWord{10, 0, 431}, - dictWord{11, 0, 543}, - dictWord{12, 0, 664}, - dictWord{13, 0, 280}, - dictWord{13, 0, 428}, - dictWord{14, 0, 61}, - dictWord{ - 14, - 0, - 128, - }, - dictWord{17, 0, 52}, - dictWord{145, 0, 81}, - dictWord{132, 11, 674}, - dictWord{135, 0, 533}, - dictWord{149, 0, 6}, - dictWord{132, 11, 770}, - dictWord{ - 133, - 0, - 538, - }, - dictWord{5, 11, 79}, - dictWord{7, 11, 1027}, - dictWord{7, 11, 1477}, - dictWord{139, 11, 52}, - dictWord{139, 10, 62}, - dictWord{4, 0, 338}, - dictWord{ - 133, - 0, - 400, - }, - dictWord{5, 11, 789}, - dictWord{134, 11, 195}, - dictWord{4, 11, 251}, - dictWord{4, 11, 688}, - dictWord{7, 11, 513}, - dictWord{7, 11, 1284}, - dictWord{ - 9, - 11, - 87, - }, - dictWord{138, 11, 365}, - dictWord{134, 10, 1766}, - dictWord{6, 0, 0}, - dictWord{7, 0, 84}, - dictWord{11, 0, 895}, - dictWord{145, 0, 11}, - dictWord{ - 139, - 0, - 892, - }, - dictWord{4, 0, 221}, - dictWord{5, 0, 659}, - dictWord{7, 0, 697}, - dictWord{7, 0, 1211}, - dictWord{138, 0, 284}, - dictWord{133, 0, 989}, - dictWord{ - 133, - 11, - 889, - }, - dictWord{4, 11, 160}, - dictWord{5, 11, 330}, - dictWord{7, 11, 1434}, - dictWord{136, 11, 174}, - dictWord{6, 10, 1665}, - dictWord{7, 10, 256}, - dictWord{ - 7, - 10, - 1388, - }, - dictWord{10, 10, 499}, - dictWord{139, 10, 670}, - dictWord{7, 0, 848}, - dictWord{4, 10, 22}, - dictWord{5, 10, 10}, - dictWord{136, 10, 97}, - dictWord{ - 138, - 0, - 507, - }, - dictWord{133, 10, 481}, - dictWord{4, 0, 188}, - dictWord{135, 0, 805}, - dictWord{5, 0, 884}, - dictWord{6, 0, 732}, - dictWord{139, 0, 991}, - dictWord{ - 135, - 11, - 968, - }, - dictWord{11, 11, 636}, - dictWord{15, 11, 145}, - dictWord{17, 11, 34}, - dictWord{19, 11, 50}, - dictWord{151, 11, 20}, - dictWord{7, 0, 959}, - dictWord{ - 16, - 0, - 60, - }, - dictWord{6, 10, 134}, - dictWord{7, 10, 437}, - dictWord{9, 10, 37}, - dictWord{14, 10, 285}, - dictWord{142, 10, 371}, - dictWord{7, 10, 486}, - dictWord{ - 8, - 10, - 155, - }, - dictWord{11, 10, 93}, - dictWord{140, 10, 164}, - dictWord{134, 0, 1653}, - dictWord{7, 0, 337}, - dictWord{133, 10, 591}, - dictWord{6, 0, 1989}, - dictWord{ - 8, - 0, - 922, - }, - dictWord{8, 0, 978}, - dictWord{133, 11, 374}, - dictWord{132, 0, 638}, - dictWord{138, 0, 500}, - dictWord{133, 11, 731}, - dictWord{5, 10, 380}, - dictWord{ - 5, - 10, - 650, - }, - dictWord{136, 10, 310}, - dictWord{138, 11, 381}, - dictWord{4, 10, 364}, - dictWord{7, 10, 1156}, - dictWord{7, 10, 1187}, - dictWord{137, 10, 409}, - dictWord{137, 11, 224}, - dictWord{140, 0, 166}, - dictWord{134, 10, 482}, - dictWord{4, 11, 626}, - dictWord{5, 11, 642}, - dictWord{6, 11, 425}, - dictWord{ - 10, - 11, - 202, - }, - dictWord{139, 11, 141}, - dictWord{4, 10, 781}, - dictWord{6, 10, 487}, - dictWord{7, 10, 926}, - dictWord{8, 10, 263}, - dictWord{139, 10, 500}, - dictWord{ - 135, - 0, - 418, - }, - dictWord{4, 10, 94}, - dictWord{135, 10, 1265}, - dictWord{136, 0, 760}, - dictWord{132, 10, 417}, - dictWord{136, 11, 835}, - dictWord{5, 10, 348}, - dictWord{134, 10, 522}, - dictWord{6, 0, 1277}, - dictWord{134, 0, 1538}, - dictWord{139, 11, 541}, - dictWord{135, 11, 1597}, - dictWord{5, 11, 384}, - dictWord{ - 8, - 11, - 455, - }, - dictWord{140, 11, 48}, - dictWord{136, 0, 770}, - dictWord{5, 11, 264}, - dictWord{134, 11, 184}, - dictWord{4, 0, 89}, - dictWord{5, 0, 489}, - dictWord{ - 6, - 0, - 315, - }, - dictWord{7, 0, 553}, - dictWord{7, 0, 1745}, - dictWord{138, 0, 243}, - dictWord{4, 10, 408}, - dictWord{4, 10, 741}, - dictWord{135, 10, 500}, - dictWord{ - 134, - 0, - 1396, - }, - dictWord{133, 0, 560}, - dictWord{6, 0, 1658}, - dictWord{9, 0, 3}, - dictWord{10, 0, 154}, - dictWord{11, 0, 641}, - dictWord{13, 0, 85}, - dictWord{13, 0, 201}, - dictWord{141, 0, 346}, - dictWord{135, 11, 1595}, - dictWord{5, 11, 633}, - dictWord{6, 11, 28}, - dictWord{7, 11, 219}, - dictWord{135, 11, 1323}, - dictWord{ - 9, - 11, - 769, - }, - dictWord{140, 11, 185}, - dictWord{135, 11, 785}, - dictWord{7, 11, 359}, - dictWord{8, 11, 243}, - dictWord{140, 11, 175}, - dictWord{138, 0, 586}, - dictWord{ - 7, - 0, - 1271, - }, - dictWord{134, 10, 73}, - dictWord{132, 11, 105}, - dictWord{4, 0, 166}, - dictWord{5, 0, 505}, - dictWord{134, 0, 1670}, - dictWord{133, 10, 576}, - dictWord{4, 11, 324}, - dictWord{138, 11, 104}, - dictWord{142, 10, 231}, - dictWord{6, 0, 637}, - dictWord{7, 10, 1264}, - dictWord{7, 10, 1678}, - dictWord{ - 11, - 10, - 945, - }, - dictWord{12, 10, 341}, - dictWord{12, 10, 471}, - dictWord{12, 10, 569}, - dictWord{23, 11, 21}, - dictWord{151, 11, 23}, - dictWord{8, 11, 559}, - dictWord{ - 141, - 11, - 109, - }, - dictWord{134, 0, 1947}, - dictWord{7, 0, 445}, - dictWord{8, 0, 307}, - dictWord{8, 0, 704}, - dictWord{10, 0, 41}, - dictWord{10, 0, 439}, - dictWord{ - 11, - 0, - 237, - }, - dictWord{11, 0, 622}, - dictWord{140, 0, 201}, - dictWord{135, 11, 963}, - dictWord{135, 0, 1977}, - dictWord{4, 0, 189}, - dictWord{5, 0, 713}, - dictWord{ - 136, - 0, - 57, - }, - dictWord{138, 0, 371}, - dictWord{135, 10, 538}, - dictWord{132, 0, 552}, - dictWord{6, 0, 883}, - dictWord{133, 10, 413}, - dictWord{6, 0, 923}, - dictWord{ - 132, - 11, - 758, - }, - dictWord{138, 11, 215}, - dictWord{136, 10, 495}, - dictWord{7, 10, 54}, - dictWord{8, 10, 312}, - dictWord{10, 10, 191}, - dictWord{10, 10, 614}, - dictWord{140, 10, 567}, - dictWord{7, 11, 351}, - dictWord{139, 11, 128}, - dictWord{7, 0, 875}, - dictWord{6, 10, 468}, - dictWord{7, 10, 1478}, - dictWord{8, 10, 530}, - dictWord{142, 10, 290}, - dictWord{135, 0, 1788}, - dictWord{17, 0, 49}, - dictWord{133, 11, 918}, - dictWord{12, 11, 398}, - dictWord{20, 11, 39}, - dictWord{ - 21, - 11, - 11, - }, - dictWord{150, 11, 41}, - dictWord{10, 0, 661}, - dictWord{6, 10, 484}, - dictWord{135, 10, 822}, - dictWord{135, 0, 1945}, - dictWord{134, 0, 794}, - dictWord{ - 137, - 10, - 900, - }, - dictWord{135, 10, 1335}, - dictWord{6, 10, 1724}, - dictWord{135, 10, 2022}, - dictWord{132, 11, 340}, - dictWord{134, 0, 1135}, - dictWord{ - 4, - 0, - 784, - }, - dictWord{133, 0, 745}, - dictWord{5, 0, 84}, - dictWord{134, 0, 163}, - dictWord{133, 0, 410}, - dictWord{4, 0, 976}, - dictWord{5, 11, 985}, - dictWord{7, 11, 509}, - dictWord{7, 11, 529}, - dictWord{145, 11, 96}, - dictWord{132, 10, 474}, - dictWord{134, 0, 703}, - dictWord{135, 11, 1919}, - dictWord{5, 0, 322}, - dictWord{ - 8, - 0, - 186, - }, - dictWord{9, 0, 262}, - dictWord{10, 0, 187}, - dictWord{142, 0, 208}, - dictWord{135, 10, 1504}, - dictWord{133, 0, 227}, - dictWord{9, 0, 560}, - dictWord{ - 13, - 0, - 208, - }, - dictWord{133, 10, 305}, - dictWord{132, 11, 247}, - dictWord{7, 0, 1395}, - dictWord{8, 0, 486}, - dictWord{9, 0, 236}, - dictWord{9, 0, 878}, - dictWord{ - 10, - 0, - 218, - }, - dictWord{11, 0, 95}, - dictWord{19, 0, 17}, - dictWord{147, 0, 31}, - dictWord{7, 0, 2043}, - dictWord{8, 0, 672}, - dictWord{141, 0, 448}, - dictWord{4, 11, 184}, - dictWord{5, 11, 390}, - dictWord{6, 11, 337}, - dictWord{7, 11, 23}, - dictWord{7, 11, 494}, - dictWord{7, 11, 618}, - dictWord{7, 11, 1456}, - dictWord{8, 11, 27}, - dictWord{ - 8, - 11, - 599, - }, - dictWord{10, 11, 153}, - dictWord{139, 11, 710}, - dictWord{135, 0, 466}, - dictWord{135, 10, 1236}, - dictWord{6, 0, 167}, - dictWord{7, 0, 186}, - dictWord{7, 0, 656}, - dictWord{10, 0, 643}, - dictWord{4, 10, 480}, - dictWord{6, 10, 302}, - dictWord{6, 10, 1642}, - dictWord{7, 10, 837}, - dictWord{7, 10, 1547}, - dictWord{ - 7, - 10, - 1657, - }, - dictWord{8, 10, 429}, - dictWord{9, 10, 228}, - dictWord{13, 10, 289}, - dictWord{13, 10, 343}, - dictWord{147, 10, 101}, - dictWord{134, 0, 1428}, - dictWord{134, 0, 1440}, - dictWord{5, 0, 412}, - dictWord{7, 10, 278}, - dictWord{10, 10, 739}, - dictWord{11, 10, 708}, - dictWord{141, 10, 348}, - dictWord{ - 134, - 0, - 1118, - }, - dictWord{136, 0, 562}, - dictWord{148, 11, 46}, - dictWord{9, 0, 316}, - dictWord{139, 0, 256}, - dictWord{134, 0, 1771}, - dictWord{135, 0, 1190}, - dictWord{137, 0, 132}, - dictWord{10, 11, 227}, - dictWord{11, 11, 497}, - dictWord{11, 11, 709}, - dictWord{140, 11, 415}, - dictWord{143, 0, 66}, - dictWord{6, 11, 360}, - dictWord{7, 11, 1664}, - dictWord{136, 11, 478}, - dictWord{144, 10, 28}, - dictWord{4, 0, 317}, - dictWord{135, 0, 1279}, - dictWord{5, 0, 63}, - dictWord{ - 133, - 0, - 509, - }, - dictWord{136, 11, 699}, - dictWord{145, 10, 36}, - dictWord{134, 0, 1475}, - dictWord{11, 11, 343}, - dictWord{142, 11, 127}, - dictWord{132, 11, 739}, - dictWord{132, 0, 288}, - dictWord{135, 11, 1757}, - dictWord{8, 0, 89}, - dictWord{8, 0, 620}, - dictWord{9, 0, 608}, - dictWord{11, 0, 628}, - dictWord{12, 0, 322}, - dictWord{143, 0, 124}, - dictWord{134, 0, 1225}, - dictWord{7, 0, 1189}, - dictWord{4, 11, 67}, - dictWord{5, 11, 422}, - dictWord{6, 10, 363}, - dictWord{7, 11, 1037}, - dictWord{7, 11, 1289}, - dictWord{7, 11, 1555}, - dictWord{7, 10, 1955}, - dictWord{8, 10, 725}, - dictWord{9, 11, 741}, - dictWord{145, 11, 108}, - dictWord{ - 134, - 0, - 1468, - }, - dictWord{6, 0, 689}, - dictWord{134, 0, 1451}, - dictWord{138, 0, 120}, - dictWord{151, 0, 1}, - dictWord{137, 10, 805}, - dictWord{142, 0, 329}, - dictWord{ - 5, - 10, - 813, - }, - dictWord{135, 10, 2046}, - dictWord{135, 0, 226}, - dictWord{138, 11, 96}, - dictWord{7, 0, 1855}, - dictWord{5, 10, 712}, - dictWord{11, 10, 17}, - dictWord{13, 10, 321}, - dictWord{144, 10, 67}, - dictWord{9, 0, 461}, - dictWord{6, 10, 320}, - dictWord{7, 10, 781}, - dictWord{7, 10, 1921}, - dictWord{9, 10, 55}, - dictWord{ - 10, - 10, - 186, - }, - dictWord{10, 10, 273}, - dictWord{10, 10, 664}, - dictWord{10, 10, 801}, - dictWord{11, 10, 996}, - dictWord{11, 10, 997}, - dictWord{13, 10, 157}, - dictWord{142, 10, 170}, - dictWord{8, 11, 203}, - dictWord{8, 10, 271}, - dictWord{11, 11, 823}, - dictWord{11, 11, 846}, - dictWord{12, 11, 482}, - dictWord{ - 13, - 11, - 133, - }, - dictWord{13, 11, 277}, - dictWord{13, 11, 302}, - dictWord{13, 11, 464}, - dictWord{14, 11, 205}, - dictWord{142, 11, 221}, - dictWord{135, 0, 1346}, - dictWord{4, 11, 449}, - dictWord{133, 11, 718}, - dictWord{134, 0, 85}, - dictWord{14, 0, 299}, - dictWord{7, 10, 103}, - dictWord{7, 10, 863}, - dictWord{11, 10, 184}, - dictWord{145, 10, 62}, - dictWord{4, 11, 355}, - dictWord{6, 11, 311}, - dictWord{9, 11, 256}, - dictWord{138, 11, 404}, - dictWord{137, 10, 659}, - dictWord{ - 138, - 11, - 758, - }, - dictWord{133, 11, 827}, - dictWord{5, 11, 64}, - dictWord{140, 11, 581}, - dictWord{134, 0, 1171}, - dictWord{4, 11, 442}, - dictWord{7, 11, 1047}, - dictWord{ - 7, - 11, - 1352, - }, - dictWord{135, 11, 1643}, - dictWord{132, 0, 980}, - dictWord{5, 11, 977}, - dictWord{6, 11, 288}, - dictWord{7, 11, 528}, - dictWord{135, 11, 1065}, - dictWord{5, 0, 279}, - dictWord{6, 0, 235}, - dictWord{7, 0, 468}, - dictWord{8, 0, 446}, - dictWord{9, 0, 637}, - dictWord{10, 0, 717}, - dictWord{11, 0, 738}, - dictWord{ - 140, - 0, - 514, - }, - dictWord{132, 0, 293}, - dictWord{11, 10, 337}, - dictWord{142, 10, 303}, - dictWord{136, 11, 285}, - dictWord{5, 0, 17}, - dictWord{6, 0, 371}, - dictWord{ - 9, - 0, - 528, - }, - dictWord{12, 0, 364}, - dictWord{132, 11, 254}, - dictWord{5, 10, 77}, - dictWord{7, 10, 1455}, - dictWord{10, 10, 843}, - dictWord{147, 10, 73}, - dictWord{ - 150, - 0, - 5, - }, - dictWord{132, 10, 458}, - dictWord{6, 11, 12}, - dictWord{7, 11, 1219}, - dictWord{145, 11, 73}, - dictWord{135, 10, 1420}, - dictWord{6, 10, 109}, - dictWord{138, 10, 382}, - dictWord{135, 11, 125}, - dictWord{6, 10, 330}, - dictWord{7, 10, 1084}, - dictWord{139, 10, 142}, - dictWord{6, 11, 369}, - dictWord{ - 6, - 11, - 502, - }, - dictWord{7, 11, 1036}, - dictWord{8, 11, 348}, - dictWord{9, 11, 452}, - dictWord{10, 11, 26}, - dictWord{11, 11, 224}, - dictWord{11, 11, 387}, - dictWord{ - 11, - 11, - 772, - }, - dictWord{12, 11, 95}, - dictWord{12, 11, 629}, - dictWord{13, 11, 195}, - dictWord{13, 11, 207}, - dictWord{13, 11, 241}, - dictWord{14, 11, 260}, - dictWord{ - 14, - 11, - 270, - }, - dictWord{143, 11, 140}, - dictWord{132, 11, 269}, - dictWord{5, 11, 480}, - dictWord{7, 11, 532}, - dictWord{7, 11, 1197}, - dictWord{7, 11, 1358}, - dictWord{8, 11, 291}, - dictWord{11, 11, 349}, - dictWord{142, 11, 396}, - dictWord{150, 0, 48}, - dictWord{10, 0, 601}, - dictWord{13, 0, 353}, - dictWord{141, 0, 376}, - dictWord{5, 0, 779}, - dictWord{5, 0, 807}, - dictWord{6, 0, 1655}, - dictWord{134, 0, 1676}, - dictWord{142, 11, 223}, - dictWord{4, 0, 196}, - dictWord{5, 0, 558}, - dictWord{133, 0, 949}, - dictWord{148, 11, 15}, - dictWord{135, 11, 1764}, - dictWord{134, 0, 1322}, - dictWord{132, 0, 752}, - dictWord{139, 0, 737}, - dictWord{ - 135, - 11, - 657, - }, - dictWord{136, 11, 533}, - dictWord{135, 0, 412}, - dictWord{4, 0, 227}, - dictWord{5, 0, 159}, - dictWord{5, 0, 409}, - dictWord{7, 0, 80}, - dictWord{8, 0, 556}, - dictWord{10, 0, 479}, - dictWord{12, 0, 418}, - dictWord{14, 0, 50}, - dictWord{14, 0, 123}, - dictWord{14, 0, 192}, - dictWord{14, 0, 249}, - dictWord{14, 0, 295}, - dictWord{143, 0, 27}, - dictWord{7, 0, 1470}, - dictWord{8, 0, 66}, - dictWord{8, 0, 137}, - dictWord{8, 0, 761}, - dictWord{9, 0, 638}, - dictWord{11, 0, 80}, - dictWord{11, 0, 212}, - dictWord{11, 0, 368}, - dictWord{11, 0, 418}, - dictWord{12, 0, 8}, - dictWord{13, 0, 15}, - dictWord{16, 0, 61}, - dictWord{17, 0, 59}, - dictWord{19, 0, 28}, - dictWord{ - 148, - 0, - 84, - }, - dictWord{135, 10, 1985}, - dictWord{4, 11, 211}, - dictWord{4, 11, 332}, - dictWord{5, 11, 335}, - dictWord{6, 11, 238}, - dictWord{7, 11, 269}, - dictWord{ - 7, - 11, - 811, - }, - dictWord{7, 11, 1797}, - dictWord{8, 10, 122}, - dictWord{8, 11, 836}, - dictWord{9, 11, 507}, - dictWord{141, 11, 242}, - dictWord{6, 0, 683}, - dictWord{ - 134, - 0, - 1252, - }, - dictWord{4, 0, 873}, - dictWord{132, 10, 234}, - dictWord{134, 0, 835}, - dictWord{6, 0, 38}, - dictWord{7, 0, 1220}, - dictWord{8, 0, 185}, - dictWord{8, 0, 256}, - dictWord{9, 0, 22}, - dictWord{9, 0, 331}, - dictWord{10, 0, 738}, - dictWord{11, 0, 205}, - dictWord{11, 0, 540}, - dictWord{11, 0, 746}, - dictWord{13, 0, 465}, - dictWord{ - 14, - 0, - 88, - }, - dictWord{142, 0, 194}, - dictWord{138, 0, 986}, - dictWord{5, 11, 1009}, - dictWord{12, 11, 582}, - dictWord{146, 11, 131}, - dictWord{4, 0, 159}, - dictWord{ - 6, - 0, - 115, - }, - dictWord{7, 0, 252}, - dictWord{7, 0, 257}, - dictWord{7, 0, 1928}, - dictWord{8, 0, 69}, - dictWord{9, 0, 384}, - dictWord{10, 0, 91}, - dictWord{10, 0, 615}, - dictWord{ - 12, - 0, - 375, - }, - dictWord{14, 0, 235}, - dictWord{18, 0, 117}, - dictWord{147, 0, 123}, - dictWord{133, 0, 911}, - dictWord{136, 0, 278}, - dictWord{5, 10, 430}, - dictWord{ - 5, - 10, - 932, - }, - dictWord{6, 10, 131}, - dictWord{7, 10, 417}, - dictWord{9, 10, 522}, - dictWord{11, 10, 314}, - dictWord{141, 10, 390}, - dictWord{14, 10, 149}, - dictWord{14, 10, 399}, - dictWord{143, 10, 57}, - dictWord{4, 0, 151}, - dictWord{7, 0, 1567}, - dictWord{136, 0, 749}, - dictWord{5, 11, 228}, - dictWord{6, 11, 203}, - dictWord{ - 7, - 11, - 156, - }, - dictWord{8, 11, 347}, - dictWord{137, 11, 265}, - dictWord{132, 10, 507}, - dictWord{10, 0, 989}, - dictWord{140, 0, 956}, - dictWord{133, 0, 990}, - dictWord{5, 0, 194}, - dictWord{6, 0, 927}, - dictWord{7, 0, 1662}, - dictWord{9, 0, 90}, - dictWord{140, 0, 564}, - dictWord{4, 10, 343}, - dictWord{133, 10, 511}, - dictWord{133, 0, 425}, - dictWord{7, 10, 455}, - dictWord{138, 10, 591}, - dictWord{4, 0, 774}, - dictWord{7, 11, 476}, - dictWord{7, 11, 1592}, - dictWord{138, 11, 87}, - dictWord{5, 0, 971}, - dictWord{135, 10, 1381}, - dictWord{5, 11, 318}, - dictWord{147, 11, 121}, - dictWord{5, 11, 291}, - dictWord{7, 11, 765}, - dictWord{9, 11, 389}, - dictWord{140, 11, 548}, - dictWord{134, 10, 575}, - dictWord{4, 0, 827}, - dictWord{12, 0, 646}, - dictWord{12, 0, 705}, - dictWord{12, 0, 712}, - dictWord{140, 0, 714}, - dictWord{139, 0, 752}, - dictWord{137, 0, 662}, - dictWord{5, 0, 72}, - dictWord{6, 0, 264}, - dictWord{7, 0, 21}, - dictWord{7, 0, 46}, - dictWord{7, 0, 2013}, - dictWord{ - 8, - 0, - 215, - }, - dictWord{8, 0, 513}, - dictWord{10, 0, 266}, - dictWord{139, 0, 22}, - dictWord{139, 11, 522}, - dictWord{6, 0, 239}, - dictWord{7, 0, 118}, - dictWord{10, 0, 95}, - dictWord{11, 0, 603}, - dictWord{13, 0, 443}, - dictWord{14, 0, 160}, - dictWord{143, 0, 4}, - dictWord{6, 0, 431}, - dictWord{134, 0, 669}, - dictWord{7, 10, 1127}, - dictWord{ - 7, - 10, - 1572, - }, - dictWord{10, 10, 297}, - dictWord{10, 10, 422}, - dictWord{11, 10, 764}, - dictWord{11, 10, 810}, - dictWord{12, 10, 264}, - dictWord{13, 10, 102}, - dictWord{13, 10, 300}, - dictWord{13, 10, 484}, - dictWord{14, 10, 147}, - dictWord{14, 10, 229}, - dictWord{17, 10, 71}, - dictWord{18, 10, 118}, - dictWord{ - 147, - 10, - 120, - }, - dictWord{5, 0, 874}, - dictWord{6, 0, 1677}, - dictWord{15, 0, 0}, - dictWord{10, 11, 525}, - dictWord{139, 11, 82}, - dictWord{6, 0, 65}, - dictWord{7, 0, 939}, - dictWord{ - 7, - 0, - 1172, - }, - dictWord{7, 0, 1671}, - dictWord{9, 0, 540}, - dictWord{10, 0, 696}, - dictWord{11, 0, 265}, - dictWord{11, 0, 732}, - dictWord{11, 0, 928}, - dictWord{ - 11, - 0, - 937, - }, - dictWord{141, 0, 438}, - dictWord{134, 0, 1350}, - dictWord{136, 11, 547}, - dictWord{132, 11, 422}, - dictWord{5, 11, 355}, - dictWord{145, 11, 0}, - dictWord{137, 11, 905}, - dictWord{5, 0, 682}, - dictWord{135, 0, 1887}, - dictWord{132, 0, 809}, - dictWord{4, 0, 696}, - dictWord{133, 11, 865}, - dictWord{6, 0, 1074}, - dictWord{6, 0, 1472}, - dictWord{14, 10, 35}, - dictWord{142, 10, 191}, - dictWord{5, 11, 914}, - dictWord{134, 11, 1625}, - dictWord{133, 11, 234}, - dictWord{ - 135, - 11, - 1383, - }, - dictWord{137, 11, 780}, - dictWord{132, 10, 125}, - dictWord{4, 0, 726}, - dictWord{133, 0, 630}, - dictWord{8, 0, 802}, - dictWord{136, 0, 838}, - dictWord{132, 10, 721}, - dictWord{6, 0, 1337}, - dictWord{7, 0, 776}, - dictWord{19, 0, 56}, - dictWord{136, 10, 145}, - dictWord{132, 0, 970}, - dictWord{7, 10, 792}, - dictWord{8, 10, 147}, - dictWord{10, 10, 821}, - dictWord{139, 10, 1021}, - dictWord{139, 10, 970}, - dictWord{8, 0, 940}, - dictWord{137, 0, 797}, - dictWord{ - 135, - 11, - 1312, - }, - dictWord{9, 0, 248}, - dictWord{10, 0, 400}, - dictWord{7, 11, 816}, - dictWord{7, 11, 1241}, - dictWord{7, 10, 1999}, - dictWord{9, 11, 283}, - dictWord{ - 9, - 11, - 520, - }, - dictWord{10, 11, 213}, - dictWord{10, 11, 307}, - dictWord{10, 11, 463}, - dictWord{10, 11, 671}, - dictWord{10, 11, 746}, - dictWord{11, 11, 401}, - dictWord{ - 11, - 11, - 794, - }, - dictWord{12, 11, 517}, - dictWord{18, 11, 107}, - dictWord{147, 11, 115}, - dictWord{6, 0, 1951}, - dictWord{134, 0, 2040}, - dictWord{ - 135, - 11, - 339, - }, - dictWord{13, 0, 41}, - dictWord{15, 0, 93}, - dictWord{5, 10, 168}, - dictWord{5, 10, 930}, - dictWord{8, 10, 74}, - dictWord{9, 10, 623}, - dictWord{12, 10, 500}, - dictWord{140, 10, 579}, - dictWord{6, 0, 118}, - dictWord{7, 0, 215}, - dictWord{7, 0, 1521}, - dictWord{140, 0, 11}, - dictWord{6, 10, 220}, - dictWord{7, 10, 1101}, - dictWord{141, 10, 105}, - dictWord{6, 11, 421}, - dictWord{7, 11, 61}, - dictWord{7, 11, 1540}, - dictWord{10, 11, 11}, - dictWord{138, 11, 501}, - dictWord{7, 0, 615}, - dictWord{138, 0, 251}, - dictWord{140, 11, 631}, - dictWord{135, 0, 1044}, - dictWord{6, 10, 19}, - dictWord{7, 10, 1413}, - dictWord{139, 10, 428}, - dictWord{ - 133, - 0, - 225, - }, - dictWord{7, 10, 96}, - dictWord{8, 10, 401}, - dictWord{8, 10, 703}, - dictWord{137, 10, 896}, - dictWord{145, 10, 116}, - dictWord{6, 11, 102}, - dictWord{ - 7, - 11, - 72, - }, - dictWord{15, 11, 142}, - dictWord{147, 11, 67}, - dictWord{7, 10, 1961}, - dictWord{7, 10, 1965}, - dictWord{8, 10, 702}, - dictWord{136, 10, 750}, - dictWord{ - 7, - 10, - 2030, - }, - dictWord{8, 10, 150}, - dictWord{8, 10, 737}, - dictWord{12, 10, 366}, - dictWord{151, 11, 30}, - dictWord{4, 0, 370}, - dictWord{5, 0, 756}, - dictWord{ - 7, - 0, - 1326, - }, - dictWord{135, 11, 823}, - dictWord{8, 10, 800}, - dictWord{9, 10, 148}, - dictWord{9, 10, 872}, - dictWord{9, 10, 890}, - dictWord{11, 10, 309}, - dictWord{ - 11, - 10, - 1001, - }, - dictWord{13, 10, 267}, - dictWord{141, 10, 323}, - dictWord{6, 0, 1662}, - dictWord{7, 0, 48}, - dictWord{8, 0, 771}, - dictWord{10, 0, 116}, - dictWord{ - 13, - 0, - 104, - }, - dictWord{14, 0, 105}, - dictWord{14, 0, 184}, - dictWord{15, 0, 168}, - dictWord{19, 0, 92}, - dictWord{148, 0, 68}, - dictWord{10, 0, 209}, - dictWord{ - 135, - 11, - 1870, - }, - dictWord{7, 11, 68}, - dictWord{8, 11, 48}, - dictWord{8, 11, 88}, - dictWord{8, 11, 582}, - dictWord{8, 11, 681}, - dictWord{9, 11, 373}, - dictWord{9, 11, 864}, - dictWord{11, 11, 157}, - dictWord{11, 11, 336}, - dictWord{11, 11, 843}, - dictWord{148, 11, 27}, - dictWord{134, 0, 930}, - dictWord{4, 11, 88}, - dictWord{5, 11, 137}, - dictWord{5, 11, 174}, - dictWord{5, 11, 777}, - dictWord{6, 11, 1664}, - dictWord{6, 11, 1725}, - dictWord{7, 11, 77}, - dictWord{7, 11, 426}, - dictWord{7, 11, 1317}, - dictWord{7, 11, 1355}, - dictWord{8, 11, 126}, - dictWord{8, 11, 563}, - dictWord{9, 11, 523}, - dictWord{9, 11, 750}, - dictWord{10, 11, 310}, - dictWord{10, 11, 836}, - dictWord{11, 11, 42}, - dictWord{11, 11, 318}, - dictWord{11, 11, 731}, - dictWord{12, 11, 68}, - dictWord{12, 11, 92}, - dictWord{12, 11, 507}, - dictWord{12, 11, 692}, - dictWord{13, 11, 81}, - dictWord{13, 11, 238}, - dictWord{13, 11, 374}, - dictWord{18, 11, 138}, - dictWord{19, 11, 78}, - dictWord{19, 11, 111}, - dictWord{20, 11, 55}, - dictWord{20, 11, 77}, - dictWord{148, 11, 92}, - dictWord{4, 11, 938}, - dictWord{135, 11, 1831}, - dictWord{5, 10, 547}, - dictWord{7, 10, 424}, - dictWord{ - 8, - 11, - 617, - }, - dictWord{138, 11, 351}, - dictWord{6, 0, 1286}, - dictWord{6, 11, 1668}, - dictWord{7, 11, 1499}, - dictWord{8, 11, 117}, - dictWord{9, 11, 314}, - dictWord{ - 138, - 11, - 174, - }, - dictWord{6, 0, 759}, - dictWord{6, 0, 894}, - dictWord{7, 11, 707}, - dictWord{139, 11, 563}, - dictWord{4, 0, 120}, - dictWord{135, 0, 1894}, - dictWord{ - 9, - 0, - 385, - }, - dictWord{149, 0, 17}, - dictWord{138, 0, 429}, - dictWord{133, 11, 403}, - dictWord{5, 0, 820}, - dictWord{135, 0, 931}, - dictWord{10, 0, 199}, - dictWord{ - 133, - 10, - 133, - }, - dictWord{6, 0, 151}, - dictWord{6, 0, 1675}, - dictWord{7, 0, 383}, - dictWord{151, 0, 10}, - dictWord{6, 0, 761}, - dictWord{136, 10, 187}, - dictWord{ - 8, - 0, - 365, - }, - dictWord{10, 10, 0}, - dictWord{10, 10, 818}, - dictWord{139, 10, 988}, - dictWord{4, 11, 44}, - dictWord{5, 11, 311}, - dictWord{6, 11, 156}, - dictWord{ - 7, - 11, - 639, - }, - dictWord{7, 11, 762}, - dictWord{7, 11, 1827}, - dictWord{9, 11, 8}, - dictWord{9, 11, 462}, - dictWord{148, 11, 83}, - dictWord{4, 11, 346}, - dictWord{7, 11, 115}, - dictWord{9, 11, 180}, - dictWord{9, 11, 456}, - dictWord{138, 11, 363}, - dictWord{136, 10, 685}, - dictWord{7, 0, 1086}, - dictWord{145, 0, 46}, - dictWord{ - 6, - 0, - 1624, - }, - dictWord{11, 0, 11}, - dictWord{12, 0, 422}, - dictWord{13, 0, 444}, - dictWord{142, 0, 360}, - dictWord{6, 0, 1020}, - dictWord{6, 0, 1260}, - dictWord{ - 134, - 0, - 1589, - }, - dictWord{4, 0, 43}, - dictWord{5, 0, 344}, - dictWord{5, 0, 357}, - dictWord{14, 0, 472}, - dictWord{150, 0, 58}, - dictWord{6, 0, 1864}, - dictWord{6, 0, 1866}, - dictWord{6, 0, 1868}, - dictWord{6, 0, 1869}, - dictWord{6, 0, 1874}, - dictWord{6, 0, 1877}, - dictWord{6, 0, 1903}, - dictWord{6, 0, 1911}, - dictWord{9, 0, 920}, - dictWord{ - 9, - 0, - 921, - }, - dictWord{9, 0, 924}, - dictWord{9, 0, 946}, - dictWord{9, 0, 959}, - dictWord{9, 0, 963}, - dictWord{9, 0, 970}, - dictWord{9, 0, 997}, - dictWord{9, 0, 1008}, - dictWord{ - 9, - 0, - 1017, - }, - dictWord{12, 0, 795}, - dictWord{12, 0, 797}, - dictWord{12, 0, 798}, - dictWord{12, 0, 800}, - dictWord{12, 0, 803}, - dictWord{12, 0, 811}, - dictWord{ - 12, - 0, - 820, - }, - dictWord{12, 0, 821}, - dictWord{12, 0, 839}, - dictWord{12, 0, 841}, - dictWord{12, 0, 848}, - dictWord{12, 0, 911}, - dictWord{12, 0, 921}, - dictWord{12, 0, 922}, - dictWord{12, 0, 925}, - dictWord{12, 0, 937}, - dictWord{12, 0, 944}, - dictWord{12, 0, 945}, - dictWord{12, 0, 953}, - dictWord{15, 0, 184}, - dictWord{15, 0, 191}, - dictWord{15, 0, 199}, - dictWord{15, 0, 237}, - dictWord{15, 0, 240}, - dictWord{15, 0, 243}, - dictWord{15, 0, 246}, - dictWord{18, 0, 203}, - dictWord{21, 0, 40}, - dictWord{ - 21, - 0, - 52, - }, - dictWord{21, 0, 57}, - dictWord{24, 0, 23}, - dictWord{24, 0, 28}, - dictWord{152, 0, 30}, - dictWord{134, 0, 725}, - dictWord{145, 11, 58}, - dictWord{133, 0, 888}, - dictWord{137, 10, 874}, - dictWord{4, 0, 711}, - dictWord{8, 10, 774}, - dictWord{10, 10, 670}, - dictWord{140, 10, 51}, - dictWord{144, 11, 40}, - dictWord{ - 6, - 11, - 185, - }, - dictWord{7, 11, 1899}, - dictWord{139, 11, 673}, - dictWord{137, 10, 701}, - dictWord{137, 0, 440}, - dictWord{4, 11, 327}, - dictWord{5, 11, 478}, - dictWord{ - 7, - 11, - 1332, - }, - dictWord{8, 11, 753}, - dictWord{140, 11, 227}, - dictWord{4, 10, 127}, - dictWord{5, 10, 350}, - dictWord{6, 10, 356}, - dictWord{8, 10, 426}, - dictWord{ - 9, - 10, - 572, - }, - dictWord{10, 10, 247}, - dictWord{139, 10, 312}, - dictWord{5, 11, 1020}, - dictWord{133, 11, 1022}, - dictWord{4, 11, 103}, - dictWord{ - 133, - 11, - 401, - }, - dictWord{6, 0, 1913}, - dictWord{6, 0, 1926}, - dictWord{6, 0, 1959}, - dictWord{9, 0, 914}, - dictWord{9, 0, 939}, - dictWord{9, 0, 952}, - dictWord{9, 0, 979}, - dictWord{ - 9, - 0, - 990, - }, - dictWord{9, 0, 998}, - dictWord{9, 0, 1003}, - dictWord{9, 0, 1023}, - dictWord{12, 0, 827}, - dictWord{12, 0, 834}, - dictWord{12, 0, 845}, - dictWord{ - 12, - 0, - 912, - }, - dictWord{12, 0, 935}, - dictWord{12, 0, 951}, - dictWord{15, 0, 172}, - dictWord{15, 0, 174}, - dictWord{18, 0, 198}, - dictWord{149, 0, 63}, - dictWord{5, 0, 958}, - dictWord{5, 0, 987}, - dictWord{4, 11, 499}, - dictWord{135, 11, 1421}, - dictWord{7, 0, 885}, - dictWord{6, 10, 59}, - dictWord{6, 10, 1762}, - dictWord{9, 10, 603}, - dictWord{141, 10, 397}, - dictWord{10, 11, 62}, - dictWord{141, 11, 164}, - dictWord{4, 0, 847}, - dictWord{135, 0, 326}, - dictWord{11, 0, 276}, - dictWord{142, 0, 293}, - dictWord{4, 0, 65}, - dictWord{5, 0, 479}, - dictWord{5, 0, 1004}, - dictWord{7, 0, 1913}, - dictWord{8, 0, 317}, - dictWord{9, 0, 302}, - dictWord{10, 0, 612}, - dictWord{ - 13, - 0, - 22, - }, - dictWord{132, 11, 96}, - dictWord{4, 0, 261}, - dictWord{135, 0, 510}, - dictWord{135, 0, 1514}, - dictWord{6, 10, 111}, - dictWord{7, 10, 4}, - dictWord{8, 10, 163}, - dictWord{8, 10, 776}, - dictWord{138, 10, 566}, - dictWord{4, 0, 291}, - dictWord{9, 0, 515}, - dictWord{12, 0, 152}, - dictWord{12, 0, 443}, - dictWord{13, 0, 392}, - dictWord{142, 0, 357}, - dictWord{7, 11, 399}, - dictWord{135, 11, 1492}, - dictWord{4, 0, 589}, - dictWord{139, 0, 282}, - dictWord{6, 11, 563}, - dictWord{ - 135, - 10, - 1994, - }, - dictWord{5, 10, 297}, - dictWord{135, 10, 1038}, - dictWord{4, 0, 130}, - dictWord{7, 0, 843}, - dictWord{135, 0, 1562}, - dictWord{5, 0, 42}, - dictWord{ - 5, - 0, - 879, - }, - dictWord{7, 0, 245}, - dictWord{7, 0, 324}, - dictWord{7, 0, 1532}, - dictWord{11, 0, 463}, - dictWord{11, 0, 472}, - dictWord{13, 0, 363}, - dictWord{144, 0, 52}, - dictWord{4, 0, 134}, - dictWord{133, 0, 372}, - dictWord{133, 0, 680}, - dictWord{136, 10, 363}, - dictWord{6, 0, 1997}, - dictWord{8, 0, 935}, - dictWord{136, 0, 977}, - dictWord{4, 0, 810}, - dictWord{135, 0, 1634}, - dictWord{135, 10, 1675}, - dictWord{7, 0, 1390}, - dictWord{4, 11, 910}, - dictWord{133, 11, 832}, - dictWord{ - 7, - 10, - 808, - }, - dictWord{8, 11, 266}, - dictWord{139, 11, 578}, - dictWord{132, 0, 644}, - dictWord{4, 0, 982}, - dictWord{138, 0, 867}, - dictWord{132, 10, 280}, - dictWord{ - 135, - 0, - 540, - }, - dictWord{140, 10, 54}, - dictWord{135, 0, 123}, - dictWord{134, 0, 1978}, - dictWord{4, 10, 421}, - dictWord{133, 10, 548}, - dictWord{6, 0, 623}, - dictWord{136, 0, 789}, - dictWord{4, 0, 908}, - dictWord{5, 0, 359}, - dictWord{5, 0, 508}, - dictWord{6, 0, 1723}, - dictWord{7, 0, 343}, - dictWord{7, 0, 1996}, - dictWord{ - 135, - 0, - 2026, - }, - dictWord{134, 0, 1220}, - dictWord{4, 0, 341}, - dictWord{135, 0, 480}, - dictWord{6, 10, 254}, - dictWord{9, 10, 109}, - dictWord{138, 10, 103}, - dictWord{ - 134, - 0, - 888, - }, - dictWord{8, 11, 528}, - dictWord{137, 11, 348}, - dictWord{7, 0, 1995}, - dictWord{8, 0, 299}, - dictWord{11, 0, 890}, - dictWord{12, 0, 674}, - dictWord{ - 4, - 11, - 20, - }, - dictWord{133, 11, 616}, - dictWord{135, 11, 1094}, - dictWord{134, 10, 1630}, - dictWord{4, 0, 238}, - dictWord{5, 0, 503}, - dictWord{6, 0, 179}, - dictWord{ - 7, - 0, - 2003, - }, - dictWord{8, 0, 381}, - dictWord{8, 0, 473}, - dictWord{9, 0, 149}, - dictWord{10, 0, 788}, - dictWord{15, 0, 45}, - dictWord{15, 0, 86}, - dictWord{20, 0, 110}, - dictWord{150, 0, 57}, - dictWord{133, 10, 671}, - dictWord{4, 11, 26}, - dictWord{5, 11, 429}, - dictWord{6, 11, 245}, - dictWord{7, 11, 704}, - dictWord{7, 11, 1379}, - dictWord{135, 11, 1474}, - dictWord{4, 0, 121}, - dictWord{5, 0, 156}, - dictWord{5, 0, 349}, - dictWord{9, 0, 431}, - dictWord{10, 0, 605}, - dictWord{142, 0, 342}, - dictWord{ - 7, - 11, - 943, - }, - dictWord{139, 11, 614}, - dictWord{132, 10, 889}, - dictWord{132, 11, 621}, - dictWord{7, 10, 1382}, - dictWord{7, 11, 1382}, - dictWord{ - 135, - 10, - 1910, - }, - dictWord{132, 10, 627}, - dictWord{133, 10, 775}, - dictWord{133, 11, 542}, - dictWord{133, 11, 868}, - dictWord{136, 11, 433}, - dictWord{6, 0, 1373}, - dictWord{7, 0, 1011}, - dictWord{11, 10, 362}, - dictWord{11, 10, 948}, - dictWord{140, 10, 388}, - dictWord{6, 0, 80}, - dictWord{7, 0, 173}, - dictWord{9, 0, 547}, - dictWord{10, 0, 730}, - dictWord{14, 0, 18}, - dictWord{22, 0, 39}, - dictWord{135, 11, 1495}, - dictWord{6, 0, 1694}, - dictWord{135, 0, 1974}, - dictWord{140, 0, 196}, - dictWord{4, 0, 923}, - dictWord{6, 0, 507}, - dictWord{6, 0, 1711}, - dictWord{7, 10, 451}, - dictWord{8, 10, 389}, - dictWord{12, 10, 490}, - dictWord{13, 10, 16}, - dictWord{ - 13, - 10, - 215, - }, - dictWord{13, 10, 351}, - dictWord{18, 10, 132}, - dictWord{147, 10, 125}, - dictWord{6, 0, 646}, - dictWord{134, 0, 1047}, - dictWord{135, 10, 841}, - dictWord{136, 10, 566}, - dictWord{6, 0, 1611}, - dictWord{135, 0, 1214}, - dictWord{139, 0, 926}, - dictWord{132, 11, 525}, - dictWord{132, 0, 595}, - dictWord{ - 5, - 0, - 240, - }, - dictWord{6, 0, 459}, - dictWord{7, 0, 12}, - dictWord{7, 0, 114}, - dictWord{7, 0, 949}, - dictWord{7, 0, 1753}, - dictWord{7, 0, 1805}, - dictWord{8, 0, 658}, - dictWord{ - 9, - 0, - 1, - }, - dictWord{11, 0, 959}, - dictWord{141, 0, 446}, - dictWord{5, 10, 912}, - dictWord{134, 10, 1695}, - dictWord{132, 0, 446}, - dictWord{7, 11, 62}, - dictWord{ - 12, - 11, - 45, - }, - dictWord{147, 11, 112}, - dictWord{5, 10, 236}, - dictWord{6, 10, 572}, - dictWord{8, 10, 492}, - dictWord{11, 10, 618}, - dictWord{144, 10, 56}, - dictWord{ - 5, - 10, - 190, - }, - dictWord{136, 10, 318}, - dictWord{135, 10, 1376}, - dictWord{4, 11, 223}, - dictWord{6, 11, 359}, - dictWord{11, 11, 3}, - dictWord{13, 11, 108}, - dictWord{ - 14, - 11, - 89, - }, - dictWord{144, 11, 22}, - dictWord{132, 11, 647}, - dictWord{134, 0, 490}, - dictWord{134, 0, 491}, - dictWord{134, 0, 1584}, - dictWord{ - 135, - 11, - 685, - }, - dictWord{138, 11, 220}, - dictWord{7, 0, 250}, - dictWord{136, 0, 507}, - dictWord{132, 0, 158}, - dictWord{4, 0, 140}, - dictWord{7, 0, 362}, - dictWord{8, 0, 209}, - dictWord{9, 0, 10}, - dictWord{9, 0, 160}, - dictWord{9, 0, 503}, - dictWord{9, 0, 614}, - dictWord{10, 0, 689}, - dictWord{11, 0, 327}, - dictWord{11, 0, 553}, - dictWord{ - 11, - 0, - 725, - }, - dictWord{11, 0, 767}, - dictWord{12, 0, 252}, - dictWord{12, 0, 583}, - dictWord{13, 0, 192}, - dictWord{14, 0, 269}, - dictWord{14, 0, 356}, - dictWord{148, 0, 50}, - dictWord{19, 0, 1}, - dictWord{19, 0, 26}, - dictWord{150, 0, 9}, - dictWord{132, 11, 109}, - dictWord{6, 0, 228}, - dictWord{7, 0, 1341}, - dictWord{9, 0, 408}, - dictWord{ - 138, - 0, - 343, - }, - dictWord{4, 0, 373}, - dictWord{5, 0, 283}, - dictWord{6, 0, 480}, - dictWord{7, 0, 609}, - dictWord{10, 0, 860}, - dictWord{138, 0, 878}, - dictWord{6, 0, 779}, - dictWord{134, 0, 1209}, - dictWord{4, 0, 557}, - dictWord{7, 11, 263}, - dictWord{7, 11, 628}, - dictWord{136, 11, 349}, - dictWord{132, 0, 548}, - dictWord{7, 0, 197}, - dictWord{8, 0, 142}, - dictWord{8, 0, 325}, - dictWord{9, 0, 150}, - dictWord{9, 0, 596}, - dictWord{10, 0, 350}, - dictWord{10, 0, 353}, - dictWord{11, 0, 74}, - dictWord{ - 11, - 0, - 315, - }, - dictWord{12, 0, 662}, - dictWord{12, 0, 681}, - dictWord{14, 0, 423}, - dictWord{143, 0, 141}, - dictWord{4, 11, 40}, - dictWord{10, 11, 67}, - dictWord{ - 11, - 11, - 117, - }, - dictWord{11, 11, 768}, - dictWord{139, 11, 935}, - dictWord{7, 11, 992}, - dictWord{8, 11, 301}, - dictWord{9, 11, 722}, - dictWord{12, 11, 63}, - dictWord{ - 13, - 11, - 29, - }, - dictWord{14, 11, 161}, - dictWord{143, 11, 18}, - dictWord{6, 0, 1490}, - dictWord{138, 11, 532}, - dictWord{5, 0, 580}, - dictWord{7, 0, 378}, - dictWord{ - 7, - 0, - 674, - }, - dictWord{7, 0, 1424}, - dictWord{15, 0, 83}, - dictWord{16, 0, 11}, - dictWord{15, 11, 83}, - dictWord{144, 11, 11}, - dictWord{6, 0, 1057}, - dictWord{6, 0, 1335}, - dictWord{10, 0, 316}, - dictWord{7, 10, 85}, - dictWord{7, 10, 247}, - dictWord{8, 10, 585}, - dictWord{138, 10, 163}, - dictWord{4, 0, 169}, - dictWord{5, 0, 83}, - dictWord{ - 6, - 0, - 399, - }, - dictWord{6, 0, 579}, - dictWord{6, 0, 1513}, - dictWord{7, 0, 692}, - dictWord{7, 0, 846}, - dictWord{7, 0, 1015}, - dictWord{7, 0, 1799}, - dictWord{8, 0, 403}, - dictWord{9, 0, 394}, - dictWord{10, 0, 133}, - dictWord{12, 0, 4}, - dictWord{12, 0, 297}, - dictWord{12, 0, 452}, - dictWord{16, 0, 81}, - dictWord{18, 0, 25}, - dictWord{21, 0, 14}, - dictWord{22, 0, 12}, - dictWord{151, 0, 18}, - dictWord{134, 0, 1106}, - dictWord{7, 0, 1546}, - dictWord{11, 0, 299}, - dictWord{142, 0, 407}, - dictWord{134, 0, 1192}, - dictWord{132, 0, 177}, - dictWord{5, 0, 411}, - dictWord{135, 0, 653}, - dictWord{7, 0, 439}, - dictWord{10, 0, 727}, - dictWord{11, 0, 260}, - dictWord{139, 0, 684}, - dictWord{138, 10, 145}, - dictWord{147, 10, 83}, - dictWord{5, 0, 208}, - dictWord{7, 0, 753}, - dictWord{135, 0, 1528}, - dictWord{137, 11, 617}, - dictWord{ - 135, - 10, - 1922, - }, - dictWord{135, 11, 825}, - dictWord{11, 0, 422}, - dictWord{13, 0, 389}, - dictWord{4, 10, 124}, - dictWord{10, 10, 457}, - dictWord{11, 10, 121}, - dictWord{ - 11, - 10, - 169, - }, - dictWord{11, 10, 870}, - dictWord{12, 10, 214}, - dictWord{14, 10, 187}, - dictWord{143, 10, 77}, - dictWord{11, 0, 615}, - dictWord{15, 0, 58}, - dictWord{ - 11, - 11, - 615, - }, - dictWord{143, 11, 58}, - dictWord{9, 0, 618}, - dictWord{138, 0, 482}, - dictWord{6, 0, 1952}, - dictWord{6, 0, 1970}, - dictWord{142, 0, 505}, - dictWord{ - 7, - 10, - 1193, - }, - dictWord{135, 11, 1838}, - dictWord{133, 0, 242}, - dictWord{135, 10, 1333}, - dictWord{6, 10, 107}, - dictWord{7, 10, 638}, - dictWord{ - 7, - 10, - 1632, - }, - dictWord{137, 10, 396}, - dictWord{133, 0, 953}, - dictWord{5, 10, 370}, - dictWord{134, 10, 1756}, - dictWord{5, 11, 28}, - dictWord{6, 11, 204}, - dictWord{ - 10, - 11, - 320, - }, - dictWord{10, 11, 583}, - dictWord{13, 11, 502}, - dictWord{14, 11, 72}, - dictWord{14, 11, 274}, - dictWord{14, 11, 312}, - dictWord{14, 11, 344}, - dictWord{15, 11, 159}, - dictWord{16, 11, 62}, - dictWord{16, 11, 69}, - dictWord{17, 11, 30}, - dictWord{18, 11, 42}, - dictWord{18, 11, 53}, - dictWord{18, 11, 84}, - dictWord{18, 11, 140}, - dictWord{19, 11, 68}, - dictWord{19, 11, 85}, - dictWord{20, 11, 5}, - dictWord{20, 11, 45}, - dictWord{20, 11, 101}, - dictWord{22, 11, 7}, - dictWord{ - 150, - 11, - 20, - }, - dictWord{4, 11, 558}, - dictWord{6, 11, 390}, - dictWord{7, 11, 162}, - dictWord{7, 11, 689}, - dictWord{9, 11, 360}, - dictWord{138, 11, 653}, - dictWord{ - 11, - 0, - 802, - }, - dictWord{141, 0, 67}, - dictWord{133, 10, 204}, - dictWord{133, 0, 290}, - dictWord{5, 10, 970}, - dictWord{134, 10, 1706}, - dictWord{132, 0, 380}, - dictWord{5, 0, 52}, - dictWord{7, 0, 277}, - dictWord{9, 0, 368}, - dictWord{139, 0, 791}, - dictWord{5, 11, 856}, - dictWord{6, 11, 1672}, - dictWord{6, 11, 1757}, - dictWord{ - 6, - 11, - 1781, - }, - dictWord{7, 11, 1150}, - dictWord{7, 11, 1425}, - dictWord{7, 11, 1453}, - dictWord{140, 11, 513}, - dictWord{5, 11, 92}, - dictWord{7, 10, 3}, - dictWord{ - 10, - 11, - 736, - }, - dictWord{140, 11, 102}, - dictWord{4, 0, 112}, - dictWord{5, 0, 653}, - dictWord{5, 10, 483}, - dictWord{5, 10, 685}, - dictWord{6, 10, 489}, - dictWord{ - 7, - 10, - 1204, - }, - dictWord{136, 10, 394}, - dictWord{132, 10, 921}, - dictWord{6, 0, 1028}, - dictWord{133, 10, 1007}, - dictWord{5, 11, 590}, - dictWord{9, 11, 213}, - dictWord{145, 11, 91}, - dictWord{135, 10, 1696}, - dictWord{10, 0, 138}, - dictWord{139, 0, 476}, - dictWord{5, 0, 725}, - dictWord{5, 0, 727}, - dictWord{135, 0, 1811}, - dictWord{4, 0, 979}, - dictWord{6, 0, 1821}, - dictWord{6, 0, 1838}, - dictWord{8, 0, 876}, - dictWord{8, 0, 883}, - dictWord{8, 0, 889}, - dictWord{8, 0, 893}, - dictWord{ - 8, - 0, - 895, - }, - dictWord{10, 0, 934}, - dictWord{12, 0, 720}, - dictWord{14, 0, 459}, - dictWord{148, 0, 123}, - dictWord{135, 11, 551}, - dictWord{4, 0, 38}, - dictWord{6, 0, 435}, - dictWord{7, 0, 307}, - dictWord{7, 0, 999}, - dictWord{7, 0, 1481}, - dictWord{7, 0, 1732}, - dictWord{7, 0, 1738}, - dictWord{8, 0, 371}, - dictWord{9, 0, 414}, - dictWord{ - 11, - 0, - 316, - }, - dictWord{12, 0, 52}, - dictWord{13, 0, 420}, - dictWord{147, 0, 100}, - dictWord{135, 0, 1296}, - dictWord{132, 10, 712}, - dictWord{134, 10, 1629}, - dictWord{133, 0, 723}, - dictWord{134, 0, 651}, - dictWord{136, 11, 191}, - dictWord{9, 11, 791}, - dictWord{10, 11, 93}, - dictWord{11, 11, 301}, - dictWord{16, 11, 13}, - dictWord{17, 11, 23}, - dictWord{18, 11, 135}, - dictWord{19, 11, 12}, - dictWord{20, 11, 1}, - dictWord{20, 11, 12}, - dictWord{148, 11, 14}, - dictWord{136, 11, 503}, - dictWord{6, 11, 466}, - dictWord{135, 11, 671}, - dictWord{6, 0, 1200}, - dictWord{134, 0, 1330}, - dictWord{135, 0, 1255}, - dictWord{134, 0, 986}, - dictWord{ - 5, - 0, - 109, - }, - dictWord{6, 0, 1784}, - dictWord{7, 0, 1895}, - dictWord{12, 0, 296}, - dictWord{140, 0, 302}, - dictWord{135, 11, 983}, - dictWord{133, 10, 485}, - dictWord{ - 134, - 0, - 660, - }, - dictWord{134, 0, 800}, - dictWord{5, 0, 216}, - dictWord{5, 0, 294}, - dictWord{6, 0, 591}, - dictWord{7, 0, 1879}, - dictWord{9, 0, 141}, - dictWord{9, 0, 270}, - dictWord{9, 0, 679}, - dictWord{10, 0, 159}, - dictWord{11, 0, 197}, - dictWord{11, 0, 438}, - dictWord{12, 0, 538}, - dictWord{12, 0, 559}, - dictWord{14, 0, 144}, - dictWord{ - 14, - 0, - 167, - }, - dictWord{15, 0, 67}, - dictWord{4, 10, 285}, - dictWord{5, 10, 317}, - dictWord{6, 10, 301}, - dictWord{7, 10, 7}, - dictWord{8, 10, 153}, - dictWord{ - 10, - 10, - 766, - }, - dictWord{11, 10, 468}, - dictWord{12, 10, 467}, - dictWord{141, 10, 143}, - dictWord{136, 0, 945}, - dictWord{134, 0, 1090}, - dictWord{137, 0, 81}, - dictWord{12, 11, 468}, - dictWord{19, 11, 96}, - dictWord{148, 11, 24}, - dictWord{134, 0, 391}, - dictWord{138, 11, 241}, - dictWord{7, 0, 322}, - dictWord{136, 0, 249}, - dictWord{134, 0, 1412}, - dictWord{135, 11, 795}, - dictWord{5, 0, 632}, - dictWord{138, 0, 526}, - dictWord{136, 10, 819}, - dictWord{6, 0, 144}, - dictWord{7, 0, 948}, - dictWord{7, 0, 1042}, - dictWord{8, 0, 235}, - dictWord{8, 0, 461}, - dictWord{9, 0, 453}, - dictWord{9, 0, 796}, - dictWord{10, 0, 354}, - dictWord{17, 0, 77}, - dictWord{ - 135, - 11, - 954, - }, - dictWord{139, 10, 917}, - dictWord{6, 0, 940}, - dictWord{134, 0, 1228}, - dictWord{4, 0, 362}, - dictWord{7, 0, 52}, - dictWord{135, 0, 303}, - dictWord{ - 6, - 11, - 549, - }, - dictWord{8, 11, 34}, - dictWord{8, 11, 283}, - dictWord{9, 11, 165}, - dictWord{138, 11, 475}, - dictWord{7, 11, 370}, - dictWord{7, 11, 1007}, - dictWord{ - 7, - 11, - 1177, - }, - dictWord{135, 11, 1565}, - dictWord{5, 11, 652}, - dictWord{5, 11, 701}, - dictWord{135, 11, 449}, - dictWord{5, 0, 196}, - dictWord{6, 0, 486}, - dictWord{ - 7, - 0, - 212, - }, - dictWord{8, 0, 309}, - dictWord{136, 0, 346}, - dictWord{6, 10, 1719}, - dictWord{6, 10, 1735}, - dictWord{7, 10, 2016}, - dictWord{7, 10, 2020}, - dictWord{ - 8, - 10, - 837, - }, - dictWord{137, 10, 852}, - dictWord{6, 11, 159}, - dictWord{6, 11, 364}, - dictWord{7, 11, 516}, - dictWord{7, 11, 1439}, - dictWord{137, 11, 518}, - dictWord{135, 0, 1912}, - dictWord{135, 0, 1290}, - dictWord{132, 0, 686}, - dictWord{141, 11, 151}, - dictWord{138, 0, 625}, - dictWord{136, 0, 706}, - dictWord{ - 138, - 10, - 568, - }, - dictWord{139, 0, 412}, - dictWord{4, 0, 30}, - dictWord{133, 0, 43}, - dictWord{8, 10, 67}, - dictWord{138, 10, 419}, - dictWord{7, 0, 967}, - dictWord{ - 141, - 0, - 11, - }, - dictWord{12, 0, 758}, - dictWord{14, 0, 441}, - dictWord{142, 0, 462}, - dictWord{10, 10, 657}, - dictWord{14, 10, 297}, - dictWord{142, 10, 361}, - dictWord{ - 139, - 10, - 729, - }, - dictWord{4, 0, 220}, - dictWord{135, 0, 1535}, - dictWord{7, 11, 501}, - dictWord{9, 11, 111}, - dictWord{10, 11, 141}, - dictWord{11, 11, 332}, - dictWord{ - 13, - 11, - 43, - }, - dictWord{13, 11, 429}, - dictWord{14, 11, 130}, - dictWord{14, 11, 415}, - dictWord{145, 11, 102}, - dictWord{4, 0, 950}, - dictWord{6, 0, 1859}, - dictWord{ - 7, - 0, - 11, - }, - dictWord{8, 0, 873}, - dictWord{12, 0, 710}, - dictWord{12, 0, 718}, - dictWord{12, 0, 748}, - dictWord{12, 0, 765}, - dictWord{148, 0, 124}, - dictWord{ - 5, - 11, - 149, - }, - dictWord{5, 11, 935}, - dictWord{136, 11, 233}, - dictWord{142, 11, 291}, - dictWord{134, 0, 1579}, - dictWord{7, 0, 890}, - dictWord{8, 10, 51}, - dictWord{ - 9, - 10, - 868, - }, - dictWord{10, 10, 833}, - dictWord{12, 10, 481}, - dictWord{12, 10, 570}, - dictWord{148, 10, 106}, - dictWord{141, 0, 2}, - dictWord{132, 10, 445}, - dictWord{136, 11, 801}, - dictWord{135, 0, 1774}, - dictWord{7, 0, 1725}, - dictWord{138, 0, 393}, - dictWord{5, 0, 263}, - dictWord{134, 0, 414}, - dictWord{ - 132, - 11, - 322, - }, - dictWord{133, 10, 239}, - dictWord{7, 0, 456}, - dictWord{7, 10, 1990}, - dictWord{8, 10, 130}, - dictWord{139, 10, 720}, - dictWord{137, 0, 818}, - dictWord{ - 5, - 10, - 123, - }, - dictWord{6, 10, 530}, - dictWord{7, 10, 348}, - dictWord{135, 10, 1419}, - dictWord{135, 10, 2024}, - dictWord{6, 0, 178}, - dictWord{6, 0, 1750}, - dictWord{8, 0, 251}, - dictWord{9, 0, 690}, - dictWord{10, 0, 155}, - dictWord{10, 0, 196}, - dictWord{10, 0, 373}, - dictWord{11, 0, 698}, - dictWord{13, 0, 155}, - dictWord{ - 148, - 0, - 93, - }, - dictWord{5, 0, 97}, - dictWord{137, 0, 393}, - dictWord{134, 0, 674}, - dictWord{11, 0, 223}, - dictWord{140, 0, 168}, - dictWord{132, 10, 210}, - dictWord{ - 139, - 11, - 464, - }, - dictWord{6, 0, 1639}, - dictWord{146, 0, 159}, - dictWord{139, 11, 2}, - dictWord{7, 0, 934}, - dictWord{8, 0, 647}, - dictWord{17, 0, 97}, - dictWord{19, 0, 59}, - dictWord{150, 0, 2}, - dictWord{132, 0, 191}, - dictWord{5, 0, 165}, - dictWord{9, 0, 346}, - dictWord{10, 0, 655}, - dictWord{11, 0, 885}, - dictWord{4, 10, 430}, - dictWord{135, 11, 357}, - dictWord{133, 0, 877}, - dictWord{5, 10, 213}, - dictWord{133, 11, 406}, - dictWord{8, 0, 128}, - dictWord{139, 0, 179}, - dictWord{6, 11, 69}, - dictWord{135, 11, 117}, - dictWord{135, 0, 1297}, - dictWord{11, 11, 43}, - dictWord{13, 11, 72}, - dictWord{141, 11, 142}, - dictWord{135, 11, 1830}, - dictWord{ - 142, - 0, - 164, - }, - dictWord{5, 0, 57}, - dictWord{6, 0, 101}, - dictWord{6, 0, 586}, - dictWord{6, 0, 1663}, - dictWord{7, 0, 132}, - dictWord{7, 0, 1154}, - dictWord{7, 0, 1415}, - dictWord{7, 0, 1507}, - dictWord{12, 0, 493}, - dictWord{15, 0, 105}, - dictWord{151, 0, 15}, - dictWord{5, 0, 459}, - dictWord{7, 0, 1073}, - dictWord{8, 0, 241}, - dictWord{ - 136, - 0, - 334, - }, - dictWord{133, 11, 826}, - dictWord{133, 10, 108}, - dictWord{5, 10, 219}, - dictWord{10, 11, 132}, - dictWord{11, 11, 191}, - dictWord{11, 11, 358}, - dictWord{139, 11, 460}, - dictWord{6, 0, 324}, - dictWord{6, 0, 520}, - dictWord{7, 0, 338}, - dictWord{7, 0, 1729}, - dictWord{8, 0, 228}, - dictWord{139, 0, 750}, - dictWord{ - 21, - 0, - 30, - }, - dictWord{22, 0, 53}, - dictWord{4, 10, 193}, - dictWord{5, 10, 916}, - dictWord{7, 10, 364}, - dictWord{10, 10, 398}, - dictWord{10, 10, 726}, - dictWord{ - 11, - 10, - 317, - }, - dictWord{11, 10, 626}, - dictWord{12, 10, 142}, - dictWord{12, 10, 288}, - dictWord{12, 10, 678}, - dictWord{13, 10, 313}, - dictWord{15, 10, 113}, - dictWord{146, 10, 114}, - dictWord{6, 11, 110}, - dictWord{135, 11, 1681}, - dictWord{135, 0, 910}, - dictWord{6, 10, 241}, - dictWord{7, 10, 907}, - dictWord{8, 10, 832}, - dictWord{9, 10, 342}, - dictWord{10, 10, 729}, - dictWord{11, 10, 284}, - dictWord{11, 10, 445}, - dictWord{11, 10, 651}, - dictWord{11, 10, 863}, - dictWord{ - 13, - 10, - 398, - }, - dictWord{146, 10, 99}, - dictWord{7, 0, 705}, - dictWord{9, 0, 734}, - dictWord{5, 11, 1000}, - dictWord{7, 11, 733}, - dictWord{137, 11, 583}, - dictWord{4, 0, 73}, - dictWord{6, 0, 612}, - dictWord{7, 0, 927}, - dictWord{7, 0, 1822}, - dictWord{8, 0, 217}, - dictWord{9, 0, 765}, - dictWord{9, 0, 766}, - dictWord{10, 0, 408}, - dictWord{ - 11, - 0, - 51, - }, - dictWord{11, 0, 793}, - dictWord{12, 0, 266}, - dictWord{15, 0, 158}, - dictWord{20, 0, 89}, - dictWord{150, 0, 32}, - dictWord{7, 0, 1330}, - dictWord{4, 11, 297}, - dictWord{6, 11, 529}, - dictWord{7, 11, 152}, - dictWord{7, 11, 713}, - dictWord{7, 11, 1845}, - dictWord{8, 11, 710}, - dictWord{8, 11, 717}, - dictWord{140, 11, 639}, - dictWord{5, 0, 389}, - dictWord{136, 0, 636}, - dictWord{134, 0, 1409}, - dictWord{4, 10, 562}, - dictWord{9, 10, 254}, - dictWord{139, 10, 879}, - dictWord{134, 0, 893}, - dictWord{132, 10, 786}, - dictWord{4, 11, 520}, - dictWord{135, 11, 575}, - dictWord{136, 0, 21}, - dictWord{140, 0, 721}, - dictWord{136, 0, 959}, - dictWord{ - 7, - 11, - 1428, - }, - dictWord{7, 11, 1640}, - dictWord{9, 11, 169}, - dictWord{9, 11, 182}, - dictWord{9, 11, 367}, - dictWord{9, 11, 478}, - dictWord{9, 11, 506}, - dictWord{ - 9, - 11, - 551, - }, - dictWord{9, 11, 648}, - dictWord{9, 11, 651}, - dictWord{9, 11, 697}, - dictWord{9, 11, 705}, - dictWord{9, 11, 725}, - dictWord{9, 11, 787}, - dictWord{9, 11, 794}, - dictWord{10, 11, 198}, - dictWord{10, 11, 214}, - dictWord{10, 11, 267}, - dictWord{10, 11, 275}, - dictWord{10, 11, 456}, - dictWord{10, 11, 551}, - dictWord{ - 10, - 11, - 561, - }, - dictWord{10, 11, 613}, - dictWord{10, 11, 627}, - dictWord{10, 11, 668}, - dictWord{10, 11, 675}, - dictWord{10, 11, 691}, - dictWord{10, 11, 695}, - dictWord{10, 11, 707}, - dictWord{10, 11, 715}, - dictWord{11, 11, 183}, - dictWord{11, 11, 201}, - dictWord{11, 11, 244}, - dictWord{11, 11, 262}, - dictWord{ - 11, - 11, - 352, - }, - dictWord{11, 11, 439}, - dictWord{11, 11, 493}, - dictWord{11, 11, 572}, - dictWord{11, 11, 591}, - dictWord{11, 11, 608}, - dictWord{11, 11, 611}, - dictWord{ - 11, - 11, - 646, - }, - dictWord{11, 11, 674}, - dictWord{11, 11, 711}, - dictWord{11, 11, 751}, - dictWord{11, 11, 761}, - dictWord{11, 11, 776}, - dictWord{11, 11, 785}, - dictWord{11, 11, 850}, - dictWord{11, 11, 853}, - dictWord{11, 11, 862}, - dictWord{11, 11, 865}, - dictWord{11, 11, 868}, - dictWord{11, 11, 898}, - dictWord{ - 11, - 11, - 902, - }, - dictWord{11, 11, 903}, - dictWord{11, 11, 910}, - dictWord{11, 11, 932}, - dictWord{11, 11, 942}, - dictWord{11, 11, 957}, - dictWord{11, 11, 967}, - dictWord{ - 11, - 11, - 972, - }, - dictWord{12, 11, 148}, - dictWord{12, 11, 195}, - dictWord{12, 11, 220}, - dictWord{12, 11, 237}, - dictWord{12, 11, 318}, - dictWord{12, 11, 339}, - dictWord{12, 11, 393}, - dictWord{12, 11, 445}, - dictWord{12, 11, 450}, - dictWord{12, 11, 474}, - dictWord{12, 11, 509}, - dictWord{12, 11, 533}, - dictWord{ - 12, - 11, - 591, - }, - dictWord{12, 11, 594}, - dictWord{12, 11, 597}, - dictWord{12, 11, 621}, - dictWord{12, 11, 633}, - dictWord{12, 11, 642}, - dictWord{13, 11, 59}, - dictWord{ - 13, - 11, - 60, - }, - dictWord{13, 11, 145}, - dictWord{13, 11, 239}, - dictWord{13, 11, 250}, - dictWord{13, 11, 273}, - dictWord{13, 11, 329}, - dictWord{13, 11, 344}, - dictWord{13, 11, 365}, - dictWord{13, 11, 372}, - dictWord{13, 11, 387}, - dictWord{13, 11, 403}, - dictWord{13, 11, 414}, - dictWord{13, 11, 456}, - dictWord{ - 13, - 11, - 478, - }, - dictWord{13, 11, 483}, - dictWord{13, 11, 489}, - dictWord{14, 11, 55}, - dictWord{14, 11, 57}, - dictWord{14, 11, 81}, - dictWord{14, 11, 90}, - dictWord{ - 14, - 11, - 148, - }, - dictWord{14, 11, 239}, - dictWord{14, 11, 266}, - dictWord{14, 11, 321}, - dictWord{14, 11, 326}, - dictWord{14, 11, 327}, - dictWord{14, 11, 330}, - dictWord{ - 14, - 11, - 347, - }, - dictWord{14, 11, 355}, - dictWord{14, 11, 401}, - dictWord{14, 11, 411}, - dictWord{14, 11, 414}, - dictWord{14, 11, 416}, - dictWord{14, 11, 420}, - dictWord{15, 11, 61}, - dictWord{15, 11, 74}, - dictWord{15, 11, 87}, - dictWord{15, 11, 88}, - dictWord{15, 11, 94}, - dictWord{15, 11, 96}, - dictWord{15, 11, 116}, - dictWord{15, 11, 149}, - dictWord{15, 11, 154}, - dictWord{16, 11, 50}, - dictWord{16, 11, 63}, - dictWord{16, 11, 73}, - dictWord{17, 11, 2}, - dictWord{17, 11, 66}, - dictWord{ - 17, - 11, - 92, - }, - dictWord{17, 11, 103}, - dictWord{17, 11, 112}, - dictWord{18, 11, 50}, - dictWord{18, 11, 54}, - dictWord{18, 11, 82}, - dictWord{18, 11, 86}, - dictWord{ - 18, - 11, - 90, - }, - dictWord{18, 11, 111}, - dictWord{18, 11, 115}, - dictWord{18, 11, 156}, - dictWord{19, 11, 40}, - dictWord{19, 11, 79}, - dictWord{20, 11, 78}, - dictWord{ - 149, - 11, - 22, - }, - dictWord{137, 11, 170}, - dictWord{134, 0, 1433}, - dictWord{135, 11, 1307}, - dictWord{139, 11, 411}, - dictWord{5, 0, 189}, - dictWord{7, 0, 442}, - dictWord{7, 0, 443}, - dictWord{8, 0, 281}, - dictWord{12, 0, 174}, - dictWord{141, 0, 261}, - dictWord{6, 10, 216}, - dictWord{7, 10, 901}, - dictWord{7, 10, 1343}, - dictWord{136, 10, 493}, - dictWord{5, 11, 397}, - dictWord{6, 11, 154}, - dictWord{7, 10, 341}, - dictWord{7, 11, 676}, - dictWord{8, 11, 443}, - dictWord{8, 11, 609}, - dictWord{ - 9, - 11, - 24, - }, - dictWord{9, 11, 325}, - dictWord{10, 11, 35}, - dictWord{11, 10, 219}, - dictWord{11, 11, 535}, - dictWord{11, 11, 672}, - dictWord{11, 11, 1018}, - dictWord{12, 11, 637}, - dictWord{144, 11, 30}, - dictWord{6, 0, 2}, - dictWord{7, 0, 191}, - dictWord{7, 0, 446}, - dictWord{7, 0, 1262}, - dictWord{7, 0, 1737}, - dictWord{8, 0, 22}, - dictWord{8, 0, 270}, - dictWord{8, 0, 612}, - dictWord{9, 0, 4}, - dictWord{9, 0, 312}, - dictWord{9, 0, 436}, - dictWord{9, 0, 626}, - dictWord{10, 0, 216}, - dictWord{10, 0, 311}, - dictWord{10, 0, 521}, - dictWord{10, 0, 623}, - dictWord{11, 0, 72}, - dictWord{11, 0, 330}, - dictWord{11, 0, 455}, - dictWord{12, 0, 321}, - dictWord{12, 0, 504}, - dictWord{12, 0, 530}, - dictWord{12, 0, 543}, - dictWord{13, 0, 17}, - dictWord{13, 0, 156}, - dictWord{13, 0, 334}, - dictWord{14, 0, 131}, - dictWord{17, 0, 60}, - dictWord{ - 148, - 0, - 64, - }, - dictWord{7, 0, 354}, - dictWord{10, 0, 410}, - dictWord{139, 0, 815}, - dictWord{139, 10, 130}, - dictWord{7, 10, 1734}, - dictWord{137, 11, 631}, - dictWord{ - 12, - 0, - 425, - }, - dictWord{15, 0, 112}, - dictWord{10, 10, 115}, - dictWord{11, 10, 420}, - dictWord{13, 10, 404}, - dictWord{14, 10, 346}, - dictWord{143, 10, 54}, - dictWord{ - 6, - 0, - 60, - }, - dictWord{6, 0, 166}, - dictWord{7, 0, 374}, - dictWord{7, 0, 670}, - dictWord{7, 0, 1327}, - dictWord{8, 0, 411}, - dictWord{8, 0, 435}, - dictWord{9, 0, 653}, - dictWord{ - 9, - 0, - 740, - }, - dictWord{10, 0, 385}, - dictWord{11, 0, 222}, - dictWord{11, 0, 324}, - dictWord{11, 0, 829}, - dictWord{140, 0, 611}, - dictWord{7, 0, 1611}, - dictWord{ - 13, - 0, - 14, - }, - dictWord{15, 0, 44}, - dictWord{19, 0, 13}, - dictWord{148, 0, 76}, - dictWord{133, 11, 981}, - dictWord{4, 11, 56}, - dictWord{7, 11, 1791}, - dictWord{8, 11, 607}, - dictWord{8, 11, 651}, - dictWord{11, 11, 465}, - dictWord{11, 11, 835}, - dictWord{12, 11, 337}, - dictWord{141, 11, 480}, - dictWord{6, 0, 1478}, - dictWord{ - 5, - 10, - 1011, - }, - dictWord{136, 10, 701}, - dictWord{139, 0, 596}, - dictWord{5, 0, 206}, - dictWord{134, 0, 398}, - dictWord{4, 10, 54}, - dictWord{5, 10, 666}, - dictWord{ - 7, - 10, - 1039, - }, - dictWord{7, 10, 1130}, - dictWord{9, 10, 195}, - dictWord{138, 10, 302}, - dictWord{7, 0, 50}, - dictWord{9, 11, 158}, - dictWord{138, 11, 411}, - dictWord{ - 135, - 11, - 1120, - }, - dictWord{6, 0, 517}, - dictWord{7, 0, 1159}, - dictWord{10, 0, 621}, - dictWord{11, 0, 192}, - dictWord{134, 10, 1669}, - dictWord{4, 0, 592}, - dictWord{ - 6, - 0, - 600, - }, - dictWord{135, 0, 1653}, - dictWord{10, 0, 223}, - dictWord{139, 0, 645}, - dictWord{136, 11, 139}, - dictWord{7, 0, 64}, - dictWord{136, 0, 245}, - dictWord{ - 142, - 0, - 278, - }, - dictWord{6, 11, 622}, - dictWord{135, 11, 1030}, - dictWord{136, 0, 604}, - dictWord{134, 0, 1502}, - dictWord{138, 0, 265}, - dictWord{ - 141, - 11, - 168, - }, - dictWord{7, 0, 1763}, - dictWord{140, 0, 310}, - dictWord{7, 10, 798}, - dictWord{139, 11, 719}, - dictWord{7, 11, 160}, - dictWord{10, 11, 624}, - dictWord{ - 142, - 11, - 279, - }, - dictWord{132, 11, 363}, - dictWord{7, 10, 122}, - dictWord{9, 10, 259}, - dictWord{10, 10, 84}, - dictWord{11, 10, 470}, - dictWord{12, 10, 541}, - dictWord{141, 10, 379}, - dictWord{5, 0, 129}, - dictWord{6, 0, 61}, - dictWord{135, 0, 947}, - dictWord{134, 0, 1356}, - dictWord{135, 11, 1191}, - dictWord{13, 0, 505}, - dictWord{141, 0, 506}, - dictWord{11, 0, 1000}, - dictWord{5, 10, 82}, - dictWord{5, 10, 131}, - dictWord{7, 10, 1755}, - dictWord{8, 10, 31}, - dictWord{9, 10, 168}, - dictWord{9, 10, 764}, - dictWord{139, 10, 869}, - dictWord{134, 0, 966}, - dictWord{134, 10, 605}, - dictWord{134, 11, 292}, - dictWord{5, 11, 177}, - dictWord{ - 6, - 11, - 616, - }, - dictWord{7, 11, 827}, - dictWord{9, 11, 525}, - dictWord{138, 11, 656}, - dictWord{135, 11, 1486}, - dictWord{138, 11, 31}, - dictWord{5, 10, 278}, - dictWord{137, 10, 68}, - dictWord{4, 10, 163}, - dictWord{5, 10, 201}, - dictWord{5, 10, 307}, - dictWord{5, 10, 310}, - dictWord{6, 10, 335}, - dictWord{7, 10, 284}, - dictWord{136, 10, 165}, - dictWord{6, 0, 839}, - dictWord{135, 10, 1660}, - dictWord{136, 10, 781}, - dictWord{6, 10, 33}, - dictWord{135, 10, 1244}, - dictWord{ - 133, - 0, - 637, - }, - dictWord{4, 11, 161}, - dictWord{133, 11, 631}, - dictWord{137, 0, 590}, - dictWord{7, 10, 1953}, - dictWord{136, 10, 720}, - dictWord{5, 0, 280}, - dictWord{ - 7, - 0, - 1226, - }, - dictWord{138, 10, 203}, - dictWord{134, 0, 1386}, - dictWord{5, 0, 281}, - dictWord{6, 0, 1026}, - dictWord{6, 10, 326}, - dictWord{7, 10, 677}, - dictWord{ - 137, - 10, - 425, - }, - dictWord{7, 11, 1557}, - dictWord{135, 11, 1684}, - dictWord{135, 0, 1064}, - dictWord{9, 11, 469}, - dictWord{9, 11, 709}, - dictWord{12, 11, 512}, - dictWord{14, 11, 65}, - dictWord{145, 11, 12}, - dictWord{134, 0, 917}, - dictWord{10, 11, 229}, - dictWord{11, 11, 73}, - dictWord{11, 11, 376}, - dictWord{ - 139, - 11, - 433, - }, - dictWord{7, 0, 555}, - dictWord{9, 0, 192}, - dictWord{13, 0, 30}, - dictWord{13, 0, 49}, - dictWord{15, 0, 150}, - dictWord{16, 0, 76}, - dictWord{20, 0, 52}, - dictWord{ - 7, - 10, - 1316, - }, - dictWord{7, 10, 1412}, - dictWord{7, 10, 1839}, - dictWord{9, 10, 589}, - dictWord{11, 10, 241}, - dictWord{11, 10, 676}, - dictWord{11, 10, 811}, - dictWord{11, 10, 891}, - dictWord{12, 10, 140}, - dictWord{12, 10, 346}, - dictWord{12, 10, 479}, - dictWord{13, 10, 381}, - dictWord{14, 10, 188}, - dictWord{ - 146, - 10, - 30, - }, - dictWord{149, 0, 15}, - dictWord{6, 0, 1882}, - dictWord{6, 0, 1883}, - dictWord{6, 0, 1897}, - dictWord{9, 0, 945}, - dictWord{9, 0, 1014}, - dictWord{9, 0, 1020}, - dictWord{12, 0, 823}, - dictWord{12, 0, 842}, - dictWord{12, 0, 866}, - dictWord{12, 0, 934}, - dictWord{15, 0, 242}, - dictWord{146, 0, 208}, - dictWord{6, 0, 965}, - dictWord{134, 0, 1499}, - dictWord{7, 0, 33}, - dictWord{7, 0, 120}, - dictWord{8, 0, 489}, - dictWord{9, 0, 319}, - dictWord{10, 0, 820}, - dictWord{11, 0, 1004}, - dictWord{ - 12, - 0, - 379, - }, - dictWord{12, 0, 679}, - dictWord{13, 0, 117}, - dictWord{13, 0, 412}, - dictWord{14, 0, 25}, - dictWord{15, 0, 52}, - dictWord{15, 0, 161}, - dictWord{16, 0, 47}, - dictWord{149, 0, 2}, - dictWord{6, 11, 558}, - dictWord{7, 11, 651}, - dictWord{8, 11, 421}, - dictWord{9, 11, 0}, - dictWord{138, 11, 34}, - dictWord{4, 0, 937}, - dictWord{ - 5, - 0, - 801, - }, - dictWord{7, 0, 473}, - dictWord{5, 10, 358}, - dictWord{7, 10, 1184}, - dictWord{10, 10, 662}, - dictWord{13, 10, 212}, - dictWord{13, 10, 304}, - dictWord{ - 13, - 10, - 333, - }, - dictWord{145, 10, 98}, - dictWord{132, 0, 877}, - dictWord{6, 0, 693}, - dictWord{134, 0, 824}, - dictWord{132, 0, 365}, - dictWord{7, 11, 1832}, - dictWord{ - 138, - 11, - 374, - }, - dictWord{5, 0, 7}, - dictWord{139, 0, 774}, - dictWord{4, 0, 734}, - dictWord{5, 0, 662}, - dictWord{134, 0, 430}, - dictWord{4, 0, 746}, - dictWord{ - 135, - 0, - 1090, - }, - dictWord{5, 0, 360}, - dictWord{8, 0, 237}, - dictWord{10, 0, 231}, - dictWord{147, 0, 124}, - dictWord{138, 11, 348}, - dictWord{6, 11, 6}, - dictWord{7, 11, 81}, - dictWord{7, 11, 771}, - dictWord{7, 11, 1731}, - dictWord{9, 11, 405}, - dictWord{138, 11, 421}, - dictWord{6, 0, 740}, - dictWord{137, 0, 822}, - dictWord{ - 133, - 10, - 946, - }, - dictWord{7, 0, 1485}, - dictWord{136, 0, 929}, - dictWord{7, 10, 411}, - dictWord{8, 10, 631}, - dictWord{9, 10, 323}, - dictWord{10, 10, 355}, - dictWord{ - 11, - 10, - 491, - }, - dictWord{12, 10, 143}, - dictWord{12, 10, 402}, - dictWord{13, 10, 73}, - dictWord{14, 10, 408}, - dictWord{15, 10, 107}, - dictWord{146, 10, 71}, - dictWord{ - 135, - 10, - 590, - }, - dictWord{5, 11, 881}, - dictWord{133, 11, 885}, - dictWord{150, 11, 25}, - dictWord{4, 0, 852}, - dictWord{5, 11, 142}, - dictWord{134, 11, 546}, - dictWord{7, 10, 1467}, - dictWord{8, 10, 328}, - dictWord{10, 10, 544}, - dictWord{11, 10, 955}, - dictWord{13, 10, 320}, - dictWord{145, 10, 83}, - dictWord{9, 0, 17}, - dictWord{10, 0, 291}, - dictWord{11, 10, 511}, - dictWord{13, 10, 394}, - dictWord{14, 10, 298}, - dictWord{14, 10, 318}, - dictWord{146, 10, 103}, - dictWord{5, 11, 466}, - dictWord{11, 11, 571}, - dictWord{12, 11, 198}, - dictWord{13, 11, 283}, - dictWord{14, 11, 186}, - dictWord{15, 11, 21}, - dictWord{143, 11, 103}, - dictWord{ - 134, - 0, - 1001, - }, - dictWord{4, 11, 185}, - dictWord{5, 11, 257}, - dictWord{5, 11, 839}, - dictWord{5, 11, 936}, - dictWord{7, 11, 171}, - dictWord{9, 11, 399}, - dictWord{ - 10, - 11, - 258, - }, - dictWord{10, 11, 395}, - dictWord{10, 11, 734}, - dictWord{11, 11, 1014}, - dictWord{12, 11, 23}, - dictWord{13, 11, 350}, - dictWord{14, 11, 150}, - dictWord{147, 11, 6}, - dictWord{143, 0, 35}, - dictWord{132, 0, 831}, - dictWord{5, 10, 835}, - dictWord{134, 10, 483}, - dictWord{4, 0, 277}, - dictWord{5, 0, 608}, - dictWord{ - 6, - 0, - 493, - }, - dictWord{7, 0, 457}, - dictWord{12, 0, 384}, - dictWord{7, 11, 404}, - dictWord{7, 11, 1377}, - dictWord{7, 11, 1430}, - dictWord{7, 11, 2017}, - dictWord{ - 8, - 11, - 149, - }, - dictWord{8, 11, 239}, - dictWord{8, 11, 512}, - dictWord{8, 11, 793}, - dictWord{8, 11, 818}, - dictWord{9, 11, 474}, - dictWord{9, 11, 595}, - dictWord{ - 10, - 11, - 122, - }, - dictWord{10, 11, 565}, - dictWord{10, 11, 649}, - dictWord{10, 11, 783}, - dictWord{11, 11, 239}, - dictWord{11, 11, 295}, - dictWord{11, 11, 447}, - dictWord{ - 11, - 11, - 528, - }, - dictWord{11, 11, 639}, - dictWord{11, 11, 800}, - dictWord{11, 11, 936}, - dictWord{12, 11, 25}, - dictWord{12, 11, 73}, - dictWord{12, 11, 77}, - dictWord{12, 11, 157}, - dictWord{12, 11, 316}, - dictWord{12, 11, 390}, - dictWord{12, 11, 391}, - dictWord{12, 11, 394}, - dictWord{12, 11, 395}, - dictWord{ - 12, - 11, - 478, - }, - dictWord{12, 11, 503}, - dictWord{12, 11, 592}, - dictWord{12, 11, 680}, - dictWord{13, 11, 50}, - dictWord{13, 11, 53}, - dictWord{13, 11, 132}, - dictWord{ - 13, - 11, - 198, - }, - dictWord{13, 11, 275}, - dictWord{13, 11, 322}, - dictWord{13, 11, 415}, - dictWord{14, 11, 71}, - dictWord{14, 11, 257}, - dictWord{14, 11, 395}, - dictWord{15, 11, 71}, - dictWord{15, 11, 136}, - dictWord{17, 11, 123}, - dictWord{18, 11, 93}, - dictWord{147, 11, 58}, - dictWord{134, 0, 1351}, - dictWord{7, 0, 27}, - dictWord{135, 0, 316}, - dictWord{136, 11, 712}, - dictWord{136, 0, 984}, - dictWord{133, 0, 552}, - dictWord{137, 0, 264}, - dictWord{132, 0, 401}, - dictWord{6, 0, 710}, - dictWord{6, 0, 1111}, - dictWord{134, 0, 1343}, - dictWord{134, 0, 1211}, - dictWord{9, 0, 543}, - dictWord{10, 0, 524}, - dictWord{11, 0, 108}, - dictWord{11, 0, 653}, - dictWord{12, 0, 524}, - dictWord{13, 0, 123}, - dictWord{14, 0, 252}, - dictWord{16, 0, 18}, - dictWord{19, 0, 38}, - dictWord{20, 0, 26}, - dictWord{20, 0, 65}, - dictWord{ - 21, - 0, - 3, - }, - dictWord{151, 0, 11}, - dictWord{4, 0, 205}, - dictWord{5, 0, 623}, - dictWord{7, 0, 104}, - dictWord{8, 0, 519}, - dictWord{137, 0, 716}, - dictWord{132, 10, 677}, - dictWord{4, 11, 377}, - dictWord{152, 11, 13}, - dictWord{135, 11, 1673}, - dictWord{7, 0, 579}, - dictWord{9, 0, 41}, - dictWord{9, 0, 244}, - dictWord{9, 0, 669}, - dictWord{ - 10, - 0, - 5, - }, - dictWord{11, 0, 861}, - dictWord{11, 0, 951}, - dictWord{139, 0, 980}, - dictWord{132, 0, 717}, - dictWord{136, 0, 1011}, - dictWord{132, 0, 805}, - dictWord{ - 4, - 11, - 180, - }, - dictWord{135, 11, 1906}, - dictWord{132, 10, 777}, - dictWord{132, 10, 331}, - dictWord{132, 0, 489}, - dictWord{6, 0, 1024}, - dictWord{4, 11, 491}, - dictWord{133, 10, 747}, - dictWord{135, 11, 1182}, - dictWord{4, 11, 171}, - dictWord{138, 11, 234}, - dictWord{4, 11, 586}, - dictWord{7, 11, 1186}, - dictWord{ - 138, - 11, - 631, - }, - dictWord{135, 0, 892}, - dictWord{135, 11, 336}, - dictWord{9, 11, 931}, - dictWord{10, 11, 334}, - dictWord{148, 11, 71}, - dictWord{137, 0, 473}, - dictWord{6, 0, 864}, - dictWord{12, 0, 659}, - dictWord{139, 11, 926}, - dictWord{7, 0, 819}, - dictWord{9, 0, 26}, - dictWord{9, 0, 392}, - dictWord{10, 0, 152}, - dictWord{ - 10, - 0, - 226, - }, - dictWord{11, 0, 19}, - dictWord{12, 0, 276}, - dictWord{12, 0, 426}, - dictWord{12, 0, 589}, - dictWord{13, 0, 460}, - dictWord{15, 0, 97}, - dictWord{19, 0, 48}, - dictWord{148, 0, 104}, - dictWord{135, 0, 51}, - dictWord{133, 10, 326}, - dictWord{4, 10, 691}, - dictWord{146, 10, 16}, - dictWord{9, 0, 130}, - dictWord{11, 0, 765}, - dictWord{10, 10, 680}, - dictWord{10, 10, 793}, - dictWord{141, 10, 357}, - dictWord{133, 11, 765}, - dictWord{8, 0, 229}, - dictWord{6, 10, 32}, - dictWord{7, 10, 385}, - dictWord{7, 10, 757}, - dictWord{7, 10, 1916}, - dictWord{8, 10, 94}, - dictWord{8, 10, 711}, - dictWord{9, 10, 541}, - dictWord{10, 10, 162}, - dictWord{10, 10, 795}, - dictWord{11, 10, 989}, - dictWord{11, 10, 1010}, - dictWord{12, 10, 14}, - dictWord{142, 10, 308}, - dictWord{7, 11, 474}, - dictWord{137, 11, 578}, - dictWord{ - 132, - 0, - 674, - }, - dictWord{132, 0, 770}, - dictWord{5, 0, 79}, - dictWord{7, 0, 1027}, - dictWord{7, 0, 1477}, - dictWord{139, 0, 52}, - dictWord{133, 11, 424}, - dictWord{ - 134, - 0, - 1666, - }, - dictWord{6, 0, 409}, - dictWord{6, 10, 349}, - dictWord{6, 10, 1682}, - dictWord{7, 10, 1252}, - dictWord{8, 10, 112}, - dictWord{8, 11, 714}, - dictWord{ - 9, - 10, - 435, - }, - dictWord{9, 10, 668}, - dictWord{10, 10, 290}, - dictWord{10, 10, 319}, - dictWord{10, 10, 815}, - dictWord{11, 10, 180}, - dictWord{11, 10, 837}, - dictWord{ - 12, - 10, - 240, - }, - dictWord{13, 10, 152}, - dictWord{13, 10, 219}, - dictWord{142, 10, 158}, - dictWord{5, 0, 789}, - dictWord{134, 0, 195}, - dictWord{4, 0, 251}, - dictWord{ - 4, - 0, - 688, - }, - dictWord{7, 0, 513}, - dictWord{135, 0, 1284}, - dictWord{132, 10, 581}, - dictWord{9, 11, 420}, - dictWord{10, 11, 269}, - dictWord{10, 11, 285}, - dictWord{10, 11, 576}, - dictWord{11, 11, 397}, - dictWord{13, 11, 175}, - dictWord{145, 11, 90}, - dictWord{6, 10, 126}, - dictWord{7, 10, 573}, - dictWord{8, 10, 397}, - dictWord{142, 10, 44}, - dictWord{132, 11, 429}, - dictWord{133, 0, 889}, - dictWord{4, 0, 160}, - dictWord{5, 0, 330}, - dictWord{7, 0, 1434}, - dictWord{136, 0, 174}, - dictWord{7, 11, 18}, - dictWord{7, 11, 699}, - dictWord{7, 11, 1966}, - dictWord{8, 11, 752}, - dictWord{9, 11, 273}, - dictWord{9, 11, 412}, - dictWord{9, 11, 703}, - dictWord{ - 10, - 11, - 71, - }, - dictWord{10, 11, 427}, - dictWord{10, 11, 508}, - dictWord{146, 11, 97}, - dictWord{6, 0, 872}, - dictWord{134, 0, 899}, - dictWord{133, 10, 926}, - dictWord{134, 0, 1126}, - dictWord{134, 0, 918}, - dictWord{4, 11, 53}, - dictWord{5, 11, 186}, - dictWord{135, 11, 752}, - dictWord{7, 0, 268}, - dictWord{136, 0, 569}, - dictWord{134, 0, 1224}, - dictWord{6, 0, 1361}, - dictWord{7, 10, 1232}, - dictWord{137, 10, 531}, - dictWord{8, 11, 575}, - dictWord{10, 11, 289}, - dictWord{ - 139, - 11, - 319, - }, - dictWord{133, 10, 670}, - dictWord{132, 11, 675}, - dictWord{133, 0, 374}, - dictWord{135, 10, 1957}, - dictWord{133, 0, 731}, - dictWord{11, 0, 190}, - dictWord{15, 0, 49}, - dictWord{11, 11, 190}, - dictWord{143, 11, 49}, - dictWord{4, 0, 626}, - dictWord{5, 0, 506}, - dictWord{5, 0, 642}, - dictWord{6, 0, 425}, - dictWord{ - 10, - 0, - 202, - }, - dictWord{139, 0, 141}, - dictWord{137, 0, 444}, - dictWord{7, 10, 242}, - dictWord{135, 10, 1942}, - dictWord{6, 11, 209}, - dictWord{8, 11, 468}, - dictWord{ - 9, - 11, - 210, - }, - dictWord{11, 11, 36}, - dictWord{12, 11, 28}, - dictWord{12, 11, 630}, - dictWord{13, 11, 21}, - dictWord{13, 11, 349}, - dictWord{14, 11, 7}, - dictWord{ - 145, - 11, - 13, - }, - dictWord{4, 11, 342}, - dictWord{135, 11, 1179}, - dictWord{5, 10, 834}, - dictWord{7, 10, 1202}, - dictWord{8, 10, 14}, - dictWord{9, 10, 481}, - dictWord{ - 137, - 10, - 880, - }, - dictWord{4, 11, 928}, - dictWord{133, 11, 910}, - dictWord{4, 11, 318}, - dictWord{4, 11, 496}, - dictWord{7, 11, 856}, - dictWord{139, 11, 654}, - dictWord{136, 0, 835}, - dictWord{7, 0, 1526}, - dictWord{138, 10, 465}, - dictWord{151, 0, 17}, - dictWord{135, 0, 477}, - dictWord{4, 10, 357}, - dictWord{6, 10, 172}, - dictWord{7, 10, 143}, - dictWord{137, 10, 413}, - dictWord{6, 0, 1374}, - dictWord{138, 0, 994}, - dictWord{18, 0, 76}, - dictWord{132, 10, 590}, - dictWord{7, 0, 287}, - dictWord{8, 0, 355}, - dictWord{9, 0, 293}, - dictWord{137, 0, 743}, - dictWord{134, 0, 1389}, - dictWord{7, 11, 915}, - dictWord{8, 11, 247}, - dictWord{147, 11, 0}, - dictWord{ - 4, - 11, - 202, - }, - dictWord{5, 11, 382}, - dictWord{6, 11, 454}, - dictWord{7, 11, 936}, - dictWord{7, 11, 1803}, - dictWord{8, 11, 758}, - dictWord{9, 11, 375}, - dictWord{ - 9, - 11, - 895, - }, - dictWord{10, 11, 743}, - dictWord{10, 11, 792}, - dictWord{11, 11, 978}, - dictWord{11, 11, 1012}, - dictWord{142, 11, 109}, - dictWord{5, 0, 384}, - dictWord{8, 0, 455}, - dictWord{140, 0, 48}, - dictWord{132, 11, 390}, - dictWord{5, 10, 169}, - dictWord{7, 10, 333}, - dictWord{136, 10, 45}, - dictWord{5, 0, 264}, - dictWord{134, 0, 184}, - dictWord{138, 11, 791}, - dictWord{133, 11, 717}, - dictWord{132, 10, 198}, - dictWord{6, 11, 445}, - dictWord{7, 11, 332}, - dictWord{ - 137, - 11, - 909, - }, - dictWord{136, 0, 1001}, - dictWord{4, 10, 24}, - dictWord{5, 10, 140}, - dictWord{5, 10, 185}, - dictWord{7, 10, 1500}, - dictWord{11, 10, 565}, - dictWord{ - 139, - 10, - 838, - }, - dictWord{134, 11, 578}, - dictWord{5, 0, 633}, - dictWord{6, 0, 28}, - dictWord{135, 0, 1323}, - dictWord{132, 0, 851}, - dictWord{136, 11, 267}, - dictWord{ - 7, - 0, - 359, - }, - dictWord{8, 0, 243}, - dictWord{140, 0, 175}, - dictWord{4, 10, 334}, - dictWord{133, 10, 593}, - dictWord{141, 11, 87}, - dictWord{136, 11, 766}, - dictWord{10, 0, 287}, - dictWord{12, 0, 138}, - dictWord{10, 11, 287}, - dictWord{140, 11, 138}, - dictWord{4, 0, 105}, - dictWord{132, 0, 740}, - dictWord{140, 10, 116}, - dictWord{134, 0, 857}, - dictWord{135, 11, 1841}, - dictWord{6, 0, 1402}, - dictWord{137, 0, 819}, - dictWord{132, 11, 584}, - dictWord{132, 10, 709}, - dictWord{ - 133, - 10, - 897, - }, - dictWord{5, 0, 224}, - dictWord{13, 0, 174}, - dictWord{146, 0, 52}, - dictWord{135, 10, 1840}, - dictWord{4, 10, 608}, - dictWord{133, 10, 497}, - dictWord{139, 11, 60}, - dictWord{4, 0, 758}, - dictWord{135, 0, 1649}, - dictWord{4, 11, 226}, - dictWord{4, 11, 326}, - dictWord{135, 11, 1770}, - dictWord{5, 11, 426}, - dictWord{8, 11, 30}, - dictWord{9, 11, 2}, - dictWord{11, 11, 549}, - dictWord{147, 11, 122}, - dictWord{135, 10, 2039}, - dictWord{6, 10, 540}, - dictWord{ - 136, - 10, - 136, - }, - dictWord{4, 0, 573}, - dictWord{8, 0, 655}, - dictWord{4, 10, 897}, - dictWord{133, 10, 786}, - dictWord{7, 0, 351}, - dictWord{139, 0, 128}, - dictWord{ - 133, - 10, - 999, - }, - dictWord{4, 10, 299}, - dictWord{135, 10, 1004}, - dictWord{133, 0, 918}, - dictWord{132, 11, 345}, - dictWord{4, 11, 385}, - dictWord{7, 11, 265}, - dictWord{135, 11, 587}, - dictWord{133, 10, 456}, - dictWord{136, 10, 180}, - dictWord{6, 0, 687}, - dictWord{134, 0, 1537}, - dictWord{4, 11, 347}, - dictWord{ - 5, - 11, - 423, - }, - dictWord{5, 11, 996}, - dictWord{135, 11, 1329}, - dictWord{132, 10, 755}, - dictWord{7, 11, 1259}, - dictWord{9, 11, 125}, - dictWord{11, 11, 65}, - dictWord{140, 11, 285}, - dictWord{5, 11, 136}, - dictWord{6, 11, 136}, - dictWord{136, 11, 644}, - dictWord{134, 0, 1525}, - dictWord{4, 0, 1009}, - dictWord{ - 135, - 0, - 1139, - }, - dictWord{139, 10, 338}, - dictWord{132, 0, 340}, - dictWord{135, 10, 1464}, - dictWord{8, 0, 847}, - dictWord{10, 0, 861}, - dictWord{10, 0, 876}, - dictWord{ - 10, - 0, - 889, - }, - dictWord{10, 0, 922}, - dictWord{10, 0, 929}, - dictWord{10, 0, 933}, - dictWord{12, 0, 784}, - dictWord{140, 0, 791}, - dictWord{139, 0, 176}, - dictWord{ - 9, - 11, - 134, - }, - dictWord{10, 11, 2}, - dictWord{10, 11, 27}, - dictWord{10, 11, 333}, - dictWord{11, 11, 722}, - dictWord{143, 11, 1}, - dictWord{4, 11, 433}, - dictWord{ - 133, - 11, - 719, - }, - dictWord{5, 0, 985}, - dictWord{7, 0, 509}, - dictWord{7, 0, 529}, - dictWord{145, 0, 96}, - dictWord{132, 0, 615}, - dictWord{4, 10, 890}, - dictWord{ - 5, - 10, - 805, - }, - dictWord{5, 10, 819}, - dictWord{5, 10, 961}, - dictWord{6, 10, 396}, - dictWord{6, 10, 1631}, - dictWord{6, 10, 1678}, - dictWord{7, 10, 1967}, - dictWord{ - 7, - 10, - 2041, - }, - dictWord{9, 10, 630}, - dictWord{11, 10, 8}, - dictWord{11, 10, 1019}, - dictWord{12, 10, 176}, - dictWord{13, 10, 225}, - dictWord{14, 10, 292}, - dictWord{ - 149, - 10, - 24, - }, - dictWord{135, 0, 1919}, - dictWord{134, 0, 1131}, - dictWord{144, 11, 21}, - dictWord{144, 11, 51}, - dictWord{135, 10, 1815}, - dictWord{4, 0, 247}, - dictWord{7, 10, 1505}, - dictWord{10, 10, 190}, - dictWord{10, 10, 634}, - dictWord{11, 10, 792}, - dictWord{12, 10, 358}, - dictWord{140, 10, 447}, - dictWord{ - 5, - 10, - 0, - }, - dictWord{6, 10, 536}, - dictWord{7, 10, 604}, - dictWord{13, 10, 445}, - dictWord{145, 10, 126}, - dictWord{4, 0, 184}, - dictWord{5, 0, 390}, - dictWord{6, 0, 337}, - dictWord{7, 0, 23}, - dictWord{7, 0, 494}, - dictWord{7, 0, 618}, - dictWord{7, 0, 1456}, - dictWord{8, 0, 27}, - dictWord{8, 0, 599}, - dictWord{10, 0, 153}, - dictWord{ - 139, - 0, - 710, - }, - dictWord{6, 10, 232}, - dictWord{6, 10, 412}, - dictWord{7, 10, 1074}, - dictWord{8, 10, 9}, - dictWord{8, 10, 157}, - dictWord{8, 10, 786}, - dictWord{9, 10, 196}, - dictWord{9, 10, 352}, - dictWord{9, 10, 457}, - dictWord{10, 10, 337}, - dictWord{11, 10, 232}, - dictWord{11, 10, 877}, - dictWord{12, 10, 480}, - dictWord{ - 140, - 10, - 546, - }, - dictWord{13, 0, 38}, - dictWord{135, 10, 958}, - dictWord{4, 10, 382}, - dictWord{136, 10, 579}, - dictWord{4, 10, 212}, - dictWord{135, 10, 1206}, - dictWord{ - 4, - 11, - 555, - }, - dictWord{8, 11, 536}, - dictWord{138, 11, 288}, - dictWord{11, 11, 139}, - dictWord{139, 11, 171}, - dictWord{9, 11, 370}, - dictWord{138, 11, 90}, - dictWord{132, 0, 1015}, - dictWord{134, 0, 1088}, - dictWord{5, 10, 655}, - dictWord{135, 11, 977}, - dictWord{134, 0, 1585}, - dictWord{17, 10, 67}, - dictWord{ - 147, - 10, - 74, - }, - dictWord{10, 0, 227}, - dictWord{11, 0, 497}, - dictWord{11, 0, 709}, - dictWord{140, 0, 415}, - dictWord{6, 0, 360}, - dictWord{7, 0, 1664}, - dictWord{ - 136, - 0, - 478, - }, - dictWord{7, 0, 95}, - dictWord{6, 10, 231}, - dictWord{136, 10, 423}, - dictWord{140, 11, 65}, - dictWord{4, 11, 257}, - dictWord{135, 11, 2031}, - dictWord{ - 135, - 11, - 1768, - }, - dictWord{133, 10, 300}, - dictWord{139, 11, 211}, - dictWord{136, 0, 699}, - dictWord{6, 10, 237}, - dictWord{7, 10, 611}, - dictWord{8, 10, 100}, - dictWord{9, 10, 416}, - dictWord{11, 10, 335}, - dictWord{12, 10, 173}, - dictWord{146, 10, 101}, - dictWord{14, 0, 26}, - dictWord{146, 0, 150}, - dictWord{6, 0, 581}, - dictWord{135, 0, 1119}, - dictWord{135, 10, 1208}, - dictWord{132, 0, 739}, - dictWord{6, 11, 83}, - dictWord{6, 11, 1733}, - dictWord{135, 11, 1389}, - dictWord{ - 137, - 0, - 869, - }, - dictWord{4, 0, 67}, - dictWord{5, 0, 422}, - dictWord{7, 0, 1037}, - dictWord{7, 0, 1289}, - dictWord{7, 0, 1555}, - dictWord{9, 0, 741}, - dictWord{145, 0, 108}, - dictWord{133, 10, 199}, - dictWord{12, 10, 427}, - dictWord{146, 10, 38}, - dictWord{136, 0, 464}, - dictWord{142, 0, 42}, - dictWord{10, 0, 96}, - dictWord{8, 11, 501}, - dictWord{137, 11, 696}, - dictWord{134, 11, 592}, - dictWord{4, 0, 512}, - dictWord{4, 0, 966}, - dictWord{5, 0, 342}, - dictWord{6, 0, 1855}, - dictWord{8, 0, 869}, - dictWord{8, 0, 875}, - dictWord{8, 0, 901}, - dictWord{144, 0, 26}, - dictWord{8, 0, 203}, - dictWord{11, 0, 823}, - dictWord{11, 0, 846}, - dictWord{12, 0, 482}, - dictWord{ - 13, - 0, - 277, - }, - dictWord{13, 0, 302}, - dictWord{13, 0, 464}, - dictWord{14, 0, 205}, - dictWord{142, 0, 221}, - dictWord{4, 0, 449}, - dictWord{133, 0, 718}, - dictWord{ - 7, - 11, - 1718, - }, - dictWord{9, 11, 95}, - dictWord{9, 11, 274}, - dictWord{10, 11, 279}, - dictWord{10, 11, 317}, - dictWord{10, 11, 420}, - dictWord{11, 11, 303}, - dictWord{ - 11, - 11, - 808, - }, - dictWord{12, 11, 134}, - dictWord{12, 11, 367}, - dictWord{13, 11, 149}, - dictWord{13, 11, 347}, - dictWord{14, 11, 349}, - dictWord{14, 11, 406}, - dictWord{18, 11, 22}, - dictWord{18, 11, 89}, - dictWord{18, 11, 122}, - dictWord{147, 11, 47}, - dictWord{133, 11, 26}, - dictWord{4, 0, 355}, - dictWord{6, 0, 311}, - dictWord{ - 9, - 0, - 256, - }, - dictWord{138, 0, 404}, - dictWord{132, 11, 550}, - dictWord{10, 0, 758}, - dictWord{6, 10, 312}, - dictWord{6, 10, 1715}, - dictWord{10, 10, 584}, - dictWord{11, 10, 546}, - dictWord{11, 10, 692}, - dictWord{12, 10, 259}, - dictWord{12, 10, 295}, - dictWord{13, 10, 46}, - dictWord{141, 10, 154}, - dictWord{ - 136, - 11, - 822, - }, - dictWord{5, 0, 827}, - dictWord{4, 11, 902}, - dictWord{5, 11, 809}, - dictWord{6, 11, 122}, - dictWord{135, 11, 896}, - dictWord{5, 0, 64}, - dictWord{140, 0, 581}, - dictWord{4, 0, 442}, - dictWord{6, 0, 739}, - dictWord{7, 0, 1047}, - dictWord{7, 0, 1352}, - dictWord{7, 0, 1643}, - dictWord{7, 11, 1911}, - dictWord{9, 11, 449}, - dictWord{10, 11, 192}, - dictWord{138, 11, 740}, - dictWord{135, 11, 262}, - dictWord{132, 10, 588}, - dictWord{133, 11, 620}, - dictWord{5, 0, 977}, - dictWord{ - 6, - 0, - 288, - }, - dictWord{7, 0, 528}, - dictWord{4, 11, 34}, - dictWord{5, 11, 574}, - dictWord{7, 11, 279}, - dictWord{7, 11, 1624}, - dictWord{136, 11, 601}, - dictWord{ - 6, - 0, - 1375, - }, - dictWord{4, 10, 231}, - dictWord{5, 10, 61}, - dictWord{6, 10, 104}, - dictWord{7, 10, 729}, - dictWord{7, 10, 964}, - dictWord{7, 10, 1658}, - dictWord{ - 140, - 10, - 414, - }, - dictWord{6, 10, 263}, - dictWord{138, 10, 757}, - dictWord{132, 10, 320}, - dictWord{4, 0, 254}, - dictWord{7, 0, 1309}, - dictWord{5, 11, 332}, - dictWord{ - 135, - 11, - 1309, - }, - dictWord{6, 11, 261}, - dictWord{8, 11, 182}, - dictWord{139, 11, 943}, - dictWord{132, 10, 225}, - dictWord{6, 0, 12}, - dictWord{135, 0, 1219}, - dictWord{4, 0, 275}, - dictWord{12, 0, 376}, - dictWord{6, 11, 1721}, - dictWord{141, 11, 490}, - dictWord{4, 11, 933}, - dictWord{133, 11, 880}, - dictWord{6, 0, 951}, - dictWord{6, 0, 1109}, - dictWord{6, 0, 1181}, - dictWord{7, 0, 154}, - dictWord{4, 10, 405}, - dictWord{7, 10, 817}, - dictWord{14, 10, 58}, - dictWord{17, 10, 37}, - dictWord{ - 146, - 10, - 124, - }, - dictWord{6, 0, 1520}, - dictWord{133, 10, 974}, - dictWord{134, 0, 1753}, - dictWord{6, 0, 369}, - dictWord{6, 0, 502}, - dictWord{7, 0, 1036}, - dictWord{ - 8, - 0, - 348, - }, - dictWord{9, 0, 452}, - dictWord{10, 0, 26}, - dictWord{11, 0, 224}, - dictWord{11, 0, 387}, - dictWord{11, 0, 772}, - dictWord{12, 0, 95}, - dictWord{12, 0, 629}, - dictWord{13, 0, 195}, - dictWord{13, 0, 207}, - dictWord{13, 0, 241}, - dictWord{14, 0, 260}, - dictWord{14, 0, 270}, - dictWord{143, 0, 140}, - dictWord{132, 0, 269}, - dictWord{5, 0, 480}, - dictWord{7, 0, 532}, - dictWord{7, 0, 1197}, - dictWord{7, 0, 1358}, - dictWord{8, 0, 291}, - dictWord{11, 0, 349}, - dictWord{142, 0, 396}, - dictWord{ - 5, - 10, - 235, - }, - dictWord{7, 10, 1239}, - dictWord{11, 10, 131}, - dictWord{140, 10, 370}, - dictWord{7, 10, 956}, - dictWord{7, 10, 1157}, - dictWord{7, 10, 1506}, - dictWord{ - 7, - 10, - 1606, - }, - dictWord{7, 10, 1615}, - dictWord{7, 10, 1619}, - dictWord{7, 10, 1736}, - dictWord{7, 10, 1775}, - dictWord{8, 10, 590}, - dictWord{9, 10, 324}, - dictWord{9, 10, 736}, - dictWord{9, 10, 774}, - dictWord{9, 10, 776}, - dictWord{9, 10, 784}, - dictWord{10, 10, 567}, - dictWord{10, 10, 708}, - dictWord{11, 10, 518}, - dictWord{11, 10, 613}, - dictWord{11, 10, 695}, - dictWord{11, 10, 716}, - dictWord{11, 10, 739}, - dictWord{11, 10, 770}, - dictWord{11, 10, 771}, - dictWord{ - 11, - 10, - 848, - }, - dictWord{11, 10, 857}, - dictWord{11, 10, 931}, - dictWord{11, 10, 947}, - dictWord{12, 10, 326}, - dictWord{12, 10, 387}, - dictWord{12, 10, 484}, - dictWord{ - 12, - 10, - 528, - }, - dictWord{12, 10, 552}, - dictWord{12, 10, 613}, - dictWord{13, 10, 189}, - dictWord{13, 10, 256}, - dictWord{13, 10, 340}, - dictWord{13, 10, 432}, - dictWord{13, 10, 436}, - dictWord{13, 10, 440}, - dictWord{13, 10, 454}, - dictWord{14, 10, 174}, - dictWord{14, 10, 220}, - dictWord{14, 10, 284}, - dictWord{ - 14, - 10, - 390, - }, - dictWord{145, 10, 121}, - dictWord{8, 11, 598}, - dictWord{9, 11, 664}, - dictWord{138, 11, 441}, - dictWord{9, 10, 137}, - dictWord{138, 10, 221}, - dictWord{133, 11, 812}, - dictWord{148, 0, 15}, - dictWord{134, 0, 1341}, - dictWord{6, 0, 1017}, - dictWord{4, 11, 137}, - dictWord{7, 11, 1178}, - dictWord{ - 135, - 11, - 1520, - }, - dictWord{7, 10, 390}, - dictWord{138, 10, 140}, - dictWord{7, 11, 1260}, - dictWord{135, 11, 1790}, - dictWord{137, 11, 191}, - dictWord{ - 135, - 10, - 1144, - }, - dictWord{6, 0, 1810}, - dictWord{7, 0, 657}, - dictWord{8, 0, 886}, - dictWord{10, 0, 857}, - dictWord{14, 0, 440}, - dictWord{144, 0, 96}, - dictWord{8, 0, 533}, - dictWord{6, 11, 1661}, - dictWord{7, 11, 1975}, - dictWord{7, 11, 2009}, - dictWord{135, 11, 2011}, - dictWord{6, 0, 1453}, - dictWord{134, 10, 464}, - dictWord{ - 132, - 11, - 715, - }, - dictWord{5, 10, 407}, - dictWord{11, 10, 204}, - dictWord{11, 10, 243}, - dictWord{11, 10, 489}, - dictWord{12, 10, 293}, - dictWord{19, 10, 37}, - dictWord{20, 10, 73}, - dictWord{150, 10, 38}, - dictWord{133, 11, 703}, - dictWord{4, 0, 211}, - dictWord{7, 0, 1483}, - dictWord{5, 10, 325}, - dictWord{8, 10, 5}, - dictWord{ - 8, - 10, - 227, - }, - dictWord{9, 10, 105}, - dictWord{10, 10, 585}, - dictWord{140, 10, 614}, - dictWord{4, 0, 332}, - dictWord{5, 0, 335}, - dictWord{6, 0, 238}, - dictWord{ - 7, - 0, - 269, - }, - dictWord{7, 0, 811}, - dictWord{7, 0, 1797}, - dictWord{8, 0, 836}, - dictWord{9, 0, 507}, - dictWord{141, 0, 242}, - dictWord{5, 11, 89}, - dictWord{7, 11, 1915}, - dictWord{9, 11, 185}, - dictWord{9, 11, 235}, - dictWord{9, 11, 496}, - dictWord{10, 11, 64}, - dictWord{10, 11, 270}, - dictWord{10, 11, 403}, - dictWord{10, 11, 469}, - dictWord{10, 11, 529}, - dictWord{10, 11, 590}, - dictWord{11, 11, 140}, - dictWord{11, 11, 860}, - dictWord{13, 11, 1}, - dictWord{13, 11, 422}, - dictWord{14, 11, 341}, - dictWord{14, 11, 364}, - dictWord{17, 11, 93}, - dictWord{18, 11, 113}, - dictWord{19, 11, 97}, - dictWord{147, 11, 113}, - dictWord{133, 11, 695}, - dictWord{ - 16, - 0, - 19, - }, - dictWord{5, 11, 6}, - dictWord{6, 11, 183}, - dictWord{6, 10, 621}, - dictWord{7, 11, 680}, - dictWord{7, 11, 978}, - dictWord{7, 11, 1013}, - dictWord{7, 11, 1055}, - dictWord{12, 11, 230}, - dictWord{13, 11, 172}, - dictWord{13, 10, 504}, - dictWord{146, 11, 29}, - dictWord{136, 0, 156}, - dictWord{133, 0, 1009}, - dictWord{ - 6, - 11, - 29, - }, - dictWord{139, 11, 63}, - dictWord{134, 0, 820}, - dictWord{134, 10, 218}, - dictWord{7, 10, 454}, - dictWord{7, 10, 782}, - dictWord{8, 10, 768}, - dictWord{ - 140, - 10, - 686, - }, - dictWord{5, 0, 228}, - dictWord{6, 0, 203}, - dictWord{7, 0, 156}, - dictWord{8, 0, 347}, - dictWord{9, 0, 265}, - dictWord{18, 0, 39}, - dictWord{20, 0, 54}, - dictWord{21, 0, 31}, - dictWord{22, 0, 3}, - dictWord{23, 0, 0}, - dictWord{15, 11, 8}, - dictWord{18, 11, 39}, - dictWord{20, 11, 54}, - dictWord{21, 11, 31}, - dictWord{22, 11, 3}, - dictWord{151, 11, 0}, - dictWord{7, 0, 1131}, - dictWord{135, 0, 1468}, - dictWord{144, 10, 0}, - dictWord{134, 0, 1276}, - dictWord{10, 10, 676}, - dictWord{ - 140, - 10, - 462, - }, - dictWord{132, 11, 311}, - dictWord{134, 11, 1740}, - dictWord{7, 11, 170}, - dictWord{8, 11, 90}, - dictWord{8, 11, 177}, - dictWord{8, 11, 415}, - dictWord{ - 11, - 11, - 714, - }, - dictWord{142, 11, 281}, - dictWord{134, 10, 164}, - dictWord{6, 0, 1792}, - dictWord{138, 0, 849}, - dictWord{150, 10, 50}, - dictWord{5, 0, 291}, - dictWord{5, 0, 318}, - dictWord{7, 0, 765}, - dictWord{9, 0, 389}, - dictWord{12, 0, 548}, - dictWord{8, 11, 522}, - dictWord{142, 11, 328}, - dictWord{11, 11, 91}, - dictWord{ - 13, - 11, - 129, - }, - dictWord{15, 11, 101}, - dictWord{145, 11, 125}, - dictWord{4, 11, 494}, - dictWord{6, 11, 74}, - dictWord{7, 11, 44}, - dictWord{7, 11, 407}, - dictWord{ - 8, - 11, - 551, - }, - dictWord{12, 11, 17}, - dictWord{15, 11, 5}, - dictWord{148, 11, 11}, - dictWord{4, 11, 276}, - dictWord{133, 11, 296}, - dictWord{6, 10, 343}, - dictWord{ - 7, - 10, - 195, - }, - dictWord{7, 11, 1777}, - dictWord{9, 10, 226}, - dictWord{10, 10, 197}, - dictWord{10, 10, 575}, - dictWord{11, 10, 502}, - dictWord{139, 10, 899}, - dictWord{ - 10, - 0, - 525, - }, - dictWord{139, 0, 82}, - dictWord{14, 0, 453}, - dictWord{4, 11, 7}, - dictWord{5, 11, 90}, - dictWord{5, 11, 158}, - dictWord{6, 11, 542}, - dictWord{7, 11, 221}, - dictWord{7, 11, 1574}, - dictWord{9, 11, 490}, - dictWord{10, 11, 540}, - dictWord{11, 11, 443}, - dictWord{139, 11, 757}, - dictWord{135, 0, 666}, - dictWord{ - 22, - 10, - 29, - }, - dictWord{150, 11, 29}, - dictWord{4, 0, 422}, - dictWord{147, 10, 8}, - dictWord{5, 0, 355}, - dictWord{145, 0, 0}, - dictWord{6, 0, 1873}, - dictWord{9, 0, 918}, - dictWord{7, 11, 588}, - dictWord{9, 11, 175}, - dictWord{138, 11, 530}, - dictWord{143, 11, 31}, - dictWord{11, 0, 165}, - dictWord{7, 10, 1125}, - dictWord{9, 10, 143}, - dictWord{14, 10, 405}, - dictWord{150, 10, 21}, - dictWord{9, 0, 260}, - dictWord{137, 0, 905}, - dictWord{5, 11, 872}, - dictWord{6, 11, 57}, - dictWord{6, 11, 479}, - dictWord{ - 6, - 11, - 562, - }, - dictWord{7, 11, 471}, - dictWord{7, 11, 1060}, - dictWord{9, 11, 447}, - dictWord{9, 11, 454}, - dictWord{141, 11, 6}, - dictWord{138, 11, 704}, - dictWord{133, 0, 865}, - dictWord{5, 0, 914}, - dictWord{134, 0, 1625}, - dictWord{133, 0, 234}, - dictWord{7, 0, 1383}, - dictWord{5, 11, 31}, - dictWord{6, 11, 614}, - dictWord{145, 11, 61}, - dictWord{7, 11, 1200}, - dictWord{138, 11, 460}, - dictWord{6, 11, 424}, - dictWord{135, 11, 1866}, - dictWord{136, 0, 306}, - dictWord{ - 5, - 10, - 959, - }, - dictWord{12, 11, 30}, - dictWord{13, 11, 148}, - dictWord{14, 11, 87}, - dictWord{14, 11, 182}, - dictWord{16, 11, 42}, - dictWord{18, 11, 92}, - dictWord{ - 148, - 11, - 70, - }, - dictWord{6, 0, 1919}, - dictWord{6, 0, 1921}, - dictWord{9, 0, 923}, - dictWord{9, 0, 930}, - dictWord{9, 0, 941}, - dictWord{9, 0, 949}, - dictWord{9, 0, 987}, - dictWord{ - 9, - 0, - 988, - }, - dictWord{9, 0, 992}, - dictWord{12, 0, 802}, - dictWord{12, 0, 815}, - dictWord{12, 0, 856}, - dictWord{12, 0, 885}, - dictWord{12, 0, 893}, - dictWord{ - 12, - 0, - 898, - }, - dictWord{12, 0, 919}, - dictWord{12, 0, 920}, - dictWord{12, 0, 941}, - dictWord{12, 0, 947}, - dictWord{15, 0, 183}, - dictWord{15, 0, 185}, - dictWord{15, 0, 189}, - dictWord{15, 0, 197}, - dictWord{15, 0, 202}, - dictWord{15, 0, 233}, - dictWord{18, 0, 218}, - dictWord{18, 0, 219}, - dictWord{18, 0, 233}, - dictWord{143, 11, 156}, - dictWord{135, 10, 1759}, - dictWord{136, 10, 173}, - dictWord{13, 0, 163}, - dictWord{13, 0, 180}, - dictWord{18, 0, 78}, - dictWord{20, 0, 35}, - dictWord{5, 11, 13}, - dictWord{134, 11, 142}, - dictWord{134, 10, 266}, - dictWord{6, 11, 97}, - dictWord{7, 11, 116}, - dictWord{8, 11, 322}, - dictWord{8, 11, 755}, - dictWord{9, 11, 548}, - dictWord{10, 11, 714}, - dictWord{11, 11, 884}, - dictWord{141, 11, 324}, - dictWord{135, 0, 1312}, - dictWord{9, 0, 814}, - dictWord{137, 11, 676}, - dictWord{ - 133, - 0, - 707, - }, - dictWord{135, 0, 1493}, - dictWord{6, 0, 421}, - dictWord{7, 0, 61}, - dictWord{7, 0, 1540}, - dictWord{10, 0, 11}, - dictWord{138, 0, 501}, - dictWord{12, 0, 733}, - dictWord{12, 0, 766}, - dictWord{7, 11, 866}, - dictWord{135, 11, 1163}, - dictWord{137, 0, 341}, - dictWord{142, 0, 98}, - dictWord{145, 11, 115}, - dictWord{ - 135, - 11, - 1111, - }, - dictWord{136, 10, 300}, - dictWord{136, 0, 1014}, - dictWord{8, 11, 1}, - dictWord{9, 11, 112}, - dictWord{138, 11, 326}, - dictWord{132, 11, 730}, - dictWord{5, 11, 488}, - dictWord{6, 11, 527}, - dictWord{7, 11, 489}, - dictWord{7, 11, 1636}, - dictWord{8, 11, 121}, - dictWord{8, 11, 144}, - dictWord{8, 11, 359}, - dictWord{ - 9, - 11, - 193, - }, - dictWord{9, 11, 241}, - dictWord{9, 11, 336}, - dictWord{9, 11, 882}, - dictWord{11, 11, 266}, - dictWord{11, 11, 372}, - dictWord{11, 11, 944}, - dictWord{ - 12, - 11, - 401, - }, - dictWord{140, 11, 641}, - dictWord{6, 0, 971}, - dictWord{134, 0, 1121}, - dictWord{6, 0, 102}, - dictWord{7, 0, 72}, - dictWord{15, 0, 142}, - dictWord{ - 147, - 0, - 67, - }, - dictWord{151, 0, 30}, - dictWord{135, 0, 823}, - dictWord{134, 0, 1045}, - dictWord{5, 10, 427}, - dictWord{5, 10, 734}, - dictWord{7, 10, 478}, - dictWord{ - 136, - 10, - 52, - }, - dictWord{7, 0, 1930}, - dictWord{11, 10, 217}, - dictWord{142, 10, 165}, - dictWord{6, 0, 1512}, - dictWord{135, 0, 1870}, - dictWord{9, 11, 31}, - dictWord{ - 10, - 11, - 244, - }, - dictWord{10, 11, 699}, - dictWord{12, 11, 149}, - dictWord{141, 11, 497}, - dictWord{133, 11, 377}, - dictWord{145, 11, 101}, - dictWord{ - 10, - 11, - 158, - }, - dictWord{13, 11, 13}, - dictWord{13, 11, 137}, - dictWord{13, 11, 258}, - dictWord{14, 11, 111}, - dictWord{14, 11, 225}, - dictWord{14, 11, 253}, - dictWord{ - 14, - 11, - 304, - }, - dictWord{14, 11, 339}, - dictWord{14, 11, 417}, - dictWord{146, 11, 33}, - dictWord{6, 0, 87}, - dictWord{6, 10, 1734}, - dictWord{7, 10, 20}, - dictWord{ - 7, - 10, - 1056, - }, - dictWord{8, 10, 732}, - dictWord{9, 10, 406}, - dictWord{9, 10, 911}, - dictWord{138, 10, 694}, - dictWord{134, 0, 1243}, - dictWord{137, 0, 245}, - dictWord{ - 7, - 0, - 68, - }, - dictWord{8, 0, 48}, - dictWord{8, 0, 88}, - dictWord{8, 0, 582}, - dictWord{8, 0, 681}, - dictWord{9, 0, 373}, - dictWord{9, 0, 864}, - dictWord{11, 0, 157}, - dictWord{ - 11, - 0, - 336, - }, - dictWord{11, 0, 843}, - dictWord{148, 0, 27}, - dictWord{8, 11, 663}, - dictWord{144, 11, 8}, - dictWord{133, 10, 613}, - dictWord{4, 0, 88}, - dictWord{ - 5, - 0, - 137, - }, - dictWord{5, 0, 174}, - dictWord{5, 0, 777}, - dictWord{6, 0, 1664}, - dictWord{6, 0, 1725}, - dictWord{7, 0, 77}, - dictWord{7, 0, 426}, - dictWord{7, 0, 1317}, - dictWord{ - 7, - 0, - 1355, - }, - dictWord{8, 0, 126}, - dictWord{8, 0, 563}, - dictWord{9, 0, 523}, - dictWord{9, 0, 750}, - dictWord{10, 0, 310}, - dictWord{10, 0, 836}, - dictWord{11, 0, 42}, - dictWord{11, 0, 318}, - dictWord{11, 0, 731}, - dictWord{12, 0, 68}, - dictWord{12, 0, 92}, - dictWord{12, 0, 507}, - dictWord{12, 0, 692}, - dictWord{13, 0, 81}, - dictWord{ - 13, - 0, - 238, - }, - dictWord{13, 0, 374}, - dictWord{14, 0, 436}, - dictWord{18, 0, 138}, - dictWord{19, 0, 78}, - dictWord{19, 0, 111}, - dictWord{20, 0, 55}, - dictWord{20, 0, 77}, - dictWord{148, 0, 92}, - dictWord{141, 0, 418}, - dictWord{4, 0, 938}, - dictWord{137, 0, 625}, - dictWord{138, 0, 351}, - dictWord{5, 11, 843}, - dictWord{7, 10, 32}, - dictWord{ - 7, - 10, - 984, - }, - dictWord{8, 10, 85}, - dictWord{8, 10, 709}, - dictWord{9, 10, 579}, - dictWord{9, 10, 847}, - dictWord{9, 10, 856}, - dictWord{10, 10, 799}, - dictWord{ - 11, - 10, - 258, - }, - dictWord{11, 10, 1007}, - dictWord{12, 10, 331}, - dictWord{12, 10, 615}, - dictWord{13, 10, 188}, - dictWord{13, 10, 435}, - dictWord{14, 10, 8}, - dictWord{ - 15, - 10, - 165, - }, - dictWord{16, 10, 27}, - dictWord{148, 10, 40}, - dictWord{6, 0, 1668}, - dictWord{7, 0, 1499}, - dictWord{8, 0, 117}, - dictWord{9, 0, 314}, - dictWord{ - 138, - 0, - 174, - }, - dictWord{135, 0, 707}, - dictWord{132, 11, 554}, - dictWord{133, 11, 536}, - dictWord{5, 0, 403}, - dictWord{5, 11, 207}, - dictWord{9, 11, 79}, - dictWord{ - 11, - 11, - 625, - }, - dictWord{145, 11, 7}, - dictWord{132, 11, 424}, - dictWord{136, 11, 785}, - dictWord{4, 10, 167}, - dictWord{135, 10, 82}, - dictWord{9, 0, 7}, - dictWord{ - 23, - 0, - 6, - }, - dictWord{9, 11, 7}, - dictWord{151, 11, 6}, - dictWord{6, 0, 282}, - dictWord{5, 10, 62}, - dictWord{6, 10, 534}, - dictWord{7, 10, 74}, - dictWord{7, 10, 678}, - dictWord{ - 7, - 10, - 684, - }, - dictWord{7, 10, 1043}, - dictWord{7, 10, 1072}, - dictWord{8, 10, 280}, - dictWord{8, 10, 541}, - dictWord{8, 10, 686}, - dictWord{9, 10, 258}, - dictWord{ - 10, - 10, - 519, - }, - dictWord{11, 10, 252}, - dictWord{140, 10, 282}, - dictWord{138, 10, 33}, - dictWord{132, 10, 359}, - dictWord{4, 0, 44}, - dictWord{5, 0, 311}, - dictWord{ - 6, - 0, - 156, - }, - dictWord{7, 0, 639}, - dictWord{7, 0, 762}, - dictWord{7, 0, 1827}, - dictWord{9, 0, 8}, - dictWord{9, 0, 462}, - dictWord{148, 0, 83}, - dictWord{7, 11, 769}, - dictWord{ - 9, - 11, - 18, - }, - dictWord{138, 11, 358}, - dictWord{4, 0, 346}, - dictWord{7, 0, 115}, - dictWord{9, 0, 180}, - dictWord{9, 0, 456}, - dictWord{10, 0, 363}, - dictWord{ - 4, - 11, - 896, - }, - dictWord{134, 11, 1777}, - dictWord{133, 10, 211}, - dictWord{7, 0, 761}, - dictWord{7, 0, 1051}, - dictWord{137, 0, 545}, - dictWord{6, 10, 145}, - dictWord{ - 141, - 10, - 336, - }, - dictWord{7, 11, 750}, - dictWord{9, 11, 223}, - dictWord{11, 11, 27}, - dictWord{11, 11, 466}, - dictWord{12, 11, 624}, - dictWord{14, 11, 265}, - dictWord{146, 11, 61}, - dictWord{6, 0, 752}, - dictWord{6, 0, 768}, - dictWord{6, 0, 1195}, - dictWord{6, 0, 1254}, - dictWord{6, 0, 1619}, - dictWord{137, 0, 835}, - dictWord{ - 6, - 0, - 1936, - }, - dictWord{8, 0, 930}, - dictWord{136, 0, 960}, - dictWord{132, 10, 263}, - dictWord{132, 11, 249}, - dictWord{12, 0, 653}, - dictWord{132, 10, 916}, - dictWord{4, 11, 603}, - dictWord{133, 11, 661}, - dictWord{8, 0, 344}, - dictWord{4, 11, 11}, - dictWord{6, 11, 128}, - dictWord{7, 11, 231}, - dictWord{7, 11, 1533}, - dictWord{138, 11, 725}, - dictWord{134, 0, 1483}, - dictWord{134, 0, 875}, - dictWord{6, 0, 185}, - dictWord{7, 0, 1899}, - dictWord{9, 0, 875}, - dictWord{139, 0, 673}, - dictWord{15, 10, 155}, - dictWord{144, 10, 79}, - dictWord{7, 0, 93}, - dictWord{7, 0, 210}, - dictWord{7, 0, 1223}, - dictWord{8, 0, 451}, - dictWord{8, 0, 460}, - dictWord{ - 11, - 0, - 353, - }, - dictWord{11, 0, 475}, - dictWord{4, 10, 599}, - dictWord{6, 10, 1634}, - dictWord{7, 10, 67}, - dictWord{7, 10, 691}, - dictWord{7, 10, 979}, - dictWord{ - 7, - 10, - 1697, - }, - dictWord{8, 10, 207}, - dictWord{8, 10, 214}, - dictWord{8, 10, 231}, - dictWord{8, 10, 294}, - dictWord{8, 10, 336}, - dictWord{8, 10, 428}, - dictWord{ - 8, - 10, - 471, - }, - dictWord{8, 10, 622}, - dictWord{8, 10, 626}, - dictWord{8, 10, 679}, - dictWord{8, 10, 759}, - dictWord{8, 10, 829}, - dictWord{9, 10, 11}, - dictWord{9, 10, 246}, - dictWord{9, 10, 484}, - dictWord{9, 10, 573}, - dictWord{9, 10, 706}, - dictWord{9, 10, 762}, - dictWord{9, 10, 798}, - dictWord{9, 10, 855}, - dictWord{9, 10, 870}, - dictWord{ - 9, - 10, - 912, - }, - dictWord{10, 10, 303}, - dictWord{10, 10, 335}, - dictWord{10, 10, 424}, - dictWord{10, 10, 461}, - dictWord{10, 10, 543}, - dictWord{10, 10, 759}, - dictWord{10, 10, 814}, - dictWord{11, 10, 59}, - dictWord{11, 10, 235}, - dictWord{11, 10, 590}, - dictWord{11, 10, 929}, - dictWord{11, 10, 963}, - dictWord{ - 11, - 10, - 987, - }, - dictWord{12, 10, 114}, - dictWord{12, 10, 182}, - dictWord{12, 10, 226}, - dictWord{12, 10, 332}, - dictWord{12, 10, 439}, - dictWord{12, 10, 575}, - dictWord{ - 12, - 10, - 598, - }, - dictWord{12, 10, 675}, - dictWord{13, 10, 8}, - dictWord{13, 10, 125}, - dictWord{13, 10, 194}, - dictWord{13, 10, 287}, - dictWord{14, 10, 197}, - dictWord{14, 10, 383}, - dictWord{15, 10, 53}, - dictWord{17, 10, 63}, - dictWord{19, 10, 46}, - dictWord{19, 10, 98}, - dictWord{19, 10, 106}, - dictWord{148, 10, 85}, - dictWord{132, 11, 476}, - dictWord{4, 0, 327}, - dictWord{5, 0, 478}, - dictWord{7, 0, 1332}, - dictWord{136, 0, 753}, - dictWord{5, 0, 1020}, - dictWord{133, 0, 1022}, - dictWord{135, 11, 1807}, - dictWord{4, 0, 103}, - dictWord{133, 0, 401}, - dictWord{4, 0, 499}, - dictWord{135, 0, 1421}, - dictWord{10, 0, 207}, - dictWord{13, 0, 164}, - dictWord{147, 10, 126}, - dictWord{9, 11, 20}, - dictWord{10, 11, 324}, - dictWord{139, 11, 488}, - dictWord{132, 0, 96}, - dictWord{9, 11, 280}, - dictWord{ - 138, - 11, - 134, - }, - dictWord{135, 0, 968}, - dictWord{133, 10, 187}, - dictWord{135, 10, 1286}, - dictWord{5, 11, 112}, - dictWord{6, 11, 103}, - dictWord{134, 11, 150}, - dictWord{8, 0, 914}, - dictWord{10, 0, 3}, - dictWord{4, 10, 215}, - dictWord{9, 10, 38}, - dictWord{11, 10, 23}, - dictWord{11, 10, 127}, - dictWord{139, 10, 796}, - dictWord{ - 135, - 0, - 399, - }, - dictWord{6, 0, 563}, - dictWord{137, 0, 224}, - dictWord{6, 0, 704}, - dictWord{134, 0, 1214}, - dictWord{4, 11, 708}, - dictWord{8, 11, 15}, - dictWord{ - 9, - 11, - 50, - }, - dictWord{9, 11, 386}, - dictWord{11, 11, 18}, - dictWord{11, 11, 529}, - dictWord{140, 11, 228}, - dictWord{4, 11, 563}, - dictWord{7, 11, 109}, - dictWord{ - 7, - 11, - 592, - }, - dictWord{7, 11, 637}, - dictWord{7, 11, 770}, - dictWord{7, 11, 1701}, - dictWord{8, 11, 436}, - dictWord{8, 11, 463}, - dictWord{9, 11, 60}, - dictWord{9, 11, 335}, - dictWord{9, 11, 904}, - dictWord{10, 11, 73}, - dictWord{11, 11, 434}, - dictWord{12, 11, 585}, - dictWord{13, 11, 331}, - dictWord{18, 11, 110}, - dictWord{ - 148, - 11, - 60, - }, - dictWord{134, 0, 1559}, - dictWord{132, 11, 502}, - dictWord{6, 11, 347}, - dictWord{138, 11, 161}, - dictWord{4, 11, 33}, - dictWord{5, 11, 102}, - dictWord{ - 5, - 11, - 500, - }, - dictWord{6, 11, 284}, - dictWord{7, 11, 1079}, - dictWord{7, 11, 1423}, - dictWord{7, 11, 1702}, - dictWord{8, 11, 470}, - dictWord{9, 11, 554}, - dictWord{ - 9, - 11, - 723, - }, - dictWord{139, 11, 333}, - dictWord{7, 11, 246}, - dictWord{135, 11, 840}, - dictWord{6, 11, 10}, - dictWord{8, 11, 571}, - dictWord{9, 11, 739}, - dictWord{ - 143, - 11, - 91, - }, - dictWord{8, 0, 861}, - dictWord{10, 0, 905}, - dictWord{12, 0, 730}, - dictWord{12, 0, 789}, - dictWord{133, 11, 626}, - dictWord{134, 0, 946}, - dictWord{ - 5, - 0, - 746, - }, - dictWord{12, 0, 333}, - dictWord{14, 0, 332}, - dictWord{12, 11, 333}, - dictWord{142, 11, 332}, - dictWord{5, 11, 18}, - dictWord{6, 11, 526}, - dictWord{ - 13, - 11, - 24, - }, - dictWord{13, 11, 110}, - dictWord{19, 11, 5}, - dictWord{147, 11, 44}, - dictWord{4, 0, 910}, - dictWord{5, 0, 832}, - dictWord{135, 10, 2002}, - dictWord{ - 10, - 11, - 768, - }, - dictWord{139, 11, 787}, - dictWord{4, 11, 309}, - dictWord{5, 11, 462}, - dictWord{7, 11, 970}, - dictWord{135, 11, 1097}, - dictWord{4, 10, 28}, - dictWord{ - 5, - 10, - 440, - }, - dictWord{7, 10, 248}, - dictWord{11, 10, 833}, - dictWord{140, 10, 344}, - dictWord{134, 10, 1654}, - dictWord{6, 0, 632}, - dictWord{6, 0, 652}, - dictWord{ - 6, - 0, - 1272, - }, - dictWord{6, 0, 1384}, - dictWord{134, 0, 1560}, - dictWord{134, 11, 1704}, - dictWord{6, 0, 1393}, - dictWord{133, 10, 853}, - dictWord{6, 10, 249}, - dictWord{7, 10, 1234}, - dictWord{139, 10, 573}, - dictWord{5, 11, 86}, - dictWord{7, 11, 743}, - dictWord{9, 11, 85}, - dictWord{10, 11, 281}, - dictWord{10, 11, 432}, - dictWord{11, 11, 490}, - dictWord{12, 11, 251}, - dictWord{13, 11, 118}, - dictWord{14, 11, 378}, - dictWord{146, 11, 143}, - dictWord{5, 11, 524}, - dictWord{ - 133, - 11, - 744, - }, - dictWord{134, 0, 1514}, - dictWord{10, 0, 201}, - dictWord{142, 0, 319}, - dictWord{7, 0, 717}, - dictWord{10, 0, 510}, - dictWord{7, 10, 392}, - dictWord{ - 8, - 10, - 20, - }, - dictWord{8, 10, 172}, - dictWord{8, 10, 690}, - dictWord{9, 10, 383}, - dictWord{9, 10, 845}, - dictWord{11, 10, 293}, - dictWord{11, 10, 832}, - dictWord{ - 11, - 10, - 920, - }, - dictWord{11, 10, 984}, - dictWord{141, 10, 221}, - dictWord{134, 0, 1381}, - dictWord{5, 10, 858}, - dictWord{133, 10, 992}, - dictWord{8, 0, 528}, - dictWord{137, 0, 348}, - dictWord{10, 11, 107}, - dictWord{140, 11, 436}, - dictWord{4, 0, 20}, - dictWord{133, 0, 616}, - dictWord{134, 0, 1251}, - dictWord{ - 132, - 11, - 927, - }, - dictWord{10, 11, 123}, - dictWord{12, 11, 670}, - dictWord{13, 11, 371}, - dictWord{14, 11, 142}, - dictWord{146, 11, 94}, - dictWord{134, 0, 1163}, - dictWord{ - 7, - 11, - 1149, - }, - dictWord{137, 11, 156}, - dictWord{134, 0, 307}, - dictWord{133, 11, 778}, - dictWord{7, 0, 1091}, - dictWord{135, 0, 1765}, - dictWord{ - 5, - 11, - 502, - }, - dictWord{6, 10, 268}, - dictWord{137, 10, 62}, - dictWord{8, 11, 196}, - dictWord{10, 11, 283}, - dictWord{139, 11, 406}, - dictWord{4, 0, 26}, - dictWord{ - 5, - 0, - 429, - }, - dictWord{6, 0, 245}, - dictWord{7, 0, 704}, - dictWord{7, 0, 1379}, - dictWord{135, 0, 1474}, - dictWord{133, 11, 855}, - dictWord{132, 0, 881}, - dictWord{ - 4, - 0, - 621, - }, - dictWord{135, 11, 1596}, - dictWord{7, 11, 1400}, - dictWord{9, 11, 446}, - dictWord{138, 11, 45}, - dictWord{6, 0, 736}, - dictWord{138, 10, 106}, - dictWord{133, 0, 542}, - dictWord{134, 0, 348}, - dictWord{133, 0, 868}, - dictWord{136, 0, 433}, - dictWord{135, 0, 1495}, - dictWord{138, 0, 771}, - dictWord{ - 6, - 10, - 613, - }, - dictWord{136, 10, 223}, - dictWord{138, 0, 215}, - dictWord{141, 0, 124}, - dictWord{136, 11, 391}, - dictWord{135, 11, 172}, - dictWord{132, 10, 670}, - dictWord{140, 0, 55}, - dictWord{9, 10, 40}, - dictWord{139, 10, 136}, - dictWord{7, 0, 62}, - dictWord{147, 0, 112}, - dictWord{132, 0, 856}, - dictWord{132, 11, 568}, - dictWord{12, 0, 270}, - dictWord{139, 10, 259}, - dictWord{8, 0, 572}, - dictWord{137, 0, 698}, - dictWord{4, 11, 732}, - dictWord{9, 10, 310}, - dictWord{137, 10, 682}, - dictWord{142, 10, 296}, - dictWord{134, 0, 939}, - dictWord{136, 11, 733}, - dictWord{135, 11, 1435}, - dictWord{7, 10, 1401}, - dictWord{135, 10, 1476}, - dictWord{6, 0, 352}, - dictWord{4, 10, 296}, - dictWord{7, 10, 401}, - dictWord{7, 10, 1410}, - dictWord{7, 10, 1594}, - dictWord{7, 10, 1674}, - dictWord{8, 10, 63}, - dictWord{ - 8, - 10, - 660, - }, - dictWord{137, 10, 74}, - dictWord{4, 11, 428}, - dictWord{133, 11, 668}, - dictWord{4, 10, 139}, - dictWord{4, 10, 388}, - dictWord{140, 10, 188}, - dictWord{7, 11, 2015}, - dictWord{140, 11, 665}, - dictWord{132, 0, 647}, - dictWord{146, 0, 10}, - dictWord{138, 0, 220}, - dictWord{142, 0, 464}, - dictWord{ - 132, - 0, - 109, - }, - dictWord{134, 0, 1746}, - dictWord{6, 0, 515}, - dictWord{4, 10, 747}, - dictWord{6, 11, 1623}, - dictWord{6, 11, 1681}, - dictWord{7, 10, 649}, - dictWord{ - 7, - 10, - 1479, - }, - dictWord{135, 10, 1583}, - dictWord{133, 10, 232}, - dictWord{135, 0, 566}, - dictWord{137, 10, 887}, - dictWord{4, 0, 40}, - dictWord{10, 0, 67}, - dictWord{ - 11, - 0, - 117, - }, - dictWord{11, 0, 768}, - dictWord{139, 0, 935}, - dictWord{132, 0, 801}, - dictWord{7, 0, 992}, - dictWord{8, 0, 301}, - dictWord{9, 0, 722}, - dictWord{ - 12, - 0, - 63, - }, - dictWord{13, 0, 29}, - dictWord{14, 0, 161}, - dictWord{143, 0, 18}, - dictWord{139, 0, 923}, - dictWord{6, 11, 1748}, - dictWord{8, 11, 715}, - dictWord{9, 11, 802}, - dictWord{10, 11, 46}, - dictWord{10, 11, 819}, - dictWord{13, 11, 308}, - dictWord{14, 11, 351}, - dictWord{14, 11, 363}, - dictWord{146, 11, 67}, - dictWord{ - 137, - 11, - 745, - }, - dictWord{7, 0, 1145}, - dictWord{4, 10, 14}, - dictWord{7, 10, 1801}, - dictWord{10, 10, 748}, - dictWord{141, 10, 458}, - dictWord{4, 11, 63}, - dictWord{ - 5, - 11, - 347, - }, - dictWord{134, 11, 474}, - dictWord{135, 0, 568}, - dictWord{4, 10, 425}, - dictWord{7, 11, 577}, - dictWord{7, 11, 1432}, - dictWord{9, 11, 475}, - dictWord{ - 9, - 11, - 505, - }, - dictWord{9, 11, 526}, - dictWord{9, 11, 609}, - dictWord{9, 11, 689}, - dictWord{9, 11, 726}, - dictWord{9, 11, 735}, - dictWord{9, 11, 738}, - dictWord{ - 10, - 11, - 556, - }, - dictWord{10, 11, 674}, - dictWord{10, 11, 684}, - dictWord{11, 11, 89}, - dictWord{11, 11, 202}, - dictWord{11, 11, 272}, - dictWord{11, 11, 380}, - dictWord{ - 11, - 11, - 415, - }, - dictWord{11, 11, 505}, - dictWord{11, 11, 537}, - dictWord{11, 11, 550}, - dictWord{11, 11, 562}, - dictWord{11, 11, 640}, - dictWord{11, 11, 667}, - dictWord{11, 11, 688}, - dictWord{11, 11, 847}, - dictWord{11, 11, 927}, - dictWord{11, 11, 930}, - dictWord{11, 11, 940}, - dictWord{12, 11, 144}, - dictWord{ - 12, - 11, - 325, - }, - dictWord{12, 11, 329}, - dictWord{12, 11, 389}, - dictWord{12, 11, 403}, - dictWord{12, 11, 451}, - dictWord{12, 11, 515}, - dictWord{12, 11, 604}, - dictWord{ - 12, - 11, - 616, - }, - dictWord{12, 11, 626}, - dictWord{13, 11, 66}, - dictWord{13, 11, 131}, - dictWord{13, 11, 167}, - dictWord{13, 11, 236}, - dictWord{13, 11, 368}, - dictWord{13, 11, 411}, - dictWord{13, 11, 434}, - dictWord{13, 11, 453}, - dictWord{13, 11, 461}, - dictWord{13, 11, 474}, - dictWord{14, 11, 59}, - dictWord{14, 11, 60}, - dictWord{14, 11, 139}, - dictWord{14, 11, 152}, - dictWord{14, 11, 276}, - dictWord{14, 11, 353}, - dictWord{14, 11, 402}, - dictWord{15, 11, 28}, - dictWord{ - 15, - 11, - 81, - }, - dictWord{15, 11, 123}, - dictWord{15, 11, 152}, - dictWord{18, 11, 136}, - dictWord{148, 11, 88}, - dictWord{137, 0, 247}, - dictWord{135, 11, 1622}, - dictWord{ - 9, - 11, - 544, - }, - dictWord{11, 11, 413}, - dictWord{144, 11, 25}, - dictWord{4, 0, 645}, - dictWord{7, 0, 825}, - dictWord{6, 10, 1768}, - dictWord{135, 11, 89}, - dictWord{140, 0, 328}, - dictWord{5, 10, 943}, - dictWord{134, 10, 1779}, - dictWord{134, 0, 1363}, - dictWord{5, 10, 245}, - dictWord{6, 10, 576}, - dictWord{7, 10, 582}, - dictWord{136, 10, 225}, - dictWord{134, 0, 1280}, - dictWord{5, 11, 824}, - dictWord{133, 11, 941}, - dictWord{7, 11, 440}, - dictWord{8, 11, 230}, - dictWord{ - 139, - 11, - 106, - }, - dictWord{5, 0, 28}, - dictWord{6, 0, 204}, - dictWord{10, 0, 320}, - dictWord{10, 0, 583}, - dictWord{13, 0, 502}, - dictWord{14, 0, 72}, - dictWord{14, 0, 274}, - dictWord{14, 0, 312}, - dictWord{14, 0, 344}, - dictWord{15, 0, 159}, - dictWord{16, 0, 62}, - dictWord{16, 0, 69}, - dictWord{17, 0, 30}, - dictWord{18, 0, 42}, - dictWord{ - 18, - 0, - 53, - }, - dictWord{18, 0, 84}, - dictWord{18, 0, 140}, - dictWord{19, 0, 68}, - dictWord{19, 0, 85}, - dictWord{20, 0, 5}, - dictWord{20, 0, 45}, - dictWord{20, 0, 101}, - dictWord{ - 22, - 0, - 7, - }, - dictWord{150, 0, 20}, - dictWord{4, 0, 558}, - dictWord{6, 0, 390}, - dictWord{7, 0, 162}, - dictWord{7, 0, 689}, - dictWord{9, 0, 360}, - dictWord{138, 0, 653}, - dictWord{134, 0, 764}, - dictWord{6, 0, 862}, - dictWord{137, 0, 833}, - dictWord{5, 0, 856}, - dictWord{6, 0, 1672}, - dictWord{6, 0, 1757}, - dictWord{134, 0, 1781}, - dictWord{ - 5, - 0, - 92, - }, - dictWord{10, 0, 736}, - dictWord{140, 0, 102}, - dictWord{6, 0, 1927}, - dictWord{6, 0, 1944}, - dictWord{8, 0, 924}, - dictWord{8, 0, 948}, - dictWord{ - 10, - 0, - 967, - }, - dictWord{138, 0, 978}, - dictWord{134, 0, 1479}, - dictWord{5, 0, 590}, - dictWord{8, 0, 360}, - dictWord{9, 0, 213}, - dictWord{138, 0, 63}, - dictWord{ - 134, - 0, - 1521, - }, - dictWord{6, 0, 709}, - dictWord{134, 0, 891}, - dictWord{132, 10, 443}, - dictWord{13, 0, 477}, - dictWord{14, 0, 120}, - dictWord{148, 0, 61}, - dictWord{ - 4, - 11, - 914, - }, - dictWord{5, 11, 800}, - dictWord{133, 11, 852}, - dictWord{10, 11, 54}, - dictWord{141, 11, 115}, - dictWord{4, 11, 918}, - dictWord{133, 11, 876}, - dictWord{139, 11, 152}, - dictWord{4, 11, 92}, - dictWord{133, 11, 274}, - dictWord{135, 11, 1901}, - dictWord{9, 11, 800}, - dictWord{10, 11, 693}, - dictWord{ - 11, - 11, - 482, - }, - dictWord{11, 11, 734}, - dictWord{139, 11, 789}, - dictWord{9, 0, 483}, - dictWord{132, 10, 298}, - dictWord{6, 0, 1213}, - dictWord{141, 11, 498}, - dictWord{135, 11, 1451}, - dictWord{133, 11, 743}, - dictWord{4, 0, 1022}, - dictWord{10, 0, 1000}, - dictWord{12, 0, 957}, - dictWord{12, 0, 980}, - dictWord{ - 12, - 0, - 1013, - }, - dictWord{14, 0, 481}, - dictWord{144, 0, 116}, - dictWord{8, 0, 503}, - dictWord{17, 0, 29}, - dictWord{4, 11, 49}, - dictWord{7, 11, 280}, - dictWord{ - 135, - 11, - 1633, - }, - dictWord{135, 0, 1712}, - dictWord{134, 0, 466}, - dictWord{136, 11, 47}, - dictWord{5, 10, 164}, - dictWord{7, 10, 121}, - dictWord{142, 10, 189}, - dictWord{ - 7, - 10, - 812, - }, - dictWord{7, 10, 1261}, - dictWord{7, 10, 1360}, - dictWord{9, 10, 632}, - dictWord{140, 10, 352}, - dictWord{139, 10, 556}, - dictWord{132, 0, 731}, - dictWord{5, 11, 272}, - dictWord{5, 11, 908}, - dictWord{5, 11, 942}, - dictWord{7, 11, 1008}, - dictWord{7, 11, 1560}, - dictWord{8, 11, 197}, - dictWord{9, 11, 47}, - dictWord{11, 11, 538}, - dictWord{139, 11, 742}, - dictWord{4, 10, 172}, - dictWord{9, 10, 611}, - dictWord{10, 10, 436}, - dictWord{12, 10, 673}, - dictWord{ - 141, - 10, - 255, - }, - dictWord{133, 10, 844}, - dictWord{10, 0, 484}, - dictWord{11, 0, 754}, - dictWord{12, 0, 457}, - dictWord{14, 0, 171}, - dictWord{14, 0, 389}, - dictWord{ - 146, - 0, - 153, - }, - dictWord{9, 10, 263}, - dictWord{10, 10, 147}, - dictWord{138, 10, 492}, - dictWord{137, 11, 891}, - dictWord{138, 0, 241}, - dictWord{133, 10, 537}, - dictWord{6, 0, 2005}, - dictWord{136, 0, 964}, - dictWord{137, 10, 842}, - dictWord{151, 11, 8}, - dictWord{4, 11, 407}, - dictWord{132, 11, 560}, - dictWord{ - 135, - 11, - 1884, - }, - dictWord{6, 0, 1100}, - dictWord{134, 0, 1242}, - dictWord{135, 0, 954}, - dictWord{5, 10, 230}, - dictWord{5, 10, 392}, - dictWord{6, 10, 420}, - dictWord{ - 9, - 10, - 568, - }, - dictWord{140, 10, 612}, - dictWord{4, 11, 475}, - dictWord{11, 11, 35}, - dictWord{11, 11, 90}, - dictWord{13, 11, 7}, - dictWord{13, 11, 71}, - dictWord{ - 13, - 11, - 177, - }, - dictWord{142, 11, 422}, - dictWord{136, 11, 332}, - dictWord{135, 0, 1958}, - dictWord{6, 0, 549}, - dictWord{8, 0, 34}, - dictWord{8, 0, 283}, - dictWord{ - 9, - 0, - 165, - }, - dictWord{138, 0, 475}, - dictWord{10, 0, 952}, - dictWord{12, 0, 966}, - dictWord{140, 0, 994}, - dictWord{5, 0, 652}, - dictWord{5, 0, 701}, - dictWord{ - 135, - 0, - 449, - }, - dictWord{4, 0, 655}, - dictWord{7, 0, 850}, - dictWord{17, 0, 75}, - dictWord{146, 0, 137}, - dictWord{4, 0, 146}, - dictWord{7, 0, 1618}, - dictWord{8, 0, 670}, - dictWord{ - 5, - 10, - 41, - }, - dictWord{7, 10, 1459}, - dictWord{7, 10, 1469}, - dictWord{7, 10, 1859}, - dictWord{9, 10, 549}, - dictWord{139, 10, 905}, - dictWord{133, 10, 696}, - dictWord{6, 0, 159}, - dictWord{6, 0, 364}, - dictWord{7, 0, 516}, - dictWord{137, 0, 518}, - dictWord{135, 0, 1439}, - dictWord{6, 11, 222}, - dictWord{7, 11, 636}, - dictWord{ - 7, - 11, - 1620, - }, - dictWord{8, 11, 409}, - dictWord{9, 11, 693}, - dictWord{139, 11, 77}, - dictWord{13, 0, 151}, - dictWord{141, 11, 45}, - dictWord{6, 0, 1027}, - dictWord{ - 4, - 11, - 336, - }, - dictWord{132, 10, 771}, - dictWord{139, 11, 392}, - dictWord{10, 11, 121}, - dictWord{11, 11, 175}, - dictWord{149, 11, 16}, - dictWord{8, 0, 950}, - dictWord{138, 0, 983}, - dictWord{133, 10, 921}, - dictWord{135, 0, 993}, - dictWord{6, 10, 180}, - dictWord{7, 10, 1137}, - dictWord{8, 10, 751}, - dictWord{ - 139, - 10, - 805, - }, - dictWord{7, 0, 501}, - dictWord{9, 0, 111}, - dictWord{10, 0, 141}, - dictWord{11, 0, 332}, - dictWord{13, 0, 43}, - dictWord{13, 0, 429}, - dictWord{14, 0, 130}, - dictWord{14, 0, 415}, - dictWord{145, 0, 102}, - dictWord{4, 10, 183}, - dictWord{5, 11, 882}, - dictWord{7, 10, 271}, - dictWord{11, 10, 824}, - dictWord{11, 10, 952}, - dictWord{13, 10, 278}, - dictWord{13, 10, 339}, - dictWord{13, 10, 482}, - dictWord{14, 10, 424}, - dictWord{148, 10, 99}, - dictWord{4, 10, 19}, - dictWord{5, 10, 477}, - dictWord{5, 10, 596}, - dictWord{6, 10, 505}, - dictWord{7, 10, 1221}, - dictWord{11, 10, 907}, - dictWord{12, 10, 209}, - dictWord{141, 10, 214}, - dictWord{ - 135, - 10, - 1215, - }, - dictWord{133, 0, 452}, - dictWord{132, 11, 426}, - dictWord{5, 0, 149}, - dictWord{136, 0, 233}, - dictWord{133, 0, 935}, - dictWord{6, 11, 58}, - dictWord{ - 7, - 11, - 654, - }, - dictWord{7, 11, 745}, - dictWord{7, 11, 1969}, - dictWord{8, 11, 240}, - dictWord{8, 11, 675}, - dictWord{9, 11, 479}, - dictWord{9, 11, 731}, - dictWord{ - 10, - 11, - 330, - }, - dictWord{10, 11, 593}, - dictWord{10, 11, 817}, - dictWord{11, 11, 32}, - dictWord{11, 11, 133}, - dictWord{11, 11, 221}, - dictWord{145, 11, 68}, - dictWord{ - 12, - 0, - 582, - }, - dictWord{18, 0, 131}, - dictWord{7, 11, 102}, - dictWord{137, 11, 538}, - dictWord{136, 0, 801}, - dictWord{134, 10, 1645}, - dictWord{132, 0, 70}, - dictWord{6, 10, 92}, - dictWord{6, 10, 188}, - dictWord{7, 10, 1269}, - dictWord{7, 10, 1524}, - dictWord{7, 10, 1876}, - dictWord{10, 10, 228}, - dictWord{139, 10, 1020}, - dictWord{4, 10, 459}, - dictWord{133, 10, 966}, - dictWord{138, 0, 369}, - dictWord{16, 0, 36}, - dictWord{140, 10, 330}, - dictWord{141, 11, 366}, - dictWord{ - 7, - 0, - 721, - }, - dictWord{10, 0, 236}, - dictWord{12, 0, 204}, - dictWord{6, 10, 18}, - dictWord{7, 10, 932}, - dictWord{8, 10, 757}, - dictWord{9, 10, 54}, - dictWord{9, 10, 65}, - dictWord{9, 10, 844}, - dictWord{10, 10, 113}, - dictWord{10, 10, 315}, - dictWord{10, 10, 798}, - dictWord{11, 10, 153}, - dictWord{12, 10, 151}, - dictWord{12, 10, 392}, - dictWord{12, 10, 666}, - dictWord{142, 10, 248}, - dictWord{7, 0, 241}, - dictWord{10, 0, 430}, - dictWord{8, 10, 548}, - dictWord{9, 10, 532}, - dictWord{10, 10, 117}, - dictWord{11, 10, 351}, - dictWord{11, 10, 375}, - dictWord{143, 10, 23}, - dictWord{134, 10, 1742}, - dictWord{133, 10, 965}, - dictWord{133, 11, 566}, - dictWord{ - 6, - 11, - 48, - }, - dictWord{135, 11, 63}, - dictWord{134, 10, 182}, - dictWord{10, 10, 65}, - dictWord{10, 10, 488}, - dictWord{138, 10, 497}, - dictWord{6, 11, 114}, - dictWord{7, 11, 1224}, - dictWord{7, 11, 1556}, - dictWord{136, 11, 3}, - dictWord{134, 0, 1817}, - dictWord{8, 11, 576}, - dictWord{137, 11, 267}, - dictWord{ - 6, - 0, - 1078, - }, - dictWord{144, 0, 16}, - dictWord{9, 10, 588}, - dictWord{138, 10, 260}, - dictWord{138, 0, 1021}, - dictWord{5, 0, 406}, - dictWord{134, 0, 2022}, - dictWord{133, 11, 933}, - dictWord{6, 0, 69}, - dictWord{135, 0, 117}, - dictWord{7, 0, 1830}, - dictWord{136, 11, 427}, - dictWord{4, 0, 432}, - dictWord{135, 0, 824}, - dictWord{134, 10, 1786}, - dictWord{133, 0, 826}, - dictWord{139, 11, 67}, - dictWord{133, 11, 759}, - dictWord{135, 10, 308}, - dictWord{137, 0, 816}, - dictWord{ - 133, - 0, - 1000, - }, - dictWord{4, 0, 297}, - dictWord{6, 0, 529}, - dictWord{7, 0, 152}, - dictWord{7, 0, 713}, - dictWord{7, 0, 1845}, - dictWord{8, 0, 710}, - dictWord{8, 0, 717}, - dictWord{12, 0, 639}, - dictWord{140, 0, 685}, - dictWord{7, 0, 423}, - dictWord{136, 10, 588}, - dictWord{136, 10, 287}, - dictWord{136, 0, 510}, - dictWord{ - 134, - 0, - 1048, - }, - dictWord{6, 0, 618}, - dictWord{7, 11, 56}, - dictWord{7, 11, 1989}, - dictWord{8, 11, 337}, - dictWord{8, 11, 738}, - dictWord{9, 11, 600}, - dictWord{ - 10, - 11, - 483, - }, - dictWord{12, 11, 37}, - dictWord{13, 11, 447}, - dictWord{142, 11, 92}, - dictWord{4, 0, 520}, - dictWord{135, 0, 575}, - dictWord{8, 0, 990}, - dictWord{ - 138, - 0, - 977, - }, - dictWord{135, 11, 774}, - dictWord{9, 11, 347}, - dictWord{11, 11, 24}, - dictWord{140, 11, 170}, - dictWord{136, 11, 379}, - dictWord{140, 10, 290}, - dictWord{132, 11, 328}, - dictWord{4, 0, 321}, - dictWord{134, 0, 569}, - dictWord{4, 11, 101}, - dictWord{135, 11, 1171}, - dictWord{7, 0, 723}, - dictWord{7, 0, 1135}, - dictWord{5, 11, 833}, - dictWord{136, 11, 744}, - dictWord{7, 10, 719}, - dictWord{8, 10, 809}, - dictWord{136, 10, 834}, - dictWord{8, 0, 921}, - dictWord{136, 10, 796}, - dictWord{5, 10, 210}, - dictWord{6, 10, 213}, - dictWord{7, 10, 60}, - dictWord{10, 10, 364}, - dictWord{139, 10, 135}, - dictWord{5, 0, 397}, - dictWord{6, 0, 154}, - dictWord{7, 0, 676}, - dictWord{8, 0, 443}, - dictWord{8, 0, 609}, - dictWord{9, 0, 24}, - dictWord{9, 0, 325}, - dictWord{10, 0, 35}, - dictWord{11, 0, 535}, - dictWord{11, 0, 672}, - dictWord{11, 0, 1018}, - dictWord{12, 0, 637}, - dictWord{16, 0, 30}, - dictWord{5, 10, 607}, - dictWord{8, 10, 326}, - dictWord{136, 10, 490}, - dictWord{4, 10, 701}, - dictWord{5, 10, 472}, - dictWord{6, 11, 9}, - dictWord{6, 11, 397}, - dictWord{7, 11, 53}, - dictWord{7, 11, 1742}, - dictWord{9, 10, 758}, - dictWord{10, 11, 632}, - dictWord{ - 11, - 11, - 828, - }, - dictWord{140, 11, 146}, - dictWord{135, 10, 380}, - dictWord{135, 10, 1947}, - dictWord{148, 11, 109}, - dictWord{10, 10, 278}, - dictWord{ - 138, - 11, - 278, - }, - dictWord{134, 0, 856}, - dictWord{7, 0, 139}, - dictWord{4, 10, 386}, - dictWord{8, 10, 405}, - dictWord{8, 10, 728}, - dictWord{9, 10, 497}, - dictWord{ - 11, - 10, - 110, - }, - dictWord{11, 10, 360}, - dictWord{15, 10, 37}, - dictWord{144, 10, 84}, - dictWord{141, 0, 282}, - dictWord{133, 0, 981}, - dictWord{5, 0, 288}, - dictWord{ - 7, - 10, - 1452, - }, - dictWord{7, 10, 1480}, - dictWord{8, 10, 634}, - dictWord{140, 10, 472}, - dictWord{7, 0, 1890}, - dictWord{8, 11, 367}, - dictWord{10, 11, 760}, - dictWord{ - 14, - 11, - 79, - }, - dictWord{20, 11, 17}, - dictWord{152, 11, 0}, - dictWord{4, 10, 524}, - dictWord{136, 10, 810}, - dictWord{4, 0, 56}, - dictWord{7, 0, 1791}, - dictWord{ - 8, - 0, - 607, - }, - dictWord{8, 0, 651}, - dictWord{11, 0, 465}, - dictWord{11, 0, 835}, - dictWord{12, 0, 337}, - dictWord{141, 0, 480}, - dictWord{10, 10, 238}, - dictWord{ - 141, - 10, - 33, - }, - dictWord{11, 11, 417}, - dictWord{12, 11, 223}, - dictWord{140, 11, 265}, - dictWord{9, 0, 158}, - dictWord{10, 0, 411}, - dictWord{140, 0, 261}, - dictWord{ - 133, - 10, - 532, - }, - dictWord{133, 10, 997}, - dictWord{12, 11, 186}, - dictWord{12, 11, 292}, - dictWord{14, 11, 100}, - dictWord{146, 11, 70}, - dictWord{6, 0, 1403}, - dictWord{136, 0, 617}, - dictWord{134, 0, 1205}, - dictWord{139, 0, 563}, - dictWord{4, 0, 242}, - dictWord{134, 0, 333}, - dictWord{4, 11, 186}, - dictWord{5, 11, 157}, - dictWord{8, 11, 168}, - dictWord{138, 11, 6}, - dictWord{132, 0, 369}, - dictWord{133, 11, 875}, - dictWord{5, 10, 782}, - dictWord{5, 10, 829}, - dictWord{ - 134, - 10, - 1738, - }, - dictWord{134, 0, 622}, - dictWord{135, 11, 1272}, - dictWord{6, 0, 1407}, - dictWord{7, 11, 111}, - dictWord{136, 11, 581}, - dictWord{7, 10, 1823}, - dictWord{139, 10, 693}, - dictWord{7, 0, 160}, - dictWord{10, 0, 624}, - dictWord{142, 0, 279}, - dictWord{132, 0, 363}, - dictWord{10, 11, 589}, - dictWord{12, 11, 111}, - dictWord{13, 11, 260}, - dictWord{14, 11, 82}, - dictWord{18, 11, 63}, - dictWord{147, 11, 45}, - dictWord{7, 11, 1364}, - dictWord{7, 11, 1907}, - dictWord{ - 141, - 11, - 158, - }, - dictWord{4, 11, 404}, - dictWord{4, 11, 659}, - dictWord{135, 11, 675}, - dictWord{13, 11, 211}, - dictWord{14, 11, 133}, - dictWord{14, 11, 204}, - dictWord{ - 15, - 11, - 64, - }, - dictWord{15, 11, 69}, - dictWord{15, 11, 114}, - dictWord{16, 11, 10}, - dictWord{19, 11, 23}, - dictWord{19, 11, 35}, - dictWord{19, 11, 39}, - dictWord{ - 19, - 11, - 51, - }, - dictWord{19, 11, 71}, - dictWord{19, 11, 75}, - dictWord{152, 11, 15}, - dictWord{4, 10, 78}, - dictWord{5, 10, 96}, - dictWord{5, 10, 182}, - dictWord{7, 10, 1724}, - dictWord{7, 10, 1825}, - dictWord{10, 10, 394}, - dictWord{10, 10, 471}, - dictWord{11, 10, 532}, - dictWord{14, 10, 340}, - dictWord{145, 10, 88}, - dictWord{ - 135, - 10, - 1964, - }, - dictWord{133, 11, 391}, - dictWord{11, 11, 887}, - dictWord{14, 11, 365}, - dictWord{142, 11, 375}, - dictWord{5, 11, 540}, - dictWord{6, 11, 1697}, - dictWord{7, 11, 222}, - dictWord{136, 11, 341}, - dictWord{134, 11, 78}, - dictWord{9, 0, 601}, - dictWord{9, 0, 619}, - dictWord{10, 0, 505}, - dictWord{10, 0, 732}, - dictWord{11, 0, 355}, - dictWord{140, 0, 139}, - dictWord{134, 0, 292}, - dictWord{139, 0, 174}, - dictWord{5, 0, 177}, - dictWord{6, 0, 616}, - dictWord{7, 0, 827}, - dictWord{ - 9, - 0, - 525, - }, - dictWord{138, 0, 656}, - dictWord{10, 0, 31}, - dictWord{6, 10, 215}, - dictWord{7, 10, 1028}, - dictWord{7, 10, 1473}, - dictWord{7, 10, 1721}, - dictWord{ - 9, - 10, - 424, - }, - dictWord{138, 10, 779}, - dictWord{135, 10, 584}, - dictWord{136, 11, 293}, - dictWord{134, 0, 685}, - dictWord{135, 11, 1868}, - dictWord{ - 133, - 11, - 460, - }, - dictWord{7, 0, 647}, - dictWord{6, 10, 67}, - dictWord{7, 10, 1630}, - dictWord{9, 10, 354}, - dictWord{9, 10, 675}, - dictWord{10, 10, 830}, - dictWord{ - 14, - 10, - 80, - }, - dictWord{145, 10, 80}, - dictWord{4, 0, 161}, - dictWord{133, 0, 631}, - dictWord{6, 10, 141}, - dictWord{7, 10, 225}, - dictWord{9, 10, 59}, - dictWord{9, 10, 607}, - dictWord{10, 10, 312}, - dictWord{11, 10, 687}, - dictWord{12, 10, 555}, - dictWord{13, 10, 373}, - dictWord{13, 10, 494}, - dictWord{148, 10, 58}, - dictWord{ - 7, - 11, - 965, - }, - dictWord{7, 11, 1460}, - dictWord{135, 11, 1604}, - dictWord{136, 10, 783}, - dictWord{134, 11, 388}, - dictWord{6, 0, 722}, - dictWord{6, 0, 1267}, - dictWord{ - 4, - 11, - 511, - }, - dictWord{9, 11, 333}, - dictWord{9, 11, 379}, - dictWord{10, 11, 602}, - dictWord{11, 11, 441}, - dictWord{11, 11, 723}, - dictWord{11, 11, 976}, - dictWord{140, 11, 357}, - dictWord{134, 0, 1797}, - dictWord{135, 0, 1684}, - dictWord{9, 0, 469}, - dictWord{9, 0, 709}, - dictWord{12, 0, 512}, - dictWord{14, 0, 65}, - dictWord{17, 0, 12}, - dictWord{5, 11, 938}, - dictWord{136, 11, 707}, - dictWord{7, 0, 1230}, - dictWord{136, 0, 531}, - dictWord{10, 0, 229}, - dictWord{11, 0, 73}, - dictWord{ - 11, - 0, - 376, - }, - dictWord{139, 0, 433}, - dictWord{12, 0, 268}, - dictWord{12, 0, 640}, - dictWord{142, 0, 119}, - dictWord{7, 10, 430}, - dictWord{139, 10, 46}, - dictWord{ - 6, - 0, - 558, - }, - dictWord{7, 0, 651}, - dictWord{8, 0, 421}, - dictWord{9, 0, 0}, - dictWord{10, 0, 34}, - dictWord{139, 0, 1008}, - dictWord{6, 0, 106}, - dictWord{7, 0, 1786}, - dictWord{7, 0, 1821}, - dictWord{9, 0, 102}, - dictWord{9, 0, 763}, - dictWord{5, 10, 602}, - dictWord{7, 10, 2018}, - dictWord{137, 10, 418}, - dictWord{5, 0, 65}, - dictWord{ - 6, - 0, - 416, - }, - dictWord{7, 0, 1720}, - dictWord{7, 0, 1924}, - dictWord{10, 0, 109}, - dictWord{11, 0, 14}, - dictWord{11, 0, 70}, - dictWord{11, 0, 569}, - dictWord{11, 0, 735}, - dictWord{15, 0, 153}, - dictWord{20, 0, 80}, - dictWord{136, 10, 677}, - dictWord{135, 11, 1625}, - dictWord{137, 11, 772}, - dictWord{136, 0, 595}, - dictWord{ - 6, - 11, - 469, - }, - dictWord{7, 11, 1709}, - dictWord{138, 11, 515}, - dictWord{7, 0, 1832}, - dictWord{138, 0, 374}, - dictWord{9, 0, 106}, - dictWord{9, 0, 163}, - dictWord{ - 9, - 0, - 296, - }, - dictWord{10, 0, 167}, - dictWord{10, 0, 172}, - dictWord{10, 0, 777}, - dictWord{139, 0, 16}, - dictWord{6, 0, 6}, - dictWord{7, 0, 81}, - dictWord{7, 0, 771}, - dictWord{ - 7, - 0, - 1731, - }, - dictWord{9, 0, 405}, - dictWord{138, 0, 421}, - dictWord{4, 11, 500}, - dictWord{135, 11, 938}, - dictWord{5, 11, 68}, - dictWord{134, 11, 383}, - dictWord{ - 5, - 0, - 881, - }, - dictWord{133, 0, 885}, - dictWord{6, 0, 854}, - dictWord{6, 0, 1132}, - dictWord{6, 0, 1495}, - dictWord{6, 0, 1526}, - dictWord{6, 0, 1533}, - dictWord{ - 134, - 0, - 1577, - }, - dictWord{4, 11, 337}, - dictWord{6, 11, 353}, - dictWord{7, 11, 1934}, - dictWord{8, 11, 488}, - dictWord{137, 11, 429}, - dictWord{7, 11, 236}, - dictWord{ - 7, - 11, - 1795, - }, - dictWord{8, 11, 259}, - dictWord{9, 11, 135}, - dictWord{9, 11, 177}, - dictWord{10, 11, 825}, - dictWord{11, 11, 115}, - dictWord{11, 11, 370}, - dictWord{ - 11, - 11, - 405, - }, - dictWord{11, 11, 604}, - dictWord{12, 11, 10}, - dictWord{12, 11, 667}, - dictWord{12, 11, 669}, - dictWord{13, 11, 76}, - dictWord{14, 11, 310}, - dictWord{15, 11, 76}, - dictWord{15, 11, 147}, - dictWord{148, 11, 23}, - dictWord{5, 0, 142}, - dictWord{134, 0, 546}, - dictWord{4, 11, 15}, - dictWord{5, 11, 22}, - dictWord{ - 6, - 11, - 244, - }, - dictWord{7, 11, 40}, - dictWord{7, 11, 200}, - dictWord{7, 11, 906}, - dictWord{7, 11, 1199}, - dictWord{9, 11, 616}, - dictWord{10, 11, 716}, - dictWord{ - 11, - 11, - 635, - }, - dictWord{11, 11, 801}, - dictWord{140, 11, 458}, - dictWord{5, 0, 466}, - dictWord{11, 0, 571}, - dictWord{12, 0, 198}, - dictWord{13, 0, 283}, - dictWord{ - 14, - 0, - 186, - }, - dictWord{15, 0, 21}, - dictWord{15, 0, 103}, - dictWord{135, 10, 329}, - dictWord{4, 0, 185}, - dictWord{5, 0, 257}, - dictWord{5, 0, 839}, - dictWord{5, 0, 936}, - dictWord{9, 0, 399}, - dictWord{10, 0, 258}, - dictWord{10, 0, 395}, - dictWord{10, 0, 734}, - dictWord{11, 0, 1014}, - dictWord{12, 0, 23}, - dictWord{13, 0, 350}, - dictWord{ - 14, - 0, - 150, - }, - dictWord{19, 0, 6}, - dictWord{135, 11, 1735}, - dictWord{12, 11, 36}, - dictWord{141, 11, 337}, - dictWord{5, 11, 598}, - dictWord{7, 11, 791}, - dictWord{ - 8, - 11, - 108, - }, - dictWord{137, 11, 123}, - dictWord{132, 10, 469}, - dictWord{7, 0, 404}, - dictWord{7, 0, 1377}, - dictWord{7, 0, 1430}, - dictWord{7, 0, 2017}, - dictWord{ - 8, - 0, - 149, - }, - dictWord{8, 0, 239}, - dictWord{8, 0, 512}, - dictWord{8, 0, 793}, - dictWord{8, 0, 818}, - dictWord{9, 0, 474}, - dictWord{9, 0, 595}, - dictWord{10, 0, 122}, - dictWord{10, 0, 565}, - dictWord{10, 0, 649}, - dictWord{10, 0, 783}, - dictWord{11, 0, 239}, - dictWord{11, 0, 295}, - dictWord{11, 0, 447}, - dictWord{11, 0, 528}, - dictWord{ - 11, - 0, - 639, - }, - dictWord{11, 0, 800}, - dictWord{12, 0, 25}, - dictWord{12, 0, 77}, - dictWord{12, 0, 157}, - dictWord{12, 0, 256}, - dictWord{12, 0, 316}, - dictWord{12, 0, 390}, - dictWord{12, 0, 391}, - dictWord{12, 0, 395}, - dictWord{12, 0, 478}, - dictWord{12, 0, 503}, - dictWord{12, 0, 592}, - dictWord{12, 0, 680}, - dictWord{13, 0, 50}, - dictWord{13, 0, 53}, - dictWord{13, 0, 132}, - dictWord{13, 0, 198}, - dictWord{13, 0, 322}, - dictWord{13, 0, 415}, - dictWord{13, 0, 511}, - dictWord{14, 0, 71}, - dictWord{ - 14, - 0, - 395, - }, - dictWord{15, 0, 71}, - dictWord{15, 0, 136}, - dictWord{17, 0, 123}, - dictWord{18, 0, 93}, - dictWord{147, 0, 58}, - dictWord{136, 0, 712}, - dictWord{ - 134, - 10, - 1743, - }, - dictWord{5, 10, 929}, - dictWord{6, 10, 340}, - dictWord{8, 10, 376}, - dictWord{136, 10, 807}, - dictWord{6, 0, 1848}, - dictWord{8, 0, 860}, - dictWord{ - 10, - 0, - 856, - }, - dictWord{10, 0, 859}, - dictWord{10, 0, 925}, - dictWord{10, 0, 941}, - dictWord{140, 0, 762}, - dictWord{6, 0, 629}, - dictWord{6, 0, 906}, - dictWord{9, 0, 810}, - dictWord{140, 0, 652}, - dictWord{5, 10, 218}, - dictWord{7, 10, 1610}, - dictWord{138, 10, 83}, - dictWord{7, 10, 1512}, - dictWord{135, 10, 1794}, - dictWord{ - 4, - 0, - 377, - }, - dictWord{24, 0, 13}, - dictWord{4, 11, 155}, - dictWord{7, 11, 1689}, - dictWord{11, 10, 0}, - dictWord{144, 10, 78}, - dictWord{4, 11, 164}, - dictWord{5, 11, 151}, - dictWord{5, 11, 730}, - dictWord{5, 11, 741}, - dictWord{7, 11, 498}, - dictWord{7, 11, 870}, - dictWord{7, 11, 1542}, - dictWord{12, 11, 213}, - dictWord{14, 11, 36}, - dictWord{14, 11, 391}, - dictWord{17, 11, 111}, - dictWord{18, 11, 6}, - dictWord{18, 11, 46}, - dictWord{18, 11, 151}, - dictWord{19, 11, 36}, - dictWord{20, 11, 32}, - dictWord{20, 11, 56}, - dictWord{20, 11, 69}, - dictWord{20, 11, 102}, - dictWord{21, 11, 4}, - dictWord{22, 11, 8}, - dictWord{22, 11, 10}, - dictWord{22, 11, 14}, - dictWord{ - 150, - 11, - 31, - }, - dictWord{7, 0, 1842}, - dictWord{133, 10, 571}, - dictWord{4, 10, 455}, - dictWord{4, 11, 624}, - dictWord{135, 11, 1752}, - dictWord{134, 0, 1501}, - dictWord{4, 11, 492}, - dictWord{5, 11, 451}, - dictWord{6, 10, 161}, - dictWord{7, 10, 372}, - dictWord{137, 10, 597}, - dictWord{132, 10, 349}, - dictWord{4, 0, 180}, - dictWord{135, 0, 1906}, - dictWord{135, 11, 835}, - dictWord{141, 11, 70}, - dictWord{132, 0, 491}, - dictWord{137, 10, 751}, - dictWord{6, 10, 432}, - dictWord{ - 139, - 10, - 322, - }, - dictWord{4, 0, 171}, - dictWord{138, 0, 234}, - dictWord{6, 11, 113}, - dictWord{135, 11, 436}, - dictWord{4, 0, 586}, - dictWord{7, 0, 1186}, - dictWord{ - 138, - 0, - 631, - }, - dictWord{5, 10, 468}, - dictWord{10, 10, 325}, - dictWord{11, 10, 856}, - dictWord{12, 10, 345}, - dictWord{143, 10, 104}, - dictWord{5, 10, 223}, - dictWord{10, 11, 592}, - dictWord{10, 11, 753}, - dictWord{12, 11, 317}, - dictWord{12, 11, 355}, - dictWord{12, 11, 465}, - dictWord{12, 11, 469}, - dictWord{ - 12, - 11, - 560, - }, - dictWord{12, 11, 578}, - dictWord{141, 11, 243}, - dictWord{132, 10, 566}, - dictWord{135, 11, 520}, - dictWord{4, 10, 59}, - dictWord{135, 10, 1394}, - dictWord{6, 10, 436}, - dictWord{139, 10, 481}, - dictWord{9, 0, 931}, - dictWord{10, 0, 334}, - dictWord{20, 0, 71}, - dictWord{4, 10, 48}, - dictWord{5, 10, 271}, - dictWord{ - 7, - 10, - 953, - }, - dictWord{135, 11, 1878}, - dictWord{11, 0, 170}, - dictWord{5, 10, 610}, - dictWord{136, 10, 457}, - dictWord{133, 10, 755}, - dictWord{6, 0, 1587}, - dictWord{135, 10, 1217}, - dictWord{4, 10, 197}, - dictWord{149, 11, 26}, - dictWord{133, 11, 585}, - dictWord{137, 11, 521}, - dictWord{133, 0, 765}, - dictWord{ - 133, - 10, - 217, - }, - dictWord{139, 11, 586}, - dictWord{133, 0, 424}, - dictWord{9, 11, 752}, - dictWord{12, 11, 610}, - dictWord{13, 11, 431}, - dictWord{16, 11, 59}, - dictWord{146, 11, 109}, - dictWord{136, 0, 714}, - dictWord{7, 0, 685}, - dictWord{132, 11, 307}, - dictWord{9, 0, 420}, - dictWord{10, 0, 269}, - dictWord{10, 0, 285}, - dictWord{10, 0, 576}, - dictWord{11, 0, 397}, - dictWord{13, 0, 175}, - dictWord{145, 0, 90}, - dictWord{132, 0, 429}, - dictWord{133, 11, 964}, - dictWord{9, 11, 463}, - dictWord{138, 11, 595}, - dictWord{7, 0, 18}, - dictWord{7, 0, 699}, - dictWord{7, 0, 1966}, - dictWord{8, 0, 752}, - dictWord{9, 0, 273}, - dictWord{9, 0, 412}, - dictWord{ - 9, - 0, - 703, - }, - dictWord{10, 0, 71}, - dictWord{10, 0, 427}, - dictWord{138, 0, 508}, - dictWord{4, 10, 165}, - dictWord{7, 10, 1398}, - dictWord{135, 10, 1829}, - dictWord{ - 4, - 0, - 53, - }, - dictWord{5, 0, 186}, - dictWord{7, 0, 752}, - dictWord{7, 0, 828}, - dictWord{142, 0, 116}, - dictWord{8, 0, 575}, - dictWord{10, 0, 289}, - dictWord{139, 0, 319}, - dictWord{132, 0, 675}, - dictWord{134, 0, 1424}, - dictWord{4, 11, 75}, - dictWord{5, 11, 180}, - dictWord{6, 11, 500}, - dictWord{7, 11, 58}, - dictWord{7, 11, 710}, - dictWord{138, 11, 645}, - dictWord{133, 11, 649}, - dictWord{6, 11, 276}, - dictWord{7, 11, 282}, - dictWord{7, 11, 879}, - dictWord{7, 11, 924}, - dictWord{8, 11, 459}, - dictWord{9, 11, 599}, - dictWord{9, 11, 754}, - dictWord{11, 11, 574}, - dictWord{12, 11, 128}, - dictWord{12, 11, 494}, - dictWord{13, 11, 52}, - dictWord{13, 11, 301}, - dictWord{15, 11, 30}, - dictWord{143, 11, 132}, - dictWord{6, 0, 647}, - dictWord{134, 0, 1095}, - dictWord{5, 10, 9}, - dictWord{7, 10, 297}, - dictWord{7, 10, 966}, - dictWord{140, 10, 306}, - dictWord{132, 11, 200}, - dictWord{134, 0, 1334}, - dictWord{5, 10, 146}, - dictWord{6, 10, 411}, - dictWord{138, 10, 721}, - dictWord{ - 6, - 0, - 209, - }, - dictWord{6, 0, 1141}, - dictWord{6, 0, 1288}, - dictWord{8, 0, 468}, - dictWord{9, 0, 210}, - dictWord{11, 0, 36}, - dictWord{12, 0, 28}, - dictWord{12, 0, 630}, - dictWord{13, 0, 21}, - dictWord{13, 0, 349}, - dictWord{14, 0, 7}, - dictWord{145, 0, 13}, - dictWord{6, 10, 177}, - dictWord{135, 10, 467}, - dictWord{4, 0, 342}, - dictWord{ - 135, - 0, - 1179, - }, - dictWord{10, 11, 454}, - dictWord{140, 11, 324}, - dictWord{4, 0, 928}, - dictWord{133, 0, 910}, - dictWord{7, 0, 1838}, - dictWord{6, 11, 225}, - dictWord{ - 137, - 11, - 211, - }, - dictWord{16, 0, 101}, - dictWord{20, 0, 115}, - dictWord{20, 0, 118}, - dictWord{148, 0, 122}, - dictWord{4, 0, 496}, - dictWord{135, 0, 856}, - dictWord{ - 4, - 0, - 318, - }, - dictWord{11, 0, 654}, - dictWord{7, 11, 718}, - dictWord{139, 11, 102}, - dictWord{8, 11, 58}, - dictWord{9, 11, 724}, - dictWord{11, 11, 809}, - dictWord{ - 13, - 11, - 113, - }, - dictWord{145, 11, 72}, - dictWord{5, 10, 200}, - dictWord{6, 11, 345}, - dictWord{135, 11, 1247}, - dictWord{8, 11, 767}, - dictWord{8, 11, 803}, - dictWord{ - 9, - 11, - 301, - }, - dictWord{137, 11, 903}, - dictWord{7, 0, 915}, - dictWord{8, 0, 247}, - dictWord{19, 0, 0}, - dictWord{7, 11, 1949}, - dictWord{136, 11, 674}, - dictWord{ - 4, - 0, - 202, - }, - dictWord{5, 0, 382}, - dictWord{6, 0, 454}, - dictWord{7, 0, 936}, - dictWord{7, 0, 1803}, - dictWord{8, 0, 758}, - dictWord{9, 0, 375}, - dictWord{9, 0, 895}, - dictWord{ - 10, - 0, - 743, - }, - dictWord{10, 0, 792}, - dictWord{11, 0, 978}, - dictWord{11, 0, 1012}, - dictWord{142, 0, 109}, - dictWord{7, 0, 1150}, - dictWord{7, 0, 1425}, - dictWord{ - 7, - 0, - 1453, - }, - dictWord{140, 0, 513}, - dictWord{134, 11, 259}, - dictWord{138, 0, 791}, - dictWord{11, 0, 821}, - dictWord{12, 0, 110}, - dictWord{12, 0, 153}, - dictWord{ - 18, - 0, - 41, - }, - dictWord{150, 0, 19}, - dictWord{134, 10, 481}, - dictWord{132, 0, 796}, - dictWord{6, 0, 445}, - dictWord{9, 0, 909}, - dictWord{136, 11, 254}, - dictWord{ - 10, - 0, - 776, - }, - dictWord{13, 0, 345}, - dictWord{142, 0, 425}, - dictWord{4, 10, 84}, - dictWord{7, 10, 1482}, - dictWord{10, 10, 76}, - dictWord{138, 10, 142}, - dictWord{ - 135, - 11, - 742, - }, - dictWord{6, 0, 578}, - dictWord{133, 10, 1015}, - dictWord{6, 0, 1387}, - dictWord{4, 10, 315}, - dictWord{5, 10, 507}, - dictWord{135, 10, 1370}, - dictWord{4, 0, 438}, - dictWord{133, 0, 555}, - dictWord{136, 0, 766}, - dictWord{133, 11, 248}, - dictWord{134, 10, 1722}, - dictWord{4, 11, 116}, - dictWord{5, 11, 95}, - dictWord{5, 11, 445}, - dictWord{7, 11, 1688}, - dictWord{8, 11, 29}, - dictWord{9, 11, 272}, - dictWord{11, 11, 509}, - dictWord{139, 11, 915}, - dictWord{135, 0, 541}, - dictWord{133, 11, 543}, - dictWord{8, 10, 222}, - dictWord{8, 10, 476}, - dictWord{9, 10, 238}, - dictWord{11, 10, 516}, - dictWord{11, 10, 575}, - dictWord{ - 15, - 10, - 109, - }, - dictWord{146, 10, 100}, - dictWord{6, 0, 880}, - dictWord{134, 0, 1191}, - dictWord{5, 11, 181}, - dictWord{136, 11, 41}, - dictWord{134, 0, 1506}, - dictWord{132, 11, 681}, - dictWord{7, 11, 25}, - dictWord{8, 11, 202}, - dictWord{138, 11, 536}, - dictWord{139, 0, 983}, - dictWord{137, 0, 768}, - dictWord{132, 0, 584}, - dictWord{9, 11, 423}, - dictWord{140, 11, 89}, - dictWord{8, 11, 113}, - dictWord{9, 11, 877}, - dictWord{10, 11, 554}, - dictWord{11, 11, 83}, - dictWord{12, 11, 136}, - dictWord{147, 11, 109}, - dictWord{7, 10, 706}, - dictWord{7, 10, 1058}, - dictWord{138, 10, 538}, - dictWord{133, 11, 976}, - dictWord{4, 11, 206}, - dictWord{ - 135, - 11, - 746, - }, - dictWord{136, 11, 526}, - dictWord{140, 0, 737}, - dictWord{11, 10, 92}, - dictWord{11, 10, 196}, - dictWord{11, 10, 409}, - dictWord{11, 10, 450}, - dictWord{11, 10, 666}, - dictWord{11, 10, 777}, - dictWord{12, 10, 262}, - dictWord{13, 10, 385}, - dictWord{13, 10, 393}, - dictWord{15, 10, 115}, - dictWord{ - 16, - 10, - 45, - }, - dictWord{145, 10, 82}, - dictWord{4, 0, 226}, - dictWord{4, 0, 326}, - dictWord{7, 0, 1770}, - dictWord{4, 11, 319}, - dictWord{5, 11, 699}, - dictWord{138, 11, 673}, - dictWord{6, 10, 40}, - dictWord{135, 10, 1781}, - dictWord{5, 0, 426}, - dictWord{8, 0, 30}, - dictWord{9, 0, 2}, - dictWord{11, 0, 549}, - dictWord{147, 0, 122}, - dictWord{ - 6, - 0, - 1161, - }, - dictWord{134, 0, 1329}, - dictWord{138, 10, 97}, - dictWord{6, 10, 423}, - dictWord{7, 10, 665}, - dictWord{135, 10, 1210}, - dictWord{7, 11, 13}, - dictWord{ - 8, - 11, - 226, - }, - dictWord{10, 11, 537}, - dictWord{11, 11, 570}, - dictWord{11, 11, 605}, - dictWord{11, 11, 799}, - dictWord{11, 11, 804}, - dictWord{12, 11, 85}, - dictWord{12, 11, 516}, - dictWord{12, 11, 623}, - dictWord{13, 11, 112}, - dictWord{13, 11, 361}, - dictWord{14, 11, 77}, - dictWord{14, 11, 78}, - dictWord{17, 11, 28}, - dictWord{147, 11, 110}, - dictWord{132, 11, 769}, - dictWord{132, 11, 551}, - dictWord{132, 11, 728}, - dictWord{147, 0, 117}, - dictWord{9, 11, 57}, - dictWord{ - 9, - 11, - 459, - }, - dictWord{10, 11, 425}, - dictWord{11, 11, 119}, - dictWord{12, 11, 184}, - dictWord{12, 11, 371}, - dictWord{13, 11, 358}, - dictWord{145, 11, 51}, - dictWord{ - 5, - 11, - 188, - }, - dictWord{5, 11, 814}, - dictWord{8, 11, 10}, - dictWord{9, 11, 421}, - dictWord{9, 11, 729}, - dictWord{10, 11, 609}, - dictWord{139, 11, 689}, - dictWord{134, 11, 624}, - dictWord{135, 11, 298}, - dictWord{135, 0, 462}, - dictWord{4, 0, 345}, - dictWord{139, 10, 624}, - dictWord{136, 10, 574}, - dictWord{ - 4, - 0, - 385, - }, - dictWord{7, 0, 265}, - dictWord{135, 0, 587}, - dictWord{6, 0, 808}, - dictWord{132, 11, 528}, - dictWord{133, 0, 398}, - dictWord{132, 10, 354}, - dictWord{ - 4, - 0, - 347, - }, - dictWord{5, 0, 423}, - dictWord{5, 0, 996}, - dictWord{135, 0, 1329}, - dictWord{135, 10, 1558}, - dictWord{7, 0, 1259}, - dictWord{9, 0, 125}, - dictWord{ - 139, - 0, - 65, - }, - dictWord{5, 0, 136}, - dictWord{6, 0, 136}, - dictWord{136, 0, 644}, - dictWord{5, 11, 104}, - dictWord{6, 11, 173}, - dictWord{135, 11, 1631}, - dictWord{ - 135, - 0, - 469, - }, - dictWord{133, 10, 830}, - dictWord{4, 0, 278}, - dictWord{5, 0, 465}, - dictWord{135, 0, 1367}, - dictWord{7, 11, 810}, - dictWord{8, 11, 138}, - dictWord{ - 8, - 11, - 342, - }, - dictWord{9, 11, 84}, - dictWord{10, 11, 193}, - dictWord{11, 11, 883}, - dictWord{140, 11, 359}, - dictWord{5, 10, 496}, - dictWord{135, 10, 203}, - dictWord{ - 4, - 0, - 433, - }, - dictWord{133, 0, 719}, - dictWord{6, 11, 95}, - dictWord{134, 10, 547}, - dictWord{5, 10, 88}, - dictWord{137, 10, 239}, - dictWord{6, 11, 406}, - dictWord{ - 10, - 11, - 409, - }, - dictWord{10, 11, 447}, - dictWord{11, 11, 44}, - dictWord{140, 11, 100}, - dictWord{134, 0, 1423}, - dictWord{7, 10, 650}, - dictWord{135, 10, 1310}, - dictWord{134, 0, 749}, - dictWord{135, 11, 1243}, - dictWord{135, 0, 1363}, - dictWord{6, 0, 381}, - dictWord{7, 0, 645}, - dictWord{7, 0, 694}, - dictWord{8, 0, 546}, - dictWord{7, 10, 1076}, - dictWord{9, 10, 80}, - dictWord{11, 10, 78}, - dictWord{11, 10, 421}, - dictWord{11, 10, 534}, - dictWord{140, 10, 545}, - dictWord{ - 134, - 11, - 1636, - }, - dictWord{135, 11, 1344}, - dictWord{12, 0, 277}, - dictWord{7, 10, 274}, - dictWord{11, 10, 479}, - dictWord{139, 10, 507}, - dictWord{6, 0, 705}, - dictWord{ - 6, - 0, - 783, - }, - dictWord{6, 0, 1275}, - dictWord{6, 0, 1481}, - dictWord{4, 11, 282}, - dictWord{7, 11, 1034}, - dictWord{11, 11, 398}, - dictWord{11, 11, 634}, - dictWord{ - 12, - 11, - 1, - }, - dictWord{12, 11, 79}, - dictWord{12, 11, 544}, - dictWord{14, 11, 237}, - dictWord{17, 11, 10}, - dictWord{146, 11, 20}, - dictWord{134, 0, 453}, - dictWord{ - 4, - 0, - 555, - }, - dictWord{8, 0, 536}, - dictWord{10, 0, 288}, - dictWord{11, 0, 1005}, - dictWord{4, 10, 497}, - dictWord{135, 10, 1584}, - dictWord{5, 11, 118}, - dictWord{ - 5, - 11, - 499, - }, - dictWord{6, 11, 476}, - dictWord{7, 11, 600}, - dictWord{7, 11, 888}, - dictWord{135, 11, 1096}, - dictWord{138, 0, 987}, - dictWord{7, 0, 1107}, - dictWord{ - 7, - 10, - 261, - }, - dictWord{7, 10, 1115}, - dictWord{7, 10, 1354}, - dictWord{7, 10, 1588}, - dictWord{7, 10, 1705}, - dictWord{7, 10, 1902}, - dictWord{9, 10, 465}, - dictWord{10, 10, 248}, - dictWord{10, 10, 349}, - dictWord{10, 10, 647}, - dictWord{11, 10, 527}, - dictWord{11, 10, 660}, - dictWord{11, 10, 669}, - dictWord{ - 12, - 10, - 529, - }, - dictWord{141, 10, 305}, - dictWord{7, 11, 296}, - dictWord{7, 11, 596}, - dictWord{8, 11, 560}, - dictWord{8, 11, 586}, - dictWord{9, 11, 612}, - dictWord{ - 11, - 11, - 100, - }, - dictWord{11, 11, 304}, - dictWord{12, 11, 46}, - dictWord{13, 11, 89}, - dictWord{14, 11, 112}, - dictWord{145, 11, 122}, - dictWord{9, 0, 370}, - dictWord{ - 138, - 0, - 90, - }, - dictWord{136, 10, 13}, - dictWord{132, 0, 860}, - dictWord{7, 10, 642}, - dictWord{8, 10, 250}, - dictWord{11, 10, 123}, - dictWord{11, 10, 137}, - dictWord{ - 13, - 10, - 48, - }, - dictWord{142, 10, 95}, - dictWord{135, 10, 1429}, - dictWord{137, 11, 321}, - dictWord{132, 0, 257}, - dictWord{135, 0, 2031}, - dictWord{7, 0, 1768}, - dictWord{7, 11, 1599}, - dictWord{7, 11, 1723}, - dictWord{8, 11, 79}, - dictWord{8, 11, 106}, - dictWord{8, 11, 190}, - dictWord{8, 11, 302}, - dictWord{8, 11, 383}, - dictWord{9, 11, 119}, - dictWord{9, 11, 233}, - dictWord{9, 11, 298}, - dictWord{9, 11, 419}, - dictWord{9, 11, 471}, - dictWord{10, 11, 181}, - dictWord{10, 11, 406}, - dictWord{11, 11, 57}, - dictWord{11, 11, 85}, - dictWord{11, 11, 120}, - dictWord{11, 11, 177}, - dictWord{11, 11, 296}, - dictWord{11, 11, 382}, - dictWord{11, 11, 454}, - dictWord{11, 11, 758}, - dictWord{11, 11, 999}, - dictWord{12, 11, 27}, - dictWord{12, 11, 98}, - dictWord{12, 11, 131}, - dictWord{12, 11, 245}, - dictWord{ - 12, - 11, - 312, - }, - dictWord{12, 11, 446}, - dictWord{12, 11, 454}, - dictWord{13, 11, 25}, - dictWord{13, 11, 98}, - dictWord{13, 11, 426}, - dictWord{13, 11, 508}, - dictWord{ - 14, - 11, - 6, - }, - dictWord{14, 11, 163}, - dictWord{14, 11, 272}, - dictWord{14, 11, 277}, - dictWord{14, 11, 370}, - dictWord{15, 11, 95}, - dictWord{15, 11, 138}, - dictWord{ - 15, - 11, - 167, - }, - dictWord{17, 11, 18}, - dictWord{17, 11, 38}, - dictWord{20, 11, 96}, - dictWord{149, 11, 32}, - dictWord{5, 11, 722}, - dictWord{134, 11, 1759}, - dictWord{145, 11, 16}, - dictWord{6, 0, 1071}, - dictWord{134, 0, 1561}, - dictWord{10, 10, 545}, - dictWord{140, 10, 301}, - dictWord{6, 0, 83}, - dictWord{6, 0, 1733}, - dictWord{135, 0, 1389}, - dictWord{4, 0, 835}, - dictWord{135, 0, 1818}, - dictWord{133, 11, 258}, - dictWord{4, 10, 904}, - dictWord{133, 10, 794}, - dictWord{ - 134, - 0, - 2006, - }, - dictWord{5, 11, 30}, - dictWord{7, 11, 495}, - dictWord{8, 11, 134}, - dictWord{9, 11, 788}, - dictWord{140, 11, 438}, - dictWord{135, 11, 2004}, - dictWord{ - 137, - 0, - 696, - }, - dictWord{5, 11, 50}, - dictWord{6, 11, 439}, - dictWord{7, 11, 780}, - dictWord{135, 11, 1040}, - dictWord{7, 11, 772}, - dictWord{7, 11, 1104}, - dictWord{ - 7, - 11, - 1647, - }, - dictWord{11, 11, 269}, - dictWord{11, 11, 539}, - dictWord{11, 11, 607}, - dictWord{11, 11, 627}, - dictWord{11, 11, 706}, - dictWord{11, 11, 975}, - dictWord{12, 11, 248}, - dictWord{12, 11, 311}, - dictWord{12, 11, 434}, - dictWord{12, 11, 600}, - dictWord{12, 11, 622}, - dictWord{13, 11, 297}, - dictWord{ - 13, - 11, - 367, - }, - dictWord{13, 11, 485}, - dictWord{14, 11, 69}, - dictWord{14, 11, 409}, - dictWord{143, 11, 108}, - dictWord{5, 11, 1}, - dictWord{6, 11, 81}, - dictWord{ - 138, - 11, - 520, - }, - dictWord{7, 0, 1718}, - dictWord{9, 0, 95}, - dictWord{9, 0, 274}, - dictWord{10, 0, 279}, - dictWord{10, 0, 317}, - dictWord{10, 0, 420}, - dictWord{11, 0, 303}, - dictWord{11, 0, 808}, - dictWord{12, 0, 134}, - dictWord{12, 0, 367}, - dictWord{13, 0, 149}, - dictWord{13, 0, 347}, - dictWord{14, 0, 349}, - dictWord{14, 0, 406}, - dictWord{ - 18, - 0, - 22, - }, - dictWord{18, 0, 89}, - dictWord{18, 0, 122}, - dictWord{147, 0, 47}, - dictWord{5, 11, 482}, - dictWord{8, 11, 98}, - dictWord{9, 11, 172}, - dictWord{10, 11, 222}, - dictWord{10, 11, 700}, - dictWord{10, 11, 822}, - dictWord{11, 11, 302}, - dictWord{11, 11, 778}, - dictWord{12, 11, 50}, - dictWord{12, 11, 127}, - dictWord{ - 12, - 11, - 396, - }, - dictWord{13, 11, 62}, - dictWord{13, 11, 328}, - dictWord{14, 11, 122}, - dictWord{147, 11, 72}, - dictWord{7, 10, 386}, - dictWord{138, 10, 713}, - dictWord{ - 6, - 10, - 7, - }, - dictWord{6, 10, 35}, - dictWord{7, 10, 147}, - dictWord{7, 10, 1069}, - dictWord{7, 10, 1568}, - dictWord{7, 10, 1575}, - dictWord{7, 10, 1917}, - dictWord{ - 8, - 10, - 43, - }, - dictWord{8, 10, 208}, - dictWord{9, 10, 128}, - dictWord{9, 10, 866}, - dictWord{10, 10, 20}, - dictWord{11, 10, 981}, - dictWord{147, 10, 33}, - dictWord{ - 133, - 0, - 26, - }, - dictWord{132, 0, 550}, - dictWord{5, 11, 2}, - dictWord{7, 11, 1494}, - dictWord{136, 11, 589}, - dictWord{6, 11, 512}, - dictWord{7, 11, 797}, - dictWord{ - 8, - 11, - 253, - }, - dictWord{9, 11, 77}, - dictWord{10, 11, 1}, - dictWord{10, 11, 129}, - dictWord{10, 11, 225}, - dictWord{11, 11, 118}, - dictWord{11, 11, 226}, - dictWord{ - 11, - 11, - 251, - }, - dictWord{11, 11, 430}, - dictWord{11, 11, 701}, - dictWord{11, 11, 974}, - dictWord{11, 11, 982}, - dictWord{12, 11, 64}, - dictWord{12, 11, 260}, - dictWord{ - 12, - 11, - 488, - }, - dictWord{140, 11, 690}, - dictWord{7, 10, 893}, - dictWord{141, 10, 424}, - dictWord{134, 0, 901}, - dictWord{136, 0, 822}, - dictWord{4, 0, 902}, - dictWord{5, 0, 809}, - dictWord{134, 0, 122}, - dictWord{6, 0, 807}, - dictWord{134, 0, 1366}, - dictWord{7, 0, 262}, - dictWord{5, 11, 748}, - dictWord{134, 11, 553}, - dictWord{133, 0, 620}, - dictWord{4, 0, 34}, - dictWord{5, 0, 574}, - dictWord{7, 0, 279}, - dictWord{7, 0, 1624}, - dictWord{136, 0, 601}, - dictWord{9, 0, 170}, - dictWord{ - 6, - 10, - 322, - }, - dictWord{9, 10, 552}, - dictWord{11, 10, 274}, - dictWord{13, 10, 209}, - dictWord{13, 10, 499}, - dictWord{14, 10, 85}, - dictWord{15, 10, 126}, - dictWord{ - 145, - 10, - 70, - }, - dictWord{132, 0, 537}, - dictWord{4, 11, 12}, - dictWord{7, 11, 420}, - dictWord{7, 11, 522}, - dictWord{7, 11, 809}, - dictWord{8, 11, 797}, - dictWord{ - 141, - 11, - 88, - }, - dictWord{133, 0, 332}, - dictWord{8, 10, 83}, - dictWord{8, 10, 742}, - dictWord{8, 10, 817}, - dictWord{9, 10, 28}, - dictWord{9, 10, 29}, - dictWord{9, 10, 885}, - dictWord{10, 10, 387}, - dictWord{11, 10, 633}, - dictWord{11, 10, 740}, - dictWord{13, 10, 235}, - dictWord{13, 10, 254}, - dictWord{15, 10, 143}, - dictWord{ - 143, - 10, - 146, - }, - dictWord{6, 0, 1909}, - dictWord{9, 0, 964}, - dictWord{12, 0, 822}, - dictWord{12, 0, 854}, - dictWord{12, 0, 865}, - dictWord{12, 0, 910}, - dictWord{12, 0, 938}, - dictWord{15, 0, 169}, - dictWord{15, 0, 208}, - dictWord{15, 0, 211}, - dictWord{18, 0, 205}, - dictWord{18, 0, 206}, - dictWord{18, 0, 220}, - dictWord{18, 0, 223}, - dictWord{152, 0, 24}, - dictWord{140, 10, 49}, - dictWord{5, 11, 528}, - dictWord{135, 11, 1580}, - dictWord{6, 0, 261}, - dictWord{8, 0, 182}, - dictWord{139, 0, 943}, - dictWord{134, 0, 1721}, - dictWord{4, 0, 933}, - dictWord{133, 0, 880}, - dictWord{136, 11, 321}, - dictWord{5, 11, 266}, - dictWord{9, 11, 290}, - dictWord{9, 11, 364}, - dictWord{10, 11, 293}, - dictWord{11, 11, 606}, - dictWord{142, 11, 45}, - dictWord{6, 0, 1609}, - dictWord{4, 11, 50}, - dictWord{6, 11, 510}, - dictWord{6, 11, 594}, - dictWord{9, 11, 121}, - dictWord{10, 11, 49}, - dictWord{10, 11, 412}, - dictWord{139, 11, 834}, - dictWord{7, 0, 895}, - dictWord{136, 11, 748}, - dictWord{132, 11, 466}, - dictWord{4, 10, 110}, - dictWord{10, 10, 415}, - dictWord{10, 10, 597}, - dictWord{142, 10, 206}, - dictWord{133, 0, 812}, - dictWord{135, 11, 281}, - dictWord{ - 6, - 0, - 1890, - }, - dictWord{6, 0, 1902}, - dictWord{6, 0, 1916}, - dictWord{9, 0, 929}, - dictWord{9, 0, 942}, - dictWord{9, 0, 975}, - dictWord{9, 0, 984}, - dictWord{9, 0, 986}, - dictWord{ - 9, - 0, - 1011, - }, - dictWord{9, 0, 1019}, - dictWord{12, 0, 804}, - dictWord{12, 0, 851}, - dictWord{12, 0, 867}, - dictWord{12, 0, 916}, - dictWord{12, 0, 923}, - dictWord{ - 15, - 0, - 194, - }, - dictWord{15, 0, 204}, - dictWord{15, 0, 210}, - dictWord{15, 0, 222}, - dictWord{15, 0, 223}, - dictWord{15, 0, 229}, - dictWord{15, 0, 250}, - dictWord{ - 18, - 0, - 179, - }, - dictWord{18, 0, 186}, - dictWord{18, 0, 192}, - dictWord{7, 10, 205}, - dictWord{135, 10, 2000}, - dictWord{132, 11, 667}, - dictWord{135, 0, 778}, - dictWord{ - 4, - 0, - 137, - }, - dictWord{7, 0, 1178}, - dictWord{135, 0, 1520}, - dictWord{134, 0, 1314}, - dictWord{4, 11, 242}, - dictWord{134, 11, 333}, - dictWord{6, 0, 1661}, - dictWord{7, 0, 1975}, - dictWord{7, 0, 2009}, - dictWord{135, 0, 2011}, - dictWord{134, 0, 1591}, - dictWord{4, 10, 283}, - dictWord{135, 10, 1194}, - dictWord{ - 11, - 0, - 820, - }, - dictWord{150, 0, 51}, - dictWord{4, 11, 39}, - dictWord{5, 11, 36}, - dictWord{7, 11, 1843}, - dictWord{8, 11, 407}, - dictWord{11, 11, 144}, - dictWord{ - 140, - 11, - 523, - }, - dictWord{134, 10, 1720}, - dictWord{4, 11, 510}, - dictWord{7, 11, 29}, - dictWord{7, 11, 66}, - dictWord{7, 11, 1980}, - dictWord{10, 11, 487}, - dictWord{ - 10, - 11, - 809, - }, - dictWord{146, 11, 9}, - dictWord{5, 0, 89}, - dictWord{7, 0, 1915}, - dictWord{9, 0, 185}, - dictWord{9, 0, 235}, - dictWord{10, 0, 64}, - dictWord{10, 0, 270}, - dictWord{10, 0, 403}, - dictWord{10, 0, 469}, - dictWord{10, 0, 529}, - dictWord{10, 0, 590}, - dictWord{11, 0, 140}, - dictWord{11, 0, 860}, - dictWord{13, 0, 1}, - dictWord{ - 13, - 0, - 422, - }, - dictWord{14, 0, 341}, - dictWord{14, 0, 364}, - dictWord{17, 0, 93}, - dictWord{18, 0, 113}, - dictWord{19, 0, 97}, - dictWord{147, 0, 113}, - dictWord{133, 0, 695}, - dictWord{6, 0, 987}, - dictWord{134, 0, 1160}, - dictWord{5, 0, 6}, - dictWord{6, 0, 183}, - dictWord{7, 0, 680}, - dictWord{7, 0, 978}, - dictWord{7, 0, 1013}, - dictWord{ - 7, - 0, - 1055, - }, - dictWord{12, 0, 230}, - dictWord{13, 0, 172}, - dictWord{146, 0, 29}, - dictWord{134, 11, 570}, - dictWord{132, 11, 787}, - dictWord{134, 11, 518}, - dictWord{ - 6, - 0, - 29, - }, - dictWord{139, 0, 63}, - dictWord{132, 11, 516}, - dictWord{136, 11, 821}, - dictWord{132, 0, 311}, - dictWord{134, 0, 1740}, - dictWord{7, 0, 170}, - dictWord{8, 0, 90}, - dictWord{8, 0, 177}, - dictWord{8, 0, 415}, - dictWord{11, 0, 714}, - dictWord{14, 0, 281}, - dictWord{136, 10, 735}, - dictWord{134, 0, 1961}, - dictWord{ - 135, - 11, - 1405, - }, - dictWord{4, 11, 10}, - dictWord{7, 11, 917}, - dictWord{139, 11, 786}, - dictWord{5, 10, 132}, - dictWord{9, 10, 486}, - dictWord{9, 10, 715}, - dictWord{ - 10, - 10, - 458, - }, - dictWord{11, 10, 373}, - dictWord{11, 10, 668}, - dictWord{11, 10, 795}, - dictWord{11, 10, 897}, - dictWord{12, 10, 272}, - dictWord{12, 10, 424}, - dictWord{12, 10, 539}, - dictWord{12, 10, 558}, - dictWord{14, 10, 245}, - dictWord{14, 10, 263}, - dictWord{14, 10, 264}, - dictWord{14, 10, 393}, - dictWord{ - 142, - 10, - 403, - }, - dictWord{11, 0, 91}, - dictWord{13, 0, 129}, - dictWord{15, 0, 101}, - dictWord{145, 0, 125}, - dictWord{135, 0, 1132}, - dictWord{4, 0, 494}, - dictWord{6, 0, 74}, - dictWord{7, 0, 44}, - dictWord{7, 0, 407}, - dictWord{12, 0, 17}, - dictWord{15, 0, 5}, - dictWord{148, 0, 11}, - dictWord{133, 10, 379}, - dictWord{5, 0, 270}, - dictWord{ - 5, - 11, - 684, - }, - dictWord{6, 10, 89}, - dictWord{6, 10, 400}, - dictWord{7, 10, 1569}, - dictWord{7, 10, 1623}, - dictWord{7, 10, 1850}, - dictWord{8, 10, 218}, - dictWord{ - 8, - 10, - 422, - }, - dictWord{9, 10, 570}, - dictWord{138, 10, 626}, - dictWord{4, 0, 276}, - dictWord{133, 0, 296}, - dictWord{6, 0, 1523}, - dictWord{134, 11, 27}, - dictWord{ - 6, - 10, - 387, - }, - dictWord{7, 10, 882}, - dictWord{141, 10, 111}, - dictWord{6, 10, 224}, - dictWord{7, 10, 877}, - dictWord{137, 10, 647}, - dictWord{135, 10, 790}, - dictWord{ - 4, - 0, - 7, - }, - dictWord{5, 0, 90}, - dictWord{5, 0, 158}, - dictWord{6, 0, 542}, - dictWord{7, 0, 221}, - dictWord{7, 0, 1574}, - dictWord{9, 0, 490}, - dictWord{10, 0, 540}, - dictWord{ - 11, - 0, - 443, - }, - dictWord{139, 0, 757}, - dictWord{7, 0, 588}, - dictWord{9, 0, 175}, - dictWord{138, 0, 530}, - dictWord{135, 10, 394}, - dictWord{142, 11, 23}, - dictWord{ - 134, - 0, - 786, - }, - dictWord{135, 0, 580}, - dictWord{7, 0, 88}, - dictWord{136, 0, 627}, - dictWord{5, 0, 872}, - dictWord{6, 0, 57}, - dictWord{7, 0, 471}, - dictWord{9, 0, 447}, - dictWord{137, 0, 454}, - dictWord{6, 11, 342}, - dictWord{6, 11, 496}, - dictWord{8, 11, 275}, - dictWord{137, 11, 206}, - dictWord{4, 11, 909}, - dictWord{133, 11, 940}, - dictWord{6, 0, 735}, - dictWord{132, 11, 891}, - dictWord{8, 0, 845}, - dictWord{8, 0, 916}, - dictWord{135, 10, 1409}, - dictWord{5, 0, 31}, - dictWord{134, 0, 614}, - dictWord{11, 0, 458}, - dictWord{12, 0, 15}, - dictWord{140, 0, 432}, - dictWord{8, 0, 330}, - dictWord{140, 0, 477}, - dictWord{4, 0, 530}, - dictWord{5, 0, 521}, - dictWord{ - 7, - 0, - 1200, - }, - dictWord{10, 0, 460}, - dictWord{132, 11, 687}, - dictWord{6, 0, 424}, - dictWord{135, 0, 1866}, - dictWord{9, 0, 569}, - dictWord{12, 0, 12}, - dictWord{ - 12, - 0, - 81, - }, - dictWord{12, 0, 319}, - dictWord{13, 0, 69}, - dictWord{14, 0, 259}, - dictWord{16, 0, 87}, - dictWord{17, 0, 1}, - dictWord{17, 0, 21}, - dictWord{17, 0, 24}, - dictWord{ - 18, - 0, - 15, - }, - dictWord{18, 0, 56}, - dictWord{18, 0, 59}, - dictWord{18, 0, 127}, - dictWord{18, 0, 154}, - dictWord{19, 0, 19}, - dictWord{148, 0, 31}, - dictWord{7, 0, 1302}, - dictWord{136, 10, 38}, - dictWord{134, 11, 253}, - dictWord{5, 10, 261}, - dictWord{7, 10, 78}, - dictWord{7, 10, 199}, - dictWord{8, 10, 815}, - dictWord{9, 10, 126}, - dictWord{138, 10, 342}, - dictWord{5, 0, 595}, - dictWord{135, 0, 1863}, - dictWord{6, 11, 41}, - dictWord{141, 11, 160}, - dictWord{5, 0, 13}, - dictWord{134, 0, 142}, - dictWord{6, 0, 97}, - dictWord{7, 0, 116}, - dictWord{8, 0, 322}, - dictWord{8, 0, 755}, - dictWord{9, 0, 548}, - dictWord{10, 0, 714}, - dictWord{11, 0, 884}, - dictWord{13, 0, 324}, - dictWord{7, 11, 1304}, - dictWord{138, 11, 477}, - dictWord{132, 10, 628}, - dictWord{134, 11, 1718}, - dictWord{7, 10, 266}, - dictWord{136, 10, 804}, - dictWord{135, 10, 208}, - dictWord{7, 0, 1021}, - dictWord{6, 10, 79}, - dictWord{135, 10, 1519}, - dictWord{7, 0, 1472}, - dictWord{135, 0, 1554}, - dictWord{6, 11, 362}, - dictWord{146, 11, 51}, - dictWord{7, 0, 1071}, - dictWord{7, 0, 1541}, - dictWord{7, 0, 1767}, - dictWord{7, 0, 1806}, - dictWord{11, 0, 162}, - dictWord{11, 0, 242}, - dictWord{11, 0, 452}, - dictWord{12, 0, 605}, - dictWord{15, 0, 26}, - dictWord{144, 0, 44}, - dictWord{136, 10, 741}, - dictWord{133, 11, 115}, - dictWord{145, 0, 115}, - dictWord{134, 10, 376}, - dictWord{6, 0, 1406}, - dictWord{134, 0, 1543}, - dictWord{5, 11, 193}, - dictWord{12, 11, 178}, - dictWord{13, 11, 130}, - dictWord{ - 145, - 11, - 84, - }, - dictWord{135, 0, 1111}, - dictWord{8, 0, 1}, - dictWord{9, 0, 650}, - dictWord{10, 0, 326}, - dictWord{5, 11, 705}, - dictWord{137, 11, 606}, - dictWord{5, 0, 488}, - dictWord{6, 0, 527}, - dictWord{7, 0, 489}, - dictWord{7, 0, 1636}, - dictWord{8, 0, 121}, - dictWord{8, 0, 144}, - dictWord{8, 0, 359}, - dictWord{9, 0, 193}, - dictWord{9, 0, 241}, - dictWord{9, 0, 336}, - dictWord{9, 0, 882}, - dictWord{11, 0, 266}, - dictWord{11, 0, 372}, - dictWord{11, 0, 944}, - dictWord{12, 0, 401}, - dictWord{140, 0, 641}, - dictWord{135, 11, 174}, - dictWord{6, 0, 267}, - dictWord{7, 10, 244}, - dictWord{7, 10, 632}, - dictWord{7, 10, 1609}, - dictWord{8, 10, 178}, - dictWord{8, 10, 638}, - dictWord{141, 10, 58}, - dictWord{134, 0, 1983}, - dictWord{134, 0, 1155}, - dictWord{134, 0, 1575}, - dictWord{134, 0, 1438}, - dictWord{9, 0, 31}, - dictWord{ - 10, - 0, - 244, - }, - dictWord{10, 0, 699}, - dictWord{12, 0, 149}, - dictWord{141, 0, 497}, - dictWord{133, 0, 377}, - dictWord{4, 11, 122}, - dictWord{5, 11, 796}, - dictWord{ - 5, - 11, - 952, - }, - dictWord{6, 11, 1660}, - dictWord{6, 11, 1671}, - dictWord{8, 11, 567}, - dictWord{9, 11, 687}, - dictWord{9, 11, 742}, - dictWord{10, 11, 686}, - dictWord{ - 11, - 11, - 356, - }, - dictWord{11, 11, 682}, - dictWord{140, 11, 281}, - dictWord{145, 0, 101}, - dictWord{11, 11, 0}, - dictWord{144, 11, 78}, - dictWord{5, 11, 179}, - dictWord{ - 5, - 10, - 791, - }, - dictWord{7, 11, 1095}, - dictWord{135, 11, 1213}, - dictWord{8, 11, 372}, - dictWord{9, 11, 122}, - dictWord{138, 11, 175}, - dictWord{7, 10, 686}, - dictWord{8, 10, 33}, - dictWord{8, 10, 238}, - dictWord{10, 10, 616}, - dictWord{11, 10, 467}, - dictWord{11, 10, 881}, - dictWord{13, 10, 217}, - dictWord{13, 10, 253}, - dictWord{142, 10, 268}, - dictWord{9, 0, 476}, - dictWord{4, 11, 66}, - dictWord{7, 11, 722}, - dictWord{135, 11, 904}, - dictWord{7, 11, 352}, - dictWord{137, 11, 684}, - dictWord{135, 0, 2023}, - dictWord{135, 0, 1836}, - dictWord{132, 10, 447}, - dictWord{5, 0, 843}, - dictWord{144, 0, 35}, - dictWord{137, 11, 779}, - dictWord{ - 141, - 11, - 35, - }, - dictWord{4, 10, 128}, - dictWord{5, 10, 415}, - dictWord{6, 10, 462}, - dictWord{7, 10, 294}, - dictWord{7, 10, 578}, - dictWord{10, 10, 710}, - dictWord{ - 139, - 10, - 86, - }, - dictWord{132, 0, 554}, - dictWord{133, 0, 536}, - dictWord{136, 10, 587}, - dictWord{5, 0, 207}, - dictWord{9, 0, 79}, - dictWord{11, 0, 625}, - dictWord{ - 145, - 0, - 7, - }, - dictWord{7, 0, 1371}, - dictWord{6, 10, 427}, - dictWord{138, 10, 692}, - dictWord{4, 0, 424}, - dictWord{4, 10, 195}, - dictWord{135, 10, 802}, - dictWord{ - 8, - 0, - 785, - }, - dictWord{133, 11, 564}, - dictWord{135, 0, 336}, - dictWord{4, 0, 896}, - dictWord{6, 0, 1777}, - dictWord{134, 11, 556}, - dictWord{137, 11, 103}, - dictWord{134, 10, 1683}, - dictWord{7, 11, 544}, - dictWord{8, 11, 719}, - dictWord{138, 11, 61}, - dictWord{138, 10, 472}, - dictWord{4, 11, 5}, - dictWord{5, 11, 498}, - dictWord{136, 11, 637}, - dictWord{7, 0, 750}, - dictWord{9, 0, 223}, - dictWord{11, 0, 27}, - dictWord{11, 0, 466}, - dictWord{12, 0, 624}, - dictWord{14, 0, 265}, - dictWord{ - 146, - 0, - 61, - }, - dictWord{12, 0, 238}, - dictWord{18, 0, 155}, - dictWord{12, 11, 238}, - dictWord{146, 11, 155}, - dictWord{151, 10, 28}, - dictWord{133, 11, 927}, - dictWord{12, 0, 383}, - dictWord{5, 10, 3}, - dictWord{8, 10, 578}, - dictWord{9, 10, 118}, - dictWord{10, 10, 705}, - dictWord{141, 10, 279}, - dictWord{4, 11, 893}, - dictWord{ - 5, - 11, - 780, - }, - dictWord{133, 11, 893}, - dictWord{4, 0, 603}, - dictWord{133, 0, 661}, - dictWord{4, 0, 11}, - dictWord{6, 0, 128}, - dictWord{7, 0, 231}, - dictWord{ - 7, - 0, - 1533, - }, - dictWord{10, 0, 725}, - dictWord{5, 10, 229}, - dictWord{5, 11, 238}, - dictWord{135, 11, 1350}, - dictWord{8, 10, 102}, - dictWord{10, 10, 578}, - dictWord{ - 10, - 10, - 672, - }, - dictWord{12, 10, 496}, - dictWord{13, 10, 408}, - dictWord{14, 10, 121}, - dictWord{145, 10, 106}, - dictWord{132, 0, 476}, - dictWord{134, 0, 1552}, - dictWord{134, 11, 1729}, - dictWord{8, 10, 115}, - dictWord{8, 10, 350}, - dictWord{9, 10, 489}, - dictWord{10, 10, 128}, - dictWord{11, 10, 306}, - dictWord{ - 12, - 10, - 373, - }, - dictWord{14, 10, 30}, - dictWord{17, 10, 79}, - dictWord{19, 10, 80}, - dictWord{150, 10, 55}, - dictWord{135, 0, 1807}, - dictWord{4, 0, 680}, - dictWord{ - 4, - 11, - 60, - }, - dictWord{7, 11, 760}, - dictWord{7, 11, 1800}, - dictWord{8, 11, 314}, - dictWord{9, 11, 700}, - dictWord{139, 11, 487}, - dictWord{4, 10, 230}, - dictWord{ - 5, - 10, - 702, - }, - dictWord{148, 11, 94}, - dictWord{132, 11, 228}, - dictWord{139, 0, 435}, - dictWord{9, 0, 20}, - dictWord{10, 0, 324}, - dictWord{10, 0, 807}, - dictWord{ - 139, - 0, - 488, - }, - dictWord{6, 10, 1728}, - dictWord{136, 11, 419}, - dictWord{4, 10, 484}, - dictWord{18, 10, 26}, - dictWord{19, 10, 42}, - dictWord{20, 10, 43}, - dictWord{ - 21, - 10, - 0, - }, - dictWord{23, 10, 27}, - dictWord{152, 10, 14}, - dictWord{135, 0, 1431}, - dictWord{133, 11, 828}, - dictWord{5, 0, 112}, - dictWord{6, 0, 103}, - dictWord{ - 6, - 0, - 150, - }, - dictWord{7, 0, 1303}, - dictWord{9, 0, 292}, - dictWord{10, 0, 481}, - dictWord{20, 0, 13}, - dictWord{7, 11, 176}, - dictWord{7, 11, 178}, - dictWord{7, 11, 1110}, - dictWord{10, 11, 481}, - dictWord{148, 11, 13}, - dictWord{138, 0, 356}, - dictWord{4, 11, 51}, - dictWord{5, 11, 39}, - dictWord{6, 11, 4}, - dictWord{7, 11, 591}, - dictWord{ - 7, - 11, - 849, - }, - dictWord{7, 11, 951}, - dictWord{7, 11, 1129}, - dictWord{7, 11, 1613}, - dictWord{7, 11, 1760}, - dictWord{7, 11, 1988}, - dictWord{9, 11, 434}, - dictWord{10, 11, 754}, - dictWord{11, 11, 25}, - dictWord{11, 11, 37}, - dictWord{139, 11, 414}, - dictWord{6, 0, 1963}, - dictWord{134, 0, 2000}, - dictWord{ - 132, - 10, - 633, - }, - dictWord{6, 0, 1244}, - dictWord{133, 11, 902}, - dictWord{135, 11, 928}, - dictWord{140, 0, 18}, - dictWord{138, 0, 204}, - dictWord{135, 11, 1173}, - dictWord{134, 0, 867}, - dictWord{4, 0, 708}, - dictWord{8, 0, 15}, - dictWord{9, 0, 50}, - dictWord{9, 0, 386}, - dictWord{11, 0, 18}, - dictWord{11, 0, 529}, - dictWord{140, 0, 228}, - dictWord{134, 11, 270}, - dictWord{4, 0, 563}, - dictWord{7, 0, 109}, - dictWord{7, 0, 592}, - dictWord{7, 0, 637}, - dictWord{7, 0, 770}, - dictWord{8, 0, 463}, - dictWord{ - 9, - 0, - 60, - }, - dictWord{9, 0, 335}, - dictWord{9, 0, 904}, - dictWord{10, 0, 73}, - dictWord{11, 0, 434}, - dictWord{12, 0, 585}, - dictWord{13, 0, 331}, - dictWord{18, 0, 110}, - dictWord{148, 0, 60}, - dictWord{132, 0, 502}, - dictWord{14, 11, 359}, - dictWord{19, 11, 52}, - dictWord{148, 11, 47}, - dictWord{6, 11, 377}, - dictWord{7, 11, 1025}, - dictWord{9, 11, 613}, - dictWord{145, 11, 104}, - dictWord{6, 0, 347}, - dictWord{10, 0, 161}, - dictWord{5, 10, 70}, - dictWord{5, 10, 622}, - dictWord{6, 10, 334}, - dictWord{ - 7, - 10, - 1032, - }, - dictWord{9, 10, 171}, - dictWord{11, 10, 26}, - dictWord{11, 10, 213}, - dictWord{11, 10, 637}, - dictWord{11, 10, 707}, - dictWord{12, 10, 202}, - dictWord{12, 10, 380}, - dictWord{13, 10, 226}, - dictWord{13, 10, 355}, - dictWord{14, 10, 222}, - dictWord{145, 10, 42}, - dictWord{132, 11, 416}, - dictWord{4, 0, 33}, - dictWord{5, 0, 102}, - dictWord{6, 0, 284}, - dictWord{7, 0, 1079}, - dictWord{7, 0, 1423}, - dictWord{7, 0, 1702}, - dictWord{8, 0, 470}, - dictWord{9, 0, 554}, - dictWord{ - 9, - 0, - 723, - }, - dictWord{11, 0, 333}, - dictWord{142, 11, 372}, - dictWord{5, 11, 152}, - dictWord{5, 11, 197}, - dictWord{7, 11, 340}, - dictWord{7, 11, 867}, - dictWord{ - 10, - 11, - 548, - }, - dictWord{10, 11, 581}, - dictWord{11, 11, 6}, - dictWord{12, 11, 3}, - dictWord{12, 11, 19}, - dictWord{14, 11, 110}, - dictWord{142, 11, 289}, - dictWord{ - 7, - 0, - 246, - }, - dictWord{135, 0, 840}, - dictWord{6, 0, 10}, - dictWord{8, 0, 571}, - dictWord{9, 0, 739}, - dictWord{143, 0, 91}, - dictWord{6, 0, 465}, - dictWord{7, 0, 1465}, - dictWord{ - 4, - 10, - 23, - }, - dictWord{4, 10, 141}, - dictWord{5, 10, 313}, - dictWord{5, 10, 1014}, - dictWord{6, 10, 50}, - dictWord{7, 10, 142}, - dictWord{7, 10, 559}, - dictWord{ - 8, - 10, - 640, - }, - dictWord{9, 10, 460}, - dictWord{9, 10, 783}, - dictWord{11, 10, 741}, - dictWord{12, 10, 183}, - dictWord{141, 10, 488}, - dictWord{133, 0, 626}, - dictWord{ - 136, - 0, - 614, - }, - dictWord{138, 0, 237}, - dictWord{7, 11, 34}, - dictWord{7, 11, 190}, - dictWord{8, 11, 28}, - dictWord{8, 11, 141}, - dictWord{8, 11, 444}, - dictWord{ - 8, - 11, - 811, - }, - dictWord{9, 11, 468}, - dictWord{11, 11, 334}, - dictWord{12, 11, 24}, - dictWord{12, 11, 386}, - dictWord{140, 11, 576}, - dictWord{133, 11, 757}, - dictWord{ - 5, - 0, - 18, - }, - dictWord{6, 0, 526}, - dictWord{13, 0, 24}, - dictWord{13, 0, 110}, - dictWord{19, 0, 5}, - dictWord{147, 0, 44}, - dictWord{6, 0, 506}, - dictWord{134, 11, 506}, - dictWord{135, 11, 1553}, - dictWord{4, 0, 309}, - dictWord{5, 0, 462}, - dictWord{7, 0, 970}, - dictWord{7, 0, 1097}, - dictWord{22, 0, 30}, - dictWord{22, 0, 33}, - dictWord{ - 7, - 11, - 1385, - }, - dictWord{11, 11, 582}, - dictWord{11, 11, 650}, - dictWord{11, 11, 901}, - dictWord{11, 11, 949}, - dictWord{12, 11, 232}, - dictWord{12, 11, 236}, - dictWord{13, 11, 413}, - dictWord{13, 11, 501}, - dictWord{146, 11, 116}, - dictWord{9, 0, 140}, - dictWord{5, 10, 222}, - dictWord{138, 10, 534}, - dictWord{6, 0, 1056}, - dictWord{137, 10, 906}, - dictWord{134, 0, 1704}, - dictWord{138, 10, 503}, - dictWord{134, 0, 1036}, - dictWord{5, 10, 154}, - dictWord{7, 10, 1491}, - dictWord{ - 10, - 10, - 379, - }, - dictWord{138, 10, 485}, - dictWord{4, 11, 383}, - dictWord{133, 10, 716}, - dictWord{134, 0, 1315}, - dictWord{5, 0, 86}, - dictWord{7, 0, 743}, - dictWord{ - 9, - 0, - 85, - }, - dictWord{10, 0, 281}, - dictWord{10, 0, 432}, - dictWord{11, 0, 825}, - dictWord{12, 0, 251}, - dictWord{13, 0, 118}, - dictWord{142, 0, 378}, - dictWord{ - 8, - 0, - 264, - }, - dictWord{4, 10, 91}, - dictWord{5, 10, 388}, - dictWord{5, 10, 845}, - dictWord{6, 10, 206}, - dictWord{6, 10, 252}, - dictWord{6, 10, 365}, - dictWord{7, 10, 136}, - dictWord{7, 10, 531}, - dictWord{136, 10, 621}, - dictWord{5, 0, 524}, - dictWord{133, 0, 744}, - dictWord{5, 11, 277}, - dictWord{141, 11, 247}, - dictWord{ - 132, - 11, - 435, - }, - dictWord{10, 0, 107}, - dictWord{140, 0, 436}, - dictWord{132, 0, 927}, - dictWord{10, 0, 123}, - dictWord{12, 0, 670}, - dictWord{146, 0, 94}, - dictWord{ - 7, - 0, - 1149, - }, - dictWord{9, 0, 156}, - dictWord{138, 0, 957}, - dictWord{5, 11, 265}, - dictWord{6, 11, 212}, - dictWord{135, 11, 28}, - dictWord{133, 0, 778}, - dictWord{ - 133, - 0, - 502, - }, - dictWord{8, 0, 196}, - dictWord{10, 0, 283}, - dictWord{139, 0, 406}, - dictWord{135, 10, 576}, - dictWord{136, 11, 535}, - dictWord{134, 0, 1312}, - dictWord{ - 5, - 10, - 771, - }, - dictWord{5, 10, 863}, - dictWord{5, 10, 898}, - dictWord{6, 10, 1632}, - dictWord{6, 10, 1644}, - dictWord{134, 10, 1780}, - dictWord{5, 0, 855}, - dictWord{5, 10, 331}, - dictWord{135, 11, 1487}, - dictWord{132, 11, 702}, - dictWord{5, 11, 808}, - dictWord{135, 11, 2045}, - dictWord{7, 0, 1400}, - dictWord{ - 9, - 0, - 446, - }, - dictWord{138, 0, 45}, - dictWord{140, 10, 632}, - dictWord{132, 0, 1003}, - dictWord{5, 11, 166}, - dictWord{8, 11, 739}, - dictWord{140, 11, 511}, - dictWord{ - 5, - 10, - 107, - }, - dictWord{7, 10, 201}, - dictWord{136, 10, 518}, - dictWord{6, 10, 446}, - dictWord{135, 10, 1817}, - dictWord{134, 0, 1532}, - dictWord{ - 134, - 0, - 1097, - }, - dictWord{4, 11, 119}, - dictWord{5, 11, 170}, - dictWord{5, 11, 447}, - dictWord{7, 11, 1708}, - dictWord{7, 11, 1889}, - dictWord{9, 11, 357}, - dictWord{ - 9, - 11, - 719, - }, - dictWord{12, 11, 486}, - dictWord{140, 11, 596}, - dictWord{9, 10, 851}, - dictWord{141, 10, 510}, - dictWord{7, 0, 612}, - dictWord{8, 0, 545}, - dictWord{ - 8, - 0, - 568, - }, - dictWord{8, 0, 642}, - dictWord{9, 0, 717}, - dictWord{10, 0, 541}, - dictWord{10, 0, 763}, - dictWord{11, 0, 449}, - dictWord{12, 0, 489}, - dictWord{13, 0, 153}, - dictWord{13, 0, 296}, - dictWord{14, 0, 138}, - dictWord{14, 0, 392}, - dictWord{15, 0, 50}, - dictWord{16, 0, 6}, - dictWord{16, 0, 12}, - dictWord{20, 0, 9}, - dictWord{ - 132, - 10, - 504, - }, - dictWord{4, 11, 450}, - dictWord{135, 11, 1158}, - dictWord{11, 0, 54}, - dictWord{13, 0, 173}, - dictWord{13, 0, 294}, - dictWord{5, 10, 883}, - dictWord{ - 5, - 10, - 975, - }, - dictWord{8, 10, 392}, - dictWord{148, 10, 7}, - dictWord{13, 0, 455}, - dictWord{15, 0, 99}, - dictWord{15, 0, 129}, - dictWord{144, 0, 68}, - dictWord{135, 0, 172}, - dictWord{132, 11, 754}, - dictWord{5, 10, 922}, - dictWord{134, 10, 1707}, - dictWord{134, 0, 1029}, - dictWord{17, 11, 39}, - dictWord{148, 11, 36}, - dictWord{ - 4, - 0, - 568, - }, - dictWord{5, 10, 993}, - dictWord{7, 10, 515}, - dictWord{137, 10, 91}, - dictWord{132, 0, 732}, - dictWord{10, 0, 617}, - dictWord{138, 11, 617}, - dictWord{ - 134, - 0, - 974, - }, - dictWord{7, 0, 989}, - dictWord{10, 0, 377}, - dictWord{12, 0, 363}, - dictWord{13, 0, 68}, - dictWord{13, 0, 94}, - dictWord{14, 0, 108}, - dictWord{ - 142, - 0, - 306, - }, - dictWord{136, 0, 733}, - dictWord{132, 0, 428}, - dictWord{7, 0, 1789}, - dictWord{135, 11, 1062}, - dictWord{7, 0, 2015}, - dictWord{140, 0, 665}, - dictWord{135, 10, 1433}, - dictWord{5, 0, 287}, - dictWord{7, 10, 921}, - dictWord{8, 10, 580}, - dictWord{8, 10, 593}, - dictWord{8, 10, 630}, - dictWord{138, 10, 28}, - dictWord{138, 0, 806}, - dictWord{4, 10, 911}, - dictWord{5, 10, 867}, - dictWord{5, 10, 1013}, - dictWord{7, 10, 2034}, - dictWord{8, 10, 798}, - dictWord{136, 10, 813}, - dictWord{134, 0, 1539}, - dictWord{8, 11, 523}, - dictWord{150, 11, 34}, - dictWord{135, 11, 740}, - dictWord{7, 11, 238}, - dictWord{7, 11, 2033}, - dictWord{ - 8, - 11, - 120, - }, - dictWord{8, 11, 188}, - dictWord{8, 11, 659}, - dictWord{9, 11, 598}, - dictWord{10, 11, 466}, - dictWord{12, 11, 342}, - dictWord{12, 11, 588}, - dictWord{ - 13, - 11, - 503, - }, - dictWord{14, 11, 246}, - dictWord{143, 11, 92}, - dictWord{7, 0, 1563}, - dictWord{141, 0, 182}, - dictWord{5, 10, 135}, - dictWord{6, 10, 519}, - dictWord{ - 7, - 10, - 1722, - }, - dictWord{10, 10, 271}, - dictWord{11, 10, 261}, - dictWord{145, 10, 54}, - dictWord{14, 10, 338}, - dictWord{148, 10, 81}, - dictWord{7, 0, 484}, - dictWord{ - 4, - 10, - 300, - }, - dictWord{133, 10, 436}, - dictWord{145, 11, 114}, - dictWord{6, 0, 1623}, - dictWord{134, 0, 1681}, - dictWord{133, 11, 640}, - dictWord{4, 11, 201}, - dictWord{7, 11, 1744}, - dictWord{8, 11, 602}, - dictWord{11, 11, 247}, - dictWord{11, 11, 826}, - dictWord{145, 11, 65}, - dictWord{8, 11, 164}, - dictWord{ - 146, - 11, - 62, - }, - dictWord{6, 0, 1833}, - dictWord{6, 0, 1861}, - dictWord{136, 0, 878}, - dictWord{134, 0, 1569}, - dictWord{8, 10, 357}, - dictWord{10, 10, 745}, - dictWord{ - 14, - 10, - 426, - }, - dictWord{17, 10, 94}, - dictWord{147, 10, 57}, - dictWord{12, 0, 93}, - dictWord{12, 0, 501}, - dictWord{13, 0, 362}, - dictWord{14, 0, 151}, - dictWord{15, 0, 40}, - dictWord{15, 0, 59}, - dictWord{16, 0, 46}, - dictWord{17, 0, 25}, - dictWord{18, 0, 14}, - dictWord{18, 0, 134}, - dictWord{19, 0, 25}, - dictWord{19, 0, 69}, - dictWord{ - 20, - 0, - 16, - }, - dictWord{20, 0, 19}, - dictWord{20, 0, 66}, - dictWord{21, 0, 23}, - dictWord{21, 0, 25}, - dictWord{150, 0, 42}, - dictWord{6, 0, 1748}, - dictWord{8, 0, 715}, - dictWord{ - 9, - 0, - 802, - }, - dictWord{10, 0, 46}, - dictWord{10, 0, 819}, - dictWord{13, 0, 308}, - dictWord{14, 0, 351}, - dictWord{14, 0, 363}, - dictWord{146, 0, 67}, - dictWord{ - 132, - 0, - 994, - }, - dictWord{4, 0, 63}, - dictWord{133, 0, 347}, - dictWord{132, 0, 591}, - dictWord{133, 0, 749}, - dictWord{7, 11, 1577}, - dictWord{10, 11, 304}, - dictWord{ - 10, - 11, - 549, - }, - dictWord{11, 11, 424}, - dictWord{12, 11, 365}, - dictWord{13, 11, 220}, - dictWord{13, 11, 240}, - dictWord{142, 11, 33}, - dictWord{133, 0, 366}, - dictWord{ - 7, - 0, - 557, - }, - dictWord{12, 0, 547}, - dictWord{14, 0, 86}, - dictWord{133, 10, 387}, - dictWord{135, 0, 1747}, - dictWord{132, 11, 907}, - dictWord{5, 11, 100}, - dictWord{10, 11, 329}, - dictWord{12, 11, 416}, - dictWord{149, 11, 29}, - dictWord{4, 10, 6}, - dictWord{5, 10, 708}, - dictWord{136, 10, 75}, - dictWord{7, 10, 1351}, - dictWord{9, 10, 581}, - dictWord{10, 10, 639}, - dictWord{11, 10, 453}, - dictWord{140, 10, 584}, - dictWord{7, 0, 89}, - dictWord{132, 10, 303}, - dictWord{138, 10, 772}, - dictWord{132, 11, 176}, - dictWord{5, 11, 636}, - dictWord{5, 11, 998}, - dictWord{8, 11, 26}, - dictWord{137, 11, 358}, - dictWord{7, 11, 9}, - dictWord{7, 11, 1508}, - dictWord{9, 11, 317}, - dictWord{10, 11, 210}, - dictWord{10, 11, 292}, - dictWord{10, 11, 533}, - dictWord{11, 11, 555}, - dictWord{12, 11, 526}, - dictWord{ - 12, - 11, - 607, - }, - dictWord{13, 11, 263}, - dictWord{13, 11, 459}, - dictWord{142, 11, 271}, - dictWord{134, 0, 1463}, - dictWord{6, 0, 772}, - dictWord{6, 0, 1137}, - dictWord{ - 139, - 11, - 595, - }, - dictWord{7, 0, 977}, - dictWord{139, 11, 66}, - dictWord{138, 0, 893}, - dictWord{20, 0, 48}, - dictWord{148, 11, 48}, - dictWord{5, 0, 824}, - dictWord{ - 133, - 0, - 941, - }, - dictWord{134, 11, 295}, - dictWord{7, 0, 1543}, - dictWord{7, 0, 1785}, - dictWord{10, 0, 690}, - dictWord{4, 10, 106}, - dictWord{139, 10, 717}, - dictWord{ - 7, - 0, - 440, - }, - dictWord{8, 0, 230}, - dictWord{139, 0, 106}, - dictWord{5, 10, 890}, - dictWord{133, 10, 988}, - dictWord{6, 10, 626}, - dictWord{142, 10, 431}, - dictWord{ - 10, - 11, - 127, - }, - dictWord{141, 11, 27}, - dictWord{17, 0, 32}, - dictWord{10, 10, 706}, - dictWord{150, 10, 44}, - dictWord{132, 0, 216}, - dictWord{137, 0, 332}, - dictWord{4, 10, 698}, - dictWord{136, 11, 119}, - dictWord{139, 11, 267}, - dictWord{138, 10, 17}, - dictWord{11, 11, 526}, - dictWord{11, 11, 939}, - dictWord{ - 141, - 11, - 290, - }, - dictWord{7, 11, 1167}, - dictWord{11, 11, 934}, - dictWord{13, 11, 391}, - dictWord{145, 11, 76}, - dictWord{139, 11, 39}, - dictWord{134, 10, 84}, - dictWord{ - 4, - 0, - 914, - }, - dictWord{5, 0, 800}, - dictWord{133, 0, 852}, - dictWord{10, 0, 416}, - dictWord{141, 0, 115}, - dictWord{7, 0, 564}, - dictWord{142, 0, 168}, - dictWord{ - 4, - 0, - 918, - }, - dictWord{133, 0, 876}, - dictWord{134, 0, 1764}, - dictWord{152, 0, 3}, - dictWord{4, 0, 92}, - dictWord{5, 0, 274}, - dictWord{7, 11, 126}, - dictWord{136, 11, 84}, - dictWord{140, 10, 498}, - dictWord{136, 11, 790}, - dictWord{8, 0, 501}, - dictWord{5, 10, 986}, - dictWord{6, 10, 130}, - dictWord{7, 10, 1582}, - dictWord{ - 8, - 10, - 458, - }, - dictWord{10, 10, 101}, - dictWord{10, 10, 318}, - dictWord{138, 10, 823}, - dictWord{6, 11, 64}, - dictWord{12, 11, 377}, - dictWord{141, 11, 309}, - dictWord{ - 5, - 0, - 743, - }, - dictWord{138, 0, 851}, - dictWord{4, 0, 49}, - dictWord{7, 0, 280}, - dictWord{135, 0, 1633}, - dictWord{134, 0, 879}, - dictWord{136, 0, 47}, - dictWord{ - 7, - 10, - 1644, - }, - dictWord{137, 10, 129}, - dictWord{132, 0, 865}, - dictWord{134, 0, 1202}, - dictWord{9, 11, 34}, - dictWord{139, 11, 484}, - dictWord{135, 10, 997}, - dictWord{5, 0, 272}, - dictWord{5, 0, 908}, - dictWord{5, 0, 942}, - dictWord{8, 0, 197}, - dictWord{9, 0, 47}, - dictWord{11, 0, 538}, - dictWord{139, 0, 742}, - dictWord{ - 6, - 11, - 1700, - }, - dictWord{7, 11, 26}, - dictWord{7, 11, 293}, - dictWord{7, 11, 382}, - dictWord{7, 11, 1026}, - dictWord{7, 11, 1087}, - dictWord{7, 11, 2027}, - dictWord{ - 8, - 11, - 24, - }, - dictWord{8, 11, 114}, - dictWord{8, 11, 252}, - dictWord{8, 11, 727}, - dictWord{8, 11, 729}, - dictWord{9, 11, 30}, - dictWord{9, 11, 199}, - dictWord{9, 11, 231}, - dictWord{9, 11, 251}, - dictWord{9, 11, 334}, - dictWord{9, 11, 361}, - dictWord{9, 11, 488}, - dictWord{9, 11, 712}, - dictWord{10, 11, 55}, - dictWord{10, 11, 60}, - dictWord{ - 10, - 11, - 232, - }, - dictWord{10, 11, 332}, - dictWord{10, 11, 384}, - dictWord{10, 11, 396}, - dictWord{10, 11, 504}, - dictWord{10, 11, 542}, - dictWord{10, 11, 652}, - dictWord{11, 11, 20}, - dictWord{11, 11, 48}, - dictWord{11, 11, 207}, - dictWord{11, 11, 291}, - dictWord{11, 11, 298}, - dictWord{11, 11, 342}, - dictWord{ - 11, - 11, - 365, - }, - dictWord{11, 11, 394}, - dictWord{11, 11, 620}, - dictWord{11, 11, 705}, - dictWord{11, 11, 1017}, - dictWord{12, 11, 123}, - dictWord{12, 11, 340}, - dictWord{12, 11, 406}, - dictWord{12, 11, 643}, - dictWord{13, 11, 61}, - dictWord{13, 11, 269}, - dictWord{13, 11, 311}, - dictWord{13, 11, 319}, - dictWord{13, 11, 486}, - dictWord{14, 11, 234}, - dictWord{15, 11, 62}, - dictWord{15, 11, 85}, - dictWord{16, 11, 71}, - dictWord{18, 11, 119}, - dictWord{148, 11, 105}, - dictWord{ - 6, - 0, - 1455, - }, - dictWord{150, 11, 37}, - dictWord{135, 10, 1927}, - dictWord{135, 0, 1911}, - dictWord{137, 0, 891}, - dictWord{7, 10, 1756}, - dictWord{137, 10, 98}, - dictWord{7, 10, 1046}, - dictWord{139, 10, 160}, - dictWord{132, 0, 761}, - dictWord{6, 11, 379}, - dictWord{7, 11, 270}, - dictWord{7, 11, 1116}, - dictWord{ - 8, - 11, - 176, - }, - dictWord{8, 11, 183}, - dictWord{9, 11, 432}, - dictWord{9, 11, 661}, - dictWord{12, 11, 247}, - dictWord{12, 11, 617}, - dictWord{146, 11, 125}, - dictWord{ - 6, - 10, - 45, - }, - dictWord{7, 10, 433}, - dictWord{8, 10, 129}, - dictWord{9, 10, 21}, - dictWord{10, 10, 392}, - dictWord{11, 10, 79}, - dictWord{12, 10, 499}, - dictWord{ - 13, - 10, - 199, - }, - dictWord{141, 10, 451}, - dictWord{4, 0, 407}, - dictWord{5, 11, 792}, - dictWord{133, 11, 900}, - dictWord{132, 0, 560}, - dictWord{135, 0, 183}, - dictWord{ - 13, - 0, - 490, - }, - dictWord{7, 10, 558}, - dictWord{136, 10, 353}, - dictWord{4, 0, 475}, - dictWord{6, 0, 731}, - dictWord{11, 0, 35}, - dictWord{13, 0, 71}, - dictWord{13, 0, 177}, - dictWord{14, 0, 422}, - dictWord{133, 10, 785}, - dictWord{8, 10, 81}, - dictWord{9, 10, 189}, - dictWord{9, 10, 201}, - dictWord{11, 10, 478}, - dictWord{11, 10, 712}, - dictWord{141, 10, 338}, - dictWord{4, 0, 418}, - dictWord{4, 0, 819}, - dictWord{133, 10, 353}, - dictWord{151, 10, 26}, - dictWord{4, 11, 901}, - dictWord{ - 133, - 11, - 776, - }, - dictWord{132, 0, 575}, - dictWord{7, 0, 818}, - dictWord{16, 0, 92}, - dictWord{17, 0, 14}, - dictWord{17, 0, 45}, - dictWord{18, 0, 75}, - dictWord{148, 0, 18}, - dictWord{ - 6, - 0, - 222, - }, - dictWord{7, 0, 636}, - dictWord{7, 0, 1620}, - dictWord{8, 0, 409}, - dictWord{9, 0, 693}, - dictWord{139, 0, 77}, - dictWord{6, 10, 25}, - dictWord{7, 10, 855}, - dictWord{7, 10, 1258}, - dictWord{144, 10, 32}, - dictWord{6, 0, 1880}, - dictWord{6, 0, 1887}, - dictWord{6, 0, 1918}, - dictWord{6, 0, 1924}, - dictWord{9, 0, 967}, - dictWord{9, 0, 995}, - dictWord{9, 0, 1015}, - dictWord{12, 0, 826}, - dictWord{12, 0, 849}, - dictWord{12, 0, 857}, - dictWord{12, 0, 860}, - dictWord{12, 0, 886}, - dictWord{ - 12, - 0, - 932, - }, - dictWord{18, 0, 228}, - dictWord{18, 0, 231}, - dictWord{146, 0, 240}, - dictWord{134, 0, 633}, - dictWord{134, 0, 1308}, - dictWord{4, 11, 37}, - dictWord{ - 5, - 11, - 334, - }, - dictWord{135, 11, 1253}, - dictWord{10, 0, 86}, - dictWord{4, 10, 4}, - dictWord{7, 10, 1118}, - dictWord{7, 10, 1320}, - dictWord{7, 10, 1706}, - dictWord{ - 8, - 10, - 277, - }, - dictWord{9, 10, 622}, - dictWord{11, 10, 724}, - dictWord{12, 10, 350}, - dictWord{12, 10, 397}, - dictWord{13, 10, 28}, - dictWord{13, 10, 159}, - dictWord{ - 15, - 10, - 89, - }, - dictWord{18, 10, 5}, - dictWord{19, 10, 9}, - dictWord{20, 10, 34}, - dictWord{150, 10, 47}, - dictWord{132, 11, 508}, - dictWord{137, 11, 448}, - dictWord{ - 12, - 11, - 107, - }, - dictWord{146, 11, 31}, - dictWord{132, 0, 817}, - dictWord{134, 0, 663}, - dictWord{133, 0, 882}, - dictWord{134, 0, 914}, - dictWord{132, 11, 540}, - dictWord{132, 11, 533}, - dictWord{136, 11, 608}, - dictWord{8, 0, 885}, - dictWord{138, 0, 865}, - dictWord{132, 0, 426}, - dictWord{6, 0, 58}, - dictWord{7, 0, 745}, - dictWord{7, 0, 1969}, - dictWord{8, 0, 399}, - dictWord{8, 0, 675}, - dictWord{9, 0, 479}, - dictWord{9, 0, 731}, - dictWord{10, 0, 330}, - dictWord{10, 0, 593}, - dictWord{ - 10, - 0, - 817, - }, - dictWord{11, 0, 32}, - dictWord{11, 0, 133}, - dictWord{11, 0, 221}, - dictWord{145, 0, 68}, - dictWord{134, 10, 255}, - dictWord{7, 0, 102}, - dictWord{ - 137, - 0, - 538, - }, - dictWord{137, 10, 216}, - dictWord{7, 11, 253}, - dictWord{136, 11, 549}, - dictWord{135, 11, 912}, - dictWord{9, 10, 183}, - dictWord{139, 10, 286}, - dictWord{11, 10, 956}, - dictWord{151, 10, 3}, - dictWord{8, 11, 527}, - dictWord{18, 11, 60}, - dictWord{147, 11, 24}, - dictWord{4, 10, 536}, - dictWord{7, 10, 1141}, - dictWord{10, 10, 723}, - dictWord{139, 10, 371}, - dictWord{133, 11, 920}, - dictWord{7, 0, 876}, - dictWord{135, 10, 285}, - dictWord{135, 10, 560}, - dictWord{ - 132, - 10, - 690, - }, - dictWord{142, 11, 126}, - dictWord{11, 10, 33}, - dictWord{12, 10, 571}, - dictWord{149, 10, 1}, - dictWord{133, 0, 566}, - dictWord{9, 0, 139}, - dictWord{ - 10, - 0, - 399, - }, - dictWord{11, 0, 469}, - dictWord{12, 0, 634}, - dictWord{13, 0, 223}, - dictWord{132, 11, 483}, - dictWord{6, 0, 48}, - dictWord{135, 0, 63}, - dictWord{18, 0, 12}, - dictWord{7, 10, 1862}, - dictWord{12, 10, 491}, - dictWord{12, 10, 520}, - dictWord{13, 10, 383}, - dictWord{142, 10, 244}, - dictWord{135, 11, 1665}, - dictWord{132, 11, 448}, - dictWord{9, 11, 495}, - dictWord{146, 11, 104}, - dictWord{6, 0, 114}, - dictWord{7, 0, 1224}, - dictWord{7, 0, 1556}, - dictWord{136, 0, 3}, - dictWord{ - 4, - 10, - 190, - }, - dictWord{133, 10, 554}, - dictWord{8, 0, 576}, - dictWord{9, 0, 267}, - dictWord{133, 10, 1001}, - dictWord{133, 10, 446}, - dictWord{133, 0, 933}, - dictWord{139, 11, 1009}, - dictWord{8, 11, 653}, - dictWord{13, 11, 93}, - dictWord{147, 11, 14}, - dictWord{6, 0, 692}, - dictWord{6, 0, 821}, - dictWord{134, 0, 1077}, - dictWord{5, 11, 172}, - dictWord{135, 11, 801}, - dictWord{138, 0, 752}, - dictWord{4, 0, 375}, - dictWord{134, 0, 638}, - dictWord{134, 0, 1011}, - dictWord{ - 140, - 11, - 540, - }, - dictWord{9, 0, 96}, - dictWord{133, 11, 260}, - dictWord{139, 11, 587}, - dictWord{135, 10, 1231}, - dictWord{12, 0, 30}, - dictWord{13, 0, 148}, - dictWord{ - 14, - 0, - 87, - }, - dictWord{14, 0, 182}, - dictWord{16, 0, 42}, - dictWord{20, 0, 70}, - dictWord{132, 10, 304}, - dictWord{6, 0, 1398}, - dictWord{7, 0, 56}, - dictWord{7, 0, 1989}, - dictWord{8, 0, 337}, - dictWord{8, 0, 738}, - dictWord{9, 0, 600}, - dictWord{12, 0, 37}, - dictWord{13, 0, 447}, - dictWord{142, 0, 92}, - dictWord{138, 0, 666}, - dictWord{ - 5, - 0, - 394, - }, - dictWord{7, 0, 487}, - dictWord{136, 0, 246}, - dictWord{9, 0, 437}, - dictWord{6, 10, 53}, - dictWord{6, 10, 199}, - dictWord{7, 10, 1408}, - dictWord{8, 10, 32}, - dictWord{8, 10, 93}, - dictWord{10, 10, 397}, - dictWord{10, 10, 629}, - dictWord{11, 10, 593}, - dictWord{11, 10, 763}, - dictWord{13, 10, 326}, - dictWord{145, 10, 35}, - dictWord{134, 10, 105}, - dictWord{9, 0, 320}, - dictWord{10, 0, 506}, - dictWord{138, 10, 794}, - dictWord{7, 11, 57}, - dictWord{8, 11, 167}, - dictWord{8, 11, 375}, - dictWord{9, 11, 82}, - dictWord{9, 11, 561}, - dictWord{10, 11, 620}, - dictWord{10, 11, 770}, - dictWord{11, 10, 704}, - dictWord{141, 10, 396}, - dictWord{6, 0, 1003}, - dictWord{5, 10, 114}, - dictWord{5, 10, 255}, - dictWord{141, 10, 285}, - dictWord{7, 0, 866}, - dictWord{135, 0, 1163}, - dictWord{133, 11, 531}, - dictWord{ - 132, - 0, - 328, - }, - dictWord{7, 10, 2035}, - dictWord{8, 10, 19}, - dictWord{9, 10, 89}, - dictWord{138, 10, 831}, - dictWord{8, 11, 194}, - dictWord{136, 11, 756}, - dictWord{ - 136, - 0, - 1000, - }, - dictWord{5, 11, 453}, - dictWord{134, 11, 441}, - dictWord{4, 0, 101}, - dictWord{5, 0, 833}, - dictWord{7, 0, 1171}, - dictWord{136, 0, 744}, - dictWord{ - 133, - 0, - 726, - }, - dictWord{136, 10, 746}, - dictWord{138, 0, 176}, - dictWord{6, 0, 9}, - dictWord{6, 0, 397}, - dictWord{7, 0, 53}, - dictWord{7, 0, 1742}, - dictWord{10, 0, 632}, - dictWord{11, 0, 828}, - dictWord{140, 0, 146}, - dictWord{135, 11, 22}, - dictWord{145, 11, 64}, - dictWord{132, 0, 839}, - dictWord{11, 0, 417}, - dictWord{12, 0, 223}, - dictWord{140, 0, 265}, - dictWord{4, 11, 102}, - dictWord{7, 11, 815}, - dictWord{7, 11, 1699}, - dictWord{139, 11, 964}, - dictWord{5, 10, 955}, - dictWord{ - 136, - 10, - 814, - }, - dictWord{6, 0, 1931}, - dictWord{6, 0, 2007}, - dictWord{18, 0, 246}, - dictWord{146, 0, 247}, - dictWord{8, 0, 198}, - dictWord{11, 0, 29}, - dictWord{140, 0, 534}, - dictWord{135, 0, 1771}, - dictWord{6, 0, 846}, - dictWord{7, 11, 1010}, - dictWord{11, 11, 733}, - dictWord{11, 11, 759}, - dictWord{12, 11, 563}, - dictWord{ - 13, - 11, - 34, - }, - dictWord{14, 11, 101}, - dictWord{18, 11, 45}, - dictWord{146, 11, 129}, - dictWord{4, 0, 186}, - dictWord{5, 0, 157}, - dictWord{8, 0, 168}, - dictWord{138, 0, 6}, - dictWord{132, 11, 899}, - dictWord{133, 10, 56}, - dictWord{148, 10, 100}, - dictWord{133, 0, 875}, - dictWord{5, 0, 773}, - dictWord{5, 0, 991}, - dictWord{6, 0, 1635}, - dictWord{134, 0, 1788}, - dictWord{6, 0, 1274}, - dictWord{9, 0, 477}, - dictWord{141, 0, 78}, - dictWord{4, 0, 639}, - dictWord{7, 0, 111}, - dictWord{8, 0, 581}, - dictWord{ - 12, - 0, - 177, - }, - dictWord{6, 11, 52}, - dictWord{9, 11, 104}, - dictWord{9, 11, 559}, - dictWord{10, 10, 4}, - dictWord{10, 10, 13}, - dictWord{11, 10, 638}, - dictWord{ - 12, - 11, - 308, - }, - dictWord{19, 11, 87}, - dictWord{148, 10, 57}, - dictWord{132, 11, 604}, - dictWord{4, 11, 301}, - dictWord{133, 10, 738}, - dictWord{133, 10, 758}, - dictWord{134, 0, 1747}, - dictWord{7, 11, 1440}, - dictWord{11, 11, 854}, - dictWord{11, 11, 872}, - dictWord{11, 11, 921}, - dictWord{12, 11, 551}, - dictWord{ - 13, - 11, - 472, - }, - dictWord{142, 11, 367}, - dictWord{7, 0, 1364}, - dictWord{7, 0, 1907}, - dictWord{141, 0, 158}, - dictWord{134, 0, 873}, - dictWord{4, 0, 404}, - dictWord{ - 4, - 0, - 659, - }, - dictWord{7, 0, 552}, - dictWord{135, 0, 675}, - dictWord{135, 10, 1112}, - dictWord{139, 10, 328}, - dictWord{7, 11, 508}, - dictWord{137, 10, 133}, - dictWord{133, 0, 391}, - dictWord{5, 10, 110}, - dictWord{6, 10, 169}, - dictWord{6, 10, 1702}, - dictWord{7, 10, 400}, - dictWord{8, 10, 538}, - dictWord{9, 10, 184}, - dictWord{ - 9, - 10, - 524, - }, - dictWord{140, 10, 218}, - dictWord{6, 11, 310}, - dictWord{7, 11, 1849}, - dictWord{8, 11, 72}, - dictWord{8, 11, 272}, - dictWord{8, 11, 431}, - dictWord{ - 9, - 11, - 12, - }, - dictWord{9, 11, 351}, - dictWord{10, 11, 563}, - dictWord{10, 11, 630}, - dictWord{10, 11, 810}, - dictWord{11, 11, 367}, - dictWord{11, 11, 599}, - dictWord{11, 11, 686}, - dictWord{140, 11, 672}, - dictWord{5, 0, 540}, - dictWord{6, 0, 1697}, - dictWord{136, 0, 668}, - dictWord{132, 0, 883}, - dictWord{134, 0, 78}, - dictWord{12, 0, 628}, - dictWord{18, 0, 79}, - dictWord{6, 10, 133}, - dictWord{9, 10, 353}, - dictWord{139, 10, 993}, - dictWord{6, 11, 181}, - dictWord{7, 11, 537}, - dictWord{ - 8, - 11, - 64, - }, - dictWord{9, 11, 127}, - dictWord{10, 11, 496}, - dictWord{12, 11, 510}, - dictWord{141, 11, 384}, - dictWord{6, 10, 93}, - dictWord{7, 10, 1422}, - dictWord{ - 7, - 10, - 1851, - }, - dictWord{8, 10, 673}, - dictWord{9, 10, 529}, - dictWord{140, 10, 43}, - dictWord{137, 10, 371}, - dictWord{134, 0, 1460}, - dictWord{134, 0, 962}, - dictWord{4, 11, 244}, - dictWord{135, 11, 233}, - dictWord{9, 10, 25}, - dictWord{10, 10, 467}, - dictWord{138, 10, 559}, - dictWord{4, 10, 335}, - dictWord{ - 135, - 10, - 942, - }, - dictWord{133, 0, 460}, - dictWord{135, 11, 334}, - dictWord{134, 11, 1650}, - dictWord{4, 0, 199}, - dictWord{139, 0, 34}, - dictWord{5, 10, 601}, - dictWord{ - 8, - 10, - 39, - }, - dictWord{10, 10, 773}, - dictWord{11, 10, 84}, - dictWord{12, 10, 205}, - dictWord{142, 10, 1}, - dictWord{133, 10, 870}, - dictWord{134, 0, 388}, - dictWord{14, 0, 474}, - dictWord{148, 0, 120}, - dictWord{133, 11, 369}, - dictWord{139, 0, 271}, - dictWord{4, 0, 511}, - dictWord{9, 0, 333}, - dictWord{9, 0, 379}, - dictWord{ - 10, - 0, - 602, - }, - dictWord{11, 0, 441}, - dictWord{11, 0, 723}, - dictWord{11, 0, 976}, - dictWord{12, 0, 357}, - dictWord{132, 10, 181}, - dictWord{134, 0, 608}, - dictWord{134, 10, 1652}, - dictWord{22, 0, 49}, - dictWord{137, 11, 338}, - dictWord{140, 0, 988}, - dictWord{134, 0, 617}, - dictWord{5, 0, 938}, - dictWord{136, 0, 707}, - dictWord{132, 10, 97}, - dictWord{5, 10, 147}, - dictWord{6, 10, 286}, - dictWord{7, 10, 1362}, - dictWord{141, 10, 176}, - dictWord{6, 0, 756}, - dictWord{ - 134, - 0, - 1149, - }, - dictWord{133, 11, 896}, - dictWord{6, 10, 375}, - dictWord{7, 10, 169}, - dictWord{7, 10, 254}, - dictWord{136, 10, 780}, - dictWord{134, 0, 1583}, - dictWord{135, 10, 1447}, - dictWord{139, 0, 285}, - dictWord{7, 11, 1117}, - dictWord{8, 11, 393}, - dictWord{136, 11, 539}, - dictWord{135, 0, 344}, - dictWord{ - 6, - 0, - 469, - }, - dictWord{7, 0, 1709}, - dictWord{138, 0, 515}, - dictWord{5, 10, 629}, - dictWord{135, 10, 1549}, - dictWord{5, 11, 4}, - dictWord{5, 11, 810}, - dictWord{ - 6, - 11, - 13, - }, - dictWord{6, 11, 538}, - dictWord{6, 11, 1690}, - dictWord{6, 11, 1726}, - dictWord{7, 11, 499}, - dictWord{7, 11, 1819}, - dictWord{8, 11, 148}, - dictWord{ - 8, - 11, - 696, - }, - dictWord{8, 11, 791}, - dictWord{12, 11, 125}, - dictWord{13, 11, 54}, - dictWord{143, 11, 9}, - dictWord{135, 11, 1268}, - dictWord{137, 0, 404}, - dictWord{ - 132, - 0, - 500, - }, - dictWord{5, 0, 68}, - dictWord{134, 0, 383}, - dictWord{11, 0, 216}, - dictWord{139, 0, 340}, - dictWord{4, 11, 925}, - dictWord{5, 11, 803}, - dictWord{ - 8, - 11, - 698, - }, - dictWord{138, 11, 828}, - dictWord{4, 0, 337}, - dictWord{6, 0, 353}, - dictWord{7, 0, 1934}, - dictWord{8, 0, 488}, - dictWord{137, 0, 429}, - dictWord{7, 0, 236}, - dictWord{7, 0, 1795}, - dictWord{8, 0, 259}, - dictWord{9, 0, 135}, - dictWord{9, 0, 177}, - dictWord{9, 0, 860}, - dictWord{10, 0, 825}, - dictWord{11, 0, 115}, - dictWord{ - 11, - 0, - 370, - }, - dictWord{11, 0, 405}, - dictWord{11, 0, 604}, - dictWord{12, 0, 10}, - dictWord{12, 0, 667}, - dictWord{12, 0, 669}, - dictWord{13, 0, 76}, - dictWord{14, 0, 310}, - dictWord{15, 0, 76}, - dictWord{15, 0, 147}, - dictWord{148, 0, 23}, - dictWord{4, 0, 15}, - dictWord{4, 0, 490}, - dictWord{5, 0, 22}, - dictWord{6, 0, 244}, - dictWord{7, 0, 40}, - dictWord{7, 0, 200}, - dictWord{7, 0, 906}, - dictWord{7, 0, 1199}, - dictWord{9, 0, 616}, - dictWord{10, 0, 716}, - dictWord{11, 0, 635}, - dictWord{11, 0, 801}, - dictWord{ - 140, - 0, - 458, - }, - dictWord{12, 0, 756}, - dictWord{132, 10, 420}, - dictWord{134, 0, 1504}, - dictWord{6, 0, 757}, - dictWord{133, 11, 383}, - dictWord{6, 0, 1266}, - dictWord{ - 135, - 0, - 1735, - }, - dictWord{5, 0, 598}, - dictWord{7, 0, 791}, - dictWord{8, 0, 108}, - dictWord{9, 0, 123}, - dictWord{7, 10, 1570}, - dictWord{140, 10, 542}, - dictWord{ - 142, - 11, - 410, - }, - dictWord{9, 11, 660}, - dictWord{138, 11, 347}, -} diff --git a/backend/vendor/github.com/andybalholm/brotli/symbol_list.go b/backend/vendor/github.com/andybalholm/brotli/symbol_list.go deleted file mode 100644 index c5cb49e5..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/symbol_list.go +++ /dev/null @@ -1,22 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Utilities for building Huffman decoding tables. */ - -type symbolList struct { - storage []uint16 - offset int -} - -func symbolListGet(sl symbolList, i int) uint16 { - return sl.storage[i+sl.offset] -} - -func symbolListPut(sl symbolList, i int, val uint16) { - sl.storage[i+sl.offset] = val -} diff --git a/backend/vendor/github.com/andybalholm/brotli/transform.go b/backend/vendor/github.com/andybalholm/brotli/transform.go deleted file mode 100644 index d2c043a6..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/transform.go +++ /dev/null @@ -1,641 +0,0 @@ -package brotli - -const ( - transformIdentity = 0 - transformOmitLast1 = 1 - transformOmitLast2 = 2 - transformOmitLast3 = 3 - transformOmitLast4 = 4 - transformOmitLast5 = 5 - transformOmitLast6 = 6 - transformOmitLast7 = 7 - transformOmitLast8 = 8 - transformOmitLast9 = 9 - transformUppercaseFirst = 10 - transformUppercaseAll = 11 - transformOmitFirst1 = 12 - transformOmitFirst2 = 13 - transformOmitFirst3 = 14 - transformOmitFirst4 = 15 - transformOmitFirst5 = 16 - transformOmitFirst6 = 17 - transformOmitFirst7 = 18 - transformOmitFirst8 = 19 - transformOmitFirst9 = 20 - transformShiftFirst = 21 - transformShiftAll = 22 + iota - 22 - numTransformTypes -) - -const transformsMaxCutOff = transformOmitLast9 - -type transforms struct { - prefix_suffix_size uint16 - prefix_suffix []byte - prefix_suffix_map []uint16 - num_transforms uint32 - transforms []byte - params []byte - cutOffTransforms [transformsMaxCutOff + 1]int16 -} - -func transformPrefixId(t *transforms, I int) byte { - return t.transforms[(I*3)+0] -} - -func transformType(t *transforms, I int) byte { - return t.transforms[(I*3)+1] -} - -func transformSuffixId(t *transforms, I int) byte { - return t.transforms[(I*3)+2] -} - -func transformPrefix(t *transforms, I int) []byte { - return t.prefix_suffix[t.prefix_suffix_map[transformPrefixId(t, I)]:] -} - -func transformSuffix(t *transforms, I int) []byte { - return t.prefix_suffix[t.prefix_suffix_map[transformSuffixId(t, I)]:] -} - -/* RFC 7932 transforms string data */ -const kPrefixSuffix string = "\001 \002, \010 of the \004 of \002s \001.\005 and \004 " + "in \001\"\004 to \002\">\001\n\002. \001]\005 for \003 a \006 " + "that \001'\006 with \006 from \004 by \001(\006. T" + "he \004 on \004 as \004 is \004ing \002\n\t\001:\003ed " + "\002=\"\004 at \003ly \001,\002='\005.com/\007. This \005" + " not \003er \003al \004ful \004ive \005less \004es" + "t \004ize \002\xc2\xa0\004ous \005 the \002e \000" - -var kPrefixSuffixMap = [50]uint16{ - 0x00, - 0x02, - 0x05, - 0x0E, - 0x13, - 0x16, - 0x18, - 0x1E, - 0x23, - 0x25, - 0x2A, - 0x2D, - 0x2F, - 0x32, - 0x34, - 0x3A, - 0x3E, - 0x45, - 0x47, - 0x4E, - 0x55, - 0x5A, - 0x5C, - 0x63, - 0x68, - 0x6D, - 0x72, - 0x77, - 0x7A, - 0x7C, - 0x80, - 0x83, - 0x88, - 0x8C, - 0x8E, - 0x91, - 0x97, - 0x9F, - 0xA5, - 0xA9, - 0xAD, - 0xB2, - 0xB7, - 0xBD, - 0xC2, - 0xC7, - 0xCA, - 0xCF, - 0xD5, - 0xD8, -} - -/* RFC 7932 transforms */ -var kTransformsData = []byte{ - 49, - transformIdentity, - 49, - 49, - transformIdentity, - 0, - 0, - transformIdentity, - 0, - 49, - transformOmitFirst1, - 49, - 49, - transformUppercaseFirst, - 0, - 49, - transformIdentity, - 47, - 0, - transformIdentity, - 49, - 4, - transformIdentity, - 0, - 49, - transformIdentity, - 3, - 49, - transformUppercaseFirst, - 49, - 49, - transformIdentity, - 6, - 49, - transformOmitFirst2, - 49, - 49, - transformOmitLast1, - 49, - 1, - transformIdentity, - 0, - 49, - transformIdentity, - 1, - 0, - transformUppercaseFirst, - 0, - 49, - transformIdentity, - 7, - 49, - transformIdentity, - 9, - 48, - transformIdentity, - 0, - 49, - transformIdentity, - 8, - 49, - transformIdentity, - 5, - 49, - transformIdentity, - 10, - 49, - transformIdentity, - 11, - 49, - transformOmitLast3, - 49, - 49, - transformIdentity, - 13, - 49, - transformIdentity, - 14, - 49, - transformOmitFirst3, - 49, - 49, - transformOmitLast2, - 49, - 49, - transformIdentity, - 15, - 49, - transformIdentity, - 16, - 0, - transformUppercaseFirst, - 49, - 49, - transformIdentity, - 12, - 5, - transformIdentity, - 49, - 0, - transformIdentity, - 1, - 49, - transformOmitFirst4, - 49, - 49, - transformIdentity, - 18, - 49, - transformIdentity, - 17, - 49, - transformIdentity, - 19, - 49, - transformIdentity, - 20, - 49, - transformOmitFirst5, - 49, - 49, - transformOmitFirst6, - 49, - 47, - transformIdentity, - 49, - 49, - transformOmitLast4, - 49, - 49, - transformIdentity, - 22, - 49, - transformUppercaseAll, - 49, - 49, - transformIdentity, - 23, - 49, - transformIdentity, - 24, - 49, - transformIdentity, - 25, - 49, - transformOmitLast7, - 49, - 49, - transformOmitLast1, - 26, - 49, - transformIdentity, - 27, - 49, - transformIdentity, - 28, - 0, - transformIdentity, - 12, - 49, - transformIdentity, - 29, - 49, - transformOmitFirst9, - 49, - 49, - transformOmitFirst7, - 49, - 49, - transformOmitLast6, - 49, - 49, - transformIdentity, - 21, - 49, - transformUppercaseFirst, - 1, - 49, - transformOmitLast8, - 49, - 49, - transformIdentity, - 31, - 49, - transformIdentity, - 32, - 47, - transformIdentity, - 3, - 49, - transformOmitLast5, - 49, - 49, - transformOmitLast9, - 49, - 0, - transformUppercaseFirst, - 1, - 49, - transformUppercaseFirst, - 8, - 5, - transformIdentity, - 21, - 49, - transformUppercaseAll, - 0, - 49, - transformUppercaseFirst, - 10, - 49, - transformIdentity, - 30, - 0, - transformIdentity, - 5, - 35, - transformIdentity, - 49, - 47, - transformIdentity, - 2, - 49, - transformUppercaseFirst, - 17, - 49, - transformIdentity, - 36, - 49, - transformIdentity, - 33, - 5, - transformIdentity, - 0, - 49, - transformUppercaseFirst, - 21, - 49, - transformUppercaseFirst, - 5, - 49, - transformIdentity, - 37, - 0, - transformIdentity, - 30, - 49, - transformIdentity, - 38, - 0, - transformUppercaseAll, - 0, - 49, - transformIdentity, - 39, - 0, - transformUppercaseAll, - 49, - 49, - transformIdentity, - 34, - 49, - transformUppercaseAll, - 8, - 49, - transformUppercaseFirst, - 12, - 0, - transformIdentity, - 21, - 49, - transformIdentity, - 40, - 0, - transformUppercaseFirst, - 12, - 49, - transformIdentity, - 41, - 49, - transformIdentity, - 42, - 49, - transformUppercaseAll, - 17, - 49, - transformIdentity, - 43, - 0, - transformUppercaseFirst, - 5, - 49, - transformUppercaseAll, - 10, - 0, - transformIdentity, - 34, - 49, - transformUppercaseFirst, - 33, - 49, - transformIdentity, - 44, - 49, - transformUppercaseAll, - 5, - 45, - transformIdentity, - 49, - 0, - transformIdentity, - 33, - 49, - transformUppercaseFirst, - 30, - 49, - transformUppercaseAll, - 30, - 49, - transformIdentity, - 46, - 49, - transformUppercaseAll, - 1, - 49, - transformUppercaseFirst, - 34, - 0, - transformUppercaseFirst, - 33, - 0, - transformUppercaseAll, - 30, - 0, - transformUppercaseAll, - 1, - 49, - transformUppercaseAll, - 33, - 49, - transformUppercaseAll, - 21, - 49, - transformUppercaseAll, - 12, - 0, - transformUppercaseAll, - 5, - 49, - transformUppercaseAll, - 34, - 0, - transformUppercaseAll, - 12, - 0, - transformUppercaseFirst, - 30, - 0, - transformUppercaseAll, - 34, - 0, - transformUppercaseFirst, - 34, -} - -var kBrotliTransforms = transforms{ - 217, - []byte(kPrefixSuffix), - kPrefixSuffixMap[:], - 121, - kTransformsData, - nil, /* no extra parameters */ - [transformsMaxCutOff + 1]int16{0, 12, 27, 23, 42, 63, 56, 48, 59, 64}, -} - -func getTransforms() *transforms { - return &kBrotliTransforms -} - -func toUpperCase(p []byte) int { - if p[0] < 0xC0 { - if p[0] >= 'a' && p[0] <= 'z' { - p[0] ^= 32 - } - - return 1 - } - - /* An overly simplified uppercasing model for UTF-8. */ - if p[0] < 0xE0 { - p[1] ^= 32 - return 2 - } - - /* An arbitrary transform for three byte characters. */ - p[2] ^= 5 - - return 3 -} - -func shiftTransform(word []byte, word_len int, parameter uint16) int { - /* Limited sign extension: scalar < (1 << 24). */ - var scalar uint32 = (uint32(parameter) & 0x7FFF) + (0x1000000 - (uint32(parameter) & 0x8000)) - if word[0] < 0x80 { - /* 1-byte rune / 0sssssss / 7 bit scalar (ASCII). */ - scalar += uint32(word[0]) - - word[0] = byte(scalar & 0x7F) - return 1 - } else if word[0] < 0xC0 { - /* Continuation / 10AAAAAA. */ - return 1 - } else if word[0] < 0xE0 { - /* 2-byte rune / 110sssss AAssssss / 11 bit scalar. */ - if word_len < 2 { - return 1 - } - scalar += uint32(word[1]&0x3F | (word[0]&0x1F)<<6) - word[0] = byte(0xC0 | (scalar>>6)&0x1F) - word[1] = byte(uint32(word[1]&0xC0) | scalar&0x3F) - return 2 - } else if word[0] < 0xF0 { - /* 3-byte rune / 1110ssss AAssssss BBssssss / 16 bit scalar. */ - if word_len < 3 { - return word_len - } - scalar += uint32(word[2])&0x3F | uint32(word[1]&0x3F)<<6 | uint32(word[0]&0x0F)<<12 - word[0] = byte(0xE0 | (scalar>>12)&0x0F) - word[1] = byte(uint32(word[1]&0xC0) | (scalar>>6)&0x3F) - word[2] = byte(uint32(word[2]&0xC0) | scalar&0x3F) - return 3 - } else if word[0] < 0xF8 { - /* 4-byte rune / 11110sss AAssssss BBssssss CCssssss / 21 bit scalar. */ - if word_len < 4 { - return word_len - } - scalar += uint32(word[3])&0x3F | uint32(word[2]&0x3F)<<6 | uint32(word[1]&0x3F)<<12 | uint32(word[0]&0x07)<<18 - word[0] = byte(0xF0 | (scalar>>18)&0x07) - word[1] = byte(uint32(word[1]&0xC0) | (scalar>>12)&0x3F) - word[2] = byte(uint32(word[2]&0xC0) | (scalar>>6)&0x3F) - word[3] = byte(uint32(word[3]&0xC0) | scalar&0x3F) - return 4 - } - - return 1 -} - -func transformDictionaryWord(dst []byte, word []byte, len int, trans *transforms, transform_idx int) int { - var idx int = 0 - var prefix []byte = transformPrefix(trans, transform_idx) - var type_ byte = transformType(trans, transform_idx) - var suffix []byte = transformSuffix(trans, transform_idx) - { - var prefix_len int = int(prefix[0]) - prefix = prefix[1:] - for { - tmp1 := prefix_len - prefix_len-- - if tmp1 == 0 { - break - } - dst[idx] = prefix[0] - idx++ - prefix = prefix[1:] - } - } - { - var t int = int(type_) - var i int = 0 - if t <= transformOmitLast9 { - len -= t - } else if t >= transformOmitFirst1 && t <= transformOmitFirst9 { - var skip int = t - (transformOmitFirst1 - 1) - word = word[skip:] - len -= skip - } - - for i < len { - dst[idx] = word[i] - idx++ - i++ - } - if t == transformUppercaseFirst { - toUpperCase(dst[idx-len:]) - } else if t == transformUppercaseAll { - var uppercase []byte = dst - uppercase = uppercase[idx-len:] - for len > 0 { - var step int = toUpperCase(uppercase) - uppercase = uppercase[step:] - len -= step - } - } else if t == transformShiftFirst { - var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 - shiftTransform(dst[idx-len:], int(len), param) - } else if t == transformShiftAll { - var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 - var shift []byte = dst - shift = shift[idx-len:] - for len > 0 { - var step int = shiftTransform(shift, int(len), param) - shift = shift[step:] - len -= step - } - } - } - { - var suffix_len int = int(suffix[0]) - suffix = suffix[1:] - for { - tmp2 := suffix_len - suffix_len-- - if tmp2 == 0 { - break - } - dst[idx] = suffix[0] - idx++ - suffix = suffix[1:] - } - return idx - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/utf8_util.go b/backend/vendor/github.com/andybalholm/brotli/utf8_util.go deleted file mode 100644 index f2553405..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/utf8_util.go +++ /dev/null @@ -1,74 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Heuristics for deciding about the UTF8-ness of strings. */ - -const kMinUTF8Ratio float64 = 0.75 - -/* -Returns 1 if at least min_fraction of the bytes between pos and - - pos + length in the (data, mask) ring-buffer is UTF8-encoded, otherwise - returns 0. -*/ -func parseAsUTF8(symbol *int, input []byte, size uint) uint { - /* ASCII */ - if input[0]&0x80 == 0 { - *symbol = int(input[0]) - if *symbol > 0 { - return 1 - } - } - - /* 2-byte UTF8 */ - if size > 1 && input[0]&0xE0 == 0xC0 && input[1]&0xC0 == 0x80 { - *symbol = (int(input[0])&0x1F)<<6 | int(input[1])&0x3F - if *symbol > 0x7F { - return 2 - } - } - - /* 3-byte UFT8 */ - if size > 2 && input[0]&0xF0 == 0xE0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 { - *symbol = (int(input[0])&0x0F)<<12 | (int(input[1])&0x3F)<<6 | int(input[2])&0x3F - if *symbol > 0x7FF { - return 3 - } - } - - /* 4-byte UFT8 */ - if size > 3 && input[0]&0xF8 == 0xF0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 && input[3]&0xC0 == 0x80 { - *symbol = (int(input[0])&0x07)<<18 | (int(input[1])&0x3F)<<12 | (int(input[2])&0x3F)<<6 | int(input[3])&0x3F - if *symbol > 0xFFFF && *symbol <= 0x10FFFF { - return 4 - } - } - - /* Not UTF8, emit a special symbol above the UTF8-code space */ - *symbol = 0x110000 | int(input[0]) - - return 1 -} - -/* Returns 1 if at least min_fraction of the data is UTF8-encoded.*/ -func isMostlyUTF8(data []byte, pos uint, mask uint, length uint, min_fraction float64) bool { - var size_utf8 uint = 0 - var i uint = 0 - for i < length { - var symbol int - var current_data []byte - current_data = data[(pos+i)&mask:] - var bytes_read uint = parseAsUTF8(&symbol, current_data, length-i) - i += bytes_read - if symbol < 0x110000 { - size_utf8 += bytes_read - } - } - - return float64(size_utf8) > min_fraction*float64(length) -} diff --git a/backend/vendor/github.com/andybalholm/brotli/util.go b/backend/vendor/github.com/andybalholm/brotli/util.go deleted file mode 100644 index a84553a6..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/util.go +++ /dev/null @@ -1,7 +0,0 @@ -package brotli - -func assert(cond bool) { - if !cond { - panic("assertion failure") - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/write_bits.go b/backend/vendor/github.com/andybalholm/brotli/write_bits.go deleted file mode 100644 index 2d216d7c..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/write_bits.go +++ /dev/null @@ -1,94 +0,0 @@ -package brotli - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Write bits into a byte array. */ - -type bitWriter struct { - dst []byte - - // Data waiting to be written is the low nbits of bits. - bits uint64 - nbits uint -} - -func (w *bitWriter) writeBits(nb uint, b uint64) { - w.bits |= b << w.nbits - w.nbits += nb - if w.nbits >= 32 { - bits := w.bits - w.bits >>= 32 - w.nbits -= 32 - w.dst = append(w.dst, - byte(bits), - byte(bits>>8), - byte(bits>>16), - byte(bits>>24), - ) - } -} - -func (w *bitWriter) writeSingleBit(bit bool) { - if bit { - w.writeBits(1, 1) - } else { - w.writeBits(1, 0) - } -} - -func (w *bitWriter) jumpToByteBoundary() { - dst := w.dst - for w.nbits != 0 { - dst = append(dst, byte(w.bits)) - w.bits >>= 8 - if w.nbits > 8 { // Avoid underflow - w.nbits -= 8 - } else { - w.nbits = 0 - } - } - w.bits = 0 - w.dst = dst -} - -func (w *bitWriter) writeBytes(b []byte) { - if w.nbits&7 != 0 { - panic("writeBytes with unfinished bits") - } - for w.nbits != 0 { - w.dst = append(w.dst, byte(w.bits)) - w.bits >>= 8 - w.nbits -= 8 - } - w.dst = append(w.dst, b...) -} - -func (w *bitWriter) getPos() uint { - return uint(len(w.dst)<<3) + w.nbits -} - -func (w *bitWriter) rewind(p uint) { - w.bits = uint64(w.dst[p>>3] & byte((1<<(p&7))-1)) - w.nbits = p & 7 - w.dst = w.dst[:p>>3] -} - -func (w *bitWriter) updateBits(n_bits uint, bits uint32, pos uint) { - for n_bits > 0 { - var byte_pos uint = pos >> 3 - var n_unchanged_bits uint = pos & 7 - var n_changed_bits uint = brotli_min_size_t(n_bits, 8-n_unchanged_bits) - var total_bits uint = n_unchanged_bits + n_changed_bits - var mask uint32 = (^((1 << total_bits) - 1)) | ((1 << n_unchanged_bits) - 1) - var unchanged_bits uint32 = uint32(w.dst[byte_pos]) & mask - var changed_bits uint32 = bits & ((1 << n_changed_bits) - 1) - w.dst[byte_pos] = byte(changed_bits<>= n_changed_bits - pos += n_changed_bits - } -} diff --git a/backend/vendor/github.com/andybalholm/brotli/writer.go b/backend/vendor/github.com/andybalholm/brotli/writer.go deleted file mode 100644 index 63676b46..00000000 --- a/backend/vendor/github.com/andybalholm/brotli/writer.go +++ /dev/null @@ -1,118 +0,0 @@ -package brotli - -import ( - "errors" - "io" -) - -const ( - BestSpeed = 0 - BestCompression = 11 - DefaultCompression = 6 -) - -// WriterOptions configures Writer. -type WriterOptions struct { - // Quality controls the compression-speed vs compression-density trade-offs. - // The higher the quality, the slower the compression. Range is 0 to 11. - Quality int - // LGWin is the base 2 logarithm of the sliding window size. - // Range is 10 to 24. 0 indicates automatic configuration based on Quality. - LGWin int -} - -var ( - errEncode = errors.New("brotli: encode error") - errWriterClosed = errors.New("brotli: Writer is closed") -) - -// Writes to the returned writer are compressed and written to dst. -// It is the caller's responsibility to call Close on the Writer when done. -// Writes may be buffered and not flushed until Close. -func NewWriter(dst io.Writer) *Writer { - return NewWriterLevel(dst, DefaultCompression) -} - -// NewWriterLevel is like NewWriter but specifies the compression level instead -// of assuming DefaultCompression. -// The compression level can be DefaultCompression or any integer value between -// BestSpeed and BestCompression inclusive. -func NewWriterLevel(dst io.Writer, level int) *Writer { - return NewWriterOptions(dst, WriterOptions{ - Quality: level, - }) -} - -// NewWriterOptions is like NewWriter but specifies WriterOptions -func NewWriterOptions(dst io.Writer, options WriterOptions) *Writer { - w := new(Writer) - w.options = options - w.Reset(dst) - return w -} - -// Reset discards the Writer's state and makes it equivalent to the result of -// its original state from NewWriter or NewWriterLevel, but writing to dst -// instead. This permits reusing a Writer rather than allocating a new one. -func (w *Writer) Reset(dst io.Writer) { - encoderInitState(w) - w.params.quality = w.options.Quality - if w.options.LGWin > 0 { - w.params.lgwin = uint(w.options.LGWin) - } - w.dst = dst -} - -func (w *Writer) writeChunk(p []byte, op int) (n int, err error) { - if w.dst == nil { - return 0, errWriterClosed - } - if w.err != nil { - return 0, w.err - } - - for { - availableIn := uint(len(p)) - nextIn := p - success := encoderCompressStream(w, op, &availableIn, &nextIn) - bytesConsumed := len(p) - int(availableIn) - p = p[bytesConsumed:] - n += bytesConsumed - if !success { - return n, errEncode - } - - if len(p) == 0 || w.err != nil { - return n, w.err - } - } -} - -// Flush outputs encoded data for all input provided to Write. The resulting -// output can be decoded to match all input before Flush, but the stream is -// not yet complete until after Close. -// Flush has a negative impact on compression. -func (w *Writer) Flush() error { - _, err := w.writeChunk(nil, operationFlush) - return err -} - -// Close flushes remaining data to the decorated writer. -func (w *Writer) Close() error { - // If stream is already closed, it is reported by `writeChunk`. - _, err := w.writeChunk(nil, operationFinish) - w.dst = nil - return err -} - -// Write implements io.Writer. Flush or Close must be called to ensure that the -// encoded bytes are actually flushed to the underlying Writer. -func (w *Writer) Write(p []byte) (n int, err error) { - return w.writeChunk(p, operationProcess) -} - -type nopCloser struct { - io.Writer -} - -func (nopCloser) Close() error { return nil } diff --git a/backend/vendor/github.com/asdine/storm/v3/.gitignore b/backend/vendor/github.com/asdine/storm/v3/.gitignore deleted file mode 100644 index feec3026..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# IDE -.idea/ -.vscode/ -*.iml - -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof - -# Golang vendor folder -/vendor/ diff --git a/backend/vendor/github.com/asdine/storm/v3/.travis.yml b/backend/vendor/github.com/asdine/storm/v3/.travis.yml deleted file mode 100644 index 01a9bfdf..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: go - -before_install: - - go get github.com/stretchr/testify - -env: GO111MODULE=on - -go: - - "1.13.x" - - "1.14.x" - - tip - -matrix: - allow_failures: - - go: tip - -script: - - go mod vendor - - go test -mod vendor -race -v ./... diff --git a/backend/vendor/github.com/asdine/storm/v3/LICENSE b/backend/vendor/github.com/asdine/storm/v3/LICENSE deleted file mode 100644 index bf86c69d..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) [2017] [Asdine El Hrychy] - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/asdine/storm/v3/README.md b/backend/vendor/github.com/asdine/storm/v3/README.md deleted file mode 100644 index d7a030c5..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/README.md +++ /dev/null @@ -1,643 +0,0 @@ -# Storm - -[![Build Status](https://travis-ci.org/asdine/storm.svg)](https://travis-ci.org/asdine/storm) -[![GoDoc](https://godoc.org/github.com/asdine/storm?status.svg)](https://godoc.org/github.com/asdine/storm) - -Storm is a simple and powerful toolkit for [BoltDB](https://github.com/coreos/bbolt). Basically, Storm provides indexes, a wide range of methods to store and fetch data, an advanced query system, and much more. - -In addition to the examples below, see also the [examples in the GoDoc](https://godoc.org/github.com/asdine/storm#pkg-examples). - -_For extended queries and support for [Badger](https://github.com/dgraph-io/badger), see also [Genji](https://github.com/asdine/genji)_ - -## Table of Contents - -- [Getting Started](#getting-started) -- [Import Storm](#import-storm) -- [Open a database](#open-a-database) -- [Simple CRUD system](#simple-crud-system) - - [Declare your structures](#declare-your-structures) - - [Save your object](#save-your-object) - - [Auto Increment](#auto-increment) - - [Simple queries](#simple-queries) - - [Fetch one object](#fetch-one-object) - - [Fetch multiple objects](#fetch-multiple-objects) - - [Fetch all objects](#fetch-all-objects) - - [Fetch all objects sorted by index](#fetch-all-objects-sorted-by-index) - - [Fetch a range of objects](#fetch-a-range-of-objects) - - [Fetch objects by prefix](#fetch-objects-by-prefix) - - [Skip, Limit and Reverse](#skip-limit-and-reverse) - - [Delete an object](#delete-an-object) - - [Update an object](#update-an-object) - - [Initialize buckets and indexes before saving an object](#initialize-buckets-and-indexes-before-saving-an-object) - - [Drop a bucket](#drop-a-bucket) - - [Re-index a bucket](#re-index-a-bucket) - - [Advanced queries](#advanced-queries) - - [Transactions](#transactions) - - [Options](#options) - - [BoltOptions](#boltoptions) - - [MarshalUnmarshaler](#marshalunmarshaler) - - [Provided Codecs](#provided-codecs) - - [Use existing Bolt connection](#use-existing-bolt-connection) - - [Batch mode](#batch-mode) -- [Nodes and nested buckets](#nodes-and-nested-buckets) - - [Node options](#node-options) -- [Simple Key/Value store](#simple-keyvalue-store) -- [BoltDB](#boltdb) -- [License](#license) -- [Credits](#credits) - -## Getting Started - -```bash -GO111MODULE=on go get -u github.com/asdine/storm/v3 -``` - -## Import Storm - -```go -import "github.com/asdine/storm/v3" -``` - -## Open a database - -Quick way of opening a database - -```go -db, err := storm.Open("my.db") - -defer db.Close() -``` - -`Open` can receive multiple options to customize the way it behaves. See [Options](#options) below - -## Simple CRUD system - -### Declare your structures - -```go -type User struct { - ID int // primary key - Group string `storm:"index"` // this field will be indexed - Email string `storm:"unique"` // this field will be indexed with a unique constraint - Name string // this field will not be indexed - Age int `storm:"index"` -} -``` - -The primary key can be of any type as long as it is not a zero value. Storm will search for the tag `id`, if not present Storm will search for a field named `ID`. - -```go -type User struct { - ThePrimaryKey string `storm:"id"`// primary key - Group string `storm:"index"` // this field will be indexed - Email string `storm:"unique"` // this field will be indexed with a unique constraint - Name string // this field will not be indexed -} -``` - -Storm handles tags in nested structures with the `inline` tag - -```go -type Base struct { - Ident bson.ObjectId `storm:"id"` -} - -type User struct { - Base `storm:"inline"` - Group string `storm:"index"` - Email string `storm:"unique"` - Name string - CreatedAt time.Time `storm:"index"` -} -``` - -### Save your object - -```go -user := User{ - ID: 10, - Group: "staff", - Email: "john@provider.com", - Name: "John", - Age: 21, - CreatedAt: time.Now(), -} - -err := db.Save(&user) -// err == nil - -user.ID++ -err = db.Save(&user) -// err == storm.ErrAlreadyExists -``` - -That's it. - -`Save` creates or updates all the required indexes and buckets, checks the unique constraints and saves the object to the store. - -#### Auto Increment - -Storm can auto increment integer values so you don't have to worry about that when saving your objects. Also, the new value is automatically inserted in your field. - -```go - -type Product struct { - Pk int `storm:"id,increment"` // primary key with auto increment - Name string - IntegerField uint64 `storm:"increment"` - IndexedIntegerField uint32 `storm:"index,increment"` - UniqueIntegerField int16 `storm:"unique,increment=100"` // the starting value can be set -} - -p := Product{Name: "Vaccum Cleaner"} - -fmt.Println(p.Pk) -fmt.Println(p.IntegerField) -fmt.Println(p.IndexedIntegerField) -fmt.Println(p.UniqueIntegerField) -// 0 -// 0 -// 0 -// 0 - -_ = db.Save(&p) - -fmt.Println(p.Pk) -fmt.Println(p.IntegerField) -fmt.Println(p.IndexedIntegerField) -fmt.Println(p.UniqueIntegerField) -// 1 -// 1 -// 1 -// 100 - -``` - -### Simple queries - -Any object can be fetched, indexed or not. Storm uses indexes when available, otherwise it uses the [query system](#advanced-queries). - -#### Fetch one object - -```go -var user User -err := db.One("Email", "john@provider.com", &user) -// err == nil - -err = db.One("Name", "John", &user) -// err == nil - -err = db.One("Name", "Jack", &user) -// err == storm.ErrNotFound -``` - -#### Fetch multiple objects - -```go -var users []User -err := db.Find("Group", "staff", &users) -``` - -#### Fetch all objects - -```go -var users []User -err := db.All(&users) -``` - -#### Fetch all objects sorted by index - -```go -var users []User -err := db.AllByIndex("CreatedAt", &users) -``` - -#### Fetch a range of objects - -```go -var users []User -err := db.Range("Age", 10, 21, &users) -``` - -#### Fetch objects by prefix - -```go -var users []User -err := db.Prefix("Name", "Jo", &users) -``` - -#### Skip, Limit and Reverse - -```go -var users []User -err := db.Find("Group", "staff", &users, storm.Skip(10)) -err = db.Find("Group", "staff", &users, storm.Limit(10)) -err = db.Find("Group", "staff", &users, storm.Reverse()) -err = db.Find("Group", "staff", &users, storm.Limit(10), storm.Skip(10), storm.Reverse()) - -err = db.All(&users, storm.Limit(10), storm.Skip(10), storm.Reverse()) -err = db.AllByIndex("CreatedAt", &users, storm.Limit(10), storm.Skip(10), storm.Reverse()) -err = db.Range("Age", 10, 21, &users, storm.Limit(10), storm.Skip(10), storm.Reverse()) -``` - -#### Delete an object - -```go -err := db.DeleteStruct(&user) -``` - -#### Update an object - -```go -// Update multiple fields -err := db.Update(&User{ID: 10, Name: "Jack", Age: 45}) - -// Update a single field -err := db.UpdateField(&User{ID: 10}, "Age", 0) -``` - -#### Initialize buckets and indexes before saving an object - -```go -err := db.Init(&User{}) -``` - -Useful when starting your application - -#### Drop a bucket - -Using the struct - -```go -err := db.Drop(&User) -``` - -Using the bucket name - -```go -err := db.Drop("User") -``` - -#### Re-index a bucket - -```go -err := db.ReIndex(&User{}) -``` - -Useful when the structure has changed - -### Advanced queries - -For more complex queries, you can use the `Select` method. -`Select` takes any number of [`Matcher`](https://godoc.org/github.com/asdine/storm/q#Matcher) from the [`q`](https://godoc.org/github.com/asdine/storm/q) package. - -Here are some common Matchers: - -```go -// Equality -q.Eq("Name", John) - -// Strictly greater than -q.Gt("Age", 7) - -// Lesser than or equal to -q.Lte("Age", 77) - -// Regex with name that starts with the letter D -q.Re("Name", "^D") - -// In the given slice of values -q.In("Group", []string{"Staff", "Admin"}) - -// Comparing fields -q.EqF("FieldName", "SecondFieldName") -q.LtF("FieldName", "SecondFieldName") -q.GtF("FieldName", "SecondFieldName") -q.LteF("FieldName", "SecondFieldName") -q.GteF("FieldName", "SecondFieldName") -``` - -Matchers can also be combined with `And`, `Or` and `Not`: - -```go - -// Match if all match -q.And( - q.Gt("Age", 7), - q.Re("Name", "^D") -) - -// Match if one matches -q.Or( - q.Re("Name", "^A"), - q.Not( - q.Re("Name", "^B") - ), - q.Re("Name", "^C"), - q.In("Group", []string{"Staff", "Admin"}), - q.And( - q.StrictEq("Password", []byte(password)), - q.Eq("Registered", true) - ) -) -``` - -You can find the complete list in the [documentation](https://godoc.org/github.com/asdine/storm/q#Matcher). - -`Select` takes any number of matchers and wraps them into a `q.And()` so it's not necessary to specify it. It returns a [`Query`](https://godoc.org/github.com/asdine/storm#Query) type. - -```go -query := db.Select(q.Gte("Age", 7), q.Lte("Age", 77)) -``` - -The `Query` type contains methods to filter and order the records. - -```go -// Limit -query = query.Limit(10) - -// Skip -query = query.Skip(20) - -// Calls can also be chained -query = query.Limit(10).Skip(20).OrderBy("Age").Reverse() -``` - -But also to specify how to fetch them. - -```go -var users []User -err = query.Find(&users) - -var user User -err = query.First(&user) -``` - -Examples with `Select`: - -```go -// Find all users with an ID between 10 and 100 -err = db.Select(q.Gte("ID", 10), q.Lte("ID", 100)).Find(&users) - -// Nested matchers -err = db.Select(q.Or( - q.Gt("ID", 50), - q.Lt("Age", 21), - q.And( - q.Eq("Group", "admin"), - q.Gte("Age", 21), - ), -)).Find(&users) - -query := db.Select(q.Gte("ID", 10), q.Lte("ID", 100)).Limit(10).Skip(5).Reverse().OrderBy("Age", "Name") - -// Find multiple records -err = query.Find(&users) -// or -err = db.Select(q.Gte("ID", 10), q.Lte("ID", 100)).Limit(10).Skip(5).Reverse().OrderBy("Age", "Name").Find(&users) - -// Find first record -err = query.First(&user) -// or -err = db.Select(q.Gte("ID", 10), q.Lte("ID", 100)).Limit(10).Skip(5).Reverse().OrderBy("Age", "Name").First(&user) - -// Delete all matching records -err = query.Delete(new(User)) - -// Fetching records one by one (useful when the bucket contains a lot of records) -query = db.Select(q.Gte("ID", 10),q.Lte("ID", 100)).OrderBy("Age", "Name") - -err = query.Each(new(User), func(record interface{}) error) { - u := record.(*User) - ... - return nil -} -``` - -See the [documentation](https://godoc.org/github.com/asdine/storm#Query) for a complete list of methods. - -### Transactions - -```go -tx, err := db.Begin(true) -if err != nil { - return err -} -defer tx.Rollback() - -accountA.Amount -= 100 -accountB.Amount += 100 - -err = tx.Save(accountA) -if err != nil { - return err -} - -err = tx.Save(accountB) -if err != nil { - return err -} - -return tx.Commit() -``` - -### Options - -Storm options are functions that can be passed when constructing you Storm instance. You can pass it any number of options. - -#### BoltOptions - -By default, Storm opens a database with the mode `0600` and a timeout of one second. -You can change this behavior by using `BoltOptions` - -```go -db, err := storm.Open("my.db", storm.BoltOptions(0600, &bolt.Options{Timeout: 1 * time.Second})) -``` - -#### MarshalUnmarshaler - -To store the data in BoltDB, Storm marshals it in JSON by default. If you wish to change this behavior you can pass a codec that implements [`codec.MarshalUnmarshaler`](https://godoc.org/github.com/asdine/storm/codec#MarshalUnmarshaler) via the [`storm.Codec`](https://godoc.org/github.com/asdine/storm#Codec) option: - -```go -db := storm.Open("my.db", storm.Codec(myCodec)) -``` - -##### Provided Codecs - -You can easily implement your own `MarshalUnmarshaler`, but Storm comes with built-in support for [JSON](https://godoc.org/github.com/asdine/storm/codec/json) (default), [GOB](https://godoc.org/github.com/asdine/storm/codec/gob), [Sereal](https://godoc.org/github.com/asdine/storm/codec/sereal), [Protocol Buffers](https://godoc.org/github.com/asdine/storm/codec/protobuf) and [MessagePack](https://godoc.org/github.com/asdine/storm/codec/msgpack). - -These can be used by importing the relevant package and use that codec to configure Storm. The example below shows all variants (without proper error handling): - -```go -import ( - "github.com/asdine/storm/v3" - "github.com/asdine/storm/v3/codec/gob" - "github.com/asdine/storm/v3/codec/json" - "github.com/asdine/storm/v3/codec/sereal" - "github.com/asdine/storm/v3/codec/protobuf" - "github.com/asdine/storm/v3/codec/msgpack" -) - -var gobDb, _ = storm.Open("gob.db", storm.Codec(gob.Codec)) -var jsonDb, _ = storm.Open("json.db", storm.Codec(json.Codec)) -var serealDb, _ = storm.Open("sereal.db", storm.Codec(sereal.Codec)) -var protobufDb, _ = storm.Open("protobuf.db", storm.Codec(protobuf.Codec)) -var msgpackDb, _ = storm.Open("msgpack.db", storm.Codec(msgpack.Codec)) -``` - -**Tip**: Adding Storm tags to generated Protobuf files can be tricky. A good solution is to use [this tool](https://github.com/favadi/protoc-go-inject-tag) to inject the tags during the compilation. - -#### Use existing Bolt connection - -You can use an existing connection and pass it to Storm - -```go -bDB, _ := bolt.Open(filepath.Join(dir, "bolt.db"), 0600, &bolt.Options{Timeout: 10 * time.Second}) -db := storm.Open("my.db", storm.UseDB(bDB)) -``` - -#### Batch mode - -Batch mode can be enabled to speed up concurrent writes (see [Batch read-write transactions](https://github.com/coreos/bbolt#batch-read-write-transactions)) - -```go -db := storm.Open("my.db", storm.Batch()) -``` - -## Nodes and nested buckets - -Storm takes advantage of BoltDB nested buckets feature by using `storm.Node`. -A `storm.Node` is the underlying object used by `storm.DB` to manipulate a bucket. -To create a nested bucket and use the same API as `storm.DB`, you can use the `DB.From` method. - -```go -repo := db.From("repo") - -err := repo.Save(&Issue{ - Title: "I want more features", - Author: user.ID, -}) - -err = repo.Save(newRelease("0.10")) - -var issues []Issue -err = repo.Find("Author", user.ID, &issues) - -var release Release -err = repo.One("Tag", "0.10", &release) -``` - -You can also chain the nodes to create a hierarchy - -```go -chars := db.From("characters") -heroes := chars.From("heroes") -enemies := chars.From("enemies") - -items := db.From("items") -potions := items.From("consumables").From("medicine").From("potions") -``` - -You can even pass the entire hierarchy as arguments to `From`: - -```go -privateNotes := db.From("notes", "private") -workNotes := db.From("notes", "work") -``` - -### Node options - -A Node can also be configured. Activating an option on a Node creates a copy, so a Node is always thread-safe. - -```go -n := db.From("my-node") -``` - -Give a bolt.Tx transaction to the Node - -```go -n = n.WithTransaction(tx) -``` - -Enable batch mode - -```go -n = n.WithBatch(true) -``` - -Use a Codec - -```go -n = n.WithCodec(gob.Codec) -``` - -## Simple Key/Value store - -Storm can be used as a simple, robust, key/value store that can store anything. -The key and the value can be of any type as long as the key is not a zero value. - -Saving data : - -```go -db.Set("logs", time.Now(), "I'm eating my breakfast man") -db.Set("sessions", bson.NewObjectId(), &someUser) -db.Set("weird storage", "754-3010", map[string]interface{}{ - "hair": "blonde", - "likes": []string{"cheese", "star wars"}, -}) -``` - -Fetching data : - -```go -user := User{} -db.Get("sessions", someObjectId, &user) - -var details map[string]interface{} -db.Get("weird storage", "754-3010", &details) - -db.Get("sessions", someObjectId, &details) -``` - -Deleting data : - -```go -db.Delete("sessions", someObjectId) -db.Delete("weird storage", "754-3010") -``` - -You can find other useful methods in the [documentation](https://godoc.org/github.com/asdine/storm#KeyValueStore). - -## BoltDB - -BoltDB is still easily accessible and can be used as usual - -```go -db.Bolt.View(func(tx *bolt.Tx) error { - bucket := tx.Bucket([]byte("my bucket")) - val := bucket.Get([]byte("any id")) - fmt.Println(string(val)) - return nil -}) -``` - -A transaction can be also be passed to Storm - -```go -db.Bolt.Update(func(tx *bolt.Tx) error { - ... - dbx := db.WithTransaction(tx) - err = dbx.Save(&user) - ... - return nil -}) -``` - -## License - -MIT - -## Credits - -- [Asdine El Hrychy](https://github.com/asdine) -- [Bjørn Erik Pedersen](https://github.com/bep) diff --git a/backend/vendor/github.com/asdine/storm/v3/bucket.go b/backend/vendor/github.com/asdine/storm/v3/bucket.go deleted file mode 100644 index e2ef170e..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/bucket.go +++ /dev/null @@ -1,47 +0,0 @@ -package storm - -import bolt "go.etcd.io/bbolt" - -// CreateBucketIfNotExists creates the bucket below the current node if it doesn't -// already exist. -func (n *node) CreateBucketIfNotExists(tx *bolt.Tx, bucket string) (*bolt.Bucket, error) { - var b *bolt.Bucket - var err error - - bucketNames := append(n.rootBucket, bucket) - - for _, bucketName := range bucketNames { - if b != nil { - if b, err = b.CreateBucketIfNotExists([]byte(bucketName)); err != nil { - return nil, err - } - - } else { - if b, err = tx.CreateBucketIfNotExists([]byte(bucketName)); err != nil { - return nil, err - } - } - } - - return b, nil -} - -// GetBucket returns the given bucket below the current node. -func (n *node) GetBucket(tx *bolt.Tx, children ...string) *bolt.Bucket { - var b *bolt.Bucket - - bucketNames := append(n.rootBucket, children...) - for _, bucketName := range bucketNames { - if b != nil { - if b = b.Bucket([]byte(bucketName)); b == nil { - return nil - } - } else { - if b = tx.Bucket([]byte(bucketName)); b == nil { - return nil - } - } - } - - return b -} diff --git a/backend/vendor/github.com/asdine/storm/v3/codec/.gitignore b/backend/vendor/github.com/asdine/storm/v3/codec/.gitignore deleted file mode 100644 index 3997bead..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/codec/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.db \ No newline at end of file diff --git a/backend/vendor/github.com/asdine/storm/v3/codec/codec.go b/backend/vendor/github.com/asdine/storm/v3/codec/codec.go deleted file mode 100644 index b157379c..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/codec/codec.go +++ /dev/null @@ -1,11 +0,0 @@ -// Package codec contains sub-packages with different codecs that can be used -// to encode and decode entities in Storm. -package codec - -// MarshalUnmarshaler represents a codec used to marshal and unmarshal entities. -type MarshalUnmarshaler interface { - Marshal(v interface{}) ([]byte, error) - Unmarshal(b []byte, v interface{}) error - // name of this codec - Name() string -} diff --git a/backend/vendor/github.com/asdine/storm/v3/codec/json/json.go b/backend/vendor/github.com/asdine/storm/v3/codec/json/json.go deleted file mode 100644 index 56b0b466..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/codec/json/json.go +++ /dev/null @@ -1,25 +0,0 @@ -// Package json contains a codec to encode and decode entities in JSON format -package json - -import ( - "encoding/json" -) - -const name = "json" - -// Codec that encodes to and decodes from JSON. -var Codec = new(jsonCodec) - -type jsonCodec int - -func (j jsonCodec) Marshal(v interface{}) ([]byte, error) { - return json.Marshal(v) -} - -func (j jsonCodec) Unmarshal(b []byte, v interface{}) error { - return json.Unmarshal(b, v) -} - -func (j jsonCodec) Name() string { - return name -} diff --git a/backend/vendor/github.com/asdine/storm/v3/errors.go b/backend/vendor/github.com/asdine/storm/v3/errors.go deleted file mode 100644 index ef526561..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/errors.go +++ /dev/null @@ -1,51 +0,0 @@ -package storm - -import "errors" - -// Errors -var ( - // ErrNoID is returned when no ID field or id tag is found in the struct. - ErrNoID = errors.New("missing struct tag id or ID field") - - // ErrZeroID is returned when the ID field is a zero value. - ErrZeroID = errors.New("id field must not be a zero value") - - // ErrBadType is returned when a method receives an unexpected value type. - ErrBadType = errors.New("provided data must be a struct or a pointer to struct") - - // ErrAlreadyExists is returned uses when trying to set an existing value on a field that has a unique index. - ErrAlreadyExists = errors.New("already exists") - - // ErrNilParam is returned when the specified param is expected to be not nil. - ErrNilParam = errors.New("param must not be nil") - - // ErrUnknownTag is returned when an unexpected tag is specified. - ErrUnknownTag = errors.New("unknown tag") - - // ErrIdxNotFound is returned when the specified index is not found. - ErrIdxNotFound = errors.New("index not found") - - // ErrSlicePtrNeeded is returned when an unexpected value is given, instead of a pointer to slice. - ErrSlicePtrNeeded = errors.New("provided target must be a pointer to slice") - - // ErrStructPtrNeeded is returned when an unexpected value is given, instead of a pointer to struct. - ErrStructPtrNeeded = errors.New("provided target must be a pointer to struct") - - // ErrPtrNeeded is returned when an unexpected value is given, instead of a pointer. - ErrPtrNeeded = errors.New("provided target must be a pointer to a valid variable") - - // ErrNoName is returned when the specified struct has no name. - ErrNoName = errors.New("provided target must have a name") - - // ErrNotFound is returned when the specified record is not saved in the bucket. - ErrNotFound = errors.New("not found") - - // ErrNotInTransaction is returned when trying to rollback or commit when not in transaction. - ErrNotInTransaction = errors.New("not in transaction") - - // ErrIncompatibleValue is returned when trying to set a value with a different type than the chosen field - ErrIncompatibleValue = errors.New("incompatible value") - - // ErrDifferentCodec is returned when using a codec different than the first codec used with the bucket. - ErrDifferentCodec = errors.New("the selected codec is incompatible with this bucket") -) diff --git a/backend/vendor/github.com/asdine/storm/v3/extract.go b/backend/vendor/github.com/asdine/storm/v3/extract.go deleted file mode 100644 index f601050b..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/extract.go +++ /dev/null @@ -1,226 +0,0 @@ -package storm - -import ( - "fmt" - "reflect" - "strconv" - "strings" - - "github.com/asdine/storm/v3/index" - bolt "go.etcd.io/bbolt" -) - -// Storm tags -const ( - tagID = "id" - tagIdx = "index" - tagUniqueIdx = "unique" - tagInline = "inline" - tagIncrement = "increment" - indexPrefix = "__storm_index_" -) - -type fieldConfig struct { - Name string - Index string - IsZero bool - IsID bool - Increment bool - IncrementStart int64 - IsInteger bool - Value *reflect.Value - ForceUpdate bool -} - -// structConfig is a structure gathering all the relevant informations about a model -type structConfig struct { - Name string - Fields map[string]*fieldConfig - ID *fieldConfig -} - -func extract(s *reflect.Value, mi ...*structConfig) (*structConfig, error) { - if s.Kind() == reflect.Ptr { - e := s.Elem() - s = &e - } - if s.Kind() != reflect.Struct { - return nil, ErrBadType - } - - typ := s.Type() - - var child bool - - var m *structConfig - if len(mi) > 0 { - m = mi[0] - child = true - } else { - m = &structConfig{} - m.Fields = make(map[string]*fieldConfig) - } - - if m.Name == "" { - m.Name = typ.Name() - } - - numFields := s.NumField() - for i := 0; i < numFields; i++ { - field := typ.Field(i) - value := s.Field(i) - - if field.PkgPath != "" { - continue - } - - err := extractField(&value, &field, m, child) - if err != nil { - return nil, err - } - } - - if child { - return m, nil - } - - if m.ID == nil { - return nil, ErrNoID - } - - if m.Name == "" { - return nil, ErrNoName - } - - return m, nil -} - -func extractField(value *reflect.Value, field *reflect.StructField, m *structConfig, isChild bool) error { - var f *fieldConfig - var err error - - tag := field.Tag.Get("storm") - if tag != "" { - f = &fieldConfig{ - Name: field.Name, - IsZero: isZero(value), - IsInteger: isInteger(value), - Value: value, - IncrementStart: 1, - } - - tags := strings.Split(tag, ",") - - for _, tag := range tags { - switch tag { - case "id": - f.IsID = true - f.Index = tagUniqueIdx - case tagUniqueIdx, tagIdx: - f.Index = tag - case tagInline: - if value.Kind() == reflect.Ptr { - e := value.Elem() - value = &e - } - if value.Kind() == reflect.Struct { - a := value.Addr() - _, err := extract(&a, m) - if err != nil { - return err - } - } - // we don't need to save this field - return nil - default: - if strings.HasPrefix(tag, tagIncrement) { - f.Increment = true - parts := strings.Split(tag, "=") - if parts[0] != tagIncrement { - return ErrUnknownTag - } - if len(parts) > 1 { - f.IncrementStart, err = strconv.ParseInt(parts[1], 0, 64) - if err != nil { - return err - } - } - } else { - return ErrUnknownTag - } - } - } - - if _, ok := m.Fields[f.Name]; !ok || !isChild { - m.Fields[f.Name] = f - } - } - - if m.ID == nil && f != nil && f.IsID { - m.ID = f - } - - // the field is named ID and no ID field has been detected before - if m.ID == nil && field.Name == "ID" { - if f == nil { - f = &fieldConfig{ - Index: tagUniqueIdx, - Name: field.Name, - IsZero: isZero(value), - IsInteger: isInteger(value), - IsID: true, - Value: value, - IncrementStart: 1, - } - m.Fields[field.Name] = f - } - m.ID = f - } - - return nil -} - -func extractSingleField(ref *reflect.Value, fieldName string) (*structConfig, error) { - var cfg structConfig - cfg.Fields = make(map[string]*fieldConfig) - - f, ok := ref.Type().FieldByName(fieldName) - if !ok || f.PkgPath != "" { - return nil, fmt.Errorf("field %s not found", fieldName) - } - - v := ref.FieldByName(fieldName) - err := extractField(&v, &f, &cfg, false) - if err != nil { - return nil, err - } - - return &cfg, nil -} - -func getIndex(bucket *bolt.Bucket, idxKind string, fieldName string) (index.Index, error) { - var idx index.Index - var err error - - switch idxKind { - case tagUniqueIdx: - idx, err = index.NewUniqueIndex(bucket, []byte(indexPrefix+fieldName)) - case tagIdx: - idx, err = index.NewListIndex(bucket, []byte(indexPrefix+fieldName)) - default: - err = ErrIdxNotFound - } - - return idx, err -} - -func isZero(v *reflect.Value) bool { - zero := reflect.Zero(v.Type()).Interface() - current := v.Interface() - return reflect.DeepEqual(current, zero) -} - -func isInteger(v *reflect.Value) bool { - kind := v.Kind() - return v != nil && kind >= reflect.Int && kind <= reflect.Uint64 -} diff --git a/backend/vendor/github.com/asdine/storm/v3/finder.go b/backend/vendor/github.com/asdine/storm/v3/finder.go deleted file mode 100644 index 81628629..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/finder.go +++ /dev/null @@ -1,499 +0,0 @@ -package storm - -import ( - "fmt" - "reflect" - - "github.com/asdine/storm/v3/index" - "github.com/asdine/storm/v3/q" - bolt "go.etcd.io/bbolt" -) - -// A Finder can fetch types from BoltDB. -type Finder interface { - // One returns one record by the specified index - One(fieldName string, value interface{}, to interface{}) error - - // Find returns one or more records by the specified index - Find(fieldName string, value interface{}, to interface{}, options ...func(q *index.Options)) error - - // AllByIndex gets all the records of a bucket that are indexed in the specified index - AllByIndex(fieldName string, to interface{}, options ...func(*index.Options)) error - - // All gets all the records of a bucket. - // If there are no records it returns no error and the 'to' parameter is set to an empty slice. - All(to interface{}, options ...func(*index.Options)) error - - // Select a list of records that match a list of matchers. Doesn't use indexes. - Select(matchers ...q.Matcher) Query - - // Range returns one or more records by the specified index within the specified range - Range(fieldName string, min, max, to interface{}, options ...func(*index.Options)) error - - // Prefix returns one or more records whose given field starts with the specified prefix. - Prefix(fieldName string, prefix string, to interface{}, options ...func(*index.Options)) error - - // Count counts all the records of a bucket - Count(data interface{}) (int, error) -} - -// One returns one record by the specified index -func (n *node) One(fieldName string, value interface{}, to interface{}) error { - sink, err := newFirstSink(n, to) - if err != nil { - return err - } - - bucketName := sink.bucketName() - if bucketName == "" { - return ErrNoName - } - - if fieldName == "" { - return ErrNotFound - } - - ref := reflect.Indirect(sink.ref) - cfg, err := extractSingleField(&ref, fieldName) - if err != nil { - return err - } - - field, ok := cfg.Fields[fieldName] - if !ok || (!field.IsID && field.Index == "") { - query := newQuery(n, q.StrictEq(fieldName, value)) - query.Limit(1) - - if n.tx != nil { - err = query.query(n.tx, sink) - } else { - err = n.s.Bolt.View(func(tx *bolt.Tx) error { - return query.query(tx, sink) - }) - } - - if err != nil { - return err - } - - return sink.flush() - } - - val, err := toBytes(value, n.codec) - if err != nil { - return err - } - - return n.readTx(func(tx *bolt.Tx) error { - return n.one(tx, bucketName, fieldName, cfg, to, val, field.IsID) - }) -} - -func (n *node) one(tx *bolt.Tx, bucketName, fieldName string, cfg *structConfig, to interface{}, val []byte, skipIndex bool) error { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - return ErrNotFound - } - - var id []byte - if !skipIndex { - idx, err := getIndex(bucket, cfg.Fields[fieldName].Index, fieldName) - if err != nil { - if err == index.ErrNotFound { - return ErrNotFound - } - return err - } - - id = idx.Get(val) - } else { - id = val - } - - if id == nil { - return ErrNotFound - } - - raw := bucket.Get(id) - if raw == nil { - return ErrNotFound - } - - return n.codec.Unmarshal(raw, to) -} - -// Find returns one or more records by the specified index -func (n *node) Find(fieldName string, value interface{}, to interface{}, options ...func(q *index.Options)) error { - sink, err := newListSink(n, to) - if err != nil { - return err - } - bucketName := sink.bucketName() - if bucketName == "" { - return ErrNoName - } - - ref := reflect.Indirect(reflect.New(sink.elemType)) - cfg, err := extractSingleField(&ref, fieldName) - if err != nil { - return err - } - - opts := index.NewOptions() - for _, fn := range options { - fn(opts) - } - - field, ok := cfg.Fields[fieldName] - if !ok || (!field.IsID && (field.Index == "" || value == nil)) { - query := newQuery(n, q.Eq(fieldName, value)) - query.Skip(opts.Skip).Limit(opts.Limit) - - if opts.Reverse { - query.Reverse() - } - - err = n.readTx(func(tx *bolt.Tx) error { - return query.query(tx, sink) - }) - - if err != nil { - return err - } - - return sink.flush() - } - - val, err := toBytes(value, n.codec) - if err != nil { - return err - } - - return n.readTx(func(tx *bolt.Tx) error { - return n.find(tx, bucketName, fieldName, cfg, sink, val, opts) - }) -} - -func (n *node) find(tx *bolt.Tx, bucketName, fieldName string, cfg *structConfig, sink *listSink, val []byte, opts *index.Options) error { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - return ErrNotFound - } - idx, err := getIndex(bucket, cfg.Fields[fieldName].Index, fieldName) - if err != nil { - return err - } - - list, err := idx.All(val, opts) - if err != nil { - if err == index.ErrNotFound { - return ErrNotFound - } - return err - } - - sink.results = reflect.MakeSlice(reflect.Indirect(sink.ref).Type(), len(list), len(list)) - - sorter := newSorter(n, sink) - for i := range list { - raw := bucket.Get(list[i]) - if raw == nil { - return ErrNotFound - } - - if _, err := sorter.filter(nil, bucket, list[i], raw); err != nil { - return err - } - } - - return sorter.flush() -} - -// AllByIndex gets all the records of a bucket that are indexed in the specified index -func (n *node) AllByIndex(fieldName string, to interface{}, options ...func(*index.Options)) error { - if fieldName == "" { - return n.All(to, options...) - } - - ref := reflect.ValueOf(to) - - if ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Slice { - return ErrSlicePtrNeeded - } - - typ := reflect.Indirect(ref).Type().Elem() - - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - newElem := reflect.New(typ) - - cfg, err := extract(&newElem) - if err != nil { - return err - } - - if cfg.ID.Name == fieldName { - return n.All(to, options...) - } - - opts := index.NewOptions() - for _, fn := range options { - fn(opts) - } - - return n.readTx(func(tx *bolt.Tx) error { - return n.allByIndex(tx, fieldName, cfg, &ref, opts) - }) -} - -func (n *node) allByIndex(tx *bolt.Tx, fieldName string, cfg *structConfig, ref *reflect.Value, opts *index.Options) error { - bucket := n.GetBucket(tx, cfg.Name) - if bucket == nil { - return ErrNotFound - } - - fieldCfg, ok := cfg.Fields[fieldName] - if !ok { - return ErrNotFound - } - - idx, err := getIndex(bucket, fieldCfg.Index, fieldName) - if err != nil { - return err - } - - list, err := idx.AllRecords(opts) - if err != nil { - if err == index.ErrNotFound { - return ErrNotFound - } - return err - } - - results := reflect.MakeSlice(reflect.Indirect(*ref).Type(), len(list), len(list)) - - for i := range list { - raw := bucket.Get(list[i]) - if raw == nil { - return ErrNotFound - } - - err = n.codec.Unmarshal(raw, results.Index(i).Addr().Interface()) - if err != nil { - return err - } - } - - reflect.Indirect(*ref).Set(results) - return nil -} - -// All gets all the records of a bucket. -// If there are no records it returns no error and the 'to' parameter is set to an empty slice. -func (n *node) All(to interface{}, options ...func(*index.Options)) error { - opts := index.NewOptions() - for _, fn := range options { - fn(opts) - } - - query := newQuery(n, nil).Limit(opts.Limit).Skip(opts.Skip) - if opts.Reverse { - query.Reverse() - } - - err := query.Find(to) - if err != nil && err != ErrNotFound { - return err - } - - if err == ErrNotFound { - ref := reflect.ValueOf(to) - results := reflect.MakeSlice(reflect.Indirect(ref).Type(), 0, 0) - reflect.Indirect(ref).Set(results) - } - return nil -} - -// Range returns one or more records by the specified index within the specified range -func (n *node) Range(fieldName string, min, max, to interface{}, options ...func(*index.Options)) error { - sink, err := newListSink(n, to) - if err != nil { - return err - } - - bucketName := sink.bucketName() - if bucketName == "" { - return ErrNoName - } - - ref := reflect.Indirect(reflect.New(sink.elemType)) - cfg, err := extractSingleField(&ref, fieldName) - if err != nil { - return err - } - - opts := index.NewOptions() - for _, fn := range options { - fn(opts) - } - - field, ok := cfg.Fields[fieldName] - if !ok || (!field.IsID && field.Index == "") { - query := newQuery(n, q.And(q.Gte(fieldName, min), q.Lte(fieldName, max))) - query.Skip(opts.Skip).Limit(opts.Limit) - - if opts.Reverse { - query.Reverse() - } - - err = n.readTx(func(tx *bolt.Tx) error { - return query.query(tx, sink) - }) - - if err != nil { - return err - } - - return sink.flush() - } - - mn, err := toBytes(min, n.codec) - if err != nil { - return err - } - - mx, err := toBytes(max, n.codec) - if err != nil { - return err - } - - return n.readTx(func(tx *bolt.Tx) error { - return n.rnge(tx, bucketName, fieldName, cfg, sink, mn, mx, opts) - }) -} - -func (n *node) rnge(tx *bolt.Tx, bucketName, fieldName string, cfg *structConfig, sink *listSink, min, max []byte, opts *index.Options) error { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - reflect.Indirect(sink.ref).SetLen(0) - return nil - } - - idx, err := getIndex(bucket, cfg.Fields[fieldName].Index, fieldName) - if err != nil { - return err - } - - list, err := idx.Range(min, max, opts) - if err != nil { - return err - } - - sink.results = reflect.MakeSlice(reflect.Indirect(sink.ref).Type(), len(list), len(list)) - sorter := newSorter(n, sink) - for i := range list { - raw := bucket.Get(list[i]) - if raw == nil { - return ErrNotFound - } - - if _, err := sorter.filter(nil, bucket, list[i], raw); err != nil { - return err - } - } - - return sorter.flush() -} - -// Prefix returns one or more records whose given field starts with the specified prefix. -func (n *node) Prefix(fieldName string, prefix string, to interface{}, options ...func(*index.Options)) error { - sink, err := newListSink(n, to) - if err != nil { - return err - } - - bucketName := sink.bucketName() - if bucketName == "" { - return ErrNoName - } - - ref := reflect.Indirect(reflect.New(sink.elemType)) - cfg, err := extractSingleField(&ref, fieldName) - if err != nil { - return err - } - - opts := index.NewOptions() - for _, fn := range options { - fn(opts) - } - - field, ok := cfg.Fields[fieldName] - if !ok || (!field.IsID && field.Index == "") { - query := newQuery(n, q.Re(fieldName, fmt.Sprintf("^%s", prefix))) - query.Skip(opts.Skip).Limit(opts.Limit) - - if opts.Reverse { - query.Reverse() - } - - err = n.readTx(func(tx *bolt.Tx) error { - return query.query(tx, sink) - }) - - if err != nil { - return err - } - - return sink.flush() - } - - prfx, err := toBytes(prefix, n.codec) - if err != nil { - return err - } - - return n.readTx(func(tx *bolt.Tx) error { - return n.prefix(tx, bucketName, fieldName, cfg, sink, prfx, opts) - }) -} - -func (n *node) prefix(tx *bolt.Tx, bucketName, fieldName string, cfg *structConfig, sink *listSink, prefix []byte, opts *index.Options) error { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - reflect.Indirect(sink.ref).SetLen(0) - return nil - } - - idx, err := getIndex(bucket, cfg.Fields[fieldName].Index, fieldName) - if err != nil { - return err - } - - list, err := idx.Prefix(prefix, opts) - if err != nil { - return err - } - - sink.results = reflect.MakeSlice(reflect.Indirect(sink.ref).Type(), len(list), len(list)) - sorter := newSorter(n, sink) - for i := range list { - raw := bucket.Get(list[i]) - if raw == nil { - return ErrNotFound - } - - if _, err := sorter.filter(nil, bucket, list[i], raw); err != nil { - return err - } - } - - return sorter.flush() -} - -// Count counts all the records of a bucket -func (n *node) Count(data interface{}) (int, error) { - return n.Select().Count(data) -} diff --git a/backend/vendor/github.com/asdine/storm/v3/index/errors.go b/backend/vendor/github.com/asdine/storm/v3/index/errors.go deleted file mode 100644 index b8c66c65..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/index/errors.go +++ /dev/null @@ -1,14 +0,0 @@ -package index - -import "errors" - -var ( - // ErrNotFound is returned when the specified record is not saved in the bucket. - ErrNotFound = errors.New("not found") - - // ErrAlreadyExists is returned uses when trying to set an existing value on a field that has a unique index. - ErrAlreadyExists = errors.New("already exists") - - // ErrNilParam is returned when the specified param is expected to be not nil. - ErrNilParam = errors.New("param must not be nil") -) diff --git a/backend/vendor/github.com/asdine/storm/v3/index/indexes.go b/backend/vendor/github.com/asdine/storm/v3/index/indexes.go deleted file mode 100644 index 1af5cf85..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/index/indexes.go +++ /dev/null @@ -1,14 +0,0 @@ -// Package index contains Index engines used to store values and their corresponding IDs -package index - -// Index interface -type Index interface { - Add(value []byte, targetID []byte) error - Remove(value []byte) error - RemoveID(id []byte) error - Get(value []byte) []byte - All(value []byte, opts *Options) ([][]byte, error) - AllRecords(opts *Options) ([][]byte, error) - Range(min []byte, max []byte, opts *Options) ([][]byte, error) - Prefix(prefix []byte, opts *Options) ([][]byte, error) -} diff --git a/backend/vendor/github.com/asdine/storm/v3/index/list.go b/backend/vendor/github.com/asdine/storm/v3/index/list.go deleted file mode 100644 index 27ce410b..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/index/list.go +++ /dev/null @@ -1,283 +0,0 @@ -package index - -import ( - "bytes" - - "github.com/asdine/storm/v3/internal" - bolt "go.etcd.io/bbolt" -) - -// NewListIndex loads a ListIndex -func NewListIndex(parent *bolt.Bucket, indexName []byte) (*ListIndex, error) { - var err error - b := parent.Bucket(indexName) - if b == nil { - if !parent.Writable() { - return nil, ErrNotFound - } - b, err = parent.CreateBucket(indexName) - if err != nil { - return nil, err - } - } - - ids, err := NewUniqueIndex(b, []byte("storm__ids")) - if err != nil { - return nil, err - } - - return &ListIndex{ - IndexBucket: b, - Parent: parent, - IDs: ids, - }, nil -} - -// ListIndex is an index that references values and the corresponding IDs. -type ListIndex struct { - Parent *bolt.Bucket - IndexBucket *bolt.Bucket - IDs *UniqueIndex -} - -// Add a value to the list index -func (idx *ListIndex) Add(newValue []byte, targetID []byte) error { - if newValue == nil || len(newValue) == 0 { - return ErrNilParam - } - if targetID == nil || len(targetID) == 0 { - return ErrNilParam - } - - key := idx.IDs.Get(targetID) - if key != nil { - err := idx.IndexBucket.Delete(key) - if err != nil { - return err - } - - err = idx.IDs.Remove(targetID) - if err != nil { - return err - } - - key = key[:0] - } - - key = append(key, newValue...) - key = append(key, '_') - key = append(key, '_') - key = append(key, targetID...) - - err := idx.IDs.Add(targetID, key) - if err != nil { - return err - } - - return idx.IndexBucket.Put(key, targetID) -} - -// Remove a value from the unique index -func (idx *ListIndex) Remove(value []byte) error { - var err error - var keys [][]byte - - c := idx.IndexBucket.Cursor() - prefix := generatePrefix(value) - - for k, _ := c.Seek(prefix); bytes.HasPrefix(k, prefix); k, _ = c.Next() { - keys = append(keys, k) - } - - for _, k := range keys { - err = idx.IndexBucket.Delete(k) - if err != nil { - return err - } - } - - return idx.IDs.RemoveID(value) -} - -// RemoveID removes an ID from the list index -func (idx *ListIndex) RemoveID(targetID []byte) error { - value := idx.IDs.Get(targetID) - if value == nil { - return nil - } - - err := idx.IndexBucket.Delete(value) - if err != nil { - return err - } - - return idx.IDs.Remove(targetID) -} - -// Get the first ID corresponding to the given value -func (idx *ListIndex) Get(value []byte) []byte { - c := idx.IndexBucket.Cursor() - prefix := generatePrefix(value) - - for k, id := c.Seek(prefix); bytes.HasPrefix(k, prefix); k, id = c.Next() { - return id - } - - return nil -} - -// All the IDs corresponding to the given value -func (idx *ListIndex) All(value []byte, opts *Options) ([][]byte, error) { - var list [][]byte - c := idx.IndexBucket.Cursor() - cur := internal.Cursor{C: c, Reverse: opts != nil && opts.Reverse} - - prefix := generatePrefix(value) - - k, id := c.Seek(prefix) - if cur.Reverse { - var count int - kc := k - idc := id - for ; kc != nil && bytes.HasPrefix(kc, prefix); kc, idc = c.Next() { - count++ - k, id = kc, idc - } - if kc != nil { - k, id = c.Prev() - } - list = make([][]byte, 0, count) - } - - for ; bytes.HasPrefix(k, prefix); k, id = cur.Next() { - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, id) - } - - return list, nil -} - -// AllRecords returns all the IDs of this index -func (idx *ListIndex) AllRecords(opts *Options) ([][]byte, error) { - var list [][]byte - - c := internal.Cursor{C: idx.IndexBucket.Cursor(), Reverse: opts != nil && opts.Reverse} - - for k, id := c.First(); k != nil; k, id = c.Next() { - if id == nil || bytes.Equal(k, []byte("storm__ids")) { - continue - } - - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, id) - } - - return list, nil -} - -// Range returns the ids corresponding to the given range of values -func (idx *ListIndex) Range(min []byte, max []byte, opts *Options) ([][]byte, error) { - var list [][]byte - - c := internal.RangeCursor{ - C: idx.IndexBucket.Cursor(), - Reverse: opts != nil && opts.Reverse, - Min: min, - Max: max, - CompareFn: func(val, limit []byte) int { - pos := bytes.LastIndex(val, []byte("__")) - return bytes.Compare(val[:pos], limit) - }, - } - - for k, id := c.First(); c.Continue(k); k, id = c.Next() { - if id == nil || bytes.Equal(k, []byte("storm__ids")) { - continue - } - - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, id) - } - - return list, nil -} - -// Prefix returns the ids whose values have the given prefix. -func (idx *ListIndex) Prefix(prefix []byte, opts *Options) ([][]byte, error) { - var list [][]byte - - c := internal.PrefixCursor{ - C: idx.IndexBucket.Cursor(), - Reverse: opts != nil && opts.Reverse, - Prefix: prefix, - } - - for k, id := c.First(); k != nil && c.Continue(k); k, id = c.Next() { - if id == nil || bytes.Equal(k, []byte("storm__ids")) { - continue - } - - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, id) - } - return list, nil -} - -func generatePrefix(value []byte) []byte { - prefix := make([]byte, len(value)+2) - var i int - for i = range value { - prefix[i] = value[i] - } - prefix[i+1] = '_' - prefix[i+2] = '_' - return prefix -} diff --git a/backend/vendor/github.com/asdine/storm/v3/index/options.go b/backend/vendor/github.com/asdine/storm/v3/index/options.go deleted file mode 100644 index 6c4ae7b5..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/index/options.go +++ /dev/null @@ -1,15 +0,0 @@ -package index - -// NewOptions creates initialized Options -func NewOptions() *Options { - return &Options{ - Limit: -1, - } -} - -// Options are used to customize queries -type Options struct { - Limit int - Skip int - Reverse bool -} diff --git a/backend/vendor/github.com/asdine/storm/v3/index/unique.go b/backend/vendor/github.com/asdine/storm/v3/index/unique.go deleted file mode 100644 index ec5989d4..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/index/unique.go +++ /dev/null @@ -1,183 +0,0 @@ -package index - -import ( - "bytes" - - "github.com/asdine/storm/v3/internal" - bolt "go.etcd.io/bbolt" -) - -// NewUniqueIndex loads a UniqueIndex -func NewUniqueIndex(parent *bolt.Bucket, indexName []byte) (*UniqueIndex, error) { - var err error - b := parent.Bucket(indexName) - if b == nil { - if !parent.Writable() { - return nil, ErrNotFound - } - b, err = parent.CreateBucket(indexName) - if err != nil { - return nil, err - } - } - - return &UniqueIndex{ - IndexBucket: b, - Parent: parent, - }, nil -} - -// UniqueIndex is an index that references unique values and the corresponding ID. -type UniqueIndex struct { - Parent *bolt.Bucket - IndexBucket *bolt.Bucket -} - -// Add a value to the unique index -func (idx *UniqueIndex) Add(value []byte, targetID []byte) error { - if value == nil || len(value) == 0 { - return ErrNilParam - } - if targetID == nil || len(targetID) == 0 { - return ErrNilParam - } - - exists := idx.IndexBucket.Get(value) - if exists != nil { - if bytes.Equal(exists, targetID) { - return nil - } - return ErrAlreadyExists - } - - return idx.IndexBucket.Put(value, targetID) -} - -// Remove a value from the unique index -func (idx *UniqueIndex) Remove(value []byte) error { - return idx.IndexBucket.Delete(value) -} - -// RemoveID removes an ID from the unique index -func (idx *UniqueIndex) RemoveID(id []byte) error { - c := idx.IndexBucket.Cursor() - - for val, ident := c.First(); val != nil; val, ident = c.Next() { - if bytes.Equal(ident, id) { - return idx.Remove(val) - } - } - return nil -} - -// Get the id corresponding to the given value -func (idx *UniqueIndex) Get(value []byte) []byte { - return idx.IndexBucket.Get(value) -} - -// All returns all the ids corresponding to the given value -func (idx *UniqueIndex) All(value []byte, opts *Options) ([][]byte, error) { - id := idx.IndexBucket.Get(value) - if id != nil { - return [][]byte{id}, nil - } - - return nil, nil -} - -// AllRecords returns all the IDs of this index -func (idx *UniqueIndex) AllRecords(opts *Options) ([][]byte, error) { - var list [][]byte - - c := internal.Cursor{C: idx.IndexBucket.Cursor(), Reverse: opts != nil && opts.Reverse} - - for val, ident := c.First(); val != nil; val, ident = c.Next() { - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, ident) - } - return list, nil -} - -// Range returns the ids corresponding to the given range of values -func (idx *UniqueIndex) Range(min []byte, max []byte, opts *Options) ([][]byte, error) { - var list [][]byte - - c := internal.RangeCursor{ - C: idx.IndexBucket.Cursor(), - Reverse: opts != nil && opts.Reverse, - Min: min, - Max: max, - CompareFn: func(val, limit []byte) int { - return bytes.Compare(val, limit) - }, - } - - for val, ident := c.First(); val != nil && c.Continue(val); val, ident = c.Next() { - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, ident) - } - return list, nil -} - -// Prefix returns the ids whose values have the given prefix. -func (idx *UniqueIndex) Prefix(prefix []byte, opts *Options) ([][]byte, error) { - var list [][]byte - - c := internal.PrefixCursor{ - C: idx.IndexBucket.Cursor(), - Reverse: opts != nil && opts.Reverse, - Prefix: prefix, - } - - for val, ident := c.First(); val != nil && c.Continue(val); val, ident = c.Next() { - if opts != nil && opts.Skip > 0 { - opts.Skip-- - continue - } - - if opts != nil && opts.Limit == 0 { - break - } - - if opts != nil && opts.Limit > 0 { - opts.Limit-- - } - - list = append(list, ident) - } - return list, nil -} - -// first returns the first ID of this index -func (idx *UniqueIndex) first() []byte { - c := idx.IndexBucket.Cursor() - - for val, ident := c.First(); val != nil; val, ident = c.Next() { - return ident - } - return nil -} diff --git a/backend/vendor/github.com/asdine/storm/v3/internal/boltdb.go b/backend/vendor/github.com/asdine/storm/v3/internal/boltdb.go deleted file mode 100644 index abc14ab0..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/internal/boltdb.go +++ /dev/null @@ -1,121 +0,0 @@ -package internal - -import ( - "bytes" - - bolt "go.etcd.io/bbolt" -) - -// Cursor that can be reversed -type Cursor struct { - C *bolt.Cursor - Reverse bool -} - -// First element -func (c *Cursor) First() ([]byte, []byte) { - if c.Reverse { - return c.C.Last() - } - - return c.C.First() -} - -// Next element -func (c *Cursor) Next() ([]byte, []byte) { - if c.Reverse { - return c.C.Prev() - } - - return c.C.Next() -} - -// RangeCursor that can be reversed -type RangeCursor struct { - C *bolt.Cursor - Reverse bool - Min []byte - Max []byte - CompareFn func([]byte, []byte) int -} - -// First element -func (c *RangeCursor) First() ([]byte, []byte) { - if c.Reverse { - k, v := c.C.Seek(c.Max) - - // If Seek doesn't find a key it goes to the next. - // If so, we need to get the previous one to avoid - // including bigger values. #218 - if !bytes.HasPrefix(k, c.Max) && k != nil { - k, v = c.C.Prev() - } - - return k, v - } - - return c.C.Seek(c.Min) -} - -// Next element -func (c *RangeCursor) Next() ([]byte, []byte) { - if c.Reverse { - return c.C.Prev() - } - - return c.C.Next() -} - -// Continue tells if the loop needs to continue -func (c *RangeCursor) Continue(val []byte) bool { - if c.Reverse { - return val != nil && c.CompareFn(val, c.Min) >= 0 - } - - return val != nil && c.CompareFn(val, c.Max) <= 0 -} - -// PrefixCursor that can be reversed -type PrefixCursor struct { - C *bolt.Cursor - Reverse bool - Prefix []byte -} - -// First element -func (c *PrefixCursor) First() ([]byte, []byte) { - var k, v []byte - - for k, v = c.C.First(); k != nil && !bytes.HasPrefix(k, c.Prefix); k, v = c.C.Next() { - } - - if k == nil { - return nil, nil - } - - if c.Reverse { - kc, vc := k, v - for ; kc != nil && bytes.HasPrefix(kc, c.Prefix); kc, vc = c.C.Next() { - k, v = kc, vc - } - if kc != nil { - k, v = c.C.Prev() - } - } - - return k, v -} - -// Next element -func (c *PrefixCursor) Next() ([]byte, []byte) { - if c.Reverse { - return c.C.Prev() - } - - return c.C.Next() -} - -// Continue tells if the loop needs to continue -func (c *PrefixCursor) Continue(val []byte) bool { - return val != nil && bytes.HasPrefix(val, c.Prefix) -} diff --git a/backend/vendor/github.com/asdine/storm/v3/kv.go b/backend/vendor/github.com/asdine/storm/v3/kv.go deleted file mode 100644 index 7e2fb0aa..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/kv.go +++ /dev/null @@ -1,170 +0,0 @@ -package storm - -import ( - "reflect" - - bolt "go.etcd.io/bbolt" -) - -// KeyValueStore can store and fetch values by key -type KeyValueStore interface { - // Get a value from a bucket - Get(bucketName string, key interface{}, to interface{}) error - // Set a key/value pair into a bucket - Set(bucketName string, key interface{}, value interface{}) error - // Delete deletes a key from a bucket - Delete(bucketName string, key interface{}) error - // GetBytes gets a raw value from a bucket. - GetBytes(bucketName string, key interface{}) ([]byte, error) - // SetBytes sets a raw value into a bucket. - SetBytes(bucketName string, key interface{}, value []byte) error - // KeyExists reports the presence of a key in a bucket. - KeyExists(bucketName string, key interface{}) (bool, error) -} - -// GetBytes gets a raw value from a bucket. -func (n *node) GetBytes(bucketName string, key interface{}) ([]byte, error) { - id, err := toBytes(key, n.codec) - if err != nil { - return nil, err - } - - var val []byte - return val, n.readTx(func(tx *bolt.Tx) error { - raw, err := n.getBytes(tx, bucketName, id) - if err != nil { - return err - } - - val = make([]byte, len(raw)) - copy(val, raw) - return nil - }) -} - -// GetBytes gets a raw value from a bucket. -func (n *node) getBytes(tx *bolt.Tx, bucketName string, id []byte) ([]byte, error) { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - return nil, ErrNotFound - } - - raw := bucket.Get(id) - if raw == nil { - return nil, ErrNotFound - } - - return raw, nil -} - -// SetBytes sets a raw value into a bucket. -func (n *node) SetBytes(bucketName string, key interface{}, value []byte) error { - if key == nil { - return ErrNilParam - } - - id, err := toBytes(key, n.codec) - if err != nil { - return err - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.setBytes(tx, bucketName, id, value) - }) -} - -func (n *node) setBytes(tx *bolt.Tx, bucketName string, id, data []byte) error { - bucket, err := n.CreateBucketIfNotExists(tx, bucketName) - if err != nil { - return err - } - - // save node configuration in the bucket - _, err = newMeta(bucket, n) - if err != nil { - return err - } - - return bucket.Put(id, data) -} - -// Get a value from a bucket -func (n *node) Get(bucketName string, key interface{}, to interface{}) error { - ref := reflect.ValueOf(to) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr { - return ErrPtrNeeded - } - - id, err := toBytes(key, n.codec) - if err != nil { - return err - } - - return n.readTx(func(tx *bolt.Tx) error { - raw, err := n.getBytes(tx, bucketName, id) - if err != nil { - return err - } - - return n.codec.Unmarshal(raw, to) - }) -} - -// Set a key/value pair into a bucket -func (n *node) Set(bucketName string, key interface{}, value interface{}) error { - var data []byte - var err error - if value != nil { - data, err = n.codec.Marshal(value) - if err != nil { - return err - } - } - - return n.SetBytes(bucketName, key, data) -} - -// Delete deletes a key from a bucket -func (n *node) Delete(bucketName string, key interface{}) error { - id, err := toBytes(key, n.codec) - if err != nil { - return err - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.delete(tx, bucketName, id) - }) -} - -func (n *node) delete(tx *bolt.Tx, bucketName string, id []byte) error { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - return ErrNotFound - } - - return bucket.Delete(id) -} - -// KeyExists reports the presence of a key in a bucket. -func (n *node) KeyExists(bucketName string, key interface{}) (bool, error) { - id, err := toBytes(key, n.codec) - if err != nil { - return false, err - } - - var exists bool - return exists, n.readTx(func(tx *bolt.Tx) error { - bucket := n.GetBucket(tx, bucketName) - if bucket == nil { - return ErrNotFound - } - - v := bucket.Get(id) - if v != nil { - exists = true - } - - return nil - }) -} diff --git a/backend/vendor/github.com/asdine/storm/v3/metadata.go b/backend/vendor/github.com/asdine/storm/v3/metadata.go deleted file mode 100644 index 21f3bbae..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/metadata.go +++ /dev/null @@ -1,69 +0,0 @@ -package storm - -import ( - "reflect" - - bolt "go.etcd.io/bbolt" -) - -const ( - metaCodec = "codec" -) - -func newMeta(b *bolt.Bucket, n Node) (*meta, error) { - m := b.Bucket([]byte(metadataBucket)) - if m != nil { - name := m.Get([]byte(metaCodec)) - if string(name) != n.Codec().Name() { - return nil, ErrDifferentCodec - } - return &meta{ - node: n, - bucket: m, - }, nil - } - - m, err := b.CreateBucket([]byte(metadataBucket)) - if err != nil { - return nil, err - } - - m.Put([]byte(metaCodec), []byte(n.Codec().Name())) - return &meta{ - node: n, - bucket: m, - }, nil -} - -type meta struct { - node Node - bucket *bolt.Bucket -} - -func (m *meta) increment(field *fieldConfig) error { - var err error - counter := field.IncrementStart - - raw := m.bucket.Get([]byte(field.Name + "counter")) - if raw != nil { - counter, err = numberfromb(raw) - if err != nil { - return err - } - counter++ - } - - raw, err = numbertob(counter) - if err != nil { - return err - } - - err = m.bucket.Put([]byte(field.Name+"counter"), raw) - if err != nil { - return err - } - - field.Value.Set(reflect.ValueOf(counter).Convert(field.Value.Type())) - field.IsZero = false - return nil -} diff --git a/backend/vendor/github.com/asdine/storm/v3/node.go b/backend/vendor/github.com/asdine/storm/v3/node.go deleted file mode 100644 index 75fbb882..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/node.go +++ /dev/null @@ -1,126 +0,0 @@ -package storm - -import ( - "github.com/asdine/storm/v3/codec" - bolt "go.etcd.io/bbolt" -) - -// A Node in Storm represents the API to a BoltDB bucket. -type Node interface { - Tx - TypeStore - KeyValueStore - BucketScanner - - // From returns a new Storm node with a new bucket root below the current. - // All DB operations on the new node will be executed relative to this bucket. - From(addend ...string) Node - - // Bucket returns the bucket name as a slice from the root. - // In the normal, simple case this will be empty. - Bucket() []string - - // GetBucket returns the given bucket below the current node. - GetBucket(tx *bolt.Tx, children ...string) *bolt.Bucket - - // CreateBucketIfNotExists creates the bucket below the current node if it doesn't - // already exist. - CreateBucketIfNotExists(tx *bolt.Tx, bucket string) (*bolt.Bucket, error) - - // WithTransaction returns a New Storm node that will use the given transaction. - WithTransaction(tx *bolt.Tx) Node - - // Begin starts a new transaction. - Begin(writable bool) (Node, error) - - // Codec used by this instance of Storm - Codec() codec.MarshalUnmarshaler - - // WithCodec returns a New Storm Node that will use the given Codec. - WithCodec(codec codec.MarshalUnmarshaler) Node - - // WithBatch returns a new Storm Node with the batch mode enabled. - WithBatch(enabled bool) Node -} - -// A Node in Storm represents the API to a BoltDB bucket. -type node struct { - s *DB - - // The root bucket. In the normal, simple case this will be empty. - rootBucket []string - - // Transaction object. Nil if not in transaction - tx *bolt.Tx - - // Codec of this node - codec codec.MarshalUnmarshaler - - // Enable batch mode for read-write transaction, instead of update mode - batchMode bool -} - -// From returns a new Storm Node with a new bucket root below the current. -// All DB operations on the new node will be executed relative to this bucket. -func (n node) From(addend ...string) Node { - n.rootBucket = append(n.rootBucket, addend...) - return &n -} - -// WithTransaction returns a new Storm Node that will use the given transaction. -func (n node) WithTransaction(tx *bolt.Tx) Node { - n.tx = tx - return &n -} - -// WithCodec returns a new Storm Node that will use the given Codec. -func (n node) WithCodec(codec codec.MarshalUnmarshaler) Node { - n.codec = codec - return &n -} - -// WithBatch returns a new Storm Node with the batch mode enabled. -func (n node) WithBatch(enabled bool) Node { - n.batchMode = enabled - return &n -} - -// Bucket returns the bucket name as a slice from the root. -// In the normal, simple case this will be empty. -func (n *node) Bucket() []string { - return n.rootBucket -} - -// Codec returns the EncodeDecoder used by this instance of Storm -func (n *node) Codec() codec.MarshalUnmarshaler { - return n.codec -} - -// Detects if already in transaction or runs a read write transaction. -// Uses batch mode if enabled. -func (n *node) readWriteTx(fn func(tx *bolt.Tx) error) error { - if n.tx != nil { - return fn(n.tx) - } - - if n.batchMode { - return n.s.Bolt.Batch(func(tx *bolt.Tx) error { - return fn(tx) - }) - } - - return n.s.Bolt.Update(func(tx *bolt.Tx) error { - return fn(tx) - }) -} - -// Detects if already in transaction or runs a read transaction. -func (n *node) readTx(fn func(tx *bolt.Tx) error) error { - if n.tx != nil { - return fn(n.tx) - } - - return n.s.Bolt.View(func(tx *bolt.Tx) error { - return fn(tx) - }) -} diff --git a/backend/vendor/github.com/asdine/storm/v3/options.go b/backend/vendor/github.com/asdine/storm/v3/options.go deleted file mode 100644 index ff899849..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/options.go +++ /dev/null @@ -1,97 +0,0 @@ -package storm - -import ( - "os" - - "github.com/asdine/storm/v3/codec" - "github.com/asdine/storm/v3/index" - bolt "go.etcd.io/bbolt" -) - -// BoltOptions used to pass options to BoltDB. -func BoltOptions(mode os.FileMode, options *bolt.Options) func(*Options) error { - return func(opts *Options) error { - opts.boltMode = mode - opts.boltOptions = options - return nil - } -} - -// Codec used to set a custom encoder and decoder. The default is JSON. -func Codec(c codec.MarshalUnmarshaler) func(*Options) error { - return func(opts *Options) error { - opts.codec = c - return nil - } -} - -// Batch enables the use of batch instead of update for read-write transactions. -func Batch() func(*Options) error { - return func(opts *Options) error { - opts.batchMode = true - return nil - } -} - -// Root used to set the root bucket. See also the From method. -func Root(root ...string) func(*Options) error { - return func(opts *Options) error { - opts.rootBucket = root - return nil - } -} - -// UseDB allows Storm to use an existing open Bolt.DB. -// Warning: storm.DB.Close() will close the bolt.DB instance. -func UseDB(b *bolt.DB) func(*Options) error { - return func(opts *Options) error { - opts.path = b.Path() - opts.bolt = b - return nil - } -} - -// Limit sets the maximum number of records to return -func Limit(limit int) func(*index.Options) { - return func(opts *index.Options) { - opts.Limit = limit - } -} - -// Skip sets the number of records to skip -func Skip(offset int) func(*index.Options) { - return func(opts *index.Options) { - opts.Skip = offset - } -} - -// Reverse will return the results in descending order -func Reverse() func(*index.Options) { - return func(opts *index.Options) { - opts.Reverse = true - } -} - -// Options are used to customize the way Storm opens a database. -type Options struct { - // Handles encoding and decoding of objects - codec codec.MarshalUnmarshaler - - // Bolt file mode - boltMode os.FileMode - - // Bolt options - boltOptions *bolt.Options - - // Enable batch mode for read-write transaction, instead of update mode - batchMode bool - - // The root bucket name - rootBucket []string - - // Path of the database file - path string - - // Bolt is still easily accessible - bolt *bolt.DB -} diff --git a/backend/vendor/github.com/asdine/storm/v3/q/compare.go b/backend/vendor/github.com/asdine/storm/v3/q/compare.go deleted file mode 100644 index acd14c7e..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/q/compare.go +++ /dev/null @@ -1,122 +0,0 @@ -package q - -import ( - "go/constant" - "go/token" - "reflect" - "strconv" -) - -func compare(a, b interface{}, tok token.Token) bool { - vala := reflect.ValueOf(a) - valb := reflect.ValueOf(b) - - ak := vala.Kind() - bk := valb.Kind() - switch { - // comparing nil values - case (ak == reflect.Ptr || ak == reflect.Slice || ak == reflect.Interface || ak == reflect.Invalid) && - (bk == reflect.Ptr || ak == reflect.Slice || bk == reflect.Interface || bk == reflect.Invalid) && - (!vala.IsValid() || vala.IsNil()) && (!valb.IsValid() || valb.IsNil()): - return true - case ak >= reflect.Int && ak <= reflect.Int64: - if bk >= reflect.Int && bk <= reflect.Int64 { - return constant.Compare(constant.MakeInt64(vala.Int()), tok, constant.MakeInt64(valb.Int())) - } - - if bk >= reflect.Uint && bk <= reflect.Uint64 { - return constant.Compare(constant.MakeInt64(vala.Int()), tok, constant.MakeInt64(int64(valb.Uint()))) - } - - if bk == reflect.Float32 || bk == reflect.Float64 { - return constant.Compare(constant.MakeFloat64(float64(vala.Int())), tok, constant.MakeFloat64(valb.Float())) - } - - if bk == reflect.String { - bla, err := strconv.ParseFloat(valb.String(), 64) - if err != nil { - return false - } - - return constant.Compare(constant.MakeFloat64(float64(vala.Int())), tok, constant.MakeFloat64(bla)) - } - case ak >= reflect.Uint && ak <= reflect.Uint64: - if bk >= reflect.Uint && bk <= reflect.Uint64 { - return constant.Compare(constant.MakeUint64(vala.Uint()), tok, constant.MakeUint64(valb.Uint())) - } - - if bk >= reflect.Int && bk <= reflect.Int64 { - return constant.Compare(constant.MakeUint64(vala.Uint()), tok, constant.MakeUint64(uint64(valb.Int()))) - } - - if bk == reflect.Float32 || bk == reflect.Float64 { - return constant.Compare(constant.MakeFloat64(float64(vala.Uint())), tok, constant.MakeFloat64(valb.Float())) - } - - if bk == reflect.String { - bla, err := strconv.ParseFloat(valb.String(), 64) - if err != nil { - return false - } - - return constant.Compare(constant.MakeFloat64(float64(vala.Uint())), tok, constant.MakeFloat64(bla)) - } - case ak == reflect.Float32 || ak == reflect.Float64: - if bk == reflect.Float32 || bk == reflect.Float64 { - return constant.Compare(constant.MakeFloat64(vala.Float()), tok, constant.MakeFloat64(valb.Float())) - } - - if bk >= reflect.Int && bk <= reflect.Int64 { - return constant.Compare(constant.MakeFloat64(vala.Float()), tok, constant.MakeFloat64(float64(valb.Int()))) - } - - if bk >= reflect.Uint && bk <= reflect.Uint64 { - return constant.Compare(constant.MakeFloat64(vala.Float()), tok, constant.MakeFloat64(float64(valb.Uint()))) - } - - if bk == reflect.String { - bla, err := strconv.ParseFloat(valb.String(), 64) - if err != nil { - return false - } - - return constant.Compare(constant.MakeFloat64(vala.Float()), tok, constant.MakeFloat64(bla)) - } - case ak == reflect.String: - if bk == reflect.String { - return constant.Compare(constant.MakeString(vala.String()), tok, constant.MakeString(valb.String())) - } - } - - typea, typeb := reflect.TypeOf(a), reflect.TypeOf(b) - - if typea != nil && (typea.String() == "time.Time" || typea.String() == "*time.Time") && - typeb != nil && (typeb.String() == "time.Time" || typeb.String() == "*time.Time") { - - if typea.String() == "*time.Time" && vala.IsNil() { - return true - } - - if typeb.String() == "*time.Time" { - if valb.IsNil() { - return true - } - valb = valb.Elem() - } - - var x, y int64 - x = 1 - if vala.MethodByName("Equal").Call([]reflect.Value{valb})[0].Bool() { - y = 1 - } else if vala.MethodByName("Before").Call([]reflect.Value{valb})[0].Bool() { - y = 2 - } - return constant.Compare(constant.MakeInt64(x), tok, constant.MakeInt64(y)) - } - - if tok == token.EQL { - return reflect.DeepEqual(a, b) - } - - return false -} diff --git a/backend/vendor/github.com/asdine/storm/v3/q/fieldmatcher.go b/backend/vendor/github.com/asdine/storm/v3/q/fieldmatcher.go deleted file mode 100644 index c5c82bf0..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/q/fieldmatcher.go +++ /dev/null @@ -1,67 +0,0 @@ -package q - -import ( - "errors" - "go/token" - "reflect" -) - -// ErrUnknownField is returned when an unknown field is passed. -var ErrUnknownField = errors.New("unknown field") - -type fieldMatcherDelegate struct { - FieldMatcher - Field string -} - -// NewFieldMatcher creates a Matcher for a given field. -func NewFieldMatcher(field string, fm FieldMatcher) Matcher { - return fieldMatcherDelegate{Field: field, FieldMatcher: fm} -} - -// FieldMatcher can be used in NewFieldMatcher as a simple way to create the -// most common Matcher: A Matcher that evaluates one field's value. -// For more complex scenarios, implement the Matcher interface directly. -type FieldMatcher interface { - MatchField(v interface{}) (bool, error) -} - -func (r fieldMatcherDelegate) Match(i interface{}) (bool, error) { - v := reflect.Indirect(reflect.ValueOf(i)) - return r.MatchValue(&v) -} - -func (r fieldMatcherDelegate) MatchValue(v *reflect.Value) (bool, error) { - field := v.FieldByName(r.Field) - if !field.IsValid() { - return false, ErrUnknownField - } - return r.MatchField(field.Interface()) -} - -// NewField2FieldMatcher creates a Matcher for a given field1 and field2. -func NewField2FieldMatcher(field1, field2 string, tok token.Token) Matcher { - return field2fieldMatcherDelegate{Field1: field1, Field2: field2, Tok: tok} -} - -type field2fieldMatcherDelegate struct { - Field1, Field2 string - Tok token.Token -} - -func (r field2fieldMatcherDelegate) Match(i interface{}) (bool, error) { - v := reflect.Indirect(reflect.ValueOf(i)) - return r.MatchValue(&v) -} - -func (r field2fieldMatcherDelegate) MatchValue(v *reflect.Value) (bool, error) { - field1 := v.FieldByName(r.Field1) - if !field1.IsValid() { - return false, ErrUnknownField - } - field2 := v.FieldByName(r.Field2) - if !field2.IsValid() { - return false, ErrUnknownField - } - return compare(field1.Interface(), field2.Interface(), r.Tok), nil -} diff --git a/backend/vendor/github.com/asdine/storm/v3/q/regexp.go b/backend/vendor/github.com/asdine/storm/v3/q/regexp.go deleted file mode 100644 index 8d382b17..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/q/regexp.go +++ /dev/null @@ -1,51 +0,0 @@ -package q - -import ( - "fmt" - "regexp" - "sync" -) - -// Re creates a regexp matcher. It checks if the given field matches the given regexp. -// Note that this only supports fields of type string or []byte. -func Re(field string, re string) Matcher { - regexpCache.RLock() - if r, ok := regexpCache.m[re]; ok { - regexpCache.RUnlock() - return NewFieldMatcher(field, ®expMatcher{r: r}) - } - regexpCache.RUnlock() - - regexpCache.Lock() - r, err := regexp.Compile(re) - if err == nil { - regexpCache.m[re] = r - } - regexpCache.Unlock() - - return NewFieldMatcher(field, ®expMatcher{r: r, err: err}) -} - -var regexpCache = struct { - sync.RWMutex - m map[string]*regexp.Regexp -}{m: make(map[string]*regexp.Regexp)} - -type regexpMatcher struct { - r *regexp.Regexp - err error -} - -func (r *regexpMatcher) MatchField(v interface{}) (bool, error) { - if r.err != nil { - return false, r.err - } - switch fieldValue := v.(type) { - case string: - return r.r.MatchString(fieldValue), nil - case []byte: - return r.r.Match(fieldValue), nil - default: - return false, fmt.Errorf("Only string and []byte supported for regexp matcher, got %T", fieldValue) - } -} diff --git a/backend/vendor/github.com/asdine/storm/v3/q/tree.go b/backend/vendor/github.com/asdine/storm/v3/q/tree.go deleted file mode 100644 index c3cbe0f4..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/q/tree.go +++ /dev/null @@ -1,247 +0,0 @@ -// Package q contains a list of Matchers used to compare struct fields with values -package q - -import ( - "go/token" - "reflect" -) - -// A Matcher is used to test against a record to see if it matches. -type Matcher interface { - // Match is used to test the criteria against a structure. - Match(interface{}) (bool, error) -} - -// A ValueMatcher is used to test against a reflect.Value. -type ValueMatcher interface { - // MatchValue tests if the given reflect.Value matches. - // It is useful when the reflect.Value of an object already exists. - MatchValue(*reflect.Value) (bool, error) -} - -type cmp struct { - value interface{} - token token.Token -} - -func (c *cmp) MatchField(v interface{}) (bool, error) { - return compare(v, c.value, c.token), nil -} - -type trueMatcher struct{} - -func (*trueMatcher) Match(i interface{}) (bool, error) { - return true, nil -} - -func (*trueMatcher) MatchValue(v *reflect.Value) (bool, error) { - return true, nil -} - -type or struct { - children []Matcher -} - -func (c *or) Match(i interface{}) (bool, error) { - v := reflect.Indirect(reflect.ValueOf(i)) - return c.MatchValue(&v) -} - -func (c *or) MatchValue(v *reflect.Value) (bool, error) { - for _, matcher := range c.children { - if vm, ok := matcher.(ValueMatcher); ok { - ok, err := vm.MatchValue(v) - if err != nil { - return false, err - } - if ok { - return true, nil - } - continue - } - - ok, err := matcher.Match(v.Interface()) - if err != nil { - return false, err - } - if ok { - return true, nil - } - } - - return false, nil -} - -type and struct { - children []Matcher -} - -func (c *and) Match(i interface{}) (bool, error) { - v := reflect.Indirect(reflect.ValueOf(i)) - return c.MatchValue(&v) -} - -func (c *and) MatchValue(v *reflect.Value) (bool, error) { - for _, matcher := range c.children { - if vm, ok := matcher.(ValueMatcher); ok { - ok, err := vm.MatchValue(v) - if err != nil { - return false, err - } - if !ok { - return false, nil - } - continue - } - - ok, err := matcher.Match(v.Interface()) - if err != nil { - return false, err - } - if !ok { - return false, nil - } - } - - return true, nil -} - -type strictEq struct { - field string - value interface{} -} - -func (s *strictEq) MatchField(v interface{}) (bool, error) { - return reflect.DeepEqual(v, s.value), nil -} - -type in struct { - list interface{} -} - -func (i *in) MatchField(v interface{}) (bool, error) { - ref := reflect.ValueOf(i.list) - if ref.Kind() != reflect.Slice { - return false, nil - } - - c := cmp{ - token: token.EQL, - } - - for i := 0; i < ref.Len(); i++ { - c.value = ref.Index(i).Interface() - ok, err := c.MatchField(v) - if err != nil { - return false, err - } - if ok { - return true, nil - } - } - - return false, nil -} - -type not struct { - children []Matcher -} - -func (n *not) Match(i interface{}) (bool, error) { - v := reflect.Indirect(reflect.ValueOf(i)) - return n.MatchValue(&v) -} - -func (n *not) MatchValue(v *reflect.Value) (bool, error) { - var err error - - for _, matcher := range n.children { - vm, ok := matcher.(ValueMatcher) - if ok { - ok, err = vm.MatchValue(v) - } else { - ok, err = matcher.Match(v.Interface()) - } - if err != nil { - return false, err - } - if ok { - return false, nil - } - } - - return true, nil -} - -// Eq matcher, checks if the given field is equal to the given value -func Eq(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &cmp{value: v, token: token.EQL}) -} - -// EqF matcher, checks if the given field is equal to the given field -func EqF(field1, field2 string) Matcher { - return NewField2FieldMatcher(field1, field2, token.EQL) -} - -// StrictEq matcher, checks if the given field is deeply equal to the given value -func StrictEq(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &strictEq{value: v}) -} - -// Gt matcher, checks if the given field is greater than the given value -func Gt(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &cmp{value: v, token: token.GTR}) -} - -// GtF matcher, checks if the given field is greater than the given field -func GtF(field1, field2 string) Matcher { - return NewField2FieldMatcher(field1, field2, token.GTR) -} - -// Gte matcher, checks if the given field is greater than or equal to the given value -func Gte(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &cmp{value: v, token: token.GEQ}) -} - -// GteF matcher, checks if the given field is greater than or equal to the given field -func GteF(field1, field2 string) Matcher { - return NewField2FieldMatcher(field1, field2, token.GEQ) -} - -// Lt matcher, checks if the given field is lesser than the given value -func Lt(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &cmp{value: v, token: token.LSS}) -} - -// LtF matcher, checks if the given field is lesser than the given field -func LtF(field1, field2 string) Matcher { - return NewField2FieldMatcher(field1, field2, token.LSS) -} - -// Lte matcher, checks if the given field is lesser than or equal to the given value -func Lte(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &cmp{value: v, token: token.LEQ}) -} - -// LteF matcher, checks if the given field is lesser than or equal to the given field -func LteF(field1, field2 string) Matcher { - return NewField2FieldMatcher(field1, field2, token.LEQ) -} - -// In matcher, checks if the given field matches one of the value of the given slice. -// v must be a slice. -func In(field string, v interface{}) Matcher { - return NewFieldMatcher(field, &in{list: v}) -} - -// True matcher, always returns true -func True() Matcher { return &trueMatcher{} } - -// Or matcher, checks if at least one of the given matchers matches the record -func Or(matchers ...Matcher) Matcher { return &or{children: matchers} } - -// And matcher, checks if all of the given matchers matches the record -func And(matchers ...Matcher) Matcher { return &and{children: matchers} } - -// Not matcher, checks if all of the given matchers return false -func Not(matchers ...Matcher) Matcher { return ¬{children: matchers} } diff --git a/backend/vendor/github.com/asdine/storm/v3/query.go b/backend/vendor/github.com/asdine/storm/v3/query.go deleted file mode 100644 index 5f57583a..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/query.go +++ /dev/null @@ -1,219 +0,0 @@ -package storm - -import ( - "github.com/asdine/storm/v3/internal" - "github.com/asdine/storm/v3/q" - bolt "go.etcd.io/bbolt" -) - -// Select a list of records that match a list of matchers. Doesn't use indexes. -func (n *node) Select(matchers ...q.Matcher) Query { - tree := q.And(matchers...) - return newQuery(n, tree) -} - -// Query is the low level query engine used by Storm. It allows to operate searches through an entire bucket. -type Query interface { - // Skip matching records by the given number - Skip(int) Query - - // Limit the results by the given number - Limit(int) Query - - // Order by the given fields, in descending precedence, left-to-right. - OrderBy(...string) Query - - // Reverse the order of the results - Reverse() Query - - // Bucket specifies the bucket name - Bucket(string) Query - - // Find a list of matching records - Find(interface{}) error - - // First gets the first matching record - First(interface{}) error - - // Delete all matching records - Delete(interface{}) error - - // Count all the matching records - Count(interface{}) (int, error) - - // Returns all the records without decoding them - Raw() ([][]byte, error) - - // Execute the given function for each raw element - RawEach(func([]byte, []byte) error) error - - // Execute the given function for each element - Each(interface{}, func(interface{}) error) error -} - -func newQuery(n *node, tree q.Matcher) *query { - return &query{ - skip: 0, - limit: -1, - node: n, - tree: tree, - } -} - -type query struct { - limit int - skip int - reverse bool - tree q.Matcher - node *node - bucket string - orderBy []string -} - -func (q *query) Skip(nb int) Query { - q.skip = nb - return q -} - -func (q *query) Limit(nb int) Query { - q.limit = nb - return q -} - -func (q *query) OrderBy(field ...string) Query { - q.orderBy = field - return q -} - -func (q *query) Reverse() Query { - q.reverse = true - return q -} - -func (q *query) Bucket(bucketName string) Query { - q.bucket = bucketName - return q -} - -func (q *query) Find(to interface{}) error { - sink, err := newListSink(q.node, to) - if err != nil { - return err - } - - return q.runQuery(sink) -} - -func (q *query) First(to interface{}) error { - sink, err := newFirstSink(q.node, to) - if err != nil { - return err - } - - q.limit = 1 - return q.runQuery(sink) -} - -func (q *query) Delete(kind interface{}) error { - sink, err := newDeleteSink(q.node, kind) - if err != nil { - return err - } - - return q.runQuery(sink) -} - -func (q *query) Count(kind interface{}) (int, error) { - sink, err := newCountSink(q.node, kind) - if err != nil { - return 0, err - } - - err = q.runQuery(sink) - if err != nil { - return 0, err - } - - return sink.counter, nil -} - -func (q *query) Raw() ([][]byte, error) { - sink := newRawSink() - - err := q.runQuery(sink) - if err != nil { - return nil, err - } - - return sink.results, nil -} - -func (q *query) RawEach(fn func([]byte, []byte) error) error { - sink := newRawSink() - - sink.execFn = fn - - return q.runQuery(sink) -} - -func (q *query) Each(kind interface{}, fn func(interface{}) error) error { - sink, err := newEachSink(kind) - if err != nil { - return err - } - - sink.execFn = fn - - return q.runQuery(sink) -} - -func (q *query) runQuery(sink sink) error { - if q.node.tx != nil { - return q.query(q.node.tx, sink) - } - if sink.readOnly() { - return q.node.s.Bolt.View(func(tx *bolt.Tx) error { - return q.query(tx, sink) - }) - } - return q.node.s.Bolt.Update(func(tx *bolt.Tx) error { - return q.query(tx, sink) - }) -} - -func (q *query) query(tx *bolt.Tx, sink sink) error { - bucketName := q.bucket - if bucketName == "" { - bucketName = sink.bucketName() - } - bucket := q.node.GetBucket(tx, bucketName) - - if q.limit == 0 { - return sink.flush() - } - - sorter := newSorter(q.node, sink) - sorter.orderBy = q.orderBy - sorter.reverse = q.reverse - sorter.skip = q.skip - sorter.limit = q.limit - if bucket != nil { - c := internal.Cursor{C: bucket.Cursor(), Reverse: q.reverse} - for k, v := c.First(); k != nil; k, v = c.Next() { - if v == nil { - continue - } - - stop, err := sorter.filter(q.tree, bucket, k, v) - if err != nil { - return err - } - - if stop { - break - } - } - } - - return sorter.flush() -} diff --git a/backend/vendor/github.com/asdine/storm/v3/scan.go b/backend/vendor/github.com/asdine/storm/v3/scan.go deleted file mode 100644 index f2596e62..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/scan.go +++ /dev/null @@ -1,105 +0,0 @@ -package storm - -import ( - "bytes" - - bolt "go.etcd.io/bbolt" -) - -// A BucketScanner scans a Node for a list of buckets -type BucketScanner interface { - // PrefixScan scans the root buckets for keys matching the given prefix. - PrefixScan(prefix string) []Node - // PrefixScan scans the buckets in this node for keys matching the given prefix. - RangeScan(min, max string) []Node -} - -// PrefixScan scans the buckets in this node for keys matching the given prefix. -func (n *node) PrefixScan(prefix string) []Node { - if n.tx != nil { - return n.prefixScan(n.tx, prefix) - } - - var nodes []Node - - n.readTx(func(tx *bolt.Tx) error { - nodes = n.prefixScan(tx, prefix) - return nil - }) - - return nodes -} - -func (n *node) prefixScan(tx *bolt.Tx, prefix string) []Node { - var ( - prefixBytes = []byte(prefix) - nodes []Node - c = n.cursor(tx) - ) - - if c == nil { - return nil - } - - for k, v := c.Seek(prefixBytes); k != nil && bytes.HasPrefix(k, prefixBytes); k, v = c.Next() { - if v != nil { - continue - } - - nodes = append(nodes, n.From(string(k))) - } - - return nodes -} - -// RangeScan scans the buckets in this node over a range such as a sortable time range. -func (n *node) RangeScan(min, max string) []Node { - if n.tx != nil { - return n.rangeScan(n.tx, min, max) - } - - var nodes []Node - - n.readTx(func(tx *bolt.Tx) error { - nodes = n.rangeScan(tx, min, max) - return nil - }) - - return nodes -} - -func (n *node) rangeScan(tx *bolt.Tx, min, max string) []Node { - var ( - minBytes = []byte(min) - maxBytes = []byte(max) - nodes []Node - c = n.cursor(tx) - ) - - for k, v := c.Seek(minBytes); k != nil && bytes.Compare(k, maxBytes) <= 0; k, v = c.Next() { - if v != nil { - continue - } - - nodes = append(nodes, n.From(string(k))) - } - - return nodes - -} - -func (n *node) cursor(tx *bolt.Tx) *bolt.Cursor { - var c *bolt.Cursor - - if len(n.rootBucket) > 0 { - b := n.GetBucket(tx) - if b == nil { - return nil - } - c = b.Cursor() - } else { - c = tx.Cursor() - } - - return c -} diff --git a/backend/vendor/github.com/asdine/storm/v3/sink.go b/backend/vendor/github.com/asdine/storm/v3/sink.go deleted file mode 100644 index 90a80ff0..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/sink.go +++ /dev/null @@ -1,620 +0,0 @@ -package storm - -import ( - "github.com/asdine/storm/v3/index" - "github.com/asdine/storm/v3/q" - bolt "go.etcd.io/bbolt" - "reflect" - "sort" - "time" -) - -type item struct { - value *reflect.Value - bucket *bolt.Bucket - k []byte - v []byte -} - -func newSorter(n Node, snk sink) *sorter { - return &sorter{ - node: n, - sink: snk, - skip: 0, - limit: -1, - list: make([]*item, 0), - err: make(chan error), - done: make(chan struct{}), - } -} - -type sorter struct { - node Node - sink sink - list []*item - skip int - limit int - orderBy []string - reverse bool - err chan error - done chan struct{} -} - -func (s *sorter) filter(tree q.Matcher, bucket *bolt.Bucket, k, v []byte) (bool, error) { - itm := &item{ - bucket: bucket, - k: k, - v: v, - } - rsink, ok := s.sink.(reflectSink) - if !ok { - return s.add(itm) - } - - newElem := rsink.elem() - if err := s.node.Codec().Unmarshal(v, newElem.Interface()); err != nil { - return false, err - } - itm.value = &newElem - - if tree != nil { - ok, err := tree.Match(newElem.Interface()) - if err != nil { - return false, err - } - if !ok { - return false, nil - } - } - - if len(s.orderBy) == 0 { - return s.add(itm) - } - - if _, ok := s.sink.(sliceSink); ok { - // add directly to sink, we'll apply skip/limits after sorting - return false, s.sink.add(itm) - } - - s.list = append(s.list, itm) - - return false, nil -} - -func (s *sorter) add(itm *item) (stop bool, err error) { - if s.limit == 0 { - return true, nil - } - - if s.skip > 0 { - s.skip-- - return false, nil - } - - if s.limit > 0 { - s.limit-- - } - - err = s.sink.add(itm) - - return s.limit == 0, err -} - -func (s *sorter) compareValue(left reflect.Value, right reflect.Value) int { - if !left.IsValid() || !right.IsValid() { - if left.IsValid() { - return 1 - } - return -1 - } - - switch left.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - l, r := left.Int(), right.Int() - if l < r { - return -1 - } - if l > r { - return 1 - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - l, r := left.Uint(), right.Uint() - if l < r { - return -1 - } - if l > r { - return 1 - } - case reflect.Float32, reflect.Float64: - l, r := left.Float(), right.Float() - if l < r { - return -1 - } - if l > r { - return 1 - } - case reflect.String: - l, r := left.String(), right.String() - if l < r { - return -1 - } - if l > r { - return 1 - } - case reflect.Struct: - if lt, lok := left.Interface().(time.Time); lok { - if rt, rok := right.Interface().(time.Time); rok { - if lok && rok { - if lt.Before(rt) { - return -1 - } else { - return 1 - } - } - } - } - default: - rawLeft, err := toBytes(left.Interface(), s.node.Codec()) - if err != nil { - return -1 - } - rawRight, err := toBytes(right.Interface(), s.node.Codec()) - if err != nil { - return 1 - } - - l, r := string(rawLeft), string(rawRight) - if l < r { - return -1 - } - if l > r { - return 1 - } - } - - return 0 -} - -func (s *sorter) less(leftElem reflect.Value, rightElem reflect.Value) bool { - for _, orderBy := range s.orderBy { - leftField := reflect.Indirect(leftElem).FieldByName(orderBy) - if !leftField.IsValid() { - s.err <- ErrNotFound - return false - } - rightField := reflect.Indirect(rightElem).FieldByName(orderBy) - if !rightField.IsValid() { - s.err <- ErrNotFound - return false - } - - direction := 1 - if s.reverse { - direction = -1 - } - - switch s.compareValue(leftField, rightField) * direction { - case -1: - return true - case 1: - return false - default: - continue - } - } - - return false -} - -func (s *sorter) flush() error { - if len(s.orderBy) == 0 { - return s.sink.flush() - } - - go func() { - sort.Sort(s) - close(s.err) - }() - err := <-s.err - close(s.done) - - if err != nil { - return err - } - - if ssink, ok := s.sink.(sliceSink); ok { - if !ssink.slice().IsValid() { - return s.sink.flush() - } - if s.skip >= ssink.slice().Len() { - ssink.reset() - return s.sink.flush() - } - leftBound := s.skip - if leftBound < 0 { - leftBound = 0 - } - limit := s.limit - if s.limit < 0 { - limit = 0 - } - - rightBound := leftBound + limit - if rightBound > ssink.slice().Len() || rightBound == leftBound { - rightBound = ssink.slice().Len() - } - ssink.setSlice(ssink.slice().Slice(leftBound, rightBound)) - return s.sink.flush() - } - - for _, itm := range s.list { - if itm == nil { - break - } - stop, err := s.add(itm) - if err != nil { - return err - } - if stop { - break - } - } - - return s.sink.flush() -} - -func (s *sorter) Len() int { - // skip if we encountered an earlier error - select { - case <-s.done: - return 0 - default: - } - if ssink, ok := s.sink.(sliceSink); ok { - return ssink.slice().Len() - } - return len(s.list) - -} - -func (s *sorter) Less(i, j int) bool { - // skip if we encountered an earlier error - select { - case <-s.done: - return false - default: - } - - if ssink, ok := s.sink.(sliceSink); ok { - return s.less(ssink.slice().Index(i), ssink.slice().Index(j)) - } - return s.less(*s.list[i].value, *s.list[j].value) -} - -type sink interface { - bucketName() string - flush() error - add(*item) error - readOnly() bool -} - -type reflectSink interface { - elem() reflect.Value -} - -type sliceSink interface { - slice() reflect.Value - setSlice(reflect.Value) - reset() -} - -func newListSink(node Node, to interface{}) (*listSink, error) { - ref := reflect.ValueOf(to) - - if ref.Kind() != reflect.Ptr || reflect.Indirect(ref).Kind() != reflect.Slice { - return nil, ErrSlicePtrNeeded - } - - sliceType := reflect.Indirect(ref).Type() - elemType := sliceType.Elem() - - if elemType.Kind() == reflect.Ptr { - elemType = elemType.Elem() - } - - if elemType.Name() == "" { - return nil, ErrNoName - } - - return &listSink{ - node: node, - ref: ref, - isPtr: sliceType.Elem().Kind() == reflect.Ptr, - elemType: elemType, - name: elemType.Name(), - results: reflect.MakeSlice(reflect.Indirect(ref).Type(), 0, 0), - }, nil -} - -type listSink struct { - node Node - ref reflect.Value - results reflect.Value - elemType reflect.Type - name string - isPtr bool - idx int -} - -func (l *listSink) slice() reflect.Value { - return l.results -} - -func (l *listSink) setSlice(s reflect.Value) { - l.results = s -} - -func (l *listSink) reset() { - l.results = reflect.MakeSlice(reflect.Indirect(l.ref).Type(), 0, 0) -} - -func (l *listSink) elem() reflect.Value { - if l.results.IsValid() && l.idx < l.results.Len() { - return l.results.Index(l.idx).Addr() - } - return reflect.New(l.elemType) -} - -func (l *listSink) bucketName() string { - return l.name -} - -func (l *listSink) add(i *item) error { - if l.idx == l.results.Len() { - if l.isPtr { - l.results = reflect.Append(l.results, *i.value) - } else { - l.results = reflect.Append(l.results, reflect.Indirect(*i.value)) - } - } - - l.idx++ - - return nil -} - -func (l *listSink) flush() error { - if l.results.IsValid() && l.results.Len() > 0 { - reflect.Indirect(l.ref).Set(l.results) - return nil - } - - return ErrNotFound -} - -func (l *listSink) readOnly() bool { - return true -} - -func newFirstSink(node Node, to interface{}) (*firstSink, error) { - ref := reflect.ValueOf(to) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return nil, ErrStructPtrNeeded - } - - return &firstSink{ - node: node, - ref: ref, - }, nil -} - -type firstSink struct { - node Node - ref reflect.Value - found bool -} - -func (f *firstSink) elem() reflect.Value { - return reflect.New(reflect.Indirect(f.ref).Type()) -} - -func (f *firstSink) bucketName() string { - return reflect.Indirect(f.ref).Type().Name() -} - -func (f *firstSink) add(i *item) error { - reflect.Indirect(f.ref).Set(i.value.Elem()) - f.found = true - return nil -} - -func (f *firstSink) flush() error { - if !f.found { - return ErrNotFound - } - - return nil -} - -func (f *firstSink) readOnly() bool { - return true -} - -func newDeleteSink(node Node, kind interface{}) (*deleteSink, error) { - ref := reflect.ValueOf(kind) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return nil, ErrStructPtrNeeded - } - - return &deleteSink{ - node: node, - ref: ref, - }, nil -} - -type deleteSink struct { - node Node - ref reflect.Value - removed int -} - -func (d *deleteSink) elem() reflect.Value { - return reflect.New(reflect.Indirect(d.ref).Type()) -} - -func (d *deleteSink) bucketName() string { - return reflect.Indirect(d.ref).Type().Name() -} - -func (d *deleteSink) add(i *item) error { - info, err := extract(&d.ref) - if err != nil { - return err - } - - for fieldName, fieldCfg := range info.Fields { - if fieldCfg.Index == "" { - continue - } - idx, err := getIndex(i.bucket, fieldCfg.Index, fieldName) - if err != nil { - return err - } - - err = idx.RemoveID(i.k) - if err != nil { - if err == index.ErrNotFound { - return ErrNotFound - } - return err - } - } - - d.removed++ - return i.bucket.Delete(i.k) -} - -func (d *deleteSink) flush() error { - if d.removed == 0 { - return ErrNotFound - } - - return nil -} - -func (d *deleteSink) readOnly() bool { - return false -} - -func newCountSink(node Node, kind interface{}) (*countSink, error) { - ref := reflect.ValueOf(kind) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return nil, ErrStructPtrNeeded - } - - return &countSink{ - node: node, - ref: ref, - }, nil -} - -type countSink struct { - node Node - ref reflect.Value - counter int -} - -func (c *countSink) elem() reflect.Value { - return reflect.New(reflect.Indirect(c.ref).Type()) -} - -func (c *countSink) bucketName() string { - return reflect.Indirect(c.ref).Type().Name() -} - -func (c *countSink) add(i *item) error { - c.counter++ - return nil -} - -func (c *countSink) flush() error { - return nil -} - -func (c *countSink) readOnly() bool { - return true -} - -func newRawSink() *rawSink { - return &rawSink{} -} - -type rawSink struct { - results [][]byte - execFn func([]byte, []byte) error -} - -func (r *rawSink) add(i *item) error { - if r.execFn != nil { - err := r.execFn(i.k, i.v) - if err != nil { - return err - } - } else { - r.results = append(r.results, i.v) - } - - return nil -} - -func (r *rawSink) bucketName() string { - return "" -} - -func (r *rawSink) flush() error { - return nil -} - -func (r *rawSink) readOnly() bool { - return true -} - -func newEachSink(to interface{}) (*eachSink, error) { - ref := reflect.ValueOf(to) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return nil, ErrStructPtrNeeded - } - - return &eachSink{ - ref: ref, - }, nil -} - -type eachSink struct { - ref reflect.Value - execFn func(interface{}) error -} - -func (e *eachSink) elem() reflect.Value { - return reflect.New(reflect.Indirect(e.ref).Type()) -} - -func (e *eachSink) bucketName() string { - return reflect.Indirect(e.ref).Type().Name() -} - -func (e *eachSink) add(i *item) error { - return e.execFn(i.value.Interface()) -} - -func (e *eachSink) flush() error { - return nil -} - -func (e *eachSink) readOnly() bool { - return true -} diff --git a/backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap.go b/backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap.go deleted file mode 100644 index 2a581e12..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build !go1.8 -// +build !go1.8 - -package storm - -import "reflect" - -func (s *sorter) Swap(i, j int) { - // skip if we encountered an earlier error - select { - case <-s.done: - return - default: - } - - if ssink, ok := s.sink.(sliceSink); ok { - x, y := ssink.slice().Index(i).Interface(), ssink.slice().Index(j).Interface() - ssink.slice().Index(i).Set(reflect.ValueOf(y)) - ssink.slice().Index(j).Set(reflect.ValueOf(x)) - } else { - s.list[i], s.list[j] = s.list[j], s.list[i] - } -} diff --git a/backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap_go1.8.go b/backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap_go1.8.go deleted file mode 100644 index 4f6fdfe1..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/sink_sorter_swap_go1.8.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build go1.8 -// +build go1.8 - -package storm - -import "reflect" - -func (s *sorter) Swap(i, j int) { - // skip if we encountered an earlier error - select { - case <-s.done: - return - default: - } - - if ssink, ok := s.sink.(sliceSink); ok { - reflect.Swapper(ssink.slice().Interface())(i, j) - } else { - s.list[i], s.list[j] = s.list[j], s.list[i] - } -} diff --git a/backend/vendor/github.com/asdine/storm/v3/store.go b/backend/vendor/github.com/asdine/storm/v3/store.go deleted file mode 100644 index f22651f4..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/store.go +++ /dev/null @@ -1,425 +0,0 @@ -package storm - -import ( - "bytes" - "reflect" - - "github.com/asdine/storm/v3/index" - "github.com/asdine/storm/v3/q" - bolt "go.etcd.io/bbolt" -) - -// TypeStore stores user defined types in BoltDB. -type TypeStore interface { - Finder - // Init creates the indexes and buckets for a given structure - Init(data interface{}) error - - // ReIndex rebuilds all the indexes of a bucket - ReIndex(data interface{}) error - - // Save a structure - Save(data interface{}) error - - // Update a structure - Update(data interface{}) error - - // UpdateField updates a single field - UpdateField(data interface{}, fieldName string, value interface{}) error - - // Drop a bucket - Drop(data interface{}) error - - // DeleteStruct deletes a structure from the associated bucket - DeleteStruct(data interface{}) error -} - -// Init creates the indexes and buckets for a given structure -func (n *node) Init(data interface{}) error { - v := reflect.ValueOf(data) - cfg, err := extract(&v) - if err != nil { - return err - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.init(tx, cfg) - }) -} - -func (n *node) init(tx *bolt.Tx, cfg *structConfig) error { - bucket, err := n.CreateBucketIfNotExists(tx, cfg.Name) - if err != nil { - return err - } - - // save node configuration in the bucket - _, err = newMeta(bucket, n) - if err != nil { - return err - } - - for fieldName, fieldCfg := range cfg.Fields { - if fieldCfg.Index == "" { - continue - } - switch fieldCfg.Index { - case tagUniqueIdx: - _, err = index.NewUniqueIndex(bucket, []byte(indexPrefix+fieldName)) - case tagIdx: - _, err = index.NewListIndex(bucket, []byte(indexPrefix+fieldName)) - default: - err = ErrIdxNotFound - } - - if err != nil { - return err - } - } - - return nil -} - -func (n *node) ReIndex(data interface{}) error { - ref := reflect.ValueOf(data) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return ErrStructPtrNeeded - } - - cfg, err := extract(&ref) - if err != nil { - return err - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.reIndex(tx, data, cfg) - }) -} - -func (n *node) reIndex(tx *bolt.Tx, data interface{}, cfg *structConfig) error { - root := n.WithTransaction(tx) - nodes := root.From(cfg.Name).PrefixScan(indexPrefix) - bucket := root.GetBucket(tx, cfg.Name) - if bucket == nil { - return ErrNotFound - } - - for _, node := range nodes { - buckets := node.Bucket() - name := buckets[len(buckets)-1] - err := bucket.DeleteBucket([]byte(name)) - if err != nil { - return err - } - } - - total, err := root.Count(data) - if err != nil { - return err - } - - for i := 0; i < total; i++ { - err = root.Select(q.True()).Skip(i).First(data) - if err != nil { - return err - } - - err = root.Update(data) - if err != nil { - return err - } - } - - return nil -} - -// Save a structure -func (n *node) Save(data interface{}) error { - ref := reflect.ValueOf(data) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return ErrStructPtrNeeded - } - - cfg, err := extract(&ref) - if err != nil { - return err - } - - if cfg.ID.IsZero { - if !cfg.ID.IsInteger || !cfg.ID.Increment { - return ErrZeroID - } - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.save(tx, cfg, data, false) - }) -} - -func (n *node) save(tx *bolt.Tx, cfg *structConfig, data interface{}, update bool) error { - bucket, err := n.CreateBucketIfNotExists(tx, cfg.Name) - if err != nil { - return err - } - - // save node configuration in the bucket - meta, err := newMeta(bucket, n) - if err != nil { - return err - } - - if cfg.ID.IsZero { - err = meta.increment(cfg.ID) - if err != nil { - return err - } - } - - id, err := toBytes(cfg.ID.Value.Interface(), n.codec) - if err != nil { - return err - } - - for fieldName, fieldCfg := range cfg.Fields { - if !update && !fieldCfg.IsID && fieldCfg.Increment && fieldCfg.IsInteger && fieldCfg.IsZero { - err = meta.increment(fieldCfg) - if err != nil { - return err - } - } - - if fieldCfg.Index == "" { - continue - } - - idx, err := getIndex(bucket, fieldCfg.Index, fieldName) - if err != nil { - return err - } - - if update && fieldCfg.IsZero && !fieldCfg.ForceUpdate { - continue - } - - if fieldCfg.IsZero { - err = idx.RemoveID(id) - if err != nil { - return err - } - continue - } - - value, err := toBytes(fieldCfg.Value.Interface(), n.codec) - if err != nil { - return err - } - - var found bool - idsSaved, err := idx.All(value, nil) - if err != nil { - return err - } - for _, idSaved := range idsSaved { - if bytes.Compare(idSaved, id) == 0 { - found = true - break - } - } - - if found { - continue - } - - err = idx.RemoveID(id) - if err != nil { - return err - } - - err = idx.Add(value, id) - if err != nil { - if err == index.ErrAlreadyExists { - return ErrAlreadyExists - } - return err - } - } - - raw, err := n.codec.Marshal(data) - if err != nil { - return err - } - - return bucket.Put(id, raw) -} - -// Update a structure -func (n *node) Update(data interface{}) error { - return n.update(data, func(ref *reflect.Value, current *reflect.Value, cfg *structConfig) error { - numfield := ref.NumField() - for i := 0; i < numfield; i++ { - f := ref.Field(i) - if ref.Type().Field(i).PkgPath != "" { - continue - } - zero := reflect.Zero(f.Type()).Interface() - actual := f.Interface() - if !reflect.DeepEqual(actual, zero) { - cf := current.Field(i) - cf.Set(f) - idxInfo, ok := cfg.Fields[ref.Type().Field(i).Name] - if ok { - idxInfo.Value = &cf - } - } - } - return nil - }) -} - -// UpdateField updates a single field -func (n *node) UpdateField(data interface{}, fieldName string, value interface{}) error { - return n.update(data, func(ref *reflect.Value, current *reflect.Value, cfg *structConfig) error { - f := current.FieldByName(fieldName) - if !f.IsValid() { - return ErrNotFound - } - tf, _ := current.Type().FieldByName(fieldName) - if tf.PkgPath != "" { - return ErrNotFound - } - v := reflect.ValueOf(value) - if v.Kind() != f.Kind() { - return ErrIncompatibleValue - } - f.Set(v) - idxInfo, ok := cfg.Fields[fieldName] - if ok { - idxInfo.Value = &f - idxInfo.IsZero = isZero(idxInfo.Value) - idxInfo.ForceUpdate = true - } - return nil - }) -} - -func (n *node) update(data interface{}, fn func(*reflect.Value, *reflect.Value, *structConfig) error) error { - ref := reflect.ValueOf(data) - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return ErrStructPtrNeeded - } - - cfg, err := extract(&ref) - if err != nil { - return err - } - - if cfg.ID.IsZero { - return ErrNoID - } - - current := reflect.New(reflect.Indirect(ref).Type()) - - return n.readWriteTx(func(tx *bolt.Tx) error { - err = n.WithTransaction(tx).One(cfg.ID.Name, cfg.ID.Value.Interface(), current.Interface()) - if err != nil { - return err - } - - ref := reflect.ValueOf(data).Elem() - cref := current.Elem() - err = fn(&ref, &cref, cfg) - if err != nil { - return err - } - - return n.save(tx, cfg, current.Interface(), true) - }) -} - -// Drop a bucket -func (n *node) Drop(data interface{}) error { - var bucketName string - - v := reflect.ValueOf(data) - if v.Kind() != reflect.String { - info, err := extract(&v) - if err != nil { - return err - } - - bucketName = info.Name - } else { - bucketName = v.Interface().(string) - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.drop(tx, bucketName) - }) -} - -func (n *node) drop(tx *bolt.Tx, bucketName string) error { - bucket := n.GetBucket(tx) - if bucket == nil { - return tx.DeleteBucket([]byte(bucketName)) - } - - return bucket.DeleteBucket([]byte(bucketName)) -} - -// DeleteStruct deletes a structure from the associated bucket -func (n *node) DeleteStruct(data interface{}) error { - ref := reflect.ValueOf(data) - - if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct { - return ErrStructPtrNeeded - } - - cfg, err := extract(&ref) - if err != nil { - return err - } - - id, err := toBytes(cfg.ID.Value.Interface(), n.codec) - if err != nil { - return err - } - - return n.readWriteTx(func(tx *bolt.Tx) error { - return n.deleteStruct(tx, cfg, id) - }) -} - -func (n *node) deleteStruct(tx *bolt.Tx, cfg *structConfig, id []byte) error { - bucket := n.GetBucket(tx, cfg.Name) - if bucket == nil { - return ErrNotFound - } - - for fieldName, fieldCfg := range cfg.Fields { - if fieldCfg.Index == "" { - continue - } - - idx, err := getIndex(bucket, fieldCfg.Index, fieldName) - if err != nil { - return err - } - - err = idx.RemoveID(id) - if err != nil { - if err == index.ErrNotFound { - return ErrNotFound - } - return err - } - } - - raw := bucket.Get(id) - if raw == nil { - return ErrNotFound - } - - return bucket.Delete(id) -} diff --git a/backend/vendor/github.com/asdine/storm/v3/storm.go b/backend/vendor/github.com/asdine/storm/v3/storm.go deleted file mode 100644 index 88f16ea1..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/storm.go +++ /dev/null @@ -1,142 +0,0 @@ -package storm - -import ( - "bytes" - "encoding/binary" - "time" - - "github.com/asdine/storm/v3/codec" - "github.com/asdine/storm/v3/codec/json" - bolt "go.etcd.io/bbolt" -) - -const ( - dbinfo = "__storm_db" - metadataBucket = "__storm_metadata" -) - -// Defaults to json -var defaultCodec = json.Codec - -// Open opens a database at the given path with optional Storm options. -func Open(path string, stormOptions ...func(*Options) error) (*DB, error) { - var err error - - var opts Options - for _, option := range stormOptions { - if err = option(&opts); err != nil { - return nil, err - } - } - - s := DB{ - Bolt: opts.bolt, - } - - n := node{ - s: &s, - codec: opts.codec, - batchMode: opts.batchMode, - rootBucket: opts.rootBucket, - } - - if n.codec == nil { - n.codec = defaultCodec - } - - if opts.boltMode == 0 { - opts.boltMode = 0600 - } - - if opts.boltOptions == nil { - opts.boltOptions = &bolt.Options{Timeout: 1 * time.Second} - } - - s.Node = &n - - // skip if UseDB option is used - if s.Bolt == nil { - s.Bolt, err = bolt.Open(path, opts.boltMode, opts.boltOptions) - if err != nil { - return nil, err - } - } - - err = s.checkVersion() - if err != nil { - return nil, err - } - - return &s, nil -} - -// DB is the wrapper around BoltDB. It contains an instance of BoltDB and uses it to perform all the -// needed operations -type DB struct { - // The root node that points to the root bucket. - Node - - // Bolt is still easily accessible - Bolt *bolt.DB -} - -// Close the database -func (s *DB) Close() error { - return s.Bolt.Close() -} - -func (s *DB) checkVersion() error { - var v string - err := s.Get(dbinfo, "version", &v) - if err != nil && err != ErrNotFound { - return err - } - - // for now, we only set the current version if it doesn't exist. - // v1 and v2 database files are compatible. - if v == "" { - return s.Set(dbinfo, "version", Version) - } - - return nil -} - -// toBytes turns an interface into a slice of bytes -func toBytes(key interface{}, codec codec.MarshalUnmarshaler) ([]byte, error) { - if key == nil { - return nil, nil - } - switch t := key.(type) { - case []byte: - return t, nil - case string: - return []byte(t), nil - case int: - return numbertob(int64(t)) - case uint: - return numbertob(uint64(t)) - case int8, int16, int32, int64, uint8, uint16, uint32, uint64: - return numbertob(t) - default: - return codec.Marshal(key) - } -} - -func numbertob(v interface{}) ([]byte, error) { - var buf bytes.Buffer - err := binary.Write(&buf, binary.BigEndian, v) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -func numberfromb(raw []byte) (int64, error) { - r := bytes.NewReader(raw) - var to int64 - err := binary.Read(r, binary.BigEndian, &to) - if err != nil { - return 0, err - } - return to, nil -} diff --git a/backend/vendor/github.com/asdine/storm/v3/transaction.go b/backend/vendor/github.com/asdine/storm/v3/transaction.go deleted file mode 100644 index c1f81838..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/transaction.go +++ /dev/null @@ -1,52 +0,0 @@ -package storm - -import bolt "go.etcd.io/bbolt" - -// Tx is a transaction. -type Tx interface { - // Commit writes all changes to disk. - Commit() error - - // Rollback closes the transaction and ignores all previous updates. - Rollback() error -} - -// Begin starts a new transaction. -func (n node) Begin(writable bool) (Node, error) { - var err error - - n.tx, err = n.s.Bolt.Begin(writable) - if err != nil { - return nil, err - } - - return &n, nil -} - -// Rollback closes the transaction and ignores all previous updates. -func (n *node) Rollback() error { - if n.tx == nil { - return ErrNotInTransaction - } - - err := n.tx.Rollback() - if err == bolt.ErrTxClosed { - return ErrNotInTransaction - } - - return err -} - -// Commit writes all changes to disk. -func (n *node) Commit() error { - if n.tx == nil { - return ErrNotInTransaction - } - - err := n.tx.Commit() - if err == bolt.ErrTxClosed { - return ErrNotInTransaction - } - - return err -} diff --git a/backend/vendor/github.com/asdine/storm/v3/version.go b/backend/vendor/github.com/asdine/storm/v3/version.go deleted file mode 100644 index c8e89607..00000000 --- a/backend/vendor/github.com/asdine/storm/v3/version.go +++ /dev/null @@ -1,4 +0,0 @@ -package storm - -// Version of Storm -const Version = "2.0.0" diff --git a/backend/vendor/github.com/davecgh/go-spew/LICENSE b/backend/vendor/github.com/davecgh/go-spew/LICENSE deleted file mode 100644 index bc52e96f..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -ISC License - -Copyright (c) 2012-2016 Dave Collins - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/bypass.go b/backend/vendor/github.com/davecgh/go-spew/spew/bypass.go deleted file mode 100644 index 70ddeaad..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/bypass.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (c) 2015-2016 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when the code is not running on Google App Engine, compiled by GopherJS, and -// "-tags safe" is not added to the go build command line. The "disableunsafe" -// tag is deprecated and thus should not be used. -// Go versions prior to 1.4 are disabled because they use a different layout -// for interfaces which make the implementation of unsafeReflectValue more complex. -//go:build !js && !appengine && !safe && !disableunsafe && go1.4 -// +build !js,!appengine,!safe,!disableunsafe,go1.4 - -package spew - -import ( - "reflect" - "unsafe" -) - -const ( - // UnsafeDisabled is a build-time constant which specifies whether or - // not access to the unsafe package is available. - UnsafeDisabled = false - - // ptrSize is the size of a pointer on the current arch. - ptrSize = unsafe.Sizeof((*byte)(nil)) -) - -type flag uintptr - -var ( - // flagRO indicates whether the value field of a reflect.Value - // is read-only. - flagRO flag - - // flagAddr indicates whether the address of the reflect.Value's - // value may be taken. - flagAddr flag -) - -// flagKindMask holds the bits that make up the kind -// part of the flags field. In all the supported versions, -// it is in the lower 5 bits. -const flagKindMask = flag(0x1f) - -// Different versions of Go have used different -// bit layouts for the flags type. This table -// records the known combinations. -var okFlags = []struct { - ro, addr flag -}{{ - // From Go 1.4 to 1.5 - ro: 1 << 5, - addr: 1 << 7, -}, { - // Up to Go tip. - ro: 1<<5 | 1<<6, - addr: 1 << 8, -}} - -var flagValOffset = func() uintptr { - field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag") - if !ok { - panic("reflect.Value has no flag field") - } - return field.Offset -}() - -// flagField returns a pointer to the flag field of a reflect.Value. -func flagField(v *reflect.Value) *flag { - return (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset)) -} - -// unsafeReflectValue converts the passed reflect.Value into a one that bypasses -// the typical safety restrictions preventing access to unaddressable and -// unexported data. It works by digging the raw pointer to the underlying -// value out of the protected value and generating a new unprotected (unsafe) -// reflect.Value to it. -// -// This allows us to check for implementations of the Stringer and error -// interfaces to be used for pretty printing ordinarily unaddressable and -// inaccessible values such as unexported struct fields. -func unsafeReflectValue(v reflect.Value) reflect.Value { - if !v.IsValid() || (v.CanInterface() && v.CanAddr()) { - return v - } - flagFieldPtr := flagField(&v) - *flagFieldPtr &^= flagRO - *flagFieldPtr |= flagAddr - return v -} - -// Sanity checks against future reflect package changes -// to the type or semantics of the Value.flag field. -func init() { - field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag") - if !ok { - panic("reflect.Value has no flag field") - } - if field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() { - panic("reflect.Value flag field has changed kind") - } - type t0 int - var t struct { - A t0 - // t0 will have flagEmbedRO set. - t0 - // a will have flagStickyRO set - a t0 - } - vA := reflect.ValueOf(t).FieldByName("A") - va := reflect.ValueOf(t).FieldByName("a") - vt0 := reflect.ValueOf(t).FieldByName("t0") - - // Infer flagRO from the difference between the flags - // for the (otherwise identical) fields in t. - flagPublic := *flagField(&vA) - flagWithRO := *flagField(&va) | *flagField(&vt0) - flagRO = flagPublic ^ flagWithRO - - // Infer flagAddr from the difference between a value - // taken from a pointer and not. - vPtrA := reflect.ValueOf(&t).Elem().FieldByName("A") - flagNoPtr := *flagField(&vA) - flagPtr := *flagField(&vPtrA) - flagAddr = flagNoPtr ^ flagPtr - - // Check that the inferred flags tally with one of the known versions. - for _, f := range okFlags { - if flagRO == f.ro && flagAddr == f.addr { - return - } - } - panic("reflect.Value read-only flag has changed semantics") -} diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/backend/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go deleted file mode 100644 index 5e2d890d..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2015-2016 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when the code is running on Google App Engine, compiled by GopherJS, or -// "-tags safe" is added to the go build command line. The "disableunsafe" -// tag is deprecated and thus should not be used. -//go:build js || appengine || safe || disableunsafe || !go1.4 -// +build js appengine safe disableunsafe !go1.4 - -package spew - -import "reflect" - -const ( - // UnsafeDisabled is a build-time constant which specifies whether or - // not access to the unsafe package is available. - UnsafeDisabled = true -) - -// unsafeReflectValue typically converts the passed reflect.Value into a one -// that bypasses the typical safety restrictions preventing access to -// unaddressable and unexported data. However, doing this relies on access to -// the unsafe package. This is a stub version which simply returns the passed -// reflect.Value when the unsafe package is not available. -func unsafeReflectValue(v reflect.Value) reflect.Value { - return v -} diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/common.go b/backend/vendor/github.com/davecgh/go-spew/spew/common.go deleted file mode 100644 index 1be8ce94..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/common.go +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "fmt" - "io" - "reflect" - "sort" - "strconv" -) - -// Some constants in the form of bytes to avoid string overhead. This mirrors -// the technique used in the fmt package. -var ( - panicBytes = []byte("(PANIC=") - plusBytes = []byte("+") - iBytes = []byte("i") - trueBytes = []byte("true") - falseBytes = []byte("false") - interfaceBytes = []byte("(interface {})") - commaNewlineBytes = []byte(",\n") - newlineBytes = []byte("\n") - openBraceBytes = []byte("{") - openBraceNewlineBytes = []byte("{\n") - closeBraceBytes = []byte("}") - asteriskBytes = []byte("*") - colonBytes = []byte(":") - colonSpaceBytes = []byte(": ") - openParenBytes = []byte("(") - closeParenBytes = []byte(")") - spaceBytes = []byte(" ") - pointerChainBytes = []byte("->") - nilAngleBytes = []byte("") - maxNewlineBytes = []byte("\n") - maxShortBytes = []byte("") - circularBytes = []byte("") - circularShortBytes = []byte("") - invalidAngleBytes = []byte("") - openBracketBytes = []byte("[") - closeBracketBytes = []byte("]") - percentBytes = []byte("%") - precisionBytes = []byte(".") - openAngleBytes = []byte("<") - closeAngleBytes = []byte(">") - openMapBytes = []byte("map[") - closeMapBytes = []byte("]") - lenEqualsBytes = []byte("len=") - capEqualsBytes = []byte("cap=") -) - -// hexDigits is used to map a decimal value to a hex digit. -var hexDigits = "0123456789abcdef" - -// catchPanic handles any panics that might occur during the handleMethods -// calls. -func catchPanic(w io.Writer, v reflect.Value) { - if err := recover(); err != nil { - w.Write(panicBytes) - fmt.Fprintf(w, "%v", err) - w.Write(closeParenBytes) - } -} - -// handleMethods attempts to call the Error and String methods on the underlying -// type the passed reflect.Value represents and outputes the result to Writer w. -// -// It handles panics in any called methods by catching and displaying the error -// as the formatted value. -func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) { - // We need an interface to check if the type implements the error or - // Stringer interface. However, the reflect package won't give us an - // interface on certain things like unexported struct fields in order - // to enforce visibility rules. We use unsafe, when it's available, - // to bypass these restrictions since this package does not mutate the - // values. - if !v.CanInterface() { - if UnsafeDisabled { - return false - } - - v = unsafeReflectValue(v) - } - - // Choose whether or not to do error and Stringer interface lookups against - // the base type or a pointer to the base type depending on settings. - // Technically calling one of these methods with a pointer receiver can - // mutate the value, however, types which choose to satisify an error or - // Stringer interface with a pointer receiver should not be mutating their - // state inside these interface methods. - if !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() { - v = unsafeReflectValue(v) - } - if v.CanAddr() { - v = v.Addr() - } - - // Is it an error or Stringer? - switch iface := v.Interface().(type) { - case error: - defer catchPanic(w, v) - if cs.ContinueOnMethod { - w.Write(openParenBytes) - w.Write([]byte(iface.Error())) - w.Write(closeParenBytes) - w.Write(spaceBytes) - return false - } - - w.Write([]byte(iface.Error())) - return true - - case fmt.Stringer: - defer catchPanic(w, v) - if cs.ContinueOnMethod { - w.Write(openParenBytes) - w.Write([]byte(iface.String())) - w.Write(closeParenBytes) - w.Write(spaceBytes) - return false - } - w.Write([]byte(iface.String())) - return true - } - return false -} - -// printBool outputs a boolean value as true or false to Writer w. -func printBool(w io.Writer, val bool) { - if val { - w.Write(trueBytes) - } else { - w.Write(falseBytes) - } -} - -// printInt outputs a signed integer value to Writer w. -func printInt(w io.Writer, val int64, base int) { - w.Write([]byte(strconv.FormatInt(val, base))) -} - -// printUint outputs an unsigned integer value to Writer w. -func printUint(w io.Writer, val uint64, base int) { - w.Write([]byte(strconv.FormatUint(val, base))) -} - -// printFloat outputs a floating point value using the specified precision, -// which is expected to be 32 or 64bit, to Writer w. -func printFloat(w io.Writer, val float64, precision int) { - w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision))) -} - -// printComplex outputs a complex value using the specified float precision -// for the real and imaginary parts to Writer w. -func printComplex(w io.Writer, c complex128, floatPrecision int) { - r := real(c) - w.Write(openParenBytes) - w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision))) - i := imag(c) - if i >= 0 { - w.Write(plusBytes) - } - w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision))) - w.Write(iBytes) - w.Write(closeParenBytes) -} - -// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x' -// prefix to Writer w. -func printHexPtr(w io.Writer, p uintptr) { - // Null pointer. - num := uint64(p) - if num == 0 { - w.Write(nilAngleBytes) - return - } - - // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix - buf := make([]byte, 18) - - // It's simpler to construct the hex string right to left. - base := uint64(16) - i := len(buf) - 1 - for num >= base { - buf[i] = hexDigits[num%base] - num /= base - i-- - } - buf[i] = hexDigits[num] - - // Add '0x' prefix. - i-- - buf[i] = 'x' - i-- - buf[i] = '0' - - // Strip unused leading bytes. - buf = buf[i:] - w.Write(buf) -} - -// valuesSorter implements sort.Interface to allow a slice of reflect.Value -// elements to be sorted. -type valuesSorter struct { - values []reflect.Value - strings []string // either nil or same len and values - cs *ConfigState -} - -// newValuesSorter initializes a valuesSorter instance, which holds a set of -// surrogate keys on which the data should be sorted. It uses flags in -// ConfigState to decide if and how to populate those surrogate keys. -func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface { - vs := &valuesSorter{values: values, cs: cs} - if canSortSimply(vs.values[0].Kind()) { - return vs - } - if !cs.DisableMethods { - vs.strings = make([]string, len(values)) - for i := range vs.values { - b := bytes.Buffer{} - if !handleMethods(cs, &b, vs.values[i]) { - vs.strings = nil - break - } - vs.strings[i] = b.String() - } - } - if vs.strings == nil && cs.SpewKeys { - vs.strings = make([]string, len(values)) - for i := range vs.values { - vs.strings[i] = Sprintf("%#v", vs.values[i].Interface()) - } - } - return vs -} - -// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted -// directly, or whether it should be considered for sorting by surrogate keys -// (if the ConfigState allows it). -func canSortSimply(kind reflect.Kind) bool { - // This switch parallels valueSortLess, except for the default case. - switch kind { - case reflect.Bool: - return true - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - return true - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - return true - case reflect.Float32, reflect.Float64: - return true - case reflect.String: - return true - case reflect.Uintptr: - return true - case reflect.Array: - return true - } - return false -} - -// Len returns the number of values in the slice. It is part of the -// sort.Interface implementation. -func (s *valuesSorter) Len() int { - return len(s.values) -} - -// Swap swaps the values at the passed indices. It is part of the -// sort.Interface implementation. -func (s *valuesSorter) Swap(i, j int) { - s.values[i], s.values[j] = s.values[j], s.values[i] - if s.strings != nil { - s.strings[i], s.strings[j] = s.strings[j], s.strings[i] - } -} - -// valueSortLess returns whether the first value should sort before the second -// value. It is used by valueSorter.Less as part of the sort.Interface -// implementation. -func valueSortLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Bool: - return !a.Bool() && b.Bool() - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - return a.Int() < b.Int() - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - return a.Uint() < b.Uint() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.String: - return a.String() < b.String() - case reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Array: - // Compare the contents of both arrays. - l := a.Len() - for i := 0; i < l; i++ { - av := a.Index(i) - bv := b.Index(i) - if av.Interface() == bv.Interface() { - continue - } - return valueSortLess(av, bv) - } - } - return a.String() < b.String() -} - -// Less returns whether the value at index i should sort before the -// value at index j. It is part of the sort.Interface implementation. -func (s *valuesSorter) Less(i, j int) bool { - if s.strings == nil { - return valueSortLess(s.values[i], s.values[j]) - } - return s.strings[i] < s.strings[j] -} - -// sortValues is a sort function that handles both native types and any type that -// can be converted to error or Stringer. Other inputs are sorted according to -// their Value.String() value to ensure display stability. -func sortValues(values []reflect.Value, cs *ConfigState) { - if len(values) == 0 { - return - } - sort.Sort(newValuesSorter(values, cs)) -} diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/config.go b/backend/vendor/github.com/davecgh/go-spew/spew/config.go deleted file mode 100644 index 161895fc..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/config.go +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "fmt" - "io" - "os" -) - -// ConfigState houses the configuration options used by spew to format and -// display values. There is a global instance, Config, that is used to control -// all top-level Formatter and Dump functionality. Each ConfigState instance -// provides methods equivalent to the top-level functions. -// -// The zero value for ConfigState provides no indentation. You would typically -// want to set it to a space or a tab. -// -// Alternatively, you can use NewDefaultConfig to get a ConfigState instance -// with default settings. See the documentation of NewDefaultConfig for default -// values. -type ConfigState struct { - // Indent specifies the string to use for each indentation level. The - // global config instance that all top-level functions use set this to a - // single space by default. If you would like more indentation, you might - // set this to a tab with "\t" or perhaps two spaces with " ". - Indent string - - // MaxDepth controls the maximum number of levels to descend into nested - // data structures. The default, 0, means there is no limit. - // - // NOTE: Circular data structures are properly detected, so it is not - // necessary to set this value unless you specifically want to limit deeply - // nested data structures. - MaxDepth int - - // DisableMethods specifies whether or not error and Stringer interfaces are - // invoked for types that implement them. - DisableMethods bool - - // DisablePointerMethods specifies whether or not to check for and invoke - // error and Stringer interfaces on types which only accept a pointer - // receiver when the current type is not a pointer. - // - // NOTE: This might be an unsafe action since calling one of these methods - // with a pointer receiver could technically mutate the value, however, - // in practice, types which choose to satisify an error or Stringer - // interface with a pointer receiver should not be mutating their state - // inside these interface methods. As a result, this option relies on - // access to the unsafe package, so it will not have any effect when - // running in environments without access to the unsafe package such as - // Google App Engine or with the "safe" build tag specified. - DisablePointerMethods bool - - // DisablePointerAddresses specifies whether to disable the printing of - // pointer addresses. This is useful when diffing data structures in tests. - DisablePointerAddresses bool - - // DisableCapacities specifies whether to disable the printing of capacities - // for arrays, slices, maps and channels. This is useful when diffing - // data structures in tests. - DisableCapacities bool - - // ContinueOnMethod specifies whether or not recursion should continue once - // a custom error or Stringer interface is invoked. The default, false, - // means it will print the results of invoking the custom error or Stringer - // interface and return immediately instead of continuing to recurse into - // the internals of the data type. - // - // NOTE: This flag does not have any effect if method invocation is disabled - // via the DisableMethods or DisablePointerMethods options. - ContinueOnMethod bool - - // SortKeys specifies map keys should be sorted before being printed. Use - // this to have a more deterministic, diffable output. Note that only - // native types (bool, int, uint, floats, uintptr and string) and types - // that support the error or Stringer interfaces (if methods are - // enabled) are supported, with other types sorted according to the - // reflect.Value.String() output which guarantees display stability. - SortKeys bool - - // SpewKeys specifies that, as a last resort attempt, map keys should - // be spewed to strings and sorted by those strings. This is only - // considered if SortKeys is true. - SpewKeys bool -} - -// Config is the active configuration of the top-level functions. -// The configuration can be changed by modifying the contents of spew.Config. -var Config = ConfigState{Indent: " "} - -// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the formatted string as a value that satisfies error. See NewFormatter -// for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Errorf(format string, a ...interface{}) (err error) { - return fmt.Errorf(format, c.convertArgs(a)...) -} - -// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprint(w, c.convertArgs(a)...) -} - -// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - return fmt.Fprintf(w, format, c.convertArgs(a)...) -} - -// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it -// passed with a Formatter interface returned by c.NewFormatter. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprintln(w, c.convertArgs(a)...) -} - -// Print is a wrapper for fmt.Print that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Print(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Print(a ...interface{}) (n int, err error) { - return fmt.Print(c.convertArgs(a)...) -} - -// Printf is a wrapper for fmt.Printf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) { - return fmt.Printf(format, c.convertArgs(a)...) -} - -// Println is a wrapper for fmt.Println that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Println(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Println(a ...interface{}) (n int, err error) { - return fmt.Println(c.convertArgs(a)...) -} - -// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprint(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Sprint(a ...interface{}) string { - return fmt.Sprint(c.convertArgs(a)...) -} - -// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Sprintf(format string, a ...interface{}) string { - return fmt.Sprintf(format, c.convertArgs(a)...) -} - -// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it -// were passed with a Formatter interface returned by c.NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Sprintln(a ...interface{}) string { - return fmt.Sprintln(c.convertArgs(a)...) -} - -/* -NewFormatter returns a custom formatter that satisfies the fmt.Formatter -interface. As a result, it integrates cleanly with standard fmt package -printing functions. The formatter is useful for inline printing of smaller data -types similar to the standard %v format specifier. - -The custom formatter only responds to the %v (most compact), %+v (adds pointer -addresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb -combinations. Any other verbs such as %x and %q will be sent to the the -standard fmt package for formatting. In addition, the custom formatter ignores -the width and precision arguments (however they will still work on the format -specifiers not handled by the custom formatter). - -Typically this function shouldn't be called directly. It is much easier to make -use of the custom formatter by calling one of the convenience functions such as -c.Printf, c.Println, or c.Printf. -*/ -func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter { - return newFormatter(c, v) -} - -// Fdump formats and displays the passed arguments to io.Writer w. It formats -// exactly the same as Dump. -func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) { - fdump(c, w, a...) -} - -/* -Dump displays the passed parameters to standard out with newlines, customizable -indentation, and additional debug information such as complete types and all -pointer addresses used to indirect to the final value. It provides the -following features over the built-in printing facilities provided by the fmt -package: - - - Pointers are dereferenced and followed - - Circular data structures are detected and handled properly - - Custom Stringer/error interfaces are optionally invoked, including - on unexported types - - Custom types which only implement the Stringer/error interfaces via - a pointer receiver are optionally invoked when passing non-pointer - variables - - Byte arrays and slices are dumped like the hexdump -C command which - includes offsets, byte values in hex, and ASCII output - -The configuration options are controlled by modifying the public members -of c. See ConfigState for options documentation. - -See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to -get the formatted result as a string. -*/ -func (c *ConfigState) Dump(a ...interface{}) { - fdump(c, os.Stdout, a...) -} - -// Sdump returns a string with the passed arguments formatted exactly the same -// as Dump. -func (c *ConfigState) Sdump(a ...interface{}) string { - var buf bytes.Buffer - fdump(c, &buf, a...) - return buf.String() -} - -// convertArgs accepts a slice of arguments and returns a slice of the same -// length with each argument converted to a spew Formatter interface using -// the ConfigState associated with s. -func (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) { - formatters = make([]interface{}, len(args)) - for index, arg := range args { - formatters[index] = newFormatter(c, arg) - } - return formatters -} - -// NewDefaultConfig returns a ConfigState with the following default settings. -// -// Indent: " " -// MaxDepth: 0 -// DisableMethods: false -// DisablePointerMethods: false -// ContinueOnMethod: false -// SortKeys: false -func NewDefaultConfig() *ConfigState { - return &ConfigState{Indent: " "} -} diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/doc.go b/backend/vendor/github.com/davecgh/go-spew/spew/doc.go deleted file mode 100644 index 722e9aa7..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/doc.go +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* -Package spew implements a deep pretty printer for Go data structures to aid in -debugging. - -A quick overview of the additional features spew provides over the built-in -printing facilities for Go data types are as follows: - - - Pointers are dereferenced and followed - - Circular data structures are detected and handled properly - - Custom Stringer/error interfaces are optionally invoked, including - on unexported types - - Custom types which only implement the Stringer/error interfaces via - a pointer receiver are optionally invoked when passing non-pointer - variables - - Byte arrays and slices are dumped like the hexdump -C command which - includes offsets, byte values in hex, and ASCII output (only when using - Dump style) - -There are two different approaches spew allows for dumping Go data structures: - - - Dump style which prints with newlines, customizable indentation, - and additional debug information such as types and all pointer addresses - used to indirect to the final value - - A custom Formatter interface that integrates cleanly with the standard fmt - package and replaces %v, %+v, %#v, and %#+v to provide inline printing - similar to the default %v while providing the additional functionality - outlined above and passing unsupported format verbs such as %x and %q - along to fmt - -# Quick Start - -This section demonstrates how to quickly get started with spew. See the -sections below for further details on formatting and configuration options. - -To dump a variable with full newlines, indentation, type, and pointer -information use Dump, Fdump, or Sdump: - - spew.Dump(myVar1, myVar2, ...) - spew.Fdump(someWriter, myVar1, myVar2, ...) - str := spew.Sdump(myVar1, myVar2, ...) - -Alternatively, if you would prefer to use format strings with a compacted inline -printing style, use the convenience wrappers Printf, Fprintf, etc with -%v (most compact), %+v (adds pointer addresses), %#v (adds types), or -%#+v (adds types and pointer addresses): - - spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - -# Configuration Options - -Configuration of spew is handled by fields in the ConfigState type. For -convenience, all of the top-level functions use a global state available -via the spew.Config global. - -It is also possible to create a ConfigState instance that provides methods -equivalent to the top-level functions. This allows concurrent configuration -options. See the ConfigState documentation for more details. - -The following configuration options are available: - - - Indent - String to use for each indentation level for Dump functions. - It is a single space by default. A popular alternative is "\t". - - - MaxDepth - Maximum number of levels to descend into nested data structures. - There is no limit by default. - - - DisableMethods - Disables invocation of error and Stringer interface methods. - Method invocation is enabled by default. - - - DisablePointerMethods - Disables invocation of error and Stringer interface methods on types - which only accept pointer receivers from non-pointer variables. - Pointer method invocation is enabled by default. - - - DisablePointerAddresses - DisablePointerAddresses specifies whether to disable the printing of - pointer addresses. This is useful when diffing data structures in tests. - - - DisableCapacities - DisableCapacities specifies whether to disable the printing of - capacities for arrays, slices, maps and channels. This is useful when - diffing data structures in tests. - - - ContinueOnMethod - Enables recursion into types after invoking error and Stringer interface - methods. Recursion after method invocation is disabled by default. - - - SortKeys - Specifies map keys should be sorted before being printed. Use - this to have a more deterministic, diffable output. Note that - only native types (bool, int, uint, floats, uintptr and string) - and types which implement error or Stringer interfaces are - supported with other types sorted according to the - reflect.Value.String() output which guarantees display - stability. Natural map order is used by default. - - - SpewKeys - Specifies that, as a last resort attempt, map keys should be - spewed to strings and sorted by those strings. This is only - considered if SortKeys is true. - -# Dump Usage - -Simply call spew.Dump with a list of variables you want to dump: - - spew.Dump(myVar1, myVar2, ...) - -You may also call spew.Fdump if you would prefer to output to an arbitrary -io.Writer. For example, to dump to standard error: - - spew.Fdump(os.Stderr, myVar1, myVar2, ...) - -A third option is to call spew.Sdump to get the formatted output as a string: - - str := spew.Sdump(myVar1, myVar2, ...) - -# Sample Dump Output - -See the Dump example for details on the setup of the types and variables being -shown here. - - (main.Foo) { - unexportedField: (*main.Bar)(0xf84002e210)({ - flag: (main.Flag) flagTwo, - data: (uintptr) - }), - ExportedField: (map[interface {}]interface {}) (len=1) { - (string) (len=3) "one": (bool) true - } - } - -Byte (and uint8) arrays and slices are displayed uniquely like the hexdump -C -command as shown. - - ([]uint8) (len=32 cap=32) { - 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | - 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| - 00000020 31 32 |12| - } - -# Custom Formatter - -Spew provides a custom formatter that implements the fmt.Formatter interface -so that it integrates cleanly with standard fmt package printing functions. The -formatter is useful for inline printing of smaller data types similar to the -standard %v format specifier. - -The custom formatter only responds to the %v (most compact), %+v (adds pointer -addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb -combinations. Any other verbs such as %x and %q will be sent to the the -standard fmt package for formatting. In addition, the custom formatter ignores -the width and precision arguments (however they will still work on the format -specifiers not handled by the custom formatter). - -# Custom Formatter Usage - -The simplest way to make use of the spew custom formatter is to call one of the -convenience functions such as spew.Printf, spew.Println, or spew.Printf. The -functions have syntax you are most likely already familiar with: - - spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - spew.Println(myVar, myVar2) - spew.Fprintf(os.Stderr, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Fprintf(os.Stderr, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - -See the Index for the full list convenience functions. - -# Sample Formatter Output - -Double pointer to a uint8: - - %v: <**>5 - %+v: <**>(0xf8400420d0->0xf8400420c8)5 - %#v: (**uint8)5 - %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5 - -Pointer to circular struct with a uint8 field and a pointer to itself: - - %v: <*>{1 <*>} - %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)} - %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)} - %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)} - -See the Printf example for details on the setup of variables being shown -here. - -# Errors - -Since it is possible for custom Stringer/error interfaces to panic, spew -detects them and handles them internally by printing the panic information -inline with the output. Since spew is intended to provide deep pretty printing -capabilities on structures, it intentionally does not return any errors. -*/ -package spew diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/dump.go b/backend/vendor/github.com/davecgh/go-spew/spew/dump.go deleted file mode 100644 index 8323041a..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/dump.go +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "encoding/hex" - "fmt" - "io" - "os" - "reflect" - "regexp" - "strconv" - "strings" -) - -var ( - // uint8Type is a reflect.Type representing a uint8. It is used to - // convert cgo types to uint8 slices for hexdumping. - uint8Type = reflect.TypeOf(uint8(0)) - - // cCharRE is a regular expression that matches a cgo char. - // It is used to detect character arrays to hexdump them. - cCharRE = regexp.MustCompile(`^.*\._Ctype_char$`) - - // cUnsignedCharRE is a regular expression that matches a cgo unsigned - // char. It is used to detect unsigned character arrays to hexdump - // them. - cUnsignedCharRE = regexp.MustCompile(`^.*\._Ctype_unsignedchar$`) - - // cUint8tCharRE is a regular expression that matches a cgo uint8_t. - // It is used to detect uint8_t arrays to hexdump them. - cUint8tCharRE = regexp.MustCompile(`^.*\._Ctype_uint8_t$`) -) - -// dumpState contains information about the state of a dump operation. -type dumpState struct { - w io.Writer - depth int - pointers map[uintptr]int - ignoreNextType bool - ignoreNextIndent bool - cs *ConfigState -} - -// indent performs indentation according to the depth level and cs.Indent -// option. -func (d *dumpState) indent() { - if d.ignoreNextIndent { - d.ignoreNextIndent = false - return - } - d.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth)) -} - -// unpackValue returns values inside of non-nil interfaces when possible. -// This is useful for data types like structs, arrays, slices, and maps which -// can contain varying types packed inside an interface. -func (d *dumpState) unpackValue(v reflect.Value) reflect.Value { - if v.Kind() == reflect.Interface && !v.IsNil() { - v = v.Elem() - } - return v -} - -// dumpPtr handles formatting of pointers by indirecting them as necessary. -func (d *dumpState) dumpPtr(v reflect.Value) { - // Remove pointers at or below the current depth from map used to detect - // circular refs. - for k, depth := range d.pointers { - if depth >= d.depth { - delete(d.pointers, k) - } - } - - // Keep list of all dereferenced pointers to show later. - pointerChain := make([]uintptr, 0) - - // Figure out how many levels of indirection there are by dereferencing - // pointers and unpacking interfaces down the chain while detecting circular - // references. - nilFound := false - cycleFound := false - indirects := 0 - ve := v - for ve.Kind() == reflect.Ptr { - if ve.IsNil() { - nilFound = true - break - } - indirects++ - addr := ve.Pointer() - pointerChain = append(pointerChain, addr) - if pd, ok := d.pointers[addr]; ok && pd < d.depth { - cycleFound = true - indirects-- - break - } - d.pointers[addr] = d.depth - - ve = ve.Elem() - if ve.Kind() == reflect.Interface { - if ve.IsNil() { - nilFound = true - break - } - ve = ve.Elem() - } - } - - // Display type information. - d.w.Write(openParenBytes) - d.w.Write(bytes.Repeat(asteriskBytes, indirects)) - d.w.Write([]byte(ve.Type().String())) - d.w.Write(closeParenBytes) - - // Display pointer information. - if !d.cs.DisablePointerAddresses && len(pointerChain) > 0 { - d.w.Write(openParenBytes) - for i, addr := range pointerChain { - if i > 0 { - d.w.Write(pointerChainBytes) - } - printHexPtr(d.w, addr) - } - d.w.Write(closeParenBytes) - } - - // Display dereferenced value. - d.w.Write(openParenBytes) - switch { - case nilFound: - d.w.Write(nilAngleBytes) - - case cycleFound: - d.w.Write(circularBytes) - - default: - d.ignoreNextType = true - d.dump(ve) - } - d.w.Write(closeParenBytes) -} - -// dumpSlice handles formatting of arrays and slices. Byte (uint8 under -// reflection) arrays and slices are dumped in hexdump -C fashion. -func (d *dumpState) dumpSlice(v reflect.Value) { - // Determine whether this type should be hex dumped or not. Also, - // for types which should be hexdumped, try to use the underlying data - // first, then fall back to trying to convert them to a uint8 slice. - var buf []uint8 - doConvert := false - doHexDump := false - numEntries := v.Len() - if numEntries > 0 { - vt := v.Index(0).Type() - vts := vt.String() - switch { - // C types that need to be converted. - case cCharRE.MatchString(vts): - fallthrough - case cUnsignedCharRE.MatchString(vts): - fallthrough - case cUint8tCharRE.MatchString(vts): - doConvert = true - - // Try to use existing uint8 slices and fall back to converting - // and copying if that fails. - case vt.Kind() == reflect.Uint8: - // We need an addressable interface to convert the type - // to a byte slice. However, the reflect package won't - // give us an interface on certain things like - // unexported struct fields in order to enforce - // visibility rules. We use unsafe, when available, to - // bypass these restrictions since this package does not - // mutate the values. - vs := v - if !vs.CanInterface() || !vs.CanAddr() { - vs = unsafeReflectValue(vs) - } - if !UnsafeDisabled { - vs = vs.Slice(0, numEntries) - - // Use the existing uint8 slice if it can be - // type asserted. - iface := vs.Interface() - if slice, ok := iface.([]uint8); ok { - buf = slice - doHexDump = true - break - } - } - - // The underlying data needs to be converted if it can't - // be type asserted to a uint8 slice. - doConvert = true - } - - // Copy and convert the underlying type if needed. - if doConvert && vt.ConvertibleTo(uint8Type) { - // Convert and copy each element into a uint8 byte - // slice. - buf = make([]uint8, numEntries) - for i := 0; i < numEntries; i++ { - vv := v.Index(i) - buf[i] = uint8(vv.Convert(uint8Type).Uint()) - } - doHexDump = true - } - } - - // Hexdump the entire slice as needed. - if doHexDump { - indent := strings.Repeat(d.cs.Indent, d.depth) - str := indent + hex.Dump(buf) - str = strings.Replace(str, "\n", "\n"+indent, -1) - str = strings.TrimRight(str, d.cs.Indent) - d.w.Write([]byte(str)) - return - } - - // Recursively call dump for each item. - for i := 0; i < numEntries; i++ { - d.dump(d.unpackValue(v.Index(i))) - if i < (numEntries - 1) { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } -} - -// dump is the main workhorse for dumping a value. It uses the passed reflect -// value to figure out what kind of object we are dealing with and formats it -// appropriately. It is a recursive function, however circular data structures -// are detected and handled properly. -func (d *dumpState) dump(v reflect.Value) { - // Handle invalid reflect values immediately. - kind := v.Kind() - if kind == reflect.Invalid { - d.w.Write(invalidAngleBytes) - return - } - - // Handle pointers specially. - if kind == reflect.Ptr { - d.indent() - d.dumpPtr(v) - return - } - - // Print type information unless already handled elsewhere. - if !d.ignoreNextType { - d.indent() - d.w.Write(openParenBytes) - d.w.Write([]byte(v.Type().String())) - d.w.Write(closeParenBytes) - d.w.Write(spaceBytes) - } - d.ignoreNextType = false - - // Display length and capacity if the built-in len and cap functions - // work with the value's kind and the len/cap itself is non-zero. - valueLen, valueCap := 0, 0 - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.Chan: - valueLen, valueCap = v.Len(), v.Cap() - case reflect.Map, reflect.String: - valueLen = v.Len() - } - if valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 { - d.w.Write(openParenBytes) - if valueLen != 0 { - d.w.Write(lenEqualsBytes) - printInt(d.w, int64(valueLen), 10) - } - if !d.cs.DisableCapacities && valueCap != 0 { - if valueLen != 0 { - d.w.Write(spaceBytes) - } - d.w.Write(capEqualsBytes) - printInt(d.w, int64(valueCap), 10) - } - d.w.Write(closeParenBytes) - d.w.Write(spaceBytes) - } - - // Call Stringer/error interfaces if they exist and the handle methods flag - // is enabled - if !d.cs.DisableMethods { - if (kind != reflect.Invalid) && (kind != reflect.Interface) { - if handled := handleMethods(d.cs, d.w, v); handled { - return - } - } - } - - switch kind { - case reflect.Invalid: - // Do nothing. We should never get here since invalid has already - // been handled above. - - case reflect.Bool: - printBool(d.w, v.Bool()) - - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - printInt(d.w, v.Int(), 10) - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - printUint(d.w, v.Uint(), 10) - - case reflect.Float32: - printFloat(d.w, v.Float(), 32) - - case reflect.Float64: - printFloat(d.w, v.Float(), 64) - - case reflect.Complex64: - printComplex(d.w, v.Complex(), 32) - - case reflect.Complex128: - printComplex(d.w, v.Complex(), 64) - - case reflect.Slice: - if v.IsNil() { - d.w.Write(nilAngleBytes) - break - } - fallthrough - - case reflect.Array: - d.w.Write(openBraceNewlineBytes) - d.depth++ - if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { - d.indent() - d.w.Write(maxNewlineBytes) - } else { - d.dumpSlice(v) - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.String: - d.w.Write([]byte(strconv.Quote(v.String()))) - - case reflect.Interface: - // The only time we should get here is for nil interfaces due to - // unpackValue calls. - if v.IsNil() { - d.w.Write(nilAngleBytes) - } - - case reflect.Ptr: - // Do nothing. We should never get here since pointers have already - // been handled above. - - case reflect.Map: - // nil maps should be indicated as different than empty maps - if v.IsNil() { - d.w.Write(nilAngleBytes) - break - } - - d.w.Write(openBraceNewlineBytes) - d.depth++ - if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { - d.indent() - d.w.Write(maxNewlineBytes) - } else { - numEntries := v.Len() - keys := v.MapKeys() - if d.cs.SortKeys { - sortValues(keys, d.cs) - } - for i, key := range keys { - d.dump(d.unpackValue(key)) - d.w.Write(colonSpaceBytes) - d.ignoreNextIndent = true - d.dump(d.unpackValue(v.MapIndex(key))) - if i < (numEntries - 1) { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.Struct: - d.w.Write(openBraceNewlineBytes) - d.depth++ - if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { - d.indent() - d.w.Write(maxNewlineBytes) - } else { - vt := v.Type() - numFields := v.NumField() - for i := 0; i < numFields; i++ { - d.indent() - vtf := vt.Field(i) - d.w.Write([]byte(vtf.Name)) - d.w.Write(colonSpaceBytes) - d.ignoreNextIndent = true - d.dump(d.unpackValue(v.Field(i))) - if i < (numFields - 1) { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.Uintptr: - printHexPtr(d.w, uintptr(v.Uint())) - - case reflect.UnsafePointer, reflect.Chan, reflect.Func: - printHexPtr(d.w, v.Pointer()) - - // There were not any other types at the time this code was written, but - // fall back to letting the default fmt package handle it in case any new - // types are added. - default: - if v.CanInterface() { - fmt.Fprintf(d.w, "%v", v.Interface()) - } else { - fmt.Fprintf(d.w, "%v", v.String()) - } - } -} - -// fdump is a helper function to consolidate the logic from the various public -// methods which take varying writers and config states. -func fdump(cs *ConfigState, w io.Writer, a ...interface{}) { - for _, arg := range a { - if arg == nil { - w.Write(interfaceBytes) - w.Write(spaceBytes) - w.Write(nilAngleBytes) - w.Write(newlineBytes) - continue - } - - d := dumpState{w: w, cs: cs} - d.pointers = make(map[uintptr]int) - d.dump(reflect.ValueOf(arg)) - d.w.Write(newlineBytes) - } -} - -// Fdump formats and displays the passed arguments to io.Writer w. It formats -// exactly the same as Dump. -func Fdump(w io.Writer, a ...interface{}) { - fdump(&Config, w, a...) -} - -// Sdump returns a string with the passed arguments formatted exactly the same -// as Dump. -func Sdump(a ...interface{}) string { - var buf bytes.Buffer - fdump(&Config, &buf, a...) - return buf.String() -} - -/* -Dump displays the passed parameters to standard out with newlines, customizable -indentation, and additional debug information such as complete types and all -pointer addresses used to indirect to the final value. It provides the -following features over the built-in printing facilities provided by the fmt -package: - - - Pointers are dereferenced and followed - - Circular data structures are detected and handled properly - - Custom Stringer/error interfaces are optionally invoked, including - on unexported types - - Custom types which only implement the Stringer/error interfaces via - a pointer receiver are optionally invoked when passing non-pointer - variables - - Byte arrays and slices are dumped like the hexdump -C command which - includes offsets, byte values in hex, and ASCII output - -The configuration options are controlled by an exported package global, -spew.Config. See ConfigState for options documentation. - -See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to -get the formatted result as a string. -*/ -func Dump(a ...interface{}) { - fdump(&Config, os.Stdout, a...) -} diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/format.go b/backend/vendor/github.com/davecgh/go-spew/spew/format.go deleted file mode 100644 index b04edb7d..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/format.go +++ /dev/null @@ -1,419 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "fmt" - "reflect" - "strconv" - "strings" -) - -// supportedFlags is a list of all the character flags supported by fmt package. -const supportedFlags = "0-+# " - -// formatState implements the fmt.Formatter interface and contains information -// about the state of a formatting operation. The NewFormatter function can -// be used to get a new Formatter which can be used directly as arguments -// in standard fmt package printing calls. -type formatState struct { - value interface{} - fs fmt.State - depth int - pointers map[uintptr]int - ignoreNextType bool - cs *ConfigState -} - -// buildDefaultFormat recreates the original format string without precision -// and width information to pass in to fmt.Sprintf in the case of an -// unrecognized type. Unless new types are added to the language, this -// function won't ever be called. -func (f *formatState) buildDefaultFormat() (format string) { - buf := bytes.NewBuffer(percentBytes) - - for _, flag := range supportedFlags { - if f.fs.Flag(int(flag)) { - buf.WriteRune(flag) - } - } - - buf.WriteRune('v') - - format = buf.String() - return format -} - -// constructOrigFormat recreates the original format string including precision -// and width information to pass along to the standard fmt package. This allows -// automatic deferral of all format strings this package doesn't support. -func (f *formatState) constructOrigFormat(verb rune) (format string) { - buf := bytes.NewBuffer(percentBytes) - - for _, flag := range supportedFlags { - if f.fs.Flag(int(flag)) { - buf.WriteRune(flag) - } - } - - if width, ok := f.fs.Width(); ok { - buf.WriteString(strconv.Itoa(width)) - } - - if precision, ok := f.fs.Precision(); ok { - buf.Write(precisionBytes) - buf.WriteString(strconv.Itoa(precision)) - } - - buf.WriteRune(verb) - - format = buf.String() - return format -} - -// unpackValue returns values inside of non-nil interfaces when possible and -// ensures that types for values which have been unpacked from an interface -// are displayed when the show types flag is also set. -// This is useful for data types like structs, arrays, slices, and maps which -// can contain varying types packed inside an interface. -func (f *formatState) unpackValue(v reflect.Value) reflect.Value { - if v.Kind() == reflect.Interface { - f.ignoreNextType = false - if !v.IsNil() { - v = v.Elem() - } - } - return v -} - -// formatPtr handles formatting of pointers by indirecting them as necessary. -func (f *formatState) formatPtr(v reflect.Value) { - // Display nil if top level pointer is nil. - showTypes := f.fs.Flag('#') - if v.IsNil() && (!showTypes || f.ignoreNextType) { - f.fs.Write(nilAngleBytes) - return - } - - // Remove pointers at or below the current depth from map used to detect - // circular refs. - for k, depth := range f.pointers { - if depth >= f.depth { - delete(f.pointers, k) - } - } - - // Keep list of all dereferenced pointers to possibly show later. - pointerChain := make([]uintptr, 0) - - // Figure out how many levels of indirection there are by derferencing - // pointers and unpacking interfaces down the chain while detecting circular - // references. - nilFound := false - cycleFound := false - indirects := 0 - ve := v - for ve.Kind() == reflect.Ptr { - if ve.IsNil() { - nilFound = true - break - } - indirects++ - addr := ve.Pointer() - pointerChain = append(pointerChain, addr) - if pd, ok := f.pointers[addr]; ok && pd < f.depth { - cycleFound = true - indirects-- - break - } - f.pointers[addr] = f.depth - - ve = ve.Elem() - if ve.Kind() == reflect.Interface { - if ve.IsNil() { - nilFound = true - break - } - ve = ve.Elem() - } - } - - // Display type or indirection level depending on flags. - if showTypes && !f.ignoreNextType { - f.fs.Write(openParenBytes) - f.fs.Write(bytes.Repeat(asteriskBytes, indirects)) - f.fs.Write([]byte(ve.Type().String())) - f.fs.Write(closeParenBytes) - } else { - if nilFound || cycleFound { - indirects += strings.Count(ve.Type().String(), "*") - } - f.fs.Write(openAngleBytes) - f.fs.Write([]byte(strings.Repeat("*", indirects))) - f.fs.Write(closeAngleBytes) - } - - // Display pointer information depending on flags. - if f.fs.Flag('+') && (len(pointerChain) > 0) { - f.fs.Write(openParenBytes) - for i, addr := range pointerChain { - if i > 0 { - f.fs.Write(pointerChainBytes) - } - printHexPtr(f.fs, addr) - } - f.fs.Write(closeParenBytes) - } - - // Display dereferenced value. - switch { - case nilFound: - f.fs.Write(nilAngleBytes) - - case cycleFound: - f.fs.Write(circularShortBytes) - - default: - f.ignoreNextType = true - f.format(ve) - } -} - -// format is the main workhorse for providing the Formatter interface. It -// uses the passed reflect value to figure out what kind of object we are -// dealing with and formats it appropriately. It is a recursive function, -// however circular data structures are detected and handled properly. -func (f *formatState) format(v reflect.Value) { - // Handle invalid reflect values immediately. - kind := v.Kind() - if kind == reflect.Invalid { - f.fs.Write(invalidAngleBytes) - return - } - - // Handle pointers specially. - if kind == reflect.Ptr { - f.formatPtr(v) - return - } - - // Print type information unless already handled elsewhere. - if !f.ignoreNextType && f.fs.Flag('#') { - f.fs.Write(openParenBytes) - f.fs.Write([]byte(v.Type().String())) - f.fs.Write(closeParenBytes) - } - f.ignoreNextType = false - - // Call Stringer/error interfaces if they exist and the handle methods - // flag is enabled. - if !f.cs.DisableMethods { - if (kind != reflect.Invalid) && (kind != reflect.Interface) { - if handled := handleMethods(f.cs, f.fs, v); handled { - return - } - } - } - - switch kind { - case reflect.Invalid: - // Do nothing. We should never get here since invalid has already - // been handled above. - - case reflect.Bool: - printBool(f.fs, v.Bool()) - - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - printInt(f.fs, v.Int(), 10) - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - printUint(f.fs, v.Uint(), 10) - - case reflect.Float32: - printFloat(f.fs, v.Float(), 32) - - case reflect.Float64: - printFloat(f.fs, v.Float(), 64) - - case reflect.Complex64: - printComplex(f.fs, v.Complex(), 32) - - case reflect.Complex128: - printComplex(f.fs, v.Complex(), 64) - - case reflect.Slice: - if v.IsNil() { - f.fs.Write(nilAngleBytes) - break - } - fallthrough - - case reflect.Array: - f.fs.Write(openBracketBytes) - f.depth++ - if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { - f.fs.Write(maxShortBytes) - } else { - numEntries := v.Len() - for i := 0; i < numEntries; i++ { - if i > 0 { - f.fs.Write(spaceBytes) - } - f.ignoreNextType = true - f.format(f.unpackValue(v.Index(i))) - } - } - f.depth-- - f.fs.Write(closeBracketBytes) - - case reflect.String: - f.fs.Write([]byte(v.String())) - - case reflect.Interface: - // The only time we should get here is for nil interfaces due to - // unpackValue calls. - if v.IsNil() { - f.fs.Write(nilAngleBytes) - } - - case reflect.Ptr: - // Do nothing. We should never get here since pointers have already - // been handled above. - - case reflect.Map: - // nil maps should be indicated as different than empty maps - if v.IsNil() { - f.fs.Write(nilAngleBytes) - break - } - - f.fs.Write(openMapBytes) - f.depth++ - if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { - f.fs.Write(maxShortBytes) - } else { - keys := v.MapKeys() - if f.cs.SortKeys { - sortValues(keys, f.cs) - } - for i, key := range keys { - if i > 0 { - f.fs.Write(spaceBytes) - } - f.ignoreNextType = true - f.format(f.unpackValue(key)) - f.fs.Write(colonBytes) - f.ignoreNextType = true - f.format(f.unpackValue(v.MapIndex(key))) - } - } - f.depth-- - f.fs.Write(closeMapBytes) - - case reflect.Struct: - numFields := v.NumField() - f.fs.Write(openBraceBytes) - f.depth++ - if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { - f.fs.Write(maxShortBytes) - } else { - vt := v.Type() - for i := 0; i < numFields; i++ { - if i > 0 { - f.fs.Write(spaceBytes) - } - vtf := vt.Field(i) - if f.fs.Flag('+') || f.fs.Flag('#') { - f.fs.Write([]byte(vtf.Name)) - f.fs.Write(colonBytes) - } - f.format(f.unpackValue(v.Field(i))) - } - } - f.depth-- - f.fs.Write(closeBraceBytes) - - case reflect.Uintptr: - printHexPtr(f.fs, uintptr(v.Uint())) - - case reflect.UnsafePointer, reflect.Chan, reflect.Func: - printHexPtr(f.fs, v.Pointer()) - - // There were not any other types at the time this code was written, but - // fall back to letting the default fmt package handle it if any get added. - default: - format := f.buildDefaultFormat() - if v.CanInterface() { - fmt.Fprintf(f.fs, format, v.Interface()) - } else { - fmt.Fprintf(f.fs, format, v.String()) - } - } -} - -// Format satisfies the fmt.Formatter interface. See NewFormatter for usage -// details. -func (f *formatState) Format(fs fmt.State, verb rune) { - f.fs = fs - - // Use standard formatting for verbs that are not v. - if verb != 'v' { - format := f.constructOrigFormat(verb) - fmt.Fprintf(fs, format, f.value) - return - } - - if f.value == nil { - if fs.Flag('#') { - fs.Write(interfaceBytes) - } - fs.Write(nilAngleBytes) - return - } - - f.format(reflect.ValueOf(f.value)) -} - -// newFormatter is a helper function to consolidate the logic from the various -// public methods which take varying config states. -func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter { - fs := &formatState{value: v, cs: cs} - fs.pointers = make(map[uintptr]int) - return fs -} - -/* -NewFormatter returns a custom formatter that satisfies the fmt.Formatter -interface. As a result, it integrates cleanly with standard fmt package -printing functions. The formatter is useful for inline printing of smaller data -types similar to the standard %v format specifier. - -The custom formatter only responds to the %v (most compact), %+v (adds pointer -addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb -combinations. Any other verbs such as %x and %q will be sent to the the -standard fmt package for formatting. In addition, the custom formatter ignores -the width and precision arguments (however they will still work on the format -specifiers not handled by the custom formatter). - -Typically this function shouldn't be called directly. It is much easier to make -use of the custom formatter by calling one of the convenience functions such as -Printf, Println, or Fprintf. -*/ -func NewFormatter(v interface{}) fmt.Formatter { - return newFormatter(&Config, v) -} diff --git a/backend/vendor/github.com/davecgh/go-spew/spew/spew.go b/backend/vendor/github.com/davecgh/go-spew/spew/spew.go deleted file mode 100644 index 32c0e338..00000000 --- a/backend/vendor/github.com/davecgh/go-spew/spew/spew.go +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "fmt" - "io" -) - -// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the formatted string as a value that satisfies error. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Errorf(format string, a ...interface{}) (err error) { - return fmt.Errorf(format, convertArgs(a)...) -} - -// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b)) -func Fprint(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprint(w, convertArgs(a)...) -} - -// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - return fmt.Fprintf(w, format, convertArgs(a)...) -} - -// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it -// passed with a default Formatter interface returned by NewFormatter. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b)) -func Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprintln(w, convertArgs(a)...) -} - -// Print is a wrapper for fmt.Print that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b)) -func Print(a ...interface{}) (n int, err error) { - return fmt.Print(convertArgs(a)...) -} - -// Printf is a wrapper for fmt.Printf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Printf(format string, a ...interface{}) (n int, err error) { - return fmt.Printf(format, convertArgs(a)...) -} - -// Println is a wrapper for fmt.Println that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b)) -func Println(a ...interface{}) (n int, err error) { - return fmt.Println(convertArgs(a)...) -} - -// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b)) -func Sprint(a ...interface{}) string { - return fmt.Sprint(convertArgs(a)...) -} - -// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Sprintf(format string, a ...interface{}) string { - return fmt.Sprintf(format, convertArgs(a)...) -} - -// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it -// were passed with a default Formatter interface returned by NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b)) -func Sprintln(a ...interface{}) string { - return fmt.Sprintln(convertArgs(a)...) -} - -// convertArgs accepts a slice of arguments and returns a slice of the same -// length with each argument converted to a default spew Formatter interface. -func convertArgs(args []interface{}) (formatters []interface{}) { - formatters = make([]interface{}, len(args)) - for index, arg := range args { - formatters[index] = NewFormatter(arg) - } - return formatters -} diff --git a/backend/vendor/github.com/disintegration/imaging/.travis.yml b/backend/vendor/github.com/disintegration/imaging/.travis.yml deleted file mode 100644 index 7ae5e4b2..00000000 --- a/backend/vendor/github.com/disintegration/imaging/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: go -go: - - "1.10.x" - - "1.11.x" - - "1.12.x" - -before_install: - - go get github.com/mattn/goveralls - -script: - - go test -v -race -cover - - $GOPATH/bin/goveralls -service=travis-ci diff --git a/backend/vendor/github.com/disintegration/imaging/LICENSE b/backend/vendor/github.com/disintegration/imaging/LICENSE deleted file mode 100644 index a4144a9d..00000000 --- a/backend/vendor/github.com/disintegration/imaging/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012 Grigory Dryapak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/disintegration/imaging/README.md b/backend/vendor/github.com/disintegration/imaging/README.md deleted file mode 100644 index a1fd764d..00000000 --- a/backend/vendor/github.com/disintegration/imaging/README.md +++ /dev/null @@ -1,226 +0,0 @@ -# Imaging - -[![GoDoc](https://godoc.org/github.com/disintegration/imaging?status.svg)](https://godoc.org/github.com/disintegration/imaging) -[![Build Status](https://travis-ci.org/disintegration/imaging.svg?branch=master)](https://travis-ci.org/disintegration/imaging) -[![Coverage Status](https://coveralls.io/repos/github/disintegration/imaging/badge.svg?branch=master&service=github)](https://coveralls.io/github/disintegration/imaging?branch=master) -[![Go Report Card](https://goreportcard.com/badge/github.com/disintegration/imaging)](https://goreportcard.com/report/github.com/disintegration/imaging) - -Package imaging provides basic image processing functions (resize, rotate, crop, brightness/contrast adjustments, etc.). - -All the image processing functions provided by the package accept any image type that implements `image.Image` interface -as an input, and return a new image of `*image.NRGBA` type (32bit RGBA colors, non-premultiplied alpha). - -## Installation - - go get -u github.com/disintegration/imaging - -## Documentation - -http://godoc.org/github.com/disintegration/imaging - -## Usage examples - -A few usage examples can be found below. See the documentation for the full list of supported functions. - -### Image resizing - -```go -// Resize srcImage to size = 128x128px using the Lanczos filter. -dstImage128 := imaging.Resize(srcImage, 128, 128, imaging.Lanczos) - -// Resize srcImage to width = 800px preserving the aspect ratio. -dstImage800 := imaging.Resize(srcImage, 800, 0, imaging.Lanczos) - -// Scale down srcImage to fit the 800x600px bounding box. -dstImageFit := imaging.Fit(srcImage, 800, 600, imaging.Lanczos) - -// Resize and crop the srcImage to fill the 100x100px area. -dstImageFill := imaging.Fill(srcImage, 100, 100, imaging.Center, imaging.Lanczos) -``` - -Imaging supports image resizing using various resampling filters. The most notable ones: -- `Lanczos` - A high-quality resampling filter for photographic images yielding sharp results. -- `CatmullRom` - A sharp cubic filter that is faster than Lanczos filter while providing similar results. -- `MitchellNetravali` - A cubic filter that produces smoother results with less ringing artifacts than CatmullRom. -- `Linear` - Bilinear resampling filter, produces smooth output. Faster than cubic filters. -- `Box` - Simple and fast averaging filter appropriate for downscaling. When upscaling it's similar to NearestNeighbor. -- `NearestNeighbor` - Fastest resampling filter, no antialiasing. - -The full list of supported filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine. Custom filters can be created using ResampleFilter struct. - -**Resampling filters comparison** - -Original image: - -![srcImage](testdata/branches.png) - -The same image resized from 600x400px to 150x100px using different resampling filters. -From faster (lower quality) to slower (higher quality): - -Filter | Resize result ---------------------------|--------------------------------------------- -`imaging.NearestNeighbor` | ![dstImage](testdata/out_resize_nearest.png) -`imaging.Linear` | ![dstImage](testdata/out_resize_linear.png) -`imaging.CatmullRom` | ![dstImage](testdata/out_resize_catrom.png) -`imaging.Lanczos` | ![dstImage](testdata/out_resize_lanczos.png) - - -### Gaussian Blur - -```go -dstImage := imaging.Blur(srcImage, 0.5) -``` - -Sigma parameter allows to control the strength of the blurring effect. - -Original image | Sigma = 0.5 | Sigma = 1.5 ------------------------------------|----------------------------------------|--------------------------------------- -![srcImage](testdata/flowers_small.png) | ![dstImage](testdata/out_blur_0.5.png) | ![dstImage](testdata/out_blur_1.5.png) - -### Sharpening - -```go -dstImage := imaging.Sharpen(srcImage, 0.5) -``` - -`Sharpen` uses gaussian function internally. Sigma parameter allows to control the strength of the sharpening effect. - -Original image | Sigma = 0.5 | Sigma = 1.5 ------------------------------------|-------------------------------------------|------------------------------------------ -![srcImage](testdata/flowers_small.png) | ![dstImage](testdata/out_sharpen_0.5.png) | ![dstImage](testdata/out_sharpen_1.5.png) - -### Gamma correction - -```go -dstImage := imaging.AdjustGamma(srcImage, 0.75) -``` - -Original image | Gamma = 0.75 | Gamma = 1.25 ------------------------------------|------------------------------------------|----------------------------------------- -![srcImage](testdata/flowers_small.png) | ![dstImage](testdata/out_gamma_0.75.png) | ![dstImage](testdata/out_gamma_1.25.png) - -### Contrast adjustment - -```go -dstImage := imaging.AdjustContrast(srcImage, 20) -``` - -Original image | Contrast = 15 | Contrast = -15 ------------------------------------|--------------------------------------------|------------------------------------------- -![srcImage](testdata/flowers_small.png) | ![dstImage](testdata/out_contrast_p15.png) | ![dstImage](testdata/out_contrast_m15.png) - -### Brightness adjustment - -```go -dstImage := imaging.AdjustBrightness(srcImage, 20) -``` - -Original image | Brightness = 10 | Brightness = -10 ------------------------------------|----------------------------------------------|--------------------------------------------- -![srcImage](testdata/flowers_small.png) | ![dstImage](testdata/out_brightness_p10.png) | ![dstImage](testdata/out_brightness_m10.png) - -### Saturation adjustment - -```go -dstImage := imaging.AdjustSaturation(srcImage, 20) -``` - -Original image | Saturation = 30 | Saturation = -30 ------------------------------------|----------------------------------------------|--------------------------------------------- -![srcImage](testdata/flowers_small.png) | ![dstImage](testdata/out_saturation_p30.png) | ![dstImage](testdata/out_saturation_m30.png) - -## FAQ - -### Incorrect image orientation after processing (e.g. an image appears rotated after resizing) - -Most probably, the given image contains the EXIF orientation tag. -The stadard `image/*` packages do not support loading and saving -this kind of information. To fix the issue, try opening images with -the `AutoOrientation` decode option. If this option is set to `true`, -the image orientation is changed after decoding, according to the -orientation tag (if present). Here's the example: - -```go -img, err := imaging.Open("test.jpg", imaging.AutoOrientation(true)) -``` - -### What's the difference between `imaging` and `gift` packages? - -[imaging](https://github.com/disintegration/imaging) -is designed to be a lightweight and simple image manipulation package. -It provides basic image processing functions and a few helper functions -such as `Open` and `Save`. It consistently returns *image.NRGBA image -type (8 bits per channel, RGBA). - -[gift](https://github.com/disintegration/gift) -supports more advanced image processing, for example, sRGB/Linear color -space conversions. It also supports different output image types -(e.g. 16 bits per channel) and provides easy-to-use API for chaining -multiple processing steps together. - -## Example code - -```go -package main - -import ( - "image" - "image/color" - "log" - - "github.com/disintegration/imaging" -) - -func main() { - // Open a test image. - src, err := imaging.Open("testdata/flowers.png") - if err != nil { - log.Fatalf("failed to open image: %v", err) - } - - // Crop the original image to 300x300px size using the center anchor. - src = imaging.CropAnchor(src, 300, 300, imaging.Center) - - // Resize the cropped image to width = 200px preserving the aspect ratio. - src = imaging.Resize(src, 200, 0, imaging.Lanczos) - - // Create a blurred version of the image. - img1 := imaging.Blur(src, 5) - - // Create a grayscale version of the image with higher contrast and sharpness. - img2 := imaging.Grayscale(src) - img2 = imaging.AdjustContrast(img2, 20) - img2 = imaging.Sharpen(img2, 2) - - // Create an inverted version of the image. - img3 := imaging.Invert(src) - - // Create an embossed version of the image using a convolution filter. - img4 := imaging.Convolve3x3( - src, - [9]float64{ - -1, -1, 0, - -1, 1, 1, - 0, 1, 1, - }, - nil, - ) - - // Create a new image and paste the four produced images into it. - dst := imaging.New(400, 400, color.NRGBA{0, 0, 0, 0}) - dst = imaging.Paste(dst, img1, image.Pt(0, 0)) - dst = imaging.Paste(dst, img2, image.Pt(0, 200)) - dst = imaging.Paste(dst, img3, image.Pt(200, 0)) - dst = imaging.Paste(dst, img4, image.Pt(200, 200)) - - // Save the resulting image as JPEG. - err = imaging.Save(dst, "testdata/out_example.jpg") - if err != nil { - log.Fatalf("failed to save image: %v", err) - } -} -``` - -Output: - -![dstImage](testdata/out_example.jpg) diff --git a/backend/vendor/github.com/disintegration/imaging/adjust.go b/backend/vendor/github.com/disintegration/imaging/adjust.go deleted file mode 100644 index 243fc7d9..00000000 --- a/backend/vendor/github.com/disintegration/imaging/adjust.go +++ /dev/null @@ -1,248 +0,0 @@ -package imaging - -import ( - "image" - "image/color" - "math" -) - -// Grayscale produces a grayscale version of the image. -func Grayscale(img image.Image) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - parallel(0, src.h, func(ys <-chan int) { - for y := range ys { - i := y * dst.Stride - src.scan(0, y, src.w, y+1, dst.Pix[i:i+src.w*4]) - for x := 0; x < src.w; x++ { - d := dst.Pix[i : i+3 : i+3] - r := d[0] - g := d[1] - b := d[2] - f := 0.299*float64(r) + 0.587*float64(g) + 0.114*float64(b) - y := uint8(f + 0.5) - d[0] = y - d[1] = y - d[2] = y - i += 4 - } - } - }) - return dst -} - -// Invert produces an inverted (negated) version of the image. -func Invert(img image.Image) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - parallel(0, src.h, func(ys <-chan int) { - for y := range ys { - i := y * dst.Stride - src.scan(0, y, src.w, y+1, dst.Pix[i:i+src.w*4]) - for x := 0; x < src.w; x++ { - d := dst.Pix[i : i+3 : i+3] - d[0] = 255 - d[0] - d[1] = 255 - d[1] - d[2] = 255 - d[2] - i += 4 - } - } - }) - return dst -} - -// AdjustSaturation changes the saturation of the image using the percentage parameter and returns the adjusted image. -// The percentage must be in the range (-100, 100). -// The percentage = 0 gives the original image. -// The percentage = 100 gives the image with the saturation value doubled for each pixel. -// The percentage = -100 gives the image with the saturation value zeroed for each pixel (grayscale). -// -// Examples: -// -// dstImage = imaging.AdjustSaturation(srcImage, 25) // Increase image saturation by 25%. -// dstImage = imaging.AdjustSaturation(srcImage, -10) // Decrease image saturation by 10%. -func AdjustSaturation(img image.Image, percentage float64) *image.NRGBA { - percentage = math.Min(math.Max(percentage, -100), 100) - multiplier := 1 + percentage/100 - - return AdjustFunc(img, func(c color.NRGBA) color.NRGBA { - h, s, l := rgbToHSL(c.R, c.G, c.B) - s *= multiplier - if s > 1 { - s = 1 - } - r, g, b := hslToRGB(h, s, l) - return color.NRGBA{r, g, b, c.A} - }) -} - -// AdjustContrast changes the contrast of the image using the percentage parameter and returns the adjusted image. -// The percentage must be in range (-100, 100). The percentage = 0 gives the original image. -// The percentage = -100 gives solid gray image. -// -// Examples: -// -// dstImage = imaging.AdjustContrast(srcImage, -10) // Decrease image contrast by 10%. -// dstImage = imaging.AdjustContrast(srcImage, 20) // Increase image contrast by 20%. -func AdjustContrast(img image.Image, percentage float64) *image.NRGBA { - percentage = math.Min(math.Max(percentage, -100.0), 100.0) - lut := make([]uint8, 256) - - v := (100.0 + percentage) / 100.0 - for i := 0; i < 256; i++ { - switch { - case 0 <= v && v <= 1: - lut[i] = clamp((0.5 + (float64(i)/255.0-0.5)*v) * 255.0) - case 1 < v && v < 2: - lut[i] = clamp((0.5 + (float64(i)/255.0-0.5)*(1/(2.0-v))) * 255.0) - default: - lut[i] = uint8(float64(i)/255.0+0.5) * 255 - } - } - - return adjustLUT(img, lut) -} - -// AdjustBrightness changes the brightness of the image using the percentage parameter and returns the adjusted image. -// The percentage must be in range (-100, 100). The percentage = 0 gives the original image. -// The percentage = -100 gives solid black image. The percentage = 100 gives solid white image. -// -// Examples: -// -// dstImage = imaging.AdjustBrightness(srcImage, -15) // Decrease image brightness by 15%. -// dstImage = imaging.AdjustBrightness(srcImage, 10) // Increase image brightness by 10%. -func AdjustBrightness(img image.Image, percentage float64) *image.NRGBA { - percentage = math.Min(math.Max(percentage, -100.0), 100.0) - lut := make([]uint8, 256) - - shift := 255.0 * percentage / 100.0 - for i := 0; i < 256; i++ { - lut[i] = clamp(float64(i) + shift) - } - - return adjustLUT(img, lut) -} - -// AdjustGamma performs a gamma correction on the image and returns the adjusted image. -// Gamma parameter must be positive. Gamma = 1.0 gives the original image. -// Gamma less than 1.0 darkens the image and gamma greater than 1.0 lightens it. -// -// Example: -// -// dstImage = imaging.AdjustGamma(srcImage, 0.7) -func AdjustGamma(img image.Image, gamma float64) *image.NRGBA { - e := 1.0 / math.Max(gamma, 0.0001) - lut := make([]uint8, 256) - - for i := 0; i < 256; i++ { - lut[i] = clamp(math.Pow(float64(i)/255.0, e) * 255.0) - } - - return adjustLUT(img, lut) -} - -// AdjustSigmoid changes the contrast of the image using a sigmoidal function and returns the adjusted image. -// It's a non-linear contrast change useful for photo adjustments as it preserves highlight and shadow detail. -// The midpoint parameter is the midpoint of contrast that must be between 0 and 1, typically 0.5. -// The factor parameter indicates how much to increase or decrease the contrast, typically in range (-10, 10). -// If the factor parameter is positive the image contrast is increased otherwise the contrast is decreased. -// -// Examples: -// -// dstImage = imaging.AdjustSigmoid(srcImage, 0.5, 3.0) // Increase the contrast. -// dstImage = imaging.AdjustSigmoid(srcImage, 0.5, -3.0) // Decrease the contrast. -func AdjustSigmoid(img image.Image, midpoint, factor float64) *image.NRGBA { - if factor == 0 { - return Clone(img) - } - - lut := make([]uint8, 256) - a := math.Min(math.Max(midpoint, 0.0), 1.0) - b := math.Abs(factor) - sig0 := sigmoid(a, b, 0) - sig1 := sigmoid(a, b, 1) - e := 1.0e-6 - - if factor > 0 { - for i := 0; i < 256; i++ { - x := float64(i) / 255.0 - sigX := sigmoid(a, b, x) - f := (sigX - sig0) / (sig1 - sig0) - lut[i] = clamp(f * 255.0) - } - } else { - for i := 0; i < 256; i++ { - x := float64(i) / 255.0 - arg := math.Min(math.Max((sig1-sig0)*x+sig0, e), 1.0-e) - f := a - math.Log(1.0/arg-1.0)/b - lut[i] = clamp(f * 255.0) - } - } - - return adjustLUT(img, lut) -} - -func sigmoid(a, b, x float64) float64 { - return 1 / (1 + math.Exp(b*(a-x))) -} - -// adjustLUT applies the given lookup table to the colors of the image. -func adjustLUT(img image.Image, lut []uint8) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - lut = lut[0:256] - parallel(0, src.h, func(ys <-chan int) { - for y := range ys { - i := y * dst.Stride - src.scan(0, y, src.w, y+1, dst.Pix[i:i+src.w*4]) - for x := 0; x < src.w; x++ { - d := dst.Pix[i : i+3 : i+3] - d[0] = lut[d[0]] - d[1] = lut[d[1]] - d[2] = lut[d[2]] - i += 4 - } - } - }) - return dst -} - -// AdjustFunc applies the fn function to each pixel of the img image and returns the adjusted image. -// -// Example: -// -// dstImage = imaging.AdjustFunc( -// srcImage, -// func(c color.NRGBA) color.NRGBA { -// // Shift the red channel by 16. -// r := int(c.R) + 16 -// if r > 255 { -// r = 255 -// } -// return color.NRGBA{uint8(r), c.G, c.B, c.A} -// } -// ) -func AdjustFunc(img image.Image, fn func(c color.NRGBA) color.NRGBA) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - parallel(0, src.h, func(ys <-chan int) { - for y := range ys { - i := y * dst.Stride - src.scan(0, y, src.w, y+1, dst.Pix[i:i+src.w*4]) - for x := 0; x < src.w; x++ { - d := dst.Pix[i : i+4 : i+4] - r := d[0] - g := d[1] - b := d[2] - a := d[3] - c := fn(color.NRGBA{r, g, b, a}) - d[0] = c.R - d[1] = c.G - d[2] = c.B - d[3] = c.A - i += 4 - } - } - }) - return dst -} diff --git a/backend/vendor/github.com/disintegration/imaging/convolution.go b/backend/vendor/github.com/disintegration/imaging/convolution.go deleted file mode 100644 index 11eddc16..00000000 --- a/backend/vendor/github.com/disintegration/imaging/convolution.go +++ /dev/null @@ -1,148 +0,0 @@ -package imaging - -import ( - "image" -) - -// ConvolveOptions are convolution parameters. -type ConvolveOptions struct { - // If Normalize is true the kernel is normalized before convolution. - Normalize bool - - // If Abs is true the absolute value of each color channel is taken after convolution. - Abs bool - - // Bias is added to each color channel value after convolution. - Bias int -} - -// Convolve3x3 convolves the image with the specified 3x3 convolution kernel. -// Default parameters are used if a nil *ConvolveOptions is passed. -func Convolve3x3(img image.Image, kernel [9]float64, options *ConvolveOptions) *image.NRGBA { - return convolve(img, kernel[:], options) -} - -// Convolve5x5 convolves the image with the specified 5x5 convolution kernel. -// Default parameters are used if a nil *ConvolveOptions is passed. -func Convolve5x5(img image.Image, kernel [25]float64, options *ConvolveOptions) *image.NRGBA { - return convolve(img, kernel[:], options) -} - -func convolve(img image.Image, kernel []float64, options *ConvolveOptions) *image.NRGBA { - src := toNRGBA(img) - w := src.Bounds().Max.X - h := src.Bounds().Max.Y - dst := image.NewNRGBA(image.Rect(0, 0, w, h)) - - if w < 1 || h < 1 { - return dst - } - - if options == nil { - options = &ConvolveOptions{} - } - - if options.Normalize { - normalizeKernel(kernel) - } - - type coef struct { - x, y int - k float64 - } - var coefs []coef - var m int - - switch len(kernel) { - case 9: - m = 1 - case 25: - m = 2 - } - - i := 0 - for y := -m; y <= m; y++ { - for x := -m; x <= m; x++ { - if kernel[i] != 0 { - coefs = append(coefs, coef{x: x, y: y, k: kernel[i]}) - } - i++ - } - } - - parallel(0, h, func(ys <-chan int) { - for y := range ys { - for x := 0; x < w; x++ { - var r, g, b float64 - for _, c := range coefs { - ix := x + c.x - if ix < 0 { - ix = 0 - } else if ix >= w { - ix = w - 1 - } - - iy := y + c.y - if iy < 0 { - iy = 0 - } else if iy >= h { - iy = h - 1 - } - - off := iy*src.Stride + ix*4 - s := src.Pix[off : off+3 : off+3] - r += float64(s[0]) * c.k - g += float64(s[1]) * c.k - b += float64(s[2]) * c.k - } - - if options.Abs { - if r < 0 { - r = -r - } - if g < 0 { - g = -g - } - if b < 0 { - b = -b - } - } - - if options.Bias != 0 { - r += float64(options.Bias) - g += float64(options.Bias) - b += float64(options.Bias) - } - - srcOff := y*src.Stride + x*4 - dstOff := y*dst.Stride + x*4 - d := dst.Pix[dstOff : dstOff+4 : dstOff+4] - d[0] = clamp(r) - d[1] = clamp(g) - d[2] = clamp(b) - d[3] = src.Pix[srcOff+3] - } - } - }) - - return dst -} - -func normalizeKernel(kernel []float64) { - var sum, sumpos float64 - for i := range kernel { - sum += kernel[i] - if kernel[i] > 0 { - sumpos += kernel[i] - } - } - if sum != 0 { - for i := range kernel { - kernel[i] /= sum - } - } else if sumpos != 0 { - for i := range kernel { - kernel[i] /= sumpos - } - } -} diff --git a/backend/vendor/github.com/disintegration/imaging/doc.go b/backend/vendor/github.com/disintegration/imaging/doc.go deleted file mode 100644 index c98c9125..00000000 --- a/backend/vendor/github.com/disintegration/imaging/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -/* -Package imaging provides basic image processing functions (resize, rotate, crop, brightness/contrast adjustments, etc.). - -All the image processing functions provided by the package accept any image type that implements image.Image interface -as an input, and return a new image of *image.NRGBA type (32bit RGBA colors, non-premultiplied alpha). -*/ -package imaging diff --git a/backend/vendor/github.com/disintegration/imaging/effects.go b/backend/vendor/github.com/disintegration/imaging/effects.go deleted file mode 100644 index a63e7711..00000000 --- a/backend/vendor/github.com/disintegration/imaging/effects.go +++ /dev/null @@ -1,167 +0,0 @@ -package imaging - -import ( - "image" - "math" -) - -func gaussianBlurKernel(x, sigma float64) float64 { - return math.Exp(-(x*x)/(2*sigma*sigma)) / (sigma * math.Sqrt(2*math.Pi)) -} - -// Blur produces a blurred version of the image using a Gaussian function. -// Sigma parameter must be positive and indicates how much the image will be blurred. -// -// Example: -// -// dstImage := imaging.Blur(srcImage, 3.5) -func Blur(img image.Image, sigma float64) *image.NRGBA { - if sigma <= 0 { - return Clone(img) - } - - radius := int(math.Ceil(sigma * 3.0)) - kernel := make([]float64, radius+1) - - for i := 0; i <= radius; i++ { - kernel[i] = gaussianBlurKernel(float64(i), sigma) - } - - return blurVertical(blurHorizontal(img, kernel), kernel) -} - -func blurHorizontal(img image.Image, kernel []float64) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - radius := len(kernel) - 1 - - parallel(0, src.h, func(ys <-chan int) { - scanLine := make([]uint8, src.w*4) - scanLineF := make([]float64, len(scanLine)) - for y := range ys { - src.scan(0, y, src.w, y+1, scanLine) - for i, v := range scanLine { - scanLineF[i] = float64(v) - } - for x := 0; x < src.w; x++ { - min := x - radius - if min < 0 { - min = 0 - } - max := x + radius - if max > src.w-1 { - max = src.w - 1 - } - var r, g, b, a, wsum float64 - for ix := min; ix <= max; ix++ { - i := ix * 4 - weight := kernel[absint(x-ix)] - wsum += weight - s := scanLineF[i : i+4 : i+4] - wa := s[3] * weight - r += s[0] * wa - g += s[1] * wa - b += s[2] * wa - a += wa - } - if a != 0 { - aInv := 1 / a - j := y*dst.Stride + x*4 - d := dst.Pix[j : j+4 : j+4] - d[0] = clamp(r * aInv) - d[1] = clamp(g * aInv) - d[2] = clamp(b * aInv) - d[3] = clamp(a / wsum) - } - } - } - }) - - return dst -} - -func blurVertical(img image.Image, kernel []float64) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - radius := len(kernel) - 1 - - parallel(0, src.w, func(xs <-chan int) { - scanLine := make([]uint8, src.h*4) - scanLineF := make([]float64, len(scanLine)) - for x := range xs { - src.scan(x, 0, x+1, src.h, scanLine) - for i, v := range scanLine { - scanLineF[i] = float64(v) - } - for y := 0; y < src.h; y++ { - min := y - radius - if min < 0 { - min = 0 - } - max := y + radius - if max > src.h-1 { - max = src.h - 1 - } - var r, g, b, a, wsum float64 - for iy := min; iy <= max; iy++ { - i := iy * 4 - weight := kernel[absint(y-iy)] - wsum += weight - s := scanLineF[i : i+4 : i+4] - wa := s[3] * weight - r += s[0] * wa - g += s[1] * wa - b += s[2] * wa - a += wa - } - if a != 0 { - aInv := 1 / a - j := y*dst.Stride + x*4 - d := dst.Pix[j : j+4 : j+4] - d[0] = clamp(r * aInv) - d[1] = clamp(g * aInv) - d[2] = clamp(b * aInv) - d[3] = clamp(a / wsum) - } - } - } - }) - - return dst -} - -// Sharpen produces a sharpened version of the image. -// Sigma parameter must be positive and indicates how much the image will be sharpened. -// -// Example: -// -// dstImage := imaging.Sharpen(srcImage, 3.5) -func Sharpen(img image.Image, sigma float64) *image.NRGBA { - if sigma <= 0 { - return Clone(img) - } - - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - blurred := Blur(img, sigma) - - parallel(0, src.h, func(ys <-chan int) { - scanLine := make([]uint8, src.w*4) - for y := range ys { - src.scan(0, y, src.w, y+1, scanLine) - j := y * dst.Stride - for i := 0; i < src.w*4; i++ { - val := int(scanLine[i])<<1 - int(blurred.Pix[j]) - if val < 0 { - val = 0 - } else if val > 0xff { - val = 0xff - } - dst.Pix[j] = uint8(val) - j++ - } - } - }) - - return dst -} diff --git a/backend/vendor/github.com/disintegration/imaging/histogram.go b/backend/vendor/github.com/disintegration/imaging/histogram.go deleted file mode 100644 index c547fe82..00000000 --- a/backend/vendor/github.com/disintegration/imaging/histogram.go +++ /dev/null @@ -1,52 +0,0 @@ -package imaging - -import ( - "image" - "sync" -) - -// Histogram returns a normalized histogram of an image. -// -// Resulting histogram is represented as an array of 256 floats, where -// histogram[i] is a probability of a pixel being of a particular luminance i. -func Histogram(img image.Image) [256]float64 { - var mu sync.Mutex - var histogram [256]float64 - var total float64 - - src := newScanner(img) - if src.w == 0 || src.h == 0 { - return histogram - } - - parallel(0, src.h, func(ys <-chan int) { - var tmpHistogram [256]float64 - var tmpTotal float64 - scanLine := make([]uint8, src.w*4) - for y := range ys { - src.scan(0, y, src.w, y+1, scanLine) - i := 0 - for x := 0; x < src.w; x++ { - s := scanLine[i : i+3 : i+3] - r := s[0] - g := s[1] - b := s[2] - y := 0.299*float32(r) + 0.587*float32(g) + 0.114*float32(b) - tmpHistogram[int(y+0.5)]++ - tmpTotal++ - i += 4 - } - } - mu.Lock() - for i := 0; i < 256; i++ { - histogram[i] += tmpHistogram[i] - } - total += tmpTotal - mu.Unlock() - }) - - for i := 0; i < 256; i++ { - histogram[i] = histogram[i] / total - } - return histogram -} diff --git a/backend/vendor/github.com/disintegration/imaging/io.go b/backend/vendor/github.com/disintegration/imaging/io.go deleted file mode 100644 index ca30bf79..00000000 --- a/backend/vendor/github.com/disintegration/imaging/io.go +++ /dev/null @@ -1,442 +0,0 @@ -package imaging - -import ( - "encoding/binary" - "errors" - "image" - "image/draw" - "image/gif" - "image/jpeg" - "image/png" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "golang.org/x/image/bmp" - "golang.org/x/image/tiff" -) - -type fileSystem interface { - Create(string) (io.WriteCloser, error) - Open(string) (io.ReadCloser, error) -} - -type localFS struct{} - -func (localFS) Create(name string) (io.WriteCloser, error) { return os.Create(name) } -func (localFS) Open(name string) (io.ReadCloser, error) { return os.Open(name) } - -var fs fileSystem = localFS{} - -type decodeConfig struct { - autoOrientation bool -} - -var defaultDecodeConfig = decodeConfig{ - autoOrientation: false, -} - -// DecodeOption sets an optional parameter for the Decode and Open functions. -type DecodeOption func(*decodeConfig) - -// AutoOrientation returns a DecodeOption that sets the auto-orientation mode. -// If auto-orientation is enabled, the image will be transformed after decoding -// according to the EXIF orientation tag (if present). By default it's disabled. -func AutoOrientation(enabled bool) DecodeOption { - return func(c *decodeConfig) { - c.autoOrientation = enabled - } -} - -// Decode reads an image from r. -func Decode(r io.Reader, opts ...DecodeOption) (image.Image, error) { - cfg := defaultDecodeConfig - for _, option := range opts { - option(&cfg) - } - - if !cfg.autoOrientation { - img, _, err := image.Decode(r) - return img, err - } - - var orient orientation - pr, pw := io.Pipe() - r = io.TeeReader(r, pw) - done := make(chan struct{}) - go func() { - defer close(done) - orient = readOrientation(pr) - io.Copy(ioutil.Discard, pr) - }() - - img, _, err := image.Decode(r) - pw.Close() - <-done - if err != nil { - return nil, err - } - - return fixOrientation(img, orient), nil -} - -// Open loads an image from file. -// -// Examples: -// -// // Load an image from file. -// img, err := imaging.Open("test.jpg") -// -// // Load an image and transform it depending on the EXIF orientation tag (if present). -// img, err := imaging.Open("test.jpg", imaging.AutoOrientation(true)) -func Open(filename string, opts ...DecodeOption) (image.Image, error) { - file, err := fs.Open(filename) - if err != nil { - return nil, err - } - defer file.Close() - return Decode(file, opts...) -} - -// Format is an image file format. -type Format int - -// Image file formats. -const ( - JPEG Format = iota - PNG - GIF - TIFF - BMP -) - -var formatExts = map[string]Format{ - "jpg": JPEG, - "jpeg": JPEG, - "png": PNG, - "gif": GIF, - "tif": TIFF, - "tiff": TIFF, - "bmp": BMP, -} - -var formatNames = map[Format]string{ - JPEG: "JPEG", - PNG: "PNG", - GIF: "GIF", - TIFF: "TIFF", - BMP: "BMP", -} - -func (f Format) String() string { - return formatNames[f] -} - -// ErrUnsupportedFormat means the given image format is not supported. -var ErrUnsupportedFormat = errors.New("imaging: unsupported image format") - -// FormatFromExtension parses image format from filename extension: -// "jpg" (or "jpeg"), "png", "gif", "tif" (or "tiff") and "bmp" are supported. -func FormatFromExtension(ext string) (Format, error) { - if f, ok := formatExts[strings.ToLower(strings.TrimPrefix(ext, "."))]; ok { - return f, nil - } - return -1, ErrUnsupportedFormat -} - -// FormatFromFilename parses image format from filename: -// "jpg" (or "jpeg"), "png", "gif", "tif" (or "tiff") and "bmp" are supported. -func FormatFromFilename(filename string) (Format, error) { - ext := filepath.Ext(filename) - return FormatFromExtension(ext) -} - -type encodeConfig struct { - jpegQuality int - gifNumColors int - gifQuantizer draw.Quantizer - gifDrawer draw.Drawer - pngCompressionLevel png.CompressionLevel -} - -var defaultEncodeConfig = encodeConfig{ - jpegQuality: 95, - gifNumColors: 256, - gifQuantizer: nil, - gifDrawer: nil, - pngCompressionLevel: png.DefaultCompression, -} - -// EncodeOption sets an optional parameter for the Encode and Save functions. -type EncodeOption func(*encodeConfig) - -// JPEGQuality returns an EncodeOption that sets the output JPEG quality. -// Quality ranges from 1 to 100 inclusive, higher is better. Default is 95. -func JPEGQuality(quality int) EncodeOption { - return func(c *encodeConfig) { - c.jpegQuality = quality - } -} - -// GIFNumColors returns an EncodeOption that sets the maximum number of colors -// used in the GIF-encoded image. It ranges from 1 to 256. Default is 256. -func GIFNumColors(numColors int) EncodeOption { - return func(c *encodeConfig) { - c.gifNumColors = numColors - } -} - -// GIFQuantizer returns an EncodeOption that sets the quantizer that is used to produce -// a palette of the GIF-encoded image. -func GIFQuantizer(quantizer draw.Quantizer) EncodeOption { - return func(c *encodeConfig) { - c.gifQuantizer = quantizer - } -} - -// GIFDrawer returns an EncodeOption that sets the drawer that is used to convert -// the source image to the desired palette of the GIF-encoded image. -func GIFDrawer(drawer draw.Drawer) EncodeOption { - return func(c *encodeConfig) { - c.gifDrawer = drawer - } -} - -// PNGCompressionLevel returns an EncodeOption that sets the compression level -// of the PNG-encoded image. Default is png.DefaultCompression. -func PNGCompressionLevel(level png.CompressionLevel) EncodeOption { - return func(c *encodeConfig) { - c.pngCompressionLevel = level - } -} - -// Encode writes the image img to w in the specified format (JPEG, PNG, GIF, TIFF or BMP). -func Encode(w io.Writer, img image.Image, format Format, opts ...EncodeOption) error { - cfg := defaultEncodeConfig - for _, option := range opts { - option(&cfg) - } - - switch format { - case JPEG: - if nrgba, ok := img.(*image.NRGBA); ok && nrgba.Opaque() { - rgba := &image.RGBA{ - Pix: nrgba.Pix, - Stride: nrgba.Stride, - Rect: nrgba.Rect, - } - return jpeg.Encode(w, rgba, &jpeg.Options{Quality: cfg.jpegQuality}) - } - return jpeg.Encode(w, img, &jpeg.Options{Quality: cfg.jpegQuality}) - - case PNG: - encoder := png.Encoder{CompressionLevel: cfg.pngCompressionLevel} - return encoder.Encode(w, img) - - case GIF: - return gif.Encode(w, img, &gif.Options{ - NumColors: cfg.gifNumColors, - Quantizer: cfg.gifQuantizer, - Drawer: cfg.gifDrawer, - }) - - case TIFF: - return tiff.Encode(w, img, &tiff.Options{Compression: tiff.Deflate, Predictor: true}) - - case BMP: - return bmp.Encode(w, img) - } - - return ErrUnsupportedFormat -} - -// Save saves the image to file with the specified filename. -// The format is determined from the filename extension: -// "jpg" (or "jpeg"), "png", "gif", "tif" (or "tiff") and "bmp" are supported. -// -// Examples: -// -// // Save the image as PNG. -// err := imaging.Save(img, "out.png") -// -// // Save the image as JPEG with optional quality parameter set to 80. -// err := imaging.Save(img, "out.jpg", imaging.JPEGQuality(80)) -func Save(img image.Image, filename string, opts ...EncodeOption) (err error) { - f, err := FormatFromFilename(filename) - if err != nil { - return err - } - file, err := fs.Create(filename) - if err != nil { - return err - } - err = Encode(file, img, f, opts...) - errc := file.Close() - if err == nil { - err = errc - } - return err -} - -// orientation is an EXIF flag that specifies the transformation -// that should be applied to image to display it correctly. -type orientation int - -const ( - orientationUnspecified = 0 - orientationNormal = 1 - orientationFlipH = 2 - orientationRotate180 = 3 - orientationFlipV = 4 - orientationTranspose = 5 - orientationRotate270 = 6 - orientationTransverse = 7 - orientationRotate90 = 8 -) - -// readOrientation tries to read the orientation EXIF flag from image data in r. -// If the EXIF data block is not found or the orientation flag is not found -// or any other error occures while reading the data, it returns the -// orientationUnspecified (0) value. -func readOrientation(r io.Reader) orientation { - const ( - markerSOI = 0xffd8 - markerAPP1 = 0xffe1 - exifHeader = 0x45786966 - byteOrderBE = 0x4d4d - byteOrderLE = 0x4949 - orientationTag = 0x0112 - ) - - // Check if JPEG SOI marker is present. - var soi uint16 - if err := binary.Read(r, binary.BigEndian, &soi); err != nil { - return orientationUnspecified - } - if soi != markerSOI { - return orientationUnspecified // Missing JPEG SOI marker. - } - - // Find JPEG APP1 marker. - for { - var marker, size uint16 - if err := binary.Read(r, binary.BigEndian, &marker); err != nil { - return orientationUnspecified - } - if err := binary.Read(r, binary.BigEndian, &size); err != nil { - return orientationUnspecified - } - if marker>>8 != 0xff { - return orientationUnspecified // Invalid JPEG marker. - } - if marker == markerAPP1 { - break - } - if size < 2 { - return orientationUnspecified // Invalid block size. - } - if _, err := io.CopyN(ioutil.Discard, r, int64(size-2)); err != nil { - return orientationUnspecified - } - } - - // Check if EXIF header is present. - var header uint32 - if err := binary.Read(r, binary.BigEndian, &header); err != nil { - return orientationUnspecified - } - if header != exifHeader { - return orientationUnspecified - } - if _, err := io.CopyN(ioutil.Discard, r, 2); err != nil { - return orientationUnspecified - } - - // Read byte order information. - var ( - byteOrderTag uint16 - byteOrder binary.ByteOrder - ) - if err := binary.Read(r, binary.BigEndian, &byteOrderTag); err != nil { - return orientationUnspecified - } - switch byteOrderTag { - case byteOrderBE: - byteOrder = binary.BigEndian - case byteOrderLE: - byteOrder = binary.LittleEndian - default: - return orientationUnspecified // Invalid byte order flag. - } - if _, err := io.CopyN(ioutil.Discard, r, 2); err != nil { - return orientationUnspecified - } - - // Skip the EXIF offset. - var offset uint32 - if err := binary.Read(r, byteOrder, &offset); err != nil { - return orientationUnspecified - } - if offset < 8 { - return orientationUnspecified // Invalid offset value. - } - if _, err := io.CopyN(ioutil.Discard, r, int64(offset-8)); err != nil { - return orientationUnspecified - } - - // Read the number of tags. - var numTags uint16 - if err := binary.Read(r, byteOrder, &numTags); err != nil { - return orientationUnspecified - } - - // Find the orientation tag. - for i := 0; i < int(numTags); i++ { - var tag uint16 - if err := binary.Read(r, byteOrder, &tag); err != nil { - return orientationUnspecified - } - if tag != orientationTag { - if _, err := io.CopyN(ioutil.Discard, r, 10); err != nil { - return orientationUnspecified - } - continue - } - if _, err := io.CopyN(ioutil.Discard, r, 6); err != nil { - return orientationUnspecified - } - var val uint16 - if err := binary.Read(r, byteOrder, &val); err != nil { - return orientationUnspecified - } - if val < 1 || val > 8 { - return orientationUnspecified // Invalid tag value. - } - return orientation(val) - } - return orientationUnspecified // Missing orientation tag. -} - -// fixOrientation applies a transform to img corresponding to the given orientation flag. -func fixOrientation(img image.Image, o orientation) image.Image { - switch o { - case orientationNormal: - case orientationFlipH: - img = FlipH(img) - case orientationFlipV: - img = FlipV(img) - case orientationRotate90: - img = Rotate90(img) - case orientationRotate180: - img = Rotate180(img) - case orientationRotate270: - img = Rotate270(img) - case orientationTranspose: - img = Transpose(img) - case orientationTransverse: - img = Transverse(img) - } - return img -} diff --git a/backend/vendor/github.com/disintegration/imaging/resize.go b/backend/vendor/github.com/disintegration/imaging/resize.go deleted file mode 100644 index ec5dc5f3..00000000 --- a/backend/vendor/github.com/disintegration/imaging/resize.go +++ /dev/null @@ -1,590 +0,0 @@ -package imaging - -import ( - "image" - "math" -) - -type indexWeight struct { - index int - weight float64 -} - -func precomputeWeights(dstSize, srcSize int, filter ResampleFilter) [][]indexWeight { - du := float64(srcSize) / float64(dstSize) - scale := du - if scale < 1.0 { - scale = 1.0 - } - ru := math.Ceil(scale * filter.Support) - - out := make([][]indexWeight, dstSize) - tmp := make([]indexWeight, 0, dstSize*int(ru+2)*2) - - for v := 0; v < dstSize; v++ { - fu := (float64(v)+0.5)*du - 0.5 - - begin := int(math.Ceil(fu - ru)) - if begin < 0 { - begin = 0 - } - end := int(math.Floor(fu + ru)) - if end > srcSize-1 { - end = srcSize - 1 - } - - var sum float64 - for u := begin; u <= end; u++ { - w := filter.Kernel((float64(u) - fu) / scale) - if w != 0 { - sum += w - tmp = append(tmp, indexWeight{index: u, weight: w}) - } - } - if sum != 0 { - for i := range tmp { - tmp[i].weight /= sum - } - } - - out[v] = tmp - tmp = tmp[len(tmp):] - } - - return out -} - -// Resize resizes the image to the specified width and height using the specified resampling -// filter and returns the transformed image. If one of width or height is 0, the image aspect -// ratio is preserved. -// -// Example: -// -// dstImage := imaging.Resize(srcImage, 800, 600, imaging.Lanczos) -func Resize(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA { - dstW, dstH := width, height - if dstW < 0 || dstH < 0 { - return &image.NRGBA{} - } - if dstW == 0 && dstH == 0 { - return &image.NRGBA{} - } - - srcW := img.Bounds().Dx() - srcH := img.Bounds().Dy() - if srcW <= 0 || srcH <= 0 { - return &image.NRGBA{} - } - - // If new width or height is 0 then preserve aspect ratio, minimum 1px. - if dstW == 0 { - tmpW := float64(dstH) * float64(srcW) / float64(srcH) - dstW = int(math.Max(1.0, math.Floor(tmpW+0.5))) - } - if dstH == 0 { - tmpH := float64(dstW) * float64(srcH) / float64(srcW) - dstH = int(math.Max(1.0, math.Floor(tmpH+0.5))) - } - - if filter.Support <= 0 { - // Nearest-neighbor special case. - return resizeNearest(img, dstW, dstH) - } - - if srcW != dstW && srcH != dstH { - return resizeVertical(resizeHorizontal(img, dstW, filter), dstH, filter) - } - if srcW != dstW { - return resizeHorizontal(img, dstW, filter) - } - if srcH != dstH { - return resizeVertical(img, dstH, filter) - } - return Clone(img) -} - -func resizeHorizontal(img image.Image, width int, filter ResampleFilter) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, width, src.h)) - weights := precomputeWeights(width, src.w, filter) - parallel(0, src.h, func(ys <-chan int) { - scanLine := make([]uint8, src.w*4) - for y := range ys { - src.scan(0, y, src.w, y+1, scanLine) - j0 := y * dst.Stride - for x := range weights { - var r, g, b, a float64 - for _, w := range weights[x] { - i := w.index * 4 - s := scanLine[i : i+4 : i+4] - aw := float64(s[3]) * w.weight - r += float64(s[0]) * aw - g += float64(s[1]) * aw - b += float64(s[2]) * aw - a += aw - } - if a != 0 { - aInv := 1 / a - j := j0 + x*4 - d := dst.Pix[j : j+4 : j+4] - d[0] = clamp(r * aInv) - d[1] = clamp(g * aInv) - d[2] = clamp(b * aInv) - d[3] = clamp(a) - } - } - } - }) - return dst -} - -func resizeVertical(img image.Image, height int, filter ResampleFilter) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, height)) - weights := precomputeWeights(height, src.h, filter) - parallel(0, src.w, func(xs <-chan int) { - scanLine := make([]uint8, src.h*4) - for x := range xs { - src.scan(x, 0, x+1, src.h, scanLine) - for y := range weights { - var r, g, b, a float64 - for _, w := range weights[y] { - i := w.index * 4 - s := scanLine[i : i+4 : i+4] - aw := float64(s[3]) * w.weight - r += float64(s[0]) * aw - g += float64(s[1]) * aw - b += float64(s[2]) * aw - a += aw - } - if a != 0 { - aInv := 1 / a - j := y*dst.Stride + x*4 - d := dst.Pix[j : j+4 : j+4] - d[0] = clamp(r * aInv) - d[1] = clamp(g * aInv) - d[2] = clamp(b * aInv) - d[3] = clamp(a) - } - } - } - }) - return dst -} - -// resizeNearest is a fast nearest-neighbor resize, no filtering. -func resizeNearest(img image.Image, width, height int) *image.NRGBA { - dst := image.NewNRGBA(image.Rect(0, 0, width, height)) - dx := float64(img.Bounds().Dx()) / float64(width) - dy := float64(img.Bounds().Dy()) / float64(height) - - if dx > 1 && dy > 1 { - src := newScanner(img) - parallel(0, height, func(ys <-chan int) { - for y := range ys { - srcY := int((float64(y) + 0.5) * dy) - dstOff := y * dst.Stride - for x := 0; x < width; x++ { - srcX := int((float64(x) + 0.5) * dx) - src.scan(srcX, srcY, srcX+1, srcY+1, dst.Pix[dstOff:dstOff+4]) - dstOff += 4 - } - } - }) - } else { - src := toNRGBA(img) - parallel(0, height, func(ys <-chan int) { - for y := range ys { - srcY := int((float64(y) + 0.5) * dy) - srcOff0 := srcY * src.Stride - dstOff := y * dst.Stride - for x := 0; x < width; x++ { - srcX := int((float64(x) + 0.5) * dx) - srcOff := srcOff0 + srcX*4 - copy(dst.Pix[dstOff:dstOff+4], src.Pix[srcOff:srcOff+4]) - dstOff += 4 - } - } - }) - } - - return dst -} - -// Fit scales down the image using the specified resample filter to fit the specified -// maximum width and height and returns the transformed image. -// -// Example: -// -// dstImage := imaging.Fit(srcImage, 800, 600, imaging.Lanczos) -func Fit(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA { - maxW, maxH := width, height - - if maxW <= 0 || maxH <= 0 { - return &image.NRGBA{} - } - - srcBounds := img.Bounds() - srcW := srcBounds.Dx() - srcH := srcBounds.Dy() - - if srcW <= 0 || srcH <= 0 { - return &image.NRGBA{} - } - - if srcW <= maxW && srcH <= maxH { - return Clone(img) - } - - srcAspectRatio := float64(srcW) / float64(srcH) - maxAspectRatio := float64(maxW) / float64(maxH) - - var newW, newH int - if srcAspectRatio > maxAspectRatio { - newW = maxW - newH = int(float64(newW) / srcAspectRatio) - } else { - newH = maxH - newW = int(float64(newH) * srcAspectRatio) - } - - return Resize(img, newW, newH, filter) -} - -// Fill creates an image with the specified dimensions and fills it with the scaled source image. -// To achieve the correct aspect ratio without stretching, the source image will be cropped. -// -// Example: -// -// dstImage := imaging.Fill(srcImage, 800, 600, imaging.Center, imaging.Lanczos) -func Fill(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA { - dstW, dstH := width, height - - if dstW <= 0 || dstH <= 0 { - return &image.NRGBA{} - } - - srcBounds := img.Bounds() - srcW := srcBounds.Dx() - srcH := srcBounds.Dy() - - if srcW <= 0 || srcH <= 0 { - return &image.NRGBA{} - } - - if srcW == dstW && srcH == dstH { - return Clone(img) - } - - if srcW >= 100 && srcH >= 100 { - return cropAndResize(img, dstW, dstH, anchor, filter) - } - return resizeAndCrop(img, dstW, dstH, anchor, filter) -} - -// cropAndResize crops the image to the smallest possible size that has the required aspect ratio using -// the given anchor point, then scales it to the specified dimensions and returns the transformed image. -// -// This is generally faster than resizing first, but may result in inaccuracies when used on small source images. -func cropAndResize(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA { - dstW, dstH := width, height - - srcBounds := img.Bounds() - srcW := srcBounds.Dx() - srcH := srcBounds.Dy() - srcAspectRatio := float64(srcW) / float64(srcH) - dstAspectRatio := float64(dstW) / float64(dstH) - - var tmp *image.NRGBA - if srcAspectRatio < dstAspectRatio { - cropH := float64(srcW) * float64(dstH) / float64(dstW) - tmp = CropAnchor(img, srcW, int(math.Max(1, cropH)+0.5), anchor) - } else { - cropW := float64(srcH) * float64(dstW) / float64(dstH) - tmp = CropAnchor(img, int(math.Max(1, cropW)+0.5), srcH, anchor) - } - - return Resize(tmp, dstW, dstH, filter) -} - -// resizeAndCrop resizes the image to the smallest possible size that will cover the specified dimensions, -// crops the resized image to the specified dimensions using the given anchor point and returns -// the transformed image. -func resizeAndCrop(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA { - dstW, dstH := width, height - - srcBounds := img.Bounds() - srcW := srcBounds.Dx() - srcH := srcBounds.Dy() - srcAspectRatio := float64(srcW) / float64(srcH) - dstAspectRatio := float64(dstW) / float64(dstH) - - var tmp *image.NRGBA - if srcAspectRatio < dstAspectRatio { - tmp = Resize(img, dstW, 0, filter) - } else { - tmp = Resize(img, 0, dstH, filter) - } - - return CropAnchor(tmp, dstW, dstH, anchor) -} - -// Thumbnail scales the image up or down using the specified resample filter, crops it -// to the specified width and hight and returns the transformed image. -// -// Example: -// -// dstImage := imaging.Thumbnail(srcImage, 100, 100, imaging.Lanczos) -func Thumbnail(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA { - return Fill(img, width, height, Center, filter) -} - -// ResampleFilter specifies a resampling filter to be used for image resizing. -// -// General filter recommendations: -// -// - Lanczos -// A high-quality resampling filter for photographic images yielding sharp results. -// -// - CatmullRom -// A sharp cubic filter that is faster than Lanczos filter while providing similar results. -// -// - MitchellNetravali -// A cubic filter that produces smoother results with less ringing artifacts than CatmullRom. -// -// - Linear -// Bilinear resampling filter, produces a smooth output. Faster than cubic filters. -// -// - Box -// Simple and fast averaging filter appropriate for downscaling. -// When upscaling it's similar to NearestNeighbor. -// -// - NearestNeighbor -// Fastest resampling filter, no antialiasing. -type ResampleFilter struct { - Support float64 - Kernel func(float64) float64 -} - -// NearestNeighbor is a nearest-neighbor filter (no anti-aliasing). -var NearestNeighbor ResampleFilter - -// Box filter (averaging pixels). -var Box ResampleFilter - -// Linear filter. -var Linear ResampleFilter - -// Hermite cubic spline filter (BC-spline; B=0; C=0). -var Hermite ResampleFilter - -// MitchellNetravali is Mitchell-Netravali cubic filter (BC-spline; B=1/3; C=1/3). -var MitchellNetravali ResampleFilter - -// CatmullRom is a Catmull-Rom - sharp cubic filter (BC-spline; B=0; C=0.5). -var CatmullRom ResampleFilter - -// BSpline is a smooth cubic filter (BC-spline; B=1; C=0). -var BSpline ResampleFilter - -// Gaussian is a Gaussian blurring filter. -var Gaussian ResampleFilter - -// Bartlett is a Bartlett-windowed sinc filter (3 lobes). -var Bartlett ResampleFilter - -// Lanczos filter (3 lobes). -var Lanczos ResampleFilter - -// Hann is a Hann-windowed sinc filter (3 lobes). -var Hann ResampleFilter - -// Hamming is a Hamming-windowed sinc filter (3 lobes). -var Hamming ResampleFilter - -// Blackman is a Blackman-windowed sinc filter (3 lobes). -var Blackman ResampleFilter - -// Welch is a Welch-windowed sinc filter (parabolic window, 3 lobes). -var Welch ResampleFilter - -// Cosine is a Cosine-windowed sinc filter (3 lobes). -var Cosine ResampleFilter - -func bcspline(x, b, c float64) float64 { - var y float64 - x = math.Abs(x) - if x < 1.0 { - y = ((12-9*b-6*c)*x*x*x + (-18+12*b+6*c)*x*x + (6 - 2*b)) / 6 - } else if x < 2.0 { - y = ((-b-6*c)*x*x*x + (6*b+30*c)*x*x + (-12*b-48*c)*x + (8*b + 24*c)) / 6 - } - return y -} - -func sinc(x float64) float64 { - if x == 0 { - return 1 - } - return math.Sin(math.Pi*x) / (math.Pi * x) -} - -func init() { - NearestNeighbor = ResampleFilter{ - Support: 0.0, // special case - not applying the filter - } - - Box = ResampleFilter{ - Support: 0.5, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x <= 0.5 { - return 1.0 - } - return 0 - }, - } - - Linear = ResampleFilter{ - Support: 1.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 1.0 { - return 1.0 - x - } - return 0 - }, - } - - Hermite = ResampleFilter{ - Support: 1.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 1.0 { - return bcspline(x, 0.0, 0.0) - } - return 0 - }, - } - - MitchellNetravali = ResampleFilter{ - Support: 2.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 2.0 { - return bcspline(x, 1.0/3.0, 1.0/3.0) - } - return 0 - }, - } - - CatmullRom = ResampleFilter{ - Support: 2.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 2.0 { - return bcspline(x, 0.0, 0.5) - } - return 0 - }, - } - - BSpline = ResampleFilter{ - Support: 2.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 2.0 { - return bcspline(x, 1.0, 0.0) - } - return 0 - }, - } - - Gaussian = ResampleFilter{ - Support: 2.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 2.0 { - return math.Exp(-2 * x * x) - } - return 0 - }, - } - - Bartlett = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * (3.0 - x) / 3.0 - } - return 0 - }, - } - - Lanczos = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * sinc(x/3.0) - } - return 0 - }, - } - - Hann = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * (0.5 + 0.5*math.Cos(math.Pi*x/3.0)) - } - return 0 - }, - } - - Hamming = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * (0.54 + 0.46*math.Cos(math.Pi*x/3.0)) - } - return 0 - }, - } - - Blackman = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * (0.42 - 0.5*math.Cos(math.Pi*x/3.0+math.Pi) + 0.08*math.Cos(2.0*math.Pi*x/3.0)) - } - return 0 - }, - } - - Welch = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * (1.0 - (x * x / 9.0)) - } - return 0 - }, - } - - Cosine = ResampleFilter{ - Support: 3.0, - Kernel: func(x float64) float64 { - x = math.Abs(x) - if x < 3.0 { - return sinc(x) * math.Cos((math.Pi/2.0)*(x/3.0)) - } - return 0 - }, - } -} diff --git a/backend/vendor/github.com/disintegration/imaging/scanner.go b/backend/vendor/github.com/disintegration/imaging/scanner.go deleted file mode 100644 index 37d92cef..00000000 --- a/backend/vendor/github.com/disintegration/imaging/scanner.go +++ /dev/null @@ -1,285 +0,0 @@ -package imaging - -import ( - "image" - "image/color" -) - -type scanner struct { - image image.Image - w, h int - palette []color.NRGBA -} - -func newScanner(img image.Image) *scanner { - s := &scanner{ - image: img, - w: img.Bounds().Dx(), - h: img.Bounds().Dy(), - } - if img, ok := img.(*image.Paletted); ok { - s.palette = make([]color.NRGBA, len(img.Palette)) - for i := 0; i < len(img.Palette); i++ { - s.palette[i] = color.NRGBAModel.Convert(img.Palette[i]).(color.NRGBA) - } - } - return s -} - -// scan scans the given rectangular region of the image into dst. -func (s *scanner) scan(x1, y1, x2, y2 int, dst []uint8) { - switch img := s.image.(type) { - case *image.NRGBA: - size := (x2 - x1) * 4 - j := 0 - i := y1*img.Stride + x1*4 - if size == 4 { - for y := y1; y < y2; y++ { - d := dst[j : j+4 : j+4] - s := img.Pix[i : i+4 : i+4] - d[0] = s[0] - d[1] = s[1] - d[2] = s[2] - d[3] = s[3] - j += size - i += img.Stride - } - } else { - for y := y1; y < y2; y++ { - copy(dst[j:j+size], img.Pix[i:i+size]) - j += size - i += img.Stride - } - } - - case *image.NRGBA64: - j := 0 - for y := y1; y < y2; y++ { - i := y*img.Stride + x1*8 - for x := x1; x < x2; x++ { - s := img.Pix[i : i+8 : i+8] - d := dst[j : j+4 : j+4] - d[0] = s[0] - d[1] = s[2] - d[2] = s[4] - d[3] = s[6] - j += 4 - i += 8 - } - } - - case *image.RGBA: - j := 0 - for y := y1; y < y2; y++ { - i := y*img.Stride + x1*4 - for x := x1; x < x2; x++ { - d := dst[j : j+4 : j+4] - a := img.Pix[i+3] - switch a { - case 0: - d[0] = 0 - d[1] = 0 - d[2] = 0 - d[3] = a - case 0xff: - s := img.Pix[i : i+4 : i+4] - d[0] = s[0] - d[1] = s[1] - d[2] = s[2] - d[3] = a - default: - s := img.Pix[i : i+4 : i+4] - r16 := uint16(s[0]) - g16 := uint16(s[1]) - b16 := uint16(s[2]) - a16 := uint16(a) - d[0] = uint8(r16 * 0xff / a16) - d[1] = uint8(g16 * 0xff / a16) - d[2] = uint8(b16 * 0xff / a16) - d[3] = a - } - j += 4 - i += 4 - } - } - - case *image.RGBA64: - j := 0 - for y := y1; y < y2; y++ { - i := y*img.Stride + x1*8 - for x := x1; x < x2; x++ { - s := img.Pix[i : i+8 : i+8] - d := dst[j : j+4 : j+4] - a := s[6] - switch a { - case 0: - d[0] = 0 - d[1] = 0 - d[2] = 0 - case 0xff: - d[0] = s[0] - d[1] = s[2] - d[2] = s[4] - default: - r32 := uint32(s[0])<<8 | uint32(s[1]) - g32 := uint32(s[2])<<8 | uint32(s[3]) - b32 := uint32(s[4])<<8 | uint32(s[5]) - a32 := uint32(s[6])<<8 | uint32(s[7]) - d[0] = uint8((r32 * 0xffff / a32) >> 8) - d[1] = uint8((g32 * 0xffff / a32) >> 8) - d[2] = uint8((b32 * 0xffff / a32) >> 8) - } - d[3] = a - j += 4 - i += 8 - } - } - - case *image.Gray: - j := 0 - for y := y1; y < y2; y++ { - i := y*img.Stride + x1 - for x := x1; x < x2; x++ { - c := img.Pix[i] - d := dst[j : j+4 : j+4] - d[0] = c - d[1] = c - d[2] = c - d[3] = 0xff - j += 4 - i++ - } - } - - case *image.Gray16: - j := 0 - for y := y1; y < y2; y++ { - i := y*img.Stride + x1*2 - for x := x1; x < x2; x++ { - c := img.Pix[i] - d := dst[j : j+4 : j+4] - d[0] = c - d[1] = c - d[2] = c - d[3] = 0xff - j += 4 - i += 2 - } - } - - case *image.YCbCr: - j := 0 - x1 += img.Rect.Min.X - x2 += img.Rect.Min.X - y1 += img.Rect.Min.Y - y2 += img.Rect.Min.Y - - hy := img.Rect.Min.Y / 2 - hx := img.Rect.Min.X / 2 - for y := y1; y < y2; y++ { - iy := (y-img.Rect.Min.Y)*img.YStride + (x1 - img.Rect.Min.X) - - var yBase int - switch img.SubsampleRatio { - case image.YCbCrSubsampleRatio444, image.YCbCrSubsampleRatio422: - yBase = (y - img.Rect.Min.Y) * img.CStride - case image.YCbCrSubsampleRatio420, image.YCbCrSubsampleRatio440: - yBase = (y/2 - hy) * img.CStride - } - - for x := x1; x < x2; x++ { - var ic int - switch img.SubsampleRatio { - case image.YCbCrSubsampleRatio444, image.YCbCrSubsampleRatio440: - ic = yBase + (x - img.Rect.Min.X) - case image.YCbCrSubsampleRatio422, image.YCbCrSubsampleRatio420: - ic = yBase + (x/2 - hx) - default: - ic = img.COffset(x, y) - } - - yy1 := int32(img.Y[iy]) * 0x10101 - cb1 := int32(img.Cb[ic]) - 128 - cr1 := int32(img.Cr[ic]) - 128 - - r := yy1 + 91881*cr1 - if uint32(r)&0xff000000 == 0 { - r >>= 16 - } else { - r = ^(r >> 31) - } - - g := yy1 - 22554*cb1 - 46802*cr1 - if uint32(g)&0xff000000 == 0 { - g >>= 16 - } else { - g = ^(g >> 31) - } - - b := yy1 + 116130*cb1 - if uint32(b)&0xff000000 == 0 { - b >>= 16 - } else { - b = ^(b >> 31) - } - - d := dst[j : j+4 : j+4] - d[0] = uint8(r) - d[1] = uint8(g) - d[2] = uint8(b) - d[3] = 0xff - - iy++ - j += 4 - } - } - - case *image.Paletted: - j := 0 - for y := y1; y < y2; y++ { - i := y*img.Stride + x1 - for x := x1; x < x2; x++ { - c := s.palette[img.Pix[i]] - d := dst[j : j+4 : j+4] - d[0] = c.R - d[1] = c.G - d[2] = c.B - d[3] = c.A - j += 4 - i++ - } - } - - default: - j := 0 - b := s.image.Bounds() - x1 += b.Min.X - x2 += b.Min.X - y1 += b.Min.Y - y2 += b.Min.Y - for y := y1; y < y2; y++ { - for x := x1; x < x2; x++ { - r16, g16, b16, a16 := s.image.At(x, y).RGBA() - d := dst[j : j+4 : j+4] - switch a16 { - case 0xffff: - d[0] = uint8(r16 >> 8) - d[1] = uint8(g16 >> 8) - d[2] = uint8(b16 >> 8) - d[3] = 0xff - case 0: - d[0] = 0 - d[1] = 0 - d[2] = 0 - d[3] = 0 - default: - d[0] = uint8(((r16 * 0xffff) / a16) >> 8) - d[1] = uint8(((g16 * 0xffff) / a16) >> 8) - d[2] = uint8(((b16 * 0xffff) / a16) >> 8) - d[3] = uint8(a16 >> 8) - } - j += 4 - } - } - } -} diff --git a/backend/vendor/github.com/disintegration/imaging/tools.go b/backend/vendor/github.com/disintegration/imaging/tools.go deleted file mode 100644 index bcb4013f..00000000 --- a/backend/vendor/github.com/disintegration/imaging/tools.go +++ /dev/null @@ -1,248 +0,0 @@ -package imaging - -import ( - "bytes" - "image" - "image/color" - "math" -) - -// New creates a new image with the specified width and height, and fills it with the specified color. -func New(width, height int, fillColor color.Color) *image.NRGBA { - if width <= 0 || height <= 0 { - return &image.NRGBA{} - } - - c := color.NRGBAModel.Convert(fillColor).(color.NRGBA) - if (c == color.NRGBA{0, 0, 0, 0}) { - return image.NewNRGBA(image.Rect(0, 0, width, height)) - } - - return &image.NRGBA{ - Pix: bytes.Repeat([]byte{c.R, c.G, c.B, c.A}, width*height), - Stride: 4 * width, - Rect: image.Rect(0, 0, width, height), - } -} - -// Clone returns a copy of the given image. -func Clone(img image.Image) *image.NRGBA { - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h)) - size := src.w * 4 - parallel(0, src.h, func(ys <-chan int) { - for y := range ys { - i := y * dst.Stride - src.scan(0, y, src.w, y+1, dst.Pix[i:i+size]) - } - }) - return dst -} - -// Anchor is the anchor point for image alignment. -type Anchor int - -// Anchor point positions. -const ( - Center Anchor = iota - TopLeft - Top - TopRight - Left - Right - BottomLeft - Bottom - BottomRight -) - -func anchorPt(b image.Rectangle, w, h int, anchor Anchor) image.Point { - var x, y int - switch anchor { - case TopLeft: - x = b.Min.X - y = b.Min.Y - case Top: - x = b.Min.X + (b.Dx()-w)/2 - y = b.Min.Y - case TopRight: - x = b.Max.X - w - y = b.Min.Y - case Left: - x = b.Min.X - y = b.Min.Y + (b.Dy()-h)/2 - case Right: - x = b.Max.X - w - y = b.Min.Y + (b.Dy()-h)/2 - case BottomLeft: - x = b.Min.X - y = b.Max.Y - h - case Bottom: - x = b.Min.X + (b.Dx()-w)/2 - y = b.Max.Y - h - case BottomRight: - x = b.Max.X - w - y = b.Max.Y - h - default: - x = b.Min.X + (b.Dx()-w)/2 - y = b.Min.Y + (b.Dy()-h)/2 - } - return image.Pt(x, y) -} - -// Crop cuts out a rectangular region with the specified bounds -// from the image and returns the cropped image. -func Crop(img image.Image, rect image.Rectangle) *image.NRGBA { - r := rect.Intersect(img.Bounds()).Sub(img.Bounds().Min) - if r.Empty() { - return &image.NRGBA{} - } - src := newScanner(img) - dst := image.NewNRGBA(image.Rect(0, 0, r.Dx(), r.Dy())) - rowSize := r.Dx() * 4 - parallel(r.Min.Y, r.Max.Y, func(ys <-chan int) { - for y := range ys { - i := (y - r.Min.Y) * dst.Stride - src.scan(r.Min.X, y, r.Max.X, y+1, dst.Pix[i:i+rowSize]) - } - }) - return dst -} - -// CropAnchor cuts out a rectangular region with the specified size -// from the image using the specified anchor point and returns the cropped image. -func CropAnchor(img image.Image, width, height int, anchor Anchor) *image.NRGBA { - srcBounds := img.Bounds() - pt := anchorPt(srcBounds, width, height, anchor) - r := image.Rect(0, 0, width, height).Add(pt) - b := srcBounds.Intersect(r) - return Crop(img, b) -} - -// CropCenter cuts out a rectangular region with the specified size -// from the center of the image and returns the cropped image. -func CropCenter(img image.Image, width, height int) *image.NRGBA { - return CropAnchor(img, width, height, Center) -} - -// Paste pastes the img image to the background image at the specified position and returns the combined image. -func Paste(background, img image.Image, pos image.Point) *image.NRGBA { - dst := Clone(background) - pos = pos.Sub(background.Bounds().Min) - pasteRect := image.Rectangle{Min: pos, Max: pos.Add(img.Bounds().Size())} - interRect := pasteRect.Intersect(dst.Bounds()) - if interRect.Empty() { - return dst - } - src := newScanner(img) - parallel(interRect.Min.Y, interRect.Max.Y, func(ys <-chan int) { - for y := range ys { - x1 := interRect.Min.X - pasteRect.Min.X - x2 := interRect.Max.X - pasteRect.Min.X - y1 := y - pasteRect.Min.Y - y2 := y1 + 1 - i1 := y*dst.Stride + interRect.Min.X*4 - i2 := i1 + interRect.Dx()*4 - src.scan(x1, y1, x2, y2, dst.Pix[i1:i2]) - } - }) - return dst -} - -// PasteCenter pastes the img image to the center of the background image and returns the combined image. -func PasteCenter(background, img image.Image) *image.NRGBA { - bgBounds := background.Bounds() - bgW := bgBounds.Dx() - bgH := bgBounds.Dy() - bgMinX := bgBounds.Min.X - bgMinY := bgBounds.Min.Y - - centerX := bgMinX + bgW/2 - centerY := bgMinY + bgH/2 - - x0 := centerX - img.Bounds().Dx()/2 - y0 := centerY - img.Bounds().Dy()/2 - - return Paste(background, img, image.Pt(x0, y0)) -} - -// Overlay draws the img image over the background image at given position -// and returns the combined image. Opacity parameter is the opacity of the img -// image layer, used to compose the images, it must be from 0.0 to 1.0. -// -// Examples: -// -// // Draw spriteImage over backgroundImage at the given position (x=50, y=50). -// dstImage := imaging.Overlay(backgroundImage, spriteImage, image.Pt(50, 50), 1.0) -// -// // Blend two opaque images of the same size. -// dstImage := imaging.Overlay(imageOne, imageTwo, image.Pt(0, 0), 0.5) -func Overlay(background, img image.Image, pos image.Point, opacity float64) *image.NRGBA { - opacity = math.Min(math.Max(opacity, 0.0), 1.0) // Ensure 0.0 <= opacity <= 1.0. - dst := Clone(background) - pos = pos.Sub(background.Bounds().Min) - pasteRect := image.Rectangle{Min: pos, Max: pos.Add(img.Bounds().Size())} - interRect := pasteRect.Intersect(dst.Bounds()) - if interRect.Empty() { - return dst - } - src := newScanner(img) - parallel(interRect.Min.Y, interRect.Max.Y, func(ys <-chan int) { - scanLine := make([]uint8, interRect.Dx()*4) - for y := range ys { - x1 := interRect.Min.X - pasteRect.Min.X - x2 := interRect.Max.X - pasteRect.Min.X - y1 := y - pasteRect.Min.Y - y2 := y1 + 1 - src.scan(x1, y1, x2, y2, scanLine) - i := y*dst.Stride + interRect.Min.X*4 - j := 0 - for x := interRect.Min.X; x < interRect.Max.X; x++ { - d := dst.Pix[i : i+4 : i+4] - r1 := float64(d[0]) - g1 := float64(d[1]) - b1 := float64(d[2]) - a1 := float64(d[3]) - - s := scanLine[j : j+4 : j+4] - r2 := float64(s[0]) - g2 := float64(s[1]) - b2 := float64(s[2]) - a2 := float64(s[3]) - - coef2 := opacity * a2 / 255 - coef1 := (1 - coef2) * a1 / 255 - coefSum := coef1 + coef2 - coef1 /= coefSum - coef2 /= coefSum - - d[0] = uint8(r1*coef1 + r2*coef2) - d[1] = uint8(g1*coef1 + g2*coef2) - d[2] = uint8(b1*coef1 + b2*coef2) - d[3] = uint8(math.Min(a1+a2*opacity*(255-a1)/255, 255)) - - i += 4 - j += 4 - } - } - }) - return dst -} - -// OverlayCenter overlays the img image to the center of the background image and -// returns the combined image. Opacity parameter is the opacity of the img -// image layer, used to compose the images, it must be from 0.0 to 1.0. -func OverlayCenter(background, img image.Image, opacity float64) *image.NRGBA { - bgBounds := background.Bounds() - bgW := bgBounds.Dx() - bgH := bgBounds.Dy() - bgMinX := bgBounds.Min.X - bgMinY := bgBounds.Min.Y - - centerX := bgMinX + bgW/2 - centerY := bgMinY + bgH/2 - - x0 := centerX - img.Bounds().Dx()/2 - y0 := centerY - img.Bounds().Dy()/2 - - return Overlay(background, img, image.Point{x0, y0}, opacity) -} diff --git a/backend/vendor/github.com/disintegration/imaging/transform.go b/backend/vendor/github.com/disintegration/imaging/transform.go deleted file mode 100644 index fe4a92f9..00000000 --- a/backend/vendor/github.com/disintegration/imaging/transform.go +++ /dev/null @@ -1,268 +0,0 @@ -package imaging - -import ( - "image" - "image/color" - "math" -) - -// FlipH flips the image horizontally (from left to right) and returns the transformed image. -func FlipH(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.w - dstH := src.h - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcY := dstY - src.scan(0, srcY, src.w, srcY+1, dst.Pix[i:i+rowSize]) - reverse(dst.Pix[i : i+rowSize]) - } - }) - return dst -} - -// FlipV flips the image vertically (from top to bottom) and returns the transformed image. -func FlipV(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.w - dstH := src.h - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcY := dstH - dstY - 1 - src.scan(0, srcY, src.w, srcY+1, dst.Pix[i:i+rowSize]) - } - }) - return dst -} - -// Transpose flips the image horizontally and rotates 90 degrees counter-clockwise. -func Transpose(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.h - dstH := src.w - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcX := dstY - src.scan(srcX, 0, srcX+1, src.h, dst.Pix[i:i+rowSize]) - } - }) - return dst -} - -// Transverse flips the image vertically and rotates 90 degrees counter-clockwise. -func Transverse(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.h - dstH := src.w - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcX := dstH - dstY - 1 - src.scan(srcX, 0, srcX+1, src.h, dst.Pix[i:i+rowSize]) - reverse(dst.Pix[i : i+rowSize]) - } - }) - return dst -} - -// Rotate90 rotates the image 90 degrees counter-clockwise and returns the transformed image. -func Rotate90(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.h - dstH := src.w - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcX := dstH - dstY - 1 - src.scan(srcX, 0, srcX+1, src.h, dst.Pix[i:i+rowSize]) - } - }) - return dst -} - -// Rotate180 rotates the image 180 degrees counter-clockwise and returns the transformed image. -func Rotate180(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.w - dstH := src.h - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcY := dstH - dstY - 1 - src.scan(0, srcY, src.w, srcY+1, dst.Pix[i:i+rowSize]) - reverse(dst.Pix[i : i+rowSize]) - } - }) - return dst -} - -// Rotate270 rotates the image 270 degrees counter-clockwise and returns the transformed image. -func Rotate270(img image.Image) *image.NRGBA { - src := newScanner(img) - dstW := src.h - dstH := src.w - rowSize := dstW * 4 - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - i := dstY * dst.Stride - srcX := dstY - src.scan(srcX, 0, srcX+1, src.h, dst.Pix[i:i+rowSize]) - reverse(dst.Pix[i : i+rowSize]) - } - }) - return dst -} - -// Rotate rotates an image by the given angle counter-clockwise . -// The angle parameter is the rotation angle in degrees. -// The bgColor parameter specifies the color of the uncovered zone after the rotation. -func Rotate(img image.Image, angle float64, bgColor color.Color) *image.NRGBA { - angle = angle - math.Floor(angle/360)*360 - - switch angle { - case 0: - return Clone(img) - case 90: - return Rotate90(img) - case 180: - return Rotate180(img) - case 270: - return Rotate270(img) - } - - src := toNRGBA(img) - srcW := src.Bounds().Max.X - srcH := src.Bounds().Max.Y - dstW, dstH := rotatedSize(srcW, srcH, angle) - dst := image.NewNRGBA(image.Rect(0, 0, dstW, dstH)) - - if dstW <= 0 || dstH <= 0 { - return dst - } - - srcXOff := float64(srcW)/2 - 0.5 - srcYOff := float64(srcH)/2 - 0.5 - dstXOff := float64(dstW)/2 - 0.5 - dstYOff := float64(dstH)/2 - 0.5 - - bgColorNRGBA := color.NRGBAModel.Convert(bgColor).(color.NRGBA) - sin, cos := math.Sincos(math.Pi * angle / 180) - - parallel(0, dstH, func(ys <-chan int) { - for dstY := range ys { - for dstX := 0; dstX < dstW; dstX++ { - xf, yf := rotatePoint(float64(dstX)-dstXOff, float64(dstY)-dstYOff, sin, cos) - xf, yf = xf+srcXOff, yf+srcYOff - interpolatePoint(dst, dstX, dstY, src, xf, yf, bgColorNRGBA) - } - } - }) - - return dst -} - -func rotatePoint(x, y, sin, cos float64) (float64, float64) { - return x*cos - y*sin, x*sin + y*cos -} - -func rotatedSize(w, h int, angle float64) (int, int) { - if w <= 0 || h <= 0 { - return 0, 0 - } - - sin, cos := math.Sincos(math.Pi * angle / 180) - x1, y1 := rotatePoint(float64(w-1), 0, sin, cos) - x2, y2 := rotatePoint(float64(w-1), float64(h-1), sin, cos) - x3, y3 := rotatePoint(0, float64(h-1), sin, cos) - - minx := math.Min(x1, math.Min(x2, math.Min(x3, 0))) - maxx := math.Max(x1, math.Max(x2, math.Max(x3, 0))) - miny := math.Min(y1, math.Min(y2, math.Min(y3, 0))) - maxy := math.Max(y1, math.Max(y2, math.Max(y3, 0))) - - neww := maxx - minx + 1 - if neww-math.Floor(neww) > 0.1 { - neww++ - } - newh := maxy - miny + 1 - if newh-math.Floor(newh) > 0.1 { - newh++ - } - - return int(neww), int(newh) -} - -func interpolatePoint(dst *image.NRGBA, dstX, dstY int, src *image.NRGBA, xf, yf float64, bgColor color.NRGBA) { - j := dstY*dst.Stride + dstX*4 - d := dst.Pix[j : j+4 : j+4] - - x0 := int(math.Floor(xf)) - y0 := int(math.Floor(yf)) - bounds := src.Bounds() - if !image.Pt(x0, y0).In(image.Rect(bounds.Min.X-1, bounds.Min.Y-1, bounds.Max.X, bounds.Max.Y)) { - d[0] = bgColor.R - d[1] = bgColor.G - d[2] = bgColor.B - d[3] = bgColor.A - return - } - - xq := xf - float64(x0) - yq := yf - float64(y0) - points := [4]image.Point{ - {x0, y0}, - {x0 + 1, y0}, - {x0, y0 + 1}, - {x0 + 1, y0 + 1}, - } - weights := [4]float64{ - (1 - xq) * (1 - yq), - xq * (1 - yq), - (1 - xq) * yq, - xq * yq, - } - - var r, g, b, a float64 - for i := 0; i < 4; i++ { - p := points[i] - w := weights[i] - if p.In(bounds) { - i := p.Y*src.Stride + p.X*4 - s := src.Pix[i : i+4 : i+4] - wa := float64(s[3]) * w - r += float64(s[0]) * wa - g += float64(s[1]) * wa - b += float64(s[2]) * wa - a += wa - } else { - wa := float64(bgColor.A) * w - r += float64(bgColor.R) * wa - g += float64(bgColor.G) * wa - b += float64(bgColor.B) * wa - a += wa - } - } - if a != 0 { - aInv := 1 / a - d[0] = clamp(r * aInv) - d[1] = clamp(g * aInv) - d[2] = clamp(b * aInv) - d[3] = clamp(a) - } -} diff --git a/backend/vendor/github.com/disintegration/imaging/utils.go b/backend/vendor/github.com/disintegration/imaging/utils.go deleted file mode 100644 index 6c7af1a5..00000000 --- a/backend/vendor/github.com/disintegration/imaging/utils.go +++ /dev/null @@ -1,167 +0,0 @@ -package imaging - -import ( - "image" - "math" - "runtime" - "sync" -) - -// parallel processes the data in separate goroutines. -func parallel(start, stop int, fn func(<-chan int)) { - count := stop - start - if count < 1 { - return - } - - procs := runtime.GOMAXPROCS(0) - if procs > count { - procs = count - } - - c := make(chan int, count) - for i := start; i < stop; i++ { - c <- i - } - close(c) - - var wg sync.WaitGroup - for i := 0; i < procs; i++ { - wg.Add(1) - go func() { - defer wg.Done() - fn(c) - }() - } - wg.Wait() -} - -// absint returns the absolute value of i. -func absint(i int) int { - if i < 0 { - return -i - } - return i -} - -// clamp rounds and clamps float64 value to fit into uint8. -func clamp(x float64) uint8 { - v := int64(x + 0.5) - if v > 255 { - return 255 - } - if v > 0 { - return uint8(v) - } - return 0 -} - -func reverse(pix []uint8) { - if len(pix) <= 4 { - return - } - i := 0 - j := len(pix) - 4 - for i < j { - pi := pix[i : i+4 : i+4] - pj := pix[j : j+4 : j+4] - pi[0], pj[0] = pj[0], pi[0] - pi[1], pj[1] = pj[1], pi[1] - pi[2], pj[2] = pj[2], pi[2] - pi[3], pj[3] = pj[3], pi[3] - i += 4 - j -= 4 - } -} - -func toNRGBA(img image.Image) *image.NRGBA { - if img, ok := img.(*image.NRGBA); ok { - return &image.NRGBA{ - Pix: img.Pix, - Stride: img.Stride, - Rect: img.Rect.Sub(img.Rect.Min), - } - } - return Clone(img) -} - -// rgbToHSL converts a color from RGB to HSL. -func rgbToHSL(r, g, b uint8) (float64, float64, float64) { - rr := float64(r) / 255 - gg := float64(g) / 255 - bb := float64(b) / 255 - - max := math.Max(rr, math.Max(gg, bb)) - min := math.Min(rr, math.Min(gg, bb)) - - l := (max + min) / 2 - - if max == min { - return 0, 0, l - } - - var h, s float64 - d := max - min - if l > 0.5 { - s = d / (2 - max - min) - } else { - s = d / (max + min) - } - - switch max { - case rr: - h = (gg - bb) / d - if g < b { - h += 6 - } - case gg: - h = (bb-rr)/d + 2 - case bb: - h = (rr-gg)/d + 4 - } - h /= 6 - - return h, s, l -} - -// hslToRGB converts a color from HSL to RGB. -func hslToRGB(h, s, l float64) (uint8, uint8, uint8) { - var r, g, b float64 - if s == 0 { - v := clamp(l * 255) - return v, v, v - } - - var q float64 - if l < 0.5 { - q = l * (1 + s) - } else { - q = l + s - l*s - } - p := 2*l - q - - r = hueToRGB(p, q, h+1/3.0) - g = hueToRGB(p, q, h) - b = hueToRGB(p, q, h-1/3.0) - - return clamp(r * 255), clamp(g * 255), clamp(b * 255) -} - -func hueToRGB(p, q, t float64) float64 { - if t < 0 { - t++ - } - if t > 1 { - t-- - } - if t < 1/6.0 { - return p + (q-p)*6*t - } - if t < 1/2.0 { - return q - } - if t < 2/3.0 { - return p + (q-p)*(2/3.0-t)*6 - } - return p -} diff --git a/backend/vendor/github.com/dsnet/compress/.travis.yml b/backend/vendor/github.com/dsnet/compress/.travis.yml deleted file mode 100644 index 7e79820e..00000000 --- a/backend/vendor/github.com/dsnet/compress/.travis.yml +++ /dev/null @@ -1,36 +0,0 @@ -sudo: false -language: go -before_install: - - curl -L https://github.com/google/brotli/archive/v1.0.2.tar.gz | tar -zxv - - (cd brotli-1.0.2 && mkdir out && cd out && ../configure-cmake && make && sudo make install) - - rm -rf brotli-1.0.2 - - curl -L https://github.com/facebook/zstd/archive/v1.3.2.tar.gz | tar -zxv - - (cd zstd-1.3.2 && sudo make install) - - rm -rf zstd-1.3.2 - - sudo ldconfig - - mkdir /tmp/go1.12 - - curl -L -s https://dl.google.com/go/go1.12.linux-amd64.tar.gz | tar -zxf - -C /tmp/go1.12 --strip-components 1 - - unset GOROOT - - (GO111MODULE=on /tmp/go1.12/bin/go mod vendor) - - (cd /tmp && GO111MODULE=on /tmp/go1.12/bin/go get golang.org/x/lint/golint@8f45f776aaf18cebc8d65861cc70c33c60471952) - - (cd /tmp && GO111MODULE=on /tmp/go1.12/bin/go get honnef.co/go/tools/cmd/staticcheck@2019.1) -matrix: - include: - - go: 1.9.x - script: - - go test -v -race ./... - - go: 1.10.x - script: - - go test -v -race ./... - - go: 1.11.x - script: - - go test -v -race ./... - - go: 1.12.x - script: - - ./ztest.sh - - go: master - script: - - go test -v -race ./... - allow_failures: - - go: master - fast_finish: true diff --git a/backend/vendor/github.com/dsnet/compress/LICENSE.md b/backend/vendor/github.com/dsnet/compress/LICENSE.md deleted file mode 100644 index 945b396c..00000000 --- a/backend/vendor/github.com/dsnet/compress/LICENSE.md +++ /dev/null @@ -1,24 +0,0 @@ -Copyright © 2015, Joe Tsai and The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. -* Neither the copyright holder nor the names of its contributors may be used to -endorse or promote products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/dsnet/compress/README.md b/backend/vendor/github.com/dsnet/compress/README.md deleted file mode 100644 index 63afb01c..00000000 --- a/backend/vendor/github.com/dsnet/compress/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# Collection of compression libraries for Go # - -[![GoDoc](https://godoc.org/github.com/dsnet/compress/cmp?status.svg)](https://godoc.org/github.com/dsnet/compress) -[![Build Status](https://travis-ci.org/dsnet/compress.svg?branch=master)](https://travis-ci.org/dsnet/compress) -[![Report Card](https://goreportcard.com/badge/github.com/dsnet/compress)](https://goreportcard.com/report/github.com/dsnet/compress) - -## Introduction ## - -**NOTE: This library is in active development. As such, there are no guarantees about the stability of the API. The author reserves the right to arbitrarily break the API for any reason.** - -This repository hosts a collection of compression related libraries. The goal of this project is to provide pure Go implementations for popular compression algorithms beyond what the Go standard library provides. The goals for these packages are as follows: -* Maintainable: That the code remains well documented, well tested, readable, easy to maintain, and easy to verify that it conforms to the specification for the format being implemented. -* Performant: To be able to compress and decompress within at least 80% of the rates that the C implementations are able to achieve. -* Flexible: That the code provides low-level and fine granularity control over the compression streams similar to what the C APIs would provide. - -Of these three, the first objective is often at odds with the other two objectives and provides interesting challenges. Higher performance can often be achieved by muddling abstraction layers or using non-intuitive low-level primitives. Also, more features and functionality, while useful in some situations, often complicates the API. Thus, this package will attempt to satisfy all the goals, but will defer to favoring maintainability when the performance or flexibility benefits are not significant enough. - - -## Library Status ## - -For the packages available, only some features are currently implemented: - -| Package | Reader | Writer | -| ------- | :----: | :----: | -| brotli | :white_check_mark: | | -| bzip2 | :white_check_mark: | :white_check_mark: | -| flate | :white_check_mark: | | -| xflate | :white_check_mark: | :white_check_mark: | - -This library is in active development. As such, there are no guarantees about the stability of the API. The author reserves the right to arbitrarily break the API for any reason. When the library becomes more mature, it is planned to eventually conform to some strict versioning scheme like [Semantic Versioning](http://semver.org/). - -However, in the meanwhile, this library does provide some basic API guarantees. For the types defined below, the method signatures are guaranteed to not change. Note that the author still reserves the right to change the fields within each ```Reader``` and ```Writer``` structs. -```go -type ReaderConfig struct { ... } -type Reader struct { ... } - func NewReader(io.Reader, *ReaderConfig) (*Reader, error) { ... } - func (*Reader) Read([]byte) (int, error) { ... } - func (*Reader) Close() error { ... } - -type WriterConfig struct { ... } -type Writer struct { ... } - func NewWriter(io.Writer, *WriterConfig) (*Writer, error) { ... } - func (*Writer) Write([]byte) (int, error) { ... } - func (*Writer) Close() error { ... } -``` - -To see what work still remains, see the [Task List](https://github.com/dsnet/compress/wiki/Task-List). - -## Performance ## - -See [Performance Metrics](https://github.com/dsnet/compress/wiki/Performance-Metrics). - - -## Frequently Asked Questions ## - -See [Frequently Asked Questions](https://github.com/dsnet/compress/wiki/Frequently-Asked-Questions). - - -## Installation ## - -Run the command: - -```go get -u github.com/dsnet/compress``` - -This library requires `Go1.9` or higher in order to build. - - -## Packages ## - -| Package | Description | -| :------ | :---------- | -| [brotli](http://godoc.org/github.com/dsnet/compress/brotli) | Package brotli implements the Brotli format, described in RFC 7932. | -| [bzip2](http://godoc.org/github.com/dsnet/compress/bzip2) | Package bzip2 implements the BZip2 compressed data format. | -| [flate](http://godoc.org/github.com/dsnet/compress/flate) | Package flate implements the DEFLATE format, described in RFC 1951. | -| [xflate](http://godoc.org/github.com/dsnet/compress/xflate) | Package xflate implements the XFLATE format, an random-access extension to DEFLATE. | diff --git a/backend/vendor/github.com/dsnet/compress/api.go b/backend/vendor/github.com/dsnet/compress/api.go deleted file mode 100644 index f80a9232..00000000 --- a/backend/vendor/github.com/dsnet/compress/api.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Package compress is a collection of compression libraries. -package compress - -import ( - "bufio" - "io" - - "github.com/dsnet/compress/internal/errors" -) - -// The Error interface identifies all compression related errors. -type Error interface { - error - CompressError() - - // IsDeprecated reports the use of a deprecated and unsupported feature. - IsDeprecated() bool - - // IsCorrupted reports whether the input stream was corrupted. - IsCorrupted() bool -} - -var _ Error = errors.Error{} - -// ByteReader is an interface accepted by all decompression Readers. -// It guarantees that the decompressor never reads more data than is necessary -// from the underlying io.Reader. -type ByteReader interface { - io.Reader - io.ByteReader -} - -var _ ByteReader = (*bufio.Reader)(nil) - -// BufferedReader is an interface accepted by all decompression Readers. -// It guarantees that the decompressor never reads more data than is necessary -// from the underlying io.Reader. Since BufferedReader allows a decompressor -// to peek at bytes further along in the stream without advancing the read -// pointer, decompression can experience a significant performance gain when -// provided a reader that satisfies this interface. Thus, a decompressor will -// prefer this interface over ByteReader for performance reasons. -// -// The bufio.Reader satisfies this interface. -type BufferedReader interface { - io.Reader - - // Buffered returns the number of bytes currently buffered. - // - // This value becomes invalid following the next Read/Discard operation. - Buffered() int - - // Peek returns the next n bytes without advancing the reader. - // - // If Peek returns fewer than n bytes, it also returns an error explaining - // why the peek is short. Peek must support peeking of at least 8 bytes. - // If 0 <= n <= Buffered(), Peek is guaranteed to succeed without reading - // from the underlying io.Reader. - // - // This result becomes invalid following the next Read/Discard operation. - Peek(n int) ([]byte, error) - - // Discard skips the next n bytes, returning the number of bytes discarded. - // - // If Discard skips fewer than n bytes, it also returns an error. - // If 0 <= n <= Buffered(), Discard is guaranteed to succeed without reading - // from the underlying io.Reader. - Discard(n int) (int, error) -} - -var _ BufferedReader = (*bufio.Reader)(nil) diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/bwt.go b/backend/vendor/github.com/dsnet/compress/bzip2/bwt.go deleted file mode 100644 index 4ed2d744..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/bwt.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package bzip2 - -import "github.com/dsnet/compress/bzip2/internal/sais" - -// The Burrows-Wheeler Transform implementation used here is based on the -// Suffix Array by Induced Sorting (SA-IS) methodology by Nong, Zhang, and Chan. -// This implementation uses the sais algorithm originally written by Yuta Mori. -// -// The SA-IS algorithm runs in O(n) and outputs a Suffix Array. There is a -// mathematical relationship between Suffix Arrays and the Burrows-Wheeler -// Transform, such that a SA can be converted to a BWT in O(n) time. -// -// References: -// -// http://www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-124.pdf -// https://github.com/cscott/compressjs/blob/master/lib/BWT.js -// https://www.quora.com/How-can-I-optimize-burrows-wheeler-transform-and-inverse-transform-to-work-in-O-n-time-O-n-space -type burrowsWheelerTransform struct { - buf []byte - sa []int - perm []uint32 -} - -func (bwt *burrowsWheelerTransform) Encode(buf []byte) (ptr int) { - if len(buf) == 0 { - return -1 - } - - // TODO(dsnet): Find a way to avoid the duplicate input string method. - // We only need to do this because suffix arrays (by definition) only - // operate non-wrapped suffixes of a string. On the other hand, - // the BWT specifically used in bzip2 operate on a strings that wrap-around - // when being sorted. - - // Step 1: Concatenate the input string to itself so that we can use the - // suffix array algorithm for bzip2's variant of BWT. - n := len(buf) - bwt.buf = append(append(bwt.buf[:0], buf...), buf...) - if cap(bwt.sa) < 2*n { - bwt.sa = make([]int, 2*n) - } - t := bwt.buf[:2*n] - sa := bwt.sa[:2*n] - - // Step 2: Compute the suffix array (SA). The input string, t, will not be - // modified, while the results will be written to the output, sa. - sais.ComputeSA(t, sa) - - // Step 3: Convert the SA to a BWT. Since ComputeSA does not mutate the - // input, we have two copies of the input; in buf and buf2. Thus, we write - // the transformation to buf, while using buf2. - var j int - buf2 := t[n:] - for _, i := range sa { - if i < n { - if i == 0 { - ptr = j - i = n - } - buf[j] = buf2[i-1] - j++ - } - } - return ptr -} - -func (bwt *burrowsWheelerTransform) Decode(buf []byte, ptr int) { - if len(buf) == 0 { - return - } - - // Step 1: Compute cumm, where cumm[ch] reports the total number of - // characters that precede the character ch in the alphabet. - var cumm [256]int - for _, v := range buf { - cumm[v]++ - } - var sum int - for i, v := range cumm { - cumm[i] = sum - sum += v - } - - // Step 2: Compute perm, where perm[ptr] contains a pointer to the next - // byte in buf and the next pointer in perm itself. - if cap(bwt.perm) < len(buf) { - bwt.perm = make([]uint32, len(buf)) - } - perm := bwt.perm[:len(buf)] - for i, b := range buf { - perm[cumm[b]] = uint32(i) - cumm[b]++ - } - - // Step 3: Follow each pointer in perm to the next byte, starting with the - // origin pointer. - if cap(bwt.buf) < len(buf) { - bwt.buf = make([]byte, len(buf)) - } - buf2 := bwt.buf[:len(buf)] - i := perm[ptr] - for j := range buf2 { - buf2[j] = buf[i] - i = perm[i] - } - copy(buf, buf2) -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/common.go b/backend/vendor/github.com/dsnet/compress/bzip2/common.go deleted file mode 100644 index ae4c966e..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/common.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Package bzip2 implements the BZip2 compressed data format. -// -// Canonical C implementation: -// -// http://bzip.org -// -// Unofficial format specification: -// -// https://github.com/dsnet/compress/blob/master/doc/bzip2-format.pdf -package bzip2 - -import ( - "fmt" - "hash/crc32" - - "github.com/dsnet/compress/internal" - "github.com/dsnet/compress/internal/errors" -) - -// There does not exist a formal specification of the BZip2 format. As such, -// much of this work is derived by either reverse engineering the original C -// source code or using secondary sources. -// -// Significant amounts of fuzz testing is done to ensure that outputs from -// this package is properly decoded by the C library. Furthermore, we test that -// both this package and the C library agree about what inputs are invalid. -// -// Compression stack: -// Run-length encoding 1 (RLE1) -// Burrows-Wheeler transform (BWT) -// Move-to-front transform (MTF) -// Run-length encoding 2 (RLE2) -// Prefix encoding (PE) -// -// References: -// http://bzip.org/ -// https://en.wikipedia.org/wiki/Bzip2 -// https://code.google.com/p/jbzip2/ - -const ( - BestSpeed = 1 - BestCompression = 9 - DefaultCompression = 6 -) - -const ( - hdrMagic = 0x425a // Hex of "BZ" - blkMagic = 0x314159265359 // BCD of PI - endMagic = 0x177245385090 // BCD of sqrt(PI) - - blockSize = 100000 -) - -func errorf(c int, f string, a ...interface{}) error { - return errors.Error{Code: c, Pkg: "bzip2", Msg: fmt.Sprintf(f, a...)} -} - -func panicf(c int, f string, a ...interface{}) { - errors.Panic(errorf(c, f, a...)) -} - -// errWrap converts a lower-level errors.Error to be one from this package. -// The replaceCode passed in will be used to replace the code for any errors -// with the errors.Invalid code. -// -// For the Reader, set this to errors.Corrupted. -// For the Writer, set this to errors.Internal. -func errWrap(err error, replaceCode int) error { - if cerr, ok := err.(errors.Error); ok { - if errors.IsInvalid(cerr) { - cerr.Code = replaceCode - } - err = errorf(cerr.Code, "%s", cerr.Msg) - } - return err -} - -var errClosed = errorf(errors.Closed, "") - -// crc computes the CRC-32 used by BZip2. -// -// The CRC-32 computation in bzip2 treats bytes as having bits in big-endian -// order. That is, the MSB is read before the LSB. Thus, we can use the -// standard library version of CRC-32 IEEE with some minor adjustments. -// -// The byte array is used as an intermediate buffer to swap the bits of every -// byte of the input. -type crc struct { - val uint32 - buf [256]byte -} - -// update computes the CRC-32 of appending buf to c. -func (c *crc) update(buf []byte) { - cval := internal.ReverseUint32(c.val) - for len(buf) > 0 { - n := len(buf) - if n > len(c.buf) { - n = len(c.buf) - } - for i, b := range buf[:n] { - c.buf[i] = internal.ReverseLUT[b] - } - cval = crc32.Update(cval, crc32.IEEETable, c.buf[:n]) - buf = buf[n:] - } - c.val = internal.ReverseUint32(cval) -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/fuzz_off.go b/backend/vendor/github.com/dsnet/compress/bzip2/fuzz_off.go deleted file mode 100644 index ec894e2e..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/fuzz_off.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2016, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -//go:build !gofuzz -// +build !gofuzz - -// This file exists to suppress fuzzing details from release builds. - -package bzip2 - -type fuzzReader struct{} - -func (*fuzzReader) updateChecksum(int64, uint32) {} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/fuzz_on.go b/backend/vendor/github.com/dsnet/compress/bzip2/fuzz_on.go deleted file mode 100644 index 0bae7718..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/fuzz_on.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2016, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -//go:build gofuzz -// +build gofuzz - -// This file exists to export internal implementation details for fuzz testing. - -package bzip2 - -func ForwardBWT(buf []byte) (ptr int) { - var bwt burrowsWheelerTransform - return bwt.Encode(buf) -} - -func ReverseBWT(buf []byte, ptr int) { - var bwt burrowsWheelerTransform - bwt.Decode(buf, ptr) -} - -type fuzzReader struct { - Checksums Checksums -} - -// updateChecksum updates Checksums. -// -// If a valid pos is provided, it appends the (pos, val) pair to the slice. -// Otherwise, it will update the last record with the new value. -func (fr *fuzzReader) updateChecksum(pos int64, val uint32) { - if pos >= 0 { - fr.Checksums = append(fr.Checksums, Checksum{pos, val}) - } else { - fr.Checksums[len(fr.Checksums)-1].Value = val - } -} - -type Checksum struct { - Offset int64 // Bit offset of the checksum - Value uint32 // Checksum value -} - -type Checksums []Checksum - -// Apply overwrites all checksum fields in d with the ones in cs. -func (cs Checksums) Apply(d []byte) []byte { - d = append([]byte(nil), d...) - for _, c := range cs { - setU32(d, c.Offset, c.Value) - } - return d -} - -func setU32(d []byte, pos int64, val uint32) { - for i := uint(0); i < 32; i++ { - bpos := uint64(pos) + uint64(i) - d[bpos/8] &= ^byte(1 << (7 - bpos%8)) - d[bpos/8] |= byte(val>>(31-i)) << (7 - bpos%8) - } -} - -// Verify checks that all checksum fields in d matches those in cs. -func (cs Checksums) Verify(d []byte) bool { - for _, c := range cs { - if getU32(d, c.Offset) != c.Value { - return false - } - } - return true -} - -func getU32(d []byte, pos int64) (val uint32) { - for i := uint(0); i < 32; i++ { - bpos := uint64(pos) + uint64(i) - val |= (uint32(d[bpos/8] >> (7 - bpos%8))) << (31 - i) - } - return val -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/common.go b/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/common.go deleted file mode 100644 index cd4eee82..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/common.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Package sais implements a linear time suffix array algorithm. -package sais - -//go:generate go run sais_gen.go byte sais_byte.go -//go:generate go run sais_gen.go int sais_int.go - -// This package ports the C sais implementation by Yuta Mori. The ports are -// located in sais_byte.go and sais_int.go, which are identical to each other -// except for the types. Since Go does not support generics, we use generators to -// create the two files. -// -// References: -// https://sites.google.com/site/yuta256/sais -// https://www.researchgate.net/publication/221313676_Linear_Time_Suffix_Array_Construction_Using_D-Critical_Substrings -// https://www.researchgate.net/publication/224176324_Two_Efficient_Algorithms_for_Linear_Time_Suffix_Array_Construction - -// ComputeSA computes the suffix array of t and places the result in sa. -// Both t and sa must be the same length. -func ComputeSA(t []byte, sa []int) { - if len(sa) != len(t) { - panic("mismatching sizes") - } - computeSA_byte(t, sa, 0, len(t), 256) -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_byte.go b/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_byte.go deleted file mode 100644 index 01b8529b..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_byte.go +++ /dev/null @@ -1,661 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Code generated by sais_gen.go. DO NOT EDIT. - -// ==================================================== -// Copyright (c) 2008-2010 Yuta Mori All Rights Reserved. -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// ==================================================== - -package sais - -func getCounts_byte(T []byte, C []int, n, k int) { - var i int - for i = 0; i < k; i++ { - C[i] = 0 - } - for i = 0; i < n; i++ { - C[T[i]]++ - } -} - -func getBuckets_byte(C, B []int, k int, end bool) { - var i, sum int - if end { - for i = 0; i < k; i++ { - sum += C[i] - B[i] = sum - } - } else { - for i = 0; i < k; i++ { - sum += C[i] - B[i] = sum - C[i] - } - } -} - -func sortLMS1_byte(T []byte, SA, C, B []int, n, k int) { - var b, i, j int - var c0, c1 int - - // Compute SAl. - if &C[0] == &B[0] { - getCounts_byte(T, C, n, k) - } - getBuckets_byte(C, B, k, false) // Find starts of buckets - j = n - 1 - c1 = int(T[j]) - b = B[c1] - j-- - if int(T[j]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - for i = 0; i < n; i++ { - if j = SA[i]; j > 0 { - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - if int(T[j]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - SA[i] = 0 - } else if j < 0 { - SA[i] = ^j - } - } - - // Compute SAs. - if &C[0] == &B[0] { - getCounts_byte(T, C, n, k) - } - getBuckets_byte(C, B, k, true) // Find ends of buckets - c1 = 0 - b = B[c1] - for i = n - 1; i >= 0; i-- { - if j = SA[i]; j > 0 { - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - b-- - if int(T[j]) > c1 { - SA[b] = ^(j + 1) - } else { - SA[b] = j - } - SA[i] = 0 - } - } -} - -func postProcLMS1_byte(T []byte, SA []int, n, m int) int { - var i, j, p, q, plen, qlen, name int - var c0, c1 int - var diff bool - - // Compact all the sorted substrings into the first m items of SA. - // 2*m must be not larger than n (provable). - for i = 0; SA[i] < 0; i++ { - SA[i] = ^SA[i] - } - if i < m { - for j, i = i, i+1; ; i++ { - if p = SA[i]; p < 0 { - SA[j] = ^p - j++ - SA[i] = 0 - if j == m { - break - } - } - } - } - - // Store the length of all substrings. - i = n - 1 - j = n - 1 - c0 = int(T[n-1]) - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - for i >= 0 { - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 > c1 { - break - } - } - if i >= 0 { - SA[m+((i+1)>>1)] = j - i - j = i + 1 - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - } - } - - // Find the lexicographic names of all substrings. - name = 0 - qlen = 0 - for i, q = 0, n; i < m; i++ { - p = SA[i] - plen = SA[m+(p>>1)] - diff = true - if (plen == qlen) && ((q + plen) < n) { - for j = 0; (j < plen) && (T[p+j] == T[q+j]); j++ { - } - if j == plen { - diff = false - } - } - if diff { - name++ - q = p - qlen = plen - } - SA[m+(p>>1)] = name - } - return name -} - -func sortLMS2_byte(T []byte, SA, C, B, D []int, n, k int) { - var b, i, j, t, d int - var c0, c1 int - - // Compute SAl. - getBuckets_byte(C, B, k, false) // Find starts of buckets - j = n - 1 - c1 = int(T[j]) - b = B[c1] - j-- - if int(T[j]) < c1 { - t = 1 - } else { - t = 0 - } - j += n - if t&1 > 0 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - for i, d = 0, 0; i < n; i++ { - if j = SA[i]; j > 0 { - if n <= j { - d += 1 - j -= n - } - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - t = int(c0) << 1 - if int(T[j]) < c1 { - t |= 1 - } - if D[t] != d { - j += n - D[t] = d - } - if t&1 > 0 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - SA[i] = 0 - } else if j < 0 { - SA[i] = ^j - } - } - for i = n - 1; 0 <= i; i-- { - if SA[i] > 0 { - if SA[i] < n { - SA[i] += n - for j = i - 1; SA[j] < n; j-- { - } - SA[j] -= n - i = j - } - } - } - - // Compute SAs. - getBuckets_byte(C, B, k, true) // Find ends of buckets - c1 = 0 - b = B[c1] - for i, d = n-1, d+1; i >= 0; i-- { - if j = SA[i]; j > 0 { - if n <= j { - d += 1 - j -= n - } - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - t = int(c0) << 1 - if int(T[j]) > c1 { - t |= 1 - } - if D[t] != d { - j += n - D[t] = d - } - b-- - if t&1 > 0 { - SA[b] = ^(j + 1) - } else { - SA[b] = j - } - SA[i] = 0 - } - } -} - -func postProcLMS2_byte(SA []int, n, m int) int { - var i, j, d, name int - - // Compact all the sorted LMS substrings into the first m items of SA. - name = 0 - for i = 0; SA[i] < 0; i++ { - j = ^SA[i] - if n <= j { - name += 1 - } - SA[i] = j - } - if i < m { - for d, i = i, i+1; ; i++ { - if j = SA[i]; j < 0 { - j = ^j - if n <= j { - name += 1 - } - SA[d] = j - d++ - SA[i] = 0 - if d == m { - break - } - } - } - } - if name < m { - // Store the lexicographic names. - for i, d = m-1, name+1; 0 <= i; i-- { - if j = SA[i]; n <= j { - j -= n - d-- - } - SA[m+(j>>1)] = d - } - } else { - // Unset flags. - for i = 0; i < m; i++ { - if j = SA[i]; n <= j { - j -= n - SA[i] = j - } - } - } - return name -} - -func induceSA_byte(T []byte, SA, C, B []int, n, k int) { - var b, i, j int - var c0, c1 int - - // Compute SAl. - if &C[0] == &B[0] { - getCounts_byte(T, C, n, k) - } - getBuckets_byte(C, B, k, false) // Find starts of buckets - j = n - 1 - c1 = int(T[j]) - b = B[c1] - if j > 0 && int(T[j-1]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - for i = 0; i < n; i++ { - j = SA[i] - SA[i] = ^j - if j > 0 { - j-- - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - if j > 0 && int(T[j-1]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - } - } - - // Compute SAs. - if &C[0] == &B[0] { - getCounts_byte(T, C, n, k) - } - getBuckets_byte(C, B, k, true) // Find ends of buckets - c1 = 0 - b = B[c1] - for i = n - 1; i >= 0; i-- { - if j = SA[i]; j > 0 { - j-- - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - b-- - if (j == 0) || (int(T[j-1]) > c1) { - SA[b] = ^j - } else { - SA[b] = j - } - } else { - SA[i] = ^j - } - } -} - -func computeSA_byte(T []byte, SA []int, fs, n, k int) { - const ( - minBucketSize = 512 - sortLMS2Limit = 0x3fffffff - ) - - var C, B, D, RA []int - var bo int // Offset of B relative to SA - var b, i, j, m, p, q, name, newfs int - var c0, c1 int - var flags uint - - if k <= minBucketSize { - C = make([]int, k) - if k <= fs { - bo = n + fs - k - B = SA[bo:] - flags = 1 - } else { - B = make([]int, k) - flags = 3 - } - } else if k <= fs { - C = SA[n+fs-k:] - if k <= fs-k { - bo = n + fs - 2*k - B = SA[bo:] - flags = 0 - } else if k <= 4*minBucketSize { - B = make([]int, k) - flags = 2 - } else { - B = C - flags = 8 - } - } else { - C = make([]int, k) - B = C - flags = 4 | 8 - } - if n <= sortLMS2Limit && 2 <= (n/k) { - if flags&1 > 0 { - if 2*k <= fs-k { - flags |= 32 - } else { - flags |= 16 - } - } else if flags == 0 && 2*k <= (fs-2*k) { - flags |= 32 - } - } - - // Stage 1: Reduce the problem by at least 1/2. - // Sort all the LMS-substrings. - getCounts_byte(T, C, n, k) - getBuckets_byte(C, B, k, true) // Find ends of buckets - for i = 0; i < n; i++ { - SA[i] = 0 - } - b = -1 - i = n - 1 - j = n - m = 0 - c0 = int(T[n-1]) - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - for i >= 0 { - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 > c1 { - break - } - } - if i >= 0 { - if b >= 0 { - SA[b] = j - } - B[c1]-- - b = B[c1] - j = i - m++ - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - } - } - - if m > 1 { - if flags&(16|32) > 0 { - if flags&16 > 0 { - D = make([]int, 2*k) - } else { - D = SA[bo-2*k:] - } - B[T[j+1]]++ - for i, j = 0, 0; i < k; i++ { - j += C[i] - if B[i] != j { - SA[B[i]] += n - } - D[i] = 0 - D[i+k] = 0 - } - sortLMS2_byte(T, SA, C, B, D, n, k) - name = postProcLMS2_byte(SA, n, m) - } else { - sortLMS1_byte(T, SA, C, B, n, k) - name = postProcLMS1_byte(T, SA, n, m) - } - } else if m == 1 { - SA[b] = j + 1 - name = 1 - } else { - name = 0 - } - - // Stage 2: Solve the reduced problem. - // Recurse if names are not yet unique. - if name < m { - newfs = n + fs - 2*m - if flags&(1|4|8) == 0 { - if k+name <= newfs { - newfs -= k - } else { - flags |= 8 - } - } - RA = SA[m+newfs:] - for i, j = m+(n>>1)-1, m-1; m <= i; i-- { - if SA[i] != 0 { - RA[j] = SA[i] - 1 - j-- - } - } - computeSA_int(RA, SA, newfs, m, name) - - i = n - 1 - j = m - 1 - c0 = int(T[n-1]) - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - for i >= 0 { - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 > c1 { - break - } - } - if i >= 0 { - RA[j] = i + 1 - j-- - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - } - } - for i = 0; i < m; i++ { - SA[i] = RA[SA[i]] - } - if flags&4 > 0 { - B = make([]int, k) - C = B - } - if flags&2 > 0 { - B = make([]int, k) - } - } - - // Stage 3: Induce the result for the original problem. - if flags&8 > 0 { - getCounts_byte(T, C, n, k) - } - // Put all left-most S characters into their buckets. - if m > 1 { - getBuckets_byte(C, B, k, true) // Find ends of buckets - i = m - 1 - j = n - p = SA[m-1] - c1 = int(T[p]) - for { - c0 = c1 - q = B[c0] - for q < j { - j-- - SA[j] = 0 - } - for { - j-- - SA[j] = p - if i--; i < 0 { - break - } - p = SA[i] - if c1 = int(T[p]); c1 != c0 { - break - } - } - if i < 0 { - break - } - } - for j > 0 { - j-- - SA[j] = 0 - } - } - induceSA_byte(T, SA, C, B, n, k) -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_int.go b/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_int.go deleted file mode 100644 index 280682f0..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/internal/sais/sais_int.go +++ /dev/null @@ -1,661 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Code generated by sais_gen.go. DO NOT EDIT. - -// ==================================================== -// Copyright (c) 2008-2010 Yuta Mori All Rights Reserved. -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// ==================================================== - -package sais - -func getCounts_int(T []int, C []int, n, k int) { - var i int - for i = 0; i < k; i++ { - C[i] = 0 - } - for i = 0; i < n; i++ { - C[T[i]]++ - } -} - -func getBuckets_int(C, B []int, k int, end bool) { - var i, sum int - if end { - for i = 0; i < k; i++ { - sum += C[i] - B[i] = sum - } - } else { - for i = 0; i < k; i++ { - sum += C[i] - B[i] = sum - C[i] - } - } -} - -func sortLMS1_int(T []int, SA, C, B []int, n, k int) { - var b, i, j int - var c0, c1 int - - // Compute SAl. - if &C[0] == &B[0] { - getCounts_int(T, C, n, k) - } - getBuckets_int(C, B, k, false) // Find starts of buckets - j = n - 1 - c1 = int(T[j]) - b = B[c1] - j-- - if int(T[j]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - for i = 0; i < n; i++ { - if j = SA[i]; j > 0 { - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - if int(T[j]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - SA[i] = 0 - } else if j < 0 { - SA[i] = ^j - } - } - - // Compute SAs. - if &C[0] == &B[0] { - getCounts_int(T, C, n, k) - } - getBuckets_int(C, B, k, true) // Find ends of buckets - c1 = 0 - b = B[c1] - for i = n - 1; i >= 0; i-- { - if j = SA[i]; j > 0 { - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - b-- - if int(T[j]) > c1 { - SA[b] = ^(j + 1) - } else { - SA[b] = j - } - SA[i] = 0 - } - } -} - -func postProcLMS1_int(T []int, SA []int, n, m int) int { - var i, j, p, q, plen, qlen, name int - var c0, c1 int - var diff bool - - // Compact all the sorted substrings into the first m items of SA. - // 2*m must be not larger than n (provable). - for i = 0; SA[i] < 0; i++ { - SA[i] = ^SA[i] - } - if i < m { - for j, i = i, i+1; ; i++ { - if p = SA[i]; p < 0 { - SA[j] = ^p - j++ - SA[i] = 0 - if j == m { - break - } - } - } - } - - // Store the length of all substrings. - i = n - 1 - j = n - 1 - c0 = int(T[n-1]) - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - for i >= 0 { - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 > c1 { - break - } - } - if i >= 0 { - SA[m+((i+1)>>1)] = j - i - j = i + 1 - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - } - } - - // Find the lexicographic names of all substrings. - name = 0 - qlen = 0 - for i, q = 0, n; i < m; i++ { - p = SA[i] - plen = SA[m+(p>>1)] - diff = true - if (plen == qlen) && ((q + plen) < n) { - for j = 0; (j < plen) && (T[p+j] == T[q+j]); j++ { - } - if j == plen { - diff = false - } - } - if diff { - name++ - q = p - qlen = plen - } - SA[m+(p>>1)] = name - } - return name -} - -func sortLMS2_int(T []int, SA, C, B, D []int, n, k int) { - var b, i, j, t, d int - var c0, c1 int - - // Compute SAl. - getBuckets_int(C, B, k, false) // Find starts of buckets - j = n - 1 - c1 = int(T[j]) - b = B[c1] - j-- - if int(T[j]) < c1 { - t = 1 - } else { - t = 0 - } - j += n - if t&1 > 0 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - for i, d = 0, 0; i < n; i++ { - if j = SA[i]; j > 0 { - if n <= j { - d += 1 - j -= n - } - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - t = int(c0) << 1 - if int(T[j]) < c1 { - t |= 1 - } - if D[t] != d { - j += n - D[t] = d - } - if t&1 > 0 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - SA[i] = 0 - } else if j < 0 { - SA[i] = ^j - } - } - for i = n - 1; 0 <= i; i-- { - if SA[i] > 0 { - if SA[i] < n { - SA[i] += n - for j = i - 1; SA[j] < n; j-- { - } - SA[j] -= n - i = j - } - } - } - - // Compute SAs. - getBuckets_int(C, B, k, true) // Find ends of buckets - c1 = 0 - b = B[c1] - for i, d = n-1, d+1; i >= 0; i-- { - if j = SA[i]; j > 0 { - if n <= j { - d += 1 - j -= n - } - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - j-- - t = int(c0) << 1 - if int(T[j]) > c1 { - t |= 1 - } - if D[t] != d { - j += n - D[t] = d - } - b-- - if t&1 > 0 { - SA[b] = ^(j + 1) - } else { - SA[b] = j - } - SA[i] = 0 - } - } -} - -func postProcLMS2_int(SA []int, n, m int) int { - var i, j, d, name int - - // Compact all the sorted LMS substrings into the first m items of SA. - name = 0 - for i = 0; SA[i] < 0; i++ { - j = ^SA[i] - if n <= j { - name += 1 - } - SA[i] = j - } - if i < m { - for d, i = i, i+1; ; i++ { - if j = SA[i]; j < 0 { - j = ^j - if n <= j { - name += 1 - } - SA[d] = j - d++ - SA[i] = 0 - if d == m { - break - } - } - } - } - if name < m { - // Store the lexicographic names. - for i, d = m-1, name+1; 0 <= i; i-- { - if j = SA[i]; n <= j { - j -= n - d-- - } - SA[m+(j>>1)] = d - } - } else { - // Unset flags. - for i = 0; i < m; i++ { - if j = SA[i]; n <= j { - j -= n - SA[i] = j - } - } - } - return name -} - -func induceSA_int(T []int, SA, C, B []int, n, k int) { - var b, i, j int - var c0, c1 int - - // Compute SAl. - if &C[0] == &B[0] { - getCounts_int(T, C, n, k) - } - getBuckets_int(C, B, k, false) // Find starts of buckets - j = n - 1 - c1 = int(T[j]) - b = B[c1] - if j > 0 && int(T[j-1]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - for i = 0; i < n; i++ { - j = SA[i] - SA[i] = ^j - if j > 0 { - j-- - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - if j > 0 && int(T[j-1]) < c1 { - SA[b] = ^j - } else { - SA[b] = j - } - b++ - } - } - - // Compute SAs. - if &C[0] == &B[0] { - getCounts_int(T, C, n, k) - } - getBuckets_int(C, B, k, true) // Find ends of buckets - c1 = 0 - b = B[c1] - for i = n - 1; i >= 0; i-- { - if j = SA[i]; j > 0 { - j-- - if c0 = int(T[j]); c0 != c1 { - B[c1] = b - c1 = c0 - b = B[c1] - } - b-- - if (j == 0) || (int(T[j-1]) > c1) { - SA[b] = ^j - } else { - SA[b] = j - } - } else { - SA[i] = ^j - } - } -} - -func computeSA_int(T []int, SA []int, fs, n, k int) { - const ( - minBucketSize = 512 - sortLMS2Limit = 0x3fffffff - ) - - var C, B, D, RA []int - var bo int // Offset of B relative to SA - var b, i, j, m, p, q, name, newfs int - var c0, c1 int - var flags uint - - if k <= minBucketSize { - C = make([]int, k) - if k <= fs { - bo = n + fs - k - B = SA[bo:] - flags = 1 - } else { - B = make([]int, k) - flags = 3 - } - } else if k <= fs { - C = SA[n+fs-k:] - if k <= fs-k { - bo = n + fs - 2*k - B = SA[bo:] - flags = 0 - } else if k <= 4*minBucketSize { - B = make([]int, k) - flags = 2 - } else { - B = C - flags = 8 - } - } else { - C = make([]int, k) - B = C - flags = 4 | 8 - } - if n <= sortLMS2Limit && 2 <= (n/k) { - if flags&1 > 0 { - if 2*k <= fs-k { - flags |= 32 - } else { - flags |= 16 - } - } else if flags == 0 && 2*k <= (fs-2*k) { - flags |= 32 - } - } - - // Stage 1: Reduce the problem by at least 1/2. - // Sort all the LMS-substrings. - getCounts_int(T, C, n, k) - getBuckets_int(C, B, k, true) // Find ends of buckets - for i = 0; i < n; i++ { - SA[i] = 0 - } - b = -1 - i = n - 1 - j = n - m = 0 - c0 = int(T[n-1]) - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - for i >= 0 { - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 > c1 { - break - } - } - if i >= 0 { - if b >= 0 { - SA[b] = j - } - B[c1]-- - b = B[c1] - j = i - m++ - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - } - } - - if m > 1 { - if flags&(16|32) > 0 { - if flags&16 > 0 { - D = make([]int, 2*k) - } else { - D = SA[bo-2*k:] - } - B[T[j+1]]++ - for i, j = 0, 0; i < k; i++ { - j += C[i] - if B[i] != j { - SA[B[i]] += n - } - D[i] = 0 - D[i+k] = 0 - } - sortLMS2_int(T, SA, C, B, D, n, k) - name = postProcLMS2_int(SA, n, m) - } else { - sortLMS1_int(T, SA, C, B, n, k) - name = postProcLMS1_int(T, SA, n, m) - } - } else if m == 1 { - SA[b] = j + 1 - name = 1 - } else { - name = 0 - } - - // Stage 2: Solve the reduced problem. - // Recurse if names are not yet unique. - if name < m { - newfs = n + fs - 2*m - if flags&(1|4|8) == 0 { - if k+name <= newfs { - newfs -= k - } else { - flags |= 8 - } - } - RA = SA[m+newfs:] - for i, j = m+(n>>1)-1, m-1; m <= i; i-- { - if SA[i] != 0 { - RA[j] = SA[i] - 1 - j-- - } - } - computeSA_int(RA, SA, newfs, m, name) - - i = n - 1 - j = m - 1 - c0 = int(T[n-1]) - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - for i >= 0 { - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 > c1 { - break - } - } - if i >= 0 { - RA[j] = i + 1 - j-- - for { - c1 = c0 - if i--; i < 0 { - break - } - if c0 = int(T[i]); c0 < c1 { - break - } - } - } - } - for i = 0; i < m; i++ { - SA[i] = RA[SA[i]] - } - if flags&4 > 0 { - B = make([]int, k) - C = B - } - if flags&2 > 0 { - B = make([]int, k) - } - } - - // Stage 3: Induce the result for the original problem. - if flags&8 > 0 { - getCounts_int(T, C, n, k) - } - // Put all left-most S characters into their buckets. - if m > 1 { - getBuckets_int(C, B, k, true) // Find ends of buckets - i = m - 1 - j = n - p = SA[m-1] - c1 = int(T[p]) - for { - c0 = c1 - q = B[c0] - for q < j { - j-- - SA[j] = 0 - } - for { - j-- - SA[j] = p - if i--; i < 0 { - break - } - p = SA[i] - if c1 = int(T[p]); c1 != c0 { - break - } - } - if i < 0 { - break - } - } - for j > 0 { - j-- - SA[j] = 0 - } - } - induceSA_int(T, SA, C, B, n, k) -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/mtf_rle2.go b/backend/vendor/github.com/dsnet/compress/bzip2/mtf_rle2.go deleted file mode 100644 index 8f5c1ac9..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/mtf_rle2.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package bzip2 - -import "github.com/dsnet/compress/internal/errors" - -// moveToFront implements both the MTF and RLE stages of bzip2 at the same time. -// Any runs of zeros in the encoded output will be replaced by a sequence of -// RUNA and RUNB symbols are encode the length of the run. -// -// The RLE encoding used can actually be encoded to and decoded from using -// normal two's complement arithmetic. The methodology for doing so is below. -// -// Assuming the following: -// -// num: The value being encoded by RLE encoding. -// run: A sequence of RUNA and RUNB symbols represented as a binary integer, -// where RUNA is the 0 bit, RUNB is the 1 bit, and least-significant RUN -// symbols are at the least-significant bit positions. -// cnt: The number of RUNA and RUNB symbols. -// -// Then the RLE encoding used by bzip2 has this mathematical property: -// -// num+1 == (1< len(mtf.dictBuf) { - panicf(errors.Internal, "alphabet too large") - } - copy(mtf.dictBuf[:], dict) - mtf.dictLen = len(dict) - mtf.blkSize = blkSize -} - -func (mtf *moveToFront) Encode(vals []byte) (syms []uint16) { - dict := mtf.dictBuf[:mtf.dictLen] - syms = mtf.syms[:0] - - if len(vals) > mtf.blkSize { - panicf(errors.Internal, "exceeded block size") - } - - var lastNum uint32 - for _, val := range vals { - // Normal move-to-front transform. - var idx uint8 // Reverse lookup idx in dict - for di, dv := range dict { - if dv == val { - idx = uint8(di) - break - } - } - copy(dict[1:], dict[:idx]) - dict[0] = val - - // Run-length encoding augmentation. - if idx == 0 { - lastNum++ - continue - } - if lastNum > 0 { - for rc := lastNum + 1; rc != 1; rc >>= 1 { - syms = append(syms, uint16(rc&1)) - } - lastNum = 0 - } - syms = append(syms, uint16(idx)+1) - } - if lastNum > 0 { - for rc := lastNum + 1; rc != 1; rc >>= 1 { - syms = append(syms, uint16(rc&1)) - } - } - mtf.syms = syms - return syms -} - -func (mtf *moveToFront) Decode(syms []uint16) (vals []byte) { - dict := mtf.dictBuf[:mtf.dictLen] - vals = mtf.vals[:0] - - var lastCnt uint - var lastRun uint32 - for _, sym := range syms { - // Run-length encoding augmentation. - if sym < 2 { - lastRun |= uint32(sym) << lastCnt - lastCnt++ - continue - } - if lastCnt > 0 { - cnt := int((1< mtf.blkSize || lastCnt > 24 { - panicf(errors.Corrupted, "run-length decoding exceeded block size") - } - for i := cnt; i > 0; i-- { - vals = append(vals, dict[0]) - } - lastCnt, lastRun = 0, 0 - } - - // Normal move-to-front transform. - val := dict[sym-1] // Forward lookup val in dict - copy(dict[1:], dict[:sym-1]) - dict[0] = val - - if len(vals) >= mtf.blkSize { - panicf(errors.Corrupted, "run-length decoding exceeded block size") - } - vals = append(vals, val) - } - if lastCnt > 0 { - cnt := int((1< mtf.blkSize || lastCnt > 24 { - panicf(errors.Corrupted, "run-length decoding exceeded block size") - } - for i := cnt; i > 0; i-- { - vals = append(vals, dict[0]) - } - } - mtf.vals = vals - return vals -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/prefix.go b/backend/vendor/github.com/dsnet/compress/bzip2/prefix.go deleted file mode 100644 index e80b4833..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/prefix.go +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package bzip2 - -import ( - "io" - - "github.com/dsnet/compress/internal" - "github.com/dsnet/compress/internal/errors" - "github.com/dsnet/compress/internal/prefix" -) - -const ( - minNumTrees = 2 - maxNumTrees = 6 - - maxPrefixBits = 20 // Maximum bit-width of a prefix code - maxNumSyms = 256 + 2 // Maximum number of symbols in the alphabet - numBlockSyms = 50 // Number of bytes in a block -) - -// encSel and decSel are used to handle the prefix encoding for tree selectors. -// The prefix encoding is as follows: -// -// Code TreeIdx -// 0 <=> 0 -// 10 <=> 1 -// 110 <=> 2 -// 1110 <=> 3 -// 11110 <=> 4 -// 111110 <=> 5 -// 111111 <=> 6 Invalid tree index, so should fail -var encSel, decSel = func() (e prefix.Encoder, d prefix.Decoder) { - var selCodes [maxNumTrees + 1]prefix.PrefixCode - for i := range selCodes { - selCodes[i] = prefix.PrefixCode{Sym: uint32(i), Len: uint32(i + 1)} - } - selCodes[maxNumTrees] = prefix.PrefixCode{Sym: maxNumTrees, Len: maxNumTrees} - prefix.GeneratePrefixes(selCodes[:]) - e.Init(selCodes[:]) - d.Init(selCodes[:]) - return -}() - -type prefixReader struct{ prefix.Reader } - -func (pr *prefixReader) Init(r io.Reader) { - pr.Reader.Init(r, true) -} - -func (pr *prefixReader) ReadBitsBE64(nb uint) uint64 { - if nb <= 32 { - v := uint32(pr.ReadBits(nb)) - return uint64(internal.ReverseUint32N(v, nb)) - } - v0 := internal.ReverseUint32(uint32(pr.ReadBits(32))) - v1 := internal.ReverseUint32(uint32(pr.ReadBits(nb - 32))) - v := uint64(v0)<<32 | uint64(v1) - return v >> (64 - nb) -} - -func (pr *prefixReader) ReadPrefixCodes(codes []prefix.PrefixCodes, trees []prefix.Decoder) { - for i, pc := range codes { - clen := int(pr.ReadBitsBE64(5)) - sum := 1 << maxPrefixBits - for sym := range pc { - for { - if clen < 1 || clen > maxPrefixBits { - panicf(errors.Corrupted, "invalid prefix bit-length: %d", clen) - } - - b, ok := pr.TryReadBits(1) - if !ok { - b = pr.ReadBits(1) - } - if b == 0 { - break - } - - b, ok = pr.TryReadBits(1) - if !ok { - b = pr.ReadBits(1) - } - clen -= int(b*2) - 1 // +1 or -1 - } - pc[sym] = prefix.PrefixCode{Sym: uint32(sym), Len: uint32(clen)} - sum -= (1 << maxPrefixBits) >> uint(clen) - } - - if sum == 0 { - // Fast path, but only handles complete trees. - if err := prefix.GeneratePrefixes(pc); err != nil { - errors.Panic(err) // Using complete trees; should never fail - } - } else { - // Slow path, but handles anything. - pc = handleDegenerateCodes(pc) // Never fails, but may fail later - codes[i] = pc - } - trees[i].Init(pc) - } -} - -type prefixWriter struct{ prefix.Writer } - -func (pw *prefixWriter) Init(w io.Writer) { - pw.Writer.Init(w, true) -} - -func (pw *prefixWriter) WriteBitsBE64(v uint64, nb uint) { - if nb <= 32 { - v := internal.ReverseUint32N(uint32(v), nb) - pw.WriteBits(uint(v), nb) - return - } - v <<= (64 - nb) - v0 := internal.ReverseUint32(uint32(v >> 32)) - v1 := internal.ReverseUint32(uint32(v)) - pw.WriteBits(uint(v0), 32) - pw.WriteBits(uint(v1), nb-32) - return -} - -func (pw *prefixWriter) WritePrefixCodes(codes []prefix.PrefixCodes, trees []prefix.Encoder) { - for i, pc := range codes { - if err := prefix.GeneratePrefixes(pc); err != nil { - errors.Panic(err) // Using complete trees; should never fail - } - trees[i].Init(pc) - - clen := int(pc[0].Len) - pw.WriteBitsBE64(uint64(clen), 5) - for _, c := range pc { - for int(c.Len) < clen { - pw.WriteBits(3, 2) // 11 - clen-- - } - for int(c.Len) > clen { - pw.WriteBits(1, 2) // 10 - clen++ - } - pw.WriteBits(0, 1) - } - } -} - -// handleDegenerateCodes converts a degenerate tree into a canonical tree. -// -// For example, when the input is an under-subscribed tree: -// -// input: []PrefixCode{ -// {Sym: 0, Len: 3}, -// {Sym: 1, Len: 4}, -// {Sym: 2, Len: 3}, -// } -// output: []PrefixCode{ -// {Sym: 0, Len: 3, Val: 0}, // 000 -// {Sym: 1, Len: 4, Val: 2}, // 0010 -// {Sym: 2, Len: 3, Val: 4}, // 100 -// {Sym: 258, Len: 4, Val: 10}, // 1010 -// {Sym: 259, Len: 3, Val: 6}, // 110 -// {Sym: 260, Len: 1, Val: 1}, // 1 -// } -// -// For example, when the input is an over-subscribed tree: -// -// input: []PrefixCode{ -// {Sym: 0, Len: 1}, -// {Sym: 1, Len: 3}, -// {Sym: 2, Len: 4}, -// {Sym: 3, Len: 3}, -// {Sym: 4, Len: 2}, -// } -// output: []PrefixCode{ -// {Sym: 0, Len: 1, Val: 0}, // 0 -// {Sym: 1, Len: 3, Val: 3}, // 011 -// {Sym: 3, Len: 3, Val: 7}, // 111 -// {Sym: 4, Len: 2, Val: 1}, // 01 -// } -func handleDegenerateCodes(codes prefix.PrefixCodes) prefix.PrefixCodes { - // Since there is no formal definition for the BZip2 format, there is no - // specification that says that the code lengths must form a complete - // prefix tree (IE: it is neither over-subscribed nor under-subscribed). - // Thus, the original C implementation becomes the reference for how prefix - // decoding is done in these edge cases. Unfortunately, the C version does - // not error when an invalid tree is used, but rather allows decoding to - // continue and only errors if some bit pattern happens to cause an error. - // Thus, it is possible for an invalid tree to end up decoding an input - // "properly" so long as invalid bit patterns are not present. In order to - // replicate this non-specified behavior, we use a ported version of the - // C code to generate the codes as a valid canonical tree by substituting - // invalid nodes with invalid symbols. - // - // ==================================================== - // This program, "bzip2", the associated library "libbzip2", and all - // documentation, are copyright (C) 1996-2010 Julian R Seward. All - // rights reserved. - // - // Redistribution and use in source and binary forms, with or without - // modification, are permitted provided that the following conditions - // are met: - // - // 1. Redistributions of source code must retain the above copyright - // notice, this list of conditions and the following disclaimer. - // - // 2. The origin of this software must not be misrepresented; you must - // not claim that you wrote the original software. If you use this - // software in a product, an acknowledgment in the product - // documentation would be appreciated but is not required. - // - // 3. Altered source versions must be plainly marked as such, and must - // not be misrepresented as being the original software. - // - // 4. The name of the author may not be used to endorse or promote - // products derived from this software without specific prior written - // permission. - // - // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - // OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - // ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - // - // Julian Seward, jseward@bzip.org - // bzip2/libbzip2 version 1.0.6 of 6 September 2010 - // ==================================================== - var ( - limits [maxPrefixBits + 2]int32 - bases [maxPrefixBits + 2]int32 - perms [maxNumSyms]int32 - - minLen = uint32(maxPrefixBits) - maxLen = uint32(0) - ) - - const ( - statusOkay = iota - statusInvalid - statusNeedBits - statusMaxBits - ) - - // createTables is the BZ2_hbCreateDecodeTables function from the C code. - createTables := func(codes []prefix.PrefixCode) { - for _, c := range codes { - if c.Len > maxLen { - maxLen = c.Len - } - if c.Len < minLen { - minLen = c.Len - } - } - - var pp int - for i := minLen; i <= maxLen; i++ { - for j, c := range codes { - if c.Len == i { - perms[pp] = int32(j) - pp++ - } - } - } - - var vec int32 - for _, c := range codes { - bases[c.Len+1]++ - } - for i := 1; i < len(bases); i++ { - bases[i] += bases[i-1] - } - for i := minLen; i <= maxLen; i++ { - vec += bases[i+1] - bases[i] - limits[i] = vec - 1 - vec <<= 1 - } - for i := minLen + 1; i <= maxLen; i++ { - bases[i] = ((limits[i-1] + 1) << 1) - bases[i] - } - } - - // getSymbol is the GET_MTF_VAL macro from the C code. - getSymbol := func(c prefix.PrefixCode) (uint32, int) { - v := internal.ReverseUint32(c.Val) - n := c.Len - - zn := minLen - if zn > n { - return 0, statusNeedBits - } - zvec := int32(v >> (32 - zn)) - v <<= zn - for { - if zn > maxLen { - return 0, statusMaxBits - } - if zvec <= limits[zn] { - break - } - zn++ - if zn > n { - return 0, statusNeedBits - } - zvec = (zvec << 1) | int32(v>>31) - v <<= 1 - } - if zvec-bases[zn] < 0 || zvec-bases[zn] >= maxNumSyms { - return 0, statusInvalid - } - return uint32(perms[zvec-bases[zn]]), statusOkay - } - - // Step 1: Create the prefix trees using the C algorithm. - createTables(codes) - - // Step 2: Starting with the shortest bit pattern, explore the whole tree. - // If tree is under-subscribed, the worst-case runtime is O(1< 0 { - codes = append(codes, c) - } - } - return codes -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/reader.go b/backend/vendor/github.com/dsnet/compress/bzip2/reader.go deleted file mode 100644 index 86d3f718..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/reader.go +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package bzip2 - -import ( - "io" - - "github.com/dsnet/compress/internal" - "github.com/dsnet/compress/internal/errors" - "github.com/dsnet/compress/internal/prefix" -) - -type Reader struct { - InputOffset int64 // Total number of bytes read from underlying io.Reader - OutputOffset int64 // Total number of bytes emitted from Read - - rd prefixReader - err error - level int // The current compression level - rdHdrFtr int // Number of times we read the stream header and footer - blkCRC uint32 // CRC-32 IEEE of each block (as stored) - endCRC uint32 // Checksum of all blocks using bzip2's custom method - - crc crc - mtf moveToFront - bwt burrowsWheelerTransform - rle runLengthEncoding - - // These fields are allocated with Reader and re-used later. - treeSels []uint8 - codes2D [maxNumTrees][maxNumSyms]prefix.PrefixCode - codes1D [maxNumTrees]prefix.PrefixCodes - trees1D [maxNumTrees]prefix.Decoder - syms []uint16 - - fuzzReader // Exported functionality when fuzz testing -} - -type ReaderConfig struct { - _ struct{} // Blank field to prevent unkeyed struct literals -} - -func NewReader(r io.Reader, conf *ReaderConfig) (*Reader, error) { - zr := new(Reader) - zr.Reset(r) - return zr, nil -} - -func (zr *Reader) Reset(r io.Reader) error { - *zr = Reader{ - rd: zr.rd, - - mtf: zr.mtf, - bwt: zr.bwt, - rle: zr.rle, - - treeSels: zr.treeSels, - trees1D: zr.trees1D, - syms: zr.syms, - } - zr.rd.Init(r) - return nil -} - -func (zr *Reader) Read(buf []byte) (int, error) { - for { - cnt, err := zr.rle.Read(buf) - if err != rleDone && zr.err == nil { - zr.err = err - } - if cnt > 0 { - zr.crc.update(buf[:cnt]) - zr.OutputOffset += int64(cnt) - return cnt, nil - } - if zr.err != nil || len(buf) == 0 { - return 0, zr.err - } - - // Read the next chunk. - zr.rd.Offset = zr.InputOffset - func() { - defer errors.Recover(&zr.err) - if zr.rdHdrFtr%2 == 0 { - // Check if we are already at EOF. - if err := zr.rd.PullBits(1); err != nil { - if err == io.ErrUnexpectedEOF && zr.rdHdrFtr > 0 { - err = io.EOF // EOF is okay if we read at least one stream - } - errors.Panic(err) - } - - // Read stream header. - if zr.rd.ReadBitsBE64(16) != hdrMagic { - panicf(errors.Corrupted, "invalid stream magic") - } - if ver := zr.rd.ReadBitsBE64(8); ver != 'h' { - if ver == '0' { - panicf(errors.Deprecated, "bzip1 format is not supported") - } - panicf(errors.Corrupted, "invalid version: %q", ver) - } - lvl := int(zr.rd.ReadBitsBE64(8)) - '0' - if lvl < BestSpeed || lvl > BestCompression { - panicf(errors.Corrupted, "invalid block size: %d", lvl*blockSize) - } - zr.level = lvl - zr.rdHdrFtr++ - } else { - // Check and update the CRC. - if internal.GoFuzz { - zr.updateChecksum(-1, zr.crc.val) // Update with value - zr.blkCRC = zr.crc.val // Suppress CRC failures - } - if zr.blkCRC != zr.crc.val { - panicf(errors.Corrupted, "mismatching block checksum") - } - zr.endCRC = (zr.endCRC<<1 | zr.endCRC>>31) ^ zr.blkCRC - } - buf := zr.decodeBlock() - zr.rle.Init(buf) - }() - if zr.InputOffset, err = zr.rd.Flush(); zr.err == nil { - zr.err = err - } - if zr.err != nil { - zr.err = errWrap(zr.err, errors.Corrupted) - return 0, zr.err - } - } -} - -func (zr *Reader) Close() error { - if zr.err == io.EOF || zr.err == errClosed { - zr.rle.Init(nil) // Make sure future reads fail - zr.err = errClosed - return nil - } - return zr.err // Return the persistent error -} - -func (zr *Reader) decodeBlock() []byte { - if magic := zr.rd.ReadBitsBE64(48); magic != blkMagic { - if magic == endMagic { - endCRC := uint32(zr.rd.ReadBitsBE64(32)) - if internal.GoFuzz { - zr.updateChecksum(zr.rd.BitsRead()-32, zr.endCRC) - endCRC = zr.endCRC // Suppress CRC failures - } - if zr.endCRC != endCRC { - panicf(errors.Corrupted, "mismatching stream checksum") - } - zr.endCRC = 0 - zr.rd.ReadPads() - zr.rdHdrFtr++ - return nil - } - panicf(errors.Corrupted, "invalid block or footer magic") - } - - zr.crc.val = 0 - zr.blkCRC = uint32(zr.rd.ReadBitsBE64(32)) - if internal.GoFuzz { - zr.updateChecksum(zr.rd.BitsRead()-32, 0) // Record offset only - } - if zr.rd.ReadBitsBE64(1) != 0 { - panicf(errors.Deprecated, "block randomization is not supported") - } - - // Read BWT related fields. - ptr := int(zr.rd.ReadBitsBE64(24)) // BWT origin pointer - - // Read MTF related fields. - var dictArr [256]uint8 - dict := dictArr[:0] - bmapHi := uint16(zr.rd.ReadBits(16)) - for i := 0; i < 256; i, bmapHi = i+16, bmapHi>>1 { - if bmapHi&1 > 0 { - bmapLo := uint16(zr.rd.ReadBits(16)) - for j := 0; j < 16; j, bmapLo = j+1, bmapLo>>1 { - if bmapLo&1 > 0 { - dict = append(dict, uint8(i+j)) - } - } - } - } - - // Step 1: Prefix encoding. - syms := zr.decodePrefix(len(dict)) - - // Step 2: Move-to-front transform and run-length encoding. - zr.mtf.Init(dict, zr.level*blockSize) - buf := zr.mtf.Decode(syms) - - // Step 3: Burrows-Wheeler transformation. - if ptr >= len(buf) { - panicf(errors.Corrupted, "origin pointer (0x%06x) exceeds block size: %d", ptr, len(buf)) - } - zr.bwt.Decode(buf, ptr) - - return buf -} - -func (zr *Reader) decodePrefix(numSyms int) (syms []uint16) { - numSyms += 2 // Remove 0 symbol, add RUNA, RUNB, and EOF symbols - if numSyms < 3 { - panicf(errors.Corrupted, "not enough prefix symbols: %d", numSyms) - } - - // Read information about the trees and tree selectors. - var mtf internal.MoveToFront - numTrees := int(zr.rd.ReadBitsBE64(3)) - if numTrees < minNumTrees || numTrees > maxNumTrees { - panicf(errors.Corrupted, "invalid number of prefix trees: %d", numTrees) - } - numSels := int(zr.rd.ReadBitsBE64(15)) - if cap(zr.treeSels) < numSels { - zr.treeSels = make([]uint8, numSels) - } - treeSels := zr.treeSels[:numSels] - for i := range treeSels { - sym, ok := zr.rd.TryReadSymbol(&decSel) - if !ok { - sym = zr.rd.ReadSymbol(&decSel) - } - if int(sym) >= numTrees { - panicf(errors.Corrupted, "invalid prefix tree selector: %d", sym) - } - treeSels[i] = uint8(sym) - } - mtf.Decode(treeSels) - zr.treeSels = treeSels - - // Initialize prefix codes. - for i := range zr.codes2D[:numTrees] { - zr.codes1D[i] = zr.codes2D[i][:numSyms] - } - zr.rd.ReadPrefixCodes(zr.codes1D[:numTrees], zr.trees1D[:numTrees]) - - // Read prefix encoded symbols of compressed data. - var tree *prefix.Decoder - var blkLen, selIdx int - syms = zr.syms[:0] - for { - if blkLen == 0 { - blkLen = numBlockSyms - if selIdx >= len(treeSels) { - panicf(errors.Corrupted, "not enough prefix tree selectors") - } - tree = &zr.trees1D[treeSels[selIdx]] - selIdx++ - } - blkLen-- - sym, ok := zr.rd.TryReadSymbol(tree) - if !ok { - sym = zr.rd.ReadSymbol(tree) - } - - if int(sym) == numSyms-1 { - break // EOF marker - } - if int(sym) >= numSyms { - panicf(errors.Corrupted, "invalid prefix symbol: %d", sym) - } - if len(syms) >= zr.level*blockSize { - panicf(errors.Corrupted, "number of prefix symbols exceeds block size") - } - syms = append(syms, uint16(sym)) - } - zr.syms = syms - return syms -} diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/rle1.go b/backend/vendor/github.com/dsnet/compress/bzip2/rle1.go deleted file mode 100644 index b96f0cfc..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/rle1.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package bzip2 - -import "github.com/dsnet/compress/internal/errors" - -// rleDone is a special "error" to indicate that the RLE stage is done. -var rleDone = errorf(errors.Unknown, "RLE1 stage is completed") - -// runLengthEncoding implements the first RLE stage of bzip2. Every sequence -// of 4..255 duplicated bytes is replaced by only the first 4 bytes, and a -// single byte representing the repeat length. Similar to the C bzip2 -// implementation, the encoder will always terminate repeat sequences with a -// count (even if it is the end of the buffer), and it will also never produce -// run lengths of 256..259. The decoder can handle the latter case. -// -// For example, if the input was: -// -// input: "AAAAAAABBBBCCCD" -// -// Then the output will be: -// -// output: "AAAA\x03BBBB\x00CCCD" -type runLengthEncoding struct { - buf []byte - idx int - lastVal byte - lastCnt int -} - -func (rle *runLengthEncoding) Init(buf []byte) { - *rle = runLengthEncoding{buf: buf} -} - -func (rle *runLengthEncoding) Write(buf []byte) (int, error) { - for i, b := range buf { - if rle.lastVal != b { - rle.lastCnt = 0 - } - rle.lastCnt++ - switch { - case rle.lastCnt < 4: - if rle.idx >= len(rle.buf) { - return i, rleDone - } - rle.buf[rle.idx] = b - rle.idx++ - case rle.lastCnt == 4: - if rle.idx+1 >= len(rle.buf) { - return i, rleDone - } - rle.buf[rle.idx] = b - rle.idx++ - rle.buf[rle.idx] = 0 - rle.idx++ - case rle.lastCnt < 256: - rle.buf[rle.idx-1]++ - default: - if rle.idx >= len(rle.buf) { - return i, rleDone - } - rle.lastCnt = 1 - rle.buf[rle.idx] = b - rle.idx++ - } - rle.lastVal = b - } - return len(buf), nil -} - -func (rle *runLengthEncoding) Read(buf []byte) (int, error) { - for i := range buf { - switch { - case rle.lastCnt == -4: - if rle.idx >= len(rle.buf) { - return i, errorf(errors.Corrupted, "missing terminating run-length repeater") - } - rle.lastCnt = int(rle.buf[rle.idx]) - rle.idx++ - if rle.lastCnt > 0 { - break // Break the switch - } - fallthrough // Count was zero, continue the work - case rle.lastCnt <= 0: - if rle.idx >= len(rle.buf) { - return i, rleDone - } - b := rle.buf[rle.idx] - rle.idx++ - if b != rle.lastVal { - rle.lastCnt = 0 - rle.lastVal = b - } - } - buf[i] = rle.lastVal - rle.lastCnt-- - } - return len(buf), nil -} - -func (rle *runLengthEncoding) Bytes() []byte { return rle.buf[:rle.idx] } diff --git a/backend/vendor/github.com/dsnet/compress/bzip2/writer.go b/backend/vendor/github.com/dsnet/compress/bzip2/writer.go deleted file mode 100644 index 5c1a4c66..00000000 --- a/backend/vendor/github.com/dsnet/compress/bzip2/writer.go +++ /dev/null @@ -1,307 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package bzip2 - -import ( - "io" - - "github.com/dsnet/compress/internal" - "github.com/dsnet/compress/internal/errors" - "github.com/dsnet/compress/internal/prefix" -) - -type Writer struct { - InputOffset int64 // Total number of bytes issued to Write - OutputOffset int64 // Total number of bytes written to underlying io.Writer - - wr prefixWriter - err error - level int // The current compression level - wrHdr bool // Have we written the stream header? - blkCRC uint32 // CRC-32 IEEE of each block - endCRC uint32 // Checksum of all blocks using bzip2's custom method - - crc crc - rle runLengthEncoding - bwt burrowsWheelerTransform - mtf moveToFront - - // These fields are allocated with Writer and re-used later. - buf []byte - treeSels []uint8 - treeSelsMTF []uint8 - codes2D [maxNumTrees][maxNumSyms]prefix.PrefixCode - codes1D [maxNumTrees]prefix.PrefixCodes - trees1D [maxNumTrees]prefix.Encoder -} - -type WriterConfig struct { - Level int - - _ struct{} // Blank field to prevent unkeyed struct literals -} - -func NewWriter(w io.Writer, conf *WriterConfig) (*Writer, error) { - var lvl int - if conf != nil { - lvl = conf.Level - } - if lvl == 0 { - lvl = DefaultCompression - } - if lvl < BestSpeed || lvl > BestCompression { - return nil, errorf(errors.Invalid, "compression level: %d", lvl) - } - zw := new(Writer) - zw.level = lvl - zw.Reset(w) - return zw, nil -} - -func (zw *Writer) Reset(w io.Writer) error { - *zw = Writer{ - wr: zw.wr, - level: zw.level, - - rle: zw.rle, - bwt: zw.bwt, - mtf: zw.mtf, - - buf: zw.buf, - treeSels: zw.treeSels, - treeSelsMTF: zw.treeSelsMTF, - trees1D: zw.trees1D, - } - zw.wr.Init(w) - if len(zw.buf) != zw.level*blockSize { - zw.buf = make([]byte, zw.level*blockSize) - } - zw.rle.Init(zw.buf) - return nil -} - -func (zw *Writer) Write(buf []byte) (int, error) { - if zw.err != nil { - return 0, zw.err - } - - cnt := len(buf) - for { - wrCnt, err := zw.rle.Write(buf) - if err != rleDone && zw.err == nil { - zw.err = err - } - zw.crc.update(buf[:wrCnt]) - buf = buf[wrCnt:] - if len(buf) == 0 { - zw.InputOffset += int64(cnt) - return cnt, nil - } - if zw.err = zw.flush(); zw.err != nil { - return 0, zw.err - } - } -} - -func (zw *Writer) flush() error { - vals := zw.rle.Bytes() - if len(vals) == 0 { - return nil - } - zw.wr.Offset = zw.OutputOffset - func() { - defer errors.Recover(&zw.err) - if !zw.wrHdr { - // Write stream header. - zw.wr.WriteBitsBE64(hdrMagic, 16) - zw.wr.WriteBitsBE64('h', 8) - zw.wr.WriteBitsBE64(uint64('0'+zw.level), 8) - zw.wrHdr = true - } - zw.encodeBlock(vals) - }() - var err error - if zw.OutputOffset, err = zw.wr.Flush(); zw.err == nil { - zw.err = err - } - if zw.err != nil { - zw.err = errWrap(zw.err, errors.Internal) - return zw.err - } - zw.endCRC = (zw.endCRC<<1 | zw.endCRC>>31) ^ zw.blkCRC - zw.blkCRC = 0 - zw.rle.Init(zw.buf) - return nil -} - -func (zw *Writer) Close() error { - if zw.err == errClosed { - return nil - } - - // Flush RLE buffer if there is left-over data. - if zw.err = zw.flush(); zw.err != nil { - return zw.err - } - - // Write stream footer. - zw.wr.Offset = zw.OutputOffset - func() { - defer errors.Recover(&zw.err) - if !zw.wrHdr { - // Write stream header. - zw.wr.WriteBitsBE64(hdrMagic, 16) - zw.wr.WriteBitsBE64('h', 8) - zw.wr.WriteBitsBE64(uint64('0'+zw.level), 8) - zw.wrHdr = true - } - zw.wr.WriteBitsBE64(endMagic, 48) - zw.wr.WriteBitsBE64(uint64(zw.endCRC), 32) - zw.wr.WritePads(0) - }() - var err error - if zw.OutputOffset, err = zw.wr.Flush(); zw.err == nil { - zw.err = err - } - if zw.err != nil { - zw.err = errWrap(zw.err, errors.Internal) - return zw.err - } - - zw.err = errClosed - return nil -} - -func (zw *Writer) encodeBlock(buf []byte) { - zw.blkCRC = zw.crc.val - zw.wr.WriteBitsBE64(blkMagic, 48) - zw.wr.WriteBitsBE64(uint64(zw.blkCRC), 32) - zw.wr.WriteBitsBE64(0, 1) - zw.crc.val = 0 - - // Step 1: Burrows-Wheeler transformation. - ptr := zw.bwt.Encode(buf) - zw.wr.WriteBitsBE64(uint64(ptr), 24) - - // Step 2: Move-to-front transform and run-length encoding. - var dictMap [256]bool - for _, c := range buf { - dictMap[c] = true - } - - var dictArr [256]uint8 - var bmapLo [16]uint16 - dict := dictArr[:0] - bmapHi := uint16(0) - for i, b := range dictMap { - if b { - c := uint8(i) - dict = append(dict, c) - bmapHi |= 1 << (c >> 4) - bmapLo[c>>4] |= 1 << (c & 0xf) - } - } - - zw.wr.WriteBits(uint(bmapHi), 16) - for _, m := range bmapLo { - if m > 0 { - zw.wr.WriteBits(uint(m), 16) - } - } - - zw.mtf.Init(dict, len(buf)) - syms := zw.mtf.Encode(buf) - - // Step 3: Prefix encoding. - zw.encodePrefix(syms, len(dict)) -} - -func (zw *Writer) encodePrefix(syms []uint16, numSyms int) { - numSyms += 2 // Remove 0 symbol, add RUNA, RUNB, and EOB symbols - if numSyms < 3 { - panicf(errors.Internal, "unable to encode EOB marker") - } - syms = append(syms, uint16(numSyms-1)) // EOB marker - - // Compute number of prefix trees needed. - numTrees := maxNumTrees - for i, lim := range []int{200, 600, 1200, 2400} { - if len(syms) < lim { - numTrees = minNumTrees + i - break - } - } - - // Compute number of block selectors. - numSels := (len(syms) + numBlockSyms - 1) / numBlockSyms - if cap(zw.treeSels) < numSels { - zw.treeSels = make([]uint8, numSels) - } - treeSels := zw.treeSels[:numSels] - for i := range treeSels { - treeSels[i] = uint8(i % numTrees) - } - - // Initialize prefix codes. - for i := range zw.codes2D[:numTrees] { - pc := zw.codes2D[i][:numSyms] - for j := range pc { - pc[j] = prefix.PrefixCode{Sym: uint32(j)} - } - zw.codes1D[i] = pc - } - - // First cut at assigning prefix trees to each group. - var codes prefix.PrefixCodes - var blkLen, selIdx int - for _, sym := range syms { - if blkLen == 0 { - blkLen = numBlockSyms - codes = zw.codes2D[treeSels[selIdx]][:numSyms] - selIdx++ - } - blkLen-- - codes[sym].Cnt++ - } - - // TODO(dsnet): Use K-means to cluster groups to each prefix tree. - - // Generate lengths and prefixes based on symbol frequencies. - for i := range zw.trees1D[:numTrees] { - pc := prefix.PrefixCodes(zw.codes2D[i][:numSyms]) - pc.SortByCount() - if err := prefix.GenerateLengths(pc, maxPrefixBits); err != nil { - errors.Panic(err) - } - pc.SortBySymbol() - } - - // Write out information about the trees and tree selectors. - var mtf internal.MoveToFront - zw.wr.WriteBitsBE64(uint64(numTrees), 3) - zw.wr.WriteBitsBE64(uint64(numSels), 15) - zw.treeSelsMTF = append(zw.treeSelsMTF[:0], treeSels...) - mtf.Encode(zw.treeSelsMTF) - for _, sym := range zw.treeSelsMTF { - zw.wr.WriteSymbol(uint(sym), &encSel) - } - zw.wr.WritePrefixCodes(zw.codes1D[:numTrees], zw.trees1D[:numTrees]) - - // Write out prefix encoded symbols of compressed data. - var tree *prefix.Encoder - blkLen, selIdx = 0, 0 - for _, sym := range syms { - if blkLen == 0 { - blkLen = numBlockSyms - tree = &zw.trees1D[treeSels[selIdx]] - selIdx++ - } - blkLen-- - ok := zw.wr.TryWriteSymbol(uint(sym), tree) - if !ok { - zw.wr.WriteSymbol(uint(sym), tree) - } - } -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/common.go b/backend/vendor/github.com/dsnet/compress/internal/common.go deleted file mode 100644 index da4e7034..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/common.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Package internal is a collection of common compression algorithms. -// -// For performance reasons, these packages lack strong error checking and -// require that the caller to ensure that strict invariants are kept. -package internal - -var ( - // IdentityLUT returns the input key itself. - IdentityLUT = func() (lut [256]byte) { - for i := range lut { - lut[i] = uint8(i) - } - return lut - }() - - // ReverseLUT returns the input key with its bits reversed. - ReverseLUT = func() (lut [256]byte) { - for i := range lut { - b := uint8(i) - b = (b&0xaa)>>1 | (b&0x55)<<1 - b = (b&0xcc)>>2 | (b&0x33)<<2 - b = (b&0xf0)>>4 | (b&0x0f)<<4 - lut[i] = b - } - return lut - }() -) - -// ReverseUint32 reverses all bits of v. -func ReverseUint32(v uint32) (x uint32) { - x |= uint32(ReverseLUT[byte(v>>0)]) << 24 - x |= uint32(ReverseLUT[byte(v>>8)]) << 16 - x |= uint32(ReverseLUT[byte(v>>16)]) << 8 - x |= uint32(ReverseLUT[byte(v>>24)]) << 0 - return x -} - -// ReverseUint32N reverses the lower n bits of v. -func ReverseUint32N(v uint32, n uint) (x uint32) { - return ReverseUint32(v << (32 - n)) -} - -// ReverseUint64 reverses all bits of v. -func ReverseUint64(v uint64) (x uint64) { - x |= uint64(ReverseLUT[byte(v>>0)]) << 56 - x |= uint64(ReverseLUT[byte(v>>8)]) << 48 - x |= uint64(ReverseLUT[byte(v>>16)]) << 40 - x |= uint64(ReverseLUT[byte(v>>24)]) << 32 - x |= uint64(ReverseLUT[byte(v>>32)]) << 24 - x |= uint64(ReverseLUT[byte(v>>40)]) << 16 - x |= uint64(ReverseLUT[byte(v>>48)]) << 8 - x |= uint64(ReverseLUT[byte(v>>56)]) << 0 - return x -} - -// ReverseUint64N reverses the lower n bits of v. -func ReverseUint64N(v uint64, n uint) (x uint64) { - return ReverseUint64(v << (64 - n)) -} - -// MoveToFront is a data structure that allows for more efficient move-to-front -// transformations. This specific implementation assumes that the alphabet is -// densely packed within 0..255. -type MoveToFront struct { - dict [256]uint8 // Mapping from indexes to values - tail int // Number of tail bytes that are already ordered -} - -func (m *MoveToFront) Encode(vals []uint8) { - copy(m.dict[:], IdentityLUT[:256-m.tail]) // Reset dict to be identity - - var max int - for i, val := range vals { - var idx uint8 // Reverse lookup idx in dict - for di, dv := range m.dict { - if dv == val { - idx = uint8(di) - break - } - } - vals[i] = idx - - max |= int(idx) - copy(m.dict[1:], m.dict[:idx]) - m.dict[0] = val - } - m.tail = 256 - max - 1 -} - -func (m *MoveToFront) Decode(idxs []uint8) { - copy(m.dict[:], IdentityLUT[:256-m.tail]) // Reset dict to be identity - - var max int - for i, idx := range idxs { - val := m.dict[idx] // Forward lookup val in dict - idxs[i] = val - - max |= int(idx) - copy(m.dict[1:], m.dict[:idx]) - m.dict[0] = val - } - m.tail = 256 - max - 1 -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/debug.go b/backend/vendor/github.com/dsnet/compress/internal/debug.go deleted file mode 100644 index 92435377..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/debug.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -//go:build debug && !gofuzz -// +build debug,!gofuzz - -package internal - -const ( - Debug = true - GoFuzz = false -) diff --git a/backend/vendor/github.com/dsnet/compress/internal/errors/errors.go b/backend/vendor/github.com/dsnet/compress/internal/errors/errors.go deleted file mode 100644 index daf3fe93..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/errors/errors.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2016, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -// Package errors implements functions to manipulate compression errors. -// -// In idiomatic Go, it is an anti-pattern to use panics as a form of error -// reporting in the API. Instead, the expected way to transmit errors is by -// returning an error value. Unfortunately, the checking of "err != nil" in -// tight loops commonly found in compression causes non-negligible performance -// degradation. While this may not be idiomatic, the internal packages of this -// repository rely on panics as a normal means to convey errors. In order to -// ensure that these panics do not leak across the public API, the public -// packages must recover from these panics and present an error value. -// -// The Panic and Recover functions in this package provide a safe way to -// recover from errors only generated from within this repository. -// -// Example usage: -// -// func Foo() (err error) { -// defer errors.Recover(&err) -// -// if rand.Intn(2) == 0 { -// // Unexpected panics will not be caught by Recover. -// io.Closer(nil).Close() -// } else { -// // Errors thrown by Panic will be caught by Recover. -// errors.Panic(errors.New("whoopsie")) -// } -// } -package errors - -import "strings" - -const ( - // Unknown indicates that there is no classification for this error. - Unknown = iota - - // Internal indicates that this error is due to an internal bug. - // Users should file a issue report if this type of error is encountered. - Internal - - // Invalid indicates that this error is due to the user misusing the API - // and is indicative of a bug on the user's part. - Invalid - - // Deprecated indicates the use of a deprecated and unsupported feature. - Deprecated - - // Corrupted indicates that the input stream is corrupted. - Corrupted - - // Closed indicates that the handlers are closed. - Closed -) - -var codeMap = map[int]string{ - Unknown: "unknown error", - Internal: "internal error", - Invalid: "invalid argument", - Deprecated: "deprecated format", - Corrupted: "corrupted input", - Closed: "closed handler", -} - -type Error struct { - Code int // The error type - Pkg string // Name of the package where the error originated - Msg string // Descriptive message about the error (optional) -} - -func (e Error) Error() string { - var ss []string - for _, s := range []string{e.Pkg, codeMap[e.Code], e.Msg} { - if s != "" { - ss = append(ss, s) - } - } - return strings.Join(ss, ": ") -} - -func (e Error) CompressError() {} -func (e Error) IsInternal() bool { return e.Code == Internal } -func (e Error) IsInvalid() bool { return e.Code == Invalid } -func (e Error) IsDeprecated() bool { return e.Code == Deprecated } -func (e Error) IsCorrupted() bool { return e.Code == Corrupted } -func (e Error) IsClosed() bool { return e.Code == Closed } - -func IsInternal(err error) bool { return isCode(err, Internal) } -func IsInvalid(err error) bool { return isCode(err, Invalid) } -func IsDeprecated(err error) bool { return isCode(err, Deprecated) } -func IsCorrupted(err error) bool { return isCode(err, Corrupted) } -func IsClosed(err error) bool { return isCode(err, Closed) } - -func isCode(err error, code int) bool { - if cerr, ok := err.(Error); ok && cerr.Code == code { - return true - } - return false -} - -// errWrap is used by Panic and Recover to ensure that only errors raised by -// Panic are recovered by Recover. -type errWrap struct{ e *error } - -func Recover(err *error) { - switch ex := recover().(type) { - case nil: - // Do nothing. - case errWrap: - *err = *ex.e - default: - panic(ex) - } -} - -func Panic(err error) { - panic(errWrap{&err}) -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/gofuzz.go b/backend/vendor/github.com/dsnet/compress/internal/gofuzz.go deleted file mode 100644 index 38f44d0e..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/gofuzz.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2016, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -//go:build gofuzz -// +build gofuzz - -package internal - -const ( - Debug = true - GoFuzz = true -) diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/debug.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/debug.go deleted file mode 100644 index 2a1cb25a..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/debug.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -//go:build debug -// +build debug - -package prefix - -import ( - "fmt" - "math" - "strings" -) - -func max(a, b int) int { - if a > b { - return a - } - return b -} - -func lenBase2(n uint) int { - return int(math.Ceil(math.Log2(float64(n + 1)))) -} -func padBase2(v, n uint, m int) string { - s := fmt.Sprintf("%b", 1< 0 { - return strings.Repeat(" ", pad) + s - } - return s -} - -func lenBase10(n int) int { - return int(math.Ceil(math.Log10(float64(n + 1)))) -} -func padBase10(n, m int) string { - s := fmt.Sprintf("%d", n) - if pad := m - len(s); pad > 0 { - return strings.Repeat(" ", pad) + s - } - return s -} - -func (rc RangeCodes) String() string { - var maxLen, maxBase int - for _, c := range rc { - maxLen = max(maxLen, int(c.Len)) - maxBase = max(maxBase, int(c.Base)) - } - - var ss []string - ss = append(ss, "{") - for i, c := range rc { - base := padBase10(int(c.Base), lenBase10(maxBase)) - if c.Len > 0 { - base += fmt.Sprintf("-%d", c.End()-1) - } - ss = append(ss, fmt.Sprintf("\t%s: {len: %s, range: %s},", - padBase10(int(i), lenBase10(len(rc)-1)), - padBase10(int(c.Len), lenBase10(maxLen)), - base, - )) - } - ss = append(ss, "}") - return strings.Join(ss, "\n") -} - -func (pc PrefixCodes) String() string { - var maxSym, maxLen, maxCnt int - for _, c := range pc { - maxSym = max(maxSym, int(c.Sym)) - maxLen = max(maxLen, int(c.Len)) - maxCnt = max(maxCnt, int(c.Cnt)) - } - - var ss []string - ss = append(ss, "{") - for _, c := range pc { - var cntStr string - if maxCnt > 0 { - cnt := int(32*float32(c.Cnt)/float32(maxCnt) + 0.5) - cntStr = fmt.Sprintf("%s |%s", - padBase10(int(c.Cnt), lenBase10(maxCnt)), - strings.Repeat("#", cnt), - ) - } - ss = append(ss, fmt.Sprintf("\t%s: %s, %s", - padBase10(int(c.Sym), lenBase10(maxSym)), - padBase2(uint(c.Val), uint(c.Len), maxLen), - cntStr, - )) - } - ss = append(ss, "}") - return strings.Join(ss, "\n") -} - -func (pd Decoder) String() string { - var ss []string - ss = append(ss, "{") - if len(pd.chunks) > 0 { - ss = append(ss, "\tchunks: {") - for i, c := range pd.chunks { - label := "sym" - if uint(c&countMask) > uint(pd.chunkBits) { - label = "idx" - } - ss = append(ss, fmt.Sprintf("\t\t%s: {%s: %s, len: %s}", - padBase2(uint(i), uint(pd.chunkBits), int(pd.chunkBits)), - label, padBase10(int(c>>countBits), 3), - padBase10(int(c&countMask), 2), - )) - } - ss = append(ss, "\t},") - - for j, links := range pd.links { - ss = append(ss, fmt.Sprintf("\tlinks[%d]: {", j)) - linkBits := lenBase2(uint(pd.linkMask)) - for i, c := range links { - ss = append(ss, fmt.Sprintf("\t\t%s: {sym: %s, len: %s},", - padBase2(uint(i), uint(linkBits), int(linkBits)), - padBase10(int(c>>countBits), 3), - padBase10(int(c&countMask), 2), - )) - } - ss = append(ss, "\t},") - } - } - ss = append(ss, fmt.Sprintf("\tchunkMask: %b,", pd.chunkMask)) - ss = append(ss, fmt.Sprintf("\tlinkMask: %b,", pd.linkMask)) - ss = append(ss, fmt.Sprintf("\tchunkBits: %d,", pd.chunkBits)) - ss = append(ss, fmt.Sprintf("\tMinBits: %d,", pd.MinBits)) - ss = append(ss, fmt.Sprintf("\tNumSyms: %d,", pd.NumSyms)) - ss = append(ss, "}") - return strings.Join(ss, "\n") -} - -func (pe Encoder) String() string { - var maxLen int - for _, c := range pe.chunks { - maxLen = max(maxLen, int(c&countMask)) - } - - var ss []string - ss = append(ss, "{") - if len(pe.chunks) > 0 { - ss = append(ss, "\tchunks: {") - for i, c := range pe.chunks { - ss = append(ss, fmt.Sprintf("\t\t%s: %s,", - padBase10(i, 3), - padBase2(uint(c>>countBits), uint(c&countMask), maxLen), - )) - } - ss = append(ss, "\t},") - } - ss = append(ss, fmt.Sprintf("\tchunkMask: %b,", pe.chunkMask)) - ss = append(ss, fmt.Sprintf("\tNumSyms: %d,", pe.NumSyms)) - ss = append(ss, "}") - return strings.Join(ss, "\n") -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/decoder.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/decoder.go deleted file mode 100644 index a9bc2dcb..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/decoder.go +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package prefix - -import ( - "sort" - - "github.com/dsnet/compress/internal" -) - -// The algorithm used to decode variable length codes is based on the lookup -// method in zlib. If the code is less-than-or-equal to maxChunkBits, -// then the symbol can be decoded using a single lookup into the chunks table. -// Otherwise, the links table will be used for a second level lookup. -// -// The chunks slice is keyed by the contents of the bit buffer ANDed with -// the chunkMask to avoid a out-of-bounds lookup. The value of chunks is a tuple -// that is decoded as follow: -// -// var length = chunks[bitBuffer&chunkMask] & countMask -// var symbol = chunks[bitBuffer&chunkMask] >> countBits -// -// If the decoded length is larger than chunkBits, then an overflow link table -// must be used for further decoding. In this case, the symbol is actually the -// index into the links tables. The second-level links table returned is -// processed in the same way as the chunks table. -// -// if length > chunkBits { -// var index = symbol // Previous symbol is index into links tables -// length = links[index][bitBuffer>>chunkBits & linkMask] & countMask -// symbol = links[index][bitBuffer>>chunkBits & linkMask] >> countBits -// } -// -// See the following: -// http://www.gzip.org/algorithm.txt - -type Decoder struct { - chunks []uint32 // First-level lookup map - links [][]uint32 // Second-level lookup map - chunkMask uint32 // Mask the length of the chunks table - linkMask uint32 // Mask the length of the link table - chunkBits uint32 // Bit-length of the chunks table - - MinBits uint32 // The minimum number of bits to safely make progress - NumSyms uint32 // Number of symbols -} - -// Init initializes Decoder according to the codes provided. -func (pd *Decoder) Init(codes PrefixCodes) { - // Handle special case trees. - if len(codes) <= 1 { - switch { - case len(codes) == 0: // Empty tree (should error if used later) - *pd = Decoder{chunks: pd.chunks[:0], links: pd.links[:0], NumSyms: 0} - case len(codes) == 1 && codes[0].Len == 0: // Single code tree (bit-length of zero) - pd.chunks = append(pd.chunks[:0], codes[0].Sym< c.Len { - minBits = c.Len - } - if maxBits < c.Len { - maxBits = c.Len - } - } - - // Allocate chunks table as needed. - const maxChunkBits = 9 // This can be tuned for better performance - pd.NumSyms = uint32(len(codes)) - pd.MinBits = minBits - pd.chunkBits = maxBits - if pd.chunkBits > maxChunkBits { - pd.chunkBits = maxChunkBits - } - numChunks := 1 << pd.chunkBits - pd.chunks = allocUint32s(pd.chunks, numChunks) - pd.chunkMask = uint32(numChunks - 1) - - // Allocate links tables as needed. - pd.links = pd.links[:0] - pd.linkMask = 0 - if pd.chunkBits < maxBits { - numLinks := 1 << (maxBits - pd.chunkBits) - pd.linkMask = uint32(numLinks - 1) - - var linkIdx uint32 - for i := range pd.chunks { - pd.chunks[i] = 0 // Logic below relies on zero value as uninitialized - } - for _, c := range codes { - if c.Len > pd.chunkBits && pd.chunks[c.Val&pd.chunkMask] == 0 { - pd.chunks[c.Val&pd.chunkMask] = (linkIdx << countBits) | (pd.chunkBits + 1) - linkIdx++ - } - } - - pd.links = extendSliceUint32s(pd.links, int(linkIdx)) - linksFlat := allocUint32s(pd.links[0], numLinks*int(linkIdx)) - for i, j := 0, 0; i < len(pd.links); i, j = i+1, j+numLinks { - pd.links[i] = linksFlat[j : j+numLinks] - } - } - - // Fill out chunks and links tables with values. - for _, c := range codes { - chunk := c.Sym<> countBits - links := pd.links[linkIdx] - skip := 1 << uint(c.Len-pd.chunkBits) - for j := int(c.Val >> pd.chunkBits); j < len(links); j += skip { - links[j] = chunk - } - } - } -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/encoder.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/encoder.go deleted file mode 100644 index 4424a011..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/encoder.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package prefix - -import ( - "sort" - - "github.com/dsnet/compress/internal" -) - -type Encoder struct { - chunks []uint32 // First-level lookup map - chunkMask uint32 // Mask the length of the chunks table - - NumSyms uint32 // Number of symbols -} - -// Init initializes Encoder according to the codes provided. -func (pe *Encoder) Init(codes PrefixCodes) { - // Handle special case trees. - if len(codes) <= 1 { - switch { - case len(codes) == 0: // Empty tree (should error if used later) - *pe = Encoder{chunks: pe.chunks[:0], NumSyms: 0} - case len(codes) == 1 && codes[0].Len == 0: // Single code tree (bit-length of zero) - pe.chunks = append(pe.chunks[:0], codes[0].Val< 0; n >>= 1 { - numChunks <<= 1 - } - pe.NumSyms = uint32(len(codes)) - -retry: - // Allocate and reset chunks. - pe.chunks = allocUint32s(pe.chunks, numChunks) - pe.chunkMask = uint32(numChunks - 1) - for i := range pe.chunks { - pe.chunks[i] = 0 // Logic below relies on zero value as uninitialized - } - - // Insert each symbol, checking that there are no conflicts. - for _, c := range codes { - if pe.chunks[c.Sym&pe.chunkMask] > 0 { - // Collision found our "hash" table, so grow and try again. - numChunks <<= 1 - goto retry - } - pe.chunks[c.Sym&pe.chunkMask] = c.Val<> uint(c.Len) - } - return sum == 0 || len(pc) == 0 -} - -// checkPrefixes reports whether all codes have non-overlapping prefixes. -func (pc PrefixCodes) checkPrefixes() bool { - for i, c1 := range pc { - for j, c2 := range pc { - mask := uint32(1)< 0 { - c.Val = internal.ReverseUint32N(c.Val, uint(c.Len)) - if vals[c.Len].Cnt > 0 && vals[c.Len].Val+1 != c.Val { - return false - } - vals[c.Len].Val = c.Val - vals[c.Len].Cnt++ - } - } - - // Rule 2. - var last PrefixCode - for _, v := range vals { - if v.Cnt > 0 { - curVal := v.Val - v.Cnt + 1 - if last.Cnt != 0 && last.Val >= curVal { - return false - } - last = v - } - } - return true -} - -// GenerateLengths assigns non-zero bit-lengths to all codes. Codes with high -// frequency counts will be assigned shorter codes to reduce bit entropy. -// This function is used primarily by compressors. -// -// The input codes must have the Cnt field populated, be sorted by count. -// Even if a code has a count of 0, a non-zero bit-length will be assigned. -// -// The result will have the Len field populated. The algorithm used guarantees -// that Len <= maxBits and that it is a complete prefix tree. The resulting -// codes will remain sorted by count. -func GenerateLengths(codes PrefixCodes, maxBits uint) error { - if len(codes) <= 1 { - if len(codes) == 1 { - codes[0].Len = 0 - } - return nil - } - - // Verify that the codes are in ascending order by count. - cntLast := codes[0].Cnt - for _, c := range codes[1:] { - if c.Cnt < cntLast { - return errorf(errors.Invalid, "non-monotonically increasing symbol counts") - } - cntLast = c.Cnt - } - - // Construct a Huffman tree used to generate the bit-lengths. - // - // The Huffman tree is a binary tree where each symbol lies as a leaf node - // on this tree. The length of the prefix code to assign is the depth of - // that leaf from the root. The Huffman algorithm, which runs in O(n), - // is used to generate the tree. It assumes that codes are sorted in - // increasing order of frequency. - // - // The algorithm is as follows: - // 1. Start with two queues, F and Q, where F contains all of the starting - // symbols sorted such that symbols with lowest counts come first. - // 2. While len(F)+len(Q) > 1: - // 2a. Dequeue the node from F or Q that has the lowest weight as N0. - // 2b. Dequeue the node from F or Q that has the lowest weight as N1. - // 2c. Create a new node N that has N0 and N1 as its children. - // 2d. Enqueue N into the back of Q. - // 3. The tree's root node is Q[0]. - type node struct { - cnt uint32 - - // n0 or c0 represent the left child of this node. - // Since Go does not have unions, only one of these will be set. - // Similarly, n1 or c1 represent the right child of this node. - // - // If n0 or n1 is set, then it represents a "pointer" to another - // node in the Huffman tree. Since Go's pointer analysis cannot reason - // that these node pointers do not escape (golang.org/issue/13493), - // we use an index to a node in the nodes slice as a pseudo-pointer. - // - // If c0 or c1 is set, then it represents a leaf "node" in the - // Huffman tree. The leaves are the PrefixCode values themselves. - n0, n1 int // Index to child nodes - c0, c1 *PrefixCode - } - var nodeIdx int - var nodeArr [1024]node // Large enough to handle most cases on the stack - nodes := nodeArr[:] - if len(nodes) < len(codes) { - nodes = make([]node, len(codes)) // Number of internal nodes < number of leaves - } - freqs, queue := codes, nodes[:0] - for len(freqs)+len(queue) > 1 { - // These are the two smallest nodes at the front of freqs and queue. - var n node - if len(queue) == 0 || (len(freqs) > 0 && freqs[0].Cnt <= queue[0].cnt) { - n.c0, freqs = &freqs[0], freqs[1:] - n.cnt += n.c0.Cnt - } else { - n.cnt += queue[0].cnt - n.n0 = nodeIdx // nodeIdx is same as &queue[0] - &nodes[0] - nodeIdx++ - queue = queue[1:] - } - if len(queue) == 0 || (len(freqs) > 0 && freqs[0].Cnt <= queue[0].cnt) { - n.c1, freqs = &freqs[0], freqs[1:] - n.cnt += n.c1.Cnt - } else { - n.cnt += queue[0].cnt - n.n1 = nodeIdx // nodeIdx is same as &queue[0] - &nodes[0] - nodeIdx++ - queue = queue[1:] - } - queue = append(queue, n) - } - rootIdx := nodeIdx - - // Search the whole binary tree, noting when we hit each leaf node. - // We do not care about the exact Huffman tree structure, but rather we only - // care about depth of each of the leaf nodes. That is, the depth determines - // how long each symbol is in bits. - // - // Since the number of leaves is n, there is at most n internal nodes. - // Thus, this algorithm runs in O(n). - var fixBits bool - var explore func(int, uint) - explore = func(rootIdx int, level uint) { - root := &nodes[rootIdx] - - // Explore left branch. - if root.c0 == nil { - explore(root.n0, level+1) - } else { - fixBits = fixBits || (level > maxBits) - root.c0.Len = uint32(level) - } - - // Explore right branch. - if root.c1 == nil { - explore(root.n1, level+1) - } else { - fixBits = fixBits || (level > maxBits) - root.c1.Len = uint32(level) - } - } - explore(rootIdx, 1) - - // Fix the bit-lengths if we violate the maxBits requirement. - if fixBits { - // Create histogram for number of symbols with each bit-length. - var symBitsArr [valueBits + 1]uint32 - symBits := symBitsArr[:] // symBits[nb] indicates number of symbols using nb bits - for _, c := range codes { - for int(c.Len) >= len(symBits) { - symBits = append(symBits, 0) - } - symBits[c.Len]++ - } - - // Fudge the tree such that the largest bit-length is <= maxBits. - // This is accomplish by effectively doing a tree rotation. That is, we - // increase the bit-length of some higher frequency code, so that the - // bit-lengths of lower frequency codes can be decreased. - // - // Visually, this looks like the following transform: - // - // Level Before After - // __ ___ - // / \ / \ - // n-1 X / \ /\ /\ - // n X /\ X X X X - // n+1 X X - // - var treeRotate func(uint) - treeRotate = func(nb uint) { - if symBits[nb-1] == 0 { - treeRotate(nb - 1) - } - symBits[nb-1] -= 1 // Push this node to the level below - symBits[nb] += 3 // This level gets one node from above, two from below - symBits[nb+1] -= 2 // Push two nodes to the level above - } - for i := uint(len(symBits)) - 1; i > maxBits; i-- { - for symBits[i] > 0 { - treeRotate(i - 1) - } - } - - // Assign bit-lengths to each code. Since codes is sorted in increasing - // order of frequency, that means that the most frequently used symbols - // should have the shortest bit-lengths. Thus, we copy symbols to codes - // from the back of codes first. - cs := codes - for nb, cnt := range symBits { - if cnt > 0 { - pos := len(cs) - int(cnt) - cs2 := cs[pos:] - for i := range cs2 { - cs2[i].Len = uint32(nb) - } - cs = cs[:pos] - } - } - if len(cs) != 0 { - panic("not all codes were used up") - } - } - - if internal.Debug && !codes.checkLengths() { - panic("incomplete prefix tree detected") - } - return nil -} - -// GeneratePrefixes assigns a prefix value to all codes according to the -// bit-lengths. This function is used by both compressors and decompressors. -// -// The input codes must have the Sym and Len fields populated and be -// sorted by symbol. The bit-lengths of each code must be properly allocated, -// such that it forms a complete tree. -// -// The result will have the Val field populated and will produce a canonical -// prefix tree. The resulting codes will remain sorted by symbol. -func GeneratePrefixes(codes PrefixCodes) error { - if len(codes) <= 1 { - if len(codes) == 1 { - if codes[0].Len != 0 { - return errorf(errors.Invalid, "degenerate prefix tree with one node") - } - codes[0].Val = 0 - } - return nil - } - - // Compute basic statistics on the symbols. - var bitCnts [valueBits + 1]uint - c0 := codes[0] - bitCnts[c0.Len]++ - minBits, maxBits, symLast := c0.Len, c0.Len, c0.Sym - for _, c := range codes[1:] { - if c.Sym <= symLast { - return errorf(errors.Invalid, "non-unique or non-monotonically increasing symbols") - } - if minBits > c.Len { - minBits = c.Len - } - if maxBits < c.Len { - maxBits = c.Len - } - bitCnts[c.Len]++ // Histogram of bit counts - symLast = c.Sym // Keep track of last symbol - } - if minBits == 0 { - return errorf(errors.Invalid, "invalid prefix bit-length") - } - - // Compute the next code for a symbol of a given bit length. - var nextCodes [valueBits + 1]uint - var code uint - for i := minBits; i <= maxBits; i++ { - code <<= 1 - nextCodes[i] = code - code += bitCnts[i] - } - if code != 1<= n { - return s[:n] - } - return make([]uint32, n, n*3/2) -} - -func extendSliceUint32s(s [][]uint32, n int) [][]uint32 { - if cap(s) >= n { - return s[:n] - } - ss := make([][]uint32, n, n*3/2) - copy(ss, s[:cap(s)]) - return ss -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/range.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/range.go deleted file mode 100644 index 15ec9343..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/range.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package prefix - -type RangeCode struct { - Base uint32 // Starting base offset of the range - Len uint32 // Bit-length of a subsequent integer to add to base offset -} -type RangeCodes []RangeCode - -type RangeEncoder struct { - rcs RangeCodes - lut [1024]uint32 - minBase uint -} - -// End reports the non-inclusive ending range. -func (rc RangeCode) End() uint32 { return rc.Base + (1 << rc.Len) } - -// MakeRangeCodes creates a RangeCodes, where each region is assumed to be -// contiguously stacked, without any gaps, with bit-lengths taken from bits. -func MakeRangeCodes(minBase uint, bits []uint) (rc RangeCodes) { - for _, nb := range bits { - rc = append(rc, RangeCode{Base: uint32(minBase), Len: uint32(nb)}) - minBase += 1 << nb - } - return rc -} - -// Base reports the inclusive starting range for all ranges. -func (rcs RangeCodes) Base() uint32 { return rcs[0].Base } - -// End reports the non-inclusive ending range for all ranges. -func (rcs RangeCodes) End() uint32 { return rcs[len(rcs)-1].End() } - -// checkValid reports whether the RangeCodes is valid. In order to be valid, -// the following must hold true: -// -// rcs[i-1].Base <= rcs[i].Base -// rcs[i-1].End <= rcs[i].End -// rcs[i-1].End >= rcs[i].Base -// -// Practically speaking, each range must be increasing and must not have any -// gaps in between. It is okay for ranges to overlap. -func (rcs RangeCodes) checkValid() bool { - if len(rcs) == 0 { - return false - } - pre := rcs[0] - for _, cur := range rcs[1:] { - preBase, preEnd := pre.Base, pre.End() - curBase, curEnd := cur.Base, cur.End() - if preBase > curBase || preEnd > curEnd || preEnd < curBase { - return false - } - pre = cur - } - return true -} - -func (re *RangeEncoder) Init(rcs RangeCodes) { - if !rcs.checkValid() { - panic("invalid range codes") - } - *re = RangeEncoder{rcs: rcs, minBase: uint(rcs.Base())} - for sym, rc := range rcs { - base := int(rc.Base) - int(re.minBase) - end := int(rc.End()) - int(re.minBase) - if base >= len(re.lut) { - break - } - if end > len(re.lut) { - end = len(re.lut) - } - for i := base; i < end; i++ { - re.lut[i] = uint32(sym) - } - } -} - -func (re *RangeEncoder) Encode(offset uint) (sym uint) { - if idx := int(offset - re.minBase); idx < len(re.lut) { - return uint(re.lut[idx]) - } - sym = uint(re.lut[len(re.lut)-1]) -retry: - if int(sym) >= len(re.rcs) || re.rcs[sym].Base > uint32(offset) { - return sym - 1 - } - sym++ - goto retry // Avoid for-loop so that this function can be inlined -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/reader.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/reader.go deleted file mode 100644 index e6252c95..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/reader.go +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package prefix - -import ( - "bufio" - "bytes" - "encoding/binary" - "io" - "strings" - - "github.com/dsnet/compress" - "github.com/dsnet/compress/internal" - "github.com/dsnet/compress/internal/errors" -) - -// Reader implements a prefix decoder. If the input io.Reader satisfies the -// compress.ByteReader or compress.BufferedReader interface, then it also -// guarantees that it will never read more bytes than is necessary. -// -// For high performance, provide an io.Reader that satisfies the -// compress.BufferedReader interface. If the input does not satisfy either -// compress.ByteReader or compress.BufferedReader, then it will be internally -// wrapped with a bufio.Reader. -type Reader struct { - Offset int64 // Number of bytes read from the underlying io.Reader - - rd io.Reader - byteRd compress.ByteReader // Set if rd is a ByteReader - bufRd compress.BufferedReader // Set if rd is a BufferedReader - - bufBits uint64 // Buffer to hold some bits - numBits uint // Number of valid bits in bufBits - bigEndian bool // Do we treat input bytes as big endian? - - // These fields are only used if rd is a compress.BufferedReader. - bufPeek []byte // Buffer for the Peek data - discardBits int // Number of bits to discard from reader - fedBits uint // Number of bits fed in last call to PullBits - - // These fields are used to reduce allocations. - bb *buffer - br *bytesReader - sr *stringReader - bu *bufio.Reader -} - -// Init initializes the bit Reader to read from r. If bigEndian is true, then -// bits will be read starting from the most-significant bits of a byte -// (as done in bzip2), otherwise it will read starting from the -// least-significant bits of a byte (such as for deflate and brotli). -func (pr *Reader) Init(r io.Reader, bigEndian bool) { - *pr = Reader{ - rd: r, - bigEndian: bigEndian, - - bb: pr.bb, - br: pr.br, - sr: pr.sr, - bu: pr.bu, - } - switch rr := r.(type) { - case *bytes.Buffer: - if pr.bb == nil { - pr.bb = new(buffer) - } - *pr.bb = buffer{Buffer: rr} - pr.bufRd = pr.bb - case *bytes.Reader: - if pr.br == nil { - pr.br = new(bytesReader) - } - *pr.br = bytesReader{Reader: rr} - pr.bufRd = pr.br - case *strings.Reader: - if pr.sr == nil { - pr.sr = new(stringReader) - } - *pr.sr = stringReader{Reader: rr} - pr.bufRd = pr.sr - case compress.BufferedReader: - pr.bufRd = rr - case compress.ByteReader: - pr.byteRd = rr - default: - if pr.bu == nil { - pr.bu = bufio.NewReader(nil) - } - pr.bu.Reset(r) - pr.rd, pr.bufRd = pr.bu, pr.bu - } -} - -// BitsRead reports the total number of bits emitted from any Read method. -func (pr *Reader) BitsRead() int64 { - offset := 8*pr.Offset - int64(pr.numBits) - if pr.bufRd != nil { - discardBits := pr.discardBits + int(pr.fedBits-pr.numBits) - offset = 8*pr.Offset + int64(discardBits) - } - return offset -} - -// IsBufferedReader reports whether the underlying io.Reader is also a -// compress.BufferedReader. -func (pr *Reader) IsBufferedReader() bool { - return pr.bufRd != nil -} - -// ReadPads reads 0-7 bits from the bit buffer to achieve byte-alignment. -func (pr *Reader) ReadPads() uint { - nb := pr.numBits % 8 - val := uint(pr.bufBits & uint64(1<>= nb - pr.numBits -= nb - return val -} - -// Read reads bytes into buf. -// The bit-ordering mode does not affect this method. -func (pr *Reader) Read(buf []byte) (cnt int, err error) { - if pr.numBits > 0 { - if pr.numBits%8 != 0 { - return 0, errorf(errors.Invalid, "non-aligned bit buffer") - } - for cnt = 0; len(buf) > cnt && pr.numBits > 0; cnt++ { - if pr.bigEndian { - buf[cnt] = internal.ReverseLUT[byte(pr.bufBits)] - } else { - buf[cnt] = byte(pr.bufBits) - } - pr.bufBits >>= 8 - pr.numBits -= 8 - } - return cnt, nil - } - if _, err := pr.Flush(); err != nil { - return 0, err - } - cnt, err = pr.rd.Read(buf) - pr.Offset += int64(cnt) - return cnt, err -} - -// ReadOffset reads an offset value using the provided RangeCodes indexed by -// the symbol read. -func (pr *Reader) ReadOffset(pd *Decoder, rcs RangeCodes) uint { - rc := rcs[pr.ReadSymbol(pd)] - return uint(rc.Base) + pr.ReadBits(uint(rc.Len)) -} - -// TryReadBits attempts to read nb bits using the contents of the bit buffer -// alone. It returns the value and whether it succeeded. -// -// This method is designed to be inlined for performance reasons. -func (pr *Reader) TryReadBits(nb uint) (uint, bool) { - if pr.numBits < nb { - return 0, false - } - val := uint(pr.bufBits & uint64(1<>= nb - pr.numBits -= nb - return val, true -} - -// ReadBits reads nb bits in from the underlying reader. -func (pr *Reader) ReadBits(nb uint) uint { - if err := pr.PullBits(nb); err != nil { - errors.Panic(err) - } - val := uint(pr.bufBits & uint64(1<>= nb - pr.numBits -= nb - return val -} - -// TryReadSymbol attempts to decode the next symbol using the contents of the -// bit buffer alone. It returns the decoded symbol and whether it succeeded. -// -// This method is designed to be inlined for performance reasons. -func (pr *Reader) TryReadSymbol(pd *Decoder) (uint, bool) { - if pr.numBits < uint(pd.MinBits) || len(pd.chunks) == 0 { - return 0, false - } - chunk := pd.chunks[uint32(pr.bufBits)&pd.chunkMask] - nb := uint(chunk & countMask) - if nb > pr.numBits || nb > uint(pd.chunkBits) { - return 0, false - } - pr.bufBits >>= nb - pr.numBits -= nb - return uint(chunk >> countBits), true -} - -// ReadSymbol reads the next symbol using the provided prefix Decoder. -func (pr *Reader) ReadSymbol(pd *Decoder) uint { - if len(pd.chunks) == 0 { - panicf(errors.Invalid, "decode with empty prefix tree") - } - - nb := uint(pd.MinBits) - for { - if err := pr.PullBits(nb); err != nil { - errors.Panic(err) - } - chunk := pd.chunks[uint32(pr.bufBits)&pd.chunkMask] - nb = uint(chunk & countMask) - if nb > uint(pd.chunkBits) { - linkIdx := chunk >> countBits - chunk = pd.links[linkIdx][uint32(pr.bufBits>>pd.chunkBits)&pd.linkMask] - nb = uint(chunk & countMask) - } - if nb <= pr.numBits { - pr.bufBits >>= nb - pr.numBits -= nb - return uint(chunk >> countBits) - } - } -} - -// Flush updates the read offset of the underlying ByteReader. -// If reader is a compress.BufferedReader, then this calls Discard to update -// the read offset. -func (pr *Reader) Flush() (int64, error) { - if pr.bufRd == nil { - return pr.Offset, nil - } - - // Update the number of total bits to discard. - pr.discardBits += int(pr.fedBits - pr.numBits) - pr.fedBits = pr.numBits - - // Discard some bytes to update read offset. - var err error - nd := (pr.discardBits + 7) / 8 // Round up to nearest byte - nd, err = pr.bufRd.Discard(nd) - pr.discardBits -= nd * 8 // -7..0 - pr.Offset += int64(nd) - - // These are invalid after Discard. - pr.bufPeek = nil - return pr.Offset, err -} - -// PullBits ensures that at least nb bits exist in the bit buffer. -// If the underlying reader is a compress.BufferedReader, then this will fill -// the bit buffer with as many bits as possible, relying on Peek and Discard to -// properly advance the read offset. Otherwise, it will use ReadByte to fill the -// buffer with just the right number of bits. -func (pr *Reader) PullBits(nb uint) error { - if pr.bufRd != nil { - pr.discardBits += int(pr.fedBits - pr.numBits) - for { - if len(pr.bufPeek) == 0 { - pr.fedBits = pr.numBits // Don't discard bits just added - if _, err := pr.Flush(); err != nil { - return err - } - - // Peek no more bytes than necessary. - // The computation for cntPeek computes the minimum number of - // bytes to Peek to fill nb bits. - var err error - cntPeek := int(nb+(-nb&7)) / 8 - if cntPeek < pr.bufRd.Buffered() { - cntPeek = pr.bufRd.Buffered() - } - pr.bufPeek, err = pr.bufRd.Peek(cntPeek) - pr.bufPeek = pr.bufPeek[int(pr.numBits/8):] // Skip buffered bits - if len(pr.bufPeek) == 0 { - if pr.numBits >= nb { - break - } - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return err - } - } - - n := int(64-pr.numBits) / 8 // Number of bytes to copy to bit buffer - if len(pr.bufPeek) >= 8 { - // Starting with Go 1.7, the compiler should use a wide integer - // load here if the architecture supports it. - u := binary.LittleEndian.Uint64(pr.bufPeek) - if pr.bigEndian { - // Swap all the bits within each byte. - u = (u&0xaaaaaaaaaaaaaaaa)>>1 | (u&0x5555555555555555)<<1 - u = (u&0xcccccccccccccccc)>>2 | (u&0x3333333333333333)<<2 - u = (u&0xf0f0f0f0f0f0f0f0)>>4 | (u&0x0f0f0f0f0f0f0f0f)<<4 - } - - pr.bufBits |= u << pr.numBits - pr.numBits += uint(n * 8) - pr.bufPeek = pr.bufPeek[n:] - break - } else { - if n > len(pr.bufPeek) { - n = len(pr.bufPeek) - } - for _, c := range pr.bufPeek[:n] { - if pr.bigEndian { - c = internal.ReverseLUT[c] - } - pr.bufBits |= uint64(c) << pr.numBits - pr.numBits += 8 - } - pr.bufPeek = pr.bufPeek[n:] - if pr.numBits > 56 { - break - } - } - } - pr.fedBits = pr.numBits - } else { - for pr.numBits < nb { - c, err := pr.byteRd.ReadByte() - if err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return err - } - if pr.bigEndian { - c = internal.ReverseLUT[c] - } - pr.bufBits |= uint64(c) << pr.numBits - pr.numBits += 8 - pr.Offset++ - } - } - return nil -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/wrap.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/wrap.go deleted file mode 100644 index 49906d4a..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/wrap.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package prefix - -import ( - "bytes" - "io" - "strings" -) - -// For some of the common Readers, we wrap and extend them to satisfy the -// compress.BufferedReader interface to improve performance. - -type buffer struct { - *bytes.Buffer -} - -type bytesReader struct { - *bytes.Reader - pos int64 - buf []byte - arr [512]byte -} - -type stringReader struct { - *strings.Reader - pos int64 - buf []byte - arr [512]byte -} - -func (r *buffer) Buffered() int { - return r.Len() -} - -func (r *buffer) Peek(n int) ([]byte, error) { - b := r.Bytes() - if len(b) < n { - return b, io.EOF - } - return b[:n], nil -} - -func (r *buffer) Discard(n int) (int, error) { - b := r.Next(n) - if len(b) < n { - return len(b), io.EOF - } - return n, nil -} - -func (r *bytesReader) Buffered() int { - r.update() - if r.Len() > len(r.buf) { - return len(r.buf) - } - return r.Len() -} - -func (r *bytesReader) Peek(n int) ([]byte, error) { - if n > len(r.arr) { - return nil, io.ErrShortBuffer - } - - // Return sub-slice of local buffer if possible. - r.update() - if len(r.buf) >= n { - return r.buf[:n], nil - } - - // Fill entire local buffer, and return appropriate sub-slice. - cnt, err := r.ReadAt(r.arr[:], r.pos) - r.buf = r.arr[:cnt] - if cnt < n { - return r.arr[:cnt], err - } - return r.arr[:n], nil -} - -func (r *bytesReader) Discard(n int) (int, error) { - var err error - if n > r.Len() { - n, err = r.Len(), io.EOF - } - r.Seek(int64(n), io.SeekCurrent) - return n, err -} - -// update reslices the internal buffer to be consistent with the read offset. -func (r *bytesReader) update() { - pos, _ := r.Seek(0, io.SeekCurrent) - if off := pos - r.pos; off >= 0 && off < int64(len(r.buf)) { - r.buf, r.pos = r.buf[off:], pos - } else { - r.buf, r.pos = nil, pos - } -} - -func (r *stringReader) Buffered() int { - r.update() - if r.Len() > len(r.buf) { - return len(r.buf) - } - return r.Len() -} - -func (r *stringReader) Peek(n int) ([]byte, error) { - if n > len(r.arr) { - return nil, io.ErrShortBuffer - } - - // Return sub-slice of local buffer if possible. - r.update() - if len(r.buf) >= n { - return r.buf[:n], nil - } - - // Fill entire local buffer, and return appropriate sub-slice. - cnt, err := r.ReadAt(r.arr[:], r.pos) - r.buf = r.arr[:cnt] - if cnt < n { - return r.arr[:cnt], err - } - return r.arr[:n], nil -} - -func (r *stringReader) Discard(n int) (int, error) { - var err error - if n > r.Len() { - n, err = r.Len(), io.EOF - } - r.Seek(int64(n), io.SeekCurrent) - return n, err -} - -// update reslices the internal buffer to be consistent with the read offset. -func (r *stringReader) update() { - pos, _ := r.Seek(0, io.SeekCurrent) - if off := pos - r.pos; off >= 0 && off < int64(len(r.buf)) { - r.buf, r.pos = r.buf[off:], pos - } else { - r.buf, r.pos = nil, pos - } -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/prefix/writer.go b/backend/vendor/github.com/dsnet/compress/internal/prefix/writer.go deleted file mode 100644 index c9783905..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/prefix/writer.go +++ /dev/null @@ -1,166 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -package prefix - -import ( - "encoding/binary" - "io" - - "github.com/dsnet/compress/internal/errors" -) - -// Writer implements a prefix encoder. For performance reasons, Writer will not -// write bytes immediately to the underlying stream. -type Writer struct { - Offset int64 // Number of bytes written to the underlying io.Writer - - wr io.Writer - bufBits uint64 // Buffer to hold some bits - numBits uint // Number of valid bits in bufBits - bigEndian bool // Are bits written in big-endian order? - - buf [512]byte - cntBuf int -} - -// Init initializes the bit Writer to write to w. If bigEndian is true, then -// bits will be written starting from the most-significant bits of a byte -// (as done in bzip2), otherwise it will write starting from the -// least-significant bits of a byte (such as for deflate and brotli). -func (pw *Writer) Init(w io.Writer, bigEndian bool) { - *pw = Writer{wr: w, bigEndian: bigEndian} - return -} - -// BitsWritten reports the total number of bits issued to any Write method. -func (pw *Writer) BitsWritten() int64 { - return 8*pw.Offset + 8*int64(pw.cntBuf) + int64(pw.numBits) -} - -// WritePads writes 0-7 bits to the bit buffer to achieve byte-alignment. -func (pw *Writer) WritePads(v uint) { - nb := -pw.numBits & 7 - pw.bufBits |= uint64(v) << pw.numBits - pw.numBits += nb -} - -// Write writes bytes from buf. -// The bit-ordering mode does not affect this method. -func (pw *Writer) Write(buf []byte) (cnt int, err error) { - if pw.numBits > 0 || pw.cntBuf > 0 { - if pw.numBits%8 != 0 { - return 0, errorf(errors.Invalid, "non-aligned bit buffer") - } - if _, err := pw.Flush(); err != nil { - return 0, err - } - } - cnt, err = pw.wr.Write(buf) - pw.Offset += int64(cnt) - return cnt, err -} - -// WriteOffset writes ofs in a (sym, extra) fashion using the provided prefix -// Encoder and RangeEncoder. -func (pw *Writer) WriteOffset(ofs uint, pe *Encoder, re *RangeEncoder) { - sym := re.Encode(ofs) - pw.WriteSymbol(sym, pe) - rc := re.rcs[sym] - pw.WriteBits(ofs-uint(rc.Base), uint(rc.Len)) -} - -// TryWriteBits attempts to write nb bits using the contents of the bit buffer -// alone. It reports whether it succeeded. -// -// This method is designed to be inlined for performance reasons. -func (pw *Writer) TryWriteBits(v, nb uint) bool { - if 64-pw.numBits < nb { - return false - } - pw.bufBits |= uint64(v) << pw.numBits - pw.numBits += nb - return true -} - -// WriteBits writes nb bits of v to the underlying writer. -func (pw *Writer) WriteBits(v, nb uint) { - if _, err := pw.PushBits(); err != nil { - errors.Panic(err) - } - pw.bufBits |= uint64(v) << pw.numBits - pw.numBits += nb -} - -// TryWriteSymbol attempts to encode the next symbol using the contents of the -// bit buffer alone. It reports whether it succeeded. -// -// This method is designed to be inlined for performance reasons. -func (pw *Writer) TryWriteSymbol(sym uint, pe *Encoder) bool { - chunk := pe.chunks[uint32(sym)&pe.chunkMask] - nb := uint(chunk & countMask) - if 64-pw.numBits < nb { - return false - } - pw.bufBits |= uint64(chunk>>countBits) << pw.numBits - pw.numBits += nb - return true -} - -// WriteSymbol writes the symbol using the provided prefix Encoder. -func (pw *Writer) WriteSymbol(sym uint, pe *Encoder) { - if _, err := pw.PushBits(); err != nil { - errors.Panic(err) - } - chunk := pe.chunks[uint32(sym)&pe.chunkMask] - nb := uint(chunk & countMask) - pw.bufBits |= uint64(chunk>>countBits) << pw.numBits - pw.numBits += nb -} - -// Flush flushes all complete bytes from the bit buffer to the byte buffer, and -// then flushes all bytes in the byte buffer to the underlying writer. -// After this call, the bit Writer is will only withhold 7 bits at most. -func (pw *Writer) Flush() (int64, error) { - if pw.numBits < 8 && pw.cntBuf == 0 { - return pw.Offset, nil - } - if _, err := pw.PushBits(); err != nil { - return pw.Offset, err - } - cnt, err := pw.wr.Write(pw.buf[:pw.cntBuf]) - pw.cntBuf -= cnt - pw.Offset += int64(cnt) - return pw.Offset, err -} - -// PushBits pushes as many bytes as possible from the bit buffer to the byte -// buffer, reporting the number of bits pushed. -func (pw *Writer) PushBits() (uint, error) { - if pw.cntBuf >= len(pw.buf)-8 { - cnt, err := pw.wr.Write(pw.buf[:pw.cntBuf]) - pw.cntBuf -= cnt - pw.Offset += int64(cnt) - if err != nil { - return 0, err - } - } - - u := pw.bufBits - if pw.bigEndian { - // Swap all the bits within each byte. - u = (u&0xaaaaaaaaaaaaaaaa)>>1 | (u&0x5555555555555555)<<1 - u = (u&0xcccccccccccccccc)>>2 | (u&0x3333333333333333)<<2 - u = (u&0xf0f0f0f0f0f0f0f0)>>4 | (u&0x0f0f0f0f0f0f0f0f)<<4 - } - // Starting with Go 1.7, the compiler should use a wide integer - // store here if the architecture supports it. - binary.LittleEndian.PutUint64(pw.buf[pw.cntBuf:], u) - - nb := pw.numBits / 8 // Number of bytes to copy from bit buffer - pw.cntBuf += int(nb) - pw.bufBits >>= 8 * nb - pw.numBits -= 8 * nb - return 8 * nb, nil -} diff --git a/backend/vendor/github.com/dsnet/compress/internal/release.go b/backend/vendor/github.com/dsnet/compress/internal/release.go deleted file mode 100644 index 2d25f2fa..00000000 --- a/backend/vendor/github.com/dsnet/compress/internal/release.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2015, Joe Tsai. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE.md file. - -//go:build !debug && !gofuzz -// +build !debug,!gofuzz - -package internal - -// Debug indicates whether the debug build tag was set. -// -// If set, programs may choose to print with more human-readable -// debug information and also perform sanity checks that would otherwise be too -// expensive to run in a release build. -const Debug = false - -// GoFuzz indicates whether the gofuzz build tag was set. -// -// If set, programs may choose to disable certain checks (like checksums) that -// would be nearly impossible for gofuzz to properly get right. -// If GoFuzz is set, it implies that Debug is set as well. -const GoFuzz = false diff --git a/backend/vendor/github.com/dsnet/compress/zbench.sh b/backend/vendor/github.com/dsnet/compress/zbench.sh deleted file mode 100644 index 0205920d..00000000 --- a/backend/vendor/github.com/dsnet/compress/zbench.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# -# Copyright 2017, Joe Tsai. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE.md file. - -# zbench wraps internal/tool/bench and is useful for comparing benchmarks from -# the implementations in this repository relative to other implementations. -# -# See internal/tool/bench/main.go for more details. -cd $(dirname "${BASH_SOURCE[0]}")/internal/tool/bench -go run $(go list -f '{{ join .GoFiles "\n" }}') "$@" diff --git a/backend/vendor/github.com/dsnet/compress/zfuzz.sh b/backend/vendor/github.com/dsnet/compress/zfuzz.sh deleted file mode 100644 index 42958ed4..00000000 --- a/backend/vendor/github.com/dsnet/compress/zfuzz.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# -# Copyright 2017, Joe Tsai. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE.md file. - -# zfuzz wraps internal/tool/fuzz and is useful for fuzz testing each of -# the implementations in this repository. -cd $(dirname "${BASH_SOURCE[0]}")/internal/tool/fuzz -./fuzz.sh "$@" diff --git a/backend/vendor/github.com/dsnet/compress/zprof.sh b/backend/vendor/github.com/dsnet/compress/zprof.sh deleted file mode 100644 index 3cd535be..00000000 --- a/backend/vendor/github.com/dsnet/compress/zprof.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# -# Copyright 2017, Joe Tsai. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE.md file. - -if [ $# == 0 ]; then - echo "Usage: $0 PKG_PATH TEST_ARGS..." - echo "" - echo "Runs coverage and performance benchmarks for a given package." - echo "The results are stored in the _zprof_ directory." - echo "" - echo "Example:" - echo " $0 flate -test.bench=Decode/Twain/Default" - exit 1 -fi - -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PKG_PATH=$1 -PKG_NAME=$(basename $PKG_PATH) -shift - -TMPDIR=$(mktemp -d) -trap "rm -rf $TMPDIR $PKG_PATH/$PKG_NAME.test" SIGINT SIGTERM EXIT - -( - cd $DIR/$PKG_PATH - - # Print the go version. - go version - - # Perform coverage profiling. - go test github.com/dsnet/compress/$PKG_PATH -coverprofile $TMPDIR/cover.profile - if [ $? != 0 ]; then exit 1; fi - go tool cover -html $TMPDIR/cover.profile -o cover.html - - # Perform performance profiling. - if [ $# != 0 ]; then - go test -c github.com/dsnet/compress/$PKG_PATH - if [ $? != 0 ]; then exit 1; fi - ./$PKG_NAME.test -test.cpuprofile $TMPDIR/cpu.profile -test.memprofile $TMPDIR/mem.profile -test.run - "$@" - PPROF="go tool pprof" - $PPROF -output=cpu.svg -web $PKG_NAME.test $TMPDIR/cpu.profile 2> /dev/null - $PPROF -output=cpu.html -weblist=. $PKG_NAME.test $TMPDIR/cpu.profile 2> /dev/null - $PPROF -output=mem_objects.svg -alloc_objects -web $PKG_NAME.test $TMPDIR/mem.profile 2> /dev/null - $PPROF -output=mem_objects.html -alloc_objects -weblist=. $PKG_NAME.test $TMPDIR/mem.profile 2> /dev/null - $PPROF -output=mem_space.svg -alloc_space -web $PKG_NAME.test $TMPDIR/mem.profile 2> /dev/null - $PPROF -output=mem_space.html -alloc_space -weblist=. $PKG_NAME.test $TMPDIR/mem.profile 2> /dev/null - fi - - rm -rf $DIR/_zprof_/$PKG_NAME - mkdir -p $DIR/_zprof_/$PKG_NAME - mv *.html *.svg $DIR/_zprof_/$PKG_NAME 2> /dev/null -) diff --git a/backend/vendor/github.com/dsnet/compress/ztest.sh b/backend/vendor/github.com/dsnet/compress/ztest.sh deleted file mode 100644 index 15c4c00b..00000000 --- a/backend/vendor/github.com/dsnet/compress/ztest.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# -# Copyright 2017, Joe Tsai. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE.md file. - -cd $(go list -f '{{ .Dir }}' github.com/dsnet/compress) - -BOLD="\x1b[1mRunning: " -PASS="\x1b[32mPASS" -FAIL="\x1b[31mFAIL" -RESET="\x1b[0m" - -echo -e "${BOLD}fmt${RESET}" -RET_FMT=$(find . -name "*.go" | egrep -v "/(_.*_|\..*|testdata)/" | xargs gofmt -d) -if [[ ! -z "$RET_FMT" ]]; then echo "$RET_FMT"; echo; fi - -echo -e "${BOLD}test${RESET}" -RET_TEST=$(go test -race ./... | egrep -v "^(ok|[?])\s+") -if [[ ! -z "$RET_TEST" ]]; then echo "$RET_TEST"; echo; fi - -echo -e "${BOLD}staticcheck${RESET}" -RET_SCHK=$(staticcheck \ - -ignore " - github.com/dsnet/compress/brotli/*.go:SA4016 - github.com/dsnet/compress/brotli/*.go:S1023 - github.com/dsnet/compress/brotli/*.go:U1000 - github.com/dsnet/compress/bzip2/*.go:S1023 - github.com/dsnet/compress/flate/*.go:U1000 - github.com/dsnet/compress/internal/cgo/lzma/*.go:SA4000 - github.com/dsnet/compress/internal/prefix/*.go:S1004 - github.com/dsnet/compress/internal/prefix/*.go:S1023 - github.com/dsnet/compress/internal/prefix/*.go:SA4016 - github.com/dsnet/compress/internal/tool/bench/*.go:S1007 - github.com/dsnet/compress/xflate/internal/meta/*.go:S1023 - " ./... 2>&1) -if [[ ! -z "$RET_SCHK" ]]; then echo "$RET_SCHK"; echo; fi - -echo -e "${BOLD}lint${RESET}" -RET_LINT=$(golint ./... 2>&1 | - egrep -v "^vendor/" | - egrep -v "should have comment(.*)or be unexported" | - egrep -v "^(.*)type name will be used as(.*)by other packages" | - egrep -v "^brotli/transform.go:(.*)replace i [+]= 1 with i[+]{2}" | - egrep -v "^internal/prefix/prefix.go:(.*)replace symBits(.*) [-]= 1 with symBits(.*)[-]{2}" | - egrep -v "^xflate/common.go:(.*)NoCompression should be of the form" | - egrep -v "^exit status") -if [[ ! -z "$RET_LINT" ]]; then echo "$RET_LINT"; echo; fi - -if [[ ! -z "$RET_FMT" ]] || [ ! -z "$RET_TEST" ] || [[ ! -z "$RET_SCHK" ]] || [[ ! -z "$RET_LINT" ]]; then - echo -e "${FAIL}${RESET}"; exit 1 -else - echo -e "${PASS}${RESET}"; exit 0 -fi diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/.MODULE_ROOT b/backend/vendor/github.com/dsoprea/go-exif/v3/.MODULE_ROOT deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/LICENSE b/backend/vendor/github.com/dsoprea/go-exif/v3/LICENSE deleted file mode 100644 index 0b9358a3..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT LICENSE - -Copyright 2019 Dustin Oprea - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/ifd.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/ifd.go deleted file mode 100644 index 01886e96..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/ifd.go +++ /dev/null @@ -1,651 +0,0 @@ -package exifcommon - -import ( - "errors" - "fmt" - "strings" - - "github.com/dsoprea/go-logging" -) - -var ( - ifdLogger = log.NewLogger("exifcommon.ifd") -) - -var ( - ErrChildIfdNotMapped = errors.New("no child-IFD for that tag-ID under parent") -) - -// MappedIfd is one node in the IFD-mapping. -type MappedIfd struct { - ParentTagId uint16 - Placement []uint16 - Path []string - - Name string - TagId uint16 - Children map[uint16]*MappedIfd -} - -// String returns a descriptive string. -func (mi *MappedIfd) String() string { - pathPhrase := mi.PathPhrase() - return fmt.Sprintf("MappedIfd<(0x%04X) [%s] PATH=[%s]>", mi.TagId, mi.Name, pathPhrase) -} - -// PathPhrase returns a non-fully-qualified IFD path. -func (mi *MappedIfd) PathPhrase() string { - return strings.Join(mi.Path, "/") -} - -// TODO(dustin): Refactor this to use IfdIdentity structs. - -// IfdMapping describes all of the IFDs that we currently recognize. -type IfdMapping struct { - rootNode *MappedIfd -} - -// NewIfdMapping returns a new IfdMapping struct. -func NewIfdMapping() (ifdMapping *IfdMapping) { - rootNode := &MappedIfd{ - Path: make([]string, 0), - Children: make(map[uint16]*MappedIfd), - } - - return &IfdMapping{ - rootNode: rootNode, - } -} - -// NewIfdMappingWithStandard retruns a new IfdMapping struct preloaded with the -// standard IFDs. -func NewIfdMappingWithStandard() (ifdMapping *IfdMapping, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - im := NewIfdMapping() - - err = LoadStandardIfds(im) - log.PanicIf(err) - - return im, nil -} - -// Get returns the node given the path slice. -func (im *IfdMapping) Get(parentPlacement []uint16) (childIfd *MappedIfd, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ptr := im.rootNode - for _, tagId := range parentPlacement { - if descendantPtr, found := ptr.Children[tagId]; found == false { - log.Panicf("ifd child with tag-ID (%04x) not registered: [%s]", tagId, ptr.PathPhrase()) - } else { - ptr = descendantPtr - } - } - - return ptr, nil -} - -// GetWithPath returns the node given the path string. -func (im *IfdMapping) GetWithPath(pathPhrase string) (mi *MappedIfd, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if pathPhrase == "" { - log.Panicf("path-phrase is empty") - } - - path := strings.Split(pathPhrase, "/") - ptr := im.rootNode - - for _, name := range path { - var hit *MappedIfd - for _, mi := range ptr.Children { - if mi.Name == name { - hit = mi - break - } - } - - if hit == nil { - log.Panicf("ifd child with name [%s] not registered: [%s]", name, ptr.PathPhrase()) - } - - ptr = hit - } - - return ptr, nil -} - -// GetChild is a convenience function to get the child path for a given parent -// placement and child tag-ID. -func (im *IfdMapping) GetChild(parentPathPhrase string, tagId uint16) (mi *MappedIfd, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - mi, err = im.GetWithPath(parentPathPhrase) - log.PanicIf(err) - - for _, childMi := range mi.Children { - if childMi.TagId == tagId { - return childMi, nil - } - } - - // Whether or not an IFD is defined in data, such an IFD is not registered - // and would be unknown. - log.Panic(ErrChildIfdNotMapped) - return nil, nil -} - -// IfdTagIdAndIndex represents a specific part of the IFD path. -// -// This is a legacy type. -type IfdTagIdAndIndex struct { - Name string - TagId uint16 - Index int -} - -// String returns a descriptive string. -func (itii IfdTagIdAndIndex) String() string { - return fmt.Sprintf("IfdTagIdAndIndex", itii.Name, itii.TagId, itii.Index) -} - -// ResolvePath takes a list of names, which can also be suffixed with indices -// (to identify the second, third, etc.. sibling IFD) and returns a list of -// tag-IDs and those indices. -// -// Example: -// -// - IFD/Exif/Iop -// - IFD0/Exif/Iop -// -// This is the only call that supports adding the numeric indices. -func (im *IfdMapping) ResolvePath(pathPhrase string) (lineage []IfdTagIdAndIndex, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - pathPhrase = strings.TrimSpace(pathPhrase) - - if pathPhrase == "" { - log.Panicf("can not resolve empty path-phrase") - } - - path := strings.Split(pathPhrase, "/") - lineage = make([]IfdTagIdAndIndex, len(path)) - - ptr := im.rootNode - empty := IfdTagIdAndIndex{} - for i, name := range path { - indexByte := name[len(name)-1] - index := 0 - if indexByte >= '0' && indexByte <= '9' { - index = int(indexByte - '0') - name = name[:len(name)-1] - } - - itii := IfdTagIdAndIndex{} - for _, mi := range ptr.Children { - if mi.Name != name { - continue - } - - itii.Name = name - itii.TagId = mi.TagId - itii.Index = index - - ptr = mi - - break - } - - if itii == empty { - log.Panicf("ifd child with name [%s] not registered: [%s]", name, pathPhrase) - } - - lineage[i] = itii - } - - return lineage, nil -} - -// FqPathPhraseFromLineage returns the fully-qualified IFD path from the slice. -func (im *IfdMapping) FqPathPhraseFromLineage(lineage []IfdTagIdAndIndex) (fqPathPhrase string) { - fqPathParts := make([]string, len(lineage)) - for i, itii := range lineage { - if itii.Index > 0 { - fqPathParts[i] = fmt.Sprintf("%s%d", itii.Name, itii.Index) - } else { - fqPathParts[i] = itii.Name - } - } - - return strings.Join(fqPathParts, "/") -} - -// PathPhraseFromLineage returns the non-fully-qualified IFD path from the -// slice. -func (im *IfdMapping) PathPhraseFromLineage(lineage []IfdTagIdAndIndex) (pathPhrase string) { - pathParts := make([]string, len(lineage)) - for i, itii := range lineage { - pathParts[i] = itii.Name - } - - return strings.Join(pathParts, "/") -} - -// StripPathPhraseIndices returns a non-fully-qualified path-phrase (no -// indices). -func (im *IfdMapping) StripPathPhraseIndices(pathPhrase string) (strippedPathPhrase string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - lineage, err := im.ResolvePath(pathPhrase) - log.PanicIf(err) - - strippedPathPhrase = im.PathPhraseFromLineage(lineage) - return strippedPathPhrase, nil -} - -// Add puts the given IFD at the given position of the tree. The position of the -// tree is referred to as the placement and is represented by a set of tag-IDs, -// where the leftmost is the root tag and the tags going to the right are -// progressive descendants. -func (im *IfdMapping) Add(parentPlacement []uint16, tagId uint16, name string) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! It would be nicer to provide a list of names in the placement rather than tag-IDs. - - ptr, err := im.Get(parentPlacement) - log.PanicIf(err) - - path := make([]string, len(parentPlacement)+1) - if len(parentPlacement) > 0 { - copy(path, ptr.Path) - } - - path[len(path)-1] = name - - placement := make([]uint16, len(parentPlacement)+1) - if len(placement) > 0 { - copy(placement, ptr.Placement) - } - - placement[len(placement)-1] = tagId - - childIfd := &MappedIfd{ - ParentTagId: ptr.TagId, - Path: path, - Placement: placement, - Name: name, - TagId: tagId, - Children: make(map[uint16]*MappedIfd), - } - - if _, found := ptr.Children[tagId]; found == true { - log.Panicf("child IFD with tag-ID (%04x) already registered under IFD [%s] with tag-ID (%04x)", tagId, ptr.Name, ptr.TagId) - } - - ptr.Children[tagId] = childIfd - - return nil -} - -func (im *IfdMapping) dumpLineages(stack []*MappedIfd, input []string) (output []string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - currentIfd := stack[len(stack)-1] - - output = input - for _, childIfd := range currentIfd.Children { - stackCopy := make([]*MappedIfd, len(stack)+1) - - copy(stackCopy, stack) - stackCopy[len(stack)] = childIfd - - // Add to output, but don't include the obligatory root node. - parts := make([]string, len(stackCopy)-1) - for i, mi := range stackCopy[1:] { - parts[i] = mi.Name - } - - output = append(output, strings.Join(parts, "/")) - - output, err = im.dumpLineages(stackCopy, output) - log.PanicIf(err) - } - - return output, nil -} - -// DumpLineages returns a slice of strings representing all mappings. -func (im *IfdMapping) DumpLineages() (output []string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - stack := []*MappedIfd{im.rootNode} - output = make([]string, 0) - - output, err = im.dumpLineages(stack, output) - log.PanicIf(err) - - return output, nil -} - -// LoadStandardIfds loads the standard IFDs into the mapping. -func LoadStandardIfds(im *IfdMapping) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - err = im.Add( - []uint16{}, - IfdStandardIfdIdentity.TagId(), IfdStandardIfdIdentity.Name()) - - log.PanicIf(err) - - err = im.Add( - []uint16{IfdStandardIfdIdentity.TagId()}, - IfdExifStandardIfdIdentity.TagId(), IfdExifStandardIfdIdentity.Name()) - - log.PanicIf(err) - - err = im.Add( - []uint16{IfdStandardIfdIdentity.TagId(), IfdExifStandardIfdIdentity.TagId()}, - IfdExifIopStandardIfdIdentity.TagId(), IfdExifIopStandardIfdIdentity.Name()) - - log.PanicIf(err) - - err = im.Add( - []uint16{IfdStandardIfdIdentity.TagId()}, - IfdGpsInfoStandardIfdIdentity.TagId(), IfdGpsInfoStandardIfdIdentity.Name()) - - log.PanicIf(err) - - return nil -} - -// IfdTag describes a single IFD tag and its parent (if any). -type IfdTag struct { - parentIfdTag *IfdTag - tagId uint16 - name string -} - -func NewIfdTag(parentIfdTag *IfdTag, tagId uint16, name string) IfdTag { - return IfdTag{ - parentIfdTag: parentIfdTag, - tagId: tagId, - name: name, - } -} - -// ParentIfd returns the IfdTag of this IFD's parent. -func (it IfdTag) ParentIfd() *IfdTag { - return it.parentIfdTag -} - -// TagId returns the tag-ID of this IFD. -func (it IfdTag) TagId() uint16 { - return it.tagId -} - -// Name returns the simple name of this IFD. -func (it IfdTag) Name() string { - return it.name -} - -// String returns a descriptive string. -func (it IfdTag) String() string { - parentIfdPhrase := "" - if it.parentIfdTag != nil { - parentIfdPhrase = fmt.Sprintf(" PARENT=(0x%04x)[%s]", it.parentIfdTag.tagId, it.parentIfdTag.name) - } - - return fmt.Sprintf("IfdTag", it.tagId, it.name, parentIfdPhrase) -} - -var ( - // rootStandardIfd is the standard root IFD. - rootStandardIfd = NewIfdTag(nil, 0x0000, "IFD") // IFD - - // exifStandardIfd is the standard "Exif" IFD. - exifStandardIfd = NewIfdTag(&rootStandardIfd, 0x8769, "Exif") // IFD/Exif - - // iopStandardIfd is the standard "Iop" IFD. - iopStandardIfd = NewIfdTag(&exifStandardIfd, 0xA005, "Iop") // IFD/Exif/Iop - - // gpsInfoStandardIfd is the standard "GPS" IFD. - gpsInfoStandardIfd = NewIfdTag(&rootStandardIfd, 0x8825, "GPSInfo") // IFD/GPSInfo -) - -// IfdIdentityPart represents one component in an IFD path. -type IfdIdentityPart struct { - Name string - Index int -} - -// String returns a fully-qualified IFD path. -func (iip IfdIdentityPart) String() string { - if iip.Index > 0 { - return fmt.Sprintf("%s%d", iip.Name, iip.Index) - } else { - return iip.Name - } -} - -// UnindexedString returned a non-fully-qualified IFD path. -func (iip IfdIdentityPart) UnindexedString() string { - return iip.Name -} - -// IfdIdentity represents a single IFD path and provides access to various -// information and representations. -// -// Only global instances can be used for equality checks. -type IfdIdentity struct { - ifdTag IfdTag - parts []IfdIdentityPart - ifdPath string - fqIfdPath string -} - -// NewIfdIdentity returns a new IfdIdentity struct. -func NewIfdIdentity(ifdTag IfdTag, parts ...IfdIdentityPart) (ii *IfdIdentity) { - ii = &IfdIdentity{ - ifdTag: ifdTag, - parts: parts, - } - - ii.ifdPath = ii.getIfdPath() - ii.fqIfdPath = ii.getFqIfdPath() - - return ii -} - -// NewIfdIdentityFromString parses a string like "IFD/Exif" or "IFD1" or -// something more exotic with custom IFDs ("SomeIFD4/SomeChildIFD6"). Note that -// this will valid the unindexed IFD structure (because the standard tags from -// the specification are unindexed), but not, obviously, any indices (e.g. -// the numbers in "IFD0", "IFD1", "SomeIFD4/SomeChildIFD6"). It is -// required for the caller to check whether these specific instances -// were actually parsed out of the stream. -func NewIfdIdentityFromString(im *IfdMapping, fqIfdPath string) (ii *IfdIdentity, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - lineage, err := im.ResolvePath(fqIfdPath) - log.PanicIf(err) - - var lastIt *IfdTag - identityParts := make([]IfdIdentityPart, len(lineage)) - for i, itii := range lineage { - // Build out the tag that will eventually point to the IFD represented - // by the right-most part in the IFD path. - - it := &IfdTag{ - parentIfdTag: lastIt, - tagId: itii.TagId, - name: itii.Name, - } - - lastIt = it - - // Create the next IfdIdentity part. - - iip := IfdIdentityPart{ - Name: itii.Name, - Index: itii.Index, - } - - identityParts[i] = iip - } - - ii = NewIfdIdentity(*lastIt, identityParts...) - return ii, nil -} - -func (ii *IfdIdentity) getFqIfdPath() string { - partPhrases := make([]string, len(ii.parts)) - for i, iip := range ii.parts { - partPhrases[i] = iip.String() - } - - return strings.Join(partPhrases, "/") -} - -func (ii *IfdIdentity) getIfdPath() string { - partPhrases := make([]string, len(ii.parts)) - for i, iip := range ii.parts { - partPhrases[i] = iip.UnindexedString() - } - - return strings.Join(partPhrases, "/") -} - -// String returns a fully-qualified IFD path. -func (ii *IfdIdentity) String() string { - return ii.fqIfdPath -} - -// UnindexedString returns a non-fully-qualified IFD path. -func (ii *IfdIdentity) UnindexedString() string { - return ii.ifdPath -} - -// IfdTag returns the tag struct behind this IFD. -func (ii *IfdIdentity) IfdTag() IfdTag { - return ii.ifdTag -} - -// TagId returns the tag-ID of the IFD. -func (ii *IfdIdentity) TagId() uint16 { - return ii.ifdTag.TagId() -} - -// LeafPathPart returns the last right-most path-part, which represents the -// current IFD. -func (ii *IfdIdentity) LeafPathPart() IfdIdentityPart { - return ii.parts[len(ii.parts)-1] -} - -// Name returns the simple name of this IFD. -func (ii *IfdIdentity) Name() string { - return ii.LeafPathPart().Name -} - -// Index returns the index of this IFD (more then one IFD under a parent IFD -// will be numbered [0..n]). -func (ii *IfdIdentity) Index() int { - return ii.LeafPathPart().Index -} - -// Equals returns true if the two IfdIdentity instances are effectively -// identical. -// -// Since there's no way to get a specific fully-qualified IFD path without a -// certain slice of parts and all other fields are also derived from this, -// checking that the fully-qualified IFD path is equals is sufficient. -func (ii *IfdIdentity) Equals(ii2 *IfdIdentity) bool { - return ii.String() == ii2.String() -} - -// NewChild creates an IfdIdentity for an IFD that is a child of the current -// IFD. -func (ii *IfdIdentity) NewChild(childIfdTag IfdTag, index int) (iiChild *IfdIdentity) { - if *childIfdTag.parentIfdTag != ii.ifdTag { - log.Panicf("can not add child; we are not the parent:\nUS=%v\nCHILD=%v", ii.ifdTag, childIfdTag) - } - - childPart := IfdIdentityPart{childIfdTag.name, index} - childParts := append(ii.parts, childPart) - - iiChild = NewIfdIdentity(childIfdTag, childParts...) - return iiChild -} - -// NewSibling creates an IfdIdentity for an IFD that is a sibling to the current -// one. -func (ii *IfdIdentity) NewSibling(index int) (iiSibling *IfdIdentity) { - parts := make([]IfdIdentityPart, len(ii.parts)) - - copy(parts, ii.parts) - parts[len(parts)-1].Index = index - - iiSibling = NewIfdIdentity(ii.ifdTag, parts...) - return iiSibling -} - -var ( - // IfdStandardIfdIdentity represents the IFD path for IFD0. - IfdStandardIfdIdentity = NewIfdIdentity(rootStandardIfd, IfdIdentityPart{"IFD", 0}) - - // IfdExifStandardIfdIdentity represents the IFD path for IFD0/Exif0. - IfdExifStandardIfdIdentity = IfdStandardIfdIdentity.NewChild(exifStandardIfd, 0) - - // IfdExifIopStandardIfdIdentity represents the IFD path for IFD0/Exif0/Iop0. - IfdExifIopStandardIfdIdentity = IfdExifStandardIfdIdentity.NewChild(iopStandardIfd, 0) - - // IfdGPSInfoStandardIfdIdentity represents the IFD path for IFD0/GPSInfo0. - IfdGpsInfoStandardIfdIdentity = IfdStandardIfdIdentity.NewChild(gpsInfoStandardIfd, 0) - - // Ifd1StandardIfdIdentity represents the IFD path for IFD1. - Ifd1StandardIfdIdentity = NewIfdIdentity(rootStandardIfd, IfdIdentityPart{"IFD", 1}) -) diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/parser.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/parser.go deleted file mode 100644 index 76e8ef42..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/parser.go +++ /dev/null @@ -1,280 +0,0 @@ -package exifcommon - -import ( - "bytes" - "errors" - "math" - - "encoding/binary" - - "github.com/dsoprea/go-logging" -) - -var ( - parserLogger = log.NewLogger("exifcommon.parser") -) - -var ( - ErrParseFail = errors.New("parse failure") -) - -// Parser knows how to parse all well-defined, encoded EXIF types. -type Parser struct { -} - -// ParseBytesknows how to parse a byte-type value. -func (p *Parser) ParseBytes(data []byte, unitCount uint32) (value []uint8, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeByte.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - value = []uint8(data[:count]) - - return value, nil -} - -// ParseAscii returns a string and auto-strips the trailing NUL character that -// should be at the end of the encoding. -func (p *Parser) ParseAscii(data []byte, unitCount uint32) (value string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeAscii.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - if len(data) == 0 || data[count-1] != 0 { - s := string(data[:count]) - parserLogger.Warningf(nil, "ASCII not terminated with NUL as expected: [%v]", s) - - for i, c := range s { - if c > 127 { - // Binary - - t := s[:i] - parserLogger.Warningf(nil, "ASCII also had binary characters. Truncating: [%v]->[%s]", s, t) - - return t, nil - } - } - - return s, nil - } - - // Auto-strip the NUL from the end. It serves no purpose outside of - // encoding semantics. - - return string(data[:count-1]), nil -} - -// ParseAsciiNoNul returns a string without any consideration for a trailing NUL -// character. -func (p *Parser) ParseAsciiNoNul(data []byte, unitCount uint32) (value string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeAscii.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - return string(data[:count]), nil -} - -// ParseShorts knows how to parse an encoded list of shorts. -func (p *Parser) ParseShorts(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []uint16, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeShort.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - value = make([]uint16, count) - for i := 0; i < count; i++ { - value[i] = byteOrder.Uint16(data[i*2:]) - } - - return value, nil -} - -// ParseLongs knows how to encode an encoded list of unsigned longs. -func (p *Parser) ParseLongs(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeLong.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - value = make([]uint32, count) - for i := 0; i < count; i++ { - value[i] = byteOrder.Uint32(data[i*4:]) - } - - return value, nil -} - -// ParseFloats knows how to encode an encoded list of floats. -func (p *Parser) ParseFloats(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []float32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - count := int(unitCount) - - if len(data) != (TypeFloat.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - value = make([]float32, count) - for i := 0; i < count; i++ { - value[i] = math.Float32frombits(byteOrder.Uint32(data[i*4 : (i+1)*4])) - } - - return value, nil -} - -// ParseDoubles knows how to encode an encoded list of doubles. -func (p *Parser) ParseDoubles(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []float64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - count := int(unitCount) - - if len(data) != (TypeDouble.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - value = make([]float64, count) - for i := 0; i < count; i++ { - value[i] = math.Float64frombits(byteOrder.Uint64(data[i*8 : (i+1)*8])) - } - - return value, nil -} - -// ParseRationals knows how to parse an encoded list of unsigned rationals. -func (p *Parser) ParseRationals(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []Rational, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeRational.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - value = make([]Rational, count) - for i := 0; i < count; i++ { - value[i].Numerator = byteOrder.Uint32(data[i*8:]) - value[i].Denominator = byteOrder.Uint32(data[i*8+4:]) - } - - return value, nil -} - -// ParseSignedLongs knows how to parse an encoded list of signed longs. -func (p *Parser) ParseSignedLongs(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []int32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeSignedLong.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - b := bytes.NewBuffer(data) - - value = make([]int32, count) - for i := 0; i < count; i++ { - err := binary.Read(b, byteOrder, &value[i]) - log.PanicIf(err) - } - - return value, nil -} - -// ParseSignedRationals knows how to parse an encoded list of signed -// rationals. -func (p *Parser) ParseSignedRationals(data []byte, unitCount uint32, byteOrder binary.ByteOrder) (value []SignedRational, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - count := int(unitCount) - - if len(data) < (TypeSignedRational.Size() * count) { - log.Panic(ErrNotEnoughData) - } - - b := bytes.NewBuffer(data) - - value = make([]SignedRational, count) - for i := 0; i < count; i++ { - err = binary.Read(b, byteOrder, &value[i].Numerator) - log.PanicIf(err) - - err = binary.Read(b, byteOrder, &value[i].Denominator) - log.PanicIf(err) - } - - return value, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/testing_common.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/testing_common.go deleted file mode 100644 index f04fa22b..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/testing_common.go +++ /dev/null @@ -1,88 +0,0 @@ -package exifcommon - -import ( - "os" - "path" - - "encoding/binary" - "io/ioutil" - - "github.com/dsoprea/go-logging" -) - -var ( - moduleRootPath = "" - - testExifData []byte = nil - - // EncodeDefaultByteOrder is the default byte-order for encoding operations. - EncodeDefaultByteOrder = binary.BigEndian - - // Default byte order for tests. - TestDefaultByteOrder = binary.BigEndian -) - -func GetModuleRootPath() string { - if moduleRootPath == "" { - moduleRootPath = os.Getenv("EXIF_MODULE_ROOT_PATH") - if moduleRootPath != "" { - return moduleRootPath - } - - currentWd, err := os.Getwd() - log.PanicIf(err) - - currentPath := currentWd - - visited := make([]string, 0) - - for { - tryStampFilepath := path.Join(currentPath, ".MODULE_ROOT") - - _, err := os.Stat(tryStampFilepath) - if err != nil && os.IsNotExist(err) != true { - log.Panic(err) - } else if err == nil { - break - } - - visited = append(visited, tryStampFilepath) - - currentPath = path.Dir(currentPath) - if currentPath == "/" { - log.Panicf("could not find module-root: %v", visited) - } - } - - moduleRootPath = currentPath - } - - return moduleRootPath -} - -func GetTestAssetsPath() string { - moduleRootPath := GetModuleRootPath() - assetsPath := path.Join(moduleRootPath, "assets") - - return assetsPath -} - -func getTestImageFilepath() string { - assetsPath := GetTestAssetsPath() - testImageFilepath := path.Join(assetsPath, "NDM_8901.jpg") - return testImageFilepath -} - -func getTestExifData() []byte { - if testExifData == nil { - assetsPath := GetTestAssetsPath() - filepath := path.Join(assetsPath, "NDM_8901.jpg.exif") - - var err error - - testExifData, err = ioutil.ReadFile(filepath) - log.PanicIf(err) - } - - return testExifData -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/type.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/type.go deleted file mode 100644 index e79bcb9a..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/type.go +++ /dev/null @@ -1,482 +0,0 @@ -package exifcommon - -import ( - "errors" - "fmt" - "reflect" - "strconv" - "strings" - "unicode" - - "encoding/binary" - - "github.com/dsoprea/go-logging" -) - -var ( - typeLogger = log.NewLogger("exif.type") -) - -var ( - // ErrNotEnoughData is used when there isn't enough data to accommodate what - // we're trying to parse (sizeof(type) * unit_count). - ErrNotEnoughData = errors.New("not enough data for type") - - // ErrWrongType is used when we try to parse anything other than the - // current type. - ErrWrongType = errors.New("wrong type, can not parse") - - // ErrUnhandledUndefinedTypedTag is used when we try to parse a tag that's - // recorded as an "unknown" type but not a documented tag (therefore - // leaving us not knowning how to read it). - ErrUnhandledUndefinedTypedTag = errors.New("not a standard unknown-typed tag") -) - -// TagTypePrimitive is a type-alias that let's us easily lookup type properties. -type TagTypePrimitive uint16 - -const ( - // TypeByte describes an encoded list of bytes. - TypeByte TagTypePrimitive = 1 - - // TypeAscii describes an encoded list of characters that is terminated - // with a NUL in its encoded form. - TypeAscii TagTypePrimitive = 2 - - // TypeShort describes an encoded list of shorts. - TypeShort TagTypePrimitive = 3 - - // TypeLong describes an encoded list of longs. - TypeLong TagTypePrimitive = 4 - - // TypeRational describes an encoded list of rationals. - TypeRational TagTypePrimitive = 5 - - // TypeUndefined describes an encoded value that has a complex/non-clearcut - // interpretation. - TypeUndefined TagTypePrimitive = 7 - - // We've seen type-8, but have no documentation on it. - - // TypeSignedLong describes an encoded list of signed longs. - TypeSignedLong TagTypePrimitive = 9 - - // TypeSignedRational describes an encoded list of signed rationals. - TypeSignedRational TagTypePrimitive = 10 - - // TypeFloat describes an encoded list of floats - TypeFloat TagTypePrimitive = 11 - - // TypeDouble describes an encoded list of doubles. - TypeDouble TagTypePrimitive = 12 - - // TypeAsciiNoNul is just a pseudo-type, for our own purposes. - TypeAsciiNoNul TagTypePrimitive = 0xf0 -) - -// String returns the name of the type -func (typeType TagTypePrimitive) String() string { - return TypeNames[typeType] -} - -// Size returns the size of one atomic unit of the type. -func (tagType TagTypePrimitive) Size() int { - switch tagType { - case TypeByte, TypeAscii, TypeAsciiNoNul: - return 1 - case TypeShort: - return 2 - case TypeLong, TypeSignedLong, TypeFloat: - return 4 - case TypeRational, TypeSignedRational, TypeDouble: - return 8 - default: - log.Panicf("can not determine tag-value size for type (%d): [%s]", - tagType, - TypeNames[tagType]) - // Never called. - return 0 - } -} - -// IsValid returns true if tagType is a valid type. -func (tagType TagTypePrimitive) IsValid() bool { - - // TODO(dustin): Add test - - return tagType == TypeByte || - tagType == TypeAscii || - tagType == TypeAsciiNoNul || - tagType == TypeShort || - tagType == TypeLong || - tagType == TypeRational || - tagType == TypeSignedLong || - tagType == TypeSignedRational || - tagType == TypeFloat || - tagType == TypeDouble || - tagType == TypeUndefined -} - -var ( - // TODO(dustin): Rename TypeNames() to typeNames() and add getter. - TypeNames = map[TagTypePrimitive]string{ - TypeByte: "BYTE", - TypeAscii: "ASCII", - TypeShort: "SHORT", - TypeLong: "LONG", - TypeRational: "RATIONAL", - TypeUndefined: "UNDEFINED", - TypeSignedLong: "SLONG", - TypeSignedRational: "SRATIONAL", - TypeFloat: "FLOAT", - TypeDouble: "DOUBLE", - - TypeAsciiNoNul: "_ASCII_NO_NUL", - } - - typeNamesR = map[string]TagTypePrimitive{} -) - -// Rational describes an unsigned rational value. -type Rational struct { - // Numerator is the numerator of the rational value. - Numerator uint32 - - // Denominator is the numerator of the rational value. - Denominator uint32 -} - -// SignedRational describes a signed rational value. -type SignedRational struct { - // Numerator is the numerator of the rational value. - Numerator int32 - - // Denominator is the numerator of the rational value. - Denominator int32 -} - -func isPrintableText(s string) bool { - for _, c := range s { - // unicode.IsPrint() returns false for newline characters. - if c == 0x0d || c == 0x0a { - continue - } else if unicode.IsPrint(rune(c)) == false { - return false - } - } - - return true -} - -// Format returns a stringified value for the given encoding. Automatically -// parses. Automatically calculates count based on type size. This function -// also supports undefined-type values (the ones that we support, anyway) by -// way of the String() method that they all require. We can't be more specific -// because we're a base package and we can't refer to it. -func FormatFromType(value interface{}, justFirst bool) (phrase string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test - - switch t := value.(type) { - case []byte: - return DumpBytesToString(t), nil - case string: - for i, c := range t { - if c == 0 { - t = t[:i] - break - } - } - - if isPrintableText(t) == false { - phrase = fmt.Sprintf("string with binary data (%d bytes)", len(t)) - return phrase, nil - } - - return t, nil - case []uint16, []uint32, []int32, []float64, []float32: - val := reflect.ValueOf(t) - - if val.Len() == 0 { - return "", nil - } - - if justFirst == true { - var valueSuffix string - if val.Len() > 1 { - valueSuffix = "..." - } - - return fmt.Sprintf("%v%s", val.Index(0), valueSuffix), nil - } - - return fmt.Sprintf("%v", val), nil - case []Rational: - if len(t) == 0 { - return "", nil - } - - parts := make([]string, len(t)) - for i, r := range t { - parts[i] = fmt.Sprintf("%d/%d", r.Numerator, r.Denominator) - - if justFirst == true { - break - } - } - - if justFirst == true { - var valueSuffix string - if len(t) > 1 { - valueSuffix = "..." - } - - return fmt.Sprintf("%v%s", parts[0], valueSuffix), nil - } - - return fmt.Sprintf("%v", parts), nil - case []SignedRational: - if len(t) == 0 { - return "", nil - } - - parts := make([]string, len(t)) - for i, r := range t { - parts[i] = fmt.Sprintf("%d/%d", r.Numerator, r.Denominator) - - if justFirst == true { - break - } - } - - if justFirst == true { - var valueSuffix string - if len(t) > 1 { - valueSuffix = "..." - } - - return fmt.Sprintf("%v%s", parts[0], valueSuffix), nil - } - - return fmt.Sprintf("%v", parts), nil - case fmt.Stringer: - s := t.String() - if isPrintableText(s) == false { - phrase = fmt.Sprintf("stringable with binary data (%d bytes)", len(s)) - return phrase, nil - } - - // An undefined value that is documented (or that we otherwise support). - return s, nil - default: - // Affects only "unknown" values, in general. - log.Panicf("type can not be formatted into string: %v", reflect.TypeOf(value).Name()) - - // Never called. - return "", nil - } -} - -// Format returns a stringified value for the given encoding. Automatically -// parses. Automatically calculates count based on type size. -func FormatFromBytes(rawBytes []byte, tagType TagTypePrimitive, justFirst bool, byteOrder binary.ByteOrder) (phrase string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test - - typeSize := tagType.Size() - - if len(rawBytes)%typeSize != 0 { - log.Panicf("byte-count (%d) does not align for [%s] type with a size of (%d) bytes", len(rawBytes), TypeNames[tagType], typeSize) - } - - // unitCount is the calculated unit-count. This should equal the original - // value from the tag (pre-resolution). - unitCount := uint32(len(rawBytes) / typeSize) - - // Truncate the items if it's not bytes or a string and we just want the first. - - var value interface{} - - switch tagType { - case TypeByte: - var err error - - value, err = parser.ParseBytes(rawBytes, unitCount) - log.PanicIf(err) - case TypeAscii: - var err error - - value, err = parser.ParseAscii(rawBytes, unitCount) - log.PanicIf(err) - case TypeAsciiNoNul: - var err error - - value, err = parser.ParseAsciiNoNul(rawBytes, unitCount) - log.PanicIf(err) - case TypeShort: - var err error - - value, err = parser.ParseShorts(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - case TypeLong: - var err error - - value, err = parser.ParseLongs(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - case TypeFloat: - var err error - - value, err = parser.ParseFloats(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - case TypeDouble: - var err error - - value, err = parser.ParseDoubles(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - case TypeRational: - var err error - - value, err = parser.ParseRationals(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - case TypeSignedLong: - var err error - - value, err = parser.ParseSignedLongs(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - case TypeSignedRational: - var err error - - value, err = parser.ParseSignedRationals(rawBytes, unitCount, byteOrder) - log.PanicIf(err) - default: - // Affects only "unknown" values, in general. - log.Panicf("value of type [%s] can not be formatted into string", tagType.String()) - - // Never called. - return "", nil - } - - phrase, err = FormatFromType(value, justFirst) - log.PanicIf(err) - - return phrase, nil -} - -// TranslateStringToType converts user-provided strings to properly-typed -// values. If a string, returns a string. Else, assumes that it's a single -// number. If a list needs to be processed, it is the caller's responsibility to -// split it (according to whichever convention has been established). -func TranslateStringToType(tagType TagTypePrimitive, valueString string) (value interface{}, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if tagType == TypeUndefined { - // The caller should just call String() on the decoded type. - log.Panicf("undefined-type values are not supported") - } - - if tagType == TypeByte { - wide, err := strconv.ParseInt(valueString, 16, 8) - log.PanicIf(err) - - return byte(wide), nil - } else if tagType == TypeAscii || tagType == TypeAsciiNoNul { - // Whether or not we're putting an NUL on the end is only relevant for - // byte-level encoding. This function really just supports a user - // interface. - - return valueString, nil - } else if tagType == TypeShort { - n, err := strconv.ParseUint(valueString, 10, 16) - log.PanicIf(err) - - return uint16(n), nil - } else if tagType == TypeLong { - n, err := strconv.ParseUint(valueString, 10, 32) - log.PanicIf(err) - - return uint32(n), nil - } else if tagType == TypeRational { - parts := strings.SplitN(valueString, "/", 2) - - numerator, err := strconv.ParseUint(parts[0], 10, 32) - log.PanicIf(err) - - denominator, err := strconv.ParseUint(parts[1], 10, 32) - log.PanicIf(err) - - return Rational{ - Numerator: uint32(numerator), - Denominator: uint32(denominator), - }, nil - } else if tagType == TypeSignedLong { - n, err := strconv.ParseInt(valueString, 10, 32) - log.PanicIf(err) - - return int32(n), nil - } else if tagType == TypeFloat { - n, err := strconv.ParseFloat(valueString, 32) - log.PanicIf(err) - - return float32(n), nil - } else if tagType == TypeDouble { - n, err := strconv.ParseFloat(valueString, 64) - log.PanicIf(err) - - return float64(n), nil - } else if tagType == TypeSignedRational { - parts := strings.SplitN(valueString, "/", 2) - - numerator, err := strconv.ParseInt(parts[0], 10, 32) - log.PanicIf(err) - - denominator, err := strconv.ParseInt(parts[1], 10, 32) - log.PanicIf(err) - - return SignedRational{ - Numerator: int32(numerator), - Denominator: int32(denominator), - }, nil - } - - log.Panicf("from-string encoding for type not supported; this shouldn't happen: [%s]", tagType.String()) - return nil, nil -} - -// GetTypeByName returns the `TagTypePrimitive` for the given type name. -// Returns (0) if not valid. -func GetTypeByName(typeName string) (tagType TagTypePrimitive, found bool) { - tagType, found = typeNamesR[typeName] - return tagType, found -} - -// BasicTag describes a single tag for any purpose. -type BasicTag struct { - // FqIfdPath is the fully-qualified IFD-path. - FqIfdPath string - - // IfdPath is the unindexed IFD-path. - IfdPath string - - // TagId is the tag-ID. - TagId uint16 -} - -func init() { - for typeId, typeName := range TypeNames { - typeNamesR[typeName] = typeId - } -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/utility.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/utility.go deleted file mode 100644 index 57504970..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/utility.go +++ /dev/null @@ -1,148 +0,0 @@ -package exifcommon - -import ( - "bytes" - "fmt" - "reflect" - "strconv" - "strings" - "time" - - "github.com/dsoprea/go-logging" -) - -var ( - timeType = reflect.TypeOf(time.Time{}) -) - -// DumpBytes prints a list of hex-encoded bytes. -func DumpBytes(data []byte) { - fmt.Printf("DUMP: ") - for _, x := range data { - fmt.Printf("%02x ", x) - } - - fmt.Printf("\n") -} - -// DumpBytesClause prints a list like DumpBytes(), but encapsulated in -// "[]byte { ... }". -func DumpBytesClause(data []byte) { - fmt.Printf("DUMP: ") - - fmt.Printf("[]byte { ") - - for i, x := range data { - fmt.Printf("0x%02x", x) - - if i < len(data)-1 { - fmt.Printf(", ") - } - } - - fmt.Printf(" }\n") -} - -// DumpBytesToString returns a stringified list of hex-encoded bytes. -func DumpBytesToString(data []byte) string { - b := new(bytes.Buffer) - - for i, x := range data { - _, err := b.WriteString(fmt.Sprintf("%02x", x)) - log.PanicIf(err) - - if i < len(data)-1 { - _, err := b.WriteRune(' ') - log.PanicIf(err) - } - } - - return b.String() -} - -// DumpBytesClauseToString returns a comma-separated list of hex-encoded bytes. -func DumpBytesClauseToString(data []byte) string { - b := new(bytes.Buffer) - - for i, x := range data { - _, err := b.WriteString(fmt.Sprintf("0x%02x", x)) - log.PanicIf(err) - - if i < len(data)-1 { - _, err := b.WriteString(", ") - log.PanicIf(err) - } - } - - return b.String() -} - -// ExifFullTimestampString produces a string like "2018:11:30 13:01:49" from a -// `time.Time` struct. It will attempt to convert to UTC first. -func ExifFullTimestampString(t time.Time) (fullTimestampPhrase string) { - t = t.UTC() - - return fmt.Sprintf("%04d:%02d:%02d %02d:%02d:%02d", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second()) -} - -// ParseExifFullTimestamp parses dates like "2018:11:30 13:01:49" into a UTC -// `time.Time` struct. -func ParseExifFullTimestamp(fullTimestampPhrase string) (timestamp time.Time, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - parts := strings.Split(fullTimestampPhrase, " ") - datestampValue, timestampValue := parts[0], parts[1] - - // Normalize the separators. - datestampValue = strings.ReplaceAll(datestampValue, "-", ":") - timestampValue = strings.ReplaceAll(timestampValue, "-", ":") - - dateParts := strings.Split(datestampValue, ":") - - year, err := strconv.ParseUint(dateParts[0], 10, 16) - if err != nil { - log.Panicf("could not parse year") - } - - month, err := strconv.ParseUint(dateParts[1], 10, 8) - if err != nil { - log.Panicf("could not parse month") - } - - day, err := strconv.ParseUint(dateParts[2], 10, 8) - if err != nil { - log.Panicf("could not parse day") - } - - timeParts := strings.Split(timestampValue, ":") - - hour, err := strconv.ParseUint(timeParts[0], 10, 8) - if err != nil { - log.Panicf("could not parse hour") - } - - minute, err := strconv.ParseUint(timeParts[1], 10, 8) - if err != nil { - log.Panicf("could not parse minute") - } - - second, err := strconv.ParseUint(timeParts[2], 10, 8) - if err != nil { - log.Panicf("could not parse second") - } - - timestamp = time.Date(int(year), time.Month(month), int(day), int(hour), int(minute), int(second), 0, time.UTC) - return timestamp, nil -} - -// IsTime returns true if the value is a `time.Time`. -func IsTime(v interface{}) bool { - - // TODO(dustin): Add test - - return reflect.TypeOf(v) == timeType -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/value_context.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/value_context.go deleted file mode 100644 index b9e63410..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/value_context.go +++ /dev/null @@ -1,464 +0,0 @@ -package exifcommon - -import ( - "errors" - "io" - - "encoding/binary" - - "github.com/dsoprea/go-logging" -) - -var ( - parser *Parser -) - -var ( - // ErrNotFarValue indicates that an offset-based lookup was attempted for a - // non-offset-based (embedded) value. - ErrNotFarValue = errors.New("not a far value") -) - -// ValueContext embeds all of the parameters required to find and extract the -// actual tag value. -type ValueContext struct { - unitCount uint32 - valueOffset uint32 - rawValueOffset []byte - rs io.ReadSeeker - - tagType TagTypePrimitive - byteOrder binary.ByteOrder - - // undefinedValueTagType is the effective type to use if this is an - // "undefined" value. - undefinedValueTagType TagTypePrimitive - - ifdPath string - tagId uint16 -} - -// TODO(dustin): We can update newValueContext() to derive `valueOffset` itself (from `rawValueOffset`). - -// NewValueContext returns a new ValueContext struct. -func NewValueContext(ifdPath string, tagId uint16, unitCount, valueOffset uint32, rawValueOffset []byte, rs io.ReadSeeker, tagType TagTypePrimitive, byteOrder binary.ByteOrder) *ValueContext { - return &ValueContext{ - unitCount: unitCount, - valueOffset: valueOffset, - rawValueOffset: rawValueOffset, - rs: rs, - - tagType: tagType, - byteOrder: byteOrder, - - ifdPath: ifdPath, - tagId: tagId, - } -} - -// SetUndefinedValueType sets the effective type if this is an unknown-type tag. -func (vc *ValueContext) SetUndefinedValueType(tagType TagTypePrimitive) { - if vc.tagType != TypeUndefined { - log.Panicf("can not set effective type for unknown-type tag because this is *not* an unknown-type tag") - } - - vc.undefinedValueTagType = tagType -} - -// UnitCount returns the embedded unit-count. -func (vc *ValueContext) UnitCount() uint32 { - return vc.unitCount -} - -// ValueOffset returns the value-offset decoded as a `uint32`. -func (vc *ValueContext) ValueOffset() uint32 { - return vc.valueOffset -} - -// RawValueOffset returns the uninterpreted value-offset. This is used for -// embedded values (values small enough to fit within the offset bytes rather -// than needing to be stored elsewhere and referred to by an actual offset). -func (vc *ValueContext) RawValueOffset() []byte { - return vc.rawValueOffset -} - -// AddressableData returns the block of data that we can dereference into. -func (vc *ValueContext) AddressableData() io.ReadSeeker { - - // RELEASE)dustin): Rename from AddressableData() to ReadSeeker() - - return vc.rs -} - -// ByteOrder returns the byte-order of numbers. -func (vc *ValueContext) ByteOrder() binary.ByteOrder { - return vc.byteOrder -} - -// IfdPath returns the path of the IFD containing this tag. -func (vc *ValueContext) IfdPath() string { - return vc.ifdPath -} - -// TagId returns the ID of the tag that we represent. -func (vc *ValueContext) TagId() uint16 { - return vc.tagId -} - -// isEmbedded returns whether the value is embedded or a reference. This can't -// be precalculated since the size is not defined for all types (namely the -// "undefined" types). -func (vc *ValueContext) isEmbedded() bool { - tagType := vc.effectiveValueType() - - return (tagType.Size() * int(vc.unitCount)) <= 4 -} - -// SizeInBytes returns the number of bytes that this value requires. The -// underlying call will panic if the type is UNDEFINED. It is the -// responsibility of the caller to preemptively check that. -func (vc *ValueContext) SizeInBytes() int { - tagType := vc.effectiveValueType() - - return tagType.Size() * int(vc.unitCount) -} - -// effectiveValueType returns the effective type of the unknown-type tag or, if -// not unknown, the actual type. -func (vc *ValueContext) effectiveValueType() (tagType TagTypePrimitive) { - if vc.tagType == TypeUndefined { - tagType = vc.undefinedValueTagType - - if tagType == 0 { - log.Panicf("undefined-value type not set") - } - } else { - tagType = vc.tagType - } - - return tagType -} - -// readRawEncoded returns the encoded bytes for the value that we represent. -func (vc *ValueContext) readRawEncoded() (rawBytes []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - tagType := vc.effectiveValueType() - - unitSizeRaw := uint32(tagType.Size()) - - if vc.isEmbedded() == true { - byteLength := unitSizeRaw * vc.unitCount - return vc.rawValueOffset[:byteLength], nil - } - - _, err = vc.rs.Seek(int64(vc.valueOffset), io.SeekStart) - log.PanicIf(err) - - rawBytes = make([]byte, vc.unitCount*unitSizeRaw) - - _, err = io.ReadFull(vc.rs, rawBytes) - log.PanicIf(err) - - return rawBytes, nil -} - -// GetFarOffset returns the offset if the value is not embedded [within the -// pointer itself] or an error if an embedded value. -func (vc *ValueContext) GetFarOffset() (offset uint32, err error) { - if vc.isEmbedded() == true { - return 0, ErrNotFarValue - } - - return vc.valueOffset, nil -} - -// ReadRawEncoded returns the encoded bytes for the value that we represent. -func (vc *ValueContext) ReadRawEncoded() (rawBytes []byte, err error) { - - // TODO(dustin): Remove this method and rename readRawEncoded in its place. - - return vc.readRawEncoded() -} - -// Format returns a string representation for the value. -// -// Where the type is not ASCII, `justFirst` indicates whether to just stringify -// the first item in the slice (or return an empty string if the slice is -// empty). -// -// Since this method lacks the information to process undefined-type tags (e.g. -// byte-order, tag-ID, IFD type), it will return an error if attempted. See -// `Undefined()`. -func (vc *ValueContext) Format() (value string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawBytes, err := vc.readRawEncoded() - log.PanicIf(err) - - phrase, err := FormatFromBytes(rawBytes, vc.effectiveValueType(), false, vc.byteOrder) - log.PanicIf(err) - - return phrase, nil -} - -// FormatFirst is similar to `Format` but only gets and stringifies the first -// item. -func (vc *ValueContext) FormatFirst() (value string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawBytes, err := vc.readRawEncoded() - log.PanicIf(err) - - phrase, err := FormatFromBytes(rawBytes, vc.tagType, true, vc.byteOrder) - log.PanicIf(err) - - return phrase, nil -} - -// ReadBytes parses the encoded byte-array from the value-context. -func (vc *ValueContext) ReadBytes() (value []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseBytes(rawValue, vc.unitCount) - log.PanicIf(err) - - return value, nil -} - -// ReadAscii parses the encoded NUL-terminated ASCII string from the value- -// context. -func (vc *ValueContext) ReadAscii() (value string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseAscii(rawValue, vc.unitCount) - log.PanicIf(err) - - return value, nil -} - -// ReadAsciiNoNul parses the non-NUL-terminated encoded ASCII string from the -// value-context. -func (vc *ValueContext) ReadAsciiNoNul() (value string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseAsciiNoNul(rawValue, vc.unitCount) - log.PanicIf(err) - - return value, nil -} - -// ReadShorts parses the list of encoded shorts from the value-context. -func (vc *ValueContext) ReadShorts() (value []uint16, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseShorts(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// ReadLongs parses the list of encoded, unsigned longs from the value-context. -func (vc *ValueContext) ReadLongs() (value []uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseLongs(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// ReadFloats parses the list of encoded, floats from the value-context. -func (vc *ValueContext) ReadFloats() (value []float32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseFloats(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// ReadDoubles parses the list of encoded, doubles from the value-context. -func (vc *ValueContext) ReadDoubles() (value []float64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseDoubles(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// ReadRationals parses the list of encoded, unsigned rationals from the value- -// context. -func (vc *ValueContext) ReadRationals() (value []Rational, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseRationals(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// ReadSignedLongs parses the list of encoded, signed longs from the value-context. -func (vc *ValueContext) ReadSignedLongs() (value []int32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseSignedLongs(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// ReadSignedRationals parses the list of encoded, signed rationals from the -// value-context. -func (vc *ValueContext) ReadSignedRationals() (value []SignedRational, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawValue, err := vc.readRawEncoded() - log.PanicIf(err) - - value, err = parser.ParseSignedRationals(rawValue, vc.unitCount, vc.byteOrder) - log.PanicIf(err) - - return value, nil -} - -// Values knows how to resolve the given value. This value is always a list -// (undefined-values aside), so we're named accordingly. -// -// Since this method lacks the information to process unknown-type tags (e.g. -// byte-order, tag-ID, IFD type), it will return an error if attempted. See -// `Undefined()`. -func (vc *ValueContext) Values() (values interface{}, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if vc.tagType == TypeByte { - values, err = vc.ReadBytes() - log.PanicIf(err) - } else if vc.tagType == TypeAscii { - values, err = vc.ReadAscii() - log.PanicIf(err) - } else if vc.tagType == TypeAsciiNoNul { - values, err = vc.ReadAsciiNoNul() - log.PanicIf(err) - } else if vc.tagType == TypeShort { - values, err = vc.ReadShorts() - log.PanicIf(err) - } else if vc.tagType == TypeLong { - values, err = vc.ReadLongs() - log.PanicIf(err) - } else if vc.tagType == TypeRational { - values, err = vc.ReadRationals() - log.PanicIf(err) - } else if vc.tagType == TypeSignedLong { - values, err = vc.ReadSignedLongs() - log.PanicIf(err) - } else if vc.tagType == TypeSignedRational { - values, err = vc.ReadSignedRationals() - log.PanicIf(err) - } else if vc.tagType == TypeFloat { - values, err = vc.ReadFloats() - log.PanicIf(err) - } else if vc.tagType == TypeDouble { - values, err = vc.ReadDoubles() - log.PanicIf(err) - } else if vc.tagType == TypeUndefined { - log.Panicf("will not parse undefined-type value") - - // Never called. - return nil, nil - } else { - log.Panicf("value of type [%s] is unparseable", vc.tagType) - // Never called. - return nil, nil - } - - return values, nil -} - -func init() { - parser = new(Parser) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/common/value_encoder.go b/backend/vendor/github.com/dsoprea/go-exif/v3/common/value_encoder.go deleted file mode 100644 index 695aa610..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/common/value_encoder.go +++ /dev/null @@ -1,272 +0,0 @@ -package exifcommon - -import ( - "bytes" - "math" - "reflect" - "time" - - "encoding/binary" - - "github.com/dsoprea/go-logging" -) - -var ( - typeEncodeLogger = log.NewLogger("exif.type_encode") -) - -// EncodedData encapsulates the compound output of an encoding operation. -type EncodedData struct { - Type TagTypePrimitive - Encoded []byte - - // TODO(dustin): Is this really necessary? We might have this just to correlate to the incoming stream format (raw bytes and a unit-count both for incoming and outgoing). - UnitCount uint32 -} - -// ValueEncoder knows how to encode values of every type to bytes. -type ValueEncoder struct { - byteOrder binary.ByteOrder -} - -// NewValueEncoder returns a new ValueEncoder. -func NewValueEncoder(byteOrder binary.ByteOrder) *ValueEncoder { - return &ValueEncoder{ - byteOrder: byteOrder, - } -} - -func (ve *ValueEncoder) encodeBytes(value []uint8) (ed EncodedData, err error) { - ed.Type = TypeByte - ed.Encoded = []byte(value) - ed.UnitCount = uint32(len(value)) - - return ed, nil -} - -func (ve *ValueEncoder) encodeAscii(value string) (ed EncodedData, err error) { - ed.Type = TypeAscii - - ed.Encoded = []byte(value) - ed.Encoded = append(ed.Encoded, 0) - - ed.UnitCount = uint32(len(ed.Encoded)) - - return ed, nil -} - -// encodeAsciiNoNul returns a string encoded as a byte-string without a trailing -// NUL byte. -// -// Note that: -// -// 1. This type can not be automatically encoded using `Encode()`. The default -// mode is to encode *with* a trailing NUL byte using `encodeAscii`. Only -// certain undefined-type tags using an unterminated ASCII string and these -// are exceptional in nature. -// -// 2. The presence of this method allows us to completely test the complimentary -// no-nul parser. -func (ve *ValueEncoder) encodeAsciiNoNul(value string) (ed EncodedData, err error) { - ed.Type = TypeAsciiNoNul - ed.Encoded = []byte(value) - ed.UnitCount = uint32(len(ed.Encoded)) - - return ed, nil -} - -func (ve *ValueEncoder) encodeShorts(value []uint16) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - ed.Encoded = make([]byte, ed.UnitCount*2) - - for i := uint32(0); i < ed.UnitCount; i++ { - ve.byteOrder.PutUint16(ed.Encoded[i*2:(i+1)*2], value[i]) - } - - ed.Type = TypeShort - - return ed, nil -} - -func (ve *ValueEncoder) encodeLongs(value []uint32) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - ed.Encoded = make([]byte, ed.UnitCount*4) - - for i := uint32(0); i < ed.UnitCount; i++ { - ve.byteOrder.PutUint32(ed.Encoded[i*4:(i+1)*4], value[i]) - } - - ed.Type = TypeLong - - return ed, nil -} - -func (ve *ValueEncoder) encodeFloats(value []float32) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - ed.Encoded = make([]byte, ed.UnitCount*4) - - for i := uint32(0); i < ed.UnitCount; i++ { - ve.byteOrder.PutUint32(ed.Encoded[i*4:(i+1)*4], math.Float32bits(value[i])) - } - - ed.Type = TypeFloat - - return ed, nil -} - -func (ve *ValueEncoder) encodeDoubles(value []float64) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - ed.Encoded = make([]byte, ed.UnitCount*8) - - for i := uint32(0); i < ed.UnitCount; i++ { - ve.byteOrder.PutUint64(ed.Encoded[i*8:(i+1)*8], math.Float64bits(value[i])) - } - - ed.Type = TypeDouble - - return ed, nil -} - -func (ve *ValueEncoder) encodeRationals(value []Rational) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - ed.Encoded = make([]byte, ed.UnitCount*8) - - for i := uint32(0); i < ed.UnitCount; i++ { - ve.byteOrder.PutUint32(ed.Encoded[i*8+0:i*8+4], value[i].Numerator) - ve.byteOrder.PutUint32(ed.Encoded[i*8+4:i*8+8], value[i].Denominator) - } - - ed.Type = TypeRational - - return ed, nil -} - -func (ve *ValueEncoder) encodeSignedLongs(value []int32) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - - b := bytes.NewBuffer(make([]byte, 0, 8*ed.UnitCount)) - - for i := uint32(0); i < ed.UnitCount; i++ { - err := binary.Write(b, ve.byteOrder, value[i]) - log.PanicIf(err) - } - - ed.Type = TypeSignedLong - ed.Encoded = b.Bytes() - - return ed, nil -} - -func (ve *ValueEncoder) encodeSignedRationals(value []SignedRational) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ed.UnitCount = uint32(len(value)) - - b := bytes.NewBuffer(make([]byte, 0, 8*ed.UnitCount)) - - for i := uint32(0); i < ed.UnitCount; i++ { - err := binary.Write(b, ve.byteOrder, value[i].Numerator) - log.PanicIf(err) - - err = binary.Write(b, ve.byteOrder, value[i].Denominator) - log.PanicIf(err) - } - - ed.Type = TypeSignedRational - ed.Encoded = b.Bytes() - - return ed, nil -} - -// Encode returns bytes for the given value, infering type from the actual -// value. This does not support `TypeAsciiNoNull` (all strings are encoded as -// `TypeAscii`). -func (ve *ValueEncoder) Encode(value interface{}) (ed EncodedData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - switch t := value.(type) { - case []byte: - ed, err = ve.encodeBytes(t) - log.PanicIf(err) - case string: - ed, err = ve.encodeAscii(t) - log.PanicIf(err) - case []uint16: - ed, err = ve.encodeShorts(t) - log.PanicIf(err) - case []uint32: - ed, err = ve.encodeLongs(t) - log.PanicIf(err) - case []float32: - ed, err = ve.encodeFloats(t) - log.PanicIf(err) - case []float64: - ed, err = ve.encodeDoubles(t) - log.PanicIf(err) - case []Rational: - ed, err = ve.encodeRationals(t) - log.PanicIf(err) - case []int32: - ed, err = ve.encodeSignedLongs(t) - log.PanicIf(err) - case []SignedRational: - ed, err = ve.encodeSignedRationals(t) - log.PanicIf(err) - case time.Time: - // For convenience, if the user doesn't want to deal with translation - // semantics with timestamps. - - s := ExifFullTimestampString(t) - - ed, err = ve.encodeAscii(s) - log.PanicIf(err) - default: - log.Panicf("value not encodable: [%s] [%v]", reflect.TypeOf(value), value) - } - - return ed, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/data_layer.go b/backend/vendor/github.com/dsoprea/go-exif/v3/data_layer.go deleted file mode 100644 index 7883752c..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/data_layer.go +++ /dev/null @@ -1,50 +0,0 @@ -package exif - -import ( - "io" - - "github.com/dsoprea/go-logging" - "github.com/dsoprea/go-utility/v2/filesystem" -) - -type ExifBlobSeeker interface { - GetReadSeeker(initialOffset int64) (rs io.ReadSeeker, err error) -} - -// ExifReadSeeker knows how to retrieve data from the EXIF blob relative to the -// beginning of the blob (so, absolute position (0) is the first byte of the -// EXIF data). -type ExifReadSeeker struct { - rs io.ReadSeeker -} - -func NewExifReadSeeker(rs io.ReadSeeker) *ExifReadSeeker { - return &ExifReadSeeker{ - rs: rs, - } -} - -func NewExifReadSeekerWithBytes(exifData []byte) *ExifReadSeeker { - sb := rifs.NewSeekableBufferWithBytes(exifData) - edbs := NewExifReadSeeker(sb) - - return edbs -} - -// Fork creates a new ReadSeeker instead that wraps a BouncebackReader to -// maintain its own position in the stream. -func (edbs *ExifReadSeeker) GetReadSeeker(initialOffset int64) (rs io.ReadSeeker, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - br, err := rifs.NewBouncebackReader(edbs.rs) - log.PanicIf(err) - - _, err = br.Seek(initialOffset, io.SeekStart) - log.PanicIf(err) - - return br, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/error.go b/backend/vendor/github.com/dsoprea/go-exif/v3/error.go deleted file mode 100644 index 2f00b08a..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/error.go +++ /dev/null @@ -1,14 +0,0 @@ -package exif - -import ( - "errors" -) - -var ( - // ErrTagNotFound indicates that the tag was not found. - ErrTagNotFound = errors.New("tag not found") - - // ErrTagNotKnown indicates that the tag is not registered with us as a - // known tag. - ErrTagNotKnown = errors.New("tag is not known") -) diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/exif.go b/backend/vendor/github.com/dsoprea/go-exif/v3/exif.go deleted file mode 100644 index f66e839d..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/exif.go +++ /dev/null @@ -1,333 +0,0 @@ -package exif - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "os" - - "encoding/binary" - "io/ioutil" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -const ( - // ExifAddressableAreaStart is the absolute offset in the file that all - // offsets are relative to. - ExifAddressableAreaStart = uint32(0x0) - - // ExifDefaultFirstIfdOffset is essentially the number of bytes in addition - // to `ExifAddressableAreaStart` that you have to move in order to escape - // the rest of the header and get to the earliest point where we can put - // stuff (which has to be the first IFD). This is the size of the header - // sequence containing the two-character byte-order, two-character fixed- - // bytes, and the four bytes describing the first-IFD offset. - ExifDefaultFirstIfdOffset = uint32(2 + 2 + 4) -) - -const ( - // ExifSignatureLength is the number of bytes in the EXIF signature (which - // customarily includes the first IFD offset). - ExifSignatureLength = 8 -) - -var ( - exifLogger = log.NewLogger("exif.exif") - - ExifBigEndianSignature = [4]byte{'M', 'M', 0x00, 0x2a} - ExifLittleEndianSignature = [4]byte{'I', 'I', 0x2a, 0x00} -) - -var ( - ErrNoExif = errors.New("no exif data") - ErrExifHeaderError = errors.New("exif header error") -) - -// SearchAndExtractExif searches for an EXIF blob in the byte-slice. -func SearchAndExtractExif(data []byte) (rawExif []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - b := bytes.NewBuffer(data) - - rawExif, err = SearchAndExtractExifWithReader(b) - if err != nil { - if err == ErrNoExif { - return nil, err - } - - log.Panic(err) - } - - return rawExif, nil -} - -// SearchAndExtractExifN searches for an EXIF blob in the byte-slice, but skips -// the given number of EXIF blocks first. This is a forensics tool that helps -// identify multiple EXIF blocks in a file. -func SearchAndExtractExifN(data []byte, n int) (rawExif []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - skips := 0 - totalDiscarded := 0 - for { - b := bytes.NewBuffer(data) - - var discarded int - - rawExif, discarded, err = searchAndExtractExifWithReaderWithDiscarded(b) - if err != nil { - if err == ErrNoExif { - return nil, err - } - - log.Panic(err) - } - - exifLogger.Debugf(nil, "Read EXIF block (%d).", skips) - - totalDiscarded += discarded - - if skips >= n { - exifLogger.Debugf(nil, "Reached requested EXIF block (%d).", n) - break - } - - nextOffset := discarded + 1 - exifLogger.Debugf(nil, "Skipping EXIF block (%d) by seeking to position (%d).", skips, nextOffset) - - data = data[nextOffset:] - skips++ - } - - exifLogger.Debugf(nil, "Found EXIF blob (%d) bytes from initial position.", totalDiscarded) - return rawExif, nil -} - -// searchAndExtractExifWithReaderWithDiscarded searches for an EXIF blob using -// an `io.Reader`. We can't know how much long the EXIF data is without parsing -// it, so this will likely grab up a lot of the image-data, too. -// -// This function returned the count of preceding bytes. -func searchAndExtractExifWithReaderWithDiscarded(r io.Reader) (rawExif []byte, discarded int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // Search for the beginning of the EXIF information. The EXIF is near the - // beginning of most JPEGs, so this likely doesn't have a high cost (at - // least, again, with JPEGs). - - br := bufio.NewReader(r) - - for { - window, err := br.Peek(ExifSignatureLength) - if err != nil { - if err == io.EOF { - return nil, 0, ErrNoExif - } - - log.Panic(err) - } - - _, err = ParseExifHeader(window) - if err != nil { - if log.Is(err, ErrNoExif) == true { - // No EXIF. Move forward by one byte. - - _, err := br.Discard(1) - log.PanicIf(err) - - discarded++ - - continue - } - - // Some other error. - log.Panic(err) - } - - break - } - - exifLogger.Debugf(nil, "Found EXIF blob (%d) bytes from initial position.", discarded) - - rawExif, err = ioutil.ReadAll(br) - log.PanicIf(err) - - return rawExif, discarded, nil -} - -// RELEASE(dustin): We should replace the implementation of SearchAndExtractExifWithReader with searchAndExtractExifWithReaderWithDiscarded and drop the latter. - -// SearchAndExtractExifWithReader searches for an EXIF blob using an -// `io.Reader`. We can't know how much long the EXIF data is without parsing it, -// so this will likely grab up a lot of the image-data, too. -func SearchAndExtractExifWithReader(r io.Reader) (rawExif []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - rawExif, _, err = searchAndExtractExifWithReaderWithDiscarded(r) - if err != nil { - if err == ErrNoExif { - return nil, err - } - - log.Panic(err) - } - - return rawExif, nil -} - -// SearchFileAndExtractExif returns a slice from the beginning of the EXIF data -// to the end of the file (it's not practical to try and calculate where the -// data actually ends). -func SearchFileAndExtractExif(filepath string) (rawExif []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // Open the file. - - f, err := os.Open(filepath) - log.PanicIf(err) - - defer f.Close() - - rawExif, err = SearchAndExtractExifWithReader(f) - log.PanicIf(err) - - return rawExif, nil -} - -type ExifHeader struct { - ByteOrder binary.ByteOrder - FirstIfdOffset uint32 -} - -func (eh ExifHeader) String() string { - return fmt.Sprintf("ExifHeader", eh.ByteOrder, eh.FirstIfdOffset) -} - -// ParseExifHeader parses the bytes at the very top of the header. -// -// This will panic with ErrNoExif on any data errors so that we can double as -// an EXIF-detection routine. -func ParseExifHeader(data []byte) (eh ExifHeader, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // Good reference: - // - // CIPA DC-008-2016; JEITA CP-3451D - // -> http://www.cipa.jp/std/documents/e/DC-008-Translation-2016-E.pdf - - if len(data) < ExifSignatureLength { - exifLogger.Warningf(nil, "Not enough data for EXIF header: (%d)", len(data)) - return eh, ErrNoExif - } - - if bytes.Equal(data[:4], ExifBigEndianSignature[:]) == true { - exifLogger.Debugf(nil, "Byte-order is big-endian.") - eh.ByteOrder = binary.BigEndian - } else if bytes.Equal(data[:4], ExifLittleEndianSignature[:]) == true { - eh.ByteOrder = binary.LittleEndian - exifLogger.Debugf(nil, "Byte-order is little-endian.") - } else { - return eh, ErrNoExif - } - - eh.FirstIfdOffset = eh.ByteOrder.Uint32(data[4:8]) - - return eh, nil -} - -// Visit recursively invokes a callback for every tag. -func Visit(rootIfdIdentity *exifcommon.IfdIdentity, ifdMapping *exifcommon.IfdMapping, tagIndex *TagIndex, exifData []byte, visitor TagVisitorFn, so *ScanOptions) (eh ExifHeader, furthestOffset uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - eh, err = ParseExifHeader(exifData) - log.PanicIf(err) - - ebs := NewExifReadSeekerWithBytes(exifData) - ie := NewIfdEnumerate(ifdMapping, tagIndex, ebs, eh.ByteOrder) - - _, err = ie.Scan(rootIfdIdentity, eh.FirstIfdOffset, visitor, so) - log.PanicIf(err) - - furthestOffset = ie.FurthestOffset() - - return eh, furthestOffset, nil -} - -// Collect recursively builds a static structure of all IFDs and tags. -func Collect(ifdMapping *exifcommon.IfdMapping, tagIndex *TagIndex, exifData []byte) (eh ExifHeader, index IfdIndex, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - eh, err = ParseExifHeader(exifData) - log.PanicIf(err) - - ebs := NewExifReadSeekerWithBytes(exifData) - ie := NewIfdEnumerate(ifdMapping, tagIndex, ebs, eh.ByteOrder) - - index, err = ie.Collect(eh.FirstIfdOffset) - log.PanicIf(err) - - return eh, index, nil -} - -// BuildExifHeader constructs the bytes that go at the front of the stream. -func BuildExifHeader(byteOrder binary.ByteOrder, firstIfdOffset uint32) (headerBytes []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - b := new(bytes.Buffer) - - var signatureBytes []byte - if byteOrder == binary.BigEndian { - signatureBytes = ExifBigEndianSignature[:] - } else { - signatureBytes = ExifLittleEndianSignature[:] - } - - _, err = b.Write(signatureBytes) - log.PanicIf(err) - - err = binary.Write(b, byteOrder, firstIfdOffset) - log.PanicIf(err) - - return b.Bytes(), nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/gps.go b/backend/vendor/github.com/dsoprea/go-exif/v3/gps.go deleted file mode 100644 index 7a61cd94..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/gps.go +++ /dev/null @@ -1,117 +0,0 @@ -package exif - -import ( - "errors" - "fmt" - "time" - - "github.com/dsoprea/go-logging" - "github.com/golang/geo/s2" - - "github.com/dsoprea/go-exif/v3/common" -) - -var ( - // ErrGpsCoordinatesNotValid means that some part of the geographic data was - // unparseable. - ErrGpsCoordinatesNotValid = errors.New("GPS coordinates not valid") -) - -// GpsDegrees is a high-level struct representing geographic data. -type GpsDegrees struct { - // Orientation describes the N/E/S/W direction that this position is - // relative to. - Orientation byte - - // Degrees is a simple float representing the underlying rational degrees - // amount. - Degrees float64 - - // Minutes is a simple float representing the underlying rational minutes - // amount. - Minutes float64 - - // Seconds is a simple float representing the underlying ration seconds - // amount. - Seconds float64 -} - -// NewGpsDegreesFromRationals returns a GpsDegrees struct given the EXIF-encoded -// information. The refValue is the N/E/S/W direction that this position is -// relative to. -func NewGpsDegreesFromRationals(refValue string, rawCoordinate []exifcommon.Rational) (gd GpsDegrees, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if len(rawCoordinate) != 3 { - log.Panicf("new GpsDegrees struct requires a raw-coordinate with exactly three rationals") - } - - gd = GpsDegrees{ - Orientation: refValue[0], - Degrees: float64(rawCoordinate[0].Numerator) / float64(rawCoordinate[0].Denominator), - Minutes: float64(rawCoordinate[1].Numerator) / float64(rawCoordinate[1].Denominator), - Seconds: float64(rawCoordinate[2].Numerator) / float64(rawCoordinate[2].Denominator), - } - - return gd, nil -} - -// String provides returns a descriptive string. -func (d GpsDegrees) String() string { - return fmt.Sprintf("Degrees", string([]byte{d.Orientation}), d.Degrees, d.Minutes, d.Seconds) -} - -// Decimal calculates and returns the simplified float representation of the -// component degrees. -func (d GpsDegrees) Decimal() float64 { - decimal := float64(d.Degrees) + float64(d.Minutes)/60.0 + float64(d.Seconds)/3600.0 - - if d.Orientation == 'S' || d.Orientation == 'W' { - return -decimal - } - - return decimal -} - -// Raw returns a Rational struct that can be used to *write* coordinates. In -// practice, the denominator are typically (1) in the original EXIF data, and, -// that being the case, this will best preserve precision. -func (d GpsDegrees) Raw() []exifcommon.Rational { - return []exifcommon.Rational{ - {Numerator: uint32(d.Degrees), Denominator: 1}, - {Numerator: uint32(d.Minutes), Denominator: 1}, - {Numerator: uint32(d.Seconds), Denominator: 1}, - } -} - -// GpsInfo encapsulates all of the geographic information in one place. -type GpsInfo struct { - Latitude, Longitude GpsDegrees - Altitude int - Timestamp time.Time -} - -// String returns a descriptive string. -func (gi *GpsInfo) String() string { - return fmt.Sprintf("GpsInfo", - gi.Latitude.Decimal(), gi.Longitude.Decimal(), gi.Altitude, gi.Timestamp) -} - -// S2CellId returns the cell-ID of the geographic location on the earth. -func (gi *GpsInfo) S2CellId() s2.CellID { - latitude := gi.Latitude.Decimal() - longitude := gi.Longitude.Decimal() - - ll := s2.LatLngFromDegrees(latitude, longitude) - cellId := s2.CellIDFromLatLng(ll) - - if cellId.IsValid() == false { - panic(ErrGpsCoordinatesNotValid) - } - - return cellId -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder.go b/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder.go deleted file mode 100644 index f2ef3bad..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder.go +++ /dev/null @@ -1,1199 +0,0 @@ -package exif - -// NOTES: -// -// The thumbnail offset and length tags shouldn't be set directly. Use the -// (*IfdBuilder).SetThumbnail() method instead. - -import ( - "errors" - "fmt" - "strings" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" - "github.com/dsoprea/go-exif/v3/undefined" -) - -var ( - ifdBuilderLogger = log.NewLogger("exif.ifd_builder") -) - -var ( - ErrTagEntryNotFound = errors.New("tag entry not found") - ErrChildIbNotFound = errors.New("child IB not found") -) - -type IfdBuilderTagValue struct { - valueBytes []byte - ib *IfdBuilder -} - -func (ibtv IfdBuilderTagValue) String() string { - if ibtv.IsBytes() == true { - var valuePhrase string - if len(ibtv.valueBytes) <= 8 { - valuePhrase = fmt.Sprintf("%v", ibtv.valueBytes) - } else { - valuePhrase = fmt.Sprintf("%v...", ibtv.valueBytes[:8]) - } - - return fmt.Sprintf("IfdBuilderTagValue", valuePhrase, len(ibtv.valueBytes)) - } else if ibtv.IsIb() == true { - return fmt.Sprintf("IfdBuilderTagValue", ibtv.ib) - } else { - log.Panicf("IBTV state undefined") - return "" - } -} - -func NewIfdBuilderTagValueFromBytes(valueBytes []byte) *IfdBuilderTagValue { - return &IfdBuilderTagValue{ - valueBytes: valueBytes, - } -} - -func NewIfdBuilderTagValueFromIfdBuilder(ib *IfdBuilder) *IfdBuilderTagValue { - return &IfdBuilderTagValue{ - ib: ib, - } -} - -// IsBytes returns true if the bytes are populated. This is always the case -// when we're loaded from a tag in an existing IFD. -func (ibtv IfdBuilderTagValue) IsBytes() bool { - return ibtv.valueBytes != nil -} - -func (ibtv IfdBuilderTagValue) Bytes() []byte { - if ibtv.IsBytes() == false { - log.Panicf("this tag is not a byte-slice value") - } else if ibtv.IsIb() == true { - log.Panicf("this tag is an IFD-builder value not a byte-slice") - } - - return ibtv.valueBytes -} - -func (ibtv IfdBuilderTagValue) IsIb() bool { - return ibtv.ib != nil -} - -func (ibtv IfdBuilderTagValue) Ib() *IfdBuilder { - if ibtv.IsIb() == false { - log.Panicf("this tag is not an IFD-builder value") - } else if ibtv.IsBytes() == true { - log.Panicf("this tag is a byte-slice, not a IFD-builder") - } - - return ibtv.ib -} - -type BuilderTag struct { - // ifdPath is the path of the IFD that hosts this tag. - ifdPath string - - tagId uint16 - typeId exifcommon.TagTypePrimitive - - // value is either a value that can be encoded, an IfdBuilder instance (for - // child IFDs), or an IfdTagEntry instance representing an existing, - // previously-stored tag. - value *IfdBuilderTagValue - - // byteOrder is the byte order. It's chiefly/originally here to support - // printing the value. - byteOrder binary.ByteOrder -} - -func NewBuilderTag(ifdPath string, tagId uint16, typeId exifcommon.TagTypePrimitive, value *IfdBuilderTagValue, byteOrder binary.ByteOrder) *BuilderTag { - return &BuilderTag{ - ifdPath: ifdPath, - tagId: tagId, - typeId: typeId, - value: value, - byteOrder: byteOrder, - } -} - -func NewChildIfdBuilderTag(ifdPath string, tagId uint16, value *IfdBuilderTagValue) *BuilderTag { - return &BuilderTag{ - ifdPath: ifdPath, - tagId: tagId, - typeId: exifcommon.TypeLong, - value: value, - } -} - -func (bt *BuilderTag) Value() (value *IfdBuilderTagValue) { - return bt.value -} - -func (bt *BuilderTag) String() string { - var valueString string - - if bt.value.IsBytes() == true { - var err error - - valueString, err = exifcommon.FormatFromBytes(bt.value.Bytes(), bt.typeId, false, bt.byteOrder) - log.PanicIf(err) - } else { - valueString = fmt.Sprintf("%v", bt.value) - } - - return fmt.Sprintf("BuilderTag", bt.ifdPath, bt.tagId, bt.typeId.String(), valueString) -} - -func (bt *BuilderTag) SetValue(byteOrder binary.ByteOrder, value interface{}) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test. - - var ed exifcommon.EncodedData - if bt.typeId == exifcommon.TypeUndefined { - encodeable := value.(exifundefined.EncodeableValue) - - encoded, unitCount, err := exifundefined.Encode(encodeable, byteOrder) - log.PanicIf(err) - - ed = exifcommon.EncodedData{ - Type: exifcommon.TypeUndefined, - Encoded: encoded, - UnitCount: unitCount, - } - } else { - ve := exifcommon.NewValueEncoder(byteOrder) - - var err error - - ed, err = ve.Encode(value) - log.PanicIf(err) - } - - bt.value = NewIfdBuilderTagValueFromBytes(ed.Encoded) - - return nil -} - -// NewStandardBuilderTag constructs a `BuilderTag` instance. The type is looked -// up. `ii` is the type of IFD that owns this tag. -func NewStandardBuilderTag(ifdPath string, it *IndexedTag, byteOrder binary.ByteOrder, value interface{}) *BuilderTag { - // If there is more than one supported type, we'll go with the larger to - // encode with. It'll use the same amount of fixed-space, and we'll - // eliminate unnecessary overflows/issues. - tagType := it.GetEncodingType(value) - - var rawBytes []byte - if it.DoesSupportType(exifcommon.TypeUndefined) == true { - encodeable := value.(exifundefined.EncodeableValue) - - var err error - - rawBytes, _, err = exifundefined.Encode(encodeable, byteOrder) - log.PanicIf(err) - } else { - ve := exifcommon.NewValueEncoder(byteOrder) - - ed, err := ve.Encode(value) - log.PanicIf(err) - - rawBytes = ed.Encoded - } - - tagValue := NewIfdBuilderTagValueFromBytes(rawBytes) - - return NewBuilderTag( - ifdPath, - it.Id, - tagType, - tagValue, - byteOrder) -} - -type IfdBuilder struct { - ifdIdentity *exifcommon.IfdIdentity - - byteOrder binary.ByteOrder - - // Includes both normal tags and IFD tags (which point to child IFDs). - // TODO(dustin): Keep a separate list of children like with `Ifd`. - // TODO(dustin): Either rename this or `Entries` in `Ifd` to be the same thing. - tags []*BuilderTag - - // existingOffset will be the offset that this IFD is currently found at if - // it represents an IFD that has previously been stored (or 0 if not). - existingOffset uint32 - - // nextIb represents the next link if we're chaining to another. - nextIb *IfdBuilder - - // thumbnailData is populated with thumbnail data if there was thumbnail - // data. Otherwise, it's nil. - thumbnailData []byte - - ifdMapping *exifcommon.IfdMapping - tagIndex *TagIndex -} - -func NewIfdBuilder(ifdMapping *exifcommon.IfdMapping, tagIndex *TagIndex, ii *exifcommon.IfdIdentity, byteOrder binary.ByteOrder) (ib *IfdBuilder) { - ib = &IfdBuilder{ - ifdIdentity: ii, - - byteOrder: byteOrder, - tags: make([]*BuilderTag, 0), - - ifdMapping: ifdMapping, - tagIndex: tagIndex, - } - - return ib -} - -// NewIfdBuilderWithExistingIfd creates a new IB using the same header type -// information as the given IFD. -func NewIfdBuilderWithExistingIfd(ifd *Ifd) (ib *IfdBuilder) { - ib = &IfdBuilder{ - ifdIdentity: ifd.IfdIdentity(), - - byteOrder: ifd.ByteOrder(), - existingOffset: ifd.Offset(), - ifdMapping: ifd.ifdMapping, - tagIndex: ifd.tagIndex, - } - - return ib -} - -// NewIfdBuilderFromExistingChain creates a chain of IB instances from an -// IFD chain generated from real data. -func NewIfdBuilderFromExistingChain(rootIfd *Ifd) (firstIb *IfdBuilder) { - var lastIb *IfdBuilder - i := 0 - for thisExistingIfd := rootIfd; thisExistingIfd != nil; thisExistingIfd = thisExistingIfd.nextIfd { - newIb := NewIfdBuilder( - rootIfd.ifdMapping, - rootIfd.tagIndex, - rootIfd.ifdIdentity, - thisExistingIfd.ByteOrder()) - - if firstIb == nil { - firstIb = newIb - } else { - lastIb.SetNextIb(newIb) - } - - err := newIb.AddTagsFromExisting(thisExistingIfd, nil, nil) - log.PanicIf(err) - - lastIb = newIb - i++ - } - - return firstIb -} - -func (ib *IfdBuilder) IfdIdentity() *exifcommon.IfdIdentity { - return ib.ifdIdentity -} - -func (ib *IfdBuilder) NextIb() (nextIb *IfdBuilder, err error) { - return ib.nextIb, nil -} - -func (ib *IfdBuilder) ChildWithTagId(childIfdTagId uint16) (childIb *IfdBuilder, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - for _, bt := range ib.tags { - if bt.value.IsIb() == false { - continue - } - - childIbThis := bt.value.Ib() - - if childIbThis.IfdIdentity().TagId() == childIfdTagId { - return childIbThis, nil - } - } - - log.Panic(ErrChildIbNotFound) - - // Never reached. - return nil, nil -} - -func getOrCreateIbFromRootIbInner(rootIb *IfdBuilder, parentIb *IfdBuilder, currentLineage []exifcommon.IfdTagIdAndIndex) (ib *IfdBuilder, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test. - - thisIb := rootIb - - // Since we're calling ourselves recursively with incrementally different - // paths, the FQ IFD-path of the parent that called us needs to be passed - // in, in order for us to know it. - var parentLineage []exifcommon.IfdTagIdAndIndex - if parentIb != nil { - var err error - - parentLineage, err = thisIb.ifdMapping.ResolvePath(parentIb.IfdIdentity().String()) - log.PanicIf(err) - } - - // Process the current path part. - currentItIi := currentLineage[0] - - // Make sure the leftmost part of the FQ IFD-path agrees with the IB we - // were given. - - expectedFqRootIfdPath := "" - if parentLineage != nil { - expectedLineage := append(parentLineage, currentItIi) - expectedFqRootIfdPath = thisIb.ifdMapping.PathPhraseFromLineage(expectedLineage) - } else { - expectedFqRootIfdPath = thisIb.ifdMapping.PathPhraseFromLineage(currentLineage[:1]) - } - - if expectedFqRootIfdPath != thisIb.IfdIdentity().String() { - log.Panicf("the FQ IFD-path [%s] we were given does not match the builder's FQ IFD-path [%s]", expectedFqRootIfdPath, thisIb.IfdIdentity().String()) - } - - // If we actually wanted a sibling (currentItIi.Index > 0) then seek to it, - // appending new siblings, as required, until we get there. - for i := 0; i < currentItIi.Index; i++ { - if thisIb.nextIb == nil { - // Generate an FQ IFD-path for the sibling. It'll use the same - // non-FQ IFD-path as the current IB. - - iiSibling := thisIb.IfdIdentity().NewSibling(i + 1) - thisIb.nextIb = NewIfdBuilder(thisIb.ifdMapping, thisIb.tagIndex, iiSibling, thisIb.byteOrder) - } - - thisIb = thisIb.nextIb - } - - // There is no child IFD to process. We're done. - if len(currentLineage) == 1 { - return thisIb, nil - } - - // Establish the next child to be processed. - - childItii := currentLineage[1] - - var foundChild *IfdBuilder - for _, bt := range thisIb.tags { - if bt.value.IsIb() == false { - continue - } - - childIb := bt.value.Ib() - - if childIb.IfdIdentity().TagId() == childItii.TagId { - foundChild = childIb - break - } - } - - // If we didn't find the child, add it. - - if foundChild == nil { - currentIfdTag := thisIb.IfdIdentity().IfdTag() - - childIfdTag := - exifcommon.NewIfdTag( - ¤tIfdTag, - childItii.TagId, - childItii.Name) - - iiChild := thisIb.IfdIdentity().NewChild(childIfdTag, 0) - - foundChild = - NewIfdBuilder( - thisIb.ifdMapping, - thisIb.tagIndex, - iiChild, - thisIb.byteOrder) - - err = thisIb.AddChildIb(foundChild) - log.PanicIf(err) - } - - finalIb, err := getOrCreateIbFromRootIbInner(foundChild, thisIb, currentLineage[1:]) - log.PanicIf(err) - - return finalIb, nil -} - -// GetOrCreateIbFromRootIb returns an IB representing the requested IFD, even if -// an IB doesn't already exist for it. This function may call itself -// recursively. -func GetOrCreateIbFromRootIb(rootIb *IfdBuilder, fqIfdPath string) (ib *IfdBuilder, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // lineage is a necessity of our recursion process. It doesn't include any - // parent IFDs on its left-side; it starts with the current IB only. - lineage, err := rootIb.ifdMapping.ResolvePath(fqIfdPath) - log.PanicIf(err) - - ib, err = getOrCreateIbFromRootIbInner(rootIb, nil, lineage) - log.PanicIf(err) - - return ib, nil -} - -func (ib *IfdBuilder) String() string { - nextIfdPhrase := "" - if ib.nextIb != nil { - // TODO(dustin): We were setting this to ii.String(), but we were getting hex-data when printing this after building from an existing chain. - nextIfdPhrase = ib.nextIb.IfdIdentity().UnindexedString() - } - - return fmt.Sprintf("IfdBuilder", ib.IfdIdentity().UnindexedString(), ib.IfdIdentity().TagId(), len(ib.tags), ib.existingOffset, nextIfdPhrase) -} - -func (ib *IfdBuilder) Tags() (tags []*BuilderTag) { - return ib.tags -} - -// SetThumbnail sets thumbnail data. -// -// NOTES: -// -// - We don't manage any facet of the thumbnail data. This is the -// responsibility of the user/developer. -// - This method will fail unless the thumbnail is set on a the root IFD. -// However, in order to be valid, it must be set on the second one, linked to -// by the first, as per the EXIF/TIFF specification. -// - We set the offset to (0) now but will allocate the data and properly assign -// the offset when the IB is encoded (later). -func (ib *IfdBuilder) SetThumbnail(data []byte) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if ib.IfdIdentity().UnindexedString() != exifcommon.IfdStandardIfdIdentity.UnindexedString() { - log.Panicf("thumbnails can only go into a root Ifd (and only the second one)") - } - - // TODO(dustin): !! Add a test for this function. - - if data == nil || len(data) == 0 { - log.Panic("thumbnail is empty") - } - - ib.thumbnailData = data - - ibtvfb := NewIfdBuilderTagValueFromBytes(ib.thumbnailData) - offsetBt := - NewBuilderTag( - ib.IfdIdentity().UnindexedString(), - ThumbnailOffsetTagId, - exifcommon.TypeLong, - ibtvfb, - ib.byteOrder) - - err = ib.Set(offsetBt) - log.PanicIf(err) - - thumbnailSizeIt, err := ib.tagIndex.Get(ib.IfdIdentity(), ThumbnailSizeTagId) - log.PanicIf(err) - - sizeBt := NewStandardBuilderTag(ib.IfdIdentity().UnindexedString(), thumbnailSizeIt, ib.byteOrder, []uint32{uint32(len(ib.thumbnailData))}) - - err = ib.Set(sizeBt) - log.PanicIf(err) - - return nil -} - -func (ib *IfdBuilder) Thumbnail() []byte { - return ib.thumbnailData -} - -func (ib *IfdBuilder) printTagTree(levels int) { - indent := strings.Repeat(" ", levels*2) - - i := 0 - for currentIb := ib; currentIb != nil; currentIb = currentIb.nextIb { - prefix := " " - if i > 0 { - prefix = ">" - } - - if levels == 0 { - fmt.Printf("%s%sIFD: %s INDEX=(%d)\n", indent, prefix, currentIb, i) - } else { - fmt.Printf("%s%sChild IFD: %s\n", indent, prefix, currentIb) - } - - if len(currentIb.tags) > 0 { - fmt.Printf("\n") - - for i, tag := range currentIb.tags { - isChildIb := false - _, err := ib.ifdMapping.GetChild(currentIb.IfdIdentity().UnindexedString(), tag.tagId) - if err == nil { - isChildIb = true - } else if log.Is(err, exifcommon.ErrChildIfdNotMapped) == false { - log.Panic(err) - } - - tagName := "" - - // If a normal tag (not a child IFD) get the name. - if isChildIb == true { - tagName = "" - } else { - it, err := ib.tagIndex.Get(ib.ifdIdentity, tag.tagId) - if log.Is(err, ErrTagNotFound) == true { - tagName = "" - } else if err != nil { - log.Panic(err) - } else { - tagName = it.Name - } - } - - value := tag.Value() - - if value.IsIb() == true { - fmt.Printf("%s (%d): [%s] %s\n", indent, i, tagName, value.Ib()) - } else { - fmt.Printf("%s (%d): [%s] %s\n", indent, i, tagName, tag) - } - - if isChildIb == true { - if tag.value.IsIb() == false { - log.Panicf("tag-ID (0x%04x) is an IFD but the tag value is not an IB instance: %v", tag.tagId, tag) - } - - fmt.Printf("\n") - - childIb := tag.value.Ib() - childIb.printTagTree(levels + 1) - } - } - - fmt.Printf("\n") - } - - i++ - } -} - -func (ib *IfdBuilder) PrintTagTree() { - ib.printTagTree(0) -} - -func (ib *IfdBuilder) printIfdTree(levels int) { - indent := strings.Repeat(" ", levels*2) - - i := 0 - for currentIb := ib; currentIb != nil; currentIb = currentIb.nextIb { - prefix := " " - if i > 0 { - prefix = ">" - } - - fmt.Printf("%s%s%s\n", indent, prefix, currentIb) - - if len(currentIb.tags) > 0 { - for _, tag := range currentIb.tags { - isChildIb := false - _, err := ib.ifdMapping.GetChild(currentIb.IfdIdentity().UnindexedString(), tag.tagId) - if err == nil { - isChildIb = true - } else if log.Is(err, exifcommon.ErrChildIfdNotMapped) == false { - log.Panic(err) - } - - if isChildIb == true { - if tag.value.IsIb() == false { - log.Panicf("tag-ID (0x%04x) is an IFD but the tag value is not an IB instance: %v", tag.tagId, tag) - } - - childIb := tag.value.Ib() - childIb.printIfdTree(levels + 1) - } - } - } - - i++ - } -} - -func (ib *IfdBuilder) PrintIfdTree() { - ib.printIfdTree(0) -} - -func (ib *IfdBuilder) dumpToStrings(thisIb *IfdBuilder, prefix string, tagId uint16, lines []string) (linesOutput []string) { - if lines == nil { - linesOutput = make([]string, 0) - } else { - linesOutput = lines - } - - siblingIfdIndex := 0 - for ; thisIb != nil; thisIb = thisIb.nextIb { - line := fmt.Sprintf("IFD", prefix, thisIb.IfdIdentity().String(), siblingIfdIndex, thisIb.IfdIdentity().TagId(), tagId) - linesOutput = append(linesOutput, line) - - for i, tag := range thisIb.tags { - var childIb *IfdBuilder - childIfdName := "" - if tag.value.IsIb() == true { - childIb = tag.value.Ib() - childIfdName = childIb.IfdIdentity().UnindexedString() - } - - line := fmt.Sprintf("TAG", prefix, thisIb.IfdIdentity().String(), thisIb.IfdIdentity().TagId(), childIfdName, i, tag.tagId) - linesOutput = append(linesOutput, line) - - if childIb == nil { - continue - } - - childPrefix := "" - if prefix == "" { - childPrefix = fmt.Sprintf("%s", thisIb.IfdIdentity().UnindexedString()) - } else { - childPrefix = fmt.Sprintf("%s->%s", prefix, thisIb.IfdIdentity().UnindexedString()) - } - - linesOutput = thisIb.dumpToStrings(childIb, childPrefix, tag.tagId, linesOutput) - } - - siblingIfdIndex++ - } - - return linesOutput -} - -func (ib *IfdBuilder) DumpToStrings() (lines []string) { - return ib.dumpToStrings(ib, "", 0, lines) -} - -func (ib *IfdBuilder) SetNextIb(nextIb *IfdBuilder) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ib.nextIb = nextIb - - return nil -} - -func (ib *IfdBuilder) DeleteN(tagId uint16, n int) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if n < 1 { - log.Panicf("N must be at least 1: (%d)", n) - } - - for n > 0 { - j := -1 - for i, bt := range ib.tags { - if bt.tagId == tagId { - j = i - break - } - } - - if j == -1 { - log.Panic(ErrTagEntryNotFound) - } - - ib.tags = append(ib.tags[:j], ib.tags[j+1:]...) - n-- - } - - return nil -} - -func (ib *IfdBuilder) DeleteFirst(tagId uint16) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - err = ib.DeleteN(tagId, 1) - log.PanicIf(err) - - return nil -} - -func (ib *IfdBuilder) DeleteAll(tagId uint16) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - for { - err = ib.DeleteN(tagId, 1) - if log.Is(err, ErrTagEntryNotFound) == true { - break - } else if err != nil { - log.Panic(err) - } - - n++ - } - - return n, nil -} - -func (ib *IfdBuilder) ReplaceAt(position int, bt *BuilderTag) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if position < 0 { - log.Panicf("replacement position must be 0 or greater") - } else if position >= len(ib.tags) { - log.Panicf("replacement position does not exist") - } - - ib.tags[position] = bt - - return nil -} - -func (ib *IfdBuilder) Replace(tagId uint16, bt *BuilderTag) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - position, err := ib.Find(tagId) - log.PanicIf(err) - - ib.tags[position] = bt - - return nil -} - -// Set will add a new entry or update an existing entry. -func (ib *IfdBuilder) Set(bt *BuilderTag) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - position, err := ib.Find(bt.tagId) - if err == nil { - ib.tags[position] = bt - } else if log.Is(err, ErrTagEntryNotFound) == true { - err = ib.add(bt) - log.PanicIf(err) - } else { - log.Panic(err) - } - - return nil -} - -func (ib *IfdBuilder) FindN(tagId uint16, maxFound int) (found []int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - found = make([]int, 0) - - for i, bt := range ib.tags { - if bt.tagId == tagId { - found = append(found, i) - if maxFound == 0 || len(found) >= maxFound { - break - } - } - } - - return found, nil -} - -func (ib *IfdBuilder) Find(tagId uint16) (position int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - found, err := ib.FindN(tagId, 1) - log.PanicIf(err) - - if len(found) == 0 { - log.Panic(ErrTagEntryNotFound) - } - - return found[0], nil -} - -func (ib *IfdBuilder) FindTag(tagId uint16) (bt *BuilderTag, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - found, err := ib.FindN(tagId, 1) - log.PanicIf(err) - - if len(found) == 0 { - log.Panic(ErrTagEntryNotFound) - } - - position := found[0] - - return ib.tags[position], nil -} - -func (ib *IfdBuilder) FindTagWithName(tagName string) (bt *BuilderTag, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - it, err := ib.tagIndex.GetWithName(ib.IfdIdentity(), tagName) - log.PanicIf(err) - - found, err := ib.FindN(it.Id, 1) - log.PanicIf(err) - - if len(found) == 0 { - log.Panic(ErrTagEntryNotFound) - } - - position := found[0] - - return ib.tags[position], nil -} - -func (ib *IfdBuilder) add(bt *BuilderTag) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if bt.ifdPath == "" { - log.Panicf("BuilderTag ifdPath is not set: %s", bt) - } else if bt.typeId == 0x0 { - log.Panicf("BuilderTag type-ID is not set: %s", bt) - } else if bt.value == nil { - log.Panicf("BuilderTag value is not set: %s", bt) - } - - ib.tags = append(ib.tags, bt) - return nil -} - -func (ib *IfdBuilder) Add(bt *BuilderTag) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if bt.value.IsIb() == true { - log.Panicf("child IfdBuilders must be added via AddChildIb() or AddTagsFromExisting(), not Add()") - } - - err = ib.add(bt) - log.PanicIf(err) - - return nil -} - -// AddChildIb adds a tag that branches to a new IFD. -func (ib *IfdBuilder) AddChildIb(childIb *IfdBuilder) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if childIb.IfdIdentity().TagId() == 0 { - log.Panicf("IFD can not be used as a child IFD (not associated with a tag-ID): %v", childIb) - } else if childIb.byteOrder != ib.byteOrder { - log.Panicf("Child IFD does not have the same byte-order: [%s] != [%s]", childIb.byteOrder, ib.byteOrder) - } - - // Since no standard IFDs supports occur`ring more than once, check that a - // tag of this type has not been previously added. Note that we just search - // the current IFD and *not every* IFD. - for _, bt := range childIb.tags { - if bt.tagId == childIb.IfdIdentity().TagId() { - log.Panicf("child-IFD already added: %v", childIb.IfdIdentity().UnindexedString()) - } - } - - bt := ib.NewBuilderTagFromBuilder(childIb) - ib.tags = append(ib.tags, bt) - - return nil -} - -func (ib *IfdBuilder) NewBuilderTagFromBuilder(childIb *IfdBuilder) (bt *BuilderTag) { - defer func() { - if state := recover(); state != nil { - err := log.Wrap(state.(error)) - log.Panic(err) - } - }() - - value := NewIfdBuilderTagValueFromIfdBuilder(childIb) - - bt = NewChildIfdBuilderTag( - ib.IfdIdentity().UnindexedString(), - childIb.IfdIdentity().TagId(), - value) - - return bt -} - -// AddTagsFromExisting does a verbatim copy of the entries in `ifd` to this -// builder. It excludes child IFDs. These must be added explicitly via -// `AddChildIb()`. -func (ib *IfdBuilder) AddTagsFromExisting(ifd *Ifd, includeTagIds []uint16, excludeTagIds []uint16) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - thumbnailData, err := ifd.Thumbnail() - if err == nil { - err = ib.SetThumbnail(thumbnailData) - log.PanicIf(err) - } else if log.Is(err, ErrNoThumbnail) == false { - log.Panic(err) - } - - for i, ite := range ifd.Entries() { - if ite.IsThumbnailOffset() == true || ite.IsThumbnailSize() { - // These will be added on-the-fly when we encode. - continue - } - - if excludeTagIds != nil && len(excludeTagIds) > 0 { - found := false - for _, excludedTagId := range excludeTagIds { - if excludedTagId == ite.TagId() { - found = true - } - } - - if found == true { - continue - } - } - - if includeTagIds != nil && len(includeTagIds) > 0 { - // Whether or not there was a list of excludes, if there is a list - // of includes than the current tag has to be in it. - - found := false - for _, includedTagId := range includeTagIds { - if includedTagId == ite.TagId() { - found = true - break - } - } - - if found == false { - continue - } - } - - var bt *BuilderTag - - if ite.ChildIfdPath() != "" { - // If we want to add an IFD tag, we'll have to build it first and - // *then* add it via a different method. - - // Figure out which of the child-IFDs that are associated with - // this IFD represents this specific child IFD. - - var childIfd *Ifd - for _, thisChildIfd := range ifd.Children() { - if thisChildIfd.ParentTagIndex() != i { - continue - } else if thisChildIfd.ifdIdentity.TagId() != 0xffff && thisChildIfd.ifdIdentity.TagId() != ite.TagId() { - log.Panicf("child-IFD tag is not correct: TAG-POSITION=(%d) ITE=%s CHILD-IFD=%s", thisChildIfd.ParentTagIndex(), ite, thisChildIfd) - } - - childIfd = thisChildIfd - break - } - - if childIfd == nil { - childTagIds := make([]string, len(ifd.Children())) - for j, childIfd := range ifd.Children() { - childTagIds[j] = fmt.Sprintf("0x%04x (parent tag-position %d)", childIfd.ifdIdentity.TagId(), childIfd.ParentTagIndex()) - } - - log.Panicf("could not find child IFD for child ITE: IFD-PATH=[%s] TAG-ID=(0x%04x) CURRENT-TAG-POSITION=(%d) CHILDREN=%v", ite.IfdPath(), ite.TagId(), i, childTagIds) - } - - childIb := NewIfdBuilderFromExistingChain(childIfd) - bt = ib.NewBuilderTagFromBuilder(childIb) - } else { - // Non-IFD tag. - - rawBytes, err := ite.GetRawBytes() - log.PanicIf(err) - - value := NewIfdBuilderTagValueFromBytes(rawBytes) - - bt = NewBuilderTag( - ifd.ifdIdentity.UnindexedString(), - ite.TagId(), - ite.TagType(), - value, - ib.byteOrder) - } - - err := ib.add(bt) - log.PanicIf(err) - } - - return nil -} - -// AddStandard quickly and easily composes and adds the tag using the -// information already known about a tag. Only works with standard tags. -func (ib *IfdBuilder) AddStandard(tagId uint16, value interface{}) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - it, err := ib.tagIndex.Get(ib.IfdIdentity(), tagId) - log.PanicIf(err) - - bt := NewStandardBuilderTag(ib.IfdIdentity().UnindexedString(), it, ib.byteOrder, value) - - err = ib.add(bt) - log.PanicIf(err) - - return nil -} - -// AddStandardWithName quickly and easily composes and adds the tag using the -// information already known about a tag (using the name). Only works with -// standard tags. -func (ib *IfdBuilder) AddStandardWithName(tagName string, value interface{}) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - it, err := ib.tagIndex.GetWithName(ib.IfdIdentity(), tagName) - log.PanicIf(err) - - bt := NewStandardBuilderTag(ib.IfdIdentity().UnindexedString(), it, ib.byteOrder, value) - - err = ib.add(bt) - log.PanicIf(err) - - return nil -} - -// SetStandard quickly and easily composes and adds or replaces the tag using -// the information already known about a tag. Only works with standard tags. -func (ib *IfdBuilder) SetStandard(tagId uint16, value interface{}) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test for this function. - - it, err := ib.tagIndex.Get(ib.IfdIdentity(), tagId) - log.PanicIf(err) - - bt := NewStandardBuilderTag(ib.IfdIdentity().UnindexedString(), it, ib.byteOrder, value) - - i, err := ib.Find(tagId) - if err != nil { - if log.Is(err, ErrTagEntryNotFound) == false { - log.Panic(err) - } - - ib.tags = append(ib.tags, bt) - } else { - ib.tags[i] = bt - } - - return nil -} - -// SetStandardWithName quickly and easily composes and adds or replaces the -// tag using the information already known about a tag (using the name). Only -// works with standard tags. -func (ib *IfdBuilder) SetStandardWithName(tagName string, value interface{}) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test for this function. - - it, err := ib.tagIndex.GetWithName(ib.IfdIdentity(), tagName) - log.PanicIf(err) - - bt := NewStandardBuilderTag(ib.IfdIdentity().UnindexedString(), it, ib.byteOrder, value) - - i, err := ib.Find(bt.tagId) - if err != nil { - if log.Is(err, ErrTagEntryNotFound) == false { - log.Panic(err) - } - - ib.tags = append(ib.tags, bt) - } else { - ib.tags[i] = bt - } - - return nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder_encode.go b/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder_encode.go deleted file mode 100644 index a0f4ff79..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_builder_encode.go +++ /dev/null @@ -1,532 +0,0 @@ -package exif - -import ( - "bytes" - "fmt" - "strings" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -const ( - // Tag-ID + Tag-Type + Unit-Count + Value/Offset. - IfdTagEntrySize = uint32(2 + 2 + 4 + 4) -) - -type ByteWriter struct { - b *bytes.Buffer - byteOrder binary.ByteOrder -} - -func NewByteWriter(b *bytes.Buffer, byteOrder binary.ByteOrder) (bw *ByteWriter) { - return &ByteWriter{ - b: b, - byteOrder: byteOrder, - } -} - -func (bw ByteWriter) writeAsBytes(value interface{}) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - err = binary.Write(bw.b, bw.byteOrder, value) - log.PanicIf(err) - - return nil -} - -func (bw ByteWriter) WriteUint32(value uint32) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - err = bw.writeAsBytes(value) - log.PanicIf(err) - - return nil -} - -func (bw ByteWriter) WriteUint16(value uint16) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - err = bw.writeAsBytes(value) - log.PanicIf(err) - - return nil -} - -func (bw ByteWriter) WriteFourBytes(value []byte) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - len_ := len(value) - if len_ != 4 { - log.Panicf("value is not four-bytes: (%d)", len_) - } - - _, err = bw.b.Write(value) - log.PanicIf(err) - - return nil -} - -// ifdOffsetIterator keeps track of where the next IFD should be written by -// keeping track of where the offsets start, the data that has been added, and -// bumping the offset *when* the data is added. -type ifdDataAllocator struct { - offset uint32 - b bytes.Buffer -} - -func newIfdDataAllocator(ifdDataAddressableOffset uint32) *ifdDataAllocator { - return &ifdDataAllocator{ - offset: ifdDataAddressableOffset, - } -} - -func (ida *ifdDataAllocator) Allocate(value []byte) (offset uint32, err error) { - _, err = ida.b.Write(value) - log.PanicIf(err) - - offset = ida.offset - ida.offset += uint32(len(value)) - - return offset, nil -} - -func (ida *ifdDataAllocator) NextOffset() uint32 { - return ida.offset -} - -func (ida *ifdDataAllocator) Bytes() []byte { - return ida.b.Bytes() -} - -// IfdByteEncoder converts an IB to raw bytes (for writing) while also figuring -// out all of the allocations and indirection that is required for extended -// data. -type IfdByteEncoder struct { - // journal holds a list of actions taken while encoding. - journal [][3]string -} - -func NewIfdByteEncoder() (ibe *IfdByteEncoder) { - return &IfdByteEncoder{ - journal: make([][3]string, 0), - } -} - -func (ibe *IfdByteEncoder) Journal() [][3]string { - return ibe.journal -} - -func (ibe *IfdByteEncoder) TableSize(entryCount int) uint32 { - // Tag-Count + (Entry-Size * Entry-Count) + Next-IFD-Offset. - return uint32(2) + (IfdTagEntrySize * uint32(entryCount)) + uint32(4) -} - -func (ibe *IfdByteEncoder) pushToJournal(where, direction, format string, args ...interface{}) { - event := [3]string{ - direction, - where, - fmt.Sprintf(format, args...), - } - - ibe.journal = append(ibe.journal, event) -} - -// PrintJournal prints a hierarchical representation of the steps taken during -// encoding. -func (ibe *IfdByteEncoder) PrintJournal() { - maxWhereLength := 0 - for _, event := range ibe.journal { - where := event[1] - - len_ := len(where) - if len_ > maxWhereLength { - maxWhereLength = len_ - } - } - - level := 0 - for i, event := range ibe.journal { - direction := event[0] - where := event[1] - message := event[2] - - if direction != ">" && direction != "<" && direction != "-" { - log.Panicf("journal operation not valid: [%s]", direction) - } - - if direction == "<" { - if level <= 0 { - log.Panicf("journal operations unbalanced (too many closes)") - } - - level-- - } - - indent := strings.Repeat(" ", level) - - fmt.Printf("%3d %s%s %s: %s\n", i, indent, direction, where, message) - - if direction == ">" { - level++ - } - } - - if level != 0 { - log.Panicf("journal operations unbalanced (too many opens)") - } -} - -// encodeTagToBytes encodes the given tag to a byte stream. If -// `nextIfdOffsetToWrite` is more than (0), recurse into child IFDs -// (`nextIfdOffsetToWrite` is required in order for them to know where the its -// IFD data will be written, in order for them to know the offset of where -// their allocated-data block will start, which follows right behind). -func (ibe *IfdByteEncoder) encodeTagToBytes(ib *IfdBuilder, bt *BuilderTag, bw *ByteWriter, ida *ifdDataAllocator, nextIfdOffsetToWrite uint32) (childIfdBlock []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // Write tag-ID. - err = bw.WriteUint16(bt.tagId) - log.PanicIf(err) - - // Works for both values and child IFDs (which have an official size of - // LONG). - err = bw.WriteUint16(uint16(bt.typeId)) - log.PanicIf(err) - - // Write unit-count. - - if bt.value.IsBytes() == true { - effectiveType := bt.typeId - if bt.typeId == exifcommon.TypeUndefined { - effectiveType = exifcommon.TypeByte - } - - // It's a non-unknown value.Calculate the count of values of - // the type that we're writing and the raw bytes for the whole list. - - typeSize := uint32(effectiveType.Size()) - - valueBytes := bt.value.Bytes() - - len_ := len(valueBytes) - unitCount := uint32(len_) / typeSize - - if _, found := tagsWithoutAlignment[bt.tagId]; found == false { - remainder := uint32(len_) % typeSize - - if remainder > 0 { - log.Panicf("tag (0x%04x) value of (%d) bytes not evenly divisible by type-size (%d)", bt.tagId, len_, typeSize) - } - } - - err = bw.WriteUint32(unitCount) - log.PanicIf(err) - - // Write four-byte value/offset. - - if len_ > 4 { - offset, err := ida.Allocate(valueBytes) - log.PanicIf(err) - - err = bw.WriteUint32(offset) - log.PanicIf(err) - } else { - fourBytes := make([]byte, 4) - copy(fourBytes, valueBytes) - - err = bw.WriteFourBytes(fourBytes) - log.PanicIf(err) - } - } else { - if bt.value.IsIb() == false { - log.Panicf("tag value is not a byte-slice but also not a child IB: %v", bt) - } - - // Write unit-count (one LONG representing one offset). - err = bw.WriteUint32(1) - log.PanicIf(err) - - if nextIfdOffsetToWrite > 0 { - var err error - - ibe.pushToJournal("encodeTagToBytes", ">", "[%s]->[%s]", ib.IfdIdentity().UnindexedString(), bt.value.Ib().IfdIdentity().UnindexedString()) - - // Create the block of IFD data and everything it requires. - childIfdBlock, err = ibe.encodeAndAttachIfd(bt.value.Ib(), nextIfdOffsetToWrite) - log.PanicIf(err) - - ibe.pushToJournal("encodeTagToBytes", "<", "[%s]->[%s]", bt.value.Ib().IfdIdentity().UnindexedString(), ib.IfdIdentity().UnindexedString()) - - // Use the next-IFD offset for it. The IFD will actually get - // attached after we return. - err = bw.WriteUint32(nextIfdOffsetToWrite) - log.PanicIf(err) - - } else { - // No child-IFDs are to be allocated. Finish the entry with a NULL - // pointer. - - ibe.pushToJournal("encodeTagToBytes", "-", "*Not* descending to child: [%s]", bt.value.Ib().IfdIdentity().UnindexedString()) - - err = bw.WriteUint32(0) - log.PanicIf(err) - } - } - - return childIfdBlock, nil -} - -// encodeIfdToBytes encodes the given IB to a byte-slice. We are given the -// offset at which this IFD will be written. This method is used called both to -// pre-determine how big the table is going to be (so that we can calculate the -// address to allocate data at) as well as to write the final table. -// -// It is necessary to fully realize the table in order to predetermine its size -// because it is not enough to know the size of the table: If there are child -// IFDs, we will not be able to allocate them without first knowing how much -// data we need to allocate for the current IFD. -func (ibe *IfdByteEncoder) encodeIfdToBytes(ib *IfdBuilder, ifdAddressableOffset uint32, nextIfdOffsetToWrite uint32, setNextIb bool) (data []byte, tableSize uint32, dataSize uint32, childIfdSizes []uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ibe.pushToJournal("encodeIfdToBytes", ">", "%s", ib) - - tableSize = ibe.TableSize(len(ib.tags)) - - b := new(bytes.Buffer) - bw := NewByteWriter(b, ib.byteOrder) - - // Write tag count. - err = bw.WriteUint16(uint16(len(ib.tags))) - log.PanicIf(err) - - ida := newIfdDataAllocator(ifdAddressableOffset) - - childIfdBlocks := make([][]byte, 0) - - // Write raw bytes for each tag entry. Allocate larger data to be referred - // to in the follow-up data-block as required. Any "unknown"-byte tags that - // we can't parse will not be present here (using AddTagsFromExisting(), at - // least). - for _, bt := range ib.tags { - childIfdBlock, err := ibe.encodeTagToBytes(ib, bt, bw, ida, nextIfdOffsetToWrite) - log.PanicIf(err) - - if childIfdBlock != nil { - // We aren't allowed to have non-nil child IFDs if we're just - // sizing things up. - if nextIfdOffsetToWrite == 0 { - log.Panicf("no IFD offset provided for child-IFDs; no new child-IFDs permitted") - } - - nextIfdOffsetToWrite += uint32(len(childIfdBlock)) - childIfdBlocks = append(childIfdBlocks, childIfdBlock) - } - } - - dataBytes := ida.Bytes() - dataSize = uint32(len(dataBytes)) - - childIfdSizes = make([]uint32, len(childIfdBlocks)) - childIfdsTotalSize := uint32(0) - for i, childIfdBlock := range childIfdBlocks { - len_ := uint32(len(childIfdBlock)) - childIfdSizes[i] = len_ - childIfdsTotalSize += len_ - } - - // N the link from this IFD to the next IFD that will be written in the - // next cycle. - if setNextIb == true { - // Write address of next IFD in chain. This will be the original - // allocation offset plus the size of everything we have allocated for - // this IFD and its child-IFDs. - // - // It is critical that this number is stepped properly. We experienced - // an issue whereby it first looked like we were duplicating the IFD and - // then that we were duplicating the tags in the wrong IFD, and then - // finally we determined that the next-IFD offset for the first IFD was - // accidentally pointing back to the EXIF IFD, so we were visiting it - // twice when visiting through the tags after decoding. It was an - // expensive bug to find. - - ibe.pushToJournal("encodeIfdToBytes", "-", "Setting 'next' IFD to (0x%08x).", nextIfdOffsetToWrite) - - err := bw.WriteUint32(nextIfdOffsetToWrite) - log.PanicIf(err) - } else { - err := bw.WriteUint32(0) - log.PanicIf(err) - } - - _, err = b.Write(dataBytes) - log.PanicIf(err) - - // Append any child IFD blocks after our table and data blocks. These IFDs - // were equipped with the appropriate offset information so it's expected - // that all offsets referred to by these will be correct. - // - // Note that child-IFDs are append after the current IFD and before the - // next IFD, as opposed to the root IFDs, which are chained together but - // will be interrupted by these child-IFDs (which is expected, per the - // standard). - - for _, childIfdBlock := range childIfdBlocks { - _, err = b.Write(childIfdBlock) - log.PanicIf(err) - } - - ibe.pushToJournal("encodeIfdToBytes", "<", "%s", ib) - - return b.Bytes(), tableSize, dataSize, childIfdSizes, nil -} - -// encodeAndAttachIfd is a reentrant function that processes the IFD chain. -func (ibe *IfdByteEncoder) encodeAndAttachIfd(ib *IfdBuilder, ifdAddressableOffset uint32) (data []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ibe.pushToJournal("encodeAndAttachIfd", ">", "%s", ib) - - b := new(bytes.Buffer) - - i := 0 - - for thisIb := ib; thisIb != nil; thisIb = thisIb.nextIb { - - // Do a dry-run in order to pre-determine its size requirement. - - ibe.pushToJournal("encodeAndAttachIfd", ">", "Beginning encoding process: (%d) [%s]", i, thisIb.IfdIdentity().UnindexedString()) - - ibe.pushToJournal("encodeAndAttachIfd", ">", "Calculating size: (%d) [%s]", i, thisIb.IfdIdentity().UnindexedString()) - - _, tableSize, allocatedDataSize, _, err := ibe.encodeIfdToBytes(thisIb, ifdAddressableOffset, 0, false) - log.PanicIf(err) - - ibe.pushToJournal("encodeAndAttachIfd", "<", "Finished calculating size: (%d) [%s]", i, thisIb.IfdIdentity().UnindexedString()) - - ifdAddressableOffset += tableSize - nextIfdOffsetToWrite := ifdAddressableOffset + allocatedDataSize - - ibe.pushToJournal("encodeAndAttachIfd", ">", "Next IFD will be written at offset (0x%08x)", nextIfdOffsetToWrite) - - // Write our IFD as well as any child-IFDs (now that we know the offset - // where new IFDs and their data will be allocated). - - setNextIb := thisIb.nextIb != nil - - ibe.pushToJournal("encodeAndAttachIfd", ">", "Encoding starting: (%d) [%s] NEXT-IFD-OFFSET-TO-WRITE=(0x%08x)", i, thisIb.IfdIdentity().UnindexedString(), nextIfdOffsetToWrite) - - tableAndAllocated, effectiveTableSize, effectiveAllocatedDataSize, childIfdSizes, err := - ibe.encodeIfdToBytes(thisIb, ifdAddressableOffset, nextIfdOffsetToWrite, setNextIb) - - log.PanicIf(err) - - if effectiveTableSize != tableSize { - log.Panicf("written table size does not match the pre-calculated table size: (%d) != (%d) %s", effectiveTableSize, tableSize, ib) - } else if effectiveAllocatedDataSize != allocatedDataSize { - log.Panicf("written allocated-data size does not match the pre-calculated allocated-data size: (%d) != (%d) %s", effectiveAllocatedDataSize, allocatedDataSize, ib) - } - - ibe.pushToJournal("encodeAndAttachIfd", "<", "Encoding done: (%d) [%s]", i, thisIb.IfdIdentity().UnindexedString()) - - totalChildIfdSize := uint32(0) - for _, childIfdSize := range childIfdSizes { - totalChildIfdSize += childIfdSize - } - - if len(tableAndAllocated) != int(tableSize+allocatedDataSize+totalChildIfdSize) { - log.Panicf("IFD table and data is not a consistent size: (%d) != (%d)", len(tableAndAllocated), tableSize+allocatedDataSize+totalChildIfdSize) - } - - // TODO(dustin): We might want to verify the original tableAndAllocated length, too. - - _, err = b.Write(tableAndAllocated) - log.PanicIf(err) - - // Advance past what we've allocated, thus far. - - ifdAddressableOffset += allocatedDataSize + totalChildIfdSize - - ibe.pushToJournal("encodeAndAttachIfd", "<", "Finishing encoding process: (%d) [%s] [FINAL:] NEXT-IFD-OFFSET-TO-WRITE=(0x%08x)", i, ib.IfdIdentity().UnindexedString(), nextIfdOffsetToWrite) - - i++ - } - - ibe.pushToJournal("encodeAndAttachIfd", "<", "%s", ib) - - return b.Bytes(), nil -} - -// EncodeToExifPayload is the base encoding step that transcribes the entire IB -// structure to its on-disk layout. -func (ibe *IfdByteEncoder) EncodeToExifPayload(ib *IfdBuilder) (data []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - data, err = ibe.encodeAndAttachIfd(ib, ExifDefaultFirstIfdOffset) - log.PanicIf(err) - - return data, nil -} - -// EncodeToExif calls EncodeToExifPayload and then packages the result into a -// complete EXIF block. -func (ibe *IfdByteEncoder) EncodeToExif(ib *IfdBuilder) (data []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - encodedIfds, err := ibe.EncodeToExifPayload(ib) - log.PanicIf(err) - - // Wrap the IFD in a formal EXIF block. - - b := new(bytes.Buffer) - - headerBytes, err := BuildExifHeader(ib.byteOrder, ExifDefaultFirstIfdOffset) - log.PanicIf(err) - - _, err = b.Write(headerBytes) - log.PanicIf(err) - - _, err = b.Write(encodedIfds) - log.PanicIf(err) - - return b.Bytes(), nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_enumerate.go b/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_enumerate.go deleted file mode 100644 index 3167596e..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_enumerate.go +++ /dev/null @@ -1,1672 +0,0 @@ -package exif - -import ( - "bytes" - "errors" - "fmt" - "io" - "strconv" - "strings" - "time" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" - "github.com/dsoprea/go-exif/v3/undefined" -) - -var ( - ifdEnumerateLogger = log.NewLogger("exif.ifd_enumerate") -) - -var ( - // ErrNoThumbnail means that no thumbnail was found. - ErrNoThumbnail = errors.New("no thumbnail") - - // ErrNoGpsTags means that no GPS info was found. - ErrNoGpsTags = errors.New("no gps tags") - - // ErrTagTypeNotValid means that the tag-type is not valid. - ErrTagTypeNotValid = errors.New("tag type invalid") - - // ErrOffsetInvalid means that the file offset is not valid. - ErrOffsetInvalid = errors.New("file offset invalid") -) - -var ( - // ValidGpsVersions is the list of recognized EXIF GPS versions/signatures. - ValidGpsVersions = [][4]byte{ - // 2.0.0.0 appears to have a very similar format to 2.2.0.0, so enabling - // it under that assumption. - // - // IFD-PATH=[IFD] ID=(0x8825) NAME=[GPSTag] COUNT=(1) TYPE=[LONG] VALUE=[114] - // IFD-PATH=[IFD/GPSInfo] ID=(0x0000) NAME=[GPSVersionID] COUNT=(4) TYPE=[BYTE] VALUE=[02 00 00 00] - // IFD-PATH=[IFD/GPSInfo] ID=(0x0001) NAME=[GPSLatitudeRef] COUNT=(2) TYPE=[ASCII] VALUE=[S] - // IFD-PATH=[IFD/GPSInfo] ID=(0x0002) NAME=[GPSLatitude] COUNT=(3) TYPE=[RATIONAL] VALUE=[38/1...] - // IFD-PATH=[IFD/GPSInfo] ID=(0x0003) NAME=[GPSLongitudeRef] COUNT=(2) TYPE=[ASCII] VALUE=[E] - // IFD-PATH=[IFD/GPSInfo] ID=(0x0004) NAME=[GPSLongitude] COUNT=(3) TYPE=[RATIONAL] VALUE=[144/1...] - // IFD-PATH=[IFD/GPSInfo] ID=(0x0012) NAME=[GPSMapDatum] COUNT=(7) TYPE=[ASCII] VALUE=[WGS-84] - // - {2, 0, 0, 0}, - - {2, 2, 0, 0}, - - // Suddenly appeared at the default in 2.31: https://home.jeita.or.jp/tsc/std-pdf/CP-3451D.pdf - // - // Note that the presence of 2.3.0.0 doesn't seem to guarantee - // coordinates. In some cases, we seen just the following: - // - // GPS Tag Version |2.3.0.0 - // GPS Receiver Status |V - // Geodetic Survey Data|WGS-84 - // GPS Differential Cor|0 - // - {2, 3, 0, 0}, - } -) - -// byteParser knows how to decode an IFD and all of the tags it -// describes. -// -// The IFDs and the actual values can float throughout the EXIF block, but the -// IFD itself is just a minor header followed by a set of repeating, -// statically-sized records. So, the tags (though notnecessarily their values) -// are fairly simple to enumerate. -type byteParser struct { - byteOrder binary.ByteOrder - rs io.ReadSeeker - ifdOffset uint32 - currentOffset uint32 -} - -// newByteParser returns a new byteParser struct. -// -// initialOffset is for arithmetic-based tracking of where we should be at in -// the stream. -func newByteParser(rs io.ReadSeeker, byteOrder binary.ByteOrder, initialOffset uint32) (bp *byteParser, err error) { - // TODO(dustin): Add test - - bp = &byteParser{ - rs: rs, - byteOrder: byteOrder, - currentOffset: initialOffset, - } - - return bp, nil -} - -// getUint16 reads a uint16 and advances both our current and our current -// accumulator (which allows us to know how far to seek to the beginning of the -// next IFD when it's time to jump). -func (bp *byteParser) getUint16() (value uint16, raw []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - needBytes := 2 - - raw = make([]byte, needBytes) - - _, err = io.ReadFull(bp.rs, raw) - log.PanicIf(err) - - value = bp.byteOrder.Uint16(raw) - - bp.currentOffset += uint32(needBytes) - - return value, raw, nil -} - -// getUint32 reads a uint32 and advances both our current and our current -// accumulator (which allows us to know how far to seek to the beginning of the -// next IFD when it's time to jump). -func (bp *byteParser) getUint32() (value uint32, raw []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - needBytes := 4 - - raw = make([]byte, needBytes) - - _, err = io.ReadFull(bp.rs, raw) - log.PanicIf(err) - - value = bp.byteOrder.Uint32(raw) - - bp.currentOffset += uint32(needBytes) - - return value, raw, nil -} - -// CurrentOffset returns the starting offset but the number of bytes that we -// have parsed. This is arithmetic-based tracking, not a seek(0) operation. -func (bp *byteParser) CurrentOffset() uint32 { - return bp.currentOffset -} - -// IfdEnumerate is the main enumeration type. It knows how to parse the IFD -// containers in the EXIF blob. -type IfdEnumerate struct { - ebs ExifBlobSeeker - byteOrder binary.ByteOrder - tagIndex *TagIndex - ifdMapping *exifcommon.IfdMapping - furthestOffset uint32 - - visitedIfdOffsets map[uint32]struct{} -} - -// NewIfdEnumerate returns a new instance of IfdEnumerate. -func NewIfdEnumerate(ifdMapping *exifcommon.IfdMapping, tagIndex *TagIndex, ebs ExifBlobSeeker, byteOrder binary.ByteOrder) *IfdEnumerate { - return &IfdEnumerate{ - ebs: ebs, - byteOrder: byteOrder, - ifdMapping: ifdMapping, - tagIndex: tagIndex, - - visitedIfdOffsets: make(map[uint32]struct{}), - } -} - -func (ie *IfdEnumerate) getByteParser(ifdOffset uint32) (bp *byteParser, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - initialOffset := ExifAddressableAreaStart + ifdOffset - - rs, err := ie.ebs.GetReadSeeker(int64(initialOffset)) - log.PanicIf(err) - - bp, err = - newByteParser( - rs, - ie.byteOrder, - initialOffset) - - if err != nil { - if err == ErrOffsetInvalid { - return nil, err - } - - log.Panic(err) - } - - return bp, nil -} - -func (ie *IfdEnumerate) parseTag(ii *exifcommon.IfdIdentity, tagPosition int, bp *byteParser) (ite *IfdTagEntry, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - tagId, _, err := bp.getUint16() - log.PanicIf(err) - - tagTypeRaw, _, err := bp.getUint16() - log.PanicIf(err) - - tagType := exifcommon.TagTypePrimitive(tagTypeRaw) - - unitCount, _, err := bp.getUint32() - log.PanicIf(err) - - valueOffset, rawValueOffset, err := bp.getUint32() - log.PanicIf(err) - - // Check whether the embedded type indicator is valid. - - if tagType.IsValid() == false { - // Technically, we have the type on-file in the tags-index, but - // if the type stored alongside the data disagrees with it, - // which it apparently does, all bets are off. - ifdEnumerateLogger.Warningf(nil, - "Tag (0x%04x) in IFD [%s] at position (%d) has invalid type (0x%04x) and will be skipped.", - tagId, ii, tagPosition, int(tagType)) - - ite = &IfdTagEntry{ - tagId: tagId, - tagType: tagType, - } - - return ite, ErrTagTypeNotValid - } - - // Check whether the embedded type is listed among the supported types for - // the registered tag. If not, skip processing the tag. - - it, err := ie.tagIndex.Get(ii, tagId) - if err != nil { - if log.Is(err, ErrTagNotFound) == true { - ifdEnumerateLogger.Warningf(nil, "Tag (0x%04x) is not known and will be skipped.", tagId) - - ite = &IfdTagEntry{ - tagId: tagId, - } - - return ite, ErrTagNotFound - } - - log.Panic(err) - } - - // If we're trying to be as forgiving as possible then use whatever type was - // reported in the format. Otherwise, only accept a type that's expected for - // this tag. - if ie.tagIndex.UniversalSearch() == false && it.DoesSupportType(tagType) == false { - // The type in the stream disagrees with the type that this tag is - // expected to have. This can present issues with how we handle the - // special-case tags (e.g. thumbnails, GPS, etc..) when those tags - // suddenly have data that we no longer manipulate correctly/ - // accurately. - ifdEnumerateLogger.Warningf(nil, - "Tag (0x%04x) in IFD [%s] at position (%d) has unsupported type (0x%02x) and will be skipped.", - tagId, ii, tagPosition, int(tagType)) - - return nil, ErrTagTypeNotValid - } - - // Construct tag struct. - - rs, err := ie.ebs.GetReadSeeker(0) - log.PanicIf(err) - - ite = newIfdTagEntry( - ii, - tagId, - tagPosition, - tagType, - unitCount, - valueOffset, - rawValueOffset, - rs, - ie.byteOrder) - - ifdPath := ii.UnindexedString() - - // If it's an IFD but not a standard one, it'll just be seen as a LONG - // (the standard IFD tag type), later, unless we skip it because it's - // [likely] not even in the standard list of known tags. - mi, err := ie.ifdMapping.GetChild(ifdPath, tagId) - if err == nil { - currentIfdTag := ii.IfdTag() - - childIt := exifcommon.NewIfdTag(¤tIfdTag, tagId, mi.Name) - iiChild := ii.NewChild(childIt, 0) - ite.SetChildIfd(iiChild) - - // We also need to set `tag.ChildFqIfdPath` but can't do it here - // because we don't have the IFD index. - } else if log.Is(err, exifcommon.ErrChildIfdNotMapped) == false { - log.Panic(err) - } - - return ite, nil -} - -// TagVisitorFn is called for each tag when enumerating through the EXIF. -type TagVisitorFn func(ite *IfdTagEntry) (err error) - -// tagPostParse do some tag-level processing here following the parse of each. -func (ie *IfdEnumerate) tagPostParse(ite *IfdTagEntry, med *MiscellaneousExifData) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - ii := ite.IfdIdentity() - - tagId := ite.TagId() - tagType := ite.TagType() - - it, err := ie.tagIndex.Get(ii, tagId) - if err == nil { - ite.setTagName(it.Name) - } else { - if err != ErrTagNotFound { - log.Panic(err) - } - - // This is an unknown tag. - - originalBt := exifcommon.BasicTag{ - FqIfdPath: ii.String(), - IfdPath: ii.UnindexedString(), - TagId: tagId, - } - - if med != nil { - med.unknownTags[originalBt] = exifcommon.BasicTag{} - } - - utilityLogger.Debugf(nil, - "Tag (0x%04x) is not valid for IFD [%s]. Attempting secondary "+ - "lookup.", tagId, ii.String()) - - // This will overwrite the existing `it` and `err`. Since `FindFirst()` - // might generate different Errors than `Get()`, the log message above - // is import to try and mitigate confusion in that case. - it, err = ie.tagIndex.FindFirst(tagId, tagType, nil) - if err != nil { - if err != ErrTagNotFound { - log.Panic(err) - } - - // This is supposed to be a convenience function and if we were - // to keep the name empty or set it to some placeholder, it - // might be mismanaged by the package that is calling us. If - // they want to specifically manage these types of tags, they - // can use more advanced functionality to specifically -handle - // unknown tags. - utilityLogger.Warningf(nil, - "Tag with ID (0x%04x) in IFD [%s] is not recognized and "+ - "will be ignored.", tagId, ii.String()) - - return ErrTagNotFound - } - - ite.setTagName(it.Name) - - utilityLogger.Warningf(nil, - "Tag with ID (0x%04x) is not valid for IFD [%s], but it *is* "+ - "valid as tag [%s] under IFD [%s] and has the same type "+ - "[%s], so we will use that. This EXIF blob was probably "+ - "written by a buggy implementation.", - tagId, ii.UnindexedString(), it.Name, it.IfdPath, - tagType) - - if med != nil { - med.unknownTags[originalBt] = exifcommon.BasicTag{ - IfdPath: it.IfdPath, - TagId: tagId, - } - } - } - - // This is a known tag (from the standard, unless the user did - // something different). - - // Skip any tags that have a type that doesn't match the type in the - // index (which is loaded with the standard and accept tag - // information unless configured otherwise). - // - // We've run into multiple instances of the same tag, where a) no - // tag should ever be repeated, and b) all but one had an incorrect - // type and caused parsing/conversion woes. So, this is a quick fix - // for those scenarios. - if ie.tagIndex.UniversalSearch() == false && it.DoesSupportType(tagType) == false { - ifdEnumerateLogger.Warningf(nil, - "Skipping tag [%s] (0x%04x) [%s] with an unexpected type: %v ∉ %v", - ii.UnindexedString(), tagId, it.Name, - tagType, it.SupportedTypes) - - return ErrTagNotFound - } - - return nil -} - -// parseIfd decodes the IFD block that we're currently sitting on the first -// byte of. -func (ie *IfdEnumerate) parseIfd(ii *exifcommon.IfdIdentity, bp *byteParser, visitor TagVisitorFn, doDescend bool, med *MiscellaneousExifData) (nextIfdOffset uint32, entries []*IfdTagEntry, thumbnailData []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - tagCount, _, err := bp.getUint16() - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "IFD [%s] tag-count: (%d)", ii.String(), tagCount) - - entries = make([]*IfdTagEntry, 0) - - var enumeratorThumbnailOffset *IfdTagEntry - var enumeratorThumbnailSize *IfdTagEntry - - for i := 0; i < int(tagCount); i++ { - ite, err := ie.parseTag(ii, i, bp) - if err != nil { - if log.Is(err, ErrTagNotFound) == true || log.Is(err, ErrTagTypeNotValid) == true { - // These tags should've been fully logged in parseTag(). The - // ITE returned is nil so we can't print anything about them, now. - continue - } - - log.Panic(err) - } - - err = ie.tagPostParse(ite, med) - if err == nil { - if err == ErrTagNotFound { - continue - } - - log.PanicIf(err) - } - - tagId := ite.TagId() - - if visitor != nil { - err := visitor(ite) - log.PanicIf(err) - } - - if ite.IsThumbnailOffset() == true { - ifdEnumerateLogger.Debugf(nil, "Skipping the thumbnail offset tag (0x%04x). Use accessors to get it or set it.", tagId) - - enumeratorThumbnailOffset = ite - entries = append(entries, ite) - - continue - } else if ite.IsThumbnailSize() == true { - ifdEnumerateLogger.Debugf(nil, "Skipping the thumbnail size tag (0x%04x). Use accessors to get it or set it.", tagId) - - enumeratorThumbnailSize = ite - entries = append(entries, ite) - - continue - } - - if ite.TagType() != exifcommon.TypeUndefined { - // If this tag's value is an offset, bump our max-offset value to - // what that offset is plus however large that value is. - - vc := ite.getValueContext() - - farOffset, err := vc.GetFarOffset() - if err == nil { - candidateOffset := farOffset + uint32(vc.SizeInBytes()) - if candidateOffset > ie.furthestOffset { - ie.furthestOffset = candidateOffset - } - } else if err != exifcommon.ErrNotFarValue { - log.PanicIf(err) - } - } - - // If it's an IFD but not a standard one, it'll just be seen as a LONG - // (the standard IFD tag type), later, unless we skip it because it's - // [likely] not even in the standard list of known tags. - if ite.ChildIfdPath() != "" { - if doDescend == true { - ifdEnumerateLogger.Debugf(nil, "Descending from IFD [%s] to IFD [%s].", ii, ite.ChildIfdPath()) - - currentIfdTag := ii.IfdTag() - - childIfdTag := - exifcommon.NewIfdTag( - ¤tIfdTag, - ite.TagId(), - ite.ChildIfdName()) - - iiChild := ii.NewChild(childIfdTag, 0) - - err := ie.scan(iiChild, ite.getValueOffset(), visitor, med) - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "Ascending from IFD [%s] to IFD [%s].", ite.ChildIfdPath(), ii) - } - } - - entries = append(entries, ite) - } - - if enumeratorThumbnailOffset != nil && enumeratorThumbnailSize != nil { - thumbnailData, err = ie.parseThumbnail(enumeratorThumbnailOffset, enumeratorThumbnailSize) - if err != nil { - ifdEnumerateLogger.Errorf( - nil, err, - "We tried to bump our furthest-offset counter but there was an issue first seeking past the thumbnail.") - } else { - // In this case, the value is always an offset. - offset := enumeratorThumbnailOffset.getValueOffset() - - // This this case, the value is always a length. - length := enumeratorThumbnailSize.getValueOffset() - - ifdEnumerateLogger.Debugf(nil, "Found thumbnail in IFD [%s]. Its offset is (%d) and is (%d) bytes.", ii, offset, length) - - furthestOffset := offset + length - - if furthestOffset > ie.furthestOffset { - ie.furthestOffset = furthestOffset - } - } - } - - nextIfdOffset, _, err = bp.getUint32() - log.PanicIf(err) - - _, alreadyVisited := ie.visitedIfdOffsets[nextIfdOffset] - - if alreadyVisited == true { - ifdEnumerateLogger.Warningf(nil, "IFD at offset (0x%08x) has been linked-to more than once. There might be a cycle in the IFD chain. Not reparsing.", nextIfdOffset) - nextIfdOffset = 0 - } - - if nextIfdOffset != 0 { - ie.visitedIfdOffsets[nextIfdOffset] = struct{}{} - ifdEnumerateLogger.Debugf(nil, "[%s] Next IFD at offset: (0x%08x)", ii.String(), nextIfdOffset) - } else { - ifdEnumerateLogger.Debugf(nil, "[%s] IFD chain has terminated.", ii.String()) - } - - return nextIfdOffset, entries, thumbnailData, nil -} - -func (ie *IfdEnumerate) parseThumbnail(offsetIte, lengthIte *IfdTagEntry) (thumbnailData []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - vRaw, err := lengthIte.Value() - log.PanicIf(err) - - vList := vRaw.([]uint32) - if len(vList) != 1 { - log.Panicf("not exactly one long: (%d)", len(vList)) - } - - length := vList[0] - - // The tag is official a LONG type, but it's actually an offset to a blob of bytes. - offsetIte.updateTagType(exifcommon.TypeByte) - offsetIte.updateUnitCount(length) - - thumbnailData, err = offsetIte.GetRawBytes() - log.PanicIf(err) - - return thumbnailData, nil -} - -// scan parses and enumerates the different IFD blocks and invokes a visitor -// callback for each tag. No information is kept or returned. -func (ie *IfdEnumerate) scan(iiGeneral *exifcommon.IfdIdentity, ifdOffset uint32, visitor TagVisitorFn, med *MiscellaneousExifData) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - for ifdIndex := 0; ; ifdIndex++ { - iiSibling := iiGeneral.NewSibling(ifdIndex) - - ifdEnumerateLogger.Debugf(nil, "Parsing IFD [%s] at offset (0x%04x) (scan).", iiSibling.String(), ifdOffset) - - bp, err := ie.getByteParser(ifdOffset) - if err != nil { - if err == ErrOffsetInvalid { - ifdEnumerateLogger.Errorf(nil, nil, "IFD [%s] at offset (0x%04x) is unreachable. Terminating scan.", iiSibling.String(), ifdOffset) - break - } - - log.Panic(err) - } - - nextIfdOffset, _, _, err := ie.parseIfd(iiSibling, bp, visitor, true, med) - log.PanicIf(err) - - currentOffset := bp.CurrentOffset() - if currentOffset > ie.furthestOffset { - ie.furthestOffset = currentOffset - } - - if nextIfdOffset == 0 { - break - } - - ifdOffset = nextIfdOffset - } - - return nil -} - -// MiscellaneousExifData is reports additional data collected during the parse. -type MiscellaneousExifData struct { - // UnknownTags contains all tags that were invalid for their containing - // IFDs. The values represent alternative IFDs that were correctly matched - // to those tags and used instead. - unknownTags map[exifcommon.BasicTag]exifcommon.BasicTag -} - -// UnknownTags returns the unknown tags encountered during the scan. -func (med *MiscellaneousExifData) UnknownTags() map[exifcommon.BasicTag]exifcommon.BasicTag { - return med.unknownTags -} - -// ScanOptions tweaks parser behavior/choices. -type ScanOptions struct { - // NOTE(dustin): Reserved for future usage. -} - -// Scan enumerates the different EXIF blocks (called IFDs). `rootIfdName` will -// be "IFD" in the TIFF standard. -func (ie *IfdEnumerate) Scan(iiRoot *exifcommon.IfdIdentity, ifdOffset uint32, visitor TagVisitorFn, so *ScanOptions) (med *MiscellaneousExifData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - med = &MiscellaneousExifData{ - unknownTags: make(map[exifcommon.BasicTag]exifcommon.BasicTag), - } - - err = ie.scan(iiRoot, ifdOffset, visitor, med) - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "Scan: It looks like the furthest offset that contained EXIF data in the EXIF blob was (%d) (Scan).", ie.FurthestOffset()) - - return med, nil -} - -// Ifd represents a single, parsed IFD. -type Ifd struct { - ifdIdentity *exifcommon.IfdIdentity - - ifdMapping *exifcommon.IfdMapping - tagIndex *TagIndex - - offset uint32 - byteOrder binary.ByteOrder - id int - - parentIfd *Ifd - - // ParentTagIndex is our tag position in the parent IFD, if we had a parent - // (if `ParentIfd` is not nil and we weren't an IFD referenced as a sibling - // instead of as a child). - parentTagIndex int - - entries []*IfdTagEntry - entriesByTagId map[uint16][]*IfdTagEntry - - children []*Ifd - childIfdIndex map[string]*Ifd - - thumbnailData []byte - - nextIfdOffset uint32 - nextIfd *Ifd -} - -// IfdIdentity returns IFD identity that this struct represents. -func (ifd *Ifd) IfdIdentity() *exifcommon.IfdIdentity { - return ifd.ifdIdentity -} - -// Entries returns a flat list of all tags for this IFD. -func (ifd *Ifd) Entries() []*IfdTagEntry { - - // TODO(dustin): Add test - - return ifd.entries -} - -// EntriesByTagId returns a map of all tags for this IFD. -func (ifd *Ifd) EntriesByTagId() map[uint16][]*IfdTagEntry { - - // TODO(dustin): Add test - - return ifd.entriesByTagId -} - -// Children returns a flat list of all child IFDs of this IFD. -func (ifd *Ifd) Children() []*Ifd { - - // TODO(dustin): Add test - - return ifd.children -} - -// ChildWithIfdPath returns a map of all child IFDs of this IFD. -func (ifd *Ifd) ChildIfdIndex() map[string]*Ifd { - - // TODO(dustin): Add test - - return ifd.childIfdIndex -} - -// ParentTagIndex returns the position of this IFD's tag in its parent IFD (*if* -// there is a parent). -func (ifd *Ifd) ParentTagIndex() int { - - // TODO(dustin): Add test - - return ifd.parentTagIndex -} - -// Offset returns the offset of the IFD in the stream. -func (ifd *Ifd) Offset() uint32 { - - // TODO(dustin): Add test - - return ifd.offset -} - -// Offset returns the offset of the IFD in the stream. -func (ifd *Ifd) ByteOrder() binary.ByteOrder { - - // TODO(dustin): Add test - - return ifd.byteOrder -} - -// NextIfd returns the Ifd struct for the next IFD in the chain. -func (ifd *Ifd) NextIfd() *Ifd { - - // TODO(dustin): Add test - - return ifd.nextIfd -} - -// ChildWithIfdPath returns an `Ifd` struct for the given child of the current -// IFD. -func (ifd *Ifd) ChildWithIfdPath(iiChild *exifcommon.IfdIdentity) (childIfd *Ifd, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): This is a bridge while we're introducing the IFD type-system. We should be able to use the (IfdIdentity).Equals() method for this. - ifdPath := iiChild.UnindexedString() - - for _, childIfd := range ifd.children { - if childIfd.ifdIdentity.UnindexedString() == ifdPath { - return childIfd, nil - } - } - - log.Panic(ErrTagNotFound) - return nil, nil -} - -// FindTagWithId returns a list of tags (usually just zero or one) that match -// the given tag ID. This is efficient. -func (ifd *Ifd) FindTagWithId(tagId uint16) (results []*IfdTagEntry, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - results, found := ifd.entriesByTagId[tagId] - if found != true { - log.Panic(ErrTagNotFound) - } - - return results, nil -} - -// FindTagWithName returns a list of tags (usually just zero or one) that match -// the given tag name. This is not efficient (though the labor is trivial). -func (ifd *Ifd) FindTagWithName(tagName string) (results []*IfdTagEntry, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - it, err := ifd.tagIndex.GetWithName(ifd.ifdIdentity, tagName) - if log.Is(err, ErrTagNotFound) == true { - log.Panic(ErrTagNotKnown) - } else if err != nil { - log.Panic(err) - } - - results = make([]*IfdTagEntry, 0) - for _, ite := range ifd.entries { - if ite.TagId() == it.Id { - results = append(results, ite) - } - } - - if len(results) == 0 { - log.Panic(ErrTagNotFound) - } - - return results, nil -} - -// String returns a description string. -func (ifd *Ifd) String() string { - parentOffset := uint32(0) - if ifd.parentIfd != nil { - parentOffset = ifd.parentIfd.offset - } - - return fmt.Sprintf("Ifd", ifd.id, ifd.ifdIdentity.UnindexedString(), ifd.ifdIdentity.Index(), len(ifd.entries), ifd.offset, len(ifd.children), parentOffset, ifd.nextIfdOffset) -} - -// Thumbnail returns the raw thumbnail bytes. This is typically directly -// readable by any standard image viewer. -func (ifd *Ifd) Thumbnail() (data []byte, err error) { - - if ifd.thumbnailData == nil { - return nil, ErrNoThumbnail - } - - return ifd.thumbnailData, nil -} - -// dumpTags recursively builds a list of tags from an IFD. -func (ifd *Ifd) dumpTags(tags []*IfdTagEntry) []*IfdTagEntry { - if tags == nil { - tags = make([]*IfdTagEntry, 0) - } - - // Now, print the tags while also descending to child-IFDS as we encounter them. - - ifdsFoundCount := 0 - - for _, ite := range ifd.entries { - tags = append(tags, ite) - - childIfdPath := ite.ChildIfdPath() - if childIfdPath != "" { - ifdsFoundCount++ - - childIfd, found := ifd.childIfdIndex[childIfdPath] - if found != true { - log.Panicf("alien child IFD referenced by a tag: [%s]", childIfdPath) - } - - tags = childIfd.dumpTags(tags) - } - } - - if len(ifd.children) != ifdsFoundCount { - log.Panicf("have one or more dangling child IFDs: (%d) != (%d)", len(ifd.children), ifdsFoundCount) - } - - if ifd.nextIfd != nil { - tags = ifd.nextIfd.dumpTags(tags) - } - - return tags -} - -// DumpTags prints the IFD hierarchy. -func (ifd *Ifd) DumpTags() []*IfdTagEntry { - return ifd.dumpTags(nil) -} - -func (ifd *Ifd) printTagTree(populateValues bool, index, level int, nextLink bool) { - indent := strings.Repeat(" ", level*2) - - prefix := " " - if nextLink { - prefix = ">" - } - - fmt.Printf("%s%sIFD: %s\n", indent, prefix, ifd) - - // Now, print the tags while also descending to child-IFDS as we encounter them. - - ifdsFoundCount := 0 - - for _, ite := range ifd.entries { - if ite.ChildIfdPath() != "" { - fmt.Printf("%s - TAG: %s\n", indent, ite) - } else { - // This will just add noise to the output (byte-tags are fully - // dumped). - if ite.IsThumbnailOffset() == true || ite.IsThumbnailSize() == true { - continue - } - - it, err := ifd.tagIndex.Get(ifd.ifdIdentity, ite.TagId()) - - tagName := "" - if err == nil { - tagName = it.Name - } - - var valuePhrase string - if populateValues == true { - var err error - - valuePhrase, err = ite.Format() - if err != nil { - if log.Is(err, exifcommon.ErrUnhandledUndefinedTypedTag) == true { - ifdEnumerateLogger.Warningf(nil, "Skipping non-standard undefined tag: [%s] (%04x)", ifd.ifdIdentity.UnindexedString(), ite.TagId()) - continue - } else if err == exifundefined.ErrUnparseableValue { - ifdEnumerateLogger.Warningf(nil, "Skipping unparseable undefined tag: [%s] (%04x) [%s]", ifd.ifdIdentity.UnindexedString(), ite.TagId(), it.Name) - continue - } - - log.Panic(err) - } - } else { - valuePhrase = "!UNRESOLVED" - } - - fmt.Printf("%s - TAG: %s NAME=[%s] VALUE=[%v]\n", indent, ite, tagName, valuePhrase) - } - - childIfdPath := ite.ChildIfdPath() - if childIfdPath != "" { - ifdsFoundCount++ - - childIfd, found := ifd.childIfdIndex[childIfdPath] - if found != true { - log.Panicf("alien child IFD referenced by a tag: [%s]", childIfdPath) - } - - childIfd.printTagTree(populateValues, 0, level+1, false) - } - } - - if len(ifd.children) != ifdsFoundCount { - log.Panicf("have one or more dangling child IFDs: (%d) != (%d)", len(ifd.children), ifdsFoundCount) - } - - if ifd.nextIfd != nil { - ifd.nextIfd.printTagTree(populateValues, index+1, level, true) - } -} - -// PrintTagTree prints the IFD hierarchy. -func (ifd *Ifd) PrintTagTree(populateValues bool) { - ifd.printTagTree(populateValues, 0, 0, false) -} - -func (ifd *Ifd) printIfdTree(level int, nextLink bool) { - indent := strings.Repeat(" ", level*2) - - prefix := " " - if nextLink { - prefix = ">" - } - - fmt.Printf("%s%s%s\n", indent, prefix, ifd) - - // Now, print the tags while also descending to child-IFDS as we encounter them. - - ifdsFoundCount := 0 - - for _, ite := range ifd.entries { - childIfdPath := ite.ChildIfdPath() - if childIfdPath != "" { - ifdsFoundCount++ - - childIfd, found := ifd.childIfdIndex[childIfdPath] - if found != true { - log.Panicf("alien child IFD referenced by a tag: [%s]", childIfdPath) - } - - childIfd.printIfdTree(level+1, false) - } - } - - if len(ifd.children) != ifdsFoundCount { - log.Panicf("have one or more dangling child IFDs: (%d) != (%d)", len(ifd.children), ifdsFoundCount) - } - - if ifd.nextIfd != nil { - ifd.nextIfd.printIfdTree(level, true) - } -} - -// PrintIfdTree prints the IFD hierarchy. -func (ifd *Ifd) PrintIfdTree() { - ifd.printIfdTree(0, false) -} - -func (ifd *Ifd) dumpTree(tagsDump []string, level int) []string { - if tagsDump == nil { - tagsDump = make([]string, 0) - } - - indent := strings.Repeat(" ", level*2) - - var ifdPhrase string - if ifd.parentIfd != nil { - ifdPhrase = fmt.Sprintf("[%s]->[%s]:(%d)", ifd.parentIfd.ifdIdentity.UnindexedString(), ifd.ifdIdentity.UnindexedString(), ifd.ifdIdentity.Index()) - } else { - ifdPhrase = fmt.Sprintf("[ROOT]->[%s]:(%d)", ifd.ifdIdentity.UnindexedString(), ifd.ifdIdentity.Index()) - } - - startBlurb := fmt.Sprintf("%s> IFD %s TOP", indent, ifdPhrase) - tagsDump = append(tagsDump, startBlurb) - - ifdsFoundCount := 0 - for _, ite := range ifd.entries { - tagsDump = append(tagsDump, fmt.Sprintf("%s - (0x%04x)", indent, ite.TagId())) - - childIfdPath := ite.ChildIfdPath() - if childIfdPath != "" { - ifdsFoundCount++ - - childIfd, found := ifd.childIfdIndex[childIfdPath] - if found != true { - log.Panicf("alien child IFD referenced by a tag: [%s]", childIfdPath) - } - - tagsDump = childIfd.dumpTree(tagsDump, level+1) - } - } - - if len(ifd.children) != ifdsFoundCount { - log.Panicf("have one or more dangling child IFDs: (%d) != (%d)", len(ifd.children), ifdsFoundCount) - } - - finishBlurb := fmt.Sprintf("%s< IFD %s BOTTOM", indent, ifdPhrase) - tagsDump = append(tagsDump, finishBlurb) - - if ifd.nextIfd != nil { - siblingBlurb := fmt.Sprintf("%s* LINKING TO SIBLING IFD [%s]:(%d)", indent, ifd.nextIfd.ifdIdentity.UnindexedString(), ifd.nextIfd.ifdIdentity.Index()) - tagsDump = append(tagsDump, siblingBlurb) - - tagsDump = ifd.nextIfd.dumpTree(tagsDump, level) - } - - return tagsDump -} - -// DumpTree returns a list of strings describing the IFD hierarchy. -func (ifd *Ifd) DumpTree() []string { - return ifd.dumpTree(nil, 0) -} - -// GpsInfo parses and consolidates the GPS info. This can only be called on the -// GPS IFD. -func (ifd *Ifd) GpsInfo() (gi *GpsInfo, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - gi = new(GpsInfo) - - if ifd.ifdIdentity.Equals(exifcommon.IfdGpsInfoStandardIfdIdentity) == false { - log.Panicf("GPS can only be read on GPS IFD: [%s]", ifd.ifdIdentity.UnindexedString()) - } - - if tags, found := ifd.entriesByTagId[TagGpsVersionId]; found == false { - // We've seen this. We'll just have to default to assuming we're in a - // 2.2.0.0 format. - ifdEnumerateLogger.Warningf(nil, "No GPS version tag (0x%04x) found.", TagGpsVersionId) - } else { - versionBytes, err := tags[0].GetRawBytes() - log.PanicIf(err) - - hit := false - for _, acceptedGpsVersion := range ValidGpsVersions { - if bytes.Compare(versionBytes, acceptedGpsVersion[:]) == 0 { - hit = true - break - } - } - - if hit != true { - ifdEnumerateLogger.Warningf(nil, "GPS version not supported: %v", versionBytes) - log.Panic(ErrNoGpsTags) - } - } - - tags, found := ifd.entriesByTagId[TagLatitudeId] - if found == false { - ifdEnumerateLogger.Warningf(nil, "latitude not found") - log.Panic(ErrNoGpsTags) - } - - latitudeValue, err := tags[0].Value() - log.PanicIf(err) - - // Look for whether North or South. - tags, found = ifd.entriesByTagId[TagLatitudeRefId] - if found == false { - ifdEnumerateLogger.Warningf(nil, "latitude-ref not found") - log.Panic(ErrNoGpsTags) - } - - latitudeRefValue, err := tags[0].Value() - log.PanicIf(err) - - tags, found = ifd.entriesByTagId[TagLongitudeId] - if found == false { - ifdEnumerateLogger.Warningf(nil, "longitude not found") - log.Panic(ErrNoGpsTags) - } - - longitudeValue, err := tags[0].Value() - log.PanicIf(err) - - // Look for whether West or East. - tags, found = ifd.entriesByTagId[TagLongitudeRefId] - if found == false { - ifdEnumerateLogger.Warningf(nil, "longitude-ref not found") - log.Panic(ErrNoGpsTags) - } - - longitudeRefValue, err := tags[0].Value() - log.PanicIf(err) - - // Parse location. - - latitudeRaw := latitudeValue.([]exifcommon.Rational) - - gi.Latitude, err = NewGpsDegreesFromRationals(latitudeRefValue.(string), latitudeRaw) - log.PanicIf(err) - - longitudeRaw := longitudeValue.([]exifcommon.Rational) - - gi.Longitude, err = NewGpsDegreesFromRationals(longitudeRefValue.(string), longitudeRaw) - log.PanicIf(err) - - // Parse altitude. - - altitudeTags, foundAltitude := ifd.entriesByTagId[TagAltitudeId] - altitudeRefTags, foundAltitudeRef := ifd.entriesByTagId[TagAltitudeRefId] - - if foundAltitude == true && foundAltitudeRef == true { - altitudePhrase, err := altitudeTags[0].Format() - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "Altitude is [%s].", altitudePhrase) - - altitudeValue, err := altitudeTags[0].Value() - log.PanicIf(err) - - altitudeRefPhrase, err := altitudeRefTags[0].Format() - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "Altitude-reference is [%s].", altitudeRefPhrase) - - altitudeRefValue, err := altitudeRefTags[0].Value() - log.PanicIf(err) - - altitudeRaw := altitudeValue.([]exifcommon.Rational) - if altitudeRaw[0].Denominator > 0 { - altitude := int(altitudeRaw[0].Numerator / altitudeRaw[0].Denominator) - - if altitudeRefValue.([]byte)[0] == 1 { - altitude *= -1 - } - - gi.Altitude = altitude - } - } - - // Parse timestamp from separate date and time tags. - - timestampTags, foundTimestamp := ifd.entriesByTagId[TagTimestampId] - datestampTags, foundDatestamp := ifd.entriesByTagId[TagDatestampId] - - if foundTimestamp == true && foundDatestamp == true { - datestampValue, err := datestampTags[0].Value() - log.PanicIf(err) - - datePhrase := datestampValue.(string) - ifdEnumerateLogger.Debugf(nil, "Date tag value is [%s].", datePhrase) - - // Normalize the separators. - datePhrase = strings.ReplaceAll(datePhrase, "-", ":") - - dateParts := strings.Split(datePhrase, ":") - - year, err1 := strconv.ParseUint(dateParts[0], 10, 16) - month, err2 := strconv.ParseUint(dateParts[1], 10, 8) - day, err3 := strconv.ParseUint(dateParts[2], 10, 8) - - if err1 == nil && err2 == nil && err3 == nil { - timestampValue, err := timestampTags[0].Value() - log.PanicIf(err) - - timePhrase, err := timestampTags[0].Format() - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "Time tag value is [%s].", timePhrase) - - timestampRaw := timestampValue.([]exifcommon.Rational) - - hour := int(timestampRaw[0].Numerator / timestampRaw[0].Denominator) - minute := int(timestampRaw[1].Numerator / timestampRaw[1].Denominator) - second := int(timestampRaw[2].Numerator / timestampRaw[2].Denominator) - - gi.Timestamp = time.Date(int(year), time.Month(month), int(day), hour, minute, second, 0, time.UTC) - } - } - - return gi, nil -} - -// ParsedTagVisitor is a callback used if wanting to visit through all tags and -// child IFDs from the current IFD and going down. -type ParsedTagVisitor func(*Ifd, *IfdTagEntry) error - -// EnumerateTagsRecursively calls the given visitor function for every tag and -// IFD in the current IFD, recursively. -func (ifd *Ifd) EnumerateTagsRecursively(visitor ParsedTagVisitor) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - for ptr := ifd; ptr != nil; ptr = ptr.nextIfd { - for _, ite := range ifd.entries { - childIfdPath := ite.ChildIfdPath() - if childIfdPath != "" { - childIfd := ifd.childIfdIndex[childIfdPath] - - err := childIfd.EnumerateTagsRecursively(visitor) - log.PanicIf(err) - } else { - err := visitor(ifd, ite) - log.PanicIf(err) - } - } - } - - return nil -} - -// QueuedIfd is one IFD that has been identified but yet to be processed. -type QueuedIfd struct { - IfdIdentity *exifcommon.IfdIdentity - - Offset uint32 - Parent *Ifd - - // ParentTagIndex is our tag position in the parent IFD, if we had a parent - // (if `ParentIfd` is not nil and we weren't an IFD referenced as a sibling - // instead of as a child). - ParentTagIndex int -} - -// IfdIndex collects a bunch of IFD and tag information stored in several -// different ways in order to provide convenient lookups. -type IfdIndex struct { - RootIfd *Ifd - Ifds []*Ifd - Tree map[int]*Ifd - Lookup map[string]*Ifd -} - -// Collect enumerates the different EXIF blocks (called IFDs) and builds out an -// index struct for referencing all of the parsed data. -func (ie *IfdEnumerate) Collect(rootIfdOffset uint32) (index IfdIndex, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add MiscellaneousExifData to IfdIndex - - tree := make(map[int]*Ifd) - ifds := make([]*Ifd, 0) - lookup := make(map[string]*Ifd) - - queue := []QueuedIfd{ - { - IfdIdentity: exifcommon.IfdStandardIfdIdentity, - Offset: rootIfdOffset, - }, - } - - edges := make(map[uint32]*Ifd) - - for { - if len(queue) == 0 { - break - } - - qi := queue[0] - ii := qi.IfdIdentity - - offset := qi.Offset - parentIfd := qi.Parent - - queue = queue[1:] - - ifdEnumerateLogger.Debugf(nil, "Parsing IFD [%s] (%d) at offset (0x%04x) (Collect).", ii.String(), ii.Index(), offset) - - bp, err := ie.getByteParser(offset) - if err != nil { - if err == ErrOffsetInvalid { - return index, err - } - - log.Panic(err) - } - - // TODO(dustin): We don't need to pass the index in as a separate argument. Get from the II. - - nextIfdOffset, entries, thumbnailData, err := ie.parseIfd(ii, bp, nil, false, nil) - log.PanicIf(err) - - currentOffset := bp.CurrentOffset() - if currentOffset > ie.furthestOffset { - ie.furthestOffset = currentOffset - } - - id := len(ifds) - - entriesByTagId := make(map[uint16][]*IfdTagEntry) - for _, ite := range entries { - tagId := ite.TagId() - - tags, found := entriesByTagId[tagId] - if found == false { - tags = make([]*IfdTagEntry, 0) - } - - entriesByTagId[tagId] = append(tags, ite) - } - - ifd := &Ifd{ - ifdIdentity: ii, - - byteOrder: ie.byteOrder, - - id: id, - - parentIfd: parentIfd, - parentTagIndex: qi.ParentTagIndex, - - offset: offset, - entries: entries, - entriesByTagId: entriesByTagId, - - // This is populated as each child is processed. - children: make([]*Ifd, 0), - - nextIfdOffset: nextIfdOffset, - thumbnailData: thumbnailData, - - ifdMapping: ie.ifdMapping, - tagIndex: ie.tagIndex, - } - - // Add ourselves to a big list of IFDs. - ifds = append(ifds, ifd) - - // Install ourselves into a by-id lookup table (keys are unique). - tree[id] = ifd - - // Install into by-name buckets. - lookup[ii.String()] = ifd - - // Add a link from the previous IFD in the chain to us. - if previousIfd, found := edges[offset]; found == true { - previousIfd.nextIfd = ifd - } - - // Attach as a child to our parent (where we appeared as a tag in - // that IFD). - if parentIfd != nil { - parentIfd.children = append(parentIfd.children, ifd) - } - - // Determine if any of our entries is a child IFD and queue it. - for i, ite := range entries { - if ite.ChildIfdPath() == "" { - continue - } - - tagId := ite.TagId() - childIfdName := ite.ChildIfdName() - - currentIfdTag := ii.IfdTag() - - childIfdTag := - exifcommon.NewIfdTag( - ¤tIfdTag, - tagId, - childIfdName) - - iiChild := ii.NewChild(childIfdTag, 0) - - qi := QueuedIfd{ - IfdIdentity: iiChild, - - Offset: ite.getValueOffset(), - Parent: ifd, - ParentTagIndex: i, - } - - queue = append(queue, qi) - } - - // If there's another IFD in the chain. - if nextIfdOffset != 0 { - iiSibling := ii.NewSibling(ii.Index() + 1) - - // Allow the next link to know what the previous link was. - edges[nextIfdOffset] = ifd - - qi := QueuedIfd{ - IfdIdentity: iiSibling, - Offset: nextIfdOffset, - } - - queue = append(queue, qi) - } - } - - index.RootIfd = tree[0] - index.Ifds = ifds - index.Tree = tree - index.Lookup = lookup - - err = ie.setChildrenIndex(index.RootIfd) - log.PanicIf(err) - - ifdEnumerateLogger.Debugf(nil, "Collect: It looks like the furthest offset that contained EXIF data in the EXIF blob was (%d).", ie.FurthestOffset()) - - return index, nil -} - -func (ie *IfdEnumerate) setChildrenIndex(ifd *Ifd) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - childIfdIndex := make(map[string]*Ifd) - for _, childIfd := range ifd.children { - childIfdIndex[childIfd.ifdIdentity.UnindexedString()] = childIfd - } - - ifd.childIfdIndex = childIfdIndex - - for _, childIfd := range ifd.children { - err := ie.setChildrenIndex(childIfd) - log.PanicIf(err) - } - - return nil -} - -// FurthestOffset returns the furthest offset visited in the EXIF blob. This -// *does not* account for the locations of any undefined tags since we always -// evaluate the furthest offset, whether or not the user wants to know it. -// -// We are not willing to incur the cost of actually parsing those tags just to -// know their length when there are still undefined tags that are out there -// that we still won't have any idea how to parse, thus making this an -// approximation regardless of how clever we get. -func (ie *IfdEnumerate) FurthestOffset() uint32 { - - // TODO(dustin): Add test - - return ie.furthestOffset -} - -// parseOneIfd is a hack to use an IE to parse a raw IFD block. Can be used for -// testing. The fqIfdPath ("fully-qualified IFD path") will be less qualified -// in that the numeric index will always be zero (the zeroth child) rather than -// the proper number (if its actually a sibling to the first child, for -// instance). -func parseOneIfd(ifdMapping *exifcommon.IfdMapping, tagIndex *TagIndex, ii *exifcommon.IfdIdentity, byteOrder binary.ByteOrder, ifdBlock []byte, visitor TagVisitorFn) (nextIfdOffset uint32, entries []*IfdTagEntry, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - ebs := NewExifReadSeekerWithBytes(ifdBlock) - - rs, err := ebs.GetReadSeeker(0) - log.PanicIf(err) - - bp, err := newByteParser(rs, byteOrder, 0) - if err != nil { - if err == ErrOffsetInvalid { - return 0, nil, err - } - - log.Panic(err) - } - - dummyEbs := NewExifReadSeekerWithBytes([]byte{}) - ie := NewIfdEnumerate(ifdMapping, tagIndex, dummyEbs, byteOrder) - - nextIfdOffset, entries, _, err = ie.parseIfd(ii, bp, visitor, true, nil) - log.PanicIf(err) - - return nextIfdOffset, entries, nil -} - -// parseOneTag is a hack to use an IE to parse a raw tag block. -func parseOneTag(ifdMapping *exifcommon.IfdMapping, tagIndex *TagIndex, ii *exifcommon.IfdIdentity, byteOrder binary.ByteOrder, tagBlock []byte) (ite *IfdTagEntry, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - ebs := NewExifReadSeekerWithBytes(tagBlock) - - rs, err := ebs.GetReadSeeker(0) - log.PanicIf(err) - - bp, err := newByteParser(rs, byteOrder, 0) - if err != nil { - if err == ErrOffsetInvalid { - return nil, err - } - - log.Panic(err) - } - - dummyEbs := NewExifReadSeekerWithBytes([]byte{}) - ie := NewIfdEnumerate(ifdMapping, tagIndex, dummyEbs, byteOrder) - - ite, err = ie.parseTag(ii, 0, bp) - log.PanicIf(err) - - err = ie.tagPostParse(ite, nil) - if err != nil { - if err == ErrTagNotFound { - return nil, err - } - - log.Panic(err) - } - - return ite, nil -} - -// FindIfdFromRootIfd returns the given `Ifd` given the root-IFD and path of the -// desired IFD. -func FindIfdFromRootIfd(rootIfd *Ifd, ifdPath string) (ifd *Ifd, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): !! Add test. - - lineage, err := rootIfd.ifdMapping.ResolvePath(ifdPath) - log.PanicIf(err) - - // Confirm the first IFD is our root IFD type, and then prune it because - // from then on we'll be searching down through our children. - - if len(lineage) == 0 { - log.Panicf("IFD path must be non-empty.") - } else if lineage[0].Name != exifcommon.IfdStandardIfdIdentity.Name() { - log.Panicf("First IFD path item must be [%s].", exifcommon.IfdStandardIfdIdentity.Name()) - } - - desiredRootIndex := lineage[0].Index - lineage = lineage[1:] - - // TODO(dustin): !! This is a poorly conceived fix that just doubles the work we already have to do below, which then interacts badly with the indices not being properly represented in the IFD-phrase. - // TODO(dustin): !! <-- However, we're not sure whether we shouldn't store a secondary IFD-path with the indices. Some IFDs may not necessarily restrict which IFD indices they can be a child of (only the IFD itself matters). Validation should be delegated to the caller. - thisIfd := rootIfd - for currentRootIndex := 0; currentRootIndex < desiredRootIndex; currentRootIndex++ { - if thisIfd.nextIfd == nil { - log.Panicf("Root-IFD index (%d) does not exist in the data.", currentRootIndex) - } - - thisIfd = thisIfd.nextIfd - } - - for _, itii := range lineage { - var hit *Ifd - for _, childIfd := range thisIfd.children { - if childIfd.ifdIdentity.TagId() == itii.TagId { - hit = childIfd - break - } - } - - // If we didn't find the child, add it. - if hit == nil { - log.Panicf("IFD [%s] in [%s] not found: %s", itii.Name, ifdPath, thisIfd.children) - } - - thisIfd = hit - - // If we didn't find the sibling, add it. - for i := 0; i < itii.Index; i++ { - if thisIfd.nextIfd == nil { - log.Panicf("IFD [%s] does not have (%d) occurrences/siblings", thisIfd.ifdIdentity.UnindexedString(), itii.Index) - } - - thisIfd = thisIfd.nextIfd - } - } - - return thisIfd, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_tag_entry.go b/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_tag_entry.go deleted file mode 100644 index ed6ba229..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/ifd_tag_entry.go +++ /dev/null @@ -1,298 +0,0 @@ -package exif - -import ( - "fmt" - "io" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" - "github.com/dsoprea/go-exif/v3/undefined" -) - -var ( - iteLogger = log.NewLogger("exif.ifd_tag_entry") -) - -// IfdTagEntry refers to a tag in the loaded EXIF block. -type IfdTagEntry struct { - tagId uint16 - tagIndex int - tagType exifcommon.TagTypePrimitive - unitCount uint32 - valueOffset uint32 - rawValueOffset []byte - - // childIfdName is the right most atom in the IFD-path. We need this to - // construct the fully-qualified IFD-path. - childIfdName string - - // childIfdPath is the IFD-path of the child if this tag represents a child - // IFD. - childIfdPath string - - // childFqIfdPath is the IFD-path of the child if this tag represents a - // child IFD. Includes indices. - childFqIfdPath string - - // TODO(dustin): !! IB's host the child-IBs directly in the tag, but that's not the case here. Refactor to accommodate it for a consistent experience. - - ifdIdentity *exifcommon.IfdIdentity - - isUnhandledUnknown bool - - rs io.ReadSeeker - byteOrder binary.ByteOrder - - tagName string -} - -func newIfdTagEntry(ii *exifcommon.IfdIdentity, tagId uint16, tagIndex int, tagType exifcommon.TagTypePrimitive, unitCount uint32, valueOffset uint32, rawValueOffset []byte, rs io.ReadSeeker, byteOrder binary.ByteOrder) *IfdTagEntry { - return &IfdTagEntry{ - ifdIdentity: ii, - tagId: tagId, - tagIndex: tagIndex, - tagType: tagType, - unitCount: unitCount, - valueOffset: valueOffset, - rawValueOffset: rawValueOffset, - rs: rs, - byteOrder: byteOrder, - } -} - -// String returns a stringified representation of the struct. -func (ite *IfdTagEntry) String() string { - return fmt.Sprintf("IfdTagEntry", ite.ifdIdentity.String(), ite.tagId, ite.tagType.String(), ite.unitCount) -} - -// TagName returns the name of the tag. This is determined else and set after -// the parse (since it's not actually stored in the stream). If it's empty, it -// is because it is an unknown tag (nonstandard or otherwise unavailable in the -// tag-index). -func (ite *IfdTagEntry) TagName() string { - return ite.tagName -} - -// setTagName sets the tag-name. This provides the name for convenience and -// efficiency by determining it when most efficient while we're parsing rather -// than delegating it to the caller (or, worse, the user). -func (ite *IfdTagEntry) setTagName(tagName string) { - ite.tagName = tagName -} - -// IfdPath returns the fully-qualified path of the IFD that owns this tag. -func (ite *IfdTagEntry) IfdPath() string { - return ite.ifdIdentity.String() -} - -// TagId returns the ID of the tag that we represent. The combination of -// (IfdPath(), TagId()) is unique. -func (ite *IfdTagEntry) TagId() uint16 { - return ite.tagId -} - -// IsThumbnailOffset returns true if the tag has the IFD and tag-ID of a -// thumbnail offset. -func (ite *IfdTagEntry) IsThumbnailOffset() bool { - return ite.tagId == ThumbnailOffsetTagId && ite.ifdIdentity.String() == ThumbnailFqIfdPath -} - -// IsThumbnailSize returns true if the tag has the IFD and tag-ID of a thumbnail -// size. -func (ite *IfdTagEntry) IsThumbnailSize() bool { - return ite.tagId == ThumbnailSizeTagId && ite.ifdIdentity.String() == ThumbnailFqIfdPath -} - -// TagType is the type of value for this tag. -func (ite *IfdTagEntry) TagType() exifcommon.TagTypePrimitive { - return ite.tagType -} - -// updateTagType sets an alternatively interpreted tag-type. -func (ite *IfdTagEntry) updateTagType(tagType exifcommon.TagTypePrimitive) { - ite.tagType = tagType -} - -// UnitCount returns the unit-count of the tag's value. -func (ite *IfdTagEntry) UnitCount() uint32 { - return ite.unitCount -} - -// updateUnitCount sets an alternatively interpreted unit-count. -func (ite *IfdTagEntry) updateUnitCount(unitCount uint32) { - ite.unitCount = unitCount -} - -// getValueOffset is the four-byte offset converted to an integer to point to -// the location of its value in the EXIF block. The "get" parameter is obviously -// used in order to differentiate the naming of the method from the field. -func (ite *IfdTagEntry) getValueOffset() uint32 { - return ite.valueOffset -} - -// GetRawBytes renders a specific list of bytes from the value in this tag. -func (ite *IfdTagEntry) GetRawBytes() (rawBytes []byte, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext := ite.getValueContext() - - if ite.tagType == exifcommon.TypeUndefined { - value, err := exifundefined.Decode(valueContext) - if err != nil { - if err == exifcommon.ErrUnhandledUndefinedTypedTag { - ite.setIsUnhandledUnknown(true) - return nil, exifundefined.ErrUnparseableValue - } else if err == exifundefined.ErrUnparseableValue { - return nil, err - } else { - log.Panic(err) - } - } - - // Encode it back, in order to get the raw bytes. This is the best, - // general way to do it with an undefined tag. - - rawBytes, _, err := exifundefined.Encode(value, ite.byteOrder) - log.PanicIf(err) - - return rawBytes, nil - } - - rawBytes, err = valueContext.ReadRawEncoded() - log.PanicIf(err) - - return rawBytes, nil -} - -// Value returns the specific, parsed, typed value from the tag. -func (ite *IfdTagEntry) Value() (value interface{}, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext := ite.getValueContext() - - if ite.tagType == exifcommon.TypeUndefined { - var err error - - value, err = exifundefined.Decode(valueContext) - if err != nil { - if err == exifcommon.ErrUnhandledUndefinedTypedTag || err == exifundefined.ErrUnparseableValue { - return nil, err - } - - log.Panic(err) - } - } else { - var err error - - value, err = valueContext.Values() - log.PanicIf(err) - } - - return value, nil -} - -// Format returns the tag's value as a string. -func (ite *IfdTagEntry) Format() (phrase string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - value, err := ite.Value() - if err != nil { - if err == exifcommon.ErrUnhandledUndefinedTypedTag { - return exifundefined.UnparseableUnknownTagValuePlaceholder, nil - } else if err == exifundefined.ErrUnparseableValue { - return exifundefined.UnparseableHandledTagValuePlaceholder, nil - } - - log.Panic(err) - } - - phrase, err = exifcommon.FormatFromType(value, false) - log.PanicIf(err) - - return phrase, nil -} - -// FormatFirst returns the same as Format() but only the first item. -func (ite *IfdTagEntry) FormatFirst() (phrase string, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): We should add a convenience type "timestamp", to simplify translating to and from the physical ASCII and provide validation. - - value, err := ite.Value() - if err != nil { - if err == exifcommon.ErrUnhandledUndefinedTypedTag { - return exifundefined.UnparseableUnknownTagValuePlaceholder, nil - } - - log.Panic(err) - } - - phrase, err = exifcommon.FormatFromType(value, true) - log.PanicIf(err) - - return phrase, nil -} - -func (ite *IfdTagEntry) setIsUnhandledUnknown(isUnhandledUnknown bool) { - ite.isUnhandledUnknown = isUnhandledUnknown -} - -// SetChildIfd sets child-IFD information (if we represent a child IFD). -func (ite *IfdTagEntry) SetChildIfd(ii *exifcommon.IfdIdentity) { - ite.childFqIfdPath = ii.String() - ite.childIfdPath = ii.UnindexedString() - ite.childIfdName = ii.Name() -} - -// ChildIfdName returns the name of the child IFD -func (ite *IfdTagEntry) ChildIfdName() string { - return ite.childIfdName -} - -// ChildIfdPath returns the path of the child IFD. -func (ite *IfdTagEntry) ChildIfdPath() string { - return ite.childIfdPath -} - -// ChildFqIfdPath returns the complete path of the child IFD along with the -// numeric suffixes differentiating sibling occurrences of the same type. "0" -// indices are omitted. -func (ite *IfdTagEntry) ChildFqIfdPath() string { - return ite.childFqIfdPath -} - -// IfdIdentity returns the IfdIdentity associated with this tag. -func (ite *IfdTagEntry) IfdIdentity() *exifcommon.IfdIdentity { - return ite.ifdIdentity -} - -func (ite *IfdTagEntry) getValueContext() *exifcommon.ValueContext { - return exifcommon.NewValueContext( - ite.ifdIdentity.String(), - ite.tagId, - ite.unitCount, - ite.valueOffset, - ite.rawValueOffset, - ite.rs, - ite.tagType, - ite.byteOrder) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/package.go b/backend/vendor/github.com/dsoprea/go-exif/v3/package.go deleted file mode 100644 index 428f74e3..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/package.go +++ /dev/null @@ -1,8 +0,0 @@ -// Package exif parses raw EXIF information given a block of raw EXIF data. It -// can also construct new EXIF information, and provides tools for doing so. -// This package is not involved with the parsing of particular file-formats. -// -// The EXIF data must first be extracted and then provided to us. Conversely, -// when constructing new EXIF data, the caller is responsible for packaging -// this in whichever format they require. -package exif diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/tags.go b/backend/vendor/github.com/dsoprea/go-exif/v3/tags.go deleted file mode 100644 index aca902c5..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/tags.go +++ /dev/null @@ -1,475 +0,0 @@ -package exif - -import ( - "fmt" - "sync" - - "github.com/dsoprea/go-logging" - "gopkg.in/yaml.v2" - - "github.com/dsoprea/go-exif/v3/common" -) - -const ( - // IFD1 - - // ThumbnailFqIfdPath is the fully-qualified IFD path that the thumbnail - // must be found in. - ThumbnailFqIfdPath = "IFD1" - - // ThumbnailOffsetTagId returns the tag-ID of the thumbnail offset. - ThumbnailOffsetTagId = 0x0201 - - // ThumbnailSizeTagId returns the tag-ID of the thumbnail size. - ThumbnailSizeTagId = 0x0202 -) - -const ( - // GPS - - // TagGpsVersionId is the ID of the GPS version tag. - TagGpsVersionId = 0x0000 - - // TagLatitudeId is the ID of the GPS latitude tag. - TagLatitudeId = 0x0002 - - // TagLatitudeRefId is the ID of the GPS latitude orientation tag. - TagLatitudeRefId = 0x0001 - - // TagLongitudeId is the ID of the GPS longitude tag. - TagLongitudeId = 0x0004 - - // TagLongitudeRefId is the ID of the GPS longitude-orientation tag. - TagLongitudeRefId = 0x0003 - - // TagTimestampId is the ID of the GPS time tag. - TagTimestampId = 0x0007 - - // TagDatestampId is the ID of the GPS date tag. - TagDatestampId = 0x001d - - // TagAltitudeId is the ID of the GPS altitude tag. - TagAltitudeId = 0x0006 - - // TagAltitudeRefId is the ID of the GPS altitude-orientation tag. - TagAltitudeRefId = 0x0005 -) - -var ( - // tagsWithoutAlignment is a tag-lookup for tags whose value size won't - // necessarily be a multiple of its tag-type. - tagsWithoutAlignment = map[uint16]struct{}{ - // The thumbnail offset is stored as a long, but its data is a binary - // blob (not a slice of longs). - ThumbnailOffsetTagId: {}, - } -) - -var ( - tagsLogger = log.NewLogger("exif.tags") -) - -// File structures. - -type encodedTag struct { - // id is signed, here, because YAML doesn't have enough information to - // support unsigned. - Id int `yaml:"id"` - Name string `yaml:"name"` - TypeName string `yaml:"type_name"` - TypeNames []string `yaml:"type_names"` -} - -// Indexing structures. - -// IndexedTag describes one index lookup result. -type IndexedTag struct { - // Id is the tag-ID. - Id uint16 - - // Name is the tag name. - Name string - - // IfdPath is the proper IFD path of this tag. This is not fully-qualified. - IfdPath string - - // SupportedTypes is an unsorted list of allowed tag-types. - SupportedTypes []exifcommon.TagTypePrimitive -} - -// String returns a descriptive string. -func (it *IndexedTag) String() string { - return fmt.Sprintf("TAG", it.Id, it.Name, it.IfdPath) -} - -// IsName returns true if this tag matches the given tag name. -func (it *IndexedTag) IsName(ifdPath, name string) bool { - return it.Name == name && it.IfdPath == ifdPath -} - -// Is returns true if this tag matched the given tag ID. -func (it *IndexedTag) Is(ifdPath string, id uint16) bool { - return it.Id == id && it.IfdPath == ifdPath -} - -// GetEncodingType returns the largest type that this tag's value can occupy. -func (it *IndexedTag) GetEncodingType(value interface{}) exifcommon.TagTypePrimitive { - // For convenience, we handle encoding a `time.Time` directly. - if exifcommon.IsTime(value) == true { - // Timestamps are encoded as ASCII. - value = "" - } - - if len(it.SupportedTypes) == 0 { - log.Panicf("IndexedTag [%s] (%d) has no supported types.", it.IfdPath, it.Id) - } else if len(it.SupportedTypes) == 1 { - return it.SupportedTypes[0] - } - - supportsLong := false - supportsShort := false - supportsRational := false - supportsSignedRational := false - for _, supportedType := range it.SupportedTypes { - if supportedType == exifcommon.TypeLong { - supportsLong = true - } else if supportedType == exifcommon.TypeShort { - supportsShort = true - } else if supportedType == exifcommon.TypeRational { - supportsRational = true - } else if supportedType == exifcommon.TypeSignedRational { - supportsSignedRational = true - } - } - - // We specifically check for the cases that we know to expect. - - if supportsLong == true && supportsShort == true { - return exifcommon.TypeLong - } else if supportsRational == true && supportsSignedRational == true { - if value == nil { - log.Panicf("GetEncodingType: require value to be given") - } - - if _, ok := value.(exifcommon.SignedRational); ok == true { - return exifcommon.TypeSignedRational - } - - return exifcommon.TypeRational - } - - log.Panicf("WidestSupportedType() case is not handled for tag [%s] (0x%04x): %v", it.IfdPath, it.Id, it.SupportedTypes) - return 0 -} - -// DoesSupportType returns true if this tag can be found/decoded with this type. -func (it *IndexedTag) DoesSupportType(tagType exifcommon.TagTypePrimitive) bool { - // This is always a very small collection. So, we keep it unsorted. - for _, thisTagType := range it.SupportedTypes { - if thisTagType == tagType { - return true - } - } - - return false -} - -// TagIndex is a tag-lookup facility. -type TagIndex struct { - tagsByIfd map[string]map[uint16]*IndexedTag - tagsByIfdR map[string]map[string]*IndexedTag - - mutex sync.Mutex - - doUniversalSearch bool -} - -// NewTagIndex returns a new TagIndex struct. -func NewTagIndex() *TagIndex { - ti := new(TagIndex) - - ti.tagsByIfd = make(map[string]map[uint16]*IndexedTag) - ti.tagsByIfdR = make(map[string]map[string]*IndexedTag) - - return ti -} - -// SetUniversalSearch enables a fallback to matching tags under *any* IFD. -func (ti *TagIndex) SetUniversalSearch(flag bool) { - ti.doUniversalSearch = flag -} - -// UniversalSearch enables a fallback to matching tags under *any* IFD. -func (ti *TagIndex) UniversalSearch() bool { - return ti.doUniversalSearch -} - -// Add registers a new tag to be recognized during the parse. -func (ti *TagIndex) Add(it *IndexedTag) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ti.mutex.Lock() - defer ti.mutex.Unlock() - - // Store by ID. - - family, found := ti.tagsByIfd[it.IfdPath] - if found == false { - family = make(map[uint16]*IndexedTag) - ti.tagsByIfd[it.IfdPath] = family - } - - if _, found := family[it.Id]; found == true { - log.Panicf("tag-ID defined more than once for IFD [%s]: (%02x)", it.IfdPath, it.Id) - } - - family[it.Id] = it - - // Store by name. - - familyR, found := ti.tagsByIfdR[it.IfdPath] - if found == false { - familyR = make(map[string]*IndexedTag) - ti.tagsByIfdR[it.IfdPath] = familyR - } - - if _, found := familyR[it.Name]; found == true { - log.Panicf("tag-name defined more than once for IFD [%s]: (%s)", it.IfdPath, it.Name) - } - - familyR[it.Name] = it - - return nil -} - -func (ti *TagIndex) getOne(ifdPath string, id uint16) (it *IndexedTag, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if len(ti.tagsByIfd) == 0 { - err := LoadStandardTags(ti) - log.PanicIf(err) - } - - ti.mutex.Lock() - defer ti.mutex.Unlock() - - family, found := ti.tagsByIfd[ifdPath] - if found == false { - return nil, ErrTagNotFound - } - - it, found = family[id] - if found == false { - return nil, ErrTagNotFound - } - - return it, nil -} - -// Get returns information about the non-IFD tag given a tag ID. `ifdPath` must -// not be fully-qualified. -func (ti *TagIndex) Get(ii *exifcommon.IfdIdentity, id uint16) (it *IndexedTag, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - ifdPath := ii.UnindexedString() - - it, err = ti.getOne(ifdPath, id) - if err == nil { - return it, nil - } else if err != ErrTagNotFound { - log.Panic(err) - } - - if ti.doUniversalSearch == false { - return nil, ErrTagNotFound - } - - // We've been told to fallback to look for the tag in other IFDs. - - skipIfdPath := ii.UnindexedString() - - for currentIfdPath, _ := range ti.tagsByIfd { - if currentIfdPath == skipIfdPath { - // Skip the primary IFD, which has already been checked. - continue - } - - it, err = ti.getOne(currentIfdPath, id) - if err == nil { - tagsLogger.Warningf(nil, - "Found tag (0x%02x) in the wrong IFD: [%s] != [%s]", - id, currentIfdPath, ifdPath) - - return it, nil - } else if err != ErrTagNotFound { - log.Panic(err) - } - } - - return nil, ErrTagNotFound -} - -var ( - // tagGuessDefaultIfdIdentities describes which IFDs we'll look for a given - // tag-ID in, if it's not found where it's supposed to be. We suppose that - // Exif-IFD tags might be found in IFD0 or IFD1, or IFD0/IFD1 tags might be - // found in the Exif IFD. This is the only thing we've seen so far. So, this - // is the limit of our guessing. - tagGuessDefaultIfdIdentities = []*exifcommon.IfdIdentity{ - exifcommon.IfdExifStandardIfdIdentity, - exifcommon.IfdStandardIfdIdentity, - } -) - -// FindFirst looks for the given tag-ID in each of the given IFDs in the given -// order. If `fqIfdPaths` is `nil` then use a default search order. This defies -// the standard, which requires each tag to exist in certain IFDs. This is a -// contingency to make recommendations for malformed data. -// -// Things *can* end badly here, in that the same tag-ID in different IFDs might -// describe different data and different ata-types, and our decode might then -// produce binary and non-printable data. -func (ti *TagIndex) FindFirst(id uint16, typeId exifcommon.TagTypePrimitive, ifdIdentities []*exifcommon.IfdIdentity) (it *IndexedTag, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if ifdIdentities == nil { - ifdIdentities = tagGuessDefaultIfdIdentities - } - - for _, ii := range ifdIdentities { - it, err := ti.Get(ii, id) - if err != nil { - if err == ErrTagNotFound { - continue - } - - log.Panic(err) - } - - // Even though the tag might be mislocated, the type should still be the - // same. Check this so we don't accidentally end-up on a complete - // irrelevant tag with a totally different data type. This attempts to - // mitigate producing garbage. - for _, supportedType := range it.SupportedTypes { - if supportedType == typeId { - return it, nil - } - } - } - - return nil, ErrTagNotFound -} - -// GetWithName returns information about the non-IFD tag given a tag name. -func (ti *TagIndex) GetWithName(ii *exifcommon.IfdIdentity, name string) (it *IndexedTag, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if len(ti.tagsByIfdR) == 0 { - err := LoadStandardTags(ti) - log.PanicIf(err) - } - - ifdPath := ii.UnindexedString() - - it, found := ti.tagsByIfdR[ifdPath][name] - if found != true { - log.Panic(ErrTagNotFound) - } - - return it, nil -} - -// LoadStandardTags registers the tags that all devices/applications should -// support. -func LoadStandardTags(ti *TagIndex) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // Read static data. - - encodedIfds := make(map[string][]encodedTag) - - err = yaml.Unmarshal([]byte(tagsYaml), encodedIfds) - log.PanicIf(err) - - // Load structure. - - count := 0 - for ifdPath, tags := range encodedIfds { - for _, tagInfo := range tags { - tagId := uint16(tagInfo.Id) - tagName := tagInfo.Name - tagTypeName := tagInfo.TypeName - tagTypeNames := tagInfo.TypeNames - - if tagTypeNames == nil { - if tagTypeName == "" { - log.Panicf("no tag-types were given when registering standard tag [%s] (0x%04x) [%s]", ifdPath, tagId, tagName) - } - - tagTypeNames = []string{ - tagTypeName, - } - } else if tagTypeName != "" { - log.Panicf("both 'type_names' and 'type_name' were given when registering standard tag [%s] (0x%04x) [%s]", ifdPath, tagId, tagName) - } - - tagTypes := make([]exifcommon.TagTypePrimitive, 0) - for _, tagTypeName := range tagTypeNames { - - // TODO(dustin): Discard unsupported types. This helps us with non-standard types that have actually been found in real data, that we ignore for right now. e.g. SSHORT, FLOAT, DOUBLE - tagTypeId, found := exifcommon.GetTypeByName(tagTypeName) - if found == false { - tagsLogger.Warningf(nil, "Type [%s] for tag [%s] being loaded is not valid and is being ignored.", tagTypeName, tagName) - continue - } - - tagTypes = append(tagTypes, tagTypeId) - } - - if len(tagTypes) == 0 { - tagsLogger.Warningf(nil, "Tag [%s] (0x%04x) [%s] being loaded does not have any supported types and will not be registered.", ifdPath, tagId, tagName) - continue - } - - it := &IndexedTag{ - IfdPath: ifdPath, - Id: tagId, - Name: tagName, - SupportedTypes: tagTypes, - } - - err = ti.Add(it) - log.PanicIf(err) - - count++ - } - } - - tagsLogger.Debugf(nil, "(%d) tags loaded.", count) - - return nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/tags_data.go b/backend/vendor/github.com/dsoprea/go-exif/v3/tags_data.go deleted file mode 100644 index dcf0cc4f..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/tags_data.go +++ /dev/null @@ -1,968 +0,0 @@ -package exif - -var ( - // From assets/tags.yaml . Needs to be here so it's embedded in the binary. - tagsYaml = ` -# Notes: -# -# This file was produced from http://www.exiv2.org/tags.html, using the included -# tool, though that document appears to have some duplicates when all IDs are -# supposed to be unique (EXIF information only has IDs, not IFDs; IFDs are -# determined by our pre-existing knowledge of those tags). -# -# The webpage that we've produced this file from appears to indicate that -# ImageWidth is represented by both 0x0100 and 0x0001 depending on whether the -# encoding is RGB or YCbCr. -IFD/Exif: -- id: 0x829a - name: ExposureTime - type_name: RATIONAL -- id: 0x829d - name: FNumber - type_name: RATIONAL -- id: 0x8822 - name: ExposureProgram - type_name: SHORT -- id: 0x8824 - name: SpectralSensitivity - type_name: ASCII -- id: 0x8827 - name: ISOSpeedRatings - type_name: SHORT -- id: 0x8828 - name: OECF - type_name: UNDEFINED -- id: 0x8830 - name: SensitivityType - type_name: SHORT -- id: 0x8831 - name: StandardOutputSensitivity - type_name: LONG -- id: 0x8832 - name: RecommendedExposureIndex - type_name: LONG -- id: 0x8833 - name: ISOSpeed - type_name: LONG -- id: 0x8834 - name: ISOSpeedLatitudeyyy - type_name: LONG -- id: 0x8835 - name: ISOSpeedLatitudezzz - type_name: LONG -- id: 0x9000 - name: ExifVersion - type_name: UNDEFINED -- id: 0x9003 - name: DateTimeOriginal - type_name: ASCII -- id: 0x9004 - name: DateTimeDigitized - type_name: ASCII -- id: 0x9010 - name: OffsetTime - type_name: ASCII -- id: 0x9011 - name: OffsetTimeOriginal - type_name: ASCII -- id: 0x9012 - name: OffsetTimeDigitized - type_name: ASCII -- id: 0x9101 - name: ComponentsConfiguration - type_name: UNDEFINED -- id: 0x9102 - name: CompressedBitsPerPixel - type_name: RATIONAL -- id: 0x9201 - name: ShutterSpeedValue - type_name: SRATIONAL -- id: 0x9202 - name: ApertureValue - type_name: RATIONAL -- id: 0x9203 - name: BrightnessValue - type_name: SRATIONAL -- id: 0x9204 - name: ExposureBiasValue - type_name: SRATIONAL -- id: 0x9205 - name: MaxApertureValue - type_name: RATIONAL -- id: 0x9206 - name: SubjectDistance - type_name: RATIONAL -- id: 0x9207 - name: MeteringMode - type_name: SHORT -- id: 0x9208 - name: LightSource - type_name: SHORT -- id: 0x9209 - name: Flash - type_name: SHORT -- id: 0x920a - name: FocalLength - type_name: RATIONAL -- id: 0x9214 - name: SubjectArea - type_name: SHORT -- id: 0x927c - name: MakerNote - type_name: UNDEFINED -- id: 0x9286 - name: UserComment - type_name: UNDEFINED -- id: 0x9290 - name: SubSecTime - type_name: ASCII -- id: 0x9291 - name: SubSecTimeOriginal - type_name: ASCII -- id: 0x9292 - name: SubSecTimeDigitized - type_name: ASCII -- id: 0xa000 - name: FlashpixVersion - type_name: UNDEFINED -- id: 0xa001 - name: ColorSpace - type_name: SHORT -- id: 0xa002 - name: PixelXDimension - type_names: [LONG, SHORT] -- id: 0xa003 - name: PixelYDimension - type_names: [LONG, SHORT] -- id: 0xa004 - name: RelatedSoundFile - type_name: ASCII -- id: 0xa005 - name: InteroperabilityTag - type_name: LONG -- id: 0xa20b - name: FlashEnergy - type_name: RATIONAL -- id: 0xa20c - name: SpatialFrequencyResponse - type_name: UNDEFINED -- id: 0xa20e - name: FocalPlaneXResolution - type_name: RATIONAL -- id: 0xa20f - name: FocalPlaneYResolution - type_name: RATIONAL -- id: 0xa210 - name: FocalPlaneResolutionUnit - type_name: SHORT -- id: 0xa214 - name: SubjectLocation - type_name: SHORT -- id: 0xa215 - name: ExposureIndex - type_name: RATIONAL -- id: 0xa217 - name: SensingMethod - type_name: SHORT -- id: 0xa300 - name: FileSource - type_name: UNDEFINED -- id: 0xa301 - name: SceneType - type_name: UNDEFINED -- id: 0xa302 - name: CFAPattern - type_name: UNDEFINED -- id: 0xa401 - name: CustomRendered - type_name: SHORT -- id: 0xa402 - name: ExposureMode - type_name: SHORT -- id: 0xa403 - name: WhiteBalance - type_name: SHORT -- id: 0xa404 - name: DigitalZoomRatio - type_name: RATIONAL -- id: 0xa405 - name: FocalLengthIn35mmFilm - type_name: SHORT -- id: 0xa406 - name: SceneCaptureType - type_name: SHORT -- id: 0xa407 - name: GainControl - type_name: SHORT -- id: 0xa408 - name: Contrast - type_name: SHORT -- id: 0xa409 - name: Saturation - type_name: SHORT -- id: 0xa40a - name: Sharpness - type_name: SHORT -- id: 0xa40b - name: DeviceSettingDescription - type_name: UNDEFINED -- id: 0xa40c - name: SubjectDistanceRange - type_name: SHORT -- id: 0xa420 - name: ImageUniqueID - type_name: ASCII -- id: 0xa430 - name: CameraOwnerName - type_name: ASCII -- id: 0xa431 - name: BodySerialNumber - type_name: ASCII -- id: 0xa432 - name: LensSpecification - type_name: RATIONAL -- id: 0xa433 - name: LensMake - type_name: ASCII -- id: 0xa434 - name: LensModel - type_name: ASCII -- id: 0xa435 - name: LensSerialNumber - type_name: ASCII -IFD/GPSInfo: -- id: 0x0000 - name: GPSVersionID - type_name: BYTE -- id: 0x0001 - name: GPSLatitudeRef - type_name: ASCII -- id: 0x0002 - name: GPSLatitude - type_name: RATIONAL -- id: 0x0003 - name: GPSLongitudeRef - type_name: ASCII -- id: 0x0004 - name: GPSLongitude - type_name: RATIONAL -- id: 0x0005 - name: GPSAltitudeRef - type_name: BYTE -- id: 0x0006 - name: GPSAltitude - type_name: RATIONAL -- id: 0x0007 - name: GPSTimeStamp - type_name: RATIONAL -- id: 0x0008 - name: GPSSatellites - type_name: ASCII -- id: 0x0009 - name: GPSStatus - type_name: ASCII -- id: 0x000a - name: GPSMeasureMode - type_name: ASCII -- id: 0x000b - name: GPSDOP - type_name: RATIONAL -- id: 0x000c - name: GPSSpeedRef - type_name: ASCII -- id: 0x000d - name: GPSSpeed - type_name: RATIONAL -- id: 0x000e - name: GPSTrackRef - type_name: ASCII -- id: 0x000f - name: GPSTrack - type_name: RATIONAL -- id: 0x0010 - name: GPSImgDirectionRef - type_name: ASCII -- id: 0x0011 - name: GPSImgDirection - type_name: RATIONAL -- id: 0x0012 - name: GPSMapDatum - type_name: ASCII -- id: 0x0013 - name: GPSDestLatitudeRef - type_name: ASCII -- id: 0x0014 - name: GPSDestLatitude - type_name: RATIONAL -- id: 0x0015 - name: GPSDestLongitudeRef - type_name: ASCII -- id: 0x0016 - name: GPSDestLongitude - type_name: RATIONAL -- id: 0x0017 - name: GPSDestBearingRef - type_name: ASCII -- id: 0x0018 - name: GPSDestBearing - type_name: RATIONAL -- id: 0x0019 - name: GPSDestDistanceRef - type_name: ASCII -- id: 0x001a - name: GPSDestDistance - type_name: RATIONAL -- id: 0x001b - name: GPSProcessingMethod - type_name: UNDEFINED -- id: 0x001c - name: GPSAreaInformation - type_name: UNDEFINED -- id: 0x001d - name: GPSDateStamp - type_name: ASCII -- id: 0x001e - name: GPSDifferential - type_name: SHORT -IFD: -- id: 0x000b - name: ProcessingSoftware - type_name: ASCII -- id: 0x00fe - name: NewSubfileType - type_name: LONG -- id: 0x00ff - name: SubfileType - type_name: SHORT -- id: 0x0100 - name: ImageWidth - type_names: [LONG, SHORT] -- id: 0x0101 - name: ImageLength - type_names: [LONG, SHORT] -- id: 0x0102 - name: BitsPerSample - type_name: SHORT -- id: 0x0103 - name: Compression - type_name: SHORT -- id: 0x0106 - name: PhotometricInterpretation - type_name: SHORT -- id: 0x0107 - name: Thresholding - type_name: SHORT -- id: 0x0108 - name: CellWidth - type_name: SHORT -- id: 0x0109 - name: CellLength - type_name: SHORT -- id: 0x010a - name: FillOrder - type_name: SHORT -- id: 0x010d - name: DocumentName - type_name: ASCII -- id: 0x010e - name: ImageDescription - type_name: ASCII -- id: 0x010f - name: Make - type_name: ASCII -- id: 0x0110 - name: Model - type_name: ASCII -- id: 0x0111 - name: StripOffsets - type_names: [LONG, SHORT] -- id: 0x0112 - name: Orientation - type_name: SHORT -- id: 0x0115 - name: SamplesPerPixel - type_name: SHORT -- id: 0x0116 - name: RowsPerStrip - type_names: [LONG, SHORT] -- id: 0x0117 - name: StripByteCounts - type_names: [LONG, SHORT] -- id: 0x011a - name: XResolution - type_name: RATIONAL -- id: 0x011b - name: YResolution - type_name: RATIONAL -- id: 0x011c - name: PlanarConfiguration - type_name: SHORT -- id: 0x0122 - name: GrayResponseUnit - type_name: SHORT -- id: 0x0123 - name: GrayResponseCurve - type_name: SHORT -- id: 0x0124 - name: T4Options - type_name: LONG -- id: 0x0125 - name: T6Options - type_name: LONG -- id: 0x0128 - name: ResolutionUnit - type_name: SHORT -- id: 0x0129 - name: PageNumber - type_name: SHORT -- id: 0x012d - name: TransferFunction - type_name: SHORT -- id: 0x0131 - name: Software - type_name: ASCII -- id: 0x0132 - name: DateTime - type_name: ASCII -- id: 0x013b - name: Artist - type_name: ASCII -- id: 0x013c - name: HostComputer - type_name: ASCII -- id: 0x013d - name: Predictor - type_name: SHORT -- id: 0x013e - name: WhitePoint - type_name: RATIONAL -- id: 0x013f - name: PrimaryChromaticities - type_name: RATIONAL -- id: 0x0140 - name: ColorMap - type_name: SHORT -- id: 0x0141 - name: HalftoneHints - type_name: SHORT -- id: 0x0142 - name: TileWidth - type_name: SHORT -- id: 0x0143 - name: TileLength - type_name: SHORT -- id: 0x0144 - name: TileOffsets - type_name: SHORT -- id: 0x0145 - name: TileByteCounts - type_name: SHORT -- id: 0x014a - name: SubIFDs - type_name: LONG -- id: 0x014c - name: InkSet - type_name: SHORT -- id: 0x014d - name: InkNames - type_name: ASCII -- id: 0x014e - name: NumberOfInks - type_name: SHORT -- id: 0x0150 - name: DotRange - type_name: BYTE -- id: 0x0151 - name: TargetPrinter - type_name: ASCII -- id: 0x0152 - name: ExtraSamples - type_name: SHORT -- id: 0x0153 - name: SampleFormat - type_name: SHORT -- id: 0x0154 - name: SMinSampleValue - type_name: SHORT -- id: 0x0155 - name: SMaxSampleValue - type_name: SHORT -- id: 0x0156 - name: TransferRange - type_name: SHORT -- id: 0x0157 - name: ClipPath - type_name: BYTE -- id: 0x015a - name: Indexed - type_name: SHORT -- id: 0x015b - name: JPEGTables - type_name: UNDEFINED -- id: 0x015f - name: OPIProxy - type_name: SHORT -- id: 0x0200 - name: JPEGProc - type_name: LONG -- id: 0x0201 - name: JPEGInterchangeFormat - type_name: LONG -- id: 0x0202 - name: JPEGInterchangeFormatLength - type_name: LONG -- id: 0x0203 - name: JPEGRestartInterval - type_name: SHORT -- id: 0x0205 - name: JPEGLosslessPredictors - type_name: SHORT -- id: 0x0206 - name: JPEGPointTransforms - type_name: SHORT -- id: 0x0207 - name: JPEGQTables - type_name: LONG -- id: 0x0208 - name: JPEGDCTables - type_name: LONG -- id: 0x0209 - name: JPEGACTables - type_name: LONG -- id: 0x0211 - name: YCbCrCoefficients - type_name: RATIONAL -- id: 0x0212 - name: YCbCrSubSampling - type_name: SHORT -- id: 0x0213 - name: YCbCrPositioning - type_name: SHORT -- id: 0x0214 - name: ReferenceBlackWhite - type_name: RATIONAL -- id: 0x02bc - name: XMLPacket - type_name: BYTE -- id: 0x4746 - name: Rating - type_name: SHORT -- id: 0x4749 - name: RatingPercent - type_name: SHORT -- id: 0x800d - name: ImageID - type_name: ASCII -- id: 0x828d - name: CFARepeatPatternDim - type_name: SHORT -- id: 0x828e - name: CFAPattern - type_name: BYTE -- id: 0x828f - name: BatteryLevel - type_name: RATIONAL -- id: 0x8298 - name: Copyright - type_name: ASCII -- id: 0x829a - name: ExposureTime -# NOTE(dustin): SRATIONAL isn't mentioned in the standard, but we have seen it in real data. - type_names: [RATIONAL, SRATIONAL] -- id: 0x829d - name: FNumber -# NOTE(dustin): SRATIONAL isn't mentioned in the standard, but we have seen it in real data. - type_names: [RATIONAL, SRATIONAL] -- id: 0x83bb - name: IPTCNAA - type_name: LONG -- id: 0x8649 - name: ImageResources - type_name: BYTE -- id: 0x8769 - name: ExifTag - type_name: LONG -- id: 0x8773 - name: InterColorProfile - type_name: UNDEFINED -- id: 0x8822 - name: ExposureProgram - type_name: SHORT -- id: 0x8824 - name: SpectralSensitivity - type_name: ASCII -- id: 0x8825 - name: GPSTag - type_name: LONG -- id: 0x8827 - name: ISOSpeedRatings - type_name: SHORT -- id: 0x8828 - name: OECF - type_name: UNDEFINED -- id: 0x8829 - name: Interlace - type_name: SHORT -- id: 0x882b - name: SelfTimerMode - type_name: SHORT -- id: 0x9003 - name: DateTimeOriginal - type_name: ASCII -- id: 0x9102 - name: CompressedBitsPerPixel - type_name: RATIONAL -- id: 0x9201 - name: ShutterSpeedValue - type_name: SRATIONAL -- id: 0x9202 - name: ApertureValue - type_name: RATIONAL -- id: 0x9203 - name: BrightnessValue - type_name: SRATIONAL -- id: 0x9204 - name: ExposureBiasValue - type_name: SRATIONAL -- id: 0x9205 - name: MaxApertureValue - type_name: RATIONAL -- id: 0x9206 - name: SubjectDistance - type_name: SRATIONAL -- id: 0x9207 - name: MeteringMode - type_name: SHORT -- id: 0x9208 - name: LightSource - type_name: SHORT -- id: 0x9209 - name: Flash - type_name: SHORT -- id: 0x920a - name: FocalLength - type_name: RATIONAL -- id: 0x920b - name: FlashEnergy - type_name: RATIONAL -- id: 0x920c - name: SpatialFrequencyResponse - type_name: UNDEFINED -- id: 0x920d - name: Noise - type_name: UNDEFINED -- id: 0x920e - name: FocalPlaneXResolution - type_name: RATIONAL -- id: 0x920f - name: FocalPlaneYResolution - type_name: RATIONAL -- id: 0x9210 - name: FocalPlaneResolutionUnit - type_name: SHORT -- id: 0x9211 - name: ImageNumber - type_name: LONG -- id: 0x9212 - name: SecurityClassification - type_name: ASCII -- id: 0x9213 - name: ImageHistory - type_name: ASCII -- id: 0x9214 - name: SubjectLocation - type_name: SHORT -- id: 0x9215 - name: ExposureIndex - type_name: RATIONAL -- id: 0x9216 - name: TIFFEPStandardID - type_name: BYTE -- id: 0x9217 - name: SensingMethod - type_name: SHORT -- id: 0x9c9b - name: XPTitle - type_name: BYTE -- id: 0x9c9c - name: XPComment - type_name: BYTE -- id: 0x9c9d - name: XPAuthor - type_name: BYTE -- id: 0x9c9e - name: XPKeywords - type_name: BYTE -- id: 0x9c9f - name: XPSubject - type_name: BYTE -- id: 0xc4a5 - name: PrintImageMatching - type_name: UNDEFINED -- id: 0xc612 - name: DNGVersion - type_name: BYTE -- id: 0xc613 - name: DNGBackwardVersion - type_name: BYTE -- id: 0xc614 - name: UniqueCameraModel - type_name: ASCII -- id: 0xc615 - name: LocalizedCameraModel - type_name: BYTE -- id: 0xc616 - name: CFAPlaneColor - type_name: BYTE -- id: 0xc617 - name: CFALayout - type_name: SHORT -- id: 0xc618 - name: LinearizationTable - type_name: SHORT -- id: 0xc619 - name: BlackLevelRepeatDim - type_name: SHORT -- id: 0xc61a - name: BlackLevel - type_name: RATIONAL -- id: 0xc61b - name: BlackLevelDeltaH - type_name: SRATIONAL -- id: 0xc61c - name: BlackLevelDeltaV - type_name: SRATIONAL -- id: 0xc61d - name: WhiteLevel - type_name: SHORT -- id: 0xc61e - name: DefaultScale - type_name: RATIONAL -- id: 0xc61f - name: DefaultCropOrigin - type_name: SHORT -- id: 0xc620 - name: DefaultCropSize - type_name: SHORT -- id: 0xc621 - name: ColorMatrix1 - type_name: SRATIONAL -- id: 0xc622 - name: ColorMatrix2 - type_name: SRATIONAL -- id: 0xc623 - name: CameraCalibration1 - type_name: SRATIONAL -- id: 0xc624 - name: CameraCalibration2 - type_name: SRATIONAL -- id: 0xc625 - name: ReductionMatrix1 - type_name: SRATIONAL -- id: 0xc626 - name: ReductionMatrix2 - type_name: SRATIONAL -- id: 0xc627 - name: AnalogBalance - type_name: RATIONAL -- id: 0xc628 - name: AsShotNeutral - type_name: SHORT -- id: 0xc629 - name: AsShotWhiteXY - type_name: RATIONAL -- id: 0xc62a - name: BaselineExposure - type_name: SRATIONAL -- id: 0xc62b - name: BaselineNoise - type_name: RATIONAL -- id: 0xc62c - name: BaselineSharpness - type_name: RATIONAL -- id: 0xc62d - name: BayerGreenSplit - type_name: LONG -- id: 0xc62e - name: LinearResponseLimit - type_name: RATIONAL -- id: 0xc62f - name: CameraSerialNumber - type_name: ASCII -- id: 0xc630 - name: LensInfo - type_name: RATIONAL -- id: 0xc631 - name: ChromaBlurRadius - type_name: RATIONAL -- id: 0xc632 - name: AntiAliasStrength - type_name: RATIONAL -- id: 0xc633 - name: ShadowScale - type_name: SRATIONAL -- id: 0xc634 - name: DNGPrivateData - type_name: BYTE -- id: 0xc635 - name: MakerNoteSafety - type_name: SHORT -- id: 0xc65a - name: CalibrationIlluminant1 - type_name: SHORT -- id: 0xc65b - name: CalibrationIlluminant2 - type_name: SHORT -- id: 0xc65c - name: BestQualityScale - type_name: RATIONAL -- id: 0xc65d - name: RawDataUniqueID - type_name: BYTE -- id: 0xc68b - name: OriginalRawFileName - type_name: BYTE -- id: 0xc68c - name: OriginalRawFileData - type_name: UNDEFINED -- id: 0xc68d - name: ActiveArea - type_name: SHORT -- id: 0xc68e - name: MaskedAreas - type_name: SHORT -- id: 0xc68f - name: AsShotICCProfile - type_name: UNDEFINED -- id: 0xc690 - name: AsShotPreProfileMatrix - type_name: SRATIONAL -- id: 0xc691 - name: CurrentICCProfile - type_name: UNDEFINED -- id: 0xc692 - name: CurrentPreProfileMatrix - type_name: SRATIONAL -- id: 0xc6bf - name: ColorimetricReference - type_name: SHORT -- id: 0xc6f3 - name: CameraCalibrationSignature - type_name: BYTE -- id: 0xc6f4 - name: ProfileCalibrationSignature - type_name: BYTE -- id: 0xc6f6 - name: AsShotProfileName - type_name: BYTE -- id: 0xc6f7 - name: NoiseReductionApplied - type_name: RATIONAL -- id: 0xc6f8 - name: ProfileName - type_name: BYTE -- id: 0xc6f9 - name: ProfileHueSatMapDims - type_name: LONG -- id: 0xc6fd - name: ProfileEmbedPolicy - type_name: LONG -- id: 0xc6fe - name: ProfileCopyright - type_name: BYTE -- id: 0xc714 - name: ForwardMatrix1 - type_name: SRATIONAL -- id: 0xc715 - name: ForwardMatrix2 - type_name: SRATIONAL -- id: 0xc716 - name: PreviewApplicationName - type_name: BYTE -- id: 0xc717 - name: PreviewApplicationVersion - type_name: BYTE -- id: 0xc718 - name: PreviewSettingsName - type_name: BYTE -- id: 0xc719 - name: PreviewSettingsDigest - type_name: BYTE -- id: 0xc71a - name: PreviewColorSpace - type_name: LONG -- id: 0xc71b - name: PreviewDateTime - type_name: ASCII -- id: 0xc71c - name: RawImageDigest - type_name: UNDEFINED -- id: 0xc71d - name: OriginalRawFileDigest - type_name: UNDEFINED -- id: 0xc71e - name: SubTileBlockSize - type_name: LONG -- id: 0xc71f - name: RowInterleaveFactor - type_name: LONG -- id: 0xc725 - name: ProfileLookTableDims - type_name: LONG -- id: 0xc740 - name: OpcodeList1 - type_name: UNDEFINED -- id: 0xc741 - name: OpcodeList2 - type_name: UNDEFINED -- id: 0xc74e - name: OpcodeList3 - type_name: UNDEFINED -# This tag may be used to specify the size of raster pixel spacing in the -# model space units, when the raster space can be embedded in the model space -# coordinate system without rotation, and consists of the following 3 values: -# ModelPixelScaleTag = (ScaleX, ScaleY, ScaleZ) -# where ScaleX and ScaleY give the horizontal and vertical spacing of raster -# pixels. The ScaleZ is primarily used to map the pixel value of a digital -# elevation model into the correct Z-scale, and so for most other purposes -# this value should be zero (since most model spaces are 2-D, with Z=0). -# Source: http://geotiff.maptools.org/spec/geotiff2.6.html#2.6.1 -- id: 0x830e - name: ModelPixelScaleTag - type_name: DOUBLE -# This tag stores raster->model tiepoint pairs in the order -# ModelTiepointTag = (...,I,J,K, X,Y,Z...), -# where (I,J,K) is the point at location (I,J) in raster space with -# pixel-value K, and (X,Y,Z) is a vector in model space. In most cases the -# model space is only two-dimensional, in which case both K and Z should be -# set to zero; this third dimension is provided in anticipation of future -# support for 3D digital elevation models and vertical coordinate systems. -# Source: http://geotiff.maptools.org/spec/geotiff2.6.html#2.6.1 -- id: 0x8482 - name: ModelTiepointTag - type_name: DOUBLE -# This tag may be used to specify the transformation matrix between the -# raster space (and its dependent pixel-value space) and the (possibly 3D) -# model space. -# Source: http://geotiff.maptools.org/spec/geotiff2.6.html#2.6.1 -- id: 0x85d8 - name: ModelTransformationTag - type_name: DOUBLE -IFD/Exif/Iop: -- id: 0x0001 - name: InteroperabilityIndex - type_name: ASCII -- id: 0x0002 - name: InteroperabilityVersion - type_name: UNDEFINED -- id: 0x1000 - name: RelatedImageFileFormat - type_name: ASCII -- id: 0x1001 - name: RelatedImageWidth - type_name: LONG -- id: 0x1002 - name: RelatedImageLength - type_name: LONG -` -) diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/testing_common.go b/backend/vendor/github.com/dsoprea/go-exif/v3/testing_common.go deleted file mode 100644 index 06127643..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/testing_common.go +++ /dev/null @@ -1,188 +0,0 @@ -package exif - -import ( - "path" - "reflect" - "testing" - - "io/ioutil" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -var ( - testExifData []byte -) - -func getExifSimpleTestIb() *IfdBuilder { - defer func() { - if state := recover(); state != nil { - err := log.Wrap(state.(error)) - log.Panic(err) - } - }() - - im := exifcommon.NewIfdMapping() - - err := exifcommon.LoadStandardIfds(im) - log.PanicIf(err) - - ti := NewTagIndex() - ib := NewIfdBuilder(im, ti, exifcommon.IfdStandardIfdIdentity, exifcommon.TestDefaultByteOrder) - - err = ib.AddStandard(0x000b, "asciivalue") - log.PanicIf(err) - - err = ib.AddStandard(0x00ff, []uint16{0x1122}) - log.PanicIf(err) - - err = ib.AddStandard(0x0100, []uint32{0x33445566}) - log.PanicIf(err) - - err = ib.AddStandard(0x013e, []exifcommon.Rational{{Numerator: 0x11112222, Denominator: 0x33334444}}) - log.PanicIf(err) - - return ib -} - -func getExifSimpleTestIbBytes() []byte { - defer func() { - if state := recover(); state != nil { - err := log.Wrap(state.(error)) - log.Panic(err) - } - }() - - im := exifcommon.NewIfdMapping() - - err := exifcommon.LoadStandardIfds(im) - log.PanicIf(err) - - ti := NewTagIndex() - ib := NewIfdBuilder(im, ti, exifcommon.IfdStandardIfdIdentity, exifcommon.TestDefaultByteOrder) - - err = ib.AddStandard(0x000b, "asciivalue") - log.PanicIf(err) - - err = ib.AddStandard(0x00ff, []uint16{0x1122}) - log.PanicIf(err) - - err = ib.AddStandard(0x0100, []uint32{0x33445566}) - log.PanicIf(err) - - err = ib.AddStandard(0x013e, []exifcommon.Rational{{Numerator: 0x11112222, Denominator: 0x33334444}}) - log.PanicIf(err) - - ibe := NewIfdByteEncoder() - - exifData, err := ibe.EncodeToExif(ib) - log.PanicIf(err) - - return exifData -} - -func validateExifSimpleTestIb(exifData []byte, t *testing.T) { - defer func() { - if state := recover(); state != nil { - err := log.Wrap(state.(error)) - log.Panic(err) - } - }() - - im := exifcommon.NewIfdMapping() - - err := exifcommon.LoadStandardIfds(im) - log.PanicIf(err) - - ti := NewTagIndex() - - eh, index, err := Collect(im, ti, exifData) - log.PanicIf(err) - - if eh.ByteOrder != exifcommon.TestDefaultByteOrder { - t.Fatalf("EXIF byte-order is not correct: %v", eh.ByteOrder) - } else if eh.FirstIfdOffset != ExifDefaultFirstIfdOffset { - t.Fatalf("EXIF first IFD-offset not correct: (0x%02x)", eh.FirstIfdOffset) - } - - if len(index.Ifds) != 1 { - t.Fatalf("There wasn't exactly one IFD decoded: (%d)", len(index.Ifds)) - } - - ifd := index.RootIfd - - if ifd.ByteOrder() != exifcommon.TestDefaultByteOrder { - t.Fatalf("IFD byte-order not correct.") - } else if ifd.ifdIdentity.UnindexedString() != exifcommon.IfdStandardIfdIdentity.UnindexedString() { - t.Fatalf("IFD name not correct.") - } else if ifd.ifdIdentity.Index() != 0 { - t.Fatalf("IFD index not zero: (%d)", ifd.ifdIdentity.Index()) - } else if ifd.Offset() != uint32(0x0008) { - t.Fatalf("IFD offset not correct.") - } else if len(ifd.Entries()) != 4 { - t.Fatalf("IFD number of entries not correct: (%d)", len(ifd.Entries())) - } else if ifd.nextIfdOffset != uint32(0) { - t.Fatalf("Next-IFD offset is non-zero.") - } else if ifd.nextIfd != nil { - t.Fatalf("Next-IFD pointer is non-nil.") - } - - // Verify the values by using the actual, original types (this is awesome). - - expected := []struct { - tagId uint16 - value interface{} - }{ - {tagId: 0x000b, value: "asciivalue"}, - {tagId: 0x00ff, value: []uint16{0x1122}}, - {tagId: 0x0100, value: []uint32{0x33445566}}, - {tagId: 0x013e, value: []exifcommon.Rational{{Numerator: 0x11112222, Denominator: 0x33334444}}}, - } - - for i, ite := range ifd.Entries() { - if ite.TagId() != expected[i].tagId { - t.Fatalf("Tag-ID for entry (%d) not correct: (0x%02x) != (0x%02x)", i, ite.TagId(), expected[i].tagId) - } - - value, err := ite.Value() - log.PanicIf(err) - - if reflect.DeepEqual(value, expected[i].value) != true { - t.Fatalf("Value for entry (%d) not correct: [%v] != [%v]", i, value, expected[i].value) - } - } -} - -func getTestImageFilepath() string { - assetsPath := exifcommon.GetTestAssetsPath() - testImageFilepath := path.Join(assetsPath, "NDM_8901.jpg") - return testImageFilepath -} - -func getTestExifData() []byte { - if testExifData == nil { - assetsPath := exifcommon.GetTestAssetsPath() - filepath := path.Join(assetsPath, "NDM_8901.jpg.exif") - - var err error - - testExifData, err = ioutil.ReadFile(filepath) - log.PanicIf(err) - } - - return testExifData -} - -func getTestGpsImageFilepath() string { - assetsPath := exifcommon.GetTestAssetsPath() - testGpsImageFilepath := path.Join(assetsPath, "gps.jpg") - return testGpsImageFilepath -} - -func getTestGeotiffFilepath() string { - assetsPath := exifcommon.GetTestAssetsPath() - testGeotiffFilepath := path.Join(assetsPath, "geotiff_example.tif") - return testGeotiffFilepath -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/README.md b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/README.md deleted file mode 100644 index d2caa6e5..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/README.md +++ /dev/null @@ -1,4 +0,0 @@ - -## 0xa40b - -The specification is not specific/clear enough to be handled. Without a working example ,we're deferring until some point in the future when either we or someone else has a better understanding. diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/accessor.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/accessor.go deleted file mode 100644 index 11a21e1f..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/accessor.go +++ /dev/null @@ -1,62 +0,0 @@ -package exifundefined - -import ( - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -// Encode encodes the given encodeable undefined value to bytes. -func Encode(value EncodeableValue, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - encoderName := value.EncoderName() - - encoder, found := encoders[encoderName] - if found == false { - log.Panicf("no encoder registered for type [%s]", encoderName) - } - - encoded, unitCount, err = encoder.Encode(value, byteOrder) - log.PanicIf(err) - - return encoded, unitCount, nil -} - -// Decode constructs a value from raw encoded bytes -func Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - uth := UndefinedTagHandle{ - IfdPath: valueContext.IfdPath(), - TagId: valueContext.TagId(), - } - - decoder, found := decoders[uth] - if found == false { - // We have no choice but to return the error. We have no way of knowing how - // much data there is without already knowing what data-type this tag is. - return nil, exifcommon.ErrUnhandledUndefinedTypedTag - } - - value, err = decoder.Decode(valueContext) - if err != nil { - if err == ErrUnparseableValue { - return nil, err - } - - log.Panic(err) - } - - return value, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_8828_oecf.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_8828_oecf.go deleted file mode 100644 index 26f3675a..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_8828_oecf.go +++ /dev/null @@ -1,148 +0,0 @@ -package exifundefined - -import ( - "bytes" - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type Tag8828Oecf struct { - Columns uint16 - Rows uint16 - ColumnNames []string - Values []exifcommon.SignedRational -} - -func (oecf Tag8828Oecf) String() string { - return fmt.Sprintf("Tag8828Oecf", oecf.Columns, oecf.Rows) -} - -func (oecf Tag8828Oecf) EncoderName() string { - return "Codec8828Oecf" -} - -type Codec8828Oecf struct { -} - -func (Codec8828Oecf) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test - - oecf, ok := value.(Tag8828Oecf) - if ok == false { - log.Panicf("can only encode a Tag8828Oecf") - } - - b := new(bytes.Buffer) - - err = binary.Write(b, byteOrder, oecf.Columns) - log.PanicIf(err) - - err = binary.Write(b, byteOrder, oecf.Rows) - log.PanicIf(err) - - for _, name := range oecf.ColumnNames { - _, err := b.Write([]byte(name)) - log.PanicIf(err) - - _, err = b.Write([]byte{0}) - log.PanicIf(err) - } - - ve := exifcommon.NewValueEncoder(byteOrder) - - ed, err := ve.Encode(oecf.Values) - log.PanicIf(err) - - _, err = b.Write(ed.Encoded) - log.PanicIf(err) - - return b.Bytes(), uint32(b.Len()), nil -} - -func (Codec8828Oecf) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test using known good data. - - valueContext.SetUndefinedValueType(exifcommon.TypeByte) - - valueBytes, err := valueContext.ReadBytes() - log.PanicIf(err) - - oecf := Tag8828Oecf{} - - oecf.Columns = valueContext.ByteOrder().Uint16(valueBytes[0:2]) - oecf.Rows = valueContext.ByteOrder().Uint16(valueBytes[2:4]) - - columnNames := make([]string, oecf.Columns) - - // startAt is where the current column name starts. - startAt := 4 - - // offset is our current position. - offset := startAt - - currentColumnNumber := uint16(0) - - for currentColumnNumber < oecf.Columns { - if valueBytes[offset] == 0 { - columnName := string(valueBytes[startAt:offset]) - if len(columnName) == 0 { - log.Panicf("SFR column (%d) has zero length", currentColumnNumber) - } - - columnNames[currentColumnNumber] = columnName - currentColumnNumber++ - - offset++ - startAt = offset - continue - } - - offset++ - } - - oecf.ColumnNames = columnNames - - rawRationalBytes := valueBytes[offset:] - - rationalSize := exifcommon.TypeSignedRational.Size() - if len(rawRationalBytes)%rationalSize > 0 { - log.Panicf("OECF signed-rationals not aligned: (%d) %% (%d) > 0", len(rawRationalBytes), rationalSize) - } - - rationalCount := len(rawRationalBytes) / rationalSize - - parser := new(exifcommon.Parser) - - byteOrder := valueContext.ByteOrder() - - items, err := parser.ParseSignedRationals(rawRationalBytes, uint32(rationalCount), byteOrder) - log.PanicIf(err) - - oecf.Values = items - - return oecf, nil -} - -func init() { - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0x8828, - Codec8828Oecf{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9000_exif_version.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9000_exif_version.go deleted file mode 100644 index 8f18c811..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9000_exif_version.go +++ /dev/null @@ -1,69 +0,0 @@ -package exifundefined - -import ( - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type Tag9000ExifVersion struct { - ExifVersion string -} - -func (Tag9000ExifVersion) EncoderName() string { - return "Codec9000ExifVersion" -} - -func (ev Tag9000ExifVersion) String() string { - return ev.ExifVersion -} - -type Codec9000ExifVersion struct { -} - -func (Codec9000ExifVersion) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - s, ok := value.(Tag9000ExifVersion) - if ok == false { - log.Panicf("can only encode a Tag9000ExifVersion") - } - - return []byte(s.ExifVersion), uint32(len(s.ExifVersion)), nil -} - -func (Codec9000ExifVersion) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeAsciiNoNul) - - valueString, err := valueContext.ReadAsciiNoNul() - log.PanicIf(err) - - ev := Tag9000ExifVersion{ - ExifVersion: valueString, - } - - return ev, nil -} - -func init() { - registerEncoder( - Tag9000ExifVersion{}, - Codec9000ExifVersion{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0x9000, - Codec9000ExifVersion{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9101_components_configuration.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9101_components_configuration.go deleted file mode 100644 index e357fe0a..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9101_components_configuration.go +++ /dev/null @@ -1,124 +0,0 @@ -package exifundefined - -import ( - "bytes" - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -const ( - TagUndefinedType_9101_ComponentsConfiguration_Channel_Y = 0x1 - TagUndefinedType_9101_ComponentsConfiguration_Channel_Cb = 0x2 - TagUndefinedType_9101_ComponentsConfiguration_Channel_Cr = 0x3 - TagUndefinedType_9101_ComponentsConfiguration_Channel_R = 0x4 - TagUndefinedType_9101_ComponentsConfiguration_Channel_G = 0x5 - TagUndefinedType_9101_ComponentsConfiguration_Channel_B = 0x6 -) - -const ( - TagUndefinedType_9101_ComponentsConfiguration_OTHER = iota - TagUndefinedType_9101_ComponentsConfiguration_RGB = iota - TagUndefinedType_9101_ComponentsConfiguration_YCBCR = iota -) - -var ( - TagUndefinedType_9101_ComponentsConfiguration_Names = map[int]string{ - TagUndefinedType_9101_ComponentsConfiguration_OTHER: "OTHER", - TagUndefinedType_9101_ComponentsConfiguration_RGB: "RGB", - TagUndefinedType_9101_ComponentsConfiguration_YCBCR: "YCBCR", - } - - TagUndefinedType_9101_ComponentsConfiguration_Configurations = map[int][]byte{ - TagUndefinedType_9101_ComponentsConfiguration_RGB: { - TagUndefinedType_9101_ComponentsConfiguration_Channel_R, - TagUndefinedType_9101_ComponentsConfiguration_Channel_G, - TagUndefinedType_9101_ComponentsConfiguration_Channel_B, - 0, - }, - - TagUndefinedType_9101_ComponentsConfiguration_YCBCR: { - TagUndefinedType_9101_ComponentsConfiguration_Channel_Y, - TagUndefinedType_9101_ComponentsConfiguration_Channel_Cb, - TagUndefinedType_9101_ComponentsConfiguration_Channel_Cr, - 0, - }, - } -) - -type TagExif9101ComponentsConfiguration struct { - ConfigurationId int - ConfigurationBytes []byte -} - -func (TagExif9101ComponentsConfiguration) EncoderName() string { - return "CodecExif9101ComponentsConfiguration" -} - -func (cc TagExif9101ComponentsConfiguration) String() string { - return fmt.Sprintf("Exif9101ComponentsConfiguration", TagUndefinedType_9101_ComponentsConfiguration_Names[cc.ConfigurationId], cc.ConfigurationBytes) -} - -type CodecExif9101ComponentsConfiguration struct { -} - -func (CodecExif9101ComponentsConfiguration) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - cc, ok := value.(TagExif9101ComponentsConfiguration) - if ok == false { - log.Panicf("can only encode a TagExif9101ComponentsConfiguration") - } - - return cc.ConfigurationBytes, uint32(len(cc.ConfigurationBytes)), nil -} - -func (CodecExif9101ComponentsConfiguration) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeByte) - - valueBytes, err := valueContext.ReadBytes() - log.PanicIf(err) - - for configurationId, configurationBytes := range TagUndefinedType_9101_ComponentsConfiguration_Configurations { - if bytes.Equal(configurationBytes, valueBytes) == true { - cc := TagExif9101ComponentsConfiguration{ - ConfigurationId: configurationId, - ConfigurationBytes: valueBytes, - } - - return cc, nil - } - } - - cc := TagExif9101ComponentsConfiguration{ - ConfigurationId: TagUndefinedType_9101_ComponentsConfiguration_OTHER, - ConfigurationBytes: valueBytes, - } - - return cc, nil -} - -func init() { - registerEncoder( - TagExif9101ComponentsConfiguration{}, - CodecExif9101ComponentsConfiguration{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0x9101, - CodecExif9101ComponentsConfiguration{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_927C_maker_note.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_927C_maker_note.go deleted file mode 100644 index f9cd2788..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_927C_maker_note.go +++ /dev/null @@ -1,114 +0,0 @@ -package exifundefined - -import ( - "fmt" - "strings" - - "crypto/sha1" - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type Tag927CMakerNote struct { - MakerNoteType []byte - MakerNoteBytes []byte -} - -func (Tag927CMakerNote) EncoderName() string { - return "Codec927CMakerNote" -} - -func (mn Tag927CMakerNote) String() string { - parts := make([]string, len(mn.MakerNoteType)) - - for i, c := range mn.MakerNoteType { - parts[i] = fmt.Sprintf("%02x", c) - } - - h := sha1.New() - - _, err := h.Write(mn.MakerNoteBytes) - log.PanicIf(err) - - digest := h.Sum(nil) - - return fmt.Sprintf("MakerNote", strings.Join(parts, " "), len(mn.MakerNoteBytes), digest) -} - -type Codec927CMakerNote struct { -} - -func (Codec927CMakerNote) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - mn, ok := value.(Tag927CMakerNote) - if ok == false { - log.Panicf("can only encode a Tag927CMakerNote") - } - - // TODO(dustin): Confirm this size against the specification. - - return mn.MakerNoteBytes, uint32(len(mn.MakerNoteBytes)), nil -} - -func (Codec927CMakerNote) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // MakerNote - // TODO(dustin): !! This is the Wild Wild West. This very well might be a child IFD, but any and all OEM's define their own formats. If we're going to be writing changes and this is complete EXIF (which may not have the first eight bytes), it might be fine. However, if these are just IFDs they'll be relative to the main EXIF, this will invalidate the MakerNote data for IFDs and any other implementations that use offsets unless we can interpret them all. It be best to return to this later and just exclude this from being written for now, though means a loss of a wealth of image metadata. - // -> We can also just blindly try to interpret as an IFD and just validate that it's looks good (maybe it will even have a 'next ifd' pointer that we can validate is 0x0). - - valueContext.SetUndefinedValueType(exifcommon.TypeByte) - - valueBytes, err := valueContext.ReadBytes() - log.PanicIf(err) - - // TODO(dustin): Doesn't work, but here as an example. - // ie := NewIfdEnumerate(valueBytes, byteOrder) - - // // TODO(dustin): !! Validate types (might have proprietary types, but it might be worth splitting the list between valid and not valid; maybe fail if a certain proportion are invalid, or maybe aren't less then a certain small integer)? - // ii, err := ie.Collect(0x0) - - // for _, entry := range ii.RootIfd.Entries { - // fmt.Printf("ENTRY: 0x%02x %d\n", entry.TagId, entry.TagType) - // } - - var makerNoteType []byte - if len(valueBytes) >= 20 { - makerNoteType = valueBytes[:20] - } else { - makerNoteType = valueBytes - } - - mn := Tag927CMakerNote{ - MakerNoteType: makerNoteType, - - // MakerNoteBytes has the whole length of bytes. There's always - // the chance that the first 20 bytes includes actual data. - MakerNoteBytes: valueBytes, - } - - return mn, nil -} - -func init() { - registerEncoder( - Tag927CMakerNote{}, - Codec927CMakerNote{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0x927c, - Codec927CMakerNote{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9286_user_comment.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9286_user_comment.go deleted file mode 100644 index 320edc14..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_9286_user_comment.go +++ /dev/null @@ -1,142 +0,0 @@ -package exifundefined - -import ( - "bytes" - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -var ( - exif9286Logger = log.NewLogger("exifundefined.exif_9286_user_comment") -) - -const ( - TagUndefinedType_9286_UserComment_Encoding_ASCII = iota - TagUndefinedType_9286_UserComment_Encoding_JIS = iota - TagUndefinedType_9286_UserComment_Encoding_UNICODE = iota - TagUndefinedType_9286_UserComment_Encoding_UNDEFINED = iota -) - -var ( - TagUndefinedType_9286_UserComment_Encoding_Names = map[int]string{ - TagUndefinedType_9286_UserComment_Encoding_ASCII: "ASCII", - TagUndefinedType_9286_UserComment_Encoding_JIS: "JIS", - TagUndefinedType_9286_UserComment_Encoding_UNICODE: "UNICODE", - TagUndefinedType_9286_UserComment_Encoding_UNDEFINED: "UNDEFINED", - } - - TagUndefinedType_9286_UserComment_Encodings = map[int][]byte{ - TagUndefinedType_9286_UserComment_Encoding_ASCII: {'A', 'S', 'C', 'I', 'I', 0, 0, 0}, - TagUndefinedType_9286_UserComment_Encoding_JIS: {'J', 'I', 'S', 0, 0, 0, 0, 0}, - TagUndefinedType_9286_UserComment_Encoding_UNICODE: {'U', 'n', 'i', 'c', 'o', 'd', 'e', 0}, - TagUndefinedType_9286_UserComment_Encoding_UNDEFINED: {0, 0, 0, 0, 0, 0, 0, 0}, - } -) - -type Tag9286UserComment struct { - EncodingType int - EncodingBytes []byte -} - -func (Tag9286UserComment) EncoderName() string { - return "Codec9286UserComment" -} - -func (uc Tag9286UserComment) String() string { - var valuePhrase string - - if uc.EncodingType == TagUndefinedType_9286_UserComment_Encoding_ASCII { - return fmt.Sprintf("[ASCII] %s", string(uc.EncodingBytes)) - } else { - if len(uc.EncodingBytes) <= 8 { - valuePhrase = fmt.Sprintf("%v", uc.EncodingBytes) - } else { - valuePhrase = fmt.Sprintf("%v...", uc.EncodingBytes[:8]) - } - } - - return fmt.Sprintf("UserComment", len(uc.EncodingBytes), TagUndefinedType_9286_UserComment_Encoding_Names[uc.EncodingType], valuePhrase, len(uc.EncodingBytes)) -} - -type Codec9286UserComment struct { -} - -func (Codec9286UserComment) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - uc, ok := value.(Tag9286UserComment) - if ok == false { - log.Panicf("can only encode a Tag9286UserComment") - } - - encodingTypeBytes, found := TagUndefinedType_9286_UserComment_Encodings[uc.EncodingType] - if found == false { - log.Panicf("encoding-type not valid for unknown-type tag 9286 (UserComment): (%d)", uc.EncodingType) - } - - encoded = make([]byte, len(uc.EncodingBytes)+8) - - copy(encoded[:8], encodingTypeBytes) - copy(encoded[8:], uc.EncodingBytes) - - // TODO(dustin): Confirm this size against the specification. - - return encoded, uint32(len(encoded)), nil -} - -func (Codec9286UserComment) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeByte) - - valueBytes, err := valueContext.ReadBytes() - log.PanicIf(err) - - if len(valueBytes) < 8 { - return nil, ErrUnparseableValue - } - - unknownUc := Tag9286UserComment{ - EncodingType: TagUndefinedType_9286_UserComment_Encoding_UNDEFINED, - EncodingBytes: []byte{}, - } - - encoding := valueBytes[:8] - for encodingIndex, encodingBytes := range TagUndefinedType_9286_UserComment_Encodings { - if bytes.Compare(encoding, encodingBytes) == 0 { - uc := Tag9286UserComment{ - EncodingType: encodingIndex, - EncodingBytes: valueBytes[8:], - } - - return uc, nil - } - } - - exif9286Logger.Warningf(nil, "User-comment encoding not valid. Returning 'unknown' type (the default).") - return unknownUc, nil -} - -func init() { - registerEncoder( - Tag9286UserComment{}, - Codec9286UserComment{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0x9286, - Codec9286UserComment{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A000_flashpix_version.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A000_flashpix_version.go deleted file mode 100644 index 4a0fefad..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A000_flashpix_version.go +++ /dev/null @@ -1,69 +0,0 @@ -package exifundefined - -import ( - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type TagA000FlashpixVersion struct { - FlashpixVersion string -} - -func (TagA000FlashpixVersion) EncoderName() string { - return "CodecA000FlashpixVersion" -} - -func (fv TagA000FlashpixVersion) String() string { - return fv.FlashpixVersion -} - -type CodecA000FlashpixVersion struct { -} - -func (CodecA000FlashpixVersion) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - s, ok := value.(TagA000FlashpixVersion) - if ok == false { - log.Panicf("can only encode a TagA000FlashpixVersion") - } - - return []byte(s.FlashpixVersion), uint32(len(s.FlashpixVersion)), nil -} - -func (CodecA000FlashpixVersion) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeAsciiNoNul) - - valueString, err := valueContext.ReadAsciiNoNul() - log.PanicIf(err) - - fv := TagA000FlashpixVersion{ - FlashpixVersion: valueString, - } - - return fv, nil -} - -func init() { - registerEncoder( - TagA000FlashpixVersion{}, - CodecA000FlashpixVersion{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0xa000, - CodecA000FlashpixVersion{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A20C_spatial_frequency_response.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A20C_spatial_frequency_response.go deleted file mode 100644 index 0311175d..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A20C_spatial_frequency_response.go +++ /dev/null @@ -1,160 +0,0 @@ -package exifundefined - -import ( - "bytes" - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type TagA20CSpatialFrequencyResponse struct { - Columns uint16 - Rows uint16 - ColumnNames []string - Values []exifcommon.Rational -} - -func (TagA20CSpatialFrequencyResponse) EncoderName() string { - return "CodecA20CSpatialFrequencyResponse" -} - -func (sfr TagA20CSpatialFrequencyResponse) String() string { - return fmt.Sprintf("CodecA20CSpatialFrequencyResponse", sfr.Columns, sfr.Rows) -} - -type CodecA20CSpatialFrequencyResponse struct { -} - -func (CodecA20CSpatialFrequencyResponse) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test. - - sfr, ok := value.(TagA20CSpatialFrequencyResponse) - if ok == false { - log.Panicf("can only encode a TagA20CSpatialFrequencyResponse") - } - - b := new(bytes.Buffer) - - err = binary.Write(b, byteOrder, sfr.Columns) - log.PanicIf(err) - - err = binary.Write(b, byteOrder, sfr.Rows) - log.PanicIf(err) - - // Write columns. - - for _, name := range sfr.ColumnNames { - _, err := b.WriteString(name) - log.PanicIf(err) - - err = b.WriteByte(0) - log.PanicIf(err) - } - - // Write values. - - ve := exifcommon.NewValueEncoder(byteOrder) - - ed, err := ve.Encode(sfr.Values) - log.PanicIf(err) - - _, err = b.Write(ed.Encoded) - log.PanicIf(err) - - encoded = b.Bytes() - - // TODO(dustin): Confirm this size against the specification. - - return encoded, uint32(len(encoded)), nil -} - -func (CodecA20CSpatialFrequencyResponse) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test using known good data. - - byteOrder := valueContext.ByteOrder() - - valueContext.SetUndefinedValueType(exifcommon.TypeByte) - - valueBytes, err := valueContext.ReadBytes() - log.PanicIf(err) - - sfr := TagA20CSpatialFrequencyResponse{} - - sfr.Columns = byteOrder.Uint16(valueBytes[0:2]) - sfr.Rows = byteOrder.Uint16(valueBytes[2:4]) - - columnNames := make([]string, sfr.Columns) - - // startAt is where the current column name starts. - startAt := 4 - - // offset is our current position. - offset := 4 - - currentColumnNumber := uint16(0) - - for currentColumnNumber < sfr.Columns { - if valueBytes[offset] == 0 { - columnName := string(valueBytes[startAt:offset]) - if len(columnName) == 0 { - log.Panicf("SFR column (%d) has zero length", currentColumnNumber) - } - - columnNames[currentColumnNumber] = columnName - currentColumnNumber++ - - offset++ - startAt = offset - continue - } - - offset++ - } - - sfr.ColumnNames = columnNames - - rawRationalBytes := valueBytes[offset:] - - rationalSize := exifcommon.TypeRational.Size() - if len(rawRationalBytes)%rationalSize > 0 { - log.Panicf("SFR rationals not aligned: (%d) %% (%d) > 0", len(rawRationalBytes), rationalSize) - } - - rationalCount := len(rawRationalBytes) / rationalSize - - parser := new(exifcommon.Parser) - - items, err := parser.ParseRationals(rawRationalBytes, uint32(rationalCount), byteOrder) - log.PanicIf(err) - - sfr.Values = items - - return sfr, nil -} - -func init() { - registerEncoder( - TagA20CSpatialFrequencyResponse{}, - CodecA20CSpatialFrequencyResponse{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0xa20c, - CodecA20CSpatialFrequencyResponse{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A300_file_source.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A300_file_source.go deleted file mode 100644 index f4f3a49f..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A300_file_source.go +++ /dev/null @@ -1,79 +0,0 @@ -package exifundefined - -import ( - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type TagExifA300FileSource uint32 - -func (TagExifA300FileSource) EncoderName() string { - return "CodecExifA300FileSource" -} - -func (af TagExifA300FileSource) String() string { - return fmt.Sprintf("0x%08x", uint32(af)) -} - -const ( - TagUndefinedType_A300_SceneType_Others TagExifA300FileSource = 0 - TagUndefinedType_A300_SceneType_ScannerOfTransparentType TagExifA300FileSource = 1 - TagUndefinedType_A300_SceneType_ScannerOfReflexType TagExifA300FileSource = 2 - TagUndefinedType_A300_SceneType_Dsc TagExifA300FileSource = 3 -) - -type CodecExifA300FileSource struct { -} - -func (CodecExifA300FileSource) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - st, ok := value.(TagExifA300FileSource) - if ok == false { - log.Panicf("can only encode a TagExifA300FileSource") - } - - ve := exifcommon.NewValueEncoder(byteOrder) - - ed, err := ve.Encode([]uint32{uint32(st)}) - log.PanicIf(err) - - // TODO(dustin): Confirm this size against the specification. It's non-specific about what type it is, but it looks to be no more than a single integer scalar. So, we're assuming it's a LONG. - - return ed.Encoded, 1, nil -} - -func (CodecExifA300FileSource) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeLong) - - valueLongs, err := valueContext.ReadLongs() - log.PanicIf(err) - - return TagExifA300FileSource(valueLongs[0]), nil -} - -func init() { - registerEncoder( - TagExifA300FileSource(0), - CodecExifA300FileSource{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0xa300, - CodecExifA300FileSource{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A301_scene_type.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A301_scene_type.go deleted file mode 100644 index a29fd767..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A301_scene_type.go +++ /dev/null @@ -1,76 +0,0 @@ -package exifundefined - -import ( - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type TagExifA301SceneType uint32 - -func (TagExifA301SceneType) EncoderName() string { - return "CodecExifA301SceneType" -} - -func (st TagExifA301SceneType) String() string { - return fmt.Sprintf("0x%08x", uint32(st)) -} - -const ( - TagUndefinedType_A301_SceneType_DirectlyPhotographedImage TagExifA301SceneType = 1 -) - -type CodecExifA301SceneType struct { -} - -func (CodecExifA301SceneType) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - st, ok := value.(TagExifA301SceneType) - if ok == false { - log.Panicf("can only encode a TagExif9101ComponentsConfiguration") - } - - ve := exifcommon.NewValueEncoder(byteOrder) - - ed, err := ve.Encode([]uint32{uint32(st)}) - log.PanicIf(err) - - // TODO(dustin): Confirm this size against the specification. It's non-specific about what type it is, but it looks to be no more than a single integer scalar. So, we're assuming it's a LONG. - - return ed.Encoded, uint32(int(ed.UnitCount)), nil -} - -func (CodecExifA301SceneType) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeLong) - - valueLongs, err := valueContext.ReadLongs() - log.PanicIf(err) - - return TagExifA301SceneType(valueLongs[0]), nil -} - -func init() { - registerEncoder( - TagExifA301SceneType(0), - CodecExifA301SceneType{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0xa301, - CodecExifA301SceneType{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A302_cfa_pattern.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A302_cfa_pattern.go deleted file mode 100644 index 88976296..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_A302_cfa_pattern.go +++ /dev/null @@ -1,97 +0,0 @@ -package exifundefined - -import ( - "bytes" - "fmt" - - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type TagA302CfaPattern struct { - HorizontalRepeat uint16 - VerticalRepeat uint16 - CfaValue []byte -} - -func (TagA302CfaPattern) EncoderName() string { - return "CodecA302CfaPattern" -} - -func (cp TagA302CfaPattern) String() string { - return fmt.Sprintf("TagA302CfaPattern", cp.HorizontalRepeat, cp.VerticalRepeat, len(cp.CfaValue)) -} - -type CodecA302CfaPattern struct { -} - -func (CodecA302CfaPattern) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test. - - cp, ok := value.(TagA302CfaPattern) - if ok == false { - log.Panicf("can only encode a TagA302CfaPattern") - } - - b := new(bytes.Buffer) - - err = binary.Write(b, byteOrder, cp.HorizontalRepeat) - log.PanicIf(err) - - err = binary.Write(b, byteOrder, cp.VerticalRepeat) - log.PanicIf(err) - - _, err = b.Write(cp.CfaValue) - log.PanicIf(err) - - encoded = b.Bytes() - - // TODO(dustin): Confirm this size against the specification. - - return encoded, uint32(len(encoded)), nil -} - -func (CodecA302CfaPattern) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // TODO(dustin): Add test using known good data. - - valueContext.SetUndefinedValueType(exifcommon.TypeByte) - - valueBytes, err := valueContext.ReadBytes() - log.PanicIf(err) - - cp := TagA302CfaPattern{} - - cp.HorizontalRepeat = valueContext.ByteOrder().Uint16(valueBytes[0:2]) - cp.VerticalRepeat = valueContext.ByteOrder().Uint16(valueBytes[2:4]) - - expectedLength := int(cp.HorizontalRepeat * cp.VerticalRepeat) - cp.CfaValue = valueBytes[4 : 4+expectedLength] - - return cp, nil -} - -func init() { - registerEncoder( - TagA302CfaPattern{}, - CodecA302CfaPattern{}) - - registerDecoder( - exifcommon.IfdExifStandardIfdIdentity.UnindexedString(), - 0xa302, - CodecA302CfaPattern{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_iop_0002_interop_version.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_iop_0002_interop_version.go deleted file mode 100644 index 09ec9870..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/exif_iop_0002_interop_version.go +++ /dev/null @@ -1,69 +0,0 @@ -package exifundefined - -import ( - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type Tag0002InteropVersion struct { - InteropVersion string -} - -func (Tag0002InteropVersion) EncoderName() string { - return "Codec0002InteropVersion" -} - -func (iv Tag0002InteropVersion) String() string { - return iv.InteropVersion -} - -type Codec0002InteropVersion struct { -} - -func (Codec0002InteropVersion) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - s, ok := value.(Tag0002InteropVersion) - if ok == false { - log.Panicf("can only encode a Tag0002InteropVersion") - } - - return []byte(s.InteropVersion), uint32(len(s.InteropVersion)), nil -} - -func (Codec0002InteropVersion) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeAsciiNoNul) - - valueString, err := valueContext.ReadAsciiNoNul() - log.PanicIf(err) - - iv := Tag0002InteropVersion{ - InteropVersion: valueString, - } - - return iv, nil -} - -func init() { - registerEncoder( - Tag0002InteropVersion{}, - Codec0002InteropVersion{}) - - registerDecoder( - exifcommon.IfdExifIopStandardIfdIdentity.UnindexedString(), - 0x0002, - Codec0002InteropVersion{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001B_gps_processing_method.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001B_gps_processing_method.go deleted file mode 100644 index 6f54d2fc..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001B_gps_processing_method.go +++ /dev/null @@ -1,65 +0,0 @@ -package exifundefined - -import ( - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type Tag001BGPSProcessingMethod struct { - string -} - -func (Tag001BGPSProcessingMethod) EncoderName() string { - return "Codec001BGPSProcessingMethod" -} - -func (gpm Tag001BGPSProcessingMethod) String() string { - return gpm.string -} - -type Codec001BGPSProcessingMethod struct { -} - -func (Codec001BGPSProcessingMethod) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - s, ok := value.(Tag001BGPSProcessingMethod) - if ok == false { - log.Panicf("can only encode a Tag001BGPSProcessingMethod") - } - - return []byte(s.string), uint32(len(s.string)), nil -} - -func (Codec001BGPSProcessingMethod) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeAsciiNoNul) - - valueString, err := valueContext.ReadAsciiNoNul() - log.PanicIf(err) - - return Tag001BGPSProcessingMethod{valueString}, nil -} - -func init() { - registerEncoder( - Tag001BGPSProcessingMethod{}, - Codec001BGPSProcessingMethod{}) - - registerDecoder( - exifcommon.IfdGpsInfoStandardIfdIdentity.UnindexedString(), - 0x001b, - Codec001BGPSProcessingMethod{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001C_gps_area_information.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001C_gps_area_information.go deleted file mode 100644 index ffdeb905..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/gps_001C_gps_area_information.go +++ /dev/null @@ -1,65 +0,0 @@ -package exifundefined - -import ( - "encoding/binary" - - "github.com/dsoprea/go-logging" - - "github.com/dsoprea/go-exif/v3/common" -) - -type Tag001CGPSAreaInformation struct { - string -} - -func (Tag001CGPSAreaInformation) EncoderName() string { - return "Codec001CGPSAreaInformation" -} - -func (gai Tag001CGPSAreaInformation) String() string { - return gai.string -} - -type Codec001CGPSAreaInformation struct { -} - -func (Codec001CGPSAreaInformation) Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - s, ok := value.(Tag001CGPSAreaInformation) - if ok == false { - log.Panicf("can only encode a Tag001CGPSAreaInformation") - } - - return []byte(s.string), uint32(len(s.string)), nil -} - -func (Codec001CGPSAreaInformation) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - valueContext.SetUndefinedValueType(exifcommon.TypeAsciiNoNul) - - valueString, err := valueContext.ReadAsciiNoNul() - log.PanicIf(err) - - return Tag001CGPSAreaInformation{valueString}, nil -} - -func init() { - registerEncoder( - Tag001CGPSAreaInformation{}, - Codec001CGPSAreaInformation{}) - - registerDecoder( - exifcommon.IfdGpsInfoStandardIfdIdentity.UnindexedString(), - 0x001c, - Codec001CGPSAreaInformation{}) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/registration.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/registration.go deleted file mode 100644 index cccc20a8..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/registration.go +++ /dev/null @@ -1,42 +0,0 @@ -package exifundefined - -import ( - "github.com/dsoprea/go-logging" -) - -// UndefinedTagHandle defines one undefined-type tag with a corresponding -// decoder. -type UndefinedTagHandle struct { - IfdPath string - TagId uint16 -} - -func registerEncoder(entity EncodeableValue, encoder UndefinedValueEncoder) { - typeName := entity.EncoderName() - - _, found := encoders[typeName] - if found == true { - log.Panicf("encoder already registered: %v", typeName) - } - - encoders[typeName] = encoder -} - -func registerDecoder(ifdPath string, tagId uint16, decoder UndefinedValueDecoder) { - uth := UndefinedTagHandle{ - IfdPath: ifdPath, - TagId: tagId, - } - - _, found := decoders[uth] - if found == true { - log.Panicf("decoder already registered: %v", uth) - } - - decoders[uth] = decoder -} - -var ( - encoders = make(map[string]UndefinedValueEncoder) - decoders = make(map[UndefinedTagHandle]UndefinedValueDecoder) -) diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/type.go b/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/type.go deleted file mode 100644 index ff6ac2b4..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/undefined/type.go +++ /dev/null @@ -1,44 +0,0 @@ -package exifundefined - -import ( - "errors" - - "encoding/binary" - - "github.com/dsoprea/go-exif/v3/common" -) - -const ( - // UnparseableUnknownTagValuePlaceholder is the string to use for an unknown - // undefined tag. - UnparseableUnknownTagValuePlaceholder = "!UNKNOWN" - - // UnparseableHandledTagValuePlaceholder is the string to use for a known - // value that is not parseable. - UnparseableHandledTagValuePlaceholder = "!MALFORMED" -) - -var ( - // ErrUnparseableValue is the error for a value that we should have been - // able to parse but were not able to. - ErrUnparseableValue = errors.New("unparseable undefined tag") -) - -// UndefinedValueEncoder knows how to encode an undefined-type tag's value to -// bytes. -type UndefinedValueEncoder interface { - Encode(value interface{}, byteOrder binary.ByteOrder) (encoded []byte, unitCount uint32, err error) -} - -// EncodeableValue wraps a value with the information that will be needed to re- -// encode it later. -type EncodeableValue interface { - EncoderName() string - String() string -} - -// UndefinedValueDecoder knows how to decode an undefined-type tag's value from -// bytes. -type UndefinedValueDecoder interface { - Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) -} diff --git a/backend/vendor/github.com/dsoprea/go-exif/v3/utility.go b/backend/vendor/github.com/dsoprea/go-exif/v3/utility.go deleted file mode 100644 index f0b5e638..00000000 --- a/backend/vendor/github.com/dsoprea/go-exif/v3/utility.go +++ /dev/null @@ -1,237 +0,0 @@ -package exif - -import ( - "fmt" - "io" - "math" - - "github.com/dsoprea/go-logging" - "github.com/dsoprea/go-utility/v2/filesystem" - - "github.com/dsoprea/go-exif/v3/common" - "github.com/dsoprea/go-exif/v3/undefined" -) - -var ( - utilityLogger = log.NewLogger("exif.utility") -) - -// ExifTag is one simple representation of a tag in a flat list of all of them. -type ExifTag struct { - // IfdPath is the fully-qualified IFD path (even though it is not named as - // such). - IfdPath string `json:"ifd_path"` - - // TagId is the tag-ID. - TagId uint16 `json:"id"` - - // TagName is the tag-name. This is never empty. - TagName string `json:"name"` - - // UnitCount is the recorded number of units constution of the value. - UnitCount uint32 `json:"unit_count"` - - // TagTypeId is the type-ID. - TagTypeId exifcommon.TagTypePrimitive `json:"type_id"` - - // TagTypeName is the type name. - TagTypeName string `json:"type_name"` - - // Value is the decoded value. - Value interface{} `json:"value"` - - // ValueBytes is the raw, encoded value. - ValueBytes []byte `json:"value_bytes"` - - // Formatted is the human representation of the first value (tag values are - // always an array). - FormattedFirst string `json:"formatted_first"` - - // Formatted is the human representation of the complete value. - Formatted string `json:"formatted"` - - // ChildIfdPath is the name of the child IFD this tag represents (if it - // represents any). Otherwise, this is empty. - ChildIfdPath string `json:"child_ifd_path"` -} - -// String returns a string representation. -func (et ExifTag) String() string { - return fmt.Sprintf( - "ExifTag<"+ - "IFD-PATH=[%s] "+ - "TAG-ID=(0x%02x) "+ - "TAG-NAME=[%s] "+ - "TAG-TYPE=[%s] "+ - "VALUE=[%v] "+ - "VALUE-BYTES=(%d) "+ - "CHILD-IFD-PATH=[%s]", - et.IfdPath, et.TagId, et.TagName, et.TagTypeName, et.FormattedFirst, - len(et.ValueBytes), et.ChildIfdPath) -} - -// GetFlatExifData returns a simple, flat representation of all tags. -func GetFlatExifData(exifData []byte, so *ScanOptions) (exifTags []ExifTag, med *MiscellaneousExifData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - sb := rifs.NewSeekableBufferWithBytes(exifData) - - exifTags, med, err = getFlatExifDataUniversalSearchWithReadSeeker(sb, so, false) - log.PanicIf(err) - - return exifTags, med, nil -} - -// RELEASE(dustin): GetFlatExifDataUniversalSearch is a kludge to allow univeral tag searching in a backwards-compatible manner. For the next release, undo this and simply add the flag to GetFlatExifData. - -// GetFlatExifDataUniversalSearch returns a simple, flat representation of all -// tags. -func GetFlatExifDataUniversalSearch(exifData []byte, so *ScanOptions, doUniversalSearch bool) (exifTags []ExifTag, med *MiscellaneousExifData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - sb := rifs.NewSeekableBufferWithBytes(exifData) - - exifTags, med, err = getFlatExifDataUniversalSearchWithReadSeeker(sb, so, doUniversalSearch) - log.PanicIf(err) - - return exifTags, med, nil -} - -// RELEASE(dustin): GetFlatExifDataUniversalSearchWithReadSeeker is a kludge to allow using a ReadSeeker in a backwards-compatible manner. For the next release, drop this and refactor GetFlatExifDataUniversalSearch to take a ReadSeeker. - -// GetFlatExifDataUniversalSearchWithReadSeeker returns a simple, flat -// representation of all tags given a ReadSeeker. -func GetFlatExifDataUniversalSearchWithReadSeeker(rs io.ReadSeeker, so *ScanOptions, doUniversalSearch bool) (exifTags []ExifTag, med *MiscellaneousExifData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - exifTags, med, err = getFlatExifDataUniversalSearchWithReadSeeker(rs, so, doUniversalSearch) - log.PanicIf(err) - - return exifTags, med, nil -} - -// getFlatExifDataUniversalSearchWithReadSeeker returns a simple, flat -// representation of all tags given a ReadSeeker. -func getFlatExifDataUniversalSearchWithReadSeeker(rs io.ReadSeeker, so *ScanOptions, doUniversalSearch bool) (exifTags []ExifTag, med *MiscellaneousExifData, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - headerData := make([]byte, ExifSignatureLength) - if _, err = io.ReadFull(rs, headerData); err != nil { - if err == io.EOF { - return nil, nil, err - } - - log.Panic(err) - } - - eh, err := ParseExifHeader(headerData) - log.PanicIf(err) - - im, err := exifcommon.NewIfdMappingWithStandard() - log.PanicIf(err) - - ti := NewTagIndex() - - if doUniversalSearch == true { - ti.SetUniversalSearch(true) - } - - ebs := NewExifReadSeeker(rs) - ie := NewIfdEnumerate(im, ti, ebs, eh.ByteOrder) - - exifTags = make([]ExifTag, 0) - - visitor := func(ite *IfdTagEntry) (err error) { - // This encodes down to base64. Since this an example tool and we do not - // expect to ever decode the output, we are not worried about - // specifically base64-encoding it in order to have a measure of - // control. - valueBytes, err := ite.GetRawBytes() - if err != nil { - if err == exifundefined.ErrUnparseableValue { - return nil - } - - log.Panic(err) - } - - value, err := ite.Value() - if err != nil { - if err == exifcommon.ErrUnhandledUndefinedTypedTag { - value = exifundefined.UnparseableUnknownTagValuePlaceholder - } else if log.Is(err, exifcommon.ErrParseFail) == true { - utilityLogger.Warningf(nil, - "Could not parse value for tag [%s] (%04x) [%s].", - ite.IfdPath(), ite.TagId(), ite.TagName()) - - return nil - } else { - log.Panic(err) - } - } - - et := ExifTag{ - IfdPath: ite.IfdPath(), - TagId: ite.TagId(), - TagName: ite.TagName(), - UnitCount: ite.UnitCount(), - TagTypeId: ite.TagType(), - TagTypeName: ite.TagType().String(), - Value: value, - ValueBytes: valueBytes, - ChildIfdPath: ite.ChildIfdPath(), - } - - et.Formatted, err = ite.Format() - log.PanicIf(err) - - et.FormattedFirst, err = ite.FormatFirst() - log.PanicIf(err) - - exifTags = append(exifTags, et) - - return nil - } - - med, err = ie.Scan(exifcommon.IfdStandardIfdIdentity, eh.FirstIfdOffset, visitor, nil) - log.PanicIf(err) - - return exifTags, med, nil -} - -// GpsDegreesEquals returns true if the two `GpsDegrees` are identical. -func GpsDegreesEquals(gi1, gi2 GpsDegrees) bool { - if gi2.Orientation != gi1.Orientation { - return false - } - - degreesRightBound := math.Nextafter(gi1.Degrees, gi1.Degrees+1) - minutesRightBound := math.Nextafter(gi1.Minutes, gi1.Minutes+1) - secondsRightBound := math.Nextafter(gi1.Seconds, gi1.Seconds+1) - - if gi2.Degrees < gi1.Degrees || gi2.Degrees >= degreesRightBound { - return false - } else if gi2.Minutes < gi1.Minutes || gi2.Minutes >= minutesRightBound { - return false - } else if gi2.Seconds < gi1.Seconds || gi2.Seconds >= secondsRightBound { - return false - } - - return true -} diff --git a/backend/vendor/github.com/dsoprea/go-logging/.travis.yml b/backend/vendor/github.com/dsoprea/go-logging/.travis.yml deleted file mode 100644 index e37da4ba..00000000 --- a/backend/vendor/github.com/dsoprea/go-logging/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: go -go: - - tip -install: - - go get -t ./... - - go get github.com/mattn/goveralls -script: -# v1 - - go test -v . -# v2 - - cd v2 - - goveralls -v -service=travis-ci diff --git a/backend/vendor/github.com/dsoprea/go-logging/LICENSE b/backend/vendor/github.com/dsoprea/go-logging/LICENSE deleted file mode 100644 index 163291ed..00000000 --- a/backend/vendor/github.com/dsoprea/go-logging/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT LICENSE - -Copyright 2020 Dustin Oprea - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/github.com/dsoprea/go-logging/README.md b/backend/vendor/github.com/dsoprea/go-logging/README.md deleted file mode 100644 index 820cd9dc..00000000 --- a/backend/vendor/github.com/dsoprea/go-logging/README.md +++ /dev/null @@ -1,223 +0,0 @@ -[![Build Status](https://travis-ci.org/dsoprea/go-logging.svg?branch=master)](https://travis-ci.org/dsoprea/go-logging) -[![Coverage Status](https://coveralls.io/repos/github/dsoprea/go-logging/badge.svg?branch=master)](https://coveralls.io/github/dsoprea/go-logging?branch=master) -[![Go Report Card](https://goreportcard.com/badge/github.com/dsoprea/go-logging/v2)](https://goreportcard.com/report/github.com/dsoprea/go-logging/v2) -[![GoDoc](https://godoc.org/github.com/dsoprea/go-logging/v2?status.svg)](https://godoc.org/github.com/dsoprea/go-logging/v2) - -## Introduction - -This project bridges several gaps that are present in the standard logging support in Go: - -- Equips errors with stacktraces and provides a facility for printing them -- Inherently supports the ability for each Go file to print its messages with a prefix representing that file/package -- Adds some functions to specifically log messages of different levels (e.g. debug, error) -- Adds a `PanicIf()` function that can be used to conditionally manage errors depending on whether an error variable is `nil` or actually has an error -- Adds support for pluggable logging adapters (so the output can be sent somewhere other than the console) -- Adds configuration (such as the logging level or adapter) that can be driven from the environment -- Supports filtering to show/hide the logging of certain places of the application -- The loggers can be definded at the package level, so you can determine which Go file any log message came from. - -When used with the Panic-Defer-Recover pattern in Go, even panics rising from the Go runtime will be caught and wrapped with a stacktrace. This compartmentalizes which function they could have originated from, which is, otherwise, potentially non-trivial to figure out. - -## AppEngine - -Go under AppEngine is very stripped down, such as there being no logging type (e.g. `Logger` in native Go) and there is no support for prefixing. As each logging call from this project takes a `Context`, this works cooperatively to bridge the additional gaps in AppEngine's logging support. - -With standard console logging outside of this context, that parameter will take a`nil`. - - -## Getting Started - -The simplest, possible example: - -```go -package thispackage - -import ( - "context" - "errors" - - "github.com/dsoprea/go-logging/v2" -) - -var ( - thisfileLog = log.NewLogger("thispackage.thisfile") -) - -func a_cry_for_help(ctx context.Context) { - err := errors.New("a big error") - thisfileLog.Errorf(ctx, err, "How big is my problem: %s", "pretty big") -} - -func init() { - cla := log.NewConsoleLogAdapter() - log.AddAdapter("console", cla) -} -``` - -Notice two things: - -1. We register the "console" adapter at the bottom. The first adapter registered will be used by default. -2. We pass-in a prefix (what we refer to as a "noun") to `log.NewLogger()`. This is a simple, descriptive name that represents the subject of the file. By convention, we construct this by dot-separating the current package and the name of the file. We recommend that you define a different log for every file at the package level, but it is your choice whether you want to do this or share the same logger over the entire package, define one in each struct, etc.. - - -### Example Output - -Example output from a real application (not from the above): - -``` -2016/09/09 12:57:44 DEBUG: user: User revisiting: [test@example.com] -2016/09/09 12:57:44 DEBUG: context: Session already inited: [DCRBDGRY6RMWANCSJXVLD7GULDH4NZEB6SBAQ3KSFIGA2LP45IIQ] -2016/09/09 12:57:44 DEBUG: session_data: Session save not necessary: [DCRBDGRY6RMWANCSJXVLD7GULDH4NZEB6SBAQ3KSFIGA2LP45IIQ] -2016/09/09 12:57:44 DEBUG: context: Got session: [DCRBDGRY6RMWANCSJXVLD7GULDH4NZEB6SBAQ3KSFIGA2LP45IIQ] -2016/09/09 12:57:44 DEBUG: session_data: Found user in session. -2016/09/09 12:57:44 DEBUG: cache: Cache miss: [geo.geocode.reverse:dhxp15x] -``` - - -## Adapters - -This project provides one built-in logging adapter, "console", which prints to the screen. To register it: - -```go -cla := log.NewConsoleLogAdapter() -log.AddAdapter("console", cla) -``` - -### Custom Adapters - -If you would like to implement your own logger, just create a struct type that satisfies the LogAdapter interface. - -```go -type LogAdapter interface { - Debugf(lc *LogContext, message *string) error - Infof(lc *LogContext, message *string) error - Warningf(lc *LogContext, message *string) error - Errorf(lc *LogContext, message *string) error -} -``` - -The *LogContext* struct passed in provides additional information that you may need in order to do what you need to do: - -```go -type LogContext struct { - Logger *Logger - Ctx context.Context -} -``` - -`Logger` represents your Logger instance. - -Adapter example: - -```go -type DummyLogAdapter struct { - -} - -func (dla *DummyLogAdapter) Debugf(lc *LogContext, message *string) error { - -} - -func (dla *DummyLogAdapter) Infof(lc *LogContext, message *string) error { - -} - -func (dla *DummyLogAdapter) Warningf(lc *LogContext, message *string) error { - -} - -func (dla *DummyLogAdapter) Errorf(lc *LogContext, message *string) error { - -} -``` - -Then, register it: - -```go -func init() { - log.AddAdapter("dummy", new(DummyLogAdapter)) -} -``` - -If this is a task-specific implementation, just register it from the `init()` of the file that defines it. - -If this is the first adapter you've registered, it will be the default one used. Otherwise, you'll have to deliberately specify it when you are creating a logger: Instead of calling `log.NewLogger(noun string)`, call `log.NewLoggerWithAdapterName(noun string, adapterName string)`. - -We discuss how to configure the adapter from configuration in the "Configuration" section below. - - -### Adapter Notes - -- The `Logger` instance exports `Noun()` in the event you want to discriminate where your log entries go in your adapter. It also exports `Adapter()` for if you need to access the adapter instance from your application. -- If no adapter is registered (specifically, the default adapter-name remains empty), logging calls will be a no-op. This allows libraries to implement *go-logging* where the larger application doesn't. - - -## Filters - -We support the ability to exclusively log for a specific set of nouns (we'll exclude any not specified): - -```go -log.AddIncludeFilter("nountoshow1") -log.AddIncludeFilter("nountoshow2") -``` - -Depending on your needs, you might just want to exclude a couple and include the rest: - -```go -log.AddExcludeFilter("nountohide1") -log.AddExcludeFilter("nountohide2") -``` - -We'll first hit the include-filters. If it's in there, we'll forward the log item to the adapter. If not, and there is at least one include filter in the list, we won't do anything. If the list of include filters is empty but the noun appears in the exclude list, we won't do anything. - -It is a good convention to exclude the nouns of any library you are writing whose logging you do not want to generally be aware of unless you are debugging. You might call `AddExcludeFilter()` from the `init()` function at the bottom of those files unless there is some configuration variable, such as "(LibraryNameHere)DoShowLogging", that has been defined and set to TRUE. - - -## Configuration - -The following configuration items are available: - -- *Format*: The default format used to build the message that gets sent to the adapter. It is assumed that the adapter already prefixes the message with time and log-level (since the default AppEngine logger does). The default value is: `{{.Noun}}: [{{.Level}}] {{if eq .ExcludeBypass true}} [BYPASS]{{end}} {{.Message}}`. The available tokens are "Level", "Noun", "ExcludeBypass", and "Message". -- *DefaultAdapterName*: The default name of the adapter to use when NewLogger() is called (if this isn't defined then the name of the first registered adapter will be used). -- *LevelName*: The priority-level of messages permitted to be logged (all others will be discarded). By default, it is "info". Other levels are: "debug", "warning", "error", "critical" -- *IncludeNouns*: Comma-separated list of nouns to log for. All others will be ignored. -- *ExcludeNouns*: Comma-separated list on nouns to exclude from logging. -- *ExcludeBypassLevelName*: The log-level at which we will show logging for nouns that have been excluded. Allows you to hide excessive, unimportant logging for nouns but to still see their warnings, errors, etc... - - -### Configuration Providers - -You provide the configuration by setting a configuration-provider. Configuration providers must satisfy the `ConfigurationProvider` interface. The following are provided with the project: - -- `EnvironmentConfigurationProvider`: Read values from the environment. -- `StaticConfigurationProvider`: Set values directly on the struct. - -**The configuration provider must be applied before doing any logging (otherwise it will have no effect).** - -Environments such as AppEngine work best with `EnvironmentConfigurationProvider` as this is generally how configuration is exposed *by* AppEngine *to* the application. You can define this configuration directly in *that* configuration. - -By default, no configuration-provider is applied, the level is defaulted to INFO and the format is defaulted to "{{.Noun}}:{{if eq .ExcludeBypass true}} [BYPASS]{{end}} {{.Message}}". - -Again, if a configuration-provider does not provide a log-level or format, they will be defaulted (or left alone, if already set). If it does not provide an adapter-name, the adapter-name of the first registered adapter will be used. - -Usage instructions of both follow. - - -### Environment-Based Configuration - -```go -ecp := log.NewEnvironmentConfigurationProvider() -log.LoadConfiguration(ecp) -``` - -Each of the items listed at the top of the "Configuration" section can be specified in the environment using a prefix of "Log" (e.g. LogDefaultAdapterName). - - -### Static Configuration - -```go -scp := log.NewStaticConfigurationProvider() -scp.SetLevelName(log.LevelNameWarning) - -log.LoadConfiguration(scp) -``` diff --git a/backend/vendor/github.com/dsoprea/go-logging/config.go b/backend/vendor/github.com/dsoprea/go-logging/config.go deleted file mode 100644 index 20896e34..00000000 --- a/backend/vendor/github.com/dsoprea/go-logging/config.go +++ /dev/null @@ -1,246 +0,0 @@ -package log - -import ( - "fmt" - "os" -) - -// Config keys. -const ( - ckFormat = "LogFormat" - ckDefaultAdapterName = "LogDefaultAdapterName" - ckLevelName = "LogLevelName" - ckIncludeNouns = "LogIncludeNouns" - ckExcludeNouns = "LogExcludeNouns" - ckExcludeBypassLevelName = "LogExcludeBypassLevelName" -) - -// Other constants -const ( - defaultFormat = "{{.Noun}}: [{{.Level}}] {{if eq .ExcludeBypass true}} [BYPASS]{{end}} {{.Message}}" - defaultLevelName = LevelNameInfo -) - -// Config -var ( - // Alternative format. - format = defaultFormat - - // Alternative adapter. - defaultAdapterName = "" - - // Alternative level at which to display log-items - levelName = defaultLevelName - - // Configuration-driven comma-separated list of nouns to include. - includeNouns = "" - - // Configuration-driven comma-separated list of nouns to exclude. - excludeNouns = "" - - // Level at which to disregard exclusion (if the severity of a message - // meets or exceed this, always display). - excludeBypassLevelName = "" -) - -// Other -var ( - configurationLoaded = false -) - -// Return the current default adapter name. -func GetDefaultAdapterName() string { - return defaultAdapterName -} - -// The adapter will automatically be the first one registered. This overrides -// that. -func SetDefaultAdapterName(name string) { - defaultAdapterName = name -} - -func LoadConfiguration(cp ConfigurationProvider) { - configuredDefaultAdapterName := cp.DefaultAdapterName() - - if configuredDefaultAdapterName != "" { - defaultAdapterName = configuredDefaultAdapterName - } - - includeNouns = cp.IncludeNouns() - excludeNouns = cp.ExcludeNouns() - excludeBypassLevelName = cp.ExcludeBypassLevelName() - - f := cp.Format() - if f != "" { - format = f - } - - ln := cp.LevelName() - if ln != "" { - levelName = ln - } - - configurationLoaded = true -} - -func getConfigState() map[string]interface{} { - return map[string]interface{}{ - "format": format, - "defaultAdapterName": defaultAdapterName, - "levelName": levelName, - "includeNouns": includeNouns, - "excludeNouns": excludeNouns, - "excludeBypassLevelName": excludeBypassLevelName, - } -} - -func setConfigState(config map[string]interface{}) { - format = config["format"].(string) - - defaultAdapterName = config["defaultAdapterName"].(string) - levelName = config["levelName"].(string) - includeNouns = config["includeNouns"].(string) - excludeNouns = config["excludeNouns"].(string) - excludeBypassLevelName = config["excludeBypassLevelName"].(string) -} - -func getConfigDump() string { - return fmt.Sprintf( - "Current configuration:\n"+ - " FORMAT=[%s]\n"+ - " DEFAULT-ADAPTER-NAME=[%s]\n"+ - " LEVEL-NAME=[%s]\n"+ - " INCLUDE-NOUNS=[%s]\n"+ - " EXCLUDE-NOUNS=[%s]\n"+ - " EXCLUDE-BYPASS-LEVEL-NAME=[%s]", - format, defaultAdapterName, levelName, includeNouns, excludeNouns, excludeBypassLevelName) -} - -func IsConfigurationLoaded() bool { - return configurationLoaded -} - -type ConfigurationProvider interface { - // Alternative format (defaults to . - Format() string - - // Alternative adapter (defaults to "appengine"). - DefaultAdapterName() string - - // Alternative level at which to display log-items (defaults to - // "info"). - LevelName() string - - // Configuration-driven comma-separated list of nouns to include. Defaults - // to empty. - IncludeNouns() string - - // Configuration-driven comma-separated list of nouns to exclude. Defaults - // to empty. - ExcludeNouns() string - - // Level at which to disregard exclusion (if the severity of a message - // meets or exceed this, always display). Defaults to empty. - ExcludeBypassLevelName() string -} - -// Environment configuration-provider. -type EnvironmentConfigurationProvider struct { -} - -func NewEnvironmentConfigurationProvider() *EnvironmentConfigurationProvider { - return new(EnvironmentConfigurationProvider) -} - -func (ecp *EnvironmentConfigurationProvider) Format() string { - return os.Getenv(ckFormat) -} - -func (ecp *EnvironmentConfigurationProvider) DefaultAdapterName() string { - return os.Getenv(ckDefaultAdapterName) -} - -func (ecp *EnvironmentConfigurationProvider) LevelName() string { - return os.Getenv(ckLevelName) -} - -func (ecp *EnvironmentConfigurationProvider) IncludeNouns() string { - return os.Getenv(ckIncludeNouns) -} - -func (ecp *EnvironmentConfigurationProvider) ExcludeNouns() string { - return os.Getenv(ckExcludeNouns) -} - -func (ecp *EnvironmentConfigurationProvider) ExcludeBypassLevelName() string { - return os.Getenv(ckExcludeBypassLevelName) -} - -// Static configuration-provider. -type StaticConfigurationProvider struct { - format string - defaultAdapterName string - levelName string - includeNouns string - excludeNouns string - excludeBypassLevelName string -} - -func NewStaticConfigurationProvider() *StaticConfigurationProvider { - return new(StaticConfigurationProvider) -} - -func (scp *StaticConfigurationProvider) SetFormat(format string) { - scp.format = format -} - -func (scp *StaticConfigurationProvider) SetDefaultAdapterName(adapterName string) { - scp.defaultAdapterName = adapterName -} - -func (scp *StaticConfigurationProvider) SetLevelName(levelName string) { - scp.levelName = levelName -} - -func (scp *StaticConfigurationProvider) SetIncludeNouns(includeNouns string) { - scp.includeNouns = includeNouns -} - -func (scp *StaticConfigurationProvider) SetExcludeNouns(excludeNouns string) { - scp.excludeNouns = excludeNouns -} - -func (scp *StaticConfigurationProvider) SetExcludeBypassLevelName(excludeBypassLevelName string) { - scp.excludeBypassLevelName = excludeBypassLevelName -} - -func (scp *StaticConfigurationProvider) Format() string { - return scp.format -} - -func (scp *StaticConfigurationProvider) DefaultAdapterName() string { - return scp.defaultAdapterName -} - -func (scp *StaticConfigurationProvider) LevelName() string { - return scp.levelName -} - -func (scp *StaticConfigurationProvider) IncludeNouns() string { - return scp.includeNouns -} - -func (scp *StaticConfigurationProvider) ExcludeNouns() string { - return scp.excludeNouns -} - -func (scp *StaticConfigurationProvider) ExcludeBypassLevelName() string { - return scp.excludeBypassLevelName -} - -func init() { - // Do the initial configuration-load from the environment. We gotta seed it - // with something for simplicity's sake. - ecp := NewEnvironmentConfigurationProvider() - LoadConfiguration(ecp) -} diff --git a/backend/vendor/github.com/dsoprea/go-logging/console_adapter.go b/backend/vendor/github.com/dsoprea/go-logging/console_adapter.go deleted file mode 100644 index c63a2911..00000000 --- a/backend/vendor/github.com/dsoprea/go-logging/console_adapter.go +++ /dev/null @@ -1,36 +0,0 @@ -package log - -import ( - golog "log" -) - -type ConsoleLogAdapter struct { -} - -func NewConsoleLogAdapter() LogAdapter { - return new(ConsoleLogAdapter) -} - -func (cla *ConsoleLogAdapter) Debugf(lc *LogContext, message *string) error { - golog.Println(*message) - - return nil -} - -func (cla *ConsoleLogAdapter) Infof(lc *LogContext, message *string) error { - golog.Println(*message) - - return nil -} - -func (cla *ConsoleLogAdapter) Warningf(lc *LogContext, message *string) error { - golog.Println(*message) - - return nil -} - -func (cla *ConsoleLogAdapter) Errorf(lc *LogContext, message *string) error { - golog.Println(*message) - - return nil -} diff --git a/backend/vendor/github.com/dsoprea/go-logging/log.go b/backend/vendor/github.com/dsoprea/go-logging/log.go deleted file mode 100644 index 711c00ac..00000000 --- a/backend/vendor/github.com/dsoprea/go-logging/log.go +++ /dev/null @@ -1,538 +0,0 @@ -package log - -import ( - "bytes" - e "errors" - "fmt" - "strings" - "sync" - - "text/template" - - "github.com/go-errors/errors" - "golang.org/x/net/context" -) - -// TODO(dustin): Finish symbol documentation - -// Config severity integers. -const ( - LevelDebug = iota - LevelInfo = iota - LevelWarning = iota - LevelError = iota -) - -// Config severity names. -const ( - LevelNameDebug = "debug" - LevelNameInfo = "info" - LevelNameWarning = "warning" - LevelNameError = "error" -) - -// Seveirty name->integer map. -var ( - LevelNameMap = map[string]int{ - LevelNameDebug: LevelDebug, - LevelNameInfo: LevelInfo, - LevelNameWarning: LevelWarning, - LevelNameError: LevelError, - } - - LevelNameMapR = map[int]string{ - LevelDebug: LevelNameDebug, - LevelInfo: LevelNameInfo, - LevelWarning: LevelNameWarning, - LevelError: LevelNameError, - } -) - -// Errors -var ( - ErrAdapterAlreadyRegistered = e.New("adapter already registered") - ErrFormatEmpty = e.New("format is empty") - ErrExcludeLevelNameInvalid = e.New("exclude bypass-level is invalid") - ErrNoAdapterConfigured = e.New("no default adapter configured") - ErrAdapterIsNil = e.New("adapter is nil") - ErrConfigurationNotLoaded = e.New("can not configure because configuration is not loaded") -) - -// Other -var ( - includeFilters = make(map[string]bool) - useIncludeFilters = false - excludeFilters = make(map[string]bool) - useExcludeFilters = false - - adapters = make(map[string]LogAdapter) - - // TODO(dustin): !! Finish implementing this. - excludeBypassLevel = -1 -) - -// Add global include filter. -func AddIncludeFilter(noun string) { - includeFilters[noun] = true - useIncludeFilters = true -} - -// Remove global include filter. -func RemoveIncludeFilter(noun string) { - delete(includeFilters, noun) - if len(includeFilters) == 0 { - useIncludeFilters = false - } -} - -// Add global exclude filter. -func AddExcludeFilter(noun string) { - excludeFilters[noun] = true - useExcludeFilters = true -} - -// Remove global exclude filter. -func RemoveExcludeFilter(noun string) { - delete(excludeFilters, noun) - if len(excludeFilters) == 0 { - useExcludeFilters = false - } -} - -func AddAdapter(name string, la LogAdapter) { - if _, found := adapters[name]; found == true { - Panic(ErrAdapterAlreadyRegistered) - } - - if la == nil { - Panic(ErrAdapterIsNil) - } - - adapters[name] = la - - if GetDefaultAdapterName() == "" { - SetDefaultAdapterName(name) - } -} - -func ClearAdapters() { - adapters = make(map[string]LogAdapter) - SetDefaultAdapterName("") -} - -type LogAdapter interface { - Debugf(lc *LogContext, message *string) error - Infof(lc *LogContext, message *string) error - Warningf(lc *LogContext, message *string) error - Errorf(lc *LogContext, message *string) error -} - -// TODO(dustin): !! Also populate whether we've bypassed an exception so that -// -// we can add a template macro to prefix an exclamation of -// some sort. -type MessageContext struct { - Level *string - Noun *string - Message *string - ExcludeBypass bool -} - -type LogContext struct { - Logger *Logger - Ctx context.Context -} - -type Logger struct { - isConfigured bool - an string - la LogAdapter - t *template.Template - systemLevel int - noun string -} - -func NewLoggerWithAdapterName(noun string, adapterName string) (l *Logger) { - l = &Logger{ - noun: noun, - an: adapterName, - } - - return l -} - -func NewLogger(noun string) (l *Logger) { - l = NewLoggerWithAdapterName(noun, "") - - return l -} - -func (l *Logger) Noun() string { - return l.noun -} - -func (l *Logger) Adapter() LogAdapter { - return l.la -} - -var ( - configureMutex sync.Mutex -) - -func (l *Logger) doConfigure(force bool) { - configureMutex.Lock() - defer configureMutex.Unlock() - - if l.isConfigured == true && force == false { - return - } - - if IsConfigurationLoaded() == false { - Panic(ErrConfigurationNotLoaded) - } - - if l.an == "" { - l.an = GetDefaultAdapterName() - } - - // If this is empty, then no specific adapter was given or no system - // default was configured (which implies that no adapters were registered). - // All of our logging will be skipped. - if l.an != "" { - la, found := adapters[l.an] - if found == false { - Panic(fmt.Errorf("adapter is not valid: %s", l.an)) - } - - l.la = la - } - - // Set the level. - - systemLevel, found := LevelNameMap[levelName] - if found == false { - Panic(fmt.Errorf("log-level not valid: [%s]", levelName)) - } - - l.systemLevel = systemLevel - - // Set the form. - - if format == "" { - Panic(ErrFormatEmpty) - } - - if t, err := template.New("logItem").Parse(format); err != nil { - Panic(err) - } else { - l.t = t - } - - l.isConfigured = true -} - -func (l *Logger) flattenMessage(lc *MessageContext, format *string, args []interface{}) (string, error) { - m := fmt.Sprintf(*format, args...) - - lc.Message = &m - - var b bytes.Buffer - if err := l.t.Execute(&b, *lc); err != nil { - return "", err - } - - return b.String(), nil -} - -func (l *Logger) allowMessage(noun string, level int) bool { - if _, found := includeFilters[noun]; found == true { - return true - } - - // If we didn't hit an include filter and we *had* include filters, filter - // it out. - if useIncludeFilters == true { - return false - } - - if _, found := excludeFilters[noun]; found == true { - return false - } - - return true -} - -func (l *Logger) makeLogContext(ctx context.Context) *LogContext { - return &LogContext{ - Ctx: ctx, - Logger: l, - } -} - -type LogMethod func(lc *LogContext, message *string) error - -func (l *Logger) log(ctx context.Context, level int, lm LogMethod, format string, args []interface{}) error { - if l.systemLevel > level { - return nil - } - - // Preempt the normal filter checks if we can unconditionally allow at a - // certain level and we've hit that level. - // - // Notice that this is only relevant if the system-log level is letting - // *anything* show logs at the level we came in with. - canExcludeBypass := level >= excludeBypassLevel && excludeBypassLevel != -1 - didExcludeBypass := false - - n := l.Noun() - - if l.allowMessage(n, level) == false { - if canExcludeBypass == false { - return nil - } else { - didExcludeBypass = true - } - } - - levelName, found := LevelNameMapR[level] - if found == false { - Panic(fmt.Errorf("level not valid: (%d)", level)) - } - - levelName = strings.ToUpper(levelName) - - lc := &MessageContext{ - Level: &levelName, - Noun: &n, - ExcludeBypass: didExcludeBypass, - } - - if s, err := l.flattenMessage(lc, &format, args); err != nil { - return err - } else { - lc := l.makeLogContext(ctx) - if err := lm(lc, &s); err != nil { - panic(err) - } - - return e.New(s) - } -} - -func (l *Logger) Debugf(ctx context.Context, format string, args ...interface{}) { - l.doConfigure(false) - - if l.la != nil { - l.log(ctx, LevelDebug, l.la.Debugf, format, args) - } -} - -func (l *Logger) Infof(ctx context.Context, format string, args ...interface{}) { - l.doConfigure(false) - - if l.la != nil { - l.log(ctx, LevelInfo, l.la.Infof, format, args) - } -} - -func (l *Logger) Warningf(ctx context.Context, format string, args ...interface{}) { - l.doConfigure(false) - - if l.la != nil { - l.log(ctx, LevelWarning, l.la.Warningf, format, args) - } -} - -func (l *Logger) mergeStack(err interface{}, format string, args []interface{}) (string, []interface{}) { - if format != "" { - format += "\n%s" - } else { - format = "%s" - } - - var stackified *errors.Error - stackified, ok := err.(*errors.Error) - if ok == false { - stackified = errors.Wrap(err, 2) - } - - args = append(args, stackified.ErrorStack()) - - return format, args -} - -func (l *Logger) Errorf(ctx context.Context, errRaw interface{}, format string, args ...interface{}) { - l.doConfigure(false) - - var err interface{} - - if errRaw != nil { - _, ok := errRaw.(*errors.Error) - if ok == true { - err = errRaw - } else { - err = errors.Wrap(errRaw, 1) - } - } - - if l.la != nil { - if errRaw != nil { - format, args = l.mergeStack(err, format, args) - } - - l.log(ctx, LevelError, l.la.Errorf, format, args) - } -} - -func (l *Logger) ErrorIff(ctx context.Context, errRaw interface{}, format string, args ...interface{}) { - if errRaw == nil { - return - } - - var err interface{} - - _, ok := errRaw.(*errors.Error) - if ok == true { - err = errRaw - } else { - err = errors.Wrap(errRaw, 1) - } - - l.Errorf(ctx, err, format, args...) -} - -func (l *Logger) Panicf(ctx context.Context, errRaw interface{}, format string, args ...interface{}) { - l.doConfigure(false) - - var err interface{} - - _, ok := errRaw.(*errors.Error) - if ok == true { - err = errRaw - } else { - err = errors.Wrap(errRaw, 1) - } - - if l.la != nil { - format, args = l.mergeStack(err, format, args) - err = l.log(ctx, LevelError, l.la.Errorf, format, args) - } - - Panic(err.(error)) -} - -func (l *Logger) PanicIff(ctx context.Context, errRaw interface{}, format string, args ...interface{}) { - if errRaw == nil { - return - } - - var err interface{} - - _, ok := errRaw.(*errors.Error) - if ok == true { - err = errRaw - } else { - err = errors.Wrap(errRaw, 1) - } - - l.Panicf(ctx, err.(error), format, args...) -} - -func Wrap(err interface{}) *errors.Error { - es, ok := err.(*errors.Error) - if ok == true { - return es - } else { - return errors.Wrap(err, 1) - } -} - -func Errorf(message string, args ...interface{}) *errors.Error { - err := fmt.Errorf(message, args...) - return errors.Wrap(err, 1) -} - -func Panic(err interface{}) { - _, ok := err.(*errors.Error) - if ok == true { - panic(err) - } else { - panic(errors.Wrap(err, 1)) - } -} - -func Panicf(message string, args ...interface{}) { - err := Errorf(message, args...) - Panic(err) -} - -func PanicIf(err interface{}) { - if err == nil { - return - } - - _, ok := err.(*errors.Error) - if ok == true { - panic(err) - } else { - panic(errors.Wrap(err, 1)) - } -} - -// Is checks if the left ("actual") error equals the right ("against") error. -// The right must be an unwrapped error (the kind that you'd initialize as a -// global variable). The left can be a wrapped or unwrapped error. -func Is(actual, against error) bool { - // If it's an unwrapped error. - if _, ok := actual.(*errors.Error); ok == false { - return actual == against - } - - return errors.Is(actual, against) -} - -// Print is a utility function to prevent the caller from having to import the -// third-party library. -func PrintError(err error) { - wrapped := Wrap(err) - fmt.Printf("Stack:\n\n%s\n", wrapped.ErrorStack()) -} - -// PrintErrorf is a utility function to prevent the caller from having to -// import the third-party library. -func PrintErrorf(err error, format string, args ...interface{}) { - wrapped := Wrap(err) - - fmt.Printf(format, args...) - fmt.Printf("\n") - fmt.Printf("Stack:\n\n%s\n", wrapped.ErrorStack()) -} - -func init() { - if format == "" { - format = defaultFormat - } - - if levelName == "" { - levelName = defaultLevelName - } - - if includeNouns != "" { - for _, noun := range strings.Split(includeNouns, ",") { - AddIncludeFilter(noun) - } - } - - if excludeNouns != "" { - for _, noun := range strings.Split(excludeNouns, ",") { - AddExcludeFilter(noun) - } - } - - if excludeBypassLevelName != "" { - var found bool - if excludeBypassLevel, found = LevelNameMap[excludeBypassLevelName]; found == false { - panic(ErrExcludeLevelNameInvalid) - } - } -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/LICENSE b/backend/vendor/github.com/dsoprea/go-utility/v2/LICENSE deleted file mode 100644 index 8941063e..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright 2019 Random Ingenuity InformationWorks - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/README.md b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/README.md deleted file mode 100644 index eb03fea7..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/README.md +++ /dev/null @@ -1,64 +0,0 @@ -[![GoDoc](https://godoc.org/github.com/dsoprea/go-utility/filesystem?status.svg)](https://godoc.org/github.com/dsoprea/go-utility/filesystem) -[![Build Status](https://travis-ci.org/dsoprea/go-utility.svg?branch=master)](https://travis-ci.org/dsoprea/go-utility) -[![Coverage Status](https://coveralls.io/repos/github/dsoprea/go-utility/badge.svg?branch=master)](https://coveralls.io/github/dsoprea/go-utility?branch=master) -[![Go Report Card](https://goreportcard.com/badge/github.com/dsoprea/go-utility)](https://goreportcard.com/report/github.com/dsoprea/go-utility) - -# bounceback - -An `io.ReadSeeker` and `io.WriteSeeker` that returns to the right place before -reading or writing. Useful when the same file resource is being reused for reads -or writes throughout that file. - -# list_files - -A recursive path walker that supports filters. - -# seekable_buffer - -A memory structure that satisfies `io.ReadWriteSeeker`. - -# copy_bytes_between_positions - -Given an `io.ReadWriteSeeker`, copy N bytes from one position to an earlier -position. - -# read_counter, write_counter - -Wrap `io.Reader` and `io.Writer` structs in order to report how many bytes were -transferred. - -# readseekwritecloser - -Provides the ReadWriteSeekCloser interface that combines a RWS and a Closer. -Also provides a no-op wrapper to augment a plain RWS with a closer. - -# boundedreadwriteseek - -Wraps a ReadWriteSeeker such that no seeks can be at an offset less than a -specific-offset. - -# calculateseek - -Provides a reusable function with which to calculate seek offsets. - -# progress_wrapper - -Provides `io.Reader` and `io.Writer` wrappers that also trigger callbacks after -each call. The reader wrapper also invokes the callback upon EOF. - -# does_exist - -Check whether a file/directory exists using a file-path. - -# graceful_copy - -Do a copy but correctly handle short-writes and reads that might return a non- -zero read count *and* EOF. - -# readseeker_to_readerat - -A wrapper that allows an `io.ReadSeeker` to be used as a `io.ReaderAt`. - -# simplefileinfo - -An implementation of `os.FileInfo` to support testing. diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/bounceback.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/bounceback.go deleted file mode 100644 index 1112a10e..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/bounceback.go +++ /dev/null @@ -1,273 +0,0 @@ -package rifs - -import ( - "fmt" - "io" - - "github.com/dsoprea/go-logging" -) - -// BouncebackStats describes operation counts. -type BouncebackStats struct { - reads int - writes int - seeks int - syncs int -} - -func (bbs BouncebackStats) String() string { - return fmt.Sprintf( - "BouncebackStats", - bbs.reads, bbs.writes, bbs.seeks, bbs.syncs) -} - -type bouncebackBase struct { - currentPosition int64 - - stats BouncebackStats -} - -// Position returns the position that we're supposed to be at. -func (bb *bouncebackBase) Position() int64 { - - // TODO(dustin): Add test - - return bb.currentPosition -} - -// StatsReads returns the number of reads that have been attempted. -func (bb *bouncebackBase) StatsReads() int { - - // TODO(dustin): Add test - - return bb.stats.reads -} - -// StatsWrites returns the number of write operations. -func (bb *bouncebackBase) StatsWrites() int { - - // TODO(dustin): Add test - - return bb.stats.writes -} - -// StatsSeeks returns the number of seeks. -func (bb *bouncebackBase) StatsSeeks() int { - - // TODO(dustin): Add test - - return bb.stats.seeks -} - -// StatsSyncs returns the number of corrective seeks ("bounce-backs"). -func (bb *bouncebackBase) StatsSyncs() int { - - // TODO(dustin): Add test - - return bb.stats.syncs -} - -// Seek does a seek to an arbitrary place in the `io.ReadSeeker`. -func (bb *bouncebackBase) seek(s io.Seeker, offset int64, whence int) (newPosition int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // If the seek is relative, make sure we're where we're supposed to be *first*. - if whence != io.SeekStart { - err = bb.checkPosition(s) - log.PanicIf(err) - } - - bb.stats.seeks++ - - newPosition, err = s.Seek(offset, whence) - log.PanicIf(err) - - // Update our internal tracking. - bb.currentPosition = newPosition - - return newPosition, nil -} - -func (bb *bouncebackBase) checkPosition(s io.Seeker) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // Make sure we're where we're supposed to be. - - // This should have no overhead, and enables us to collect stats. - realCurrentPosition, err := s.Seek(0, io.SeekCurrent) - log.PanicIf(err) - - if realCurrentPosition != bb.currentPosition { - bb.stats.syncs++ - - _, err = s.Seek(bb.currentPosition, io.SeekStart) - log.PanicIf(err) - } - - return nil -} - -// BouncebackReader wraps a ReadSeeker, keeps track of our position, and -// seeks back to it before writing. This allows an underlying ReadWriteSeeker -// with an unstable position can still be used for a prolonged series of writes. -type BouncebackReader struct { - rs io.ReadSeeker - - bouncebackBase -} - -// NewBouncebackReader returns a `*BouncebackReader` struct. -func NewBouncebackReader(rs io.ReadSeeker) (br *BouncebackReader, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - initialPosition, err := rs.Seek(0, io.SeekCurrent) - log.PanicIf(err) - - bb := bouncebackBase{ - currentPosition: initialPosition, - } - - br = &BouncebackReader{ - rs: rs, - bouncebackBase: bb, - } - - return br, nil -} - -// Seek does a seek to an arbitrary place in the `io.ReadSeeker`. -func (br *BouncebackReader) Seek(offset int64, whence int) (newPosition int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - newPosition, err = br.bouncebackBase.seek(br.rs, offset, whence) - log.PanicIf(err) - - return newPosition, nil -} - -// Seek does a standard read. -func (br *BouncebackReader) Read(p []byte) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - br.bouncebackBase.stats.reads++ - - err = br.bouncebackBase.checkPosition(br.rs) - log.PanicIf(err) - - // Do read. - - n, err = br.rs.Read(p) - if err != nil { - if err == io.EOF { - return 0, io.EOF - } - - log.Panic(err) - } - - // Update our internal tracking. - br.bouncebackBase.currentPosition += int64(n) - - return n, nil -} - -// BouncebackWriter wraps a WriteSeeker, keeps track of our position, and -// seeks back to it before writing. This allows an underlying ReadWriteSeeker -// with an unstable position can still be used for a prolonged series of writes. -type BouncebackWriter struct { - ws io.WriteSeeker - - bouncebackBase -} - -// NewBouncebackWriter returns a new `BouncebackWriter` struct. -func NewBouncebackWriter(ws io.WriteSeeker) (bw *BouncebackWriter, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - initialPosition, err := ws.Seek(0, io.SeekCurrent) - log.PanicIf(err) - - bb := bouncebackBase{ - currentPosition: initialPosition, - } - - bw = &BouncebackWriter{ - ws: ws, - bouncebackBase: bb, - } - - return bw, nil -} - -// Seek puts us at a specific position in the internal writer for the next -// write/seek. -func (bw *BouncebackWriter) Seek(offset int64, whence int) (newPosition int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - newPosition, err = bw.bouncebackBase.seek(bw.ws, offset, whence) - log.PanicIf(err) - - return newPosition, nil -} - -// Write performs a write against the internal `WriteSeeker` starting at the -// position that we're supposed to be at. -func (bw *BouncebackWriter) Write(p []byte) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - bw.bouncebackBase.stats.writes++ - - // Make sure we're where we're supposed to be. - - realCurrentPosition, err := bw.ws.Seek(0, io.SeekCurrent) - log.PanicIf(err) - - if realCurrentPosition != bw.bouncebackBase.currentPosition { - bw.bouncebackBase.stats.seeks++ - - _, err = bw.ws.Seek(bw.bouncebackBase.currentPosition, io.SeekStart) - log.PanicIf(err) - } - - // Do write. - - n, err = bw.ws.Write(p) - log.PanicIf(err) - - // Update our internal tracking. - bw.bouncebackBase.currentPosition += int64(n) - - return n, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseekcloser.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseekcloser.go deleted file mode 100644 index 3d2e840f..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseekcloser.go +++ /dev/null @@ -1,95 +0,0 @@ -package rifs - -import ( - "io" - - "github.com/dsoprea/go-logging" -) - -// BoundedReadWriteSeekCloser wraps a RWS that is also a closer with boundaries. -// This proxies the RWS methods to the inner BRWS inside. -type BoundedReadWriteSeekCloser struct { - io.Closer - *BoundedReadWriteSeeker -} - -// NewBoundedReadWriteSeekCloser returns a new BoundedReadWriteSeekCloser. -func NewBoundedReadWriteSeekCloser(rwsc ReadWriteSeekCloser, minimumOffset int64, staticFileSize int64) (brwsc *BoundedReadWriteSeekCloser, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - bs, err := NewBoundedReadWriteSeeker(rwsc, minimumOffset, staticFileSize) - log.PanicIf(err) - - brwsc = &BoundedReadWriteSeekCloser{ - Closer: rwsc, - BoundedReadWriteSeeker: bs, - } - - return brwsc, nil -} - -// Seek forwards calls to the inner RWS. -func (rwsc *BoundedReadWriteSeekCloser) Seek(offset int64, whence int) (newOffset int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - newOffset, err = rwsc.BoundedReadWriteSeeker.Seek(offset, whence) - log.PanicIf(err) - - return newOffset, nil -} - -// Read forwards calls to the inner RWS. -func (rwsc *BoundedReadWriteSeekCloser) Read(buffer []byte) (readCount int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - readCount, err = rwsc.BoundedReadWriteSeeker.Read(buffer) - if err != nil { - if err == io.EOF { - return 0, err - } - - log.Panic(err) - } - - return readCount, nil -} - -// Write forwards calls to the inner RWS. -func (rwsc *BoundedReadWriteSeekCloser) Write(buffer []byte) (writtenCount int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - writtenCount, err = rwsc.BoundedReadWriteSeeker.Write(buffer) - log.PanicIf(err) - - return writtenCount, nil -} - -// Close forwards calls to the inner RWS. -func (rwsc *BoundedReadWriteSeekCloser) Close() (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - err = rwsc.Closer.Close() - log.PanicIf(err) - - return nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseeker.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseeker.go deleted file mode 100644 index d29657b0..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/boundedreadwriteseeker.go +++ /dev/null @@ -1,156 +0,0 @@ -package rifs - -import ( - "errors" - "io" - "os" - - "github.com/dsoprea/go-logging" -) - -var ( - // ErrSeekBeyondBound is returned when a seek is requested beyond the - // statically-given file-size. No writes or seeks beyond boundaries are - // supported with a statically-given file size. - ErrSeekBeyondBound = errors.New("seek beyond boundary") -) - -// BoundedReadWriteSeeker is a thin filter that ensures that no seeks can be done -// to offsets smaller than the one we were given. This supports libraries that -// might be expecting to read from the front of the stream being used on data -// that is in the middle of a stream instead. -type BoundedReadWriteSeeker struct { - io.ReadWriteSeeker - - currentOffset int64 - minimumOffset int64 - - staticFileSize int64 -} - -// NewBoundedReadWriteSeeker returns a new BoundedReadWriteSeeker instance. -func NewBoundedReadWriteSeeker(rws io.ReadWriteSeeker, minimumOffset int64, staticFileSize int64) (brws *BoundedReadWriteSeeker, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if minimumOffset < 0 { - log.Panicf("BoundedReadWriteSeeker minimum offset must be zero or larger: (%d)", minimumOffset) - } - - // We'll always started at a relative offset of zero. - _, err = rws.Seek(minimumOffset, os.SEEK_SET) - log.PanicIf(err) - - brws = &BoundedReadWriteSeeker{ - ReadWriteSeeker: rws, - - currentOffset: 0, - minimumOffset: minimumOffset, - - staticFileSize: staticFileSize, - } - - return brws, nil -} - -// Seek moves the offset to the given offset. Prevents offset from ever being -// moved left of `brws.minimumOffset`. -func (brws *BoundedReadWriteSeeker) Seek(offset int64, whence int) (updatedOffset int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - fileSize := brws.staticFileSize - - // If we weren't given a static file-size, look it up whenever it is needed. - if whence == os.SEEK_END && fileSize == 0 { - realFileSizeRaw, err := brws.ReadWriteSeeker.Seek(0, os.SEEK_END) - log.PanicIf(err) - - fileSize = realFileSizeRaw - brws.minimumOffset - } - - updatedOffset, err = CalculateSeek(brws.currentOffset, offset, whence, fileSize) - log.PanicIf(err) - - if brws.staticFileSize != 0 && updatedOffset > brws.staticFileSize { - //updatedOffset = int64(brws.staticFileSize) - - // NOTE(dustin): Presumably, this will only be disruptive to writes that are beyond the boundaries, which, if we're being used at all, should already account for the boundary and prevent this error from ever happening. So, time will tell how disruptive this is. - return 0, ErrSeekBeyondBound - } - - if updatedOffset != brws.currentOffset { - updatedRealOffset := updatedOffset + brws.minimumOffset - - _, err = brws.ReadWriteSeeker.Seek(updatedRealOffset, os.SEEK_SET) - log.PanicIf(err) - - brws.currentOffset = updatedOffset - } - - return updatedOffset, nil -} - -// Read forwards writes to the inner RWS. -func (brws *BoundedReadWriteSeeker) Read(buffer []byte) (readCount int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if brws.staticFileSize != 0 { - availableCount := brws.staticFileSize - brws.currentOffset - if availableCount == 0 { - return 0, io.EOF - } - - if int64(len(buffer)) > availableCount { - buffer = buffer[:availableCount] - } - } - - readCount, err = brws.ReadWriteSeeker.Read(buffer) - brws.currentOffset += int64(readCount) - - if err != nil { - if err == io.EOF { - return 0, err - } - - log.Panic(err) - } - - return readCount, nil -} - -// Write forwards writes to the inner RWS. -func (brws *BoundedReadWriteSeeker) Write(buffer []byte) (writtenCount int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if brws.staticFileSize != 0 { - log.Panicf("writes can not be performed if a static file-size was given") - } - - writtenCount, err = brws.ReadWriteSeeker.Write(buffer) - brws.currentOffset += int64(writtenCount) - - log.PanicIf(err) - - return writtenCount, nil -} - -// MinimumOffset returns the configured minimum-offset. -func (brws *BoundedReadWriteSeeker) MinimumOffset() int64 { - return brws.minimumOffset -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/calculate_seek.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/calculate_seek.go deleted file mode 100644 index cd59d727..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/calculate_seek.go +++ /dev/null @@ -1,52 +0,0 @@ -package rifs - -import ( - "io" - "os" - - "github.com/dsoprea/go-logging" -) - -// SeekType is a convenience type to associate the different seek-types with -// printable descriptions. -type SeekType int - -// String returns a descriptive string. -func (n SeekType) String() string { - if n == io.SeekCurrent { - return "SEEK-CURRENT" - } else if n == io.SeekEnd { - return "SEEK-END" - } else if n == io.SeekStart { - return "SEEK-START" - } - - log.Panicf("unknown seek-type: (%d)", n) - return "" -} - -// CalculateSeek calculates an offset in a file-stream given the parameters. -func CalculateSeek(currentOffset int64, delta int64, whence int, fileSize int64) (finalOffset int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - finalOffset = 0 - } - }() - - if whence == os.SEEK_SET { - finalOffset = delta - } else if whence == os.SEEK_CUR { - finalOffset = currentOffset + delta - } else if whence == os.SEEK_END { - finalOffset = fileSize + delta - } else { - log.Panicf("whence not valid: (%d)", whence) - } - - if finalOffset < 0 { - finalOffset = 0 - } - - return finalOffset, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/common.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/common.go deleted file mode 100644 index 55156d2a..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/common.go +++ /dev/null @@ -1,15 +0,0 @@ -package rifs - -import ( - "os" - "path" -) - -var ( - appPath string -) - -func init() { - goPath := os.Getenv("GOPATH") - appPath = path.Join(goPath, "src", "github.com", "dsoprea", "go-utility", "filesystem", "v2") -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/copy_bytes_between_positions.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/copy_bytes_between_positions.go deleted file mode 100644 index 89ee9a92..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/copy_bytes_between_positions.go +++ /dev/null @@ -1,40 +0,0 @@ -package rifs - -import ( - "io" - "os" - - "github.com/dsoprea/go-logging" -) - -// CopyBytesBetweenPositions will copy bytes from one position in the given RWS -// to an earlier position in the same RWS. -func CopyBytesBetweenPositions(rws io.ReadWriteSeeker, fromPosition, toPosition int64, count int) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if fromPosition <= toPosition { - log.Panicf("from position (%d) must be larger than to position (%d)", fromPosition, toPosition) - } - - br, err := NewBouncebackReader(rws) - log.PanicIf(err) - - _, err = br.Seek(fromPosition, os.SEEK_SET) - log.PanicIf(err) - - bw, err := NewBouncebackWriter(rws) - log.PanicIf(err) - - _, err = bw.Seek(toPosition, os.SEEK_SET) - log.PanicIf(err) - - written, err := io.CopyN(bw, br, int64(count)) - log.PanicIf(err) - - n = int(written) - return n, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/does_exist.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/does_exist.go deleted file mode 100644 index f5e6cd20..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/does_exist.go +++ /dev/null @@ -1,19 +0,0 @@ -package rifs - -import ( - "os" -) - -// DoesExist returns true if we can open the given file/path without error. We -// can't simply use `os.IsNotExist()` because we'll get a different error when -// the parent directory doesn't exist, and really the only important thing is if -// it exists *and* it's readable. -func DoesExist(filepath string) bool { - f, err := os.Open(filepath) - if err != nil { - return false - } - - f.Close() - return true -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/graceful_copy.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/graceful_copy.go deleted file mode 100644 index 7c18f60a..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/graceful_copy.go +++ /dev/null @@ -1,54 +0,0 @@ -package rifs - -import ( - "fmt" - "io" -) - -const ( - defaultCopyBufferSize = 1024 * 1024 -) - -// GracefulCopy willcopy while enduring lesser normal issues. -// -// - We'll ignore EOF if the read byte-count is more than zero. Only an EOF when -// zero bytes were read will terminate the loop. -// -// - Ignore short-writes. If less bytes were written than the bytes that were -// given, we'll keep trying until done. -func GracefulCopy(w io.Writer, r io.Reader, buffer []byte) (copyCount int, err error) { - if buffer == nil { - buffer = make([]byte, defaultCopyBufferSize) - } - - for { - readCount, err := r.Read(buffer) - if err != nil { - if err != io.EOF { - err = fmt.Errorf("read error: %s", err.Error()) - return 0, err - } - - // Only break on EOF if no bytes were actually read. - if readCount == 0 { - break - } - } - - writeBuffer := buffer[:readCount] - - for len(writeBuffer) > 0 { - writtenCount, err := w.Write(writeBuffer) - if err != nil { - err = fmt.Errorf("write error: %s", err.Error()) - return 0, err - } - - writeBuffer = writeBuffer[writtenCount:] - } - - copyCount += readCount - } - - return copyCount, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/list_files.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/list_files.go deleted file mode 100644 index bcdbd67c..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/list_files.go +++ /dev/null @@ -1,143 +0,0 @@ -package rifs - -import ( - "io" - "os" - "path" - - "github.com/dsoprea/go-logging" -) - -// FileListFilterPredicate is the callback predicate used for filtering. -type FileListFilterPredicate func(parent string, child os.FileInfo) (hit bool, err error) - -// VisitedFile is one visited file. -type VisitedFile struct { - Filepath string - Info os.FileInfo - Index int -} - -// ListFiles feeds a continuous list of files from a recursive folder scan. An -// optional predicate can be provided in order to filter. When done, the -// `filesC` channel is closed. If there's an error, the `errC` channel will -// receive it. -func ListFiles(rootPath string, cb FileListFilterPredicate) (filesC chan VisitedFile, count int, errC chan error) { - defer func() { - if state := recover(); state != nil { - err := log.Wrap(state.(error)) - log.Panic(err) - } - }() - - // Make sure the path exists. - - f, err := os.Open(rootPath) - log.PanicIf(err) - - f.Close() - - // Do our thing. - - filesC = make(chan VisitedFile, 100) - errC = make(chan error, 1) - index := 0 - - go func() { - defer func() { - if state := recover(); state != nil { - err := log.Wrap(state.(error)) - errC <- err - } - }() - - queue := []string{rootPath} - for len(queue) > 0 { - // Pop the next folder to process off the queue. - var thisPath string - thisPath, queue = queue[0], queue[1:] - - // Skip path if a symlink. - - fi, err := os.Lstat(thisPath) - log.PanicIf(err) - - if (fi.Mode() & os.ModeSymlink) > 0 { - continue - } - - // Read information. - - folderF, err := os.Open(thisPath) - if err != nil { - errC <- log.Wrap(err) - return - } - - // Iterate through children. - - for { - children, err := folderF.Readdir(1000) - if err == io.EOF { - break - } else if err != nil { - errC <- log.Wrap(err) - return - } - - for _, child := range children { - filepath := path.Join(thisPath, child.Name()) - - // Skip if a file symlink. - - fi, err := os.Lstat(filepath) - log.PanicIf(err) - - if (fi.Mode() & os.ModeSymlink) > 0 { - continue - } - - // If a predicate was given, determine if this child will be - // left behind. - if cb != nil { - hit, err := cb(thisPath, child) - - if err != nil { - errC <- log.Wrap(err) - return - } - - if hit == false { - continue - } - } - - index++ - - // Push file to channel. - - vf := VisitedFile{ - Filepath: filepath, - Info: child, - Index: index, - } - - filesC <- vf - - // If a folder, queue for later processing. - - if child.IsDir() == true { - queue = append(queue, filepath) - } - } - } - - folderF.Close() - } - - close(filesC) - close(errC) - }() - - return filesC, index, errC -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/progress_wrapper.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/progress_wrapper.go deleted file mode 100644 index 0a064c53..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/progress_wrapper.go +++ /dev/null @@ -1,93 +0,0 @@ -package rifs - -import ( - "io" - "time" - - "github.com/dsoprea/go-logging" -) - -// ProgressFunc receives progress updates. -type ProgressFunc func(n int, duration time.Duration, isEof bool) error - -// WriteProgressWrapper wraps a reader and calls a callback after each read with -// count and duration info. -type WriteProgressWrapper struct { - w io.Writer - progressCb ProgressFunc -} - -// NewWriteProgressWrapper returns a new WPW instance. -func NewWriteProgressWrapper(w io.Writer, progressCb ProgressFunc) io.Writer { - return &WriteProgressWrapper{ - w: w, - progressCb: progressCb, - } -} - -// Write does a write and calls the callback. -func (wpw *WriteProgressWrapper) Write(buffer []byte) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - startAt := time.Now() - - n, err = wpw.w.Write(buffer) - log.PanicIf(err) - - duration := time.Since(startAt) - - err = wpw.progressCb(n, duration, false) - log.PanicIf(err) - - return n, nil -} - -// ReadProgressWrapper wraps a reader and calls a callback after each read with -// count and duration info. -type ReadProgressWrapper struct { - r io.Reader - progressCb ProgressFunc -} - -// NewReadProgressWrapper returns a new RPW instance. -func NewReadProgressWrapper(r io.Reader, progressCb ProgressFunc) io.Reader { - return &ReadProgressWrapper{ - r: r, - progressCb: progressCb, - } -} - -// Read reads data and calls the callback. -func (rpw *ReadProgressWrapper) Read(buffer []byte) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - startAt := time.Now() - - n, err = rpw.r.Read(buffer) - - duration := time.Since(startAt) - - if err != nil { - if err == io.EOF { - errInner := rpw.progressCb(n, duration, true) - log.PanicIf(errInner) - - return n, err - } - - log.Panic(err) - } - - err = rpw.progressCb(n, duration, false) - log.PanicIf(err) - - return n, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/read_counter.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/read_counter.go deleted file mode 100644 index d878ca4e..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/read_counter.go +++ /dev/null @@ -1,36 +0,0 @@ -package rifs - -import ( - "io" -) - -// ReadCounter proxies read requests and maintains a counter of bytes read. -type ReadCounter struct { - r io.Reader - counter int -} - -// NewReadCounter returns a new `ReadCounter` struct wrapping a `Reader`. -func NewReadCounter(r io.Reader) *ReadCounter { - return &ReadCounter{ - r: r, - } -} - -// Count returns the total number of bytes read. -func (rc *ReadCounter) Count() int { - return rc.counter -} - -// Reset resets the counter to zero. -func (rc *ReadCounter) Reset() { - rc.counter = 0 -} - -// Read forwards a read to the underlying `Reader` while bumping the counter. -func (rc *ReadCounter) Read(b []byte) (n int, err error) { - n, err = rc.r.Read(b) - rc.counter += n - - return n, err -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readseeker_to_readerat.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readseeker_to_readerat.go deleted file mode 100644 index 3f3ec44d..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readseeker_to_readerat.go +++ /dev/null @@ -1,63 +0,0 @@ -package rifs - -import ( - "io" - - "github.com/dsoprea/go-logging" -) - -// ReadSeekerToReaderAt is a wrapper that allows a ReadSeeker to masquerade as a -// ReaderAt. -type ReadSeekerToReaderAt struct { - rs io.ReadSeeker -} - -// NewReadSeekerToReaderAt returns a new ReadSeekerToReaderAt instance. -func NewReadSeekerToReaderAt(rs io.ReadSeeker) *ReadSeekerToReaderAt { - return &ReadSeekerToReaderAt{ - rs: rs, - } -} - -// ReadAt is a wrapper that satisfies the ReaderAt interface. -// -// Note that a requirement of ReadAt is that it doesn't have an effect on the -// offset in the underlying resource as well as that concurrent calls can be -// made to it. Since we're capturing the current offset in the underlying -// resource and then seeking back to it before returning, it is the -// responsibility of the caller to serialize (i.e. use a mutex with) these -// requests in order to eliminate race-conditions in the parallel-usage -// scenario. -// -// Note also that, since ReadAt() is going to be called on a particular -// instance, that instance is going to internalize a file resource, that file- -// resource is provided by the OS, and [most] OSs are only gonna support one -// file-position per resource, locking is already going to be a necessary -// internal semantic of a ReaderAt implementation. -func (rstra *ReadSeekerToReaderAt) ReadAt(p []byte, offset int64) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - originalOffset, err := rstra.rs.Seek(0, io.SeekCurrent) - log.PanicIf(err) - - defer func() { - _, err := rstra.rs.Seek(originalOffset, io.SeekStart) - log.PanicIf(err) - }() - - _, err = rstra.rs.Seek(offset, io.SeekStart) - log.PanicIf(err) - - // Note that all errors will be wrapped, here. The usage of this method is - // such that typically no specific errors would be expected as part of - // normal operation (in which case we'd check for those first and return - // them directly). - n, err = io.ReadFull(rstra.rs, p) - log.PanicIf(err) - - return n, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readwriteseekcloser.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readwriteseekcloser.go deleted file mode 100644 index c583a802..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/readwriteseekcloser.go +++ /dev/null @@ -1,29 +0,0 @@ -package rifs - -import ( - "io" -) - -// ReadWriteSeekCloser satisfies `io.ReadWriteSeeker` and `io.Closer` -// interfaces. -type ReadWriteSeekCloser interface { - io.ReadWriteSeeker - io.Closer -} - -type readWriteSeekNoopCloser struct { - io.ReadWriteSeeker -} - -// ReadWriteSeekNoopCloser wraps a `io.ReadWriteSeeker` with a no-op Close() -// call. -func ReadWriteSeekNoopCloser(rws io.ReadWriteSeeker) ReadWriteSeekCloser { - return readWriteSeekNoopCloser{ - ReadWriteSeeker: rws, - } -} - -// Close does nothing but allows the RWS to satisfy `io.Closer`.:wq -func (readWriteSeekNoopCloser) Close() (err error) { - return nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/seekable_buffer.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/seekable_buffer.go deleted file mode 100644 index 5d41bb5d..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/seekable_buffer.go +++ /dev/null @@ -1,146 +0,0 @@ -package rifs - -import ( - "io" - "os" - - "github.com/dsoprea/go-logging" -) - -// SeekableBuffer is a simple memory structure that satisfies -// `io.ReadWriteSeeker`. -type SeekableBuffer struct { - data []byte - position int64 -} - -// NewSeekableBuffer is a factory that returns a `*SeekableBuffer`. -func NewSeekableBuffer() *SeekableBuffer { - data := make([]byte, 0) - - return &SeekableBuffer{ - data: data, - } -} - -// NewSeekableBufferWithBytes is a factory that returns a `*SeekableBuffer`. -func NewSeekableBufferWithBytes(originalData []byte) *SeekableBuffer { - data := make([]byte, len(originalData)) - copy(data, originalData) - - return &SeekableBuffer{ - data: data, - } -} - -func len64(data []byte) int64 { - return int64(len(data)) -} - -// Bytes returns the underlying slice. -func (sb *SeekableBuffer) Bytes() []byte { - return sb.data -} - -// Len returns the number of bytes currently stored. -func (sb *SeekableBuffer) Len() int { - return len(sb.data) -} - -// Write does a standard write to the internal slice. -func (sb *SeekableBuffer) Write(p []byte) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - // The current position we're already at is past the end of the data we - // actually have. Extend our buffer up to our current position. - if sb.position > len64(sb.data) { - extra := make([]byte, sb.position-len64(sb.data)) - sb.data = append(sb.data, extra...) - } - - positionFromEnd := len64(sb.data) - sb.position - tailCount := positionFromEnd - len64(p) - - var tailBytes []byte - if tailCount > 0 { - tailBytes = sb.data[len64(sb.data)-tailCount:] - sb.data = append(sb.data[:sb.position], p...) - } else { - sb.data = append(sb.data[:sb.position], p...) - } - - if tailBytes != nil { - sb.data = append(sb.data, tailBytes...) - } - - dataSize := len64(p) - sb.position += dataSize - - return int(dataSize), nil -} - -// Read does a standard read against the internal slice. -func (sb *SeekableBuffer) Read(p []byte) (n int, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if sb.position >= len64(sb.data) { - return 0, io.EOF - } - - n = copy(p, sb.data[sb.position:]) - sb.position += int64(n) - - return n, nil -} - -// Truncate either chops or extends the internal buffer. -func (sb *SeekableBuffer) Truncate(size int64) (err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - sizeInt := int(size) - if sizeInt < len(sb.data)-1 { - sb.data = sb.data[:sizeInt] - } else { - new := make([]byte, sizeInt-len(sb.data)) - sb.data = append(sb.data, new...) - } - - return nil -} - -// Seek does a standard seek on the internal slice. -func (sb *SeekableBuffer) Seek(offset int64, whence int) (n int64, err error) { - defer func() { - if state := recover(); state != nil { - err = log.Wrap(state.(error)) - } - }() - - if whence == os.SEEK_SET { - sb.position = offset - } else if whence == os.SEEK_END { - sb.position = len64(sb.data) + offset - } else if whence == os.SEEK_CUR { - sb.position += offset - } else { - log.Panicf("seek whence is not valid: (%d)", whence) - } - - if sb.position < 0 { - sb.position = 0 - } - - return sb.position, nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/simplefileinfo.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/simplefileinfo.go deleted file mode 100644 index a227b0b0..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/simplefileinfo.go +++ /dev/null @@ -1,69 +0,0 @@ -package rifs - -import ( - "os" - "time" -) - -// SimpleFileInfo is a simple `os.FileInfo` implementation useful for testing -// with the bare minimum. -type SimpleFileInfo struct { - filename string - isDir bool - size int64 - mode os.FileMode - modTime time.Time -} - -// NewSimpleFileInfoWithFile returns a new file-specific SimpleFileInfo. -func NewSimpleFileInfoWithFile(filename string, size int64, mode os.FileMode, modTime time.Time) *SimpleFileInfo { - return &SimpleFileInfo{ - filename: filename, - isDir: false, - size: size, - mode: mode, - modTime: modTime, - } -} - -// NewSimpleFileInfoWithDirectory returns a new directory-specific -// SimpleFileInfo. -func NewSimpleFileInfoWithDirectory(filename string, modTime time.Time) *SimpleFileInfo { - return &SimpleFileInfo{ - filename: filename, - isDir: true, - mode: os.ModeDir, - modTime: modTime, - } -} - -// Name returns the base name of the file. -func (sfi *SimpleFileInfo) Name() string { - return sfi.filename -} - -// Size returns the length in bytes for regular files; system-dependent for -// others. -func (sfi *SimpleFileInfo) Size() int64 { - return sfi.size -} - -// Mode returns the file mode bits. -func (sfi *SimpleFileInfo) Mode() os.FileMode { - return sfi.mode -} - -// ModTime returns the modification time. -func (sfi *SimpleFileInfo) ModTime() time.Time { - return sfi.modTime -} - -// IsDir returns true if a directory. -func (sfi *SimpleFileInfo) IsDir() bool { - return sfi.isDir -} - -// Sys returns internal state. -func (sfi *SimpleFileInfo) Sys() interface{} { - return nil -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/utility.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/utility.go deleted file mode 100644 index 4b33b41a..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/utility.go +++ /dev/null @@ -1,17 +0,0 @@ -package rifs - -import ( - "io" - "os" - - "github.com/dsoprea/go-logging" -) - -// GetOffset returns the current offset of the Seeker and just panics if unable -// to find it. -func GetOffset(s io.Seeker) int64 { - offsetRaw, err := s.Seek(0, os.SEEK_CUR) - log.PanicIf(err) - - return offsetRaw -} diff --git a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/write_counter.go b/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/write_counter.go deleted file mode 100644 index dc39901d..00000000 --- a/backend/vendor/github.com/dsoprea/go-utility/v2/filesystem/write_counter.go +++ /dev/null @@ -1,36 +0,0 @@ -package rifs - -import ( - "io" -) - -// WriteCounter proxies write requests and maintains a counter of bytes written. -type WriteCounter struct { - w io.Writer - counter int -} - -// NewWriteCounter returns a new `WriteCounter` struct wrapping a `Writer`. -func NewWriteCounter(w io.Writer) *WriteCounter { - return &WriteCounter{ - w: w, - } -} - -// Count returns the total number of bytes read. -func (wc *WriteCounter) Count() int { - return wc.counter -} - -// Reset resets the counter to zero. -func (wc *WriteCounter) Reset() { - wc.counter = 0 -} - -// Write forwards a write to the underlying `Writer` while bumping the counter. -func (wc *WriteCounter) Write(b []byte) (n int, err error) { - n, err = wc.w.Write(b) - wc.counter += n - - return n, err -} diff --git a/backend/vendor/github.com/flynn/go-shlex/COPYING b/backend/vendor/github.com/flynn/go-shlex/COPYING deleted file mode 100644 index d6456956..00000000 --- a/backend/vendor/github.com/flynn/go-shlex/COPYING +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/vendor/github.com/flynn/go-shlex/Makefile b/backend/vendor/github.com/flynn/go-shlex/Makefile deleted file mode 100644 index 038d9a48..00000000 --- a/backend/vendor/github.com/flynn/go-shlex/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2011 Google Inc. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include $(GOROOT)/src/Make.inc - -TARG=shlex -GOFILES=\ - shlex.go\ - -include $(GOROOT)/src/Make.pkg diff --git a/backend/vendor/github.com/flynn/go-shlex/README.md b/backend/vendor/github.com/flynn/go-shlex/README.md deleted file mode 100644 index c86bcc06..00000000 --- a/backend/vendor/github.com/flynn/go-shlex/README.md +++ /dev/null @@ -1,2 +0,0 @@ -go-shlex is a simple lexer for go that supports shell-style quoting, -commenting, and escaping. diff --git a/backend/vendor/github.com/flynn/go-shlex/shlex.go b/backend/vendor/github.com/flynn/go-shlex/shlex.go deleted file mode 100644 index 7aeace80..00000000 --- a/backend/vendor/github.com/flynn/go-shlex/shlex.go +++ /dev/null @@ -1,457 +0,0 @@ -/* -Copyright 2012 Google Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package shlex - -/* -Package shlex implements a simple lexer which splits input in to tokens using -shell-style rules for quoting and commenting. -*/ -import ( - "bufio" - "errors" - "fmt" - "io" - "strings" -) - -/* -A TokenType is a top-level token; a word, space, comment, unknown. -*/ -type TokenType int - -/* -A RuneTokenType is the type of a UTF-8 character; a character, quote, space, escape. -*/ -type RuneTokenType int - -type lexerState int - -type Token struct { - tokenType TokenType - value string -} - -/* -Two tokens are equal if both their types and values are equal. A nil token can -never equal another token. -*/ -func (a *Token) Equal(b *Token) bool { - if a == nil || b == nil { - return false - } - if a.tokenType != b.tokenType { - return false - } - return a.value == b.value -} - -const ( - RUNE_CHAR string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-,/@$*()+=><:;&^%~|!?[]{}" - RUNE_SPACE string = " \t\r\n" - RUNE_ESCAPING_QUOTE string = "\"" - RUNE_NONESCAPING_QUOTE string = "'" - RUNE_ESCAPE = "\\" - RUNE_COMMENT = "#" - - RUNETOKEN_UNKNOWN RuneTokenType = 0 - RUNETOKEN_CHAR RuneTokenType = 1 - RUNETOKEN_SPACE RuneTokenType = 2 - RUNETOKEN_ESCAPING_QUOTE RuneTokenType = 3 - RUNETOKEN_NONESCAPING_QUOTE RuneTokenType = 4 - RUNETOKEN_ESCAPE RuneTokenType = 5 - RUNETOKEN_COMMENT RuneTokenType = 6 - RUNETOKEN_EOF RuneTokenType = 7 - - TOKEN_UNKNOWN TokenType = 0 - TOKEN_WORD TokenType = 1 - TOKEN_SPACE TokenType = 2 - TOKEN_COMMENT TokenType = 3 - - STATE_START lexerState = 0 - STATE_INWORD lexerState = 1 - STATE_ESCAPING lexerState = 2 - STATE_ESCAPING_QUOTED lexerState = 3 - STATE_QUOTED_ESCAPING lexerState = 4 - STATE_QUOTED lexerState = 5 - STATE_COMMENT lexerState = 6 - - INITIAL_TOKEN_CAPACITY int = 100 -) - -/* -A type for classifying characters. This allows for different sorts of -classifiers - those accepting extended non-ascii chars, or strict posix -compatibility, for example. -*/ -type TokenClassifier struct { - typeMap map[int32]RuneTokenType -} - -func addRuneClass(typeMap *map[int32]RuneTokenType, runes string, tokenType RuneTokenType) { - for _, rune := range runes { - (*typeMap)[int32(rune)] = tokenType - } -} - -/* -Create a new classifier for basic ASCII characters. -*/ -func NewDefaultClassifier() *TokenClassifier { - typeMap := map[int32]RuneTokenType{} - addRuneClass(&typeMap, RUNE_CHAR, RUNETOKEN_CHAR) - addRuneClass(&typeMap, RUNE_SPACE, RUNETOKEN_SPACE) - addRuneClass(&typeMap, RUNE_ESCAPING_QUOTE, RUNETOKEN_ESCAPING_QUOTE) - addRuneClass(&typeMap, RUNE_NONESCAPING_QUOTE, RUNETOKEN_NONESCAPING_QUOTE) - addRuneClass(&typeMap, RUNE_ESCAPE, RUNETOKEN_ESCAPE) - addRuneClass(&typeMap, RUNE_COMMENT, RUNETOKEN_COMMENT) - return &TokenClassifier{ - typeMap: typeMap} -} - -func (classifier *TokenClassifier) ClassifyRune(rune int32) RuneTokenType { - return classifier.typeMap[rune] -} - -/* -A type for turning an input stream in to a sequence of strings. Whitespace and -comments are skipped. -*/ -type Lexer struct { - tokenizer *Tokenizer -} - -/* -Create a new lexer. -*/ -func NewLexer(r io.Reader) (*Lexer, error) { - - tokenizer, err := NewTokenizer(r) - if err != nil { - return nil, err - } - lexer := &Lexer{tokenizer: tokenizer} - return lexer, nil -} - -/* -Return the next word, and an error value. If there are no more words, the error -will be io.EOF. -*/ -func (l *Lexer) NextWord() (string, error) { - var token *Token - var err error - for { - token, err = l.tokenizer.NextToken() - if err != nil { - return "", err - } - switch token.tokenType { - case TOKEN_WORD: - { - return token.value, nil - } - case TOKEN_COMMENT: - { - // skip comments - } - default: - { - panic(fmt.Sprintf("Unknown token type: %v", token.tokenType)) - } - } - } - return "", io.EOF -} - -/* -A type for turning an input stream in to a sequence of typed tokens. -*/ -type Tokenizer struct { - input *bufio.Reader - classifier *TokenClassifier -} - -/* -Create a new tokenizer. -*/ -func NewTokenizer(r io.Reader) (*Tokenizer, error) { - input := bufio.NewReader(r) - classifier := NewDefaultClassifier() - tokenizer := &Tokenizer{ - input: input, - classifier: classifier} - return tokenizer, nil -} - -/* -Scan the stream for the next token. - -This uses an internal state machine. It will panic if it encounters a character -which it does not know how to handle. -*/ -func (t *Tokenizer) scanStream() (*Token, error) { - state := STATE_START - var tokenType TokenType - value := make([]int32, 0, INITIAL_TOKEN_CAPACITY) - var ( - nextRune int32 - nextRuneType RuneTokenType - err error - ) -SCAN: - for { - nextRune, _, err = t.input.ReadRune() - nextRuneType = t.classifier.ClassifyRune(nextRune) - if err != nil { - if err == io.EOF { - nextRuneType = RUNETOKEN_EOF - err = nil - } else { - return nil, err - } - } - switch state { - case STATE_START: // no runes read yet - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - return nil, io.EOF - } - case RUNETOKEN_CHAR: - { - tokenType = TOKEN_WORD - value = append(value, nextRune) - state = STATE_INWORD - } - case RUNETOKEN_SPACE: - { - } - case RUNETOKEN_ESCAPING_QUOTE: - { - tokenType = TOKEN_WORD - state = STATE_QUOTED_ESCAPING - } - case RUNETOKEN_NONESCAPING_QUOTE: - { - tokenType = TOKEN_WORD - state = STATE_QUOTED - } - case RUNETOKEN_ESCAPE: - { - tokenType = TOKEN_WORD - state = STATE_ESCAPING - } - case RUNETOKEN_COMMENT: - { - tokenType = TOKEN_COMMENT - state = STATE_COMMENT - } - default: - { - return nil, errors.New(fmt.Sprintf("Unknown rune: %v", nextRune)) - } - } - } - case STATE_INWORD: // in a regular word - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - break SCAN - } - case RUNETOKEN_CHAR, RUNETOKEN_COMMENT: - { - value = append(value, nextRune) - } - case RUNETOKEN_SPACE: - { - t.input.UnreadRune() - break SCAN - } - case RUNETOKEN_ESCAPING_QUOTE: - { - state = STATE_QUOTED_ESCAPING - } - case RUNETOKEN_NONESCAPING_QUOTE: - { - state = STATE_QUOTED - } - case RUNETOKEN_ESCAPE: - { - state = STATE_ESCAPING - } - default: - { - return nil, errors.New(fmt.Sprintf("Uknown rune: %v", nextRune)) - } - } - } - case STATE_ESCAPING: // the next rune after an escape character - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - err = errors.New("EOF found after escape character") - break SCAN - } - case RUNETOKEN_CHAR, RUNETOKEN_SPACE, RUNETOKEN_ESCAPING_QUOTE, RUNETOKEN_NONESCAPING_QUOTE, RUNETOKEN_ESCAPE, RUNETOKEN_COMMENT: - { - state = STATE_INWORD - value = append(value, nextRune) - } - default: - { - return nil, errors.New(fmt.Sprintf("Uknown rune: %v", nextRune)) - } - } - } - case STATE_ESCAPING_QUOTED: // the next rune after an escape character, in double quotes - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - err = errors.New("EOF found after escape character") - break SCAN - } - case RUNETOKEN_CHAR, RUNETOKEN_SPACE, RUNETOKEN_ESCAPING_QUOTE, RUNETOKEN_NONESCAPING_QUOTE, RUNETOKEN_ESCAPE, RUNETOKEN_COMMENT: - { - state = STATE_QUOTED_ESCAPING - value = append(value, nextRune) - } - default: - { - return nil, errors.New(fmt.Sprintf("Uknown rune: %v", nextRune)) - } - } - } - case STATE_QUOTED_ESCAPING: // in escaping double quotes - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - err = errors.New("EOF found when expecting closing quote.") - break SCAN - } - case RUNETOKEN_CHAR, RUNETOKEN_UNKNOWN, RUNETOKEN_SPACE, RUNETOKEN_NONESCAPING_QUOTE, RUNETOKEN_COMMENT: - { - value = append(value, nextRune) - } - case RUNETOKEN_ESCAPING_QUOTE: - { - state = STATE_INWORD - } - case RUNETOKEN_ESCAPE: - { - state = STATE_ESCAPING_QUOTED - } - default: - { - return nil, errors.New(fmt.Sprintf("Uknown rune: %v", nextRune)) - } - } - } - case STATE_QUOTED: // in non-escaping single quotes - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - err = errors.New("EOF found when expecting closing quote.") - break SCAN - } - case RUNETOKEN_CHAR, RUNETOKEN_UNKNOWN, RUNETOKEN_SPACE, RUNETOKEN_ESCAPING_QUOTE, RUNETOKEN_ESCAPE, RUNETOKEN_COMMENT: - { - value = append(value, nextRune) - } - case RUNETOKEN_NONESCAPING_QUOTE: - { - state = STATE_INWORD - } - default: - { - return nil, errors.New(fmt.Sprintf("Uknown rune: %v", nextRune)) - } - } - } - case STATE_COMMENT: - { - switch nextRuneType { - case RUNETOKEN_EOF: - { - break SCAN - } - case RUNETOKEN_CHAR, RUNETOKEN_UNKNOWN, RUNETOKEN_ESCAPING_QUOTE, RUNETOKEN_ESCAPE, RUNETOKEN_COMMENT, RUNETOKEN_NONESCAPING_QUOTE: - { - value = append(value, nextRune) - } - case RUNETOKEN_SPACE: - { - if nextRune == '\n' { - state = STATE_START - break SCAN - } else { - value = append(value, nextRune) - } - } - default: - { - return nil, errors.New(fmt.Sprintf("Uknown rune: %v", nextRune)) - } - } - } - default: - { - panic(fmt.Sprintf("Unexpected state: %v", state)) - } - } - } - token := &Token{ - tokenType: tokenType, - value: string(value)} - return token, err -} - -/* -Return the next token in the stream, and an error value. If there are no more -tokens available, the error value will be io.EOF. -*/ -func (t *Tokenizer) NextToken() (*Token, error) { - return t.scanStream() -} - -/* -Split a string in to a slice of strings, based upon shell-style rules for -quoting, escaping, and spaces. -*/ -func Split(s string) ([]string, error) { - l, err := NewLexer(strings.NewReader(s)) - if err != nil { - return nil, err - } - subStrings := []string{} - for { - word, err := l.NextWord() - if err != nil { - if err == io.EOF { - return subStrings, nil - } - return subStrings, err - } - subStrings = append(subStrings, word) - } - return subStrings, nil -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/.editorconfig b/backend/vendor/github.com/fsnotify/fsnotify/.editorconfig deleted file mode 100644 index fad89585..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*.go] -indent_style = tab -indent_size = 4 -insert_final_newline = true - -[*.{yml,yaml}] -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/backend/vendor/github.com/fsnotify/fsnotify/.gitattributes b/backend/vendor/github.com/fsnotify/fsnotify/.gitattributes deleted file mode 100644 index 32f1001b..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -go.sum linguist-generated diff --git a/backend/vendor/github.com/fsnotify/fsnotify/.gitignore b/backend/vendor/github.com/fsnotify/fsnotify/.gitignore deleted file mode 100644 index 1d89d85c..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -# go test -c output -*.test -*.test.exe - -# Output of go build ./cmd/fsnotify -/fsnotify diff --git a/backend/vendor/github.com/fsnotify/fsnotify/.mailmap b/backend/vendor/github.com/fsnotify/fsnotify/.mailmap deleted file mode 100644 index a04f2907..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/.mailmap +++ /dev/null @@ -1,2 +0,0 @@ -Chris Howey -Nathan Youngman <4566+nathany@users.noreply.github.com> diff --git a/backend/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md b/backend/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md deleted file mode 100644 index 77f9593b..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md +++ /dev/null @@ -1,470 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -Nothing yet. - -## [1.6.0] - 2022-10-13 - -This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, -but not documented). It also increases the minimum Linux version to 2.6.32. - -### Additions - -- all: add `Event.Has()` and `Op.Has()` ([#477]) - - This makes checking events a lot easier; for example: - - if event.Op&Write == Write && !(event.Op&Remove == Remove) { - } - - Becomes: - - if event.Has(Write) && !event.Has(Remove) { - } - -- all: add cmd/fsnotify ([#463]) - - A command-line utility for testing and some examples. - -### Changes and fixes - -- inotify: don't ignore events for files that don't exist ([#260], [#470]) - - Previously the inotify watcher would call `os.Lstat()` to check if a file - still exists before emitting events. - - This was inconsistent with other platforms and resulted in inconsistent event - reporting (e.g. when a file is quickly removed and re-created), and generally - a source of confusion. It was added in 2013 to fix a memory leak that no - longer exists. - -- all: return `ErrNonExistentWatch` when `Remove()` is called on a path that's - not watched ([#460]) - -- inotify: replace epoll() with non-blocking inotify ([#434]) - - Non-blocking inotify was not generally available at the time this library was - written in 2014, but now it is. As a result, the minimum Linux version is - bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster. - -- kqueue: don't check for events every 100ms ([#480]) - - The watcher would wake up every 100ms, even when there was nothing to do. Now - it waits until there is something to do. - -- macos: retry opening files on EINTR ([#475]) - -- kqueue: skip unreadable files ([#479]) - - kqueue requires a file descriptor for every file in a directory; this would - fail if a file was unreadable by the current user. Now these files are simply - skipped. - -- windows: fix renaming a watched directory if the parent is also watched ([#370]) - -- windows: increase buffer size from 4K to 64K ([#485]) - -- windows: close file handle on Remove() ([#288]) - -- kqueue: put pathname in the error if watching a file fails ([#471]) - -- inotify, windows: calling Close() more than once could race ([#465]) - -- kqueue: improve Close() performance ([#233]) - -- all: various documentation additions and clarifications. - -[#233]: https://github.com/fsnotify/fsnotify/pull/233 -[#260]: https://github.com/fsnotify/fsnotify/pull/260 -[#288]: https://github.com/fsnotify/fsnotify/pull/288 -[#370]: https://github.com/fsnotify/fsnotify/pull/370 -[#434]: https://github.com/fsnotify/fsnotify/pull/434 -[#460]: https://github.com/fsnotify/fsnotify/pull/460 -[#463]: https://github.com/fsnotify/fsnotify/pull/463 -[#465]: https://github.com/fsnotify/fsnotify/pull/465 -[#470]: https://github.com/fsnotify/fsnotify/pull/470 -[#471]: https://github.com/fsnotify/fsnotify/pull/471 -[#475]: https://github.com/fsnotify/fsnotify/pull/475 -[#477]: https://github.com/fsnotify/fsnotify/pull/477 -[#479]: https://github.com/fsnotify/fsnotify/pull/479 -[#480]: https://github.com/fsnotify/fsnotify/pull/480 -[#485]: https://github.com/fsnotify/fsnotify/pull/485 - -## [1.5.4] - 2022-04-25 - -* Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447) -* go.mod: use latest x/sys [#444](https://github.com/fsnotify/fsnotify/pull/444) -* Fix compilation for OpenBSD [#443](https://github.com/fsnotify/fsnotify/pull/443) - -## [1.5.3] - 2022-04-22 - -* This version is retracted. An incorrect branch is published accidentally [#445](https://github.com/fsnotify/fsnotify/issues/445) - -## [1.5.2] - 2022-04-21 - -* Add a feature to return the directories and files that are being monitored [#374](https://github.com/fsnotify/fsnotify/pull/374) -* Fix potential crash on windows if `raw.FileNameLength` exceeds `syscall.MAX_PATH` [#361](https://github.com/fsnotify/fsnotify/pull/361) -* Allow build on unsupported GOOS [#424](https://github.com/fsnotify/fsnotify/pull/424) -* Don't set `poller.fd` twice in `newFdPoller` [#406](https://github.com/fsnotify/fsnotify/pull/406) -* fix go vet warnings: call to `(*T).Fatalf` from a non-test goroutine [#416](https://github.com/fsnotify/fsnotify/pull/416) - -## [1.5.1] - 2021-08-24 - -* Revert Add AddRaw to not follow symlinks [#394](https://github.com/fsnotify/fsnotify/pull/394) - -## [1.5.0] - 2021-08-20 - -* Go: Increase minimum required version to Go 1.12 [#381](https://github.com/fsnotify/fsnotify/pull/381) -* Feature: Add AddRaw method which does not follow symlinks when adding a watch [#289](https://github.com/fsnotify/fsnotify/pull/298) -* Windows: Follow symlinks by default like on all other systems [#289](https://github.com/fsnotify/fsnotify/pull/289) -* CI: Use GitHub Actions for CI and cover go 1.12-1.17 - [#378](https://github.com/fsnotify/fsnotify/pull/378) - [#381](https://github.com/fsnotify/fsnotify/pull/381) - [#385](https://github.com/fsnotify/fsnotify/pull/385) -* Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325) - -## [1.4.9] - 2020-03-11 - -* Move example usage to the readme #329. This may resolve #328. - -## [1.4.8] - 2020-03-10 - -* CI: test more go versions (@nathany 1d13583d846ea9d66dcabbfefbfb9d8e6fb05216) -* Tests: Queued inotify events could have been read by the test before max_queued_events was hit (@matthias-stone #265) -* Tests: t.Fatalf -> t.Errorf in go routines (@gdey #266) -* CI: Less verbosity (@nathany #267) -* Tests: Darwin: Exchangedata is deprecated on 10.13 (@nathany #267) -* Tests: Check if channels are closed in the example (@alexeykazakov #244) -* CI: Only run golint on latest version of go and fix issues (@cpuguy83 #284) -* CI: Add windows to travis matrix (@cpuguy83 #284) -* Docs: Remover appveyor badge (@nathany 11844c0959f6fff69ba325d097fce35bd85a8e93) -* Linux: create epoll and pipe fds with close-on-exec (@JohannesEbke #219) -* Linux: open files with close-on-exec (@linxiulei #273) -* Docs: Plan to support fanotify (@nathany ab058b44498e8b7566a799372a39d150d9ea0119 ) -* Project: Add go.mod (@nathany #309) -* Project: Revise editor config (@nathany #309) -* Project: Update copyright for 2019 (@nathany #309) -* CI: Drop go1.8 from CI matrix (@nathany #309) -* Docs: Updating the FAQ section for supportability with NFS & FUSE filesystems (@Pratik32 4bf2d1fec78374803a39307bfb8d340688f4f28e ) - -## [1.4.7] - 2018-01-09 - -* BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) -* Tests: Fix missing verb on format string (thanks @rchiossi) -* Linux: Fix deadlock in Remove (thanks @aarondl) -* Linux: Watch.Add improvements (avoid race, fix consistency, reduce garbage) (thanks @twpayne) -* Docs: Moved FAQ into the README (thanks @vahe) -* Linux: Properly handle inotify's IN_Q_OVERFLOW event (thanks @zeldovich) -* Docs: replace references to OS X with macOS - -## [1.4.2] - 2016-10-10 - -* Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack) - -## [1.4.1] - 2016-10-04 - -* Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack) - -## [1.4.0] - 2016-10-01 - -* add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie) - -## [1.3.1] - 2016-06-28 - -* Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc) - -## [1.3.0] - 2016-04-19 - -* Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135) - -## [1.2.10] - 2016-03-02 - -* Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj) - -## [1.2.9] - 2016-01-13 - -kqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep) - -## [1.2.8] - 2015-12-17 - -* kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test) -* inotify: fix race in test -* enable race detection for continuous integration (Linux, Mac, Windows) - -## [1.2.5] - 2015-10-17 - -* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki) -* inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken) -* kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie) -* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion) - -## [1.2.1] - 2015-10-14 - -* kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx) - -## [1.2.0] - 2015-02-08 - -* inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD) -* inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD) -* kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59) - -## [1.1.1] - 2015-02-05 - -* inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD) - -## [1.1.0] - 2014-12-12 - -* kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43) - * add low-level functions - * only need to store flags on directories - * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13) - * done can be an unbuffered channel - * remove calls to os.NewSyscallError -* More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher) -* kqueue: fix regression in rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48) -* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) - -## [1.0.4] - 2014-09-07 - -* kqueue: add dragonfly to the build tags. -* Rename source code files, rearrange code so exported APIs are at the top. -* Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang) - -## [1.0.3] - 2014-08-19 - -* [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36) - -## [1.0.2] - 2014-08-17 - -* [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) -* [Fix] Make ./path and path equivalent. (thanks @zhsso) - -## [1.0.0] - 2014-08-15 - -* [API] Remove AddWatch on Windows, use Add. -* Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30) -* Minor updates based on feedback from golint. - -## dev / 2014-07-09 - -* Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). -* Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno) - -## dev / 2014-07-04 - -* kqueue: fix incorrect mutex used in Close() -* Update example to demonstrate usage of Op. - -## dev / 2014-06-28 - -* [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4) -* Fix for String() method on Event (thanks Alex Brainman) -* Don't build on Plan 9 or Solaris (thanks @4ad) - -## dev / 2014-06-21 - -* Events channel of type Event rather than *Event. -* [internal] use syscall constants directly for inotify and kqueue. -* [internal] kqueue: rename events to kevents and fileEvent to event. - -## dev / 2014-06-19 - -* Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally). -* [internal] remove cookie from Event struct (unused). -* [internal] Event struct has the same definition across every OS. -* [internal] remove internal watch and removeWatch methods. - -## dev / 2014-06-12 - -* [API] Renamed Watch() to Add() and RemoveWatch() to Remove(). -* [API] Pluralized channel names: Events and Errors. -* [API] Renamed FileEvent struct to Event. -* [API] Op constants replace methods like IsCreate(). - -## dev / 2014-06-12 - -* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) - -## dev / 2014-05-23 - -* [API] Remove current implementation of WatchFlags. - * current implementation doesn't take advantage of OS for efficiency - * provides little benefit over filtering events as they are received, but has extra bookkeeping and mutexes - * no tests for the current implementation - * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195) - -## [0.9.3] - 2014-12-31 - -* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) - -## [0.9.2] - 2014-08-17 - -* [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) - -## [0.9.1] - 2014-06-12 - -* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) - -## [0.9.0] - 2014-01-17 - -* IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany) -* [Fix] kqueue: fix deadlock [#77][] (thanks @cespare) -* [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library. - -## [0.8.12] - 2013-11-13 - -* [API] Remove FD_SET and friends from Linux adapter - -## [0.8.11] - 2013-11-02 - -* [Doc] Add Changelog [#72][] (thanks @nathany) -* [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond) - -## [0.8.10] - 2013-10-19 - -* [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott) -* [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer) -* [Doc] specify OS-specific limits in README (thanks @debrando) - -## [0.8.9] - 2013-09-08 - -* [Doc] Contributing (thanks @nathany) -* [Doc] update package path in example code [#63][] (thanks @paulhammond) -* [Doc] GoCI badge in README (Linux only) [#60][] -* [Doc] Cross-platform testing with Vagrant [#59][] (thanks @nathany) - -## [0.8.8] - 2013-06-17 - -* [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie) - -## [0.8.7] - 2013-06-03 - -* [API] Make syscall flags internal -* [Fix] inotify: ignore event changes -* [Fix] race in symlink test [#45][] (reported by @srid) -* [Fix] tests on Windows -* lower case error messages - -## [0.8.6] - 2013-05-23 - -* kqueue: Use EVT_ONLY flag on Darwin -* [Doc] Update README with full example - -## [0.8.5] - 2013-05-09 - -* [Fix] inotify: allow monitoring of "broken" symlinks (thanks @tsg) - -## [0.8.4] - 2013-04-07 - -* [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz) - -## [0.8.3] - 2013-03-13 - -* [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin) -* [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin) - -## [0.8.2] - 2013-02-07 - -* [Doc] add Authors -* [Fix] fix data races for map access [#29][] (thanks @fsouza) - -## [0.8.1] - 2013-01-09 - -* [Fix] Windows path separators -* [Doc] BSD License - -## [0.8.0] - 2012-11-09 - -* kqueue: directory watching improvements (thanks @vmirage) -* inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto) -* [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr) - -## [0.7.4] - 2012-10-09 - -* [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji) -* [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig) -* [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig) -* [Fix] kqueue: modify after recreation of file - -## [0.7.3] - 2012-09-27 - -* [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage) -* [Fix] kqueue: no longer get duplicate CREATE events - -## [0.7.2] - 2012-09-01 - -* kqueue: events for created directories - -## [0.7.1] - 2012-07-14 - -* [Fix] for renaming files - -## [0.7.0] - 2012-07-02 - -* [Feature] FSNotify flags -* [Fix] inotify: Added file name back to event path - -## [0.6.0] - 2012-06-06 - -* kqueue: watch files after directory created (thanks @tmc) - -## [0.5.1] - 2012-05-22 - -* [Fix] inotify: remove all watches before Close() - -## [0.5.0] - 2012-05-03 - -* [API] kqueue: return errors during watch instead of sending over channel -* kqueue: match symlink behavior on Linux -* inotify: add `DELETE_SELF` (requested by @taralx) -* [Fix] kqueue: handle EINTR (reported by @robfig) -* [Doc] Godoc example [#1][] (thanks @davecheney) - -## [0.4.0] - 2012-03-30 - -* Go 1 released: build with go tool -* [Feature] Windows support using winfsnotify -* Windows does not have attribute change notifications -* Roll attribute notifications into IsModify - -## [0.3.0] - 2012-02-19 - -* kqueue: add files when watch directory - -## [0.2.0] - 2011-12-30 - -* update to latest Go weekly code - -## [0.1.0] - 2011-10-19 - -* kqueue: add watch on file creation to match inotify -* kqueue: create file event -* inotify: ignore `IN_IGNORED` events -* event String() -* linux: common FileEvent functions -* initial commit - -[#79]: https://github.com/howeyc/fsnotify/pull/79 -[#77]: https://github.com/howeyc/fsnotify/pull/77 -[#72]: https://github.com/howeyc/fsnotify/issues/72 -[#71]: https://github.com/howeyc/fsnotify/issues/71 -[#70]: https://github.com/howeyc/fsnotify/issues/70 -[#63]: https://github.com/howeyc/fsnotify/issues/63 -[#62]: https://github.com/howeyc/fsnotify/issues/62 -[#60]: https://github.com/howeyc/fsnotify/issues/60 -[#59]: https://github.com/howeyc/fsnotify/issues/59 -[#49]: https://github.com/howeyc/fsnotify/issues/49 -[#45]: https://github.com/howeyc/fsnotify/issues/45 -[#40]: https://github.com/howeyc/fsnotify/issues/40 -[#36]: https://github.com/howeyc/fsnotify/issues/36 -[#33]: https://github.com/howeyc/fsnotify/issues/33 -[#29]: https://github.com/howeyc/fsnotify/issues/29 -[#25]: https://github.com/howeyc/fsnotify/issues/25 -[#24]: https://github.com/howeyc/fsnotify/issues/24 -[#21]: https://github.com/howeyc/fsnotify/issues/21 diff --git a/backend/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md b/backend/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md deleted file mode 100644 index ea379759..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md +++ /dev/null @@ -1,26 +0,0 @@ -Thank you for your interest in contributing to fsnotify! We try to review and -merge PRs in a reasonable timeframe, but please be aware that: - -- To avoid "wasted" work, please discus changes on the issue tracker first. You - can just send PRs, but they may end up being rejected for one reason or the - other. - -- fsnotify is a cross-platform library, and changes must work reasonably well on - all supported platforms. - -- Changes will need to be compatible; old code should still compile, and the - runtime behaviour can't change in ways that are likely to lead to problems for - users. - -Testing -------- -Just `go test ./...` runs all the tests; the CI runs this on all supported -platforms. Testing different platforms locally can be done with something like -[goon] or [Vagrant], but this isn't super-easy to set up at the moment. - -Use the `-short` flag to make the "stress test" run faster. - - -[goon]: https://github.com/arp242/goon -[Vagrant]: https://www.vagrantup.com/ -[integration_test.go]: /integration_test.go diff --git a/backend/vendor/github.com/fsnotify/fsnotify/LICENSE b/backend/vendor/github.com/fsnotify/fsnotify/LICENSE deleted file mode 100644 index fb03ade7..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright © 2012 The Go Authors. All rights reserved. -Copyright © fsnotify Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its contributors may be used - to endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/fsnotify/fsnotify/README.md b/backend/vendor/github.com/fsnotify/fsnotify/README.md deleted file mode 100644 index d4e6080f..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/README.md +++ /dev/null @@ -1,161 +0,0 @@ -fsnotify is a Go library to provide cross-platform filesystem notifications on -Windows, Linux, macOS, and BSD systems. - -Go 1.16 or newer is required; the full documentation is at -https://pkg.go.dev/github.com/fsnotify/fsnotify - -**It's best to read the documentation at pkg.go.dev, as it's pinned to the last -released version, whereas this README is for the last development version which -may include additions/changes.** - ---- - -Platform support: - -| Adapter | OS | Status | -| --------------------- | ---------------| -------------------------------------------------------------| -| inotify | Linux 2.6.32+ | Supported | -| kqueue | BSD, macOS | Supported | -| ReadDirectoryChangesW | Windows | Supported | -| FSEvents | macOS | [Planned](https://github.com/fsnotify/fsnotify/issues/11) | -| FEN | Solaris 11 | [In Progress](https://github.com/fsnotify/fsnotify/pull/371) | -| fanotify | Linux 5.9+ | [Maybe](https://github.com/fsnotify/fsnotify/issues/114) | -| USN Journals | Windows | [Maybe](https://github.com/fsnotify/fsnotify/issues/53) | -| Polling | *All* | [Maybe](https://github.com/fsnotify/fsnotify/issues/9) | - -Linux and macOS should include Android and iOS, but these are currently untested. - -Usage ------ -A basic example: - -```go -package main - -import ( - "log" - - "github.com/fsnotify/fsnotify" -) - -func main() { - // Create new watcher. - watcher, err := fsnotify.NewWatcher() - if err != nil { - log.Fatal(err) - } - defer watcher.Close() - - // Start listening for events. - go func() { - for { - select { - case event, ok := <-watcher.Events: - if !ok { - return - } - log.Println("event:", event) - if event.Has(fsnotify.Write) { - log.Println("modified file:", event.Name) - } - case err, ok := <-watcher.Errors: - if !ok { - return - } - log.Println("error:", err) - } - } - }() - - // Add a path. - err = watcher.Add("/tmp") - if err != nil { - log.Fatal(err) - } - - // Block main goroutine forever. - <-make(chan struct{}) -} -``` - -Some more examples can be found in [cmd/fsnotify](cmd/fsnotify), which can be -run with: - - % go run ./cmd/fsnotify - -FAQ ---- -### Will a file still be watched when it's moved to another directory? -No, not unless you are watching the location it was moved to. - -### Are subdirectories watched too? -No, you must add watches for any directory you want to watch (a recursive -watcher is on the roadmap: [#18]). - -[#18]: https://github.com/fsnotify/fsnotify/issues/18 - -### Do I have to watch the Error and Event channels in a goroutine? -As of now, yes (you can read both channels in the same goroutine using `select`, -you don't need a separate goroutine for both channels; see the example). - -### Why don't notifications work with NFS, SMB, FUSE, /proc, or /sys? -fsnotify requires support from underlying OS to work. The current NFS and SMB -protocols does not provide network level support for file notifications, and -neither do the /proc and /sys virtual filesystems. - -This could be fixed with a polling watcher ([#9]), but it's not yet implemented. - -[#9]: https://github.com/fsnotify/fsnotify/issues/9 - -Platform-specific notes ------------------------ -### Linux -When a file is removed a REMOVE event won't be emitted until all file -descriptors are closed; it will emit a CHMOD instead: - - fp := os.Open("file") - os.Remove("file") // CHMOD - fp.Close() // REMOVE - -This is the event that inotify sends, so not much can be changed about this. - -The `fs.inotify.max_user_watches` sysctl variable specifies the upper limit for -the number of watches per user, and `fs.inotify.max_user_instances` specifies -the maximum number of inotify instances per user. Every Watcher you create is an -"instance", and every path you add is a "watch". - -These are also exposed in `/proc` as `/proc/sys/fs/inotify/max_user_watches` and -`/proc/sys/fs/inotify/max_user_instances` - -To increase them you can use `sysctl` or write the value to proc file: - - # The default values on Linux 5.18 - sysctl fs.inotify.max_user_watches=124983 - sysctl fs.inotify.max_user_instances=128 - -To make the changes persist on reboot edit `/etc/sysctl.conf` or -`/usr/lib/sysctl.d/50-default.conf` (details differ per Linux distro; check your -distro's documentation): - - fs.inotify.max_user_watches=124983 - fs.inotify.max_user_instances=128 - -Reaching the limit will result in a "no space left on device" or "too many open -files" error. - -### kqueue (macOS, all BSD systems) -kqueue requires opening a file descriptor for every file that's being watched; -so if you're watching a directory with five files then that's six file -descriptors. You will run in to your system's "max open files" limit faster on -these platforms. - -The sysctl variables `kern.maxfiles` and `kern.maxfilesperproc` can be used to -control the maximum number of open files. - -### macOS -Spotlight indexing on macOS can result in multiple events (see [#15]). A temporary -workaround is to add your folder(s) to the *Spotlight Privacy settings* until we -have a native FSEvents implementation (see [#11]). - -[#11]: https://github.com/fsnotify/fsnotify/issues/11 -[#15]: https://github.com/fsnotify/fsnotify/issues/15 diff --git a/backend/vendor/github.com/fsnotify/fsnotify/backend_fen.go b/backend/vendor/github.com/fsnotify/fsnotify/backend_fen.go deleted file mode 100644 index a23559de..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/backend_fen.go +++ /dev/null @@ -1,162 +0,0 @@ -//go:build solaris -// +build solaris - -package fsnotify - -import ( - "errors" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # macOS notes -// -// Spotlight indexing on macOS can result in multiple events (see [#15]). A -// temporary workaround is to add your folder(s) to the "Spotlight Privacy -// Settings" until we have a native FSEvents implementation (see [#11]). -// -// [#11]: https://github.com/fsnotify/fsnotify/issues/11 -// [#15]: https://github.com/fsnotify/fsnotify/issues/15 -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, so you - // probably want to wait until you've stopped receiving - // them (see the dedup example in cmd/fsnotify). - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // and on kqueue when a file is truncated. On Windows - // it's never sent. - Events chan Event - - // Errors sends any errors. - Errors chan error -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return nil, errors.New("FEN based watcher not yet supported for fsnotify\n") -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - return nil -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; attempting to watch it more than once will -// return an error. Paths that do not yet exist on the filesystem cannot be -// added. A watch will be automatically removed if the path is deleted. -// -// A path will remain watched if it gets renamed to somewhere else on the same -// filesystem, but the monitor will get removed if the path gets deleted and -// re-created, or if it's moved to a different filesystem. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many tools update files atomically. Instead of "just" writing -// to the file a temporary file will be written to first, and if successful the -// temporary file is moved to to destination removing the original, or some -// variant thereof. The watcher on the original file is now lost, as it no -// longer exists. -// -// Instead, watch the parent directory and use Event.Name to filter out files -// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. -func (w *Watcher) Add(name string) error { - return nil -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -func (w *Watcher) Remove(name string) error { - return nil -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/backend_inotify.go b/backend/vendor/github.com/fsnotify/fsnotify/backend_inotify.go deleted file mode 100644 index 724b355a..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/backend_inotify.go +++ /dev/null @@ -1,459 +0,0 @@ -//go:build linux -// +build linux - -package fsnotify - -import ( - "errors" - "fmt" - "io" - "os" - "path/filepath" - "strings" - "sync" - "unsafe" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # macOS notes -// -// Spotlight indexing on macOS can result in multiple events (see [#15]). A -// temporary workaround is to add your folder(s) to the "Spotlight Privacy -// Settings" until we have a native FSEvents implementation (see [#11]). -// -// [#11]: https://github.com/fsnotify/fsnotify/issues/11 -// [#15]: https://github.com/fsnotify/fsnotify/issues/15 -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, so you - // probably want to wait until you've stopped receiving - // them (see the dedup example in cmd/fsnotify). - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // and on kqueue when a file is truncated. On Windows - // it's never sent. - Events chan Event - - // Errors sends any errors. - Errors chan error - - // Store fd here as os.File.Read() will no longer return on close after - // calling Fd(). See: https://github.com/golang/go/issues/26439 - fd int - mu sync.Mutex // Map access - inotifyFile *os.File - watches map[string]*watch // Map of inotify watches (key: path) - paths map[int]string // Map of watched paths (key: watch descriptor) - done chan struct{} // Channel for sending a "quit message" to the reader goroutine - doneResp chan struct{} // Channel to respond to Close -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - // Create inotify fd - // Need to set the FD to nonblocking mode in order for SetDeadline methods to work - // Otherwise, blocking i/o operations won't terminate on close - fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC | unix.IN_NONBLOCK) - if fd == -1 { - return nil, errno - } - - w := &Watcher{ - fd: fd, - inotifyFile: os.NewFile(uintptr(fd), ""), - watches: make(map[string]*watch), - paths: make(map[int]string), - Events: make(chan Event), - Errors: make(chan error), - done: make(chan struct{}), - doneResp: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -// Returns true if the event was sent, or false if watcher is closed. -func (w *Watcher) sendEvent(e Event) bool { - select { - case w.Events <- e: - return true - case <-w.done: - } - return false -} - -// Returns true if the error was sent, or false if watcher is closed. -func (w *Watcher) sendError(err error) bool { - select { - case w.Errors <- err: - return true - case <-w.done: - return false - } -} - -func (w *Watcher) isClosed() bool { - select { - case <-w.done: - return true - default: - return false - } -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - w.mu.Lock() - if w.isClosed() { - w.mu.Unlock() - return nil - } - - // Send 'close' signal to goroutine, and set the Watcher to closed. - close(w.done) - w.mu.Unlock() - - // Causes any blocking reads to return with an error, provided the file - // still supports deadline operations. - err := w.inotifyFile.Close() - if err != nil { - return err - } - - // Wait for goroutine to close - <-w.doneResp - - return nil -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; attempting to watch it more than once will -// return an error. Paths that do not yet exist on the filesystem cannot be -// added. A watch will be automatically removed if the path is deleted. -// -// A path will remain watched if it gets renamed to somewhere else on the same -// filesystem, but the monitor will get removed if the path gets deleted and -// re-created, or if it's moved to a different filesystem. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many tools update files atomically. Instead of "just" writing -// to the file a temporary file will be written to first, and if successful the -// temporary file is moved to to destination removing the original, or some -// variant thereof. The watcher on the original file is now lost, as it no -// longer exists. -// -// Instead, watch the parent directory and use Event.Name to filter out files -// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. -func (w *Watcher) Add(name string) error { - name = filepath.Clean(name) - if w.isClosed() { - return errors.New("inotify instance already closed") - } - - var flags uint32 = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | - unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | - unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF - - w.mu.Lock() - defer w.mu.Unlock() - watchEntry := w.watches[name] - if watchEntry != nil { - flags |= watchEntry.flags | unix.IN_MASK_ADD - } - wd, errno := unix.InotifyAddWatch(w.fd, name, flags) - if wd == -1 { - return errno - } - - if watchEntry == nil { - w.watches[name] = &watch{wd: uint32(wd), flags: flags} - w.paths[wd] = name - } else { - watchEntry.wd = uint32(wd) - watchEntry.flags = flags - } - - return nil -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -func (w *Watcher) Remove(name string) error { - name = filepath.Clean(name) - - // Fetch the watch. - w.mu.Lock() - defer w.mu.Unlock() - watch, ok := w.watches[name] - - // Remove it from inotify. - if !ok { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) - } - - // We successfully removed the watch if InotifyRmWatch doesn't return an - // error, we need to clean up our internal state to ensure it matches - // inotify's kernel state. - delete(w.paths, int(watch.wd)) - delete(w.watches, name) - - // inotify_rm_watch will return EINVAL if the file has been deleted; - // the inotify will already have been removed. - // watches and pathes are deleted in ignoreLinux() implicitly and asynchronously - // by calling inotify_rm_watch() below. e.g. readEvents() goroutine receives IN_IGNORE - // so that EINVAL means that the wd is being rm_watch()ed or its file removed - // by another thread and we have not received IN_IGNORE event. - success, errno := unix.InotifyRmWatch(w.fd, watch.wd) - if success == -1 { - // TODO: Perhaps it's not helpful to return an error here in every case; - // The only two possible errors are: - // - // - EBADF, which happens when w.fd is not a valid file descriptor - // of any kind. - // - EINVAL, which is when fd is not an inotify descriptor or wd - // is not a valid watch descriptor. Watch descriptors are - // invalidated when they are removed explicitly or implicitly; - // explicitly by inotify_rm_watch, implicitly when the file they - // are watching is deleted. - return errno - } - - return nil -} - -// WatchList returns all paths added with [Add] (and are not yet removed). -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)) - for pathname := range w.watches { - entries = append(entries, pathname) - } - - return entries -} - -type watch struct { - wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) - flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) -} - -// readEvents reads from the inotify file descriptor, converts the -// received events into Event objects and sends them via the Events channel -func (w *Watcher) readEvents() { - defer func() { - close(w.doneResp) - close(w.Errors) - close(w.Events) - }() - - var ( - buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events - errno error // Syscall errno - ) - for { - // See if we have been closed. - if w.isClosed() { - return - } - - n, err := w.inotifyFile.Read(buf[:]) - switch { - case errors.Unwrap(err) == os.ErrClosed: - return - case err != nil: - if !w.sendError(err) { - return - } - continue - } - - if n < unix.SizeofInotifyEvent { - var err error - if n == 0 { - // If EOF is received. This should really never happen. - err = io.EOF - } else if n < 0 { - // If an error occurred while reading. - err = errno - } else { - // Read was too short. - err = errors.New("notify: short read in readEvents()") - } - if !w.sendError(err) { - return - } - continue - } - - var offset uint32 - // We don't know how many events we just read into the buffer - // While the offset points to at least one whole event... - for offset <= uint32(n-unix.SizeofInotifyEvent) { - var ( - // Point "raw" to the event in the buffer - raw = (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) - mask = uint32(raw.Mask) - nameLen = uint32(raw.Len) - ) - - if mask&unix.IN_Q_OVERFLOW != 0 { - if !w.sendError(ErrEventOverflow) { - return - } - } - - // If the event happened to the watched directory or the watched file, the kernel - // doesn't append the filename to the event, but we would like to always fill the - // the "Name" field with a valid filename. We retrieve the path of the watch from - // the "paths" map. - w.mu.Lock() - name, ok := w.paths[int(raw.Wd)] - // IN_DELETE_SELF occurs when the file/directory being watched is removed. - // This is a sign to clean up the maps, otherwise we are no longer in sync - // with the inotify kernel state which has already deleted the watch - // automatically. - if ok && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { - delete(w.paths, int(raw.Wd)) - delete(w.watches, name) - } - w.mu.Unlock() - - if nameLen > 0 { - // Point "bytes" at the first byte of the filename - bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent]))[:nameLen:nameLen] - // The filename is padded with NULL bytes. TrimRight() gets rid of those. - name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") - } - - event := w.newEvent(name, mask) - - // Send the events that are not ignored on the events channel - if mask&unix.IN_IGNORED == 0 { - if !w.sendEvent(event) { - return - } - } - - // Move to the next event in the buffer - offset += unix.SizeofInotifyEvent + nameLen - } - } -} - -// newEvent returns an platform-independent Event based on an inotify mask. -func (w *Watcher) newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { - e.Op |= Create - } - if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { - e.Op |= Remove - } - if mask&unix.IN_MODIFY == unix.IN_MODIFY { - e.Op |= Write - } - if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { - e.Op |= Rename - } - if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { - e.Op |= Chmod - } - return e -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go b/backend/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go deleted file mode 100644 index 190e97b9..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go +++ /dev/null @@ -1,707 +0,0 @@ -//go:build freebsd || openbsd || netbsd || dragonfly || darwin -// +build freebsd openbsd netbsd dragonfly darwin - -package fsnotify - -import ( - "errors" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "sync" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # macOS notes -// -// Spotlight indexing on macOS can result in multiple events (see [#15]). A -// temporary workaround is to add your folder(s) to the "Spotlight Privacy -// Settings" until we have a native FSEvents implementation (see [#11]). -// -// [#11]: https://github.com/fsnotify/fsnotify/issues/11 -// [#15]: https://github.com/fsnotify/fsnotify/issues/15 -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, so you - // probably want to wait until you've stopped receiving - // them (see the dedup example in cmd/fsnotify). - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // and on kqueue when a file is truncated. On Windows - // it's never sent. - Events chan Event - - // Errors sends any errors. - Errors chan error - - done chan struct{} - kq int // File descriptor (as returned by the kqueue() syscall). - closepipe [2]int // Pipe used for closing. - mu sync.Mutex // Protects access to watcher data - watches map[string]int // Watched file descriptors (key: path). - watchesByDir map[string]map[int]struct{} // Watched file descriptors indexed by the parent directory (key: dirname(path)). - userWatches map[string]struct{} // Watches added with Watcher.Add() - dirFlags map[string]uint32 // Watched directories to fflags used in kqueue. - paths map[int]pathInfo // File descriptors to path names for processing kqueue events. - fileExists map[string]struct{} // Keep track of if we know this file exists (to stop duplicate create events). - isClosed bool // Set to true when Close() is first called -} - -type pathInfo struct { - name string - isDir bool -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - kq, closepipe, err := newKqueue() - if err != nil { - return nil, err - } - - w := &Watcher{ - kq: kq, - closepipe: closepipe, - watches: make(map[string]int), - watchesByDir: make(map[string]map[int]struct{}), - dirFlags: make(map[string]uint32), - paths: make(map[int]pathInfo), - fileExists: make(map[string]struct{}), - userWatches: make(map[string]struct{}), - Events: make(chan Event), - Errors: make(chan error), - done: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -// newKqueue creates a new kernel event queue and returns a descriptor. -// -// This registers a new event on closepipe, which will trigger an event when -// it's closed. This way we can use kevent() without timeout/polling; without -// the closepipe, it would block forever and we wouldn't be able to stop it at -// all. -func newKqueue() (kq int, closepipe [2]int, err error) { - kq, err = unix.Kqueue() - if kq == -1 { - return kq, closepipe, err - } - - // Register the close pipe. - err = unix.Pipe(closepipe[:]) - if err != nil { - unix.Close(kq) - return kq, closepipe, err - } - - // Register changes to listen on the closepipe. - changes := make([]unix.Kevent_t, 1) - // SetKevent converts int to the platform-specific types. - unix.SetKevent(&changes[0], closepipe[0], unix.EVFILT_READ, - unix.EV_ADD|unix.EV_ENABLE|unix.EV_ONESHOT) - - ok, err := unix.Kevent(kq, changes, nil, nil) - if ok == -1 { - unix.Close(kq) - unix.Close(closepipe[0]) - unix.Close(closepipe[1]) - return kq, closepipe, err - } - return kq, closepipe, nil -} - -// Returns true if the event was sent, or false if watcher is closed. -func (w *Watcher) sendEvent(e Event) bool { - select { - case w.Events <- e: - return true - case <-w.done: - } - return false -} - -// Returns true if the error was sent, or false if watcher is closed. -func (w *Watcher) sendError(err error) bool { - select { - case w.Errors <- err: - return true - case <-w.done: - } - return false -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return nil - } - w.isClosed = true - - // copy paths to remove while locked - pathsToRemove := make([]string, 0, len(w.watches)) - for name := range w.watches { - pathsToRemove = append(pathsToRemove, name) - } - w.mu.Unlock() // Unlock before calling Remove, which also locks - for _, name := range pathsToRemove { - w.Remove(name) - } - - // Send "quit" message to the reader goroutine. - unix.Close(w.closepipe[1]) - close(w.done) - - return nil -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; attempting to watch it more than once will -// return an error. Paths that do not yet exist on the filesystem cannot be -// added. A watch will be automatically removed if the path is deleted. -// -// A path will remain watched if it gets renamed to somewhere else on the same -// filesystem, but the monitor will get removed if the path gets deleted and -// re-created, or if it's moved to a different filesystem. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many tools update files atomically. Instead of "just" writing -// to the file a temporary file will be written to first, and if successful the -// temporary file is moved to to destination removing the original, or some -// variant thereof. The watcher on the original file is now lost, as it no -// longer exists. -// -// Instead, watch the parent directory and use Event.Name to filter out files -// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. -func (w *Watcher) Add(name string) error { - w.mu.Lock() - w.userWatches[name] = struct{}{} - w.mu.Unlock() - _, err := w.addWatch(name, noteAllEvents) - return err -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -func (w *Watcher) Remove(name string) error { - name = filepath.Clean(name) - w.mu.Lock() - watchfd, ok := w.watches[name] - w.mu.Unlock() - if !ok { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) - } - - err := w.register([]int{watchfd}, unix.EV_DELETE, 0) - if err != nil { - return err - } - - unix.Close(watchfd) - - w.mu.Lock() - isDir := w.paths[watchfd].isDir - delete(w.watches, name) - delete(w.userWatches, name) - - parentName := filepath.Dir(name) - delete(w.watchesByDir[parentName], watchfd) - - if len(w.watchesByDir[parentName]) == 0 { - delete(w.watchesByDir, parentName) - } - - delete(w.paths, watchfd) - delete(w.dirFlags, name) - delete(w.fileExists, name) - w.mu.Unlock() - - // Find all watched paths that are in this directory that are not external. - if isDir { - var pathsToRemove []string - w.mu.Lock() - for fd := range w.watchesByDir[name] { - path := w.paths[fd] - if _, ok := w.userWatches[path.name]; !ok { - pathsToRemove = append(pathsToRemove, path.name) - } - } - w.mu.Unlock() - for _, name := range pathsToRemove { - // Since these are internal, not much sense in propagating error - // to the user, as that will just confuse them with an error about - // a path they did not explicitly watch themselves. - w.Remove(name) - } - } - - return nil -} - -// WatchList returns all paths added with [Add] (and are not yet removed). -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.userWatches)) - for pathname := range w.userWatches { - entries = append(entries, pathname) - } - - return entries -} - -// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) -const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME - -// addWatch adds name to the watched file set. -// The flags are interpreted as described in kevent(2). -// Returns the real path to the file which was added, if any, which may be different from the one passed in the case of symlinks. -func (w *Watcher) addWatch(name string, flags uint32) (string, error) { - var isDir bool - // Make ./name and name equivalent - name = filepath.Clean(name) - - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return "", errors.New("kevent instance already closed") - } - watchfd, alreadyWatching := w.watches[name] - // We already have a watch, but we can still override flags. - if alreadyWatching { - isDir = w.paths[watchfd].isDir - } - w.mu.Unlock() - - if !alreadyWatching { - fi, err := os.Lstat(name) - if err != nil { - return "", err - } - - // Don't watch sockets or named pipes - if (fi.Mode()&os.ModeSocket == os.ModeSocket) || (fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe) { - return "", nil - } - - // Follow Symlinks - // - // Linux can add unresolvable symlinks to the watch list without issue, - // and Windows can't do symlinks period. To maintain consistency, we - // will act like everything is fine if the link can't be resolved. - // There will simply be no file events for broken symlinks. Hence the - // returns of nil on errors. - if fi.Mode()&os.ModeSymlink == os.ModeSymlink { - name, err = filepath.EvalSymlinks(name) - if err != nil { - return "", nil - } - - w.mu.Lock() - _, alreadyWatching = w.watches[name] - w.mu.Unlock() - - if alreadyWatching { - return name, nil - } - - fi, err = os.Lstat(name) - if err != nil { - return "", nil - } - } - - // Retry on EINTR; open() can return EINTR in practice on macOS. - // See #354, and go issues 11180 and 39237. - for { - watchfd, err = unix.Open(name, openMode, 0) - if err == nil { - break - } - if errors.Is(err, unix.EINTR) { - continue - } - - return "", err - } - - isDir = fi.IsDir() - } - - err := w.register([]int{watchfd}, unix.EV_ADD|unix.EV_CLEAR|unix.EV_ENABLE, flags) - if err != nil { - unix.Close(watchfd) - return "", err - } - - if !alreadyWatching { - w.mu.Lock() - parentName := filepath.Dir(name) - w.watches[name] = watchfd - - watchesByDir, ok := w.watchesByDir[parentName] - if !ok { - watchesByDir = make(map[int]struct{}, 1) - w.watchesByDir[parentName] = watchesByDir - } - watchesByDir[watchfd] = struct{}{} - - w.paths[watchfd] = pathInfo{name: name, isDir: isDir} - w.mu.Unlock() - } - - if isDir { - // Watch the directory if it has not been watched before, - // or if it was watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) - w.mu.Lock() - - watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && - (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) - // Store flags so this watch can be updated later - w.dirFlags[name] = flags - w.mu.Unlock() - - if watchDir { - if err := w.watchDirectoryFiles(name); err != nil { - return "", err - } - } - } - return name, nil -} - -// readEvents reads from kqueue and converts the received kevents into -// Event values that it sends down the Events channel. -func (w *Watcher) readEvents() { - defer func() { - err := unix.Close(w.kq) - if err != nil { - w.Errors <- err - } - unix.Close(w.closepipe[0]) - close(w.Events) - close(w.Errors) - }() - - eventBuffer := make([]unix.Kevent_t, 10) - for closed := false; !closed; { - kevents, err := w.read(eventBuffer) - // EINTR is okay, the syscall was interrupted before timeout expired. - if err != nil && err != unix.EINTR { - if !w.sendError(fmt.Errorf("fsnotify.readEvents: %w", err)) { - closed = true - } - continue - } - - // Flush the events we received to the Events channel - for _, kevent := range kevents { - var ( - watchfd = int(kevent.Ident) - mask = uint32(kevent.Fflags) - ) - - // Shut down the loop when the pipe is closed, but only after all - // other events have been processed. - if watchfd == w.closepipe[0] { - closed = true - continue - } - - w.mu.Lock() - path := w.paths[watchfd] - w.mu.Unlock() - - event := w.newEvent(path.name, mask) - - if path.isDir && !event.Has(Remove) { - // Double check to make sure the directory exists. This can - // happen when we do a rm -fr on a recursively watched folders - // and we receive a modification event first but the folder has - // been deleted and later receive the delete event. - if _, err := os.Lstat(event.Name); os.IsNotExist(err) { - event.Op |= Remove - } - } - - if event.Has(Rename) || event.Has(Remove) { - w.Remove(event.Name) - w.mu.Lock() - delete(w.fileExists, event.Name) - w.mu.Unlock() - } - - if path.isDir && event.Has(Write) && !event.Has(Remove) { - w.sendDirectoryChangeEvents(event.Name) - } else { - if !w.sendEvent(event) { - closed = true - continue - } - } - - if event.Has(Remove) { - // Look for a file that may have overwritten this. - // For example, mv f1 f2 will delete f2, then create f2. - if path.isDir { - fileDir := filepath.Clean(event.Name) - w.mu.Lock() - _, found := w.watches[fileDir] - w.mu.Unlock() - if found { - // make sure the directory exists before we watch for changes. When we - // do a recursive watch and perform rm -fr, the parent directory might - // have gone missing, ignore the missing directory and let the - // upcoming delete event remove the watch from the parent directory. - if _, err := os.Lstat(fileDir); err == nil { - w.sendDirectoryChangeEvents(fileDir) - } - } - } else { - filePath := filepath.Clean(event.Name) - if fileInfo, err := os.Lstat(filePath); err == nil { - w.sendFileCreatedEventIfNew(filePath, fileInfo) - } - } - } - } - } -} - -// newEvent returns an platform-independent Event based on kqueue Fflags. -func (w *Watcher) newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { - e.Op |= Remove - } - if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { - e.Op |= Write - } - if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { - e.Op |= Rename - } - if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { - e.Op |= Chmod - } - return e -} - -// watchDirectoryFiles to mimic inotify when adding a watch on a directory -func (w *Watcher) watchDirectoryFiles(dirPath string) error { - // Get all files - files, err := ioutil.ReadDir(dirPath) - if err != nil { - return err - } - - for _, fileInfo := range files { - path := filepath.Join(dirPath, fileInfo.Name()) - - cleanPath, err := w.internalWatch(path, fileInfo) - if err != nil { - // No permission to read the file; that's not a problem: just skip. - // But do add it to w.fileExists to prevent it from being picked up - // as a "new" file later (it still shows up in the directory - // listing). - switch { - case errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM): - cleanPath = filepath.Clean(path) - default: - return fmt.Errorf("%q: %w", filepath.Join(dirPath, fileInfo.Name()), err) - } - } - - w.mu.Lock() - w.fileExists[cleanPath] = struct{}{} - w.mu.Unlock() - } - - return nil -} - -// Search the directory for new files and send an event for them. -// -// This functionality is to have the BSD watcher match the inotify, which sends -// a create event for files created in a watched directory. -func (w *Watcher) sendDirectoryChangeEvents(dir string) { - // Get all files - files, err := ioutil.ReadDir(dir) - if err != nil { - if !w.sendError(fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err)) { - return - } - } - - // Search for new files - for _, fi := range files { - err := w.sendFileCreatedEventIfNew(filepath.Join(dir, fi.Name()), fi) - if err != nil { - return - } - } -} - -// sendFileCreatedEvent sends a create event if the file isn't already being tracked. -func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fileInfo os.FileInfo) (err error) { - w.mu.Lock() - _, doesExist := w.fileExists[filePath] - w.mu.Unlock() - if !doesExist { - if !w.sendEvent(Event{Name: filePath, Op: Create}) { - return - } - } - - // like watchDirectoryFiles (but without doing another ReadDir) - filePath, err = w.internalWatch(filePath, fileInfo) - if err != nil { - return err - } - - w.mu.Lock() - w.fileExists[filePath] = struct{}{} - w.mu.Unlock() - - return nil -} - -func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) (string, error) { - if fileInfo.IsDir() { - // mimic Linux providing delete events for subdirectories - // but preserve the flags used if currently watching subdirectory - w.mu.Lock() - flags := w.dirFlags[name] - w.mu.Unlock() - - flags |= unix.NOTE_DELETE | unix.NOTE_RENAME - return w.addWatch(name, flags) - } - - // watch file to mimic Linux inotify - return w.addWatch(name, noteAllEvents) -} - -// Register events with the queue. -func (w *Watcher) register(fds []int, flags int, fflags uint32) error { - changes := make([]unix.Kevent_t, len(fds)) - for i, fd := range fds { - // SetKevent converts int to the platform-specific types. - unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) - changes[i].Fflags = fflags - } - - // Register the events. - success, err := unix.Kevent(w.kq, changes, nil, nil) - if success == -1 { - return err - } - return nil -} - -// read retrieves pending events, or waits until an event occurs. -func (w *Watcher) read(events []unix.Kevent_t) ([]unix.Kevent_t, error) { - n, err := unix.Kevent(w.kq, nil, events, nil) - if err != nil { - return nil, err - } - return events[0:n], nil -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/backend_other.go b/backend/vendor/github.com/fsnotify/fsnotify/backend_other.go deleted file mode 100644 index a9bb1c3c..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/backend_other.go +++ /dev/null @@ -1,66 +0,0 @@ -//go:build !darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows -// +build !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows - -package fsnotify - -import ( - "fmt" - "runtime" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct{} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return nil, fmt.Errorf("fsnotify not supported on %s", runtime.GOOS) -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - return nil -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; attempting to watch it more than once will -// return an error. Paths that do not yet exist on the filesystem cannot be -// added. A watch will be automatically removed if the path is deleted. -// -// A path will remain watched if it gets renamed to somewhere else on the same -// filesystem, but the monitor will get removed if the path gets deleted and -// re-created, or if it's moved to a different filesystem. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many tools update files atomically. Instead of "just" writing -// to the file a temporary file will be written to first, and if successful the -// temporary file is moved to to destination removing the original, or some -// variant thereof. The watcher on the original file is now lost, as it no -// longer exists. -// -// Instead, watch the parent directory and use Event.Name to filter out files -// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. -func (w *Watcher) Add(name string) error { - return nil -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -func (w *Watcher) Remove(name string) error { - return nil -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/backend_windows.go b/backend/vendor/github.com/fsnotify/fsnotify/backend_windows.go deleted file mode 100644 index ee68abfe..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/backend_windows.go +++ /dev/null @@ -1,746 +0,0 @@ -//go:build windows -// +build windows - -package fsnotify - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "reflect" - "runtime" - "strings" - "sync" - "unsafe" - - "golang.org/x/sys/windows" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # macOS notes -// -// Spotlight indexing on macOS can result in multiple events (see [#15]). A -// temporary workaround is to add your folder(s) to the "Spotlight Privacy -// Settings" until we have a native FSEvents implementation (see [#11]). -// -// [#11]: https://github.com/fsnotify/fsnotify/issues/11 -// [#15]: https://github.com/fsnotify/fsnotify/issues/15 -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, so you - // probably want to wait until you've stopped receiving - // them (see the dedup example in cmd/fsnotify). - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // and on kqueue when a file is truncated. On Windows - // it's never sent. - Events chan Event - - // Errors sends any errors. - Errors chan error - - port windows.Handle // Handle to completion port - input chan *input // Inputs to the reader are sent on this channel - quit chan chan<- error - - mu sync.Mutex // Protects access to watches, isClosed - watches watchMap // Map of watches (key: i-number) - isClosed bool // Set to true when Close() is first called -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - port, err := windows.CreateIoCompletionPort(windows.InvalidHandle, 0, 0, 0) - if err != nil { - return nil, os.NewSyscallError("CreateIoCompletionPort", err) - } - w := &Watcher{ - port: port, - watches: make(watchMap), - input: make(chan *input, 1), - Events: make(chan Event, 50), - Errors: make(chan error), - quit: make(chan chan<- error, 1), - } - go w.readEvents() - return w, nil -} - -func (w *Watcher) sendEvent(name string, mask uint64) bool { - if mask == 0 { - return false - } - - event := w.newEvent(name, uint32(mask)) - select { - case ch := <-w.quit: - w.quit <- ch - case w.Events <- event: - } - return true -} - -// Returns true if the error was sent, or false if watcher is closed. -func (w *Watcher) sendError(err error) bool { - select { - case w.Errors <- err: - return true - case <-w.quit: - } - return false -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return nil - } - w.isClosed = true - w.mu.Unlock() - - // Send "quit" message to the reader goroutine - ch := make(chan error) - w.quit <- ch - if err := w.wakeupReader(); err != nil { - return err - } - return <-ch -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; attempting to watch it more than once will -// return an error. Paths that do not yet exist on the filesystem cannot be -// added. A watch will be automatically removed if the path is deleted. -// -// A path will remain watched if it gets renamed to somewhere else on the same -// filesystem, but the monitor will get removed if the path gets deleted and -// re-created, or if it's moved to a different filesystem. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many tools update files atomically. Instead of "just" writing -// to the file a temporary file will be written to first, and if successful the -// temporary file is moved to to destination removing the original, or some -// variant thereof. The watcher on the original file is now lost, as it no -// longer exists. -// -// Instead, watch the parent directory and use Event.Name to filter out files -// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. -func (w *Watcher) Add(name string) error { - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return errors.New("watcher already closed") - } - w.mu.Unlock() - - in := &input{ - op: opAddWatch, - path: filepath.Clean(name), - flags: sysFSALLEVENTS, - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -func (w *Watcher) Remove(name string) error { - in := &input{ - op: opRemoveWatch, - path: filepath.Clean(name), - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// WatchList returns all paths added with [Add] (and are not yet removed). -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)) - for _, entry := range w.watches { - for _, watchEntry := range entry { - entries = append(entries, watchEntry.path) - } - } - - return entries -} - -// These options are from the old golang.org/x/exp/winfsnotify, where you could -// add various options to the watch. This has long since been removed. -// -// The "sys" in the name is misleading as they're not part of any "system". -// -// This should all be removed at some point, and just use windows.FILE_NOTIFY_* -const ( - sysFSALLEVENTS = 0xfff - sysFSATTRIB = 0x4 - sysFSCREATE = 0x100 - sysFSDELETE = 0x200 - sysFSDELETESELF = 0x400 - sysFSMODIFY = 0x2 - sysFSMOVE = 0xc0 - sysFSMOVEDFROM = 0x40 - sysFSMOVEDTO = 0x80 - sysFSMOVESELF = 0x800 - sysFSIGNORED = 0x8000 -) - -func (w *Watcher) newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { - e.Op |= Create - } - if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { - e.Op |= Remove - } - if mask&sysFSMODIFY == sysFSMODIFY { - e.Op |= Write - } - if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { - e.Op |= Rename - } - if mask&sysFSATTRIB == sysFSATTRIB { - e.Op |= Chmod - } - return e -} - -const ( - opAddWatch = iota - opRemoveWatch -) - -const ( - provisional uint64 = 1 << (32 + iota) -) - -type input struct { - op int - path string - flags uint32 - reply chan error -} - -type inode struct { - handle windows.Handle - volume uint32 - index uint64 -} - -type watch struct { - ov windows.Overlapped - ino *inode // i-number - path string // Directory path - mask uint64 // Directory itself is being watched with these notify flags - names map[string]uint64 // Map of names being watched and their notify flags - rename string // Remembers the old name while renaming a file - buf [65536]byte // 64K buffer -} - -type ( - indexMap map[uint64]*watch - watchMap map[uint32]indexMap -) - -func (w *Watcher) wakeupReader() error { - err := windows.PostQueuedCompletionStatus(w.port, 0, 0, nil) - if err != nil { - return os.NewSyscallError("PostQueuedCompletionStatus", err) - } - return nil -} - -func (w *Watcher) getDir(pathname string) (dir string, err error) { - attr, err := windows.GetFileAttributes(windows.StringToUTF16Ptr(pathname)) - if err != nil { - return "", os.NewSyscallError("GetFileAttributes", err) - } - if attr&windows.FILE_ATTRIBUTE_DIRECTORY != 0 { - dir = pathname - } else { - dir, _ = filepath.Split(pathname) - dir = filepath.Clean(dir) - } - return -} - -func (w *Watcher) getIno(path string) (ino *inode, err error) { - h, err := windows.CreateFile(windows.StringToUTF16Ptr(path), - windows.FILE_LIST_DIRECTORY, - windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE|windows.FILE_SHARE_DELETE, - nil, windows.OPEN_EXISTING, - windows.FILE_FLAG_BACKUP_SEMANTICS|windows.FILE_FLAG_OVERLAPPED, 0) - if err != nil { - return nil, os.NewSyscallError("CreateFile", err) - } - - var fi windows.ByHandleFileInformation - err = windows.GetFileInformationByHandle(h, &fi) - if err != nil { - windows.CloseHandle(h) - return nil, os.NewSyscallError("GetFileInformationByHandle", err) - } - ino = &inode{ - handle: h, - volume: fi.VolumeSerialNumber, - index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), - } - return ino, nil -} - -// Must run within the I/O thread. -func (m watchMap) get(ino *inode) *watch { - if i := m[ino.volume]; i != nil { - return i[ino.index] - } - return nil -} - -// Must run within the I/O thread. -func (m watchMap) set(ino *inode, watch *watch) { - i := m[ino.volume] - if i == nil { - i = make(indexMap) - m[ino.volume] = i - } - i[ino.index] = watch -} - -// Must run within the I/O thread. -func (w *Watcher) addWatch(pathname string, flags uint64) error { - dir, err := w.getDir(pathname) - if err != nil { - return err - } - - ino, err := w.getIno(dir) - if err != nil { - return err - } - w.mu.Lock() - watchEntry := w.watches.get(ino) - w.mu.Unlock() - if watchEntry == nil { - _, err := windows.CreateIoCompletionPort(ino.handle, w.port, 0, 0) - if err != nil { - windows.CloseHandle(ino.handle) - return os.NewSyscallError("CreateIoCompletionPort", err) - } - watchEntry = &watch{ - ino: ino, - path: dir, - names: make(map[string]uint64), - } - w.mu.Lock() - w.watches.set(ino, watchEntry) - w.mu.Unlock() - flags |= provisional - } else { - windows.CloseHandle(ino.handle) - } - if pathname == dir { - watchEntry.mask |= flags - } else { - watchEntry.names[filepath.Base(pathname)] |= flags - } - - err = w.startRead(watchEntry) - if err != nil { - return err - } - - if pathname == dir { - watchEntry.mask &= ^provisional - } else { - watchEntry.names[filepath.Base(pathname)] &= ^provisional - } - return nil -} - -// Must run within the I/O thread. -func (w *Watcher) remWatch(pathname string) error { - dir, err := w.getDir(pathname) - if err != nil { - return err - } - ino, err := w.getIno(dir) - if err != nil { - return err - } - - w.mu.Lock() - watch := w.watches.get(ino) - w.mu.Unlock() - - err = windows.CloseHandle(ino.handle) - if err != nil { - w.sendError(os.NewSyscallError("CloseHandle", err)) - } - if watch == nil { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, pathname) - } - if pathname == dir { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - watch.mask = 0 - } else { - name := filepath.Base(pathname) - w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - - return w.startRead(watch) -} - -// Must run within the I/O thread. -func (w *Watcher) deleteWatch(watch *watch) { - for name, mask := range watch.names { - if mask&provisional == 0 { - w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) - } - delete(watch.names, name) - } - if watch.mask != 0 { - if watch.mask&provisional == 0 { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - } - watch.mask = 0 - } -} - -// Must run within the I/O thread. -func (w *Watcher) startRead(watch *watch) error { - err := windows.CancelIo(watch.ino.handle) - if err != nil { - w.sendError(os.NewSyscallError("CancelIo", err)) - w.deleteWatch(watch) - } - mask := w.toWindowsFlags(watch.mask) - for _, m := range watch.names { - mask |= w.toWindowsFlags(m) - } - if mask == 0 { - err := windows.CloseHandle(watch.ino.handle) - if err != nil { - w.sendError(os.NewSyscallError("CloseHandle", err)) - } - w.mu.Lock() - delete(w.watches[watch.ino.volume], watch.ino.index) - w.mu.Unlock() - return nil - } - - rdErr := windows.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0], - uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0) - if rdErr != nil { - err := os.NewSyscallError("ReadDirectoryChanges", rdErr) - if rdErr == windows.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { - // Watched directory was probably removed - w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) - err = nil - } - w.deleteWatch(watch) - w.startRead(watch) - return err - } - return nil -} - -// readEvents reads from the I/O completion port, converts the -// received events into Event objects and sends them via the Events channel. -// Entry point to the I/O thread. -func (w *Watcher) readEvents() { - var ( - n uint32 - key uintptr - ov *windows.Overlapped - ) - runtime.LockOSThread() - - for { - qErr := windows.GetQueuedCompletionStatus(w.port, &n, &key, &ov, windows.INFINITE) - // This error is handled after the watch == nil check below. NOTE: this - // seems odd, note sure if it's correct. - - watch := (*watch)(unsafe.Pointer(ov)) - if watch == nil { - select { - case ch := <-w.quit: - w.mu.Lock() - var indexes []indexMap - for _, index := range w.watches { - indexes = append(indexes, index) - } - w.mu.Unlock() - for _, index := range indexes { - for _, watch := range index { - w.deleteWatch(watch) - w.startRead(watch) - } - } - - err := windows.CloseHandle(w.port) - if err != nil { - err = os.NewSyscallError("CloseHandle", err) - } - close(w.Events) - close(w.Errors) - ch <- err - return - case in := <-w.input: - switch in.op { - case opAddWatch: - in.reply <- w.addWatch(in.path, uint64(in.flags)) - case opRemoveWatch: - in.reply <- w.remWatch(in.path) - } - default: - } - continue - } - - switch qErr { - case windows.ERROR_MORE_DATA: - if watch == nil { - w.sendError(errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer")) - } else { - // The i/o succeeded but the buffer is full. - // In theory we should be building up a full packet. - // In practice we can get away with just carrying on. - n = uint32(unsafe.Sizeof(watch.buf)) - } - case windows.ERROR_ACCESS_DENIED: - // Watched directory was probably removed - w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) - w.deleteWatch(watch) - w.startRead(watch) - continue - case windows.ERROR_OPERATION_ABORTED: - // CancelIo was called on this handle - continue - default: - w.sendError(os.NewSyscallError("GetQueuedCompletionPort", qErr)) - continue - case nil: - } - - var offset uint32 - for { - if n == 0 { - w.sendError(errors.New("short read in readEvents()")) - break - } - - // Point "raw" to the event in the buffer - raw := (*windows.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) - - // Create a buf that is the size of the path name - size := int(raw.FileNameLength / 2) - var buf []uint16 - // TODO: Use unsafe.Slice in Go 1.17; https://stackoverflow.com/questions/51187973 - sh := (*reflect.SliceHeader)(unsafe.Pointer(&buf)) - sh.Data = uintptr(unsafe.Pointer(&raw.FileName)) - sh.Len = size - sh.Cap = size - name := windows.UTF16ToString(buf) - fullname := filepath.Join(watch.path, name) - - var mask uint64 - switch raw.Action { - case windows.FILE_ACTION_REMOVED: - mask = sysFSDELETESELF - case windows.FILE_ACTION_MODIFIED: - mask = sysFSMODIFY - case windows.FILE_ACTION_RENAMED_OLD_NAME: - watch.rename = name - case windows.FILE_ACTION_RENAMED_NEW_NAME: - // Update saved path of all sub-watches. - old := filepath.Join(watch.path, watch.rename) - w.mu.Lock() - for _, watchMap := range w.watches { - for _, ww := range watchMap { - if strings.HasPrefix(ww.path, old) { - ww.path = filepath.Join(fullname, strings.TrimPrefix(ww.path, old)) - } - } - } - w.mu.Unlock() - - if watch.names[watch.rename] != 0 { - watch.names[name] |= watch.names[watch.rename] - delete(watch.names, watch.rename) - mask = sysFSMOVESELF - } - } - - sendNameEvent := func() { - w.sendEvent(fullname, watch.names[name]&mask) - } - if raw.Action != windows.FILE_ACTION_RENAMED_NEW_NAME { - sendNameEvent() - } - if raw.Action == windows.FILE_ACTION_REMOVED { - w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - - w.sendEvent(fullname, watch.mask&w.toFSnotifyFlags(raw.Action)) - if raw.Action == windows.FILE_ACTION_RENAMED_NEW_NAME { - fullname = filepath.Join(watch.path, watch.rename) - sendNameEvent() - } - - // Move to the next event in the buffer - if raw.NextEntryOffset == 0 { - break - } - offset += raw.NextEntryOffset - - // Error! - if offset >= n { - w.sendError(errors.New( - "Windows system assumed buffer larger than it is, events have likely been missed.")) - break - } - } - - if err := w.startRead(watch); err != nil { - w.sendError(err) - } - } -} - -func (w *Watcher) toWindowsFlags(mask uint64) uint32 { - var m uint32 - if mask&sysFSMODIFY != 0 { - m |= windows.FILE_NOTIFY_CHANGE_LAST_WRITE - } - if mask&sysFSATTRIB != 0 { - m |= windows.FILE_NOTIFY_CHANGE_ATTRIBUTES - } - if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { - m |= windows.FILE_NOTIFY_CHANGE_FILE_NAME | windows.FILE_NOTIFY_CHANGE_DIR_NAME - } - return m -} - -func (w *Watcher) toFSnotifyFlags(action uint32) uint64 { - switch action { - case windows.FILE_ACTION_ADDED: - return sysFSCREATE - case windows.FILE_ACTION_REMOVED: - return sysFSDELETE - case windows.FILE_ACTION_MODIFIED: - return sysFSMODIFY - case windows.FILE_ACTION_RENAMED_OLD_NAME: - return sysFSMOVEDFROM - case windows.FILE_ACTION_RENAMED_NEW_NAME: - return sysFSMOVEDTO - } - return 0 -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/backend/vendor/github.com/fsnotify/fsnotify/fsnotify.go deleted file mode 100644 index 30a5bf0f..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/fsnotify.go +++ /dev/null @@ -1,81 +0,0 @@ -//go:build !plan9 -// +build !plan9 - -// Package fsnotify provides a cross-platform interface for file system -// notifications. -package fsnotify - -import ( - "errors" - "fmt" - "strings" -) - -// Event represents a file system notification. -type Event struct { - // Path to the file or directory. - // - // Paths are relative to the input; for example with Add("dir") the Name - // will be set to "dir/file" if you create that file, but if you use - // Add("/path/to/dir") it will be "/path/to/dir/file". - Name string - - // File operation that triggered the event. - // - // This is a bitmask and some systems may send multiple operations at once. - // Use the Event.Has() method instead of comparing with ==. - Op Op -} - -// Op describes a set of file operations. -type Op uint32 - -// The operations fsnotify can trigger; see the documentation on [Watcher] for a -// full description, and check them with [Event.Has]. -const ( - Create Op = 1 << iota - Write - Remove - Rename - Chmod -) - -// Common errors that can be reported by a watcher -var ( - ErrNonExistentWatch = errors.New("can't remove non-existent watcher") - ErrEventOverflow = errors.New("fsnotify queue overflow") -) - -func (op Op) String() string { - var b strings.Builder - if op.Has(Create) { - b.WriteString("|CREATE") - } - if op.Has(Remove) { - b.WriteString("|REMOVE") - } - if op.Has(Write) { - b.WriteString("|WRITE") - } - if op.Has(Rename) { - b.WriteString("|RENAME") - } - if op.Has(Chmod) { - b.WriteString("|CHMOD") - } - if b.Len() == 0 { - return "[no events]" - } - return b.String()[1:] -} - -// Has reports if this operation has the given operation. -func (o Op) Has(h Op) bool { return o&h == h } - -// Has reports if this event has the given operation. -func (e Event) Has(op Op) bool { return e.Op.Has(op) } - -// String returns a string representation of the event with their path. -func (e Event) String() string { - return fmt.Sprintf("%-13s %q", e.Op.String(), e.Name) -} diff --git a/backend/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh b/backend/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh deleted file mode 100644 index b09ef768..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh +++ /dev/null @@ -1,208 +0,0 @@ -#!/usr/bin/env zsh -[ "${ZSH_VERSION:-}" = "" ] && echo >&2 "Only works with zsh" && exit 1 -setopt err_exit no_unset pipefail extended_glob - -# Simple script to update the godoc comments on all watchers. Probably took me -# more time to write this than doing it manually, but ah well 🙃 - -watcher=$(</tmp/x - print -r -- $cmt >>/tmp/x - tail -n+$(( end + 1 )) $file >>/tmp/x - mv /tmp/x $file - done -} - -set-cmt '^type Watcher struct ' $watcher -set-cmt '^func NewWatcher(' $new -set-cmt '^func (w \*Watcher) Add(' $add -set-cmt '^func (w \*Watcher) Remove(' $remove -set-cmt '^func (w \*Watcher) Close(' $close -set-cmt '^func (w \*Watcher) WatchList(' $watchlist -set-cmt '^[[:space:]]*Events *chan Event$' $events -set-cmt '^[[:space:]]*Errors *chan error$' $errors diff --git a/backend/vendor/github.com/fsnotify/fsnotify/system_bsd.go b/backend/vendor/github.com/fsnotify/fsnotify/system_bsd.go deleted file mode 100644 index 4322b0b8..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/system_bsd.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build freebsd || openbsd || netbsd || dragonfly -// +build freebsd openbsd netbsd dragonfly - -package fsnotify - -import "golang.org/x/sys/unix" - -const openMode = unix.O_NONBLOCK | unix.O_RDONLY | unix.O_CLOEXEC diff --git a/backend/vendor/github.com/fsnotify/fsnotify/system_darwin.go b/backend/vendor/github.com/fsnotify/fsnotify/system_darwin.go deleted file mode 100644 index 5da5ffa7..00000000 --- a/backend/vendor/github.com/fsnotify/fsnotify/system_darwin.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build darwin -// +build darwin - -package fsnotify - -import "golang.org/x/sys/unix" - -// note: this constant is not defined on BSD -const openMode = unix.O_EVTONLY | unix.O_CLOEXEC diff --git a/backend/vendor/github.com/go-errors/errors/.travis.yml b/backend/vendor/github.com/go-errors/errors/.travis.yml deleted file mode 100644 index 77a6bccf..00000000 --- a/backend/vendor/github.com/go-errors/errors/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: go - -go: - - "1.8.x" - - "1.10.x" - - "1.13.x" - - "1.14.x" - - "1.16.x" diff --git a/backend/vendor/github.com/go-errors/errors/LICENSE.MIT b/backend/vendor/github.com/go-errors/errors/LICENSE.MIT deleted file mode 100644 index c9a5b2ee..00000000 --- a/backend/vendor/github.com/go-errors/errors/LICENSE.MIT +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2015 Conrad Irwin - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/github.com/go-errors/errors/README.md b/backend/vendor/github.com/go-errors/errors/README.md deleted file mode 100644 index 3d785259..00000000 --- a/backend/vendor/github.com/go-errors/errors/README.md +++ /dev/null @@ -1,82 +0,0 @@ -go-errors/errors -================ - -[![Build Status](https://travis-ci.org/go-errors/errors.svg?branch=master)](https://travis-ci.org/go-errors/errors) - -Package errors adds stacktrace support to errors in go. - -This is particularly useful when you want to understand the state of execution -when an error was returned unexpectedly. - -It provides the type \*Error which implements the standard golang error -interface, so you can use this library interchangably with code that is -expecting a normal error return. - -Usage ------ - -Full documentation is available on -[godoc](https://godoc.org/github.com/go-errors/errors), but here's a simple -example: - -```go -package crashy - -import "github.com/go-errors/errors" - -var Crashed = errors.Errorf("oh dear") - -func Crash() error { - return errors.New(Crashed) -} -``` - -This can be called as follows: - -```go -package main - -import ( - "crashy" - "fmt" - "github.com/go-errors/errors" -) - -func main() { - err := crashy.Crash() - if err != nil { - if errors.Is(err, crashy.Crashed) { - fmt.Println(err.(*errors.Error).ErrorStack()) - } else { - panic(err) - } - } -} -``` - -Meta-fu -------- - -This package was original written to allow reporting to -[Bugsnag](https://bugsnag.com/) from -[bugsnag-go](https://github.com/bugsnag/bugsnag-go), but after I found similar -packages by Facebook and Dropbox, it was moved to one canonical location so -everyone can benefit. - -This package is licensed under the MIT license, see LICENSE.MIT for details. - - -## Changelog -* v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is -* v1.2.0 added `errors.As` from the standard library. -* v1.3.0 *BREAKING* updated error methods to return `error` instead of `*Error`. -> Code that needs access to the underlying `*Error` can use the new errors.AsError(e) -> ``` -> // before -> errors.New(err).ErrorStack() -> // after ->. errors.AsError(errors.Wrap(err)).ErrorStack() -> ``` -* v1.4.0 *BREAKING* v1.4.0 reverted all changes from v1.3.0 and is identical to v1.2.0 -* v1.4.1 no code change, but now without an unnecessary cover.out file. -* v1.4.2 performance improvement to ErrorStack() to avoid unnecessary work https://github.com/go-errors/errors/pull/40 diff --git a/backend/vendor/github.com/go-errors/errors/error.go b/backend/vendor/github.com/go-errors/errors/error.go deleted file mode 100644 index 533f1bb2..00000000 --- a/backend/vendor/github.com/go-errors/errors/error.go +++ /dev/null @@ -1,209 +0,0 @@ -// Package errors provides errors that have stack-traces. -// -// This is particularly useful when you want to understand the -// state of execution when an error was returned unexpectedly. -// -// It provides the type *Error which implements the standard -// golang error interface, so you can use this library interchangably -// with code that is expecting a normal error return. -// -// For example: -// -// package crashy -// -// import "github.com/go-errors/errors" -// -// var Crashed = errors.Errorf("oh dear") -// -// func Crash() error { -// return errors.New(Crashed) -// } -// -// This can be called as follows: -// -// package main -// -// import ( -// "crashy" -// "fmt" -// "github.com/go-errors/errors" -// ) -// -// func main() { -// err := crashy.Crash() -// if err != nil { -// if errors.Is(err, crashy.Crashed) { -// fmt.Println(err.(*errors.Error).ErrorStack()) -// } else { -// panic(err) -// } -// } -// } -// -// This package was original written to allow reporting to Bugsnag, -// but after I found similar packages by Facebook and Dropbox, it -// was moved to one canonical location so everyone can benefit. -package errors - -import ( - "bytes" - "fmt" - "reflect" - "runtime" -) - -// The maximum number of stackframes on any error. -var MaxStackDepth = 50 - -// Error is an error with an attached stacktrace. It can be used -// wherever the builtin error interface is expected. -type Error struct { - Err error - stack []uintptr - frames []StackFrame - prefix string -} - -// New makes an Error from the given value. If that value is already an -// error then it will be used directly, if not, it will be passed to -// fmt.Errorf("%v"). The stacktrace will point to the line of code that -// called New. -func New(e interface{}) *Error { - var err error - - switch e := e.(type) { - case error: - err = e - default: - err = fmt.Errorf("%v", e) - } - - stack := make([]uintptr, MaxStackDepth) - length := runtime.Callers(2, stack[:]) - return &Error{ - Err: err, - stack: stack[:length], - } -} - -// Wrap makes an Error from the given value. If that value is already an -// error then it will be used directly, if not, it will be passed to -// fmt.Errorf("%v"). The skip parameter indicates how far up the stack -// to start the stacktrace. 0 is from the current call, 1 from its caller, etc. -func Wrap(e interface{}, skip int) *Error { - if e == nil { - return nil - } - - var err error - - switch e := e.(type) { - case *Error: - return e - case error: - err = e - default: - err = fmt.Errorf("%v", e) - } - - stack := make([]uintptr, MaxStackDepth) - length := runtime.Callers(2+skip, stack[:]) - return &Error{ - Err: err, - stack: stack[:length], - } -} - -// WrapPrefix makes an Error from the given value. If that value is already an -// error then it will be used directly, if not, it will be passed to -// fmt.Errorf("%v"). The prefix parameter is used to add a prefix to the -// error message when calling Error(). The skip parameter indicates how far -// up the stack to start the stacktrace. 0 is from the current call, -// 1 from its caller, etc. -func WrapPrefix(e interface{}, prefix string, skip int) *Error { - if e == nil { - return nil - } - - err := Wrap(e, 1+skip) - - if err.prefix != "" { - prefix = fmt.Sprintf("%s: %s", prefix, err.prefix) - } - - return &Error{ - Err: err.Err, - stack: err.stack, - prefix: prefix, - } - -} - -// Errorf creates a new error with the given message. You can use it -// as a drop-in replacement for fmt.Errorf() to provide descriptive -// errors in return values. -func Errorf(format string, a ...interface{}) *Error { - return Wrap(fmt.Errorf(format, a...), 1) -} - -// Error returns the underlying error's message. -func (err *Error) Error() string { - - msg := err.Err.Error() - if err.prefix != "" { - msg = fmt.Sprintf("%s: %s", err.prefix, msg) - } - - return msg -} - -// Stack returns the callstack formatted the same way that go does -// in runtime/debug.Stack() -func (err *Error) Stack() []byte { - buf := bytes.Buffer{} - - for _, frame := range err.StackFrames() { - buf.WriteString(frame.String()) - } - - return buf.Bytes() -} - -// Callers satisfies the bugsnag ErrorWithCallerS() interface -// so that the stack can be read out. -func (err *Error) Callers() []uintptr { - return err.stack -} - -// ErrorStack returns a string that contains both the -// error message and the callstack. -func (err *Error) ErrorStack() string { - return err.TypeName() + " " + err.Error() + "\n" + string(err.Stack()) -} - -// StackFrames returns an array of frames containing information about the -// stack. -func (err *Error) StackFrames() []StackFrame { - if err.frames == nil { - err.frames = make([]StackFrame, len(err.stack)) - - for i, pc := range err.stack { - err.frames[i] = NewStackFrame(pc) - } - } - - return err.frames -} - -// TypeName returns the type this error. e.g. *errors.stringError. -func (err *Error) TypeName() string { - if _, ok := err.Err.(uncaughtPanic); ok { - return "panic" - } - return reflect.TypeOf(err.Err).String() -} - -// Return the wrapped error (implements api for As function). -func (err *Error) Unwrap() error { - return err.Err -} diff --git a/backend/vendor/github.com/go-errors/errors/error_1_13.go b/backend/vendor/github.com/go-errors/errors/error_1_13.go deleted file mode 100644 index 09d8a555..00000000 --- a/backend/vendor/github.com/go-errors/errors/error_1_13.go +++ /dev/null @@ -1,32 +0,0 @@ -//go:build go1.13 -// +build go1.13 - -package errors - -import ( - baseErrors "errors" -) - -// find error in any wrapped error -func As(err error, target interface{}) bool { - return baseErrors.As(err, target) -} - -// Is detects whether the error is equal to a given error. Errors -// are considered equal by this function if they are matched by errors.Is -// or if their contained errors are matched through errors.Is -func Is(e error, original error) bool { - if baseErrors.Is(e, original) { - return true - } - - if e, ok := e.(*Error); ok { - return Is(e.Err, original) - } - - if original, ok := original.(*Error); ok { - return Is(e, original.Err) - } - - return false -} diff --git a/backend/vendor/github.com/go-errors/errors/error_backward.go b/backend/vendor/github.com/go-errors/errors/error_backward.go deleted file mode 100644 index 69a79474..00000000 --- a/backend/vendor/github.com/go-errors/errors/error_backward.go +++ /dev/null @@ -1,58 +0,0 @@ -//go:build !go1.13 -// +build !go1.13 - -package errors - -import ( - "reflect" -) - -type unwrapper interface { - Unwrap() error -} - -// As assigns error or any wrapped error to the value target points -// to. If there is no value of the target type of target As returns -// false. -func As(err error, target interface{}) bool { - targetType := reflect.TypeOf(target) - - for { - errType := reflect.TypeOf(err) - - if errType == nil { - return false - } - - if reflect.PtrTo(errType) == targetType { - reflect.ValueOf(target).Elem().Set(reflect.ValueOf(err)) - return true - } - - wrapped, ok := err.(unwrapper) - if ok { - err = wrapped.Unwrap() - } else { - return false - } - } -} - -// Is detects whether the error is equal to a given error. Errors -// are considered equal by this function if they are the same object, -// or if they both contain the same error inside an errors.Error. -func Is(e error, original error) bool { - if e == original { - return true - } - - if e, ok := e.(*Error); ok { - return Is(e.Err, original) - } - - if original, ok := original.(*Error); ok { - return Is(e, original.Err) - } - - return false -} diff --git a/backend/vendor/github.com/go-errors/errors/parse_panic.go b/backend/vendor/github.com/go-errors/errors/parse_panic.go deleted file mode 100644 index d295563d..00000000 --- a/backend/vendor/github.com/go-errors/errors/parse_panic.go +++ /dev/null @@ -1,127 +0,0 @@ -package errors - -import ( - "strconv" - "strings" -) - -type uncaughtPanic struct{ message string } - -func (p uncaughtPanic) Error() string { - return p.message -} - -// ParsePanic allows you to get an error object from the output of a go program -// that panicked. This is particularly useful with https://github.com/mitchellh/panicwrap. -func ParsePanic(text string) (*Error, error) { - lines := strings.Split(text, "\n") - - state := "start" - - var message string - var stack []StackFrame - - for i := 0; i < len(lines); i++ { - line := lines[i] - - if state == "start" { - if strings.HasPrefix(line, "panic: ") { - message = strings.TrimPrefix(line, "panic: ") - state = "seek" - } else { - return nil, Errorf("bugsnag.panicParser: Invalid line (no prefix): %s", line) - } - - } else if state == "seek" { - if strings.HasPrefix(line, "goroutine ") && strings.HasSuffix(line, "[running]:") { - state = "parsing" - } - - } else if state == "parsing" { - if line == "" { - state = "done" - break - } - createdBy := false - if strings.HasPrefix(line, "created by ") { - line = strings.TrimPrefix(line, "created by ") - createdBy = true - } - - i++ - - if i >= len(lines) { - return nil, Errorf("bugsnag.panicParser: Invalid line (unpaired): %s", line) - } - - frame, err := parsePanicFrame(line, lines[i], createdBy) - if err != nil { - return nil, err - } - - stack = append(stack, *frame) - if createdBy { - state = "done" - break - } - } - } - - if state == "done" || state == "parsing" { - return &Error{Err: uncaughtPanic{message}, frames: stack}, nil - } - return nil, Errorf("could not parse panic: %v", text) -} - -// The lines we're passing look like this: -// -// main.(*foo).destruct(0xc208067e98) -// /0/go/src/github.com/bugsnag/bugsnag-go/pan/main.go:22 +0x151 -func parsePanicFrame(name string, line string, createdBy bool) (*StackFrame, error) { - idx := strings.LastIndex(name, "(") - if idx == -1 && !createdBy { - return nil, Errorf("bugsnag.panicParser: Invalid line (no call): %s", name) - } - if idx != -1 { - name = name[:idx] - } - pkg := "" - - if lastslash := strings.LastIndex(name, "/"); lastslash >= 0 { - pkg += name[:lastslash] + "/" - name = name[lastslash+1:] - } - if period := strings.Index(name, "."); period >= 0 { - pkg += name[:period] - name = name[period+1:] - } - - name = strings.Replace(name, "·", ".", -1) - - if !strings.HasPrefix(line, "\t") { - return nil, Errorf("bugsnag.panicParser: Invalid line (no tab): %s", line) - } - - idx = strings.LastIndex(line, ":") - if idx == -1 { - return nil, Errorf("bugsnag.panicParser: Invalid line (no line number): %s", line) - } - file := line[1:idx] - - number := line[idx+1:] - if idx = strings.Index(number, " +"); idx > -1 { - number = number[:idx] - } - - lno, err := strconv.ParseInt(number, 10, 32) - if err != nil { - return nil, Errorf("bugsnag.panicParser: Invalid line (bad line number): %s", line) - } - - return &StackFrame{ - File: file, - LineNumber: int(lno), - Package: pkg, - Name: name, - }, nil -} diff --git a/backend/vendor/github.com/go-errors/errors/stackframe.go b/backend/vendor/github.com/go-errors/errors/stackframe.go deleted file mode 100644 index ef4a8b3f..00000000 --- a/backend/vendor/github.com/go-errors/errors/stackframe.go +++ /dev/null @@ -1,122 +0,0 @@ -package errors - -import ( - "bufio" - "bytes" - "fmt" - "os" - "runtime" - "strings" -) - -// A StackFrame contains all necessary information about to generate a line -// in a callstack. -type StackFrame struct { - // The path to the file containing this ProgramCounter - File string - // The LineNumber in that file - LineNumber int - // The Name of the function that contains this ProgramCounter - Name string - // The Package that contains this function - Package string - // The underlying ProgramCounter - ProgramCounter uintptr -} - -// NewStackFrame popoulates a stack frame object from the program counter. -func NewStackFrame(pc uintptr) (frame StackFrame) { - - frame = StackFrame{ProgramCounter: pc} - if frame.Func() == nil { - return - } - frame.Package, frame.Name = packageAndName(frame.Func()) - - // pc -1 because the program counters we use are usually return addresses, - // and we want to show the line that corresponds to the function call - frame.File, frame.LineNumber = frame.Func().FileLine(pc - 1) - return - -} - -// Func returns the function that contained this frame. -func (frame *StackFrame) Func() *runtime.Func { - if frame.ProgramCounter == 0 { - return nil - } - return runtime.FuncForPC(frame.ProgramCounter) -} - -// String returns the stackframe formatted in the same way as go does -// in runtime/debug.Stack() -func (frame *StackFrame) String() string { - str := fmt.Sprintf("%s:%d (0x%x)\n", frame.File, frame.LineNumber, frame.ProgramCounter) - - source, err := frame.sourceLine() - if err != nil { - return str - } - - return str + fmt.Sprintf("\t%s: %s\n", frame.Name, source) -} - -// SourceLine gets the line of code (from File and Line) of the original source if possible. -func (frame *StackFrame) SourceLine() (string, error) { - source, err := frame.sourceLine() - if err != nil { - return source, New(err) - } - return source, err -} - -func (frame *StackFrame) sourceLine() (string, error) { - if frame.LineNumber <= 0 { - return "???", nil - } - - file, err := os.Open(frame.File) - if err != nil { - return "", err - } - defer file.Close() - - scanner := bufio.NewScanner(file) - currentLine := 1 - for scanner.Scan() { - if currentLine == frame.LineNumber { - return string(bytes.Trim(scanner.Bytes(), " \t")), nil - } - currentLine++ - } - if err := scanner.Err(); err != nil { - return "", err - } - - return "???", nil -} - -func packageAndName(fn *runtime.Func) (string, string) { - name := fn.Name() - pkg := "" - - // The name includes the path name to the package, which is unnecessary - // since the file name is already included. Plus, it has center dots. - // That is, we see - // runtime/debug.*T·ptrmethod - // and want - // *T.ptrmethod - // Since the package path might contains dots (e.g. code.google.com/...), - // we first remove the path prefix if there is one. - if lastslash := strings.LastIndex(name, "/"); lastslash >= 0 { - pkg += name[:lastslash] + "/" - name = name[lastslash+1:] - } - if period := strings.Index(name, "."); period >= 0 { - pkg += name[:period] - name = name[period+1:] - } - - name = strings.Replace(name, "·", ".", -1) - return pkg, name -} diff --git a/backend/vendor/github.com/go-ole/go-ole/.travis.yml b/backend/vendor/github.com/go-ole/go-ole/.travis.yml deleted file mode 100644 index 28f740cd..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: go -sudo: false - -go: - - 1.9.x - - 1.10.x - - 1.11.x - - tip diff --git a/backend/vendor/github.com/go-ole/go-ole/ChangeLog.md b/backend/vendor/github.com/go-ole/go-ole/ChangeLog.md deleted file mode 100644 index 4ba6a8c6..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/ChangeLog.md +++ /dev/null @@ -1,49 +0,0 @@ -# Version 1.x.x - -* **Add more test cases and reference new test COM server project.** (Placeholder for future additions) - -# Version 1.2.0-alphaX - -**Minimum supported version is now Go 1.4. Go 1.1 support is deprecated, but should still build.** - - * Added CI configuration for Travis-CI and AppVeyor. - * Added test InterfaceID and ClassID for the COM Test Server project. - * Added more inline documentation (#83). - * Added IEnumVARIANT implementation (#88). - * Added IEnumVARIANT test cases (#99, #100, #101). - * Added support for retrieving `time.Time` from VARIANT (#92). - * Added test case for IUnknown (#64). - * Added test case for IDispatch (#64). - * Added test cases for scalar variants (#64, #76). - -# Version 1.1.1 - - * Fixes for Linux build. - * Fixes for Windows build. - -# Version 1.1.0 - -The change to provide building on all platforms is a new feature. The increase in minor version reflects that and allows those who wish to stay on 1.0.x to continue to do so. Support for 1.0.x will be limited to bug fixes. - - * Move GUID out of variables.go into its own file to make new documentation available. - * Move OleError out of ole.go into its own file to make new documentation available. - * Add documentation to utility functions. - * Add documentation to variant receiver functions. - * Add documentation to ole structures. - * Make variant available to other systems outside of Windows. - * Make OLE structures available to other systems outside of Windows. - -## New Features - - * Library should now be built on all platforms supported by Go. Library will NOOP on any platform that is not Windows. - * More functions are now documented and available on godoc.org. - -# Version 1.0.1 - - 1. Fix package references from repository location change. - -# Version 1.0.0 - -This version is stable enough for use. The COM API is still incomplete, but provides enough functionality for accessing COM servers using IDispatch interface. - -There is no changelog for this version. Check commits for history. diff --git a/backend/vendor/github.com/go-ole/go-ole/LICENSE b/backend/vendor/github.com/go-ole/go-ole/LICENSE deleted file mode 100644 index 623ec06f..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright © 2013-2017 Yasuhiro Matsumoto, - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the “Software”), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/go-ole/go-ole/README.md b/backend/vendor/github.com/go-ole/go-ole/README.md deleted file mode 100644 index 7b577558..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Go OLE - -[![Build status](https://ci.appveyor.com/api/projects/status/qr0u2sf7q43us9fj?svg=true)](https://ci.appveyor.com/project/jacobsantos/go-ole-jgs28) -[![Build Status](https://travis-ci.org/go-ole/go-ole.svg?branch=master)](https://travis-ci.org/go-ole/go-ole) -[![GoDoc](https://godoc.org/github.com/go-ole/go-ole?status.svg)](https://godoc.org/github.com/go-ole/go-ole) - -Go bindings for Windows COM using shared libraries instead of cgo. - -By Yasuhiro Matsumoto. - -## Install - -To experiment with go-ole, you can just compile and run the example program: - -``` -go get github.com/go-ole/go-ole -cd /path/to/go-ole/ -go test - -cd /path/to/go-ole/example/excel -go run excel.go -``` - -## Continuous Integration - -Continuous integration configuration has been added for both Travis-CI and AppVeyor. You will have to add these to your own account for your fork in order for it to run. - -**Travis-CI** - -Travis-CI was added to check builds on Linux to ensure that `go get` works when cross building. Currently, Travis-CI is not used to test cross-building, but this may be changed in the future. It is also not currently possible to test the library on Linux, since COM API is specific to Windows and it is not currently possible to run a COM server on Linux or even connect to a remote COM server. - -**AppVeyor** - -AppVeyor is used to build on Windows using the (in-development) test COM server. It is currently only used to test the build and ensure that the code works on Windows. It will be used to register a COM server and then run the test cases based on the test COM server. - -The tests currently do run and do pass and this should be maintained with commits. - -## Versioning - -Go OLE uses [semantic versioning](http://semver.org) for version numbers, which is similar to the version contract of the Go language. Which means that the major version will always maintain backwards compatibility with minor versions. Minor versions will only add new additions and changes. Fixes will always be in patch. - -This contract should allow you to upgrade to new minor and patch versions without breakage or modifications to your existing code. Leave a ticket, if there is breakage, so that it could be fixed. - -## LICENSE - -Under the MIT License: http://mattn.mit-license.org/2013 diff --git a/backend/vendor/github.com/go-ole/go-ole/appveyor.yml b/backend/vendor/github.com/go-ole/go-ole/appveyor.yml deleted file mode 100644 index 0d557ac2..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/appveyor.yml +++ /dev/null @@ -1,54 +0,0 @@ -# Notes: -# - Minimal appveyor.yml file is an empty file. All sections are optional. -# - Indent each level of configuration with 2 spaces. Do not use tabs! -# - All section names are case-sensitive. -# - Section names should be unique on each level. - -version: "1.3.0.{build}-alpha-{branch}" - -os: Windows Server 2012 R2 - -branches: - only: - - master - - v1.2 - - v1.1 - - v1.0 - -skip_tags: true - -clone_folder: c:\gopath\src\github.com\go-ole\go-ole - -environment: - GOPATH: c:\gopath - matrix: - - GOARCH: amd64 - GOVERSION: 1.5 - GOROOT: c:\go - DOWNLOADPLATFORM: "x64" - -install: - - choco install mingw - - SET PATH=c:\tools\mingw64\bin;%PATH% - # - Download COM Server - - ps: Start-FileDownload "https://github.com/go-ole/test-com-server/releases/download/v1.0.2/test-com-server-${env:DOWNLOADPLATFORM}.zip" - - 7z e test-com-server-%DOWNLOADPLATFORM%.zip -oc:\gopath\src\github.com\go-ole\go-ole > NUL - - c:\gopath\src\github.com\go-ole\go-ole\build\register-assembly.bat - # - set - - go version - - go env - - go get -u golang.org/x/tools/cmd/cover - - go get -u golang.org/x/tools/cmd/godoc - - go get -u golang.org/x/tools/cmd/stringer - -build_script: - - cd c:\gopath\src\github.com\go-ole\go-ole - - go get -v -t ./... - - go build - - go test -v -cover ./... - -# disable automatic tests -test: off - -# disable deployment -deploy: off diff --git a/backend/vendor/github.com/go-ole/go-ole/com.go b/backend/vendor/github.com/go-ole/go-ole/com.go deleted file mode 100644 index 6333441f..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/com.go +++ /dev/null @@ -1,345 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "syscall" - "unicode/utf16" - "unsafe" -) - -var ( - procCoInitialize = modole32.NewProc("CoInitialize") - procCoInitializeEx = modole32.NewProc("CoInitializeEx") - procCoUninitialize = modole32.NewProc("CoUninitialize") - procCoCreateInstance = modole32.NewProc("CoCreateInstance") - procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") - procCLSIDFromProgID = modole32.NewProc("CLSIDFromProgID") - procCLSIDFromString = modole32.NewProc("CLSIDFromString") - procStringFromCLSID = modole32.NewProc("StringFromCLSID") - procStringFromIID = modole32.NewProc("StringFromIID") - procIIDFromString = modole32.NewProc("IIDFromString") - procCoGetObject = modole32.NewProc("CoGetObject") - procGetUserDefaultLCID = modkernel32.NewProc("GetUserDefaultLCID") - procCopyMemory = modkernel32.NewProc("RtlMoveMemory") - procVariantInit = modoleaut32.NewProc("VariantInit") - procVariantClear = modoleaut32.NewProc("VariantClear") - procVariantTimeToSystemTime = modoleaut32.NewProc("VariantTimeToSystemTime") - procSysAllocString = modoleaut32.NewProc("SysAllocString") - procSysAllocStringLen = modoleaut32.NewProc("SysAllocStringLen") - procSysFreeString = modoleaut32.NewProc("SysFreeString") - procSysStringLen = modoleaut32.NewProc("SysStringLen") - procCreateDispTypeInfo = modoleaut32.NewProc("CreateDispTypeInfo") - procCreateStdDispatch = modoleaut32.NewProc("CreateStdDispatch") - procGetActiveObject = modoleaut32.NewProc("GetActiveObject") - - procGetMessageW = moduser32.NewProc("GetMessageW") - procDispatchMessageW = moduser32.NewProc("DispatchMessageW") -) - -// coInitialize initializes COM library on current thread. -// -// MSDN documentation suggests that this function should not be called. Call -// CoInitializeEx() instead. The reason has to do with threading and this -// function is only for single-threaded apartments. -// -// That said, most users of the library have gotten away with just this -// function. If you are experiencing threading issues, then use -// CoInitializeEx(). -func coInitialize() (err error) { - // http://msdn.microsoft.com/en-us/library/windows/desktop/ms678543(v=vs.85).aspx - // Suggests that no value should be passed to CoInitialized. - // Could just be Call() since the parameter is optional. <-- Needs testing to be sure. - hr, _, _ := procCoInitialize.Call(uintptr(0)) - if hr != 0 { - err = NewError(hr) - } - return -} - -// coInitializeEx initializes COM library with concurrency model. -func coInitializeEx(coinit uint32) (err error) { - // http://msdn.microsoft.com/en-us/library/windows/desktop/ms695279(v=vs.85).aspx - // Suggests that the first parameter is not only optional but should always be NULL. - hr, _, _ := procCoInitializeEx.Call(uintptr(0), uintptr(coinit)) - if hr != 0 { - err = NewError(hr) - } - return -} - -// CoInitialize initializes COM library on current thread. -// -// MSDN documentation suggests that this function should not be called. Call -// CoInitializeEx() instead. The reason has to do with threading and this -// function is only for single-threaded apartments. -// -// That said, most users of the library have gotten away with just this -// function. If you are experiencing threading issues, then use -// CoInitializeEx(). -func CoInitialize(p uintptr) (err error) { - // p is ignored and won't be used. - // Avoid any variable not used errors. - p = uintptr(0) - return coInitialize() -} - -// CoInitializeEx initializes COM library with concurrency model. -func CoInitializeEx(p uintptr, coinit uint32) (err error) { - // Avoid any variable not used errors. - p = uintptr(0) - return coInitializeEx(coinit) -} - -// CoUninitialize uninitializes COM Library. -func CoUninitialize() { - procCoUninitialize.Call() -} - -// CoTaskMemFree frees memory pointer. -func CoTaskMemFree(memptr uintptr) { - procCoTaskMemFree.Call(memptr) -} - -// CLSIDFromProgID retrieves Class Identifier with the given Program Identifier. -// -// The Programmatic Identifier must be registered, because it will be looked up -// in the Windows Registry. The registry entry has the following keys: CLSID, -// Insertable, Protocol and Shell -// (https://msdn.microsoft.com/en-us/library/dd542719(v=vs.85).aspx). -// -// programID identifies the class id with less precision and is not guaranteed -// to be unique. These are usually found in the registry under -// HKEY_LOCAL_MACHINE\SOFTWARE\Classes, usually with the format of -// "Program.Component.Version" with version being optional. -// -// CLSIDFromProgID in Windows API. -func CLSIDFromProgID(progId string) (clsid *GUID, err error) { - var guid GUID - lpszProgID := uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(progId))) - hr, _, _ := procCLSIDFromProgID.Call(lpszProgID, uintptr(unsafe.Pointer(&guid))) - if hr != 0 { - err = NewError(hr) - } - clsid = &guid - return -} - -// CLSIDFromString retrieves Class ID from string representation. -// -// This is technically the string version of the GUID and will convert the -// string to object. -// -// CLSIDFromString in Windows API. -func CLSIDFromString(str string) (clsid *GUID, err error) { - var guid GUID - lpsz := uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(str))) - hr, _, _ := procCLSIDFromString.Call(lpsz, uintptr(unsafe.Pointer(&guid))) - if hr != 0 { - err = NewError(hr) - } - clsid = &guid - return -} - -// StringFromCLSID returns GUID formated string from GUID object. -func StringFromCLSID(clsid *GUID) (str string, err error) { - var p *uint16 - hr, _, _ := procStringFromCLSID.Call(uintptr(unsafe.Pointer(clsid)), uintptr(unsafe.Pointer(&p))) - if hr != 0 { - err = NewError(hr) - } - str = LpOleStrToString(p) - return -} - -// IIDFromString returns GUID from program ID. -func IIDFromString(progId string) (clsid *GUID, err error) { - var guid GUID - lpsz := uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(progId))) - hr, _, _ := procIIDFromString.Call(lpsz, uintptr(unsafe.Pointer(&guid))) - if hr != 0 { - err = NewError(hr) - } - clsid = &guid - return -} - -// StringFromIID returns GUID formatted string from GUID object. -func StringFromIID(iid *GUID) (str string, err error) { - var p *uint16 - hr, _, _ := procStringFromIID.Call(uintptr(unsafe.Pointer(iid)), uintptr(unsafe.Pointer(&p))) - if hr != 0 { - err = NewError(hr) - } - str = LpOleStrToString(p) - return -} - -// CreateInstance of single uninitialized object with GUID. -func CreateInstance(clsid *GUID, iid *GUID) (unk *IUnknown, err error) { - if iid == nil { - iid = IID_IUnknown - } - hr, _, _ := procCoCreateInstance.Call( - uintptr(unsafe.Pointer(clsid)), - 0, - CLSCTX_SERVER, - uintptr(unsafe.Pointer(iid)), - uintptr(unsafe.Pointer(&unk))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// GetActiveObject retrieves pointer to active object. -func GetActiveObject(clsid *GUID, iid *GUID) (unk *IUnknown, err error) { - if iid == nil { - iid = IID_IUnknown - } - hr, _, _ := procGetActiveObject.Call( - uintptr(unsafe.Pointer(clsid)), - uintptr(unsafe.Pointer(iid)), - uintptr(unsafe.Pointer(&unk))) - if hr != 0 { - err = NewError(hr) - } - return -} - -type BindOpts struct { - CbStruct uint32 - GrfFlags uint32 - GrfMode uint32 - TickCountDeadline uint32 -} - -// GetObject retrieves pointer to active object. -func GetObject(programID string, bindOpts *BindOpts, iid *GUID) (unk *IUnknown, err error) { - if bindOpts != nil { - bindOpts.CbStruct = uint32(unsafe.Sizeof(BindOpts{})) - } - if iid == nil { - iid = IID_IUnknown - } - hr, _, _ := procCoGetObject.Call( - uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(programID))), - uintptr(unsafe.Pointer(bindOpts)), - uintptr(unsafe.Pointer(iid)), - uintptr(unsafe.Pointer(&unk))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// VariantInit initializes variant. -func VariantInit(v *VARIANT) (err error) { - hr, _, _ := procVariantInit.Call(uintptr(unsafe.Pointer(v))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// VariantClear clears value in Variant settings to VT_EMPTY. -func VariantClear(v *VARIANT) (err error) { - hr, _, _ := procVariantClear.Call(uintptr(unsafe.Pointer(v))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// SysAllocString allocates memory for string and copies string into memory. -func SysAllocString(v string) (ss *int16) { - pss, _, _ := procSysAllocString.Call(uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(v)))) - ss = (*int16)(unsafe.Pointer(pss)) - return -} - -// SysAllocStringLen copies up to length of given string returning pointer. -func SysAllocStringLen(v string) (ss *int16) { - utf16 := utf16.Encode([]rune(v + "\x00")) - ptr := &utf16[0] - - pss, _, _ := procSysAllocStringLen.Call(uintptr(unsafe.Pointer(ptr)), uintptr(len(utf16)-1)) - ss = (*int16)(unsafe.Pointer(pss)) - return -} - -// SysFreeString frees string system memory. This must be called with SysAllocString. -func SysFreeString(v *int16) (err error) { - hr, _, _ := procSysFreeString.Call(uintptr(unsafe.Pointer(v))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// SysStringLen is the length of the system allocated string. -func SysStringLen(v *int16) uint32 { - l, _, _ := procSysStringLen.Call(uintptr(unsafe.Pointer(v))) - return uint32(l) -} - -// CreateStdDispatch provides default IDispatch implementation for IUnknown. -// -// This handles default IDispatch implementation for objects. It haves a few -// limitations with only supporting one language. It will also only return -// default exception codes. -func CreateStdDispatch(unk *IUnknown, v uintptr, ptinfo *IUnknown) (disp *IDispatch, err error) { - hr, _, _ := procCreateStdDispatch.Call( - uintptr(unsafe.Pointer(unk)), - v, - uintptr(unsafe.Pointer(ptinfo)), - uintptr(unsafe.Pointer(&disp))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// CreateDispTypeInfo provides default ITypeInfo implementation for IDispatch. -// -// This will not handle the full implementation of the interface. -func CreateDispTypeInfo(idata *INTERFACEDATA) (pptinfo *IUnknown, err error) { - hr, _, _ := procCreateDispTypeInfo.Call( - uintptr(unsafe.Pointer(idata)), - uintptr(GetUserDefaultLCID()), - uintptr(unsafe.Pointer(&pptinfo))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// copyMemory moves location of a block of memory. -func copyMemory(dest unsafe.Pointer, src unsafe.Pointer, length uint32) { - procCopyMemory.Call(uintptr(dest), uintptr(src), uintptr(length)) -} - -// GetUserDefaultLCID retrieves current user default locale. -func GetUserDefaultLCID() (lcid uint32) { - ret, _, _ := procGetUserDefaultLCID.Call() - lcid = uint32(ret) - return -} - -// GetMessage in message queue from runtime. -// -// This function appears to block. PeekMessage does not block. -func GetMessage(msg *Msg, hwnd uint32, MsgFilterMin uint32, MsgFilterMax uint32) (ret int32, err error) { - r0, _, err := procGetMessageW.Call(uintptr(unsafe.Pointer(msg)), uintptr(hwnd), uintptr(MsgFilterMin), uintptr(MsgFilterMax)) - ret = int32(r0) - return -} - -// DispatchMessage to window procedure. -func DispatchMessage(msg *Msg) (ret int32) { - r0, _, _ := procDispatchMessageW.Call(uintptr(unsafe.Pointer(msg))) - ret = int32(r0) - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/com_func.go b/backend/vendor/github.com/go-ole/go-ole/com_func.go deleted file mode 100644 index 7b9fa67f..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/com_func.go +++ /dev/null @@ -1,175 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -import ( - "time" - "unsafe" -) - -// coInitialize initializes COM library on current thread. -// -// MSDN documentation suggests that this function should not be called. Call -// CoInitializeEx() instead. The reason has to do with threading and this -// function is only for single-threaded apartments. -// -// That said, most users of the library have gotten away with just this -// function. If you are experiencing threading issues, then use -// CoInitializeEx(). -func coInitialize() error { - return NewError(E_NOTIMPL) -} - -// coInitializeEx initializes COM library with concurrency model. -func coInitializeEx(coinit uint32) error { - return NewError(E_NOTIMPL) -} - -// CoInitialize initializes COM library on current thread. -// -// MSDN documentation suggests that this function should not be called. Call -// CoInitializeEx() instead. The reason has to do with threading and this -// function is only for single-threaded apartments. -// -// That said, most users of the library have gotten away with just this -// function. If you are experiencing threading issues, then use -// CoInitializeEx(). -func CoInitialize(p uintptr) error { - return NewError(E_NOTIMPL) -} - -// CoInitializeEx initializes COM library with concurrency model. -func CoInitializeEx(p uintptr, coinit uint32) error { - return NewError(E_NOTIMPL) -} - -// CoUninitialize uninitializes COM Library. -func CoUninitialize() {} - -// CoTaskMemFree frees memory pointer. -func CoTaskMemFree(memptr uintptr) {} - -// CLSIDFromProgID retrieves Class Identifier with the given Program Identifier. -// -// The Programmatic Identifier must be registered, because it will be looked up -// in the Windows Registry. The registry entry has the following keys: CLSID, -// Insertable, Protocol and Shell -// (https://msdn.microsoft.com/en-us/library/dd542719(v=vs.85).aspx). -// -// programID identifies the class id with less precision and is not guaranteed -// to be unique. These are usually found in the registry under -// HKEY_LOCAL_MACHINE\SOFTWARE\Classes, usually with the format of -// "Program.Component.Version" with version being optional. -// -// CLSIDFromProgID in Windows API. -func CLSIDFromProgID(progId string) (*GUID, error) { - return nil, NewError(E_NOTIMPL) -} - -// CLSIDFromString retrieves Class ID from string representation. -// -// This is technically the string version of the GUID and will convert the -// string to object. -// -// CLSIDFromString in Windows API. -func CLSIDFromString(str string) (*GUID, error) { - return nil, NewError(E_NOTIMPL) -} - -// StringFromCLSID returns GUID formated string from GUID object. -func StringFromCLSID(clsid *GUID) (string, error) { - return "", NewError(E_NOTIMPL) -} - -// IIDFromString returns GUID from program ID. -func IIDFromString(progId string) (*GUID, error) { - return nil, NewError(E_NOTIMPL) -} - -// StringFromIID returns GUID formatted string from GUID object. -func StringFromIID(iid *GUID) (string, error) { - return "", NewError(E_NOTIMPL) -} - -// CreateInstance of single uninitialized object with GUID. -func CreateInstance(clsid *GUID, iid *GUID) (*IUnknown, error) { - return nil, NewError(E_NOTIMPL) -} - -// GetActiveObject retrieves pointer to active object. -func GetActiveObject(clsid *GUID, iid *GUID) (*IUnknown, error) { - return nil, NewError(E_NOTIMPL) -} - -// VariantInit initializes variant. -func VariantInit(v *VARIANT) error { - return NewError(E_NOTIMPL) -} - -// VariantClear clears value in Variant settings to VT_EMPTY. -func VariantClear(v *VARIANT) error { - return NewError(E_NOTIMPL) -} - -// SysAllocString allocates memory for string and copies string into memory. -func SysAllocString(v string) *int16 { - u := int16(0) - return &u -} - -// SysAllocStringLen copies up to length of given string returning pointer. -func SysAllocStringLen(v string) *int16 { - u := int16(0) - return &u -} - -// SysFreeString frees string system memory. This must be called with SysAllocString. -func SysFreeString(v *int16) error { - return NewError(E_NOTIMPL) -} - -// SysStringLen is the length of the system allocated string. -func SysStringLen(v *int16) uint32 { - return uint32(0) -} - -// CreateStdDispatch provides default IDispatch implementation for IUnknown. -// -// This handles default IDispatch implementation for objects. It haves a few -// limitations with only supporting one language. It will also only return -// default exception codes. -func CreateStdDispatch(unk *IUnknown, v uintptr, ptinfo *IUnknown) (*IDispatch, error) { - return nil, NewError(E_NOTIMPL) -} - -// CreateDispTypeInfo provides default ITypeInfo implementation for IDispatch. -// -// This will not handle the full implementation of the interface. -func CreateDispTypeInfo(idata *INTERFACEDATA) (*IUnknown, error) { - return nil, NewError(E_NOTIMPL) -} - -// copyMemory moves location of a block of memory. -func copyMemory(dest unsafe.Pointer, src unsafe.Pointer, length uint32) {} - -// GetUserDefaultLCID retrieves current user default locale. -func GetUserDefaultLCID() uint32 { - return uint32(0) -} - -// GetMessage in message queue from runtime. -// -// This function appears to block. PeekMessage does not block. -func GetMessage(msg *Msg, hwnd uint32, MsgFilterMin uint32, MsgFilterMax uint32) (int32, error) { - return int32(0), NewError(E_NOTIMPL) -} - -// DispatchMessage to window procedure. -func DispatchMessage(msg *Msg) int32 { - return int32(0) -} - -func GetVariantDate(value uint64) (time.Time, error) { - return time.Now(), NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/connect.go b/backend/vendor/github.com/go-ole/go-ole/connect.go deleted file mode 100644 index b2ac2ec6..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/connect.go +++ /dev/null @@ -1,192 +0,0 @@ -package ole - -// Connection contains IUnknown for fluent interface interaction. -// -// Deprecated. Use oleutil package instead. -type Connection struct { - Object *IUnknown // Access COM -} - -// Initialize COM. -func (*Connection) Initialize() (err error) { - return coInitialize() -} - -// Uninitialize COM. -func (*Connection) Uninitialize() { - CoUninitialize() -} - -// Create IUnknown object based first on ProgId and then from String. -func (c *Connection) Create(progId string) (err error) { - var clsid *GUID - clsid, err = CLSIDFromProgID(progId) - if err != nil { - clsid, err = CLSIDFromString(progId) - if err != nil { - return - } - } - - unknown, err := CreateInstance(clsid, IID_IUnknown) - if err != nil { - return - } - c.Object = unknown - - return -} - -// Release IUnknown object. -func (c *Connection) Release() { - c.Object.Release() -} - -// Load COM object from list of programIDs or strings. -func (c *Connection) Load(names ...string) (errors []error) { - var tempErrors []error = make([]error, len(names)) - var numErrors int = 0 - for _, name := range names { - err := c.Create(name) - if err != nil { - tempErrors = append(tempErrors, err) - numErrors += 1 - continue - } - break - } - - copy(errors, tempErrors[0:numErrors]) - return -} - -// Dispatch returns Dispatch object. -func (c *Connection) Dispatch() (object *Dispatch, err error) { - dispatch, err := c.Object.QueryInterface(IID_IDispatch) - if err != nil { - return - } - object = &Dispatch{dispatch} - return -} - -// Dispatch stores IDispatch object. -type Dispatch struct { - Object *IDispatch // Dispatch object. -} - -// Call method on IDispatch with parameters. -func (d *Dispatch) Call(method string, params ...interface{}) (result *VARIANT, err error) { - id, err := d.GetId(method) - if err != nil { - return - } - - result, err = d.Invoke(id, DISPATCH_METHOD, params) - return -} - -// MustCall method on IDispatch with parameters. -func (d *Dispatch) MustCall(method string, params ...interface{}) (result *VARIANT) { - id, err := d.GetId(method) - if err != nil { - panic(err) - } - - result, err = d.Invoke(id, DISPATCH_METHOD, params) - if err != nil { - panic(err) - } - - return -} - -// Get property on IDispatch with parameters. -func (d *Dispatch) Get(name string, params ...interface{}) (result *VARIANT, err error) { - id, err := d.GetId(name) - if err != nil { - return - } - result, err = d.Invoke(id, DISPATCH_PROPERTYGET, params) - return -} - -// MustGet property on IDispatch with parameters. -func (d *Dispatch) MustGet(name string, params ...interface{}) (result *VARIANT) { - id, err := d.GetId(name) - if err != nil { - panic(err) - } - - result, err = d.Invoke(id, DISPATCH_PROPERTYGET, params) - if err != nil { - panic(err) - } - return -} - -// Set property on IDispatch with parameters. -func (d *Dispatch) Set(name string, params ...interface{}) (result *VARIANT, err error) { - id, err := d.GetId(name) - if err != nil { - return - } - result, err = d.Invoke(id, DISPATCH_PROPERTYPUT, params) - return -} - -// MustSet property on IDispatch with parameters. -func (d *Dispatch) MustSet(name string, params ...interface{}) (result *VARIANT) { - id, err := d.GetId(name) - if err != nil { - panic(err) - } - - result, err = d.Invoke(id, DISPATCH_PROPERTYPUT, params) - if err != nil { - panic(err) - } - return -} - -// GetId retrieves ID of name on IDispatch. -func (d *Dispatch) GetId(name string) (id int32, err error) { - var dispid []int32 - dispid, err = d.Object.GetIDsOfName([]string{name}) - if err != nil { - return - } - id = dispid[0] - return -} - -// GetIds retrieves all IDs of names on IDispatch. -func (d *Dispatch) GetIds(names ...string) (dispid []int32, err error) { - dispid, err = d.Object.GetIDsOfName(names) - return -} - -// Invoke IDispatch on DisplayID of dispatch type with parameters. -// -// There have been problems where if send cascading params..., it would error -// out because the parameters would be empty. -func (d *Dispatch) Invoke(id int32, dispatch int16, params []interface{}) (result *VARIANT, err error) { - if len(params) < 1 { - result, err = d.Object.Invoke(id, dispatch) - } else { - result, err = d.Object.Invoke(id, dispatch, params...) - } - return -} - -// Release IDispatch object. -func (d *Dispatch) Release() { - d.Object.Release() -} - -// Connect initializes COM and attempts to load IUnknown based on given names. -func Connect(names ...string) (connection *Connection) { - connection.Initialize() - connection.Load(names...) - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/constants.go b/backend/vendor/github.com/go-ole/go-ole/constants.go deleted file mode 100644 index fd0c6d74..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/constants.go +++ /dev/null @@ -1,153 +0,0 @@ -package ole - -const ( - CLSCTX_INPROC_SERVER = 1 - CLSCTX_INPROC_HANDLER = 2 - CLSCTX_LOCAL_SERVER = 4 - CLSCTX_INPROC_SERVER16 = 8 - CLSCTX_REMOTE_SERVER = 16 - CLSCTX_ALL = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER - CLSCTX_INPROC = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER - CLSCTX_SERVER = CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER -) - -const ( - COINIT_APARTMENTTHREADED = 0x2 - COINIT_MULTITHREADED = 0x0 - COINIT_DISABLE_OLE1DDE = 0x4 - COINIT_SPEED_OVER_MEMORY = 0x8 -) - -const ( - DISPATCH_METHOD = 1 - DISPATCH_PROPERTYGET = 2 - DISPATCH_PROPERTYPUT = 4 - DISPATCH_PROPERTYPUTREF = 8 -) - -const ( - S_OK = 0x00000000 - E_UNEXPECTED = 0x8000FFFF - E_NOTIMPL = 0x80004001 - E_OUTOFMEMORY = 0x8007000E - E_INVALIDARG = 0x80070057 - E_NOINTERFACE = 0x80004002 - E_POINTER = 0x80004003 - E_HANDLE = 0x80070006 - E_ABORT = 0x80004004 - E_FAIL = 0x80004005 - E_ACCESSDENIED = 0x80070005 - E_PENDING = 0x8000000A - - CO_E_CLASSSTRING = 0x800401F3 -) - -const ( - CC_FASTCALL = iota - CC_CDECL - CC_MSCPASCAL - CC_PASCAL = CC_MSCPASCAL - CC_MACPASCAL - CC_STDCALL - CC_FPFASTCALL - CC_SYSCALL - CC_MPWCDECL - CC_MPWPASCAL - CC_MAX = CC_MPWPASCAL -) - -type VT uint16 - -const ( - VT_EMPTY VT = 0x0 - VT_NULL VT = 0x1 - VT_I2 VT = 0x2 - VT_I4 VT = 0x3 - VT_R4 VT = 0x4 - VT_R8 VT = 0x5 - VT_CY VT = 0x6 - VT_DATE VT = 0x7 - VT_BSTR VT = 0x8 - VT_DISPATCH VT = 0x9 - VT_ERROR VT = 0xa - VT_BOOL VT = 0xb - VT_VARIANT VT = 0xc - VT_UNKNOWN VT = 0xd - VT_DECIMAL VT = 0xe - VT_I1 VT = 0x10 - VT_UI1 VT = 0x11 - VT_UI2 VT = 0x12 - VT_UI4 VT = 0x13 - VT_I8 VT = 0x14 - VT_UI8 VT = 0x15 - VT_INT VT = 0x16 - VT_UINT VT = 0x17 - VT_VOID VT = 0x18 - VT_HRESULT VT = 0x19 - VT_PTR VT = 0x1a - VT_SAFEARRAY VT = 0x1b - VT_CARRAY VT = 0x1c - VT_USERDEFINED VT = 0x1d - VT_LPSTR VT = 0x1e - VT_LPWSTR VT = 0x1f - VT_RECORD VT = 0x24 - VT_INT_PTR VT = 0x25 - VT_UINT_PTR VT = 0x26 - VT_FILETIME VT = 0x40 - VT_BLOB VT = 0x41 - VT_STREAM VT = 0x42 - VT_STORAGE VT = 0x43 - VT_STREAMED_OBJECT VT = 0x44 - VT_STORED_OBJECT VT = 0x45 - VT_BLOB_OBJECT VT = 0x46 - VT_CF VT = 0x47 - VT_CLSID VT = 0x48 - VT_BSTR_BLOB VT = 0xfff - VT_VECTOR VT = 0x1000 - VT_ARRAY VT = 0x2000 - VT_BYREF VT = 0x4000 - VT_RESERVED VT = 0x8000 - VT_ILLEGAL VT = 0xffff - VT_ILLEGALMASKED VT = 0xfff - VT_TYPEMASK VT = 0xfff -) - -const ( - DISPID_UNKNOWN = -1 - DISPID_VALUE = 0 - DISPID_PROPERTYPUT = -3 - DISPID_NEWENUM = -4 - DISPID_EVALUATE = -5 - DISPID_CONSTRUCTOR = -6 - DISPID_DESTRUCTOR = -7 - DISPID_COLLECT = -8 -) - -const ( - TKIND_ENUM = 1 - TKIND_RECORD = 2 - TKIND_MODULE = 3 - TKIND_INTERFACE = 4 - TKIND_DISPATCH = 5 - TKIND_COCLASS = 6 - TKIND_ALIAS = 7 - TKIND_UNION = 8 - TKIND_MAX = 9 -) - -// Safe Array Feature Flags - -const ( - FADF_AUTO = 0x0001 - FADF_STATIC = 0x0002 - FADF_EMBEDDED = 0x0004 - FADF_FIXEDSIZE = 0x0010 - FADF_RECORD = 0x0020 - FADF_HAVEIID = 0x0040 - FADF_HAVEVARTYPE = 0x0080 - FADF_BSTR = 0x0100 - FADF_UNKNOWN = 0x0200 - FADF_DISPATCH = 0x0400 - FADF_VARIANT = 0x0800 - FADF_RESERVED = 0xF008 -) diff --git a/backend/vendor/github.com/go-ole/go-ole/error.go b/backend/vendor/github.com/go-ole/go-ole/error.go deleted file mode 100644 index 096b456d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/error.go +++ /dev/null @@ -1,51 +0,0 @@ -package ole - -// OleError stores COM errors. -type OleError struct { - hr uintptr - description string - subError error -} - -// NewError creates new error with HResult. -func NewError(hr uintptr) *OleError { - return &OleError{hr: hr} -} - -// NewErrorWithDescription creates new COM error with HResult and description. -func NewErrorWithDescription(hr uintptr, description string) *OleError { - return &OleError{hr: hr, description: description} -} - -// NewErrorWithSubError creates new COM error with parent error. -func NewErrorWithSubError(hr uintptr, description string, err error) *OleError { - return &OleError{hr: hr, description: description, subError: err} -} - -// Code is the HResult. -func (v *OleError) Code() uintptr { - return uintptr(v.hr) -} - -// String description, either manually set or format message with error code. -func (v *OleError) String() string { - if v.description != "" { - return errstr(int(v.hr)) + " (" + v.description + ")" - } - return errstr(int(v.hr)) -} - -// Error implements error interface. -func (v *OleError) Error() string { - return v.String() -} - -// Description retrieves error summary, if there is one. -func (v *OleError) Description() string { - return v.description -} - -// SubError returns parent error, if there is one. -func (v *OleError) SubError() error { - return v.subError -} diff --git a/backend/vendor/github.com/go-ole/go-ole/error_func.go b/backend/vendor/github.com/go-ole/go-ole/error_func.go deleted file mode 100644 index 6478b339..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/error_func.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -// errstr converts error code to string. -func errstr(errno int) string { - return "" -} diff --git a/backend/vendor/github.com/go-ole/go-ole/error_windows.go b/backend/vendor/github.com/go-ole/go-ole/error_windows.go deleted file mode 100644 index 8da277c0..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/error_windows.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "fmt" - "syscall" - "unicode/utf16" -) - -// errstr converts error code to string. -func errstr(errno int) string { - // ask windows for the remaining errors - var flags uint32 = syscall.FORMAT_MESSAGE_FROM_SYSTEM | syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY | syscall.FORMAT_MESSAGE_IGNORE_INSERTS - b := make([]uint16, 300) - n, err := syscall.FormatMessage(flags, 0, uint32(errno), 0, b, nil) - if err != nil { - return fmt.Sprintf("error %d (FormatMessage failed with: %v)", errno, err) - } - // trim terminating \r and \n - for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { - } - return string(utf16.Decode(b[:n])) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/guid.go b/backend/vendor/github.com/go-ole/go-ole/guid.go deleted file mode 100644 index 27f9557b..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/guid.go +++ /dev/null @@ -1,284 +0,0 @@ -package ole - -var ( - // IID_NULL is null Interface ID, used when no other Interface ID is known. - IID_NULL = NewGUID("{00000000-0000-0000-0000-000000000000}") - - // IID_IUnknown is for IUnknown interfaces. - IID_IUnknown = NewGUID("{00000000-0000-0000-C000-000000000046}") - - // IID_IDispatch is for IDispatch interfaces. - IID_IDispatch = NewGUID("{00020400-0000-0000-C000-000000000046}") - - // IID_IEnumVariant is for IEnumVariant interfaces - IID_IEnumVariant = NewGUID("{00020404-0000-0000-C000-000000000046}") - - // IID_IConnectionPointContainer is for IConnectionPointContainer interfaces. - IID_IConnectionPointContainer = NewGUID("{B196B284-BAB4-101A-B69C-00AA00341D07}") - - // IID_IConnectionPoint is for IConnectionPoint interfaces. - IID_IConnectionPoint = NewGUID("{B196B286-BAB4-101A-B69C-00AA00341D07}") - - // IID_IInspectable is for IInspectable interfaces. - IID_IInspectable = NewGUID("{AF86E2E0-B12D-4C6A-9C5A-D7AA65101E90}") - - // IID_IProvideClassInfo is for IProvideClassInfo interfaces. - IID_IProvideClassInfo = NewGUID("{B196B283-BAB4-101A-B69C-00AA00341D07}") -) - -// These are for testing and not part of any library. -var ( - // IID_ICOMTestString is for ICOMTestString interfaces. - // - // {E0133EB4-C36F-469A-9D3D-C66B84BE19ED} - IID_ICOMTestString = NewGUID("{E0133EB4-C36F-469A-9D3D-C66B84BE19ED}") - - // IID_ICOMTestInt8 is for ICOMTestInt8 interfaces. - // - // {BEB06610-EB84-4155-AF58-E2BFF53680B4} - IID_ICOMTestInt8 = NewGUID("{BEB06610-EB84-4155-AF58-E2BFF53680B4}") - - // IID_ICOMTestInt16 is for ICOMTestInt16 interfaces. - // - // {DAA3F9FA-761E-4976-A860-8364CE55F6FC} - IID_ICOMTestInt16 = NewGUID("{DAA3F9FA-761E-4976-A860-8364CE55F6FC}") - - // IID_ICOMTestInt32 is for ICOMTestInt32 interfaces. - // - // {E3DEDEE7-38A2-4540-91D1-2EEF1D8891B0} - IID_ICOMTestInt32 = NewGUID("{E3DEDEE7-38A2-4540-91D1-2EEF1D8891B0}") - - // IID_ICOMTestInt64 is for ICOMTestInt64 interfaces. - // - // {8D437CBC-B3ED-485C-BC32-C336432A1623} - IID_ICOMTestInt64 = NewGUID("{8D437CBC-B3ED-485C-BC32-C336432A1623}") - - // IID_ICOMTestFloat is for ICOMTestFloat interfaces. - // - // {BF1ED004-EA02-456A-AA55-2AC8AC6B054C} - IID_ICOMTestFloat = NewGUID("{BF1ED004-EA02-456A-AA55-2AC8AC6B054C}") - - // IID_ICOMTestDouble is for ICOMTestDouble interfaces. - // - // {BF908A81-8687-4E93-999F-D86FAB284BA0} - IID_ICOMTestDouble = NewGUID("{BF908A81-8687-4E93-999F-D86FAB284BA0}") - - // IID_ICOMTestBoolean is for ICOMTestBoolean interfaces. - // - // {D530E7A6-4EE8-40D1-8931-3D63B8605010} - IID_ICOMTestBoolean = NewGUID("{D530E7A6-4EE8-40D1-8931-3D63B8605010}") - - // IID_ICOMEchoTestObject is for ICOMEchoTestObject interfaces. - // - // {6485B1EF-D780-4834-A4FE-1EBB51746CA3} - IID_ICOMEchoTestObject = NewGUID("{6485B1EF-D780-4834-A4FE-1EBB51746CA3}") - - // IID_ICOMTestTypes is for ICOMTestTypes interfaces. - // - // {CCA8D7AE-91C0-4277-A8B3-FF4EDF28D3C0} - IID_ICOMTestTypes = NewGUID("{CCA8D7AE-91C0-4277-A8B3-FF4EDF28D3C0}") - - // CLSID_COMEchoTestObject is for COMEchoTestObject class. - // - // {3C24506A-AE9E-4D50-9157-EF317281F1B0} - CLSID_COMEchoTestObject = NewGUID("{3C24506A-AE9E-4D50-9157-EF317281F1B0}") - - // CLSID_COMTestScalarClass is for COMTestScalarClass class. - // - // {865B85C5-0334-4AC6-9EF6-AACEC8FC5E86} - CLSID_COMTestScalarClass = NewGUID("{865B85C5-0334-4AC6-9EF6-AACEC8FC5E86}") -) - -const hextable = "0123456789ABCDEF" -const emptyGUID = "{00000000-0000-0000-0000-000000000000}" - -// GUID is Windows API specific GUID type. -// -// This exists to match Windows GUID type for direct passing for COM. -// Format is in xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx. -type GUID struct { - Data1 uint32 - Data2 uint16 - Data3 uint16 - Data4 [8]byte -} - -// NewGUID converts the given string into a globally unique identifier that is -// compliant with the Windows API. -// -// The supplied string may be in any of these formats: -// -// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -// XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -// {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} -// -// The conversion of the supplied string is not case-sensitive. -func NewGUID(guid string) *GUID { - d := []byte(guid) - var d1, d2, d3, d4a, d4b []byte - - switch len(d) { - case 38: - if d[0] != '{' || d[37] != '}' { - return nil - } - d = d[1:37] - fallthrough - case 36: - if d[8] != '-' || d[13] != '-' || d[18] != '-' || d[23] != '-' { - return nil - } - d1 = d[0:8] - d2 = d[9:13] - d3 = d[14:18] - d4a = d[19:23] - d4b = d[24:36] - case 32: - d1 = d[0:8] - d2 = d[8:12] - d3 = d[12:16] - d4a = d[16:20] - d4b = d[20:32] - default: - return nil - } - - var g GUID - var ok1, ok2, ok3, ok4 bool - g.Data1, ok1 = decodeHexUint32(d1) - g.Data2, ok2 = decodeHexUint16(d2) - g.Data3, ok3 = decodeHexUint16(d3) - g.Data4, ok4 = decodeHexByte64(d4a, d4b) - if ok1 && ok2 && ok3 && ok4 { - return &g - } - return nil -} - -func decodeHexUint32(src []byte) (value uint32, ok bool) { - var b1, b2, b3, b4 byte - var ok1, ok2, ok3, ok4 bool - b1, ok1 = decodeHexByte(src[0], src[1]) - b2, ok2 = decodeHexByte(src[2], src[3]) - b3, ok3 = decodeHexByte(src[4], src[5]) - b4, ok4 = decodeHexByte(src[6], src[7]) - value = (uint32(b1) << 24) | (uint32(b2) << 16) | (uint32(b3) << 8) | uint32(b4) - ok = ok1 && ok2 && ok3 && ok4 - return -} - -func decodeHexUint16(src []byte) (value uint16, ok bool) { - var b1, b2 byte - var ok1, ok2 bool - b1, ok1 = decodeHexByte(src[0], src[1]) - b2, ok2 = decodeHexByte(src[2], src[3]) - value = (uint16(b1) << 8) | uint16(b2) - ok = ok1 && ok2 - return -} - -func decodeHexByte64(s1 []byte, s2 []byte) (value [8]byte, ok bool) { - var ok1, ok2, ok3, ok4, ok5, ok6, ok7, ok8 bool - value[0], ok1 = decodeHexByte(s1[0], s1[1]) - value[1], ok2 = decodeHexByte(s1[2], s1[3]) - value[2], ok3 = decodeHexByte(s2[0], s2[1]) - value[3], ok4 = decodeHexByte(s2[2], s2[3]) - value[4], ok5 = decodeHexByte(s2[4], s2[5]) - value[5], ok6 = decodeHexByte(s2[6], s2[7]) - value[6], ok7 = decodeHexByte(s2[8], s2[9]) - value[7], ok8 = decodeHexByte(s2[10], s2[11]) - ok = ok1 && ok2 && ok3 && ok4 && ok5 && ok6 && ok7 && ok8 - return -} - -func decodeHexByte(c1, c2 byte) (value byte, ok bool) { - var n1, n2 byte - var ok1, ok2 bool - n1, ok1 = decodeHexChar(c1) - n2, ok2 = decodeHexChar(c2) - value = (n1 << 4) | n2 - ok = ok1 && ok2 - return -} - -func decodeHexChar(c byte) (byte, bool) { - switch { - case '0' <= c && c <= '9': - return c - '0', true - case 'a' <= c && c <= 'f': - return c - 'a' + 10, true - case 'A' <= c && c <= 'F': - return c - 'A' + 10, true - } - - return 0, false -} - -// String converts the GUID to string form. It will adhere to this pattern: -// -// {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} -// -// If the GUID is nil, the string representation of an empty GUID is returned: -// -// {00000000-0000-0000-0000-000000000000} -func (guid *GUID) String() string { - if guid == nil { - return emptyGUID - } - - var c [38]byte - c[0] = '{' - putUint32Hex(c[1:9], guid.Data1) - c[9] = '-' - putUint16Hex(c[10:14], guid.Data2) - c[14] = '-' - putUint16Hex(c[15:19], guid.Data3) - c[19] = '-' - putByteHex(c[20:24], guid.Data4[0:2]) - c[24] = '-' - putByteHex(c[25:37], guid.Data4[2:8]) - c[37] = '}' - return string(c[:]) -} - -func putUint32Hex(b []byte, v uint32) { - b[0] = hextable[byte(v>>24)>>4] - b[1] = hextable[byte(v>>24)&0x0f] - b[2] = hextable[byte(v>>16)>>4] - b[3] = hextable[byte(v>>16)&0x0f] - b[4] = hextable[byte(v>>8)>>4] - b[5] = hextable[byte(v>>8)&0x0f] - b[6] = hextable[byte(v)>>4] - b[7] = hextable[byte(v)&0x0f] -} - -func putUint16Hex(b []byte, v uint16) { - b[0] = hextable[byte(v>>8)>>4] - b[1] = hextable[byte(v>>8)&0x0f] - b[2] = hextable[byte(v)>>4] - b[3] = hextable[byte(v)&0x0f] -} - -func putByteHex(dst, src []byte) { - for i := 0; i < len(src); i++ { - dst[i*2] = hextable[src[i]>>4] - dst[i*2+1] = hextable[src[i]&0x0f] - } -} - -// IsEqualGUID compares two GUID. -// -// Not constant time comparison. -func IsEqualGUID(guid1 *GUID, guid2 *GUID) bool { - return guid1.Data1 == guid2.Data1 && - guid1.Data2 == guid2.Data2 && - guid1.Data3 == guid2.Data3 && - guid1.Data4[0] == guid2.Data4[0] && - guid1.Data4[1] == guid2.Data4[1] && - guid1.Data4[2] == guid2.Data4[2] && - guid1.Data4[3] == guid2.Data4[3] && - guid1.Data4[4] == guid2.Data4[4] && - guid1.Data4[5] == guid2.Data4[5] && - guid1.Data4[6] == guid2.Data4[6] && - guid1.Data4[7] == guid2.Data4[7] -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint.go b/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint.go deleted file mode 100644 index 9e6c49f4..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint.go +++ /dev/null @@ -1,20 +0,0 @@ -package ole - -import "unsafe" - -type IConnectionPoint struct { - IUnknown -} - -type IConnectionPointVtbl struct { - IUnknownVtbl - GetConnectionInterface uintptr - GetConnectionPointContainer uintptr - Advise uintptr - Unadvise uintptr - EnumConnections uintptr -} - -func (v *IConnectionPoint) VTable() *IConnectionPointVtbl { - return (*IConnectionPointVtbl)(unsafe.Pointer(v.RawVTable)) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go b/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go deleted file mode 100644 index 999720a0..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -import "unsafe" - -func (v *IConnectionPoint) GetConnectionInterface(piid **GUID) int32 { - return int32(0) -} - -func (v *IConnectionPoint) Advise(unknown *IUnknown) (uint32, error) { - return uint32(0), NewError(E_NOTIMPL) -} - -func (v *IConnectionPoint) Unadvise(cookie uint32) error { - return NewError(E_NOTIMPL) -} - -func (v *IConnectionPoint) EnumConnections(p *unsafe.Pointer) (err error) { - return NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go b/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go deleted file mode 100644 index c7325ad0..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go +++ /dev/null @@ -1,44 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "syscall" - "unsafe" -) - -func (v *IConnectionPoint) GetConnectionInterface(piid **GUID) int32 { - // XXX: This doesn't look like it does what it's supposed to - return release((*IUnknown)(unsafe.Pointer(v))) -} - -func (v *IConnectionPoint) Advise(unknown *IUnknown) (cookie uint32, err error) { - hr, _, _ := syscall.Syscall( - v.VTable().Advise, - 3, - uintptr(unsafe.Pointer(v)), - uintptr(unsafe.Pointer(unknown)), - uintptr(unsafe.Pointer(&cookie))) - if hr != 0 { - err = NewError(hr) - } - return -} - -func (v *IConnectionPoint) Unadvise(cookie uint32) (err error) { - hr, _, _ := syscall.Syscall( - v.VTable().Unadvise, - 2, - uintptr(unsafe.Pointer(v)), - uintptr(cookie), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} - -func (v *IConnectionPoint) EnumConnections(p *unsafe.Pointer) error { - return NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go b/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go deleted file mode 100644 index 165860d1..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go +++ /dev/null @@ -1,17 +0,0 @@ -package ole - -import "unsafe" - -type IConnectionPointContainer struct { - IUnknown -} - -type IConnectionPointContainerVtbl struct { - IUnknownVtbl - EnumConnectionPoints uintptr - FindConnectionPoint uintptr -} - -func (v *IConnectionPointContainer) VTable() *IConnectionPointContainerVtbl { - return (*IConnectionPointContainerVtbl)(unsafe.Pointer(v.RawVTable)) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go b/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go deleted file mode 100644 index 26e264d1..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func (v *IConnectionPointContainer) EnumConnectionPoints(points interface{}) error { - return NewError(E_NOTIMPL) -} - -func (v *IConnectionPointContainer) FindConnectionPoint(iid *GUID, point **IConnectionPoint) error { - return NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go b/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go deleted file mode 100644 index 8b090f49..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "syscall" - "unsafe" -) - -func (v *IConnectionPointContainer) EnumConnectionPoints(points interface{}) error { - return NewError(E_NOTIMPL) -} - -func (v *IConnectionPointContainer) FindConnectionPoint(iid *GUID, point **IConnectionPoint) (err error) { - hr, _, _ := syscall.Syscall( - v.VTable().FindConnectionPoint, - 3, - uintptr(unsafe.Pointer(v)), - uintptr(unsafe.Pointer(iid)), - uintptr(unsafe.Pointer(point))) - if hr != 0 { - err = NewError(hr) - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/idispatch.go b/backend/vendor/github.com/go-ole/go-ole/idispatch.go deleted file mode 100644 index d4af1240..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/idispatch.go +++ /dev/null @@ -1,94 +0,0 @@ -package ole - -import "unsafe" - -type IDispatch struct { - IUnknown -} - -type IDispatchVtbl struct { - IUnknownVtbl - GetTypeInfoCount uintptr - GetTypeInfo uintptr - GetIDsOfNames uintptr - Invoke uintptr -} - -func (v *IDispatch) VTable() *IDispatchVtbl { - return (*IDispatchVtbl)(unsafe.Pointer(v.RawVTable)) -} - -func (v *IDispatch) GetIDsOfName(names []string) (dispid []int32, err error) { - dispid, err = getIDsOfName(v, names) - return -} - -func (v *IDispatch) Invoke(dispid int32, dispatch int16, params ...interface{}) (result *VARIANT, err error) { - result, err = invoke(v, dispid, dispatch, params...) - return -} - -func (v *IDispatch) GetTypeInfoCount() (c uint32, err error) { - c, err = getTypeInfoCount(v) - return -} - -func (v *IDispatch) GetTypeInfo() (tinfo *ITypeInfo, err error) { - tinfo, err = getTypeInfo(v) - return -} - -// GetSingleIDOfName is a helper that returns single display ID for IDispatch name. -// -// This replaces the common pattern of attempting to get a single name from the list of available -// IDs. It gives the first ID, if it is available. -func (v *IDispatch) GetSingleIDOfName(name string) (displayID int32, err error) { - var displayIDs []int32 - displayIDs, err = v.GetIDsOfName([]string{name}) - if err != nil { - return - } - displayID = displayIDs[0] - return -} - -// InvokeWithOptionalArgs accepts arguments as an array, works like Invoke. -// -// Accepts name and will attempt to retrieve Display ID to pass to Invoke. -// -// Passing params as an array is a workaround that could be fixed in later versions of Go that -// prevent passing empty params. During testing it was discovered that this is an acceptable way of -// getting around not being able to pass params normally. -func (v *IDispatch) InvokeWithOptionalArgs(name string, dispatch int16, params []interface{}) (result *VARIANT, err error) { - displayID, err := v.GetSingleIDOfName(name) - if err != nil { - return - } - - if len(params) < 1 { - result, err = v.Invoke(displayID, dispatch) - } else { - result, err = v.Invoke(displayID, dispatch, params...) - } - - return -} - -// CallMethod invokes named function with arguments on object. -func (v *IDispatch) CallMethod(name string, params ...interface{}) (*VARIANT, error) { - return v.InvokeWithOptionalArgs(name, DISPATCH_METHOD, params) -} - -// GetProperty retrieves the property with the name with the ability to pass arguments. -// -// Most of the time you will not need to pass arguments as most objects do not allow for this -// feature. Or at least, should not allow for this feature. Some servers don't follow best practices -// and this is provided for those edge cases. -func (v *IDispatch) GetProperty(name string, params ...interface{}) (*VARIANT, error) { - return v.InvokeWithOptionalArgs(name, DISPATCH_PROPERTYGET, params) -} - -// PutProperty attempts to mutate a property in the object. -func (v *IDispatch) PutProperty(name string, params ...interface{}) (*VARIANT, error) { - return v.InvokeWithOptionalArgs(name, DISPATCH_PROPERTYPUT, params) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/idispatch_func.go b/backend/vendor/github.com/go-ole/go-ole/idispatch_func.go deleted file mode 100644 index 5315505a..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/idispatch_func.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func getIDsOfName(disp *IDispatch, names []string) ([]int32, error) { - return []int32{}, NewError(E_NOTIMPL) -} - -func getTypeInfoCount(disp *IDispatch) (uint32, error) { - return uint32(0), NewError(E_NOTIMPL) -} - -func getTypeInfo(disp *IDispatch) (*ITypeInfo, error) { - return nil, NewError(E_NOTIMPL) -} - -func invoke(disp *IDispatch, dispid int32, dispatch int16, params ...interface{}) (*VARIANT, error) { - return nil, NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/idispatch_windows.go b/backend/vendor/github.com/go-ole/go-ole/idispatch_windows.go deleted file mode 100644 index ec2950aa..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/idispatch_windows.go +++ /dev/null @@ -1,203 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "math/big" - "syscall" - "time" - "unsafe" -) - -func getIDsOfName(disp *IDispatch, names []string) (dispid []int32, err error) { - wnames := make([]*uint16, len(names)) - for i := 0; i < len(names); i++ { - wnames[i] = syscall.StringToUTF16Ptr(names[i]) - } - dispid = make([]int32, len(names)) - namelen := uint32(len(names)) - hr, _, _ := syscall.Syscall6( - disp.VTable().GetIDsOfNames, - 6, - uintptr(unsafe.Pointer(disp)), - uintptr(unsafe.Pointer(IID_NULL)), - uintptr(unsafe.Pointer(&wnames[0])), - uintptr(namelen), - uintptr(GetUserDefaultLCID()), - uintptr(unsafe.Pointer(&dispid[0]))) - if hr != 0 { - err = NewError(hr) - } - return -} - -func getTypeInfoCount(disp *IDispatch) (c uint32, err error) { - hr, _, _ := syscall.Syscall( - disp.VTable().GetTypeInfoCount, - 2, - uintptr(unsafe.Pointer(disp)), - uintptr(unsafe.Pointer(&c)), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} - -func getTypeInfo(disp *IDispatch) (tinfo *ITypeInfo, err error) { - hr, _, _ := syscall.Syscall( - disp.VTable().GetTypeInfo, - 3, - uintptr(unsafe.Pointer(disp)), - uintptr(GetUserDefaultLCID()), - uintptr(unsafe.Pointer(&tinfo))) - if hr != 0 { - err = NewError(hr) - } - return -} - -func invoke(disp *IDispatch, dispid int32, dispatch int16, params ...interface{}) (result *VARIANT, err error) { - var dispparams DISPPARAMS - - if dispatch&DISPATCH_PROPERTYPUT != 0 { - dispnames := [1]int32{DISPID_PROPERTYPUT} - dispparams.rgdispidNamedArgs = uintptr(unsafe.Pointer(&dispnames[0])) - dispparams.cNamedArgs = 1 - } else if dispatch&DISPATCH_PROPERTYPUTREF != 0 { - dispnames := [1]int32{DISPID_PROPERTYPUT} - dispparams.rgdispidNamedArgs = uintptr(unsafe.Pointer(&dispnames[0])) - dispparams.cNamedArgs = 1 - } - var vargs []VARIANT - if len(params) > 0 { - vargs = make([]VARIANT, len(params)) - for i, v := range params { - //n := len(params)-i-1 - n := len(params) - i - 1 - VariantInit(&vargs[n]) - switch vv := v.(type) { - case bool: - if vv { - vargs[n] = NewVariant(VT_BOOL, 0xffff) - } else { - vargs[n] = NewVariant(VT_BOOL, 0) - } - case *bool: - vargs[n] = NewVariant(VT_BOOL|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*bool))))) - case uint8: - vargs[n] = NewVariant(VT_I1, int64(v.(uint8))) - case *uint8: - vargs[n] = NewVariant(VT_I1|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint8))))) - case int8: - vargs[n] = NewVariant(VT_I1, int64(v.(int8))) - case *int8: - vargs[n] = NewVariant(VT_I1|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint8))))) - case int16: - vargs[n] = NewVariant(VT_I2, int64(v.(int16))) - case *int16: - vargs[n] = NewVariant(VT_I2|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int16))))) - case uint16: - vargs[n] = NewVariant(VT_UI2, int64(v.(uint16))) - case *uint16: - vargs[n] = NewVariant(VT_UI2|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint16))))) - case int32: - vargs[n] = NewVariant(VT_I4, int64(v.(int32))) - case *int32: - vargs[n] = NewVariant(VT_I4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int32))))) - case uint32: - vargs[n] = NewVariant(VT_UI4, int64(v.(uint32))) - case *uint32: - vargs[n] = NewVariant(VT_UI4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint32))))) - case int64: - vargs[n] = NewVariant(VT_I8, int64(v.(int64))) - case *int64: - vargs[n] = NewVariant(VT_I8|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int64))))) - case uint64: - vargs[n] = NewVariant(VT_UI8, int64(uintptr(v.(uint64)))) - case *uint64: - vargs[n] = NewVariant(VT_UI8|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint64))))) - case int: - vargs[n] = NewVariant(VT_I4, int64(v.(int))) - case *int: - vargs[n] = NewVariant(VT_I4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int))))) - case uint: - vargs[n] = NewVariant(VT_UI4, int64(v.(uint))) - case *uint: - vargs[n] = NewVariant(VT_UI4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint))))) - case float32: - vargs[n] = NewVariant(VT_R4, *(*int64)(unsafe.Pointer(&vv))) - case *float32: - vargs[n] = NewVariant(VT_R4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*float32))))) - case float64: - vargs[n] = NewVariant(VT_R8, *(*int64)(unsafe.Pointer(&vv))) - case *float64: - vargs[n] = NewVariant(VT_R8|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*float64))))) - case *big.Int: - vargs[n] = NewVariant(VT_DECIMAL, v.(*big.Int).Int64()) - case string: - vargs[n] = NewVariant(VT_BSTR, int64(uintptr(unsafe.Pointer(SysAllocStringLen(v.(string)))))) - case *string: - vargs[n] = NewVariant(VT_BSTR|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*string))))) - case time.Time: - s := vv.Format("2006-01-02 15:04:05") - vargs[n] = NewVariant(VT_BSTR, int64(uintptr(unsafe.Pointer(SysAllocStringLen(s))))) - case *time.Time: - s := vv.Format("2006-01-02 15:04:05") - vargs[n] = NewVariant(VT_BSTR|VT_BYREF, int64(uintptr(unsafe.Pointer(&s)))) - case *IDispatch: - vargs[n] = NewVariant(VT_DISPATCH, int64(uintptr(unsafe.Pointer(v.(*IDispatch))))) - case **IDispatch: - vargs[n] = NewVariant(VT_DISPATCH|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(**IDispatch))))) - case nil: - vargs[n] = NewVariant(VT_NULL, 0) - case *VARIANT: - vargs[n] = NewVariant(VT_VARIANT|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*VARIANT))))) - case []byte: - safeByteArray := safeArrayFromByteSlice(v.([]byte)) - vargs[n] = NewVariant(VT_ARRAY|VT_UI1, int64(uintptr(unsafe.Pointer(safeByteArray)))) - defer VariantClear(&vargs[n]) - case []string: - safeByteArray := safeArrayFromStringSlice(v.([]string)) - vargs[n] = NewVariant(VT_ARRAY|VT_BSTR, int64(uintptr(unsafe.Pointer(safeByteArray)))) - defer VariantClear(&vargs[n]) - default: - panic("unknown type") - } - } - dispparams.rgvarg = uintptr(unsafe.Pointer(&vargs[0])) - dispparams.cArgs = uint32(len(params)) - } - - result = new(VARIANT) - var excepInfo EXCEPINFO - VariantInit(result) - hr, _, _ := syscall.Syscall9( - disp.VTable().Invoke, - 9, - uintptr(unsafe.Pointer(disp)), - uintptr(dispid), - uintptr(unsafe.Pointer(IID_NULL)), - uintptr(GetUserDefaultLCID()), - uintptr(dispatch), - uintptr(unsafe.Pointer(&dispparams)), - uintptr(unsafe.Pointer(result)), - uintptr(unsafe.Pointer(&excepInfo)), - 0) - if hr != 0 { - excepInfo.renderStrings() - excepInfo.Clear() - err = NewErrorWithSubError(hr, excepInfo.description, excepInfo) - } - for i, varg := range vargs { - n := len(params) - i - 1 - if varg.VT == VT_BSTR && varg.Val != 0 { - SysFreeString(((*int16)(unsafe.Pointer(uintptr(varg.Val))))) - } - if varg.VT == (VT_BSTR|VT_BYREF) && varg.Val != 0 { - *(params[n].(*string)) = LpOleStrToString(*(**uint16)(unsafe.Pointer(uintptr(varg.Val)))) - } - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/ienumvariant.go b/backend/vendor/github.com/go-ole/go-ole/ienumvariant.go deleted file mode 100644 index 24338975..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/ienumvariant.go +++ /dev/null @@ -1,19 +0,0 @@ -package ole - -import "unsafe" - -type IEnumVARIANT struct { - IUnknown -} - -type IEnumVARIANTVtbl struct { - IUnknownVtbl - Next uintptr - Skip uintptr - Reset uintptr - Clone uintptr -} - -func (v *IEnumVARIANT) VTable() *IEnumVARIANTVtbl { - return (*IEnumVARIANTVtbl)(unsafe.Pointer(v.RawVTable)) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/ienumvariant_func.go b/backend/vendor/github.com/go-ole/go-ole/ienumvariant_func.go deleted file mode 100644 index f332e439..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/ienumvariant_func.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func (enum *IEnumVARIANT) Clone() (*IEnumVARIANT, error) { - return nil, NewError(E_NOTIMPL) -} - -func (enum *IEnumVARIANT) Reset() error { - return NewError(E_NOTIMPL) -} - -func (enum *IEnumVARIANT) Skip(celt uint) error { - return NewError(E_NOTIMPL) -} - -func (enum *IEnumVARIANT) Next(celt uint) (VARIANT, uint, error) { - return NewVariant(VT_NULL, int64(0)), 0, NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go b/backend/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go deleted file mode 100644 index 72e5f31d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go +++ /dev/null @@ -1,64 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "syscall" - "unsafe" -) - -func (enum *IEnumVARIANT) Clone() (cloned *IEnumVARIANT, err error) { - hr, _, _ := syscall.Syscall( - enum.VTable().Clone, - 2, - uintptr(unsafe.Pointer(enum)), - uintptr(unsafe.Pointer(&cloned)), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} - -func (enum *IEnumVARIANT) Reset() (err error) { - hr, _, _ := syscall.Syscall( - enum.VTable().Reset, - 1, - uintptr(unsafe.Pointer(enum)), - 0, - 0) - if hr != 0 { - err = NewError(hr) - } - return -} - -func (enum *IEnumVARIANT) Skip(celt uint) (err error) { - hr, _, _ := syscall.Syscall( - enum.VTable().Skip, - 2, - uintptr(unsafe.Pointer(enum)), - uintptr(celt), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} - -func (enum *IEnumVARIANT) Next(celt uint) (array VARIANT, length uint, err error) { - hr, _, _ := syscall.Syscall6( - enum.VTable().Next, - 4, - uintptr(unsafe.Pointer(enum)), - uintptr(celt), - uintptr(unsafe.Pointer(&array)), - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if hr != 0 { - err = NewError(hr) - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iinspectable.go b/backend/vendor/github.com/go-ole/go-ole/iinspectable.go deleted file mode 100644 index f4a19e25..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iinspectable.go +++ /dev/null @@ -1,18 +0,0 @@ -package ole - -import "unsafe" - -type IInspectable struct { - IUnknown -} - -type IInspectableVtbl struct { - IUnknownVtbl - GetIIds uintptr - GetRuntimeClassName uintptr - GetTrustLevel uintptr -} - -func (v *IInspectable) VTable() *IInspectableVtbl { - return (*IInspectableVtbl)(unsafe.Pointer(v.RawVTable)) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iinspectable_func.go b/backend/vendor/github.com/go-ole/go-ole/iinspectable_func.go deleted file mode 100644 index cf0fba0d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iinspectable_func.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func (v *IInspectable) GetIids() ([]*GUID, error) { - return []*GUID{}, NewError(E_NOTIMPL) -} - -func (v *IInspectable) GetRuntimeClassName() (string, error) { - return "", NewError(E_NOTIMPL) -} - -func (v *IInspectable) GetTrustLevel() (uint32, error) { - return uint32(0), NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iinspectable_windows.go b/backend/vendor/github.com/go-ole/go-ole/iinspectable_windows.go deleted file mode 100644 index 9a686d25..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iinspectable_windows.go +++ /dev/null @@ -1,73 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "bytes" - "encoding/binary" - "reflect" - "syscall" - "unsafe" -) - -func (v *IInspectable) GetIids() (iids []*GUID, err error) { - var count uint32 - var array uintptr - hr, _, _ := syscall.Syscall( - v.VTable().GetIIds, - 3, - uintptr(unsafe.Pointer(v)), - uintptr(unsafe.Pointer(&count)), - uintptr(unsafe.Pointer(&array))) - if hr != 0 { - err = NewError(hr) - return - } - defer CoTaskMemFree(array) - - iids = make([]*GUID, count) - byteCount := count * uint32(unsafe.Sizeof(GUID{})) - slicehdr := reflect.SliceHeader{Data: array, Len: int(byteCount), Cap: int(byteCount)} - byteSlice := *(*[]byte)(unsafe.Pointer(&slicehdr)) - reader := bytes.NewReader(byteSlice) - for i := range iids { - guid := GUID{} - err = binary.Read(reader, binary.LittleEndian, &guid) - if err != nil { - return - } - iids[i] = &guid - } - return -} - -func (v *IInspectable) GetRuntimeClassName() (s string, err error) { - var hstring HString - hr, _, _ := syscall.Syscall( - v.VTable().GetRuntimeClassName, - 2, - uintptr(unsafe.Pointer(v)), - uintptr(unsafe.Pointer(&hstring)), - 0) - if hr != 0 { - err = NewError(hr) - return - } - s = hstring.String() - DeleteHString(hstring) - return -} - -func (v *IInspectable) GetTrustLevel() (level uint32, err error) { - hr, _, _ := syscall.Syscall( - v.VTable().GetTrustLevel, - 2, - uintptr(unsafe.Pointer(v)), - uintptr(unsafe.Pointer(&level)), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go b/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go deleted file mode 100644 index 25f3a6f2..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go +++ /dev/null @@ -1,21 +0,0 @@ -package ole - -import "unsafe" - -type IProvideClassInfo struct { - IUnknown -} - -type IProvideClassInfoVtbl struct { - IUnknownVtbl - GetClassInfo uintptr -} - -func (v *IProvideClassInfo) VTable() *IProvideClassInfoVtbl { - return (*IProvideClassInfoVtbl)(unsafe.Pointer(v.RawVTable)) -} - -func (v *IProvideClassInfo) GetClassInfo() (cinfo *ITypeInfo, err error) { - cinfo, err = getClassInfo(v) - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go b/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go deleted file mode 100644 index 90109f55..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func getClassInfo(disp *IProvideClassInfo) (tinfo *ITypeInfo, err error) { - return nil, NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go b/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go deleted file mode 100644 index c758acd9..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "syscall" - "unsafe" -) - -func getClassInfo(disp *IProvideClassInfo) (tinfo *ITypeInfo, err error) { - hr, _, _ := syscall.Syscall( - disp.VTable().GetClassInfo, - 2, - uintptr(unsafe.Pointer(disp)), - uintptr(unsafe.Pointer(&tinfo)), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/itypeinfo.go b/backend/vendor/github.com/go-ole/go-ole/itypeinfo.go deleted file mode 100644 index dd3c5e21..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/itypeinfo.go +++ /dev/null @@ -1,34 +0,0 @@ -package ole - -import "unsafe" - -type ITypeInfo struct { - IUnknown -} - -type ITypeInfoVtbl struct { - IUnknownVtbl - GetTypeAttr uintptr - GetTypeComp uintptr - GetFuncDesc uintptr - GetVarDesc uintptr - GetNames uintptr - GetRefTypeOfImplType uintptr - GetImplTypeFlags uintptr - GetIDsOfNames uintptr - Invoke uintptr - GetDocumentation uintptr - GetDllEntry uintptr - GetRefTypeInfo uintptr - AddressOfMember uintptr - CreateInstance uintptr - GetMops uintptr - GetContainingTypeLib uintptr - ReleaseTypeAttr uintptr - ReleaseFuncDesc uintptr - ReleaseVarDesc uintptr -} - -func (v *ITypeInfo) VTable() *ITypeInfoVtbl { - return (*ITypeInfoVtbl)(unsafe.Pointer(v.RawVTable)) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/itypeinfo_func.go b/backend/vendor/github.com/go-ole/go-ole/itypeinfo_func.go deleted file mode 100644 index 31c0677c..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/itypeinfo_func.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func (v *ITypeInfo) GetTypeAttr() (*TYPEATTR, error) { - return nil, NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go b/backend/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go deleted file mode 100644 index 2abab821..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "syscall" - "unsafe" -) - -func (v *ITypeInfo) GetTypeAttr() (tattr *TYPEATTR, err error) { - hr, _, _ := syscall.Syscall( - uintptr(v.VTable().GetTypeAttr), - 2, - uintptr(unsafe.Pointer(v)), - uintptr(unsafe.Pointer(&tattr)), - 0) - if hr != 0 { - err = NewError(hr) - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iunknown.go b/backend/vendor/github.com/go-ole/go-ole/iunknown.go deleted file mode 100644 index 108f28ea..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iunknown.go +++ /dev/null @@ -1,57 +0,0 @@ -package ole - -import "unsafe" - -type IUnknown struct { - RawVTable *interface{} -} - -type IUnknownVtbl struct { - QueryInterface uintptr - AddRef uintptr - Release uintptr -} - -type UnknownLike interface { - QueryInterface(iid *GUID) (disp *IDispatch, err error) - AddRef() int32 - Release() int32 -} - -func (v *IUnknown) VTable() *IUnknownVtbl { - return (*IUnknownVtbl)(unsafe.Pointer(v.RawVTable)) -} - -func (v *IUnknown) PutQueryInterface(interfaceID *GUID, obj interface{}) error { - return reflectQueryInterface(v, v.VTable().QueryInterface, interfaceID, obj) -} - -func (v *IUnknown) IDispatch(interfaceID *GUID) (dispatch *IDispatch, err error) { - err = v.PutQueryInterface(interfaceID, &dispatch) - return -} - -func (v *IUnknown) IEnumVARIANT(interfaceID *GUID) (enum *IEnumVARIANT, err error) { - err = v.PutQueryInterface(interfaceID, &enum) - return -} - -func (v *IUnknown) QueryInterface(iid *GUID) (*IDispatch, error) { - return queryInterface(v, iid) -} - -func (v *IUnknown) MustQueryInterface(iid *GUID) (disp *IDispatch) { - unk, err := queryInterface(v, iid) - if err != nil { - panic(err) - } - return unk -} - -func (v *IUnknown) AddRef() int32 { - return addRef(v) -} - -func (v *IUnknown) Release() int32 { - return release(v) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iunknown_func.go b/backend/vendor/github.com/go-ole/go-ole/iunknown_func.go deleted file mode 100644 index 247fccb3..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iunknown_func.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -func reflectQueryInterface(self interface{}, method uintptr, interfaceID *GUID, obj interface{}) (err error) { - return NewError(E_NOTIMPL) -} - -func queryInterface(unk *IUnknown, iid *GUID) (disp *IDispatch, err error) { - return nil, NewError(E_NOTIMPL) -} - -func addRef(unk *IUnknown) int32 { - return 0 -} - -func release(unk *IUnknown) int32 { - return 0 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/iunknown_windows.go b/backend/vendor/github.com/go-ole/go-ole/iunknown_windows.go deleted file mode 100644 index faf9c4c7..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/iunknown_windows.go +++ /dev/null @@ -1,59 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "reflect" - "syscall" - "unsafe" -) - -func reflectQueryInterface(self interface{}, method uintptr, interfaceID *GUID, obj interface{}) (err error) { - selfValue := reflect.ValueOf(self).Elem() - objValue := reflect.ValueOf(obj).Elem() - - hr, _, _ := syscall.Syscall( - method, - 3, - selfValue.UnsafeAddr(), - uintptr(unsafe.Pointer(interfaceID)), - objValue.Addr().Pointer()) - if hr != 0 { - err = NewError(hr) - } - return -} - -func queryInterface(unk *IUnknown, iid *GUID) (disp *IDispatch, err error) { - hr, _, _ := syscall.Syscall( - unk.VTable().QueryInterface, - 3, - uintptr(unsafe.Pointer(unk)), - uintptr(unsafe.Pointer(iid)), - uintptr(unsafe.Pointer(&disp))) - if hr != 0 { - err = NewError(hr) - } - return -} - -func addRef(unk *IUnknown) int32 { - ret, _, _ := syscall.Syscall( - unk.VTable().AddRef, - 1, - uintptr(unsafe.Pointer(unk)), - 0, - 0) - return int32(ret) -} - -func release(unk *IUnknown) int32 { - ret, _, _ := syscall.Syscall( - unk.VTable().Release, - 1, - uintptr(unsafe.Pointer(unk)), - 0, - 0) - return int32(ret) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/ole.go b/backend/vendor/github.com/go-ole/go-ole/ole.go deleted file mode 100644 index dbd132bb..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/ole.go +++ /dev/null @@ -1,190 +0,0 @@ -package ole - -import ( - "fmt" - "strings" - "unsafe" -) - -// DISPPARAMS are the arguments that passed to methods or property. -type DISPPARAMS struct { - rgvarg uintptr - rgdispidNamedArgs uintptr - cArgs uint32 - cNamedArgs uint32 -} - -// EXCEPINFO defines exception info. -type EXCEPINFO struct { - wCode uint16 - wReserved uint16 - bstrSource *uint16 - bstrDescription *uint16 - bstrHelpFile *uint16 - dwHelpContext uint32 - pvReserved uintptr - pfnDeferredFillIn uintptr - scode uint32 - - // Go-specific part. Don't move upper cos it'll break structure layout for native code. - rendered bool - source string - description string - helpFile string -} - -// renderStrings translates BSTR strings to Go ones so `.Error` and `.String` -// could be safely called after `.Clear`. We need this when we can't rely on -// a caller to call `.Clear`. -func (e *EXCEPINFO) renderStrings() { - e.rendered = true - if e.bstrSource == nil { - e.source = "" - } else { - e.source = BstrToString(e.bstrSource) - } - if e.bstrDescription == nil { - e.description = "" - } else { - e.description = BstrToString(e.bstrDescription) - } - if e.bstrHelpFile == nil { - e.helpFile = "" - } else { - e.helpFile = BstrToString(e.bstrHelpFile) - } -} - -// Clear frees BSTR strings inside an EXCEPINFO and set it to NULL. -func (e *EXCEPINFO) Clear() { - freeBSTR := func(s *uint16) { - // SysFreeString don't return errors and is safe for call's on NULL. - // https://docs.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-sysfreestring - _ = SysFreeString((*int16)(unsafe.Pointer(s))) - } - - if e.bstrSource != nil { - freeBSTR(e.bstrSource) - e.bstrSource = nil - } - if e.bstrDescription != nil { - freeBSTR(e.bstrDescription) - e.bstrDescription = nil - } - if e.bstrHelpFile != nil { - freeBSTR(e.bstrHelpFile) - e.bstrHelpFile = nil - } -} - -// WCode return wCode in EXCEPINFO. -func (e EXCEPINFO) WCode() uint16 { - return e.wCode -} - -// SCODE return scode in EXCEPINFO. -func (e EXCEPINFO) SCODE() uint32 { - return e.scode -} - -// String convert EXCEPINFO to string. -func (e EXCEPINFO) String() string { - if !e.rendered { - e.renderStrings() - } - return fmt.Sprintf( - "wCode: %#x, bstrSource: %v, bstrDescription: %v, bstrHelpFile: %v, dwHelpContext: %#x, scode: %#x", - e.wCode, e.source, e.description, e.helpFile, e.dwHelpContext, e.scode, - ) -} - -// Error implements error interface and returns error string. -func (e EXCEPINFO) Error() string { - if !e.rendered { - e.renderStrings() - } - - if e.description != "" { - return strings.TrimSpace(e.description) - } - - code := e.scode - if e.wCode != 0 { - code = uint32(e.wCode) - } - return fmt.Sprintf("%v: %#x", e.source, code) -} - -// PARAMDATA defines parameter data type. -type PARAMDATA struct { - Name *int16 - Vt uint16 -} - -// METHODDATA defines method info. -type METHODDATA struct { - Name *uint16 - Data *PARAMDATA - Dispid int32 - Meth uint32 - CC int32 - CArgs uint32 - Flags uint16 - VtReturn uint32 -} - -// INTERFACEDATA defines interface info. -type INTERFACEDATA struct { - MethodData *METHODDATA - CMembers uint32 -} - -// Point is 2D vector type. -type Point struct { - X int32 - Y int32 -} - -// Msg is message between processes. -type Msg struct { - Hwnd uint32 - Message uint32 - Wparam int32 - Lparam int32 - Time uint32 - Pt Point -} - -// TYPEDESC defines data type. -type TYPEDESC struct { - Hreftype uint32 - VT uint16 -} - -// IDLDESC defines IDL info. -type IDLDESC struct { - DwReserved uint32 - WIDLFlags uint16 -} - -// TYPEATTR defines type info. -type TYPEATTR struct { - Guid GUID - Lcid uint32 - dwReserved uint32 - MemidConstructor int32 - MemidDestructor int32 - LpstrSchema *uint16 - CbSizeInstance uint32 - Typekind int32 - CFuncs uint16 - CVars uint16 - CImplTypes uint16 - CbSizeVft uint16 - CbAlignment uint16 - WTypeFlags uint16 - WMajorVerNum uint16 - WMinorVerNum uint16 - TdescAlias TYPEDESC - IdldescType IDLDESC -} diff --git a/backend/vendor/github.com/go-ole/go-ole/oleutil/connection.go b/backend/vendor/github.com/go-ole/go-ole/oleutil/connection.go deleted file mode 100644 index 4c52d55e..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/oleutil/connection.go +++ /dev/null @@ -1,101 +0,0 @@ -//go:build windows -// +build windows - -package oleutil - -import ( - "reflect" - "unsafe" - - ole "github.com/go-ole/go-ole" -) - -type stdDispatch struct { - lpVtbl *stdDispatchVtbl - ref int32 - iid *ole.GUID - iface interface{} - funcMap map[string]int32 -} - -type stdDispatchVtbl struct { - pQueryInterface uintptr - pAddRef uintptr - pRelease uintptr - pGetTypeInfoCount uintptr - pGetTypeInfo uintptr - pGetIDsOfNames uintptr - pInvoke uintptr -} - -func dispQueryInterface(this *ole.IUnknown, iid *ole.GUID, punk **ole.IUnknown) uint32 { - pthis := (*stdDispatch)(unsafe.Pointer(this)) - *punk = nil - if ole.IsEqualGUID(iid, ole.IID_IUnknown) || - ole.IsEqualGUID(iid, ole.IID_IDispatch) { - dispAddRef(this) - *punk = this - return ole.S_OK - } - if ole.IsEqualGUID(iid, pthis.iid) { - dispAddRef(this) - *punk = this - return ole.S_OK - } - return ole.E_NOINTERFACE -} - -func dispAddRef(this *ole.IUnknown) int32 { - pthis := (*stdDispatch)(unsafe.Pointer(this)) - pthis.ref++ - return pthis.ref -} - -func dispRelease(this *ole.IUnknown) int32 { - pthis := (*stdDispatch)(unsafe.Pointer(this)) - pthis.ref-- - return pthis.ref -} - -func dispGetIDsOfNames(this *ole.IUnknown, iid *ole.GUID, wnames []*uint16, namelen int, lcid int, pdisp []int32) uintptr { - pthis := (*stdDispatch)(unsafe.Pointer(this)) - names := make([]string, len(wnames)) - for i := 0; i < len(names); i++ { - names[i] = ole.LpOleStrToString(wnames[i]) - } - for n := 0; n < namelen; n++ { - if id, ok := pthis.funcMap[names[n]]; ok { - pdisp[n] = id - } - } - return ole.S_OK -} - -func dispGetTypeInfoCount(pcount *int) uintptr { - if pcount != nil { - *pcount = 0 - } - return ole.S_OK -} - -func dispGetTypeInfo(ptypeif *uintptr) uintptr { - return ole.E_NOTIMPL -} - -func dispInvoke(this *ole.IDispatch, dispid int32, riid *ole.GUID, lcid int, flags int16, dispparams *ole.DISPPARAMS, result *ole.VARIANT, pexcepinfo *ole.EXCEPINFO, nerr *uint) uintptr { - pthis := (*stdDispatch)(unsafe.Pointer(this)) - found := "" - for name, id := range pthis.funcMap { - if id == dispid { - found = name - } - } - if found != "" { - rv := reflect.ValueOf(pthis.iface).Elem() - rm := rv.MethodByName(found) - rr := rm.Call([]reflect.Value{}) - println(len(rr)) - return ole.S_OK - } - return ole.E_NOTIMPL -} diff --git a/backend/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go b/backend/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go deleted file mode 100644 index b00ac4a9..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build !windows -// +build !windows - -package oleutil - -import ole "github.com/go-ole/go-ole" - -// ConnectObject creates a connection point between two services for communication. -func ConnectObject(disp *ole.IDispatch, iid *ole.GUID, idisp interface{}) (uint32, error) { - return 0, ole.NewError(ole.E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go b/backend/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go deleted file mode 100644 index 19fa27e5..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go +++ /dev/null @@ -1,59 +0,0 @@ -//go:build windows -// +build windows - -package oleutil - -import ( - "reflect" - "syscall" - "unsafe" - - ole "github.com/go-ole/go-ole" -) - -// ConnectObject creates a connection point between two services for communication. -func ConnectObject(disp *ole.IDispatch, iid *ole.GUID, idisp interface{}) (cookie uint32, err error) { - unknown, err := disp.QueryInterface(ole.IID_IConnectionPointContainer) - if err != nil { - return - } - - container := (*ole.IConnectionPointContainer)(unsafe.Pointer(unknown)) - var point *ole.IConnectionPoint - err = container.FindConnectionPoint(iid, &point) - if err != nil { - return - } - if edisp, ok := idisp.(*ole.IUnknown); ok { - cookie, err = point.Advise(edisp) - container.Release() - if err != nil { - return - } - } - rv := reflect.ValueOf(disp).Elem() - if rv.Type().Kind() == reflect.Struct { - dest := &stdDispatch{} - dest.lpVtbl = &stdDispatchVtbl{} - dest.lpVtbl.pQueryInterface = syscall.NewCallback(dispQueryInterface) - dest.lpVtbl.pAddRef = syscall.NewCallback(dispAddRef) - dest.lpVtbl.pRelease = syscall.NewCallback(dispRelease) - dest.lpVtbl.pGetTypeInfoCount = syscall.NewCallback(dispGetTypeInfoCount) - dest.lpVtbl.pGetTypeInfo = syscall.NewCallback(dispGetTypeInfo) - dest.lpVtbl.pGetIDsOfNames = syscall.NewCallback(dispGetIDsOfNames) - dest.lpVtbl.pInvoke = syscall.NewCallback(dispInvoke) - dest.iface = disp - dest.iid = iid - cookie, err = point.Advise((*ole.IUnknown)(unsafe.Pointer(dest))) - container.Release() - if err != nil { - point.Release() - return - } - return - } - - container.Release() - - return 0, ole.NewError(ole.E_INVALIDARG) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/oleutil/go-get.go b/backend/vendor/github.com/go-ole/go-ole/oleutil/go-get.go deleted file mode 100644 index 40bd9ff6..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/oleutil/go-get.go +++ /dev/null @@ -1,7 +0,0 @@ -// This file is here so go get succeeds as without it errors with: -// no buildable Go source files in ... -// -//go:build !windows -// +build !windows - -package oleutil diff --git a/backend/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go b/backend/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go deleted file mode 100644 index f7803c1e..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go +++ /dev/null @@ -1,127 +0,0 @@ -package oleutil - -import ole "github.com/go-ole/go-ole" - -// ClassIDFrom retrieves class ID whether given is program ID or application string. -func ClassIDFrom(programID string) (classID *ole.GUID, err error) { - return ole.ClassIDFrom(programID) -} - -// CreateObject creates object from programID based on interface type. -// -// Only supports IUnknown. -// -// Program ID can be either program ID or application string. -func CreateObject(programID string) (unknown *ole.IUnknown, err error) { - classID, err := ole.ClassIDFrom(programID) - if err != nil { - return - } - - unknown, err = ole.CreateInstance(classID, ole.IID_IUnknown) - if err != nil { - return - } - - return -} - -// GetActiveObject retrieves active object for program ID and interface ID based -// on interface type. -// -// Only supports IUnknown. -// -// Program ID can be either program ID or application string. -func GetActiveObject(programID string) (unknown *ole.IUnknown, err error) { - classID, err := ole.ClassIDFrom(programID) - if err != nil { - return - } - - unknown, err = ole.GetActiveObject(classID, ole.IID_IUnknown) - if err != nil { - return - } - - return -} - -// CallMethod calls method on IDispatch with parameters. -func CallMethod(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { - return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_METHOD, params) -} - -// MustCallMethod calls method on IDispatch with parameters or panics. -func MustCallMethod(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { - r, err := CallMethod(disp, name, params...) - if err != nil { - panic(err.Error()) - } - return r -} - -// GetProperty retrieves property from IDispatch. -func GetProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { - return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_PROPERTYGET, params) -} - -// MustGetProperty retrieves property from IDispatch or panics. -func MustGetProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { - r, err := GetProperty(disp, name, params...) - if err != nil { - panic(err.Error()) - } - return r -} - -// PutProperty mutates property. -func PutProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { - return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_PROPERTYPUT, params) -} - -// MustPutProperty mutates property or panics. -func MustPutProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { - r, err := PutProperty(disp, name, params...) - if err != nil { - panic(err.Error()) - } - return r -} - -// PutPropertyRef mutates property reference. -func PutPropertyRef(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { - return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_PROPERTYPUTREF, params) -} - -// MustPutPropertyRef mutates property reference or panics. -func MustPutPropertyRef(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { - r, err := PutPropertyRef(disp, name, params...) - if err != nil { - panic(err.Error()) - } - return r -} - -func ForEach(disp *ole.IDispatch, f func(v *ole.VARIANT) error) error { - newEnum, err := disp.GetProperty("_NewEnum") - if err != nil { - return err - } - defer newEnum.Clear() - - enum, err := newEnum.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) - if err != nil { - return err - } - defer enum.Release() - - for item, length, err := enum.Next(1); length > 0; item, length, err = enum.Next(1) { - if err != nil { - return err - } - if ferr := f(&item); ferr != nil { - return ferr - } - } - return nil -} diff --git a/backend/vendor/github.com/go-ole/go-ole/safearray.go b/backend/vendor/github.com/go-ole/go-ole/safearray.go deleted file mode 100644 index a5201b56..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/safearray.go +++ /dev/null @@ -1,27 +0,0 @@ -// Package is meant to retrieve and process safe array data returned from COM. - -package ole - -// SafeArrayBound defines the SafeArray boundaries. -type SafeArrayBound struct { - Elements uint32 - LowerBound int32 -} - -// SafeArray is how COM handles arrays. -type SafeArray struct { - Dimensions uint16 - FeaturesFlag uint16 - ElementsSize uint32 - LocksAmount uint32 - Data uint32 - Bounds [16]byte -} - -// SAFEARRAY is obsolete, exists for backwards compatibility. -// Use SafeArray -type SAFEARRAY SafeArray - -// SAFEARRAYBOUND is obsolete, exists for backwards compatibility. -// Use SafeArrayBound -type SAFEARRAYBOUND SafeArrayBound diff --git a/backend/vendor/github.com/go-ole/go-ole/safearray_func.go b/backend/vendor/github.com/go-ole/go-ole/safearray_func.go deleted file mode 100644 index afb1d02d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/safearray_func.go +++ /dev/null @@ -1,212 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -import ( - "unsafe" -) - -// safeArrayAccessData returns raw array pointer. -// -// AKA: SafeArrayAccessData in Windows API. -func safeArrayAccessData(safearray *SafeArray) (uintptr, error) { - return uintptr(0), NewError(E_NOTIMPL) -} - -// safeArrayUnaccessData releases raw array. -// -// AKA: SafeArrayUnaccessData in Windows API. -func safeArrayUnaccessData(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayAllocData allocates SafeArray. -// -// AKA: SafeArrayAllocData in Windows API. -func safeArrayAllocData(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayAllocDescriptor allocates SafeArray. -// -// AKA: SafeArrayAllocDescriptor in Windows API. -func safeArrayAllocDescriptor(dimensions uint32) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayAllocDescriptorEx allocates SafeArray. -// -// AKA: SafeArrayAllocDescriptorEx in Windows API. -func safeArrayAllocDescriptorEx(variantType VT, dimensions uint32) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayCopy returns copy of SafeArray. -// -// AKA: SafeArrayCopy in Windows API. -func safeArrayCopy(original *SafeArray) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayCopyData duplicates SafeArray into another SafeArray object. -// -// AKA: SafeArrayCopyData in Windows API. -func safeArrayCopyData(original *SafeArray, duplicate *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayCreate creates SafeArray. -// -// AKA: SafeArrayCreate in Windows API. -func safeArrayCreate(variantType VT, dimensions uint32, bounds *SafeArrayBound) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayCreateEx creates SafeArray. -// -// AKA: SafeArrayCreateEx in Windows API. -func safeArrayCreateEx(variantType VT, dimensions uint32, bounds *SafeArrayBound, extra uintptr) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayCreateVector creates SafeArray. -// -// AKA: SafeArrayCreateVector in Windows API. -func safeArrayCreateVector(variantType VT, lowerBound int32, length uint32) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayCreateVectorEx creates SafeArray. -// -// AKA: SafeArrayCreateVectorEx in Windows API. -func safeArrayCreateVectorEx(variantType VT, lowerBound int32, length uint32, extra uintptr) (*SafeArray, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayDestroy destroys SafeArray object. -// -// AKA: SafeArrayDestroy in Windows API. -func safeArrayDestroy(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayDestroyData destroys SafeArray object. -// -// AKA: SafeArrayDestroyData in Windows API. -func safeArrayDestroyData(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayDestroyDescriptor destroys SafeArray object. -// -// AKA: SafeArrayDestroyDescriptor in Windows API. -func safeArrayDestroyDescriptor(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayGetDim is the amount of dimensions in the SafeArray. -// -// SafeArrays may have multiple dimensions. Meaning, it could be -// multidimensional array. -// -// AKA: SafeArrayGetDim in Windows API. -func safeArrayGetDim(safearray *SafeArray) (*uint32, error) { - u := uint32(0) - return &u, NewError(E_NOTIMPL) -} - -// safeArrayGetElementSize is the element size in bytes. -// -// AKA: SafeArrayGetElemsize in Windows API. -func safeArrayGetElementSize(safearray *SafeArray) (*uint32, error) { - u := uint32(0) - return &u, NewError(E_NOTIMPL) -} - -// safeArrayGetElement retrieves element at given index. -func safeArrayGetElement(safearray *SafeArray, index int32, pv unsafe.Pointer) error { - return NewError(E_NOTIMPL) -} - -// safeArrayGetElement retrieves element at given index and converts to string. -func safeArrayGetElementString(safearray *SafeArray, index int32) (string, error) { - return "", NewError(E_NOTIMPL) -} - -// safeArrayGetIID is the InterfaceID of the elements in the SafeArray. -// -// AKA: SafeArrayGetIID in Windows API. -func safeArrayGetIID(safearray *SafeArray) (*GUID, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArrayGetLBound returns lower bounds of SafeArray. -// -// SafeArrays may have multiple dimensions. Meaning, it could be -// multidimensional array. -// -// AKA: SafeArrayGetLBound in Windows API. -func safeArrayGetLBound(safearray *SafeArray, dimension uint32) (int32, error) { - return int32(0), NewError(E_NOTIMPL) -} - -// safeArrayGetUBound returns upper bounds of SafeArray. -// -// SafeArrays may have multiple dimensions. Meaning, it could be -// multidimensional array. -// -// AKA: SafeArrayGetUBound in Windows API. -func safeArrayGetUBound(safearray *SafeArray, dimension uint32) (int32, error) { - return int32(0), NewError(E_NOTIMPL) -} - -// safeArrayGetVartype returns data type of SafeArray. -// -// AKA: SafeArrayGetVartype in Windows API. -func safeArrayGetVartype(safearray *SafeArray) (uint16, error) { - return uint16(0), NewError(E_NOTIMPL) -} - -// safeArrayLock locks SafeArray for reading to modify SafeArray. -// -// This must be called during some calls to ensure that another process does not -// read or write to the SafeArray during editing. -// -// AKA: SafeArrayLock in Windows API. -func safeArrayLock(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayUnlock unlocks SafeArray for reading. -// -// AKA: SafeArrayUnlock in Windows API. -func safeArrayUnlock(safearray *SafeArray) error { - return NewError(E_NOTIMPL) -} - -// safeArrayPutElement stores the data element at the specified location in the -// array. -// -// AKA: SafeArrayPutElement in Windows API. -func safeArrayPutElement(safearray *SafeArray, index int64, element uintptr) error { - return NewError(E_NOTIMPL) -} - -// safeArrayGetRecordInfo accesses IRecordInfo info for custom types. -// -// AKA: SafeArrayGetRecordInfo in Windows API. -// -// XXX: Must implement IRecordInfo interface for this to return. -func safeArrayGetRecordInfo(safearray *SafeArray) (interface{}, error) { - return nil, NewError(E_NOTIMPL) -} - -// safeArraySetRecordInfo mutates IRecordInfo info for custom types. -// -// AKA: SafeArraySetRecordInfo in Windows API. -// -// XXX: Must implement IRecordInfo interface for this to return. -func safeArraySetRecordInfo(safearray *SafeArray, recordInfo interface{}) error { - return NewError(E_NOTIMPL) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/safearray_windows.go b/backend/vendor/github.com/go-ole/go-ole/safearray_windows.go deleted file mode 100644 index 0a322f5d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/safearray_windows.go +++ /dev/null @@ -1,338 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "unsafe" -) - -var ( - procSafeArrayAccessData = modoleaut32.NewProc("SafeArrayAccessData") - procSafeArrayAllocData = modoleaut32.NewProc("SafeArrayAllocData") - procSafeArrayAllocDescriptor = modoleaut32.NewProc("SafeArrayAllocDescriptor") - procSafeArrayAllocDescriptorEx = modoleaut32.NewProc("SafeArrayAllocDescriptorEx") - procSafeArrayCopy = modoleaut32.NewProc("SafeArrayCopy") - procSafeArrayCopyData = modoleaut32.NewProc("SafeArrayCopyData") - procSafeArrayCreate = modoleaut32.NewProc("SafeArrayCreate") - procSafeArrayCreateEx = modoleaut32.NewProc("SafeArrayCreateEx") - procSafeArrayCreateVector = modoleaut32.NewProc("SafeArrayCreateVector") - procSafeArrayCreateVectorEx = modoleaut32.NewProc("SafeArrayCreateVectorEx") - procSafeArrayDestroy = modoleaut32.NewProc("SafeArrayDestroy") - procSafeArrayDestroyData = modoleaut32.NewProc("SafeArrayDestroyData") - procSafeArrayDestroyDescriptor = modoleaut32.NewProc("SafeArrayDestroyDescriptor") - procSafeArrayGetDim = modoleaut32.NewProc("SafeArrayGetDim") - procSafeArrayGetElement = modoleaut32.NewProc("SafeArrayGetElement") - procSafeArrayGetElemsize = modoleaut32.NewProc("SafeArrayGetElemsize") - procSafeArrayGetIID = modoleaut32.NewProc("SafeArrayGetIID") - procSafeArrayGetLBound = modoleaut32.NewProc("SafeArrayGetLBound") - procSafeArrayGetUBound = modoleaut32.NewProc("SafeArrayGetUBound") - procSafeArrayGetVartype = modoleaut32.NewProc("SafeArrayGetVartype") - procSafeArrayLock = modoleaut32.NewProc("SafeArrayLock") - procSafeArrayPtrOfIndex = modoleaut32.NewProc("SafeArrayPtrOfIndex") - procSafeArrayUnaccessData = modoleaut32.NewProc("SafeArrayUnaccessData") - procSafeArrayUnlock = modoleaut32.NewProc("SafeArrayUnlock") - procSafeArrayPutElement = modoleaut32.NewProc("SafeArrayPutElement") - //procSafeArrayRedim = modoleaut32.NewProc("SafeArrayRedim") // TODO - //procSafeArraySetIID = modoleaut32.NewProc("SafeArraySetIID") // TODO - procSafeArrayGetRecordInfo = modoleaut32.NewProc("SafeArrayGetRecordInfo") - procSafeArraySetRecordInfo = modoleaut32.NewProc("SafeArraySetRecordInfo") -) - -// safeArrayAccessData returns raw array pointer. -// -// AKA: SafeArrayAccessData in Windows API. -// Todo: Test -func safeArrayAccessData(safearray *SafeArray) (element uintptr, err error) { - err = convertHresultToError( - procSafeArrayAccessData.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&element)))) - return -} - -// safeArrayUnaccessData releases raw array. -// -// AKA: SafeArrayUnaccessData in Windows API. -func safeArrayUnaccessData(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayUnaccessData.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayAllocData allocates SafeArray. -// -// AKA: SafeArrayAllocData in Windows API. -func safeArrayAllocData(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayAllocData.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayAllocDescriptor allocates SafeArray. -// -// AKA: SafeArrayAllocDescriptor in Windows API. -func safeArrayAllocDescriptor(dimensions uint32) (safearray *SafeArray, err error) { - err = convertHresultToError( - procSafeArrayAllocDescriptor.Call(uintptr(dimensions), uintptr(unsafe.Pointer(&safearray)))) - return -} - -// safeArrayAllocDescriptorEx allocates SafeArray. -// -// AKA: SafeArrayAllocDescriptorEx in Windows API. -func safeArrayAllocDescriptorEx(variantType VT, dimensions uint32) (safearray *SafeArray, err error) { - err = convertHresultToError( - procSafeArrayAllocDescriptorEx.Call( - uintptr(variantType), - uintptr(dimensions), - uintptr(unsafe.Pointer(&safearray)))) - return -} - -// safeArrayCopy returns copy of SafeArray. -// -// AKA: SafeArrayCopy in Windows API. -func safeArrayCopy(original *SafeArray) (safearray *SafeArray, err error) { - err = convertHresultToError( - procSafeArrayCopy.Call( - uintptr(unsafe.Pointer(original)), - uintptr(unsafe.Pointer(&safearray)))) - return -} - -// safeArrayCopyData duplicates SafeArray into another SafeArray object. -// -// AKA: SafeArrayCopyData in Windows API. -func safeArrayCopyData(original *SafeArray, duplicate *SafeArray) (err error) { - err = convertHresultToError( - procSafeArrayCopyData.Call( - uintptr(unsafe.Pointer(original)), - uintptr(unsafe.Pointer(duplicate)))) - return -} - -// safeArrayCreate creates SafeArray. -// -// AKA: SafeArrayCreate in Windows API. -func safeArrayCreate(variantType VT, dimensions uint32, bounds *SafeArrayBound) (safearray *SafeArray, err error) { - sa, _, err := procSafeArrayCreate.Call( - uintptr(variantType), - uintptr(dimensions), - uintptr(unsafe.Pointer(bounds))) - safearray = (*SafeArray)(unsafe.Pointer(&sa)) - return -} - -// safeArrayCreateEx creates SafeArray. -// -// AKA: SafeArrayCreateEx in Windows API. -func safeArrayCreateEx(variantType VT, dimensions uint32, bounds *SafeArrayBound, extra uintptr) (safearray *SafeArray, err error) { - sa, _, err := procSafeArrayCreateEx.Call( - uintptr(variantType), - uintptr(dimensions), - uintptr(unsafe.Pointer(bounds)), - extra) - safearray = (*SafeArray)(unsafe.Pointer(sa)) - return -} - -// safeArrayCreateVector creates SafeArray. -// -// AKA: SafeArrayCreateVector in Windows API. -func safeArrayCreateVector(variantType VT, lowerBound int32, length uint32) (safearray *SafeArray, err error) { - sa, _, err := procSafeArrayCreateVector.Call( - uintptr(variantType), - uintptr(lowerBound), - uintptr(length)) - safearray = (*SafeArray)(unsafe.Pointer(sa)) - return -} - -// safeArrayCreateVectorEx creates SafeArray. -// -// AKA: SafeArrayCreateVectorEx in Windows API. -func safeArrayCreateVectorEx(variantType VT, lowerBound int32, length uint32, extra uintptr) (safearray *SafeArray, err error) { - sa, _, err := procSafeArrayCreateVectorEx.Call( - uintptr(variantType), - uintptr(lowerBound), - uintptr(length), - extra) - safearray = (*SafeArray)(unsafe.Pointer(sa)) - return -} - -// safeArrayDestroy destroys SafeArray object. -// -// AKA: SafeArrayDestroy in Windows API. -func safeArrayDestroy(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayDestroy.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayDestroyData destroys SafeArray object. -// -// AKA: SafeArrayDestroyData in Windows API. -func safeArrayDestroyData(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayDestroyData.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayDestroyDescriptor destroys SafeArray object. -// -// AKA: SafeArrayDestroyDescriptor in Windows API. -func safeArrayDestroyDescriptor(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayDestroyDescriptor.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayGetDim is the amount of dimensions in the SafeArray. -// -// SafeArrays may have multiple dimensions. Meaning, it could be -// multidimensional array. -// -// AKA: SafeArrayGetDim in Windows API. -func safeArrayGetDim(safearray *SafeArray) (dimensions *uint32, err error) { - l, _, err := procSafeArrayGetDim.Call(uintptr(unsafe.Pointer(safearray))) - dimensions = (*uint32)(unsafe.Pointer(l)) - return -} - -// safeArrayGetElementSize is the element size in bytes. -// -// AKA: SafeArrayGetElemsize in Windows API. -func safeArrayGetElementSize(safearray *SafeArray) (length *uint32, err error) { - l, _, err := procSafeArrayGetElemsize.Call(uintptr(unsafe.Pointer(safearray))) - length = (*uint32)(unsafe.Pointer(l)) - return -} - -// safeArrayGetElement retrieves element at given index. -func safeArrayGetElement(safearray *SafeArray, index int32, pv unsafe.Pointer) error { - return convertHresultToError( - procSafeArrayGetElement.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&index)), - uintptr(pv))) -} - -// safeArrayGetElementString retrieves element at given index and converts to string. -func safeArrayGetElementString(safearray *SafeArray, index int32) (str string, err error) { - var element *int16 - err = convertHresultToError( - procSafeArrayGetElement.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&index)), - uintptr(unsafe.Pointer(&element)))) - str = BstrToString(*(**uint16)(unsafe.Pointer(&element))) - SysFreeString(element) - return -} - -// safeArrayGetIID is the InterfaceID of the elements in the SafeArray. -// -// AKA: SafeArrayGetIID in Windows API. -func safeArrayGetIID(safearray *SafeArray) (guid *GUID, err error) { - err = convertHresultToError( - procSafeArrayGetIID.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&guid)))) - return -} - -// safeArrayGetLBound returns lower bounds of SafeArray. -// -// SafeArrays may have multiple dimensions. Meaning, it could be -// multidimensional array. -// -// AKA: SafeArrayGetLBound in Windows API. -func safeArrayGetLBound(safearray *SafeArray, dimension uint32) (lowerBound int32, err error) { - err = convertHresultToError( - procSafeArrayGetLBound.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(dimension), - uintptr(unsafe.Pointer(&lowerBound)))) - return -} - -// safeArrayGetUBound returns upper bounds of SafeArray. -// -// SafeArrays may have multiple dimensions. Meaning, it could be -// multidimensional array. -// -// AKA: SafeArrayGetUBound in Windows API. -func safeArrayGetUBound(safearray *SafeArray, dimension uint32) (upperBound int32, err error) { - err = convertHresultToError( - procSafeArrayGetUBound.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(dimension), - uintptr(unsafe.Pointer(&upperBound)))) - return -} - -// safeArrayGetVartype returns data type of SafeArray. -// -// AKA: SafeArrayGetVartype in Windows API. -func safeArrayGetVartype(safearray *SafeArray) (varType uint16, err error) { - err = convertHresultToError( - procSafeArrayGetVartype.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&varType)))) - return -} - -// safeArrayLock locks SafeArray for reading to modify SafeArray. -// -// This must be called during some calls to ensure that another process does not -// read or write to the SafeArray during editing. -// -// AKA: SafeArrayLock in Windows API. -func safeArrayLock(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayLock.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayUnlock unlocks SafeArray for reading. -// -// AKA: SafeArrayUnlock in Windows API. -func safeArrayUnlock(safearray *SafeArray) (err error) { - err = convertHresultToError(procSafeArrayUnlock.Call(uintptr(unsafe.Pointer(safearray)))) - return -} - -// safeArrayPutElement stores the data element at the specified location in the -// array. -// -// AKA: SafeArrayPutElement in Windows API. -func safeArrayPutElement(safearray *SafeArray, index int64, element uintptr) (err error) { - err = convertHresultToError( - procSafeArrayPutElement.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&index)), - uintptr(unsafe.Pointer(element)))) - return -} - -// safeArrayGetRecordInfo accesses IRecordInfo info for custom types. -// -// AKA: SafeArrayGetRecordInfo in Windows API. -// -// XXX: Must implement IRecordInfo interface for this to return. -func safeArrayGetRecordInfo(safearray *SafeArray) (recordInfo interface{}, err error) { - err = convertHresultToError( - procSafeArrayGetRecordInfo.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&recordInfo)))) - return -} - -// safeArraySetRecordInfo mutates IRecordInfo info for custom types. -// -// AKA: SafeArraySetRecordInfo in Windows API. -// -// XXX: Must implement IRecordInfo interface for this to return. -func safeArraySetRecordInfo(safearray *SafeArray, recordInfo interface{}) (err error) { - err = convertHresultToError( - procSafeArraySetRecordInfo.Call( - uintptr(unsafe.Pointer(safearray)), - uintptr(unsafe.Pointer(&recordInfo)))) - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/safearrayconversion.go b/backend/vendor/github.com/go-ole/go-ole/safearrayconversion.go deleted file mode 100644 index dde3e17e..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/safearrayconversion.go +++ /dev/null @@ -1,140 +0,0 @@ -// Helper for converting SafeArray to array of objects. - -package ole - -import ( - "unsafe" -) - -type SafeArrayConversion struct { - Array *SafeArray -} - -func (sac *SafeArrayConversion) ToStringArray() (strings []string) { - totalElements, _ := sac.TotalElements(0) - strings = make([]string, totalElements) - - for i := int32(0); i < totalElements; i++ { - strings[int32(i)], _ = safeArrayGetElementString(sac.Array, i) - } - - return -} - -func (sac *SafeArrayConversion) ToByteArray() (bytes []byte) { - totalElements, _ := sac.TotalElements(0) - bytes = make([]byte, totalElements) - - for i := int32(0); i < totalElements; i++ { - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&bytes[int32(i)])) - } - - return -} - -func (sac *SafeArrayConversion) ToValueArray() (values []interface{}) { - totalElements, _ := sac.TotalElements(0) - values = make([]interface{}, totalElements) - vt, _ := safeArrayGetVartype(sac.Array) - - for i := int32(0); i < totalElements; i++ { - switch VT(vt) { - case VT_BOOL: - var v bool - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_I1: - var v int8 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_I2: - var v int16 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_I4: - var v int32 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_I8: - var v int64 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_UI1: - var v uint8 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_UI2: - var v uint16 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_UI4: - var v uint32 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_UI8: - var v uint64 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_R4: - var v float32 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_R8: - var v float64 - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v - case VT_BSTR: - v, _ := safeArrayGetElementString(sac.Array, i) - values[i] = v - case VT_VARIANT: - var v VARIANT - safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) - values[i] = v.Value() - v.Clear() - default: - // TODO - } - } - - return -} - -func (sac *SafeArrayConversion) GetType() (varType uint16, err error) { - return safeArrayGetVartype(sac.Array) -} - -func (sac *SafeArrayConversion) GetDimensions() (dimensions *uint32, err error) { - return safeArrayGetDim(sac.Array) -} - -func (sac *SafeArrayConversion) GetSize() (length *uint32, err error) { - return safeArrayGetElementSize(sac.Array) -} - -func (sac *SafeArrayConversion) TotalElements(index uint32) (totalElements int32, err error) { - if index < 1 { - index = 1 - } - - // Get array bounds - var LowerBounds int32 - var UpperBounds int32 - - LowerBounds, err = safeArrayGetLBound(sac.Array, index) - if err != nil { - return - } - - UpperBounds, err = safeArrayGetUBound(sac.Array, index) - if err != nil { - return - } - - totalElements = UpperBounds - LowerBounds + 1 - return -} - -// Release Safe Array memory -func (sac *SafeArrayConversion) Release() { - safeArrayDestroy(sac.Array) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/safearrayslices.go b/backend/vendor/github.com/go-ole/go-ole/safearrayslices.go deleted file mode 100644 index 063dbbfe..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/safearrayslices.go +++ /dev/null @@ -1,34 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "unsafe" -) - -func safeArrayFromByteSlice(slice []byte) *SafeArray { - array, _ := safeArrayCreateVector(VT_UI1, 0, uint32(len(slice))) - - if array == nil { - panic("Could not convert []byte to SAFEARRAY") - } - - for i, v := range slice { - safeArrayPutElement(array, int64(i), uintptr(unsafe.Pointer(&v))) - } - return array -} - -func safeArrayFromStringSlice(slice []string) *SafeArray { - array, _ := safeArrayCreateVector(VT_BSTR, 0, uint32(len(slice))) - - if array == nil { - panic("Could not convert []string to SAFEARRAY") - } - // SysAllocStringLen(s) - for i, v := range slice { - safeArrayPutElement(array, int64(i), uintptr(unsafe.Pointer(SysAllocStringLen(v)))) - } - return array -} diff --git a/backend/vendor/github.com/go-ole/go-ole/utility.go b/backend/vendor/github.com/go-ole/go-ole/utility.go deleted file mode 100644 index 99ee82dc..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/utility.go +++ /dev/null @@ -1,101 +0,0 @@ -package ole - -import ( - "unicode/utf16" - "unsafe" -) - -// ClassIDFrom retrieves class ID whether given is program ID or application string. -// -// Helper that provides check against both Class ID from Program ID and Class ID from string. It is -// faster, if you know which you are using, to use the individual functions, but this will check -// against available functions for you. -func ClassIDFrom(programID string) (classID *GUID, err error) { - classID, err = CLSIDFromProgID(programID) - if err != nil { - classID, err = CLSIDFromString(programID) - if err != nil { - return - } - } - return -} - -// BytePtrToString converts byte pointer to a Go string. -func BytePtrToString(p *byte) string { - a := (*[10000]uint8)(unsafe.Pointer(p)) - i := 0 - for a[i] != 0 { - i++ - } - return string(a[:i]) -} - -// UTF16PtrToString is alias for LpOleStrToString. -// -// Kept for compatibility reasons. -func UTF16PtrToString(p *uint16) string { - return LpOleStrToString(p) -} - -// LpOleStrToString converts COM Unicode to Go string. -func LpOleStrToString(p *uint16) string { - if p == nil { - return "" - } - - length := lpOleStrLen(p) - a := make([]uint16, length) - - ptr := unsafe.Pointer(p) - - for i := 0; i < int(length); i++ { - a[i] = *(*uint16)(ptr) - ptr = unsafe.Pointer(uintptr(ptr) + 2) - } - - return string(utf16.Decode(a)) -} - -// BstrToString converts COM binary string to Go string. -func BstrToString(p *uint16) string { - if p == nil { - return "" - } - length := SysStringLen((*int16)(unsafe.Pointer(p))) - a := make([]uint16, length) - - ptr := unsafe.Pointer(p) - - for i := 0; i < int(length); i++ { - a[i] = *(*uint16)(ptr) - ptr = unsafe.Pointer(uintptr(ptr) + 2) - } - return string(utf16.Decode(a)) -} - -// lpOleStrLen returns the length of Unicode string. -func lpOleStrLen(p *uint16) (length int64) { - if p == nil { - return 0 - } - - ptr := unsafe.Pointer(p) - - for i := 0; ; i++ { - if 0 == *(*uint16)(ptr) { - length = int64(i) - break - } - ptr = unsafe.Pointer(uintptr(ptr) + 2) - } - return -} - -// convertHresultToError converts syscall to error, if call is unsuccessful. -func convertHresultToError(hr uintptr, r2 uintptr, ignore error) (err error) { - if hr != 0 { - err = NewError(hr) - } - return -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variables.go b/backend/vendor/github.com/go-ole/go-ole/variables.go deleted file mode 100644 index 056f844d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variables.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "golang.org/x/sys/windows" -) - -var ( - modcombase = windows.NewLazySystemDLL("combase.dll") - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - modole32 = windows.NewLazySystemDLL("ole32.dll") - modoleaut32 = windows.NewLazySystemDLL("oleaut32.dll") - moduser32 = windows.NewLazySystemDLL("user32.dll") -) diff --git a/backend/vendor/github.com/go-ole/go-ole/variant.go b/backend/vendor/github.com/go-ole/go-ole/variant.go deleted file mode 100644 index 967a23fe..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant.go +++ /dev/null @@ -1,105 +0,0 @@ -package ole - -import "unsafe" - -// NewVariant returns new variant based on type and value. -func NewVariant(vt VT, val int64) VARIANT { - return VARIANT{VT: vt, Val: val} -} - -// ToIUnknown converts Variant to Unknown object. -func (v *VARIANT) ToIUnknown() *IUnknown { - if v.VT != VT_UNKNOWN { - return nil - } - return (*IUnknown)(unsafe.Pointer(uintptr(v.Val))) -} - -// ToIDispatch converts variant to dispatch object. -func (v *VARIANT) ToIDispatch() *IDispatch { - if v.VT != VT_DISPATCH { - return nil - } - return (*IDispatch)(unsafe.Pointer(uintptr(v.Val))) -} - -// ToArray converts variant to SafeArray helper. -func (v *VARIANT) ToArray() *SafeArrayConversion { - if v.VT != VT_SAFEARRAY { - if v.VT&VT_ARRAY == 0 { - return nil - } - } - var safeArray *SafeArray = (*SafeArray)(unsafe.Pointer(uintptr(v.Val))) - return &SafeArrayConversion{safeArray} -} - -// ToString converts variant to Go string. -func (v *VARIANT) ToString() string { - if v.VT != VT_BSTR { - return "" - } - return BstrToString(*(**uint16)(unsafe.Pointer(&v.Val))) -} - -// Clear the memory of variant object. -func (v *VARIANT) Clear() error { - return VariantClear(v) -} - -// Value returns variant value based on its type. -// -// Currently supported types: 2- and 4-byte integers, strings, bools. -// Note that 64-bit integers, datetimes, and other types are stored as strings -// and will be returned as strings. -// -// Needs to be further converted, because this returns an interface{}. -func (v *VARIANT) Value() interface{} { - switch v.VT { - case VT_I1: - return int8(v.Val) - case VT_UI1: - return uint8(v.Val) - case VT_I2: - return int16(v.Val) - case VT_UI2: - return uint16(v.Val) - case VT_I4: - return int32(v.Val) - case VT_UI4: - return uint32(v.Val) - case VT_I8: - return int64(v.Val) - case VT_UI8: - return uint64(v.Val) - case VT_INT: - return int(v.Val) - case VT_UINT: - return uint(v.Val) - case VT_INT_PTR: - return uintptr(v.Val) // TODO - case VT_UINT_PTR: - return uintptr(v.Val) - case VT_R4: - return *(*float32)(unsafe.Pointer(&v.Val)) - case VT_R8: - return *(*float64)(unsafe.Pointer(&v.Val)) - case VT_BSTR: - return v.ToString() - case VT_DATE: - // VT_DATE type will either return float64 or time.Time. - d := uint64(v.Val) - date, err := GetVariantDate(d) - if err != nil { - return float64(v.Val) - } - return date - case VT_UNKNOWN: - return v.ToIUnknown() - case VT_DISPATCH: - return v.ToIDispatch() - case VT_BOOL: - return v.Val != 0 - } - return nil -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_386.go b/backend/vendor/github.com/go-ole/go-ole/variant_386.go deleted file mode 100644 index 2e3d3aa4..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_386.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build 386 -// +build 386 - -package ole - -type VARIANT struct { - VT VT // 2 - wReserved1 uint16 // 4 - wReserved2 uint16 // 6 - wReserved3 uint16 // 8 - Val int64 // 16 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_amd64.go b/backend/vendor/github.com/go-ole/go-ole/variant_amd64.go deleted file mode 100644 index b48c3ce6..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_amd64.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build amd64 -// +build amd64 - -package ole - -type VARIANT struct { - VT VT // 2 - wReserved1 uint16 // 4 - wReserved2 uint16 // 6 - wReserved3 uint16 // 8 - Val int64 // 16 - _ [8]byte // 24 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_arm.go b/backend/vendor/github.com/go-ole/go-ole/variant_arm.go deleted file mode 100644 index 5c8d492d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_arm.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build arm -// +build arm - -package ole - -type VARIANT struct { - VT VT // 2 - wReserved1 uint16 // 4 - wReserved2 uint16 // 6 - wReserved3 uint16 // 8 - Val int64 // 16 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_arm64.go b/backend/vendor/github.com/go-ole/go-ole/variant_arm64.go deleted file mode 100644 index 78473cec..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_arm64.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build arm64 -// +build arm64 - -package ole - -type VARIANT struct { - VT VT // 2 - wReserved1 uint16 // 4 - wReserved2 uint16 // 6 - wReserved3 uint16 // 8 - Val int64 // 16 - _ [8]byte // 24 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_date_386.go b/backend/vendor/github.com/go-ole/go-ole/variant_date_386.go deleted file mode 100644 index 8c3d3085..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_date_386.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build windows && 386 -// +build windows,386 - -package ole - -import ( - "errors" - "syscall" - "time" - "unsafe" -) - -// GetVariantDate converts COM Variant Time value to Go time.Time. -func GetVariantDate(value uint64) (time.Time, error) { - var st syscall.Systemtime - v1 := uint32(value) - v2 := uint32(value >> 32) - r, _, _ := procVariantTimeToSystemTime.Call(uintptr(v1), uintptr(v2), uintptr(unsafe.Pointer(&st))) - if r != 0 { - return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil - } - return time.Now(), errors.New("Could not convert to time, passing current time.") -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_date_amd64.go b/backend/vendor/github.com/go-ole/go-ole/variant_date_amd64.go deleted file mode 100644 index 8554d38d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_date_amd64.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build windows && amd64 -// +build windows,amd64 - -package ole - -import ( - "errors" - "syscall" - "time" - "unsafe" -) - -// GetVariantDate converts COM Variant Time value to Go time.Time. -func GetVariantDate(value uint64) (time.Time, error) { - var st syscall.Systemtime - r, _, _ := procVariantTimeToSystemTime.Call(uintptr(value), uintptr(unsafe.Pointer(&st))) - if r != 0 { - return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil - } - return time.Now(), errors.New("Could not convert to time, passing current time.") -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_date_arm.go b/backend/vendor/github.com/go-ole/go-ole/variant_date_arm.go deleted file mode 100644 index 7afe38b8..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_date_arm.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build windows && arm -// +build windows,arm - -package ole - -import ( - "errors" - "syscall" - "time" - "unsafe" -) - -// GetVariantDate converts COM Variant Time value to Go time.Time. -func GetVariantDate(value uint64) (time.Time, error) { - var st syscall.Systemtime - v1 := uint32(value) - v2 := uint32(value >> 32) - r, _, _ := procVariantTimeToSystemTime.Call(uintptr(v1), uintptr(v2), uintptr(unsafe.Pointer(&st))) - if r != 0 { - return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil - } - return time.Now(), errors.New("Could not convert to time, passing current time.") -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_date_arm64.go b/backend/vendor/github.com/go-ole/go-ole/variant_date_arm64.go deleted file mode 100644 index 02b04a0d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_date_arm64.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build windows && arm64 -// +build windows,arm64 - -package ole - -import ( - "errors" - "syscall" - "time" - "unsafe" -) - -// GetVariantDate converts COM Variant Time value to Go time.Time. -func GetVariantDate(value uint64) (time.Time, error) { - var st syscall.Systemtime - v1 := uint32(value) - v2 := uint32(value >> 32) - r, _, _ := procVariantTimeToSystemTime.Call(uintptr(v1), uintptr(v2), uintptr(unsafe.Pointer(&st))) - if r != 0 { - return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil - } - return time.Now(), errors.New("Could not convert to time, passing current time.") -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_ppc64le.go b/backend/vendor/github.com/go-ole/go-ole/variant_ppc64le.go deleted file mode 100644 index 4ce060d8..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_ppc64le.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build ppc64le -// +build ppc64le - -package ole - -type VARIANT struct { - VT VT // 2 - wReserved1 uint16 // 4 - wReserved2 uint16 // 6 - wReserved3 uint16 // 8 - Val int64 // 16 - _ [8]byte // 24 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/variant_s390x.go b/backend/vendor/github.com/go-ole/go-ole/variant_s390x.go deleted file mode 100644 index f8373109..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/variant_s390x.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build s390x -// +build s390x - -package ole - -type VARIANT struct { - VT VT // 2 - wReserved1 uint16 // 4 - wReserved2 uint16 // 6 - wReserved3 uint16 // 8 - Val int64 // 16 - _ [8]byte // 24 -} diff --git a/backend/vendor/github.com/go-ole/go-ole/vt_string.go b/backend/vendor/github.com/go-ole/go-ole/vt_string.go deleted file mode 100644 index 729b4a04..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/vt_string.go +++ /dev/null @@ -1,58 +0,0 @@ -// generated by stringer -output vt_string.go -type VT; DO NOT EDIT - -package ole - -import "fmt" - -const ( - _VT_name_0 = "VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCHVT_ERRORVT_BOOLVT_VARIANTVT_UNKNOWNVT_DECIMAL" - _VT_name_1 = "VT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTR" - _VT_name_2 = "VT_RECORDVT_INT_PTRVT_UINT_PTR" - _VT_name_3 = "VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSID" - _VT_name_4 = "VT_BSTR_BLOBVT_VECTOR" - _VT_name_5 = "VT_ARRAY" - _VT_name_6 = "VT_BYREF" - _VT_name_7 = "VT_RESERVED" - _VT_name_8 = "VT_ILLEGAL" -) - -var ( - _VT_index_0 = [...]uint8{0, 8, 15, 20, 25, 30, 35, 40, 47, 54, 65, 73, 80, 90, 100, 110} - _VT_index_1 = [...]uint8{0, 5, 11, 17, 23, 28, 34, 40, 47, 54, 64, 70, 82, 91, 105, 113, 122} - _VT_index_2 = [...]uint8{0, 9, 19, 30} - _VT_index_3 = [...]uint8{0, 11, 18, 27, 37, 55, 71, 85, 90, 98} - _VT_index_4 = [...]uint8{0, 12, 21} - _VT_index_5 = [...]uint8{0, 8} - _VT_index_6 = [...]uint8{0, 8} - _VT_index_7 = [...]uint8{0, 11} - _VT_index_8 = [...]uint8{0, 10} -) - -func (i VT) String() string { - switch { - case 0 <= i && i <= 14: - return _VT_name_0[_VT_index_0[i]:_VT_index_0[i+1]] - case 16 <= i && i <= 31: - i -= 16 - return _VT_name_1[_VT_index_1[i]:_VT_index_1[i+1]] - case 36 <= i && i <= 38: - i -= 36 - return _VT_name_2[_VT_index_2[i]:_VT_index_2[i+1]] - case 64 <= i && i <= 72: - i -= 64 - return _VT_name_3[_VT_index_3[i]:_VT_index_3[i+1]] - case 4095 <= i && i <= 4096: - i -= 4095 - return _VT_name_4[_VT_index_4[i]:_VT_index_4[i+1]] - case i == 8192: - return _VT_name_5 - case i == 16384: - return _VT_name_6 - case i == 32768: - return _VT_name_7 - case i == 65535: - return _VT_name_8 - default: - return fmt.Sprintf("VT(%d)", i) - } -} diff --git a/backend/vendor/github.com/go-ole/go-ole/winrt.go b/backend/vendor/github.com/go-ole/go-ole/winrt.go deleted file mode 100644 index f503d685..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/winrt.go +++ /dev/null @@ -1,100 +0,0 @@ -//go:build windows -// +build windows - -package ole - -import ( - "reflect" - "syscall" - "unicode/utf8" - "unsafe" -) - -var ( - procRoInitialize = modcombase.NewProc("RoInitialize") - procRoActivateInstance = modcombase.NewProc("RoActivateInstance") - procRoGetActivationFactory = modcombase.NewProc("RoGetActivationFactory") - procWindowsCreateString = modcombase.NewProc("WindowsCreateString") - procWindowsDeleteString = modcombase.NewProc("WindowsDeleteString") - procWindowsGetStringRawBuffer = modcombase.NewProc("WindowsGetStringRawBuffer") -) - -func RoInitialize(thread_type uint32) (err error) { - hr, _, _ := procRoInitialize.Call(uintptr(thread_type)) - if hr != 0 { - err = NewError(hr) - } - return -} - -func RoActivateInstance(clsid string) (ins *IInspectable, err error) { - hClsid, err := NewHString(clsid) - if err != nil { - return nil, err - } - defer DeleteHString(hClsid) - - hr, _, _ := procRoActivateInstance.Call( - uintptr(unsafe.Pointer(hClsid)), - uintptr(unsafe.Pointer(&ins))) - if hr != 0 { - err = NewError(hr) - } - return -} - -func RoGetActivationFactory(clsid string, iid *GUID) (ins *IInspectable, err error) { - hClsid, err := NewHString(clsid) - if err != nil { - return nil, err - } - defer DeleteHString(hClsid) - - hr, _, _ := procRoGetActivationFactory.Call( - uintptr(unsafe.Pointer(hClsid)), - uintptr(unsafe.Pointer(iid)), - uintptr(unsafe.Pointer(&ins))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// HString is handle string for pointers. -type HString uintptr - -// NewHString returns a new HString for Go string. -func NewHString(s string) (hstring HString, err error) { - u16 := syscall.StringToUTF16Ptr(s) - len := uint32(utf8.RuneCountInString(s)) - hr, _, _ := procWindowsCreateString.Call( - uintptr(unsafe.Pointer(u16)), - uintptr(len), - uintptr(unsafe.Pointer(&hstring))) - if hr != 0 { - err = NewError(hr) - } - return -} - -// DeleteHString deletes HString. -func DeleteHString(hstring HString) (err error) { - hr, _, _ := procWindowsDeleteString.Call(uintptr(hstring)) - if hr != 0 { - err = NewError(hr) - } - return -} - -// String returns Go string value of HString. -func (h HString) String() string { - var u16buf uintptr - var u16len uint32 - u16buf, _, _ = procWindowsGetStringRawBuffer.Call( - uintptr(h), - uintptr(unsafe.Pointer(&u16len))) - - u16hdr := reflect.SliceHeader{Data: u16buf, Len: int(u16len), Cap: int(u16len)} - u16 := *(*[]uint16)(unsafe.Pointer(&u16hdr)) - return syscall.UTF16ToString(u16) -} diff --git a/backend/vendor/github.com/go-ole/go-ole/winrt_doc.go b/backend/vendor/github.com/go-ole/go-ole/winrt_doc.go deleted file mode 100644 index a392928d..00000000 --- a/backend/vendor/github.com/go-ole/go-ole/winrt_doc.go +++ /dev/null @@ -1,37 +0,0 @@ -//go:build !windows -// +build !windows - -package ole - -// RoInitialize -func RoInitialize(thread_type uint32) (err error) { - return NewError(E_NOTIMPL) -} - -// RoActivateInstance -func RoActivateInstance(clsid string) (ins *IInspectable, err error) { - return nil, NewError(E_NOTIMPL) -} - -// RoGetActivationFactory -func RoGetActivationFactory(clsid string, iid *GUID) (ins *IInspectable, err error) { - return nil, NewError(E_NOTIMPL) -} - -// HString is handle string for pointers. -type HString uintptr - -// NewHString returns a new HString for Go string. -func NewHString(s string) (hstring HString, err error) { - return HString(uintptr(0)), NewError(E_NOTIMPL) -} - -// DeleteHString deletes HString. -func DeleteHString(hstring HString) (err error) { - return NewError(E_NOTIMPL) -} - -// String returns Go string value of HString. -func (h HString) String() string { - return "" -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/.gitignore b/backend/vendor/github.com/golang-jwt/jwt/v4/.gitignore deleted file mode 100644 index 09573e01..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -bin -.idea/ - diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/LICENSE b/backend/vendor/github.com/golang-jwt/jwt/v4/LICENSE deleted file mode 100644 index 35dbc252..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) 2012 Dave Grijalva -Copyright (c) 2021 golang-jwt maintainers - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md b/backend/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md deleted file mode 100644 index 32966f59..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md +++ /dev/null @@ -1,22 +0,0 @@ -## Migration Guide (v4.0.0) - -Starting from [v4.0.0](https://github.com/golang-jwt/jwt/releases/tag/v4.0.0), the import path will be: - - "github.com/golang-jwt/jwt/v4" - -The `/v4` version will be backwards compatible with existing `v3.x.y` tags in this repo, as well as -`github.com/dgrijalva/jwt-go`. For most users this should be a drop-in replacement, if you're having -troubles migrating, please open an issue. - -You can replace all occurrences of `github.com/dgrijalva/jwt-go` or `github.com/golang-jwt/jwt` with `github.com/golang-jwt/jwt/v4`, either manually or by using tools such as `sed` or `gofmt`. - -And then you'd typically run: - -``` -go get github.com/golang-jwt/jwt/v4 -go mod tidy -``` - -## Older releases (before v3.2.0) - -The original migration guide for older releases can be found at https://github.com/dgrijalva/jwt-go/blob/master/MIGRATION_GUIDE.md. diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/README.md b/backend/vendor/github.com/golang-jwt/jwt/v4/README.md deleted file mode 100644 index 30f2f2a6..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# jwt-go - -[![build](https://github.com/golang-jwt/jwt/actions/workflows/build.yml/badge.svg)](https://github.com/golang-jwt/jwt/actions/workflows/build.yml) -[![Go Reference](https://pkg.go.dev/badge/github.com/golang-jwt/jwt/v4.svg)](https://pkg.go.dev/github.com/golang-jwt/jwt/v4) - -A [go](http://www.golang.org) (or 'golang' for search engine friendliness) implementation of [JSON Web Tokens](https://datatracker.ietf.org/doc/html/rfc7519). - -Starting with [v4.0.0](https://github.com/golang-jwt/jwt/releases/tag/v4.0.0) this project adds Go module support, but maintains backwards compatibility with older `v3.x.y` tags and upstream `github.com/dgrijalva/jwt-go`. -See the [`MIGRATION_GUIDE.md`](./MIGRATION_GUIDE.md) for more information. - -> After the original author of the library suggested migrating the maintenance of `jwt-go`, a dedicated team of open source maintainers decided to clone the existing library into this repository. See [dgrijalva/jwt-go#462](https://github.com/dgrijalva/jwt-go/issues/462) for a detailed discussion on this topic. - - -**SECURITY NOTICE:** Some older versions of Go have a security issue in the crypto/elliptic. Recommendation is to upgrade to at least 1.15 See issue [dgrijalva/jwt-go#216](https://github.com/dgrijalva/jwt-go/issues/216) for more detail. - -**SECURITY NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage. See the examples provided. - -### Supported Go versions - -Our support of Go versions is aligned with Go's [version release policy](https://golang.org/doc/devel/release#policy). -So we will support a major version of Go until there are two newer major releases. -We no longer support building jwt-go with unsupported Go versions, as these contain security vulnerabilities -which will not be fixed. - -## What the heck is a JWT? - -JWT.io has [a great introduction](https://jwt.io/introduction) to JSON Web Tokens. - -In short, it's a signed JSON object that does something useful (for example, authentication). It's commonly used for `Bearer` tokens in Oauth 2. A token is made of three parts, separated by `.`'s. The first two parts are JSON objects, that have been [base64url](https://datatracker.ietf.org/doc/html/rfc4648) encoded. The last part is the signature, encoded the same way. - -The first part is called the header. It contains the necessary information for verifying the last part, the signature. For example, which encryption method was used for signing and what key was used. - -The part in the middle is the interesting bit. It's called the Claims and contains the actual stuff you care about. Refer to [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) for information about reserved keys and the proper way to add your own. - -## What's in the box? - -This library supports the parsing and verification as well as the generation and signing of JWTs. Current supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own. - -## Installation Guidelines - -1. To install the jwt package, you first need to have [Go](https://go.dev/doc/install) installed, then you can use the command below to add `jwt-go` as a dependency in your Go program. - -```sh -go get -u github.com/golang-jwt/jwt/v4 -``` - -2. Import it in your code: - -```go -import "github.com/golang-jwt/jwt/v4" -``` - -## Examples - -See [the project documentation](https://pkg.go.dev/github.com/golang-jwt/jwt/v4) for examples of usage: - -* [Simple example of parsing and validating a token](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#example-Parse-Hmac) -* [Simple example of building and signing a token](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#example-New-Hmac) -* [Directory of Examples](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#pkg-examples) - -## Extensions - -This library publishes all the necessary components for adding your own signing methods or key functions. Simply implement the `SigningMethod` interface and register a factory method using `RegisterSigningMethod` or provide a `jwt.Keyfunc`. - -A common use case would be integrating with different 3rd party signature providers, like key management services from various cloud providers or Hardware Security Modules (HSMs) or to implement additional standards. - -| Extension | Purpose | Repo | -| --------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------ | -| GCP | Integrates with multiple Google Cloud Platform signing tools (AppEngine, IAM API, Cloud KMS) | https://github.com/someone1/gcp-jwt-go | -| AWS | Integrates with AWS Key Management Service, KMS | https://github.com/matelang/jwt-go-aws-kms | -| JWKS | Provides support for JWKS ([RFC 7517](https://datatracker.ietf.org/doc/html/rfc7517)) as a `jwt.Keyfunc` | https://github.com/MicahParks/keyfunc | - -*Disclaimer*: Unless otherwise specified, these integrations are maintained by third parties and should not be considered as a primary offer by any of the mentioned cloud providers - -## Compliance - -This library was last reviewed to comply with [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) dated May 2015 with a few notable differences: - -* In order to protect against accidental use of [Unsecured JWTs](https://datatracker.ietf.org/doc/html/rfc7519#section-6), tokens using `alg=none` will only be accepted if the constant `jwt.UnsafeAllowNoneSignatureType` is provided as the key. - -## Project Status & Versioning - -This library is considered production ready. Feedback and feature requests are appreciated. The API should be considered stable. There should be very few backwards-incompatible changes outside of major version updates (and only with good reason). - -This project uses [Semantic Versioning 2.0.0](http://semver.org). Accepted pull requests will land on `main`. Periodically, versions will be tagged from `main`. You can find all the releases on [the project releases page](https://github.com/golang-jwt/jwt/releases). - -**BREAKING CHANGES:*** -A full list of breaking changes is available in `VERSION_HISTORY.md`. See `MIGRATION_GUIDE.md` for more information on updating your code. - -## Usage Tips - -### Signing vs Encryption - -A token is simply a JSON object that is signed by its author. this tells you exactly two things about the data: - -* The author of the token was in the possession of the signing secret -* The data has not been modified since it was signed - -It's important to know that JWT does not provide encryption, which means anyone who has access to the token can read its contents. If you need to protect (encrypt) the data, there is a companion spec, `JWE`, that provides this functionality. The companion project https://github.com/golang-jwt/jwe aims at a (very) experimental implementation of the JWE standard. - -### Choosing a Signing Method - -There are several signing methods available, and you should probably take the time to learn about the various options before choosing one. The principal design decision is most likely going to be symmetric vs asymmetric. - -Symmetric signing methods, such as HSA, use only a single secret. This is probably the simplest signing method to use since any `[]byte` can be used as a valid secret. They are also slightly computationally faster to use, though this rarely is enough to matter. Symmetric signing methods work the best when both producers and consumers of tokens are trusted, or even the same system. Since the same secret is used to both sign and validate tokens, you can't easily distribute the key for validation. - -Asymmetric signing methods, such as RSA, use different keys for signing and verifying tokens. This makes it possible to produce tokens with a private key, and allow any consumer to access the public key for verification. - -### Signing Methods and Key Types - -Each signing method expects a different object type for its signing keys. See the package documentation for details. Here are the most common ones: - -* The [HMAC signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodHMAC) (`HS256`,`HS384`,`HS512`) expect `[]byte` values for signing and validation -* The [RSA signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodRSA) (`RS256`,`RS384`,`RS512`) expect `*rsa.PrivateKey` for signing and `*rsa.PublicKey` for validation -* The [ECDSA signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodECDSA) (`ES256`,`ES384`,`ES512`) expect `*ecdsa.PrivateKey` for signing and `*ecdsa.PublicKey` for validation -* The [EdDSA signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodEd25519) (`Ed25519`) expect `ed25519.PrivateKey` for signing and `ed25519.PublicKey` for validation - -### JWT and OAuth - -It's worth mentioning that OAuth and JWT are not the same thing. A JWT token is simply a signed JSON object. It can be used anywhere such a thing is useful. There is some confusion, though, as JWT is the most common type of bearer token used in OAuth2 authentication. - -Without going too far down the rabbit hole, here's a description of the interaction of these technologies: - -* OAuth is a protocol for allowing an identity provider to be separate from the service a user is logging in to. For example, whenever you use Facebook to log into a different service (Yelp, Spotify, etc), you are using OAuth. -* OAuth defines several options for passing around authentication data. One popular method is called a "bearer token". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token. -* Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL. - -### Troubleshooting - -This library uses descriptive error messages whenever possible. If you are not getting the expected result, have a look at the errors. The most common place people get stuck is providing the correct type of key to the parser. See the above section on signing methods and key types. - -## More - -Documentation can be found [on pkg.go.dev](https://pkg.go.dev/github.com/golang-jwt/jwt/v4). - -The command line utility included in this project (cmd/jwt) provides a straightforward example of token creation and parsing as well as a useful tool for debugging your own integration. You'll also find several implementation examples in the documentation. - -[golang-jwt](https://github.com/orgs/golang-jwt) incorporates a modified version of the JWT logo, which is distributed under the terms of the [MIT License](https://github.com/jsonwebtoken/jsonwebtoken.github.io/blob/master/LICENSE.txt). diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md b/backend/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md deleted file mode 100644 index b08402c3..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md +++ /dev/null @@ -1,19 +0,0 @@ -# Security Policy - -## Supported Versions - -As of February 2022 (and until this document is updated), the latest version `v4` is supported. - -## Reporting a Vulnerability - -If you think you found a vulnerability, and even if you are not sure, please report it to jwt-go-security@googlegroups.com or one of the other [golang-jwt maintainers](https://github.com/orgs/golang-jwt/people). Please try be explicit, describe steps to reproduce the security issue with code example(s). - -You will receive a response within a timely manner. If the issue is confirmed, we will do our best to release a patch as soon as possible given the complexity of the problem. - -## Public Discussions - -Please avoid publicly discussing a potential security vulnerability. - -Let's take this offline and find a solution first, this limits the potential impact as much as possible. - -We appreciate your help! diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md b/backend/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md deleted file mode 100644 index afbfc4e4..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md +++ /dev/null @@ -1,135 +0,0 @@ -## `jwt-go` Version History - -#### 4.0.0 - -* Introduces support for Go modules. The `v4` version will be backwards compatible with `v3.x.y`. - -#### 3.2.2 - -* Starting from this release, we are adopting the policy to support the most 2 recent versions of Go currently available. By the time of this release, this is Go 1.15 and 1.16 ([#28](https://github.com/golang-jwt/jwt/pull/28)). -* Fixed a potential issue that could occur when the verification of `exp`, `iat` or `nbf` was not required and contained invalid contents, i.e. non-numeric/date. Thanks for @thaJeztah for making us aware of that and @giorgos-f3 for originally reporting it to the formtech fork ([#40](https://github.com/golang-jwt/jwt/pull/40)). -* Added support for EdDSA / ED25519 ([#36](https://github.com/golang-jwt/jwt/pull/36)). -* Optimized allocations ([#33](https://github.com/golang-jwt/jwt/pull/33)). - -#### 3.2.1 - -* **Import Path Change**: See MIGRATION_GUIDE.md for tips on updating your code - * Changed the import path from `github.com/dgrijalva/jwt-go` to `github.com/golang-jwt/jwt` -* Fixed type confusing issue between `string` and `[]string` in `VerifyAudience` ([#12](https://github.com/golang-jwt/jwt/pull/12)). This fixes CVE-2020-26160 - -#### 3.2.0 - -* Added method `ParseUnverified` to allow users to split up the tasks of parsing and validation -* HMAC signing method returns `ErrInvalidKeyType` instead of `ErrInvalidKey` where appropriate -* Added options to `request.ParseFromRequest`, which allows for an arbitrary list of modifiers to parsing behavior. Initial set include `WithClaims` and `WithParser`. Existing usage of this function will continue to work as before. -* Deprecated `ParseFromRequestWithClaims` to simplify API in the future. - -#### 3.1.0 - -* Improvements to `jwt` command line tool -* Added `SkipClaimsValidation` option to `Parser` -* Documentation updates - -#### 3.0.0 - -* **Compatibility Breaking Changes**: See MIGRATION_GUIDE.md for tips on updating your code - * Dropped support for `[]byte` keys when using RSA signing methods. This convenience feature could contribute to security vulnerabilities involving mismatched key types with signing methods. - * `ParseFromRequest` has been moved to `request` subpackage and usage has changed - * The `Claims` property on `Token` is now type `Claims` instead of `map[string]interface{}`. The default value is type `MapClaims`, which is an alias to `map[string]interface{}`. This makes it possible to use a custom type when decoding claims. -* Other Additions and Changes - * Added `Claims` interface type to allow users to decode the claims into a custom type - * Added `ParseWithClaims`, which takes a third argument of type `Claims`. Use this function instead of `Parse` if you have a custom type you'd like to decode into. - * Dramatically improved the functionality and flexibility of `ParseFromRequest`, which is now in the `request` subpackage - * Added `ParseFromRequestWithClaims` which is the `FromRequest` equivalent of `ParseWithClaims` - * Added new interface type `Extractor`, which is used for extracting JWT strings from http requests. Used with `ParseFromRequest` and `ParseFromRequestWithClaims`. - * Added several new, more specific, validation errors to error type bitmask - * Moved examples from README to executable example files - * Signing method registry is now thread safe - * Added new property to `ValidationError`, which contains the raw error returned by calls made by parse/verify (such as those returned by keyfunc or json parser) - -#### 2.7.0 - -This will likely be the last backwards compatible release before 3.0.0, excluding essential bug fixes. - -* Added new option `-show` to the `jwt` command that will just output the decoded token without verifying -* Error text for expired tokens includes how long it's been expired -* Fixed incorrect error returned from `ParseRSAPublicKeyFromPEM` -* Documentation updates - -#### 2.6.0 - -* Exposed inner error within ValidationError -* Fixed validation errors when using UseJSONNumber flag -* Added several unit tests - -#### 2.5.0 - -* Added support for signing method none. You shouldn't use this. The API tries to make this clear. -* Updated/fixed some documentation -* Added more helpful error message when trying to parse tokens that begin with `BEARER ` - -#### 2.4.0 - -* Added new type, Parser, to allow for configuration of various parsing parameters - * You can now specify a list of valid signing methods. Anything outside this set will be rejected. - * You can now opt to use the `json.Number` type instead of `float64` when parsing token JSON -* Added support for [Travis CI](https://travis-ci.org/dgrijalva/jwt-go) -* Fixed some bugs with ECDSA parsing - -#### 2.3.0 - -* Added support for ECDSA signing methods -* Added support for RSA PSS signing methods (requires go v1.4) - -#### 2.2.0 - -* Gracefully handle a `nil` `Keyfunc` being passed to `Parse`. Result will now be the parsed token and an error, instead of a panic. - -#### 2.1.0 - -Backwards compatible API change that was missed in 2.0.0. - -* The `SignedString` method on `Token` now takes `interface{}` instead of `[]byte` - -#### 2.0.0 - -There were two major reasons for breaking backwards compatibility with this update. The first was a refactor required to expand the width of the RSA and HMAC-SHA signing implementations. There will likely be no required code changes to support this change. - -The second update, while unfortunately requiring a small change in integration, is required to open up this library to other signing methods. Not all keys used for all signing methods have a single standard on-disk representation. Requiring `[]byte` as the type for all keys proved too limiting. Additionally, this implementation allows for pre-parsed tokens to be reused, which might matter in an application that parses a high volume of tokens with a small set of keys. Backwards compatibilty has been maintained for passing `[]byte` to the RSA signing methods, but they will also accept `*rsa.PublicKey` and `*rsa.PrivateKey`. - -It is likely the only integration change required here will be to change `func(t *jwt.Token) ([]byte, error)` to `func(t *jwt.Token) (interface{}, error)` when calling `Parse`. - -* **Compatibility Breaking Changes** - * `SigningMethodHS256` is now `*SigningMethodHMAC` instead of `type struct` - * `SigningMethodRS256` is now `*SigningMethodRSA` instead of `type struct` - * `KeyFunc` now returns `interface{}` instead of `[]byte` - * `SigningMethod.Sign` now takes `interface{}` instead of `[]byte` for the key - * `SigningMethod.Verify` now takes `interface{}` instead of `[]byte` for the key -* Renamed type `SigningMethodHS256` to `SigningMethodHMAC`. Specific sizes are now just instances of this type. - * Added public package global `SigningMethodHS256` - * Added public package global `SigningMethodHS384` - * Added public package global `SigningMethodHS512` -* Renamed type `SigningMethodRS256` to `SigningMethodRSA`. Specific sizes are now just instances of this type. - * Added public package global `SigningMethodRS256` - * Added public package global `SigningMethodRS384` - * Added public package global `SigningMethodRS512` -* Moved sample private key for HMAC tests from an inline value to a file on disk. Value is unchanged. -* Refactored the RSA implementation to be easier to read -* Exposed helper methods `ParseRSAPrivateKeyFromPEM` and `ParseRSAPublicKeyFromPEM` - -#### 1.0.2 - -* Fixed bug in parsing public keys from certificates -* Added more tests around the parsing of keys for RS256 -* Code refactoring in RS256 implementation. No functional changes - -#### 1.0.1 - -* Fixed panic if RS256 signing method was passed an invalid key - -#### 1.0.0 - -* First versioned release -* API stabilized -* Supports creating, signing, parsing, and validating JWT tokens -* Supports RS256 and HS256 signing methods diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/claims.go b/backend/vendor/github.com/golang-jwt/jwt/v4/claims.go deleted file mode 100644 index 364cec87..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/claims.go +++ /dev/null @@ -1,269 +0,0 @@ -package jwt - -import ( - "crypto/subtle" - "fmt" - "time" -) - -// Claims must just have a Valid method that determines -// if the token is invalid for any supported reason -type Claims interface { - Valid() error -} - -// RegisteredClaims are a structured version of the JWT Claims Set, -// restricted to Registered Claim Names, as referenced at -// https://datatracker.ietf.org/doc/html/rfc7519#section-4.1 -// -// This type can be used on its own, but then additional private and -// public claims embedded in the JWT will not be parsed. The typical usecase -// therefore is to embedded this in a user-defined claim type. -// -// See examples for how to use this with your own claim types. -type RegisteredClaims struct { - // the `iss` (Issuer) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 - Issuer string `json:"iss,omitempty"` - - // the `sub` (Subject) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 - Subject string `json:"sub,omitempty"` - - // the `aud` (Audience) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3 - Audience ClaimStrings `json:"aud,omitempty"` - - // the `exp` (Expiration Time) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 - ExpiresAt *NumericDate `json:"exp,omitempty"` - - // the `nbf` (Not Before) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 - NotBefore *NumericDate `json:"nbf,omitempty"` - - // the `iat` (Issued At) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 - IssuedAt *NumericDate `json:"iat,omitempty"` - - // the `jti` (JWT ID) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 - ID string `json:"jti,omitempty"` -} - -// Valid validates time based claims "exp, iat, nbf". -// There is no accounting for clock skew. -// As well, if any of the above claims are not in the token, it will still -// be considered a valid claim. -func (c RegisteredClaims) Valid() error { - vErr := new(ValidationError) - now := TimeFunc() - - // The claims below are optional, by default, so if they are set to the - // default value in Go, let's not fail the verification for them. - if !c.VerifyExpiresAt(now, false) { - delta := now.Sub(c.ExpiresAt.Time) - vErr.Inner = fmt.Errorf("%s by %s", ErrTokenExpired, delta) - vErr.Errors |= ValidationErrorExpired - } - - if !c.VerifyIssuedAt(now, false) { - vErr.Inner = ErrTokenUsedBeforeIssued - vErr.Errors |= ValidationErrorIssuedAt - } - - if !c.VerifyNotBefore(now, false) { - vErr.Inner = ErrTokenNotValidYet - vErr.Errors |= ValidationErrorNotValidYet - } - - if vErr.valid() { - return nil - } - - return vErr -} - -// VerifyAudience compares the aud claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *RegisteredClaims) VerifyAudience(cmp string, req bool) bool { - return verifyAud(c.Audience, cmp, req) -} - -// VerifyExpiresAt compares the exp claim against cmp (cmp < exp). -// If req is false, it will return true, if exp is unset. -func (c *RegisteredClaims) VerifyExpiresAt(cmp time.Time, req bool) bool { - if c.ExpiresAt == nil { - return verifyExp(nil, cmp, req) - } - - return verifyExp(&c.ExpiresAt.Time, cmp, req) -} - -// VerifyIssuedAt compares the iat claim against cmp (cmp >= iat). -// If req is false, it will return true, if iat is unset. -func (c *RegisteredClaims) VerifyIssuedAt(cmp time.Time, req bool) bool { - if c.IssuedAt == nil { - return verifyIat(nil, cmp, req) - } - - return verifyIat(&c.IssuedAt.Time, cmp, req) -} - -// VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). -// If req is false, it will return true, if nbf is unset. -func (c *RegisteredClaims) VerifyNotBefore(cmp time.Time, req bool) bool { - if c.NotBefore == nil { - return verifyNbf(nil, cmp, req) - } - - return verifyNbf(&c.NotBefore.Time, cmp, req) -} - -// VerifyIssuer compares the iss claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *RegisteredClaims) VerifyIssuer(cmp string, req bool) bool { - return verifyIss(c.Issuer, cmp, req) -} - -// StandardClaims are a structured version of the JWT Claims Set, as referenced at -// https://datatracker.ietf.org/doc/html/rfc7519#section-4. They do not follow the -// specification exactly, since they were based on an earlier draft of the -// specification and not updated. The main difference is that they only -// support integer-based date fields and singular audiences. This might lead to -// incompatibilities with other JWT implementations. The use of this is discouraged, instead -// the newer RegisteredClaims struct should be used. -// -// Deprecated: Use RegisteredClaims instead for a forward-compatible way to access registered claims in a struct. -type StandardClaims struct { - Audience string `json:"aud,omitempty"` - ExpiresAt int64 `json:"exp,omitempty"` - Id string `json:"jti,omitempty"` - IssuedAt int64 `json:"iat,omitempty"` - Issuer string `json:"iss,omitempty"` - NotBefore int64 `json:"nbf,omitempty"` - Subject string `json:"sub,omitempty"` -} - -// Valid validates time based claims "exp, iat, nbf". There is no accounting for clock skew. -// As well, if any of the above claims are not in the token, it will still -// be considered a valid claim. -func (c StandardClaims) Valid() error { - vErr := new(ValidationError) - now := TimeFunc().Unix() - - // The claims below are optional, by default, so if they are set to the - // default value in Go, let's not fail the verification for them. - if !c.VerifyExpiresAt(now, false) { - delta := time.Unix(now, 0).Sub(time.Unix(c.ExpiresAt, 0)) - vErr.Inner = fmt.Errorf("%s by %s", ErrTokenExpired, delta) - vErr.Errors |= ValidationErrorExpired - } - - if !c.VerifyIssuedAt(now, false) { - vErr.Inner = ErrTokenUsedBeforeIssued - vErr.Errors |= ValidationErrorIssuedAt - } - - if !c.VerifyNotBefore(now, false) { - vErr.Inner = ErrTokenNotValidYet - vErr.Errors |= ValidationErrorNotValidYet - } - - if vErr.valid() { - return nil - } - - return vErr -} - -// VerifyAudience compares the aud claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyAudience(cmp string, req bool) bool { - return verifyAud([]string{c.Audience}, cmp, req) -} - -// VerifyExpiresAt compares the exp claim against cmp (cmp < exp). -// If req is false, it will return true, if exp is unset. -func (c *StandardClaims) VerifyExpiresAt(cmp int64, req bool) bool { - if c.ExpiresAt == 0 { - return verifyExp(nil, time.Unix(cmp, 0), req) - } - - t := time.Unix(c.ExpiresAt, 0) - return verifyExp(&t, time.Unix(cmp, 0), req) -} - -// VerifyIssuedAt compares the iat claim against cmp (cmp >= iat). -// If req is false, it will return true, if iat is unset. -func (c *StandardClaims) VerifyIssuedAt(cmp int64, req bool) bool { - if c.IssuedAt == 0 { - return verifyIat(nil, time.Unix(cmp, 0), req) - } - - t := time.Unix(c.IssuedAt, 0) - return verifyIat(&t, time.Unix(cmp, 0), req) -} - -// VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). -// If req is false, it will return true, if nbf is unset. -func (c *StandardClaims) VerifyNotBefore(cmp int64, req bool) bool { - if c.NotBefore == 0 { - return verifyNbf(nil, time.Unix(cmp, 0), req) - } - - t := time.Unix(c.NotBefore, 0) - return verifyNbf(&t, time.Unix(cmp, 0), req) -} - -// VerifyIssuer compares the iss claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyIssuer(cmp string, req bool) bool { - return verifyIss(c.Issuer, cmp, req) -} - -// ----- helpers - -func verifyAud(aud []string, cmp string, required bool) bool { - if len(aud) == 0 { - return !required - } - // use a var here to keep constant time compare when looping over a number of claims - result := false - - var stringClaims string - for _, a := range aud { - if subtle.ConstantTimeCompare([]byte(a), []byte(cmp)) != 0 { - result = true - } - stringClaims = stringClaims + a - } - - // case where "" is sent in one or many aud claims - if len(stringClaims) == 0 { - return !required - } - - return result -} - -func verifyExp(exp *time.Time, now time.Time, required bool) bool { - if exp == nil { - return !required - } - return now.Before(*exp) -} - -func verifyIat(iat *time.Time, now time.Time, required bool) bool { - if iat == nil { - return !required - } - return now.After(*iat) || now.Equal(*iat) -} - -func verifyNbf(nbf *time.Time, now time.Time, required bool) bool { - if nbf == nil { - return !required - } - return now.After(*nbf) || now.Equal(*nbf) -} - -func verifyIss(iss string, cmp string, required bool) bool { - if iss == "" { - return !required - } - return subtle.ConstantTimeCompare([]byte(iss), []byte(cmp)) != 0 -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/doc.go b/backend/vendor/github.com/golang-jwt/jwt/v4/doc.go deleted file mode 100644 index a86dc1a3..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html -// -// See README.md for more info. -package jwt diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go b/backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go deleted file mode 100644 index eac023fc..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go +++ /dev/null @@ -1,142 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/ecdsa" - "crypto/rand" - "errors" - "math/big" -) - -var ( - // Sadly this is missing from crypto/ecdsa compared to crypto/rsa - ErrECDSAVerification = errors.New("crypto/ecdsa: verification error") -) - -// SigningMethodECDSA implements the ECDSA family of signing methods. -// Expects *ecdsa.PrivateKey for signing and *ecdsa.PublicKey for verification -type SigningMethodECDSA struct { - Name string - Hash crypto.Hash - KeySize int - CurveBits int -} - -// Specific instances for EC256 and company -var ( - SigningMethodES256 *SigningMethodECDSA - SigningMethodES384 *SigningMethodECDSA - SigningMethodES512 *SigningMethodECDSA -) - -func init() { - // ES256 - SigningMethodES256 = &SigningMethodECDSA{"ES256", crypto.SHA256, 32, 256} - RegisterSigningMethod(SigningMethodES256.Alg(), func() SigningMethod { - return SigningMethodES256 - }) - - // ES384 - SigningMethodES384 = &SigningMethodECDSA{"ES384", crypto.SHA384, 48, 384} - RegisterSigningMethod(SigningMethodES384.Alg(), func() SigningMethod { - return SigningMethodES384 - }) - - // ES512 - SigningMethodES512 = &SigningMethodECDSA{"ES512", crypto.SHA512, 66, 521} - RegisterSigningMethod(SigningMethodES512.Alg(), func() SigningMethod { - return SigningMethodES512 - }) -} - -func (m *SigningMethodECDSA) Alg() string { - return m.Name -} - -// Verify implements token verification for the SigningMethod. -// For this verify method, key must be an ecdsa.PublicKey struct -func (m *SigningMethodECDSA) Verify(signingString, signature string, key interface{}) error { - var err error - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - // Get the key - var ecdsaKey *ecdsa.PublicKey - switch k := key.(type) { - case *ecdsa.PublicKey: - ecdsaKey = k - default: - return ErrInvalidKeyType - } - - if len(sig) != 2*m.KeySize { - return ErrECDSAVerification - } - - r := big.NewInt(0).SetBytes(sig[:m.KeySize]) - s := big.NewInt(0).SetBytes(sig[m.KeySize:]) - - // Create hasher - if !m.Hash.Available() { - return ErrHashUnavailable - } - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Verify the signature - if verifystatus := ecdsa.Verify(ecdsaKey, hasher.Sum(nil), r, s); verifystatus { - return nil - } - - return ErrECDSAVerification -} - -// Sign implements token signing for the SigningMethod. -// For this signing method, key must be an ecdsa.PrivateKey struct -func (m *SigningMethodECDSA) Sign(signingString string, key interface{}) (string, error) { - // Get the key - var ecdsaKey *ecdsa.PrivateKey - switch k := key.(type) { - case *ecdsa.PrivateKey: - ecdsaKey = k - default: - return "", ErrInvalidKeyType - } - - // Create the hasher - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Sign the string and return r, s - if r, s, err := ecdsa.Sign(rand.Reader, ecdsaKey, hasher.Sum(nil)); err == nil { - curveBits := ecdsaKey.Curve.Params().BitSize - - if m.CurveBits != curveBits { - return "", ErrInvalidKey - } - - keyBytes := curveBits / 8 - if curveBits%8 > 0 { - keyBytes += 1 - } - - // We serialize the outputs (r and s) into big-endian byte arrays - // padded with zeros on the left to make sure the sizes work out. - // Output must be 2*keyBytes long. - out := make([]byte, 2*keyBytes) - r.FillBytes(out[0:keyBytes]) // r is assigned to the first half of output. - s.FillBytes(out[keyBytes:]) // s is assigned to the second half of output. - - return EncodeSegment(out), nil - } else { - return "", err - } -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go b/backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go deleted file mode 100644 index 5700636d..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go +++ /dev/null @@ -1,69 +0,0 @@ -package jwt - -import ( - "crypto/ecdsa" - "crypto/x509" - "encoding/pem" - "errors" -) - -var ( - ErrNotECPublicKey = errors.New("key is not a valid ECDSA public key") - ErrNotECPrivateKey = errors.New("key is not a valid ECDSA private key") -) - -// ParseECPrivateKeyFromPEM parses a PEM encoded Elliptic Curve Private Key Structure -func ParseECPrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil { - if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { - return nil, err - } - } - - var pkey *ecdsa.PrivateKey - var ok bool - if pkey, ok = parsedKey.(*ecdsa.PrivateKey); !ok { - return nil, ErrNotECPrivateKey - } - - return pkey, nil -} - -// ParseECPublicKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 public key -func ParseECPublicKeyFromPEM(key []byte) (*ecdsa.PublicKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { - if cert, err := x509.ParseCertificate(block.Bytes); err == nil { - parsedKey = cert.PublicKey - } else { - return nil, err - } - } - - var pkey *ecdsa.PublicKey - var ok bool - if pkey, ok = parsedKey.(*ecdsa.PublicKey); !ok { - return nil, ErrNotECPublicKey - } - - return pkey, nil -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/ed25519.go b/backend/vendor/github.com/golang-jwt/jwt/v4/ed25519.go deleted file mode 100644 index 07d3aacd..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/ed25519.go +++ /dev/null @@ -1,85 +0,0 @@ -package jwt - -import ( - "errors" - - "crypto" - "crypto/ed25519" - "crypto/rand" -) - -var ( - ErrEd25519Verification = errors.New("ed25519: verification error") -) - -// SigningMethodEd25519 implements the EdDSA family. -// Expects ed25519.PrivateKey for signing and ed25519.PublicKey for verification -type SigningMethodEd25519 struct{} - -// Specific instance for EdDSA -var ( - SigningMethodEdDSA *SigningMethodEd25519 -) - -func init() { - SigningMethodEdDSA = &SigningMethodEd25519{} - RegisterSigningMethod(SigningMethodEdDSA.Alg(), func() SigningMethod { - return SigningMethodEdDSA - }) -} - -func (m *SigningMethodEd25519) Alg() string { - return "EdDSA" -} - -// Verify implements token verification for the SigningMethod. -// For this verify method, key must be an ed25519.PublicKey -func (m *SigningMethodEd25519) Verify(signingString, signature string, key interface{}) error { - var err error - var ed25519Key ed25519.PublicKey - var ok bool - - if ed25519Key, ok = key.(ed25519.PublicKey); !ok { - return ErrInvalidKeyType - } - - if len(ed25519Key) != ed25519.PublicKeySize { - return ErrInvalidKey - } - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - // Verify the signature - if !ed25519.Verify(ed25519Key, []byte(signingString), sig) { - return ErrEd25519Verification - } - - return nil -} - -// Sign implements token signing for the SigningMethod. -// For this signing method, key must be an ed25519.PrivateKey -func (m *SigningMethodEd25519) Sign(signingString string, key interface{}) (string, error) { - var ed25519Key crypto.Signer - var ok bool - - if ed25519Key, ok = key.(crypto.Signer); !ok { - return "", ErrInvalidKeyType - } - - if _, ok := ed25519Key.Public().(ed25519.PublicKey); !ok { - return "", ErrInvalidKey - } - - // Sign the string and return the encoded result - // ed25519 performs a two-pass hash as part of its algorithm. Therefore, we need to pass a non-prehashed message into the Sign function, as indicated by crypto.Hash(0) - sig, err := ed25519Key.Sign(rand.Reader, []byte(signingString), crypto.Hash(0)) - if err != nil { - return "", err - } - return EncodeSegment(sig), nil -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go b/backend/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go deleted file mode 100644 index cdb5e68e..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go +++ /dev/null @@ -1,64 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/ed25519" - "crypto/x509" - "encoding/pem" - "errors" -) - -var ( - ErrNotEdPrivateKey = errors.New("key is not a valid Ed25519 private key") - ErrNotEdPublicKey = errors.New("key is not a valid Ed25519 public key") -) - -// ParseEdPrivateKeyFromPEM parses a PEM-encoded Edwards curve private key -func ParseEdPrivateKeyFromPEM(key []byte) (crypto.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { - return nil, err - } - - var pkey ed25519.PrivateKey - var ok bool - if pkey, ok = parsedKey.(ed25519.PrivateKey); !ok { - return nil, ErrNotEdPrivateKey - } - - return pkey, nil -} - -// ParseEdPublicKeyFromPEM parses a PEM-encoded Edwards curve public key -func ParseEdPublicKeyFromPEM(key []byte) (crypto.PublicKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { - return nil, err - } - - var pkey ed25519.PublicKey - var ok bool - if pkey, ok = parsedKey.(ed25519.PublicKey); !ok { - return nil, ErrNotEdPublicKey - } - - return pkey, nil -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/errors.go b/backend/vendor/github.com/golang-jwt/jwt/v4/errors.go deleted file mode 100644 index 10ac8835..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/errors.go +++ /dev/null @@ -1,112 +0,0 @@ -package jwt - -import ( - "errors" -) - -// Error constants -var ( - ErrInvalidKey = errors.New("key is invalid") - ErrInvalidKeyType = errors.New("key is of invalid type") - ErrHashUnavailable = errors.New("the requested hash function is unavailable") - - ErrTokenMalformed = errors.New("token is malformed") - ErrTokenUnverifiable = errors.New("token is unverifiable") - ErrTokenSignatureInvalid = errors.New("token signature is invalid") - - ErrTokenInvalidAudience = errors.New("token has invalid audience") - ErrTokenExpired = errors.New("token is expired") - ErrTokenUsedBeforeIssued = errors.New("token used before issued") - ErrTokenInvalidIssuer = errors.New("token has invalid issuer") - ErrTokenNotValidYet = errors.New("token is not valid yet") - ErrTokenInvalidId = errors.New("token has invalid id") - ErrTokenInvalidClaims = errors.New("token has invalid claims") -) - -// The errors that might occur when parsing and validating a token -const ( - ValidationErrorMalformed uint32 = 1 << iota // Token is malformed - ValidationErrorUnverifiable // Token could not be verified because of signing problems - ValidationErrorSignatureInvalid // Signature validation failed - - // Standard Claim validation errors - ValidationErrorAudience // AUD validation failed - ValidationErrorExpired // EXP validation failed - ValidationErrorIssuedAt // IAT validation failed - ValidationErrorIssuer // ISS validation failed - ValidationErrorNotValidYet // NBF validation failed - ValidationErrorId // JTI validation failed - ValidationErrorClaimsInvalid // Generic claims validation error -) - -// NewValidationError is a helper for constructing a ValidationError with a string error message -func NewValidationError(errorText string, errorFlags uint32) *ValidationError { - return &ValidationError{ - text: errorText, - Errors: errorFlags, - } -} - -// ValidationError represents an error from Parse if token is not valid -type ValidationError struct { - Inner error // stores the error returned by external dependencies, i.e.: KeyFunc - Errors uint32 // bitfield. see ValidationError... constants - text string // errors that do not have a valid error just have text -} - -// Error is the implementation of the err interface. -func (e ValidationError) Error() string { - if e.Inner != nil { - return e.Inner.Error() - } else if e.text != "" { - return e.text - } else { - return "token is invalid" - } -} - -// Unwrap gives errors.Is and errors.As access to the inner error. -func (e *ValidationError) Unwrap() error { - return e.Inner -} - -// No errors -func (e *ValidationError) valid() bool { - return e.Errors == 0 -} - -// Is checks if this ValidationError is of the supplied error. We are first checking for the exact error message -// by comparing the inner error message. If that fails, we compare using the error flags. This way we can use -// custom error messages (mainly for backwards compatability) and still leverage errors.Is using the global error variables. -func (e *ValidationError) Is(err error) bool { - // Check, if our inner error is a direct match - if errors.Is(errors.Unwrap(e), err) { - return true - } - - // Otherwise, we need to match using our error flags - switch err { - case ErrTokenMalformed: - return e.Errors&ValidationErrorMalformed != 0 - case ErrTokenUnverifiable: - return e.Errors&ValidationErrorUnverifiable != 0 - case ErrTokenSignatureInvalid: - return e.Errors&ValidationErrorSignatureInvalid != 0 - case ErrTokenInvalidAudience: - return e.Errors&ValidationErrorAudience != 0 - case ErrTokenExpired: - return e.Errors&ValidationErrorExpired != 0 - case ErrTokenUsedBeforeIssued: - return e.Errors&ValidationErrorIssuedAt != 0 - case ErrTokenInvalidIssuer: - return e.Errors&ValidationErrorIssuer != 0 - case ErrTokenNotValidYet: - return e.Errors&ValidationErrorNotValidYet != 0 - case ErrTokenInvalidId: - return e.Errors&ValidationErrorId != 0 - case ErrTokenInvalidClaims: - return e.Errors&ValidationErrorClaimsInvalid != 0 - } - - return false -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/hmac.go b/backend/vendor/github.com/golang-jwt/jwt/v4/hmac.go deleted file mode 100644 index 011f68a2..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/hmac.go +++ /dev/null @@ -1,95 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/hmac" - "errors" -) - -// SigningMethodHMAC implements the HMAC-SHA family of signing methods. -// Expects key type of []byte for both signing and validation -type SigningMethodHMAC struct { - Name string - Hash crypto.Hash -} - -// Specific instances for HS256 and company -var ( - SigningMethodHS256 *SigningMethodHMAC - SigningMethodHS384 *SigningMethodHMAC - SigningMethodHS512 *SigningMethodHMAC - ErrSignatureInvalid = errors.New("signature is invalid") -) - -func init() { - // HS256 - SigningMethodHS256 = &SigningMethodHMAC{"HS256", crypto.SHA256} - RegisterSigningMethod(SigningMethodHS256.Alg(), func() SigningMethod { - return SigningMethodHS256 - }) - - // HS384 - SigningMethodHS384 = &SigningMethodHMAC{"HS384", crypto.SHA384} - RegisterSigningMethod(SigningMethodHS384.Alg(), func() SigningMethod { - return SigningMethodHS384 - }) - - // HS512 - SigningMethodHS512 = &SigningMethodHMAC{"HS512", crypto.SHA512} - RegisterSigningMethod(SigningMethodHS512.Alg(), func() SigningMethod { - return SigningMethodHS512 - }) -} - -func (m *SigningMethodHMAC) Alg() string { - return m.Name -} - -// Verify implements token verification for the SigningMethod. Returns nil if the signature is valid. -func (m *SigningMethodHMAC) Verify(signingString, signature string, key interface{}) error { - // Verify the key is the right type - keyBytes, ok := key.([]byte) - if !ok { - return ErrInvalidKeyType - } - - // Decode signature, for comparison - sig, err := DecodeSegment(signature) - if err != nil { - return err - } - - // Can we use the specified hashing method? - if !m.Hash.Available() { - return ErrHashUnavailable - } - - // This signing method is symmetric, so we validate the signature - // by reproducing the signature from the signing string and key, then - // comparing that against the provided signature. - hasher := hmac.New(m.Hash.New, keyBytes) - hasher.Write([]byte(signingString)) - if !hmac.Equal(sig, hasher.Sum(nil)) { - return ErrSignatureInvalid - } - - // No validation errors. Signature is good. - return nil -} - -// Sign implements token signing for the SigningMethod. -// Key must be []byte -func (m *SigningMethodHMAC) Sign(signingString string, key interface{}) (string, error) { - if keyBytes, ok := key.([]byte); ok { - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := hmac.New(m.Hash.New, keyBytes) - hasher.Write([]byte(signingString)) - - return EncodeSegment(hasher.Sum(nil)), nil - } - - return "", ErrInvalidKeyType -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/map_claims.go b/backend/vendor/github.com/golang-jwt/jwt/v4/map_claims.go deleted file mode 100644 index 2700d64a..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/map_claims.go +++ /dev/null @@ -1,151 +0,0 @@ -package jwt - -import ( - "encoding/json" - "errors" - "time" - // "fmt" -) - -// MapClaims is a claims type that uses the map[string]interface{} for JSON decoding. -// This is the default claims type if you don't supply one -type MapClaims map[string]interface{} - -// VerifyAudience Compares the aud claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyAudience(cmp string, req bool) bool { - var aud []string - switch v := m["aud"].(type) { - case string: - aud = append(aud, v) - case []string: - aud = v - case []interface{}: - for _, a := range v { - vs, ok := a.(string) - if !ok { - return false - } - aud = append(aud, vs) - } - } - return verifyAud(aud, cmp, req) -} - -// VerifyExpiresAt compares the exp claim against cmp (cmp <= exp). -// If req is false, it will return true, if exp is unset. -func (m MapClaims) VerifyExpiresAt(cmp int64, req bool) bool { - cmpTime := time.Unix(cmp, 0) - - v, ok := m["exp"] - if !ok { - return !req - } - - switch exp := v.(type) { - case float64: - if exp == 0 { - return verifyExp(nil, cmpTime, req) - } - - return verifyExp(&newNumericDateFromSeconds(exp).Time, cmpTime, req) - case json.Number: - v, _ := exp.Float64() - - return verifyExp(&newNumericDateFromSeconds(v).Time, cmpTime, req) - } - - return false -} - -// VerifyIssuedAt compares the exp claim against cmp (cmp >= iat). -// If req is false, it will return true, if iat is unset. -func (m MapClaims) VerifyIssuedAt(cmp int64, req bool) bool { - cmpTime := time.Unix(cmp, 0) - - v, ok := m["iat"] - if !ok { - return !req - } - - switch iat := v.(type) { - case float64: - if iat == 0 { - return verifyIat(nil, cmpTime, req) - } - - return verifyIat(&newNumericDateFromSeconds(iat).Time, cmpTime, req) - case json.Number: - v, _ := iat.Float64() - - return verifyIat(&newNumericDateFromSeconds(v).Time, cmpTime, req) - } - - return false -} - -// VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). -// If req is false, it will return true, if nbf is unset. -func (m MapClaims) VerifyNotBefore(cmp int64, req bool) bool { - cmpTime := time.Unix(cmp, 0) - - v, ok := m["nbf"] - if !ok { - return !req - } - - switch nbf := v.(type) { - case float64: - if nbf == 0 { - return verifyNbf(nil, cmpTime, req) - } - - return verifyNbf(&newNumericDateFromSeconds(nbf).Time, cmpTime, req) - case json.Number: - v, _ := nbf.Float64() - - return verifyNbf(&newNumericDateFromSeconds(v).Time, cmpTime, req) - } - - return false -} - -// VerifyIssuer compares the iss claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyIssuer(cmp string, req bool) bool { - iss, _ := m["iss"].(string) - return verifyIss(iss, cmp, req) -} - -// Valid validates time based claims "exp, iat, nbf". -// There is no accounting for clock skew. -// As well, if any of the above claims are not in the token, it will still -// be considered a valid claim. -func (m MapClaims) Valid() error { - vErr := new(ValidationError) - now := TimeFunc().Unix() - - if !m.VerifyExpiresAt(now, false) { - // TODO(oxisto): this should be replaced with ErrTokenExpired - vErr.Inner = errors.New("Token is expired") - vErr.Errors |= ValidationErrorExpired - } - - if !m.VerifyIssuedAt(now, false) { - // TODO(oxisto): this should be replaced with ErrTokenUsedBeforeIssued - vErr.Inner = errors.New("Token used before issued") - vErr.Errors |= ValidationErrorIssuedAt - } - - if !m.VerifyNotBefore(now, false) { - // TODO(oxisto): this should be replaced with ErrTokenNotValidYet - vErr.Inner = errors.New("Token is not valid yet") - vErr.Errors |= ValidationErrorNotValidYet - } - - if vErr.valid() { - return nil - } - - return vErr -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/none.go b/backend/vendor/github.com/golang-jwt/jwt/v4/none.go deleted file mode 100644 index f19835d2..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/none.go +++ /dev/null @@ -1,52 +0,0 @@ -package jwt - -// SigningMethodNone implements the none signing method. This is required by the spec -// but you probably should never use it. -var SigningMethodNone *signingMethodNone - -const UnsafeAllowNoneSignatureType unsafeNoneMagicConstant = "none signing method allowed" - -var NoneSignatureTypeDisallowedError error - -type signingMethodNone struct{} -type unsafeNoneMagicConstant string - -func init() { - SigningMethodNone = &signingMethodNone{} - NoneSignatureTypeDisallowedError = NewValidationError("'none' signature type is not allowed", ValidationErrorSignatureInvalid) - - RegisterSigningMethod(SigningMethodNone.Alg(), func() SigningMethod { - return SigningMethodNone - }) -} - -func (m *signingMethodNone) Alg() string { - return "none" -} - -// Only allow 'none' alg type if UnsafeAllowNoneSignatureType is specified as the key -func (m *signingMethodNone) Verify(signingString, signature string, key interface{}) (err error) { - // Key must be UnsafeAllowNoneSignatureType to prevent accidentally - // accepting 'none' signing method - if _, ok := key.(unsafeNoneMagicConstant); !ok { - return NoneSignatureTypeDisallowedError - } - // If signing method is none, signature must be an empty string - if signature != "" { - return NewValidationError( - "'none' signing method with non-empty signature", - ValidationErrorSignatureInvalid, - ) - } - - // Accept 'none' signing method. - return nil -} - -// Only allow 'none' signing if UnsafeAllowNoneSignatureType is specified as the key -func (m *signingMethodNone) Sign(signingString string, key interface{}) (string, error) { - if _, ok := key.(unsafeNoneMagicConstant); ok { - return "", nil - } - return "", NoneSignatureTypeDisallowedError -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/parser.go b/backend/vendor/github.com/golang-jwt/jwt/v4/parser.go deleted file mode 100644 index c0a6f692..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/parser.go +++ /dev/null @@ -1,177 +0,0 @@ -package jwt - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" -) - -type Parser struct { - // If populated, only these methods will be considered valid. - // - // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. - ValidMethods []string - - // Use JSON Number format in JSON decoder. - // - // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. - UseJSONNumber bool - - // Skip claims validation during token parsing. - // - // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. - SkipClaimsValidation bool -} - -// NewParser creates a new Parser with the specified options -func NewParser(options ...ParserOption) *Parser { - p := &Parser{} - - // loop through our parsing options and apply them - for _, option := range options { - option(p) - } - - return p -} - -// Parse parses, validates, verifies the signature and returns the parsed token. -// keyFunc will receive the parsed token and should return the key for validating. -func (p *Parser) Parse(tokenString string, keyFunc Keyfunc) (*Token, error) { - return p.ParseWithClaims(tokenString, MapClaims{}, keyFunc) -} - -// ParseWithClaims parses, validates, and verifies like Parse, but supplies a default object implementing the Claims -// interface. This provides default values which can be overridden and allows a caller to use their own type, rather -// than the default MapClaims implementation of Claims. -// -// Note: If you provide a custom claim implementation that embeds one of the standard claims (such as RegisteredClaims), -// make sure that a) you either embed a non-pointer version of the claims or b) if you are using a pointer, allocate the -// proper memory for it before passing in the overall claims, otherwise you might run into a panic. -func (p *Parser) ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) { - token, parts, err := p.ParseUnverified(tokenString, claims) - if err != nil { - return token, err - } - - // Verify signing method is in the required set - if p.ValidMethods != nil { - var signingMethodValid = false - var alg = token.Method.Alg() - for _, m := range p.ValidMethods { - if m == alg { - signingMethodValid = true - break - } - } - if !signingMethodValid { - // signing method is not in the listed set - return token, NewValidationError(fmt.Sprintf("signing method %v is invalid", alg), ValidationErrorSignatureInvalid) - } - } - - // Lookup key - var key interface{} - if keyFunc == nil { - // keyFunc was not provided. short circuiting validation - return token, NewValidationError("no Keyfunc was provided.", ValidationErrorUnverifiable) - } - if key, err = keyFunc(token); err != nil { - // keyFunc returned an error - if ve, ok := err.(*ValidationError); ok { - return token, ve - } - return token, &ValidationError{Inner: err, Errors: ValidationErrorUnverifiable} - } - - vErr := &ValidationError{} - - // Validate Claims - if !p.SkipClaimsValidation { - if err := token.Claims.Valid(); err != nil { - - // If the Claims Valid returned an error, check if it is a validation error, - // If it was another error type, create a ValidationError with a generic ClaimsInvalid flag set - if e, ok := err.(*ValidationError); !ok { - vErr = &ValidationError{Inner: err, Errors: ValidationErrorClaimsInvalid} - } else { - vErr = e - } - } - } - - // Perform validation - token.Signature = parts[2] - if err = token.Method.Verify(strings.Join(parts[0:2], "."), token.Signature, key); err != nil { - vErr.Inner = err - vErr.Errors |= ValidationErrorSignatureInvalid - } - - if vErr.valid() { - token.Valid = true - return token, nil - } - - return token, vErr -} - -// ParseUnverified parses the token but doesn't validate the signature. -// -// WARNING: Don't use this method unless you know what you're doing. -// -// It's only ever useful in cases where you know the signature is valid (because it has -// been checked previously in the stack) and you want to extract values from it. -func (p *Parser) ParseUnverified(tokenString string, claims Claims) (token *Token, parts []string, err error) { - parts = strings.Split(tokenString, ".") - if len(parts) != 3 { - return nil, parts, NewValidationError("token contains an invalid number of segments", ValidationErrorMalformed) - } - - token = &Token{Raw: tokenString} - - // parse Header - var headerBytes []byte - if headerBytes, err = DecodeSegment(parts[0]); err != nil { - if strings.HasPrefix(strings.ToLower(tokenString), "bearer ") { - return token, parts, NewValidationError("tokenstring should not contain 'bearer '", ValidationErrorMalformed) - } - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - if err = json.Unmarshal(headerBytes, &token.Header); err != nil { - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - - // parse Claims - var claimBytes []byte - token.Claims = claims - - if claimBytes, err = DecodeSegment(parts[1]); err != nil { - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - dec := json.NewDecoder(bytes.NewBuffer(claimBytes)) - if p.UseJSONNumber { - dec.UseNumber() - } - // JSON Decode. Special case for map type to avoid weird pointer behavior - if c, ok := token.Claims.(MapClaims); ok { - err = dec.Decode(&c) - } else { - err = dec.Decode(&claims) - } - // Handle decode error - if err != nil { - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - - // Lookup signature method - if method, ok := token.Header["alg"].(string); ok { - if token.Method = GetSigningMethod(method); token.Method == nil { - return token, parts, NewValidationError("signing method (alg) is unavailable.", ValidationErrorUnverifiable) - } - } else { - return token, parts, NewValidationError("signing method (alg) is unspecified.", ValidationErrorUnverifiable) - } - - return token, parts, nil -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/parser_option.go b/backend/vendor/github.com/golang-jwt/jwt/v4/parser_option.go deleted file mode 100644 index 6ea6f952..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/parser_option.go +++ /dev/null @@ -1,29 +0,0 @@ -package jwt - -// ParserOption is used to implement functional-style options that modify the behavior of the parser. To add -// new options, just create a function (ideally beginning with With or Without) that returns an anonymous function that -// takes a *Parser type as input and manipulates its configuration accordingly. -type ParserOption func(*Parser) - -// WithValidMethods is an option to supply algorithm methods that the parser will check. Only those methods will be considered valid. -// It is heavily encouraged to use this option in order to prevent attacks such as https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/. -func WithValidMethods(methods []string) ParserOption { - return func(p *Parser) { - p.ValidMethods = methods - } -} - -// WithJSONNumber is an option to configure the underlying JSON parser with UseNumber -func WithJSONNumber() ParserOption { - return func(p *Parser) { - p.UseJSONNumber = true - } -} - -// WithoutClaimsValidation is an option to disable claims validation. This option should only be used if you exactly know -// what you are doing. -func WithoutClaimsValidation() ParserOption { - return func(p *Parser) { - p.SkipClaimsValidation = true - } -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/request/doc.go b/backend/vendor/github.com/golang-jwt/jwt/v4/request/doc.go deleted file mode 100644 index c01069c9..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/request/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Utility package for extracting JWT tokens from -// HTTP requests. -// -// The main function is ParseFromRequest and it's WithClaims variant. -// See examples for how to use the various Extractor implementations -// or roll your own. -package request diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/request/extractor.go b/backend/vendor/github.com/golang-jwt/jwt/v4/request/extractor.go deleted file mode 100644 index 57de8b77..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/request/extractor.go +++ /dev/null @@ -1,97 +0,0 @@ -package request - -import ( - "errors" - "net/http" - "strings" -) - -// Errors -var ( - ErrNoTokenInRequest = errors.New("no token present in request") -) - -// Extractor is an interface for extracting a token from an HTTP request. -// The ExtractToken method should return a token string or an error. -// If no token is present, you must return ErrNoTokenInRequest. -type Extractor interface { - ExtractToken(*http.Request) (string, error) -} - -// HeaderExtractor is an extractor for finding a token in a header. -// Looks at each specified header in order until there's a match -type HeaderExtractor []string - -func (e HeaderExtractor) ExtractToken(req *http.Request) (string, error) { - // loop over header names and return the first one that contains data - for _, header := range e { - if ah := req.Header.Get(header); ah != "" { - return ah, nil - } - } - return "", ErrNoTokenInRequest -} - -// ArgumentExtractor extracts a token from request arguments. This includes a POSTed form or -// GET URL arguments. Argument names are tried in order until there's a match. -// This extractor calls `ParseMultipartForm` on the request -type ArgumentExtractor []string - -func (e ArgumentExtractor) ExtractToken(req *http.Request) (string, error) { - // Make sure form is parsed - req.ParseMultipartForm(10e6) - - // loop over arg names and return the first one that contains data - for _, arg := range e { - if ah := req.Form.Get(arg); ah != "" { - return ah, nil - } - } - - return "", ErrNoTokenInRequest -} - -// MultiExtractor tries Extractors in order until one returns a token string or an error occurs -type MultiExtractor []Extractor - -func (e MultiExtractor) ExtractToken(req *http.Request) (string, error) { - // loop over header names and return the first one that contains data - for _, extractor := range e { - if tok, err := extractor.ExtractToken(req); tok != "" { - return tok, nil - } else if !errors.Is(err, ErrNoTokenInRequest) { - return "", err - } - } - return "", ErrNoTokenInRequest -} - -// PostExtractionFilter wraps an Extractor in this to post-process the value before it's handed off. -// See AuthorizationHeaderExtractor for an example -type PostExtractionFilter struct { - Extractor - Filter func(string) (string, error) -} - -func (e *PostExtractionFilter) ExtractToken(req *http.Request) (string, error) { - if tok, err := e.Extractor.ExtractToken(req); tok != "" { - return e.Filter(tok) - } else { - return "", err - } -} - -// BearerExtractor extracts a token from the Authorization header. -// The header is expected to match the format "Bearer XX", where "XX" is the -// JWT token. -type BearerExtractor struct{} - -func (e BearerExtractor) ExtractToken(req *http.Request) (string, error) { - tokenHeader := req.Header.Get("Authorization") - // The usual convention is for "Bearer" to be title-cased. However, there's no - // strict rule around this, and it's best to follow the robustness principle here. - if tokenHeader == "" || !strings.HasPrefix(strings.ToLower(tokenHeader), "bearer ") { - return "", ErrNoTokenInRequest - } - return tokenHeader[7:], nil -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/request/oauth2.go b/backend/vendor/github.com/golang-jwt/jwt/v4/request/oauth2.go deleted file mode 100644 index 5860a53f..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/request/oauth2.go +++ /dev/null @@ -1,28 +0,0 @@ -package request - -import ( - "strings" -) - -// Strips 'Bearer ' prefix from bearer token string -func stripBearerPrefixFromTokenString(tok string) (string, error) { - // Should be a bearer token - if len(tok) > 6 && strings.ToUpper(tok[0:7]) == "BEARER " { - return tok[7:], nil - } - return tok, nil -} - -// AuthorizationHeaderExtractor extracts a bearer token from Authorization header -// Uses PostExtractionFilter to strip "Bearer " prefix from header -var AuthorizationHeaderExtractor = &PostExtractionFilter{ - HeaderExtractor{"Authorization"}, - stripBearerPrefixFromTokenString, -} - -// OAuth2Extractor is an Extractor for OAuth2 access tokens. Looks in 'Authorization' -// header then 'access_token' argument for a token. -var OAuth2Extractor = &MultiExtractor{ - AuthorizationHeaderExtractor, - ArgumentExtractor{"access_token"}, -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/request/request.go b/backend/vendor/github.com/golang-jwt/jwt/v4/request/request.go deleted file mode 100644 index 79f53f4e..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/request/request.go +++ /dev/null @@ -1,70 +0,0 @@ -package request - -import ( - "net/http" - - "github.com/golang-jwt/jwt/v4" -) - -// ParseFromRequest extracts and parses a JWT token from an HTTP request. -// This behaves the same as Parse, but accepts a request and an extractor -// instead of a token string. The Extractor interface allows you to define -// the logic for extracting a token. Several useful implementations are provided. -// -// You can provide options to modify parsing behavior -func ParseFromRequest(req *http.Request, extractor Extractor, keyFunc jwt.Keyfunc, options ...ParseFromRequestOption) (token *jwt.Token, err error) { - // Create basic parser struct - p := &fromRequestParser{req, extractor, nil, nil} - - // Handle options - for _, option := range options { - option(p) - } - - // Set defaults - if p.claims == nil { - p.claims = jwt.MapClaims{} - } - if p.parser == nil { - p.parser = &jwt.Parser{} - } - - // perform extract - tokenString, err := p.extractor.ExtractToken(req) - if err != nil { - return nil, err - } - - // perform parse - return p.parser.ParseWithClaims(tokenString, p.claims, keyFunc) -} - -// ParseFromRequestWithClaims is an alias for ParseFromRequest but with custom Claims type. -// -// Deprecated: use ParseFromRequest and the WithClaims option -func ParseFromRequestWithClaims(req *http.Request, extractor Extractor, claims jwt.Claims, keyFunc jwt.Keyfunc) (token *jwt.Token, err error) { - return ParseFromRequest(req, extractor, keyFunc, WithClaims(claims)) -} - -type fromRequestParser struct { - req *http.Request - extractor Extractor - claims jwt.Claims - parser *jwt.Parser -} - -type ParseFromRequestOption func(*fromRequestParser) - -// WithClaims parses with custom claims -func WithClaims(claims jwt.Claims) ParseFromRequestOption { - return func(p *fromRequestParser) { - p.claims = claims - } -} - -// WithParser parses using a custom parser -func WithParser(parser *jwt.Parser) ParseFromRequestOption { - return func(p *fromRequestParser) { - p.parser = parser - } -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/rsa.go b/backend/vendor/github.com/golang-jwt/jwt/v4/rsa.go deleted file mode 100644 index b910b19c..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/rsa.go +++ /dev/null @@ -1,101 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/rand" - "crypto/rsa" -) - -// SigningMethodRSA implements the RSA family of signing methods. -// Expects *rsa.PrivateKey for signing and *rsa.PublicKey for validation -type SigningMethodRSA struct { - Name string - Hash crypto.Hash -} - -// Specific instances for RS256 and company -var ( - SigningMethodRS256 *SigningMethodRSA - SigningMethodRS384 *SigningMethodRSA - SigningMethodRS512 *SigningMethodRSA -) - -func init() { - // RS256 - SigningMethodRS256 = &SigningMethodRSA{"RS256", crypto.SHA256} - RegisterSigningMethod(SigningMethodRS256.Alg(), func() SigningMethod { - return SigningMethodRS256 - }) - - // RS384 - SigningMethodRS384 = &SigningMethodRSA{"RS384", crypto.SHA384} - RegisterSigningMethod(SigningMethodRS384.Alg(), func() SigningMethod { - return SigningMethodRS384 - }) - - // RS512 - SigningMethodRS512 = &SigningMethodRSA{"RS512", crypto.SHA512} - RegisterSigningMethod(SigningMethodRS512.Alg(), func() SigningMethod { - return SigningMethodRS512 - }) -} - -func (m *SigningMethodRSA) Alg() string { - return m.Name -} - -// Verify implements token verification for the SigningMethod -// For this signing method, must be an *rsa.PublicKey structure. -func (m *SigningMethodRSA) Verify(signingString, signature string, key interface{}) error { - var err error - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - var rsaKey *rsa.PublicKey - var ok bool - - if rsaKey, ok = key.(*rsa.PublicKey); !ok { - return ErrInvalidKeyType - } - - // Create hasher - if !m.Hash.Available() { - return ErrHashUnavailable - } - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Verify the signature - return rsa.VerifyPKCS1v15(rsaKey, m.Hash, hasher.Sum(nil), sig) -} - -// Sign implements token signing for the SigningMethod -// For this signing method, must be an *rsa.PrivateKey structure. -func (m *SigningMethodRSA) Sign(signingString string, key interface{}) (string, error) { - var rsaKey *rsa.PrivateKey - var ok bool - - // Validate type of key - if rsaKey, ok = key.(*rsa.PrivateKey); !ok { - return "", ErrInvalidKey - } - - // Create the hasher - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Sign the string and return the encoded bytes - if sigBytes, err := rsa.SignPKCS1v15(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil)); err == nil { - return EncodeSegment(sigBytes), nil - } else { - return "", err - } -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go b/backend/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go deleted file mode 100644 index 4fd6f9e6..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go +++ /dev/null @@ -1,143 +0,0 @@ -//go:build go1.4 -// +build go1.4 - -package jwt - -import ( - "crypto" - "crypto/rand" - "crypto/rsa" -) - -// SigningMethodRSAPSS implements the RSAPSS family of signing methods signing methods -type SigningMethodRSAPSS struct { - *SigningMethodRSA - Options *rsa.PSSOptions - // VerifyOptions is optional. If set overrides Options for rsa.VerifyPPS. - // Used to accept tokens signed with rsa.PSSSaltLengthAuto, what doesn't follow - // https://tools.ietf.org/html/rfc7518#section-3.5 but was used previously. - // See https://github.com/dgrijalva/jwt-go/issues/285#issuecomment-437451244 for details. - VerifyOptions *rsa.PSSOptions -} - -// Specific instances for RS/PS and company. -var ( - SigningMethodPS256 *SigningMethodRSAPSS - SigningMethodPS384 *SigningMethodRSAPSS - SigningMethodPS512 *SigningMethodRSAPSS -) - -func init() { - // PS256 - SigningMethodPS256 = &SigningMethodRSAPSS{ - SigningMethodRSA: &SigningMethodRSA{ - Name: "PS256", - Hash: crypto.SHA256, - }, - Options: &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthEqualsHash, - }, - VerifyOptions: &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthAuto, - }, - } - RegisterSigningMethod(SigningMethodPS256.Alg(), func() SigningMethod { - return SigningMethodPS256 - }) - - // PS384 - SigningMethodPS384 = &SigningMethodRSAPSS{ - SigningMethodRSA: &SigningMethodRSA{ - Name: "PS384", - Hash: crypto.SHA384, - }, - Options: &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthEqualsHash, - }, - VerifyOptions: &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthAuto, - }, - } - RegisterSigningMethod(SigningMethodPS384.Alg(), func() SigningMethod { - return SigningMethodPS384 - }) - - // PS512 - SigningMethodPS512 = &SigningMethodRSAPSS{ - SigningMethodRSA: &SigningMethodRSA{ - Name: "PS512", - Hash: crypto.SHA512, - }, - Options: &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthEqualsHash, - }, - VerifyOptions: &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthAuto, - }, - } - RegisterSigningMethod(SigningMethodPS512.Alg(), func() SigningMethod { - return SigningMethodPS512 - }) -} - -// Verify implements token verification for the SigningMethod. -// For this verify method, key must be an rsa.PublicKey struct -func (m *SigningMethodRSAPSS) Verify(signingString, signature string, key interface{}) error { - var err error - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - var rsaKey *rsa.PublicKey - switch k := key.(type) { - case *rsa.PublicKey: - rsaKey = k - default: - return ErrInvalidKey - } - - // Create hasher - if !m.Hash.Available() { - return ErrHashUnavailable - } - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - opts := m.Options - if m.VerifyOptions != nil { - opts = m.VerifyOptions - } - - return rsa.VerifyPSS(rsaKey, m.Hash, hasher.Sum(nil), sig, opts) -} - -// Sign implements token signing for the SigningMethod. -// For this signing method, key must be an rsa.PrivateKey struct -func (m *SigningMethodRSAPSS) Sign(signingString string, key interface{}) (string, error) { - var rsaKey *rsa.PrivateKey - - switch k := key.(type) { - case *rsa.PrivateKey: - rsaKey = k - default: - return "", ErrInvalidKeyType - } - - // Create the hasher - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Sign the string and return the encoded bytes - if sigBytes, err := rsa.SignPSS(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil), m.Options); err == nil { - return EncodeSegment(sigBytes), nil - } else { - return "", err - } -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go b/backend/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go deleted file mode 100644 index 1966c450..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go +++ /dev/null @@ -1,105 +0,0 @@ -package jwt - -import ( - "crypto/rsa" - "crypto/x509" - "encoding/pem" - "errors" -) - -var ( - ErrKeyMustBePEMEncoded = errors.New("invalid key: Key must be a PEM encoded PKCS1 or PKCS8 key") - ErrNotRSAPrivateKey = errors.New("key is not a valid RSA private key") - ErrNotRSAPublicKey = errors.New("key is not a valid RSA public key") -) - -// ParseRSAPrivateKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 private key -func ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - var parsedKey interface{} - if parsedKey, err = x509.ParsePKCS1PrivateKey(block.Bytes); err != nil { - if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { - return nil, err - } - } - - var pkey *rsa.PrivateKey - var ok bool - if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { - return nil, ErrNotRSAPrivateKey - } - - return pkey, nil -} - -// ParseRSAPrivateKeyFromPEMWithPassword parses a PEM encoded PKCS1 or PKCS8 private key protected with password -// -// Deprecated: This function is deprecated and should not be used anymore. It uses the deprecated x509.DecryptPEMBlock -// function, which was deprecated since RFC 1423 is regarded insecure by design. Unfortunately, there is no alternative -// in the Go standard library for now. See https://github.com/golang/go/issues/8860. -func ParseRSAPrivateKeyFromPEMWithPassword(key []byte, password string) (*rsa.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - var parsedKey interface{} - - var blockDecrypted []byte - if blockDecrypted, err = x509.DecryptPEMBlock(block, []byte(password)); err != nil { - return nil, err - } - - if parsedKey, err = x509.ParsePKCS1PrivateKey(blockDecrypted); err != nil { - if parsedKey, err = x509.ParsePKCS8PrivateKey(blockDecrypted); err != nil { - return nil, err - } - } - - var pkey *rsa.PrivateKey - var ok bool - if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { - return nil, ErrNotRSAPrivateKey - } - - return pkey, nil -} - -// ParseRSAPublicKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 public key -func ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { - if cert, err := x509.ParseCertificate(block.Bytes); err == nil { - parsedKey = cert.PublicKey - } else { - return nil, err - } - } - - var pkey *rsa.PublicKey - var ok bool - if pkey, ok = parsedKey.(*rsa.PublicKey); !ok { - return nil, ErrNotRSAPublicKey - } - - return pkey, nil -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/signing_method.go b/backend/vendor/github.com/golang-jwt/jwt/v4/signing_method.go deleted file mode 100644 index 241ae9c6..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/signing_method.go +++ /dev/null @@ -1,46 +0,0 @@ -package jwt - -import ( - "sync" -) - -var signingMethods = map[string]func() SigningMethod{} -var signingMethodLock = new(sync.RWMutex) - -// SigningMethod can be used add new methods for signing or verifying tokens. -type SigningMethod interface { - Verify(signingString, signature string, key interface{}) error // Returns nil if signature is valid - Sign(signingString string, key interface{}) (string, error) // Returns encoded signature or error - Alg() string // returns the alg identifier for this method (example: 'HS256') -} - -// RegisterSigningMethod registers the "alg" name and a factory function for signing method. -// This is typically done during init() in the method's implementation -func RegisterSigningMethod(alg string, f func() SigningMethod) { - signingMethodLock.Lock() - defer signingMethodLock.Unlock() - - signingMethods[alg] = f -} - -// GetSigningMethod retrieves a signing method from an "alg" string -func GetSigningMethod(alg string) (method SigningMethod) { - signingMethodLock.RLock() - defer signingMethodLock.RUnlock() - - if methodF, ok := signingMethods[alg]; ok { - method = methodF() - } - return -} - -// GetAlgorithms returns a list of registered "alg" names -func GetAlgorithms() (algs []string) { - signingMethodLock.RLock() - defer signingMethodLock.RUnlock() - - for alg := range signingMethods { - algs = append(algs, alg) - } - return -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf b/backend/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf deleted file mode 100644 index 53745d51..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf +++ /dev/null @@ -1 +0,0 @@ -checks = ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1023"] diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/token.go b/backend/vendor/github.com/golang-jwt/jwt/v4/token.go deleted file mode 100644 index 786b275c..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/token.go +++ /dev/null @@ -1,143 +0,0 @@ -package jwt - -import ( - "encoding/base64" - "encoding/json" - "strings" - "time" -) - -// DecodePaddingAllowed will switch the codec used for decoding JWTs respectively. Note that the JWS RFC7515 -// states that the tokens will utilize a Base64url encoding with no padding. Unfortunately, some implementations -// of JWT are producing non-standard tokens, and thus require support for decoding. Note that this is a global -// variable, and updating it will change the behavior on a package level, and is also NOT go-routine safe. -// To use the non-recommended decoding, set this boolean to `true` prior to using this package. -var DecodePaddingAllowed bool - -// DecodeStrict will switch the codec used for decoding JWTs into strict mode. -// In this mode, the decoder requires that trailing padding bits are zero, as described in RFC 4648 section 3.5. -// Note that this is a global variable, and updating it will change the behavior on a package level, and is also NOT go-routine safe. -// To use strict decoding, set this boolean to `true` prior to using this package. -var DecodeStrict bool - -// TimeFunc provides the current time when parsing token to validate "exp" claim (expiration time). -// You can override it to use another time value. This is useful for testing or if your -// server uses a different time zone than your tokens. -var TimeFunc = time.Now - -// Keyfunc will be used by the Parse methods as a callback function to supply -// the key for verification. The function receives the parsed, -// but unverified Token. This allows you to use properties in the -// Header of the token (such as `kid`) to identify which key to use. -type Keyfunc func(*Token) (interface{}, error) - -// Token represents a JWT Token. Different fields will be used depending on whether you're -// creating or parsing/verifying a token. -type Token struct { - Raw string // The raw token. Populated when you Parse a token - Method SigningMethod // The signing method used or to be used - Header map[string]interface{} // The first segment of the token - Claims Claims // The second segment of the token - Signature string // The third segment of the token. Populated when you Parse a token - Valid bool // Is the token valid? Populated when you Parse/Verify a token -} - -// New creates a new Token with the specified signing method and an empty map of claims. -func New(method SigningMethod) *Token { - return NewWithClaims(method, MapClaims{}) -} - -// NewWithClaims creates a new Token with the specified signing method and claims. -func NewWithClaims(method SigningMethod, claims Claims) *Token { - return &Token{ - Header: map[string]interface{}{ - "typ": "JWT", - "alg": method.Alg(), - }, - Claims: claims, - Method: method, - } -} - -// SignedString creates and returns a complete, signed JWT. -// The token is signed using the SigningMethod specified in the token. -func (t *Token) SignedString(key interface{}) (string, error) { - var sig, sstr string - var err error - if sstr, err = t.SigningString(); err != nil { - return "", err - } - if sig, err = t.Method.Sign(sstr, key); err != nil { - return "", err - } - return strings.Join([]string{sstr, sig}, "."), nil -} - -// SigningString generates the signing string. This is the -// most expensive part of the whole deal. Unless you -// need this for something special, just go straight for -// the SignedString. -func (t *Token) SigningString() (string, error) { - var err error - var jsonValue []byte - - if jsonValue, err = json.Marshal(t.Header); err != nil { - return "", err - } - header := EncodeSegment(jsonValue) - - if jsonValue, err = json.Marshal(t.Claims); err != nil { - return "", err - } - claim := EncodeSegment(jsonValue) - - return strings.Join([]string{header, claim}, "."), nil -} - -// Parse parses, validates, verifies the signature and returns the parsed token. -// keyFunc will receive the parsed token and should return the cryptographic key -// for verifying the signature. -// The caller is strongly encouraged to set the WithValidMethods option to -// validate the 'alg' claim in the token matches the expected algorithm. -// For more details about the importance of validating the 'alg' claim, -// see https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/ -func Parse(tokenString string, keyFunc Keyfunc, options ...ParserOption) (*Token, error) { - return NewParser(options...).Parse(tokenString, keyFunc) -} - -// ParseWithClaims is a shortcut for NewParser().ParseWithClaims(). -// -// Note: If you provide a custom claim implementation that embeds one of the standard claims (such as RegisteredClaims), -// make sure that a) you either embed a non-pointer version of the claims or b) if you are using a pointer, allocate the -// proper memory for it before passing in the overall claims, otherwise you might run into a panic. -func ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc, options ...ParserOption) (*Token, error) { - return NewParser(options...).ParseWithClaims(tokenString, claims, keyFunc) -} - -// EncodeSegment encodes a JWT specific base64url encoding with padding stripped -// -// Deprecated: In a future release, we will demote this function to a non-exported function, since it -// should only be used internally -func EncodeSegment(seg []byte) string { - return base64.RawURLEncoding.EncodeToString(seg) -} - -// DecodeSegment decodes a JWT specific base64url encoding with padding stripped -// -// Deprecated: In a future release, we will demote this function to a non-exported function, since it -// should only be used internally -func DecodeSegment(seg string) ([]byte, error) { - encoding := base64.RawURLEncoding - - if DecodePaddingAllowed { - if l := len(seg) % 4; l > 0 { - seg += strings.Repeat("=", 4-l) - } - encoding = base64.URLEncoding - } - - if DecodeStrict { - encoding = encoding.Strict() - } - return encoding.DecodeString(seg) -} diff --git a/backend/vendor/github.com/golang-jwt/jwt/v4/types.go b/backend/vendor/github.com/golang-jwt/jwt/v4/types.go deleted file mode 100644 index ac8e140e..00000000 --- a/backend/vendor/github.com/golang-jwt/jwt/v4/types.go +++ /dev/null @@ -1,145 +0,0 @@ -package jwt - -import ( - "encoding/json" - "fmt" - "math" - "reflect" - "strconv" - "time" -) - -// TimePrecision sets the precision of times and dates within this library. -// This has an influence on the precision of times when comparing expiry or -// other related time fields. Furthermore, it is also the precision of times -// when serializing. -// -// For backwards compatibility the default precision is set to seconds, so that -// no fractional timestamps are generated. -var TimePrecision = time.Second - -// MarshalSingleStringAsArray modifies the behaviour of the ClaimStrings type, especially -// its MarshalJSON function. -// -// If it is set to true (the default), it will always serialize the type as an -// array of strings, even if it just contains one element, defaulting to the behaviour -// of the underlying []string. If it is set to false, it will serialize to a single -// string, if it contains one element. Otherwise, it will serialize to an array of strings. -var MarshalSingleStringAsArray = true - -// NumericDate represents a JSON numeric date value, as referenced at -// https://datatracker.ietf.org/doc/html/rfc7519#section-2. -type NumericDate struct { - time.Time -} - -// NewNumericDate constructs a new *NumericDate from a standard library time.Time struct. -// It will truncate the timestamp according to the precision specified in TimePrecision. -func NewNumericDate(t time.Time) *NumericDate { - return &NumericDate{t.Truncate(TimePrecision)} -} - -// newNumericDateFromSeconds creates a new *NumericDate out of a float64 representing a -// UNIX epoch with the float fraction representing non-integer seconds. -func newNumericDateFromSeconds(f float64) *NumericDate { - round, frac := math.Modf(f) - return NewNumericDate(time.Unix(int64(round), int64(frac*1e9))) -} - -// MarshalJSON is an implementation of the json.RawMessage interface and serializes the UNIX epoch -// represented in NumericDate to a byte array, using the precision specified in TimePrecision. -func (date NumericDate) MarshalJSON() (b []byte, err error) { - var prec int - if TimePrecision < time.Second { - prec = int(math.Log10(float64(time.Second) / float64(TimePrecision))) - } - truncatedDate := date.Truncate(TimePrecision) - - // For very large timestamps, UnixNano would overflow an int64, but this - // function requires nanosecond level precision, so we have to use the - // following technique to get round the issue: - // 1. Take the normal unix timestamp to form the whole number part of the - // output, - // 2. Take the result of the Nanosecond function, which retuns the offset - // within the second of the particular unix time instance, to form the - // decimal part of the output - // 3. Concatenate them to produce the final result - seconds := strconv.FormatInt(truncatedDate.Unix(), 10) - nanosecondsOffset := strconv.FormatFloat(float64(truncatedDate.Nanosecond())/float64(time.Second), 'f', prec, 64) - - output := append([]byte(seconds), []byte(nanosecondsOffset)[1:]...) - - return output, nil -} - -// UnmarshalJSON is an implementation of the json.RawMessage interface and deserializses a -// NumericDate from a JSON representation, i.e. a json.Number. This number represents an UNIX epoch -// with either integer or non-integer seconds. -func (date *NumericDate) UnmarshalJSON(b []byte) (err error) { - var ( - number json.Number - f float64 - ) - - if err = json.Unmarshal(b, &number); err != nil { - return fmt.Errorf("could not parse NumericData: %w", err) - } - - if f, err = number.Float64(); err != nil { - return fmt.Errorf("could not convert json number value to float: %w", err) - } - - n := newNumericDateFromSeconds(f) - *date = *n - - return nil -} - -// ClaimStrings is basically just a slice of strings, but it can be either serialized from a string array or just a string. -// This type is necessary, since the "aud" claim can either be a single string or an array. -type ClaimStrings []string - -func (s *ClaimStrings) UnmarshalJSON(data []byte) (err error) { - var value interface{} - - if err = json.Unmarshal(data, &value); err != nil { - return err - } - - var aud []string - - switch v := value.(type) { - case string: - aud = append(aud, v) - case []string: - aud = ClaimStrings(v) - case []interface{}: - for _, vv := range v { - vs, ok := vv.(string) - if !ok { - return &json.UnsupportedTypeError{Type: reflect.TypeOf(vv)} - } - aud = append(aud, vs) - } - case nil: - return nil - default: - return &json.UnsupportedTypeError{Type: reflect.TypeOf(v)} - } - - *s = aud - - return -} - -func (s ClaimStrings) MarshalJSON() (b []byte, err error) { - // This handles a special case in the JWT RFC. If the string array, e.g. used by the "aud" field, - // only contains one element, it MAY be serialized as a single string. This may or may not be - // desired based on the ecosystem of other JWT library used, so we make it configurable by the - // variable MarshalSingleStringAsArray. - if len(s) == 1 && !MarshalSingleStringAsArray { - return json.Marshal(s[0]) - } - - return json.Marshal([]string(s)) -} diff --git a/backend/vendor/github.com/golang/geo/LICENSE b/backend/vendor/github.com/golang/geo/LICENSE deleted file mode 100644 index d6456956..00000000 --- a/backend/vendor/github.com/golang/geo/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/vendor/github.com/golang/geo/r1/doc.go b/backend/vendor/github.com/golang/geo/r1/doc.go deleted file mode 100644 index c6b65c0e..00000000 --- a/backend/vendor/github.com/golang/geo/r1/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package r1 implements types and functions for working with geometry in ℝ¹. - -See ../s2 for a more detailed overview. -*/ -package r1 diff --git a/backend/vendor/github.com/golang/geo/r1/interval.go b/backend/vendor/github.com/golang/geo/r1/interval.go deleted file mode 100644 index 81b05684..00000000 --- a/backend/vendor/github.com/golang/geo/r1/interval.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package r1 - -import ( - "fmt" - "math" -) - -// Interval represents a closed interval on ℝ. -// Zero-length intervals (where Lo == Hi) represent single points. -// If Lo > Hi then the interval is empty. -type Interval struct { - Lo, Hi float64 -} - -// EmptyInterval returns an empty interval. -func EmptyInterval() Interval { return Interval{1, 0} } - -// IntervalFromPoint returns an interval representing a single point. -func IntervalFromPoint(p float64) Interval { return Interval{p, p} } - -// IsEmpty reports whether the interval is empty. -func (i Interval) IsEmpty() bool { return i.Lo > i.Hi } - -// Equal returns true iff the interval contains the same points as oi. -func (i Interval) Equal(oi Interval) bool { - return i == oi || i.IsEmpty() && oi.IsEmpty() -} - -// Center returns the midpoint of the interval. -// It is undefined for empty intervals. -func (i Interval) Center() float64 { return 0.5 * (i.Lo + i.Hi) } - -// Length returns the length of the interval. -// The length of an empty interval is negative. -func (i Interval) Length() float64 { return i.Hi - i.Lo } - -// Contains returns true iff the interval contains p. -func (i Interval) Contains(p float64) bool { return i.Lo <= p && p <= i.Hi } - -// ContainsInterval returns true iff the interval contains oi. -func (i Interval) ContainsInterval(oi Interval) bool { - if oi.IsEmpty() { - return true - } - return i.Lo <= oi.Lo && oi.Hi <= i.Hi -} - -// InteriorContains returns true iff the interval strictly contains p. -func (i Interval) InteriorContains(p float64) bool { - return i.Lo < p && p < i.Hi -} - -// InteriorContainsInterval returns true iff the interval strictly contains oi. -func (i Interval) InteriorContainsInterval(oi Interval) bool { - if oi.IsEmpty() { - return true - } - return i.Lo < oi.Lo && oi.Hi < i.Hi -} - -// Intersects returns true iff the interval contains any points in common with oi. -func (i Interval) Intersects(oi Interval) bool { - if i.Lo <= oi.Lo { - return oi.Lo <= i.Hi && oi.Lo <= oi.Hi // oi.Lo ∈ i and oi is not empty - } - return i.Lo <= oi.Hi && i.Lo <= i.Hi // i.Lo ∈ oi and i is not empty -} - -// InteriorIntersects returns true iff the interior of the interval contains any points in common with oi, including the latter's boundary. -func (i Interval) InteriorIntersects(oi Interval) bool { - return oi.Lo < i.Hi && i.Lo < oi.Hi && i.Lo < i.Hi && oi.Lo <= oi.Hi -} - -// Intersection returns the interval containing all points common to i and j. -func (i Interval) Intersection(j Interval) Interval { - // Empty intervals do not need to be special-cased. - return Interval{ - Lo: math.Max(i.Lo, j.Lo), - Hi: math.Min(i.Hi, j.Hi), - } -} - -// AddPoint returns the interval expanded so that it contains the given point. -func (i Interval) AddPoint(p float64) Interval { - if i.IsEmpty() { - return Interval{p, p} - } - if p < i.Lo { - return Interval{p, i.Hi} - } - if p > i.Hi { - return Interval{i.Lo, p} - } - return i -} - -// ClampPoint returns the closest point in the interval to the given point "p". -// The interval must be non-empty. -func (i Interval) ClampPoint(p float64) float64 { - return math.Max(i.Lo, math.Min(i.Hi, p)) -} - -// Expanded returns an interval that has been expanded on each side by margin. -// If margin is negative, then the function shrinks the interval on -// each side by margin instead. The resulting interval may be empty. Any -// expansion of an empty interval remains empty. -func (i Interval) Expanded(margin float64) Interval { - if i.IsEmpty() { - return i - } - return Interval{i.Lo - margin, i.Hi + margin} -} - -// Union returns the smallest interval that contains this interval and the given interval. -func (i Interval) Union(other Interval) Interval { - if i.IsEmpty() { - return other - } - if other.IsEmpty() { - return i - } - return Interval{math.Min(i.Lo, other.Lo), math.Max(i.Hi, other.Hi)} -} - -func (i Interval) String() string { return fmt.Sprintf("[%.7f, %.7f]", i.Lo, i.Hi) } - -const ( - // epsilon is a small number that represents a reasonable level of noise between two - // values that can be considered to be equal. - epsilon = 1e-15 - // dblEpsilon is a smaller number for values that require more precision. - // This is the C++ DBL_EPSILON equivalent. - dblEpsilon = 2.220446049250313e-16 -) - -// ApproxEqual reports whether the interval can be transformed into the -// given interval by moving each endpoint a small distance. -// The empty interval is considered to be positioned arbitrarily on the -// real line, so any interval with a small enough length will match -// the empty interval. -func (i Interval) ApproxEqual(other Interval) bool { - if i.IsEmpty() { - return other.Length() <= 2*epsilon - } - if other.IsEmpty() { - return i.Length() <= 2*epsilon - } - return math.Abs(other.Lo-i.Lo) <= epsilon && - math.Abs(other.Hi-i.Hi) <= epsilon -} - -// DirectedHausdorffDistance returns the Hausdorff distance to the given interval. For two -// intervals x and y, this distance is defined as -// -// h(x, y) = max_{p in x} min_{q in y} d(p, q). -func (i Interval) DirectedHausdorffDistance(other Interval) float64 { - if i.IsEmpty() { - return 0 - } - if other.IsEmpty() { - return math.Inf(1) - } - return math.Max(0, math.Max(i.Hi-other.Hi, other.Lo-i.Lo)) -} diff --git a/backend/vendor/github.com/golang/geo/r2/doc.go b/backend/vendor/github.com/golang/geo/r2/doc.go deleted file mode 100644 index 05b15554..00000000 --- a/backend/vendor/github.com/golang/geo/r2/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package r2 implements types and functions for working with geometry in ℝ². - -See package s2 for a more detailed overview. -*/ -package r2 diff --git a/backend/vendor/github.com/golang/geo/r2/rect.go b/backend/vendor/github.com/golang/geo/r2/rect.go deleted file mode 100644 index 495545bb..00000000 --- a/backend/vendor/github.com/golang/geo/r2/rect.go +++ /dev/null @@ -1,255 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package r2 - -import ( - "fmt" - "math" - - "github.com/golang/geo/r1" -) - -// Point represents a point in ℝ². -type Point struct { - X, Y float64 -} - -// Add returns the sum of p and op. -func (p Point) Add(op Point) Point { return Point{p.X + op.X, p.Y + op.Y} } - -// Sub returns the difference of p and op. -func (p Point) Sub(op Point) Point { return Point{p.X - op.X, p.Y - op.Y} } - -// Mul returns the scalar product of p and m. -func (p Point) Mul(m float64) Point { return Point{m * p.X, m * p.Y} } - -// Ortho returns a counterclockwise orthogonal point with the same norm. -func (p Point) Ortho() Point { return Point{-p.Y, p.X} } - -// Dot returns the dot product between p and op. -func (p Point) Dot(op Point) float64 { return p.X*op.X + p.Y*op.Y } - -// Cross returns the cross product of p and op. -func (p Point) Cross(op Point) float64 { return p.X*op.Y - p.Y*op.X } - -// Norm returns the vector's norm. -func (p Point) Norm() float64 { return math.Hypot(p.X, p.Y) } - -// Normalize returns a unit point in the same direction as p. -func (p Point) Normalize() Point { - if p.X == 0 && p.Y == 0 { - return p - } - return p.Mul(1 / p.Norm()) -} - -func (p Point) String() string { return fmt.Sprintf("(%.12f, %.12f)", p.X, p.Y) } - -// Rect represents a closed axis-aligned rectangle in the (x,y) plane. -type Rect struct { - X, Y r1.Interval -} - -// RectFromPoints constructs a rect that contains the given points. -func RectFromPoints(pts ...Point) Rect { - // Because the default value on interval is 0,0, we need to manually - // define the interval from the first point passed in as our starting - // interval, otherwise we end up with the case of passing in - // Point{0.2, 0.3} and getting the starting Rect of {0, 0.2}, {0, 0.3} - // instead of the Rect {0.2, 0.2}, {0.3, 0.3} which is not correct. - if len(pts) == 0 { - return Rect{} - } - - r := Rect{ - X: r1.Interval{Lo: pts[0].X, Hi: pts[0].X}, - Y: r1.Interval{Lo: pts[0].Y, Hi: pts[0].Y}, - } - - for _, p := range pts[1:] { - r = r.AddPoint(p) - } - return r -} - -// RectFromCenterSize constructs a rectangle with the given center and size. -// Both dimensions of size must be non-negative. -func RectFromCenterSize(center, size Point) Rect { - return Rect{ - r1.Interval{Lo: center.X - size.X/2, Hi: center.X + size.X/2}, - r1.Interval{Lo: center.Y - size.Y/2, Hi: center.Y + size.Y/2}, - } -} - -// EmptyRect constructs the canonical empty rectangle. Use IsEmpty() to test -// for empty rectangles, since they have more than one representation. A Rect{} -// is not the same as the EmptyRect. -func EmptyRect() Rect { - return Rect{r1.EmptyInterval(), r1.EmptyInterval()} -} - -// IsValid reports whether the rectangle is valid. -// This requires the width to be empty iff the height is empty. -func (r Rect) IsValid() bool { - return r.X.IsEmpty() == r.Y.IsEmpty() -} - -// IsEmpty reports whether the rectangle is empty. -func (r Rect) IsEmpty() bool { - return r.X.IsEmpty() -} - -// Vertices returns all four vertices of the rectangle. Vertices are returned in -// CCW direction starting with the lower left corner. -func (r Rect) Vertices() [4]Point { - return [4]Point{ - {r.X.Lo, r.Y.Lo}, - {r.X.Hi, r.Y.Lo}, - {r.X.Hi, r.Y.Hi}, - {r.X.Lo, r.Y.Hi}, - } -} - -// VertexIJ returns the vertex in direction i along the X-axis (0=left, 1=right) and -// direction j along the Y-axis (0=down, 1=up). -func (r Rect) VertexIJ(i, j int) Point { - x := r.X.Lo - if i == 1 { - x = r.X.Hi - } - y := r.Y.Lo - if j == 1 { - y = r.Y.Hi - } - return Point{x, y} -} - -// Lo returns the low corner of the rect. -func (r Rect) Lo() Point { - return Point{r.X.Lo, r.Y.Lo} -} - -// Hi returns the high corner of the rect. -func (r Rect) Hi() Point { - return Point{r.X.Hi, r.Y.Hi} -} - -// Center returns the center of the rectangle in (x,y)-space -func (r Rect) Center() Point { - return Point{r.X.Center(), r.Y.Center()} -} - -// Size returns the width and height of this rectangle in (x,y)-space. Empty -// rectangles have a negative width and height. -func (r Rect) Size() Point { - return Point{r.X.Length(), r.Y.Length()} -} - -// ContainsPoint reports whether the rectangle contains the given point. -// Rectangles are closed regions, i.e. they contain their boundary. -func (r Rect) ContainsPoint(p Point) bool { - return r.X.Contains(p.X) && r.Y.Contains(p.Y) -} - -// InteriorContainsPoint returns true iff the given point is contained in the interior -// of the region (i.e. the region excluding its boundary). -func (r Rect) InteriorContainsPoint(p Point) bool { - return r.X.InteriorContains(p.X) && r.Y.InteriorContains(p.Y) -} - -// Contains reports whether the rectangle contains the given rectangle. -func (r Rect) Contains(other Rect) bool { - return r.X.ContainsInterval(other.X) && r.Y.ContainsInterval(other.Y) -} - -// InteriorContains reports whether the interior of this rectangle contains all of the -// points of the given other rectangle (including its boundary). -func (r Rect) InteriorContains(other Rect) bool { - return r.X.InteriorContainsInterval(other.X) && r.Y.InteriorContainsInterval(other.Y) -} - -// Intersects reports whether this rectangle and the other rectangle have any points in common. -func (r Rect) Intersects(other Rect) bool { - return r.X.Intersects(other.X) && r.Y.Intersects(other.Y) -} - -// InteriorIntersects reports whether the interior of this rectangle intersects -// any point (including the boundary) of the given other rectangle. -func (r Rect) InteriorIntersects(other Rect) bool { - return r.X.InteriorIntersects(other.X) && r.Y.InteriorIntersects(other.Y) -} - -// AddPoint expands the rectangle to include the given point. The rectangle is -// expanded by the minimum amount possible. -func (r Rect) AddPoint(p Point) Rect { - return Rect{r.X.AddPoint(p.X), r.Y.AddPoint(p.Y)} -} - -// AddRect expands the rectangle to include the given rectangle. This is the -// same as replacing the rectangle by the union of the two rectangles, but -// is more efficient. -func (r Rect) AddRect(other Rect) Rect { - return Rect{r.X.Union(other.X), r.Y.Union(other.Y)} -} - -// ClampPoint returns the closest point in the rectangle to the given point. -// The rectangle must be non-empty. -func (r Rect) ClampPoint(p Point) Point { - return Point{r.X.ClampPoint(p.X), r.Y.ClampPoint(p.Y)} -} - -// Expanded returns a rectangle that has been expanded in the x-direction -// by margin.X, and in y-direction by margin.Y. If either margin is empty, -// then shrink the interval on the corresponding sides instead. The resulting -// rectangle may be empty. Any expansion of an empty rectangle remains empty. -func (r Rect) Expanded(margin Point) Rect { - xx := r.X.Expanded(margin.X) - yy := r.Y.Expanded(margin.Y) - if xx.IsEmpty() || yy.IsEmpty() { - return EmptyRect() - } - return Rect{xx, yy} -} - -// ExpandedByMargin returns a Rect that has been expanded by the amount on all sides. -func (r Rect) ExpandedByMargin(margin float64) Rect { - return r.Expanded(Point{margin, margin}) -} - -// Union returns the smallest rectangle containing the union of this rectangle and -// the given rectangle. -func (r Rect) Union(other Rect) Rect { - return Rect{r.X.Union(other.X), r.Y.Union(other.Y)} -} - -// Intersection returns the smallest rectangle containing the intersection of this -// rectangle and the given rectangle. -func (r Rect) Intersection(other Rect) Rect { - xx := r.X.Intersection(other.X) - yy := r.Y.Intersection(other.Y) - if xx.IsEmpty() || yy.IsEmpty() { - return EmptyRect() - } - - return Rect{xx, yy} -} - -// ApproxEqual returns true if the x- and y-intervals of the two rectangles are -// the same up to the given tolerance. -func (r Rect) ApproxEqual(r2 Rect) bool { - return r.X.ApproxEqual(r2.X) && r.Y.ApproxEqual(r2.Y) -} - -func (r Rect) String() string { return fmt.Sprintf("[Lo%s, Hi%s]", r.Lo(), r.Hi()) } diff --git a/backend/vendor/github.com/golang/geo/r3/doc.go b/backend/vendor/github.com/golang/geo/r3/doc.go deleted file mode 100644 index 1eb4710c..00000000 --- a/backend/vendor/github.com/golang/geo/r3/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package r3 implements types and functions for working with geometry in ℝ³. - -See ../s2 for a more detailed overview. -*/ -package r3 diff --git a/backend/vendor/github.com/golang/geo/r3/precisevector.go b/backend/vendor/github.com/golang/geo/r3/precisevector.go deleted file mode 100644 index b13393db..00000000 --- a/backend/vendor/github.com/golang/geo/r3/precisevector.go +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package r3 - -import ( - "fmt" - "math/big" -) - -const ( - // prec is the number of bits of precision to use for the Float values. - // To keep things simple, we use the maximum allowable precision on big - // values. This allows us to handle all values we expect in the s2 library. - prec = big.MaxPrec -) - -// define some commonly referenced values. -var ( - precise0 = precInt(0) - precise1 = precInt(1) -) - -// precStr wraps the conversion from a string into a big.Float. For results that -// actually can be represented exactly, this should only be used on values that -// are integer multiples of integer powers of 2. -func precStr(s string) *big.Float { - // Explicitly ignoring the bool return for this usage. - f, _ := new(big.Float).SetPrec(prec).SetString(s) - return f -} - -func precInt(i int64) *big.Float { - return new(big.Float).SetPrec(prec).SetInt64(i) -} - -func precFloat(f float64) *big.Float { - return new(big.Float).SetPrec(prec).SetFloat64(f) -} - -func precAdd(a, b *big.Float) *big.Float { - return new(big.Float).SetPrec(prec).Add(a, b) -} - -func precSub(a, b *big.Float) *big.Float { - return new(big.Float).SetPrec(prec).Sub(a, b) -} - -func precMul(a, b *big.Float) *big.Float { - return new(big.Float).SetPrec(prec).Mul(a, b) -} - -// PreciseVector represents a point in ℝ³ using high-precision values. -// Note that this is NOT a complete implementation because there are some -// operations that Vector supports that are not feasible with arbitrary precision -// math. (e.g., methods that need division like Normalize, or methods needing a -// square root operation such as Norm) -type PreciseVector struct { - X, Y, Z *big.Float -} - -// PreciseVectorFromVector creates a high precision vector from the given Vector. -func PreciseVectorFromVector(v Vector) PreciseVector { - return NewPreciseVector(v.X, v.Y, v.Z) -} - -// NewPreciseVector creates a high precision vector from the given floating point values. -func NewPreciseVector(x, y, z float64) PreciseVector { - return PreciseVector{ - X: precFloat(x), - Y: precFloat(y), - Z: precFloat(z), - } -} - -// Vector returns this precise vector converted to a Vector. -func (v PreciseVector) Vector() Vector { - // The accuracy flag is ignored on these conversions back to float64. - x, _ := v.X.Float64() - y, _ := v.Y.Float64() - z, _ := v.Z.Float64() - return Vector{x, y, z}.Normalize() -} - -// Equal reports whether v and ov are equal. -func (v PreciseVector) Equal(ov PreciseVector) bool { - return v.X.Cmp(ov.X) == 0 && v.Y.Cmp(ov.Y) == 0 && v.Z.Cmp(ov.Z) == 0 -} - -func (v PreciseVector) String() string { - return fmt.Sprintf("(%10g, %10g, %10g)", v.X, v.Y, v.Z) -} - -// Norm2 returns the square of the norm. -func (v PreciseVector) Norm2() *big.Float { return v.Dot(v) } - -// IsUnit reports whether this vector is of unit length. -func (v PreciseVector) IsUnit() bool { - return v.Norm2().Cmp(precise1) == 0 -} - -// Abs returns the vector with nonnegative components. -func (v PreciseVector) Abs() PreciseVector { - return PreciseVector{ - X: new(big.Float).Abs(v.X), - Y: new(big.Float).Abs(v.Y), - Z: new(big.Float).Abs(v.Z), - } -} - -// Add returns the standard vector sum of v and ov. -func (v PreciseVector) Add(ov PreciseVector) PreciseVector { - return PreciseVector{ - X: precAdd(v.X, ov.X), - Y: precAdd(v.Y, ov.Y), - Z: precAdd(v.Z, ov.Z), - } -} - -// Sub returns the standard vector difference of v and ov. -func (v PreciseVector) Sub(ov PreciseVector) PreciseVector { - return PreciseVector{ - X: precSub(v.X, ov.X), - Y: precSub(v.Y, ov.Y), - Z: precSub(v.Z, ov.Z), - } -} - -// Mul returns the standard scalar product of v and f. -func (v PreciseVector) Mul(f *big.Float) PreciseVector { - return PreciseVector{ - X: precMul(v.X, f), - Y: precMul(v.Y, f), - Z: precMul(v.Z, f), - } -} - -// MulByFloat64 returns the standard scalar product of v and f. -func (v PreciseVector) MulByFloat64(f float64) PreciseVector { - return v.Mul(precFloat(f)) -} - -// Dot returns the standard dot product of v and ov. -func (v PreciseVector) Dot(ov PreciseVector) *big.Float { - return precAdd(precMul(v.X, ov.X), precAdd(precMul(v.Y, ov.Y), precMul(v.Z, ov.Z))) -} - -// Cross returns the standard cross product of v and ov. -func (v PreciseVector) Cross(ov PreciseVector) PreciseVector { - return PreciseVector{ - X: precSub(precMul(v.Y, ov.Z), precMul(v.Z, ov.Y)), - Y: precSub(precMul(v.Z, ov.X), precMul(v.X, ov.Z)), - Z: precSub(precMul(v.X, ov.Y), precMul(v.Y, ov.X)), - } -} - -// LargestComponent returns the axis that represents the largest component in this vector. -func (v PreciseVector) LargestComponent() Axis { - t := v.Abs() - - if t.X.Cmp(t.Y) > 0 { - if t.X.Cmp(t.Z) > 0 { - return XAxis - } - return ZAxis - } - if t.Y.Cmp(t.Z) > 0 { - return YAxis - } - return ZAxis -} - -// SmallestComponent returns the axis that represents the smallest component in this vector. -func (v PreciseVector) SmallestComponent() Axis { - t := v.Abs() - - if t.X.Cmp(t.Y) < 0 { - if t.X.Cmp(t.Z) < 0 { - return XAxis - } - return ZAxis - } - if t.Y.Cmp(t.Z) < 0 { - return YAxis - } - return ZAxis -} diff --git a/backend/vendor/github.com/golang/geo/r3/vector.go b/backend/vendor/github.com/golang/geo/r3/vector.go deleted file mode 100644 index 692bb705..00000000 --- a/backend/vendor/github.com/golang/geo/r3/vector.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package r3 - -import ( - "fmt" - "math" - - "github.com/golang/geo/s1" -) - -// Vector represents a point in ℝ³. -type Vector struct { - X, Y, Z float64 -} - -// ApproxEqual reports whether v and ov are equal within a small epsilon. -func (v Vector) ApproxEqual(ov Vector) bool { - const epsilon = 1e-16 - return math.Abs(v.X-ov.X) < epsilon && math.Abs(v.Y-ov.Y) < epsilon && math.Abs(v.Z-ov.Z) < epsilon -} - -func (v Vector) String() string { return fmt.Sprintf("(%0.24f, %0.24f, %0.24f)", v.X, v.Y, v.Z) } - -// Norm returns the vector's norm. -func (v Vector) Norm() float64 { return math.Sqrt(v.Dot(v)) } - -// Norm2 returns the square of the norm. -func (v Vector) Norm2() float64 { return v.Dot(v) } - -// Normalize returns a unit vector in the same direction as v. -func (v Vector) Normalize() Vector { - n2 := v.Norm2() - if n2 == 0 { - return Vector{0, 0, 0} - } - return v.Mul(1 / math.Sqrt(n2)) -} - -// IsUnit returns whether this vector is of approximately unit length. -func (v Vector) IsUnit() bool { - const epsilon = 5e-14 - return math.Abs(v.Norm2()-1) <= epsilon -} - -// Abs returns the vector with nonnegative components. -func (v Vector) Abs() Vector { return Vector{math.Abs(v.X), math.Abs(v.Y), math.Abs(v.Z)} } - -// Add returns the standard vector sum of v and ov. -func (v Vector) Add(ov Vector) Vector { return Vector{v.X + ov.X, v.Y + ov.Y, v.Z + ov.Z} } - -// Sub returns the standard vector difference of v and ov. -func (v Vector) Sub(ov Vector) Vector { return Vector{v.X - ov.X, v.Y - ov.Y, v.Z - ov.Z} } - -// Mul returns the standard scalar product of v and m. -func (v Vector) Mul(m float64) Vector { return Vector{m * v.X, m * v.Y, m * v.Z} } - -// Dot returns the standard dot product of v and ov. -func (v Vector) Dot(ov Vector) float64 { return v.X*ov.X + v.Y*ov.Y + v.Z*ov.Z } - -// Cross returns the standard cross product of v and ov. -func (v Vector) Cross(ov Vector) Vector { - return Vector{ - v.Y*ov.Z - v.Z*ov.Y, - v.Z*ov.X - v.X*ov.Z, - v.X*ov.Y - v.Y*ov.X, - } -} - -// Distance returns the Euclidean distance between v and ov. -func (v Vector) Distance(ov Vector) float64 { return v.Sub(ov).Norm() } - -// Angle returns the angle between v and ov. -func (v Vector) Angle(ov Vector) s1.Angle { - return s1.Angle(math.Atan2(v.Cross(ov).Norm(), v.Dot(ov))) * s1.Radian -} - -// Axis enumerates the 3 axes of ℝ³. -type Axis int - -// The three axes of ℝ³. -const ( - XAxis Axis = iota - YAxis - ZAxis -) - -// Ortho returns a unit vector that is orthogonal to v. -// Ortho(-v) = -Ortho(v) for all v. -func (v Vector) Ortho() Vector { - ov := Vector{0.012, 0.0053, 0.00457} - switch v.LargestComponent() { - case XAxis: - ov.Z = 1 - case YAxis: - ov.X = 1 - default: - ov.Y = 1 - } - return v.Cross(ov).Normalize() -} - -// LargestComponent returns the axis that represents the largest component in this vector. -func (v Vector) LargestComponent() Axis { - t := v.Abs() - - if t.X > t.Y { - if t.X > t.Z { - return XAxis - } - return ZAxis - } - if t.Y > t.Z { - return YAxis - } - return ZAxis -} - -// SmallestComponent returns the axis that represents the smallest component in this vector. -func (v Vector) SmallestComponent() Axis { - t := v.Abs() - - if t.X < t.Y { - if t.X < t.Z { - return XAxis - } - return ZAxis - } - if t.Y < t.Z { - return YAxis - } - return ZAxis -} - -// Cmp compares v and ov lexicographically and returns: -// -// -1 if v < ov -// 0 if v == ov -// +1 if v > ov -// -// This method is based on C++'s std::lexicographical_compare. Two entities -// are compared element by element with the given operator. The first mismatch -// defines which is less (or greater) than the other. If both have equivalent -// values they are lexicographically equal. -func (v Vector) Cmp(ov Vector) int { - if v.X < ov.X { - return -1 - } - if v.X > ov.X { - return 1 - } - - // First elements were the same, try the next. - if v.Y < ov.Y { - return -1 - } - if v.Y > ov.Y { - return 1 - } - - // Second elements were the same return the final compare. - if v.Z < ov.Z { - return -1 - } - if v.Z > ov.Z { - return 1 - } - - // Both are equal - return 0 -} diff --git a/backend/vendor/github.com/golang/geo/s1/angle.go b/backend/vendor/github.com/golang/geo/s1/angle.go deleted file mode 100644 index 338471b9..00000000 --- a/backend/vendor/github.com/golang/geo/s1/angle.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s1 - -import ( - "math" - "strconv" -) - -// Angle represents a 1D angle. The internal representation is a double precision -// value in radians, so conversion to and from radians is exact. -// Conversions between E5, E6, E7, and Degrees are not always -// exact. For example, Degrees(3.1) is different from E6(3100000) or E7(31000000). -// -// The following conversions between degrees and radians are exact: -// -// Degree*180 == Radian*math.Pi -// Degree*(180/n) == Radian*(math.Pi/n) for n == 0..8 -// -// These identities hold when the arguments are scaled up or down by any power -// of 2. Some similar identities are also true, for example, -// -// Degree*60 == Radian*(math.Pi/3) -// -// But be aware that this type of identity does not hold in general. For example, -// -// Degree*3 != Radian*(math.Pi/60) -// -// Similarly, the conversion to radians means that (Angle(x)*Degree).Degrees() -// does not always equal x. For example, -// -// (Angle(45*n)*Degree).Degrees() == 45*n for n == 0..8 -// -// but -// -// (60*Degree).Degrees() != 60 -// -// When testing for equality, you should allow for numerical errors (ApproxEqual) -// or convert to discrete E5/E6/E7 values first. -type Angle float64 - -// Angle units. -const ( - Radian Angle = 1 - Degree = (math.Pi / 180) * Radian - - E5 = 1e-5 * Degree - E6 = 1e-6 * Degree - E7 = 1e-7 * Degree -) - -// Radians returns the angle in radians. -func (a Angle) Radians() float64 { return float64(a) } - -// Degrees returns the angle in degrees. -func (a Angle) Degrees() float64 { return float64(a / Degree) } - -// round returns the value rounded to nearest as an int32. -// This does not match C++ exactly for the case of x.5. -func round(val float64) int32 { - if val < 0 { - return int32(val - 0.5) - } - return int32(val + 0.5) -} - -// InfAngle returns an angle larger than any finite angle. -func InfAngle() Angle { - return Angle(math.Inf(1)) -} - -// isInf reports whether this Angle is infinite. -func (a Angle) isInf() bool { - return math.IsInf(float64(a), 0) -} - -// E5 returns the angle in hundred thousandths of degrees. -func (a Angle) E5() int32 { return round(a.Degrees() * 1e5) } - -// E6 returns the angle in millionths of degrees. -func (a Angle) E6() int32 { return round(a.Degrees() * 1e6) } - -// E7 returns the angle in ten millionths of degrees. -func (a Angle) E7() int32 { return round(a.Degrees() * 1e7) } - -// Abs returns the absolute value of the angle. -func (a Angle) Abs() Angle { return Angle(math.Abs(float64(a))) } - -// Normalized returns an equivalent angle in (-π, π]. -func (a Angle) Normalized() Angle { - rad := math.Remainder(float64(a), 2*math.Pi) - if rad <= -math.Pi { - rad = math.Pi - } - return Angle(rad) -} - -func (a Angle) String() string { - return strconv.FormatFloat(a.Degrees(), 'f', 7, 64) // like "%.7f" -} - -// ApproxEqual reports whether the two angles are the same up to a small tolerance. -func (a Angle) ApproxEqual(other Angle) bool { - return math.Abs(float64(a)-float64(other)) <= epsilon -} - -// BUG(dsymonds): The major differences from the C++ version are: -// - no unsigned E5/E6/E7 methods diff --git a/backend/vendor/github.com/golang/geo/s1/chordangle.go b/backend/vendor/github.com/golang/geo/s1/chordangle.go deleted file mode 100644 index c1b9cfb1..00000000 --- a/backend/vendor/github.com/golang/geo/s1/chordangle.go +++ /dev/null @@ -1,323 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s1 - -import ( - "math" -) - -// ChordAngle represents the angle subtended by a chord (i.e., the straight -// line segment connecting two points on the sphere). Its representation -// makes it very efficient for computing and comparing distances, but unlike -// Angle it is only capable of representing angles between 0 and π radians. -// Generally, ChordAngle should only be used in loops where many angles need -// to be calculated and compared. Otherwise it is simpler to use Angle. -// -// ChordAngle loses some accuracy as the angle approaches π radians. -// There are several different ways to measure this error, including the -// representational error (i.e., how accurately ChordAngle can represent -// angles near π radians), the conversion error (i.e., how much precision is -// lost when an Angle is converted to an ChordAngle), and the measurement -// error (i.e., how accurate the ChordAngle(a, b) constructor is when the -// points A and B are separated by angles close to π radians). All of these -// errors differ by a small constant factor. -// -// For the measurement error (which is the largest of these errors and also -// the most important in practice), let the angle between A and B be (π - x) -// radians, i.e. A and B are within "x" radians of being antipodal. The -// corresponding chord length is -// -// r = 2 * sin((π - x) / 2) = 2 * cos(x / 2) -// -// For values of x not close to π the relative error in the squared chord -// length is at most 4.5 * dblEpsilon (see MaxPointError below). -// The relative error in "r" is thus at most 2.25 * dblEpsilon ~= 5e-16. To -// convert this error into an equivalent angle, we have -// -// |dr / dx| = sin(x / 2) -// -// and therefore -// -// |dx| = dr / sin(x / 2) -// = 5e-16 * (2 * cos(x / 2)) / sin(x / 2) -// = 1e-15 / tan(x / 2) -// -// The maximum error is attained when -// -// x = |dx| -// = 1e-15 / tan(x / 2) -// ~= 1e-15 / (x / 2) -// ~= sqrt(2e-15) -// -// In summary, the measurement error for an angle (π - x) is at most -// -// dx = min(1e-15 / tan(x / 2), sqrt(2e-15)) -// (~= min(2e-15 / x, sqrt(2e-15)) when x is small) -// -// On the Earth's surface (assuming a radius of 6371km), this corresponds to -// the following worst-case measurement errors: -// -// Accuracy: Unless antipodal to within: -// --------- --------------------------- -// 6.4 nanometers 10,000 km (90 degrees) -// 1 micrometer 81.2 kilometers -// 1 millimeter 81.2 meters -// 1 centimeter 8.12 meters -// 28.5 centimeters 28.5 centimeters -// -// The representational and conversion errors referred to earlier are somewhat -// smaller than this. For example, maximum distance between adjacent -// representable ChordAngle values is only 13.5 cm rather than 28.5 cm. To -// see this, observe that the closest representable value to r^2 = 4 is -// r^2 = 4 * (1 - dblEpsilon / 2). Thus r = 2 * (1 - dblEpsilon / 4) and -// the angle between these two representable values is -// -// x = 2 * acos(r / 2) -// = 2 * acos(1 - dblEpsilon / 4) -// ~= 2 * asin(sqrt(dblEpsilon / 2) -// ~= sqrt(2 * dblEpsilon) -// ~= 2.1e-8 -// -// which is 13.5 cm on the Earth's surface. -// -// The worst case rounding error occurs when the value halfway between these -// two representable values is rounded up to 4. This halfway value is -// r^2 = (4 * (1 - dblEpsilon / 4)), thus r = 2 * (1 - dblEpsilon / 8) and -// the worst case rounding error is -// -// x = 2 * acos(r / 2) -// = 2 * acos(1 - dblEpsilon / 8) -// ~= 2 * asin(sqrt(dblEpsilon / 4) -// ~= sqrt(dblEpsilon) -// ~= 1.5e-8 -// -// which is 9.5 cm on the Earth's surface. -type ChordAngle float64 - -const ( - // NegativeChordAngle represents a chord angle smaller than the zero angle. - // The only valid operations on a NegativeChordAngle are comparisons, - // Angle conversions, and Successor/Predecessor. - NegativeChordAngle = ChordAngle(-1) - - // RightChordAngle represents a chord angle of 90 degrees (a "right angle"). - RightChordAngle = ChordAngle(2) - - // StraightChordAngle represents a chord angle of 180 degrees (a "straight angle"). - // This is the maximum finite chord angle. - StraightChordAngle = ChordAngle(4) - - // maxLength2 is the square of the maximum length allowed in a ChordAngle. - maxLength2 = 4.0 -) - -// ChordAngleFromAngle returns a ChordAngle from the given Angle. -func ChordAngleFromAngle(a Angle) ChordAngle { - if a < 0 { - return NegativeChordAngle - } - if a.isInf() { - return InfChordAngle() - } - l := 2 * math.Sin(0.5*math.Min(math.Pi, a.Radians())) - return ChordAngle(l * l) -} - -// ChordAngleFromSquaredLength returns a ChordAngle from the squared chord length. -// Note that the argument is automatically clamped to a maximum of 4 to -// handle possible roundoff errors. The argument must be non-negative. -func ChordAngleFromSquaredLength(length2 float64) ChordAngle { - if length2 > maxLength2 { - return StraightChordAngle - } - return ChordAngle(length2) -} - -// Expanded returns a new ChordAngle that has been adjusted by the given error -// bound (which can be positive or negative). Error should be the value -// returned by either MaxPointError or MaxAngleError. For example: -// -// a := ChordAngleFromPoints(x, y) -// a1 := a.Expanded(a.MaxPointError()) -func (c ChordAngle) Expanded(e float64) ChordAngle { - // If the angle is special, don't change it. Otherwise clamp it to the valid range. - if c.isSpecial() { - return c - } - return ChordAngle(math.Max(0.0, math.Min(maxLength2, float64(c)+e))) -} - -// Angle converts this ChordAngle to an Angle. -func (c ChordAngle) Angle() Angle { - if c < 0 { - return -1 * Radian - } - if c.isInf() { - return InfAngle() - } - return Angle(2 * math.Asin(0.5*math.Sqrt(float64(c)))) -} - -// InfChordAngle returns a chord angle larger than any finite chord angle. -// The only valid operations on an InfChordAngle are comparisons, Angle -// conversions, and Successor/Predecessor. -func InfChordAngle() ChordAngle { - return ChordAngle(math.Inf(1)) -} - -// isInf reports whether this ChordAngle is infinite. -func (c ChordAngle) isInf() bool { - return math.IsInf(float64(c), 1) -} - -// isSpecial reports whether this ChordAngle is one of the special cases. -func (c ChordAngle) isSpecial() bool { - return c < 0 || c.isInf() -} - -// isValid reports whether this ChordAngle is valid or not. -func (c ChordAngle) isValid() bool { - return (c >= 0 && c <= maxLength2) || c.isSpecial() -} - -// Successor returns the smallest representable ChordAngle larger than this one. -// This can be used to convert a "<" comparison to a "<=" comparison. -// -// Note the following special cases: -// -// NegativeChordAngle.Successor == 0 -// StraightChordAngle.Successor == InfChordAngle -// InfChordAngle.Successor == InfChordAngle -func (c ChordAngle) Successor() ChordAngle { - if c >= maxLength2 { - return InfChordAngle() - } - if c < 0 { - return 0 - } - return ChordAngle(math.Nextafter(float64(c), 10.0)) -} - -// Predecessor returns the largest representable ChordAngle less than this one. -// -// Note the following special cases: -// -// InfChordAngle.Predecessor == StraightChordAngle -// ChordAngle(0).Predecessor == NegativeChordAngle -// NegativeChordAngle.Predecessor == NegativeChordAngle -func (c ChordAngle) Predecessor() ChordAngle { - if c <= 0 { - return NegativeChordAngle - } - if c > maxLength2 { - return StraightChordAngle - } - - return ChordAngle(math.Nextafter(float64(c), -10.0)) -} - -// MaxPointError returns the maximum error size for a ChordAngle constructed -// from 2 Points x and y, assuming that x and y are normalized to within the -// bounds guaranteed by s2.Point.Normalize. The error is defined with respect to -// the true distance after the points are projected to lie exactly on the sphere. -func (c ChordAngle) MaxPointError() float64 { - // There is a relative error of (2.5*dblEpsilon) when computing the squared - // distance, plus a relative error of 2 * dblEpsilon, plus an absolute error - // of (16 * dblEpsilon**2) because the lengths of the input points may differ - // from 1 by up to (2*dblEpsilon) each. (This is the maximum error in Normalize). - return 4.5*dblEpsilon*float64(c) + 16*dblEpsilon*dblEpsilon -} - -// MaxAngleError returns the maximum error for a ChordAngle constructed -// as an Angle distance. -func (c ChordAngle) MaxAngleError() float64 { - return dblEpsilon * float64(c) -} - -// Add adds the other ChordAngle to this one and returns the resulting value. -// This method assumes the ChordAngles are not special. -func (c ChordAngle) Add(other ChordAngle) ChordAngle { - // Note that this method (and Sub) is much more efficient than converting - // the ChordAngle to an Angle and adding those and converting back. It - // requires only one square root plus a few additions and multiplications. - - // Optimization for the common case where b is an error tolerance - // parameter that happens to be set to zero. - if other == 0 { - return c - } - - // Clamp the angle sum to at most 180 degrees. - if c+other >= maxLength2 { - return StraightChordAngle - } - - // Let a and b be the (non-squared) chord lengths, and let c = a+b. - // Let A, B, and C be the corresponding half-angles (a = 2*sin(A), etc). - // Then the formula below can be derived from c = 2 * sin(A+B) and the - // relationships sin(A+B) = sin(A)*cos(B) + sin(B)*cos(A) - // cos(X) = sqrt(1 - sin^2(X)) - x := float64(c * (1 - 0.25*other)) - y := float64(other * (1 - 0.25*c)) - return ChordAngle(math.Min(maxLength2, x+y+2*math.Sqrt(x*y))) -} - -// Sub subtracts the other ChordAngle from this one and returns the resulting -// value. This method assumes the ChordAngles are not special. -func (c ChordAngle) Sub(other ChordAngle) ChordAngle { - if other == 0 { - return c - } - if c <= other { - return 0 - } - x := float64(c * (1 - 0.25*other)) - y := float64(other * (1 - 0.25*c)) - return ChordAngle(math.Max(0.0, x+y-2*math.Sqrt(x*y))) -} - -// Sin returns the sine of this chord angle. This method is more efficient -// than converting to Angle and performing the computation. -func (c ChordAngle) Sin() float64 { - return math.Sqrt(c.Sin2()) -} - -// Sin2 returns the square of the sine of this chord angle. -// It is more efficient than Sin. -func (c ChordAngle) Sin2() float64 { - // Let a be the (non-squared) chord length, and let A be the corresponding - // half-angle (a = 2*sin(A)). The formula below can be derived from: - // sin(2*A) = 2 * sin(A) * cos(A) - // cos^2(A) = 1 - sin^2(A) - // This is much faster than converting to an angle and computing its sine. - return float64(c * (1 - 0.25*c)) -} - -// Cos returns the cosine of this chord angle. This method is more efficient -// than converting to Angle and performing the computation. -func (c ChordAngle) Cos() float64 { - // cos(2*A) = cos^2(A) - sin^2(A) = 1 - 2*sin^2(A) - return float64(1 - 0.5*c) -} - -// Tan returns the tangent of this chord angle. -func (c ChordAngle) Tan() float64 { - return c.Sin() / c.Cos() -} - -// TODO(roberts): Differences from C++: -// Helpers to/from E5/E6/E7 -// Helpers to/from degrees and radians directly. -// FastUpperBoundFrom(angle Angle) diff --git a/backend/vendor/github.com/golang/geo/s1/doc.go b/backend/vendor/github.com/golang/geo/s1/doc.go deleted file mode 100644 index 52a2c526..00000000 --- a/backend/vendor/github.com/golang/geo/s1/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package s1 implements types and functions for working with geometry in S¹ (circular geometry). - -See ../s2 for a more detailed overview. -*/ -package s1 diff --git a/backend/vendor/github.com/golang/geo/s1/interval.go b/backend/vendor/github.com/golang/geo/s1/interval.go deleted file mode 100644 index 8b1131cc..00000000 --- a/backend/vendor/github.com/golang/geo/s1/interval.go +++ /dev/null @@ -1,465 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s1 - -import ( - "math" - "strconv" -) - -// An Interval represents a closed interval on a unit circle (also known -// as a 1-dimensional sphere). It is capable of representing the empty -// interval (containing no points), the full interval (containing all -// points), and zero-length intervals (containing a single point). -// -// Points are represented by the angle they make with the positive x-axis in -// the range [-π, π]. An interval is represented by its lower and upper -// bounds (both inclusive, since the interval is closed). The lower bound may -// be greater than the upper bound, in which case the interval is "inverted" -// (i.e. it passes through the point (-1, 0)). -// -// The point (-1, 0) has two valid representations, π and -π. The -// normalized representation of this point is π, so that endpoints -// of normal intervals are in the range (-π, π]. We normalize the latter to -// the former in IntervalFromEndpoints. However, we take advantage of the point -// -π to construct two special intervals: -// -// The full interval is [-π, π] -// The empty interval is [π, -π]. -// -// Treat the exported fields as read-only. -type Interval struct { - Lo, Hi float64 -} - -// IntervalFromEndpoints constructs a new interval from endpoints. -// Both arguments must be in the range [-π,π]. This function allows inverted intervals -// to be created. -func IntervalFromEndpoints(lo, hi float64) Interval { - i := Interval{lo, hi} - if lo == -math.Pi && hi != math.Pi { - i.Lo = math.Pi - } - if hi == -math.Pi && lo != math.Pi { - i.Hi = math.Pi - } - return i -} - -// IntervalFromPointPair returns the minimal interval containing the two given points. -// Both arguments must be in [-π,π]. -func IntervalFromPointPair(a, b float64) Interval { - if a == -math.Pi { - a = math.Pi - } - if b == -math.Pi { - b = math.Pi - } - if positiveDistance(a, b) <= math.Pi { - return Interval{a, b} - } - return Interval{b, a} -} - -// EmptyInterval returns an empty interval. -func EmptyInterval() Interval { return Interval{math.Pi, -math.Pi} } - -// FullInterval returns a full interval. -func FullInterval() Interval { return Interval{-math.Pi, math.Pi} } - -// IsValid reports whether the interval is valid. -func (i Interval) IsValid() bool { - return (math.Abs(i.Lo) <= math.Pi && math.Abs(i.Hi) <= math.Pi && - !(i.Lo == -math.Pi && i.Hi != math.Pi) && - !(i.Hi == -math.Pi && i.Lo != math.Pi)) -} - -// IsFull reports whether the interval is full. -func (i Interval) IsFull() bool { return i.Lo == -math.Pi && i.Hi == math.Pi } - -// IsEmpty reports whether the interval is empty. -func (i Interval) IsEmpty() bool { return i.Lo == math.Pi && i.Hi == -math.Pi } - -// IsInverted reports whether the interval is inverted; that is, whether Lo > Hi. -func (i Interval) IsInverted() bool { return i.Lo > i.Hi } - -// Invert returns the interval with endpoints swapped. -func (i Interval) Invert() Interval { - return Interval{i.Hi, i.Lo} -} - -// Center returns the midpoint of the interval. -// It is undefined for full and empty intervals. -func (i Interval) Center() float64 { - c := 0.5 * (i.Lo + i.Hi) - if !i.IsInverted() { - return c - } - if c <= 0 { - return c + math.Pi - } - return c - math.Pi -} - -// Length returns the length of the interval. -// The length of an empty interval is negative. -func (i Interval) Length() float64 { - l := i.Hi - i.Lo - if l >= 0 { - return l - } - l += 2 * math.Pi - if l > 0 { - return l - } - return -1 -} - -// Assumes p ∈ (-π,π]. -func (i Interval) fastContains(p float64) bool { - if i.IsInverted() { - return (p >= i.Lo || p <= i.Hi) && !i.IsEmpty() - } - return p >= i.Lo && p <= i.Hi -} - -// Contains returns true iff the interval contains p. -// Assumes p ∈ [-π,π]. -func (i Interval) Contains(p float64) bool { - if p == -math.Pi { - p = math.Pi - } - return i.fastContains(p) -} - -// ContainsInterval returns true iff the interval contains oi. -func (i Interval) ContainsInterval(oi Interval) bool { - if i.IsInverted() { - if oi.IsInverted() { - return oi.Lo >= i.Lo && oi.Hi <= i.Hi - } - return (oi.Lo >= i.Lo || oi.Hi <= i.Hi) && !i.IsEmpty() - } - if oi.IsInverted() { - return i.IsFull() || oi.IsEmpty() - } - return oi.Lo >= i.Lo && oi.Hi <= i.Hi -} - -// InteriorContains returns true iff the interior of the interval contains p. -// Assumes p ∈ [-π,π]. -func (i Interval) InteriorContains(p float64) bool { - if p == -math.Pi { - p = math.Pi - } - if i.IsInverted() { - return p > i.Lo || p < i.Hi - } - return (p > i.Lo && p < i.Hi) || i.IsFull() -} - -// InteriorContainsInterval returns true iff the interior of the interval contains oi. -func (i Interval) InteriorContainsInterval(oi Interval) bool { - if i.IsInverted() { - if oi.IsInverted() { - return (oi.Lo > i.Lo && oi.Hi < i.Hi) || oi.IsEmpty() - } - return oi.Lo > i.Lo || oi.Hi < i.Hi - } - if oi.IsInverted() { - return i.IsFull() || oi.IsEmpty() - } - return (oi.Lo > i.Lo && oi.Hi < i.Hi) || i.IsFull() -} - -// Intersects returns true iff the interval contains any points in common with oi. -func (i Interval) Intersects(oi Interval) bool { - if i.IsEmpty() || oi.IsEmpty() { - return false - } - if i.IsInverted() { - return oi.IsInverted() || oi.Lo <= i.Hi || oi.Hi >= i.Lo - } - if oi.IsInverted() { - return oi.Lo <= i.Hi || oi.Hi >= i.Lo - } - return oi.Lo <= i.Hi && oi.Hi >= i.Lo -} - -// InteriorIntersects returns true iff the interior of the interval contains any points in common with oi, including the latter's boundary. -func (i Interval) InteriorIntersects(oi Interval) bool { - if i.IsEmpty() || oi.IsEmpty() || i.Lo == i.Hi { - return false - } - if i.IsInverted() { - return oi.IsInverted() || oi.Lo < i.Hi || oi.Hi > i.Lo - } - if oi.IsInverted() { - return oi.Lo < i.Hi || oi.Hi > i.Lo - } - return (oi.Lo < i.Hi && oi.Hi > i.Lo) || i.IsFull() -} - -// Compute distance from a to b in [0,2π], in a numerically stable way. -func positiveDistance(a, b float64) float64 { - d := b - a - if d >= 0 { - return d - } - return (b + math.Pi) - (a - math.Pi) -} - -// Union returns the smallest interval that contains both the interval and oi. -func (i Interval) Union(oi Interval) Interval { - if oi.IsEmpty() { - return i - } - if i.fastContains(oi.Lo) { - if i.fastContains(oi.Hi) { - // Either oi ⊂ i, or i ∪ oi is the full interval. - if i.ContainsInterval(oi) { - return i - } - return FullInterval() - } - return Interval{i.Lo, oi.Hi} - } - if i.fastContains(oi.Hi) { - return Interval{oi.Lo, i.Hi} - } - - // Neither endpoint of oi is in i. Either i ⊂ oi, or i and oi are disjoint. - if i.IsEmpty() || oi.fastContains(i.Lo) { - return oi - } - - // This is the only hard case where we need to find the closest pair of endpoints. - if positiveDistance(oi.Hi, i.Lo) < positiveDistance(i.Hi, oi.Lo) { - return Interval{oi.Lo, i.Hi} - } - return Interval{i.Lo, oi.Hi} -} - -// Intersection returns the smallest interval that contains the intersection of the interval and oi. -func (i Interval) Intersection(oi Interval) Interval { - if oi.IsEmpty() { - return EmptyInterval() - } - if i.fastContains(oi.Lo) { - if i.fastContains(oi.Hi) { - // Either oi ⊂ i, or i and oi intersect twice. Neither are empty. - // In the first case we want to return i (which is shorter than oi). - // In the second case one of them is inverted, and the smallest interval - // that covers the two disjoint pieces is the shorter of i and oi. - // We thus want to pick the shorter of i and oi in both cases. - if oi.Length() < i.Length() { - return oi - } - return i - } - return Interval{oi.Lo, i.Hi} - } - if i.fastContains(oi.Hi) { - return Interval{i.Lo, oi.Hi} - } - - // Neither endpoint of oi is in i. Either i ⊂ oi, or i and oi are disjoint. - if oi.fastContains(i.Lo) { - return i - } - return EmptyInterval() -} - -// AddPoint returns the interval expanded by the minimum amount necessary such -// that it contains the given point "p" (an angle in the range [-π, π]). -func (i Interval) AddPoint(p float64) Interval { - if math.Abs(p) > math.Pi { - return i - } - if p == -math.Pi { - p = math.Pi - } - if i.fastContains(p) { - return i - } - if i.IsEmpty() { - return Interval{p, p} - } - if positiveDistance(p, i.Lo) < positiveDistance(i.Hi, p) { - return Interval{p, i.Hi} - } - return Interval{i.Lo, p} -} - -// Define the maximum rounding error for arithmetic operations. Depending on the -// platform the mantissa precision may be different than others, so we choose to -// use specific values to be consistent across all. -// The values come from the C++ implementation. -var ( - // epsilon is a small number that represents a reasonable level of noise between two - // values that can be considered to be equal. - epsilon = 1e-15 - // dblEpsilon is a smaller number for values that require more precision. - dblEpsilon = 2.220446049e-16 -) - -// Expanded returns an interval that has been expanded on each side by margin. -// If margin is negative, then the function shrinks the interval on -// each side by margin instead. The resulting interval may be empty or -// full. Any expansion (positive or negative) of a full interval remains -// full, and any expansion of an empty interval remains empty. -func (i Interval) Expanded(margin float64) Interval { - if margin >= 0 { - if i.IsEmpty() { - return i - } - // Check whether this interval will be full after expansion, allowing - // for a rounding error when computing each endpoint. - if i.Length()+2*margin+2*dblEpsilon >= 2*math.Pi { - return FullInterval() - } - } else { - if i.IsFull() { - return i - } - // Check whether this interval will be empty after expansion, allowing - // for a rounding error when computing each endpoint. - if i.Length()+2*margin-2*dblEpsilon <= 0 { - return EmptyInterval() - } - } - result := IntervalFromEndpoints( - math.Remainder(i.Lo-margin, 2*math.Pi), - math.Remainder(i.Hi+margin, 2*math.Pi), - ) - if result.Lo <= -math.Pi { - result.Lo = math.Pi - } - return result -} - -// ApproxEqual reports whether this interval can be transformed into the given -// interval by moving each endpoint by at most ε, without the -// endpoints crossing (which would invert the interval). Empty and full -// intervals are considered to start at an arbitrary point on the unit circle, -// so any interval with (length <= 2*ε) matches the empty interval, and -// any interval with (length >= 2*π - 2*ε) matches the full interval. -func (i Interval) ApproxEqual(other Interval) bool { - // Full and empty intervals require special cases because the endpoints - // are considered to be positioned arbitrarily. - if i.IsEmpty() { - return other.Length() <= 2*epsilon - } - if other.IsEmpty() { - return i.Length() <= 2*epsilon - } - if i.IsFull() { - return other.Length() >= 2*(math.Pi-epsilon) - } - if other.IsFull() { - return i.Length() >= 2*(math.Pi-epsilon) - } - - // The purpose of the last test below is to verify that moving the endpoints - // does not invert the interval, e.g. [-1e20, 1e20] vs. [1e20, -1e20]. - return (math.Abs(math.Remainder(other.Lo-i.Lo, 2*math.Pi)) <= epsilon && - math.Abs(math.Remainder(other.Hi-i.Hi, 2*math.Pi)) <= epsilon && - math.Abs(i.Length()-other.Length()) <= 2*epsilon) - -} - -func (i Interval) String() string { - // like "[%.7f, %.7f]" - return "[" + strconv.FormatFloat(i.Lo, 'f', 7, 64) + ", " + strconv.FormatFloat(i.Hi, 'f', 7, 64) + "]" -} - -// Complement returns the complement of the interior of the interval. An interval and -// its complement have the same boundary but do not share any interior -// values. The complement operator is not a bijection, since the complement -// of a singleton interval (containing a single value) is the same as the -// complement of an empty interval. -func (i Interval) Complement() Interval { - if i.Lo == i.Hi { - // Singleton. The interval just contains a single point. - return FullInterval() - } - // Handles empty and full. - return Interval{i.Hi, i.Lo} -} - -// ComplementCenter returns the midpoint of the complement of the interval. For full and empty -// intervals, the result is arbitrary. For a singleton interval (containing a -// single point), the result is its antipodal point on S1. -func (i Interval) ComplementCenter() float64 { - if i.Lo != i.Hi { - return i.Complement().Center() - } - // Singleton. The interval just contains a single point. - if i.Hi <= 0 { - return i.Hi + math.Pi - } - return i.Hi - math.Pi -} - -// DirectedHausdorffDistance returns the Hausdorff distance to the given interval. -// For two intervals i and y, this distance is defined by -// -// h(i, y) = max_{p in i} min_{q in y} d(p, q), -// -// where d(.,.) is measured along S1. -func (i Interval) DirectedHausdorffDistance(y Interval) Angle { - if y.ContainsInterval(i) { - return 0 // This includes the case i is empty. - } - if y.IsEmpty() { - return Angle(math.Pi) // maximum possible distance on s1. - } - yComplementCenter := y.ComplementCenter() - if i.Contains(yComplementCenter) { - return Angle(positiveDistance(y.Hi, yComplementCenter)) - } - - // The Hausdorff distance is realized by either two i.Hi endpoints or two - // i.Lo endpoints, whichever is farther apart. - hiHi := 0.0 - if IntervalFromEndpoints(y.Hi, yComplementCenter).Contains(i.Hi) { - hiHi = positiveDistance(y.Hi, i.Hi) - } - - loLo := 0.0 - if IntervalFromEndpoints(yComplementCenter, y.Lo).Contains(i.Lo) { - loLo = positiveDistance(i.Lo, y.Lo) - } - - return Angle(math.Max(hiHi, loLo)) -} - -// Project returns the closest point in the interval to the given point p. -// The interval must be non-empty. -func (i Interval) Project(p float64) float64 { - if p == -math.Pi { - p = math.Pi - } - if i.fastContains(p) { - return p - } - // Compute distance from p to each endpoint. - dlo := positiveDistance(p, i.Lo) - dhi := positiveDistance(i.Hi, p) - if dlo < dhi { - return i.Lo - } - return i.Hi -} diff --git a/backend/vendor/github.com/golang/geo/s2/bits_go18.go b/backend/vendor/github.com/golang/geo/s2/bits_go18.go deleted file mode 100644 index 4b8bfef9..00000000 --- a/backend/vendor/github.com/golang/geo/s2/bits_go18.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build !go1.9 -// +build !go1.9 - -package s2 - -// This file is for the bit manipulation code pre-Go 1.9. - -// findMSBSetNonZero64 returns the index (between 0 and 63) of the most -// significant set bit. Passing zero to this function returns zero. -func findMSBSetNonZero64(x uint64) int { - val := []uint64{0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000, 0xFFFFFFFF00000000} - shift := []uint64{1, 2, 4, 8, 16, 32} - var msbPos uint64 - for i := 5; i >= 0; i-- { - if x&val[i] != 0 { - x >>= shift[i] - msbPos |= shift[i] - } - } - return int(msbPos) -} - -const deBruijn64 = 0x03f79d71b4ca8b09 -const digitMask = uint64(1<<64 - 1) - -var deBruijn64Lookup = []byte{ - 0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, - 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, - 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, - 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6, -} - -// findLSBSetNonZero64 returns the index (between 0 and 63) of the least -// significant set bit. Passing zero to this function returns zero. -// -// This code comes from trailingZeroBits in https://golang.org/src/math/big/nat.go -// which references (Knuth, volume 4, section 7.3.1). -func findLSBSetNonZero64(x uint64) int { - return int(deBruijn64Lookup[((x&-x)*(deBruijn64&digitMask))>>58]) -} diff --git a/backend/vendor/github.com/golang/geo/s2/bits_go19.go b/backend/vendor/github.com/golang/geo/s2/bits_go19.go deleted file mode 100644 index 0de1ac69..00000000 --- a/backend/vendor/github.com/golang/geo/s2/bits_go19.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build go1.9 -// +build go1.9 - -package s2 - -// This file is for the bit manipulation code post-Go 1.9. - -import "math/bits" - -// findMSBSetNonZero64 returns the index (between 0 and 63) of the most -// significant set bit. Passing zero to this function return zero. -func findMSBSetNonZero64(x uint64) int { - if x == 0 { - return 0 - } - return 63 - bits.LeadingZeros64(x) -} - -// findLSBSetNonZero64 returns the index (between 0 and 63) of the least -// significant set bit. Passing zero to this function return zero. -func findLSBSetNonZero64(x uint64) int { - if x == 0 { - return 0 - } - return bits.TrailingZeros64(x) -} diff --git a/backend/vendor/github.com/golang/geo/s2/cap.go b/backend/vendor/github.com/golang/geo/s2/cap.go deleted file mode 100644 index 9327b6bb..00000000 --- a/backend/vendor/github.com/golang/geo/s2/cap.go +++ /dev/null @@ -1,519 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "io" - "math" - - "github.com/golang/geo/r1" - "github.com/golang/geo/s1" -) - -var ( - // centerPoint is the default center for Caps - centerPoint = PointFromCoords(1.0, 0, 0) -) - -// Cap represents a disc-shaped region defined by a center and radius. -// Technically this shape is called a "spherical cap" (rather than disc) -// because it is not planar; the cap represents a portion of the sphere that -// has been cut off by a plane. The boundary of the cap is the circle defined -// by the intersection of the sphere and the plane. For containment purposes, -// the cap is a closed set, i.e. it contains its boundary. -// -// For the most part, you can use a spherical cap wherever you would use a -// disc in planar geometry. The radius of the cap is measured along the -// surface of the sphere (rather than the straight-line distance through the -// interior). Thus a cap of radius π/2 is a hemisphere, and a cap of radius -// π covers the entire sphere. -// -// The center is a point on the surface of the unit sphere. (Hence the need for -// it to be of unit length.) -// -// A cap can also be defined by its center point and height. The height is the -// distance from the center point to the cutoff plane. There is also support for -// "empty" and "full" caps, which contain no points and all points respectively. -// -// Here are some useful relationships between the cap height (h), the cap -// radius (r), the maximum chord length from the cap's center (d), and the -// radius of cap's base (a). -// -// h = 1 - cos(r) -// = 2 * sin^2(r/2) -// d^2 = 2 * h -// = a^2 + h^2 -// -// The zero value of Cap is an invalid cap. Use EmptyCap to get a valid empty cap. -type Cap struct { - center Point - radius s1.ChordAngle -} - -// CapFromPoint constructs a cap containing a single point. -func CapFromPoint(p Point) Cap { - return CapFromCenterChordAngle(p, 0) -} - -// CapFromCenterAngle constructs a cap with the given center and angle. -func CapFromCenterAngle(center Point, angle s1.Angle) Cap { - return CapFromCenterChordAngle(center, s1.ChordAngleFromAngle(angle)) -} - -// CapFromCenterChordAngle constructs a cap where the angle is expressed as an -// s1.ChordAngle. This constructor is more efficient than using an s1.Angle. -func CapFromCenterChordAngle(center Point, radius s1.ChordAngle) Cap { - return Cap{ - center: center, - radius: radius, - } -} - -// CapFromCenterHeight constructs a cap with the given center and height. A -// negative height yields an empty cap; a height of 2 or more yields a full cap. -// The center should be unit length. -func CapFromCenterHeight(center Point, height float64) Cap { - return CapFromCenterChordAngle(center, s1.ChordAngleFromSquaredLength(2*height)) -} - -// CapFromCenterArea constructs a cap with the given center and surface area. -// Note that the area can also be interpreted as the solid angle subtended by the -// cap (because the sphere has unit radius). A negative area yields an empty cap; -// an area of 4*π or more yields a full cap. -func CapFromCenterArea(center Point, area float64) Cap { - return CapFromCenterChordAngle(center, s1.ChordAngleFromSquaredLength(area/math.Pi)) -} - -// EmptyCap returns a cap that contains no points. -func EmptyCap() Cap { - return CapFromCenterChordAngle(centerPoint, s1.NegativeChordAngle) -} - -// FullCap returns a cap that contains all points. -func FullCap() Cap { - return CapFromCenterChordAngle(centerPoint, s1.StraightChordAngle) -} - -// IsValid reports whether the Cap is considered valid. -func (c Cap) IsValid() bool { - return c.center.Vector.IsUnit() && c.radius <= s1.StraightChordAngle -} - -// IsEmpty reports whether the cap is empty, i.e. it contains no points. -func (c Cap) IsEmpty() bool { - return c.radius < 0 -} - -// IsFull reports whether the cap is full, i.e. it contains all points. -func (c Cap) IsFull() bool { - return c.radius == s1.StraightChordAngle -} - -// Center returns the cap's center point. -func (c Cap) Center() Point { - return c.center -} - -// Height returns the height of the cap. This is the distance from the center -// point to the cutoff plane. -func (c Cap) Height() float64 { - return float64(0.5 * c.radius) -} - -// Radius returns the cap radius as an s1.Angle. (Note that the cap angle -// is stored internally as a ChordAngle, so this method requires a trigonometric -// operation and may yield a slightly different result than the value passed -// to CapFromCenterAngle). -func (c Cap) Radius() s1.Angle { - return c.radius.Angle() -} - -// Area returns the surface area of the Cap on the unit sphere. -func (c Cap) Area() float64 { - return 2.0 * math.Pi * math.Max(0, c.Height()) -} - -// Contains reports whether this cap contains the other. -func (c Cap) Contains(other Cap) bool { - // In a set containment sense, every cap contains the empty cap. - if c.IsFull() || other.IsEmpty() { - return true - } - return c.radius >= ChordAngleBetweenPoints(c.center, other.center).Add(other.radius) -} - -// Intersects reports whether this cap intersects the other cap. -// i.e. whether they have any points in common. -func (c Cap) Intersects(other Cap) bool { - if c.IsEmpty() || other.IsEmpty() { - return false - } - - return c.radius.Add(other.radius) >= ChordAngleBetweenPoints(c.center, other.center) -} - -// InteriorIntersects reports whether this caps interior intersects the other cap. -func (c Cap) InteriorIntersects(other Cap) bool { - // Make sure this cap has an interior and the other cap is non-empty. - if c.radius <= 0 || other.IsEmpty() { - return false - } - - return c.radius.Add(other.radius) > ChordAngleBetweenPoints(c.center, other.center) -} - -// ContainsPoint reports whether this cap contains the point. -func (c Cap) ContainsPoint(p Point) bool { - return ChordAngleBetweenPoints(c.center, p) <= c.radius -} - -// InteriorContainsPoint reports whether the point is within the interior of this cap. -func (c Cap) InteriorContainsPoint(p Point) bool { - return c.IsFull() || ChordAngleBetweenPoints(c.center, p) < c.radius -} - -// Complement returns the complement of the interior of the cap. A cap and its -// complement have the same boundary but do not share any interior points. -// The complement operator is not a bijection because the complement of a -// singleton cap (containing a single point) is the same as the complement -// of an empty cap. -func (c Cap) Complement() Cap { - if c.IsFull() { - return EmptyCap() - } - if c.IsEmpty() { - return FullCap() - } - - return CapFromCenterChordAngle(Point{c.center.Mul(-1)}, s1.StraightChordAngle.Sub(c.radius)) -} - -// CapBound returns a bounding spherical cap. This is not guaranteed to be exact. -func (c Cap) CapBound() Cap { - return c -} - -// RectBound returns a bounding latitude-longitude rectangle. -// The bounds are not guaranteed to be tight. -func (c Cap) RectBound() Rect { - if c.IsEmpty() { - return EmptyRect() - } - - capAngle := c.Radius().Radians() - allLongitudes := false - lat := r1.Interval{ - Lo: latitude(c.center).Radians() - capAngle, - Hi: latitude(c.center).Radians() + capAngle, - } - lng := s1.FullInterval() - - // Check whether cap includes the south pole. - if lat.Lo <= -math.Pi/2 { - lat.Lo = -math.Pi / 2 - allLongitudes = true - } - - // Check whether cap includes the north pole. - if lat.Hi >= math.Pi/2 { - lat.Hi = math.Pi / 2 - allLongitudes = true - } - - if !allLongitudes { - // Compute the range of longitudes covered by the cap. We use the law - // of sines for spherical triangles. Consider the triangle ABC where - // A is the north pole, B is the center of the cap, and C is the point - // of tangency between the cap boundary and a line of longitude. Then - // C is a right angle, and letting a,b,c denote the sides opposite A,B,C, - // we have sin(a)/sin(A) = sin(c)/sin(C), or sin(A) = sin(a)/sin(c). - // Here "a" is the cap angle, and "c" is the colatitude (90 degrees - // minus the latitude). This formula also works for negative latitudes. - // - // The formula for sin(a) follows from the relationship h = 1 - cos(a). - sinA := c.radius.Sin() - sinC := math.Cos(latitude(c.center).Radians()) - if sinA <= sinC { - angleA := math.Asin(sinA / sinC) - lng.Lo = math.Remainder(longitude(c.center).Radians()-angleA, math.Pi*2) - lng.Hi = math.Remainder(longitude(c.center).Radians()+angleA, math.Pi*2) - } - } - return Rect{lat, lng} -} - -// Equal reports whether this cap is equal to the other cap. -func (c Cap) Equal(other Cap) bool { - return (c.radius == other.radius && c.center == other.center) || - (c.IsEmpty() && other.IsEmpty()) || - (c.IsFull() && other.IsFull()) -} - -// ApproxEqual reports whether this cap is equal to the other cap within the given tolerance. -func (c Cap) ApproxEqual(other Cap) bool { - const epsilon = 1e-14 - r2 := float64(c.radius) - otherR2 := float64(other.radius) - return c.center.ApproxEqual(other.center) && - math.Abs(r2-otherR2) <= epsilon || - c.IsEmpty() && otherR2 <= epsilon || - other.IsEmpty() && r2 <= epsilon || - c.IsFull() && otherR2 >= 2-epsilon || - other.IsFull() && r2 >= 2-epsilon -} - -// AddPoint increases the cap if necessary to include the given point. If this cap is empty, -// then the center is set to the point with a zero height. p must be unit-length. -func (c Cap) AddPoint(p Point) Cap { - if c.IsEmpty() { - c.center = p - c.radius = 0 - return c - } - - // After calling cap.AddPoint(p), cap.Contains(p) must be true. However - // we don't need to do anything special to achieve this because Contains() - // does exactly the same distance calculation that we do here. - if newRad := ChordAngleBetweenPoints(c.center, p); newRad > c.radius { - c.radius = newRad - } - return c -} - -// AddCap increases the cap height if necessary to include the other cap. If this cap is empty, -// it is set to the other cap. -func (c Cap) AddCap(other Cap) Cap { - if c.IsEmpty() { - return other - } - if other.IsEmpty() { - return c - } - - // We round up the distance to ensure that the cap is actually contained. - // TODO(roberts): Do some error analysis in order to guarantee this. - dist := ChordAngleBetweenPoints(c.center, other.center).Add(other.radius) - if newRad := dist.Expanded(dblEpsilon * float64(dist)); newRad > c.radius { - c.radius = newRad - } - return c -} - -// Expanded returns a new cap expanded by the given angle. If the cap is empty, -// it returns an empty cap. -func (c Cap) Expanded(distance s1.Angle) Cap { - if c.IsEmpty() { - return EmptyCap() - } - return CapFromCenterChordAngle(c.center, c.radius.Add(s1.ChordAngleFromAngle(distance))) -} - -func (c Cap) String() string { - return fmt.Sprintf("[Center=%v, Radius=%f]", c.center.Vector, c.Radius().Degrees()) -} - -// radiusToHeight converts an s1.Angle into the height of the cap. -func radiusToHeight(r s1.Angle) float64 { - if r.Radians() < 0 { - return float64(s1.NegativeChordAngle) - } - if r.Radians() >= math.Pi { - return float64(s1.RightChordAngle) - } - return float64(0.5 * s1.ChordAngleFromAngle(r)) - -} - -// ContainsCell reports whether the cap contains the given cell. -func (c Cap) ContainsCell(cell Cell) bool { - // If the cap does not contain all cell vertices, return false. - var vertices [4]Point - for k := 0; k < 4; k++ { - vertices[k] = cell.Vertex(k) - if !c.ContainsPoint(vertices[k]) { - return false - } - } - // Otherwise, return true if the complement of the cap does not intersect the cell. - return !c.Complement().intersects(cell, vertices) -} - -// IntersectsCell reports whether the cap intersects the cell. -func (c Cap) IntersectsCell(cell Cell) bool { - // If the cap contains any cell vertex, return true. - var vertices [4]Point - for k := 0; k < 4; k++ { - vertices[k] = cell.Vertex(k) - if c.ContainsPoint(vertices[k]) { - return true - } - } - return c.intersects(cell, vertices) -} - -// intersects reports whether the cap intersects any point of the cell excluding -// its vertices (which are assumed to already have been checked). -func (c Cap) intersects(cell Cell, vertices [4]Point) bool { - // If the cap is a hemisphere or larger, the cell and the complement of the cap - // are both convex. Therefore since no vertex of the cell is contained, no other - // interior point of the cell is contained either. - if c.radius >= s1.RightChordAngle { - return false - } - - // We need to check for empty caps due to the center check just below. - if c.IsEmpty() { - return false - } - - // Optimization: return true if the cell contains the cap center. This allows half - // of the edge checks below to be skipped. - if cell.ContainsPoint(c.center) { - return true - } - - // At this point we know that the cell does not contain the cap center, and the cap - // does not contain any cell vertex. The only way that they can intersect is if the - // cap intersects the interior of some edge. - sin2Angle := c.radius.Sin2() - for k := 0; k < 4; k++ { - edge := cell.Edge(k).Vector - dot := c.center.Vector.Dot(edge) - if dot > 0 { - // The center is in the interior half-space defined by the edge. We do not need - // to consider these edges, since if the cap intersects this edge then it also - // intersects the edge on the opposite side of the cell, because the center is - // not contained with the cell. - continue - } - - // The Norm2() factor is necessary because "edge" is not normalized. - if dot*dot > sin2Angle*edge.Norm2() { - return false - } - - // Otherwise, the great circle containing this edge intersects the interior of the cap. We just - // need to check whether the point of closest approach occurs between the two edge endpoints. - dir := edge.Cross(c.center.Vector) - if dir.Dot(vertices[k].Vector) < 0 && dir.Dot(vertices[(k+1)&3].Vector) > 0 { - return true - } - } - return false -} - -// CellUnionBound computes a covering of the Cap. In general the covering -// consists of at most 4 cells except for very large caps, which may need -// up to 6 cells. The output is not sorted. -func (c Cap) CellUnionBound() []CellID { - // TODO(roberts): The covering could be made quite a bit tighter by mapping - // the cap to a rectangle in (i,j)-space and finding a covering for that. - - // Find the maximum level such that the cap contains at most one cell vertex - // and such that CellID.AppendVertexNeighbors() can be called. - level := MinWidthMetric.MaxLevel(c.Radius().Radians()) - 1 - - // If level < 0, more than three face cells are required. - if level < 0 { - cellIDs := make([]CellID, 6) - for face := 0; face < 6; face++ { - cellIDs[face] = CellIDFromFace(face) - } - return cellIDs - } - // The covering consists of the 4 cells at the given level that share the - // cell vertex that is closest to the cap center. - return cellIDFromPoint(c.center).VertexNeighbors(level) -} - -// Centroid returns the true centroid of the cap multiplied by its surface area -// The result lies on the ray from the origin through the cap's center, but it -// is not unit length. Note that if you just want the "surface centroid", i.e. -// the normalized result, then it is simpler to call Center. -// -// The reason for multiplying the result by the cap area is to make it -// easier to compute the centroid of more complicated shapes. The centroid -// of a union of disjoint regions can be computed simply by adding their -// Centroid() results. Caveat: for caps that contain a single point -// (i.e., zero radius), this method always returns the origin (0, 0, 0). -// This is because shapes with no area don't affect the centroid of a -// union whose total area is positive. -func (c Cap) Centroid() Point { - // From symmetry, the centroid of the cap must be somewhere on the line - // from the origin to the center of the cap on the surface of the sphere. - // When a sphere is divided into slices of constant thickness by a set of - // parallel planes, all slices have the same surface area. This implies - // that the radial component of the centroid is simply the midpoint of the - // range of radial distances spanned by the cap. That is easily computed - // from the cap height. - if c.IsEmpty() { - return Point{} - } - r := 1 - 0.5*c.Height() - return Point{c.center.Mul(r * c.Area())} -} - -// Union returns the smallest cap which encloses this cap and other. -func (c Cap) Union(other Cap) Cap { - // If the other cap is larger, swap c and other for the rest of the computations. - if c.radius < other.radius { - c, other = other, c - } - - if c.IsFull() || other.IsEmpty() { - return c - } - - // TODO: This calculation would be more efficient using s1.ChordAngles. - cRadius := c.Radius() - otherRadius := other.Radius() - distance := c.center.Distance(other.center) - if cRadius >= distance+otherRadius { - return c - } - - resRadius := 0.5 * (distance + cRadius + otherRadius) - resCenter := InterpolateAtDistance(0.5*(distance-cRadius+otherRadius), c.center, other.center) - return CapFromCenterAngle(resCenter, resRadius) -} - -// Encode encodes the Cap. -func (c Cap) Encode(w io.Writer) error { - e := &encoder{w: w} - c.encode(e) - return e.err -} - -func (c Cap) encode(e *encoder) { - e.writeFloat64(c.center.X) - e.writeFloat64(c.center.Y) - e.writeFloat64(c.center.Z) - e.writeFloat64(float64(c.radius)) -} - -// Decode decodes the Cap. -func (c *Cap) Decode(r io.Reader) error { - d := &decoder{r: asByteReader(r)} - c.decode(d) - return d.err -} - -func (c *Cap) decode(d *decoder) { - c.center.X = d.readFloat64() - c.center.Y = d.readFloat64() - c.center.Z = d.readFloat64() - c.radius = s1.ChordAngle(d.readFloat64()) -} diff --git a/backend/vendor/github.com/golang/geo/s2/cell.go b/backend/vendor/github.com/golang/geo/s2/cell.go deleted file mode 100644 index 0a01a4f1..00000000 --- a/backend/vendor/github.com/golang/geo/s2/cell.go +++ /dev/null @@ -1,698 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "io" - "math" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r2" - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// Cell is an S2 region object that represents a cell. Unlike CellIDs, -// it supports efficient containment and intersection tests. However, it is -// also a more expensive representation. -type Cell struct { - face int8 - level int8 - orientation int8 - id CellID - uv r2.Rect -} - -// CellFromCellID constructs a Cell corresponding to the given CellID. -func CellFromCellID(id CellID) Cell { - c := Cell{} - c.id = id - f, i, j, o := c.id.faceIJOrientation() - c.face = int8(f) - c.level = int8(c.id.Level()) - c.orientation = int8(o) - c.uv = ijLevelToBoundUV(i, j, int(c.level)) - return c -} - -// CellFromPoint constructs a cell for the given Point. -func CellFromPoint(p Point) Cell { - return CellFromCellID(cellIDFromPoint(p)) -} - -// CellFromLatLng constructs a cell for the given LatLng. -func CellFromLatLng(ll LatLng) Cell { - return CellFromCellID(CellIDFromLatLng(ll)) -} - -// Face returns the face this cell is on. -func (c Cell) Face() int { - return int(c.face) -} - -// oppositeFace returns the face opposite the given face. -func oppositeFace(face int) int { - return (face + 3) % 6 -} - -// Level returns the level of this cell. -func (c Cell) Level() int { - return int(c.level) -} - -// ID returns the CellID this cell represents. -func (c Cell) ID() CellID { - return c.id -} - -// IsLeaf returns whether this Cell is a leaf or not. -func (c Cell) IsLeaf() bool { - return c.level == maxLevel -} - -// SizeIJ returns the edge length of this cell in (i,j)-space. -func (c Cell) SizeIJ() int { - return sizeIJ(int(c.level)) -} - -// SizeST returns the edge length of this cell in (s,t)-space. -func (c Cell) SizeST() float64 { - return c.id.sizeST(int(c.level)) -} - -// Vertex returns the k-th vertex of the cell (k = 0,1,2,3) in CCW order -// (lower left, lower right, upper right, upper left in the UV plane). -func (c Cell) Vertex(k int) Point { - return Point{faceUVToXYZ(int(c.face), c.uv.Vertices()[k].X, c.uv.Vertices()[k].Y).Normalize()} -} - -// Edge returns the inward-facing normal of the great circle passing through -// the CCW ordered edge from vertex k to vertex k+1 (mod 4) (for k = 0,1,2,3). -func (c Cell) Edge(k int) Point { - switch k { - case 0: - return Point{vNorm(int(c.face), c.uv.Y.Lo).Normalize()} // Bottom - case 1: - return Point{uNorm(int(c.face), c.uv.X.Hi).Normalize()} // Right - case 2: - return Point{vNorm(int(c.face), c.uv.Y.Hi).Mul(-1.0).Normalize()} // Top - default: - return Point{uNorm(int(c.face), c.uv.X.Lo).Mul(-1.0).Normalize()} // Left - } -} - -// BoundUV returns the bounds of this cell in (u,v)-space. -func (c Cell) BoundUV() r2.Rect { - return c.uv -} - -// Center returns the direction vector corresponding to the center in -// (s,t)-space of the given cell. This is the point at which the cell is -// divided into four subcells; it is not necessarily the centroid of the -// cell in (u,v)-space or (x,y,z)-space -func (c Cell) Center() Point { - return Point{c.id.rawPoint().Normalize()} -} - -// Children returns the four direct children of this cell in traversal order -// and returns true. If this is a leaf cell, or the children could not be created, -// false is returned. -// The C++ method is called Subdivide. -func (c Cell) Children() ([4]Cell, bool) { - var children [4]Cell - - if c.id.IsLeaf() { - return children, false - } - - // Compute the cell midpoint in uv-space. - uvMid := c.id.centerUV() - - // Create four children with the appropriate bounds. - cid := c.id.ChildBegin() - for pos := 0; pos < 4; pos++ { - children[pos] = Cell{ - face: c.face, - level: c.level + 1, - orientation: c.orientation ^ int8(posToOrientation[pos]), - id: cid, - } - - // We want to split the cell in half in u and v. To decide which - // side to set equal to the midpoint value, we look at cell's (i,j) - // position within its parent. The index for i is in bit 1 of ij. - ij := posToIJ[c.orientation][pos] - i := ij >> 1 - j := ij & 1 - if i == 1 { - children[pos].uv.X.Hi = c.uv.X.Hi - children[pos].uv.X.Lo = uvMid.X - } else { - children[pos].uv.X.Lo = c.uv.X.Lo - children[pos].uv.X.Hi = uvMid.X - } - if j == 1 { - children[pos].uv.Y.Hi = c.uv.Y.Hi - children[pos].uv.Y.Lo = uvMid.Y - } else { - children[pos].uv.Y.Lo = c.uv.Y.Lo - children[pos].uv.Y.Hi = uvMid.Y - } - cid = cid.Next() - } - return children, true -} - -// ExactArea returns the area of this cell as accurately as possible. -func (c Cell) ExactArea() float64 { - v0, v1, v2, v3 := c.Vertex(0), c.Vertex(1), c.Vertex(2), c.Vertex(3) - return PointArea(v0, v1, v2) + PointArea(v0, v2, v3) -} - -// ApproxArea returns the approximate area of this cell. This method is accurate -// to within 3% percent for all cell sizes and accurate to within 0.1% for cells -// at level 5 or higher (i.e. squares 350km to a side or smaller on the Earth's -// surface). It is moderately cheap to compute. -func (c Cell) ApproxArea() float64 { - // All cells at the first two levels have the same area. - if c.level < 2 { - return c.AverageArea() - } - - // First, compute the approximate area of the cell when projected - // perpendicular to its normal. The cross product of its diagonals gives - // the normal, and the length of the normal is twice the projected area. - flatArea := 0.5 * (c.Vertex(2).Sub(c.Vertex(0).Vector). - Cross(c.Vertex(3).Sub(c.Vertex(1).Vector)).Norm()) - - // Now, compensate for the curvature of the cell surface by pretending - // that the cell is shaped like a spherical cap. The ratio of the - // area of a spherical cap to the area of its projected disc turns out - // to be 2 / (1 + sqrt(1 - r*r)) where r is the radius of the disc. - // For example, when r=0 the ratio is 1, and when r=1 the ratio is 2. - // Here we set Pi*r*r == flatArea to find the equivalent disc. - return flatArea * 2 / (1 + math.Sqrt(1-math.Min(1/math.Pi*flatArea, 1))) -} - -// AverageArea returns the average area of cells at the level of this cell. -// This is accurate to within a factor of 1.7. -func (c Cell) AverageArea() float64 { - return AvgAreaMetric.Value(int(c.level)) -} - -// IntersectsCell reports whether the intersection of this cell and the other cell is not nil. -func (c Cell) IntersectsCell(oc Cell) bool { - return c.id.Intersects(oc.id) -} - -// ContainsCell reports whether this cell contains the other cell. -func (c Cell) ContainsCell(oc Cell) bool { - return c.id.Contains(oc.id) -} - -// CellUnionBound computes a covering of the Cell. -func (c Cell) CellUnionBound() []CellID { - return c.CapBound().CellUnionBound() -} - -// latitude returns the latitude of the cell vertex in radians given by (i,j), -// where i and j indicate the Hi (1) or Lo (0) corner. -func (c Cell) latitude(i, j int) float64 { - var u, v float64 - switch { - case i == 0 && j == 0: - u = c.uv.X.Lo - v = c.uv.Y.Lo - case i == 0 && j == 1: - u = c.uv.X.Lo - v = c.uv.Y.Hi - case i == 1 && j == 0: - u = c.uv.X.Hi - v = c.uv.Y.Lo - case i == 1 && j == 1: - u = c.uv.X.Hi - v = c.uv.Y.Hi - default: - panic("i and/or j is out of bounds") - } - return latitude(Point{faceUVToXYZ(int(c.face), u, v)}).Radians() -} - -// longitude returns the longitude of the cell vertex in radians given by (i,j), -// where i and j indicate the Hi (1) or Lo (0) corner. -func (c Cell) longitude(i, j int) float64 { - var u, v float64 - switch { - case i == 0 && j == 0: - u = c.uv.X.Lo - v = c.uv.Y.Lo - case i == 0 && j == 1: - u = c.uv.X.Lo - v = c.uv.Y.Hi - case i == 1 && j == 0: - u = c.uv.X.Hi - v = c.uv.Y.Lo - case i == 1 && j == 1: - u = c.uv.X.Hi - v = c.uv.Y.Hi - default: - panic("i and/or j is out of bounds") - } - return longitude(Point{faceUVToXYZ(int(c.face), u, v)}).Radians() -} - -var ( - poleMinLat = math.Asin(math.Sqrt(1.0/3)) - 0.5*dblEpsilon -) - -// RectBound returns the bounding rectangle of this cell. -func (c Cell) RectBound() Rect { - if c.level > 0 { - // Except for cells at level 0, the latitude and longitude extremes are - // attained at the vertices. Furthermore, the latitude range is - // determined by one pair of diagonally opposite vertices and the - // longitude range is determined by the other pair. - // - // We first determine which corner (i,j) of the cell has the largest - // absolute latitude. To maximize latitude, we want to find the point in - // the cell that has the largest absolute z-coordinate and the smallest - // absolute x- and y-coordinates. To do this we look at each coordinate - // (u and v), and determine whether we want to minimize or maximize that - // coordinate based on the axis direction and the cell's (u,v) quadrant. - u := c.uv.X.Lo + c.uv.X.Hi - v := c.uv.Y.Lo + c.uv.Y.Hi - var i, j int - if uAxis(int(c.face)).Z == 0 { - if u < 0 { - i = 1 - } - } else if u > 0 { - i = 1 - } - if vAxis(int(c.face)).Z == 0 { - if v < 0 { - j = 1 - } - } else if v > 0 { - j = 1 - } - lat := r1.IntervalFromPoint(c.latitude(i, j)).AddPoint(c.latitude(1-i, 1-j)) - lng := s1.EmptyInterval().AddPoint(c.longitude(i, 1-j)).AddPoint(c.longitude(1-i, j)) - - // We grow the bounds slightly to make sure that the bounding rectangle - // contains LatLngFromPoint(P) for any point P inside the loop L defined by the - // four *normalized* vertices. Note that normalization of a vector can - // change its direction by up to 0.5 * dblEpsilon radians, and it is not - // enough just to add Normalize calls to the code above because the - // latitude/longitude ranges are not necessarily determined by diagonally - // opposite vertex pairs after normalization. - // - // We would like to bound the amount by which the latitude/longitude of a - // contained point P can exceed the bounds computed above. In the case of - // longitude, the normalization error can change the direction of rounding - // leading to a maximum difference in longitude of 2 * dblEpsilon. In - // the case of latitude, the normalization error can shift the latitude by - // up to 0.5 * dblEpsilon and the other sources of error can cause the - // two latitudes to differ by up to another 1.5 * dblEpsilon, which also - // leads to a maximum difference of 2 * dblEpsilon. - return Rect{lat, lng}.expanded(LatLng{s1.Angle(2 * dblEpsilon), s1.Angle(2 * dblEpsilon)}).PolarClosure() - } - - // The 4 cells around the equator extend to +/-45 degrees latitude at the - // midpoints of their top and bottom edges. The two cells covering the - // poles extend down to +/-35.26 degrees at their vertices. The maximum - // error in this calculation is 0.5 * dblEpsilon. - var bound Rect - switch c.face { - case 0: - bound = Rect{r1.Interval{-math.Pi / 4, math.Pi / 4}, s1.Interval{-math.Pi / 4, math.Pi / 4}} - case 1: - bound = Rect{r1.Interval{-math.Pi / 4, math.Pi / 4}, s1.Interval{math.Pi / 4, 3 * math.Pi / 4}} - case 2: - bound = Rect{r1.Interval{poleMinLat, math.Pi / 2}, s1.FullInterval()} - case 3: - bound = Rect{r1.Interval{-math.Pi / 4, math.Pi / 4}, s1.Interval{3 * math.Pi / 4, -3 * math.Pi / 4}} - case 4: - bound = Rect{r1.Interval{-math.Pi / 4, math.Pi / 4}, s1.Interval{-3 * math.Pi / 4, -math.Pi / 4}} - default: - bound = Rect{r1.Interval{-math.Pi / 2, -poleMinLat}, s1.FullInterval()} - } - - // Finally, we expand the bound to account for the error when a point P is - // converted to an LatLng to test for containment. (The bound should be - // large enough so that it contains the computed LatLng of any contained - // point, not just the infinite-precision version.) We don't need to expand - // longitude because longitude is calculated via a single call to math.Atan2, - // which is guaranteed to be semi-monotonic. - return bound.expanded(LatLng{s1.Angle(dblEpsilon), s1.Angle(0)}) -} - -// CapBound returns the bounding cap of this cell. -func (c Cell) CapBound() Cap { - // We use the cell center in (u,v)-space as the cap axis. This vector is very close - // to GetCenter() and faster to compute. Neither one of these vectors yields the - // bounding cap with minimal surface area, but they are both pretty close. - cap := CapFromPoint(Point{faceUVToXYZ(int(c.face), c.uv.Center().X, c.uv.Center().Y).Normalize()}) - for k := 0; k < 4; k++ { - cap = cap.AddPoint(c.Vertex(k)) - } - return cap -} - -// ContainsPoint reports whether this cell contains the given point. Note that -// unlike Loop/Polygon, a Cell is considered to be a closed set. This means -// that a point on a Cell's edge or vertex belong to the Cell and the relevant -// adjacent Cells too. -// -// If you want every point to be contained by exactly one Cell, -// you will need to convert the Cell to a Loop. -func (c Cell) ContainsPoint(p Point) bool { - var uv r2.Point - var ok bool - if uv.X, uv.Y, ok = faceXYZToUV(int(c.face), p); !ok { - return false - } - - // Expand the (u,v) bound to ensure that - // - // CellFromPoint(p).ContainsPoint(p) - // - // is always true. To do this, we need to account for the error when - // converting from (u,v) coordinates to (s,t) coordinates. In the - // normal case the total error is at most dblEpsilon. - return c.uv.ExpandedByMargin(dblEpsilon).ContainsPoint(uv) -} - -// Encode encodes the Cell. -func (c Cell) Encode(w io.Writer) error { - e := &encoder{w: w} - c.encode(e) - return e.err -} - -func (c Cell) encode(e *encoder) { - c.id.encode(e) -} - -// Decode decodes the Cell. -func (c *Cell) Decode(r io.Reader) error { - d := &decoder{r: asByteReader(r)} - c.decode(d) - return d.err -} - -func (c *Cell) decode(d *decoder) { - c.id.decode(d) - *c = CellFromCellID(c.id) -} - -// vertexChordDist2 returns the squared chord distance from point P to the -// given corner vertex specified by the Hi or Lo values of each. -func (c Cell) vertexChordDist2(p Point, xHi, yHi bool) s1.ChordAngle { - x := c.uv.X.Lo - y := c.uv.Y.Lo - if xHi { - x = c.uv.X.Hi - } - if yHi { - y = c.uv.Y.Hi - } - - return ChordAngleBetweenPoints(p, PointFromCoords(x, y, 1)) -} - -// uEdgeIsClosest reports whether a point P is closer to the interior of the specified -// Cell edge (either the lower or upper edge of the Cell) or to the endpoints. -func (c Cell) uEdgeIsClosest(p Point, vHi bool) bool { - u0 := c.uv.X.Lo - u1 := c.uv.X.Hi - v := c.uv.Y.Lo - if vHi { - v = c.uv.Y.Hi - } - // These are the normals to the planes that are perpendicular to the edge - // and pass through one of its two endpoints. - dir0 := r3.Vector{v*v + 1, -u0 * v, -u0} - dir1 := r3.Vector{v*v + 1, -u1 * v, -u1} - return p.Dot(dir0) > 0 && p.Dot(dir1) < 0 -} - -// vEdgeIsClosest reports whether a point P is closer to the interior of the specified -// Cell edge (either the right or left edge of the Cell) or to the endpoints. -func (c Cell) vEdgeIsClosest(p Point, uHi bool) bool { - v0 := c.uv.Y.Lo - v1 := c.uv.Y.Hi - u := c.uv.X.Lo - if uHi { - u = c.uv.X.Hi - } - dir0 := r3.Vector{-u * v0, u*u + 1, -v0} - dir1 := r3.Vector{-u * v1, u*u + 1, -v1} - return p.Dot(dir0) > 0 && p.Dot(dir1) < 0 -} - -// edgeDistance reports the distance from a Point P to a given Cell edge. The point -// P is given by its dot product, and the uv edge by its normal in the -// given coordinate value. -func edgeDistance(ij, uv float64) s1.ChordAngle { - // Let P by the target point and let R be the closest point on the given - // edge AB. The desired distance PR can be expressed as PR^2 = PQ^2 + QR^2 - // where Q is the point P projected onto the plane through the great circle - // through AB. We can compute the distance PQ^2 perpendicular to the plane - // from "dirIJ" (the dot product of the target point P with the edge - // normal) and the squared length the edge normal (1 + uv**2). - pq2 := (ij * ij) / (1 + uv*uv) - - // We can compute the distance QR as (1 - OQ) where O is the sphere origin, - // and we can compute OQ^2 = 1 - PQ^2 using the Pythagorean theorem. - // (This calculation loses accuracy as angle POQ approaches Pi/2.) - qr := 1 - math.Sqrt(1-pq2) - return s1.ChordAngleFromSquaredLength(pq2 + qr*qr) -} - -// distanceInternal reports the distance from the given point to the interior of -// the cell if toInterior is true or to the boundary of the cell otherwise. -func (c Cell) distanceInternal(targetXYZ Point, toInterior bool) s1.ChordAngle { - // All calculations are done in the (u,v,w) coordinates of this cell's face. - target := faceXYZtoUVW(int(c.face), targetXYZ) - - // Compute dot products with all four upward or rightward-facing edge - // normals. dirIJ is the dot product for the edge corresponding to axis - // I, endpoint J. For example, dir01 is the right edge of the Cell - // (corresponding to the upper endpoint of the u-axis). - dir00 := target.X - target.Z*c.uv.X.Lo - dir01 := target.X - target.Z*c.uv.X.Hi - dir10 := target.Y - target.Z*c.uv.Y.Lo - dir11 := target.Y - target.Z*c.uv.Y.Hi - inside := true - if dir00 < 0 { - inside = false // Target is to the left of the cell - if c.vEdgeIsClosest(target, false) { - return edgeDistance(-dir00, c.uv.X.Lo) - } - } - if dir01 > 0 { - inside = false // Target is to the right of the cell - if c.vEdgeIsClosest(target, true) { - return edgeDistance(dir01, c.uv.X.Hi) - } - } - if dir10 < 0 { - inside = false // Target is below the cell - if c.uEdgeIsClosest(target, false) { - return edgeDistance(-dir10, c.uv.Y.Lo) - } - } - if dir11 > 0 { - inside = false // Target is above the cell - if c.uEdgeIsClosest(target, true) { - return edgeDistance(dir11, c.uv.Y.Hi) - } - } - if inside { - if toInterior { - return s1.ChordAngle(0) - } - // Although you might think of Cells as rectangles, they are actually - // arbitrary quadrilaterals after they are projected onto the sphere. - // Therefore the simplest approach is just to find the minimum distance to - // any of the four edges. - return minChordAngle(edgeDistance(-dir00, c.uv.X.Lo), - edgeDistance(dir01, c.uv.X.Hi), - edgeDistance(-dir10, c.uv.Y.Lo), - edgeDistance(dir11, c.uv.Y.Hi)) - } - - // Otherwise, the closest point is one of the four cell vertices. Note that - // it is *not* trivial to narrow down the candidates based on the edge sign - // tests above, because (1) the edges don't meet at right angles and (2) - // there are points on the far side of the sphere that are both above *and* - // below the cell, etc. - return minChordAngle(c.vertexChordDist2(target, false, false), - c.vertexChordDist2(target, true, false), - c.vertexChordDist2(target, false, true), - c.vertexChordDist2(target, true, true)) -} - -// Distance reports the distance from the cell to the given point. Returns zero if -// the point is inside the cell. -func (c Cell) Distance(target Point) s1.ChordAngle { - return c.distanceInternal(target, true) -} - -// MaxDistance reports the maximum distance from the cell (including its interior) to the -// given point. -func (c Cell) MaxDistance(target Point) s1.ChordAngle { - // First check the 4 cell vertices. If all are within the hemisphere - // centered around target, the max distance will be to one of these vertices. - targetUVW := faceXYZtoUVW(int(c.face), target) - maxDist := maxChordAngle(c.vertexChordDist2(targetUVW, false, false), - c.vertexChordDist2(targetUVW, true, false), - c.vertexChordDist2(targetUVW, false, true), - c.vertexChordDist2(targetUVW, true, true)) - - if maxDist <= s1.RightChordAngle { - return maxDist - } - - // Otherwise, find the minimum distance dMin to the antipodal point and the - // maximum distance will be pi - dMin. - return s1.StraightChordAngle - c.BoundaryDistance(Point{target.Mul(-1)}) -} - -// BoundaryDistance reports the distance from the cell boundary to the given point. -func (c Cell) BoundaryDistance(target Point) s1.ChordAngle { - return c.distanceInternal(target, false) -} - -// DistanceToEdge returns the minimum distance from the cell to the given edge AB. Returns -// zero if the edge intersects the cell interior. -func (c Cell) DistanceToEdge(a, b Point) s1.ChordAngle { - // Possible optimizations: - // - Currently the (cell vertex, edge endpoint) distances are computed - // twice each, and the length of AB is computed 4 times. - // - To fix this, refactor GetDistance(target) so that it skips calculating - // the distance to each cell vertex. Instead, compute the cell vertices - // and distances in this function, and add a low-level UpdateMinDistance - // that allows the XA, XB, and AB distances to be passed in. - // - It might also be more efficient to do all calculations in UVW-space, - // since this would involve transforming 2 points rather than 4. - - // First, check the minimum distance to the edge endpoints A and B. - // (This also detects whether either endpoint is inside the cell.) - minDist := minChordAngle(c.Distance(a), c.Distance(b)) - if minDist == 0 { - return minDist - } - - // Otherwise, check whether the edge crosses the cell boundary. - crosser := NewChainEdgeCrosser(a, b, c.Vertex(3)) - for i := 0; i < 4; i++ { - if crosser.ChainCrossingSign(c.Vertex(i)) != DoNotCross { - return 0 - } - } - - // Finally, check whether the minimum distance occurs between a cell vertex - // and the interior of the edge AB. (Some of this work is redundant, since - // it also checks the distance to the endpoints A and B again.) - // - // Note that we don't need to check the distance from the interior of AB to - // the interior of a cell edge, because the only way that this distance can - // be minimal is if the two edges cross (already checked above). - for i := 0; i < 4; i++ { - minDist, _ = UpdateMinDistance(c.Vertex(i), a, b, minDist) - } - return minDist -} - -// MaxDistanceToEdge returns the maximum distance from the cell (including its interior) -// to the given edge AB. -func (c Cell) MaxDistanceToEdge(a, b Point) s1.ChordAngle { - // If the maximum distance from both endpoints to the cell is less than π/2 - // then the maximum distance from the edge to the cell is the maximum of the - // two endpoint distances. - maxDist := maxChordAngle(c.MaxDistance(a), c.MaxDistance(b)) - if maxDist <= s1.RightChordAngle { - return maxDist - } - - return s1.StraightChordAngle - c.DistanceToEdge(Point{a.Mul(-1)}, Point{b.Mul(-1)}) -} - -// DistanceToCell returns the minimum distance from this cell to the given cell. -// It returns zero if one cell contains the other. -func (c Cell) DistanceToCell(target Cell) s1.ChordAngle { - // If the cells intersect, the distance is zero. We use the (u,v) ranges - // rather than CellID intersects so that cells that share a partial edge or - // corner are considered to intersect. - if c.face == target.face && c.uv.Intersects(target.uv) { - return 0 - } - - // Otherwise, the minimum distance always occurs between a vertex of one - // cell and an edge of the other cell (including the edge endpoints). This - // represents a total of 32 possible (vertex, edge) pairs. - // - // TODO(roberts): This could be optimized to be at least 5x faster by pruning - // the set of possible closest vertex/edge pairs using the faces and (u,v) - // ranges of both cells. - var va, vb [4]Point - for i := 0; i < 4; i++ { - va[i] = c.Vertex(i) - vb[i] = target.Vertex(i) - } - minDist := s1.InfChordAngle() - for i := 0; i < 4; i++ { - for j := 0; j < 4; j++ { - minDist, _ = UpdateMinDistance(va[i], vb[j], vb[(j+1)&3], minDist) - minDist, _ = UpdateMinDistance(vb[i], va[j], va[(j+1)&3], minDist) - } - } - return minDist -} - -// MaxDistanceToCell returns the maximum distance from the cell (including its -// interior) to the given target cell. -func (c Cell) MaxDistanceToCell(target Cell) s1.ChordAngle { - // Need to check the antipodal target for intersection with the cell. If it - // intersects, the distance is the straight ChordAngle. - // antipodalUV is the transpose of the original UV, interpreted within the opposite face. - antipodalUV := r2.Rect{target.uv.Y, target.uv.X} - if int(c.face) == oppositeFace(int(target.face)) && c.uv.Intersects(antipodalUV) { - return s1.StraightChordAngle - } - - // Otherwise, the maximum distance always occurs between a vertex of one - // cell and an edge of the other cell (including the edge endpoints). This - // represents a total of 32 possible (vertex, edge) pairs. - // - // TODO(roberts): When the maximum distance is at most π/2, the maximum is - // always attained between a pair of vertices, and this could be made much - // faster by testing each vertex pair once rather than the current 4 times. - var va, vb [4]Point - for i := 0; i < 4; i++ { - va[i] = c.Vertex(i) - vb[i] = target.Vertex(i) - } - maxDist := s1.NegativeChordAngle - for i := 0; i < 4; i++ { - for j := 0; j < 4; j++ { - maxDist, _ = UpdateMaxDistance(va[i], vb[j], vb[(j+1)&3], maxDist) - maxDist, _ = UpdateMaxDistance(vb[i], va[j], va[(j+1)&3], maxDist) - } - } - return maxDist -} diff --git a/backend/vendor/github.com/golang/geo/s2/cell_index.go b/backend/vendor/github.com/golang/geo/s2/cell_index.go deleted file mode 100644 index acbe7378..00000000 --- a/backend/vendor/github.com/golang/geo/s2/cell_index.go +++ /dev/null @@ -1,498 +0,0 @@ -// Copyright 2020 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "sort" -) - -const ( - // A special label indicating that the ContentsIterator done is true. - cellIndexDoneContents = -1 -) - -// cellIndexNode represents a node in the CellIndex. Cells are organized in a -// tree such that the ancestors of a given node contain that node. -type cellIndexNode struct { - cellID CellID - label int32 - parent int32 -} - -// newCellIndexNode returns a node with the appropriate default values. -func newCellIndexNode() cellIndexNode { - return cellIndexNode{ - cellID: 0, - label: cellIndexDoneContents, - parent: -1, - } -} - -// A rangeNode represents a range of leaf CellIDs. The range starts at -// startID (a leaf cell) and ends at the startID field of the next -// rangeNode. contents points to the node of the CellIndex cellTree -// representing the cells that overlap this range. -type rangeNode struct { - startID CellID // First leaf cell contained by this range. - contents int32 // Contents of this node (an index within the cell tree). -} - -// CellIndexIterator is an iterator that visits the entire set of indexed -// (CellID, label) pairs in an unspecified order. -type CellIndexIterator struct { - // TODO(roberts): Implement -} - -// NewCellIndexIterator creates an iterator for the given CellIndex. -func NewCellIndexIterator(index *CellIndex) *CellIndexIterator { - return &CellIndexIterator{} -} - -// CellIndexRangeIterator is an iterator that seeks and iterates over a set of -// non-overlapping leaf cell ranges that cover the entire sphere. The indexed -// (CellID, label) pairs that intersect the current leaf cell range can be -// visited using CellIndexContentsIterator (see below). -type CellIndexRangeIterator struct { - rangeNodes []rangeNode - pos int - nonEmpty bool -} - -// NewCellIndexRangeIterator creates an iterator for the given CellIndex. -// The iterator is initially *unpositioned*; you must call a positioning method -// such as Begin() or Seek() before accessing its contents. -func NewCellIndexRangeIterator(index *CellIndex) *CellIndexRangeIterator { - return &CellIndexRangeIterator{ - rangeNodes: index.rangeNodes, - } -} - -// NewCellIndexNonEmptyRangeIterator creates an iterator for the given CellIndex. -// The iterator is initially *unpositioned*; you must call a positioning method such as -// Begin() or Seek() before accessing its contents. -func NewCellIndexNonEmptyRangeIterator(index *CellIndex) *CellIndexRangeIterator { - return &CellIndexRangeIterator{ - rangeNodes: index.rangeNodes, - nonEmpty: true, - } -} - -// StartID reports the CellID of the start of the current range of leaf CellIDs. -// -// If done is true, this returns the last possible CellID. This property means -// that most loops do not need to test done explicitly. -func (c *CellIndexRangeIterator) StartID() CellID { - return c.rangeNodes[c.pos].startID -} - -// LimitID reports the non-inclusive end of the current range of leaf CellIDs. -// -// This assumes the iterator is not done. -func (c *CellIndexRangeIterator) LimitID() CellID { - return c.rangeNodes[c.pos+1].startID -} - -// IsEmpty reports if no (CellID, label) pairs intersect this range. -// Also returns true if done() is true. -func (c *CellIndexRangeIterator) IsEmpty() bool { - return c.rangeNodes[c.pos].contents == cellIndexDoneContents -} - -// Begin positions the iterator at the first range of leaf cells (if any). -func (c *CellIndexRangeIterator) Begin() { - c.pos = 0 - for c.nonEmpty && c.IsEmpty() && !c.Done() { - c.pos++ - } -} - -// Prev positions the iterator at the previous entry and reports whether it was not -// already positioned at the beginning. -func (c *CellIndexRangeIterator) Prev() bool { - if c.nonEmpty { - return c.nonEmptyPrev() - } - return c.prev() -} - -// prev is used to position the iterator at the previous entry without checking -// if nonEmpty is true to prevent unwanted recursion. -func (c *CellIndexRangeIterator) prev() bool { - if c.pos == 0 { - return false - } - - c.pos-- - return true -} - -// Prev positions the iterator at the previous entry, and reports whether it was -// already positioned at the beginning. -func (c *CellIndexRangeIterator) nonEmptyPrev() bool { - for c.prev() { - if !c.IsEmpty() { - return true - } - } - - // Return the iterator to its original position. - if c.IsEmpty() && !c.Done() { - c.Next() - } - return false -} - -// Next advances the iterator to the next range of leaf cells. -// -// This assumes the iterator is not done. -func (c *CellIndexRangeIterator) Next() { - c.pos++ - for c.nonEmpty && c.IsEmpty() && !c.Done() { - c.pos++ - } -} - -// Advance reports if advancing would leave it positioned on a valid range. If -// the value would not be valid, the positioning is not changed. -func (c *CellIndexRangeIterator) Advance(n int) bool { - // Note that the last element of rangeNodes is a sentinel value. - if n >= len(c.rangeNodes)-1-c.pos { - return false - } - c.pos += n - return true -} - -// Finish positions the iterator so that done is true. -func (c *CellIndexRangeIterator) Finish() { - // Note that the last element of rangeNodes is a sentinel value. - c.pos = len(c.rangeNodes) - 1 -} - -// Done reports if the iterator is positioned beyond the last valid range. -func (c *CellIndexRangeIterator) Done() bool { - return c.pos >= len(c.rangeNodes)-1 -} - -// Seek positions the iterator at the first range with startID >= target. -// Such an entry always exists as long as "target" is a valid leaf cell. -// -// Note that it is valid to access startID even when done is true. -func (c *CellIndexRangeIterator) Seek(target CellID) { - c.pos = sort.Search(len(c.rangeNodes), func(i int) bool { - return c.rangeNodes[i].startID > target - }) - 1 - - // Ensure we don't go beyond the beginning. - if c.pos < 0 { - c.pos = 0 - } - - // Nonempty needs to find the next non-empty entry. - for c.nonEmpty && c.IsEmpty() && !c.Done() { - // c.Next() - c.pos++ - } -} - -// CellIndexContentsIterator is an iterator that visits the (CellID, label) pairs -// that cover a set of leaf cell ranges (see CellIndexRangeIterator). Note that -// when multiple leaf cell ranges are visited, this iterator only guarantees that -// each result will be reported at least once, i.e. duplicate values may be -// suppressed. If you want duplicate values to be reported again, be sure to call -// Clear first. -// -// In particular, the implementation guarantees that when multiple leaf -// cell ranges are visited in monotonically increasing order, then each -// (CellID, label) pair is reported exactly once. -type CellIndexContentsIterator struct { - // The maximum index within the cellTree slice visited during the - // previous call to StartUnion. This is used to eliminate duplicate - // values when StartUnion is called multiple times. - nodeCutoff int32 - - // The maximum index within the cellTree visited during the - // current call to StartUnion. This is used to update nodeCutoff. - nextNodeCutoff int32 - - // The value of startID from the previous call to StartUnion. - // This is used to check whether these values are monotonically - // increasing. - prevStartID CellID - - // The cell tree from CellIndex - cellTree []cellIndexNode - - // A copy of the current node in the cell tree. - node cellIndexNode -} - -// NewCellIndexContentsIterator returns a new contents iterator. -// -// Note that the iterator needs to be positioned using StartUnion before -// it can be safely used. -func NewCellIndexContentsIterator(index *CellIndex) *CellIndexContentsIterator { - it := &CellIndexContentsIterator{ - cellTree: index.cellTree, - prevStartID: 0, - nodeCutoff: -1, - nextNodeCutoff: -1, - node: cellIndexNode{label: cellIndexDoneContents}, - } - return it -} - -// Clear clears all state with respect to which range(s) have been visited. -func (c *CellIndexContentsIterator) Clear() { - c.prevStartID = 0 - c.nodeCutoff = -1 - c.nextNodeCutoff = -1 - c.node.label = cellIndexDoneContents -} - -// CellID returns the current CellID. -func (c *CellIndexContentsIterator) CellID() CellID { - return c.node.cellID -} - -// Label returns the current Label. -func (c *CellIndexContentsIterator) Label() int32 { - return c.node.label -} - -// Next advances the iterator to the next (CellID, label) pair covered by the -// current leaf cell range. -// -// This requires the iterator to not be done. -func (c *CellIndexContentsIterator) Next() { - if c.node.parent <= c.nodeCutoff { - // We have already processed this node and its ancestors. - c.nodeCutoff = c.nextNodeCutoff - c.node.label = cellIndexDoneContents - } else { - c.node = c.cellTree[c.node.parent] - } -} - -// Done reports if all (CellID, label) pairs have been visited. -func (c *CellIndexContentsIterator) Done() bool { - return c.node.label == cellIndexDoneContents -} - -// StartUnion positions the ContentsIterator at the first (cell_id, label) pair -// that covers the given leaf cell range. Note that when multiple leaf cell -// ranges are visited using the same ContentsIterator, duplicate values -// may be suppressed. If you don't want this behavior, call Reset() first. -func (c *CellIndexContentsIterator) StartUnion(r *CellIndexRangeIterator) { - if r.StartID() < c.prevStartID { - c.nodeCutoff = -1 // Can't automatically eliminate duplicates. - } - c.prevStartID = r.StartID() - - contents := r.rangeNodes[r.pos].contents - if contents <= c.nodeCutoff { - c.node.label = cellIndexDoneContents - } else { - c.node = c.cellTree[contents] - } - - // When visiting ancestors, we can stop as soon as the node index is smaller - // than any previously visited node index. Because indexes are assigned - // using a preorder traversal, such nodes are guaranteed to have already - // been reported. - c.nextNodeCutoff = contents -} - -// CellIndex stores a collection of (CellID, label) pairs. -// -// The CellIDs may be overlapping or contain duplicate values. For example, a -// CellIndex could store a collection of CellUnions, where each CellUnion -// gets its own non-negative int32 label. -// -// Similar to ShapeIndex and PointIndex which map each stored element to an -// identifier, CellIndex stores a label that is typically used to map the -// results of queries back to client's specific data. -// -// The zero value for a CellIndex is sufficient when constructing a CellIndex. -// -// To build a CellIndex where each Cell has a distinct label, call Add for each -// (CellID, label) pair, and then Build the index. For example: -// -// // contents is a mapping of an identifier in my system (restaurantID, -// // vehicleID, etc) to a CellID -// var contents = map[int32]CellID{...} -// -// for key, val := range contents { -// index.Add(val, key) -// } -// -// index.Build() -// -// There is also a helper method that adds all elements of CellUnion with the -// same label: -// -// index.AddCellUnion(cellUnion, label) -// -// Note that the index is not dynamic; the contents of the index cannot be -// changed once it has been built. Adding more after calling Build results in -// undefined behavior of the index. -// -// There are several options for retrieving data from the index. The simplest -// is to use a built-in method such as IntersectingLabels (which returns -// the labels of all cells that intersect a given target CellUnion): -// -// labels := index.IntersectingLabels(targetUnion); -// -// Alternatively, you can use a ClosestCellQuery which computes the cell(s) -// that are closest to a given target geometry. -// -// For example, here is how to find all cells that are closer than -// distanceLimit to a given target point: -// -// query := NewClosestCellQuery(cellIndex, opts) -// target := NewMinDistanceToPointTarget(targetPoint); -// for result := range query.FindCells(target) { -// // result.Distance() is the distance to the target. -// // result.CellID() is the indexed CellID. -// // result.Label() is the label associated with the CellID. -// DoSomething(targetPoint, result); -// } -// -// Internally, the index consists of a set of non-overlapping leaf cell ranges -// that subdivide the sphere and such that each range intersects a particular -// set of (cellID, label) pairs. -// -// Most clients should use either the methods such as VisitIntersectingCells -// and IntersectingLabels, or a helper such as ClosestCellQuery. -type CellIndex struct { - // A tree of (cellID, label) pairs such that if X is an ancestor of Y, then - // X.cellID contains Y.cellID. The contents of a given range of leaf - // cells can be represented by pointing to a node of this tree. - cellTree []cellIndexNode - - // The last element of rangeNodes is a sentinel value, which is necessary - // in order to represent the range covered by the previous element. - rangeNodes []rangeNode -} - -// Add adds the given CellID and Label to the index. -func (c *CellIndex) Add(id CellID, label int32) { - if label < 0 { - panic("labels must be non-negative") - } - c.cellTree = append(c.cellTree, cellIndexNode{cellID: id, label: label, parent: -1}) -} - -// AddCellUnion adds all of the elements of the given CellUnion to the index with the same label. -func (c *CellIndex) AddCellUnion(cu CellUnion, label int32) { - if label < 0 { - panic("labels must be non-negative") - } - for _, cell := range cu { - c.Add(cell, label) - } -} - -// Build builds the index for use. This method should only be called once. -func (c *CellIndex) Build() { - // To build the cell tree and leaf cell ranges, we maintain a stack of - // (CellID, label) pairs that contain the current leaf cell. This struct - // represents an instruction to push or pop a (cellID, label) pair. - // - // If label >= 0, the (cellID, label) pair is pushed on the stack. - // If CellID == SentinelCellID, a pair is popped from the stack. - // Otherwise the stack is unchanged but a rangeNode is still emitted. - - // delta represents an entry in a stack of (CellID, label) pairs used in the - // construction of the CellIndex structure. - type delta struct { - startID CellID - cellID CellID - label int32 - } - - deltas := make([]delta, 0, 2*len(c.cellTree)+2) - - // Create two deltas for each (cellID, label) pair: one to add the pair to - // the stack (at the start of its leaf cell range), and one to remove it from - // the stack (at the end of its leaf cell range). - for _, node := range c.cellTree { - deltas = append(deltas, delta{ - startID: node.cellID.RangeMin(), - cellID: node.cellID, - label: node.label, - }) - deltas = append(deltas, delta{ - startID: node.cellID.RangeMax().Next(), - cellID: SentinelCellID, - label: -1, - }) - } - - // We also create two special deltas to ensure that a RangeNode is emitted at - // the beginning and end of the CellID range. - deltas = append(deltas, delta{ - startID: CellIDFromFace(0).ChildBeginAtLevel(maxLevel), - cellID: CellID(0), - label: -1, - }) - deltas = append(deltas, delta{ - startID: CellIDFromFace(5).ChildEndAtLevel(maxLevel), - cellID: CellID(0), - label: -1, - }) - - sort.Slice(deltas, func(i, j int) bool { - // deltas are sorted first by startID, then in reverse order by cellID, - // and then by label. This is necessary to ensure that (1) larger cells - // are pushed on the stack before smaller cells, and (2) cells are popped - // off the stack before any new cells are added. - - if si, sj := deltas[i].startID, deltas[j].startID; si != sj { - return si < sj - } - if si, sj := deltas[i].cellID, deltas[j].cellID; si != sj { - return si > sj - } - return deltas[i].label < deltas[j].label - }) - - // Now walk through the deltas to build the leaf cell ranges and cell tree - // (which is essentially a permanent form of the "stack" described above). - c.cellTree = nil - c.rangeNodes = nil - contents := int32(-1) - for i := 0; i < len(deltas); { - startID := deltas[i].startID - // Process all the deltas associated with the current startID. - for ; i < len(deltas) && deltas[i].startID == startID; i++ { - if deltas[i].label >= 0 { - c.cellTree = append(c.cellTree, cellIndexNode{ - cellID: deltas[i].cellID, - label: deltas[i].label, - parent: contents}) - contents = int32(len(c.cellTree) - 1) - } else if deltas[i].cellID == SentinelCellID { - contents = c.cellTree[contents].parent - } - } - c.rangeNodes = append(c.rangeNodes, rangeNode{startID, contents}) - } -} - -// TODO(roberts): Differences from C++ -// IntersectingLabels -// VisitIntersectingCells -// CellIndexIterator diff --git a/backend/vendor/github.com/golang/geo/s2/cellid.go b/backend/vendor/github.com/golang/geo/s2/cellid.go deleted file mode 100644 index f847b061..00000000 --- a/backend/vendor/github.com/golang/geo/s2/cellid.go +++ /dev/null @@ -1,944 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "bytes" - "fmt" - "io" - "math" - "sort" - "strconv" - "strings" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r2" - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// CellID uniquely identifies a cell in the S2 cell decomposition. -// The most significant 3 bits encode the face number (0-5). The -// remaining 61 bits encode the position of the center of this cell -// along the Hilbert curve on that face. The zero value and the value -// (1<<64)-1 are invalid cell IDs. The first compares less than any -// valid cell ID, the second as greater than any valid cell ID. -// -// Sequentially increasing cell IDs follow a continuous space-filling curve -// over the entire sphere. They have the following properties: -// -// - The ID of a cell at level k consists of a 3-bit face number followed -// by k bit pairs that recursively select one of the four children of -// each cell. The next bit is always 1, and all other bits are 0. -// Therefore, the level of a cell is determined by the position of its -// lowest-numbered bit that is turned on (for a cell at level k, this -// position is 2 * (maxLevel - k)). -// -// - The ID of a parent cell is at the midpoint of the range of IDs spanned -// by its children (or by its descendants at any level). -// -// Leaf cells are often used to represent points on the unit sphere, and -// this type provides methods for converting directly between these two -// representations. For cells that represent 2D regions rather than -// discrete point, it is better to use Cells. -type CellID uint64 - -// SentinelCellID is an invalid cell ID guaranteed to be larger than any -// valid cell ID. It is used primarily by ShapeIndex. The value is also used -// by some S2 types when encoding data. -// Note that the sentinel's RangeMin == RangeMax == itself. -const SentinelCellID = CellID(^uint64(0)) - -// sortCellIDs sorts the slice of CellIDs in place. -func sortCellIDs(ci []CellID) { - sort.Sort(cellIDs(ci)) -} - -// cellIDs implements the Sort interface for slices of CellIDs. -type cellIDs []CellID - -func (c cellIDs) Len() int { return len(c) } -func (c cellIDs) Swap(i, j int) { c[i], c[j] = c[j], c[i] } -func (c cellIDs) Less(i, j int) bool { return c[i] < c[j] } - -// TODO(dsymonds): Some of these constants should probably be exported. -const ( - faceBits = 3 - numFaces = 6 - - // This is the number of levels needed to specify a leaf cell. - maxLevel = 30 - - // The extra position bit (61 rather than 60) lets us encode each cell as its - // Hilbert curve position at the cell center (which is halfway along the - // portion of the Hilbert curve that fills that cell). - posBits = 2*maxLevel + 1 - - // The maximum index of a valid leaf cell plus one. The range of valid leaf - // cell indices is [0..maxSize-1]. - maxSize = 1 << maxLevel - - wrapOffset = uint64(numFaces) << posBits -) - -// CellIDFromFacePosLevel returns a cell given its face in the range -// [0,5], the 61-bit Hilbert curve position pos within that face, and -// the level in the range [0,maxLevel]. The position in the cell ID -// will be truncated to correspond to the Hilbert curve position at -// the center of the returned cell. -func CellIDFromFacePosLevel(face int, pos uint64, level int) CellID { - return CellID(uint64(face)< 16 { - return CellID(0) - } - n, err := strconv.ParseUint(s, 16, 64) - if err != nil { - return CellID(0) - } - // Equivalent to right-padding string with zeros to 16 characters. - if len(s) < 16 { - n = n << (4 * uint(16-len(s))) - } - return CellID(n) -} - -// ToToken returns a hex-encoded string of the uint64 cell id, with leading -// zeros included but trailing zeros stripped. -func (ci CellID) ToToken() string { - s := strings.TrimRight(fmt.Sprintf("%016x", uint64(ci)), "0") - if len(s) == 0 { - return "X" - } - return s -} - -// IsValid reports whether ci represents a valid cell. -func (ci CellID) IsValid() bool { - return ci.Face() < numFaces && (ci.lsb()&0x1555555555555555 != 0) -} - -// Face returns the cube face for this cell ID, in the range [0,5]. -func (ci CellID) Face() int { return int(uint64(ci) >> posBits) } - -// Pos returns the position along the Hilbert curve of this cell ID, in the range [0,2^posBits-1]. -func (ci CellID) Pos() uint64 { return uint64(ci) & (^uint64(0) >> faceBits) } - -// Level returns the subdivision level of this cell ID, in the range [0, maxLevel]. -func (ci CellID) Level() int { - return maxLevel - findLSBSetNonZero64(uint64(ci))>>1 -} - -// IsLeaf returns whether this cell ID is at the deepest level; -// that is, the level at which the cells are smallest. -func (ci CellID) IsLeaf() bool { return uint64(ci)&1 != 0 } - -// ChildPosition returns the child position (0..3) of this cell's -// ancestor at the given level, relative to its parent. The argument -// should be in the range 1..kMaxLevel. For example, -// ChildPosition(1) returns the position of this cell's level-1 -// ancestor within its top-level face cell. -func (ci CellID) ChildPosition(level int) int { - return int(uint64(ci)>>uint64(2*(maxLevel-level)+1)) & 3 -} - -// lsbForLevel returns the lowest-numbered bit that is on for cells at the given level. -func lsbForLevel(level int) uint64 { return 1 << uint64(2*(maxLevel-level)) } - -// Parent returns the cell at the given level, which must be no greater than the current level. -func (ci CellID) Parent(level int) CellID { - lsb := lsbForLevel(level) - return CellID((uint64(ci) & -lsb) | lsb) -} - -// immediateParent is cheaper than Parent, but assumes !ci.isFace(). -func (ci CellID) immediateParent() CellID { - nlsb := CellID(ci.lsb() << 2) - return (ci & -nlsb) | nlsb -} - -// isFace returns whether this is a top-level (face) cell. -func (ci CellID) isFace() bool { return uint64(ci)&(lsbForLevel(0)-1) == 0 } - -// lsb returns the least significant bit that is set. -func (ci CellID) lsb() uint64 { return uint64(ci) & -uint64(ci) } - -// Children returns the four immediate children of this cell. -// If ci is a leaf cell, it returns four identical cells that are not the children. -func (ci CellID) Children() [4]CellID { - var ch [4]CellID - lsb := CellID(ci.lsb()) - ch[0] = ci - lsb + lsb>>2 - lsb >>= 1 - ch[1] = ch[0] + lsb - ch[2] = ch[1] + lsb - ch[3] = ch[2] + lsb - return ch -} - -func sizeIJ(level int) int { - return 1 << uint(maxLevel-level) -} - -// EdgeNeighbors returns the four cells that are adjacent across the cell's four edges. -// Edges 0, 1, 2, 3 are in the down, right, up, left directions in the face space. -// All neighbors are guaranteed to be distinct. -func (ci CellID) EdgeNeighbors() [4]CellID { - level := ci.Level() - size := sizeIJ(level) - f, i, j, _ := ci.faceIJOrientation() - return [4]CellID{ - cellIDFromFaceIJWrap(f, i, j-size).Parent(level), - cellIDFromFaceIJWrap(f, i+size, j).Parent(level), - cellIDFromFaceIJWrap(f, i, j+size).Parent(level), - cellIDFromFaceIJWrap(f, i-size, j).Parent(level), - } -} - -// VertexNeighbors returns the neighboring cellIDs with vertex closest to this cell at the given level. -// (Normally there are four neighbors, but the closest vertex may only have three neighbors if it is one of -// the 8 cube vertices.) -func (ci CellID) VertexNeighbors(level int) []CellID { - halfSize := sizeIJ(level + 1) - size := halfSize << 1 - f, i, j, _ := ci.faceIJOrientation() - - var isame, jsame bool - var ioffset, joffset int - if i&halfSize != 0 { - ioffset = size - isame = (i + size) < maxSize - } else { - ioffset = -size - isame = (i - size) >= 0 - } - if j&halfSize != 0 { - joffset = size - jsame = (j + size) < maxSize - } else { - joffset = -size - jsame = (j - size) >= 0 - } - - results := []CellID{ - ci.Parent(level), - cellIDFromFaceIJSame(f, i+ioffset, j, isame).Parent(level), - cellIDFromFaceIJSame(f, i, j+joffset, jsame).Parent(level), - } - - if isame || jsame { - results = append(results, cellIDFromFaceIJSame(f, i+ioffset, j+joffset, isame && jsame).Parent(level)) - } - - return results -} - -// AllNeighbors returns all neighbors of this cell at the given level. Two -// cells X and Y are neighbors if their boundaries intersect but their -// interiors do not. In particular, two cells that intersect at a single -// point are neighbors. Note that for cells adjacent to a face vertex, the -// same neighbor may be returned more than once. There could be up to eight -// neighbors including the diagonal ones that share the vertex. -// -// This requires level >= ci.Level(). -func (ci CellID) AllNeighbors(level int) []CellID { - var neighbors []CellID - - face, i, j, _ := ci.faceIJOrientation() - - // Find the coordinates of the lower left-hand leaf cell. We need to - // normalize (i,j) to a known position within the cell because level - // may be larger than this cell's level. - size := sizeIJ(ci.Level()) - i &= -size - j &= -size - - nbrSize := sizeIJ(level) - - // We compute the top-bottom, left-right, and diagonal neighbors in one - // pass. The loop test is at the end of the loop to avoid 32-bit overflow. - for k := -nbrSize; ; k += nbrSize { - var sameFace bool - if k < 0 { - sameFace = (j+k >= 0) - } else if k >= size { - sameFace = (j+k < maxSize) - } else { - sameFace = true - // Top and bottom neighbors. - neighbors = append(neighbors, cellIDFromFaceIJSame(face, i+k, j-nbrSize, - j-size >= 0).Parent(level)) - neighbors = append(neighbors, cellIDFromFaceIJSame(face, i+k, j+size, - j+size < maxSize).Parent(level)) - } - - // Left, right, and diagonal neighbors. - neighbors = append(neighbors, cellIDFromFaceIJSame(face, i-nbrSize, j+k, - sameFace && i-size >= 0).Parent(level)) - neighbors = append(neighbors, cellIDFromFaceIJSame(face, i+size, j+k, - sameFace && i+size < maxSize).Parent(level)) - - if k >= size { - break - } - } - - return neighbors -} - -// RangeMin returns the minimum CellID that is contained within this cell. -func (ci CellID) RangeMin() CellID { return CellID(uint64(ci) - (ci.lsb() - 1)) } - -// RangeMax returns the maximum CellID that is contained within this cell. -func (ci CellID) RangeMax() CellID { return CellID(uint64(ci) + (ci.lsb() - 1)) } - -// Contains returns true iff the CellID contains oci. -func (ci CellID) Contains(oci CellID) bool { - return uint64(ci.RangeMin()) <= uint64(oci) && uint64(oci) <= uint64(ci.RangeMax()) -} - -// Intersects returns true iff the CellID intersects oci. -func (ci CellID) Intersects(oci CellID) bool { - return uint64(oci.RangeMin()) <= uint64(ci.RangeMax()) && uint64(oci.RangeMax()) >= uint64(ci.RangeMin()) -} - -// String returns the string representation of the cell ID in the form "1/3210". -func (ci CellID) String() string { - if !ci.IsValid() { - return "Invalid: " + strconv.FormatInt(int64(ci), 16) - } - var b bytes.Buffer - b.WriteByte("012345"[ci.Face()]) // values > 5 will have been picked off by !IsValid above - b.WriteByte('/') - for level := 1; level <= ci.Level(); level++ { - b.WriteByte("0123"[ci.ChildPosition(level)]) - } - return b.String() -} - -// cellIDFromString returns a CellID from a string in the form "1/3210". -func cellIDFromString(s string) CellID { - level := len(s) - 2 - if level < 0 || level > maxLevel { - return CellID(0) - } - face := int(s[0] - '0') - if face < 0 || face > 5 || s[1] != '/' { - return CellID(0) - } - id := CellIDFromFace(face) - for i := 2; i < len(s); i++ { - childPos := s[i] - '0' - if childPos < 0 || childPos > 3 { - return CellID(0) - } - id = id.Children()[childPos] - } - return id -} - -// Point returns the center of the s2 cell on the sphere as a Point. -// The maximum directional error in Point (compared to the exact -// mathematical result) is 1.5 * dblEpsilon radians, and the maximum length -// error is 2 * dblEpsilon (the same as Normalize). -func (ci CellID) Point() Point { return Point{ci.rawPoint().Normalize()} } - -// LatLng returns the center of the s2 cell on the sphere as a LatLng. -func (ci CellID) LatLng() LatLng { return LatLngFromPoint(Point{ci.rawPoint()}) } - -// ChildBegin returns the first child in a traversal of the children of this cell, in Hilbert curve order. -// -// for ci := c.ChildBegin(); ci != c.ChildEnd(); ci = ci.Next() { -// ... -// } -func (ci CellID) ChildBegin() CellID { - ol := ci.lsb() - return CellID(uint64(ci) - ol + ol>>2) -} - -// ChildBeginAtLevel returns the first cell in a traversal of children a given level deeper than this cell, in -// Hilbert curve order. The given level must be no smaller than the cell's level. -// See ChildBegin for example use. -func (ci CellID) ChildBeginAtLevel(level int) CellID { - return CellID(uint64(ci) - ci.lsb() + lsbForLevel(level)) -} - -// ChildEnd returns the first cell after a traversal of the children of this cell in Hilbert curve order. -// The returned cell may be invalid. -func (ci CellID) ChildEnd() CellID { - ol := ci.lsb() - return CellID(uint64(ci) + ol + ol>>2) -} - -// ChildEndAtLevel returns the first cell after the last child in a traversal of children a given level deeper -// than this cell, in Hilbert curve order. -// The given level must be no smaller than the cell's level. -// The returned cell may be invalid. -func (ci CellID) ChildEndAtLevel(level int) CellID { - return CellID(uint64(ci) + ci.lsb() + lsbForLevel(level)) -} - -// Next returns the next cell along the Hilbert curve. -// This is expected to be used with ChildBegin and ChildEnd, -// or ChildBeginAtLevel and ChildEndAtLevel. -func (ci CellID) Next() CellID { - return CellID(uint64(ci) + ci.lsb()<<1) -} - -// Prev returns the previous cell along the Hilbert curve. -func (ci CellID) Prev() CellID { - return CellID(uint64(ci) - ci.lsb()<<1) -} - -// NextWrap returns the next cell along the Hilbert curve, wrapping from last to -// first as necessary. This should not be used with ChildBegin and ChildEnd. -func (ci CellID) NextWrap() CellID { - n := ci.Next() - if uint64(n) < wrapOffset { - return n - } - return CellID(uint64(n) - wrapOffset) -} - -// PrevWrap returns the previous cell along the Hilbert curve, wrapping around from -// first to last as necessary. This should not be used with ChildBegin and ChildEnd. -func (ci CellID) PrevWrap() CellID { - p := ci.Prev() - if uint64(p) < wrapOffset { - return p - } - return CellID(uint64(p) + wrapOffset) -} - -// AdvanceWrap advances or retreats the indicated number of steps along the -// Hilbert curve at the current level and returns the new position. The -// position wraps between the first and last faces as necessary. -func (ci CellID) AdvanceWrap(steps int64) CellID { - if steps == 0 { - return ci - } - - // We clamp the number of steps if necessary to ensure that we do not - // advance past the End() or before the Begin() of this level. - shift := uint(2*(maxLevel-ci.Level()) + 1) - if steps < 0 { - if min := -int64(uint64(ci) >> shift); steps < min { - wrap := int64(wrapOffset >> shift) - steps %= wrap - if steps < min { - steps += wrap - } - } - } else { - // Unlike Advance(), we don't want to return End(level). - if max := int64((wrapOffset - uint64(ci)) >> shift); steps > max { - wrap := int64(wrapOffset >> shift) - steps %= wrap - if steps > max { - steps -= wrap - } - } - } - - // If steps is negative, then shifting it left has undefined behavior. - // Cast to uint64 for a 2's complement answer. - return CellID(uint64(ci) + (uint64(steps) << shift)) -} - -// Encode encodes the CellID. -func (ci CellID) Encode(w io.Writer) error { - e := &encoder{w: w} - ci.encode(e) - return e.err -} - -func (ci CellID) encode(e *encoder) { - e.writeUint64(uint64(ci)) -} - -// Decode decodes the CellID. -func (ci *CellID) Decode(r io.Reader) error { - d := &decoder{r: asByteReader(r)} - ci.decode(d) - return d.err -} - -func (ci *CellID) decode(d *decoder) { - *ci = CellID(d.readUint64()) -} - -// TODO: the methods below are not exported yet. Settle on the entire API design -// before doing this. Do we want to mirror the C++ one as closely as possible? - -// distanceFromBegin returns the number of steps along the Hilbert curve that -// this cell is from the first node in the S2 hierarchy at our level. (i.e., -// FromFace(0).ChildBeginAtLevel(ci.Level())). This is analogous to Pos(), but -// for this cell's level. -// The return value is always non-negative. -func (ci CellID) distanceFromBegin() int64 { - return int64(ci >> uint64(2*(maxLevel-ci.Level())+1)) -} - -// rawPoint returns an unnormalized r3 vector from the origin through the center -// of the s2 cell on the sphere. -func (ci CellID) rawPoint() r3.Vector { - face, si, ti := ci.faceSiTi() - return faceUVToXYZ(face, stToUV((0.5/maxSize)*float64(si)), stToUV((0.5/maxSize)*float64(ti))) -} - -// faceSiTi returns the Face/Si/Ti coordinates of the center of the cell. -func (ci CellID) faceSiTi() (face int, si, ti uint32) { - face, i, j, _ := ci.faceIJOrientation() - delta := 0 - if ci.IsLeaf() { - delta = 1 - } else { - if (i^(int(ci)>>2))&1 != 0 { - delta = 2 - } - } - return face, uint32(2*i + delta), uint32(2*j + delta) -} - -// faceIJOrientation uses the global lookupIJ table to unfiddle the bits of ci. -func (ci CellID) faceIJOrientation() (f, i, j, orientation int) { - f = ci.Face() - orientation = f & swapMask - nbits := maxLevel - 7*lookupBits // first iteration - - // Each iteration maps 8 bits of the Hilbert curve position into - // 4 bits of "i" and "j". The lookup table transforms a key of the - // form "ppppppppoo" to a value of the form "iiiijjjjoo", where the - // letters [ijpo] represents bits of "i", "j", the Hilbert curve - // position, and the Hilbert curve orientation respectively. - // - // On the first iteration we need to be careful to clear out the bits - // representing the cube face. - for k := 7; k >= 0; k-- { - orientation += (int(uint64(ci)>>uint64(k*2*lookupBits+1)) & ((1 << uint(2*nbits)) - 1)) << 2 - orientation = lookupIJ[orientation] - i += (orientation >> (lookupBits + 2)) << uint(k*lookupBits) - j += ((orientation >> 2) & ((1 << lookupBits) - 1)) << uint(k*lookupBits) - orientation &= (swapMask | invertMask) - nbits = lookupBits // following iterations - } - - // The position of a non-leaf cell at level "n" consists of a prefix of - // 2*n bits that identifies the cell, followed by a suffix of - // 2*(maxLevel-n)+1 bits of the form 10*. If n==maxLevel, the suffix is - // just "1" and has no effect. Otherwise, it consists of "10", followed - // by (maxLevel-n-1) repetitions of "00", followed by "0". The "10" has - // no effect, while each occurrence of "00" has the effect of reversing - // the swapMask bit. - if ci.lsb()&0x1111111111111110 != 0 { - orientation ^= swapMask - } - - return -} - -// cellIDFromFaceIJ returns a leaf cell given its cube face (range 0..5) and IJ coordinates. -func cellIDFromFaceIJ(f, i, j int) CellID { - // Note that this value gets shifted one bit to the left at the end - // of the function. - n := uint64(f) << (posBits - 1) - // Alternating faces have opposite Hilbert curve orientations; this - // is necessary in order for all faces to have a right-handed - // coordinate system. - bits := f & swapMask - // Each iteration maps 4 bits of "i" and "j" into 8 bits of the Hilbert - // curve position. The lookup table transforms a 10-bit key of the form - // "iiiijjjjoo" to a 10-bit value of the form "ppppppppoo", where the - // letters [ijpo] denote bits of "i", "j", Hilbert curve position, and - // Hilbert curve orientation respectively. - for k := 7; k >= 0; k-- { - mask := (1 << lookupBits) - 1 - bits += ((i >> uint(k*lookupBits)) & mask) << (lookupBits + 2) - bits += ((j >> uint(k*lookupBits)) & mask) << 2 - bits = lookupPos[bits] - n |= uint64(bits>>2) << (uint(k) * 2 * lookupBits) - bits &= (swapMask | invertMask) - } - return CellID(n*2 + 1) -} - -func cellIDFromFaceIJWrap(f, i, j int) CellID { - // Convert i and j to the coordinates of a leaf cell just beyond the - // boundary of this face. This prevents 32-bit overflow in the case - // of finding the neighbors of a face cell. - i = clampInt(i, -1, maxSize) - j = clampInt(j, -1, maxSize) - - // We want to wrap these coordinates onto the appropriate adjacent face. - // The easiest way to do this is to convert the (i,j) coordinates to (x,y,z) - // (which yields a point outside the normal face boundary), and then call - // xyzToFaceUV to project back onto the correct face. - // - // The code below converts (i,j) to (si,ti), and then (si,ti) to (u,v) using - // the linear projection (u=2*s-1 and v=2*t-1). (The code further below - // converts back using the inverse projection, s=0.5*(u+1) and t=0.5*(v+1). - // Any projection would work here, so we use the simplest.) We also clamp - // the (u,v) coordinates so that the point is barely outside the - // [-1,1]x[-1,1] face rectangle, since otherwise the reprojection step - // (which divides by the new z coordinate) might change the other - // coordinates enough so that we end up in the wrong leaf cell. - const scale = 1.0 / maxSize - limit := math.Nextafter(1, 2) - u := math.Max(-limit, math.Min(limit, scale*float64((i<<1)+1-maxSize))) - v := math.Max(-limit, math.Min(limit, scale*float64((j<<1)+1-maxSize))) - - // Find the leaf cell coordinates on the adjacent face, and convert - // them to a cell id at the appropriate level. - f, u, v = xyzToFaceUV(faceUVToXYZ(f, u, v)) - return cellIDFromFaceIJ(f, stToIJ(0.5*(u+1)), stToIJ(0.5*(v+1))) -} - -func cellIDFromFaceIJSame(f, i, j int, sameFace bool) CellID { - if sameFace { - return cellIDFromFaceIJ(f, i, j) - } - return cellIDFromFaceIJWrap(f, i, j) -} - -// ijToSTMin converts the i- or j-index of a leaf cell to the minimum corresponding -// s- or t-value contained by that cell. The argument must be in the range -// [0..2**30], i.e. up to one position beyond the normal range of valid leaf -// cell indices. -func ijToSTMin(i int) float64 { - return float64(i) / float64(maxSize) -} - -// stToIJ converts value in ST coordinates to a value in IJ coordinates. -func stToIJ(s float64) int { - return clampInt(int(math.Floor(maxSize*s)), 0, maxSize-1) -} - -// cellIDFromPoint returns a leaf cell containing point p. Usually there is -// exactly one such cell, but for points along the edge of a cell, any -// adjacent cell may be (deterministically) chosen. This is because -// s2.CellIDs are considered to be closed sets. The returned cell will -// always contain the given point, i.e. -// -// CellFromPoint(p).ContainsPoint(p) -// -// is always true. -func cellIDFromPoint(p Point) CellID { - f, u, v := xyzToFaceUV(r3.Vector{p.X, p.Y, p.Z}) - i := stToIJ(uvToST(u)) - j := stToIJ(uvToST(v)) - return cellIDFromFaceIJ(f, i, j) -} - -// ijLevelToBoundUV returns the bounds in (u,v)-space for the cell at the given -// level containing the leaf cell with the given (i,j)-coordinates. -func ijLevelToBoundUV(i, j, level int) r2.Rect { - cellSize := sizeIJ(level) - xLo := i & -cellSize - yLo := j & -cellSize - - return r2.Rect{ - X: r1.Interval{ - Lo: stToUV(ijToSTMin(xLo)), - Hi: stToUV(ijToSTMin(xLo + cellSize)), - }, - Y: r1.Interval{ - Lo: stToUV(ijToSTMin(yLo)), - Hi: stToUV(ijToSTMin(yLo + cellSize)), - }, - } -} - -// Constants related to the bit mangling in the Cell ID. -const ( - lookupBits = 4 - swapMask = 0x01 - invertMask = 0x02 -) - -// The following lookup tables are used to convert efficiently between an -// (i,j) cell index and the corresponding position along the Hilbert curve. -// -// lookupPos maps 4 bits of "i", 4 bits of "j", and 2 bits representing the -// orientation of the current cell into 8 bits representing the order in which -// that subcell is visited by the Hilbert curve, plus 2 bits indicating the -// new orientation of the Hilbert curve within that subcell. (Cell -// orientations are represented as combination of swapMask and invertMask.) -// -// lookupIJ is an inverted table used for mapping in the opposite -// direction. -// -// We also experimented with looking up 16 bits at a time (14 bits of position -// plus 2 of orientation) but found that smaller lookup tables gave better -// performance. (2KB fits easily in the primary cache.) -var ( - ijToPos = [4][4]int{ - {0, 1, 3, 2}, // canonical order - {0, 3, 1, 2}, // axes swapped - {2, 3, 1, 0}, // bits inverted - {2, 1, 3, 0}, // swapped & inverted - } - posToIJ = [4][4]int{ - {0, 1, 3, 2}, // canonical order: (0,0), (0,1), (1,1), (1,0) - {0, 2, 3, 1}, // axes swapped: (0,0), (1,0), (1,1), (0,1) - {3, 2, 0, 1}, // bits inverted: (1,1), (1,0), (0,0), (0,1) - {3, 1, 0, 2}, // swapped & inverted: (1,1), (0,1), (0,0), (1,0) - } - posToOrientation = [4]int{swapMask, 0, 0, invertMask | swapMask} - lookupIJ [1 << (2*lookupBits + 2)]int - lookupPos [1 << (2*lookupBits + 2)]int -) - -func init() { - initLookupCell(0, 0, 0, 0, 0, 0) - initLookupCell(0, 0, 0, swapMask, 0, swapMask) - initLookupCell(0, 0, 0, invertMask, 0, invertMask) - initLookupCell(0, 0, 0, swapMask|invertMask, 0, swapMask|invertMask) -} - -// initLookupCell initializes the lookupIJ table at init time. -func initLookupCell(level, i, j, origOrientation, pos, orientation int) { - if level == lookupBits { - ij := (i << lookupBits) + j - lookupPos[(ij<<2)+origOrientation] = (pos << 2) + orientation - lookupIJ[(pos<<2)+origOrientation] = (ij << 2) + orientation - return - } - - level++ - i <<= 1 - j <<= 1 - pos <<= 2 - r := posToIJ[orientation] - initLookupCell(level, i+(r[0]>>1), j+(r[0]&1), origOrientation, pos, orientation^posToOrientation[0]) - initLookupCell(level, i+(r[1]>>1), j+(r[1]&1), origOrientation, pos+1, orientation^posToOrientation[1]) - initLookupCell(level, i+(r[2]>>1), j+(r[2]&1), origOrientation, pos+2, orientation^posToOrientation[2]) - initLookupCell(level, i+(r[3]>>1), j+(r[3]&1), origOrientation, pos+3, orientation^posToOrientation[3]) -} - -// CommonAncestorLevel returns the level of the common ancestor of the two S2 CellIDs. -func (ci CellID) CommonAncestorLevel(other CellID) (level int, ok bool) { - bits := uint64(ci ^ other) - if bits < ci.lsb() { - bits = ci.lsb() - } - if bits < other.lsb() { - bits = other.lsb() - } - - msbPos := findMSBSetNonZero64(bits) - if msbPos > 60 { - return 0, false - } - return (60 - msbPos) >> 1, true -} - -// Advance advances or retreats the indicated number of steps along the -// Hilbert curve at the current level, and returns the new position. The -// position is never advanced past End() or before Begin(). -func (ci CellID) Advance(steps int64) CellID { - if steps == 0 { - return ci - } - - // We clamp the number of steps if necessary to ensure that we do not - // advance past the End() or before the Begin() of this level. Note that - // minSteps and maxSteps always fit in a signed 64-bit integer. - stepShift := uint(2*(maxLevel-ci.Level()) + 1) - if steps < 0 { - minSteps := -int64(uint64(ci) >> stepShift) - if steps < minSteps { - steps = minSteps - } - } else { - maxSteps := int64((wrapOffset + ci.lsb() - uint64(ci)) >> stepShift) - if steps > maxSteps { - steps = maxSteps - } - } - return ci + CellID(steps)<= limit.RangeMin() { - return limit - } - - if ci.RangeMax() >= limit { - // The cell is too large, shrink it. Note that when generating coverings - // of CellID ranges, this loop usually executes only once. Also because - // ci.RangeMin() < limit.RangeMin(), we will always exit the loop by the - // time we reach a leaf cell. - for { - ci = ci.Children()[0] - if ci.RangeMax() < limit { - break - } - } - return ci - } - - // The cell may be too small. Grow it if necessary. Note that generally - // this loop only iterates once. - for !ci.isFace() { - parent := ci.immediateParent() - if parent.RangeMin() != start || parent.RangeMax() >= limit { - break - } - ci = parent - } - return ci -} - -// centerFaceSiTi returns the (face, si, ti) coordinates of the center of the cell. -// Note that although (si,ti) coordinates span the range [0,2**31] in general, -// the cell center coordinates are always in the range [1,2**31-1] and -// therefore can be represented using a signed 32-bit integer. -func (ci CellID) centerFaceSiTi() (face, si, ti int) { - // First we compute the discrete (i,j) coordinates of a leaf cell contained - // within the given cell. Given that cells are represented by the Hilbert - // curve position corresponding at their center, it turns out that the cell - // returned by faceIJOrientation is always one of two leaf cells closest - // to the center of the cell (unless the given cell is a leaf cell itself, - // in which case there is only one possibility). - // - // Given a cell of size s >= 2 (i.e. not a leaf cell), and letting (imin, - // jmin) be the coordinates of its lower left-hand corner, the leaf cell - // returned by faceIJOrientation is either (imin + s/2, jmin + s/2) - // (imin + s/2 - 1, jmin + s/2 - 1). The first case is the one we want. - // We can distinguish these two cases by looking at the low bit of i or - // j. In the second case the low bit is one, unless s == 2 (i.e. the - // level just above leaf cells) in which case the low bit is zero. - // - // In the code below, the expression ((i ^ (int(id) >> 2)) & 1) is true - // if we are in the second case described above. - face, i, j, _ := ci.faceIJOrientation() - delta := 0 - if ci.IsLeaf() { - delta = 1 - } else if (int64(i)^(int64(ci)>>2))&1 == 1 { - delta = 2 - } - - // Note that (2 * {i,j} + delta) will never overflow a 32-bit integer. - return face, 2*i + delta, 2*j + delta -} diff --git a/backend/vendor/github.com/golang/geo/s2/cellunion.go b/backend/vendor/github.com/golang/geo/s2/cellunion.go deleted file mode 100644 index 0654de97..00000000 --- a/backend/vendor/github.com/golang/geo/s2/cellunion.go +++ /dev/null @@ -1,590 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "io" - "sort" - - "github.com/golang/geo/s1" -) - -// A CellUnion is a collection of CellIDs. -// -// It is normalized if it is sorted, and does not contain redundancy. -// Specifically, it may not contain the same CellID twice, nor a CellID that -// is contained by another, nor the four sibling CellIDs that are children of -// a single higher level CellID. -// -// CellUnions are not required to be normalized, but certain operations will -// return different results if they are not (e.g. Contains). -type CellUnion []CellID - -// CellUnionFromRange creates a CellUnion that covers the half-open range -// of leaf cells [begin, end). If begin == end the resulting union is empty. -// This requires that begin and end are both leaves, and begin <= end. -// To create a closed-ended range, pass in end.Next(). -func CellUnionFromRange(begin, end CellID) CellUnion { - // We repeatedly add the largest cell we can. - var cu CellUnion - for id := begin.MaxTile(end); id != end; id = id.Next().MaxTile(end) { - cu = append(cu, id) - } - // The output is normalized because the cells are added in order by the iteration. - return cu -} - -// CellUnionFromUnion creates a CellUnion from the union of the given CellUnions. -func CellUnionFromUnion(cellUnions ...CellUnion) CellUnion { - var cu CellUnion - for _, cellUnion := range cellUnions { - cu = append(cu, cellUnion...) - } - cu.Normalize() - return cu -} - -// CellUnionFromIntersection creates a CellUnion from the intersection of the given CellUnions. -func CellUnionFromIntersection(x, y CellUnion) CellUnion { - var cu CellUnion - - // This is a fairly efficient calculation that uses binary search to skip - // over sections of both input vectors. It takes constant time if all the - // cells of x come before or after all the cells of y in CellID order. - var i, j int - for i < len(x) && j < len(y) { - iMin := x[i].RangeMin() - jMin := y[j].RangeMin() - if iMin > jMin { - // Either j.Contains(i) or the two cells are disjoint. - if x[i] <= y[j].RangeMax() { - cu = append(cu, x[i]) - i++ - } else { - // Advance j to the first cell possibly contained by x[i]. - j = y.lowerBound(j+1, len(y), iMin) - // The previous cell y[j-1] may now contain x[i]. - if x[i] <= y[j-1].RangeMax() { - j-- - } - } - } else if jMin > iMin { - // Identical to the code above with i and j reversed. - if y[j] <= x[i].RangeMax() { - cu = append(cu, y[j]) - j++ - } else { - i = x.lowerBound(i+1, len(x), jMin) - if y[j] <= x[i-1].RangeMax() { - i-- - } - } - } else { - // i and j have the same RangeMin(), so one contains the other. - if x[i] < y[j] { - cu = append(cu, x[i]) - i++ - } else { - cu = append(cu, y[j]) - j++ - } - } - } - - // The output is generated in sorted order. - cu.Normalize() - return cu -} - -// CellUnionFromIntersectionWithCellID creates a CellUnion from the intersection -// of a CellUnion with the given CellID. This can be useful for splitting a -// CellUnion into chunks. -func CellUnionFromIntersectionWithCellID(x CellUnion, id CellID) CellUnion { - var cu CellUnion - if x.ContainsCellID(id) { - cu = append(cu, id) - cu.Normalize() - return cu - } - - idmax := id.RangeMax() - for i := x.lowerBound(0, len(x), id.RangeMin()); i < len(x) && x[i] <= idmax; i++ { - cu = append(cu, x[i]) - } - - cu.Normalize() - return cu -} - -// CellUnionFromDifference creates a CellUnion from the difference (x - y) -// of the given CellUnions. -func CellUnionFromDifference(x, y CellUnion) CellUnion { - // TODO(roberts): This is approximately O(N*log(N)), but could probably - // use similar techniques as CellUnionFromIntersectionWithCellID to be more efficient. - - var cu CellUnion - for _, xid := range x { - cu.cellUnionDifferenceInternal(xid, &y) - } - - // The output is generated in sorted order, and there should not be any - // cells that can be merged (provided that both inputs were normalized). - return cu -} - -// The C++ constructor methods FromNormalized and FromVerbatim are not necessary -// since they don't call Normalize, and just set the CellIDs directly on the object, -// so straight casting is sufficient in Go to replicate this behavior. - -// IsValid reports whether the cell union is valid, meaning that the CellIDs are -// valid, non-overlapping, and sorted in increasing order. -func (cu *CellUnion) IsValid() bool { - for i, cid := range *cu { - if !cid.IsValid() { - return false - } - if i == 0 { - continue - } - if (*cu)[i-1].RangeMax() >= cid.RangeMin() { - return false - } - } - return true -} - -// IsNormalized reports whether the cell union is normalized, meaning that it is -// satisfies IsValid and that no four cells have a common parent. -// Certain operations such as Contains will return a different -// result if the cell union is not normalized. -func (cu *CellUnion) IsNormalized() bool { - for i, cid := range *cu { - if !cid.IsValid() { - return false - } - if i == 0 { - continue - } - if (*cu)[i-1].RangeMax() >= cid.RangeMin() { - return false - } - if i < 3 { - continue - } - if areSiblings((*cu)[i-3], (*cu)[i-2], (*cu)[i-1], cid) { - return false - } - } - return true -} - -// Normalize normalizes the CellUnion. -func (cu *CellUnion) Normalize() { - sortCellIDs(*cu) - - output := make([]CellID, 0, len(*cu)) // the list of accepted cells - // Loop invariant: output is a sorted list of cells with no redundancy. - for _, ci := range *cu { - // The first two passes here either ignore this new candidate, - // or remove previously accepted cells that are covered by this candidate. - - // Ignore this cell if it is contained by the previous one. - // We only need to check the last accepted cell. The ordering of the - // cells implies containment (but not the converse), and output has no redundancy, - // so if this candidate is not contained by the last accepted cell - // then it cannot be contained by any previously accepted cell. - if len(output) > 0 && output[len(output)-1].Contains(ci) { - continue - } - - // Discard any previously accepted cells contained by this one. - // This could be any contiguous trailing subsequence, but it can't be - // a discontiguous subsequence because of the containment property of - // sorted S2 cells mentioned above. - j := len(output) - 1 // last index to keep - for j >= 0 { - if !ci.Contains(output[j]) { - break - } - j-- - } - output = output[:j+1] - - // See if the last three cells plus this one can be collapsed. - // We loop because collapsing three accepted cells and adding a higher level cell - // could cascade into previously accepted cells. - for len(output) >= 3 && areSiblings(output[len(output)-3], output[len(output)-2], output[len(output)-1], ci) { - // Replace four children by their parent cell. - output = output[:len(output)-3] - ci = ci.immediateParent() // checked !ci.isFace above - } - output = append(output, ci) - } - *cu = output -} - -// IntersectsCellID reports whether this CellUnion intersects the given cell ID. -func (cu *CellUnion) IntersectsCellID(id CellID) bool { - // Find index of array item that occurs directly after our probe cell: - i := sort.Search(len(*cu), func(i int) bool { return id < (*cu)[i] }) - - if i != len(*cu) && (*cu)[i].RangeMin() <= id.RangeMax() { - return true - } - return i != 0 && (*cu)[i-1].RangeMax() >= id.RangeMin() -} - -// ContainsCellID reports whether the CellUnion contains the given cell ID. -// Containment is defined with respect to regions, e.g. a cell contains its 4 children. -// -// CAVEAT: If you have constructed a non-normalized CellUnion, note that groups -// of 4 child cells are *not* considered to contain their parent cell. To get -// this behavior you must use one of the call Normalize() explicitly. -func (cu *CellUnion) ContainsCellID(id CellID) bool { - // Find index of array item that occurs directly after our probe cell: - i := sort.Search(len(*cu), func(i int) bool { return id < (*cu)[i] }) - - if i != len(*cu) && (*cu)[i].RangeMin() <= id { - return true - } - return i != 0 && (*cu)[i-1].RangeMax() >= id -} - -// Denormalize replaces this CellUnion with an expanded version of the -// CellUnion where any cell whose level is less than minLevel or where -// (level - minLevel) is not a multiple of levelMod is replaced by its -// children, until either both of these conditions are satisfied or the -// maximum level is reached. -func (cu *CellUnion) Denormalize(minLevel, levelMod int) { - var denorm CellUnion - for _, id := range *cu { - level := id.Level() - newLevel := level - if newLevel < minLevel { - newLevel = minLevel - } - if levelMod > 1 { - newLevel += (maxLevel - (newLevel - minLevel)) % levelMod - if newLevel > maxLevel { - newLevel = maxLevel - } - } - if newLevel == level { - denorm = append(denorm, id) - } else { - end := id.ChildEndAtLevel(newLevel) - for ci := id.ChildBeginAtLevel(newLevel); ci != end; ci = ci.Next() { - denorm = append(denorm, ci) - } - } - } - *cu = denorm -} - -// RectBound returns a Rect that bounds this entity. -func (cu *CellUnion) RectBound() Rect { - bound := EmptyRect() - for _, c := range *cu { - bound = bound.Union(CellFromCellID(c).RectBound()) - } - return bound -} - -// CapBound returns a Cap that bounds this entity. -func (cu *CellUnion) CapBound() Cap { - if len(*cu) == 0 { - return EmptyCap() - } - - // Compute the approximate centroid of the region. This won't produce the - // bounding cap of minimal area, but it should be close enough. - var centroid Point - - for _, ci := range *cu { - area := AvgAreaMetric.Value(ci.Level()) - centroid = Point{centroid.Add(ci.Point().Mul(area))} - } - - if zero := (Point{}); centroid == zero { - centroid = PointFromCoords(1, 0, 0) - } else { - centroid = Point{centroid.Normalize()} - } - - // Use the centroid as the cap axis, and expand the cap angle so that it - // contains the bounding caps of all the individual cells. Note that it is - // *not* sufficient to just bound all the cell vertices because the bounding - // cap may be concave (i.e. cover more than one hemisphere). - c := CapFromPoint(centroid) - for _, ci := range *cu { - c = c.AddCap(CellFromCellID(ci).CapBound()) - } - - return c -} - -// ContainsCell reports whether this cell union contains the given cell. -func (cu *CellUnion) ContainsCell(c Cell) bool { - return cu.ContainsCellID(c.id) -} - -// IntersectsCell reports whether this cell union intersects the given cell. -func (cu *CellUnion) IntersectsCell(c Cell) bool { - return cu.IntersectsCellID(c.id) -} - -// ContainsPoint reports whether this cell union contains the given point. -func (cu *CellUnion) ContainsPoint(p Point) bool { - return cu.ContainsCell(CellFromPoint(p)) -} - -// CellUnionBound computes a covering of the CellUnion. -func (cu *CellUnion) CellUnionBound() []CellID { - return cu.CapBound().CellUnionBound() -} - -// LeafCellsCovered reports the number of leaf cells covered by this cell union. -// This will be no more than 6*2^60 for the whole sphere. -func (cu *CellUnion) LeafCellsCovered() int64 { - var numLeaves int64 - for _, c := range *cu { - numLeaves += 1 << uint64((maxLevel-int64(c.Level()))<<1) - } - return numLeaves -} - -// Returns true if the given four cells have a common parent. -// This requires that the four CellIDs are distinct. -func areSiblings(a, b, c, d CellID) bool { - // A necessary (but not sufficient) condition is that the XOR of the - // four cell IDs must be zero. This is also very fast to test. - if (a ^ b ^ c) != d { - return false - } - - // Now we do a slightly more expensive but exact test. First, compute a - // mask that blocks out the two bits that encode the child position of - // "id" with respect to its parent, then check that the other three - // children all agree with "mask". - mask := d.lsb() << 1 - mask = ^(mask + (mask << 1)) - idMasked := (uint64(d) & mask) - return ((uint64(a)&mask) == idMasked && - (uint64(b)&mask) == idMasked && - (uint64(c)&mask) == idMasked && - !d.isFace()) -} - -// Contains reports whether this CellUnion contains all of the CellIDs of the given CellUnion. -func (cu *CellUnion) Contains(o CellUnion) bool { - // TODO(roberts): Investigate alternatives such as divide-and-conquer - // or alternating-skip-search that may be significantly faster in both - // the average and worst case. This applies to Intersects as well. - for _, id := range o { - if !cu.ContainsCellID(id) { - return false - } - } - - return true -} - -// Intersects reports whether this CellUnion intersects any of the CellIDs of the given CellUnion. -func (cu *CellUnion) Intersects(o CellUnion) bool { - for _, c := range *cu { - if o.IntersectsCellID(c) { - return true - } - } - - return false -} - -// lowerBound returns the index in this CellUnion to the first element whose value -// is not considered to go before the given cell id. (i.e., either it is equivalent -// or comes after the given id.) If there is no match, then end is returned. -func (cu *CellUnion) lowerBound(begin, end int, id CellID) int { - for i := begin; i < end; i++ { - if (*cu)[i] >= id { - return i - } - } - - return end -} - -// cellUnionDifferenceInternal adds the difference between the CellID and the union to -// the result CellUnion. If they intersect but the difference is non-empty, it divides -// and conquers. -func (cu *CellUnion) cellUnionDifferenceInternal(id CellID, other *CellUnion) { - if !other.IntersectsCellID(id) { - (*cu) = append((*cu), id) - return - } - - if !other.ContainsCellID(id) { - for _, child := range id.Children() { - cu.cellUnionDifferenceInternal(child, other) - } - } -} - -// ExpandAtLevel expands this CellUnion by adding a rim of cells at expandLevel -// around the unions boundary. -// -// For each cell c in the union, we add all cells at level -// expandLevel that abut c. There are typically eight of those -// (four edge-abutting and four sharing a vertex). However, if c is -// finer than expandLevel, we add all cells abutting -// c.Parent(expandLevel) as well as c.Parent(expandLevel) itself, -// as an expandLevel cell rarely abuts a smaller cell. -// -// Note that the size of the output is exponential in -// expandLevel. For example, if expandLevel == 20 and the input -// has a cell at level 10, there will be on the order of 4000 -// adjacent cells in the output. For most applications the -// ExpandByRadius method below is easier to use. -func (cu *CellUnion) ExpandAtLevel(level int) { - var output CellUnion - levelLsb := lsbForLevel(level) - for i := len(*cu) - 1; i >= 0; i-- { - id := (*cu)[i] - if id.lsb() < levelLsb { - id = id.Parent(level) - // Optimization: skip over any cells contained by this one. This is - // especially important when very small regions are being expanded. - for i > 0 && id.Contains((*cu)[i-1]) { - i-- - } - } - output = append(output, id) - output = append(output, id.AllNeighbors(level)...) - } - sortCellIDs(output) - - *cu = output - cu.Normalize() -} - -// ExpandByRadius expands this CellUnion such that it contains all points whose -// distance to the CellUnion is at most minRadius, but do not use cells that -// are more than maxLevelDiff levels higher than the largest cell in the input. -// The second parameter controls the tradeoff between accuracy and output size -// when a large region is being expanded by a small amount (e.g. expanding Canada -// by 1km). For example, if maxLevelDiff == 4 the region will always be expanded -// by approximately 1/16 the width of its largest cell. Note that in the worst case, -// the number of cells in the output can be up to 4 * (1 + 2 ** maxLevelDiff) times -// larger than the number of cells in the input. -func (cu *CellUnion) ExpandByRadius(minRadius s1.Angle, maxLevelDiff int) { - minLevel := maxLevel - for _, cid := range *cu { - minLevel = minInt(minLevel, cid.Level()) - } - - // Find the maximum level such that all cells are at least "minRadius" wide. - radiusLevel := MinWidthMetric.MaxLevel(minRadius.Radians()) - if radiusLevel == 0 && minRadius.Radians() > MinWidthMetric.Value(0) { - // The requested expansion is greater than the width of a face cell. - // The easiest way to handle this is to expand twice. - cu.ExpandAtLevel(0) - } - cu.ExpandAtLevel(minInt(minLevel+maxLevelDiff, radiusLevel)) -} - -// Equal reports whether the two CellUnions are equal. -func (cu CellUnion) Equal(o CellUnion) bool { - if len(cu) != len(o) { - return false - } - for i := 0; i < len(cu); i++ { - if cu[i] != o[i] { - return false - } - } - return true -} - -// AverageArea returns the average area of this CellUnion. -// This is accurate to within a factor of 1.7. -func (cu *CellUnion) AverageArea() float64 { - return AvgAreaMetric.Value(maxLevel) * float64(cu.LeafCellsCovered()) -} - -// ApproxArea returns the approximate area of this CellUnion. This method is accurate -// to within 3% percent for all cell sizes and accurate to within 0.1% for cells -// at level 5 or higher within the union. -func (cu *CellUnion) ApproxArea() float64 { - var area float64 - for _, id := range *cu { - area += CellFromCellID(id).ApproxArea() - } - return area -} - -// ExactArea returns the area of this CellUnion as accurately as possible. -func (cu *CellUnion) ExactArea() float64 { - var area float64 - for _, id := range *cu { - area += CellFromCellID(id).ExactArea() - } - return area -} - -// Encode encodes the CellUnion. -func (cu *CellUnion) Encode(w io.Writer) error { - e := &encoder{w: w} - cu.encode(e) - return e.err -} - -func (cu *CellUnion) encode(e *encoder) { - e.writeInt8(encodingVersion) - e.writeInt64(int64(len(*cu))) - for _, ci := range *cu { - ci.encode(e) - } -} - -// Decode decodes the CellUnion. -func (cu *CellUnion) Decode(r io.Reader) error { - d := &decoder{r: asByteReader(r)} - cu.decode(d) - return d.err -} - -func (cu *CellUnion) decode(d *decoder) { - version := d.readInt8() - if d.err != nil { - return - } - if version != encodingVersion { - d.err = fmt.Errorf("only version %d is supported", encodingVersion) - return - } - n := d.readInt64() - if d.err != nil { - return - } - const maxCells = 1000000 - if n > maxCells { - d.err = fmt.Errorf("too many cells (%d; max is %d)", n, maxCells) - return - } - *cu = make([]CellID, n) - for i := range *cu { - (*cu)[i].decode(d) - } -} diff --git a/backend/vendor/github.com/golang/geo/s2/centroids.go b/backend/vendor/github.com/golang/geo/s2/centroids.go deleted file mode 100644 index e8a91c44..00000000 --- a/backend/vendor/github.com/golang/geo/s2/centroids.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/r3" -) - -// There are several notions of the "centroid" of a triangle. First, there -// is the planar centroid, which is simply the centroid of the ordinary -// (non-spherical) triangle defined by the three vertices. Second, there is -// the surface centroid, which is defined as the intersection of the three -// medians of the spherical triangle. It is possible to show that this -// point is simply the planar centroid projected to the surface of the -// sphere. Finally, there is the true centroid (mass centroid), which is -// defined as the surface integral over the spherical triangle of (x,y,z) -// divided by the triangle area. This is the point that the triangle would -// rotate around if it was spinning in empty space. -// -// The best centroid for most purposes is the true centroid. Unlike the -// planar and surface centroids, the true centroid behaves linearly as -// regions are added or subtracted. That is, if you split a triangle into -// pieces and compute the average of their centroids (weighted by triangle -// area), the result equals the centroid of the original triangle. This is -// not true of the other centroids. -// -// Also note that the surface centroid may be nowhere near the intuitive -// "center" of a spherical triangle. For example, consider the triangle -// with vertices A=(1,eps,0), B=(0,0,1), C=(-1,eps,0) (a quarter-sphere). -// The surface centroid of this triangle is at S=(0, 2*eps, 1), which is -// within a distance of 2*eps of the vertex B. Note that the median from A -// (the segment connecting A to the midpoint of BC) passes through S, since -// this is the shortest path connecting the two endpoints. On the other -// hand, the true centroid is at M=(0, 0.5, 0.5), which when projected onto -// the surface is a much more reasonable interpretation of the "center" of -// this triangle. -// - -// TrueCentroid returns the true centroid of the spherical triangle ABC -// multiplied by the signed area of spherical triangle ABC. The reasons for -// multiplying by the signed area are (1) this is the quantity that needs to be -// summed to compute the centroid of a union or difference of triangles, and -// (2) it's actually easier to calculate this way. All points must have unit length. -// -// Note that the result of this function is defined to be Point(0, 0, 0) if -// the triangle is degenerate. -func TrueCentroid(a, b, c Point) Point { - // Use Distance to get accurate results for small triangles. - ra := float64(1) - if sa := float64(b.Distance(c)); sa != 0 { - ra = sa / math.Sin(sa) - } - rb := float64(1) - if sb := float64(c.Distance(a)); sb != 0 { - rb = sb / math.Sin(sb) - } - rc := float64(1) - if sc := float64(a.Distance(b)); sc != 0 { - rc = sc / math.Sin(sc) - } - - // Now compute a point M such that: - // - // [Ax Ay Az] [Mx] [ra] - // [Bx By Bz] [My] = 0.5 * det(A,B,C) * [rb] - // [Cx Cy Cz] [Mz] [rc] - // - // To improve the numerical stability we subtract the first row (A) from the - // other two rows; this reduces the cancellation error when A, B, and C are - // very close together. Then we solve it using Cramer's rule. - // - // The result is the true centroid of the triangle multiplied by the - // triangle's area. - // - // This code still isn't as numerically stable as it could be. - // The biggest potential improvement is to compute B-A and C-A more - // accurately so that (B-A)x(C-A) is always inside triangle ABC. - x := r3.Vector{a.X, b.X - a.X, c.X - a.X} - y := r3.Vector{a.Y, b.Y - a.Y, c.Y - a.Y} - z := r3.Vector{a.Z, b.Z - a.Z, c.Z - a.Z} - r := r3.Vector{ra, rb - ra, rc - ra} - - return Point{r3.Vector{y.Cross(z).Dot(r), z.Cross(x).Dot(r), x.Cross(y).Dot(r)}.Mul(0.5)} -} - -// EdgeTrueCentroid returns the true centroid of the spherical geodesic edge AB -// multiplied by the length of the edge AB. As with triangles, the true centroid -// of a collection of line segments may be computed simply by summing the result -// of this method for each segment. -// -// Note that the planar centroid of a line segment is simply 0.5 * (a + b), -// while the surface centroid is (a + b).Normalize(). However neither of -// these values is appropriate for computing the centroid of a collection of -// edges (such as a polyline). -// -// Also note that the result of this function is defined to be Point(0, 0, 0) -// if the edge is degenerate. -func EdgeTrueCentroid(a, b Point) Point { - // The centroid (multiplied by length) is a vector toward the midpoint - // of the edge, whose length is twice the sine of half the angle between - // the two vertices. Defining theta to be this angle, we have: - vDiff := a.Sub(b.Vector) // Length == 2*sin(theta) - vSum := a.Add(b.Vector) // Length == 2*cos(theta) - sin2 := vDiff.Norm2() - cos2 := vSum.Norm2() - if cos2 == 0 { - return Point{} // Ignore antipodal edges. - } - return Point{vSum.Mul(math.Sqrt(sin2 / cos2))} // Length == 2*sin(theta) -} - -// PlanarCentroid returns the centroid of the planar triangle ABC. This can be -// normalized to unit length to obtain the "surface centroid" of the corresponding -// spherical triangle, i.e. the intersection of the three medians. However, note -// that for large spherical triangles the surface centroid may be nowhere near -// the intuitive "center". -func PlanarCentroid(a, b, c Point) Point { - return Point{a.Add(b.Vector).Add(c.Vector).Mul(1. / 3)} -} diff --git a/backend/vendor/github.com/golang/geo/s2/contains_point_query.go b/backend/vendor/github.com/golang/geo/s2/contains_point_query.go deleted file mode 100644 index 3026f360..00000000 --- a/backend/vendor/github.com/golang/geo/s2/contains_point_query.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// VertexModel defines whether shapes are considered to contain their vertices. -// Note that these definitions differ from the ones used by BooleanOperation. -// -// Note that points other than vertices are never contained by polylines. -// If you want need this behavior, use ClosestEdgeQuery's IsDistanceLess -// with a suitable distance threshold instead. -type VertexModel int - -const ( - // VertexModelOpen means no shapes contain their vertices (not even - // points). Therefore Contains(Point) returns true if and only if the - // point is in the interior of some polygon. - VertexModelOpen VertexModel = iota - - // VertexModelSemiOpen means that polygon point containment is defined - // such that if several polygons tile the region around a vertex, then - // exactly one of those polygons contains that vertex. Points and - // polylines still do not contain any vertices. - VertexModelSemiOpen - - // VertexModelClosed means all shapes contain their vertices (including - // points and polylines). - VertexModelClosed -) - -// ContainsPointQuery determines whether one or more shapes in a ShapeIndex -// contain a given Point. The ShapeIndex may contain any number of points, -// polylines, and/or polygons (possibly overlapping). Shape boundaries may be -// modeled as Open, SemiOpen, or Closed (this affects whether or not shapes are -// considered to contain their vertices). -// -// This type is not safe for concurrent use. -// -// However, note that if you need to do a large number of point containment -// tests, it is more efficient to re-use the query rather than creating a new -// one each time. -type ContainsPointQuery struct { - model VertexModel - index *ShapeIndex - iter *ShapeIndexIterator -} - -// NewContainsPointQuery creates a new instance of the ContainsPointQuery for the index -// and given vertex model choice. -func NewContainsPointQuery(index *ShapeIndex, model VertexModel) *ContainsPointQuery { - return &ContainsPointQuery{ - index: index, - model: model, - iter: index.Iterator(), - } -} - -// Contains reports whether any shape in the queries index contains the point p -// under the queries vertex model (Open, SemiOpen, or Closed). -func (q *ContainsPointQuery) Contains(p Point) bool { - if !q.iter.LocatePoint(p) { - return false - } - - cell := q.iter.IndexCell() - for _, clipped := range cell.shapes { - if q.shapeContains(clipped, q.iter.Center(), p) { - return true - } - } - return false -} - -// shapeContains reports whether the clippedShape from the iterator's center position contains -// the given point. -func (q *ContainsPointQuery) shapeContains(clipped *clippedShape, center, p Point) bool { - inside := clipped.containsCenter - numEdges := clipped.numEdges() - if numEdges <= 0 { - return inside - } - - shape := q.index.Shape(clipped.shapeID) - if shape.Dimension() != 2 { - // Points and polylines can be ignored unless the vertex model is Closed. - if q.model != VertexModelClosed { - return false - } - - // Otherwise, the point is contained if and only if it matches a vertex. - for _, edgeID := range clipped.edges { - edge := shape.Edge(edgeID) - if edge.V0 == p || edge.V1 == p { - return true - } - } - return false - } - - // Test containment by drawing a line segment from the cell center to the - // given point and counting edge crossings. - crosser := NewEdgeCrosser(center, p) - for _, edgeID := range clipped.edges { - edge := shape.Edge(edgeID) - sign := crosser.CrossingSign(edge.V0, edge.V1) - if sign == DoNotCross { - continue - } - if sign == MaybeCross { - // For the Open and Closed models, check whether p is a vertex. - if q.model != VertexModelSemiOpen && (edge.V0 == p || edge.V1 == p) { - return (q.model == VertexModelClosed) - } - // C++ plays fast and loose with the int <-> bool conversions here. - if VertexCrossing(crosser.a, crosser.b, edge.V0, edge.V1) { - sign = Cross - } else { - sign = DoNotCross - } - } - inside = inside != (sign == Cross) - } - - return inside -} - -// ShapeContains reports whether the given shape contains the point under this -// queries vertex model (Open, SemiOpen, or Closed). -// -// This requires the shape belongs to this queries index. -func (q *ContainsPointQuery) ShapeContains(shape Shape, p Point) bool { - if !q.iter.LocatePoint(p) { - return false - } - - clipped := q.iter.IndexCell().findByShapeID(q.index.idForShape(shape)) - if clipped == nil { - return false - } - return q.shapeContains(clipped, q.iter.Center(), p) -} - -// shapeVisitorFunc is a type of function that can be called against shaped in an index. -type shapeVisitorFunc func(shape Shape) bool - -// visitContainingShapes visits all shapes in the given index that contain the -// given point p, terminating early if the given visitor function returns false, -// in which case visitContainingShapes returns false. Each shape is -// visited at most once. -func (q *ContainsPointQuery) visitContainingShapes(p Point, f shapeVisitorFunc) bool { - // This function returns false only if the algorithm terminates early - // because the visitor function returned false. - if !q.iter.LocatePoint(p) { - return true - } - - cell := q.iter.IndexCell() - for _, clipped := range cell.shapes { - if q.shapeContains(clipped, q.iter.Center(), p) && - !f(q.index.Shape(clipped.shapeID)) { - return false - } - } - return true -} - -// ContainingShapes returns a slice of all shapes that contain the given point. -func (q *ContainsPointQuery) ContainingShapes(p Point) []Shape { - var shapes []Shape - q.visitContainingShapes(p, func(shape Shape) bool { - shapes = append(shapes, shape) - return true - }) - return shapes -} - -// TODO(roberts): Remaining methods from C++ -// type edgeVisitorFunc func(shape ShapeEdge) bool -// func (q *ContainsPointQuery) visitIncidentEdges(p Point, v edgeVisitorFunc) bool diff --git a/backend/vendor/github.com/golang/geo/s2/contains_vertex_query.go b/backend/vendor/github.com/golang/geo/s2/contains_vertex_query.go deleted file mode 100644 index 8e74f9e5..00000000 --- a/backend/vendor/github.com/golang/geo/s2/contains_vertex_query.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// ContainsVertexQuery is used to track the edges entering and leaving the -// given vertex of a Polygon in order to be able to determine if the point is -// contained by the Polygon. -// -// Point containment is defined according to the semi-open boundary model -// which means that if several polygons tile the region around a vertex, -// then exactly one of those polygons contains that vertex. -type ContainsVertexQuery struct { - target Point - edgeMap map[Point]int -} - -// NewContainsVertexQuery returns a new query for the given vertex whose -// containment will be determined. -func NewContainsVertexQuery(target Point) *ContainsVertexQuery { - return &ContainsVertexQuery{ - target: target, - edgeMap: make(map[Point]int), - } -} - -// AddEdge adds the edge between target and v with the given direction. -// (+1 = outgoing, -1 = incoming, 0 = degenerate). -func (q *ContainsVertexQuery) AddEdge(v Point, direction int) { - q.edgeMap[v] += direction -} - -// ContainsVertex reports a +1 if the target vertex is contained, -1 if it is -// not contained, and 0 if the incident edges consisted of matched sibling pairs. -func (q *ContainsVertexQuery) ContainsVertex() int { - // Find the unmatched edge that is immediately clockwise from Ortho(P). - referenceDir := Point{q.target.Ortho()} - - bestPoint := referenceDir - bestDir := 0 - - for k, v := range q.edgeMap { - if v == 0 { - continue // This is a "matched" edge. - } - if OrderedCCW(referenceDir, bestPoint, k, q.target) { - bestPoint = k - bestDir = v - } - } - return bestDir -} diff --git a/backend/vendor/github.com/golang/geo/s2/convex_hull_query.go b/backend/vendor/github.com/golang/geo/s2/convex_hull_query.go deleted file mode 100644 index 2a87377e..00000000 --- a/backend/vendor/github.com/golang/geo/s2/convex_hull_query.go +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "sort" - - "github.com/golang/geo/r3" -) - -// ConvexHullQuery builds the convex hull of any collection of points, -// polylines, loops, and polygons. It returns a single convex loop. -// -// The convex hull is defined as the smallest convex region on the sphere that -// contains all of your input geometry. Recall that a region is "convex" if -// for every pair of points inside the region, the straight edge between them -// is also inside the region. In our case, a "straight" edge is a geodesic, -// i.e. the shortest path on the sphere between two points. -// -// Containment of input geometry is defined as follows: -// -// - Each input loop and polygon is contained by the convex hull exactly -// (i.e., according to Polygon's Contains(Polygon)). -// -// - Each input point is either contained by the convex hull or is a vertex -// of the convex hull. (Recall that S2Loops do not necessarily contain their -// vertices.) -// -// - For each input polyline, the convex hull contains all of its vertices -// according to the rule for points above. (The definition of convexity -// then ensures that the convex hull also contains the polyline edges.) -// -// To use this type, call the various Add... methods to add your input geometry, and -// then call ConvexHull. Note that ConvexHull does *not* reset the -// state; you can continue adding geometry if desired and compute the convex -// hull again. If you want to start from scratch, simply create a new -// ConvexHullQuery value. -// -// This implement Andrew's monotone chain algorithm, which is a variant of the -// Graham scan (see https://en.wikipedia.org/wiki/Graham_scan). The time -// complexity is O(n log n), and the space required is O(n). In fact only the -// call to "sort" takes O(n log n) time; the rest of the algorithm is linear. -// -// Demonstration of the algorithm and code: -// en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain -// -// This type is not safe for concurrent use. -type ConvexHullQuery struct { - bound Rect - points []Point -} - -// NewConvexHullQuery creates a new ConvexHullQuery. -func NewConvexHullQuery() *ConvexHullQuery { - return &ConvexHullQuery{ - bound: EmptyRect(), - } -} - -// AddPoint adds the given point to the input geometry. -func (q *ConvexHullQuery) AddPoint(p Point) { - q.bound = q.bound.AddPoint(LatLngFromPoint(p)) - q.points = append(q.points, p) -} - -// AddPolyline adds the given polyline to the input geometry. -func (q *ConvexHullQuery) AddPolyline(p *Polyline) { - q.bound = q.bound.Union(p.RectBound()) - q.points = append(q.points, (*p)...) -} - -// AddLoop adds the given loop to the input geometry. -func (q *ConvexHullQuery) AddLoop(l *Loop) { - q.bound = q.bound.Union(l.RectBound()) - if l.isEmptyOrFull() { - return - } - q.points = append(q.points, l.vertices...) -} - -// AddPolygon adds the given polygon to the input geometry. -func (q *ConvexHullQuery) AddPolygon(p *Polygon) { - q.bound = q.bound.Union(p.RectBound()) - for _, l := range p.loops { - // Only loops at depth 0 can contribute to the convex hull. - if l.depth == 0 { - q.AddLoop(l) - } - } -} - -// CapBound returns a bounding cap for the input geometry provided. -// -// Note that this method does not clear the geometry; you can continue -// adding to it and call this method again if desired. -func (q *ConvexHullQuery) CapBound() Cap { - // We keep track of a rectangular bound rather than a spherical cap because - // it is easy to compute a tight bound for a union of rectangles, whereas it - // is quite difficult to compute a tight bound around a union of caps. - // Also, polygons and polylines implement CapBound() in terms of - // RectBound() for this same reason, so it is much better to keep track - // of a rectangular bound as we go along and convert it at the end. - // - // TODO(roberts): We could compute an optimal bound by implementing Welzl's - // algorithm. However we would still need to have special handling of loops - // and polygons, since if a loop spans more than 180 degrees in any - // direction (i.e., if it contains two antipodal points), then it is not - // enough just to bound its vertices. In this case the only convex bounding - // cap is FullCap(), and the only convex bounding loop is the full loop. - return q.bound.CapBound() -} - -// ConvexHull returns a Loop representing the convex hull of the input geometry provided. -// -// If there is no geometry, this method returns an empty loop containing no -// points. -// -// If the geometry spans more than half of the sphere, this method returns a -// full loop containing the entire sphere. -// -// If the geometry contains 1 or 2 points, or a single edge, this method -// returns a very small loop consisting of three vertices (which are a -// superset of the input vertices). -// -// Note that this method does not clear the geometry; you can continue -// adding to the query and call this method again. -func (q *ConvexHullQuery) ConvexHull() *Loop { - c := q.CapBound() - if c.Height() >= 1 { - // The bounding cap is not convex. The current bounding cap - // implementation is not optimal, but nevertheless it is likely that the - // input geometry itself is not contained by any convex polygon. In any - // case, we need a convex bounding cap to proceed with the algorithm below - // (in order to construct a point "origin" that is definitely outside the - // convex hull). - return FullLoop() - } - - // Remove duplicates. We need to do this before checking whether there are - // fewer than 3 points. - x := make(map[Point]bool) - r, w := 0, 0 // read/write indexes - for ; r < len(q.points); r++ { - if x[q.points[r]] { - continue - } - q.points[w] = q.points[r] - x[q.points[r]] = true - w++ - } - q.points = q.points[:w] - - // This code implements Andrew's monotone chain algorithm, which is a simple - // variant of the Graham scan. Rather than sorting by x-coordinate, instead - // we sort the points in CCW order around an origin O such that all points - // are guaranteed to be on one side of some geodesic through O. This - // ensures that as we scan through the points, each new point can only - // belong at the end of the chain (i.e., the chain is monotone in terms of - // the angle around O from the starting point). - origin := Point{c.Center().Ortho()} - sort.Slice(q.points, func(i, j int) bool { - return RobustSign(origin, q.points[i], q.points[j]) == CounterClockwise - }) - - // Special cases for fewer than 3 points. - switch len(q.points) { - case 0: - return EmptyLoop() - case 1: - return singlePointLoop(q.points[0]) - case 2: - return singleEdgeLoop(q.points[0], q.points[1]) - } - - // Generate the lower and upper halves of the convex hull. Each half - // consists of the maximal subset of vertices such that the edge chain - // makes only left (CCW) turns. - lower := q.monotoneChain() - - // reverse the points - for left, right := 0, len(q.points)-1; left < right; left, right = left+1, right-1 { - q.points[left], q.points[right] = q.points[right], q.points[left] - } - upper := q.monotoneChain() - - // Remove the duplicate vertices and combine the chains. - lower = lower[:len(lower)-1] - upper = upper[:len(upper)-1] - lower = append(lower, upper...) - - return LoopFromPoints(lower) -} - -// monotoneChain iterates through the points, selecting the maximal subset of points -// such that the edge chain makes only left (CCW) turns. -func (q *ConvexHullQuery) monotoneChain() []Point { - var output []Point - for _, p := range q.points { - // Remove any points that would cause the chain to make a clockwise turn. - for len(output) >= 2 && RobustSign(output[len(output)-2], output[len(output)-1], p) != CounterClockwise { - output = output[:len(output)-1] - } - output = append(output, p) - } - return output -} - -// singlePointLoop constructs a 3-vertex polygon consisting of "p" and two nearby -// vertices. Note that ContainsPoint(p) may be false for the resulting loop. -func singlePointLoop(p Point) *Loop { - const offset = 1e-15 - d0 := p.Ortho() - d1 := p.Cross(d0) - vertices := []Point{ - p, - {p.Add(d0.Mul(offset)).Normalize()}, - {p.Add(d1.Mul(offset)).Normalize()}, - } - return LoopFromPoints(vertices) -} - -// singleEdgeLoop constructs a loop consisting of the two vertices and their midpoint. -func singleEdgeLoop(a, b Point) *Loop { - // If the points are exactly antipodal we return the full loop. - // - // Note that we could use the code below even in this case (which would - // return a zero-area loop that follows the edge AB), except that (1) the - // direction of AB is defined using symbolic perturbations and therefore is - // not predictable by ordinary users, and (2) Loop disallows anitpodal - // adjacent vertices and so we would need to use 4 vertices to define the - // degenerate loop. (Note that the Loop antipodal vertex restriction is - // historical and now could easily be removed, however it would still have - // the problem that the edge direction is not easily predictable.) - if a.Add(b.Vector) == (r3.Vector{}) { - return FullLoop() - } - - // Construct a loop consisting of the two vertices and their midpoint. We - // use Interpolate() to ensure that the midpoint is very close to - // the edge even when its endpoints nearly antipodal. - vertices := []Point{a, b, Interpolate(0.5, a, b)} - loop := LoopFromPoints(vertices) - // The resulting loop may be clockwise, so invert it if necessary. - loop.Normalize() - return loop -} diff --git a/backend/vendor/github.com/golang/geo/s2/crossing_edge_query.go b/backend/vendor/github.com/golang/geo/s2/crossing_edge_query.go deleted file mode 100644 index 51852dab..00000000 --- a/backend/vendor/github.com/golang/geo/s2/crossing_edge_query.go +++ /dev/null @@ -1,409 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "sort" - - "github.com/golang/geo/r2" -) - -// CrossingEdgeQuery is used to find the Edge IDs of Shapes that are crossed by -// a given edge(s). -// -// Note that if you need to query many edges, it is more efficient to declare -// a single CrossingEdgeQuery instance and reuse it. -// -// If you want to find *all* the pairs of crossing edges, it is more efficient to -// use the not yet implemented VisitCrossings in shapeutil. -type CrossingEdgeQuery struct { - index *ShapeIndex - - // temporary values used while processing a query. - a, b r2.Point - iter *ShapeIndexIterator - - // candidate cells generated when finding crossings. - cells []*ShapeIndexCell -} - -// NewCrossingEdgeQuery creates a CrossingEdgeQuery for the given index. -func NewCrossingEdgeQuery(index *ShapeIndex) *CrossingEdgeQuery { - c := &CrossingEdgeQuery{ - index: index, - iter: index.Iterator(), - } - return c -} - -// Crossings returns the set of edge of the shape S that intersect the given edge AB. -// If the CrossingType is Interior, then only intersections at a point interior to both -// edges are reported, while if it is CrossingTypeAll then edges that share a vertex -// are also reported. -func (c *CrossingEdgeQuery) Crossings(a, b Point, shape Shape, crossType CrossingType) []int { - edges := c.candidates(a, b, shape) - if len(edges) == 0 { - return nil - } - - crosser := NewEdgeCrosser(a, b) - out := 0 - n := len(edges) - - for in := 0; in < n; in++ { - b := shape.Edge(edges[in]) - sign := crosser.CrossingSign(b.V0, b.V1) - if crossType == CrossingTypeAll && (sign == MaybeCross || sign == Cross) || crossType != CrossingTypeAll && sign == Cross { - edges[out] = edges[in] - out++ - } - } - - if out < n { - edges = edges[0:out] - } - return edges -} - -// EdgeMap stores a sorted set of edge ids for each shape. -type EdgeMap map[Shape][]int - -// CrossingsEdgeMap returns the set of all edges in the index that intersect the given -// edge AB. If crossType is CrossingTypeInterior, then only intersections at a -// point interior to both edges are reported, while if it is CrossingTypeAll -// then edges that share a vertex are also reported. -// -// The edges are returned as a mapping from shape to the edges of that shape -// that intersect AB. Every returned shape has at least one crossing edge. -func (c *CrossingEdgeQuery) CrossingsEdgeMap(a, b Point, crossType CrossingType) EdgeMap { - edgeMap := c.candidatesEdgeMap(a, b) - if len(edgeMap) == 0 { - return nil - } - - crosser := NewEdgeCrosser(a, b) - for shape, edges := range edgeMap { - out := 0 - n := len(edges) - for in := 0; in < n; in++ { - edge := shape.Edge(edges[in]) - sign := crosser.CrossingSign(edge.V0, edge.V1) - if (crossType == CrossingTypeAll && (sign == MaybeCross || sign == Cross)) || (crossType != CrossingTypeAll && sign == Cross) { - edgeMap[shape][out] = edges[in] - out++ - } - } - - if out == 0 { - delete(edgeMap, shape) - } else { - if out < n { - edgeMap[shape] = edgeMap[shape][0:out] - } - } - } - return edgeMap -} - -// candidates returns a superset of the edges of the given shape that intersect -// the edge AB. -func (c *CrossingEdgeQuery) candidates(a, b Point, shape Shape) []int { - var edges []int - - // For small loops it is faster to use brute force. The threshold below was - // determined using benchmarks. - const maxBruteForceEdges = 27 - maxEdges := shape.NumEdges() - if maxEdges <= maxBruteForceEdges { - edges = make([]int, maxEdges) - for i := 0; i < maxEdges; i++ { - edges[i] = i - } - return edges - } - - // Compute the set of index cells intersected by the query edge. - c.getCellsForEdge(a, b) - if len(c.cells) == 0 { - return nil - } - - // Gather all the edges that intersect those cells and sort them. - // TODO(roberts): Shapes don't track their ID, so we need to range over - // the index to find the ID manually. - var shapeID int32 - for k, v := range c.index.shapes { - if v == shape { - shapeID = k - } - } - - for _, cell := range c.cells { - if cell == nil { - continue - } - clipped := cell.findByShapeID(shapeID) - if clipped == nil { - continue - } - edges = append(edges, clipped.edges...) - } - - if len(c.cells) > 1 { - edges = uniqueInts(edges) - } - - return edges -} - -// uniqueInts returns the sorted uniqued values from the given input. -func uniqueInts(in []int) []int { - var edges []int - m := make(map[int]bool) - for _, i := range in { - if m[i] { - continue - } - m[i] = true - edges = append(edges, i) - } - sort.Ints(edges) - return edges -} - -// candidatesEdgeMap returns a map from shapes to the superse of edges for that -// shape that intersect the edge AB. -// -// CAVEAT: This method may return shapes that have an empty set of candidate edges. -// However the return value is non-empty only if at least one shape has a candidate edge. -func (c *CrossingEdgeQuery) candidatesEdgeMap(a, b Point) EdgeMap { - edgeMap := make(EdgeMap) - - // If there are only a few edges then it's faster to use brute force. We - // only bother with this optimization when there is a single shape. - if len(c.index.shapes) == 1 { - // Typically this method is called many times, so it is worth checking - // whether the edge map is empty or already consists of a single entry for - // this shape, and skip clearing edge map in that case. - shape := c.index.Shape(0) - - // Note that we leave the edge map non-empty even if there are no candidates - // (i.e., there is a single entry with an empty set of edges). - edgeMap[shape] = c.candidates(a, b, shape) - return edgeMap - } - - // Compute the set of index cells intersected by the query edge. - c.getCellsForEdge(a, b) - if len(c.cells) == 0 { - return edgeMap - } - - // Gather all the edges that intersect those cells and sort them. - for _, cell := range c.cells { - for _, clipped := range cell.shapes { - s := c.index.Shape(clipped.shapeID) - for j := 0; j < clipped.numEdges(); j++ { - edgeMap[s] = append(edgeMap[s], clipped.edges[j]) - } - } - } - - if len(c.cells) > 1 { - for s, edges := range edgeMap { - edgeMap[s] = uniqueInts(edges) - } - } - - return edgeMap -} - -// getCells returns the set of ShapeIndexCells that might contain edges intersecting -// the edge AB in the given cell root. This method is used primarily by loop and shapeutil. -func (c *CrossingEdgeQuery) getCells(a, b Point, root *PaddedCell) []*ShapeIndexCell { - aUV, bUV, ok := ClipToFace(a, b, root.id.Face()) - if ok { - c.a = aUV - c.b = bUV - edgeBound := r2.RectFromPoints(c.a, c.b) - if root.Bound().Intersects(edgeBound) { - c.computeCellsIntersected(root, edgeBound) - } - } - - if len(c.cells) == 0 { - return nil - } - - return c.cells -} - -// getCellsForEdge populates the cells field to the set of index cells intersected by an edge AB. -func (c *CrossingEdgeQuery) getCellsForEdge(a, b Point) { - c.cells = nil - - segments := FaceSegments(a, b) - for _, segment := range segments { - c.a = segment.a - c.b = segment.b - - // Optimization: rather than always starting the recursive subdivision at - // the top level face cell, instead we start at the smallest S2CellId that - // contains the edge (the edge root cell). This typically lets us skip - // quite a few levels of recursion since most edges are short. - edgeBound := r2.RectFromPoints(c.a, c.b) - pcell := PaddedCellFromCellID(CellIDFromFace(segment.face), 0) - edgeRoot := pcell.ShrinkToFit(edgeBound) - - // Now we need to determine how the edge root cell is related to the cells - // in the spatial index (cellMap). There are three cases: - // - // 1. edgeRoot is an index cell or is contained within an index cell. - // In this case we only need to look at the contents of that cell. - // 2. edgeRoot is subdivided into one or more index cells. In this case - // we recursively subdivide to find the cells intersected by AB. - // 3. edgeRoot does not intersect any index cells. In this case there - // is nothing to do. - relation := c.iter.LocateCellID(edgeRoot) - if relation == Indexed { - // edgeRoot is an index cell or is contained by an index cell (case 1). - c.cells = append(c.cells, c.iter.IndexCell()) - } else if relation == Subdivided { - // edgeRoot is subdivided into one or more index cells (case 2). We - // find the cells intersected by AB using recursive subdivision. - if !edgeRoot.isFace() { - pcell = PaddedCellFromCellID(edgeRoot, 0) - } - c.computeCellsIntersected(pcell, edgeBound) - } - } -} - -// computeCellsIntersected computes the index cells intersected by the current -// edge that are descendants of pcell and adds them to this queries set of cells. -func (c *CrossingEdgeQuery) computeCellsIntersected(pcell *PaddedCell, edgeBound r2.Rect) { - - c.iter.seek(pcell.id.RangeMin()) - if c.iter.Done() || c.iter.CellID() > pcell.id.RangeMax() { - // The index does not contain pcell or any of its descendants. - return - } - if c.iter.CellID() == pcell.id { - // The index contains this cell exactly. - c.cells = append(c.cells, c.iter.IndexCell()) - return - } - - // Otherwise, split the edge among the four children of pcell. - center := pcell.Middle().Lo() - - if edgeBound.X.Hi < center.X { - // Edge is entirely contained in the two left children. - c.clipVAxis(edgeBound, center.Y, 0, pcell) - return - } else if edgeBound.X.Lo >= center.X { - // Edge is entirely contained in the two right children. - c.clipVAxis(edgeBound, center.Y, 1, pcell) - return - } - - childBounds := c.splitUBound(edgeBound, center.X) - if edgeBound.Y.Hi < center.Y { - // Edge is entirely contained in the two lower children. - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, 0, 0), childBounds[0]) - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, 1, 0), childBounds[1]) - } else if edgeBound.Y.Lo >= center.Y { - // Edge is entirely contained in the two upper children. - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, 0, 1), childBounds[0]) - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, 1, 1), childBounds[1]) - } else { - // The edge bound spans all four children. The edge itself intersects - // at most three children (since no padding is being used). - c.clipVAxis(childBounds[0], center.Y, 0, pcell) - c.clipVAxis(childBounds[1], center.Y, 1, pcell) - } -} - -// clipVAxis computes the intersected cells recursively for a given padded cell. -// Given either the left (i=0) or right (i=1) side of a padded cell pcell, -// determine whether the current edge intersects the lower child, upper child, -// or both children, and call c.computeCellsIntersected recursively on those children. -// The center is the v-coordinate at the center of pcell. -func (c *CrossingEdgeQuery) clipVAxis(edgeBound r2.Rect, center float64, i int, pcell *PaddedCell) { - if edgeBound.Y.Hi < center { - // Edge is entirely contained in the lower child. - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, i, 0), edgeBound) - } else if edgeBound.Y.Lo >= center { - // Edge is entirely contained in the upper child. - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, i, 1), edgeBound) - } else { - // The edge intersects both children. - childBounds := c.splitVBound(edgeBound, center) - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, i, 0), childBounds[0]) - c.computeCellsIntersected(PaddedCellFromParentIJ(pcell, i, 1), childBounds[1]) - } -} - -// splitUBound returns the bound for two children as a result of spliting the -// current edge at the given value U. -func (c *CrossingEdgeQuery) splitUBound(edgeBound r2.Rect, u float64) [2]r2.Rect { - v := edgeBound.Y.ClampPoint(interpolateFloat64(u, c.a.X, c.b.X, c.a.Y, c.b.Y)) - // diag indicates which diagonal of the bounding box is spanned by AB: - // it is 0 if AB has positive slope, and 1 if AB has negative slope. - var diag int - if (c.a.X > c.b.X) != (c.a.Y > c.b.Y) { - diag = 1 - } - return splitBound(edgeBound, 0, diag, u, v) -} - -// splitVBound returns the bound for two children as a result of spliting the -// current edge into two child edges at the given value V. -func (c *CrossingEdgeQuery) splitVBound(edgeBound r2.Rect, v float64) [2]r2.Rect { - u := edgeBound.X.ClampPoint(interpolateFloat64(v, c.a.Y, c.b.Y, c.a.X, c.b.X)) - var diag int - if (c.a.X > c.b.X) != (c.a.Y > c.b.Y) { - diag = 1 - } - return splitBound(edgeBound, diag, 0, u, v) -} - -// splitBound returns the bounds for the two childrenn as a result of spliting -// the current edge into two child edges at the given point (u,v). uEnd and vEnd -// indicate which bound endpoints of the first child will be updated. -func splitBound(edgeBound r2.Rect, uEnd, vEnd int, u, v float64) [2]r2.Rect { - var childBounds = [2]r2.Rect{ - edgeBound, - edgeBound, - } - - if uEnd == 1 { - childBounds[0].X.Lo = u - childBounds[1].X.Hi = u - } else { - childBounds[0].X.Hi = u - childBounds[1].X.Lo = u - } - - if vEnd == 1 { - childBounds[0].Y.Lo = v - childBounds[1].Y.Hi = v - } else { - childBounds[0].Y.Hi = v - childBounds[1].Y.Lo = v - } - - return childBounds -} diff --git a/backend/vendor/github.com/golang/geo/s2/distance_target.go b/backend/vendor/github.com/golang/geo/s2/distance_target.go deleted file mode 100644 index 066bbacf..00000000 --- a/backend/vendor/github.com/golang/geo/s2/distance_target.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2019 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "github.com/golang/geo/s1" -) - -// The distance interface represents a set of common methods used by algorithms -// that compute distances between various S2 types. -type distance interface { - // chordAngle returns this type as a ChordAngle. - chordAngle() s1.ChordAngle - - // fromChordAngle is used to type convert a ChordAngle to this type. - // This is to work around needing to be clever in parts of the code - // where a distanceTarget interface method expects distances, but the - // user only supplies a ChordAngle, and we need to dynamically cast it - // to an appropriate distance interface types. - fromChordAngle(o s1.ChordAngle) distance - - // zero returns a zero distance. - zero() distance - // negative returns a value smaller than any valid value. - negative() distance - // infinity returns a value larger than any valid value. - infinity() distance - - // less is similar to the Less method in Sort. To get minimum values, - // this would be a less than type operation. For maximum, this would - // be a greater than type operation. - less(other distance) bool - - // sub subtracts the other value from this one and returns the new value. - // This is done as a method and not simple mathematical operation to - // allow closest and furthest to implement this in opposite ways. - sub(other distance) distance - - // chordAngleBound reports the upper bound on a ChordAngle corresponding - // to this distance. For example, if distance measures WGS84 ellipsoid - // distance then the corresponding angle needs to be 0.56% larger. - chordAngleBound() s1.ChordAngle - - // updateDistance may update the value this distance represents - // based on the given input. The updated value and a boolean reporting - // if the value was changed are returned. - updateDistance(other distance) (distance, bool) -} - -// distanceTarget is an interface that represents a geometric type to which distances -// are measured. -// -// For example, there are implementations that measure distances to a Point, -// an Edge, a Cell, a CellUnion, and even to an arbitrary collection of geometry -// stored in ShapeIndex. -// -// The distanceTarget types are provided for the benefit of types that measure -// distances and/or find nearby geometry, such as ClosestEdgeQuery, FurthestEdgeQuery, -// ClosestPointQuery, and ClosestCellQuery, etc. -type distanceTarget interface { - // capBound returns a Cap that bounds the set of points whose distance to the - // target is distance.zero(). - capBound() Cap - - // updateDistanceToPoint updates the distance if the distance to - // the point P is within than the given dist. - // The boolean reports if the value was updated. - updateDistanceToPoint(p Point, dist distance) (distance, bool) - - // updateDistanceToEdge updates the distance if the distance to - // the edge E is within than the given dist. - // The boolean reports if the value was updated. - updateDistanceToEdge(e Edge, dist distance) (distance, bool) - - // updateDistanceToCell updates the distance if the distance to the cell C - // (including its interior) is within than the given dist. - // The boolean reports if the value was updated. - updateDistanceToCell(c Cell, dist distance) (distance, bool) - - // setMaxError potentially updates the value of MaxError, and reports if - // the specific type supports altering it. Whenever one of the - // updateDistanceTo... methods above returns true, the returned distance - // is allowed to be up to maxError larger than the true minimum distance. - // In other words, it gives this target object permission to terminate its - // distance calculation as soon as it has determined that (1) the minimum - // distance is less than minDist and (2) the best possible further - // improvement is less than maxError. - // - // If the target takes advantage of maxError to optimize its distance - // calculation, this method must return true. (Most target types will - // default to return false.) - setMaxError(maxErr s1.ChordAngle) bool - - // maxBruteForceIndexSize reports the maximum number of indexed objects for - // which it is faster to compute the distance by brute force (e.g., by testing - // every edge) rather than by using an index. - // - // The following method is provided as a convenience for types that compute - // distances to a collection of indexed geometry, such as ClosestEdgeQuery - // and ClosestPointQuery. - // - // Types that do not support this should return a -1. - maxBruteForceIndexSize() int - - // distance returns an instance of the underlying distance type this - // target uses. This is to work around the use of Templates in the C++. - distance() distance - - // visitContainingShapes finds all polygons in the given index that - // completely contain a connected component of the target geometry. (For - // example, if the target consists of 10 points, this method finds - // polygons that contain any of those 10 points.) For each such polygon, - // the visit function is called with the Shape of the polygon along with - // a point of the target geometry that is contained by that polygon. - // - // Optionally, any polygon that intersects the target geometry may also be - // returned. In other words, this method returns all polygons that - // contain any connected component of the target, along with an arbitrary - // subset of the polygons that intersect the target. - // - // For example, suppose that the index contains two abutting polygons - // A and B. If the target consists of two points "a" contained by A and - // "b" contained by B, then both A and B are returned. But if the target - // consists of the edge "ab", then any subset of {A, B} could be returned - // (because both polygons intersect the target but neither one contains - // the edge "ab"). - // - // If the visit function returns false, this method terminates early and - // returns false as well. Otherwise returns true. - // - // NOTE(roberts): This method exists only for the purpose of implementing - // edgeQuery IncludeInteriors efficiently. - visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool -} - -// shapePointVisitorFunc defines a type of function the visitContainingShapes can call. -type shapePointVisitorFunc func(containingShape Shape, targetPoint Point) bool diff --git a/backend/vendor/github.com/golang/geo/s2/doc.go b/backend/vendor/github.com/golang/geo/s2/doc.go deleted file mode 100644 index e554af21..00000000 --- a/backend/vendor/github.com/golang/geo/s2/doc.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package s2 is a library for working with geometry in S² (spherical geometry). - -Its related packages, parallel to this one, are s1 (operates on S¹), r1 (operates on ℝ¹), -r2 (operates on ℝ²) and r3 (operates on ℝ³). - -This package provides types and functions for the S2 cell hierarchy and coordinate systems. -The S2 cell hierarchy is a hierarchical decomposition of the surface of a unit sphere (S²) -into “cells”; it is highly efficient, scales from continental size to under 1 cm² -and preserves spatial locality (nearby cells have close IDs). - -More information including an in-depth introduction to S2 can be found on the -S2 website https://s2geometry.io/ -*/ -package s2 diff --git a/backend/vendor/github.com/golang/geo/s2/edge_clipping.go b/backend/vendor/github.com/golang/geo/s2/edge_clipping.go deleted file mode 100644 index 813bf98d..00000000 --- a/backend/vendor/github.com/golang/geo/s2/edge_clipping.go +++ /dev/null @@ -1,673 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// This file contains a collection of methods for: -// -// (1) Robustly clipping geodesic edges to the faces of the S2 biunit cube -// (see s2stuv), and -// -// (2) Robustly clipping 2D edges against 2D rectangles. -// -// These functions can be used to efficiently find the set of CellIDs that -// are intersected by a geodesic edge (e.g., see CrossingEdgeQuery). - -import ( - "math" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r2" - "github.com/golang/geo/r3" -) - -const ( - // edgeClipErrorUVCoord is the maximum error in a u- or v-coordinate - // compared to the exact result, assuming that the points A and B are in - // the rectangle [-1,1]x[1,1] or slightly outside it (by 1e-10 or less). - edgeClipErrorUVCoord = 2.25 * dblEpsilon - - // edgeClipErrorUVDist is the maximum distance from a clipped point to - // the corresponding exact result. It is equal to the error in a single - // coordinate because at most one coordinate is subject to error. - edgeClipErrorUVDist = 2.25 * dblEpsilon - - // faceClipErrorRadians is the maximum angle between a returned vertex - // and the nearest point on the exact edge AB. It is equal to the - // maximum directional error in PointCross, plus the error when - // projecting points onto a cube face. - faceClipErrorRadians = 3 * dblEpsilon - - // faceClipErrorDist is the same angle expressed as a maximum distance - // in (u,v)-space. In other words, a returned vertex is at most this far - // from the exact edge AB projected into (u,v)-space. - faceClipErrorUVDist = 9 * dblEpsilon - - // faceClipErrorUVCoord is the maximum angle between a returned vertex - // and the nearest point on the exact edge AB expressed as the maximum error - // in an individual u- or v-coordinate. In other words, for each - // returned vertex there is a point on the exact edge AB whose u- and - // v-coordinates differ from the vertex by at most this amount. - faceClipErrorUVCoord = 9.0 * (1.0 / math.Sqrt2) * dblEpsilon - - // intersectsRectErrorUVDist is the maximum error when computing if a point - // intersects with a given Rect. If some point of AB is inside the - // rectangle by at least this distance, the result is guaranteed to be true; - // if all points of AB are outside the rectangle by at least this distance, - // the result is guaranteed to be false. This bound assumes that rect is - // a subset of the rectangle [-1,1]x[-1,1] or extends slightly outside it - // (e.g., by 1e-10 or less). - intersectsRectErrorUVDist = 3 * math.Sqrt2 * dblEpsilon -) - -// ClipToFace returns the (u,v) coordinates for the portion of the edge AB that -// intersects the given face, or false if the edge AB does not intersect. -// This method guarantees that the clipped vertices lie within the [-1,1]x[-1,1] -// cube face rectangle and are within faceClipErrorUVDist of the line AB, but -// the results may differ from those produced by FaceSegments. -func ClipToFace(a, b Point, face int) (aUV, bUV r2.Point, intersects bool) { - return ClipToPaddedFace(a, b, face, 0.0) -} - -// ClipToPaddedFace returns the (u,v) coordinates for the portion of the edge AB that -// intersects the given face, but rather than clipping to the square [-1,1]x[-1,1] -// in (u,v) space, this method clips to [-R,R]x[-R,R] where R=(1+padding). -// Padding must be non-negative. -func ClipToPaddedFace(a, b Point, f int, padding float64) (aUV, bUV r2.Point, intersects bool) { - // Fast path: both endpoints are on the given face. - if face(a.Vector) == f && face(b.Vector) == f { - au, av := validFaceXYZToUV(f, a.Vector) - bu, bv := validFaceXYZToUV(f, b.Vector) - return r2.Point{au, av}, r2.Point{bu, bv}, true - } - - // Convert everything into the (u,v,w) coordinates of the given face. Note - // that the cross product *must* be computed in the original (x,y,z) - // coordinate system because PointCross (unlike the mathematical cross - // product) can produce different results in different coordinate systems - // when one argument is a linear multiple of the other, due to the use of - // symbolic perturbations. - normUVW := pointUVW(faceXYZtoUVW(f, a.PointCross(b))) - aUVW := pointUVW(faceXYZtoUVW(f, a)) - bUVW := pointUVW(faceXYZtoUVW(f, b)) - - // Padding is handled by scaling the u- and v-components of the normal. - // Letting R=1+padding, this means that when we compute the dot product of - // the normal with a cube face vertex (such as (-1,-1,1)), we will actually - // compute the dot product with the scaled vertex (-R,-R,1). This allows - // methods such as intersectsFace, exitAxis, etc, to handle padding - // with no further modifications. - scaleUV := 1 + padding - scaledN := pointUVW{r3.Vector{X: scaleUV * normUVW.X, Y: scaleUV * normUVW.Y, Z: normUVW.Z}} - if !scaledN.intersectsFace() { - return aUV, bUV, false - } - - // TODO(roberts): This is a workaround for extremely small vectors where some - // loss of precision can occur in Normalize causing underflow. When PointCross - // is updated to work around this, this can be removed. - if math.Max(math.Abs(normUVW.X), math.Max(math.Abs(normUVW.Y), math.Abs(normUVW.Z))) < math.Ldexp(1, -511) { - normUVW = pointUVW{normUVW.Mul(math.Ldexp(1, 563))} - } - - normUVW = pointUVW{normUVW.Normalize()} - - aTan := pointUVW{normUVW.Cross(aUVW.Vector)} - bTan := pointUVW{bUVW.Cross(normUVW.Vector)} - - // As described in clipDestination, if the sum of the scores from clipping the two - // endpoints is 3 or more, then the segment does not intersect this face. - aUV, aScore := clipDestination(bUVW, aUVW, pointUVW{scaledN.Mul(-1)}, bTan, aTan, scaleUV) - bUV, bScore := clipDestination(aUVW, bUVW, scaledN, aTan, bTan, scaleUV) - - return aUV, bUV, aScore+bScore < 3 -} - -// ClipEdge returns the portion of the edge defined by AB that is contained by the -// given rectangle. If there is no intersection, false is returned and aClip and bClip -// are undefined. -func ClipEdge(a, b r2.Point, clip r2.Rect) (aClip, bClip r2.Point, intersects bool) { - // Compute the bounding rectangle of AB, clip it, and then extract the new - // endpoints from the clipped bound. - bound := r2.RectFromPoints(a, b) - if bound, intersects = clipEdgeBound(a, b, clip, bound); !intersects { - return aClip, bClip, false - } - ai := 0 - if a.X > b.X { - ai = 1 - } - aj := 0 - if a.Y > b.Y { - aj = 1 - } - - return bound.VertexIJ(ai, aj), bound.VertexIJ(1-ai, 1-aj), true -} - -// The three functions below (sumEqual, intersectsFace, intersectsOppositeEdges) -// all compare a sum (u + v) to a third value w. They are implemented in such a -// way that they produce an exact result even though all calculations are done -// with ordinary floating-point operations. Here are the principles on which these -// functions are based: -// -// A. If u + v < w in floating-point, then u + v < w in exact arithmetic. -// -// B. If u + v < w in exact arithmetic, then at least one of the following -// expressions is true in floating-point: -// u + v < w -// u < w - v -// v < w - u -// -// Proof: By rearranging terms and substituting ">" for "<", we can assume -// that all values are non-negative. Now clearly "w" is not the smallest -// value, so assume WLOG that "u" is the smallest. We want to show that -// u < w - v in floating-point. If v >= w/2, the calculation of w - v is -// exact since the result is smaller in magnitude than either input value, -// so the result holds. Otherwise we have u <= v < w/2 and w - v >= w/2 -// (even in floating point), so the result also holds. - -// sumEqual reports whether u + v == w exactly. -func sumEqual(u, v, w float64) bool { - return (u+v == w) && (u == w-v) && (v == w-u) -} - -// pointUVW represents a Point in (u,v,w) coordinate space of a cube face. -type pointUVW Point - -// intersectsFace reports whether a given directed line L intersects the cube face F. -// The line L is defined by its normal N in the (u,v,w) coordinates of F. -func (p pointUVW) intersectsFace() bool { - // L intersects the [-1,1]x[-1,1] square in (u,v) if and only if the dot - // products of N with the four corner vertices (-1,-1,1), (1,-1,1), (1,1,1), - // and (-1,1,1) do not all have the same sign. This is true exactly when - // |Nu| + |Nv| >= |Nw|. The code below evaluates this expression exactly. - u := math.Abs(p.X) - v := math.Abs(p.Y) - w := math.Abs(p.Z) - - // We only need to consider the cases where u or v is the smallest value, - // since if w is the smallest then both expressions below will have a - // positive LHS and a negative RHS. - return (v >= w-u) && (u >= w-v) -} - -// intersectsOppositeEdges reports whether a directed line L intersects two -// opposite edges of a cube face F. This includs the case where L passes -// exactly through a corner vertex of F. The directed line L is defined -// by its normal N in the (u,v,w) coordinates of F. -func (p pointUVW) intersectsOppositeEdges() bool { - // The line L intersects opposite edges of the [-1,1]x[-1,1] (u,v) square if - // and only exactly two of the corner vertices lie on each side of L. This - // is true exactly when ||Nu| - |Nv|| >= |Nw|. The code below evaluates this - // expression exactly. - u := math.Abs(p.X) - v := math.Abs(p.Y) - w := math.Abs(p.Z) - - // If w is the smallest, the following line returns an exact result. - if math.Abs(u-v) != w { - return math.Abs(u-v) >= w - } - - // Otherwise u - v = w exactly, or w is not the smallest value. In either - // case the following returns the correct result. - if u >= v { - return u-w >= v - } - return v-w >= u -} - -// axis represents the possible results of exitAxis. -type axis int - -const ( - axisU axis = iota - axisV -) - -// exitAxis reports which axis the directed line L exits the cube face F on. -// The directed line L is represented by its CCW normal N in the (u,v,w) coordinates -// of F. It returns axisU if L exits through the u=-1 or u=+1 edge, and axisV if L exits -// through the v=-1 or v=+1 edge. Either result is acceptable if L exits exactly -// through a corner vertex of the cube face. -func (p pointUVW) exitAxis() axis { - if p.intersectsOppositeEdges() { - // The line passes through through opposite edges of the face. - // It exits through the v=+1 or v=-1 edge if the u-component of N has a - // larger absolute magnitude than the v-component. - if math.Abs(p.X) >= math.Abs(p.Y) { - return axisV - } - return axisU - } - - // The line passes through through two adjacent edges of the face. - // It exits the v=+1 or v=-1 edge if an even number of the components of N - // are negative. We test this using signbit() rather than multiplication - // to avoid the possibility of underflow. - var x, y, z int - if math.Signbit(p.X) { - x = 1 - } - if math.Signbit(p.Y) { - y = 1 - } - if math.Signbit(p.Z) { - z = 1 - } - - if x^y^z == 0 { - return axisV - } - return axisU -} - -// exitPoint returns the UV coordinates of the point where a directed line L (represented -// by the CCW normal of this point), exits the cube face this point is derived from along -// the given axis. -func (p pointUVW) exitPoint(a axis) r2.Point { - if a == axisU { - u := -1.0 - if p.Y > 0 { - u = 1.0 - } - return r2.Point{u, (-u*p.X - p.Z) / p.Y} - } - - v := -1.0 - if p.X < 0 { - v = 1.0 - } - return r2.Point{(-v*p.Y - p.Z) / p.X, v} -} - -// clipDestination returns a score which is used to indicate if the clipped edge AB -// on the given face intersects the face at all. This function returns the score for -// the given endpoint, which is an integer ranging from 0 to 3. If the sum of the scores -// from both of the endpoints is 3 or more, then edge AB does not intersect this face. -// -// First, it clips the line segment AB to find the clipped destination B' on a given -// face. (The face is specified implicitly by expressing *all arguments* in the (u,v,w) -// coordinates of that face.) Second, it partially computes whether the segment AB -// intersects this face at all. The actual condition is fairly complicated, but it -// turns out that it can be expressed as a "score" that can be computed independently -// when clipping the two endpoints A and B. -func clipDestination(a, b, scaledN, aTan, bTan pointUVW, scaleUV float64) (r2.Point, int) { - var uv r2.Point - - // Optimization: if B is within the safe region of the face, use it. - maxSafeUVCoord := 1 - faceClipErrorUVCoord - if b.Z > 0 { - uv = r2.Point{b.X / b.Z, b.Y / b.Z} - if math.Max(math.Abs(uv.X), math.Abs(uv.Y)) <= maxSafeUVCoord { - return uv, 0 - } - } - - // Otherwise find the point B' where the line AB exits the face. - uv = scaledN.exitPoint(scaledN.exitAxis()).Mul(scaleUV) - - p := pointUVW(Point{r3.Vector{uv.X, uv.Y, 1.0}}) - - // Determine if the exit point B' is contained within the segment. We do this - // by computing the dot products with two inward-facing tangent vectors at A - // and B. If either dot product is negative, we say that B' is on the "wrong - // side" of that point. As the point B' moves around the great circle AB past - // the segment endpoint B, it is initially on the wrong side of B only; as it - // moves further it is on the wrong side of both endpoints; and then it is on - // the wrong side of A only. If the exit point B' is on the wrong side of - // either endpoint, we can't use it; instead the segment is clipped at the - // original endpoint B. - // - // We reject the segment if the sum of the scores of the two endpoints is 3 - // or more. Here is what that rule encodes: - // - If B' is on the wrong side of A, then the other clipped endpoint A' - // must be in the interior of AB (otherwise AB' would go the wrong way - // around the circle). There is a similar rule for A'. - // - If B' is on the wrong side of either endpoint (and therefore we must - // use the original endpoint B instead), then it must be possible to - // project B onto this face (i.e., its w-coordinate must be positive). - // This rule is only necessary to handle certain zero-length edges (A=B). - score := 0 - if p.Sub(a.Vector).Dot(aTan.Vector) < 0 { - score = 2 // B' is on wrong side of A. - } else if p.Sub(b.Vector).Dot(bTan.Vector) < 0 { - score = 1 // B' is on wrong side of B. - } - - if score > 0 { // B' is not in the interior of AB. - if b.Z <= 0 { - score = 3 // B cannot be projected onto this face. - } else { - uv = r2.Point{b.X / b.Z, b.Y / b.Z} - } - } - - return uv, score -} - -// updateEndpoint returns the interval with the specified endpoint updated to -// the given value. If the value lies beyond the opposite endpoint, nothing is -// changed and false is returned. -func updateEndpoint(bound r1.Interval, highEndpoint bool, value float64) (r1.Interval, bool) { - if !highEndpoint { - if bound.Hi < value { - return bound, false - } - if bound.Lo < value { - bound.Lo = value - } - return bound, true - } - - if bound.Lo > value { - return bound, false - } - if bound.Hi > value { - bound.Hi = value - } - return bound, true -} - -// clipBoundAxis returns the clipped versions of the bounding intervals for the given -// axes for the line segment from (a0,a1) to (b0,b1) so that neither extends beyond the -// given clip interval. negSlope is a precomputed helper variable that indicates which -// diagonal of the bounding box is spanned by AB; it is false if AB has positive slope, -// and true if AB has negative slope. If the clipping interval doesn't overlap the bounds, -// false is returned. -func clipBoundAxis(a0, b0 float64, bound0 r1.Interval, a1, b1 float64, bound1 r1.Interval, - negSlope bool, clip r1.Interval) (bound0c, bound1c r1.Interval, updated bool) { - - if bound0.Lo < clip.Lo { - // If the upper bound is below the clips lower bound, there is nothing to do. - if bound0.Hi < clip.Lo { - return bound0, bound1, false - } - // narrow the intervals lower bound to the clip bound. - bound0.Lo = clip.Lo - if bound1, updated = updateEndpoint(bound1, negSlope, interpolateFloat64(clip.Lo, a0, b0, a1, b1)); !updated { - return bound0, bound1, false - } - } - - if bound0.Hi > clip.Hi { - // If the lower bound is above the clips upper bound, there is nothing to do. - if bound0.Lo > clip.Hi { - return bound0, bound1, false - } - // narrow the intervals upper bound to the clip bound. - bound0.Hi = clip.Hi - if bound1, updated = updateEndpoint(bound1, !negSlope, interpolateFloat64(clip.Hi, a0, b0, a1, b1)); !updated { - return bound0, bound1, false - } - } - return bound0, bound1, true -} - -// edgeIntersectsRect reports whether the edge defined by AB intersects the -// given closed rectangle to within the error bound. -func edgeIntersectsRect(a, b r2.Point, r r2.Rect) bool { - // First check whether the bounds of a Rect around AB intersects the given rect. - if !r.Intersects(r2.RectFromPoints(a, b)) { - return false - } - - // Otherwise AB intersects the rect if and only if all four vertices of rect - // do not lie on the same side of the extended line AB. We test this by finding - // the two vertices of rect with minimum and maximum projections onto the normal - // of AB, and computing their dot products with the edge normal. - n := b.Sub(a).Ortho() - - i := 0 - if n.X >= 0 { - i = 1 - } - j := 0 - if n.Y >= 0 { - j = 1 - } - - max := n.Dot(r.VertexIJ(i, j).Sub(a)) - min := n.Dot(r.VertexIJ(1-i, 1-j).Sub(a)) - - return (max >= 0) && (min <= 0) -} - -// clippedEdgeBound returns the bounding rectangle of the portion of the edge defined -// by AB intersected by clip. The resulting bound may be empty. This is a convenience -// function built on top of clipEdgeBound. -func clippedEdgeBound(a, b r2.Point, clip r2.Rect) r2.Rect { - bound := r2.RectFromPoints(a, b) - if b1, intersects := clipEdgeBound(a, b, clip, bound); intersects { - return b1 - } - return r2.EmptyRect() -} - -// clipEdgeBound clips an edge AB to sequence of rectangles efficiently. -// It represents the clipped edges by their bounding boxes rather than as a pair of -// endpoints. Specifically, let A'B' be some portion of an edge AB, and let bound be -// a tight bound of A'B'. This function returns the bound that is a tight bound -// of A'B' intersected with a given rectangle. If A'B' does not intersect clip, -// it returns false and the original bound. -func clipEdgeBound(a, b r2.Point, clip, bound r2.Rect) (r2.Rect, bool) { - // negSlope indicates which diagonal of the bounding box is spanned by AB: it - // is false if AB has positive slope, and true if AB has negative slope. This is - // used to determine which interval endpoints need to be updated each time - // the edge is clipped. - negSlope := (a.X > b.X) != (a.Y > b.Y) - - b0x, b0y, up1 := clipBoundAxis(a.X, b.X, bound.X, a.Y, b.Y, bound.Y, negSlope, clip.X) - if !up1 { - return bound, false - } - b1y, b1x, up2 := clipBoundAxis(a.Y, b.Y, b0y, a.X, b.X, b0x, negSlope, clip.Y) - if !up2 { - return r2.Rect{b0x, b0y}, false - } - return r2.Rect{X: b1x, Y: b1y}, true -} - -// interpolateFloat64 returns a value with the same combination of a1 and b1 as the -// given value x is of a and b. This function makes the following guarantees: -// - If x == a, then x1 = a1 (exactly). -// - If x == b, then x1 = b1 (exactly). -// - If a <= x <= b, then a1 <= x1 <= b1 (even if a1 == b1). -// -// This requires a != b. -func interpolateFloat64(x, a, b, a1, b1 float64) float64 { - // To get results that are accurate near both A and B, we interpolate - // starting from the closer of the two points. - if math.Abs(a-x) <= math.Abs(b-x) { - return a1 + (b1-a1)*(x-a)/(b-a) - } - return b1 + (a1-b1)*(x-b)/(a-b) -} - -// FaceSegment represents an edge AB clipped to an S2 cube face. It is -// represented by a face index and a pair of (u,v) coordinates. -type FaceSegment struct { - face int - a, b r2.Point -} - -// FaceSegments subdivides the given edge AB at every point where it crosses the -// boundary between two S2 cube faces and returns the corresponding FaceSegments. -// The segments are returned in order from A toward B. The input points must be -// unit length. -// -// This function guarantees that the returned segments form a continuous path -// from A to B, and that all vertices are within faceClipErrorUVDist of the -// line AB. All vertices lie within the [-1,1]x[-1,1] cube face rectangles. -// The results are consistent with Sign, i.e. the edge is well-defined even its -// endpoints are antipodal. -// TODO(roberts): Extend the implementation of PointCross so that this is true. -func FaceSegments(a, b Point) []FaceSegment { - var segment FaceSegment - - // Fast path: both endpoints are on the same face. - var aFace, bFace int - aFace, segment.a.X, segment.a.Y = xyzToFaceUV(a.Vector) - bFace, segment.b.X, segment.b.Y = xyzToFaceUV(b.Vector) - if aFace == bFace { - segment.face = aFace - return []FaceSegment{segment} - } - - // Starting at A, we follow AB from face to face until we reach the face - // containing B. The following code is designed to ensure that we always - // reach B, even in the presence of numerical errors. - // - // First we compute the normal to the plane containing A and B. This normal - // becomes the ultimate definition of the line AB; it is used to resolve all - // questions regarding where exactly the line goes. Unfortunately due to - // numerical errors, the line may not quite intersect the faces containing - // the original endpoints. We handle this by moving A and/or B slightly if - // necessary so that they are on faces intersected by the line AB. - ab := a.PointCross(b) - - aFace, segment.a = moveOriginToValidFace(aFace, a, ab, segment.a) - bFace, segment.b = moveOriginToValidFace(bFace, b, Point{ab.Mul(-1)}, segment.b) - - // Now we simply follow AB from face to face until we reach B. - var segments []FaceSegment - segment.face = aFace - bSaved := segment.b - - for face := aFace; face != bFace; { - // Complete the current segment by finding the point where AB - // exits the current face. - z := faceXYZtoUVW(face, ab) - n := pointUVW{z.Vector} - - exitAxis := n.exitAxis() - segment.b = n.exitPoint(exitAxis) - segments = append(segments, segment) - - // Compute the next face intersected by AB, and translate the exit - // point of the current segment into the (u,v) coordinates of the - // next face. This becomes the first point of the next segment. - exitXyz := faceUVToXYZ(face, segment.b.X, segment.b.Y) - face = nextFace(face, segment.b, exitAxis, n, bFace) - exitUvw := faceXYZtoUVW(face, Point{exitXyz}) - segment.face = face - segment.a = r2.Point{exitUvw.X, exitUvw.Y} - } - // Finish the last segment. - segment.b = bSaved - return append(segments, segment) -} - -// moveOriginToValidFace updates the origin point to a valid face if necessary. -// Given a line segment AB whose origin A has been projected onto a given cube -// face, determine whether it is necessary to project A onto a different face -// instead. This can happen because the normal of the line AB is not computed -// exactly, so that the line AB (defined as the set of points perpendicular to -// the normal) may not intersect the cube face containing A. Even if it does -// intersect the face, the exit point of the line from that face may be on -// the wrong side of A (i.e., in the direction away from B). If this happens, -// we reproject A onto the adjacent face where the line AB approaches A most -// closely. This moves the origin by a small amount, but never more than the -// error tolerances. -func moveOriginToValidFace(face int, a, ab Point, aUV r2.Point) (int, r2.Point) { - // Fast path: if the origin is sufficiently far inside the face, it is - // always safe to use it. - const maxSafeUVCoord = 1 - faceClipErrorUVCoord - if math.Max(math.Abs((aUV).X), math.Abs((aUV).Y)) <= maxSafeUVCoord { - return face, aUV - } - - // Otherwise check whether the normal AB even intersects this face. - z := faceXYZtoUVW(face, ab) - n := pointUVW{z.Vector} - if n.intersectsFace() { - // Check whether the point where the line AB exits this face is on the - // wrong side of A (by more than the acceptable error tolerance). - uv := n.exitPoint(n.exitAxis()) - exit := faceUVToXYZ(face, uv.X, uv.Y) - aTangent := ab.Normalize().Cross(a.Vector) - - // We can use the given face. - if exit.Sub(a.Vector).Dot(aTangent) >= -faceClipErrorRadians { - return face, aUV - } - } - - // Otherwise we reproject A to the nearest adjacent face. (If line AB does - // not pass through a given face, it must pass through all adjacent faces.) - var dir int - if math.Abs((aUV).X) >= math.Abs((aUV).Y) { - // U-axis - if aUV.X > 0 { - dir = 1 - } - face = uvwFace(face, 0, dir) - } else { - // V-axis - if aUV.Y > 0 { - dir = 1 - } - face = uvwFace(face, 1, dir) - } - - aUV.X, aUV.Y = validFaceXYZToUV(face, a.Vector) - aUV.X = math.Max(-1.0, math.Min(1.0, aUV.X)) - aUV.Y = math.Max(-1.0, math.Min(1.0, aUV.Y)) - - return face, aUV -} - -// nextFace returns the next face that should be visited by FaceSegments, given that -// we have just visited face and we are following the line AB (represented -// by its normal N in the (u,v,w) coordinates of that face). The other -// arguments include the point where AB exits face, the corresponding -// exit axis, and the target face containing the destination point B. -func nextFace(face int, exit r2.Point, axis axis, n pointUVW, targetFace int) int { - // this bit is to work around C++ cleverly casting bools to ints for you. - exitA := exit.X - exit1MinusA := exit.Y - - if axis == axisV { - exitA = exit.Y - exit1MinusA = exit.X - } - exitAPos := 0 - if exitA > 0 { - exitAPos = 1 - } - exit1MinusAPos := 0 - if exit1MinusA > 0 { - exit1MinusAPos = 1 - } - - // We return the face that is adjacent to the exit point along the given - // axis. If line AB exits *exactly* through a corner of the face, there are - // two possible next faces. If one is the target face containing B, then - // we guarantee that we advance to that face directly. - // - // The three conditions below check that (1) AB exits approximately through - // a corner, (2) the adjacent face along the non-exit axis is the target - // face, and (3) AB exits *exactly* through the corner. (The sumEqual - // code checks whether the dot product of (u,v,1) and n is exactly zero.) - if math.Abs(exit1MinusA) == 1 && - uvwFace(face, int(1-axis), exit1MinusAPos) == targetFace && - sumEqual(exit.X*n.X, exit.Y*n.Y, -n.Z) { - return targetFace - } - - // Otherwise return the face that is adjacent to the exit point in the - // direction of the exit axis. - return uvwFace(face, int(axis), exitAPos) -} diff --git a/backend/vendor/github.com/golang/geo/s2/edge_crosser.go b/backend/vendor/github.com/golang/geo/s2/edge_crosser.go deleted file mode 100644 index 81d94f9c..00000000 --- a/backend/vendor/github.com/golang/geo/s2/edge_crosser.go +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" -) - -// EdgeCrosser allows edges to be efficiently tested for intersection with a -// given fixed edge AB. It is especially efficient when testing for -// intersection with an edge chain connecting vertices v0, v1, v2, ... -// -// Example usage: -// -// func CountIntersections(a, b Point, edges []Edge) int { -// count := 0 -// crosser := NewEdgeCrosser(a, b) -// for _, edge := range edges { -// if crosser.CrossingSign(&edge.First, &edge.Second) != DoNotCross { -// count++ -// } -// } -// return count -// } -type EdgeCrosser struct { - a Point - b Point - aXb Point - - // To reduce the number of calls to expensiveSign, we compute an - // outward-facing tangent at A and B if necessary. If the plane - // perpendicular to one of these tangents separates AB from CD (i.e., one - // edge on each side) then there is no intersection. - aTangent Point // Outward-facing tangent at A. - bTangent Point // Outward-facing tangent at B. - - // The fields below are updated for each vertex in the chain. - c Point // Previous vertex in the vertex chain. - acb Direction // The orientation of triangle ACB. -} - -// NewEdgeCrosser returns an EdgeCrosser with the fixed edge AB. -func NewEdgeCrosser(a, b Point) *EdgeCrosser { - norm := a.PointCross(b) - return &EdgeCrosser{ - a: a, - b: b, - aXb: Point{a.Cross(b.Vector)}, - aTangent: Point{a.Cross(norm.Vector)}, - bTangent: Point{norm.Cross(b.Vector)}, - } -} - -// CrossingSign reports whether the edge AB intersects the edge CD. If any two -// vertices from different edges are the same, returns MaybeCross. If either edge -// is degenerate (A == B or C == D), returns either DoNotCross or MaybeCross. -// -// Properties of CrossingSign: -// -// (1) CrossingSign(b,a,c,d) == CrossingSign(a,b,c,d) -// (2) CrossingSign(c,d,a,b) == CrossingSign(a,b,c,d) -// (3) CrossingSign(a,b,c,d) == MaybeCross if a==c, a==d, b==c, b==d -// (3) CrossingSign(a,b,c,d) == DoNotCross or MaybeCross if a==b or c==d -// -// Note that if you want to check an edge against a chain of other edges, -// it is slightly more efficient to use the single-argument version -// ChainCrossingSign below. -func (e *EdgeCrosser) CrossingSign(c, d Point) Crossing { - if c != e.c { - e.RestartAt(c) - } - return e.ChainCrossingSign(d) -} - -// EdgeOrVertexCrossing reports whether if CrossingSign(c, d) > 0, or AB and -// CD share a vertex and VertexCrossing(a, b, c, d) is true. -// -// This method extends the concept of a "crossing" to the case where AB -// and CD have a vertex in common. The two edges may or may not cross, -// according to the rules defined in VertexCrossing above. The rules -// are designed so that point containment tests can be implemented simply -// by counting edge crossings. Similarly, determining whether one edge -// chain crosses another edge chain can be implemented by counting. -func (e *EdgeCrosser) EdgeOrVertexCrossing(c, d Point) bool { - if c != e.c { - e.RestartAt(c) - } - return e.EdgeOrVertexChainCrossing(d) -} - -// NewChainEdgeCrosser is a convenience constructor that uses AB as the fixed edge, -// and C as the first vertex of the vertex chain (equivalent to calling RestartAt(c)). -// -// You don't need to use this or any of the chain functions unless you're trying to -// squeeze out every last drop of performance. Essentially all you are saving is a test -// whether the first vertex of the current edge is the same as the second vertex of the -// previous edge. -func NewChainEdgeCrosser(a, b, c Point) *EdgeCrosser { - e := NewEdgeCrosser(a, b) - e.RestartAt(c) - return e -} - -// RestartAt sets the current point of the edge crosser to be c. -// Call this method when your chain 'jumps' to a new place. -// The argument must point to a value that persists until the next call. -func (e *EdgeCrosser) RestartAt(c Point) { - e.c = c - e.acb = -triageSign(e.a, e.b, e.c) -} - -// ChainCrossingSign is like CrossingSign, but uses the last vertex passed to one of -// the crossing methods (or RestartAt) as the first vertex of the current edge. -func (e *EdgeCrosser) ChainCrossingSign(d Point) Crossing { - // For there to be an edge crossing, the triangles ACB, CBD, BDA, DAC must - // all be oriented the same way (CW or CCW). We keep the orientation of ACB - // as part of our state. When each new point D arrives, we compute the - // orientation of BDA and check whether it matches ACB. This checks whether - // the points C and D are on opposite sides of the great circle through AB. - - // Recall that triageSign is invariant with respect to rotating its - // arguments, i.e. ABD has the same orientation as BDA. - bda := triageSign(e.a, e.b, d) - if e.acb == -bda && bda != Indeterminate { - // The most common case -- triangles have opposite orientations. Save the - // current vertex D as the next vertex C, and also save the orientation of - // the new triangle ACB (which is opposite to the current triangle BDA). - e.c = d - e.acb = -bda - return DoNotCross - } - return e.crossingSign(d, bda) -} - -// EdgeOrVertexChainCrossing is like EdgeOrVertexCrossing, but uses the last vertex -// passed to one of the crossing methods (or RestartAt) as the first vertex of the current edge. -func (e *EdgeCrosser) EdgeOrVertexChainCrossing(d Point) bool { - // We need to copy e.c since it is clobbered by ChainCrossingSign. - c := e.c - switch e.ChainCrossingSign(d) { - case DoNotCross: - return false - case Cross: - return true - } - return VertexCrossing(e.a, e.b, c, d) -} - -// crossingSign handle the slow path of CrossingSign. -func (e *EdgeCrosser) crossingSign(d Point, bda Direction) Crossing { - // Compute the actual result, and then save the current vertex D as the next - // vertex C, and save the orientation of the next triangle ACB (which is - // opposite to the current triangle BDA). - defer func() { - e.c = d - e.acb = -bda - }() - - // At this point, a very common situation is that A,B,C,D are four points on - // a line such that AB does not overlap CD. (For example, this happens when - // a line or curve is sampled finely, or when geometry is constructed by - // computing the union of S2CellIds.) Most of the time, we can determine - // that AB and CD do not intersect using the two outward-facing - // tangents at A and B (parallel to AB) and testing whether AB and CD are on - // opposite sides of the plane perpendicular to one of these tangents. This - // is moderately expensive but still much cheaper than expensiveSign. - - // The error in RobustCrossProd is insignificant. The maximum error in - // the call to CrossProd (i.e., the maximum norm of the error vector) is - // (0.5 + 1/sqrt(3)) * dblEpsilon. The maximum error in each call to - // DotProd below is dblEpsilon. (There is also a small relative error - // term that is insignificant because we are comparing the result against a - // constant that is very close to zero.) - maxError := (1.5 + 1/math.Sqrt(3)) * dblEpsilon - if (e.c.Dot(e.aTangent.Vector) > maxError && d.Dot(e.aTangent.Vector) > maxError) || (e.c.Dot(e.bTangent.Vector) > maxError && d.Dot(e.bTangent.Vector) > maxError) { - return DoNotCross - } - - // Otherwise, eliminate the cases where two vertices from different edges are - // equal. (These cases could be handled in the code below, but we would rather - // avoid calling ExpensiveSign if possible.) - if e.a == e.c || e.a == d || e.b == e.c || e.b == d { - return MaybeCross - } - - // Eliminate the cases where an input edge is degenerate. (Note that in - // most cases, if CD is degenerate then this method is not even called - // because acb and bda have different signs.) - if e.a == e.b || e.c == d { - return DoNotCross - } - - // Otherwise it's time to break out the big guns. - if e.acb == Indeterminate { - e.acb = -expensiveSign(e.a, e.b, e.c) - } - if bda == Indeterminate { - bda = expensiveSign(e.a, e.b, d) - } - - if bda != e.acb { - return DoNotCross - } - - cbd := -RobustSign(e.c, d, e.b) - if cbd != e.acb { - return DoNotCross - } - dac := RobustSign(e.c, d, e.a) - if dac != e.acb { - return DoNotCross - } - return Cross -} diff --git a/backend/vendor/github.com/golang/geo/s2/edge_crossings.go b/backend/vendor/github.com/golang/geo/s2/edge_crossings.go deleted file mode 100644 index 5b29da3f..00000000 --- a/backend/vendor/github.com/golang/geo/s2/edge_crossings.go +++ /dev/null @@ -1,396 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "math" - - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -const ( - // intersectionError can be set somewhat arbitrarily, because the algorithm - // uses more precision if necessary in order to achieve the specified error. - // The only strict requirement is that intersectionError >= dblEpsilon - // radians. However, using a larger error tolerance makes the algorithm more - // efficient because it reduces the number of cases where exact arithmetic is - // needed. - intersectionError = s1.Angle(8 * dblError) - - // intersectionMergeRadius is used to ensure that intersection points that - // are supposed to be coincident are merged back together into a single - // vertex. This is required in order for various polygon operations (union, - // intersection, etc) to work correctly. It is twice the intersection error - // because two coincident intersection points might have errors in - // opposite directions. - intersectionMergeRadius = 2 * intersectionError -) - -// A Crossing indicates how edges cross. -type Crossing int - -const ( - // Cross means the edges cross. - Cross Crossing = iota - // MaybeCross means two vertices from different edges are the same. - MaybeCross - // DoNotCross means the edges do not cross. - DoNotCross -) - -func (c Crossing) String() string { - switch c { - case Cross: - return "Cross" - case MaybeCross: - return "MaybeCross" - case DoNotCross: - return "DoNotCross" - default: - return fmt.Sprintf("(BAD CROSSING %d)", c) - } -} - -// CrossingSign reports whether the edge AB intersects the edge CD. -// If AB crosses CD at a point that is interior to both edges, Cross is returned. -// If any two vertices from different edges are the same it returns MaybeCross. -// Otherwise it returns DoNotCross. -// If either edge is degenerate (A == B or C == D), the return value is MaybeCross -// if two vertices from different edges are the same and DoNotCross otherwise. -// -// Properties of CrossingSign: -// -// (1) CrossingSign(b,a,c,d) == CrossingSign(a,b,c,d) -// (2) CrossingSign(c,d,a,b) == CrossingSign(a,b,c,d) -// (3) CrossingSign(a,b,c,d) == MaybeCross if a==c, a==d, b==c, b==d -// (3) CrossingSign(a,b,c,d) == DoNotCross or MaybeCross if a==b or c==d -// -// This method implements an exact, consistent perturbation model such -// that no three points are ever considered to be collinear. This means -// that even if you have 4 points A, B, C, D that lie exactly in a line -// (say, around the equator), C and D will be treated as being slightly to -// one side or the other of AB. This is done in a way such that the -// results are always consistent (see RobustSign). -func CrossingSign(a, b, c, d Point) Crossing { - crosser := NewChainEdgeCrosser(a, b, c) - return crosser.ChainCrossingSign(d) -} - -// VertexCrossing reports whether two edges "cross" in such a way that point-in-polygon -// containment tests can be implemented by counting the number of edge crossings. -// -// Given two edges AB and CD where at least two vertices are identical -// (i.e. CrossingSign(a,b,c,d) == 0), the basic rule is that a "crossing" -// occurs if AB is encountered after CD during a CCW sweep around the shared -// vertex starting from a fixed reference point. -// -// Note that according to this rule, if AB crosses CD then in general CD -// does not cross AB. However, this leads to the correct result when -// counting polygon edge crossings. For example, suppose that A,B,C are -// three consecutive vertices of a CCW polygon. If we now consider the edge -// crossings of a segment BP as P sweeps around B, the crossing number -// changes parity exactly when BP crosses BA or BC. -// -// Useful properties of VertexCrossing (VC): -// -// (1) VC(a,a,c,d) == VC(a,b,c,c) == false -// (2) VC(a,b,a,b) == VC(a,b,b,a) == true -// (3) VC(a,b,c,d) == VC(a,b,d,c) == VC(b,a,c,d) == VC(b,a,d,c) -// (3) If exactly one of a,b equals one of c,d, then exactly one of -// VC(a,b,c,d) and VC(c,d,a,b) is true -// -// It is an error to call this method with 4 distinct vertices. -func VertexCrossing(a, b, c, d Point) bool { - // If A == B or C == D there is no intersection. We need to check this - // case first in case 3 or more input points are identical. - if a == b || c == d { - return false - } - - // If any other pair of vertices is equal, there is a crossing if and only - // if OrderedCCW indicates that the edge AB is further CCW around the - // shared vertex O (either A or B) than the edge CD, starting from an - // arbitrary fixed reference point. - - // Optimization: if AB=CD or AB=DC, we can avoid most of the calculations. - switch { - case a == c: - return (b == d) || OrderedCCW(Point{a.Ortho()}, d, b, a) - case b == d: - return OrderedCCW(Point{b.Ortho()}, c, a, b) - case a == d: - return (b == c) || OrderedCCW(Point{a.Ortho()}, c, b, a) - case b == c: - return OrderedCCW(Point{b.Ortho()}, d, a, b) - } - - return false -} - -// EdgeOrVertexCrossing is a convenience function that calls CrossingSign to -// handle cases where all four vertices are distinct, and VertexCrossing to -// handle cases where two or more vertices are the same. This defines a crossing -// function such that point-in-polygon containment tests can be implemented -// by simply counting edge crossings. -func EdgeOrVertexCrossing(a, b, c, d Point) bool { - switch CrossingSign(a, b, c, d) { - case DoNotCross: - return false - case Cross: - return true - default: - return VertexCrossing(a, b, c, d) - } -} - -// Intersection returns the intersection point of two edges AB and CD that cross -// (CrossingSign(a,b,c,d) == Crossing). -// -// Useful properties of Intersection: -// -// (1) Intersection(b,a,c,d) == Intersection(a,b,d,c) == Intersection(a,b,c,d) -// (2) Intersection(c,d,a,b) == Intersection(a,b,c,d) -// -// The returned intersection point X is guaranteed to be very close to the -// true intersection point of AB and CD, even if the edges intersect at a -// very small angle. -func Intersection(a0, a1, b0, b1 Point) Point { - // It is difficult to compute the intersection point of two edges accurately - // when the angle between the edges is very small. Previously we handled - // this by only guaranteeing that the returned intersection point is within - // intersectionError of each edge. However, this means that when the edges - // cross at a very small angle, the computed result may be very far from the - // true intersection point. - // - // Instead this function now guarantees that the result is always within - // intersectionError of the true intersection. This requires using more - // sophisticated techniques and in some cases extended precision. - // - // - intersectionStable computes the intersection point using - // projection and interpolation, taking care to minimize cancellation - // error. - // - // - intersectionExact computes the intersection point using precision - // arithmetic and converts the final result back to an Point. - pt, ok := intersectionStable(a0, a1, b0, b1) - if !ok { - pt = intersectionExact(a0, a1, b0, b1) - } - - // Make sure the intersection point is on the correct side of the sphere. - // Since all vertices are unit length, and edges are less than 180 degrees, - // (a0 + a1) and (b0 + b1) both have positive dot product with the - // intersection point. We use the sum of all vertices to make sure that the - // result is unchanged when the edges are swapped or reversed. - if pt.Dot((a0.Add(a1.Vector)).Add(b0.Add(b1.Vector))) < 0 { - pt = Point{pt.Mul(-1)} - } - - return pt -} - -// Computes the cross product of two vectors, normalized to be unit length. -// Also returns the length of the cross -// product before normalization, which is useful for estimating the amount of -// error in the result. For numerical stability, the vectors should both be -// approximately unit length. -func robustNormalWithLength(x, y r3.Vector) (r3.Vector, float64) { - var pt r3.Vector - // This computes 2 * (x.Cross(y)), but has much better numerical - // stability when x and y are unit length. - tmp := x.Sub(y).Cross(x.Add(y)) - length := tmp.Norm() - if length != 0 { - pt = tmp.Mul(1 / length) - } - return pt, 0.5 * length // Since tmp == 2 * (x.Cross(y)) -} - -/* -// intersectionSimple is not used by the C++ so it is skipped here. -*/ - -// projection returns the projection of aNorm onto X (x.Dot(aNorm)), and a bound -// on the error in the result. aNorm is not necessarily unit length. -// -// The remaining parameters (the length of aNorm (aNormLen) and the edge endpoints -// a0 and a1) allow this dot product to be computed more accurately and efficiently. -func projection(x, aNorm r3.Vector, aNormLen float64, a0, a1 Point) (proj, bound float64) { - // The error in the dot product is proportional to the lengths of the input - // vectors, so rather than using x itself (a unit-length vector) we use - // the vectors from x to the closer of the two edge endpoints. This - // typically reduces the error by a huge factor. - x0 := x.Sub(a0.Vector) - x1 := x.Sub(a1.Vector) - x0Dist2 := x0.Norm2() - x1Dist2 := x1.Norm2() - - // If both distances are the same, we need to be careful to choose one - // endpoint deterministically so that the result does not change if the - // order of the endpoints is reversed. - var dist float64 - if x0Dist2 < x1Dist2 || (x0Dist2 == x1Dist2 && x0.Cmp(x1) == -1) { - dist = math.Sqrt(x0Dist2) - proj = x0.Dot(aNorm) - } else { - dist = math.Sqrt(x1Dist2) - proj = x1.Dot(aNorm) - } - - // This calculation bounds the error from all sources: the computation of - // the normal, the subtraction of one endpoint, and the dot product itself. - // dblError appears because the input points are assumed to be - // normalized in double precision. - // - // For reference, the bounds that went into this calculation are: - // ||N'-N|| <= ((1 + 2 * sqrt(3))||N|| + 32 * sqrt(3) * dblError) * epsilon - // |(A.B)'-(A.B)| <= (1.5 * (A.B) + 1.5 * ||A|| * ||B||) * epsilon - // ||(X-Y)'-(X-Y)|| <= ||X-Y|| * epsilon - bound = (((3.5+2*math.Sqrt(3))*aNormLen+32*math.Sqrt(3)*dblError)*dist + 1.5*math.Abs(proj)) * epsilon - return proj, bound -} - -// compareEdges reports whether (a0,a1) is less than (b0,b1) with respect to a total -// ordering on edges that is invariant under edge reversals. -func compareEdges(a0, a1, b0, b1 Point) bool { - if a0.Cmp(a1.Vector) != -1 { - a0, a1 = a1, a0 - } - if b0.Cmp(b1.Vector) != -1 { - b0, b1 = b1, b0 - } - return a0.Cmp(b0.Vector) == -1 || (a0 == b0 && b0.Cmp(b1.Vector) == -1) -} - -// intersectionStable returns the intersection point of the edges (a0,a1) and -// (b0,b1) if it can be computed to within an error of at most intersectionError -// by this function. -// -// The intersection point is not guaranteed to have the correct sign because we -// choose to use the longest of the two edges first. The sign is corrected by -// Intersection. -func intersectionStable(a0, a1, b0, b1 Point) (Point, bool) { - // Sort the two edges so that (a0,a1) is longer, breaking ties in a - // deterministic way that does not depend on the ordering of the endpoints. - // This is desirable for two reasons: - // - So that the result doesn't change when edges are swapped or reversed. - // - It reduces error, since the first edge is used to compute the edge - // normal (where a longer edge means less error), and the second edge - // is used for interpolation (where a shorter edge means less error). - aLen2 := a1.Sub(a0.Vector).Norm2() - bLen2 := b1.Sub(b0.Vector).Norm2() - if aLen2 < bLen2 || (aLen2 == bLen2 && compareEdges(a0, a1, b0, b1)) { - return intersectionStableSorted(b0, b1, a0, a1) - } - return intersectionStableSorted(a0, a1, b0, b1) -} - -// intersectionStableSorted is a helper function for intersectionStable. -// It expects that the edges (a0,a1) and (b0,b1) have been sorted so that -// the first edge passed in is longer. -func intersectionStableSorted(a0, a1, b0, b1 Point) (Point, bool) { - var pt Point - - // Compute the normal of the plane through (a0, a1) in a stable way. - aNorm := a0.Sub(a1.Vector).Cross(a0.Add(a1.Vector)) - aNormLen := aNorm.Norm() - bLen := b1.Sub(b0.Vector).Norm() - - // Compute the projection (i.e., signed distance) of b0 and b1 onto the - // plane through (a0, a1). Distances are scaled by the length of aNorm. - b0Dist, b0Error := projection(b0.Vector, aNorm, aNormLen, a0, a1) - b1Dist, b1Error := projection(b1.Vector, aNorm, aNormLen, a0, a1) - - // The total distance from b0 to b1 measured perpendicularly to (a0,a1) is - // |b0Dist - b1Dist|. Note that b0Dist and b1Dist generally have - // opposite signs because b0 and b1 are on opposite sides of (a0, a1). The - // code below finds the intersection point by interpolating along the edge - // (b0, b1) to a fractional distance of b0Dist / (b0Dist - b1Dist). - // - // It can be shown that the maximum error in the interpolation fraction is - // - // (b0Dist * b1Error - b1Dist * b0Error) / (distSum * (distSum - errorSum)) - // - // We save ourselves some work by scaling the result and the error bound by - // "distSum", since the result is normalized to be unit length anyway. - distSum := math.Abs(b0Dist - b1Dist) - errorSum := b0Error + b1Error - if distSum <= errorSum { - return pt, false // Error is unbounded in this case. - } - - x := b1.Mul(b0Dist).Sub(b0.Mul(b1Dist)) - err := bLen*math.Abs(b0Dist*b1Error-b1Dist*b0Error)/ - (distSum-errorSum) + 2*distSum*epsilon - - // Finally we normalize the result, compute the corresponding error, and - // check whether the total error is acceptable. - xLen := x.Norm() - maxError := intersectionError - if err > (float64(maxError)-epsilon)*xLen { - return pt, false - } - - return Point{x.Mul(1 / xLen)}, true -} - -// intersectionExact returns the intersection point of (a0, a1) and (b0, b1) -// using precise arithmetic. Note that the result is not exact because it is -// rounded down to double precision at the end. Also, the intersection point -// is not guaranteed to have the correct sign (i.e., the return value may need -// to be negated). -func intersectionExact(a0, a1, b0, b1 Point) Point { - // Since we are using presice arithmetic, we don't need to worry about - // numerical stability. - a0P := r3.PreciseVectorFromVector(a0.Vector) - a1P := r3.PreciseVectorFromVector(a1.Vector) - b0P := r3.PreciseVectorFromVector(b0.Vector) - b1P := r3.PreciseVectorFromVector(b1.Vector) - aNormP := a0P.Cross(a1P) - bNormP := b0P.Cross(b1P) - xP := aNormP.Cross(bNormP) - - // The final Normalize() call is done in double precision, which creates a - // directional error of up to 2*dblError. (Precise conversion and Normalize() - // each contribute up to dblError of directional error.) - x := xP.Vector() - - if x == (r3.Vector{}) { - // The two edges are exactly collinear, but we still consider them to be - // "crossing" because of simulation of simplicity. Out of the four - // endpoints, exactly two lie in the interior of the other edge. Of - // those two we return the one that is lexicographically smallest. - x = r3.Vector{10, 10, 10} // Greater than any valid S2Point - - aNorm := Point{aNormP.Vector()} - bNorm := Point{bNormP.Vector()} - if OrderedCCW(b0, a0, b1, bNorm) && a0.Cmp(x) == -1 { - return a0 - } - if OrderedCCW(b0, a1, b1, bNorm) && a1.Cmp(x) == -1 { - return a1 - } - if OrderedCCW(a0, b0, a1, aNorm) && b0.Cmp(x) == -1 { - return b0 - } - if OrderedCCW(a0, b1, a1, aNorm) && b1.Cmp(x) == -1 { - return b1 - } - } - - return Point{x} -} diff --git a/backend/vendor/github.com/golang/geo/s2/edge_distances.go b/backend/vendor/github.com/golang/geo/s2/edge_distances.go deleted file mode 100644 index ca197af1..00000000 --- a/backend/vendor/github.com/golang/geo/s2/edge_distances.go +++ /dev/null @@ -1,408 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// This file defines a collection of methods for computing the distance to an edge, -// interpolating along an edge, projecting points onto edges, etc. - -import ( - "math" - - "github.com/golang/geo/s1" -) - -// DistanceFromSegment returns the distance of point X from line segment AB. -// The points are expected to be normalized. The result is very accurate for small -// distances but may have some numerical error if the distance is large -// (approximately pi/2 or greater). The case A == B is handled correctly. -func DistanceFromSegment(x, a, b Point) s1.Angle { - var minDist s1.ChordAngle - minDist, _ = updateMinDistance(x, a, b, minDist, true) - return minDist.Angle() -} - -// IsDistanceLess reports whether the distance from X to the edge AB is less -// than limit. (For less than or equal to, specify limit.Successor()). -// This method is faster than DistanceFromSegment(). If you want to -// compare against a fixed s1.Angle, you should convert it to an s1.ChordAngle -// once and save the value, since this conversion is relatively expensive. -func IsDistanceLess(x, a, b Point, limit s1.ChordAngle) bool { - _, less := UpdateMinDistance(x, a, b, limit) - return less -} - -// UpdateMinDistance checks if the distance from X to the edge AB is less -// than minDist, and if so, returns the updated value and true. -// The case A == B is handled correctly. -// -// Use this method when you want to compute many distances and keep track of -// the minimum. It is significantly faster than using DistanceFromSegment -// because (1) using s1.ChordAngle is much faster than s1.Angle, and (2) it -// can save a lot of work by not actually computing the distance when it is -// obviously larger than the current minimum. -func UpdateMinDistance(x, a, b Point, minDist s1.ChordAngle) (s1.ChordAngle, bool) { - return updateMinDistance(x, a, b, minDist, false) -} - -// UpdateMaxDistance checks if the distance from X to the edge AB is greater -// than maxDist, and if so, returns the updated value and true. -// Otherwise it returns false. The case A == B is handled correctly. -func UpdateMaxDistance(x, a, b Point, maxDist s1.ChordAngle) (s1.ChordAngle, bool) { - dist := maxChordAngle(ChordAngleBetweenPoints(x, a), ChordAngleBetweenPoints(x, b)) - if dist > s1.RightChordAngle { - dist, _ = updateMinDistance(Point{x.Mul(-1)}, a, b, dist, true) - dist = s1.StraightChordAngle - dist - } - if maxDist < dist { - return dist, true - } - - return maxDist, false -} - -// IsInteriorDistanceLess reports whether the minimum distance from X to the edge -// AB is attained at an interior point of AB (i.e., not an endpoint), and that -// distance is less than limit. (Specify limit.Successor() for less than or equal to). -func IsInteriorDistanceLess(x, a, b Point, limit s1.ChordAngle) bool { - _, less := UpdateMinInteriorDistance(x, a, b, limit) - return less -} - -// UpdateMinInteriorDistance reports whether the minimum distance from X to AB -// is attained at an interior point of AB (i.e., not an endpoint), and that distance -// is less than minDist. If so, the value of minDist is updated and true is returned. -// Otherwise it is unchanged and returns false. -func UpdateMinInteriorDistance(x, a, b Point, minDist s1.ChordAngle) (s1.ChordAngle, bool) { - return interiorDist(x, a, b, minDist, false) -} - -// Project returns the point along the edge AB that is closest to the point X. -// The fractional distance of this point along the edge AB can be obtained -// using DistanceFraction. -// -// This requires that all points are unit length. -func Project(x, a, b Point) Point { - aXb := a.PointCross(b) - // Find the closest point to X along the great circle through AB. - p := x.Sub(aXb.Mul(x.Dot(aXb.Vector) / aXb.Vector.Norm2())) - - // If this point is on the edge AB, then it's the closest point. - if Sign(aXb, a, Point{p}) && Sign(Point{p}, b, aXb) { - return Point{p.Normalize()} - } - - // Otherwise, the closest point is either A or B. - if x.Sub(a.Vector).Norm2() <= x.Sub(b.Vector).Norm2() { - return a - } - return b -} - -// DistanceFraction returns the distance ratio of the point X along an edge AB. -// If X is on the line segment AB, this is the fraction T such -// that X == Interpolate(T, A, B). -// -// This requires that A and B are distinct. -func DistanceFraction(x, a, b Point) float64 { - d0 := x.Angle(a.Vector) - d1 := x.Angle(b.Vector) - return float64(d0 / (d0 + d1)) -} - -// Interpolate returns the point X along the line segment AB whose distance from A -// is the given fraction "t" of the distance AB. Does NOT require that "t" be -// between 0 and 1. Note that all distances are measured on the surface of -// the sphere, so this is more complicated than just computing (1-t)*a + t*b -// and normalizing the result. -func Interpolate(t float64, a, b Point) Point { - if t == 0 { - return a - } - if t == 1 { - return b - } - ab := a.Angle(b.Vector) - return InterpolateAtDistance(s1.Angle(t)*ab, a, b) -} - -// InterpolateAtDistance returns the point X along the line segment AB whose -// distance from A is the angle ax. -func InterpolateAtDistance(ax s1.Angle, a, b Point) Point { - aRad := ax.Radians() - - // Use PointCross to compute the tangent vector at A towards B. The - // result is always perpendicular to A, even if A=B or A=-B, but it is not - // necessarily unit length. (We effectively normalize it below.) - normal := a.PointCross(b) - tangent := normal.Vector.Cross(a.Vector) - - // Now compute the appropriate linear combination of A and "tangent". With - // infinite precision the result would always be unit length, but we - // normalize it anyway to ensure that the error is within acceptable bounds. - // (Otherwise errors can build up when the result of one interpolation is - // fed into another interpolation.) - return Point{(a.Mul(math.Cos(aRad)).Add(tangent.Mul(math.Sin(aRad) / tangent.Norm()))).Normalize()} -} - -// minUpdateDistanceMaxError returns the maximum error in the result of -// UpdateMinDistance (and the associated functions such as -// UpdateMinInteriorDistance, IsDistanceLess, etc), assuming that all -// input points are normalized to within the bounds guaranteed by r3.Vector's -// Normalize. The error can be added or subtracted from an s1.ChordAngle -// using its Expanded method. -func minUpdateDistanceMaxError(dist s1.ChordAngle) float64 { - // There are two cases for the maximum error in UpdateMinDistance(), - // depending on whether the closest point is interior to the edge. - return math.Max(minUpdateInteriorDistanceMaxError(dist), dist.MaxPointError()) -} - -// minUpdateInteriorDistanceMaxError returns the maximum error in the result of -// UpdateMinInteriorDistance, assuming that all input points are normalized -// to within the bounds guaranteed by Point's Normalize. The error can be added -// or subtracted from an s1.ChordAngle using its Expanded method. -// -// Note that accuracy goes down as the distance approaches 0 degrees or 180 -// degrees (for different reasons). Near 0 degrees the error is acceptable -// for all practical purposes (about 1.2e-15 radians ~= 8 nanometers). For -// exactly antipodal points the maximum error is quite high (0.5 meters), -// but this error drops rapidly as the points move away from antipodality -// (approximately 1 millimeter for points that are 50 meters from antipodal, -// and 1 micrometer for points that are 50km from antipodal). -// -// TODO(roberts): Currently the error bound does not hold for edges whose endpoints -// are antipodal to within about 1e-15 radians (less than 1 micron). This could -// be fixed by extending PointCross to use higher precision when necessary. -func minUpdateInteriorDistanceMaxError(dist s1.ChordAngle) float64 { - // If a point is more than 90 degrees from an edge, then the minimum - // distance is always to one of the endpoints, not to the edge interior. - if dist >= s1.RightChordAngle { - return 0.0 - } - - // This bound includes all source of error, assuming that the input points - // are normalized. a and b are components of chord length that are - // perpendicular and parallel to a plane containing the edge respectively. - b := math.Min(1.0, 0.5*float64(dist)) - a := math.Sqrt(b * (2 - b)) - return ((2.5+2*math.Sqrt(3)+8.5*a)*a + - (2+2*math.Sqrt(3)/3+6.5*(1-b))*b + - (23+16/math.Sqrt(3))*dblEpsilon) * dblEpsilon -} - -// updateMinDistance computes the distance from a point X to a line segment AB, -// and if either the distance was less than the given minDist, or alwaysUpdate is -// true, the value and whether it was updated are returned. -func updateMinDistance(x, a, b Point, minDist s1.ChordAngle, alwaysUpdate bool) (s1.ChordAngle, bool) { - if d, ok := interiorDist(x, a, b, minDist, alwaysUpdate); ok { - // Minimum distance is attained along the edge interior. - return d, true - } - - // Otherwise the minimum distance is to one of the endpoints. - xa2, xb2 := (x.Sub(a.Vector)).Norm2(), x.Sub(b.Vector).Norm2() - dist := s1.ChordAngle(math.Min(xa2, xb2)) - if !alwaysUpdate && dist >= minDist { - return minDist, false - } - return dist, true -} - -// interiorDist returns the shortest distance from point x to edge ab, assuming -// that the closest point to X is interior to AB. If the closest point is not -// interior to AB, interiorDist returns (minDist, false). If alwaysUpdate is set to -// false, the distance is only updated when the value exceeds certain the given minDist. -func interiorDist(x, a, b Point, minDist s1.ChordAngle, alwaysUpdate bool) (s1.ChordAngle, bool) { - // Chord distance of x to both end points a and b. - xa2, xb2 := (x.Sub(a.Vector)).Norm2(), x.Sub(b.Vector).Norm2() - - // The closest point on AB could either be one of the two vertices (the - // vertex case) or in the interior (the interior case). Let C = A x B. - // If X is in the spherical wedge extending from A to B around the axis - // through C, then we are in the interior case. Otherwise we are in the - // vertex case. - // - // Check whether we might be in the interior case. For this to be true, XAB - // and XBA must both be acute angles. Checking this condition exactly is - // expensive, so instead we consider the planar triangle ABX (which passes - // through the sphere's interior). The planar angles XAB and XBA are always - // less than the corresponding spherical angles, so if we are in the - // interior case then both of these angles must be acute. - // - // We check this by computing the squared edge lengths of the planar - // triangle ABX, and testing whether angles XAB and XBA are both acute using - // the law of cosines: - // - // | XA^2 - XB^2 | < AB^2 (*) - // - // This test must be done conservatively (taking numerical errors into - // account) since otherwise we might miss a situation where the true minimum - // distance is achieved by a point on the edge interior. - // - // There are two sources of error in the expression above (*). The first is - // that points are not normalized exactly; they are only guaranteed to be - // within 2 * dblEpsilon of unit length. Under the assumption that the two - // sides of (*) are nearly equal, the total error due to normalization errors - // can be shown to be at most - // - // 2 * dblEpsilon * (XA^2 + XB^2 + AB^2) + 8 * dblEpsilon ^ 2 . - // - // The other source of error is rounding of results in the calculation of (*). - // Each of XA^2, XB^2, AB^2 has a maximum relative error of 2.5 * dblEpsilon, - // plus an additional relative error of 0.5 * dblEpsilon in the final - // subtraction which we further bound as 0.25 * dblEpsilon * (XA^2 + XB^2 + - // AB^2) for convenience. This yields a final error bound of - // - // 4.75 * dblEpsilon * (XA^2 + XB^2 + AB^2) + 8 * dblEpsilon ^ 2 . - ab2 := a.Sub(b.Vector).Norm2() - maxError := (4.75*dblEpsilon*(xa2+xb2+ab2) + 8*dblEpsilon*dblEpsilon) - if math.Abs(xa2-xb2) >= ab2+maxError { - return minDist, false - } - - // The minimum distance might be to a point on the edge interior. Let R - // be closest point to X that lies on the great circle through AB. Rather - // than computing the geodesic distance along the surface of the sphere, - // instead we compute the "chord length" through the sphere's interior. - // - // The squared chord length XR^2 can be expressed as XQ^2 + QR^2, where Q - // is the point X projected onto the plane through the great circle AB. - // The distance XQ^2 can be written as (X.C)^2 / |C|^2 where C = A x B. - // We ignore the QR^2 term and instead use XQ^2 as a lower bound, since it - // is faster and the corresponding distance on the Earth's surface is - // accurate to within 1% for distances up to about 1800km. - c := a.PointCross(b) - c2 := c.Norm2() - xDotC := x.Dot(c.Vector) - xDotC2 := xDotC * xDotC - if !alwaysUpdate && xDotC2 > c2*float64(minDist) { - // The closest point on the great circle AB is too far away. We need to - // test this using ">" rather than ">=" because the actual minimum bound - // on the distance is (xDotC2 / c2), which can be rounded differently - // than the (more efficient) multiplicative test above. - return minDist, false - } - - // Otherwise we do the exact, more expensive test for the interior case. - // This test is very likely to succeed because of the conservative planar - // test we did initially. - // - // TODO(roberts): Ensure that the errors in test are accurately reflected in the - // minUpdateInteriorDistanceMaxError. - cx := c.Cross(x.Vector) - if a.Sub(x.Vector).Dot(cx) >= 0 || b.Sub(x.Vector).Dot(cx) <= 0 { - return minDist, false - } - - // Compute the squared chord length XR^2 = XQ^2 + QR^2 (see above). - // This calculation has good accuracy for all chord lengths since it - // is based on both the dot product and cross product (rather than - // deriving one from the other). However, note that the chord length - // representation itself loses accuracy as the angle approaches π. - qr := 1 - math.Sqrt(cx.Norm2()/c2) - dist := s1.ChordAngle((xDotC2 / c2) + (qr * qr)) - - if !alwaysUpdate && dist >= minDist { - return minDist, false - } - - return dist, true -} - -// updateEdgePairMinDistance computes the minimum distance between the given -// pair of edges. If the two edges cross, the distance is zero. The cases -// a0 == a1 and b0 == b1 are handled correctly. -func updateEdgePairMinDistance(a0, a1, b0, b1 Point, minDist s1.ChordAngle) (s1.ChordAngle, bool) { - if minDist == 0 { - return 0, false - } - if CrossingSign(a0, a1, b0, b1) == Cross { - minDist = 0 - return 0, true - } - - // Otherwise, the minimum distance is achieved at an endpoint of at least - // one of the two edges. We ensure that all four possibilities are always checked. - // - // The calculation below computes each of the six vertex-vertex distances - // twice (this could be optimized). - var ok1, ok2, ok3, ok4 bool - minDist, ok1 = UpdateMinDistance(a0, b0, b1, minDist) - minDist, ok2 = UpdateMinDistance(a1, b0, b1, minDist) - minDist, ok3 = UpdateMinDistance(b0, a0, a1, minDist) - minDist, ok4 = UpdateMinDistance(b1, a0, a1, minDist) - return minDist, ok1 || ok2 || ok3 || ok4 -} - -// updateEdgePairMaxDistance reports the minimum distance between the given pair of edges. -// If one edge crosses the antipodal reflection of the other, the distance is pi. -func updateEdgePairMaxDistance(a0, a1, b0, b1 Point, maxDist s1.ChordAngle) (s1.ChordAngle, bool) { - if maxDist == s1.StraightChordAngle { - return s1.StraightChordAngle, false - } - if CrossingSign(a0, a1, Point{b0.Mul(-1)}, Point{b1.Mul(-1)}) == Cross { - return s1.StraightChordAngle, true - } - - // Otherwise, the maximum distance is achieved at an endpoint of at least - // one of the two edges. We ensure that all four possibilities are always checked. - // - // The calculation below computes each of the six vertex-vertex distances - // twice (this could be optimized). - var ok1, ok2, ok3, ok4 bool - maxDist, ok1 = UpdateMaxDistance(a0, b0, b1, maxDist) - maxDist, ok2 = UpdateMaxDistance(a1, b0, b1, maxDist) - maxDist, ok3 = UpdateMaxDistance(b0, a0, a1, maxDist) - maxDist, ok4 = UpdateMaxDistance(b1, a0, a1, maxDist) - return maxDist, ok1 || ok2 || ok3 || ok4 -} - -// EdgePairClosestPoints returns the pair of points (a, b) that achieves the -// minimum distance between edges a0a1 and b0b1, where a is a point on a0a1 and -// b is a point on b0b1. If the two edges intersect, a and b are both equal to -// the intersection point. Handles a0 == a1 and b0 == b1 correctly. -func EdgePairClosestPoints(a0, a1, b0, b1 Point) (Point, Point) { - if CrossingSign(a0, a1, b0, b1) == Cross { - x := Intersection(a0, a1, b0, b1) - return x, x - } - // We save some work by first determining which vertex/edge pair achieves - // the minimum distance, and then computing the closest point on that edge. - var minDist s1.ChordAngle - var ok bool - - minDist, ok = updateMinDistance(a0, b0, b1, minDist, true) - closestVertex := 0 - if minDist, ok = UpdateMinDistance(a1, b0, b1, minDist); ok { - closestVertex = 1 - } - if minDist, ok = UpdateMinDistance(b0, a0, a1, minDist); ok { - closestVertex = 2 - } - if minDist, ok = UpdateMinDistance(b1, a0, a1, minDist); ok { - closestVertex = 3 - } - switch closestVertex { - case 0: - return a0, Project(a0, b0, b1) - case 1: - return a1, Project(a1, b0, b1) - case 2: - return Project(b0, a0, a1), b0 - case 3: - return Project(b1, a0, a1), b1 - default: - panic("illegal case reached") - } -} diff --git a/backend/vendor/github.com/golang/geo/s2/edge_query.go b/backend/vendor/github.com/golang/geo/s2/edge_query.go deleted file mode 100644 index 91f4fb64..00000000 --- a/backend/vendor/github.com/golang/geo/s2/edge_query.go +++ /dev/null @@ -1,801 +0,0 @@ -// Copyright 2019 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "sort" - - "github.com/golang/geo/s1" -) - -// EdgeQueryOptions holds the options for controlling how EdgeQuery operates. -// -// Options can be chained together builder-style: -// -// opts = NewClosestEdgeQueryOptions(). -// MaxResults(1). -// DistanceLimit(s1.ChordAngleFromAngle(3 * s1.Degree)). -// MaxError(s1.ChordAngleFromAngle(0.001 * s1.Degree)) -// query = NewClosestEdgeQuery(index, opts) -// -// or set individually: -// -// opts = NewClosestEdgeQueryOptions() -// opts.IncludeInteriors(true) -// -// or just inline: -// -// query = NewClosestEdgeQuery(index, NewClosestEdgeQueryOptions().MaxResults(3)) -// -// If you pass a nil as the options you get the default values for the options. -type EdgeQueryOptions struct { - common *queryOptions -} - -// DistanceLimit specifies that only edges whose distance to the target is -// within, this distance should be returned. Edges whose distance is equal -// are not returned. To include values that are equal, specify the limit with -// the next largest representable distance. i.e. limit.Successor(). -func (e *EdgeQueryOptions) DistanceLimit(limit s1.ChordAngle) *EdgeQueryOptions { - e.common = e.common.DistanceLimit(limit) - return e -} - -// IncludeInteriors specifies whether polygon interiors should be -// included when measuring distances. -func (e *EdgeQueryOptions) IncludeInteriors(x bool) *EdgeQueryOptions { - e.common = e.common.IncludeInteriors(x) - return e -} - -// UseBruteForce sets or disables the use of brute force in a query. -func (e *EdgeQueryOptions) UseBruteForce(x bool) *EdgeQueryOptions { - e.common = e.common.UseBruteForce(x) - return e -} - -// MaxError specifies that edges up to dist away than the true -// matching edges may be substituted in the result set, as long as such -// edges satisfy all the remaining search criteria (such as DistanceLimit). -// This option only has an effect if MaxResults is also specified; -// otherwise all edges closer than MaxDistance will always be returned. -func (e *EdgeQueryOptions) MaxError(dist s1.ChordAngle) *EdgeQueryOptions { - e.common = e.common.MaxError(dist) - return e -} - -// MaxResults specifies that at most MaxResults edges should be returned. -// This must be at least 1. -func (e *EdgeQueryOptions) MaxResults(n int) *EdgeQueryOptions { - e.common = e.common.MaxResults(n) - return e -} - -// NewClosestEdgeQueryOptions returns a set of edge query options suitable -// for performing closest edge queries. -func NewClosestEdgeQueryOptions() *EdgeQueryOptions { - return &EdgeQueryOptions{ - common: newQueryOptions(minDistance(0)), - } -} - -// NewFurthestEdgeQueryOptions returns a set of edge query options suitable -// for performing furthest edge queries. -func NewFurthestEdgeQueryOptions() *EdgeQueryOptions { - return &EdgeQueryOptions{ - common: newQueryOptions(maxDistance(0)), - } -} - -// EdgeQueryResult represents an edge that meets the target criteria for the -// query. Note the following special cases: -// -// - ShapeID >= 0 && EdgeID < 0 represents the interior of a shape. -// Such results may be returned when the option IncludeInteriors is true. -// -// - ShapeID < 0 && EdgeID < 0 is returned to indicate that no edge -// satisfies the requested query options. -type EdgeQueryResult struct { - distance distance - shapeID int32 - edgeID int32 -} - -// Distance reports the distance between the edge in this shape that satisfied -// the query's parameters. -func (e EdgeQueryResult) Distance() s1.ChordAngle { return e.distance.chordAngle() } - -// ShapeID reports the ID of the Shape this result is for. -func (e EdgeQueryResult) ShapeID() int32 { return e.shapeID } - -// EdgeID reports the ID of the edge in the results Shape. -func (e EdgeQueryResult) EdgeID() int32 { return e.edgeID } - -// newEdgeQueryResult returns a result instance with default values. -func newEdgeQueryResult(target distanceTarget) EdgeQueryResult { - return EdgeQueryResult{ - distance: target.distance().infinity(), - shapeID: -1, - edgeID: -1, - } -} - -// IsInterior reports if this result represents the interior of a Shape. -func (e EdgeQueryResult) IsInterior() bool { - return e.shapeID >= 0 && e.edgeID < 0 -} - -// IsEmpty reports if this has no edge that satisfies the given edge query options. -// This result is only returned in one special case, namely when FindEdge() does -// not find any suitable edges. -func (e EdgeQueryResult) IsEmpty() bool { - return e.shapeID < 0 -} - -// Less reports if this results is less that the other first by distance, -// then by (shapeID, edgeID). This is used for sorting. -func (e EdgeQueryResult) Less(other EdgeQueryResult) bool { - if e.distance.chordAngle() != other.distance.chordAngle() { - return e.distance.less(other.distance) - } - if e.shapeID != other.shapeID { - return e.shapeID < other.shapeID - } - return e.edgeID < other.edgeID -} - -// EdgeQuery is used to find the edge(s) between two geometries that match a -// given set of options. It is flexible enough so that it can be adapted to -// compute maximum distances and even potentially Hausdorff distances. -// -// By using the appropriate options, this type can answer questions such as: -// -// - Find the minimum distance between two geometries A and B. -// - Find all edges of geometry A that are within a distance D of geometry B. -// - Find the k edges of geometry A that are closest to a given point P. -// -// You can also specify whether polygons should include their interiors (i.e., -// if a point is contained by a polygon, should the distance be zero or should -// it be measured to the polygon boundary?) -// -// The input geometries may consist of any number of points, polylines, and -// polygons (collectively referred to as "shapes"). Shapes do not need to be -// disjoint; they may overlap or intersect arbitrarily. The implementation is -// designed to be fast for both simple and complex geometries. -type EdgeQuery struct { - index *ShapeIndex - opts *queryOptions - target distanceTarget - - // True if opts.maxError must be subtracted from ShapeIndex cell distances - // in order to ensure that such distances are measured conservatively. This - // is true only if the target takes advantage of maxError in order to - // return faster results, and 0 < maxError < distanceLimit. - useConservativeCellDistance bool - - // The decision about whether to use the brute force algorithm is based on - // counting the total number of edges in the index. However if the index - // contains a large number of shapes, this in itself might take too long. - // So instead we only count edges up to (maxBruteForceIndexSize() + 1) - // for the current target type (stored as indexNumEdgesLimit). - indexNumEdges int - indexNumEdgesLimit int - - // The distance beyond which we can safely ignore further candidate edges. - // (Candidates that are exactly at the limit are ignored; this is more - // efficient for UpdateMinDistance and should not affect clients since - // distance measurements have a small amount of error anyway.) - // - // Initially this is the same as the maximum distance specified by the user, - // but it can also be updated by the algorithm (see maybeAddResult). - distanceLimit distance - - // The current set of results of the query. - results []EdgeQueryResult - - // This field is true when duplicates must be avoided explicitly. This - // is achieved by maintaining a separate set keyed by (shapeID, edgeID) - // only, and checking whether each edge is in that set before computing the - // distance to it. - avoidDuplicates bool - - // testedEdges tracks the set of shape and edges that have already been tested. - testedEdges map[ShapeEdgeID]uint32 - - // For the optimized algorihm we precompute the top-level CellIDs that - // will be added to the priority queue. There can be at most 6 of these - // cells. Essentially this is just a covering of the indexed edges, except - // that we also store pointers to the corresponding ShapeIndexCells to - // reduce the number of index seeks required. - indexCovering []CellID - indexCells []*ShapeIndexCell - - // The algorithm maintains a priority queue of unprocessed CellIDs, sorted - // in increasing order of distance from the target. - queue *queryQueue - - iter *ShapeIndexIterator - maxDistanceCovering []CellID - initialCells []CellID -} - -// NewClosestEdgeQuery returns an EdgeQuery that is used for finding the -// closest edge(s) to a given Point, Edge, Cell, or geometry collection. -// -// You can find either the k closest edges, or all edges within a given -// radius, or both (i.e., the k closest edges up to a given maximum radius). -// E.g. to find all the edges within 5 kilometers, set the DistanceLimit in -// the options. -// -// By default *all* edges are returned, so you should always specify either -// MaxResults or DistanceLimit options or both. -// -// Note that by default, distances are measured to the boundary and interior -// of polygons. For example, if a point is inside a polygon then its distance -// is zero. To change this behavior, set the IncludeInteriors option to false. -// -// If you only need to test whether the distance is above or below a given -// threshold (e.g., 10 km), you can use the IsDistanceLess() method. This is -// much faster than actually calculating the distance with FindEdge, -// since the implementation can stop as soon as it can prove that the minimum -// distance is either above or below the threshold. -func NewClosestEdgeQuery(index *ShapeIndex, opts *EdgeQueryOptions) *EdgeQuery { - if opts == nil { - opts = NewClosestEdgeQueryOptions() - } - e := &EdgeQuery{ - testedEdges: make(map[ShapeEdgeID]uint32), - index: index, - opts: opts.common, - queue: newQueryQueue(), - } - - return e -} - -// NewFurthestEdgeQuery returns an EdgeQuery that is used for finding the -// furthest edge(s) to a given Point, Edge, Cell, or geometry collection. -// -// The furthest edge is defined as the one which maximizes the -// distance from any point on that edge to any point on the target geometry. -// -// Similar to the example in NewClosestEdgeQuery, to find the 5 furthest edges -// from a given Point: -func NewFurthestEdgeQuery(index *ShapeIndex, opts *EdgeQueryOptions) *EdgeQuery { - if opts == nil { - opts = NewFurthestEdgeQueryOptions() - } - e := &EdgeQuery{ - testedEdges: make(map[ShapeEdgeID]uint32), - index: index, - opts: opts.common, - queue: newQueryQueue(), - } - - return e -} - -// Reset resets the state of this EdgeQuery. -func (e *EdgeQuery) Reset() { - e.indexNumEdges = 0 - e.indexNumEdgesLimit = 0 - e.indexCovering = nil - e.indexCells = nil -} - -// FindEdges returns the edges for the given target that satisfy the current options. -// -// Note that if opts.IncludeInteriors is true, the results may include some -// entries with edge_id == -1. This indicates that the target intersects -// the indexed polygon with the given ShapeID. -func (e *EdgeQuery) FindEdges(target distanceTarget) []EdgeQueryResult { - return e.findEdges(target, e.opts) -} - -// Distance reports the distance to the target. If the index or target is empty, -// returns the EdgeQuery's maximal sentinel. -// -// Use IsDistanceLess()/IsDistanceGreater() if you only want to compare the -// distance against a threshold value, since it is often much faster. -func (e *EdgeQuery) Distance(target distanceTarget) s1.ChordAngle { - return e.findEdge(target, e.opts).Distance() -} - -// IsDistanceLess reports if the distance to target is less than the given limit. -// -// This method is usually much faster than Distance(), since it is much -// less work to determine whether the minimum distance is above or below a -// threshold than it is to calculate the actual minimum distance. -// -// If you wish to check if the distance is less than or equal to the limit, use: -// -// query.IsDistanceLess(target, limit.Successor()) -func (e *EdgeQuery) IsDistanceLess(target distanceTarget, limit s1.ChordAngle) bool { - opts := e.opts - opts = opts.MaxResults(1). - DistanceLimit(limit). - MaxError(s1.StraightChordAngle) - return !e.findEdge(target, opts).IsEmpty() -} - -// IsDistanceGreater reports if the distance to target is greater than limit. -// -// This method is usually much faster than Distance, since it is much -// less work to determine whether the maximum distance is above or below a -// threshold than it is to calculate the actual maximum distance. -// If you wish to check if the distance is less than or equal to the limit, use: -// -// query.IsDistanceGreater(target, limit.Predecessor()) -func (e *EdgeQuery) IsDistanceGreater(target distanceTarget, limit s1.ChordAngle) bool { - return e.IsDistanceLess(target, limit) -} - -// IsConservativeDistanceLessOrEqual reports if the distance to target is less -// or equal to the limit, where the limit has been expanded by the maximum error -// for the distance calculation. -// -// For example, suppose that we want to test whether two geometries might -// intersect each other after they are snapped together using Builder -// (using the IdentitySnapFunction with a given "snap radius"). Since -// Builder uses exact distance predicates (s2predicates), we need to -// measure the distance between the two geometries conservatively. If the -// distance is definitely greater than "snap radius", then the geometries -// are guaranteed to not intersect after snapping. -func (e *EdgeQuery) IsConservativeDistanceLessOrEqual(target distanceTarget, limit s1.ChordAngle) bool { - return e.IsDistanceLess(target, limit.Expanded(minUpdateDistanceMaxError(limit))) -} - -// IsConservativeDistanceGreaterOrEqual reports if the distance to the target is greater -// than or equal to the given limit with some small tolerance. -func (e *EdgeQuery) IsConservativeDistanceGreaterOrEqual(target distanceTarget, limit s1.ChordAngle) bool { - return e.IsDistanceGreater(target, limit.Expanded(-minUpdateDistanceMaxError(limit))) -} - -// findEdges returns the closest edges to the given target that satisfy the given options. -// -// Note that if opts.includeInteriors is true, the results may include some -// entries with edgeID == -1. This indicates that the target intersects the -// indexed polygon with the given shapeID. -func (e *EdgeQuery) findEdges(target distanceTarget, opts *queryOptions) []EdgeQueryResult { - e.findEdgesInternal(target, opts) - // TODO(roberts): Revisit this if there is a heap or other sorted and - // uniquing datastructure we can use instead of just a slice. - e.results = sortAndUniqueResults(e.results) - if len(e.results) > e.opts.maxResults { - e.results = e.results[:e.opts.maxResults] - } - return e.results -} - -func sortAndUniqueResults(results []EdgeQueryResult) []EdgeQueryResult { - if len(results) <= 1 { - return results - } - sort.Slice(results, func(i, j int) bool { return results[i].Less(results[j]) }) - j := 0 - for i := 1; i < len(results); i++ { - if results[j] == results[i] { - continue - } - j++ - results[j] = results[i] - } - return results[:j+1] -} - -// findEdge is a convenience method that returns exactly one edge, and if no -// edges satisfy the given search criteria, then a default Result is returned. -// -// This is primarily to ease the usage of a number of the methods in the DistanceTargets -// and in EdgeQuery. -func (e *EdgeQuery) findEdge(target distanceTarget, opts *queryOptions) EdgeQueryResult { - opts.MaxResults(1) - e.findEdges(target, opts) - if len(e.results) > 0 { - return e.results[0] - } - - return newEdgeQueryResult(target) -} - -// findEdgesInternal does the actual work for find edges that match the given options. -func (e *EdgeQuery) findEdgesInternal(target distanceTarget, opts *queryOptions) { - e.target = target - e.opts = opts - - e.testedEdges = make(map[ShapeEdgeID]uint32) - e.distanceLimit = target.distance().fromChordAngle(opts.distanceLimit) - e.results = make([]EdgeQueryResult, 0) - - if e.distanceLimit == target.distance().zero() { - return - } - - if opts.includeInteriors { - shapeIDs := map[int32]struct{}{} - e.target.visitContainingShapes(e.index, func(containingShape Shape, targetPoint Point) bool { - shapeIDs[e.index.idForShape(containingShape)] = struct{}{} - return len(shapeIDs) < opts.maxResults - }) - for shapeID := range shapeIDs { - e.addResult(EdgeQueryResult{target.distance().zero(), shapeID, -1}) - } - - if e.distanceLimit == target.distance().zero() { - return - } - } - - // If maxError > 0 and the target takes advantage of this, then we may - // need to adjust the distance estimates to ShapeIndex cells to ensure - // that they are always a lower bound on the true distance. For example, - // suppose max_distance == 100, maxError == 30, and we compute the distance - // to the target from some cell C0 as d(C0) == 80. Then because the target - // takes advantage of maxError, the true distance could be as low as 50. - // In order not to miss edges contained by such cells, we need to subtract - // maxError from the distance estimates. This behavior is controlled by - // the useConservativeCellDistance flag. - // - // However there is one important case where this adjustment is not - // necessary, namely when distanceLimit < maxError, This is because - // maxError only affects the algorithm once at least maxEdges edges - // have been found that satisfy the given distance limit. At that point, - // maxError is subtracted from distanceLimit in order to ensure that - // any further matches are closer by at least that amount. But when - // distanceLimit < maxError, this reduces the distance limit to 0, - // i.e. all remaining candidate cells and edges can safely be discarded. - // (This is how IsDistanceLess() and friends are implemented.) - targetUsesMaxError := opts.maxError != target.distance().zero().chordAngle() && - e.target.setMaxError(opts.maxError) - - // Note that we can't compare maxError and distanceLimit directly - // because one is a Delta and one is a Distance. Instead we subtract them. - e.useConservativeCellDistance = targetUsesMaxError && - (e.distanceLimit == target.distance().infinity() || - target.distance().zero().less(e.distanceLimit.sub(target.distance().fromChordAngle(opts.maxError)))) - - // Use the brute force algorithm if the index is small enough. To avoid - // spending too much time counting edges when there are many shapes, we stop - // counting once there are too many edges. We may need to recount the edges - // if we later see a target with a larger brute force edge threshold. - minOptimizedEdges := e.target.maxBruteForceIndexSize() + 1 - if minOptimizedEdges > e.indexNumEdgesLimit && e.indexNumEdges >= e.indexNumEdgesLimit { - e.indexNumEdges = e.index.NumEdgesUpTo(minOptimizedEdges) - e.indexNumEdgesLimit = minOptimizedEdges - } - - if opts.useBruteForce || e.indexNumEdges < minOptimizedEdges { - // The brute force algorithm already considers each edge exactly once. - e.avoidDuplicates = false - e.findEdgesBruteForce() - } else { - // If the target takes advantage of maxError then we need to avoid - // duplicate edges explicitly. (Otherwise it happens automatically.) - e.avoidDuplicates = targetUsesMaxError && opts.maxResults > 1 - e.findEdgesOptimized() - } -} - -func (e *EdgeQuery) addResult(r EdgeQueryResult) { - e.results = append(e.results, r) - if e.opts.maxResults == 1 { - // Optimization for the common case where only the closest edge is wanted. - e.distanceLimit = r.distance.sub(e.target.distance().fromChordAngle(e.opts.maxError)) - } - // TODO(roberts): Add the other if/else cases when a different data structure - // is used for the results. -} - -func (e *EdgeQuery) maybeAddResult(shape Shape, edgeID int32) { - if _, ok := e.testedEdges[ShapeEdgeID{e.index.idForShape(shape), edgeID}]; e.avoidDuplicates && !ok { - return - } - edge := shape.Edge(int(edgeID)) - dist := e.distanceLimit - - if dist, ok := e.target.updateDistanceToEdge(edge, dist); ok { - e.addResult(EdgeQueryResult{dist, e.index.idForShape(shape), edgeID}) - } -} - -func (e *EdgeQuery) findEdgesBruteForce() { - // Range over all shapes in the index. Does order matter here? if so - // switch to for i = 0 .. n? - for _, shape := range e.index.shapes { - // TODO(roberts): can this happen if we are only ranging over current entries? - if shape == nil { - continue - } - for edgeID := int32(0); edgeID < int32(shape.NumEdges()); edgeID++ { - e.maybeAddResult(shape, edgeID) - } - } -} - -func (e *EdgeQuery) findEdgesOptimized() { - e.initQueue() - // Repeatedly find the closest Cell to "target" and either split it into - // its four children or process all of its edges. - for e.queue.size() > 0 { - // We need to copy the top entry before removing it, and we need to - // remove it before adding any new entries to the queue. - entry := e.queue.pop() - - if !entry.distance.less(e.distanceLimit) { - e.queue.reset() // Clear any remaining entries. - break - } - // If this is already known to be an index cell, just process it. - if entry.indexCell != nil { - e.processEdges(entry) - continue - } - // Otherwise split the cell into its four children. Before adding a - // child back to the queue, we first check whether it is empty. We do - // this in two seek operations rather than four by seeking to the key - // between children 0 and 1 and to the key between children 2 and 3. - id := entry.id - ch := id.Children() - e.iter.seek(ch[1].RangeMin()) - - if !e.iter.Done() && e.iter.CellID() <= ch[1].RangeMax() { - e.processOrEnqueueCell(ch[1]) - } - if e.iter.Prev() && e.iter.CellID() >= id.RangeMin() { - e.processOrEnqueueCell(ch[0]) - } - - e.iter.seek(ch[3].RangeMin()) - if !e.iter.Done() && e.iter.CellID() <= id.RangeMax() { - e.processOrEnqueueCell(ch[3]) - } - if e.iter.Prev() && e.iter.CellID() >= ch[2].RangeMin() { - e.processOrEnqueueCell(ch[2]) - } - } -} - -func (e *EdgeQuery) processOrEnqueueCell(id CellID) { - if e.iter.CellID() == id { - e.processOrEnqueue(id, e.iter.IndexCell()) - } else { - e.processOrEnqueue(id, nil) - } -} - -func (e *EdgeQuery) initQueue() { - if len(e.indexCovering) == 0 { - // We delay iterator initialization until now to make queries on very - // small indexes a bit faster (i.e., where brute force is used). - e.iter = NewShapeIndexIterator(e.index) - } - - // Optimization: if the user is searching for just the closest edge, and the - // center of the target's bounding cap happens to intersect an index cell, - // then we try to limit the search region to a small disc by first - // processing the edges in that cell. This sets distance_limit_ based on - // the closest edge in that cell, which we can then use to limit the search - // area. This means that the cell containing "target" will be processed - // twice, but in general this is still faster. - // - // TODO(roberts): Even if the cap center is not contained, we could still - // process one or both of the adjacent index cells in CellID order, - // provided that those cells are closer than distanceLimit. - cb := e.target.capBound() - if cb.IsEmpty() { - return // Empty target. - } - - if e.opts.maxResults == 1 && e.iter.LocatePoint(cb.Center()) { - e.processEdges(&queryQueueEntry{ - distance: e.target.distance().zero(), - id: e.iter.CellID(), - indexCell: e.iter.IndexCell(), - }) - // Skip the rest of the algorithm if we found an intersecting edge. - if e.distanceLimit == e.target.distance().zero() { - return - } - } - if len(e.indexCovering) == 0 { - e.initCovering() - } - if e.distanceLimit == e.target.distance().infinity() { - // Start with the precomputed index covering. - for i := range e.indexCovering { - e.processOrEnqueue(e.indexCovering[i], e.indexCells[i]) - } - } else { - // Compute a covering of the search disc and intersect it with the - // precomputed index covering. - coverer := &RegionCoverer{MaxCells: 4, LevelMod: 1, MaxLevel: maxLevel} - - radius := cb.Radius() + e.distanceLimit.chordAngleBound().Angle() - searchCB := CapFromCenterAngle(cb.Center(), radius) - maxDistCover := coverer.FastCovering(searchCB) - e.initialCells = CellUnionFromIntersection(e.indexCovering, maxDistCover) - - // Now we need to clean up the initial cells to ensure that they all - // contain at least one cell of the ShapeIndex. (Some may not intersect - // the index at all, while other may be descendants of an index cell.) - i, j := 0, 0 - for i < len(e.initialCells) { - idI := e.initialCells[i] - // Find the top-level cell that contains this initial cell. - for e.indexCovering[j].RangeMax() < idI { - j++ - } - - idJ := e.indexCovering[j] - if idI == idJ { - // This initial cell is one of the top-level cells. Use the - // precomputed ShapeIndexCell pointer to avoid an index seek. - e.processOrEnqueue(idJ, e.indexCells[j]) - i++ - j++ - } else { - // This initial cell is a proper descendant of a top-level cell. - // Check how it is related to the cells of the ShapeIndex. - r := e.iter.LocateCellID(idI) - if r == Indexed { - // This cell is a descendant of an index cell. - // Enqueue it and skip any other initial cells - // that are also descendants of this cell. - e.processOrEnqueue(e.iter.CellID(), e.iter.IndexCell()) - lastID := e.iter.CellID().RangeMax() - for i < len(e.initialCells) && e.initialCells[i] <= lastID { - i++ - } - } else { - // Enqueue the cell only if it contains at least one index cell. - if r == Subdivided { - e.processOrEnqueue(idI, nil) - } - i++ - } - } - } - } -} - -func (e *EdgeQuery) initCovering() { - // Find the range of Cells spanned by the index and choose a level such - // that the entire index can be covered with just a few cells. These are - // the "top-level" cells. There are two cases: - // - // - If the index spans more than one face, then there is one top-level cell - // per spanned face, just big enough to cover the index cells on that face. - // - // - If the index spans only one face, then we find the smallest cell "C" - // that covers the index cells on that face (just like the case above). - // Then for each of the 4 children of "C", if the child contains any index - // cells then we create a top-level cell that is big enough to just fit - // those index cells (i.e., shrinking the child as much as possible to fit - // its contents). This essentially replicates what would happen if we - // started with "C" as the top-level cell, since "C" would immediately be - // split, except that we take the time to prune the children further since - // this will save work on every subsequent query. - e.indexCovering = make([]CellID, 0, 6) - - // TODO(roberts): Use a single iterator below and save position - // information using pair {CellID, ShapeIndexCell}. - next := NewShapeIndexIterator(e.index, IteratorBegin) - last := NewShapeIndexIterator(e.index, IteratorEnd) - last.Prev() - if next.CellID() != last.CellID() { - // The index has at least two cells. Choose a level such that the entire - // index can be spanned with at most 6 cells (if the index spans multiple - // faces) or 4 cells (it the index spans a single face). - level, ok := next.CellID().CommonAncestorLevel(last.CellID()) - if !ok { - level = 0 - } else { - level++ - } - - // Visit each potential top-level cell except the last (handled below). - lastID := last.CellID().Parent(level) - for id := next.CellID().Parent(level); id != lastID; id = id.Next() { - // Skip any top-level cells that don't contain any index cells. - if id.RangeMax() < next.CellID() { - continue - } - - // Find the range of index cells contained by this top-level cell and - // then shrink the cell if necessary so that it just covers them. - cellFirst := next.clone() - next.seek(id.RangeMax().Next()) - cellLast := next.clone() - cellLast.Prev() - e.addInitialRange(cellFirst, cellLast) - break - } - - } - e.addInitialRange(next, last) -} - -// addInitialRange adds an entry to the indexCovering and indexCells that covers the given -// inclusive range of cells. -// -// This requires that first and last cells have a common ancestor. -func (e *EdgeQuery) addInitialRange(first, last *ShapeIndexIterator) { - if first.CellID() == last.CellID() { - // The range consists of a single index cell. - e.indexCovering = append(e.indexCovering, first.CellID()) - e.indexCells = append(e.indexCells, first.IndexCell()) - } else { - // Add the lowest common ancestor of the given range. - level, _ := first.CellID().CommonAncestorLevel(last.CellID()) - e.indexCovering = append(e.indexCovering, first.CellID().Parent(level)) - e.indexCells = append(e.indexCells, nil) - } -} - -// processEdges processes all the edges of the given index cell. -func (e *EdgeQuery) processEdges(entry *queryQueueEntry) { - for _, clipped := range entry.indexCell.shapes { - shape := e.index.Shape(clipped.shapeID) - for j := 0; j < clipped.numEdges(); j++ { - e.maybeAddResult(shape, int32(clipped.edges[j])) - } - } -} - -// processOrEnqueue the given cell id and indexCell. -func (e *EdgeQuery) processOrEnqueue(id CellID, indexCell *ShapeIndexCell) { - if indexCell != nil { - // If this index cell has only a few edges, then it is faster to check - // them directly rather than computing the minimum distance to the Cell - // and inserting it into the queue. - const minEdgesToEnqueue = 10 - numEdges := indexCell.numEdges() - if numEdges == 0 { - return - } - if numEdges < minEdgesToEnqueue { - // Set "distance" to zero to avoid the expense of computing it. - e.processEdges(&queryQueueEntry{ - distance: e.target.distance().zero(), - id: id, - indexCell: indexCell, - }) - return - } - } - - // Otherwise compute the minimum distance to any point in the cell and add - // it to the priority queue. - cell := CellFromCellID(id) - dist := e.distanceLimit - var ok bool - if dist, ok = e.target.updateDistanceToCell(cell, dist); !ok { - return - } - if e.useConservativeCellDistance { - // Ensure that "distance" is a lower bound on the true distance to the cell. - dist = dist.sub(e.target.distance().fromChordAngle(e.opts.maxError)) - } - - e.queue.push(&queryQueueEntry{ - distance: dist, - id: id, - indexCell: indexCell, - }) -} - -// TODO(roberts): Remaining pieces -// GetEdge -// Project diff --git a/backend/vendor/github.com/golang/geo/s2/edge_tessellator.go b/backend/vendor/github.com/golang/geo/s2/edge_tessellator.go deleted file mode 100644 index 903ad47c..00000000 --- a/backend/vendor/github.com/golang/geo/s2/edge_tessellator.go +++ /dev/null @@ -1,291 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "github.com/golang/geo/r2" - "github.com/golang/geo/s1" -) - -// Tessellation is implemented by subdividing the edge until the estimated -// maximum error is below the given tolerance. Estimating error is a hard -// problem, especially when the only methods available are point evaluation of -// the projection and its inverse. (These are the only methods that -// Projection provides, which makes it easier and less error-prone to -// implement new projections.) -// -// One technique that significantly increases robustness is to treat the -// geodesic and projected edges as parametric curves rather than geometric ones. -// Given a spherical edge AB and a projection p:S2->R2, let f(t) be the -// normalized arc length parametrization of AB and let g(t) be the normalized -// arc length parameterization of the projected edge p(A)p(B). (In other words, -// f(0)=A, f(1)=B, g(0)=p(A), g(1)=p(B).) We now define the geometric error as -// the maximum distance from the point p^-1(g(t)) to the geodesic edge AB for -// any t in [0,1], where p^-1 denotes the inverse projection. In other words, -// the geometric error is the maximum distance from any point on the projected -// edge (mapped back onto the sphere) to the geodesic edge AB. On the other -// hand we define the parametric error as the maximum distance between the -// points f(t) and p^-1(g(t)) for any t in [0,1], i.e. the maximum distance -// (measured on the sphere) between the geodesic and projected points at the -// same interpolation fraction t. -// -// The easiest way to estimate the parametric error is to simply evaluate both -// edges at their midpoints and measure the distance between them (the "midpoint -// method"). This is very fast and works quite well for most edges, however it -// has one major drawback: it doesn't handle points of inflection (i.e., points -// where the curvature changes sign). For example, edges in the Mercator and -// Plate Carree projections always curve towards the equator relative to the -// corresponding geodesic edge, so in these projections there is a point of -// inflection whenever the projected edge crosses the equator. The worst case -// occurs when the edge endpoints have different longitudes but the same -// absolute latitude, since in that case the error is non-zero but the edges -// have exactly the same midpoint (on the equator). -// -// One solution to this problem is to split the input edges at all inflection -// points (i.e., along the equator in the case of the Mercator and Plate Carree -// projections). However for general projections these inflection points can -// occur anywhere on the sphere (e.g., consider the Transverse Mercator -// projection). This could be addressed by adding methods to the S2Projection -// interface to split edges at inflection points but this would make it harder -// and more error-prone to implement new projections. -// -// Another problem with this approach is that the midpoint method sometimes -// underestimates the true error even when edges do not cross the equator. -// For the Plate Carree and Mercator projections, the midpoint method can -// underestimate the error by up to 3%. -// -// Both of these problems can be solved as follows. We assume that the error -// can be modeled as a convex combination of two worst-case functions, one -// where the error is maximized at the edge midpoint and another where the -// error is *minimized* (i.e., zero) at the edge midpoint. For example, we -// could choose these functions as: -// -// E1(x) = 1 - x^2 -// E2(x) = x * (1 - x^2) -// -// where for convenience we use an interpolation parameter "x" in the range -// [-1, 1] rather than the original "t" in the range [0, 1]. Note that both -// error functions must have roots at x = {-1, 1} since the error must be zero -// at the edge endpoints. E1 is simply a parabola whose maximum value is 1 -// attained at x = 0, while E2 is a cubic with an additional root at x = 0, -// and whose maximum value is 2 * sqrt(3) / 9 attained at x = 1 / sqrt(3). -// -// Next, it is convenient to scale these functions so that the both have a -// maximum value of 1. E1 already satisfies this requirement, and we simply -// redefine E2 as -// -// E2(x) = x * (1 - x^2) / (2 * sqrt(3) / 9) -// -// Now define x0 to be the point where these two functions intersect, i.e. the -// point in the range (-1, 1) where E1(x0) = E2(x0). This value has the very -// convenient property that if we evaluate the actual error E(x0), then the -// maximum error on the entire interval [-1, 1] is bounded by -// -// E(x) <= E(x0) / E1(x0) -// -// since whether the error is modeled using E1 or E2, the resulting function -// has the same maximum value (namely E(x0) / E1(x0)). If it is modeled as -// some other convex combination of E1 and E2, the maximum value can only -// decrease. -// -// Finally, since E2 is not symmetric about the y-axis, we must also allow for -// the possibility that the error is a convex combination of E1 and -E2. This -// can be handled by evaluating the error at E(-x0) as well, and then -// computing the final error bound as -// -// E(x) <= max(E(x0), E(-x0)) / E1(x0) . -// -// Effectively, this method is simply evaluating the error at two points about -// 1/3 and 2/3 of the way along the edges, and then scaling the maximum of -// these two errors by a constant factor. Intuitively, the reason this works -// is that if the two edges cross somewhere in the interior, then at least one -// of these points will be far from the crossing. -// -// The actual algorithm implemented below has some additional refinements. -// First, edges longer than 90 degrees are always subdivided; this avoids -// various unusual situations that can happen with very long edges, and there -// is really no reason to avoid adding vertices to edges that are so long. -// -// Second, the error function E1 above needs to be modified to take into -// account spherical distortions. (It turns out that spherical distortions are -// beneficial in the case of E2, i.e. they only make its error estimates -// slightly more conservative.) To do this, we model E1 as the maximum error -// in a Plate Carree edge of length 90 degrees or less. This turns out to be -// an edge from 45:-90 to 45:90 (in lat:lng format). The corresponding error -// as a function of "x" in the range [-1, 1] can be computed as the distance -// between the Plate Caree edge point (45, 90 * x) and the geodesic -// edge point (90 - 45 * abs(x), 90 * sgn(x)). Using the Haversine formula, -// the corresponding function E1 (normalized to have a maximum value of 1) is: -// -// E1(x) = -// asin(sqrt(sin(Pi / 8 * (1 - x)) ^ 2 + -// sin(Pi / 4 * (1 - x)) ^ 2 * cos(Pi / 4) * sin(Pi / 4 * x))) / -// asin(sqrt((1 - 1 / sqrt(2)) / 2)) -// -// Note that this function does not need to be evaluated at runtime, it -// simply affects the calculation of the value x0 where E1(x0) = E2(x0) -// and the corresponding scaling factor C = 1 / E1(x0). -// -// ------------------------------------------------------------------ -// -// In the case of the Mercator and Plate Carree projections this strategy -// produces a conservative upper bound (verified using 10 million random -// edges). Furthermore the bound is nearly tight; the scaling constant is -// C = 1.19289, whereas the maximum observed value was 1.19254. -// -// Compared to the simpler midpoint evaluation method, this strategy requires -// more function evaluations (currently twice as many, but with a smarter -// tessellation algorithm it will only be 50% more). It also results in a -// small amount of additional tessellation (about 1.5%) compared to the -// midpoint method, but this is due almost entirely to the fact that the -// midpoint method does not yield conservative error estimates. -// -// For random edges with a tolerance of 1 meter, the expected amount of -// overtessellation is as follows: -// -// Midpoint Method Cubic Method -// Plate Carree 1.8% 3.0% -// Mercator 15.8% 17.4% - -const ( - // tessellationInterpolationFraction is the fraction at which the two edges - // are evaluated in order to measure the error between them. (Edges are - // evaluated at two points measured this fraction from either end.) - tessellationInterpolationFraction = 0.31215691082248312 - tessellationScaleFactor = 0.83829992569888509 - - // minTessellationTolerance is the minimum supported tolerance (which - // corresponds to a distance less than 1 micrometer on the Earth's - // surface, but is still much larger than the expected projection and - // interpolation errors). - minTessellationTolerance s1.Angle = 1e-13 -) - -// EdgeTessellator converts an edge in a given projection (e.g., Mercator) into -// a chain of spherical geodesic edges such that the maximum distance between -// the original edge and the geodesic edge chain is at most the requested -// tolerance. Similarly, it can convert a spherical geodesic edge into a chain -// of edges in a given 2D projection such that the maximum distance between the -// geodesic edge and the chain of projected edges is at most the requested tolerance. -// -// Method | Input | Output -// ------------|------------------------|----------------------- -// Projected | S2 geodesics | Planar projected edges -// Unprojected | Planar projected edges | S2 geodesics -type EdgeTessellator struct { - projection Projection - - // The given tolerance scaled by a constant fraction so that it can be - // compared against the result returned by estimateMaxError. - scaledTolerance s1.ChordAngle -} - -// NewEdgeTessellator creates a new edge tessellator for the given projection and tolerance. -func NewEdgeTessellator(p Projection, tolerance s1.Angle) *EdgeTessellator { - return &EdgeTessellator{ - projection: p, - scaledTolerance: s1.ChordAngleFromAngle(maxAngle(tolerance, minTessellationTolerance)), - } -} - -// AppendProjected converts the spherical geodesic edge AB to a chain of planar edges -// in the given projection and returns the corresponding vertices. -// -// If the given projection has one or more coordinate axes that wrap, then -// every vertex's coordinates will be as close as possible to the previous -// vertex's coordinates. Note that this may yield vertices whose -// coordinates are outside the usual range. For example, tessellating the -// edge (0:170, 0:-170) (in lat:lng notation) yields (0:170, 0:190). -func (e *EdgeTessellator) AppendProjected(a, b Point, vertices []r2.Point) []r2.Point { - pa := e.projection.Project(a) - if len(vertices) == 0 { - vertices = []r2.Point{pa} - } else { - pa = e.projection.WrapDestination(vertices[len(vertices)-1], pa) - } - - pb := e.projection.Project(b) - return e.appendProjected(pa, a, pb, b, vertices) -} - -// appendProjected splits a geodesic edge AB as necessary and returns the -// projected vertices appended to the given vertices. -// -// The maximum recursion depth is (math.Pi / minTessellationTolerance) < 45 -func (e *EdgeTessellator) appendProjected(pa r2.Point, a Point, pbIn r2.Point, b Point, vertices []r2.Point) []r2.Point { - pb := e.projection.WrapDestination(pa, pbIn) - if e.estimateMaxError(pa, a, pb, b) <= e.scaledTolerance { - return append(vertices, pb) - } - - mid := Point{a.Add(b.Vector).Normalize()} - pmid := e.projection.WrapDestination(pa, e.projection.Project(mid)) - vertices = e.appendProjected(pa, a, pmid, mid, vertices) - return e.appendProjected(pmid, mid, pb, b, vertices) -} - -// AppendUnprojected converts the planar edge AB in the given projection to a chain of -// spherical geodesic edges and returns the vertices. -// -// Note that to construct a Loop, you must eliminate the duplicate first and last -// vertex. Note also that if the given projection involves coordinate wrapping -// (e.g. across the 180 degree meridian) then the first and last vertices may not -// be exactly the same. -func (e *EdgeTessellator) AppendUnprojected(pa, pb r2.Point, vertices []Point) []Point { - a := e.projection.Unproject(pa) - b := e.projection.Unproject(pb) - - if len(vertices) == 0 { - vertices = []Point{a} - } - - // Note that coordinate wrapping can create a small amount of error. For - // example in the edge chain "0:-175, 0:179, 0:-177", the first edge is - // transformed into "0:-175, 0:-181" while the second is transformed into - // "0:179, 0:183". The two coordinate pairs for the middle vertex - // ("0:-181" and "0:179") may not yield exactly the same S2Point. - return e.appendUnprojected(pa, a, pb, b, vertices) -} - -// appendUnprojected interpolates a projected edge and appends the corresponding -// points on the sphere. -func (e *EdgeTessellator) appendUnprojected(pa r2.Point, a Point, pbIn r2.Point, b Point, vertices []Point) []Point { - pb := e.projection.WrapDestination(pa, pbIn) - if e.estimateMaxError(pa, a, pb, b) <= e.scaledTolerance { - return append(vertices, b) - } - - pmid := e.projection.Interpolate(0.5, pa, pb) - mid := e.projection.Unproject(pmid) - - vertices = e.appendUnprojected(pa, a, pmid, mid, vertices) - return e.appendUnprojected(pmid, mid, pb, b, vertices) -} - -func (e *EdgeTessellator) estimateMaxError(pa r2.Point, a Point, pb r2.Point, b Point) s1.ChordAngle { - // See the algorithm description at the top of this file. - // We always tessellate edges longer than 90 degrees on the sphere, since the - // approximation below is not robust enough to handle such edges. - if a.Dot(b.Vector) < -1e-14 { - return s1.InfChordAngle() - } - t1 := tessellationInterpolationFraction - t2 := 1 - tessellationInterpolationFraction - mid1 := Interpolate(t1, a, b) - mid2 := Interpolate(t2, a, b) - pmid1 := e.projection.Unproject(e.projection.Interpolate(t1, pa, pb)) - pmid2 := e.projection.Unproject(e.projection.Interpolate(t2, pa, pb)) - return maxChordAngle(ChordAngleBetweenPoints(mid1, pmid1), ChordAngleBetweenPoints(mid2, pmid2)) -} diff --git a/backend/vendor/github.com/golang/geo/s2/encode.go b/backend/vendor/github.com/golang/geo/s2/encode.go deleted file mode 100644 index 00d0adc7..00000000 --- a/backend/vendor/github.com/golang/geo/s2/encode.go +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "encoding/binary" - "io" - "math" -) - -const ( - // encodingVersion is the current version of the encoding - // format that is compatible with C++ and other S2 libraries. - encodingVersion = int8(1) - - // encodingCompressedVersion is the current version of the - // compressed format. - encodingCompressedVersion = int8(4) -) - -// encoder handles the specifics of encoding for S2 types. -type encoder struct { - w io.Writer // the real writer passed to Encode - err error -} - -func (e *encoder) writeUvarint(x uint64) { - if e.err != nil { - return - } - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - _, e.err = e.w.Write(buf[:n]) -} - -func (e *encoder) writeBool(x bool) { - if e.err != nil { - return - } - var val int8 - if x { - val = 1 - } - e.err = binary.Write(e.w, binary.LittleEndian, val) -} - -func (e *encoder) writeInt8(x int8) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeInt16(x int16) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeInt32(x int32) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeInt64(x int64) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeUint8(x uint8) { - if e.err != nil { - return - } - _, e.err = e.w.Write([]byte{x}) -} - -func (e *encoder) writeUint32(x uint32) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeUint64(x uint64) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeFloat32(x float32) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -func (e *encoder) writeFloat64(x float64) { - if e.err != nil { - return - } - e.err = binary.Write(e.w, binary.LittleEndian, x) -} - -type byteReader interface { - io.Reader - io.ByteReader -} - -// byteReaderAdapter embellishes an io.Reader with a ReadByte method, -// so that it implements the io.ByteReader interface. -type byteReaderAdapter struct { - io.Reader -} - -func (b byteReaderAdapter) ReadByte() (byte, error) { - buf := []byte{0} - _, err := io.ReadFull(b, buf) - return buf[0], err -} - -func asByteReader(r io.Reader) byteReader { - if br, ok := r.(byteReader); ok { - return br - } - return byteReaderAdapter{r} -} - -type decoder struct { - r byteReader // the real reader passed to Decode - err error - buf []byte -} - -// Get a buffer of size 8, to avoid allocating over and over. -func (d *decoder) buffer() []byte { - if d.buf == nil { - d.buf = make([]byte, 8) - } - return d.buf -} - -func (d *decoder) readBool() (x bool) { - if d.err != nil { - return - } - var val int8 - d.err = binary.Read(d.r, binary.LittleEndian, &val) - return val == 1 -} - -func (d *decoder) readInt8() (x int8) { - if d.err != nil { - return - } - d.err = binary.Read(d.r, binary.LittleEndian, &x) - return -} - -func (d *decoder) readInt64() (x int64) { - if d.err != nil { - return - } - d.err = binary.Read(d.r, binary.LittleEndian, &x) - return -} - -func (d *decoder) readUint8() (x uint8) { - if d.err != nil { - return - } - x, d.err = d.r.ReadByte() - return -} - -func (d *decoder) readUint32() (x uint32) { - if d.err != nil { - return - } - d.err = binary.Read(d.r, binary.LittleEndian, &x) - return -} - -func (d *decoder) readUint64() (x uint64) { - if d.err != nil { - return - } - d.err = binary.Read(d.r, binary.LittleEndian, &x) - return -} - -func (d *decoder) readFloat64() float64 { - if d.err != nil { - return 0 - } - buf := d.buffer() - _, d.err = io.ReadFull(d.r, buf) - return math.Float64frombits(binary.LittleEndian.Uint64(buf)) -} - -func (d *decoder) readUvarint() (x uint64) { - if d.err != nil { - return - } - x, d.err = binary.ReadUvarint(d.r) - return -} diff --git a/backend/vendor/github.com/golang/geo/s2/interleave.go b/backend/vendor/github.com/golang/geo/s2/interleave.go deleted file mode 100644 index 6ac6ef58..00000000 --- a/backend/vendor/github.com/golang/geo/s2/interleave.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -/* -The lookup table below can convert a sequence of interleaved 8 bits into -non-interleaved 4 bits. The table can convert both odd and even bits at the -same time, and lut[x & 0x55] converts the even bits (bits 0, 2, 4 and 6), -while lut[x & 0xaa] converts the odd bits (bits 1, 3, 5 and 7). - -The lookup table below was generated using the following python code: - - def deinterleave(bits): - if bits == 0: return 0 - if bits < 4: return 1 - return deinterleave(bits / 4) * 2 + deinterleave(bits & 3) - - for i in range(256): print "0x%x," % deinterleave(i), -*/ -var deinterleaveLookup = [256]uint32{ - 0x0, 0x1, 0x1, 0x1, 0x2, 0x3, 0x3, 0x3, - 0x2, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, - 0x4, 0x5, 0x5, 0x5, 0x6, 0x7, 0x7, 0x7, - 0x6, 0x7, 0x7, 0x7, 0x6, 0x7, 0x7, 0x7, - 0x4, 0x5, 0x5, 0x5, 0x6, 0x7, 0x7, 0x7, - 0x6, 0x7, 0x7, 0x7, 0x6, 0x7, 0x7, 0x7, - 0x4, 0x5, 0x5, 0x5, 0x6, 0x7, 0x7, 0x7, - 0x6, 0x7, 0x7, 0x7, 0x6, 0x7, 0x7, 0x7, - - 0x8, 0x9, 0x9, 0x9, 0xa, 0xb, 0xb, 0xb, - 0xa, 0xb, 0xb, 0xb, 0xa, 0xb, 0xb, 0xb, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - - 0x8, 0x9, 0x9, 0x9, 0xa, 0xb, 0xb, 0xb, - 0xa, 0xb, 0xb, 0xb, 0xa, 0xb, 0xb, 0xb, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - - 0x8, 0x9, 0x9, 0x9, 0xa, 0xb, 0xb, 0xb, - 0xa, 0xb, 0xb, 0xb, 0xa, 0xb, 0xb, 0xb, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, - 0xc, 0xd, 0xd, 0xd, 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, 0xe, 0xf, 0xf, 0xf, -} - -// deinterleaveUint32 decodes the interleaved values. -func deinterleaveUint32(code uint64) (uint32, uint32) { - x := (deinterleaveLookup[code&0x55]) | - (deinterleaveLookup[(code>>8)&0x55] << 4) | - (deinterleaveLookup[(code>>16)&0x55] << 8) | - (deinterleaveLookup[(code>>24)&0x55] << 12) | - (deinterleaveLookup[(code>>32)&0x55] << 16) | - (deinterleaveLookup[(code>>40)&0x55] << 20) | - (deinterleaveLookup[(code>>48)&0x55] << 24) | - (deinterleaveLookup[(code>>56)&0x55] << 28) - y := (deinterleaveLookup[code&0xaa]) | - (deinterleaveLookup[(code>>8)&0xaa] << 4) | - (deinterleaveLookup[(code>>16)&0xaa] << 8) | - (deinterleaveLookup[(code>>24)&0xaa] << 12) | - (deinterleaveLookup[(code>>32)&0xaa] << 16) | - (deinterleaveLookup[(code>>40)&0xaa] << 20) | - (deinterleaveLookup[(code>>48)&0xaa] << 24) | - (deinterleaveLookup[(code>>56)&0xaa] << 28) - return x, y -} - -var interleaveLookup = [256]uint64{ - 0x0000, 0x0001, 0x0004, 0x0005, 0x0010, 0x0011, 0x0014, 0x0015, - 0x0040, 0x0041, 0x0044, 0x0045, 0x0050, 0x0051, 0x0054, 0x0055, - 0x0100, 0x0101, 0x0104, 0x0105, 0x0110, 0x0111, 0x0114, 0x0115, - 0x0140, 0x0141, 0x0144, 0x0145, 0x0150, 0x0151, 0x0154, 0x0155, - 0x0400, 0x0401, 0x0404, 0x0405, 0x0410, 0x0411, 0x0414, 0x0415, - 0x0440, 0x0441, 0x0444, 0x0445, 0x0450, 0x0451, 0x0454, 0x0455, - 0x0500, 0x0501, 0x0504, 0x0505, 0x0510, 0x0511, 0x0514, 0x0515, - 0x0540, 0x0541, 0x0544, 0x0545, 0x0550, 0x0551, 0x0554, 0x0555, - - 0x1000, 0x1001, 0x1004, 0x1005, 0x1010, 0x1011, 0x1014, 0x1015, - 0x1040, 0x1041, 0x1044, 0x1045, 0x1050, 0x1051, 0x1054, 0x1055, - 0x1100, 0x1101, 0x1104, 0x1105, 0x1110, 0x1111, 0x1114, 0x1115, - 0x1140, 0x1141, 0x1144, 0x1145, 0x1150, 0x1151, 0x1154, 0x1155, - 0x1400, 0x1401, 0x1404, 0x1405, 0x1410, 0x1411, 0x1414, 0x1415, - 0x1440, 0x1441, 0x1444, 0x1445, 0x1450, 0x1451, 0x1454, 0x1455, - 0x1500, 0x1501, 0x1504, 0x1505, 0x1510, 0x1511, 0x1514, 0x1515, - 0x1540, 0x1541, 0x1544, 0x1545, 0x1550, 0x1551, 0x1554, 0x1555, - - 0x4000, 0x4001, 0x4004, 0x4005, 0x4010, 0x4011, 0x4014, 0x4015, - 0x4040, 0x4041, 0x4044, 0x4045, 0x4050, 0x4051, 0x4054, 0x4055, - 0x4100, 0x4101, 0x4104, 0x4105, 0x4110, 0x4111, 0x4114, 0x4115, - 0x4140, 0x4141, 0x4144, 0x4145, 0x4150, 0x4151, 0x4154, 0x4155, - 0x4400, 0x4401, 0x4404, 0x4405, 0x4410, 0x4411, 0x4414, 0x4415, - 0x4440, 0x4441, 0x4444, 0x4445, 0x4450, 0x4451, 0x4454, 0x4455, - 0x4500, 0x4501, 0x4504, 0x4505, 0x4510, 0x4511, 0x4514, 0x4515, - 0x4540, 0x4541, 0x4544, 0x4545, 0x4550, 0x4551, 0x4554, 0x4555, - - 0x5000, 0x5001, 0x5004, 0x5005, 0x5010, 0x5011, 0x5014, 0x5015, - 0x5040, 0x5041, 0x5044, 0x5045, 0x5050, 0x5051, 0x5054, 0x5055, - 0x5100, 0x5101, 0x5104, 0x5105, 0x5110, 0x5111, 0x5114, 0x5115, - 0x5140, 0x5141, 0x5144, 0x5145, 0x5150, 0x5151, 0x5154, 0x5155, - 0x5400, 0x5401, 0x5404, 0x5405, 0x5410, 0x5411, 0x5414, 0x5415, - 0x5440, 0x5441, 0x5444, 0x5445, 0x5450, 0x5451, 0x5454, 0x5455, - 0x5500, 0x5501, 0x5504, 0x5505, 0x5510, 0x5511, 0x5514, 0x5515, - 0x5540, 0x5541, 0x5544, 0x5545, 0x5550, 0x5551, 0x5554, 0x5555, -} - -// interleaveUint32 interleaves the given arguments into the return value. -// -// The 0-bit in val0 will be the 0-bit in the return value. -// The 0-bit in val1 will be the 1-bit in the return value. -// The 1-bit of val0 will be the 2-bit in the return value, and so on. -func interleaveUint32(x, y uint32) uint64 { - return (interleaveLookup[x&0xff]) | - (interleaveLookup[(x>>8)&0xff] << 16) | - (interleaveLookup[(x>>16)&0xff] << 32) | - (interleaveLookup[x>>24] << 48) | - (interleaveLookup[y&0xff] << 1) | - (interleaveLookup[(y>>8)&0xff] << 17) | - (interleaveLookup[(y>>16)&0xff] << 33) | - (interleaveLookup[y>>24] << 49) -} diff --git a/backend/vendor/github.com/golang/geo/s2/latlng.go b/backend/vendor/github.com/golang/geo/s2/latlng.go deleted file mode 100644 index a750304a..00000000 --- a/backend/vendor/github.com/golang/geo/s2/latlng.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "math" - - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -const ( - northPoleLat = s1.Angle(math.Pi/2) * s1.Radian - southPoleLat = -northPoleLat -) - -// LatLng represents a point on the unit sphere as a pair of angles. -type LatLng struct { - Lat, Lng s1.Angle -} - -// LatLngFromDegrees returns a LatLng for the coordinates given in degrees. -func LatLngFromDegrees(lat, lng float64) LatLng { - return LatLng{s1.Angle(lat) * s1.Degree, s1.Angle(lng) * s1.Degree} -} - -// IsValid returns true iff the LatLng is normalized, with Lat ∈ [-π/2,π/2] and Lng ∈ [-π,π]. -func (ll LatLng) IsValid() bool { - return math.Abs(ll.Lat.Radians()) <= math.Pi/2 && math.Abs(ll.Lng.Radians()) <= math.Pi -} - -// Normalized returns the normalized version of the LatLng, -// with Lat clamped to [-π/2,π/2] and Lng wrapped in [-π,π]. -func (ll LatLng) Normalized() LatLng { - lat := ll.Lat - if lat > northPoleLat { - lat = northPoleLat - } else if lat < southPoleLat { - lat = southPoleLat - } - lng := s1.Angle(math.Remainder(ll.Lng.Radians(), 2*math.Pi)) * s1.Radian - return LatLng{lat, lng} -} - -func (ll LatLng) String() string { return fmt.Sprintf("[%v, %v]", ll.Lat, ll.Lng) } - -// Distance returns the angle between two LatLngs. -func (ll LatLng) Distance(ll2 LatLng) s1.Angle { - // Haversine formula, as used in C++ S2LatLng::GetDistance. - lat1, lat2 := ll.Lat.Radians(), ll2.Lat.Radians() - lng1, lng2 := ll.Lng.Radians(), ll2.Lng.Radians() - dlat := math.Sin(0.5 * (lat2 - lat1)) - dlng := math.Sin(0.5 * (lng2 - lng1)) - x := dlat*dlat + dlng*dlng*math.Cos(lat1)*math.Cos(lat2) - return s1.Angle(2*math.Atan2(math.Sqrt(x), math.Sqrt(math.Max(0, 1-x)))) * s1.Radian -} - -// NOTE(mikeperrow): The C++ implementation publicly exposes latitude/longitude -// functions. Let's see if that's really necessary before exposing the same functionality. - -func latitude(p Point) s1.Angle { - return s1.Angle(math.Atan2(p.Z, math.Sqrt(p.X*p.X+p.Y*p.Y))) * s1.Radian -} - -func longitude(p Point) s1.Angle { - return s1.Angle(math.Atan2(p.Y, p.X)) * s1.Radian -} - -// PointFromLatLng returns an Point for the given LatLng. -// The maximum error in the result is 1.5 * dblEpsilon. (This does not -// include the error of converting degrees, E5, E6, or E7 into radians.) -func PointFromLatLng(ll LatLng) Point { - phi := ll.Lat.Radians() - theta := ll.Lng.Radians() - cosphi := math.Cos(phi) - return Point{r3.Vector{math.Cos(theta) * cosphi, math.Sin(theta) * cosphi, math.Sin(phi)}} -} - -// LatLngFromPoint returns an LatLng for a given Point. -func LatLngFromPoint(p Point) LatLng { - return LatLng{latitude(p), longitude(p)} -} - -// ApproxEqual reports whether the latitude and longitude of the two LatLngs -// are the same up to a small tolerance. -func (ll LatLng) ApproxEqual(other LatLng) bool { - return ll.Lat.ApproxEqual(other.Lat) && ll.Lng.ApproxEqual(other.Lng) -} diff --git a/backend/vendor/github.com/golang/geo/s2/lexicon.go b/backend/vendor/github.com/golang/geo/s2/lexicon.go deleted file mode 100644 index 23bc6f3b..00000000 --- a/backend/vendor/github.com/golang/geo/s2/lexicon.go +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright 2020 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "encoding/binary" - "hash/adler32" - "math" - "sort" -) - -// TODO(roberts): If any of these are worth making public, change the -// method signatures and type names. - -// emptySetID represents the last ID that will ever be generated. -// (Non-negative IDs are reserved for singleton sets.) -var emptySetID = int32(math.MinInt32) - -// idSetLexicon compactly represents a set of non-negative -// integers such as array indices ("ID sets"). It is especially suitable when -// either (1) there are many duplicate sets, or (2) there are many singleton -// or empty sets. See also sequenceLexicon. -// -// Each distinct ID set is mapped to a 32-bit integer. Empty and singleton -// sets take up no additional space; the set itself is represented -// by the unique ID assigned to the set. Duplicate sets are automatically -// eliminated. Note also that ID sets are referred to using 32-bit integers -// rather than pointers. -type idSetLexicon struct { - idSets *sequenceLexicon -} - -func newIDSetLexicon() *idSetLexicon { - return &idSetLexicon{ - idSets: newSequenceLexicon(), - } -} - -// add adds the given set of integers to the lexicon if it is not already -// present, and return the unique ID for this set. The values are automatically -// sorted and duplicates are removed. -// -// The primary difference between this and sequenceLexicon are: -// 1. Empty and singleton sets are represented implicitly; they use no space. -// 2. Sets are represented rather than sequences; the ordering of values is -// not important and duplicates are removed. -// 3. The values must be 32-bit non-negative integers only. -func (l *idSetLexicon) add(ids ...int32) int32 { - // Empty sets have a special ID chosen not to conflict with other IDs. - if len(ids) == 0 { - return emptySetID - } - - // Singleton sets are represented by their element. - if len(ids) == 1 { - return ids[0] - } - - // Canonicalize the set by sorting and removing duplicates. - // - // Creates a new slice in order to not alter the supplied values. - set := uniqueInt32s(ids) - - // Non-singleton sets are represented by the bitwise complement of the ID - // returned by the sequenceLexicon - return ^l.idSets.add(set) -} - -// idSet returns the set of integers corresponding to an ID returned by add. -func (l *idSetLexicon) idSet(setID int32) []int32 { - if setID >= 0 { - return []int32{setID} - } - if setID == emptySetID { - return []int32{} - } - - return l.idSets.sequence(^setID) -} - -func (l *idSetLexicon) clear() { - l.idSets.clear() -} - -// sequenceLexicon compactly represents a sequence of values (e.g., tuples). -// It automatically eliminates duplicates slices, and maps the remaining -// sequences to sequentially increasing integer IDs. See also idSetLexicon. -// -// Each distinct sequence is mapped to a 32-bit integer. -type sequenceLexicon struct { - values []int32 - begins []uint32 - - // idSet is a mapping of a sequence hash to sequence index in the lexicon. - idSet map[uint32]int32 -} - -func newSequenceLexicon() *sequenceLexicon { - return &sequenceLexicon{ - begins: []uint32{0}, - idSet: make(map[uint32]int32), - } -} - -// clears all data from the lexicon. -func (l *sequenceLexicon) clear() { - l.values = nil - l.begins = []uint32{0} - l.idSet = make(map[uint32]int32) -} - -// add adds the given value to the lexicon if it is not already present, and -// returns its ID. IDs are assigned sequentially starting from zero. -func (l *sequenceLexicon) add(ids []int32) int32 { - if id, ok := l.idSet[hashSet(ids)]; ok { - return id - } - for _, v := range ids { - l.values = append(l.values, v) - } - l.begins = append(l.begins, uint32(len(l.values))) - - id := int32(len(l.begins)) - 2 - l.idSet[hashSet(ids)] = id - - return id -} - -// sequence returns the original sequence of values for the given ID. -func (l *sequenceLexicon) sequence(id int32) []int32 { - return l.values[l.begins[id]:l.begins[id+1]] -} - -// size reports the number of value sequences in the lexicon. -func (l *sequenceLexicon) size() int { - // Subtract one because the list of begins starts out with the first element set to 0. - return len(l.begins) - 1 -} - -// hash returns a hash of this sequence of int32s. -func hashSet(s []int32) uint32 { - // TODO(roberts): We just need a way to nicely hash all the values down to - // a 32-bit value. To ensure no unnecessary dependencies we use the core - // library types available to do this. Is there a better option? - a := adler32.New() - binary.Write(a, binary.LittleEndian, s) - return a.Sum32() -} - -// uniqueInt32s returns the sorted and uniqued set of int32s from the input. -func uniqueInt32s(in []int32) []int32 { - var vals []int32 - m := make(map[int32]bool) - for _, i := range in { - if m[i] { - continue - } - m[i] = true - vals = append(vals, i) - } - sort.Slice(vals, func(i, j int) bool { return vals[i] < vals[j] }) - return vals -} diff --git a/backend/vendor/github.com/golang/geo/s2/loop.go b/backend/vendor/github.com/golang/geo/s2/loop.go deleted file mode 100644 index 95d3d19b..00000000 --- a/backend/vendor/github.com/golang/geo/s2/loop.go +++ /dev/null @@ -1,1837 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "io" - "math" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// Loop represents a simple spherical polygon. It consists of a sequence -// of vertices where the first vertex is implicitly connected to the -// last. All loops are defined to have a CCW orientation, i.e. the interior of -// the loop is on the left side of the edges. This implies that a clockwise -// loop enclosing a small area is interpreted to be a CCW loop enclosing a -// very large area. -// -// Loops are not allowed to have any duplicate vertices (whether adjacent or -// not). Non-adjacent edges are not allowed to intersect, and furthermore edges -// of length 180 degrees are not allowed (i.e., adjacent vertices cannot be -// antipodal). Loops must have at least 3 vertices (except for the "empty" and -// "full" loops discussed below). -// -// There are two special loops: the "empty" loop contains no points and the -// "full" loop contains all points. These loops do not have any edges, but to -// preserve the invariant that every loop can be represented as a vertex -// chain, they are defined as having exactly one vertex each (see EmptyLoop -// and FullLoop). -type Loop struct { - vertices []Point - - // originInside keeps a precomputed value whether this loop contains the origin - // versus computing from the set of vertices every time. - originInside bool - - // depth is the nesting depth of this Loop if it is contained by a Polygon - // or other shape and is used to determine if this loop represents a hole - // or a filled in portion. - depth int - - // bound is a conservative bound on all points contained by this loop. - // If l.ContainsPoint(P), then l.bound.ContainsPoint(P). - bound Rect - - // Since bound is not exact, it is possible that a loop A contains - // another loop B whose bounds are slightly larger. subregionBound - // has been expanded sufficiently to account for this error, i.e. - // if A.Contains(B), then A.subregionBound.Contains(B.bound). - subregionBound Rect - - // index is the spatial index for this Loop. - index *ShapeIndex -} - -// LoopFromPoints constructs a loop from the given points. -func LoopFromPoints(pts []Point) *Loop { - l := &Loop{ - vertices: pts, - index: NewShapeIndex(), - } - - l.initOriginAndBound() - return l -} - -// LoopFromCell constructs a loop corresponding to the given cell. -// -// Note that the loop and cell *do not* contain exactly the same set of -// points, because Loop and Cell have slightly different definitions of -// point containment. For example, a Cell vertex is contained by all -// four neighboring Cells, but it is contained by exactly one of four -// Loops constructed from those cells. As another example, the cell -// coverings of cell and LoopFromCell(cell) will be different, because the -// loop contains points on its boundary that actually belong to other cells -// (i.e., the covering will include a layer of neighboring cells). -func LoopFromCell(c Cell) *Loop { - l := &Loop{ - vertices: []Point{ - c.Vertex(0), - c.Vertex(1), - c.Vertex(2), - c.Vertex(3), - }, - index: NewShapeIndex(), - } - - l.initOriginAndBound() - return l -} - -// These two points are used for the special Empty and Full loops. -var ( - emptyLoopPoint = Point{r3.Vector{X: 0, Y: 0, Z: 1}} - fullLoopPoint = Point{r3.Vector{X: 0, Y: 0, Z: -1}} -) - -// EmptyLoop returns a special "empty" loop. -func EmptyLoop() *Loop { - return LoopFromPoints([]Point{emptyLoopPoint}) -} - -// FullLoop returns a special "full" loop. -func FullLoop() *Loop { - return LoopFromPoints([]Point{fullLoopPoint}) -} - -// initOriginAndBound sets the origin containment for the given point and then calls -// the initialization for the bounds objects and the internal index. -func (l *Loop) initOriginAndBound() { - if len(l.vertices) < 3 { - // Check for the special "empty" and "full" loops (which have one vertex). - if !l.isEmptyOrFull() { - l.originInside = false - return - } - - // This is the special empty or full loop, so the origin depends on if - // the vertex is in the southern hemisphere or not. - l.originInside = l.vertices[0].Z < 0 - } else { - // Point containment testing is done by counting edge crossings starting - // at a fixed point on the sphere (OriginPoint). We need to know whether - // the reference point (OriginPoint) is inside or outside the loop before - // we can construct the ShapeIndex. We do this by first guessing that - // it is outside, and then seeing whether we get the correct containment - // result for vertex 1. If the result is incorrect, the origin must be - // inside the loop. - // - // A loop with consecutive vertices A,B,C contains vertex B if and only if - // the fixed vector R = B.Ortho is contained by the wedge ABC. The - // wedge is closed at A and open at C, i.e. the point B is inside the loop - // if A = R but not if C = R. This convention is required for compatibility - // with VertexCrossing. (Note that we can't use OriginPoint - // as the fixed vector because of the possibility that B == OriginPoint.) - l.originInside = false - v1Inside := OrderedCCW(Point{l.vertices[1].Ortho()}, l.vertices[0], l.vertices[2], l.vertices[1]) - if v1Inside != l.ContainsPoint(l.vertices[1]) { - l.originInside = true - } - } - - // We *must* call initBound before initializing the index, because - // initBound calls ContainsPoint which does a bounds check before using - // the index. - l.initBound() - - // Create a new index and add us to it. - l.index = NewShapeIndex() - l.index.Add(l) -} - -// initBound sets up the approximate bounding Rects for this loop. -func (l *Loop) initBound() { - if len(l.vertices) == 0 { - *l = *EmptyLoop() - return - } - // Check for the special "empty" and "full" loops. - if l.isEmptyOrFull() { - if l.IsEmpty() { - l.bound = EmptyRect() - } else { - l.bound = FullRect() - } - l.subregionBound = l.bound - return - } - - // The bounding rectangle of a loop is not necessarily the same as the - // bounding rectangle of its vertices. First, the maximal latitude may be - // attained along the interior of an edge. Second, the loop may wrap - // entirely around the sphere (e.g. a loop that defines two revolutions of a - // candy-cane stripe). Third, the loop may include one or both poles. - // Note that a small clockwise loop near the equator contains both poles. - bounder := NewRectBounder() - for i := 0; i <= len(l.vertices); i++ { // add vertex 0 twice - bounder.AddPoint(l.Vertex(i)) - } - b := bounder.RectBound() - - if l.ContainsPoint(Point{r3.Vector{0, 0, 1}}) { - b = Rect{r1.Interval{b.Lat.Lo, math.Pi / 2}, s1.FullInterval()} - } - // If a loop contains the south pole, then either it wraps entirely - // around the sphere (full longitude range), or it also contains the - // north pole in which case b.Lng.IsFull() due to the test above. - // Either way, we only need to do the south pole containment test if - // b.Lng.IsFull(). - if b.Lng.IsFull() && l.ContainsPoint(Point{r3.Vector{0, 0, -1}}) { - b.Lat.Lo = -math.Pi / 2 - } - l.bound = b - l.subregionBound = ExpandForSubregions(l.bound) -} - -// Validate checks whether this is a valid loop. -func (l *Loop) Validate() error { - if err := l.findValidationErrorNoIndex(); err != nil { - return err - } - - // Check for intersections between non-adjacent edges (including at vertices) - // TODO(roberts): Once shapeutil gets findAnyCrossing uncomment this. - // return findAnyCrossing(l.index) - - return nil -} - -// findValidationErrorNoIndex reports whether this is not a valid loop, but -// skips checks that would require a ShapeIndex to be built for the loop. This -// is primarily used by Polygon to do validation so it doesn't trigger the -// creation of unneeded ShapeIndices. -func (l *Loop) findValidationErrorNoIndex() error { - // All vertices must be unit length. - for i, v := range l.vertices { - if !v.IsUnit() { - return fmt.Errorf("vertex %d is not unit length", i) - } - } - - // Loops must have at least 3 vertices (except for empty and full). - if len(l.vertices) < 3 { - if l.isEmptyOrFull() { - return nil // Skip remaining tests. - } - return fmt.Errorf("non-empty, non-full loops must have at least 3 vertices") - } - - // Loops are not allowed to have any duplicate vertices or edge crossings. - // We split this check into two parts. First we check that no edge is - // degenerate (identical endpoints). Then we check that there are no - // intersections between non-adjacent edges (including at vertices). The - // second check needs the ShapeIndex, so it does not fall within the scope - // of this method. - for i, v := range l.vertices { - if v == l.Vertex(i+1) { - return fmt.Errorf("edge %d is degenerate (duplicate vertex)", i) - } - - // Antipodal vertices are not allowed. - if other := (Point{l.Vertex(i + 1).Mul(-1)}); v == other { - return fmt.Errorf("vertices %d and %d are antipodal", i, - (i+1)%len(l.vertices)) - } - } - - return nil -} - -// Contains reports whether the region contained by this loop is a superset of the -// region contained by the given other loop. -func (l *Loop) Contains(o *Loop) bool { - // For a loop A to contain the loop B, all of the following must - // be true: - // - // (1) There are no edge crossings between A and B except at vertices. - // - // (2) At every vertex that is shared between A and B, the local edge - // ordering implies that A contains B. - // - // (3) If there are no shared vertices, then A must contain a vertex of B - // and B must not contain a vertex of A. (An arbitrary vertex may be - // chosen in each case.) - // - // The second part of (3) is necessary to detect the case of two loops whose - // union is the entire sphere, i.e. two loops that contains each other's - // boundaries but not each other's interiors. - if !l.subregionBound.Contains(o.bound) { - return false - } - - // Special cases to handle either loop being empty or full. - if l.isEmptyOrFull() || o.isEmptyOrFull() { - return l.IsFull() || o.IsEmpty() - } - - // Check whether there are any edge crossings, and also check the loop - // relationship at any shared vertices. - relation := &containsRelation{} - if hasCrossingRelation(l, o, relation) { - return false - } - - // There are no crossings, and if there are any shared vertices then A - // contains B locally at each shared vertex. - if relation.foundSharedVertex { - return true - } - - // Since there are no edge intersections or shared vertices, we just need to - // test condition (3) above. We can skip this test if we discovered that A - // contains at least one point of B while checking for edge crossings. - if !l.ContainsPoint(o.Vertex(0)) { - return false - } - - // We still need to check whether (A union B) is the entire sphere. - // Normally this check is very cheap due to the bounding box precondition. - if (o.subregionBound.Contains(l.bound) || o.bound.Union(l.bound).IsFull()) && - o.ContainsPoint(l.Vertex(0)) { - return false - } - return true -} - -// Intersects reports whether the region contained by this loop intersects the region -// contained by the other loop. -func (l *Loop) Intersects(o *Loop) bool { - // Given two loops, A and B, A.Intersects(B) if and only if !A.Complement().Contains(B). - // - // This code is similar to Contains, but is optimized for the case - // where both loops enclose less than half of the sphere. - if !l.bound.Intersects(o.bound) { - return false - } - - // Check whether there are any edge crossings, and also check the loop - // relationship at any shared vertices. - relation := &intersectsRelation{} - if hasCrossingRelation(l, o, relation) { - return true - } - if relation.foundSharedVertex { - return false - } - - // Since there are no edge intersections or shared vertices, the loops - // intersect only if A contains B, B contains A, or the two loops contain - // each other's boundaries. These checks are usually cheap because of the - // bounding box preconditions. Note that neither loop is empty (because of - // the bounding box check above), so it is safe to access vertex(0). - - // Check whether A contains B, or A and B contain each other's boundaries. - // (Note that A contains all the vertices of B in either case.) - if l.subregionBound.Contains(o.bound) || l.bound.Union(o.bound).IsFull() { - if l.ContainsPoint(o.Vertex(0)) { - return true - } - } - // Check whether B contains A. - if o.subregionBound.Contains(l.bound) { - if o.ContainsPoint(l.Vertex(0)) { - return true - } - } - return false -} - -// Equal reports whether two loops have the same vertices in the same linear order -// (i.e., cyclic rotations are not allowed). -func (l *Loop) Equal(other *Loop) bool { - if len(l.vertices) != len(other.vertices) { - return false - } - - for i, v := range l.vertices { - if v != other.Vertex(i) { - return false - } - } - return true -} - -// BoundaryEqual reports whether the two loops have the same boundary. This is -// true if and only if the loops have the same vertices in the same cyclic order -// (i.e., the vertices may be cyclically rotated). The empty and full loops are -// considered to have different boundaries. -func (l *Loop) BoundaryEqual(o *Loop) bool { - if len(l.vertices) != len(o.vertices) { - return false - } - - // Special case to handle empty or full loops. Since they have the same - // number of vertices, if one loop is empty/full then so is the other. - if l.isEmptyOrFull() { - return l.IsEmpty() == o.IsEmpty() - } - - // Loop through the vertices to find the first of ours that matches the - // starting vertex of the other loop. Use that offset to then 'align' the - // vertices for comparison. - for offset, vertex := range l.vertices { - if vertex == o.Vertex(0) { - // There is at most one starting offset since loop vertices are unique. - for i := 0; i < len(l.vertices); i++ { - if l.Vertex(i+offset) != o.Vertex(i) { - return false - } - } - return true - } - } - return false -} - -// compareBoundary returns +1 if this loop contains the boundary of the other loop, -// -1 if it excludes the boundary of the other, and 0 if the boundaries of the two -// loops cross. Shared edges are handled as follows: -// -// If XY is a shared edge, define Reversed(XY) to be true if XY -// appears in opposite directions in both loops. -// Then this loop contains XY if and only if Reversed(XY) == the other loop is a hole. -// (Intuitively, this checks whether this loop contains a vanishingly small region -// extending from the boundary of the other toward the interior of the polygon to -// which the other belongs.) -// -// This function is used for testing containment and intersection of -// multi-loop polygons. Note that this method is not symmetric, since the -// result depends on the direction of this loop but not on the direction of -// the other loop (in the absence of shared edges). -// -// This requires that neither loop is empty, and if other loop IsFull, then it must not -// be a hole. -func (l *Loop) compareBoundary(o *Loop) int { - // The bounds must intersect for containment or crossing. - if !l.bound.Intersects(o.bound) { - return -1 - } - - // Full loops are handled as though the loop surrounded the entire sphere. - if l.IsFull() { - return 1 - } - if o.IsFull() { - return -1 - } - - // Check whether there are any edge crossings, and also check the loop - // relationship at any shared vertices. - relation := newCompareBoundaryRelation(o.IsHole()) - if hasCrossingRelation(l, o, relation) { - return 0 - } - if relation.foundSharedVertex { - if relation.containsEdge { - return 1 - } - return -1 - } - - // There are no edge intersections or shared vertices, so we can check - // whether A contains an arbitrary vertex of B. - if l.ContainsPoint(o.Vertex(0)) { - return 1 - } - return -1 -} - -// ContainsOrigin reports true if this loop contains s2.OriginPoint(). -func (l *Loop) ContainsOrigin() bool { - return l.originInside -} - -// ReferencePoint returns the reference point for this loop. -func (l *Loop) ReferencePoint() ReferencePoint { - return OriginReferencePoint(l.originInside) -} - -// NumEdges returns the number of edges in this shape. -func (l *Loop) NumEdges() int { - if l.isEmptyOrFull() { - return 0 - } - return len(l.vertices) -} - -// Edge returns the endpoints for the given edge index. -func (l *Loop) Edge(i int) Edge { - return Edge{l.Vertex(i), l.Vertex(i + 1)} -} - -// NumChains reports the number of contiguous edge chains in the Loop. -func (l *Loop) NumChains() int { - if l.IsEmpty() { - return 0 - } - return 1 -} - -// Chain returns the i-th edge chain in the Shape. -func (l *Loop) Chain(chainID int) Chain { - return Chain{0, l.NumEdges()} -} - -// ChainEdge returns the j-th edge of the i-th edge chain. -func (l *Loop) ChainEdge(chainID, offset int) Edge { - return Edge{l.Vertex(offset), l.Vertex(offset + 1)} -} - -// ChainPosition returns a ChainPosition pair (i, j) such that edgeID is the -// j-th edge of the Loop. -func (l *Loop) ChainPosition(edgeID int) ChainPosition { - return ChainPosition{0, edgeID} -} - -// Dimension returns the dimension of the geometry represented by this Loop. -func (l *Loop) Dimension() int { return 2 } - -func (l *Loop) typeTag() typeTag { return typeTagNone } - -func (l *Loop) privateInterface() {} - -// IsEmpty reports true if this is the special empty loop that contains no points. -func (l *Loop) IsEmpty() bool { - return l.isEmptyOrFull() && !l.ContainsOrigin() -} - -// IsFull reports true if this is the special full loop that contains all points. -func (l *Loop) IsFull() bool { - return l.isEmptyOrFull() && l.ContainsOrigin() -} - -// isEmptyOrFull reports true if this loop is either the "empty" or "full" special loops. -func (l *Loop) isEmptyOrFull() bool { - return len(l.vertices) == 1 -} - -// Vertices returns the vertices in the loop. -func (l *Loop) Vertices() []Point { - return l.vertices -} - -// RectBound returns a tight bounding rectangle. If the loop contains the point, -// the bound also contains it. -func (l *Loop) RectBound() Rect { - return l.bound -} - -// CapBound returns a bounding cap that may have more padding than the corresponding -// RectBound. The bound is conservative such that if the loop contains a point P, -// the bound also contains it. -func (l *Loop) CapBound() Cap { - return l.bound.CapBound() -} - -// Vertex returns the vertex for the given index. For convenience, the vertex indices -// wrap automatically for methods that do index math such as Edge. -// i.e., Vertex(NumEdges() + n) is the same as Vertex(n). -func (l *Loop) Vertex(i int) Point { - return l.vertices[i%len(l.vertices)] -} - -// OrientedVertex returns the vertex in reverse order if the loop represents a polygon -// hole. For example, arguments 0, 1, 2 are mapped to vertices n-1, n-2, n-3, where -// n == len(vertices). This ensures that the interior of the polygon is always to -// the left of the vertex chain. -// -// This requires: 0 <= i < 2 * len(vertices) -func (l *Loop) OrientedVertex(i int) Point { - j := i - len(l.vertices) - if j < 0 { - j = i - } - if l.IsHole() { - j = len(l.vertices) - 1 - j - } - return l.Vertex(j) -} - -// NumVertices returns the number of vertices in this loop. -func (l *Loop) NumVertices() int { - return len(l.vertices) -} - -// bruteForceContainsPoint reports if the given point is contained by this loop. -// This method does not use the ShapeIndex, so it is only preferable below a certain -// size of loop. -func (l *Loop) bruteForceContainsPoint(p Point) bool { - origin := OriginPoint() - inside := l.originInside - crosser := NewChainEdgeCrosser(origin, p, l.Vertex(0)) - for i := 1; i <= len(l.vertices); i++ { // add vertex 0 twice - inside = inside != crosser.EdgeOrVertexChainCrossing(l.Vertex(i)) - } - return inside -} - -// ContainsPoint returns true if the loop contains the point. -func (l *Loop) ContainsPoint(p Point) bool { - if !l.index.IsFresh() && !l.bound.ContainsPoint(p) { - return false - } - - // For small loops it is faster to just check all the crossings. We also - // use this method during loop initialization because InitOriginAndBound() - // calls Contains() before InitIndex(). Otherwise, we keep track of the - // number of calls to Contains() and only build the index when enough calls - // have been made so that we think it is worth the effort. Note that the - // code below is structured so that if many calls are made in parallel only - // one thread builds the index, while the rest continue using brute force - // until the index is actually available. - - const maxBruteForceVertices = 32 - // TODO(roberts): add unindexed contains calls tracking - - if len(l.index.shapes) == 0 || // Index has not been initialized yet. - len(l.vertices) <= maxBruteForceVertices { - return l.bruteForceContainsPoint(p) - } - - // Otherwise, look up the point in the index. - it := l.index.Iterator() - if !it.LocatePoint(p) { - return false - } - return l.iteratorContainsPoint(it, p) -} - -// ContainsCell reports whether the given Cell is contained by this Loop. -func (l *Loop) ContainsCell(target Cell) bool { - it := l.index.Iterator() - relation := it.LocateCellID(target.ID()) - - // If "target" is disjoint from all index cells, it is not contained. - // Similarly, if "target" is subdivided into one or more index cells then it - // is not contained, since index cells are subdivided only if they (nearly) - // intersect a sufficient number of edges. (But note that if "target" itself - // is an index cell then it may be contained, since it could be a cell with - // no edges in the loop interior.) - if relation != Indexed { - return false - } - - // Otherwise check if any edges intersect "target". - if l.boundaryApproxIntersects(it, target) { - return false - } - - // Otherwise check if the loop contains the center of "target". - return l.iteratorContainsPoint(it, target.Center()) -} - -// IntersectsCell reports whether this Loop intersects the given cell. -func (l *Loop) IntersectsCell(target Cell) bool { - it := l.index.Iterator() - relation := it.LocateCellID(target.ID()) - - // If target does not overlap any index cell, there is no intersection. - if relation == Disjoint { - return false - } - // If target is subdivided into one or more index cells, there is an - // intersection to within the ShapeIndex error bound (see Contains). - if relation == Subdivided { - return true - } - // If target is an index cell, there is an intersection because index cells - // are created only if they have at least one edge or they are entirely - // contained by the loop. - if it.CellID() == target.id { - return true - } - // Otherwise check if any edges intersect target. - if l.boundaryApproxIntersects(it, target) { - return true - } - // Otherwise check if the loop contains the center of target. - return l.iteratorContainsPoint(it, target.Center()) -} - -// CellUnionBound computes a covering of the Loop. -func (l *Loop) CellUnionBound() []CellID { - return l.CapBound().CellUnionBound() -} - -// boundaryApproxIntersects reports if the loop's boundary intersects target. -// It may also return true when the loop boundary does not intersect target but -// some edge comes within the worst-case error tolerance. -// -// This requires that it.Locate(target) returned Indexed. -func (l *Loop) boundaryApproxIntersects(it *ShapeIndexIterator, target Cell) bool { - aClipped := it.IndexCell().findByShapeID(0) - - // If there are no edges, there is no intersection. - if len(aClipped.edges) == 0 { - return false - } - - // We can save some work if target is the index cell itself. - if it.CellID() == target.ID() { - return true - } - - // Otherwise check whether any of the edges intersect target. - maxError := (faceClipErrorUVCoord + intersectsRectErrorUVDist) - bound := target.BoundUV().ExpandedByMargin(maxError) - for _, ai := range aClipped.edges { - v0, v1, ok := ClipToPaddedFace(l.Vertex(ai), l.Vertex(ai+1), target.Face(), maxError) - if ok && edgeIntersectsRect(v0, v1, bound) { - return true - } - } - return false -} - -// iteratorContainsPoint reports if the iterator that is positioned at the ShapeIndexCell -// that may contain p, contains the point p. -func (l *Loop) iteratorContainsPoint(it *ShapeIndexIterator, p Point) bool { - // Test containment by drawing a line segment from the cell center to the - // given point and counting edge crossings. - aClipped := it.IndexCell().findByShapeID(0) - inside := aClipped.containsCenter - if len(aClipped.edges) > 0 { - center := it.Center() - crosser := NewEdgeCrosser(center, p) - aiPrev := -2 - for _, ai := range aClipped.edges { - if ai != aiPrev+1 { - crosser.RestartAt(l.Vertex(ai)) - } - aiPrev = ai - inside = inside != crosser.EdgeOrVertexChainCrossing(l.Vertex(ai+1)) - } - } - return inside -} - -// RegularLoop creates a loop with the given number of vertices, all -// located on a circle of the specified radius around the given center. -func RegularLoop(center Point, radius s1.Angle, numVertices int) *Loop { - return RegularLoopForFrame(getFrame(center), radius, numVertices) -} - -// RegularLoopForFrame creates a loop centered around the z-axis of the given -// coordinate frame, with the first vertex in the direction of the positive x-axis. -func RegularLoopForFrame(frame matrix3x3, radius s1.Angle, numVertices int) *Loop { - return LoopFromPoints(regularPointsForFrame(frame, radius, numVertices)) -} - -// CanonicalFirstVertex returns a first index and a direction (either +1 or -1) -// such that the vertex sequence (first, first+dir, ..., first+(n-1)*dir) does -// not change when the loop vertex order is rotated or inverted. This allows the -// loop vertices to be traversed in a canonical order. The return values are -// chosen such that (first, ..., first+n*dir) are in the range [0, 2*n-1] as -// expected by the Vertex method. -func (l *Loop) CanonicalFirstVertex() (firstIdx, direction int) { - firstIdx = 0 - n := len(l.vertices) - for i := 1; i < n; i++ { - if l.Vertex(i).Cmp(l.Vertex(firstIdx).Vector) == -1 { - firstIdx = i - } - } - - // 0 <= firstIdx <= n-1, so (firstIdx+n*dir) <= 2*n-1. - if l.Vertex(firstIdx+1).Cmp(l.Vertex(firstIdx+n-1).Vector) == -1 { - return firstIdx, 1 - } - - // n <= firstIdx <= 2*n-1, so (firstIdx+n*dir) >= 0. - firstIdx += n - return firstIdx, -1 -} - -// TurningAngle returns the sum of the turning angles at each vertex. The return -// value is positive if the loop is counter-clockwise, negative if the loop is -// clockwise, and zero if the loop is a great circle. Degenerate and -// nearly-degenerate loops are handled consistently with Sign. So for example, -// if a loop has zero area (i.e., it is a very small CCW loop) then the turning -// angle will always be negative. -// -// This quantity is also called the "geodesic curvature" of the loop. -func (l *Loop) TurningAngle() float64 { - // For empty and full loops, we return the limit value as the loop area - // approaches 0 or 4*Pi respectively. - if l.isEmptyOrFull() { - if l.ContainsOrigin() { - return -2 * math.Pi - } - return 2 * math.Pi - } - - // Don't crash even if the loop is not well-defined. - if len(l.vertices) < 3 { - return 0 - } - - // To ensure that we get the same result when the vertex order is rotated, - // and that the result is negated when the vertex order is reversed, we need - // to add up the individual turn angles in a consistent order. (In general, - // adding up a set of numbers in a different order can change the sum due to - // rounding errors.) - // - // Furthermore, if we just accumulate an ordinary sum then the worst-case - // error is quadratic in the number of vertices. (This can happen with - // spiral shapes, where the partial sum of the turning angles can be linear - // in the number of vertices.) To avoid this we use the Kahan summation - // algorithm (http://en.wikipedia.org/wiki/Kahan_summation_algorithm). - n := len(l.vertices) - i, dir := l.CanonicalFirstVertex() - sum := TurnAngle(l.Vertex((i+n-dir)%n), l.Vertex(i), l.Vertex((i+dir)%n)) - - compensation := s1.Angle(0) - for n-1 > 0 { - i += dir - angle := TurnAngle(l.Vertex(i-dir), l.Vertex(i), l.Vertex(i+dir)) - oldSum := sum - angle += compensation - sum += angle - compensation = (oldSum - sum) + angle - n-- - } - - const maxCurvature = 2*math.Pi - 4*dblEpsilon - - return math.Max(-maxCurvature, math.Min(maxCurvature, float64(dir)*float64(sum+compensation))) -} - -// turningAngleMaxError return the maximum error in TurningAngle. The value is not -// constant; it depends on the loop. -func (l *Loop) turningAngleMaxError() float64 { - // The maximum error can be bounded as follows: - // 3.00 * dblEpsilon for RobustCrossProd(b, a) - // 3.00 * dblEpsilon for RobustCrossProd(c, b) - // 3.25 * dblEpsilon for Angle() - // 2.00 * dblEpsilon for each addition in the Kahan summation - // ------------------ - // 11.25 * dblEpsilon - maxErrorPerVertex := 11.25 * dblEpsilon - return maxErrorPerVertex * float64(len(l.vertices)) -} - -// IsHole reports whether this loop represents a hole in its containing polygon. -func (l *Loop) IsHole() bool { return l.depth&1 != 0 } - -// Sign returns -1 if this Loop represents a hole in its containing polygon, and +1 otherwise. -func (l *Loop) Sign() int { - if l.IsHole() { - return -1 - } - return 1 -} - -// IsNormalized reports whether the loop area is at most 2*pi. Degenerate loops are -// handled consistently with Sign, i.e., if a loop can be -// expressed as the union of degenerate or nearly-degenerate CCW triangles, -// then it will always be considered normalized. -func (l *Loop) IsNormalized() bool { - // Optimization: if the longitude span is less than 180 degrees, then the - // loop covers less than half the sphere and is therefore normalized. - if l.bound.Lng.Length() < math.Pi { - return true - } - - // We allow some error so that hemispheres are always considered normalized. - // TODO(roberts): This is no longer required by the Polygon implementation, - // so alternatively we could create the invariant that a loop is normalized - // if and only if its complement is not normalized. - return l.TurningAngle() >= -l.turningAngleMaxError() -} - -// Normalize inverts the loop if necessary so that the area enclosed by the loop -// is at most 2*pi. -func (l *Loop) Normalize() { - if !l.IsNormalized() { - l.Invert() - } -} - -// Invert reverses the order of the loop vertices, effectively complementing the -// region represented by the loop. For example, the loop ABCD (with edges -// AB, BC, CD, DA) becomes the loop DCBA (with edges DC, CB, BA, AD). -// Notice that the last edge is the same in both cases except that its -// direction has been reversed. -func (l *Loop) Invert() { - l.index.Reset() - if l.isEmptyOrFull() { - if l.IsFull() { - l.vertices[0] = emptyLoopPoint - } else { - l.vertices[0] = fullLoopPoint - } - } else { - // For non-special loops, reverse the slice of vertices. - for i := len(l.vertices)/2 - 1; i >= 0; i-- { - opp := len(l.vertices) - 1 - i - l.vertices[i], l.vertices[opp] = l.vertices[opp], l.vertices[i] - } - } - - // originInside must be set correctly before building the ShapeIndex. - l.originInside = !l.originInside - if l.bound.Lat.Lo > -math.Pi/2 && l.bound.Lat.Hi < math.Pi/2 { - // The complement of this loop contains both poles. - l.bound = FullRect() - l.subregionBound = l.bound - } else { - l.initBound() - } - l.index.Add(l) -} - -// findVertex returns the index of the vertex at the given Point in the range -// 1..numVertices, and a boolean indicating if a vertex was found. -func (l *Loop) findVertex(p Point) (index int, ok bool) { - const notFound = 0 - if len(l.vertices) < 10 { - // Exhaustive search for loops below a small threshold. - for i := 1; i <= len(l.vertices); i++ { - if l.Vertex(i) == p { - return i, true - } - } - return notFound, false - } - - it := l.index.Iterator() - if !it.LocatePoint(p) { - return notFound, false - } - - aClipped := it.IndexCell().findByShapeID(0) - for i := aClipped.numEdges() - 1; i >= 0; i-- { - ai := aClipped.edges[i] - if l.Vertex(ai) == p { - if ai == 0 { - return len(l.vertices), true - } - return ai, true - } - - if l.Vertex(ai+1) == p { - return ai + 1, true - } - } - return notFound, false -} - -// ContainsNested reports whether the given loops is contained within this loop. -// This function does not test for edge intersections. The two loops must meet -// all of the Polygon requirements; for example this implies that their -// boundaries may not cross or have any shared edges (although they may have -// shared vertices). -func (l *Loop) ContainsNested(other *Loop) bool { - if !l.subregionBound.Contains(other.bound) { - return false - } - - // Special cases to handle either loop being empty or full. Also bail out - // when B has no vertices to avoid heap overflow on the vertex(1) call - // below. (This method is called during polygon initialization before the - // client has an opportunity to call IsValid().) - if l.isEmptyOrFull() || other.NumVertices() < 2 { - return l.IsFull() || other.IsEmpty() - } - - // We are given that A and B do not share any edges, and that either one - // loop contains the other or they do not intersect. - m, ok := l.findVertex(other.Vertex(1)) - if !ok { - // Since other.vertex(1) is not shared, we can check whether A contains it. - return l.ContainsPoint(other.Vertex(1)) - } - - // Check whether the edge order around other.Vertex(1) is compatible with - // A containing B. - return WedgeContains(l.Vertex(m-1), l.Vertex(m), l.Vertex(m+1), other.Vertex(0), other.Vertex(2)) -} - -// surfaceIntegralFloat64 computes the oriented surface integral of some quantity f(x) -// over the loop interior, given a function f(A,B,C) that returns the -// corresponding integral over the spherical triangle ABC. Here "oriented -// surface integral" means: -// -// (1) f(A,B,C) must be the integral of f if ABC is counterclockwise, -// -// and the integral of -f if ABC is clockwise. -// -// (2) The result of this function is *either* the integral of f over the -// -// loop interior, or the integral of (-f) over the loop exterior. -// -// Note that there are at least two common situations where it easy to work -// around property (2) above: -// -// - If the integral of f over the entire sphere is zero, then it doesn't -// matter which case is returned because they are always equal. -// -// - If f is non-negative, then it is easy to detect when the integral over -// the loop exterior has been returned, and the integral over the loop -// interior can be obtained by adding the integral of f over the entire -// unit sphere (a constant) to the result. -// -// Any changes to this method may need corresponding changes to surfaceIntegralPoint as well. -func (l *Loop) surfaceIntegralFloat64(f func(a, b, c Point) float64) float64 { - // We sum f over a collection T of oriented triangles, possibly - // overlapping. Let the sign of a triangle be +1 if it is CCW and -1 - // otherwise, and let the sign of a point x be the sum of the signs of the - // triangles containing x. Then the collection of triangles T is chosen - // such that either: - // - // (1) Each point in the loop interior has sign +1, and sign 0 otherwise; or - // (2) Each point in the loop exterior has sign -1, and sign 0 otherwise. - // - // The triangles basically consist of a fan from vertex 0 to every loop - // edge that does not include vertex 0. These triangles will always satisfy - // either (1) or (2). However, what makes this a bit tricky is that - // spherical edges become numerically unstable as their length approaches - // 180 degrees. Of course there is not much we can do if the loop itself - // contains such edges, but we would like to make sure that all the triangle - // edges under our control (i.e., the non-loop edges) are stable. For - // example, consider a loop around the equator consisting of four equally - // spaced points. This is a well-defined loop, but we cannot just split it - // into two triangles by connecting vertex 0 to vertex 2. - // - // We handle this type of situation by moving the origin of the triangle fan - // whenever we are about to create an unstable edge. We choose a new - // location for the origin such that all relevant edges are stable. We also - // create extra triangles with the appropriate orientation so that the sum - // of the triangle signs is still correct at every point. - - // The maximum length of an edge for it to be considered numerically stable. - // The exact value is fairly arbitrary since it depends on the stability of - // the function f. The value below is quite conservative but could be - // reduced further if desired. - const maxLength = math.Pi - 1e-5 - - var sum float64 - origin := l.Vertex(0) - for i := 1; i+1 < len(l.vertices); i++ { - // Let V_i be vertex(i), let O be the current origin, and let length(A,B) - // be the length of edge (A,B). At the start of each loop iteration, the - // "leading edge" of the triangle fan is (O,V_i), and we want to extend - // the triangle fan so that the leading edge is (O,V_i+1). - // - // Invariants: - // 1. length(O,V_i) < maxLength for all (i > 1). - // 2. Either O == V_0, or O is approximately perpendicular to V_0. - // 3. "sum" is the oriented integral of f over the area defined by - // (O, V_0, V_1, ..., V_i). - if l.Vertex(i+1).Angle(origin.Vector) > maxLength { - // We are about to create an unstable edge, so choose a new origin O' - // for the triangle fan. - oldOrigin := origin - if origin == l.Vertex(0) { - // The following point is well-separated from V_i and V_0 (and - // therefore V_i+1 as well). - origin = Point{l.Vertex(0).PointCross(l.Vertex(i)).Normalize()} - } else if l.Vertex(i).Angle(l.Vertex(0).Vector) < maxLength { - // All edges of the triangle (O, V_0, V_i) are stable, so we can - // revert to using V_0 as the origin. - origin = l.Vertex(0) - } else { - // (O, V_i+1) and (V_0, V_i) are antipodal pairs, and O and V_0 are - // perpendicular. Therefore V_0.CrossProd(O) is approximately - // perpendicular to all of {O, V_0, V_i, V_i+1}, and we can choose - // this point O' as the new origin. - origin = Point{l.Vertex(0).Cross(oldOrigin.Vector)} - - // Advance the edge (V_0,O) to (V_0,O'). - sum += f(l.Vertex(0), oldOrigin, origin) - } - // Advance the edge (O,V_i) to (O',V_i). - sum += f(oldOrigin, l.Vertex(i), origin) - } - // Advance the edge (O,V_i) to (O,V_i+1). - sum += f(origin, l.Vertex(i), l.Vertex(i+1)) - } - // If the origin is not V_0, we need to sum one more triangle. - if origin != l.Vertex(0) { - // Advance the edge (O,V_n-1) to (O,V_0). - sum += f(origin, l.Vertex(len(l.vertices)-1), l.Vertex(0)) - } - return sum -} - -// surfaceIntegralPoint mirrors the surfaceIntegralFloat64 method but over Points; -// see that method for commentary. The C++ version uses a templated method. -// Any changes to this method may need corresponding changes to surfaceIntegralFloat64 as well. -func (l *Loop) surfaceIntegralPoint(f func(a, b, c Point) Point) Point { - const maxLength = math.Pi - 1e-5 - var sum r3.Vector - - origin := l.Vertex(0) - for i := 1; i+1 < len(l.vertices); i++ { - if l.Vertex(i+1).Angle(origin.Vector) > maxLength { - oldOrigin := origin - if origin == l.Vertex(0) { - origin = Point{l.Vertex(0).PointCross(l.Vertex(i)).Normalize()} - } else if l.Vertex(i).Angle(l.Vertex(0).Vector) < maxLength { - origin = l.Vertex(0) - } else { - origin = Point{l.Vertex(0).Cross(oldOrigin.Vector)} - sum = sum.Add(f(l.Vertex(0), oldOrigin, origin).Vector) - } - sum = sum.Add(f(oldOrigin, l.Vertex(i), origin).Vector) - } - sum = sum.Add(f(origin, l.Vertex(i), l.Vertex(i+1)).Vector) - } - if origin != l.Vertex(0) { - sum = sum.Add(f(origin, l.Vertex(len(l.vertices)-1), l.Vertex(0)).Vector) - } - return Point{sum} -} - -// Area returns the area of the loop interior, i.e. the region on the left side of -// the loop. The return value is between 0 and 4*pi. (Note that the return -// value is not affected by whether this loop is a "hole" or a "shell".) -func (l *Loop) Area() float64 { - // It is surprisingly difficult to compute the area of a loop robustly. The - // main issues are (1) whether degenerate loops are considered to be CCW or - // not (i.e., whether their area is close to 0 or 4*pi), and (2) computing - // the areas of small loops with good relative accuracy. - // - // With respect to degeneracies, we would like Area to be consistent - // with ContainsPoint in that loops that contain many points - // should have large areas, and loops that contain few points should have - // small areas. For example, if a degenerate triangle is considered CCW - // according to s2predicates Sign, then it will contain very few points and - // its area should be approximately zero. On the other hand if it is - // considered clockwise, then it will contain virtually all points and so - // its area should be approximately 4*pi. - // - // More precisely, let U be the set of Points for which IsUnitLength - // is true, let P(U) be the projection of those points onto the mathematical - // unit sphere, and let V(P(U)) be the Voronoi diagram of the projected - // points. Then for every loop x, we would like Area to approximately - // equal the sum of the areas of the Voronoi regions of the points p for - // which x.ContainsPoint(p) is true. - // - // The second issue is that we want to compute the area of small loops - // accurately. This requires having good relative precision rather than - // good absolute precision. For example, if the area of a loop is 1e-12 and - // the error is 1e-15, then the area only has 3 digits of accuracy. (For - // reference, 1e-12 is about 40 square meters on the surface of the earth.) - // We would like to have good relative accuracy even for small loops. - // - // To achieve these goals, we combine two different methods of computing the - // area. This first method is based on the Gauss-Bonnet theorem, which says - // that the area enclosed by the loop equals 2*pi minus the total geodesic - // curvature of the loop (i.e., the sum of the "turning angles" at all the - // loop vertices). The big advantage of this method is that as long as we - // use Sign to compute the turning angle at each vertex, then - // degeneracies are always handled correctly. In other words, if a - // degenerate loop is CCW according to the symbolic perturbations used by - // Sign, then its turning angle will be approximately 2*pi. - // - // The disadvantage of the Gauss-Bonnet method is that its absolute error is - // about 2e-15 times the number of vertices (see turningAngleMaxError). - // So, it cannot compute the area of small loops accurately. - // - // The second method is based on splitting the loop into triangles and - // summing the area of each triangle. To avoid the difficulty and expense - // of decomposing the loop into a union of non-overlapping triangles, - // instead we compute a signed sum over triangles that may overlap (see the - // comments for surfaceIntegral). The advantage of this method - // is that the area of each triangle can be computed with much better - // relative accuracy (using l'Huilier's theorem). The disadvantage is that - // the result is a signed area: CCW loops may yield a small positive value, - // while CW loops may yield a small negative value (which is converted to a - // positive area by adding 4*pi). This means that small errors in computing - // the signed area may translate into a very large error in the result (if - // the sign of the sum is incorrect). - // - // So, our strategy is to combine these two methods as follows. First we - // compute the area using the "signed sum over triangles" approach (since it - // is generally more accurate). We also estimate the maximum error in this - // result. If the signed area is too close to zero (i.e., zero is within - // the error bounds), then we double-check the sign of the result using the - // Gauss-Bonnet method. (In fact we just call IsNormalized, which is - // based on this method.) If the two methods disagree, we return either 0 - // or 4*pi based on the result of IsNormalized. Otherwise we return the - // area that we computed originally. - if l.isEmptyOrFull() { - if l.ContainsOrigin() { - return 4 * math.Pi - } - return 0 - } - area := l.surfaceIntegralFloat64(SignedArea) - - // TODO(roberts): This error estimate is very approximate. There are two - // issues: (1) SignedArea needs some improvements to ensure that its error - // is actually never higher than GirardArea, and (2) although the number of - // triangles in the sum is typically N-2, in theory it could be as high as - // 2*N for pathological inputs. But in other respects this error bound is - // very conservative since it assumes that the maximum error is achieved on - // every triangle. - maxError := l.turningAngleMaxError() - - // The signed area should be between approximately -4*pi and 4*pi. - if area < 0 { - // We have computed the negative of the area of the loop exterior. - area += 4 * math.Pi - } - - if area > 4*math.Pi { - area = 4 * math.Pi - } - if area < 0 { - area = 0 - } - - // If the area is close enough to zero or 4*pi so that the loop orientation - // is ambiguous, then we compute the loop orientation explicitly. - if area < maxError && !l.IsNormalized() { - return 4 * math.Pi - } else if area > (4*math.Pi-maxError) && l.IsNormalized() { - return 0 - } - - return area -} - -// Centroid returns the true centroid of the loop multiplied by the area of the -// loop. The result is not unit length, so you may want to normalize it. Also -// note that in general, the centroid may not be contained by the loop. -// -// We prescale by the loop area for two reasons: (1) it is cheaper to -// compute this way, and (2) it makes it easier to compute the centroid of -// more complicated shapes (by splitting them into disjoint regions and -// adding their centroids). -// -// Note that the return value is not affected by whether this loop is a -// "hole" or a "shell". -func (l *Loop) Centroid() Point { - // surfaceIntegralPoint() returns either the integral of position over loop - // interior, or the negative of the integral of position over the loop - // exterior. But these two values are the same (!), because the integral of - // position over the entire sphere is (0, 0, 0). - return l.surfaceIntegralPoint(TrueCentroid) -} - -// Encode encodes the Loop. -func (l Loop) Encode(w io.Writer) error { - e := &encoder{w: w} - l.encode(e) - return e.err -} - -func (l Loop) encode(e *encoder) { - e.writeInt8(encodingVersion) - e.writeUint32(uint32(len(l.vertices))) - for _, v := range l.vertices { - e.writeFloat64(v.X) - e.writeFloat64(v.Y) - e.writeFloat64(v.Z) - } - - e.writeBool(l.originInside) - e.writeInt32(int32(l.depth)) - - // Encode the bound. - l.bound.encode(e) -} - -// Decode decodes a loop. -func (l *Loop) Decode(r io.Reader) error { - *l = Loop{} - d := &decoder{r: asByteReader(r)} - l.decode(d) - return d.err -} - -func (l *Loop) decode(d *decoder) { - version := int8(d.readUint8()) - if d.err != nil { - return - } - if version != encodingVersion { - d.err = fmt.Errorf("cannot decode version %d", version) - return - } - - // Empty loops are explicitly allowed here: a newly created loop has zero vertices - // and such loops encode and decode properly. - nvertices := d.readUint32() - if nvertices > maxEncodedVertices { - if d.err == nil { - d.err = fmt.Errorf("too many vertices (%d; max is %d)", nvertices, maxEncodedVertices) - - } - return - } - l.vertices = make([]Point, nvertices) - for i := range l.vertices { - l.vertices[i].X = d.readFloat64() - l.vertices[i].Y = d.readFloat64() - l.vertices[i].Z = d.readFloat64() - } - l.index = NewShapeIndex() - l.originInside = d.readBool() - l.depth = int(d.readUint32()) - l.bound.decode(d) - l.subregionBound = ExpandForSubregions(l.bound) - - l.index.Add(l) -} - -// Bitmasks to read from properties. -const ( - originInside = 1 << iota - boundEncoded -) - -func (l *Loop) xyzFaceSiTiVertices() []xyzFaceSiTi { - ret := make([]xyzFaceSiTi, len(l.vertices)) - for i, v := range l.vertices { - ret[i].xyz = v - ret[i].face, ret[i].si, ret[i].ti, ret[i].level = xyzToFaceSiTi(v) - } - return ret -} - -func (l *Loop) encodeCompressed(e *encoder, snapLevel int, vertices []xyzFaceSiTi) { - if len(l.vertices) != len(vertices) { - panic("encodeCompressed: vertices must be the same length as l.vertices") - } - if len(vertices) > maxEncodedVertices { - if e.err == nil { - e.err = fmt.Errorf("too many vertices (%d; max is %d)", len(vertices), maxEncodedVertices) - } - return - } - e.writeUvarint(uint64(len(vertices))) - encodePointsCompressed(e, vertices, snapLevel) - - props := l.compressedEncodingProperties() - e.writeUvarint(props) - e.writeUvarint(uint64(l.depth)) - if props&boundEncoded != 0 { - l.bound.encode(e) - } -} - -func (l *Loop) compressedEncodingProperties() uint64 { - var properties uint64 - if l.originInside { - properties |= originInside - } - - // Write whether there is a bound so we can change the threshold later. - // Recomputing the bound multiplies the decode time taken per vertex - // by a factor of about 3.5. Without recomputing the bound, decode - // takes approximately 125 ns / vertex. A loop with 63 vertices - // encoded without the bound will take ~30us to decode, which is - // acceptable. At ~3.5 bytes / vertex without the bound, adding - // the bound will increase the size by <15%, which is also acceptable. - const minVerticesForBound = 64 - if len(l.vertices) >= minVerticesForBound { - properties |= boundEncoded - } - - return properties -} - -func (l *Loop) decodeCompressed(d *decoder, snapLevel int) { - nvertices := d.readUvarint() - if d.err != nil { - return - } - if nvertices > maxEncodedVertices { - d.err = fmt.Errorf("too many vertices (%d; max is %d)", nvertices, maxEncodedVertices) - return - } - l.vertices = make([]Point, nvertices) - decodePointsCompressed(d, snapLevel, l.vertices) - properties := d.readUvarint() - - // Make sure values are valid before using. - if d.err != nil { - return - } - - l.index = NewShapeIndex() - l.originInside = (properties & originInside) != 0 - - l.depth = int(d.readUvarint()) - - if (properties & boundEncoded) != 0 { - l.bound.decode(d) - if d.err != nil { - return - } - l.subregionBound = ExpandForSubregions(l.bound) - } else { - l.initBound() - } - - l.index.Add(l) -} - -// crossingTarget is an enum representing the possible crossing target cases for relations. -type crossingTarget int - -const ( - crossingTargetDontCare crossingTarget = iota - crossingTargetDontCross - crossingTargetCross -) - -// loopRelation defines the interface for checking a type of relationship between two loops. -// Some examples of relations are Contains, Intersects, or CompareBoundary. -type loopRelation interface { - // Optionally, aCrossingTarget and bCrossingTarget can specify an early-exit - // condition for the loop relation. If any point P is found such that - // - // A.ContainsPoint(P) == aCrossingTarget() && - // B.ContainsPoint(P) == bCrossingTarget() - // - // then the loop relation is assumed to be the same as if a pair of crossing - // edges were found. For example, the ContainsPoint relation has - // - // aCrossingTarget() == crossingTargetDontCross - // bCrossingTarget() == crossingTargetCross - // - // because if A.ContainsPoint(P) == false and B.ContainsPoint(P) == true - // for any point P, then it is equivalent to finding an edge crossing (i.e., - // since Contains returns false in both cases). - // - // Loop relations that do not have an early-exit condition of this form - // should return crossingTargetDontCare for both crossing targets. - - // aCrossingTarget reports whether loop A crosses the target point with - // the given relation type. - aCrossingTarget() crossingTarget - // bCrossingTarget reports whether loop B crosses the target point with - // the given relation type. - bCrossingTarget() crossingTarget - - // wedgesCross reports if a shared vertex ab1 and the two associated wedges - // (a0, ab1, b2) and (b0, ab1, b2) are equivalent to an edge crossing. - // The loop relation is also allowed to maintain its own internal state, and - // can return true if it observes any sequence of wedges that are equivalent - // to an edge crossing. - wedgesCross(a0, ab1, a2, b0, b2 Point) bool -} - -// loopCrosser is a helper type for determining whether two loops cross. -// It is instantiated twice for each pair of loops to be tested, once for the -// pair (A,B) and once for the pair (B,A), in order to be able to process -// edges in either loop nesting order. -type loopCrosser struct { - a, b *Loop - relation loopRelation - swapped bool - aCrossingTarget crossingTarget - bCrossingTarget crossingTarget - - // state maintained by startEdge and edgeCrossesCell. - crosser *EdgeCrosser - aj, bjPrev int - - // temporary data declared here to avoid repeated memory allocations. - bQuery *CrossingEdgeQuery - bCells []*ShapeIndexCell -} - -// newLoopCrosser creates a loopCrosser from the given values. If swapped is true, -// the loops A and B have been swapped. This affects how arguments are passed to -// the given loop relation, since for example A.Contains(B) is not the same as -// B.Contains(A). -func newLoopCrosser(a, b *Loop, relation loopRelation, swapped bool) *loopCrosser { - l := &loopCrosser{ - a: a, - b: b, - relation: relation, - swapped: swapped, - aCrossingTarget: relation.aCrossingTarget(), - bCrossingTarget: relation.bCrossingTarget(), - bQuery: NewCrossingEdgeQuery(b.index), - } - if swapped { - l.aCrossingTarget, l.bCrossingTarget = l.bCrossingTarget, l.aCrossingTarget - } - - return l -} - -// startEdge sets the crossers state for checking the given edge of loop A. -func (l *loopCrosser) startEdge(aj int) { - l.crosser = NewEdgeCrosser(l.a.Vertex(aj), l.a.Vertex(aj+1)) - l.aj = aj - l.bjPrev = -2 -} - -// edgeCrossesCell reports whether the current edge of loop A has any crossings with -// edges of the index cell of loop B. -func (l *loopCrosser) edgeCrossesCell(bClipped *clippedShape) bool { - // Test the current edge of A against all edges of bClipped - bNumEdges := bClipped.numEdges() - for j := 0; j < bNumEdges; j++ { - bj := bClipped.edges[j] - if bj != l.bjPrev+1 { - l.crosser.RestartAt(l.b.Vertex(bj)) - } - l.bjPrev = bj - if crossing := l.crosser.ChainCrossingSign(l.b.Vertex(bj + 1)); crossing == DoNotCross { - continue - } else if crossing == Cross { - return true - } - - // We only need to check each shared vertex once, so we only - // consider the case where l.aVertex(l.aj+1) == l.b.Vertex(bj+1). - if l.a.Vertex(l.aj+1) == l.b.Vertex(bj+1) { - if l.swapped { - if l.relation.wedgesCross(l.b.Vertex(bj), l.b.Vertex(bj+1), l.b.Vertex(bj+2), l.a.Vertex(l.aj), l.a.Vertex(l.aj+2)) { - return true - } - } else { - if l.relation.wedgesCross(l.a.Vertex(l.aj), l.a.Vertex(l.aj+1), l.a.Vertex(l.aj+2), l.b.Vertex(bj), l.b.Vertex(bj+2)) { - return true - } - } - } - } - - return false -} - -// cellCrossesCell reports whether there are any edge crossings or wedge crossings -// within the two given cells. -func (l *loopCrosser) cellCrossesCell(aClipped, bClipped *clippedShape) bool { - // Test all edges of aClipped against all edges of bClipped. - for _, edge := range aClipped.edges { - l.startEdge(edge) - if l.edgeCrossesCell(bClipped) { - return true - } - } - - return false -} - -// cellCrossesAnySubcell reports whether given an index cell of A, if there are any -// edge or wedge crossings with any index cell of B contained within bID. -func (l *loopCrosser) cellCrossesAnySubcell(aClipped *clippedShape, bID CellID) bool { - // Test all edges of aClipped against all edges of B. The relevant B - // edges are guaranteed to be children of bID, which lets us find the - // correct index cells more efficiently. - bRoot := PaddedCellFromCellID(bID, 0) - for _, aj := range aClipped.edges { - // Use an CrossingEdgeQuery starting at bRoot to find the index cells - // of B that might contain crossing edges. - l.bCells = l.bQuery.getCells(l.a.Vertex(aj), l.a.Vertex(aj+1), bRoot) - if len(l.bCells) == 0 { - continue - } - l.startEdge(aj) - for c := 0; c < len(l.bCells); c++ { - if l.edgeCrossesCell(l.bCells[c].shapes[0]) { - return true - } - } - } - - return false -} - -// hasCrossing reports whether given two iterators positioned such that -// ai.cellID().ContainsCellID(bi.cellID()), there is an edge or wedge crossing -// anywhere within ai.cellID(). This function advances bi only past ai.cellID(). -func (l *loopCrosser) hasCrossing(ai, bi *rangeIterator) bool { - // If ai.CellID() intersects many edges of B, then it is faster to use - // CrossingEdgeQuery to narrow down the candidates. But if it intersects - // only a few edges, it is faster to check all the crossings directly. - // We handle this by advancing bi and keeping track of how many edges we - // would need to test. - const edgeQueryMinEdges = 20 // Tuned from benchmarks. - var totalEdges int - l.bCells = nil - - for { - if n := bi.it.IndexCell().shapes[0].numEdges(); n > 0 { - totalEdges += n - if totalEdges >= edgeQueryMinEdges { - // There are too many edges to test them directly, so use CrossingEdgeQuery. - if l.cellCrossesAnySubcell(ai.it.IndexCell().shapes[0], ai.cellID()) { - return true - } - bi.seekBeyond(ai) - return false - } - l.bCells = append(l.bCells, bi.indexCell()) - } - bi.next() - if bi.cellID() > ai.rangeMax { - break - } - } - - // Test all the edge crossings directly. - for _, c := range l.bCells { - if l.cellCrossesCell(ai.it.IndexCell().shapes[0], c.shapes[0]) { - return true - } - } - - return false -} - -// containsCenterMatches reports if the clippedShapes containsCenter boolean corresponds -// to the crossing target type given. (This is to work around C++ allowing false == 0, -// true == 1 type implicit conversions and comparisons) -func containsCenterMatches(a *clippedShape, target crossingTarget) bool { - return (!a.containsCenter && target == crossingTargetDontCross) || - (a.containsCenter && target == crossingTargetCross) -} - -// hasCrossingRelation reports whether given two iterators positioned such that -// ai.cellID().ContainsCellID(bi.cellID()), there is a crossing relationship -// anywhere within ai.cellID(). Specifically, this method returns true if there -// is an edge crossing, a wedge crossing, or a point P that matches both relations -// crossing targets. This function advances both iterators past ai.cellID. -func (l *loopCrosser) hasCrossingRelation(ai, bi *rangeIterator) bool { - aClipped := ai.it.IndexCell().shapes[0] - if aClipped.numEdges() != 0 { - // The current cell of A has at least one edge, so check for crossings. - if l.hasCrossing(ai, bi) { - return true - } - ai.next() - return false - } - - if containsCenterMatches(aClipped, l.aCrossingTarget) { - // The crossing target for A is not satisfied, so we skip over these cells of B. - bi.seekBeyond(ai) - ai.next() - return false - } - - // All points within ai.cellID() satisfy the crossing target for A, so it's - // worth iterating through the cells of B to see whether any cell - // centers also satisfy the crossing target for B. - for bi.cellID() <= ai.rangeMax { - bClipped := bi.it.IndexCell().shapes[0] - if containsCenterMatches(bClipped, l.bCrossingTarget) { - return true - } - bi.next() - } - ai.next() - return false -} - -// hasCrossingRelation checks all edges of loop A for intersection against all edges -// of loop B and reports if there are any that satisfy the given relation. If there -// is any shared vertex, the wedges centered at this vertex are sent to the given -// relation to be tested. -// -// If the two loop boundaries cross, this method is guaranteed to return -// true. It also returns true in certain cases if the loop relationship is -// equivalent to crossing. For example, if the relation is Contains and a -// point P is found such that B contains P but A does not contain P, this -// method will return true to indicate that the result is the same as though -// a pair of crossing edges were found (since Contains returns false in -// both cases). -// -// See Contains, Intersects and CompareBoundary for the three uses of this function. -func hasCrossingRelation(a, b *Loop, relation loopRelation) bool { - // We look for CellID ranges where the indexes of A and B overlap, and - // then test those edges for crossings. - ai := newRangeIterator(a.index) - bi := newRangeIterator(b.index) - - ab := newLoopCrosser(a, b, relation, false) // Tests edges of A against B - ba := newLoopCrosser(b, a, relation, true) // Tests edges of B against A - - for !ai.done() || !bi.done() { - if ai.rangeMax < bi.rangeMin { - // The A and B cells don't overlap, and A precedes B. - ai.seekTo(bi) - } else if bi.rangeMax < ai.rangeMin { - // The A and B cells don't overlap, and B precedes A. - bi.seekTo(ai) - } else { - // One cell contains the other. Determine which cell is larger. - abRelation := int64(ai.it.CellID().lsb() - bi.it.CellID().lsb()) - if abRelation > 0 { - // A's index cell is larger. - if ab.hasCrossingRelation(ai, bi) { - return true - } - } else if abRelation < 0 { - // B's index cell is larger. - if ba.hasCrossingRelation(bi, ai) { - return true - } - } else { - // The A and B cells are the same. Since the two cells - // have the same center point P, check whether P satisfies - // the crossing targets. - aClipped := ai.it.IndexCell().shapes[0] - bClipped := bi.it.IndexCell().shapes[0] - if containsCenterMatches(aClipped, ab.aCrossingTarget) && - containsCenterMatches(bClipped, ab.bCrossingTarget) { - return true - } - // Otherwise test all the edge crossings directly. - if aClipped.numEdges() > 0 && bClipped.numEdges() > 0 && ab.cellCrossesCell(aClipped, bClipped) { - return true - } - ai.next() - bi.next() - } - } - } - return false -} - -// containsRelation implements loopRelation for a contains operation. If -// A.ContainsPoint(P) == false && B.ContainsPoint(P) == true, it is equivalent -// to having an edge crossing (i.e., Contains returns false). -type containsRelation struct { - foundSharedVertex bool -} - -func (c *containsRelation) aCrossingTarget() crossingTarget { return crossingTargetDontCross } -func (c *containsRelation) bCrossingTarget() crossingTarget { return crossingTargetCross } -func (c *containsRelation) wedgesCross(a0, ab1, a2, b0, b2 Point) bool { - c.foundSharedVertex = true - return !WedgeContains(a0, ab1, a2, b0, b2) -} - -// intersectsRelation implements loopRelation for an intersects operation. Given -// two loops, A and B, if A.ContainsPoint(P) == true && B.ContainsPoint(P) == true, -// it is equivalent to having an edge crossing (i.e., Intersects returns true). -type intersectsRelation struct { - foundSharedVertex bool -} - -func (i *intersectsRelation) aCrossingTarget() crossingTarget { return crossingTargetCross } -func (i *intersectsRelation) bCrossingTarget() crossingTarget { return crossingTargetCross } -func (i *intersectsRelation) wedgesCross(a0, ab1, a2, b0, b2 Point) bool { - i.foundSharedVertex = true - return WedgeIntersects(a0, ab1, a2, b0, b2) -} - -// compareBoundaryRelation implements loopRelation for comparing boundaries. -// -// The compare boundary relation does not have a useful early-exit condition, -// so we return crossingTargetDontCare for both crossing targets. -// -// Aside: A possible early exit condition could be based on the following. -// -// If A contains a point of both B and ~B, then A intersects Boundary(B). -// If ~A contains a point of both B and ~B, then ~A intersects Boundary(B). -// So if the intersections of {A, ~A} with {B, ~B} are all non-empty, -// the return value is 0, i.e., Boundary(A) intersects Boundary(B). -// -// Unfortunately it isn't worth detecting this situation because by the -// time we have seen a point in all four intersection regions, we are also -// guaranteed to have seen at least one pair of crossing edges. -type compareBoundaryRelation struct { - reverse bool // True if the other loop should be reversed. - foundSharedVertex bool // True if any wedge was processed. - containsEdge bool // True if any edge of the other loop is contained by this loop. - excludesEdge bool // True if any edge of the other loop is excluded by this loop. -} - -func newCompareBoundaryRelation(reverse bool) *compareBoundaryRelation { - return &compareBoundaryRelation{reverse: reverse} -} - -func (c *compareBoundaryRelation) aCrossingTarget() crossingTarget { return crossingTargetDontCare } -func (c *compareBoundaryRelation) bCrossingTarget() crossingTarget { return crossingTargetDontCare } -func (c *compareBoundaryRelation) wedgesCross(a0, ab1, a2, b0, b2 Point) bool { - // Because we don't care about the interior of the other, only its boundary, - // it is sufficient to check whether this one contains the semiwedge (ab1, b2). - c.foundSharedVertex = true - if wedgeContainsSemiwedge(a0, ab1, a2, b2, c.reverse) { - c.containsEdge = true - } else { - c.excludesEdge = true - } - return c.containsEdge && c.excludesEdge -} - -// wedgeContainsSemiwedge reports whether the wedge (a0, ab1, a2) contains the -// "semiwedge" defined as any non-empty open set of rays immediately CCW from -// the edge (ab1, b2). If reverse is true, then substitute clockwise for CCW; -// this simulates what would happen if the direction of the other loop was reversed. -func wedgeContainsSemiwedge(a0, ab1, a2, b2 Point, reverse bool) bool { - if b2 == a0 || b2 == a2 { - // We have a shared or reversed edge. - return (b2 == a0) == reverse - } - return OrderedCCW(a0, a2, b2, ab1) -} - -// containsNonCrossingBoundary reports whether given two loops whose boundaries -// do not cross (see compareBoundary), if this loop contains the boundary of the -// other loop. If reverse is true, the boundary of the other loop is reversed -// first (which only affects the result when there are shared edges). This method -// is cheaper than compareBoundary because it does not test for edge intersections. -// -// This function requires that neither loop is empty, and that if the other is full, -// then reverse == false. -func (l *Loop) containsNonCrossingBoundary(other *Loop, reverseOther bool) bool { - // The bounds must intersect for containment. - if !l.bound.Intersects(other.bound) { - return false - } - - // Full loops are handled as though the loop surrounded the entire sphere. - if l.IsFull() { - return true - } - if other.IsFull() { - return false - } - - m, ok := l.findVertex(other.Vertex(0)) - if !ok { - // Since the other loops vertex 0 is not shared, we can check if this contains it. - return l.ContainsPoint(other.Vertex(0)) - } - // Otherwise check whether the edge (b0, b1) is contained by this loop. - return wedgeContainsSemiwedge(l.Vertex(m-1), l.Vertex(m), l.Vertex(m+1), - other.Vertex(1), reverseOther) -} - -// TODO(roberts): Differences from the C++ version: -// DistanceToPoint -// DistanceToBoundary -// Project -// ProjectToBoundary -// BoundaryApproxEqual -// BoundaryNear diff --git a/backend/vendor/github.com/golang/geo/s2/matrix3x3.go b/backend/vendor/github.com/golang/geo/s2/matrix3x3.go deleted file mode 100644 index 01696fe8..00000000 --- a/backend/vendor/github.com/golang/geo/s2/matrix3x3.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - - "github.com/golang/geo/r3" -) - -// matrix3x3 represents a traditional 3x3 matrix of floating point values. -// This is not a full fledged matrix. It only contains the pieces needed -// to satisfy the computations done within the s2 package. -type matrix3x3 [3][3]float64 - -// col returns the given column as a Point. -func (m *matrix3x3) col(col int) Point { - return Point{r3.Vector{m[0][col], m[1][col], m[2][col]}} -} - -// row returns the given row as a Point. -func (m *matrix3x3) row(row int) Point { - return Point{r3.Vector{m[row][0], m[row][1], m[row][2]}} -} - -// setCol sets the specified column to the value in the given Point. -func (m *matrix3x3) setCol(col int, p Point) *matrix3x3 { - m[0][col] = p.X - m[1][col] = p.Y - m[2][col] = p.Z - - return m -} - -// setRow sets the specified row to the value in the given Point. -func (m *matrix3x3) setRow(row int, p Point) *matrix3x3 { - m[row][0] = p.X - m[row][1] = p.Y - m[row][2] = p.Z - - return m -} - -// scale multiplies the matrix by the given value. -func (m *matrix3x3) scale(f float64) *matrix3x3 { - return &matrix3x3{ - [3]float64{f * m[0][0], f * m[0][1], f * m[0][2]}, - [3]float64{f * m[1][0], f * m[1][1], f * m[1][2]}, - [3]float64{f * m[2][0], f * m[2][1], f * m[2][2]}, - } -} - -// mul returns the multiplication of m by the Point p and converts the -// resulting 1x3 matrix into a Point. -func (m *matrix3x3) mul(p Point) Point { - return Point{r3.Vector{ - m[0][0]*p.X + m[0][1]*p.Y + m[0][2]*p.Z, - m[1][0]*p.X + m[1][1]*p.Y + m[1][2]*p.Z, - m[2][0]*p.X + m[2][1]*p.Y + m[2][2]*p.Z, - }} -} - -// det returns the determinant of this matrix. -func (m *matrix3x3) det() float64 { - // | a b c | - // det | d e f | = aei + bfg + cdh - ceg - bdi - afh - // | g h i | - return m[0][0]*m[1][1]*m[2][2] + m[0][1]*m[1][2]*m[2][0] + m[0][2]*m[1][0]*m[2][1] - - m[0][2]*m[1][1]*m[2][0] - m[0][1]*m[1][0]*m[2][2] - m[0][0]*m[1][2]*m[2][1] -} - -// transpose reflects the matrix along its diagonal and returns the result. -func (m *matrix3x3) transpose() *matrix3x3 { - m[0][1], m[1][0] = m[1][0], m[0][1] - m[0][2], m[2][0] = m[2][0], m[0][2] - m[1][2], m[2][1] = m[2][1], m[1][2] - - return m -} - -// String formats the matrix into an easier to read layout. -func (m *matrix3x3) String() string { - return fmt.Sprintf("[ %0.4f %0.4f %0.4f ] [ %0.4f %0.4f %0.4f ] [ %0.4f %0.4f %0.4f ]", - m[0][0], m[0][1], m[0][2], - m[1][0], m[1][1], m[1][2], - m[2][0], m[2][1], m[2][2], - ) -} - -// getFrame returns the orthonormal frame for the given point on the unit sphere. -func getFrame(p Point) matrix3x3 { - // Given the point p on the unit sphere, extend this into a right-handed - // coordinate frame of unit-length column vectors m = (x,y,z). Note that - // the vectors (x,y) are an orthonormal frame for the tangent space at point p, - // while p itself is an orthonormal frame for the normal space at p. - m := matrix3x3{} - m.setCol(2, p) - m.setCol(1, Point{p.Ortho()}) - m.setCol(0, Point{m.col(1).Cross(p.Vector)}) - return m -} - -// toFrame returns the coordinates of the given point with respect to its orthonormal basis m. -// The resulting point q satisfies the identity (m * q == p). -func toFrame(m matrix3x3, p Point) Point { - // The inverse of an orthonormal matrix is its transpose. - return m.transpose().mul(p) -} - -// fromFrame returns the coordinates of the given point in standard axis-aligned basis -// from its orthonormal basis m. -// The resulting point p satisfies the identity (p == m * q). -func fromFrame(m matrix3x3, q Point) Point { - return m.mul(q) -} diff --git a/backend/vendor/github.com/golang/geo/s2/max_distance_targets.go b/backend/vendor/github.com/golang/geo/s2/max_distance_targets.go deleted file mode 100644 index 92e916d9..00000000 --- a/backend/vendor/github.com/golang/geo/s2/max_distance_targets.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2019 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/s1" -) - -// maxDistance implements distance as the supplementary distance (Pi - x) to find -// results that are the furthest using the distance related algorithms. -type maxDistance s1.ChordAngle - -func (m maxDistance) chordAngle() s1.ChordAngle { return s1.ChordAngle(m) } -func (m maxDistance) zero() distance { return maxDistance(s1.StraightChordAngle) } -func (m maxDistance) negative() distance { return maxDistance(s1.InfChordAngle()) } -func (m maxDistance) infinity() distance { return maxDistance(s1.NegativeChordAngle) } -func (m maxDistance) less(other distance) bool { return m.chordAngle() > other.chordAngle() } -func (m maxDistance) sub(other distance) distance { - return maxDistance(m.chordAngle() + other.chordAngle()) -} -func (m maxDistance) chordAngleBound() s1.ChordAngle { - return s1.StraightChordAngle - m.chordAngle() -} -func (m maxDistance) updateDistance(dist distance) (distance, bool) { - if dist.less(m) { - m = maxDistance(dist.chordAngle()) - return m, true - } - return m, false -} - -func (m maxDistance) fromChordAngle(o s1.ChordAngle) distance { - return maxDistance(o) -} - -// MaxDistanceToPointTarget is used for computing the maximum distance to a Point. -type MaxDistanceToPointTarget struct { - point Point - dist distance -} - -// NewMaxDistanceToPointTarget returns a new target for the given Point. -func NewMaxDistanceToPointTarget(point Point) *MaxDistanceToPointTarget { - m := maxDistance(0) - return &MaxDistanceToPointTarget{point: point, dist: &m} -} - -func (m *MaxDistanceToPointTarget) capBound() Cap { - return CapFromCenterChordAngle(Point{m.point.Mul(-1)}, (s1.ChordAngle(0))) -} - -func (m *MaxDistanceToPointTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - return dist.updateDistance(maxDistance(ChordAngleBetweenPoints(p, m.point))) -} - -func (m *MaxDistanceToPointTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - if d, ok := UpdateMaxDistance(m.point, edge.V0, edge.V1, dist.chordAngle()); ok { - dist, _ = dist.updateDistance(maxDistance(d)) - return dist, true - } - return dist, false -} - -func (m *MaxDistanceToPointTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - return dist.updateDistance(maxDistance(cell.MaxDistance(m.point))) -} - -func (m *MaxDistanceToPointTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // For furthest points, we visit the polygons whose interior contains - // the antipode of the target point. These are the polygons whose - // distance to the target is maxDistance.zero() - q := NewContainsPointQuery(index, VertexModelSemiOpen) - return q.visitContainingShapes(Point{m.point.Mul(-1)}, func(shape Shape) bool { - return v(shape, m.point) - }) -} - -func (m *MaxDistanceToPointTarget) setMaxError(maxErr s1.ChordAngle) bool { return false } -func (m *MaxDistanceToPointTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MaxDistanceToPointTarget) distance() distance { return m.dist } - -// MaxDistanceToEdgeTarget is used for computing the maximum distance to an Edge. -type MaxDistanceToEdgeTarget struct { - e Edge - dist distance -} - -// NewMaxDistanceToEdgeTarget returns a new target for the given Edge. -func NewMaxDistanceToEdgeTarget(e Edge) *MaxDistanceToEdgeTarget { - m := maxDistance(0) - return &MaxDistanceToEdgeTarget{e: e, dist: m} -} - -// capBound returns a Cap that bounds the antipode of the target. (This -// is the set of points whose maxDistance to the target is maxDistance.zero) -func (m *MaxDistanceToEdgeTarget) capBound() Cap { - // The following computes a radius equal to half the edge length in an - // efficient and numerically stable way. - d2 := float64(ChordAngleBetweenPoints(m.e.V0, m.e.V1)) - r2 := (0.5 * d2) / (1 + math.Sqrt(1-0.25*d2)) - return CapFromCenterChordAngle(Point{m.e.V0.Add(m.e.V1.Vector).Mul(-1).Normalize()}, s1.ChordAngleFromSquaredLength(r2)) -} - -func (m *MaxDistanceToEdgeTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - if d, ok := UpdateMaxDistance(p, m.e.V0, m.e.V1, dist.chordAngle()); ok { - dist, _ = dist.updateDistance(maxDistance(d)) - return dist, true - } - return dist, false -} - -func (m *MaxDistanceToEdgeTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - if d, ok := updateEdgePairMaxDistance(m.e.V0, m.e.V1, edge.V0, edge.V1, dist.chordAngle()); ok { - dist, _ = dist.updateDistance(maxDistance(d)) - return dist, true - } - return dist, false -} - -func (m *MaxDistanceToEdgeTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - return dist.updateDistance(maxDistance(cell.MaxDistanceToEdge(m.e.V0, m.e.V1))) -} - -func (m *MaxDistanceToEdgeTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // We only need to test one edge point. That is because the method *must* - // visit a polygon if it fully contains the target, and *is allowed* to - // visit a polygon if it intersects the target. If the tested vertex is not - // contained, we know the full edge is not contained; if the tested vertex is - // contained, then the edge either is fully contained (must be visited) or it - // intersects (is allowed to be visited). We visit the center of the edge so - // that edge AB gives identical results to BA. - target := NewMaxDistanceToPointTarget(Point{m.e.V0.Add(m.e.V1.Vector).Normalize()}) - return target.visitContainingShapes(index, v) -} - -func (m *MaxDistanceToEdgeTarget) setMaxError(maxErr s1.ChordAngle) bool { return false } -func (m *MaxDistanceToEdgeTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MaxDistanceToEdgeTarget) distance() distance { return m.dist } - -// MaxDistanceToCellTarget is used for computing the maximum distance to a Cell. -type MaxDistanceToCellTarget struct { - cell Cell - dist distance -} - -// NewMaxDistanceToCellTarget returns a new target for the given Cell. -func NewMaxDistanceToCellTarget(cell Cell) *MaxDistanceToCellTarget { - m := maxDistance(0) - return &MaxDistanceToCellTarget{cell: cell, dist: m} -} - -func (m *MaxDistanceToCellTarget) capBound() Cap { - c := m.cell.CapBound() - return CapFromCenterAngle(Point{c.Center().Mul(-1)}, c.Radius()) -} - -func (m *MaxDistanceToCellTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - return dist.updateDistance(maxDistance(m.cell.MaxDistance(p))) -} - -func (m *MaxDistanceToCellTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - return dist.updateDistance(maxDistance(m.cell.MaxDistanceToEdge(edge.V0, edge.V1))) -} - -func (m *MaxDistanceToCellTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - return dist.updateDistance(maxDistance(m.cell.MaxDistanceToCell(cell))) -} - -func (m *MaxDistanceToCellTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // We only need to check one point here - cell center is simplest. - // See comment at MaxDistanceToEdgeTarget's visitContainingShapes. - target := NewMaxDistanceToPointTarget(m.cell.Center()) - return target.visitContainingShapes(index, v) -} - -func (m *MaxDistanceToCellTarget) setMaxError(maxErr s1.ChordAngle) bool { return false } -func (m *MaxDistanceToCellTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MaxDistanceToCellTarget) distance() distance { return m.dist } - -// MaxDistanceToShapeIndexTarget is used for computing the maximum distance to a ShapeIndex. -type MaxDistanceToShapeIndexTarget struct { - index *ShapeIndex - query *EdgeQuery - dist distance -} - -// NewMaxDistanceToShapeIndexTarget returns a new target for the given ShapeIndex. -func NewMaxDistanceToShapeIndexTarget(index *ShapeIndex) *MaxDistanceToShapeIndexTarget { - m := maxDistance(0) - return &MaxDistanceToShapeIndexTarget{ - index: index, - dist: m, - query: NewFurthestEdgeQuery(index, NewFurthestEdgeQueryOptions()), - } -} - -// capBound returns a Cap that bounds the antipode of the target. This -// is the set of points whose maxDistance to the target is maxDistance.zero() -func (m *MaxDistanceToShapeIndexTarget) capBound() Cap { - // TODO(roberts): Depends on ShapeIndexRegion - // c := makeShapeIndexRegion(m.index).CapBound() - // return CapFromCenterRadius(Point{c.Center.Mul(-1)}, c.Radius()) - panic("not implemented yet") -} - -func (m *MaxDistanceToShapeIndexTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - m.query.opts.distanceLimit = dist.chordAngle() - target := NewMaxDistanceToPointTarget(p) - r := m.query.findEdge(target, m.query.opts) - if r.shapeID < 0 { - return dist, false - } - return r.distance, true -} - -func (m *MaxDistanceToShapeIndexTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - m.query.opts.distanceLimit = dist.chordAngle() - target := NewMaxDistanceToEdgeTarget(edge) - r := m.query.findEdge(target, m.query.opts) - if r.shapeID < 0 { - return dist, false - } - return r.distance, true -} - -func (m *MaxDistanceToShapeIndexTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - m.query.opts.distanceLimit = dist.chordAngle() - target := NewMaxDistanceToCellTarget(cell) - r := m.query.findEdge(target, m.query.opts) - if r.shapeID < 0 { - return dist, false - } - return r.distance, true -} - -// visitContainingShapes returns the polygons containing the antipodal -// reflection of *any* connected component for target types consisting of -// multiple connected components. It is sufficient to test containment of -// one vertex per connected component, since this allows us to also return -// any polygon whose boundary has distance.zero() to the target. -func (m *MaxDistanceToShapeIndexTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // It is sufficient to find the set of chain starts in the target index - // (i.e., one vertex per connected component of edges) that are contained by - // the query index, except for one special case to handle full polygons. - // - // TODO(roberts): Do this by merge-joining the two ShapeIndexes and share - // the code with BooleanOperation. - for _, shape := range m.index.shapes { - numChains := shape.NumChains() - // Shapes that don't have any edges require a special case (below). - testedPoint := false - for c := 0; c < numChains; c++ { - chain := shape.Chain(c) - if chain.Length == 0 { - continue - } - testedPoint = true - target := NewMaxDistanceToPointTarget(shape.ChainEdge(c, 0).V0) - if !target.visitContainingShapes(index, v) { - return false - } - } - if !testedPoint { - // Special case to handle full polygons. - ref := shape.ReferencePoint() - if !ref.Contained { - continue - } - target := NewMaxDistanceToPointTarget(ref.Point) - if !target.visitContainingShapes(index, v) { - return false - } - } - } - return true -} - -func (m *MaxDistanceToShapeIndexTarget) setMaxError(maxErr s1.ChordAngle) bool { - m.query.opts.maxError = maxErr - return true -} -func (m *MaxDistanceToShapeIndexTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MaxDistanceToShapeIndexTarget) distance() distance { return m.dist } -func (m *MaxDistanceToShapeIndexTarget) setIncludeInteriors(b bool) { - m.query.opts.includeInteriors = b -} -func (m *MaxDistanceToShapeIndexTarget) setUseBruteForce(b bool) { m.query.opts.useBruteForce = b } - -// TODO(roberts): Remaining methods -// -// func (m *MaxDistanceToShapeIndexTarget) capBound() Cap { -// CellUnionTarget diff --git a/backend/vendor/github.com/golang/geo/s2/metric.go b/backend/vendor/github.com/golang/geo/s2/metric.go deleted file mode 100644 index 53db3d31..00000000 --- a/backend/vendor/github.com/golang/geo/s2/metric.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// This file implements functions for various S2 measurements. - -import "math" - -// A Metric is a measure for cells. It is used to describe the shape and size -// of cells. They are useful for deciding which cell level to use in order to -// satisfy a given condition (e.g. that cell vertices must be no further than -// "x" apart). You can use the Value(level) method to compute the corresponding -// length or area on the unit sphere for cells at a given level. The minimum -// and maximum bounds are valid for cells at all levels, but they may be -// somewhat conservative for very large cells (e.g. face cells). -type Metric struct { - // Dim is either 1 or 2, for a 1D or 2D metric respectively. - Dim int - // Deriv is the scaling factor for the metric. - Deriv float64 -} - -// Defined metrics. -// Of the projection methods defined in C++, Go only supports the quadratic projection. - -// Each cell is bounded by four planes passing through its four edges and -// the center of the sphere. These metrics relate to the angle between each -// pair of opposite bounding planes, or equivalently, between the planes -// corresponding to two different s-values or two different t-values. -var ( - MinAngleSpanMetric = Metric{1, 4.0 / 3} - AvgAngleSpanMetric = Metric{1, math.Pi / 2} - MaxAngleSpanMetric = Metric{1, 1.704897179199218452} -) - -// The width of geometric figure is defined as the distance between two -// parallel bounding lines in a given direction. For cells, the minimum -// width is always attained between two opposite edges, and the maximum -// width is attained between two opposite vertices. However, for our -// purposes we redefine the width of a cell as the perpendicular distance -// between a pair of opposite edges. A cell therefore has two widths, one -// in each direction. The minimum width according to this definition agrees -// with the classic geometric one, but the maximum width is different. (The -// maximum geometric width corresponds to MaxDiag defined below.) -// -// The average width in both directions for all cells at level k is approximately -// AvgWidthMetric.Value(k). -// -// The width is useful for bounding the minimum or maximum distance from a -// point on one edge of a cell to the closest point on the opposite edge. -// For example, this is useful when growing regions by a fixed distance. -var ( - MinWidthMetric = Metric{1, 2 * math.Sqrt2 / 3} - AvgWidthMetric = Metric{1, 1.434523672886099389} - MaxWidthMetric = Metric{1, MaxAngleSpanMetric.Deriv} -) - -// The edge length metrics can be used to bound the minimum, maximum, -// or average distance from the center of one cell to the center of one of -// its edge neighbors. In particular, it can be used to bound the distance -// between adjacent cell centers along the space-filling Hilbert curve for -// cells at any given level. -var ( - MinEdgeMetric = Metric{1, 2 * math.Sqrt2 / 3} - AvgEdgeMetric = Metric{1, 1.459213746386106062} - MaxEdgeMetric = Metric{1, MaxAngleSpanMetric.Deriv} - - // MaxEdgeAspect is the maximum edge aspect ratio over all cells at any level, - // where the edge aspect ratio of a cell is defined as the ratio of its longest - // edge length to its shortest edge length. - MaxEdgeAspect = 1.442615274452682920 - - MinAreaMetric = Metric{2, 8 * math.Sqrt2 / 9} - AvgAreaMetric = Metric{2, 4 * math.Pi / 6} - MaxAreaMetric = Metric{2, 2.635799256963161491} -) - -// The maximum diagonal is also the maximum diameter of any cell, -// and also the maximum geometric width (see the comment for widths). For -// example, the distance from an arbitrary point to the closest cell center -// at a given level is at most half the maximum diagonal length. -var ( - MinDiagMetric = Metric{1, 8 * math.Sqrt2 / 9} - AvgDiagMetric = Metric{1, 2.060422738998471683} - MaxDiagMetric = Metric{1, 2.438654594434021032} - - // MaxDiagAspect is the maximum diagonal aspect ratio over all cells at any - // level, where the diagonal aspect ratio of a cell is defined as the ratio - // of its longest diagonal length to its shortest diagonal length. - MaxDiagAspect = math.Sqrt(3) -) - -// Value returns the value of the metric at the given level. -func (m Metric) Value(level int) float64 { - return math.Ldexp(m.Deriv, -m.Dim*level) -} - -// MinLevel returns the minimum level such that the metric is at most -// the given value, or maxLevel (30) if there is no such level. -// -// For example, MinLevel(0.1) returns the minimum level such that all cell diagonal -// lengths are 0.1 or smaller. The returned value is always a valid level. -// -// In C++, this is called GetLevelForMaxValue. -func (m Metric) MinLevel(val float64) int { - if val < 0 { - return maxLevel - } - - level := -(math.Ilogb(val/m.Deriv) >> uint(m.Dim-1)) - if level > maxLevel { - level = maxLevel - } - if level < 0 { - level = 0 - } - return level -} - -// MaxLevel returns the maximum level such that the metric is at least -// the given value, or zero if there is no such level. -// -// For example, MaxLevel(0.1) returns the maximum level such that all cells have a -// minimum width of 0.1 or larger. The returned value is always a valid level. -// -// In C++, this is called GetLevelForMinValue. -func (m Metric) MaxLevel(val float64) int { - if val <= 0 { - return maxLevel - } - - level := math.Ilogb(m.Deriv/val) >> uint(m.Dim-1) - if level > maxLevel { - level = maxLevel - } - if level < 0 { - level = 0 - } - return level -} - -// ClosestLevel returns the level at which the metric has approximately the given -// value. The return value is always a valid level. For example, -// AvgEdgeMetric.ClosestLevel(0.1) returns the level at which the average cell edge -// length is approximately 0.1. -func (m Metric) ClosestLevel(val float64) int { - x := math.Sqrt2 - if m.Dim == 2 { - x = 2 - } - return m.MinLevel(x * val) -} diff --git a/backend/vendor/github.com/golang/geo/s2/min_distance_targets.go b/backend/vendor/github.com/golang/geo/s2/min_distance_targets.go deleted file mode 100644 index b4cbd43e..00000000 --- a/backend/vendor/github.com/golang/geo/s2/min_distance_targets.go +++ /dev/null @@ -1,362 +0,0 @@ -// Copyright 2019 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/s1" -) - -// minDistance implements distance interface to find closest distance types. -type minDistance s1.ChordAngle - -func (m minDistance) chordAngle() s1.ChordAngle { return s1.ChordAngle(m) } -func (m minDistance) zero() distance { return minDistance(0) } -func (m minDistance) negative() distance { return minDistance(s1.NegativeChordAngle) } -func (m minDistance) infinity() distance { return minDistance(s1.InfChordAngle()) } -func (m minDistance) less(other distance) bool { return m.chordAngle() < other.chordAngle() } -func (m minDistance) sub(other distance) distance { - return minDistance(m.chordAngle() - other.chordAngle()) -} -func (m minDistance) chordAngleBound() s1.ChordAngle { - return m.chordAngle().Expanded(m.chordAngle().MaxAngleError()) -} - -// updateDistance updates its own value if the other value is less() than it is, -// and reports if it updated. -func (m minDistance) updateDistance(dist distance) (distance, bool) { - if dist.less(m) { - m = minDistance(dist.chordAngle()) - return m, true - } - return m, false -} - -func (m minDistance) fromChordAngle(o s1.ChordAngle) distance { - return minDistance(o) -} - -// MinDistanceToPointTarget is a type for computing the minimum distance to a Point. -type MinDistanceToPointTarget struct { - point Point - dist distance -} - -// NewMinDistanceToPointTarget returns a new target for the given Point. -func NewMinDistanceToPointTarget(point Point) *MinDistanceToPointTarget { - m := minDistance(0) - return &MinDistanceToPointTarget{point: point, dist: &m} -} - -func (m *MinDistanceToPointTarget) capBound() Cap { - return CapFromCenterChordAngle(m.point, s1.ChordAngle(0)) -} - -func (m *MinDistanceToPointTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - var ok bool - dist, ok = dist.updateDistance(minDistance(ChordAngleBetweenPoints(p, m.point))) - return dist, ok -} - -func (m *MinDistanceToPointTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - if d, ok := UpdateMinDistance(m.point, edge.V0, edge.V1, dist.chordAngle()); ok { - dist, _ = dist.updateDistance(minDistance(d)) - return dist, true - } - return dist, false -} - -func (m *MinDistanceToPointTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - var ok bool - dist, ok = dist.updateDistance(minDistance(cell.Distance(m.point))) - return dist, ok -} - -func (m *MinDistanceToPointTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // For furthest points, we visit the polygons whose interior contains - // the antipode of the target point. These are the polygons whose - // distance to the target is maxDistance.zero() - q := NewContainsPointQuery(index, VertexModelSemiOpen) - return q.visitContainingShapes(m.point, func(shape Shape) bool { - return v(shape, m.point) - }) -} - -func (m *MinDistanceToPointTarget) setMaxError(maxErr s1.ChordAngle) bool { return false } -func (m *MinDistanceToPointTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MinDistanceToPointTarget) distance() distance { return m.dist } - -// ---------------------------------------------------------- - -// MinDistanceToEdgeTarget is a type for computing the minimum distance to an Edge. -type MinDistanceToEdgeTarget struct { - e Edge - dist distance -} - -// NewMinDistanceToEdgeTarget returns a new target for the given Edge. -func NewMinDistanceToEdgeTarget(e Edge) *MinDistanceToEdgeTarget { - m := minDistance(0) - return &MinDistanceToEdgeTarget{e: e, dist: m} -} - -// capBound returns a Cap that bounds the antipode of the target. (This -// is the set of points whose maxDistance to the target is maxDistance.zero) -func (m *MinDistanceToEdgeTarget) capBound() Cap { - // The following computes a radius equal to half the edge length in an - // efficient and numerically stable way. - d2 := float64(ChordAngleBetweenPoints(m.e.V0, m.e.V1)) - r2 := (0.5 * d2) / (1 + math.Sqrt(1-0.25*d2)) - return CapFromCenterChordAngle(Point{m.e.V0.Add(m.e.V1.Vector).Normalize()}, s1.ChordAngleFromSquaredLength(r2)) -} - -func (m *MinDistanceToEdgeTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - if d, ok := UpdateMinDistance(p, m.e.V0, m.e.V1, dist.chordAngle()); ok { - dist, _ = dist.updateDistance(minDistance(d)) - return dist, true - } - return dist, false -} - -func (m *MinDistanceToEdgeTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - if d, ok := updateEdgePairMinDistance(m.e.V0, m.e.V1, edge.V0, edge.V1, dist.chordAngle()); ok { - dist, _ = dist.updateDistance(minDistance(d)) - return dist, true - } - return dist, false -} - -func (m *MinDistanceToEdgeTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - return dist.updateDistance(minDistance(cell.DistanceToEdge(m.e.V0, m.e.V1))) -} - -func (m *MinDistanceToEdgeTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // We test the center of the edge in order to ensure that edge targets AB - // and BA yield identical results (which is not guaranteed by the API but - // users might expect). Other options would be to test both endpoints, or - // return different results for AB and BA in some cases. - target := NewMinDistanceToPointTarget(Point{m.e.V0.Add(m.e.V1.Vector).Normalize()}) - return target.visitContainingShapes(index, v) -} - -func (m *MinDistanceToEdgeTarget) setMaxError(maxErr s1.ChordAngle) bool { return false } -func (m *MinDistanceToEdgeTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MinDistanceToEdgeTarget) distance() distance { return m.dist } - -// ---------------------------------------------------------- - -// MinDistanceToCellTarget is a type for computing the minimum distance to a Cell. -type MinDistanceToCellTarget struct { - cell Cell - dist distance -} - -// NewMinDistanceToCellTarget returns a new target for the given Cell. -func NewMinDistanceToCellTarget(cell Cell) *MinDistanceToCellTarget { - m := minDistance(0) - return &MinDistanceToCellTarget{cell: cell, dist: m} -} - -func (m *MinDistanceToCellTarget) capBound() Cap { - return m.cell.CapBound() -} - -func (m *MinDistanceToCellTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - return dist.updateDistance(minDistance(m.cell.Distance(p))) -} - -func (m *MinDistanceToCellTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - return dist.updateDistance(minDistance(m.cell.DistanceToEdge(edge.V0, edge.V1))) -} - -func (m *MinDistanceToCellTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - return dist.updateDistance(minDistance(m.cell.DistanceToCell(cell))) -} - -func (m *MinDistanceToCellTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // The simplest approach is simply to return the polygons that contain the - // cell center. Alternatively, if the index cell is smaller than the target - // cell then we could return all polygons that are present in the - // shapeIndexCell, but since the index is built conservatively this may - // include some polygons that don't quite intersect the cell. So we would - // either need to recheck for intersection more accurately, or weaken the - // VisitContainingShapes contract so that it only guarantees approximate - // intersection, neither of which seems like a good tradeoff. - target := NewMinDistanceToPointTarget(m.cell.Center()) - return target.visitContainingShapes(index, v) -} -func (m *MinDistanceToCellTarget) setMaxError(maxErr s1.ChordAngle) bool { return false } -func (m *MinDistanceToCellTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MinDistanceToCellTarget) distance() distance { return m.dist } - -// ---------------------------------------------------------- - -/* -// MinDistanceToCellUnionTarget is a type for computing the minimum distance to a CellUnion. -type MinDistanceToCellUnionTarget struct { - cu CellUnion - query *ClosestCellQuery - dist distance -} - -// NewMinDistanceToCellUnionTarget returns a new target for the given CellUnion. -func NewMinDistanceToCellUnionTarget(cu CellUnion) *MinDistanceToCellUnionTarget { - m := minDistance(0) - return &MinDistanceToCellUnionTarget{cu: cu, dist: m} -} - -func (m *MinDistanceToCellUnionTarget) capBound() Cap { - return m.cu.CapBound() -} - -func (m *MinDistanceToCellUnionTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - m.query.opts.DistanceLimit = dist.chordAngle() - target := NewMinDistanceToPointTarget(p) - r := m.query.findEdge(target) - if r.ShapeID < 0 { - return dist, false - } - return minDistance(r.Distance), true -} - -func (m *MinDistanceToCellUnionTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // We test the center of the edge in order to ensure that edge targets AB - // and BA yield identical results (which is not guaranteed by the API but - // users might expect). Other options would be to test both endpoints, or - // return different results for AB and BA in some cases. - target := NewMinDistanceToPointTarget(Point{m.e.V0.Add(m.e.V1.Vector).Normalize()}) - return target.visitContainingShapes(index, v) -} -func (m *MinDistanceToCellUnionTarget) setMaxError(maxErr s1.ChordAngle) bool { - m.query.opts.MaxError = maxErr - return true -} -func (m *MinDistanceToCellUnionTarget) maxBruteForceIndexSize() int { return 30 } -func (m *MinDistanceToCellUnionTarget) distance() distance { return m.dist } -*/ - -// ---------------------------------------------------------- - -// MinDistanceToShapeIndexTarget is a type for computing the minimum distance to a ShapeIndex. -type MinDistanceToShapeIndexTarget struct { - index *ShapeIndex - query *EdgeQuery - dist distance -} - -// NewMinDistanceToShapeIndexTarget returns a new target for the given ShapeIndex. -func NewMinDistanceToShapeIndexTarget(index *ShapeIndex) *MinDistanceToShapeIndexTarget { - m := minDistance(0) - return &MinDistanceToShapeIndexTarget{ - index: index, - dist: m, - query: NewClosestEdgeQuery(index, NewClosestEdgeQueryOptions()), - } -} - -func (m *MinDistanceToShapeIndexTarget) capBound() Cap { - // TODO(roberts): Depends on ShapeIndexRegion existing. - // c := makeS2ShapeIndexRegion(m.index).CapBound() - // return CapFromCenterRadius(Point{c.Center.Mul(-1)}, c.Radius()) - panic("not implemented yet") -} - -func (m *MinDistanceToShapeIndexTarget) updateDistanceToPoint(p Point, dist distance) (distance, bool) { - m.query.opts.distanceLimit = dist.chordAngle() - target := NewMinDistanceToPointTarget(p) - r := m.query.findEdge(target, m.query.opts) - if r.shapeID < 0 { - return dist, false - } - return r.distance, true -} - -func (m *MinDistanceToShapeIndexTarget) updateDistanceToEdge(edge Edge, dist distance) (distance, bool) { - m.query.opts.distanceLimit = dist.chordAngle() - target := NewMinDistanceToEdgeTarget(edge) - r := m.query.findEdge(target, m.query.opts) - if r.shapeID < 0 { - return dist, false - } - return r.distance, true -} - -func (m *MinDistanceToShapeIndexTarget) updateDistanceToCell(cell Cell, dist distance) (distance, bool) { - m.query.opts.distanceLimit = dist.chordAngle() - target := NewMinDistanceToCellTarget(cell) - r := m.query.findEdge(target, m.query.opts) - if r.shapeID < 0 { - return dist, false - } - return r.distance, true -} - -// For target types consisting of multiple connected components (such as this one), -// this method should return the polygons containing the antipodal reflection of -// *any* connected component. (It is sufficient to test containment of one vertex per -// connected component, since this allows us to also return any polygon whose -// boundary has distance.zero() to the target.) -func (m *MinDistanceToShapeIndexTarget) visitContainingShapes(index *ShapeIndex, v shapePointVisitorFunc) bool { - // It is sufficient to find the set of chain starts in the target index - // (i.e., one vertex per connected component of edges) that are contained by - // the query index, except for one special case to handle full polygons. - // - // TODO(roberts): Do this by merge-joining the two ShapeIndexes. - for _, shape := range m.index.shapes { - numChains := shape.NumChains() - // Shapes that don't have any edges require a special case (below). - testedPoint := false - for c := 0; c < numChains; c++ { - chain := shape.Chain(c) - if chain.Length == 0 { - continue - } - testedPoint = true - target := NewMinDistanceToPointTarget(shape.ChainEdge(c, 0).V0) - if !target.visitContainingShapes(index, v) { - return false - } - } - if !testedPoint { - // Special case to handle full polygons. - ref := shape.ReferencePoint() - if !ref.Contained { - continue - } - target := NewMinDistanceToPointTarget(ref.Point) - if !target.visitContainingShapes(index, v) { - return false - } - } - } - return true -} - -func (m *MinDistanceToShapeIndexTarget) setMaxError(maxErr s1.ChordAngle) bool { - m.query.opts.maxError = maxErr - return true -} -func (m *MinDistanceToShapeIndexTarget) maxBruteForceIndexSize() int { return 25 } -func (m *MinDistanceToShapeIndexTarget) distance() distance { return m.dist } -func (m *MinDistanceToShapeIndexTarget) setIncludeInteriors(b bool) { - m.query.opts.includeInteriors = b -} -func (m *MinDistanceToShapeIndexTarget) setUseBruteForce(b bool) { m.query.opts.useBruteForce = b } - -// TODO(roberts): Remaining methods -// -// func (m *MinDistanceToShapeIndexTarget) capBound() Cap { -// CellUnionTarget diff --git a/backend/vendor/github.com/golang/geo/s2/nthderivative.go b/backend/vendor/github.com/golang/geo/s2/nthderivative.go deleted file mode 100644 index 4d6898b4..00000000 --- a/backend/vendor/github.com/golang/geo/s2/nthderivative.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// nthDerivativeCoder provides Nth Derivative Coding. -// -// (In signal processing disciplines, this is known as N-th Delta Coding.) -// -// Good for varint coding integer sequences with polynomial trends. -// -// Instead of coding a sequence of values directly, code its nth-order discrete -// derivative. Overflow in integer addition and subtraction makes this a -// lossless transform. -// -// constant linear quadratic -// trend trend trend -// / \ / \ / \_ -// -// input |0 0 0 0 1 2 3 4 9 16 25 36 -// 0th derivative(identity) |0 0 0 0 1 2 3 4 9 16 25 36 -// 1st derivative(delta coding) | 0 0 0 1 1 1 1 5 7 9 11 -// 2nd derivative(linear prediction) | 0 0 1 0 0 0 4 2 2 2 -// -// ------------------------------------- -// 0 1 2 3 4 5 6 7 8 9 10 11 -// n in sequence -// -// Higher-order codings can break even or be detrimental on other sequences. -// -// random oscillating -// / \ / \_ -// -// input |5 9 6 1 8 8 2 -2 4 -4 6 -6 -// 0th derivative(identity) |5 9 6 1 8 8 2 -2 4 -4 6 -6 -// 1st derivative(delta coding) | 4 -3 -5 7 0 -6 -4 6 -8 10 -12 -// 2nd derivative(linear prediction) | -7 -2 12 -7 -6 2 10 -14 18 -22 -// -// --------------------------------------- -// 0 1 2 3 4 5 6 7 8 9 10 11 -// n in sequence -// -// Note that the nth derivative isn't available until sequence item n. Earlier -// values are coded at lower order. For the above table, read 5 4 -7 -2 12 ... -type nthDerivativeCoder struct { - n, m int - memory [10]int32 -} - -// newNthDerivativeCoder returns a new coder, where n is the derivative order of the encoder (the N in NthDerivative). -// n must be within [0,10]. -func newNthDerivativeCoder(n int) *nthDerivativeCoder { - c := &nthDerivativeCoder{n: n} - if n < 0 || n > len(c.memory) { - panic("unsupported n. Must be within [0,10].") - } - return c -} - -func (c *nthDerivativeCoder) encode(k int32) int32 { - for i := 0; i < c.m; i++ { - delta := k - c.memory[i] - c.memory[i] = k - k = delta - } - if c.m < c.n { - c.memory[c.m] = k - c.m++ - } - return k -} - -func (c *nthDerivativeCoder) decode(k int32) int32 { - if c.m < c.n { - c.m++ - } - for i := c.m - 1; i >= 0; i-- { - c.memory[i] += k - k = c.memory[i] - } - return k -} diff --git a/backend/vendor/github.com/golang/geo/s2/paddedcell.go b/backend/vendor/github.com/golang/geo/s2/paddedcell.go deleted file mode 100644 index ac304a6c..00000000 --- a/backend/vendor/github.com/golang/geo/s2/paddedcell.go +++ /dev/null @@ -1,252 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "github.com/golang/geo/r1" - "github.com/golang/geo/r2" -) - -// PaddedCell represents a Cell whose (u,v)-range has been expanded on -// all sides by a given amount of "padding". Unlike Cell, its methods and -// representation are optimized for clipping edges against Cell boundaries -// to determine which cells are intersected by a given set of edges. -type PaddedCell struct { - id CellID - padding float64 - bound r2.Rect - middle r2.Rect // A rect in (u, v)-space that belongs to all four children. - iLo, jLo int // Minimum (i,j)-coordinates of this cell before padding - orientation int // Hilbert curve orientation of this cell. - level int -} - -// PaddedCellFromCellID constructs a padded cell with the given padding. -func PaddedCellFromCellID(id CellID, padding float64) *PaddedCell { - p := &PaddedCell{ - id: id, - padding: padding, - middle: r2.EmptyRect(), - } - - // Fast path for constructing a top-level face (the most common case). - if id.isFace() { - limit := padding + 1 - p.bound = r2.Rect{r1.Interval{-limit, limit}, r1.Interval{-limit, limit}} - p.middle = r2.Rect{r1.Interval{-padding, padding}, r1.Interval{-padding, padding}} - p.orientation = id.Face() & 1 - return p - } - - _, p.iLo, p.jLo, p.orientation = id.faceIJOrientation() - p.level = id.Level() - p.bound = ijLevelToBoundUV(p.iLo, p.jLo, p.level).ExpandedByMargin(padding) - ijSize := sizeIJ(p.level) - p.iLo &= -ijSize - p.jLo &= -ijSize - - return p -} - -// PaddedCellFromParentIJ constructs the child of parent with the given (i,j) index. -// The four child cells have indices of (0,0), (0,1), (1,0), (1,1), where the i and j -// indices correspond to increasing u- and v-values respectively. -func PaddedCellFromParentIJ(parent *PaddedCell, i, j int) *PaddedCell { - // Compute the position and orientation of the child incrementally from the - // orientation of the parent. - pos := ijToPos[parent.orientation][2*i+j] - - p := &PaddedCell{ - id: parent.id.Children()[pos], - padding: parent.padding, - bound: parent.bound, - orientation: parent.orientation ^ posToOrientation[pos], - level: parent.level + 1, - middle: r2.EmptyRect(), - } - - ijSize := sizeIJ(p.level) - p.iLo = parent.iLo + i*ijSize - p.jLo = parent.jLo + j*ijSize - - // For each child, one corner of the bound is taken directly from the parent - // while the diagonally opposite corner is taken from middle(). - middle := parent.Middle() - if i == 1 { - p.bound.X.Lo = middle.X.Lo - } else { - p.bound.X.Hi = middle.X.Hi - } - if j == 1 { - p.bound.Y.Lo = middle.Y.Lo - } else { - p.bound.Y.Hi = middle.Y.Hi - } - - return p -} - -// CellID returns the CellID this padded cell represents. -func (p PaddedCell) CellID() CellID { - return p.id -} - -// Padding returns the amount of padding on this cell. -func (p PaddedCell) Padding() float64 { - return p.padding -} - -// Level returns the level this cell is at. -func (p PaddedCell) Level() int { - return p.level -} - -// Center returns the center of this cell. -func (p PaddedCell) Center() Point { - ijSize := sizeIJ(p.level) - si := uint32(2*p.iLo + ijSize) - ti := uint32(2*p.jLo + ijSize) - return Point{faceSiTiToXYZ(p.id.Face(), si, ti).Normalize()} -} - -// Middle returns the rectangle in the middle of this cell that belongs to -// all four of its children in (u,v)-space. -func (p *PaddedCell) Middle() r2.Rect { - // We compute this field lazily because it is not needed the majority of the - // time (i.e., for cells where the recursion terminates). - if p.middle.IsEmpty() { - ijSize := sizeIJ(p.level) - u := stToUV(siTiToST(uint32(2*p.iLo + ijSize))) - v := stToUV(siTiToST(uint32(2*p.jLo + ijSize))) - p.middle = r2.Rect{ - r1.Interval{u - p.padding, u + p.padding}, - r1.Interval{v - p.padding, v + p.padding}, - } - } - return p.middle -} - -// Bound returns the bounds for this cell in (u,v)-space including padding. -func (p PaddedCell) Bound() r2.Rect { - return p.bound -} - -// ChildIJ returns the (i,j) coordinates for the child cell at the given traversal -// position. The traversal position corresponds to the order in which child -// cells are visited by the Hilbert curve. -func (p PaddedCell) ChildIJ(pos int) (i, j int) { - ij := posToIJ[p.orientation][pos] - return ij >> 1, ij & 1 -} - -// EntryVertex return the vertex where the space-filling curve enters this cell. -func (p PaddedCell) EntryVertex() Point { - // The curve enters at the (0,0) vertex unless the axis directions are - // reversed, in which case it enters at the (1,1) vertex. - i := p.iLo - j := p.jLo - if p.orientation&invertMask != 0 { - ijSize := sizeIJ(p.level) - i += ijSize - j += ijSize - } - return Point{faceSiTiToXYZ(p.id.Face(), uint32(2*i), uint32(2*j)).Normalize()} -} - -// ExitVertex returns the vertex where the space-filling curve exits this cell. -func (p PaddedCell) ExitVertex() Point { - // The curve exits at the (1,0) vertex unless the axes are swapped or - // inverted but not both, in which case it exits at the (0,1) vertex. - i := p.iLo - j := p.jLo - ijSize := sizeIJ(p.level) - if p.orientation == 0 || p.orientation == swapMask+invertMask { - i += ijSize - } else { - j += ijSize - } - return Point{faceSiTiToXYZ(p.id.Face(), uint32(2*i), uint32(2*j)).Normalize()} -} - -// ShrinkToFit returns the smallest CellID that contains all descendants of this -// padded cell whose bounds intersect the given rect. For algorithms that use -// recursive subdivision to find the cells that intersect a particular object, this -// method can be used to skip all of the initial subdivision steps where only -// one child needs to be expanded. -// -// Note that this method is not the same as returning the smallest cell that contains -// the intersection of this cell with rect. Because of the padding, even if one child -// completely contains rect it is still possible that a neighboring child may also -// intersect the given rect. -// -// The provided Rect must intersect the bounds of this cell. -func (p *PaddedCell) ShrinkToFit(rect r2.Rect) CellID { - // Quick rejection test: if rect contains the center of this cell along - // either axis, then no further shrinking is possible. - if p.level == 0 { - // Fast path (most calls to this function start with a face cell). - if rect.X.Contains(0) || rect.Y.Contains(0) { - return p.id - } - } - - ijSize := sizeIJ(p.level) - if rect.X.Contains(stToUV(siTiToST(uint32(2*p.iLo+ijSize)))) || - rect.Y.Contains(stToUV(siTiToST(uint32(2*p.jLo+ijSize)))) { - return p.id - } - - // Otherwise we expand rect by the given padding on all sides and find - // the range of coordinates that it spans along the i- and j-axes. We then - // compute the highest bit position at which the min and max coordinates - // differ. This corresponds to the first cell level at which at least two - // children intersect rect. - - // Increase the padding to compensate for the error in uvToST. - // (The constant below is a provable upper bound on the additional error.) - padded := rect.ExpandedByMargin(p.padding + 1.5*dblEpsilon) - iMin, jMin := p.iLo, p.jLo // Min i- or j- coordinate spanned by padded - var iXor, jXor int // XOR of the min and max i- or j-coordinates - - if iMin < stToIJ(uvToST(padded.X.Lo)) { - iMin = stToIJ(uvToST(padded.X.Lo)) - } - if a, b := p.iLo+ijSize-1, stToIJ(uvToST(padded.X.Hi)); a <= b { - iXor = iMin ^ a - } else { - iXor = iMin ^ b - } - - if jMin < stToIJ(uvToST(padded.Y.Lo)) { - jMin = stToIJ(uvToST(padded.Y.Lo)) - } - if a, b := p.jLo+ijSize-1, stToIJ(uvToST(padded.Y.Hi)); a <= b { - jXor = jMin ^ a - } else { - jXor = jMin ^ b - } - - // Compute the highest bit position where the two i- or j-endpoints differ, - // and then choose the cell level that includes both of these endpoints. So - // if both pairs of endpoints are equal we choose maxLevel; if they differ - // only at bit 0, we choose (maxLevel - 1), and so on. - levelMSB := uint64(((iXor | jXor) << 1) + 1) - level := maxLevel - findMSBSetNonZero64(levelMSB) - if level <= p.level { - return p.id - } - - return cellIDFromFaceIJ(p.id.Face(), iMin, jMin).Parent(level) -} diff --git a/backend/vendor/github.com/golang/geo/s2/point.go b/backend/vendor/github.com/golang/geo/s2/point.go deleted file mode 100644 index ce9b16ab..00000000 --- a/backend/vendor/github.com/golang/geo/s2/point.go +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "io" - "math" - "sort" - - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// Point represents a point on the unit sphere as a normalized 3D vector. -// Fields should be treated as read-only. Use one of the factory methods for creation. -type Point struct { - r3.Vector -} - -// sortPoints sorts the slice of Points in place. -func sortPoints(e []Point) { - sort.Sort(points(e)) -} - -// points implements the Sort interface for slices of Point. -type points []Point - -func (p points) Len() int { return len(p) } -func (p points) Swap(i, j int) { p[i], p[j] = p[j], p[i] } -func (p points) Less(i, j int) bool { return p[i].Cmp(p[j].Vector) == -1 } - -// PointFromCoords creates a new normalized point from coordinates. -// -// This always returns a valid point. If the given coordinates can not be normalized -// the origin point will be returned. -// -// This behavior is different from the C++ construction of a S2Point from coordinates -// (i.e. S2Point(x, y, z)) in that in C++ they do not Normalize. -func PointFromCoords(x, y, z float64) Point { - if x == 0 && y == 0 && z == 0 { - return OriginPoint() - } - return Point{r3.Vector{x, y, z}.Normalize()} -} - -// OriginPoint returns a unique "origin" on the sphere for operations that need a fixed -// reference point. In particular, this is the "point at infinity" used for -// point-in-polygon testing (by counting the number of edge crossings). -// -// It should *not* be a point that is commonly used in edge tests in order -// to avoid triggering code to handle degenerate cases (this rules out the -// north and south poles). It should also not be on the boundary of any -// low-level S2Cell for the same reason. -func OriginPoint() Point { - return Point{r3.Vector{-0.0099994664350250197, 0.0025924542609324121, 0.99994664350250195}} -} - -// PointCross returns a Point that is orthogonal to both p and op. This is similar to -// p.Cross(op) (the true cross product) except that it does a better job of -// ensuring orthogonality when the Point is nearly parallel to op, it returns -// a non-zero result even when p == op or p == -op and the result is a Point. -// -// It satisfies the following properties (f == PointCross): -// -// (1) f(p, op) != 0 for all p, op -// (2) f(op,p) == -f(p,op) unless p == op or p == -op -// (3) f(-p,op) == -f(p,op) unless p == op or p == -op -// (4) f(p,-op) == -f(p,op) unless p == op or p == -op -func (p Point) PointCross(op Point) Point { - // NOTE(dnadasi): In the C++ API the equivalent method here was known as "RobustCrossProd", - // but PointCross more accurately describes how this method is used. - x := p.Add(op.Vector).Cross(op.Sub(p.Vector)) - - // Compare exactly to the 0 vector. - if x == (r3.Vector{}) { - // The only result that makes sense mathematically is to return zero, but - // we find it more convenient to return an arbitrary orthogonal vector. - return Point{p.Ortho()} - } - - return Point{x} -} - -// OrderedCCW returns true if the edges OA, OB, and OC are encountered in that -// order while sweeping CCW around the point O. -// -// You can think of this as testing whether A <= B <= C with respect to the -// CCW ordering around O that starts at A, or equivalently, whether B is -// contained in the range of angles (inclusive) that starts at A and extends -// CCW to C. Properties: -// -// (1) If OrderedCCW(a,b,c,o) && OrderedCCW(b,a,c,o), then a == b -// (2) If OrderedCCW(a,b,c,o) && OrderedCCW(a,c,b,o), then b == c -// (3) If OrderedCCW(a,b,c,o) && OrderedCCW(c,b,a,o), then a == b == c -// (4) If a == b or b == c, then OrderedCCW(a,b,c,o) is true -// (5) Otherwise if a == c, then OrderedCCW(a,b,c,o) is false -func OrderedCCW(a, b, c, o Point) bool { - sum := 0 - if RobustSign(b, o, a) != Clockwise { - sum++ - } - if RobustSign(c, o, b) != Clockwise { - sum++ - } - if RobustSign(a, o, c) == CounterClockwise { - sum++ - } - return sum >= 2 -} - -// Distance returns the angle between two points. -func (p Point) Distance(b Point) s1.Angle { - return p.Vector.Angle(b.Vector) -} - -// ApproxEqual reports whether the two points are similar enough to be equal. -func (p Point) ApproxEqual(other Point) bool { - return p.approxEqual(other, s1.Angle(epsilon)) -} - -// approxEqual reports whether the two points are within the given epsilon. -func (p Point) approxEqual(other Point, eps s1.Angle) bool { - return p.Vector.Angle(other.Vector) <= eps -} - -// ChordAngleBetweenPoints constructs a ChordAngle corresponding to the distance -// between the two given points. The points must be unit length. -func ChordAngleBetweenPoints(x, y Point) s1.ChordAngle { - return s1.ChordAngle(math.Min(4.0, x.Sub(y.Vector).Norm2())) -} - -// regularPoints generates a slice of points shaped as a regular polygon with -// the numVertices vertices, all located on a circle of the specified angular radius -// around the center. The radius is the actual distance from center to each vertex. -func regularPoints(center Point, radius s1.Angle, numVertices int) []Point { - return regularPointsForFrame(getFrame(center), radius, numVertices) -} - -// regularPointsForFrame generates a slice of points shaped as a regular polygon -// with numVertices vertices, all on a circle of the specified angular radius around -// the center. The radius is the actual distance from the center to each vertex. -func regularPointsForFrame(frame matrix3x3, radius s1.Angle, numVertices int) []Point { - // We construct the loop in the given frame coordinates, with the center at - // (0, 0, 1). For a loop of radius r, the loop vertices have the form - // (x, y, z) where x^2 + y^2 = sin(r) and z = cos(r). The distance on the - // sphere (arc length) from each vertex to the center is acos(cos(r)) = r. - z := math.Cos(radius.Radians()) - r := math.Sin(radius.Radians()) - radianStep := 2 * math.Pi / float64(numVertices) - var vertices []Point - - for i := 0; i < numVertices; i++ { - angle := float64(i) * radianStep - p := Point{r3.Vector{r * math.Cos(angle), r * math.Sin(angle), z}} - vertices = append(vertices, Point{fromFrame(frame, p).Normalize()}) - } - - return vertices -} - -// CapBound returns a bounding cap for this point. -func (p Point) CapBound() Cap { - return CapFromPoint(p) -} - -// RectBound returns a bounding latitude-longitude rectangle from this point. -func (p Point) RectBound() Rect { - return RectFromLatLng(LatLngFromPoint(p)) -} - -// ContainsCell returns false as Points do not contain any other S2 types. -func (p Point) ContainsCell(c Cell) bool { return false } - -// IntersectsCell reports whether this Point intersects the given cell. -func (p Point) IntersectsCell(c Cell) bool { - return c.ContainsPoint(p) -} - -// ContainsPoint reports if this Point contains the other Point. -// (This method is named to satisfy the Region interface.) -func (p Point) ContainsPoint(other Point) bool { - return p.Contains(other) -} - -// CellUnionBound computes a covering of the Point. -func (p Point) CellUnionBound() []CellID { - return p.CapBound().CellUnionBound() -} - -// Contains reports if this Point contains the other Point. -// (This method matches all other s2 types where the reflexive Contains -// method does not contain the type's name.) -func (p Point) Contains(other Point) bool { return p == other } - -// Encode encodes the Point. -func (p Point) Encode(w io.Writer) error { - e := &encoder{w: w} - p.encode(e) - return e.err -} - -func (p Point) encode(e *encoder) { - e.writeInt8(encodingVersion) - e.writeFloat64(p.X) - e.writeFloat64(p.Y) - e.writeFloat64(p.Z) -} - -// Decode decodes the Point. -func (p *Point) Decode(r io.Reader) error { - d := &decoder{r: asByteReader(r)} - p.decode(d) - return d.err -} - -func (p *Point) decode(d *decoder) { - version := d.readInt8() - if d.err != nil { - return - } - if version != encodingVersion { - d.err = fmt.Errorf("only version %d is supported", encodingVersion) - return - } - p.X = d.readFloat64() - p.Y = d.readFloat64() - p.Z = d.readFloat64() -} - -// Rotate the given point about the given axis by the given angle. p and -// axis must be unit length; angle has no restrictions (e.g., it can be -// positive, negative, greater than 360 degrees, etc). -func Rotate(p, axis Point, angle s1.Angle) Point { - // Let M be the plane through P that is perpendicular to axis, and let - // center be the point where M intersects axis. We construct a - // right-handed orthogonal frame (dx, dy, center) such that dx is the - // vector from center to P, and dy has the same length as dx. The - // result can then be expressed as (cos(angle)*dx + sin(angle)*dy + center). - center := axis.Mul(p.Dot(axis.Vector)) - dx := p.Sub(center) - dy := axis.Cross(p.Vector) - // Mathematically the result is unit length, but normalization is necessary - // to ensure that numerical errors don't accumulate. - return Point{dx.Mul(math.Cos(angle.Radians())).Add(dy.Mul(math.Sin(angle.Radians()))).Add(center).Normalize()} -} diff --git a/backend/vendor/github.com/golang/geo/s2/point_measures.go b/backend/vendor/github.com/golang/geo/s2/point_measures.go deleted file mode 100644 index 6fa9b7ae..00000000 --- a/backend/vendor/github.com/golang/geo/s2/point_measures.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/s1" -) - -// PointArea returns the area of triangle ABC. This method combines two different -// algorithms to get accurate results for both large and small triangles. -// The maximum error is about 5e-15 (about 0.25 square meters on the Earth's -// surface), the same as GirardArea below, but unlike that method it is -// also accurate for small triangles. Example: when the true area is 100 -// square meters, PointArea yields an error about 1 trillion times smaller than -// GirardArea. -// -// All points should be unit length, and no two points should be antipodal. -// The area is always positive. -func PointArea(a, b, c Point) float64 { - // This method is based on l'Huilier's theorem, - // - // tan(E/4) = sqrt(tan(s/2) tan((s-a)/2) tan((s-b)/2) tan((s-c)/2)) - // - // where E is the spherical excess of the triangle (i.e. its area), - // a, b, c are the side lengths, and - // s is the semiperimeter (a + b + c) / 2. - // - // The only significant source of error using l'Huilier's method is the - // cancellation error of the terms (s-a), (s-b), (s-c). This leads to a - // *relative* error of about 1e-16 * s / min(s-a, s-b, s-c). This compares - // to a relative error of about 1e-15 / E using Girard's formula, where E is - // the true area of the triangle. Girard's formula can be even worse than - // this for very small triangles, e.g. a triangle with a true area of 1e-30 - // might evaluate to 1e-5. - // - // So, we prefer l'Huilier's formula unless dmin < s * (0.1 * E), where - // dmin = min(s-a, s-b, s-c). This basically includes all triangles - // except for extremely long and skinny ones. - // - // Since we don't know E, we would like a conservative upper bound on - // the triangle area in terms of s and dmin. It's possible to show that - // E <= k1 * s * sqrt(s * dmin), where k1 = 2*sqrt(3)/Pi (about 1). - // Using this, it's easy to show that we should always use l'Huilier's - // method if dmin >= k2 * s^5, where k2 is about 1e-2. Furthermore, - // if dmin < k2 * s^5, the triangle area is at most k3 * s^4, where - // k3 is about 0.1. Since the best case error using Girard's formula - // is about 1e-15, this means that we shouldn't even consider it unless - // s >= 3e-4 or so. - sa := float64(b.Angle(c.Vector)) - sb := float64(c.Angle(a.Vector)) - sc := float64(a.Angle(b.Vector)) - s := 0.5 * (sa + sb + sc) - if s >= 3e-4 { - // Consider whether Girard's formula might be more accurate. - dmin := s - math.Max(sa, math.Max(sb, sc)) - if dmin < 1e-2*s*s*s*s*s { - // This triangle is skinny enough to use Girard's formula. - area := GirardArea(a, b, c) - if dmin < s*0.1*area { - return area - } - } - } - - // Use l'Huilier's formula. - return 4 * math.Atan(math.Sqrt(math.Max(0.0, math.Tan(0.5*s)*math.Tan(0.5*(s-sa))* - math.Tan(0.5*(s-sb))*math.Tan(0.5*(s-sc))))) -} - -// GirardArea returns the area of the triangle computed using Girard's formula. -// All points should be unit length, and no two points should be antipodal. -// -// This method is about twice as fast as PointArea() but has poor relative -// accuracy for small triangles. The maximum error is about 5e-15 (about -// 0.25 square meters on the Earth's surface) and the average error is about -// 1e-15. These bounds apply to triangles of any size, even as the maximum -// edge length of the triangle approaches 180 degrees. But note that for -// such triangles, tiny perturbations of the input points can change the -// true mathematical area dramatically. -func GirardArea(a, b, c Point) float64 { - // This is equivalent to the usual Girard's formula but is slightly more - // accurate, faster to compute, and handles a == b == c without a special - // case. PointCross is necessary to get good accuracy when two of - // the input points are very close together. - ab := a.PointCross(b) - bc := b.PointCross(c) - ac := a.PointCross(c) - - area := float64(ab.Angle(ac.Vector) - ab.Angle(bc.Vector) + bc.Angle(ac.Vector)) - if area < 0 { - area = 0 - } - return area -} - -// SignedArea returns a positive value for counterclockwise triangles and a negative -// value otherwise (similar to PointArea). -func SignedArea(a, b, c Point) float64 { - return float64(RobustSign(a, b, c)) * PointArea(a, b, c) -} - -// Angle returns the interior angle at the vertex B in the triangle ABC. The -// return value is always in the range [0, pi]. All points should be -// normalized. Ensures that Angle(a,b,c) == Angle(c,b,a) for all a,b,c. -// -// The angle is undefined if A or C is diametrically opposite from B, and -// becomes numerically unstable as the length of edge AB or BC approaches -// 180 degrees. -func Angle(a, b, c Point) s1.Angle { - // PointCross is necessary to get good accuracy when two of the input - // points are very close together. - return a.PointCross(b).Angle(c.PointCross(b).Vector) -} - -// TurnAngle returns the exterior angle at vertex B in the triangle ABC. The -// return value is positive if ABC is counterclockwise and negative otherwise. -// If you imagine an ant walking from A to B to C, this is the angle that the -// ant turns at vertex B (positive = left = CCW, negative = right = CW). -// This quantity is also known as the "geodesic curvature" at B. -// -// Ensures that TurnAngle(a,b,c) == -TurnAngle(c,b,a) for all distinct -// a,b,c. The result is undefined if (a == b || b == c), but is either -// -Pi or Pi if (a == c). All points should be normalized. -func TurnAngle(a, b, c Point) s1.Angle { - // We use PointCross to get good accuracy when two points are very - // close together, and RobustSign to ensure that the sign is correct for - // turns that are close to 180 degrees. - angle := a.PointCross(b).Angle(b.PointCross(c).Vector) - - // Don't return RobustSign * angle because it is legal to have (a == c). - if RobustSign(a, b, c) == CounterClockwise { - return angle - } - return -angle -} diff --git a/backend/vendor/github.com/golang/geo/s2/point_vector.go b/backend/vendor/github.com/golang/geo/s2/point_vector.go deleted file mode 100644 index f8e6f65b..00000000 --- a/backend/vendor/github.com/golang/geo/s2/point_vector.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// Shape interface enforcement -var ( - _ Shape = (*PointVector)(nil) -) - -// PointVector is a Shape representing a set of Points. Each point -// is represented as a degenerate edge with the same starting and ending -// vertices. -// -// This type is useful for adding a collection of points to an ShapeIndex. -// -// Its methods are on *PointVector due to implementation details of ShapeIndex. -type PointVector []Point - -func (p *PointVector) NumEdges() int { return len(*p) } -func (p *PointVector) Edge(i int) Edge { return Edge{(*p)[i], (*p)[i]} } -func (p *PointVector) ReferencePoint() ReferencePoint { return OriginReferencePoint(false) } -func (p *PointVector) NumChains() int { return len(*p) } -func (p *PointVector) Chain(i int) Chain { return Chain{i, 1} } -func (p *PointVector) ChainEdge(i, j int) Edge { return Edge{(*p)[i], (*p)[j]} } -func (p *PointVector) ChainPosition(e int) ChainPosition { return ChainPosition{e, 0} } -func (p *PointVector) Dimension() int { return 0 } -func (p *PointVector) IsEmpty() bool { return defaultShapeIsEmpty(p) } -func (p *PointVector) IsFull() bool { return defaultShapeIsFull(p) } -func (p *PointVector) typeTag() typeTag { return typeTagPointVector } -func (p *PointVector) privateInterface() {} diff --git a/backend/vendor/github.com/golang/geo/s2/pointcompression.go b/backend/vendor/github.com/golang/geo/s2/pointcompression.go deleted file mode 100644 index c56295e0..00000000 --- a/backend/vendor/github.com/golang/geo/s2/pointcompression.go +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "errors" - "fmt" - - "github.com/golang/geo/r3" -) - -// maxEncodedVertices is the maximum number of vertices, in a row, to be encoded or decoded. -// On decode, this defends against malicious encodings that try and have us exceed RAM. -const maxEncodedVertices = 50000000 - -// xyzFaceSiTi represents the The XYZ and face,si,ti coordinates of a Point -// and, if this point is equal to the center of a Cell, the level of this cell -// (-1 otherwise). This is used for Loops and Polygons to store data in a more -// compressed format. -type xyzFaceSiTi struct { - xyz Point - face int - si, ti uint32 - level int -} - -const derivativeEncodingOrder = 2 - -func appendFace(faces []faceRun, face int) []faceRun { - if len(faces) == 0 || faces[len(faces)-1].face != face { - return append(faces, faceRun{face, 1}) - } - faces[len(faces)-1].count++ - return faces -} - -// encodePointsCompressed uses an optimized compressed format to encode the given values. -func encodePointsCompressed(e *encoder, vertices []xyzFaceSiTi, level int) { - var faces []faceRun - for _, v := range vertices { - faces = appendFace(faces, v.face) - } - encodeFaces(e, faces) - - type piQi struct { - pi, qi uint32 - } - verticesPiQi := make([]piQi, len(vertices)) - for i, v := range vertices { - verticesPiQi[i] = piQi{siTitoPiQi(v.si, level), siTitoPiQi(v.ti, level)} - } - piCoder, qiCoder := newNthDerivativeCoder(derivativeEncodingOrder), newNthDerivativeCoder(derivativeEncodingOrder) - for i, v := range verticesPiQi { - f := encodePointCompressed - if i == 0 { - // The first point will be just the (pi, qi) coordinates - // of the Point. NthDerivativeCoder will not save anything - // in that case, so we encode in fixed format rather than varint - // to avoid the varint overhead. - f = encodeFirstPointFixedLength - } - f(e, v.pi, v.qi, level, piCoder, qiCoder) - } - - var offCenter []int - for i, v := range vertices { - if v.level != level { - offCenter = append(offCenter, i) - } - } - e.writeUvarint(uint64(len(offCenter))) - for _, idx := range offCenter { - e.writeUvarint(uint64(idx)) - e.writeFloat64(vertices[idx].xyz.X) - e.writeFloat64(vertices[idx].xyz.Y) - e.writeFloat64(vertices[idx].xyz.Z) - } -} - -func encodeFirstPointFixedLength(e *encoder, pi, qi uint32, level int, piCoder, qiCoder *nthDerivativeCoder) { - // Do not ZigZagEncode the first point, since it cannot be negative. - codedPi, codedQi := piCoder.encode(int32(pi)), qiCoder.encode(int32(qi)) - // Interleave to reduce overhead from two partial bytes to one. - interleaved := interleaveUint32(uint32(codedPi), uint32(codedQi)) - - // Write as little endian. - bytesRequired := (level + 7) / 8 * 2 - for i := 0; i < bytesRequired; i++ { - e.writeUint8(uint8(interleaved)) - interleaved >>= 8 - } -} - -// encodePointCompressed encodes points into e. -// Given a sequence of Points assumed to be the center of level-k cells, -// compresses it into a stream using the following method: -// - decompose the points into (face, si, ti) tuples. -// - run-length encode the faces, combining face number and count into a -// varint32. See the faceRun struct. -// - right shift the (si, ti) to remove the part that's constant for all cells -// of level-k. The result is called the (pi, qi) space. -// - 2nd derivative encode the pi and qi sequences (linear prediction) -// - zig-zag encode all derivative values but the first, which cannot be -// negative -// - interleave the zig-zag encoded values -// - encode the first interleaved value in a fixed length encoding -// (varint would make this value larger) -// - encode the remaining interleaved values as varint64s, as the -// derivative encoding should make the values small. -// -// In addition, provides a lossless method to compress a sequence of points even -// if some points are not the center of level-k cells. These points are stored -// exactly, using 3 double precision values, after the above encoded string, -// together with their index in the sequence (this leads to some redundancy - it -// is expected that only a small fraction of the points are not cell centers). -// -// To encode leaf cells, this requires 8 bytes for the first vertex plus -// an average of 3.8 bytes for each additional vertex, when computed on -// Google's geographic repository. -func encodePointCompressed(e *encoder, pi, qi uint32, level int, piCoder, qiCoder *nthDerivativeCoder) { - // ZigZagEncode, as varint requires the maximum number of bytes for - // negative numbers. - zzPi := zigzagEncode(piCoder.encode(int32(pi))) - zzQi := zigzagEncode(qiCoder.encode(int32(qi))) - // Interleave to reduce overhead from two partial bytes to one. - interleaved := interleaveUint32(zzPi, zzQi) - e.writeUvarint(interleaved) -} - -type faceRun struct { - face, count int -} - -func decodeFaceRun(d *decoder) faceRun { - faceAndCount := d.readUvarint() - ret := faceRun{ - face: int(faceAndCount % numFaces), - count: int(faceAndCount / numFaces), - } - if ret.count <= 0 && d.err == nil { - d.err = errors.New("non-positive count for face run") - } - return ret -} - -func decodeFaces(numVertices int, d *decoder) []faceRun { - var frs []faceRun - for nparsed := 0; nparsed < numVertices; { - fr := decodeFaceRun(d) - if d.err != nil { - return nil - } - frs = append(frs, fr) - nparsed += fr.count - } - return frs -} - -// encodeFaceRun encodes each faceRun as a varint64 with value numFaces * count + face. -func encodeFaceRun(e *encoder, fr faceRun) { - // It isn't necessary to encode the number of faces left for the last run, - // but since this would only help if there were more than 21 faces, it will - // be a small overall savings, much smaller than the bound encoding. - coded := numFaces*uint64(fr.count) + uint64(fr.face) - e.writeUvarint(coded) -} - -func encodeFaces(e *encoder, frs []faceRun) { - for _, fr := range frs { - encodeFaceRun(e, fr) - } -} - -type facesIterator struct { - faces []faceRun - // How often have we yet shown the current face? - numCurrentFaceShown int - curFace int -} - -func (fi *facesIterator) next() (ok bool) { - if len(fi.faces) == 0 { - return false - } - fi.curFace = fi.faces[0].face - fi.numCurrentFaceShown++ - - // Advance fs if needed. - if fi.faces[0].count <= fi.numCurrentFaceShown { - fi.faces = fi.faces[1:] - fi.numCurrentFaceShown = 0 - } - - return true -} - -func decodePointsCompressed(d *decoder, level int, target []Point) { - faces := decodeFaces(len(target), d) - - piCoder := newNthDerivativeCoder(derivativeEncodingOrder) - qiCoder := newNthDerivativeCoder(derivativeEncodingOrder) - - iter := facesIterator{faces: faces} - for i := range target { - decodeFn := decodePointCompressed - if i == 0 { - decodeFn = decodeFirstPointFixedLength - } - pi, qi := decodeFn(d, level, piCoder, qiCoder) - if ok := iter.next(); !ok && d.err == nil { - d.err = fmt.Errorf("ran out of faces at target %d", i) - return - } - target[i] = Point{facePiQitoXYZ(iter.curFace, pi, qi, level)} - } - - numOffCenter := int(d.readUvarint()) - if d.err != nil { - return - } - if numOffCenter > len(target) { - d.err = fmt.Errorf("numOffCenter = %d, should be at most len(target) = %d", numOffCenter, len(target)) - return - } - for i := 0; i < numOffCenter; i++ { - idx := int(d.readUvarint()) - if d.err != nil { - return - } - if idx >= len(target) { - d.err = fmt.Errorf("off center index = %d, should be < len(target) = %d", idx, len(target)) - return - } - target[idx].X = d.readFloat64() - target[idx].Y = d.readFloat64() - target[idx].Z = d.readFloat64() - } -} - -func decodeFirstPointFixedLength(d *decoder, level int, piCoder, qiCoder *nthDerivativeCoder) (pi, qi uint32) { - bytesToRead := (level + 7) / 8 * 2 - var interleaved uint64 - for i := 0; i < bytesToRead; i++ { - rr := d.readUint8() - interleaved |= (uint64(rr) << uint(i*8)) - } - - piCoded, qiCoded := deinterleaveUint32(interleaved) - - return uint32(piCoder.decode(int32(piCoded))), uint32(qiCoder.decode(int32(qiCoded))) -} - -func zigzagEncode(x int32) uint32 { - return (uint32(x) << 1) ^ uint32(x>>31) -} - -func zigzagDecode(x uint32) int32 { - return int32((x >> 1) ^ uint32((int32(x&1)<<31)>>31)) -} - -func decodePointCompressed(d *decoder, level int, piCoder, qiCoder *nthDerivativeCoder) (pi, qi uint32) { - interleavedZigZagEncodedDerivPiQi := d.readUvarint() - piZigzag, qiZigzag := deinterleaveUint32(interleavedZigZagEncodedDerivPiQi) - return uint32(piCoder.decode(zigzagDecode(piZigzag))), uint32(qiCoder.decode(zigzagDecode(qiZigzag))) -} - -// We introduce a new coordinate system (pi, qi), which is (si, ti) -// with the bits that are constant for cells of that level shifted -// off to the right. -// si = round(s * 2^31) -// pi = si >> (31 - level) -// = floor(s * 2^level) -// If the point has been snapped to the level, the bits that are -// shifted off will be a 1 in the msb, then 0s after that, so the -// fractional part discarded by the cast is (close to) 0.5. - -// stToPiQi returns the value transformed to the PiQi coordinate space. -func stToPiQi(s float64, level uint) uint32 { - return uint32(s * float64(int(1)< max { - s = max - } - - return uint32(s >> (maxLevel + 1 - uint(level))) -} - -// piQiToST returns the value transformed to ST space. -func piQiToST(pi uint32, level int) float64 { - // We want to recover the position at the center of the cell. If the point - // was snapped to the center of the cell, then math.Modf(s * 2^level) == 0.5. - // Inverting STtoPiQi gives: - // s = (pi + 0.5) / 2^level. - return (float64(pi) + 0.5) / float64(int(1)< l.turningAngleMaxError() { - // Normalize the loop. - if angle < 0 { - l.Invert() - } - } else { - // Ensure that the loop does not contain the origin. - if l.ContainsOrigin() { - l.Invert() - } - } - } - - p := PolygonFromLoops(loops) - - if p.NumLoops() > 0 { - originLoop := p.Loop(0) - polygonContainsOrigin := false - for _, l := range p.Loops() { - if l.ContainsOrigin() { - polygonContainsOrigin = !polygonContainsOrigin - - originLoop = l - } - } - if containedOrigin[originLoop] != polygonContainsOrigin { - p.Invert() - } - } - - return p -} - -// Invert inverts the polygon (replaces it by its complement). -func (p *Polygon) Invert() { - // Inverting any one loop will invert the polygon. The best loop to invert - // is the one whose area is largest, since this yields the smallest area - // after inversion. The loop with the largest area is always at depth 0. - // The descendents of this loop all have their depth reduced by 1, while the - // former siblings of this loop all have their depth increased by 1. - - // The empty and full polygons are handled specially. - if p.IsEmpty() { - *p = *FullPolygon() - p.initLoopProperties() - return - } - if p.IsFull() { - *p = Polygon{} - p.initLoopProperties() - return - } - - // Find the loop whose area is largest (i.e., whose turning angle is - // smallest), minimizing calls to TurningAngle(). In particular, for - // polygons with a single shell at level 0 there is no need to call - // TurningAngle() at all. (This method is relatively expensive.) - best := 0 - const none = 10.0 // Flag that means "not computed yet" - bestAngle := none - for i := 1; i < p.NumLoops(); i++ { - if p.Loop(i).depth != 0 { - continue - } - // We defer computing the turning angle of loop 0 until we discover - // that the polygon has another top-level shell. - if bestAngle == none { - bestAngle = p.Loop(best).TurningAngle() - } - angle := p.Loop(i).TurningAngle() - // We break ties deterministically in order to avoid having the output - // depend on the input order of the loops. - if angle < bestAngle || (angle == bestAngle && compareLoops(p.Loop(i), p.Loop(best)) < 0) { - best = i - bestAngle = angle - } - } - // Build the new loops vector, starting with the inverted loop. - p.Loop(best).Invert() - newLoops := make([]*Loop, 0, p.NumLoops()) - // Add the former siblings of this loop as descendants. - lastBest := p.LastDescendant(best) - newLoops = append(newLoops, p.Loop(best)) - for i, l := range p.Loops() { - if i < best || i > lastBest { - l.depth++ - newLoops = append(newLoops, l) - } - } - // Add the former children of this loop as siblings. - for i, l := range p.Loops() { - if i > best && i <= lastBest { - l.depth-- - newLoops = append(newLoops, l) - } - } - - p.loops = newLoops - p.initLoopProperties() -} - -// Defines a total ordering on Loops that does not depend on the cyclic -// order of loop vertices. This function is used to choose which loop to -// invert in the case where several loops have exactly the same area. -func compareLoops(a, b *Loop) int { - if na, nb := a.NumVertices(), b.NumVertices(); na != nb { - return na - nb - } - ai, aDir := a.CanonicalFirstVertex() - bi, bDir := b.CanonicalFirstVertex() - if aDir != bDir { - return aDir - bDir - } - for n := a.NumVertices() - 1; n >= 0; n, ai, bi = n-1, ai+aDir, bi+bDir { - if cmp := a.Vertex(ai).Cmp(b.Vertex(bi).Vector); cmp != 0 { - return cmp - } - } - return 0 -} - -// PolygonFromCell returns a Polygon from a single loop created from the given Cell. -func PolygonFromCell(cell Cell) *Polygon { - return PolygonFromLoops([]*Loop{LoopFromCell(cell)}) -} - -// initNested takes the set of loops in this polygon and performs the nesting -// computations to set the proper nesting and parent/child relationships. -func (p *Polygon) initNested() { - if len(p.loops) == 1 { - p.initOneLoop() - return - } - - lm := make(loopMap) - - for _, l := range p.loops { - lm.insertLoop(l, nil) - } - // The loops have all been added to the loopMap for ordering. Clear the - // loops slice because we add all the loops in-order in initLoops. - p.loops = nil - - // Reorder the loops in depth-first traversal order. - p.initLoops(lm) - p.initLoopProperties() -} - -// loopMap is a map of a loop to its immediate children with respect to nesting. -// It is used to determine which loops are shells and which are holes. -type loopMap map[*Loop][]*Loop - -// insertLoop adds the given loop to the loop map under the specified parent. -// All children of the new entry are checked to see if the need to move up to -// a different level. -func (lm loopMap) insertLoop(newLoop, parent *Loop) { - var children []*Loop - for done := false; !done; { - children = lm[parent] - done = true - for _, child := range children { - if child.ContainsNested(newLoop) { - parent = child - done = false - break - } - } - } - - // Now, we have found a parent for this loop, it may be that some of the - // children of the parent of this loop may now be children of the new loop. - newChildren := lm[newLoop] - for i := 0; i < len(children); { - child := children[i] - if newLoop.ContainsNested(child) { - newChildren = append(newChildren, child) - children = append(children[0:i], children[i+1:]...) - } else { - i++ - } - } - - lm[newLoop] = newChildren - lm[parent] = append(children, newLoop) -} - -// loopStack simplifies access to the loops while being initialized. -type loopStack []*Loop - -func (s *loopStack) push(v *Loop) { - *s = append(*s, v) -} -func (s *loopStack) pop() *Loop { - l := len(*s) - r := (*s)[l-1] - *s = (*s)[:l-1] - return r -} - -// initLoops walks the mapping of loops to all of their children, and adds them in -// order into to the polygons set of loops. -func (p *Polygon) initLoops(lm loopMap) { - var stack loopStack - stack.push(nil) - depth := -1 - - for len(stack) > 0 { - loop := stack.pop() - if loop != nil { - depth = loop.depth - p.loops = append(p.loops, loop) - } - children := lm[loop] - for i := len(children) - 1; i >= 0; i-- { - child := children[i] - child.depth = depth + 1 - stack.push(child) - } - } -} - -// initOneLoop set the properties for a polygon made of a single loop. -// TODO(roberts): Can this be merged with initLoopProperties -func (p *Polygon) initOneLoop() { - p.hasHoles = false - p.numVertices = len(p.loops[0].vertices) - p.bound = p.loops[0].RectBound() - p.subregionBound = ExpandForSubregions(p.bound) - // Ensure the loops depth is set correctly. - p.loops[0].depth = 0 - - p.initEdgesAndIndex() -} - -// initLoopProperties sets the properties for polygons with multiple loops. -func (p *Polygon) initLoopProperties() { - p.numVertices = 0 - // the loops depths are set by initNested/initOriented prior to this. - p.bound = EmptyRect() - p.hasHoles = false - for _, l := range p.loops { - if l.IsHole() { - p.hasHoles = true - } else { - p.bound = p.bound.Union(l.RectBound()) - } - p.numVertices += l.NumVertices() - } - p.subregionBound = ExpandForSubregions(p.bound) - - p.initEdgesAndIndex() -} - -// initEdgesAndIndex performs the shape related initializations and adds the final -// polygon to the index. -func (p *Polygon) initEdgesAndIndex() { - p.numEdges = 0 - p.cumulativeEdges = nil - if p.IsFull() { - return - } - const maxLinearSearchLoops = 12 // Based on benchmarks. - if len(p.loops) > maxLinearSearchLoops { - p.cumulativeEdges = make([]int, 0, len(p.loops)) - } - - for _, l := range p.loops { - if p.cumulativeEdges != nil { - p.cumulativeEdges = append(p.cumulativeEdges, p.numEdges) - } - p.numEdges += len(l.vertices) - } - - p.index = NewShapeIndex() - p.index.Add(p) -} - -// FullPolygon returns a special "full" polygon. -func FullPolygon() *Polygon { - ret := &Polygon{ - loops: []*Loop{ - FullLoop(), - }, - numVertices: len(FullLoop().Vertices()), - bound: FullRect(), - subregionBound: FullRect(), - } - ret.initEdgesAndIndex() - return ret -} - -// Validate checks whether this is a valid polygon, -// including checking whether all the loops are themselves valid. -func (p *Polygon) Validate() error { - for i, l := range p.loops { - // Check for loop errors that don't require building a ShapeIndex. - if err := l.findValidationErrorNoIndex(); err != nil { - return fmt.Errorf("loop %d: %v", i, err) - } - // Check that no loop is empty, and that the full loop only appears in the - // full polygon. - if l.IsEmpty() { - return fmt.Errorf("loop %d: empty loops are not allowed", i) - } - if l.IsFull() && len(p.loops) > 1 { - return fmt.Errorf("loop %d: full loop appears in non-full polygon", i) - } - } - - // TODO(roberts): Uncomment the remaining checks when they are completed. - - // Check for loop self-intersections and loop pairs that cross - // (including duplicate edges and vertices). - // if findSelfIntersection(p.index) { - // return fmt.Errorf("polygon has loop pairs that cross") - // } - - // Check whether initOriented detected inconsistent loop orientations. - // if p.hasInconsistentLoopOrientations { - // return fmt.Errorf("inconsistent loop orientations detected") - // } - - // Finally, verify the loop nesting hierarchy. - return p.findLoopNestingError() -} - -// findLoopNestingError reports if there is an error in the loop nesting hierarchy. -func (p *Polygon) findLoopNestingError() error { - // First check that the loop depths make sense. - lastDepth := -1 - for i, l := range p.loops { - depth := l.depth - if depth < 0 || depth > lastDepth+1 { - return fmt.Errorf("loop %d: invalid loop depth (%d)", i, depth) - } - lastDepth = depth - } - // Then check that they correspond to the actual loop nesting. This test - // is quadratic in the number of loops but the cost per iteration is small. - for i, l := range p.loops { - last := p.LastDescendant(i) - for j, l2 := range p.loops { - if i == j { - continue - } - nested := (j >= i+1) && (j <= last) - const reverseB = false - - if l.containsNonCrossingBoundary(l2, reverseB) != nested { - nestedStr := "" - if !nested { - nestedStr = "not " - } - return fmt.Errorf("invalid nesting: loop %d should %scontain loop %d", i, nestedStr, j) - } - } - } - return nil -} - -// IsEmpty reports whether this is the special "empty" polygon (consisting of no loops). -func (p *Polygon) IsEmpty() bool { - return len(p.loops) == 0 -} - -// IsFull reports whether this is the special "full" polygon (consisting of a -// single loop that encompasses the entire sphere). -func (p *Polygon) IsFull() bool { - return len(p.loops) == 1 && p.loops[0].IsFull() -} - -// NumLoops returns the number of loops in this polygon. -func (p *Polygon) NumLoops() int { - return len(p.loops) -} - -// Loops returns the loops in this polygon. -func (p *Polygon) Loops() []*Loop { - return p.loops -} - -// Loop returns the loop at the given index. Note that during initialization, -// the given loops are reordered according to a pre-order traversal of the loop -// nesting hierarchy. This implies that every loop is immediately followed by -// its descendants. This hierarchy can be traversed using the methods Parent, -// LastDescendant, and Loop.depth. -func (p *Polygon) Loop(k int) *Loop { - return p.loops[k] -} - -// Parent returns the index of the parent of loop k. -// If the loop does not have a parent, ok=false is returned. -func (p *Polygon) Parent(k int) (index int, ok bool) { - // See where we are on the depth hierarchy. - depth := p.loops[k].depth - if depth == 0 { - return -1, false - } - - // There may be several loops at the same nesting level as us that share a - // parent loop with us. (Imagine a slice of swiss cheese, of which we are one loop. - // we don't know how many may be next to us before we get back to our parent loop.) - // Move up one position from us, and then begin traversing back through the set of loops - // until we find the one that is our parent or we get to the top of the polygon. - for k--; k >= 0 && p.loops[k].depth <= depth; k-- { - } - return k, true -} - -// LastDescendant returns the index of the last loop that is contained within loop k. -// If k is negative, it returns the last loop in the polygon. -// Note that loops are indexed according to a pre-order traversal of the nesting -// hierarchy, so the immediate children of loop k can be found by iterating over -// the loops (k+1)..LastDescendant(k) and selecting those whose depth is equal -// to Loop(k).depth+1. -func (p *Polygon) LastDescendant(k int) int { - if k < 0 { - return len(p.loops) - 1 - } - - depth := p.loops[k].depth - - // Find the next loop immediately past us in the set of loops, and then start - // moving down the list until we either get to the end or find the next loop - // that is higher up the hierarchy than we are. - for k++; k < len(p.loops) && p.loops[k].depth > depth; k++ { - } - return k - 1 -} - -// CapBound returns a bounding spherical cap. -func (p *Polygon) CapBound() Cap { return p.bound.CapBound() } - -// RectBound returns a bounding latitude-longitude rectangle. -func (p *Polygon) RectBound() Rect { return p.bound } - -// ContainsPoint reports whether the polygon contains the point. -func (p *Polygon) ContainsPoint(point Point) bool { - // NOTE: A bounds check slows down this function by about 50%. It is - // worthwhile only when it might allow us to delay building the index. - if !p.index.IsFresh() && !p.bound.ContainsPoint(point) { - return false - } - - // For small polygons, and during initial construction, it is faster to just - // check all the crossing. - const maxBruteForceVertices = 32 - if p.numVertices < maxBruteForceVertices || p.index == nil { - inside := false - for _, l := range p.loops { - // use loops bruteforce to avoid building the index on each loop. - inside = inside != l.bruteForceContainsPoint(point) - } - return inside - } - - // Otherwise we look up the ShapeIndex cell containing this point. - return NewContainsPointQuery(p.index, VertexModelSemiOpen).Contains(point) -} - -// ContainsCell reports whether the polygon contains the given cell. -func (p *Polygon) ContainsCell(cell Cell) bool { - it := p.index.Iterator() - relation := it.LocateCellID(cell.ID()) - - // If "cell" is disjoint from all index cells, it is not contained. - // Similarly, if "cell" is subdivided into one or more index cells then it - // is not contained, since index cells are subdivided only if they (nearly) - // intersect a sufficient number of edges. (But note that if "cell" itself - // is an index cell then it may be contained, since it could be a cell with - // no edges in the loop interior.) - if relation != Indexed { - return false - } - - // Otherwise check if any edges intersect "cell". - if p.boundaryApproxIntersects(it, cell) { - return false - } - - // Otherwise check if the loop contains the center of "cell". - return p.iteratorContainsPoint(it, cell.Center()) -} - -// IntersectsCell reports whether the polygon intersects the given cell. -func (p *Polygon) IntersectsCell(cell Cell) bool { - it := p.index.Iterator() - relation := it.LocateCellID(cell.ID()) - - // If cell does not overlap any index cell, there is no intersection. - if relation == Disjoint { - return false - } - // If cell is subdivided into one or more index cells, there is an - // intersection to within the S2ShapeIndex error bound (see Contains). - if relation == Subdivided { - return true - } - // If cell is an index cell, there is an intersection because index cells - // are created only if they have at least one edge or they are entirely - // contained by the loop. - if it.CellID() == cell.id { - return true - } - // Otherwise check if any edges intersect cell. - if p.boundaryApproxIntersects(it, cell) { - return true - } - // Otherwise check if the loop contains the center of cell. - return p.iteratorContainsPoint(it, cell.Center()) -} - -// CellUnionBound computes a covering of the Polygon. -func (p *Polygon) CellUnionBound() []CellID { - // TODO(roberts): Use ShapeIndexRegion when it's available. - return p.CapBound().CellUnionBound() -} - -// boundaryApproxIntersects reports whether the loop's boundary intersects cell. -// It may also return true when the loop boundary does not intersect cell but -// some edge comes within the worst-case error tolerance. -// -// This requires that it.Locate(cell) returned Indexed. -func (p *Polygon) boundaryApproxIntersects(it *ShapeIndexIterator, cell Cell) bool { - aClipped := it.IndexCell().findByShapeID(0) - - // If there are no edges, there is no intersection. - if len(aClipped.edges) == 0 { - return false - } - - // We can save some work if cell is the index cell itself. - if it.CellID() == cell.ID() { - return true - } - - // Otherwise check whether any of the edges intersect cell. - maxError := (faceClipErrorUVCoord + intersectsRectErrorUVDist) - bound := cell.BoundUV().ExpandedByMargin(maxError) - for _, e := range aClipped.edges { - edge := p.index.Shape(0).Edge(e) - v0, v1, ok := ClipToPaddedFace(edge.V0, edge.V1, cell.Face(), maxError) - if ok && edgeIntersectsRect(v0, v1, bound) { - return true - } - } - - return false -} - -// iteratorContainsPoint reports whether the iterator that is positioned at the -// ShapeIndexCell that may contain p, contains the point p. -func (p *Polygon) iteratorContainsPoint(it *ShapeIndexIterator, point Point) bool { - // Test containment by drawing a line segment from the cell center to the - // given point and counting edge crossings. - aClipped := it.IndexCell().findByShapeID(0) - inside := aClipped.containsCenter - - if len(aClipped.edges) == 0 { - return inside - } - - // This block requires ShapeIndex. - crosser := NewEdgeCrosser(it.Center(), point) - shape := p.index.Shape(0) - for _, e := range aClipped.edges { - edge := shape.Edge(e) - inside = inside != crosser.EdgeOrVertexCrossing(edge.V0, edge.V1) - } - - return inside -} - -// Shape Interface - -// NumEdges returns the number of edges in this shape. -func (p *Polygon) NumEdges() int { - return p.numEdges -} - -// Edge returns endpoints for the given edge index. -func (p *Polygon) Edge(e int) Edge { - var i int - - if len(p.cumulativeEdges) > 0 { - for i = range p.cumulativeEdges { - if i+1 >= len(p.cumulativeEdges) || e < p.cumulativeEdges[i+1] { - e -= p.cumulativeEdges[i] - break - } - } - } else { - // When the number of loops is small, use linear search. Most often - // there is exactly one loop and the code below executes zero times. - for i = 0; e >= len(p.Loop(i).vertices); i++ { - e -= len(p.Loop(i).vertices) - } - } - - return Edge{p.Loop(i).OrientedVertex(e), p.Loop(i).OrientedVertex(e + 1)} -} - -// ReferencePoint returns the reference point for this polygon. -func (p *Polygon) ReferencePoint() ReferencePoint { - containsOrigin := false - for _, l := range p.loops { - containsOrigin = containsOrigin != l.ContainsOrigin() - } - return OriginReferencePoint(containsOrigin) -} - -// NumChains reports the number of contiguous edge chains in the Polygon. -func (p *Polygon) NumChains() int { - return p.NumLoops() -} - -// Chain returns the i-th edge Chain (loop) in the Shape. -func (p *Polygon) Chain(chainID int) Chain { - if p.cumulativeEdges != nil { - return Chain{p.cumulativeEdges[chainID], len(p.Loop(chainID).vertices)} - } - e := 0 - for j := 0; j < chainID; j++ { - e += len(p.Loop(j).vertices) - } - - // Polygon represents a full loop as a loop with one vertex, while - // Shape represents a full loop as a chain with no vertices. - if numVertices := p.Loop(chainID).NumVertices(); numVertices != 1 { - return Chain{e, numVertices} - } - return Chain{e, 0} -} - -// ChainEdge returns the j-th edge of the i-th edge Chain (loop). -func (p *Polygon) ChainEdge(i, j int) Edge { - return Edge{p.Loop(i).OrientedVertex(j), p.Loop(i).OrientedVertex(j + 1)} -} - -// ChainPosition returns a pair (i, j) such that edgeID is the j-th edge -// of the i-th edge Chain. -func (p *Polygon) ChainPosition(edgeID int) ChainPosition { - var i int - - if len(p.cumulativeEdges) > 0 { - for i = range p.cumulativeEdges { - if i+1 >= len(p.cumulativeEdges) || edgeID < p.cumulativeEdges[i+1] { - edgeID -= p.cumulativeEdges[i] - break - } - } - } else { - // When the number of loops is small, use linear search. Most often - // there is exactly one loop and the code below executes zero times. - for i = 0; edgeID >= len(p.Loop(i).vertices); i++ { - edgeID -= len(p.Loop(i).vertices) - } - } - // TODO(roberts): unify this and Edge since they are mostly identical. - return ChainPosition{i, edgeID} -} - -// Dimension returns the dimension of the geometry represented by this Polygon. -func (p *Polygon) Dimension() int { return 2 } - -func (p *Polygon) typeTag() typeTag { return typeTagPolygon } - -func (p *Polygon) privateInterface() {} - -// Contains reports whether this polygon contains the other polygon. -// Specifically, it reports whether all the points in the other polygon -// are also in this polygon. -func (p *Polygon) Contains(o *Polygon) bool { - // If both polygons have one loop, use the more efficient Loop method. - // Note that Loop's Contains does its own bounding rectangle check. - if len(p.loops) == 1 && len(o.loops) == 1 { - return p.loops[0].Contains(o.loops[0]) - } - - // Otherwise if neither polygon has holes, we can still use the more - // efficient Loop's Contains method (rather than compareBoundary), - // but it's worthwhile to do our own bounds check first. - if !p.subregionBound.Contains(o.bound) { - // Even though Bound(A) does not contain Bound(B), it is still possible - // that A contains B. This can only happen when union of the two bounds - // spans all longitudes. For example, suppose that B consists of two - // shells with a longitude gap between them, while A consists of one shell - // that surrounds both shells of B but goes the other way around the - // sphere (so that it does not intersect the longitude gap). - if !p.bound.Lng.Union(o.bound.Lng).IsFull() { - return false - } - } - - if !p.hasHoles && !o.hasHoles { - for _, l := range o.loops { - if !p.anyLoopContains(l) { - return false - } - } - return true - } - - // Polygon A contains B iff B does not intersect the complement of A. From - // the intersection algorithm below, this means that the complement of A - // must exclude the entire boundary of B, and B must exclude all shell - // boundaries of the complement of A. (It can be shown that B must then - // exclude the entire boundary of the complement of A.) The first call - // below returns false if the boundaries cross, therefore the second call - // does not need to check for any crossing edges (which makes it cheaper). - return p.containsBoundary(o) && o.excludesNonCrossingComplementShells(p) -} - -// Intersects reports whether this polygon intersects the other polygon, i.e. -// if there is a point that is contained by both polygons. -func (p *Polygon) Intersects(o *Polygon) bool { - // If both polygons have one loop, use the more efficient Loop method. - // Note that Loop Intersects does its own bounding rectangle check. - if len(p.loops) == 1 && len(o.loops) == 1 { - return p.loops[0].Intersects(o.loops[0]) - } - - // Otherwise if neither polygon has holes, we can still use the more - // efficient Loop.Intersects method. The polygons intersect if and - // only if some pair of loop regions intersect. - if !p.bound.Intersects(o.bound) { - return false - } - - if !p.hasHoles && !o.hasHoles { - for _, l := range o.loops { - if p.anyLoopIntersects(l) { - return true - } - } - return false - } - - // Polygon A is disjoint from B if A excludes the entire boundary of B and B - // excludes all shell boundaries of A. (It can be shown that B must then - // exclude the entire boundary of A.) The first call below returns false if - // the boundaries cross, therefore the second call does not need to check - // for crossing edges. - return !p.excludesBoundary(o) || !o.excludesNonCrossingShells(p) -} - -// compareBoundary returns +1 if this polygon contains the boundary of B, -1 if A -// excludes the boundary of B, and 0 if the boundaries of A and B cross. -func (p *Polygon) compareBoundary(o *Loop) int { - result := -1 - for i := 0; i < len(p.loops) && result != 0; i++ { - // If B crosses any loop of A, the result is 0. Otherwise the result - // changes sign each time B is contained by a loop of A. - result *= -p.loops[i].compareBoundary(o) - } - return result -} - -// containsBoundary reports whether this polygon contains the entire boundary of B. -func (p *Polygon) containsBoundary(o *Polygon) bool { - for _, l := range o.loops { - if p.compareBoundary(l) <= 0 { - return false - } - } - return true -} - -// excludesBoundary reports whether this polygon excludes the entire boundary of B. -func (p *Polygon) excludesBoundary(o *Polygon) bool { - for _, l := range o.loops { - if p.compareBoundary(l) >= 0 { - return false - } - } - return true -} - -// containsNonCrossingBoundary reports whether polygon A contains the boundary of -// loop B. Shared edges are handled according to the rule described in loops -// containsNonCrossingBoundary. -func (p *Polygon) containsNonCrossingBoundary(o *Loop, reverse bool) bool { - var inside bool - for _, l := range p.loops { - x := l.containsNonCrossingBoundary(o, reverse) - inside = (inside != x) - } - return inside -} - -// excludesNonCrossingShells reports wheterh given two polygons A and B such that the -// boundary of A does not cross any loop of B, if A excludes all shell boundaries of B. -func (p *Polygon) excludesNonCrossingShells(o *Polygon) bool { - for _, l := range o.loops { - if l.IsHole() { - continue - } - if p.containsNonCrossingBoundary(l, false) { - return false - } - } - return true -} - -// excludesNonCrossingComplementShells reports whether given two polygons A and B -// such that the boundary of A does not cross any loop of B, if A excludes all -// shell boundaries of the complement of B. -func (p *Polygon) excludesNonCrossingComplementShells(o *Polygon) bool { - // Special case to handle the complement of the empty or full polygons. - if o.IsEmpty() { - return !p.IsFull() - } - if o.IsFull() { - return true - } - - // Otherwise the complement of B may be obtained by inverting loop(0) and - // then swapping the shell/hole status of all other loops. This implies - // that the shells of the complement consist of loop 0 plus all the holes of - // the original polygon. - for j, l := range o.loops { - if j > 0 && !l.IsHole() { - continue - } - - // The interior of the complement is to the right of loop 0, and to the - // left of the loops that were originally holes. - if p.containsNonCrossingBoundary(l, j == 0) { - return false - } - } - return true -} - -// anyLoopContains reports whether any loop in this polygon contains the given loop. -func (p *Polygon) anyLoopContains(o *Loop) bool { - for _, l := range p.loops { - if l.Contains(o) { - return true - } - } - return false -} - -// anyLoopIntersects reports whether any loop in this polygon intersects the given loop. -func (p *Polygon) anyLoopIntersects(o *Loop) bool { - for _, l := range p.loops { - if l.Intersects(o) { - return true - } - } - return false -} - -// Area returns the area of the polygon interior, i.e. the region on the left side -// of an odd number of loops. The return value is between 0 and 4*Pi. -func (p *Polygon) Area() float64 { - var area float64 - for _, loop := range p.loops { - area += float64(loop.Sign()) * loop.Area() - } - return area -} - -// Encode encodes the Polygon -func (p *Polygon) Encode(w io.Writer) error { - e := &encoder{w: w} - p.encode(e) - return e.err -} - -// encode only supports lossless encoding and not compressed format. -func (p *Polygon) encode(e *encoder) { - if p.numVertices == 0 { - p.encodeCompressed(e, maxLevel, nil) - return - } - - // Convert all the polygon vertices to XYZFaceSiTi format. - vs := make([]xyzFaceSiTi, 0, p.numVertices) - for _, l := range p.loops { - vs = append(vs, l.xyzFaceSiTiVertices()...) - } - - // Computes a histogram of the cell levels at which the vertices are snapped. - // (histogram[0] is the number of unsnapped vertices, histogram[i] the number - // of vertices snapped at level i-1). - histogram := make([]int, maxLevel+2) - for _, v := range vs { - histogram[v.level+1]++ - } - - // Compute the level at which most of the vertices are snapped. - // If multiple levels have the same maximum number of vertices - // snapped to it, the first one (lowest level number / largest - // area / smallest encoding length) will be chosen, so this - // is desired. - var snapLevel, numSnapped int - for level, h := range histogram[1:] { - if h > numSnapped { - snapLevel, numSnapped = level, h - } - } - - // Choose an encoding format based on the number of unsnapped vertices and a - // rough estimate of the encoded sizes. - numUnsnapped := p.numVertices - numSnapped // Number of vertices that won't be snapped at snapLevel. - const pointSize = 3 * 8 // s2.Point is an r3.Vector, which is 3 float64s. That's 3*8 = 24 bytes. - compressedSize := 4*p.numVertices + (pointSize+2)*numUnsnapped - losslessSize := pointSize * p.numVertices - if compressedSize < losslessSize { - p.encodeCompressed(e, snapLevel, vs) - } else { - p.encodeLossless(e) - } -} - -// encodeLossless encodes the polygon's Points as float64s. -func (p *Polygon) encodeLossless(e *encoder) { - e.writeInt8(encodingVersion) - e.writeBool(true) // a legacy c++ value. must be true. - e.writeBool(p.hasHoles) - e.writeUint32(uint32(len(p.loops))) - - if e.err != nil { - return - } - if len(p.loops) > maxEncodedLoops { - e.err = fmt.Errorf("too many loops (%d; max is %d)", len(p.loops), maxEncodedLoops) - return - } - for _, l := range p.loops { - l.encode(e) - } - - // Encode the bound. - p.bound.encode(e) -} - -func (p *Polygon) encodeCompressed(e *encoder, snapLevel int, vertices []xyzFaceSiTi) { - e.writeUint8(uint8(encodingCompressedVersion)) - e.writeUint8(uint8(snapLevel)) - e.writeUvarint(uint64(len(p.loops))) - - if e.err != nil { - return - } - if l := len(p.loops); l > maxEncodedLoops { - e.err = fmt.Errorf("too many loops to encode: %d; max is %d", l, maxEncodedLoops) - return - } - - for _, l := range p.loops { - l.encodeCompressed(e, snapLevel, vertices[:len(l.vertices)]) - vertices = vertices[len(l.vertices):] - } - // Do not write the bound, num_vertices, or has_holes_ as they can be - // cheaply recomputed by decodeCompressed. Microbenchmarks show the - // speed difference is inconsequential. -} - -// Decode decodes the Polygon. -func (p *Polygon) Decode(r io.Reader) error { - d := &decoder{r: asByteReader(r)} - version := int8(d.readUint8()) - var dec func(*decoder) - switch version { - case encodingVersion: - dec = p.decode - case encodingCompressedVersion: - dec = p.decodeCompressed - default: - return fmt.Errorf("unsupported version %d", version) - } - dec(d) - return d.err -} - -// maxEncodedLoops is the biggest supported number of loops in a polygon during encoding. -// Setting a maximum guards an allocation: it prevents an attacker from easily pushing us OOM. -const maxEncodedLoops = 10000000 - -func (p *Polygon) decode(d *decoder) { - *p = Polygon{} - d.readUint8() // Ignore irrelevant serialized owns_loops_ value. - - p.hasHoles = d.readBool() - - // Polygons with no loops are explicitly allowed here: a newly created - // polygon has zero loops and such polygons encode and decode properly. - nloops := d.readUint32() - if d.err != nil { - return - } - if nloops > maxEncodedLoops { - d.err = fmt.Errorf("too many loops (%d; max is %d)", nloops, maxEncodedLoops) - return - } - p.loops = make([]*Loop, nloops) - for i := range p.loops { - p.loops[i] = new(Loop) - p.loops[i].decode(d) - p.numVertices += len(p.loops[i].vertices) - } - - p.bound.decode(d) - if d.err != nil { - return - } - p.subregionBound = ExpandForSubregions(p.bound) - p.initEdgesAndIndex() -} - -func (p *Polygon) decodeCompressed(d *decoder) { - snapLevel := int(d.readUint8()) - - if snapLevel > maxLevel { - d.err = fmt.Errorf("snaplevel too big: %d", snapLevel) - return - } - // Polygons with no loops are explicitly allowed here: a newly created - // polygon has zero loops and such polygons encode and decode properly. - nloops := int(d.readUvarint()) - if nloops > maxEncodedLoops { - d.err = fmt.Errorf("too many loops (%d; max is %d)", nloops, maxEncodedLoops) - } - p.loops = make([]*Loop, nloops) - for i := range p.loops { - p.loops[i] = new(Loop) - p.loops[i].decodeCompressed(d, snapLevel) - } - p.initLoopProperties() -} - -// TODO(roberts): Differences from C++ -// Centroid -// SnapLevel -// DistanceToPoint -// DistanceToBoundary -// Project -// ProjectToBoundary -// ApproxContains/ApproxDisjoint for Polygons -// InitTo{Intersection/ApproxIntersection/Union/ApproxUnion/Diff/ApproxDiff} -// InitToSimplified -// InitToSnapped -// IntersectWithPolyline -// ApproxIntersectWithPolyline -// SubtractFromPolyline -// ApproxSubtractFromPolyline -// DestructiveUnion -// DestructiveApproxUnion -// InitToCellUnionBorder -// IsNormalized -// Equal/BoundaryEqual/BoundaryApproxEqual/BoundaryNear Polygons -// BreakEdgesAndAddToBuilder -// -// clearLoops -// findLoopNestingError -// initToSimplifiedInternal -// internalClipPolyline -// clipBoundary diff --git a/backend/vendor/github.com/golang/geo/s2/polyline.go b/backend/vendor/github.com/golang/geo/s2/polyline.go deleted file mode 100644 index 90eb7195..00000000 --- a/backend/vendor/github.com/golang/geo/s2/polyline.go +++ /dev/null @@ -1,589 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "io" - "math" - - "github.com/golang/geo/s1" -) - -// Polyline represents a sequence of zero or more vertices connected by -// straight edges (geodesics). Edges of length 0 and 180 degrees are not -// allowed, i.e. adjacent vertices should not be identical or antipodal. -type Polyline []Point - -// PolylineFromLatLngs creates a new Polyline from the given LatLngs. -func PolylineFromLatLngs(points []LatLng) *Polyline { - p := make(Polyline, len(points)) - for k, v := range points { - p[k] = PointFromLatLng(v) - } - return &p -} - -// Reverse reverses the order of the Polyline vertices. -func (p *Polyline) Reverse() { - for i := 0; i < len(*p)/2; i++ { - (*p)[i], (*p)[len(*p)-i-1] = (*p)[len(*p)-i-1], (*p)[i] - } -} - -// Length returns the length of this Polyline. -func (p *Polyline) Length() s1.Angle { - var length s1.Angle - - for i := 1; i < len(*p); i++ { - length += (*p)[i-1].Distance((*p)[i]) - } - return length -} - -// Centroid returns the true centroid of the polyline multiplied by the length of the -// polyline. The result is not unit length, so you may wish to normalize it. -// -// Scaling by the Polyline length makes it easy to compute the centroid -// of several Polylines (by simply adding up their centroids). -func (p *Polyline) Centroid() Point { - var centroid Point - for i := 1; i < len(*p); i++ { - // The centroid (multiplied by length) is a vector toward the midpoint - // of the edge, whose length is twice the sin of half the angle between - // the two vertices. Defining theta to be this angle, we have: - vSum := (*p)[i-1].Add((*p)[i].Vector) // Length == 2*cos(theta) - vDiff := (*p)[i-1].Sub((*p)[i].Vector) // Length == 2*sin(theta) - - // Length == 2*sin(theta) - centroid = Point{centroid.Add(vSum.Mul(math.Sqrt(vDiff.Norm2() / vSum.Norm2())))} - } - return centroid -} - -// Equal reports whether the given Polyline is exactly the same as this one. -func (p *Polyline) Equal(b *Polyline) bool { - if len(*p) != len(*b) { - return false - } - for i, v := range *p { - if v != (*b)[i] { - return false - } - } - - return true -} - -// ApproxEqual reports whether two polylines have the same number of vertices, -// and corresponding vertex pairs are separated by no more the standard margin. -func (p *Polyline) ApproxEqual(o *Polyline) bool { - return p.approxEqual(o, s1.Angle(epsilon)) -} - -// approxEqual reports whether two polylines are equal within the given margin. -func (p *Polyline) approxEqual(o *Polyline, maxError s1.Angle) bool { - if len(*p) != len(*o) { - return false - } - for offset, val := range *p { - if !val.approxEqual((*o)[offset], maxError) { - return false - } - } - return true -} - -// CapBound returns the bounding Cap for this Polyline. -func (p *Polyline) CapBound() Cap { - return p.RectBound().CapBound() -} - -// RectBound returns the bounding Rect for this Polyline. -func (p *Polyline) RectBound() Rect { - rb := NewRectBounder() - for _, v := range *p { - rb.AddPoint(v) - } - return rb.RectBound() -} - -// ContainsCell reports whether this Polyline contains the given Cell. Always returns false -// because "containment" is not numerically well-defined except at the Polyline vertices. -func (p *Polyline) ContainsCell(cell Cell) bool { - return false -} - -// IntersectsCell reports whether this Polyline intersects the given Cell. -func (p *Polyline) IntersectsCell(cell Cell) bool { - if len(*p) == 0 { - return false - } - - // We only need to check whether the cell contains vertex 0 for correctness, - // but these tests are cheap compared to edge crossings so we might as well - // check all the vertices. - for _, v := range *p { - if cell.ContainsPoint(v) { - return true - } - } - - cellVertices := []Point{ - cell.Vertex(0), - cell.Vertex(1), - cell.Vertex(2), - cell.Vertex(3), - } - - for j := 0; j < 4; j++ { - crosser := NewChainEdgeCrosser(cellVertices[j], cellVertices[(j+1)&3], (*p)[0]) - for i := 1; i < len(*p); i++ { - if crosser.ChainCrossingSign((*p)[i]) != DoNotCross { - // There is a proper crossing, or two vertices were the same. - return true - } - } - } - return false -} - -// ContainsPoint returns false since Polylines are not closed. -func (p *Polyline) ContainsPoint(point Point) bool { - return false -} - -// CellUnionBound computes a covering of the Polyline. -func (p *Polyline) CellUnionBound() []CellID { - return p.CapBound().CellUnionBound() -} - -// NumEdges returns the number of edges in this shape. -func (p *Polyline) NumEdges() int { - if len(*p) == 0 { - return 0 - } - return len(*p) - 1 -} - -// Edge returns endpoints for the given edge index. -func (p *Polyline) Edge(i int) Edge { - return Edge{(*p)[i], (*p)[i+1]} -} - -// ReferencePoint returns the default reference point with negative containment because Polylines are not closed. -func (p *Polyline) ReferencePoint() ReferencePoint { - return OriginReferencePoint(false) -} - -// NumChains reports the number of contiguous edge chains in this Polyline. -func (p *Polyline) NumChains() int { - return minInt(1, p.NumEdges()) -} - -// Chain returns the i-th edge Chain in the Shape. -func (p *Polyline) Chain(chainID int) Chain { - return Chain{0, p.NumEdges()} -} - -// ChainEdge returns the j-th edge of the i-th edge Chain. -func (p *Polyline) ChainEdge(chainID, offset int) Edge { - return Edge{(*p)[offset], (*p)[offset+1]} -} - -// ChainPosition returns a pair (i, j) such that edgeID is the j-th edge -func (p *Polyline) ChainPosition(edgeID int) ChainPosition { - return ChainPosition{0, edgeID} -} - -// Dimension returns the dimension of the geometry represented by this Polyline. -func (p *Polyline) Dimension() int { return 1 } - -// IsEmpty reports whether this shape contains no points. -func (p *Polyline) IsEmpty() bool { return defaultShapeIsEmpty(p) } - -// IsFull reports whether this shape contains all points on the sphere. -func (p *Polyline) IsFull() bool { return defaultShapeIsFull(p) } - -func (p *Polyline) typeTag() typeTag { return typeTagPolyline } - -func (p *Polyline) privateInterface() {} - -// findEndVertex reports the maximal end index such that the line segment between -// the start index and this one such that the line segment between these two -// vertices passes within the given tolerance of all interior vertices, in order. -func findEndVertex(p Polyline, tolerance s1.Angle, index int) int { - // The basic idea is to keep track of the "pie wedge" of angles - // from the starting vertex such that a ray from the starting - // vertex at that angle will pass through the discs of radius - // tolerance centered around all vertices processed so far. - // - // First we define a coordinate frame for the tangent and normal - // spaces at the starting vertex. Essentially this means picking - // three orthonormal vectors X,Y,Z such that X and Y span the - // tangent plane at the starting vertex, and Z is up. We use - // the coordinate frame to define a mapping from 3D direction - // vectors to a one-dimensional ray angle in the range (-π, - // π]. The angle of a direction vector is computed by - // transforming it into the X,Y,Z basis, and then calculating - // atan2(y,x). This mapping allows us to represent a wedge of - // angles as a 1D interval. Since the interval wraps around, we - // represent it as an Interval, i.e. an interval on the unit - // circle. - origin := p[index] - frame := getFrame(origin) - - // As we go along, we keep track of the current wedge of angles - // and the distance to the last vertex (which must be - // non-decreasing). - currentWedge := s1.FullInterval() - var lastDistance s1.Angle - - for index++; index < len(p); index++ { - candidate := p[index] - distance := origin.Distance(candidate) - - // We don't allow simplification to create edges longer than - // 90 degrees, to avoid numeric instability as lengths - // approach 180 degrees. We do need to allow for original - // edges longer than 90 degrees, though. - if distance > math.Pi/2 && lastDistance > 0 { - break - } - - // Vertices must be in increasing order along the ray, except - // for the initial disc around the origin. - if distance < lastDistance && lastDistance > tolerance { - break - } - - lastDistance = distance - - // Points that are within the tolerance distance of the origin - // do not constrain the ray direction, so we can ignore them. - if distance <= tolerance { - continue - } - - // If the current wedge of angles does not contain the angle - // to this vertex, then stop right now. Note that the wedge - // of possible ray angles is not necessarily empty yet, but we - // can't continue unless we are willing to backtrack to the - // last vertex that was contained within the wedge (since we - // don't create new vertices). This would be more complicated - // and also make the worst-case running time more than linear. - direction := toFrame(frame, candidate) - center := math.Atan2(direction.Y, direction.X) - if !currentWedge.Contains(center) { - break - } - - // To determine how this vertex constrains the possible ray - // angles, consider the triangle ABC where A is the origin, B - // is the candidate vertex, and C is one of the two tangent - // points between A and the spherical cap of radius - // tolerance centered at B. Then from the spherical law of - // sines, sin(a)/sin(A) = sin(c)/sin(C), where a and c are - // the lengths of the edges opposite A and C. In our case C - // is a 90 degree angle, therefore A = asin(sin(a) / sin(c)). - // Angle A is the half-angle of the allowable wedge. - halfAngle := math.Asin(math.Sin(tolerance.Radians()) / math.Sin(distance.Radians())) - target := s1.IntervalFromPointPair(center, center).Expanded(halfAngle) - currentWedge = currentWedge.Intersection(target) - } - - // We break out of the loop when we reach a vertex index that - // can't be included in the line segment, so back up by one - // vertex. - return index - 1 -} - -// SubsampleVertices returns a subsequence of vertex indices such that the -// polyline connecting these vertices is never further than the given tolerance from -// the original polyline. Provided the first and last vertices are distinct, -// they are always preserved; if they are not, the subsequence may contain -// only a single index. -// -// Some useful properties of the algorithm: -// -// - It runs in linear time. -// -// - The output always represents a valid polyline. In particular, adjacent -// output vertices are never identical or antipodal. -// -// - The method is not optimal, but it tends to produce 2-3% fewer -// vertices than the Douglas-Peucker algorithm with the same tolerance. -// -// - The output is parametrically equivalent to the original polyline to -// within the given tolerance. For example, if a polyline backtracks on -// itself and then proceeds onwards, the backtracking will be preserved -// (to within the given tolerance). This is different than the -// Douglas-Peucker algorithm which only guarantees geometric equivalence. -func (p *Polyline) SubsampleVertices(tolerance s1.Angle) []int { - var result []int - - if len(*p) < 1 { - return result - } - - result = append(result, 0) - clampedTolerance := s1.Angle(math.Max(tolerance.Radians(), 0)) - - for index := 0; index+1 < len(*p); { - nextIndex := findEndVertex(*p, clampedTolerance, index) - // Don't create duplicate adjacent vertices. - if (*p)[nextIndex] != (*p)[index] { - result = append(result, nextIndex) - } - index = nextIndex - } - - return result -} - -// Encode encodes the Polyline. -func (p Polyline) Encode(w io.Writer) error { - e := &encoder{w: w} - p.encode(e) - return e.err -} - -func (p Polyline) encode(e *encoder) { - e.writeInt8(encodingVersion) - e.writeUint32(uint32(len(p))) - for _, v := range p { - e.writeFloat64(v.X) - e.writeFloat64(v.Y) - e.writeFloat64(v.Z) - } -} - -// Decode decodes the polyline. -func (p *Polyline) Decode(r io.Reader) error { - d := decoder{r: asByteReader(r)} - p.decode(d) - return d.err -} - -func (p *Polyline) decode(d decoder) { - version := d.readInt8() - if d.err != nil { - return - } - if int(version) != int(encodingVersion) { - d.err = fmt.Errorf("can't decode version %d; my version: %d", version, encodingVersion) - return - } - nvertices := d.readUint32() - if d.err != nil { - return - } - if nvertices > maxEncodedVertices { - d.err = fmt.Errorf("too many vertices (%d; max is %d)", nvertices, maxEncodedVertices) - return - } - *p = make([]Point, nvertices) - for i := range *p { - (*p)[i].X = d.readFloat64() - (*p)[i].Y = d.readFloat64() - (*p)[i].Z = d.readFloat64() - } -} - -// Project returns a point on the polyline that is closest to the given point, -// and the index of the next vertex after the projected point. The -// value of that index is always in the range [1, len(polyline)]. -// The polyline must not be empty. -func (p *Polyline) Project(point Point) (Point, int) { - if len(*p) == 1 { - // If there is only one vertex, it is always closest to any given point. - return (*p)[0], 1 - } - - // Initial value larger than any possible distance on the unit sphere. - minDist := 10 * s1.Radian - minIndex := -1 - - // Find the line segment in the polyline that is closest to the point given. - for i := 1; i < len(*p); i++ { - if dist := DistanceFromSegment(point, (*p)[i-1], (*p)[i]); dist < minDist { - minDist = dist - minIndex = i - } - } - - // Compute the point on the segment found that is closest to the point given. - closest := Project(point, (*p)[minIndex-1], (*p)[minIndex]) - if closest == (*p)[minIndex] { - minIndex++ - } - - return closest, minIndex -} - -// IsOnRight reports whether the point given is on the right hand side of the -// polyline, using a naive definition of "right-hand-sideness" where the point -// is on the RHS of the polyline iff the point is on the RHS of the line segment -// in the polyline which it is closest to. -// The polyline must have at least 2 vertices. -func (p *Polyline) IsOnRight(point Point) bool { - // If the closest point C is an interior vertex of the polyline, let B and D - // be the previous and next vertices. The given point P is on the right of - // the polyline (locally) if B, P, D are ordered CCW around vertex C. - closest, next := p.Project(point) - if closest == (*p)[next-1] && next > 1 && next < len(*p) { - if point == (*p)[next-1] { - // Polyline vertices are not on the RHS. - return false - } - return OrderedCCW((*p)[next-2], point, (*p)[next], (*p)[next-1]) - } - // Otherwise, the closest point C is incident to exactly one polyline edge. - // We test the point P against that edge. - if next == len(*p) { - next-- - } - return Sign(point, (*p)[next], (*p)[next-1]) -} - -// Validate checks whether this is a valid polyline or not. -func (p *Polyline) Validate() error { - // All vertices must be unit length. - for i, pt := range *p { - if !pt.IsUnit() { - return fmt.Errorf("vertex %d is not unit length", i) - } - } - - // Adjacent vertices must not be identical or antipodal. - for i := 1; i < len(*p); i++ { - prev, cur := (*p)[i-1], (*p)[i] - if prev == cur { - return fmt.Errorf("vertices %d and %d are identical", i-1, i) - } - if prev == (Point{cur.Mul(-1)}) { - return fmt.Errorf("vertices %d and %d are antipodal", i-1, i) - } - } - - return nil -} - -// Intersects reports whether this polyline intersects the given polyline. If -// the polylines share a vertex they are considered to be intersecting. When a -// polyline endpoint is the only intersection with the other polyline, the -// function may return true or false arbitrarily. -// -// The running time is quadratic in the number of vertices. -func (p *Polyline) Intersects(o *Polyline) bool { - if len(*p) == 0 || len(*o) == 0 { - return false - } - - if !p.RectBound().Intersects(o.RectBound()) { - return false - } - - // TODO(roberts): Use ShapeIndex here. - for i := 1; i < len(*p); i++ { - crosser := NewChainEdgeCrosser((*p)[i-1], (*p)[i], (*o)[0]) - for j := 1; j < len(*o); j++ { - if crosser.ChainCrossingSign((*o)[j]) != DoNotCross { - return true - } - } - } - return false -} - -// Interpolate returns the point whose distance from vertex 0 along the polyline is -// the given fraction of the polyline's total length, and the index of -// the next vertex after the interpolated point P. Fractions less than zero -// or greater than one are clamped. The return value is unit length. The cost of -// this function is currently linear in the number of vertices. -// -// This method allows the caller to easily construct a given suffix of the -// polyline by concatenating P with the polyline vertices starting at that next -// vertex. Note that P is guaranteed to be different than the point at the next -// vertex, so this will never result in a duplicate vertex. -// -// The polyline must not be empty. Note that if fraction >= 1.0, then the next -// vertex will be set to len(p) (indicating that no vertices from the polyline -// need to be appended). The value of the next vertex is always between 1 and -// len(p). -// -// This method can also be used to construct a prefix of the polyline, by -// taking the polyline vertices up to next vertex-1 and appending the -// returned point P if it is different from the last vertex (since in this -// case there is no guarantee of distinctness). -func (p *Polyline) Interpolate(fraction float64) (Point, int) { - // We intentionally let the (fraction >= 1) case fall through, since - // we need to handle it in the loop below in any case because of - // possible roundoff errors. - if fraction <= 0 { - return (*p)[0], 1 - } - target := s1.Angle(fraction) * p.Length() - - for i := 1; i < len(*p); i++ { - length := (*p)[i-1].Distance((*p)[i]) - if target < length { - // This interpolates with respect to arc length rather than - // straight-line distance, and produces a unit-length result. - result := InterpolateAtDistance(target, (*p)[i-1], (*p)[i]) - - // It is possible that (result == vertex(i)) due to rounding errors. - if result == (*p)[i] { - return result, i + 1 - } - return result, i - } - target -= length - } - - return (*p)[len(*p)-1], len(*p) -} - -// Uninterpolate is the inverse operation of Interpolate. Given a point on the -// polyline, it returns the ratio of the distance to the point from the -// beginning of the polyline over the length of the polyline. The return -// value is always betwen 0 and 1 inclusive. -// -// The polyline should not be empty. If it has fewer than 2 vertices, the -// return value is zero. -func (p *Polyline) Uninterpolate(point Point, nextVertex int) float64 { - if len(*p) < 2 { - return 0 - } - - var sum s1.Angle - for i := 1; i < nextVertex; i++ { - sum += (*p)[i-1].Distance((*p)[i]) - } - lengthToPoint := sum + (*p)[nextVertex-1].Distance(point) - for i := nextVertex; i < len(*p); i++ { - sum += (*p)[i-1].Distance((*p)[i]) - } - // The ratio can be greater than 1.0 due to rounding errors or because the - // point is not exactly on the polyline. - return minFloat64(1.0, float64(lengthToPoint/sum)) -} - -// TODO(roberts): Differences from C++. -// NearlyCoversPolyline -// InitToSnapped -// InitToSimplified -// SnapLevel -// encode/decode compressed diff --git a/backend/vendor/github.com/golang/geo/s2/polyline_measures.go b/backend/vendor/github.com/golang/geo/s2/polyline_measures.go deleted file mode 100644 index 38ce991b..00000000 --- a/backend/vendor/github.com/golang/geo/s2/polyline_measures.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// This file defines various measures for polylines on the sphere. These are -// low-level methods that work directly with arrays of Points. They are used to -// implement the methods in various other measures files. - -import ( - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// polylineLength returns the length of the given Polyline. -// It returns 0 for polylines with fewer than two vertices. -func polylineLength(p []Point) s1.Angle { - var length s1.Angle - - for i := 1; i < len(p); i++ { - length += p[i-1].Distance(p[i]) - } - return length -} - -// polylineCentroid returns the true centroid of the polyline multiplied by the -// length of the polyline. The result is not unit length, so you may wish to -// normalize it. -// -// Scaling by the Polyline length makes it easy to compute the centroid -// of several Polylines (by simply adding up their centroids). -// -// Note that for degenerate Polylines (e.g., AA) this returns Point(0, 0, 0). -// (This answer is correct; the result of this function is a line integral over -// the polyline, whose value is always zero if the polyline is degenerate.) -func polylineCentroid(p []Point) Point { - var centroid r3.Vector - for i := 1; i < len(p); i++ { - centroid = centroid.Add(EdgeTrueCentroid(p[i-1], p[i]).Vector) - } - return Point{centroid} -} diff --git a/backend/vendor/github.com/golang/geo/s2/predicates.go b/backend/vendor/github.com/golang/geo/s2/predicates.go deleted file mode 100644 index 37f48934..00000000 --- a/backend/vendor/github.com/golang/geo/s2/predicates.go +++ /dev/null @@ -1,701 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// This file contains various predicates that are guaranteed to produce -// correct, consistent results. They are also relatively efficient. This is -// achieved by computing conservative error bounds and falling back to high -// precision or even exact arithmetic when the result is uncertain. Such -// predicates are useful in implementing robust algorithms. -// -// See also EdgeCrosser, which implements various exact -// edge-crossing predicates more efficiently than can be done here. - -import ( - "math" - "math/big" - - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -const ( - // If any other machine architectures need to be suppported, these next three - // values will need to be updated. - - // epsilon is a small number that represents a reasonable level of noise between two - // values that can be considered to be equal. - epsilon = 1e-15 - // dblEpsilon is a smaller number for values that require more precision. - // This is the C++ DBL_EPSILON equivalent. - dblEpsilon = 2.220446049250313e-16 - // dblError is the C++ value for S2 rounding_epsilon(). - dblError = 1.110223024625156e-16 - - // maxDeterminantError is the maximum error in computing (AxB).C where all vectors - // are unit length. Using standard inequalities, it can be shown that - // - // fl(AxB) = AxB + D where |D| <= (|AxB| + (2/sqrt(3))*|A|*|B|) * e - // - // where "fl()" denotes a calculation done in floating-point arithmetic, - // |x| denotes either absolute value or the L2-norm as appropriate, and - // e is a reasonably small value near the noise level of floating point - // number accuracy. Similarly, - // - // fl(B.C) = B.C + d where |d| <= (|B.C| + 2*|B|*|C|) * e . - // - // Applying these bounds to the unit-length vectors A,B,C and neglecting - // relative error (which does not affect the sign of the result), we get - // - // fl((AxB).C) = (AxB).C + d where |d| <= (3 + 2/sqrt(3)) * e - maxDeterminantError = 1.8274 * dblEpsilon - - // detErrorMultiplier is the factor to scale the magnitudes by when checking - // for the sign of set of points with certainty. Using a similar technique to - // the one used for maxDeterminantError, the error is at most: - // - // |d| <= (3 + 6/sqrt(3)) * |A-C| * |B-C| * e - // - // If the determinant magnitude is larger than this value then we know - // its sign with certainty. - detErrorMultiplier = 3.2321 * dblEpsilon -) - -// Direction is an indication of the ordering of a set of points. -type Direction int - -// These are the three options for the direction of a set of points. -const ( - Clockwise Direction = -1 - Indeterminate Direction = 0 - CounterClockwise Direction = 1 -) - -// newBigFloat constructs a new big.Float with maximum precision. -func newBigFloat() *big.Float { return new(big.Float).SetPrec(big.MaxPrec) } - -// Sign returns true if the points A, B, C are strictly counterclockwise, -// and returns false if the points are clockwise or collinear (i.e. if they are all -// contained on some great circle). -// -// Due to numerical errors, situations may arise that are mathematically -// impossible, e.g. ABC may be considered strictly CCW while BCA is not. -// However, the implementation guarantees the following: -// -// If Sign(a,b,c), then !Sign(c,b,a) for all a,b,c. -func Sign(a, b, c Point) bool { - // NOTE(dnadasi): In the C++ API the equivalent method here was known as "SimpleSign". - - // We compute the signed volume of the parallelepiped ABC. The usual - // formula for this is (A ⨯ B) · C, but we compute it here using (C ⨯ A) · B - // in order to ensure that ABC and CBA are not both CCW. This follows - // from the following identities (which are true numerically, not just - // mathematically): - // - // (1) x ⨯ y == -(y ⨯ x) - // (2) -x · y == -(x · y) - return c.Cross(a.Vector).Dot(b.Vector) > 0 -} - -// RobustSign returns a Direction representing the ordering of the points. -// CounterClockwise is returned if the points are in counter-clockwise order, -// Clockwise for clockwise, and Indeterminate if any two points are the same (collinear), -// or the sign could not completely be determined. -// -// This function has additional logic to make sure that the above properties hold even -// when the three points are coplanar, and to deal with the limitations of -// floating-point arithmetic. -// -// RobustSign satisfies the following conditions: -// -// (1) RobustSign(a,b,c) == Indeterminate if and only if a == b, b == c, or c == a -// (2) RobustSign(b,c,a) == RobustSign(a,b,c) for all a,b,c -// (3) RobustSign(c,b,a) == -RobustSign(a,b,c) for all a,b,c -// -// In other words: -// -// (1) The result is Indeterminate if and only if two points are the same. -// (2) Rotating the order of the arguments does not affect the result. -// (3) Exchanging any two arguments inverts the result. -// -// On the other hand, note that it is not true in general that -// RobustSign(-a,b,c) == -RobustSign(a,b,c), or any similar identities -// involving antipodal points. -func RobustSign(a, b, c Point) Direction { - sign := triageSign(a, b, c) - if sign == Indeterminate { - sign = expensiveSign(a, b, c) - } - return sign -} - -// stableSign reports the direction sign of the points in a numerically stable way. -// Unlike triageSign, this method can usually compute the correct determinant sign -// even when all three points are as collinear as possible. For example if three -// points are spaced 1km apart along a random line on the Earth's surface using -// the nearest representable points, there is only a 0.4% chance that this method -// will not be able to find the determinant sign. The probability of failure -// decreases as the points get closer together; if the collinear points are 1 meter -// apart, the failure rate drops to 0.0004%. -// -// This method could be extended to also handle nearly-antipodal points, but antipodal -// points are rare in practice so it seems better to simply fall back to -// exact arithmetic in that case. -func stableSign(a, b, c Point) Direction { - ab := b.Sub(a.Vector) - ab2 := ab.Norm2() - bc := c.Sub(b.Vector) - bc2 := bc.Norm2() - ca := a.Sub(c.Vector) - ca2 := ca.Norm2() - - // Now compute the determinant ((A-C)x(B-C)).C, where the vertices have been - // cyclically permuted if necessary so that AB is the longest edge. (This - // minimizes the magnitude of cross product.) At the same time we also - // compute the maximum error in the determinant. - - // The two shortest edges, pointing away from their common point. - var e1, e2, op r3.Vector - if ab2 >= bc2 && ab2 >= ca2 { - // AB is the longest edge. - e1, e2, op = ca, bc, c.Vector - } else if bc2 >= ca2 { - // BC is the longest edge. - e1, e2, op = ab, ca, a.Vector - } else { - // CA is the longest edge. - e1, e2, op = bc, ab, b.Vector - } - - det := -e1.Cross(e2).Dot(op) - maxErr := detErrorMultiplier * math.Sqrt(e1.Norm2()*e2.Norm2()) - - // If the determinant isn't zero, within maxErr, we know definitively the point ordering. - if det > maxErr { - return CounterClockwise - } - if det < -maxErr { - return Clockwise - } - return Indeterminate -} - -// triageSign returns the direction sign of the points. It returns Indeterminate if two -// points are identical or the result is uncertain. Uncertain cases can be resolved, if -// desired, by calling expensiveSign. -// -// The purpose of this method is to allow additional cheap tests to be done without -// calling expensiveSign. -func triageSign(a, b, c Point) Direction { - det := a.Cross(b.Vector).Dot(c.Vector) - if det > maxDeterminantError { - return CounterClockwise - } - if det < -maxDeterminantError { - return Clockwise - } - return Indeterminate -} - -// expensiveSign reports the direction sign of the points. It returns Indeterminate -// if two of the input points are the same. It uses multiple-precision arithmetic -// to ensure that its results are always self-consistent. -func expensiveSign(a, b, c Point) Direction { - // Return Indeterminate if and only if two points are the same. - // This ensures RobustSign(a,b,c) == Indeterminate if and only if a == b, b == c, or c == a. - // ie. Property 1 of RobustSign. - if a == b || b == c || c == a { - return Indeterminate - } - - // Next we try recomputing the determinant still using floating-point - // arithmetic but in a more precise way. This is more expensive than the - // simple calculation done by triageSign, but it is still *much* cheaper - // than using arbitrary-precision arithmetic. This optimization is able to - // compute the correct determinant sign in virtually all cases except when - // the three points are truly collinear (e.g., three points on the equator). - detSign := stableSign(a, b, c) - if detSign != Indeterminate { - return detSign - } - - // Otherwise fall back to exact arithmetic and symbolic permutations. - return exactSign(a, b, c, true) -} - -// exactSign reports the direction sign of the points computed using high-precision -// arithmetic and/or symbolic perturbations. -func exactSign(a, b, c Point, perturb bool) Direction { - // Sort the three points in lexicographic order, keeping track of the sign - // of the permutation. (Each exchange inverts the sign of the determinant.) - permSign := CounterClockwise - pa := &a - pb := &b - pc := &c - if pa.Cmp(pb.Vector) > 0 { - pa, pb = pb, pa - permSign = -permSign - } - if pb.Cmp(pc.Vector) > 0 { - pb, pc = pc, pb - permSign = -permSign - } - if pa.Cmp(pb.Vector) > 0 { - pa, pb = pb, pa - permSign = -permSign - } - - // Construct multiple-precision versions of the sorted points and compute - // their precise 3x3 determinant. - xa := r3.PreciseVectorFromVector(pa.Vector) - xb := r3.PreciseVectorFromVector(pb.Vector) - xc := r3.PreciseVectorFromVector(pc.Vector) - xbCrossXc := xb.Cross(xc) - det := xa.Dot(xbCrossXc) - - // The precision of big.Float is high enough that the result should always - // be exact enough (no rounding was performed). - - // If the exact determinant is non-zero, we're done. - detSign := Direction(det.Sign()) - if detSign == Indeterminate && perturb { - // Otherwise, we need to resort to symbolic perturbations to resolve the - // sign of the determinant. - detSign = symbolicallyPerturbedSign(xa, xb, xc, xbCrossXc) - } - return permSign * detSign -} - -// symbolicallyPerturbedSign reports the sign of the determinant of three points -// A, B, C under a model where every possible Point is slightly perturbed by -// a unique infinitesmal amount such that no three perturbed points are -// collinear and no four points are coplanar. The perturbations are so small -// that they do not change the sign of any determinant that was non-zero -// before the perturbations, and therefore can be safely ignored unless the -// determinant of three points is exactly zero (using multiple-precision -// arithmetic). This returns CounterClockwise or Clockwise according to the -// sign of the determinant after the symbolic perturbations are taken into account. -// -// Since the symbolic perturbation of a given point is fixed (i.e., the -// perturbation is the same for all calls to this method and does not depend -// on the other two arguments), the results of this method are always -// self-consistent. It will never return results that would correspond to an -// impossible configuration of non-degenerate points. -// -// This requires that the 3x3 determinant of A, B, C must be exactly zero. -// And the points must be distinct, with A < B < C in lexicographic order. -// -// Reference: -// -// "Simulation of Simplicity" (Edelsbrunner and Muecke, ACM Transactions on -// Graphics, 1990). -func symbolicallyPerturbedSign(a, b, c, bCrossC r3.PreciseVector) Direction { - // This method requires that the points are sorted in lexicographically - // increasing order. This is because every possible Point has its own - // symbolic perturbation such that if A < B then the symbolic perturbation - // for A is much larger than the perturbation for B. - // - // Alternatively, we could sort the points in this method and keep track of - // the sign of the permutation, but it is more efficient to do this before - // converting the inputs to the multi-precision representation, and this - // also lets us re-use the result of the cross product B x C. - // - // Every input coordinate x[i] is assigned a symbolic perturbation dx[i]. - // We then compute the sign of the determinant of the perturbed points, - // i.e. - // | a.X+da.X a.Y+da.Y a.Z+da.Z | - // | b.X+db.X b.Y+db.Y b.Z+db.Z | - // | c.X+dc.X c.Y+dc.Y c.Z+dc.Z | - // - // The perturbations are chosen such that - // - // da.Z > da.Y > da.X > db.Z > db.Y > db.X > dc.Z > dc.Y > dc.X - // - // where each perturbation is so much smaller than the previous one that we - // don't even need to consider it unless the coefficients of all previous - // perturbations are zero. In fact, it is so small that we don't need to - // consider it unless the coefficient of all products of the previous - // perturbations are zero. For example, we don't need to consider the - // coefficient of db.Y unless the coefficient of db.Z *da.X is zero. - // - // The follow code simply enumerates the coefficients of the perturbations - // (and products of perturbations) that appear in the determinant above, in - // order of decreasing perturbation magnitude. The first non-zero - // coefficient determines the sign of the result. The easiest way to - // enumerate the coefficients in the correct order is to pretend that each - // perturbation is some tiny value "eps" raised to a power of two: - // - // eps** 1 2 4 8 16 32 64 128 256 - // da.Z da.Y da.X db.Z db.Y db.X dc.Z dc.Y dc.X - // - // Essentially we can then just count in binary and test the corresponding - // subset of perturbations at each step. So for example, we must test the - // coefficient of db.Z*da.X before db.Y because eps**12 > eps**16. - // - // Of course, not all products of these perturbations appear in the - // determinant above, since the determinant only contains the products of - // elements in distinct rows and columns. Thus we don't need to consider - // da.Z*da.Y, db.Y *da.Y, etc. Furthermore, sometimes different pairs of - // perturbations have the same coefficient in the determinant; for example, - // da.Y*db.X and db.Y*da.X have the same coefficient (c.Z). Therefore - // we only need to test this coefficient the first time we encounter it in - // the binary order above (which will be db.Y*da.X). - // - // The sequence of tests below also appears in Table 4-ii of the paper - // referenced above, if you just want to look it up, with the following - // translations: [a,b,c] -> [i,j,k] and [0,1,2] -> [1,2,3]. Also note that - // some of the signs are different because the opposite cross product is - // used (e.g., B x C rather than C x B). - - detSign := bCrossC.Z.Sign() // da.Z - if detSign != 0 { - return Direction(detSign) - } - detSign = bCrossC.Y.Sign() // da.Y - if detSign != 0 { - return Direction(detSign) - } - detSign = bCrossC.X.Sign() // da.X - if detSign != 0 { - return Direction(detSign) - } - - detSign = newBigFloat().Sub(newBigFloat().Mul(c.X, a.Y), newBigFloat().Mul(c.Y, a.X)).Sign() // db.Z - if detSign != 0 { - return Direction(detSign) - } - detSign = c.X.Sign() // db.Z * da.Y - if detSign != 0 { - return Direction(detSign) - } - detSign = -(c.Y.Sign()) // db.Z * da.X - if detSign != 0 { - return Direction(detSign) - } - - detSign = newBigFloat().Sub(newBigFloat().Mul(c.Z, a.X), newBigFloat().Mul(c.X, a.Z)).Sign() // db.Y - if detSign != 0 { - return Direction(detSign) - } - detSign = c.Z.Sign() // db.Y * da.X - if detSign != 0 { - return Direction(detSign) - } - - // The following test is listed in the paper, but it is redundant because - // the previous tests guarantee that C == (0, 0, 0). - // (c.Y*a.Z - c.Z*a.Y).Sign() // db.X - - detSign = newBigFloat().Sub(newBigFloat().Mul(a.X, b.Y), newBigFloat().Mul(a.Y, b.X)).Sign() // dc.Z - if detSign != 0 { - return Direction(detSign) - } - detSign = -(b.X.Sign()) // dc.Z * da.Y - if detSign != 0 { - return Direction(detSign) - } - detSign = b.Y.Sign() // dc.Z * da.X - if detSign != 0 { - return Direction(detSign) - } - detSign = a.X.Sign() // dc.Z * db.Y - if detSign != 0 { - return Direction(detSign) - } - return CounterClockwise // dc.Z * db.Y * da.X -} - -// CompareDistances returns -1, 0, or +1 according to whether AX < BX, A == B, -// or AX > BX respectively. Distances are measured with respect to the positions -// of X, A, and B as though they were reprojected to lie exactly on the surface of -// the unit sphere. Furthermore, this method uses symbolic perturbations to -// ensure that the result is non-zero whenever A != B, even when AX == BX -// exactly, or even when A and B project to the same point on the sphere. -// Such results are guaranteed to be self-consistent, i.e. if AB < BC and -// BC < AC, then AB < AC. -func CompareDistances(x, a, b Point) int { - // We start by comparing distances using dot products (i.e., cosine of the - // angle), because (1) this is the cheapest technique, and (2) it is valid - // over the entire range of possible angles. (We can only use the sin^2 - // technique if both angles are less than 90 degrees or both angles are - // greater than 90 degrees.) - sign := triageCompareCosDistances(x, a, b) - if sign != 0 { - return sign - } - - // Optimization for (a == b) to avoid falling back to exact arithmetic. - if a == b { - return 0 - } - - // It is much better numerically to compare distances using cos(angle) if - // the distances are near 90 degrees and sin^2(angle) if the distances are - // near 0 or 180 degrees. We only need to check one of the two angles when - // making this decision because the fact that the test above failed means - // that angles "a" and "b" are very close together. - cosAX := a.Dot(x.Vector) - if cosAX > 1/math.Sqrt2 { - // Angles < 45 degrees. - sign = triageCompareSin2Distances(x, a, b) - } else if cosAX < -1/math.Sqrt2 { - // Angles > 135 degrees. sin^2(angle) is decreasing in this range. - sign = -triageCompareSin2Distances(x, a, b) - } - // C++ adds an additional check here using 80-bit floats. - // This is skipped in Go because we only have 32 and 64 bit floats. - - if sign != 0 { - return sign - } - - sign = exactCompareDistances(r3.PreciseVectorFromVector(x.Vector), r3.PreciseVectorFromVector(a.Vector), r3.PreciseVectorFromVector(b.Vector)) - if sign != 0 { - return sign - } - return symbolicCompareDistances(x, a, b) -} - -// cosDistance returns cos(XY) where XY is the angle between X and Y, and the -// maximum error amount in the result. This requires X and Y be normalized. -func cosDistance(x, y Point) (cos, err float64) { - cos = x.Dot(y.Vector) - return cos, 9.5*dblError*math.Abs(cos) + 1.5*dblError -} - -// sin2Distance returns sin**2(XY), where XY is the angle between X and Y, -// and the maximum error amount in the result. This requires X and Y be normalized. -func sin2Distance(x, y Point) (sin2, err float64) { - // The (x-y).Cross(x+y) trick eliminates almost all of error due to x - // and y being not quite unit length. This method is extremely accurate - // for small distances; the *relative* error in the result is O(dblError) for - // distances as small as dblError. - n := x.Sub(y.Vector).Cross(x.Add(y.Vector)) - sin2 = 0.25 * n.Norm2() - err = ((21+4*math.Sqrt(3))*dblError*sin2 + - 32*math.Sqrt(3)*dblError*dblError*math.Sqrt(sin2) + - 768*dblError*dblError*dblError*dblError) - return sin2, err -} - -// triageCompareCosDistances returns -1, 0, or +1 according to whether AX < BX, -// A == B, or AX > BX by comparing the distances between them using cosDistance. -func triageCompareCosDistances(x, a, b Point) int { - cosAX, cosAXerror := cosDistance(a, x) - cosBX, cosBXerror := cosDistance(b, x) - diff := cosAX - cosBX - err := cosAXerror + cosBXerror - if diff > err { - return -1 - } - if diff < -err { - return 1 - } - return 0 -} - -// triageCompareSin2Distances returns -1, 0, or +1 according to whether AX < BX, -// A == B, or AX > BX by comparing the distances between them using sin2Distance. -func triageCompareSin2Distances(x, a, b Point) int { - sin2AX, sin2AXerror := sin2Distance(a, x) - sin2BX, sin2BXerror := sin2Distance(b, x) - diff := sin2AX - sin2BX - err := sin2AXerror + sin2BXerror - if diff > err { - return 1 - } - if diff < -err { - return -1 - } - return 0 -} - -// exactCompareDistances returns -1, 0, or 1 after comparing using the values as -// PreciseVectors. -func exactCompareDistances(x, a, b r3.PreciseVector) int { - // This code produces the same result as though all points were reprojected - // to lie exactly on the surface of the unit sphere. It is based on testing - // whether x.Dot(a.Normalize()) < x.Dot(b.Normalize()), reformulated - // so that it can be evaluated using exact arithmetic. - cosAX := x.Dot(a) - cosBX := x.Dot(b) - - // If the two values have different signs, we need to handle that case now - // before squaring them below. - aSign := cosAX.Sign() - bSign := cosBX.Sign() - if aSign != bSign { - // If cos(AX) > cos(BX), then AX < BX. - if aSign > bSign { - return -1 - } - return 1 - } - cosAX2 := newBigFloat().Mul(cosAX, cosAX) - cosBX2 := newBigFloat().Mul(cosBX, cosBX) - cmp := newBigFloat().Sub(cosBX2.Mul(cosBX2, a.Norm2()), cosAX2.Mul(cosAX2, b.Norm2())) - return aSign * cmp.Sign() -} - -// symbolicCompareDistances returns -1, 0, or +1 given three points such that AX == BX -// (exactly) according to whether AX < BX, AX == BX, or AX > BX after symbolic -// perturbations are taken into account. -func symbolicCompareDistances(x, a, b Point) int { - // Our symbolic perturbation strategy is based on the following model. - // Similar to "simulation of simplicity", we assign a perturbation to every - // point such that if A < B, then the symbolic perturbation for A is much, - // much larger than the symbolic perturbation for B. We imagine that - // rather than projecting every point to lie exactly on the unit sphere, - // instead each point is positioned on its own tiny pedestal that raises it - // just off the surface of the unit sphere. This means that the distance AX - // is actually the true distance AX plus the (symbolic) heights of the - // pedestals for A and X. The pedestals are infinitesmally thin, so they do - // not affect distance measurements except at the two endpoints. If several - // points project to exactly the same point on the unit sphere, we imagine - // that they are placed on separate pedestals placed close together, where - // the distance between pedestals is much, much less than the height of any - // pedestal. (There are a finite number of Points, and therefore a finite - // number of pedestals, so this is possible.) - // - // If A < B, then A is on a higher pedestal than B, and therefore AX > BX. - switch a.Cmp(b.Vector) { - case -1: - return 1 - case 1: - return -1 - default: - return 0 - } -} - -var ( - // ca45Degrees is a predefined ChordAngle representing (approximately) 45 degrees. - ca45Degrees = s1.ChordAngleFromSquaredLength(2 - math.Sqrt2) -) - -// CompareDistance returns -1, 0, or +1 according to whether the distance XY is -// respectively less than, equal to, or greater than the provided chord angle. Distances are measured -// with respect to the positions of all points as though they are projected to lie -// exactly on the surface of the unit sphere. -func CompareDistance(x, y Point, r s1.ChordAngle) int { - // As with CompareDistances, we start by comparing dot products because - // the sin^2 method is only valid when the distance XY and the limit "r" are - // both less than 90 degrees. - sign := triageCompareCosDistance(x, y, float64(r)) - if sign != 0 { - return sign - } - - // Unlike with CompareDistances, it's not worth using the sin^2 method - // when the distance limit is near 180 degrees because the ChordAngle - // representation itself has has a rounding error of up to 2e-8 radians for - // distances near 180 degrees. - if r < ca45Degrees { - sign = triageCompareSin2Distance(x, y, float64(r)) - if sign != 0 { - return sign - } - } - return exactCompareDistance(r3.PreciseVectorFromVector(x.Vector), r3.PreciseVectorFromVector(y.Vector), big.NewFloat(float64(r)).SetPrec(big.MaxPrec)) -} - -// triageCompareCosDistance returns -1, 0, or +1 according to whether the distance XY is -// less than, equal to, or greater than r2 respectively using cos distance. -func triageCompareCosDistance(x, y Point, r2 float64) int { - cosXY, cosXYError := cosDistance(x, y) - cosR := 1.0 - 0.5*r2 - cosRError := 2.0 * dblError * cosR - diff := cosXY - cosR - err := cosXYError + cosRError - if diff > err { - return -1 - } - if diff < -err { - return 1 - } - return 0 -} - -// triageCompareSin2Distance returns -1, 0, or +1 according to whether the distance XY is -// less than, equal to, or greater than r2 respectively using sin^2 distance. -func triageCompareSin2Distance(x, y Point, r2 float64) int { - // Only valid for distance limits < 90 degrees. - sin2XY, sin2XYError := sin2Distance(x, y) - sin2R := r2 * (1.0 - 0.25*r2) - sin2RError := 3.0 * dblError * sin2R - diff := sin2XY - sin2R - err := sin2XYError + sin2RError - if diff > err { - return 1 - } - if diff < -err { - return -1 - } - return 0 -} - -var ( - bigOne = big.NewFloat(1.0).SetPrec(big.MaxPrec) - bigHalf = big.NewFloat(0.5).SetPrec(big.MaxPrec) -) - -// exactCompareDistance returns -1, 0, or +1 after comparing using PreciseVectors. -func exactCompareDistance(x, y r3.PreciseVector, r2 *big.Float) int { - // This code produces the same result as though all points were reprojected - // to lie exactly on the surface of the unit sphere. It is based on - // comparing the cosine of the angle XY (when both points are projected to - // lie exactly on the sphere) to the given threshold. - cosXY := x.Dot(y) - cosR := newBigFloat().Sub(bigOne, newBigFloat().Mul(bigHalf, r2)) - - // If the two values have different signs, we need to handle that case now - // before squaring them below. - xySign := cosXY.Sign() - rSign := cosR.Sign() - if xySign != rSign { - if xySign > rSign { - return -1 - } - return 1 // If cos(XY) > cos(r), then XY < r. - } - cmp := newBigFloat().Sub( - newBigFloat().Mul( - newBigFloat().Mul(cosR, cosR), newBigFloat().Mul(x.Norm2(), y.Norm2())), - newBigFloat().Mul(cosXY, cosXY)) - return xySign * cmp.Sign() -} - -// TODO(roberts): Differences from C++ -// CompareEdgeDistance -// CompareEdgeDirections -// EdgeCircumcenterSign -// GetVoronoiSiteExclusion -// GetClosestVertex -// TriageCompareLineSin2Distance -// TriageCompareLineCos2Distance -// TriageCompareLineDistance -// TriageCompareEdgeDistance -// ExactCompareLineDistance -// ExactCompareEdgeDistance -// TriageCompareEdgeDirections -// ExactCompareEdgeDirections -// ArePointsAntipodal -// ArePointsLinearlyDependent -// GetCircumcenter -// TriageEdgeCircumcenterSign -// ExactEdgeCircumcenterSign -// UnperturbedSign -// SymbolicEdgeCircumcenterSign -// ExactVoronoiSiteExclusion diff --git a/backend/vendor/github.com/golang/geo/s2/projections.go b/backend/vendor/github.com/golang/geo/s2/projections.go deleted file mode 100644 index f7273609..00000000 --- a/backend/vendor/github.com/golang/geo/s2/projections.go +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2018 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/r2" - "github.com/golang/geo/s1" -) - -// Projection defines an interface for different ways of mapping between s2 and r2 Points. -// It can also define the coordinate wrapping behavior along each axis. -type Projection interface { - // Project converts a point on the sphere to a projected 2D point. - Project(p Point) r2.Point - - // Unproject converts a projected 2D point to a point on the sphere. - // - // If wrapping is defined for a given axis (see below), then this method - // should accept any real number for the corresponding coordinate. - Unproject(p r2.Point) Point - - // FromLatLng is a convenience function equivalent to Project(LatLngToPoint(ll)), - // but the implementation is more efficient. - FromLatLng(ll LatLng) r2.Point - - // ToLatLng is a convenience function equivalent to LatLngFromPoint(Unproject(p)), - // but the implementation is more efficient. - ToLatLng(p r2.Point) LatLng - - // Interpolate returns the point obtained by interpolating the given - // fraction of the distance along the line from A to B. - // Fractions < 0 or > 1 result in extrapolation instead. - Interpolate(f float64, a, b r2.Point) r2.Point - - // WrapDistance reports the coordinate wrapping distance along each axis. - // If this value is non-zero for a given axis, the coordinates are assumed - // to "wrap" with the given period. For example, if WrapDistance.Y == 360 - // then (x, y) and (x, y + 360) should map to the same Point. - // - // This information is used to ensure that edges takes the shortest path - // between two given points. For example, if coordinates represent - // (latitude, longitude) pairs in degrees and WrapDistance().Y == 360, - // then the edge (5:179, 5:-179) would be interpreted as spanning 2 degrees - // of longitude rather than 358 degrees. - // - // If a given axis does not wrap, its WrapDistance should be set to zero. - WrapDistance() r2.Point - - // WrapDestination that wraps the coordinates of B if necessary in order to - // obtain the shortest edge AB. For example, suppose that A = [170, 20], - // B = [-170, 20], and the projection wraps so that [x, y] == [x + 360, y]. - // Then this function would return [190, 20] for point B (reducing the edge - // length in the "x" direction from 340 to 20). - WrapDestination(a, b r2.Point) r2.Point - - // We do not support implementations of this interface outside this package. - privateInterface() -} - -// PlateCarreeProjection defines the "plate carree" (square plate) projection, -// which converts points on the sphere to (longitude, latitude) pairs. -// Coordinates can be scaled so that they represent radians, degrees, etc, but -// the projection is always centered around (latitude=0, longitude=0). -// -// Note that (x, y) coordinates are backwards compared to the usual (latitude, -// longitude) ordering, in order to match the usual convention for graphs in -// which "x" is horizontal and "y" is vertical. -type PlateCarreeProjection struct { - xWrap float64 - toRadians float64 // Multiplier to convert coordinates to radians. - fromRadians float64 // Multiplier to convert coordinates from radians. -} - -// NewPlateCarreeProjection constructs a plate carree projection where the -// x-coordinates (lng) span [-xScale, xScale] and the y coordinates (lat) -// span [-xScale/2, xScale/2]. For example if xScale==180 then the x -// range is [-180, 180] and the y range is [-90, 90]. -// -// By default coordinates are expressed in radians, i.e. the x range is -// [-Pi, Pi] and the y range is [-Pi/2, Pi/2]. -func NewPlateCarreeProjection(xScale float64) Projection { - return &PlateCarreeProjection{ - xWrap: 2 * xScale, - toRadians: math.Pi / xScale, - fromRadians: xScale / math.Pi, - } -} - -// Project converts a point on the sphere to a projected 2D point. -func (p *PlateCarreeProjection) Project(pt Point) r2.Point { - return p.FromLatLng(LatLngFromPoint(pt)) -} - -// Unproject converts a projected 2D point to a point on the sphere. -func (p *PlateCarreeProjection) Unproject(pt r2.Point) Point { - return PointFromLatLng(p.ToLatLng(pt)) -} - -// FromLatLng returns the LatLng projected into an R2 Point. -func (p *PlateCarreeProjection) FromLatLng(ll LatLng) r2.Point { - return r2.Point{ - X: p.fromRadians * ll.Lng.Radians(), - Y: p.fromRadians * ll.Lat.Radians(), - } -} - -// ToLatLng returns the LatLng projected from the given R2 Point. -func (p *PlateCarreeProjection) ToLatLng(pt r2.Point) LatLng { - return LatLng{ - Lat: s1.Angle(p.toRadians * pt.Y), - Lng: s1.Angle(p.toRadians * math.Remainder(pt.X, p.xWrap)), - } -} - -// Interpolate returns the point obtained by interpolating the given -// fraction of the distance along the line from A to B. -func (p *PlateCarreeProjection) Interpolate(f float64, a, b r2.Point) r2.Point { - return a.Mul(1 - f).Add(b.Mul(f)) -} - -// WrapDistance reports the coordinate wrapping distance along each axis. -func (p *PlateCarreeProjection) WrapDistance() r2.Point { - return r2.Point{p.xWrap, 0} -} - -// WrapDestination wraps the points if needed to get the shortest edge. -func (p *PlateCarreeProjection) WrapDestination(a, b r2.Point) r2.Point { - return wrapDestination(a, b, p.WrapDistance) -} - -func (p *PlateCarreeProjection) privateInterface() {} - -// MercatorProjection defines the spherical Mercator projection. Google Maps -// uses this projection together with WGS84 coordinates, in which case it is -// known as the "Web Mercator" projection (see Wikipedia). This class makes -// no assumptions regarding the coordinate system of its input points, but -// simply applies the spherical Mercator projection to them. -// -// The Mercator projection is finite in width (x) but infinite in height (y). -// "x" corresponds to longitude, and spans a finite range such as [-180, 180] -// (with coordinate wrapping), while "y" is a function of latitude and spans -// an infinite range. (As "y" coordinates get larger, points get closer to -// the north pole but never quite reach it.) The north and south poles have -// infinite "y" values. (Note that this will cause problems if you tessellate -// a Mercator edge where one endpoint is a pole. If you need to do this, clip -// the edge first so that the "y" coordinate is no more than about 5 * maxX.) -type MercatorProjection struct { - xWrap float64 - toRadians float64 // Multiplier to convert coordinates to radians. - fromRadians float64 // Multiplier to convert coordinates from radians. -} - -// NewMercatorProjection constructs a Mercator projection with the given maximum -// longitude axis value corresponding to a range of [-maxLng, maxLng]. -// The horizontal and vertical axes are scaled equally. -func NewMercatorProjection(maxLng float64) Projection { - return &MercatorProjection{ - xWrap: 2 * maxLng, - toRadians: math.Pi / maxLng, - fromRadians: maxLng / math.Pi, - } -} - -// Project converts a point on the sphere to a projected 2D point. -func (p *MercatorProjection) Project(pt Point) r2.Point { - return p.FromLatLng(LatLngFromPoint(pt)) -} - -// Unproject converts a projected 2D point to a point on the sphere. -func (p *MercatorProjection) Unproject(pt r2.Point) Point { - return PointFromLatLng(p.ToLatLng(pt)) -} - -// FromLatLng returns the LatLng projected into an R2 Point. -func (p *MercatorProjection) FromLatLng(ll LatLng) r2.Point { - // This formula is more accurate near zero than the log(tan()) version. - // Note that latitudes of +/- 90 degrees yield "y" values of +/- infinity. - sinPhi := math.Sin(float64(ll.Lat)) - y := 0.5 * math.Log((1+sinPhi)/(1-sinPhi)) - return r2.Point{p.fromRadians * float64(ll.Lng), p.fromRadians * y} -} - -// ToLatLng returns the LatLng projected from the given R2 Point. -func (p *MercatorProjection) ToLatLng(pt r2.Point) LatLng { - // This formula is more accurate near zero than the atan(exp()) version. - x := p.toRadians * math.Remainder(pt.X, p.xWrap) - k := math.Exp(2 * p.toRadians * pt.Y) - var y float64 - if math.IsInf(k, 0) { - y = math.Pi / 2 - } else { - y = math.Asin((k - 1) / (k + 1)) - } - return LatLng{s1.Angle(y), s1.Angle(x)} -} - -// Interpolate returns the point obtained by interpolating the given -// fraction of the distance along the line from A to B. -func (p *MercatorProjection) Interpolate(f float64, a, b r2.Point) r2.Point { - return a.Mul(1 - f).Add(b.Mul(f)) -} - -// WrapDistance reports the coordinate wrapping distance along each axis. -func (p *MercatorProjection) WrapDistance() r2.Point { - return r2.Point{p.xWrap, 0} -} - -// WrapDestination wraps the points if needed to get the shortest edge. -func (p *MercatorProjection) WrapDestination(a, b r2.Point) r2.Point { - return wrapDestination(a, b, p.WrapDistance) -} - -func (p *MercatorProjection) privateInterface() {} - -func wrapDestination(a, b r2.Point, wrapDistance func() r2.Point) r2.Point { - wrap := wrapDistance() - x := b.X - y := b.Y - // The code below ensures that "b" is unmodified unless wrapping is required. - if wrap.X > 0 && math.Abs(x-a.X) > 0.5*wrap.X { - x = a.X + math.Remainder(x-a.X, wrap.X) - } - if wrap.Y > 0 && math.Abs(y-a.Y) > 0.5*wrap.Y { - y = a.Y + math.Remainder(y-a.Y, wrap.Y) - } - return r2.Point{x, y} -} diff --git a/backend/vendor/github.com/golang/geo/s2/query_entry.go b/backend/vendor/github.com/golang/geo/s2/query_entry.go deleted file mode 100644 index 65e819e3..00000000 --- a/backend/vendor/github.com/golang/geo/s2/query_entry.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2020 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import "container/heap" - -// A queryQueueEntry stores CellIDs and distance from a target. It is used by the -// different S2 Query types to efficiently build their internal priority queue -// in the optimized algorithm implementations. -type queryQueueEntry struct { - // A lower bound on the distance from the target to ID. This is the key - // of the priority queue. - distance distance - - // The cell being queued. - id CellID - - // If the CellID belongs to a ShapeIndex, this field stores the - // corresponding ShapeIndexCell. Otherwise ID is a proper ancestor of - // one or more ShapeIndexCells and this field stores is nil. - indexCell *ShapeIndexCell -} - -// queryQueue is used by the optimized algorithm to maintain a priority queue of -// unprocessed CellIDs, sorted in increasing order of distance from the target. -type queryQueue struct { - queue queryPQ -} - -// newQueryQueue returns a new initialized queryQueue. -func newQueryQueue() *queryQueue { - q := &queryQueue{ - queue: make(queryPQ, 0), - } - heap.Init(&q.queue) - return q -} - -// push adds the given entry to the top of this queue. -func (q *queryQueue) push(e *queryQueueEntry) { - heap.Push(&q.queue, e) -} - -// pop returns the top element of this queue. -func (q *queryQueue) pop() *queryQueueEntry { - return heap.Pop(&q.queue).(*queryQueueEntry) -} - -func (q *queryQueue) size() int { - return q.queue.Len() -} - -func (q *queryQueue) reset() { - q.queue = q.queue[:0] -} - -// queryPQ is a priority queue that implements the heap interface. -type queryPQ []*queryQueueEntry - -func (q queryPQ) Len() int { return len(q) } -func (q queryPQ) Less(i, j int) bool { - return q[i].distance.less(q[j].distance) -} - -// Swap swaps the two entries. -func (q queryPQ) Swap(i, j int) { - q[i], q[j] = q[j], q[i] -} - -// Push adds the given entry to the queue. -func (q *queryPQ) Push(x interface{}) { - item := x.(*queryQueueEntry) - *q = append(*q, item) -} - -// Pop returns the top element of the queue. -func (q *queryPQ) Pop() interface{} { - item := (*q)[len(*q)-1] - *q = (*q)[:len(*q)-1] - return item -} diff --git a/backend/vendor/github.com/golang/geo/s2/query_options.go b/backend/vendor/github.com/golang/geo/s2/query_options.go deleted file mode 100644 index 9b7e38d6..00000000 --- a/backend/vendor/github.com/golang/geo/s2/query_options.go +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright 2019 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/s1" -) - -const maxQueryResults = math.MaxInt32 - -// queryOptions represents the set of all configurable parameters used by all of -// the Query types. Most of these fields have non-zero defaults, so initialization -// is handled within each Query type. All of the exported methods accept user -// supplied sets of options to set or adjust as necessary. -// -// Several of the defaults depend on the distance interface type being used -// (e.g. minDistance, maxDistance, etc.) -// -// If a user sets an option value that a given query type doesn't use, it is ignored. -type queryOptions struct { - // maxResults specifies that at most MaxResults edges should be returned. - // This must be at least 1. - // - // The default value is to return all results. - maxResults int - - // distanceLimit specifies that only edges whose distance to the target is - // within this distance should be returned. - // - // Note that edges whose distance is exactly equal to this are - // not returned. In most cases this doesn't matter (since distances are - // not computed exactly in the first place), but if such edges are needed - // then you can retrieve them by specifying the distance as the next - // largest representable distance. i.e. distanceLimit.Successor(). - // - // The default value is the infinity value, such that all results will be - // returned. - distanceLimit s1.ChordAngle - - // maxError specifies that edges up to MaxError further away than the true - // closest edges may be substituted in the result set, as long as such - // edges satisfy all the remaining search criteria (such as DistanceLimit). - // This option only has an effect if MaxResults is also specified; - // otherwise all edges closer than MaxDistance will always be returned. - // - // Note that this does not affect how the distance between edges is - // computed; it simply gives the algorithm permission to stop the search - // early as soon as the best possible improvement drops below MaxError. - // - // This can be used to implement distance predicates efficiently. For - // example, to determine whether the minimum distance is less than D, set - // MaxResults == 1 and MaxDistance == MaxError == D. This causes - // the algorithm to terminate as soon as it finds any edge whose distance - // is less than D, rather than continuing to search for an edge that is - // even closer. - // - // The default value is zero. - maxError s1.ChordAngle - - // includeInteriors specifies that polygon interiors should be included - // when measuring distances. In other words, polygons that contain the target - // should have a distance of zero. (For targets consisting of multiple connected - // components, the distance is zero if any component is contained.) This - // is indicated in the results by returning a (ShapeID, EdgeID) pair - // with EdgeID == -1, i.e. this value denotes the polygons's interior. - // - // Note that for efficiency, any polygon that intersects the target may or - // may not have an EdgeID == -1 result. Such results are optional - // because in that case the distance to the polygon is already zero. - // - // The default value is true. - includeInteriors bool - - // specifies that distances should be computed by examining every edge - // rather than using the ShapeIndex. - // - // TODO(roberts): When optimized is implemented, update the default to false. - // The default value is true. - useBruteForce bool - - // region specifies that results must intersect the given Region. - // - // Note that if you want to set the region to a disc around a target - // point, it is faster to use a PointTarget with distanceLimit set - // instead. You can also set a distance limit and also require that results - // lie within a given rectangle. - // - // The default is nil (no region limits). - region Region -} - -// UseBruteForce sets or disables the use of brute force in a query. -func (q *queryOptions) UseBruteForce(x bool) *queryOptions { - q.useBruteForce = x - return q -} - -// IncludeInteriors specifies whether polygon interiors should be -// included when measuring distances. -func (q *queryOptions) IncludeInteriors(x bool) *queryOptions { - q.includeInteriors = x - return q -} - -// MaxError specifies that edges up to dist away than the true -// matching edges may be substituted in the result set, as long as such -// edges satisfy all the remaining search criteria (such as DistanceLimit). -// This option only has an effect if MaxResults is also specified; -// otherwise all edges closer than MaxDistance will always be returned. -func (q *queryOptions) MaxError(x s1.ChordAngle) *queryOptions { - q.maxError = x - return q -} - -// MaxResults specifies that at most MaxResults edges should be returned. -// This must be at least 1. -func (q *queryOptions) MaxResults(x int) *queryOptions { - // TODO(roberts): What should be done if the value is <= 0? - q.maxResults = int(x) - return q -} - -// DistanceLimit specifies that only edges whose distance to the target is -// within, this distance should be returned. Edges whose distance is equal -// are not returned. -// -// To include values that are equal, specify the limit with the next largest -// representable distance such as limit.Successor(), or set the option with -// Furthest/ClosestInclusiveDistanceLimit. -func (q *queryOptions) DistanceLimit(x s1.ChordAngle) *queryOptions { - q.distanceLimit = x - return q -} - -// ClosestInclusiveDistanceLimit sets the distance limit such that results whose -// distance is exactly equal to the limit are also returned. -func (q *queryOptions) ClosestInclusiveDistanceLimit(limit s1.ChordAngle) *queryOptions { - q.distanceLimit = limit.Successor() - return q -} - -// FurthestInclusiveDistanceLimit sets the distance limit such that results whose -// distance is exactly equal to the limit are also returned. -func (q *queryOptions) FurthestInclusiveDistanceLimit(limit s1.ChordAngle) *queryOptions { - q.distanceLimit = limit.Predecessor() - return q -} - -// ClosestConservativeDistanceLimit sets the distance limit such that results -// also incorporates the error in distance calculations. This ensures that all -// edges whose true distance is less than or equal to limit will be returned -// (along with some edges whose true distance is slightly greater). -// -// Algorithms that need to do exact distance comparisons can use this -// option to find a set of candidate edges that can then be filtered -// further (e.g., using CompareDistance). -func (q *queryOptions) ClosestConservativeDistanceLimit(limit s1.ChordAngle) *queryOptions { - q.distanceLimit = limit.Expanded(minUpdateDistanceMaxError(limit)) - return q -} - -// FurthestConservativeDistanceLimit sets the distance limit such that results -// also incorporates the error in distance calculations. This ensures that all -// edges whose true distance is greater than or equal to limit will be returned -// (along with some edges whose true distance is slightly less). -func (q *queryOptions) FurthestConservativeDistanceLimit(limit s1.ChordAngle) *queryOptions { - q.distanceLimit = limit.Expanded(-minUpdateDistanceMaxError(limit)) - return q -} - -// newQueryOptions returns a set of options using the given distance type -// with the proper default values. -func newQueryOptions(d distance) *queryOptions { - return &queryOptions{ - maxResults: maxQueryResults, - distanceLimit: d.infinity().chordAngle(), - maxError: 0, - includeInteriors: true, - useBruteForce: false, - region: nil, - } -} diff --git a/backend/vendor/github.com/golang/geo/s2/rect.go b/backend/vendor/github.com/golang/geo/s2/rect.go deleted file mode 100644 index 434366c6..00000000 --- a/backend/vendor/github.com/golang/geo/s2/rect.go +++ /dev/null @@ -1,713 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "fmt" - "io" - "math" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// Rect represents a closed latitude-longitude rectangle. -type Rect struct { - Lat r1.Interval - Lng s1.Interval -} - -var ( - validRectLatRange = r1.Interval{-math.Pi / 2, math.Pi / 2} - validRectLngRange = s1.FullInterval() -) - -// EmptyRect returns the empty rectangle. -func EmptyRect() Rect { return Rect{r1.EmptyInterval(), s1.EmptyInterval()} } - -// FullRect returns the full rectangle. -func FullRect() Rect { return Rect{validRectLatRange, validRectLngRange} } - -// RectFromLatLng constructs a rectangle containing a single point p. -func RectFromLatLng(p LatLng) Rect { - return Rect{ - Lat: r1.Interval{p.Lat.Radians(), p.Lat.Radians()}, - Lng: s1.Interval{p.Lng.Radians(), p.Lng.Radians()}, - } -} - -// RectFromCenterSize constructs a rectangle with the given size and center. -// center needs to be normalized, but size does not. The latitude -// interval of the result is clamped to [-90,90] degrees, and the longitude -// interval of the result is FullRect() if and only if the longitude size is -// 360 degrees or more. -// -// Examples of clamping (in degrees): -// -// center=(80,170), size=(40,60) -> lat=[60,90], lng=[140,-160] -// center=(10,40), size=(210,400) -> lat=[-90,90], lng=[-180,180] -// center=(-90,180), size=(20,50) -> lat=[-90,-80], lng=[155,-155] -func RectFromCenterSize(center, size LatLng) Rect { - half := LatLng{size.Lat / 2, size.Lng / 2} - return RectFromLatLng(center).expanded(half) -} - -// IsValid returns true iff the rectangle is valid. -// This requires Lat ⊆ [-π/2,π/2] and Lng ⊆ [-π,π], and Lat = ∅ iff Lng = ∅ -func (r Rect) IsValid() bool { - return math.Abs(r.Lat.Lo) <= math.Pi/2 && - math.Abs(r.Lat.Hi) <= math.Pi/2 && - r.Lng.IsValid() && - r.Lat.IsEmpty() == r.Lng.IsEmpty() -} - -// IsEmpty reports whether the rectangle is empty. -func (r Rect) IsEmpty() bool { return r.Lat.IsEmpty() } - -// IsFull reports whether the rectangle is full. -func (r Rect) IsFull() bool { return r.Lat.Equal(validRectLatRange) && r.Lng.IsFull() } - -// IsPoint reports whether the rectangle is a single point. -func (r Rect) IsPoint() bool { return r.Lat.Lo == r.Lat.Hi && r.Lng.Lo == r.Lng.Hi } - -// Vertex returns the i-th vertex of the rectangle (i = 0,1,2,3) in CCW order -// (lower left, lower right, upper right, upper left). -func (r Rect) Vertex(i int) LatLng { - var lat, lng float64 - - switch i { - case 0: - lat = r.Lat.Lo - lng = r.Lng.Lo - case 1: - lat = r.Lat.Lo - lng = r.Lng.Hi - case 2: - lat = r.Lat.Hi - lng = r.Lng.Hi - case 3: - lat = r.Lat.Hi - lng = r.Lng.Lo - } - return LatLng{s1.Angle(lat) * s1.Radian, s1.Angle(lng) * s1.Radian} -} - -// Lo returns one corner of the rectangle. -func (r Rect) Lo() LatLng { - return LatLng{s1.Angle(r.Lat.Lo) * s1.Radian, s1.Angle(r.Lng.Lo) * s1.Radian} -} - -// Hi returns the other corner of the rectangle. -func (r Rect) Hi() LatLng { - return LatLng{s1.Angle(r.Lat.Hi) * s1.Radian, s1.Angle(r.Lng.Hi) * s1.Radian} -} - -// Center returns the center of the rectangle. -func (r Rect) Center() LatLng { - return LatLng{s1.Angle(r.Lat.Center()) * s1.Radian, s1.Angle(r.Lng.Center()) * s1.Radian} -} - -// Size returns the size of the Rect. -func (r Rect) Size() LatLng { - return LatLng{s1.Angle(r.Lat.Length()) * s1.Radian, s1.Angle(r.Lng.Length()) * s1.Radian} -} - -// Area returns the surface area of the Rect. -func (r Rect) Area() float64 { - if r.IsEmpty() { - return 0 - } - capDiff := math.Abs(math.Sin(r.Lat.Hi) - math.Sin(r.Lat.Lo)) - return r.Lng.Length() * capDiff -} - -// AddPoint increases the size of the rectangle to include the given point. -func (r Rect) AddPoint(ll LatLng) Rect { - if !ll.IsValid() { - return r - } - return Rect{ - Lat: r.Lat.AddPoint(ll.Lat.Radians()), - Lng: r.Lng.AddPoint(ll.Lng.Radians()), - } -} - -// expanded returns a rectangle that has been expanded by margin.Lat on each side -// in the latitude direction, and by margin.Lng on each side in the longitude -// direction. If either margin is negative, then it shrinks the rectangle on -// the corresponding sides instead. The resulting rectangle may be empty. -// -// The latitude-longitude space has the topology of a cylinder. Longitudes -// "wrap around" at +/-180 degrees, while latitudes are clamped to range [-90, 90]. -// This means that any expansion (positive or negative) of the full longitude range -// remains full (since the "rectangle" is actually a continuous band around the -// cylinder), while expansion of the full latitude range remains full only if the -// margin is positive. -// -// If either the latitude or longitude interval becomes empty after -// expansion by a negative margin, the result is empty. -// -// Note that if an expanded rectangle contains a pole, it may not contain -// all possible lat/lng representations of that pole, e.g., both points [π/2,0] -// and [π/2,1] represent the same pole, but they might not be contained by the -// same Rect. -// -// If you are trying to grow a rectangle by a certain distance on the -// sphere (e.g. 5km), refer to the ExpandedByDistance() C++ method implementation -// instead. -func (r Rect) expanded(margin LatLng) Rect { - lat := r.Lat.Expanded(margin.Lat.Radians()) - lng := r.Lng.Expanded(margin.Lng.Radians()) - - if lat.IsEmpty() || lng.IsEmpty() { - return EmptyRect() - } - - return Rect{ - Lat: lat.Intersection(validRectLatRange), - Lng: lng, - } -} - -func (r Rect) String() string { return fmt.Sprintf("[Lo%v, Hi%v]", r.Lo(), r.Hi()) } - -// PolarClosure returns the rectangle unmodified if it does not include either pole. -// If it includes either pole, PolarClosure returns an expansion of the rectangle along -// the longitudinal range to include all possible representations of the contained poles. -func (r Rect) PolarClosure() Rect { - if r.Lat.Lo == -math.Pi/2 || r.Lat.Hi == math.Pi/2 { - return Rect{r.Lat, s1.FullInterval()} - } - return r -} - -// Union returns the smallest Rect containing the union of this rectangle and the given rectangle. -func (r Rect) Union(other Rect) Rect { - return Rect{ - Lat: r.Lat.Union(other.Lat), - Lng: r.Lng.Union(other.Lng), - } -} - -// Intersection returns the smallest rectangle containing the intersection of -// this rectangle and the given rectangle. Note that the region of intersection -// may consist of two disjoint rectangles, in which case a single rectangle -// spanning both of them is returned. -func (r Rect) Intersection(other Rect) Rect { - lat := r.Lat.Intersection(other.Lat) - lng := r.Lng.Intersection(other.Lng) - - if lat.IsEmpty() || lng.IsEmpty() { - return EmptyRect() - } - return Rect{lat, lng} -} - -// Intersects reports whether this rectangle and the other have any points in common. -func (r Rect) Intersects(other Rect) bool { - return r.Lat.Intersects(other.Lat) && r.Lng.Intersects(other.Lng) -} - -// CapBound returns a cap that contains Rect. -func (r Rect) CapBound() Cap { - // We consider two possible bounding caps, one whose axis passes - // through the center of the lat-long rectangle and one whose axis - // is the north or south pole. We return the smaller of the two caps. - - if r.IsEmpty() { - return EmptyCap() - } - - var poleZ, poleAngle float64 - if r.Lat.Hi+r.Lat.Lo < 0 { - // South pole axis yields smaller cap. - poleZ = -1 - poleAngle = math.Pi/2 + r.Lat.Hi - } else { - poleZ = 1 - poleAngle = math.Pi/2 - r.Lat.Lo - } - poleCap := CapFromCenterAngle(Point{r3.Vector{0, 0, poleZ}}, s1.Angle(poleAngle)*s1.Radian) - - // For bounding rectangles that span 180 degrees or less in longitude, the - // maximum cap size is achieved at one of the rectangle vertices. For - // rectangles that are larger than 180 degrees, we punt and always return a - // bounding cap centered at one of the two poles. - if math.Remainder(r.Lng.Hi-r.Lng.Lo, 2*math.Pi) >= 0 && r.Lng.Hi-r.Lng.Lo < 2*math.Pi { - midCap := CapFromPoint(PointFromLatLng(r.Center())).AddPoint(PointFromLatLng(r.Lo())).AddPoint(PointFromLatLng(r.Hi())) - if midCap.Height() < poleCap.Height() { - return midCap - } - } - return poleCap -} - -// RectBound returns itself. -func (r Rect) RectBound() Rect { - return r -} - -// Contains reports whether this Rect contains the other Rect. -func (r Rect) Contains(other Rect) bool { - return r.Lat.ContainsInterval(other.Lat) && r.Lng.ContainsInterval(other.Lng) -} - -// ContainsCell reports whether the given Cell is contained by this Rect. -func (r Rect) ContainsCell(c Cell) bool { - // A latitude-longitude rectangle contains a cell if and only if it contains - // the cell's bounding rectangle. This test is exact from a mathematical - // point of view, assuming that the bounds returned by Cell.RectBound() - // are tight. However, note that there can be a loss of precision when - // converting between representations -- for example, if an s2.Cell is - // converted to a polygon, the polygon's bounding rectangle may not contain - // the cell's bounding rectangle. This has some slightly unexpected side - // effects; for instance, if one creates an s2.Polygon from an s2.Cell, the - // polygon will contain the cell, but the polygon's bounding box will not. - return r.Contains(c.RectBound()) -} - -// ContainsLatLng reports whether the given LatLng is within the Rect. -func (r Rect) ContainsLatLng(ll LatLng) bool { - if !ll.IsValid() { - return false - } - return r.Lat.Contains(ll.Lat.Radians()) && r.Lng.Contains(ll.Lng.Radians()) -} - -// ContainsPoint reports whether the given Point is within the Rect. -func (r Rect) ContainsPoint(p Point) bool { - return r.ContainsLatLng(LatLngFromPoint(p)) -} - -// CellUnionBound computes a covering of the Rect. -func (r Rect) CellUnionBound() []CellID { - return r.CapBound().CellUnionBound() -} - -// intersectsLatEdge reports whether the edge AB intersects the given edge of constant -// latitude. Requires the points to have unit length. -func intersectsLatEdge(a, b Point, lat s1.Angle, lng s1.Interval) bool { - // Unfortunately, lines of constant latitude are curves on - // the sphere. They can intersect a straight edge in 0, 1, or 2 points. - - // First, compute the normal to the plane AB that points vaguely north. - z := Point{a.PointCross(b).Normalize()} - if z.Z < 0 { - z = Point{z.Mul(-1)} - } - - // Extend this to an orthonormal frame (x,y,z) where x is the direction - // where the great circle through AB achieves its maximium latitude. - y := Point{z.PointCross(PointFromCoords(0, 0, 1)).Normalize()} - x := y.Cross(z.Vector) - - // Compute the angle "theta" from the x-axis (in the x-y plane defined - // above) where the great circle intersects the given line of latitude. - sinLat := math.Sin(float64(lat)) - if math.Abs(sinLat) >= x.Z { - // The great circle does not reach the given latitude. - return false - } - - cosTheta := sinLat / x.Z - sinTheta := math.Sqrt(1 - cosTheta*cosTheta) - theta := math.Atan2(sinTheta, cosTheta) - - // The candidate intersection points are located +/- theta in the x-y - // plane. For an intersection to be valid, we need to check that the - // intersection point is contained in the interior of the edge AB and - // also that it is contained within the given longitude interval "lng". - - // Compute the range of theta values spanned by the edge AB. - abTheta := s1.IntervalFromPointPair( - math.Atan2(a.Dot(y.Vector), a.Dot(x)), - math.Atan2(b.Dot(y.Vector), b.Dot(x))) - - if abTheta.Contains(theta) { - // Check if the intersection point is also in the given lng interval. - isect := x.Mul(cosTheta).Add(y.Mul(sinTheta)) - if lng.Contains(math.Atan2(isect.Y, isect.X)) { - return true - } - } - - if abTheta.Contains(-theta) { - // Check if the other intersection point is also in the given lng interval. - isect := x.Mul(cosTheta).Sub(y.Mul(sinTheta)) - if lng.Contains(math.Atan2(isect.Y, isect.X)) { - return true - } - } - return false -} - -// intersectsLngEdge reports whether the edge AB intersects the given edge of constant -// longitude. Requires the points to have unit length. -func intersectsLngEdge(a, b Point, lat r1.Interval, lng s1.Angle) bool { - // The nice thing about edges of constant longitude is that - // they are straight lines on the sphere (geodesics). - return CrossingSign(a, b, PointFromLatLng(LatLng{s1.Angle(lat.Lo), lng}), - PointFromLatLng(LatLng{s1.Angle(lat.Hi), lng})) == Cross -} - -// IntersectsCell reports whether this rectangle intersects the given cell. This is an -// exact test and may be fairly expensive. -func (r Rect) IntersectsCell(c Cell) bool { - // First we eliminate the cases where one region completely contains the - // other. Once these are disposed of, then the regions will intersect - // if and only if their boundaries intersect. - if r.IsEmpty() { - return false - } - if r.ContainsPoint(Point{c.id.rawPoint()}) { - return true - } - if c.ContainsPoint(PointFromLatLng(r.Center())) { - return true - } - - // Quick rejection test (not required for correctness). - if !r.Intersects(c.RectBound()) { - return false - } - - // Precompute the cell vertices as points and latitude-longitudes. We also - // check whether the Cell contains any corner of the rectangle, or - // vice-versa, since the edge-crossing tests only check the edge interiors. - vertices := [4]Point{} - latlngs := [4]LatLng{} - - for i := range vertices { - vertices[i] = c.Vertex(i) - latlngs[i] = LatLngFromPoint(vertices[i]) - if r.ContainsLatLng(latlngs[i]) { - return true - } - if c.ContainsPoint(PointFromLatLng(r.Vertex(i))) { - return true - } - } - - // Now check whether the boundaries intersect. Unfortunately, a - // latitude-longitude rectangle does not have straight edges: two edges - // are curved, and at least one of them is concave. - for i := range vertices { - edgeLng := s1.IntervalFromEndpoints(latlngs[i].Lng.Radians(), latlngs[(i+1)&3].Lng.Radians()) - if !r.Lng.Intersects(edgeLng) { - continue - } - - a := vertices[i] - b := vertices[(i+1)&3] - if edgeLng.Contains(r.Lng.Lo) && intersectsLngEdge(a, b, r.Lat, s1.Angle(r.Lng.Lo)) { - return true - } - if edgeLng.Contains(r.Lng.Hi) && intersectsLngEdge(a, b, r.Lat, s1.Angle(r.Lng.Hi)) { - return true - } - if intersectsLatEdge(a, b, s1.Angle(r.Lat.Lo), r.Lng) { - return true - } - if intersectsLatEdge(a, b, s1.Angle(r.Lat.Hi), r.Lng) { - return true - } - } - return false -} - -// Encode encodes the Rect. -func (r Rect) Encode(w io.Writer) error { - e := &encoder{w: w} - r.encode(e) - return e.err -} - -func (r Rect) encode(e *encoder) { - e.writeInt8(encodingVersion) - e.writeFloat64(r.Lat.Lo) - e.writeFloat64(r.Lat.Hi) - e.writeFloat64(r.Lng.Lo) - e.writeFloat64(r.Lng.Hi) -} - -// Decode decodes a rectangle. -func (r *Rect) Decode(rd io.Reader) error { - d := &decoder{r: asByteReader(rd)} - r.decode(d) - return d.err -} - -func (r *Rect) decode(d *decoder) { - if version := d.readUint8(); int8(version) != encodingVersion && d.err == nil { - d.err = fmt.Errorf("can't decode version %d; my version: %d", version, encodingVersion) - return - } - r.Lat.Lo = d.readFloat64() - r.Lat.Hi = d.readFloat64() - r.Lng.Lo = d.readFloat64() - r.Lng.Hi = d.readFloat64() - return -} - -// DistanceToLatLng returns the minimum distance (measured along the surface of the sphere) -// from a given point to the rectangle (both its boundary and its interior). -// If r is empty, the result is meaningless. -// The latlng must be valid. -func (r Rect) DistanceToLatLng(ll LatLng) s1.Angle { - if r.Lng.Contains(float64(ll.Lng)) { - return maxAngle(0, ll.Lat-s1.Angle(r.Lat.Hi), s1.Angle(r.Lat.Lo)-ll.Lat) - } - - i := s1.IntervalFromEndpoints(r.Lng.Hi, r.Lng.ComplementCenter()) - rectLng := r.Lng.Lo - if i.Contains(float64(ll.Lng)) { - rectLng = r.Lng.Hi - } - - lo := LatLng{s1.Angle(r.Lat.Lo) * s1.Radian, s1.Angle(rectLng) * s1.Radian} - hi := LatLng{s1.Angle(r.Lat.Hi) * s1.Radian, s1.Angle(rectLng) * s1.Radian} - return DistanceFromSegment(PointFromLatLng(ll), PointFromLatLng(lo), PointFromLatLng(hi)) -} - -// DirectedHausdorffDistance returns the directed Hausdorff distance (measured along the -// surface of the sphere) to the given Rect. The directed Hausdorff -// distance from rectangle A to rectangle B is given by -// -// h(A, B) = max_{p in A} min_{q in B} d(p, q). -func (r Rect) DirectedHausdorffDistance(other Rect) s1.Angle { - if r.IsEmpty() { - return 0 * s1.Radian - } - if other.IsEmpty() { - return math.Pi * s1.Radian - } - - lng := r.Lng.DirectedHausdorffDistance(other.Lng) - return directedHausdorffDistance(lng, r.Lat, other.Lat) -} - -// HausdorffDistance returns the undirected Hausdorff distance (measured along the -// surface of the sphere) to the given Rect. -// The Hausdorff distance between rectangle A and rectangle B is given by -// -// H(A, B) = max{h(A, B), h(B, A)}. -func (r Rect) HausdorffDistance(other Rect) s1.Angle { - return maxAngle(r.DirectedHausdorffDistance(other), - other.DirectedHausdorffDistance(r)) -} - -// ApproxEqual reports whether the latitude and longitude intervals of the two rectangles -// are the same up to a small tolerance. -func (r Rect) ApproxEqual(other Rect) bool { - return r.Lat.ApproxEqual(other.Lat) && r.Lng.ApproxEqual(other.Lng) -} - -// directedHausdorffDistance returns the directed Hausdorff distance -// from one longitudinal edge spanning latitude range 'a' to the other -// longitudinal edge spanning latitude range 'b', with their longitudinal -// difference given by 'lngDiff'. -func directedHausdorffDistance(lngDiff s1.Angle, a, b r1.Interval) s1.Angle { - // By symmetry, we can assume a's longitude is 0 and b's longitude is - // lngDiff. Call b's two endpoints bLo and bHi. Let H be the hemisphere - // containing a and delimited by the longitude line of b. The Voronoi diagram - // of b on H has three edges (portions of great circles) all orthogonal to b - // and meeting at bLo cross bHi. - // E1: (bLo, bLo cross bHi) - // E2: (bHi, bLo cross bHi) - // E3: (-bMid, bLo cross bHi), where bMid is the midpoint of b - // - // They subdivide H into three Voronoi regions. Depending on how longitude 0 - // (which contains edge a) intersects these regions, we distinguish two cases: - // Case 1: it intersects three regions. This occurs when lngDiff <= π/2. - // Case 2: it intersects only two regions. This occurs when lngDiff > π/2. - // - // In the first case, the directed Hausdorff distance to edge b can only be - // realized by the following points on a: - // A1: two endpoints of a. - // A2: intersection of a with the equator, if b also intersects the equator. - // - // In the second case, the directed Hausdorff distance to edge b can only be - // realized by the following points on a: - // B1: two endpoints of a. - // B2: intersection of a with E3 - // B3: farthest point from bLo to the interior of D, and farthest point from - // bHi to the interior of U, if any, where D (resp. U) is the portion - // of edge a below (resp. above) the intersection point from B2. - - if lngDiff < 0 { - panic("impossible: negative lngDiff") - } - if lngDiff > math.Pi { - panic("impossible: lngDiff > Pi") - } - - if lngDiff == 0 { - return s1.Angle(a.DirectedHausdorffDistance(b)) - } - - // Assumed longitude of b. - bLng := lngDiff - // Two endpoints of b. - bLo := PointFromLatLng(LatLng{s1.Angle(b.Lo), bLng}) - bHi := PointFromLatLng(LatLng{s1.Angle(b.Hi), bLng}) - - // Cases A1 and B1. - aLo := PointFromLatLng(LatLng{s1.Angle(a.Lo), 0}) - aHi := PointFromLatLng(LatLng{s1.Angle(a.Hi), 0}) - maxDistance := maxAngle( - DistanceFromSegment(aLo, bLo, bHi), - DistanceFromSegment(aHi, bLo, bHi)) - - if lngDiff <= math.Pi/2 { - // Case A2. - if a.Contains(0) && b.Contains(0) { - maxDistance = maxAngle(maxDistance, lngDiff) - } - return maxDistance - } - - // Case B2. - p := bisectorIntersection(b, bLng) - pLat := LatLngFromPoint(p).Lat - if a.Contains(float64(pLat)) { - maxDistance = maxAngle(maxDistance, p.Angle(bLo.Vector)) - } - - // Case B3. - if pLat > s1.Angle(a.Lo) { - intDist, ok := interiorMaxDistance(r1.Interval{a.Lo, math.Min(float64(pLat), a.Hi)}, bLo) - if ok { - maxDistance = maxAngle(maxDistance, intDist) - } - } - if pLat < s1.Angle(a.Hi) { - intDist, ok := interiorMaxDistance(r1.Interval{math.Max(float64(pLat), a.Lo), a.Hi}, bHi) - if ok { - maxDistance = maxAngle(maxDistance, intDist) - } - } - - return maxDistance -} - -// interiorMaxDistance returns the max distance from a point b to the segment spanning latitude range -// aLat on longitude 0 if the max occurs in the interior of aLat. Otherwise, returns (0, false). -func interiorMaxDistance(aLat r1.Interval, b Point) (a s1.Angle, ok bool) { - // Longitude 0 is in the y=0 plane. b.X >= 0 implies that the maximum - // does not occur in the interior of aLat. - if aLat.IsEmpty() || b.X >= 0 { - return 0, false - } - - // Project b to the y=0 plane. The antipodal of the normalized projection is - // the point at which the maxium distance from b occurs, if it is contained - // in aLat. - intersectionPoint := PointFromCoords(-b.X, 0, -b.Z) - if !aLat.InteriorContains(float64(LatLngFromPoint(intersectionPoint).Lat)) { - return 0, false - } - return b.Angle(intersectionPoint.Vector), true -} - -// bisectorIntersection return the intersection of longitude 0 with the bisector of an edge -// on longitude 'lng' and spanning latitude range 'lat'. -func bisectorIntersection(lat r1.Interval, lng s1.Angle) Point { - lng = s1.Angle(math.Abs(float64(lng))) - latCenter := s1.Angle(lat.Center()) - - // A vector orthogonal to the bisector of the given longitudinal edge. - orthoBisector := LatLng{latCenter - math.Pi/2, lng} - if latCenter < 0 { - orthoBisector = LatLng{-latCenter - math.Pi/2, lng - math.Pi} - } - - // A vector orthogonal to longitude 0. - orthoLng := Point{r3.Vector{0, -1, 0}} - - return orthoLng.PointCross(PointFromLatLng(orthoBisector)) -} - -// Centroid returns the true centroid of the given Rect multiplied by its -// surface area. The result is not unit length, so you may want to normalize it. -// Note that in general the centroid is *not* at the center of the rectangle, and -// in fact it may not even be contained by the rectangle. (It is the "center of -// mass" of the rectangle viewed as subset of the unit sphere, i.e. it is the -// point in space about which this curved shape would rotate.) -// -// The reason for multiplying the result by the rectangle area is to make it -// easier to compute the centroid of more complicated shapes. The centroid -// of a union of disjoint regions can be computed simply by adding their -// Centroid results. -func (r Rect) Centroid() Point { - // When a sphere is divided into slices of constant thickness by a set - // of parallel planes, all slices have the same surface area. This - // implies that the z-component of the centroid is simply the midpoint - // of the z-interval spanned by the Rect. - // - // Similarly, it is easy to see that the (x,y) of the centroid lies in - // the plane through the midpoint of the rectangle's longitude interval. - // We only need to determine the distance "d" of this point from the - // z-axis. - // - // Let's restrict our attention to a particular z-value. In this - // z-plane, the Rect is a circular arc. The centroid of this arc - // lies on a radial line through the midpoint of the arc, and at a - // distance from the z-axis of - // - // r * (sin(alpha) / alpha) - // - // where r = sqrt(1-z^2) is the radius of the arc, and "alpha" is half - // of the arc length (i.e., the arc covers longitudes [-alpha, alpha]). - // - // To find the centroid distance from the z-axis for the entire - // rectangle, we just need to integrate over the z-interval. This gives - // - // d = Integrate[sqrt(1-z^2)*sin(alpha)/alpha, z1..z2] / (z2 - z1) - // - // where [z1, z2] is the range of z-values covered by the rectangle. - // This simplifies to - // - // d = sin(alpha)/(2*alpha*(z2-z1))*(z2*r2 - z1*r1 + theta2 - theta1) - // - // where [theta1, theta2] is the latitude interval, z1=sin(theta1), - // z2=sin(theta2), r1=cos(theta1), and r2=cos(theta2). - // - // Finally, we want to return not the centroid itself, but the centroid - // scaled by the area of the rectangle. The area of the rectangle is - // - // A = 2 * alpha * (z2 - z1) - // - // which fortunately appears in the denominator of "d". - - if r.IsEmpty() { - return Point{} - } - - z1 := math.Sin(r.Lat.Lo) - z2 := math.Sin(r.Lat.Hi) - r1 := math.Cos(r.Lat.Lo) - r2 := math.Cos(r.Lat.Hi) - - alpha := 0.5 * r.Lng.Length() - r0 := math.Sin(alpha) * (r2*z2 - r1*z1 + r.Lat.Length()) - lng := r.Lng.Center() - z := alpha * (z2 + z1) * (z2 - z1) // scaled by the area - - return Point{r3.Vector{r0 * math.Cos(lng), r0 * math.Sin(lng), z}} -} - -// BUG: The major differences from the C++ version are: -// - Get*Distance, Vertex, InteriorContains(LatLng|Rect|Point) diff --git a/backend/vendor/github.com/golang/geo/s2/rect_bounder.go b/backend/vendor/github.com/golang/geo/s2/rect_bounder.go deleted file mode 100644 index a4a68349..00000000 --- a/backend/vendor/github.com/golang/geo/s2/rect_bounder.go +++ /dev/null @@ -1,351 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r3" - "github.com/golang/geo/s1" -) - -// RectBounder is used to compute a bounding rectangle that contains all edges -// defined by a vertex chain (v0, v1, v2, ...). All vertices must be unit length. -// Note that the bounding rectangle of an edge can be larger than the bounding -// rectangle of its endpoints, e.g. consider an edge that passes through the North Pole. -// -// The bounds are calculated conservatively to account for numerical errors -// when points are converted to LatLngs. More precisely, this function -// guarantees the following: -// Let L be a closed edge chain (Loop) such that the interior of the loop does -// not contain either pole. Now if P is any point such that L.ContainsPoint(P), -// then RectBound(L).ContainsPoint(LatLngFromPoint(P)). -type RectBounder struct { - // The previous vertex in the chain. - a Point - // The previous vertex latitude longitude. - aLL LatLng - bound Rect -} - -// NewRectBounder returns a new instance of a RectBounder. -func NewRectBounder() *RectBounder { - return &RectBounder{ - bound: EmptyRect(), - } -} - -// maxErrorForTests returns the maximum error in RectBound provided that the -// result does not include either pole. It is only used for testing purposes -func (r *RectBounder) maxErrorForTests() LatLng { - // The maximum error in the latitude calculation is - // 3.84 * dblEpsilon for the PointCross calculation - // 0.96 * dblEpsilon for the Latitude calculation - // 5 * dblEpsilon added by AddPoint/RectBound to compensate for error - // ----------------- - // 9.80 * dblEpsilon maximum error in result - // - // The maximum error in the longitude calculation is dblEpsilon. RectBound - // does not do any expansion because this isn't necessary in order to - // bound the *rounded* longitudes of contained points. - return LatLng{10 * dblEpsilon * s1.Radian, 1 * dblEpsilon * s1.Radian} -} - -// AddPoint adds the given point to the chain. The Point must be unit length. -func (r *RectBounder) AddPoint(b Point) { - bLL := LatLngFromPoint(b) - - if r.bound.IsEmpty() { - r.a = b - r.aLL = bLL - r.bound = r.bound.AddPoint(bLL) - return - } - - // First compute the cross product N = A x B robustly. This is the normal - // to the great circle through A and B. We don't use RobustSign - // since that method returns an arbitrary vector orthogonal to A if the two - // vectors are proportional, and we want the zero vector in that case. - n := r.a.Sub(b.Vector).Cross(r.a.Add(b.Vector)) // N = 2 * (A x B) - - // The relative error in N gets large as its norm gets very small (i.e., - // when the two points are nearly identical or antipodal). We handle this - // by choosing a maximum allowable error, and if the error is greater than - // this we fall back to a different technique. Since it turns out that - // the other sources of error in converting the normal to a maximum - // latitude add up to at most 1.16 * dblEpsilon, and it is desirable to - // have the total error be a multiple of dblEpsilon, we have chosen to - // limit the maximum error in the normal to be 3.84 * dblEpsilon. - // It is possible to show that the error is less than this when - // - // n.Norm() >= 8 * sqrt(3) / (3.84 - 0.5 - sqrt(3)) * dblEpsilon - // = 1.91346e-15 (about 8.618 * dblEpsilon) - nNorm := n.Norm() - if nNorm < 1.91346e-15 { - // A and B are either nearly identical or nearly antipodal (to within - // 4.309 * dblEpsilon, or about 6 nanometers on the earth's surface). - if r.a.Dot(b.Vector) < 0 { - // The two points are nearly antipodal. The easiest solution is to - // assume that the edge between A and B could go in any direction - // around the sphere. - r.bound = FullRect() - } else { - // The two points are nearly identical (to within 4.309 * dblEpsilon). - // In this case we can just use the bounding rectangle of the points, - // since after the expansion done by GetBound this Rect is - // guaranteed to include the (lat,lng) values of all points along AB. - r.bound = r.bound.Union(RectFromLatLng(r.aLL).AddPoint(bLL)) - } - r.a = b - r.aLL = bLL - return - } - - // Compute the longitude range spanned by AB. - lngAB := s1.EmptyInterval().AddPoint(r.aLL.Lng.Radians()).AddPoint(bLL.Lng.Radians()) - if lngAB.Length() >= math.Pi-2*dblEpsilon { - // The points lie on nearly opposite lines of longitude to within the - // maximum error of the calculation. The easiest solution is to assume - // that AB could go on either side of the pole. - lngAB = s1.FullInterval() - } - - // Next we compute the latitude range spanned by the edge AB. We start - // with the range spanning the two endpoints of the edge: - latAB := r1.IntervalFromPoint(r.aLL.Lat.Radians()).AddPoint(bLL.Lat.Radians()) - - // This is the desired range unless the edge AB crosses the plane - // through N and the Z-axis (which is where the great circle through A - // and B attains its minimum and maximum latitudes). To test whether AB - // crosses this plane, we compute a vector M perpendicular to this - // plane and then project A and B onto it. - m := n.Cross(r3.Vector{0, 0, 1}) - mA := m.Dot(r.a.Vector) - mB := m.Dot(b.Vector) - - // We want to test the signs of "mA" and "mB", so we need to bound - // the error in these calculations. It is possible to show that the - // total error is bounded by - // - // (1 + sqrt(3)) * dblEpsilon * nNorm + 8 * sqrt(3) * (dblEpsilon**2) - // = 6.06638e-16 * nNorm + 6.83174e-31 - - mError := 6.06638e-16*nNorm + 6.83174e-31 - if mA*mB < 0 || math.Abs(mA) <= mError || math.Abs(mB) <= mError { - // Minimum/maximum latitude *may* occur in the edge interior. - // - // The maximum latitude is 90 degrees minus the latitude of N. We - // compute this directly using atan2 in order to get maximum accuracy - // near the poles. - // - // Our goal is compute a bound that contains the computed latitudes of - // all S2Points P that pass the point-in-polygon containment test. - // There are three sources of error we need to consider: - // - the directional error in N (at most 3.84 * dblEpsilon) - // - converting N to a maximum latitude - // - computing the latitude of the test point P - // The latter two sources of error are at most 0.955 * dblEpsilon - // individually, but it is possible to show by a more complex analysis - // that together they can add up to at most 1.16 * dblEpsilon, for a - // total error of 5 * dblEpsilon. - // - // We add 3 * dblEpsilon to the bound here, and GetBound() will pad - // the bound by another 2 * dblEpsilon. - maxLat := math.Min( - math.Atan2(math.Sqrt(n.X*n.X+n.Y*n.Y), math.Abs(n.Z))+3*dblEpsilon, - math.Pi/2) - - // In order to get tight bounds when the two points are close together, - // we also bound the min/max latitude relative to the latitudes of the - // endpoints A and B. First we compute the distance between A and B, - // and then we compute the maximum change in latitude between any two - // points along the great circle that are separated by this distance. - // This gives us a latitude change "budget". Some of this budget must - // be spent getting from A to B; the remainder bounds the round-trip - // distance (in latitude) from A or B to the min or max latitude - // attained along the edge AB. - latBudget := 2 * math.Asin(0.5*(r.a.Sub(b.Vector)).Norm()*math.Sin(maxLat)) - maxDelta := 0.5*(latBudget-latAB.Length()) + dblEpsilon - - // Test whether AB passes through the point of maximum latitude or - // minimum latitude. If the dot product(s) are small enough then the - // result may be ambiguous. - if mA <= mError && mB >= -mError { - latAB.Hi = math.Min(maxLat, latAB.Hi+maxDelta) - } - if mB <= mError && mA >= -mError { - latAB.Lo = math.Max(-maxLat, latAB.Lo-maxDelta) - } - } - r.a = b - r.aLL = bLL - r.bound = r.bound.Union(Rect{latAB, lngAB}) -} - -// RectBound returns the bounding rectangle of the edge chain that connects the -// vertices defined so far. This bound satisfies the guarantee made -// above, i.e. if the edge chain defines a Loop, then the bound contains -// the LatLng coordinates of all Points contained by the loop. -func (r *RectBounder) RectBound() Rect { - return r.bound.expanded(LatLng{s1.Angle(2 * dblEpsilon), 0}).PolarClosure() -} - -// ExpandForSubregions expands a bounding Rect so that it is guaranteed to -// contain the bounds of any subregion whose bounds are computed using -// ComputeRectBound. For example, consider a loop L that defines a square. -// GetBound ensures that if a point P is contained by this square, then -// LatLngFromPoint(P) is contained by the bound. But now consider a diamond -// shaped loop S contained by L. It is possible that GetBound returns a -// *larger* bound for S than it does for L, due to rounding errors. This -// method expands the bound for L so that it is guaranteed to contain the -// bounds of any subregion S. -// -// More precisely, if L is a loop that does not contain either pole, and S -// is a loop such that L.Contains(S), then -// -// ExpandForSubregions(L.RectBound).Contains(S.RectBound). -func ExpandForSubregions(bound Rect) Rect { - // Empty bounds don't need expansion. - if bound.IsEmpty() { - return bound - } - - // First we need to check whether the bound B contains any nearly-antipodal - // points (to within 4.309 * dblEpsilon). If so then we need to return - // FullRect, since the subregion might have an edge between two - // such points, and AddPoint returns Full for such edges. Note that - // this can happen even if B is not Full for example, consider a loop - // that defines a 10km strip straddling the equator extending from - // longitudes -100 to +100 degrees. - // - // It is easy to check whether B contains any antipodal points, but checking - // for nearly-antipodal points is trickier. Essentially we consider the - // original bound B and its reflection through the origin B', and then test - // whether the minimum distance between B and B' is less than 4.309 * dblEpsilon. - - // lngGap is a lower bound on the longitudinal distance between B and its - // reflection B'. (2.5 * dblEpsilon is the maximum combined error of the - // endpoint longitude calculations and the Length call.) - lngGap := math.Max(0, math.Pi-bound.Lng.Length()-2.5*dblEpsilon) - - // minAbsLat is the minimum distance from B to the equator (if zero or - // negative, then B straddles the equator). - minAbsLat := math.Max(bound.Lat.Lo, -bound.Lat.Hi) - - // latGapSouth and latGapNorth measure the minimum distance from B to the - // south and north poles respectively. - latGapSouth := math.Pi/2 + bound.Lat.Lo - latGapNorth := math.Pi/2 - bound.Lat.Hi - - if minAbsLat >= 0 { - // The bound B does not straddle the equator. In this case the minimum - // distance is between one endpoint of the latitude edge in B closest to - // the equator and the other endpoint of that edge in B'. The latitude - // distance between these two points is 2*minAbsLat, and the longitude - // distance is lngGap. We could compute the distance exactly using the - // Haversine formula, but then we would need to bound the errors in that - // calculation. Since we only need accuracy when the distance is very - // small (close to 4.309 * dblEpsilon), we substitute the Euclidean - // distance instead. This gives us a right triangle XYZ with two edges of - // length x = 2*minAbsLat and y ~= lngGap. The desired distance is the - // length of the third edge z, and we have - // - // z ~= sqrt(x^2 + y^2) >= (x + y) / sqrt(2) - // - // Therefore the region may contain nearly antipodal points only if - // - // 2*minAbsLat + lngGap < sqrt(2) * 4.309 * dblEpsilon - // ~= 1.354e-15 - // - // Note that because the given bound B is conservative, minAbsLat and - // lngGap are both lower bounds on their true values so we do not need - // to make any adjustments for their errors. - if 2*minAbsLat+lngGap < 1.354e-15 { - return FullRect() - } - } else if lngGap >= math.Pi/2 { - // B spans at most Pi/2 in longitude. The minimum distance is always - // between one corner of B and the diagonally opposite corner of B'. We - // use the same distance approximation that we used above; in this case - // we have an obtuse triangle XYZ with two edges of length x = latGapSouth - // and y = latGapNorth, and angle Z >= Pi/2 between them. We then have - // - // z >= sqrt(x^2 + y^2) >= (x + y) / sqrt(2) - // - // Unlike the case above, latGapSouth and latGapNorth are not lower bounds - // (because of the extra addition operation, and because math.Pi/2 is not - // exactly equal to Pi/2); they can exceed their true values by up to - // 0.75 * dblEpsilon. Putting this all together, the region may contain - // nearly antipodal points only if - // - // latGapSouth + latGapNorth < (sqrt(2) * 4.309 + 1.5) * dblEpsilon - // ~= 1.687e-15 - if latGapSouth+latGapNorth < 1.687e-15 { - return FullRect() - } - } else { - // Otherwise we know that (1) the bound straddles the equator and (2) its - // width in longitude is at least Pi/2. In this case the minimum - // distance can occur either between a corner of B and the diagonally - // opposite corner of B' (as in the case above), or between a corner of B - // and the opposite longitudinal edge reflected in B'. It is sufficient - // to only consider the corner-edge case, since this distance is also a - // lower bound on the corner-corner distance when that case applies. - - // Consider the spherical triangle XYZ where X is a corner of B with - // minimum absolute latitude, Y is the closest pole to X, and Z is the - // point closest to X on the opposite longitudinal edge of B'. This is a - // right triangle (Z = Pi/2), and from the spherical law of sines we have - // - // sin(z) / sin(Z) = sin(y) / sin(Y) - // sin(maxLatGap) / 1 = sin(dMin) / sin(lngGap) - // sin(dMin) = sin(maxLatGap) * sin(lngGap) - // - // where "maxLatGap" = max(latGapSouth, latGapNorth) and "dMin" is the - // desired minimum distance. Now using the facts that sin(t) >= (2/Pi)*t - // for 0 <= t <= Pi/2, that we only need an accurate approximation when - // at least one of "maxLatGap" or lngGap is extremely small (in which - // case sin(t) ~= t), and recalling that "maxLatGap" has an error of up - // to 0.75 * dblEpsilon, we want to test whether - // - // maxLatGap * lngGap < (4.309 + 0.75) * (Pi/2) * dblEpsilon - // ~= 1.765e-15 - if math.Max(latGapSouth, latGapNorth)*lngGap < 1.765e-15 { - return FullRect() - } - } - // Next we need to check whether the subregion might contain any edges that - // span (math.Pi - 2 * dblEpsilon) radians or more in longitude, since AddPoint - // sets the longitude bound to Full in that case. This corresponds to - // testing whether (lngGap <= 0) in lngExpansion below. - - // Otherwise, the maximum latitude error in AddPoint is 4.8 * dblEpsilon. - // In the worst case, the errors when computing the latitude bound for a - // subregion could go in the opposite direction as the errors when computing - // the bound for the original region, so we need to double this value. - // (More analysis shows that it's okay to round down to a multiple of - // dblEpsilon.) - // - // For longitude, we rely on the fact that atan2 is correctly rounded and - // therefore no additional bounds expansion is necessary. - - latExpansion := 9 * dblEpsilon - lngExpansion := 0.0 - if lngGap <= 0 { - lngExpansion = math.Pi - } - return bound.expanded(LatLng{s1.Angle(latExpansion), s1.Angle(lngExpansion)}).PolarClosure() -} diff --git a/backend/vendor/github.com/golang/geo/s2/region.go b/backend/vendor/github.com/golang/geo/s2/region.go deleted file mode 100644 index 9ea3de1c..00000000 --- a/backend/vendor/github.com/golang/geo/s2/region.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// A Region represents a two-dimensional region on the unit sphere. -// -// The purpose of this interface is to allow complex regions to be -// approximated as simpler regions. The interface is restricted to methods -// that are useful for computing approximations. -type Region interface { - // CapBound returns a bounding spherical cap. This is not guaranteed to be exact. - CapBound() Cap - - // RectBound returns a bounding latitude-longitude rectangle that contains - // the region. The bounds are not guaranteed to be tight. - RectBound() Rect - - // ContainsCell reports whether the region completely contains the given region. - // It returns false if containment could not be determined. - ContainsCell(c Cell) bool - - // IntersectsCell reports whether the region intersects the given cell or - // if intersection could not be determined. It returns false if the region - // does not intersect. - IntersectsCell(c Cell) bool - - // ContainsPoint reports whether the region contains the given point or not. - // The point should be unit length, although some implementations may relax - // this restriction. - ContainsPoint(p Point) bool - - // CellUnionBound returns a small collection of CellIDs whose union covers - // the region. The cells are not sorted, may have redundancies (such as cells - // that contain other cells), and may cover much more area than necessary. - // - // This method is not intended for direct use by client code. Clients - // should typically use Covering, which has options to control the size and - // accuracy of the covering. Alternatively, if you want a fast covering and - // don't care about accuracy, consider calling FastCovering (which returns a - // cleaned-up version of the covering computed by this method). - // - // CellUnionBound implementations should attempt to return a small - // covering (ideally 4 cells or fewer) that covers the region and can be - // computed quickly. The result is used by RegionCoverer as a starting - // point for further refinement. - CellUnionBound() []CellID -} - -// Enforce Region interface satisfaction. -var ( - _ Region = Cap{} - _ Region = Cell{} - _ Region = (*CellUnion)(nil) - _ Region = (*Loop)(nil) - _ Region = Point{} - _ Region = (*Polygon)(nil) - _ Region = (*Polyline)(nil) - _ Region = Rect{} -) diff --git a/backend/vendor/github.com/golang/geo/s2/regioncoverer.go b/backend/vendor/github.com/golang/geo/s2/regioncoverer.go deleted file mode 100644 index 89904028..00000000 --- a/backend/vendor/github.com/golang/geo/s2/regioncoverer.go +++ /dev/null @@ -1,615 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "container/heap" - "sort" -) - -// RegionCoverer allows arbitrary regions to be approximated as unions of cells (CellUnion). -// This is useful for implementing various sorts of search and precomputation operations. -// -// Typical usage: -// -// rc := &s2.RegionCoverer{MaxLevel: 30, MaxCells: 5} -// r := s2.Region(CapFromCenterArea(center, area)) -// covering := rc.Covering(r) -// -// This yields a CellUnion of at most 5 cells that is guaranteed to cover the -// given region (a disc-shaped region on the sphere). -// -// For covering, only cells where (level - MinLevel) is a multiple of LevelMod will be used. -// This effectively allows the branching factor of the S2 CellID hierarchy to be increased. -// Currently the only parameter values allowed are 1, 2, or 3, corresponding to -// branching factors of 4, 16, and 64 respectively. -// -// Note the following: -// -// - MinLevel takes priority over MaxCells, i.e. cells below the given level will -// never be used even if this causes a large number of cells to be returned. -// -// - For any setting of MaxCells, up to 6 cells may be returned if that -// is the minimum number of cells required (e.g. if the region intersects -// all six face cells). Up to 3 cells may be returned even for very tiny -// convex regions if they happen to be located at the intersection of -// three cube faces. -// -// - For any setting of MaxCells, an arbitrary number of cells may be -// returned if MinLevel is too high for the region being approximated. -// -// - If MaxCells is less than 4, the area of the covering may be -// arbitrarily large compared to the area of the original region even if -// the region is convex (e.g. a Cap or Rect). -// -// The approximation algorithm is not optimal but does a pretty good job in -// practice. The output does not always use the maximum number of cells -// allowed, both because this would not always yield a better approximation, -// and because MaxCells is a limit on how much work is done exploring the -// possible covering as well as a limit on the final output size. -// -// Because it is an approximation algorithm, one should not rely on the -// stability of the output. In particular, the output of the covering algorithm -// may change across different versions of the library. -// -// One can also generate interior coverings, which are sets of cells which -// are entirely contained within a region. Interior coverings can be -// empty, even for non-empty regions, if there are no cells that satisfy -// the provided constraints and are contained by the region. Note that for -// performance reasons, it is wise to specify a MaxLevel when computing -// interior coverings - otherwise for regions with small or zero area, the -// algorithm may spend a lot of time subdividing cells all the way to leaf -// level to try to find contained cells. -type RegionCoverer struct { - MinLevel int // the minimum cell level to be used. - MaxLevel int // the maximum cell level to be used. - LevelMod int // the LevelMod to be used. - MaxCells int // the maximum desired number of cells in the approximation. -} - -// NewRegionCoverer returns a region coverer with the appropriate defaults. -func NewRegionCoverer() *RegionCoverer { - return &RegionCoverer{ - MinLevel: 0, - MaxLevel: maxLevel, - LevelMod: 1, - MaxCells: 8, - } -} - -type coverer struct { - minLevel int // the minimum cell level to be used. - maxLevel int // the maximum cell level to be used. - levelMod int // the LevelMod to be used. - maxCells int // the maximum desired number of cells in the approximation. - region Region - result CellUnion - pq priorityQueue - interiorCovering bool -} - -type candidate struct { - cell Cell - terminal bool // Cell should not be expanded further. - numChildren int // Number of children that intersect the region. - children []*candidate // Actual size may be 0, 4, 16, or 64 elements. - priority int // Priority of the candidate. -} - -type priorityQueue []*candidate - -func (pq priorityQueue) Len() int { - return len(pq) -} - -func (pq priorityQueue) Less(i, j int) bool { - // We want Pop to give us the highest, not lowest, priority so we use greater than here. - return pq[i].priority > pq[j].priority -} - -func (pq priorityQueue) Swap(i, j int) { - pq[i], pq[j] = pq[j], pq[i] -} - -func (pq *priorityQueue) Push(x interface{}) { - item := x.(*candidate) - *pq = append(*pq, item) -} - -func (pq *priorityQueue) Pop() interface{} { - item := (*pq)[len(*pq)-1] - *pq = (*pq)[:len(*pq)-1] - return item -} - -func (pq *priorityQueue) Reset() { - *pq = (*pq)[:0] -} - -// newCandidate returns a new candidate with no children if the cell intersects the given region. -// The candidate is marked as terminal if it should not be expanded further. -func (c *coverer) newCandidate(cell Cell) *candidate { - if !c.region.IntersectsCell(cell) { - return nil - } - cand := &candidate{cell: cell} - level := int(cell.level) - if level >= c.minLevel { - if c.interiorCovering { - if c.region.ContainsCell(cell) { - cand.terminal = true - } else if level+c.levelMod > c.maxLevel { - return nil - } - } else if level+c.levelMod > c.maxLevel || c.region.ContainsCell(cell) { - cand.terminal = true - } - } - return cand -} - -// expandChildren populates the children of the candidate by expanding the given number of -// levels from the given cell. Returns the number of children that were marked "terminal". -func (c *coverer) expandChildren(cand *candidate, cell Cell, numLevels int) int { - numLevels-- - var numTerminals int - last := cell.id.ChildEnd() - for ci := cell.id.ChildBegin(); ci != last; ci = ci.Next() { - childCell := CellFromCellID(ci) - if numLevels > 0 { - if c.region.IntersectsCell(childCell) { - numTerminals += c.expandChildren(cand, childCell, numLevels) - } - continue - } - if child := c.newCandidate(childCell); child != nil { - cand.children = append(cand.children, child) - cand.numChildren++ - if child.terminal { - numTerminals++ - } - } - } - return numTerminals -} - -// addCandidate adds the given candidate to the result if it is marked as "terminal", -// otherwise expands its children and inserts it into the priority queue. -// Passing an argument of nil does nothing. -func (c *coverer) addCandidate(cand *candidate) { - if cand == nil { - return - } - - if cand.terminal { - c.result = append(c.result, cand.cell.id) - return - } - - // Expand one level at a time until we hit minLevel to ensure that we don't skip over it. - numLevels := c.levelMod - level := int(cand.cell.level) - if level < c.minLevel { - numLevels = 1 - } - - numTerminals := c.expandChildren(cand, cand.cell, numLevels) - maxChildrenShift := uint(2 * c.levelMod) - if cand.numChildren == 0 { - return - } else if !c.interiorCovering && numTerminals == 1<= c.minLevel { - // Optimization: add the parent cell rather than all of its children. - // We can't do this for interior coverings, since the children just - // intersect the region, but may not be contained by it - we need to - // subdivide them further. - cand.terminal = true - c.addCandidate(cand) - } else { - // We negate the priority so that smaller absolute priorities are returned - // first. The heuristic is designed to refine the largest cells first, - // since those are where we have the largest potential gain. Among cells - // of the same size, we prefer the cells with the fewest children. - // Finally, among cells with equal numbers of children we prefer those - // with the smallest number of children that cannot be refined further. - cand.priority = -(((level< 1 && level > c.minLevel { - level -= (level - c.minLevel) % c.levelMod - } - return level -} - -// adjustCellLevels ensures that all cells with level > minLevel also satisfy levelMod, -// by replacing them with an ancestor if necessary. Cell levels smaller -// than minLevel are not modified (see AdjustLevel). The output is -// then normalized to ensure that no redundant cells are present. -func (c *coverer) adjustCellLevels(cells *CellUnion) { - if c.levelMod == 1 { - return - } - - var out int - for _, ci := range *cells { - level := ci.Level() - newLevel := c.adjustLevel(level) - if newLevel != level { - ci = ci.Parent(newLevel) - } - if out > 0 && (*cells)[out-1].Contains(ci) { - continue - } - for out > 0 && ci.Contains((*cells)[out-1]) { - out-- - } - (*cells)[out] = ci - out++ - } - *cells = (*cells)[:out] -} - -// initialCandidates computes a set of initial candidates that cover the given region. -func (c *coverer) initialCandidates() { - // Optimization: start with a small (usually 4 cell) covering of the region's bounding cap. - temp := &RegionCoverer{MaxLevel: c.maxLevel, LevelMod: 1, MaxCells: minInt(4, c.maxCells)} - - cells := temp.FastCovering(c.region) - c.adjustCellLevels(&cells) - for _, ci := range cells { - c.addCandidate(c.newCandidate(CellFromCellID(ci))) - } -} - -// coveringInternal generates a covering and stores it in result. -// Strategy: Start with the 6 faces of the cube. Discard any -// that do not intersect the shape. Then repeatedly choose the -// largest cell that intersects the shape and subdivide it. -// -// result contains the cells that will be part of the output, while pq -// contains cells that we may still subdivide further. Cells that are -// entirely contained within the region are immediately added to the output, -// while cells that do not intersect the region are immediately discarded. -// Therefore pq only contains cells that partially intersect the region. -// Candidates are prioritized first according to cell size (larger cells -// first), then by the number of intersecting children they have (fewest -// children first), and then by the number of fully contained children -// (fewest children first). -func (c *coverer) coveringInternal(region Region) { - c.region = region - - c.initialCandidates() - for c.pq.Len() > 0 && (!c.interiorCovering || len(c.result) < c.maxCells) { - cand := heap.Pop(&c.pq).(*candidate) - - // For interior covering we keep subdividing no matter how many children - // candidate has. If we reach MaxCells before expanding all children, - // we will just use some of them. - // For exterior covering we cannot do this, because result has to cover the - // whole region, so all children have to be used. - // candidate.numChildren == 1 case takes care of the situation when we - // already have more than MaxCells in result (minLevel is too high). - // Subdividing of the candidate with one child does no harm in this case. - if c.interiorCovering || int(cand.cell.level) < c.minLevel || cand.numChildren == 1 || len(c.result)+c.pq.Len()+cand.numChildren <= c.maxCells { - for _, child := range cand.children { - if !c.interiorCovering || len(c.result) < c.maxCells { - c.addCandidate(child) - } - } - } else { - cand.terminal = true - c.addCandidate(cand) - } - } - - c.pq.Reset() - c.region = nil - - // Rather than just returning the raw list of cell ids, we construct a cell - // union and then denormalize it. This has the effect of replacing four - // child cells with their parent whenever this does not violate the covering - // parameters specified (min_level, level_mod, etc). This significantly - // reduces the number of cells returned in many cases, and it is cheap - // compared to computing the covering in the first place. - c.result.Normalize() - if c.minLevel > 0 || c.levelMod > 1 { - c.result.Denormalize(c.minLevel, c.levelMod) - } -} - -// newCoverer returns an instance of coverer. -func (rc *RegionCoverer) newCoverer() *coverer { - return &coverer{ - minLevel: maxInt(0, minInt(maxLevel, rc.MinLevel)), - maxLevel: maxInt(0, minInt(maxLevel, rc.MaxLevel)), - levelMod: maxInt(1, minInt(3, rc.LevelMod)), - maxCells: rc.MaxCells, - } -} - -// Covering returns a CellUnion that covers the given region and satisfies the various restrictions. -func (rc *RegionCoverer) Covering(region Region) CellUnion { - covering := rc.CellUnion(region) - covering.Denormalize(maxInt(0, minInt(maxLevel, rc.MinLevel)), maxInt(1, minInt(3, rc.LevelMod))) - return covering -} - -// InteriorCovering returns a CellUnion that is contained within the given region and satisfies the various restrictions. -func (rc *RegionCoverer) InteriorCovering(region Region) CellUnion { - intCovering := rc.InteriorCellUnion(region) - intCovering.Denormalize(maxInt(0, minInt(maxLevel, rc.MinLevel)), maxInt(1, minInt(3, rc.LevelMod))) - return intCovering -} - -// CellUnion returns a normalized CellUnion that covers the given region and -// satisfies the restrictions except for minLevel and levelMod. These criteria -// cannot be satisfied using a cell union because cell unions are -// automatically normalized by replacing four child cells with their parent -// whenever possible. (Note that the list of cell ids passed to the CellUnion -// constructor does in fact satisfy all the given restrictions.) -func (rc *RegionCoverer) CellUnion(region Region) CellUnion { - c := rc.newCoverer() - c.coveringInternal(region) - cu := c.result - cu.Normalize() - return cu -} - -// InteriorCellUnion returns a normalized CellUnion that is contained within the given region and -// satisfies the restrictions except for minLevel and levelMod. These criteria -// cannot be satisfied using a cell union because cell unions are -// automatically normalized by replacing four child cells with their parent -// whenever possible. (Note that the list of cell ids passed to the CellUnion -// constructor does in fact satisfy all the given restrictions.) -func (rc *RegionCoverer) InteriorCellUnion(region Region) CellUnion { - c := rc.newCoverer() - c.interiorCovering = true - c.coveringInternal(region) - cu := c.result - cu.Normalize() - return cu -} - -// FastCovering returns a CellUnion that covers the given region similar to Covering, -// except that this method is much faster and the coverings are not as tight. -// All of the usual parameters are respected (MaxCells, MinLevel, MaxLevel, and LevelMod), -// except that the implementation makes no attempt to take advantage of large values of -// MaxCells. (A small number of cells will always be returned.) -// -// This function is useful as a starting point for algorithms that -// recursively subdivide cells. -func (rc *RegionCoverer) FastCovering(region Region) CellUnion { - c := rc.newCoverer() - cu := CellUnion(region.CellUnionBound()) - c.normalizeCovering(&cu) - return cu -} - -// IsCanonical reports whether the given CellUnion represents a valid covering -// that conforms to the current covering parameters. In particular: -// -// - All CellIDs must be valid. -// -// - CellIDs must be sorted and non-overlapping. -// -// - CellID levels must satisfy MinLevel, MaxLevel, and LevelMod. -// -// - If the covering has more than MaxCells, there must be no two cells with -// a common ancestor at MinLevel or higher. -// -// - There must be no sequence of cells that could be replaced by an -// ancestor (i.e. with LevelMod == 1, the 4 child cells of a parent). -func (rc *RegionCoverer) IsCanonical(covering CellUnion) bool { - return rc.newCoverer().isCanonical(covering) -} - -// normalizeCovering normalizes the "covering" so that it conforms to the -// current covering parameters (maxCells, minLevel, maxLevel, and levelMod). -// This method makes no attempt to be optimal. In particular, if -// minLevel > 0 or levelMod > 1 then it may return more than the -// desired number of cells even when this isn't necessary. -// -// Note that when the covering parameters have their default values, almost -// all of the code in this function is skipped. -func (c *coverer) normalizeCovering(covering *CellUnion) { - // If any cells are too small, or don't satisfy levelMod, then replace them with ancestors. - if c.maxLevel < maxLevel || c.levelMod > 1 { - for i, ci := range *covering { - level := ci.Level() - newLevel := c.adjustLevel(minInt(level, c.maxLevel)) - if newLevel != level { - (*covering)[i] = ci.Parent(newLevel) - } - } - } - // Sort the cells and simplify them. - covering.Normalize() - - // Make sure that the covering satisfies minLevel and levelMod, - // possibly at the expense of satisfying MaxCells. - if c.minLevel > 0 || c.levelMod > 1 { - covering.Denormalize(c.minLevel, c.levelMod) - } - - // If there are too many cells and the covering is very large, use the - // RegionCoverer to compute a new covering. (This avoids possible O(n^2) - // behavior of the simpler algorithm below.) - excess := len(*covering) - c.maxCells - if excess <= 0 || c.isCanonical(*covering) { - return - } - if excess*len(*covering) > 10000 { - rc := NewRegionCoverer() - (*covering) = rc.Covering(covering) - return - } - - // If there are still too many cells, then repeatedly replace two adjacent - // cells in CellID order by their lowest common ancestor. - for len(*covering) > c.maxCells { - bestIndex := -1 - bestLevel := -1 - for i := 0; i+1 < len(*covering); i++ { - level, ok := (*covering)[i].CommonAncestorLevel((*covering)[i+1]) - if !ok { - continue - } - level = c.adjustLevel(level) - if level > bestLevel { - bestLevel = level - bestIndex = i - } - } - - if bestLevel < c.minLevel { - break - } - - // Replace all cells contained by the new ancestor cell. - id := (*covering)[bestIndex].Parent(bestLevel) - (*covering) = c.replaceCellsWithAncestor(*covering, id) - - // Now repeatedly check whether all children of the parent cell are - // present, in which case we can replace those cells with their parent. - for bestLevel > c.minLevel { - bestLevel -= c.levelMod - id = id.Parent(bestLevel) - if !c.containsAllChildren(*covering, id) { - break - } - (*covering) = c.replaceCellsWithAncestor(*covering, id) - } - } -} - -// isCanonical reports whether the covering is canonical. -func (c *coverer) isCanonical(covering CellUnion) bool { - trueMax := c.maxLevel - if c.levelMod != 1 { - trueMax = c.maxLevel - (c.maxLevel-c.minLevel)%c.levelMod - } - tooManyCells := len(covering) > c.maxCells - sameParentCount := 1 - - prevID := CellID(0) - for _, id := range covering { - if !id.IsValid() { - return false - } - - // Check that the CellID level is acceptable. - level := id.Level() - if level < c.minLevel || level > trueMax { - return false - } - if c.levelMod > 1 && (level-c.minLevel)%c.levelMod != 0 { - return false - } - - if prevID != 0 { - // Check that cells are sorted and non-overlapping. - if prevID.RangeMax() >= id.RangeMin() { - return false - } - - lev, ok := id.CommonAncestorLevel(prevID) - // If there are too many cells, check that no pair of adjacent cells - // could be replaced by an ancestor. - if tooManyCells && (ok && lev >= c.minLevel) { - return false - } - - // Check that there are no sequences of (4 ** level_mod) cells that all - // have the same parent (considering only multiples of "level_mod"). - pLevel := level - c.levelMod - if pLevel < c.minLevel || level != prevID.Level() || - id.Parent(pLevel) != prevID.Parent(pLevel) { - sameParentCount = 1 - } else { - sameParentCount++ - if sameParentCount == 1<= id.RangeMin() }) - level := id.Level() + c.levelMod - for child := id.ChildBeginAtLevel(level); child != id.ChildEndAtLevel(level); child = child.Next() { - if pos == len(covering) || covering[pos] != child { - return false - } - pos++ - } - return true -} - -// replaceCellsWithAncestor replaces all descendants of the given id in covering -// with id. This requires the covering contains at least one descendant of id. -func (c *coverer) replaceCellsWithAncestor(covering []CellID, id CellID) []CellID { - begin := sort.Search(len(covering), func(i int) bool { return covering[i] > id.RangeMin() }) - end := sort.Search(len(covering), func(i int) bool { return covering[i] > id.RangeMax() }) - - return append(append(covering[:begin], id), covering[end:]...) -} - -// SimpleRegionCovering returns a set of cells at the given level that cover -// the connected region and a starting point on the boundary or inside the -// region. The cells are returned in arbitrary order. -// -// Note that this method is not faster than the regular Covering -// method for most region types, such as Cap or Polygon, and in fact it -// can be much slower when the output consists of a large number of cells. -// Currently it can be faster at generating coverings of long narrow regions -// such as polylines, but this may change in the future. -func SimpleRegionCovering(region Region, start Point, level int) []CellID { - return FloodFillRegionCovering(region, cellIDFromPoint(start).Parent(level)) -} - -// FloodFillRegionCovering returns all edge-connected cells at the same level as -// the given CellID that intersect the given region, in arbitrary order. -func FloodFillRegionCovering(region Region, start CellID) []CellID { - var output []CellID - all := map[CellID]bool{ - start: true, - } - frontier := []CellID{start} - for len(frontier) > 0 { - id := frontier[len(frontier)-1] - frontier = frontier[:len(frontier)-1] - if !region.IntersectsCell(CellFromCellID(id)) { - continue - } - output = append(output, id) - for _, nbr := range id.EdgeNeighbors() { - if !all[nbr] { - all[nbr] = true - frontier = append(frontier, nbr) - } - } - } - - return output -} diff --git a/backend/vendor/github.com/golang/geo/s2/regionunion.go b/backend/vendor/github.com/golang/geo/s2/regionunion.go deleted file mode 100644 index 915b7c33..00000000 --- a/backend/vendor/github.com/golang/geo/s2/regionunion.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2020 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// A RegionUnion represents a union of possibly overlapping regions. -// It is convenient for computing a covering of a set of regions. -type RegionUnion []Region - -// CapBound returns a bounding cap for this RegionUnion. -func (ru RegionUnion) CapBound() Cap { return ru.RectBound().CapBound() } - -// RectBound returns a bounding latitude-longitude rectangle for this RegionUnion. -func (ru RegionUnion) RectBound() Rect { - ret := EmptyRect() - for _, reg := range ru { - ret = ret.Union(reg.RectBound()) - } - return ret -} - -// ContainsCell reports whether the given Cell is contained by this RegionUnion. -func (ru RegionUnion) ContainsCell(c Cell) bool { - for _, reg := range ru { - if reg.ContainsCell(c) { - return true - } - } - return false -} - -// IntersectsCell reports whether this RegionUnion intersects the given cell. -func (ru RegionUnion) IntersectsCell(c Cell) bool { - for _, reg := range ru { - if reg.IntersectsCell(c) { - return true - } - } - return false -} - -// ContainsPoint reports whether this RegionUnion contains the Point. -func (ru RegionUnion) ContainsPoint(p Point) bool { - for _, reg := range ru { - if reg.ContainsPoint(p) { - return true - } - } - return false -} - -// CellUnionBound computes a covering of the RegionUnion. -func (ru RegionUnion) CellUnionBound() []CellID { - return ru.CapBound().CellUnionBound() -} diff --git a/backend/vendor/github.com/golang/geo/s2/shape.go b/backend/vendor/github.com/golang/geo/s2/shape.go deleted file mode 100644 index 1830719a..00000000 --- a/backend/vendor/github.com/golang/geo/s2/shape.go +++ /dev/null @@ -1,263 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "sort" -) - -// Edge represents a geodesic edge consisting of two vertices. Zero-length edges are -// allowed, and can be used to represent points. -type Edge struct { - V0, V1 Point -} - -// Cmp compares the two edges using the underlying Points Cmp method and returns -// -// -1 if e < other -// 0 if e == other -// +1 if e > other -// -// The two edges are compared by first vertex, and then by the second vertex. -func (e Edge) Cmp(other Edge) int { - if v0cmp := e.V0.Cmp(other.V0.Vector); v0cmp != 0 { - return v0cmp - } - return e.V1.Cmp(other.V1.Vector) -} - -// sortEdges sorts the slice of Edges in place. -func sortEdges(e []Edge) { - sort.Sort(edges(e)) -} - -// edges implements the Sort interface for slices of Edge. -type edges []Edge - -func (e edges) Len() int { return len(e) } -func (e edges) Swap(i, j int) { e[i], e[j] = e[j], e[i] } -func (e edges) Less(i, j int) bool { return e[i].Cmp(e[j]) == -1 } - -// ShapeEdgeID is a unique identifier for an Edge within an ShapeIndex, -// consisting of a (shapeID, edgeID) pair. -type ShapeEdgeID struct { - ShapeID int32 - EdgeID int32 -} - -// Cmp compares the two ShapeEdgeIDs and returns -// -// -1 if s < other -// 0 if s == other -// +1 if s > other -// -// The two are compared first by shape id and then by edge id. -func (s ShapeEdgeID) Cmp(other ShapeEdgeID) int { - switch { - case s.ShapeID < other.ShapeID: - return -1 - case s.ShapeID > other.ShapeID: - return 1 - } - switch { - case s.EdgeID < other.EdgeID: - return -1 - case s.EdgeID > other.EdgeID: - return 1 - } - return 0 -} - -// ShapeEdge represents a ShapeEdgeID with the two endpoints of that Edge. -type ShapeEdge struct { - ID ShapeEdgeID - Edge Edge -} - -// Chain represents a range of edge IDs corresponding to a chain of connected -// edges, specified as a (start, length) pair. The chain is defined to consist of -// edge IDs {start, start + 1, ..., start + length - 1}. -type Chain struct { - Start, Length int -} - -// ChainPosition represents the position of an edge within a given edge chain, -// specified as a (chainID, offset) pair. Chains are numbered sequentially -// starting from zero, and offsets are measured from the start of each chain. -type ChainPosition struct { - ChainID, Offset int -} - -// A ReferencePoint consists of a point and a boolean indicating whether the point -// is contained by a particular shape. -type ReferencePoint struct { - Point Point - Contained bool -} - -// OriginReferencePoint returns a ReferencePoint with the given value for -// contained and the origin point. It should be used when all points or no -// points are contained. -func OriginReferencePoint(contained bool) ReferencePoint { - return ReferencePoint{Point: OriginPoint(), Contained: contained} -} - -// typeTag is a 32-bit tag that can be used to identify the type of an encoded -// Shape. All encodable types have a non-zero type tag. The tag associated with -type typeTag uint32 - -const ( - // Indicates that a given Shape type cannot be encoded. - typeTagNone typeTag = 0 - typeTagPolygon typeTag = 1 - typeTagPolyline typeTag = 2 - typeTagPointVector typeTag = 3 - typeTagLaxPolyline typeTag = 4 - typeTagLaxPolygon typeTag = 5 - - // The minimum allowable tag for future user-defined Shape types. - typeTagMinUser typeTag = 8192 -) - -// Shape represents polygonal geometry in a flexible way. It is organized as a -// collection of edges that optionally defines an interior. All geometry -// represented by a given Shape must have the same dimension, which means that -// an Shape can represent either a set of points, a set of polylines, or a set -// of polygons. -// -// Shape is defined as an interface in order to give clients control over the -// underlying data representation. Sometimes an Shape does not have any data of -// its own, but instead wraps some other type. -// -// Shape operations are typically defined on a ShapeIndex rather than -// individual shapes. An ShapeIndex is simply a collection of Shapes, -// possibly of different dimensions (e.g. 10 points and 3 polygons), organized -// into a data structure for efficient edge access. -// -// The edges of a Shape are indexed by a contiguous range of edge IDs -// starting at 0. The edges are further subdivided into chains, where each -// chain consists of a sequence of edges connected end-to-end (a polyline). -// For example, a Shape representing two polylines AB and CDE would have -// three edges (AB, CD, DE) grouped into two chains: (AB) and (CD, DE). -// Similarly, an Shape representing 5 points would have 5 chains consisting -// of one edge each. -// -// Shape has methods that allow edges to be accessed either using the global -// numbering (edge ID) or within a particular chain. The global numbering is -// sufficient for most purposes, but the chain representation is useful for -// certain algorithms such as intersection (see BooleanOperation). -type Shape interface { - // NumEdges returns the number of edges in this shape. - NumEdges() int - - // Edge returns the edge for the given edge index. - Edge(i int) Edge - - // ReferencePoint returns an arbitrary reference point for the shape. (The - // containment boolean value must be false for shapes that do not have an interior.) - // - // This reference point may then be used to compute the containment of other - // points by counting edge crossings. - ReferencePoint() ReferencePoint - - // NumChains reports the number of contiguous edge chains in the shape. - // For example, a shape whose edges are [AB, BC, CD, AE, EF] would consist - // of two chains (AB,BC,CD and AE,EF). Every chain is assigned a chain Id - // numbered sequentially starting from zero. - // - // Note that it is always acceptable to implement this method by returning - // NumEdges, i.e. every chain consists of a single edge, but this may - // reduce the efficiency of some algorithms. - NumChains() int - - // Chain returns the range of edge IDs corresponding to the given edge chain. - // Edge chains must form contiguous, non-overlapping ranges that cover - // the entire range of edge IDs. This is spelled out more formally below: - // - // 0 <= i < NumChains() - // Chain(i).length > 0, for all i - // Chain(0).start == 0 - // Chain(i).start + Chain(i).length == Chain(i+1).start, for i < NumChains()-1 - // Chain(i).start + Chain(i).length == NumEdges(), for i == NumChains()-1 - Chain(chainID int) Chain - - // ChainEdgeReturns the edge at offset "offset" within edge chain "chainID". - // Equivalent to "shape.Edge(shape.Chain(chainID).start + offset)" - // but more efficient. - ChainEdge(chainID, offset int) Edge - - // ChainPosition finds the chain containing the given edge, and returns the - // position of that edge as a ChainPosition(chainID, offset) pair. - // - // shape.Chain(pos.chainID).start + pos.offset == edgeID - // shape.Chain(pos.chainID+1).start > edgeID - // - // where pos == shape.ChainPosition(edgeID). - ChainPosition(edgeID int) ChainPosition - - // Dimension returns the dimension of the geometry represented by this shape, - // either 0, 1 or 2 for point, polyline and polygon geometry respectively. - // - // 0 - Point geometry. Each point is represented as a degenerate edge. - // - // 1 - Polyline geometry. Polyline edges may be degenerate. A shape may - // represent any number of polylines. Polylines edges may intersect. - // - // 2 - Polygon geometry. Edges should be oriented such that the polygon - // interior is always on the left. In theory the edges may be returned - // in any order, but typically the edges are organized as a collection - // of edge chains where each chain represents one polygon loop. - // Polygons may have degeneracies (e.g., degenerate edges or sibling - // pairs consisting of an edge and its corresponding reversed edge). - // A polygon loop may also be full (containing all points on the - // sphere); by convention this is represented as a chain with no edges. - // (See laxPolygon for details.) - // - // This method allows degenerate geometry of different dimensions - // to be distinguished, e.g. it allows a point to be distinguished from a - // polyline or polygon that has been simplified to a single point. - Dimension() int - - // IsEmpty reports whether the Shape contains no points. (Note that the full - // polygon is represented as a chain with zero edges.) - IsEmpty() bool - - // IsFull reports whether the Shape contains all points on the sphere. - IsFull() bool - - // typeTag returns a value that can be used to identify the type of an - // encoded Shape. - typeTag() typeTag - - // We do not support implementations of this interface outside this package. - privateInterface() -} - -// defaultShapeIsEmpty reports whether this shape contains no points. -func defaultShapeIsEmpty(s Shape) bool { - return s.NumEdges() == 0 && (s.Dimension() != 2 || s.NumChains() == 0) -} - -// defaultShapeIsFull reports whether this shape contains all points on the sphere. -func defaultShapeIsFull(s Shape) bool { - return s.NumEdges() == 0 && s.Dimension() == 2 && s.NumChains() > 0 -} - -// A minimal check for types that should satisfy the Shape interface. -var ( - _ Shape = &Loop{} - _ Shape = &Polygon{} - _ Shape = &Polyline{} -) diff --git a/backend/vendor/github.com/golang/geo/s2/shapeindex.go b/backend/vendor/github.com/golang/geo/s2/shapeindex.go deleted file mode 100644 index e4a01c9a..00000000 --- a/backend/vendor/github.com/golang/geo/s2/shapeindex.go +++ /dev/null @@ -1,1524 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - "sort" - "sync" - "sync/atomic" - - "github.com/golang/geo/r1" - "github.com/golang/geo/r2" -) - -// CellRelation describes the possible relationships between a target cell -// and the cells of the ShapeIndex. If the target is an index cell or is -// contained by an index cell, it is Indexed. If the target is subdivided -// into one or more index cells, it is Subdivided. Otherwise it is Disjoint. -type CellRelation int - -// The possible CellRelations for a ShapeIndex. -const ( - Indexed CellRelation = iota - Subdivided - Disjoint -) - -const ( - // cellPadding defines the total error when clipping an edge which comes - // from two sources: - // (1) Clipping the original spherical edge to a cube face (the face edge). - // The maximum error in this step is faceClipErrorUVCoord. - // (2) Clipping the face edge to the u- or v-coordinate of a cell boundary. - // The maximum error in this step is edgeClipErrorUVCoord. - // Finally, since we encounter the same errors when clipping query edges, we - // double the total error so that we only need to pad edges during indexing - // and not at query time. - cellPadding = 2.0 * (faceClipErrorUVCoord + edgeClipErrorUVCoord) - - // cellSizeToLongEdgeRatio defines the cell size relative to the length of an - // edge at which it is first considered to be long. Long edges do not - // contribute toward the decision to subdivide a cell further. For example, - // a value of 2.0 means that the cell must be at least twice the size of the - // edge in order for that edge to be counted. There are two reasons for not - // counting long edges: (1) such edges typically need to be propagated to - // several children, which increases time and memory costs without much benefit, - // and (2) in pathological cases, many long edges close together could force - // subdivision to continue all the way to the leaf cell level. - cellSizeToLongEdgeRatio = 1.0 -) - -// clippedShape represents the part of a shape that intersects a Cell. -// It consists of the set of edge IDs that intersect that cell and a boolean -// indicating whether the center of the cell is inside the shape (for shapes -// that have an interior). -// -// Note that the edges themselves are not clipped; we always use the original -// edges for intersection tests so that the results will be the same as the -// original shape. -type clippedShape struct { - // shapeID is the index of the shape this clipped shape is a part of. - shapeID int32 - - // containsCenter indicates if the center of the CellID this shape has been - // clipped to falls inside this shape. This is false for shapes that do not - // have an interior. - containsCenter bool - - // edges is the ordered set of ShapeIndex original edge IDs. Edges - // are stored in increasing order of edge ID. - edges []int -} - -// newClippedShape returns a new clipped shape for the given shapeID and number of expected edges. -func newClippedShape(id int32, numEdges int) *clippedShape { - return &clippedShape{ - shapeID: id, - edges: make([]int, numEdges), - } -} - -// numEdges returns the number of edges that intersect the CellID of the Cell this was clipped to. -func (c *clippedShape) numEdges() int { - return len(c.edges) -} - -// containsEdge reports if this clipped shape contains the given edge ID. -func (c *clippedShape) containsEdge(id int) bool { - // Linear search is fast because the number of edges per shape is typically - // very small (less than 10). - for _, e := range c.edges { - if e == id { - return true - } - } - return false -} - -// ShapeIndexCell stores the index contents for a particular CellID. -type ShapeIndexCell struct { - shapes []*clippedShape -} - -// NewShapeIndexCell creates a new cell that is sized to hold the given number of shapes. -func NewShapeIndexCell(numShapes int) *ShapeIndexCell { - return &ShapeIndexCell{ - shapes: make([]*clippedShape, numShapes), - } -} - -// numEdges reports the total number of edges in all clipped shapes in this cell. -func (s *ShapeIndexCell) numEdges() int { - var e int - for _, cs := range s.shapes { - e += cs.numEdges() - } - return e -} - -// add adds the given clipped shape to this index cell. -func (s *ShapeIndexCell) add(c *clippedShape) { - // C++ uses a set, so it's ordered and unique. We don't currently catch - // the case when a duplicate value is added. - s.shapes = append(s.shapes, c) -} - -// findByShapeID returns the clipped shape that contains the given shapeID, -// or nil if none of the clipped shapes contain it. -func (s *ShapeIndexCell) findByShapeID(shapeID int32) *clippedShape { - // Linear search is fine because the number of shapes per cell is typically - // very small (most often 1), and is large only for pathological inputs - // (e.g. very deeply nested loops). - for _, clipped := range s.shapes { - if clipped.shapeID == shapeID { - return clipped - } - } - return nil -} - -// faceEdge and clippedEdge store temporary edge data while the index is being -// updated. -// -// While it would be possible to combine all the edge information into one -// structure, there are two good reasons for separating it: -// -// - Memory usage. Separating the two means that we only need to -// store one copy of the per-face data no matter how many times an edge is -// subdivided, and it also lets us delay computing bounding boxes until -// they are needed for processing each face (when the dataset spans -// multiple faces). -// -// - Performance. UpdateEdges is significantly faster on large polygons when -// the data is separated, because it often only needs to access the data in -// clippedEdge and this data is cached more successfully. - -// faceEdge represents an edge that has been projected onto a given face, -type faceEdge struct { - shapeID int32 // The ID of shape that this edge belongs to - edgeID int // Edge ID within that shape - maxLevel int // Not desirable to subdivide this edge beyond this level - hasInterior bool // Belongs to a shape that has a dimension of 2 - a, b r2.Point // The edge endpoints, clipped to a given face - edge Edge // The original edge. -} - -// clippedEdge represents the portion of that edge that has been clipped to a given Cell. -type clippedEdge struct { - faceEdge *faceEdge // The original unclipped edge - bound r2.Rect // Bounding box for the clipped portion -} - -// ShapeIndexIteratorPos defines the set of possible iterator starting positions. By -// default iterators are unpositioned, since this avoids an extra seek in this -// situation where one of the seek methods (such as Locate) is immediately called. -type ShapeIndexIteratorPos int - -const ( - // IteratorBegin specifies the iterator should be positioned at the beginning of the index. - IteratorBegin ShapeIndexIteratorPos = iota - // IteratorEnd specifies the iterator should be positioned at the end of the index. - IteratorEnd -) - -// ShapeIndexIterator is an iterator that provides low-level access to -// the cells of the index. Cells are returned in increasing order of CellID. -// -// for it := index.Iterator(); !it.Done(); it.Next() { -// fmt.Print(it.CellID()) -// } -type ShapeIndexIterator struct { - index *ShapeIndex - position int - id CellID - cell *ShapeIndexCell -} - -// NewShapeIndexIterator creates a new iterator for the given index. If a starting -// position is specified, the iterator is positioned at the given spot. -func NewShapeIndexIterator(index *ShapeIndex, pos ...ShapeIndexIteratorPos) *ShapeIndexIterator { - s := &ShapeIndexIterator{ - index: index, - } - - if len(pos) > 0 { - if len(pos) > 1 { - panic("too many ShapeIndexIteratorPos arguments") - } - switch pos[0] { - case IteratorBegin: - s.Begin() - case IteratorEnd: - s.End() - default: - panic("unknown ShapeIndexIteratorPos value") - } - } - - return s -} - -func (s *ShapeIndexIterator) clone() *ShapeIndexIterator { - return &ShapeIndexIterator{ - index: s.index, - position: s.position, - id: s.id, - cell: s.cell, - } -} - -// CellID returns the CellID of the current index cell. -// If s.Done() is true, a value larger than any valid CellID is returned. -func (s *ShapeIndexIterator) CellID() CellID { - return s.id -} - -// IndexCell returns the current index cell. -func (s *ShapeIndexIterator) IndexCell() *ShapeIndexCell { - // TODO(roberts): C++ has this call a virtual method to allow subclasses - // of ShapeIndexIterator to do other work before returning the cell. Do - // we need such a thing? - return s.cell -} - -// Center returns the Point at the center of the current position of the iterator. -func (s *ShapeIndexIterator) Center() Point { - return s.CellID().Point() -} - -// Begin positions the iterator at the beginning of the index. -func (s *ShapeIndexIterator) Begin() { - if !s.index.IsFresh() { - s.index.maybeApplyUpdates() - } - s.position = 0 - s.refresh() -} - -// Next positions the iterator at the next index cell. -func (s *ShapeIndexIterator) Next() { - s.position++ - s.refresh() -} - -// Prev advances the iterator to the previous cell in the index and returns true to -// indicate it was not yet at the beginning of the index. If the iterator is at the -// first cell the call does nothing and returns false. -func (s *ShapeIndexIterator) Prev() bool { - if s.position <= 0 { - return false - } - - s.position-- - s.refresh() - return true -} - -// End positions the iterator at the end of the index. -func (s *ShapeIndexIterator) End() { - s.position = len(s.index.cells) - s.refresh() -} - -// Done reports if the iterator is positioned at or after the last index cell. -func (s *ShapeIndexIterator) Done() bool { - return s.id == SentinelCellID -} - -// refresh updates the stored internal iterator values. -func (s *ShapeIndexIterator) refresh() { - if s.position < len(s.index.cells) { - s.id = s.index.cells[s.position] - s.cell = s.index.cellMap[s.CellID()] - } else { - s.id = SentinelCellID - s.cell = nil - } -} - -// seek positions the iterator at the first cell whose ID >= target, or at the -// end of the index if no such cell exists. -func (s *ShapeIndexIterator) seek(target CellID) { - s.position = sort.Search(len(s.index.cells), func(i int) bool { - return s.index.cells[i] >= target - }) - s.refresh() -} - -// LocatePoint positions the iterator at the cell that contains the given Point. -// If no such cell exists, the iterator position is unspecified, and false is returned. -// The cell at the matched position is guaranteed to contain all edges that might -// intersect the line segment between target and the cell's center. -func (s *ShapeIndexIterator) LocatePoint(p Point) bool { - // Let I = cellMap.LowerBound(T), where T is the leaf cell containing - // point P. Then if T is contained by an index cell, then the - // containing cell is either I or I'. We test for containment by comparing - // the ranges of leaf cells spanned by T, I, and I'. - target := cellIDFromPoint(p) - s.seek(target) - if !s.Done() && s.CellID().RangeMin() <= target { - return true - } - - if s.Prev() && s.CellID().RangeMax() >= target { - return true - } - return false -} - -// LocateCellID attempts to position the iterator at the first matching index cell -// in the index that has some relation to the given CellID. Let T be the target CellID. -// If T is contained by (or equal to) some index cell I, then the iterator is positioned -// at I and returns Indexed. Otherwise if T contains one or more (smaller) index cells, -// then the iterator is positioned at the first such cell I and return Subdivided. -// Otherwise Disjoint is returned and the iterator position is undefined. -func (s *ShapeIndexIterator) LocateCellID(target CellID) CellRelation { - // Let T be the target, let I = cellMap.LowerBound(T.RangeMin()), and - // let I' be the predecessor of I. If T contains any index cells, then T - // contains I. Similarly, if T is contained by an index cell, then the - // containing cell is either I or I'. We test for containment by comparing - // the ranges of leaf cells spanned by T, I, and I'. - s.seek(target.RangeMin()) - if !s.Done() { - if s.CellID() >= target && s.CellID().RangeMin() <= target { - return Indexed - } - if s.CellID() <= target.RangeMax() { - return Subdivided - } - } - if s.Prev() && s.CellID().RangeMax() >= target { - return Indexed - } - return Disjoint -} - -// tracker keeps track of which shapes in a given set contain a particular point -// (the focus). It provides an efficient way to move the focus from one point -// to another and incrementally update the set of shapes which contain it. We use -// this to compute which shapes contain the center of every CellID in the index, -// by advancing the focus from one cell center to the next. -// -// Initially the focus is at the start of the CellID space-filling curve. We then -// visit all the cells that are being added to the ShapeIndex in increasing order -// of CellID. For each cell, we draw two edges: one from the entry vertex to the -// center, and another from the center to the exit vertex (where entry and exit -// refer to the points where the space-filling curve enters and exits the cell). -// By counting edge crossings we can incrementally compute which shapes contain -// the cell center. Note that the same set of shapes will always contain the exit -// point of one cell and the entry point of the next cell in the index, because -// either (a) these two points are actually the same, or (b) the intervening -// cells in CellID order are all empty, and therefore there are no edge crossings -// if we follow this path from one cell to the other. -// -// In C++, this is S2ShapeIndex::InteriorTracker. -type tracker struct { - isActive bool - a Point - b Point - nextCellID CellID - crosser *EdgeCrosser - shapeIDs []int32 - - // Shape ids saved by saveAndClearStateBefore. The state is never saved - // recursively so we don't need to worry about maintaining a stack. - savedIDs []int32 -} - -// newTracker returns a new tracker with the appropriate defaults. -func newTracker() *tracker { - // As shapes are added, we compute which ones contain the start of the - // CellID space-filling curve by drawing an edge from OriginPoint to this - // point and counting how many shape edges cross this edge. - t := &tracker{ - isActive: false, - b: trackerOrigin(), - nextCellID: CellIDFromFace(0).ChildBeginAtLevel(maxLevel), - } - t.drawTo(Point{faceUVToXYZ(0, -1, -1).Normalize()}) // CellID curve start - - return t -} - -// trackerOrigin returns the initial focus point when the tracker is created -// (corresponding to the start of the CellID space-filling curve). -func trackerOrigin() Point { - // The start of the S2CellId space-filling curve. - return Point{faceUVToXYZ(0, -1, -1).Normalize()} -} - -// focus returns the current focus point of the tracker. -func (t *tracker) focus() Point { return t.b } - -// addShape adds a shape whose interior should be tracked. containsOrigin indicates -// whether the current focus point is inside the shape. Alternatively, if -// the focus point is in the process of being moved (via moveTo/drawTo), you -// can also specify containsOrigin at the old focus point and call testEdge -// for every edge of the shape that might cross the current drawTo line. -// This updates the state to correspond to the new focus point. -// -// This requires shape.HasInterior -func (t *tracker) addShape(shapeID int32, containsFocus bool) { - t.isActive = true - if containsFocus { - t.toggleShape(shapeID) - } -} - -// moveTo moves the focus of the tracker to the given point. This method should -// only be used when it is known that there are no edge crossings between the old -// and new focus locations; otherwise use drawTo. -func (t *tracker) moveTo(b Point) { t.b = b } - -// drawTo moves the focus of the tracker to the given point. After this method is -// called, testEdge should be called with all edges that may cross the line -// segment between the old and new focus locations. -func (t *tracker) drawTo(b Point) { - t.a = t.b - t.b = b - // TODO: the edge crosser may need an in-place Init method if this gets expensive - t.crosser = NewEdgeCrosser(t.a, t.b) -} - -// testEdge checks if the given edge crosses the current edge, and if so, then -// toggle the state of the given shapeID. -// This requires shape to have an interior. -func (t *tracker) testEdge(shapeID int32, edge Edge) { - if t.crosser.EdgeOrVertexCrossing(edge.V0, edge.V1) { - t.toggleShape(shapeID) - } -} - -// setNextCellID is used to indicate that the last argument to moveTo or drawTo -// was the entry vertex of the given CellID, i.e. the tracker is positioned at the -// start of this cell. By using this method together with atCellID, the caller -// can avoid calling moveTo in cases where the exit vertex of the previous cell -// is the same as the entry vertex of the current cell. -func (t *tracker) setNextCellID(nextCellID CellID) { - t.nextCellID = nextCellID.RangeMin() -} - -// atCellID reports if the focus is already at the entry vertex of the given -// CellID (provided that the caller calls setNextCellID as each cell is processed). -func (t *tracker) atCellID(cellid CellID) bool { - return cellid.RangeMin() == t.nextCellID -} - -// toggleShape adds or removes the given shapeID from the set of IDs it is tracking. -func (t *tracker) toggleShape(shapeID int32) { - // Most shapeIDs slices are small, so special case the common steps. - - // If there is nothing here, add it. - if len(t.shapeIDs) == 0 { - t.shapeIDs = append(t.shapeIDs, shapeID) - return - } - - // If it's the first element, drop it from the slice. - if t.shapeIDs[0] == shapeID { - t.shapeIDs = t.shapeIDs[1:] - return - } - - for i, s := range t.shapeIDs { - if s < shapeID { - continue - } - - // If it's in the set, cut it out. - if s == shapeID { - copy(t.shapeIDs[i:], t.shapeIDs[i+1:]) // overwrite the ith element - t.shapeIDs = t.shapeIDs[:len(t.shapeIDs)-1] - return - } - - // We've got to a point in the slice where we should be inserted. - // (the given shapeID is now less than the current positions id.) - t.shapeIDs = append(t.shapeIDs[0:i], - append([]int32{shapeID}, t.shapeIDs[i:len(t.shapeIDs)]...)...) - return - } - - // We got to the end and didn't find it, so add it to the list. - t.shapeIDs = append(t.shapeIDs, shapeID) -} - -// saveAndClearStateBefore makes an internal copy of the state for shape ids below -// the given limit, and then clear the state for those shapes. This is used during -// incremental updates to track the state of added and removed shapes separately. -func (t *tracker) saveAndClearStateBefore(limitShapeID int32) { - limit := t.lowerBound(limitShapeID) - t.savedIDs = append([]int32(nil), t.shapeIDs[:limit]...) - t.shapeIDs = t.shapeIDs[limit:] -} - -// restoreStateBefore restores the state previously saved by saveAndClearStateBefore. -// This only affects the state for shapeIDs below "limitShapeID". -func (t *tracker) restoreStateBefore(limitShapeID int32) { - limit := t.lowerBound(limitShapeID) - t.shapeIDs = append(append([]int32(nil), t.savedIDs...), t.shapeIDs[limit:]...) - t.savedIDs = nil -} - -// lowerBound returns the shapeID of the first entry x where x >= shapeID. -func (t *tracker) lowerBound(shapeID int32) int32 { - panic("not implemented") -} - -// removedShape represents a set of edges from the given shape that is queued for removal. -type removedShape struct { - shapeID int32 - hasInterior bool - containsTrackerOrigin bool - edges []Edge -} - -// There are three basic states the index can be in. -const ( - stale int32 = iota // There are pending updates. - updating // Updates are currently being applied. - fresh // There are no pending updates. -) - -// ShapeIndex indexes a set of Shapes, where a Shape is some collection of edges -// that optionally defines an interior. It can be used to represent a set of -// points, a set of polylines, or a set of polygons. For Shapes that have -// interiors, the index makes it very fast to determine which Shape(s) contain -// a given point or region. -// -// The index can be updated incrementally by adding or removing shapes. It is -// designed to handle up to hundreds of millions of edges. All data structures -// are designed to be small, so the index is compact; generally it is smaller -// than the underlying data being indexed. The index is also fast to construct. -// -// Polygon, Loop, and Polyline implement Shape which allows these objects to -// be indexed easily. You can find useful query methods in CrossingEdgeQuery -// and ClosestEdgeQuery (Not yet implemented in Go). -// -// Example showing how to build an index of Polylines: -// -// index := NewShapeIndex() -// for _, polyline := range polylines { -// index.Add(polyline); -// } -// // Now you can use a CrossingEdgeQuery or ClosestEdgeQuery here. -type ShapeIndex struct { - // shapes is a map of shape ID to shape. - shapes map[int32]Shape - - // The maximum number of edges per cell. - // TODO(roberts): Update the comments when the usage of this is implemented. - maxEdgesPerCell int - - // nextID tracks the next ID to hand out. IDs are not reused when shapes - // are removed from the index. - nextID int32 - - // cellMap is a map from CellID to the set of clipped shapes that intersect that - // cell. The cell IDs cover a set of non-overlapping regions on the sphere. - // In C++, this is a BTree, so the cells are ordered naturally by the data structure. - cellMap map[CellID]*ShapeIndexCell - // Track the ordered list of cell IDs. - cells []CellID - - // The current status of the index; accessed atomically. - status int32 - - // Additions and removals are queued and processed on the first subsequent - // query. There are several reasons to do this: - // - // - It is significantly more efficient to process updates in batches if - // the amount of entities added grows. - // - Often the index will never be queried, in which case we can save both - // the time and memory required to build it. Examples: - // + Loops that are created simply to pass to an Polygon. (We don't - // need the Loop index, because Polygon builds its own index.) - // + Applications that load a database of geometry and then query only - // a small fraction of it. - // - // The main drawback is that we need to go to some extra work to ensure that - // some methods are still thread-safe. Note that the goal is *not* to - // make this thread-safe in general, but simply to hide the fact that - // we defer some of the indexing work until query time. - // - // This mutex protects all of following fields in the index. - mu sync.RWMutex - - // pendingAdditionsPos is the index of the first entry that has not been processed - // via applyUpdatesInternal. - pendingAdditionsPos int32 - - // The set of shapes that have been queued for removal but not processed yet by - // applyUpdatesInternal. - pendingRemovals []*removedShape -} - -// NewShapeIndex creates a new ShapeIndex. -func NewShapeIndex() *ShapeIndex { - return &ShapeIndex{ - maxEdgesPerCell: 10, - shapes: make(map[int32]Shape), - cellMap: make(map[CellID]*ShapeIndexCell), - cells: nil, - status: fresh, - } -} - -// Iterator returns an iterator for this index. -func (s *ShapeIndex) Iterator() *ShapeIndexIterator { - s.maybeApplyUpdates() - return NewShapeIndexIterator(s, IteratorBegin) -} - -// Begin positions the iterator at the first cell in the index. -func (s *ShapeIndex) Begin() *ShapeIndexIterator { - s.maybeApplyUpdates() - return NewShapeIndexIterator(s, IteratorBegin) -} - -// End positions the iterator at the last cell in the index. -func (s *ShapeIndex) End() *ShapeIndexIterator { - // TODO(roberts): It's possible that updates could happen to the index between - // the time this is called and the time the iterators position is used and this - // will be invalid or not the end. For now, things will be undefined if this - // happens. See about referencing the IsFresh to guard for this in the future. - s.maybeApplyUpdates() - return NewShapeIndexIterator(s, IteratorEnd) -} - -// Len reports the number of Shapes in this index. -func (s *ShapeIndex) Len() int { - return len(s.shapes) -} - -// Reset resets the index to its original state. -func (s *ShapeIndex) Reset() { - s.shapes = make(map[int32]Shape) - s.nextID = 0 - s.cellMap = make(map[CellID]*ShapeIndexCell) - s.cells = nil - atomic.StoreInt32(&s.status, fresh) -} - -// NumEdges returns the number of edges in this index. -func (s *ShapeIndex) NumEdges() int { - numEdges := 0 - for _, shape := range s.shapes { - numEdges += shape.NumEdges() - } - return numEdges -} - -// NumEdgesUpTo returns the number of edges in the given index, up to the given -// limit. If the limit is encountered, the current running total is returned, -// which may be more than the limit. -func (s *ShapeIndex) NumEdgesUpTo(limit int) int { - var numEdges int - // We choose to iterate over the shapes in order to match the counting - // up behavior in C++ and for test compatibility instead of using a - // more idiomatic range over the shape map. - for i := int32(0); i <= s.nextID; i++ { - s := s.Shape(i) - if s == nil { - continue - } - numEdges += s.NumEdges() - if numEdges >= limit { - break - } - } - - return numEdges -} - -// Shape returns the shape with the given ID, or nil if the shape has been removed from the index. -func (s *ShapeIndex) Shape(id int32) Shape { return s.shapes[id] } - -// idForShape returns the id of the given shape in this index, or -1 if it is -// not in the index. -// -// TODO(roberts): Need to figure out an appropriate way to expose this on a Shape. -// C++ allows a given S2 type (Loop, Polygon, etc) to be part of multiple indexes. -// By having each type extend S2Shape which has an id element, they all inherit their -// own id field rather than having to track it themselves. -func (s *ShapeIndex) idForShape(shape Shape) int32 { - for k, v := range s.shapes { - if v == shape { - return k - } - } - return -1 -} - -// Add adds the given shape to the index and returns the assigned ID.. -func (s *ShapeIndex) Add(shape Shape) int32 { - s.shapes[s.nextID] = shape - s.nextID++ - atomic.StoreInt32(&s.status, stale) - return s.nextID - 1 -} - -// Remove removes the given shape from the index. -func (s *ShapeIndex) Remove(shape Shape) { - // The index updates itself lazily because it is much more efficient to - // process additions and removals in batches. - id := s.idForShape(shape) - - // If the shape wasn't found, it's already been removed or was not in the index. - if s.shapes[id] == nil { - return - } - - // Remove the shape from the shapes map. - delete(s.shapes, id) - - // We are removing a shape that has not yet been added to the index, - // so there is nothing else to do. - if id >= s.pendingAdditionsPos { - return - } - - numEdges := shape.NumEdges() - removed := &removedShape{ - shapeID: id, - hasInterior: shape.Dimension() == 2, - containsTrackerOrigin: shape.ReferencePoint().Contained, - edges: make([]Edge, numEdges), - } - - for e := 0; e < numEdges; e++ { - removed.edges[e] = shape.Edge(e) - } - - s.pendingRemovals = append(s.pendingRemovals, removed) - atomic.StoreInt32(&s.status, stale) -} - -// Build triggers the update of the index. Calls to Add and Release are normally -// queued and processed on the first subsequent query. This has many advantages, -// the most important of which is that sometimes there *is* no subsequent -// query, which lets us avoid building the index completely. -// -// This method forces any pending updates to be applied immediately. -func (s *ShapeIndex) Build() { - s.maybeApplyUpdates() -} - -// IsFresh reports if there are no pending updates that need to be applied. -// This can be useful to avoid building the index unnecessarily, or for -// choosing between two different algorithms depending on whether the index -// is available. -// -// The returned index status may be slightly out of date if the index was -// built in a different thread. This is fine for the intended use (as an -// efficiency hint), but it should not be used by internal methods. -func (s *ShapeIndex) IsFresh() bool { - return atomic.LoadInt32(&s.status) == fresh -} - -// isFirstUpdate reports if this is the first update to the index. -func (s *ShapeIndex) isFirstUpdate() bool { - // Note that it is not sufficient to check whether cellMap is empty, since - // entries are added to it during the update process. - return s.pendingAdditionsPos == 0 -} - -// isShapeBeingRemoved reports if the shape with the given ID is currently slated for removal. -func (s *ShapeIndex) isShapeBeingRemoved(shapeID int32) bool { - // All shape ids being removed fall below the index position of shapes being added. - return shapeID < s.pendingAdditionsPos -} - -// maybeApplyUpdates checks if the index pieces have changed, and if so, applies pending updates. -func (s *ShapeIndex) maybeApplyUpdates() { - // TODO(roberts): To avoid acquiring and releasing the mutex on every - // query, we should use atomic operations when testing whether the status - // is fresh and when updating the status to be fresh. This guarantees - // that any thread that sees a status of fresh will also see the - // corresponding index updates. - if atomic.LoadInt32(&s.status) != fresh { - s.mu.Lock() - s.applyUpdatesInternal() - atomic.StoreInt32(&s.status, fresh) - s.mu.Unlock() - } -} - -// applyUpdatesInternal does the actual work of updating the index by applying all -// pending additions and removals. It does *not* update the indexes status. -func (s *ShapeIndex) applyUpdatesInternal() { - // TODO(roberts): Building the index can use up to 20x as much memory per - // edge as the final index memory size. If this causes issues, add in - // batched updating to limit the amount of items per batch to a - // configurable memory footprint overhead. - t := newTracker() - - // allEdges maps a Face to a collection of faceEdges. - allEdges := make([][]faceEdge, 6) - - for _, p := range s.pendingRemovals { - s.removeShapeInternal(p, allEdges, t) - } - - for id := s.pendingAdditionsPos; id < int32(len(s.shapes)); id++ { - s.addShapeInternal(id, allEdges, t) - } - - for face := 0; face < 6; face++ { - s.updateFaceEdges(face, allEdges[face], t) - } - - s.pendingRemovals = s.pendingRemovals[:0] - s.pendingAdditionsPos = int32(len(s.shapes)) - // It is the caller's responsibility to update the index status. -} - -// addShapeInternal clips all edges of the given shape to the six cube faces, -// adds the clipped edges to the set of allEdges, and starts tracking its -// interior if necessary. -func (s *ShapeIndex) addShapeInternal(shapeID int32, allEdges [][]faceEdge, t *tracker) { - shape, ok := s.shapes[shapeID] - if !ok { - // This shape has already been removed. - return - } - - faceEdge := faceEdge{ - shapeID: shapeID, - hasInterior: shape.Dimension() == 2, - } - - if faceEdge.hasInterior { - t.addShape(shapeID, containsBruteForce(shape, t.focus())) - } - - numEdges := shape.NumEdges() - for e := 0; e < numEdges; e++ { - edge := shape.Edge(e) - - faceEdge.edgeID = e - faceEdge.edge = edge - faceEdge.maxLevel = maxLevelForEdge(edge) - s.addFaceEdge(faceEdge, allEdges) - } -} - -// addFaceEdge adds the given faceEdge into the collection of all edges. -func (s *ShapeIndex) addFaceEdge(fe faceEdge, allEdges [][]faceEdge) { - aFace := face(fe.edge.V0.Vector) - // See if both endpoints are on the same face, and are far enough from - // the edge of the face that they don't intersect any (padded) adjacent face. - if aFace == face(fe.edge.V1.Vector) { - x, y := validFaceXYZToUV(aFace, fe.edge.V0.Vector) - fe.a = r2.Point{x, y} - x, y = validFaceXYZToUV(aFace, fe.edge.V1.Vector) - fe.b = r2.Point{x, y} - - maxUV := 1 - cellPadding - if math.Abs(fe.a.X) <= maxUV && math.Abs(fe.a.Y) <= maxUV && - math.Abs(fe.b.X) <= maxUV && math.Abs(fe.b.Y) <= maxUV { - allEdges[aFace] = append(allEdges[aFace], fe) - return - } - } - - // Otherwise, we simply clip the edge to all six faces. - for face := 0; face < 6; face++ { - if aClip, bClip, intersects := ClipToPaddedFace(fe.edge.V0, fe.edge.V1, face, cellPadding); intersects { - fe.a = aClip - fe.b = bClip - allEdges[face] = append(allEdges[face], fe) - } - } -} - -// updateFaceEdges adds or removes the various edges from the index. -// An edge is added if shapes[id] is not nil, and removed otherwise. -func (s *ShapeIndex) updateFaceEdges(face int, faceEdges []faceEdge, t *tracker) { - numEdges := len(faceEdges) - if numEdges == 0 && len(t.shapeIDs) == 0 { - return - } - - // Create the initial clippedEdge for each faceEdge. Additional clipped - // edges are created when edges are split between child cells. We create - // two arrays, one containing the edge data and another containing pointers - // to those edges, so that during the recursion we only need to copy - // pointers in order to propagate an edge to the correct child. - clippedEdges := make([]*clippedEdge, numEdges) - bound := r2.EmptyRect() - for e := 0; e < numEdges; e++ { - clipped := &clippedEdge{ - faceEdge: &faceEdges[e], - } - clipped.bound = r2.RectFromPoints(faceEdges[e].a, faceEdges[e].b) - clippedEdges[e] = clipped - bound = bound.AddRect(clipped.bound) - } - - // Construct the initial face cell containing all the edges, and then update - // all the edges in the index recursively. - faceID := CellIDFromFace(face) - pcell := PaddedCellFromCellID(faceID, cellPadding) - - disjointFromIndex := s.isFirstUpdate() - if numEdges > 0 { - shrunkID := s.shrinkToFit(pcell, bound) - if shrunkID != pcell.id { - // All the edges are contained by some descendant of the face cell. We - // can save a lot of work by starting directly with that cell, but if we - // are in the interior of at least one shape then we need to create - // index entries for the cells we are skipping over. - s.skipCellRange(faceID.RangeMin(), shrunkID.RangeMin(), t, disjointFromIndex) - pcell = PaddedCellFromCellID(shrunkID, cellPadding) - s.updateEdges(pcell, clippedEdges, t, disjointFromIndex) - s.skipCellRange(shrunkID.RangeMax().Next(), faceID.RangeMax().Next(), t, disjointFromIndex) - return - } - } - - // Otherwise (no edges, or no shrinking is possible), subdivide normally. - s.updateEdges(pcell, clippedEdges, t, disjointFromIndex) -} - -// shrinkToFit shrinks the PaddedCell to fit within the given bounds. -func (s *ShapeIndex) shrinkToFit(pcell *PaddedCell, bound r2.Rect) CellID { - shrunkID := pcell.ShrinkToFit(bound) - - if !s.isFirstUpdate() && shrunkID != pcell.CellID() { - // Don't shrink any smaller than the existing index cells, since we need - // to combine the new edges with those cells. - iter := s.Iterator() - if iter.LocateCellID(shrunkID) == Indexed { - shrunkID = iter.CellID() - } - } - return shrunkID -} - -// skipCellRange skips over the cells in the given range, creating index cells if we are -// currently in the interior of at least one shape. -func (s *ShapeIndex) skipCellRange(begin, end CellID, t *tracker, disjointFromIndex bool) { - // If we aren't in the interior of a shape, then skipping over cells is easy. - if len(t.shapeIDs) == 0 { - return - } - - // Otherwise generate the list of cell ids that we need to visit, and create - // an index entry for each one. - skipped := CellUnionFromRange(begin, end) - for _, cell := range skipped { - var clippedEdges []*clippedEdge - s.updateEdges(PaddedCellFromCellID(cell, cellPadding), clippedEdges, t, disjointFromIndex) - } -} - -// updateEdges adds or removes the given edges whose bounding boxes intersect a -// given cell. disjointFromIndex is an optimization hint indicating that cellMap -// does not contain any entries that overlap the given cell. -func (s *ShapeIndex) updateEdges(pcell *PaddedCell, edges []*clippedEdge, t *tracker, disjointFromIndex bool) { - // This function is recursive with a maximum recursion depth of 30 (maxLevel). - - // Incremental updates are handled as follows. All edges being added or - // removed are combined together in edges, and all shapes with interiors - // are tracked using tracker. We subdivide recursively as usual until we - // encounter an existing index cell. At this point we absorb the index - // cell as follows: - // - // - Edges and shapes that are being removed are deleted from edges and - // tracker. - // - All remaining edges and shapes from the index cell are added to - // edges and tracker. - // - Continue subdividing recursively, creating new index cells as needed. - // - When the recursion gets back to the cell that was absorbed, we - // restore edges and tracker to their previous state. - // - // Note that the only reason that we include removed shapes in the recursive - // subdivision process is so that we can find all of the index cells that - // contain those shapes efficiently, without maintaining an explicit list of - // index cells for each shape (which would be expensive in terms of memory). - indexCellAbsorbed := false - if !disjointFromIndex { - // There may be existing index cells contained inside pcell. If we - // encounter such a cell, we need to combine the edges being updated with - // the existing cell contents by absorbing the cell. - iter := s.Iterator() - r := iter.LocateCellID(pcell.id) - if r == Disjoint { - disjointFromIndex = true - } else if r == Indexed { - // Absorb the index cell by transferring its contents to edges and - // deleting it. We also start tracking the interior of any new shapes. - s.absorbIndexCell(pcell, iter, edges, t) - indexCellAbsorbed = true - disjointFromIndex = true - } else { - // DCHECK_EQ(SUBDIVIDED, r) - } - } - - // If there are existing index cells below us, then we need to keep - // subdividing so that we can merge with those cells. Otherwise, - // makeIndexCell checks if the number of edges is small enough, and creates - // an index cell if possible (returning true when it does so). - if !disjointFromIndex || !s.makeIndexCell(pcell, edges, t) { - // TODO(roberts): If it turns out to have memory problems when there - // are 10M+ edges in the index, look into pre-allocating space so we - // are not always appending. - childEdges := [2][2][]*clippedEdge{} // [i][j] - - // Compute the middle of the padded cell, defined as the rectangle in - // (u,v)-space that belongs to all four (padded) children. By comparing - // against the four boundaries of middle we can determine which children - // each edge needs to be propagated to. - middle := pcell.Middle() - - // Build up a vector edges to be passed to each child cell. The (i,j) - // directions are left (i=0), right (i=1), lower (j=0), and upper (j=1). - // Note that the vast majority of edges are propagated to a single child. - for _, edge := range edges { - if edge.bound.X.Hi <= middle.X.Lo { - // Edge is entirely contained in the two left children. - a, b := s.clipVAxis(edge, middle.Y) - if a != nil { - childEdges[0][0] = append(childEdges[0][0], a) - } - if b != nil { - childEdges[0][1] = append(childEdges[0][1], b) - } - } else if edge.bound.X.Lo >= middle.X.Hi { - // Edge is entirely contained in the two right children. - a, b := s.clipVAxis(edge, middle.Y) - if a != nil { - childEdges[1][0] = append(childEdges[1][0], a) - } - if b != nil { - childEdges[1][1] = append(childEdges[1][1], b) - } - } else if edge.bound.Y.Hi <= middle.Y.Lo { - // Edge is entirely contained in the two lower children. - if a := s.clipUBound(edge, 1, middle.X.Hi); a != nil { - childEdges[0][0] = append(childEdges[0][0], a) - } - if b := s.clipUBound(edge, 0, middle.X.Lo); b != nil { - childEdges[1][0] = append(childEdges[1][0], b) - } - } else if edge.bound.Y.Lo >= middle.Y.Hi { - // Edge is entirely contained in the two upper children. - if a := s.clipUBound(edge, 1, middle.X.Hi); a != nil { - childEdges[0][1] = append(childEdges[0][1], a) - } - if b := s.clipUBound(edge, 0, middle.X.Lo); b != nil { - childEdges[1][1] = append(childEdges[1][1], b) - } - } else { - // The edge bound spans all four children. The edge - // itself intersects either three or four padded children. - left := s.clipUBound(edge, 1, middle.X.Hi) - a, b := s.clipVAxis(left, middle.Y) - if a != nil { - childEdges[0][0] = append(childEdges[0][0], a) - } - if b != nil { - childEdges[0][1] = append(childEdges[0][1], b) - } - right := s.clipUBound(edge, 0, middle.X.Lo) - a, b = s.clipVAxis(right, middle.Y) - if a != nil { - childEdges[1][0] = append(childEdges[1][0], a) - } - if b != nil { - childEdges[1][1] = append(childEdges[1][1], b) - } - } - } - - // Now recursively update the edges in each child. We call the children in - // increasing order of CellID so that when the index is first constructed, - // all insertions into cellMap are at the end (which is much faster). - for pos := 0; pos < 4; pos++ { - i, j := pcell.ChildIJ(pos) - if len(childEdges[i][j]) > 0 || len(t.shapeIDs) > 0 { - s.updateEdges(PaddedCellFromParentIJ(pcell, i, j), childEdges[i][j], - t, disjointFromIndex) - } - } - } - - if indexCellAbsorbed { - // Restore the state for any edges being removed that we are tracking. - t.restoreStateBefore(s.pendingAdditionsPos) - } -} - -// makeIndexCell builds an indexCell from the given padded cell and set of edges and adds -// it to the index. If the cell or edges are empty, no cell is added. -func (s *ShapeIndex) makeIndexCell(p *PaddedCell, edges []*clippedEdge, t *tracker) bool { - // If the cell is empty, no index cell is needed. (In most cases this - // situation is detected before we get to this point, but this can happen - // when all shapes in a cell are removed.) - if len(edges) == 0 && len(t.shapeIDs) == 0 { - return true - } - - // Count the number of edges that have not reached their maximum level yet. - // Return false if there are too many such edges. - count := 0 - for _, ce := range edges { - if p.Level() < ce.faceEdge.maxLevel { - count++ - } - - if count > s.maxEdgesPerCell { - return false - } - } - - // Possible optimization: Continue subdividing as long as exactly one child - // of the padded cell intersects the given edges. This can be done by finding - // the bounding box of all the edges and calling ShrinkToFit: - // - // cellID = p.ShrinkToFit(RectBound(edges)); - // - // Currently this is not beneficial; it slows down construction by 4-25% - // (mainly computing the union of the bounding rectangles) and also slows - // down queries (since more recursive clipping is required to get down to - // the level of a spatial index cell). But it may be worth trying again - // once containsCenter is computed and all algorithms are modified to - // take advantage of it. - - // We update the InteriorTracker as follows. For every Cell in the index - // we construct two edges: one edge from entry vertex of the cell to its - // center, and one from the cell center to its exit vertex. Here entry - // and exit refer the CellID ordering, i.e. the order in which points - // are encountered along the 2 space-filling curve. The exit vertex then - // becomes the entry vertex for the next cell in the index, unless there are - // one or more empty intervening cells, in which case the InteriorTracker - // state is unchanged because the intervening cells have no edges. - - // Shift the InteriorTracker focus point to the center of the current cell. - if t.isActive && len(edges) != 0 { - if !t.atCellID(p.id) { - t.moveTo(p.EntryVertex()) - } - t.drawTo(p.Center()) - s.testAllEdges(edges, t) - } - - // Allocate and fill a new index cell. To get the total number of shapes we - // need to merge the shapes associated with the intersecting edges together - // with the shapes that happen to contain the cell center. - cshapeIDs := t.shapeIDs - numShapes := s.countShapes(edges, cshapeIDs) - cell := NewShapeIndexCell(numShapes) - - // To fill the index cell we merge the two sources of shapes: edge shapes - // (those that have at least one edge that intersects this cell), and - // containing shapes (those that contain the cell center). We keep track - // of the index of the next intersecting edge and the next containing shape - // as we go along. Both sets of shape ids are already sorted. - eNext := 0 - cNextIdx := 0 - for i := 0; i < numShapes; i++ { - var clipped *clippedShape - // advance to next value base + i - eshapeID := int32(s.Len()) - cshapeID := eshapeID // Sentinels - - if eNext != len(edges) { - eshapeID = edges[eNext].faceEdge.shapeID - } - if cNextIdx < len(cshapeIDs) { - cshapeID = cshapeIDs[cNextIdx] - } - eBegin := eNext - if cshapeID < eshapeID { - // The entire cell is in the shape interior. - clipped = newClippedShape(cshapeID, 0) - clipped.containsCenter = true - cNextIdx++ - } else { - // Count the number of edges for this shape and allocate space for them. - for eNext < len(edges) && edges[eNext].faceEdge.shapeID == eshapeID { - eNext++ - } - clipped = newClippedShape(eshapeID, eNext-eBegin) - for e := eBegin; e < eNext; e++ { - clipped.edges[e-eBegin] = edges[e].faceEdge.edgeID - } - if cshapeID == eshapeID { - clipped.containsCenter = true - cNextIdx++ - } - } - cell.shapes[i] = clipped - } - - // Add this cell to the map. - s.cellMap[p.id] = cell - s.cells = append(s.cells, p.id) - - // Shift the tracker focus point to the exit vertex of this cell. - if t.isActive && len(edges) != 0 { - t.drawTo(p.ExitVertex()) - s.testAllEdges(edges, t) - t.setNextCellID(p.id.Next()) - } - return true -} - -// updateBound updates the specified endpoint of the given clipped edge and returns the -// resulting clipped edge. -func (s *ShapeIndex) updateBound(edge *clippedEdge, uEnd int, u float64, vEnd int, v float64) *clippedEdge { - c := &clippedEdge{faceEdge: edge.faceEdge} - if uEnd == 0 { - c.bound.X.Lo = u - c.bound.X.Hi = edge.bound.X.Hi - } else { - c.bound.X.Lo = edge.bound.X.Lo - c.bound.X.Hi = u - } - - if vEnd == 0 { - c.bound.Y.Lo = v - c.bound.Y.Hi = edge.bound.Y.Hi - } else { - c.bound.Y.Lo = edge.bound.Y.Lo - c.bound.Y.Hi = v - } - - return c -} - -// clipUBound clips the given endpoint (lo=0, hi=1) of the u-axis so that -// it does not extend past the given value of the given edge. -func (s *ShapeIndex) clipUBound(edge *clippedEdge, uEnd int, u float64) *clippedEdge { - // First check whether the edge actually requires any clipping. (Sometimes - // this method is called when clipping is not necessary, e.g. when one edge - // endpoint is in the overlap area between two padded child cells.) - if uEnd == 0 { - if edge.bound.X.Lo >= u { - return edge - } - } else { - if edge.bound.X.Hi <= u { - return edge - } - } - // We interpolate the new v-value from the endpoints of the original edge. - // This has two advantages: (1) we don't need to store the clipped endpoints - // at all, just their bounding box; and (2) it avoids the accumulation of - // roundoff errors due to repeated interpolations. The result needs to be - // clamped to ensure that it is in the appropriate range. - e := edge.faceEdge - v := edge.bound.Y.ClampPoint(interpolateFloat64(u, e.a.X, e.b.X, e.a.Y, e.b.Y)) - - // Determine which endpoint of the v-axis bound to update. If the edge - // slope is positive we update the same endpoint, otherwise we update the - // opposite endpoint. - var vEnd int - positiveSlope := (e.a.X > e.b.X) == (e.a.Y > e.b.Y) - if (uEnd == 1) == positiveSlope { - vEnd = 1 - } - return s.updateBound(edge, uEnd, u, vEnd, v) -} - -// clipVBound clips the given endpoint (lo=0, hi=1) of the v-axis so that -// it does not extend past the given value of the given edge. -func (s *ShapeIndex) clipVBound(edge *clippedEdge, vEnd int, v float64) *clippedEdge { - if vEnd == 0 { - if edge.bound.Y.Lo >= v { - return edge - } - } else { - if edge.bound.Y.Hi <= v { - return edge - } - } - - // We interpolate the new v-value from the endpoints of the original edge. - // This has two advantages: (1) we don't need to store the clipped endpoints - // at all, just their bounding box; and (2) it avoids the accumulation of - // roundoff errors due to repeated interpolations. The result needs to be - // clamped to ensure that it is in the appropriate range. - e := edge.faceEdge - u := edge.bound.X.ClampPoint(interpolateFloat64(v, e.a.Y, e.b.Y, e.a.X, e.b.X)) - - // Determine which endpoint of the v-axis bound to update. If the edge - // slope is positive we update the same endpoint, otherwise we update the - // opposite endpoint. - var uEnd int - positiveSlope := (e.a.X > e.b.X) == (e.a.Y > e.b.Y) - if (vEnd == 1) == positiveSlope { - uEnd = 1 - } - return s.updateBound(edge, uEnd, u, vEnd, v) -} - -// cliupVAxis returns the given edge clipped to within the boundaries of the middle -// interval along the v-axis, and adds the result to its children. -func (s *ShapeIndex) clipVAxis(edge *clippedEdge, middle r1.Interval) (a, b *clippedEdge) { - if edge.bound.Y.Hi <= middle.Lo { - // Edge is entirely contained in the lower child. - return edge, nil - } else if edge.bound.Y.Lo >= middle.Hi { - // Edge is entirely contained in the upper child. - return nil, edge - } - // The edge bound spans both children. - return s.clipVBound(edge, 1, middle.Hi), s.clipVBound(edge, 0, middle.Lo) -} - -// absorbIndexCell absorbs an index cell by transferring its contents to edges -// and/or "tracker", and then delete this cell from the index. If edges includes -// any edges that are being removed, this method also updates their -// InteriorTracker state to correspond to the exit vertex of this cell. -func (s *ShapeIndex) absorbIndexCell(p *PaddedCell, iter *ShapeIndexIterator, edges []*clippedEdge, t *tracker) { - // When we absorb a cell, we erase all the edges that are being removed. - // However when we are finished with this cell, we want to restore the state - // of those edges (since that is how we find all the index cells that need - // to be updated). The edges themselves are restored automatically when - // UpdateEdges returns from its recursive call, but the InteriorTracker - // state needs to be restored explicitly. - // - // Here we first update the InteriorTracker state for removed edges to - // correspond to the exit vertex of this cell, and then save the - // InteriorTracker state. This state will be restored by UpdateEdges when - // it is finished processing the contents of this cell. - if t.isActive && len(edges) != 0 && s.isShapeBeingRemoved(edges[0].faceEdge.shapeID) { - // We probably need to update the tracker. ("Probably" because - // it's possible that all shapes being removed do not have interiors.) - if !t.atCellID(p.id) { - t.moveTo(p.EntryVertex()) - } - t.drawTo(p.ExitVertex()) - t.setNextCellID(p.id.Next()) - for _, edge := range edges { - fe := edge.faceEdge - if !s.isShapeBeingRemoved(fe.shapeID) { - break // All shapes being removed come first. - } - if fe.hasInterior { - t.testEdge(fe.shapeID, fe.edge) - } - } - } - - // Save the state of the edges being removed, so that it can be restored - // when we are finished processing this cell and its children. We don't - // need to save the state of the edges being added because they aren't being - // removed from "edges" and will therefore be updated normally as we visit - // this cell and its children. - t.saveAndClearStateBefore(s.pendingAdditionsPos) - - // Create a faceEdge for each edge in this cell that isn't being removed. - var faceEdges []*faceEdge - trackerMoved := false - - cell := iter.IndexCell() - for _, clipped := range cell.shapes { - shapeID := clipped.shapeID - shape := s.Shape(shapeID) - if shape == nil { - continue // This shape is being removed. - } - - numClipped := clipped.numEdges() - - // If this shape has an interior, start tracking whether we are inside the - // shape. updateEdges wants to know whether the entry vertex of this - // cell is inside the shape, but we only know whether the center of the - // cell is inside the shape, so we need to test all the edges against the - // line segment from the cell center to the entry vertex. - edge := &faceEdge{ - shapeID: shapeID, - hasInterior: shape.Dimension() == 2, - } - - if edge.hasInterior { - t.addShape(shapeID, clipped.containsCenter) - // There might not be any edges in this entire cell (i.e., it might be - // in the interior of all shapes), so we delay updating the tracker - // until we see the first edge. - if !trackerMoved && numClipped > 0 { - t.moveTo(p.Center()) - t.drawTo(p.EntryVertex()) - t.setNextCellID(p.id) - trackerMoved = true - } - } - for i := 0; i < numClipped; i++ { - edgeID := clipped.edges[i] - edge.edgeID = edgeID - edge.edge = shape.Edge(edgeID) - edge.maxLevel = maxLevelForEdge(edge.edge) - if edge.hasInterior { - t.testEdge(shapeID, edge.edge) - } - var ok bool - edge.a, edge.b, ok = ClipToPaddedFace(edge.edge.V0, edge.edge.V1, p.id.Face(), cellPadding) - if !ok { - panic("invariant failure in ShapeIndex") - } - faceEdges = append(faceEdges, edge) - } - } - // Now create a clippedEdge for each faceEdge, and put them in "new_edges". - var newEdges []*clippedEdge - for _, faceEdge := range faceEdges { - clipped := &clippedEdge{ - faceEdge: faceEdge, - bound: clippedEdgeBound(faceEdge.a, faceEdge.b, p.bound), - } - newEdges = append(newEdges, clipped) - } - - // Discard any edges from "edges" that are being removed, and append the - // remainder to "newEdges" (This keeps the edges sorted by shape id.) - for i, clipped := range edges { - if !s.isShapeBeingRemoved(clipped.faceEdge.shapeID) { - newEdges = append(newEdges, edges[i:]...) - break - } - } - - // Update the edge list and delete this cell from the index. - edges, newEdges = newEdges, edges - delete(s.cellMap, p.id) - // TODO(roberts): delete from s.Cells -} - -// testAllEdges calls the trackers testEdge on all edges from shapes that have interiors. -func (s *ShapeIndex) testAllEdges(edges []*clippedEdge, t *tracker) { - for _, edge := range edges { - if edge.faceEdge.hasInterior { - t.testEdge(edge.faceEdge.shapeID, edge.faceEdge.edge) - } - } -} - -// countShapes reports the number of distinct shapes that are either associated with the -// given edges, or that are currently stored in the InteriorTracker. -func (s *ShapeIndex) countShapes(edges []*clippedEdge, shapeIDs []int32) int { - count := 0 - lastShapeID := int32(-1) - - // next clipped shape id in the shapeIDs list. - clippedNext := int32(0) - // index of the current element in the shapeIDs list. - shapeIDidx := 0 - for _, edge := range edges { - if edge.faceEdge.shapeID == lastShapeID { - continue - } - - count++ - lastShapeID = edge.faceEdge.shapeID - - // Skip over any containing shapes up to and including this one, - // updating count as appropriate. - for ; shapeIDidx < len(shapeIDs); shapeIDidx++ { - clippedNext = shapeIDs[shapeIDidx] - if clippedNext > lastShapeID { - break - } - if clippedNext < lastShapeID { - count++ - } - } - } - - // Count any remaining containing shapes. - count += len(shapeIDs) - shapeIDidx - return count -} - -// maxLevelForEdge reports the maximum level for a given edge. -func maxLevelForEdge(edge Edge) int { - // Compute the maximum cell size for which this edge is considered long. - // The calculation does not need to be perfectly accurate, so we use Norm - // rather than Angle for speed. - cellSize := edge.V0.Sub(edge.V1.Vector).Norm() * cellSizeToLongEdgeRatio - // Now return the first level encountered during subdivision where the - // average cell size is at most cellSize. - return AvgEdgeMetric.MinLevel(cellSize) -} - -// removeShapeInternal does the actual work for removing a given shape from the index. -func (s *ShapeIndex) removeShapeInternal(removed *removedShape, allEdges [][]faceEdge, t *tracker) { - // TODO(roberts): finish the implementation of this. -} diff --git a/backend/vendor/github.com/golang/geo/s2/shapeutil.go b/backend/vendor/github.com/golang/geo/s2/shapeutil.go deleted file mode 100644 index 64245dfa..00000000 --- a/backend/vendor/github.com/golang/geo/s2/shapeutil.go +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// CrossingType defines different ways of reporting edge intersections. -type CrossingType int - -const ( - // CrossingTypeInterior reports intersections that occur at a point - // interior to both edges (i.e., not at a vertex). - CrossingTypeInterior CrossingType = iota - - // CrossingTypeAll reports all intersections, even those where two edges - // intersect only because they share a common vertex. - CrossingTypeAll - - // CrossingTypeNonAdjacent reports all intersections except for pairs of - // the form (AB, BC) where both edges are from the same ShapeIndex. - CrossingTypeNonAdjacent -) - -// rangeIterator is a wrapper over ShapeIndexIterator with extra methods -// that are useful for merging the contents of two or more ShapeIndexes. -type rangeIterator struct { - it *ShapeIndexIterator - // The min and max leaf cell ids covered by the current cell. If done() is - // true, these methods return a value larger than any valid cell id. - rangeMin CellID - rangeMax CellID -} - -// newRangeIterator creates a new rangeIterator positioned at the first cell of the given index. -func newRangeIterator(index *ShapeIndex) *rangeIterator { - r := &rangeIterator{ - it: index.Iterator(), - } - r.refresh() - return r -} - -func (r *rangeIterator) cellID() CellID { return r.it.CellID() } -func (r *rangeIterator) indexCell() *ShapeIndexCell { return r.it.IndexCell() } -func (r *rangeIterator) next() { r.it.Next(); r.refresh() } -func (r *rangeIterator) done() bool { return r.it.Done() } - -// seekTo positions the iterator at the first cell that overlaps or follows -// the current range minimum of the target iterator, i.e. such that its -// rangeMax >= target.rangeMin. -func (r *rangeIterator) seekTo(target *rangeIterator) { - r.it.seek(target.rangeMin) - // If the current cell does not overlap target, it is possible that the - // previous cell is the one we are looking for. This can only happen when - // the previous cell contains target but has a smaller CellID. - if r.it.Done() || r.it.CellID().RangeMin() > target.rangeMax { - if r.it.Prev() && r.it.CellID().RangeMax() < target.cellID() { - r.it.Next() - } - } - r.refresh() -} - -// seekBeyond positions the iterator at the first cell that follows the current -// range minimum of the target iterator. i.e. the first cell such that its -// rangeMin > target.rangeMax. -func (r *rangeIterator) seekBeyond(target *rangeIterator) { - r.it.seek(target.rangeMax.Next()) - if !r.it.Done() && r.it.CellID().RangeMin() <= target.rangeMax { - r.it.Next() - } - r.refresh() -} - -// refresh updates the iterators min and max values. -func (r *rangeIterator) refresh() { - r.rangeMin = r.cellID().RangeMin() - r.rangeMax = r.cellID().RangeMax() -} - -// referencePointForShape is a helper function for implementing various Shapes -// ReferencePoint functions. -// -// Given a shape consisting of closed polygonal loops, the interior of the -// shape is defined as the region to the left of all edges (which must be -// oriented consistently). This function then chooses an arbitrary point and -// returns true if that point is contained by the shape. -// -// Unlike Loop and Polygon, this method allows duplicate vertices and -// edges, which requires some extra care with definitions. The rule that we -// apply is that an edge and its reverse edge cancel each other: the result -// is the same as if that edge pair were not present. Therefore shapes that -// consist only of degenerate loop(s) are either empty or full; by convention, -// the shape is considered full if and only if it contains an empty loop (see -// laxPolygon for details). -// -// Determining whether a loop on the sphere contains a point is harder than -// the corresponding problem in 2D plane geometry. It cannot be implemented -// just by counting edge crossings because there is no such thing as a point -// at infinity that is guaranteed to be outside the loop. -// -// This function requires that the given Shape have an interior. -func referencePointForShape(shape Shape) ReferencePoint { - if shape.NumEdges() == 0 { - // A shape with no edges is defined to be full if and only if it - // contains at least one chain. - return OriginReferencePoint(shape.NumChains() > 0) - } - // Define a "matched" edge as one that can be paired with a corresponding - // reversed edge. Define a vertex as "balanced" if all of its edges are - // matched. In order to determine containment, we must find an unbalanced - // vertex. Often every vertex is unbalanced, so we start by trying an - // arbitrary vertex. - edge := shape.Edge(0) - - if ref, ok := referencePointAtVertex(shape, edge.V0); ok { - return ref - } - - // That didn't work, so now we do some extra work to find an unbalanced - // vertex (if any). Essentially we gather a list of edges and a list of - // reversed edges, and then sort them. The first edge that appears in one - // list but not the other is guaranteed to be unmatched. - n := shape.NumEdges() - var edges = make([]Edge, n) - var revEdges = make([]Edge, n) - for i := 0; i < n; i++ { - edge := shape.Edge(i) - edges[i] = edge - revEdges[i] = Edge{V0: edge.V1, V1: edge.V0} - } - - sortEdges(edges) - sortEdges(revEdges) - - for i := 0; i < n; i++ { - if edges[i].Cmp(revEdges[i]) == -1 { // edges[i] is unmatched - if ref, ok := referencePointAtVertex(shape, edges[i].V0); ok { - return ref - } - } - if revEdges[i].Cmp(edges[i]) == -1 { // revEdges[i] is unmatched - if ref, ok := referencePointAtVertex(shape, revEdges[i].V0); ok { - return ref - } - } - } - - // All vertices are balanced, so this polygon is either empty or full except - // for degeneracies. By convention it is defined to be full if it contains - // any chain with no edges. - for i := 0; i < shape.NumChains(); i++ { - if shape.Chain(i).Length == 0 { - return OriginReferencePoint(true) - } - } - - return OriginReferencePoint(false) -} - -// referencePointAtVertex reports whether the given vertex is unbalanced, and -// returns a ReferencePoint indicating if the point is contained. -// Otherwise returns false. -func referencePointAtVertex(shape Shape, vTest Point) (ReferencePoint, bool) { - var ref ReferencePoint - - // Let P be an unbalanced vertex. Vertex P is defined to be inside the - // region if the region contains a particular direction vector starting from - // P, namely the direction p.Ortho(). This can be calculated using - // ContainsVertexQuery. - - containsQuery := NewContainsVertexQuery(vTest) - n := shape.NumEdges() - for e := 0; e < n; e++ { - edge := shape.Edge(e) - if edge.V0 == vTest { - containsQuery.AddEdge(edge.V1, 1) - } - if edge.V1 == vTest { - containsQuery.AddEdge(edge.V0, -1) - } - } - containsSign := containsQuery.ContainsVertex() - if containsSign == 0 { - return ref, false // There are no unmatched edges incident to this vertex. - } - ref.Point = vTest - ref.Contained = containsSign > 0 - - return ref, true -} - -// containsBruteForce reports whether the given shape contains the given point. -// Most clients should not use this method, since its running time is linear in -// the number of shape edges. Instead clients should create a ShapeIndex and use -// ContainsPointQuery, since this strategy is much more efficient when many -// points need to be tested. -// -// Polygon boundaries are treated as being semi-open (see ContainsPointQuery -// and VertexModel for other options). -func containsBruteForce(shape Shape, point Point) bool { - if shape.Dimension() != 2 { - return false - } - - refPoint := shape.ReferencePoint() - if refPoint.Point == point { - return refPoint.Contained - } - - crosser := NewEdgeCrosser(refPoint.Point, point) - inside := refPoint.Contained - for e := 0; e < shape.NumEdges(); e++ { - edge := shape.Edge(e) - inside = inside != crosser.EdgeOrVertexCrossing(edge.V0, edge.V1) - } - return inside -} diff --git a/backend/vendor/github.com/golang/geo/s2/shapeutil_edge_iterator.go b/backend/vendor/github.com/golang/geo/s2/shapeutil_edge_iterator.go deleted file mode 100644 index 2a0d8236..00000000 --- a/backend/vendor/github.com/golang/geo/s2/shapeutil_edge_iterator.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2020 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// EdgeIterator is an iterator that advances through all edges in an ShapeIndex. -// This is different to the ShapeIndexIterator, which advances through the cells in the -// ShapeIndex. -type EdgeIterator struct { - index *ShapeIndex - shapeID int32 - numEdges int32 - edgeID int32 -} - -// NewEdgeIterator creates a new edge iterator for the given index. -func NewEdgeIterator(index *ShapeIndex) *EdgeIterator { - e := &EdgeIterator{ - index: index, - shapeID: -1, - edgeID: -1, - } - - e.Next() - return e -} - -// ShapeID returns the current shape ID. -func (e *EdgeIterator) ShapeID() int32 { return e.shapeID } - -// EdgeID returns the current edge ID. -func (e *EdgeIterator) EdgeID() int32 { return e.edgeID } - -// ShapeEdgeID returns the current (shapeID, edgeID). -func (e *EdgeIterator) ShapeEdgeID() ShapeEdgeID { return ShapeEdgeID{e.shapeID, e.edgeID} } - -// Edge returns the current edge. -func (e *EdgeIterator) Edge() Edge { - return e.index.Shape(e.shapeID).Edge(int(e.edgeID)) -} - -// Done reports if the iterator is positioned at or after the last index edge. -func (e *EdgeIterator) Done() bool { return e.shapeID >= int32(len(e.index.shapes)) } - -// Next positions the iterator at the next index edge. -func (e *EdgeIterator) Next() { - e.edgeID++ - for ; e.edgeID >= e.numEdges; e.edgeID++ { - e.shapeID++ - if e.shapeID >= int32(len(e.index.shapes)) { - break - } - shape := e.index.Shape(e.shapeID) - if shape == nil { - e.numEdges = 0 - } else { - e.numEdges = int32(shape.NumEdges()) - } - e.edgeID = -1 - } -} diff --git a/backend/vendor/github.com/golang/geo/s2/stuv.go b/backend/vendor/github.com/golang/geo/s2/stuv.go deleted file mode 100644 index 7663bb39..00000000 --- a/backend/vendor/github.com/golang/geo/s2/stuv.go +++ /dev/null @@ -1,427 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import ( - "math" - - "github.com/golang/geo/r3" -) - -// -// This file contains documentation of the various coordinate systems used -// throughout the library. Most importantly, S2 defines a framework for -// decomposing the unit sphere into a hierarchy of "cells". Each cell is a -// quadrilateral bounded by four geodesics. The top level of the hierarchy is -// obtained by projecting the six faces of a cube onto the unit sphere, and -// lower levels are obtained by subdividing each cell into four children -// recursively. Cells are numbered such that sequentially increasing cells -// follow a continuous space-filling curve over the entire sphere. The -// transformation is designed to make the cells at each level fairly uniform -// in size. -// -////////////////////////// S2 Cell Decomposition ///////////////////////// -// -// The following methods define the cube-to-sphere projection used by -// the Cell decomposition. -// -// In the process of converting a latitude-longitude pair to a 64-bit cell -// id, the following coordinate systems are used: -// -// (id) -// An CellID is a 64-bit encoding of a face and a Hilbert curve position -// on that face. The Hilbert curve position implicitly encodes both the -// position of a cell and its subdivision level (see s2cellid.go). -// -// (face, i, j) -// Leaf-cell coordinates. "i" and "j" are integers in the range -// [0,(2**30)-1] that identify a particular leaf cell on the given face. -// The (i, j) coordinate system is right-handed on each face, and the -// faces are oriented such that Hilbert curves connect continuously from -// one face to the next. -// -// (face, s, t) -// Cell-space coordinates. "s" and "t" are real numbers in the range -// [0,1] that identify a point on the given face. For example, the point -// (s, t) = (0.5, 0.5) corresponds to the center of the top-level face -// cell. This point is also a vertex of exactly four cells at each -// subdivision level greater than zero. -// -// (face, si, ti) -// Discrete cell-space coordinates. These are obtained by multiplying -// "s" and "t" by 2**31 and rounding to the nearest unsigned integer. -// Discrete coordinates lie in the range [0,2**31]. This coordinate -// system can represent the edge and center positions of all cells with -// no loss of precision (including non-leaf cells). In binary, each -// coordinate of a level-k cell center ends with a 1 followed by -// (30 - k) 0s. The coordinates of its edges end with (at least) -// (31 - k) 0s. -// -// (face, u, v) -// Cube-space coordinates in the range [-1,1]. To make the cells at each -// level more uniform in size after they are projected onto the sphere, -// we apply a nonlinear transformation of the form u=f(s), v=f(t). -// The (u, v) coordinates after this transformation give the actual -// coordinates on the cube face (modulo some 90 degree rotations) before -// it is projected onto the unit sphere. -// -// (face, u, v, w) -// Per-face coordinate frame. This is an extension of the (face, u, v) -// cube-space coordinates that adds a third axis "w" in the direction of -// the face normal. It is always a right-handed 3D coordinate system. -// Cube-space coordinates can be converted to this frame by setting w=1, -// while (u,v,w) coordinates can be projected onto the cube face by -// dividing by w, i.e. (face, u/w, v/w). -// -// (x, y, z) -// Direction vector (Point). Direction vectors are not necessarily unit -// length, and are often chosen to be points on the biunit cube -// [-1,+1]x[-1,+1]x[-1,+1]. They can be be normalized to obtain the -// corresponding point on the unit sphere. -// -// (lat, lng) -// Latitude and longitude (LatLng). Latitudes must be between -90 and -// 90 degrees inclusive, and longitudes must be between -180 and 180 -// degrees inclusive. -// -// Note that the (i, j), (s, t), (si, ti), and (u, v) coordinate systems are -// right-handed on all six faces. -// -// -// There are a number of different projections from cell-space (s,t) to -// cube-space (u,v): linear, quadratic, and tangent. They have the following -// tradeoffs: -// -// Linear - This is the fastest transformation, but also produces the least -// uniform cell sizes. Cell areas vary by a factor of about 5.2, with the -// largest cells at the center of each face and the smallest cells in -// the corners. -// -// Tangent - Transforming the coordinates via Atan makes the cell sizes -// more uniform. The areas vary by a maximum ratio of 1.4 as opposed to a -// maximum ratio of 5.2. However, each call to Atan is about as expensive -// as all of the other calculations combined when converting from points to -// cell ids, i.e. it reduces performance by a factor of 3. -// -// Quadratic - This is an approximation of the tangent projection that -// is much faster and produces cells that are almost as uniform in size. -// It is about 3 times faster than the tangent projection for converting -// cell ids to points or vice versa. Cell areas vary by a maximum ratio of -// about 2.1. -// -// Here is a table comparing the cell uniformity using each projection. Area -// Ratio is the maximum ratio over all subdivision levels of the largest cell -// area to the smallest cell area at that level, Edge Ratio is the maximum -// ratio of the longest edge of any cell to the shortest edge of any cell at -// the same level, and Diag Ratio is the ratio of the longest diagonal of -// any cell to the shortest diagonal of any cell at the same level. -// -// Area Edge Diag -// Ratio Ratio Ratio -// ----------------------------------- -// Linear: 5.200 2.117 2.959 -// Tangent: 1.414 1.414 1.704 -// Quadratic: 2.082 1.802 1.932 -// -// The worst-case cell aspect ratios are about the same with all three -// projections. The maximum ratio of the longest edge to the shortest edge -// within the same cell is about 1.4 and the maximum ratio of the diagonals -// within the same cell is about 1.7. -// -// For Go we have chosen to use only the Quadratic approach. Other language -// implementations may offer other choices. - -const ( - // maxSiTi is the maximum value of an si- or ti-coordinate. - // It is one shift more than maxSize. The range of valid (si,ti) - // values is [0..maxSiTi]. - maxSiTi = maxSize << 1 -) - -// siTiToST converts an si- or ti-value to the corresponding s- or t-value. -// Value is capped at 1.0 because there is no DCHECK in Go. -func siTiToST(si uint32) float64 { - if si > maxSiTi { - return 1.0 - } - return float64(si) / float64(maxSiTi) -} - -// stToSiTi converts the s- or t-value to the nearest si- or ti-coordinate. -// The result may be outside the range of valid (si,ti)-values. Value of -// 0.49999999999999994 (math.NextAfter(0.5, -1)), will be incorrectly rounded up. -func stToSiTi(s float64) uint32 { - if s < 0 { - return uint32(s*maxSiTi - 0.5) - } - return uint32(s*maxSiTi + 0.5) -} - -// stToUV converts an s or t value to the corresponding u or v value. -// This is a non-linear transformation from [-1,1] to [-1,1] that -// attempts to make the cell sizes more uniform. -// This uses what the C++ version calls 'the quadratic transform'. -func stToUV(s float64) float64 { - if s >= 0.5 { - return (1 / 3.) * (4*s*s - 1) - } - return (1 / 3.) * (1 - 4*(1-s)*(1-s)) -} - -// uvToST is the inverse of the stToUV transformation. Note that it -// is not always true that uvToST(stToUV(x)) == x due to numerical -// errors. -func uvToST(u float64) float64 { - if u >= 0 { - return 0.5 * math.Sqrt(1+3*u) - } - return 1 - 0.5*math.Sqrt(1-3*u) -} - -// face returns face ID from 0 to 5 containing the r. For points on the -// boundary between faces, the result is arbitrary but deterministic. -func face(r r3.Vector) int { - f := r.LargestComponent() - switch { - case f == r3.XAxis && r.X < 0: - f += 3 - case f == r3.YAxis && r.Y < 0: - f += 3 - case f == r3.ZAxis && r.Z < 0: - f += 3 - } - return int(f) -} - -// validFaceXYZToUV given a valid face for the given point r (meaning that -// dot product of r with the face normal is positive), returns -// the corresponding u and v values, which may lie outside the range [-1,1]. -func validFaceXYZToUV(face int, r r3.Vector) (float64, float64) { - switch face { - case 0: - return r.Y / r.X, r.Z / r.X - case 1: - return -r.X / r.Y, r.Z / r.Y - case 2: - return -r.X / r.Z, -r.Y / r.Z - case 3: - return r.Z / r.X, r.Y / r.X - case 4: - return r.Z / r.Y, -r.X / r.Y - } - return -r.Y / r.Z, -r.X / r.Z -} - -// xyzToFaceUV converts a direction vector (not necessarily unit length) to -// (face, u, v) coordinates. -func xyzToFaceUV(r r3.Vector) (f int, u, v float64) { - f = face(r) - u, v = validFaceXYZToUV(f, r) - return f, u, v -} - -// faceUVToXYZ turns face and UV coordinates into an unnormalized 3 vector. -func faceUVToXYZ(face int, u, v float64) r3.Vector { - switch face { - case 0: - return r3.Vector{1, u, v} - case 1: - return r3.Vector{-u, 1, v} - case 2: - return r3.Vector{-u, -v, 1} - case 3: - return r3.Vector{-1, -v, -u} - case 4: - return r3.Vector{v, -1, -u} - default: - return r3.Vector{v, u, -1} - } -} - -// faceXYZToUV returns the u and v values (which may lie outside the range -// [-1, 1]) if the dot product of the point p with the given face normal is positive. -func faceXYZToUV(face int, p Point) (u, v float64, ok bool) { - switch face { - case 0: - if p.X <= 0 { - return 0, 0, false - } - case 1: - if p.Y <= 0 { - return 0, 0, false - } - case 2: - if p.Z <= 0 { - return 0, 0, false - } - case 3: - if p.X >= 0 { - return 0, 0, false - } - case 4: - if p.Y >= 0 { - return 0, 0, false - } - default: - if p.Z >= 0 { - return 0, 0, false - } - } - - u, v = validFaceXYZToUV(face, p.Vector) - return u, v, true -} - -// faceXYZtoUVW transforms the given point P to the (u,v,w) coordinate frame of the given -// face where the w-axis represents the face normal. -func faceXYZtoUVW(face int, p Point) Point { - // The result coordinates are simply the dot products of P with the (u,v,w) - // axes for the given face (see faceUVWAxes). - switch face { - case 0: - return Point{r3.Vector{p.Y, p.Z, p.X}} - case 1: - return Point{r3.Vector{-p.X, p.Z, p.Y}} - case 2: - return Point{r3.Vector{-p.X, -p.Y, p.Z}} - case 3: - return Point{r3.Vector{-p.Z, -p.Y, -p.X}} - case 4: - return Point{r3.Vector{-p.Z, p.X, -p.Y}} - default: - return Point{r3.Vector{p.Y, p.X, -p.Z}} - } -} - -// faceSiTiToXYZ transforms the (si, ti) coordinates to a (not necessarily -// unit length) Point on the given face. -func faceSiTiToXYZ(face int, si, ti uint32) Point { - return Point{faceUVToXYZ(face, stToUV(siTiToST(si)), stToUV(siTiToST(ti)))} -} - -// xyzToFaceSiTi transforms the (not necessarily unit length) Point to -// (face, si, ti) coordinates and the level the Point is at. -func xyzToFaceSiTi(p Point) (face int, si, ti uint32, level int) { - face, u, v := xyzToFaceUV(p.Vector) - si = stToSiTi(uvToST(u)) - ti = stToSiTi(uvToST(v)) - - // If the levels corresponding to si,ti are not equal, then p is not a cell - // center. The si,ti values of 0 and maxSiTi need to be handled specially - // because they do not correspond to cell centers at any valid level; they - // are mapped to level -1 by the code at the end. - level = maxLevel - findLSBSetNonZero64(uint64(si|maxSiTi)) - if level < 0 || level != maxLevel-findLSBSetNonZero64(uint64(ti|maxSiTi)) { - return face, si, ti, -1 - } - - // In infinite precision, this test could be changed to ST == SiTi. However, - // due to rounding errors, uvToST(xyzToFaceUV(faceUVToXYZ(stToUV(...)))) is - // not idempotent. On the other hand, the center is computed exactly the same - // way p was originally computed (if it is indeed the center of a Cell); - // the comparison can be exact. - if p.Vector == faceSiTiToXYZ(face, si, ti).Normalize() { - return face, si, ti, level - } - - return face, si, ti, -1 -} - -// uNorm returns the right-handed normal (not necessarily unit length) for an -// edge in the direction of the positive v-axis at the given u-value on -// the given face. (This vector is perpendicular to the plane through -// the sphere origin that contains the given edge.) -func uNorm(face int, u float64) r3.Vector { - switch face { - case 0: - return r3.Vector{u, -1, 0} - case 1: - return r3.Vector{1, u, 0} - case 2: - return r3.Vector{1, 0, u} - case 3: - return r3.Vector{-u, 0, 1} - case 4: - return r3.Vector{0, -u, 1} - default: - return r3.Vector{0, -1, -u} - } -} - -// vNorm returns the right-handed normal (not necessarily unit length) for an -// edge in the direction of the positive u-axis at the given v-value on -// the given face. -func vNorm(face int, v float64) r3.Vector { - switch face { - case 0: - return r3.Vector{-v, 0, 1} - case 1: - return r3.Vector{0, -v, 1} - case 2: - return r3.Vector{0, -1, -v} - case 3: - return r3.Vector{v, -1, 0} - case 4: - return r3.Vector{1, v, 0} - default: - return r3.Vector{1, 0, v} - } -} - -// faceUVWAxes are the U, V, and W axes for each face. -var faceUVWAxes = [6][3]Point{ - {Point{r3.Vector{0, 1, 0}}, Point{r3.Vector{0, 0, 1}}, Point{r3.Vector{1, 0, 0}}}, - {Point{r3.Vector{-1, 0, 0}}, Point{r3.Vector{0, 0, 1}}, Point{r3.Vector{0, 1, 0}}}, - {Point{r3.Vector{-1, 0, 0}}, Point{r3.Vector{0, -1, 0}}, Point{r3.Vector{0, 0, 1}}}, - {Point{r3.Vector{0, 0, -1}}, Point{r3.Vector{0, -1, 0}}, Point{r3.Vector{-1, 0, 0}}}, - {Point{r3.Vector{0, 0, -1}}, Point{r3.Vector{1, 0, 0}}, Point{r3.Vector{0, -1, 0}}}, - {Point{r3.Vector{0, 1, 0}}, Point{r3.Vector{1, 0, 0}}, Point{r3.Vector{0, 0, -1}}}, -} - -// faceUVWFaces are the precomputed neighbors of each face. -var faceUVWFaces = [6][3][2]int{ - {{4, 1}, {5, 2}, {3, 0}}, - {{0, 3}, {5, 2}, {4, 1}}, - {{0, 3}, {1, 4}, {5, 2}}, - {{2, 5}, {1, 4}, {0, 3}}, - {{2, 5}, {3, 0}, {1, 4}}, - {{4, 1}, {3, 0}, {2, 5}}, -} - -// uvwAxis returns the given axis of the given face. -func uvwAxis(face, axis int) Point { - return faceUVWAxes[face][axis] -} - -// uvwFaces returns the face in the (u,v,w) coordinate system on the given axis -// in the given direction. -func uvwFace(face, axis, direction int) int { - return faceUVWFaces[face][axis][direction] -} - -// uAxis returns the u-axis for the given face. -func uAxis(face int) Point { - return uvwAxis(face, 0) -} - -// vAxis returns the v-axis for the given face. -func vAxis(face int) Point { - return uvwAxis(face, 1) -} - -// Return the unit-length normal for the given face. -func unitNorm(face int) Point { - return uvwAxis(face, 2) -} diff --git a/backend/vendor/github.com/golang/geo/s2/util.go b/backend/vendor/github.com/golang/geo/s2/util.go deleted file mode 100644 index 7cab746d..00000000 --- a/backend/vendor/github.com/golang/geo/s2/util.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -import "github.com/golang/geo/s1" - -// roundAngle returns the value rounded to nearest as an int32. -// This does not match C++ exactly for the case of x.5. -func roundAngle(val s1.Angle) int32 { - if val < 0 { - return int32(val - 0.5) - } - return int32(val + 0.5) -} - -// minAngle returns the smallest of the given values. -func minAngle(x s1.Angle, others ...s1.Angle) s1.Angle { - min := x - for _, y := range others { - if y < min { - min = y - } - } - return min -} - -// maxAngle returns the largest of the given values. -func maxAngle(x s1.Angle, others ...s1.Angle) s1.Angle { - max := x - for _, y := range others { - if y > max { - max = y - } - } - return max -} - -// minChordAngle returns the smallest of the given values. -func minChordAngle(x s1.ChordAngle, others ...s1.ChordAngle) s1.ChordAngle { - min := x - for _, y := range others { - if y < min { - min = y - } - } - return min -} - -// maxChordAngle returns the largest of the given values. -func maxChordAngle(x s1.ChordAngle, others ...s1.ChordAngle) s1.ChordAngle { - max := x - for _, y := range others { - if y > max { - max = y - } - } - return max -} - -// minFloat64 returns the smallest of the given values. -func minFloat64(x float64, others ...float64) float64 { - min := x - for _, y := range others { - if y < min { - min = y - } - } - return min -} - -// maxFloat64 returns the largest of the given values. -func maxFloat64(x float64, others ...float64) float64 { - max := x - for _, y := range others { - if y > max { - max = y - } - } - return max -} - -// minInt returns the smallest of the given values. -func minInt(x int, others ...int) int { - min := x - for _, y := range others { - if y < min { - min = y - } - } - return min -} - -// maxInt returns the largest of the given values. -func maxInt(x int, others ...int) int { - max := x - for _, y := range others { - if y > max { - max = y - } - } - return max -} - -// clampInt returns the number closest to x within the range min..max. -func clampInt(x, min, max int) int { - if x < min { - return min - } - if x > max { - return max - } - return x -} diff --git a/backend/vendor/github.com/golang/geo/s2/wedge_relations.go b/backend/vendor/github.com/golang/geo/s2/wedge_relations.go deleted file mode 100644 index d637bb68..00000000 --- a/backend/vendor/github.com/golang/geo/s2/wedge_relations.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package s2 - -// WedgeRel enumerates the possible relation between two wedges A and B. -type WedgeRel int - -// Define the different possible relationships between two wedges. -// -// Given an edge chain (x0, x1, x2), the wedge at x1 is the region to the -// left of the edges. More precisely, it is the set of all rays from x1x0 -// (inclusive) to x1x2 (exclusive) in the *clockwise* direction. -const ( - WedgeEquals WedgeRel = iota // A and B are equal. - WedgeProperlyContains // A is a strict superset of B. - WedgeIsProperlyContained // A is a strict subset of B. - WedgeProperlyOverlaps // A-B, B-A, and A intersect B are non-empty. - WedgeIsDisjoint // A and B are disjoint. -) - -// WedgeRelation reports the relation between two non-empty wedges -// A=(a0, ab1, a2) and B=(b0, ab1, b2). -func WedgeRelation(a0, ab1, a2, b0, b2 Point) WedgeRel { - // There are 6 possible edge orderings at a shared vertex (all - // of these orderings are circular, i.e. abcd == bcda): - // - // (1) a2 b2 b0 a0: A contains B - // (2) a2 a0 b0 b2: B contains A - // (3) a2 a0 b2 b0: A and B are disjoint - // (4) a2 b0 a0 b2: A and B intersect in one wedge - // (5) a2 b2 a0 b0: A and B intersect in one wedge - // (6) a2 b0 b2 a0: A and B intersect in two wedges - // - // We do not distinguish between 4, 5, and 6. - // We pay extra attention when some of the edges overlap. When edges - // overlap, several of these orderings can be satisfied, and we take - // the most specific. - if a0 == b0 && a2 == b2 { - return WedgeEquals - } - - // Cases 1, 2, 5, and 6 - if OrderedCCW(a0, a2, b2, ab1) { - // The cases with this vertex ordering are 1, 5, and 6, - if OrderedCCW(b2, b0, a0, ab1) { - return WedgeProperlyContains - } - - // We are in case 5 or 6, or case 2 if a2 == b2. - if a2 == b2 { - return WedgeIsProperlyContained - } - return WedgeProperlyOverlaps - - } - // We are in case 2, 3, or 4. - if OrderedCCW(a0, b0, b2, ab1) { - return WedgeIsProperlyContained - } - - if OrderedCCW(a0, b0, a2, ab1) { - return WedgeIsDisjoint - } - return WedgeProperlyOverlaps -} - -// WedgeContains reports whether non-empty wedge A=(a0, ab1, a2) contains B=(b0, ab1, b2). -// Equivalent to WedgeRelation == WedgeProperlyContains || WedgeEquals. -func WedgeContains(a0, ab1, a2, b0, b2 Point) bool { - // For A to contain B (where each loop interior is defined to be its left - // side), the CCW edge order around ab1 must be a2 b2 b0 a0. We split - // this test into two parts that test three vertices each. - return OrderedCCW(a2, b2, b0, ab1) && OrderedCCW(b0, a0, a2, ab1) -} - -// WedgeIntersects reports whether non-empty wedge A=(a0, ab1, a2) intersects B=(b0, ab1, b2). -// Equivalent but faster than WedgeRelation != WedgeIsDisjoint -func WedgeIntersects(a0, ab1, a2, b0, b2 Point) bool { - // For A not to intersect B (where each loop interior is defined to be - // its left side), the CCW edge order around ab1 must be a0 b2 b0 a2. - // Note that it's important to write these conditions as negatives - // (!OrderedCCW(a,b,c,o) rather than Ordered(c,b,a,o)) to get correct - // results when two vertices are the same. - return !(OrderedCCW(a0, b2, b0, ab1) && OrderedCCW(b0, a2, a0, ab1)) -} diff --git a/backend/vendor/github.com/golang/snappy/.gitignore b/backend/vendor/github.com/golang/snappy/.gitignore deleted file mode 100644 index 042091d9..00000000 --- a/backend/vendor/github.com/golang/snappy/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -cmd/snappytool/snappytool -testdata/bench - -# These explicitly listed benchmark data files are for an obsolete version of -# snappy_test.go. -testdata/alice29.txt -testdata/asyoulik.txt -testdata/fireworks.jpeg -testdata/geo.protodata -testdata/html -testdata/html_x_4 -testdata/kppkn.gtb -testdata/lcet10.txt -testdata/paper-100k.pdf -testdata/plrabn12.txt -testdata/urls.10K diff --git a/backend/vendor/github.com/golang/snappy/AUTHORS b/backend/vendor/github.com/golang/snappy/AUTHORS deleted file mode 100644 index 203e84eb..00000000 --- a/backend/vendor/github.com/golang/snappy/AUTHORS +++ /dev/null @@ -1,17 +0,0 @@ -# This is the official list of Snappy-Go authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS files. -# See the latter for an explanation. - -# Names should be added to this file as -# Name or Organization -# The email address is not required for organizations. - -# Please keep the list sorted. - -Amazon.com, Inc -Damian Gryski -Google Inc. -Jan Mercl <0xjnml@gmail.com> -Klaus Post -Rodolfo Carvalho -Sebastien Binet diff --git a/backend/vendor/github.com/golang/snappy/CONTRIBUTORS b/backend/vendor/github.com/golang/snappy/CONTRIBUTORS deleted file mode 100644 index d9914732..00000000 --- a/backend/vendor/github.com/golang/snappy/CONTRIBUTORS +++ /dev/null @@ -1,39 +0,0 @@ -# This is the official list of people who can contribute -# (and typically have contributed) code to the Snappy-Go repository. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# The submission process automatically checks to make sure -# that people submitting code are listed in this file (by email address). -# -# Names should be added to this file only after verifying that -# the individual or the individual's organization has agreed to -# the appropriate Contributor License Agreement, found here: -# -# http://code.google.com/legal/individual-cla-v1.0.html -# http://code.google.com/legal/corporate-cla-v1.0.html -# -# The agreement for individuals can be filled out on the web. -# -# When adding J Random Contributor's name to this file, -# either J's name or J's organization's name should be -# added to the AUTHORS file, depending on whether the -# individual or corporate CLA was used. - -# Names should be added to this file like so: -# Name - -# Please keep the list sorted. - -Damian Gryski -Jan Mercl <0xjnml@gmail.com> -Jonathan Swinney -Kai Backman -Klaus Post -Marc-Antoine Ruel -Nigel Tao -Rob Pike -Rodolfo Carvalho -Russ Cox -Sebastien Binet diff --git a/backend/vendor/github.com/golang/snappy/LICENSE b/backend/vendor/github.com/golang/snappy/LICENSE deleted file mode 100644 index 6050c10f..00000000 --- a/backend/vendor/github.com/golang/snappy/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/golang/snappy/README b/backend/vendor/github.com/golang/snappy/README deleted file mode 100644 index cea12879..00000000 --- a/backend/vendor/github.com/golang/snappy/README +++ /dev/null @@ -1,107 +0,0 @@ -The Snappy compression format in the Go programming language. - -To download and install from source: -$ go get github.com/golang/snappy - -Unless otherwise noted, the Snappy-Go source files are distributed -under the BSD-style license found in the LICENSE file. - - - -Benchmarks. - -The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten -or so files, the same set used by the C++ Snappy code (github.com/google/snappy -and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @ -3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29: - -"go test -test.bench=." - -_UFlat0-8 2.19GB/s ± 0% html -_UFlat1-8 1.41GB/s ± 0% urls -_UFlat2-8 23.5GB/s ± 2% jpg -_UFlat3-8 1.91GB/s ± 0% jpg_200 -_UFlat4-8 14.0GB/s ± 1% pdf -_UFlat5-8 1.97GB/s ± 0% html4 -_UFlat6-8 814MB/s ± 0% txt1 -_UFlat7-8 785MB/s ± 0% txt2 -_UFlat8-8 857MB/s ± 0% txt3 -_UFlat9-8 719MB/s ± 1% txt4 -_UFlat10-8 2.84GB/s ± 0% pb -_UFlat11-8 1.05GB/s ± 0% gaviota - -_ZFlat0-8 1.04GB/s ± 0% html -_ZFlat1-8 534MB/s ± 0% urls -_ZFlat2-8 15.7GB/s ± 1% jpg -_ZFlat3-8 740MB/s ± 3% jpg_200 -_ZFlat4-8 9.20GB/s ± 1% pdf -_ZFlat5-8 991MB/s ± 0% html4 -_ZFlat6-8 379MB/s ± 0% txt1 -_ZFlat7-8 352MB/s ± 0% txt2 -_ZFlat8-8 396MB/s ± 1% txt3 -_ZFlat9-8 327MB/s ± 1% txt4 -_ZFlat10-8 1.33GB/s ± 1% pb -_ZFlat11-8 605MB/s ± 1% gaviota - - - -"go test -test.bench=. -tags=noasm" - -_UFlat0-8 621MB/s ± 2% html -_UFlat1-8 494MB/s ± 1% urls -_UFlat2-8 23.2GB/s ± 1% jpg -_UFlat3-8 1.12GB/s ± 1% jpg_200 -_UFlat4-8 4.35GB/s ± 1% pdf -_UFlat5-8 609MB/s ± 0% html4 -_UFlat6-8 296MB/s ± 0% txt1 -_UFlat7-8 288MB/s ± 0% txt2 -_UFlat8-8 309MB/s ± 1% txt3 -_UFlat9-8 280MB/s ± 1% txt4 -_UFlat10-8 753MB/s ± 0% pb -_UFlat11-8 400MB/s ± 0% gaviota - -_ZFlat0-8 409MB/s ± 1% html -_ZFlat1-8 250MB/s ± 1% urls -_ZFlat2-8 12.3GB/s ± 1% jpg -_ZFlat3-8 132MB/s ± 0% jpg_200 -_ZFlat4-8 2.92GB/s ± 0% pdf -_ZFlat5-8 405MB/s ± 1% html4 -_ZFlat6-8 179MB/s ± 1% txt1 -_ZFlat7-8 170MB/s ± 1% txt2 -_ZFlat8-8 189MB/s ± 1% txt3 -_ZFlat9-8 164MB/s ± 1% txt4 -_ZFlat10-8 479MB/s ± 1% pb -_ZFlat11-8 270MB/s ± 1% gaviota - - - -For comparison (Go's encoded output is byte-for-byte identical to C++'s), here -are the numbers from C++ Snappy's - -make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log - -BM_UFlat/0 2.4GB/s html -BM_UFlat/1 1.4GB/s urls -BM_UFlat/2 21.8GB/s jpg -BM_UFlat/3 1.5GB/s jpg_200 -BM_UFlat/4 13.3GB/s pdf -BM_UFlat/5 2.1GB/s html4 -BM_UFlat/6 1.0GB/s txt1 -BM_UFlat/7 959.4MB/s txt2 -BM_UFlat/8 1.0GB/s txt3 -BM_UFlat/9 864.5MB/s txt4 -BM_UFlat/10 2.9GB/s pb -BM_UFlat/11 1.2GB/s gaviota - -BM_ZFlat/0 944.3MB/s html (22.31 %) -BM_ZFlat/1 501.6MB/s urls (47.78 %) -BM_ZFlat/2 14.3GB/s jpg (99.95 %) -BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %) -BM_ZFlat/4 8.3GB/s pdf (83.30 %) -BM_ZFlat/5 903.5MB/s html4 (22.52 %) -BM_ZFlat/6 336.0MB/s txt1 (57.88 %) -BM_ZFlat/7 312.3MB/s txt2 (61.91 %) -BM_ZFlat/8 353.1MB/s txt3 (54.99 %) -BM_ZFlat/9 289.9MB/s txt4 (66.26 %) -BM_ZFlat/10 1.2GB/s pb (19.68 %) -BM_ZFlat/11 527.4MB/s gaviota (37.72 %) diff --git a/backend/vendor/github.com/golang/snappy/decode.go b/backend/vendor/github.com/golang/snappy/decode.go deleted file mode 100644 index f1e04b17..00000000 --- a/backend/vendor/github.com/golang/snappy/decode.go +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package snappy - -import ( - "encoding/binary" - "errors" - "io" -) - -var ( - // ErrCorrupt reports that the input is invalid. - ErrCorrupt = errors.New("snappy: corrupt input") - // ErrTooLarge reports that the uncompressed length is too large. - ErrTooLarge = errors.New("snappy: decoded block is too large") - // ErrUnsupported reports that the input isn't supported. - ErrUnsupported = errors.New("snappy: unsupported input") - - errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") -) - -// DecodedLen returns the length of the decoded block. -func DecodedLen(src []byte) (int, error) { - v, _, err := decodedLen(src) - return v, err -} - -// decodedLen returns the length of the decoded block and the number of bytes -// that the length header occupied. -func decodedLen(src []byte) (blockLen, headerLen int, err error) { - v, n := binary.Uvarint(src) - if n <= 0 || v > 0xffffffff { - return 0, 0, ErrCorrupt - } - - const wordSize = 32 << (^uint(0) >> 32 & 1) - if wordSize == 32 && v > 0x7fffffff { - return 0, 0, ErrTooLarge - } - return int(v), n, nil -} - -const ( - decodeErrCodeCorrupt = 1 - decodeErrCodeUnsupportedLiteralLength = 2 -) - -// Decode returns the decoded form of src. The returned slice may be a sub- -// slice of dst if dst was large enough to hold the entire decoded block. -// Otherwise, a newly allocated slice will be returned. -// -// The dst and src must not overlap. It is valid to pass a nil dst. -// -// Decode handles the Snappy block format, not the Snappy stream format. -func Decode(dst, src []byte) ([]byte, error) { - dLen, s, err := decodedLen(src) - if err != nil { - return nil, err - } - if dLen <= len(dst) { - dst = dst[:dLen] - } else { - dst = make([]byte, dLen) - } - switch decode(dst, src[s:]) { - case 0: - return dst, nil - case decodeErrCodeUnsupportedLiteralLength: - return nil, errUnsupportedLiteralLength - } - return nil, ErrCorrupt -} - -// NewReader returns a new Reader that decompresses from r, using the framing -// format described at -// https://github.com/google/snappy/blob/master/framing_format.txt -func NewReader(r io.Reader) *Reader { - return &Reader{ - r: r, - decoded: make([]byte, maxBlockSize), - buf: make([]byte, maxEncodedLenOfMaxBlockSize+checksumSize), - } -} - -// Reader is an io.Reader that can read Snappy-compressed bytes. -// -// Reader handles the Snappy stream format, not the Snappy block format. -type Reader struct { - r io.Reader - err error - decoded []byte - buf []byte - // decoded[i:j] contains decoded bytes that have not yet been passed on. - i, j int - readHeader bool -} - -// Reset discards any buffered data, resets all state, and switches the Snappy -// reader to read from r. This permits reusing a Reader rather than allocating -// a new one. -func (r *Reader) Reset(reader io.Reader) { - r.r = reader - r.err = nil - r.i = 0 - r.j = 0 - r.readHeader = false -} - -func (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) { - if _, r.err = io.ReadFull(r.r, p); r.err != nil { - if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { - r.err = ErrCorrupt - } - return false - } - return true -} - -// Read satisfies the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - if r.err != nil { - return 0, r.err - } - for { - if r.i < r.j { - n := copy(p, r.decoded[r.i:r.j]) - r.i += n - return n, nil - } - if !r.readFull(r.buf[:4], true) { - return 0, r.err - } - chunkType := r.buf[0] - if !r.readHeader { - if chunkType != chunkTypeStreamIdentifier { - r.err = ErrCorrupt - return 0, r.err - } - r.readHeader = true - } - chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 - if chunkLen > len(r.buf) { - r.err = ErrUnsupported - return 0, r.err - } - - // The chunk types are specified at - // https://github.com/google/snappy/blob/master/framing_format.txt - switch chunkType { - case chunkTypeCompressedData: - // Section 4.2. Compressed data (chunk type 0x00). - if chunkLen < checksumSize { - r.err = ErrCorrupt - return 0, r.err - } - buf := r.buf[:chunkLen] - if !r.readFull(buf, false) { - return 0, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - buf = buf[checksumSize:] - - n, err := DecodedLen(buf) - if err != nil { - r.err = err - return 0, r.err - } - if n > len(r.decoded) { - r.err = ErrCorrupt - return 0, r.err - } - if _, err := Decode(r.decoded, buf); err != nil { - r.err = err - return 0, r.err - } - if crc(r.decoded[:n]) != checksum { - r.err = ErrCorrupt - return 0, r.err - } - r.i, r.j = 0, n - continue - - case chunkTypeUncompressedData: - // Section 4.3. Uncompressed data (chunk type 0x01). - if chunkLen < checksumSize { - r.err = ErrCorrupt - return 0, r.err - } - buf := r.buf[:checksumSize] - if !r.readFull(buf, false) { - return 0, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - // Read directly into r.decoded instead of via r.buf. - n := chunkLen - checksumSize - if n > len(r.decoded) { - r.err = ErrCorrupt - return 0, r.err - } - if !r.readFull(r.decoded[:n], false) { - return 0, r.err - } - if crc(r.decoded[:n]) != checksum { - r.err = ErrCorrupt - return 0, r.err - } - r.i, r.j = 0, n - continue - - case chunkTypeStreamIdentifier: - // Section 4.1. Stream identifier (chunk type 0xff). - if chunkLen != len(magicBody) { - r.err = ErrCorrupt - return 0, r.err - } - if !r.readFull(r.buf[:len(magicBody)], false) { - return 0, r.err - } - for i := 0; i < len(magicBody); i++ { - if r.buf[i] != magicBody[i] { - r.err = ErrCorrupt - return 0, r.err - } - } - continue - } - - if chunkType <= 0x7f { - // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). - r.err = ErrUnsupported - return 0, r.err - } - // Section 4.4 Padding (chunk type 0xfe). - // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). - if !r.readFull(r.buf[:chunkLen], false) { - return 0, r.err - } - } -} diff --git a/backend/vendor/github.com/golang/snappy/decode_amd64.s b/backend/vendor/github.com/golang/snappy/decode_amd64.s deleted file mode 100644 index e6179f65..00000000 --- a/backend/vendor/github.com/golang/snappy/decode_amd64.s +++ /dev/null @@ -1,490 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// The asm code generally follows the pure Go code in decode_other.go, except -// where marked with a "!!!". - -// func decode(dst, src []byte) int -// -// All local variables fit into registers. The non-zero stack size is only to -// spill registers and push args when issuing a CALL. The register allocation: -// - AX scratch -// - BX scratch -// - CX length or x -// - DX offset -// - SI &src[s] -// - DI &dst[d] -// + R8 dst_base -// + R9 dst_len -// + R10 dst_base + dst_len -// + R11 src_base -// + R12 src_len -// + R13 src_base + src_len -// - R14 used by doCopy -// - R15 used by doCopy -// -// The registers R8-R13 (marked with a "+") are set at the start of the -// function, and after a CALL returns, and are not otherwise modified. -// -// The d variable is implicitly DI - R8, and len(dst)-d is R10 - DI. -// The s variable is implicitly SI - R11, and len(src)-s is R13 - SI. -TEXT ·decode(SB), NOSPLIT, $48-56 - // Initialize SI, DI and R8-R13. - MOVQ dst_base+0(FP), R8 - MOVQ dst_len+8(FP), R9 - MOVQ R8, DI - MOVQ R8, R10 - ADDQ R9, R10 - MOVQ src_base+24(FP), R11 - MOVQ src_len+32(FP), R12 - MOVQ R11, SI - MOVQ R11, R13 - ADDQ R12, R13 - -loop: - // for s < len(src) - CMPQ SI, R13 - JEQ end - - // CX = uint32(src[s]) - // - // switch src[s] & 0x03 - MOVBLZX (SI), CX - MOVL CX, BX - ANDL $3, BX - CMPL BX, $1 - JAE tagCopy - - // ---------------------------------------- - // The code below handles literal tags. - - // case tagLiteral: - // x := uint32(src[s] >> 2) - // switch - SHRL $2, CX - CMPL CX, $60 - JAE tagLit60Plus - - // case x < 60: - // s++ - INCQ SI - -doLit: - // This is the end of the inner "switch", when we have a literal tag. - // - // We assume that CX == x and x fits in a uint32, where x is the variable - // used in the pure Go decode_other.go code. - - // length = int(x) + 1 - // - // Unlike the pure Go code, we don't need to check if length <= 0 because - // CX can hold 64 bits, so the increment cannot overflow. - INCQ CX - - // Prepare to check if copying length bytes will run past the end of dst or - // src. - // - // AX = len(dst) - d - // BX = len(src) - s - MOVQ R10, AX - SUBQ DI, AX - MOVQ R13, BX - SUBQ SI, BX - - // !!! Try a faster technique for short (16 or fewer bytes) copies. - // - // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 { - // goto callMemmove // Fall back on calling runtime·memmove. - // } - // - // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s - // against 21 instead of 16, because it cannot assume that all of its input - // is contiguous in memory and so it needs to leave enough source bytes to - // read the next tag without refilling buffers, but Go's Decode assumes - // contiguousness (the src argument is a []byte). - CMPQ CX, $16 - JGT callMemmove - CMPQ AX, $16 - JLT callMemmove - CMPQ BX, $16 - JLT callMemmove - - // !!! Implement the copy from src to dst as a 16-byte load and store. - // (Decode's documentation says that dst and src must not overlap.) - // - // This always copies 16 bytes, instead of only length bytes, but that's - // OK. If the input is a valid Snappy encoding then subsequent iterations - // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a - // non-nil error), so the overrun will be ignored. - // - // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or - // 16-byte loads and stores. This technique probably wouldn't be as - // effective on architectures that are fussier about alignment. - MOVOU 0(SI), X0 - MOVOU X0, 0(DI) - - // d += length - // s += length - ADDQ CX, DI - ADDQ CX, SI - JMP loop - -callMemmove: - // if length > len(dst)-d || length > len(src)-s { etc } - CMPQ CX, AX - JGT errCorrupt - CMPQ CX, BX - JGT errCorrupt - - // copy(dst[d:], src[s:s+length]) - // - // This means calling runtime·memmove(&dst[d], &src[s], length), so we push - // DI, SI and CX as arguments. Coincidentally, we also need to spill those - // three registers to the stack, to save local variables across the CALL. - MOVQ DI, 0(SP) - MOVQ SI, 8(SP) - MOVQ CX, 16(SP) - MOVQ DI, 24(SP) - MOVQ SI, 32(SP) - MOVQ CX, 40(SP) - CALL runtime·memmove(SB) - - // Restore local variables: unspill registers from the stack and - // re-calculate R8-R13. - MOVQ 24(SP), DI - MOVQ 32(SP), SI - MOVQ 40(SP), CX - MOVQ dst_base+0(FP), R8 - MOVQ dst_len+8(FP), R9 - MOVQ R8, R10 - ADDQ R9, R10 - MOVQ src_base+24(FP), R11 - MOVQ src_len+32(FP), R12 - MOVQ R11, R13 - ADDQ R12, R13 - - // d += length - // s += length - ADDQ CX, DI - ADDQ CX, SI - JMP loop - -tagLit60Plus: - // !!! This fragment does the - // - // s += x - 58; if uint(s) > uint(len(src)) { etc } - // - // checks. In the asm version, we code it once instead of once per switch case. - ADDQ CX, SI - SUBQ $58, SI - MOVQ SI, BX - SUBQ R11, BX - CMPQ BX, R12 - JA errCorrupt - - // case x == 60: - CMPL CX, $61 - JEQ tagLit61 - JA tagLit62Plus - - // x = uint32(src[s-1]) - MOVBLZX -1(SI), CX - JMP doLit - -tagLit61: - // case x == 61: - // x = uint32(src[s-2]) | uint32(src[s-1])<<8 - MOVWLZX -2(SI), CX - JMP doLit - -tagLit62Plus: - CMPL CX, $62 - JA tagLit63 - - // case x == 62: - // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 - MOVWLZX -3(SI), CX - MOVBLZX -1(SI), BX - SHLL $16, BX - ORL BX, CX - JMP doLit - -tagLit63: - // case x == 63: - // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - MOVL -4(SI), CX - JMP doLit - -// The code above handles literal tags. -// ---------------------------------------- -// The code below handles copy tags. - -tagCopy4: - // case tagCopy4: - // s += 5 - ADDQ $5, SI - - // if uint(s) > uint(len(src)) { etc } - MOVQ SI, BX - SUBQ R11, BX - CMPQ BX, R12 - JA errCorrupt - - // length = 1 + int(src[s-5])>>2 - SHRQ $2, CX - INCQ CX - - // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) - MOVLQZX -4(SI), DX - JMP doCopy - -tagCopy2: - // case tagCopy2: - // s += 3 - ADDQ $3, SI - - // if uint(s) > uint(len(src)) { etc } - MOVQ SI, BX - SUBQ R11, BX - CMPQ BX, R12 - JA errCorrupt - - // length = 1 + int(src[s-3])>>2 - SHRQ $2, CX - INCQ CX - - // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) - MOVWQZX -2(SI), DX - JMP doCopy - -tagCopy: - // We have a copy tag. We assume that: - // - BX == src[s] & 0x03 - // - CX == src[s] - CMPQ BX, $2 - JEQ tagCopy2 - JA tagCopy4 - - // case tagCopy1: - // s += 2 - ADDQ $2, SI - - // if uint(s) > uint(len(src)) { etc } - MOVQ SI, BX - SUBQ R11, BX - CMPQ BX, R12 - JA errCorrupt - - // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) - MOVQ CX, DX - ANDQ $0xe0, DX - SHLQ $3, DX - MOVBQZX -1(SI), BX - ORQ BX, DX - - // length = 4 + int(src[s-2])>>2&0x7 - SHRQ $2, CX - ANDQ $7, CX - ADDQ $4, CX - -doCopy: - // This is the end of the outer "switch", when we have a copy tag. - // - // We assume that: - // - CX == length && CX > 0 - // - DX == offset - - // if offset <= 0 { etc } - CMPQ DX, $0 - JLE errCorrupt - - // if d < offset { etc } - MOVQ DI, BX - SUBQ R8, BX - CMPQ BX, DX - JLT errCorrupt - - // if length > len(dst)-d { etc } - MOVQ R10, BX - SUBQ DI, BX - CMPQ CX, BX - JGT errCorrupt - - // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length - // - // Set: - // - R14 = len(dst)-d - // - R15 = &dst[d-offset] - MOVQ R10, R14 - SUBQ DI, R14 - MOVQ DI, R15 - SUBQ DX, R15 - - // !!! Try a faster technique for short (16 or fewer bytes) forward copies. - // - // First, try using two 8-byte load/stores, similar to the doLit technique - // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is - // still OK if offset >= 8. Note that this has to be two 8-byte load/stores - // and not one 16-byte load/store, and the first store has to be before the - // second load, due to the overlap if offset is in the range [8, 16). - // - // if length > 16 || offset < 8 || len(dst)-d < 16 { - // goto slowForwardCopy - // } - // copy 16 bytes - // d += length - CMPQ CX, $16 - JGT slowForwardCopy - CMPQ DX, $8 - JLT slowForwardCopy - CMPQ R14, $16 - JLT slowForwardCopy - MOVQ 0(R15), AX - MOVQ AX, 0(DI) - MOVQ 8(R15), BX - MOVQ BX, 8(DI) - ADDQ CX, DI - JMP loop - -slowForwardCopy: - // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we - // can still try 8-byte load stores, provided we can overrun up to 10 extra - // bytes. As above, the overrun will be fixed up by subsequent iterations - // of the outermost loop. - // - // The C++ snappy code calls this technique IncrementalCopyFastPath. Its - // commentary says: - // - // ---- - // - // The main part of this loop is a simple copy of eight bytes at a time - // until we've copied (at least) the requested amount of bytes. However, - // if d and d-offset are less than eight bytes apart (indicating a - // repeating pattern of length < 8), we first need to expand the pattern in - // order to get the correct results. For instance, if the buffer looks like - // this, with the eight-byte and patterns marked as - // intervals: - // - // abxxxxxxxxxxxx - // [------] d-offset - // [------] d - // - // a single eight-byte copy from to will repeat the pattern - // once, after which we can move two bytes without moving : - // - // ababxxxxxxxxxx - // [------] d-offset - // [------] d - // - // and repeat the exercise until the two no longer overlap. - // - // This allows us to do very well in the special case of one single byte - // repeated many times, without taking a big hit for more general cases. - // - // The worst case of extra writing past the end of the match occurs when - // offset == 1 and length == 1; the last copy will read from byte positions - // [0..7] and write to [4..11], whereas it was only supposed to write to - // position 1. Thus, ten excess bytes. - // - // ---- - // - // That "10 byte overrun" worst case is confirmed by Go's - // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy - // and finishSlowForwardCopy algorithm. - // - // if length > len(dst)-d-10 { - // goto verySlowForwardCopy - // } - SUBQ $10, R14 - CMPQ CX, R14 - JGT verySlowForwardCopy - -makeOffsetAtLeast8: - // !!! As above, expand the pattern so that offset >= 8 and we can use - // 8-byte load/stores. - // - // for offset < 8 { - // copy 8 bytes from dst[d-offset:] to dst[d:] - // length -= offset - // d += offset - // offset += offset - // // The two previous lines together means that d-offset, and therefore - // // R15, is unchanged. - // } - CMPQ DX, $8 - JGE fixUpSlowForwardCopy - MOVQ (R15), BX - MOVQ BX, (DI) - SUBQ DX, CX - ADDQ DX, DI - ADDQ DX, DX - JMP makeOffsetAtLeast8 - -fixUpSlowForwardCopy: - // !!! Add length (which might be negative now) to d (implied by DI being - // &dst[d]) so that d ends up at the right place when we jump back to the - // top of the loop. Before we do that, though, we save DI to AX so that, if - // length is positive, copying the remaining length bytes will write to the - // right place. - MOVQ DI, AX - ADDQ CX, DI - -finishSlowForwardCopy: - // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative - // length means that we overrun, but as above, that will be fixed up by - // subsequent iterations of the outermost loop. - CMPQ CX, $0 - JLE loop - MOVQ (R15), BX - MOVQ BX, (AX) - ADDQ $8, R15 - ADDQ $8, AX - SUBQ $8, CX - JMP finishSlowForwardCopy - -verySlowForwardCopy: - // verySlowForwardCopy is a simple implementation of forward copy. In C - // parlance, this is a do/while loop instead of a while loop, since we know - // that length > 0. In Go syntax: - // - // for { - // dst[d] = dst[d - offset] - // d++ - // length-- - // if length == 0 { - // break - // } - // } - MOVB (R15), BX - MOVB BX, (DI) - INCQ R15 - INCQ DI - DECQ CX - JNZ verySlowForwardCopy - JMP loop - -// The code above handles copy tags. -// ---------------------------------------- - -end: - // This is the end of the "for s < len(src)". - // - // if d != len(dst) { etc } - CMPQ DI, R10 - JNE errCorrupt - - // return 0 - MOVQ $0, ret+48(FP) - RET - -errCorrupt: - // return decodeErrCodeCorrupt - MOVQ $1, ret+48(FP) - RET diff --git a/backend/vendor/github.com/golang/snappy/decode_arm64.s b/backend/vendor/github.com/golang/snappy/decode_arm64.s deleted file mode 100644 index bfafa0cc..00000000 --- a/backend/vendor/github.com/golang/snappy/decode_arm64.s +++ /dev/null @@ -1,503 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// The asm code generally follows the pure Go code in decode_other.go, except -// where marked with a "!!!". - -// func decode(dst, src []byte) int -// -// All local variables fit into registers. The non-zero stack size is only to -// spill registers and push args when issuing a CALL. The register allocation: -// - R2 scratch -// - R3 scratch -// - R4 length or x -// - R5 offset -// - R6 &src[s] -// - R7 &dst[d] -// + R8 dst_base -// + R9 dst_len -// + R10 dst_base + dst_len -// + R11 src_base -// + R12 src_len -// + R13 src_base + src_len -// - R14 used by doCopy -// - R15 used by doCopy -// -// The registers R8-R13 (marked with a "+") are set at the start of the -// function, and after a CALL returns, and are not otherwise modified. -// -// The d variable is implicitly R7 - R8, and len(dst)-d is R10 - R7. -// The s variable is implicitly R6 - R11, and len(src)-s is R13 - R6. -TEXT ·decode(SB), NOSPLIT, $56-56 - // Initialize R6, R7 and R8-R13. - MOVD dst_base+0(FP), R8 - MOVD dst_len+8(FP), R9 - MOVD R8, R7 - MOVD R8, R10 - ADD R9, R10, R10 - MOVD src_base+24(FP), R11 - MOVD src_len+32(FP), R12 - MOVD R11, R6 - MOVD R11, R13 - ADD R12, R13, R13 - -loop: - // for s < len(src) - CMP R13, R6 - BEQ end - - // R4 = uint32(src[s]) - // - // switch src[s] & 0x03 - MOVBU (R6), R4 - MOVW R4, R3 - ANDW $3, R3 - MOVW $1, R1 - CMPW R1, R3 - BGE tagCopy - - // ---------------------------------------- - // The code below handles literal tags. - - // case tagLiteral: - // x := uint32(src[s] >> 2) - // switch - MOVW $60, R1 - ADD R4>>2, ZR, R4 - CMPW R4, R1 - BLS tagLit60Plus - - // case x < 60: - // s++ - ADD $1, R6, R6 - -doLit: - // This is the end of the inner "switch", when we have a literal tag. - // - // We assume that R4 == x and x fits in a uint32, where x is the variable - // used in the pure Go decode_other.go code. - - // length = int(x) + 1 - // - // Unlike the pure Go code, we don't need to check if length <= 0 because - // R4 can hold 64 bits, so the increment cannot overflow. - ADD $1, R4, R4 - - // Prepare to check if copying length bytes will run past the end of dst or - // src. - // - // R2 = len(dst) - d - // R3 = len(src) - s - MOVD R10, R2 - SUB R7, R2, R2 - MOVD R13, R3 - SUB R6, R3, R3 - - // !!! Try a faster technique for short (16 or fewer bytes) copies. - // - // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 { - // goto callMemmove // Fall back on calling runtime·memmove. - // } - // - // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s - // against 21 instead of 16, because it cannot assume that all of its input - // is contiguous in memory and so it needs to leave enough source bytes to - // read the next tag without refilling buffers, but Go's Decode assumes - // contiguousness (the src argument is a []byte). - MOVD $16, R1 - CMP R1, R4 - BGT callMemmove - CMP R1, R2 - BLT callMemmove - CMP R1, R3 - BLT callMemmove - - // !!! Implement the copy from src to dst as a 16-byte load and store. - // (Decode's documentation says that dst and src must not overlap.) - // - // This always copies 16 bytes, instead of only length bytes, but that's - // OK. If the input is a valid Snappy encoding then subsequent iterations - // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a - // non-nil error), so the overrun will be ignored. - // - // Note that on arm64, it is legal and cheap to issue unaligned 8-byte or - // 16-byte loads and stores. This technique probably wouldn't be as - // effective on architectures that are fussier about alignment. - - VLD1 0(R6), [V0.B16] - VST1 [V0.B16], 0(R7) - - // d += length - // s += length - ADD R4, R7, R7 - ADD R4, R6, R6 - B loop - -callMemmove: - // if length > len(dst)-d || length > len(src)-s { etc } - CMP R2, R4 - BGT errCorrupt - CMP R3, R4 - BGT errCorrupt - - // copy(dst[d:], src[s:s+length]) - // - // This means calling runtime·memmove(&dst[d], &src[s], length), so we push - // R7, R6 and R4 as arguments. Coincidentally, we also need to spill those - // three registers to the stack, to save local variables across the CALL. - MOVD R7, 8(RSP) - MOVD R6, 16(RSP) - MOVD R4, 24(RSP) - MOVD R7, 32(RSP) - MOVD R6, 40(RSP) - MOVD R4, 48(RSP) - CALL runtime·memmove(SB) - - // Restore local variables: unspill registers from the stack and - // re-calculate R8-R13. - MOVD 32(RSP), R7 - MOVD 40(RSP), R6 - MOVD 48(RSP), R4 - MOVD dst_base+0(FP), R8 - MOVD dst_len+8(FP), R9 - MOVD R8, R10 - ADD R9, R10, R10 - MOVD src_base+24(FP), R11 - MOVD src_len+32(FP), R12 - MOVD R11, R13 - ADD R12, R13, R13 - - // d += length - // s += length - ADD R4, R7, R7 - ADD R4, R6, R6 - B loop - -tagLit60Plus: - // !!! This fragment does the - // - // s += x - 58; if uint(s) > uint(len(src)) { etc } - // - // checks. In the asm version, we code it once instead of once per switch case. - ADD R4, R6, R6 - SUB $58, R6, R6 - MOVD R6, R3 - SUB R11, R3, R3 - CMP R12, R3 - BGT errCorrupt - - // case x == 60: - MOVW $61, R1 - CMPW R1, R4 - BEQ tagLit61 - BGT tagLit62Plus - - // x = uint32(src[s-1]) - MOVBU -1(R6), R4 - B doLit - -tagLit61: - // case x == 61: - // x = uint32(src[s-2]) | uint32(src[s-1])<<8 - MOVHU -2(R6), R4 - B doLit - -tagLit62Plus: - MOVW $62, R1 - CMPW R1, R4 - BHI tagLit63 - - // case x == 62: - // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 - MOVHU -3(R6), R4 - MOVBU -1(R6), R3 - ORR R3<<16, R4 - B doLit - -tagLit63: - // case x == 63: - // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - MOVWU -4(R6), R4 - B doLit - - // The code above handles literal tags. - // ---------------------------------------- - // The code below handles copy tags. - -tagCopy4: - // case tagCopy4: - // s += 5 - ADD $5, R6, R6 - - // if uint(s) > uint(len(src)) { etc } - MOVD R6, R3 - SUB R11, R3, R3 - CMP R12, R3 - BGT errCorrupt - - // length = 1 + int(src[s-5])>>2 - MOVD $1, R1 - ADD R4>>2, R1, R4 - - // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) - MOVWU -4(R6), R5 - B doCopy - -tagCopy2: - // case tagCopy2: - // s += 3 - ADD $3, R6, R6 - - // if uint(s) > uint(len(src)) { etc } - MOVD R6, R3 - SUB R11, R3, R3 - CMP R12, R3 - BGT errCorrupt - - // length = 1 + int(src[s-3])>>2 - MOVD $1, R1 - ADD R4>>2, R1, R4 - - // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) - MOVHU -2(R6), R5 - B doCopy - -tagCopy: - // We have a copy tag. We assume that: - // - R3 == src[s] & 0x03 - // - R4 == src[s] - MOVD $2, R1 - CMP R1, R3 - BEQ tagCopy2 - BGT tagCopy4 - - // case tagCopy1: - // s += 2 - ADD $2, R6, R6 - - // if uint(s) > uint(len(src)) { etc } - MOVD R6, R3 - SUB R11, R3, R3 - CMP R12, R3 - BGT errCorrupt - - // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) - MOVD R4, R5 - AND $0xe0, R5 - MOVBU -1(R6), R3 - ORR R5<<3, R3, R5 - - // length = 4 + int(src[s-2])>>2&0x7 - MOVD $7, R1 - AND R4>>2, R1, R4 - ADD $4, R4, R4 - -doCopy: - // This is the end of the outer "switch", when we have a copy tag. - // - // We assume that: - // - R4 == length && R4 > 0 - // - R5 == offset - - // if offset <= 0 { etc } - MOVD $0, R1 - CMP R1, R5 - BLE errCorrupt - - // if d < offset { etc } - MOVD R7, R3 - SUB R8, R3, R3 - CMP R5, R3 - BLT errCorrupt - - // if length > len(dst)-d { etc } - MOVD R10, R3 - SUB R7, R3, R3 - CMP R3, R4 - BGT errCorrupt - - // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length - // - // Set: - // - R14 = len(dst)-d - // - R15 = &dst[d-offset] - MOVD R10, R14 - SUB R7, R14, R14 - MOVD R7, R15 - SUB R5, R15, R15 - - // !!! Try a faster technique for short (16 or fewer bytes) forward copies. - // - // First, try using two 8-byte load/stores, similar to the doLit technique - // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is - // still OK if offset >= 8. Note that this has to be two 8-byte load/stores - // and not one 16-byte load/store, and the first store has to be before the - // second load, due to the overlap if offset is in the range [8, 16). - // - // if length > 16 || offset < 8 || len(dst)-d < 16 { - // goto slowForwardCopy - // } - // copy 16 bytes - // d += length - MOVD $16, R1 - MOVD $8, R0 - CMP R1, R4 - BGT slowForwardCopy - CMP R0, R5 - BLT slowForwardCopy - CMP R1, R14 - BLT slowForwardCopy - MOVD 0(R15), R2 - MOVD R2, 0(R7) - MOVD 8(R15), R3 - MOVD R3, 8(R7) - ADD R4, R7, R7 - B loop - -slowForwardCopy: - // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we - // can still try 8-byte load stores, provided we can overrun up to 10 extra - // bytes. As above, the overrun will be fixed up by subsequent iterations - // of the outermost loop. - // - // The C++ snappy code calls this technique IncrementalCopyFastPath. Its - // commentary says: - // - // ---- - // - // The main part of this loop is a simple copy of eight bytes at a time - // until we've copied (at least) the requested amount of bytes. However, - // if d and d-offset are less than eight bytes apart (indicating a - // repeating pattern of length < 8), we first need to expand the pattern in - // order to get the correct results. For instance, if the buffer looks like - // this, with the eight-byte and patterns marked as - // intervals: - // - // abxxxxxxxxxxxx - // [------] d-offset - // [------] d - // - // a single eight-byte copy from to will repeat the pattern - // once, after which we can move two bytes without moving : - // - // ababxxxxxxxxxx - // [------] d-offset - // [------] d - // - // and repeat the exercise until the two no longer overlap. - // - // This allows us to do very well in the special case of one single byte - // repeated many times, without taking a big hit for more general cases. - // - // The worst case of extra writing past the end of the match occurs when - // offset == 1 and length == 1; the last copy will read from byte positions - // [0..7] and write to [4..11], whereas it was only supposed to write to - // position 1. Thus, ten excess bytes. - // - // ---- - // - // That "10 byte overrun" worst case is confirmed by Go's - // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy - // and finishSlowForwardCopy algorithm. - // - // if length > len(dst)-d-10 { - // goto verySlowForwardCopy - // } - SUB $10, R14, R14 - CMP R14, R4 - BGT verySlowForwardCopy - -makeOffsetAtLeast8: - // !!! As above, expand the pattern so that offset >= 8 and we can use - // 8-byte load/stores. - // - // for offset < 8 { - // copy 8 bytes from dst[d-offset:] to dst[d:] - // length -= offset - // d += offset - // offset += offset - // // The two previous lines together means that d-offset, and therefore - // // R15, is unchanged. - // } - MOVD $8, R1 - CMP R1, R5 - BGE fixUpSlowForwardCopy - MOVD (R15), R3 - MOVD R3, (R7) - SUB R5, R4, R4 - ADD R5, R7, R7 - ADD R5, R5, R5 - B makeOffsetAtLeast8 - -fixUpSlowForwardCopy: - // !!! Add length (which might be negative now) to d (implied by R7 being - // &dst[d]) so that d ends up at the right place when we jump back to the - // top of the loop. Before we do that, though, we save R7 to R2 so that, if - // length is positive, copying the remaining length bytes will write to the - // right place. - MOVD R7, R2 - ADD R4, R7, R7 - -finishSlowForwardCopy: - // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative - // length means that we overrun, but as above, that will be fixed up by - // subsequent iterations of the outermost loop. - MOVD $0, R1 - CMP R1, R4 - BLE loop - MOVD (R15), R3 - MOVD R3, (R2) - ADD $8, R15, R15 - ADD $8, R2, R2 - SUB $8, R4, R4 - B finishSlowForwardCopy - -verySlowForwardCopy: - // verySlowForwardCopy is a simple implementation of forward copy. In C - // parlance, this is a do/while loop instead of a while loop, since we know - // that length > 0. In Go syntax: - // - // for { - // dst[d] = dst[d - offset] - // d++ - // length-- - // if length == 0 { - // break - // } - // } - MOVB (R15), R3 - MOVB R3, (R7) - ADD $1, R15, R15 - ADD $1, R7, R7 - SUB $1, R4, R4 - MOVD $0, R1 - CMP R1, R4 - BNE verySlowForwardCopy - B loop - - // The code above handles copy tags. - // ---------------------------------------- - -end: - // This is the end of the "for s < len(src)". - // - // if d != len(dst) { etc } - CMP R10, R7 - BNE errCorrupt - - // return 0 - MOVD $0, ret+48(FP) - RET - -errCorrupt: - // return decodeErrCodeCorrupt - MOVD $1, R2 - MOVD R2, ret+48(FP) - RET diff --git a/backend/vendor/github.com/golang/snappy/decode_asm.go b/backend/vendor/github.com/golang/snappy/decode_asm.go deleted file mode 100644 index 27f5997a..00000000 --- a/backend/vendor/github.com/golang/snappy/decode_asm.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !appengine && gc && !noasm && (amd64 || arm64) -// +build !appengine -// +build gc -// +build !noasm -// +build amd64 arm64 - -package snappy - -// decode has the same semantics as in decode_other.go. -// -//go:noescape -func decode(dst, src []byte) int diff --git a/backend/vendor/github.com/golang/snappy/decode_other.go b/backend/vendor/github.com/golang/snappy/decode_other.go deleted file mode 100644 index 27df7bfe..00000000 --- a/backend/vendor/github.com/golang/snappy/decode_other.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (!amd64 && !arm64) || appengine || !gc || noasm -// +build !amd64,!arm64 appengine !gc noasm - -package snappy - -// decode writes the decoding of src to dst. It assumes that the varint-encoded -// length of the decompressed bytes has already been read, and that len(dst) -// equals that length. -// -// It returns 0 on success or a decodeErrCodeXxx error code on failure. -func decode(dst, src []byte) int { - var d, s, offset, length int - for s < len(src) { - switch src[s] & 0x03 { - case tagLiteral: - x := uint32(src[s] >> 2) - switch { - case x < 60: - s++ - case x == 60: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-1]) - case x == 61: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-2]) | uint32(src[s-1])<<8 - case x == 62: - s += 4 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 - case x == 63: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - } - length = int(x) + 1 - if length <= 0 { - return decodeErrCodeUnsupportedLiteralLength - } - if length > len(dst)-d || length > len(src)-s { - return decodeErrCodeCorrupt - } - copy(dst[d:], src[s:s+length]) - d += length - s += length - continue - - case tagCopy1: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - length = 4 + int(src[s-2])>>2&0x7 - offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) - - case tagCopy2: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - length = 1 + int(src[s-3])>>2 - offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) - - case tagCopy4: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - length = 1 + int(src[s-5])>>2 - offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) - } - - if offset <= 0 || d < offset || length > len(dst)-d { - return decodeErrCodeCorrupt - } - // Copy from an earlier sub-slice of dst to a later sub-slice. - // If no overlap, use the built-in copy: - if offset >= length { - copy(dst[d:d+length], dst[d-offset:]) - d += length - continue - } - - // Unlike the built-in copy function, this byte-by-byte copy always runs - // forwards, even if the slices overlap. Conceptually, this is: - // - // d += forwardCopy(dst[d:d+length], dst[d-offset:]) - // - // We align the slices into a and b and show the compiler they are the same size. - // This allows the loop to run without bounds checks. - a := dst[d : d+length] - b := dst[d-offset:] - b = b[:len(a)] - for i := range a { - a[i] = b[i] - } - d += length - } - if d != len(dst) { - return decodeErrCodeCorrupt - } - return 0 -} diff --git a/backend/vendor/github.com/golang/snappy/encode.go b/backend/vendor/github.com/golang/snappy/encode.go deleted file mode 100644 index 7f236570..00000000 --- a/backend/vendor/github.com/golang/snappy/encode.go +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package snappy - -import ( - "encoding/binary" - "errors" - "io" -) - -// Encode returns the encoded form of src. The returned slice may be a sub- -// slice of dst if dst was large enough to hold the entire encoded block. -// Otherwise, a newly allocated slice will be returned. -// -// The dst and src must not overlap. It is valid to pass a nil dst. -// -// Encode handles the Snappy block format, not the Snappy stream format. -func Encode(dst, src []byte) []byte { - if n := MaxEncodedLen(len(src)); n < 0 { - panic(ErrTooLarge) - } else if len(dst) < n { - dst = make([]byte, n) - } - - // The block starts with the varint-encoded length of the decompressed bytes. - d := binary.PutUvarint(dst, uint64(len(src))) - - for len(src) > 0 { - p := src - src = nil - if len(p) > maxBlockSize { - p, src = p[:maxBlockSize], p[maxBlockSize:] - } - if len(p) < minNonLiteralBlockSize { - d += emitLiteral(dst[d:], p) - } else { - d += encodeBlock(dst[d:], p) - } - } - return dst[:d] -} - -// inputMargin is the minimum number of extra input bytes to keep, inside -// encodeBlock's inner loop. On some architectures, this margin lets us -// implement a fast path for emitLiteral, where the copy of short (<= 16 byte) -// literals can be implemented as a single load to and store from a 16-byte -// register. That literal's actual length can be as short as 1 byte, so this -// can copy up to 15 bytes too much, but that's OK as subsequent iterations of -// the encoding loop will fix up the copy overrun, and this inputMargin ensures -// that we don't overrun the dst and src buffers. -const inputMargin = 16 - 1 - -// minNonLiteralBlockSize is the minimum size of the input to encodeBlock that -// could be encoded with a copy tag. This is the minimum with respect to the -// algorithm used by encodeBlock, not a minimum enforced by the file format. -// -// The encoded output must start with at least a 1 byte literal, as there are -// no previous bytes to copy. A minimal (1 byte) copy after that, generated -// from an emitCopy call in encodeBlock's main loop, would require at least -// another inputMargin bytes, for the reason above: we want any emitLiteral -// calls inside encodeBlock's main loop to use the fast path if possible, which -// requires being able to overrun by inputMargin bytes. Thus, -// minNonLiteralBlockSize equals 1 + 1 + inputMargin. -// -// The C++ code doesn't use this exact threshold, but it could, as discussed at -// https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion -// The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an -// optimization. It should not affect the encoded form. This is tested by -// TestSameEncodingAsCppShortCopies. -const minNonLiteralBlockSize = 1 + 1 + inputMargin - -// MaxEncodedLen returns the maximum length of a snappy block, given its -// uncompressed length. -// -// It will return a negative value if srcLen is too large to encode. -func MaxEncodedLen(srcLen int) int { - n := uint64(srcLen) - if n > 0xffffffff { - return -1 - } - // Compressed data can be defined as: - // compressed := item* literal* - // item := literal* copy - // - // The trailing literal sequence has a space blowup of at most 62/60 - // since a literal of length 60 needs one tag byte + one extra byte - // for length information. - // - // Item blowup is trickier to measure. Suppose the "copy" op copies - // 4 bytes of data. Because of a special check in the encoding code, - // we produce a 4-byte copy only if the offset is < 65536. Therefore - // the copy op takes 3 bytes to encode, and this type of item leads - // to at most the 62/60 blowup for representing literals. - // - // Suppose the "copy" op copies 5 bytes of data. If the offset is big - // enough, it will take 5 bytes to encode the copy op. Therefore the - // worst case here is a one-byte literal followed by a five-byte copy. - // That is, 6 bytes of input turn into 7 bytes of "compressed" data. - // - // This last factor dominates the blowup, so the final estimate is: - n = 32 + n + n/6 - if n > 0xffffffff { - return -1 - } - return int(n) -} - -var errClosed = errors.New("snappy: Writer is closed") - -// NewWriter returns a new Writer that compresses to w. -// -// The Writer returned does not buffer writes. There is no need to Flush or -// Close such a Writer. -// -// Deprecated: the Writer returned is not suitable for many small writes, only -// for few large writes. Use NewBufferedWriter instead, which is efficient -// regardless of the frequency and shape of the writes, and remember to Close -// that Writer when done. -func NewWriter(w io.Writer) *Writer { - return &Writer{ - w: w, - obuf: make([]byte, obufLen), - } -} - -// NewBufferedWriter returns a new Writer that compresses to w, using the -// framing format described at -// https://github.com/google/snappy/blob/master/framing_format.txt -// -// The Writer returned buffers writes. Users must call Close to guarantee all -// data has been forwarded to the underlying io.Writer. They may also call -// Flush zero or more times before calling Close. -func NewBufferedWriter(w io.Writer) *Writer { - return &Writer{ - w: w, - ibuf: make([]byte, 0, maxBlockSize), - obuf: make([]byte, obufLen), - } -} - -// Writer is an io.Writer that can write Snappy-compressed bytes. -// -// Writer handles the Snappy stream format, not the Snappy block format. -type Writer struct { - w io.Writer - err error - - // ibuf is a buffer for the incoming (uncompressed) bytes. - // - // Its use is optional. For backwards compatibility, Writers created by the - // NewWriter function have ibuf == nil, do not buffer incoming bytes, and - // therefore do not need to be Flush'ed or Close'd. - ibuf []byte - - // obuf is a buffer for the outgoing (compressed) bytes. - obuf []byte - - // wroteStreamHeader is whether we have written the stream header. - wroteStreamHeader bool -} - -// Reset discards the writer's state and switches the Snappy writer to write to -// w. This permits reusing a Writer rather than allocating a new one. -func (w *Writer) Reset(writer io.Writer) { - w.w = writer - w.err = nil - if w.ibuf != nil { - w.ibuf = w.ibuf[:0] - } - w.wroteStreamHeader = false -} - -// Write satisfies the io.Writer interface. -func (w *Writer) Write(p []byte) (nRet int, errRet error) { - if w.ibuf == nil { - // Do not buffer incoming bytes. This does not perform or compress well - // if the caller of Writer.Write writes many small slices. This - // behavior is therefore deprecated, but still supported for backwards - // compatibility with code that doesn't explicitly Flush or Close. - return w.write(p) - } - - // The remainder of this method is based on bufio.Writer.Write from the - // standard library. - - for len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil { - var n int - if len(w.ibuf) == 0 { - // Large write, empty buffer. - // Write directly from p to avoid copy. - n, _ = w.write(p) - } else { - n = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) - w.ibuf = w.ibuf[:len(w.ibuf)+n] - w.Flush() - } - nRet += n - p = p[n:] - } - if w.err != nil { - return nRet, w.err - } - n := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) - w.ibuf = w.ibuf[:len(w.ibuf)+n] - nRet += n - return nRet, nil -} - -func (w *Writer) write(p []byte) (nRet int, errRet error) { - if w.err != nil { - return 0, w.err - } - for len(p) > 0 { - obufStart := len(magicChunk) - if !w.wroteStreamHeader { - w.wroteStreamHeader = true - copy(w.obuf, magicChunk) - obufStart = 0 - } - - var uncompressed []byte - if len(p) > maxBlockSize { - uncompressed, p = p[:maxBlockSize], p[maxBlockSize:] - } else { - uncompressed, p = p, nil - } - checksum := crc(uncompressed) - - // Compress the buffer, discarding the result if the improvement - // isn't at least 12.5%. - compressed := Encode(w.obuf[obufHeaderLen:], uncompressed) - chunkType := uint8(chunkTypeCompressedData) - chunkLen := 4 + len(compressed) - obufEnd := obufHeaderLen + len(compressed) - if len(compressed) >= len(uncompressed)-len(uncompressed)/8 { - chunkType = chunkTypeUncompressedData - chunkLen = 4 + len(uncompressed) - obufEnd = obufHeaderLen - } - - // Fill in the per-chunk header that comes before the body. - w.obuf[len(magicChunk)+0] = chunkType - w.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0) - w.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8) - w.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16) - w.obuf[len(magicChunk)+4] = uint8(checksum >> 0) - w.obuf[len(magicChunk)+5] = uint8(checksum >> 8) - w.obuf[len(magicChunk)+6] = uint8(checksum >> 16) - w.obuf[len(magicChunk)+7] = uint8(checksum >> 24) - - if _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil { - w.err = err - return nRet, err - } - if chunkType == chunkTypeUncompressedData { - if _, err := w.w.Write(uncompressed); err != nil { - w.err = err - return nRet, err - } - } - nRet += len(uncompressed) - } - return nRet, nil -} - -// Flush flushes the Writer to its underlying io.Writer. -func (w *Writer) Flush() error { - if w.err != nil { - return w.err - } - if len(w.ibuf) == 0 { - return nil - } - w.write(w.ibuf) - w.ibuf = w.ibuf[:0] - return w.err -} - -// Close calls Flush and then closes the Writer. -func (w *Writer) Close() error { - w.Flush() - ret := w.err - if w.err == nil { - w.err = errClosed - } - return ret -} diff --git a/backend/vendor/github.com/golang/snappy/encode_amd64.s b/backend/vendor/github.com/golang/snappy/encode_amd64.s deleted file mode 100644 index adfd979f..00000000 --- a/backend/vendor/github.com/golang/snappy/encode_amd64.s +++ /dev/null @@ -1,730 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// The XXX lines assemble on Go 1.4, 1.5 and 1.7, but not 1.6, due to a -// Go toolchain regression. See https://github.com/golang/go/issues/15426 and -// https://github.com/golang/snappy/issues/29 -// -// As a workaround, the package was built with a known good assembler, and -// those instructions were disassembled by "objdump -d" to yield the -// 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 -// style comments, in AT&T asm syntax. Note that rsp here is a physical -// register, not Go/asm's SP pseudo-register (see https://golang.org/doc/asm). -// The instructions were then encoded as "BYTE $0x.." sequences, which assemble -// fine on Go 1.6. - -// The asm code generally follows the pure Go code in encode_other.go, except -// where marked with a "!!!". - -// ---------------------------------------------------------------------------- - -// func emitLiteral(dst, lit []byte) int -// -// All local variables fit into registers. The register allocation: -// - AX len(lit) -// - BX n -// - DX return value -// - DI &dst[i] -// - R10 &lit[0] -// -// The 24 bytes of stack space is to call runtime·memmove. -// -// The unusual register allocation of local variables, such as R10 for the -// source pointer, matches the allocation used at the call site in encodeBlock, -// which makes it easier to manually inline this function. -TEXT ·emitLiteral(SB), NOSPLIT, $24-56 - MOVQ dst_base+0(FP), DI - MOVQ lit_base+24(FP), R10 - MOVQ lit_len+32(FP), AX - MOVQ AX, DX - MOVL AX, BX - SUBL $1, BX - - CMPL BX, $60 - JLT oneByte - CMPL BX, $256 - JLT twoBytes - -threeBytes: - MOVB $0xf4, 0(DI) - MOVW BX, 1(DI) - ADDQ $3, DI - ADDQ $3, DX - JMP memmove - -twoBytes: - MOVB $0xf0, 0(DI) - MOVB BX, 1(DI) - ADDQ $2, DI - ADDQ $2, DX - JMP memmove - -oneByte: - SHLB $2, BX - MOVB BX, 0(DI) - ADDQ $1, DI - ADDQ $1, DX - -memmove: - MOVQ DX, ret+48(FP) - - // copy(dst[i:], lit) - // - // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push - // DI, R10 and AX as arguments. - MOVQ DI, 0(SP) - MOVQ R10, 8(SP) - MOVQ AX, 16(SP) - CALL runtime·memmove(SB) - RET - -// ---------------------------------------------------------------------------- - -// func emitCopy(dst []byte, offset, length int) int -// -// All local variables fit into registers. The register allocation: -// - AX length -// - SI &dst[0] -// - DI &dst[i] -// - R11 offset -// -// The unusual register allocation of local variables, such as R11 for the -// offset, matches the allocation used at the call site in encodeBlock, which -// makes it easier to manually inline this function. -TEXT ·emitCopy(SB), NOSPLIT, $0-48 - MOVQ dst_base+0(FP), DI - MOVQ DI, SI - MOVQ offset+24(FP), R11 - MOVQ length+32(FP), AX - -loop0: - // for length >= 68 { etc } - CMPL AX, $68 - JLT step1 - - // Emit a length 64 copy, encoded as 3 bytes. - MOVB $0xfe, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $64, AX - JMP loop0 - -step1: - // if length > 64 { etc } - CMPL AX, $64 - JLE step2 - - // Emit a length 60 copy, encoded as 3 bytes. - MOVB $0xee, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $60, AX - -step2: - // if length >= 12 || offset >= 2048 { goto step3 } - CMPL AX, $12 - JGE step3 - CMPL R11, $2048 - JGE step3 - - // Emit the remaining copy, encoded as 2 bytes. - MOVB R11, 1(DI) - SHRL $8, R11 - SHLB $5, R11 - SUBB $4, AX - SHLB $2, AX - ORB AX, R11 - ORB $1, R11 - MOVB R11, 0(DI) - ADDQ $2, DI - - // Return the number of bytes written. - SUBQ SI, DI - MOVQ DI, ret+40(FP) - RET - -step3: - // Emit the remaining copy, encoded as 3 bytes. - SUBL $1, AX - SHLB $2, AX - ORB $2, AX - MOVB AX, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - - // Return the number of bytes written. - SUBQ SI, DI - MOVQ DI, ret+40(FP) - RET - -// ---------------------------------------------------------------------------- - -// func extendMatch(src []byte, i, j int) int -// -// All local variables fit into registers. The register allocation: -// - DX &src[0] -// - SI &src[j] -// - R13 &src[len(src) - 8] -// - R14 &src[len(src)] -// - R15 &src[i] -// -// The unusual register allocation of local variables, such as R15 for a source -// pointer, matches the allocation used at the call site in encodeBlock, which -// makes it easier to manually inline this function. -TEXT ·extendMatch(SB), NOSPLIT, $0-48 - MOVQ src_base+0(FP), DX - MOVQ src_len+8(FP), R14 - MOVQ i+24(FP), R15 - MOVQ j+32(FP), SI - ADDQ DX, R14 - ADDQ DX, R15 - ADDQ DX, SI - MOVQ R14, R13 - SUBQ $8, R13 - -cmp8: - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - CMPQ SI, R13 - JA cmp1 - MOVQ (R15), AX - MOVQ (SI), BX - CMPQ AX, BX - JNE bsf - ADDQ $8, R15 - ADDQ $8, SI - JMP cmp8 - -bsf: - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. The BSF instruction finds the - // least significant 1 bit, the amd64 architecture is little-endian, and - // the shift by 3 converts a bit index to a byte index. - XORQ AX, BX - BSFQ BX, BX - SHRQ $3, BX - ADDQ BX, SI - - // Convert from &src[ret] to ret. - SUBQ DX, SI - MOVQ SI, ret+40(FP) - RET - -cmp1: - // In src's tail, compare 1 byte at a time. - CMPQ SI, R14 - JAE extendMatchEnd - MOVB (R15), AX - MOVB (SI), BX - CMPB AX, BX - JNE extendMatchEnd - ADDQ $1, R15 - ADDQ $1, SI - JMP cmp1 - -extendMatchEnd: - // Convert from &src[ret] to ret. - SUBQ DX, SI - MOVQ SI, ret+40(FP) - RET - -// ---------------------------------------------------------------------------- - -// func encodeBlock(dst, src []byte) (d int) -// -// All local variables fit into registers, other than "var table". The register -// allocation: -// - AX . . -// - BX . . -// - CX 56 shift (note that amd64 shifts by non-immediates must use CX). -// - DX 64 &src[0], tableSize -// - SI 72 &src[s] -// - DI 80 &dst[d] -// - R9 88 sLimit -// - R10 . &src[nextEmit] -// - R11 96 prevHash, currHash, nextHash, offset -// - R12 104 &src[base], skip -// - R13 . &src[nextS], &src[len(src) - 8] -// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x -// - R15 112 candidate -// -// The second column (56, 64, etc) is the stack offset to spill the registers -// when calling other functions. We could pack this slightly tighter, but it's -// simpler to have a dedicated spill map independent of the function called. -// -// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An -// extra 56 bytes, to call other functions, and an extra 64 bytes, to spill -// local variables (registers) during calls gives 32768 + 56 + 64 = 32888. -TEXT ·encodeBlock(SB), 0, $32888-56 - MOVQ dst_base+0(FP), DI - MOVQ src_base+24(FP), SI - MOVQ src_len+32(FP), R14 - - // shift, tableSize := uint32(32-8), 1<<8 - MOVQ $24, CX - MOVQ $256, DX - -calcShift: - // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { - // shift-- - // } - CMPQ DX, $16384 - JGE varTable - CMPQ DX, R14 - JGE varTable - SUBQ $1, CX - SHLQ $1, DX - JMP calcShift - -varTable: - // var table [maxTableSize]uint16 - // - // In the asm code, unlike the Go code, we can zero-initialize only the - // first tableSize elements. Each uint16 element is 2 bytes and each MOVOU - // writes 16 bytes, so we can do only tableSize/8 writes instead of the - // 2048 writes that would zero-initialize all of table's 32768 bytes. - SHRQ $3, DX - LEAQ table-32768(SP), BX - PXOR X0, X0 - -memclr: - MOVOU X0, 0(BX) - ADDQ $16, BX - SUBQ $1, DX - JNZ memclr - - // !!! DX = &src[0] - MOVQ SI, DX - - // sLimit := len(src) - inputMargin - MOVQ R14, R9 - SUBQ $15, R9 - - // !!! Pre-emptively spill CX, DX and R9 to the stack. Their values don't - // change for the rest of the function. - MOVQ CX, 56(SP) - MOVQ DX, 64(SP) - MOVQ R9, 88(SP) - - // nextEmit := 0 - MOVQ DX, R10 - - // s := 1 - ADDQ $1, SI - - // nextHash := hash(load32(src, s), shift) - MOVL 0(SI), R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - -outer: - // for { etc } - - // skip := 32 - MOVQ $32, R12 - - // nextS := s - MOVQ SI, R13 - - // candidate := 0 - MOVQ $0, R15 - -inner0: - // for { etc } - - // s := nextS - MOVQ R13, SI - - // bytesBetweenHashLookups := skip >> 5 - MOVQ R12, R14 - SHRQ $5, R14 - - // nextS = s + bytesBetweenHashLookups - ADDQ R14, R13 - - // skip += bytesBetweenHashLookups - ADDQ R14, R12 - - // if nextS > sLimit { goto emitRemainder } - MOVQ R13, AX - SUBQ DX, AX - CMPQ AX, R9 - JA emitRemainder - - // candidate = int(table[nextHash]) - // XXX: MOVWQZX table-32768(SP)(R11*2), R15 - // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 - BYTE $0x4e - BYTE $0x0f - BYTE $0xb7 - BYTE $0x7c - BYTE $0x5c - BYTE $0x78 - - // table[nextHash] = uint16(s) - MOVQ SI, AX - SUBQ DX, AX - - // XXX: MOVW AX, table-32768(SP)(R11*2) - // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) - BYTE $0x66 - BYTE $0x42 - BYTE $0x89 - BYTE $0x44 - BYTE $0x5c - BYTE $0x78 - - // nextHash = hash(load32(src, nextS), shift) - MOVL 0(R13), R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // if load32(src, s) != load32(src, candidate) { continue } break - MOVL 0(SI), AX - MOVL (DX)(R15*1), BX - CMPL AX, BX - JNE inner0 - -fourByteMatch: - // As per the encode_other.go code: - // - // A 4-byte match has been found. We'll later see etc. - - // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment - // on inputMargin in encode.go. - MOVQ SI, AX - SUBQ R10, AX - CMPQ AX, $16 - JLE emitLiteralFastPath - - // ---------------------------------------- - // Begin inline of the emitLiteral call. - // - // d += emitLiteral(dst[d:], src[nextEmit:s]) - - MOVL AX, BX - SUBL $1, BX - - CMPL BX, $60 - JLT inlineEmitLiteralOneByte - CMPL BX, $256 - JLT inlineEmitLiteralTwoBytes - -inlineEmitLiteralThreeBytes: - MOVB $0xf4, 0(DI) - MOVW BX, 1(DI) - ADDQ $3, DI - JMP inlineEmitLiteralMemmove - -inlineEmitLiteralTwoBytes: - MOVB $0xf0, 0(DI) - MOVB BX, 1(DI) - ADDQ $2, DI - JMP inlineEmitLiteralMemmove - -inlineEmitLiteralOneByte: - SHLB $2, BX - MOVB BX, 0(DI) - ADDQ $1, DI - -inlineEmitLiteralMemmove: - // Spill local variables (registers) onto the stack; call; unspill. - // - // copy(dst[i:], lit) - // - // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push - // DI, R10 and AX as arguments. - MOVQ DI, 0(SP) - MOVQ R10, 8(SP) - MOVQ AX, 16(SP) - ADDQ AX, DI // Finish the "d +=" part of "d += emitLiteral(etc)". - MOVQ SI, 72(SP) - MOVQ DI, 80(SP) - MOVQ R15, 112(SP) - CALL runtime·memmove(SB) - MOVQ 56(SP), CX - MOVQ 64(SP), DX - MOVQ 72(SP), SI - MOVQ 80(SP), DI - MOVQ 88(SP), R9 - MOVQ 112(SP), R15 - JMP inner1 - -inlineEmitLiteralEnd: - // End inline of the emitLiteral call. - // ---------------------------------------- - -emitLiteralFastPath: - // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2". - MOVB AX, BX - SUBB $1, BX - SHLB $2, BX - MOVB BX, (DI) - ADDQ $1, DI - - // !!! Implement the copy from lit to dst as a 16-byte load and store. - // (Encode's documentation says that dst and src must not overlap.) - // - // This always copies 16 bytes, instead of only len(lit) bytes, but that's - // OK. Subsequent iterations will fix up the overrun. - // - // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or - // 16-byte loads and stores. This technique probably wouldn't be as - // effective on architectures that are fussier about alignment. - MOVOU 0(R10), X0 - MOVOU X0, 0(DI) - ADDQ AX, DI - -inner1: - // for { etc } - - // base := s - MOVQ SI, R12 - - // !!! offset := base - candidate - MOVQ R12, R11 - SUBQ R15, R11 - SUBQ DX, R11 - - // ---------------------------------------- - // Begin inline of the extendMatch call. - // - // s = extendMatch(src, candidate+4, s+4) - - // !!! R14 = &src[len(src)] - MOVQ src_len+32(FP), R14 - ADDQ DX, R14 - - // !!! R13 = &src[len(src) - 8] - MOVQ R14, R13 - SUBQ $8, R13 - - // !!! R15 = &src[candidate + 4] - ADDQ $4, R15 - ADDQ DX, R15 - - // !!! s += 4 - ADDQ $4, SI - -inlineExtendMatchCmp8: - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - CMPQ SI, R13 - JA inlineExtendMatchCmp1 - MOVQ (R15), AX - MOVQ (SI), BX - CMPQ AX, BX - JNE inlineExtendMatchBSF - ADDQ $8, R15 - ADDQ $8, SI - JMP inlineExtendMatchCmp8 - -inlineExtendMatchBSF: - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. The BSF instruction finds the - // least significant 1 bit, the amd64 architecture is little-endian, and - // the shift by 3 converts a bit index to a byte index. - XORQ AX, BX - BSFQ BX, BX - SHRQ $3, BX - ADDQ BX, SI - JMP inlineExtendMatchEnd - -inlineExtendMatchCmp1: - // In src's tail, compare 1 byte at a time. - CMPQ SI, R14 - JAE inlineExtendMatchEnd - MOVB (R15), AX - MOVB (SI), BX - CMPB AX, BX - JNE inlineExtendMatchEnd - ADDQ $1, R15 - ADDQ $1, SI - JMP inlineExtendMatchCmp1 - -inlineExtendMatchEnd: - // End inline of the extendMatch call. - // ---------------------------------------- - - // ---------------------------------------- - // Begin inline of the emitCopy call. - // - // d += emitCopy(dst[d:], base-candidate, s-base) - - // !!! length := s - base - MOVQ SI, AX - SUBQ R12, AX - -inlineEmitCopyLoop0: - // for length >= 68 { etc } - CMPL AX, $68 - JLT inlineEmitCopyStep1 - - // Emit a length 64 copy, encoded as 3 bytes. - MOVB $0xfe, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $64, AX - JMP inlineEmitCopyLoop0 - -inlineEmitCopyStep1: - // if length > 64 { etc } - CMPL AX, $64 - JLE inlineEmitCopyStep2 - - // Emit a length 60 copy, encoded as 3 bytes. - MOVB $0xee, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $60, AX - -inlineEmitCopyStep2: - // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 } - CMPL AX, $12 - JGE inlineEmitCopyStep3 - CMPL R11, $2048 - JGE inlineEmitCopyStep3 - - // Emit the remaining copy, encoded as 2 bytes. - MOVB R11, 1(DI) - SHRL $8, R11 - SHLB $5, R11 - SUBB $4, AX - SHLB $2, AX - ORB AX, R11 - ORB $1, R11 - MOVB R11, 0(DI) - ADDQ $2, DI - JMP inlineEmitCopyEnd - -inlineEmitCopyStep3: - // Emit the remaining copy, encoded as 3 bytes. - SUBL $1, AX - SHLB $2, AX - ORB $2, AX - MOVB AX, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - -inlineEmitCopyEnd: - // End inline of the emitCopy call. - // ---------------------------------------- - - // nextEmit = s - MOVQ SI, R10 - - // if s >= sLimit { goto emitRemainder } - MOVQ SI, AX - SUBQ DX, AX - CMPQ AX, R9 - JAE emitRemainder - - // As per the encode_other.go code: - // - // We could immediately etc. - - // x := load64(src, s-1) - MOVQ -1(SI), R14 - - // prevHash := hash(uint32(x>>0), shift) - MOVL R14, R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // table[prevHash] = uint16(s-1) - MOVQ SI, AX - SUBQ DX, AX - SUBQ $1, AX - - // XXX: MOVW AX, table-32768(SP)(R11*2) - // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) - BYTE $0x66 - BYTE $0x42 - BYTE $0x89 - BYTE $0x44 - BYTE $0x5c - BYTE $0x78 - - // currHash := hash(uint32(x>>8), shift) - SHRQ $8, R14 - MOVL R14, R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // candidate = int(table[currHash]) - // XXX: MOVWQZX table-32768(SP)(R11*2), R15 - // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 - BYTE $0x4e - BYTE $0x0f - BYTE $0xb7 - BYTE $0x7c - BYTE $0x5c - BYTE $0x78 - - // table[currHash] = uint16(s) - ADDQ $1, AX - - // XXX: MOVW AX, table-32768(SP)(R11*2) - // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) - BYTE $0x66 - BYTE $0x42 - BYTE $0x89 - BYTE $0x44 - BYTE $0x5c - BYTE $0x78 - - // if uint32(x>>8) == load32(src, candidate) { continue } - MOVL (DX)(R15*1), BX - CMPL R14, BX - JEQ inner1 - - // nextHash = hash(uint32(x>>16), shift) - SHRQ $8, R14 - MOVL R14, R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // s++ - ADDQ $1, SI - - // break out of the inner1 for loop, i.e. continue the outer loop. - JMP outer - -emitRemainder: - // if nextEmit < len(src) { etc } - MOVQ src_len+32(FP), AX - ADDQ DX, AX - CMPQ R10, AX - JEQ encodeBlockEnd - - // d += emitLiteral(dst[d:], src[nextEmit:]) - // - // Push args. - MOVQ DI, 0(SP) - MOVQ $0, 8(SP) // Unnecessary, as the callee ignores it, but conservative. - MOVQ $0, 16(SP) // Unnecessary, as the callee ignores it, but conservative. - MOVQ R10, 24(SP) - SUBQ R10, AX - MOVQ AX, 32(SP) - MOVQ AX, 40(SP) // Unnecessary, as the callee ignores it, but conservative. - - // Spill local variables (registers) onto the stack; call; unspill. - MOVQ DI, 80(SP) - CALL ·emitLiteral(SB) - MOVQ 80(SP), DI - - // Finish the "d +=" part of "d += emitLiteral(etc)". - ADDQ 48(SP), DI - -encodeBlockEnd: - MOVQ dst_base+0(FP), AX - SUBQ AX, DI - MOVQ DI, d+48(FP) - RET diff --git a/backend/vendor/github.com/golang/snappy/encode_arm64.s b/backend/vendor/github.com/golang/snappy/encode_arm64.s deleted file mode 100644 index 1f565ee7..00000000 --- a/backend/vendor/github.com/golang/snappy/encode_arm64.s +++ /dev/null @@ -1,729 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// The asm code generally follows the pure Go code in encode_other.go, except -// where marked with a "!!!". - -// ---------------------------------------------------------------------------- - -// func emitLiteral(dst, lit []byte) int -// -// All local variables fit into registers. The register allocation: -// - R3 len(lit) -// - R4 n -// - R6 return value -// - R8 &dst[i] -// - R10 &lit[0] -// -// The 32 bytes of stack space is to call runtime·memmove. -// -// The unusual register allocation of local variables, such as R10 for the -// source pointer, matches the allocation used at the call site in encodeBlock, -// which makes it easier to manually inline this function. -TEXT ·emitLiteral(SB), NOSPLIT, $32-56 - MOVD dst_base+0(FP), R8 - MOVD lit_base+24(FP), R10 - MOVD lit_len+32(FP), R3 - MOVD R3, R6 - MOVW R3, R4 - SUBW $1, R4, R4 - - MOVW $60, R2 - CMPW R2, R4 - BLT oneByte - MOVW $256, R2 - CMPW R2, R4 - BLT twoBytes - -threeBytes: - MOVD $0xf4, R2 - MOVB R2, 0(R8) - MOVW R4, 1(R8) - ADD $3, R8, R8 - ADD $3, R6, R6 - B memmove - -twoBytes: - MOVD $0xf0, R2 - MOVB R2, 0(R8) - MOVB R4, 1(R8) - ADD $2, R8, R8 - ADD $2, R6, R6 - B memmove - -oneByte: - LSLW $2, R4, R4 - MOVB R4, 0(R8) - ADD $1, R8, R8 - ADD $1, R6, R6 - -memmove: - MOVD R6, ret+48(FP) - - // copy(dst[i:], lit) - // - // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push - // R8, R10 and R3 as arguments. - MOVD R8, 8(RSP) - MOVD R10, 16(RSP) - MOVD R3, 24(RSP) - CALL runtime·memmove(SB) - RET - -// ---------------------------------------------------------------------------- - -// func emitCopy(dst []byte, offset, length int) int -// -// All local variables fit into registers. The register allocation: -// - R3 length -// - R7 &dst[0] -// - R8 &dst[i] -// - R11 offset -// -// The unusual register allocation of local variables, such as R11 for the -// offset, matches the allocation used at the call site in encodeBlock, which -// makes it easier to manually inline this function. -TEXT ·emitCopy(SB), NOSPLIT, $0-48 - MOVD dst_base+0(FP), R8 - MOVD R8, R7 - MOVD offset+24(FP), R11 - MOVD length+32(FP), R3 - -loop0: - // for length >= 68 { etc } - MOVW $68, R2 - CMPW R2, R3 - BLT step1 - - // Emit a length 64 copy, encoded as 3 bytes. - MOVD $0xfe, R2 - MOVB R2, 0(R8) - MOVW R11, 1(R8) - ADD $3, R8, R8 - SUB $64, R3, R3 - B loop0 - -step1: - // if length > 64 { etc } - MOVD $64, R2 - CMP R2, R3 - BLE step2 - - // Emit a length 60 copy, encoded as 3 bytes. - MOVD $0xee, R2 - MOVB R2, 0(R8) - MOVW R11, 1(R8) - ADD $3, R8, R8 - SUB $60, R3, R3 - -step2: - // if length >= 12 || offset >= 2048 { goto step3 } - MOVD $12, R2 - CMP R2, R3 - BGE step3 - MOVW $2048, R2 - CMPW R2, R11 - BGE step3 - - // Emit the remaining copy, encoded as 2 bytes. - MOVB R11, 1(R8) - LSRW $3, R11, R11 - AND $0xe0, R11, R11 - SUB $4, R3, R3 - LSLW $2, R3 - AND $0xff, R3, R3 - ORRW R3, R11, R11 - ORRW $1, R11, R11 - MOVB R11, 0(R8) - ADD $2, R8, R8 - - // Return the number of bytes written. - SUB R7, R8, R8 - MOVD R8, ret+40(FP) - RET - -step3: - // Emit the remaining copy, encoded as 3 bytes. - SUB $1, R3, R3 - AND $0xff, R3, R3 - LSLW $2, R3, R3 - ORRW $2, R3, R3 - MOVB R3, 0(R8) - MOVW R11, 1(R8) - ADD $3, R8, R8 - - // Return the number of bytes written. - SUB R7, R8, R8 - MOVD R8, ret+40(FP) - RET - -// ---------------------------------------------------------------------------- - -// func extendMatch(src []byte, i, j int) int -// -// All local variables fit into registers. The register allocation: -// - R6 &src[0] -// - R7 &src[j] -// - R13 &src[len(src) - 8] -// - R14 &src[len(src)] -// - R15 &src[i] -// -// The unusual register allocation of local variables, such as R15 for a source -// pointer, matches the allocation used at the call site in encodeBlock, which -// makes it easier to manually inline this function. -TEXT ·extendMatch(SB), NOSPLIT, $0-48 - MOVD src_base+0(FP), R6 - MOVD src_len+8(FP), R14 - MOVD i+24(FP), R15 - MOVD j+32(FP), R7 - ADD R6, R14, R14 - ADD R6, R15, R15 - ADD R6, R7, R7 - MOVD R14, R13 - SUB $8, R13, R13 - -cmp8: - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - CMP R13, R7 - BHI cmp1 - MOVD (R15), R3 - MOVD (R7), R4 - CMP R4, R3 - BNE bsf - ADD $8, R15, R15 - ADD $8, R7, R7 - B cmp8 - -bsf: - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. - // RBIT reverses the bit order, then CLZ counts the leading zeros, the - // combination of which finds the least significant bit which is set. - // The arm64 architecture is little-endian, and the shift by 3 converts - // a bit index to a byte index. - EOR R3, R4, R4 - RBIT R4, R4 - CLZ R4, R4 - ADD R4>>3, R7, R7 - - // Convert from &src[ret] to ret. - SUB R6, R7, R7 - MOVD R7, ret+40(FP) - RET - -cmp1: - // In src's tail, compare 1 byte at a time. - CMP R7, R14 - BLS extendMatchEnd - MOVB (R15), R3 - MOVB (R7), R4 - CMP R4, R3 - BNE extendMatchEnd - ADD $1, R15, R15 - ADD $1, R7, R7 - B cmp1 - -extendMatchEnd: - // Convert from &src[ret] to ret. - SUB R6, R7, R7 - MOVD R7, ret+40(FP) - RET - -// ---------------------------------------------------------------------------- - -// func encodeBlock(dst, src []byte) (d int) -// -// All local variables fit into registers, other than "var table". The register -// allocation: -// - R3 . . -// - R4 . . -// - R5 64 shift -// - R6 72 &src[0], tableSize -// - R7 80 &src[s] -// - R8 88 &dst[d] -// - R9 96 sLimit -// - R10 . &src[nextEmit] -// - R11 104 prevHash, currHash, nextHash, offset -// - R12 112 &src[base], skip -// - R13 . &src[nextS], &src[len(src) - 8] -// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x -// - R15 120 candidate -// - R16 . hash constant, 0x1e35a7bd -// - R17 . &table -// - . 128 table -// -// The second column (64, 72, etc) is the stack offset to spill the registers -// when calling other functions. We could pack this slightly tighter, but it's -// simpler to have a dedicated spill map independent of the function called. -// -// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An -// extra 64 bytes, to call other functions, and an extra 64 bytes, to spill -// local variables (registers) during calls gives 32768 + 64 + 64 = 32896. -TEXT ·encodeBlock(SB), 0, $32896-56 - MOVD dst_base+0(FP), R8 - MOVD src_base+24(FP), R7 - MOVD src_len+32(FP), R14 - - // shift, tableSize := uint32(32-8), 1<<8 - MOVD $24, R5 - MOVD $256, R6 - MOVW $0xa7bd, R16 - MOVKW $(0x1e35<<16), R16 - -calcShift: - // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { - // shift-- - // } - MOVD $16384, R2 - CMP R2, R6 - BGE varTable - CMP R14, R6 - BGE varTable - SUB $1, R5, R5 - LSL $1, R6, R6 - B calcShift - -varTable: - // var table [maxTableSize]uint16 - // - // In the asm code, unlike the Go code, we can zero-initialize only the - // first tableSize elements. Each uint16 element is 2 bytes and each VST1 - // writes 64 bytes, so we can do only tableSize/32 writes instead of the - // 2048 writes that would zero-initialize all of table's 32768 bytes. - // This clear could overrun the first tableSize elements, but it won't - // overrun the allocated stack size. - ADD $128, RSP, R17 - MOVD R17, R4 - - // !!! R6 = &src[tableSize] - ADD R6<<1, R17, R6 - - // zero the SIMD registers - VEOR V0.B16, V0.B16, V0.B16 - VEOR V1.B16, V1.B16, V1.B16 - VEOR V2.B16, V2.B16, V2.B16 - VEOR V3.B16, V3.B16, V3.B16 - -memclr: - VST1.P [V0.B16, V1.B16, V2.B16, V3.B16], 64(R4) - CMP R4, R6 - BHI memclr - - // !!! R6 = &src[0] - MOVD R7, R6 - - // sLimit := len(src) - inputMargin - MOVD R14, R9 - SUB $15, R9, R9 - - // !!! Pre-emptively spill R5, R6 and R9 to the stack. Their values don't - // change for the rest of the function. - MOVD R5, 64(RSP) - MOVD R6, 72(RSP) - MOVD R9, 96(RSP) - - // nextEmit := 0 - MOVD R6, R10 - - // s := 1 - ADD $1, R7, R7 - - // nextHash := hash(load32(src, s), shift) - MOVW 0(R7), R11 - MULW R16, R11, R11 - LSRW R5, R11, R11 - -outer: - // for { etc } - - // skip := 32 - MOVD $32, R12 - - // nextS := s - MOVD R7, R13 - - // candidate := 0 - MOVD $0, R15 - -inner0: - // for { etc } - - // s := nextS - MOVD R13, R7 - - // bytesBetweenHashLookups := skip >> 5 - MOVD R12, R14 - LSR $5, R14, R14 - - // nextS = s + bytesBetweenHashLookups - ADD R14, R13, R13 - - // skip += bytesBetweenHashLookups - ADD R14, R12, R12 - - // if nextS > sLimit { goto emitRemainder } - MOVD R13, R3 - SUB R6, R3, R3 - CMP R9, R3 - BHI emitRemainder - - // candidate = int(table[nextHash]) - MOVHU 0(R17)(R11<<1), R15 - - // table[nextHash] = uint16(s) - MOVD R7, R3 - SUB R6, R3, R3 - - MOVH R3, 0(R17)(R11<<1) - - // nextHash = hash(load32(src, nextS), shift) - MOVW 0(R13), R11 - MULW R16, R11 - LSRW R5, R11, R11 - - // if load32(src, s) != load32(src, candidate) { continue } break - MOVW 0(R7), R3 - MOVW (R6)(R15*1), R4 - CMPW R4, R3 - BNE inner0 - -fourByteMatch: - // As per the encode_other.go code: - // - // A 4-byte match has been found. We'll later see etc. - - // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment - // on inputMargin in encode.go. - MOVD R7, R3 - SUB R10, R3, R3 - MOVD $16, R2 - CMP R2, R3 - BLE emitLiteralFastPath - - // ---------------------------------------- - // Begin inline of the emitLiteral call. - // - // d += emitLiteral(dst[d:], src[nextEmit:s]) - - MOVW R3, R4 - SUBW $1, R4, R4 - - MOVW $60, R2 - CMPW R2, R4 - BLT inlineEmitLiteralOneByte - MOVW $256, R2 - CMPW R2, R4 - BLT inlineEmitLiteralTwoBytes - -inlineEmitLiteralThreeBytes: - MOVD $0xf4, R1 - MOVB R1, 0(R8) - MOVW R4, 1(R8) - ADD $3, R8, R8 - B inlineEmitLiteralMemmove - -inlineEmitLiteralTwoBytes: - MOVD $0xf0, R1 - MOVB R1, 0(R8) - MOVB R4, 1(R8) - ADD $2, R8, R8 - B inlineEmitLiteralMemmove - -inlineEmitLiteralOneByte: - LSLW $2, R4, R4 - MOVB R4, 0(R8) - ADD $1, R8, R8 - -inlineEmitLiteralMemmove: - // Spill local variables (registers) onto the stack; call; unspill. - // - // copy(dst[i:], lit) - // - // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push - // R8, R10 and R3 as arguments. - MOVD R8, 8(RSP) - MOVD R10, 16(RSP) - MOVD R3, 24(RSP) - - // Finish the "d +=" part of "d += emitLiteral(etc)". - ADD R3, R8, R8 - MOVD R7, 80(RSP) - MOVD R8, 88(RSP) - MOVD R15, 120(RSP) - CALL runtime·memmove(SB) - MOVD 64(RSP), R5 - MOVD 72(RSP), R6 - MOVD 80(RSP), R7 - MOVD 88(RSP), R8 - MOVD 96(RSP), R9 - MOVD 120(RSP), R15 - B inner1 - -inlineEmitLiteralEnd: - // End inline of the emitLiteral call. - // ---------------------------------------- - -emitLiteralFastPath: - // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2". - MOVB R3, R4 - SUBW $1, R4, R4 - AND $0xff, R4, R4 - LSLW $2, R4, R4 - MOVB R4, (R8) - ADD $1, R8, R8 - - // !!! Implement the copy from lit to dst as a 16-byte load and store. - // (Encode's documentation says that dst and src must not overlap.) - // - // This always copies 16 bytes, instead of only len(lit) bytes, but that's - // OK. Subsequent iterations will fix up the overrun. - // - // Note that on arm64, it is legal and cheap to issue unaligned 8-byte or - // 16-byte loads and stores. This technique probably wouldn't be as - // effective on architectures that are fussier about alignment. - VLD1 0(R10), [V0.B16] - VST1 [V0.B16], 0(R8) - ADD R3, R8, R8 - -inner1: - // for { etc } - - // base := s - MOVD R7, R12 - - // !!! offset := base - candidate - MOVD R12, R11 - SUB R15, R11, R11 - SUB R6, R11, R11 - - // ---------------------------------------- - // Begin inline of the extendMatch call. - // - // s = extendMatch(src, candidate+4, s+4) - - // !!! R14 = &src[len(src)] - MOVD src_len+32(FP), R14 - ADD R6, R14, R14 - - // !!! R13 = &src[len(src) - 8] - MOVD R14, R13 - SUB $8, R13, R13 - - // !!! R15 = &src[candidate + 4] - ADD $4, R15, R15 - ADD R6, R15, R15 - - // !!! s += 4 - ADD $4, R7, R7 - -inlineExtendMatchCmp8: - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - CMP R13, R7 - BHI inlineExtendMatchCmp1 - MOVD (R15), R3 - MOVD (R7), R4 - CMP R4, R3 - BNE inlineExtendMatchBSF - ADD $8, R15, R15 - ADD $8, R7, R7 - B inlineExtendMatchCmp8 - -inlineExtendMatchBSF: - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. - // RBIT reverses the bit order, then CLZ counts the leading zeros, the - // combination of which finds the least significant bit which is set. - // The arm64 architecture is little-endian, and the shift by 3 converts - // a bit index to a byte index. - EOR R3, R4, R4 - RBIT R4, R4 - CLZ R4, R4 - ADD R4>>3, R7, R7 - B inlineExtendMatchEnd - -inlineExtendMatchCmp1: - // In src's tail, compare 1 byte at a time. - CMP R7, R14 - BLS inlineExtendMatchEnd - MOVB (R15), R3 - MOVB (R7), R4 - CMP R4, R3 - BNE inlineExtendMatchEnd - ADD $1, R15, R15 - ADD $1, R7, R7 - B inlineExtendMatchCmp1 - -inlineExtendMatchEnd: - // End inline of the extendMatch call. - // ---------------------------------------- - - // ---------------------------------------- - // Begin inline of the emitCopy call. - // - // d += emitCopy(dst[d:], base-candidate, s-base) - - // !!! length := s - base - MOVD R7, R3 - SUB R12, R3, R3 - -inlineEmitCopyLoop0: - // for length >= 68 { etc } - MOVW $68, R2 - CMPW R2, R3 - BLT inlineEmitCopyStep1 - - // Emit a length 64 copy, encoded as 3 bytes. - MOVD $0xfe, R1 - MOVB R1, 0(R8) - MOVW R11, 1(R8) - ADD $3, R8, R8 - SUBW $64, R3, R3 - B inlineEmitCopyLoop0 - -inlineEmitCopyStep1: - // if length > 64 { etc } - MOVW $64, R2 - CMPW R2, R3 - BLE inlineEmitCopyStep2 - - // Emit a length 60 copy, encoded as 3 bytes. - MOVD $0xee, R1 - MOVB R1, 0(R8) - MOVW R11, 1(R8) - ADD $3, R8, R8 - SUBW $60, R3, R3 - -inlineEmitCopyStep2: - // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 } - MOVW $12, R2 - CMPW R2, R3 - BGE inlineEmitCopyStep3 - MOVW $2048, R2 - CMPW R2, R11 - BGE inlineEmitCopyStep3 - - // Emit the remaining copy, encoded as 2 bytes. - MOVB R11, 1(R8) - LSRW $8, R11, R11 - LSLW $5, R11, R11 - SUBW $4, R3, R3 - AND $0xff, R3, R3 - LSLW $2, R3, R3 - ORRW R3, R11, R11 - ORRW $1, R11, R11 - MOVB R11, 0(R8) - ADD $2, R8, R8 - B inlineEmitCopyEnd - -inlineEmitCopyStep3: - // Emit the remaining copy, encoded as 3 bytes. - SUBW $1, R3, R3 - LSLW $2, R3, R3 - ORRW $2, R3, R3 - MOVB R3, 0(R8) - MOVW R11, 1(R8) - ADD $3, R8, R8 - -inlineEmitCopyEnd: - // End inline of the emitCopy call. - // ---------------------------------------- - - // nextEmit = s - MOVD R7, R10 - - // if s >= sLimit { goto emitRemainder } - MOVD R7, R3 - SUB R6, R3, R3 - CMP R3, R9 - BLS emitRemainder - - // As per the encode_other.go code: - // - // We could immediately etc. - - // x := load64(src, s-1) - MOVD -1(R7), R14 - - // prevHash := hash(uint32(x>>0), shift) - MOVW R14, R11 - MULW R16, R11, R11 - LSRW R5, R11, R11 - - // table[prevHash] = uint16(s-1) - MOVD R7, R3 - SUB R6, R3, R3 - SUB $1, R3, R3 - - MOVHU R3, 0(R17)(R11<<1) - - // currHash := hash(uint32(x>>8), shift) - LSR $8, R14, R14 - MOVW R14, R11 - MULW R16, R11, R11 - LSRW R5, R11, R11 - - // candidate = int(table[currHash]) - MOVHU 0(R17)(R11<<1), R15 - - // table[currHash] = uint16(s) - ADD $1, R3, R3 - MOVHU R3, 0(R17)(R11<<1) - - // if uint32(x>>8) == load32(src, candidate) { continue } - MOVW (R6)(R15*1), R4 - CMPW R4, R14 - BEQ inner1 - - // nextHash = hash(uint32(x>>16), shift) - LSR $8, R14, R14 - MOVW R14, R11 - MULW R16, R11, R11 - LSRW R5, R11, R11 - - // s++ - ADD $1, R7, R7 - - // break out of the inner1 for loop, i.e. continue the outer loop. - B outer - -emitRemainder: - // if nextEmit < len(src) { etc } - MOVD src_len+32(FP), R3 - ADD R6, R3, R3 - CMP R3, R10 - BEQ encodeBlockEnd - - // d += emitLiteral(dst[d:], src[nextEmit:]) - // - // Push args. - MOVD R8, 8(RSP) - MOVD $0, 16(RSP) // Unnecessary, as the callee ignores it, but conservative. - MOVD $0, 24(RSP) // Unnecessary, as the callee ignores it, but conservative. - MOVD R10, 32(RSP) - SUB R10, R3, R3 - MOVD R3, 40(RSP) - MOVD R3, 48(RSP) // Unnecessary, as the callee ignores it, but conservative. - - // Spill local variables (registers) onto the stack; call; unspill. - MOVD R8, 88(RSP) - CALL ·emitLiteral(SB) - MOVD 88(RSP), R8 - - // Finish the "d +=" part of "d += emitLiteral(etc)". - MOVD 56(RSP), R1 - ADD R1, R8, R8 - -encodeBlockEnd: - MOVD dst_base+0(FP), R3 - SUB R3, R8, R8 - MOVD R8, d+48(FP) - RET diff --git a/backend/vendor/github.com/golang/snappy/encode_asm.go b/backend/vendor/github.com/golang/snappy/encode_asm.go deleted file mode 100644 index 0bef69b7..00000000 --- a/backend/vendor/github.com/golang/snappy/encode_asm.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !appengine && gc && !noasm && (amd64 || arm64) -// +build !appengine -// +build gc -// +build !noasm -// +build amd64 arm64 - -package snappy - -// emitLiteral has the same semantics as in encode_other.go. -// -//go:noescape -func emitLiteral(dst, lit []byte) int - -// emitCopy has the same semantics as in encode_other.go. -// -//go:noescape -func emitCopy(dst []byte, offset, length int) int - -// extendMatch has the same semantics as in encode_other.go. -// -//go:noescape -func extendMatch(src []byte, i, j int) int - -// encodeBlock has the same semantics as in encode_other.go. -// -//go:noescape -func encodeBlock(dst, src []byte) (d int) diff --git a/backend/vendor/github.com/golang/snappy/encode_other.go b/backend/vendor/github.com/golang/snappy/encode_other.go deleted file mode 100644 index d7c9305c..00000000 --- a/backend/vendor/github.com/golang/snappy/encode_other.go +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (!amd64 && !arm64) || appengine || !gc || noasm -// +build !amd64,!arm64 appengine !gc noasm - -package snappy - -func load32(b []byte, i int) uint32 { - b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func load64(b []byte, i int) uint64 { - b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -// emitLiteral writes a literal chunk and returns the number of bytes written. -// -// It assumes that: -// -// dst is long enough to hold the encoded bytes -// 1 <= len(lit) && len(lit) <= 65536 -func emitLiteral(dst, lit []byte) int { - i, n := 0, uint(len(lit)-1) - switch { - case n < 60: - dst[0] = uint8(n)<<2 | tagLiteral - i = 1 - case n < 1<<8: - dst[0] = 60<<2 | tagLiteral - dst[1] = uint8(n) - i = 2 - default: - dst[0] = 61<<2 | tagLiteral - dst[1] = uint8(n) - dst[2] = uint8(n >> 8) - i = 3 - } - return i + copy(dst[i:], lit) -} - -// emitCopy writes a copy chunk and returns the number of bytes written. -// -// It assumes that: -// -// dst is long enough to hold the encoded bytes -// 1 <= offset && offset <= 65535 -// 4 <= length && length <= 65535 -func emitCopy(dst []byte, offset, length int) int { - i := 0 - // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The - // threshold for this loop is a little higher (at 68 = 64 + 4), and the - // length emitted down below is is a little lower (at 60 = 64 - 4), because - // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed - // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as - // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as - // 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a - // tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an - // encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1. - for length >= 68 { - // Emit a length 64 copy, encoded as 3 bytes. - dst[i+0] = 63<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - i += 3 - length -= 64 - } - if length > 64 { - // Emit a length 60 copy, encoded as 3 bytes. - dst[i+0] = 59<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - i += 3 - length -= 60 - } - if length >= 12 || offset >= 2048 { - // Emit the remaining copy, encoded as 3 bytes. - dst[i+0] = uint8(length-1)<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - return i + 3 - } - // Emit the remaining copy, encoded as 2 bytes. - dst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1 - dst[i+1] = uint8(offset) - return i + 2 -} - -// extendMatch returns the largest k such that k <= len(src) and that -// src[i:i+k-j] and src[j:k] have the same contents. -// -// It assumes that: -// -// 0 <= i && i < j && j <= len(src) -func extendMatch(src []byte, i, j int) int { - for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { - } - return j -} - -func hash(u, shift uint32) uint32 { - return (u * 0x1e35a7bd) >> shift -} - -// encodeBlock encodes a non-empty src to a guaranteed-large-enough dst. It -// assumes that the varint-encoded length of the decompressed bytes has already -// been written. -// -// It also assumes that: -// -// len(dst) >= MaxEncodedLen(len(src)) && -// minNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize -func encodeBlock(dst, src []byte) (d int) { - // Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive. - // The table element type is uint16, as s < sLimit and sLimit < len(src) - // and len(src) <= maxBlockSize and maxBlockSize == 65536. - const ( - maxTableSize = 1 << 14 - // tableMask is redundant, but helps the compiler eliminate bounds - // checks. - tableMask = maxTableSize - 1 - ) - shift := uint32(32 - 8) - for tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { - shift-- - } - // In Go, all array elements are zero-initialized, so there is no advantage - // to a smaller tableSize per se. However, it matches the C++ algorithm, - // and in the asm versions of this code, we can get away with zeroing only - // the first tableSize elements. - var table [maxTableSize]uint16 - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := len(src) - inputMargin - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := 0 - - // The encoded form must start with a literal, as there are no previous - // bytes to copy, so we start looking for hash matches at s == 1. - s := 1 - nextHash := hash(load32(src, s), shift) - - for { - // Copied from the C++ snappy implementation: - // - // Heuristic match skipping: If 32 bytes are scanned with no matches - // found, start looking only at every other byte. If 32 more bytes are - // scanned (or skipped), look at every third byte, etc.. When a match - // is found, immediately go back to looking at every byte. This is a - // small loss (~5% performance, ~0.1% density) for compressible data - // due to more bookkeeping, but for non-compressible data (such as - // JPEG) it's a huge win since the compressor quickly "realizes" the - // data is incompressible and doesn't bother looking for matches - // everywhere. - // - // The "skip" variable keeps track of how many bytes there are since - // the last match; dividing it by 32 (ie. right-shifting by five) gives - // the number of bytes to move ahead for each iteration. - skip := 32 - - nextS := s - candidate := 0 - for { - s = nextS - bytesBetweenHashLookups := skip >> 5 - nextS = s + bytesBetweenHashLookups - skip += bytesBetweenHashLookups - if nextS > sLimit { - goto emitRemainder - } - candidate = int(table[nextHash&tableMask]) - table[nextHash&tableMask] = uint16(s) - nextHash = hash(load32(src, nextS), shift) - if load32(src, s) == load32(src, candidate) { - break - } - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - d += emitLiteral(dst[d:], src[nextEmit:s]) - - // Call emitCopy, and then see if another emitCopy could be our next - // move. Repeat until we find no match for the input immediately after - // what was consumed by the last emitCopy call. - // - // If we exit this loop normally then we need to call emitLiteral next, - // though we don't yet know how big the literal will be. We handle that - // by proceeding to the next iteration of the main loop. We also can - // exit this loop via goto if we get close to exhausting the input. - for { - // Invariant: we have a 4-byte match at s, and no need to emit any - // literal bytes prior to s. - base := s - - // Extend the 4-byte match as long as possible. - // - // This is an inlined version of: - // s = extendMatch(src, candidate+4, s+4) - s += 4 - for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 { - } - - d += emitCopy(dst[d:], base-candidate, s-base) - nextEmit = s - if s >= sLimit { - goto emitRemainder - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-1 and at s. If - // another emitCopy is not our next move, also calculate nextHash - // at s+1. At least on GOARCH=amd64, these three hash calculations - // are faster as one load64 call (with some shifts) instead of - // three load32 calls. - x := load64(src, s-1) - prevHash := hash(uint32(x>>0), shift) - table[prevHash&tableMask] = uint16(s - 1) - currHash := hash(uint32(x>>8), shift) - candidate = int(table[currHash&tableMask]) - table[currHash&tableMask] = uint16(s) - if uint32(x>>8) != load32(src, candidate) { - nextHash = hash(uint32(x>>16), shift) - s++ - break - } - } - } - -emitRemainder: - if nextEmit < len(src) { - d += emitLiteral(dst[d:], src[nextEmit:]) - } - return d -} diff --git a/backend/vendor/github.com/golang/snappy/snappy.go b/backend/vendor/github.com/golang/snappy/snappy.go deleted file mode 100644 index ece692ea..00000000 --- a/backend/vendor/github.com/golang/snappy/snappy.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package snappy implements the Snappy compression format. It aims for very -// high speeds and reasonable compression. -// -// There are actually two Snappy formats: block and stream. They are related, -// but different: trying to decompress block-compressed data as a Snappy stream -// will fail, and vice versa. The block format is the Decode and Encode -// functions and the stream format is the Reader and Writer types. -// -// The block format, the more common case, is used when the complete size (the -// number of bytes) of the original data is known upfront, at the time -// compression starts. The stream format, also known as the framing format, is -// for when that isn't always true. -// -// The canonical, C++ implementation is at https://github.com/google/snappy and -// it only implements the block format. -package snappy // import "github.com/golang/snappy" - -import ( - "hash/crc32" -) - -/* -Each encoded block begins with the varint-encoded length of the decoded data, -followed by a sequence of chunks. Chunks begin and end on byte boundaries. The -first byte of each chunk is broken into its 2 least and 6 most significant bits -called l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag. -Zero means a literal tag. All other values mean a copy tag. - -For literal tags: - - If m < 60, the next 1 + m bytes are literal bytes. - - Otherwise, let n be the little-endian unsigned integer denoted by the next - m - 59 bytes. The next 1 + n bytes after that are literal bytes. - -For copy tags, length bytes are copied from offset bytes ago, in the style of -Lempel-Ziv compression algorithms. In particular: - - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12). - The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10 - of the offset. The next byte is bits 0-7 of the offset. - - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65). - The length is 1 + m. The offset is the little-endian unsigned integer - denoted by the next 2 bytes. - - For l == 3, this tag is a legacy format that is no longer issued by most - encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in - [1, 65). The length is 1 + m. The offset is the little-endian unsigned - integer denoted by the next 4 bytes. -*/ -const ( - tagLiteral = 0x00 - tagCopy1 = 0x01 - tagCopy2 = 0x02 - tagCopy4 = 0x03 -) - -const ( - checksumSize = 4 - chunkHeaderSize = 4 - magicChunk = "\xff\x06\x00\x00" + magicBody - magicBody = "sNaPpY" - - // maxBlockSize is the maximum size of the input to encodeBlock. It is not - // part of the wire format per se, but some parts of the encoder assume - // that an offset fits into a uint16. - // - // Also, for the framing format (Writer type instead of Encode function), - // https://github.com/google/snappy/blob/master/framing_format.txt says - // that "the uncompressed data in a chunk must be no longer than 65536 - // bytes". - maxBlockSize = 65536 - - // maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), but is - // hard coded to be a const instead of a variable, so that obufLen can also - // be a const. Their equivalence is confirmed by - // TestMaxEncodedLenOfMaxBlockSize. - maxEncodedLenOfMaxBlockSize = 76490 - - obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize - obufLen = obufHeaderLen + maxEncodedLenOfMaxBlockSize -) - -const ( - chunkTypeCompressedData = 0x00 - chunkTypeUncompressedData = 0x01 - chunkTypePadding = 0xfe - chunkTypeStreamIdentifier = 0xff -) - -var crcTable = crc32.MakeTable(crc32.Castagnoli) - -// crc implements the checksum specified in section 3 of -// https://github.com/google/snappy/blob/master/framing_format.txt -func crc(b []byte) uint32 { - c := crc32.Update(0, crcTable, b) - return uint32(c>>15|c<<17) + 0xa282ead8 -} diff --git a/backend/vendor/github.com/gorilla/mux/AUTHORS b/backend/vendor/github.com/gorilla/mux/AUTHORS deleted file mode 100644 index b722392e..00000000 --- a/backend/vendor/github.com/gorilla/mux/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -# This is the official list of gorilla/mux authors for copyright purposes. -# -# Please keep the list sorted. - -Google LLC (https://opensource.google.com/) -Kamil Kisielk -Matt Silverlock -Rodrigo Moraes (https://github.com/moraes) diff --git a/backend/vendor/github.com/gorilla/mux/LICENSE b/backend/vendor/github.com/gorilla/mux/LICENSE deleted file mode 100644 index 6903df63..00000000 --- a/backend/vendor/github.com/gorilla/mux/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2012-2018 The Gorilla Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/gorilla/mux/README.md b/backend/vendor/github.com/gorilla/mux/README.md deleted file mode 100644 index 35eea9f1..00000000 --- a/backend/vendor/github.com/gorilla/mux/README.md +++ /dev/null @@ -1,805 +0,0 @@ -# gorilla/mux - -[![GoDoc](https://godoc.org/github.com/gorilla/mux?status.svg)](https://godoc.org/github.com/gorilla/mux) -[![CircleCI](https://circleci.com/gh/gorilla/mux.svg?style=svg)](https://circleci.com/gh/gorilla/mux) -[![Sourcegraph](https://sourcegraph.com/github.com/gorilla/mux/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/mux?badge) - -![Gorilla Logo](https://cloud-cdn.questionable.services/gorilla-icon-64.png) - -https://www.gorillatoolkit.org/pkg/mux - -Package `gorilla/mux` implements a request router and dispatcher for matching incoming requests to -their respective handler. - -The name mux stands for "HTTP request multiplexer". Like the standard `http.ServeMux`, `mux.Router` matches incoming requests against a list of registered routes and calls a handler for the route that matches the URL or other conditions. The main features are: - -* It implements the `http.Handler` interface so it is compatible with the standard `http.ServeMux`. -* Requests can be matched based on URL host, path, path prefix, schemes, header and query values, HTTP methods or using custom matchers. -* URL hosts, paths and query values can have variables with an optional regular expression. -* Registered URLs can be built, or "reversed", which helps maintaining references to resources. -* Routes can be used as subrouters: nested routes are only tested if the parent route matches. This is useful to define groups of routes that share common conditions like a host, a path prefix or other repeated attributes. As a bonus, this optimizes request matching. - ---- - -* [Install](#install) -* [Examples](#examples) -* [Matching Routes](#matching-routes) -* [Static Files](#static-files) -* [Serving Single Page Applications](#serving-single-page-applications) (e.g. React, Vue, Ember.js, etc.) -* [Registered URLs](#registered-urls) -* [Walking Routes](#walking-routes) -* [Graceful Shutdown](#graceful-shutdown) -* [Middleware](#middleware) -* [Handling CORS Requests](#handling-cors-requests) -* [Testing Handlers](#testing-handlers) -* [Full Example](#full-example) - ---- - -## Install - -With a [correctly configured](https://golang.org/doc/install#testing) Go toolchain: - -```sh -go get -u github.com/gorilla/mux -``` - -## Examples - -Let's start registering a couple of URL paths and handlers: - -```go -func main() { - r := mux.NewRouter() - r.HandleFunc("/", HomeHandler) - r.HandleFunc("/products", ProductsHandler) - r.HandleFunc("/articles", ArticlesHandler) - http.Handle("/", r) -} -``` - -Here we register three routes mapping URL paths to handlers. This is equivalent to how `http.HandleFunc()` works: if an incoming request URL matches one of the paths, the corresponding handler is called passing (`http.ResponseWriter`, `*http.Request`) as parameters. - -Paths can have variables. They are defined using the format `{name}` or `{name:pattern}`. If a regular expression pattern is not defined, the matched variable will be anything until the next slash. For example: - -```go -r := mux.NewRouter() -r.HandleFunc("/products/{key}", ProductHandler) -r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) -r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) -``` - -The names are used to create a map of route variables which can be retrieved calling `mux.Vars()`: - -```go -func ArticlesCategoryHandler(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - w.WriteHeader(http.StatusOK) - fmt.Fprintf(w, "Category: %v\n", vars["category"]) -} -``` - -And this is all you need to know about the basic usage. More advanced options are explained below. - -### Matching Routes - -Routes can also be restricted to a domain or subdomain. Just define a host pattern to be matched. They can also have variables: - -```go -r := mux.NewRouter() -// Only matches if domain is "www.example.com". -r.Host("www.example.com") -// Matches a dynamic subdomain. -r.Host("{subdomain:[a-z]+}.example.com") -``` - -There are several other matchers that can be added. To match path prefixes: - -```go -r.PathPrefix("/products/") -``` - -...or HTTP methods: - -```go -r.Methods("GET", "POST") -``` - -...or URL schemes: - -```go -r.Schemes("https") -``` - -...or header values: - -```go -r.Headers("X-Requested-With", "XMLHttpRequest") -``` - -...or query values: - -```go -r.Queries("key", "value") -``` - -...or to use a custom matcher function: - -```go -r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { - return r.ProtoMajor == 0 -}) -``` - -...and finally, it is possible to combine several matchers in a single route: - -```go -r.HandleFunc("/products", ProductsHandler). - Host("www.example.com"). - Methods("GET"). - Schemes("http") -``` - -Routes are tested in the order they were added to the router. If two routes match, the first one wins: - -```go -r := mux.NewRouter() -r.HandleFunc("/specific", specificHandler) -r.PathPrefix("/").Handler(catchAllHandler) -``` - -Setting the same matching conditions again and again can be boring, so we have a way to group several routes that share the same requirements. We call it "subrouting". - -For example, let's say we have several URLs that should only match when the host is `www.example.com`. Create a route for that host and get a "subrouter" from it: - -```go -r := mux.NewRouter() -s := r.Host("www.example.com").Subrouter() -``` - -Then register routes in the subrouter: - -```go -s.HandleFunc("/products/", ProductsHandler) -s.HandleFunc("/products/{key}", ProductHandler) -s.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) -``` - -The three URL paths we registered above will only be tested if the domain is `www.example.com`, because the subrouter is tested first. This is not only convenient, but also optimizes request matching. You can create subrouters combining any attribute matchers accepted by a route. - -Subrouters can be used to create domain or path "namespaces": you define subrouters in a central place and then parts of the app can register its paths relatively to a given subrouter. - -There's one more thing about subroutes. When a subrouter has a path prefix, the inner routes use it as base for their paths: - -```go -r := mux.NewRouter() -s := r.PathPrefix("/products").Subrouter() -// "/products/" -s.HandleFunc("/", ProductsHandler) -// "/products/{key}/" -s.HandleFunc("/{key}/", ProductHandler) -// "/products/{key}/details" -s.HandleFunc("/{key}/details", ProductDetailsHandler) -``` - - -### Static Files - -Note that the path provided to `PathPrefix()` represents a "wildcard": calling -`PathPrefix("/static/").Handler(...)` means that the handler will be passed any -request that matches "/static/\*". This makes it easy to serve static files with mux: - -```go -func main() { - var dir string - - flag.StringVar(&dir, "dir", ".", "the directory to serve files from. Defaults to the current dir") - flag.Parse() - r := mux.NewRouter() - - // This will serve files under http://localhost:8000/static/ - r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(dir)))) - - srv := &http.Server{ - Handler: r, - Addr: "127.0.0.1:8000", - // Good practice: enforce timeouts for servers you create! - WriteTimeout: 15 * time.Second, - ReadTimeout: 15 * time.Second, - } - - log.Fatal(srv.ListenAndServe()) -} -``` - -### Serving Single Page Applications - -Most of the time it makes sense to serve your SPA on a separate web server from your API, -but sometimes it's desirable to serve them both from one place. It's possible to write a simple -handler for serving your SPA (for use with React Router's [BrowserRouter](https://reacttraining.com/react-router/web/api/BrowserRouter) for example), and leverage -mux's powerful routing for your API endpoints. - -```go -package main - -import ( - "encoding/json" - "log" - "net/http" - "os" - "path/filepath" - "time" - - "github.com/gorilla/mux" -) - -// spaHandler implements the http.Handler interface, so we can use it -// to respond to HTTP requests. The path to the static directory and -// path to the index file within that static directory are used to -// serve the SPA in the given static directory. -type spaHandler struct { - staticPath string - indexPath string -} - -// ServeHTTP inspects the URL path to locate a file within the static dir -// on the SPA handler. If a file is found, it will be served. If not, the -// file located at the index path on the SPA handler will be served. This -// is suitable behavior for serving an SPA (single page application). -func (h spaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - // get the absolute path to prevent directory traversal - path, err := filepath.Abs(r.URL.Path) - if err != nil { - // if we failed to get the absolute path respond with a 400 bad request - // and stop - http.Error(w, err.Error(), http.StatusBadRequest) - return - } - - // prepend the path with the path to the static directory - path = filepath.Join(h.staticPath, path) - - // check whether a file exists at the given path - _, err = os.Stat(path) - if os.IsNotExist(err) { - // file does not exist, serve index.html - http.ServeFile(w, r, filepath.Join(h.staticPath, h.indexPath)) - return - } else if err != nil { - // if we got an error (that wasn't that the file doesn't exist) stating the - // file, return a 500 internal server error and stop - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - // otherwise, use http.FileServer to serve the static dir - http.FileServer(http.Dir(h.staticPath)).ServeHTTP(w, r) -} - -func main() { - router := mux.NewRouter() - - router.HandleFunc("/api/health", func(w http.ResponseWriter, r *http.Request) { - // an example API handler - json.NewEncoder(w).Encode(map[string]bool{"ok": true}) - }) - - spa := spaHandler{staticPath: "build", indexPath: "index.html"} - router.PathPrefix("/").Handler(spa) - - srv := &http.Server{ - Handler: router, - Addr: "127.0.0.1:8000", - // Good practice: enforce timeouts for servers you create! - WriteTimeout: 15 * time.Second, - ReadTimeout: 15 * time.Second, - } - - log.Fatal(srv.ListenAndServe()) -} -``` - -### Registered URLs - -Now let's see how to build registered URLs. - -Routes can be named. All routes that define a name can have their URLs built, or "reversed". We define a name calling `Name()` on a route. For example: - -```go -r := mux.NewRouter() -r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). - Name("article") -``` - -To build a URL, get the route and call the `URL()` method, passing a sequence of key/value pairs for the route variables. For the previous route, we would do: - -```go -url, err := r.Get("article").URL("category", "technology", "id", "42") -``` - -...and the result will be a `url.URL` with the following path: - -``` -"/articles/technology/42" -``` - -This also works for host and query value variables: - -```go -r := mux.NewRouter() -r.Host("{subdomain}.example.com"). - Path("/articles/{category}/{id:[0-9]+}"). - Queries("filter", "{filter}"). - HandlerFunc(ArticleHandler). - Name("article") - -// url.String() will be "http://news.example.com/articles/technology/42?filter=gorilla" -url, err := r.Get("article").URL("subdomain", "news", - "category", "technology", - "id", "42", - "filter", "gorilla") -``` - -All variables defined in the route are required, and their values must conform to the corresponding patterns. These requirements guarantee that a generated URL will always match a registered route -- the only exception is for explicitly defined "build-only" routes which never match. - -Regex support also exists for matching Headers within a route. For example, we could do: - -```go -r.HeadersRegexp("Content-Type", "application/(text|json)") -``` - -...and the route will match both requests with a Content-Type of `application/json` as well as `application/text` - -There's also a way to build only the URL host or path for a route: use the methods `URLHost()` or `URLPath()` instead. For the previous route, we would do: - -```go -// "http://news.example.com/" -host, err := r.Get("article").URLHost("subdomain", "news") - -// "/articles/technology/42" -path, err := r.Get("article").URLPath("category", "technology", "id", "42") -``` - -And if you use subrouters, host and path defined separately can be built as well: - -```go -r := mux.NewRouter() -s := r.Host("{subdomain}.example.com").Subrouter() -s.Path("/articles/{category}/{id:[0-9]+}"). - HandlerFunc(ArticleHandler). - Name("article") - -// "http://news.example.com/articles/technology/42" -url, err := r.Get("article").URL("subdomain", "news", - "category", "technology", - "id", "42") -``` - -### Walking Routes - -The `Walk` function on `mux.Router` can be used to visit all of the routes that are registered on a router. For example, -the following prints all of the registered routes: - -```go -package main - -import ( - "fmt" - "net/http" - "strings" - - "github.com/gorilla/mux" -) - -func handler(w http.ResponseWriter, r *http.Request) { - return -} - -func main() { - r := mux.NewRouter() - r.HandleFunc("/", handler) - r.HandleFunc("/products", handler).Methods("POST") - r.HandleFunc("/articles", handler).Methods("GET") - r.HandleFunc("/articles/{id}", handler).Methods("GET", "PUT") - r.HandleFunc("/authors", handler).Queries("surname", "{surname}") - err := r.Walk(func(route *mux.Route, router *mux.Router, ancestors []*mux.Route) error { - pathTemplate, err := route.GetPathTemplate() - if err == nil { - fmt.Println("ROUTE:", pathTemplate) - } - pathRegexp, err := route.GetPathRegexp() - if err == nil { - fmt.Println("Path regexp:", pathRegexp) - } - queriesTemplates, err := route.GetQueriesTemplates() - if err == nil { - fmt.Println("Queries templates:", strings.Join(queriesTemplates, ",")) - } - queriesRegexps, err := route.GetQueriesRegexp() - if err == nil { - fmt.Println("Queries regexps:", strings.Join(queriesRegexps, ",")) - } - methods, err := route.GetMethods() - if err == nil { - fmt.Println("Methods:", strings.Join(methods, ",")) - } - fmt.Println() - return nil - }) - - if err != nil { - fmt.Println(err) - } - - http.Handle("/", r) -} -``` - -### Graceful Shutdown - -Go 1.8 introduced the ability to [gracefully shutdown](https://golang.org/doc/go1.8#http_shutdown) a `*http.Server`. Here's how to do that alongside `mux`: - -```go -package main - -import ( - "context" - "flag" - "log" - "net/http" - "os" - "os/signal" - "time" - - "github.com/gorilla/mux" -) - -func main() { - var wait time.Duration - flag.DurationVar(&wait, "graceful-timeout", time.Second * 15, "the duration for which the server gracefully wait for existing connections to finish - e.g. 15s or 1m") - flag.Parse() - - r := mux.NewRouter() - // Add your routes as needed - - srv := &http.Server{ - Addr: "0.0.0.0:8080", - // Good practice to set timeouts to avoid Slowloris attacks. - WriteTimeout: time.Second * 15, - ReadTimeout: time.Second * 15, - IdleTimeout: time.Second * 60, - Handler: r, // Pass our instance of gorilla/mux in. - } - - // Run our server in a goroutine so that it doesn't block. - go func() { - if err := srv.ListenAndServe(); err != nil { - log.Println(err) - } - }() - - c := make(chan os.Signal, 1) - // We'll accept graceful shutdowns when quit via SIGINT (Ctrl+C) - // SIGKILL, SIGQUIT or SIGTERM (Ctrl+/) will not be caught. - signal.Notify(c, os.Interrupt) - - // Block until we receive our signal. - <-c - - // Create a deadline to wait for. - ctx, cancel := context.WithTimeout(context.Background(), wait) - defer cancel() - // Doesn't block if no connections, but will otherwise wait - // until the timeout deadline. - srv.Shutdown(ctx) - // Optionally, you could run srv.Shutdown in a goroutine and block on - // <-ctx.Done() if your application should wait for other services - // to finalize based on context cancellation. - log.Println("shutting down") - os.Exit(0) -} -``` - -### Middleware - -Mux supports the addition of middlewares to a [Router](https://godoc.org/github.com/gorilla/mux#Router), which are executed in the order they are added if a match is found, including its subrouters. -Middlewares are (typically) small pieces of code which take one request, do something with it, and pass it down to another middleware or the final handler. Some common use cases for middleware are request logging, header manipulation, or `ResponseWriter` hijacking. - -Mux middlewares are defined using the de facto standard type: - -```go -type MiddlewareFunc func(http.Handler) http.Handler -``` - -Typically, the returned handler is a closure which does something with the http.ResponseWriter and http.Request passed to it, and then calls the handler passed as parameter to the MiddlewareFunc. This takes advantage of closures being able access variables from the context where they are created, while retaining the signature enforced by the receivers. - -A very basic middleware which logs the URI of the request being handled could be written as: - -```go -func loggingMiddleware(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - // Do stuff here - log.Println(r.RequestURI) - // Call the next handler, which can be another middleware in the chain, or the final handler. - next.ServeHTTP(w, r) - }) -} -``` - -Middlewares can be added to a router using `Router.Use()`: - -```go -r := mux.NewRouter() -r.HandleFunc("/", handler) -r.Use(loggingMiddleware) -``` - -A more complex authentication middleware, which maps session token to users, could be written as: - -```go -// Define our struct -type authenticationMiddleware struct { - tokenUsers map[string]string -} - -// Initialize it somewhere -func (amw *authenticationMiddleware) Populate() { - amw.tokenUsers["00000000"] = "user0" - amw.tokenUsers["aaaaaaaa"] = "userA" - amw.tokenUsers["05f717e5"] = "randomUser" - amw.tokenUsers["deadbeef"] = "user0" -} - -// Middleware function, which will be called for each request -func (amw *authenticationMiddleware) Middleware(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - token := r.Header.Get("X-Session-Token") - - if user, found := amw.tokenUsers[token]; found { - // We found the token in our map - log.Printf("Authenticated user %s\n", user) - // Pass down the request to the next middleware (or final handler) - next.ServeHTTP(w, r) - } else { - // Write an error and stop the handler chain - http.Error(w, "Forbidden", http.StatusForbidden) - } - }) -} -``` - -```go -r := mux.NewRouter() -r.HandleFunc("/", handler) - -amw := authenticationMiddleware{} -amw.Populate() - -r.Use(amw.Middleware) -``` - -Note: The handler chain will be stopped if your middleware doesn't call `next.ServeHTTP()` with the corresponding parameters. This can be used to abort a request if the middleware writer wants to. Middlewares _should_ write to `ResponseWriter` if they _are_ going to terminate the request, and they _should not_ write to `ResponseWriter` if they _are not_ going to terminate it. - -### Handling CORS Requests - -[CORSMethodMiddleware](https://godoc.org/github.com/gorilla/mux#CORSMethodMiddleware) intends to make it easier to strictly set the `Access-Control-Allow-Methods` response header. - -* You will still need to use your own CORS handler to set the other CORS headers such as `Access-Control-Allow-Origin` -* The middleware will set the `Access-Control-Allow-Methods` header to all the method matchers (e.g. `r.Methods(http.MethodGet, http.MethodPut, http.MethodOptions)` -> `Access-Control-Allow-Methods: GET,PUT,OPTIONS`) on a route -* If you do not specify any methods, then: -> _Important_: there must be an `OPTIONS` method matcher for the middleware to set the headers. - -Here is an example of using `CORSMethodMiddleware` along with a custom `OPTIONS` handler to set all the required CORS headers: - -```go -package main - -import ( - "net/http" - "github.com/gorilla/mux" -) - -func main() { - r := mux.NewRouter() - - // IMPORTANT: you must specify an OPTIONS method matcher for the middleware to set CORS headers - r.HandleFunc("/foo", fooHandler).Methods(http.MethodGet, http.MethodPut, http.MethodPatch, http.MethodOptions) - r.Use(mux.CORSMethodMiddleware(r)) - - http.ListenAndServe(":8080", r) -} - -func fooHandler(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - if r.Method == http.MethodOptions { - return - } - - w.Write([]byte("foo")) -} -``` - -And an request to `/foo` using something like: - -```bash -curl localhost:8080/foo -v -``` - -Would look like: - -```bash -* Trying ::1... -* TCP_NODELAY set -* Connected to localhost (::1) port 8080 (#0) -> GET /foo HTTP/1.1 -> Host: localhost:8080 -> User-Agent: curl/7.59.0 -> Accept: */* -> -< HTTP/1.1 200 OK -< Access-Control-Allow-Methods: GET,PUT,PATCH,OPTIONS -< Access-Control-Allow-Origin: * -< Date: Fri, 28 Jun 2019 20:13:30 GMT -< Content-Length: 3 -< Content-Type: text/plain; charset=utf-8 -< -* Connection #0 to host localhost left intact -foo -``` - -### Testing Handlers - -Testing handlers in a Go web application is straightforward, and _mux_ doesn't complicate this any further. Given two files: `endpoints.go` and `endpoints_test.go`, here's how we'd test an application using _mux_. - -First, our simple HTTP handler: - -```go -// endpoints.go -package main - -func HealthCheckHandler(w http.ResponseWriter, r *http.Request) { - // A very simple health check. - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) - - // In the future we could report back on the status of our DB, or our cache - // (e.g. Redis) by performing a simple PING, and include them in the response. - io.WriteString(w, `{"alive": true}`) -} - -func main() { - r := mux.NewRouter() - r.HandleFunc("/health", HealthCheckHandler) - - log.Fatal(http.ListenAndServe("localhost:8080", r)) -} -``` - -Our test code: - -```go -// endpoints_test.go -package main - -import ( - "net/http" - "net/http/httptest" - "testing" -) - -func TestHealthCheckHandler(t *testing.T) { - // Create a request to pass to our handler. We don't have any query parameters for now, so we'll - // pass 'nil' as the third parameter. - req, err := http.NewRequest("GET", "/health", nil) - if err != nil { - t.Fatal(err) - } - - // We create a ResponseRecorder (which satisfies http.ResponseWriter) to record the response. - rr := httptest.NewRecorder() - handler := http.HandlerFunc(HealthCheckHandler) - - // Our handlers satisfy http.Handler, so we can call their ServeHTTP method - // directly and pass in our Request and ResponseRecorder. - handler.ServeHTTP(rr, req) - - // Check the status code is what we expect. - if status := rr.Code; status != http.StatusOK { - t.Errorf("handler returned wrong status code: got %v want %v", - status, http.StatusOK) - } - - // Check the response body is what we expect. - expected := `{"alive": true}` - if rr.Body.String() != expected { - t.Errorf("handler returned unexpected body: got %v want %v", - rr.Body.String(), expected) - } -} -``` - -In the case that our routes have [variables](#examples), we can pass those in the request. We could write -[table-driven tests](https://dave.cheney.net/2013/06/09/writing-table-driven-tests-in-go) to test multiple -possible route variables as needed. - -```go -// endpoints.go -func main() { - r := mux.NewRouter() - // A route with a route variable: - r.HandleFunc("/metrics/{type}", MetricsHandler) - - log.Fatal(http.ListenAndServe("localhost:8080", r)) -} -``` - -Our test file, with a table-driven test of `routeVariables`: - -```go -// endpoints_test.go -func TestMetricsHandler(t *testing.T) { - tt := []struct{ - routeVariable string - shouldPass bool - }{ - {"goroutines", true}, - {"heap", true}, - {"counters", true}, - {"queries", true}, - {"adhadaeqm3k", false}, - } - - for _, tc := range tt { - path := fmt.Sprintf("/metrics/%s", tc.routeVariable) - req, err := http.NewRequest("GET", path, nil) - if err != nil { - t.Fatal(err) - } - - rr := httptest.NewRecorder() - - // Need to create a router that we can pass the request through so that the vars will be added to the context - router := mux.NewRouter() - router.HandleFunc("/metrics/{type}", MetricsHandler) - router.ServeHTTP(rr, req) - - // In this case, our MetricsHandler returns a non-200 response - // for a route variable it doesn't know about. - if rr.Code == http.StatusOK && !tc.shouldPass { - t.Errorf("handler should have failed on routeVariable %s: got %v want %v", - tc.routeVariable, rr.Code, http.StatusOK) - } - } -} -``` - -## Full Example - -Here's a complete, runnable example of a small `mux` based server: - -```go -package main - -import ( - "net/http" - "log" - "github.com/gorilla/mux" -) - -func YourHandler(w http.ResponseWriter, r *http.Request) { - w.Write([]byte("Gorilla!\n")) -} - -func main() { - r := mux.NewRouter() - // Routes consist of a path and a handler function. - r.HandleFunc("/", YourHandler) - - // Bind to a port and pass our router in - log.Fatal(http.ListenAndServe(":8000", r)) -} -``` - -## License - -BSD licensed. See the LICENSE file for details. diff --git a/backend/vendor/github.com/gorilla/mux/doc.go b/backend/vendor/github.com/gorilla/mux/doc.go deleted file mode 100644 index 80601351..00000000 --- a/backend/vendor/github.com/gorilla/mux/doc.go +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright 2012 The Gorilla Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package mux implements a request router and dispatcher. - -The name mux stands for "HTTP request multiplexer". Like the standard -http.ServeMux, mux.Router matches incoming requests against a list of -registered routes and calls a handler for the route that matches the URL -or other conditions. The main features are: - - - Requests can be matched based on URL host, path, path prefix, schemes, - header and query values, HTTP methods or using custom matchers. - - URL hosts, paths and query values can have variables with an optional - regular expression. - - Registered URLs can be built, or "reversed", which helps maintaining - references to resources. - - Routes can be used as subrouters: nested routes are only tested if the - parent route matches. This is useful to define groups of routes that - share common conditions like a host, a path prefix or other repeated - attributes. As a bonus, this optimizes request matching. - - It implements the http.Handler interface so it is compatible with the - standard http.ServeMux. - -Let's start registering a couple of URL paths and handlers: - - func main() { - r := mux.NewRouter() - r.HandleFunc("/", HomeHandler) - r.HandleFunc("/products", ProductsHandler) - r.HandleFunc("/articles", ArticlesHandler) - http.Handle("/", r) - } - -Here we register three routes mapping URL paths to handlers. This is -equivalent to how http.HandleFunc() works: if an incoming request URL matches -one of the paths, the corresponding handler is called passing -(http.ResponseWriter, *http.Request) as parameters. - -Paths can have variables. They are defined using the format {name} or -{name:pattern}. If a regular expression pattern is not defined, the matched -variable will be anything until the next slash. For example: - - r := mux.NewRouter() - r.HandleFunc("/products/{key}", ProductHandler) - r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) - r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) - -Groups can be used inside patterns, as long as they are non-capturing (?:re). For example: - - r.HandleFunc("/articles/{category}/{sort:(?:asc|desc|new)}", ArticlesCategoryHandler) - -The names are used to create a map of route variables which can be retrieved -calling mux.Vars(): - - vars := mux.Vars(request) - category := vars["category"] - -Note that if any capturing groups are present, mux will panic() during parsing. To prevent -this, convert any capturing groups to non-capturing, e.g. change "/{sort:(asc|desc)}" to -"/{sort:(?:asc|desc)}". This is a change from prior versions which behaved unpredictably -when capturing groups were present. - -And this is all you need to know about the basic usage. More advanced options -are explained below. - -Routes can also be restricted to a domain or subdomain. Just define a host -pattern to be matched. They can also have variables: - - r := mux.NewRouter() - // Only matches if domain is "www.example.com". - r.Host("www.example.com") - // Matches a dynamic subdomain. - r.Host("{subdomain:[a-z]+}.domain.com") - -There are several other matchers that can be added. To match path prefixes: - - r.PathPrefix("/products/") - -...or HTTP methods: - - r.Methods("GET", "POST") - -...or URL schemes: - - r.Schemes("https") - -...or header values: - - r.Headers("X-Requested-With", "XMLHttpRequest") - -...or query values: - - r.Queries("key", "value") - -...or to use a custom matcher function: - - r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { - return r.ProtoMajor == 0 - }) - -...and finally, it is possible to combine several matchers in a single route: - - r.HandleFunc("/products", ProductsHandler). - Host("www.example.com"). - Methods("GET"). - Schemes("http") - -Setting the same matching conditions again and again can be boring, so we have -a way to group several routes that share the same requirements. -We call it "subrouting". - -For example, let's say we have several URLs that should only match when the -host is "www.example.com". Create a route for that host and get a "subrouter" -from it: - - r := mux.NewRouter() - s := r.Host("www.example.com").Subrouter() - -Then register routes in the subrouter: - - s.HandleFunc("/products/", ProductsHandler) - s.HandleFunc("/products/{key}", ProductHandler) - s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) - -The three URL paths we registered above will only be tested if the domain is -"www.example.com", because the subrouter is tested first. This is not -only convenient, but also optimizes request matching. You can create -subrouters combining any attribute matchers accepted by a route. - -Subrouters can be used to create domain or path "namespaces": you define -subrouters in a central place and then parts of the app can register its -paths relatively to a given subrouter. - -There's one more thing about subroutes. When a subrouter has a path prefix, -the inner routes use it as base for their paths: - - r := mux.NewRouter() - s := r.PathPrefix("/products").Subrouter() - // "/products/" - s.HandleFunc("/", ProductsHandler) - // "/products/{key}/" - s.HandleFunc("/{key}/", ProductHandler) - // "/products/{key}/details" - s.HandleFunc("/{key}/details", ProductDetailsHandler) - -Note that the path provided to PathPrefix() represents a "wildcard": calling -PathPrefix("/static/").Handler(...) means that the handler will be passed any -request that matches "/static/*". This makes it easy to serve static files with mux: - - func main() { - var dir string - - flag.StringVar(&dir, "dir", ".", "the directory to serve files from. Defaults to the current dir") - flag.Parse() - r := mux.NewRouter() - - // This will serve files under http://localhost:8000/static/ - r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(dir)))) - - srv := &http.Server{ - Handler: r, - Addr: "127.0.0.1:8000", - // Good practice: enforce timeouts for servers you create! - WriteTimeout: 15 * time.Second, - ReadTimeout: 15 * time.Second, - } - - log.Fatal(srv.ListenAndServe()) - } - -Now let's see how to build registered URLs. - -Routes can be named. All routes that define a name can have their URLs built, -or "reversed". We define a name calling Name() on a route. For example: - - r := mux.NewRouter() - r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). - Name("article") - -To build a URL, get the route and call the URL() method, passing a sequence of -key/value pairs for the route variables. For the previous route, we would do: - - url, err := r.Get("article").URL("category", "technology", "id", "42") - -...and the result will be a url.URL with the following path: - - "/articles/technology/42" - -This also works for host and query value variables: - - r := mux.NewRouter() - r.Host("{subdomain}.domain.com"). - Path("/articles/{category}/{id:[0-9]+}"). - Queries("filter", "{filter}"). - HandlerFunc(ArticleHandler). - Name("article") - - // url.String() will be "http://news.domain.com/articles/technology/42?filter=gorilla" - url, err := r.Get("article").URL("subdomain", "news", - "category", "technology", - "id", "42", - "filter", "gorilla") - -All variables defined in the route are required, and their values must -conform to the corresponding patterns. These requirements guarantee that a -generated URL will always match a registered route -- the only exception is -for explicitly defined "build-only" routes which never match. - -Regex support also exists for matching Headers within a route. For example, we could do: - - r.HeadersRegexp("Content-Type", "application/(text|json)") - -...and the route will match both requests with a Content-Type of `application/json` as well as -`application/text` - -There's also a way to build only the URL host or path for a route: -use the methods URLHost() or URLPath() instead. For the previous route, -we would do: - - // "http://news.domain.com/" - host, err := r.Get("article").URLHost("subdomain", "news") - - // "/articles/technology/42" - path, err := r.Get("article").URLPath("category", "technology", "id", "42") - -And if you use subrouters, host and path defined separately can be built -as well: - - r := mux.NewRouter() - s := r.Host("{subdomain}.domain.com").Subrouter() - s.Path("/articles/{category}/{id:[0-9]+}"). - HandlerFunc(ArticleHandler). - Name("article") - - // "http://news.domain.com/articles/technology/42" - url, err := r.Get("article").URL("subdomain", "news", - "category", "technology", - "id", "42") - -Mux supports the addition of middlewares to a Router, which are executed in the order they are added if a match is found, including its subrouters. Middlewares are (typically) small pieces of code which take one request, do something with it, and pass it down to another middleware or the final handler. Some common use cases for middleware are request logging, header manipulation, or ResponseWriter hijacking. - - type MiddlewareFunc func(http.Handler) http.Handler - -Typically, the returned handler is a closure which does something with the http.ResponseWriter and http.Request passed to it, and then calls the handler passed as parameter to the MiddlewareFunc (closures can access variables from the context where they are created). - -A very basic middleware which logs the URI of the request being handled could be written as: - - func simpleMw(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - // Do stuff here - log.Println(r.RequestURI) - // Call the next handler, which can be another middleware in the chain, or the final handler. - next.ServeHTTP(w, r) - }) - } - -Middlewares can be added to a router using `Router.Use()`: - - r := mux.NewRouter() - r.HandleFunc("/", handler) - r.Use(simpleMw) - -A more complex authentication middleware, which maps session token to users, could be written as: - - // Define our struct - type authenticationMiddleware struct { - tokenUsers map[string]string - } - - // Initialize it somewhere - func (amw *authenticationMiddleware) Populate() { - amw.tokenUsers["00000000"] = "user0" - amw.tokenUsers["aaaaaaaa"] = "userA" - amw.tokenUsers["05f717e5"] = "randomUser" - amw.tokenUsers["deadbeef"] = "user0" - } - - // Middleware function, which will be called for each request - func (amw *authenticationMiddleware) Middleware(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - token := r.Header.Get("X-Session-Token") - - if user, found := amw.tokenUsers[token]; found { - // We found the token in our map - log.Printf("Authenticated user %s\n", user) - next.ServeHTTP(w, r) - } else { - http.Error(w, "Forbidden", http.StatusForbidden) - } - }) - } - - r := mux.NewRouter() - r.HandleFunc("/", handler) - - amw := authenticationMiddleware{tokenUsers: make(map[string]string)} - amw.Populate() - - r.Use(amw.Middleware) - -Note: The handler chain will be stopped if your middleware doesn't call `next.ServeHTTP()` with the corresponding parameters. This can be used to abort a request if the middleware writer wants to. -*/ -package mux diff --git a/backend/vendor/github.com/gorilla/mux/middleware.go b/backend/vendor/github.com/gorilla/mux/middleware.go deleted file mode 100644 index cb51c565..00000000 --- a/backend/vendor/github.com/gorilla/mux/middleware.go +++ /dev/null @@ -1,74 +0,0 @@ -package mux - -import ( - "net/http" - "strings" -) - -// MiddlewareFunc is a function which receives an http.Handler and returns another http.Handler. -// Typically, the returned handler is a closure which does something with the http.ResponseWriter and http.Request passed -// to it, and then calls the handler passed as parameter to the MiddlewareFunc. -type MiddlewareFunc func(http.Handler) http.Handler - -// middleware interface is anything which implements a MiddlewareFunc named Middleware. -type middleware interface { - Middleware(handler http.Handler) http.Handler -} - -// Middleware allows MiddlewareFunc to implement the middleware interface. -func (mw MiddlewareFunc) Middleware(handler http.Handler) http.Handler { - return mw(handler) -} - -// Use appends a MiddlewareFunc to the chain. Middleware can be used to intercept or otherwise modify requests and/or responses, and are executed in the order that they are applied to the Router. -func (r *Router) Use(mwf ...MiddlewareFunc) { - for _, fn := range mwf { - r.middlewares = append(r.middlewares, fn) - } -} - -// useInterface appends a middleware to the chain. Middleware can be used to intercept or otherwise modify requests and/or responses, and are executed in the order that they are applied to the Router. -func (r *Router) useInterface(mw middleware) { - r.middlewares = append(r.middlewares, mw) -} - -// CORSMethodMiddleware automatically sets the Access-Control-Allow-Methods response header -// on requests for routes that have an OPTIONS method matcher to all the method matchers on -// the route. Routes that do not explicitly handle OPTIONS requests will not be processed -// by the middleware. See examples for usage. -func CORSMethodMiddleware(r *Router) MiddlewareFunc { - return func(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - allMethods, err := getAllMethodsForRoute(r, req) - if err == nil { - for _, v := range allMethods { - if v == http.MethodOptions { - w.Header().Set("Access-Control-Allow-Methods", strings.Join(allMethods, ",")) - } - } - } - - next.ServeHTTP(w, req) - }) - } -} - -// getAllMethodsForRoute returns all the methods from method matchers matching a given -// request. -func getAllMethodsForRoute(r *Router, req *http.Request) ([]string, error) { - var allMethods []string - - for _, route := range r.routes { - var match RouteMatch - if route.Match(req, &match) || match.MatchErr == ErrMethodMismatch { - methods, err := route.GetMethods() - if err != nil { - return nil, err - } - - allMethods = append(allMethods, methods...) - } - } - - return allMethods, nil -} diff --git a/backend/vendor/github.com/gorilla/mux/mux.go b/backend/vendor/github.com/gorilla/mux/mux.go deleted file mode 100644 index c94209a8..00000000 --- a/backend/vendor/github.com/gorilla/mux/mux.go +++ /dev/null @@ -1,606 +0,0 @@ -// Copyright 2012 The Gorilla Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package mux - -import ( - "context" - "errors" - "fmt" - "net/http" - "path" - "regexp" -) - -var ( - // ErrMethodMismatch is returned when the method in the request does not match - // the method defined against the route. - ErrMethodMismatch = errors.New("method is not allowed") - // ErrNotFound is returned when no route match is found. - ErrNotFound = errors.New("no matching route was found") -) - -// NewRouter returns a new router instance. -func NewRouter() *Router { - return &Router{namedRoutes: make(map[string]*Route)} -} - -// Router registers routes to be matched and dispatches a handler. -// -// It implements the http.Handler interface, so it can be registered to serve -// requests: -// -// var router = mux.NewRouter() -// -// func main() { -// http.Handle("/", router) -// } -// -// Or, for Google App Engine, register it in a init() function: -// -// func init() { -// http.Handle("/", router) -// } -// -// This will send all incoming requests to the router. -type Router struct { - // Configurable Handler to be used when no route matches. - NotFoundHandler http.Handler - - // Configurable Handler to be used when the request method does not match the route. - MethodNotAllowedHandler http.Handler - - // Routes to be matched, in order. - routes []*Route - - // Routes by name for URL building. - namedRoutes map[string]*Route - - // If true, do not clear the request context after handling the request. - // - // Deprecated: No effect, since the context is stored on the request itself. - KeepContext bool - - // Slice of middlewares to be called after a match is found - middlewares []middleware - - // configuration shared with `Route` - routeConf -} - -// common route configuration shared between `Router` and `Route` -type routeConf struct { - // If true, "/path/foo%2Fbar/to" will match the path "/path/{var}/to" - useEncodedPath bool - - // If true, when the path pattern is "/path/", accessing "/path" will - // redirect to the former and vice versa. - strictSlash bool - - // If true, when the path pattern is "/path//to", accessing "/path//to" - // will not redirect - skipClean bool - - // Manager for the variables from host and path. - regexp routeRegexpGroup - - // List of matchers. - matchers []matcher - - // The scheme used when building URLs. - buildScheme string - - buildVarsFunc BuildVarsFunc -} - -// returns an effective deep copy of `routeConf` -func copyRouteConf(r routeConf) routeConf { - c := r - - if r.regexp.path != nil { - c.regexp.path = copyRouteRegexp(r.regexp.path) - } - - if r.regexp.host != nil { - c.regexp.host = copyRouteRegexp(r.regexp.host) - } - - c.regexp.queries = make([]*routeRegexp, 0, len(r.regexp.queries)) - for _, q := range r.regexp.queries { - c.regexp.queries = append(c.regexp.queries, copyRouteRegexp(q)) - } - - c.matchers = make([]matcher, len(r.matchers)) - copy(c.matchers, r.matchers) - - return c -} - -func copyRouteRegexp(r *routeRegexp) *routeRegexp { - c := *r - return &c -} - -// Match attempts to match the given request against the router's registered routes. -// -// If the request matches a route of this router or one of its subrouters the Route, -// Handler, and Vars fields of the the match argument are filled and this function -// returns true. -// -// If the request does not match any of this router's or its subrouters' routes -// then this function returns false. If available, a reason for the match failure -// will be filled in the match argument's MatchErr field. If the match failure type -// (eg: not found) has a registered handler, the handler is assigned to the Handler -// field of the match argument. -func (r *Router) Match(req *http.Request, match *RouteMatch) bool { - for _, route := range r.routes { - if route.Match(req, match) { - // Build middleware chain if no error was found - if match.MatchErr == nil { - for i := len(r.middlewares) - 1; i >= 0; i-- { - match.Handler = r.middlewares[i].Middleware(match.Handler) - } - } - return true - } - } - - if match.MatchErr == ErrMethodMismatch { - if r.MethodNotAllowedHandler != nil { - match.Handler = r.MethodNotAllowedHandler - return true - } - - return false - } - - // Closest match for a router (includes sub-routers) - if r.NotFoundHandler != nil { - match.Handler = r.NotFoundHandler - match.MatchErr = ErrNotFound - return true - } - - match.MatchErr = ErrNotFound - return false -} - -// ServeHTTP dispatches the handler registered in the matched route. -// -// When there is a match, the route variables can be retrieved calling -// mux.Vars(request). -func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) { - if !r.skipClean { - path := req.URL.Path - if r.useEncodedPath { - path = req.URL.EscapedPath() - } - // Clean path to canonical form and redirect. - if p := cleanPath(path); p != path { - - // Added 3 lines (Philip Schlump) - It was dropping the query string and #whatever from query. - // This matches with fix in go 1.2 r.c. 4 for same problem. Go Issue: - // http://code.google.com/p/go/issues/detail?id=5252 - url := *req.URL - url.Path = p - p = url.String() - - w.Header().Set("Location", p) - w.WriteHeader(http.StatusMovedPermanently) - return - } - } - var match RouteMatch - var handler http.Handler - if r.Match(req, &match) { - handler = match.Handler - req = requestWithVars(req, match.Vars) - req = requestWithRoute(req, match.Route) - } - - if handler == nil && match.MatchErr == ErrMethodMismatch { - handler = methodNotAllowedHandler() - } - - if handler == nil { - handler = http.NotFoundHandler() - } - - handler.ServeHTTP(w, req) -} - -// Get returns a route registered with the given name. -func (r *Router) Get(name string) *Route { - return r.namedRoutes[name] -} - -// GetRoute returns a route registered with the given name. This method -// was renamed to Get() and remains here for backwards compatibility. -func (r *Router) GetRoute(name string) *Route { - return r.namedRoutes[name] -} - -// StrictSlash defines the trailing slash behavior for new routes. The initial -// value is false. -// -// When true, if the route path is "/path/", accessing "/path" will perform a redirect -// to the former and vice versa. In other words, your application will always -// see the path as specified in the route. -// -// When false, if the route path is "/path", accessing "/path/" will not match -// this route and vice versa. -// -// The re-direct is a HTTP 301 (Moved Permanently). Note that when this is set for -// routes with a non-idempotent method (e.g. POST, PUT), the subsequent re-directed -// request will be made as a GET by most clients. Use middleware or client settings -// to modify this behaviour as needed. -// -// Special case: when a route sets a path prefix using the PathPrefix() method, -// strict slash is ignored for that route because the redirect behavior can't -// be determined from a prefix alone. However, any subrouters created from that -// route inherit the original StrictSlash setting. -func (r *Router) StrictSlash(value bool) *Router { - r.strictSlash = value - return r -} - -// SkipClean defines the path cleaning behaviour for new routes. The initial -// value is false. Users should be careful about which routes are not cleaned -// -// When true, if the route path is "/path//to", it will remain with the double -// slash. This is helpful if you have a route like: /fetch/http://xkcd.com/534/ -// -// When false, the path will be cleaned, so /fetch/http://xkcd.com/534/ will -// become /fetch/http/xkcd.com/534 -func (r *Router) SkipClean(value bool) *Router { - r.skipClean = value - return r -} - -// UseEncodedPath tells the router to match the encoded original path -// to the routes. -// For eg. "/path/foo%2Fbar/to" will match the path "/path/{var}/to". -// -// If not called, the router will match the unencoded path to the routes. -// For eg. "/path/foo%2Fbar/to" will match the path "/path/foo/bar/to" -func (r *Router) UseEncodedPath() *Router { - r.useEncodedPath = true - return r -} - -// ---------------------------------------------------------------------------- -// Route factories -// ---------------------------------------------------------------------------- - -// NewRoute registers an empty route. -func (r *Router) NewRoute() *Route { - // initialize a route with a copy of the parent router's configuration - route := &Route{routeConf: copyRouteConf(r.routeConf), namedRoutes: r.namedRoutes} - r.routes = append(r.routes, route) - return route -} - -// Name registers a new route with a name. -// See Route.Name(). -func (r *Router) Name(name string) *Route { - return r.NewRoute().Name(name) -} - -// Handle registers a new route with a matcher for the URL path. -// See Route.Path() and Route.Handler(). -func (r *Router) Handle(path string, handler http.Handler) *Route { - return r.NewRoute().Path(path).Handler(handler) -} - -// HandleFunc registers a new route with a matcher for the URL path. -// See Route.Path() and Route.HandlerFunc(). -func (r *Router) HandleFunc(path string, f func(http.ResponseWriter, - *http.Request)) *Route { - return r.NewRoute().Path(path).HandlerFunc(f) -} - -// Headers registers a new route with a matcher for request header values. -// See Route.Headers(). -func (r *Router) Headers(pairs ...string) *Route { - return r.NewRoute().Headers(pairs...) -} - -// Host registers a new route with a matcher for the URL host. -// See Route.Host(). -func (r *Router) Host(tpl string) *Route { - return r.NewRoute().Host(tpl) -} - -// MatcherFunc registers a new route with a custom matcher function. -// See Route.MatcherFunc(). -func (r *Router) MatcherFunc(f MatcherFunc) *Route { - return r.NewRoute().MatcherFunc(f) -} - -// Methods registers a new route with a matcher for HTTP methods. -// See Route.Methods(). -func (r *Router) Methods(methods ...string) *Route { - return r.NewRoute().Methods(methods...) -} - -// Path registers a new route with a matcher for the URL path. -// See Route.Path(). -func (r *Router) Path(tpl string) *Route { - return r.NewRoute().Path(tpl) -} - -// PathPrefix registers a new route with a matcher for the URL path prefix. -// See Route.PathPrefix(). -func (r *Router) PathPrefix(tpl string) *Route { - return r.NewRoute().PathPrefix(tpl) -} - -// Queries registers a new route with a matcher for URL query values. -// See Route.Queries(). -func (r *Router) Queries(pairs ...string) *Route { - return r.NewRoute().Queries(pairs...) -} - -// Schemes registers a new route with a matcher for URL schemes. -// See Route.Schemes(). -func (r *Router) Schemes(schemes ...string) *Route { - return r.NewRoute().Schemes(schemes...) -} - -// BuildVarsFunc registers a new route with a custom function for modifying -// route variables before building a URL. -func (r *Router) BuildVarsFunc(f BuildVarsFunc) *Route { - return r.NewRoute().BuildVarsFunc(f) -} - -// Walk walks the router and all its sub-routers, calling walkFn for each route -// in the tree. The routes are walked in the order they were added. Sub-routers -// are explored depth-first. -func (r *Router) Walk(walkFn WalkFunc) error { - return r.walk(walkFn, []*Route{}) -} - -// SkipRouter is used as a return value from WalkFuncs to indicate that the -// router that walk is about to descend down to should be skipped. -var SkipRouter = errors.New("skip this router") - -// WalkFunc is the type of the function called for each route visited by Walk. -// At every invocation, it is given the current route, and the current router, -// and a list of ancestor routes that lead to the current route. -type WalkFunc func(route *Route, router *Router, ancestors []*Route) error - -func (r *Router) walk(walkFn WalkFunc, ancestors []*Route) error { - for _, t := range r.routes { - err := walkFn(t, r, ancestors) - if err == SkipRouter { - continue - } - if err != nil { - return err - } - for _, sr := range t.matchers { - if h, ok := sr.(*Router); ok { - ancestors = append(ancestors, t) - err := h.walk(walkFn, ancestors) - if err != nil { - return err - } - ancestors = ancestors[:len(ancestors)-1] - } - } - if h, ok := t.handler.(*Router); ok { - ancestors = append(ancestors, t) - err := h.walk(walkFn, ancestors) - if err != nil { - return err - } - ancestors = ancestors[:len(ancestors)-1] - } - } - return nil -} - -// ---------------------------------------------------------------------------- -// Context -// ---------------------------------------------------------------------------- - -// RouteMatch stores information about a matched route. -type RouteMatch struct { - Route *Route - Handler http.Handler - Vars map[string]string - - // MatchErr is set to appropriate matching error - // It is set to ErrMethodMismatch if there is a mismatch in - // the request method and route method - MatchErr error -} - -type contextKey int - -const ( - varsKey contextKey = iota - routeKey -) - -// Vars returns the route variables for the current request, if any. -func Vars(r *http.Request) map[string]string { - if rv := r.Context().Value(varsKey); rv != nil { - return rv.(map[string]string) - } - return nil -} - -// CurrentRoute returns the matched route for the current request, if any. -// This only works when called inside the handler of the matched route -// because the matched route is stored in the request context which is cleared -// after the handler returns. -func CurrentRoute(r *http.Request) *Route { - if rv := r.Context().Value(routeKey); rv != nil { - return rv.(*Route) - } - return nil -} - -func requestWithVars(r *http.Request, vars map[string]string) *http.Request { - ctx := context.WithValue(r.Context(), varsKey, vars) - return r.WithContext(ctx) -} - -func requestWithRoute(r *http.Request, route *Route) *http.Request { - ctx := context.WithValue(r.Context(), routeKey, route) - return r.WithContext(ctx) -} - -// ---------------------------------------------------------------------------- -// Helpers -// ---------------------------------------------------------------------------- - -// cleanPath returns the canonical path for p, eliminating . and .. elements. -// Borrowed from the net/http package. -func cleanPath(p string) string { - if p == "" { - return "/" - } - if p[0] != '/' { - p = "/" + p - } - np := path.Clean(p) - // path.Clean removes trailing slash except for root; - // put the trailing slash back if necessary. - if p[len(p)-1] == '/' && np != "/" { - np += "/" - } - - return np -} - -// uniqueVars returns an error if two slices contain duplicated strings. -func uniqueVars(s1, s2 []string) error { - for _, v1 := range s1 { - for _, v2 := range s2 { - if v1 == v2 { - return fmt.Errorf("mux: duplicated route variable %q", v2) - } - } - } - return nil -} - -// checkPairs returns the count of strings passed in, and an error if -// the count is not an even number. -func checkPairs(pairs ...string) (int, error) { - length := len(pairs) - if length%2 != 0 { - return length, fmt.Errorf( - "mux: number of parameters must be multiple of 2, got %v", pairs) - } - return length, nil -} - -// mapFromPairsToString converts variadic string parameters to a -// string to string map. -func mapFromPairsToString(pairs ...string) (map[string]string, error) { - length, err := checkPairs(pairs...) - if err != nil { - return nil, err - } - m := make(map[string]string, length/2) - for i := 0; i < length; i += 2 { - m[pairs[i]] = pairs[i+1] - } - return m, nil -} - -// mapFromPairsToRegex converts variadic string parameters to a -// string to regex map. -func mapFromPairsToRegex(pairs ...string) (map[string]*regexp.Regexp, error) { - length, err := checkPairs(pairs...) - if err != nil { - return nil, err - } - m := make(map[string]*regexp.Regexp, length/2) - for i := 0; i < length; i += 2 { - regex, err := regexp.Compile(pairs[i+1]) - if err != nil { - return nil, err - } - m[pairs[i]] = regex - } - return m, nil -} - -// matchInArray returns true if the given string value is in the array. -func matchInArray(arr []string, value string) bool { - for _, v := range arr { - if v == value { - return true - } - } - return false -} - -// matchMapWithString returns true if the given key/value pairs exist in a given map. -func matchMapWithString(toCheck map[string]string, toMatch map[string][]string, canonicalKey bool) bool { - for k, v := range toCheck { - // Check if key exists. - if canonicalKey { - k = http.CanonicalHeaderKey(k) - } - if values := toMatch[k]; values == nil { - return false - } else if v != "" { - // If value was defined as an empty string we only check that the - // key exists. Otherwise we also check for equality. - valueExists := false - for _, value := range values { - if v == value { - valueExists = true - break - } - } - if !valueExists { - return false - } - } - } - return true -} - -// matchMapWithRegex returns true if the given key/value pairs exist in a given map compiled against -// the given regex -func matchMapWithRegex(toCheck map[string]*regexp.Regexp, toMatch map[string][]string, canonicalKey bool) bool { - for k, v := range toCheck { - // Check if key exists. - if canonicalKey { - k = http.CanonicalHeaderKey(k) - } - if values := toMatch[k]; values == nil { - return false - } else if v != nil { - // If value was defined as an empty string we only check that the - // key exists. Otherwise we also check for equality. - valueExists := false - for _, value := range values { - if v.MatchString(value) { - valueExists = true - break - } - } - if !valueExists { - return false - } - } - } - return true -} - -// methodNotAllowed replies to the request with an HTTP status code 405. -func methodNotAllowed(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusMethodNotAllowed) -} - -// methodNotAllowedHandler returns a simple request handler -// that replies to each request with a status code 405. -func methodNotAllowedHandler() http.Handler { return http.HandlerFunc(methodNotAllowed) } diff --git a/backend/vendor/github.com/gorilla/mux/regexp.go b/backend/vendor/github.com/gorilla/mux/regexp.go deleted file mode 100644 index 0144842b..00000000 --- a/backend/vendor/github.com/gorilla/mux/regexp.go +++ /dev/null @@ -1,388 +0,0 @@ -// Copyright 2012 The Gorilla Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package mux - -import ( - "bytes" - "fmt" - "net/http" - "net/url" - "regexp" - "strconv" - "strings" -) - -type routeRegexpOptions struct { - strictSlash bool - useEncodedPath bool -} - -type regexpType int - -const ( - regexpTypePath regexpType = 0 - regexpTypeHost regexpType = 1 - regexpTypePrefix regexpType = 2 - regexpTypeQuery regexpType = 3 -) - -// newRouteRegexp parses a route template and returns a routeRegexp, -// used to match a host, a path or a query string. -// -// It will extract named variables, assemble a regexp to be matched, create -// a "reverse" template to build URLs and compile regexps to validate variable -// values used in URL building. -// -// Previously we accepted only Python-like identifiers for variable -// names ([a-zA-Z_][a-zA-Z0-9_]*), but currently the only restriction is that -// name and pattern can't be empty, and names can't contain a colon. -func newRouteRegexp(tpl string, typ regexpType, options routeRegexpOptions) (*routeRegexp, error) { - // Check if it is well-formed. - idxs, errBraces := braceIndices(tpl) - if errBraces != nil { - return nil, errBraces - } - // Backup the original. - template := tpl - // Now let's parse it. - defaultPattern := "[^/]+" - if typ == regexpTypeQuery { - defaultPattern = ".*" - } else if typ == regexpTypeHost { - defaultPattern = "[^.]+" - } - // Only match strict slash if not matching - if typ != regexpTypePath { - options.strictSlash = false - } - // Set a flag for strictSlash. - endSlash := false - if options.strictSlash && strings.HasSuffix(tpl, "/") { - tpl = tpl[:len(tpl)-1] - endSlash = true - } - varsN := make([]string, len(idxs)/2) - varsR := make([]*regexp.Regexp, len(idxs)/2) - pattern := bytes.NewBufferString("") - pattern.WriteByte('^') - reverse := bytes.NewBufferString("") - var end int - var err error - for i := 0; i < len(idxs); i += 2 { - // Set all values we are interested in. - raw := tpl[end:idxs[i]] - end = idxs[i+1] - parts := strings.SplitN(tpl[idxs[i]+1:end-1], ":", 2) - name := parts[0] - patt := defaultPattern - if len(parts) == 2 { - patt = parts[1] - } - // Name or pattern can't be empty. - if name == "" || patt == "" { - return nil, fmt.Errorf("mux: missing name or pattern in %q", - tpl[idxs[i]:end]) - } - // Build the regexp pattern. - fmt.Fprintf(pattern, "%s(?P<%s>%s)", regexp.QuoteMeta(raw), varGroupName(i/2), patt) - - // Build the reverse template. - fmt.Fprintf(reverse, "%s%%s", raw) - - // Append variable name and compiled pattern. - varsN[i/2] = name - varsR[i/2], err = regexp.Compile(fmt.Sprintf("^%s$", patt)) - if err != nil { - return nil, err - } - } - // Add the remaining. - raw := tpl[end:] - pattern.WriteString(regexp.QuoteMeta(raw)) - if options.strictSlash { - pattern.WriteString("[/]?") - } - if typ == regexpTypeQuery { - // Add the default pattern if the query value is empty - if queryVal := strings.SplitN(template, "=", 2)[1]; queryVal == "" { - pattern.WriteString(defaultPattern) - } - } - if typ != regexpTypePrefix { - pattern.WriteByte('$') - } - - var wildcardHostPort bool - if typ == regexpTypeHost { - if !strings.Contains(pattern.String(), ":") { - wildcardHostPort = true - } - } - reverse.WriteString(raw) - if endSlash { - reverse.WriteByte('/') - } - // Compile full regexp. - reg, errCompile := regexp.Compile(pattern.String()) - if errCompile != nil { - return nil, errCompile - } - - // Check for capturing groups which used to work in older versions - if reg.NumSubexp() != len(idxs)/2 { - panic(fmt.Sprintf("route %s contains capture groups in its regexp. ", template) + - "Only non-capturing groups are accepted: e.g. (?:pattern) instead of (pattern)") - } - - // Done! - return &routeRegexp{ - template: template, - regexpType: typ, - options: options, - regexp: reg, - reverse: reverse.String(), - varsN: varsN, - varsR: varsR, - wildcardHostPort: wildcardHostPort, - }, nil -} - -// routeRegexp stores a regexp to match a host or path and information to -// collect and validate route variables. -type routeRegexp struct { - // The unmodified template. - template string - // The type of match - regexpType regexpType - // Options for matching - options routeRegexpOptions - // Expanded regexp. - regexp *regexp.Regexp - // Reverse template. - reverse string - // Variable names. - varsN []string - // Variable regexps (validators). - varsR []*regexp.Regexp - // Wildcard host-port (no strict port match in hostname) - wildcardHostPort bool -} - -// Match matches the regexp against the URL host or path. -func (r *routeRegexp) Match(req *http.Request, match *RouteMatch) bool { - if r.regexpType == regexpTypeHost { - host := getHost(req) - if r.wildcardHostPort { - // Don't be strict on the port match - if i := strings.Index(host, ":"); i != -1 { - host = host[:i] - } - } - return r.regexp.MatchString(host) - } - - if r.regexpType == regexpTypeQuery { - return r.matchQueryString(req) - } - path := req.URL.Path - if r.options.useEncodedPath { - path = req.URL.EscapedPath() - } - return r.regexp.MatchString(path) -} - -// url builds a URL part using the given values. -func (r *routeRegexp) url(values map[string]string) (string, error) { - urlValues := make([]interface{}, len(r.varsN), len(r.varsN)) - for k, v := range r.varsN { - value, ok := values[v] - if !ok { - return "", fmt.Errorf("mux: missing route variable %q", v) - } - if r.regexpType == regexpTypeQuery { - value = url.QueryEscape(value) - } - urlValues[k] = value - } - rv := fmt.Sprintf(r.reverse, urlValues...) - if !r.regexp.MatchString(rv) { - // The URL is checked against the full regexp, instead of checking - // individual variables. This is faster but to provide a good error - // message, we check individual regexps if the URL doesn't match. - for k, v := range r.varsN { - if !r.varsR[k].MatchString(values[v]) { - return "", fmt.Errorf( - "mux: variable %q doesn't match, expected %q", values[v], - r.varsR[k].String()) - } - } - } - return rv, nil -} - -// getURLQuery returns a single query parameter from a request URL. -// For a URL with foo=bar&baz=ding, we return only the relevant key -// value pair for the routeRegexp. -func (r *routeRegexp) getURLQuery(req *http.Request) string { - if r.regexpType != regexpTypeQuery { - return "" - } - templateKey := strings.SplitN(r.template, "=", 2)[0] - val, ok := findFirstQueryKey(req.URL.RawQuery, templateKey) - if ok { - return templateKey + "=" + val - } - return "" -} - -// findFirstQueryKey returns the same result as (*url.URL).Query()[key][0]. -// If key was not found, empty string and false is returned. -func findFirstQueryKey(rawQuery, key string) (value string, ok bool) { - query := []byte(rawQuery) - for len(query) > 0 { - foundKey := query - if i := bytes.IndexAny(foundKey, "&;"); i >= 0 { - foundKey, query = foundKey[:i], foundKey[i+1:] - } else { - query = query[:0] - } - if len(foundKey) == 0 { - continue - } - var value []byte - if i := bytes.IndexByte(foundKey, '='); i >= 0 { - foundKey, value = foundKey[:i], foundKey[i+1:] - } - if len(foundKey) < len(key) { - // Cannot possibly be key. - continue - } - keyString, err := url.QueryUnescape(string(foundKey)) - if err != nil { - continue - } - if keyString != key { - continue - } - valueString, err := url.QueryUnescape(string(value)) - if err != nil { - continue - } - return valueString, true - } - return "", false -} - -func (r *routeRegexp) matchQueryString(req *http.Request) bool { - return r.regexp.MatchString(r.getURLQuery(req)) -} - -// braceIndices returns the first level curly brace indices from a string. -// It returns an error in case of unbalanced braces. -func braceIndices(s string) ([]int, error) { - var level, idx int - var idxs []int - for i := 0; i < len(s); i++ { - switch s[i] { - case '{': - if level++; level == 1 { - idx = i - } - case '}': - if level--; level == 0 { - idxs = append(idxs, idx, i+1) - } else if level < 0 { - return nil, fmt.Errorf("mux: unbalanced braces in %q", s) - } - } - } - if level != 0 { - return nil, fmt.Errorf("mux: unbalanced braces in %q", s) - } - return idxs, nil -} - -// varGroupName builds a capturing group name for the indexed variable. -func varGroupName(idx int) string { - return "v" + strconv.Itoa(idx) -} - -// ---------------------------------------------------------------------------- -// routeRegexpGroup -// ---------------------------------------------------------------------------- - -// routeRegexpGroup groups the route matchers that carry variables. -type routeRegexpGroup struct { - host *routeRegexp - path *routeRegexp - queries []*routeRegexp -} - -// setMatch extracts the variables from the URL once a route matches. -func (v routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) { - // Store host variables. - if v.host != nil { - host := getHost(req) - if v.host.wildcardHostPort { - // Don't be strict on the port match - if i := strings.Index(host, ":"); i != -1 { - host = host[:i] - } - } - matches := v.host.regexp.FindStringSubmatchIndex(host) - if len(matches) > 0 { - extractVars(host, matches, v.host.varsN, m.Vars) - } - } - path := req.URL.Path - if r.useEncodedPath { - path = req.URL.EscapedPath() - } - // Store path variables. - if v.path != nil { - matches := v.path.regexp.FindStringSubmatchIndex(path) - if len(matches) > 0 { - extractVars(path, matches, v.path.varsN, m.Vars) - // Check if we should redirect. - if v.path.options.strictSlash { - p1 := strings.HasSuffix(path, "/") - p2 := strings.HasSuffix(v.path.template, "/") - if p1 != p2 { - u, _ := url.Parse(req.URL.String()) - if p1 { - u.Path = u.Path[:len(u.Path)-1] - } else { - u.Path += "/" - } - m.Handler = http.RedirectHandler(u.String(), http.StatusMovedPermanently) - } - } - } - } - // Store query string variables. - for _, q := range v.queries { - queryURL := q.getURLQuery(req) - matches := q.regexp.FindStringSubmatchIndex(queryURL) - if len(matches) > 0 { - extractVars(queryURL, matches, q.varsN, m.Vars) - } - } -} - -// getHost tries its best to return the request host. -// According to section 14.23 of RFC 2616 the Host header -// can include the port number if the default value of 80 is not used. -func getHost(r *http.Request) string { - if r.URL.IsAbs() { - return r.URL.Host - } - return r.Host -} - -func extractVars(input string, matches []int, names []string, output map[string]string) { - for i, name := range names { - output[name] = input[matches[2*i+2]:matches[2*i+3]] - } -} diff --git a/backend/vendor/github.com/gorilla/mux/route.go b/backend/vendor/github.com/gorilla/mux/route.go deleted file mode 100644 index dbf59080..00000000 --- a/backend/vendor/github.com/gorilla/mux/route.go +++ /dev/null @@ -1,736 +0,0 @@ -// Copyright 2012 The Gorilla Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package mux - -import ( - "errors" - "fmt" - "net/http" - "net/url" - "regexp" - "strings" -) - -// Route stores information to match a request and build URLs. -type Route struct { - // Request handler for the route. - handler http.Handler - // If true, this route never matches: it is only used to build URLs. - buildOnly bool - // The name used to build URLs. - name string - // Error resulted from building a route. - err error - - // "global" reference to all named routes - namedRoutes map[string]*Route - - // config possibly passed in from `Router` - routeConf -} - -// SkipClean reports whether path cleaning is enabled for this route via -// Router.SkipClean. -func (r *Route) SkipClean() bool { - return r.skipClean -} - -// Match matches the route against the request. -func (r *Route) Match(req *http.Request, match *RouteMatch) bool { - if r.buildOnly || r.err != nil { - return false - } - - var matchErr error - - // Match everything. - for _, m := range r.matchers { - if matched := m.Match(req, match); !matched { - if _, ok := m.(methodMatcher); ok { - matchErr = ErrMethodMismatch - continue - } - - // Ignore ErrNotFound errors. These errors arise from match call - // to Subrouters. - // - // This prevents subsequent matching subrouters from failing to - // run middleware. If not ignored, the middleware would see a - // non-nil MatchErr and be skipped, even when there was a - // matching route. - if match.MatchErr == ErrNotFound { - match.MatchErr = nil - } - - matchErr = nil - return false - } - } - - if matchErr != nil { - match.MatchErr = matchErr - return false - } - - if match.MatchErr == ErrMethodMismatch && r.handler != nil { - // We found a route which matches request method, clear MatchErr - match.MatchErr = nil - // Then override the mis-matched handler - match.Handler = r.handler - } - - // Yay, we have a match. Let's collect some info about it. - if match.Route == nil { - match.Route = r - } - if match.Handler == nil { - match.Handler = r.handler - } - if match.Vars == nil { - match.Vars = make(map[string]string) - } - - // Set variables. - r.regexp.setMatch(req, match, r) - return true -} - -// ---------------------------------------------------------------------------- -// Route attributes -// ---------------------------------------------------------------------------- - -// GetError returns an error resulted from building the route, if any. -func (r *Route) GetError() error { - return r.err -} - -// BuildOnly sets the route to never match: it is only used to build URLs. -func (r *Route) BuildOnly() *Route { - r.buildOnly = true - return r -} - -// Handler -------------------------------------------------------------------- - -// Handler sets a handler for the route. -func (r *Route) Handler(handler http.Handler) *Route { - if r.err == nil { - r.handler = handler - } - return r -} - -// HandlerFunc sets a handler function for the route. -func (r *Route) HandlerFunc(f func(http.ResponseWriter, *http.Request)) *Route { - return r.Handler(http.HandlerFunc(f)) -} - -// GetHandler returns the handler for the route, if any. -func (r *Route) GetHandler() http.Handler { - return r.handler -} - -// Name ----------------------------------------------------------------------- - -// Name sets the name for the route, used to build URLs. -// It is an error to call Name more than once on a route. -func (r *Route) Name(name string) *Route { - if r.name != "" { - r.err = fmt.Errorf("mux: route already has name %q, can't set %q", - r.name, name) - } - if r.err == nil { - r.name = name - r.namedRoutes[name] = r - } - return r -} - -// GetName returns the name for the route, if any. -func (r *Route) GetName() string { - return r.name -} - -// ---------------------------------------------------------------------------- -// Matchers -// ---------------------------------------------------------------------------- - -// matcher types try to match a request. -type matcher interface { - Match(*http.Request, *RouteMatch) bool -} - -// addMatcher adds a matcher to the route. -func (r *Route) addMatcher(m matcher) *Route { - if r.err == nil { - r.matchers = append(r.matchers, m) - } - return r -} - -// addRegexpMatcher adds a host or path matcher and builder to a route. -func (r *Route) addRegexpMatcher(tpl string, typ regexpType) error { - if r.err != nil { - return r.err - } - if typ == regexpTypePath || typ == regexpTypePrefix { - if len(tpl) > 0 && tpl[0] != '/' { - return fmt.Errorf("mux: path must start with a slash, got %q", tpl) - } - if r.regexp.path != nil { - tpl = strings.TrimRight(r.regexp.path.template, "/") + tpl - } - } - rr, err := newRouteRegexp(tpl, typ, routeRegexpOptions{ - strictSlash: r.strictSlash, - useEncodedPath: r.useEncodedPath, - }) - if err != nil { - return err - } - for _, q := range r.regexp.queries { - if err = uniqueVars(rr.varsN, q.varsN); err != nil { - return err - } - } - if typ == regexpTypeHost { - if r.regexp.path != nil { - if err = uniqueVars(rr.varsN, r.regexp.path.varsN); err != nil { - return err - } - } - r.regexp.host = rr - } else { - if r.regexp.host != nil { - if err = uniqueVars(rr.varsN, r.regexp.host.varsN); err != nil { - return err - } - } - if typ == regexpTypeQuery { - r.regexp.queries = append(r.regexp.queries, rr) - } else { - r.regexp.path = rr - } - } - r.addMatcher(rr) - return nil -} - -// Headers -------------------------------------------------------------------- - -// headerMatcher matches the request against header values. -type headerMatcher map[string]string - -func (m headerMatcher) Match(r *http.Request, match *RouteMatch) bool { - return matchMapWithString(m, r.Header, true) -} - -// Headers adds a matcher for request header values. -// It accepts a sequence of key/value pairs to be matched. For example: -// -// r := mux.NewRouter() -// r.Headers("Content-Type", "application/json", -// "X-Requested-With", "XMLHttpRequest") -// -// The above route will only match if both request header values match. -// If the value is an empty string, it will match any value if the key is set. -func (r *Route) Headers(pairs ...string) *Route { - if r.err == nil { - var headers map[string]string - headers, r.err = mapFromPairsToString(pairs...) - return r.addMatcher(headerMatcher(headers)) - } - return r -} - -// headerRegexMatcher matches the request against the route given a regex for the header -type headerRegexMatcher map[string]*regexp.Regexp - -func (m headerRegexMatcher) Match(r *http.Request, match *RouteMatch) bool { - return matchMapWithRegex(m, r.Header, true) -} - -// HeadersRegexp accepts a sequence of key/value pairs, where the value has regex -// support. For example: -// -// r := mux.NewRouter() -// r.HeadersRegexp("Content-Type", "application/(text|json)", -// "X-Requested-With", "XMLHttpRequest") -// -// The above route will only match if both the request header matches both regular expressions. -// If the value is an empty string, it will match any value if the key is set. -// Use the start and end of string anchors (^ and $) to match an exact value. -func (r *Route) HeadersRegexp(pairs ...string) *Route { - if r.err == nil { - var headers map[string]*regexp.Regexp - headers, r.err = mapFromPairsToRegex(pairs...) - return r.addMatcher(headerRegexMatcher(headers)) - } - return r -} - -// Host ----------------------------------------------------------------------- - -// Host adds a matcher for the URL host. -// It accepts a template with zero or more URL variables enclosed by {}. -// Variables can define an optional regexp pattern to be matched: -// -// - {name} matches anything until the next dot. -// -// - {name:pattern} matches the given regexp pattern. -// -// For example: -// -// r := mux.NewRouter() -// r.Host("www.example.com") -// r.Host("{subdomain}.domain.com") -// r.Host("{subdomain:[a-z]+}.domain.com") -// -// Variable names must be unique in a given route. They can be retrieved -// calling mux.Vars(request). -func (r *Route) Host(tpl string) *Route { - r.err = r.addRegexpMatcher(tpl, regexpTypeHost) - return r -} - -// MatcherFunc ---------------------------------------------------------------- - -// MatcherFunc is the function signature used by custom matchers. -type MatcherFunc func(*http.Request, *RouteMatch) bool - -// Match returns the match for a given request. -func (m MatcherFunc) Match(r *http.Request, match *RouteMatch) bool { - return m(r, match) -} - -// MatcherFunc adds a custom function to be used as request matcher. -func (r *Route) MatcherFunc(f MatcherFunc) *Route { - return r.addMatcher(f) -} - -// Methods -------------------------------------------------------------------- - -// methodMatcher matches the request against HTTP methods. -type methodMatcher []string - -func (m methodMatcher) Match(r *http.Request, match *RouteMatch) bool { - return matchInArray(m, r.Method) -} - -// Methods adds a matcher for HTTP methods. -// It accepts a sequence of one or more methods to be matched, e.g.: -// "GET", "POST", "PUT". -func (r *Route) Methods(methods ...string) *Route { - for k, v := range methods { - methods[k] = strings.ToUpper(v) - } - return r.addMatcher(methodMatcher(methods)) -} - -// Path ----------------------------------------------------------------------- - -// Path adds a matcher for the URL path. -// It accepts a template with zero or more URL variables enclosed by {}. The -// template must start with a "/". -// Variables can define an optional regexp pattern to be matched: -// -// - {name} matches anything until the next slash. -// -// - {name:pattern} matches the given regexp pattern. -// -// For example: -// -// r := mux.NewRouter() -// r.Path("/products/").Handler(ProductsHandler) -// r.Path("/products/{key}").Handler(ProductsHandler) -// r.Path("/articles/{category}/{id:[0-9]+}"). -// Handler(ArticleHandler) -// -// Variable names must be unique in a given route. They can be retrieved -// calling mux.Vars(request). -func (r *Route) Path(tpl string) *Route { - r.err = r.addRegexpMatcher(tpl, regexpTypePath) - return r -} - -// PathPrefix ----------------------------------------------------------------- - -// PathPrefix adds a matcher for the URL path prefix. This matches if the given -// template is a prefix of the full URL path. See Route.Path() for details on -// the tpl argument. -// -// Note that it does not treat slashes specially ("/foobar/" will be matched by -// the prefix "/foo") so you may want to use a trailing slash here. -// -// Also note that the setting of Router.StrictSlash() has no effect on routes -// with a PathPrefix matcher. -func (r *Route) PathPrefix(tpl string) *Route { - r.err = r.addRegexpMatcher(tpl, regexpTypePrefix) - return r -} - -// Query ---------------------------------------------------------------------- - -// Queries adds a matcher for URL query values. -// It accepts a sequence of key/value pairs. Values may define variables. -// For example: -// -// r := mux.NewRouter() -// r.Queries("foo", "bar", "id", "{id:[0-9]+}") -// -// The above route will only match if the URL contains the defined queries -// values, e.g.: ?foo=bar&id=42. -// -// If the value is an empty string, it will match any value if the key is set. -// -// Variables can define an optional regexp pattern to be matched: -// -// - {name} matches anything until the next slash. -// -// - {name:pattern} matches the given regexp pattern. -func (r *Route) Queries(pairs ...string) *Route { - length := len(pairs) - if length%2 != 0 { - r.err = fmt.Errorf( - "mux: number of parameters must be multiple of 2, got %v", pairs) - return nil - } - for i := 0; i < length; i += 2 { - if r.err = r.addRegexpMatcher(pairs[i]+"="+pairs[i+1], regexpTypeQuery); r.err != nil { - return r - } - } - - return r -} - -// Schemes -------------------------------------------------------------------- - -// schemeMatcher matches the request against URL schemes. -type schemeMatcher []string - -func (m schemeMatcher) Match(r *http.Request, match *RouteMatch) bool { - scheme := r.URL.Scheme - // https://golang.org/pkg/net/http/#Request - // "For [most] server requests, fields other than Path and RawQuery will be - // empty." - // Since we're an http muxer, the scheme is either going to be http or https - // though, so we can just set it based on the tls termination state. - if scheme == "" { - if r.TLS == nil { - scheme = "http" - } else { - scheme = "https" - } - } - return matchInArray(m, scheme) -} - -// Schemes adds a matcher for URL schemes. -// It accepts a sequence of schemes to be matched, e.g.: "http", "https". -// If the request's URL has a scheme set, it will be matched against. -// Generally, the URL scheme will only be set if a previous handler set it, -// such as the ProxyHeaders handler from gorilla/handlers. -// If unset, the scheme will be determined based on the request's TLS -// termination state. -// The first argument to Schemes will be used when constructing a route URL. -func (r *Route) Schemes(schemes ...string) *Route { - for k, v := range schemes { - schemes[k] = strings.ToLower(v) - } - if len(schemes) > 0 { - r.buildScheme = schemes[0] - } - return r.addMatcher(schemeMatcher(schemes)) -} - -// BuildVarsFunc -------------------------------------------------------------- - -// BuildVarsFunc is the function signature used by custom build variable -// functions (which can modify route variables before a route's URL is built). -type BuildVarsFunc func(map[string]string) map[string]string - -// BuildVarsFunc adds a custom function to be used to modify build variables -// before a route's URL is built. -func (r *Route) BuildVarsFunc(f BuildVarsFunc) *Route { - if r.buildVarsFunc != nil { - // compose the old and new functions - old := r.buildVarsFunc - r.buildVarsFunc = func(m map[string]string) map[string]string { - return f(old(m)) - } - } else { - r.buildVarsFunc = f - } - return r -} - -// Subrouter ------------------------------------------------------------------ - -// Subrouter creates a subrouter for the route. -// -// It will test the inner routes only if the parent route matched. For example: -// -// r := mux.NewRouter() -// s := r.Host("www.example.com").Subrouter() -// s.HandleFunc("/products/", ProductsHandler) -// s.HandleFunc("/products/{key}", ProductHandler) -// s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) -// -// Here, the routes registered in the subrouter won't be tested if the host -// doesn't match. -func (r *Route) Subrouter() *Router { - // initialize a subrouter with a copy of the parent route's configuration - router := &Router{routeConf: copyRouteConf(r.routeConf), namedRoutes: r.namedRoutes} - r.addMatcher(router) - return router -} - -// ---------------------------------------------------------------------------- -// URL building -// ---------------------------------------------------------------------------- - -// URL builds a URL for the route. -// -// It accepts a sequence of key/value pairs for the route variables. For -// example, given this route: -// -// r := mux.NewRouter() -// r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). -// Name("article") -// -// ...a URL for it can be built using: -// -// url, err := r.Get("article").URL("category", "technology", "id", "42") -// -// ...which will return an url.URL with the following path: -// -// "/articles/technology/42" -// -// This also works for host variables: -// -// r := mux.NewRouter() -// r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). -// Host("{subdomain}.domain.com"). -// Name("article") -// -// // url.String() will be "http://news.domain.com/articles/technology/42" -// url, err := r.Get("article").URL("subdomain", "news", -// "category", "technology", -// "id", "42") -// -// The scheme of the resulting url will be the first argument that was passed to Schemes: -// -// // url.String() will be "https://example.com" -// r := mux.NewRouter() -// url, err := r.Host("example.com") -// .Schemes("https", "http").URL() -// -// All variables defined in the route are required, and their values must -// conform to the corresponding patterns. -func (r *Route) URL(pairs ...string) (*url.URL, error) { - if r.err != nil { - return nil, r.err - } - values, err := r.prepareVars(pairs...) - if err != nil { - return nil, err - } - var scheme, host, path string - queries := make([]string, 0, len(r.regexp.queries)) - if r.regexp.host != nil { - if host, err = r.regexp.host.url(values); err != nil { - return nil, err - } - scheme = "http" - if r.buildScheme != "" { - scheme = r.buildScheme - } - } - if r.regexp.path != nil { - if path, err = r.regexp.path.url(values); err != nil { - return nil, err - } - } - for _, q := range r.regexp.queries { - var query string - if query, err = q.url(values); err != nil { - return nil, err - } - queries = append(queries, query) - } - return &url.URL{ - Scheme: scheme, - Host: host, - Path: path, - RawQuery: strings.Join(queries, "&"), - }, nil -} - -// URLHost builds the host part of the URL for a route. See Route.URL(). -// -// The route must have a host defined. -func (r *Route) URLHost(pairs ...string) (*url.URL, error) { - if r.err != nil { - return nil, r.err - } - if r.regexp.host == nil { - return nil, errors.New("mux: route doesn't have a host") - } - values, err := r.prepareVars(pairs...) - if err != nil { - return nil, err - } - host, err := r.regexp.host.url(values) - if err != nil { - return nil, err - } - u := &url.URL{ - Scheme: "http", - Host: host, - } - if r.buildScheme != "" { - u.Scheme = r.buildScheme - } - return u, nil -} - -// URLPath builds the path part of the URL for a route. See Route.URL(). -// -// The route must have a path defined. -func (r *Route) URLPath(pairs ...string) (*url.URL, error) { - if r.err != nil { - return nil, r.err - } - if r.regexp.path == nil { - return nil, errors.New("mux: route doesn't have a path") - } - values, err := r.prepareVars(pairs...) - if err != nil { - return nil, err - } - path, err := r.regexp.path.url(values) - if err != nil { - return nil, err - } - return &url.URL{ - Path: path, - }, nil -} - -// GetPathTemplate returns the template used to build the -// route match. -// This is useful for building simple REST API documentation and for instrumentation -// against third-party services. -// An error will be returned if the route does not define a path. -func (r *Route) GetPathTemplate() (string, error) { - if r.err != nil { - return "", r.err - } - if r.regexp.path == nil { - return "", errors.New("mux: route doesn't have a path") - } - return r.regexp.path.template, nil -} - -// GetPathRegexp returns the expanded regular expression used to match route path. -// This is useful for building simple REST API documentation and for instrumentation -// against third-party services. -// An error will be returned if the route does not define a path. -func (r *Route) GetPathRegexp() (string, error) { - if r.err != nil { - return "", r.err - } - if r.regexp.path == nil { - return "", errors.New("mux: route does not have a path") - } - return r.regexp.path.regexp.String(), nil -} - -// GetQueriesRegexp returns the expanded regular expressions used to match the -// route queries. -// This is useful for building simple REST API documentation and for instrumentation -// against third-party services. -// An error will be returned if the route does not have queries. -func (r *Route) GetQueriesRegexp() ([]string, error) { - if r.err != nil { - return nil, r.err - } - if r.regexp.queries == nil { - return nil, errors.New("mux: route doesn't have queries") - } - queries := make([]string, 0, len(r.regexp.queries)) - for _, query := range r.regexp.queries { - queries = append(queries, query.regexp.String()) - } - return queries, nil -} - -// GetQueriesTemplates returns the templates used to build the -// query matching. -// This is useful for building simple REST API documentation and for instrumentation -// against third-party services. -// An error will be returned if the route does not define queries. -func (r *Route) GetQueriesTemplates() ([]string, error) { - if r.err != nil { - return nil, r.err - } - if r.regexp.queries == nil { - return nil, errors.New("mux: route doesn't have queries") - } - queries := make([]string, 0, len(r.regexp.queries)) - for _, query := range r.regexp.queries { - queries = append(queries, query.template) - } - return queries, nil -} - -// GetMethods returns the methods the route matches against -// This is useful for building simple REST API documentation and for instrumentation -// against third-party services. -// An error will be returned if route does not have methods. -func (r *Route) GetMethods() ([]string, error) { - if r.err != nil { - return nil, r.err - } - for _, m := range r.matchers { - if methods, ok := m.(methodMatcher); ok { - return []string(methods), nil - } - } - return nil, errors.New("mux: route doesn't have methods") -} - -// GetHostTemplate returns the template used to build the -// route match. -// This is useful for building simple REST API documentation and for instrumentation -// against third-party services. -// An error will be returned if the route does not define a host. -func (r *Route) GetHostTemplate() (string, error) { - if r.err != nil { - return "", r.err - } - if r.regexp.host == nil { - return "", errors.New("mux: route doesn't have a host") - } - return r.regexp.host.template, nil -} - -// prepareVars converts the route variable pairs into a map. If the route has a -// BuildVarsFunc, it is invoked. -func (r *Route) prepareVars(pairs ...string) (map[string]string, error) { - m, err := mapFromPairsToString(pairs...) - if err != nil { - return nil, err - } - return r.buildVars(m), nil -} - -func (r *Route) buildVars(m map[string]string) map[string]string { - if r.buildVarsFunc != nil { - m = r.buildVarsFunc(m) - } - return m -} diff --git a/backend/vendor/github.com/gorilla/mux/test_helpers.go b/backend/vendor/github.com/gorilla/mux/test_helpers.go deleted file mode 100644 index 5f5c496d..00000000 --- a/backend/vendor/github.com/gorilla/mux/test_helpers.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2012 The Gorilla Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package mux - -import "net/http" - -// SetURLVars sets the URL variables for the given request, to be accessed via -// mux.Vars for testing route behaviour. Arguments are not modified, a shallow -// copy is returned. -// -// This API should only be used for testing purposes; it provides a way to -// inject variables into the request context. Alternatively, URL variables -// can be set by making a route that captures the required variables, -// starting a server and sending the request to that server. -func SetURLVars(r *http.Request, val map[string]string) *http.Request { - return requestWithVars(r, val) -} diff --git a/backend/vendor/github.com/gorilla/websocket/.gitignore b/backend/vendor/github.com/gorilla/websocket/.gitignore deleted file mode 100644 index cd3fcd1e..00000000 --- a/backend/vendor/github.com/gorilla/websocket/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe - -.idea/ -*.iml diff --git a/backend/vendor/github.com/gorilla/websocket/AUTHORS b/backend/vendor/github.com/gorilla/websocket/AUTHORS deleted file mode 100644 index 1931f400..00000000 --- a/backend/vendor/github.com/gorilla/websocket/AUTHORS +++ /dev/null @@ -1,9 +0,0 @@ -# This is the official list of Gorilla WebSocket authors for copyright -# purposes. -# -# Please keep the list sorted. - -Gary Burd -Google LLC (https://opensource.google.com/) -Joachim Bauch - diff --git a/backend/vendor/github.com/gorilla/websocket/LICENSE b/backend/vendor/github.com/gorilla/websocket/LICENSE deleted file mode 100644 index 9171c972..00000000 --- a/backend/vendor/github.com/gorilla/websocket/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/gorilla/websocket/README.md b/backend/vendor/github.com/gorilla/websocket/README.md deleted file mode 100644 index 2517a287..00000000 --- a/backend/vendor/github.com/gorilla/websocket/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Gorilla WebSocket - -[![GoDoc](https://godoc.org/github.com/gorilla/websocket?status.svg)](https://godoc.org/github.com/gorilla/websocket) -[![CircleCI](https://circleci.com/gh/gorilla/websocket.svg?style=svg)](https://circleci.com/gh/gorilla/websocket) - -Gorilla WebSocket is a [Go](http://golang.org/) implementation of the -[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. - - ---- - -⚠️ **[The Gorilla WebSocket Package is looking for a new maintainer](https://github.com/gorilla/websocket/issues/370)** - ---- - -### Documentation - -* [API Reference](https://pkg.go.dev/github.com/gorilla/websocket?tab=doc) -* [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat) -* [Command example](https://github.com/gorilla/websocket/tree/master/examples/command) -* [Client and server example](https://github.com/gorilla/websocket/tree/master/examples/echo) -* [File watch example](https://github.com/gorilla/websocket/tree/master/examples/filewatch) - -### Status - -The Gorilla WebSocket package provides a complete and tested implementation of -the [WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. The -package API is stable. - -### Installation - - go get github.com/gorilla/websocket - -### Protocol Compliance - -The Gorilla WebSocket package passes the server tests in the [Autobahn Test -Suite](https://github.com/crossbario/autobahn-testsuite) using the application in the [examples/autobahn -subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn). - diff --git a/backend/vendor/github.com/gorilla/websocket/client.go b/backend/vendor/github.com/gorilla/websocket/client.go deleted file mode 100644 index 2efd8355..00000000 --- a/backend/vendor/github.com/gorilla/websocket/client.go +++ /dev/null @@ -1,422 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bytes" - "context" - "crypto/tls" - "errors" - "io" - "io/ioutil" - "net" - "net/http" - "net/http/httptrace" - "net/url" - "strings" - "time" -) - -// ErrBadHandshake is returned when the server response to opening handshake is -// invalid. -var ErrBadHandshake = errors.New("websocket: bad handshake") - -var errInvalidCompression = errors.New("websocket: invalid compression negotiation") - -// NewClient creates a new client connection using the given net connection. -// The URL u specifies the host and request URI. Use requestHeader to specify -// the origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies -// (Cookie). Use the response.Header to get the selected subprotocol -// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). -// -// If the WebSocket handshake fails, ErrBadHandshake is returned along with a -// non-nil *http.Response so that callers can handle redirects, authentication, -// etc. -// -// Deprecated: Use Dialer instead. -func NewClient(netConn net.Conn, u *url.URL, requestHeader http.Header, readBufSize, writeBufSize int) (c *Conn, response *http.Response, err error) { - d := Dialer{ - ReadBufferSize: readBufSize, - WriteBufferSize: writeBufSize, - NetDial: func(net, addr string) (net.Conn, error) { - return netConn, nil - }, - } - return d.Dial(u.String(), requestHeader) -} - -// A Dialer contains options for connecting to WebSocket server. -// -// It is safe to call Dialer's methods concurrently. -type Dialer struct { - // NetDial specifies the dial function for creating TCP connections. If - // NetDial is nil, net.Dial is used. - NetDial func(network, addr string) (net.Conn, error) - - // NetDialContext specifies the dial function for creating TCP connections. If - // NetDialContext is nil, NetDial is used. - NetDialContext func(ctx context.Context, network, addr string) (net.Conn, error) - - // NetDialTLSContext specifies the dial function for creating TLS/TCP connections. If - // NetDialTLSContext is nil, NetDialContext is used. - // If NetDialTLSContext is set, Dial assumes the TLS handshake is done there and - // TLSClientConfig is ignored. - NetDialTLSContext func(ctx context.Context, network, addr string) (net.Conn, error) - - // Proxy specifies a function to return a proxy for a given - // Request. If the function returns a non-nil error, the - // request is aborted with the provided error. - // If Proxy is nil or returns a nil *URL, no proxy is used. - Proxy func(*http.Request) (*url.URL, error) - - // TLSClientConfig specifies the TLS configuration to use with tls.Client. - // If nil, the default configuration is used. - // If either NetDialTLS or NetDialTLSContext are set, Dial assumes the TLS handshake - // is done there and TLSClientConfig is ignored. - TLSClientConfig *tls.Config - - // HandshakeTimeout specifies the duration for the handshake to complete. - HandshakeTimeout time.Duration - - // ReadBufferSize and WriteBufferSize specify I/O buffer sizes in bytes. If a buffer - // size is zero, then a useful default size is used. The I/O buffer sizes - // do not limit the size of the messages that can be sent or received. - ReadBufferSize, WriteBufferSize int - - // WriteBufferPool is a pool of buffers for write operations. If the value - // is not set, then write buffers are allocated to the connection for the - // lifetime of the connection. - // - // A pool is most useful when the application has a modest volume of writes - // across a large number of connections. - // - // Applications should use a single pool for each unique value of - // WriteBufferSize. - WriteBufferPool BufferPool - - // Subprotocols specifies the client's requested subprotocols. - Subprotocols []string - - // EnableCompression specifies if the client should attempt to negotiate - // per message compression (RFC 7692). Setting this value to true does not - // guarantee that compression will be supported. Currently only "no context - // takeover" modes are supported. - EnableCompression bool - - // Jar specifies the cookie jar. - // If Jar is nil, cookies are not sent in requests and ignored - // in responses. - Jar http.CookieJar -} - -// Dial creates a new client connection by calling DialContext with a background context. -func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { - return d.DialContext(context.Background(), urlStr, requestHeader) -} - -var errMalformedURL = errors.New("malformed ws or wss URL") - -func hostPortNoPort(u *url.URL) (hostPort, hostNoPort string) { - hostPort = u.Host - hostNoPort = u.Host - if i := strings.LastIndex(u.Host, ":"); i > strings.LastIndex(u.Host, "]") { - hostNoPort = hostNoPort[:i] - } else { - switch u.Scheme { - case "wss": - hostPort += ":443" - case "https": - hostPort += ":443" - default: - hostPort += ":80" - } - } - return hostPort, hostNoPort -} - -// DefaultDialer is a dialer with all fields set to the default values. -var DefaultDialer = &Dialer{ - Proxy: http.ProxyFromEnvironment, - HandshakeTimeout: 45 * time.Second, -} - -// nilDialer is dialer to use when receiver is nil. -var nilDialer = *DefaultDialer - -// DialContext creates a new client connection. Use requestHeader to specify the -// origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies (Cookie). -// Use the response.Header to get the selected subprotocol -// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). -// -// The context will be used in the request and in the Dialer. -// -// If the WebSocket handshake fails, ErrBadHandshake is returned along with a -// non-nil *http.Response so that callers can handle redirects, authentication, -// etcetera. The response body may not contain the entire response and does not -// need to be closed by the application. -func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { - if d == nil { - d = &nilDialer - } - - challengeKey, err := generateChallengeKey() - if err != nil { - return nil, nil, err - } - - u, err := url.Parse(urlStr) - if err != nil { - return nil, nil, err - } - - switch u.Scheme { - case "ws": - u.Scheme = "http" - case "wss": - u.Scheme = "https" - default: - return nil, nil, errMalformedURL - } - - if u.User != nil { - // User name and password are not allowed in websocket URIs. - return nil, nil, errMalformedURL - } - - req := &http.Request{ - Method: http.MethodGet, - URL: u, - Proto: "HTTP/1.1", - ProtoMajor: 1, - ProtoMinor: 1, - Header: make(http.Header), - Host: u.Host, - } - req = req.WithContext(ctx) - - // Set the cookies present in the cookie jar of the dialer - if d.Jar != nil { - for _, cookie := range d.Jar.Cookies(u) { - req.AddCookie(cookie) - } - } - - // Set the request headers using the capitalization for names and values in - // RFC examples. Although the capitalization shouldn't matter, there are - // servers that depend on it. The Header.Set method is not used because the - // method canonicalizes the header names. - req.Header["Upgrade"] = []string{"websocket"} - req.Header["Connection"] = []string{"Upgrade"} - req.Header["Sec-WebSocket-Key"] = []string{challengeKey} - req.Header["Sec-WebSocket-Version"] = []string{"13"} - if len(d.Subprotocols) > 0 { - req.Header["Sec-WebSocket-Protocol"] = []string{strings.Join(d.Subprotocols, ", ")} - } - for k, vs := range requestHeader { - switch { - case k == "Host": - if len(vs) > 0 { - req.Host = vs[0] - } - case k == "Upgrade" || - k == "Connection" || - k == "Sec-Websocket-Key" || - k == "Sec-Websocket-Version" || - k == "Sec-Websocket-Extensions" || - (k == "Sec-Websocket-Protocol" && len(d.Subprotocols) > 0): - return nil, nil, errors.New("websocket: duplicate header not allowed: " + k) - case k == "Sec-Websocket-Protocol": - req.Header["Sec-WebSocket-Protocol"] = vs - default: - req.Header[k] = vs - } - } - - if d.EnableCompression { - req.Header["Sec-WebSocket-Extensions"] = []string{"permessage-deflate; server_no_context_takeover; client_no_context_takeover"} - } - - if d.HandshakeTimeout != 0 { - var cancel func() - ctx, cancel = context.WithTimeout(ctx, d.HandshakeTimeout) - defer cancel() - } - - // Get network dial function. - var netDial func(network, add string) (net.Conn, error) - - switch u.Scheme { - case "http": - if d.NetDialContext != nil { - netDial = func(network, addr string) (net.Conn, error) { - return d.NetDialContext(ctx, network, addr) - } - } else if d.NetDial != nil { - netDial = d.NetDial - } - case "https": - if d.NetDialTLSContext != nil { - netDial = func(network, addr string) (net.Conn, error) { - return d.NetDialTLSContext(ctx, network, addr) - } - } else if d.NetDialContext != nil { - netDial = func(network, addr string) (net.Conn, error) { - return d.NetDialContext(ctx, network, addr) - } - } else if d.NetDial != nil { - netDial = d.NetDial - } - default: - return nil, nil, errMalformedURL - } - - if netDial == nil { - netDialer := &net.Dialer{} - netDial = func(network, addr string) (net.Conn, error) { - return netDialer.DialContext(ctx, network, addr) - } - } - - // If needed, wrap the dial function to set the connection deadline. - if deadline, ok := ctx.Deadline(); ok { - forwardDial := netDial - netDial = func(network, addr string) (net.Conn, error) { - c, err := forwardDial(network, addr) - if err != nil { - return nil, err - } - err = c.SetDeadline(deadline) - if err != nil { - c.Close() - return nil, err - } - return c, nil - } - } - - // If needed, wrap the dial function to connect through a proxy. - if d.Proxy != nil { - proxyURL, err := d.Proxy(req) - if err != nil { - return nil, nil, err - } - if proxyURL != nil { - dialer, err := proxy_FromURL(proxyURL, netDialerFunc(netDial)) - if err != nil { - return nil, nil, err - } - netDial = dialer.Dial - } - } - - hostPort, hostNoPort := hostPortNoPort(u) - trace := httptrace.ContextClientTrace(ctx) - if trace != nil && trace.GetConn != nil { - trace.GetConn(hostPort) - } - - netConn, err := netDial("tcp", hostPort) - if trace != nil && trace.GotConn != nil { - trace.GotConn(httptrace.GotConnInfo{ - Conn: netConn, - }) - } - if err != nil { - return nil, nil, err - } - - defer func() { - if netConn != nil { - netConn.Close() - } - }() - - if u.Scheme == "https" && d.NetDialTLSContext == nil { - // If NetDialTLSContext is set, assume that the TLS handshake has already been done - - cfg := cloneTLSConfig(d.TLSClientConfig) - if cfg.ServerName == "" { - cfg.ServerName = hostNoPort - } - tlsConn := tls.Client(netConn, cfg) - netConn = tlsConn - - if trace != nil && trace.TLSHandshakeStart != nil { - trace.TLSHandshakeStart() - } - err := doHandshake(ctx, tlsConn, cfg) - if trace != nil && trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(tlsConn.ConnectionState(), err) - } - - if err != nil { - return nil, nil, err - } - } - - conn := newConn(netConn, false, d.ReadBufferSize, d.WriteBufferSize, d.WriteBufferPool, nil, nil) - - if err := req.Write(netConn); err != nil { - return nil, nil, err - } - - if trace != nil && trace.GotFirstResponseByte != nil { - if peek, err := conn.br.Peek(1); err == nil && len(peek) == 1 { - trace.GotFirstResponseByte() - } - } - - resp, err := http.ReadResponse(conn.br, req) - if err != nil { - return nil, nil, err - } - - if d.Jar != nil { - if rc := resp.Cookies(); len(rc) > 0 { - d.Jar.SetCookies(u, rc) - } - } - - if resp.StatusCode != 101 || - !tokenListContainsValue(resp.Header, "Upgrade", "websocket") || - !tokenListContainsValue(resp.Header, "Connection", "upgrade") || - resp.Header.Get("Sec-Websocket-Accept") != computeAcceptKey(challengeKey) { - // Before closing the network connection on return from this - // function, slurp up some of the response to aid application - // debugging. - buf := make([]byte, 1024) - n, _ := io.ReadFull(resp.Body, buf) - resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n])) - return nil, resp, ErrBadHandshake - } - - for _, ext := range parseExtensions(resp.Header) { - if ext[""] != "permessage-deflate" { - continue - } - _, snct := ext["server_no_context_takeover"] - _, cnct := ext["client_no_context_takeover"] - if !snct || !cnct { - return nil, resp, errInvalidCompression - } - conn.newCompressionWriter = compressNoContextTakeover - conn.newDecompressionReader = decompressNoContextTakeover - break - } - - resp.Body = ioutil.NopCloser(bytes.NewReader([]byte{})) - conn.subprotocol = resp.Header.Get("Sec-Websocket-Protocol") - - netConn.SetDeadline(time.Time{}) - netConn = nil // to avoid close in defer. - return conn, resp, nil -} - -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return cfg.Clone() -} diff --git a/backend/vendor/github.com/gorilla/websocket/compression.go b/backend/vendor/github.com/gorilla/websocket/compression.go deleted file mode 100644 index 813ffb1e..00000000 --- a/backend/vendor/github.com/gorilla/websocket/compression.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "compress/flate" - "errors" - "io" - "strings" - "sync" -) - -const ( - minCompressionLevel = -2 // flate.HuffmanOnly not defined in Go < 1.6 - maxCompressionLevel = flate.BestCompression - defaultCompressionLevel = 1 -) - -var ( - flateWriterPools [maxCompressionLevel - minCompressionLevel + 1]sync.Pool - flateReaderPool = sync.Pool{New: func() interface{} { - return flate.NewReader(nil) - }} -) - -func decompressNoContextTakeover(r io.Reader) io.ReadCloser { - const tail = - // Add four bytes as specified in RFC - "\x00\x00\xff\xff" + - // Add final block to squelch unexpected EOF error from flate reader. - "\x01\x00\x00\xff\xff" - - fr, _ := flateReaderPool.Get().(io.ReadCloser) - fr.(flate.Resetter).Reset(io.MultiReader(r, strings.NewReader(tail)), nil) - return &flateReadWrapper{fr} -} - -func isValidCompressionLevel(level int) bool { - return minCompressionLevel <= level && level <= maxCompressionLevel -} - -func compressNoContextTakeover(w io.WriteCloser, level int) io.WriteCloser { - p := &flateWriterPools[level-minCompressionLevel] - tw := &truncWriter{w: w} - fw, _ := p.Get().(*flate.Writer) - if fw == nil { - fw, _ = flate.NewWriter(tw, level) - } else { - fw.Reset(tw) - } - return &flateWriteWrapper{fw: fw, tw: tw, p: p} -} - -// truncWriter is an io.Writer that writes all but the last four bytes of the -// stream to another io.Writer. -type truncWriter struct { - w io.WriteCloser - n int - p [4]byte -} - -func (w *truncWriter) Write(p []byte) (int, error) { - n := 0 - - // fill buffer first for simplicity. - if w.n < len(w.p) { - n = copy(w.p[w.n:], p) - p = p[n:] - w.n += n - if len(p) == 0 { - return n, nil - } - } - - m := len(p) - if m > len(w.p) { - m = len(w.p) - } - - if nn, err := w.w.Write(w.p[:m]); err != nil { - return n + nn, err - } - - copy(w.p[:], w.p[m:]) - copy(w.p[len(w.p)-m:], p[len(p)-m:]) - nn, err := w.w.Write(p[:len(p)-m]) - return n + nn, err -} - -type flateWriteWrapper struct { - fw *flate.Writer - tw *truncWriter - p *sync.Pool -} - -func (w *flateWriteWrapper) Write(p []byte) (int, error) { - if w.fw == nil { - return 0, errWriteClosed - } - return w.fw.Write(p) -} - -func (w *flateWriteWrapper) Close() error { - if w.fw == nil { - return errWriteClosed - } - err1 := w.fw.Flush() - w.p.Put(w.fw) - w.fw = nil - if w.tw.p != [4]byte{0, 0, 0xff, 0xff} { - return errors.New("websocket: internal error, unexpected bytes at end of flate stream") - } - err2 := w.tw.w.Close() - if err1 != nil { - return err1 - } - return err2 -} - -type flateReadWrapper struct { - fr io.ReadCloser -} - -func (r *flateReadWrapper) Read(p []byte) (int, error) { - if r.fr == nil { - return 0, io.ErrClosedPipe - } - n, err := r.fr.Read(p) - if err == io.EOF { - // Preemptively place the reader back in the pool. This helps with - // scenarios where the application does not call NextReader() soon after - // this final read. - r.Close() - } - return n, err -} - -func (r *flateReadWrapper) Close() error { - if r.fr == nil { - return io.ErrClosedPipe - } - err := r.fr.Close() - flateReaderPool.Put(r.fr) - r.fr = nil - return err -} diff --git a/backend/vendor/github.com/gorilla/websocket/conn.go b/backend/vendor/github.com/gorilla/websocket/conn.go deleted file mode 100644 index 331eebc8..00000000 --- a/backend/vendor/github.com/gorilla/websocket/conn.go +++ /dev/null @@ -1,1230 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "encoding/binary" - "errors" - "io" - "io/ioutil" - "math/rand" - "net" - "strconv" - "strings" - "sync" - "time" - "unicode/utf8" -) - -const ( - // Frame header byte 0 bits from Section 5.2 of RFC 6455 - finalBit = 1 << 7 - rsv1Bit = 1 << 6 - rsv2Bit = 1 << 5 - rsv3Bit = 1 << 4 - - // Frame header byte 1 bits from Section 5.2 of RFC 6455 - maskBit = 1 << 7 - - maxFrameHeaderSize = 2 + 8 + 4 // Fixed header + length + mask - maxControlFramePayloadSize = 125 - - writeWait = time.Second - - defaultReadBufferSize = 4096 - defaultWriteBufferSize = 4096 - - continuationFrame = 0 - noFrame = -1 -) - -// Close codes defined in RFC 6455, section 11.7. -const ( - CloseNormalClosure = 1000 - CloseGoingAway = 1001 - CloseProtocolError = 1002 - CloseUnsupportedData = 1003 - CloseNoStatusReceived = 1005 - CloseAbnormalClosure = 1006 - CloseInvalidFramePayloadData = 1007 - ClosePolicyViolation = 1008 - CloseMessageTooBig = 1009 - CloseMandatoryExtension = 1010 - CloseInternalServerErr = 1011 - CloseServiceRestart = 1012 - CloseTryAgainLater = 1013 - CloseTLSHandshake = 1015 -) - -// The message types are defined in RFC 6455, section 11.8. -const ( - // TextMessage denotes a text data message. The text message payload is - // interpreted as UTF-8 encoded text data. - TextMessage = 1 - - // BinaryMessage denotes a binary data message. - BinaryMessage = 2 - - // CloseMessage denotes a close control message. The optional message - // payload contains a numeric code and text. Use the FormatCloseMessage - // function to format a close message payload. - CloseMessage = 8 - - // PingMessage denotes a ping control message. The optional message payload - // is UTF-8 encoded text. - PingMessage = 9 - - // PongMessage denotes a pong control message. The optional message payload - // is UTF-8 encoded text. - PongMessage = 10 -) - -// ErrCloseSent is returned when the application writes a message to the -// connection after sending a close message. -var ErrCloseSent = errors.New("websocket: close sent") - -// ErrReadLimit is returned when reading a message that is larger than the -// read limit set for the connection. -var ErrReadLimit = errors.New("websocket: read limit exceeded") - -// netError satisfies the net Error interface. -type netError struct { - msg string - temporary bool - timeout bool -} - -func (e *netError) Error() string { return e.msg } -func (e *netError) Temporary() bool { return e.temporary } -func (e *netError) Timeout() bool { return e.timeout } - -// CloseError represents a close message. -type CloseError struct { - // Code is defined in RFC 6455, section 11.7. - Code int - - // Text is the optional text payload. - Text string -} - -func (e *CloseError) Error() string { - s := []byte("websocket: close ") - s = strconv.AppendInt(s, int64(e.Code), 10) - switch e.Code { - case CloseNormalClosure: - s = append(s, " (normal)"...) - case CloseGoingAway: - s = append(s, " (going away)"...) - case CloseProtocolError: - s = append(s, " (protocol error)"...) - case CloseUnsupportedData: - s = append(s, " (unsupported data)"...) - case CloseNoStatusReceived: - s = append(s, " (no status)"...) - case CloseAbnormalClosure: - s = append(s, " (abnormal closure)"...) - case CloseInvalidFramePayloadData: - s = append(s, " (invalid payload data)"...) - case ClosePolicyViolation: - s = append(s, " (policy violation)"...) - case CloseMessageTooBig: - s = append(s, " (message too big)"...) - case CloseMandatoryExtension: - s = append(s, " (mandatory extension missing)"...) - case CloseInternalServerErr: - s = append(s, " (internal server error)"...) - case CloseTLSHandshake: - s = append(s, " (TLS handshake error)"...) - } - if e.Text != "" { - s = append(s, ": "...) - s = append(s, e.Text...) - } - return string(s) -} - -// IsCloseError returns boolean indicating whether the error is a *CloseError -// with one of the specified codes. -func IsCloseError(err error, codes ...int) bool { - if e, ok := err.(*CloseError); ok { - for _, code := range codes { - if e.Code == code { - return true - } - } - } - return false -} - -// IsUnexpectedCloseError returns boolean indicating whether the error is a -// *CloseError with a code not in the list of expected codes. -func IsUnexpectedCloseError(err error, expectedCodes ...int) bool { - if e, ok := err.(*CloseError); ok { - for _, code := range expectedCodes { - if e.Code == code { - return false - } - } - return true - } - return false -} - -var ( - errWriteTimeout = &netError{msg: "websocket: write timeout", timeout: true, temporary: true} - errUnexpectedEOF = &CloseError{Code: CloseAbnormalClosure, Text: io.ErrUnexpectedEOF.Error()} - errBadWriteOpCode = errors.New("websocket: bad write message type") - errWriteClosed = errors.New("websocket: write closed") - errInvalidControlFrame = errors.New("websocket: invalid control frame") -) - -func newMaskKey() [4]byte { - n := rand.Uint32() - return [4]byte{byte(n), byte(n >> 8), byte(n >> 16), byte(n >> 24)} -} - -func hideTempErr(err error) error { - if e, ok := err.(net.Error); ok && e.Temporary() { - err = &netError{msg: e.Error(), timeout: e.Timeout()} - } - return err -} - -func isControl(frameType int) bool { - return frameType == CloseMessage || frameType == PingMessage || frameType == PongMessage -} - -func isData(frameType int) bool { - return frameType == TextMessage || frameType == BinaryMessage -} - -var validReceivedCloseCodes = map[int]bool{ - // see http://www.iana.org/assignments/websocket/websocket.xhtml#close-code-number - - CloseNormalClosure: true, - CloseGoingAway: true, - CloseProtocolError: true, - CloseUnsupportedData: true, - CloseNoStatusReceived: false, - CloseAbnormalClosure: false, - CloseInvalidFramePayloadData: true, - ClosePolicyViolation: true, - CloseMessageTooBig: true, - CloseMandatoryExtension: true, - CloseInternalServerErr: true, - CloseServiceRestart: true, - CloseTryAgainLater: true, - CloseTLSHandshake: false, -} - -func isValidReceivedCloseCode(code int) bool { - return validReceivedCloseCodes[code] || (code >= 3000 && code <= 4999) -} - -// BufferPool represents a pool of buffers. The *sync.Pool type satisfies this -// interface. The type of the value stored in a pool is not specified. -type BufferPool interface { - // Get gets a value from the pool or returns nil if the pool is empty. - Get() interface{} - // Put adds a value to the pool. - Put(interface{}) -} - -// writePoolData is the type added to the write buffer pool. This wrapper is -// used to prevent applications from peeking at and depending on the values -// added to the pool. -type writePoolData struct{ buf []byte } - -// The Conn type represents a WebSocket connection. -type Conn struct { - conn net.Conn - isServer bool - subprotocol string - - // Write fields - mu chan struct{} // used as mutex to protect write to conn - writeBuf []byte // frame is constructed in this buffer. - writePool BufferPool - writeBufSize int - writeDeadline time.Time - writer io.WriteCloser // the current writer returned to the application - isWriting bool // for best-effort concurrent write detection - - writeErrMu sync.Mutex - writeErr error - - enableWriteCompression bool - compressionLevel int - newCompressionWriter func(io.WriteCloser, int) io.WriteCloser - - // Read fields - reader io.ReadCloser // the current reader returned to the application - readErr error - br *bufio.Reader - // bytes remaining in current frame. - // set setReadRemaining to safely update this value and prevent overflow - readRemaining int64 - readFinal bool // true the current message has more frames. - readLength int64 // Message size. - readLimit int64 // Maximum message size. - readMaskPos int - readMaskKey [4]byte - handlePong func(string) error - handlePing func(string) error - handleClose func(int, string) error - readErrCount int - messageReader *messageReader // the current low-level reader - - readDecompress bool // whether last read frame had RSV1 set - newDecompressionReader func(io.Reader) io.ReadCloser -} - -func newConn(conn net.Conn, isServer bool, readBufferSize, writeBufferSize int, writeBufferPool BufferPool, br *bufio.Reader, writeBuf []byte) *Conn { - - if br == nil { - if readBufferSize == 0 { - readBufferSize = defaultReadBufferSize - } else if readBufferSize < maxControlFramePayloadSize { - // must be large enough for control frame - readBufferSize = maxControlFramePayloadSize - } - br = bufio.NewReaderSize(conn, readBufferSize) - } - - if writeBufferSize <= 0 { - writeBufferSize = defaultWriteBufferSize - } - writeBufferSize += maxFrameHeaderSize - - if writeBuf == nil && writeBufferPool == nil { - writeBuf = make([]byte, writeBufferSize) - } - - mu := make(chan struct{}, 1) - mu <- struct{}{} - c := &Conn{ - isServer: isServer, - br: br, - conn: conn, - mu: mu, - readFinal: true, - writeBuf: writeBuf, - writePool: writeBufferPool, - writeBufSize: writeBufferSize, - enableWriteCompression: true, - compressionLevel: defaultCompressionLevel, - } - c.SetCloseHandler(nil) - c.SetPingHandler(nil) - c.SetPongHandler(nil) - return c -} - -// setReadRemaining tracks the number of bytes remaining on the connection. If n -// overflows, an ErrReadLimit is returned. -func (c *Conn) setReadRemaining(n int64) error { - if n < 0 { - return ErrReadLimit - } - - c.readRemaining = n - return nil -} - -// Subprotocol returns the negotiated protocol for the connection. -func (c *Conn) Subprotocol() string { - return c.subprotocol -} - -// Close closes the underlying network connection without sending or waiting -// for a close message. -func (c *Conn) Close() error { - return c.conn.Close() -} - -// LocalAddr returns the local network address. -func (c *Conn) LocalAddr() net.Addr { - return c.conn.LocalAddr() -} - -// RemoteAddr returns the remote network address. -func (c *Conn) RemoteAddr() net.Addr { - return c.conn.RemoteAddr() -} - -// Write methods - -func (c *Conn) writeFatal(err error) error { - err = hideTempErr(err) - c.writeErrMu.Lock() - if c.writeErr == nil { - c.writeErr = err - } - c.writeErrMu.Unlock() - return err -} - -func (c *Conn) read(n int) ([]byte, error) { - p, err := c.br.Peek(n) - if err == io.EOF { - err = errUnexpectedEOF - } - c.br.Discard(len(p)) - return p, err -} - -func (c *Conn) write(frameType int, deadline time.Time, buf0, buf1 []byte) error { - <-c.mu - defer func() { c.mu <- struct{}{} }() - - c.writeErrMu.Lock() - err := c.writeErr - c.writeErrMu.Unlock() - if err != nil { - return err - } - - c.conn.SetWriteDeadline(deadline) - if len(buf1) == 0 { - _, err = c.conn.Write(buf0) - } else { - err = c.writeBufs(buf0, buf1) - } - if err != nil { - return c.writeFatal(err) - } - if frameType == CloseMessage { - c.writeFatal(ErrCloseSent) - } - return nil -} - -func (c *Conn) writeBufs(bufs ...[]byte) error { - b := net.Buffers(bufs) - _, err := b.WriteTo(c.conn) - return err -} - -// WriteControl writes a control message with the given deadline. The allowed -// message types are CloseMessage, PingMessage and PongMessage. -func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) error { - if !isControl(messageType) { - return errBadWriteOpCode - } - if len(data) > maxControlFramePayloadSize { - return errInvalidControlFrame - } - - b0 := byte(messageType) | finalBit - b1 := byte(len(data)) - if !c.isServer { - b1 |= maskBit - } - - buf := make([]byte, 0, maxFrameHeaderSize+maxControlFramePayloadSize) - buf = append(buf, b0, b1) - - if c.isServer { - buf = append(buf, data...) - } else { - key := newMaskKey() - buf = append(buf, key[:]...) - buf = append(buf, data...) - maskBytes(key, 0, buf[6:]) - } - - d := 1000 * time.Hour - if !deadline.IsZero() { - d = deadline.Sub(time.Now()) - if d < 0 { - return errWriteTimeout - } - } - - timer := time.NewTimer(d) - select { - case <-c.mu: - timer.Stop() - case <-timer.C: - return errWriteTimeout - } - defer func() { c.mu <- struct{}{} }() - - c.writeErrMu.Lock() - err := c.writeErr - c.writeErrMu.Unlock() - if err != nil { - return err - } - - c.conn.SetWriteDeadline(deadline) - _, err = c.conn.Write(buf) - if err != nil { - return c.writeFatal(err) - } - if messageType == CloseMessage { - c.writeFatal(ErrCloseSent) - } - return err -} - -// beginMessage prepares a connection and message writer for a new message. -func (c *Conn) beginMessage(mw *messageWriter, messageType int) error { - // Close previous writer if not already closed by the application. It's - // probably better to return an error in this situation, but we cannot - // change this without breaking existing applications. - if c.writer != nil { - c.writer.Close() - c.writer = nil - } - - if !isControl(messageType) && !isData(messageType) { - return errBadWriteOpCode - } - - c.writeErrMu.Lock() - err := c.writeErr - c.writeErrMu.Unlock() - if err != nil { - return err - } - - mw.c = c - mw.frameType = messageType - mw.pos = maxFrameHeaderSize - - if c.writeBuf == nil { - wpd, ok := c.writePool.Get().(writePoolData) - if ok { - c.writeBuf = wpd.buf - } else { - c.writeBuf = make([]byte, c.writeBufSize) - } - } - return nil -} - -// NextWriter returns a writer for the next message to send. The writer's Close -// method flushes the complete message to the network. -// -// There can be at most one open writer on a connection. NextWriter closes the -// previous writer if the application has not already done so. -// -// All message types (TextMessage, BinaryMessage, CloseMessage, PingMessage and -// PongMessage) are supported. -func (c *Conn) NextWriter(messageType int) (io.WriteCloser, error) { - var mw messageWriter - if err := c.beginMessage(&mw, messageType); err != nil { - return nil, err - } - c.writer = &mw - if c.newCompressionWriter != nil && c.enableWriteCompression && isData(messageType) { - w := c.newCompressionWriter(c.writer, c.compressionLevel) - mw.compress = true - c.writer = w - } - return c.writer, nil -} - -type messageWriter struct { - c *Conn - compress bool // whether next call to flushFrame should set RSV1 - pos int // end of data in writeBuf. - frameType int // type of the current frame. - err error -} - -func (w *messageWriter) endMessage(err error) error { - if w.err != nil { - return err - } - c := w.c - w.err = err - c.writer = nil - if c.writePool != nil { - c.writePool.Put(writePoolData{buf: c.writeBuf}) - c.writeBuf = nil - } - return err -} - -// flushFrame writes buffered data and extra as a frame to the network. The -// final argument indicates that this is the last frame in the message. -func (w *messageWriter) flushFrame(final bool, extra []byte) error { - c := w.c - length := w.pos - maxFrameHeaderSize + len(extra) - - // Check for invalid control frames. - if isControl(w.frameType) && - (!final || length > maxControlFramePayloadSize) { - return w.endMessage(errInvalidControlFrame) - } - - b0 := byte(w.frameType) - if final { - b0 |= finalBit - } - if w.compress { - b0 |= rsv1Bit - } - w.compress = false - - b1 := byte(0) - if !c.isServer { - b1 |= maskBit - } - - // Assume that the frame starts at beginning of c.writeBuf. - framePos := 0 - if c.isServer { - // Adjust up if mask not included in the header. - framePos = 4 - } - - switch { - case length >= 65536: - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | 127 - binary.BigEndian.PutUint64(c.writeBuf[framePos+2:], uint64(length)) - case length > 125: - framePos += 6 - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | 126 - binary.BigEndian.PutUint16(c.writeBuf[framePos+2:], uint16(length)) - default: - framePos += 8 - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | byte(length) - } - - if !c.isServer { - key := newMaskKey() - copy(c.writeBuf[maxFrameHeaderSize-4:], key[:]) - maskBytes(key, 0, c.writeBuf[maxFrameHeaderSize:w.pos]) - if len(extra) > 0 { - return w.endMessage(c.writeFatal(errors.New("websocket: internal error, extra used in client mode"))) - } - } - - // Write the buffers to the connection with best-effort detection of - // concurrent writes. See the concurrency section in the package - // documentation for more info. - - if c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = true - - err := c.write(w.frameType, c.writeDeadline, c.writeBuf[framePos:w.pos], extra) - - if !c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = false - - if err != nil { - return w.endMessage(err) - } - - if final { - w.endMessage(errWriteClosed) - return nil - } - - // Setup for next frame. - w.pos = maxFrameHeaderSize - w.frameType = continuationFrame - return nil -} - -func (w *messageWriter) ncopy(max int) (int, error) { - n := len(w.c.writeBuf) - w.pos - if n <= 0 { - if err := w.flushFrame(false, nil); err != nil { - return 0, err - } - n = len(w.c.writeBuf) - w.pos - } - if n > max { - n = max - } - return n, nil -} - -func (w *messageWriter) Write(p []byte) (int, error) { - if w.err != nil { - return 0, w.err - } - - if len(p) > 2*len(w.c.writeBuf) && w.c.isServer { - // Don't buffer large messages. - err := w.flushFrame(false, p) - if err != nil { - return 0, err - } - return len(p), nil - } - - nn := len(p) - for len(p) > 0 { - n, err := w.ncopy(len(p)) - if err != nil { - return 0, err - } - copy(w.c.writeBuf[w.pos:], p[:n]) - w.pos += n - p = p[n:] - } - return nn, nil -} - -func (w *messageWriter) WriteString(p string) (int, error) { - if w.err != nil { - return 0, w.err - } - - nn := len(p) - for len(p) > 0 { - n, err := w.ncopy(len(p)) - if err != nil { - return 0, err - } - copy(w.c.writeBuf[w.pos:], p[:n]) - w.pos += n - p = p[n:] - } - return nn, nil -} - -func (w *messageWriter) ReadFrom(r io.Reader) (nn int64, err error) { - if w.err != nil { - return 0, w.err - } - for { - if w.pos == len(w.c.writeBuf) { - err = w.flushFrame(false, nil) - if err != nil { - break - } - } - var n int - n, err = r.Read(w.c.writeBuf[w.pos:]) - w.pos += n - nn += int64(n) - if err != nil { - if err == io.EOF { - err = nil - } - break - } - } - return nn, err -} - -func (w *messageWriter) Close() error { - if w.err != nil { - return w.err - } - return w.flushFrame(true, nil) -} - -// WritePreparedMessage writes prepared message into connection. -func (c *Conn) WritePreparedMessage(pm *PreparedMessage) error { - frameType, frameData, err := pm.frame(prepareKey{ - isServer: c.isServer, - compress: c.newCompressionWriter != nil && c.enableWriteCompression && isData(pm.messageType), - compressionLevel: c.compressionLevel, - }) - if err != nil { - return err - } - if c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = true - err = c.write(frameType, c.writeDeadline, frameData, nil) - if !c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = false - return err -} - -// WriteMessage is a helper method for getting a writer using NextWriter, -// writing the message and closing the writer. -func (c *Conn) WriteMessage(messageType int, data []byte) error { - - if c.isServer && (c.newCompressionWriter == nil || !c.enableWriteCompression) { - // Fast path with no allocations and single frame. - - var mw messageWriter - if err := c.beginMessage(&mw, messageType); err != nil { - return err - } - n := copy(c.writeBuf[mw.pos:], data) - mw.pos += n - data = data[n:] - return mw.flushFrame(true, data) - } - - w, err := c.NextWriter(messageType) - if err != nil { - return err - } - if _, err = w.Write(data); err != nil { - return err - } - return w.Close() -} - -// SetWriteDeadline sets the write deadline on the underlying network -// connection. After a write has timed out, the websocket state is corrupt and -// all future writes will return an error. A zero value for t means writes will -// not time out. -func (c *Conn) SetWriteDeadline(t time.Time) error { - c.writeDeadline = t - return nil -} - -// Read methods - -func (c *Conn) advanceFrame() (int, error) { - // 1. Skip remainder of previous frame. - - if c.readRemaining > 0 { - if _, err := io.CopyN(ioutil.Discard, c.br, c.readRemaining); err != nil { - return noFrame, err - } - } - - // 2. Read and parse first two bytes of frame header. - // To aid debugging, collect and report all errors in the first two bytes - // of the header. - - var errors []string - - p, err := c.read(2) - if err != nil { - return noFrame, err - } - - frameType := int(p[0] & 0xf) - final := p[0]&finalBit != 0 - rsv1 := p[0]&rsv1Bit != 0 - rsv2 := p[0]&rsv2Bit != 0 - rsv3 := p[0]&rsv3Bit != 0 - mask := p[1]&maskBit != 0 - c.setReadRemaining(int64(p[1] & 0x7f)) - - c.readDecompress = false - if rsv1 { - if c.newDecompressionReader != nil { - c.readDecompress = true - } else { - errors = append(errors, "RSV1 set") - } - } - - if rsv2 { - errors = append(errors, "RSV2 set") - } - - if rsv3 { - errors = append(errors, "RSV3 set") - } - - switch frameType { - case CloseMessage, PingMessage, PongMessage: - if c.readRemaining > maxControlFramePayloadSize { - errors = append(errors, "len > 125 for control") - } - if !final { - errors = append(errors, "FIN not set on control") - } - case TextMessage, BinaryMessage: - if !c.readFinal { - errors = append(errors, "data before FIN") - } - c.readFinal = final - case continuationFrame: - if c.readFinal { - errors = append(errors, "continuation after FIN") - } - c.readFinal = final - default: - errors = append(errors, "bad opcode "+strconv.Itoa(frameType)) - } - - if mask != c.isServer { - errors = append(errors, "bad MASK") - } - - if len(errors) > 0 { - return noFrame, c.handleProtocolError(strings.Join(errors, ", ")) - } - - // 3. Read and parse frame length as per - // https://tools.ietf.org/html/rfc6455#section-5.2 - // - // The length of the "Payload data", in bytes: if 0-125, that is the payload - // length. - // - If 126, the following 2 bytes interpreted as a 16-bit unsigned - // integer are the payload length. - // - If 127, the following 8 bytes interpreted as - // a 64-bit unsigned integer (the most significant bit MUST be 0) are the - // payload length. Multibyte length quantities are expressed in network byte - // order. - - switch c.readRemaining { - case 126: - p, err := c.read(2) - if err != nil { - return noFrame, err - } - - if err := c.setReadRemaining(int64(binary.BigEndian.Uint16(p))); err != nil { - return noFrame, err - } - case 127: - p, err := c.read(8) - if err != nil { - return noFrame, err - } - - if err := c.setReadRemaining(int64(binary.BigEndian.Uint64(p))); err != nil { - return noFrame, err - } - } - - // 4. Handle frame masking. - - if mask { - c.readMaskPos = 0 - p, err := c.read(len(c.readMaskKey)) - if err != nil { - return noFrame, err - } - copy(c.readMaskKey[:], p) - } - - // 5. For text and binary messages, enforce read limit and return. - - if frameType == continuationFrame || frameType == TextMessage || frameType == BinaryMessage { - - c.readLength += c.readRemaining - // Don't allow readLength to overflow in the presence of a large readRemaining - // counter. - if c.readLength < 0 { - return noFrame, ErrReadLimit - } - - if c.readLimit > 0 && c.readLength > c.readLimit { - c.WriteControl(CloseMessage, FormatCloseMessage(CloseMessageTooBig, ""), time.Now().Add(writeWait)) - return noFrame, ErrReadLimit - } - - return frameType, nil - } - - // 6. Read control frame payload. - - var payload []byte - if c.readRemaining > 0 { - payload, err = c.read(int(c.readRemaining)) - c.setReadRemaining(0) - if err != nil { - return noFrame, err - } - if c.isServer { - maskBytes(c.readMaskKey, 0, payload) - } - } - - // 7. Process control frame payload. - - switch frameType { - case PongMessage: - if err := c.handlePong(string(payload)); err != nil { - return noFrame, err - } - case PingMessage: - if err := c.handlePing(string(payload)); err != nil { - return noFrame, err - } - case CloseMessage: - closeCode := CloseNoStatusReceived - closeText := "" - if len(payload) >= 2 { - closeCode = int(binary.BigEndian.Uint16(payload)) - if !isValidReceivedCloseCode(closeCode) { - return noFrame, c.handleProtocolError("bad close code " + strconv.Itoa(closeCode)) - } - closeText = string(payload[2:]) - if !utf8.ValidString(closeText) { - return noFrame, c.handleProtocolError("invalid utf8 payload in close frame") - } - } - if err := c.handleClose(closeCode, closeText); err != nil { - return noFrame, err - } - return noFrame, &CloseError{Code: closeCode, Text: closeText} - } - - return frameType, nil -} - -func (c *Conn) handleProtocolError(message string) error { - data := FormatCloseMessage(CloseProtocolError, message) - if len(data) > maxControlFramePayloadSize { - data = data[:maxControlFramePayloadSize] - } - c.WriteControl(CloseMessage, data, time.Now().Add(writeWait)) - return errors.New("websocket: " + message) -} - -// NextReader returns the next data message received from the peer. The -// returned messageType is either TextMessage or BinaryMessage. -// -// There can be at most one open reader on a connection. NextReader discards -// the previous message if the application has not already consumed it. -// -// Applications must break out of the application's read loop when this method -// returns a non-nil error value. Errors returned from this method are -// permanent. Once this method returns a non-nil error, all subsequent calls to -// this method return the same error. -func (c *Conn) NextReader() (messageType int, r io.Reader, err error) { - // Close previous reader, only relevant for decompression. - if c.reader != nil { - c.reader.Close() - c.reader = nil - } - - c.messageReader = nil - c.readLength = 0 - - for c.readErr == nil { - frameType, err := c.advanceFrame() - if err != nil { - c.readErr = hideTempErr(err) - break - } - - if frameType == TextMessage || frameType == BinaryMessage { - c.messageReader = &messageReader{c} - c.reader = c.messageReader - if c.readDecompress { - c.reader = c.newDecompressionReader(c.reader) - } - return frameType, c.reader, nil - } - } - - // Applications that do handle the error returned from this method spin in - // tight loop on connection failure. To help application developers detect - // this error, panic on repeated reads to the failed connection. - c.readErrCount++ - if c.readErrCount >= 1000 { - panic("repeated read on failed websocket connection") - } - - return noFrame, nil, c.readErr -} - -type messageReader struct{ c *Conn } - -func (r *messageReader) Read(b []byte) (int, error) { - c := r.c - if c.messageReader != r { - return 0, io.EOF - } - - for c.readErr == nil { - - if c.readRemaining > 0 { - if int64(len(b)) > c.readRemaining { - b = b[:c.readRemaining] - } - n, err := c.br.Read(b) - c.readErr = hideTempErr(err) - if c.isServer { - c.readMaskPos = maskBytes(c.readMaskKey, c.readMaskPos, b[:n]) - } - rem := c.readRemaining - rem -= int64(n) - c.setReadRemaining(rem) - if c.readRemaining > 0 && c.readErr == io.EOF { - c.readErr = errUnexpectedEOF - } - return n, c.readErr - } - - if c.readFinal { - c.messageReader = nil - return 0, io.EOF - } - - frameType, err := c.advanceFrame() - switch { - case err != nil: - c.readErr = hideTempErr(err) - case frameType == TextMessage || frameType == BinaryMessage: - c.readErr = errors.New("websocket: internal error, unexpected text or binary in Reader") - } - } - - err := c.readErr - if err == io.EOF && c.messageReader == r { - err = errUnexpectedEOF - } - return 0, err -} - -func (r *messageReader) Close() error { - return nil -} - -// ReadMessage is a helper method for getting a reader using NextReader and -// reading from that reader to a buffer. -func (c *Conn) ReadMessage() (messageType int, p []byte, err error) { - var r io.Reader - messageType, r, err = c.NextReader() - if err != nil { - return messageType, nil, err - } - p, err = ioutil.ReadAll(r) - return messageType, p, err -} - -// SetReadDeadline sets the read deadline on the underlying network connection. -// After a read has timed out, the websocket connection state is corrupt and -// all future reads will return an error. A zero value for t means reads will -// not time out. -func (c *Conn) SetReadDeadline(t time.Time) error { - return c.conn.SetReadDeadline(t) -} - -// SetReadLimit sets the maximum size in bytes for a message read from the peer. If a -// message exceeds the limit, the connection sends a close message to the peer -// and returns ErrReadLimit to the application. -func (c *Conn) SetReadLimit(limit int64) { - c.readLimit = limit -} - -// CloseHandler returns the current close handler -func (c *Conn) CloseHandler() func(code int, text string) error { - return c.handleClose -} - -// SetCloseHandler sets the handler for close messages received from the peer. -// The code argument to h is the received close code or CloseNoStatusReceived -// if the close message is empty. The default close handler sends a close -// message back to the peer. -// -// The handler function is called from the NextReader, ReadMessage and message -// reader Read methods. The application must read the connection to process -// close messages as described in the section on Control Messages above. -// -// The connection read methods return a CloseError when a close message is -// received. Most applications should handle close messages as part of their -// normal error handling. Applications should only set a close handler when the -// application must perform some action before sending a close message back to -// the peer. -func (c *Conn) SetCloseHandler(h func(code int, text string) error) { - if h == nil { - h = func(code int, text string) error { - message := FormatCloseMessage(code, "") - c.WriteControl(CloseMessage, message, time.Now().Add(writeWait)) - return nil - } - } - c.handleClose = h -} - -// PingHandler returns the current ping handler -func (c *Conn) PingHandler() func(appData string) error { - return c.handlePing -} - -// SetPingHandler sets the handler for ping messages received from the peer. -// The appData argument to h is the PING message application data. The default -// ping handler sends a pong to the peer. -// -// The handler function is called from the NextReader, ReadMessage and message -// reader Read methods. The application must read the connection to process -// ping messages as described in the section on Control Messages above. -func (c *Conn) SetPingHandler(h func(appData string) error) { - if h == nil { - h = func(message string) error { - err := c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) - if err == ErrCloseSent { - return nil - } else if e, ok := err.(net.Error); ok && e.Temporary() { - return nil - } - return err - } - } - c.handlePing = h -} - -// PongHandler returns the current pong handler -func (c *Conn) PongHandler() func(appData string) error { - return c.handlePong -} - -// SetPongHandler sets the handler for pong messages received from the peer. -// The appData argument to h is the PONG message application data. The default -// pong handler does nothing. -// -// The handler function is called from the NextReader, ReadMessage and message -// reader Read methods. The application must read the connection to process -// pong messages as described in the section on Control Messages above. -func (c *Conn) SetPongHandler(h func(appData string) error) { - if h == nil { - h = func(string) error { return nil } - } - c.handlePong = h -} - -// UnderlyingConn returns the internal net.Conn. This can be used to further -// modifications to connection specific flags. -func (c *Conn) UnderlyingConn() net.Conn { - return c.conn -} - -// EnableWriteCompression enables and disables write compression of -// subsequent text and binary messages. This function is a noop if -// compression was not negotiated with the peer. -func (c *Conn) EnableWriteCompression(enable bool) { - c.enableWriteCompression = enable -} - -// SetCompressionLevel sets the flate compression level for subsequent text and -// binary messages. This function is a noop if compression was not negotiated -// with the peer. See the compress/flate package for a description of -// compression levels. -func (c *Conn) SetCompressionLevel(level int) error { - if !isValidCompressionLevel(level) { - return errors.New("websocket: invalid compression level") - } - c.compressionLevel = level - return nil -} - -// FormatCloseMessage formats closeCode and text as a WebSocket close message. -// An empty message is returned for code CloseNoStatusReceived. -func FormatCloseMessage(closeCode int, text string) []byte { - if closeCode == CloseNoStatusReceived { - // Return empty message because it's illegal to send - // CloseNoStatusReceived. Return non-nil value in case application - // checks for nil. - return []byte{} - } - buf := make([]byte, 2+len(text)) - binary.BigEndian.PutUint16(buf, uint16(closeCode)) - copy(buf[2:], text) - return buf -} diff --git a/backend/vendor/github.com/gorilla/websocket/doc.go b/backend/vendor/github.com/gorilla/websocket/doc.go deleted file mode 100644 index 677a8272..00000000 --- a/backend/vendor/github.com/gorilla/websocket/doc.go +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package websocket implements the WebSocket protocol defined in RFC 6455. -// -// # Overview -// -// The Conn type represents a WebSocket connection. A server application calls -// the Upgrader.Upgrade method from an HTTP request handler to get a *Conn: -// -// var upgrader = websocket.Upgrader{ -// ReadBufferSize: 1024, -// WriteBufferSize: 1024, -// } -// -// func handler(w http.ResponseWriter, r *http.Request) { -// conn, err := upgrader.Upgrade(w, r, nil) -// if err != nil { -// log.Println(err) -// return -// } -// ... Use conn to send and receive messages. -// } -// -// Call the connection's WriteMessage and ReadMessage methods to send and -// receive messages as a slice of bytes. This snippet of code shows how to echo -// messages using these methods: -// -// for { -// messageType, p, err := conn.ReadMessage() -// if err != nil { -// log.Println(err) -// return -// } -// if err := conn.WriteMessage(messageType, p); err != nil { -// log.Println(err) -// return -// } -// } -// -// In above snippet of code, p is a []byte and messageType is an int with value -// websocket.BinaryMessage or websocket.TextMessage. -// -// An application can also send and receive messages using the io.WriteCloser -// and io.Reader interfaces. To send a message, call the connection NextWriter -// method to get an io.WriteCloser, write the message to the writer and close -// the writer when done. To receive a message, call the connection NextReader -// method to get an io.Reader and read until io.EOF is returned. This snippet -// shows how to echo messages using the NextWriter and NextReader methods: -// -// for { -// messageType, r, err := conn.NextReader() -// if err != nil { -// return -// } -// w, err := conn.NextWriter(messageType) -// if err != nil { -// return err -// } -// if _, err := io.Copy(w, r); err != nil { -// return err -// } -// if err := w.Close(); err != nil { -// return err -// } -// } -// -// # Data Messages -// -// The WebSocket protocol distinguishes between text and binary data messages. -// Text messages are interpreted as UTF-8 encoded text. The interpretation of -// binary messages is left to the application. -// -// This package uses the TextMessage and BinaryMessage integer constants to -// identify the two data message types. The ReadMessage and NextReader methods -// return the type of the received message. The messageType argument to the -// WriteMessage and NextWriter methods specifies the type of a sent message. -// -// It is the application's responsibility to ensure that text messages are -// valid UTF-8 encoded text. -// -// # Control Messages -// -// The WebSocket protocol defines three types of control messages: close, ping -// and pong. Call the connection WriteControl, WriteMessage or NextWriter -// methods to send a control message to the peer. -// -// Connections handle received close messages by calling the handler function -// set with the SetCloseHandler method and by returning a *CloseError from the -// NextReader, ReadMessage or the message Read method. The default close -// handler sends a close message to the peer. -// -// Connections handle received ping messages by calling the handler function -// set with the SetPingHandler method. The default ping handler sends a pong -// message to the peer. -// -// Connections handle received pong messages by calling the handler function -// set with the SetPongHandler method. The default pong handler does nothing. -// If an application sends ping messages, then the application should set a -// pong handler to receive the corresponding pong. -// -// The control message handler functions are called from the NextReader, -// ReadMessage and message reader Read methods. The default close and ping -// handlers can block these methods for a short time when the handler writes to -// the connection. -// -// The application must read the connection to process close, ping and pong -// messages sent from the peer. If the application is not otherwise interested -// in messages from the peer, then the application should start a goroutine to -// read and discard messages from the peer. A simple example is: -// -// func readLoop(c *websocket.Conn) { -// for { -// if _, _, err := c.NextReader(); err != nil { -// c.Close() -// break -// } -// } -// } -// -// # Concurrency -// -// Connections support one concurrent reader and one concurrent writer. -// -// Applications are responsible for ensuring that no more than one goroutine -// calls the write methods (NextWriter, SetWriteDeadline, WriteMessage, -// WriteJSON, EnableWriteCompression, SetCompressionLevel) concurrently and -// that no more than one goroutine calls the read methods (NextReader, -// SetReadDeadline, ReadMessage, ReadJSON, SetPongHandler, SetPingHandler) -// concurrently. -// -// The Close and WriteControl methods can be called concurrently with all other -// methods. -// -// # Origin Considerations -// -// Web browsers allow Javascript applications to open a WebSocket connection to -// any host. It's up to the server to enforce an origin policy using the Origin -// request header sent by the browser. -// -// The Upgrader calls the function specified in the CheckOrigin field to check -// the origin. If the CheckOrigin function returns false, then the Upgrade -// method fails the WebSocket handshake with HTTP status 403. -// -// If the CheckOrigin field is nil, then the Upgrader uses a safe default: fail -// the handshake if the Origin request header is present and the Origin host is -// not equal to the Host request header. -// -// The deprecated package-level Upgrade function does not perform origin -// checking. The application is responsible for checking the Origin header -// before calling the Upgrade function. -// -// # Buffers -// -// Connections buffer network input and output to reduce the number -// of system calls when reading or writing messages. -// -// Write buffers are also used for constructing WebSocket frames. See RFC 6455, -// Section 5 for a discussion of message framing. A WebSocket frame header is -// written to the network each time a write buffer is flushed to the network. -// Decreasing the size of the write buffer can increase the amount of framing -// overhead on the connection. -// -// The buffer sizes in bytes are specified by the ReadBufferSize and -// WriteBufferSize fields in the Dialer and Upgrader. The Dialer uses a default -// size of 4096 when a buffer size field is set to zero. The Upgrader reuses -// buffers created by the HTTP server when a buffer size field is set to zero. -// The HTTP server buffers have a size of 4096 at the time of this writing. -// -// The buffer sizes do not limit the size of a message that can be read or -// written by a connection. -// -// Buffers are held for the lifetime of the connection by default. If the -// Dialer or Upgrader WriteBufferPool field is set, then a connection holds the -// write buffer only when writing a message. -// -// Applications should tune the buffer sizes to balance memory use and -// performance. Increasing the buffer size uses more memory, but can reduce the -// number of system calls to read or write the network. In the case of writing, -// increasing the buffer size can reduce the number of frame headers written to -// the network. -// -// Some guidelines for setting buffer parameters are: -// -// Limit the buffer sizes to the maximum expected message size. Buffers larger -// than the largest message do not provide any benefit. -// -// Depending on the distribution of message sizes, setting the buffer size to -// a value less than the maximum expected message size can greatly reduce memory -// use with a small impact on performance. Here's an example: If 99% of the -// messages are smaller than 256 bytes and the maximum message size is 512 -// bytes, then a buffer size of 256 bytes will result in 1.01 more system calls -// than a buffer size of 512 bytes. The memory savings is 50%. -// -// A write buffer pool is useful when the application has a modest number -// writes over a large number of connections. when buffers are pooled, a larger -// buffer size has a reduced impact on total memory use and has the benefit of -// reducing system calls and frame overhead. -// -// # Compression EXPERIMENTAL -// -// Per message compression extensions (RFC 7692) are experimentally supported -// by this package in a limited capacity. Setting the EnableCompression option -// to true in Dialer or Upgrader will attempt to negotiate per message deflate -// support. -// -// var upgrader = websocket.Upgrader{ -// EnableCompression: true, -// } -// -// If compression was successfully negotiated with the connection's peer, any -// message received in compressed form will be automatically decompressed. -// All Read methods will return uncompressed bytes. -// -// Per message compression of messages written to a connection can be enabled -// or disabled by calling the corresponding Conn method: -// -// conn.EnableWriteCompression(false) -// -// Currently this package does not support compression with "context takeover". -// This means that messages must be compressed and decompressed in isolation, -// without retaining sliding window or dictionary state across messages. For -// more details refer to RFC 7692. -// -// Use of compression is experimental and may result in decreased performance. -package websocket diff --git a/backend/vendor/github.com/gorilla/websocket/join.go b/backend/vendor/github.com/gorilla/websocket/join.go deleted file mode 100644 index c64f8c82..00000000 --- a/backend/vendor/github.com/gorilla/websocket/join.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2019 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "io" - "strings" -) - -// JoinMessages concatenates received messages to create a single io.Reader. -// The string term is appended to each message. The returned reader does not -// support concurrent calls to the Read method. -func JoinMessages(c *Conn, term string) io.Reader { - return &joinReader{c: c, term: term} -} - -type joinReader struct { - c *Conn - term string - r io.Reader -} - -func (r *joinReader) Read(p []byte) (int, error) { - if r.r == nil { - var err error - _, r.r, err = r.c.NextReader() - if err != nil { - return 0, err - } - if r.term != "" { - r.r = io.MultiReader(r.r, strings.NewReader(r.term)) - } - } - n, err := r.r.Read(p) - if err == io.EOF { - err = nil - r.r = nil - } - return n, err -} diff --git a/backend/vendor/github.com/gorilla/websocket/json.go b/backend/vendor/github.com/gorilla/websocket/json.go deleted file mode 100644 index dc2c1f64..00000000 --- a/backend/vendor/github.com/gorilla/websocket/json.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "encoding/json" - "io" -) - -// WriteJSON writes the JSON encoding of v as a message. -// -// Deprecated: Use c.WriteJSON instead. -func WriteJSON(c *Conn, v interface{}) error { - return c.WriteJSON(v) -} - -// WriteJSON writes the JSON encoding of v as a message. -// -// See the documentation for encoding/json Marshal for details about the -// conversion of Go values to JSON. -func (c *Conn) WriteJSON(v interface{}) error { - w, err := c.NextWriter(TextMessage) - if err != nil { - return err - } - err1 := json.NewEncoder(w).Encode(v) - err2 := w.Close() - if err1 != nil { - return err1 - } - return err2 -} - -// ReadJSON reads the next JSON-encoded message from the connection and stores -// it in the value pointed to by v. -// -// Deprecated: Use c.ReadJSON instead. -func ReadJSON(c *Conn, v interface{}) error { - return c.ReadJSON(v) -} - -// ReadJSON reads the next JSON-encoded message from the connection and stores -// it in the value pointed to by v. -// -// See the documentation for the encoding/json Unmarshal function for details -// about the conversion of JSON to a Go value. -func (c *Conn) ReadJSON(v interface{}) error { - _, r, err := c.NextReader() - if err != nil { - return err - } - err = json.NewDecoder(r).Decode(v) - if err == io.EOF { - // One value is expected in the message. - err = io.ErrUnexpectedEOF - } - return err -} diff --git a/backend/vendor/github.com/gorilla/websocket/mask.go b/backend/vendor/github.com/gorilla/websocket/mask.go deleted file mode 100644 index d0742bf2..00000000 --- a/backend/vendor/github.com/gorilla/websocket/mask.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. Use of -// this source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -//go:build !appengine -// +build !appengine - -package websocket - -import "unsafe" - -const wordSize = int(unsafe.Sizeof(uintptr(0))) - -func maskBytes(key [4]byte, pos int, b []byte) int { - // Mask one byte at a time for small buffers. - if len(b) < 2*wordSize { - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - return pos & 3 - } - - // Mask one byte at a time to word boundary. - if n := int(uintptr(unsafe.Pointer(&b[0]))) % wordSize; n != 0 { - n = wordSize - n - for i := range b[:n] { - b[i] ^= key[pos&3] - pos++ - } - b = b[n:] - } - - // Create aligned word size key. - var k [wordSize]byte - for i := range k { - k[i] = key[(pos+i)&3] - } - kw := *(*uintptr)(unsafe.Pointer(&k)) - - // Mask one word at a time. - n := (len(b) / wordSize) * wordSize - for i := 0; i < n; i += wordSize { - *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&b[0])) + uintptr(i))) ^= kw - } - - // Mask one byte at a time for remaining bytes. - b = b[n:] - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - - return pos & 3 -} diff --git a/backend/vendor/github.com/gorilla/websocket/mask_safe.go b/backend/vendor/github.com/gorilla/websocket/mask_safe.go deleted file mode 100644 index 36250ca7..00000000 --- a/backend/vendor/github.com/gorilla/websocket/mask_safe.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. Use of -// this source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -//go:build appengine -// +build appengine - -package websocket - -func maskBytes(key [4]byte, pos int, b []byte) int { - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - return pos & 3 -} diff --git a/backend/vendor/github.com/gorilla/websocket/prepared.go b/backend/vendor/github.com/gorilla/websocket/prepared.go deleted file mode 100644 index c854225e..00000000 --- a/backend/vendor/github.com/gorilla/websocket/prepared.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bytes" - "net" - "sync" - "time" -) - -// PreparedMessage caches on the wire representations of a message payload. -// Use PreparedMessage to efficiently send a message payload to multiple -// connections. PreparedMessage is especially useful when compression is used -// because the CPU and memory expensive compression operation can be executed -// once for a given set of compression options. -type PreparedMessage struct { - messageType int - data []byte - mu sync.Mutex - frames map[prepareKey]*preparedFrame -} - -// prepareKey defines a unique set of options to cache prepared frames in PreparedMessage. -type prepareKey struct { - isServer bool - compress bool - compressionLevel int -} - -// preparedFrame contains data in wire representation. -type preparedFrame struct { - once sync.Once - data []byte -} - -// NewPreparedMessage returns an initialized PreparedMessage. You can then send -// it to connection using WritePreparedMessage method. Valid wire -// representation will be calculated lazily only once for a set of current -// connection options. -func NewPreparedMessage(messageType int, data []byte) (*PreparedMessage, error) { - pm := &PreparedMessage{ - messageType: messageType, - frames: make(map[prepareKey]*preparedFrame), - data: data, - } - - // Prepare a plain server frame. - _, frameData, err := pm.frame(prepareKey{isServer: true, compress: false}) - if err != nil { - return nil, err - } - - // To protect against caller modifying the data argument, remember the data - // copied to the plain server frame. - pm.data = frameData[len(frameData)-len(data):] - return pm, nil -} - -func (pm *PreparedMessage) frame(key prepareKey) (int, []byte, error) { - pm.mu.Lock() - frame, ok := pm.frames[key] - if !ok { - frame = &preparedFrame{} - pm.frames[key] = frame - } - pm.mu.Unlock() - - var err error - frame.once.Do(func() { - // Prepare a frame using a 'fake' connection. - // TODO: Refactor code in conn.go to allow more direct construction of - // the frame. - mu := make(chan struct{}, 1) - mu <- struct{}{} - var nc prepareConn - c := &Conn{ - conn: &nc, - mu: mu, - isServer: key.isServer, - compressionLevel: key.compressionLevel, - enableWriteCompression: true, - writeBuf: make([]byte, defaultWriteBufferSize+maxFrameHeaderSize), - } - if key.compress { - c.newCompressionWriter = compressNoContextTakeover - } - err = c.WriteMessage(pm.messageType, pm.data) - frame.data = nc.buf.Bytes() - }) - return pm.messageType, frame.data, err -} - -type prepareConn struct { - buf bytes.Buffer - net.Conn -} - -func (pc *prepareConn) Write(p []byte) (int, error) { return pc.buf.Write(p) } -func (pc *prepareConn) SetWriteDeadline(t time.Time) error { return nil } diff --git a/backend/vendor/github.com/gorilla/websocket/proxy.go b/backend/vendor/github.com/gorilla/websocket/proxy.go deleted file mode 100644 index e0f466b7..00000000 --- a/backend/vendor/github.com/gorilla/websocket/proxy.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "encoding/base64" - "errors" - "net" - "net/http" - "net/url" - "strings" -) - -type netDialerFunc func(network, addr string) (net.Conn, error) - -func (fn netDialerFunc) Dial(network, addr string) (net.Conn, error) { - return fn(network, addr) -} - -func init() { - proxy_RegisterDialerType("http", func(proxyURL *url.URL, forwardDialer proxy_Dialer) (proxy_Dialer, error) { - return &httpProxyDialer{proxyURL: proxyURL, forwardDial: forwardDialer.Dial}, nil - }) -} - -type httpProxyDialer struct { - proxyURL *url.URL - forwardDial func(network, addr string) (net.Conn, error) -} - -func (hpd *httpProxyDialer) Dial(network string, addr string) (net.Conn, error) { - hostPort, _ := hostPortNoPort(hpd.proxyURL) - conn, err := hpd.forwardDial(network, hostPort) - if err != nil { - return nil, err - } - - connectHeader := make(http.Header) - if user := hpd.proxyURL.User; user != nil { - proxyUser := user.Username() - if proxyPassword, passwordSet := user.Password(); passwordSet { - credential := base64.StdEncoding.EncodeToString([]byte(proxyUser + ":" + proxyPassword)) - connectHeader.Set("Proxy-Authorization", "Basic "+credential) - } - } - - connectReq := &http.Request{ - Method: http.MethodConnect, - URL: &url.URL{Opaque: addr}, - Host: addr, - Header: connectHeader, - } - - if err := connectReq.Write(conn); err != nil { - conn.Close() - return nil, err - } - - // Read response. It's OK to use and discard buffered reader here becaue - // the remote server does not speak until spoken to. - br := bufio.NewReader(conn) - resp, err := http.ReadResponse(br, connectReq) - if err != nil { - conn.Close() - return nil, err - } - - if resp.StatusCode != 200 { - conn.Close() - f := strings.SplitN(resp.Status, " ", 2) - return nil, errors.New(f[1]) - } - return conn, nil -} diff --git a/backend/vendor/github.com/gorilla/websocket/server.go b/backend/vendor/github.com/gorilla/websocket/server.go deleted file mode 100644 index 24d53b38..00000000 --- a/backend/vendor/github.com/gorilla/websocket/server.go +++ /dev/null @@ -1,365 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "errors" - "io" - "net/http" - "net/url" - "strings" - "time" -) - -// HandshakeError describes an error with the handshake from the peer. -type HandshakeError struct { - message string -} - -func (e HandshakeError) Error() string { return e.message } - -// Upgrader specifies parameters for upgrading an HTTP connection to a -// WebSocket connection. -// -// It is safe to call Upgrader's methods concurrently. -type Upgrader struct { - // HandshakeTimeout specifies the duration for the handshake to complete. - HandshakeTimeout time.Duration - - // ReadBufferSize and WriteBufferSize specify I/O buffer sizes in bytes. If a buffer - // size is zero, then buffers allocated by the HTTP server are used. The - // I/O buffer sizes do not limit the size of the messages that can be sent - // or received. - ReadBufferSize, WriteBufferSize int - - // WriteBufferPool is a pool of buffers for write operations. If the value - // is not set, then write buffers are allocated to the connection for the - // lifetime of the connection. - // - // A pool is most useful when the application has a modest volume of writes - // across a large number of connections. - // - // Applications should use a single pool for each unique value of - // WriteBufferSize. - WriteBufferPool BufferPool - - // Subprotocols specifies the server's supported protocols in order of - // preference. If this field is not nil, then the Upgrade method negotiates a - // subprotocol by selecting the first match in this list with a protocol - // requested by the client. If there's no match, then no protocol is - // negotiated (the Sec-Websocket-Protocol header is not included in the - // handshake response). - Subprotocols []string - - // Error specifies the function for generating HTTP error responses. If Error - // is nil, then http.Error is used to generate the HTTP response. - Error func(w http.ResponseWriter, r *http.Request, status int, reason error) - - // CheckOrigin returns true if the request Origin header is acceptable. If - // CheckOrigin is nil, then a safe default is used: return false if the - // Origin request header is present and the origin host is not equal to - // request Host header. - // - // A CheckOrigin function should carefully validate the request origin to - // prevent cross-site request forgery. - CheckOrigin func(r *http.Request) bool - - // EnableCompression specify if the server should attempt to negotiate per - // message compression (RFC 7692). Setting this value to true does not - // guarantee that compression will be supported. Currently only "no context - // takeover" modes are supported. - EnableCompression bool -} - -func (u *Upgrader) returnError(w http.ResponseWriter, r *http.Request, status int, reason string) (*Conn, error) { - err := HandshakeError{reason} - if u.Error != nil { - u.Error(w, r, status, err) - } else { - w.Header().Set("Sec-Websocket-Version", "13") - http.Error(w, http.StatusText(status), status) - } - return nil, err -} - -// checkSameOrigin returns true if the origin is not set or is equal to the request host. -func checkSameOrigin(r *http.Request) bool { - origin := r.Header["Origin"] - if len(origin) == 0 { - return true - } - u, err := url.Parse(origin[0]) - if err != nil { - return false - } - return equalASCIIFold(u.Host, r.Host) -} - -func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header) string { - if u.Subprotocols != nil { - clientProtocols := Subprotocols(r) - for _, serverProtocol := range u.Subprotocols { - for _, clientProtocol := range clientProtocols { - if clientProtocol == serverProtocol { - return clientProtocol - } - } - } - } else if responseHeader != nil { - return responseHeader.Get("Sec-Websocket-Protocol") - } - return "" -} - -// Upgrade upgrades the HTTP server connection to the WebSocket protocol. -// -// The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie). To specify -// subprotocols supported by the server, set Upgrader.Subprotocols directly. -// -// If the upgrade fails, then Upgrade replies to the client with an HTTP error -// response. -func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (*Conn, error) { - const badHandshake = "websocket: the client is not using the websocket protocol: " - - if !tokenListContainsValue(r.Header, "Connection", "upgrade") { - return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'upgrade' token not found in 'Connection' header") - } - - if !tokenListContainsValue(r.Header, "Upgrade", "websocket") { - return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'websocket' token not found in 'Upgrade' header") - } - - if r.Method != http.MethodGet { - return u.returnError(w, r, http.StatusMethodNotAllowed, badHandshake+"request method is not GET") - } - - if !tokenListContainsValue(r.Header, "Sec-Websocket-Version", "13") { - return u.returnError(w, r, http.StatusBadRequest, "websocket: unsupported version: 13 not found in 'Sec-Websocket-Version' header") - } - - if _, ok := responseHeader["Sec-Websocket-Extensions"]; ok { - return u.returnError(w, r, http.StatusInternalServerError, "websocket: application specific 'Sec-WebSocket-Extensions' headers are unsupported") - } - - checkOrigin := u.CheckOrigin - if checkOrigin == nil { - checkOrigin = checkSameOrigin - } - if !checkOrigin(r) { - return u.returnError(w, r, http.StatusForbidden, "websocket: request origin not allowed by Upgrader.CheckOrigin") - } - - challengeKey := r.Header.Get("Sec-Websocket-Key") - if challengeKey == "" { - return u.returnError(w, r, http.StatusBadRequest, "websocket: not a websocket handshake: 'Sec-WebSocket-Key' header is missing or blank") - } - - subprotocol := u.selectSubprotocol(r, responseHeader) - - // Negotiate PMCE - var compress bool - if u.EnableCompression { - for _, ext := range parseExtensions(r.Header) { - if ext[""] != "permessage-deflate" { - continue - } - compress = true - break - } - } - - h, ok := w.(http.Hijacker) - if !ok { - return u.returnError(w, r, http.StatusInternalServerError, "websocket: response does not implement http.Hijacker") - } - var brw *bufio.ReadWriter - netConn, brw, err := h.Hijack() - if err != nil { - return u.returnError(w, r, http.StatusInternalServerError, err.Error()) - } - - if brw.Reader.Buffered() > 0 { - netConn.Close() - return nil, errors.New("websocket: client sent data before handshake is complete") - } - - var br *bufio.Reader - if u.ReadBufferSize == 0 && bufioReaderSize(netConn, brw.Reader) > 256 { - // Reuse hijacked buffered reader as connection reader. - br = brw.Reader - } - - buf := bufioWriterBuffer(netConn, brw.Writer) - - var writeBuf []byte - if u.WriteBufferPool == nil && u.WriteBufferSize == 0 && len(buf) >= maxFrameHeaderSize+256 { - // Reuse hijacked write buffer as connection buffer. - writeBuf = buf - } - - c := newConn(netConn, true, u.ReadBufferSize, u.WriteBufferSize, u.WriteBufferPool, br, writeBuf) - c.subprotocol = subprotocol - - if compress { - c.newCompressionWriter = compressNoContextTakeover - c.newDecompressionReader = decompressNoContextTakeover - } - - // Use larger of hijacked buffer and connection write buffer for header. - p := buf - if len(c.writeBuf) > len(p) { - p = c.writeBuf - } - p = p[:0] - - p = append(p, "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: "...) - p = append(p, computeAcceptKey(challengeKey)...) - p = append(p, "\r\n"...) - if c.subprotocol != "" { - p = append(p, "Sec-WebSocket-Protocol: "...) - p = append(p, c.subprotocol...) - p = append(p, "\r\n"...) - } - if compress { - p = append(p, "Sec-WebSocket-Extensions: permessage-deflate; server_no_context_takeover; client_no_context_takeover\r\n"...) - } - for k, vs := range responseHeader { - if k == "Sec-Websocket-Protocol" { - continue - } - for _, v := range vs { - p = append(p, k...) - p = append(p, ": "...) - for i := 0; i < len(v); i++ { - b := v[i] - if b <= 31 { - // prevent response splitting. - b = ' ' - } - p = append(p, b) - } - p = append(p, "\r\n"...) - } - } - p = append(p, "\r\n"...) - - // Clear deadlines set by HTTP server. - netConn.SetDeadline(time.Time{}) - - if u.HandshakeTimeout > 0 { - netConn.SetWriteDeadline(time.Now().Add(u.HandshakeTimeout)) - } - if _, err = netConn.Write(p); err != nil { - netConn.Close() - return nil, err - } - if u.HandshakeTimeout > 0 { - netConn.SetWriteDeadline(time.Time{}) - } - - return c, nil -} - -// Upgrade upgrades the HTTP server connection to the WebSocket protocol. -// -// Deprecated: Use websocket.Upgrader instead. -// -// Upgrade does not perform origin checking. The application is responsible for -// checking the Origin header before calling Upgrade. An example implementation -// of the same origin policy check is: -// -// if req.Header.Get("Origin") != "http://"+req.Host { -// http.Error(w, "Origin not allowed", http.StatusForbidden) -// return -// } -// -// If the endpoint supports subprotocols, then the application is responsible -// for negotiating the protocol used on the connection. Use the Subprotocols() -// function to get the subprotocols requested by the client. Use the -// Sec-Websocket-Protocol response header to specify the subprotocol selected -// by the application. -// -// The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie) and the -// negotiated subprotocol (Sec-Websocket-Protocol). -// -// The connection buffers IO to the underlying network connection. The -// readBufSize and writeBufSize parameters specify the size of the buffers to -// use. Messages can be larger than the buffers. -// -// If the request is not a valid WebSocket handshake, then Upgrade returns an -// error of type HandshakeError. Applications should handle this error by -// replying to the client with an HTTP error response. -func Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header, readBufSize, writeBufSize int) (*Conn, error) { - u := Upgrader{ReadBufferSize: readBufSize, WriteBufferSize: writeBufSize} - u.Error = func(w http.ResponseWriter, r *http.Request, status int, reason error) { - // don't return errors to maintain backwards compatibility - } - u.CheckOrigin = func(r *http.Request) bool { - // allow all connections by default - return true - } - return u.Upgrade(w, r, responseHeader) -} - -// Subprotocols returns the subprotocols requested by the client in the -// Sec-Websocket-Protocol header. -func Subprotocols(r *http.Request) []string { - h := strings.TrimSpace(r.Header.Get("Sec-Websocket-Protocol")) - if h == "" { - return nil - } - protocols := strings.Split(h, ",") - for i := range protocols { - protocols[i] = strings.TrimSpace(protocols[i]) - } - return protocols -} - -// IsWebSocketUpgrade returns true if the client requested upgrade to the -// WebSocket protocol. -func IsWebSocketUpgrade(r *http.Request) bool { - return tokenListContainsValue(r.Header, "Connection", "upgrade") && - tokenListContainsValue(r.Header, "Upgrade", "websocket") -} - -// bufioReaderSize size returns the size of a bufio.Reader. -func bufioReaderSize(originalReader io.Reader, br *bufio.Reader) int { - // This code assumes that peek on a reset reader returns - // bufio.Reader.buf[:0]. - // TODO: Use bufio.Reader.Size() after Go 1.10 - br.Reset(originalReader) - if p, err := br.Peek(0); err == nil { - return cap(p) - } - return 0 -} - -// writeHook is an io.Writer that records the last slice passed to it vio -// io.Writer.Write. -type writeHook struct { - p []byte -} - -func (wh *writeHook) Write(p []byte) (int, error) { - wh.p = p - return len(p), nil -} - -// bufioWriterBuffer grabs the buffer from a bufio.Writer. -func bufioWriterBuffer(originalWriter io.Writer, bw *bufio.Writer) []byte { - // This code assumes that bufio.Writer.buf[:1] is passed to the - // bufio.Writer's underlying writer. - var wh writeHook - bw.Reset(&wh) - bw.WriteByte(0) - bw.Flush() - - bw.Reset(originalWriter) - - return wh.p[:cap(wh.p)] -} diff --git a/backend/vendor/github.com/gorilla/websocket/tls_handshake.go b/backend/vendor/github.com/gorilla/websocket/tls_handshake.go deleted file mode 100644 index a62b68cc..00000000 --- a/backend/vendor/github.com/gorilla/websocket/tls_handshake.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build go1.17 -// +build go1.17 - -package websocket - -import ( - "context" - "crypto/tls" -) - -func doHandshake(ctx context.Context, tlsConn *tls.Conn, cfg *tls.Config) error { - if err := tlsConn.HandshakeContext(ctx); err != nil { - return err - } - if !cfg.InsecureSkipVerify { - if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { - return err - } - } - return nil -} diff --git a/backend/vendor/github.com/gorilla/websocket/tls_handshake_116.go b/backend/vendor/github.com/gorilla/websocket/tls_handshake_116.go deleted file mode 100644 index e1b2b44f..00000000 --- a/backend/vendor/github.com/gorilla/websocket/tls_handshake_116.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build !go1.17 -// +build !go1.17 - -package websocket - -import ( - "context" - "crypto/tls" -) - -func doHandshake(ctx context.Context, tlsConn *tls.Conn, cfg *tls.Config) error { - if err := tlsConn.Handshake(); err != nil { - return err - } - if !cfg.InsecureSkipVerify { - if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { - return err - } - } - return nil -} diff --git a/backend/vendor/github.com/gorilla/websocket/util.go b/backend/vendor/github.com/gorilla/websocket/util.go deleted file mode 100644 index 7bf2f66c..00000000 --- a/backend/vendor/github.com/gorilla/websocket/util.go +++ /dev/null @@ -1,283 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "crypto/rand" - "crypto/sha1" - "encoding/base64" - "io" - "net/http" - "strings" - "unicode/utf8" -) - -var keyGUID = []byte("258EAFA5-E914-47DA-95CA-C5AB0DC85B11") - -func computeAcceptKey(challengeKey string) string { - h := sha1.New() - h.Write([]byte(challengeKey)) - h.Write(keyGUID) - return base64.StdEncoding.EncodeToString(h.Sum(nil)) -} - -func generateChallengeKey() (string, error) { - p := make([]byte, 16) - if _, err := io.ReadFull(rand.Reader, p); err != nil { - return "", err - } - return base64.StdEncoding.EncodeToString(p), nil -} - -// Token octets per RFC 2616. -var isTokenOctet = [256]bool{ - '!': true, - '#': true, - '$': true, - '%': true, - '&': true, - '\'': true, - '*': true, - '+': true, - '-': true, - '.': true, - '0': true, - '1': true, - '2': true, - '3': true, - '4': true, - '5': true, - '6': true, - '7': true, - '8': true, - '9': true, - 'A': true, - 'B': true, - 'C': true, - 'D': true, - 'E': true, - 'F': true, - 'G': true, - 'H': true, - 'I': true, - 'J': true, - 'K': true, - 'L': true, - 'M': true, - 'N': true, - 'O': true, - 'P': true, - 'Q': true, - 'R': true, - 'S': true, - 'T': true, - 'U': true, - 'W': true, - 'V': true, - 'X': true, - 'Y': true, - 'Z': true, - '^': true, - '_': true, - '`': true, - 'a': true, - 'b': true, - 'c': true, - 'd': true, - 'e': true, - 'f': true, - 'g': true, - 'h': true, - 'i': true, - 'j': true, - 'k': true, - 'l': true, - 'm': true, - 'n': true, - 'o': true, - 'p': true, - 'q': true, - 'r': true, - 's': true, - 't': true, - 'u': true, - 'v': true, - 'w': true, - 'x': true, - 'y': true, - 'z': true, - '|': true, - '~': true, -} - -// skipSpace returns a slice of the string s with all leading RFC 2616 linear -// whitespace removed. -func skipSpace(s string) (rest string) { - i := 0 - for ; i < len(s); i++ { - if b := s[i]; b != ' ' && b != '\t' { - break - } - } - return s[i:] -} - -// nextToken returns the leading RFC 2616 token of s and the string following -// the token. -func nextToken(s string) (token, rest string) { - i := 0 - for ; i < len(s); i++ { - if !isTokenOctet[s[i]] { - break - } - } - return s[:i], s[i:] -} - -// nextTokenOrQuoted returns the leading token or quoted string per RFC 2616 -// and the string following the token or quoted string. -func nextTokenOrQuoted(s string) (value string, rest string) { - if !strings.HasPrefix(s, "\"") { - return nextToken(s) - } - s = s[1:] - for i := 0; i < len(s); i++ { - switch s[i] { - case '"': - return s[:i], s[i+1:] - case '\\': - p := make([]byte, len(s)-1) - j := copy(p, s[:i]) - escape := true - for i = i + 1; i < len(s); i++ { - b := s[i] - switch { - case escape: - escape = false - p[j] = b - j++ - case b == '\\': - escape = true - case b == '"': - return string(p[:j]), s[i+1:] - default: - p[j] = b - j++ - } - } - return "", "" - } - } - return "", "" -} - -// equalASCIIFold returns true if s is equal to t with ASCII case folding as -// defined in RFC 4790. -func equalASCIIFold(s, t string) bool { - for s != "" && t != "" { - sr, size := utf8.DecodeRuneInString(s) - s = s[size:] - tr, size := utf8.DecodeRuneInString(t) - t = t[size:] - if sr == tr { - continue - } - if 'A' <= sr && sr <= 'Z' { - sr = sr + 'a' - 'A' - } - if 'A' <= tr && tr <= 'Z' { - tr = tr + 'a' - 'A' - } - if sr != tr { - return false - } - } - return s == t -} - -// tokenListContainsValue returns true if the 1#token header with the given -// name contains a token equal to value with ASCII case folding. -func tokenListContainsValue(header http.Header, name string, value string) bool { -headers: - for _, s := range header[name] { - for { - var t string - t, s = nextToken(skipSpace(s)) - if t == "" { - continue headers - } - s = skipSpace(s) - if s != "" && s[0] != ',' { - continue headers - } - if equalASCIIFold(t, value) { - return true - } - if s == "" { - continue headers - } - s = s[1:] - } - } - return false -} - -// parseExtensions parses WebSocket extensions from a header. -func parseExtensions(header http.Header) []map[string]string { - // From RFC 6455: - // - // Sec-WebSocket-Extensions = extension-list - // extension-list = 1#extension - // extension = extension-token *( ";" extension-param ) - // extension-token = registered-token - // registered-token = token - // extension-param = token [ "=" (token | quoted-string) ] - // ;When using the quoted-string syntax variant, the value - // ;after quoted-string unescaping MUST conform to the - // ;'token' ABNF. - - var result []map[string]string -headers: - for _, s := range header["Sec-Websocket-Extensions"] { - for { - var t string - t, s = nextToken(skipSpace(s)) - if t == "" { - continue headers - } - ext := map[string]string{"": t} - for { - s = skipSpace(s) - if !strings.HasPrefix(s, ";") { - break - } - var k string - k, s = nextToken(skipSpace(s[1:])) - if k == "" { - continue headers - } - s = skipSpace(s) - var v string - if strings.HasPrefix(s, "=") { - v, s = nextTokenOrQuoted(skipSpace(s[1:])) - s = skipSpace(s) - } - if s != "" && s[0] != ',' && s[0] != ';' { - continue headers - } - ext[k] = v - } - if s != "" && s[0] != ',' { - continue headers - } - result = append(result, ext) - if s == "" { - continue headers - } - s = s[1:] - } - } - return result -} diff --git a/backend/vendor/github.com/gorilla/websocket/x_net_proxy.go b/backend/vendor/github.com/gorilla/websocket/x_net_proxy.go deleted file mode 100644 index 2e668f6b..00000000 --- a/backend/vendor/github.com/gorilla/websocket/x_net_proxy.go +++ /dev/null @@ -1,473 +0,0 @@ -// Code generated by golang.org/x/tools/cmd/bundle. DO NOT EDIT. -//go:generate bundle -o x_net_proxy.go golang.org/x/net/proxy - -// Package proxy provides support for a variety of protocols to proxy network -// data. -// - -package websocket - -import ( - "errors" - "io" - "net" - "net/url" - "os" - "strconv" - "strings" - "sync" -) - -type proxy_direct struct{} - -// Direct is a direct proxy: one that makes network connections directly. -var proxy_Direct = proxy_direct{} - -func (proxy_direct) Dial(network, addr string) (net.Conn, error) { - return net.Dial(network, addr) -} - -// A PerHost directs connections to a default Dialer unless the host name -// requested matches one of a number of exceptions. -type proxy_PerHost struct { - def, bypass proxy_Dialer - - bypassNetworks []*net.IPNet - bypassIPs []net.IP - bypassZones []string - bypassHosts []string -} - -// NewPerHost returns a PerHost Dialer that directs connections to either -// defaultDialer or bypass, depending on whether the connection matches one of -// the configured rules. -func proxy_NewPerHost(defaultDialer, bypass proxy_Dialer) *proxy_PerHost { - return &proxy_PerHost{ - def: defaultDialer, - bypass: bypass, - } -} - -// Dial connects to the address addr on the given network through either -// defaultDialer or bypass. -func (p *proxy_PerHost) Dial(network, addr string) (c net.Conn, err error) { - host, _, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - - return p.dialerForRequest(host).Dial(network, addr) -} - -func (p *proxy_PerHost) dialerForRequest(host string) proxy_Dialer { - if ip := net.ParseIP(host); ip != nil { - for _, net := range p.bypassNetworks { - if net.Contains(ip) { - return p.bypass - } - } - for _, bypassIP := range p.bypassIPs { - if bypassIP.Equal(ip) { - return p.bypass - } - } - return p.def - } - - for _, zone := range p.bypassZones { - if strings.HasSuffix(host, zone) { - return p.bypass - } - if host == zone[1:] { - // For a zone ".example.com", we match "example.com" - // too. - return p.bypass - } - } - for _, bypassHost := range p.bypassHosts { - if bypassHost == host { - return p.bypass - } - } - return p.def -} - -// AddFromString parses a string that contains comma-separated values -// specifying hosts that should use the bypass proxy. Each value is either an -// IP address, a CIDR range, a zone (*.example.com) or a host name -// (localhost). A best effort is made to parse the string and errors are -// ignored. -func (p *proxy_PerHost) AddFromString(s string) { - hosts := strings.Split(s, ",") - for _, host := range hosts { - host = strings.TrimSpace(host) - if len(host) == 0 { - continue - } - if strings.Contains(host, "/") { - // We assume that it's a CIDR address like 127.0.0.0/8 - if _, net, err := net.ParseCIDR(host); err == nil { - p.AddNetwork(net) - } - continue - } - if ip := net.ParseIP(host); ip != nil { - p.AddIP(ip) - continue - } - if strings.HasPrefix(host, "*.") { - p.AddZone(host[1:]) - continue - } - p.AddHost(host) - } -} - -// AddIP specifies an IP address that will use the bypass proxy. Note that -// this will only take effect if a literal IP address is dialed. A connection -// to a named host will never match an IP. -func (p *proxy_PerHost) AddIP(ip net.IP) { - p.bypassIPs = append(p.bypassIPs, ip) -} - -// AddNetwork specifies an IP range that will use the bypass proxy. Note that -// this will only take effect if a literal IP address is dialed. A connection -// to a named host will never match. -func (p *proxy_PerHost) AddNetwork(net *net.IPNet) { - p.bypassNetworks = append(p.bypassNetworks, net) -} - -// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of -// "example.com" matches "example.com" and all of its subdomains. -func (p *proxy_PerHost) AddZone(zone string) { - if strings.HasSuffix(zone, ".") { - zone = zone[:len(zone)-1] - } - if !strings.HasPrefix(zone, ".") { - zone = "." + zone - } - p.bypassZones = append(p.bypassZones, zone) -} - -// AddHost specifies a host name that will use the bypass proxy. -func (p *proxy_PerHost) AddHost(host string) { - if strings.HasSuffix(host, ".") { - host = host[:len(host)-1] - } - p.bypassHosts = append(p.bypassHosts, host) -} - -// A Dialer is a means to establish a connection. -type proxy_Dialer interface { - // Dial connects to the given address via the proxy. - Dial(network, addr string) (c net.Conn, err error) -} - -// Auth contains authentication parameters that specific Dialers may require. -type proxy_Auth struct { - User, Password string -} - -// FromEnvironment returns the dialer specified by the proxy related variables in -// the environment. -func proxy_FromEnvironment() proxy_Dialer { - allProxy := proxy_allProxyEnv.Get() - if len(allProxy) == 0 { - return proxy_Direct - } - - proxyURL, err := url.Parse(allProxy) - if err != nil { - return proxy_Direct - } - proxy, err := proxy_FromURL(proxyURL, proxy_Direct) - if err != nil { - return proxy_Direct - } - - noProxy := proxy_noProxyEnv.Get() - if len(noProxy) == 0 { - return proxy - } - - perHost := proxy_NewPerHost(proxy, proxy_Direct) - perHost.AddFromString(noProxy) - return perHost -} - -// proxySchemes is a map from URL schemes to a function that creates a Dialer -// from a URL with such a scheme. -var proxy_proxySchemes map[string]func(*url.URL, proxy_Dialer) (proxy_Dialer, error) - -// RegisterDialerType takes a URL scheme and a function to generate Dialers from -// a URL with that scheme and a forwarding Dialer. Registered schemes are used -// by FromURL. -func proxy_RegisterDialerType(scheme string, f func(*url.URL, proxy_Dialer) (proxy_Dialer, error)) { - if proxy_proxySchemes == nil { - proxy_proxySchemes = make(map[string]func(*url.URL, proxy_Dialer) (proxy_Dialer, error)) - } - proxy_proxySchemes[scheme] = f -} - -// FromURL returns a Dialer given a URL specification and an underlying -// Dialer for it to make network requests. -func proxy_FromURL(u *url.URL, forward proxy_Dialer) (proxy_Dialer, error) { - var auth *proxy_Auth - if u.User != nil { - auth = new(proxy_Auth) - auth.User = u.User.Username() - if p, ok := u.User.Password(); ok { - auth.Password = p - } - } - - switch u.Scheme { - case "socks5": - return proxy_SOCKS5("tcp", u.Host, auth, forward) - } - - // If the scheme doesn't match any of the built-in schemes, see if it - // was registered by another package. - if proxy_proxySchemes != nil { - if f, ok := proxy_proxySchemes[u.Scheme]; ok { - return f(u, forward) - } - } - - return nil, errors.New("proxy: unknown scheme: " + u.Scheme) -} - -var ( - proxy_allProxyEnv = &proxy_envOnce{ - names: []string{"ALL_PROXY", "all_proxy"}, - } - proxy_noProxyEnv = &proxy_envOnce{ - names: []string{"NO_PROXY", "no_proxy"}, - } -) - -// envOnce looks up an environment variable (optionally by multiple -// names) once. It mitigates expensive lookups on some platforms -// (e.g. Windows). -// (Borrowed from net/http/transport.go) -type proxy_envOnce struct { - names []string - once sync.Once - val string -} - -func (e *proxy_envOnce) Get() string { - e.once.Do(e.init) - return e.val -} - -func (e *proxy_envOnce) init() { - for _, n := range e.names { - e.val = os.Getenv(n) - if e.val != "" { - return - } - } -} - -// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address -// with an optional username and password. See RFC 1928 and RFC 1929. -func proxy_SOCKS5(network, addr string, auth *proxy_Auth, forward proxy_Dialer) (proxy_Dialer, error) { - s := &proxy_socks5{ - network: network, - addr: addr, - forward: forward, - } - if auth != nil { - s.user = auth.User - s.password = auth.Password - } - - return s, nil -} - -type proxy_socks5 struct { - user, password string - network, addr string - forward proxy_Dialer -} - -const proxy_socks5Version = 5 - -const ( - proxy_socks5AuthNone = 0 - proxy_socks5AuthPassword = 2 -) - -const proxy_socks5Connect = 1 - -const ( - proxy_socks5IP4 = 1 - proxy_socks5Domain = 3 - proxy_socks5IP6 = 4 -) - -var proxy_socks5Errors = []string{ - "", - "general failure", - "connection forbidden", - "network unreachable", - "host unreachable", - "connection refused", - "TTL expired", - "command not supported", - "address type not supported", -} - -// Dial connects to the address addr on the given network via the SOCKS5 proxy. -func (s *proxy_socks5) Dial(network, addr string) (net.Conn, error) { - switch network { - case "tcp", "tcp6", "tcp4": - default: - return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network) - } - - conn, err := s.forward.Dial(s.network, s.addr) - if err != nil { - return nil, err - } - if err := s.connect(conn, addr); err != nil { - conn.Close() - return nil, err - } - return conn, nil -} - -// connect takes an existing connection to a socks5 proxy server, -// and commands the server to extend that connection to target, -// which must be a canonical address with a host and port. -func (s *proxy_socks5) connect(conn net.Conn, target string) error { - host, portStr, err := net.SplitHostPort(target) - if err != nil { - return err - } - - port, err := strconv.Atoi(portStr) - if err != nil { - return errors.New("proxy: failed to parse port number: " + portStr) - } - if port < 1 || port > 0xffff { - return errors.New("proxy: port number out of range: " + portStr) - } - - // the size here is just an estimate - buf := make([]byte, 0, 6+len(host)) - - buf = append(buf, proxy_socks5Version) - if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 { - buf = append(buf, 2 /* num auth methods */, proxy_socks5AuthNone, proxy_socks5AuthPassword) - } else { - buf = append(buf, 1 /* num auth methods */, proxy_socks5AuthNone) - } - - if _, err := conn.Write(buf); err != nil { - return errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - if buf[0] != 5 { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0]))) - } - if buf[1] == 0xff { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication") - } - - // See RFC 1929 - if buf[1] == proxy_socks5AuthPassword { - buf = buf[:0] - buf = append(buf, 1 /* password protocol version */) - buf = append(buf, uint8(len(s.user))) - buf = append(buf, s.user...) - buf = append(buf, uint8(len(s.password))) - buf = append(buf, s.password...) - - if _, err := conn.Write(buf); err != nil { - return errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if buf[1] != 0 { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password") - } - } - - buf = buf[:0] - buf = append(buf, proxy_socks5Version, proxy_socks5Connect, 0 /* reserved */) - - if ip := net.ParseIP(host); ip != nil { - if ip4 := ip.To4(); ip4 != nil { - buf = append(buf, proxy_socks5IP4) - ip = ip4 - } else { - buf = append(buf, proxy_socks5IP6) - } - buf = append(buf, ip...) - } else { - if len(host) > 255 { - return errors.New("proxy: destination host name too long: " + host) - } - buf = append(buf, proxy_socks5Domain) - buf = append(buf, byte(len(host))) - buf = append(buf, host...) - } - buf = append(buf, byte(port>>8), byte(port)) - - if _, err := conn.Write(buf); err != nil { - return errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:4]); err != nil { - return errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - failure := "unknown error" - if int(buf[1]) < len(proxy_socks5Errors) { - failure = proxy_socks5Errors[buf[1]] - } - - if len(failure) > 0 { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure) - } - - bytesToDiscard := 0 - switch buf[3] { - case proxy_socks5IP4: - bytesToDiscard = net.IPv4len - case proxy_socks5IP6: - bytesToDiscard = net.IPv6len - case proxy_socks5Domain: - _, err := io.ReadFull(conn, buf[:1]) - if err != nil { - return errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - bytesToDiscard = int(buf[0]) - default: - return errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr) - } - - if cap(buf) < bytesToDiscard { - buf = make([]byte, bytesToDiscard) - } else { - buf = buf[:bytesToDiscard] - } - if _, err := io.ReadFull(conn, buf); err != nil { - return errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - // Also need to discard the port number - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - return nil -} diff --git a/backend/vendor/github.com/hashicorp/hcl/.gitignore b/backend/vendor/github.com/hashicorp/hcl/.gitignore deleted file mode 100644 index 15586a2b..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -y.output - -# ignore intellij files -.idea -*.iml -*.ipr -*.iws - -*.test diff --git a/backend/vendor/github.com/hashicorp/hcl/.travis.yml b/backend/vendor/github.com/hashicorp/hcl/.travis.yml deleted file mode 100644 index cb63a321..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -sudo: false - -language: go - -go: - - 1.x - - tip - -branches: - only: - - master - -script: make test diff --git a/backend/vendor/github.com/hashicorp/hcl/LICENSE b/backend/vendor/github.com/hashicorp/hcl/LICENSE deleted file mode 100644 index c33dcc7c..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/LICENSE +++ /dev/null @@ -1,354 +0,0 @@ -Mozilla Public License, version 2.0 - -1. Definitions - -1.1. “Contributor” - - means each individual or legal entity that creates, contributes to the - creation of, or owns Covered Software. - -1.2. “Contributor Version” - - means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor’s Contribution. - -1.3. “Contribution” - - means Covered Software of a particular Contributor. - -1.4. “Covered Software” - - means Source Code Form to which the initial Contributor has attached the - notice in Exhibit A, the Executable Form of such Source Code Form, and - Modifications of such Source Code Form, in each case including portions - thereof. - -1.5. “Incompatible With Secondary Licenses” - means - - a. that the initial Contributor has attached the notice described in - Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of version - 1.1 or earlier of the License, but not also under the terms of a - Secondary License. - -1.6. “Executable Form” - - means any form of the work other than Source Code Form. - -1.7. “Larger Work” - - means a work that combines Covered Software with other material, in a separate - file or files, that is not Covered Software. - -1.8. “License” - - means this document. - -1.9. “Licensable” - - means having the right to grant, to the maximum extent possible, whether at the - time of the initial grant or subsequently, any and all of the rights conveyed by - this License. - -1.10. “Modifications” - - means any of the following: - - a. any file in Source Code Form that results from an addition to, deletion - from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. “Patent Claims” of a Contributor - - means any patent claim(s), including without limitation, method, process, - and apparatus claims, in any patent Licensable by such Contributor that - would be infringed, but for the grant of the License, by the making, - using, selling, offering for sale, having made, import, or transfer of - either its Contributions or its Contributor Version. - -1.12. “Secondary License” - - means either the GNU General Public License, Version 2.0, the GNU Lesser - General Public License, Version 2.1, the GNU Affero General Public - License, Version 3.0, or any later versions of those licenses. - -1.13. “Source Code Form” - - means the form of the work preferred for making modifications. - -1.14. “You” (or “Your”) - - means an individual or a legal entity exercising rights under this - License. For legal entities, “You” includes any entity that controls, is - controlled by, or is under common control with You. For purposes of this - definition, “control” means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by contract or - otherwise, or (b) ownership of more than fifty percent (50%) of the - outstanding shares or beneficial ownership of such entity. - - -2. License Grants and Conditions - -2.1. Grants - - Each Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or as - part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for - sale, have made, import, and otherwise transfer either its Contributions - or its Contributor Version. - -2.2. Effective Date - - The licenses granted in Section 2.1 with respect to any Contribution become - effective for each Contribution on the date the Contributor first distributes - such Contribution. - -2.3. Limitations on Grant Scope - - The licenses granted in this Section 2 are the only rights granted under this - License. No additional rights or licenses will be implied from the distribution - or licensing of Covered Software under this License. Notwithstanding Section - 2.1(b) above, no patent license is granted by a Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party’s - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - - c. under Patent Claims infringed by Covered Software in the absence of its - Contributions. - - This License does not grant any rights in the trademarks, service marks, or - logos of any Contributor (except as may be necessary to comply with the - notice requirements in Section 3.4). - -2.4. Subsequent Licenses - - No Contributor makes additional grants as a result of Your choice to - distribute the Covered Software under a subsequent version of this License - (see Section 10.2) or under the terms of a Secondary License (if permitted - under the terms of Section 3.3). - -2.5. Representation - - Each Contributor represents that the Contributor believes its Contributions - are its original creation(s) or it has sufficient rights to grant the - rights to its Contributions conveyed by this License. - -2.6. Fair Use - - This License is not intended to limit any rights You have under applicable - copyright doctrines of fair use, fair dealing, or other equivalents. - -2.7. Conditions - - Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in - Section 2.1. - - -3. Responsibilities - -3.1. Distribution of Source Form - - All distribution of Covered Software in Source Code Form, including any - Modifications that You create or to which You contribute, must be under the - terms of this License. You must inform recipients that the Source Code Form - of the Covered Software is governed by the terms of this License, and how - they can obtain a copy of this License. You may not attempt to alter or - restrict the recipients’ rights in the Source Code Form. - -3.2. Distribution of Executable Form - - If You distribute Covered Software in Executable Form then: - - a. such Covered Software must also be made available in Source Code Form, - as described in Section 3.1, and You must inform recipients of the - Executable Form how they can obtain a copy of such Source Code Form by - reasonable means in a timely manner, at a charge no more than the cost - of distribution to the recipient; and - - b. You may distribute such Executable Form under the terms of this License, - or sublicense it under different terms, provided that the license for - the Executable Form does not attempt to limit or alter the recipients’ - rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - - You may create and distribute a Larger Work under terms of Your choice, - provided that You also comply with the requirements of this License for the - Covered Software. If the Larger Work is a combination of Covered Software - with a work governed by one or more Secondary Licenses, and the Covered - Software is not Incompatible With Secondary Licenses, this License permits - You to additionally distribute such Covered Software under the terms of - such Secondary License(s), so that the recipient of the Larger Work may, at - their option, further distribute the Covered Software under the terms of - either this License or such Secondary License(s). - -3.4. Notices - - You may not remove or alter the substance of any license notices (including - copyright notices, patent notices, disclaimers of warranty, or limitations - of liability) contained within the Source Code Form of the Covered - Software, except that You may alter any license notices to the extent - required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - - You may choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of Covered - Software. However, You may do so only on Your own behalf, and not on behalf - of any Contributor. You must make it absolutely clear that any such - warranty, support, indemnity, or liability obligation is offered by You - alone, and You hereby agree to indemnify every Contributor for any - liability incurred by such Contributor as a result of warranty, support, - indemnity or liability terms You offer. You may include additional - disclaimers of warranty and limitations of liability specific to any - jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - - If it is impossible for You to comply with any of the terms of this License - with respect to some or all of the Covered Software due to statute, judicial - order, or regulation then You must: (a) comply with the terms of this License - to the maximum extent possible; and (b) describe the limitations and the code - they affect. Such description must be placed in a text file included with all - distributions of the Covered Software under this License. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You - fail to comply with any of its terms. However, if You become compliant, - then the rights granted under this License from a particular Contributor - are reinstated (a) provisionally, unless and until such Contributor - explicitly and finally terminates Your grants, and (b) on an ongoing basis, - if such Contributor fails to notify You of the non-compliance by some - reasonable means prior to 60 days after You have come back into compliance. - Moreover, Your grants from a particular Contributor are reinstated on an - ongoing basis if such Contributor notifies You of the non-compliance by - some reasonable means, this is the first time You have received notice of - non-compliance with this License from such Contributor, and You become - compliant prior to 30 days after Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent - infringement claim (excluding declaratory judgment actions, counter-claims, - and cross-claims) alleging that a Contributor Version directly or - indirectly infringes any patent, then the rights granted to You by any and - all Contributors for the Covered Software under Section 2.1 of this License - shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user - license agreements (excluding distributors and resellers) which have been - validly granted by You or Your distributors under this License prior to - termination shall survive termination. - -6. Disclaimer of Warranty - - Covered Software is provided under this License on an “as is” basis, without - warranty of any kind, either expressed, implied, or statutory, including, - without limitation, warranties that the Covered Software is free of defects, - merchantable, fit for a particular purpose or non-infringing. The entire - risk as to the quality and performance of the Covered Software is with You. - Should any Covered Software prove defective in any respect, You (not any - Contributor) assume the cost of any necessary servicing, repair, or - correction. This disclaimer of warranty constitutes an essential part of this - License. No use of any Covered Software is authorized under this License - except under this disclaimer. - -7. Limitation of Liability - - Under no circumstances and under no legal theory, whether tort (including - negligence), contract, or otherwise, shall any Contributor, or anyone who - distributes Covered Software as permitted above, be liable to You for any - direct, indirect, special, incidental, or consequential damages of any - character including, without limitation, damages for lost profits, loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses, even if such party shall have been - informed of the possibility of such damages. This limitation of liability - shall not apply to liability for death or personal injury resulting from such - party’s negligence to the extent applicable law prohibits such limitation. - Some jurisdictions do not allow the exclusion or limitation of incidental or - consequential damages, so this exclusion and limitation may not apply to You. - -8. Litigation - - Any litigation relating to this License may be brought only in the courts of - a jurisdiction where the defendant maintains its principal place of business - and such litigation shall be governed by laws of that jurisdiction, without - reference to its conflict-of-law provisions. Nothing in this Section shall - prevent a party’s ability to bring cross-claims or counter-claims. - -9. Miscellaneous - - This License represents the complete agreement concerning the subject matter - hereof. If any provision of this License is held to be unenforceable, such - provision shall be reformed only to the extent necessary to make it - enforceable. Any law or regulation which provides that the language of a - contract shall be construed against the drafter shall not be used to construe - this License against a Contributor. - - -10. Versions of the License - -10.1. New Versions - - Mozilla Foundation is the license steward. Except as provided in Section - 10.3, no one other than the license steward has the right to modify or - publish new versions of this License. Each version will be given a - distinguishing version number. - -10.2. Effect of New Versions - - You may distribute the Covered Software under the terms of the version of - the License under which You originally received the Covered Software, or - under the terms of any subsequent version published by the license - steward. - -10.3. Modified Versions - - If you create software not governed by this License, and you want to - create a new license for such software, you may create and use a modified - version of this License if you rename the license and remove any - references to the name of the license steward (except to note that such - modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses - If You choose to distribute Source Code Form that is Incompatible With - Secondary Licenses under the terms of this version of the License, the - notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the - terms of the Mozilla Public License, v. - 2.0. If a copy of the MPL was not - distributed with this file, You can - obtain one at - http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, then -You may include the notice in a location (such as a LICENSE file in a relevant -directory) where a recipient would be likely to look for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - “Incompatible With Secondary Licenses” Notice - - This Source Code Form is “Incompatible - With Secondary Licenses”, as defined by - the Mozilla Public License, v. 2.0. - diff --git a/backend/vendor/github.com/hashicorp/hcl/Makefile b/backend/vendor/github.com/hashicorp/hcl/Makefile deleted file mode 100644 index 84fd743f..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -TEST?=./... - -default: test - -fmt: generate - go fmt ./... - -test: generate - go get -t ./... - go test $(TEST) $(TESTARGS) - -generate: - go generate ./... - -updatedeps: - go get -u golang.org/x/tools/cmd/stringer - -.PHONY: default generate test updatedeps diff --git a/backend/vendor/github.com/hashicorp/hcl/README.md b/backend/vendor/github.com/hashicorp/hcl/README.md deleted file mode 100644 index c8223326..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/README.md +++ /dev/null @@ -1,125 +0,0 @@ -# HCL - -[![GoDoc](https://godoc.org/github.com/hashicorp/hcl?status.png)](https://godoc.org/github.com/hashicorp/hcl) [![Build Status](https://travis-ci.org/hashicorp/hcl.svg?branch=master)](https://travis-ci.org/hashicorp/hcl) - -HCL (HashiCorp Configuration Language) is a configuration language built -by HashiCorp. The goal of HCL is to build a structured configuration language -that is both human and machine friendly for use with command-line tools, but -specifically targeted towards DevOps tools, servers, etc. - -HCL is also fully JSON compatible. That is, JSON can be used as completely -valid input to a system expecting HCL. This helps makes systems -interoperable with other systems. - -HCL is heavily inspired by -[libucl](https://github.com/vstakhov/libucl), -nginx configuration, and others similar. - -## Why? - -A common question when viewing HCL is to ask the question: why not -JSON, YAML, etc.? - -Prior to HCL, the tools we built at [HashiCorp](http://www.hashicorp.com) -used a variety of configuration languages from full programming languages -such as Ruby to complete data structure languages such as JSON. What we -learned is that some people wanted human-friendly configuration languages -and some people wanted machine-friendly languages. - -JSON fits a nice balance in this, but is fairly verbose and most -importantly doesn't support comments. With YAML, we found that beginners -had a really hard time determining what the actual structure was, and -ended up guessing more often than not whether to use a hyphen, colon, etc. -in order to represent some configuration key. - -Full programming languages such as Ruby enable complex behavior -a configuration language shouldn't usually allow, and also forces -people to learn some set of Ruby. - -Because of this, we decided to create our own configuration language -that is JSON-compatible. Our configuration language (HCL) is designed -to be written and modified by humans. The API for HCL allows JSON -as an input so that it is also machine-friendly (machines can generate -JSON instead of trying to generate HCL). - -Our goal with HCL is not to alienate other configuration languages. -It is instead to provide HCL as a specialized language for our tools, -and JSON as the interoperability layer. - -## Syntax - -For a complete grammar, please see the parser itself. A high-level overview -of the syntax and grammar is listed here. - - * Single line comments start with `#` or `//` - - * Multi-line comments are wrapped in `/*` and `*/`. Nested block comments - are not allowed. A multi-line comment (also known as a block comment) - terminates at the first `*/` found. - - * Values are assigned with the syntax `key = value` (whitespace doesn't - matter). The value can be any primitive: a string, number, boolean, - object, or list. - - * Strings are double-quoted and can contain any UTF-8 characters. - Example: `"Hello, World"` - - * Multi-line strings start with `<- - echo %Path% - - go version - - go env - - go get -t ./... - -build_script: -- cmd: go test -v ./... diff --git a/backend/vendor/github.com/hashicorp/hcl/decoder.go b/backend/vendor/github.com/hashicorp/hcl/decoder.go deleted file mode 100644 index bed9ebbe..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/decoder.go +++ /dev/null @@ -1,729 +0,0 @@ -package hcl - -import ( - "errors" - "fmt" - "reflect" - "sort" - "strconv" - "strings" - - "github.com/hashicorp/hcl/hcl/ast" - "github.com/hashicorp/hcl/hcl/parser" - "github.com/hashicorp/hcl/hcl/token" -) - -// This is the tag to use with structures to have settings for HCL -const tagName = "hcl" - -var ( - // nodeType holds a reference to the type of ast.Node - nodeType reflect.Type = findNodeType() -) - -// Unmarshal accepts a byte slice as input and writes the -// data to the value pointed to by v. -func Unmarshal(bs []byte, v interface{}) error { - root, err := parse(bs) - if err != nil { - return err - } - - return DecodeObject(v, root) -} - -// Decode reads the given input and decodes it into the structure -// given by `out`. -func Decode(out interface{}, in string) error { - obj, err := Parse(in) - if err != nil { - return err - } - - return DecodeObject(out, obj) -} - -// DecodeObject is a lower-level version of Decode. It decodes a -// raw Object into the given output. -func DecodeObject(out interface{}, n ast.Node) error { - val := reflect.ValueOf(out) - if val.Kind() != reflect.Ptr { - return errors.New("result must be a pointer") - } - - // If we have the file, we really decode the root node - if f, ok := n.(*ast.File); ok { - n = f.Node - } - - var d decoder - return d.decode("root", n, val.Elem()) -} - -type decoder struct { - stack []reflect.Kind -} - -func (d *decoder) decode(name string, node ast.Node, result reflect.Value) error { - k := result - - // If we have an interface with a valid value, we use that - // for the check. - if result.Kind() == reflect.Interface { - elem := result.Elem() - if elem.IsValid() { - k = elem - } - } - - // Push current onto stack unless it is an interface. - if k.Kind() != reflect.Interface { - d.stack = append(d.stack, k.Kind()) - - // Schedule a pop - defer func() { - d.stack = d.stack[:len(d.stack)-1] - }() - } - - switch k.Kind() { - case reflect.Bool: - return d.decodeBool(name, node, result) - case reflect.Float32, reflect.Float64: - return d.decodeFloat(name, node, result) - case reflect.Int, reflect.Int32, reflect.Int64: - return d.decodeInt(name, node, result) - case reflect.Interface: - // When we see an interface, we make our own thing - return d.decodeInterface(name, node, result) - case reflect.Map: - return d.decodeMap(name, node, result) - case reflect.Ptr: - return d.decodePtr(name, node, result) - case reflect.Slice: - return d.decodeSlice(name, node, result) - case reflect.String: - return d.decodeString(name, node, result) - case reflect.Struct: - return d.decodeStruct(name, node, result) - default: - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown kind to decode into: %s", name, k.Kind()), - } - } -} - -func (d *decoder) decodeBool(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - if n.Token.Type == token.BOOL { - v, err := strconv.ParseBool(n.Token.Text) - if err != nil { - return err - } - - result.Set(reflect.ValueOf(v)) - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type %T", name, node), - } -} - -func (d *decoder) decodeFloat(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - if n.Token.Type == token.FLOAT || n.Token.Type == token.NUMBER { - v, err := strconv.ParseFloat(n.Token.Text, 64) - if err != nil { - return err - } - - result.Set(reflect.ValueOf(v).Convert(result.Type())) - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type %T", name, node), - } -} - -func (d *decoder) decodeInt(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - switch n.Token.Type { - case token.NUMBER: - v, err := strconv.ParseInt(n.Token.Text, 0, 0) - if err != nil { - return err - } - - if result.Kind() == reflect.Interface { - result.Set(reflect.ValueOf(int(v))) - } else { - result.SetInt(v) - } - return nil - case token.STRING: - v, err := strconv.ParseInt(n.Token.Value().(string), 0, 0) - if err != nil { - return err - } - - if result.Kind() == reflect.Interface { - result.Set(reflect.ValueOf(int(v))) - } else { - result.SetInt(v) - } - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type %T", name, node), - } -} - -func (d *decoder) decodeInterface(name string, node ast.Node, result reflect.Value) error { - // When we see an ast.Node, we retain the value to enable deferred decoding. - // Very useful in situations where we want to preserve ast.Node information - // like Pos - if result.Type() == nodeType && result.CanSet() { - result.Set(reflect.ValueOf(node)) - return nil - } - - var set reflect.Value - redecode := true - - // For testing types, ObjectType should just be treated as a list. We - // set this to a temporary var because we want to pass in the real node. - testNode := node - if ot, ok := node.(*ast.ObjectType); ok { - testNode = ot.List - } - - switch n := testNode.(type) { - case *ast.ObjectList: - // If we're at the root or we're directly within a slice, then we - // decode objects into map[string]interface{}, otherwise we decode - // them into lists. - if len(d.stack) == 0 || d.stack[len(d.stack)-1] == reflect.Slice { - var temp map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeMap( - reflect.MapOf( - reflect.TypeOf(""), - tempVal.Type().Elem())) - - set = result - } else { - var temp []map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeSlice( - reflect.SliceOf(tempVal.Type().Elem()), 0, len(n.Items)) - set = result - } - case *ast.ObjectType: - // If we're at the root or we're directly within a slice, then we - // decode objects into map[string]interface{}, otherwise we decode - // them into lists. - if len(d.stack) == 0 || d.stack[len(d.stack)-1] == reflect.Slice { - var temp map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeMap( - reflect.MapOf( - reflect.TypeOf(""), - tempVal.Type().Elem())) - - set = result - } else { - var temp []map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeSlice( - reflect.SliceOf(tempVal.Type().Elem()), 0, 1) - set = result - } - case *ast.ListType: - var temp []interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeSlice( - reflect.SliceOf(tempVal.Type().Elem()), 0, 0) - set = result - case *ast.LiteralType: - switch n.Token.Type { - case token.BOOL: - var result bool - set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) - case token.FLOAT: - var result float64 - set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) - case token.NUMBER: - var result int - set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) - case token.STRING, token.HEREDOC: - set = reflect.Indirect(reflect.New(reflect.TypeOf(""))) - default: - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: cannot decode into interface: %T", name, node), - } - } - default: - return fmt.Errorf( - "%s: cannot decode into interface: %T", - name, node) - } - - // Set the result to what its supposed to be, then reset - // result so we don't reflect into this method anymore. - result.Set(set) - - if redecode { - // Revisit the node so that we can use the newly instantiated - // thing and populate it. - if err := d.decode(name, node, result); err != nil { - return err - } - } - - return nil -} - -func (d *decoder) decodeMap(name string, node ast.Node, result reflect.Value) error { - if item, ok := node.(*ast.ObjectItem); ok { - node = &ast.ObjectList{Items: []*ast.ObjectItem{item}} - } - - if ot, ok := node.(*ast.ObjectType); ok { - node = ot.List - } - - n, ok := node.(*ast.ObjectList) - if !ok { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: not an object type for map (%T)", name, node), - } - } - - // If we have an interface, then we can address the interface, - // but not the slice itself, so get the element but set the interface - set := result - if result.Kind() == reflect.Interface { - result = result.Elem() - } - - resultType := result.Type() - resultElemType := resultType.Elem() - resultKeyType := resultType.Key() - if resultKeyType.Kind() != reflect.String { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: map must have string keys", name), - } - } - - // Make a map if it is nil - resultMap := result - if result.IsNil() { - resultMap = reflect.MakeMap( - reflect.MapOf(resultKeyType, resultElemType)) - } - - // Go through each element and decode it. - done := make(map[string]struct{}) - for _, item := range n.Items { - if item.Val == nil { - continue - } - - // github.com/hashicorp/terraform/issue/5740 - if len(item.Keys) == 0 { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: map must have string keys", name), - } - } - - // Get the key we're dealing with, which is the first item - keyStr := item.Keys[0].Token.Value().(string) - - // If we've already processed this key, then ignore it - if _, ok := done[keyStr]; ok { - continue - } - - // Determine the value. If we have more than one key, then we - // get the objectlist of only these keys. - itemVal := item.Val - if len(item.Keys) > 1 { - itemVal = n.Filter(keyStr) - done[keyStr] = struct{}{} - } - - // Make the field name - fieldName := fmt.Sprintf("%s.%s", name, keyStr) - - // Get the key/value as reflection values - key := reflect.ValueOf(keyStr) - val := reflect.Indirect(reflect.New(resultElemType)) - - // If we have a pre-existing value in the map, use that - oldVal := resultMap.MapIndex(key) - if oldVal.IsValid() { - val.Set(oldVal) - } - - // Decode! - if err := d.decode(fieldName, itemVal, val); err != nil { - return err - } - - // Set the value on the map - resultMap.SetMapIndex(key, val) - } - - // Set the final map if we can - set.Set(resultMap) - return nil -} - -func (d *decoder) decodePtr(name string, node ast.Node, result reflect.Value) error { - // Create an element of the concrete (non pointer) type and decode - // into that. Then set the value of the pointer to this type. - resultType := result.Type() - resultElemType := resultType.Elem() - val := reflect.New(resultElemType) - if err := d.decode(name, node, reflect.Indirect(val)); err != nil { - return err - } - - result.Set(val) - return nil -} - -func (d *decoder) decodeSlice(name string, node ast.Node, result reflect.Value) error { - // If we have an interface, then we can address the interface, - // but not the slice itself, so get the element but set the interface - set := result - if result.Kind() == reflect.Interface { - result = result.Elem() - } - // Create the slice if it isn't nil - resultType := result.Type() - resultElemType := resultType.Elem() - if result.IsNil() { - resultSliceType := reflect.SliceOf(resultElemType) - result = reflect.MakeSlice( - resultSliceType, 0, 0) - } - - // Figure out the items we'll be copying into the slice - var items []ast.Node - switch n := node.(type) { - case *ast.ObjectList: - items = make([]ast.Node, len(n.Items)) - for i, item := range n.Items { - items[i] = item - } - case *ast.ObjectType: - items = []ast.Node{n} - case *ast.ListType: - items = n.List - default: - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("unknown slice type: %T", node), - } - } - - for i, item := range items { - fieldName := fmt.Sprintf("%s[%d]", name, i) - - // Decode - val := reflect.Indirect(reflect.New(resultElemType)) - - // if item is an object that was decoded from ambiguous JSON and - // flattened, make sure it's expanded if it needs to decode into a - // defined structure. - item := expandObject(item, val) - - if err := d.decode(fieldName, item, val); err != nil { - return err - } - - // Append it onto the slice - result = reflect.Append(result, val) - } - - set.Set(result) - return nil -} - -// expandObject detects if an ambiguous JSON object was flattened to a List which -// should be decoded into a struct, and expands the ast to properly deocode. -func expandObject(node ast.Node, result reflect.Value) ast.Node { - item, ok := node.(*ast.ObjectItem) - if !ok { - return node - } - - elemType := result.Type() - - // our target type must be a struct - switch elemType.Kind() { - case reflect.Ptr: - switch elemType.Elem().Kind() { - case reflect.Struct: - //OK - default: - return node - } - case reflect.Struct: - //OK - default: - return node - } - - // A list value will have a key and field name. If it had more fields, - // it wouldn't have been flattened. - if len(item.Keys) != 2 { - return node - } - - keyToken := item.Keys[0].Token - item.Keys = item.Keys[1:] - - // we need to un-flatten the ast enough to decode - newNode := &ast.ObjectItem{ - Keys: []*ast.ObjectKey{ - &ast.ObjectKey{ - Token: keyToken, - }, - }, - Val: &ast.ObjectType{ - List: &ast.ObjectList{ - Items: []*ast.ObjectItem{item}, - }, - }, - } - - return newNode -} - -func (d *decoder) decodeString(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - switch n.Token.Type { - case token.NUMBER: - result.Set(reflect.ValueOf(n.Token.Text).Convert(result.Type())) - return nil - case token.STRING, token.HEREDOC: - result.Set(reflect.ValueOf(n.Token.Value()).Convert(result.Type())) - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type for string %T", name, node), - } -} - -func (d *decoder) decodeStruct(name string, node ast.Node, result reflect.Value) error { - var item *ast.ObjectItem - if it, ok := node.(*ast.ObjectItem); ok { - item = it - node = it.Val - } - - if ot, ok := node.(*ast.ObjectType); ok { - node = ot.List - } - - // Handle the special case where the object itself is a literal. Previously - // the yacc parser would always ensure top-level elements were arrays. The new - // parser does not make the same guarantees, thus we need to convert any - // top-level literal elements into a list. - if _, ok := node.(*ast.LiteralType); ok && item != nil { - node = &ast.ObjectList{Items: []*ast.ObjectItem{item}} - } - - list, ok := node.(*ast.ObjectList) - if !ok { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: not an object type for struct (%T)", name, node), - } - } - - // This slice will keep track of all the structs we'll be decoding. - // There can be more than one struct if there are embedded structs - // that are squashed. - structs := make([]reflect.Value, 1, 5) - structs[0] = result - - // Compile the list of all the fields that we're going to be decoding - // from all the structs. - type field struct { - field reflect.StructField - val reflect.Value - } - fields := []field{} - for len(structs) > 0 { - structVal := structs[0] - structs = structs[1:] - - structType := structVal.Type() - for i := 0; i < structType.NumField(); i++ { - fieldType := structType.Field(i) - tagParts := strings.Split(fieldType.Tag.Get(tagName), ",") - - // Ignore fields with tag name "-" - if tagParts[0] == "-" { - continue - } - - if fieldType.Anonymous { - fieldKind := fieldType.Type.Kind() - if fieldKind != reflect.Struct { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unsupported type to struct: %s", - fieldType.Name, fieldKind), - } - } - - // We have an embedded field. We "squash" the fields down - // if specified in the tag. - squash := false - for _, tag := range tagParts[1:] { - if tag == "squash" { - squash = true - break - } - } - - if squash { - structs = append( - structs, result.FieldByName(fieldType.Name)) - continue - } - } - - // Normal struct field, store it away - fields = append(fields, field{fieldType, structVal.Field(i)}) - } - } - - usedKeys := make(map[string]struct{}) - decodedFields := make([]string, 0, len(fields)) - decodedFieldsVal := make([]reflect.Value, 0) - unusedKeysVal := make([]reflect.Value, 0) - for _, f := range fields { - field, fieldValue := f.field, f.val - if !fieldValue.IsValid() { - // This should never happen - panic("field is not valid") - } - - // If we can't set the field, then it is unexported or something, - // and we just continue onwards. - if !fieldValue.CanSet() { - continue - } - - fieldName := field.Name - - tagValue := field.Tag.Get(tagName) - tagParts := strings.SplitN(tagValue, ",", 2) - if len(tagParts) >= 2 { - switch tagParts[1] { - case "decodedFields": - decodedFieldsVal = append(decodedFieldsVal, fieldValue) - continue - case "key": - if item == nil { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: %s asked for 'key', impossible", - name, fieldName), - } - } - - fieldValue.SetString(item.Keys[0].Token.Value().(string)) - continue - case "unusedKeys": - unusedKeysVal = append(unusedKeysVal, fieldValue) - continue - } - } - - if tagParts[0] != "" { - fieldName = tagParts[0] - } - - // Determine the element we'll use to decode. If it is a single - // match (only object with the field), then we decode it exactly. - // If it is a prefix match, then we decode the matches. - filter := list.Filter(fieldName) - - prefixMatches := filter.Children() - matches := filter.Elem() - if len(matches.Items) == 0 && len(prefixMatches.Items) == 0 { - continue - } - - // Track the used key - usedKeys[fieldName] = struct{}{} - - // Create the field name and decode. We range over the elements - // because we actually want the value. - fieldName = fmt.Sprintf("%s.%s", name, fieldName) - if len(prefixMatches.Items) > 0 { - if err := d.decode(fieldName, prefixMatches, fieldValue); err != nil { - return err - } - } - for _, match := range matches.Items { - var decodeNode ast.Node = match.Val - if ot, ok := decodeNode.(*ast.ObjectType); ok { - decodeNode = &ast.ObjectList{Items: ot.List.Items} - } - - if err := d.decode(fieldName, decodeNode, fieldValue); err != nil { - return err - } - } - - decodedFields = append(decodedFields, field.Name) - } - - if len(decodedFieldsVal) > 0 { - // Sort it so that it is deterministic - sort.Strings(decodedFields) - - for _, v := range decodedFieldsVal { - v.Set(reflect.ValueOf(decodedFields)) - } - } - - return nil -} - -// findNodeType returns the type of ast.Node -func findNodeType() reflect.Type { - var nodeContainer struct { - Node ast.Node - } - value := reflect.ValueOf(nodeContainer).FieldByName("Node") - return value.Type() -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl.go b/backend/vendor/github.com/hashicorp/hcl/hcl.go deleted file mode 100644 index 575a20b5..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl.go +++ /dev/null @@ -1,11 +0,0 @@ -// Package hcl decodes HCL into usable Go structures. -// -// hcl input can come in either pure HCL format or JSON format. -// It can be parsed into an AST, and then decoded into a structure, -// or it can be decoded directly from a string into a structure. -// -// If you choose to parse HCL into a raw AST, the benefit is that you -// can write custom visitor implementations to implement custom -// semantic checks. By default, HCL does not perform any semantic -// checks. -package hcl diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go b/backend/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go deleted file mode 100644 index 6e5ef654..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go +++ /dev/null @@ -1,219 +0,0 @@ -// Package ast declares the types used to represent syntax trees for HCL -// (HashiCorp Configuration Language) -package ast - -import ( - "fmt" - "strings" - - "github.com/hashicorp/hcl/hcl/token" -) - -// Node is an element in the abstract syntax tree. -type Node interface { - node() - Pos() token.Pos -} - -func (File) node() {} -func (ObjectList) node() {} -func (ObjectKey) node() {} -func (ObjectItem) node() {} -func (Comment) node() {} -func (CommentGroup) node() {} -func (ObjectType) node() {} -func (LiteralType) node() {} -func (ListType) node() {} - -// File represents a single HCL file -type File struct { - Node Node // usually a *ObjectList - Comments []*CommentGroup // list of all comments in the source -} - -func (f *File) Pos() token.Pos { - return f.Node.Pos() -} - -// ObjectList represents a list of ObjectItems. An HCL file itself is an -// ObjectList. -type ObjectList struct { - Items []*ObjectItem -} - -func (o *ObjectList) Add(item *ObjectItem) { - o.Items = append(o.Items, item) -} - -// Filter filters out the objects with the given key list as a prefix. -// -// The returned list of objects contain ObjectItems where the keys have -// this prefix already stripped off. This might result in objects with -// zero-length key lists if they have no children. -// -// If no matches are found, an empty ObjectList (non-nil) is returned. -func (o *ObjectList) Filter(keys ...string) *ObjectList { - var result ObjectList - for _, item := range o.Items { - // If there aren't enough keys, then ignore this - if len(item.Keys) < len(keys) { - continue - } - - match := true - for i, key := range item.Keys[:len(keys)] { - key := key.Token.Value().(string) - if key != keys[i] && !strings.EqualFold(key, keys[i]) { - match = false - break - } - } - if !match { - continue - } - - // Strip off the prefix from the children - newItem := *item - newItem.Keys = newItem.Keys[len(keys):] - result.Add(&newItem) - } - - return &result -} - -// Children returns further nested objects (key length > 0) within this -// ObjectList. This should be used with Filter to get at child items. -func (o *ObjectList) Children() *ObjectList { - var result ObjectList - for _, item := range o.Items { - if len(item.Keys) > 0 { - result.Add(item) - } - } - - return &result -} - -// Elem returns items in the list that are direct element assignments -// (key length == 0). This should be used with Filter to get at elements. -func (o *ObjectList) Elem() *ObjectList { - var result ObjectList - for _, item := range o.Items { - if len(item.Keys) == 0 { - result.Add(item) - } - } - - return &result -} - -func (o *ObjectList) Pos() token.Pos { - // always returns the uninitiliazed position - return o.Items[0].Pos() -} - -// ObjectItem represents a HCL Object Item. An item is represented with a key -// (or keys). It can be an assignment or an object (both normal and nested) -type ObjectItem struct { - // keys is only one length long if it's of type assignment. If it's a - // nested object it can be larger than one. In that case "assign" is - // invalid as there is no assignments for a nested object. - Keys []*ObjectKey - - // assign contains the position of "=", if any - Assign token.Pos - - // val is the item itself. It can be an object,list, number, bool or a - // string. If key length is larger than one, val can be only of type - // Object. - Val Node - - LeadComment *CommentGroup // associated lead comment - LineComment *CommentGroup // associated line comment -} - -func (o *ObjectItem) Pos() token.Pos { - // I'm not entirely sure what causes this, but removing this causes - // a test failure. We should investigate at some point. - if len(o.Keys) == 0 { - return token.Pos{} - } - - return o.Keys[0].Pos() -} - -// ObjectKeys are either an identifier or of type string. -type ObjectKey struct { - Token token.Token -} - -func (o *ObjectKey) Pos() token.Pos { - return o.Token.Pos -} - -// LiteralType represents a literal of basic type. Valid types are: -// token.NUMBER, token.FLOAT, token.BOOL and token.STRING -type LiteralType struct { - Token token.Token - - // comment types, only used when in a list - LeadComment *CommentGroup - LineComment *CommentGroup -} - -func (l *LiteralType) Pos() token.Pos { - return l.Token.Pos -} - -// ListStatement represents a HCL List type -type ListType struct { - Lbrack token.Pos // position of "[" - Rbrack token.Pos // position of "]" - List []Node // the elements in lexical order -} - -func (l *ListType) Pos() token.Pos { - return l.Lbrack -} - -func (l *ListType) Add(node Node) { - l.List = append(l.List, node) -} - -// ObjectType represents a HCL Object Type -type ObjectType struct { - Lbrace token.Pos // position of "{" - Rbrace token.Pos // position of "}" - List *ObjectList // the nodes in lexical order -} - -func (o *ObjectType) Pos() token.Pos { - return o.Lbrace -} - -// Comment node represents a single //, # style or /*- style commment -type Comment struct { - Start token.Pos // position of / or # - Text string -} - -func (c *Comment) Pos() token.Pos { - return c.Start -} - -// CommentGroup node represents a sequence of comments with no other tokens and -// no empty lines between. -type CommentGroup struct { - List []*Comment // len(List) > 0 -} - -func (c *CommentGroup) Pos() token.Pos { - return c.List[0].Pos() -} - -//------------------------------------------------------------------- -// GoStringer -//------------------------------------------------------------------- - -func (o *ObjectKey) GoString() string { return fmt.Sprintf("*%#v", *o) } -func (o *ObjectList) GoString() string { return fmt.Sprintf("*%#v", *o) } diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go b/backend/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go deleted file mode 100644 index ba07ad42..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go +++ /dev/null @@ -1,52 +0,0 @@ -package ast - -import "fmt" - -// WalkFunc describes a function to be called for each node during a Walk. The -// returned node can be used to rewrite the AST. Walking stops the returned -// bool is false. -type WalkFunc func(Node) (Node, bool) - -// Walk traverses an AST in depth-first order: It starts by calling fn(node); -// node must not be nil. If fn returns true, Walk invokes fn recursively for -// each of the non-nil children of node, followed by a call of fn(nil). The -// returned node of fn can be used to rewrite the passed node to fn. -func Walk(node Node, fn WalkFunc) Node { - rewritten, ok := fn(node) - if !ok { - return rewritten - } - - switch n := node.(type) { - case *File: - n.Node = Walk(n.Node, fn) - case *ObjectList: - for i, item := range n.Items { - n.Items[i] = Walk(item, fn).(*ObjectItem) - } - case *ObjectKey: - // nothing to do - case *ObjectItem: - for i, k := range n.Keys { - n.Keys[i] = Walk(k, fn).(*ObjectKey) - } - - if n.Val != nil { - n.Val = Walk(n.Val, fn) - } - case *LiteralType: - // nothing to do - case *ListType: - for i, l := range n.List { - n.List[i] = Walk(l, fn) - } - case *ObjectType: - n.List = Walk(n.List, fn).(*ObjectList) - default: - // should we panic here? - fmt.Printf("unknown type: %T\n", n) - } - - fn(nil) - return rewritten -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/parser/error.go b/backend/vendor/github.com/hashicorp/hcl/hcl/parser/error.go deleted file mode 100644 index 5c99381d..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/parser/error.go +++ /dev/null @@ -1,17 +0,0 @@ -package parser - -import ( - "fmt" - - "github.com/hashicorp/hcl/hcl/token" -) - -// PosError is a parse error that contains a position. -type PosError struct { - Pos token.Pos - Err error -} - -func (e *PosError) Error() string { - return fmt.Sprintf("At %s: %s", e.Pos, e.Err) -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go b/backend/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go deleted file mode 100644 index 64c83bcf..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go +++ /dev/null @@ -1,532 +0,0 @@ -// Package parser implements a parser for HCL (HashiCorp Configuration -// Language) -package parser - -import ( - "bytes" - "errors" - "fmt" - "strings" - - "github.com/hashicorp/hcl/hcl/ast" - "github.com/hashicorp/hcl/hcl/scanner" - "github.com/hashicorp/hcl/hcl/token" -) - -type Parser struct { - sc *scanner.Scanner - - // Last read token - tok token.Token - commaPrev token.Token - - comments []*ast.CommentGroup - leadComment *ast.CommentGroup // last lead comment - lineComment *ast.CommentGroup // last line comment - - enableTrace bool - indent int - n int // buffer size (max = 1) -} - -func newParser(src []byte) *Parser { - return &Parser{ - sc: scanner.New(src), - } -} - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func Parse(src []byte) (*ast.File, error) { - // normalize all line endings - // since the scanner and output only work with "\n" line endings, we may - // end up with dangling "\r" characters in the parsed data. - src = bytes.Replace(src, []byte("\r\n"), []byte("\n"), -1) - - p := newParser(src) - return p.Parse() -} - -var errEofToken = errors.New("EOF token found") - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func (p *Parser) Parse() (*ast.File, error) { - f := &ast.File{} - var err, scerr error - p.sc.Error = func(pos token.Pos, msg string) { - scerr = &PosError{Pos: pos, Err: errors.New(msg)} - } - - f.Node, err = p.objectList(false) - if scerr != nil { - return nil, scerr - } - if err != nil { - return nil, err - } - - f.Comments = p.comments - return f, nil -} - -// objectList parses a list of items within an object (generally k/v pairs). -// The parameter" obj" tells this whether to we are within an object (braces: -// '{', '}') or just at the top level. If we're within an object, we end -// at an RBRACE. -func (p *Parser) objectList(obj bool) (*ast.ObjectList, error) { - defer un(trace(p, "ParseObjectList")) - node := &ast.ObjectList{} - - for { - if obj { - tok := p.scan() - p.unscan() - if tok.Type == token.RBRACE { - break - } - } - - n, err := p.objectItem() - if err == errEofToken { - break // we are finished - } - - // we don't return a nil node, because might want to use already - // collected items. - if err != nil { - return node, err - } - - node.Add(n) - - // object lists can be optionally comma-delimited e.g. when a list of maps - // is being expressed, so a comma is allowed here - it's simply consumed - tok := p.scan() - if tok.Type != token.COMMA { - p.unscan() - } - } - return node, nil -} - -func (p *Parser) consumeComment() (comment *ast.Comment, endline int) { - endline = p.tok.Pos.Line - - // count the endline if it's multiline comment, ie starting with /* - if len(p.tok.Text) > 1 && p.tok.Text[1] == '*' { - // don't use range here - no need to decode Unicode code points - for i := 0; i < len(p.tok.Text); i++ { - if p.tok.Text[i] == '\n' { - endline++ - } - } - } - - comment = &ast.Comment{Start: p.tok.Pos, Text: p.tok.Text} - p.tok = p.sc.Scan() - return -} - -func (p *Parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline int) { - var list []*ast.Comment - endline = p.tok.Pos.Line - - for p.tok.Type == token.COMMENT && p.tok.Pos.Line <= endline+n { - var comment *ast.Comment - comment, endline = p.consumeComment() - list = append(list, comment) - } - - // add comment group to the comments list - comments = &ast.CommentGroup{List: list} - p.comments = append(p.comments, comments) - - return -} - -// objectItem parses a single object item -func (p *Parser) objectItem() (*ast.ObjectItem, error) { - defer un(trace(p, "ParseObjectItem")) - - keys, err := p.objectKey() - if len(keys) > 0 && err == errEofToken { - // We ignore eof token here since it is an error if we didn't - // receive a value (but we did receive a key) for the item. - err = nil - } - if len(keys) > 0 && err != nil && p.tok.Type == token.RBRACE { - // This is a strange boolean statement, but what it means is: - // We have keys with no value, and we're likely in an object - // (since RBrace ends an object). For this, we set err to nil so - // we continue and get the error below of having the wrong value - // type. - err = nil - - // Reset the token type so we don't think it completed fine. See - // objectType which uses p.tok.Type to check if we're done with - // the object. - p.tok.Type = token.EOF - } - if err != nil { - return nil, err - } - - o := &ast.ObjectItem{ - Keys: keys, - } - - if p.leadComment != nil { - o.LeadComment = p.leadComment - p.leadComment = nil - } - - switch p.tok.Type { - case token.ASSIGN: - o.Assign = p.tok.Pos - o.Val, err = p.object() - if err != nil { - return nil, err - } - case token.LBRACE: - o.Val, err = p.objectType() - if err != nil { - return nil, err - } - default: - keyStr := make([]string, 0, len(keys)) - for _, k := range keys { - keyStr = append(keyStr, k.Token.Text) - } - - return nil, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf( - "key '%s' expected start of object ('{') or assignment ('=')", - strings.Join(keyStr, " ")), - } - } - - // key=#comment - // val - if p.lineComment != nil { - o.LineComment, p.lineComment = p.lineComment, nil - } - - // do a look-ahead for line comment - p.scan() - if len(keys) > 0 && o.Val.Pos().Line == keys[0].Pos().Line && p.lineComment != nil { - o.LineComment = p.lineComment - p.lineComment = nil - } - p.unscan() - return o, nil -} - -// objectKey parses an object key and returns a ObjectKey AST -func (p *Parser) objectKey() ([]*ast.ObjectKey, error) { - keyCount := 0 - keys := make([]*ast.ObjectKey, 0) - - for { - tok := p.scan() - switch tok.Type { - case token.EOF: - // It is very important to also return the keys here as well as - // the error. This is because we need to be able to tell if we - // did parse keys prior to finding the EOF, or if we just found - // a bare EOF. - return keys, errEofToken - case token.ASSIGN: - // assignment or object only, but not nested objects. this is not - // allowed: `foo bar = {}` - if keyCount > 1 { - return nil, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("nested object expected: LBRACE got: %s", p.tok.Type), - } - } - - if keyCount == 0 { - return nil, &PosError{ - Pos: p.tok.Pos, - Err: errors.New("no object keys found!"), - } - } - - return keys, nil - case token.LBRACE: - var err error - - // If we have no keys, then it is a syntax error. i.e. {{}} is not - // allowed. - if len(keys) == 0 { - err = &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("expected: IDENT | STRING got: %s", p.tok.Type), - } - } - - // object - return keys, err - case token.IDENT, token.STRING: - keyCount++ - keys = append(keys, &ast.ObjectKey{Token: p.tok}) - case token.ILLEGAL: - return keys, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("illegal character"), - } - default: - return keys, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("expected: IDENT | STRING | ASSIGN | LBRACE got: %s", p.tok.Type), - } - } - } -} - -// object parses any type of object, such as number, bool, string, object or -// list. -func (p *Parser) object() (ast.Node, error) { - defer un(trace(p, "ParseType")) - tok := p.scan() - - switch tok.Type { - case token.NUMBER, token.FLOAT, token.BOOL, token.STRING, token.HEREDOC: - return p.literalType() - case token.LBRACE: - return p.objectType() - case token.LBRACK: - return p.listType() - case token.COMMENT: - // implement comment - case token.EOF: - return nil, errEofToken - } - - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf("Unknown token: %+v", tok), - } -} - -// objectType parses an object type and returns a ObjectType AST -func (p *Parser) objectType() (*ast.ObjectType, error) { - defer un(trace(p, "ParseObjectType")) - - // we assume that the currently scanned token is a LBRACE - o := &ast.ObjectType{ - Lbrace: p.tok.Pos, - } - - l, err := p.objectList(true) - - // if we hit RBRACE, we are good to go (means we parsed all Items), if it's - // not a RBRACE, it's an syntax error and we just return it. - if err != nil && p.tok.Type != token.RBRACE { - return nil, err - } - - // No error, scan and expect the ending to be a brace - if tok := p.scan(); tok.Type != token.RBRACE { - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf("object expected closing RBRACE got: %s", tok.Type), - } - } - - o.List = l - o.Rbrace = p.tok.Pos // advanced via parseObjectList - return o, nil -} - -// listType parses a list type and returns a ListType AST -func (p *Parser) listType() (*ast.ListType, error) { - defer un(trace(p, "ParseListType")) - - // we assume that the currently scanned token is a LBRACK - l := &ast.ListType{ - Lbrack: p.tok.Pos, - } - - needComma := false - for { - tok := p.scan() - if needComma { - switch tok.Type { - case token.COMMA, token.RBRACK: - default: - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf( - "error parsing list, expected comma or list end, got: %s", - tok.Type), - } - } - } - switch tok.Type { - case token.BOOL, token.NUMBER, token.FLOAT, token.STRING, token.HEREDOC: - node, err := p.literalType() - if err != nil { - return nil, err - } - - // If there is a lead comment, apply it - if p.leadComment != nil { - node.LeadComment = p.leadComment - p.leadComment = nil - } - - l.Add(node) - needComma = true - case token.COMMA: - // get next list item or we are at the end - // do a look-ahead for line comment - p.scan() - if p.lineComment != nil && len(l.List) > 0 { - lit, ok := l.List[len(l.List)-1].(*ast.LiteralType) - if ok { - lit.LineComment = p.lineComment - l.List[len(l.List)-1] = lit - p.lineComment = nil - } - } - p.unscan() - - needComma = false - continue - case token.LBRACE: - // Looks like a nested object, so parse it out - node, err := p.objectType() - if err != nil { - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf( - "error while trying to parse object within list: %s", err), - } - } - l.Add(node) - needComma = true - case token.LBRACK: - node, err := p.listType() - if err != nil { - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf( - "error while trying to parse list within list: %s", err), - } - } - l.Add(node) - case token.RBRACK: - // finished - l.Rbrack = p.tok.Pos - return l, nil - default: - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf("unexpected token while parsing list: %s", tok.Type), - } - } - } -} - -// literalType parses a literal type and returns a LiteralType AST -func (p *Parser) literalType() (*ast.LiteralType, error) { - defer un(trace(p, "ParseLiteral")) - - return &ast.LiteralType{ - Token: p.tok, - }, nil -} - -// scan returns the next token from the underlying scanner. If a token has -// been unscanned then read that instead. In the process, it collects any -// comment groups encountered, and remembers the last lead and line comments. -func (p *Parser) scan() token.Token { - // If we have a token on the buffer, then return it. - if p.n != 0 { - p.n = 0 - return p.tok - } - - // Otherwise read the next token from the scanner and Save it to the buffer - // in case we unscan later. - prev := p.tok - p.tok = p.sc.Scan() - - if p.tok.Type == token.COMMENT { - var comment *ast.CommentGroup - var endline int - - // fmt.Printf("p.tok.Pos.Line = %+v prev: %d endline %d \n", - // p.tok.Pos.Line, prev.Pos.Line, endline) - if p.tok.Pos.Line == prev.Pos.Line { - // The comment is on same line as the previous token; it - // cannot be a lead comment but may be a line comment. - comment, endline = p.consumeCommentGroup(0) - if p.tok.Pos.Line != endline { - // The next token is on a different line, thus - // the last comment group is a line comment. - p.lineComment = comment - } - } - - // consume successor comments, if any - endline = -1 - for p.tok.Type == token.COMMENT { - comment, endline = p.consumeCommentGroup(1) - } - - if endline+1 == p.tok.Pos.Line && p.tok.Type != token.RBRACE { - switch p.tok.Type { - case token.RBRACE, token.RBRACK: - // Do not count for these cases - default: - // The next token is following on the line immediately after the - // comment group, thus the last comment group is a lead comment. - p.leadComment = comment - } - } - - } - - return p.tok -} - -// unscan pushes the previously read token back onto the buffer. -func (p *Parser) unscan() { - p.n = 1 -} - -// ---------------------------------------------------------------------------- -// Parsing support - -func (p *Parser) printTrace(a ...interface{}) { - if !p.enableTrace { - return - } - - const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " - const n = len(dots) - fmt.Printf("%5d:%3d: ", p.tok.Pos.Line, p.tok.Pos.Column) - - i := 2 * p.indent - for i > n { - fmt.Print(dots) - i -= n - } - // i <= n - fmt.Print(dots[0:i]) - fmt.Println(a...) -} - -func trace(p *Parser, msg string) *Parser { - p.printTrace(msg, "(") - p.indent++ - return p -} - -// Usage pattern: defer un(trace(p, "...")) -func un(p *Parser) { - p.indent-- - p.printTrace(")") -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go b/backend/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go deleted file mode 100644 index f207bf92..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go +++ /dev/null @@ -1,788 +0,0 @@ -package printer - -import ( - "bytes" - "fmt" - "sort" - - "github.com/hashicorp/hcl/hcl/ast" - "github.com/hashicorp/hcl/hcl/token" -) - -const ( - blank = byte(' ') - newline = byte('\n') - tab = byte('\t') - infinity = 1 << 30 // offset or line -) - -var ( - unindent = []byte("\uE123") // in the private use space -) - -type printer struct { - cfg Config - prev token.Pos - - comments []*ast.CommentGroup // may be nil, contains all comments - standaloneComments []*ast.CommentGroup // contains all standalone comments (not assigned to any node) - - enableTrace bool - indentTrace int -} - -type ByPosition []*ast.CommentGroup - -func (b ByPosition) Len() int { return len(b) } -func (b ByPosition) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -func (b ByPosition) Less(i, j int) bool { return b[i].Pos().Before(b[j].Pos()) } - -// collectComments comments all standalone comments which are not lead or line -// comment -func (p *printer) collectComments(node ast.Node) { - // first collect all comments. This is already stored in - // ast.File.(comments) - ast.Walk(node, func(nn ast.Node) (ast.Node, bool) { - switch t := nn.(type) { - case *ast.File: - p.comments = t.Comments - return nn, false - } - return nn, true - }) - - standaloneComments := make(map[token.Pos]*ast.CommentGroup, 0) - for _, c := range p.comments { - standaloneComments[c.Pos()] = c - } - - // next remove all lead and line comments from the overall comment map. - // This will give us comments which are standalone, comments which are not - // assigned to any kind of node. - ast.Walk(node, func(nn ast.Node) (ast.Node, bool) { - switch t := nn.(type) { - case *ast.LiteralType: - if t.LeadComment != nil { - for _, comment := range t.LeadComment.List { - if _, ok := standaloneComments[comment.Pos()]; ok { - delete(standaloneComments, comment.Pos()) - } - } - } - - if t.LineComment != nil { - for _, comment := range t.LineComment.List { - if _, ok := standaloneComments[comment.Pos()]; ok { - delete(standaloneComments, comment.Pos()) - } - } - } - case *ast.ObjectItem: - if t.LeadComment != nil { - for _, comment := range t.LeadComment.List { - if _, ok := standaloneComments[comment.Pos()]; ok { - delete(standaloneComments, comment.Pos()) - } - } - } - - if t.LineComment != nil { - for _, comment := range t.LineComment.List { - if _, ok := standaloneComments[comment.Pos()]; ok { - delete(standaloneComments, comment.Pos()) - } - } - } - } - - return nn, true - }) - - for _, c := range standaloneComments { - p.standaloneComments = append(p.standaloneComments, c) - } - - sort.Sort(ByPosition(p.standaloneComments)) -} - -// output prints creates b printable HCL output and returns it. -func (p *printer) output(n interface{}) []byte { - var buf bytes.Buffer - - switch t := n.(type) { - case *ast.File: - // File doesn't trace so we add the tracing here - defer un(trace(p, "File")) - return p.output(t.Node) - case *ast.ObjectList: - defer un(trace(p, "ObjectList")) - - var index int - for { - // Determine the location of the next actual non-comment - // item. If we're at the end, the next item is at "infinity" - var nextItem token.Pos - if index != len(t.Items) { - nextItem = t.Items[index].Pos() - } else { - nextItem = token.Pos{Offset: infinity, Line: infinity} - } - - // Go through the standalone comments in the file and print out - // the comments that we should be for this object item. - for _, c := range p.standaloneComments { - // Go through all the comments in the group. The group - // should be printed together, not separated by double newlines. - printed := false - newlinePrinted := false - for _, comment := range c.List { - // We only care about comments after the previous item - // we've printed so that comments are printed in the - // correct locations (between two objects for example). - // And before the next item. - if comment.Pos().After(p.prev) && comment.Pos().Before(nextItem) { - // if we hit the end add newlines so we can print the comment - // we don't do this if prev is invalid which means the - // beginning of the file since the first comment should - // be at the first line. - if !newlinePrinted && p.prev.IsValid() && index == len(t.Items) { - buf.Write([]byte{newline, newline}) - newlinePrinted = true - } - - // Write the actual comment. - buf.WriteString(comment.Text) - buf.WriteByte(newline) - - // Set printed to true to note that we printed something - printed = true - } - } - - // If we're not at the last item, write a new line so - // that there is a newline separating this comment from - // the next object. - if printed && index != len(t.Items) { - buf.WriteByte(newline) - } - } - - if index == len(t.Items) { - break - } - - buf.Write(p.output(t.Items[index])) - if index != len(t.Items)-1 { - // Always write a newline to separate us from the next item - buf.WriteByte(newline) - - // Need to determine if we're going to separate the next item - // with a blank line. The logic here is simple, though there - // are a few conditions: - // - // 1. The next object is more than one line away anyways, - // so we need an empty line. - // - // 2. The next object is not a "single line" object, so - // we need an empty line. - // - // 3. This current object is not a single line object, - // so we need an empty line. - current := t.Items[index] - next := t.Items[index+1] - if next.Pos().Line != t.Items[index].Pos().Line+1 || - !p.isSingleLineObject(next) || - !p.isSingleLineObject(current) { - buf.WriteByte(newline) - } - } - index++ - } - case *ast.ObjectKey: - buf.WriteString(t.Token.Text) - case *ast.ObjectItem: - p.prev = t.Pos() - buf.Write(p.objectItem(t)) - case *ast.LiteralType: - buf.Write(p.literalType(t)) - case *ast.ListType: - buf.Write(p.list(t)) - case *ast.ObjectType: - buf.Write(p.objectType(t)) - default: - fmt.Printf(" unknown type: %T\n", n) - } - - return buf.Bytes() -} - -func (p *printer) literalType(lit *ast.LiteralType) []byte { - result := []byte(lit.Token.Text) - switch lit.Token.Type { - case token.HEREDOC: - // Clear the trailing newline from heredocs - if result[len(result)-1] == '\n' { - result = result[:len(result)-1] - } - - // Poison lines 2+ so that we don't indent them - result = p.heredocIndent(result) - case token.STRING: - // If this is a multiline string, poison lines 2+ so we don't - // indent them. - if bytes.IndexRune(result, '\n') >= 0 { - result = p.heredocIndent(result) - } - } - - return result -} - -// objectItem returns the printable HCL form of an object item. An object type -// starts with one/multiple keys and has a value. The value might be of any -// type. -func (p *printer) objectItem(o *ast.ObjectItem) []byte { - defer un(trace(p, fmt.Sprintf("ObjectItem: %s", o.Keys[0].Token.Text))) - var buf bytes.Buffer - - if o.LeadComment != nil { - for _, comment := range o.LeadComment.List { - buf.WriteString(comment.Text) - buf.WriteByte(newline) - } - } - - // If key and val are on different lines, treat line comments like lead comments. - if o.LineComment != nil && o.Val.Pos().Line != o.Keys[0].Pos().Line { - for _, comment := range o.LineComment.List { - buf.WriteString(comment.Text) - buf.WriteByte(newline) - } - } - - for i, k := range o.Keys { - buf.WriteString(k.Token.Text) - buf.WriteByte(blank) - - // reach end of key - if o.Assign.IsValid() && i == len(o.Keys)-1 && len(o.Keys) == 1 { - buf.WriteString("=") - buf.WriteByte(blank) - } - } - - buf.Write(p.output(o.Val)) - - if o.LineComment != nil && o.Val.Pos().Line == o.Keys[0].Pos().Line { - buf.WriteByte(blank) - for _, comment := range o.LineComment.List { - buf.WriteString(comment.Text) - } - } - - return buf.Bytes() -} - -// objectType returns the printable HCL form of an object type. An object type -// begins with a brace and ends with a brace. -func (p *printer) objectType(o *ast.ObjectType) []byte { - defer un(trace(p, "ObjectType")) - var buf bytes.Buffer - buf.WriteString("{") - - var index int - var nextItem token.Pos - var commented, newlinePrinted bool - for { - // Determine the location of the next actual non-comment - // item. If we're at the end, the next item is the closing brace - if index != len(o.List.Items) { - nextItem = o.List.Items[index].Pos() - } else { - nextItem = o.Rbrace - } - - // Go through the standalone comments in the file and print out - // the comments that we should be for this object item. - for _, c := range p.standaloneComments { - printed := false - var lastCommentPos token.Pos - for _, comment := range c.List { - // We only care about comments after the previous item - // we've printed so that comments are printed in the - // correct locations (between two objects for example). - // And before the next item. - if comment.Pos().After(p.prev) && comment.Pos().Before(nextItem) { - // If there are standalone comments and the initial newline has not - // been printed yet, do it now. - if !newlinePrinted { - newlinePrinted = true - buf.WriteByte(newline) - } - - // add newline if it's between other printed nodes - if index > 0 { - commented = true - buf.WriteByte(newline) - } - - // Store this position - lastCommentPos = comment.Pos() - - // output the comment itself - buf.Write(p.indent(p.heredocIndent([]byte(comment.Text)))) - - // Set printed to true to note that we printed something - printed = true - - /* - if index != len(o.List.Items) { - buf.WriteByte(newline) // do not print on the end - } - */ - } - } - - // Stuff to do if we had comments - if printed { - // Always write a newline - buf.WriteByte(newline) - - // If there is another item in the object and our comment - // didn't hug it directly, then make sure there is a blank - // line separating them. - if nextItem != o.Rbrace && nextItem.Line != lastCommentPos.Line+1 { - buf.WriteByte(newline) - } - } - } - - if index == len(o.List.Items) { - p.prev = o.Rbrace - break - } - - // At this point we are sure that it's not a totally empty block: print - // the initial newline if it hasn't been printed yet by the previous - // block about standalone comments. - if !newlinePrinted { - buf.WriteByte(newline) - newlinePrinted = true - } - - // check if we have adjacent one liner items. If yes we'll going to align - // the comments. - var aligned []*ast.ObjectItem - for _, item := range o.List.Items[index:] { - // we don't group one line lists - if len(o.List.Items) == 1 { - break - } - - // one means a oneliner with out any lead comment - // two means a oneliner with lead comment - // anything else might be something else - cur := lines(string(p.objectItem(item))) - if cur > 2 { - break - } - - curPos := item.Pos() - - nextPos := token.Pos{} - if index != len(o.List.Items)-1 { - nextPos = o.List.Items[index+1].Pos() - } - - prevPos := token.Pos{} - if index != 0 { - prevPos = o.List.Items[index-1].Pos() - } - - // fmt.Println("DEBUG ----------------") - // fmt.Printf("prev = %+v prevPos: %s\n", prev, prevPos) - // fmt.Printf("cur = %+v curPos: %s\n", cur, curPos) - // fmt.Printf("next = %+v nextPos: %s\n", next, nextPos) - - if curPos.Line+1 == nextPos.Line { - aligned = append(aligned, item) - index++ - continue - } - - if curPos.Line-1 == prevPos.Line { - aligned = append(aligned, item) - index++ - - // finish if we have a new line or comment next. This happens - // if the next item is not adjacent - if curPos.Line+1 != nextPos.Line { - break - } - continue - } - - break - } - - // put newlines if the items are between other non aligned items. - // newlines are also added if there is a standalone comment already, so - // check it too - if !commented && index != len(aligned) { - buf.WriteByte(newline) - } - - if len(aligned) >= 1 { - p.prev = aligned[len(aligned)-1].Pos() - - items := p.alignedItems(aligned) - buf.Write(p.indent(items)) - } else { - p.prev = o.List.Items[index].Pos() - - buf.Write(p.indent(p.objectItem(o.List.Items[index]))) - index++ - } - - buf.WriteByte(newline) - } - - buf.WriteString("}") - return buf.Bytes() -} - -func (p *printer) alignedItems(items []*ast.ObjectItem) []byte { - var buf bytes.Buffer - - // find the longest key and value length, needed for alignment - var longestKeyLen int // longest key length - var longestValLen int // longest value length - for _, item := range items { - key := len(item.Keys[0].Token.Text) - val := len(p.output(item.Val)) - - if key > longestKeyLen { - longestKeyLen = key - } - - if val > longestValLen { - longestValLen = val - } - } - - for i, item := range items { - if item.LeadComment != nil { - for _, comment := range item.LeadComment.List { - buf.WriteString(comment.Text) - buf.WriteByte(newline) - } - } - - for i, k := range item.Keys { - keyLen := len(k.Token.Text) - buf.WriteString(k.Token.Text) - for i := 0; i < longestKeyLen-keyLen+1; i++ { - buf.WriteByte(blank) - } - - // reach end of key - if i == len(item.Keys)-1 && len(item.Keys) == 1 { - buf.WriteString("=") - buf.WriteByte(blank) - } - } - - val := p.output(item.Val) - valLen := len(val) - buf.Write(val) - - if item.Val.Pos().Line == item.Keys[0].Pos().Line && item.LineComment != nil { - for i := 0; i < longestValLen-valLen+1; i++ { - buf.WriteByte(blank) - } - - for _, comment := range item.LineComment.List { - buf.WriteString(comment.Text) - } - } - - // do not print for the last item - if i != len(items)-1 { - buf.WriteByte(newline) - } - } - - return buf.Bytes() -} - -// list returns the printable HCL form of an list type. -func (p *printer) list(l *ast.ListType) []byte { - if p.isSingleLineList(l) { - return p.singleLineList(l) - } - - var buf bytes.Buffer - buf.WriteString("[") - buf.WriteByte(newline) - - var longestLine int - for _, item := range l.List { - // for now we assume that the list only contains literal types - if lit, ok := item.(*ast.LiteralType); ok { - lineLen := len(lit.Token.Text) - if lineLen > longestLine { - longestLine = lineLen - } - } - } - - haveEmptyLine := false - for i, item := range l.List { - // If we have a lead comment, then we want to write that first - leadComment := false - if lit, ok := item.(*ast.LiteralType); ok && lit.LeadComment != nil { - leadComment = true - - // Ensure an empty line before every element with a - // lead comment (except the first item in a list). - if !haveEmptyLine && i != 0 { - buf.WriteByte(newline) - } - - for _, comment := range lit.LeadComment.List { - buf.Write(p.indent([]byte(comment.Text))) - buf.WriteByte(newline) - } - } - - // also indent each line - val := p.output(item) - curLen := len(val) - buf.Write(p.indent(val)) - - // if this item is a heredoc, then we output the comma on - // the next line. This is the only case this happens. - comma := []byte{','} - if lit, ok := item.(*ast.LiteralType); ok && lit.Token.Type == token.HEREDOC { - buf.WriteByte(newline) - comma = p.indent(comma) - } - - buf.Write(comma) - - if lit, ok := item.(*ast.LiteralType); ok && lit.LineComment != nil { - // if the next item doesn't have any comments, do not align - buf.WriteByte(blank) // align one space - for i := 0; i < longestLine-curLen; i++ { - buf.WriteByte(blank) - } - - for _, comment := range lit.LineComment.List { - buf.WriteString(comment.Text) - } - } - - buf.WriteByte(newline) - - // Ensure an empty line after every element with a - // lead comment (except the first item in a list). - haveEmptyLine = leadComment && i != len(l.List)-1 - if haveEmptyLine { - buf.WriteByte(newline) - } - } - - buf.WriteString("]") - return buf.Bytes() -} - -// isSingleLineList returns true if: -// * they were previously formatted entirely on one line -// * they consist entirely of literals -// * there are either no heredoc strings or the list has exactly one element -// * there are no line comments -func (printer) isSingleLineList(l *ast.ListType) bool { - for _, item := range l.List { - if item.Pos().Line != l.Lbrack.Line { - return false - } - - lit, ok := item.(*ast.LiteralType) - if !ok { - return false - } - - if lit.Token.Type == token.HEREDOC && len(l.List) != 1 { - return false - } - - if lit.LineComment != nil { - return false - } - } - - return true -} - -// singleLineList prints a simple single line list. -// For a definition of "simple", see isSingleLineList above. -func (p *printer) singleLineList(l *ast.ListType) []byte { - buf := &bytes.Buffer{} - - buf.WriteString("[") - for i, item := range l.List { - if i != 0 { - buf.WriteString(", ") - } - - // Output the item itself - buf.Write(p.output(item)) - - // The heredoc marker needs to be at the end of line. - if lit, ok := item.(*ast.LiteralType); ok && lit.Token.Type == token.HEREDOC { - buf.WriteByte(newline) - } - } - - buf.WriteString("]") - return buf.Bytes() -} - -// indent indents the lines of the given buffer for each non-empty line -func (p *printer) indent(buf []byte) []byte { - var prefix []byte - if p.cfg.SpacesWidth != 0 { - for i := 0; i < p.cfg.SpacesWidth; i++ { - prefix = append(prefix, blank) - } - } else { - prefix = []byte{tab} - } - - var res []byte - bol := true - for _, c := range buf { - if bol && c != '\n' { - res = append(res, prefix...) - } - - res = append(res, c) - bol = c == '\n' - } - return res -} - -// unindent removes all the indentation from the tombstoned lines -func (p *printer) unindent(buf []byte) []byte { - var res []byte - for i := 0; i < len(buf); i++ { - skip := len(buf)-i <= len(unindent) - if !skip { - skip = !bytes.Equal(unindent, buf[i:i+len(unindent)]) - } - if skip { - res = append(res, buf[i]) - continue - } - - // We have a marker. we have to backtrace here and clean out - // any whitespace ahead of our tombstone up to a \n - for j := len(res) - 1; j >= 0; j-- { - if res[j] == '\n' { - break - } - - res = res[:j] - } - - // Skip the entire unindent marker - i += len(unindent) - 1 - } - - return res -} - -// heredocIndent marks all the 2nd and further lines as unindentable -func (p *printer) heredocIndent(buf []byte) []byte { - var res []byte - bol := false - for _, c := range buf { - if bol && c != '\n' { - res = append(res, unindent...) - } - res = append(res, c) - bol = c == '\n' - } - return res -} - -// isSingleLineObject tells whether the given object item is a single -// line object such as "obj {}". -// -// A single line object: -// -// - has no lead comments (hence multi-line) -// - has no assignment -// - has no values in the stanza (within {}) -func (p *printer) isSingleLineObject(val *ast.ObjectItem) bool { - // If there is a lead comment, can't be one line - if val.LeadComment != nil { - return false - } - - // If there is assignment, we always break by line - if val.Assign.IsValid() { - return false - } - - // If it isn't an object type, then its not a single line object - ot, ok := val.Val.(*ast.ObjectType) - if !ok { - return false - } - - // If the object has no items, it is single line! - return len(ot.List.Items) == 0 -} - -func lines(txt string) int { - endline := 1 - for i := 0; i < len(txt); i++ { - if txt[i] == '\n' { - endline++ - } - } - return endline -} - -// ---------------------------------------------------------------------------- -// Tracing support - -func (p *printer) printTrace(a ...interface{}) { - if !p.enableTrace { - return - } - - const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " - const n = len(dots) - i := 2 * p.indentTrace - for i > n { - fmt.Print(dots) - i -= n - } - // i <= n - fmt.Print(dots[0:i]) - fmt.Println(a...) -} - -func trace(p *printer, msg string) *printer { - p.printTrace(msg, "(") - p.indentTrace++ - return p -} - -// Usage pattern: defer un(trace(p, "...")) -func un(p *printer) { - p.indentTrace-- - p.printTrace(")") -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go b/backend/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go deleted file mode 100644 index 6617ab8e..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go +++ /dev/null @@ -1,66 +0,0 @@ -// Package printer implements printing of AST nodes to HCL format. -package printer - -import ( - "bytes" - "io" - "text/tabwriter" - - "github.com/hashicorp/hcl/hcl/ast" - "github.com/hashicorp/hcl/hcl/parser" -) - -var DefaultConfig = Config{ - SpacesWidth: 2, -} - -// A Config node controls the output of Fprint. -type Config struct { - SpacesWidth int // if set, it will use spaces instead of tabs for alignment -} - -func (c *Config) Fprint(output io.Writer, node ast.Node) error { - p := &printer{ - cfg: *c, - comments: make([]*ast.CommentGroup, 0), - standaloneComments: make([]*ast.CommentGroup, 0), - // enableTrace: true, - } - - p.collectComments(node) - - if _, err := output.Write(p.unindent(p.output(node))); err != nil { - return err - } - - // flush tabwriter, if any - var err error - if tw, _ := output.(*tabwriter.Writer); tw != nil { - err = tw.Flush() - } - - return err -} - -// Fprint "pretty-prints" an HCL node to output -// It calls Config.Fprint with default settings. -func Fprint(output io.Writer, node ast.Node) error { - return DefaultConfig.Fprint(output, node) -} - -// Format formats src HCL and returns the result. -func Format(src []byte) ([]byte, error) { - node, err := parser.Parse(src) - if err != nil { - return nil, err - } - - var buf bytes.Buffer - if err := DefaultConfig.Fprint(&buf, node); err != nil { - return nil, err - } - - // Add trailing newline to result - buf.WriteString("\n") - return buf.Bytes(), nil -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go b/backend/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go deleted file mode 100644 index 624a18fe..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go +++ /dev/null @@ -1,652 +0,0 @@ -// Package scanner implements a scanner for HCL (HashiCorp Configuration -// Language) source text. -package scanner - -import ( - "bytes" - "fmt" - "os" - "regexp" - "unicode" - "unicode/utf8" - - "github.com/hashicorp/hcl/hcl/token" -) - -// eof represents a marker rune for the end of the reader. -const eof = rune(0) - -// Scanner defines a lexical scanner -type Scanner struct { - buf *bytes.Buffer // Source buffer for advancing and scanning - src []byte // Source buffer for immutable access - - // Source Position - srcPos token.Pos // current position - prevPos token.Pos // previous position, used for peek() method - - lastCharLen int // length of last character in bytes - lastLineLen int // length of last line in characters (for correct column reporting) - - tokStart int // token text start position - tokEnd int // token text end position - - // Error is called for each error encountered. If no Error - // function is set, the error is reported to os.Stderr. - Error func(pos token.Pos, msg string) - - // ErrorCount is incremented by one for each error encountered. - ErrorCount int - - // tokPos is the start position of most recently scanned token; set by - // Scan. The Filename field is always left untouched by the Scanner. If - // an error is reported (via Error) and Position is invalid, the scanner is - // not inside a token. - tokPos token.Pos -} - -// New creates and initializes a new instance of Scanner using src as -// its source content. -func New(src []byte) *Scanner { - // even though we accept a src, we read from a io.Reader compatible type - // (*bytes.Buffer). So in the future we might easily change it to streaming - // read. - b := bytes.NewBuffer(src) - s := &Scanner{ - buf: b, - src: src, - } - - // srcPosition always starts with 1 - s.srcPos.Line = 1 - return s -} - -// next reads the next rune from the bufferred reader. Returns the rune(0) if -// an error occurs (or io.EOF is returned). -func (s *Scanner) next() rune { - ch, size, err := s.buf.ReadRune() - if err != nil { - // advance for error reporting - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - return eof - } - - // remember last position - s.prevPos = s.srcPos - - s.srcPos.Column++ - s.lastCharLen = size - s.srcPos.Offset += size - - if ch == utf8.RuneError && size == 1 { - s.err("illegal UTF-8 encoding") - return ch - } - - if ch == '\n' { - s.srcPos.Line++ - s.lastLineLen = s.srcPos.Column - s.srcPos.Column = 0 - } - - if ch == '\x00' { - s.err("unexpected null character (0x00)") - return eof - } - - if ch == '\uE123' { - s.err("unicode code point U+E123 reserved for internal use") - return utf8.RuneError - } - - // debug - // fmt.Printf("ch: %q, offset:column: %d:%d\n", ch, s.srcPos.Offset, s.srcPos.Column) - return ch -} - -// unread unreads the previous read Rune and updates the source position -func (s *Scanner) unread() { - if err := s.buf.UnreadRune(); err != nil { - panic(err) // this is user fault, we should catch it - } - s.srcPos = s.prevPos // put back last position -} - -// peek returns the next rune without advancing the reader. -func (s *Scanner) peek() rune { - peek, _, err := s.buf.ReadRune() - if err != nil { - return eof - } - - s.buf.UnreadRune() - return peek -} - -// Scan scans the next token and returns the token. -func (s *Scanner) Scan() token.Token { - ch := s.next() - - // skip white space - for isWhitespace(ch) { - ch = s.next() - } - - var tok token.Type - - // token text markings - s.tokStart = s.srcPos.Offset - s.lastCharLen - - // token position, initial next() is moving the offset by one(size of rune - // actually), though we are interested with the starting point - s.tokPos.Offset = s.srcPos.Offset - s.lastCharLen - if s.srcPos.Column > 0 { - // common case: last character was not a '\n' - s.tokPos.Line = s.srcPos.Line - s.tokPos.Column = s.srcPos.Column - } else { - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - s.tokPos.Line = s.srcPos.Line - 1 - s.tokPos.Column = s.lastLineLen - } - - switch { - case isLetter(ch): - tok = token.IDENT - lit := s.scanIdentifier() - if lit == "true" || lit == "false" { - tok = token.BOOL - } - case isDecimal(ch): - tok = s.scanNumber(ch) - default: - switch ch { - case eof: - tok = token.EOF - case '"': - tok = token.STRING - s.scanString() - case '#', '/': - tok = token.COMMENT - s.scanComment(ch) - case '.': - tok = token.PERIOD - ch = s.peek() - if isDecimal(ch) { - tok = token.FLOAT - ch = s.scanMantissa(ch) - ch = s.scanExponent(ch) - } - case '<': - tok = token.HEREDOC - s.scanHeredoc() - case '[': - tok = token.LBRACK - case ']': - tok = token.RBRACK - case '{': - tok = token.LBRACE - case '}': - tok = token.RBRACE - case ',': - tok = token.COMMA - case '=': - tok = token.ASSIGN - case '+': - tok = token.ADD - case '-': - if isDecimal(s.peek()) { - ch := s.next() - tok = s.scanNumber(ch) - } else { - tok = token.SUB - } - default: - s.err("illegal char") - } - } - - // finish token ending - s.tokEnd = s.srcPos.Offset - - // create token literal - var tokenText string - if s.tokStart >= 0 { - tokenText = string(s.src[s.tokStart:s.tokEnd]) - } - s.tokStart = s.tokEnd // ensure idempotency of tokenText() call - - return token.Token{ - Type: tok, - Pos: s.tokPos, - Text: tokenText, - } -} - -func (s *Scanner) scanComment(ch rune) { - // single line comments - if ch == '#' || (ch == '/' && s.peek() != '*') { - if ch == '/' && s.peek() != '/' { - s.err("expected '/' for comment") - return - } - - ch = s.next() - for ch != '\n' && ch >= 0 && ch != eof { - ch = s.next() - } - if ch != eof && ch >= 0 { - s.unread() - } - return - } - - // be sure we get the character after /* This allows us to find comment's - // that are not erminated - if ch == '/' { - s.next() - ch = s.next() // read character after "/*" - } - - // look for /* - style comments - for { - if ch < 0 || ch == eof { - s.err("comment not terminated") - break - } - - ch0 := ch - ch = s.next() - if ch0 == '*' && ch == '/' { - break - } - } -} - -// scanNumber scans a HCL number definition starting with the given rune -func (s *Scanner) scanNumber(ch rune) token.Type { - if ch == '0' { - // check for hexadecimal, octal or float - ch = s.next() - if ch == 'x' || ch == 'X' { - // hexadecimal - ch = s.next() - found := false - for isHexadecimal(ch) { - ch = s.next() - found = true - } - - if !found { - s.err("illegal hexadecimal number") - } - - if ch != eof { - s.unread() - } - - return token.NUMBER - } - - // now it's either something like: 0421(octal) or 0.1231(float) - illegalOctal := false - for isDecimal(ch) { - ch = s.next() - if ch == '8' || ch == '9' { - // this is just a possibility. For example 0159 is illegal, but - // 0159.23 is valid. So we mark a possible illegal octal. If - // the next character is not a period, we'll print the error. - illegalOctal = true - } - } - - if ch == 'e' || ch == 'E' { - ch = s.scanExponent(ch) - return token.FLOAT - } - - if ch == '.' { - ch = s.scanFraction(ch) - - if ch == 'e' || ch == 'E' { - ch = s.next() - ch = s.scanExponent(ch) - } - return token.FLOAT - } - - if illegalOctal { - s.err("illegal octal number") - } - - if ch != eof { - s.unread() - } - return token.NUMBER - } - - s.scanMantissa(ch) - ch = s.next() // seek forward - if ch == 'e' || ch == 'E' { - ch = s.scanExponent(ch) - return token.FLOAT - } - - if ch == '.' { - ch = s.scanFraction(ch) - if ch == 'e' || ch == 'E' { - ch = s.next() - ch = s.scanExponent(ch) - } - return token.FLOAT - } - - if ch != eof { - s.unread() - } - return token.NUMBER -} - -// scanMantissa scans the mantissa beginning from the rune. It returns the next -// non decimal rune. It's used to determine wheter it's a fraction or exponent. -func (s *Scanner) scanMantissa(ch rune) rune { - scanned := false - for isDecimal(ch) { - ch = s.next() - scanned = true - } - - if scanned && ch != eof { - s.unread() - } - return ch -} - -// scanFraction scans the fraction after the '.' rune -func (s *Scanner) scanFraction(ch rune) rune { - if ch == '.' { - ch = s.peek() // we peek just to see if we can move forward - ch = s.scanMantissa(ch) - } - return ch -} - -// scanExponent scans the remaining parts of an exponent after the 'e' or 'E' -// rune. -func (s *Scanner) scanExponent(ch rune) rune { - if ch == 'e' || ch == 'E' { - ch = s.next() - if ch == '-' || ch == '+' { - ch = s.next() - } - ch = s.scanMantissa(ch) - } - return ch -} - -// scanHeredoc scans a heredoc string -func (s *Scanner) scanHeredoc() { - // Scan the second '<' in example: '<= len(identBytes) && identRegexp.Match(s.src[lineStart:s.srcPos.Offset-s.lastCharLen]) { - break - } - - // Not an anchor match, record the start of a new line - lineStart = s.srcPos.Offset - } - - if ch == eof { - s.err("heredoc not terminated") - return - } - } - - return -} - -// scanString scans a quoted string -func (s *Scanner) scanString() { - braces := 0 - for { - // '"' opening already consumed - // read character after quote - ch := s.next() - - if (ch == '\n' && braces == 0) || ch < 0 || ch == eof { - s.err("literal not terminated") - return - } - - if ch == '"' && braces == 0 { - break - } - - // If we're going into a ${} then we can ignore quotes for awhile - if braces == 0 && ch == '$' && s.peek() == '{' { - braces++ - s.next() - } else if braces > 0 && ch == '{' { - braces++ - } - if braces > 0 && ch == '}' { - braces-- - } - - if ch == '\\' { - s.scanEscape() - } - } - - return -} - -// scanEscape scans an escape sequence -func (s *Scanner) scanEscape() rune { - // http://en.cppreference.com/w/cpp/language/escape - ch := s.next() // read character after '/' - switch ch { - case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"': - // nothing to do - case '0', '1', '2', '3', '4', '5', '6', '7': - // octal notation - ch = s.scanDigits(ch, 8, 3) - case 'x': - // hexademical notation - ch = s.scanDigits(s.next(), 16, 2) - case 'u': - // universal character name - ch = s.scanDigits(s.next(), 16, 4) - case 'U': - // universal character name - ch = s.scanDigits(s.next(), 16, 8) - default: - s.err("illegal char escape") - } - return ch -} - -// scanDigits scans a rune with the given base for n times. For example an -// octal notation \184 would yield in scanDigits(ch, 8, 3) -func (s *Scanner) scanDigits(ch rune, base, n int) rune { - start := n - for n > 0 && digitVal(ch) < base { - ch = s.next() - if ch == eof { - // If we see an EOF, we halt any more scanning of digits - // immediately. - break - } - - n-- - } - if n > 0 { - s.err("illegal char escape") - } - - if n != start && ch != eof { - // we scanned all digits, put the last non digit char back, - // only if we read anything at all - s.unread() - } - - return ch -} - -// scanIdentifier scans an identifier and returns the literal string -func (s *Scanner) scanIdentifier() string { - offs := s.srcPos.Offset - s.lastCharLen - ch := s.next() - for isLetter(ch) || isDigit(ch) || ch == '-' || ch == '.' { - ch = s.next() - } - - if ch != eof { - s.unread() // we got identifier, put back latest char - } - - return string(s.src[offs:s.srcPos.Offset]) -} - -// recentPosition returns the position of the character immediately after the -// character or token returned by the last call to Scan. -func (s *Scanner) recentPosition() (pos token.Pos) { - pos.Offset = s.srcPos.Offset - s.lastCharLen - switch { - case s.srcPos.Column > 0: - // common case: last character was not a '\n' - pos.Line = s.srcPos.Line - pos.Column = s.srcPos.Column - case s.lastLineLen > 0: - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - pos.Line = s.srcPos.Line - 1 - pos.Column = s.lastLineLen - default: - // at the beginning of the source - pos.Line = 1 - pos.Column = 1 - } - return -} - -// err prints the error of any scanning to s.Error function. If the function is -// not defined, by default it prints them to os.Stderr -func (s *Scanner) err(msg string) { - s.ErrorCount++ - pos := s.recentPosition() - - if s.Error != nil { - s.Error(pos, msg) - return - } - - fmt.Fprintf(os.Stderr, "%s: %s\n", pos, msg) -} - -// isHexadecimal returns true if the given rune is a letter -func isLetter(ch rune) bool { - return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) -} - -// isDigit returns true if the given rune is a decimal digit -func isDigit(ch rune) bool { - return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) -} - -// isDecimal returns true if the given rune is a decimal number -func isDecimal(ch rune) bool { - return '0' <= ch && ch <= '9' -} - -// isHexadecimal returns true if the given rune is an hexadecimal number -func isHexadecimal(ch rune) bool { - return '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' || 'A' <= ch && ch <= 'F' -} - -// isWhitespace returns true if the rune is a space, tab, newline or carriage return -func isWhitespace(ch rune) bool { - return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' -} - -// digitVal returns the integer value of a given octal,decimal or hexadecimal rune -func digitVal(ch rune) int { - switch { - case '0' <= ch && ch <= '9': - return int(ch - '0') - case 'a' <= ch && ch <= 'f': - return int(ch - 'a' + 10) - case 'A' <= ch && ch <= 'F': - return int(ch - 'A' + 10) - } - return 16 // larger than any legal digit val -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go b/backend/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go deleted file mode 100644 index 5f981eaa..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go +++ /dev/null @@ -1,241 +0,0 @@ -package strconv - -import ( - "errors" - "unicode/utf8" -) - -// ErrSyntax indicates that a value does not have the right syntax for the target type. -var ErrSyntax = errors.New("invalid syntax") - -// Unquote interprets s as a single-quoted, double-quoted, -// or backquoted Go string literal, returning the string value -// that s quotes. (If s is single-quoted, it would be a Go -// character literal; Unquote returns the corresponding -// one-character string.) -func Unquote(s string) (t string, err error) { - n := len(s) - if n < 2 { - return "", ErrSyntax - } - quote := s[0] - if quote != s[n-1] { - return "", ErrSyntax - } - s = s[1 : n-1] - - if quote != '"' { - return "", ErrSyntax - } - if !contains(s, '$') && !contains(s, '{') && contains(s, '\n') { - return "", ErrSyntax - } - - // Is it trivial? Avoid allocation. - if !contains(s, '\\') && !contains(s, quote) && !contains(s, '$') { - switch quote { - case '"': - return s, nil - case '\'': - r, size := utf8.DecodeRuneInString(s) - if size == len(s) && (r != utf8.RuneError || size != 1) { - return s, nil - } - } - } - - var runeTmp [utf8.UTFMax]byte - buf := make([]byte, 0, 3*len(s)/2) // Try to avoid more allocations. - for len(s) > 0 { - // If we're starting a '${}' then let it through un-unquoted. - // Specifically: we don't unquote any characters within the `${}` - // section. - if s[0] == '$' && len(s) > 1 && s[1] == '{' { - buf = append(buf, '$', '{') - s = s[2:] - - // Continue reading until we find the closing brace, copying as-is - braces := 1 - for len(s) > 0 && braces > 0 { - r, size := utf8.DecodeRuneInString(s) - if r == utf8.RuneError { - return "", ErrSyntax - } - - s = s[size:] - - n := utf8.EncodeRune(runeTmp[:], r) - buf = append(buf, runeTmp[:n]...) - - switch r { - case '{': - braces++ - case '}': - braces-- - } - } - if braces != 0 { - return "", ErrSyntax - } - if len(s) == 0 { - // If there's no string left, we're done! - break - } else { - // If there's more left, we need to pop back up to the top of the loop - // in case there's another interpolation in this string. - continue - } - } - - if s[0] == '\n' { - return "", ErrSyntax - } - - c, multibyte, ss, err := unquoteChar(s, quote) - if err != nil { - return "", err - } - s = ss - if c < utf8.RuneSelf || !multibyte { - buf = append(buf, byte(c)) - } else { - n := utf8.EncodeRune(runeTmp[:], c) - buf = append(buf, runeTmp[:n]...) - } - if quote == '\'' && len(s) != 0 { - // single-quoted must be single character - return "", ErrSyntax - } - } - return string(buf), nil -} - -// contains reports whether the string contains the byte c. -func contains(s string, c byte) bool { - for i := 0; i < len(s); i++ { - if s[i] == c { - return true - } - } - return false -} - -func unhex(b byte) (v rune, ok bool) { - c := rune(b) - switch { - case '0' <= c && c <= '9': - return c - '0', true - case 'a' <= c && c <= 'f': - return c - 'a' + 10, true - case 'A' <= c && c <= 'F': - return c - 'A' + 10, true - } - return -} - -func unquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error) { - // easy cases - switch c := s[0]; { - case c == quote && (quote == '\'' || quote == '"'): - err = ErrSyntax - return - case c >= utf8.RuneSelf: - r, size := utf8.DecodeRuneInString(s) - return r, true, s[size:], nil - case c != '\\': - return rune(s[0]), false, s[1:], nil - } - - // hard case: c is backslash - if len(s) <= 1 { - err = ErrSyntax - return - } - c := s[1] - s = s[2:] - - switch c { - case 'a': - value = '\a' - case 'b': - value = '\b' - case 'f': - value = '\f' - case 'n': - value = '\n' - case 'r': - value = '\r' - case 't': - value = '\t' - case 'v': - value = '\v' - case 'x', 'u', 'U': - n := 0 - switch c { - case 'x': - n = 2 - case 'u': - n = 4 - case 'U': - n = 8 - } - var v rune - if len(s) < n { - err = ErrSyntax - return - } - for j := 0; j < n; j++ { - x, ok := unhex(s[j]) - if !ok { - err = ErrSyntax - return - } - v = v<<4 | x - } - s = s[n:] - if c == 'x' { - // single-byte string, possibly not UTF-8 - value = v - break - } - if v > utf8.MaxRune { - err = ErrSyntax - return - } - value = v - multibyte = true - case '0', '1', '2', '3', '4', '5', '6', '7': - v := rune(c) - '0' - if len(s) < 2 { - err = ErrSyntax - return - } - for j := 0; j < 2; j++ { // one digit already; two more - x := rune(s[j]) - '0' - if x < 0 || x > 7 { - err = ErrSyntax - return - } - v = (v << 3) | x - } - s = s[2:] - if v > 255 { - err = ErrSyntax - return - } - value = v - case '\\': - value = '\\' - case '\'', '"': - if c != quote { - err = ErrSyntax - return - } - value = rune(c) - default: - err = ErrSyntax - return - } - tail = s - return -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/token/position.go b/backend/vendor/github.com/hashicorp/hcl/hcl/token/position.go deleted file mode 100644 index 59c1bb72..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/token/position.go +++ /dev/null @@ -1,46 +0,0 @@ -package token - -import "fmt" - -// Pos describes an arbitrary source position -// including the file, line, and column location. -// A Position is valid if the line number is > 0. -type Pos struct { - Filename string // filename, if any - Offset int // offset, starting at 0 - Line int // line number, starting at 1 - Column int // column number, starting at 1 (character count) -} - -// IsValid returns true if the position is valid. -func (p *Pos) IsValid() bool { return p.Line > 0 } - -// String returns a string in one of several forms: -// -// file:line:column valid position with file name -// line:column valid position without file name -// file invalid position with file name -// - invalid position without file name -func (p Pos) String() string { - s := p.Filename - if p.IsValid() { - if s != "" { - s += ":" - } - s += fmt.Sprintf("%d:%d", p.Line, p.Column) - } - if s == "" { - s = "-" - } - return s -} - -// Before reports whether the position p is before u. -func (p Pos) Before(u Pos) bool { - return u.Offset > p.Offset || u.Line > p.Line -} - -// After reports whether the position p is after u. -func (p Pos) After(u Pos) bool { - return u.Offset < p.Offset || u.Line < p.Line -} diff --git a/backend/vendor/github.com/hashicorp/hcl/hcl/token/token.go b/backend/vendor/github.com/hashicorp/hcl/hcl/token/token.go deleted file mode 100644 index e37c0664..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/hcl/token/token.go +++ /dev/null @@ -1,219 +0,0 @@ -// Package token defines constants representing the lexical tokens for HCL -// (HashiCorp Configuration Language) -package token - -import ( - "fmt" - "strconv" - "strings" - - hclstrconv "github.com/hashicorp/hcl/hcl/strconv" -) - -// Token defines a single HCL token which can be obtained via the Scanner -type Token struct { - Type Type - Pos Pos - Text string - JSON bool -} - -// Type is the set of lexical tokens of the HCL (HashiCorp Configuration Language) -type Type int - -const ( - // Special tokens - ILLEGAL Type = iota - EOF - COMMENT - - identifier_beg - IDENT // literals - literal_beg - NUMBER // 12345 - FLOAT // 123.45 - BOOL // true,false - STRING // "abc" - HEREDOC // < 0 { - // Pop the current item - n := len(frontier) - item := frontier[n-1] - frontier = frontier[:n-1] - - switch v := item.Val.(type) { - case *ast.ObjectType: - items, frontier = flattenObjectType(v, item, items, frontier) - case *ast.ListType: - items, frontier = flattenListType(v, item, items, frontier) - default: - items = append(items, item) - } - } - - // Reverse the list since the frontier model runs things backwards - for i := len(items)/2 - 1; i >= 0; i-- { - opp := len(items) - 1 - i - items[i], items[opp] = items[opp], items[i] - } - - // Done! Set the original items - list.Items = items - return n, true - }) -} - -func flattenListType( - ot *ast.ListType, - item *ast.ObjectItem, - items []*ast.ObjectItem, - frontier []*ast.ObjectItem) ([]*ast.ObjectItem, []*ast.ObjectItem) { - // If the list is empty, keep the original list - if len(ot.List) == 0 { - items = append(items, item) - return items, frontier - } - - // All the elements of this object must also be objects! - for _, subitem := range ot.List { - if _, ok := subitem.(*ast.ObjectType); !ok { - items = append(items, item) - return items, frontier - } - } - - // Great! We have a match go through all the items and flatten - for _, elem := range ot.List { - // Add it to the frontier so that we can recurse - frontier = append(frontier, &ast.ObjectItem{ - Keys: item.Keys, - Assign: item.Assign, - Val: elem, - LeadComment: item.LeadComment, - LineComment: item.LineComment, - }) - } - - return items, frontier -} - -func flattenObjectType( - ot *ast.ObjectType, - item *ast.ObjectItem, - items []*ast.ObjectItem, - frontier []*ast.ObjectItem) ([]*ast.ObjectItem, []*ast.ObjectItem) { - // If the list has no items we do not have to flatten anything - if ot.List.Items == nil { - items = append(items, item) - return items, frontier - } - - // All the elements of this object must also be objects! - for _, subitem := range ot.List.Items { - if _, ok := subitem.Val.(*ast.ObjectType); !ok { - items = append(items, item) - return items, frontier - } - } - - // Great! We have a match go through all the items and flatten - for _, subitem := range ot.List.Items { - // Copy the new key - keys := make([]*ast.ObjectKey, len(item.Keys)+len(subitem.Keys)) - copy(keys, item.Keys) - copy(keys[len(item.Keys):], subitem.Keys) - - // Add it to the frontier so that we can recurse - frontier = append(frontier, &ast.ObjectItem{ - Keys: keys, - Assign: item.Assign, - Val: subitem.Val, - LeadComment: item.LeadComment, - LineComment: item.LineComment, - }) - } - - return items, frontier -} diff --git a/backend/vendor/github.com/hashicorp/hcl/json/parser/parser.go b/backend/vendor/github.com/hashicorp/hcl/json/parser/parser.go deleted file mode 100644 index 125a5f07..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/json/parser/parser.go +++ /dev/null @@ -1,313 +0,0 @@ -package parser - -import ( - "errors" - "fmt" - - "github.com/hashicorp/hcl/hcl/ast" - hcltoken "github.com/hashicorp/hcl/hcl/token" - "github.com/hashicorp/hcl/json/scanner" - "github.com/hashicorp/hcl/json/token" -) - -type Parser struct { - sc *scanner.Scanner - - // Last read token - tok token.Token - commaPrev token.Token - - enableTrace bool - indent int - n int // buffer size (max = 1) -} - -func newParser(src []byte) *Parser { - return &Parser{ - sc: scanner.New(src), - } -} - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func Parse(src []byte) (*ast.File, error) { - p := newParser(src) - return p.Parse() -} - -var errEofToken = errors.New("EOF token found") - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func (p *Parser) Parse() (*ast.File, error) { - f := &ast.File{} - var err, scerr error - p.sc.Error = func(pos token.Pos, msg string) { - scerr = fmt.Errorf("%s: %s", pos, msg) - } - - // The root must be an object in JSON - object, err := p.object() - if scerr != nil { - return nil, scerr - } - if err != nil { - return nil, err - } - - // We make our final node an object list so it is more HCL compatible - f.Node = object.List - - // Flatten it, which finds patterns and turns them into more HCL-like - // AST trees. - flattenObjects(f.Node) - - return f, nil -} - -func (p *Parser) objectList() (*ast.ObjectList, error) { - defer un(trace(p, "ParseObjectList")) - node := &ast.ObjectList{} - - for { - n, err := p.objectItem() - if err == errEofToken { - break // we are finished - } - - // we don't return a nil node, because might want to use already - // collected items. - if err != nil { - return node, err - } - - node.Add(n) - - // Check for a followup comma. If it isn't a comma, then we're done - if tok := p.scan(); tok.Type != token.COMMA { - break - } - } - - return node, nil -} - -// objectItem parses a single object item -func (p *Parser) objectItem() (*ast.ObjectItem, error) { - defer un(trace(p, "ParseObjectItem")) - - keys, err := p.objectKey() - if err != nil { - return nil, err - } - - o := &ast.ObjectItem{ - Keys: keys, - } - - switch p.tok.Type { - case token.COLON: - pos := p.tok.Pos - o.Assign = hcltoken.Pos{ - Filename: pos.Filename, - Offset: pos.Offset, - Line: pos.Line, - Column: pos.Column, - } - - o.Val, err = p.objectValue() - if err != nil { - return nil, err - } - } - - return o, nil -} - -// objectKey parses an object key and returns a ObjectKey AST -func (p *Parser) objectKey() ([]*ast.ObjectKey, error) { - keyCount := 0 - keys := make([]*ast.ObjectKey, 0) - - for { - tok := p.scan() - switch tok.Type { - case token.EOF: - return nil, errEofToken - case token.STRING: - keyCount++ - keys = append(keys, &ast.ObjectKey{ - Token: p.tok.HCLToken(), - }) - case token.COLON: - // If we have a zero keycount it means that we never got - // an object key, i.e. `{ :`. This is a syntax error. - if keyCount == 0 { - return nil, fmt.Errorf("expected: STRING got: %s", p.tok.Type) - } - - // Done - return keys, nil - case token.ILLEGAL: - return nil, errors.New("illegal") - default: - return nil, fmt.Errorf("expected: STRING got: %s", p.tok.Type) - } - } -} - -// object parses any type of object, such as number, bool, string, object or -// list. -func (p *Parser) objectValue() (ast.Node, error) { - defer un(trace(p, "ParseObjectValue")) - tok := p.scan() - - switch tok.Type { - case token.NUMBER, token.FLOAT, token.BOOL, token.NULL, token.STRING: - return p.literalType() - case token.LBRACE: - return p.objectType() - case token.LBRACK: - return p.listType() - case token.EOF: - return nil, errEofToken - } - - return nil, fmt.Errorf("Expected object value, got unknown token: %+v", tok) -} - -// object parses any type of object, such as number, bool, string, object or -// list. -func (p *Parser) object() (*ast.ObjectType, error) { - defer un(trace(p, "ParseType")) - tok := p.scan() - - switch tok.Type { - case token.LBRACE: - return p.objectType() - case token.EOF: - return nil, errEofToken - } - - return nil, fmt.Errorf("Expected object, got unknown token: %+v", tok) -} - -// objectType parses an object type and returns a ObjectType AST -func (p *Parser) objectType() (*ast.ObjectType, error) { - defer un(trace(p, "ParseObjectType")) - - // we assume that the currently scanned token is a LBRACE - o := &ast.ObjectType{} - - l, err := p.objectList() - - // if we hit RBRACE, we are good to go (means we parsed all Items), if it's - // not a RBRACE, it's an syntax error and we just return it. - if err != nil && p.tok.Type != token.RBRACE { - return nil, err - } - - o.List = l - return o, nil -} - -// listType parses a list type and returns a ListType AST -func (p *Parser) listType() (*ast.ListType, error) { - defer un(trace(p, "ParseListType")) - - // we assume that the currently scanned token is a LBRACK - l := &ast.ListType{} - - for { - tok := p.scan() - switch tok.Type { - case token.NUMBER, token.FLOAT, token.STRING: - node, err := p.literalType() - if err != nil { - return nil, err - } - - l.Add(node) - case token.COMMA: - continue - case token.LBRACE: - node, err := p.objectType() - if err != nil { - return nil, err - } - - l.Add(node) - case token.BOOL: - // TODO(arslan) should we support? not supported by HCL yet - case token.LBRACK: - // TODO(arslan) should we support nested lists? Even though it's - // written in README of HCL, it's not a part of the grammar - // (not defined in parse.y) - case token.RBRACK: - // finished - return l, nil - default: - return nil, fmt.Errorf("unexpected token while parsing list: %s", tok.Type) - } - - } -} - -// literalType parses a literal type and returns a LiteralType AST -func (p *Parser) literalType() (*ast.LiteralType, error) { - defer un(trace(p, "ParseLiteral")) - - return &ast.LiteralType{ - Token: p.tok.HCLToken(), - }, nil -} - -// scan returns the next token from the underlying scanner. If a token has -// been unscanned then read that instead. -func (p *Parser) scan() token.Token { - // If we have a token on the buffer, then return it. - if p.n != 0 { - p.n = 0 - return p.tok - } - - p.tok = p.sc.Scan() - return p.tok -} - -// unscan pushes the previously read token back onto the buffer. -func (p *Parser) unscan() { - p.n = 1 -} - -// ---------------------------------------------------------------------------- -// Parsing support - -func (p *Parser) printTrace(a ...interface{}) { - if !p.enableTrace { - return - } - - const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " - const n = len(dots) - fmt.Printf("%5d:%3d: ", p.tok.Pos.Line, p.tok.Pos.Column) - - i := 2 * p.indent - for i > n { - fmt.Print(dots) - i -= n - } - // i <= n - fmt.Print(dots[0:i]) - fmt.Println(a...) -} - -func trace(p *Parser, msg string) *Parser { - p.printTrace(msg, "(") - p.indent++ - return p -} - -// Usage pattern: defer un(trace(p, "...")) -func un(p *Parser) { - p.indent-- - p.printTrace(")") -} diff --git a/backend/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go b/backend/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go deleted file mode 100644 index fe3f0f09..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go +++ /dev/null @@ -1,451 +0,0 @@ -package scanner - -import ( - "bytes" - "fmt" - "os" - "unicode" - "unicode/utf8" - - "github.com/hashicorp/hcl/json/token" -) - -// eof represents a marker rune for the end of the reader. -const eof = rune(0) - -// Scanner defines a lexical scanner -type Scanner struct { - buf *bytes.Buffer // Source buffer for advancing and scanning - src []byte // Source buffer for immutable access - - // Source Position - srcPos token.Pos // current position - prevPos token.Pos // previous position, used for peek() method - - lastCharLen int // length of last character in bytes - lastLineLen int // length of last line in characters (for correct column reporting) - - tokStart int // token text start position - tokEnd int // token text end position - - // Error is called for each error encountered. If no Error - // function is set, the error is reported to os.Stderr. - Error func(pos token.Pos, msg string) - - // ErrorCount is incremented by one for each error encountered. - ErrorCount int - - // tokPos is the start position of most recently scanned token; set by - // Scan. The Filename field is always left untouched by the Scanner. If - // an error is reported (via Error) and Position is invalid, the scanner is - // not inside a token. - tokPos token.Pos -} - -// New creates and initializes a new instance of Scanner using src as -// its source content. -func New(src []byte) *Scanner { - // even though we accept a src, we read from a io.Reader compatible type - // (*bytes.Buffer). So in the future we might easily change it to streaming - // read. - b := bytes.NewBuffer(src) - s := &Scanner{ - buf: b, - src: src, - } - - // srcPosition always starts with 1 - s.srcPos.Line = 1 - return s -} - -// next reads the next rune from the bufferred reader. Returns the rune(0) if -// an error occurs (or io.EOF is returned). -func (s *Scanner) next() rune { - ch, size, err := s.buf.ReadRune() - if err != nil { - // advance for error reporting - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - return eof - } - - if ch == utf8.RuneError && size == 1 { - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - s.err("illegal UTF-8 encoding") - return ch - } - - // remember last position - s.prevPos = s.srcPos - - s.srcPos.Column++ - s.lastCharLen = size - s.srcPos.Offset += size - - if ch == '\n' { - s.srcPos.Line++ - s.lastLineLen = s.srcPos.Column - s.srcPos.Column = 0 - } - - // debug - // fmt.Printf("ch: %q, offset:column: %d:%d\n", ch, s.srcPos.Offset, s.srcPos.Column) - return ch -} - -// unread unreads the previous read Rune and updates the source position -func (s *Scanner) unread() { - if err := s.buf.UnreadRune(); err != nil { - panic(err) // this is user fault, we should catch it - } - s.srcPos = s.prevPos // put back last position -} - -// peek returns the next rune without advancing the reader. -func (s *Scanner) peek() rune { - peek, _, err := s.buf.ReadRune() - if err != nil { - return eof - } - - s.buf.UnreadRune() - return peek -} - -// Scan scans the next token and returns the token. -func (s *Scanner) Scan() token.Token { - ch := s.next() - - // skip white space - for isWhitespace(ch) { - ch = s.next() - } - - var tok token.Type - - // token text markings - s.tokStart = s.srcPos.Offset - s.lastCharLen - - // token position, initial next() is moving the offset by one(size of rune - // actually), though we are interested with the starting point - s.tokPos.Offset = s.srcPos.Offset - s.lastCharLen - if s.srcPos.Column > 0 { - // common case: last character was not a '\n' - s.tokPos.Line = s.srcPos.Line - s.tokPos.Column = s.srcPos.Column - } else { - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - s.tokPos.Line = s.srcPos.Line - 1 - s.tokPos.Column = s.lastLineLen - } - - switch { - case isLetter(ch): - lit := s.scanIdentifier() - if lit == "true" || lit == "false" { - tok = token.BOOL - } else if lit == "null" { - tok = token.NULL - } else { - s.err("illegal char") - } - case isDecimal(ch): - tok = s.scanNumber(ch) - default: - switch ch { - case eof: - tok = token.EOF - case '"': - tok = token.STRING - s.scanString() - case '.': - tok = token.PERIOD - ch = s.peek() - if isDecimal(ch) { - tok = token.FLOAT - ch = s.scanMantissa(ch) - ch = s.scanExponent(ch) - } - case '[': - tok = token.LBRACK - case ']': - tok = token.RBRACK - case '{': - tok = token.LBRACE - case '}': - tok = token.RBRACE - case ',': - tok = token.COMMA - case ':': - tok = token.COLON - case '-': - if isDecimal(s.peek()) { - ch := s.next() - tok = s.scanNumber(ch) - } else { - s.err("illegal char") - } - default: - s.err("illegal char: " + string(ch)) - } - } - - // finish token ending - s.tokEnd = s.srcPos.Offset - - // create token literal - var tokenText string - if s.tokStart >= 0 { - tokenText = string(s.src[s.tokStart:s.tokEnd]) - } - s.tokStart = s.tokEnd // ensure idempotency of tokenText() call - - return token.Token{ - Type: tok, - Pos: s.tokPos, - Text: tokenText, - } -} - -// scanNumber scans a HCL number definition starting with the given rune -func (s *Scanner) scanNumber(ch rune) token.Type { - zero := ch == '0' - pos := s.srcPos - - s.scanMantissa(ch) - ch = s.next() // seek forward - if ch == 'e' || ch == 'E' { - ch = s.scanExponent(ch) - return token.FLOAT - } - - if ch == '.' { - ch = s.scanFraction(ch) - if ch == 'e' || ch == 'E' { - ch = s.next() - ch = s.scanExponent(ch) - } - return token.FLOAT - } - - if ch != eof { - s.unread() - } - - // If we have a larger number and this is zero, error - if zero && pos != s.srcPos { - s.err("numbers cannot start with 0") - } - - return token.NUMBER -} - -// scanMantissa scans the mantissa beginning from the rune. It returns the next -// non decimal rune. It's used to determine wheter it's a fraction or exponent. -func (s *Scanner) scanMantissa(ch rune) rune { - scanned := false - for isDecimal(ch) { - ch = s.next() - scanned = true - } - - if scanned && ch != eof { - s.unread() - } - return ch -} - -// scanFraction scans the fraction after the '.' rune -func (s *Scanner) scanFraction(ch rune) rune { - if ch == '.' { - ch = s.peek() // we peek just to see if we can move forward - ch = s.scanMantissa(ch) - } - return ch -} - -// scanExponent scans the remaining parts of an exponent after the 'e' or 'E' -// rune. -func (s *Scanner) scanExponent(ch rune) rune { - if ch == 'e' || ch == 'E' { - ch = s.next() - if ch == '-' || ch == '+' { - ch = s.next() - } - ch = s.scanMantissa(ch) - } - return ch -} - -// scanString scans a quoted string -func (s *Scanner) scanString() { - braces := 0 - for { - // '"' opening already consumed - // read character after quote - ch := s.next() - - if ch == '\n' || ch < 0 || ch == eof { - s.err("literal not terminated") - return - } - - if ch == '"' { - break - } - - // If we're going into a ${} then we can ignore quotes for awhile - if braces == 0 && ch == '$' && s.peek() == '{' { - braces++ - s.next() - } else if braces > 0 && ch == '{' { - braces++ - } - if braces > 0 && ch == '}' { - braces-- - } - - if ch == '\\' { - s.scanEscape() - } - } - - return -} - -// scanEscape scans an escape sequence -func (s *Scanner) scanEscape() rune { - // http://en.cppreference.com/w/cpp/language/escape - ch := s.next() // read character after '/' - switch ch { - case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"': - // nothing to do - case '0', '1', '2', '3', '4', '5', '6', '7': - // octal notation - ch = s.scanDigits(ch, 8, 3) - case 'x': - // hexademical notation - ch = s.scanDigits(s.next(), 16, 2) - case 'u': - // universal character name - ch = s.scanDigits(s.next(), 16, 4) - case 'U': - // universal character name - ch = s.scanDigits(s.next(), 16, 8) - default: - s.err("illegal char escape") - } - return ch -} - -// scanDigits scans a rune with the given base for n times. For example an -// octal notation \184 would yield in scanDigits(ch, 8, 3) -func (s *Scanner) scanDigits(ch rune, base, n int) rune { - for n > 0 && digitVal(ch) < base { - ch = s.next() - n-- - } - if n > 0 { - s.err("illegal char escape") - } - - // we scanned all digits, put the last non digit char back - s.unread() - return ch -} - -// scanIdentifier scans an identifier and returns the literal string -func (s *Scanner) scanIdentifier() string { - offs := s.srcPos.Offset - s.lastCharLen - ch := s.next() - for isLetter(ch) || isDigit(ch) || ch == '-' { - ch = s.next() - } - - if ch != eof { - s.unread() // we got identifier, put back latest char - } - - return string(s.src[offs:s.srcPos.Offset]) -} - -// recentPosition returns the position of the character immediately after the -// character or token returned by the last call to Scan. -func (s *Scanner) recentPosition() (pos token.Pos) { - pos.Offset = s.srcPos.Offset - s.lastCharLen - switch { - case s.srcPos.Column > 0: - // common case: last character was not a '\n' - pos.Line = s.srcPos.Line - pos.Column = s.srcPos.Column - case s.lastLineLen > 0: - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - pos.Line = s.srcPos.Line - 1 - pos.Column = s.lastLineLen - default: - // at the beginning of the source - pos.Line = 1 - pos.Column = 1 - } - return -} - -// err prints the error of any scanning to s.Error function. If the function is -// not defined, by default it prints them to os.Stderr -func (s *Scanner) err(msg string) { - s.ErrorCount++ - pos := s.recentPosition() - - if s.Error != nil { - s.Error(pos, msg) - return - } - - fmt.Fprintf(os.Stderr, "%s: %s\n", pos, msg) -} - -// isHexadecimal returns true if the given rune is a letter -func isLetter(ch rune) bool { - return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) -} - -// isHexadecimal returns true if the given rune is a decimal digit -func isDigit(ch rune) bool { - return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) -} - -// isHexadecimal returns true if the given rune is a decimal number -func isDecimal(ch rune) bool { - return '0' <= ch && ch <= '9' -} - -// isHexadecimal returns true if the given rune is an hexadecimal number -func isHexadecimal(ch rune) bool { - return '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' || 'A' <= ch && ch <= 'F' -} - -// isWhitespace returns true if the rune is a space, tab, newline or carriage return -func isWhitespace(ch rune) bool { - return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' -} - -// digitVal returns the integer value of a given octal,decimal or hexadecimal rune -func digitVal(ch rune) int { - switch { - case '0' <= ch && ch <= '9': - return int(ch - '0') - case 'a' <= ch && ch <= 'f': - return int(ch - 'a' + 10) - case 'A' <= ch && ch <= 'F': - return int(ch - 'A' + 10) - } - return 16 // larger than any legal digit val -} diff --git a/backend/vendor/github.com/hashicorp/hcl/json/token/position.go b/backend/vendor/github.com/hashicorp/hcl/json/token/position.go deleted file mode 100644 index 59c1bb72..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/json/token/position.go +++ /dev/null @@ -1,46 +0,0 @@ -package token - -import "fmt" - -// Pos describes an arbitrary source position -// including the file, line, and column location. -// A Position is valid if the line number is > 0. -type Pos struct { - Filename string // filename, if any - Offset int // offset, starting at 0 - Line int // line number, starting at 1 - Column int // column number, starting at 1 (character count) -} - -// IsValid returns true if the position is valid. -func (p *Pos) IsValid() bool { return p.Line > 0 } - -// String returns a string in one of several forms: -// -// file:line:column valid position with file name -// line:column valid position without file name -// file invalid position with file name -// - invalid position without file name -func (p Pos) String() string { - s := p.Filename - if p.IsValid() { - if s != "" { - s += ":" - } - s += fmt.Sprintf("%d:%d", p.Line, p.Column) - } - if s == "" { - s = "-" - } - return s -} - -// Before reports whether the position p is before u. -func (p Pos) Before(u Pos) bool { - return u.Offset > p.Offset || u.Line > p.Line -} - -// After reports whether the position p is after u. -func (p Pos) After(u Pos) bool { - return u.Offset < p.Offset || u.Line < p.Line -} diff --git a/backend/vendor/github.com/hashicorp/hcl/json/token/token.go b/backend/vendor/github.com/hashicorp/hcl/json/token/token.go deleted file mode 100644 index 95a0c3ee..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/json/token/token.go +++ /dev/null @@ -1,118 +0,0 @@ -package token - -import ( - "fmt" - "strconv" - - hcltoken "github.com/hashicorp/hcl/hcl/token" -) - -// Token defines a single HCL token which can be obtained via the Scanner -type Token struct { - Type Type - Pos Pos - Text string -} - -// Type is the set of lexical tokens of the HCL (HashiCorp Configuration Language) -type Type int - -const ( - // Special tokens - ILLEGAL Type = iota - EOF - - identifier_beg - literal_beg - NUMBER // 12345 - FLOAT // 123.45 - BOOL // true,false - STRING // "abc" - NULL // null - literal_end - identifier_end - - operator_beg - LBRACK // [ - LBRACE // { - COMMA // , - PERIOD // . - COLON // : - - RBRACK // ] - RBRACE // } - - operator_end -) - -var tokens = [...]string{ - ILLEGAL: "ILLEGAL", - - EOF: "EOF", - - NUMBER: "NUMBER", - FLOAT: "FLOAT", - BOOL: "BOOL", - STRING: "STRING", - NULL: "NULL", - - LBRACK: "LBRACK", - LBRACE: "LBRACE", - COMMA: "COMMA", - PERIOD: "PERIOD", - COLON: "COLON", - - RBRACK: "RBRACK", - RBRACE: "RBRACE", -} - -// String returns the string corresponding to the token tok. -func (t Type) String() string { - s := "" - if 0 <= t && t < Type(len(tokens)) { - s = tokens[t] - } - if s == "" { - s = "token(" + strconv.Itoa(int(t)) + ")" - } - return s -} - -// IsIdentifier returns true for tokens corresponding to identifiers and basic -// type literals; it returns false otherwise. -func (t Type) IsIdentifier() bool { return identifier_beg < t && t < identifier_end } - -// IsLiteral returns true for tokens corresponding to basic type literals; it -// returns false otherwise. -func (t Type) IsLiteral() bool { return literal_beg < t && t < literal_end } - -// IsOperator returns true for tokens corresponding to operators and -// delimiters; it returns false otherwise. -func (t Type) IsOperator() bool { return operator_beg < t && t < operator_end } - -// String returns the token's literal text. Note that this is only -// applicable for certain token types, such as token.IDENT, -// token.STRING, etc.. -func (t Token) String() string { - return fmt.Sprintf("%s %s %s", t.Pos.String(), t.Type.String(), t.Text) -} - -// HCLToken converts this token to an HCL token. -// -// The token type must be a literal type or this will panic. -func (t Token) HCLToken() hcltoken.Token { - switch t.Type { - case BOOL: - return hcltoken.Token{Type: hcltoken.BOOL, Text: t.Text} - case FLOAT: - return hcltoken.Token{Type: hcltoken.FLOAT, Text: t.Text} - case NULL: - return hcltoken.Token{Type: hcltoken.STRING, Text: ""} - case NUMBER: - return hcltoken.Token{Type: hcltoken.NUMBER, Text: t.Text} - case STRING: - return hcltoken.Token{Type: hcltoken.STRING, Text: t.Text, JSON: true} - default: - panic(fmt.Sprintf("unimplemented HCLToken for type: %s", t.Type)) - } -} diff --git a/backend/vendor/github.com/hashicorp/hcl/lex.go b/backend/vendor/github.com/hashicorp/hcl/lex.go deleted file mode 100644 index d9993c29..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/lex.go +++ /dev/null @@ -1,38 +0,0 @@ -package hcl - -import ( - "unicode" - "unicode/utf8" -) - -type lexModeValue byte - -const ( - lexModeUnknown lexModeValue = iota - lexModeHcl - lexModeJson -) - -// lexMode returns whether we're going to be parsing in JSON -// mode or HCL mode. -func lexMode(v []byte) lexModeValue { - var ( - r rune - w int - offset int - ) - - for { - r, w = utf8.DecodeRune(v[offset:]) - offset += w - if unicode.IsSpace(r) { - continue - } - if r == '{' { - return lexModeJson - } - break - } - - return lexModeHcl -} diff --git a/backend/vendor/github.com/hashicorp/hcl/parse.go b/backend/vendor/github.com/hashicorp/hcl/parse.go deleted file mode 100644 index 1fca53c4..00000000 --- a/backend/vendor/github.com/hashicorp/hcl/parse.go +++ /dev/null @@ -1,39 +0,0 @@ -package hcl - -import ( - "fmt" - - "github.com/hashicorp/hcl/hcl/ast" - hclParser "github.com/hashicorp/hcl/hcl/parser" - jsonParser "github.com/hashicorp/hcl/json/parser" -) - -// ParseBytes accepts as input byte slice and returns ast tree. -// -// Input can be either JSON or HCL -func ParseBytes(in []byte) (*ast.File, error) { - return parse(in) -} - -// ParseString accepts input as a string and returns ast tree. -func ParseString(input string) (*ast.File, error) { - return parse([]byte(input)) -} - -func parse(in []byte) (*ast.File, error) { - switch lexMode(in) { - case lexModeHcl: - return hclParser.Parse(in) - case lexModeJson: - return jsonParser.Parse(in) - } - - return nil, fmt.Errorf("unknown config format") -} - -// Parse parses the given input and returns the root object. -// -// The input format can be either HCL or JSON. -func Parse(input string) (*ast.File, error) { - return parse([]byte(input)) -} diff --git a/backend/vendor/github.com/inconshreveable/mousetrap/LICENSE b/backend/vendor/github.com/inconshreveable/mousetrap/LICENSE deleted file mode 100644 index 5f920e97..00000000 --- a/backend/vendor/github.com/inconshreveable/mousetrap/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2022 Alan Shreve (@inconshreveable) - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/vendor/github.com/inconshreveable/mousetrap/README.md b/backend/vendor/github.com/inconshreveable/mousetrap/README.md deleted file mode 100644 index 7a950d17..00000000 --- a/backend/vendor/github.com/inconshreveable/mousetrap/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# mousetrap - -mousetrap is a tiny library that answers a single question. - -On a Windows machine, was the process invoked by someone double clicking on -the executable file while browsing in explorer? - -### Motivation - -Windows developers unfamiliar with command line tools will often "double-click" -the executable for a tool. Because most CLI tools print the help and then exit -when invoked without arguments, this is often very frustrating for those users. - -mousetrap provides a way to detect these invocations so that you can provide -more helpful behavior and instructions on how to run the CLI tool. To see what -this looks like, both from an organizational and a technical perspective, see -https://inconshreveable.com/09-09-2014/sweat-the-small-stuff/ - -### The interface - -The library exposes a single interface: - - func StartedByExplorer() (bool) diff --git a/backend/vendor/github.com/inconshreveable/mousetrap/trap_others.go b/backend/vendor/github.com/inconshreveable/mousetrap/trap_others.go deleted file mode 100644 index 06a91f08..00000000 --- a/backend/vendor/github.com/inconshreveable/mousetrap/trap_others.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !windows -// +build !windows - -package mousetrap - -// StartedByExplorer returns true if the program was invoked by the user -// double-clicking on the executable from explorer.exe -// -// It is conservative and returns false if any of the internal calls fail. -// It does not guarantee that the program was run from a terminal. It only can tell you -// whether it was launched from explorer.exe -// -// On non-Windows platforms, it always returns false. -func StartedByExplorer() bool { - return false -} diff --git a/backend/vendor/github.com/inconshreveable/mousetrap/trap_windows.go b/backend/vendor/github.com/inconshreveable/mousetrap/trap_windows.go deleted file mode 100644 index 0c568802..00000000 --- a/backend/vendor/github.com/inconshreveable/mousetrap/trap_windows.go +++ /dev/null @@ -1,42 +0,0 @@ -package mousetrap - -import ( - "syscall" - "unsafe" -) - -func getProcessEntry(pid int) (*syscall.ProcessEntry32, error) { - snapshot, err := syscall.CreateToolhelp32Snapshot(syscall.TH32CS_SNAPPROCESS, 0) - if err != nil { - return nil, err - } - defer syscall.CloseHandle(snapshot) - var procEntry syscall.ProcessEntry32 - procEntry.Size = uint32(unsafe.Sizeof(procEntry)) - if err = syscall.Process32First(snapshot, &procEntry); err != nil { - return nil, err - } - for { - if procEntry.ProcessID == uint32(pid) { - return &procEntry, nil - } - err = syscall.Process32Next(snapshot, &procEntry) - if err != nil { - return nil, err - } - } -} - -// StartedByExplorer returns true if the program was invoked by the user double-clicking -// on the executable from explorer.exe -// -// It is conservative and returns false if any of the internal calls fail. -// It does not guarantee that the program was run from a terminal. It only can tell you -// whether it was launched from explorer.exe -func StartedByExplorer() bool { - pe, err := getProcessEntry(syscall.Getppid()) - if err != nil { - return false - } - return "explorer.exe" == syscall.UTF16ToString(pe.ExeFile[:]) -} diff --git a/backend/vendor/github.com/klauspost/compress/LICENSE b/backend/vendor/github.com/klauspost/compress/LICENSE deleted file mode 100644 index 1eb75ef6..00000000 --- a/backend/vendor/github.com/klauspost/compress/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 The Go Authors. All rights reserved. -Copyright (c) 2019 Klaus Post. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/klauspost/compress/flate/deflate.go b/backend/vendor/github.com/klauspost/compress/flate/deflate.go deleted file mode 100644 index 25dbe3e1..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/deflate.go +++ /dev/null @@ -1,821 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Copyright (c) 2015 Klaus Post -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -import ( - "fmt" - "io" - "math" -) - -const ( - NoCompression = 0 - BestSpeed = 1 - BestCompression = 9 - DefaultCompression = -1 - - // HuffmanOnly disables Lempel-Ziv match searching and only performs Huffman - // entropy encoding. This mode is useful in compressing data that has - // already been compressed with an LZ style algorithm (e.g. Snappy or LZ4) - // that lacks an entropy encoder. Compression gains are achieved when - // certain bytes in the input stream occur more frequently than others. - // - // Note that HuffmanOnly produces a compressed output that is - // RFC 1951 compliant. That is, any valid DEFLATE decompressor will - // continue to be able to decompress this output. - HuffmanOnly = -2 - ConstantCompression = HuffmanOnly // compatibility alias. - - logWindowSize = 15 - windowSize = 1 << logWindowSize - windowMask = windowSize - 1 - logMaxOffsetSize = 15 // Standard DEFLATE - minMatchLength = 4 // The smallest match that the compressor looks for - maxMatchLength = 258 // The longest match for the compressor - minOffsetSize = 1 // The shortest offset that makes any sense - - // The maximum number of tokens we put into a single flat block, just too - // stop things from getting too large. - maxFlateBlockTokens = 1 << 14 - maxStoreBlockSize = 65535 - hashBits = 17 // After 17 performance degrades - hashSize = 1 << hashBits - hashMask = (1 << hashBits) - 1 - hashShift = (hashBits + minMatchLength - 1) / minMatchLength - maxHashOffset = 1 << 24 - - skipNever = math.MaxInt32 - - debugDeflate = false -) - -type compressionLevel struct { - good, lazy, nice, chain, fastSkipHashing, level int -} - -// Compression levels have been rebalanced from zlib deflate defaults -// to give a bigger spread in speed and compression. -// See https://blog.klauspost.com/rebalancing-deflate-compression-levels/ -var levels = []compressionLevel{ - {}, // 0 - // Level 1-6 uses specialized algorithm - values not used - {0, 0, 0, 0, 0, 1}, - {0, 0, 0, 0, 0, 2}, - {0, 0, 0, 0, 0, 3}, - {0, 0, 0, 0, 0, 4}, - {0, 0, 0, 0, 0, 5}, - {0, 0, 0, 0, 0, 6}, - // Levels 7-9 use increasingly more lazy matching - // and increasingly stringent conditions for "good enough". - {8, 8, 24, 16, skipNever, 7}, - {10, 16, 24, 64, skipNever, 8}, - {32, 258, 258, 4096, skipNever, 9}, -} - -// advancedState contains state for the advanced levels, with bigger hash tables, etc. -type advancedState struct { - // deflate state - length int - offset int - maxInsertIndex int - - // Input hash chains - // hashHead[hashValue] contains the largest inputIndex with the specified hash value - // If hashHead[hashValue] is within the current window, then - // hashPrev[hashHead[hashValue] & windowMask] contains the previous index - // with the same hash value. - chainHead int - hashHead [hashSize]uint32 - hashPrev [windowSize]uint32 - hashOffset int - - // input window: unprocessed data is window[index:windowEnd] - index int - hashMatch [maxMatchLength + minMatchLength]uint32 - - hash uint32 - ii uint16 // position of last match, intended to overflow to reset. -} - -type compressor struct { - compressionLevel - - w *huffmanBitWriter - - // compression algorithm - fill func(*compressor, []byte) int // copy data to window - step func(*compressor) // process window - - window []byte - windowEnd int - blockStart int // window index where current tokens start - err error - - // queued output tokens - tokens tokens - fast fastEnc - state *advancedState - - sync bool // requesting flush - byteAvailable bool // if true, still need to process window[index-1]. -} - -func (d *compressor) fillDeflate(b []byte) int { - s := d.state - if s.index >= 2*windowSize-(minMatchLength+maxMatchLength) { - // shift the window by windowSize - copy(d.window[:], d.window[windowSize:2*windowSize]) - s.index -= windowSize - d.windowEnd -= windowSize - if d.blockStart >= windowSize { - d.blockStart -= windowSize - } else { - d.blockStart = math.MaxInt32 - } - s.hashOffset += windowSize - if s.hashOffset > maxHashOffset { - delta := s.hashOffset - 1 - s.hashOffset -= delta - s.chainHead -= delta - // Iterate over slices instead of arrays to avoid copying - // the entire table onto the stack (Issue #18625). - for i, v := range s.hashPrev[:] { - if int(v) > delta { - s.hashPrev[i] = uint32(int(v) - delta) - } else { - s.hashPrev[i] = 0 - } - } - for i, v := range s.hashHead[:] { - if int(v) > delta { - s.hashHead[i] = uint32(int(v) - delta) - } else { - s.hashHead[i] = 0 - } - } - } - } - n := copy(d.window[d.windowEnd:], b) - d.windowEnd += n - return n -} - -func (d *compressor) writeBlock(tok *tokens, index int, eof bool) error { - if index > 0 || eof { - var window []byte - if d.blockStart <= index { - window = d.window[d.blockStart:index] - } - d.blockStart = index - d.w.writeBlock(tok, eof, window) - return d.w.err - } - return nil -} - -// writeBlockSkip writes the current block and uses the number of tokens -// to determine if the block should be stored on no matches, or -// only huffman encoded. -func (d *compressor) writeBlockSkip(tok *tokens, index int, eof bool) error { - if index > 0 || eof { - if d.blockStart <= index { - window := d.window[d.blockStart:index] - // If we removed less than a 64th of all literals - // we huffman compress the block. - if int(tok.n) > len(window)-int(tok.n>>6) { - d.w.writeBlockHuff(eof, window, d.sync) - } else { - // Write a dynamic huffman block. - d.w.writeBlockDynamic(tok, eof, window, d.sync) - } - } else { - d.w.writeBlock(tok, eof, nil) - } - d.blockStart = index - return d.w.err - } - return nil -} - -// fillWindow will fill the current window with the supplied -// dictionary and calculate all hashes. -// This is much faster than doing a full encode. -// Should only be used after a start/reset. -func (d *compressor) fillWindow(b []byte) { - // Do not fill window if we are in store-only or huffman mode. - if d.level <= 0 { - return - } - if d.fast != nil { - // encode the last data, but discard the result - if len(b) > maxMatchOffset { - b = b[len(b)-maxMatchOffset:] - } - d.fast.Encode(&d.tokens, b) - d.tokens.Reset() - return - } - s := d.state - // If we are given too much, cut it. - if len(b) > windowSize { - b = b[len(b)-windowSize:] - } - // Add all to window. - n := copy(d.window[d.windowEnd:], b) - - // Calculate 256 hashes at the time (more L1 cache hits) - loops := (n + 256 - minMatchLength) / 256 - for j := 0; j < loops; j++ { - startindex := j * 256 - end := startindex + 256 + minMatchLength - 1 - if end > n { - end = n - } - tocheck := d.window[startindex:end] - dstSize := len(tocheck) - minMatchLength + 1 - - if dstSize <= 0 { - continue - } - - dst := s.hashMatch[:dstSize] - bulkHash4(tocheck, dst) - var newH uint32 - for i, val := range dst { - di := i + startindex - newH = val & hashMask - // Get previous value with the same hash. - // Our chain should point to the previous value. - s.hashPrev[di&windowMask] = s.hashHead[newH] - // Set the head of the hash chain to us. - s.hashHead[newH] = uint32(di + s.hashOffset) - } - s.hash = newH - } - // Update window information. - d.windowEnd += n - s.index = n -} - -// Try to find a match starting at index whose length is greater than prevSize. -// We only look at chainCount possibilities before giving up. -// pos = s.index, prevHead = s.chainHead-s.hashOffset, prevLength=minMatchLength-1, lookahead -func (d *compressor) findMatch(pos int, prevHead int, prevLength int, lookahead int) (length, offset int, ok bool) { - minMatchLook := maxMatchLength - if lookahead < minMatchLook { - minMatchLook = lookahead - } - - win := d.window[0 : pos+minMatchLook] - - // We quit when we get a match that's at least nice long - nice := len(win) - pos - if d.nice < nice { - nice = d.nice - } - - // If we've got a match that's good enough, only look in 1/4 the chain. - tries := d.chain - length = prevLength - if length >= d.good { - tries >>= 2 - } - - wEnd := win[pos+length] - wPos := win[pos:] - minIndex := pos - windowSize - - for i := prevHead; tries > 0; tries-- { - if wEnd == win[i+length] { - n := matchLen(win[i:i+minMatchLook], wPos) - - if n > length && (n > minMatchLength || pos-i <= 4096) { - length = n - offset = pos - i - ok = true - if n >= nice { - // The match is good enough that we don't try to find a better one. - break - } - wEnd = win[pos+n] - } - } - if i == minIndex { - // hashPrev[i & windowMask] has already been overwritten, so stop now. - break - } - i = int(d.state.hashPrev[i&windowMask]) - d.state.hashOffset - if i < minIndex || i < 0 { - break - } - } - return -} - -func (d *compressor) writeStoredBlock(buf []byte) error { - if d.w.writeStoredHeader(len(buf), false); d.w.err != nil { - return d.w.err - } - d.w.writeBytes(buf) - return d.w.err -} - -// hash4 returns a hash representation of the first 4 bytes -// of the supplied slice. -// The caller must ensure that len(b) >= 4. -func hash4(b []byte) uint32 { - b = b[:4] - return hash4u(uint32(b[3])|uint32(b[2])<<8|uint32(b[1])<<16|uint32(b[0])<<24, hashBits) -} - -// bulkHash4 will compute hashes using the same -// algorithm as hash4 -func bulkHash4(b []byte, dst []uint32) { - if len(b) < 4 { - return - } - hb := uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24 - dst[0] = hash4u(hb, hashBits) - end := len(b) - 4 + 1 - for i := 1; i < end; i++ { - hb = (hb << 8) | uint32(b[i+3]) - dst[i] = hash4u(hb, hashBits) - } -} - -func (d *compressor) initDeflate() { - d.window = make([]byte, 2*windowSize) - d.byteAvailable = false - d.err = nil - if d.state == nil { - return - } - s := d.state - s.index = 0 - s.hashOffset = 1 - s.length = minMatchLength - 1 - s.offset = 0 - s.hash = 0 - s.chainHead = -1 -} - -// deflateLazy is the same as deflate, but with d.fastSkipHashing == skipNever, -// meaning it always has lazy matching on. -func (d *compressor) deflateLazy() { - s := d.state - // Sanity enables additional runtime tests. - // It's intended to be used during development - // to supplement the currently ad-hoc unit tests. - const sanity = debugDeflate - - if d.windowEnd-s.index < minMatchLength+maxMatchLength && !d.sync { - return - } - - s.maxInsertIndex = d.windowEnd - (minMatchLength - 1) - if s.index < s.maxInsertIndex { - s.hash = hash4(d.window[s.index : s.index+minMatchLength]) - } - - for { - if sanity && s.index > d.windowEnd { - panic("index > windowEnd") - } - lookahead := d.windowEnd - s.index - if lookahead < minMatchLength+maxMatchLength { - if !d.sync { - return - } - if sanity && s.index > d.windowEnd { - panic("index > windowEnd") - } - if lookahead == 0 { - // Flush current output block if any. - if d.byteAvailable { - // There is still one pending token that needs to be flushed - d.tokens.AddLiteral(d.window[s.index-1]) - d.byteAvailable = false - } - if d.tokens.n > 0 { - if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { - return - } - d.tokens.Reset() - } - return - } - } - if s.index < s.maxInsertIndex { - // Update the hash - s.hash = hash4(d.window[s.index : s.index+minMatchLength]) - ch := s.hashHead[s.hash&hashMask] - s.chainHead = int(ch) - s.hashPrev[s.index&windowMask] = ch - s.hashHead[s.hash&hashMask] = uint32(s.index + s.hashOffset) - } - prevLength := s.length - prevOffset := s.offset - s.length = minMatchLength - 1 - s.offset = 0 - minIndex := s.index - windowSize - if minIndex < 0 { - minIndex = 0 - } - - if s.chainHead-s.hashOffset >= minIndex && lookahead > prevLength && prevLength < d.lazy { - if newLength, newOffset, ok := d.findMatch(s.index, s.chainHead-s.hashOffset, minMatchLength-1, lookahead); ok { - s.length = newLength - s.offset = newOffset - } - } - if prevLength >= minMatchLength && s.length <= prevLength { - // There was a match at the previous step, and the current match is - // not better. Output the previous match. - d.tokens.AddMatch(uint32(prevLength-3), uint32(prevOffset-minOffsetSize)) - - // Insert in the hash table all strings up to the end of the match. - // index and index-1 are already inserted. If there is not enough - // lookahead, the last two strings are not inserted into the hash - // table. - var newIndex int - newIndex = s.index + prevLength - 1 - // Calculate missing hashes - end := newIndex - if end > s.maxInsertIndex { - end = s.maxInsertIndex - } - end += minMatchLength - 1 - startindex := s.index + 1 - if startindex > s.maxInsertIndex { - startindex = s.maxInsertIndex - } - tocheck := d.window[startindex:end] - dstSize := len(tocheck) - minMatchLength + 1 - if dstSize > 0 { - dst := s.hashMatch[:dstSize] - bulkHash4(tocheck, dst) - var newH uint32 - for i, val := range dst { - di := i + startindex - newH = val & hashMask - // Get previous value with the same hash. - // Our chain should point to the previous value. - s.hashPrev[di&windowMask] = s.hashHead[newH] - // Set the head of the hash chain to us. - s.hashHead[newH] = uint32(di + s.hashOffset) - } - s.hash = newH - } - - s.index = newIndex - d.byteAvailable = false - s.length = minMatchLength - 1 - if d.tokens.n == maxFlateBlockTokens { - // The block includes the current character - if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { - return - } - d.tokens.Reset() - } - } else { - // Reset, if we got a match this run. - if s.length >= minMatchLength { - s.ii = 0 - } - // We have a byte waiting. Emit it. - if d.byteAvailable { - s.ii++ - d.tokens.AddLiteral(d.window[s.index-1]) - if d.tokens.n == maxFlateBlockTokens { - if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { - return - } - d.tokens.Reset() - } - s.index++ - - // If we have a long run of no matches, skip additional bytes - // Resets when s.ii overflows after 64KB. - if s.ii > 31 { - n := int(s.ii >> 5) - for j := 0; j < n; j++ { - if s.index >= d.windowEnd-1 { - break - } - - d.tokens.AddLiteral(d.window[s.index-1]) - if d.tokens.n == maxFlateBlockTokens { - if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { - return - } - d.tokens.Reset() - } - s.index++ - } - // Flush last byte - d.tokens.AddLiteral(d.window[s.index-1]) - d.byteAvailable = false - // s.length = minMatchLength - 1 // not needed, since s.ii is reset above, so it should never be > minMatchLength - if d.tokens.n == maxFlateBlockTokens { - if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { - return - } - d.tokens.Reset() - } - } - } else { - s.index++ - d.byteAvailable = true - } - } - } -} - -func (d *compressor) store() { - if d.windowEnd > 0 && (d.windowEnd == maxStoreBlockSize || d.sync) { - d.err = d.writeStoredBlock(d.window[:d.windowEnd]) - d.windowEnd = 0 - } -} - -// fillWindow will fill the buffer with data for huffman-only compression. -// The number of bytes copied is returned. -func (d *compressor) fillBlock(b []byte) int { - n := copy(d.window[d.windowEnd:], b) - d.windowEnd += n - return n -} - -// storeHuff will compress and store the currently added data, -// if enough has been accumulated or we at the end of the stream. -// Any error that occurred will be in d.err -func (d *compressor) storeHuff() { - if d.windowEnd < len(d.window) && !d.sync || d.windowEnd == 0 { - return - } - d.w.writeBlockHuff(false, d.window[:d.windowEnd], d.sync) - d.err = d.w.err - d.windowEnd = 0 -} - -// storeFast will compress and store the currently added data, -// if enough has been accumulated or we at the end of the stream. -// Any error that occurred will be in d.err -func (d *compressor) storeFast() { - // We only compress if we have maxStoreBlockSize. - if d.windowEnd < len(d.window) { - if !d.sync { - return - } - // Handle extremely small sizes. - if d.windowEnd < 128 { - if d.windowEnd == 0 { - return - } - if d.windowEnd <= 32 { - d.err = d.writeStoredBlock(d.window[:d.windowEnd]) - } else { - d.w.writeBlockHuff(false, d.window[:d.windowEnd], true) - d.err = d.w.err - } - d.tokens.Reset() - d.windowEnd = 0 - d.fast.Reset() - return - } - } - - d.fast.Encode(&d.tokens, d.window[:d.windowEnd]) - // If we made zero matches, store the block as is. - if d.tokens.n == 0 { - d.err = d.writeStoredBlock(d.window[:d.windowEnd]) - // If we removed less than 1/16th, huffman compress the block. - } else if int(d.tokens.n) > d.windowEnd-(d.windowEnd>>4) { - d.w.writeBlockHuff(false, d.window[:d.windowEnd], d.sync) - d.err = d.w.err - } else { - d.w.writeBlockDynamic(&d.tokens, false, d.window[:d.windowEnd], d.sync) - d.err = d.w.err - } - d.tokens.Reset() - d.windowEnd = 0 -} - -// write will add input byte to the stream. -// Unless an error occurs all bytes will be consumed. -func (d *compressor) write(b []byte) (n int, err error) { - if d.err != nil { - return 0, d.err - } - n = len(b) - for len(b) > 0 { - d.step(d) - b = b[d.fill(d, b):] - if d.err != nil { - return 0, d.err - } - } - return n, d.err -} - -func (d *compressor) syncFlush() error { - d.sync = true - if d.err != nil { - return d.err - } - d.step(d) - if d.err == nil { - d.w.writeStoredHeader(0, false) - d.w.flush() - d.err = d.w.err - } - d.sync = false - return d.err -} - -func (d *compressor) init(w io.Writer, level int) (err error) { - d.w = newHuffmanBitWriter(w) - - switch { - case level == NoCompression: - d.window = make([]byte, maxStoreBlockSize) - d.fill = (*compressor).fillBlock - d.step = (*compressor).store - case level == ConstantCompression: - d.w.logNewTablePenalty = 4 - d.window = make([]byte, maxStoreBlockSize) - d.fill = (*compressor).fillBlock - d.step = (*compressor).storeHuff - case level == DefaultCompression: - level = 5 - fallthrough - case level >= 1 && level <= 6: - d.w.logNewTablePenalty = 6 - d.fast = newFastEnc(level) - d.window = make([]byte, maxStoreBlockSize) - d.fill = (*compressor).fillBlock - d.step = (*compressor).storeFast - case 7 <= level && level <= 9: - d.w.logNewTablePenalty = 10 - d.state = &advancedState{} - d.compressionLevel = levels[level] - d.initDeflate() - d.fill = (*compressor).fillDeflate - d.step = (*compressor).deflateLazy - default: - return fmt.Errorf("flate: invalid compression level %d: want value in range [-2, 9]", level) - } - d.level = level - return nil -} - -// reset the state of the compressor. -func (d *compressor) reset(w io.Writer) { - d.w.reset(w) - d.sync = false - d.err = nil - // We only need to reset a few things for Snappy. - if d.fast != nil { - d.fast.Reset() - d.windowEnd = 0 - d.tokens.Reset() - return - } - switch d.compressionLevel.chain { - case 0: - // level was NoCompression or ConstantCompresssion. - d.windowEnd = 0 - default: - s := d.state - s.chainHead = -1 - for i := range s.hashHead { - s.hashHead[i] = 0 - } - for i := range s.hashPrev { - s.hashPrev[i] = 0 - } - s.hashOffset = 1 - s.index, d.windowEnd = 0, 0 - d.blockStart, d.byteAvailable = 0, false - d.tokens.Reset() - s.length = minMatchLength - 1 - s.offset = 0 - s.hash = 0 - s.ii = 0 - s.maxInsertIndex = 0 - } -} - -func (d *compressor) close() error { - if d.err != nil { - return d.err - } - d.sync = true - d.step(d) - if d.err != nil { - return d.err - } - if d.w.writeStoredHeader(0, true); d.w.err != nil { - return d.w.err - } - d.w.flush() - d.w.reset(nil) - return d.w.err -} - -// NewWriter returns a new Writer compressing data at the given level. -// Following zlib, levels range from 1 (BestSpeed) to 9 (BestCompression); -// higher levels typically run slower but compress more. -// Level 0 (NoCompression) does not attempt any compression; it only adds the -// necessary DEFLATE framing. -// Level -1 (DefaultCompression) uses the default compression level. -// Level -2 (ConstantCompression) will use Huffman compression only, giving -// a very fast compression for all types of input, but sacrificing considerable -// compression efficiency. -// -// If level is in the range [-2, 9] then the error returned will be nil. -// Otherwise the error returned will be non-nil. -func NewWriter(w io.Writer, level int) (*Writer, error) { - var dw Writer - if err := dw.d.init(w, level); err != nil { - return nil, err - } - return &dw, nil -} - -// NewWriterDict is like NewWriter but initializes the new -// Writer with a preset dictionary. The returned Writer behaves -// as if the dictionary had been written to it without producing -// any compressed output. The compressed data written to w -// can only be decompressed by a Reader initialized with the -// same dictionary. -func NewWriterDict(w io.Writer, level int, dict []byte) (*Writer, error) { - zw, err := NewWriter(w, level) - if err != nil { - return nil, err - } - zw.d.fillWindow(dict) - zw.dict = append(zw.dict, dict...) // duplicate dictionary for Reset method. - return zw, err -} - -// A Writer takes data written to it and writes the compressed -// form of that data to an underlying writer (see NewWriter). -type Writer struct { - d compressor - dict []byte -} - -// Write writes data to w, which will eventually write the -// compressed form of data to its underlying writer. -func (w *Writer) Write(data []byte) (n int, err error) { - return w.d.write(data) -} - -// Flush flushes any pending data to the underlying writer. -// It is useful mainly in compressed network protocols, to ensure that -// a remote reader has enough data to reconstruct a packet. -// Flush does not return until the data has been written. -// Calling Flush when there is no pending data still causes the Writer -// to emit a sync marker of at least 4 bytes. -// If the underlying writer returns an error, Flush returns that error. -// -// In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. -func (w *Writer) Flush() error { - // For more about flushing: - // http://www.bolet.org/~pornin/deflate-flush.html - return w.d.syncFlush() -} - -// Close flushes and closes the writer. -func (w *Writer) Close() error { - return w.d.close() -} - -// Reset discards the writer's state and makes it equivalent to -// the result of NewWriter or NewWriterDict called with dst -// and w's level and dictionary. -func (w *Writer) Reset(dst io.Writer) { - if len(w.dict) > 0 { - // w was created with NewWriterDict - w.d.reset(dst) - if dst != nil { - w.d.fillWindow(w.dict) - } - } else { - // w was created with NewWriter - w.d.reset(dst) - } -} - -// ResetDict discards the writer's state and makes it equivalent to -// the result of NewWriter or NewWriterDict called with dst -// and w's level, but sets a specific dictionary. -func (w *Writer) ResetDict(dst io.Writer, dict []byte) { - w.dict = dict - w.d.reset(dst) - w.d.fillWindow(w.dict) -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/dict_decoder.go b/backend/vendor/github.com/klauspost/compress/flate/dict_decoder.go deleted file mode 100644 index bb36351a..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/dict_decoder.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -// dictDecoder implements the LZ77 sliding dictionary as used in decompression. -// LZ77 decompresses data through sequences of two forms of commands: -// -// - Literal insertions: Runs of one or more symbols are inserted into the data -// stream as is. This is accomplished through the writeByte method for a -// single symbol, or combinations of writeSlice/writeMark for multiple symbols. -// Any valid stream must start with a literal insertion if no preset dictionary -// is used. -// -// - Backward copies: Runs of one or more symbols are copied from previously -// emitted data. Backward copies come as the tuple (dist, length) where dist -// determines how far back in the stream to copy from and length determines how -// many bytes to copy. Note that it is valid for the length to be greater than -// the distance. Since LZ77 uses forward copies, that situation is used to -// perform a form of run-length encoding on repeated runs of symbols. -// The writeCopy and tryWriteCopy are used to implement this command. -// -// For performance reasons, this implementation performs little to no sanity -// checks about the arguments. As such, the invariants documented for each -// method call must be respected. -type dictDecoder struct { - hist []byte // Sliding window history - - // Invariant: 0 <= rdPos <= wrPos <= len(hist) - wrPos int // Current output position in buffer - rdPos int // Have emitted hist[:rdPos] already - full bool // Has a full window length been written yet? -} - -// init initializes dictDecoder to have a sliding window dictionary of the given -// size. If a preset dict is provided, it will initialize the dictionary with -// the contents of dict. -func (dd *dictDecoder) init(size int, dict []byte) { - *dd = dictDecoder{hist: dd.hist} - - if cap(dd.hist) < size { - dd.hist = make([]byte, size) - } - dd.hist = dd.hist[:size] - - if len(dict) > len(dd.hist) { - dict = dict[len(dict)-len(dd.hist):] - } - dd.wrPos = copy(dd.hist, dict) - if dd.wrPos == len(dd.hist) { - dd.wrPos = 0 - dd.full = true - } - dd.rdPos = dd.wrPos -} - -// histSize reports the total amount of historical data in the dictionary. -func (dd *dictDecoder) histSize() int { - if dd.full { - return len(dd.hist) - } - return dd.wrPos -} - -// availRead reports the number of bytes that can be flushed by readFlush. -func (dd *dictDecoder) availRead() int { - return dd.wrPos - dd.rdPos -} - -// availWrite reports the available amount of output buffer space. -func (dd *dictDecoder) availWrite() int { - return len(dd.hist) - dd.wrPos -} - -// writeSlice returns a slice of the available buffer to write data to. -// -// This invariant will be kept: len(s) <= availWrite() -func (dd *dictDecoder) writeSlice() []byte { - return dd.hist[dd.wrPos:] -} - -// writeMark advances the writer pointer by cnt. -// -// This invariant must be kept: 0 <= cnt <= availWrite() -func (dd *dictDecoder) writeMark(cnt int) { - dd.wrPos += cnt -} - -// writeByte writes a single byte to the dictionary. -// -// This invariant must be kept: 0 < availWrite() -func (dd *dictDecoder) writeByte(c byte) { - dd.hist[dd.wrPos] = c - dd.wrPos++ -} - -// writeCopy copies a string at a given (dist, length) to the output. -// This returns the number of bytes copied and may be less than the requested -// length if the available space in the output buffer is too small. -// -// This invariant must be kept: 0 < dist <= histSize() -func (dd *dictDecoder) writeCopy(dist, length int) int { - dstBase := dd.wrPos - dstPos := dstBase - srcPos := dstPos - dist - endPos := dstPos + length - if endPos > len(dd.hist) { - endPos = len(dd.hist) - } - - // Copy non-overlapping section after destination position. - // - // This section is non-overlapping in that the copy length for this section - // is always less than or equal to the backwards distance. This can occur - // if a distance refers to data that wraps-around in the buffer. - // Thus, a backwards copy is performed here; that is, the exact bytes in - // the source prior to the copy is placed in the destination. - if srcPos < 0 { - srcPos += len(dd.hist) - dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:]) - srcPos = 0 - } - - // Copy possibly overlapping section before destination position. - // - // This section can overlap if the copy length for this section is larger - // than the backwards distance. This is allowed by LZ77 so that repeated - // strings can be succinctly represented using (dist, length) pairs. - // Thus, a forwards copy is performed here; that is, the bytes copied is - // possibly dependent on the resulting bytes in the destination as the copy - // progresses along. This is functionally equivalent to the following: - // - // for i := 0; i < endPos-dstPos; i++ { - // dd.hist[dstPos+i] = dd.hist[srcPos+i] - // } - // dstPos = endPos - // - for dstPos < endPos { - dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:dstPos]) - } - - dd.wrPos = dstPos - return dstPos - dstBase -} - -// tryWriteCopy tries to copy a string at a given (distance, length) to the -// output. This specialized version is optimized for short distances. -// -// This method is designed to be inlined for performance reasons. -// -// This invariant must be kept: 0 < dist <= histSize() -func (dd *dictDecoder) tryWriteCopy(dist, length int) int { - dstPos := dd.wrPos - endPos := dstPos + length - if dstPos < dist || endPos > len(dd.hist) { - return 0 - } - dstBase := dstPos - srcPos := dstPos - dist - - // Copy possibly overlapping section before destination position. -loop: - dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:dstPos]) - if dstPos < endPos { - goto loop // Avoid for-loop so that this function can be inlined - } - - dd.wrPos = dstPos - return dstPos - dstBase -} - -// readFlush returns a slice of the historical buffer that is ready to be -// emitted to the user. The data returned by readFlush must be fully consumed -// before calling any other dictDecoder methods. -func (dd *dictDecoder) readFlush() []byte { - toRead := dd.hist[dd.rdPos:dd.wrPos] - dd.rdPos = dd.wrPos - if dd.wrPos == len(dd.hist) { - dd.wrPos, dd.rdPos = 0, 0 - dd.full = true - } - return toRead -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/fast_encoder.go b/backend/vendor/github.com/klauspost/compress/flate/fast_encoder.go deleted file mode 100644 index 4a73e1bd..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/fast_encoder.go +++ /dev/null @@ -1,254 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Modified for deflate by Klaus Post (c) 2015. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -import ( - "fmt" - "math/bits" -) - -type fastEnc interface { - Encode(dst *tokens, src []byte) - Reset() -} - -func newFastEnc(level int) fastEnc { - switch level { - case 1: - return &fastEncL1{fastGen: fastGen{cur: maxStoreBlockSize}} - case 2: - return &fastEncL2{fastGen: fastGen{cur: maxStoreBlockSize}} - case 3: - return &fastEncL3{fastGen: fastGen{cur: maxStoreBlockSize}} - case 4: - return &fastEncL4{fastGen: fastGen{cur: maxStoreBlockSize}} - case 5: - return &fastEncL5{fastGen: fastGen{cur: maxStoreBlockSize}} - case 6: - return &fastEncL6{fastGen: fastGen{cur: maxStoreBlockSize}} - default: - panic("invalid level specified") - } -} - -const ( - tableBits = 15 // Bits used in the table - tableSize = 1 << tableBits // Size of the table - tableShift = 32 - tableBits // Right-shift to get the tableBits most significant bits of a uint32. - baseMatchOffset = 1 // The smallest match offset - baseMatchLength = 3 // The smallest match length per the RFC section 3.2.5 - maxMatchOffset = 1 << 15 // The largest match offset - - bTableBits = 17 // Bits used in the big tables - bTableSize = 1 << bTableBits // Size of the table - allocHistory = maxStoreBlockSize * 10 // Size to preallocate for history. - bufferReset = (1 << 31) - allocHistory - maxStoreBlockSize - 1 // Reset the buffer offset when reaching this. -) - -const ( - prime3bytes = 506832829 - prime4bytes = 2654435761 - prime5bytes = 889523592379 - prime6bytes = 227718039650203 - prime7bytes = 58295818150454627 - prime8bytes = 0xcf1bbcdcb7a56463 -) - -func load32(b []byte, i int) uint32 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:4] - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func load64(b []byte, i int) uint64 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:8] - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -func load3232(b []byte, i int32) uint32 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:4] - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func load6432(b []byte, i int32) uint64 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:8] - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -func hash(u uint32) uint32 { - return (u * 0x1e35a7bd) >> tableShift -} - -type tableEntry struct { - offset int32 -} - -// fastGen maintains the table for matches, -// and the previous byte block for level 2. -// This is the generic implementation. -type fastGen struct { - hist []byte - cur int32 -} - -func (e *fastGen) addBlock(src []byte) int32 { - // check if we have space already - if len(e.hist)+len(src) > cap(e.hist) { - if cap(e.hist) == 0 { - e.hist = make([]byte, 0, allocHistory) - } else { - if cap(e.hist) < maxMatchOffset*2 { - panic("unexpected buffer size") - } - // Move down - offset := int32(len(e.hist)) - maxMatchOffset - copy(e.hist[0:maxMatchOffset], e.hist[offset:]) - e.cur += offset - e.hist = e.hist[:maxMatchOffset] - } - } - s := int32(len(e.hist)) - e.hist = append(e.hist, src...) - return s -} - -// hash4 returns the hash of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <32. -func hash4u(u uint32, h uint8) uint32 { - return (u * prime4bytes) >> ((32 - h) & reg8SizeMask32) -} - -type tableEntryPrev struct { - Cur tableEntry - Prev tableEntry -} - -// hash4x64 returns the hash of the lowest 4 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <32. -func hash4x64(u uint64, h uint8) uint32 { - return (uint32(u) * prime4bytes) >> ((32 - h) & reg8SizeMask32) -} - -// hash7 returns the hash of the lowest 7 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash7(u uint64, h uint8) uint32 { - return uint32(((u << (64 - 56)) * prime7bytes) >> ((64 - h) & reg8SizeMask64)) -} - -// hash8 returns the hash of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash8(u uint64, h uint8) uint32 { - return uint32((u * prime8bytes) >> ((64 - h) & reg8SizeMask64)) -} - -// hash6 returns the hash of the lowest 6 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash6(u uint64, h uint8) uint32 { - return uint32(((u << (64 - 48)) * prime6bytes) >> ((64 - h) & reg8SizeMask64)) -} - -// matchlen will return the match length between offsets and t in src. -// The maximum length returned is maxMatchLength - 4. -// It is assumed that s > t, that t >=0 and s < len(src). -func (e *fastGen) matchlen(s, t int32, src []byte) int32 { - if debugDecode { - if t >= s { - panic(fmt.Sprint("t >=s:", t, s)) - } - if int(s) >= len(src) { - panic(fmt.Sprint("s >= len(src):", s, len(src))) - } - if t < 0 { - panic(fmt.Sprint("t < 0:", t)) - } - if s-t > maxMatchOffset { - panic(fmt.Sprint(s, "-", t, "(", s-t, ") > maxMatchLength (", maxMatchOffset, ")")) - } - } - s1 := int(s) + maxMatchLength - 4 - if s1 > len(src) { - s1 = len(src) - } - - // Extend the match to be as long as possible. - return int32(matchLen(src[s:s1], src[t:])) -} - -// matchlenLong will return the match length between offsets and t in src. -// It is assumed that s > t, that t >=0 and s < len(src). -func (e *fastGen) matchlenLong(s, t int32, src []byte) int32 { - if debugDecode { - if t >= s { - panic(fmt.Sprint("t >=s:", t, s)) - } - if int(s) >= len(src) { - panic(fmt.Sprint("s >= len(src):", s, len(src))) - } - if t < 0 { - panic(fmt.Sprint("t < 0:", t)) - } - if s-t > maxMatchOffset { - panic(fmt.Sprint(s, "-", t, "(", s-t, ") > maxMatchLength (", maxMatchOffset, ")")) - } - } - // Extend the match to be as long as possible. - return int32(matchLen(src[s:], src[t:])) -} - -// Reset the encoding table. -func (e *fastGen) Reset() { - if cap(e.hist) < allocHistory { - e.hist = make([]byte, 0, allocHistory) - } - // We offset current position so everything will be out of reach. - // If we are above the buffer reset it will be cleared anyway since len(hist) == 0. - if e.cur <= bufferReset { - e.cur += maxMatchOffset + int32(len(e.hist)) - } - e.hist = e.hist[:0] -} - -// matchLen returns the maximum length. -// 'a' must be the shortest of the two. -func matchLen(a, b []byte) int { - b = b[:len(a)] - var checked int - if len(a) > 4 { - // Try 4 bytes first - if diff := load32(a, 0) ^ load32(b, 0); diff != 0 { - return bits.TrailingZeros32(diff) >> 3 - } - // Switch to 8 byte matching. - checked = 4 - a = a[4:] - b = b[4:] - for len(a) >= 8 { - b = b[:len(a)] - if diff := load64(a, 0) ^ load64(b, 0); diff != 0 { - return checked + (bits.TrailingZeros64(diff) >> 3) - } - checked += 8 - a = a[8:] - b = b[8:] - } - } - b = b[:len(a)] - for i := range a { - if a[i] != b[i] { - return int(i) + checked - } - } - return len(a) + checked -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/gen_inflate.go b/backend/vendor/github.com/klauspost/compress/flate/gen_inflate.go deleted file mode 100644 index 513d348f..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/gen_inflate.go +++ /dev/null @@ -1,295 +0,0 @@ -//go:build generate -// +build generate - -//go:generate go run $GOFILE && gofmt -w inflate_gen.go - -package main - -import ( - "os" - "strings" -) - -func main() { - f, err := os.Create("inflate_gen.go") - if err != nil { - panic(err) - } - defer f.Close() - types := []string{"*bytes.Buffer", "*bytes.Reader", "*bufio.Reader", "*strings.Reader"} - names := []string{"BytesBuffer", "BytesReader", "BufioReader", "StringsReader"} - imports := []string{"bytes", "bufio", "io", "strings", "math/bits"} - f.WriteString(`// Code generated by go generate gen_inflate.go. DO NOT EDIT. - -package flate - -import ( -`) - - for _, imp := range imports { - f.WriteString("\t\"" + imp + "\"\n") - } - f.WriteString(")\n\n") - - template := ` - -// Decode a single Huffman block from f. -// hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the -// fixed distance encoding associated with fixed Huffman blocks. -func (f *decompressor) $FUNCNAME$() { - const ( - stateInit = iota // Zero value must be stateInit - stateDict - ) - fr := f.r.($TYPE$) - - switch f.stepState { - case stateInit: - goto readLiteral - case stateDict: - goto copyHistory - } - -readLiteral: - // Read literal and/or (length, distance) according to RFC section 3.2.3. - { - var v int - { - // Inlined v, err := f.huffSym(f.hl) - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hl.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hl.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hl.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hl.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - v = int(chunk >> huffmanValueShift) - break - } - } - } - - var length int - switch { - case v < 256: - f.dict.writeByte(byte(v)) - if f.dict.availWrite() == 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).$FUNCNAME$ - f.stepState = stateInit - return - } - goto readLiteral - case v == 256: - f.finishBlock() - return - // otherwise, reference to older data - case v < 265: - length = v - (257 - 3) - case v < maxNumLit: - val := decCodeToLen[(v - 257)] - length = int(val.length) + 3 - n := uint(val.extra) - for f.nb < n { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits n>0:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - length += int(f.b & uint32(1<<(n®SizeMaskUint32)-1)) - f.b >>= n & regSizeMaskUint32 - f.nb -= n - default: - if debugDecode { - fmt.Println(v, ">= maxNumLit") - } - f.err = CorruptInputError(f.roffset) - return - } - - var dist uint32 - if f.hd == nil { - for f.nb < 5 { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb<5:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - dist = uint32(bits.Reverse8(uint8(f.b & 0x1F << 3))) - f.b >>= 5 - f.nb -= 5 - } else { - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hd.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hd.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hd.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hd.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - dist = uint32(chunk >> huffmanValueShift) - break - } - } - } - - switch { - case dist < 4: - dist++ - case dist < maxNumDist: - nb := uint(dist-2) >> 1 - // have 1 bit in bottom of dist, need nb more. - extra := (dist & 1) << (nb & regSizeMaskUint32) - for f.nb < nb { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb>= nb & regSizeMaskUint32 - f.nb -= nb - dist = 1<<((nb+1)®SizeMaskUint32) + 1 + extra - default: - if debugDecode { - fmt.Println("dist too big:", dist, maxNumDist) - } - f.err = CorruptInputError(f.roffset) - return - } - - // No check on length; encoding can be prescient. - if dist > uint32(f.dict.histSize()) { - if debugDecode { - fmt.Println("dist > f.dict.histSize():", dist, f.dict.histSize()) - } - f.err = CorruptInputError(f.roffset) - return - } - - f.copyLen, f.copyDist = length, int(dist) - goto copyHistory - } - -copyHistory: - // Perform a backwards copy according to RFC section 3.2.3. - { - cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) - if cnt == 0 { - cnt = f.dict.writeCopy(f.copyDist, f.copyLen) - } - f.copyLen -= cnt - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).$FUNCNAME$ // We need to continue this work - f.stepState = stateDict - return - } - goto readLiteral - } -} - -` - for i, t := range types { - s := strings.Replace(template, "$FUNCNAME$", "huffman"+names[i], -1) - s = strings.Replace(s, "$TYPE$", t, -1) - f.WriteString(s) - } - f.WriteString("func (f *decompressor) huffmanBlockDecoder() func() {\n") - f.WriteString("\tswitch f.r.(type) {\n") - for i, t := range types { - f.WriteString("\t\tcase " + t + ":\n") - f.WriteString("\t\t\treturn f.huffman" + names[i] + "\n") - } - f.WriteString("\t\tdefault:\n") - f.WriteString("\t\t\treturn f.huffmanBlockGeneric") - f.WriteString("\t}\n}\n") -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go b/backend/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go deleted file mode 100644 index 5f7a06f0..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go +++ /dev/null @@ -1,911 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -import ( - "io" -) - -const ( - // The largest offset code. - offsetCodeCount = 30 - - // The special code used to mark the end of a block. - endBlockMarker = 256 - - // The first length code. - lengthCodesStart = 257 - - // The number of codegen codes. - codegenCodeCount = 19 - badCode = 255 - - // bufferFlushSize indicates the buffer size - // after which bytes are flushed to the writer. - // Should preferably be a multiple of 6, since - // we accumulate 6 bytes between writes to the buffer. - bufferFlushSize = 240 - - // bufferSize is the actual output byte buffer size. - // It must have additional headroom for a flush - // which can contain up to 8 bytes. - bufferSize = bufferFlushSize + 8 -) - -// The number of extra bits needed by length code X - LENGTH_CODES_START. -var lengthExtraBits = [32]int8{ - /* 257 */ 0, 0, 0, - /* 260 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, - /* 270 */ 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, - /* 280 */ 4, 5, 5, 5, 5, 0, -} - -// The length indicated by length code X - LENGTH_CODES_START. -var lengthBase = [32]uint8{ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, - 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, - 64, 80, 96, 112, 128, 160, 192, 224, 255, -} - -// offset code word extra bits. -var offsetExtraBits = [64]int8{ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, - 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, - 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, - /* extended window */ - 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, -} - -var offsetBase = [64]uint32{ - /* normal deflate */ - 0x000000, 0x000001, 0x000002, 0x000003, 0x000004, - 0x000006, 0x000008, 0x00000c, 0x000010, 0x000018, - 0x000020, 0x000030, 0x000040, 0x000060, 0x000080, - 0x0000c0, 0x000100, 0x000180, 0x000200, 0x000300, - 0x000400, 0x000600, 0x000800, 0x000c00, 0x001000, - 0x001800, 0x002000, 0x003000, 0x004000, 0x006000, - - /* extended window */ - 0x008000, 0x00c000, 0x010000, 0x018000, 0x020000, - 0x030000, 0x040000, 0x060000, 0x080000, 0x0c0000, - 0x100000, 0x180000, 0x200000, 0x300000, -} - -// The odd order in which the codegen code sizes are written. -var codegenOrder = []uint32{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15} - -type huffmanBitWriter struct { - // writer is the underlying writer. - // Do not use it directly; use the write method, which ensures - // that Write errors are sticky. - writer io.Writer - - // Data waiting to be written is bytes[0:nbytes] - // and then the low nbits of bits. - bits uint64 - nbits uint16 - nbytes uint8 - literalEncoding *huffmanEncoder - offsetEncoding *huffmanEncoder - codegenEncoding *huffmanEncoder - err error - lastHeader int - // Set between 0 (reused block can be up to 2x the size) - logNewTablePenalty uint - lastHuffMan bool - bytes [256]byte - literalFreq [lengthCodesStart + 32]uint16 - offsetFreq [32]uint16 - codegenFreq [codegenCodeCount]uint16 - - // codegen must have an extra space for the final symbol. - codegen [literalCount + offsetCodeCount + 1]uint8 -} - -// Huffman reuse. -// -// The huffmanBitWriter supports reusing huffman tables and thereby combining block sections. -// -// This is controlled by several variables: -// -// If lastHeader is non-zero the Huffman table can be reused. -// This also indicates that a Huffman table has been generated that can output all -// possible symbols. -// It also indicates that an EOB has not yet been emitted, so if a new tabel is generated -// an EOB with the previous table must be written. -// -// If lastHuffMan is set, a table for outputting literals has been generated and offsets are invalid. -// -// An incoming block estimates the output size of a new table using a 'fresh' by calculating the -// optimal size and adding a penalty in 'logNewTablePenalty'. -// A Huffman table is not optimal, which is why we add a penalty, and generating a new table -// is slower both for compression and decompression. - -func newHuffmanBitWriter(w io.Writer) *huffmanBitWriter { - return &huffmanBitWriter{ - writer: w, - literalEncoding: newHuffmanEncoder(literalCount), - codegenEncoding: newHuffmanEncoder(codegenCodeCount), - offsetEncoding: newHuffmanEncoder(offsetCodeCount), - } -} - -func (w *huffmanBitWriter) reset(writer io.Writer) { - w.writer = writer - w.bits, w.nbits, w.nbytes, w.err = 0, 0, 0, nil - w.lastHeader = 0 - w.lastHuffMan = false -} - -func (w *huffmanBitWriter) canReuse(t *tokens) (offsets, lits bool) { - offsets, lits = true, true - a := t.offHist[:offsetCodeCount] - b := w.offsetFreq[:len(a)] - for i := range a { - if b[i] == 0 && a[i] != 0 { - offsets = false - break - } - } - - a = t.extraHist[:literalCount-256] - b = w.literalFreq[256:literalCount] - b = b[:len(a)] - for i := range a { - if b[i] == 0 && a[i] != 0 { - lits = false - break - } - } - if lits { - a = t.litHist[:] - b = w.literalFreq[:len(a)] - for i := range a { - if b[i] == 0 && a[i] != 0 { - lits = false - break - } - } - } - return -} - -func (w *huffmanBitWriter) flush() { - if w.err != nil { - w.nbits = 0 - return - } - if w.lastHeader > 0 { - // We owe an EOB - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - w.lastHeader = 0 - } - n := w.nbytes - for w.nbits != 0 { - w.bytes[n] = byte(w.bits) - w.bits >>= 8 - if w.nbits > 8 { // Avoid underflow - w.nbits -= 8 - } else { - w.nbits = 0 - } - n++ - } - w.bits = 0 - w.write(w.bytes[:n]) - w.nbytes = 0 -} - -func (w *huffmanBitWriter) write(b []byte) { - if w.err != nil { - return - } - _, w.err = w.writer.Write(b) -} - -func (w *huffmanBitWriter) writeBits(b int32, nb uint16) { - w.bits |= uint64(b) << (w.nbits & reg16SizeMask64) - w.nbits += nb - if w.nbits >= 48 { - w.writeOutBits() - } -} - -func (w *huffmanBitWriter) writeBytes(bytes []byte) { - if w.err != nil { - return - } - n := w.nbytes - if w.nbits&7 != 0 { - w.err = InternalError("writeBytes with unfinished bits") - return - } - for w.nbits != 0 { - w.bytes[n] = byte(w.bits) - w.bits >>= 8 - w.nbits -= 8 - n++ - } - if n != 0 { - w.write(w.bytes[:n]) - } - w.nbytes = 0 - w.write(bytes) -} - -// RFC 1951 3.2.7 specifies a special run-length encoding for specifying -// the literal and offset lengths arrays (which are concatenated into a single -// array). This method generates that run-length encoding. -// -// The result is written into the codegen array, and the frequencies -// of each code is written into the codegenFreq array. -// Codes 0-15 are single byte codes. Codes 16-18 are followed by additional -// information. Code badCode is an end marker -// -// numLiterals The number of literals in literalEncoding -// numOffsets The number of offsets in offsetEncoding -// litenc, offenc The literal and offset encoder to use -func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int, litEnc, offEnc *huffmanEncoder) { - for i := range w.codegenFreq { - w.codegenFreq[i] = 0 - } - // Note that we are using codegen both as a temporary variable for holding - // a copy of the frequencies, and as the place where we put the result. - // This is fine because the output is always shorter than the input used - // so far. - codegen := w.codegen[:] // cache - // Copy the concatenated code sizes to codegen. Put a marker at the end. - cgnl := codegen[:numLiterals] - for i := range cgnl { - cgnl[i] = uint8(litEnc.codes[i].len) - } - - cgnl = codegen[numLiterals : numLiterals+numOffsets] - for i := range cgnl { - cgnl[i] = uint8(offEnc.codes[i].len) - } - codegen[numLiterals+numOffsets] = badCode - - size := codegen[0] - count := 1 - outIndex := 0 - for inIndex := 1; size != badCode; inIndex++ { - // INVARIANT: We have seen "count" copies of size that have not yet - // had output generated for them. - nextSize := codegen[inIndex] - if nextSize == size { - count++ - continue - } - // We need to generate codegen indicating "count" of size. - if size != 0 { - codegen[outIndex] = size - outIndex++ - w.codegenFreq[size]++ - count-- - for count >= 3 { - n := 6 - if n > count { - n = count - } - codegen[outIndex] = 16 - outIndex++ - codegen[outIndex] = uint8(n - 3) - outIndex++ - w.codegenFreq[16]++ - count -= n - } - } else { - for count >= 11 { - n := 138 - if n > count { - n = count - } - codegen[outIndex] = 18 - outIndex++ - codegen[outIndex] = uint8(n - 11) - outIndex++ - w.codegenFreq[18]++ - count -= n - } - if count >= 3 { - // count >= 3 && count <= 10 - codegen[outIndex] = 17 - outIndex++ - codegen[outIndex] = uint8(count - 3) - outIndex++ - w.codegenFreq[17]++ - count = 0 - } - } - count-- - for ; count >= 0; count-- { - codegen[outIndex] = size - outIndex++ - w.codegenFreq[size]++ - } - // Set up invariant for next time through the loop. - size = nextSize - count = 1 - } - // Marker indicating the end of the codegen. - codegen[outIndex] = badCode -} - -func (w *huffmanBitWriter) codegens() int { - numCodegens := len(w.codegenFreq) - for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { - numCodegens-- - } - return numCodegens -} - -func (w *huffmanBitWriter) headerSize() (size, numCodegens int) { - numCodegens = len(w.codegenFreq) - for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { - numCodegens-- - } - return 3 + 5 + 5 + 4 + (3 * numCodegens) + - w.codegenEncoding.bitLength(w.codegenFreq[:]) + - int(w.codegenFreq[16])*2 + - int(w.codegenFreq[17])*3 + - int(w.codegenFreq[18])*7, numCodegens -} - -// dynamicSize returns the size of dynamically encoded data in bits. -func (w *huffmanBitWriter) dynamicReuseSize(litEnc, offEnc *huffmanEncoder) (size int) { - size = litEnc.bitLength(w.literalFreq[:]) + - offEnc.bitLength(w.offsetFreq[:]) - return size -} - -// dynamicSize returns the size of dynamically encoded data in bits. -func (w *huffmanBitWriter) dynamicSize(litEnc, offEnc *huffmanEncoder, extraBits int) (size, numCodegens int) { - header, numCodegens := w.headerSize() - size = header + - litEnc.bitLength(w.literalFreq[:]) + - offEnc.bitLength(w.offsetFreq[:]) + - extraBits - return size, numCodegens -} - -// extraBitSize will return the number of bits that will be written -// as "extra" bits on matches. -func (w *huffmanBitWriter) extraBitSize() int { - total := 0 - for i, n := range w.literalFreq[257:literalCount] { - total += int(n) * int(lengthExtraBits[i&31]) - } - for i, n := range w.offsetFreq[:offsetCodeCount] { - total += int(n) * int(offsetExtraBits[i&31]) - } - return total -} - -// fixedSize returns the size of dynamically encoded data in bits. -func (w *huffmanBitWriter) fixedSize(extraBits int) int { - return 3 + - fixedLiteralEncoding.bitLength(w.literalFreq[:]) + - fixedOffsetEncoding.bitLength(w.offsetFreq[:]) + - extraBits -} - -// storedSize calculates the stored size, including header. -// The function returns the size in bits and whether the block -// fits inside a single block. -func (w *huffmanBitWriter) storedSize(in []byte) (int, bool) { - if in == nil { - return 0, false - } - if len(in) <= maxStoreBlockSize { - return (len(in) + 5) * 8, true - } - return 0, false -} - -func (w *huffmanBitWriter) writeCode(c hcode) { - // The function does not get inlined if we "& 63" the shift. - w.bits |= uint64(c.code) << w.nbits - w.nbits += c.len - if w.nbits >= 48 { - w.writeOutBits() - } -} - -// writeOutBits will write bits to the buffer. -func (w *huffmanBitWriter) writeOutBits() { - bits := w.bits - w.bits >>= 48 - w.nbits -= 48 - n := w.nbytes - w.bytes[n] = byte(bits) - w.bytes[n+1] = byte(bits >> 8) - w.bytes[n+2] = byte(bits >> 16) - w.bytes[n+3] = byte(bits >> 24) - w.bytes[n+4] = byte(bits >> 32) - w.bytes[n+5] = byte(bits >> 40) - n += 6 - if n >= bufferFlushSize { - if w.err != nil { - n = 0 - return - } - w.write(w.bytes[:n]) - n = 0 - } - w.nbytes = n -} - -// Write the header of a dynamic Huffman block to the output stream. -// -// numLiterals The number of literals specified in codegen -// numOffsets The number of offsets specified in codegen -// numCodegens The number of codegens used in codegen -func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, numCodegens int, isEof bool) { - if w.err != nil { - return - } - var firstBits int32 = 4 - if isEof { - firstBits = 5 - } - w.writeBits(firstBits, 3) - w.writeBits(int32(numLiterals-257), 5) - w.writeBits(int32(numOffsets-1), 5) - w.writeBits(int32(numCodegens-4), 4) - - for i := 0; i < numCodegens; i++ { - value := uint(w.codegenEncoding.codes[codegenOrder[i]].len) - w.writeBits(int32(value), 3) - } - - i := 0 - for { - var codeWord = uint32(w.codegen[i]) - i++ - if codeWord == badCode { - break - } - w.writeCode(w.codegenEncoding.codes[codeWord]) - - switch codeWord { - case 16: - w.writeBits(int32(w.codegen[i]), 2) - i++ - case 17: - w.writeBits(int32(w.codegen[i]), 3) - i++ - case 18: - w.writeBits(int32(w.codegen[i]), 7) - i++ - } - } -} - -// writeStoredHeader will write a stored header. -// If the stored block is only used for EOF, -// it is replaced with a fixed huffman block. -func (w *huffmanBitWriter) writeStoredHeader(length int, isEof bool) { - if w.err != nil { - return - } - if w.lastHeader > 0 { - // We owe an EOB - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - w.lastHeader = 0 - } - - // To write EOF, use a fixed encoding block. 10 bits instead of 5 bytes. - if length == 0 && isEof { - w.writeFixedHeader(isEof) - // EOB: 7 bits, value: 0 - w.writeBits(0, 7) - w.flush() - return - } - - var flag int32 - if isEof { - flag = 1 - } - w.writeBits(flag, 3) - w.flush() - w.writeBits(int32(length), 16) - w.writeBits(int32(^uint16(length)), 16) -} - -func (w *huffmanBitWriter) writeFixedHeader(isEof bool) { - if w.err != nil { - return - } - if w.lastHeader > 0 { - // We owe an EOB - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - w.lastHeader = 0 - } - - // Indicate that we are a fixed Huffman block - var value int32 = 2 - if isEof { - value = 3 - } - w.writeBits(value, 3) -} - -// writeBlock will write a block of tokens with the smallest encoding. -// The original input can be supplied, and if the huffman encoded data -// is larger than the original bytes, the data will be written as a -// stored block. -// If the input is nil, the tokens will always be Huffman encoded. -func (w *huffmanBitWriter) writeBlock(tokens *tokens, eof bool, input []byte) { - if w.err != nil { - return - } - - tokens.AddEOB() - if w.lastHeader > 0 { - // We owe an EOB - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - w.lastHeader = 0 - } - numLiterals, numOffsets := w.indexTokens(tokens, false) - w.generate(tokens) - var extraBits int - storedSize, storable := w.storedSize(input) - if storable { - extraBits = w.extraBitSize() - } - - // Figure out smallest code. - // Fixed Huffman baseline. - var literalEncoding = fixedLiteralEncoding - var offsetEncoding = fixedOffsetEncoding - var size = w.fixedSize(extraBits) - - // Dynamic Huffman? - var numCodegens int - - // Generate codegen and codegenFrequencies, which indicates how to encode - // the literalEncoding and the offsetEncoding. - w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding) - w.codegenEncoding.generate(w.codegenFreq[:], 7) - dynamicSize, numCodegens := w.dynamicSize(w.literalEncoding, w.offsetEncoding, extraBits) - - if dynamicSize < size { - size = dynamicSize - literalEncoding = w.literalEncoding - offsetEncoding = w.offsetEncoding - } - - // Stored bytes? - if storable && storedSize < size { - w.writeStoredHeader(len(input), eof) - w.writeBytes(input) - return - } - - // Huffman. - if literalEncoding == fixedLiteralEncoding { - w.writeFixedHeader(eof) - } else { - w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) - } - - // Write the tokens. - w.writeTokens(tokens.Slice(), literalEncoding.codes, offsetEncoding.codes) -} - -// writeBlockDynamic encodes a block using a dynamic Huffman table. -// This should be used if the symbols used have a disproportionate -// histogram distribution. -// If input is supplied and the compression savings are below 1/16th of the -// input size the block is stored. -func (w *huffmanBitWriter) writeBlockDynamic(tokens *tokens, eof bool, input []byte, sync bool) { - if w.err != nil { - return - } - - sync = sync || eof - if sync { - tokens.AddEOB() - } - - // We cannot reuse pure huffman table, and must mark as EOF. - if (w.lastHuffMan || eof) && w.lastHeader > 0 { - // We will not try to reuse. - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - w.lastHeader = 0 - w.lastHuffMan = false - } - if !sync { - tokens.Fill() - } - numLiterals, numOffsets := w.indexTokens(tokens, !sync) - - var size int - // Check if we should reuse. - if w.lastHeader > 0 { - // Estimate size for using a new table. - // Use the previous header size as the best estimate. - newSize := w.lastHeader + tokens.EstimatedBits() - newSize += newSize >> w.logNewTablePenalty - - // The estimated size is calculated as an optimal table. - // We add a penalty to make it more realistic and re-use a bit more. - reuseSize := w.dynamicReuseSize(w.literalEncoding, w.offsetEncoding) + w.extraBitSize() - - // Check if a new table is better. - if newSize < reuseSize { - // Write the EOB we owe. - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - size = newSize - w.lastHeader = 0 - } else { - size = reuseSize - } - // Check if we get a reasonable size decrease. - if ssize, storable := w.storedSize(input); storable && ssize < (size+size>>4) { - w.writeStoredHeader(len(input), eof) - w.writeBytes(input) - w.lastHeader = 0 - return - } - } - - // We want a new block/table - if w.lastHeader == 0 { - w.generate(tokens) - // Generate codegen and codegenFrequencies, which indicates how to encode - // the literalEncoding and the offsetEncoding. - w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding) - w.codegenEncoding.generate(w.codegenFreq[:], 7) - var numCodegens int - size, numCodegens = w.dynamicSize(w.literalEncoding, w.offsetEncoding, w.extraBitSize()) - // Store bytes, if we don't get a reasonable improvement. - if ssize, storable := w.storedSize(input); storable && ssize < (size+size>>4) { - w.writeStoredHeader(len(input), eof) - w.writeBytes(input) - w.lastHeader = 0 - return - } - - // Write Huffman table. - w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) - w.lastHeader, _ = w.headerSize() - w.lastHuffMan = false - } - - if sync { - w.lastHeader = 0 - } - // Write the tokens. - w.writeTokens(tokens.Slice(), w.literalEncoding.codes, w.offsetEncoding.codes) -} - -// indexTokens indexes a slice of tokens, and updates -// literalFreq and offsetFreq, and generates literalEncoding -// and offsetEncoding. -// The number of literal and offset tokens is returned. -func (w *huffmanBitWriter) indexTokens(t *tokens, filled bool) (numLiterals, numOffsets int) { - copy(w.literalFreq[:], t.litHist[:]) - copy(w.literalFreq[256:], t.extraHist[:]) - copy(w.offsetFreq[:], t.offHist[:offsetCodeCount]) - - if t.n == 0 { - return - } - if filled { - return maxNumLit, maxNumDist - } - // get the number of literals - numLiterals = len(w.literalFreq) - for w.literalFreq[numLiterals-1] == 0 { - numLiterals-- - } - // get the number of offsets - numOffsets = len(w.offsetFreq) - for numOffsets > 0 && w.offsetFreq[numOffsets-1] == 0 { - numOffsets-- - } - if numOffsets == 0 { - // We haven't found a single match. If we want to go with the dynamic encoding, - // we should count at least one offset to be sure that the offset huffman tree could be encoded. - w.offsetFreq[0] = 1 - numOffsets = 1 - } - return -} - -func (w *huffmanBitWriter) generate(t *tokens) { - w.literalEncoding.generate(w.literalFreq[:literalCount], 15) - w.offsetEncoding.generate(w.offsetFreq[:offsetCodeCount], 15) -} - -// writeTokens writes a slice of tokens to the output. -// codes for literal and offset encoding must be supplied. -func (w *huffmanBitWriter) writeTokens(tokens []token, leCodes, oeCodes []hcode) { - if w.err != nil { - return - } - if len(tokens) == 0 { - return - } - - // Only last token should be endBlockMarker. - var deferEOB bool - if tokens[len(tokens)-1] == endBlockMarker { - tokens = tokens[:len(tokens)-1] - deferEOB = true - } - - // Create slices up to the next power of two to avoid bounds checks. - lits := leCodes[:256] - offs := oeCodes[:32] - lengths := leCodes[lengthCodesStart:] - lengths = lengths[:32] - for _, t := range tokens { - if t < matchType { - w.writeCode(lits[t.literal()]) - continue - } - - // Write the length - length := t.length() - lengthCode := lengthCode(length) - if false { - w.writeCode(lengths[lengthCode&31]) - } else { - // inlined - c := lengths[lengthCode&31] - w.bits |= uint64(c.code) << (w.nbits & reg16SizeMask64) - w.nbits += c.len - if w.nbits >= 48 { - w.writeOutBits() - } - } - - extraLengthBits := uint16(lengthExtraBits[lengthCode&31]) - if extraLengthBits > 0 { - extraLength := int32(length - lengthBase[lengthCode&31]) - w.writeBits(extraLength, extraLengthBits) - } - // Write the offset - offset := t.offset() - offsetCode := offsetCode(offset) - if false { - w.writeCode(offs[offsetCode&31]) - } else { - // inlined - c := offs[offsetCode&31] - w.bits |= uint64(c.code) << (w.nbits & reg16SizeMask64) - w.nbits += c.len - if w.nbits >= 48 { - w.writeOutBits() - } - } - extraOffsetBits := uint16(offsetExtraBits[offsetCode&63]) - if extraOffsetBits > 0 { - extraOffset := int32(offset - offsetBase[offsetCode&63]) - w.writeBits(extraOffset, extraOffsetBits) - } - } - if deferEOB { - w.writeCode(leCodes[endBlockMarker]) - } -} - -// huffOffset is a static offset encoder used for huffman only encoding. -// It can be reused since we will not be encoding offset values. -var huffOffset *huffmanEncoder - -func init() { - w := newHuffmanBitWriter(nil) - w.offsetFreq[0] = 1 - huffOffset = newHuffmanEncoder(offsetCodeCount) - huffOffset.generate(w.offsetFreq[:offsetCodeCount], 15) -} - -// writeBlockHuff encodes a block of bytes as either -// Huffman encoded literals or uncompressed bytes if the -// results only gains very little from compression. -func (w *huffmanBitWriter) writeBlockHuff(eof bool, input []byte, sync bool) { - if w.err != nil { - return - } - - // Clear histogram - for i := range w.literalFreq[:] { - w.literalFreq[i] = 0 - } - if !w.lastHuffMan { - for i := range w.offsetFreq[:] { - w.offsetFreq[i] = 0 - } - } - - // Add everything as literals - // We have to estimate the header size. - // Assume header is around 70 bytes: - // https://stackoverflow.com/a/25454430 - const guessHeaderSizeBits = 70 * 8 - estBits, estExtra := histogramSize(input, w.literalFreq[:], !eof && !sync) - estBits += w.lastHeader + 15 - if w.lastHeader == 0 { - estBits += guessHeaderSizeBits - } - estBits += estBits >> w.logNewTablePenalty - - // Store bytes, if we don't get a reasonable improvement. - ssize, storable := w.storedSize(input) - if storable && ssize < estBits { - w.writeStoredHeader(len(input), eof) - w.writeBytes(input) - return - } - - if w.lastHeader > 0 { - reuseSize := w.literalEncoding.bitLength(w.literalFreq[:256]) - estBits += estExtra - - if estBits < reuseSize { - // We owe an EOB - w.writeCode(w.literalEncoding.codes[endBlockMarker]) - w.lastHeader = 0 - } - } - - const numLiterals = endBlockMarker + 1 - const numOffsets = 1 - if w.lastHeader == 0 { - w.literalFreq[endBlockMarker] = 1 - w.literalEncoding.generate(w.literalFreq[:numLiterals], 15) - - // Generate codegen and codegenFrequencies, which indicates how to encode - // the literalEncoding and the offsetEncoding. - w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, huffOffset) - w.codegenEncoding.generate(w.codegenFreq[:], 7) - numCodegens := w.codegens() - - // Huffman. - w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) - w.lastHuffMan = true - w.lastHeader, _ = w.headerSize() - } - - encoding := w.literalEncoding.codes[:257] - for _, t := range input { - // Bitwriting inlined, ~30% speedup - c := encoding[t] - w.bits |= uint64(c.code) << ((w.nbits) & reg16SizeMask64) - w.nbits += c.len - if w.nbits >= 48 { - bits := w.bits - w.bits >>= 48 - w.nbits -= 48 - n := w.nbytes - w.bytes[n] = byte(bits) - w.bytes[n+1] = byte(bits >> 8) - w.bytes[n+2] = byte(bits >> 16) - w.bytes[n+3] = byte(bits >> 24) - w.bytes[n+4] = byte(bits >> 32) - w.bytes[n+5] = byte(bits >> 40) - n += 6 - if n >= bufferFlushSize { - if w.err != nil { - n = 0 - return - } - w.write(w.bytes[:n]) - n = 0 - } - w.nbytes = n - } - } - if eof || sync { - w.writeCode(encoding[endBlockMarker]) - w.lastHeader = 0 - w.lastHuffMan = false - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/huffman_code.go b/backend/vendor/github.com/klauspost/compress/flate/huffman_code.go deleted file mode 100644 index f55a2c8c..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/huffman_code.go +++ /dev/null @@ -1,368 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -import ( - "math" - "math/bits" -) - -const ( - maxBitsLimit = 16 - // number of valid literals - literalCount = 286 -) - -// hcode is a huffman code with a bit code and bit length. -type hcode struct { - code, len uint16 -} - -type huffmanEncoder struct { - codes []hcode - freqcache []literalNode - bitCount [17]int32 -} - -type literalNode struct { - literal uint16 - freq uint16 -} - -// A levelInfo describes the state of the constructed tree for a given depth. -type levelInfo struct { - // Our level. for better printing - level int32 - - // The frequency of the last node at this level - lastFreq int32 - - // The frequency of the next character to add to this level - nextCharFreq int32 - - // The frequency of the next pair (from level below) to add to this level. - // Only valid if the "needed" value of the next lower level is 0. - nextPairFreq int32 - - // The number of chains remaining to generate for this level before moving - // up to the next level - needed int32 -} - -// set sets the code and length of an hcode. -func (h *hcode) set(code uint16, length uint16) { - h.len = length - h.code = code -} - -func reverseBits(number uint16, bitLength byte) uint16 { - return bits.Reverse16(number << ((16 - bitLength) & 15)) -} - -func maxNode() literalNode { return literalNode{math.MaxUint16, math.MaxUint16} } - -func newHuffmanEncoder(size int) *huffmanEncoder { - // Make capacity to next power of two. - c := uint(bits.Len32(uint32(size - 1))) - return &huffmanEncoder{codes: make([]hcode, size, 1<= 3 -// The cases of 0, 1, and 2 literals are handled by special case code. -// -// list An array of the literals with non-zero frequencies -// -// and their associated frequencies. The array is in order of increasing -// frequency, and has as its last element a special element with frequency -// MaxInt32 -// -// maxBits The maximum number of bits that should be used to encode any literal. -// -// Must be less than 16. -// -// return An integer array in which array[i] indicates the number of literals -// -// that should be encoded in i bits. -func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 { - if maxBits >= maxBitsLimit { - panic("flate: maxBits too large") - } - n := int32(len(list)) - list = list[0 : n+1] - list[n] = maxNode() - - // The tree can't have greater depth than n - 1, no matter what. This - // saves a little bit of work in some small cases - if maxBits > n-1 { - maxBits = n - 1 - } - - // Create information about each of the levels. - // A bogus "Level 0" whose sole purpose is so that - // level1.prev.needed==0. This makes level1.nextPairFreq - // be a legitimate value that never gets chosen. - var levels [maxBitsLimit]levelInfo - // leafCounts[i] counts the number of literals at the left - // of ancestors of the rightmost node at level i. - // leafCounts[i][j] is the number of literals at the left - // of the level j ancestor. - var leafCounts [maxBitsLimit][maxBitsLimit]int32 - - for level := int32(1); level <= maxBits; level++ { - // For every level, the first two items are the first two characters. - // We initialize the levels as if we had already figured this out. - levels[level] = levelInfo{ - level: level, - lastFreq: int32(list[1].freq), - nextCharFreq: int32(list[2].freq), - nextPairFreq: int32(list[0].freq) + int32(list[1].freq), - } - leafCounts[level][level] = 2 - if level == 1 { - levels[level].nextPairFreq = math.MaxInt32 - } - } - - // We need a total of 2*n - 2 items at top level and have already generated 2. - levels[maxBits].needed = 2*n - 4 - - level := maxBits - for { - l := &levels[level] - if l.nextPairFreq == math.MaxInt32 && l.nextCharFreq == math.MaxInt32 { - // We've run out of both leafs and pairs. - // End all calculations for this level. - // To make sure we never come back to this level or any lower level, - // set nextPairFreq impossibly large. - l.needed = 0 - levels[level+1].nextPairFreq = math.MaxInt32 - level++ - continue - } - - prevFreq := l.lastFreq - if l.nextCharFreq < l.nextPairFreq { - // The next item on this row is a leaf node. - n := leafCounts[level][level] + 1 - l.lastFreq = l.nextCharFreq - // Lower leafCounts are the same of the previous node. - leafCounts[level][level] = n - e := list[n] - if e.literal < math.MaxUint16 { - l.nextCharFreq = int32(e.freq) - } else { - l.nextCharFreq = math.MaxInt32 - } - } else { - // The next item on this row is a pair from the previous row. - // nextPairFreq isn't valid until we generate two - // more values in the level below - l.lastFreq = l.nextPairFreq - // Take leaf counts from the lower level, except counts[level] remains the same. - copy(leafCounts[level][:level], leafCounts[level-1][:level]) - levels[l.level-1].needed = 2 - } - - if l.needed--; l.needed == 0 { - // We've done everything we need to do for this level. - // Continue calculating one level up. Fill in nextPairFreq - // of that level with the sum of the two nodes we've just calculated on - // this level. - if l.level == maxBits { - // All done! - break - } - levels[l.level+1].nextPairFreq = prevFreq + l.lastFreq - level++ - } else { - // If we stole from below, move down temporarily to replenish it. - for levels[level-1].needed > 0 { - level-- - } - } - } - - // Somethings is wrong if at the end, the top level is null or hasn't used - // all of the leaves. - if leafCounts[maxBits][maxBits] != n { - panic("leafCounts[maxBits][maxBits] != n") - } - - bitCount := h.bitCount[:maxBits+1] - bits := 1 - counts := &leafCounts[maxBits] - for level := maxBits; level > 0; level-- { - // chain.leafCount gives the number of literals requiring at least "bits" - // bits to encode. - bitCount[bits] = counts[level] - counts[level-1] - bits++ - } - return bitCount -} - -// Look at the leaves and assign them a bit count and an encoding as specified -// in RFC 1951 3.2.2 -func (h *huffmanEncoder) assignEncodingAndSize(bitCount []int32, list []literalNode) { - code := uint16(0) - for n, bits := range bitCount { - code <<= 1 - if n == 0 || bits == 0 { - continue - } - // The literals list[len(list)-bits] .. list[len(list)-bits] - // are encoded using "bits" bits, and get the values - // code, code + 1, .... The code values are - // assigned in literal order (not frequency order). - chunk := list[len(list)-int(bits):] - - sortByLiteral(chunk) - for _, node := range chunk { - h.codes[node.literal] = hcode{code: reverseBits(code, uint8(n)), len: uint16(n)} - code++ - } - list = list[0 : len(list)-int(bits)] - } -} - -// Update this Huffman Code object to be the minimum code for the specified frequency count. -// -// freq An array of frequencies, in which frequency[i] gives the frequency of literal i. -// maxBits The maximum number of bits to use for any literal. -func (h *huffmanEncoder) generate(freq []uint16, maxBits int32) { - if h.freqcache == nil { - // Allocate a reusable buffer with the longest possible frequency table. - // Possible lengths are codegenCodeCount, offsetCodeCount and literalCount. - // The largest of these is literalCount, so we allocate for that case. - h.freqcache = make([]literalNode, literalCount+1) - } - list := h.freqcache[:len(freq)+1] - // Number of non-zero literals - count := 0 - // Set list to be the set of all non-zero literals and their frequencies - for i, f := range freq { - if f != 0 { - list[count] = literalNode{uint16(i), f} - count++ - } else { - list[count] = literalNode{} - h.codes[i].len = 0 - } - } - list[len(freq)] = literalNode{} - - list = list[:count] - if count <= 2 { - // Handle the small cases here, because they are awkward for the general case code. With - // two or fewer literals, everything has bit length 1. - for i, node := range list { - // "list" is in order of increasing literal value. - h.codes[node.literal].set(uint16(i), 1) - } - return - } - sortByFreq(list) - - // Get the number of literals for each bit count - bitCount := h.bitCounts(list, maxBits) - // And do the assignment - h.assignEncodingAndSize(bitCount, list) -} - -func atLeastOne(v float32) float32 { - if v < 1 { - return 1 - } - return v -} - -// histogramSize accumulates a histogram of b in h. -// An estimated size in bits is returned. -// Unassigned values are assigned '1' in the histogram. -// len(h) must be >= 256, and h's elements must be all zeroes. -func histogramSize(b []byte, h []uint16, fill bool) (int, int) { - h = h[:256] - for _, t := range b { - h[t]++ - } - invTotal := 1.0 / float32(len(b)) - shannon := float32(0.0) - var extra float32 - if fill { - oneBits := atLeastOne(-mFastLog2(invTotal)) - for i, v := range h[:] { - if v > 0 { - n := float32(v) - shannon += atLeastOne(-mFastLog2(n*invTotal)) * n - } else { - h[i] = 1 - extra += oneBits - } - } - } else { - for _, v := range h[:] { - if v > 0 { - n := float32(v) - shannon += atLeastOne(-mFastLog2(n*invTotal)) * n - } - } - } - - return int(shannon + 0.99), int(extra + 0.99) -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/huffman_sortByFreq.go b/backend/vendor/github.com/klauspost/compress/flate/huffman_sortByFreq.go deleted file mode 100644 index 20778029..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/huffman_sortByFreq.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -// Sort sorts data. -// It makes one call to data.Len to determine n, and O(n*log(n)) calls to -// data.Less and data.Swap. The sort is not guaranteed to be stable. -func sortByFreq(data []literalNode) { - n := len(data) - quickSortByFreq(data, 0, n, maxDepth(n)) -} - -func quickSortByFreq(data []literalNode, a, b, maxDepth int) { - for b-a > 12 { // Use ShellSort for slices <= 12 elements - if maxDepth == 0 { - heapSort(data, a, b) - return - } - maxDepth-- - mlo, mhi := doPivotByFreq(data, a, b) - // Avoiding recursion on the larger subproblem guarantees - // a stack depth of at most lg(b-a). - if mlo-a < b-mhi { - quickSortByFreq(data, a, mlo, maxDepth) - a = mhi // i.e., quickSortByFreq(data, mhi, b) - } else { - quickSortByFreq(data, mhi, b, maxDepth) - b = mlo // i.e., quickSortByFreq(data, a, mlo) - } - } - if b-a > 1 { - // Do ShellSort pass with gap 6 - // It could be written in this simplified form cause b-a <= 12 - for i := a + 6; i < b; i++ { - if data[i].freq == data[i-6].freq && data[i].literal < data[i-6].literal || data[i].freq < data[i-6].freq { - data[i], data[i-6] = data[i-6], data[i] - } - } - insertionSortByFreq(data, a, b) - } -} - -// siftDownByFreq implements the heap property on data[lo, hi). -// first is an offset into the array where the root of the heap lies. -func siftDownByFreq(data []literalNode, lo, hi, first int) { - root := lo - for { - child := 2*root + 1 - if child >= hi { - break - } - if child+1 < hi && (data[first+child].freq == data[first+child+1].freq && data[first+child].literal < data[first+child+1].literal || data[first+child].freq < data[first+child+1].freq) { - child++ - } - if data[first+root].freq == data[first+child].freq && data[first+root].literal > data[first+child].literal || data[first+root].freq > data[first+child].freq { - return - } - data[first+root], data[first+child] = data[first+child], data[first+root] - root = child - } -} -func doPivotByFreq(data []literalNode, lo, hi int) (midlo, midhi int) { - m := int(uint(lo+hi) >> 1) // Written like this to avoid integer overflow. - if hi-lo > 40 { - // Tukey's ``Ninther,'' median of three medians of three. - s := (hi - lo) / 8 - medianOfThreeSortByFreq(data, lo, lo+s, lo+2*s) - medianOfThreeSortByFreq(data, m, m-s, m+s) - medianOfThreeSortByFreq(data, hi-1, hi-1-s, hi-1-2*s) - } - medianOfThreeSortByFreq(data, lo, m, hi-1) - - // Invariants are: - // data[lo] = pivot (set up by ChoosePivot) - // data[lo < i < a] < pivot - // data[a <= i < b] <= pivot - // data[b <= i < c] unexamined - // data[c <= i < hi-1] > pivot - // data[hi-1] >= pivot - pivot := lo - a, c := lo+1, hi-1 - - for ; a < c && (data[a].freq == data[pivot].freq && data[a].literal < data[pivot].literal || data[a].freq < data[pivot].freq); a++ { - } - b := a - for { - for ; b < c && (data[pivot].freq == data[b].freq && data[pivot].literal > data[b].literal || data[pivot].freq > data[b].freq); b++ { // data[b] <= pivot - } - for ; b < c && (data[pivot].freq == data[c-1].freq && data[pivot].literal < data[c-1].literal || data[pivot].freq < data[c-1].freq); c-- { // data[c-1] > pivot - } - if b >= c { - break - } - // data[b] > pivot; data[c-1] <= pivot - data[b], data[c-1] = data[c-1], data[b] - b++ - c-- - } - // If hi-c<3 then there are duplicates (by property of median of nine). - // Let's be a bit more conservative, and set border to 5. - protect := hi-c < 5 - if !protect && hi-c < (hi-lo)/4 { - // Lets test some points for equality to pivot - dups := 0 - if data[pivot].freq == data[hi-1].freq && data[pivot].literal > data[hi-1].literal || data[pivot].freq > data[hi-1].freq { // data[hi-1] = pivot - data[c], data[hi-1] = data[hi-1], data[c] - c++ - dups++ - } - if data[b-1].freq == data[pivot].freq && data[b-1].literal > data[pivot].literal || data[b-1].freq > data[pivot].freq { // data[b-1] = pivot - b-- - dups++ - } - // m-lo = (hi-lo)/2 > 6 - // b-lo > (hi-lo)*3/4-1 > 8 - // ==> m < b ==> data[m] <= pivot - if data[m].freq == data[pivot].freq && data[m].literal > data[pivot].literal || data[m].freq > data[pivot].freq { // data[m] = pivot - data[m], data[b-1] = data[b-1], data[m] - b-- - dups++ - } - // if at least 2 points are equal to pivot, assume skewed distribution - protect = dups > 1 - } - if protect { - // Protect against a lot of duplicates - // Add invariant: - // data[a <= i < b] unexamined - // data[b <= i < c] = pivot - for { - for ; a < b && (data[b-1].freq == data[pivot].freq && data[b-1].literal > data[pivot].literal || data[b-1].freq > data[pivot].freq); b-- { // data[b] == pivot - } - for ; a < b && (data[a].freq == data[pivot].freq && data[a].literal < data[pivot].literal || data[a].freq < data[pivot].freq); a++ { // data[a] < pivot - } - if a >= b { - break - } - // data[a] == pivot; data[b-1] < pivot - data[a], data[b-1] = data[b-1], data[a] - a++ - b-- - } - } - // Swap pivot into middle - data[pivot], data[b-1] = data[b-1], data[pivot] - return b - 1, c -} - -// Insertion sort -func insertionSortByFreq(data []literalNode, a, b int) { - for i := a + 1; i < b; i++ { - for j := i; j > a && (data[j].freq == data[j-1].freq && data[j].literal < data[j-1].literal || data[j].freq < data[j-1].freq); j-- { - data[j], data[j-1] = data[j-1], data[j] - } - } -} - -// quickSortByFreq, loosely following Bentley and McIlroy, -// ``Engineering a Sort Function,'' SP&E November 1993. - -// medianOfThreeSortByFreq moves the median of the three values data[m0], data[m1], data[m2] into data[m1]. -func medianOfThreeSortByFreq(data []literalNode, m1, m0, m2 int) { - // sort 3 elements - if data[m1].freq == data[m0].freq && data[m1].literal < data[m0].literal || data[m1].freq < data[m0].freq { - data[m1], data[m0] = data[m0], data[m1] - } - // data[m0] <= data[m1] - if data[m2].freq == data[m1].freq && data[m2].literal < data[m1].literal || data[m2].freq < data[m1].freq { - data[m2], data[m1] = data[m1], data[m2] - // data[m0] <= data[m2] && data[m1] < data[m2] - if data[m1].freq == data[m0].freq && data[m1].literal < data[m0].literal || data[m1].freq < data[m0].freq { - data[m1], data[m0] = data[m0], data[m1] - } - } - // now data[m0] <= data[m1] <= data[m2] -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/huffman_sortByLiteral.go b/backend/vendor/github.com/klauspost/compress/flate/huffman_sortByLiteral.go deleted file mode 100644 index 93f1aea1..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/huffman_sortByLiteral.go +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -// Sort sorts data. -// It makes one call to data.Len to determine n, and O(n*log(n)) calls to -// data.Less and data.Swap. The sort is not guaranteed to be stable. -func sortByLiteral(data []literalNode) { - n := len(data) - quickSort(data, 0, n, maxDepth(n)) -} - -func quickSort(data []literalNode, a, b, maxDepth int) { - for b-a > 12 { // Use ShellSort for slices <= 12 elements - if maxDepth == 0 { - heapSort(data, a, b) - return - } - maxDepth-- - mlo, mhi := doPivot(data, a, b) - // Avoiding recursion on the larger subproblem guarantees - // a stack depth of at most lg(b-a). - if mlo-a < b-mhi { - quickSort(data, a, mlo, maxDepth) - a = mhi // i.e., quickSort(data, mhi, b) - } else { - quickSort(data, mhi, b, maxDepth) - b = mlo // i.e., quickSort(data, a, mlo) - } - } - if b-a > 1 { - // Do ShellSort pass with gap 6 - // It could be written in this simplified form cause b-a <= 12 - for i := a + 6; i < b; i++ { - if data[i].literal < data[i-6].literal { - data[i], data[i-6] = data[i-6], data[i] - } - } - insertionSort(data, a, b) - } -} -func heapSort(data []literalNode, a, b int) { - first := a - lo := 0 - hi := b - a - - // Build heap with greatest element at top. - for i := (hi - 1) / 2; i >= 0; i-- { - siftDown(data, i, hi, first) - } - - // Pop elements, largest first, into end of data. - for i := hi - 1; i >= 0; i-- { - data[first], data[first+i] = data[first+i], data[first] - siftDown(data, lo, i, first) - } -} - -// siftDown implements the heap property on data[lo, hi). -// first is an offset into the array where the root of the heap lies. -func siftDown(data []literalNode, lo, hi, first int) { - root := lo - for { - child := 2*root + 1 - if child >= hi { - break - } - if child+1 < hi && data[first+child].literal < data[first+child+1].literal { - child++ - } - if data[first+root].literal > data[first+child].literal { - return - } - data[first+root], data[first+child] = data[first+child], data[first+root] - root = child - } -} -func doPivot(data []literalNode, lo, hi int) (midlo, midhi int) { - m := int(uint(lo+hi) >> 1) // Written like this to avoid integer overflow. - if hi-lo > 40 { - // Tukey's ``Ninther,'' median of three medians of three. - s := (hi - lo) / 8 - medianOfThree(data, lo, lo+s, lo+2*s) - medianOfThree(data, m, m-s, m+s) - medianOfThree(data, hi-1, hi-1-s, hi-1-2*s) - } - medianOfThree(data, lo, m, hi-1) - - // Invariants are: - // data[lo] = pivot (set up by ChoosePivot) - // data[lo < i < a] < pivot - // data[a <= i < b] <= pivot - // data[b <= i < c] unexamined - // data[c <= i < hi-1] > pivot - // data[hi-1] >= pivot - pivot := lo - a, c := lo+1, hi-1 - - for ; a < c && data[a].literal < data[pivot].literal; a++ { - } - b := a - for { - for ; b < c && data[pivot].literal > data[b].literal; b++ { // data[b] <= pivot - } - for ; b < c && data[pivot].literal < data[c-1].literal; c-- { // data[c-1] > pivot - } - if b >= c { - break - } - // data[b] > pivot; data[c-1] <= pivot - data[b], data[c-1] = data[c-1], data[b] - b++ - c-- - } - // If hi-c<3 then there are duplicates (by property of median of nine). - // Let's be a bit more conservative, and set border to 5. - protect := hi-c < 5 - if !protect && hi-c < (hi-lo)/4 { - // Lets test some points for equality to pivot - dups := 0 - if data[pivot].literal > data[hi-1].literal { // data[hi-1] = pivot - data[c], data[hi-1] = data[hi-1], data[c] - c++ - dups++ - } - if data[b-1].literal > data[pivot].literal { // data[b-1] = pivot - b-- - dups++ - } - // m-lo = (hi-lo)/2 > 6 - // b-lo > (hi-lo)*3/4-1 > 8 - // ==> m < b ==> data[m] <= pivot - if data[m].literal > data[pivot].literal { // data[m] = pivot - data[m], data[b-1] = data[b-1], data[m] - b-- - dups++ - } - // if at least 2 points are equal to pivot, assume skewed distribution - protect = dups > 1 - } - if protect { - // Protect against a lot of duplicates - // Add invariant: - // data[a <= i < b] unexamined - // data[b <= i < c] = pivot - for { - for ; a < b && data[b-1].literal > data[pivot].literal; b-- { // data[b] == pivot - } - for ; a < b && data[a].literal < data[pivot].literal; a++ { // data[a] < pivot - } - if a >= b { - break - } - // data[a] == pivot; data[b-1] < pivot - data[a], data[b-1] = data[b-1], data[a] - a++ - b-- - } - } - // Swap pivot into middle - data[pivot], data[b-1] = data[b-1], data[pivot] - return b - 1, c -} - -// Insertion sort -func insertionSort(data []literalNode, a, b int) { - for i := a + 1; i < b; i++ { - for j := i; j > a && data[j].literal < data[j-1].literal; j-- { - data[j], data[j-1] = data[j-1], data[j] - } - } -} - -// maxDepth returns a threshold at which quicksort should switch -// to heapsort. It returns 2*ceil(lg(n+1)). -func maxDepth(n int) int { - var depth int - for i := n; i > 0; i >>= 1 { - depth++ - } - return depth * 2 -} - -// medianOfThree moves the median of the three values data[m0], data[m1], data[m2] into data[m1]. -func medianOfThree(data []literalNode, m1, m0, m2 int) { - // sort 3 elements - if data[m1].literal < data[m0].literal { - data[m1], data[m0] = data[m0], data[m1] - } - // data[m0] <= data[m1] - if data[m2].literal < data[m1].literal { - data[m2], data[m1] = data[m1], data[m2] - // data[m0] <= data[m2] && data[m1] < data[m2] - if data[m1].literal < data[m0].literal { - data[m1], data[m0] = data[m0], data[m1] - } - } - // now data[m0] <= data[m1] <= data[m2] -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/inflate.go b/backend/vendor/github.com/klauspost/compress/flate/inflate.go deleted file mode 100644 index 16bc5140..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/inflate.go +++ /dev/null @@ -1,1010 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package flate implements the DEFLATE compressed data format, described in -// RFC 1951. The gzip and zlib packages implement access to DEFLATE-based file -// formats. -package flate - -import ( - "bufio" - "fmt" - "io" - "math/bits" - "strconv" - "sync" -) - -const ( - maxCodeLen = 16 // max length of Huffman code - maxCodeLenMask = 15 // mask for max length of Huffman code - // The next three numbers come from the RFC section 3.2.7, with the - // additional proviso in section 3.2.5 which implies that distance codes - // 30 and 31 should never occur in compressed data. - maxNumLit = 286 - maxNumDist = 30 - numCodes = 19 // number of codes in Huffman meta-code - - debugDecode = false -) - -// Value of length - 3 and extra bits. -type lengthExtra struct { - length, extra uint8 -} - -var decCodeToLen = [32]lengthExtra{{length: 0x0, extra: 0x0}, {length: 0x1, extra: 0x0}, {length: 0x2, extra: 0x0}, {length: 0x3, extra: 0x0}, {length: 0x4, extra: 0x0}, {length: 0x5, extra: 0x0}, {length: 0x6, extra: 0x0}, {length: 0x7, extra: 0x0}, {length: 0x8, extra: 0x1}, {length: 0xa, extra: 0x1}, {length: 0xc, extra: 0x1}, {length: 0xe, extra: 0x1}, {length: 0x10, extra: 0x2}, {length: 0x14, extra: 0x2}, {length: 0x18, extra: 0x2}, {length: 0x1c, extra: 0x2}, {length: 0x20, extra: 0x3}, {length: 0x28, extra: 0x3}, {length: 0x30, extra: 0x3}, {length: 0x38, extra: 0x3}, {length: 0x40, extra: 0x4}, {length: 0x50, extra: 0x4}, {length: 0x60, extra: 0x4}, {length: 0x70, extra: 0x4}, {length: 0x80, extra: 0x5}, {length: 0xa0, extra: 0x5}, {length: 0xc0, extra: 0x5}, {length: 0xe0, extra: 0x5}, {length: 0xff, extra: 0x0}, {length: 0x0, extra: 0x0}, {length: 0x0, extra: 0x0}, {length: 0x0, extra: 0x0}} - -// Initialize the fixedHuffmanDecoder only once upon first use. -var fixedOnce sync.Once -var fixedHuffmanDecoder huffmanDecoder - -// A CorruptInputError reports the presence of corrupt input at a given offset. -type CorruptInputError int64 - -func (e CorruptInputError) Error() string { - return "flate: corrupt input before offset " + strconv.FormatInt(int64(e), 10) -} - -// An InternalError reports an error in the flate code itself. -type InternalError string - -func (e InternalError) Error() string { return "flate: internal error: " + string(e) } - -// A ReadError reports an error encountered while reading input. -// -// Deprecated: No longer returned. -type ReadError struct { - Offset int64 // byte offset where error occurred - Err error // error returned by underlying Read -} - -func (e *ReadError) Error() string { - return "flate: read error at offset " + strconv.FormatInt(e.Offset, 10) + ": " + e.Err.Error() -} - -// A WriteError reports an error encountered while writing output. -// -// Deprecated: No longer returned. -type WriteError struct { - Offset int64 // byte offset where error occurred - Err error // error returned by underlying Write -} - -func (e *WriteError) Error() string { - return "flate: write error at offset " + strconv.FormatInt(e.Offset, 10) + ": " + e.Err.Error() -} - -// Resetter resets a ReadCloser returned by NewReader or NewReaderDict to -// to switch to a new underlying Reader. This permits reusing a ReadCloser -// instead of allocating a new one. -type Resetter interface { - // Reset discards any buffered data and resets the Resetter as if it was - // newly initialized with the given reader. - Reset(r io.Reader, dict []byte) error -} - -// The data structure for decoding Huffman tables is based on that of -// zlib. There is a lookup table of a fixed bit width (huffmanChunkBits), -// For codes smaller than the table width, there are multiple entries -// (each combination of trailing bits has the same value). For codes -// larger than the table width, the table contains a link to an overflow -// table. The width of each entry in the link table is the maximum code -// size minus the chunk width. -// -// Note that you can do a lookup in the table even without all bits -// filled. Since the extra bits are zero, and the DEFLATE Huffman codes -// have the property that shorter codes come before longer ones, the -// bit length estimate in the result is a lower bound on the actual -// number of bits. -// -// See the following: -// http://www.gzip.org/algorithm.txt - -// chunk & 15 is number of bits -// chunk >> 4 is value, including table link - -const ( - huffmanChunkBits = 9 - huffmanNumChunks = 1 << huffmanChunkBits - huffmanCountMask = 15 - huffmanValueShift = 4 -) - -type huffmanDecoder struct { - maxRead int // the maximum number of bits we can read and not overread - chunks *[huffmanNumChunks]uint16 // chunks as described above - links [][]uint16 // overflow links - linkMask uint32 // mask the width of the link table -} - -// Initialize Huffman decoding tables from array of code lengths. -// Following this function, h is guaranteed to be initialized into a complete -// tree (i.e., neither over-subscribed nor under-subscribed). The exception is a -// degenerate case where the tree has only a single symbol with length 1. Empty -// trees are permitted. -func (h *huffmanDecoder) init(lengths []int) bool { - // Sanity enables additional runtime tests during Huffman - // table construction. It's intended to be used during - // development to supplement the currently ad-hoc unit tests. - const sanity = false - - if h.chunks == nil { - h.chunks = &[huffmanNumChunks]uint16{} - } - if h.maxRead != 0 { - *h = huffmanDecoder{chunks: h.chunks, links: h.links} - } - - // Count number of codes of each length, - // compute maxRead and max length. - var count [maxCodeLen]int - var min, max int - for _, n := range lengths { - if n == 0 { - continue - } - if min == 0 || n < min { - min = n - } - if n > max { - max = n - } - count[n&maxCodeLenMask]++ - } - - // Empty tree. The decompressor.huffSym function will fail later if the tree - // is used. Technically, an empty tree is only valid for the HDIST tree and - // not the HCLEN and HLIT tree. However, a stream with an empty HCLEN tree - // is guaranteed to fail since it will attempt to use the tree to decode the - // codes for the HLIT and HDIST trees. Similarly, an empty HLIT tree is - // guaranteed to fail later since the compressed data section must be - // composed of at least one symbol (the end-of-block marker). - if max == 0 { - return true - } - - code := 0 - var nextcode [maxCodeLen]int - for i := min; i <= max; i++ { - code <<= 1 - nextcode[i&maxCodeLenMask] = code - code += count[i&maxCodeLenMask] - } - - // Check that the coding is complete (i.e., that we've - // assigned all 2-to-the-max possible bit sequences). - // Exception: To be compatible with zlib, we also need to - // accept degenerate single-code codings. See also - // TestDegenerateHuffmanCoding. - if code != 1< huffmanChunkBits { - numLinks := 1 << (uint(max) - huffmanChunkBits) - h.linkMask = uint32(numLinks - 1) - - // create link tables - link := nextcode[huffmanChunkBits+1] >> 1 - if cap(h.links) < huffmanNumChunks-link { - h.links = make([][]uint16, huffmanNumChunks-link) - } else { - h.links = h.links[:huffmanNumChunks-link] - } - for j := uint(link); j < huffmanNumChunks; j++ { - reverse := int(bits.Reverse16(uint16(j))) - reverse >>= uint(16 - huffmanChunkBits) - off := j - uint(link) - if sanity && h.chunks[reverse] != 0 { - panic("impossible: overwriting existing chunk") - } - h.chunks[reverse] = uint16(off<>= uint(16 - n) - if n <= huffmanChunkBits { - for off := reverse; off < len(h.chunks); off += 1 << uint(n) { - // We should never need to overwrite - // an existing chunk. Also, 0 is - // never a valid chunk, because the - // lower 4 "count" bits should be - // between 1 and 15. - if sanity && h.chunks[off] != 0 { - panic("impossible: overwriting existing chunk") - } - h.chunks[off] = chunk - } - } else { - j := reverse & (huffmanNumChunks - 1) - if sanity && h.chunks[j]&huffmanCountMask != huffmanChunkBits+1 { - // Longer codes should have been - // associated with a link table above. - panic("impossible: not an indirect chunk") - } - value := h.chunks[j] >> huffmanValueShift - linktab := h.links[value] - reverse >>= huffmanChunkBits - for off := reverse; off < len(linktab); off += 1 << uint(n-huffmanChunkBits) { - if sanity && linktab[off] != 0 { - panic("impossible: overwriting existing chunk") - } - linktab[off] = chunk - } - } - } - - if sanity { - // Above we've sanity checked that we never overwrote - // an existing entry. Here we additionally check that - // we filled the tables completely. - for i, chunk := range h.chunks { - if chunk == 0 { - // As an exception, in the degenerate - // single-code case, we allow odd - // chunks to be missing. - if code == 1 && i%2 == 1 { - continue - } - panic("impossible: missing chunk") - } - } - for _, linktab := range h.links { - for _, chunk := range linktab { - if chunk == 0 { - panic("impossible: missing chunk") - } - } - } - } - - return true -} - -// The actual read interface needed by NewReader. -// If the passed in io.Reader does not also have ReadByte, -// the NewReader will introduce its own buffering. -type Reader interface { - io.Reader - io.ByteReader -} - -// Decompress state. -type decompressor struct { - // Input source. - r Reader - roffset int64 - - // Huffman decoders for literal/length, distance. - h1, h2 huffmanDecoder - - // Length arrays used to define Huffman codes. - bits *[maxNumLit + maxNumDist]int - codebits *[numCodes]int - - // Output history, buffer. - dict dictDecoder - - // Next step in the decompression, - // and decompression state. - step func(*decompressor) - stepState int - err error - toRead []byte - hl, hd *huffmanDecoder - copyLen int - copyDist int - - // Temporary buffer (avoids repeated allocation). - buf [4]byte - - // Input bits, in top of b. - b uint32 - - nb uint - final bool -} - -func (f *decompressor) nextBlock() { - for f.nb < 1+2 { - if f.err = f.moreBits(); f.err != nil { - return - } - } - f.final = f.b&1 == 1 - f.b >>= 1 - typ := f.b & 3 - f.b >>= 2 - f.nb -= 1 + 2 - switch typ { - case 0: - f.dataBlock() - case 1: - // compressed, fixed Huffman tables - f.hl = &fixedHuffmanDecoder - f.hd = nil - f.huffmanBlockDecoder()() - case 2: - // compressed, dynamic Huffman tables - if f.err = f.readHuffman(); f.err != nil { - break - } - f.hl = &f.h1 - f.hd = &f.h2 - f.huffmanBlockDecoder()() - default: - // 3 is reserved. - if debugDecode { - fmt.Println("reserved data block encountered") - } - f.err = CorruptInputError(f.roffset) - } -} - -func (f *decompressor) Read(b []byte) (int, error) { - for { - if len(f.toRead) > 0 { - n := copy(b, f.toRead) - f.toRead = f.toRead[n:] - if len(f.toRead) == 0 { - return n, f.err - } - return n, nil - } - if f.err != nil { - return 0, f.err - } - f.step(f) - if f.err != nil && len(f.toRead) == 0 { - f.toRead = f.dict.readFlush() // Flush what's left in case of error - } - } -} - -// Support the io.WriteTo interface for io.Copy and friends. -func (f *decompressor) WriteTo(w io.Writer) (int64, error) { - total := int64(0) - flushed := false - for { - if len(f.toRead) > 0 { - n, err := w.Write(f.toRead) - total += int64(n) - if err != nil { - f.err = err - return total, err - } - if n != len(f.toRead) { - return total, io.ErrShortWrite - } - f.toRead = f.toRead[:0] - } - if f.err != nil && flushed { - if f.err == io.EOF { - return total, nil - } - return total, f.err - } - if f.err == nil { - f.step(f) - } - if len(f.toRead) == 0 && f.err != nil && !flushed { - f.toRead = f.dict.readFlush() // Flush what's left in case of error - flushed = true - } - } -} - -func (f *decompressor) Close() error { - if f.err == io.EOF { - return nil - } - return f.err -} - -// RFC 1951 section 3.2.7. -// Compression with dynamic Huffman codes - -var codeOrder = [...]int{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15} - -func (f *decompressor) readHuffman() error { - // HLIT[5], HDIST[5], HCLEN[4]. - for f.nb < 5+5+4 { - if err := f.moreBits(); err != nil { - return err - } - } - nlit := int(f.b&0x1F) + 257 - if nlit > maxNumLit { - if debugDecode { - fmt.Println("nlit > maxNumLit", nlit) - } - return CorruptInputError(f.roffset) - } - f.b >>= 5 - ndist := int(f.b&0x1F) + 1 - if ndist > maxNumDist { - if debugDecode { - fmt.Println("ndist > maxNumDist", ndist) - } - return CorruptInputError(f.roffset) - } - f.b >>= 5 - nclen := int(f.b&0xF) + 4 - // numCodes is 19, so nclen is always valid. - f.b >>= 4 - f.nb -= 5 + 5 + 4 - - // (HCLEN+4)*3 bits: code lengths in the magic codeOrder order. - for i := 0; i < nclen; i++ { - for f.nb < 3 { - if err := f.moreBits(); err != nil { - return err - } - } - f.codebits[codeOrder[i]] = int(f.b & 0x7) - f.b >>= 3 - f.nb -= 3 - } - for i := nclen; i < len(codeOrder); i++ { - f.codebits[codeOrder[i]] = 0 - } - if !f.h1.init(f.codebits[0:]) { - if debugDecode { - fmt.Println("init codebits failed") - } - return CorruptInputError(f.roffset) - } - - // HLIT + 257 code lengths, HDIST + 1 code lengths, - // using the code length Huffman code. - for i, n := 0, nlit+ndist; i < n; { - x, err := f.huffSym(&f.h1) - if err != nil { - return err - } - if x < 16 { - // Actual length. - f.bits[i] = x - i++ - continue - } - // Repeat previous length or zero. - var rep int - var nb uint - var b int - switch x { - default: - return InternalError("unexpected length code") - case 16: - rep = 3 - nb = 2 - if i == 0 { - if debugDecode { - fmt.Println("i==0") - } - return CorruptInputError(f.roffset) - } - b = f.bits[i-1] - case 17: - rep = 3 - nb = 3 - b = 0 - case 18: - rep = 11 - nb = 7 - b = 0 - } - for f.nb < nb { - if err := f.moreBits(); err != nil { - if debugDecode { - fmt.Println("morebits:", err) - } - return err - } - } - rep += int(f.b & uint32(1<<(nb®SizeMaskUint32)-1)) - f.b >>= nb & regSizeMaskUint32 - f.nb -= nb - if i+rep > n { - if debugDecode { - fmt.Println("i+rep > n", i, rep, n) - } - return CorruptInputError(f.roffset) - } - for j := 0; j < rep; j++ { - f.bits[i] = b - i++ - } - } - - if !f.h1.init(f.bits[0:nlit]) || !f.h2.init(f.bits[nlit:nlit+ndist]) { - if debugDecode { - fmt.Println("init2 failed") - } - return CorruptInputError(f.roffset) - } - - // As an optimization, we can initialize the maxRead bits to read at a time - // for the HLIT tree to the length of the EOB marker since we know that - // every block must terminate with one. This preserves the property that - // we never read any extra bytes after the end of the DEFLATE stream. - if f.h1.maxRead < f.bits[endBlockMarker] { - f.h1.maxRead = f.bits[endBlockMarker] - } - if !f.final { - // If not the final block, the smallest block possible is - // a predefined table, BTYPE=01, with a single EOB marker. - // This will take up 3 + 7 bits. - f.h1.maxRead += 10 - } - - return nil -} - -// Decode a single Huffman block from f. -// hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the -// fixed distance encoding associated with fixed Huffman blocks. -func (f *decompressor) huffmanBlockGeneric() { - const ( - stateInit = iota // Zero value must be stateInit - stateDict - ) - - switch f.stepState { - case stateInit: - goto readLiteral - case stateDict: - goto copyHistory - } - -readLiteral: - // Read literal and/or (length, distance) according to RFC section 3.2.3. - { - var v int - { - // Inlined v, err := f.huffSym(f.hl) - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hl.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := f.r.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hl.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hl.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hl.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - v = int(chunk >> huffmanValueShift) - break - } - } - } - - var n uint // number of bits extra - var length int - var err error - switch { - case v < 256: - f.dict.writeByte(byte(v)) - if f.dict.availWrite() == 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBlockGeneric - f.stepState = stateInit - return - } - goto readLiteral - case v == 256: - f.finishBlock() - return - // otherwise, reference to older data - case v < 265: - length = v - (257 - 3) - n = 0 - case v < 269: - length = v*2 - (265*2 - 11) - n = 1 - case v < 273: - length = v*4 - (269*4 - 19) - n = 2 - case v < 277: - length = v*8 - (273*8 - 35) - n = 3 - case v < 281: - length = v*16 - (277*16 - 67) - n = 4 - case v < 285: - length = v*32 - (281*32 - 131) - n = 5 - case v < maxNumLit: - length = 258 - n = 0 - default: - if debugDecode { - fmt.Println(v, ">= maxNumLit") - } - f.err = CorruptInputError(f.roffset) - return - } - if n > 0 { - for f.nb < n { - if err = f.moreBits(); err != nil { - if debugDecode { - fmt.Println("morebits n>0:", err) - } - f.err = err - return - } - } - length += int(f.b & uint32(1<<(n®SizeMaskUint32)-1)) - f.b >>= n & regSizeMaskUint32 - f.nb -= n - } - - var dist uint32 - if f.hd == nil { - for f.nb < 5 { - if err = f.moreBits(); err != nil { - if debugDecode { - fmt.Println("morebits f.nb<5:", err) - } - f.err = err - return - } - } - dist = uint32(bits.Reverse8(uint8(f.b & 0x1F << 3))) - f.b >>= 5 - f.nb -= 5 - } else { - sym, err := f.huffSym(f.hd) - if err != nil { - if debugDecode { - fmt.Println("huffsym:", err) - } - f.err = err - return - } - dist = uint32(sym) - } - - switch { - case dist < 4: - dist++ - case dist < maxNumDist: - nb := uint(dist-2) >> 1 - // have 1 bit in bottom of dist, need nb more. - extra := (dist & 1) << (nb & regSizeMaskUint32) - for f.nb < nb { - if err = f.moreBits(); err != nil { - if debugDecode { - fmt.Println("morebits f.nb>= nb & regSizeMaskUint32 - f.nb -= nb - dist = 1<<((nb+1)®SizeMaskUint32) + 1 + extra - default: - if debugDecode { - fmt.Println("dist too big:", dist, maxNumDist) - } - f.err = CorruptInputError(f.roffset) - return - } - - // No check on length; encoding can be prescient. - if dist > uint32(f.dict.histSize()) { - if debugDecode { - fmt.Println("dist > f.dict.histSize():", dist, f.dict.histSize()) - } - f.err = CorruptInputError(f.roffset) - return - } - - f.copyLen, f.copyDist = length, int(dist) - goto copyHistory - } - -copyHistory: - // Perform a backwards copy according to RFC section 3.2.3. - { - cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) - if cnt == 0 { - cnt = f.dict.writeCopy(f.copyDist, f.copyLen) - } - f.copyLen -= cnt - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBlockGeneric // We need to continue this work - f.stepState = stateDict - return - } - goto readLiteral - } -} - -// Copy a single uncompressed data block from input to output. -func (f *decompressor) dataBlock() { - // Uncompressed. - // Discard current half-byte. - left := (f.nb) & 7 - f.nb -= left - f.b >>= left - - offBytes := f.nb >> 3 - // Unfilled values will be overwritten. - f.buf[0] = uint8(f.b) - f.buf[1] = uint8(f.b >> 8) - f.buf[2] = uint8(f.b >> 16) - f.buf[3] = uint8(f.b >> 24) - - f.roffset += int64(offBytes) - f.nb, f.b = 0, 0 - - // Length then ones-complement of length. - nr, err := io.ReadFull(f.r, f.buf[offBytes:4]) - f.roffset += int64(nr) - if err != nil { - f.err = noEOF(err) - return - } - n := uint16(f.buf[0]) | uint16(f.buf[1])<<8 - nn := uint16(f.buf[2]) | uint16(f.buf[3])<<8 - if nn != ^n { - if debugDecode { - ncomp := ^n - fmt.Println("uint16(nn) != uint16(^n)", nn, ncomp) - } - f.err = CorruptInputError(f.roffset) - return - } - - if n == 0 { - f.toRead = f.dict.readFlush() - f.finishBlock() - return - } - - f.copyLen = int(n) - f.copyData() -} - -// copyData copies f.copyLen bytes from the underlying reader into f.hist. -// It pauses for reads when f.hist is full. -func (f *decompressor) copyData() { - buf := f.dict.writeSlice() - if len(buf) > f.copyLen { - buf = buf[:f.copyLen] - } - - cnt, err := io.ReadFull(f.r, buf) - f.roffset += int64(cnt) - f.copyLen -= cnt - f.dict.writeMark(cnt) - if err != nil { - f.err = noEOF(err) - return - } - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).copyData - return - } - f.finishBlock() -} - -func (f *decompressor) finishBlock() { - if f.final { - if f.dict.availRead() > 0 { - f.toRead = f.dict.readFlush() - } - f.err = io.EOF - } - f.step = (*decompressor).nextBlock -} - -// noEOF returns err, unless err == io.EOF, in which case it returns io.ErrUnexpectedEOF. -func noEOF(e error) error { - if e == io.EOF { - return io.ErrUnexpectedEOF - } - return e -} - -func (f *decompressor) moreBits() error { - c, err := f.r.ReadByte() - if err != nil { - return noEOF(err) - } - f.roffset++ - f.b |= uint32(c) << (f.nb & regSizeMaskUint32) - f.nb += 8 - return nil -} - -// Read the next Huffman-encoded symbol from f according to h. -func (f *decompressor) huffSym(h *huffmanDecoder) (int, error) { - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(h.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := f.r.ReadByte() - if err != nil { - f.b = b - f.nb = nb - return 0, noEOF(err) - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := h.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = h.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&h.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return 0, f.err - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - return int(chunk >> huffmanValueShift), nil - } - } -} - -func makeReader(r io.Reader) Reader { - if rr, ok := r.(Reader); ok { - return rr - } - return bufio.NewReader(r) -} - -func fixedHuffmanDecoderInit() { - fixedOnce.Do(func() { - // These come from the RFC section 3.2.6. - var bits [288]int - for i := 0; i < 144; i++ { - bits[i] = 8 - } - for i := 144; i < 256; i++ { - bits[i] = 9 - } - for i := 256; i < 280; i++ { - bits[i] = 7 - } - for i := 280; i < 288; i++ { - bits[i] = 8 - } - fixedHuffmanDecoder.init(bits[:]) - }) -} - -func (f *decompressor) Reset(r io.Reader, dict []byte) error { - *f = decompressor{ - r: makeReader(r), - bits: f.bits, - codebits: f.codebits, - h1: f.h1, - h2: f.h2, - dict: f.dict, - step: (*decompressor).nextBlock, - } - f.dict.init(maxMatchOffset, dict) - return nil -} - -// NewReader returns a new ReadCloser that can be used -// to read the uncompressed version of r. -// If r does not also implement io.ByteReader, -// the decompressor may read more data than necessary from r. -// It is the caller's responsibility to call Close on the ReadCloser -// when finished reading. -// -// The ReadCloser returned by NewReader also implements Resetter. -func NewReader(r io.Reader) io.ReadCloser { - fixedHuffmanDecoderInit() - - var f decompressor - f.r = makeReader(r) - f.bits = new([maxNumLit + maxNumDist]int) - f.codebits = new([numCodes]int) - f.step = (*decompressor).nextBlock - f.dict.init(maxMatchOffset, nil) - return &f -} - -// NewReaderDict is like NewReader but initializes the reader -// with a preset dictionary. The returned Reader behaves as if -// the uncompressed data stream started with the given dictionary, -// which has already been read. NewReaderDict is typically used -// to read data compressed by NewWriterDict. -// -// The ReadCloser returned by NewReader also implements Resetter. -func NewReaderDict(r io.Reader, dict []byte) io.ReadCloser { - fixedHuffmanDecoderInit() - - var f decompressor - f.r = makeReader(r) - f.bits = new([maxNumLit + maxNumDist]int) - f.codebits = new([numCodes]int) - f.step = (*decompressor).nextBlock - f.dict.init(maxMatchOffset, dict) - return &f -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/inflate_gen.go b/backend/vendor/github.com/klauspost/compress/flate/inflate_gen.go deleted file mode 100644 index cc6db279..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/inflate_gen.go +++ /dev/null @@ -1,1002 +0,0 @@ -// Code generated by go generate gen_inflate.go. DO NOT EDIT. - -package flate - -import ( - "bufio" - "bytes" - "fmt" - "math/bits" - "strings" -) - -// Decode a single Huffman block from f. -// hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the -// fixed distance encoding associated with fixed Huffman blocks. -func (f *decompressor) huffmanBytesBuffer() { - const ( - stateInit = iota // Zero value must be stateInit - stateDict - ) - fr := f.r.(*bytes.Buffer) - - switch f.stepState { - case stateInit: - goto readLiteral - case stateDict: - goto copyHistory - } - -readLiteral: - // Read literal and/or (length, distance) according to RFC section 3.2.3. - { - var v int - { - // Inlined v, err := f.huffSym(f.hl) - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hl.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hl.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hl.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hl.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - v = int(chunk >> huffmanValueShift) - break - } - } - } - - var length int - switch { - case v < 256: - f.dict.writeByte(byte(v)) - if f.dict.availWrite() == 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBytesBuffer - f.stepState = stateInit - return - } - goto readLiteral - case v == 256: - f.finishBlock() - return - // otherwise, reference to older data - case v < 265: - length = v - (257 - 3) - case v < maxNumLit: - val := decCodeToLen[(v - 257)] - length = int(val.length) + 3 - n := uint(val.extra) - for f.nb < n { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits n>0:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - length += int(f.b & uint32(1<<(n®SizeMaskUint32)-1)) - f.b >>= n & regSizeMaskUint32 - f.nb -= n - default: - if debugDecode { - fmt.Println(v, ">= maxNumLit") - } - f.err = CorruptInputError(f.roffset) - return - } - - var dist uint32 - if f.hd == nil { - for f.nb < 5 { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb<5:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - dist = uint32(bits.Reverse8(uint8(f.b & 0x1F << 3))) - f.b >>= 5 - f.nb -= 5 - } else { - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hd.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hd.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hd.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hd.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - dist = uint32(chunk >> huffmanValueShift) - break - } - } - } - - switch { - case dist < 4: - dist++ - case dist < maxNumDist: - nb := uint(dist-2) >> 1 - // have 1 bit in bottom of dist, need nb more. - extra := (dist & 1) << (nb & regSizeMaskUint32) - for f.nb < nb { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb>= nb & regSizeMaskUint32 - f.nb -= nb - dist = 1<<((nb+1)®SizeMaskUint32) + 1 + extra - default: - if debugDecode { - fmt.Println("dist too big:", dist, maxNumDist) - } - f.err = CorruptInputError(f.roffset) - return - } - - // No check on length; encoding can be prescient. - if dist > uint32(f.dict.histSize()) { - if debugDecode { - fmt.Println("dist > f.dict.histSize():", dist, f.dict.histSize()) - } - f.err = CorruptInputError(f.roffset) - return - } - - f.copyLen, f.copyDist = length, int(dist) - goto copyHistory - } - -copyHistory: - // Perform a backwards copy according to RFC section 3.2.3. - { - cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) - if cnt == 0 { - cnt = f.dict.writeCopy(f.copyDist, f.copyLen) - } - f.copyLen -= cnt - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBytesBuffer // We need to continue this work - f.stepState = stateDict - return - } - goto readLiteral - } -} - -// Decode a single Huffman block from f. -// hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the -// fixed distance encoding associated with fixed Huffman blocks. -func (f *decompressor) huffmanBytesReader() { - const ( - stateInit = iota // Zero value must be stateInit - stateDict - ) - fr := f.r.(*bytes.Reader) - - switch f.stepState { - case stateInit: - goto readLiteral - case stateDict: - goto copyHistory - } - -readLiteral: - // Read literal and/or (length, distance) according to RFC section 3.2.3. - { - var v int - { - // Inlined v, err := f.huffSym(f.hl) - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hl.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hl.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hl.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hl.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - v = int(chunk >> huffmanValueShift) - break - } - } - } - - var length int - switch { - case v < 256: - f.dict.writeByte(byte(v)) - if f.dict.availWrite() == 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBytesReader - f.stepState = stateInit - return - } - goto readLiteral - case v == 256: - f.finishBlock() - return - // otherwise, reference to older data - case v < 265: - length = v - (257 - 3) - case v < maxNumLit: - val := decCodeToLen[(v - 257)] - length = int(val.length) + 3 - n := uint(val.extra) - for f.nb < n { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits n>0:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - length += int(f.b & uint32(1<<(n®SizeMaskUint32)-1)) - f.b >>= n & regSizeMaskUint32 - f.nb -= n - default: - if debugDecode { - fmt.Println(v, ">= maxNumLit") - } - f.err = CorruptInputError(f.roffset) - return - } - - var dist uint32 - if f.hd == nil { - for f.nb < 5 { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb<5:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - dist = uint32(bits.Reverse8(uint8(f.b & 0x1F << 3))) - f.b >>= 5 - f.nb -= 5 - } else { - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hd.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hd.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hd.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hd.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - dist = uint32(chunk >> huffmanValueShift) - break - } - } - } - - switch { - case dist < 4: - dist++ - case dist < maxNumDist: - nb := uint(dist-2) >> 1 - // have 1 bit in bottom of dist, need nb more. - extra := (dist & 1) << (nb & regSizeMaskUint32) - for f.nb < nb { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb>= nb & regSizeMaskUint32 - f.nb -= nb - dist = 1<<((nb+1)®SizeMaskUint32) + 1 + extra - default: - if debugDecode { - fmt.Println("dist too big:", dist, maxNumDist) - } - f.err = CorruptInputError(f.roffset) - return - } - - // No check on length; encoding can be prescient. - if dist > uint32(f.dict.histSize()) { - if debugDecode { - fmt.Println("dist > f.dict.histSize():", dist, f.dict.histSize()) - } - f.err = CorruptInputError(f.roffset) - return - } - - f.copyLen, f.copyDist = length, int(dist) - goto copyHistory - } - -copyHistory: - // Perform a backwards copy according to RFC section 3.2.3. - { - cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) - if cnt == 0 { - cnt = f.dict.writeCopy(f.copyDist, f.copyLen) - } - f.copyLen -= cnt - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBytesReader // We need to continue this work - f.stepState = stateDict - return - } - goto readLiteral - } -} - -// Decode a single Huffman block from f. -// hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the -// fixed distance encoding associated with fixed Huffman blocks. -func (f *decompressor) huffmanBufioReader() { - const ( - stateInit = iota // Zero value must be stateInit - stateDict - ) - fr := f.r.(*bufio.Reader) - - switch f.stepState { - case stateInit: - goto readLiteral - case stateDict: - goto copyHistory - } - -readLiteral: - // Read literal and/or (length, distance) according to RFC section 3.2.3. - { - var v int - { - // Inlined v, err := f.huffSym(f.hl) - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hl.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hl.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hl.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hl.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - v = int(chunk >> huffmanValueShift) - break - } - } - } - - var length int - switch { - case v < 256: - f.dict.writeByte(byte(v)) - if f.dict.availWrite() == 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBufioReader - f.stepState = stateInit - return - } - goto readLiteral - case v == 256: - f.finishBlock() - return - // otherwise, reference to older data - case v < 265: - length = v - (257 - 3) - case v < maxNumLit: - val := decCodeToLen[(v - 257)] - length = int(val.length) + 3 - n := uint(val.extra) - for f.nb < n { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits n>0:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - length += int(f.b & uint32(1<<(n®SizeMaskUint32)-1)) - f.b >>= n & regSizeMaskUint32 - f.nb -= n - default: - if debugDecode { - fmt.Println(v, ">= maxNumLit") - } - f.err = CorruptInputError(f.roffset) - return - } - - var dist uint32 - if f.hd == nil { - for f.nb < 5 { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb<5:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - dist = uint32(bits.Reverse8(uint8(f.b & 0x1F << 3))) - f.b >>= 5 - f.nb -= 5 - } else { - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hd.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hd.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hd.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hd.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - dist = uint32(chunk >> huffmanValueShift) - break - } - } - } - - switch { - case dist < 4: - dist++ - case dist < maxNumDist: - nb := uint(dist-2) >> 1 - // have 1 bit in bottom of dist, need nb more. - extra := (dist & 1) << (nb & regSizeMaskUint32) - for f.nb < nb { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb>= nb & regSizeMaskUint32 - f.nb -= nb - dist = 1<<((nb+1)®SizeMaskUint32) + 1 + extra - default: - if debugDecode { - fmt.Println("dist too big:", dist, maxNumDist) - } - f.err = CorruptInputError(f.roffset) - return - } - - // No check on length; encoding can be prescient. - if dist > uint32(f.dict.histSize()) { - if debugDecode { - fmt.Println("dist > f.dict.histSize():", dist, f.dict.histSize()) - } - f.err = CorruptInputError(f.roffset) - return - } - - f.copyLen, f.copyDist = length, int(dist) - goto copyHistory - } - -copyHistory: - // Perform a backwards copy according to RFC section 3.2.3. - { - cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) - if cnt == 0 { - cnt = f.dict.writeCopy(f.copyDist, f.copyLen) - } - f.copyLen -= cnt - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanBufioReader // We need to continue this work - f.stepState = stateDict - return - } - goto readLiteral - } -} - -// Decode a single Huffman block from f. -// hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the -// fixed distance encoding associated with fixed Huffman blocks. -func (f *decompressor) huffmanStringsReader() { - const ( - stateInit = iota // Zero value must be stateInit - stateDict - ) - fr := f.r.(*strings.Reader) - - switch f.stepState { - case stateInit: - goto readLiteral - case stateDict: - goto copyHistory - } - -readLiteral: - // Read literal and/or (length, distance) according to RFC section 3.2.3. - { - var v int - { - // Inlined v, err := f.huffSym(f.hl) - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hl.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hl.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hl.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hl.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - v = int(chunk >> huffmanValueShift) - break - } - } - } - - var length int - switch { - case v < 256: - f.dict.writeByte(byte(v)) - if f.dict.availWrite() == 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanStringsReader - f.stepState = stateInit - return - } - goto readLiteral - case v == 256: - f.finishBlock() - return - // otherwise, reference to older data - case v < 265: - length = v - (257 - 3) - case v < maxNumLit: - val := decCodeToLen[(v - 257)] - length = int(val.length) + 3 - n := uint(val.extra) - for f.nb < n { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits n>0:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - length += int(f.b & uint32(1<<(n®SizeMaskUint32)-1)) - f.b >>= n & regSizeMaskUint32 - f.nb -= n - default: - if debugDecode { - fmt.Println(v, ">= maxNumLit") - } - f.err = CorruptInputError(f.roffset) - return - } - - var dist uint32 - if f.hd == nil { - for f.nb < 5 { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb<5:", err) - } - f.err = err - return - } - f.roffset++ - f.b |= uint32(c) << f.nb - f.nb += 8 - } - dist = uint32(bits.Reverse8(uint8(f.b & 0x1F << 3))) - f.b >>= 5 - f.nb -= 5 - } else { - // Since a huffmanDecoder can be empty or be composed of a degenerate tree - // with single element, huffSym must error on these two edge cases. In both - // cases, the chunks slice will be 0 for the invalid sequence, leading it - // satisfy the n == 0 check below. - n := uint(f.hd.maxRead) - // Optimization. Compiler isn't smart enough to keep f.b,f.nb in registers, - // but is smart enough to keep local variables in registers, so use nb and b, - // inline call to moreBits and reassign b,nb back to f on return. - nb, b := f.nb, f.b - for { - for nb < n { - c, err := fr.ReadByte() - if err != nil { - f.b = b - f.nb = nb - f.err = noEOF(err) - return - } - f.roffset++ - b |= uint32(c) << (nb & regSizeMaskUint32) - nb += 8 - } - chunk := f.hd.chunks[b&(huffmanNumChunks-1)] - n = uint(chunk & huffmanCountMask) - if n > huffmanChunkBits { - chunk = f.hd.links[chunk>>huffmanValueShift][(b>>huffmanChunkBits)&f.hd.linkMask] - n = uint(chunk & huffmanCountMask) - } - if n <= nb { - if n == 0 { - f.b = b - f.nb = nb - if debugDecode { - fmt.Println("huffsym: n==0") - } - f.err = CorruptInputError(f.roffset) - return - } - f.b = b >> (n & regSizeMaskUint32) - f.nb = nb - n - dist = uint32(chunk >> huffmanValueShift) - break - } - } - } - - switch { - case dist < 4: - dist++ - case dist < maxNumDist: - nb := uint(dist-2) >> 1 - // have 1 bit in bottom of dist, need nb more. - extra := (dist & 1) << (nb & regSizeMaskUint32) - for f.nb < nb { - c, err := fr.ReadByte() - if err != nil { - if debugDecode { - fmt.Println("morebits f.nb>= nb & regSizeMaskUint32 - f.nb -= nb - dist = 1<<((nb+1)®SizeMaskUint32) + 1 + extra - default: - if debugDecode { - fmt.Println("dist too big:", dist, maxNumDist) - } - f.err = CorruptInputError(f.roffset) - return - } - - // No check on length; encoding can be prescient. - if dist > uint32(f.dict.histSize()) { - if debugDecode { - fmt.Println("dist > f.dict.histSize():", dist, f.dict.histSize()) - } - f.err = CorruptInputError(f.roffset) - return - } - - f.copyLen, f.copyDist = length, int(dist) - goto copyHistory - } - -copyHistory: - // Perform a backwards copy according to RFC section 3.2.3. - { - cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) - if cnt == 0 { - cnt = f.dict.writeCopy(f.copyDist, f.copyLen) - } - f.copyLen -= cnt - - if f.dict.availWrite() == 0 || f.copyLen > 0 { - f.toRead = f.dict.readFlush() - f.step = (*decompressor).huffmanStringsReader // We need to continue this work - f.stepState = stateDict - return - } - goto readLiteral - } -} - -func (f *decompressor) huffmanBlockDecoder() func() { - switch f.r.(type) { - case *bytes.Buffer: - return f.huffmanBytesBuffer - case *bytes.Reader: - return f.huffmanBytesReader - case *bufio.Reader: - return f.huffmanBufioReader - case *strings.Reader: - return f.huffmanStringsReader - default: - return f.huffmanBlockGeneric - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/level1.go b/backend/vendor/github.com/klauspost/compress/flate/level1.go deleted file mode 100644 index 1e5eea39..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/level1.go +++ /dev/null @@ -1,179 +0,0 @@ -package flate - -import "fmt" - -// fastGen maintains the table for matches, -// and the previous byte block for level 2. -// This is the generic implementation. -type fastEncL1 struct { - fastGen - table [tableSize]tableEntry -} - -// EncodeL1 uses a similar algorithm to level 1 -func (e *fastEncL1) Encode(dst *tokens, src []byte) { - const ( - inputMargin = 12 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - if debugDeflate && e.cur < 0 { - panic(fmt.Sprint("e.cur < 0: ", e.cur)) - } - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - e.cur = maxMatchOffset - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - maxMatchOffset - for i := range e.table[:] { - v := e.table[i].offset - if v <= minOff { - v = 0 - } else { - v = v - e.cur + maxMatchOffset - } - e.table[i].offset = v - } - e.cur = maxMatchOffset - } - - s := e.addBlock(src) - - // This check isn't in the Snappy implementation, but there, the caller - // instead of the callee handles this case. - if len(src) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = uint16(len(src)) - return - } - - // Override src - src = e.hist - nextEmit := s - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int32(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load3232(src, s) - - for { - const skipLog = 5 - const doEvery = 2 - - nextS := s - var candidate tableEntry - for { - nextHash := hash(cv) - candidate = e.table[nextHash] - nextS = s + doEvery + (s-nextEmit)>>skipLog - if nextS > sLimit { - goto emitRemainder - } - - now := load6432(src, nextS) - e.table[nextHash] = tableEntry{offset: s + e.cur} - nextHash = hash(uint32(now)) - - offset := s - (candidate.offset - e.cur) - if offset < maxMatchOffset && cv == load3232(src, candidate.offset-e.cur) { - e.table[nextHash] = tableEntry{offset: nextS + e.cur} - break - } - - // Do one right away... - cv = uint32(now) - s = nextS - nextS++ - candidate = e.table[nextHash] - now >>= 8 - e.table[nextHash] = tableEntry{offset: s + e.cur} - - offset = s - (candidate.offset - e.cur) - if offset < maxMatchOffset && cv == load3232(src, candidate.offset-e.cur) { - e.table[nextHash] = tableEntry{offset: nextS + e.cur} - break - } - cv = uint32(now) - s = nextS - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - for { - // Invariant: we have a 4-byte match at s, and no need to emit any - // literal bytes prior to s. - - // Extend the 4-byte match as long as possible. - t := candidate.offset - e.cur - l := e.matchlenLong(s+4, t+4, src) + 4 - - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - - // Save the match found - dst.AddMatchLong(l, uint32(s-t-baseMatchOffset)) - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - if s >= sLimit { - // Index first pair after match end. - if int(s+l+4) < len(src) { - cv := load3232(src, s) - e.table[hash(cv)] = tableEntry{offset: s + e.cur} - } - goto emitRemainder - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-2 and at s. If - // another emitCopy is not our next move, also calculate nextHash - // at s+1. At least on GOARCH=amd64, these three hash calculations - // are faster as one load64 call (with some shifts) instead of - // three load32 calls. - x := load6432(src, s-2) - o := e.cur + s - 2 - prevHash := hash(uint32(x)) - e.table[prevHash] = tableEntry{offset: o} - x >>= 16 - currHash := hash(uint32(x)) - candidate = e.table[currHash] - e.table[currHash] = tableEntry{offset: o + 2} - - offset := s - (candidate.offset - e.cur) - if offset > maxMatchOffset || uint32(x) != load3232(src, candidate.offset-e.cur) { - cv = uint32(x >> 8) - s++ - break - } - } - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/level2.go b/backend/vendor/github.com/klauspost/compress/flate/level2.go deleted file mode 100644 index 5b986a19..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/level2.go +++ /dev/null @@ -1,205 +0,0 @@ -package flate - -import "fmt" - -// fastGen maintains the table for matches, -// and the previous byte block for level 2. -// This is the generic implementation. -type fastEncL2 struct { - fastGen - table [bTableSize]tableEntry -} - -// EncodeL2 uses a similar algorithm to level 1, but is capable -// of matching across blocks giving better compression at a small slowdown. -func (e *fastEncL2) Encode(dst *tokens, src []byte) { - const ( - inputMargin = 12 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - - if debugDeflate && e.cur < 0 { - panic(fmt.Sprint("e.cur < 0: ", e.cur)) - } - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - e.cur = maxMatchOffset - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - maxMatchOffset - for i := range e.table[:] { - v := e.table[i].offset - if v <= minOff { - v = 0 - } else { - v = v - e.cur + maxMatchOffset - } - e.table[i].offset = v - } - e.cur = maxMatchOffset - } - - s := e.addBlock(src) - - // This check isn't in the Snappy implementation, but there, the caller - // instead of the callee handles this case. - if len(src) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = uint16(len(src)) - return - } - - // Override src - src = e.hist - nextEmit := s - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int32(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load3232(src, s) - for { - // When should we start skipping if we haven't found matches in a long while. - const skipLog = 5 - const doEvery = 2 - - nextS := s - var candidate tableEntry - for { - nextHash := hash4u(cv, bTableBits) - s = nextS - nextS = s + doEvery + (s-nextEmit)>>skipLog - if nextS > sLimit { - goto emitRemainder - } - candidate = e.table[nextHash] - now := load6432(src, nextS) - e.table[nextHash] = tableEntry{offset: s + e.cur} - nextHash = hash4u(uint32(now), bTableBits) - - offset := s - (candidate.offset - e.cur) - if offset < maxMatchOffset && cv == load3232(src, candidate.offset-e.cur) { - e.table[nextHash] = tableEntry{offset: nextS + e.cur} - break - } - - // Do one right away... - cv = uint32(now) - s = nextS - nextS++ - candidate = e.table[nextHash] - now >>= 8 - e.table[nextHash] = tableEntry{offset: s + e.cur} - - offset = s - (candidate.offset - e.cur) - if offset < maxMatchOffset && cv == load3232(src, candidate.offset-e.cur) { - break - } - cv = uint32(now) - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - - // Call emitCopy, and then see if another emitCopy could be our next - // move. Repeat until we find no match for the input immediately after - // what was consumed by the last emitCopy call. - // - // If we exit this loop normally then we need to call emitLiteral next, - // though we don't yet know how big the literal will be. We handle that - // by proceeding to the next iteration of the main loop. We also can - // exit this loop via goto if we get close to exhausting the input. - for { - // Invariant: we have a 4-byte match at s, and no need to emit any - // literal bytes prior to s. - - // Extend the 4-byte match as long as possible. - t := candidate.offset - e.cur - l := e.matchlenLong(s+4, t+4, src) + 4 - - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - - dst.AddMatchLong(l, uint32(s-t-baseMatchOffset)) - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - - if s >= sLimit { - // Index first pair after match end. - if int(s+l+4) < len(src) { - cv := load3232(src, s) - e.table[hash4u(cv, bTableBits)] = tableEntry{offset: s + e.cur} - } - goto emitRemainder - } - - // Store every second hash in-between, but offset by 1. - for i := s - l + 2; i < s-5; i += 7 { - x := load6432(src, int32(i)) - nextHash := hash4u(uint32(x), bTableBits) - e.table[nextHash] = tableEntry{offset: e.cur + i} - // Skip one - x >>= 16 - nextHash = hash4u(uint32(x), bTableBits) - e.table[nextHash] = tableEntry{offset: e.cur + i + 2} - // Skip one - x >>= 16 - nextHash = hash4u(uint32(x), bTableBits) - e.table[nextHash] = tableEntry{offset: e.cur + i + 4} - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-2 to s. If - // another emitCopy is not our next move, also calculate nextHash - // at s+1. At least on GOARCH=amd64, these three hash calculations - // are faster as one load64 call (with some shifts) instead of - // three load32 calls. - x := load6432(src, s-2) - o := e.cur + s - 2 - prevHash := hash4u(uint32(x), bTableBits) - prevHash2 := hash4u(uint32(x>>8), bTableBits) - e.table[prevHash] = tableEntry{offset: o} - e.table[prevHash2] = tableEntry{offset: o + 1} - currHash := hash4u(uint32(x>>16), bTableBits) - candidate = e.table[currHash] - e.table[currHash] = tableEntry{offset: o + 2} - - offset := s - (candidate.offset - e.cur) - if offset > maxMatchOffset || uint32(x>>16) != load3232(src, candidate.offset-e.cur) { - cv = uint32(x >> 24) - s++ - break - } - } - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/level3.go b/backend/vendor/github.com/klauspost/compress/flate/level3.go deleted file mode 100644 index c22b4244..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/level3.go +++ /dev/null @@ -1,229 +0,0 @@ -package flate - -import "fmt" - -// fastEncL3 -type fastEncL3 struct { - fastGen - table [tableSize]tableEntryPrev -} - -// Encode uses a similar algorithm to level 2, will check up to two candidates. -func (e *fastEncL3) Encode(dst *tokens, src []byte) { - const ( - inputMargin = 8 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - - if debugDeflate && e.cur < 0 { - panic(fmt.Sprint("e.cur < 0: ", e.cur)) - } - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntryPrev{} - } - e.cur = maxMatchOffset - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - maxMatchOffset - for i := range e.table[:] { - v := e.table[i] - if v.Cur.offset <= minOff { - v.Cur.offset = 0 - } else { - v.Cur.offset = v.Cur.offset - e.cur + maxMatchOffset - } - if v.Prev.offset <= minOff { - v.Prev.offset = 0 - } else { - v.Prev.offset = v.Prev.offset - e.cur + maxMatchOffset - } - e.table[i] = v - } - e.cur = maxMatchOffset - } - - s := e.addBlock(src) - - // Skip if too small. - if len(src) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = uint16(len(src)) - return - } - - // Override src - src = e.hist - nextEmit := s - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int32(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load3232(src, s) - for { - const skipLog = 6 - nextS := s - var candidate tableEntry - for { - nextHash := hash(cv) - s = nextS - nextS = s + 1 + (s-nextEmit)>>skipLog - if nextS > sLimit { - goto emitRemainder - } - candidates := e.table[nextHash] - now := load3232(src, nextS) - - // Safe offset distance until s + 4... - minOffset := e.cur + s - (maxMatchOffset - 4) - e.table[nextHash] = tableEntryPrev{Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur}} - - // Check both candidates - candidate = candidates.Cur - if candidate.offset < minOffset { - cv = now - // Previous will also be invalid, we have nothing. - continue - } - - if cv == load3232(src, candidate.offset-e.cur) { - if candidates.Prev.offset < minOffset || cv != load3232(src, candidates.Prev.offset-e.cur) { - break - } - // Both match and are valid, pick longest. - offset := s - (candidate.offset - e.cur) - o2 := s - (candidates.Prev.offset - e.cur) - l1, l2 := matchLen(src[s+4:], src[s-offset+4:]), matchLen(src[s+4:], src[s-o2+4:]) - if l2 > l1 { - candidate = candidates.Prev - } - break - } else { - // We only check if value mismatches. - // Offset will always be invalid in other cases. - candidate = candidates.Prev - if candidate.offset > minOffset && cv == load3232(src, candidate.offset-e.cur) { - break - } - } - cv = now - } - - // Call emitCopy, and then see if another emitCopy could be our next - // move. Repeat until we find no match for the input immediately after - // what was consumed by the last emitCopy call. - // - // If we exit this loop normally then we need to call emitLiteral next, - // though we don't yet know how big the literal will be. We handle that - // by proceeding to the next iteration of the main loop. We also can - // exit this loop via goto if we get close to exhausting the input. - for { - // Invariant: we have a 4-byte match at s, and no need to emit any - // literal bytes prior to s. - - // Extend the 4-byte match as long as possible. - // - t := candidate.offset - e.cur - l := e.matchlenLong(s+4, t+4, src) + 4 - - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - - dst.AddMatchLong(l, uint32(s-t-baseMatchOffset)) - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - - if s >= sLimit { - t += l - // Index first pair after match end. - if int(t+4) < len(src) && t > 0 { - cv := load3232(src, t) - nextHash := hash(cv) - e.table[nextHash] = tableEntryPrev{ - Prev: e.table[nextHash].Cur, - Cur: tableEntry{offset: e.cur + t}, - } - } - goto emitRemainder - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-3 to s. - x := load6432(src, s-3) - prevHash := hash(uint32(x)) - e.table[prevHash] = tableEntryPrev{ - Prev: e.table[prevHash].Cur, - Cur: tableEntry{offset: e.cur + s - 3}, - } - x >>= 8 - prevHash = hash(uint32(x)) - - e.table[prevHash] = tableEntryPrev{ - Prev: e.table[prevHash].Cur, - Cur: tableEntry{offset: e.cur + s - 2}, - } - x >>= 8 - prevHash = hash(uint32(x)) - - e.table[prevHash] = tableEntryPrev{ - Prev: e.table[prevHash].Cur, - Cur: tableEntry{offset: e.cur + s - 1}, - } - x >>= 8 - currHash := hash(uint32(x)) - candidates := e.table[currHash] - cv = uint32(x) - e.table[currHash] = tableEntryPrev{ - Prev: candidates.Cur, - Cur: tableEntry{offset: s + e.cur}, - } - - // Check both candidates - candidate = candidates.Cur - minOffset := e.cur + s - (maxMatchOffset - 4) - - if candidate.offset > minOffset && cv != load3232(src, candidate.offset-e.cur) { - // We only check if value mismatches. - // Offset will always be invalid in other cases. - candidate = candidates.Prev - if candidate.offset > minOffset && cv == load3232(src, candidate.offset-e.cur) { - offset := s - (candidate.offset - e.cur) - if offset <= maxMatchOffset { - continue - } - } - } - cv = uint32(x >> 8) - s++ - break - } - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/level4.go b/backend/vendor/github.com/klauspost/compress/flate/level4.go deleted file mode 100644 index e62f0c02..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/level4.go +++ /dev/null @@ -1,212 +0,0 @@ -package flate - -import "fmt" - -type fastEncL4 struct { - fastGen - table [tableSize]tableEntry - bTable [tableSize]tableEntry -} - -func (e *fastEncL4) Encode(dst *tokens, src []byte) { - const ( - inputMargin = 12 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - if debugDeflate && e.cur < 0 { - panic(fmt.Sprint("e.cur < 0: ", e.cur)) - } - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.bTable[:] { - e.bTable[i] = tableEntry{} - } - e.cur = maxMatchOffset - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - maxMatchOffset - for i := range e.table[:] { - v := e.table[i].offset - if v <= minOff { - v = 0 - } else { - v = v - e.cur + maxMatchOffset - } - e.table[i].offset = v - } - for i := range e.bTable[:] { - v := e.bTable[i].offset - if v <= minOff { - v = 0 - } else { - v = v - e.cur + maxMatchOffset - } - e.bTable[i].offset = v - } - e.cur = maxMatchOffset - } - - s := e.addBlock(src) - - // This check isn't in the Snappy implementation, but there, the caller - // instead of the callee handles this case. - if len(src) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = uint16(len(src)) - return - } - - // Override src - src = e.hist - nextEmit := s - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int32(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load6432(src, s) - for { - const skipLog = 6 - const doEvery = 1 - - nextS := s - var t int32 - for { - nextHashS := hash4x64(cv, tableBits) - nextHashL := hash7(cv, tableBits) - - s = nextS - nextS = s + doEvery + (s-nextEmit)>>skipLog - if nextS > sLimit { - goto emitRemainder - } - // Fetch a short+long candidate - sCandidate := e.table[nextHashS] - lCandidate := e.bTable[nextHashL] - next := load6432(src, nextS) - entry := tableEntry{offset: s + e.cur} - e.table[nextHashS] = entry - e.bTable[nextHashL] = entry - - t = lCandidate.offset - e.cur - if s-t < maxMatchOffset && uint32(cv) == load3232(src, lCandidate.offset-e.cur) { - // We got a long match. Use that. - break - } - - t = sCandidate.offset - e.cur - if s-t < maxMatchOffset && uint32(cv) == load3232(src, sCandidate.offset-e.cur) { - // Found a 4 match... - lCandidate = e.bTable[hash7(next, tableBits)] - - // If the next long is a candidate, check if we should use that instead... - lOff := nextS - (lCandidate.offset - e.cur) - if lOff < maxMatchOffset && load3232(src, lCandidate.offset-e.cur) == uint32(next) { - l1, l2 := matchLen(src[s+4:], src[t+4:]), matchLen(src[nextS+4:], src[nextS-lOff+4:]) - if l2 > l1 { - s = nextS - t = lCandidate.offset - e.cur - } - } - break - } - cv = next - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - - // Extend the 4-byte match as long as possible. - l := e.matchlenLong(s+4, t+4, src) + 4 - - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - if debugDeflate { - if t >= s { - panic("s-t") - } - if (s - t) > maxMatchOffset { - panic(fmt.Sprintln("mmo", t)) - } - if l < baseMatchLength { - panic("bml") - } - } - - dst.AddMatchLong(l, uint32(s-t-baseMatchOffset)) - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - - if s >= sLimit { - // Index first pair after match end. - if int(s+8) < len(src) { - cv := load6432(src, s) - e.table[hash4x64(cv, tableBits)] = tableEntry{offset: s + e.cur} - e.bTable[hash7(cv, tableBits)] = tableEntry{offset: s + e.cur} - } - goto emitRemainder - } - - // Store every 3rd hash in-between - if true { - i := nextS - if i < s-1 { - cv := load6432(src, i) - t := tableEntry{offset: i + e.cur} - t2 := tableEntry{offset: t.offset + 1} - e.bTable[hash7(cv, tableBits)] = t - e.bTable[hash7(cv>>8, tableBits)] = t2 - e.table[hash4u(uint32(cv>>8), tableBits)] = t2 - - i += 3 - for ; i < s-1; i += 3 { - cv := load6432(src, i) - t := tableEntry{offset: i + e.cur} - t2 := tableEntry{offset: t.offset + 1} - e.bTable[hash7(cv, tableBits)] = t - e.bTable[hash7(cv>>8, tableBits)] = t2 - e.table[hash4u(uint32(cv>>8), tableBits)] = t2 - } - } - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-1 and at s. - x := load6432(src, s-1) - o := e.cur + s - 1 - prevHashS := hash4x64(x, tableBits) - prevHashL := hash7(x, tableBits) - e.table[prevHashS] = tableEntry{offset: o} - e.bTable[prevHashL] = tableEntry{offset: o} - cv = x >> 8 - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/level5.go b/backend/vendor/github.com/klauspost/compress/flate/level5.go deleted file mode 100644 index d513f1ff..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/level5.go +++ /dev/null @@ -1,279 +0,0 @@ -package flate - -import "fmt" - -type fastEncL5 struct { - fastGen - table [tableSize]tableEntry - bTable [tableSize]tableEntryPrev -} - -func (e *fastEncL5) Encode(dst *tokens, src []byte) { - const ( - inputMargin = 12 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - if debugDeflate && e.cur < 0 { - panic(fmt.Sprint("e.cur < 0: ", e.cur)) - } - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.bTable[:] { - e.bTable[i] = tableEntryPrev{} - } - e.cur = maxMatchOffset - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - maxMatchOffset - for i := range e.table[:] { - v := e.table[i].offset - if v <= minOff { - v = 0 - } else { - v = v - e.cur + maxMatchOffset - } - e.table[i].offset = v - } - for i := range e.bTable[:] { - v := e.bTable[i] - if v.Cur.offset <= minOff { - v.Cur.offset = 0 - v.Prev.offset = 0 - } else { - v.Cur.offset = v.Cur.offset - e.cur + maxMatchOffset - if v.Prev.offset <= minOff { - v.Prev.offset = 0 - } else { - v.Prev.offset = v.Prev.offset - e.cur + maxMatchOffset - } - } - e.bTable[i] = v - } - e.cur = maxMatchOffset - } - - s := e.addBlock(src) - - // This check isn't in the Snappy implementation, but there, the caller - // instead of the callee handles this case. - if len(src) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = uint16(len(src)) - return - } - - // Override src - src = e.hist - nextEmit := s - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int32(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load6432(src, s) - for { - const skipLog = 6 - const doEvery = 1 - - nextS := s - var l int32 - var t int32 - for { - nextHashS := hash4x64(cv, tableBits) - nextHashL := hash7(cv, tableBits) - - s = nextS - nextS = s + doEvery + (s-nextEmit)>>skipLog - if nextS > sLimit { - goto emitRemainder - } - // Fetch a short+long candidate - sCandidate := e.table[nextHashS] - lCandidate := e.bTable[nextHashL] - next := load6432(src, nextS) - entry := tableEntry{offset: s + e.cur} - e.table[nextHashS] = entry - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = entry, eLong.Cur - - nextHashS = hash4x64(next, tableBits) - nextHashL = hash7(next, tableBits) - - t = lCandidate.Cur.offset - e.cur - if s-t < maxMatchOffset { - if uint32(cv) == load3232(src, lCandidate.Cur.offset-e.cur) { - // Store the next match - e.table[nextHashS] = tableEntry{offset: nextS + e.cur} - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: nextS + e.cur}, eLong.Cur - - t2 := lCandidate.Prev.offset - e.cur - if s-t2 < maxMatchOffset && uint32(cv) == load3232(src, lCandidate.Prev.offset-e.cur) { - l = e.matchlen(s+4, t+4, src) + 4 - ml1 := e.matchlen(s+4, t2+4, src) + 4 - if ml1 > l { - t = t2 - l = ml1 - break - } - } - break - } - t = lCandidate.Prev.offset - e.cur - if s-t < maxMatchOffset && uint32(cv) == load3232(src, lCandidate.Prev.offset-e.cur) { - // Store the next match - e.table[nextHashS] = tableEntry{offset: nextS + e.cur} - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: nextS + e.cur}, eLong.Cur - break - } - } - - t = sCandidate.offset - e.cur - if s-t < maxMatchOffset && uint32(cv) == load3232(src, sCandidate.offset-e.cur) { - // Found a 4 match... - l = e.matchlen(s+4, t+4, src) + 4 - lCandidate = e.bTable[nextHashL] - // Store the next match - - e.table[nextHashS] = tableEntry{offset: nextS + e.cur} - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: nextS + e.cur}, eLong.Cur - - // If the next long is a candidate, use that... - t2 := lCandidate.Cur.offset - e.cur - if nextS-t2 < maxMatchOffset { - if load3232(src, lCandidate.Cur.offset-e.cur) == uint32(next) { - ml := e.matchlen(nextS+4, t2+4, src) + 4 - if ml > l { - t = t2 - s = nextS - l = ml - break - } - } - // If the previous long is a candidate, use that... - t2 = lCandidate.Prev.offset - e.cur - if nextS-t2 < maxMatchOffset && load3232(src, lCandidate.Prev.offset-e.cur) == uint32(next) { - ml := e.matchlen(nextS+4, t2+4, src) + 4 - if ml > l { - t = t2 - s = nextS - l = ml - break - } - } - } - break - } - cv = next - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - - // Extend the 4-byte match as long as possible. - if l == 0 { - l = e.matchlenLong(s+4, t+4, src) + 4 - } else if l == maxMatchLength { - l += e.matchlenLong(s+l, t+l, src) - } - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - if debugDeflate { - if t >= s { - panic(fmt.Sprintln("s-t", s, t)) - } - if (s - t) > maxMatchOffset { - panic(fmt.Sprintln("mmo", s-t)) - } - if l < baseMatchLength { - panic("bml") - } - } - - dst.AddMatchLong(l, uint32(s-t-baseMatchOffset)) - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - - if s >= sLimit { - goto emitRemainder - } - - // Store every 3rd hash in-between. - if true { - const hashEvery = 3 - i := s - l + 1 - if i < s-1 { - cv := load6432(src, i) - t := tableEntry{offset: i + e.cur} - e.table[hash4x64(cv, tableBits)] = t - eLong := &e.bTable[hash7(cv, tableBits)] - eLong.Cur, eLong.Prev = t, eLong.Cur - - // Do an long at i+1 - cv >>= 8 - t = tableEntry{offset: t.offset + 1} - eLong = &e.bTable[hash7(cv, tableBits)] - eLong.Cur, eLong.Prev = t, eLong.Cur - - // We only have enough bits for a short entry at i+2 - cv >>= 8 - t = tableEntry{offset: t.offset + 1} - e.table[hash4x64(cv, tableBits)] = t - - // Skip one - otherwise we risk hitting 's' - i += 4 - for ; i < s-1; i += hashEvery { - cv := load6432(src, i) - t := tableEntry{offset: i + e.cur} - t2 := tableEntry{offset: t.offset + 1} - eLong := &e.bTable[hash7(cv, tableBits)] - eLong.Cur, eLong.Prev = t, eLong.Cur - e.table[hash4u(uint32(cv>>8), tableBits)] = t2 - } - } - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-1 and at s. - x := load6432(src, s-1) - o := e.cur + s - 1 - prevHashS := hash4x64(x, tableBits) - prevHashL := hash7(x, tableBits) - e.table[prevHashS] = tableEntry{offset: o} - eLong := &e.bTable[prevHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: o}, eLong.Cur - cv = x >> 8 - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/level6.go b/backend/vendor/github.com/klauspost/compress/flate/level6.go deleted file mode 100644 index a52c80ea..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/level6.go +++ /dev/null @@ -1,282 +0,0 @@ -package flate - -import "fmt" - -type fastEncL6 struct { - fastGen - table [tableSize]tableEntry - bTable [tableSize]tableEntryPrev -} - -func (e *fastEncL6) Encode(dst *tokens, src []byte) { - const ( - inputMargin = 12 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - if debugDeflate && e.cur < 0 { - panic(fmt.Sprint("e.cur < 0: ", e.cur)) - } - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.bTable[:] { - e.bTable[i] = tableEntryPrev{} - } - e.cur = maxMatchOffset - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - maxMatchOffset - for i := range e.table[:] { - v := e.table[i].offset - if v <= minOff { - v = 0 - } else { - v = v - e.cur + maxMatchOffset - } - e.table[i].offset = v - } - for i := range e.bTable[:] { - v := e.bTable[i] - if v.Cur.offset <= minOff { - v.Cur.offset = 0 - v.Prev.offset = 0 - } else { - v.Cur.offset = v.Cur.offset - e.cur + maxMatchOffset - if v.Prev.offset <= minOff { - v.Prev.offset = 0 - } else { - v.Prev.offset = v.Prev.offset - e.cur + maxMatchOffset - } - } - e.bTable[i] = v - } - e.cur = maxMatchOffset - } - - s := e.addBlock(src) - - // This check isn't in the Snappy implementation, but there, the caller - // instead of the callee handles this case. - if len(src) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = uint16(len(src)) - return - } - - // Override src - src = e.hist - nextEmit := s - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int32(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load6432(src, s) - // Repeat MUST be > 1 and within range - repeat := int32(1) - for { - const skipLog = 7 - const doEvery = 1 - - nextS := s - var l int32 - var t int32 - for { - nextHashS := hash4x64(cv, tableBits) - nextHashL := hash7(cv, tableBits) - s = nextS - nextS = s + doEvery + (s-nextEmit)>>skipLog - if nextS > sLimit { - goto emitRemainder - } - // Fetch a short+long candidate - sCandidate := e.table[nextHashS] - lCandidate := e.bTable[nextHashL] - next := load6432(src, nextS) - entry := tableEntry{offset: s + e.cur} - e.table[nextHashS] = entry - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = entry, eLong.Cur - - // Calculate hashes of 'next' - nextHashS = hash4x64(next, tableBits) - nextHashL = hash7(next, tableBits) - - t = lCandidate.Cur.offset - e.cur - if s-t < maxMatchOffset { - if uint32(cv) == load3232(src, lCandidate.Cur.offset-e.cur) { - // Long candidate matches at least 4 bytes. - - // Store the next match - e.table[nextHashS] = tableEntry{offset: nextS + e.cur} - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: nextS + e.cur}, eLong.Cur - - // Check the previous long candidate as well. - t2 := lCandidate.Prev.offset - e.cur - if s-t2 < maxMatchOffset && uint32(cv) == load3232(src, lCandidate.Prev.offset-e.cur) { - l = e.matchlen(s+4, t+4, src) + 4 - ml1 := e.matchlen(s+4, t2+4, src) + 4 - if ml1 > l { - t = t2 - l = ml1 - break - } - } - break - } - // Current value did not match, but check if previous long value does. - t = lCandidate.Prev.offset - e.cur - if s-t < maxMatchOffset && uint32(cv) == load3232(src, lCandidate.Prev.offset-e.cur) { - // Store the next match - e.table[nextHashS] = tableEntry{offset: nextS + e.cur} - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: nextS + e.cur}, eLong.Cur - break - } - } - - t = sCandidate.offset - e.cur - if s-t < maxMatchOffset && uint32(cv) == load3232(src, sCandidate.offset-e.cur) { - // Found a 4 match... - l = e.matchlen(s+4, t+4, src) + 4 - - // Look up next long candidate (at nextS) - lCandidate = e.bTable[nextHashL] - - // Store the next match - e.table[nextHashS] = tableEntry{offset: nextS + e.cur} - eLong := &e.bTable[nextHashL] - eLong.Cur, eLong.Prev = tableEntry{offset: nextS + e.cur}, eLong.Cur - - // Check repeat at s + repOff - const repOff = 1 - t2 := s - repeat + repOff - if load3232(src, t2) == uint32(cv>>(8*repOff)) { - ml := e.matchlen(s+4+repOff, t2+4, src) + 4 - if ml > l { - t = t2 - l = ml - s += repOff - // Not worth checking more. - break - } - } - - // If the next long is a candidate, use that... - t2 = lCandidate.Cur.offset - e.cur - if nextS-t2 < maxMatchOffset { - if load3232(src, lCandidate.Cur.offset-e.cur) == uint32(next) { - ml := e.matchlen(nextS+4, t2+4, src) + 4 - if ml > l { - t = t2 - s = nextS - l = ml - // This is ok, but check previous as well. - } - } - // If the previous long is a candidate, use that... - t2 = lCandidate.Prev.offset - e.cur - if nextS-t2 < maxMatchOffset && load3232(src, lCandidate.Prev.offset-e.cur) == uint32(next) { - ml := e.matchlen(nextS+4, t2+4, src) + 4 - if ml > l { - t = t2 - s = nextS - l = ml - break - } - } - } - break - } - cv = next - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - - // Extend the 4-byte match as long as possible. - if l == 0 { - l = e.matchlenLong(s+4, t+4, src) + 4 - } else if l == maxMatchLength { - l += e.matchlenLong(s+l, t+l, src) - } - - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - if false { - if t >= s { - panic(fmt.Sprintln("s-t", s, t)) - } - if (s - t) > maxMatchOffset { - panic(fmt.Sprintln("mmo", s-t)) - } - if l < baseMatchLength { - panic("bml") - } - } - - dst.AddMatchLong(l, uint32(s-t-baseMatchOffset)) - repeat = s - t - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - - if s >= sLimit { - // Index after match end. - for i := nextS + 1; i < int32(len(src))-8; i += 2 { - cv := load6432(src, i) - e.table[hash4x64(cv, tableBits)] = tableEntry{offset: i + e.cur} - eLong := &e.bTable[hash7(cv, tableBits)] - eLong.Cur, eLong.Prev = tableEntry{offset: i + e.cur}, eLong.Cur - } - goto emitRemainder - } - - // Store every long hash in-between and every second short. - if true { - for i := nextS + 1; i < s-1; i += 2 { - cv := load6432(src, i) - t := tableEntry{offset: i + e.cur} - t2 := tableEntry{offset: t.offset + 1} - eLong := &e.bTable[hash7(cv, tableBits)] - eLong2 := &e.bTable[hash7(cv>>8, tableBits)] - e.table[hash4x64(cv, tableBits)] = t - eLong.Cur, eLong.Prev = t, eLong.Cur - eLong2.Cur, eLong2.Prev = t2, eLong2.Cur - } - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-1 and at s. - cv = load6432(src, s) - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/regmask_amd64.go b/backend/vendor/github.com/klauspost/compress/flate/regmask_amd64.go deleted file mode 100644 index 6ed28061..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/regmask_amd64.go +++ /dev/null @@ -1,37 +0,0 @@ -package flate - -const ( - // Masks for shifts with register sizes of the shift value. - // This can be used to work around the x86 design of shifting by mod register size. - // It can be used when a variable shift is always smaller than the register size. - - // reg8SizeMaskX - shift value is 8 bits, shifted is X - reg8SizeMask8 = 7 - reg8SizeMask16 = 15 - reg8SizeMask32 = 31 - reg8SizeMask64 = 63 - - // reg16SizeMaskX - shift value is 16 bits, shifted is X - reg16SizeMask8 = reg8SizeMask8 - reg16SizeMask16 = reg8SizeMask16 - reg16SizeMask32 = reg8SizeMask32 - reg16SizeMask64 = reg8SizeMask64 - - // reg32SizeMaskX - shift value is 32 bits, shifted is X - reg32SizeMask8 = reg8SizeMask8 - reg32SizeMask16 = reg8SizeMask16 - reg32SizeMask32 = reg8SizeMask32 - reg32SizeMask64 = reg8SizeMask64 - - // reg64SizeMaskX - shift value is 64 bits, shifted is X - reg64SizeMask8 = reg8SizeMask8 - reg64SizeMask16 = reg8SizeMask16 - reg64SizeMask32 = reg8SizeMask32 - reg64SizeMask64 = reg8SizeMask64 - - // regSizeMaskUintX - shift value is uint, shifted is X - regSizeMaskUint8 = reg8SizeMask8 - regSizeMaskUint16 = reg8SizeMask16 - regSizeMaskUint32 = reg8SizeMask32 - regSizeMaskUint64 = reg8SizeMask64 -) diff --git a/backend/vendor/github.com/klauspost/compress/flate/regmask_other.go b/backend/vendor/github.com/klauspost/compress/flate/regmask_other.go deleted file mode 100644 index 1b7a2cbd..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/regmask_other.go +++ /dev/null @@ -1,40 +0,0 @@ -//go:build !amd64 -// +build !amd64 - -package flate - -const ( - // Masks for shifts with register sizes of the shift value. - // This can be used to work around the x86 design of shifting by mod register size. - // It can be used when a variable shift is always smaller than the register size. - - // reg8SizeMaskX - shift value is 8 bits, shifted is X - reg8SizeMask8 = 0xff - reg8SizeMask16 = 0xff - reg8SizeMask32 = 0xff - reg8SizeMask64 = 0xff - - // reg16SizeMaskX - shift value is 16 bits, shifted is X - reg16SizeMask8 = 0xffff - reg16SizeMask16 = 0xffff - reg16SizeMask32 = 0xffff - reg16SizeMask64 = 0xffff - - // reg32SizeMaskX - shift value is 32 bits, shifted is X - reg32SizeMask8 = 0xffffffff - reg32SizeMask16 = 0xffffffff - reg32SizeMask32 = 0xffffffff - reg32SizeMask64 = 0xffffffff - - // reg64SizeMaskX - shift value is 64 bits, shifted is X - reg64SizeMask8 = 0xffffffffffffffff - reg64SizeMask16 = 0xffffffffffffffff - reg64SizeMask32 = 0xffffffffffffffff - reg64SizeMask64 = 0xffffffffffffffff - - // regSizeMaskUintX - shift value is uint, shifted is X - regSizeMaskUint8 = ^uint(0) - regSizeMaskUint16 = ^uint(0) - regSizeMaskUint32 = ^uint(0) - regSizeMaskUint64 = ^uint(0) -) diff --git a/backend/vendor/github.com/klauspost/compress/flate/stateless.go b/backend/vendor/github.com/klauspost/compress/flate/stateless.go deleted file mode 100644 index 53e89912..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/stateless.go +++ /dev/null @@ -1,297 +0,0 @@ -package flate - -import ( - "io" - "math" - "sync" -) - -const ( - maxStatelessBlock = math.MaxInt16 - // dictionary will be taken from maxStatelessBlock, so limit it. - maxStatelessDict = 8 << 10 - - slTableBits = 13 - slTableSize = 1 << slTableBits - slTableShift = 32 - slTableBits -) - -type statelessWriter struct { - dst io.Writer - closed bool -} - -func (s *statelessWriter) Close() error { - if s.closed { - return nil - } - s.closed = true - // Emit EOF block - return StatelessDeflate(s.dst, nil, true, nil) -} - -func (s *statelessWriter) Write(p []byte) (n int, err error) { - err = StatelessDeflate(s.dst, p, false, nil) - if err != nil { - return 0, err - } - return len(p), nil -} - -func (s *statelessWriter) Reset(w io.Writer) { - s.dst = w - s.closed = false -} - -// NewStatelessWriter will do compression but without maintaining any state -// between Write calls. -// There will be no memory kept between Write calls, -// but compression and speed will be suboptimal. -// Because of this, the size of actual Write calls will affect output size. -func NewStatelessWriter(dst io.Writer) io.WriteCloser { - return &statelessWriter{dst: dst} -} - -// bitWriterPool contains bit writers that can be reused. -var bitWriterPool = sync.Pool{ - New: func() interface{} { - return newHuffmanBitWriter(nil) - }, -} - -// StatelessDeflate allows to compress directly to a Writer without retaining state. -// When returning everything will be flushed. -// Up to 8KB of an optional dictionary can be given which is presumed to presumed to precede the block. -// Longer dictionaries will be truncated and will still produce valid output. -// Sending nil dictionary is perfectly fine. -func StatelessDeflate(out io.Writer, in []byte, eof bool, dict []byte) error { - var dst tokens - bw := bitWriterPool.Get().(*huffmanBitWriter) - bw.reset(out) - defer func() { - // don't keep a reference to our output - bw.reset(nil) - bitWriterPool.Put(bw) - }() - if eof && len(in) == 0 { - // Just write an EOF block. - // Could be faster... - bw.writeStoredHeader(0, true) - bw.flush() - return bw.err - } - - // Truncate dict - if len(dict) > maxStatelessDict { - dict = dict[len(dict)-maxStatelessDict:] - } - - for len(in) > 0 { - todo := in - if len(todo) > maxStatelessBlock-len(dict) { - todo = todo[:maxStatelessBlock-len(dict)] - } - in = in[len(todo):] - uncompressed := todo - if len(dict) > 0 { - // combine dict and source - bufLen := len(todo) + len(dict) - combined := make([]byte, bufLen) - copy(combined, dict) - copy(combined[len(dict):], todo) - todo = combined - } - // Compress - statelessEnc(&dst, todo, int16(len(dict))) - isEof := eof && len(in) == 0 - - if dst.n == 0 { - bw.writeStoredHeader(len(uncompressed), isEof) - if bw.err != nil { - return bw.err - } - bw.writeBytes(uncompressed) - } else if int(dst.n) > len(uncompressed)-len(uncompressed)>>4 { - // If we removed less than 1/16th, huffman compress the block. - bw.writeBlockHuff(isEof, uncompressed, len(in) == 0) - } else { - bw.writeBlockDynamic(&dst, isEof, uncompressed, len(in) == 0) - } - if len(in) > 0 { - // Retain a dict if we have more - dict = todo[len(todo)-maxStatelessDict:] - dst.Reset() - } - if bw.err != nil { - return bw.err - } - } - if !eof { - // Align, only a stored block can do that. - bw.writeStoredHeader(0, false) - } - bw.flush() - return bw.err -} - -func hashSL(u uint32) uint32 { - return (u * 0x1e35a7bd) >> slTableShift -} - -func load3216(b []byte, i int16) uint32 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:4] - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func load6416(b []byte, i int16) uint64 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:8] - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -func statelessEnc(dst *tokens, src []byte, startAt int16) { - const ( - inputMargin = 12 - 1 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - - type tableEntry struct { - offset int16 - } - - var table [slTableSize]tableEntry - - // This check isn't in the Snappy implementation, but there, the caller - // instead of the callee handles this case. - if len(src)-int(startAt) < minNonLiteralBlockSize { - // We do not fill the token table. - // This will be picked up by caller. - dst.n = 0 - return - } - // Index until startAt - if startAt > 0 { - cv := load3232(src, 0) - for i := int16(0); i < startAt; i++ { - table[hashSL(cv)] = tableEntry{offset: i} - cv = (cv >> 8) | (uint32(src[i+4]) << 24) - } - } - - s := startAt + 1 - nextEmit := startAt - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := int16(len(src) - inputMargin) - - // nextEmit is where in src the next emitLiteral should start from. - cv := load3216(src, s) - - for { - const skipLog = 5 - const doEvery = 2 - - nextS := s - var candidate tableEntry - for { - nextHash := hashSL(cv) - candidate = table[nextHash] - nextS = s + doEvery + (s-nextEmit)>>skipLog - if nextS > sLimit || nextS <= 0 { - goto emitRemainder - } - - now := load6416(src, nextS) - table[nextHash] = tableEntry{offset: s} - nextHash = hashSL(uint32(now)) - - if cv == load3216(src, candidate.offset) { - table[nextHash] = tableEntry{offset: nextS} - break - } - - // Do one right away... - cv = uint32(now) - s = nextS - nextS++ - candidate = table[nextHash] - now >>= 8 - table[nextHash] = tableEntry{offset: s} - - if cv == load3216(src, candidate.offset) { - table[nextHash] = tableEntry{offset: nextS} - break - } - cv = uint32(now) - s = nextS - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - for { - // Invariant: we have a 4-byte match at s, and no need to emit any - // literal bytes prior to s. - - // Extend the 4-byte match as long as possible. - t := candidate.offset - l := int16(matchLen(src[s+4:], src[t+4:]) + 4) - - // Extend backwards - for t > 0 && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - if nextEmit < s { - emitLiteral(dst, src[nextEmit:s]) - } - - // Save the match found - dst.AddMatchLong(int32(l), uint32(s-t-baseMatchOffset)) - s += l - nextEmit = s - if nextS >= s { - s = nextS + 1 - } - if s >= sLimit { - goto emitRemainder - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-2 and at s. If - // another emitCopy is not our next move, also calculate nextHash - // at s+1. At least on GOARCH=amd64, these three hash calculations - // are faster as one load64 call (with some shifts) instead of - // three load32 calls. - x := load6416(src, s-2) - o := s - 2 - prevHash := hashSL(uint32(x)) - table[prevHash] = tableEntry{offset: o} - x >>= 16 - currHash := hashSL(uint32(x)) - candidate = table[currHash] - table[currHash] = tableEntry{offset: o + 2} - - if uint32(x) != load3216(src, candidate.offset) { - cv = uint32(x >> 8) - s++ - break - } - } - } - -emitRemainder: - if int(nextEmit) < len(src) { - // If nothing was added, don't encode literals. - if dst.n == 0 { - return - } - emitLiteral(dst, src[nextEmit:]) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/flate/token.go b/backend/vendor/github.com/klauspost/compress/flate/token.go deleted file mode 100644 index f9abf606..00000000 --- a/backend/vendor/github.com/klauspost/compress/flate/token.go +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package flate - -import ( - "bytes" - "encoding/binary" - "fmt" - "io" - "math" -) - -const ( - // 2 bits: type 0 = literal 1=EOF 2=Match 3=Unused - // 8 bits: xlength = length - MIN_MATCH_LENGTH - // 22 bits xoffset = offset - MIN_OFFSET_SIZE, or literal - lengthShift = 22 - offsetMask = 1<maxnumlit - offHist [32]uint16 // offset codes - litHist [256]uint16 // codes 0->255 - n uint16 // Must be able to contain maxStoreBlockSize - tokens [maxStoreBlockSize + 1]token -} - -func (t *tokens) Reset() { - if t.n == 0 { - return - } - t.n = 0 - t.nLits = 0 - for i := range t.litHist[:] { - t.litHist[i] = 0 - } - for i := range t.extraHist[:] { - t.extraHist[i] = 0 - } - for i := range t.offHist[:] { - t.offHist[i] = 0 - } -} - -func (t *tokens) Fill() { - if t.n == 0 { - return - } - for i, v := range t.litHist[:] { - if v == 0 { - t.litHist[i] = 1 - t.nLits++ - } - } - for i, v := range t.extraHist[:literalCount-256] { - if v == 0 { - t.nLits++ - t.extraHist[i] = 1 - } - } - for i, v := range t.offHist[:offsetCodeCount] { - if v == 0 { - t.offHist[i] = 1 - } - } -} - -func indexTokens(in []token) tokens { - var t tokens - t.indexTokens(in) - return t -} - -func (t *tokens) indexTokens(in []token) { - t.Reset() - for _, tok := range in { - if tok < matchType { - t.AddLiteral(tok.literal()) - continue - } - t.AddMatch(uint32(tok.length()), tok.offset()) - } -} - -// emitLiteral writes a literal chunk and returns the number of bytes written. -func emitLiteral(dst *tokens, lit []byte) { - ol := int(dst.n) - for i, v := range lit { - dst.tokens[(i+ol)&maxStoreBlockSize] = token(v) - dst.litHist[v]++ - } - dst.n += uint16(len(lit)) - dst.nLits += len(lit) -} - -func (t *tokens) AddLiteral(lit byte) { - t.tokens[t.n] = token(lit) - t.litHist[lit]++ - t.n++ - t.nLits++ -} - -// from https://stackoverflow.com/a/28730362 -func mFastLog2(val float32) float32 { - ux := int32(math.Float32bits(val)) - log2 := (float32)(((ux >> 23) & 255) - 128) - ux &= -0x7f800001 - ux += 127 << 23 - uval := math.Float32frombits(uint32(ux)) - log2 += ((-0.34484843)*uval+2.02466578)*uval - 0.67487759 - return log2 -} - -// EstimatedBits will return an minimum size estimated by an *optimal* -// compression of the block. -// The size of the block -func (t *tokens) EstimatedBits() int { - shannon := float32(0) - bits := int(0) - nMatches := 0 - if t.nLits > 0 { - invTotal := 1.0 / float32(t.nLits) - for _, v := range t.litHist[:] { - if v > 0 { - n := float32(v) - shannon += -mFastLog2(n*invTotal) * n - } - } - // Just add 15 for EOB - shannon += 15 - for i, v := range t.extraHist[1 : literalCount-256] { - if v > 0 { - n := float32(v) - shannon += -mFastLog2(n*invTotal) * n - bits += int(lengthExtraBits[i&31]) * int(v) - nMatches += int(v) - } - } - } - if nMatches > 0 { - invTotal := 1.0 / float32(nMatches) - for i, v := range t.offHist[:offsetCodeCount] { - if v > 0 { - n := float32(v) - shannon += -mFastLog2(n*invTotal) * n - bits += int(offsetExtraBits[i&31]) * int(v) - } - } - } - return int(shannon) + bits -} - -// AddMatch adds a match to the tokens. -// This function is very sensitive to inlining and right on the border. -func (t *tokens) AddMatch(xlength uint32, xoffset uint32) { - if debugDeflate { - if xlength >= maxMatchLength+baseMatchLength { - panic(fmt.Errorf("invalid length: %v", xlength)) - } - if xoffset >= maxMatchOffset+baseMatchOffset { - panic(fmt.Errorf("invalid offset: %v", xoffset)) - } - } - t.nLits++ - lengthCode := lengthCodes1[uint8(xlength)] & 31 - t.tokens[t.n] = token(matchType | xlength<= maxMatchOffset+baseMatchOffset { - panic(fmt.Errorf("invalid offset: %v", xoffset)) - } - } - oc := offsetCode(xoffset) & 31 - for xlength > 0 { - xl := xlength - if xl > 258 { - // We need to have at least baseMatchLength left over for next loop. - xl = 258 - baseMatchLength - } - xlength -= xl - xl -= 3 - t.nLits++ - lengthCode := lengthCodes1[uint8(xl)] & 31 - t.tokens[t.n] = token(matchType | uint32(xl)<> lengthShift) } - -// The code is never more than 8 bits, but is returned as uint32 for convenience. -func lengthCode(len uint8) uint32 { return uint32(lengthCodes[len]) } - -// Returns the offset code corresponding to a specific offset -func offsetCode(off uint32) uint32 { - if false { - if off < uint32(len(offsetCodes)) { - return offsetCodes[off&255] - } else if off>>7 < uint32(len(offsetCodes)) { - return offsetCodes[(off>>7)&255] + 14 - } else { - return offsetCodes[(off>>14)&255] + 28 - } - } - if off < uint32(len(offsetCodes)) { - return offsetCodes[uint8(off)] - } - return offsetCodes14[uint8(off>>7)] -} diff --git a/backend/vendor/github.com/klauspost/compress/fse/README.md b/backend/vendor/github.com/klauspost/compress/fse/README.md deleted file mode 100644 index ea7324da..00000000 --- a/backend/vendor/github.com/klauspost/compress/fse/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# Finite State Entropy - -This package provides Finite State Entropy encoding and decoding. - -Finite State Entropy (also referenced as [tANS](https://en.wikipedia.org/wiki/Asymmetric_numeral_systems#tANS)) -encoding provides a fast near-optimal symbol encoding/decoding -for byte blocks as implemented in [zstandard](https://github.com/facebook/zstd). - -This can be used for compressing input with a lot of similar input values to the smallest number of bytes. -This does not perform any multi-byte [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) as LZ coders, -but it can be used as a secondary step to compressors (like Snappy) that does not do entropy encoding. - -* [Godoc documentation](https://godoc.org/github.com/klauspost/compress/fse) - -## News - - * Feb 2018: First implementation released. Consider this beta software for now. - -# Usage - -This package provides a low level interface that allows to compress single independent blocks. - -Each block is separate, and there is no built in integrity checks. -This means that the caller should keep track of block sizes and also do checksums if needed. - -Compressing a block is done via the [`Compress`](https://godoc.org/github.com/klauspost/compress/fse#Compress) function. -You must provide input and will receive the output and maybe an error. - -These error values can be returned: - -| Error | Description | -|---------------------|-----------------------------------------------------------------------------| -| `` | Everything ok, output is returned | -| `ErrIncompressible` | Returned when input is judged to be too hard to compress | -| `ErrUseRLE` | Returned from the compressor when the input is a single byte value repeated | -| `(error)` | An internal error occurred. | - -As can be seen above there are errors that will be returned even under normal operation so it is important to handle these. - -To reduce allocations you can provide a [`Scratch`](https://godoc.org/github.com/klauspost/compress/fse#Scratch) object -that can be re-used for successive calls. Both compression and decompression accepts a `Scratch` object, and the same -object can be used for both. - -Be aware, that when re-using a `Scratch` object that the *output* buffer is also re-used, so if you are still using this -you must set the `Out` field in the scratch to nil. The same buffer is used for compression and decompression output. - -Decompressing is done by calling the [`Decompress`](https://godoc.org/github.com/klauspost/compress/fse#Decompress) function. -You must provide the output from the compression stage, at exactly the size you got back. If you receive an error back -your input was likely corrupted. - -It is important to note that a successful decoding does *not* mean your output matches your original input. -There are no integrity checks, so relying on errors from the decompressor does not assure your data is valid. - -For more detailed usage, see examples in the [godoc documentation](https://godoc.org/github.com/klauspost/compress/fse#pkg-examples). - -# Performance - -A lot of factors are affecting speed. Block sizes and compressibility of the material are primary factors. -All compression functions are currently only running on the calling goroutine so only one core will be used per block. - -The compressor is significantly faster if symbols are kept as small as possible. The highest byte value of the input -is used to reduce some of the processing, so if all your input is above byte value 64 for instance, it may be -beneficial to transpose all your input values down by 64. - -With moderate block sizes around 64k speed are typically 200MB/s per core for compression and -around 300MB/s decompression speed. - -The same hardware typically does Huffman (deflate) encoding at 125MB/s and decompression at 100MB/s. - -# Plans - -At one point, more internals will be exposed to facilitate more "expert" usage of the components. - -A streaming interface is also likely to be implemented. Likely compatible with [FSE stream format](https://github.com/Cyan4973/FiniteStateEntropy/blob/dev/programs/fileio.c#L261). - -# Contributing - -Contributions are always welcome. Be aware that adding public functions will require good justification and breaking -changes will likely not be accepted. If in doubt open an issue before writing the PR. \ No newline at end of file diff --git a/backend/vendor/github.com/klauspost/compress/fse/bitreader.go b/backend/vendor/github.com/klauspost/compress/fse/bitreader.go deleted file mode 100644 index f65eb390..00000000 --- a/backend/vendor/github.com/klauspost/compress/fse/bitreader.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package fse - -import ( - "encoding/binary" - "errors" - "io" -) - -// bitReader reads a bitstream in reverse. -// The last set bit indicates the start of the stream and is used -// for aligning the input. -type bitReader struct { - in []byte - off uint // next byte to read is at in[off - 1] - value uint64 - bitsRead uint8 -} - -// init initializes and resets the bit reader. -func (b *bitReader) init(in []byte) error { - if len(in) < 1 { - return errors.New("corrupt stream: too short") - } - b.in = in - b.off = uint(len(in)) - // The highest bit of the last byte indicates where to start - v := in[len(in)-1] - if v == 0 { - return errors.New("corrupt stream, did not find end of stream") - } - b.bitsRead = 64 - b.value = 0 - if len(in) >= 8 { - b.fillFastStart() - } else { - b.fill() - b.fill() - } - b.bitsRead += 8 - uint8(highBits(uint32(v))) - return nil -} - -// getBits will return n bits. n can be 0. -func (b *bitReader) getBits(n uint8) uint16 { - if n == 0 || b.bitsRead >= 64 { - return 0 - } - return b.getBitsFast(n) -} - -// getBitsFast requires that at least one bit is requested every time. -// There are no checks if the buffer is filled. -func (b *bitReader) getBitsFast(n uint8) uint16 { - const regMask = 64 - 1 - v := uint16((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) - b.bitsRead += n - return v -} - -// fillFast() will make sure at least 32 bits are available. -// There must be at least 4 bytes available. -func (b *bitReader) fillFast() { - if b.bitsRead < 32 { - return - } - // 2 bounds checks. - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) - b.bitsRead -= 32 - b.off -= 4 -} - -// fill() will make sure at least 32 bits are available. -func (b *bitReader) fill() { - if b.bitsRead < 32 { - return - } - if b.off > 4 { - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) - b.bitsRead -= 32 - b.off -= 4 - return - } - for b.off > 0 { - b.value = (b.value << 8) | uint64(b.in[b.off-1]) - b.bitsRead -= 8 - b.off-- - } -} - -// fillFastStart() assumes the bitreader is empty and there is at least 8 bytes to read. -func (b *bitReader) fillFastStart() { - // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) - b.bitsRead = 0 - b.off -= 8 -} - -// finished returns true if all bits have been read from the bit stream. -func (b *bitReader) finished() bool { - return b.bitsRead >= 64 && b.off == 0 -} - -// close the bitstream and returns an error if out-of-buffer reads occurred. -func (b *bitReader) close() error { - // Release reference. - b.in = nil - if b.bitsRead > 64 { - return io.ErrUnexpectedEOF - } - return nil -} diff --git a/backend/vendor/github.com/klauspost/compress/fse/bitwriter.go b/backend/vendor/github.com/klauspost/compress/fse/bitwriter.go deleted file mode 100644 index 43e46361..00000000 --- a/backend/vendor/github.com/klauspost/compress/fse/bitwriter.go +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package fse - -import "fmt" - -// bitWriter will write bits. -// First bit will be LSB of the first byte of output. -type bitWriter struct { - bitContainer uint64 - nBits uint8 - out []byte -} - -// bitMask16 is bitmasks. Has extra to avoid bounds check. -var bitMask16 = [32]uint16{ - 0, 1, 3, 7, 0xF, 0x1F, - 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, - 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF} /* up to 16 bits */ - -// addBits16NC will add up to 16 bits. -// It will not check if there is space for them, -// so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits16NC(value uint16, bits uint8) { - b.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63) - b.nBits += bits -} - -// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated. -// It will not check if there is space for them, so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits16Clean(value uint16, bits uint8) { - b.bitContainer |= uint64(value) << (b.nBits & 63) - b.nBits += bits -} - -// addBits16ZeroNC will add up to 16 bits. -// It will not check if there is space for them, -// so the caller must ensure that it has flushed recently. -// This is fastest if bits can be zero. -func (b *bitWriter) addBits16ZeroNC(value uint16, bits uint8) { - if bits == 0 { - return - } - value <<= (16 - bits) & 15 - value >>= (16 - bits) & 15 - b.bitContainer |= uint64(value) << (b.nBits & 63) - b.nBits += bits -} - -// flush will flush all pending full bytes. -// There will be at least 56 bits available for writing when this has been called. -// Using flush32 is faster, but leaves less space for writing. -func (b *bitWriter) flush() { - v := b.nBits >> 3 - switch v { - case 0: - case 1: - b.out = append(b.out, - byte(b.bitContainer), - ) - case 2: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - ) - case 3: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - ) - case 4: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - ) - case 5: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - ) - case 6: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - ) - case 7: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - byte(b.bitContainer>>48), - ) - case 8: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - byte(b.bitContainer>>48), - byte(b.bitContainer>>56), - ) - default: - panic(fmt.Errorf("bits (%d) > 64", b.nBits)) - } - b.bitContainer >>= v << 3 - b.nBits &= 7 -} - -// flush32 will flush out, so there are at least 32 bits available for writing. -func (b *bitWriter) flush32() { - if b.nBits < 32 { - return - } - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24)) - b.nBits -= 32 - b.bitContainer >>= 32 -} - -// flushAlign will flush remaining full bytes and align to next byte boundary. -func (b *bitWriter) flushAlign() { - nbBytes := (b.nBits + 7) >> 3 - for i := uint8(0); i < nbBytes; i++ { - b.out = append(b.out, byte(b.bitContainer>>(i*8))) - } - b.nBits = 0 - b.bitContainer = 0 -} - -// close will write the alignment bit and write the final byte(s) -// to the output. -func (b *bitWriter) close() error { - // End mark - b.addBits16Clean(1, 1) - // flush until next byte. - b.flushAlign() - return nil -} - -// reset and continue writing by appending to out. -func (b *bitWriter) reset(out []byte) { - b.bitContainer = 0 - b.nBits = 0 - b.out = out -} diff --git a/backend/vendor/github.com/klauspost/compress/fse/bytereader.go b/backend/vendor/github.com/klauspost/compress/fse/bytereader.go deleted file mode 100644 index abade2d6..00000000 --- a/backend/vendor/github.com/klauspost/compress/fse/bytereader.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package fse - -// byteReader provides a byte reader that reads -// little endian values from a byte stream. -// The input stream is manually advanced. -// The reader performs no bounds checks. -type byteReader struct { - b []byte - off int -} - -// init will initialize the reader and set the input. -func (b *byteReader) init(in []byte) { - b.b = in - b.off = 0 -} - -// advance the stream b n bytes. -func (b *byteReader) advance(n uint) { - b.off += int(n) -} - -// Uint32 returns a little endian uint32 starting at current offset. -func (b byteReader) Uint32() uint32 { - b2 := b.b[b.off:] - b2 = b2[:4] - v3 := uint32(b2[3]) - v2 := uint32(b2[2]) - v1 := uint32(b2[1]) - v0 := uint32(b2[0]) - return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) -} - -// unread returns the unread portion of the input. -func (b byteReader) unread() []byte { - return b.b[b.off:] -} - -// remain will return the number of bytes remaining. -func (b byteReader) remain() int { - return len(b.b) - b.off -} diff --git a/backend/vendor/github.com/klauspost/compress/fse/compress.go b/backend/vendor/github.com/klauspost/compress/fse/compress.go deleted file mode 100644 index b69237c9..00000000 --- a/backend/vendor/github.com/klauspost/compress/fse/compress.go +++ /dev/null @@ -1,684 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package fse - -import ( - "errors" - "fmt" -) - -// Compress the input bytes. Input must be < 2GB. -// Provide a Scratch buffer to avoid memory allocations. -// Note that the output is also kept in the scratch buffer. -// If input is too hard to compress, ErrIncompressible is returned. -// If input is a single byte value repeated ErrUseRLE is returned. -func Compress(in []byte, s *Scratch) ([]byte, error) { - if len(in) <= 1 { - return nil, ErrIncompressible - } - if len(in) > (2<<30)-1 { - return nil, errors.New("input too big, must be < 2GB") - } - s, err := s.prepare(in) - if err != nil { - return nil, err - } - - // Create histogram, if none was provided. - maxCount := s.maxCount - if maxCount == 0 { - maxCount = s.countSimple(in) - } - // Reset for next run. - s.clearCount = true - s.maxCount = 0 - if maxCount == len(in) { - // One symbol, use RLE - return nil, ErrUseRLE - } - if maxCount == 1 || maxCount < (len(in)>>7) { - // Each symbol present maximum once or too well distributed. - return nil, ErrIncompressible - } - s.optimalTableLog() - err = s.normalizeCount() - if err != nil { - return nil, err - } - err = s.writeCount() - if err != nil { - return nil, err - } - - if false { - err = s.validateNorm() - if err != nil { - return nil, err - } - } - - err = s.buildCTable() - if err != nil { - return nil, err - } - err = s.compress(in) - if err != nil { - return nil, err - } - s.Out = s.bw.out - // Check if we compressed. - if len(s.Out) >= len(in) { - return nil, ErrIncompressible - } - return s.Out, nil -} - -// cState contains the compression state of a stream. -type cState struct { - bw *bitWriter - stateTable []uint16 - state uint16 -} - -// init will initialize the compression state to the first symbol of the stream. -func (c *cState) init(bw *bitWriter, ct *cTable, tableLog uint8, first symbolTransform) { - c.bw = bw - c.stateTable = ct.stateTable - - nbBitsOut := (first.deltaNbBits + (1 << 15)) >> 16 - im := int32((nbBitsOut << 16) - first.deltaNbBits) - lu := (im >> nbBitsOut) + first.deltaFindState - c.state = c.stateTable[lu] - return -} - -// encode the output symbol provided and write it to the bitstream. -func (c *cState) encode(symbolTT symbolTransform) { - nbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16 - dstState := int32(c.state>>(nbBitsOut&15)) + symbolTT.deltaFindState - c.bw.addBits16NC(c.state, uint8(nbBitsOut)) - c.state = c.stateTable[dstState] -} - -// encode the output symbol provided and write it to the bitstream. -func (c *cState) encodeZero(symbolTT symbolTransform) { - nbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16 - dstState := int32(c.state>>(nbBitsOut&15)) + symbolTT.deltaFindState - c.bw.addBits16ZeroNC(c.state, uint8(nbBitsOut)) - c.state = c.stateTable[dstState] -} - -// flush will write the tablelog to the output and flush the remaining full bytes. -func (c *cState) flush(tableLog uint8) { - c.bw.flush32() - c.bw.addBits16NC(c.state, tableLog) - c.bw.flush() -} - -// compress is the main compression loop that will encode the input from the last byte to the first. -func (s *Scratch) compress(src []byte) error { - if len(src) <= 2 { - return errors.New("compress: src too small") - } - tt := s.ct.symbolTT[:256] - s.bw.reset(s.Out) - - // Our two states each encodes every second byte. - // Last byte encoded (first byte decoded) will always be encoded by c1. - var c1, c2 cState - - // Encode so remaining size is divisible by 4. - ip := len(src) - if ip&1 == 1 { - c1.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-1]]) - c2.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-2]]) - c1.encodeZero(tt[src[ip-3]]) - ip -= 3 - } else { - c2.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-1]]) - c1.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-2]]) - ip -= 2 - } - if ip&2 != 0 { - c2.encodeZero(tt[src[ip-1]]) - c1.encodeZero(tt[src[ip-2]]) - ip -= 2 - } - - // Main compression loop. - switch { - case !s.zeroBits && s.actualTableLog <= 8: - // We can encode 4 symbols without requiring a flush. - // We do not need to check if any output is 0 bits. - for ip >= 4 { - s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] - c2.encode(tt[v0]) - c1.encode(tt[v1]) - c2.encode(tt[v2]) - c1.encode(tt[v3]) - ip -= 4 - } - case !s.zeroBits: - // We do not need to check if any output is 0 bits. - for ip >= 4 { - s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] - c2.encode(tt[v0]) - c1.encode(tt[v1]) - s.bw.flush32() - c2.encode(tt[v2]) - c1.encode(tt[v3]) - ip -= 4 - } - case s.actualTableLog <= 8: - // We can encode 4 symbols without requiring a flush - for ip >= 4 { - s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] - c2.encodeZero(tt[v0]) - c1.encodeZero(tt[v1]) - c2.encodeZero(tt[v2]) - c1.encodeZero(tt[v3]) - ip -= 4 - } - default: - for ip >= 4 { - s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] - c2.encodeZero(tt[v0]) - c1.encodeZero(tt[v1]) - s.bw.flush32() - c2.encodeZero(tt[v2]) - c1.encodeZero(tt[v3]) - ip -= 4 - } - } - - // Flush final state. - // Used to initialize state when decoding. - c2.flush(s.actualTableLog) - c1.flush(s.actualTableLog) - - return s.bw.close() -} - -// writeCount will write the normalized histogram count to header. -// This is read back by readNCount. -func (s *Scratch) writeCount() error { - var ( - tableLog = s.actualTableLog - tableSize = 1 << tableLog - previous0 bool - charnum uint16 - - maxHeaderSize = ((int(s.symbolLen) * int(tableLog)) >> 3) + 3 - - // Write Table Size - bitStream = uint32(tableLog - minTablelog) - bitCount = uint(4) - remaining = int16(tableSize + 1) /* +1 for extra accuracy */ - threshold = int16(tableSize) - nbBits = uint(tableLog + 1) - ) - if cap(s.Out) < maxHeaderSize { - s.Out = make([]byte, 0, s.br.remain()+maxHeaderSize) - } - outP := uint(0) - out := s.Out[:maxHeaderSize] - - // stops at 1 - for remaining > 1 { - if previous0 { - start := charnum - for s.norm[charnum] == 0 { - charnum++ - } - for charnum >= start+24 { - start += 24 - bitStream += uint32(0xFFFF) << bitCount - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += 2 - bitStream >>= 16 - } - for charnum >= start+3 { - start += 3 - bitStream += 3 << bitCount - bitCount += 2 - } - bitStream += uint32(charnum-start) << bitCount - bitCount += 2 - if bitCount > 16 { - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += 2 - bitStream >>= 16 - bitCount -= 16 - } - } - - count := s.norm[charnum] - charnum++ - max := (2*threshold - 1) - remaining - if count < 0 { - remaining += count - } else { - remaining -= count - } - count++ // +1 for extra accuracy - if count >= threshold { - count += max // [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ - } - bitStream += uint32(count) << bitCount - bitCount += nbBits - if count < max { - bitCount-- - } - - previous0 = count == 1 - if remaining < 1 { - return errors.New("internal error: remaining<1") - } - for remaining < threshold { - nbBits-- - threshold >>= 1 - } - - if bitCount > 16 { - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += 2 - bitStream >>= 16 - bitCount -= 16 - } - } - - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += (bitCount + 7) / 8 - - if uint16(charnum) > s.symbolLen { - return errors.New("internal error: charnum > s.symbolLen") - } - s.Out = out[:outP] - return nil -} - -// symbolTransform contains the state transform for a symbol. -type symbolTransform struct { - deltaFindState int32 - deltaNbBits uint32 -} - -// String prints values as a human readable string. -func (s symbolTransform) String() string { - return fmt.Sprintf("dnbits: %08x, fs:%d", s.deltaNbBits, s.deltaFindState) -} - -// cTable contains tables used for compression. -type cTable struct { - tableSymbol []byte - stateTable []uint16 - symbolTT []symbolTransform -} - -// allocCtable will allocate tables needed for compression. -// If existing tables a re big enough, they are simply re-used. -func (s *Scratch) allocCtable() { - tableSize := 1 << s.actualTableLog - // get tableSymbol that is big enough. - if cap(s.ct.tableSymbol) < int(tableSize) { - s.ct.tableSymbol = make([]byte, tableSize) - } - s.ct.tableSymbol = s.ct.tableSymbol[:tableSize] - - ctSize := tableSize - if cap(s.ct.stateTable) < ctSize { - s.ct.stateTable = make([]uint16, ctSize) - } - s.ct.stateTable = s.ct.stateTable[:ctSize] - - if cap(s.ct.symbolTT) < 256 { - s.ct.symbolTT = make([]symbolTransform, 256) - } - s.ct.symbolTT = s.ct.symbolTT[:256] -} - -// buildCTable will populate the compression table so it is ready to be used. -func (s *Scratch) buildCTable() error { - tableSize := uint32(1 << s.actualTableLog) - highThreshold := tableSize - 1 - var cumul [maxSymbolValue + 2]int16 - - s.allocCtable() - tableSymbol := s.ct.tableSymbol[:tableSize] - // symbol start positions - { - cumul[0] = 0 - for ui, v := range s.norm[:s.symbolLen-1] { - u := byte(ui) // one less than reference - if v == -1 { - // Low proba symbol - cumul[u+1] = cumul[u] + 1 - tableSymbol[highThreshold] = u - highThreshold-- - } else { - cumul[u+1] = cumul[u] + v - } - } - // Encode last symbol separately to avoid overflowing u - u := int(s.symbolLen - 1) - v := s.norm[s.symbolLen-1] - if v == -1 { - // Low proba symbol - cumul[u+1] = cumul[u] + 1 - tableSymbol[highThreshold] = byte(u) - highThreshold-- - } else { - cumul[u+1] = cumul[u] + v - } - if uint32(cumul[s.symbolLen]) != tableSize { - return fmt.Errorf("internal error: expected cumul[s.symbolLen] (%d) == tableSize (%d)", cumul[s.symbolLen], tableSize) - } - cumul[s.symbolLen] = int16(tableSize) + 1 - } - // Spread symbols - s.zeroBits = false - { - step := tableStep(tableSize) - tableMask := tableSize - 1 - var position uint32 - // if any symbol > largeLimit, we may have 0 bits output. - largeLimit := int16(1 << (s.actualTableLog - 1)) - for ui, v := range s.norm[:s.symbolLen] { - symbol := byte(ui) - if v > largeLimit { - s.zeroBits = true - } - for nbOccurrences := int16(0); nbOccurrences < v; nbOccurrences++ { - tableSymbol[position] = symbol - position = (position + step) & tableMask - for position > highThreshold { - position = (position + step) & tableMask - } /* Low proba area */ - } - } - - // Check if we have gone through all positions - if position != 0 { - return errors.New("position!=0") - } - } - - // Build table - table := s.ct.stateTable - { - tsi := int(tableSize) - for u, v := range tableSymbol { - // TableU16 : sorted by symbol order; gives next state value - table[cumul[v]] = uint16(tsi + u) - cumul[v]++ - } - } - - // Build Symbol Transformation Table - { - total := int16(0) - symbolTT := s.ct.symbolTT[:s.symbolLen] - tableLog := s.actualTableLog - tl := (uint32(tableLog) << 16) - (1 << tableLog) - for i, v := range s.norm[:s.symbolLen] { - switch v { - case 0: - case -1, 1: - symbolTT[i].deltaNbBits = tl - symbolTT[i].deltaFindState = int32(total - 1) - total++ - default: - maxBitsOut := uint32(tableLog) - highBits(uint32(v-1)) - minStatePlus := uint32(v) << maxBitsOut - symbolTT[i].deltaNbBits = (maxBitsOut << 16) - minStatePlus - symbolTT[i].deltaFindState = int32(total - v) - total += v - } - } - if total != int16(tableSize) { - return fmt.Errorf("total mismatch %d (got) != %d (want)", total, tableSize) - } - } - return nil -} - -// countSimple will create a simple histogram in s.count. -// Returns the biggest count. -// Does not update s.clearCount. -func (s *Scratch) countSimple(in []byte) (max int) { - for _, v := range in { - s.count[v]++ - } - m := uint32(0) - for i, v := range s.count[:] { - if v > m { - m = v - } - if v > 0 { - s.symbolLen = uint16(i) + 1 - } - } - return int(m) -} - -// minTableLog provides the minimum logSize to safely represent a distribution. -func (s *Scratch) minTableLog() uint8 { - minBitsSrc := highBits(uint32(s.br.remain()-1)) + 1 - minBitsSymbols := highBits(uint32(s.symbolLen-1)) + 2 - if minBitsSrc < minBitsSymbols { - return uint8(minBitsSrc) - } - return uint8(minBitsSymbols) -} - -// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog -func (s *Scratch) optimalTableLog() { - tableLog := s.TableLog - minBits := s.minTableLog() - maxBitsSrc := uint8(highBits(uint32(s.br.remain()-1))) - 2 - if maxBitsSrc < tableLog { - // Accuracy can be reduced - tableLog = maxBitsSrc - } - if minBits > tableLog { - tableLog = minBits - } - // Need a minimum to safely represent all symbol values - if tableLog < minTablelog { - tableLog = minTablelog - } - if tableLog > maxTableLog { - tableLog = maxTableLog - } - s.actualTableLog = tableLog -} - -var rtbTable = [...]uint32{0, 473195, 504333, 520860, 550000, 700000, 750000, 830000} - -// normalizeCount will normalize the count of the symbols so -// the total is equal to the table size. -func (s *Scratch) normalizeCount() error { - var ( - tableLog = s.actualTableLog - scale = 62 - uint64(tableLog) - step = (1 << 62) / uint64(s.br.remain()) - vStep = uint64(1) << (scale - 20) - stillToDistribute = int16(1 << tableLog) - largest int - largestP int16 - lowThreshold = (uint32)(s.br.remain() >> tableLog) - ) - - for i, cnt := range s.count[:s.symbolLen] { - // already handled - // if (count[s] == s.length) return 0; /* rle special case */ - - if cnt == 0 { - s.norm[i] = 0 - continue - } - if cnt <= lowThreshold { - s.norm[i] = -1 - stillToDistribute-- - } else { - proba := (int16)((uint64(cnt) * step) >> scale) - if proba < 8 { - restToBeat := vStep * uint64(rtbTable[proba]) - v := uint64(cnt)*step - (uint64(proba) << scale) - if v > restToBeat { - proba++ - } - } - if proba > largestP { - largestP = proba - largest = i - } - s.norm[i] = proba - stillToDistribute -= proba - } - } - - if -stillToDistribute >= (s.norm[largest] >> 1) { - // corner case, need another normalization method - return s.normalizeCount2() - } - s.norm[largest] += stillToDistribute - return nil -} - -// Secondary normalization method. -// To be used when primary method fails. -func (s *Scratch) normalizeCount2() error { - const notYetAssigned = -2 - var ( - distributed uint32 - total = uint32(s.br.remain()) - tableLog = s.actualTableLog - lowThreshold = uint32(total >> tableLog) - lowOne = uint32((total * 3) >> (tableLog + 1)) - ) - for i, cnt := range s.count[:s.symbolLen] { - if cnt == 0 { - s.norm[i] = 0 - continue - } - if cnt <= lowThreshold { - s.norm[i] = -1 - distributed++ - total -= cnt - continue - } - if cnt <= lowOne { - s.norm[i] = 1 - distributed++ - total -= cnt - continue - } - s.norm[i] = notYetAssigned - } - toDistribute := (1 << tableLog) - distributed - - if (total / toDistribute) > lowOne { - // risk of rounding to zero - lowOne = uint32((total * 3) / (toDistribute * 2)) - for i, cnt := range s.count[:s.symbolLen] { - if (s.norm[i] == notYetAssigned) && (cnt <= lowOne) { - s.norm[i] = 1 - distributed++ - total -= cnt - continue - } - } - toDistribute = (1 << tableLog) - distributed - } - if distributed == uint32(s.symbolLen)+1 { - // all values are pretty poor; - // probably incompressible data (should have already been detected); - // find max, then give all remaining points to max - var maxV int - var maxC uint32 - for i, cnt := range s.count[:s.symbolLen] { - if cnt > maxC { - maxV = i - maxC = cnt - } - } - s.norm[maxV] += int16(toDistribute) - return nil - } - - if total == 0 { - // all of the symbols were low enough for the lowOne or lowThreshold - for i := uint32(0); toDistribute > 0; i = (i + 1) % (uint32(s.symbolLen)) { - if s.norm[i] > 0 { - toDistribute-- - s.norm[i]++ - } - } - return nil - } - - var ( - vStepLog = 62 - uint64(tableLog) - mid = uint64((1 << (vStepLog - 1)) - 1) - rStep = (((1 << vStepLog) * uint64(toDistribute)) + mid) / uint64(total) // scale on remaining - tmpTotal = mid - ) - for i, cnt := range s.count[:s.symbolLen] { - if s.norm[i] == notYetAssigned { - var ( - end = tmpTotal + uint64(cnt)*rStep - sStart = uint32(tmpTotal >> vStepLog) - sEnd = uint32(end >> vStepLog) - weight = sEnd - sStart - ) - if weight < 1 { - return errors.New("weight < 1") - } - s.norm[i] = int16(weight) - tmpTotal = end - } - } - return nil -} - -// validateNorm validates the normalized histogram table. -func (s *Scratch) validateNorm() (err error) { - var total int - for _, v := range s.norm[:s.symbolLen] { - if v >= 0 { - total += int(v) - } else { - total -= int(v) - } - } - defer func() { - if err == nil { - return - } - fmt.Printf("selected TableLog: %d, Symbol length: %d\n", s.actualTableLog, s.symbolLen) - for i, v := range s.norm[:s.symbolLen] { - fmt.Printf("%3d: %5d -> %4d \n", i, s.count[i], v) - } - }() - if total != (1 << s.actualTableLog) { - return fmt.Errorf("warning: Total == %d != %d", total, 1< tablelogAbsoluteMax { - return errors.New("tableLog too large") - } - bitStream >>= 4 - bitCount := uint(4) - - s.actualTableLog = uint8(nbBits) - remaining := int32((1 << nbBits) + 1) - threshold := int32(1 << nbBits) - gotTotal := int32(0) - nbBits++ - - for remaining > 1 { - if previous0 { - n0 := charnum - for (bitStream & 0xFFFF) == 0xFFFF { - n0 += 24 - if b.off < iend-5 { - b.advance(2) - bitStream = b.Uint32() >> bitCount - } else { - bitStream >>= 16 - bitCount += 16 - } - } - for (bitStream & 3) == 3 { - n0 += 3 - bitStream >>= 2 - bitCount += 2 - } - n0 += uint16(bitStream & 3) - bitCount += 2 - if n0 > maxSymbolValue { - return errors.New("maxSymbolValue too small") - } - for charnum < n0 { - s.norm[charnum&0xff] = 0 - charnum++ - } - - if b.off <= iend-7 || b.off+int(bitCount>>3) <= iend-4 { - b.advance(bitCount >> 3) - bitCount &= 7 - bitStream = b.Uint32() >> bitCount - } else { - bitStream >>= 2 - } - } - - max := (2*(threshold) - 1) - (remaining) - var count int32 - - if (int32(bitStream) & (threshold - 1)) < max { - count = int32(bitStream) & (threshold - 1) - bitCount += nbBits - 1 - } else { - count = int32(bitStream) & (2*threshold - 1) - if count >= threshold { - count -= max - } - bitCount += nbBits - } - - count-- // extra accuracy - if count < 0 { - // -1 means +1 - remaining += count - gotTotal -= count - } else { - remaining -= count - gotTotal += count - } - s.norm[charnum&0xff] = int16(count) - charnum++ - previous0 = count == 0 - for remaining < threshold { - nbBits-- - threshold >>= 1 - } - if b.off <= iend-7 || b.off+int(bitCount>>3) <= iend-4 { - b.advance(bitCount >> 3) - bitCount &= 7 - } else { - bitCount -= (uint)(8 * (len(b.b) - 4 - b.off)) - b.off = len(b.b) - 4 - } - bitStream = b.Uint32() >> (bitCount & 31) - } - s.symbolLen = charnum - - if s.symbolLen <= 1 { - return fmt.Errorf("symbolLen (%d) too small", s.symbolLen) - } - if s.symbolLen > maxSymbolValue+1 { - return fmt.Errorf("symbolLen (%d) too big", s.symbolLen) - } - if remaining != 1 { - return fmt.Errorf("corruption detected (remaining %d != 1)", remaining) - } - if bitCount > 32 { - return fmt.Errorf("corruption detected (bitCount %d > 32)", bitCount) - } - if gotTotal != 1<> 3) - return nil -} - -// decSymbol contains information about a state entry, -// Including the state offset base, the output symbol and -// the number of bits to read for the low part of the destination state. -type decSymbol struct { - newState uint16 - symbol uint8 - nbBits uint8 -} - -// allocDtable will allocate decoding tables if they are not big enough. -func (s *Scratch) allocDtable() { - tableSize := 1 << s.actualTableLog - if cap(s.decTable) < int(tableSize) { - s.decTable = make([]decSymbol, tableSize) - } - s.decTable = s.decTable[:tableSize] - - if cap(s.ct.tableSymbol) < 256 { - s.ct.tableSymbol = make([]byte, 256) - } - s.ct.tableSymbol = s.ct.tableSymbol[:256] - - if cap(s.ct.stateTable) < 256 { - s.ct.stateTable = make([]uint16, 256) - } - s.ct.stateTable = s.ct.stateTable[:256] -} - -// buildDtable will build the decoding table. -func (s *Scratch) buildDtable() error { - tableSize := uint32(1 << s.actualTableLog) - highThreshold := tableSize - 1 - s.allocDtable() - symbolNext := s.ct.stateTable[:256] - - // Init, lay down lowprob symbols - s.zeroBits = false - { - largeLimit := int16(1 << (s.actualTableLog - 1)) - for i, v := range s.norm[:s.symbolLen] { - if v == -1 { - s.decTable[highThreshold].symbol = uint8(i) - highThreshold-- - symbolNext[i] = 1 - } else { - if v >= largeLimit { - s.zeroBits = true - } - symbolNext[i] = uint16(v) - } - } - } - // Spread symbols - { - tableMask := tableSize - 1 - step := tableStep(tableSize) - position := uint32(0) - for ss, v := range s.norm[:s.symbolLen] { - for i := 0; i < int(v); i++ { - s.decTable[position].symbol = uint8(ss) - position = (position + step) & tableMask - for position > highThreshold { - // lowprob area - position = (position + step) & tableMask - } - } - } - if position != 0 { - // position must reach all cells once, otherwise normalizedCounter is incorrect - return errors.New("corrupted input (position != 0)") - } - } - - // Build Decoding table - { - tableSize := uint16(1 << s.actualTableLog) - for u, v := range s.decTable { - symbol := v.symbol - nextState := symbolNext[symbol] - symbolNext[symbol] = nextState + 1 - nBits := s.actualTableLog - byte(highBits(uint32(nextState))) - s.decTable[u].nbBits = nBits - newState := (nextState << nBits) - tableSize - if newState >= tableSize { - return fmt.Errorf("newState (%d) outside table size (%d)", newState, tableSize) - } - if newState == uint16(u) && nBits == 0 { - // Seems weird that this is possible with nbits > 0. - return fmt.Errorf("newState (%d) == oldState (%d) and no bits", newState, u) - } - s.decTable[u].newState = newState - } - } - return nil -} - -// decompress will decompress the bitstream. -// If the buffer is over-read an error is returned. -func (s *Scratch) decompress() error { - br := &s.bits - br.init(s.br.unread()) - - var s1, s2 decoder - // Initialize and decode first state and symbol. - s1.init(br, s.decTable, s.actualTableLog) - s2.init(br, s.decTable, s.actualTableLog) - - // Use temp table to avoid bound checks/append penalty. - var tmp = s.ct.tableSymbol[:256] - var off uint8 - - // Main part - if !s.zeroBits { - for br.off >= 8 { - br.fillFast() - tmp[off+0] = s1.nextFast() - tmp[off+1] = s2.nextFast() - br.fillFast() - tmp[off+2] = s1.nextFast() - tmp[off+3] = s2.nextFast() - off += 4 - // When off is 0, we have overflowed and should write. - if off == 0 { - s.Out = append(s.Out, tmp...) - if len(s.Out) >= s.DecompressLimit { - return fmt.Errorf("output size (%d) > DecompressLimit (%d)", len(s.Out), s.DecompressLimit) - } - } - } - } else { - for br.off >= 8 { - br.fillFast() - tmp[off+0] = s1.next() - tmp[off+1] = s2.next() - br.fillFast() - tmp[off+2] = s1.next() - tmp[off+3] = s2.next() - off += 4 - if off == 0 { - s.Out = append(s.Out, tmp...) - // When off is 0, we have overflowed and should write. - if len(s.Out) >= s.DecompressLimit { - return fmt.Errorf("output size (%d) > DecompressLimit (%d)", len(s.Out), s.DecompressLimit) - } - } - } - } - s.Out = append(s.Out, tmp[:off]...) - - // Final bits, a bit more expensive check - for { - if s1.finished() { - s.Out = append(s.Out, s1.final(), s2.final()) - break - } - br.fill() - s.Out = append(s.Out, s1.next()) - if s2.finished() { - s.Out = append(s.Out, s2.final(), s1.final()) - break - } - s.Out = append(s.Out, s2.next()) - if len(s.Out) >= s.DecompressLimit { - return fmt.Errorf("output size (%d) > DecompressLimit (%d)", len(s.Out), s.DecompressLimit) - } - } - return br.close() -} - -// decoder keeps track of the current state and updates it from the bitstream. -type decoder struct { - state uint16 - br *bitReader - dt []decSymbol -} - -// init will initialize the decoder and read the first state from the stream. -func (d *decoder) init(in *bitReader, dt []decSymbol, tableLog uint8) { - d.dt = dt - d.br = in - d.state = uint16(in.getBits(tableLog)) -} - -// next returns the next symbol and sets the next state. -// At least tablelog bits must be available in the bit reader. -func (d *decoder) next() uint8 { - n := &d.dt[d.state] - lowBits := d.br.getBits(n.nbBits) - d.state = n.newState + lowBits - return n.symbol -} - -// finished returns true if all bits have been read from the bitstream -// and the next state would require reading bits from the input. -func (d *decoder) finished() bool { - return d.br.finished() && d.dt[d.state].nbBits > 0 -} - -// final returns the current state symbol without decoding the next. -func (d *decoder) final() uint8 { - return d.dt[d.state].symbol -} - -// nextFast returns the next symbol and sets the next state. -// This can only be used if no symbols are 0 bits. -// At least tablelog bits must be available in the bit reader. -func (d *decoder) nextFast() uint8 { - n := d.dt[d.state] - lowBits := d.br.getBitsFast(n.nbBits) - d.state = n.newState + lowBits - return n.symbol -} diff --git a/backend/vendor/github.com/klauspost/compress/fse/fse.go b/backend/vendor/github.com/klauspost/compress/fse/fse.go deleted file mode 100644 index 535cbadf..00000000 --- a/backend/vendor/github.com/klauspost/compress/fse/fse.go +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -// Package fse provides Finite State Entropy encoding and decoding. -// -// Finite State Entropy encoding provides a fast near-optimal symbol encoding/decoding -// for byte blocks as implemented in zstd. -// -// See https://github.com/klauspost/compress/tree/master/fse for more information. -package fse - -import ( - "errors" - "fmt" - "math/bits" -) - -const ( - /*!MEMORY_USAGE : - * Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) - * Increasing memory usage improves compression ratio - * Reduced memory usage can improve speed, due to cache effect - * Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ - maxMemoryUsage = 14 - defaultMemoryUsage = 13 - - maxTableLog = maxMemoryUsage - 2 - maxTablesize = 1 << maxTableLog - defaultTablelog = defaultMemoryUsage - 2 - minTablelog = 5 - maxSymbolValue = 255 -) - -var ( - // ErrIncompressible is returned when input is judged to be too hard to compress. - ErrIncompressible = errors.New("input is not compressible") - - // ErrUseRLE is returned from the compressor when the input is a single byte value repeated. - ErrUseRLE = errors.New("input is single value repeated") -) - -// Scratch provides temporary storage for compression and decompression. -type Scratch struct { - // Private - count [maxSymbolValue + 1]uint32 - norm [maxSymbolValue + 1]int16 - br byteReader - bits bitReader - bw bitWriter - ct cTable // Compression tables. - decTable []decSymbol // Decompression table. - maxCount int // count of the most probable symbol - - // Per block parameters. - // These can be used to override compression parameters of the block. - // Do not touch, unless you know what you are doing. - - // Out is output buffer. - // If the scratch is re-used before the caller is done processing the output, - // set this field to nil. - // Otherwise the output buffer will be re-used for next Compression/Decompression step - // and allocation will be avoided. - Out []byte - - // DecompressLimit limits the maximum decoded size acceptable. - // If > 0 decompression will stop when approximately this many bytes - // has been decoded. - // If 0, maximum size will be 2GB. - DecompressLimit int - - symbolLen uint16 // Length of active part of the symbol table. - actualTableLog uint8 // Selected tablelog. - zeroBits bool // no bits has prob > 50%. - clearCount bool // clear count - - // MaxSymbolValue will override the maximum symbol value of the next block. - MaxSymbolValue uint8 - - // TableLog will attempt to override the tablelog for the next block. - TableLog uint8 -} - -// Histogram allows to populate the histogram and skip that step in the compression, -// It otherwise allows to inspect the histogram when compression is done. -// To indicate that you have populated the histogram call HistogramFinished -// with the value of the highest populated symbol, as well as the number of entries -// in the most populated entry. These are accepted at face value. -// The returned slice will always be length 256. -func (s *Scratch) Histogram() []uint32 { - return s.count[:] -} - -// HistogramFinished can be called to indicate that the histogram has been populated. -// maxSymbol is the index of the highest set symbol of the next data segment. -// maxCount is the number of entries in the most populated entry. -// These are accepted at face value. -func (s *Scratch) HistogramFinished(maxSymbol uint8, maxCount int) { - s.maxCount = maxCount - s.symbolLen = uint16(maxSymbol) + 1 - s.clearCount = maxCount != 0 -} - -// prepare will prepare and allocate scratch tables used for both compression and decompression. -func (s *Scratch) prepare(in []byte) (*Scratch, error) { - if s == nil { - s = &Scratch{} - } - if s.MaxSymbolValue == 0 { - s.MaxSymbolValue = 255 - } - if s.TableLog == 0 { - s.TableLog = defaultTablelog - } - if s.TableLog > maxTableLog { - return nil, fmt.Errorf("tableLog (%d) > maxTableLog (%d)", s.TableLog, maxTableLog) - } - if cap(s.Out) == 0 { - s.Out = make([]byte, 0, len(in)) - } - if s.clearCount && s.maxCount == 0 { - for i := range s.count { - s.count[i] = 0 - } - s.clearCount = false - } - s.br.init(in) - if s.DecompressLimit == 0 { - // Max size 2GB. - s.DecompressLimit = (2 << 30) - 1 - } - - return s, nil -} - -// tableStep returns the next table index. -func tableStep(tableSize uint32) uint32 { - return (tableSize >> 1) + (tableSize >> 3) + 3 -} - -func highBits(val uint32) (n uint32) { - return uint32(bits.Len32(val) - 1) -} diff --git a/backend/vendor/github.com/klauspost/compress/gzip/gunzip.go b/backend/vendor/github.com/klauspost/compress/gzip/gunzip.go deleted file mode 100644 index 568b5d4f..00000000 --- a/backend/vendor/github.com/klauspost/compress/gzip/gunzip.go +++ /dev/null @@ -1,344 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gzip implements reading and writing of gzip format compressed files, -// as specified in RFC 1952. -package gzip - -import ( - "bufio" - "encoding/binary" - "errors" - "hash/crc32" - "io" - "time" - - "github.com/klauspost/compress/flate" -) - -const ( - gzipID1 = 0x1f - gzipID2 = 0x8b - gzipDeflate = 8 - flagText = 1 << 0 - flagHdrCrc = 1 << 1 - flagExtra = 1 << 2 - flagName = 1 << 3 - flagComment = 1 << 4 -) - -var ( - // ErrChecksum is returned when reading GZIP data that has an invalid checksum. - ErrChecksum = errors.New("gzip: invalid checksum") - // ErrHeader is returned when reading GZIP data that has an invalid header. - ErrHeader = errors.New("gzip: invalid header") -) - -var le = binary.LittleEndian - -// noEOF converts io.EOF to io.ErrUnexpectedEOF. -func noEOF(err error) error { - if err == io.EOF { - return io.ErrUnexpectedEOF - } - return err -} - -// The gzip file stores a header giving metadata about the compressed file. -// That header is exposed as the fields of the Writer and Reader structs. -// -// Strings must be UTF-8 encoded and may only contain Unicode code points -// U+0001 through U+00FF, due to limitations of the GZIP file format. -type Header struct { - Comment string // comment - Extra []byte // "extra data" - ModTime time.Time // modification time - Name string // file name - OS byte // operating system type -} - -// A Reader is an io.Reader that can be read to retrieve -// uncompressed data from a gzip-format compressed file. -// -// In general, a gzip file can be a concatenation of gzip files, -// each with its own header. Reads from the Reader -// return the concatenation of the uncompressed data of each. -// Only the first header is recorded in the Reader fields. -// -// Gzip files store a length and checksum of the uncompressed data. -// The Reader will return a ErrChecksum when Read -// reaches the end of the uncompressed data if it does not -// have the expected length or checksum. Clients should treat data -// returned by Read as tentative until they receive the io.EOF -// marking the end of the data. -type Reader struct { - Header // valid after NewReader or Reader.Reset - r flate.Reader - decompressor io.ReadCloser - digest uint32 // CRC-32, IEEE polynomial (section 8) - size uint32 // Uncompressed size (section 2.3.1) - buf [512]byte - err error - multistream bool -} - -// NewReader creates a new Reader reading the given reader. -// If r does not also implement io.ByteReader, -// the decompressor may read more data than necessary from r. -// -// It is the caller's responsibility to call Close on the Reader when done. -// -// The Reader.Header fields will be valid in the Reader returned. -func NewReader(r io.Reader) (*Reader, error) { - z := new(Reader) - if err := z.Reset(r); err != nil { - return nil, err - } - return z, nil -} - -// Reset discards the Reader z's state and makes it equivalent to the -// result of its original state from NewReader, but reading from r instead. -// This permits reusing a Reader rather than allocating a new one. -func (z *Reader) Reset(r io.Reader) error { - *z = Reader{ - decompressor: z.decompressor, - multistream: true, - } - if rr, ok := r.(flate.Reader); ok { - z.r = rr - } else { - z.r = bufio.NewReader(r) - } - z.Header, z.err = z.readHeader() - return z.err -} - -// Multistream controls whether the reader supports multistream files. -// -// If enabled (the default), the Reader expects the input to be a sequence -// of individually gzipped data streams, each with its own header and -// trailer, ending at EOF. The effect is that the concatenation of a sequence -// of gzipped files is treated as equivalent to the gzip of the concatenation -// of the sequence. This is standard behavior for gzip readers. -// -// Calling Multistream(false) disables this behavior; disabling the behavior -// can be useful when reading file formats that distinguish individual gzip -// data streams or mix gzip data streams with other data streams. -// In this mode, when the Reader reaches the end of the data stream, -// Read returns io.EOF. If the underlying reader implements io.ByteReader, -// it will be left positioned just after the gzip stream. -// To start the next stream, call z.Reset(r) followed by z.Multistream(false). -// If there is no next stream, z.Reset(r) will return io.EOF. -func (z *Reader) Multistream(ok bool) { - z.multistream = ok -} - -// readString reads a NUL-terminated string from z.r. -// It treats the bytes read as being encoded as ISO 8859-1 (Latin-1) and -// will output a string encoded using UTF-8. -// This method always updates z.digest with the data read. -func (z *Reader) readString() (string, error) { - var err error - needConv := false - for i := 0; ; i++ { - if i >= len(z.buf) { - return "", ErrHeader - } - z.buf[i], err = z.r.ReadByte() - if err != nil { - return "", err - } - if z.buf[i] > 0x7f { - needConv = true - } - if z.buf[i] == 0 { - // Digest covers the NUL terminator. - z.digest = crc32.Update(z.digest, crc32.IEEETable, z.buf[:i+1]) - - // Strings are ISO 8859-1, Latin-1 (RFC 1952, section 2.3.1). - if needConv { - s := make([]rune, 0, i) - for _, v := range z.buf[:i] { - s = append(s, rune(v)) - } - return string(s), nil - } - return string(z.buf[:i]), nil - } - } -} - -// readHeader reads the GZIP header according to section 2.3.1. -// This method does not set z.err. -func (z *Reader) readHeader() (hdr Header, err error) { - if _, err = io.ReadFull(z.r, z.buf[:10]); err != nil { - // RFC 1952, section 2.2, says the following: - // A gzip file consists of a series of "members" (compressed data sets). - // - // Other than this, the specification does not clarify whether a - // "series" is defined as "one or more" or "zero or more". To err on the - // side of caution, Go interprets this to mean "zero or more". - // Thus, it is okay to return io.EOF here. - return hdr, err - } - if z.buf[0] != gzipID1 || z.buf[1] != gzipID2 || z.buf[2] != gzipDeflate { - return hdr, ErrHeader - } - flg := z.buf[3] - hdr.ModTime = time.Unix(int64(le.Uint32(z.buf[4:8])), 0) - // z.buf[8] is XFL and is currently ignored. - hdr.OS = z.buf[9] - z.digest = crc32.ChecksumIEEE(z.buf[:10]) - - if flg&flagExtra != 0 { - if _, err = io.ReadFull(z.r, z.buf[:2]); err != nil { - return hdr, noEOF(err) - } - z.digest = crc32.Update(z.digest, crc32.IEEETable, z.buf[:2]) - data := make([]byte, le.Uint16(z.buf[:2])) - if _, err = io.ReadFull(z.r, data); err != nil { - return hdr, noEOF(err) - } - z.digest = crc32.Update(z.digest, crc32.IEEETable, data) - hdr.Extra = data - } - - var s string - if flg&flagName != 0 { - if s, err = z.readString(); err != nil { - return hdr, err - } - hdr.Name = s - } - - if flg&flagComment != 0 { - if s, err = z.readString(); err != nil { - return hdr, err - } - hdr.Comment = s - } - - if flg&flagHdrCrc != 0 { - if _, err = io.ReadFull(z.r, z.buf[:2]); err != nil { - return hdr, noEOF(err) - } - digest := le.Uint16(z.buf[:2]) - if digest != uint16(z.digest) { - return hdr, ErrHeader - } - } - - z.digest = 0 - if z.decompressor == nil { - z.decompressor = flate.NewReader(z.r) - } else { - z.decompressor.(flate.Resetter).Reset(z.r, nil) - } - return hdr, nil -} - -// Read implements io.Reader, reading uncompressed bytes from its underlying Reader. -func (z *Reader) Read(p []byte) (n int, err error) { - if z.err != nil { - return 0, z.err - } - - n, z.err = z.decompressor.Read(p) - z.digest = crc32.Update(z.digest, crc32.IEEETable, p[:n]) - z.size += uint32(n) - if z.err != io.EOF { - // In the normal case we return here. - return n, z.err - } - - // Finished file; check checksum and size. - if _, err := io.ReadFull(z.r, z.buf[:8]); err != nil { - z.err = noEOF(err) - return n, z.err - } - digest := le.Uint32(z.buf[:4]) - size := le.Uint32(z.buf[4:8]) - if digest != z.digest || size != z.size { - z.err = ErrChecksum - return n, z.err - } - z.digest, z.size = 0, 0 - - // File is ok; check if there is another. - if !z.multistream { - return n, io.EOF - } - z.err = nil // Remove io.EOF - - if _, z.err = z.readHeader(); z.err != nil { - return n, z.err - } - - // Read from next file, if necessary. - if n > 0 { - return n, nil - } - return z.Read(p) -} - -// Support the io.WriteTo interface for io.Copy and friends. -func (z *Reader) WriteTo(w io.Writer) (int64, error) { - total := int64(0) - crcWriter := crc32.NewIEEE() - for { - if z.err != nil { - if z.err == io.EOF { - return total, nil - } - return total, z.err - } - - // We write both to output and digest. - mw := io.MultiWriter(w, crcWriter) - n, err := z.decompressor.(io.WriterTo).WriteTo(mw) - total += n - z.size += uint32(n) - if err != nil { - z.err = err - return total, z.err - } - - // Finished file; check checksum + size. - if _, err := io.ReadFull(z.r, z.buf[0:8]); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - z.err = err - return total, err - } - z.digest = crcWriter.Sum32() - digest := le.Uint32(z.buf[:4]) - size := le.Uint32(z.buf[4:8]) - if digest != z.digest || size != z.size { - z.err = ErrChecksum - return total, z.err - } - z.digest, z.size = 0, 0 - - // File is ok; check if there is another. - if !z.multistream { - return total, nil - } - crcWriter.Reset() - z.err = nil // Remove io.EOF - - if _, z.err = z.readHeader(); z.err != nil { - if z.err == io.EOF { - return total, nil - } - return total, z.err - } - } -} - -// Close closes the Reader. It does not close the underlying io.Reader. -// In order for the GZIP checksum to be verified, the reader must be -// fully consumed until the io.EOF. -func (z *Reader) Close() error { return z.decompressor.Close() } diff --git a/backend/vendor/github.com/klauspost/compress/gzip/gzip.go b/backend/vendor/github.com/klauspost/compress/gzip/gzip.go deleted file mode 100644 index 26203851..00000000 --- a/backend/vendor/github.com/klauspost/compress/gzip/gzip.go +++ /dev/null @@ -1,269 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gzip - -import ( - "errors" - "fmt" - "hash/crc32" - "io" - - "github.com/klauspost/compress/flate" -) - -// These constants are copied from the flate package, so that code that imports -// "compress/gzip" does not also have to import "compress/flate". -const ( - NoCompression = flate.NoCompression - BestSpeed = flate.BestSpeed - BestCompression = flate.BestCompression - DefaultCompression = flate.DefaultCompression - ConstantCompression = flate.ConstantCompression - HuffmanOnly = flate.HuffmanOnly - - // StatelessCompression will do compression but without maintaining any state - // between Write calls. - // There will be no memory kept between Write calls, - // but compression and speed will be suboptimal. - // Because of this, the size of actual Write calls will affect output size. - StatelessCompression = -3 -) - -// A Writer is an io.WriteCloser. -// Writes to a Writer are compressed and written to w. -type Writer struct { - Header // written at first call to Write, Flush, or Close - w io.Writer - level int - err error - compressor *flate.Writer - digest uint32 // CRC-32, IEEE polynomial (section 8) - size uint32 // Uncompressed size (section 2.3.1) - wroteHeader bool - closed bool - buf [10]byte -} - -// NewWriter returns a new Writer. -// Writes to the returned writer are compressed and written to w. -// -// It is the caller's responsibility to call Close on the WriteCloser when done. -// Writes may be buffered and not flushed until Close. -// -// Callers that wish to set the fields in Writer.Header must do so before -// the first call to Write, Flush, or Close. -func NewWriter(w io.Writer) *Writer { - z, _ := NewWriterLevel(w, DefaultCompression) - return z -} - -// NewWriterLevel is like NewWriter but specifies the compression level instead -// of assuming DefaultCompression. -// -// The compression level can be DefaultCompression, NoCompression, or any -// integer value between BestSpeed and BestCompression inclusive. The error -// returned will be nil if the level is valid. -func NewWriterLevel(w io.Writer, level int) (*Writer, error) { - if level < StatelessCompression || level > BestCompression { - return nil, fmt.Errorf("gzip: invalid compression level: %d", level) - } - z := new(Writer) - z.init(w, level) - return z, nil -} - -func (z *Writer) init(w io.Writer, level int) { - compressor := z.compressor - if level != StatelessCompression { - if compressor != nil { - compressor.Reset(w) - } - } - - *z = Writer{ - Header: Header{ - OS: 255, // unknown - }, - w: w, - level: level, - compressor: compressor, - } -} - -// Reset discards the Writer z's state and makes it equivalent to the -// result of its original state from NewWriter or NewWriterLevel, but -// writing to w instead. This permits reusing a Writer rather than -// allocating a new one. -func (z *Writer) Reset(w io.Writer) { - z.init(w, z.level) -} - -// writeBytes writes a length-prefixed byte slice to z.w. -func (z *Writer) writeBytes(b []byte) error { - if len(b) > 0xffff { - return errors.New("gzip.Write: Extra data is too large") - } - le.PutUint16(z.buf[:2], uint16(len(b))) - _, err := z.w.Write(z.buf[:2]) - if err != nil { - return err - } - _, err = z.w.Write(b) - return err -} - -// writeString writes a UTF-8 string s in GZIP's format to z.w. -// GZIP (RFC 1952) specifies that strings are NUL-terminated ISO 8859-1 (Latin-1). -func (z *Writer) writeString(s string) (err error) { - // GZIP stores Latin-1 strings; error if non-Latin-1; convert if non-ASCII. - needconv := false - for _, v := range s { - if v == 0 || v > 0xff { - return errors.New("gzip.Write: non-Latin-1 header string") - } - if v > 0x7f { - needconv = true - } - } - if needconv { - b := make([]byte, 0, len(s)) - for _, v := range s { - b = append(b, byte(v)) - } - _, err = z.w.Write(b) - } else { - _, err = io.WriteString(z.w, s) - } - if err != nil { - return err - } - // GZIP strings are NUL-terminated. - z.buf[0] = 0 - _, err = z.w.Write(z.buf[:1]) - return err -} - -// Write writes a compressed form of p to the underlying io.Writer. The -// compressed bytes are not necessarily flushed until the Writer is closed. -func (z *Writer) Write(p []byte) (int, error) { - if z.err != nil { - return 0, z.err - } - var n int - // Write the GZIP header lazily. - if !z.wroteHeader { - z.wroteHeader = true - z.buf[0] = gzipID1 - z.buf[1] = gzipID2 - z.buf[2] = gzipDeflate - z.buf[3] = 0 - if z.Extra != nil { - z.buf[3] |= 0x04 - } - if z.Name != "" { - z.buf[3] |= 0x08 - } - if z.Comment != "" { - z.buf[3] |= 0x10 - } - le.PutUint32(z.buf[4:8], uint32(z.ModTime.Unix())) - if z.level == BestCompression { - z.buf[8] = 2 - } else if z.level == BestSpeed { - z.buf[8] = 4 - } else { - z.buf[8] = 0 - } - z.buf[9] = z.OS - n, z.err = z.w.Write(z.buf[:10]) - if z.err != nil { - return n, z.err - } - if z.Extra != nil { - z.err = z.writeBytes(z.Extra) - if z.err != nil { - return n, z.err - } - } - if z.Name != "" { - z.err = z.writeString(z.Name) - if z.err != nil { - return n, z.err - } - } - if z.Comment != "" { - z.err = z.writeString(z.Comment) - if z.err != nil { - return n, z.err - } - } - - if z.compressor == nil && z.level != StatelessCompression { - z.compressor, _ = flate.NewWriter(z.w, z.level) - } - } - z.size += uint32(len(p)) - z.digest = crc32.Update(z.digest, crc32.IEEETable, p) - if z.level == StatelessCompression { - return len(p), flate.StatelessDeflate(z.w, p, false, nil) - } - n, z.err = z.compressor.Write(p) - return n, z.err -} - -// Flush flushes any pending compressed data to the underlying writer. -// -// It is useful mainly in compressed network protocols, to ensure that -// a remote reader has enough data to reconstruct a packet. Flush does -// not return until the data has been written. If the underlying -// writer returns an error, Flush returns that error. -// -// In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. -func (z *Writer) Flush() error { - if z.err != nil { - return z.err - } - if z.closed || z.level == StatelessCompression { - return nil - } - if !z.wroteHeader { - z.Write(nil) - if z.err != nil { - return z.err - } - } - z.err = z.compressor.Flush() - return z.err -} - -// Close closes the Writer, flushing any unwritten data to the underlying -// io.Writer, but does not close the underlying io.Writer. -func (z *Writer) Close() error { - if z.err != nil { - return z.err - } - if z.closed { - return nil - } - z.closed = true - if !z.wroteHeader { - z.Write(nil) - if z.err != nil { - return z.err - } - } - if z.level == StatelessCompression { - z.err = flate.StatelessDeflate(z.w, nil, true, nil) - } else { - z.err = z.compressor.Close() - } - if z.err != nil { - return z.err - } - le.PutUint32(z.buf[:4], z.digest) - le.PutUint32(z.buf[4:8], z.size) - _, z.err = z.w.Write(z.buf[:8]) - return z.err -} diff --git a/backend/vendor/github.com/klauspost/compress/huff0/.gitignore b/backend/vendor/github.com/klauspost/compress/huff0/.gitignore deleted file mode 100644 index b3d26295..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/huff0-fuzz.zip diff --git a/backend/vendor/github.com/klauspost/compress/huff0/README.md b/backend/vendor/github.com/klauspost/compress/huff0/README.md deleted file mode 100644 index e12da4db..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# Huff0 entropy compression - -This package provides Huff0 encoding and decoding as used in zstd. - -[Huff0](https://github.com/Cyan4973/FiniteStateEntropy#new-generation-entropy-coders), -a Huffman codec designed for modern CPU, featuring OoO (Out of Order) operations on multiple ALU -(Arithmetic Logic Unit), achieving extremely fast compression and decompression speeds. - -This can be used for compressing input with a lot of similar input values to the smallest number of bytes. -This does not perform any multi-byte [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) as LZ coders, -but it can be used as a secondary step to compressors (like Snappy) that does not do entropy encoding. - -* [Godoc documentation](https://godoc.org/github.com/klauspost/compress/huff0) - -## News - - * Mar 2018: First implementation released. Consider this beta software for now. - -# Usage - -This package provides a low level interface that allows to compress single independent blocks. - -Each block is separate, and there is no built in integrity checks. -This means that the caller should keep track of block sizes and also do checksums if needed. - -Compressing a block is done via the [`Compress1X`](https://godoc.org/github.com/klauspost/compress/huff0#Compress1X) and -[`Compress4X`](https://godoc.org/github.com/klauspost/compress/huff0#Compress4X) functions. -You must provide input and will receive the output and maybe an error. - -These error values can be returned: - -| Error | Description | -|---------------------|-----------------------------------------------------------------------------| -| `` | Everything ok, output is returned | -| `ErrIncompressible` | Returned when input is judged to be too hard to compress | -| `ErrUseRLE` | Returned from the compressor when the input is a single byte value repeated | -| `ErrTooBig` | Returned if the input block exceeds the maximum allowed size (128 Kib) | -| `(error)` | An internal error occurred. | - - -As can be seen above some of there are errors that will be returned even under normal operation so it is important to handle these. - -To reduce allocations you can provide a [`Scratch`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch) object -that can be re-used for successive calls. Both compression and decompression accepts a `Scratch` object, and the same -object can be used for both. - -Be aware, that when re-using a `Scratch` object that the *output* buffer is also re-used, so if you are still using this -you must set the `Out` field in the scratch to nil. The same buffer is used for compression and decompression output. - -The `Scratch` object will retain state that allows to re-use previous tables for encoding and decoding. - -## Tables and re-use - -Huff0 allows for reusing tables from the previous block to save space if that is expected to give better/faster results. - -The Scratch object allows you to set a [`ReusePolicy`](https://godoc.org/github.com/klauspost/compress/huff0#ReusePolicy) -that controls this behaviour. See the documentation for details. This can be altered between each block. - -Do however note that this information is *not* stored in the output block and it is up to the users of the package to -record whether [`ReadTable`](https://godoc.org/github.com/klauspost/compress/huff0#ReadTable) should be called, -based on the boolean reported back from the CompressXX call. - -If you want to store the table separate from the data, you can access them as `OutData` and `OutTable` on the -[`Scratch`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch) object. - -## Decompressing - -The first part of decoding is to initialize the decoding table through [`ReadTable`](https://godoc.org/github.com/klauspost/compress/huff0#ReadTable). -This will initialize the decoding tables. -You can supply the complete block to `ReadTable` and it will return the data part of the block -which can be given to the decompressor. - -Decompressing is done by calling the [`Decompress1X`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch.Decompress1X) -or [`Decompress4X`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch.Decompress4X) function. - -For concurrently decompressing content with a fixed table a stateless [`Decoder`](https://godoc.org/github.com/klauspost/compress/huff0#Decoder) can be requested which will remain correct as long as the scratch is unchanged. The capacity of the provided slice indicates the expected output size. - -You must provide the output from the compression stage, at exactly the size you got back. If you receive an error back -your input was likely corrupted. - -It is important to note that a successful decoding does *not* mean your output matches your original input. -There are no integrity checks, so relying on errors from the decompressor does not assure your data is valid. - -# Contributing - -Contributions are always welcome. Be aware that adding public functions will require good justification and breaking -changes will likely not be accepted. If in doubt open an issue before writing the PR. diff --git a/backend/vendor/github.com/klauspost/compress/huff0/bitreader.go b/backend/vendor/github.com/klauspost/compress/huff0/bitreader.go deleted file mode 100644 index a4979e88..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/bitreader.go +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package huff0 - -import ( - "encoding/binary" - "errors" - "io" -) - -// bitReader reads a bitstream in reverse. -// The last set bit indicates the start of the stream and is used -// for aligning the input. -type bitReader struct { - in []byte - off uint // next byte to read is at in[off - 1] - value uint64 - bitsRead uint8 -} - -// init initializes and resets the bit reader. -func (b *bitReader) init(in []byte) error { - if len(in) < 1 { - return errors.New("corrupt stream: too short") - } - b.in = in - b.off = uint(len(in)) - // The highest bit of the last byte indicates where to start - v := in[len(in)-1] - if v == 0 { - return errors.New("corrupt stream, did not find end of stream") - } - b.bitsRead = 64 - b.value = 0 - if len(in) >= 8 { - b.fillFastStart() - } else { - b.fill() - b.fill() - } - b.bitsRead += 8 - uint8(highBit32(uint32(v))) - return nil -} - -// peekBitsFast requires that at least one bit is requested every time. -// There are no checks if the buffer is filled. -func (b *bitReader) peekBitsFast(n uint8) uint16 { - const regMask = 64 - 1 - v := uint16((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) - return v -} - -// fillFast() will make sure at least 32 bits are available. -// There must be at least 4 bytes available. -func (b *bitReader) fillFast() { - if b.bitsRead < 32 { - return - } - - // 2 bounds checks. - v := b.in[b.off-4 : b.off] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) - b.bitsRead -= 32 - b.off -= 4 -} - -func (b *bitReader) advance(n uint8) { - b.bitsRead += n -} - -// fillFastStart() assumes the bitreader is empty and there is at least 8 bytes to read. -func (b *bitReader) fillFastStart() { - // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) - b.bitsRead = 0 - b.off -= 8 -} - -// fill() will make sure at least 32 bits are available. -func (b *bitReader) fill() { - if b.bitsRead < 32 { - return - } - if b.off > 4 { - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) - b.bitsRead -= 32 - b.off -= 4 - return - } - for b.off > 0 { - b.value = (b.value << 8) | uint64(b.in[b.off-1]) - b.bitsRead -= 8 - b.off-- - } -} - -// finished returns true if all bits have been read from the bit stream. -func (b *bitReader) finished() bool { - return b.off == 0 && b.bitsRead >= 64 -} - -// close the bitstream and returns an error if out-of-buffer reads occurred. -func (b *bitReader) close() error { - // Release reference. - b.in = nil - if b.bitsRead > 64 { - return io.ErrUnexpectedEOF - } - return nil -} - -// bitReader reads a bitstream in reverse. -// The last set bit indicates the start of the stream and is used -// for aligning the input. -type bitReaderBytes struct { - in []byte - off uint // next byte to read is at in[off - 1] - value uint64 - bitsRead uint8 -} - -// init initializes and resets the bit reader. -func (b *bitReaderBytes) init(in []byte) error { - if len(in) < 1 { - return errors.New("corrupt stream: too short") - } - b.in = in - b.off = uint(len(in)) - // The highest bit of the last byte indicates where to start - v := in[len(in)-1] - if v == 0 { - return errors.New("corrupt stream, did not find end of stream") - } - b.bitsRead = 64 - b.value = 0 - if len(in) >= 8 { - b.fillFastStart() - } else { - b.fill() - b.fill() - } - b.advance(8 - uint8(highBit32(uint32(v)))) - return nil -} - -// peekBitsFast requires that at least one bit is requested every time. -// There are no checks if the buffer is filled. -func (b *bitReaderBytes) peekByteFast() uint8 { - got := uint8(b.value >> 56) - return got -} - -func (b *bitReaderBytes) advance(n uint8) { - b.bitsRead += n - b.value <<= n & 63 -} - -// fillFast() will make sure at least 32 bits are available. -// There must be at least 4 bytes available. -func (b *bitReaderBytes) fillFast() { - if b.bitsRead < 32 { - return - } - - // 2 bounds checks. - v := b.in[b.off-4 : b.off] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value |= uint64(low) << (b.bitsRead - 32) - b.bitsRead -= 32 - b.off -= 4 -} - -// fillFastStart() assumes the bitReaderBytes is empty and there is at least 8 bytes to read. -func (b *bitReaderBytes) fillFastStart() { - // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) - b.bitsRead = 0 - b.off -= 8 -} - -// fill() will make sure at least 32 bits are available. -func (b *bitReaderBytes) fill() { - if b.bitsRead < 32 { - return - } - if b.off > 4 { - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value |= uint64(low) << (b.bitsRead - 32) - b.bitsRead -= 32 - b.off -= 4 - return - } - for b.off > 0 { - b.value |= uint64(b.in[b.off-1]) << (b.bitsRead - 8) - b.bitsRead -= 8 - b.off-- - } -} - -// finished returns true if all bits have been read from the bit stream. -func (b *bitReaderBytes) finished() bool { - return b.off == 0 && b.bitsRead >= 64 -} - -// close the bitstream and returns an error if out-of-buffer reads occurred. -func (b *bitReaderBytes) close() error { - // Release reference. - b.in = nil - if b.bitsRead > 64 { - return io.ErrUnexpectedEOF - } - return nil -} - -// bitReaderShifted reads a bitstream in reverse. -// The last set bit indicates the start of the stream and is used -// for aligning the input. -type bitReaderShifted struct { - in []byte - off uint // next byte to read is at in[off - 1] - value uint64 - bitsRead uint8 -} - -// init initializes and resets the bit reader. -func (b *bitReaderShifted) init(in []byte) error { - if len(in) < 1 { - return errors.New("corrupt stream: too short") - } - b.in = in - b.off = uint(len(in)) - // The highest bit of the last byte indicates where to start - v := in[len(in)-1] - if v == 0 { - return errors.New("corrupt stream, did not find end of stream") - } - b.bitsRead = 64 - b.value = 0 - if len(in) >= 8 { - b.fillFastStart() - } else { - b.fill() - b.fill() - } - b.advance(8 - uint8(highBit32(uint32(v)))) - return nil -} - -// peekBitsFast requires that at least one bit is requested every time. -// There are no checks if the buffer is filled. -func (b *bitReaderShifted) peekBitsFast(n uint8) uint16 { - return uint16(b.value >> ((64 - n) & 63)) -} - -func (b *bitReaderShifted) advance(n uint8) { - b.bitsRead += n - b.value <<= n & 63 -} - -// fillFast() will make sure at least 32 bits are available. -// There must be at least 4 bytes available. -func (b *bitReaderShifted) fillFast() { - if b.bitsRead < 32 { - return - } - - // 2 bounds checks. - v := b.in[b.off-4 : b.off] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value |= uint64(low) << ((b.bitsRead - 32) & 63) - b.bitsRead -= 32 - b.off -= 4 -} - -// fillFastStart() assumes the bitReaderShifted is empty and there is at least 8 bytes to read. -func (b *bitReaderShifted) fillFastStart() { - // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) - b.bitsRead = 0 - b.off -= 8 -} - -// fill() will make sure at least 32 bits are available. -func (b *bitReaderShifted) fill() { - if b.bitsRead < 32 { - return - } - if b.off > 4 { - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value |= uint64(low) << ((b.bitsRead - 32) & 63) - b.bitsRead -= 32 - b.off -= 4 - return - } - for b.off > 0 { - b.value |= uint64(b.in[b.off-1]) << ((b.bitsRead - 8) & 63) - b.bitsRead -= 8 - b.off-- - } -} - -// finished returns true if all bits have been read from the bit stream. -func (b *bitReaderShifted) finished() bool { - return b.off == 0 && b.bitsRead >= 64 -} - -// close the bitstream and returns an error if out-of-buffer reads occurred. -func (b *bitReaderShifted) close() error { - // Release reference. - b.in = nil - if b.bitsRead > 64 { - return io.ErrUnexpectedEOF - } - return nil -} diff --git a/backend/vendor/github.com/klauspost/compress/huff0/bitwriter.go b/backend/vendor/github.com/klauspost/compress/huff0/bitwriter.go deleted file mode 100644 index 6bce4e87..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/bitwriter.go +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package huff0 - -import "fmt" - -// bitWriter will write bits. -// First bit will be LSB of the first byte of output. -type bitWriter struct { - bitContainer uint64 - nBits uint8 - out []byte -} - -// bitMask16 is bitmasks. Has extra to avoid bounds check. -var bitMask16 = [32]uint16{ - 0, 1, 3, 7, 0xF, 0x1F, - 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, - 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF} /* up to 16 bits */ - -// addBits16NC will add up to 16 bits. -// It will not check if there is space for them, -// so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits16NC(value uint16, bits uint8) { - b.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63) - b.nBits += bits -} - -// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated. -// It will not check if there is space for them, so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits16Clean(value uint16, bits uint8) { - b.bitContainer |= uint64(value) << (b.nBits & 63) - b.nBits += bits -} - -// encSymbol will add up to 16 bits. value may not contain more set bits than indicated. -// It will not check if there is space for them, so the caller must ensure that it has flushed recently. -func (b *bitWriter) encSymbol(ct cTable, symbol byte) { - enc := ct[symbol] - b.bitContainer |= uint64(enc.val) << (b.nBits & 63) - if false { - if enc.nBits == 0 { - panic("nbits 0") - } - } - b.nBits += enc.nBits -} - -// encTwoSymbols will add up to 32 bits. value may not contain more set bits than indicated. -// It will not check if there is space for them, so the caller must ensure that it has flushed recently. -func (b *bitWriter) encTwoSymbols(ct cTable, av, bv byte) { - encA := ct[av] - encB := ct[bv] - sh := b.nBits & 63 - combined := uint64(encA.val) | (uint64(encB.val) << (encA.nBits & 63)) - b.bitContainer |= combined << sh - if false { - if encA.nBits == 0 { - panic("nbitsA 0") - } - if encB.nBits == 0 { - panic("nbitsB 0") - } - } - b.nBits += encA.nBits + encB.nBits -} - -// addBits16ZeroNC will add up to 16 bits. -// It will not check if there is space for them, -// so the caller must ensure that it has flushed recently. -// This is fastest if bits can be zero. -func (b *bitWriter) addBits16ZeroNC(value uint16, bits uint8) { - if bits == 0 { - return - } - value <<= (16 - bits) & 15 - value >>= (16 - bits) & 15 - b.bitContainer |= uint64(value) << (b.nBits & 63) - b.nBits += bits -} - -// flush will flush all pending full bytes. -// There will be at least 56 bits available for writing when this has been called. -// Using flush32 is faster, but leaves less space for writing. -func (b *bitWriter) flush() { - v := b.nBits >> 3 - switch v { - case 0: - return - case 1: - b.out = append(b.out, - byte(b.bitContainer), - ) - b.bitContainer >>= 1 << 3 - case 2: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - ) - b.bitContainer >>= 2 << 3 - case 3: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - ) - b.bitContainer >>= 3 << 3 - case 4: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - ) - b.bitContainer >>= 4 << 3 - case 5: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - ) - b.bitContainer >>= 5 << 3 - case 6: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - ) - b.bitContainer >>= 6 << 3 - case 7: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - byte(b.bitContainer>>48), - ) - b.bitContainer >>= 7 << 3 - case 8: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - byte(b.bitContainer>>48), - byte(b.bitContainer>>56), - ) - b.bitContainer = 0 - b.nBits = 0 - return - default: - panic(fmt.Errorf("bits (%d) > 64", b.nBits)) - } - b.nBits &= 7 -} - -// flush32 will flush out, so there are at least 32 bits available for writing. -func (b *bitWriter) flush32() { - if b.nBits < 32 { - return - } - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24)) - b.nBits -= 32 - b.bitContainer >>= 32 -} - -// flushAlign will flush remaining full bytes and align to next byte boundary. -func (b *bitWriter) flushAlign() { - nbBytes := (b.nBits + 7) >> 3 - for i := uint8(0); i < nbBytes; i++ { - b.out = append(b.out, byte(b.bitContainer>>(i*8))) - } - b.nBits = 0 - b.bitContainer = 0 -} - -// close will write the alignment bit and write the final byte(s) -// to the output. -func (b *bitWriter) close() error { - // End mark - b.addBits16Clean(1, 1) - // flush until next byte. - b.flushAlign() - return nil -} - -// reset and continue writing by appending to out. -func (b *bitWriter) reset(out []byte) { - b.bitContainer = 0 - b.nBits = 0 - b.out = out -} diff --git a/backend/vendor/github.com/klauspost/compress/huff0/bytereader.go b/backend/vendor/github.com/klauspost/compress/huff0/bytereader.go deleted file mode 100644 index 50bcdf6e..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/bytereader.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package huff0 - -// byteReader provides a byte reader that reads -// little endian values from a byte stream. -// The input stream is manually advanced. -// The reader performs no bounds checks. -type byteReader struct { - b []byte - off int -} - -// init will initialize the reader and set the input. -func (b *byteReader) init(in []byte) { - b.b = in - b.off = 0 -} - -// advance the stream b n bytes. -func (b *byteReader) advance(n uint) { - b.off += int(n) -} - -// Int32 returns a little endian int32 starting at current offset. -func (b byteReader) Int32() int32 { - v3 := int32(b.b[b.off+3]) - v2 := int32(b.b[b.off+2]) - v1 := int32(b.b[b.off+1]) - v0 := int32(b.b[b.off]) - return (v3 << 24) | (v2 << 16) | (v1 << 8) | v0 -} - -// Uint32 returns a little endian uint32 starting at current offset. -func (b byteReader) Uint32() uint32 { - v3 := uint32(b.b[b.off+3]) - v2 := uint32(b.b[b.off+2]) - v1 := uint32(b.b[b.off+1]) - v0 := uint32(b.b[b.off]) - return (v3 << 24) | (v2 << 16) | (v1 << 8) | v0 -} - -// unread returns the unread portion of the input. -func (b byteReader) unread() []byte { - return b.b[b.off:] -} - -// remain will return the number of bytes remaining. -func (b byteReader) remain() int { - return len(b.b) - b.off -} diff --git a/backend/vendor/github.com/klauspost/compress/huff0/compress.go b/backend/vendor/github.com/klauspost/compress/huff0/compress.go deleted file mode 100644 index f9ed5f83..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/compress.go +++ /dev/null @@ -1,657 +0,0 @@ -package huff0 - -import ( - "fmt" - "runtime" - "sync" -) - -// Compress1X will compress the input. -// The output can be decoded using Decompress1X. -// Supply a Scratch object. The scratch object contains state about re-use, -// So when sharing across independent encodes, be sure to set the re-use policy. -func Compress1X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) { - s, err = s.prepare(in) - if err != nil { - return nil, false, err - } - return compress(in, s, s.compress1X) -} - -// Compress4X will compress the input. The input is split into 4 independent blocks -// and compressed similar to Compress1X. -// The output can be decoded using Decompress4X. -// Supply a Scratch object. The scratch object contains state about re-use, -// So when sharing across independent encodes, be sure to set the re-use policy. -func Compress4X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) { - s, err = s.prepare(in) - if err != nil { - return nil, false, err - } - if false { - // TODO: compress4Xp only slightly faster. - const parallelThreshold = 8 << 10 - if len(in) < parallelThreshold || runtime.GOMAXPROCS(0) == 1 { - return compress(in, s, s.compress4X) - } - return compress(in, s, s.compress4Xp) - } - return compress(in, s, s.compress4X) -} - -func compress(in []byte, s *Scratch, compressor func(src []byte) ([]byte, error)) (out []byte, reUsed bool, err error) { - // Nuke previous table if we cannot reuse anyway. - if s.Reuse == ReusePolicyNone { - s.prevTable = s.prevTable[:0] - } - - // Create histogram, if none was provided. - maxCount := s.maxCount - var canReuse = false - if maxCount == 0 { - maxCount, canReuse = s.countSimple(in) - } else { - canReuse = s.canUseTable(s.prevTable) - } - - // We want the output size to be less than this: - wantSize := len(in) - if s.WantLogLess > 0 { - wantSize -= wantSize >> s.WantLogLess - } - - // Reset for next run. - s.clearCount = true - s.maxCount = 0 - if maxCount >= len(in) { - if maxCount > len(in) { - return nil, false, fmt.Errorf("maxCount (%d) > length (%d)", maxCount, len(in)) - } - if len(in) == 1 { - return nil, false, ErrIncompressible - } - // One symbol, use RLE - return nil, false, ErrUseRLE - } - if maxCount == 1 || maxCount < (len(in)>>7) { - // Each symbol present maximum once or too well distributed. - return nil, false, ErrIncompressible - } - if s.Reuse == ReusePolicyMust && !canReuse { - // We must reuse, but we can't. - return nil, false, ErrIncompressible - } - if (s.Reuse == ReusePolicyPrefer || s.Reuse == ReusePolicyMust) && canReuse { - keepTable := s.cTable - keepTL := s.actualTableLog - s.cTable = s.prevTable - s.actualTableLog = s.prevTableLog - s.Out, err = compressor(in) - s.cTable = keepTable - s.actualTableLog = keepTL - if err == nil && len(s.Out) < wantSize { - s.OutData = s.Out - return s.Out, true, nil - } - if s.Reuse == ReusePolicyMust { - return nil, false, ErrIncompressible - } - // Do not attempt to re-use later. - s.prevTable = s.prevTable[:0] - } - - // Calculate new table. - err = s.buildCTable() - if err != nil { - return nil, false, err - } - - if false && !s.canUseTable(s.cTable) { - panic("invalid table generated") - } - - if s.Reuse == ReusePolicyAllow && canReuse { - hSize := len(s.Out) - oldSize := s.prevTable.estimateSize(s.count[:s.symbolLen]) - newSize := s.cTable.estimateSize(s.count[:s.symbolLen]) - if oldSize <= hSize+newSize || hSize+12 >= wantSize { - // Retain cTable even if we re-use. - keepTable := s.cTable - keepTL := s.actualTableLog - - s.cTable = s.prevTable - s.actualTableLog = s.prevTableLog - s.Out, err = compressor(in) - - // Restore ctable. - s.cTable = keepTable - s.actualTableLog = keepTL - if err != nil { - return nil, false, err - } - if len(s.Out) >= wantSize { - return nil, false, ErrIncompressible - } - s.OutData = s.Out - return s.Out, true, nil - } - } - - // Use new table - err = s.cTable.write(s) - if err != nil { - s.OutTable = nil - return nil, false, err - } - s.OutTable = s.Out - - // Compress using new table - s.Out, err = compressor(in) - if err != nil { - s.OutTable = nil - return nil, false, err - } - if len(s.Out) >= wantSize { - s.OutTable = nil - return nil, false, ErrIncompressible - } - // Move current table into previous. - s.prevTable, s.prevTableLog, s.cTable = s.cTable, s.actualTableLog, s.prevTable[:0] - s.OutData = s.Out[len(s.OutTable):] - return s.Out, false, nil -} - -func (s *Scratch) compress1X(src []byte) ([]byte, error) { - return s.compress1xDo(s.Out, src) -} - -func (s *Scratch) compress1xDo(dst, src []byte) ([]byte, error) { - var bw = bitWriter{out: dst} - - // N is length divisible by 4. - n := len(src) - n -= n & 3 - cTable := s.cTable[:256] - - // Encode last bytes. - for i := len(src) & 3; i > 0; i-- { - bw.encSymbol(cTable, src[n+i-1]) - } - n -= 4 - if s.actualTableLog <= 8 { - for ; n >= 0; n -= 4 { - tmp := src[n : n+4] - // tmp should be len 4 - bw.flush32() - bw.encTwoSymbols(cTable, tmp[3], tmp[2]) - bw.encTwoSymbols(cTable, tmp[1], tmp[0]) - } - } else { - for ; n >= 0; n -= 4 { - tmp := src[n : n+4] - // tmp should be len 4 - bw.flush32() - bw.encTwoSymbols(cTable, tmp[3], tmp[2]) - bw.flush32() - bw.encTwoSymbols(cTable, tmp[1], tmp[0]) - } - } - err := bw.close() - return bw.out, err -} - -var sixZeros [6]byte - -func (s *Scratch) compress4X(src []byte) ([]byte, error) { - if len(src) < 12 { - return nil, ErrIncompressible - } - segmentSize := (len(src) + 3) / 4 - - // Add placeholder for output length - offsetIdx := len(s.Out) - s.Out = append(s.Out, sixZeros[:]...) - - for i := 0; i < 4; i++ { - toDo := src - if len(toDo) > segmentSize { - toDo = toDo[:segmentSize] - } - src = src[len(toDo):] - - var err error - idx := len(s.Out) - s.Out, err = s.compress1xDo(s.Out, toDo) - if err != nil { - return nil, err - } - // Write compressed length as little endian before block. - if i < 3 { - // Last length is not written. - length := len(s.Out) - idx - s.Out[i*2+offsetIdx] = byte(length) - s.Out[i*2+offsetIdx+1] = byte(length >> 8) - } - } - - return s.Out, nil -} - -// compress4Xp will compress 4 streams using separate goroutines. -func (s *Scratch) compress4Xp(src []byte) ([]byte, error) { - if len(src) < 12 { - return nil, ErrIncompressible - } - // Add placeholder for output length - s.Out = s.Out[:6] - - segmentSize := (len(src) + 3) / 4 - var wg sync.WaitGroup - var errs [4]error - wg.Add(4) - for i := 0; i < 4; i++ { - toDo := src - if len(toDo) > segmentSize { - toDo = toDo[:segmentSize] - } - src = src[len(toDo):] - - // Separate goroutine for each block. - go func(i int) { - s.tmpOut[i], errs[i] = s.compress1xDo(s.tmpOut[i][:0], toDo) - wg.Done() - }(i) - } - wg.Wait() - for i := 0; i < 4; i++ { - if errs[i] != nil { - return nil, errs[i] - } - o := s.tmpOut[i] - // Write compressed length as little endian before block. - if i < 3 { - // Last length is not written. - s.Out[i*2] = byte(len(o)) - s.Out[i*2+1] = byte(len(o) >> 8) - } - - // Write output. - s.Out = append(s.Out, o...) - } - return s.Out, nil -} - -// countSimple will create a simple histogram in s.count. -// Returns the biggest count. -// Does not update s.clearCount. -func (s *Scratch) countSimple(in []byte) (max int, reuse bool) { - reuse = true - for _, v := range in { - s.count[v]++ - } - m := uint32(0) - if len(s.prevTable) > 0 { - for i, v := range s.count[:] { - if v > m { - m = v - } - if v > 0 { - s.symbolLen = uint16(i) + 1 - if i >= len(s.prevTable) { - reuse = false - } else { - if s.prevTable[i].nBits == 0 { - reuse = false - } - } - } - } - return int(m), reuse - } - for i, v := range s.count[:] { - if v > m { - m = v - } - if v > 0 { - s.symbolLen = uint16(i) + 1 - } - } - return int(m), false -} - -func (s *Scratch) canUseTable(c cTable) bool { - if len(c) < int(s.symbolLen) { - return false - } - for i, v := range s.count[:s.symbolLen] { - if v != 0 && c[i].nBits == 0 { - return false - } - } - return true -} - -func (s *Scratch) validateTable(c cTable) bool { - if len(c) < int(s.symbolLen) { - return false - } - for i, v := range s.count[:s.symbolLen] { - if v != 0 { - if c[i].nBits == 0 { - return false - } - if c[i].nBits > s.actualTableLog { - return false - } - } - } - return true -} - -// minTableLog provides the minimum logSize to safely represent a distribution. -func (s *Scratch) minTableLog() uint8 { - minBitsSrc := highBit32(uint32(s.br.remain())) + 1 - minBitsSymbols := highBit32(uint32(s.symbolLen-1)) + 2 - if minBitsSrc < minBitsSymbols { - return uint8(minBitsSrc) - } - return uint8(minBitsSymbols) -} - -// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog -func (s *Scratch) optimalTableLog() { - tableLog := s.TableLog - minBits := s.minTableLog() - maxBitsSrc := uint8(highBit32(uint32(s.br.remain()-1))) - 1 - if maxBitsSrc < tableLog { - // Accuracy can be reduced - tableLog = maxBitsSrc - } - if minBits > tableLog { - tableLog = minBits - } - // Need a minimum to safely represent all symbol values - if tableLog < minTablelog { - tableLog = minTablelog - } - if tableLog > tableLogMax { - tableLog = tableLogMax - } - s.actualTableLog = tableLog -} - -type cTableEntry struct { - val uint16 - nBits uint8 - // We have 8 bits extra -} - -const huffNodesMask = huffNodesLen - 1 - -func (s *Scratch) buildCTable() error { - s.optimalTableLog() - s.huffSort() - if cap(s.cTable) < maxSymbolValue+1 { - s.cTable = make([]cTableEntry, s.symbolLen, maxSymbolValue+1) - } else { - s.cTable = s.cTable[:s.symbolLen] - for i := range s.cTable { - s.cTable[i] = cTableEntry{} - } - } - - var startNode = int16(s.symbolLen) - nonNullRank := s.symbolLen - 1 - - nodeNb := int16(startNode) - huffNode := s.nodes[1 : huffNodesLen+1] - - // This overlays the slice above, but allows "-1" index lookups. - // Different from reference implementation. - huffNode0 := s.nodes[0 : huffNodesLen+1] - - for huffNode[nonNullRank].count == 0 { - nonNullRank-- - } - - lowS := int16(nonNullRank) - nodeRoot := nodeNb + lowS - 1 - lowN := nodeNb - huffNode[nodeNb].count = huffNode[lowS].count + huffNode[lowS-1].count - huffNode[lowS].parent, huffNode[lowS-1].parent = uint16(nodeNb), uint16(nodeNb) - nodeNb++ - lowS -= 2 - for n := nodeNb; n <= nodeRoot; n++ { - huffNode[n].count = 1 << 30 - } - // fake entry, strong barrier - huffNode0[0].count = 1 << 31 - - // create parents - for nodeNb <= nodeRoot { - var n1, n2 int16 - if huffNode0[lowS+1].count < huffNode0[lowN+1].count { - n1 = lowS - lowS-- - } else { - n1 = lowN - lowN++ - } - if huffNode0[lowS+1].count < huffNode0[lowN+1].count { - n2 = lowS - lowS-- - } else { - n2 = lowN - lowN++ - } - - huffNode[nodeNb].count = huffNode0[n1+1].count + huffNode0[n2+1].count - huffNode0[n1+1].parent, huffNode0[n2+1].parent = uint16(nodeNb), uint16(nodeNb) - nodeNb++ - } - - // distribute weights (unlimited tree height) - huffNode[nodeRoot].nbBits = 0 - for n := nodeRoot - 1; n >= startNode; n-- { - huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1 - } - for n := uint16(0); n <= nonNullRank; n++ { - huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1 - } - s.actualTableLog = s.setMaxHeight(int(nonNullRank)) - maxNbBits := s.actualTableLog - - // fill result into tree (val, nbBits) - if maxNbBits > tableLogMax { - return fmt.Errorf("internal error: maxNbBits (%d) > tableLogMax (%d)", maxNbBits, tableLogMax) - } - var nbPerRank [tableLogMax + 1]uint16 - var valPerRank [16]uint16 - for _, v := range huffNode[:nonNullRank+1] { - nbPerRank[v.nbBits]++ - } - // determine stating value per rank - { - min := uint16(0) - for n := maxNbBits; n > 0; n-- { - // get starting value within each rank - valPerRank[n] = min - min += nbPerRank[n] - min >>= 1 - } - } - - // push nbBits per symbol, symbol order - for _, v := range huffNode[:nonNullRank+1] { - s.cTable[v.symbol].nBits = v.nbBits - } - - // assign value within rank, symbol order - t := s.cTable[:s.symbolLen] - for n, val := range t { - nbits := val.nBits & 15 - v := valPerRank[nbits] - t[n].val = v - valPerRank[nbits] = v + 1 - } - - return nil -} - -// huffSort will sort symbols, decreasing order. -func (s *Scratch) huffSort() { - type rankPos struct { - base uint32 - current uint32 - } - - // Clear nodes - nodes := s.nodes[:huffNodesLen+1] - s.nodes = nodes - nodes = nodes[1 : huffNodesLen+1] - - // Sort into buckets based on length of symbol count. - var rank [32]rankPos - for _, v := range s.count[:s.symbolLen] { - r := highBit32(v+1) & 31 - rank[r].base++ - } - // maxBitLength is log2(BlockSizeMax) + 1 - const maxBitLength = 18 + 1 - for n := maxBitLength; n > 0; n-- { - rank[n-1].base += rank[n].base - } - for n := range rank[:maxBitLength] { - rank[n].current = rank[n].base - } - for n, c := range s.count[:s.symbolLen] { - r := (highBit32(c+1) + 1) & 31 - pos := rank[r].current - rank[r].current++ - prev := nodes[(pos-1)&huffNodesMask] - for pos > rank[r].base && c > prev.count { - nodes[pos&huffNodesMask] = prev - pos-- - prev = nodes[(pos-1)&huffNodesMask] - } - nodes[pos&huffNodesMask] = nodeElt{count: c, symbol: byte(n)} - } - return -} - -func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { - maxNbBits := s.actualTableLog - huffNode := s.nodes[1 : huffNodesLen+1] - //huffNode = huffNode[: huffNodesLen] - - largestBits := huffNode[lastNonNull].nbBits - - // early exit : no elt > maxNbBits - if largestBits <= maxNbBits { - return largestBits - } - totalCost := int(0) - baseCost := int(1) << (largestBits - maxNbBits) - n := uint32(lastNonNull) - - for huffNode[n].nbBits > maxNbBits { - totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits)) - huffNode[n].nbBits = maxNbBits - n-- - } - // n stops at huffNode[n].nbBits <= maxNbBits - - for huffNode[n].nbBits == maxNbBits { - n-- - } - // n end at index of smallest symbol using < maxNbBits - - // renorm totalCost - totalCost >>= largestBits - maxNbBits /* note : totalCost is necessarily a multiple of baseCost */ - - // repay normalized cost - { - const noSymbol = 0xF0F0F0F0 - var rankLast [tableLogMax + 2]uint32 - - for i := range rankLast[:] { - rankLast[i] = noSymbol - } - - // Get pos of last (smallest) symbol per rank - { - currentNbBits := uint8(maxNbBits) - for pos := int(n); pos >= 0; pos-- { - if huffNode[pos].nbBits >= currentNbBits { - continue - } - currentNbBits = huffNode[pos].nbBits // < maxNbBits - rankLast[maxNbBits-currentNbBits] = uint32(pos) - } - } - - for totalCost > 0 { - nBitsToDecrease := uint8(highBit32(uint32(totalCost))) + 1 - - for ; nBitsToDecrease > 1; nBitsToDecrease-- { - highPos := rankLast[nBitsToDecrease] - lowPos := rankLast[nBitsToDecrease-1] - if highPos == noSymbol { - continue - } - if lowPos == noSymbol { - break - } - highTotal := huffNode[highPos].count - lowTotal := 2 * huffNode[lowPos].count - if highTotal <= lowTotal { - break - } - } - // only triggered when no more rank 1 symbol left => find closest one (note : there is necessarily at least one !) - // HUF_MAX_TABLELOG test just to please gcc 5+; but it should not be necessary - // FIXME: try to remove - for (nBitsToDecrease <= tableLogMax) && (rankLast[nBitsToDecrease] == noSymbol) { - nBitsToDecrease++ - } - totalCost -= 1 << (nBitsToDecrease - 1) - if rankLast[nBitsToDecrease-1] == noSymbol { - // this rank is no longer empty - rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease] - } - huffNode[rankLast[nBitsToDecrease]].nbBits++ - if rankLast[nBitsToDecrease] == 0 { - /* special case, reached largest symbol */ - rankLast[nBitsToDecrease] = noSymbol - } else { - rankLast[nBitsToDecrease]-- - if huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits-nBitsToDecrease { - rankLast[nBitsToDecrease] = noSymbol /* this rank is now empty */ - } - } - } - - for totalCost < 0 { /* Sometimes, cost correction overshoot */ - if rankLast[1] == noSymbol { /* special case : no rank 1 symbol (using maxNbBits-1); let's create one from largest rank 0 (using maxNbBits) */ - for huffNode[n].nbBits == maxNbBits { - n-- - } - huffNode[n+1].nbBits-- - rankLast[1] = n + 1 - totalCost++ - continue - } - huffNode[rankLast[1]+1].nbBits-- - rankLast[1]++ - totalCost++ - } - } - return maxNbBits -} - -type nodeElt struct { - count uint32 - parent uint16 - symbol byte - nbBits uint8 -} diff --git a/backend/vendor/github.com/klauspost/compress/huff0/decompress.go b/backend/vendor/github.com/klauspost/compress/huff0/decompress.go deleted file mode 100644 index 41703bba..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/decompress.go +++ /dev/null @@ -1,1164 +0,0 @@ -package huff0 - -import ( - "errors" - "fmt" - "io" - - "github.com/klauspost/compress/fse" -) - -type dTable struct { - single []dEntrySingle - double []dEntryDouble -} - -// single-symbols decoding -type dEntrySingle struct { - entry uint16 -} - -// double-symbols decoding -type dEntryDouble struct { - seq uint16 - nBits uint8 - len uint8 -} - -// Uses special code for all tables that are < 8 bits. -const use8BitTables = true - -// ReadTable will read a table from the input. -// The size of the input may be larger than the table definition. -// Any content remaining after the table definition will be returned. -// If no Scratch is provided a new one is allocated. -// The returned Scratch can be used for encoding or decoding input using this table. -func ReadTable(in []byte, s *Scratch) (s2 *Scratch, remain []byte, err error) { - s, err = s.prepare(in) - if err != nil { - return s, nil, err - } - if len(in) <= 1 { - return s, nil, errors.New("input too small for table") - } - iSize := in[0] - in = in[1:] - if iSize >= 128 { - // Uncompressed - oSize := iSize - 127 - iSize = (oSize + 1) / 2 - if int(iSize) > len(in) { - return s, nil, errors.New("input too small for table") - } - for n := uint8(0); n < oSize; n += 2 { - v := in[n/2] - s.huffWeight[n] = v >> 4 - s.huffWeight[n+1] = v & 15 - } - s.symbolLen = uint16(oSize) - in = in[iSize:] - } else { - if len(in) < int(iSize) { - return s, nil, fmt.Errorf("input too small for table, want %d bytes, have %d", iSize, len(in)) - } - // FSE compressed weights - s.fse.DecompressLimit = 255 - hw := s.huffWeight[:] - s.fse.Out = hw - b, err := fse.Decompress(in[:iSize], s.fse) - s.fse.Out = nil - if err != nil { - return s, nil, err - } - if len(b) > 255 { - return s, nil, errors.New("corrupt input: output table too large") - } - s.symbolLen = uint16(len(b)) - in = in[iSize:] - } - - // collect weight stats - var rankStats [16]uint32 - weightTotal := uint32(0) - for _, v := range s.huffWeight[:s.symbolLen] { - if v > tableLogMax { - return s, nil, errors.New("corrupt input: weight too large") - } - v2 := v & 15 - rankStats[v2]++ - // (1 << (v2-1)) is slower since the compiler cannot prove that v2 isn't 0. - weightTotal += (1 << v2) >> 1 - } - if weightTotal == 0 { - return s, nil, errors.New("corrupt input: weights zero") - } - - // get last non-null symbol weight (implied, total must be 2^n) - { - tableLog := highBit32(weightTotal) + 1 - if tableLog > tableLogMax { - return s, nil, errors.New("corrupt input: tableLog too big") - } - s.actualTableLog = uint8(tableLog) - // determine last weight - { - total := uint32(1) << tableLog - rest := total - weightTotal - verif := uint32(1) << highBit32(rest) - lastWeight := highBit32(rest) + 1 - if verif != rest { - // last value must be a clean power of 2 - return s, nil, errors.New("corrupt input: last value not power of two") - } - s.huffWeight[s.symbolLen] = uint8(lastWeight) - s.symbolLen++ - rankStats[lastWeight]++ - } - } - - if (rankStats[1] < 2) || (rankStats[1]&1 != 0) { - // by construction : at least 2 elts of rank 1, must be even - return s, nil, errors.New("corrupt input: min elt size, even check failed ") - } - - // TODO: Choose between single/double symbol decoding - - // Calculate starting value for each rank - { - var nextRankStart uint32 - for n := uint8(1); n < s.actualTableLog+1; n++ { - current := nextRankStart - nextRankStart += rankStats[n] << (n - 1) - rankStats[n] = current - } - } - - // fill DTable (always full size) - tSize := 1 << tableLogMax - if len(s.dt.single) != tSize { - s.dt.single = make([]dEntrySingle, tSize) - } - cTable := s.prevTable - if cap(cTable) < maxSymbolValue+1 { - cTable = make([]cTableEntry, 0, maxSymbolValue+1) - } - cTable = cTable[:maxSymbolValue+1] - s.prevTable = cTable[:s.symbolLen] - s.prevTableLog = s.actualTableLog - - for n, w := range s.huffWeight[:s.symbolLen] { - if w == 0 { - cTable[n] = cTableEntry{ - val: 0, - nBits: 0, - } - continue - } - length := (uint32(1) << w) >> 1 - d := dEntrySingle{ - entry: uint16(s.actualTableLog+1-w) | (uint16(n) << 8), - } - - rank := &rankStats[w] - cTable[n] = cTableEntry{ - val: uint16(*rank >> (w - 1)), - nBits: uint8(d.entry), - } - - single := s.dt.single[*rank : *rank+length] - for i := range single { - single[i] = d - } - *rank += length - } - - return s, in, nil -} - -// Decompress1X will decompress a 1X encoded stream. -// The length of the supplied input must match the end of a block exactly. -// Before this is called, the table must be initialized with ReadTable unless -// the encoder re-used the table. -// deprecated: Use the stateless Decoder() to get a concurrent version. -func (s *Scratch) Decompress1X(in []byte) (out []byte, err error) { - if cap(s.Out) < s.MaxDecodedSize { - s.Out = make([]byte, s.MaxDecodedSize) - } - s.Out = s.Out[:0:s.MaxDecodedSize] - s.Out, err = s.Decoder().Decompress1X(s.Out, in) - return s.Out, err -} - -// Decompress4X will decompress a 4X encoded stream. -// Before this is called, the table must be initialized with ReadTable unless -// the encoder re-used the table. -// The length of the supplied input must match the end of a block exactly. -// The destination size of the uncompressed data must be known and provided. -// deprecated: Use the stateless Decoder() to get a concurrent version. -func (s *Scratch) Decompress4X(in []byte, dstSize int) (out []byte, err error) { - if dstSize > s.MaxDecodedSize { - return nil, ErrMaxDecodedSizeExceeded - } - if cap(s.Out) < dstSize { - s.Out = make([]byte, s.MaxDecodedSize) - } - s.Out = s.Out[:0:dstSize] - s.Out, err = s.Decoder().Decompress4X(s.Out, in) - return s.Out, err -} - -// Decoder will return a stateless decoder that can be used by multiple -// decompressors concurrently. -// Before this is called, the table must be initialized with ReadTable. -// The Decoder is still linked to the scratch buffer so that cannot be reused. -// However, it is safe to discard the scratch. -func (s *Scratch) Decoder() *Decoder { - return &Decoder{ - dt: s.dt, - actualTableLog: s.actualTableLog, - } -} - -// Decoder provides stateless decoding. -type Decoder struct { - dt dTable - actualTableLog uint8 -} - -// Decompress1X will decompress a 1X encoded stream. -// The cap of the output buffer will be the maximum decompressed size. -// The length of the supplied input must match the end of a block exactly. -func (d *Decoder) Decompress1X(dst, src []byte) ([]byte, error) { - if len(d.dt.single) == 0 { - return nil, errors.New("no table loaded") - } - if use8BitTables && d.actualTableLog <= 8 { - return d.decompress1X8Bit(dst, src) - } - var br bitReaderShifted - err := br.init(src) - if err != nil { - return dst, err - } - maxDecodedSize := cap(dst) - dst = dst[:0] - - // Avoid bounds check by always having full sized table. - const tlSize = 1 << tableLogMax - const tlMask = tlSize - 1 - dt := d.dt.single[:tlSize] - - // Use temp table to avoid bound checks/append penalty. - var buf [256]byte - var off uint8 - - for br.off >= 8 { - br.fillFast() - v := dt[br.peekBitsFast(d.actualTableLog)&tlMask] - br.advance(uint8(v.entry)) - buf[off+0] = uint8(v.entry >> 8) - - v = dt[br.peekBitsFast(d.actualTableLog)&tlMask] - br.advance(uint8(v.entry)) - buf[off+1] = uint8(v.entry >> 8) - - // Refill - br.fillFast() - - v = dt[br.peekBitsFast(d.actualTableLog)&tlMask] - br.advance(uint8(v.entry)) - buf[off+2] = uint8(v.entry >> 8) - - v = dt[br.peekBitsFast(d.actualTableLog)&tlMask] - br.advance(uint8(v.entry)) - buf[off+3] = uint8(v.entry >> 8) - - off += 4 - if off == 0 { - if len(dst)+256 > maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - dst = append(dst, buf[:]...) - } - } - - if len(dst)+int(off) > maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - dst = append(dst, buf[:off]...) - - // br < 8, so uint8 is fine - bitsLeft := uint8(br.off)*8 + 64 - br.bitsRead - for bitsLeft > 0 { - br.fill() - if false && br.bitsRead >= 32 { - if br.off >= 4 { - v := br.in[br.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - br.value = (br.value << 32) | uint64(low) - br.bitsRead -= 32 - br.off -= 4 - } else { - for br.off > 0 { - br.value = (br.value << 8) | uint64(br.in[br.off-1]) - br.bitsRead -= 8 - br.off-- - } - } - } - if len(dst) >= maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - v := d.dt.single[br.peekBitsFast(d.actualTableLog)&tlMask] - nBits := uint8(v.entry) - br.advance(nBits) - bitsLeft -= nBits - dst = append(dst, uint8(v.entry>>8)) - } - return dst, br.close() -} - -// decompress1X8Bit will decompress a 1X encoded stream with tablelog <= 8. -// The cap of the output buffer will be the maximum decompressed size. -// The length of the supplied input must match the end of a block exactly. -func (d *Decoder) decompress1X8Bit(dst, src []byte) ([]byte, error) { - if d.actualTableLog == 8 { - return d.decompress1X8BitExactly(dst, src) - } - var br bitReaderBytes - err := br.init(src) - if err != nil { - return dst, err - } - maxDecodedSize := cap(dst) - dst = dst[:0] - - // Avoid bounds check by always having full sized table. - dt := d.dt.single[:256] - - // Use temp table to avoid bound checks/append penalty. - var buf [256]byte - var off uint8 - - shift := (8 - d.actualTableLog) & 7 - - //fmt.Printf("mask: %b, tl:%d\n", mask, d.actualTableLog) - for br.off >= 4 { - br.fillFast() - v := dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+0] = uint8(v.entry >> 8) - - v = dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+1] = uint8(v.entry >> 8) - - v = dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+2] = uint8(v.entry >> 8) - - v = dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+3] = uint8(v.entry >> 8) - - off += 4 - if off == 0 { - if len(dst)+256 > maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - dst = append(dst, buf[:]...) - } - } - - if len(dst)+int(off) > maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - dst = append(dst, buf[:off]...) - - // br < 4, so uint8 is fine - bitsLeft := int8(uint8(br.off)*8 + (64 - br.bitsRead)) - for bitsLeft > 0 { - if br.bitsRead >= 64-8 { - for br.off > 0 { - br.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8) - br.bitsRead -= 8 - br.off-- - } - } - if len(dst) >= maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - v := dt[br.peekByteFast()>>shift] - nBits := uint8(v.entry) - br.advance(nBits) - bitsLeft -= int8(nBits) - dst = append(dst, uint8(v.entry>>8)) - } - return dst, br.close() -} - -// decompress1X8Bit will decompress a 1X encoded stream with tablelog <= 8. -// The cap of the output buffer will be the maximum decompressed size. -// The length of the supplied input must match the end of a block exactly. -func (d *Decoder) decompress1X8BitExactly(dst, src []byte) ([]byte, error) { - var br bitReaderBytes - err := br.init(src) - if err != nil { - return dst, err - } - maxDecodedSize := cap(dst) - dst = dst[:0] - - // Avoid bounds check by always having full sized table. - dt := d.dt.single[:256] - - // Use temp table to avoid bound checks/append penalty. - var buf [256]byte - var off uint8 - - const shift = 0 - - //fmt.Printf("mask: %b, tl:%d\n", mask, d.actualTableLog) - for br.off >= 4 { - br.fillFast() - v := dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+0] = uint8(v.entry >> 8) - - v = dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+1] = uint8(v.entry >> 8) - - v = dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+2] = uint8(v.entry >> 8) - - v = dt[br.peekByteFast()>>shift] - br.advance(uint8(v.entry)) - buf[off+3] = uint8(v.entry >> 8) - - off += 4 - if off == 0 { - if len(dst)+256 > maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - dst = append(dst, buf[:]...) - } - } - - if len(dst)+int(off) > maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - dst = append(dst, buf[:off]...) - - // br < 4, so uint8 is fine - bitsLeft := int8(uint8(br.off)*8 + (64 - br.bitsRead)) - for bitsLeft > 0 { - if br.bitsRead >= 64-8 { - for br.off > 0 { - br.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8) - br.bitsRead -= 8 - br.off-- - } - } - if len(dst) >= maxDecodedSize { - br.close() - return nil, ErrMaxDecodedSizeExceeded - } - v := dt[br.peekByteFast()>>shift] - nBits := uint8(v.entry) - br.advance(nBits) - bitsLeft -= int8(nBits) - dst = append(dst, uint8(v.entry>>8)) - } - return dst, br.close() -} - -// Decompress4X will decompress a 4X encoded stream. -// The length of the supplied input must match the end of a block exactly. -// The *capacity* of the dst slice must match the destination size of -// the uncompressed data exactly. -func (d *Decoder) Decompress4X(dst, src []byte) ([]byte, error) { - if len(d.dt.single) == 0 { - return nil, errors.New("no table loaded") - } - if len(src) < 6+(4*1) { - return nil, errors.New("input too small") - } - if use8BitTables && d.actualTableLog <= 8 { - return d.decompress4X8bit(dst, src) - } - - var br [4]bitReaderShifted - start := 6 - for i := 0; i < 3; i++ { - length := int(src[i*2]) | (int(src[i*2+1]) << 8) - if start+length >= len(src) { - return nil, errors.New("truncated input (or invalid offset)") - } - err := br[i].init(src[start : start+length]) - if err != nil { - return nil, err - } - start += length - } - err := br[3].init(src[start:]) - if err != nil { - return nil, err - } - - // destination, offset to match first output - dstSize := cap(dst) - dst = dst[:dstSize] - out := dst - dstEvery := (dstSize + 3) / 4 - - const tlSize = 1 << tableLogMax - const tlMask = tlSize - 1 - single := d.dt.single[:tlSize] - - // Use temp table to avoid bound checks/append penalty. - var buf [256]byte - var off uint8 - var decoded int - - // Decode 2 values from each decoder/loop. - const bufoff = 256 / 4 - for { - if br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4 { - break - } - - { - const stream = 0 - const stream2 = 1 - br[stream].fillFast() - br[stream2].fillFast() - - val := br[stream].peekBitsFast(d.actualTableLog) - v := single[val&tlMask] - br[stream].advance(uint8(v.entry)) - buf[off+bufoff*stream] = uint8(v.entry >> 8) - - val2 := br[stream2].peekBitsFast(d.actualTableLog) - v2 := single[val2&tlMask] - br[stream2].advance(uint8(v2.entry)) - buf[off+bufoff*stream2] = uint8(v2.entry >> 8) - - val = br[stream].peekBitsFast(d.actualTableLog) - v = single[val&tlMask] - br[stream].advance(uint8(v.entry)) - buf[off+bufoff*stream+1] = uint8(v.entry >> 8) - - val2 = br[stream2].peekBitsFast(d.actualTableLog) - v2 = single[val2&tlMask] - br[stream2].advance(uint8(v2.entry)) - buf[off+bufoff*stream2+1] = uint8(v2.entry >> 8) - } - - { - const stream = 2 - const stream2 = 3 - br[stream].fillFast() - br[stream2].fillFast() - - val := br[stream].peekBitsFast(d.actualTableLog) - v := single[val&tlMask] - br[stream].advance(uint8(v.entry)) - buf[off+bufoff*stream] = uint8(v.entry >> 8) - - val2 := br[stream2].peekBitsFast(d.actualTableLog) - v2 := single[val2&tlMask] - br[stream2].advance(uint8(v2.entry)) - buf[off+bufoff*stream2] = uint8(v2.entry >> 8) - - val = br[stream].peekBitsFast(d.actualTableLog) - v = single[val&tlMask] - br[stream].advance(uint8(v.entry)) - buf[off+bufoff*stream+1] = uint8(v.entry >> 8) - - val2 = br[stream2].peekBitsFast(d.actualTableLog) - v2 = single[val2&tlMask] - br[stream2].advance(uint8(v2.entry)) - buf[off+bufoff*stream2+1] = uint8(v2.entry >> 8) - } - - off += 2 - - if off == bufoff { - if bufoff > dstEvery { - return nil, errors.New("corruption detected: stream overrun 1") - } - copy(out, buf[:bufoff]) - copy(out[dstEvery:], buf[bufoff:bufoff*2]) - copy(out[dstEvery*2:], buf[bufoff*2:bufoff*3]) - copy(out[dstEvery*3:], buf[bufoff*3:bufoff*4]) - off = 0 - out = out[bufoff:] - decoded += 256 - // There must at least be 3 buffers left. - if len(out) < dstEvery*3 { - return nil, errors.New("corruption detected: stream overrun 2") - } - } - } - if off > 0 { - ioff := int(off) - if len(out) < dstEvery*3+ioff { - return nil, errors.New("corruption detected: stream overrun 3") - } - copy(out, buf[:off]) - copy(out[dstEvery:dstEvery+ioff], buf[bufoff:bufoff*2]) - copy(out[dstEvery*2:dstEvery*2+ioff], buf[bufoff*2:bufoff*3]) - copy(out[dstEvery*3:dstEvery*3+ioff], buf[bufoff*3:bufoff*4]) - decoded += int(off) * 4 - out = out[off:] - } - - // Decode remaining. - for i := range br { - offset := dstEvery * i - br := &br[i] - bitsLeft := br.off*8 + uint(64-br.bitsRead) - for bitsLeft > 0 { - br.fill() - if false && br.bitsRead >= 32 { - if br.off >= 4 { - v := br.in[br.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - br.value = (br.value << 32) | uint64(low) - br.bitsRead -= 32 - br.off -= 4 - } else { - for br.off > 0 { - br.value = (br.value << 8) | uint64(br.in[br.off-1]) - br.bitsRead -= 8 - br.off-- - } - } - } - // end inline... - if offset >= len(out) { - return nil, errors.New("corruption detected: stream overrun 4") - } - - // Read value and increment offset. - val := br.peekBitsFast(d.actualTableLog) - v := single[val&tlMask].entry - nBits := uint8(v) - br.advance(nBits) - bitsLeft -= uint(nBits) - out[offset] = uint8(v >> 8) - offset++ - } - decoded += offset - dstEvery*i - err = br.close() - if err != nil { - return nil, err - } - } - if dstSize != decoded { - return nil, errors.New("corruption detected: short output block") - } - return dst, nil -} - -// Decompress4X will decompress a 4X encoded stream. -// The length of the supplied input must match the end of a block exactly. -// The *capacity* of the dst slice must match the destination size of -// the uncompressed data exactly. -func (d *Decoder) decompress4X8bit(dst, src []byte) ([]byte, error) { - if d.actualTableLog == 8 { - return d.decompress4X8bitExactly(dst, src) - } - - var br [4]bitReaderBytes - start := 6 - for i := 0; i < 3; i++ { - length := int(src[i*2]) | (int(src[i*2+1]) << 8) - if start+length >= len(src) { - return nil, errors.New("truncated input (or invalid offset)") - } - err := br[i].init(src[start : start+length]) - if err != nil { - return nil, err - } - start += length - } - err := br[3].init(src[start:]) - if err != nil { - return nil, err - } - - // destination, offset to match first output - dstSize := cap(dst) - dst = dst[:dstSize] - out := dst - dstEvery := (dstSize + 3) / 4 - - shift := (8 - d.actualTableLog) & 7 - - const tlSize = 1 << 8 - const tlMask = tlSize - 1 - single := d.dt.single[:tlSize] - - // Use temp table to avoid bound checks/append penalty. - var buf [256]byte - var off uint8 - var decoded int - - // Decode 4 values from each decoder/loop. - const bufoff = 256 / 4 - for { - if br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4 { - break - } - - { - // Interleave 2 decodes. - const stream = 0 - const stream2 = 1 - br[stream].fillFast() - br[stream2].fillFast() - - v := single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 := single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+1] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+1] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+2] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+3] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+3] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - } - - { - const stream = 2 - const stream2 = 3 - br[stream].fillFast() - br[stream2].fillFast() - - v := single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 := single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+1] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+1] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+2] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+3] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+3] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - } - - off += 4 - - if off == bufoff { - if bufoff > dstEvery { - return nil, errors.New("corruption detected: stream overrun 1") - } - copy(out, buf[:bufoff]) - copy(out[dstEvery:], buf[bufoff:bufoff*2]) - copy(out[dstEvery*2:], buf[bufoff*2:bufoff*3]) - copy(out[dstEvery*3:], buf[bufoff*3:bufoff*4]) - off = 0 - out = out[bufoff:] - decoded += 256 - // There must at least be 3 buffers left. - if len(out) < dstEvery*3 { - return nil, errors.New("corruption detected: stream overrun 2") - } - } - } - if off > 0 { - ioff := int(off) - if len(out) < dstEvery*3+ioff { - return nil, errors.New("corruption detected: stream overrun 3") - } - copy(out, buf[:off]) - copy(out[dstEvery:dstEvery+ioff], buf[bufoff:bufoff*2]) - copy(out[dstEvery*2:dstEvery*2+ioff], buf[bufoff*2:bufoff*3]) - copy(out[dstEvery*3:dstEvery*3+ioff], buf[bufoff*3:bufoff*4]) - decoded += int(off) * 4 - out = out[off:] - } - - // Decode remaining. - for i := range br { - offset := dstEvery * i - br := &br[i] - bitsLeft := int(br.off*8) + int(64-br.bitsRead) - for bitsLeft > 0 { - if br.finished() { - return nil, io.ErrUnexpectedEOF - } - if br.bitsRead >= 56 { - if br.off >= 4 { - v := br.in[br.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - br.value |= uint64(low) << (br.bitsRead - 32) - br.bitsRead -= 32 - br.off -= 4 - } else { - for br.off > 0 { - br.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8) - br.bitsRead -= 8 - br.off-- - } - } - } - // end inline... - if offset >= len(out) { - return nil, errors.New("corruption detected: stream overrun 4") - } - - // Read value and increment offset. - v := single[br.peekByteFast()>>shift].entry - nBits := uint8(v) - br.advance(nBits) - bitsLeft -= int(nBits) - out[offset] = uint8(v >> 8) - offset++ - } - decoded += offset - dstEvery*i - err = br.close() - if err != nil { - return nil, err - } - } - if dstSize != decoded { - return nil, errors.New("corruption detected: short output block") - } - return dst, nil -} - -// Decompress4X will decompress a 4X encoded stream. -// The length of the supplied input must match the end of a block exactly. -// The *capacity* of the dst slice must match the destination size of -// the uncompressed data exactly. -func (d *Decoder) decompress4X8bitExactly(dst, src []byte) ([]byte, error) { - var br [4]bitReaderBytes - start := 6 - for i := 0; i < 3; i++ { - length := int(src[i*2]) | (int(src[i*2+1]) << 8) - if start+length >= len(src) { - return nil, errors.New("truncated input (or invalid offset)") - } - err := br[i].init(src[start : start+length]) - if err != nil { - return nil, err - } - start += length - } - err := br[3].init(src[start:]) - if err != nil { - return nil, err - } - - // destination, offset to match first output - dstSize := cap(dst) - dst = dst[:dstSize] - out := dst - dstEvery := (dstSize + 3) / 4 - - const shift = 0 - const tlSize = 1 << 8 - const tlMask = tlSize - 1 - single := d.dt.single[:tlSize] - - // Use temp table to avoid bound checks/append penalty. - var buf [256]byte - var off uint8 - var decoded int - - // Decode 4 values from each decoder/loop. - const bufoff = 256 / 4 - for { - if br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4 { - break - } - - { - // Interleave 2 decodes. - const stream = 0 - const stream2 = 1 - br[stream].fillFast() - br[stream2].fillFast() - - v := single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 := single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+1] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+1] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+2] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+3] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+3] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - } - - { - const stream = 2 - const stream2 = 3 - br[stream].fillFast() - br[stream2].fillFast() - - v := single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 := single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+1] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+1] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+2] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+2] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - - v = single[br[stream].peekByteFast()>>shift].entry - buf[off+bufoff*stream+3] = uint8(v >> 8) - br[stream].advance(uint8(v)) - - v2 = single[br[stream2].peekByteFast()>>shift].entry - buf[off+bufoff*stream2+3] = uint8(v2 >> 8) - br[stream2].advance(uint8(v2)) - } - - off += 4 - - if off == bufoff { - if bufoff > dstEvery { - return nil, errors.New("corruption detected: stream overrun 1") - } - copy(out, buf[:bufoff]) - copy(out[dstEvery:], buf[bufoff:bufoff*2]) - copy(out[dstEvery*2:], buf[bufoff*2:bufoff*3]) - copy(out[dstEvery*3:], buf[bufoff*3:bufoff*4]) - off = 0 - out = out[bufoff:] - decoded += 256 - // There must at least be 3 buffers left. - if len(out) < dstEvery*3 { - return nil, errors.New("corruption detected: stream overrun 2") - } - } - } - if off > 0 { - ioff := int(off) - if len(out) < dstEvery*3+ioff { - return nil, errors.New("corruption detected: stream overrun 3") - } - copy(out, buf[:off]) - copy(out[dstEvery:dstEvery+ioff], buf[bufoff:bufoff*2]) - copy(out[dstEvery*2:dstEvery*2+ioff], buf[bufoff*2:bufoff*3]) - copy(out[dstEvery*3:dstEvery*3+ioff], buf[bufoff*3:bufoff*4]) - decoded += int(off) * 4 - out = out[off:] - } - - // Decode remaining. - for i := range br { - offset := dstEvery * i - br := &br[i] - bitsLeft := int(br.off*8) + int(64-br.bitsRead) - for bitsLeft > 0 { - if br.finished() { - return nil, io.ErrUnexpectedEOF - } - if br.bitsRead >= 56 { - if br.off >= 4 { - v := br.in[br.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - br.value |= uint64(low) << (br.bitsRead - 32) - br.bitsRead -= 32 - br.off -= 4 - } else { - for br.off > 0 { - br.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8) - br.bitsRead -= 8 - br.off-- - } - } - } - // end inline... - if offset >= len(out) { - return nil, errors.New("corruption detected: stream overrun 4") - } - - // Read value and increment offset. - v := single[br.peekByteFast()>>shift].entry - nBits := uint8(v) - br.advance(nBits) - bitsLeft -= int(nBits) - out[offset] = uint8(v >> 8) - offset++ - } - decoded += offset - dstEvery*i - err = br.close() - if err != nil { - return nil, err - } - } - if dstSize != decoded { - return nil, errors.New("corruption detected: short output block") - } - return dst, nil -} - -// matches will compare a decoding table to a coding table. -// Errors are written to the writer. -// Nothing will be written if table is ok. -func (s *Scratch) matches(ct cTable, w io.Writer) { - if s == nil || len(s.dt.single) == 0 { - return - } - dt := s.dt.single[:1<>8) == byte(sym) { - fmt.Fprintf(w, "symbol %x has decoder, but no encoder\n", sym) - errs++ - break - } - } - if errs == 0 { - broken-- - } - continue - } - // Unused bits in input - ub := tablelog - enc.nBits - top := enc.val << ub - // decoder looks at top bits. - dec := dt[top] - if uint8(dec.entry) != enc.nBits { - fmt.Fprintf(w, "symbol 0x%x bit size mismatch (enc: %d, dec:%d).\n", sym, enc.nBits, uint8(dec.entry)) - errs++ - } - if uint8(dec.entry>>8) != uint8(sym) { - fmt.Fprintf(w, "symbol 0x%x decoder output mismatch (enc: %d, dec:%d).\n", sym, sym, uint8(dec.entry>>8)) - errs++ - } - if errs > 0 { - fmt.Fprintf(w, "%d errros in base, stopping\n", errs) - continue - } - // Ensure that all combinations are covered. - for i := uint16(0); i < (1 << ub); i++ { - vval := top | i - dec := dt[vval] - if uint8(dec.entry) != enc.nBits { - fmt.Fprintf(w, "symbol 0x%x bit size mismatch (enc: %d, dec:%d).\n", vval, enc.nBits, uint8(dec.entry)) - errs++ - } - if uint8(dec.entry>>8) != uint8(sym) { - fmt.Fprintf(w, "symbol 0x%x decoder output mismatch (enc: %d, dec:%d).\n", vval, sym, uint8(dec.entry>>8)) - errs++ - } - if errs > 20 { - fmt.Fprintf(w, "%d errros, stopping\n", errs) - break - } - } - if errs == 0 { - ok++ - broken-- - } - } - if broken > 0 { - fmt.Fprintf(w, "%d broken, %d ok\n", broken, ok) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/huff0/huff0.go b/backend/vendor/github.com/klauspost/compress/huff0/huff0.go deleted file mode 100644 index 7ec2022b..00000000 --- a/backend/vendor/github.com/klauspost/compress/huff0/huff0.go +++ /dev/null @@ -1,273 +0,0 @@ -// Package huff0 provides fast huffman encoding as used in zstd. -// -// See README.md at https://github.com/klauspost/compress/tree/master/huff0 for details. -package huff0 - -import ( - "errors" - "fmt" - "math" - "math/bits" - - "github.com/klauspost/compress/fse" -) - -const ( - maxSymbolValue = 255 - - // zstandard limits tablelog to 11, see: - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#huffman-tree-description - tableLogMax = 11 - tableLogDefault = 11 - minTablelog = 5 - huffNodesLen = 512 - - // BlockSizeMax is maximum input size for a single block uncompressed. - BlockSizeMax = 1<<18 - 1 -) - -var ( - // ErrIncompressible is returned when input is judged to be too hard to compress. - ErrIncompressible = errors.New("input is not compressible") - - // ErrUseRLE is returned from the compressor when the input is a single byte value repeated. - ErrUseRLE = errors.New("input is single value repeated") - - // ErrTooBig is return if input is too large for a single block. - ErrTooBig = errors.New("input too big") - - // ErrMaxDecodedSizeExceeded is return if input is too large for a single block. - ErrMaxDecodedSizeExceeded = errors.New("maximum output size exceeded") -) - -type ReusePolicy uint8 - -const ( - // ReusePolicyAllow will allow reuse if it produces smaller output. - ReusePolicyAllow ReusePolicy = iota - - // ReusePolicyPrefer will re-use aggressively if possible. - // This will not check if a new table will produce smaller output, - // except if the current table is impossible to use or - // compressed output is bigger than input. - ReusePolicyPrefer - - // ReusePolicyNone will disable re-use of tables. - // This is slightly faster than ReusePolicyAllow but may produce larger output. - ReusePolicyNone - - // ReusePolicyMust must allow reuse and produce smaller output. - ReusePolicyMust -) - -type Scratch struct { - count [maxSymbolValue + 1]uint32 - - // Per block parameters. - // These can be used to override compression parameters of the block. - // Do not touch, unless you know what you are doing. - - // Out is output buffer. - // If the scratch is re-used before the caller is done processing the output, - // set this field to nil. - // Otherwise the output buffer will be re-used for next Compression/Decompression step - // and allocation will be avoided. - Out []byte - - // OutTable will contain the table data only, if a new table has been generated. - // Slice of the returned data. - OutTable []byte - - // OutData will contain the compressed data. - // Slice of the returned data. - OutData []byte - - // MaxDecodedSize will set the maximum allowed output size. - // This value will automatically be set to BlockSizeMax if not set. - // Decoders will return ErrMaxDecodedSizeExceeded is this limit is exceeded. - MaxDecodedSize int - - br byteReader - - // MaxSymbolValue will override the maximum symbol value of the next block. - MaxSymbolValue uint8 - - // TableLog will attempt to override the tablelog for the next block. - // Must be <= 11 and >= 5. - TableLog uint8 - - // Reuse will specify the reuse policy - Reuse ReusePolicy - - // WantLogLess allows to specify a log 2 reduction that should at least be achieved, - // otherwise the block will be returned as incompressible. - // The reduction should then at least be (input size >> WantLogLess) - // If WantLogLess == 0 any improvement will do. - WantLogLess uint8 - - symbolLen uint16 // Length of active part of the symbol table. - maxCount int // count of the most probable symbol - clearCount bool // clear count - actualTableLog uint8 // Selected tablelog. - prevTableLog uint8 // Tablelog for previous table - prevTable cTable // Table used for previous compression. - cTable cTable // compression table - dt dTable // decompression table - nodes []nodeElt - tmpOut [4][]byte - fse *fse.Scratch - huffWeight [maxSymbolValue + 1]byte -} - -// TransferCTable will transfer the previously used compression table. -func (s *Scratch) TransferCTable(src *Scratch) { - if cap(s.prevTable) < len(src.prevTable) { - s.prevTable = make(cTable, 0, maxSymbolValue+1) - } - s.prevTable = s.prevTable[:len(src.prevTable)] - copy(s.prevTable, src.prevTable) - s.prevTableLog = src.prevTableLog -} - -func (s *Scratch) prepare(in []byte) (*Scratch, error) { - if len(in) > BlockSizeMax { - return nil, ErrTooBig - } - if s == nil { - s = &Scratch{} - } - if s.MaxSymbolValue == 0 { - s.MaxSymbolValue = maxSymbolValue - } - if s.TableLog == 0 { - s.TableLog = tableLogDefault - } - if s.TableLog > tableLogMax || s.TableLog < minTablelog { - return nil, fmt.Errorf(" invalid tableLog %d (%d -> %d)", s.TableLog, minTablelog, tableLogMax) - } - if s.MaxDecodedSize <= 0 || s.MaxDecodedSize > BlockSizeMax { - s.MaxDecodedSize = BlockSizeMax - } - if s.clearCount && s.maxCount == 0 { - for i := range s.count { - s.count[i] = 0 - } - s.clearCount = false - } - if cap(s.Out) == 0 { - s.Out = make([]byte, 0, len(in)) - } - s.Out = s.Out[:0] - - s.OutTable = nil - s.OutData = nil - if cap(s.nodes) < huffNodesLen+1 { - s.nodes = make([]nodeElt, 0, huffNodesLen+1) - } - s.nodes = s.nodes[:0] - if s.fse == nil { - s.fse = &fse.Scratch{} - } - s.br.init(in) - - return s, nil -} - -type cTable []cTableEntry - -func (c cTable) write(s *Scratch) error { - var ( - // precomputed conversion table - bitsToWeight [tableLogMax + 1]byte - huffLog = s.actualTableLog - // last weight is not saved. - maxSymbolValue = uint8(s.symbolLen - 1) - huffWeight = s.huffWeight[:256] - ) - const ( - maxFSETableLog = 6 - ) - // convert to weight - bitsToWeight[0] = 0 - for n := uint8(1); n < huffLog+1; n++ { - bitsToWeight[n] = huffLog + 1 - n - } - - // Acquire histogram for FSE. - hist := s.fse.Histogram() - hist = hist[:256] - for i := range hist[:16] { - hist[i] = 0 - } - for n := uint8(0); n < maxSymbolValue; n++ { - v := bitsToWeight[c[n].nBits] & 15 - huffWeight[n] = v - hist[v]++ - } - - // FSE compress if feasible. - if maxSymbolValue >= 2 { - huffMaxCnt := uint32(0) - huffMax := uint8(0) - for i, v := range hist[:16] { - if v == 0 { - continue - } - huffMax = byte(i) - if v > huffMaxCnt { - huffMaxCnt = v - } - } - s.fse.HistogramFinished(huffMax, int(huffMaxCnt)) - s.fse.TableLog = maxFSETableLog - b, err := fse.Compress(huffWeight[:maxSymbolValue], s.fse) - if err == nil && len(b) < int(s.symbolLen>>1) { - s.Out = append(s.Out, uint8(len(b))) - s.Out = append(s.Out, b...) - return nil - } - // Unable to compress (RLE/uncompressible) - } - // write raw values as 4-bits (max : 15) - if maxSymbolValue > (256 - 128) { - // should not happen : likely means source cannot be compressed - return ErrIncompressible - } - op := s.Out - // special case, pack weights 4 bits/weight. - op = append(op, 128|(maxSymbolValue-1)) - // be sure it doesn't cause msan issue in final combination - huffWeight[maxSymbolValue] = 0 - for n := uint16(0); n < uint16(maxSymbolValue); n += 2 { - op = append(op, (huffWeight[n]<<4)|huffWeight[n+1]) - } - s.Out = op - return nil -} - -// estimateSize returns the estimated size in bytes of the input represented in the -// histogram supplied. -func (c cTable) estimateSize(hist []uint32) int { - nbBits := uint32(7) - for i, v := range c[:len(hist)] { - nbBits += uint32(v.nBits) * hist[i] - } - return int(nbBits >> 3) -} - -// minSize returns the minimum possible size considering the shannon limit. -func (s *Scratch) minSize(total int) int { - nbBits := float64(7) - fTotal := float64(total) - for _, v := range s.count[:s.symbolLen] { - n := float64(v) - if n > 0 { - nbBits += math.Log2(fTotal/n) * n - } - } - return int(nbBits) >> 3 -} - -func highBit32(val uint32) (n uint32) { - return uint32(bits.Len32(val) - 1) -} diff --git a/backend/vendor/github.com/klauspost/compress/snappy/.gitignore b/backend/vendor/github.com/klauspost/compress/snappy/.gitignore deleted file mode 100644 index 042091d9..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -cmd/snappytool/snappytool -testdata/bench - -# These explicitly listed benchmark data files are for an obsolete version of -# snappy_test.go. -testdata/alice29.txt -testdata/asyoulik.txt -testdata/fireworks.jpeg -testdata/geo.protodata -testdata/html -testdata/html_x_4 -testdata/kppkn.gtb -testdata/lcet10.txt -testdata/paper-100k.pdf -testdata/plrabn12.txt -testdata/urls.10K diff --git a/backend/vendor/github.com/klauspost/compress/snappy/AUTHORS b/backend/vendor/github.com/klauspost/compress/snappy/AUTHORS deleted file mode 100644 index bcfa1952..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/AUTHORS +++ /dev/null @@ -1,15 +0,0 @@ -# This is the official list of Snappy-Go authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS files. -# See the latter for an explanation. - -# Names should be added to this file as -# Name or Organization -# The email address is not required for organizations. - -# Please keep the list sorted. - -Damian Gryski -Google Inc. -Jan Mercl <0xjnml@gmail.com> -Rodolfo Carvalho -Sebastien Binet diff --git a/backend/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS b/backend/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS deleted file mode 100644 index 931ae316..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS +++ /dev/null @@ -1,37 +0,0 @@ -# This is the official list of people who can contribute -# (and typically have contributed) code to the Snappy-Go repository. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# The submission process automatically checks to make sure -# that people submitting code are listed in this file (by email address). -# -# Names should be added to this file only after verifying that -# the individual or the individual's organization has agreed to -# the appropriate Contributor License Agreement, found here: -# -# http://code.google.com/legal/individual-cla-v1.0.html -# http://code.google.com/legal/corporate-cla-v1.0.html -# -# The agreement for individuals can be filled out on the web. -# -# When adding J Random Contributor's name to this file, -# either J's name or J's organization's name should be -# added to the AUTHORS file, depending on whether the -# individual or corporate CLA was used. - -# Names should be added to this file like so: -# Name - -# Please keep the list sorted. - -Damian Gryski -Jan Mercl <0xjnml@gmail.com> -Kai Backman -Marc-Antoine Ruel -Nigel Tao -Rob Pike -Rodolfo Carvalho -Russ Cox -Sebastien Binet diff --git a/backend/vendor/github.com/klauspost/compress/snappy/LICENSE b/backend/vendor/github.com/klauspost/compress/snappy/LICENSE deleted file mode 100644 index 6050c10f..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/klauspost/compress/snappy/README b/backend/vendor/github.com/klauspost/compress/snappy/README deleted file mode 100644 index cea12879..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/README +++ /dev/null @@ -1,107 +0,0 @@ -The Snappy compression format in the Go programming language. - -To download and install from source: -$ go get github.com/golang/snappy - -Unless otherwise noted, the Snappy-Go source files are distributed -under the BSD-style license found in the LICENSE file. - - - -Benchmarks. - -The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten -or so files, the same set used by the C++ Snappy code (github.com/google/snappy -and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @ -3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29: - -"go test -test.bench=." - -_UFlat0-8 2.19GB/s ± 0% html -_UFlat1-8 1.41GB/s ± 0% urls -_UFlat2-8 23.5GB/s ± 2% jpg -_UFlat3-8 1.91GB/s ± 0% jpg_200 -_UFlat4-8 14.0GB/s ± 1% pdf -_UFlat5-8 1.97GB/s ± 0% html4 -_UFlat6-8 814MB/s ± 0% txt1 -_UFlat7-8 785MB/s ± 0% txt2 -_UFlat8-8 857MB/s ± 0% txt3 -_UFlat9-8 719MB/s ± 1% txt4 -_UFlat10-8 2.84GB/s ± 0% pb -_UFlat11-8 1.05GB/s ± 0% gaviota - -_ZFlat0-8 1.04GB/s ± 0% html -_ZFlat1-8 534MB/s ± 0% urls -_ZFlat2-8 15.7GB/s ± 1% jpg -_ZFlat3-8 740MB/s ± 3% jpg_200 -_ZFlat4-8 9.20GB/s ± 1% pdf -_ZFlat5-8 991MB/s ± 0% html4 -_ZFlat6-8 379MB/s ± 0% txt1 -_ZFlat7-8 352MB/s ± 0% txt2 -_ZFlat8-8 396MB/s ± 1% txt3 -_ZFlat9-8 327MB/s ± 1% txt4 -_ZFlat10-8 1.33GB/s ± 1% pb -_ZFlat11-8 605MB/s ± 1% gaviota - - - -"go test -test.bench=. -tags=noasm" - -_UFlat0-8 621MB/s ± 2% html -_UFlat1-8 494MB/s ± 1% urls -_UFlat2-8 23.2GB/s ± 1% jpg -_UFlat3-8 1.12GB/s ± 1% jpg_200 -_UFlat4-8 4.35GB/s ± 1% pdf -_UFlat5-8 609MB/s ± 0% html4 -_UFlat6-8 296MB/s ± 0% txt1 -_UFlat7-8 288MB/s ± 0% txt2 -_UFlat8-8 309MB/s ± 1% txt3 -_UFlat9-8 280MB/s ± 1% txt4 -_UFlat10-8 753MB/s ± 0% pb -_UFlat11-8 400MB/s ± 0% gaviota - -_ZFlat0-8 409MB/s ± 1% html -_ZFlat1-8 250MB/s ± 1% urls -_ZFlat2-8 12.3GB/s ± 1% jpg -_ZFlat3-8 132MB/s ± 0% jpg_200 -_ZFlat4-8 2.92GB/s ± 0% pdf -_ZFlat5-8 405MB/s ± 1% html4 -_ZFlat6-8 179MB/s ± 1% txt1 -_ZFlat7-8 170MB/s ± 1% txt2 -_ZFlat8-8 189MB/s ± 1% txt3 -_ZFlat9-8 164MB/s ± 1% txt4 -_ZFlat10-8 479MB/s ± 1% pb -_ZFlat11-8 270MB/s ± 1% gaviota - - - -For comparison (Go's encoded output is byte-for-byte identical to C++'s), here -are the numbers from C++ Snappy's - -make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log - -BM_UFlat/0 2.4GB/s html -BM_UFlat/1 1.4GB/s urls -BM_UFlat/2 21.8GB/s jpg -BM_UFlat/3 1.5GB/s jpg_200 -BM_UFlat/4 13.3GB/s pdf -BM_UFlat/5 2.1GB/s html4 -BM_UFlat/6 1.0GB/s txt1 -BM_UFlat/7 959.4MB/s txt2 -BM_UFlat/8 1.0GB/s txt3 -BM_UFlat/9 864.5MB/s txt4 -BM_UFlat/10 2.9GB/s pb -BM_UFlat/11 1.2GB/s gaviota - -BM_ZFlat/0 944.3MB/s html (22.31 %) -BM_ZFlat/1 501.6MB/s urls (47.78 %) -BM_ZFlat/2 14.3GB/s jpg (99.95 %) -BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %) -BM_ZFlat/4 8.3GB/s pdf (83.30 %) -BM_ZFlat/5 903.5MB/s html4 (22.52 %) -BM_ZFlat/6 336.0MB/s txt1 (57.88 %) -BM_ZFlat/7 312.3MB/s txt2 (61.91 %) -BM_ZFlat/8 353.1MB/s txt3 (54.99 %) -BM_ZFlat/9 289.9MB/s txt4 (66.26 %) -BM_ZFlat/10 1.2GB/s pb (19.68 %) -BM_ZFlat/11 527.4MB/s gaviota (37.72 %) diff --git a/backend/vendor/github.com/klauspost/compress/snappy/decode.go b/backend/vendor/github.com/klauspost/compress/snappy/decode.go deleted file mode 100644 index 72efb035..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/decode.go +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package snappy - -import ( - "encoding/binary" - "errors" - "io" -) - -var ( - // ErrCorrupt reports that the input is invalid. - ErrCorrupt = errors.New("snappy: corrupt input") - // ErrTooLarge reports that the uncompressed length is too large. - ErrTooLarge = errors.New("snappy: decoded block is too large") - // ErrUnsupported reports that the input isn't supported. - ErrUnsupported = errors.New("snappy: unsupported input") - - errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") -) - -// DecodedLen returns the length of the decoded block. -func DecodedLen(src []byte) (int, error) { - v, _, err := decodedLen(src) - return v, err -} - -// decodedLen returns the length of the decoded block and the number of bytes -// that the length header occupied. -func decodedLen(src []byte) (blockLen, headerLen int, err error) { - v, n := binary.Uvarint(src) - if n <= 0 || v > 0xffffffff { - return 0, 0, ErrCorrupt - } - - const wordSize = 32 << (^uint(0) >> 32 & 1) - if wordSize == 32 && v > 0x7fffffff { - return 0, 0, ErrTooLarge - } - return int(v), n, nil -} - -const ( - decodeErrCodeCorrupt = 1 - decodeErrCodeUnsupportedLiteralLength = 2 -) - -// Decode returns the decoded form of src. The returned slice may be a sub- -// slice of dst if dst was large enough to hold the entire decoded block. -// Otherwise, a newly allocated slice will be returned. -// -// The dst and src must not overlap. It is valid to pass a nil dst. -func Decode(dst, src []byte) ([]byte, error) { - dLen, s, err := decodedLen(src) - if err != nil { - return nil, err - } - if dLen <= len(dst) { - dst = dst[:dLen] - } else { - dst = make([]byte, dLen) - } - switch decode(dst, src[s:]) { - case 0: - return dst, nil - case decodeErrCodeUnsupportedLiteralLength: - return nil, errUnsupportedLiteralLength - } - return nil, ErrCorrupt -} - -// NewReader returns a new Reader that decompresses from r, using the framing -// format described at -// https://github.com/google/snappy/blob/master/framing_format.txt -func NewReader(r io.Reader) *Reader { - return &Reader{ - r: r, - decoded: make([]byte, maxBlockSize), - buf: make([]byte, maxEncodedLenOfMaxBlockSize+checksumSize), - } -} - -// Reader is an io.Reader that can read Snappy-compressed bytes. -type Reader struct { - r io.Reader - err error - decoded []byte - buf []byte - // decoded[i:j] contains decoded bytes that have not yet been passed on. - i, j int - readHeader bool -} - -// Reset discards any buffered data, resets all state, and switches the Snappy -// reader to read from r. This permits reusing a Reader rather than allocating -// a new one. -func (r *Reader) Reset(reader io.Reader) { - r.r = reader - r.err = nil - r.i = 0 - r.j = 0 - r.readHeader = false -} - -func (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) { - if _, r.err = io.ReadFull(r.r, p); r.err != nil { - if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { - r.err = ErrCorrupt - } - return false - } - return true -} - -// Read satisfies the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - if r.err != nil { - return 0, r.err - } - for { - if r.i < r.j { - n := copy(p, r.decoded[r.i:r.j]) - r.i += n - return n, nil - } - if !r.readFull(r.buf[:4], true) { - return 0, r.err - } - chunkType := r.buf[0] - if !r.readHeader { - if chunkType != chunkTypeStreamIdentifier { - r.err = ErrCorrupt - return 0, r.err - } - r.readHeader = true - } - chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 - if chunkLen > len(r.buf) { - r.err = ErrUnsupported - return 0, r.err - } - - // The chunk types are specified at - // https://github.com/google/snappy/blob/master/framing_format.txt - switch chunkType { - case chunkTypeCompressedData: - // Section 4.2. Compressed data (chunk type 0x00). - if chunkLen < checksumSize { - r.err = ErrCorrupt - return 0, r.err - } - buf := r.buf[:chunkLen] - if !r.readFull(buf, false) { - return 0, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - buf = buf[checksumSize:] - - n, err := DecodedLen(buf) - if err != nil { - r.err = err - return 0, r.err - } - if n > len(r.decoded) { - r.err = ErrCorrupt - return 0, r.err - } - if _, err := Decode(r.decoded, buf); err != nil { - r.err = err - return 0, r.err - } - if crc(r.decoded[:n]) != checksum { - r.err = ErrCorrupt - return 0, r.err - } - r.i, r.j = 0, n - continue - - case chunkTypeUncompressedData: - // Section 4.3. Uncompressed data (chunk type 0x01). - if chunkLen < checksumSize { - r.err = ErrCorrupt - return 0, r.err - } - buf := r.buf[:checksumSize] - if !r.readFull(buf, false) { - return 0, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - // Read directly into r.decoded instead of via r.buf. - n := chunkLen - checksumSize - if n > len(r.decoded) { - r.err = ErrCorrupt - return 0, r.err - } - if !r.readFull(r.decoded[:n], false) { - return 0, r.err - } - if crc(r.decoded[:n]) != checksum { - r.err = ErrCorrupt - return 0, r.err - } - r.i, r.j = 0, n - continue - - case chunkTypeStreamIdentifier: - // Section 4.1. Stream identifier (chunk type 0xff). - if chunkLen != len(magicBody) { - r.err = ErrCorrupt - return 0, r.err - } - if !r.readFull(r.buf[:len(magicBody)], false) { - return 0, r.err - } - for i := 0; i < len(magicBody); i++ { - if r.buf[i] != magicBody[i] { - r.err = ErrCorrupt - return 0, r.err - } - } - continue - } - - if chunkType <= 0x7f { - // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). - r.err = ErrUnsupported - return 0, r.err - } - // Section 4.4 Padding (chunk type 0xfe). - // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). - if !r.readFull(r.buf[:chunkLen], false) { - return 0, r.err - } - } -} diff --git a/backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.go b/backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.go deleted file mode 100644 index 69557228..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !appengine && gc && !noasm -// +build !appengine,gc,!noasm - -package snappy - -// decode has the same semantics as in decode_other.go. -// -//go:noescape -func decode(dst, src []byte) int diff --git a/backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.s b/backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.s deleted file mode 100644 index 1c66e372..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/decode_amd64.s +++ /dev/null @@ -1,482 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// The asm code generally follows the pure Go code in decode_other.go, except -// where marked with a "!!!". - -// func decode(dst, src []byte) int -// -// All local variables fit into registers. The non-zero stack size is only to -// spill registers and push args when issuing a CALL. The register allocation: -// - AX scratch -// - BX scratch -// - CX length or x -// - DX offset -// - SI &src[s] -// - DI &dst[d] -// + R8 dst_base -// + R9 dst_len -// + R10 dst_base + dst_len -// + R11 src_base -// + R12 src_len -// + R13 src_base + src_len -// - R14 used by doCopy -// - R15 used by doCopy -// -// The registers R8-R13 (marked with a "+") are set at the start of the -// function, and after a CALL returns, and are not otherwise modified. -// -// The d variable is implicitly DI - R8, and len(dst)-d is R10 - DI. -// The s variable is implicitly SI - R11, and len(src)-s is R13 - SI. -TEXT ·decode(SB), NOSPLIT, $48-56 - // Initialize SI, DI and R8-R13. - MOVQ dst_base+0(FP), R8 - MOVQ dst_len+8(FP), R9 - MOVQ R8, DI - MOVQ R8, R10 - ADDQ R9, R10 - MOVQ src_base+24(FP), R11 - MOVQ src_len+32(FP), R12 - MOVQ R11, SI - MOVQ R11, R13 - ADDQ R12, R13 - -loop: - // for s < len(src) - CMPQ SI, R13 - JEQ end - - // CX = uint32(src[s]) - // - // switch src[s] & 0x03 - MOVBLZX (SI), CX - MOVL CX, BX - ANDL $3, BX - CMPL BX, $1 - JAE tagCopy - - // ---------------------------------------- - // The code below handles literal tags. - - // case tagLiteral: - // x := uint32(src[s] >> 2) - // switch - SHRL $2, CX - CMPL CX, $60 - JAE tagLit60Plus - - // case x < 60: - // s++ - INCQ SI - -doLit: - // This is the end of the inner "switch", when we have a literal tag. - // - // We assume that CX == x and x fits in a uint32, where x is the variable - // used in the pure Go decode_other.go code. - - // length = int(x) + 1 - // - // Unlike the pure Go code, we don't need to check if length <= 0 because - // CX can hold 64 bits, so the increment cannot overflow. - INCQ CX - - // Prepare to check if copying length bytes will run past the end of dst or - // src. - // - // AX = len(dst) - d - // BX = len(src) - s - MOVQ R10, AX - SUBQ DI, AX - MOVQ R13, BX - SUBQ SI, BX - - // !!! Try a faster technique for short (16 or fewer bytes) copies. - // - // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 { - // goto callMemmove // Fall back on calling runtime·memmove. - // } - // - // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s - // against 21 instead of 16, because it cannot assume that all of its input - // is contiguous in memory and so it needs to leave enough source bytes to - // read the next tag without refilling buffers, but Go's Decode assumes - // contiguousness (the src argument is a []byte). - CMPQ CX, $16 - JGT callMemmove - CMPQ AX, $16 - JLT callMemmove - CMPQ BX, $16 - JLT callMemmove - - // !!! Implement the copy from src to dst as a 16-byte load and store. - // (Decode's documentation says that dst and src must not overlap.) - // - // This always copies 16 bytes, instead of only length bytes, but that's - // OK. If the input is a valid Snappy encoding then subsequent iterations - // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a - // non-nil error), so the overrun will be ignored. - // - // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or - // 16-byte loads and stores. This technique probably wouldn't be as - // effective on architectures that are fussier about alignment. - MOVOU 0(SI), X0 - MOVOU X0, 0(DI) - - // d += length - // s += length - ADDQ CX, DI - ADDQ CX, SI - JMP loop - -callMemmove: - // if length > len(dst)-d || length > len(src)-s { etc } - CMPQ CX, AX - JGT errCorrupt - CMPQ CX, BX - JGT errCorrupt - - // copy(dst[d:], src[s:s+length]) - // - // This means calling runtime·memmove(&dst[d], &src[s], length), so we push - // DI, SI and CX as arguments. Coincidentally, we also need to spill those - // three registers to the stack, to save local variables across the CALL. - MOVQ DI, 0(SP) - MOVQ SI, 8(SP) - MOVQ CX, 16(SP) - MOVQ DI, 24(SP) - MOVQ SI, 32(SP) - MOVQ CX, 40(SP) - CALL runtime·memmove(SB) - - // Restore local variables: unspill registers from the stack and - // re-calculate R8-R13. - MOVQ 24(SP), DI - MOVQ 32(SP), SI - MOVQ 40(SP), CX - MOVQ dst_base+0(FP), R8 - MOVQ dst_len+8(FP), R9 - MOVQ R8, R10 - ADDQ R9, R10 - MOVQ src_base+24(FP), R11 - MOVQ src_len+32(FP), R12 - MOVQ R11, R13 - ADDQ R12, R13 - - // d += length - // s += length - ADDQ CX, DI - ADDQ CX, SI - JMP loop - -tagLit60Plus: - // !!! This fragment does the - // - // s += x - 58; if uint(s) > uint(len(src)) { etc } - // - // checks. In the asm version, we code it once instead of once per switch case. - ADDQ CX, SI - SUBQ $58, SI - CMPQ SI, R13 - JA errCorrupt - - // case x == 60: - CMPL CX, $61 - JEQ tagLit61 - JA tagLit62Plus - - // x = uint32(src[s-1]) - MOVBLZX -1(SI), CX - JMP doLit - -tagLit61: - // case x == 61: - // x = uint32(src[s-2]) | uint32(src[s-1])<<8 - MOVWLZX -2(SI), CX - JMP doLit - -tagLit62Plus: - CMPL CX, $62 - JA tagLit63 - - // case x == 62: - // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 - MOVWLZX -3(SI), CX - MOVBLZX -1(SI), BX - SHLL $16, BX - ORL BX, CX - JMP doLit - -tagLit63: - // case x == 63: - // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - MOVL -4(SI), CX - JMP doLit - -// The code above handles literal tags. -// ---------------------------------------- -// The code below handles copy tags. - -tagCopy4: - // case tagCopy4: - // s += 5 - ADDQ $5, SI - - // if uint(s) > uint(len(src)) { etc } - CMPQ SI, R13 - JA errCorrupt - - // length = 1 + int(src[s-5])>>2 - SHRQ $2, CX - INCQ CX - - // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) - MOVLQZX -4(SI), DX - JMP doCopy - -tagCopy2: - // case tagCopy2: - // s += 3 - ADDQ $3, SI - - // if uint(s) > uint(len(src)) { etc } - CMPQ SI, R13 - JA errCorrupt - - // length = 1 + int(src[s-3])>>2 - SHRQ $2, CX - INCQ CX - - // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) - MOVWQZX -2(SI), DX - JMP doCopy - -tagCopy: - // We have a copy tag. We assume that: - // - BX == src[s] & 0x03 - // - CX == src[s] - CMPQ BX, $2 - JEQ tagCopy2 - JA tagCopy4 - - // case tagCopy1: - // s += 2 - ADDQ $2, SI - - // if uint(s) > uint(len(src)) { etc } - CMPQ SI, R13 - JA errCorrupt - - // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) - MOVQ CX, DX - ANDQ $0xe0, DX - SHLQ $3, DX - MOVBQZX -1(SI), BX - ORQ BX, DX - - // length = 4 + int(src[s-2])>>2&0x7 - SHRQ $2, CX - ANDQ $7, CX - ADDQ $4, CX - -doCopy: - // This is the end of the outer "switch", when we have a copy tag. - // - // We assume that: - // - CX == length && CX > 0 - // - DX == offset - - // if offset <= 0 { etc } - CMPQ DX, $0 - JLE errCorrupt - - // if d < offset { etc } - MOVQ DI, BX - SUBQ R8, BX - CMPQ BX, DX - JLT errCorrupt - - // if length > len(dst)-d { etc } - MOVQ R10, BX - SUBQ DI, BX - CMPQ CX, BX - JGT errCorrupt - - // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length - // - // Set: - // - R14 = len(dst)-d - // - R15 = &dst[d-offset] - MOVQ R10, R14 - SUBQ DI, R14 - MOVQ DI, R15 - SUBQ DX, R15 - - // !!! Try a faster technique for short (16 or fewer bytes) forward copies. - // - // First, try using two 8-byte load/stores, similar to the doLit technique - // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is - // still OK if offset >= 8. Note that this has to be two 8-byte load/stores - // and not one 16-byte load/store, and the first store has to be before the - // second load, due to the overlap if offset is in the range [8, 16). - // - // if length > 16 || offset < 8 || len(dst)-d < 16 { - // goto slowForwardCopy - // } - // copy 16 bytes - // d += length - CMPQ CX, $16 - JGT slowForwardCopy - CMPQ DX, $8 - JLT slowForwardCopy - CMPQ R14, $16 - JLT slowForwardCopy - MOVQ 0(R15), AX - MOVQ AX, 0(DI) - MOVQ 8(R15), BX - MOVQ BX, 8(DI) - ADDQ CX, DI - JMP loop - -slowForwardCopy: - // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we - // can still try 8-byte load stores, provided we can overrun up to 10 extra - // bytes. As above, the overrun will be fixed up by subsequent iterations - // of the outermost loop. - // - // The C++ snappy code calls this technique IncrementalCopyFastPath. Its - // commentary says: - // - // ---- - // - // The main part of this loop is a simple copy of eight bytes at a time - // until we've copied (at least) the requested amount of bytes. However, - // if d and d-offset are less than eight bytes apart (indicating a - // repeating pattern of length < 8), we first need to expand the pattern in - // order to get the correct results. For instance, if the buffer looks like - // this, with the eight-byte and patterns marked as - // intervals: - // - // abxxxxxxxxxxxx - // [------] d-offset - // [------] d - // - // a single eight-byte copy from to will repeat the pattern - // once, after which we can move two bytes without moving : - // - // ababxxxxxxxxxx - // [------] d-offset - // [------] d - // - // and repeat the exercise until the two no longer overlap. - // - // This allows us to do very well in the special case of one single byte - // repeated many times, without taking a big hit for more general cases. - // - // The worst case of extra writing past the end of the match occurs when - // offset == 1 and length == 1; the last copy will read from byte positions - // [0..7] and write to [4..11], whereas it was only supposed to write to - // position 1. Thus, ten excess bytes. - // - // ---- - // - // That "10 byte overrun" worst case is confirmed by Go's - // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy - // and finishSlowForwardCopy algorithm. - // - // if length > len(dst)-d-10 { - // goto verySlowForwardCopy - // } - SUBQ $10, R14 - CMPQ CX, R14 - JGT verySlowForwardCopy - -makeOffsetAtLeast8: - // !!! As above, expand the pattern so that offset >= 8 and we can use - // 8-byte load/stores. - // - // for offset < 8 { - // copy 8 bytes from dst[d-offset:] to dst[d:] - // length -= offset - // d += offset - // offset += offset - // // The two previous lines together means that d-offset, and therefore - // // R15, is unchanged. - // } - CMPQ DX, $8 - JGE fixUpSlowForwardCopy - MOVQ (R15), BX - MOVQ BX, (DI) - SUBQ DX, CX - ADDQ DX, DI - ADDQ DX, DX - JMP makeOffsetAtLeast8 - -fixUpSlowForwardCopy: - // !!! Add length (which might be negative now) to d (implied by DI being - // &dst[d]) so that d ends up at the right place when we jump back to the - // top of the loop. Before we do that, though, we save DI to AX so that, if - // length is positive, copying the remaining length bytes will write to the - // right place. - MOVQ DI, AX - ADDQ CX, DI - -finishSlowForwardCopy: - // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative - // length means that we overrun, but as above, that will be fixed up by - // subsequent iterations of the outermost loop. - CMPQ CX, $0 - JLE loop - MOVQ (R15), BX - MOVQ BX, (AX) - ADDQ $8, R15 - ADDQ $8, AX - SUBQ $8, CX - JMP finishSlowForwardCopy - -verySlowForwardCopy: - // verySlowForwardCopy is a simple implementation of forward copy. In C - // parlance, this is a do/while loop instead of a while loop, since we know - // that length > 0. In Go syntax: - // - // for { - // dst[d] = dst[d - offset] - // d++ - // length-- - // if length == 0 { - // break - // } - // } - MOVB (R15), BX - MOVB BX, (DI) - INCQ R15 - INCQ DI - DECQ CX - JNZ verySlowForwardCopy - JMP loop - -// The code above handles copy tags. -// ---------------------------------------- - -end: - // This is the end of the "for s < len(src)". - // - // if d != len(dst) { etc } - CMPQ DI, R10 - JNE errCorrupt - - // return 0 - MOVQ $0, ret+48(FP) - RET - -errCorrupt: - // return decodeErrCodeCorrupt - MOVQ $1, ret+48(FP) - RET diff --git a/backend/vendor/github.com/klauspost/compress/snappy/decode_other.go b/backend/vendor/github.com/klauspost/compress/snappy/decode_other.go deleted file mode 100644 index c45c75fb..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/decode_other.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !amd64 || appengine || !gc || noasm -// +build !amd64 appengine !gc noasm - -package snappy - -// decode writes the decoding of src to dst. It assumes that the varint-encoded -// length of the decompressed bytes has already been read, and that len(dst) -// equals that length. -// -// It returns 0 on success or a decodeErrCodeXxx error code on failure. -func decode(dst, src []byte) int { - var d, s, offset, length int - for s < len(src) { - switch src[s] & 0x03 { - case tagLiteral: - x := uint32(src[s] >> 2) - switch { - case x < 60: - s++ - case x == 60: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-1]) - case x == 61: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-2]) | uint32(src[s-1])<<8 - case x == 62: - s += 4 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 - case x == 63: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - } - length = int(x) + 1 - if length <= 0 { - return decodeErrCodeUnsupportedLiteralLength - } - if length > len(dst)-d || length > len(src)-s { - return decodeErrCodeCorrupt - } - copy(dst[d:], src[s:s+length]) - d += length - s += length - continue - - case tagCopy1: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - length = 4 + int(src[s-2])>>2&0x7 - offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) - - case tagCopy2: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - length = 1 + int(src[s-3])>>2 - offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) - - case tagCopy4: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return decodeErrCodeCorrupt - } - length = 1 + int(src[s-5])>>2 - offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) - } - - if offset <= 0 || d < offset || length > len(dst)-d { - return decodeErrCodeCorrupt - } - // Copy from an earlier sub-slice of dst to a later sub-slice. - // If no overlap, use the built-in copy: - if offset > length { - copy(dst[d:d+length], dst[d-offset:]) - d += length - continue - } - - // Unlike the built-in copy function, this byte-by-byte copy always runs - // forwards, even if the slices overlap. Conceptually, this is: - // - // d += forwardCopy(dst[d:d+length], dst[d-offset:]) - // - // We align the slices into a and b and show the compiler they are the same size. - // This allows the loop to run without bounds checks. - a := dst[d : d+length] - b := dst[d-offset:] - b = b[:len(a)] - for i := range a { - a[i] = b[i] - } - d += length - } - if d != len(dst) { - return decodeErrCodeCorrupt - } - return 0 -} diff --git a/backend/vendor/github.com/klauspost/compress/snappy/encode.go b/backend/vendor/github.com/klauspost/compress/snappy/encode.go deleted file mode 100644 index 8d393e90..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/encode.go +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package snappy - -import ( - "encoding/binary" - "errors" - "io" -) - -// Encode returns the encoded form of src. The returned slice may be a sub- -// slice of dst if dst was large enough to hold the entire encoded block. -// Otherwise, a newly allocated slice will be returned. -// -// The dst and src must not overlap. It is valid to pass a nil dst. -func Encode(dst, src []byte) []byte { - if n := MaxEncodedLen(len(src)); n < 0 { - panic(ErrTooLarge) - } else if len(dst) < n { - dst = make([]byte, n) - } - - // The block starts with the varint-encoded length of the decompressed bytes. - d := binary.PutUvarint(dst, uint64(len(src))) - - for len(src) > 0 { - p := src - src = nil - if len(p) > maxBlockSize { - p, src = p[:maxBlockSize], p[maxBlockSize:] - } - if len(p) < minNonLiteralBlockSize { - d += emitLiteral(dst[d:], p) - } else { - d += encodeBlock(dst[d:], p) - } - } - return dst[:d] -} - -// inputMargin is the minimum number of extra input bytes to keep, inside -// encodeBlock's inner loop. On some architectures, this margin lets us -// implement a fast path for emitLiteral, where the copy of short (<= 16 byte) -// literals can be implemented as a single load to and store from a 16-byte -// register. That literal's actual length can be as short as 1 byte, so this -// can copy up to 15 bytes too much, but that's OK as subsequent iterations of -// the encoding loop will fix up the copy overrun, and this inputMargin ensures -// that we don't overrun the dst and src buffers. -const inputMargin = 16 - 1 - -// minNonLiteralBlockSize is the minimum size of the input to encodeBlock that -// could be encoded with a copy tag. This is the minimum with respect to the -// algorithm used by encodeBlock, not a minimum enforced by the file format. -// -// The encoded output must start with at least a 1 byte literal, as there are -// no previous bytes to copy. A minimal (1 byte) copy after that, generated -// from an emitCopy call in encodeBlock's main loop, would require at least -// another inputMargin bytes, for the reason above: we want any emitLiteral -// calls inside encodeBlock's main loop to use the fast path if possible, which -// requires being able to overrun by inputMargin bytes. Thus, -// minNonLiteralBlockSize equals 1 + 1 + inputMargin. -// -// The C++ code doesn't use this exact threshold, but it could, as discussed at -// https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion -// The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an -// optimization. It should not affect the encoded form. This is tested by -// TestSameEncodingAsCppShortCopies. -const minNonLiteralBlockSize = 1 + 1 + inputMargin - -// MaxEncodedLen returns the maximum length of a snappy block, given its -// uncompressed length. -// -// It will return a negative value if srcLen is too large to encode. -func MaxEncodedLen(srcLen int) int { - n := uint64(srcLen) - if n > 0xffffffff { - return -1 - } - // Compressed data can be defined as: - // compressed := item* literal* - // item := literal* copy - // - // The trailing literal sequence has a space blowup of at most 62/60 - // since a literal of length 60 needs one tag byte + one extra byte - // for length information. - // - // Item blowup is trickier to measure. Suppose the "copy" op copies - // 4 bytes of data. Because of a special check in the encoding code, - // we produce a 4-byte copy only if the offset is < 65536. Therefore - // the copy op takes 3 bytes to encode, and this type of item leads - // to at most the 62/60 blowup for representing literals. - // - // Suppose the "copy" op copies 5 bytes of data. If the offset is big - // enough, it will take 5 bytes to encode the copy op. Therefore the - // worst case here is a one-byte literal followed by a five-byte copy. - // That is, 6 bytes of input turn into 7 bytes of "compressed" data. - // - // This last factor dominates the blowup, so the final estimate is: - n = 32 + n + n/6 - if n > 0xffffffff { - return -1 - } - return int(n) -} - -var errClosed = errors.New("snappy: Writer is closed") - -// NewWriter returns a new Writer that compresses to w. -// -// The Writer returned does not buffer writes. There is no need to Flush or -// Close such a Writer. -// -// Deprecated: the Writer returned is not suitable for many small writes, only -// for few large writes. Use NewBufferedWriter instead, which is efficient -// regardless of the frequency and shape of the writes, and remember to Close -// that Writer when done. -func NewWriter(w io.Writer) *Writer { - return &Writer{ - w: w, - obuf: make([]byte, obufLen), - } -} - -// NewBufferedWriter returns a new Writer that compresses to w, using the -// framing format described at -// https://github.com/google/snappy/blob/master/framing_format.txt -// -// The Writer returned buffers writes. Users must call Close to guarantee all -// data has been forwarded to the underlying io.Writer. They may also call -// Flush zero or more times before calling Close. -func NewBufferedWriter(w io.Writer) *Writer { - return &Writer{ - w: w, - ibuf: make([]byte, 0, maxBlockSize), - obuf: make([]byte, obufLen), - } -} - -// Writer is an io.Writer that can write Snappy-compressed bytes. -type Writer struct { - w io.Writer - err error - - // ibuf is a buffer for the incoming (uncompressed) bytes. - // - // Its use is optional. For backwards compatibility, Writers created by the - // NewWriter function have ibuf == nil, do not buffer incoming bytes, and - // therefore do not need to be Flush'ed or Close'd. - ibuf []byte - - // obuf is a buffer for the outgoing (compressed) bytes. - obuf []byte - - // wroteStreamHeader is whether we have written the stream header. - wroteStreamHeader bool -} - -// Reset discards the writer's state and switches the Snappy writer to write to -// w. This permits reusing a Writer rather than allocating a new one. -func (w *Writer) Reset(writer io.Writer) { - w.w = writer - w.err = nil - if w.ibuf != nil { - w.ibuf = w.ibuf[:0] - } - w.wroteStreamHeader = false -} - -// Write satisfies the io.Writer interface. -func (w *Writer) Write(p []byte) (nRet int, errRet error) { - if w.ibuf == nil { - // Do not buffer incoming bytes. This does not perform or compress well - // if the caller of Writer.Write writes many small slices. This - // behavior is therefore deprecated, but still supported for backwards - // compatibility with code that doesn't explicitly Flush or Close. - return w.write(p) - } - - // The remainder of this method is based on bufio.Writer.Write from the - // standard library. - - for len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil { - var n int - if len(w.ibuf) == 0 { - // Large write, empty buffer. - // Write directly from p to avoid copy. - n, _ = w.write(p) - } else { - n = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) - w.ibuf = w.ibuf[:len(w.ibuf)+n] - w.Flush() - } - nRet += n - p = p[n:] - } - if w.err != nil { - return nRet, w.err - } - n := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) - w.ibuf = w.ibuf[:len(w.ibuf)+n] - nRet += n - return nRet, nil -} - -func (w *Writer) write(p []byte) (nRet int, errRet error) { - if w.err != nil { - return 0, w.err - } - for len(p) > 0 { - obufStart := len(magicChunk) - if !w.wroteStreamHeader { - w.wroteStreamHeader = true - copy(w.obuf, magicChunk) - obufStart = 0 - } - - var uncompressed []byte - if len(p) > maxBlockSize { - uncompressed, p = p[:maxBlockSize], p[maxBlockSize:] - } else { - uncompressed, p = p, nil - } - checksum := crc(uncompressed) - - // Compress the buffer, discarding the result if the improvement - // isn't at least 12.5%. - compressed := Encode(w.obuf[obufHeaderLen:], uncompressed) - chunkType := uint8(chunkTypeCompressedData) - chunkLen := 4 + len(compressed) - obufEnd := obufHeaderLen + len(compressed) - if len(compressed) >= len(uncompressed)-len(uncompressed)/8 { - chunkType = chunkTypeUncompressedData - chunkLen = 4 + len(uncompressed) - obufEnd = obufHeaderLen - } - - // Fill in the per-chunk header that comes before the body. - w.obuf[len(magicChunk)+0] = chunkType - w.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0) - w.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8) - w.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16) - w.obuf[len(magicChunk)+4] = uint8(checksum >> 0) - w.obuf[len(magicChunk)+5] = uint8(checksum >> 8) - w.obuf[len(magicChunk)+6] = uint8(checksum >> 16) - w.obuf[len(magicChunk)+7] = uint8(checksum >> 24) - - if _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil { - w.err = err - return nRet, err - } - if chunkType == chunkTypeUncompressedData { - if _, err := w.w.Write(uncompressed); err != nil { - w.err = err - return nRet, err - } - } - nRet += len(uncompressed) - } - return nRet, nil -} - -// Flush flushes the Writer to its underlying io.Writer. -func (w *Writer) Flush() error { - if w.err != nil { - return w.err - } - if len(w.ibuf) == 0 { - return nil - } - w.write(w.ibuf) - w.ibuf = w.ibuf[:0] - return w.err -} - -// Close calls Flush and then closes the Writer. -func (w *Writer) Close() error { - w.Flush() - ret := w.err - if w.err == nil { - w.err = errClosed - } - return ret -} diff --git a/backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.go b/backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.go deleted file mode 100644 index f7bc84a1..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !appengine && gc && !noasm -// +build !appengine,gc,!noasm - -package snappy - -// emitLiteral has the same semantics as in encode_other.go. -// -//go:noescape -func emitLiteral(dst, lit []byte) int - -// emitCopy has the same semantics as in encode_other.go. -// -//go:noescape -func emitCopy(dst []byte, offset, length int) int - -// extendMatch has the same semantics as in encode_other.go. -// -//go:noescape -func extendMatch(src []byte, i, j int) int - -// encodeBlock has the same semantics as in encode_other.go. -// -//go:noescape -func encodeBlock(dst, src []byte) (d int) diff --git a/backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.s b/backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.s deleted file mode 100644 index adfd979f..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/encode_amd64.s +++ /dev/null @@ -1,730 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// The XXX lines assemble on Go 1.4, 1.5 and 1.7, but not 1.6, due to a -// Go toolchain regression. See https://github.com/golang/go/issues/15426 and -// https://github.com/golang/snappy/issues/29 -// -// As a workaround, the package was built with a known good assembler, and -// those instructions were disassembled by "objdump -d" to yield the -// 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 -// style comments, in AT&T asm syntax. Note that rsp here is a physical -// register, not Go/asm's SP pseudo-register (see https://golang.org/doc/asm). -// The instructions were then encoded as "BYTE $0x.." sequences, which assemble -// fine on Go 1.6. - -// The asm code generally follows the pure Go code in encode_other.go, except -// where marked with a "!!!". - -// ---------------------------------------------------------------------------- - -// func emitLiteral(dst, lit []byte) int -// -// All local variables fit into registers. The register allocation: -// - AX len(lit) -// - BX n -// - DX return value -// - DI &dst[i] -// - R10 &lit[0] -// -// The 24 bytes of stack space is to call runtime·memmove. -// -// The unusual register allocation of local variables, such as R10 for the -// source pointer, matches the allocation used at the call site in encodeBlock, -// which makes it easier to manually inline this function. -TEXT ·emitLiteral(SB), NOSPLIT, $24-56 - MOVQ dst_base+0(FP), DI - MOVQ lit_base+24(FP), R10 - MOVQ lit_len+32(FP), AX - MOVQ AX, DX - MOVL AX, BX - SUBL $1, BX - - CMPL BX, $60 - JLT oneByte - CMPL BX, $256 - JLT twoBytes - -threeBytes: - MOVB $0xf4, 0(DI) - MOVW BX, 1(DI) - ADDQ $3, DI - ADDQ $3, DX - JMP memmove - -twoBytes: - MOVB $0xf0, 0(DI) - MOVB BX, 1(DI) - ADDQ $2, DI - ADDQ $2, DX - JMP memmove - -oneByte: - SHLB $2, BX - MOVB BX, 0(DI) - ADDQ $1, DI - ADDQ $1, DX - -memmove: - MOVQ DX, ret+48(FP) - - // copy(dst[i:], lit) - // - // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push - // DI, R10 and AX as arguments. - MOVQ DI, 0(SP) - MOVQ R10, 8(SP) - MOVQ AX, 16(SP) - CALL runtime·memmove(SB) - RET - -// ---------------------------------------------------------------------------- - -// func emitCopy(dst []byte, offset, length int) int -// -// All local variables fit into registers. The register allocation: -// - AX length -// - SI &dst[0] -// - DI &dst[i] -// - R11 offset -// -// The unusual register allocation of local variables, such as R11 for the -// offset, matches the allocation used at the call site in encodeBlock, which -// makes it easier to manually inline this function. -TEXT ·emitCopy(SB), NOSPLIT, $0-48 - MOVQ dst_base+0(FP), DI - MOVQ DI, SI - MOVQ offset+24(FP), R11 - MOVQ length+32(FP), AX - -loop0: - // for length >= 68 { etc } - CMPL AX, $68 - JLT step1 - - // Emit a length 64 copy, encoded as 3 bytes. - MOVB $0xfe, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $64, AX - JMP loop0 - -step1: - // if length > 64 { etc } - CMPL AX, $64 - JLE step2 - - // Emit a length 60 copy, encoded as 3 bytes. - MOVB $0xee, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $60, AX - -step2: - // if length >= 12 || offset >= 2048 { goto step3 } - CMPL AX, $12 - JGE step3 - CMPL R11, $2048 - JGE step3 - - // Emit the remaining copy, encoded as 2 bytes. - MOVB R11, 1(DI) - SHRL $8, R11 - SHLB $5, R11 - SUBB $4, AX - SHLB $2, AX - ORB AX, R11 - ORB $1, R11 - MOVB R11, 0(DI) - ADDQ $2, DI - - // Return the number of bytes written. - SUBQ SI, DI - MOVQ DI, ret+40(FP) - RET - -step3: - // Emit the remaining copy, encoded as 3 bytes. - SUBL $1, AX - SHLB $2, AX - ORB $2, AX - MOVB AX, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - - // Return the number of bytes written. - SUBQ SI, DI - MOVQ DI, ret+40(FP) - RET - -// ---------------------------------------------------------------------------- - -// func extendMatch(src []byte, i, j int) int -// -// All local variables fit into registers. The register allocation: -// - DX &src[0] -// - SI &src[j] -// - R13 &src[len(src) - 8] -// - R14 &src[len(src)] -// - R15 &src[i] -// -// The unusual register allocation of local variables, such as R15 for a source -// pointer, matches the allocation used at the call site in encodeBlock, which -// makes it easier to manually inline this function. -TEXT ·extendMatch(SB), NOSPLIT, $0-48 - MOVQ src_base+0(FP), DX - MOVQ src_len+8(FP), R14 - MOVQ i+24(FP), R15 - MOVQ j+32(FP), SI - ADDQ DX, R14 - ADDQ DX, R15 - ADDQ DX, SI - MOVQ R14, R13 - SUBQ $8, R13 - -cmp8: - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - CMPQ SI, R13 - JA cmp1 - MOVQ (R15), AX - MOVQ (SI), BX - CMPQ AX, BX - JNE bsf - ADDQ $8, R15 - ADDQ $8, SI - JMP cmp8 - -bsf: - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. The BSF instruction finds the - // least significant 1 bit, the amd64 architecture is little-endian, and - // the shift by 3 converts a bit index to a byte index. - XORQ AX, BX - BSFQ BX, BX - SHRQ $3, BX - ADDQ BX, SI - - // Convert from &src[ret] to ret. - SUBQ DX, SI - MOVQ SI, ret+40(FP) - RET - -cmp1: - // In src's tail, compare 1 byte at a time. - CMPQ SI, R14 - JAE extendMatchEnd - MOVB (R15), AX - MOVB (SI), BX - CMPB AX, BX - JNE extendMatchEnd - ADDQ $1, R15 - ADDQ $1, SI - JMP cmp1 - -extendMatchEnd: - // Convert from &src[ret] to ret. - SUBQ DX, SI - MOVQ SI, ret+40(FP) - RET - -// ---------------------------------------------------------------------------- - -// func encodeBlock(dst, src []byte) (d int) -// -// All local variables fit into registers, other than "var table". The register -// allocation: -// - AX . . -// - BX . . -// - CX 56 shift (note that amd64 shifts by non-immediates must use CX). -// - DX 64 &src[0], tableSize -// - SI 72 &src[s] -// - DI 80 &dst[d] -// - R9 88 sLimit -// - R10 . &src[nextEmit] -// - R11 96 prevHash, currHash, nextHash, offset -// - R12 104 &src[base], skip -// - R13 . &src[nextS], &src[len(src) - 8] -// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x -// - R15 112 candidate -// -// The second column (56, 64, etc) is the stack offset to spill the registers -// when calling other functions. We could pack this slightly tighter, but it's -// simpler to have a dedicated spill map independent of the function called. -// -// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An -// extra 56 bytes, to call other functions, and an extra 64 bytes, to spill -// local variables (registers) during calls gives 32768 + 56 + 64 = 32888. -TEXT ·encodeBlock(SB), 0, $32888-56 - MOVQ dst_base+0(FP), DI - MOVQ src_base+24(FP), SI - MOVQ src_len+32(FP), R14 - - // shift, tableSize := uint32(32-8), 1<<8 - MOVQ $24, CX - MOVQ $256, DX - -calcShift: - // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { - // shift-- - // } - CMPQ DX, $16384 - JGE varTable - CMPQ DX, R14 - JGE varTable - SUBQ $1, CX - SHLQ $1, DX - JMP calcShift - -varTable: - // var table [maxTableSize]uint16 - // - // In the asm code, unlike the Go code, we can zero-initialize only the - // first tableSize elements. Each uint16 element is 2 bytes and each MOVOU - // writes 16 bytes, so we can do only tableSize/8 writes instead of the - // 2048 writes that would zero-initialize all of table's 32768 bytes. - SHRQ $3, DX - LEAQ table-32768(SP), BX - PXOR X0, X0 - -memclr: - MOVOU X0, 0(BX) - ADDQ $16, BX - SUBQ $1, DX - JNZ memclr - - // !!! DX = &src[0] - MOVQ SI, DX - - // sLimit := len(src) - inputMargin - MOVQ R14, R9 - SUBQ $15, R9 - - // !!! Pre-emptively spill CX, DX and R9 to the stack. Their values don't - // change for the rest of the function. - MOVQ CX, 56(SP) - MOVQ DX, 64(SP) - MOVQ R9, 88(SP) - - // nextEmit := 0 - MOVQ DX, R10 - - // s := 1 - ADDQ $1, SI - - // nextHash := hash(load32(src, s), shift) - MOVL 0(SI), R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - -outer: - // for { etc } - - // skip := 32 - MOVQ $32, R12 - - // nextS := s - MOVQ SI, R13 - - // candidate := 0 - MOVQ $0, R15 - -inner0: - // for { etc } - - // s := nextS - MOVQ R13, SI - - // bytesBetweenHashLookups := skip >> 5 - MOVQ R12, R14 - SHRQ $5, R14 - - // nextS = s + bytesBetweenHashLookups - ADDQ R14, R13 - - // skip += bytesBetweenHashLookups - ADDQ R14, R12 - - // if nextS > sLimit { goto emitRemainder } - MOVQ R13, AX - SUBQ DX, AX - CMPQ AX, R9 - JA emitRemainder - - // candidate = int(table[nextHash]) - // XXX: MOVWQZX table-32768(SP)(R11*2), R15 - // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 - BYTE $0x4e - BYTE $0x0f - BYTE $0xb7 - BYTE $0x7c - BYTE $0x5c - BYTE $0x78 - - // table[nextHash] = uint16(s) - MOVQ SI, AX - SUBQ DX, AX - - // XXX: MOVW AX, table-32768(SP)(R11*2) - // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) - BYTE $0x66 - BYTE $0x42 - BYTE $0x89 - BYTE $0x44 - BYTE $0x5c - BYTE $0x78 - - // nextHash = hash(load32(src, nextS), shift) - MOVL 0(R13), R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // if load32(src, s) != load32(src, candidate) { continue } break - MOVL 0(SI), AX - MOVL (DX)(R15*1), BX - CMPL AX, BX - JNE inner0 - -fourByteMatch: - // As per the encode_other.go code: - // - // A 4-byte match has been found. We'll later see etc. - - // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment - // on inputMargin in encode.go. - MOVQ SI, AX - SUBQ R10, AX - CMPQ AX, $16 - JLE emitLiteralFastPath - - // ---------------------------------------- - // Begin inline of the emitLiteral call. - // - // d += emitLiteral(dst[d:], src[nextEmit:s]) - - MOVL AX, BX - SUBL $1, BX - - CMPL BX, $60 - JLT inlineEmitLiteralOneByte - CMPL BX, $256 - JLT inlineEmitLiteralTwoBytes - -inlineEmitLiteralThreeBytes: - MOVB $0xf4, 0(DI) - MOVW BX, 1(DI) - ADDQ $3, DI - JMP inlineEmitLiteralMemmove - -inlineEmitLiteralTwoBytes: - MOVB $0xf0, 0(DI) - MOVB BX, 1(DI) - ADDQ $2, DI - JMP inlineEmitLiteralMemmove - -inlineEmitLiteralOneByte: - SHLB $2, BX - MOVB BX, 0(DI) - ADDQ $1, DI - -inlineEmitLiteralMemmove: - // Spill local variables (registers) onto the stack; call; unspill. - // - // copy(dst[i:], lit) - // - // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push - // DI, R10 and AX as arguments. - MOVQ DI, 0(SP) - MOVQ R10, 8(SP) - MOVQ AX, 16(SP) - ADDQ AX, DI // Finish the "d +=" part of "d += emitLiteral(etc)". - MOVQ SI, 72(SP) - MOVQ DI, 80(SP) - MOVQ R15, 112(SP) - CALL runtime·memmove(SB) - MOVQ 56(SP), CX - MOVQ 64(SP), DX - MOVQ 72(SP), SI - MOVQ 80(SP), DI - MOVQ 88(SP), R9 - MOVQ 112(SP), R15 - JMP inner1 - -inlineEmitLiteralEnd: - // End inline of the emitLiteral call. - // ---------------------------------------- - -emitLiteralFastPath: - // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2". - MOVB AX, BX - SUBB $1, BX - SHLB $2, BX - MOVB BX, (DI) - ADDQ $1, DI - - // !!! Implement the copy from lit to dst as a 16-byte load and store. - // (Encode's documentation says that dst and src must not overlap.) - // - // This always copies 16 bytes, instead of only len(lit) bytes, but that's - // OK. Subsequent iterations will fix up the overrun. - // - // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or - // 16-byte loads and stores. This technique probably wouldn't be as - // effective on architectures that are fussier about alignment. - MOVOU 0(R10), X0 - MOVOU X0, 0(DI) - ADDQ AX, DI - -inner1: - // for { etc } - - // base := s - MOVQ SI, R12 - - // !!! offset := base - candidate - MOVQ R12, R11 - SUBQ R15, R11 - SUBQ DX, R11 - - // ---------------------------------------- - // Begin inline of the extendMatch call. - // - // s = extendMatch(src, candidate+4, s+4) - - // !!! R14 = &src[len(src)] - MOVQ src_len+32(FP), R14 - ADDQ DX, R14 - - // !!! R13 = &src[len(src) - 8] - MOVQ R14, R13 - SUBQ $8, R13 - - // !!! R15 = &src[candidate + 4] - ADDQ $4, R15 - ADDQ DX, R15 - - // !!! s += 4 - ADDQ $4, SI - -inlineExtendMatchCmp8: - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - CMPQ SI, R13 - JA inlineExtendMatchCmp1 - MOVQ (R15), AX - MOVQ (SI), BX - CMPQ AX, BX - JNE inlineExtendMatchBSF - ADDQ $8, R15 - ADDQ $8, SI - JMP inlineExtendMatchCmp8 - -inlineExtendMatchBSF: - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. The BSF instruction finds the - // least significant 1 bit, the amd64 architecture is little-endian, and - // the shift by 3 converts a bit index to a byte index. - XORQ AX, BX - BSFQ BX, BX - SHRQ $3, BX - ADDQ BX, SI - JMP inlineExtendMatchEnd - -inlineExtendMatchCmp1: - // In src's tail, compare 1 byte at a time. - CMPQ SI, R14 - JAE inlineExtendMatchEnd - MOVB (R15), AX - MOVB (SI), BX - CMPB AX, BX - JNE inlineExtendMatchEnd - ADDQ $1, R15 - ADDQ $1, SI - JMP inlineExtendMatchCmp1 - -inlineExtendMatchEnd: - // End inline of the extendMatch call. - // ---------------------------------------- - - // ---------------------------------------- - // Begin inline of the emitCopy call. - // - // d += emitCopy(dst[d:], base-candidate, s-base) - - // !!! length := s - base - MOVQ SI, AX - SUBQ R12, AX - -inlineEmitCopyLoop0: - // for length >= 68 { etc } - CMPL AX, $68 - JLT inlineEmitCopyStep1 - - // Emit a length 64 copy, encoded as 3 bytes. - MOVB $0xfe, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $64, AX - JMP inlineEmitCopyLoop0 - -inlineEmitCopyStep1: - // if length > 64 { etc } - CMPL AX, $64 - JLE inlineEmitCopyStep2 - - // Emit a length 60 copy, encoded as 3 bytes. - MOVB $0xee, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - SUBL $60, AX - -inlineEmitCopyStep2: - // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 } - CMPL AX, $12 - JGE inlineEmitCopyStep3 - CMPL R11, $2048 - JGE inlineEmitCopyStep3 - - // Emit the remaining copy, encoded as 2 bytes. - MOVB R11, 1(DI) - SHRL $8, R11 - SHLB $5, R11 - SUBB $4, AX - SHLB $2, AX - ORB AX, R11 - ORB $1, R11 - MOVB R11, 0(DI) - ADDQ $2, DI - JMP inlineEmitCopyEnd - -inlineEmitCopyStep3: - // Emit the remaining copy, encoded as 3 bytes. - SUBL $1, AX - SHLB $2, AX - ORB $2, AX - MOVB AX, 0(DI) - MOVW R11, 1(DI) - ADDQ $3, DI - -inlineEmitCopyEnd: - // End inline of the emitCopy call. - // ---------------------------------------- - - // nextEmit = s - MOVQ SI, R10 - - // if s >= sLimit { goto emitRemainder } - MOVQ SI, AX - SUBQ DX, AX - CMPQ AX, R9 - JAE emitRemainder - - // As per the encode_other.go code: - // - // We could immediately etc. - - // x := load64(src, s-1) - MOVQ -1(SI), R14 - - // prevHash := hash(uint32(x>>0), shift) - MOVL R14, R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // table[prevHash] = uint16(s-1) - MOVQ SI, AX - SUBQ DX, AX - SUBQ $1, AX - - // XXX: MOVW AX, table-32768(SP)(R11*2) - // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) - BYTE $0x66 - BYTE $0x42 - BYTE $0x89 - BYTE $0x44 - BYTE $0x5c - BYTE $0x78 - - // currHash := hash(uint32(x>>8), shift) - SHRQ $8, R14 - MOVL R14, R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // candidate = int(table[currHash]) - // XXX: MOVWQZX table-32768(SP)(R11*2), R15 - // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 - BYTE $0x4e - BYTE $0x0f - BYTE $0xb7 - BYTE $0x7c - BYTE $0x5c - BYTE $0x78 - - // table[currHash] = uint16(s) - ADDQ $1, AX - - // XXX: MOVW AX, table-32768(SP)(R11*2) - // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) - BYTE $0x66 - BYTE $0x42 - BYTE $0x89 - BYTE $0x44 - BYTE $0x5c - BYTE $0x78 - - // if uint32(x>>8) == load32(src, candidate) { continue } - MOVL (DX)(R15*1), BX - CMPL R14, BX - JEQ inner1 - - // nextHash = hash(uint32(x>>16), shift) - SHRQ $8, R14 - MOVL R14, R11 - IMULL $0x1e35a7bd, R11 - SHRL CX, R11 - - // s++ - ADDQ $1, SI - - // break out of the inner1 for loop, i.e. continue the outer loop. - JMP outer - -emitRemainder: - // if nextEmit < len(src) { etc } - MOVQ src_len+32(FP), AX - ADDQ DX, AX - CMPQ R10, AX - JEQ encodeBlockEnd - - // d += emitLiteral(dst[d:], src[nextEmit:]) - // - // Push args. - MOVQ DI, 0(SP) - MOVQ $0, 8(SP) // Unnecessary, as the callee ignores it, but conservative. - MOVQ $0, 16(SP) // Unnecessary, as the callee ignores it, but conservative. - MOVQ R10, 24(SP) - SUBQ R10, AX - MOVQ AX, 32(SP) - MOVQ AX, 40(SP) // Unnecessary, as the callee ignores it, but conservative. - - // Spill local variables (registers) onto the stack; call; unspill. - MOVQ DI, 80(SP) - CALL ·emitLiteral(SB) - MOVQ 80(SP), DI - - // Finish the "d +=" part of "d += emitLiteral(etc)". - ADDQ 48(SP), DI - -encodeBlockEnd: - MOVQ dst_base+0(FP), AX - SUBQ AX, DI - MOVQ DI, d+48(FP) - RET diff --git a/backend/vendor/github.com/klauspost/compress/snappy/encode_other.go b/backend/vendor/github.com/klauspost/compress/snappy/encode_other.go deleted file mode 100644 index d07a36fd..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/encode_other.go +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright 2016 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !amd64 || appengine || !gc || noasm -// +build !amd64 appengine !gc noasm - -package snappy - -func load32(b []byte, i int) uint32 { - b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func load64(b []byte, i int) uint64 { - b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -// emitLiteral writes a literal chunk and returns the number of bytes written. -// -// It assumes that: -// -// dst is long enough to hold the encoded bytes -// 1 <= len(lit) && len(lit) <= 65536 -func emitLiteral(dst, lit []byte) int { - i, n := 0, uint(len(lit)-1) - switch { - case n < 60: - dst[0] = uint8(n)<<2 | tagLiteral - i = 1 - case n < 1<<8: - dst[0] = 60<<2 | tagLiteral - dst[1] = uint8(n) - i = 2 - default: - dst[0] = 61<<2 | tagLiteral - dst[1] = uint8(n) - dst[2] = uint8(n >> 8) - i = 3 - } - return i + copy(dst[i:], lit) -} - -// emitCopy writes a copy chunk and returns the number of bytes written. -// -// It assumes that: -// -// dst is long enough to hold the encoded bytes -// 1 <= offset && offset <= 65535 -// 4 <= length && length <= 65535 -func emitCopy(dst []byte, offset, length int) int { - i := 0 - // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The - // threshold for this loop is a little higher (at 68 = 64 + 4), and the - // length emitted down below is is a little lower (at 60 = 64 - 4), because - // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed - // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as - // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as - // 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a - // tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an - // encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1. - for length >= 68 { - // Emit a length 64 copy, encoded as 3 bytes. - dst[i+0] = 63<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - i += 3 - length -= 64 - } - if length > 64 { - // Emit a length 60 copy, encoded as 3 bytes. - dst[i+0] = 59<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - i += 3 - length -= 60 - } - if length >= 12 || offset >= 2048 { - // Emit the remaining copy, encoded as 3 bytes. - dst[i+0] = uint8(length-1)<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - return i + 3 - } - // Emit the remaining copy, encoded as 2 bytes. - dst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1 - dst[i+1] = uint8(offset) - return i + 2 -} - -// extendMatch returns the largest k such that k <= len(src) and that -// src[i:i+k-j] and src[j:k] have the same contents. -// -// It assumes that: -// -// 0 <= i && i < j && j <= len(src) -func extendMatch(src []byte, i, j int) int { - for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { - } - return j -} - -func hash(u, shift uint32) uint32 { - return (u * 0x1e35a7bd) >> shift -} - -// encodeBlock encodes a non-empty src to a guaranteed-large-enough dst. It -// assumes that the varint-encoded length of the decompressed bytes has already -// been written. -// -// It also assumes that: -// -// len(dst) >= MaxEncodedLen(len(src)) && -// minNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize -func encodeBlock(dst, src []byte) (d int) { - // Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive. - // The table element type is uint16, as s < sLimit and sLimit < len(src) - // and len(src) <= maxBlockSize and maxBlockSize == 65536. - const ( - maxTableSize = 1 << 14 - // tableMask is redundant, but helps the compiler eliminate bounds - // checks. - tableMask = maxTableSize - 1 - ) - shift := uint32(32 - 8) - for tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { - shift-- - } - // In Go, all array elements are zero-initialized, so there is no advantage - // to a smaller tableSize per se. However, it matches the C++ algorithm, - // and in the asm versions of this code, we can get away with zeroing only - // the first tableSize elements. - var table [maxTableSize]uint16 - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := len(src) - inputMargin - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := 0 - - // The encoded form must start with a literal, as there are no previous - // bytes to copy, so we start looking for hash matches at s == 1. - s := 1 - nextHash := hash(load32(src, s), shift) - - for { - // Copied from the C++ snappy implementation: - // - // Heuristic match skipping: If 32 bytes are scanned with no matches - // found, start looking only at every other byte. If 32 more bytes are - // scanned (or skipped), look at every third byte, etc.. When a match - // is found, immediately go back to looking at every byte. This is a - // small loss (~5% performance, ~0.1% density) for compressible data - // due to more bookkeeping, but for non-compressible data (such as - // JPEG) it's a huge win since the compressor quickly "realizes" the - // data is incompressible and doesn't bother looking for matches - // everywhere. - // - // The "skip" variable keeps track of how many bytes there are since - // the last match; dividing it by 32 (ie. right-shifting by five) gives - // the number of bytes to move ahead for each iteration. - skip := 32 - - nextS := s - candidate := 0 - for { - s = nextS - bytesBetweenHashLookups := skip >> 5 - nextS = s + bytesBetweenHashLookups - skip += bytesBetweenHashLookups - if nextS > sLimit { - goto emitRemainder - } - candidate = int(table[nextHash&tableMask]) - table[nextHash&tableMask] = uint16(s) - nextHash = hash(load32(src, nextS), shift) - if load32(src, s) == load32(src, candidate) { - break - } - } - - // A 4-byte match has been found. We'll later see if more than 4 bytes - // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit - // them as literal bytes. - d += emitLiteral(dst[d:], src[nextEmit:s]) - - // Call emitCopy, and then see if another emitCopy could be our next - // move. Repeat until we find no match for the input immediately after - // what was consumed by the last emitCopy call. - // - // If we exit this loop normally then we need to call emitLiteral next, - // though we don't yet know how big the literal will be. We handle that - // by proceeding to the next iteration of the main loop. We also can - // exit this loop via goto if we get close to exhausting the input. - for { - // Invariant: we have a 4-byte match at s, and no need to emit any - // literal bytes prior to s. - base := s - - // Extend the 4-byte match as long as possible. - // - // This is an inlined version of: - // s = extendMatch(src, candidate+4, s+4) - s += 4 - for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 { - } - - d += emitCopy(dst[d:], base-candidate, s-base) - nextEmit = s - if s >= sLimit { - goto emitRemainder - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-1 and at s. If - // another emitCopy is not our next move, also calculate nextHash - // at s+1. At least on GOARCH=amd64, these three hash calculations - // are faster as one load64 call (with some shifts) instead of - // three load32 calls. - x := load64(src, s-1) - prevHash := hash(uint32(x>>0), shift) - table[prevHash&tableMask] = uint16(s - 1) - currHash := hash(uint32(x>>8), shift) - candidate = int(table[currHash&tableMask]) - table[currHash&tableMask] = uint16(s) - if uint32(x>>8) != load32(src, candidate) { - nextHash = hash(uint32(x>>16), shift) - s++ - break - } - } - } - -emitRemainder: - if nextEmit < len(src) { - d += emitLiteral(dst[d:], src[nextEmit:]) - } - return d -} diff --git a/backend/vendor/github.com/klauspost/compress/snappy/runbench.cmd b/backend/vendor/github.com/klauspost/compress/snappy/runbench.cmd deleted file mode 100644 index d24eb4b4..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/runbench.cmd +++ /dev/null @@ -1,2 +0,0 @@ -del old.txt -go test -bench=. >>old.txt && go test -bench=. >>old.txt && go test -bench=. >>old.txt && benchstat -delta-test=ttest old.txt new.txt diff --git a/backend/vendor/github.com/klauspost/compress/snappy/snappy.go b/backend/vendor/github.com/klauspost/compress/snappy/snappy.go deleted file mode 100644 index 74a36689..00000000 --- a/backend/vendor/github.com/klauspost/compress/snappy/snappy.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package snappy implements the Snappy compression format. It aims for very -// high speeds and reasonable compression. -// -// There are actually two Snappy formats: block and stream. They are related, -// but different: trying to decompress block-compressed data as a Snappy stream -// will fail, and vice versa. The block format is the Decode and Encode -// functions and the stream format is the Reader and Writer types. -// -// The block format, the more common case, is used when the complete size (the -// number of bytes) of the original data is known upfront, at the time -// compression starts. The stream format, also known as the framing format, is -// for when that isn't always true. -// -// The canonical, C++ implementation is at https://github.com/google/snappy and -// it only implements the block format. -package snappy - -import ( - "hash/crc32" -) - -/* -Each encoded block begins with the varint-encoded length of the decoded data, -followed by a sequence of chunks. Chunks begin and end on byte boundaries. The -first byte of each chunk is broken into its 2 least and 6 most significant bits -called l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag. -Zero means a literal tag. All other values mean a copy tag. - -For literal tags: - - If m < 60, the next 1 + m bytes are literal bytes. - - Otherwise, let n be the little-endian unsigned integer denoted by the next - m - 59 bytes. The next 1 + n bytes after that are literal bytes. - -For copy tags, length bytes are copied from offset bytes ago, in the style of -Lempel-Ziv compression algorithms. In particular: - - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12). - The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10 - of the offset. The next byte is bits 0-7 of the offset. - - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65). - The length is 1 + m. The offset is the little-endian unsigned integer - denoted by the next 2 bytes. - - For l == 3, this tag is a legacy format that is no longer issued by most - encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in - [1, 65). The length is 1 + m. The offset is the little-endian unsigned - integer denoted by the next 4 bytes. -*/ -const ( - tagLiteral = 0x00 - tagCopy1 = 0x01 - tagCopy2 = 0x02 - tagCopy4 = 0x03 -) - -const ( - checksumSize = 4 - chunkHeaderSize = 4 - magicChunk = "\xff\x06\x00\x00" + magicBody - magicBody = "sNaPpY" - - // maxBlockSize is the maximum size of the input to encodeBlock. It is not - // part of the wire format per se, but some parts of the encoder assume - // that an offset fits into a uint16. - // - // Also, for the framing format (Writer type instead of Encode function), - // https://github.com/google/snappy/blob/master/framing_format.txt says - // that "the uncompressed data in a chunk must be no longer than 65536 - // bytes". - maxBlockSize = 65536 - - // maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), but is - // hard coded to be a const instead of a variable, so that obufLen can also - // be a const. Their equivalence is confirmed by - // TestMaxEncodedLenOfMaxBlockSize. - maxEncodedLenOfMaxBlockSize = 76490 - - obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize - obufLen = obufHeaderLen + maxEncodedLenOfMaxBlockSize -) - -const ( - chunkTypeCompressedData = 0x00 - chunkTypeUncompressedData = 0x01 - chunkTypePadding = 0xfe - chunkTypeStreamIdentifier = 0xff -) - -var crcTable = crc32.MakeTable(crc32.Castagnoli) - -// crc implements the checksum specified in section 3 of -// https://github.com/google/snappy/blob/master/framing_format.txt -func crc(b []byte) uint32 { - c := crc32.Update(0, crcTable, b) - return uint32(c>>15|c<<17) + 0xa282ead8 -} diff --git a/backend/vendor/github.com/klauspost/compress/zip/reader.go b/backend/vendor/github.com/klauspost/compress/zip/reader.go deleted file mode 100644 index 9fab6e38..00000000 --- a/backend/vendor/github.com/klauspost/compress/zip/reader.go +++ /dev/null @@ -1,623 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package zip - -import ( - "bufio" - "encoding/binary" - "errors" - "fmt" - "hash" - "hash/crc32" - "io" - "os" - "time" -) - -var ( - ErrFormat = errors.New("zip: not a valid zip file") - ErrAlgorithm = errors.New("zip: unsupported compression algorithm") - ErrChecksum = errors.New("zip: checksum error") -) - -type Reader struct { - r io.ReaderAt - File []*File - Comment string - decompressors map[uint16]Decompressor -} - -type ReadCloser struct { - f *os.File - Reader -} - -type File struct { - FileHeader - zip *Reader - zipr io.ReaderAt - zipsize int64 - headerOffset int64 -} - -func (f *File) hasDataDescriptor() bool { - return f.Flags&0x8 != 0 -} - -// OpenReader will open the Zip file specified by name and return a ReadCloser. -func OpenReader(name string) (*ReadCloser, error) { - f, err := os.Open(name) - if err != nil { - return nil, err - } - fi, err := f.Stat() - if err != nil { - f.Close() - return nil, err - } - r := new(ReadCloser) - if err := r.init(f, fi.Size()); err != nil { - f.Close() - return nil, err - } - r.f = f - return r, nil -} - -// NewReader returns a new Reader reading from r, which is assumed to -// have the given size in bytes. -func NewReader(r io.ReaderAt, size int64) (*Reader, error) { - if size < 0 { - return nil, errors.New("zip: size cannot be negative") - } - zr := new(Reader) - if err := zr.init(r, size); err != nil { - return nil, err - } - return zr, nil -} - -func (z *Reader) init(r io.ReaderAt, size int64) error { - end, err := readDirectoryEnd(r, size) - if err != nil { - return err - } - if end.directoryRecords > uint64(size)/fileHeaderLen { - return fmt.Errorf("archive/zip: TOC declares impossible %d files in %d byte zip", end.directoryRecords, size) - } - z.r = r - z.File = make([]*File, 0, end.directoryRecords) - z.Comment = end.comment - rs := io.NewSectionReader(r, 0, size) - if _, err = rs.Seek(int64(end.directoryOffset), io.SeekStart); err != nil { - return err - } - buf := bufio.NewReader(rs) - - // The count of files inside a zip is truncated to fit in a uint16. - // Gloss over this by reading headers until we encounter - // a bad one, and then only report an ErrFormat or UnexpectedEOF if - // the file count modulo 65536 is incorrect. - for { - f := &File{zip: z, zipr: r, zipsize: size} - err = readDirectoryHeader(f, buf) - if err == ErrFormat || err == io.ErrUnexpectedEOF { - break - } - if err != nil { - return err - } - z.File = append(z.File, f) - } - if uint16(len(z.File)) != uint16(end.directoryRecords) { // only compare 16 bits here - // Return the readDirectoryHeader error if we read - // the wrong number of directory entries. - return err - } - return nil -} - -// RegisterDecompressor registers or overrides a custom decompressor for a -// specific method ID. If a decompressor for a given method is not found, -// Reader will default to looking up the decompressor at the package level. -func (z *Reader) RegisterDecompressor(method uint16, dcomp Decompressor) { - if z.decompressors == nil { - z.decompressors = make(map[uint16]Decompressor) - } - z.decompressors[method] = dcomp -} - -func (z *Reader) decompressor(method uint16) Decompressor { - dcomp := z.decompressors[method] - if dcomp == nil { - dcomp = decompressor(method) - } - return dcomp -} - -// Close closes the Zip file, rendering it unusable for I/O. -func (rc *ReadCloser) Close() error { - return rc.f.Close() -} - -// DataOffset returns the offset of the file's possibly-compressed -// data, relative to the beginning of the zip file. -// -// Most callers should instead use Open, which transparently -// decompresses data and verifies checksums. -func (f *File) DataOffset() (offset int64, err error) { - bodyOffset, err := f.findBodyOffset() - if err != nil { - return - } - return f.headerOffset + bodyOffset, nil -} - -// Open returns a ReadCloser that provides access to the File's contents. -// Multiple files may be read concurrently. -func (f *File) Open() (io.ReadCloser, error) { - bodyOffset, err := f.findBodyOffset() - if err != nil { - return nil, err - } - size := int64(f.CompressedSize64) - r := io.NewSectionReader(f.zipr, f.headerOffset+bodyOffset, size) - dcomp := f.zip.decompressor(f.Method) - if dcomp == nil { - return nil, ErrAlgorithm - } - var rc io.ReadCloser = dcomp(r) - var desr io.Reader - if f.hasDataDescriptor() { - desr = io.NewSectionReader(f.zipr, f.headerOffset+bodyOffset+size, dataDescriptorLen) - } - rc = &checksumReader{ - rc: rc, - hash: crc32.NewIEEE(), - f: f, - desr: desr, - } - return rc, nil -} - -// OpenRaw returns a Reader that returns the *compressed* output of the file. -func (f *File) OpenRaw() (io.Reader, error) { - bodyOffset, err := f.findBodyOffset() - if err != nil { - return nil, err - } - size := int64(f.CompressedSize64) - return io.NewSectionReader(f.zipr, f.headerOffset+bodyOffset, size), nil -} - -type checksumReader struct { - rc io.ReadCloser - hash hash.Hash32 - nread uint64 // number of bytes read so far - f *File - desr io.Reader // if non-nil, where to read the data descriptor - err error // sticky error -} - -func (r *checksumReader) Read(b []byte) (n int, err error) { - if r.err != nil { - return 0, r.err - } - n, err = r.rc.Read(b) - r.hash.Write(b[:n]) - r.nread += uint64(n) - if err == nil { - return - } - if err == io.EOF { - if r.nread != r.f.UncompressedSize64 { - return 0, io.ErrUnexpectedEOF - } - if r.desr != nil { - if err1 := readDataDescriptor(r.desr, r.f); err1 != nil { - if err1 == io.EOF { - err = io.ErrUnexpectedEOF - } else { - err = err1 - } - } else if r.hash.Sum32() != r.f.CRC32 { - err = ErrChecksum - } - } else { - // If there's not a data descriptor, we still compare - // the CRC32 of what we've read against the file header - // or TOC's CRC32, if it seems like it was set. - if r.f.CRC32 != 0 && r.hash.Sum32() != r.f.CRC32 { - err = ErrChecksum - } - } - } - r.err = err - return -} - -func (r *checksumReader) Close() error { return r.rc.Close() } - -// findBodyOffset does the minimum work to verify the file has a header -// and returns the file body offset. -func (f *File) findBodyOffset() (int64, error) { - var buf [fileHeaderLen]byte - if _, err := f.zipr.ReadAt(buf[:], f.headerOffset); err != nil { - return 0, err - } - b := readBuf(buf[:]) - if sig := b.uint32(); sig != fileHeaderSignature { - return 0, ErrFormat - } - b = b[22:] // skip over most of the header - filenameLen := int(b.uint16()) - extraLen := int(b.uint16()) - return int64(fileHeaderLen + filenameLen + extraLen), nil -} - -// readDirectoryHeader attempts to read a directory header from r. -// It returns io.ErrUnexpectedEOF if it cannot read a complete header, -// and ErrFormat if it doesn't find a valid header signature. -func readDirectoryHeader(f *File, r io.Reader) error { - var buf [directoryHeaderLen]byte - if _, err := io.ReadFull(r, buf[:]); err != nil { - return err - } - b := readBuf(buf[:]) - if sig := b.uint32(); sig != directoryHeaderSignature { - return ErrFormat - } - f.CreatorVersion = b.uint16() - f.ReaderVersion = b.uint16() - f.Flags = b.uint16() - f.Method = b.uint16() - f.ModifiedTime = b.uint16() - f.ModifiedDate = b.uint16() - f.CRC32 = b.uint32() - f.CompressedSize = b.uint32() - f.UncompressedSize = b.uint32() - f.CompressedSize64 = uint64(f.CompressedSize) - f.UncompressedSize64 = uint64(f.UncompressedSize) - filenameLen := int(b.uint16()) - extraLen := int(b.uint16()) - commentLen := int(b.uint16()) - b = b[4:] // skipped start disk number and internal attributes (2x uint16) - f.ExternalAttrs = b.uint32() - f.headerOffset = int64(b.uint32()) - d := make([]byte, filenameLen+extraLen+commentLen) - if _, err := io.ReadFull(r, d); err != nil { - return err - } - f.Name = string(d[:filenameLen]) - f.Extra = d[filenameLen : filenameLen+extraLen] - f.Comment = string(d[filenameLen+extraLen:]) - - // Determine the character encoding. - utf8Valid1, utf8Require1 := detectUTF8(f.Name) - utf8Valid2, utf8Require2 := detectUTF8(f.Comment) - switch { - case !utf8Valid1 || !utf8Valid2: - // Name and Comment definitely not UTF-8. - f.NonUTF8 = true - case !utf8Require1 && !utf8Require2: - // Name and Comment use only single-byte runes that overlap with UTF-8. - f.NonUTF8 = false - default: - // Might be UTF-8, might be some other encoding; preserve existing flag. - // Some ZIP writers use UTF-8 encoding without setting the UTF-8 flag. - // Since it is impossible to always distinguish valid UTF-8 from some - // other encoding (e.g., GBK or Shift-JIS), we trust the flag. - f.NonUTF8 = f.Flags&0x800 == 0 - } - - needUSize := f.UncompressedSize == ^uint32(0) - needCSize := f.CompressedSize == ^uint32(0) - needHeaderOffset := f.headerOffset == int64(^uint32(0)) - - // Best effort to find what we need. - // Other zip authors might not even follow the basic format, - // and we'll just ignore the Extra content in that case. - var modified time.Time -parseExtras: - for extra := readBuf(f.Extra); len(extra) >= 4; { // need at least tag and size - fieldTag := extra.uint16() - fieldSize := int(extra.uint16()) - if len(extra) < fieldSize { - break - } - fieldBuf := extra.sub(fieldSize) - - switch fieldTag { - case zip64ExtraID: - // update directory values from the zip64 extra block. - // They should only be consulted if the sizes read earlier - // are maxed out. - // See golang.org/issue/13367. - if needUSize { - needUSize = false - if len(fieldBuf) < 8 { - return ErrFormat - } - f.UncompressedSize64 = fieldBuf.uint64() - } - if needCSize { - needCSize = false - if len(fieldBuf) < 8 { - return ErrFormat - } - f.CompressedSize64 = fieldBuf.uint64() - } - if needHeaderOffset { - needHeaderOffset = false - if len(fieldBuf) < 8 { - return ErrFormat - } - f.headerOffset = int64(fieldBuf.uint64()) - } - case ntfsExtraID: - if len(fieldBuf) < 4 { - continue parseExtras - } - fieldBuf.uint32() // reserved (ignored) - for len(fieldBuf) >= 4 { // need at least tag and size - attrTag := fieldBuf.uint16() - attrSize := int(fieldBuf.uint16()) - if len(fieldBuf) < attrSize { - continue parseExtras - } - attrBuf := fieldBuf.sub(attrSize) - if attrTag != 1 || attrSize != 24 { - continue // Ignore irrelevant attributes - } - - const ticksPerSecond = 1e7 // Windows timestamp resolution - ts := int64(attrBuf.uint64()) // ModTime since Windows epoch - secs := int64(ts / ticksPerSecond) - nsecs := (1e9 / ticksPerSecond) * int64(ts%ticksPerSecond) - epoch := time.Date(1601, time.January, 1, 0, 0, 0, 0, time.UTC) - modified = time.Unix(epoch.Unix()+secs, nsecs) - } - case unixExtraID, infoZipUnixExtraID: - if len(fieldBuf) < 8 { - continue parseExtras - } - fieldBuf.uint32() // AcTime (ignored) - ts := int64(fieldBuf.uint32()) // ModTime since Unix epoch - modified = time.Unix(ts, 0) - case extTimeExtraID: - if len(fieldBuf) < 5 || fieldBuf.uint8()&1 == 0 { - continue parseExtras - } - ts := int64(fieldBuf.uint32()) // ModTime since Unix epoch - modified = time.Unix(ts, 0) - } - } - - msdosModified := msDosTimeToTime(f.ModifiedDate, f.ModifiedTime) - f.Modified = msdosModified - if !modified.IsZero() { - f.Modified = modified.UTC() - - // If legacy MS-DOS timestamps are set, we can use the delta between - // the legacy and extended versions to estimate timezone offset. - // - // A non-UTC timezone is always used (even if offset is zero). - // Thus, FileHeader.Modified.Location() == time.UTC is useful for - // determining whether extended timestamps are present. - // This is necessary for users that need to do additional time - // calculations when dealing with legacy ZIP formats. - if f.ModifiedTime != 0 || f.ModifiedDate != 0 { - f.Modified = modified.In(timeZone(msdosModified.Sub(modified))) - } - } - - // Assume that uncompressed size 2³²-1 could plausibly happen in - // an old zip32 file that was sharding inputs into the largest chunks - // possible (or is just malicious; search the web for 42.zip). - // If needUSize is true still, it means we didn't see a zip64 extension. - // As long as the compressed size is not also 2³²-1 (implausible) - // and the header is not also 2³²-1 (equally implausible), - // accept the uncompressed size 2³²-1 as valid. - // If nothing else, this keeps archive/zip working with 42.zip. - _ = needUSize - - if needCSize || needHeaderOffset { - return ErrFormat - } - - return nil -} - -func readDataDescriptor(r io.Reader, f *File) error { - var buf [dataDescriptorLen]byte - - // The spec says: "Although not originally assigned a - // signature, the value 0x08074b50 has commonly been adopted - // as a signature value for the data descriptor record. - // Implementers should be aware that ZIP files may be - // encountered with or without this signature marking data - // descriptors and should account for either case when reading - // ZIP files to ensure compatibility." - // - // dataDescriptorLen includes the size of the signature but - // first read just those 4 bytes to see if it exists. - if _, err := io.ReadFull(r, buf[:4]); err != nil { - return err - } - off := 0 - maybeSig := readBuf(buf[:4]) - if maybeSig.uint32() != dataDescriptorSignature { - // No data descriptor signature. Keep these four - // bytes. - off += 4 - } - if _, err := io.ReadFull(r, buf[off:12]); err != nil { - return err - } - b := readBuf(buf[:12]) - if b.uint32() != f.CRC32 { - return ErrChecksum - } - - // The two sizes that follow here can be either 32 bits or 64 bits - // but the spec is not very clear on this and different - // interpretations has been made causing incompatibilities. We - // already have the sizes from the central directory so we can - // just ignore these. - - return nil -} - -func readDirectoryEnd(r io.ReaderAt, size int64) (dir *directoryEnd, err error) { - // look for directoryEndSignature in the last 1k, then in the last 65k - var buf []byte - var directoryEndOffset int64 - for i, bLen := range []int64{1024, 65 * 1024} { - if bLen > size { - bLen = size - } - buf = make([]byte, int(bLen)) - if _, err := r.ReadAt(buf, size-bLen); err != nil && err != io.EOF { - return nil, err - } - if p := findSignatureInBlock(buf); p >= 0 { - buf = buf[p:] - directoryEndOffset = size - bLen + int64(p) - break - } - if i == 1 || bLen == size { - return nil, ErrFormat - } - } - - // read header into struct - b := readBuf(buf[4:]) // skip signature - d := &directoryEnd{ - diskNbr: uint32(b.uint16()), - dirDiskNbr: uint32(b.uint16()), - dirRecordsThisDisk: uint64(b.uint16()), - directoryRecords: uint64(b.uint16()), - directorySize: uint64(b.uint32()), - directoryOffset: uint64(b.uint32()), - commentLen: b.uint16(), - } - l := int(d.commentLen) - if l > len(b) { - return nil, errors.New("zip: invalid comment length") - } - d.comment = string(b[:l]) - - // These values mean that the file can be a zip64 file - if d.directoryRecords == 0xffff || d.directorySize == 0xffff || d.directoryOffset == 0xffffffff { - p, err := findDirectory64End(r, directoryEndOffset) - if err == nil && p >= 0 { - err = readDirectory64End(r, p, d) - } - if err != nil { - return nil, err - } - } - // Make sure directoryOffset points to somewhere in our file. - if o := int64(d.directoryOffset); o < 0 || o >= size { - return nil, ErrFormat - } - return d, nil -} - -// findDirectory64End tries to read the zip64 locator just before the -// directory end and returns the offset of the zip64 directory end if -// found. -func findDirectory64End(r io.ReaderAt, directoryEndOffset int64) (int64, error) { - locOffset := directoryEndOffset - directory64LocLen - if locOffset < 0 { - return -1, nil // no need to look for a header outside the file - } - buf := make([]byte, directory64LocLen) - if _, err := r.ReadAt(buf, locOffset); err != nil { - return -1, err - } - b := readBuf(buf) - if sig := b.uint32(); sig != directory64LocSignature { - return -1, nil - } - if b.uint32() != 0 { // number of the disk with the start of the zip64 end of central directory - return -1, nil // the file is not a valid zip64-file - } - p := b.uint64() // relative offset of the zip64 end of central directory record - if b.uint32() != 1 { // total number of disks - return -1, nil // the file is not a valid zip64-file - } - return int64(p), nil -} - -// readDirectory64End reads the zip64 directory end and updates the -// directory end with the zip64 directory end values. -func readDirectory64End(r io.ReaderAt, offset int64, d *directoryEnd) (err error) { - buf := make([]byte, directory64EndLen) - if _, err := r.ReadAt(buf, offset); err != nil { - return err - } - - b := readBuf(buf) - if sig := b.uint32(); sig != directory64EndSignature { - return ErrFormat - } - - b = b[12:] // skip dir size, version and version needed (uint64 + 2x uint16) - d.diskNbr = b.uint32() // number of this disk - d.dirDiskNbr = b.uint32() // number of the disk with the start of the central directory - d.dirRecordsThisDisk = b.uint64() // total number of entries in the central directory on this disk - d.directoryRecords = b.uint64() // total number of entries in the central directory - d.directorySize = b.uint64() // size of the central directory - d.directoryOffset = b.uint64() // offset of start of central directory with respect to the starting disk number - - return nil -} - -func findSignatureInBlock(b []byte) int { - for i := len(b) - directoryEndLen; i >= 0; i-- { - // defined from directoryEndSignature in struct.go - if b[i] == 'P' && b[i+1] == 'K' && b[i+2] == 0x05 && b[i+3] == 0x06 { - // n is length of comment - n := int(b[i+directoryEndLen-2]) | int(b[i+directoryEndLen-1])<<8 - if n+directoryEndLen+i <= len(b) { - return i - } - } - } - return -1 -} - -type readBuf []byte - -func (b *readBuf) uint8() uint8 { - v := (*b)[0] - *b = (*b)[1:] - return v -} - -func (b *readBuf) uint16() uint16 { - v := binary.LittleEndian.Uint16(*b) - *b = (*b)[2:] - return v -} - -func (b *readBuf) uint32() uint32 { - v := binary.LittleEndian.Uint32(*b) - *b = (*b)[4:] - return v -} - -func (b *readBuf) uint64() uint64 { - v := binary.LittleEndian.Uint64(*b) - *b = (*b)[8:] - return v -} - -func (b *readBuf) sub(n int) readBuf { - b2 := (*b)[:n] - *b = (*b)[n:] - return b2 -} diff --git a/backend/vendor/github.com/klauspost/compress/zip/register.go b/backend/vendor/github.com/klauspost/compress/zip/register.go deleted file mode 100644 index 3bcb1ffd..00000000 --- a/backend/vendor/github.com/klauspost/compress/zip/register.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package zip - -import ( - "errors" - "io" - "io/ioutil" - "sync" - - "github.com/klauspost/compress/flate" -) - -// A Compressor returns a new compressing writer, writing to w. -// The WriteCloser's Close method must be used to flush pending data to w. -// The Compressor itself must be safe to invoke from multiple goroutines -// simultaneously, but each returned writer will be used only by -// one goroutine at a time. -type Compressor func(w io.Writer) (io.WriteCloser, error) - -// A Decompressor returns a new decompressing reader, reading from r. -// The ReadCloser's Close method must be used to release associated resources. -// The Decompressor itself must be safe to invoke from multiple goroutines -// simultaneously, but each returned reader will be used only by -// one goroutine at a time. -type Decompressor func(r io.Reader) io.ReadCloser - -var flateWriterPool sync.Pool - -func newFlateWriter(w io.Writer) io.WriteCloser { - fw, ok := flateWriterPool.Get().(*flate.Writer) - if ok { - fw.Reset(w) - } else { - fw, _ = flate.NewWriter(w, 5) - } - return &pooledFlateWriter{fw: fw} -} - -type pooledFlateWriter struct { - mu sync.Mutex // guards Close and Write - fw *flate.Writer -} - -func (w *pooledFlateWriter) Write(p []byte) (n int, err error) { - w.mu.Lock() - defer w.mu.Unlock() - if w.fw == nil { - return 0, errors.New("Write after Close") - } - return w.fw.Write(p) -} - -func (w *pooledFlateWriter) Close() error { - w.mu.Lock() - defer w.mu.Unlock() - var err error - if w.fw != nil { - err = w.fw.Close() - flateWriterPool.Put(w.fw) - w.fw = nil - } - return err -} - -var flateReaderPool sync.Pool - -func newFlateReader(r io.Reader) io.ReadCloser { - fr, ok := flateReaderPool.Get().(io.ReadCloser) - if ok { - fr.(flate.Resetter).Reset(r, nil) - } else { - fr = flate.NewReader(r) - } - return &pooledFlateReader{fr: fr} -} - -type pooledFlateReader struct { - mu sync.Mutex // guards Close and Read - fr io.ReadCloser -} - -func (r *pooledFlateReader) Read(p []byte) (n int, err error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.fr == nil { - return 0, errors.New("Read after Close") - } - return r.fr.Read(p) -} - -func (r *pooledFlateReader) Close() error { - r.mu.Lock() - defer r.mu.Unlock() - var err error - if r.fr != nil { - err = r.fr.Close() - flateReaderPool.Put(r.fr) - r.fr = nil - } - return err -} - -var ( - compressors sync.Map // map[uint16]Compressor - decompressors sync.Map // map[uint16]Decompressor -) - -func init() { - compressors.Store(Store, Compressor(func(w io.Writer) (io.WriteCloser, error) { return &nopCloser{w}, nil })) - compressors.Store(Deflate, Compressor(func(w io.Writer) (io.WriteCloser, error) { return newFlateWriter(w), nil })) - - decompressors.Store(Store, Decompressor(ioutil.NopCloser)) - decompressors.Store(Deflate, Decompressor(newFlateReader)) -} - -// RegisterDecompressor allows custom decompressors for a specified method ID. -// The common methods Store and Deflate are built in. -func RegisterDecompressor(method uint16, dcomp Decompressor) { - if _, dup := decompressors.LoadOrStore(method, dcomp); dup { - panic("decompressor already registered") - } -} - -// RegisterCompressor registers custom compressors for a specified method ID. -// The common methods Store and Deflate are built in. -func RegisterCompressor(method uint16, comp Compressor) { - if _, dup := compressors.LoadOrStore(method, comp); dup { - panic("compressor already registered") - } -} - -func compressor(method uint16) Compressor { - ci, ok := compressors.Load(method) - if !ok { - return nil - } - return ci.(Compressor) -} - -func decompressor(method uint16) Decompressor { - di, ok := decompressors.Load(method) - if !ok { - return nil - } - return di.(Decompressor) -} diff --git a/backend/vendor/github.com/klauspost/compress/zip/struct.go b/backend/vendor/github.com/klauspost/compress/zip/struct.go deleted file mode 100644 index 686e7978..00000000 --- a/backend/vendor/github.com/klauspost/compress/zip/struct.go +++ /dev/null @@ -1,387 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package zip provides support for reading and writing ZIP archives. - -See: https://www.pkware.com/appnote - -This package does not support disk spanning. - -A note about ZIP64: - -To be backwards compatible the FileHeader has both 32 and 64 bit Size -fields. The 64 bit fields will always contain the correct value and -for normal archives both fields will be the same. For files requiring -the ZIP64 format the 32 bit fields will be 0xffffffff and the 64 bit -fields must be used instead. -*/ -package zip - -import ( - "os" - "path" - "time" -) - -// Compression methods. -const ( - Store uint16 = 0 // no compression - Deflate uint16 = 8 // DEFLATE compressed -) - -const ( - fileHeaderSignature = 0x04034b50 - directoryHeaderSignature = 0x02014b50 - directoryEndSignature = 0x06054b50 - directory64LocSignature = 0x07064b50 - directory64EndSignature = 0x06064b50 - dataDescriptorSignature = 0x08074b50 // de-facto standard; required by OS X Finder - fileHeaderLen = 30 // + filename + extra - directoryHeaderLen = 46 // + filename + extra + comment - directoryEndLen = 22 // + comment - dataDescriptorLen = 16 // four uint32: descriptor signature, crc32, compressed size, size - dataDescriptor64Len = 24 // descriptor with 8 byte sizes - directory64LocLen = 20 // - directory64EndLen = 56 // + extra - - // Constants for the first byte in CreatorVersion. - creatorFAT = 0 - creatorUnix = 3 - creatorNTFS = 11 - creatorVFAT = 14 - creatorMacOSX = 19 - - // Version numbers. - zipVersion20 = 20 // 2.0 - zipVersion45 = 45 // 4.5 (reads and writes zip64 archives) - - // Limits for non zip64 files. - uint16max = (1 << 16) - 1 - uint32max = (1 << 32) - 1 - - // Extra header IDs. - // - // IDs 0..31 are reserved for official use by PKWARE. - // IDs above that range are defined by third-party vendors. - // Since ZIP lacked high precision timestamps (nor a official specification - // of the timezone used for the date fields), many competing extra fields - // have been invented. Pervasive use effectively makes them "official". - // - // See http://mdfs.net/Docs/Comp/Archiving/Zip/ExtraField - zip64ExtraID = 0x0001 // Zip64 extended information - ntfsExtraID = 0x000a // NTFS - unixExtraID = 0x000d // UNIX - extTimeExtraID = 0x5455 // Extended timestamp - infoZipUnixExtraID = 0x5855 // Info-ZIP Unix extension -) - -// FileHeader describes a file within a zip file. -// See the zip spec for details. -type FileHeader struct { - // Name is the name of the file. - // - // It must be a relative path, not start with a drive letter (such as "C:"), - // and must use forward slashes instead of back slashes. A trailing slash - // indicates that this file is a directory and should have no data. - // - // When reading zip files, the Name field is populated from - // the zip file directly and is not validated for correctness. - // It is the caller's responsibility to sanitize it as - // appropriate, including canonicalizing slash directions, - // validating that paths are relative, and preventing path - // traversal through filenames ("../../../"). - Name string - - // Comment is any arbitrary user-defined string shorter than 64KiB. - Comment string - - // NonUTF8 indicates that Name and Comment are not encoded in UTF-8. - // - // By specification, the only other encoding permitted should be CP-437, - // but historically many ZIP readers interpret Name and Comment as whatever - // the system's local character encoding happens to be. - // - // This flag should only be set if the user intends to encode a non-portable - // ZIP file for a specific localized region. Otherwise, the Writer - // automatically sets the ZIP format's UTF-8 flag for valid UTF-8 strings. - NonUTF8 bool - - CreatorVersion uint16 - ReaderVersion uint16 - Flags uint16 - - // Method is the compression method. If zero, Store is used. - Method uint16 - - // Modified is the modified time of the file. - // - // When reading, an extended timestamp is preferred over the legacy MS-DOS - // date field, and the offset between the times is used as the timezone. - // If only the MS-DOS date is present, the timezone is assumed to be UTC. - // - // When writing, an extended timestamp (which is timezone-agnostic) is - // always emitted. The legacy MS-DOS date field is encoded according to the - // location of the Modified time. - Modified time.Time - ModifiedTime uint16 // Deprecated: Legacy MS-DOS date; use Modified instead. - ModifiedDate uint16 // Deprecated: Legacy MS-DOS time; use Modified instead. - - CRC32 uint32 - CompressedSize uint32 // Deprecated: Use CompressedSize64 instead. - UncompressedSize uint32 // Deprecated: Use UncompressedSize64 instead. - CompressedSize64 uint64 - UncompressedSize64 uint64 - Extra []byte - ExternalAttrs uint32 // Meaning depends on CreatorVersion -} - -// FileInfo returns an os.FileInfo for the FileHeader. -func (h *FileHeader) FileInfo() os.FileInfo { - return headerFileInfo{h} -} - -// headerFileInfo implements os.FileInfo. -type headerFileInfo struct { - fh *FileHeader -} - -func (fi headerFileInfo) Name() string { return path.Base(fi.fh.Name) } -func (fi headerFileInfo) Size() int64 { - if fi.fh.UncompressedSize64 > 0 { - return int64(fi.fh.UncompressedSize64) - } - return int64(fi.fh.UncompressedSize) -} -func (fi headerFileInfo) IsDir() bool { return fi.Mode().IsDir() } -func (fi headerFileInfo) ModTime() time.Time { - if fi.fh.Modified.IsZero() { - return fi.fh.ModTime() - } - return fi.fh.Modified.UTC() -} -func (fi headerFileInfo) Mode() os.FileMode { return fi.fh.Mode() } -func (fi headerFileInfo) Sys() interface{} { return fi.fh } - -// FileInfoHeader creates a partially-populated FileHeader from an -// os.FileInfo. -// Because os.FileInfo's Name method returns only the base name of -// the file it describes, it may be necessary to modify the Name field -// of the returned header to provide the full path name of the file. -// If compression is desired, callers should set the FileHeader.Method -// field; it is unset by default. -func FileInfoHeader(fi os.FileInfo) (*FileHeader, error) { - size := fi.Size() - fh := &FileHeader{ - Name: fi.Name(), - UncompressedSize64: uint64(size), - } - fh.SetModTime(fi.ModTime()) - fh.SetMode(fi.Mode()) - if fh.UncompressedSize64 > uint32max { - fh.UncompressedSize = uint32max - } else { - fh.UncompressedSize = uint32(fh.UncompressedSize64) - } - return fh, nil -} - -type directoryEnd struct { - diskNbr uint32 // unused - dirDiskNbr uint32 // unused - dirRecordsThisDisk uint64 // unused - directoryRecords uint64 - directorySize uint64 - directoryOffset uint64 // relative to file - commentLen uint16 - comment string -} - -// timeZone returns a *time.Location based on the provided offset. -// If the offset is non-sensible, then this uses an offset of zero. -func timeZone(offset time.Duration) *time.Location { - const ( - minOffset = -12 * time.Hour // E.g., Baker island at -12:00 - maxOffset = +14 * time.Hour // E.g., Line island at +14:00 - offsetAlias = 15 * time.Minute // E.g., Nepal at +5:45 - ) - offset = offset.Round(offsetAlias) - if offset < minOffset || maxOffset < offset { - offset = 0 - } - return time.FixedZone("", int(offset/time.Second)) -} - -// msDosTimeToTime converts an MS-DOS date and time into a time.Time. -// The resolution is 2s. -// See: https://msdn.microsoft.com/en-us/library/ms724247(v=VS.85).aspx -func msDosTimeToTime(dosDate, dosTime uint16) time.Time { - return time.Date( - // date bits 0-4: day of month; 5-8: month; 9-15: years since 1980 - int(dosDate>>9+1980), - time.Month(dosDate>>5&0xf), - int(dosDate&0x1f), - - // time bits 0-4: second/2; 5-10: minute; 11-15: hour - int(dosTime>>11), - int(dosTime>>5&0x3f), - int(dosTime&0x1f*2), - 0, // nanoseconds - - time.UTC, - ) -} - -// timeToMsDosTime converts a time.Time to an MS-DOS date and time. -// The resolution is 2s. -// See: https://msdn.microsoft.com/en-us/library/ms724274(v=VS.85).aspx -func timeToMsDosTime(t time.Time) (fDate uint16, fTime uint16) { - fDate = uint16(t.Day() + int(t.Month())<<5 + (t.Year()-1980)<<9) - fTime = uint16(t.Second()/2 + t.Minute()<<5 + t.Hour()<<11) - return -} - -// ModTime returns the modification time in UTC using the legacy -// ModifiedDate and ModifiedTime fields. -// -// Deprecated: Use Modified instead. -func (h *FileHeader) ModTime() time.Time { - return msDosTimeToTime(h.ModifiedDate, h.ModifiedTime) -} - -// SetModTime sets the Modified, ModifiedTime, and ModifiedDate fields -// to the given time in UTC. -// -// Deprecated: Use Modified instead. -func (h *FileHeader) SetModTime(t time.Time) { - t = t.UTC() // Convert to UTC for compatibility - h.Modified = t - h.ModifiedDate, h.ModifiedTime = timeToMsDosTime(t) -} - -const ( - // Unix constants. The specification doesn't mention them, - // but these seem to be the values agreed on by tools. - s_IFMT = 0xf000 - s_IFSOCK = 0xc000 - s_IFLNK = 0xa000 - s_IFREG = 0x8000 - s_IFBLK = 0x6000 - s_IFDIR = 0x4000 - s_IFCHR = 0x2000 - s_IFIFO = 0x1000 - s_ISUID = 0x800 - s_ISGID = 0x400 - s_ISVTX = 0x200 - - msdosDir = 0x10 - msdosReadOnly = 0x01 -) - -// Mode returns the permission and mode bits for the FileHeader. -func (h *FileHeader) Mode() (mode os.FileMode) { - switch h.CreatorVersion >> 8 { - case creatorUnix, creatorMacOSX: - mode = unixModeToFileMode(h.ExternalAttrs >> 16) - case creatorNTFS, creatorVFAT, creatorFAT: - mode = msdosModeToFileMode(h.ExternalAttrs) - } - if len(h.Name) > 0 && h.Name[len(h.Name)-1] == '/' { - mode |= os.ModeDir - } - return mode -} - -// SetMode changes the permission and mode bits for the FileHeader. -func (h *FileHeader) SetMode(mode os.FileMode) { - h.CreatorVersion = h.CreatorVersion&0xff | creatorUnix<<8 - h.ExternalAttrs = fileModeToUnixMode(mode) << 16 - - // set MSDOS attributes too, as the original zip does. - if mode&os.ModeDir != 0 { - h.ExternalAttrs |= msdosDir - } - if mode&0200 == 0 { - h.ExternalAttrs |= msdosReadOnly - } -} - -// isZip64 reports whether the file size exceeds the 32 bit limit -func (h *FileHeader) isZip64() bool { - return h.CompressedSize64 >= uint32max || h.UncompressedSize64 >= uint32max -} - -func msdosModeToFileMode(m uint32) (mode os.FileMode) { - if m&msdosDir != 0 { - mode = os.ModeDir | 0777 - } else { - mode = 0666 - } - if m&msdosReadOnly != 0 { - mode &^= 0222 - } - return mode -} - -func fileModeToUnixMode(mode os.FileMode) uint32 { - var m uint32 - switch mode & os.ModeType { - default: - m = s_IFREG - case os.ModeDir: - m = s_IFDIR - case os.ModeSymlink: - m = s_IFLNK - case os.ModeNamedPipe: - m = s_IFIFO - case os.ModeSocket: - m = s_IFSOCK - case os.ModeDevice: - if mode&os.ModeCharDevice != 0 { - m = s_IFCHR - } else { - m = s_IFBLK - } - } - if mode&os.ModeSetuid != 0 { - m |= s_ISUID - } - if mode&os.ModeSetgid != 0 { - m |= s_ISGID - } - if mode&os.ModeSticky != 0 { - m |= s_ISVTX - } - return m | uint32(mode&0777) -} - -func unixModeToFileMode(m uint32) os.FileMode { - mode := os.FileMode(m & 0777) - switch m & s_IFMT { - case s_IFBLK: - mode |= os.ModeDevice - case s_IFCHR: - mode |= os.ModeDevice | os.ModeCharDevice - case s_IFDIR: - mode |= os.ModeDir - case s_IFIFO: - mode |= os.ModeNamedPipe - case s_IFLNK: - mode |= os.ModeSymlink - case s_IFREG: - // nothing to do - case s_IFSOCK: - mode |= os.ModeSocket - } - if m&s_ISGID != 0 { - mode |= os.ModeSetgid - } - if m&s_ISUID != 0 { - mode |= os.ModeSetuid - } - if m&s_ISVTX != 0 { - mode |= os.ModeSticky - } - return mode -} diff --git a/backend/vendor/github.com/klauspost/compress/zip/writer.go b/backend/vendor/github.com/klauspost/compress/zip/writer.go deleted file mode 100644 index 335b637c..00000000 --- a/backend/vendor/github.com/klauspost/compress/zip/writer.go +++ /dev/null @@ -1,747 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package zip - -import ( - "bufio" - "encoding/binary" - "errors" - "hash" - "hash/crc32" - "io" - "strings" - "unicode/utf8" -) - -var ( - errLongName = errors.New("zip: FileHeader.Name too long") - errLongExtra = errors.New("zip: FileHeader.Extra too long") -) - -type lastWriter interface { - Close() error - Closed() bool -} - -// Writer implements a zip file writer. -type Writer struct { - cw *countWriter - dir []*header - last lastWriter - closed bool - compressors map[uint16]Compressor - comment string - - // testHookCloseSizeOffset if non-nil is called with the size - // of offset of the central directory at Close. - testHookCloseSizeOffset func(size, offset uint64) -} - -type header struct { - *FileHeader - offset uint64 -} - -// NewWriter returns a new Writer writing a zip file to w. -func NewWriter(w io.Writer) *Writer { - return &Writer{cw: &countWriter{w: bufio.NewWriter(w)}} -} - -// SetOffset sets the offset of the beginning of the zip data within the -// underlying writer. It should be used when the zip data is appended to an -// existing file, such as a binary executable. -// It must be called before any data is written. -func (w *Writer) SetOffset(n int64) { - if w.cw.count != 0 { - panic("zip: SetOffset called after data was written") - } - w.cw.count = n -} - -// Flush flushes any buffered data to the underlying writer. -// Calling Flush is not normally necessary; calling Close is sufficient. -func (w *Writer) Flush() error { - return w.cw.w.(*bufio.Writer).Flush() -} - -// SetComment sets the end-of-central-directory comment field. -// It can only be called before Close. -func (w *Writer) SetComment(comment string) error { - if len(comment) > uint16max { - return errors.New("zip: Writer.Comment too long") - } - w.comment = comment - return nil -} - -// Close finishes writing the zip file by writing the central directory. -// It does not Close the underlying writer. -func (w *Writer) Close() error { - if w.last != nil && !w.last.Closed() { - if err := w.last.Close(); err != nil { - return err - } - w.last = nil - } - if w.closed { - return errors.New("zip: writer closed twice") - } - w.closed = true - - // write central directory - start := w.cw.count - for _, h := range w.dir { - var buf [directoryHeaderLen]byte - b := writeBuf(buf[:]) - b.uint32(uint32(directoryHeaderSignature)) - b.uint16(h.CreatorVersion) - b.uint16(h.ReaderVersion) - b.uint16(h.Flags) - b.uint16(h.Method) - b.uint16(h.ModifiedTime) - b.uint16(h.ModifiedDate) - b.uint32(h.CRC32) - if h.isZip64() || h.offset >= uint32max { - // the file needs a zip64 header. store maxint in both - // 32 bit size fields (and offset later) to signal that the - // zip64 extra header should be used. - b.uint32(uint32max) // compressed size - b.uint32(uint32max) // uncompressed size - - // append a zip64 extra block to Extra - var buf [28]byte // 2x uint16 + 3x uint64 - eb := writeBuf(buf[:]) - eb.uint16(zip64ExtraID) - eb.uint16(24) // size = 3x uint64 - eb.uint64(h.UncompressedSize64) - eb.uint64(h.CompressedSize64) - eb.uint64(h.offset) - h.Extra = append(h.Extra, buf[:]...) - } else { - b.uint32(h.CompressedSize) - b.uint32(h.UncompressedSize) - } - - b.uint16(uint16(len(h.Name))) - b.uint16(uint16(len(h.Extra))) - b.uint16(uint16(len(h.Comment))) - b = b[4:] // skip disk number start and internal file attr (2x uint16) - b.uint32(h.ExternalAttrs) - if h.offset > uint32max { - b.uint32(uint32max) - } else { - b.uint32(uint32(h.offset)) - } - if _, err := w.cw.Write(buf[:]); err != nil { - return err - } - if _, err := io.WriteString(w.cw, h.Name); err != nil { - return err - } - if _, err := w.cw.Write(h.Extra); err != nil { - return err - } - if _, err := io.WriteString(w.cw, h.Comment); err != nil { - return err - } - } - end := w.cw.count - - records := uint64(len(w.dir)) - size := uint64(end - start) - offset := uint64(start) - - if f := w.testHookCloseSizeOffset; f != nil { - f(size, offset) - } - - if records >= uint16max || size >= uint32max || offset >= uint32max { - var buf [directory64EndLen + directory64LocLen]byte - b := writeBuf(buf[:]) - - // zip64 end of central directory record - b.uint32(directory64EndSignature) - b.uint64(directory64EndLen - 12) // length minus signature (uint32) and length fields (uint64) - b.uint16(zipVersion45) // version made by - b.uint16(zipVersion45) // version needed to extract - b.uint32(0) // number of this disk - b.uint32(0) // number of the disk with the start of the central directory - b.uint64(records) // total number of entries in the central directory on this disk - b.uint64(records) // total number of entries in the central directory - b.uint64(size) // size of the central directory - b.uint64(offset) // offset of start of central directory with respect to the starting disk number - - // zip64 end of central directory locator - b.uint32(directory64LocSignature) - b.uint32(0) // number of the disk with the start of the zip64 end of central directory - b.uint64(uint64(end)) // relative offset of the zip64 end of central directory record - b.uint32(1) // total number of disks - - if _, err := w.cw.Write(buf[:]); err != nil { - return err - } - - // store max values in the regular end record to signal - // that the zip64 values should be used instead - records = uint16max - size = uint32max - offset = uint32max - } - - // write end record - var buf [directoryEndLen]byte - b := writeBuf(buf[:]) - b.uint32(uint32(directoryEndSignature)) - b = b[4:] // skip over disk number and first disk number (2x uint16) - b.uint16(uint16(records)) // number of entries this disk - b.uint16(uint16(records)) // number of entries total - b.uint32(uint32(size)) // size of directory - b.uint32(uint32(offset)) // start of directory - b.uint16(uint16(len(w.comment))) // byte size of EOCD comment - if _, err := w.cw.Write(buf[:]); err != nil { - return err - } - if _, err := io.WriteString(w.cw, w.comment); err != nil { - return err - } - - return w.cw.w.(*bufio.Writer).Flush() -} - -// Create adds a file to the zip file using the provided name. -// It returns a Writer to which the file contents should be written. -// The file contents will be compressed using the Deflate method. -// The name must be a relative path: it must not start with a drive -// letter (e.g. C:) or leading slash, and only forward slashes are -// allowed. To create a directory instead of a file, add a trailing -// slash to the name. -// The file's contents must be written to the io.Writer before the next -// call to Create, CreateHeader, CreateHeaderRaw, or Close. -func (w *Writer) Create(name string) (io.Writer, error) { - header := &FileHeader{ - Name: name, - Method: Deflate, - } - return w.CreateHeader(header) -} - -// Copy will copy raw content from input file. -// Optionally a different name can be given to the new file. -func (w *Writer) Copy(name string, src *File) error { - header := src.FileHeader - if name != "" { - header.Name = name - } - raw, err := src.OpenRaw() - if err != nil { - return err - } - wr, err := w.CreateHeaderRaw(&header) - if err != nil { - return err - } - _, err = io.Copy(wr, raw) - return err -} - -// detectUTF8 reports whether s is a valid UTF-8 string, and whether the string -// must be considered UTF-8 encoding (i.e., not compatible with CP-437, ASCII, -// or any other common encoding). -func detectUTF8(s string) (valid, require bool) { - for i := 0; i < len(s); { - r, size := utf8.DecodeRuneInString(s[i:]) - i += size - // Officially, ZIP uses CP-437, but many readers use the system's - // local character encoding. Most encoding are compatible with a large - // subset of CP-437, which itself is ASCII-like. - // - // Forbid 0x7e and 0x5c since EUC-KR and Shift-JIS replace those - // characters with localized currency and overline characters. - if r < 0x20 || r > 0x7d || r == 0x5c { - if !utf8.ValidRune(r) || (r == utf8.RuneError && size == 1) { - return false, false - } - require = true - } - } - return true, require -} - -// CreateHeader adds a file to the zip archive using the provided FileHeader -// for the file metadata. Writer takes ownership of fh and may mutate -// its fields. The caller must not modify fh after calling CreateHeader. -// -// This returns a Writer to which the file contents should be written. -// The file's contents must be written to the io.Writer before the next -// call to Create, Copy, CreateHeader, CreateHeaderRaw or Close. -func (w *Writer) CreateHeader(fh *FileHeader) (io.Writer, error) { - if w.last != nil && !w.last.Closed() { - if err := w.last.Close(); err != nil { - return nil, err - } - } - if len(w.dir) > 0 && w.dir[len(w.dir)-1].FileHeader == fh { - // See https://golang.org/issue/11144 confusion. - return nil, errors.New("archive/zip: invalid duplicate FileHeader") - } - - // The ZIP format has a sad state of affairs regarding character encoding. - // Officially, the name and comment fields are supposed to be encoded - // in CP-437 (which is mostly compatible with ASCII), unless the UTF-8 - // flag bit is set. However, there are several problems: - // - // * Many ZIP readers still do not support UTF-8. - // * If the UTF-8 flag is cleared, several readers simply interpret the - // name and comment fields as whatever the local system encoding is. - // - // In order to avoid breaking readers without UTF-8 support, - // we avoid setting the UTF-8 flag if the strings are CP-437 compatible. - // However, if the strings require multibyte UTF-8 encoding and is a - // valid UTF-8 string, then we set the UTF-8 bit. - // - // For the case, where the user explicitly wants to specify the encoding - // as UTF-8, they will need to set the flag bit themselves. - utf8Valid1, utf8Require1 := detectUTF8(fh.Name) - utf8Valid2, utf8Require2 := detectUTF8(fh.Comment) - switch { - case fh.NonUTF8: - fh.Flags &^= 0x800 - case (utf8Require1 || utf8Require2) && (utf8Valid1 && utf8Valid2): - fh.Flags |= 0x800 - } - - fh.CreatorVersion = fh.CreatorVersion&0xff00 | zipVersion20 // preserve compatibility byte - fh.ReaderVersion = zipVersion20 - - // If Modified is set, this takes precedence over MS-DOS timestamp fields. - if !fh.Modified.IsZero() { - // Contrary to the FileHeader.SetModTime method, we intentionally - // do not convert to UTC, because we assume the user intends to encode - // the date using the specified timezone. A user may want this control - // because many legacy ZIP readers interpret the timestamp according - // to the local timezone. - // - // The timezone is only non-UTC if a user directly sets the Modified - // field directly themselves. All other approaches sets UTC. - fh.ModifiedDate, fh.ModifiedTime = timeToMsDosTime(fh.Modified) - - // Use "extended timestamp" format since this is what Info-ZIP uses. - // Nearly every major ZIP implementation uses a different format, - // but at least most seem to be able to understand the other formats. - // - // This format happens to be identical for both local and central header - // if modification time is the only timestamp being encoded. - var mbuf [9]byte // 2*SizeOf(uint16) + SizeOf(uint8) + SizeOf(uint32) - mt := uint32(fh.Modified.Unix()) - eb := writeBuf(mbuf[:]) - eb.uint16(extTimeExtraID) - eb.uint16(5) // Size: SizeOf(uint8) + SizeOf(uint32) - eb.uint8(1) // Flags: ModTime - eb.uint32(mt) // ModTime - fh.Extra = append(fh.Extra, mbuf[:]...) - } - - var ow io.Writer - h := &header{ - FileHeader: fh, - offset: uint64(w.cw.count), - } - - if strings.HasSuffix(fh.Name, "/") { - // Set the compression method to Store to ensure data length is truly zero, - // which the writeHeader method always encodes for the size fields. - // This is necessary as most compression formats have non-zero lengths - // even when compressing an empty string. - fh.Method = Store - fh.Flags &^= 0x8 // we will not write a data descriptor - - // Explicitly clear sizes as they have no meaning for directories. - fh.CompressedSize = 0 - fh.CompressedSize64 = 0 - fh.UncompressedSize = 0 - fh.UncompressedSize64 = 0 - - ow = dirWriter{} - w.last = nil - } else { - fh.Flags |= 0x8 // we will write a data descriptor - - fw := &fileWriter{ - zipw: w.cw, - compCount: &countWriter{w: w.cw}, - crc32: crc32.NewIEEE(), - } - comp := w.compressor(fh.Method) - if comp == nil { - return nil, ErrAlgorithm - } - var err error - fw.comp, err = comp(fw.compCount) - if err != nil { - return nil, err - } - fw.rawCount = &countWriter{w: fw.comp} - fw.header = h - ow = fw - w.last = fw - } - w.dir = append(w.dir, h) - if err := writeHeader(w.cw, fh); err != nil { - return nil, err - } - // If we're creating a directory, fw is nil. - return ow, nil -} - -// CreateHeaderRaw adds a file to the zip archive using the provided FileHeader -// for the file metadata. Writer takes ownership of fh and may mutate -// its fields. The caller must not modify fh after calling CreateHeaderRaw. -// -// This returns a Writer to which the compressed file contents should be written. -// The file's contents must be written to the io.Writer before the next -// call to Create, Copy, CreateHeader, CreateHeaderRaw or Close. -// -// Using this requires knowledge of populating the FileHeader correctly (the -// UncompressedSize64 and CRC32 fields should be set and valid for the contents -// written). For copying from an existing zip file, the Copy() function is -// recommended. -func (w *Writer) CreateHeaderRaw(fh *FileHeader) (io.Writer, error) { - if w.last != nil && !w.last.Closed() { - if err := w.last.Close(); err != nil { - return nil, err - } - } - if len(w.dir) > 0 && w.dir[len(w.dir)-1].FileHeader == fh { - // See https://golang.org/issue/11144 confusion. - return nil, errors.New("archive/zip: invalid duplicate FileHeader") - } - - // The ZIP format has a sad state of affairs regarding character encoding. - // Officially, the name and comment fields are supposed to be encoded - // in CP-437 (which is mostly compatible with ASCII), unless the UTF-8 - // flag bit is set. However, there are several problems: - // - // * Many ZIP readers still do not support UTF-8. - // * If the UTF-8 flag is cleared, several readers simply interpret the - // name and comment fields as whatever the local system encoding is. - // - // In order to avoid breaking readers without UTF-8 support, - // we avoid setting the UTF-8 flag if the strings are CP-437 compatible. - // However, if the strings require multibyte UTF-8 encoding and is a - // valid UTF-8 string, then we set the UTF-8 bit. - // - // For the case, where the user explicitly wants to specify the encoding - // as UTF-8, they will need to set the flag bit themselves. - utf8Valid1, utf8Require1 := detectUTF8(fh.Name) - utf8Valid2, utf8Require2 := detectUTF8(fh.Comment) - switch { - case fh.NonUTF8: - fh.Flags &^= 0x800 - case (utf8Require1 || utf8Require2) && (utf8Valid1 && utf8Valid2): - fh.Flags |= 0x800 - } - - fh.CreatorVersion = fh.CreatorVersion&0xff00 | zipVersion20 // preserve compatibility byte - fh.ReaderVersion = zipVersion20 - - // If Modified is set, this takes precedence over MS-DOS timestamp fields. - if !fh.Modified.IsZero() { - // Contrary to the FileHeader.SetModTime method, we intentionally - // do not convert to UTC, because we assume the user intends to encode - // the date using the specified timezone. A user may want this control - // because many legacy ZIP readers interpret the timestamp according - // to the local timezone. - // - // The timezone is only non-UTC if a user directly sets the Modified - // field directly themselves. All other approaches sets UTC. - fh.ModifiedDate, fh.ModifiedTime = timeToMsDosTime(fh.Modified) - - // Use "extended timestamp" format since this is what Info-ZIP uses. - // Nearly every major ZIP implementation uses a different format, - // but at least most seem to be able to understand the other formats. - // - // This format happens to be identical for both local and central header - // if modification time is the only timestamp being encoded. - var mbuf [9]byte // 2*SizeOf(uint16) + SizeOf(uint8) + SizeOf(uint32) - mt := uint32(fh.Modified.Unix()) - eb := writeBuf(mbuf[:]) - eb.uint16(extTimeExtraID) - eb.uint16(5) // Size: SizeOf(uint8) + SizeOf(uint32) - eb.uint8(1) // Flags: ModTime - eb.uint32(mt) // ModTime - fh.Extra = append(fh.Extra, mbuf[:]...) - } - - var ow io.Writer - h := &header{ - FileHeader: fh, - offset: uint64(w.cw.count), - } - - if strings.HasSuffix(fh.Name, "/") { - // Set the compression method to Store to ensure data length is truly zero, - // which the writeHeader method always encodes for the size fields. - // This is necessary as most compression formats have non-zero lengths - // even when compressing an empty string. - fh.Method = Store - fh.Flags &^= 0x8 // we will not write a data descriptor - - // Explicitly clear sizes as they have no meaning for directories. - fh.CompressedSize = 0 - fh.CompressedSize64 = 0 - fh.UncompressedSize = 0 - fh.UncompressedSize64 = 0 - - ow = dirWriter{} - w.last = nil - } else { - fh.Flags |= 0x8 // we will write a data descriptor - - fw := &rawWriter{ - header: h, - zipw: w.cw, - rawCount: &countWriter{w: w.cw}, - } - ow = fw - w.last = fw - } - w.dir = append(w.dir, h) - if err := writeHeader(w.cw, fh); err != nil { - return nil, err - } - // If we're creating a directory, fw is nil. - return ow, nil -} - -func writeHeader(w io.Writer, h *FileHeader) error { - const maxUint16 = 1<<16 - 1 - if len(h.Name) > maxUint16 { - return errLongName - } - if len(h.Extra) > maxUint16 { - return errLongExtra - } - - var buf [fileHeaderLen]byte - b := writeBuf(buf[:]) - b.uint32(uint32(fileHeaderSignature)) - b.uint16(h.ReaderVersion) - b.uint16(h.Flags) - b.uint16(h.Method) - b.uint16(h.ModifiedTime) - b.uint16(h.ModifiedDate) - b.uint32(0) // since we are writing a data descriptor crc32, - b.uint32(0) // compressed size, - b.uint32(0) // and uncompressed size should be zero - b.uint16(uint16(len(h.Name))) - b.uint16(uint16(len(h.Extra))) - if _, err := w.Write(buf[:]); err != nil { - return err - } - if _, err := io.WriteString(w, h.Name); err != nil { - return err - } - _, err := w.Write(h.Extra) - return err -} - -// RegisterCompressor registers or overrides a custom compressor for a specific -// method ID. If a compressor for a given method is not found, Writer will -// default to looking up the compressor at the package level. -func (w *Writer) RegisterCompressor(method uint16, comp Compressor) { - if w.compressors == nil { - w.compressors = make(map[uint16]Compressor) - } - w.compressors[method] = comp -} - -func (w *Writer) compressor(method uint16) Compressor { - comp := w.compressors[method] - if comp == nil { - comp = compressor(method) - } - return comp -} - -type dirWriter struct{} - -func (dirWriter) Write(b []byte) (int, error) { - if len(b) == 0 { - return 0, nil - } - return 0, errors.New("zip: write to directory") -} - -type fileWriter struct { - *header - zipw io.Writer - rawCount *countWriter - comp io.WriteCloser - compCount *countWriter - crc32 hash.Hash32 - closed bool -} - -func (w *fileWriter) Write(p []byte) (int, error) { - if w.closed { - return 0, errors.New("zip: write to closed file") - } - w.crc32.Write(p) - return w.rawCount.Write(p) -} - -func (w *fileWriter) Closed() bool { - return w.closed -} - -func (w *fileWriter) Close() error { - if w.closed { - return errors.New("zip: file closed twice") - } - w.closed = true - if err := w.comp.Close(); err != nil { - return err - } - - // update FileHeader - fh := w.header.FileHeader - fh.CRC32 = w.crc32.Sum32() - fh.CompressedSize64 = uint64(w.compCount.count) - fh.UncompressedSize64 = uint64(w.rawCount.count) - - if fh.isZip64() { - fh.CompressedSize = uint32max - fh.UncompressedSize = uint32max - fh.ReaderVersion = zipVersion45 // requires 4.5 - File uses ZIP64 format extensions - } else { - fh.CompressedSize = uint32(fh.CompressedSize64) - fh.UncompressedSize = uint32(fh.UncompressedSize64) - } - - // Write data descriptor. This is more complicated than one would - // think, see e.g. comments in zipfile.c:putextended() and - // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073588. - // The approach here is to write 8 byte sizes if needed without - // adding a zip64 extra in the local header (too late anyway). - var buf []byte - if fh.isZip64() { - buf = make([]byte, dataDescriptor64Len) - } else { - buf = make([]byte, dataDescriptorLen) - } - b := writeBuf(buf) - b.uint32(dataDescriptorSignature) // de-facto standard, required by OS X - b.uint32(fh.CRC32) - if fh.isZip64() { - b.uint64(fh.CompressedSize64) - b.uint64(fh.UncompressedSize64) - } else { - b.uint32(fh.CompressedSize) - b.uint32(fh.UncompressedSize) - } - _, err := w.zipw.Write(buf) - return err -} - -type rawWriter struct { - *header - zipw io.Writer - rawCount *countWriter - closed bool -} - -func (w *rawWriter) Write(p []byte) (int, error) { - if w.closed { - return 0, errors.New("zip: write to closed file") - } - return w.rawCount.Write(p) -} - -func (w *rawWriter) Closed() bool { - return w.closed -} - -func (w *rawWriter) Close() error { - if w.closed { - return errors.New("zip: file closed twice") - } - w.closed = true - fh := w.FileHeader - fh.CompressedSize64 = uint64(w.rawCount.count) - - if fh.isZip64() { - fh.CompressedSize = uint32max - fh.UncompressedSize = uint32max - fh.ReaderVersion = zipVersion45 // requires 4.5 - File uses ZIP64 format extensions - } else { - fh.CompressedSize = uint32(fh.CompressedSize64) - fh.UncompressedSize = uint32(fh.UncompressedSize64) - } - - // Write data descriptor. This is more complicated than one would - // think, see e.g. comments in zipfile.c:putextended() and - // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073588. - // The approach here is to write 8 byte sizes if needed without - // adding a zip64 extra in the local header (too late anyway). - var buf []byte - if fh.isZip64() { - buf = make([]byte, dataDescriptor64Len) - } else { - buf = make([]byte, dataDescriptorLen) - } - b := writeBuf(buf) - b.uint32(dataDescriptorSignature) // de-facto standard, required by OS X - b.uint32(fh.CRC32) - if fh.isZip64() { - b.uint64(fh.CompressedSize64) - b.uint64(fh.UncompressedSize64) - } else { - b.uint32(fh.CompressedSize) - b.uint32(fh.UncompressedSize) - } - _, err := w.zipw.Write(buf) - return err -} - -type countWriter struct { - w io.Writer - count int64 -} - -func (w *countWriter) Write(p []byte) (int, error) { - n, err := w.w.Write(p) - w.count += int64(n) - return n, err -} - -type nopCloser struct { - io.Writer -} - -func (w nopCloser) Close() error { - return nil -} - -type writeBuf []byte - -func (b *writeBuf) uint8(v uint8) { - (*b)[0] = v - *b = (*b)[1:] -} - -func (b *writeBuf) uint16(v uint16) { - binary.LittleEndian.PutUint16(*b, v) - *b = (*b)[2:] -} - -func (b *writeBuf) uint32(v uint32) { - binary.LittleEndian.PutUint32(*b, v) - *b = (*b)[4:] -} - -func (b *writeBuf) uint64(v uint64) { - binary.LittleEndian.PutUint64(*b, v) - *b = (*b)[8:] -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/README.md b/backend/vendor/github.com/klauspost/compress/zstd/README.md deleted file mode 100644 index 7680bfe1..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/README.md +++ /dev/null @@ -1,417 +0,0 @@ -# zstd - -[Zstandard](https://facebook.github.io/zstd/) is a real-time compression algorithm, providing high compression ratios. -It offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder. -A high performance compression algorithm is implemented. For now focused on speed. - -This package provides [compression](#Compressor) to and [decompression](#Decompressor) of Zstandard content. - -This package is pure Go and without use of "unsafe". - -The `zstd` package is provided as open source software using a Go standard license. - -Currently the package is heavily optimized for 64 bit processors and will be significantly slower on 32 bit processors. - -## Installation - -Install using `go get -u github.com/klauspost/compress`. The package is located in `github.com/klauspost/compress/zstd`. - -Godoc Documentation: https://godoc.org/github.com/klauspost/compress/zstd - - -## Compressor - -### Status: - -STABLE - there may always be subtle bugs, a wide variety of content has been tested and the library is actively -used by several projects. This library is being [fuzz-tested](https://github.com/klauspost/compress-fuzz) for all updates. - -There may still be specific combinations of data types/size/settings that could lead to edge cases, -so as always, testing is recommended. - -For now, a high speed (fastest) and medium-fast (default) compressor has been implemented. - -* The "Fastest" compression ratio is roughly equivalent to zstd level 1. -* The "Default" compression ratio is roughly equivalent to zstd level 3 (default). -* The "Better" compression ratio is roughly equivalent to zstd level 7. -* The "Best" compression ratio is roughly equivalent to zstd level 11. - -In terms of speed, it is typically 2x as fast as the stdlib deflate/gzip in its fastest mode. -The compression ratio compared to stdlib is around level 3, but usually 3x as fast. - - -### Usage - -An Encoder can be used for either compressing a stream via the -`io.WriteCloser` interface supported by the Encoder or as multiple independent -tasks via the `EncodeAll` function. -Smaller encodes are encouraged to use the EncodeAll function. -Use `NewWriter` to create a new instance that can be used for both. - -To create a writer with default options, do like this: - -```Go -// Compress input to output. -func Compress(in io.Reader, out io.Writer) error { - enc, err := zstd.NewWriter(out) - if err != nil { - return err - } - _, err = io.Copy(enc, in) - if err != nil { - enc.Close() - return err - } - return enc.Close() -} -``` - -Now you can encode by writing data to `enc`. The output will be finished writing when `Close()` is called. -Even if your encode fails, you should still call `Close()` to release any resources that may be held up. - -The above is fine for big encodes. However, whenever possible try to *reuse* the writer. - -To reuse the encoder, you can use the `Reset(io.Writer)` function to change to another output. -This will allow the encoder to reuse all resources and avoid wasteful allocations. - -Currently stream encoding has 'light' concurrency, meaning up to 2 goroutines can be working on part -of a stream. This is independent of the `WithEncoderConcurrency(n)`, but that is likely to change -in the future. So if you want to limit concurrency for future updates, specify the concurrency -you would like. - -You can specify your desired compression level using `WithEncoderLevel()` option. Currently only pre-defined -compression settings can be specified. - -#### Future Compatibility Guarantees - -This will be an evolving project. When using this package it is important to note that both the compression efficiency and speed may change. - -The goal will be to keep the default efficiency at the default zstd (level 3). -However the encoding should never be assumed to remain the same, -and you should not use hashes of compressed output for similarity checks. - -The Encoder can be assumed to produce the same output from the exact same code version. -However, the may be modes in the future that break this, -although they will not be enabled without an explicit option. - -This encoder is not designed to (and will probably never) output the exact same bitstream as the reference encoder. - -Also note, that the cgo decompressor currently does not [report all errors on invalid input](https://github.com/DataDog/zstd/issues/59), -[omits error checks](https://github.com/DataDog/zstd/issues/61), [ignores checksums](https://github.com/DataDog/zstd/issues/43) -and seems to ignore concatenated streams, even though [it is part of the spec](https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frames). - -#### Blocks - -For compressing small blocks, the returned encoder has a function called `EncodeAll(src, dst []byte) []byte`. - -`EncodeAll` will encode all input in src and append it to dst. -This function can be called concurrently, but each call will only run on a single goroutine. - -Encoded blocks can be concatenated and the result will be the combined input stream. -Data compressed with EncodeAll can be decoded with the Decoder, using either a stream or `DecodeAll`. - -Especially when encoding blocks you should take special care to reuse the encoder. -This will effectively make it run without allocations after a warmup period. -To make it run completely without allocations, supply a destination buffer with space for all content. - -```Go -import "github.com/klauspost/compress/zstd" - -// Create a writer that caches compressors. -// For this operation type we supply a nil Reader. -var encoder, _ = zstd.NewWriter(nil) - -// Compress a buffer. -// If you have a destination buffer, the allocation in the call can also be eliminated. -func Compress(src []byte) []byte { - return encoder.EncodeAll(src, make([]byte, 0, len(src))) -} -``` - -You can control the maximum number of concurrent encodes using the `WithEncoderConcurrency(n)` -option when creating the writer. - -Using the Encoder for both a stream and individual blocks concurrently is safe. - -### Performance - -I have collected some speed examples to compare speed and compression against other compressors. - -* `file` is the input file. -* `out` is the compressor used. `zskp` is this package. `zstd` is the Datadog cgo library. `gzstd/gzkp` is gzip standard and this library. -* `level` is the compression level used. For `zskp` level 1 is "fastest", level 2 is "default"; 3 is "better", 4 is "best". -* `insize`/`outsize` is the input/output size. -* `millis` is the number of milliseconds used for compression. -* `mb/s` is megabytes (2^20 bytes) per second. - -``` -Silesia Corpus: -http://sun.aei.polsl.pl/~sdeor/corpus/silesia.zip - -This package: -file out level insize outsize millis mb/s -silesia.tar zskp 1 211947520 73101992 643 313.87 -silesia.tar zskp 2 211947520 67504318 969 208.38 -silesia.tar zskp 3 211947520 65177448 1899 106.44 -silesia.tar zskp 4 211947520 61381950 8115 24.91 - -cgo zstd: -silesia.tar zstd 1 211947520 73605392 543 371.56 -silesia.tar zstd 3 211947520 66793289 864 233.68 -silesia.tar zstd 6 211947520 62916450 1913 105.66 -silesia.tar zstd 9 211947520 60212393 5063 39.92 - -gzip, stdlib/this package: -silesia.tar gzstd 1 211947520 80007735 1654 122.21 -silesia.tar gzkp 1 211947520 80369488 1168 173.06 - -GOB stream of binary data. Highly compressible. -https://files.klauspost.com/compress/gob-stream.7z - -file out level insize outsize millis mb/s -gob-stream zskp 1 1911399616 235022249 3088 590.30 -gob-stream zskp 2 1911399616 205669791 3786 481.34 -gob-stream zskp 3 1911399616 185792019 9324 195.48 -gob-stream zskp 4 1911399616 171537212 32113 56.76 -gob-stream zstd 1 1911399616 249810424 2637 691.26 -gob-stream zstd 3 1911399616 208192146 3490 522.31 -gob-stream zstd 6 1911399616 193632038 6687 272.56 -gob-stream zstd 9 1911399616 177620386 16175 112.70 -gob-stream gzstd 1 1911399616 357382641 10251 177.82 -gob-stream gzkp 1 1911399616 362156523 5695 320.08 - -The test data for the Large Text Compression Benchmark is the first -10^9 bytes of the English Wikipedia dump on Mar. 3, 2006. -http://mattmahoney.net/dc/textdata.html - -file out level insize outsize millis mb/s -enwik9 zskp 1 1000000000 343848582 3609 264.18 -enwik9 zskp 2 1000000000 317276632 5746 165.97 -enwik9 zskp 3 1000000000 294540704 11725 81.34 -enwik9 zskp 4 1000000000 276609671 44029 21.66 -enwik9 zstd 1 1000000000 358072021 3110 306.65 -enwik9 zstd 3 1000000000 313734672 4784 199.35 -enwik9 zstd 6 1000000000 295138875 10290 92.68 -enwik9 zstd 9 1000000000 278348700 28549 33.40 -enwik9 gzstd 1 1000000000 382578136 9604 99.30 -enwik9 gzkp 1 1000000000 383825945 6544 145.73 - -Highly compressible JSON file. -https://files.klauspost.com/compress/github-june-2days-2019.json.zst - -file out level insize outsize millis mb/s -github-june-2days-2019.json zskp 1 6273951764 699045015 10620 563.40 -github-june-2days-2019.json zskp 2 6273951764 617881763 11687 511.96 -github-june-2days-2019.json zskp 3 6273951764 537511906 29252 204.54 -github-june-2days-2019.json zskp 4 6273951764 512796117 97791 61.18 -github-june-2days-2019.json zstd 1 6273951764 766284037 8450 708.00 -github-june-2days-2019.json zstd 3 6273951764 661889476 10927 547.57 -github-june-2days-2019.json zstd 6 6273951764 642756859 22996 260.18 -github-june-2days-2019.json zstd 9 6273951764 601974523 52413 114.16 -github-june-2days-2019.json gzstd 1 6273951764 1164400847 29948 199.79 -github-june-2days-2019.json gzkp 1 6273951764 1128755542 19236 311.03 - -VM Image, Linux mint with a few installed applications: -https://files.klauspost.com/compress/rawstudio-mint14.7z - -file out level insize outsize millis mb/s -rawstudio-mint14.tar zskp 1 8558382592 3667489370 20210 403.84 -rawstudio-mint14.tar zskp 2 8558382592 3364592300 31873 256.07 -rawstudio-mint14.tar zskp 3 8558382592 3224594213 71751 113.75 -rawstudio-mint14.tar zskp 4 8558382592 3027332295 486243 16.79 -rawstudio-mint14.tar zstd 1 8558382592 3609250104 17136 476.27 -rawstudio-mint14.tar zstd 3 8558382592 3341679997 29262 278.92 -rawstudio-mint14.tar zstd 6 8558382592 3235846406 77904 104.77 -rawstudio-mint14.tar zstd 9 8558382592 3160778861 140946 57.91 -rawstudio-mint14.tar gzstd 1 8558382592 3926257486 57722 141.40 -rawstudio-mint14.tar gzkp 1 8558382592 3970463184 41749 195.49 - -CSV data: -https://files.klauspost.com/compress/nyc-taxi-data-10M.csv.zst - -file out level insize outsize millis mb/s -nyc-taxi-data-10M.csv zskp 1 3325605752 641339945 8925 355.35 -nyc-taxi-data-10M.csv zskp 2 3325605752 591748091 11268 281.44 -nyc-taxi-data-10M.csv zskp 3 3325605752 538490114 19880 159.53 -nyc-taxi-data-10M.csv zskp 4 3325605752 495986829 89368 35.49 -nyc-taxi-data-10M.csv zstd 1 3325605752 687399637 8233 385.18 -nyc-taxi-data-10M.csv zstd 3 3325605752 598514411 10065 315.07 -nyc-taxi-data-10M.csv zstd 6 3325605752 570522953 20038 158.27 -nyc-taxi-data-10M.csv zstd 9 3325605752 517554797 64565 49.12 -nyc-taxi-data-10M.csv gzstd 1 3325605752 928656485 23876 132.83 -nyc-taxi-data-10M.csv gzkp 1 3325605752 924718719 16388 193.53 -``` - -## Decompressor - -Staus: STABLE - there may still be subtle bugs, but a wide variety of content has been tested. - -This library is being continuously [fuzz-tested](https://github.com/klauspost/compress-fuzz), -kindly supplied by [fuzzit.dev](https://fuzzit.dev/). -The main purpose of the fuzz testing is to ensure that it is not possible to crash the decoder, -or run it past its limits with ANY input provided. - -### Usage - -The package has been designed for two main usages, big streams of data and smaller in-memory buffers. -There are two main usages of the package for these. Both of them are accessed by creating a `Decoder`. - -For streaming use a simple setup could look like this: - -```Go -import "github.com/klauspost/compress/zstd" - -func Decompress(in io.Reader, out io.Writer) error { - d, err := zstd.NewReader(in) - if err != nil { - return err - } - defer d.Close() - - // Copy content... - _, err = io.Copy(out, d) - return err -} -``` - -It is important to use the "Close" function when you no longer need the Reader to stop running goroutines. -See "Allocation-less operation" below. - -For decoding buffers, it could look something like this: - -```Go -import "github.com/klauspost/compress/zstd" - -// Create a reader that caches decompressors. -// For this operation type we supply a nil Reader. -var decoder, _ = zstd.NewReader(nil) - -// Decompress a buffer. We don't supply a destination buffer, -// so it will be allocated by the decoder. -func Decompress(src []byte) ([]byte, error) { - return decoder.DecodeAll(src, nil) -} -``` - -Both of these cases should provide the functionality needed. -The decoder can be used for *concurrent* decompression of multiple buffers. -It will only allow a certain number of concurrent operations to run. -To tweak that yourself use the `WithDecoderConcurrency(n)` option when creating the decoder. - -### Dictionaries - -Data compressed with [dictionaries](https://github.com/facebook/zstd#the-case-for-small-data-compression) can be decompressed. - -Dictionaries are added individually to Decoders. -Dictionaries are generated by the `zstd --train` command and contains an initial state for the decoder. -To add a dictionary use the `WithDecoderDicts(dicts ...[]byte)` option with the dictionary data. -Several dictionaries can be added at once. - -The dictionary will be used automatically for the data that specifies them. -A re-used Decoder will still contain the dictionaries registered. - -When registering multiple dictionaries with the same ID, the last one will be used. - -It is possible to use dictionaries when compressing data. - -To enable a dictionary use `WithEncoderDict(dict []byte)`. Here only one dictionary will be used -and it will likely be used even if it doesn't improve compression. - -The used dictionary must be used to decompress the content. - -For any real gains, the dictionary should be built with similar data. -If an unsuitable dictionary is used the output may be slightly larger than using no dictionary. -Use the [zstd commandline tool](https://github.com/facebook/zstd/releases) to build a dictionary from sample data. -For information see [zstd dictionary information](https://github.com/facebook/zstd#the-case-for-small-data-compression). - -For now there is a fixed startup performance penalty for compressing content with dictionaries. -This will likely be improved over time. Just be aware to test performance when implementing. - -### Allocation-less operation - -The decoder has been designed to operate without allocations after a warmup. - -This means that you should *store* the decoder for best performance. -To re-use a stream decoder, use the `Reset(r io.Reader) error` to switch to another stream. -A decoder can safely be re-used even if the previous stream failed. - -To release the resources, you must call the `Close()` function on a decoder. -After this it can *no longer be reused*, but all running goroutines will be stopped. -So you *must* use this if you will no longer need the Reader. - -For decompressing smaller buffers a single decoder can be used. -When decoding buffers, you can supply a destination slice with length 0 and your expected capacity. -In this case no unneeded allocations should be made. - -### Concurrency - -The buffer decoder does everything on the same goroutine and does nothing concurrently. -It can however decode several buffers concurrently. Use `WithDecoderConcurrency(n)` to limit that. - -The stream decoder operates on - -* One goroutine reads input and splits the input to several block decoders. -* A number of decoders will decode blocks. -* A goroutine coordinates these blocks and sends history from one to the next. - -So effectively this also means the decoder will "read ahead" and prepare data to always be available for output. - -Since "blocks" are quite dependent on the output of the previous block stream decoding will only have limited concurrency. - -In practice this means that concurrency is often limited to utilizing about 2 cores effectively. - - -### Benchmarks - -These are some examples of performance compared to [datadog cgo library](https://github.com/DataDog/zstd). - -The first two are streaming decodes and the last are smaller inputs. - -``` -BenchmarkDecoderSilesia-8 3 385000067 ns/op 550.51 MB/s 5498 B/op 8 allocs/op -BenchmarkDecoderSilesiaCgo-8 6 197666567 ns/op 1072.25 MB/s 270672 B/op 8 allocs/op - -BenchmarkDecoderEnwik9-8 1 2027001600 ns/op 493.34 MB/s 10496 B/op 18 allocs/op -BenchmarkDecoderEnwik9Cgo-8 2 979499200 ns/op 1020.93 MB/s 270672 B/op 8 allocs/op - -Concurrent performance: - -BenchmarkDecoder_DecodeAllParallel/kppkn.gtb.zst-16 28915 42469 ns/op 4340.07 MB/s 114 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/geo.protodata.zst-16 116505 9965 ns/op 11900.16 MB/s 16 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/plrabn12.txt.zst-16 8952 134272 ns/op 3588.70 MB/s 915 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/lcet10.txt.zst-16 11820 102538 ns/op 4161.90 MB/s 594 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/asyoulik.txt.zst-16 34782 34184 ns/op 3661.88 MB/s 60 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/alice29.txt.zst-16 27712 43447 ns/op 3500.58 MB/s 99 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/html_x_4.zst-16 62826 18750 ns/op 21845.10 MB/s 104 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/paper-100k.pdf.zst-16 631545 1794 ns/op 57078.74 MB/s 2 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/fireworks.jpeg.zst-16 1690140 712 ns/op 172938.13 MB/s 1 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/urls.10K.zst-16 10432 113593 ns/op 6180.73 MB/s 1143 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/html.zst-16 113206 10671 ns/op 9596.27 MB/s 15 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallel/comp-data.bin.zst-16 1530615 779 ns/op 5229.49 MB/s 0 B/op 0 allocs/op - -BenchmarkDecoder_DecodeAllParallelCgo/kppkn.gtb.zst-16 65217 16192 ns/op 11383.34 MB/s 46 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/geo.protodata.zst-16 292671 4039 ns/op 29363.19 MB/s 6 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/plrabn12.txt.zst-16 26314 46021 ns/op 10470.43 MB/s 293 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/lcet10.txt.zst-16 33897 34900 ns/op 12227.96 MB/s 205 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/asyoulik.txt.zst-16 104348 11433 ns/op 10949.01 MB/s 20 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/alice29.txt.zst-16 75949 15510 ns/op 9805.60 MB/s 32 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/html_x_4.zst-16 173910 6756 ns/op 60624.29 MB/s 37 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/paper-100k.pdf.zst-16 923076 1339 ns/op 76474.87 MB/s 1 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/fireworks.jpeg.zst-16 922920 1351 ns/op 91102.57 MB/s 2 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/urls.10K.zst-16 27649 43618 ns/op 16096.19 MB/s 407 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/html.zst-16 279073 4160 ns/op 24614.18 MB/s 6 B/op 0 allocs/op -BenchmarkDecoder_DecodeAllParallelCgo/comp-data.bin.zst-16 749938 1579 ns/op 2581.71 MB/s 0 B/op 0 allocs/op -``` - -This reflects the performance around May 2020, but this may be out of date. - -# Contributions - -Contributions are always welcome. -For new features/fixes, remember to add tests and for performance enhancements include benchmarks. - -For sending files for reproducing errors use a service like [goobox](https://goobox.io/#/upload) or similar to share your files. - -For general feedback and experience reports, feel free to open an issue or write me on [Twitter](https://twitter.com/sh0dan). - -This package includes the excellent [`github.com/cespare/xxhash`](https://github.com/cespare/xxhash) package Copyright (c) 2016 Caleb Spare. diff --git a/backend/vendor/github.com/klauspost/compress/zstd/bitreader.go b/backend/vendor/github.com/klauspost/compress/zstd/bitreader.go deleted file mode 100644 index 85445853..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/bitreader.go +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "encoding/binary" - "errors" - "io" - "math/bits" -) - -// bitReader reads a bitstream in reverse. -// The last set bit indicates the start of the stream and is used -// for aligning the input. -type bitReader struct { - in []byte - off uint // next byte to read is at in[off - 1] - value uint64 // Maybe use [16]byte, but shifting is awkward. - bitsRead uint8 -} - -// init initializes and resets the bit reader. -func (b *bitReader) init(in []byte) error { - if len(in) < 1 { - return errors.New("corrupt stream: too short") - } - b.in = in - b.off = uint(len(in)) - // The highest bit of the last byte indicates where to start - v := in[len(in)-1] - if v == 0 { - return errors.New("corrupt stream, did not find end of stream") - } - b.bitsRead = 64 - b.value = 0 - if len(in) >= 8 { - b.fillFastStart() - } else { - b.fill() - b.fill() - } - b.bitsRead += 8 - uint8(highBits(uint32(v))) - return nil -} - -// getBits will return n bits. n can be 0. -func (b *bitReader) getBits(n uint8) int { - if n == 0 /*|| b.bitsRead >= 64 */ { - return 0 - } - return b.getBitsFast(n) -} - -// getBitsFast requires that at least one bit is requested every time. -// There are no checks if the buffer is filled. -func (b *bitReader) getBitsFast(n uint8) int { - const regMask = 64 - 1 - v := uint32((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) - b.bitsRead += n - return int(v) -} - -// fillFast() will make sure at least 32 bits are available. -// There must be at least 4 bytes available. -func (b *bitReader) fillFast() { - if b.bitsRead < 32 { - return - } - // 2 bounds checks. - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) - b.bitsRead -= 32 - b.off -= 4 -} - -// fillFastStart() assumes the bitreader is empty and there is at least 8 bytes to read. -func (b *bitReader) fillFastStart() { - // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) - b.bitsRead = 0 - b.off -= 8 -} - -// fill() will make sure at least 32 bits are available. -func (b *bitReader) fill() { - if b.bitsRead < 32 { - return - } - if b.off >= 4 { - v := b.in[b.off-4:] - v = v[:4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) - b.bitsRead -= 32 - b.off -= 4 - return - } - for b.off > 0 { - b.value = (b.value << 8) | uint64(b.in[b.off-1]) - b.bitsRead -= 8 - b.off-- - } -} - -// finished returns true if all bits have been read from the bit stream. -func (b *bitReader) finished() bool { - return b.off == 0 && b.bitsRead >= 64 -} - -// overread returns true if more bits have been requested than is on the stream. -func (b *bitReader) overread() bool { - return b.bitsRead > 64 -} - -// remain returns the number of bits remaining. -func (b *bitReader) remain() uint { - return b.off*8 + 64 - uint(b.bitsRead) -} - -// close the bitstream and returns an error if out-of-buffer reads occurred. -func (b *bitReader) close() error { - // Release reference. - b.in = nil - if b.bitsRead > 64 { - return io.ErrUnexpectedEOF - } - return nil -} - -func highBits(val uint32) (n uint32) { - return uint32(bits.Len32(val) - 1) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/bitwriter.go b/backend/vendor/github.com/klauspost/compress/zstd/bitwriter.go deleted file mode 100644 index 303ae90f..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/bitwriter.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2018 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. - -package zstd - -import "fmt" - -// bitWriter will write bits. -// First bit will be LSB of the first byte of output. -type bitWriter struct { - bitContainer uint64 - nBits uint8 - out []byte -} - -// bitMask16 is bitmasks. Has extra to avoid bounds check. -var bitMask16 = [32]uint16{ - 0, 1, 3, 7, 0xF, 0x1F, - 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, - 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF} /* up to 16 bits */ - -var bitMask32 = [32]uint32{ - 0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, - 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, - 0x1ffff, 0x3ffff, 0x7FFFF, 0xfFFFF, 0x1fFFFF, 0x3fFFFF, 0x7fFFFF, 0xffFFFF, - 0x1ffFFFF, 0x3ffFFFF, 0x7ffFFFF, 0xfffFFFF, 0x1fffFFFF, 0x3fffFFFF, 0x7fffFFFF, -} // up to 32 bits - -// addBits16NC will add up to 16 bits. -// It will not check if there is space for them, -// so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits16NC(value uint16, bits uint8) { - b.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63) - b.nBits += bits -} - -// addBits32NC will add up to 32 bits. -// It will not check if there is space for them, -// so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits32NC(value uint32, bits uint8) { - b.bitContainer |= uint64(value&bitMask32[bits&31]) << (b.nBits & 63) - b.nBits += bits -} - -// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated. -// It will not check if there is space for them, so the caller must ensure that it has flushed recently. -func (b *bitWriter) addBits16Clean(value uint16, bits uint8) { - b.bitContainer |= uint64(value) << (b.nBits & 63) - b.nBits += bits -} - -// flush will flush all pending full bytes. -// There will be at least 56 bits available for writing when this has been called. -// Using flush32 is faster, but leaves less space for writing. -func (b *bitWriter) flush() { - v := b.nBits >> 3 - switch v { - case 0: - case 1: - b.out = append(b.out, - byte(b.bitContainer), - ) - case 2: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - ) - case 3: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - ) - case 4: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - ) - case 5: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - ) - case 6: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - ) - case 7: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - byte(b.bitContainer>>48), - ) - case 8: - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24), - byte(b.bitContainer>>32), - byte(b.bitContainer>>40), - byte(b.bitContainer>>48), - byte(b.bitContainer>>56), - ) - default: - panic(fmt.Errorf("bits (%d) > 64", b.nBits)) - } - b.bitContainer >>= v << 3 - b.nBits &= 7 -} - -// flush32 will flush out, so there are at least 32 bits available for writing. -func (b *bitWriter) flush32() { - if b.nBits < 32 { - return - } - b.out = append(b.out, - byte(b.bitContainer), - byte(b.bitContainer>>8), - byte(b.bitContainer>>16), - byte(b.bitContainer>>24)) - b.nBits -= 32 - b.bitContainer >>= 32 -} - -// flushAlign will flush remaining full bytes and align to next byte boundary. -func (b *bitWriter) flushAlign() { - nbBytes := (b.nBits + 7) >> 3 - for i := uint8(0); i < nbBytes; i++ { - b.out = append(b.out, byte(b.bitContainer>>(i*8))) - } - b.nBits = 0 - b.bitContainer = 0 -} - -// close will write the alignment bit and write the final byte(s) -// to the output. -func (b *bitWriter) close() error { - // End mark - b.addBits16Clean(1, 1) - // flush until next byte. - b.flushAlign() - return nil -} - -// reset and continue writing by appending to out. -func (b *bitWriter) reset(out []byte) { - b.bitContainer = 0 - b.nBits = 0 - b.out = out -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/blockdec.go b/backend/vendor/github.com/klauspost/compress/zstd/blockdec.go deleted file mode 100644 index b51d922b..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/blockdec.go +++ /dev/null @@ -1,739 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "errors" - "fmt" - "io" - "sync" - - "github.com/klauspost/compress/huff0" - "github.com/klauspost/compress/zstd/internal/xxhash" -) - -type blockType uint8 - -//go:generate stringer -type=blockType,literalsBlockType,seqCompMode,tableIndex - -const ( - blockTypeRaw blockType = iota - blockTypeRLE - blockTypeCompressed - blockTypeReserved -) - -type literalsBlockType uint8 - -const ( - literalsBlockRaw literalsBlockType = iota - literalsBlockRLE - literalsBlockCompressed - literalsBlockTreeless -) - -const ( - // maxCompressedBlockSize is the biggest allowed compressed block size (128KB) - maxCompressedBlockSize = 128 << 10 - - // Maximum possible block size (all Raw+Uncompressed). - maxBlockSize = (1 << 21) - 1 - - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#literals_section_header - maxCompressedLiteralSize = 1 << 18 - maxRLELiteralSize = 1 << 20 - maxMatchLen = 131074 - maxSequences = 0x7f00 + 0xffff - - // We support slightly less than the reference decoder to be able to - // use ints on 32 bit archs. - maxOffsetBits = 30 -) - -var ( - huffDecoderPool = sync.Pool{New: func() interface{} { - return &huff0.Scratch{} - }} - - fseDecoderPool = sync.Pool{New: func() interface{} { - return &fseDecoder{} - }} -) - -type blockDec struct { - // Raw source data of the block. - data []byte - dataStorage []byte - - // Destination of the decoded data. - dst []byte - - // Buffer for literals data. - literalBuf []byte - - // Window size of the block. - WindowSize uint64 - - history chan *history - input chan struct{} - result chan decodeOutput - sequenceBuf []seq - err error - decWG sync.WaitGroup - - // Frame to use for singlethreaded decoding. - // Should not be used by the decoder itself since parent may be another frame. - localFrame *frameDec - - // Block is RLE, this is the size. - RLESize uint32 - tmp [4]byte - - Type blockType - - // Is this the last block of a frame? - Last bool - - // Use less memory - lowMem bool -} - -func (b *blockDec) String() string { - if b == nil { - return "" - } - return fmt.Sprintf("Steam Size: %d, Type: %v, Last: %t, Window: %d", len(b.data), b.Type, b.Last, b.WindowSize) -} - -func newBlockDec(lowMem bool) *blockDec { - b := blockDec{ - lowMem: lowMem, - result: make(chan decodeOutput, 1), - input: make(chan struct{}, 1), - history: make(chan *history, 1), - } - b.decWG.Add(1) - go b.startDecoder() - return &b -} - -// reset will reset the block. -// Input must be a start of a block and will be at the end of the block when returned. -func (b *blockDec) reset(br byteBuffer, windowSize uint64) error { - b.WindowSize = windowSize - tmp := br.readSmall(3) - if tmp == nil { - if debug { - println("Reading block header:", io.ErrUnexpectedEOF) - } - return io.ErrUnexpectedEOF - } - bh := uint32(tmp[0]) | (uint32(tmp[1]) << 8) | (uint32(tmp[2]) << 16) - b.Last = bh&1 != 0 - b.Type = blockType((bh >> 1) & 3) - // find size. - cSize := int(bh >> 3) - maxSize := maxBlockSize - switch b.Type { - case blockTypeReserved: - return ErrReservedBlockType - case blockTypeRLE: - b.RLESize = uint32(cSize) - if b.lowMem { - maxSize = cSize - } - cSize = 1 - case blockTypeCompressed: - if debug { - println("Data size on stream:", cSize) - } - b.RLESize = 0 - maxSize = maxCompressedBlockSize - if windowSize < maxCompressedBlockSize && b.lowMem { - maxSize = int(windowSize) - } - if cSize > maxCompressedBlockSize || uint64(cSize) > b.WindowSize { - if debug { - printf("compressed block too big: csize:%d block: %+v\n", uint64(cSize), b) - } - return ErrCompressedSizeTooBig - } - case blockTypeRaw: - b.RLESize = 0 - // We do not need a destination for raw blocks. - maxSize = -1 - default: - panic("Invalid block type") - } - - // Read block data. - if cap(b.dataStorage) < cSize { - if b.lowMem { - b.dataStorage = make([]byte, 0, cSize) - } else { - b.dataStorage = make([]byte, 0, maxBlockSize) - } - } - if cap(b.dst) <= maxSize { - b.dst = make([]byte, 0, maxSize+1) - } - var err error - b.data, err = br.readBig(cSize, b.dataStorage) - if err != nil { - if debug { - println("Reading block:", err, "(", cSize, ")", len(b.data)) - printf("%T", br) - } - return err - } - return nil -} - -// sendEOF will make the decoder send EOF on this frame. -func (b *blockDec) sendErr(err error) { - b.Last = true - b.Type = blockTypeReserved - b.err = err - b.input <- struct{}{} -} - -// Close will release resources. -// Closed blockDec cannot be reset. -func (b *blockDec) Close() { - close(b.input) - close(b.history) - close(b.result) - b.decWG.Wait() -} - -// decodeAsync will prepare decoding the block when it receives input. -// This will separate output and history. -func (b *blockDec) startDecoder() { - defer b.decWG.Done() - for range b.input { - //println("blockDec: Got block input") - switch b.Type { - case blockTypeRLE: - if cap(b.dst) < int(b.RLESize) { - if b.lowMem { - b.dst = make([]byte, b.RLESize) - } else { - b.dst = make([]byte, maxBlockSize) - } - } - o := decodeOutput{ - d: b, - b: b.dst[:b.RLESize], - err: nil, - } - v := b.data[0] - for i := range o.b { - o.b[i] = v - } - hist := <-b.history - hist.append(o.b) - b.result <- o - case blockTypeRaw: - o := decodeOutput{ - d: b, - b: b.data, - err: nil, - } - hist := <-b.history - hist.append(o.b) - b.result <- o - case blockTypeCompressed: - b.dst = b.dst[:0] - err := b.decodeCompressed(nil) - o := decodeOutput{ - d: b, - b: b.dst, - err: err, - } - if debug { - println("Decompressed to", len(b.dst), "bytes, error:", err) - } - b.result <- o - case blockTypeReserved: - // Used for returning errors. - <-b.history - b.result <- decodeOutput{ - d: b, - b: nil, - err: b.err, - } - default: - panic("Invalid block type") - } - if debug { - println("blockDec: Finished block") - } - } -} - -// decodeAsync will prepare decoding the block when it receives the history. -// If history is provided, it will not fetch it from the channel. -func (b *blockDec) decodeBuf(hist *history) error { - switch b.Type { - case blockTypeRLE: - if cap(b.dst) < int(b.RLESize) { - if b.lowMem { - b.dst = make([]byte, b.RLESize) - } else { - b.dst = make([]byte, maxBlockSize) - } - } - b.dst = b.dst[:b.RLESize] - v := b.data[0] - for i := range b.dst { - b.dst[i] = v - } - hist.appendKeep(b.dst) - return nil - case blockTypeRaw: - hist.appendKeep(b.data) - return nil - case blockTypeCompressed: - saved := b.dst - b.dst = hist.b - hist.b = nil - err := b.decodeCompressed(hist) - if debug { - println("Decompressed to total", len(b.dst), "bytes, hash:", xxhash.Sum64(b.dst), "error:", err) - } - hist.b = b.dst - b.dst = saved - return err - case blockTypeReserved: - // Used for returning errors. - return b.err - default: - panic("Invalid block type") - } -} - -// decodeCompressed will start decompressing a block. -// If no history is supplied the decoder will decodeAsync as much as possible -// before fetching from blockDec.history -func (b *blockDec) decodeCompressed(hist *history) error { - in := b.data - delayedHistory := hist == nil - - if delayedHistory { - // We must always grab history. - defer func() { - if hist == nil { - <-b.history - } - }() - } - // There must be at least one byte for Literals_Block_Type and one for Sequences_Section_Header - if len(in) < 2 { - return ErrBlockTooSmall - } - litType := literalsBlockType(in[0] & 3) - var litRegenSize int - var litCompSize int - sizeFormat := (in[0] >> 2) & 3 - var fourStreams bool - switch litType { - case literalsBlockRaw, literalsBlockRLE: - switch sizeFormat { - case 0, 2: - // Regenerated_Size uses 5 bits (0-31). Literals_Section_Header uses 1 byte. - litRegenSize = int(in[0] >> 3) - in = in[1:] - case 1: - // Regenerated_Size uses 12 bits (0-4095). Literals_Section_Header uses 2 bytes. - litRegenSize = int(in[0]>>4) + (int(in[1]) << 4) - in = in[2:] - case 3: - // Regenerated_Size uses 20 bits (0-1048575). Literals_Section_Header uses 3 bytes. - if len(in) < 3 { - println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) - return ErrBlockTooSmall - } - litRegenSize = int(in[0]>>4) + (int(in[1]) << 4) + (int(in[2]) << 12) - in = in[3:] - } - case literalsBlockCompressed, literalsBlockTreeless: - switch sizeFormat { - case 0, 1: - // Both Regenerated_Size and Compressed_Size use 10 bits (0-1023). - if len(in) < 3 { - println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) - return ErrBlockTooSmall - } - n := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) - litRegenSize = int(n & 1023) - litCompSize = int(n >> 10) - fourStreams = sizeFormat == 1 - in = in[3:] - case 2: - fourStreams = true - if len(in) < 4 { - println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) - return ErrBlockTooSmall - } - n := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + (uint64(in[3]) << 20) - litRegenSize = int(n & 16383) - litCompSize = int(n >> 14) - in = in[4:] - case 3: - fourStreams = true - if len(in) < 5 { - println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) - return ErrBlockTooSmall - } - n := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + (uint64(in[3]) << 20) + (uint64(in[4]) << 28) - litRegenSize = int(n & 262143) - litCompSize = int(n >> 18) - in = in[5:] - } - } - if debug { - println("literals type:", litType, "litRegenSize:", litRegenSize, "litCompSize:", litCompSize, "sizeFormat:", sizeFormat, "4X:", fourStreams) - } - var literals []byte - var huff *huff0.Scratch - switch litType { - case literalsBlockRaw: - if len(in) < litRegenSize { - println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", litRegenSize) - return ErrBlockTooSmall - } - literals = in[:litRegenSize] - in = in[litRegenSize:] - //printf("Found %d uncompressed literals\n", litRegenSize) - case literalsBlockRLE: - if len(in) < 1 { - println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", 1) - return ErrBlockTooSmall - } - if cap(b.literalBuf) < litRegenSize { - if b.lowMem { - b.literalBuf = make([]byte, litRegenSize) - } else { - if litRegenSize > maxCompressedLiteralSize { - // Exceptional - b.literalBuf = make([]byte, litRegenSize) - } else { - b.literalBuf = make([]byte, litRegenSize, maxCompressedLiteralSize) - - } - } - } - literals = b.literalBuf[:litRegenSize] - v := in[0] - for i := range literals { - literals[i] = v - } - in = in[1:] - if debug { - printf("Found %d RLE compressed literals\n", litRegenSize) - } - case literalsBlockTreeless: - if len(in) < litCompSize { - println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", litCompSize) - return ErrBlockTooSmall - } - // Store compressed literals, so we defer decoding until we get history. - literals = in[:litCompSize] - in = in[litCompSize:] - if debug { - printf("Found %d compressed literals\n", litCompSize) - } - case literalsBlockCompressed: - if len(in) < litCompSize { - println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", litCompSize) - return ErrBlockTooSmall - } - literals = in[:litCompSize] - in = in[litCompSize:] - huff = huffDecoderPool.Get().(*huff0.Scratch) - var err error - // Ensure we have space to store it. - if cap(b.literalBuf) < litRegenSize { - if b.lowMem { - b.literalBuf = make([]byte, 0, litRegenSize) - } else { - b.literalBuf = make([]byte, 0, maxCompressedLiteralSize) - } - } - if huff == nil { - huff = &huff0.Scratch{} - } - huff, literals, err = huff0.ReadTable(literals, huff) - if err != nil { - println("reading huffman table:", err) - return err - } - // Use our out buffer. - if fourStreams { - literals, err = huff.Decoder().Decompress4X(b.literalBuf[:0:litRegenSize], literals) - } else { - literals, err = huff.Decoder().Decompress1X(b.literalBuf[:0:litRegenSize], literals) - } - if err != nil { - println("decoding compressed literals:", err) - return err - } - // Make sure we don't leak our literals buffer - if len(literals) != litRegenSize { - return fmt.Errorf("literal output size mismatch want %d, got %d", litRegenSize, len(literals)) - } - if debug { - printf("Decompressed %d literals into %d bytes\n", litCompSize, litRegenSize) - } - } - - // Decode Sequences - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#sequences-section - if len(in) < 1 { - return ErrBlockTooSmall - } - seqHeader := in[0] - nSeqs := 0 - switch { - case seqHeader == 0: - in = in[1:] - case seqHeader < 128: - nSeqs = int(seqHeader) - in = in[1:] - case seqHeader < 255: - if len(in) < 2 { - return ErrBlockTooSmall - } - nSeqs = int(seqHeader-128)<<8 | int(in[1]) - in = in[2:] - case seqHeader == 255: - if len(in) < 3 { - return ErrBlockTooSmall - } - nSeqs = 0x7f00 + int(in[1]) + (int(in[2]) << 8) - in = in[3:] - } - // Allocate sequences - if cap(b.sequenceBuf) < nSeqs { - if b.lowMem { - b.sequenceBuf = make([]seq, nSeqs) - } else { - // Allocate max - b.sequenceBuf = make([]seq, nSeqs, maxSequences) - } - } else { - // Reuse buffer - b.sequenceBuf = b.sequenceBuf[:nSeqs] - } - var seqs = &sequenceDecs{} - if nSeqs > 0 { - if len(in) < 1 { - return ErrBlockTooSmall - } - br := byteReader{b: in, off: 0} - compMode := br.Uint8() - br.advance(1) - if debug { - printf("Compression modes: 0b%b", compMode) - } - for i := uint(0); i < 3; i++ { - mode := seqCompMode((compMode >> (6 - i*2)) & 3) - if debug { - println("Table", tableIndex(i), "is", mode) - } - var seq *sequenceDec - switch tableIndex(i) { - case tableLiteralLengths: - seq = &seqs.litLengths - case tableOffsets: - seq = &seqs.offsets - case tableMatchLengths: - seq = &seqs.matchLengths - default: - panic("unknown table") - } - switch mode { - case compModePredefined: - seq.fse = &fsePredef[i] - case compModeRLE: - if br.remain() < 1 { - return ErrBlockTooSmall - } - v := br.Uint8() - br.advance(1) - dec := fseDecoderPool.Get().(*fseDecoder) - symb, err := decSymbolValue(v, symbolTableX[i]) - if err != nil { - printf("RLE Transform table (%v) error: %v", tableIndex(i), err) - return err - } - dec.setRLE(symb) - seq.fse = dec - if debug { - printf("RLE set to %+v, code: %v", symb, v) - } - case compModeFSE: - println("Reading table for", tableIndex(i)) - dec := fseDecoderPool.Get().(*fseDecoder) - err := dec.readNCount(&br, uint16(maxTableSymbol[i])) - if err != nil { - println("Read table error:", err) - return err - } - err = dec.transform(symbolTableX[i]) - if err != nil { - println("Transform table error:", err) - return err - } - if debug { - println("Read table ok", "symbolLen:", dec.symbolLen) - } - seq.fse = dec - case compModeRepeat: - seq.repeat = true - } - if br.overread() { - return io.ErrUnexpectedEOF - } - } - in = br.unread() - } - - // Wait for history. - // All time spent after this is critical since it is strictly sequential. - if hist == nil { - hist = <-b.history - if hist.error { - return ErrDecoderClosed - } - } - - // Decode treeless literal block. - if litType == literalsBlockTreeless { - // TODO: We could send the history early WITHOUT the stream history. - // This would allow decoding treeless literals before the byte history is available. - // Silencia stats: Treeless 4393, with: 32775, total: 37168, 11% treeless. - // So not much obvious gain here. - - if hist.huffTree == nil { - return errors.New("literal block was treeless, but no history was defined") - } - // Ensure we have space to store it. - if cap(b.literalBuf) < litRegenSize { - if b.lowMem { - b.literalBuf = make([]byte, 0, litRegenSize) - } else { - b.literalBuf = make([]byte, 0, maxCompressedLiteralSize) - } - } - var err error - // Use our out buffer. - huff = hist.huffTree - if fourStreams { - literals, err = huff.Decoder().Decompress4X(b.literalBuf[:0:litRegenSize], literals) - } else { - literals, err = huff.Decoder().Decompress1X(b.literalBuf[:0:litRegenSize], literals) - } - // Make sure we don't leak our literals buffer - if err != nil { - println("decompressing literals:", err) - return err - } - if len(literals) != litRegenSize { - return fmt.Errorf("literal output size mismatch want %d, got %d", litRegenSize, len(literals)) - } - } else { - if hist.huffTree != nil && huff != nil { - if hist.dict == nil || hist.dict.litEnc != hist.huffTree { - huffDecoderPool.Put(hist.huffTree) - } - hist.huffTree = nil - } - } - if huff != nil { - hist.huffTree = huff - } - if debug { - println("Final literals:", len(literals), "hash:", xxhash.Sum64(literals), "and", nSeqs, "sequences.") - } - - if nSeqs == 0 { - // Decompressed content is defined entirely as Literals Section content. - b.dst = append(b.dst, literals...) - if delayedHistory { - hist.append(literals) - } - return nil - } - - seqs, err := seqs.mergeHistory(&hist.decoders) - if err != nil { - return err - } - if debug { - println("History merged ok") - } - br := &bitReader{} - if err := br.init(in); err != nil { - return err - } - - // TODO: Investigate if sending history without decoders are faster. - // This would allow the sequences to be decoded async and only have to construct stream history. - // If only recent offsets were not transferred, this would be an obvious win. - // Also, if first 3 sequences don't reference recent offsets, all sequences can be decoded. - - hbytes := hist.b - if len(hbytes) > hist.windowSize { - hbytes = hbytes[len(hbytes)-hist.windowSize:] - // We do not need history any more. - if hist.dict != nil { - hist.dict.content = nil - } - } - - if err := seqs.initialize(br, hist, literals, b.dst); err != nil { - println("initializing sequences:", err) - return err - } - - err = seqs.decode(nSeqs, br, hbytes) - if err != nil { - return err - } - if !br.finished() { - return fmt.Errorf("%d extra bits on block, should be 0", br.remain()) - } - - err = br.close() - if err != nil { - printf("Closing sequences: %v, %+v\n", err, *br) - } - if len(b.data) > maxCompressedBlockSize { - return fmt.Errorf("compressed block size too large (%d)", len(b.data)) - } - // Set output and release references. - b.dst = seqs.out - seqs.out, seqs.literals, seqs.hist = nil, nil, nil - - if !delayedHistory { - // If we don't have delayed history, no need to update. - hist.recentOffsets = seqs.prevOffset - return nil - } - if b.Last { - // if last block we don't care about history. - println("Last block, no history returned") - hist.b = hist.b[:0] - return nil - } - hist.append(b.dst) - hist.recentOffsets = seqs.prevOffset - if debug { - println("Finished block with literals:", len(literals), "and", nSeqs, "sequences.") - } - - return nil -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/blockenc.go b/backend/vendor/github.com/klauspost/compress/zstd/blockenc.go deleted file mode 100644 index c85c4025..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/blockenc.go +++ /dev/null @@ -1,855 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "errors" - "fmt" - "math" - "math/bits" - - "github.com/klauspost/compress/huff0" -) - -type blockEnc struct { - size int - literals []byte - sequences []seq - coders seqCoders - litEnc *huff0.Scratch - dictLitEnc *huff0.Scratch - wr bitWriter - - extraLits int - last bool - - output []byte - recentOffsets [3]uint32 - prevRecentOffsets [3]uint32 -} - -// init should be used once the block has been created. -// If called more than once, the effect is the same as calling reset. -func (b *blockEnc) init() { - if cap(b.literals) < maxCompressedLiteralSize { - b.literals = make([]byte, 0, maxCompressedLiteralSize) - } - const defSeqs = 200 - b.literals = b.literals[:0] - if cap(b.sequences) < defSeqs { - b.sequences = make([]seq, 0, defSeqs) - } - if cap(b.output) < maxCompressedBlockSize { - b.output = make([]byte, 0, maxCompressedBlockSize) - } - if b.coders.mlEnc == nil { - b.coders.mlEnc = &fseEncoder{} - b.coders.mlPrev = &fseEncoder{} - b.coders.ofEnc = &fseEncoder{} - b.coders.ofPrev = &fseEncoder{} - b.coders.llEnc = &fseEncoder{} - b.coders.llPrev = &fseEncoder{} - } - b.litEnc = &huff0.Scratch{WantLogLess: 4} - b.reset(nil) -} - -// initNewEncode can be used to reset offsets and encoders to the initial state. -func (b *blockEnc) initNewEncode() { - b.recentOffsets = [3]uint32{1, 4, 8} - b.litEnc.Reuse = huff0.ReusePolicyNone - b.coders.setPrev(nil, nil, nil) -} - -// reset will reset the block for a new encode, but in the same stream, -// meaning that state will be carried over, but the block content is reset. -// If a previous block is provided, the recent offsets are carried over. -func (b *blockEnc) reset(prev *blockEnc) { - b.extraLits = 0 - b.literals = b.literals[:0] - b.size = 0 - b.sequences = b.sequences[:0] - b.output = b.output[:0] - b.last = false - if prev != nil { - b.recentOffsets = prev.prevRecentOffsets - } - b.dictLitEnc = nil -} - -// reset will reset the block for a new encode, but in the same stream, -// meaning that state will be carried over, but the block content is reset. -// If a previous block is provided, the recent offsets are carried over. -func (b *blockEnc) swapEncoders(prev *blockEnc) { - b.coders.swap(&prev.coders) - b.litEnc, prev.litEnc = prev.litEnc, b.litEnc -} - -// blockHeader contains the information for a block header. -type blockHeader uint32 - -// setLast sets the 'last' indicator on a block. -func (h *blockHeader) setLast(b bool) { - if b { - *h = *h | 1 - } else { - const mask = (1 << 24) - 2 - *h = *h & mask - } -} - -// setSize will store the compressed size of a block. -func (h *blockHeader) setSize(v uint32) { - const mask = 7 - *h = (*h)&mask | blockHeader(v<<3) -} - -// setType sets the block type. -func (h *blockHeader) setType(t blockType) { - const mask = 1 | (((1 << 24) - 1) ^ 7) - *h = (*h & mask) | blockHeader(t<<1) -} - -// appendTo will append the block header to a slice. -func (h blockHeader) appendTo(b []byte) []byte { - return append(b, uint8(h), uint8(h>>8), uint8(h>>16)) -} - -// String returns a string representation of the block. -func (h blockHeader) String() string { - return fmt.Sprintf("Type: %d, Size: %d, Last:%t", (h>>1)&3, h>>3, h&1 == 1) -} - -// literalsHeader contains literals header information. -type literalsHeader uint64 - -// setType can be used to set the type of literal block. -func (h *literalsHeader) setType(t literalsBlockType) { - const mask = math.MaxUint64 - 3 - *h = (*h & mask) | literalsHeader(t) -} - -// setSize can be used to set a single size, for uncompressed and RLE content. -func (h *literalsHeader) setSize(regenLen int) { - inBits := bits.Len32(uint32(regenLen)) - // Only retain 2 bits - const mask = 3 - lh := uint64(*h & mask) - switch { - case inBits < 5: - lh |= (uint64(regenLen) << 3) | (1 << 60) - if debug { - got := int(lh>>3) & 0xff - if got != regenLen { - panic(fmt.Sprint("litRegenSize = ", regenLen, "(want) != ", got, "(got)")) - } - } - case inBits < 12: - lh |= (1 << 2) | (uint64(regenLen) << 4) | (2 << 60) - case inBits < 20: - lh |= (3 << 2) | (uint64(regenLen) << 4) | (3 << 60) - default: - panic(fmt.Errorf("internal error: block too big (%d)", regenLen)) - } - *h = literalsHeader(lh) -} - -// setSizes will set the size of a compressed literals section and the input length. -func (h *literalsHeader) setSizes(compLen, inLen int, single bool) { - compBits, inBits := bits.Len32(uint32(compLen)), bits.Len32(uint32(inLen)) - // Only retain 2 bits - const mask = 3 - lh := uint64(*h & mask) - switch { - case compBits <= 10 && inBits <= 10: - if !single { - lh |= 1 << 2 - } - lh |= (uint64(inLen) << 4) | (uint64(compLen) << (10 + 4)) | (3 << 60) - if debug { - const mmask = (1 << 24) - 1 - n := (lh >> 4) & mmask - if int(n&1023) != inLen { - panic(fmt.Sprint("regensize:", int(n&1023), "!=", inLen, inBits)) - } - if int(n>>10) != compLen { - panic(fmt.Sprint("compsize:", int(n>>10), "!=", compLen, compBits)) - } - } - case compBits <= 14 && inBits <= 14: - lh |= (2 << 2) | (uint64(inLen) << 4) | (uint64(compLen) << (14 + 4)) | (4 << 60) - if single { - panic("single stream used with more than 10 bits length.") - } - case compBits <= 18 && inBits <= 18: - lh |= (3 << 2) | (uint64(inLen) << 4) | (uint64(compLen) << (18 + 4)) | (5 << 60) - if single { - panic("single stream used with more than 10 bits length.") - } - default: - panic("internal error: block too big") - } - *h = literalsHeader(lh) -} - -// appendTo will append the literals header to a byte slice. -func (h literalsHeader) appendTo(b []byte) []byte { - size := uint8(h >> 60) - switch size { - case 1: - b = append(b, uint8(h)) - case 2: - b = append(b, uint8(h), uint8(h>>8)) - case 3: - b = append(b, uint8(h), uint8(h>>8), uint8(h>>16)) - case 4: - b = append(b, uint8(h), uint8(h>>8), uint8(h>>16), uint8(h>>24)) - case 5: - b = append(b, uint8(h), uint8(h>>8), uint8(h>>16), uint8(h>>24), uint8(h>>32)) - default: - panic(fmt.Errorf("internal error: literalsHeader has invalid size (%d)", size)) - } - return b -} - -// size returns the output size with currently set values. -func (h literalsHeader) size() int { - return int(h >> 60) -} - -func (h literalsHeader) String() string { - return fmt.Sprintf("Type: %d, SizeFormat: %d, Size: 0x%d, Bytes:%d", literalsBlockType(h&3), (h>>2)&3, h&((1<<60)-1)>>4, h>>60) -} - -// pushOffsets will push the recent offsets to the backup store. -func (b *blockEnc) pushOffsets() { - b.prevRecentOffsets = b.recentOffsets -} - -// pushOffsets will push the recent offsets to the backup store. -func (b *blockEnc) popOffsets() { - b.recentOffsets = b.prevRecentOffsets -} - -// matchOffset will adjust recent offsets and return the adjusted one, -// if it matches a previous offset. -func (b *blockEnc) matchOffset(offset, lits uint32) uint32 { - // Check if offset is one of the recent offsets. - // Adjusts the output offset accordingly. - // Gives a tiny bit of compression, typically around 1%. - if true { - if lits > 0 { - switch offset { - case b.recentOffsets[0]: - offset = 1 - case b.recentOffsets[1]: - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset = 2 - case b.recentOffsets[2]: - b.recentOffsets[2] = b.recentOffsets[1] - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset = 3 - default: - b.recentOffsets[2] = b.recentOffsets[1] - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset += 3 - } - } else { - switch offset { - case b.recentOffsets[1]: - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset = 1 - case b.recentOffsets[2]: - b.recentOffsets[2] = b.recentOffsets[1] - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset = 2 - case b.recentOffsets[0] - 1: - b.recentOffsets[2] = b.recentOffsets[1] - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset = 3 - default: - b.recentOffsets[2] = b.recentOffsets[1] - b.recentOffsets[1] = b.recentOffsets[0] - b.recentOffsets[0] = offset - offset += 3 - } - } - } else { - offset += 3 - } - return offset -} - -// encodeRaw can be used to set the output to a raw representation of supplied bytes. -func (b *blockEnc) encodeRaw(a []byte) { - var bh blockHeader - bh.setLast(b.last) - bh.setSize(uint32(len(a))) - bh.setType(blockTypeRaw) - b.output = bh.appendTo(b.output[:0]) - b.output = append(b.output, a...) - if debug { - println("Adding RAW block, length", len(a), "last:", b.last) - } -} - -// encodeRaw can be used to set the output to a raw representation of supplied bytes. -func (b *blockEnc) encodeRawTo(dst, src []byte) []byte { - var bh blockHeader - bh.setLast(b.last) - bh.setSize(uint32(len(src))) - bh.setType(blockTypeRaw) - dst = bh.appendTo(dst) - dst = append(dst, src...) - if debug { - println("Adding RAW block, length", len(src), "last:", b.last) - } - return dst -} - -// encodeLits can be used if the block is only litLen. -func (b *blockEnc) encodeLits(lits []byte, raw bool) error { - var bh blockHeader - bh.setLast(b.last) - bh.setSize(uint32(len(lits))) - - // Don't compress extremely small blocks - if len(lits) < 8 || (len(lits) < 32 && b.dictLitEnc == nil) || raw { - if debug { - println("Adding RAW block, length", len(lits), "last:", b.last) - } - bh.setType(blockTypeRaw) - b.output = bh.appendTo(b.output) - b.output = append(b.output, lits...) - return nil - } - - var ( - out []byte - reUsed, single bool - err error - ) - if b.dictLitEnc != nil { - b.litEnc.TransferCTable(b.dictLitEnc) - b.litEnc.Reuse = huff0.ReusePolicyAllow - b.dictLitEnc = nil - } - if len(lits) >= 1024 { - // Use 4 Streams. - out, reUsed, err = huff0.Compress4X(lits, b.litEnc) - } else if len(lits) > 32 { - // Use 1 stream - single = true - out, reUsed, err = huff0.Compress1X(lits, b.litEnc) - } else { - err = huff0.ErrIncompressible - } - - switch err { - case huff0.ErrIncompressible: - if debug { - println("Adding RAW block, length", len(lits), "last:", b.last) - } - bh.setType(blockTypeRaw) - b.output = bh.appendTo(b.output) - b.output = append(b.output, lits...) - return nil - case huff0.ErrUseRLE: - if debug { - println("Adding RLE block, length", len(lits)) - } - bh.setType(blockTypeRLE) - b.output = bh.appendTo(b.output) - b.output = append(b.output, lits[0]) - return nil - default: - return err - case nil: - } - // Compressed... - // Now, allow reuse - b.litEnc.Reuse = huff0.ReusePolicyAllow - bh.setType(blockTypeCompressed) - var lh literalsHeader - if reUsed { - if debug { - println("Reused tree, compressed to", len(out)) - } - lh.setType(literalsBlockTreeless) - } else { - if debug { - println("New tree, compressed to", len(out), "tree size:", len(b.litEnc.OutTable)) - } - lh.setType(literalsBlockCompressed) - } - // Set sizes - lh.setSizes(len(out), len(lits), single) - bh.setSize(uint32(len(out) + lh.size() + 1)) - - // Write block headers. - b.output = bh.appendTo(b.output) - b.output = lh.appendTo(b.output) - // Add compressed data. - b.output = append(b.output, out...) - // No sequences. - b.output = append(b.output, 0) - return nil -} - -// fuzzFseEncoder can be used to fuzz the FSE encoder. -func fuzzFseEncoder(data []byte) int { - if len(data) > maxSequences || len(data) < 2 { - return 0 - } - enc := fseEncoder{} - hist := enc.Histogram()[:256] - maxSym := uint8(0) - for i, v := range data { - v = v & 63 - data[i] = v - hist[v]++ - if v > maxSym { - maxSym = v - } - } - if maxSym == 0 { - // All 0 - return 0 - } - maxCount := func(a []uint32) int { - var max uint32 - for _, v := range a { - if v > max { - max = v - } - } - return int(max) - } - cnt := maxCount(hist[:maxSym]) - if cnt == len(data) { - // RLE - return 0 - } - enc.HistogramFinished(maxSym, cnt) - err := enc.normalizeCount(len(data)) - if err != nil { - return 0 - } - _, err = enc.writeCount(nil) - if err != nil { - panic(err) - } - return 1 -} - -// encode will encode the block and append the output in b.output. -// Previous offset codes must be pushed if more blocks are expected. -func (b *blockEnc) encode(org []byte, raw, rawAllLits bool) error { - if len(b.sequences) == 0 { - return b.encodeLits(b.literals, rawAllLits) - } - // We want some difference to at least account for the headers. - saved := b.size - len(b.literals) - (b.size >> 5) - if saved < 16 { - if org == nil { - return errIncompressible - } - b.popOffsets() - return b.encodeLits(org, rawAllLits) - } - - var bh blockHeader - var lh literalsHeader - bh.setLast(b.last) - bh.setType(blockTypeCompressed) - // Store offset of the block header. Needed when we know the size. - bhOffset := len(b.output) - b.output = bh.appendTo(b.output) - - var ( - out []byte - reUsed, single bool - err error - ) - if b.dictLitEnc != nil { - b.litEnc.TransferCTable(b.dictLitEnc) - b.litEnc.Reuse = huff0.ReusePolicyAllow - b.dictLitEnc = nil - } - if len(b.literals) >= 1024 && !raw { - // Use 4 Streams. - out, reUsed, err = huff0.Compress4X(b.literals, b.litEnc) - } else if len(b.literals) > 32 && !raw { - // Use 1 stream - single = true - out, reUsed, err = huff0.Compress1X(b.literals, b.litEnc) - } else { - err = huff0.ErrIncompressible - } - - switch err { - case huff0.ErrIncompressible: - lh.setType(literalsBlockRaw) - lh.setSize(len(b.literals)) - b.output = lh.appendTo(b.output) - b.output = append(b.output, b.literals...) - if debug { - println("Adding literals RAW, length", len(b.literals)) - } - case huff0.ErrUseRLE: - lh.setType(literalsBlockRLE) - lh.setSize(len(b.literals)) - b.output = lh.appendTo(b.output) - b.output = append(b.output, b.literals[0]) - if debug { - println("Adding literals RLE") - } - default: - if debug { - println("Adding literals ERROR:", err) - } - return err - case nil: - // Compressed litLen... - if reUsed { - if debug { - println("reused tree") - } - lh.setType(literalsBlockTreeless) - } else { - if debug { - println("new tree, size:", len(b.litEnc.OutTable)) - } - lh.setType(literalsBlockCompressed) - if debug { - _, _, err := huff0.ReadTable(out, nil) - if err != nil { - panic(err) - } - } - } - lh.setSizes(len(out), len(b.literals), single) - if debug { - printf("Compressed %d literals to %d bytes", len(b.literals), len(out)) - println("Adding literal header:", lh) - } - b.output = lh.appendTo(b.output) - b.output = append(b.output, out...) - b.litEnc.Reuse = huff0.ReusePolicyAllow - if debug { - println("Adding literals compressed") - } - } - // Sequence compression - - // Write the number of sequences - switch { - case len(b.sequences) < 128: - b.output = append(b.output, uint8(len(b.sequences))) - case len(b.sequences) < 0x7f00: // TODO: this could be wrong - n := len(b.sequences) - b.output = append(b.output, 128+uint8(n>>8), uint8(n)) - default: - n := len(b.sequences) - 0x7f00 - b.output = append(b.output, 255, uint8(n), uint8(n>>8)) - } - if debug { - println("Encoding", len(b.sequences), "sequences") - } - b.genCodes() - llEnc := b.coders.llEnc - ofEnc := b.coders.ofEnc - mlEnc := b.coders.mlEnc - err = llEnc.normalizeCount(len(b.sequences)) - if err != nil { - return err - } - err = ofEnc.normalizeCount(len(b.sequences)) - if err != nil { - return err - } - err = mlEnc.normalizeCount(len(b.sequences)) - if err != nil { - return err - } - - // Choose the best compression mode for each type. - // Will evaluate the new vs predefined and previous. - chooseComp := func(cur, prev, preDef *fseEncoder) (*fseEncoder, seqCompMode) { - // See if predefined/previous is better - hist := cur.count[:cur.symbolLen] - nSize := cur.approxSize(hist) + cur.maxHeaderSize() - predefSize := preDef.approxSize(hist) - prevSize := prev.approxSize(hist) - - // Add a small penalty for new encoders. - // Don't bother with extremely small (<2 byte gains). - nSize = nSize + (nSize+2*8*16)>>4 - switch { - case predefSize <= prevSize && predefSize <= nSize || forcePreDef: - if debug { - println("Using predefined", predefSize>>3, "<=", nSize>>3) - } - return preDef, compModePredefined - case prevSize <= nSize: - if debug { - println("Using previous", prevSize>>3, "<=", nSize>>3) - } - return prev, compModeRepeat - default: - if debug { - println("Using new, predef", predefSize>>3, ". previous:", prevSize>>3, ">", nSize>>3, "header max:", cur.maxHeaderSize()>>3, "bytes") - println("tl:", cur.actualTableLog, "symbolLen:", cur.symbolLen, "norm:", cur.norm[:cur.symbolLen], "hist", cur.count[:cur.symbolLen]) - } - return cur, compModeFSE - } - } - - // Write compression mode - var mode uint8 - if llEnc.useRLE { - mode |= uint8(compModeRLE) << 6 - llEnc.setRLE(b.sequences[0].llCode) - if debug { - println("llEnc.useRLE") - } - } else { - var m seqCompMode - llEnc, m = chooseComp(llEnc, b.coders.llPrev, &fsePredefEnc[tableLiteralLengths]) - mode |= uint8(m) << 6 - } - if ofEnc.useRLE { - mode |= uint8(compModeRLE) << 4 - ofEnc.setRLE(b.sequences[0].ofCode) - if debug { - println("ofEnc.useRLE") - } - } else { - var m seqCompMode - ofEnc, m = chooseComp(ofEnc, b.coders.ofPrev, &fsePredefEnc[tableOffsets]) - mode |= uint8(m) << 4 - } - - if mlEnc.useRLE { - mode |= uint8(compModeRLE) << 2 - mlEnc.setRLE(b.sequences[0].mlCode) - if debug { - println("mlEnc.useRLE, code: ", b.sequences[0].mlCode, "value", b.sequences[0].matchLen) - } - } else { - var m seqCompMode - mlEnc, m = chooseComp(mlEnc, b.coders.mlPrev, &fsePredefEnc[tableMatchLengths]) - mode |= uint8(m) << 2 - } - b.output = append(b.output, mode) - if debug { - printf("Compression modes: 0b%b", mode) - } - b.output, err = llEnc.writeCount(b.output) - if err != nil { - return err - } - start := len(b.output) - b.output, err = ofEnc.writeCount(b.output) - if err != nil { - return err - } - if false { - println("block:", b.output[start:], "tablelog", ofEnc.actualTableLog, "maxcount:", ofEnc.maxCount) - fmt.Printf("selected TableLog: %d, Symbol length: %d\n", ofEnc.actualTableLog, ofEnc.symbolLen) - for i, v := range ofEnc.norm[:ofEnc.symbolLen] { - fmt.Printf("%3d: %5d -> %4d \n", i, ofEnc.count[i], v) - } - } - b.output, err = mlEnc.writeCount(b.output) - if err != nil { - return err - } - - // Maybe in block? - wr := &b.wr - wr.reset(b.output) - - var ll, of, ml cState - - // Current sequence - seq := len(b.sequences) - 1 - s := b.sequences[seq] - llEnc.setBits(llBitsTable[:]) - mlEnc.setBits(mlBitsTable[:]) - ofEnc.setBits(nil) - - llTT, ofTT, mlTT := llEnc.ct.symbolTT[:256], ofEnc.ct.symbolTT[:256], mlEnc.ct.symbolTT[:256] - - // We have 3 bounds checks here (and in the loop). - // Since we are iterating backwards it is kinda hard to avoid. - llB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode] - ll.init(wr, &llEnc.ct, llB) - of.init(wr, &ofEnc.ct, ofB) - wr.flush32() - ml.init(wr, &mlEnc.ct, mlB) - - // Each of these lookups also generates a bounds check. - wr.addBits32NC(s.litLen, llB.outBits) - wr.addBits32NC(s.matchLen, mlB.outBits) - wr.flush32() - wr.addBits32NC(s.offset, ofB.outBits) - if debugSequences { - println("Encoded seq", seq, s, "codes:", s.llCode, s.mlCode, s.ofCode, "states:", ll.state, ml.state, of.state, "bits:", llB, mlB, ofB) - } - seq-- - if llEnc.maxBits+mlEnc.maxBits+ofEnc.maxBits <= 32 { - // No need to flush (common) - for seq >= 0 { - s = b.sequences[seq] - wr.flush32() - llB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode] - // tabelog max is 8 for all. - of.encode(ofB) - ml.encode(mlB) - ll.encode(llB) - wr.flush32() - - // We checked that all can stay within 32 bits - wr.addBits32NC(s.litLen, llB.outBits) - wr.addBits32NC(s.matchLen, mlB.outBits) - wr.addBits32NC(s.offset, ofB.outBits) - - if debugSequences { - println("Encoded seq", seq, s) - } - - seq-- - } - } else { - for seq >= 0 { - s = b.sequences[seq] - wr.flush32() - llB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode] - // tabelog max is below 8 for each. - of.encode(ofB) - ml.encode(mlB) - ll.encode(llB) - wr.flush32() - - // ml+ll = max 32 bits total - wr.addBits32NC(s.litLen, llB.outBits) - wr.addBits32NC(s.matchLen, mlB.outBits) - wr.flush32() - wr.addBits32NC(s.offset, ofB.outBits) - - if debugSequences { - println("Encoded seq", seq, s) - } - - seq-- - } - } - ml.flush(mlEnc.actualTableLog) - of.flush(ofEnc.actualTableLog) - ll.flush(llEnc.actualTableLog) - err = wr.close() - if err != nil { - return err - } - b.output = wr.out - - if len(b.output)-3-bhOffset >= b.size { - // Maybe even add a bigger margin. - b.litEnc.Reuse = huff0.ReusePolicyNone - return errIncompressible - } - - // Size is output minus block header. - bh.setSize(uint32(len(b.output)-bhOffset) - 3) - if debug { - println("Rewriting block header", bh) - } - _ = bh.appendTo(b.output[bhOffset:bhOffset]) - b.coders.setPrev(llEnc, mlEnc, ofEnc) - return nil -} - -var errIncompressible = errors.New("incompressible") - -func (b *blockEnc) genCodes() { - if len(b.sequences) == 0 { - // nothing to do - return - } - - if len(b.sequences) > math.MaxUint16 { - panic("can only encode up to 64K sequences") - } - // No bounds checks after here: - llH := b.coders.llEnc.Histogram()[:256] - ofH := b.coders.ofEnc.Histogram()[:256] - mlH := b.coders.mlEnc.Histogram()[:256] - for i := range llH { - llH[i] = 0 - } - for i := range ofH { - ofH[i] = 0 - } - for i := range mlH { - mlH[i] = 0 - } - - var llMax, ofMax, mlMax uint8 - for i, seq := range b.sequences { - v := llCode(seq.litLen) - seq.llCode = v - llH[v]++ - if v > llMax { - llMax = v - } - - v = ofCode(seq.offset) - seq.ofCode = v - ofH[v]++ - if v > ofMax { - ofMax = v - } - - v = mlCode(seq.matchLen) - seq.mlCode = v - mlH[v]++ - if v > mlMax { - mlMax = v - if debugAsserts && mlMax > maxMatchLengthSymbol { - panic(fmt.Errorf("mlMax > maxMatchLengthSymbol (%d), matchlen: %d", mlMax, seq.matchLen)) - } - } - b.sequences[i] = seq - } - maxCount := func(a []uint32) int { - var max uint32 - for _, v := range a { - if v > max { - max = v - } - } - return int(max) - } - if debugAsserts && mlMax > maxMatchLengthSymbol { - panic(fmt.Errorf("mlMax > maxMatchLengthSymbol (%d)", mlMax)) - } - if debugAsserts && ofMax > maxOffsetBits { - panic(fmt.Errorf("ofMax > maxOffsetBits (%d)", ofMax)) - } - if debugAsserts && llMax > maxLiteralLengthSymbol { - panic(fmt.Errorf("llMax > maxLiteralLengthSymbol (%d)", llMax)) - } - - b.coders.mlEnc.HistogramFinished(mlMax, maxCount(mlH[:mlMax+1])) - b.coders.ofEnc.HistogramFinished(ofMax, maxCount(ofH[:ofMax+1])) - b.coders.llEnc.HistogramFinished(llMax, maxCount(llH[:llMax+1])) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/blocktype_string.go b/backend/vendor/github.com/klauspost/compress/zstd/blocktype_string.go deleted file mode 100644 index 01a01e48..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/blocktype_string.go +++ /dev/null @@ -1,85 +0,0 @@ -// Code generated by "stringer -type=blockType,literalsBlockType,seqCompMode,tableIndex"; DO NOT EDIT. - -package zstd - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[blockTypeRaw-0] - _ = x[blockTypeRLE-1] - _ = x[blockTypeCompressed-2] - _ = x[blockTypeReserved-3] -} - -const _blockType_name = "blockTypeRawblockTypeRLEblockTypeCompressedblockTypeReserved" - -var _blockType_index = [...]uint8{0, 12, 24, 43, 60} - -func (i blockType) String() string { - if i >= blockType(len(_blockType_index)-1) { - return "blockType(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _blockType_name[_blockType_index[i]:_blockType_index[i+1]] -} -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[literalsBlockRaw-0] - _ = x[literalsBlockRLE-1] - _ = x[literalsBlockCompressed-2] - _ = x[literalsBlockTreeless-3] -} - -const _literalsBlockType_name = "literalsBlockRawliteralsBlockRLEliteralsBlockCompressedliteralsBlockTreeless" - -var _literalsBlockType_index = [...]uint8{0, 16, 32, 55, 76} - -func (i literalsBlockType) String() string { - if i >= literalsBlockType(len(_literalsBlockType_index)-1) { - return "literalsBlockType(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _literalsBlockType_name[_literalsBlockType_index[i]:_literalsBlockType_index[i+1]] -} -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[compModePredefined-0] - _ = x[compModeRLE-1] - _ = x[compModeFSE-2] - _ = x[compModeRepeat-3] -} - -const _seqCompMode_name = "compModePredefinedcompModeRLEcompModeFSEcompModeRepeat" - -var _seqCompMode_index = [...]uint8{0, 18, 29, 40, 54} - -func (i seqCompMode) String() string { - if i >= seqCompMode(len(_seqCompMode_index)-1) { - return "seqCompMode(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _seqCompMode_name[_seqCompMode_index[i]:_seqCompMode_index[i+1]] -} -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[tableLiteralLengths-0] - _ = x[tableOffsets-1] - _ = x[tableMatchLengths-2] -} - -const _tableIndex_name = "tableLiteralLengthstableOffsetstableMatchLengths" - -var _tableIndex_index = [...]uint8{0, 19, 31, 48} - -func (i tableIndex) String() string { - if i >= tableIndex(len(_tableIndex_index)-1) { - return "tableIndex(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _tableIndex_name[_tableIndex_index[i]:_tableIndex_index[i+1]] -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/bytebuf.go b/backend/vendor/github.com/klauspost/compress/zstd/bytebuf.go deleted file mode 100644 index 658ef783..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/bytebuf.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "fmt" - "io" - "io/ioutil" -) - -type byteBuffer interface { - // Read up to 8 bytes. - // Returns nil if no more input is available. - readSmall(n int) []byte - - // Read >8 bytes. - // MAY use the destination slice. - readBig(n int, dst []byte) ([]byte, error) - - // Read a single byte. - readByte() (byte, error) - - // Skip n bytes. - skipN(n int) error -} - -// in-memory buffer -type byteBuf []byte - -func (b *byteBuf) readSmall(n int) []byte { - if debugAsserts && n > 8 { - panic(fmt.Errorf("small read > 8 (%d). use readBig", n)) - } - bb := *b - if len(bb) < n { - return nil - } - r := bb[:n] - *b = bb[n:] - return r -} - -func (b *byteBuf) readBig(n int, dst []byte) ([]byte, error) { - bb := *b - if len(bb) < n { - return nil, io.ErrUnexpectedEOF - } - r := bb[:n] - *b = bb[n:] - return r, nil -} - -func (b *byteBuf) remain() []byte { - return *b -} - -func (b *byteBuf) readByte() (byte, error) { - bb := *b - if len(bb) < 1 { - return 0, nil - } - r := bb[0] - *b = bb[1:] - return r, nil -} - -func (b *byteBuf) skipN(n int) error { - bb := *b - if len(bb) < n { - return io.ErrUnexpectedEOF - } - *b = bb[n:] - return nil -} - -// wrapper around a reader. -type readerWrapper struct { - r io.Reader - tmp [8]byte -} - -func (r *readerWrapper) readSmall(n int) []byte { - if debugAsserts && n > 8 { - panic(fmt.Errorf("small read > 8 (%d). use readBig", n)) - } - n2, err := io.ReadFull(r.r, r.tmp[:n]) - // We only really care about the actual bytes read. - if n2 != n { - if debug { - println("readSmall: got", n2, "want", n, "err", err) - } - return nil - } - return r.tmp[:n] -} - -func (r *readerWrapper) readBig(n int, dst []byte) ([]byte, error) { - if cap(dst) < n { - dst = make([]byte, n) - } - n2, err := io.ReadFull(r.r, dst[:n]) - if err == io.EOF && n > 0 { - err = io.ErrUnexpectedEOF - } - return dst[:n2], err -} - -func (r *readerWrapper) readByte() (byte, error) { - n2, err := r.r.Read(r.tmp[:1]) - if err != nil { - return 0, err - } - if n2 != 1 { - return 0, io.ErrUnexpectedEOF - } - return r.tmp[0], nil -} - -func (r *readerWrapper) skipN(n int) error { - n2, err := io.CopyN(ioutil.Discard, r.r, int64(n)) - if n2 != int64(n) { - err = io.ErrUnexpectedEOF - } - return err -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/bytereader.go b/backend/vendor/github.com/klauspost/compress/zstd/bytereader.go deleted file mode 100644 index 2c4fca17..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/bytereader.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -// byteReader provides a byte reader that reads -// little endian values from a byte stream. -// The input stream is manually advanced. -// The reader performs no bounds checks. -type byteReader struct { - b []byte - off int -} - -// init will initialize the reader and set the input. -func (b *byteReader) init(in []byte) { - b.b = in - b.off = 0 -} - -// advance the stream b n bytes. -func (b *byteReader) advance(n uint) { - b.off += int(n) -} - -// overread returns whether we have advanced too far. -func (b *byteReader) overread() bool { - return b.off > len(b.b) -} - -// Int32 returns a little endian int32 starting at current offset. -func (b byteReader) Int32() int32 { - b2 := b.b[b.off:] - b2 = b2[:4] - v3 := int32(b2[3]) - v2 := int32(b2[2]) - v1 := int32(b2[1]) - v0 := int32(b2[0]) - return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) -} - -// Uint8 returns the next byte -func (b *byteReader) Uint8() uint8 { - v := b.b[b.off] - return v -} - -// Uint32 returns a little endian uint32 starting at current offset. -func (b byteReader) Uint32() uint32 { - if r := b.remain(); r < 4 { - // Very rare - v := uint32(0) - for i := 1; i <= r; i++ { - v = (v << 8) | uint32(b.b[len(b.b)-i]) - } - return v - } - b2 := b.b[b.off:] - b2 = b2[:4] - v3 := uint32(b2[3]) - v2 := uint32(b2[2]) - v1 := uint32(b2[1]) - v0 := uint32(b2[0]) - return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) -} - -// Uint32NC returns a little endian uint32 starting at current offset. -// The caller must be sure if there are at least 4 bytes left. -func (b byteReader) Uint32NC() uint32 { - b2 := b.b[b.off:] - b2 = b2[:4] - v3 := uint32(b2[3]) - v2 := uint32(b2[2]) - v1 := uint32(b2[1]) - v0 := uint32(b2[0]) - return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) -} - -// unread returns the unread portion of the input. -func (b byteReader) unread() []byte { - return b.b[b.off:] -} - -// remain will return the number of bytes remaining. -func (b byteReader) remain() int { - return len(b.b) - b.off -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/decodeheader.go b/backend/vendor/github.com/klauspost/compress/zstd/decodeheader.go deleted file mode 100644 index 87896c5e..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/decodeheader.go +++ /dev/null @@ -1,202 +0,0 @@ -// Copyright 2020+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. - -package zstd - -import ( - "bytes" - "errors" - "io" -) - -// HeaderMaxSize is the maximum size of a Frame and Block Header. -// If less is sent to Header.Decode it *may* still contain enough information. -const HeaderMaxSize = 14 + 3 - -// Header contains information about the first frame and block within that. -type Header struct { - // Window Size the window of data to keep while decoding. - // Will only be set if HasFCS is false. - WindowSize uint64 - - // Frame content size. - // Expected size of the entire frame. - FrameContentSize uint64 - - // Dictionary ID. - // If 0, no dictionary. - DictionaryID uint32 - - // First block information. - FirstBlock struct { - // OK will be set if first block could be decoded. - OK bool - - // Is this the last block of a frame? - Last bool - - // Is the data compressed? - // If true CompressedSize will be populated. - // Unfortunately DecompressedSize cannot be determined - // without decoding the blocks. - Compressed bool - - // DecompressedSize is the expected decompressed size of the block. - // Will be 0 if it cannot be determined. - DecompressedSize int - - // CompressedSize of the data in the block. - // Does not include the block header. - // Will be equal to DecompressedSize if not Compressed. - CompressedSize int - } - - // Skippable will be true if the frame is meant to be skipped. - // No other information will be populated. - Skippable bool - - // If set there is a checksum present for the block content. - HasCheckSum bool - - // If this is true FrameContentSize will have a valid value - HasFCS bool - - SingleSegment bool -} - -// Decode the header from the beginning of the stream. -// This will decode the frame header and the first block header if enough bytes are provided. -// It is recommended to provide at least HeaderMaxSize bytes. -// If the frame header cannot be read an error will be returned. -// If there isn't enough input, io.ErrUnexpectedEOF is returned. -// The FirstBlock.OK will indicate if enough information was available to decode the first block header. -func (h *Header) Decode(in []byte) error { - if len(in) < 4 { - return io.ErrUnexpectedEOF - } - b, in := in[:4], in[4:] - if !bytes.Equal(b, frameMagic) { - if !bytes.Equal(b[1:4], skippableFrameMagic) || b[0]&0xf0 != 0x50 { - return ErrMagicMismatch - } - *h = Header{Skippable: true} - return nil - } - if len(in) < 1 { - return io.ErrUnexpectedEOF - } - - // Clear output - *h = Header{} - fhd, in := in[0], in[1:] - h.SingleSegment = fhd&(1<<5) != 0 - h.HasCheckSum = fhd&(1<<2) != 0 - - if fhd&(1<<3) != 0 { - return errors.New("Reserved bit set on frame header") - } - - // Read Window_Descriptor - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#window_descriptor - if !h.SingleSegment { - if len(in) < 1 { - return io.ErrUnexpectedEOF - } - var wd byte - wd, in = in[0], in[1:] - windowLog := 10 + (wd >> 3) - windowBase := uint64(1) << windowLog - windowAdd := (windowBase / 8) * uint64(wd&0x7) - h.WindowSize = windowBase + windowAdd - } - - // Read Dictionary_ID - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary_id - if size := fhd & 3; size != 0 { - if size == 3 { - size = 4 - } - if len(in) < int(size) { - return io.ErrUnexpectedEOF - } - b, in = in[:size], in[size:] - if b == nil { - return io.ErrUnexpectedEOF - } - switch size { - case 1: - h.DictionaryID = uint32(b[0]) - case 2: - h.DictionaryID = uint32(b[0]) | (uint32(b[1]) << 8) - case 4: - h.DictionaryID = uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) - } - } - - // Read Frame_Content_Size - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frame_content_size - var fcsSize int - v := fhd >> 6 - switch v { - case 0: - if h.SingleSegment { - fcsSize = 1 - } - default: - fcsSize = 1 << v - } - - if fcsSize > 0 { - h.HasFCS = true - if len(in) < fcsSize { - return io.ErrUnexpectedEOF - } - b, in = in[:fcsSize], in[fcsSize:] - if b == nil { - return io.ErrUnexpectedEOF - } - switch fcsSize { - case 1: - h.FrameContentSize = uint64(b[0]) - case 2: - // When FCS_Field_Size is 2, the offset of 256 is added. - h.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) + 256 - case 4: - h.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3]) << 24) - case 8: - d1 := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) - d2 := uint32(b[4]) | (uint32(b[5]) << 8) | (uint32(b[6]) << 16) | (uint32(b[7]) << 24) - h.FrameContentSize = uint64(d1) | (uint64(d2) << 32) - } - } - - // Frame Header done, we will not fail from now on. - if len(in) < 3 { - return nil - } - tmp, in := in[:3], in[3:] - bh := uint32(tmp[0]) | (uint32(tmp[1]) << 8) | (uint32(tmp[2]) << 16) - h.FirstBlock.Last = bh&1 != 0 - blockType := blockType((bh >> 1) & 3) - // find size. - cSize := int(bh >> 3) - switch blockType { - case blockTypeReserved: - return nil - case blockTypeRLE: - h.FirstBlock.Compressed = true - h.FirstBlock.DecompressedSize = cSize - h.FirstBlock.CompressedSize = 1 - case blockTypeCompressed: - h.FirstBlock.Compressed = true - h.FirstBlock.CompressedSize = cSize - case blockTypeRaw: - h.FirstBlock.DecompressedSize = cSize - h.FirstBlock.CompressedSize = cSize - default: - panic("Invalid block type") - } - - h.FirstBlock.OK = true - return nil -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/decoder.go b/backend/vendor/github.com/klauspost/compress/zstd/decoder.go deleted file mode 100644 index 13c95054..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/decoder.go +++ /dev/null @@ -1,552 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "bytes" - "errors" - "io" - "sync" -) - -// Decoder provides decoding of zstandard streams. -// The decoder has been designed to operate without allocations after a warmup. -// This means that you should store the decoder for best performance. -// To re-use a stream decoder, use the Reset(r io.Reader) error to switch to another stream. -// A decoder can safely be re-used even if the previous stream failed. -// To release the resources, you must call the Close() function on a decoder. -type Decoder struct { - o decoderOptions - - // Unreferenced decoders, ready for use. - decoders chan *blockDec - - // Streams ready to be decoded. - stream chan decodeStream - - // Current read position used for Reader functionality. - current decoderState - - // Custom dictionaries. - // Always uses copies. - dicts map[uint32]dict - - // streamWg is the waitgroup for all streams - streamWg sync.WaitGroup -} - -// decoderState is used for maintaining state when the decoder -// is used for streaming. -type decoderState struct { - // current block being written to stream. - decodeOutput - - // output in order to be written to stream. - output chan decodeOutput - - // cancel remaining output. - cancel chan struct{} - - flushed bool -} - -var ( - // Check the interfaces we want to support. - _ = io.WriterTo(&Decoder{}) - _ = io.Reader(&Decoder{}) -) - -// NewReader creates a new decoder. -// A nil Reader can be provided in which case Reset can be used to start a decode. -// -// A Decoder can be used in two modes: -// -// 1) As a stream, or -// 2) For stateless decoding using DecodeAll. -// -// Only a single stream can be decoded concurrently, but the same decoder -// can run multiple concurrent stateless decodes. It is even possible to -// use stateless decodes while a stream is being decoded. -// -// The Reset function can be used to initiate a new stream, which is will considerably -// reduce the allocations normally caused by NewReader. -func NewReader(r io.Reader, opts ...DOption) (*Decoder, error) { - initPredefined() - var d Decoder - d.o.setDefault() - for _, o := range opts { - err := o(&d.o) - if err != nil { - return nil, err - } - } - d.current.output = make(chan decodeOutput, d.o.concurrent) - d.current.flushed = true - - // Transfer option dicts. - d.dicts = make(map[uint32]dict, len(d.o.dicts)) - for _, dc := range d.o.dicts { - d.dicts[dc.id] = dc - } - d.o.dicts = nil - - // Create decoders - d.decoders = make(chan *blockDec, d.o.concurrent) - for i := 0; i < d.o.concurrent; i++ { - dec := newBlockDec(d.o.lowMem) - dec.localFrame = newFrameDec(d.o) - d.decoders <- dec - } - - if r == nil { - return &d, nil - } - return &d, d.Reset(r) -} - -// Read bytes from the decompressed stream into p. -// Returns the number of bytes written and any error that occurred. -// When the stream is done, io.EOF will be returned. -func (d *Decoder) Read(p []byte) (int, error) { - if d.stream == nil { - return 0, errors.New("no input has been initialized") - } - var n int - for { - if len(d.current.b) > 0 { - filled := copy(p, d.current.b) - p = p[filled:] - d.current.b = d.current.b[filled:] - n += filled - } - if len(p) == 0 { - break - } - if len(d.current.b) == 0 { - // We have an error and no more data - if d.current.err != nil { - break - } - if !d.nextBlock(n == 0) { - return n, nil - } - } - } - if len(d.current.b) > 0 { - if debug { - println("returning", n, "still bytes left:", len(d.current.b)) - } - // Only return error at end of block - return n, nil - } - if d.current.err != nil { - d.drainOutput() - } - if debug { - println("returning", n, d.current.err, len(d.decoders)) - } - return n, d.current.err -} - -// Reset will reset the decoder the supplied stream after the current has finished processing. -// Note that this functionality cannot be used after Close has been called. -func (d *Decoder) Reset(r io.Reader) error { - if d.current.err == ErrDecoderClosed { - return d.current.err - } - if r == nil { - return errors.New("nil Reader sent as input") - } - - if d.stream == nil { - d.stream = make(chan decodeStream, 1) - d.streamWg.Add(1) - go d.startStreamDecoder(d.stream) - } - - d.drainOutput() - - // If bytes buffer and < 1MB, do sync decoding anyway. - if bb, ok := r.(*bytes.Buffer); ok && bb.Len() < 1<<20 { - if debug { - println("*bytes.Buffer detected, doing sync decode, len:", bb.Len()) - } - b := bb.Bytes() - var dst []byte - if cap(d.current.b) > 0 { - dst = d.current.b - } - - dst, err := d.DecodeAll(b, dst[:0]) - if err == nil { - err = io.EOF - } - d.current.b = dst - d.current.err = err - d.current.flushed = true - if debug { - println("sync decode to", len(dst), "bytes, err:", err) - } - return nil - } - - // Remove current block. - d.current.decodeOutput = decodeOutput{} - d.current.err = nil - d.current.cancel = make(chan struct{}) - d.current.flushed = false - d.current.d = nil - - d.stream <- decodeStream{ - r: r, - output: d.current.output, - cancel: d.current.cancel, - } - return nil -} - -// drainOutput will drain the output until errEndOfStream is sent. -func (d *Decoder) drainOutput() { - if d.current.cancel != nil { - println("cancelling current") - close(d.current.cancel) - d.current.cancel = nil - } - if d.current.d != nil { - if debug { - printf("re-adding current decoder %p, decoders: %d", d.current.d, len(d.decoders)) - } - d.decoders <- d.current.d - d.current.d = nil - d.current.b = nil - } - if d.current.output == nil || d.current.flushed { - println("current already flushed") - return - } - for { - select { - case v := <-d.current.output: - if v.d != nil { - if debug { - printf("re-adding decoder %p", v.d) - } - d.decoders <- v.d - } - if v.err == errEndOfStream { - println("current flushed") - d.current.flushed = true - return - } - } - } -} - -// WriteTo writes data to w until there's no more data to write or when an error occurs. -// The return value n is the number of bytes written. -// Any error encountered during the write is also returned. -func (d *Decoder) WriteTo(w io.Writer) (int64, error) { - if d.stream == nil { - return 0, errors.New("no input has been initialized") - } - var n int64 - for { - if len(d.current.b) > 0 { - n2, err2 := w.Write(d.current.b) - n += int64(n2) - if err2 != nil && d.current.err == nil { - d.current.err = err2 - break - } - } - if d.current.err != nil { - break - } - d.nextBlock(true) - } - err := d.current.err - if err != nil { - d.drainOutput() - } - if err == io.EOF { - err = nil - } - return n, err -} - -// DecodeAll allows stateless decoding of a blob of bytes. -// Output will be appended to dst, so if the destination size is known -// you can pre-allocate the destination slice to avoid allocations. -// DecodeAll can be used concurrently. -// The Decoder concurrency limits will be respected. -func (d *Decoder) DecodeAll(input, dst []byte) ([]byte, error) { - if d.current.err == ErrDecoderClosed { - return dst, ErrDecoderClosed - } - - // Grab a block decoder and frame decoder. - block := <-d.decoders - frame := block.localFrame - defer func() { - if debug { - printf("re-adding decoder: %p", block) - } - frame.rawInput = nil - frame.bBuf = nil - d.decoders <- block - }() - frame.bBuf = input - - for { - frame.history.reset() - err := frame.reset(&frame.bBuf) - if err == io.EOF { - if debug { - println("frame reset return EOF") - } - return dst, nil - } - if frame.DictionaryID != nil { - dict, ok := d.dicts[*frame.DictionaryID] - if !ok { - return nil, ErrUnknownDictionary - } - frame.history.setDict(&dict) - } - if err != nil { - return dst, err - } - if frame.FrameContentSize > d.o.maxDecodedSize-uint64(len(dst)) { - return dst, ErrDecoderSizeExceeded - } - if frame.FrameContentSize > 0 && frame.FrameContentSize < 1<<30 { - // Never preallocate moe than 1 GB up front. - if cap(dst)-len(dst) < int(frame.FrameContentSize) { - dst2 := make([]byte, len(dst), len(dst)+int(frame.FrameContentSize)) - copy(dst2, dst) - dst = dst2 - } - } - if cap(dst) == 0 { - // Allocate len(input) * 2 by default if nothing is provided - // and we didn't get frame content size. - size := len(input) * 2 - // Cap to 1 MB. - if size > 1<<20 { - size = 1 << 20 - } - if uint64(size) > d.o.maxDecodedSize { - size = int(d.o.maxDecodedSize) - } - dst = make([]byte, 0, size) - } - - dst, err = frame.runDecoder(dst, block) - if err != nil { - return dst, err - } - if len(frame.bBuf) == 0 { - if debug { - println("frame dbuf empty") - } - break - } - } - return dst, nil -} - -// nextBlock returns the next block. -// If an error occurs d.err will be set. -// Optionally the function can block for new output. -// If non-blocking mode is used the returned boolean will be false -// if no data was available without blocking. -func (d *Decoder) nextBlock(blocking bool) (ok bool) { - if d.current.d != nil { - if debug { - printf("re-adding current decoder %p", d.current.d) - } - d.decoders <- d.current.d - d.current.d = nil - } - if d.current.err != nil { - // Keep error state. - return blocking - } - - if blocking { - d.current.decodeOutput = <-d.current.output - } else { - select { - case d.current.decodeOutput = <-d.current.output: - default: - return false - } - } - if debug { - println("got", len(d.current.b), "bytes, error:", d.current.err) - } - return true -} - -// Close will release all resources. -// It is NOT possible to reuse the decoder after this. -func (d *Decoder) Close() { - if d.current.err == ErrDecoderClosed { - return - } - d.drainOutput() - if d.stream != nil { - close(d.stream) - d.streamWg.Wait() - d.stream = nil - } - if d.decoders != nil { - close(d.decoders) - for dec := range d.decoders { - dec.Close() - } - d.decoders = nil - } - if d.current.d != nil { - d.current.d.Close() - d.current.d = nil - } - d.current.err = ErrDecoderClosed -} - -// IOReadCloser returns the decoder as an io.ReadCloser for convenience. -// Any changes to the decoder will be reflected, so the returned ReadCloser -// can be reused along with the decoder. -// io.WriterTo is also supported by the returned ReadCloser. -func (d *Decoder) IOReadCloser() io.ReadCloser { - return closeWrapper{d: d} -} - -// closeWrapper wraps a function call as a closer. -type closeWrapper struct { - d *Decoder -} - -// WriteTo forwards WriteTo calls to the decoder. -func (c closeWrapper) WriteTo(w io.Writer) (n int64, err error) { - return c.d.WriteTo(w) -} - -// Read forwards read calls to the decoder. -func (c closeWrapper) Read(p []byte) (n int, err error) { - return c.d.Read(p) -} - -// Close closes the decoder. -func (c closeWrapper) Close() error { - c.d.Close() - return nil -} - -type decodeOutput struct { - d *blockDec - b []byte - err error -} - -type decodeStream struct { - r io.Reader - - // Blocks ready to be written to output. - output chan decodeOutput - - // cancel reading from the input - cancel chan struct{} -} - -// errEndOfStream indicates that everything from the stream was read. -var errEndOfStream = errors.New("end-of-stream") - -// Create Decoder: -// Spawn n block decoders. These accept tasks to decode a block. -// Create goroutine that handles stream processing, this will send history to decoders as they are available. -// Decoders update the history as they decode. -// When a block is returned: -// -// a) history is sent to the next decoder, -// b) content written to CRC. -// c) return data to WRITER. -// d) wait for next block to return data. -// -// Once WRITTEN, the decoders reused by the writer frame decoder for re-use. -func (d *Decoder) startStreamDecoder(inStream chan decodeStream) { - defer d.streamWg.Done() - frame := newFrameDec(d.o) - for stream := range inStream { - if debug { - println("got new stream") - } - br := readerWrapper{r: stream.r} - decodeStream: - for { - frame.history.reset() - err := frame.reset(&br) - if debug && err != nil { - println("Frame decoder returned", err) - } - if err == nil && frame.DictionaryID != nil { - dict, ok := d.dicts[*frame.DictionaryID] - if !ok { - err = ErrUnknownDictionary - } else { - frame.history.setDict(&dict) - } - } - if err != nil { - stream.output <- decodeOutput{ - err: err, - } - break - } - if debug { - println("starting frame decoder") - } - - // This goroutine will forward history between frames. - frame.frameDone.Add(1) - frame.initAsync() - - go frame.startDecoder(stream.output) - decodeFrame: - // Go through all blocks of the frame. - for { - dec := <-d.decoders - select { - case <-stream.cancel: - if !frame.sendErr(dec, io.EOF) { - // To not let the decoder dangle, send it back. - stream.output <- decodeOutput{d: dec} - } - break decodeStream - default: - } - err := frame.next(dec) - switch err { - case io.EOF: - // End of current frame, no error - println("EOF on next block") - break decodeFrame - case nil: - continue - default: - println("block decoder returned", err) - break decodeStream - } - } - // All blocks have started decoding, check if there are more frames. - println("waiting for done") - frame.frameDone.Wait() - println("done waiting...") - } - frame.frameDone.Wait() - println("Sending EOS") - stream.output <- decodeOutput{err: errEndOfStream} - } -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/decoder_options.go b/backend/vendor/github.com/klauspost/compress/zstd/decoder_options.go deleted file mode 100644 index 284d3844..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/decoder_options.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "errors" - "fmt" - "runtime" -) - -// DOption is an option for creating a decoder. -type DOption func(*decoderOptions) error - -// options retains accumulated state of multiple options. -type decoderOptions struct { - lowMem bool - concurrent int - maxDecodedSize uint64 - dicts []dict -} - -func (o *decoderOptions) setDefault() { - *o = decoderOptions{ - // use less ram: true for now, but may change. - lowMem: true, - concurrent: runtime.GOMAXPROCS(0), - } - o.maxDecodedSize = 1 << 63 -} - -// WithDecoderLowmem will set whether to use a lower amount of memory, -// but possibly have to allocate more while running. -func WithDecoderLowmem(b bool) DOption { - return func(o *decoderOptions) error { o.lowMem = b; return nil } -} - -// WithDecoderConcurrency will set the concurrency, -// meaning the maximum number of decoders to run concurrently. -// The value supplied must be at least 1. -// By default this will be set to GOMAXPROCS. -func WithDecoderConcurrency(n int) DOption { - return func(o *decoderOptions) error { - if n <= 0 { - return fmt.Errorf("Concurrency must be at least 1") - } - o.concurrent = n - return nil - } -} - -// WithDecoderMaxMemory allows to set a maximum decoded size for in-memory -// non-streaming operations or maximum window size for streaming operations. -// This can be used to control memory usage of potentially hostile content. -// For streaming operations, the maximum window size is capped at 1<<30 bytes. -// Maximum and default is 1 << 63 bytes. -func WithDecoderMaxMemory(n uint64) DOption { - return func(o *decoderOptions) error { - if n == 0 { - return errors.New("WithDecoderMaxMemory must be at least 1") - } - if n > 1<<63 { - return fmt.Errorf("WithDecoderMaxmemory must be less than 1 << 63") - } - o.maxDecodedSize = n - return nil - } -} - -// WithDecoderDicts allows to register one or more dictionaries for the decoder. -// If several dictionaries with the same ID is provided the last one will be used. -func WithDecoderDicts(dicts ...[]byte) DOption { - return func(o *decoderOptions) error { - for _, b := range dicts { - d, err := loadDict(b) - if err != nil { - return err - } - o.dicts = append(o.dicts, *d) - } - return nil - } -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/dict.go b/backend/vendor/github.com/klauspost/compress/zstd/dict.go deleted file mode 100644 index fa25a18d..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/dict.go +++ /dev/null @@ -1,122 +0,0 @@ -package zstd - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - - "github.com/klauspost/compress/huff0" -) - -type dict struct { - id uint32 - - litEnc *huff0.Scratch - llDec, ofDec, mlDec sequenceDec - //llEnc, ofEnc, mlEnc []*fseEncoder - offsets [3]int - content []byte -} - -var dictMagic = [4]byte{0x37, 0xa4, 0x30, 0xec} - -// ID returns the dictionary id or 0 if d is nil. -func (d *dict) ID() uint32 { - if d == nil { - return 0 - } - return d.id -} - -// DictContentSize returns the dictionary content size or 0 if d is nil. -func (d *dict) DictContentSize() int { - if d == nil { - return 0 - } - return len(d.content) -} - -// Load a dictionary as described in -// https://github.com/facebook/zstd/blob/master/doc/zstd_compression_format.md#dictionary-format -func loadDict(b []byte) (*dict, error) { - // Check static field size. - if len(b) <= 8+(3*4) { - return nil, io.ErrUnexpectedEOF - } - d := dict{ - llDec: sequenceDec{fse: &fseDecoder{}}, - ofDec: sequenceDec{fse: &fseDecoder{}}, - mlDec: sequenceDec{fse: &fseDecoder{}}, - } - if !bytes.Equal(b[:4], dictMagic[:]) { - return nil, ErrMagicMismatch - } - d.id = binary.LittleEndian.Uint32(b[4:8]) - if d.id == 0 { - return nil, errors.New("dictionaries cannot have ID 0") - } - - // Read literal table - var err error - d.litEnc, b, err = huff0.ReadTable(b[8:], nil) - if err != nil { - return nil, err - } - d.litEnc.Reuse = huff0.ReusePolicyMust - - br := byteReader{ - b: b, - off: 0, - } - readDec := func(i tableIndex, dec *fseDecoder) error { - if err := dec.readNCount(&br, uint16(maxTableSymbol[i])); err != nil { - return err - } - if br.overread() { - return io.ErrUnexpectedEOF - } - err = dec.transform(symbolTableX[i]) - if err != nil { - println("Transform table error:", err) - return err - } - if debug { - println("Read table ok", "symbolLen:", dec.symbolLen) - } - // Set decoders as predefined so they aren't reused. - dec.preDefined = true - return nil - } - - if err := readDec(tableOffsets, d.ofDec.fse); err != nil { - return nil, err - } - if err := readDec(tableMatchLengths, d.mlDec.fse); err != nil { - return nil, err - } - if err := readDec(tableLiteralLengths, d.llDec.fse); err != nil { - return nil, err - } - if br.remain() < 12 { - return nil, io.ErrUnexpectedEOF - } - - d.offsets[0] = int(br.Uint32()) - br.advance(4) - d.offsets[1] = int(br.Uint32()) - br.advance(4) - d.offsets[2] = int(br.Uint32()) - br.advance(4) - if d.offsets[0] <= 0 || d.offsets[1] <= 0 || d.offsets[2] <= 0 { - return nil, errors.New("invalid offset in dictionary") - } - d.content = make([]byte, br.remain()) - copy(d.content, br.unread()) - if d.offsets[0] > len(d.content) || d.offsets[1] > len(d.content) || d.offsets[2] > len(d.content) { - return nil, fmt.Errorf("initial offset bigger than dictionary content size %d, offsets: %v", len(d.content), d.offsets) - } - - return &d, nil -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/enc_base.go b/backend/vendor/github.com/klauspost/compress/zstd/enc_base.go deleted file mode 100644 index b1b7c6e6..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/enc_base.go +++ /dev/null @@ -1,155 +0,0 @@ -package zstd - -import ( - "fmt" - "math/bits" - - "github.com/klauspost/compress/zstd/internal/xxhash" -) - -type fastBase struct { - // cur is the offset at the start of hist - cur int32 - // maximum offset. Should be at least 2x block size. - maxMatchOff int32 - hist []byte - crc *xxhash.Digest - tmp [8]byte - blk *blockEnc - lastDictID uint32 -} - -// CRC returns the underlying CRC writer. -func (e *fastBase) CRC() *xxhash.Digest { - return e.crc -} - -// AppendCRC will append the CRC to the destination slice and return it. -func (e *fastBase) AppendCRC(dst []byte) []byte { - crc := e.crc.Sum(e.tmp[:0]) - dst = append(dst, crc[7], crc[6], crc[5], crc[4]) - return dst -} - -// WindowSize returns the window size of the encoder, -// or a window size small enough to contain the input size, if > 0. -func (e *fastBase) WindowSize(size int) int32 { - if size > 0 && size < int(e.maxMatchOff) { - b := int32(1) << uint(bits.Len(uint(size))) - // Keep minimum window. - if b < 1024 { - b = 1024 - } - return b - } - return e.maxMatchOff -} - -// Block returns the current block. -func (e *fastBase) Block() *blockEnc { - return e.blk -} - -func (e *fastBase) addBlock(src []byte) int32 { - if debugAsserts && e.cur > bufferReset { - panic(fmt.Sprintf("ecur (%d) > buffer reset (%d)", e.cur, bufferReset)) - } - // check if we have space already - if len(e.hist)+len(src) > cap(e.hist) { - if cap(e.hist) == 0 { - l := e.maxMatchOff * 2 - // Make it at least 1MB. - if l < 1<<20 { - l = 1 << 20 - } - e.hist = make([]byte, 0, l) - } else { - if cap(e.hist) < int(e.maxMatchOff*2) { - panic("unexpected buffer size") - } - // Move down - offset := int32(len(e.hist)) - e.maxMatchOff - copy(e.hist[0:e.maxMatchOff], e.hist[offset:]) - e.cur += offset - e.hist = e.hist[:e.maxMatchOff] - } - } - s := int32(len(e.hist)) - e.hist = append(e.hist, src...) - return s -} - -// useBlock will replace the block with the provided one, -// but transfer recent offsets from the previous. -func (e *fastBase) UseBlock(enc *blockEnc) { - enc.reset(e.blk) - e.blk = enc -} - -func (e *fastBase) matchlenNoHist(s, t int32, src []byte) int32 { - // Extend the match to be as long as possible. - return int32(matchLen(src[s:], src[t:])) -} - -func (e *fastBase) matchlen(s, t int32, src []byte) int32 { - if debugAsserts { - if s < 0 { - err := fmt.Sprintf("s (%d) < 0", s) - panic(err) - } - if t < 0 { - err := fmt.Sprintf("s (%d) < 0", s) - panic(err) - } - if s-t > e.maxMatchOff { - err := fmt.Sprintf("s (%d) - t (%d) > maxMatchOff (%d)", s, t, e.maxMatchOff) - panic(err) - } - if len(src)-int(s) > maxCompressedBlockSize { - panic(fmt.Sprintf("len(src)-s (%d) > maxCompressedBlockSize (%d)", len(src)-int(s), maxCompressedBlockSize)) - } - } - - // Extend the match to be as long as possible. - return int32(matchLen(src[s:], src[t:])) -} - -// Reset the encoding table. -func (e *fastBase) resetBase(d *dict, singleBlock bool) { - if e.blk == nil { - e.blk = &blockEnc{} - e.blk.init() - } else { - e.blk.reset(nil) - } - e.blk.initNewEncode() - if e.crc == nil { - e.crc = xxhash.New() - } else { - e.crc.Reset() - } - if (!singleBlock || d.DictContentSize() > 0) && cap(e.hist) < int(e.maxMatchOff*2)+d.DictContentSize() { - l := e.maxMatchOff*2 + int32(d.DictContentSize()) - // Make it at least 1MB. - if l < 1<<20 { - l = 1 << 20 - } - e.hist = make([]byte, 0, l) - } - // We offset current position so everything will be out of reach. - // If above reset line, history will be purged. - if e.cur < bufferReset { - e.cur += e.maxMatchOff + int32(len(e.hist)) - } - e.hist = e.hist[:0] - if d != nil { - // Set offsets (currently not used) - for i, off := range d.offsets { - e.blk.recentOffsets[i] = uint32(off) - e.blk.prevRecentOffsets[i] = e.blk.recentOffsets[i] - } - // Transfer litenc. - e.blk.dictLitEnc = d.litEnc - e.hist = append(e.hist, d.content...) - } -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/enc_best.go b/backend/vendor/github.com/klauspost/compress/zstd/enc_best.go deleted file mode 100644 index c4baa42c..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/enc_best.go +++ /dev/null @@ -1,484 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "fmt" - "math/bits" -) - -const ( - bestLongTableBits = 20 // Bits used in the long match table - bestLongTableSize = 1 << bestLongTableBits // Size of the table - - // Note: Increasing the short table bits or making the hash shorter - // can actually lead to compression degradation since it will 'steal' more from the - // long match table and match offsets are quite big. - // This greatly depends on the type of input. - bestShortTableBits = 16 // Bits used in the short match table - bestShortTableSize = 1 << bestShortTableBits // Size of the table -) - -// bestFastEncoder uses 2 tables, one for short matches (5 bytes) and one for long matches. -// The long match table contains the previous entry with the same hash, -// effectively making it a "chain" of length 2. -// When we find a long match we choose between the two values and select the longest. -// When we find a short match, after checking the long, we check if we can find a long at n+1 -// and that it is longer (lazy matching). -type bestFastEncoder struct { - fastBase - table [bestShortTableSize]prevEntry - longTable [bestLongTableSize]prevEntry - dictTable []prevEntry - dictLongTable []prevEntry -} - -// Encode improves compression... -func (e *bestFastEncoder) Encode(blk *blockEnc, src []byte) { - const ( - // Input margin is the number of bytes we read (8) - // and the maximum we will read ahead (2) - inputMargin = 8 + 4 - minNonLiteralBlockSize = 16 - ) - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = prevEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = prevEntry{} - } - e.cur = e.maxMatchOff - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - e.maxMatchOff - for i := range e.table[:] { - v := e.table[i].offset - v2 := e.table[i].prev - if v < minOff { - v = 0 - v2 = 0 - } else { - v = v - e.cur + e.maxMatchOff - if v2 < minOff { - v2 = 0 - } else { - v2 = v2 - e.cur + e.maxMatchOff - } - } - e.table[i] = prevEntry{ - offset: v, - prev: v2, - } - } - for i := range e.longTable[:] { - v := e.longTable[i].offset - v2 := e.longTable[i].prev - if v < minOff { - v = 0 - v2 = 0 - } else { - v = v - e.cur + e.maxMatchOff - if v2 < minOff { - v2 = 0 - } else { - v2 = v2 - e.cur + e.maxMatchOff - } - } - e.longTable[i] = prevEntry{ - offset: v, - prev: v2, - } - } - e.cur = e.maxMatchOff - break - } - - s := e.addBlock(src) - blk.size = len(src) - if len(src) < minNonLiteralBlockSize { - blk.extraLits = len(src) - blk.literals = blk.literals[:len(src)] - copy(blk.literals, src) - return - } - - // Override src - src = e.hist - sLimit := int32(len(src)) - inputMargin - const kSearchStrength = 12 - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := s - cv := load6432(src, s) - - // Relative offsets - offset1 := int32(blk.recentOffsets[0]) - offset2 := int32(blk.recentOffsets[1]) - offset3 := int32(blk.recentOffsets[2]) - - addLiterals := func(s *seq, until int32) { - if until == nextEmit { - return - } - blk.literals = append(blk.literals, src[nextEmit:until]...) - s.litLen = uint32(until - nextEmit) - } - _ = addLiterals - - if debug { - println("recent offsets:", blk.recentOffsets) - } - -encodeLoop: - for { - // We allow the encoder to optionally turn off repeat offsets across blocks - canRepeat := len(blk.sequences) > 2 - - if debugAsserts && canRepeat && offset1 == 0 { - panic("offset0 was 0") - } - - type match struct { - offset int32 - s int32 - length int32 - rep int32 - } - matchAt := func(offset int32, s int32, first uint32, rep int32) match { - if s-offset >= e.maxMatchOff || load3232(src, offset) != first { - return match{offset: offset, s: s} - } - return match{offset: offset, s: s, length: 4 + e.matchlen(s+4, offset+4, src), rep: rep} - } - - bestOf := func(a, b match) match { - aScore := b.s - a.s + a.length - bScore := a.s - b.s + b.length - if a.rep < 0 { - aScore = aScore - int32(bits.Len32(uint32(a.offset)))/8 - } - if b.rep < 0 { - bScore = bScore - int32(bits.Len32(uint32(b.offset)))/8 - } - if aScore >= bScore { - return a - } - return b - } - const goodEnough = 100 - - nextHashL := hash8(cv, bestLongTableBits) - nextHashS := hash4x64(cv, bestShortTableBits) - candidateL := e.longTable[nextHashL] - candidateS := e.table[nextHashS] - - best := bestOf(matchAt(candidateL.offset-e.cur, s, uint32(cv), -1), matchAt(candidateL.prev-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateS.offset-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateS.prev-e.cur, s, uint32(cv), -1)) - if canRepeat && best.length < goodEnough { - best = bestOf(best, matchAt(s-offset1+1, s+1, uint32(cv>>8), 1)) - best = bestOf(best, matchAt(s-offset2+1, s+1, uint32(cv>>8), 2)) - best = bestOf(best, matchAt(s-offset3+1, s+1, uint32(cv>>8), 3)) - best = bestOf(best, matchAt(s-offset1+3, s+3, uint32(cv>>24), 1)) - best = bestOf(best, matchAt(s-offset2+3, s+3, uint32(cv>>24), 2)) - best = bestOf(best, matchAt(s-offset3+3, s+3, uint32(cv>>24), 3)) - } - // Load next and check... - e.longTable[nextHashL] = prevEntry{offset: s + e.cur, prev: candidateL.offset} - e.table[nextHashS] = prevEntry{offset: s + e.cur, prev: candidateS.offset} - - // Look far ahead, unless we have a really long match already... - if best.length < goodEnough { - // No match found, move forward on input, no need to check forward... - if best.length < 4 { - s += 1 + (s-nextEmit)>>(kSearchStrength-1) - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - continue - } - - s++ - candidateS = e.table[hash4x64(cv>>8, bestShortTableBits)] - cv = load6432(src, s) - cv2 := load6432(src, s+1) - candidateL = e.longTable[hash8(cv, bestLongTableBits)] - candidateL2 := e.longTable[hash8(cv2, bestLongTableBits)] - - best = bestOf(best, matchAt(candidateS.offset-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateL.offset-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateL.prev-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateL2.offset-e.cur, s+1, uint32(cv2), -1)) - best = bestOf(best, matchAt(candidateL2.prev-e.cur, s+1, uint32(cv2), -1)) - } - - // We have a match, we can store the forward value - if best.rep > 0 { - s = best.s - var seq seq - seq.matchLen = uint32(best.length - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := best.s - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - repIndex := best.offset - for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 0 - seq.offset = uint32(best.rep) - if debugSequences { - println("repeat sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Index match start+1 (long) -> s - 1 - index0 := s - s = best.s + best.length - - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, best.length) - - } - break encodeLoop - } - // Index skipped... - off := index0 + e.cur - for index0 < s-1 { - cv0 := load6432(src, index0) - h0 := hash8(cv0, bestLongTableBits) - h1 := hash4x64(cv0, bestShortTableBits) - e.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset} - e.table[h1] = prevEntry{offset: off, prev: e.table[h1].offset} - off++ - index0++ - } - switch best.rep { - case 2: - offset1, offset2 = offset2, offset1 - case 3: - offset1, offset2, offset3 = offset3, offset1, offset2 - } - cv = load6432(src, s) - continue - } - - // A 4-byte match has been found. Update recent offsets. - // We'll later see if more than 4 bytes. - s = best.s - t := best.offset - offset1, offset2, offset3 = s-t, offset1, offset2 - - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - - if debugAsserts && canRepeat && int(offset1) > len(src) { - panic("invalid offset") - } - - // Extend the n-byte match as long as possible. - l := best.length - - // Extend backwards - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength { - s-- - t-- - l++ - } - - // Write our sequence - var seq seq - seq.litLen = uint32(s - nextEmit) - seq.matchLen = uint32(l - zstdMinMatch) - if seq.litLen > 0 { - blk.literals = append(blk.literals, src[nextEmit:s]...) - } - seq.offset = uint32(s-t) + 3 - s += l - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - nextEmit = s - if s >= sLimit { - break encodeLoop - } - - // Index match start+1 (long) -> s - 1 - index0 := s - l + 1 - // every entry - for index0 < s-1 { - cv0 := load6432(src, index0) - h0 := hash8(cv0, bestLongTableBits) - h1 := hash4x64(cv0, bestShortTableBits) - off := index0 + e.cur - e.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset} - e.table[h1] = prevEntry{offset: off, prev: e.table[h1].offset} - index0++ - } - - cv = load6432(src, s) - if !canRepeat { - continue - } - - // Check offset 2 - for { - o2 := s - offset2 - if load3232(src, o2) != uint32(cv) { - // Do regular search - break - } - - // Store this, since we have it. - nextHashS := hash4x64(cv, bestShortTableBits) - nextHashL := hash8(cv, bestLongTableBits) - - // We have at least 4 byte match. - // No need to check backwards. We come straight from a match - l := 4 + e.matchlen(s+4, o2+4, src) - - e.longTable[nextHashL] = prevEntry{offset: s + e.cur, prev: e.longTable[nextHashL].offset} - e.table[nextHashS] = prevEntry{offset: s + e.cur, prev: e.table[nextHashS].offset} - seq.matchLen = uint32(l) - zstdMinMatch - seq.litLen = 0 - - // Since litlen is always 0, this is offset 1. - seq.offset = 1 - s += l - nextEmit = s - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Swap offset 1 and 2. - offset1, offset2 = offset2, offset1 - if s >= sLimit { - // Finished - break encodeLoop - } - cv = load6432(src, s) - } - } - - if int(nextEmit) < len(src) { - blk.literals = append(blk.literals, src[nextEmit:]...) - blk.extraLits = len(src) - int(nextEmit) - } - blk.recentOffsets[0] = uint32(offset1) - blk.recentOffsets[1] = uint32(offset2) - blk.recentOffsets[2] = uint32(offset3) - if debug { - println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) - } -} - -// EncodeNoHist will encode a block with no history and no following blocks. -// Most notable difference is that src will not be copied for history and -// we do not need to check for max match length. -func (e *bestFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { - e.Encode(blk, src) -} - -// ResetDict will reset and set a dictionary if not nil -func (e *bestFastEncoder) Reset(d *dict, singleBlock bool) { - e.resetBase(d, singleBlock) - if d == nil { - return - } - // Init or copy dict table - if len(e.dictTable) != len(e.table) || d.id != e.lastDictID { - if len(e.dictTable) != len(e.table) { - e.dictTable = make([]prevEntry, len(e.table)) - } - end := int32(len(d.content)) - 8 + e.maxMatchOff - for i := e.maxMatchOff; i < end; i += 4 { - const hashLog = bestShortTableBits - - cv := load6432(d.content, i-e.maxMatchOff) - nextHash := hash4x64(cv, hashLog) // 0 -> 4 - nextHash1 := hash4x64(cv>>8, hashLog) // 1 -> 5 - nextHash2 := hash4x64(cv>>16, hashLog) // 2 -> 6 - nextHash3 := hash4x64(cv>>24, hashLog) // 3 -> 7 - e.dictTable[nextHash] = prevEntry{ - prev: e.dictTable[nextHash].offset, - offset: i, - } - e.dictTable[nextHash1] = prevEntry{ - prev: e.dictTable[nextHash1].offset, - offset: i + 1, - } - e.dictTable[nextHash2] = prevEntry{ - prev: e.dictTable[nextHash2].offset, - offset: i + 2, - } - e.dictTable[nextHash3] = prevEntry{ - prev: e.dictTable[nextHash3].offset, - offset: i + 3, - } - } - e.lastDictID = d.id - } - - // Init or copy dict table - if len(e.dictLongTable) != len(e.longTable) || d.id != e.lastDictID { - if len(e.dictLongTable) != len(e.longTable) { - e.dictLongTable = make([]prevEntry, len(e.longTable)) - } - if len(d.content) >= 8 { - cv := load6432(d.content, 0) - h := hash8(cv, bestLongTableBits) - e.dictLongTable[h] = prevEntry{ - offset: e.maxMatchOff, - prev: e.dictLongTable[h].offset, - } - - end := int32(len(d.content)) - 8 + e.maxMatchOff - off := 8 // First to read - for i := e.maxMatchOff + 1; i < end; i++ { - cv = cv>>8 | (uint64(d.content[off]) << 56) - h := hash8(cv, bestLongTableBits) - e.dictLongTable[h] = prevEntry{ - offset: i, - prev: e.dictLongTable[h].offset, - } - off++ - } - } - e.lastDictID = d.id - } - // Reset table to initial state - copy(e.longTable[:], e.dictLongTable) - - e.cur = e.maxMatchOff - // Reset table to initial state - copy(e.table[:], e.dictTable) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/enc_better.go b/backend/vendor/github.com/klauspost/compress/zstd/enc_better.go deleted file mode 100644 index 94a5343d..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/enc_better.go +++ /dev/null @@ -1,595 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import "fmt" - -const ( - betterLongTableBits = 19 // Bits used in the long match table - betterLongTableSize = 1 << betterLongTableBits // Size of the table - - // Note: Increasing the short table bits or making the hash shorter - // can actually lead to compression degradation since it will 'steal' more from the - // long match table and match offsets are quite big. - // This greatly depends on the type of input. - betterShortTableBits = 13 // Bits used in the short match table - betterShortTableSize = 1 << betterShortTableBits // Size of the table -) - -type prevEntry struct { - offset int32 - prev int32 -} - -// betterFastEncoder uses 2 tables, one for short matches (5 bytes) and one for long matches. -// The long match table contains the previous entry with the same hash, -// effectively making it a "chain" of length 2. -// When we find a long match we choose between the two values and select the longest. -// When we find a short match, after checking the long, we check if we can find a long at n+1 -// and that it is longer (lazy matching). -type betterFastEncoder struct { - fastBase - table [betterShortTableSize]tableEntry - longTable [betterLongTableSize]prevEntry - dictTable []tableEntry - dictLongTable []prevEntry -} - -// Encode improves compression... -func (e *betterFastEncoder) Encode(blk *blockEnc, src []byte) { - const ( - // Input margin is the number of bytes we read (8) - // and the maximum we will read ahead (2) - inputMargin = 8 + 2 - minNonLiteralBlockSize = 16 - ) - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = prevEntry{} - } - e.cur = e.maxMatchOff - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - e.maxMatchOff - for i := range e.table[:] { - v := e.table[i].offset - if v < minOff { - v = 0 - } else { - v = v - e.cur + e.maxMatchOff - } - e.table[i].offset = v - } - for i := range e.longTable[:] { - v := e.longTable[i].offset - v2 := e.longTable[i].prev - if v < minOff { - v = 0 - v2 = 0 - } else { - v = v - e.cur + e.maxMatchOff - if v2 < minOff { - v2 = 0 - } else { - v2 = v2 - e.cur + e.maxMatchOff - } - } - e.longTable[i] = prevEntry{ - offset: v, - prev: v2, - } - } - e.cur = e.maxMatchOff - break - } - - s := e.addBlock(src) - blk.size = len(src) - if len(src) < minNonLiteralBlockSize { - blk.extraLits = len(src) - blk.literals = blk.literals[:len(src)] - copy(blk.literals, src) - return - } - - // Override src - src = e.hist - sLimit := int32(len(src)) - inputMargin - // stepSize is the number of bytes to skip on every main loop iteration. - // It should be >= 1. - const stepSize = 1 - - const kSearchStrength = 9 - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := s - cv := load6432(src, s) - - // Relative offsets - offset1 := int32(blk.recentOffsets[0]) - offset2 := int32(blk.recentOffsets[1]) - - addLiterals := func(s *seq, until int32) { - if until == nextEmit { - return - } - blk.literals = append(blk.literals, src[nextEmit:until]...) - s.litLen = uint32(until - nextEmit) - } - if debug { - println("recent offsets:", blk.recentOffsets) - } - -encodeLoop: - for { - var t int32 - // We allow the encoder to optionally turn off repeat offsets across blocks - canRepeat := len(blk.sequences) > 2 - var matched int32 - - for { - if debugAsserts && canRepeat && offset1 == 0 { - panic("offset0 was 0") - } - - nextHashS := hash5(cv, betterShortTableBits) - nextHashL := hash8(cv, betterLongTableBits) - candidateL := e.longTable[nextHashL] - candidateS := e.table[nextHashS] - - const repOff = 1 - repIndex := s - offset1 + repOff - off := s + e.cur - e.longTable[nextHashL] = prevEntry{offset: off, prev: candidateL.offset} - e.table[nextHashS] = tableEntry{offset: off, val: uint32(cv)} - - if canRepeat { - if repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) { - // Consider history as well. - var seq seq - lenght := 4 + e.matchlen(s+4+repOff, repIndex+4, src) - - seq.matchLen = uint32(lenght - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := s + repOff - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 0 - seq.offset = 1 - if debugSequences { - println("repeat sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Index match start+1 (long) -> s - 1 - index0 := s + repOff - s += lenght + repOff - - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, lenght) - - } - break encodeLoop - } - // Index skipped... - for index0 < s-1 { - cv0 := load6432(src, index0) - cv1 := cv0 >> 8 - h0 := hash8(cv0, betterLongTableBits) - off := index0 + e.cur - e.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset} - e.table[hash5(cv1, betterShortTableBits)] = tableEntry{offset: off + 1, val: uint32(cv1)} - index0 += 2 - } - cv = load6432(src, s) - continue - } - const repOff2 = 1 - - // We deviate from the reference encoder and also check offset 2. - // Still slower and not much better, so disabled. - // repIndex = s - offset2 + repOff2 - if false && repIndex >= 0 && load6432(src, repIndex) == load6432(src, s+repOff) { - // Consider history as well. - var seq seq - lenght := 8 + e.matchlen(s+8+repOff2, repIndex+8, src) - - seq.matchLen = uint32(lenght - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := s + repOff2 - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 2 - seq.offset = 2 - if debugSequences { - println("repeat sequence 2", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - index0 := s + repOff2 - s += lenght + repOff2 - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, lenght) - - } - break encodeLoop - } - - // Index skipped... - for index0 < s-1 { - cv0 := load6432(src, index0) - cv1 := cv0 >> 8 - h0 := hash8(cv0, betterLongTableBits) - off := index0 + e.cur - e.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset} - e.table[hash5(cv1, betterShortTableBits)] = tableEntry{offset: off + 1, val: uint32(cv1)} - index0 += 2 - } - cv = load6432(src, s) - // Swap offsets - offset1, offset2 = offset2, offset1 - continue - } - } - // Find the offsets of our two matches. - coffsetL := candidateL.offset - e.cur - coffsetLP := candidateL.prev - e.cur - - // Check if we have a long match. - if s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) { - // Found a long match, at least 8 bytes. - matched = e.matchlen(s+8, coffsetL+8, src) + 8 - t = coffsetL - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugMatches { - println("long match") - } - - if s-coffsetLP < e.maxMatchOff && cv == load6432(src, coffsetLP) { - // Found a long match, at least 8 bytes. - prevMatch := e.matchlen(s+8, coffsetLP+8, src) + 8 - if prevMatch > matched { - matched = prevMatch - t = coffsetLP - } - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugMatches { - println("long match") - } - } - break - } - - // Check if we have a long match on prev. - if s-coffsetLP < e.maxMatchOff && cv == load6432(src, coffsetLP) { - // Found a long match, at least 8 bytes. - matched = e.matchlen(s+8, coffsetLP+8, src) + 8 - t = coffsetLP - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugMatches { - println("long match") - } - break - } - - coffsetS := candidateS.offset - e.cur - - // Check if we have a short match. - if s-coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val { - // found a regular match - matched = e.matchlen(s+4, coffsetS+4, src) + 4 - - // See if we can find a long match at s+1 - const checkAt = 1 - cv := load6432(src, s+checkAt) - nextHashL = hash8(cv, betterLongTableBits) - candidateL = e.longTable[nextHashL] - coffsetL = candidateL.offset - e.cur - - // We can store it, since we have at least a 4 byte match. - e.longTable[nextHashL] = prevEntry{offset: s + checkAt + e.cur, prev: candidateL.offset} - if s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) { - // Found a long match, at least 8 bytes. - matchedNext := e.matchlen(s+8+checkAt, coffsetL+8, src) + 8 - if matchedNext > matched { - t = coffsetL - s += checkAt - matched = matchedNext - if debugMatches { - println("long match (after short)") - } - break - } - } - - // Check prev long... - coffsetL = candidateL.prev - e.cur - if s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) { - // Found a long match, at least 8 bytes. - matchedNext := e.matchlen(s+8+checkAt, coffsetL+8, src) + 8 - if matchedNext > matched { - t = coffsetL - s += checkAt - matched = matchedNext - if debugMatches { - println("prev long match (after short)") - } - break - } - } - t = coffsetS - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugAsserts && t < 0 { - panic("t<0") - } - if debugMatches { - println("short match") - } - break - } - - // No match found, move forward in input. - s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - } - - // A 4-byte match has been found. Update recent offsets. - // We'll later see if more than 4 bytes. - offset2 = offset1 - offset1 = s - t - - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - - if debugAsserts && canRepeat && int(offset1) > len(src) { - panic("invalid offset") - } - - // Extend the n-byte match as long as possible. - l := matched - - // Extend backwards - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength { - s-- - t-- - l++ - } - - // Write our sequence - var seq seq - seq.litLen = uint32(s - nextEmit) - seq.matchLen = uint32(l - zstdMinMatch) - if seq.litLen > 0 { - blk.literals = append(blk.literals, src[nextEmit:s]...) - } - seq.offset = uint32(s-t) + 3 - s += l - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - nextEmit = s - if s >= sLimit { - break encodeLoop - } - - // Index match start+1 (long) -> s - 1 - index0 := s - l + 1 - for index0 < s-1 { - cv0 := load6432(src, index0) - cv1 := cv0 >> 8 - h0 := hash8(cv0, betterLongTableBits) - off := index0 + e.cur - e.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset} - e.table[hash5(cv1, betterShortTableBits)] = tableEntry{offset: off + 1, val: uint32(cv1)} - index0 += 2 - } - - cv = load6432(src, s) - if !canRepeat { - continue - } - - // Check offset 2 - for { - o2 := s - offset2 - if load3232(src, o2) != uint32(cv) { - // Do regular search - break - } - - // Store this, since we have it. - nextHashS := hash5(cv, betterShortTableBits) - nextHashL := hash8(cv, betterLongTableBits) - - // We have at least 4 byte match. - // No need to check backwards. We come straight from a match - l := 4 + e.matchlen(s+4, o2+4, src) - - e.longTable[nextHashL] = prevEntry{offset: s + e.cur, prev: e.longTable[nextHashL].offset} - e.table[nextHashS] = tableEntry{offset: s + e.cur, val: uint32(cv)} - seq.matchLen = uint32(l) - zstdMinMatch - seq.litLen = 0 - - // Since litlen is always 0, this is offset 1. - seq.offset = 1 - s += l - nextEmit = s - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Swap offset 1 and 2. - offset1, offset2 = offset2, offset1 - if s >= sLimit { - // Finished - break encodeLoop - } - cv = load6432(src, s) - } - } - - if int(nextEmit) < len(src) { - blk.literals = append(blk.literals, src[nextEmit:]...) - blk.extraLits = len(src) - int(nextEmit) - } - blk.recentOffsets[0] = uint32(offset1) - blk.recentOffsets[1] = uint32(offset2) - if debug { - println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) - } -} - -// EncodeNoHist will encode a block with no history and no following blocks. -// Most notable difference is that src will not be copied for history and -// we do not need to check for max match length. -func (e *betterFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { - e.Encode(blk, src) -} - -// ResetDict will reset and set a dictionary if not nil -func (e *betterFastEncoder) Reset(d *dict, singleBlock bool) { - e.resetBase(d, singleBlock) - if d == nil { - return - } - // Init or copy dict table - if len(e.dictTable) != len(e.table) || d.id != e.lastDictID { - if len(e.dictTable) != len(e.table) { - e.dictTable = make([]tableEntry, len(e.table)) - } - end := int32(len(d.content)) - 8 + e.maxMatchOff - for i := e.maxMatchOff; i < end; i += 4 { - const hashLog = betterShortTableBits - - cv := load6432(d.content, i-e.maxMatchOff) - nextHash := hash5(cv, hashLog) // 0 -> 4 - nextHash1 := hash5(cv>>8, hashLog) // 1 -> 5 - nextHash2 := hash5(cv>>16, hashLog) // 2 -> 6 - nextHash3 := hash5(cv>>24, hashLog) // 3 -> 7 - e.dictTable[nextHash] = tableEntry{ - val: uint32(cv), - offset: i, - } - e.dictTable[nextHash1] = tableEntry{ - val: uint32(cv >> 8), - offset: i + 1, - } - e.dictTable[nextHash2] = tableEntry{ - val: uint32(cv >> 16), - offset: i + 2, - } - e.dictTable[nextHash3] = tableEntry{ - val: uint32(cv >> 24), - offset: i + 3, - } - } - e.lastDictID = d.id - } - - // Init or copy dict table - if len(e.dictLongTable) != len(e.longTable) || d.id != e.lastDictID { - if len(e.dictLongTable) != len(e.longTable) { - e.dictLongTable = make([]prevEntry, len(e.longTable)) - } - if len(d.content) >= 8 { - cv := load6432(d.content, 0) - h := hash8(cv, betterLongTableBits) - e.dictLongTable[h] = prevEntry{ - offset: e.maxMatchOff, - prev: e.dictLongTable[h].offset, - } - - end := int32(len(d.content)) - 8 + e.maxMatchOff - off := 8 // First to read - for i := e.maxMatchOff + 1; i < end; i++ { - cv = cv>>8 | (uint64(d.content[off]) << 56) - h := hash8(cv, betterLongTableBits) - e.dictLongTable[h] = prevEntry{ - offset: i, - prev: e.dictLongTable[h].offset, - } - off++ - } - } - e.lastDictID = d.id - } - // Reset table to initial state - copy(e.longTable[:], e.dictLongTable) - - e.cur = e.maxMatchOff - // Reset table to initial state - copy(e.table[:], e.dictTable) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/enc_dfast.go b/backend/vendor/github.com/klauspost/compress/zstd/enc_dfast.go deleted file mode 100644 index 19eebf66..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/enc_dfast.go +++ /dev/null @@ -1,713 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import "fmt" - -const ( - dFastLongTableBits = 17 // Bits used in the long match table - dFastLongTableSize = 1 << dFastLongTableBits // Size of the table - dFastLongTableMask = dFastLongTableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. - - dFastShortTableBits = tableBits // Bits used in the short match table - dFastShortTableSize = 1 << dFastShortTableBits // Size of the table - dFastShortTableMask = dFastShortTableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. -) - -type doubleFastEncoder struct { - fastEncoder - longTable [dFastLongTableSize]tableEntry - dictLongTable []tableEntry -} - -// Encode mimmics functionality in zstd_dfast.c -func (e *doubleFastEncoder) Encode(blk *blockEnc, src []byte) { - const ( - // Input margin is the number of bytes we read (8) - // and the maximum we will read ahead (2) - inputMargin = 8 + 2 - minNonLiteralBlockSize = 16 - ) - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = tableEntry{} - } - e.cur = e.maxMatchOff - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - e.maxMatchOff - for i := range e.table[:] { - v := e.table[i].offset - if v < minOff { - v = 0 - } else { - v = v - e.cur + e.maxMatchOff - } - e.table[i].offset = v - } - for i := range e.longTable[:] { - v := e.longTable[i].offset - if v < minOff { - v = 0 - } else { - v = v - e.cur + e.maxMatchOff - } - e.longTable[i].offset = v - } - e.cur = e.maxMatchOff - break - } - - s := e.addBlock(src) - blk.size = len(src) - if len(src) < minNonLiteralBlockSize { - blk.extraLits = len(src) - blk.literals = blk.literals[:len(src)] - copy(blk.literals, src) - return - } - - // Override src - src = e.hist - sLimit := int32(len(src)) - inputMargin - // stepSize is the number of bytes to skip on every main loop iteration. - // It should be >= 1. - const stepSize = 1 - - const kSearchStrength = 8 - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := s - cv := load6432(src, s) - - // Relative offsets - offset1 := int32(blk.recentOffsets[0]) - offset2 := int32(blk.recentOffsets[1]) - - addLiterals := func(s *seq, until int32) { - if until == nextEmit { - return - } - blk.literals = append(blk.literals, src[nextEmit:until]...) - s.litLen = uint32(until - nextEmit) - } - if debug { - println("recent offsets:", blk.recentOffsets) - } - -encodeLoop: - for { - var t int32 - // We allow the encoder to optionally turn off repeat offsets across blocks - canRepeat := len(blk.sequences) > 2 - - for { - if debugAsserts && canRepeat && offset1 == 0 { - panic("offset0 was 0") - } - - nextHashS := hash5(cv, dFastShortTableBits) - nextHashL := hash8(cv, dFastLongTableBits) - candidateL := e.longTable[nextHashL] - candidateS := e.table[nextHashS] - - const repOff = 1 - repIndex := s - offset1 + repOff - entry := tableEntry{offset: s + e.cur, val: uint32(cv)} - e.longTable[nextHashL] = entry - e.table[nextHashS] = entry - - if canRepeat { - if repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) { - // Consider history as well. - var seq seq - lenght := 4 + e.matchlen(s+4+repOff, repIndex+4, src) - - seq.matchLen = uint32(lenght - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := s + repOff - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 0 - seq.offset = 1 - if debugSequences { - println("repeat sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - s += lenght + repOff - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, lenght) - - } - break encodeLoop - } - cv = load6432(src, s) - continue - } - } - // Find the offsets of our two matches. - coffsetL := s - (candidateL.offset - e.cur) - coffsetS := s - (candidateS.offset - e.cur) - - // Check if we have a long match. - if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { - // Found a long match, likely at least 8 bytes. - // Reference encoder checks all 8 bytes, we only check 4, - // but the likelihood of both the first 4 bytes and the hash matching should be enough. - t = candidateL.offset - e.cur - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugMatches { - println("long match") - } - break - } - - // Check if we have a short match. - if coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val { - // found a regular match - // See if we can find a long match at s+1 - const checkAt = 1 - cv := load6432(src, s+checkAt) - nextHashL = hash8(cv, dFastLongTableBits) - candidateL = e.longTable[nextHashL] - coffsetL = s - (candidateL.offset - e.cur) + checkAt - - // We can store it, since we have at least a 4 byte match. - e.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)} - if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { - // Found a long match, likely at least 8 bytes. - // Reference encoder checks all 8 bytes, we only check 4, - // but the likelihood of both the first 4 bytes and the hash matching should be enough. - t = candidateL.offset - e.cur - s += checkAt - if debugMatches { - println("long match (after short)") - } - break - } - - t = candidateS.offset - e.cur - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugAsserts && t < 0 { - panic("t<0") - } - if debugMatches { - println("short match") - } - break - } - - // No match found, move forward in input. - s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - } - - // A 4-byte match has been found. Update recent offsets. - // We'll later see if more than 4 bytes. - offset2 = offset1 - offset1 = s - t - - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - - if debugAsserts && canRepeat && int(offset1) > len(src) { - panic("invalid offset") - } - - // Extend the 4-byte match as long as possible. - l := e.matchlen(s+4, t+4, src) + 4 - - // Extend backwards - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength { - s-- - t-- - l++ - } - - // Write our sequence - var seq seq - seq.litLen = uint32(s - nextEmit) - seq.matchLen = uint32(l - zstdMinMatch) - if seq.litLen > 0 { - blk.literals = append(blk.literals, src[nextEmit:s]...) - } - seq.offset = uint32(s-t) + 3 - s += l - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - nextEmit = s - if s >= sLimit { - break encodeLoop - } - - // Index match start+1 (long) and start+2 (short) - index0 := s - l + 1 - // Index match end-2 (long) and end-1 (short) - index1 := s - 2 - - cv0 := load6432(src, index0) - cv1 := load6432(src, index1) - te0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)} - te1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)} - e.longTable[hash8(cv0, dFastLongTableBits)] = te0 - e.longTable[hash8(cv1, dFastLongTableBits)] = te1 - cv0 >>= 8 - cv1 >>= 8 - te0.offset++ - te1.offset++ - te0.val = uint32(cv0) - te1.val = uint32(cv1) - e.table[hash5(cv0, dFastShortTableBits)] = te0 - e.table[hash5(cv1, dFastShortTableBits)] = te1 - - cv = load6432(src, s) - - if !canRepeat { - continue - } - - // Check offset 2 - for { - o2 := s - offset2 - if load3232(src, o2) != uint32(cv) { - // Do regular search - break - } - - // Store this, since we have it. - nextHashS := hash5(cv, dFastShortTableBits) - nextHashL := hash8(cv, dFastLongTableBits) - - // We have at least 4 byte match. - // No need to check backwards. We come straight from a match - l := 4 + e.matchlen(s+4, o2+4, src) - - entry := tableEntry{offset: s + e.cur, val: uint32(cv)} - e.longTable[nextHashL] = entry - e.table[nextHashS] = entry - seq.matchLen = uint32(l) - zstdMinMatch - seq.litLen = 0 - - // Since litlen is always 0, this is offset 1. - seq.offset = 1 - s += l - nextEmit = s - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Swap offset 1 and 2. - offset1, offset2 = offset2, offset1 - if s >= sLimit { - // Finished - break encodeLoop - } - cv = load6432(src, s) - } - } - - if int(nextEmit) < len(src) { - blk.literals = append(blk.literals, src[nextEmit:]...) - blk.extraLits = len(src) - int(nextEmit) - } - blk.recentOffsets[0] = uint32(offset1) - blk.recentOffsets[1] = uint32(offset2) - if debug { - println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) - } -} - -// EncodeNoHist will encode a block with no history and no following blocks. -// Most notable difference is that src will not be copied for history and -// we do not need to check for max match length. -func (e *doubleFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { - const ( - // Input margin is the number of bytes we read (8) - // and the maximum we will read ahead (2) - inputMargin = 8 + 2 - minNonLiteralBlockSize = 16 - ) - - // Protect against e.cur wraparound. - if e.cur >= bufferReset { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = tableEntry{} - } - e.cur = e.maxMatchOff - } - - s := int32(0) - blk.size = len(src) - if len(src) < minNonLiteralBlockSize { - blk.extraLits = len(src) - blk.literals = blk.literals[:len(src)] - copy(blk.literals, src) - return - } - - // Override src - sLimit := int32(len(src)) - inputMargin - // stepSize is the number of bytes to skip on every main loop iteration. - // It should be >= 1. - const stepSize = 1 - - const kSearchStrength = 8 - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := s - cv := load6432(src, s) - - // Relative offsets - offset1 := int32(blk.recentOffsets[0]) - offset2 := int32(blk.recentOffsets[1]) - - addLiterals := func(s *seq, until int32) { - if until == nextEmit { - return - } - blk.literals = append(blk.literals, src[nextEmit:until]...) - s.litLen = uint32(until - nextEmit) - } - if debug { - println("recent offsets:", blk.recentOffsets) - } - -encodeLoop: - for { - var t int32 - for { - - nextHashS := hash5(cv, dFastShortTableBits) - nextHashL := hash8(cv, dFastLongTableBits) - candidateL := e.longTable[nextHashL] - candidateS := e.table[nextHashS] - - const repOff = 1 - repIndex := s - offset1 + repOff - entry := tableEntry{offset: s + e.cur, val: uint32(cv)} - e.longTable[nextHashL] = entry - e.table[nextHashS] = entry - - if len(blk.sequences) > 2 { - if load3232(src, repIndex) == uint32(cv>>(repOff*8)) { - // Consider history as well. - var seq seq - //length := 4 + e.matchlen(s+4+repOff, repIndex+4, src) - length := 4 + int32(matchLen(src[s+4+repOff:], src[repIndex+4:])) - - seq.matchLen = uint32(length - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := s + repOff - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 0 - seq.offset = 1 - if debugSequences { - println("repeat sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - s += length + repOff - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, length) - - } - break encodeLoop - } - cv = load6432(src, s) - continue - } - } - // Find the offsets of our two matches. - coffsetL := s - (candidateL.offset - e.cur) - coffsetS := s - (candidateS.offset - e.cur) - - // Check if we have a long match. - if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { - // Found a long match, likely at least 8 bytes. - // Reference encoder checks all 8 bytes, we only check 4, - // but the likelihood of both the first 4 bytes and the hash matching should be enough. - t = candidateL.offset - e.cur - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d). cur: %d", s, t, e.cur)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugMatches { - println("long match") - } - break - } - - // Check if we have a short match. - if coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val { - // found a regular match - // See if we can find a long match at s+1 - const checkAt = 1 - cv := load6432(src, s+checkAt) - nextHashL = hash8(cv, dFastLongTableBits) - candidateL = e.longTable[nextHashL] - coffsetL = s - (candidateL.offset - e.cur) + checkAt - - // We can store it, since we have at least a 4 byte match. - e.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)} - if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { - // Found a long match, likely at least 8 bytes. - // Reference encoder checks all 8 bytes, we only check 4, - // but the likelihood of both the first 4 bytes and the hash matching should be enough. - t = candidateL.offset - e.cur - s += checkAt - if debugMatches { - println("long match (after short)") - } - break - } - - t = candidateS.offset - e.cur - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugAsserts && t < 0 { - panic("t<0") - } - if debugMatches { - println("short match") - } - break - } - - // No match found, move forward in input. - s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - } - - // A 4-byte match has been found. Update recent offsets. - // We'll later see if more than 4 bytes. - offset2 = offset1 - offset1 = s - t - - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - - // Extend the 4-byte match as long as possible. - //l := e.matchlen(s+4, t+4, src) + 4 - l := int32(matchLen(src[s+4:], src[t+4:])) + 4 - - // Extend backwards - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for t > tMin && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - - // Write our sequence - var seq seq - seq.litLen = uint32(s - nextEmit) - seq.matchLen = uint32(l - zstdMinMatch) - if seq.litLen > 0 { - blk.literals = append(blk.literals, src[nextEmit:s]...) - } - seq.offset = uint32(s-t) + 3 - s += l - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - nextEmit = s - if s >= sLimit { - break encodeLoop - } - - // Index match start+1 (long) and start+2 (short) - index0 := s - l + 1 - // Index match end-2 (long) and end-1 (short) - index1 := s - 2 - - cv0 := load6432(src, index0) - cv1 := load6432(src, index1) - te0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)} - te1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)} - e.longTable[hash8(cv0, dFastLongTableBits)] = te0 - e.longTable[hash8(cv1, dFastLongTableBits)] = te1 - cv0 >>= 8 - cv1 >>= 8 - te0.offset++ - te1.offset++ - te0.val = uint32(cv0) - te1.val = uint32(cv1) - e.table[hash5(cv0, dFastShortTableBits)] = te0 - e.table[hash5(cv1, dFastShortTableBits)] = te1 - - cv = load6432(src, s) - - if len(blk.sequences) <= 2 { - continue - } - - // Check offset 2 - for { - o2 := s - offset2 - if load3232(src, o2) != uint32(cv) { - // Do regular search - break - } - - // Store this, since we have it. - nextHashS := hash5(cv1>>8, dFastShortTableBits) - nextHashL := hash8(cv, dFastLongTableBits) - - // We have at least 4 byte match. - // No need to check backwards. We come straight from a match - //l := 4 + e.matchlen(s+4, o2+4, src) - l := 4 + int32(matchLen(src[s+4:], src[o2+4:])) - - entry := tableEntry{offset: s + e.cur, val: uint32(cv)} - e.longTable[nextHashL] = entry - e.table[nextHashS] = entry - seq.matchLen = uint32(l) - zstdMinMatch - seq.litLen = 0 - - // Since litlen is always 0, this is offset 1. - seq.offset = 1 - s += l - nextEmit = s - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Swap offset 1 and 2. - offset1, offset2 = offset2, offset1 - if s >= sLimit { - // Finished - break encodeLoop - } - cv = load6432(src, s) - } - } - - if int(nextEmit) < len(src) { - blk.literals = append(blk.literals, src[nextEmit:]...) - blk.extraLits = len(src) - int(nextEmit) - } - if debug { - println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) - } - - // We do not store history, so we must offset e.cur to avoid false matches for next user. - if e.cur < bufferReset { - e.cur += int32(len(src)) - } -} - -// ResetDict will reset and set a dictionary if not nil -func (e *doubleFastEncoder) Reset(d *dict, singleBlock bool) { - e.fastEncoder.Reset(d, singleBlock) - if d == nil { - return - } - - // Init or copy dict table - if len(e.dictLongTable) != len(e.longTable) || d.id != e.lastDictID { - if len(e.dictLongTable) != len(e.longTable) { - e.dictLongTable = make([]tableEntry, len(e.longTable)) - } - if len(d.content) >= 8 { - cv := load6432(d.content, 0) - e.dictLongTable[hash8(cv, dFastLongTableBits)] = tableEntry{ - val: uint32(cv), - offset: e.maxMatchOff, - } - end := int32(len(d.content)) - 8 + e.maxMatchOff - for i := e.maxMatchOff + 1; i < end; i++ { - cv = cv>>8 | (uint64(d.content[i-e.maxMatchOff+7]) << 56) - e.dictLongTable[hash8(cv, dFastLongTableBits)] = tableEntry{ - val: uint32(cv), - offset: i, - } - } - } - e.lastDictID = d.id - } - // Reset table to initial state - e.cur = e.maxMatchOff - copy(e.longTable[:], e.dictLongTable) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/enc_fast.go b/backend/vendor/github.com/klauspost/compress/zstd/enc_fast.go deleted file mode 100644 index 0b301df4..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/enc_fast.go +++ /dev/null @@ -1,661 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "fmt" - "math" - "math/bits" -) - -const ( - tableBits = 15 // Bits used in the table - tableSize = 1 << tableBits // Size of the table - tableMask = tableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. - maxMatchLength = 131074 -) - -type tableEntry struct { - val uint32 - offset int32 -} - -type fastEncoder struct { - fastBase - table [tableSize]tableEntry - dictTable []tableEntry -} - -// Encode mimmics functionality in zstd_fast.c -func (e *fastEncoder) Encode(blk *blockEnc, src []byte) { - const ( - inputMargin = 8 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - - // Protect against e.cur wraparound. - for e.cur >= bufferReset { - if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - e.cur = e.maxMatchOff - break - } - // Shift down everything in the table that isn't already too far away. - minOff := e.cur + int32(len(e.hist)) - e.maxMatchOff - for i := range e.table[:] { - v := e.table[i].offset - if v < minOff { - v = 0 - } else { - v = v - e.cur + e.maxMatchOff - } - e.table[i].offset = v - } - e.cur = e.maxMatchOff - break - } - - s := e.addBlock(src) - blk.size = len(src) - if len(src) < minNonLiteralBlockSize { - blk.extraLits = len(src) - blk.literals = blk.literals[:len(src)] - copy(blk.literals, src) - return - } - - // Override src - src = e.hist - sLimit := int32(len(src)) - inputMargin - // stepSize is the number of bytes to skip on every main loop iteration. - // It should be >= 2. - const stepSize = 2 - - // TEMPLATE - const hashLog = tableBits - // seems global, but would be nice to tweak. - const kSearchStrength = 8 - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := s - cv := load6432(src, s) - - // Relative offsets - offset1 := int32(blk.recentOffsets[0]) - offset2 := int32(blk.recentOffsets[1]) - - addLiterals := func(s *seq, until int32) { - if until == nextEmit { - return - } - blk.literals = append(blk.literals, src[nextEmit:until]...) - s.litLen = uint32(until - nextEmit) - } - if debug { - println("recent offsets:", blk.recentOffsets) - } - -encodeLoop: - for { - // t will contain the match offset when we find one. - // When existing the search loop, we have already checked 4 bytes. - var t int32 - - // We will not use repeat offsets across blocks. - // By not using them for the first 3 matches - canRepeat := len(blk.sequences) > 2 - - for { - if debugAsserts && canRepeat && offset1 == 0 { - panic("offset0 was 0") - } - - nextHash := hash6(cv, hashLog) - nextHash2 := hash6(cv>>8, hashLog) - candidate := e.table[nextHash] - candidate2 := e.table[nextHash2] - repIndex := s - offset1 + 2 - - e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} - e.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)} - - if canRepeat && repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>16) { - // Consider history as well. - var seq seq - var length int32 - // length = 4 + e.matchlen(s+6, repIndex+4, src) - { - a := src[s+6:] - b := src[repIndex+4:] - endI := len(a) & (math.MaxInt32 - 7) - length = int32(endI) + 4 - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - length = int32(i+bits.TrailingZeros64(diff)>>3) + 4 - break - } - } - } - - seq.matchLen = uint32(length - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := s + 2 - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - sMin := s - e.maxMatchOff - if sMin < 0 { - sMin = 0 - } - for repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 0 - seq.offset = 1 - if debugSequences { - println("repeat sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - s += length + 2 - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, length) - - } - break encodeLoop - } - cv = load6432(src, s) - continue - } - coffset0 := s - (candidate.offset - e.cur) - coffset1 := s - (candidate2.offset - e.cur) + 1 - if coffset0 < e.maxMatchOff && uint32(cv) == candidate.val { - // found a regular match - t = candidate.offset - e.cur - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - break - } - - if coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val { - // found a regular match - t = candidate2.offset - e.cur - s++ - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugAsserts && t < 0 { - panic("t<0") - } - break - } - s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - } - // A 4-byte match has been found. We'll later see if more than 4 bytes. - offset2 = offset1 - offset1 = s - t - - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - - if debugAsserts && canRepeat && int(offset1) > len(src) { - panic("invalid offset") - } - - // Extend the 4-byte match as long as possible. - //l := e.matchlen(s+4, t+4, src) + 4 - var l int32 - { - a := src[s+4:] - b := src[t+4:] - endI := len(a) & (math.MaxInt32 - 7) - l = int32(endI) + 4 - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - l = int32(i+bits.TrailingZeros64(diff)>>3) + 4 - break - } - } - } - - // Extend backwards - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength { - s-- - t-- - l++ - } - - // Write our sequence. - var seq seq - seq.litLen = uint32(s - nextEmit) - seq.matchLen = uint32(l - zstdMinMatch) - if seq.litLen > 0 { - blk.literals = append(blk.literals, src[nextEmit:s]...) - } - // Don't use repeat offsets - seq.offset = uint32(s-t) + 3 - s += l - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - nextEmit = s - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - - // Check offset 2 - if o2 := s - offset2; canRepeat && load3232(src, o2) == uint32(cv) { - // We have at least 4 byte match. - // No need to check backwards. We come straight from a match - //l := 4 + e.matchlen(s+4, o2+4, src) - var l int32 - { - a := src[s+4:] - b := src[o2+4:] - endI := len(a) & (math.MaxInt32 - 7) - l = int32(endI) + 4 - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - l = int32(i+bits.TrailingZeros64(diff)>>3) + 4 - break - } - } - } - - // Store this, since we have it. - nextHash := hash6(cv, hashLog) - e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} - seq.matchLen = uint32(l) - zstdMinMatch - seq.litLen = 0 - // Since litlen is always 0, this is offset 1. - seq.offset = 1 - s += l - nextEmit = s - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Swap offset 1 and 2. - offset1, offset2 = offset2, offset1 - if s >= sLimit { - break encodeLoop - } - // Prepare next loop. - cv = load6432(src, s) - } - } - - if int(nextEmit) < len(src) { - blk.literals = append(blk.literals, src[nextEmit:]...) - blk.extraLits = len(src) - int(nextEmit) - } - blk.recentOffsets[0] = uint32(offset1) - blk.recentOffsets[1] = uint32(offset2) - if debug { - println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) - } -} - -// EncodeNoHist will encode a block with no history and no following blocks. -// Most notable difference is that src will not be copied for history and -// we do not need to check for max match length. -func (e *fastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { - const ( - inputMargin = 8 - minNonLiteralBlockSize = 1 + 1 + inputMargin - ) - if debug { - if len(src) > maxBlockSize { - panic("src too big") - } - } - - // Protect against e.cur wraparound. - if e.cur >= bufferReset { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - e.cur = e.maxMatchOff - } - - s := int32(0) - blk.size = len(src) - if len(src) < minNonLiteralBlockSize { - blk.extraLits = len(src) - blk.literals = blk.literals[:len(src)] - copy(blk.literals, src) - return - } - - sLimit := int32(len(src)) - inputMargin - // stepSize is the number of bytes to skip on every main loop iteration. - // It should be >= 2. - const stepSize = 2 - - // TEMPLATE - const hashLog = tableBits - // seems global, but would be nice to tweak. - const kSearchStrength = 8 - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := s - cv := load6432(src, s) - - // Relative offsets - offset1 := int32(blk.recentOffsets[0]) - offset2 := int32(blk.recentOffsets[1]) - - addLiterals := func(s *seq, until int32) { - if until == nextEmit { - return - } - blk.literals = append(blk.literals, src[nextEmit:until]...) - s.litLen = uint32(until - nextEmit) - } - if debug { - println("recent offsets:", blk.recentOffsets) - } - -encodeLoop: - for { - // t will contain the match offset when we find one. - // When existing the search loop, we have already checked 4 bytes. - var t int32 - - // We will not use repeat offsets across blocks. - // By not using them for the first 3 matches - - for { - nextHash := hash6(cv, hashLog) - nextHash2 := hash6(cv>>8, hashLog) - candidate := e.table[nextHash] - candidate2 := e.table[nextHash2] - repIndex := s - offset1 + 2 - - e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} - e.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)} - - if len(blk.sequences) > 2 && load3232(src, repIndex) == uint32(cv>>16) { - // Consider history as well. - var seq seq - // length := 4 + e.matchlen(s+6, repIndex+4, src) - // length := 4 + int32(matchLen(src[s+6:], src[repIndex+4:])) - var length int32 - { - a := src[s+6:] - b := src[repIndex+4:] - endI := len(a) & (math.MaxInt32 - 7) - length = int32(endI) + 4 - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - length = int32(i+bits.TrailingZeros64(diff)>>3) + 4 - break - } - } - } - - seq.matchLen = uint32(length - zstdMinMatch) - - // We might be able to match backwards. - // Extend as long as we can. - start := s + 2 - // We end the search early, so we don't risk 0 literals - // and have to do special offset treatment. - startLimit := nextEmit + 1 - - sMin := s - e.maxMatchOff - if sMin < 0 { - sMin = 0 - } - for repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] { - repIndex-- - start-- - seq.matchLen++ - } - addLiterals(&seq, start) - - // rep 0 - seq.offset = 1 - if debugSequences { - println("repeat sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - s += length + 2 - nextEmit = s - if s >= sLimit { - if debug { - println("repeat ended", s, length) - - } - break encodeLoop - } - cv = load6432(src, s) - continue - } - coffset0 := s - (candidate.offset - e.cur) - coffset1 := s - (candidate2.offset - e.cur) + 1 - if coffset0 < e.maxMatchOff && uint32(cv) == candidate.val { - // found a regular match - t = candidate.offset - e.cur - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugAsserts && t < 0 { - panic(fmt.Sprintf("t (%d) < 0, candidate.offset: %d, e.cur: %d, coffset0: %d, e.maxMatchOff: %d", t, candidate.offset, e.cur, coffset0, e.maxMatchOff)) - } - break - } - - if coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val { - // found a regular match - t = candidate2.offset - e.cur - s++ - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - if debugAsserts && s-t > e.maxMatchOff { - panic("s - t >e.maxMatchOff") - } - if debugAsserts && t < 0 { - panic("t<0") - } - break - } - s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - } - // A 4-byte match has been found. We'll later see if more than 4 bytes. - offset2 = offset1 - offset1 = s - t - - if debugAsserts && s <= t { - panic(fmt.Sprintf("s (%d) <= t (%d)", s, t)) - } - - if debugAsserts && t < 0 { - panic(fmt.Sprintf("t (%d) < 0 ", t)) - } - // Extend the 4-byte match as long as possible. - //l := e.matchlenNoHist(s+4, t+4, src) + 4 - // l := int32(matchLen(src[s+4:], src[t+4:])) + 4 - var l int32 - { - a := src[s+4:] - b := src[t+4:] - endI := len(a) & (math.MaxInt32 - 7) - l = int32(endI) + 4 - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - l = int32(i+bits.TrailingZeros64(diff)>>3) + 4 - break - } - } - } - - // Extend backwards - tMin := s - e.maxMatchOff - if tMin < 0 { - tMin = 0 - } - for t > tMin && s > nextEmit && src[t-1] == src[s-1] { - s-- - t-- - l++ - } - - // Write our sequence. - var seq seq - seq.litLen = uint32(s - nextEmit) - seq.matchLen = uint32(l - zstdMinMatch) - if seq.litLen > 0 { - blk.literals = append(blk.literals, src[nextEmit:s]...) - } - // Don't use repeat offsets - seq.offset = uint32(s-t) + 3 - s += l - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - nextEmit = s - if s >= sLimit { - break encodeLoop - } - cv = load6432(src, s) - - // Check offset 2 - if o2 := s - offset2; len(blk.sequences) > 2 && load3232(src, o2) == uint32(cv) { - // We have at least 4 byte match. - // No need to check backwards. We come straight from a match - //l := 4 + e.matchlenNoHist(s+4, o2+4, src) - // l := 4 + int32(matchLen(src[s+4:], src[o2+4:])) - var l int32 - { - a := src[s+4:] - b := src[o2+4:] - endI := len(a) & (math.MaxInt32 - 7) - l = int32(endI) + 4 - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - l = int32(i+bits.TrailingZeros64(diff)>>3) + 4 - break - } - } - } - - // Store this, since we have it. - nextHash := hash6(cv, hashLog) - e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} - seq.matchLen = uint32(l) - zstdMinMatch - seq.litLen = 0 - // Since litlen is always 0, this is offset 1. - seq.offset = 1 - s += l - nextEmit = s - if debugSequences { - println("sequence", seq, "next s:", s) - } - blk.sequences = append(blk.sequences, seq) - - // Swap offset 1 and 2. - offset1, offset2 = offset2, offset1 - if s >= sLimit { - break encodeLoop - } - // Prepare next loop. - cv = load6432(src, s) - } - } - - if int(nextEmit) < len(src) { - blk.literals = append(blk.literals, src[nextEmit:]...) - blk.extraLits = len(src) - int(nextEmit) - } - if debug { - println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) - } - // We do not store history, so we must offset e.cur to avoid false matches for next user. - if e.cur < bufferReset { - e.cur += int32(len(src)) - } -} - -// ResetDict will reset and set a dictionary if not nil -func (e *fastEncoder) Reset(d *dict, singleBlock bool) { - e.resetBase(d, singleBlock) - if d == nil { - return - } - - // Init or copy dict table - if len(e.dictTable) != len(e.table) || d.id != e.lastDictID { - if len(e.dictTable) != len(e.table) { - e.dictTable = make([]tableEntry, len(e.table)) - } - if true { - end := e.maxMatchOff + int32(len(d.content)) - 8 - for i := e.maxMatchOff; i < end; i += 3 { - const hashLog = tableBits - - cv := load6432(d.content, i-e.maxMatchOff) - nextHash := hash6(cv, hashLog) // 0 -> 5 - nextHash1 := hash6(cv>>8, hashLog) // 1 -> 6 - nextHash2 := hash6(cv>>16, hashLog) // 2 -> 7 - e.dictTable[nextHash] = tableEntry{ - val: uint32(cv), - offset: i, - } - e.dictTable[nextHash1] = tableEntry{ - val: uint32(cv >> 8), - offset: i + 1, - } - e.dictTable[nextHash2] = tableEntry{ - val: uint32(cv >> 16), - offset: i + 2, - } - } - } - e.lastDictID = d.id - } - - e.cur = e.maxMatchOff - // Reset table to initial state - copy(e.table[:], e.dictTable) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/encoder.go b/backend/vendor/github.com/klauspost/compress/zstd/encoder.go deleted file mode 100644 index f5759211..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/encoder.go +++ /dev/null @@ -1,570 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "crypto/rand" - "fmt" - "io" - rdebug "runtime/debug" - "sync" - - "github.com/klauspost/compress/zstd/internal/xxhash" -) - -// Encoder provides encoding to Zstandard. -// An Encoder can be used for either compressing a stream via the -// io.WriteCloser interface supported by the Encoder or as multiple independent -// tasks via the EncodeAll function. -// Smaller encodes are encouraged to use the EncodeAll function. -// Use NewWriter to create a new instance. -type Encoder struct { - o encoderOptions - encoders chan encoder - state encoderState - init sync.Once -} - -type encoder interface { - Encode(blk *blockEnc, src []byte) - EncodeNoHist(blk *blockEnc, src []byte) - Block() *blockEnc - CRC() *xxhash.Digest - AppendCRC([]byte) []byte - WindowSize(size int) int32 - UseBlock(*blockEnc) - Reset(d *dict, singleBlock bool) -} - -type encoderState struct { - w io.Writer - filling []byte - current []byte - previous []byte - encoder encoder - writing *blockEnc - err error - writeErr error - nWritten int64 - headerWritten bool - eofWritten bool - fullFrameWritten bool - - // This waitgroup indicates an encode is running. - wg sync.WaitGroup - // This waitgroup indicates we have a block encoding/writing. - wWg sync.WaitGroup -} - -// NewWriter will create a new Zstandard encoder. -// If the encoder will be used for encoding blocks a nil writer can be used. -func NewWriter(w io.Writer, opts ...EOption) (*Encoder, error) { - initPredefined() - var e Encoder - e.o.setDefault() - for _, o := range opts { - err := o(&e.o) - if err != nil { - return nil, err - } - } - if w != nil { - e.Reset(w) - } - return &e, nil -} - -func (e *Encoder) initialize() { - if e.o.concurrent == 0 { - e.o.setDefault() - } - e.encoders = make(chan encoder, e.o.concurrent) - for i := 0; i < e.o.concurrent; i++ { - enc := e.o.encoder() - e.encoders <- enc - } -} - -// Reset will re-initialize the writer and new writes will encode to the supplied writer -// as a new, independent stream. -func (e *Encoder) Reset(w io.Writer) { - s := &e.state - s.wg.Wait() - s.wWg.Wait() - if cap(s.filling) == 0 { - s.filling = make([]byte, 0, e.o.blockSize) - } - if cap(s.current) == 0 { - s.current = make([]byte, 0, e.o.blockSize) - } - if cap(s.previous) == 0 { - s.previous = make([]byte, 0, e.o.blockSize) - } - if s.encoder == nil { - s.encoder = e.o.encoder() - } - if s.writing == nil { - s.writing = &blockEnc{} - s.writing.init() - } - s.writing.initNewEncode() - s.filling = s.filling[:0] - s.current = s.current[:0] - s.previous = s.previous[:0] - s.encoder.Reset(e.o.dict, false) - s.headerWritten = false - s.eofWritten = false - s.fullFrameWritten = false - s.w = w - s.err = nil - s.nWritten = 0 - s.writeErr = nil -} - -// Write data to the encoder. -// Input data will be buffered and as the buffer fills up -// content will be compressed and written to the output. -// When done writing, use Close to flush the remaining output -// and write CRC if requested. -func (e *Encoder) Write(p []byte) (n int, err error) { - s := &e.state - for len(p) > 0 { - if len(p)+len(s.filling) < e.o.blockSize { - if e.o.crc { - _, _ = s.encoder.CRC().Write(p) - } - s.filling = append(s.filling, p...) - return n + len(p), nil - } - add := p - if len(p)+len(s.filling) > e.o.blockSize { - add = add[:e.o.blockSize-len(s.filling)] - } - if e.o.crc { - _, _ = s.encoder.CRC().Write(add) - } - s.filling = append(s.filling, add...) - p = p[len(add):] - n += len(add) - if len(s.filling) < e.o.blockSize { - return n, nil - } - err := e.nextBlock(false) - if err != nil { - return n, err - } - if debugAsserts && len(s.filling) > 0 { - panic(len(s.filling)) - } - } - return n, nil -} - -// nextBlock will synchronize and start compressing input in e.state.filling. -// If an error has occurred during encoding it will be returned. -func (e *Encoder) nextBlock(final bool) error { - s := &e.state - // Wait for current block. - s.wg.Wait() - if s.err != nil { - return s.err - } - if len(s.filling) > e.o.blockSize { - return fmt.Errorf("block > maxStoreBlockSize") - } - if !s.headerWritten { - // If we have a single block encode, do a sync compression. - if final && len(s.filling) > 0 { - s.current = e.EncodeAll(s.filling, s.current[:0]) - var n2 int - n2, s.err = s.w.Write(s.current) - if s.err != nil { - return s.err - } - s.nWritten += int64(n2) - s.current = s.current[:0] - s.filling = s.filling[:0] - s.headerWritten = true - s.fullFrameWritten = true - s.eofWritten = true - return nil - } - - var tmp [maxHeaderSize]byte - fh := frameHeader{ - ContentSize: 0, - WindowSize: uint32(s.encoder.WindowSize(0)), - SingleSegment: false, - Checksum: e.o.crc, - DictID: e.o.dict.ID(), - } - - dst, err := fh.appendTo(tmp[:0]) - if err != nil { - return err - } - s.headerWritten = true - s.wWg.Wait() - var n2 int - n2, s.err = s.w.Write(dst) - if s.err != nil { - return s.err - } - s.nWritten += int64(n2) - } - if s.eofWritten { - // Ensure we only write it once. - final = false - } - - if len(s.filling) == 0 { - // Final block, but no data. - if final { - enc := s.encoder - blk := enc.Block() - blk.reset(nil) - blk.last = true - blk.encodeRaw(nil) - s.wWg.Wait() - _, s.err = s.w.Write(blk.output) - s.nWritten += int64(len(blk.output)) - s.eofWritten = true - } - return s.err - } - - // Move blocks forward. - s.filling, s.current, s.previous = s.previous[:0], s.filling, s.current - s.wg.Add(1) - go func(src []byte) { - if debug { - println("Adding block,", len(src), "bytes, final:", final) - } - defer func() { - if r := recover(); r != nil { - s.err = fmt.Errorf("panic while encoding: %v", r) - rdebug.PrintStack() - } - s.wg.Done() - }() - enc := s.encoder - blk := enc.Block() - enc.Encode(blk, src) - blk.last = final - if final { - s.eofWritten = true - } - // Wait for pending writes. - s.wWg.Wait() - if s.writeErr != nil { - s.err = s.writeErr - return - } - // Transfer encoders from previous write block. - blk.swapEncoders(s.writing) - // Transfer recent offsets to next. - enc.UseBlock(s.writing) - s.writing = blk - s.wWg.Add(1) - go func() { - defer func() { - if r := recover(); r != nil { - s.writeErr = fmt.Errorf("panic while encoding/writing: %v", r) - rdebug.PrintStack() - } - s.wWg.Done() - }() - err := errIncompressible - // If we got the exact same number of literals as input, - // assume the literals cannot be compressed. - if len(src) != len(blk.literals) || len(src) != e.o.blockSize { - err = blk.encode(src, e.o.noEntropy, !e.o.allLitEntropy) - } - switch err { - case errIncompressible: - if debug { - println("Storing incompressible block as raw") - } - blk.encodeRaw(src) - // In fast mode, we do not transfer offsets, so we don't have to deal with changing the. - case nil: - default: - s.writeErr = err - return - } - _, s.writeErr = s.w.Write(blk.output) - s.nWritten += int64(len(blk.output)) - }() - }(s.current) - return nil -} - -// ReadFrom reads data from r until EOF or error. -// The return value n is the number of bytes read. -// Any error except io.EOF encountered during the read is also returned. -// -// The Copy function uses ReaderFrom if available. -func (e *Encoder) ReadFrom(r io.Reader) (n int64, err error) { - if debug { - println("Using ReadFrom") - } - - // Flush any current writes. - if len(e.state.filling) > 0 { - if err := e.nextBlock(false); err != nil { - return 0, err - } - } - e.state.filling = e.state.filling[:e.o.blockSize] - src := e.state.filling - for { - n2, err := r.Read(src) - if e.o.crc { - _, _ = e.state.encoder.CRC().Write(src[:n2]) - } - // src is now the unfilled part... - src = src[n2:] - n += int64(n2) - switch err { - case io.EOF: - e.state.filling = e.state.filling[:len(e.state.filling)-len(src)] - if debug { - println("ReadFrom: got EOF final block:", len(e.state.filling)) - } - return n, nil - default: - if debug { - println("ReadFrom: got error:", err) - } - e.state.err = err - return n, err - case nil: - } - if len(src) > 0 { - if debug { - println("ReadFrom: got space left in source:", len(src)) - } - continue - } - err = e.nextBlock(false) - if err != nil { - return n, err - } - e.state.filling = e.state.filling[:e.o.blockSize] - src = e.state.filling - } -} - -// Flush will send the currently written data to output -// and block until everything has been written. -// This should only be used on rare occasions where pushing the currently queued data is critical. -func (e *Encoder) Flush() error { - s := &e.state - if len(s.filling) > 0 { - err := e.nextBlock(false) - if err != nil { - return err - } - } - s.wg.Wait() - s.wWg.Wait() - if s.err != nil { - return s.err - } - return s.writeErr -} - -// Close will flush the final output and close the stream. -// The function will block until everything has been written. -// The Encoder can still be re-used after calling this. -func (e *Encoder) Close() error { - s := &e.state - if s.encoder == nil { - return nil - } - err := e.nextBlock(true) - if err != nil { - return err - } - if e.state.fullFrameWritten { - return s.err - } - s.wg.Wait() - s.wWg.Wait() - - if s.err != nil { - return s.err - } - if s.writeErr != nil { - return s.writeErr - } - - // Write CRC - if e.o.crc && s.err == nil { - // heap alloc. - var tmp [4]byte - _, s.err = s.w.Write(s.encoder.AppendCRC(tmp[:0])) - s.nWritten += 4 - } - - // Add padding with content from crypto/rand.Reader - if s.err == nil && e.o.pad > 0 { - add := calcSkippableFrame(s.nWritten, int64(e.o.pad)) - frame, err := skippableFrame(s.filling[:0], add, rand.Reader) - if err != nil { - return err - } - _, s.err = s.w.Write(frame) - } - return s.err -} - -// EncodeAll will encode all input in src and append it to dst. -// This function can be called concurrently, but each call will only run on a single goroutine. -// If empty input is given, nothing is returned, unless WithZeroFrames is specified. -// Encoded blocks can be concatenated and the result will be the combined input stream. -// Data compressed with EncodeAll can be decoded with the Decoder, -// using either a stream or DecodeAll. -func (e *Encoder) EncodeAll(src, dst []byte) []byte { - if len(src) == 0 { - if e.o.fullZero { - // Add frame header. - fh := frameHeader{ - ContentSize: 0, - WindowSize: MinWindowSize, - SingleSegment: true, - // Adding a checksum would be a waste of space. - Checksum: false, - DictID: 0, - } - dst, _ = fh.appendTo(dst) - - // Write raw block as last one only. - var blk blockHeader - blk.setSize(0) - blk.setType(blockTypeRaw) - blk.setLast(true) - dst = blk.appendTo(dst) - } - return dst - } - e.init.Do(e.initialize) - enc := <-e.encoders - defer func() { - // Release encoder reference to last block. - // If a non-single block is needed the encoder will reset again. - e.encoders <- enc - }() - // Use single segments when above minimum window and below 1MB. - single := len(src) < 1<<20 && len(src) > MinWindowSize - if e.o.single != nil { - single = *e.o.single - } - fh := frameHeader{ - ContentSize: uint64(len(src)), - WindowSize: uint32(enc.WindowSize(len(src))), - SingleSegment: single, - Checksum: e.o.crc, - DictID: e.o.dict.ID(), - } - - // If less than 1MB, allocate a buffer up front. - if len(dst) == 0 && cap(dst) == 0 && len(src) < 1<<20 { - dst = make([]byte, 0, len(src)) - } - dst, err := fh.appendTo(dst) - if err != nil { - panic(err) - } - - // If we can do everything in one block, prefer that. - if len(src) <= maxCompressedBlockSize { - enc.Reset(e.o.dict, true) - // Slightly faster with no history and everything in one block. - if e.o.crc { - _, _ = enc.CRC().Write(src) - } - blk := enc.Block() - blk.last = true - if e.o.dict == nil { - enc.EncodeNoHist(blk, src) - } else { - enc.Encode(blk, src) - } - - // If we got the exact same number of literals as input, - // assume the literals cannot be compressed. - err := errIncompressible - oldout := blk.output - if len(blk.literals) != len(src) || len(src) != e.o.blockSize { - // Output directly to dst - blk.output = dst - err = blk.encode(src, e.o.noEntropy, !e.o.allLitEntropy) - } - - switch err { - case errIncompressible: - if debug { - println("Storing incompressible block as raw") - } - dst = blk.encodeRawTo(dst, src) - case nil: - dst = blk.output - default: - panic(err) - } - blk.output = oldout - } else { - enc.Reset(e.o.dict, false) - blk := enc.Block() - for len(src) > 0 { - todo := src - if len(todo) > e.o.blockSize { - todo = todo[:e.o.blockSize] - } - src = src[len(todo):] - if e.o.crc { - _, _ = enc.CRC().Write(todo) - } - blk.pushOffsets() - enc.Encode(blk, todo) - if len(src) == 0 { - blk.last = true - } - err := errIncompressible - // If we got the exact same number of literals as input, - // assume the literals cannot be compressed. - if len(blk.literals) != len(todo) || len(todo) != e.o.blockSize { - err = blk.encode(todo, e.o.noEntropy, !e.o.allLitEntropy) - } - - switch err { - case errIncompressible: - if debug { - println("Storing incompressible block as raw") - } - dst = blk.encodeRawTo(dst, todo) - blk.popOffsets() - case nil: - dst = append(dst, blk.output...) - default: - panic(err) - } - blk.reset(nil) - } - } - if e.o.crc { - dst = enc.AppendCRC(dst) - } - // Add padding with content from crypto/rand.Reader - if e.o.pad > 0 { - add := calcSkippableFrame(int64(len(dst)), int64(e.o.pad)) - dst, err = skippableFrame(dst, add, rand.Reader) - if err != nil { - panic(err) - } - } - return dst -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/encoder_options.go b/backend/vendor/github.com/klauspost/compress/zstd/encoder_options.go deleted file mode 100644 index a7312f42..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/encoder_options.go +++ /dev/null @@ -1,290 +0,0 @@ -package zstd - -import ( - "errors" - "fmt" - "runtime" - "strings" -) - -// EOption is an option for creating a encoder. -type EOption func(*encoderOptions) error - -// options retains accumulated state of multiple options. -type encoderOptions struct { - concurrent int - level EncoderLevel - single *bool - pad int - blockSize int - windowSize int - crc bool - fullZero bool - noEntropy bool - allLitEntropy bool - customWindow bool - customALEntropy bool - dict *dict -} - -func (o *encoderOptions) setDefault() { - *o = encoderOptions{ - // use less ram: true for now, but may change. - concurrent: runtime.GOMAXPROCS(0), - crc: true, - single: nil, - blockSize: 1 << 16, - windowSize: 8 << 20, - level: SpeedDefault, - allLitEntropy: true, - } -} - -// encoder returns an encoder with the selected options. -func (o encoderOptions) encoder() encoder { - switch o.level { - case SpeedDefault: - return &doubleFastEncoder{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize)}}} - case SpeedBetterCompression: - return &betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize)}} - case SpeedBestCompression: - return &bestFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize)}} - case SpeedFastest: - return &fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize)}} - } - panic("unknown compression level") -} - -// WithEncoderCRC will add CRC value to output. -// Output will be 4 bytes larger. -func WithEncoderCRC(b bool) EOption { - return func(o *encoderOptions) error { o.crc = b; return nil } -} - -// WithEncoderConcurrency will set the concurrency, -// meaning the maximum number of decoders to run concurrently. -// The value supplied must be at least 1. -// By default this will be set to GOMAXPROCS. -func WithEncoderConcurrency(n int) EOption { - return func(o *encoderOptions) error { - if n <= 0 { - return fmt.Errorf("concurrency must be at least 1") - } - o.concurrent = n - return nil - } -} - -// WithWindowSize will set the maximum allowed back-reference distance. -// The value must be a power of two between MinWindowSize and MaxWindowSize. -// A larger value will enable better compression but allocate more memory and, -// for above-default values, take considerably longer. -// The default value is determined by the compression level. -func WithWindowSize(n int) EOption { - return func(o *encoderOptions) error { - switch { - case n < MinWindowSize: - return fmt.Errorf("window size must be at least %d", MinWindowSize) - case n > MaxWindowSize: - return fmt.Errorf("window size must be at most %d", MaxWindowSize) - case (n & (n - 1)) != 0: - return errors.New("window size must be a power of 2") - } - - o.windowSize = n - o.customWindow = true - if o.blockSize > o.windowSize { - o.blockSize = o.windowSize - } - return nil - } -} - -// WithEncoderPadding will add padding to all output so the size will be a multiple of n. -// This can be used to obfuscate the exact output size or make blocks of a certain size. -// The contents will be a skippable frame, so it will be invisible by the decoder. -// n must be > 0 and <= 1GB, 1<<30 bytes. -// The padded area will be filled with data from crypto/rand.Reader. -// If `EncodeAll` is used with data already in the destination, the total size will be multiple of this. -func WithEncoderPadding(n int) EOption { - return func(o *encoderOptions) error { - if n <= 0 { - return fmt.Errorf("padding must be at least 1") - } - // No need to waste our time. - if n == 1 { - o.pad = 0 - } - if n > 1<<30 { - return fmt.Errorf("padding must less than 1GB (1<<30 bytes) ") - } - o.pad = n - return nil - } -} - -// EncoderLevel predefines encoder compression levels. -// Only use the constants made available, since the actual mapping -// of these values are very likely to change and your compression could change -// unpredictably when upgrading the library. -type EncoderLevel int - -const ( - speedNotSet EncoderLevel = iota - - // SpeedFastest will choose the fastest reasonable compression. - // This is roughly equivalent to the fastest Zstandard mode. - SpeedFastest - - // SpeedDefault is the default "pretty fast" compression option. - // This is roughly equivalent to the default Zstandard mode (level 3). - SpeedDefault - - // SpeedBetterCompression will yield better compression than the default. - // Currently it is about zstd level 7-8 with ~ 2x-3x the default CPU usage. - // By using this, notice that CPU usage may go up in the future. - SpeedBetterCompression - - // SpeedBestCompression will choose the best available compression option. - // This will offer the best compression no matter the CPU cost. - SpeedBestCompression - - // speedLast should be kept as the last actual compression option. - // The is not for external usage, but is used to keep track of the valid options. - speedLast -) - -// EncoderLevelFromString will convert a string representation of an encoding level back -// to a compression level. The compare is not case sensitive. -// If the string wasn't recognized, (false, SpeedDefault) will be returned. -func EncoderLevelFromString(s string) (bool, EncoderLevel) { - for l := speedNotSet + 1; l < speedLast; l++ { - if strings.EqualFold(s, l.String()) { - return true, l - } - } - return false, SpeedDefault -} - -// EncoderLevelFromZstd will return an encoder level that closest matches the compression -// ratio of a specific zstd compression level. -// Many input values will provide the same compression level. -func EncoderLevelFromZstd(level int) EncoderLevel { - switch { - case level < 3: - return SpeedFastest - case level >= 3 && level < 6: - return SpeedDefault - case level >= 6 && level < 10: - return SpeedBetterCompression - case level >= 10: - return SpeedBetterCompression - } - return SpeedDefault -} - -// String provides a string representation of the compression level. -func (e EncoderLevel) String() string { - switch e { - case SpeedFastest: - return "fastest" - case SpeedDefault: - return "default" - case SpeedBetterCompression: - return "better" - case SpeedBestCompression: - return "best" - default: - return "invalid" - } -} - -// WithEncoderLevel specifies a predefined compression level. -func WithEncoderLevel(l EncoderLevel) EOption { - return func(o *encoderOptions) error { - switch { - case l <= speedNotSet || l >= speedLast: - return fmt.Errorf("unknown encoder level") - } - o.level = l - if !o.customWindow { - switch o.level { - case SpeedFastest: - o.windowSize = 4 << 20 - case SpeedDefault: - o.windowSize = 8 << 20 - case SpeedBetterCompression: - o.windowSize = 16 << 20 - case SpeedBestCompression: - o.windowSize = 32 << 20 - } - } - if !o.customALEntropy { - o.allLitEntropy = l > SpeedFastest - } - - return nil - } -} - -// WithZeroFrames will encode 0 length input as full frames. -// This can be needed for compatibility with zstandard usage, -// but is not needed for this package. -func WithZeroFrames(b bool) EOption { - return func(o *encoderOptions) error { - o.fullZero = b - return nil - } -} - -// WithAllLitEntropyCompression will apply entropy compression if no matches are found. -// Disabling this will skip incompressible data faster, but in cases with no matches but -// skewed character distribution compression is lost. -// Default value depends on the compression level selected. -func WithAllLitEntropyCompression(b bool) EOption { - return func(o *encoderOptions) error { - o.customALEntropy = true - o.allLitEntropy = b - return nil - } -} - -// WithNoEntropyCompression will always skip entropy compression of literals. -// This can be useful if content has matches, but unlikely to benefit from entropy -// compression. Usually the slight speed improvement is not worth enabling this. -func WithNoEntropyCompression(b bool) EOption { - return func(o *encoderOptions) error { - o.noEntropy = b - return nil - } -} - -// WithSingleSegment will set the "single segment" flag when EncodeAll is used. -// If this flag is set, data must be regenerated within a single continuous memory segment. -// In this case, Window_Descriptor byte is skipped, but Frame_Content_Size is necessarily present. -// As a consequence, the decoder must allocate a memory segment of size equal or larger than size of your content. -// In order to preserve the decoder from unreasonable memory requirements, -// a decoder is allowed to reject a compressed frame which requests a memory size beyond decoder's authorized range. -// For broader compatibility, decoders are recommended to support memory sizes of at least 8 MB. -// This is only a recommendation, each decoder is free to support higher or lower limits, depending on local limitations. -// If this is not specified, block encodes will automatically choose this based on the input size. -// This setting has no effect on streamed encodes. -func WithSingleSegment(b bool) EOption { - return func(o *encoderOptions) error { - o.single = &b - return nil - } -} - -// WithEncoderDict allows to register a dictionary that will be used for the encode. -// The encoder *may* choose to use no dictionary instead for certain payloads. -func WithEncoderDict(dict []byte) EOption { - return func(o *encoderOptions) error { - d, err := loadDict(dict) - if err != nil { - return err - } - o.dict = d - return nil - } -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/framedec.go b/backend/vendor/github.com/klauspost/compress/zstd/framedec.go deleted file mode 100644 index fc4a566d..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/framedec.go +++ /dev/null @@ -1,494 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "bytes" - "encoding/hex" - "errors" - "hash" - "io" - "sync" - - "github.com/klauspost/compress/zstd/internal/xxhash" -) - -type frameDec struct { - o decoderOptions - crc hash.Hash64 - offset int64 - - WindowSize uint64 - - // maxWindowSize is the maximum windows size to support. - // should never be bigger than max-int. - maxWindowSize uint64 - - // In order queue of blocks being decoded. - decoding chan *blockDec - - // Frame history passed between blocks - history history - - rawInput byteBuffer - - // Byte buffer that can be reused for small input blocks. - bBuf byteBuf - - FrameContentSize uint64 - frameDone sync.WaitGroup - - DictionaryID *uint32 - HasCheckSum bool - SingleSegment bool - - // asyncRunning indicates whether the async routine processes input on 'decoding'. - asyncRunningMu sync.Mutex - asyncRunning bool -} - -const ( - // The minimum Window_Size is 1 KB. - MinWindowSize = 1 << 10 - MaxWindowSize = 1 << 29 -) - -var ( - frameMagic = []byte{0x28, 0xb5, 0x2f, 0xfd} - skippableFrameMagic = []byte{0x2a, 0x4d, 0x18} -) - -func newFrameDec(o decoderOptions) *frameDec { - d := frameDec{ - o: o, - maxWindowSize: MaxWindowSize, - } - if d.maxWindowSize > o.maxDecodedSize { - d.maxWindowSize = o.maxDecodedSize - } - return &d -} - -// reset will read the frame header and prepare for block decoding. -// If nothing can be read from the input, io.EOF will be returned. -// Any other error indicated that the stream contained data, but -// there was a problem. -func (d *frameDec) reset(br byteBuffer) error { - d.HasCheckSum = false - d.WindowSize = 0 - var b []byte - for { - b = br.readSmall(4) - if b == nil { - return io.EOF - } - if !bytes.Equal(b[1:4], skippableFrameMagic) || b[0]&0xf0 != 0x50 { - if debug { - println("Not skippable", hex.EncodeToString(b), hex.EncodeToString(skippableFrameMagic)) - } - // Break if not skippable frame. - break - } - // Read size to skip - b = br.readSmall(4) - if b == nil { - println("Reading Frame Size EOF") - return io.ErrUnexpectedEOF - } - n := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) - println("Skipping frame with", n, "bytes.") - err := br.skipN(int(n)) - if err != nil { - if debug { - println("Reading discarded frame", err) - } - return err - } - } - if !bytes.Equal(b, frameMagic) { - println("Got magic numbers: ", b, "want:", frameMagic) - return ErrMagicMismatch - } - - // Read Frame_Header_Descriptor - fhd, err := br.readByte() - if err != nil { - println("Reading Frame_Header_Descriptor", err) - return err - } - d.SingleSegment = fhd&(1<<5) != 0 - - if fhd&(1<<3) != 0 { - return errors.New("Reserved bit set on frame header") - } - - // Read Window_Descriptor - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#window_descriptor - d.WindowSize = 0 - if !d.SingleSegment { - wd, err := br.readByte() - if err != nil { - println("Reading Window_Descriptor", err) - return err - } - printf("raw: %x, mantissa: %d, exponent: %d\n", wd, wd&7, wd>>3) - windowLog := 10 + (wd >> 3) - windowBase := uint64(1) << windowLog - windowAdd := (windowBase / 8) * uint64(wd&0x7) - d.WindowSize = windowBase + windowAdd - } - - // Read Dictionary_ID - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary_id - d.DictionaryID = nil - if size := fhd & 3; size != 0 { - if size == 3 { - size = 4 - } - b = br.readSmall(int(size)) - if b == nil { - if debug { - println("Reading Dictionary_ID", io.ErrUnexpectedEOF) - } - return io.ErrUnexpectedEOF - } - var id uint32 - switch size { - case 1: - id = uint32(b[0]) - case 2: - id = uint32(b[0]) | (uint32(b[1]) << 8) - case 4: - id = uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) - } - if debug { - println("Dict size", size, "ID:", id) - } - if id > 0 { - // ID 0 means "sorry, no dictionary anyway". - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format - d.DictionaryID = &id - } - } - - // Read Frame_Content_Size - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frame_content_size - var fcsSize int - v := fhd >> 6 - switch v { - case 0: - if d.SingleSegment { - fcsSize = 1 - } - default: - fcsSize = 1 << v - } - d.FrameContentSize = 0 - if fcsSize > 0 { - b := br.readSmall(fcsSize) - if b == nil { - println("Reading Frame content", io.ErrUnexpectedEOF) - return io.ErrUnexpectedEOF - } - switch fcsSize { - case 1: - d.FrameContentSize = uint64(b[0]) - case 2: - // When FCS_Field_Size is 2, the offset of 256 is added. - d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) + 256 - case 4: - d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3]) << 24) - case 8: - d1 := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) - d2 := uint32(b[4]) | (uint32(b[5]) << 8) | (uint32(b[6]) << 16) | (uint32(b[7]) << 24) - d.FrameContentSize = uint64(d1) | (uint64(d2) << 32) - } - if debug { - println("field size bits:", v, "fcsSize:", fcsSize, "FrameContentSize:", d.FrameContentSize, hex.EncodeToString(b[:fcsSize]), "singleseg:", d.SingleSegment, "window:", d.WindowSize) - } - } - // Move this to shared. - d.HasCheckSum = fhd&(1<<2) != 0 - if d.HasCheckSum { - if d.crc == nil { - d.crc = xxhash.New() - } - d.crc.Reset() - } - - if d.WindowSize == 0 && d.SingleSegment { - // We may not need window in this case. - d.WindowSize = d.FrameContentSize - if d.WindowSize < MinWindowSize { - d.WindowSize = MinWindowSize - } - } - - if d.WindowSize > d.maxWindowSize { - printf("window size %d > max %d\n", d.WindowSize, d.maxWindowSize) - return ErrWindowSizeExceeded - } - // The minimum Window_Size is 1 KB. - if d.WindowSize < MinWindowSize { - println("got window size: ", d.WindowSize) - return ErrWindowSizeTooSmall - } - d.history.windowSize = int(d.WindowSize) - if d.o.lowMem && d.history.windowSize < maxBlockSize { - d.history.maxSize = d.history.windowSize * 2 - } else { - d.history.maxSize = d.history.windowSize + maxBlockSize - } - // history contains input - maybe we do something - d.rawInput = br - return nil -} - -// next will start decoding the next block from stream. -func (d *frameDec) next(block *blockDec) error { - if debug { - printf("decoding new block %p:%p", block, block.data) - } - err := block.reset(d.rawInput, d.WindowSize) - if err != nil { - println("block error:", err) - // Signal the frame decoder we have a problem. - d.sendErr(block, err) - return err - } - block.input <- struct{}{} - if debug { - println("next block:", block) - } - d.asyncRunningMu.Lock() - defer d.asyncRunningMu.Unlock() - if !d.asyncRunning { - return nil - } - if block.Last { - // We indicate the frame is done by sending io.EOF - d.decoding <- block - return io.EOF - } - d.decoding <- block - return nil -} - -// sendEOF will queue an error block on the frame. -// This will cause the frame decoder to return when it encounters the block. -// Returns true if the decoder was added. -func (d *frameDec) sendErr(block *blockDec, err error) bool { - d.asyncRunningMu.Lock() - defer d.asyncRunningMu.Unlock() - if !d.asyncRunning { - return false - } - - println("sending error", err.Error()) - block.sendErr(err) - d.decoding <- block - return true -} - -// checkCRC will check the checksum if the frame has one. -// Will return ErrCRCMismatch if crc check failed, otherwise nil. -func (d *frameDec) checkCRC() error { - if !d.HasCheckSum { - return nil - } - var tmp [4]byte - got := d.crc.Sum64() - // Flip to match file order. - tmp[0] = byte(got >> 0) - tmp[1] = byte(got >> 8) - tmp[2] = byte(got >> 16) - tmp[3] = byte(got >> 24) - - // We can overwrite upper tmp now - want := d.rawInput.readSmall(4) - if want == nil { - println("CRC missing?") - return io.ErrUnexpectedEOF - } - - if !bytes.Equal(tmp[:], want) { - if debug { - println("CRC Check Failed:", tmp[:], "!=", want) - } - return ErrCRCMismatch - } - if debug { - println("CRC ok", tmp[:]) - } - return nil -} - -func (d *frameDec) initAsync() { - if !d.o.lowMem && !d.SingleSegment { - // set max extra size history to 10MB. - d.history.maxSize = d.history.windowSize + maxBlockSize*5 - } - // re-alloc if more than one extra block size. - if d.o.lowMem && cap(d.history.b) > d.history.maxSize+maxBlockSize { - d.history.b = make([]byte, 0, d.history.maxSize) - } - if cap(d.history.b) < d.history.maxSize { - d.history.b = make([]byte, 0, d.history.maxSize) - } - if cap(d.decoding) < d.o.concurrent { - d.decoding = make(chan *blockDec, d.o.concurrent) - } - if debug { - h := d.history - printf("history init. len: %d, cap: %d", len(h.b), cap(h.b)) - } - d.asyncRunningMu.Lock() - d.asyncRunning = true - d.asyncRunningMu.Unlock() -} - -// startDecoder will start decoding blocks and write them to the writer. -// The decoder will stop as soon as an error occurs or at end of frame. -// When the frame has finished decoding the *bufio.Reader -// containing the remaining input will be sent on frameDec.frameDone. -func (d *frameDec) startDecoder(output chan decodeOutput) { - written := int64(0) - - defer func() { - d.asyncRunningMu.Lock() - d.asyncRunning = false - d.asyncRunningMu.Unlock() - - // Drain the currently decoding. - d.history.error = true - flushdone: - for { - select { - case b := <-d.decoding: - b.history <- &d.history - output <- <-b.result - default: - break flushdone - } - } - println("frame decoder done, signalling done") - d.frameDone.Done() - }() - // Get decoder for first block. - block := <-d.decoding - block.history <- &d.history - for { - var next *blockDec - // Get result - r := <-block.result - if r.err != nil { - println("Result contained error", r.err) - output <- r - return - } - if debug { - println("got result, from ", d.offset, "to", d.offset+int64(len(r.b))) - d.offset += int64(len(r.b)) - } - if !block.Last { - // Send history to next block - select { - case next = <-d.decoding: - if debug { - println("Sending ", len(d.history.b), "bytes as history") - } - next.history <- &d.history - default: - // Wait until we have sent the block, so - // other decoders can potentially get the decoder. - next = nil - } - } - - // Add checksum, async to decoding. - if d.HasCheckSum { - n, err := d.crc.Write(r.b) - if err != nil { - r.err = err - if n != len(r.b) { - r.err = io.ErrShortWrite - } - output <- r - return - } - } - written += int64(len(r.b)) - if d.SingleSegment && uint64(written) > d.FrameContentSize { - println("runDecoder: single segment and", uint64(written), ">", d.FrameContentSize) - r.err = ErrFrameSizeExceeded - output <- r - return - } - if block.Last { - r.err = d.checkCRC() - output <- r - return - } - output <- r - if next == nil { - // There was no decoder available, we wait for one now that we have sent to the writer. - if debug { - println("Sending ", len(d.history.b), " bytes as history") - } - next = <-d.decoding - next.history <- &d.history - } - block = next - } -} - -// runDecoder will create a sync decoder that will decode a block of data. -func (d *frameDec) runDecoder(dst []byte, dec *blockDec) ([]byte, error) { - saved := d.history.b - - // We use the history for output to avoid copying it. - d.history.b = dst - // Store input length, so we only check new data. - crcStart := len(dst) - var err error - for { - err = dec.reset(d.rawInput, d.WindowSize) - if err != nil { - break - } - if debug { - println("next block:", dec) - } - err = dec.decodeBuf(&d.history) - if err != nil || dec.Last { - break - } - if uint64(len(d.history.b)) > d.o.maxDecodedSize { - err = ErrDecoderSizeExceeded - break - } - if d.SingleSegment && uint64(len(d.history.b)) > d.o.maxDecodedSize { - println("runDecoder: single segment and", uint64(len(d.history.b)), ">", d.o.maxDecodedSize) - err = ErrFrameSizeExceeded - break - } - } - dst = d.history.b - if err == nil { - if d.HasCheckSum { - var n int - n, err = d.crc.Write(dst[crcStart:]) - if err == nil { - if n != len(dst)-crcStart { - err = io.ErrShortWrite - } else { - err = d.checkCRC() - } - } - } - } - d.history.b = saved - return dst, err -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/frameenc.go b/backend/vendor/github.com/klauspost/compress/zstd/frameenc.go deleted file mode 100644 index 4ef7f5a3..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/frameenc.go +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "encoding/binary" - "fmt" - "io" - "math" - "math/bits" -) - -type frameHeader struct { - ContentSize uint64 - WindowSize uint32 - SingleSegment bool - Checksum bool - DictID uint32 -} - -const maxHeaderSize = 14 - -func (f frameHeader) appendTo(dst []byte) ([]byte, error) { - dst = append(dst, frameMagic...) - var fhd uint8 - if f.Checksum { - fhd |= 1 << 2 - } - if f.SingleSegment { - fhd |= 1 << 5 - } - - var dictIDContent []byte - if f.DictID > 0 { - var tmp [4]byte - if f.DictID < 256 { - fhd |= 1 - tmp[0] = uint8(f.DictID) - dictIDContent = tmp[:1] - } else if f.DictID < 1<<16 { - fhd |= 2 - binary.LittleEndian.PutUint16(tmp[:2], uint16(f.DictID)) - dictIDContent = tmp[:2] - } else { - fhd |= 3 - binary.LittleEndian.PutUint32(tmp[:4], f.DictID) - dictIDContent = tmp[:4] - } - } - var fcs uint8 - if f.ContentSize >= 256 { - fcs++ - } - if f.ContentSize >= 65536+256 { - fcs++ - } - if f.ContentSize >= 0xffffffff { - fcs++ - } - - fhd |= fcs << 6 - - dst = append(dst, fhd) - if !f.SingleSegment { - const winLogMin = 10 - windowLog := (bits.Len32(f.WindowSize-1) - winLogMin) << 3 - dst = append(dst, uint8(windowLog)) - } - if f.DictID > 0 { - dst = append(dst, dictIDContent...) - } - switch fcs { - case 0: - if f.SingleSegment { - dst = append(dst, uint8(f.ContentSize)) - } - // Unless SingleSegment is set, framessizes < 256 are nto stored. - case 1: - f.ContentSize -= 256 - dst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8)) - case 2: - dst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8), uint8(f.ContentSize>>16), uint8(f.ContentSize>>24)) - case 3: - dst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8), uint8(f.ContentSize>>16), uint8(f.ContentSize>>24), - uint8(f.ContentSize>>32), uint8(f.ContentSize>>40), uint8(f.ContentSize>>48), uint8(f.ContentSize>>56)) - default: - panic("invalid fcs") - } - return dst, nil -} - -const skippableFrameHeader = 4 + 4 - -// calcSkippableFrame will return a total size to be added for written -// to be divisible by multiple. -// The value will always be > skippableFrameHeader. -// The function will panic if written < 0 or wantMultiple <= 0. -func calcSkippableFrame(written, wantMultiple int64) int { - if wantMultiple <= 0 { - panic("wantMultiple <= 0") - } - if written < 0 { - panic("written < 0") - } - leftOver := written % wantMultiple - if leftOver == 0 { - return 0 - } - toAdd := wantMultiple - leftOver - for toAdd < skippableFrameHeader { - toAdd += wantMultiple - } - return int(toAdd) -} - -// skippableFrame will add a skippable frame with a total size of bytes. -// total should be >= skippableFrameHeader and < math.MaxUint32. -func skippableFrame(dst []byte, total int, r io.Reader) ([]byte, error) { - if total == 0 { - return dst, nil - } - if total < skippableFrameHeader { - return dst, fmt.Errorf("requested skippable frame (%d) < 8", total) - } - if int64(total) > math.MaxUint32 { - return dst, fmt.Errorf("requested skippable frame (%d) > max uint32", total) - } - dst = append(dst, 0x50, 0x2a, 0x4d, 0x18) - f := uint32(total - skippableFrameHeader) - dst = append(dst, uint8(f), uint8(f>>8), uint8(f>>16), uint8(f>>24)) - start := len(dst) - dst = append(dst, make([]byte, f)...) - _, err := io.ReadFull(r, dst[start:]) - return dst, err -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/fse_decoder.go b/backend/vendor/github.com/klauspost/compress/zstd/fse_decoder.go deleted file mode 100644 index e6d3d49b..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/fse_decoder.go +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "errors" - "fmt" -) - -const ( - tablelogAbsoluteMax = 9 -) - -const ( - /*!MEMORY_USAGE : - * Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) - * Increasing memory usage improves compression ratio - * Reduced memory usage can improve speed, due to cache effect - * Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ - maxMemoryUsage = tablelogAbsoluteMax + 2 - - maxTableLog = maxMemoryUsage - 2 - maxTablesize = 1 << maxTableLog - maxTableMask = (1 << maxTableLog) - 1 - minTablelog = 5 - maxSymbolValue = 255 -) - -// fseDecoder provides temporary storage for compression and decompression. -type fseDecoder struct { - dt [maxTablesize]decSymbol // Decompression table. - symbolLen uint16 // Length of active part of the symbol table. - actualTableLog uint8 // Selected tablelog. - maxBits uint8 // Maximum number of additional bits - - // used for table creation to avoid allocations. - stateTable [256]uint16 - norm [maxSymbolValue + 1]int16 - preDefined bool -} - -// tableStep returns the next table index. -func tableStep(tableSize uint32) uint32 { - return (tableSize >> 1) + (tableSize >> 3) + 3 -} - -// readNCount will read the symbol distribution so decoding tables can be constructed. -func (s *fseDecoder) readNCount(b *byteReader, maxSymbol uint16) error { - var ( - charnum uint16 - previous0 bool - ) - if b.remain() < 4 { - return errors.New("input too small") - } - bitStream := b.Uint32NC() - nbBits := uint((bitStream & 0xF) + minTablelog) // extract tableLog - if nbBits > tablelogAbsoluteMax { - println("Invalid tablelog:", nbBits) - return errors.New("tableLog too large") - } - bitStream >>= 4 - bitCount := uint(4) - - s.actualTableLog = uint8(nbBits) - remaining := int32((1 << nbBits) + 1) - threshold := int32(1 << nbBits) - gotTotal := int32(0) - nbBits++ - - for remaining > 1 && charnum <= maxSymbol { - if previous0 { - //println("prev0") - n0 := charnum - for (bitStream & 0xFFFF) == 0xFFFF { - //println("24 x 0") - n0 += 24 - if r := b.remain(); r > 5 { - b.advance(2) - // The check above should make sure we can read 32 bits - bitStream = b.Uint32NC() >> bitCount - } else { - // end of bit stream - bitStream >>= 16 - bitCount += 16 - } - } - //printf("bitstream: %d, 0b%b", bitStream&3, bitStream) - for (bitStream & 3) == 3 { - n0 += 3 - bitStream >>= 2 - bitCount += 2 - } - n0 += uint16(bitStream & 3) - bitCount += 2 - - if n0 > maxSymbolValue { - return errors.New("maxSymbolValue too small") - } - //println("inserting ", n0-charnum, "zeroes from idx", charnum, "ending before", n0) - for charnum < n0 { - s.norm[uint8(charnum)] = 0 - charnum++ - } - - if r := b.remain(); r >= 7 || r-int(bitCount>>3) >= 4 { - b.advance(bitCount >> 3) - bitCount &= 7 - // The check above should make sure we can read 32 bits - bitStream = b.Uint32NC() >> bitCount - } else { - bitStream >>= 2 - } - } - - max := (2*threshold - 1) - remaining - var count int32 - - if int32(bitStream)&(threshold-1) < max { - count = int32(bitStream) & (threshold - 1) - if debugAsserts && nbBits < 1 { - panic("nbBits underflow") - } - bitCount += nbBits - 1 - } else { - count = int32(bitStream) & (2*threshold - 1) - if count >= threshold { - count -= max - } - bitCount += nbBits - } - - // extra accuracy - count-- - if count < 0 { - // -1 means +1 - remaining += count - gotTotal -= count - } else { - remaining -= count - gotTotal += count - } - s.norm[charnum&0xff] = int16(count) - charnum++ - previous0 = count == 0 - for remaining < threshold { - nbBits-- - threshold >>= 1 - } - - if r := b.remain(); r >= 7 || r-int(bitCount>>3) >= 4 { - b.advance(bitCount >> 3) - bitCount &= 7 - // The check above should make sure we can read 32 bits - bitStream = b.Uint32NC() >> (bitCount & 31) - } else { - bitCount -= (uint)(8 * (len(b.b) - 4 - b.off)) - b.off = len(b.b) - 4 - bitStream = b.Uint32() >> (bitCount & 31) - } - } - s.symbolLen = charnum - if s.symbolLen <= 1 { - return fmt.Errorf("symbolLen (%d) too small", s.symbolLen) - } - if s.symbolLen > maxSymbolValue+1 { - return fmt.Errorf("symbolLen (%d) too big", s.symbolLen) - } - if remaining != 1 { - return fmt.Errorf("corruption detected (remaining %d != 1)", remaining) - } - if bitCount > 32 { - return fmt.Errorf("corruption detected (bitCount %d > 32)", bitCount) - } - if gotTotal != 1<> 3) - // println(s.norm[:s.symbolLen], s.symbolLen) - return s.buildDtable() -} - -// decSymbol contains information about a state entry, -// Including the state offset base, the output symbol and -// the number of bits to read for the low part of the destination state. -// Using a composite uint64 is faster than a struct with separate members. -type decSymbol uint64 - -func newDecSymbol(nbits, addBits uint8, newState uint16, baseline uint32) decSymbol { - return decSymbol(nbits) | (decSymbol(addBits) << 8) | (decSymbol(newState) << 16) | (decSymbol(baseline) << 32) -} - -func (d decSymbol) nbBits() uint8 { - return uint8(d) -} - -func (d decSymbol) addBits() uint8 { - return uint8(d >> 8) -} - -func (d decSymbol) newState() uint16 { - return uint16(d >> 16) -} - -func (d decSymbol) baseline() uint32 { - return uint32(d >> 32) -} - -func (d decSymbol) baselineInt() int { - return int(d >> 32) -} - -func (d *decSymbol) set(nbits, addBits uint8, newState uint16, baseline uint32) { - *d = decSymbol(nbits) | (decSymbol(addBits) << 8) | (decSymbol(newState) << 16) | (decSymbol(baseline) << 32) -} - -func (d *decSymbol) setNBits(nBits uint8) { - const mask = 0xffffffffffffff00 - *d = (*d & mask) | decSymbol(nBits) -} - -func (d *decSymbol) setAddBits(addBits uint8) { - const mask = 0xffffffffffff00ff - *d = (*d & mask) | (decSymbol(addBits) << 8) -} - -func (d *decSymbol) setNewState(state uint16) { - const mask = 0xffffffff0000ffff - *d = (*d & mask) | decSymbol(state)<<16 -} - -func (d *decSymbol) setBaseline(baseline uint32) { - const mask = 0xffffffff - *d = (*d & mask) | decSymbol(baseline)<<32 -} - -func (d *decSymbol) setExt(addBits uint8, baseline uint32) { - const mask = 0xffff00ff - *d = (*d & mask) | (decSymbol(addBits) << 8) | (decSymbol(baseline) << 32) -} - -// decSymbolValue returns the transformed decSymbol for the given symbol. -func decSymbolValue(symb uint8, t []baseOffset) (decSymbol, error) { - if int(symb) >= len(t) { - return 0, fmt.Errorf("rle symbol %d >= max %d", symb, len(t)) - } - lu := t[symb] - return newDecSymbol(0, lu.addBits, 0, lu.baseLine), nil -} - -// setRLE will set the decoder til RLE mode. -func (s *fseDecoder) setRLE(symbol decSymbol) { - s.actualTableLog = 0 - s.maxBits = symbol.addBits() - s.dt[0] = symbol -} - -// buildDtable will build the decoding table. -func (s *fseDecoder) buildDtable() error { - tableSize := uint32(1 << s.actualTableLog) - highThreshold := tableSize - 1 - symbolNext := s.stateTable[:256] - - // Init, lay down lowprob symbols - { - for i, v := range s.norm[:s.symbolLen] { - if v == -1 { - s.dt[highThreshold].setAddBits(uint8(i)) - highThreshold-- - symbolNext[i] = 1 - } else { - symbolNext[i] = uint16(v) - } - } - } - // Spread symbols - { - tableMask := tableSize - 1 - step := tableStep(tableSize) - position := uint32(0) - for ss, v := range s.norm[:s.symbolLen] { - for i := 0; i < int(v); i++ { - s.dt[position].setAddBits(uint8(ss)) - position = (position + step) & tableMask - for position > highThreshold { - // lowprob area - position = (position + step) & tableMask - } - } - } - if position != 0 { - // position must reach all cells once, otherwise normalizedCounter is incorrect - return errors.New("corrupted input (position != 0)") - } - } - - // Build Decoding table - { - tableSize := uint16(1 << s.actualTableLog) - for u, v := range s.dt[:tableSize] { - symbol := v.addBits() - nextState := symbolNext[symbol] - symbolNext[symbol] = nextState + 1 - nBits := s.actualTableLog - byte(highBits(uint32(nextState))) - s.dt[u&maxTableMask].setNBits(nBits) - newState := (nextState << nBits) - tableSize - if newState > tableSize { - return fmt.Errorf("newState (%d) outside table size (%d)", newState, tableSize) - } - if newState == uint16(u) && nBits == 0 { - // Seems weird that this is possible with nbits > 0. - return fmt.Errorf("newState (%d) == oldState (%d) and no bits", newState, u) - } - s.dt[u&maxTableMask].setNewState(newState) - } - } - return nil -} - -// transform will transform the decoder table into a table usable for -// decoding without having to apply the transformation while decoding. -// The state will contain the base value and the number of bits to read. -func (s *fseDecoder) transform(t []baseOffset) error { - tableSize := uint16(1 << s.actualTableLog) - s.maxBits = 0 - for i, v := range s.dt[:tableSize] { - add := v.addBits() - if int(add) >= len(t) { - return fmt.Errorf("invalid decoding table entry %d, symbol %d >= max (%d)", i, v.addBits(), len(t)) - } - lu := t[add] - if lu.addBits > s.maxBits { - s.maxBits = lu.addBits - } - v.setExt(lu.addBits, lu.baseLine) - s.dt[i] = v - } - return nil -} - -type fseState struct { - dt []decSymbol - state decSymbol -} - -// Initialize and decodeAsync first state and symbol. -func (s *fseState) init(br *bitReader, tableLog uint8, dt []decSymbol) { - s.dt = dt - br.fill() - s.state = dt[br.getBits(tableLog)] -} - -// next returns the current symbol and sets the next state. -// At least tablelog bits must be available in the bit reader. -func (s *fseState) next(br *bitReader) { - lowBits := uint16(br.getBits(s.state.nbBits())) - s.state = s.dt[s.state.newState()+lowBits] -} - -// finished returns true if all bits have been read from the bitstream -// and the next state would require reading bits from the input. -func (s *fseState) finished(br *bitReader) bool { - return br.finished() && s.state.nbBits() > 0 -} - -// final returns the current state symbol without decoding the next. -func (s *fseState) final() (int, uint8) { - return s.state.baselineInt(), s.state.addBits() -} - -// final returns the current state symbol without decoding the next. -func (s decSymbol) final() (int, uint8) { - return s.baselineInt(), s.addBits() -} - -// nextFast returns the next symbol and sets the next state. -// This can only be used if no symbols are 0 bits. -// At least tablelog bits must be available in the bit reader. -func (s *fseState) nextFast(br *bitReader) (uint32, uint8) { - lowBits := uint16(br.getBitsFast(s.state.nbBits())) - s.state = s.dt[s.state.newState()+lowBits] - return s.state.baseline(), s.state.addBits() -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/fse_encoder.go b/backend/vendor/github.com/klauspost/compress/zstd/fse_encoder.go deleted file mode 100644 index aa9eba88..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/fse_encoder.go +++ /dev/null @@ -1,726 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "errors" - "fmt" - "math" -) - -const ( - // For encoding we only support up to - maxEncTableLog = 8 - maxEncTablesize = 1 << maxTableLog - maxEncTableMask = (1 << maxTableLog) - 1 - minEncTablelog = 5 - maxEncSymbolValue = maxMatchLengthSymbol -) - -// Scratch provides temporary storage for compression and decompression. -type fseEncoder struct { - symbolLen uint16 // Length of active part of the symbol table. - actualTableLog uint8 // Selected tablelog. - ct cTable // Compression tables. - maxCount int // count of the most probable symbol - zeroBits bool // no bits has prob > 50%. - clearCount bool // clear count - useRLE bool // This encoder is for RLE - preDefined bool // This encoder is predefined. - reUsed bool // Set to know when the encoder has been reused. - rleVal uint8 // RLE Symbol - maxBits uint8 // Maximum output bits after transform. - - // TODO: Technically zstd should be fine with 64 bytes. - count [256]uint32 - norm [256]int16 -} - -// cTable contains tables used for compression. -type cTable struct { - tableSymbol []byte - stateTable []uint16 - symbolTT []symbolTransform -} - -// symbolTransform contains the state transform for a symbol. -type symbolTransform struct { - deltaNbBits uint32 - deltaFindState int16 - outBits uint8 -} - -// String prints values as a human readable string. -func (s symbolTransform) String() string { - return fmt.Sprintf("{deltabits: %08x, findstate:%d outbits:%d}", s.deltaNbBits, s.deltaFindState, s.outBits) -} - -// Histogram allows to populate the histogram and skip that step in the compression, -// It otherwise allows to inspect the histogram when compression is done. -// To indicate that you have populated the histogram call HistogramFinished -// with the value of the highest populated symbol, as well as the number of entries -// in the most populated entry. These are accepted at face value. -// The returned slice will always be length 256. -func (s *fseEncoder) Histogram() []uint32 { - return s.count[:] -} - -// HistogramFinished can be called to indicate that the histogram has been populated. -// maxSymbol is the index of the highest set symbol of the next data segment. -// maxCount is the number of entries in the most populated entry. -// These are accepted at face value. -func (s *fseEncoder) HistogramFinished(maxSymbol uint8, maxCount int) { - s.maxCount = maxCount - s.symbolLen = uint16(maxSymbol) + 1 - s.clearCount = maxCount != 0 -} - -// prepare will prepare and allocate scratch tables used for both compression and decompression. -func (s *fseEncoder) prepare() (*fseEncoder, error) { - if s == nil { - s = &fseEncoder{} - } - s.useRLE = false - if s.clearCount && s.maxCount == 0 { - for i := range s.count { - s.count[i] = 0 - } - s.clearCount = false - } - return s, nil -} - -// allocCtable will allocate tables needed for compression. -// If existing tables a re big enough, they are simply re-used. -func (s *fseEncoder) allocCtable() { - tableSize := 1 << s.actualTableLog - // get tableSymbol that is big enough. - if cap(s.ct.tableSymbol) < int(tableSize) { - s.ct.tableSymbol = make([]byte, tableSize) - } - s.ct.tableSymbol = s.ct.tableSymbol[:tableSize] - - ctSize := tableSize - if cap(s.ct.stateTable) < ctSize { - s.ct.stateTable = make([]uint16, ctSize) - } - s.ct.stateTable = s.ct.stateTable[:ctSize] - - if cap(s.ct.symbolTT) < 256 { - s.ct.symbolTT = make([]symbolTransform, 256) - } - s.ct.symbolTT = s.ct.symbolTT[:256] -} - -// buildCTable will populate the compression table so it is ready to be used. -func (s *fseEncoder) buildCTable() error { - tableSize := uint32(1 << s.actualTableLog) - highThreshold := tableSize - 1 - var cumul [256]int16 - - s.allocCtable() - tableSymbol := s.ct.tableSymbol[:tableSize] - // symbol start positions - { - cumul[0] = 0 - for ui, v := range s.norm[:s.symbolLen-1] { - u := byte(ui) // one less than reference - if v == -1 { - // Low proba symbol - cumul[u+1] = cumul[u] + 1 - tableSymbol[highThreshold] = u - highThreshold-- - } else { - cumul[u+1] = cumul[u] + v - } - } - // Encode last symbol separately to avoid overflowing u - u := int(s.symbolLen - 1) - v := s.norm[s.symbolLen-1] - if v == -1 { - // Low proba symbol - cumul[u+1] = cumul[u] + 1 - tableSymbol[highThreshold] = byte(u) - highThreshold-- - } else { - cumul[u+1] = cumul[u] + v - } - if uint32(cumul[s.symbolLen]) != tableSize { - return fmt.Errorf("internal error: expected cumul[s.symbolLen] (%d) == tableSize (%d)", cumul[s.symbolLen], tableSize) - } - cumul[s.symbolLen] = int16(tableSize) + 1 - } - // Spread symbols - s.zeroBits = false - { - step := tableStep(tableSize) - tableMask := tableSize - 1 - var position uint32 - // if any symbol > largeLimit, we may have 0 bits output. - largeLimit := int16(1 << (s.actualTableLog - 1)) - for ui, v := range s.norm[:s.symbolLen] { - symbol := byte(ui) - if v > largeLimit { - s.zeroBits = true - } - for nbOccurrences := int16(0); nbOccurrences < v; nbOccurrences++ { - tableSymbol[position] = symbol - position = (position + step) & tableMask - for position > highThreshold { - position = (position + step) & tableMask - } /* Low proba area */ - } - } - - // Check if we have gone through all positions - if position != 0 { - return errors.New("position!=0") - } - } - - // Build table - table := s.ct.stateTable - { - tsi := int(tableSize) - for u, v := range tableSymbol { - // TableU16 : sorted by symbol order; gives next state value - table[cumul[v]] = uint16(tsi + u) - cumul[v]++ - } - } - - // Build Symbol Transformation Table - { - total := int16(0) - symbolTT := s.ct.symbolTT[:s.symbolLen] - tableLog := s.actualTableLog - tl := (uint32(tableLog) << 16) - (1 << tableLog) - for i, v := range s.norm[:s.symbolLen] { - switch v { - case 0: - case -1, 1: - symbolTT[i].deltaNbBits = tl - symbolTT[i].deltaFindState = int16(total - 1) - total++ - default: - maxBitsOut := uint32(tableLog) - highBit(uint32(v-1)) - minStatePlus := uint32(v) << maxBitsOut - symbolTT[i].deltaNbBits = (maxBitsOut << 16) - minStatePlus - symbolTT[i].deltaFindState = int16(total - v) - total += v - } - } - if total != int16(tableSize) { - return fmt.Errorf("total mismatch %d (got) != %d (want)", total, tableSize) - } - } - return nil -} - -var rtbTable = [...]uint32{0, 473195, 504333, 520860, 550000, 700000, 750000, 830000} - -func (s *fseEncoder) setRLE(val byte) { - s.allocCtable() - s.actualTableLog = 0 - s.ct.stateTable = s.ct.stateTable[:1] - s.ct.symbolTT[val] = symbolTransform{ - deltaFindState: 0, - deltaNbBits: 0, - } - if debug { - println("setRLE: val", val, "symbolTT", s.ct.symbolTT[val]) - } - s.rleVal = val - s.useRLE = true -} - -// setBits will set output bits for the transform. -// if nil is provided, the number of bits is equal to the index. -func (s *fseEncoder) setBits(transform []byte) { - if s.reUsed || s.preDefined { - return - } - if s.useRLE { - if transform == nil { - s.ct.symbolTT[s.rleVal].outBits = s.rleVal - s.maxBits = s.rleVal - return - } - s.maxBits = transform[s.rleVal] - s.ct.symbolTT[s.rleVal].outBits = s.maxBits - return - } - if transform == nil { - for i := range s.ct.symbolTT[:s.symbolLen] { - s.ct.symbolTT[i].outBits = uint8(i) - } - s.maxBits = uint8(s.symbolLen - 1) - return - } - s.maxBits = 0 - for i, v := range transform[:s.symbolLen] { - s.ct.symbolTT[i].outBits = v - if v > s.maxBits { - // We could assume bits always going up, but we play safe. - s.maxBits = v - } - } -} - -// normalizeCount will normalize the count of the symbols so -// the total is equal to the table size. -// If successful, compression tables will also be made ready. -func (s *fseEncoder) normalizeCount(length int) error { - if s.reUsed { - return nil - } - s.optimalTableLog(length) - var ( - tableLog = s.actualTableLog - scale = 62 - uint64(tableLog) - step = (1 << 62) / uint64(length) - vStep = uint64(1) << (scale - 20) - stillToDistribute = int16(1 << tableLog) - largest int - largestP int16 - lowThreshold = (uint32)(length >> tableLog) - ) - if s.maxCount == length { - s.useRLE = true - return nil - } - s.useRLE = false - for i, cnt := range s.count[:s.symbolLen] { - // already handled - // if (count[s] == s.length) return 0; /* rle special case */ - - if cnt == 0 { - s.norm[i] = 0 - continue - } - if cnt <= lowThreshold { - s.norm[i] = -1 - stillToDistribute-- - } else { - proba := (int16)((uint64(cnt) * step) >> scale) - if proba < 8 { - restToBeat := vStep * uint64(rtbTable[proba]) - v := uint64(cnt)*step - (uint64(proba) << scale) - if v > restToBeat { - proba++ - } - } - if proba > largestP { - largestP = proba - largest = i - } - s.norm[i] = proba - stillToDistribute -= proba - } - } - - if -stillToDistribute >= (s.norm[largest] >> 1) { - // corner case, need another normalization method - err := s.normalizeCount2(length) - if err != nil { - return err - } - if debugAsserts { - err = s.validateNorm() - if err != nil { - return err - } - } - return s.buildCTable() - } - s.norm[largest] += stillToDistribute - if debugAsserts { - err := s.validateNorm() - if err != nil { - return err - } - } - return s.buildCTable() -} - -// Secondary normalization method. -// To be used when primary method fails. -func (s *fseEncoder) normalizeCount2(length int) error { - const notYetAssigned = -2 - var ( - distributed uint32 - total = uint32(length) - tableLog = s.actualTableLog - lowThreshold = uint32(total >> tableLog) - lowOne = uint32((total * 3) >> (tableLog + 1)) - ) - for i, cnt := range s.count[:s.symbolLen] { - if cnt == 0 { - s.norm[i] = 0 - continue - } - if cnt <= lowThreshold { - s.norm[i] = -1 - distributed++ - total -= cnt - continue - } - if cnt <= lowOne { - s.norm[i] = 1 - distributed++ - total -= cnt - continue - } - s.norm[i] = notYetAssigned - } - toDistribute := (1 << tableLog) - distributed - - if (total / toDistribute) > lowOne { - // risk of rounding to zero - lowOne = uint32((total * 3) / (toDistribute * 2)) - for i, cnt := range s.count[:s.symbolLen] { - if (s.norm[i] == notYetAssigned) && (cnt <= lowOne) { - s.norm[i] = 1 - distributed++ - total -= cnt - continue - } - } - toDistribute = (1 << tableLog) - distributed - } - if distributed == uint32(s.symbolLen)+1 { - // all values are pretty poor; - // probably incompressible data (should have already been detected); - // find max, then give all remaining points to max - var maxV int - var maxC uint32 - for i, cnt := range s.count[:s.symbolLen] { - if cnt > maxC { - maxV = i - maxC = cnt - } - } - s.norm[maxV] += int16(toDistribute) - return nil - } - - if total == 0 { - // all of the symbols were low enough for the lowOne or lowThreshold - for i := uint32(0); toDistribute > 0; i = (i + 1) % (uint32(s.symbolLen)) { - if s.norm[i] > 0 { - toDistribute-- - s.norm[i]++ - } - } - return nil - } - - var ( - vStepLog = 62 - uint64(tableLog) - mid = uint64((1 << (vStepLog - 1)) - 1) - rStep = (((1 << vStepLog) * uint64(toDistribute)) + mid) / uint64(total) // scale on remaining - tmpTotal = mid - ) - for i, cnt := range s.count[:s.symbolLen] { - if s.norm[i] == notYetAssigned { - var ( - end = tmpTotal + uint64(cnt)*rStep - sStart = uint32(tmpTotal >> vStepLog) - sEnd = uint32(end >> vStepLog) - weight = sEnd - sStart - ) - if weight < 1 { - return errors.New("weight < 1") - } - s.norm[i] = int16(weight) - tmpTotal = end - } - } - return nil -} - -// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog -func (s *fseEncoder) optimalTableLog(length int) { - tableLog := uint8(maxEncTableLog) - minBitsSrc := highBit(uint32(length)) + 1 - minBitsSymbols := highBit(uint32(s.symbolLen-1)) + 2 - minBits := uint8(minBitsSymbols) - if minBitsSrc < minBitsSymbols { - minBits = uint8(minBitsSrc) - } - - maxBitsSrc := uint8(highBit(uint32(length-1))) - 2 - if maxBitsSrc < tableLog { - // Accuracy can be reduced - tableLog = maxBitsSrc - } - if minBits > tableLog { - tableLog = minBits - } - // Need a minimum to safely represent all symbol values - if tableLog < minEncTablelog { - tableLog = minEncTablelog - } - if tableLog > maxEncTableLog { - tableLog = maxEncTableLog - } - s.actualTableLog = tableLog -} - -// validateNorm validates the normalized histogram table. -func (s *fseEncoder) validateNorm() (err error) { - var total int - for _, v := range s.norm[:s.symbolLen] { - if v >= 0 { - total += int(v) - } else { - total -= int(v) - } - } - defer func() { - if err == nil { - return - } - fmt.Printf("selected TableLog: %d, Symbol length: %d\n", s.actualTableLog, s.symbolLen) - for i, v := range s.norm[:s.symbolLen] { - fmt.Printf("%3d: %5d -> %4d \n", i, s.count[i], v) - } - }() - if total != (1 << s.actualTableLog) { - return fmt.Errorf("warning: Total == %d != %d", total, 1<> 3) + 3 + 2 - - // Write Table Size - bitStream = uint32(tableLog - minEncTablelog) - bitCount = uint(4) - remaining = int16(tableSize + 1) /* +1 for extra accuracy */ - threshold = int16(tableSize) - nbBits = uint(tableLog + 1) - outP = len(out) - ) - if cap(out) < outP+maxHeaderSize { - out = append(out, make([]byte, maxHeaderSize*3)...) - out = out[:len(out)-maxHeaderSize*3] - } - out = out[:outP+maxHeaderSize] - - // stops at 1 - for remaining > 1 { - if previous0 { - start := charnum - for s.norm[charnum] == 0 { - charnum++ - } - for charnum >= start+24 { - start += 24 - bitStream += uint32(0xFFFF) << bitCount - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += 2 - bitStream >>= 16 - } - for charnum >= start+3 { - start += 3 - bitStream += 3 << bitCount - bitCount += 2 - } - bitStream += uint32(charnum-start) << bitCount - bitCount += 2 - if bitCount > 16 { - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += 2 - bitStream >>= 16 - bitCount -= 16 - } - } - - count := s.norm[charnum] - charnum++ - max := (2*threshold - 1) - remaining - if count < 0 { - remaining += count - } else { - remaining -= count - } - count++ // +1 for extra accuracy - if count >= threshold { - count += max // [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ - } - bitStream += uint32(count) << bitCount - bitCount += nbBits - if count < max { - bitCount-- - } - - previous0 = count == 1 - if remaining < 1 { - return nil, errors.New("internal error: remaining < 1") - } - for remaining < threshold { - nbBits-- - threshold >>= 1 - } - - if bitCount > 16 { - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += 2 - bitStream >>= 16 - bitCount -= 16 - } - } - - if outP+2 > len(out) { - return nil, fmt.Errorf("internal error: %d > %d, maxheader: %d, sl: %d, tl: %d, normcount: %v", outP+2, len(out), maxHeaderSize, s.symbolLen, int(tableLog), s.norm[:s.symbolLen]) - } - out[outP] = byte(bitStream) - out[outP+1] = byte(bitStream >> 8) - outP += int((bitCount + 7) / 8) - - if charnum > s.symbolLen { - return nil, errors.New("internal error: charnum > s.symbolLen") - } - return out[:outP], nil -} - -// Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits) -// note 1 : assume symbolValue is valid (<= maxSymbolValue) -// note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits * -func (s *fseEncoder) bitCost(symbolValue uint8, accuracyLog uint32) uint32 { - minNbBits := s.ct.symbolTT[symbolValue].deltaNbBits >> 16 - threshold := (minNbBits + 1) << 16 - if debugAsserts { - if !(s.actualTableLog < 16) { - panic("!s.actualTableLog < 16") - } - // ensure enough room for renormalization double shift - if !(uint8(accuracyLog) < 31-s.actualTableLog) { - panic("!uint8(accuracyLog) < 31-s.actualTableLog") - } - } - tableSize := uint32(1) << s.actualTableLog - deltaFromThreshold := threshold - (s.ct.symbolTT[symbolValue].deltaNbBits + tableSize) - // linear interpolation (very approximate) - normalizedDeltaFromThreshold := (deltaFromThreshold << accuracyLog) >> s.actualTableLog - bitMultiplier := uint32(1) << accuracyLog - if debugAsserts { - if s.ct.symbolTT[symbolValue].deltaNbBits+tableSize > threshold { - panic("s.ct.symbolTT[symbolValue].deltaNbBits+tableSize > threshold") - } - if normalizedDeltaFromThreshold > bitMultiplier { - panic("normalizedDeltaFromThreshold > bitMultiplier") - } - } - return (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold -} - -// Returns the cost in bits of encoding the distribution in count using ctable. -// Histogram should only be up to the last non-zero symbol. -// Returns an -1 if ctable cannot represent all the symbols in count. -func (s *fseEncoder) approxSize(hist []uint32) uint32 { - if int(s.symbolLen) < len(hist) { - // More symbols than we have. - return math.MaxUint32 - } - if s.useRLE { - // We will never reuse RLE encoders. - return math.MaxUint32 - } - const kAccuracyLog = 8 - badCost := (uint32(s.actualTableLog) + 1) << kAccuracyLog - var cost uint32 - for i, v := range hist { - if v == 0 { - continue - } - if s.norm[i] == 0 { - return math.MaxUint32 - } - bitCost := s.bitCost(uint8(i), kAccuracyLog) - if bitCost > badCost { - return math.MaxUint32 - } - cost += v * bitCost - } - return cost >> kAccuracyLog -} - -// maxHeaderSize returns the maximum header size in bits. -// This is not exact size, but we want a penalty for new tables anyway. -func (s *fseEncoder) maxHeaderSize() uint32 { - if s.preDefined { - return 0 - } - if s.useRLE { - return 8 - } - return (((uint32(s.symbolLen) * uint32(s.actualTableLog)) >> 3) + 3) * 8 -} - -// cState contains the compression state of a stream. -type cState struct { - bw *bitWriter - stateTable []uint16 - state uint16 -} - -// init will initialize the compression state to the first symbol of the stream. -func (c *cState) init(bw *bitWriter, ct *cTable, first symbolTransform) { - c.bw = bw - c.stateTable = ct.stateTable - if len(c.stateTable) == 1 { - // RLE - c.stateTable[0] = uint16(0) - c.state = 0 - return - } - nbBitsOut := (first.deltaNbBits + (1 << 15)) >> 16 - im := int32((nbBitsOut << 16) - first.deltaNbBits) - lu := (im >> nbBitsOut) + int32(first.deltaFindState) - c.state = c.stateTable[lu] - return -} - -// encode the output symbol provided and write it to the bitstream. -func (c *cState) encode(symbolTT symbolTransform) { - nbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16 - dstState := int32(c.state>>(nbBitsOut&15)) + int32(symbolTT.deltaFindState) - c.bw.addBits16NC(c.state, uint8(nbBitsOut)) - c.state = c.stateTable[dstState] -} - -// flush will write the tablelog to the output and flush the remaining full bytes. -func (c *cState) flush(tableLog uint8) { - c.bw.flush32() - c.bw.addBits16NC(c.state, tableLog) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/fse_predefined.go b/backend/vendor/github.com/klauspost/compress/zstd/fse_predefined.go deleted file mode 100644 index 6c17dc17..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/fse_predefined.go +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "fmt" - "math" - "sync" -) - -var ( - // fsePredef are the predefined fse tables as defined here: - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions - // These values are already transformed. - fsePredef [3]fseDecoder - - // fsePredefEnc are the predefined encoder based on fse tables as defined here: - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions - // These values are already transformed. - fsePredefEnc [3]fseEncoder - - // symbolTableX contain the transformations needed for each type as defined in - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets - symbolTableX [3][]baseOffset - - // maxTableSymbol is the biggest supported symbol for each table type - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets - maxTableSymbol = [3]uint8{tableLiteralLengths: maxLiteralLengthSymbol, tableOffsets: maxOffsetLengthSymbol, tableMatchLengths: maxMatchLengthSymbol} - - // bitTables is the bits table for each table. - bitTables = [3][]byte{tableLiteralLengths: llBitsTable[:], tableOffsets: nil, tableMatchLengths: mlBitsTable[:]} -) - -type tableIndex uint8 - -const ( - // indexes for fsePredef and symbolTableX - tableLiteralLengths tableIndex = 0 - tableOffsets tableIndex = 1 - tableMatchLengths tableIndex = 2 - - maxLiteralLengthSymbol = 35 - maxOffsetLengthSymbol = 30 - maxMatchLengthSymbol = 52 -) - -// baseOffset is used for calculating transformations. -type baseOffset struct { - baseLine uint32 - addBits uint8 -} - -// fillBase will precalculate base offsets with the given bit distributions. -func fillBase(dst []baseOffset, base uint32, bits ...uint8) { - if len(bits) != len(dst) { - panic(fmt.Sprintf("len(dst) (%d) != len(bits) (%d)", len(dst), len(bits))) - } - for i, bit := range bits { - if base > math.MaxInt32 { - panic(fmt.Sprintf("invalid decoding table, base overflows int32")) - } - - dst[i] = baseOffset{ - baseLine: base, - addBits: bit, - } - base += 1 << bit - } -} - -var predef sync.Once - -func initPredefined() { - predef.Do(func() { - // Literals length codes - tmp := make([]baseOffset, 36) - for i := range tmp[:16] { - tmp[i] = baseOffset{ - baseLine: uint32(i), - addBits: 0, - } - } - fillBase(tmp[16:], 16, 1, 1, 1, 1, 2, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) - symbolTableX[tableLiteralLengths] = tmp - - // Match length codes - tmp = make([]baseOffset, 53) - for i := range tmp[:32] { - tmp[i] = baseOffset{ - // The transformation adds the 3 length. - baseLine: uint32(i) + 3, - addBits: 0, - } - } - fillBase(tmp[32:], 35, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) - symbolTableX[tableMatchLengths] = tmp - - // Offset codes - tmp = make([]baseOffset, maxOffsetBits+1) - tmp[1] = baseOffset{ - baseLine: 1, - addBits: 1, - } - fillBase(tmp[2:], 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) - symbolTableX[tableOffsets] = tmp - - // Fill predefined tables and transform them. - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions - for i := range fsePredef[:] { - f := &fsePredef[i] - switch tableIndex(i) { - case tableLiteralLengths: - // https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L243 - f.actualTableLog = 6 - copy(f.norm[:], []int16{4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, - -1, -1, -1, -1}) - f.symbolLen = 36 - case tableOffsets: - // https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L281 - f.actualTableLog = 5 - copy(f.norm[:], []int16{ - 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1}) - f.symbolLen = 29 - case tableMatchLengths: - //https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L304 - f.actualTableLog = 6 - copy(f.norm[:], []int16{ - 1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, - -1, -1, -1, -1, -1}) - f.symbolLen = 53 - } - if err := f.buildDtable(); err != nil { - panic(fmt.Errorf("building table %v: %v", tableIndex(i), err)) - } - if err := f.transform(symbolTableX[i]); err != nil { - panic(fmt.Errorf("building table %v: %v", tableIndex(i), err)) - } - f.preDefined = true - - // Create encoder as well - enc := &fsePredefEnc[i] - copy(enc.norm[:], f.norm[:]) - enc.symbolLen = f.symbolLen - enc.actualTableLog = f.actualTableLog - if err := enc.buildCTable(); err != nil { - panic(fmt.Errorf("building encoding table %v: %v", tableIndex(i), err)) - } - enc.setBits(bitTables[i]) - enc.preDefined = true - } - }) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/hash.go b/backend/vendor/github.com/klauspost/compress/zstd/hash.go deleted file mode 100644 index 6b0f2c7c..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/hash.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -const ( - prime3bytes = 506832829 - prime4bytes = 2654435761 - prime5bytes = 889523592379 - prime6bytes = 227718039650203 - prime7bytes = 58295818150454627 - prime8bytes = 0xcf1bbcdcb7a56463 -) - -// hashLen returns a hash of the lowest l bytes of u for a size size of h bytes. -// l must be >=4 and <=8. Any other value will return hash for 4 bytes. -// h should always be <32. -// Preferably h and l should be a constant. -// FIXME: This does NOT get resolved, if 'mls' is constant, -// -// so this cannot be used. -func hashLen(u uint64, hashLog, mls uint8) uint32 { - switch mls { - case 5: - return hash5(u, hashLog) - case 6: - return hash6(u, hashLog) - case 7: - return hash7(u, hashLog) - case 8: - return hash8(u, hashLog) - default: - return hash4x64(u, hashLog) - } -} - -// hash3 returns the hash of the lower 3 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <32. -func hash3(u uint32, h uint8) uint32 { - return ((u << (32 - 24)) * prime3bytes) >> ((32 - h) & 31) -} - -// hash4 returns the hash of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <32. -func hash4(u uint32, h uint8) uint32 { - return (u * prime4bytes) >> ((32 - h) & 31) -} - -// hash4x64 returns the hash of the lowest 4 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <32. -func hash4x64(u uint64, h uint8) uint32 { - return (uint32(u) * prime4bytes) >> ((32 - h) & 31) -} - -// hash5 returns the hash of the lowest 5 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash5(u uint64, h uint8) uint32 { - return uint32(((u << (64 - 40)) * prime5bytes) >> ((64 - h) & 63)) -} - -// hash6 returns the hash of the lowest 6 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash6(u uint64, h uint8) uint32 { - return uint32(((u << (64 - 48)) * prime6bytes) >> ((64 - h) & 63)) -} - -// hash7 returns the hash of the lowest 7 bytes of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash7(u uint64, h uint8) uint32 { - return uint32(((u << (64 - 56)) * prime7bytes) >> ((64 - h) & 63)) -} - -// hash8 returns the hash of u to fit in a hash table with h bits. -// Preferably h should be a constant and should always be <64. -func hash8(u uint64, h uint8) uint32 { - return uint32((u * prime8bytes) >> ((64 - h) & 63)) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/history.go b/backend/vendor/github.com/klauspost/compress/zstd/history.go deleted file mode 100644 index f783e32d..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/history.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "github.com/klauspost/compress/huff0" -) - -// history contains the information transferred between blocks. -type history struct { - b []byte - huffTree *huff0.Scratch - recentOffsets [3]int - decoders sequenceDecs - windowSize int - maxSize int - error bool - dict *dict -} - -// reset will reset the history to initial state of a frame. -// The history must already have been initialized to the desired size. -func (h *history) reset() { - h.b = h.b[:0] - h.error = false - h.recentOffsets = [3]int{1, 4, 8} - if f := h.decoders.litLengths.fse; f != nil && !f.preDefined { - fseDecoderPool.Put(f) - } - if f := h.decoders.offsets.fse; f != nil && !f.preDefined { - fseDecoderPool.Put(f) - } - if f := h.decoders.matchLengths.fse; f != nil && !f.preDefined { - fseDecoderPool.Put(f) - } - h.decoders = sequenceDecs{} - if h.huffTree != nil { - if h.dict == nil || h.dict.litEnc != h.huffTree { - huffDecoderPool.Put(h.huffTree) - } - } - h.huffTree = nil - h.dict = nil - //printf("history created: %+v (l: %d, c: %d)", *h, len(h.b), cap(h.b)) -} - -func (h *history) setDict(dict *dict) { - if dict == nil { - return - } - h.dict = dict - h.decoders.litLengths = dict.llDec - h.decoders.offsets = dict.ofDec - h.decoders.matchLengths = dict.mlDec - h.recentOffsets = dict.offsets - h.huffTree = dict.litEnc -} - -// append bytes to history. -// This function will make sure there is space for it, -// if the buffer has been allocated with enough extra space. -func (h *history) append(b []byte) { - if len(b) >= h.windowSize { - // Discard all history by simply overwriting - h.b = h.b[:h.windowSize] - copy(h.b, b[len(b)-h.windowSize:]) - return - } - - // If there is space, append it. - if len(b) < cap(h.b)-len(h.b) { - h.b = append(h.b, b...) - return - } - - // Move data down so we only have window size left. - // We know we have less than window size in b at this point. - discard := len(b) + len(h.b) - h.windowSize - copy(h.b, h.b[discard:]) - h.b = h.b[:h.windowSize] - copy(h.b[h.windowSize-len(b):], b) -} - -// append bytes to history without ever discarding anything. -func (h *history) appendKeep(b []byte) { - h.b = append(h.b, b...) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt deleted file mode 100644 index 24b53065..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2016 Caleb Spare - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md deleted file mode 100644 index 69aa3bb5..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# xxhash - -VENDORED: Go to [github.com/cespare/xxhash](https://github.com/cespare/xxhash) for original package. - - -[![GoDoc](https://godoc.org/github.com/cespare/xxhash?status.svg)](https://godoc.org/github.com/cespare/xxhash) -[![Build Status](https://travis-ci.org/cespare/xxhash.svg?branch=master)](https://travis-ci.org/cespare/xxhash) - -xxhash is a Go implementation of the 64-bit -[xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a -high-quality hashing algorithm that is much faster than anything in the Go -standard library. - -This package provides a straightforward API: - -``` -func Sum64(b []byte) uint64 -func Sum64String(s string) uint64 -type Digest struct{ ... } - func New() *Digest -``` - -The `Digest` type implements hash.Hash64. Its key methods are: - -``` -func (*Digest) Write([]byte) (int, error) -func (*Digest) WriteString(string) (int, error) -func (*Digest) Sum64() uint64 -``` - -This implementation provides a fast pure-Go implementation and an even faster -assembly implementation for amd64. - -## Benchmarks - -Here are some quick benchmarks comparing the pure-Go and assembly -implementations of Sum64. - -| input size | purego | asm | -| --- | --- | --- | -| 5 B | 979.66 MB/s | 1291.17 MB/s | -| 100 B | 7475.26 MB/s | 7973.40 MB/s | -| 4 KB | 17573.46 MB/s | 17602.65 MB/s | -| 10 MB | 17131.46 MB/s | 17142.16 MB/s | - -These numbers were generated on Ubuntu 18.04 with an Intel i7-8700K CPU using -the following commands under Go 1.11.2: - -``` -$ go test -tags purego -benchtime 10s -bench '/xxhash,direct,bytes' -$ go test -benchtime 10s -bench '/xxhash,direct,bytes' -``` - -## Projects using this package - -- [InfluxDB](https://github.com/influxdata/influxdb) -- [Prometheus](https://github.com/prometheus/prometheus) -- [FreeCache](https://github.com/coocood/freecache) diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go deleted file mode 100644 index 426b9cac..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go +++ /dev/null @@ -1,238 +0,0 @@ -// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described -// at http://cyan4973.github.io/xxHash/. -// THIS IS VENDORED: Go to github.com/cespare/xxhash for original package. - -package xxhash - -import ( - "encoding/binary" - "errors" - "math/bits" -) - -const ( - prime1 uint64 = 11400714785074694791 - prime2 uint64 = 14029467366897019727 - prime3 uint64 = 1609587929392839161 - prime4 uint64 = 9650029242287828579 - prime5 uint64 = 2870177450012600261 -) - -// NOTE(caleb): I'm using both consts and vars of the primes. Using consts where -// possible in the Go code is worth a small (but measurable) performance boost -// by avoiding some MOVQs. Vars are needed for the asm and also are useful for -// convenience in the Go code in a few places where we need to intentionally -// avoid constant arithmetic (e.g., v1 := prime1 + prime2 fails because the -// result overflows a uint64). -var ( - prime1v = prime1 - prime2v = prime2 - prime3v = prime3 - prime4v = prime4 - prime5v = prime5 -) - -// Digest implements hash.Hash64. -type Digest struct { - v1 uint64 - v2 uint64 - v3 uint64 - v4 uint64 - total uint64 - mem [32]byte - n int // how much of mem is used -} - -// New creates a new Digest that computes the 64-bit xxHash algorithm. -func New() *Digest { - var d Digest - d.Reset() - return &d -} - -// Reset clears the Digest's state so that it can be reused. -func (d *Digest) Reset() { - d.v1 = prime1v + prime2 - d.v2 = prime2 - d.v3 = 0 - d.v4 = -prime1v - d.total = 0 - d.n = 0 -} - -// Size always returns 8 bytes. -func (d *Digest) Size() int { return 8 } - -// BlockSize always returns 32 bytes. -func (d *Digest) BlockSize() int { return 32 } - -// Write adds more data to d. It always returns len(b), nil. -func (d *Digest) Write(b []byte) (n int, err error) { - n = len(b) - d.total += uint64(n) - - if d.n+n < 32 { - // This new data doesn't even fill the current block. - copy(d.mem[d.n:], b) - d.n += n - return - } - - if d.n > 0 { - // Finish off the partial block. - copy(d.mem[d.n:], b) - d.v1 = round(d.v1, u64(d.mem[0:8])) - d.v2 = round(d.v2, u64(d.mem[8:16])) - d.v3 = round(d.v3, u64(d.mem[16:24])) - d.v4 = round(d.v4, u64(d.mem[24:32])) - b = b[32-d.n:] - d.n = 0 - } - - if len(b) >= 32 { - // One or more full blocks left. - nw := writeBlocks(d, b) - b = b[nw:] - } - - // Store any remaining partial block. - copy(d.mem[:], b) - d.n = len(b) - - return -} - -// Sum appends the current hash to b and returns the resulting slice. -func (d *Digest) Sum(b []byte) []byte { - s := d.Sum64() - return append( - b, - byte(s>>56), - byte(s>>48), - byte(s>>40), - byte(s>>32), - byte(s>>24), - byte(s>>16), - byte(s>>8), - byte(s), - ) -} - -// Sum64 returns the current hash. -func (d *Digest) Sum64() uint64 { - var h uint64 - - if d.total >= 32 { - v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4 - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) - } else { - h = d.v3 + prime5 - } - - h += d.total - - i, end := 0, d.n - for ; i+8 <= end; i += 8 { - k1 := round(0, u64(d.mem[i:i+8])) - h ^= k1 - h = rol27(h)*prime1 + prime4 - } - if i+4 <= end { - h ^= uint64(u32(d.mem[i:i+4])) * prime1 - h = rol23(h)*prime2 + prime3 - i += 4 - } - for i < end { - h ^= uint64(d.mem[i]) * prime5 - h = rol11(h) * prime1 - i++ - } - - h ^= h >> 33 - h *= prime2 - h ^= h >> 29 - h *= prime3 - h ^= h >> 32 - - return h -} - -const ( - magic = "xxh\x06" - marshaledSize = len(magic) + 8*5 + 32 -) - -// MarshalBinary implements the encoding.BinaryMarshaler interface. -func (d *Digest) MarshalBinary() ([]byte, error) { - b := make([]byte, 0, marshaledSize) - b = append(b, magic...) - b = appendUint64(b, d.v1) - b = appendUint64(b, d.v2) - b = appendUint64(b, d.v3) - b = appendUint64(b, d.v4) - b = appendUint64(b, d.total) - b = append(b, d.mem[:d.n]...) - b = b[:len(b)+len(d.mem)-d.n] - return b, nil -} - -// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. -func (d *Digest) UnmarshalBinary(b []byte) error { - if len(b) < len(magic) || string(b[:len(magic)]) != magic { - return errors.New("xxhash: invalid hash state identifier") - } - if len(b) != marshaledSize { - return errors.New("xxhash: invalid hash state size") - } - b = b[len(magic):] - b, d.v1 = consumeUint64(b) - b, d.v2 = consumeUint64(b) - b, d.v3 = consumeUint64(b) - b, d.v4 = consumeUint64(b) - b, d.total = consumeUint64(b) - copy(d.mem[:], b) - b = b[len(d.mem):] - d.n = int(d.total % uint64(len(d.mem))) - return nil -} - -func appendUint64(b []byte, x uint64) []byte { - var a [8]byte - binary.LittleEndian.PutUint64(a[:], x) - return append(b, a[:]...) -} - -func consumeUint64(b []byte) ([]byte, uint64) { - x := u64(b) - return b[8:], x -} - -func u64(b []byte) uint64 { return binary.LittleEndian.Uint64(b) } -func u32(b []byte) uint32 { return binary.LittleEndian.Uint32(b) } - -func round(acc, input uint64) uint64 { - acc += input * prime2 - acc = rol31(acc) - acc *= prime1 - return acc -} - -func mergeRound(acc, val uint64) uint64 { - val = round(0, val) - acc ^= val - acc = acc*prime1 + prime4 - return acc -} - -func rol1(x uint64) uint64 { return bits.RotateLeft64(x, 1) } -func rol7(x uint64) uint64 { return bits.RotateLeft64(x, 7) } -func rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) } -func rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) } -func rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) } -func rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) } -func rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) } -func rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) } diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go deleted file mode 100644 index 3ddbd5c0..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !appengine && gc && !purego -// +build !appengine,gc,!purego - -package xxhash - -// Sum64 computes the 64-bit xxHash digest of b. -// -//go:noescape -func Sum64(b []byte) uint64 - -//go:noescape -func writeBlocks(*Digest, []byte) int diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s deleted file mode 100644 index 2c9c5357..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s +++ /dev/null @@ -1,215 +0,0 @@ -// +build !appengine -// +build gc -// +build !purego - -#include "textflag.h" - -// Register allocation: -// AX h -// CX pointer to advance through b -// DX n -// BX loop end -// R8 v1, k1 -// R9 v2 -// R10 v3 -// R11 v4 -// R12 tmp -// R13 prime1v -// R14 prime2v -// R15 prime4v - -// round reads from and advances the buffer pointer in CX. -// It assumes that R13 has prime1v and R14 has prime2v. -#define round(r) \ - MOVQ (CX), R12 \ - ADDQ $8, CX \ - IMULQ R14, R12 \ - ADDQ R12, r \ - ROLQ $31, r \ - IMULQ R13, r - -// mergeRound applies a merge round on the two registers acc and val. -// It assumes that R13 has prime1v, R14 has prime2v, and R15 has prime4v. -#define mergeRound(acc, val) \ - IMULQ R14, val \ - ROLQ $31, val \ - IMULQ R13, val \ - XORQ val, acc \ - IMULQ R13, acc \ - ADDQ R15, acc - -// func Sum64(b []byte) uint64 -TEXT ·Sum64(SB), NOSPLIT, $0-32 - // Load fixed primes. - MOVQ ·prime1v(SB), R13 - MOVQ ·prime2v(SB), R14 - MOVQ ·prime4v(SB), R15 - - // Load slice. - MOVQ b_base+0(FP), CX - MOVQ b_len+8(FP), DX - LEAQ (CX)(DX*1), BX - - // The first loop limit will be len(b)-32. - SUBQ $32, BX - - // Check whether we have at least one block. - CMPQ DX, $32 - JLT noBlocks - - // Set up initial state (v1, v2, v3, v4). - MOVQ R13, R8 - ADDQ R14, R8 - MOVQ R14, R9 - XORQ R10, R10 - XORQ R11, R11 - SUBQ R13, R11 - - // Loop until CX > BX. -blockLoop: - round(R8) - round(R9) - round(R10) - round(R11) - - CMPQ CX, BX - JLE blockLoop - - MOVQ R8, AX - ROLQ $1, AX - MOVQ R9, R12 - ROLQ $7, R12 - ADDQ R12, AX - MOVQ R10, R12 - ROLQ $12, R12 - ADDQ R12, AX - MOVQ R11, R12 - ROLQ $18, R12 - ADDQ R12, AX - - mergeRound(AX, R8) - mergeRound(AX, R9) - mergeRound(AX, R10) - mergeRound(AX, R11) - - JMP afterBlocks - -noBlocks: - MOVQ ·prime5v(SB), AX - -afterBlocks: - ADDQ DX, AX - - // Right now BX has len(b)-32, and we want to loop until CX > len(b)-8. - ADDQ $24, BX - - CMPQ CX, BX - JG fourByte - -wordLoop: - // Calculate k1. - MOVQ (CX), R8 - ADDQ $8, CX - IMULQ R14, R8 - ROLQ $31, R8 - IMULQ R13, R8 - - XORQ R8, AX - ROLQ $27, AX - IMULQ R13, AX - ADDQ R15, AX - - CMPQ CX, BX - JLE wordLoop - -fourByte: - ADDQ $4, BX - CMPQ CX, BX - JG singles - - MOVL (CX), R8 - ADDQ $4, CX - IMULQ R13, R8 - XORQ R8, AX - - ROLQ $23, AX - IMULQ R14, AX - ADDQ ·prime3v(SB), AX - -singles: - ADDQ $4, BX - CMPQ CX, BX - JGE finalize - -singlesLoop: - MOVBQZX (CX), R12 - ADDQ $1, CX - IMULQ ·prime5v(SB), R12 - XORQ R12, AX - - ROLQ $11, AX - IMULQ R13, AX - - CMPQ CX, BX - JL singlesLoop - -finalize: - MOVQ AX, R12 - SHRQ $33, R12 - XORQ R12, AX - IMULQ R14, AX - MOVQ AX, R12 - SHRQ $29, R12 - XORQ R12, AX - IMULQ ·prime3v(SB), AX - MOVQ AX, R12 - SHRQ $32, R12 - XORQ R12, AX - - MOVQ AX, ret+24(FP) - RET - -// writeBlocks uses the same registers as above except that it uses AX to store -// the d pointer. - -// func writeBlocks(d *Digest, b []byte) int -TEXT ·writeBlocks(SB), NOSPLIT, $0-40 - // Load fixed primes needed for round. - MOVQ ·prime1v(SB), R13 - MOVQ ·prime2v(SB), R14 - - // Load slice. - MOVQ arg1_base+8(FP), CX - MOVQ arg1_len+16(FP), DX - LEAQ (CX)(DX*1), BX - SUBQ $32, BX - - // Load vN from d. - MOVQ arg+0(FP), AX - MOVQ 0(AX), R8 // v1 - MOVQ 8(AX), R9 // v2 - MOVQ 16(AX), R10 // v3 - MOVQ 24(AX), R11 // v4 - - // We don't need to check the loop condition here; this function is - // always called with at least one block of data to process. -blockLoop: - round(R8) - round(R9) - round(R10) - round(R11) - - CMPQ CX, BX - JLE blockLoop - - // Copy vN back to d. - MOVQ R8, 0(AX) - MOVQ R9, 8(AX) - MOVQ R10, 16(AX) - MOVQ R11, 24(AX) - - // The number of bytes written is CX minus the old base pointer. - SUBQ arg1_base+8(FP), CX - MOVQ CX, ret+32(FP) - - RET diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go deleted file mode 100644 index 1f52f296..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go +++ /dev/null @@ -1,77 +0,0 @@ -//go:build !amd64 || appengine || !gc || purego -// +build !amd64 appengine !gc purego - -package xxhash - -// Sum64 computes the 64-bit xxHash digest of b. -func Sum64(b []byte) uint64 { - // A simpler version would be - // d := New() - // d.Write(b) - // return d.Sum64() - // but this is faster, particularly for small inputs. - - n := len(b) - var h uint64 - - if n >= 32 { - v1 := prime1v + prime2 - v2 := prime2 - v3 := uint64(0) - v4 := -prime1v - for len(b) >= 32 { - v1 = round(v1, u64(b[0:8:len(b)])) - v2 = round(v2, u64(b[8:16:len(b)])) - v3 = round(v3, u64(b[16:24:len(b)])) - v4 = round(v4, u64(b[24:32:len(b)])) - b = b[32:len(b):len(b)] - } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) - } else { - h = prime5 - } - - h += uint64(n) - - i, end := 0, len(b) - for ; i+8 <= end; i += 8 { - k1 := round(0, u64(b[i:i+8:len(b)])) - h ^= k1 - h = rol27(h)*prime1 + prime4 - } - if i+4 <= end { - h ^= uint64(u32(b[i:i+4:len(b)])) * prime1 - h = rol23(h)*prime2 + prime3 - i += 4 - } - for ; i < end; i++ { - h ^= uint64(b[i]) * prime5 - h = rol11(h) * prime1 - } - - h ^= h >> 33 - h *= prime2 - h ^= h >> 29 - h *= prime3 - h ^= h >> 32 - - return h -} - -func writeBlocks(d *Digest, b []byte) int { - v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4 - n := len(b) - for len(b) >= 32 { - v1 = round(v1, u64(b[0:8:len(b)])) - v2 = round(v2, u64(b[8:16:len(b)])) - v3 = round(v3, u64(b[16:24:len(b)])) - v4 = round(v4, u64(b[24:32:len(b)])) - b = b[32:len(b):len(b)] - } - d.v1, d.v2, d.v3, d.v4 = v1, v2, v3, v4 - return n - len(b) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go b/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go deleted file mode 100644 index 6f3b0cb1..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go +++ /dev/null @@ -1,11 +0,0 @@ -package xxhash - -// Sum64String computes the 64-bit xxHash digest of s. -func Sum64String(s string) uint64 { - return Sum64([]byte(s)) -} - -// WriteString adds more data to d. It always returns len(s), nil. -func (d *Digest) WriteString(s string) (n int, err error) { - return d.Write([]byte(s)) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/seqdec.go b/backend/vendor/github.com/klauspost/compress/zstd/seqdec.go deleted file mode 100644 index b5c8ef13..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/seqdec.go +++ /dev/null @@ -1,485 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "errors" - "fmt" - "io" -) - -type seq struct { - litLen uint32 - matchLen uint32 - offset uint32 - - // Codes are stored here for the encoder - // so they only have to be looked up once. - llCode, mlCode, ofCode uint8 -} - -func (s seq) String() string { - if s.offset <= 3 { - if s.offset == 0 { - return fmt.Sprint("litLen:", s.litLen, ", matchLen:", s.matchLen+zstdMinMatch, ", offset: INVALID (0)") - } - return fmt.Sprint("litLen:", s.litLen, ", matchLen:", s.matchLen+zstdMinMatch, ", offset:", s.offset, " (repeat)") - } - return fmt.Sprint("litLen:", s.litLen, ", matchLen:", s.matchLen+zstdMinMatch, ", offset:", s.offset-3, " (new)") -} - -type seqCompMode uint8 - -const ( - compModePredefined seqCompMode = iota - compModeRLE - compModeFSE - compModeRepeat -) - -type sequenceDec struct { - // decoder keeps track of the current state and updates it from the bitstream. - fse *fseDecoder - state fseState - repeat bool -} - -// init the state of the decoder with input from stream. -func (s *sequenceDec) init(br *bitReader) error { - if s.fse == nil { - return errors.New("sequence decoder not defined") - } - s.state.init(br, s.fse.actualTableLog, s.fse.dt[:1<= 0; i-- { - if br.overread() { - printf("reading sequence %d, exceeded available data\n", seqs-i) - return io.ErrUnexpectedEOF - } - var ll, mo, ml int - if br.off > 4+((maxOffsetBits+16+16)>>3) { - // inlined function: - // ll, mo, ml = s.nextFast(br, llState, mlState, ofState) - - // Final will not read from stream. - var llB, mlB, moB uint8 - ll, llB = llState.final() - ml, mlB = mlState.final() - mo, moB = ofState.final() - - // extra bits are stored in reverse order. - br.fillFast() - mo += br.getBits(moB) - if s.maxBits > 32 { - br.fillFast() - } - ml += br.getBits(mlB) - ll += br.getBits(llB) - - if moB > 1 { - s.prevOffset[2] = s.prevOffset[1] - s.prevOffset[1] = s.prevOffset[0] - s.prevOffset[0] = mo - } else { - // mo = s.adjustOffset(mo, ll, moB) - // Inlined for rather big speedup - if ll == 0 { - // There is an exception though, when current sequence's literals_length = 0. - // In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2, - // an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte. - mo++ - } - - if mo == 0 { - mo = s.prevOffset[0] - } else { - var temp int - if mo == 3 { - temp = s.prevOffset[0] - 1 - } else { - temp = s.prevOffset[mo] - } - - if temp == 0 { - // 0 is not valid; input is corrupted; force offset to 1 - println("temp was 0") - temp = 1 - } - - if mo != 1 { - s.prevOffset[2] = s.prevOffset[1] - } - s.prevOffset[1] = s.prevOffset[0] - s.prevOffset[0] = temp - mo = temp - } - } - br.fillFast() - } else { - ll, mo, ml = s.next(br, llState, mlState, ofState) - br.fill() - } - - if debugSequences { - println("Seq", seqs-i-1, "Litlen:", ll, "mo:", mo, "(abs) ml:", ml) - } - - if ll > len(s.literals) { - return fmt.Errorf("unexpected literal count, want %d bytes, but only %d is available", ll, len(s.literals)) - } - size := ll + ml + len(s.out) - if size-startSize > maxBlockSize { - return fmt.Errorf("output (%d) bigger than max block size", size) - } - if size > cap(s.out) { - // Not enough size, will be extremely rarely triggered, - // but could be if destination slice is too small for sync operations. - // We add maxBlockSize to the capacity. - s.out = append(s.out, make([]byte, maxBlockSize)...) - s.out = s.out[:len(s.out)-maxBlockSize] - } - if ml > maxMatchLen { - return fmt.Errorf("match len (%d) bigger than max allowed length", ml) - } - - // Add literals - s.out = append(s.out, s.literals[:ll]...) - s.literals = s.literals[ll:] - out := s.out - - if mo == 0 && ml > 0 { - return fmt.Errorf("zero matchoff and matchlen (%d) > 0", ml) - } - - if mo > len(s.out)+len(hist) || mo > s.windowSize { - if len(s.dict) == 0 { - return fmt.Errorf("match offset (%d) bigger than current history (%d)", mo, len(s.out)+len(hist)) - } - - // we may be in dictionary. - dictO := len(s.dict) - (mo - (len(s.out) + len(hist))) - if dictO < 0 || dictO >= len(s.dict) { - return fmt.Errorf("match offset (%d) bigger than current history (%d)", mo, len(s.out)+len(hist)) - } - end := dictO + ml - if end > len(s.dict) { - out = append(out, s.dict[dictO:]...) - mo -= len(s.dict) - dictO - ml -= len(s.dict) - dictO - } else { - out = append(out, s.dict[dictO:end]...) - mo = 0 - ml = 0 - } - } - - // Copy from history. - // TODO: Blocks without history could be made to ignore this completely. - if v := mo - len(s.out); v > 0 { - // v is the start position in history from end. - start := len(s.hist) - v - if ml > v { - // Some goes into current block. - // Copy remainder of history - out = append(out, s.hist[start:]...) - mo -= v - ml -= v - } else { - out = append(out, s.hist[start:start+ml]...) - ml = 0 - } - } - // We must be in current buffer now - if ml > 0 { - start := len(s.out) - mo - if ml <= len(s.out)-start { - // No overlap - out = append(out, s.out[start:start+ml]...) - } else { - // Overlapping copy - // Extend destination slice and copy one byte at the time. - out = out[:len(out)+ml] - src := out[start : start+ml] - // Destination is the space we just added. - dst := out[len(out)-ml:] - dst = dst[:len(src)] - for i := range src { - dst[i] = src[i] - } - } - } - s.out = out - if i == 0 { - // This is the last sequence, so we shouldn't update state. - break - } - - // Manually inlined, ~ 5-20% faster - // Update all 3 states at once. Approx 20% faster. - nBits := llState.nbBits() + mlState.nbBits() + ofState.nbBits() - if nBits == 0 { - llState = llTable[llState.newState()&maxTableMask] - mlState = mlTable[mlState.newState()&maxTableMask] - ofState = ofTable[ofState.newState()&maxTableMask] - } else { - bits := br.getBitsFast(nBits) - lowBits := uint16(bits >> ((ofState.nbBits() + mlState.nbBits()) & 31)) - llState = llTable[(llState.newState()+lowBits)&maxTableMask] - - lowBits = uint16(bits >> (ofState.nbBits() & 31)) - lowBits &= bitMask[mlState.nbBits()&15] - mlState = mlTable[(mlState.newState()+lowBits)&maxTableMask] - - lowBits = uint16(bits) & bitMask[ofState.nbBits()&15] - ofState = ofTable[(ofState.newState()+lowBits)&maxTableMask] - } - } - - // Add final literals - s.out = append(s.out, s.literals...) - return nil -} - -// update states, at least 27 bits must be available. -func (s *sequenceDecs) update(br *bitReader) { - // Max 8 bits - s.litLengths.state.next(br) - // Max 9 bits - s.matchLengths.state.next(br) - // Max 8 bits - s.offsets.state.next(br) -} - -var bitMask [16]uint16 - -func init() { - for i := range bitMask[:] { - bitMask[i] = uint16((1 << uint(i)) - 1) - } -} - -// update states, at least 27 bits must be available. -func (s *sequenceDecs) updateAlt(br *bitReader) { - // Update all 3 states at once. Approx 20% faster. - a, b, c := s.litLengths.state.state, s.matchLengths.state.state, s.offsets.state.state - - nBits := a.nbBits() + b.nbBits() + c.nbBits() - if nBits == 0 { - s.litLengths.state.state = s.litLengths.state.dt[a.newState()] - s.matchLengths.state.state = s.matchLengths.state.dt[b.newState()] - s.offsets.state.state = s.offsets.state.dt[c.newState()] - return - } - bits := br.getBitsFast(nBits) - lowBits := uint16(bits >> ((c.nbBits() + b.nbBits()) & 31)) - s.litLengths.state.state = s.litLengths.state.dt[a.newState()+lowBits] - - lowBits = uint16(bits >> (c.nbBits() & 31)) - lowBits &= bitMask[b.nbBits()&15] - s.matchLengths.state.state = s.matchLengths.state.dt[b.newState()+lowBits] - - lowBits = uint16(bits) & bitMask[c.nbBits()&15] - s.offsets.state.state = s.offsets.state.dt[c.newState()+lowBits] -} - -// nextFast will return new states when there are at least 4 unused bytes left on the stream when done. -func (s *sequenceDecs) nextFast(br *bitReader, llState, mlState, ofState decSymbol) (ll, mo, ml int) { - // Final will not read from stream. - ll, llB := llState.final() - ml, mlB := mlState.final() - mo, moB := ofState.final() - - // extra bits are stored in reverse order. - br.fillFast() - mo += br.getBits(moB) - if s.maxBits > 32 { - br.fillFast() - } - ml += br.getBits(mlB) - ll += br.getBits(llB) - - if moB > 1 { - s.prevOffset[2] = s.prevOffset[1] - s.prevOffset[1] = s.prevOffset[0] - s.prevOffset[0] = mo - return - } - // mo = s.adjustOffset(mo, ll, moB) - // Inlined for rather big speedup - if ll == 0 { - // There is an exception though, when current sequence's literals_length = 0. - // In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2, - // an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte. - mo++ - } - - if mo == 0 { - mo = s.prevOffset[0] - return - } - var temp int - if mo == 3 { - temp = s.prevOffset[0] - 1 - } else { - temp = s.prevOffset[mo] - } - - if temp == 0 { - // 0 is not valid; input is corrupted; force offset to 1 - println("temp was 0") - temp = 1 - } - - if mo != 1 { - s.prevOffset[2] = s.prevOffset[1] - } - s.prevOffset[1] = s.prevOffset[0] - s.prevOffset[0] = temp - mo = temp - return -} - -func (s *sequenceDecs) next(br *bitReader, llState, mlState, ofState decSymbol) (ll, mo, ml int) { - // Final will not read from stream. - ll, llB := llState.final() - ml, mlB := mlState.final() - mo, moB := ofState.final() - - // extra bits are stored in reverse order. - br.fill() - if s.maxBits <= 32 { - mo += br.getBits(moB) - ml += br.getBits(mlB) - ll += br.getBits(llB) - } else { - mo += br.getBits(moB) - br.fill() - // matchlength+literal length, max 32 bits - ml += br.getBits(mlB) - ll += br.getBits(llB) - - } - mo = s.adjustOffset(mo, ll, moB) - return -} - -func (s *sequenceDecs) adjustOffset(offset, litLen int, offsetB uint8) int { - if offsetB > 1 { - s.prevOffset[2] = s.prevOffset[1] - s.prevOffset[1] = s.prevOffset[0] - s.prevOffset[0] = offset - return offset - } - - if litLen == 0 { - // There is an exception though, when current sequence's literals_length = 0. - // In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2, - // an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte. - offset++ - } - - if offset == 0 { - return s.prevOffset[0] - } - var temp int - if offset == 3 { - temp = s.prevOffset[0] - 1 - } else { - temp = s.prevOffset[offset] - } - - if temp == 0 { - // 0 is not valid; input is corrupted; force offset to 1 - println("temp was 0") - temp = 1 - } - - if offset != 1 { - s.prevOffset[2] = s.prevOffset[1] - } - s.prevOffset[1] = s.prevOffset[0] - s.prevOffset[0] = temp - return temp -} - -// mergeHistory will merge history. -func (s *sequenceDecs) mergeHistory(hist *sequenceDecs) (*sequenceDecs, error) { - for i := uint(0); i < 3; i++ { - var sNew, sHist *sequenceDec - switch i { - default: - // same as "case 0": - sNew = &s.litLengths - sHist = &hist.litLengths - case 1: - sNew = &s.offsets - sHist = &hist.offsets - case 2: - sNew = &s.matchLengths - sHist = &hist.matchLengths - } - if sNew.repeat { - if sHist.fse == nil { - return nil, fmt.Errorf("sequence stream %d, repeat requested, but no history", i) - } - continue - } - if sNew.fse == nil { - return nil, fmt.Errorf("sequence stream %d, no fse found", i) - } - if sHist.fse != nil && !sHist.fse.preDefined { - fseDecoderPool.Put(sHist.fse) - } - sHist.fse = sNew.fse - } - return hist, nil -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/seqenc.go b/backend/vendor/github.com/klauspost/compress/zstd/seqenc.go deleted file mode 100644 index 36bcc3cc..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/seqenc.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import "math/bits" - -type seqCoders struct { - llEnc, ofEnc, mlEnc *fseEncoder - llPrev, ofPrev, mlPrev *fseEncoder -} - -// swap coders with another (block). -func (s *seqCoders) swap(other *seqCoders) { - *s, *other = *other, *s -} - -// setPrev will update the previous encoders to the actually used ones -// and make sure a fresh one is in the main slot. -func (s *seqCoders) setPrev(ll, ml, of *fseEncoder) { - compareSwap := func(used *fseEncoder, current, prev **fseEncoder) { - // We used the new one, more current to history and reuse the previous history - if *current == used { - *prev, *current = *current, *prev - c := *current - p := *prev - c.reUsed = false - p.reUsed = true - return - } - if used == *prev { - return - } - // Ensure we cannot reuse by accident - prevEnc := *prev - prevEnc.symbolLen = 0 - return - } - compareSwap(ll, &s.llEnc, &s.llPrev) - compareSwap(ml, &s.mlEnc, &s.mlPrev) - compareSwap(of, &s.ofEnc, &s.ofPrev) -} - -func highBit(val uint32) (n uint32) { - return uint32(bits.Len32(val) - 1) -} - -var llCodeTable = [64]byte{0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 16, 17, 17, 18, 18, 19, 19, - 20, 20, 20, 20, 21, 21, 21, 21, - 22, 22, 22, 22, 22, 22, 22, 22, - 23, 23, 23, 23, 23, 23, 23, 23, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24} - -// Up to 6 bits -const maxLLCode = 35 - -// llBitsTable translates from ll code to number of bits. -var llBitsTable = [maxLLCode + 1]byte{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 2, 2, 3, 3, - 4, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16} - -// llCode returns the code that represents the literal length requested. -func llCode(litLength uint32) uint8 { - const llDeltaCode = 19 - if litLength <= 63 { - // Compiler insists on bounds check (Go 1.12) - return llCodeTable[litLength&63] - } - return uint8(highBit(litLength)) + llDeltaCode -} - -var mlCodeTable = [128]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, - 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42} - -// Up to 6 bits -const maxMLCode = 52 - -// mlBitsTable translates from ml code to number of bits. -var mlBitsTable = [maxMLCode + 1]byte{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 2, 2, 3, 3, - 4, 4, 5, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16} - -// note : mlBase = matchLength - MINMATCH; -// because it's the format it's stored in seqStore->sequences -func mlCode(mlBase uint32) uint8 { - const mlDeltaCode = 36 - if mlBase <= 127 { - // Compiler insists on bounds check (Go 1.12) - return mlCodeTable[mlBase&127] - } - return uint8(highBit(mlBase)) + mlDeltaCode -} - -func ofCode(offset uint32) uint8 { - // A valid offset will always be > 0. - return uint8(bits.Len32(offset) - 1) -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/snappy.go b/backend/vendor/github.com/klauspost/compress/zstd/snappy.go deleted file mode 100644 index 841fd95a..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/snappy.go +++ /dev/null @@ -1,436 +0,0 @@ -// Copyright 2019+ Klaus Post. All rights reserved. -// License information can be found in the LICENSE file. -// Based on work by Yann Collet, released under BSD License. - -package zstd - -import ( - "encoding/binary" - "errors" - "hash/crc32" - "io" - - "github.com/klauspost/compress/huff0" - "github.com/klauspost/compress/snappy" -) - -const ( - snappyTagLiteral = 0x00 - snappyTagCopy1 = 0x01 - snappyTagCopy2 = 0x02 - snappyTagCopy4 = 0x03 -) - -const ( - snappyChecksumSize = 4 - snappyMagicBody = "sNaPpY" - - // snappyMaxBlockSize is the maximum size of the input to encodeBlock. It is not - // part of the wire format per se, but some parts of the encoder assume - // that an offset fits into a uint16. - // - // Also, for the framing format (Writer type instead of Encode function), - // https://github.com/google/snappy/blob/master/framing_format.txt says - // that "the uncompressed data in a chunk must be no longer than 65536 - // bytes". - snappyMaxBlockSize = 65536 - - // snappyMaxEncodedLenOfMaxBlockSize equals MaxEncodedLen(snappyMaxBlockSize), but is - // hard coded to be a const instead of a variable, so that obufLen can also - // be a const. Their equivalence is confirmed by - // TestMaxEncodedLenOfMaxBlockSize. - snappyMaxEncodedLenOfMaxBlockSize = 76490 -) - -const ( - chunkTypeCompressedData = 0x00 - chunkTypeUncompressedData = 0x01 - chunkTypePadding = 0xfe - chunkTypeStreamIdentifier = 0xff -) - -var ( - // ErrSnappyCorrupt reports that the input is invalid. - ErrSnappyCorrupt = errors.New("snappy: corrupt input") - // ErrSnappyTooLarge reports that the uncompressed length is too large. - ErrSnappyTooLarge = errors.New("snappy: decoded block is too large") - // ErrSnappyUnsupported reports that the input isn't supported. - ErrSnappyUnsupported = errors.New("snappy: unsupported input") - - errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") -) - -// SnappyConverter can read SnappyConverter-compressed streams and convert them to zstd. -// Conversion is done by converting the stream directly from Snappy without intermediate -// full decoding. -// Therefore the compression ratio is much less than what can be done by a full decompression -// and compression, and a faulty Snappy stream may lead to a faulty Zstandard stream without -// any errors being generated. -// No CRC value is being generated and not all CRC values of the Snappy stream are checked. -// However, it provides really fast recompression of Snappy streams. -// The converter can be reused to avoid allocations, even after errors. -type SnappyConverter struct { - r io.Reader - err error - buf []byte - block *blockEnc -} - -// Convert the Snappy stream supplied in 'in' and write the zStandard stream to 'w'. -// If any error is detected on the Snappy stream it is returned. -// The number of bytes written is returned. -func (r *SnappyConverter) Convert(in io.Reader, w io.Writer) (int64, error) { - initPredefined() - r.err = nil - r.r = in - if r.block == nil { - r.block = &blockEnc{} - r.block.init() - } - r.block.initNewEncode() - if len(r.buf) != snappyMaxEncodedLenOfMaxBlockSize+snappyChecksumSize { - r.buf = make([]byte, snappyMaxEncodedLenOfMaxBlockSize+snappyChecksumSize) - } - r.block.litEnc.Reuse = huff0.ReusePolicyNone - var written int64 - var readHeader bool - { - var header []byte - var n int - header, r.err = frameHeader{WindowSize: snappyMaxBlockSize}.appendTo(r.buf[:0]) - - n, r.err = w.Write(header) - if r.err != nil { - return written, r.err - } - written += int64(n) - } - - for { - if !r.readFull(r.buf[:4], true) { - // Add empty last block - r.block.reset(nil) - r.block.last = true - err := r.block.encodeLits(r.block.literals, false) - if err != nil { - return written, err - } - n, err := w.Write(r.block.output) - if err != nil { - return written, err - } - written += int64(n) - - return written, r.err - } - chunkType := r.buf[0] - if !readHeader { - if chunkType != chunkTypeStreamIdentifier { - println("chunkType != chunkTypeStreamIdentifier", chunkType) - r.err = ErrSnappyCorrupt - return written, r.err - } - readHeader = true - } - chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 - if chunkLen > len(r.buf) { - println("chunkLen > len(r.buf)", chunkType) - r.err = ErrSnappyUnsupported - return written, r.err - } - - // The chunk types are specified at - // https://github.com/google/snappy/blob/master/framing_format.txt - switch chunkType { - case chunkTypeCompressedData: - // Section 4.2. Compressed data (chunk type 0x00). - if chunkLen < snappyChecksumSize { - println("chunkLen < snappyChecksumSize", chunkLen, snappyChecksumSize) - r.err = ErrSnappyCorrupt - return written, r.err - } - buf := r.buf[:chunkLen] - if !r.readFull(buf, false) { - return written, r.err - } - //checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - buf = buf[snappyChecksumSize:] - - n, hdr, err := snappyDecodedLen(buf) - if err != nil { - r.err = err - return written, r.err - } - buf = buf[hdr:] - if n > snappyMaxBlockSize { - println("n > snappyMaxBlockSize", n, snappyMaxBlockSize) - r.err = ErrSnappyCorrupt - return written, r.err - } - r.block.reset(nil) - r.block.pushOffsets() - if err := decodeSnappy(r.block, buf); err != nil { - r.err = err - return written, r.err - } - if r.block.size+r.block.extraLits != n { - printf("invalid size, want %d, got %d\n", n, r.block.size+r.block.extraLits) - r.err = ErrSnappyCorrupt - return written, r.err - } - err = r.block.encode(nil, false, false) - switch err { - case errIncompressible: - r.block.popOffsets() - r.block.reset(nil) - r.block.literals, err = snappy.Decode(r.block.literals[:n], r.buf[snappyChecksumSize:chunkLen]) - if err != nil { - println("snappy.Decode:", err) - return written, err - } - err = r.block.encodeLits(r.block.literals, false) - if err != nil { - return written, err - } - case nil: - default: - return written, err - } - - n, r.err = w.Write(r.block.output) - if r.err != nil { - return written, err - } - written += int64(n) - continue - case chunkTypeUncompressedData: - if debug { - println("Uncompressed, chunklen", chunkLen) - } - // Section 4.3. Uncompressed data (chunk type 0x01). - if chunkLen < snappyChecksumSize { - println("chunkLen < snappyChecksumSize", chunkLen, snappyChecksumSize) - r.err = ErrSnappyCorrupt - return written, r.err - } - r.block.reset(nil) - buf := r.buf[:snappyChecksumSize] - if !r.readFull(buf, false) { - return written, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - // Read directly into r.decoded instead of via r.buf. - n := chunkLen - snappyChecksumSize - if n > snappyMaxBlockSize { - println("n > snappyMaxBlockSize", n, snappyMaxBlockSize) - r.err = ErrSnappyCorrupt - return written, r.err - } - r.block.literals = r.block.literals[:n] - if !r.readFull(r.block.literals, false) { - return written, r.err - } - if snappyCRC(r.block.literals) != checksum { - println("literals crc mismatch") - r.err = ErrSnappyCorrupt - return written, r.err - } - err := r.block.encodeLits(r.block.literals, false) - if err != nil { - return written, err - } - n, r.err = w.Write(r.block.output) - if r.err != nil { - return written, err - } - written += int64(n) - continue - - case chunkTypeStreamIdentifier: - if debug { - println("stream id", chunkLen, len(snappyMagicBody)) - } - // Section 4.1. Stream identifier (chunk type 0xff). - if chunkLen != len(snappyMagicBody) { - println("chunkLen != len(snappyMagicBody)", chunkLen, len(snappyMagicBody)) - r.err = ErrSnappyCorrupt - return written, r.err - } - if !r.readFull(r.buf[:len(snappyMagicBody)], false) { - return written, r.err - } - for i := 0; i < len(snappyMagicBody); i++ { - if r.buf[i] != snappyMagicBody[i] { - println("r.buf[i] != snappyMagicBody[i]", r.buf[i], snappyMagicBody[i], i) - r.err = ErrSnappyCorrupt - return written, r.err - } - } - continue - } - - if chunkType <= 0x7f { - // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). - println("chunkType <= 0x7f") - r.err = ErrSnappyUnsupported - return written, r.err - } - // Section 4.4 Padding (chunk type 0xfe). - // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). - if !r.readFull(r.buf[:chunkLen], false) { - return written, r.err - } - } -} - -// decodeSnappy writes the decoding of src to dst. It assumes that the varint-encoded -// length of the decompressed bytes has already been read. -func decodeSnappy(blk *blockEnc, src []byte) error { - //decodeRef(make([]byte, snappyMaxBlockSize), src) - var s, length int - lits := blk.extraLits - var offset uint32 - for s < len(src) { - switch src[s] & 0x03 { - case snappyTagLiteral: - x := uint32(src[s] >> 2) - switch { - case x < 60: - s++ - case x == 60: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, src) - return ErrSnappyCorrupt - } - x = uint32(src[s-1]) - case x == 61: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, src) - return ErrSnappyCorrupt - } - x = uint32(src[s-2]) | uint32(src[s-1])<<8 - case x == 62: - s += 4 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, src) - return ErrSnappyCorrupt - } - x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 - case x == 63: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, src) - return ErrSnappyCorrupt - } - x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - } - if x > snappyMaxBlockSize { - println("x > snappyMaxBlockSize", x, snappyMaxBlockSize) - return ErrSnappyCorrupt - } - length = int(x) + 1 - if length <= 0 { - println("length <= 0 ", length) - - return errUnsupportedLiteralLength - } - //if length > snappyMaxBlockSize-d || uint32(length) > len(src)-s { - // return ErrSnappyCorrupt - //} - - blk.literals = append(blk.literals, src[s:s+length]...) - //println(length, "litLen") - lits += length - s += length - continue - - case snappyTagCopy1: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, len(src)) - return ErrSnappyCorrupt - } - length = 4 + int(src[s-2])>>2&0x7 - offset = uint32(src[s-2])&0xe0<<3 | uint32(src[s-1]) - - case snappyTagCopy2: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, len(src)) - return ErrSnappyCorrupt - } - length = 1 + int(src[s-3])>>2 - offset = uint32(src[s-2]) | uint32(src[s-1])<<8 - - case snappyTagCopy4: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - println("uint(s) > uint(len(src)", s, len(src)) - return ErrSnappyCorrupt - } - length = 1 + int(src[s-5])>>2 - offset = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 - } - - if offset <= 0 || blk.size+lits < int(offset) /*|| length > len(blk)-d */ { - println("offset <= 0 || blk.size+lits < int(offset)", offset, blk.size+lits, int(offset), blk.size, lits) - - return ErrSnappyCorrupt - } - - // Check if offset is one of the recent offsets. - // Adjusts the output offset accordingly. - // Gives a tiny bit of compression, typically around 1%. - if false { - offset = blk.matchOffset(offset, uint32(lits)) - } else { - offset += 3 - } - - blk.sequences = append(blk.sequences, seq{ - litLen: uint32(lits), - offset: offset, - matchLen: uint32(length) - zstdMinMatch, - }) - blk.size += length + lits - lits = 0 - } - blk.extraLits = lits - return nil -} - -func (r *SnappyConverter) readFull(p []byte, allowEOF bool) (ok bool) { - if _, r.err = io.ReadFull(r.r, p); r.err != nil { - if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { - r.err = ErrSnappyCorrupt - } - return false - } - return true -} - -var crcTable = crc32.MakeTable(crc32.Castagnoli) - -// crc implements the checksum specified in section 3 of -// https://github.com/google/snappy/blob/master/framing_format.txt -func snappyCRC(b []byte) uint32 { - c := crc32.Update(0, crcTable, b) - return uint32(c>>15|c<<17) + 0xa282ead8 -} - -// snappyDecodedLen returns the length of the decoded block and the number of bytes -// that the length header occupied. -func snappyDecodedLen(src []byte) (blockLen, headerLen int, err error) { - v, n := binary.Uvarint(src) - if n <= 0 || v > 0xffffffff { - return 0, 0, ErrSnappyCorrupt - } - - const wordSize = 32 << (^uint(0) >> 32 & 1) - if wordSize == 32 && v > 0x7fffffff { - return 0, 0, ErrSnappyTooLarge - } - return int(v), n, nil -} diff --git a/backend/vendor/github.com/klauspost/compress/zstd/zstd.go b/backend/vendor/github.com/klauspost/compress/zstd/zstd.go deleted file mode 100644 index 0807719c..00000000 --- a/backend/vendor/github.com/klauspost/compress/zstd/zstd.go +++ /dev/null @@ -1,144 +0,0 @@ -// Package zstd provides decompression of zstandard files. -// -// For advanced usage and examples, go to the README: https://github.com/klauspost/compress/tree/master/zstd#zstd -package zstd - -import ( - "errors" - "log" - "math" - "math/bits" -) - -// enable debug printing -const debug = false - -// Enable extra assertions. -const debugAsserts = debug || false - -// print sequence details -const debugSequences = false - -// print detailed matching information -const debugMatches = false - -// force encoder to use predefined tables. -const forcePreDef = false - -// zstdMinMatch is the minimum zstd match length. -const zstdMinMatch = 3 - -// Reset the buffer offset when reaching this. -const bufferReset = math.MaxInt32 - MaxWindowSize - -var ( - // ErrReservedBlockType is returned when a reserved block type is found. - // Typically this indicates wrong or corrupted input. - ErrReservedBlockType = errors.New("invalid input: reserved block type encountered") - - // ErrCompressedSizeTooBig is returned when a block is bigger than allowed. - // Typically this indicates wrong or corrupted input. - ErrCompressedSizeTooBig = errors.New("invalid input: compressed size too big") - - // ErrBlockTooSmall is returned when a block is too small to be decoded. - // Typically returned on invalid input. - ErrBlockTooSmall = errors.New("block too small") - - // ErrMagicMismatch is returned when a "magic" number isn't what is expected. - // Typically this indicates wrong or corrupted input. - ErrMagicMismatch = errors.New("invalid input: magic number mismatch") - - // ErrWindowSizeExceeded is returned when a reference exceeds the valid window size. - // Typically this indicates wrong or corrupted input. - ErrWindowSizeExceeded = errors.New("window size exceeded") - - // ErrWindowSizeTooSmall is returned when no window size is specified. - // Typically this indicates wrong or corrupted input. - ErrWindowSizeTooSmall = errors.New("invalid input: window size was too small") - - // ErrDecoderSizeExceeded is returned if decompressed size exceeds the configured limit. - ErrDecoderSizeExceeded = errors.New("decompressed size exceeds configured limit") - - // ErrUnknownDictionary is returned if the dictionary ID is unknown. - // For the time being dictionaries are not supported. - ErrUnknownDictionary = errors.New("unknown dictionary") - - // ErrFrameSizeExceeded is returned if the stated frame size is exceeded. - // This is only returned if SingleSegment is specified on the frame. - ErrFrameSizeExceeded = errors.New("frame size exceeded") - - // ErrCRCMismatch is returned if CRC mismatches. - ErrCRCMismatch = errors.New("CRC check failed") - - // ErrDecoderClosed will be returned if the Decoder was used after - // Close has been called. - ErrDecoderClosed = errors.New("decoder used after Close") -) - -func println(a ...interface{}) { - if debug { - log.Println(a...) - } -} - -func printf(format string, a ...interface{}) { - if debug { - log.Printf(format, a...) - } -} - -// matchLenFast does matching, but will not match the last up to 7 bytes. -func matchLenFast(a, b []byte) int { - endI := len(a) & (math.MaxInt32 - 7) - for i := 0; i < endI; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - return i + bits.TrailingZeros64(diff)>>3 - } - } - return endI -} - -// matchLen returns the maximum length. -// a must be the shortest of the two. -// The function also returns whether all bytes matched. -func matchLen(a, b []byte) int { - b = b[:len(a)] - for i := 0; i < len(a)-7; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - return i + (bits.TrailingZeros64(diff) >> 3) - } - } - - checked := (len(a) >> 3) << 3 - a = a[checked:] - b = b[checked:] - for i := range a { - if a[i] != b[i] { - return i + checked - } - } - return len(a) + checked -} - -func load3232(b []byte, i int32) uint32 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:4] - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func load6432(b []byte, i int32) uint64 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:8] - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -func load64(b []byte, i int) uint64 { - // Help the compiler eliminate bounds checks on the read so it can be done in a single read. - b = b[i:] - b = b[:8] - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} diff --git a/backend/vendor/github.com/klauspost/pgzip/.gitignore b/backend/vendor/github.com/klauspost/pgzip/.gitignore deleted file mode 100644 index daf913b1..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof diff --git a/backend/vendor/github.com/klauspost/pgzip/.travis.yml b/backend/vendor/github.com/klauspost/pgzip/.travis.yml deleted file mode 100644 index acfec4bb..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: go - -os: - - linux - - osx - -go: - - 1.13.x - - 1.14.x - - 1.15.x - - master - -env: - - GO111MODULE=off - -script: - - diff <(gofmt -d .) <(printf "") - - go test -v -cpu=1,2,4 . - - go test -v -cpu=2 -race -short . - -matrix: - allow_failures: - - go: 'master' - fast_finish: true diff --git a/backend/vendor/github.com/klauspost/pgzip/GO_LICENSE b/backend/vendor/github.com/klauspost/pgzip/GO_LICENSE deleted file mode 100644 index 74487567..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/GO_LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/klauspost/pgzip/LICENSE b/backend/vendor/github.com/klauspost/pgzip/LICENSE deleted file mode 100644 index 3909da41..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2014 Klaus Post - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/klauspost/pgzip/README.md b/backend/vendor/github.com/klauspost/pgzip/README.md deleted file mode 100644 index 171b978f..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/README.md +++ /dev/null @@ -1,135 +0,0 @@ -pgzip -===== - -Go parallel gzip compression/decompression. This is a fully gzip compatible drop in replacement for "compress/gzip". - -This will split compression into blocks that are compressed in parallel. -This can be useful for compressing big amounts of data. The output is a standard gzip file. - -The gzip decompression is modified so it decompresses ahead of the current reader. -This means that reads will be non-blocking if the decompressor can keep ahead of your code reading from it. -CRC calculation also takes place in a separate goroutine. - -You should only use this if you are (de)compressing big amounts of data, -say **more than 1MB** at the time, otherwise you will not see any benefit, -and it will likely be faster to use the internal gzip library -or [this package](https://github.com/klauspost/compress). - -It is important to note that this library creates and reads *standard gzip files*. -You do not have to match the compressor/decompressor to get the described speedups, -and the gzip files are fully compatible with other gzip readers/writers. - -A golang variant of this is [bgzf](https://godoc.org/github.com/biogo/hts/bgzf), -which has the same feature, as well as seeking in the resulting file. -The only drawback is a slightly bigger overhead compared to this and pure gzip. -See a comparison below. - -[![GoDoc][1]][2] [![Build Status][3]][4] - -[1]: https://godoc.org/github.com/klauspost/pgzip?status.svg -[2]: https://godoc.org/github.com/klauspost/pgzip -[3]: https://travis-ci.org/klauspost/pgzip.svg -[4]: https://travis-ci.org/klauspost/pgzip - -Installation -==== -```go get github.com/klauspost/pgzip/...``` - -You might need to get/update the dependencies: - -``` -go get -u github.com/klauspost/compress -``` - -Usage -==== -[Godoc Doumentation](https://godoc.org/github.com/klauspost/pgzip) - -To use as a replacement for gzip, exchange - -```import "compress/gzip"``` -with -```import gzip "github.com/klauspost/pgzip"```. - -# Changes - -* Oct 6, 2016: Fixed an issue if the destination writer returned an error. -* Oct 6, 2016: Better buffer reuse, should now generate less garbage. -* Oct 6, 2016: Output does not change based on write sizes. -* Dec 8, 2015: Decoder now supports the io.WriterTo interface, giving a speedup and less GC pressure. -* Oct 9, 2015: Reduced allocations by ~35 by using sync.Pool. ~15% overall speedup. - -Changes in [github.com/klauspost/compress](https://github.com/klauspost/compress#changelog) are also carried over, so see that for more changes. - -## Compression -The simplest way to use this is to simply do the same as you would when using [compress/gzip](http://golang.org/pkg/compress/gzip). - -To change the block size, use the added (*pgzip.Writer).SetConcurrency(blockSize, blocks int) function. With this you can control the approximate size of your blocks, as well as how many you want to be processing in parallel. Default values for this is SetConcurrency(1MB, runtime.GOMAXPROCS(0)), meaning blocks are split at 1 MB and up to the number of CPU threads blocks can be processing at once before the writer blocks. - - -Example: -``` -var b bytes.Buffer -w := gzip.NewWriter(&b) -w.SetConcurrency(100000, 10) -w.Write([]byte("hello, world\n")) -w.Close() -``` - -To get any performance gains, you should at least be compressing more than 1 megabyte of data at the time. - -You should at least have a block size of 100k and at least a number of blocks that match the number of cores your would like to utilize, but about twice the number of blocks would be the best. - -Another side effect of this is, that it is likely to speed up your other code, since writes to the compressor only blocks if the compressor is already compressing the number of blocks you have specified. This also means you don't have worry about buffering input to the compressor. - -## Decompression - -Decompression works similar to compression. That means that you simply call pgzip the same way as you would call [compress/gzip](http://golang.org/pkg/compress/gzip). - -The only difference is that if you want to specify your own readahead, you have to use `pgzip.NewReaderN(r io.Reader, blockSize, blocks int)` to get a reader with your custom blocksizes. The `blockSize` is the size of each block decoded, and `blocks` is the maximum number of blocks that is decoded ahead. - -See [Example on playground](http://play.golang.org/p/uHv1B5NbDh) - -Performance -==== -## Compression - -See my blog post in [Benchmarks of Golang Gzip](https://blog.klauspost.com/go-gzipdeflate-benchmarks/). - -Compression cost is usually about 0.2% with default settings with a block size of 250k. - -Example with GOMAXPROC set to 32 (16 core CPU) - -Content is [Matt Mahoneys 10GB corpus](http://mattmahoney.net/dc/10gb.html). Compression level 6. - -Compressor | MB/sec | speedup | size | size overhead (lower=better) -------------|----------|---------|------|--------- -[gzip](http://golang.org/pkg/compress/gzip) (golang) | 15.44MB/s (1 thread) | 1.0x | 4781329307 | 0% -[gzip](http://github.com/klauspost/compress/gzip) (klauspost) | 135.04MB/s (1 thread) | 8.74x | 4894858258 | +2.37% -[pgzip](https://github.com/klauspost/pgzip) (klauspost) | 1573.23MB/s| 101.9x | 4902285651 | +2.53% -[bgzf](https://godoc.org/github.com/biogo/hts/bgzf) (biogo) | 361.40MB/s | 23.4x | 4869686090 | +1.85% -[pargzip](https://godoc.org/github.com/golang/build/pargzip) (builder) | 306.01MB/s | 19.8x | 4786890417 | +0.12% - -pgzip also contains a [linear time compression](https://github.com/klauspost/compress#linear-time-compression-huffman-only) mode, that will allow compression at ~250MB per core per second, independent of the content. - -See the [complete sheet](https://docs.google.com/spreadsheets/d/1nuNE2nPfuINCZJRMt6wFWhKpToF95I47XjSsc-1rbPQ/edit?usp=sharing) for different content types and compression settings. - -## Decompression - -The decompression speedup is there because it allows you to do other work while the decompression is taking place. - -In the example above, the numbers are as follows on a 4 CPU machine: - -Decompressor | Time | Speedup --------------|------|-------- -[gzip](http://golang.org/pkg/compress/gzip) (golang) | 1m28.85s | 0% -[pgzip](https://github.com/klauspost/pgzip) (golang) | 43.48s | 104% - -But wait, since gzip decompression is inherently singlethreaded (aside from CRC calculation) how can it be more than 100% faster? Because pgzip due to its design also acts as a buffer. When using unbuffered gzip, you are also waiting for io when you are decompressing. If the gzip decoder can keep up, it will always have data ready for your reader, and you will not be waiting for input to the gzip decompressor to complete. - -This is pretty much an optimal situation for pgzip, but it reflects most common usecases for CPU intensive gzip usage. - -I haven't included [bgzf](https://godoc.org/github.com/biogo/hts/bgzf) in this comparison, since it only can decompress files created by a compatible encoder, and therefore cannot be considered a generic gzip decompressor. But if you are able to compress your files with a bgzf compatible program, you can expect it to scale beyond 100%. - -# License -This contains large portions of code from the go repository - see GO_LICENSE for more information. The changes are released under MIT License. See LICENSE for more information. diff --git a/backend/vendor/github.com/klauspost/pgzip/gunzip.go b/backend/vendor/github.com/klauspost/pgzip/gunzip.go deleted file mode 100644 index d1ae730b..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/gunzip.go +++ /dev/null @@ -1,584 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package pgzip implements reading and writing of gzip format compressed files, -// as specified in RFC 1952. -// -// This is a drop in replacement for "compress/gzip". -// This will split compression into blocks that are compressed in parallel. -// This can be useful for compressing big amounts of data. -// The gzip decompression has not been modified, but remains in the package, -// so you can use it as a complete replacement for "compress/gzip". -// -// See more at https://github.com/klauspost/pgzip -package pgzip - -import ( - "bufio" - "errors" - "hash" - "hash/crc32" - "io" - "sync" - "time" - - "github.com/klauspost/compress/flate" -) - -const ( - gzipID1 = 0x1f - gzipID2 = 0x8b - gzipDeflate = 8 - flagText = 1 << 0 - flagHdrCrc = 1 << 1 - flagExtra = 1 << 2 - flagName = 1 << 3 - flagComment = 1 << 4 -) - -func makeReader(r io.Reader) flate.Reader { - if rr, ok := r.(flate.Reader); ok { - return rr - } - return bufio.NewReader(r) -} - -var ( - // ErrChecksum is returned when reading GZIP data that has an invalid checksum. - ErrChecksum = errors.New("gzip: invalid checksum") - // ErrHeader is returned when reading GZIP data that has an invalid header. - ErrHeader = errors.New("gzip: invalid header") -) - -// The gzip file stores a header giving metadata about the compressed file. -// That header is exposed as the fields of the Writer and Reader structs. -type Header struct { - Comment string // comment - Extra []byte // "extra data" - ModTime time.Time // modification time - Name string // file name - OS byte // operating system type -} - -// A Reader is an io.Reader that can be read to retrieve -// uncompressed data from a gzip-format compressed file. -// -// In general, a gzip file can be a concatenation of gzip files, -// each with its own header. Reads from the Reader -// return the concatenation of the uncompressed data of each. -// Only the first header is recorded in the Reader fields. -// -// Gzip files store a length and checksum of the uncompressed data. -// The Reader will return a ErrChecksum when Read -// reaches the end of the uncompressed data if it does not -// have the expected length or checksum. Clients should treat data -// returned by Read as tentative until they receive the io.EOF -// marking the end of the data. -type Reader struct { - Header - r flate.Reader - decompressor io.ReadCloser - digest hash.Hash32 - size uint32 - flg byte - buf [512]byte - err error - closeErr chan error - multistream bool - - readAhead chan read - roff int // read offset - current []byte - closeReader chan struct{} - lastBlock bool - blockSize int - blocks int - - activeRA bool // Indication if readahead is active - mu sync.Mutex // Lock for above - - blockPool chan []byte -} - -type read struct { - b []byte - err error -} - -// NewReader creates a new Reader reading the given reader. -// The implementation buffers input and may read more data than necessary from r. -// It is the caller's responsibility to call Close on the Reader when done. -func NewReader(r io.Reader) (*Reader, error) { - z := new(Reader) - z.blocks = defaultBlocks - z.blockSize = defaultBlockSize - z.r = makeReader(r) - z.digest = crc32.NewIEEE() - z.multistream = true - z.blockPool = make(chan []byte, z.blocks) - for i := 0; i < z.blocks; i++ { - z.blockPool <- make([]byte, z.blockSize) - } - if err := z.readHeader(true); err != nil { - return nil, err - } - return z, nil -} - -// NewReaderN creates a new Reader reading the given reader. -// The implementation buffers input and may read more data than necessary from r. -// It is the caller's responsibility to call Close on the Reader when done. -// -// With this you can control the approximate size of your blocks, -// as well as how many blocks you want to have prefetched. -// -// Default values for this is blockSize = 250000, blocks = 16, -// meaning up to 16 blocks of maximum 250000 bytes will be -// prefetched. -func NewReaderN(r io.Reader, blockSize, blocks int) (*Reader, error) { - z := new(Reader) - z.blocks = blocks - z.blockSize = blockSize - z.r = makeReader(r) - z.digest = crc32.NewIEEE() - z.multistream = true - - // Account for too small values - if z.blocks <= 0 { - z.blocks = defaultBlocks - } - if z.blockSize <= 512 { - z.blockSize = defaultBlockSize - } - z.blockPool = make(chan []byte, z.blocks) - for i := 0; i < z.blocks; i++ { - z.blockPool <- make([]byte, z.blockSize) - } - if err := z.readHeader(true); err != nil { - return nil, err - } - return z, nil -} - -// Reset discards the Reader z's state and makes it equivalent to the -// result of its original state from NewReader, but reading from r instead. -// This permits reusing a Reader rather than allocating a new one. -func (z *Reader) Reset(r io.Reader) error { - z.killReadAhead() - z.r = makeReader(r) - z.digest = crc32.NewIEEE() - z.size = 0 - z.err = nil - z.multistream = true - - // Account for uninitialized values - if z.blocks <= 0 { - z.blocks = defaultBlocks - } - if z.blockSize <= 512 { - z.blockSize = defaultBlockSize - } - - if z.blockPool == nil { - z.blockPool = make(chan []byte, z.blocks) - for i := 0; i < z.blocks; i++ { - z.blockPool <- make([]byte, z.blockSize) - } - } - - return z.readHeader(true) -} - -// Multistream controls whether the reader supports multistream files. -// -// If enabled (the default), the Reader expects the input to be a sequence -// of individually gzipped data streams, each with its own header and -// trailer, ending at EOF. The effect is that the concatenation of a sequence -// of gzipped files is treated as equivalent to the gzip of the concatenation -// of the sequence. This is standard behavior for gzip readers. -// -// Calling Multistream(false) disables this behavior; disabling the behavior -// can be useful when reading file formats that distinguish individual gzip -// data streams or mix gzip data streams with other data streams. -// In this mode, when the Reader reaches the end of the data stream, -// Read returns io.EOF. If the underlying reader implements io.ByteReader, -// it will be left positioned just after the gzip stream. -// To start the next stream, call z.Reset(r) followed by z.Multistream(false). -// If there is no next stream, z.Reset(r) will return io.EOF. -func (z *Reader) Multistream(ok bool) { - z.multistream = ok -} - -// GZIP (RFC 1952) is little-endian, unlike ZLIB (RFC 1950). -func get4(p []byte) uint32 { - return uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24 -} - -func (z *Reader) readString() (string, error) { - var err error - needconv := false - for i := 0; ; i++ { - if i >= len(z.buf) { - return "", ErrHeader - } - z.buf[i], err = z.r.ReadByte() - if err != nil { - return "", err - } - if z.buf[i] > 0x7f { - needconv = true - } - if z.buf[i] == 0 { - // GZIP (RFC 1952) specifies that strings are NUL-terminated ISO 8859-1 (Latin-1). - if needconv { - s := make([]rune, 0, i) - for _, v := range z.buf[0:i] { - s = append(s, rune(v)) - } - return string(s), nil - } - return string(z.buf[0:i]), nil - } - } -} - -func (z *Reader) read2() (uint32, error) { - _, err := io.ReadFull(z.r, z.buf[0:2]) - if err != nil { - return 0, err - } - return uint32(z.buf[0]) | uint32(z.buf[1])<<8, nil -} - -func (z *Reader) readHeader(save bool) error { - z.killReadAhead() - - _, err := io.ReadFull(z.r, z.buf[0:10]) - if err != nil { - return err - } - if z.buf[0] != gzipID1 || z.buf[1] != gzipID2 || z.buf[2] != gzipDeflate { - return ErrHeader - } - z.flg = z.buf[3] - if save { - z.ModTime = time.Unix(int64(get4(z.buf[4:8])), 0) - // z.buf[8] is xfl, ignored - z.OS = z.buf[9] - } - z.digest.Reset() - z.digest.Write(z.buf[0:10]) - - if z.flg&flagExtra != 0 { - n, err := z.read2() - if err != nil { - return err - } - data := make([]byte, n) - if _, err = io.ReadFull(z.r, data); err != nil { - return err - } - if save { - z.Extra = data - } - } - - var s string - if z.flg&flagName != 0 { - if s, err = z.readString(); err != nil { - return err - } - if save { - z.Name = s - } - } - - if z.flg&flagComment != 0 { - if s, err = z.readString(); err != nil { - return err - } - if save { - z.Comment = s - } - } - - if z.flg&flagHdrCrc != 0 { - n, err := z.read2() - if err != nil { - return err - } - sum := z.digest.Sum32() & 0xFFFF - if n != sum { - return ErrHeader - } - } - - z.digest.Reset() - z.decompressor = flate.NewReader(z.r) - z.doReadAhead() - return nil -} - -func (z *Reader) killReadAhead() error { - z.mu.Lock() - defer z.mu.Unlock() - if z.activeRA { - if z.closeReader != nil { - close(z.closeReader) - } - - // Wait for decompressor to be closed and return error, if any. - e, ok := <-z.closeErr - z.activeRA = false - - for blk := range z.readAhead { - if blk.b != nil { - z.blockPool <- blk.b - } - } - if cap(z.current) > 0 { - z.blockPool <- z.current - z.current = nil - } - if !ok { - // Channel is closed, so if there was any error it has already been returned. - return nil - } - return e - } - return nil -} - -// Starts readahead. -// Will return on error (including io.EOF) -// or when z.closeReader is closed. -func (z *Reader) doReadAhead() { - z.mu.Lock() - defer z.mu.Unlock() - z.activeRA = true - - if z.blocks <= 0 { - z.blocks = defaultBlocks - } - if z.blockSize <= 512 { - z.blockSize = defaultBlockSize - } - ra := make(chan read, z.blocks) - z.readAhead = ra - closeReader := make(chan struct{}, 0) - z.closeReader = closeReader - z.lastBlock = false - closeErr := make(chan error, 1) - z.closeErr = closeErr - z.size = 0 - z.roff = 0 - z.current = nil - decomp := z.decompressor - - go func() { - defer func() { - closeErr <- decomp.Close() - close(closeErr) - close(ra) - }() - - // We hold a local reference to digest, since - // it way be changed by reset. - digest := z.digest - var wg sync.WaitGroup - for { - var buf []byte - select { - case buf = <-z.blockPool: - case <-closeReader: - return - } - buf = buf[0:z.blockSize] - // Try to fill the buffer - n, err := io.ReadFull(decomp, buf) - if err == io.ErrUnexpectedEOF { - if n > 0 { - err = nil - } else { - // If we got zero bytes, we need to establish if - // we reached end of stream or truncated stream. - _, err = decomp.Read([]byte{}) - if err == io.EOF { - err = nil - } - } - } - if n < len(buf) { - buf = buf[0:n] - } - wg.Wait() - wg.Add(1) - go func() { - digest.Write(buf) - wg.Done() - }() - z.size += uint32(n) - - // If we return any error, out digest must be ready - if err != nil { - wg.Wait() - } - select { - case z.readAhead <- read{b: buf, err: err}: - case <-closeReader: - // Sent on close, we don't care about the next results - z.blockPool <- buf - return - } - if err != nil { - return - } - } - }() -} - -func (z *Reader) Read(p []byte) (n int, err error) { - if z.err != nil { - return 0, z.err - } - if len(p) == 0 { - return 0, nil - } - - for { - if len(z.current) == 0 && !z.lastBlock { - read := <-z.readAhead - - if read.err != nil { - // If not nil, the reader will have exited - z.closeReader = nil - - if read.err != io.EOF { - z.err = read.err - return - } - if read.err == io.EOF { - z.lastBlock = true - err = nil - } - } - z.current = read.b - z.roff = 0 - } - avail := z.current[z.roff:] - if len(p) >= len(avail) { - // If len(p) >= len(current), return all content of current - n = copy(p, avail) - z.blockPool <- z.current - z.current = nil - if z.lastBlock { - err = io.EOF - break - } - } else { - // We copy as much as there is space for - n = copy(p, avail) - z.roff += n - } - return - } - - // Finished file; check checksum + size. - if _, err := io.ReadFull(z.r, z.buf[0:8]); err != nil { - z.err = err - return 0, err - } - crc32, isize := get4(z.buf[0:4]), get4(z.buf[4:8]) - sum := z.digest.Sum32() - if sum != crc32 || isize != z.size { - z.err = ErrChecksum - return 0, z.err - } - - // File is ok; should we attempt reading one more? - if !z.multistream { - return 0, io.EOF - } - - // Is there another? - if err = z.readHeader(false); err != nil { - z.err = err - return - } - - // Yes. Reset and read from it. - return z.Read(p) -} - -func (z *Reader) WriteTo(w io.Writer) (n int64, err error) { - total := int64(0) - for { - if z.err != nil { - return total, z.err - } - // We write both to output and digest. - for { - // Read from input - read := <-z.readAhead - if read.err != nil { - // If not nil, the reader will have exited - z.closeReader = nil - - if read.err != io.EOF { - z.err = read.err - return total, z.err - } - if read.err == io.EOF { - z.lastBlock = true - err = nil - } - } - // Write what we got - n, err := w.Write(read.b) - if n != len(read.b) { - return total, io.ErrShortWrite - } - total += int64(n) - if err != nil { - return total, err - } - // Put block back - z.blockPool <- read.b - if z.lastBlock { - break - } - } - - // Finished file; check checksum + size. - if _, err := io.ReadFull(z.r, z.buf[0:8]); err != nil { - z.err = err - return total, err - } - crc32, isize := get4(z.buf[0:4]), get4(z.buf[4:8]) - sum := z.digest.Sum32() - if sum != crc32 || isize != z.size { - z.err = ErrChecksum - return total, z.err - } - // File is ok; should we attempt reading one more? - if !z.multistream { - return total, nil - } - - // Is there another? - err = z.readHeader(false) - if err == io.EOF { - return total, nil - } - if err != nil { - z.err = err - return total, err - } - } -} - -// Close closes the Reader. It does not close the underlying io.Reader. -func (z *Reader) Close() error { - return z.killReadAhead() -} diff --git a/backend/vendor/github.com/klauspost/pgzip/gzip.go b/backend/vendor/github.com/klauspost/pgzip/gzip.go deleted file mode 100644 index 257c4d29..00000000 --- a/backend/vendor/github.com/klauspost/pgzip/gzip.go +++ /dev/null @@ -1,519 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pgzip - -import ( - "bytes" - "errors" - "fmt" - "hash" - "hash/crc32" - "io" - "runtime" - "sync" - "time" - - "github.com/klauspost/compress/flate" -) - -const ( - defaultBlockSize = 1 << 20 - tailSize = 16384 - defaultBlocks = 4 -) - -// These constants are copied from the flate package, so that code that imports -// "compress/gzip" does not also have to import "compress/flate". -const ( - NoCompression = flate.NoCompression - BestSpeed = flate.BestSpeed - BestCompression = flate.BestCompression - DefaultCompression = flate.DefaultCompression - ConstantCompression = flate.ConstantCompression - HuffmanOnly = flate.HuffmanOnly -) - -// A Writer is an io.WriteCloser. -// Writes to a Writer are compressed and written to w. -type Writer struct { - Header - w io.Writer - level int - wroteHeader bool - blockSize int - blocks int - currentBuffer []byte - prevTail []byte - digest hash.Hash32 - size int - closed bool - buf [10]byte - errMu sync.RWMutex - err error - pushedErr chan struct{} - results chan result - dictFlatePool sync.Pool - dstPool sync.Pool - wg sync.WaitGroup -} - -type result struct { - result chan []byte - notifyWritten chan struct{} -} - -// Use SetConcurrency to finetune the concurrency level if needed. -// -// With this you can control the approximate size of your blocks, -// as well as how many you want to be processing in parallel. -// -// Default values for this is SetConcurrency(defaultBlockSize, runtime.GOMAXPROCS(0)), -// meaning blocks are split at 1 MB and up to the number of CPU threads -// can be processing at once before the writer blocks. -func (z *Writer) SetConcurrency(blockSize, blocks int) error { - if blockSize <= tailSize { - return fmt.Errorf("gzip: block size cannot be less than or equal to %d", tailSize) - } - if blocks <= 0 { - return errors.New("gzip: blocks cannot be zero or less") - } - if blockSize == z.blockSize && blocks == z.blocks { - return nil - } - z.blockSize = blockSize - z.results = make(chan result, blocks) - z.blocks = blocks - z.dstPool.New = func() interface{} { return make([]byte, 0, blockSize+(blockSize)>>4) } - return nil -} - -// NewWriter returns a new Writer. -// Writes to the returned writer are compressed and written to w. -// -// It is the caller's responsibility to call Close on the WriteCloser when done. -// Writes may be buffered and not flushed until Close. -// -// Callers that wish to set the fields in Writer.Header must do so before -// the first call to Write or Close. The Comment and Name header fields are -// UTF-8 strings in Go, but the underlying format requires NUL-terminated ISO -// 8859-1 (Latin-1). NUL or non-Latin-1 runes in those strings will lead to an -// error on Write. -func NewWriter(w io.Writer) *Writer { - z, _ := NewWriterLevel(w, DefaultCompression) - return z -} - -// NewWriterLevel is like NewWriter but specifies the compression level instead -// of assuming DefaultCompression. -// -// The compression level can be DefaultCompression, NoCompression, or any -// integer value between BestSpeed and BestCompression inclusive. The error -// returned will be nil if the level is valid. -func NewWriterLevel(w io.Writer, level int) (*Writer, error) { - if level < ConstantCompression || level > BestCompression { - return nil, fmt.Errorf("gzip: invalid compression level: %d", level) - } - z := new(Writer) - z.SetConcurrency(defaultBlockSize, runtime.GOMAXPROCS(0)) - z.init(w, level) - return z, nil -} - -// This function must be used by goroutines to set an -// error condition, since z.err access is restricted -// to the callers goruotine. -func (z *Writer) pushError(err error) { - z.errMu.Lock() - if z.err != nil { - z.errMu.Unlock() - return - } - z.err = err - close(z.pushedErr) - z.errMu.Unlock() -} - -func (z *Writer) init(w io.Writer, level int) { - z.wg.Wait() - digest := z.digest - if digest != nil { - digest.Reset() - } else { - digest = crc32.NewIEEE() - } - z.Header = Header{OS: 255} - z.w = w - z.level = level - z.digest = digest - z.pushedErr = make(chan struct{}, 0) - z.results = make(chan result, z.blocks) - z.err = nil - z.closed = false - z.Comment = "" - z.Extra = nil - z.ModTime = time.Time{} - z.wroteHeader = false - z.currentBuffer = nil - z.buf = [10]byte{} - z.prevTail = nil - z.size = 0 - if z.dictFlatePool.New == nil { - z.dictFlatePool.New = func() interface{} { - f, _ := flate.NewWriterDict(w, level, nil) - return f - } - } -} - -// Reset discards the Writer z's state and makes it equivalent to the -// result of its original state from NewWriter or NewWriterLevel, but -// writing to w instead. This permits reusing a Writer rather than -// allocating a new one. -func (z *Writer) Reset(w io.Writer) { - if z.results != nil && !z.closed { - close(z.results) - } - z.SetConcurrency(defaultBlockSize, runtime.GOMAXPROCS(0)) - z.init(w, z.level) -} - -// GZIP (RFC 1952) is little-endian, unlike ZLIB (RFC 1950). -func put2(p []byte, v uint16) { - p[0] = uint8(v >> 0) - p[1] = uint8(v >> 8) -} - -func put4(p []byte, v uint32) { - p[0] = uint8(v >> 0) - p[1] = uint8(v >> 8) - p[2] = uint8(v >> 16) - p[3] = uint8(v >> 24) -} - -// writeBytes writes a length-prefixed byte slice to z.w. -func (z *Writer) writeBytes(b []byte) error { - if len(b) > 0xffff { - return errors.New("gzip.Write: Extra data is too large") - } - put2(z.buf[0:2], uint16(len(b))) - _, err := z.w.Write(z.buf[0:2]) - if err != nil { - return err - } - _, err = z.w.Write(b) - return err -} - -// writeString writes a UTF-8 string s in GZIP's format to z.w. -// GZIP (RFC 1952) specifies that strings are NUL-terminated ISO 8859-1 (Latin-1). -func (z *Writer) writeString(s string) (err error) { - // GZIP stores Latin-1 strings; error if non-Latin-1; convert if non-ASCII. - needconv := false - for _, v := range s { - if v == 0 || v > 0xff { - return errors.New("gzip.Write: non-Latin-1 header string") - } - if v > 0x7f { - needconv = true - } - } - if needconv { - b := make([]byte, 0, len(s)) - for _, v := range s { - b = append(b, byte(v)) - } - _, err = z.w.Write(b) - } else { - _, err = io.WriteString(z.w, s) - } - if err != nil { - return err - } - // GZIP strings are NUL-terminated. - z.buf[0] = 0 - _, err = z.w.Write(z.buf[0:1]) - return err -} - -// compressCurrent will compress the data currently buffered -// This should only be called from the main writer/flush/closer -func (z *Writer) compressCurrent(flush bool) { - c := z.currentBuffer - if len(c) > z.blockSize { - // This can never happen through the public interface. - panic("len(z.currentBuffer) > z.blockSize (most likely due to concurrent Write race)") - } - - r := result{} - r.result = make(chan []byte, 1) - r.notifyWritten = make(chan struct{}, 0) - // Reserve a result slot - select { - case z.results <- r: - case <-z.pushedErr: - return - } - - z.wg.Add(1) - tail := z.prevTail - if len(c) > tailSize { - buf := z.dstPool.Get().([]byte) // Put in .compressBlock - // Copy tail from current buffer before handing the buffer over to the - // compressBlock goroutine. - buf = append(buf[:0], c[len(c)-tailSize:]...) - z.prevTail = buf - } else { - z.prevTail = nil - } - go z.compressBlock(c, tail, r, z.closed) - - z.currentBuffer = z.dstPool.Get().([]byte) // Put in .compressBlock - z.currentBuffer = z.currentBuffer[:0] - - // Wait if flushing - if flush { - <-r.notifyWritten - } -} - -// Returns an error if it has been set. -// Cannot be used by functions that are from internal goroutines. -func (z *Writer) checkError() error { - z.errMu.RLock() - err := z.err - z.errMu.RUnlock() - return err -} - -// Write writes a compressed form of p to the underlying io.Writer. The -// compressed bytes are not necessarily flushed to output until -// the Writer is closed or Flush() is called. -// -// The function will return quickly, if there are unused buffers. -// The sent slice (p) is copied, and the caller is free to re-use the buffer -// when the function returns. -// -// Errors that occur during compression will be reported later, and a nil error -// does not signify that the compression succeeded (since it is most likely still running) -// That means that the call that returns an error may not be the call that caused it. -// Only Flush and Close functions are guaranteed to return any errors up to that point. -func (z *Writer) Write(p []byte) (int, error) { - if err := z.checkError(); err != nil { - return 0, err - } - // Write the GZIP header lazily. - if !z.wroteHeader { - z.wroteHeader = true - z.buf[0] = gzipID1 - z.buf[1] = gzipID2 - z.buf[2] = gzipDeflate - z.buf[3] = 0 - if z.Extra != nil { - z.buf[3] |= 0x04 - } - if z.Name != "" { - z.buf[3] |= 0x08 - } - if z.Comment != "" { - z.buf[3] |= 0x10 - } - put4(z.buf[4:8], uint32(z.ModTime.Unix())) - if z.level == BestCompression { - z.buf[8] = 2 - } else if z.level == BestSpeed { - z.buf[8] = 4 - } else { - z.buf[8] = 0 - } - z.buf[9] = z.OS - var n int - var err error - n, err = z.w.Write(z.buf[0:10]) - if err != nil { - z.pushError(err) - return n, err - } - if z.Extra != nil { - err = z.writeBytes(z.Extra) - if err != nil { - z.pushError(err) - return n, err - } - } - if z.Name != "" { - err = z.writeString(z.Name) - if err != nil { - z.pushError(err) - return n, err - } - } - if z.Comment != "" { - err = z.writeString(z.Comment) - if err != nil { - z.pushError(err) - return n, err - } - } - // Start receiving data from compressors - go func() { - listen := z.results - var failed bool - for { - r, ok := <-listen - // If closed, we are finished. - if !ok { - return - } - if failed { - close(r.notifyWritten) - continue - } - buf := <-r.result - n, err := z.w.Write(buf) - if err != nil { - z.pushError(err) - close(r.notifyWritten) - failed = true - continue - } - if n != len(buf) { - z.pushError(fmt.Errorf("gzip: short write %d should be %d", n, len(buf))) - failed = true - close(r.notifyWritten) - continue - } - z.dstPool.Put(buf) - close(r.notifyWritten) - } - }() - z.currentBuffer = z.dstPool.Get().([]byte) - z.currentBuffer = z.currentBuffer[:0] - } - q := p - for len(q) > 0 { - length := len(q) - if length+len(z.currentBuffer) > z.blockSize { - length = z.blockSize - len(z.currentBuffer) - } - z.digest.Write(q[:length]) - z.currentBuffer = append(z.currentBuffer, q[:length]...) - if len(z.currentBuffer) > z.blockSize { - panic("z.currentBuffer too large (most likely due to concurrent Write race)") - } - if len(z.currentBuffer) == z.blockSize { - z.compressCurrent(false) - if err := z.checkError(); err != nil { - return len(p) - len(q), err - } - } - z.size += length - q = q[length:] - } - return len(p), z.checkError() -} - -// Step 1: compresses buffer to buffer -// Step 2: send writer to channel -// Step 3: Close result channel to indicate we are done -func (z *Writer) compressBlock(p, prevTail []byte, r result, closed bool) { - defer func() { - close(r.result) - z.wg.Done() - }() - buf := z.dstPool.Get().([]byte) // Corresponding Put in .Write's result writer - dest := bytes.NewBuffer(buf[:0]) - - compressor := z.dictFlatePool.Get().(*flate.Writer) // Put below - compressor.ResetDict(dest, prevTail) - compressor.Write(p) - z.dstPool.Put(p) // Corresponding Get in .Write and .compressCurrent - - err := compressor.Flush() - if err != nil { - z.pushError(err) - return - } - if closed { - err = compressor.Close() - if err != nil { - z.pushError(err) - return - } - } - z.dictFlatePool.Put(compressor) // Get above - - if prevTail != nil { - z.dstPool.Put(prevTail) // Get in .compressCurrent - } - - // Read back buffer - buf = dest.Bytes() - r.result <- buf -} - -// Flush flushes any pending compressed data to the underlying writer. -// -// It is useful mainly in compressed network protocols, to ensure that -// a remote reader has enough data to reconstruct a packet. Flush does -// not return until the data has been written. If the underlying -// writer returns an error, Flush returns that error. -// -// In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. -func (z *Writer) Flush() error { - if err := z.checkError(); err != nil { - return err - } - if z.closed { - return nil - } - if !z.wroteHeader { - _, err := z.Write(nil) - if err != nil { - return err - } - } - // We send current block to compression - z.compressCurrent(true) - - return z.checkError() -} - -// UncompressedSize will return the number of bytes written. -// pgzip only, not a function in the official gzip package. -func (z *Writer) UncompressedSize() int { - return z.size -} - -// Close closes the Writer, flushing any unwritten data to the underlying -// io.Writer, but does not close the underlying io.Writer. -func (z *Writer) Close() error { - if err := z.checkError(); err != nil { - return err - } - if z.closed { - return nil - } - - z.closed = true - if !z.wroteHeader { - z.Write(nil) - if err := z.checkError(); err != nil { - return err - } - } - z.compressCurrent(true) - if err := z.checkError(); err != nil { - return err - } - close(z.results) - put4(z.buf[0:4], z.digest.Sum32()) - put4(z.buf[4:8], uint32(z.size)) - _, err := z.w.Write(z.buf[0:8]) - if err != nil { - z.pushError(err) - return err - } - return nil -} diff --git a/backend/vendor/github.com/magiconair/properties/.gitignore b/backend/vendor/github.com/magiconair/properties/.gitignore deleted file mode 100644 index e7081ff5..00000000 --- a/backend/vendor/github.com/magiconair/properties/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.sublime-project -*.sublime-workspace -*.un~ -*.swp -.idea/ -*.iml diff --git a/backend/vendor/github.com/magiconair/properties/CHANGELOG.md b/backend/vendor/github.com/magiconair/properties/CHANGELOG.md deleted file mode 100644 index 842e8e24..00000000 --- a/backend/vendor/github.com/magiconair/properties/CHANGELOG.md +++ /dev/null @@ -1,205 +0,0 @@ -## Changelog - -### [1.8.7](https://github.com/magiconair/properties/tree/v1.8.7) - 08 Dec 2022 - - * [PR #65](https://github.com/magiconair/properties/pull/65): Speedup Merge - - Thanks to [@AdityaVallabh](https://github.com/AdityaVallabh) for the patch. - - * [PR #66](https://github.com/magiconair/properties/pull/66): use github actions - -### [1.8.6](https://github.com/magiconair/properties/tree/v1.8.6) - 23 Feb 2022 - - * [PR #57](https://github.com/magiconair/properties/pull/57):Fix "unreachable code" lint error - - Thanks to [@ellie](https://github.com/ellie) for the patch. - - * [PR #63](https://github.com/magiconair/properties/pull/63): Make TestMustGetParsedDuration backwards compatible - - This patch ensures that the `TestMustGetParsedDuration` still works with `go1.3` to make the - author happy until it affects real users. - - Thanks to [@maage](https://github.com/maage) for the patch. - -### [1.8.5](https://github.com/magiconair/properties/tree/v1.8.5) - 24 Mar 2021 - - * [PR #55](https://github.com/magiconair/properties/pull/55): Fix: Encoding Bug in Comments - - When reading comments \ are loaded correctly, but when writing they are then - replaced by \\. This leads to wrong comments when writing and reading multiple times. - - Thanks to [@doxsch](https://github.com/doxsch) for the patch. - -### [1.8.4](https://github.com/magiconair/properties/tree/v1.8.4) - 23 Sep 2020 - - * [PR #50](https://github.com/magiconair/properties/pull/50): enhance error message for circular references - - Thanks to [@sriv](https://github.com/sriv) for the patch. - -### [1.8.3](https://github.com/magiconair/properties/tree/v1.8.3) - 14 Sep 2020 - - * [PR #49](https://github.com/magiconair/properties/pull/49): Include the key in error message causing the circular reference - - The change is include the key in the error message which is causing the circular - reference when parsing/loading the properties files. - - Thanks to [@haroon-sheikh](https://github.com/haroon-sheikh) for the patch. - -### [1.8.2](https://github.com/magiconair/properties/tree/v1.8.2) - 25 Aug 2020 - - * [PR #36](https://github.com/magiconair/properties/pull/36): Escape backslash on write - - This patch ensures that backslashes are escaped on write. Existing applications which - rely on the old behavior may need to be updated. - - Thanks to [@apesternikov](https://github.com/apesternikov) for the patch. - - * [PR #42](https://github.com/magiconair/properties/pull/42): Made Content-Type check whitespace agnostic in LoadURL() - - Thanks to [@aliras1](https://github.com/aliras1) for the patch. - - * [PR #41](https://github.com/magiconair/properties/pull/41): Make key/value separator configurable on Write() - - Thanks to [@mkjor](https://github.com/mkjor) for the patch. - - * [PR #40](https://github.com/magiconair/properties/pull/40): Add method to return a sorted list of keys - - Thanks to [@mkjor](https://github.com/mkjor) for the patch. - -### [1.8.1](https://github.com/magiconair/properties/tree/v1.8.1) - 10 May 2019 - - * [PR #35](https://github.com/magiconair/properties/pull/35): Close body always after request - - This patch ensures that in `LoadURL` the response body is always closed. - - Thanks to [@liubog2008](https://github.com/liubog2008) for the patch. - -### [1.8](https://github.com/magiconair/properties/tree/v1.8) - 15 May 2018 - - * [PR #26](https://github.com/magiconair/properties/pull/26): Disable expansion during loading - - This adds the option to disable property expansion during loading. - - Thanks to [@kmala](https://github.com/kmala) for the patch. - -### [1.7.6](https://github.com/magiconair/properties/tree/v1.7.6) - 14 Feb 2018 - - * [PR #29](https://github.com/magiconair/properties/pull/29): Reworked expansion logic to handle more complex cases. - - See PR for an example. - - Thanks to [@yobert](https://github.com/yobert) for the fix. - -### [1.7.5](https://github.com/magiconair/properties/tree/v1.7.5) - 13 Feb 2018 - - * [PR #28](https://github.com/magiconair/properties/pull/28): Support duplicate expansions in the same value - - Values which expand the same key multiple times (e.g. `key=${a} ${a}`) will no longer fail - with a `circular reference error`. - - Thanks to [@yobert](https://github.com/yobert) for the fix. - -### [1.7.4](https://github.com/magiconair/properties/tree/v1.7.4) - 31 Oct 2017 - - * [Issue #23](https://github.com/magiconair/properties/issues/23): Ignore blank lines with whitespaces - - * [PR #24](https://github.com/magiconair/properties/pull/24): Update keys when DisableExpansion is enabled - - Thanks to [@mgurov](https://github.com/mgurov) for the fix. - -### [1.7.3](https://github.com/magiconair/properties/tree/v1.7.3) - 10 Jul 2017 - - * [Issue #17](https://github.com/magiconair/properties/issues/17): Add [SetValue()](http://godoc.org/github.com/magiconair/properties#Properties.SetValue) method to set values generically - * [Issue #22](https://github.com/magiconair/properties/issues/22): Add [LoadMap()](http://godoc.org/github.com/magiconair/properties#LoadMap) function to load properties from a string map - -### [1.7.2](https://github.com/magiconair/properties/tree/v1.7.2) - 20 Mar 2017 - - * [Issue #15](https://github.com/magiconair/properties/issues/15): Drop gocheck dependency - * [PR #21](https://github.com/magiconair/properties/pull/21): Add [Map()](http://godoc.org/github.com/magiconair/properties#Properties.Map) and [FilterFunc()](http://godoc.org/github.com/magiconair/properties#Properties.FilterFunc) - -### [1.7.1](https://github.com/magiconair/properties/tree/v1.7.1) - 13 Jan 2017 - - * [Issue #14](https://github.com/magiconair/properties/issues/14): Decouple TestLoadExpandedFile from `$USER` - * [PR #12](https://github.com/magiconair/properties/pull/12): Load from files and URLs - * [PR #16](https://github.com/magiconair/properties/pull/16): Keep gofmt happy - * [PR #18](https://github.com/magiconair/properties/pull/18): Fix Delete() function - -### [1.7.0](https://github.com/magiconair/properties/tree/v1.7.0) - 20 Mar 2016 - - * [Issue #10](https://github.com/magiconair/properties/issues/10): Add [LoadURL,LoadURLs,MustLoadURL,MustLoadURLs](http://godoc.org/github.com/magiconair/properties#LoadURL) method to load properties from a URL. - * [Issue #11](https://github.com/magiconair/properties/issues/11): Add [LoadString,MustLoadString](http://godoc.org/github.com/magiconair/properties#LoadString) method to load properties from an UTF8 string. - * [PR #8](https://github.com/magiconair/properties/pull/8): Add [MustFlag](http://godoc.org/github.com/magiconair/properties#Properties.MustFlag) method to provide overrides via command line flags. (@pascaldekloe) - -### [1.6.0](https://github.com/magiconair/properties/tree/v1.6.0) - 11 Dec 2015 - - * Add [Decode](http://godoc.org/github.com/magiconair/properties#Properties.Decode) method to populate struct from properties via tags. - -### [1.5.6](https://github.com/magiconair/properties/tree/v1.5.6) - 18 Oct 2015 - - * Vendored in gopkg.in/check.v1 - -### [1.5.5](https://github.com/magiconair/properties/tree/v1.5.5) - 31 Jul 2015 - - * [PR #6](https://github.com/magiconair/properties/pull/6): Add [Delete](http://godoc.org/github.com/magiconair/properties#Properties.Delete) method to remove keys including comments. (@gerbenjacobs) - -### [1.5.4](https://github.com/magiconair/properties/tree/v1.5.4) - 23 Jun 2015 - - * [Issue #5](https://github.com/magiconair/properties/issues/5): Allow disabling of property expansion [DisableExpansion](http://godoc.org/github.com/magiconair/properties#Properties.DisableExpansion). When property expansion is disabled Properties become a simple key/value store and don't check for circular references. - -### [1.5.3](https://github.com/magiconair/properties/tree/v1.5.3) - 02 Jun 2015 - - * [Issue #4](https://github.com/magiconair/properties/issues/4): Maintain key order in [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) and [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) - -### [1.5.2](https://github.com/magiconair/properties/tree/v1.5.2) - 10 Apr 2015 - - * [Issue #3](https://github.com/magiconair/properties/issues/3): Don't print comments in [WriteComment()](http://godoc.org/github.com/magiconair/properties#Properties.WriteComment) if they are all empty - * Add clickable links to README - -### [1.5.1](https://github.com/magiconair/properties/tree/v1.5.1) - 08 Dec 2014 - - * Added [GetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.GetParsedDuration) and [MustGetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.MustGetParsedDuration) for values specified compatible with - [time.ParseDuration()](http://golang.org/pkg/time/#ParseDuration). - -### [1.5.0](https://github.com/magiconair/properties/tree/v1.5.0) - 18 Nov 2014 - - * Added support for single and multi-line comments (reading, writing and updating) - * The order of keys is now preserved - * Calling [Set()](http://godoc.org/github.com/magiconair/properties#Properties.Set) with an empty key now silently ignores the call and does not create a new entry - * Added a [MustSet()](http://godoc.org/github.com/magiconair/properties#Properties.MustSet) method - * Migrated test library from launchpad.net/gocheck to [gopkg.in/check.v1](http://gopkg.in/check.v1) - -### [1.4.2](https://github.com/magiconair/properties/tree/v1.4.2) - 15 Nov 2014 - - * [Issue #2](https://github.com/magiconair/properties/issues/2): Fixed goroutine leak in parser which created two lexers but cleaned up only one - -### [1.4.1](https://github.com/magiconair/properties/tree/v1.4.1) - 13 Nov 2014 - - * [Issue #1](https://github.com/magiconair/properties/issues/1): Fixed bug in Keys() method which returned an empty string - -### [1.4.0](https://github.com/magiconair/properties/tree/v1.4.0) - 23 Sep 2014 - - * Added [Keys()](http://godoc.org/github.com/magiconair/properties#Properties.Keys) to get the keys - * Added [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) and [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) to get a subset of the properties - -### [1.3.0](https://github.com/magiconair/properties/tree/v1.3.0) - 18 Mar 2014 - -* Added support for time.Duration -* Made MustXXX() failure beha[ior configurable (log.Fatal, panic](https://github.com/magiconair/properties/tree/vior configurable (log.Fatal, panic) - custom) -* Changed default of MustXXX() failure from panic to log.Fatal - -### [1.2.0](https://github.com/magiconair/properties/tree/v1.2.0) - 05 Mar 2014 - -* Added MustGet... functions -* Added support for int and uint with range checks on 32 bit platforms - -### [1.1.0](https://github.com/magiconair/properties/tree/v1.1.0) - 20 Jan 2014 - -* Renamed from goproperties to properties -* Added support for expansion of environment vars in - filenames and value expressions -* Fixed bug where value expressions were not at the - start of the string - -### [1.0.0](https://github.com/magiconair/properties/tree/v1.0.0) - 7 Jan 2014 - -* Initial release diff --git a/backend/vendor/github.com/magiconair/properties/LICENSE.md b/backend/vendor/github.com/magiconair/properties/LICENSE.md deleted file mode 100644 index 79c87e3e..00000000 --- a/backend/vendor/github.com/magiconair/properties/LICENSE.md +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2013-2020, Frank Schroeder - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/magiconair/properties/README.md b/backend/vendor/github.com/magiconair/properties/README.md deleted file mode 100644 index e2edda02..00000000 --- a/backend/vendor/github.com/magiconair/properties/README.md +++ /dev/null @@ -1,128 +0,0 @@ -[![](https://img.shields.io/github/tag/magiconair/properties.svg?style=flat-square&label=release)](https://github.com/magiconair/properties/releases) -[![Travis CI Status](https://img.shields.io/travis/magiconair/properties.svg?branch=master&style=flat-square&label=travis)](https://travis-ci.org/magiconair/properties) -[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg?style=flat-square)](https://raw.githubusercontent.com/magiconair/properties/master/LICENSE) -[![GoDoc](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](http://godoc.org/github.com/magiconair/properties) - -# Overview - -#### Please run `git pull --tags` to update the tags. See [below](#updated-git-tags) why. - -properties is a Go library for reading and writing properties files. - -It supports reading from multiple files or URLs and Spring style recursive -property expansion of expressions like `${key}` to their corresponding value. -Value expressions can refer to other keys like in `${key}` or to environment -variables like in `${USER}`. Filenames can also contain environment variables -like in `/home/${USER}/myapp.properties`. - -Properties can be decoded into structs, maps, arrays and values through -struct tags. - -Comments and the order of keys are preserved. Comments can be modified -and can be written to the output. - -The properties library supports both ISO-8859-1 and UTF-8 encoded data. - -Starting from version 1.3.0 the behavior of the MustXXX() functions is -configurable by providing a custom `ErrorHandler` function. The default has -changed from `panic` to `log.Fatal` but this is configurable and custom -error handling functions can be provided. See the package documentation for -details. - -Read the full documentation on [![GoDoc](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](http://godoc.org/github.com/magiconair/properties) - -## Getting Started - -```go -import ( - "flag" - "github.com/magiconair/properties" -) - -func main() { - // init from a file - p := properties.MustLoadFile("${HOME}/config.properties", properties.UTF8) - - // or multiple files - p = properties.MustLoadFiles([]string{ - "${HOME}/config.properties", - "${HOME}/config-${USER}.properties", - }, properties.UTF8, true) - - // or from a map - p = properties.LoadMap(map[string]string{"key": "value", "abc": "def"}) - - // or from a string - p = properties.MustLoadString("key=value\nabc=def") - - // or from a URL - p = properties.MustLoadURL("http://host/path") - - // or from multiple URLs - p = properties.MustLoadURL([]string{ - "http://host/config", - "http://host/config-${USER}", - }, true) - - // or from flags - p.MustFlag(flag.CommandLine) - - // get values through getters - host := p.MustGetString("host") - port := p.GetInt("port", 8080) - - // or through Decode - type Config struct { - Host string `properties:"host"` - Port int `properties:"port,default=9000"` - Accept []string `properties:"accept,default=image/png;image;gif"` - Timeout time.Duration `properties:"timeout,default=5s"` - } - var cfg Config - if err := p.Decode(&cfg); err != nil { - log.Fatal(err) - } -} - -``` - -## Installation and Upgrade - -``` -$ go get -u github.com/magiconair/properties -``` - -## License - -2 clause BSD license. See [LICENSE](https://github.com/magiconair/properties/blob/master/LICENSE) file for details. - -## ToDo - -* Dump contents with passwords and secrets obscured - -## Updated Git tags - -#### 13 Feb 2018 - -I realized that all of the git tags I had pushed before v1.7.5 were lightweight tags -and I've only recently learned that this doesn't play well with `git describe` 😞 - -I have replaced all lightweight tags with signed tags using this script which should -retain the commit date, name and email address. Please run `git pull --tags` to update them. - -Worst case you have to reclone the repo. - -```shell -#!/bin/bash -tag=$1 -echo "Updating $tag" -date=$(git show ${tag}^0 --format=%aD | head -1) -email=$(git show ${tag}^0 --format=%aE | head -1) -name=$(git show ${tag}^0 --format=%aN | head -1) -GIT_COMMITTER_DATE="$date" GIT_COMMITTER_NAME="$name" GIT_COMMITTER_EMAIL="$email" git tag -s -f ${tag} ${tag}^0 -m ${tag} -``` - -I apologize for the inconvenience. - -Frank - diff --git a/backend/vendor/github.com/magiconair/properties/decode.go b/backend/vendor/github.com/magiconair/properties/decode.go deleted file mode 100644 index 8e6aa441..00000000 --- a/backend/vendor/github.com/magiconair/properties/decode.go +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "reflect" - "strconv" - "strings" - "time" -) - -// Decode assigns property values to exported fields of a struct. -// -// Decode traverses v recursively and returns an error if a value cannot be -// converted to the field type or a required value is missing for a field. -// -// The following type dependent decodings are used: -// -// String, boolean, numeric fields have the value of the property key assigned. -// The property key name is the name of the field. A different key and a default -// value can be set in the field's tag. Fields without default value are -// required. If the value cannot be converted to the field type an error is -// returned. -// -// time.Duration fields have the result of time.ParseDuration() assigned. -// -// time.Time fields have the vaule of time.Parse() assigned. The default layout -// is time.RFC3339 but can be set in the field's tag. -// -// Arrays and slices of string, boolean, numeric, time.Duration and time.Time -// fields have the value interpreted as a comma separated list of values. The -// individual values are trimmed of whitespace and empty values are ignored. A -// default value can be provided as a semicolon separated list in the field's -// tag. -// -// Struct fields are decoded recursively using the field name plus "." as -// prefix. The prefix (without dot) can be overridden in the field's tag. -// Default values are not supported in the field's tag. Specify them on the -// fields of the inner struct instead. -// -// Map fields must have a key of type string and are decoded recursively by -// using the field's name plus ".' as prefix and the next element of the key -// name as map key. The prefix (without dot) can be overridden in the field's -// tag. Default values are not supported. -// -// Examples: -// -// // Field is ignored. -// Field int `properties:"-"` -// -// // Field is assigned value of 'Field'. -// Field int -// -// // Field is assigned value of 'myName'. -// Field int `properties:"myName"` -// -// // Field is assigned value of key 'myName' and has a default -// // value 15 if the key does not exist. -// Field int `properties:"myName,default=15"` -// -// // Field is assigned value of key 'Field' and has a default -// // value 15 if the key does not exist. -// Field int `properties:",default=15"` -// -// // Field is assigned value of key 'date' and the date -// // is in format 2006-01-02 -// Field time.Time `properties:"date,layout=2006-01-02"` -// -// // Field is assigned the non-empty and whitespace trimmed -// // values of key 'Field' split by commas. -// Field []string -// -// // Field is assigned the non-empty and whitespace trimmed -// // values of key 'Field' split by commas and has a default -// // value ["a", "b", "c"] if the key does not exist. -// Field []string `properties:",default=a;b;c"` -// -// // Field is decoded recursively with "Field." as key prefix. -// Field SomeStruct -// -// // Field is decoded recursively with "myName." as key prefix. -// Field SomeStruct `properties:"myName"` -// -// // Field is decoded recursively with "Field." as key prefix -// // and the next dotted element of the key as map key. -// Field map[string]string -// -// // Field is decoded recursively with "myName." as key prefix -// // and the next dotted element of the key as map key. -// Field map[string]string `properties:"myName"` -func (p *Properties) Decode(x interface{}) error { - t, v := reflect.TypeOf(x), reflect.ValueOf(x) - if t.Kind() != reflect.Ptr || v.Elem().Type().Kind() != reflect.Struct { - return fmt.Errorf("not a pointer to struct: %s", t) - } - if err := dec(p, "", nil, nil, v); err != nil { - return err - } - return nil -} - -func dec(p *Properties, key string, def *string, opts map[string]string, v reflect.Value) error { - t := v.Type() - - // value returns the property value for key or the default if provided. - value := func() (string, error) { - if val, ok := p.Get(key); ok { - return val, nil - } - if def != nil { - return *def, nil - } - return "", fmt.Errorf("missing required key %s", key) - } - - // conv converts a string to a value of the given type. - conv := func(s string, t reflect.Type) (val reflect.Value, err error) { - var v interface{} - - switch { - case isDuration(t): - v, err = time.ParseDuration(s) - - case isTime(t): - layout := opts["layout"] - if layout == "" { - layout = time.RFC3339 - } - v, err = time.Parse(layout, s) - - case isBool(t): - v, err = boolVal(s), nil - - case isString(t): - v, err = s, nil - - case isFloat(t): - v, err = strconv.ParseFloat(s, 64) - - case isInt(t): - v, err = strconv.ParseInt(s, 10, 64) - - case isUint(t): - v, err = strconv.ParseUint(s, 10, 64) - - default: - return reflect.Zero(t), fmt.Errorf("unsupported type %s", t) - } - if err != nil { - return reflect.Zero(t), err - } - return reflect.ValueOf(v).Convert(t), nil - } - - // keydef returns the property key and the default value based on the - // name of the struct field and the options in the tag. - keydef := func(f reflect.StructField) (string, *string, map[string]string) { - _key, _opts := parseTag(f.Tag.Get("properties")) - - var _def *string - if d, ok := _opts["default"]; ok { - _def = &d - } - if _key != "" { - return _key, _def, _opts - } - return f.Name, _def, _opts - } - - switch { - case isDuration(t) || isTime(t) || isBool(t) || isString(t) || isFloat(t) || isInt(t) || isUint(t): - s, err := value() - if err != nil { - return err - } - val, err := conv(s, t) - if err != nil { - return err - } - v.Set(val) - - case isPtr(t): - return dec(p, key, def, opts, v.Elem()) - - case isStruct(t): - for i := 0; i < v.NumField(); i++ { - fv := v.Field(i) - fk, def, opts := keydef(t.Field(i)) - if !fv.CanSet() { - return fmt.Errorf("cannot set %s", t.Field(i).Name) - } - if fk == "-" { - continue - } - if key != "" { - fk = key + "." + fk - } - if err := dec(p, fk, def, opts, fv); err != nil { - return err - } - } - return nil - - case isArray(t): - val, err := value() - if err != nil { - return err - } - vals := split(val, ";") - a := reflect.MakeSlice(t, 0, len(vals)) - for _, s := range vals { - val, err := conv(s, t.Elem()) - if err != nil { - return err - } - a = reflect.Append(a, val) - } - v.Set(a) - - case isMap(t): - valT := t.Elem() - m := reflect.MakeMap(t) - for postfix := range p.FilterStripPrefix(key + ".").m { - pp := strings.SplitN(postfix, ".", 2) - mk, mv := pp[0], reflect.New(valT) - if err := dec(p, key+"."+mk, nil, nil, mv); err != nil { - return err - } - m.SetMapIndex(reflect.ValueOf(mk), mv.Elem()) - } - v.Set(m) - - default: - return fmt.Errorf("unsupported type %s", t) - } - return nil -} - -// split splits a string on sep, trims whitespace of elements -// and omits empty elements -func split(s string, sep string) []string { - var a []string - for _, v := range strings.Split(s, sep) { - if v = strings.TrimSpace(v); v != "" { - a = append(a, v) - } - } - return a -} - -// parseTag parses a "key,k=v,k=v,..." -func parseTag(tag string) (key string, opts map[string]string) { - opts = map[string]string{} - for i, s := range strings.Split(tag, ",") { - if i == 0 { - key = s - continue - } - - pp := strings.SplitN(s, "=", 2) - if len(pp) == 1 { - opts[pp[0]] = "" - } else { - opts[pp[0]] = pp[1] - } - } - return key, opts -} - -func isArray(t reflect.Type) bool { return t.Kind() == reflect.Array || t.Kind() == reflect.Slice } -func isBool(t reflect.Type) bool { return t.Kind() == reflect.Bool } -func isDuration(t reflect.Type) bool { return t == reflect.TypeOf(time.Second) } -func isMap(t reflect.Type) bool { return t.Kind() == reflect.Map } -func isPtr(t reflect.Type) bool { return t.Kind() == reflect.Ptr } -func isString(t reflect.Type) bool { return t.Kind() == reflect.String } -func isStruct(t reflect.Type) bool { return t.Kind() == reflect.Struct } -func isTime(t reflect.Type) bool { return t == reflect.TypeOf(time.Time{}) } -func isFloat(t reflect.Type) bool { - return t.Kind() == reflect.Float32 || t.Kind() == reflect.Float64 -} -func isInt(t reflect.Type) bool { - return t.Kind() == reflect.Int || t.Kind() == reflect.Int8 || t.Kind() == reflect.Int16 || t.Kind() == reflect.Int32 || t.Kind() == reflect.Int64 -} -func isUint(t reflect.Type) bool { - return t.Kind() == reflect.Uint || t.Kind() == reflect.Uint8 || t.Kind() == reflect.Uint16 || t.Kind() == reflect.Uint32 || t.Kind() == reflect.Uint64 -} diff --git a/backend/vendor/github.com/magiconair/properties/doc.go b/backend/vendor/github.com/magiconair/properties/doc.go deleted file mode 100644 index 7c797931..00000000 --- a/backend/vendor/github.com/magiconair/properties/doc.go +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package properties provides functions for reading and writing -// ISO-8859-1 and UTF-8 encoded .properties files and has -// support for recursive property expansion. -// -// Java properties files are ISO-8859-1 encoded and use Unicode -// literals for characters outside the ISO character set. Unicode -// literals can be used in UTF-8 encoded properties files but -// aren't necessary. -// -// To load a single properties file use MustLoadFile(): -// -// p := properties.MustLoadFile(filename, properties.UTF8) -// -// To load multiple properties files use MustLoadFiles() -// which loads the files in the given order and merges the -// result. Missing properties files can be ignored if the -// 'ignoreMissing' flag is set to true. -// -// Filenames can contain environment variables which are expanded -// before loading. -// -// f1 := "/etc/myapp/myapp.conf" -// f2 := "/home/${USER}/myapp.conf" -// p := MustLoadFiles([]string{f1, f2}, properties.UTF8, true) -// -// All of the different key/value delimiters ' ', ':' and '=' are -// supported as well as the comment characters '!' and '#' and -// multi-line values. -// -// ! this is a comment -// # and so is this -// -// # the following expressions are equal -// key value -// key=value -// key:value -// key = value -// key : value -// key = val\ -// ue -// -// Properties stores all comments preceding a key and provides -// GetComments() and SetComments() methods to retrieve and -// update them. The convenience functions GetComment() and -// SetComment() allow access to the last comment. The -// WriteComment() method writes properties files including -// the comments and with the keys in the original order. -// This can be used for sanitizing properties files. -// -// Property expansion is recursive and circular references -// and malformed expressions are not allowed and cause an -// error. Expansion of environment variables is supported. -// -// # standard property -// key = value -// -// # property expansion: key2 = value -// key2 = ${key} -// -// # recursive expansion: key3 = value -// key3 = ${key2} -// -// # circular reference (error) -// key = ${key} -// -// # malformed expression (error) -// key = ${ke -// -// # refers to the users' home dir -// home = ${HOME} -// -// # local key takes precedence over env var: u = foo -// USER = foo -// u = ${USER} -// -// The default property expansion format is ${key} but can be -// changed by setting different pre- and postfix values on the -// Properties object. -// -// p := properties.NewProperties() -// p.Prefix = "#[" -// p.Postfix = "]#" -// -// Properties provides convenience functions for getting typed -// values with default values if the key does not exist or the -// type conversion failed. -// -// # Returns true if the value is either "1", "on", "yes" or "true" -// # Returns false for every other value and the default value if -// # the key does not exist. -// v = p.GetBool("key", false) -// -// # Returns the value if the key exists and the format conversion -// # was successful. Otherwise, the default value is returned. -// v = p.GetInt64("key", 999) -// v = p.GetUint64("key", 999) -// v = p.GetFloat64("key", 123.0) -// v = p.GetString("key", "def") -// v = p.GetDuration("key", 999) -// -// As an alternative properties may be applied with the standard -// library's flag implementation at any time. -// -// # Standard configuration -// v = flag.Int("key", 999, "help message") -// flag.Parse() -// -// # Merge p into the flag set -// p.MustFlag(flag.CommandLine) -// -// Properties provides several MustXXX() convenience functions -// which will terminate the app if an error occurs. The behavior -// of the failure is configurable and the default is to call -// log.Fatal(err). To have the MustXXX() functions panic instead -// of logging the error set a different ErrorHandler before -// you use the Properties package. -// -// properties.ErrorHandler = properties.PanicHandler -// -// # Will panic instead of logging an error -// p := properties.MustLoadFile("config.properties") -// -// You can also provide your own ErrorHandler function. The only requirement -// is that the error handler function must exit after handling the error. -// -// properties.ErrorHandler = func(err error) { -// fmt.Println(err) -// os.Exit(1) -// } -// -// # Will write to stdout and then exit -// p := properties.MustLoadFile("config.properties") -// -// Properties can also be loaded into a struct via the `Decode` -// method, e.g. -// -// type S struct { -// A string `properties:"a,default=foo"` -// D time.Duration `properties:"timeout,default=5s"` -// E time.Time `properties:"expires,layout=2006-01-02,default=2015-01-01"` -// } -// -// See `Decode()` method for the full documentation. -// -// The following documents provide a description of the properties -// file format. -// -// http://en.wikipedia.org/wiki/.properties -// -// http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29 -package properties diff --git a/backend/vendor/github.com/magiconair/properties/integrate.go b/backend/vendor/github.com/magiconair/properties/integrate.go deleted file mode 100644 index 35d0ae97..00000000 --- a/backend/vendor/github.com/magiconair/properties/integrate.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import "flag" - -// MustFlag sets flags that are skipped by dst.Parse when p contains -// the respective key for flag.Flag.Name. -// -// It's use is recommended with command line arguments as in: -// -// flag.Parse() -// p.MustFlag(flag.CommandLine) -func (p *Properties) MustFlag(dst *flag.FlagSet) { - m := make(map[string]*flag.Flag) - dst.VisitAll(func(f *flag.Flag) { - m[f.Name] = f - }) - dst.Visit(func(f *flag.Flag) { - delete(m, f.Name) // overridden - }) - - for name, f := range m { - v, ok := p.Get(name) - if !ok { - continue - } - - if err := f.Value.Set(v); err != nil { - ErrorHandler(err) - } - } -} diff --git a/backend/vendor/github.com/magiconair/properties/lex.go b/backend/vendor/github.com/magiconair/properties/lex.go deleted file mode 100644 index 3d15a1f6..00000000 --- a/backend/vendor/github.com/magiconair/properties/lex.go +++ /dev/null @@ -1,395 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -// Parts of the lexer are from the template/text/parser package -// For these parts the following applies: -// -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file of the go 1.2 -// distribution. - -package properties - -import ( - "fmt" - "strconv" - "strings" - "unicode/utf8" -) - -// item represents a token or text string returned from the scanner. -type item struct { - typ itemType // The type of this item. - pos int // The starting position, in bytes, of this item in the input string. - val string // The value of this item. -} - -func (i item) String() string { - switch { - case i.typ == itemEOF: - return "EOF" - case i.typ == itemError: - return i.val - case len(i.val) > 10: - return fmt.Sprintf("%.10q...", i.val) - } - return fmt.Sprintf("%q", i.val) -} - -// itemType identifies the type of lex items. -type itemType int - -const ( - itemError itemType = iota // error occurred; value is text of error - itemEOF - itemKey // a key - itemValue // a value - itemComment // a comment -) - -// defines a constant for EOF -const eof = -1 - -// permitted whitespace characters space, FF and TAB -const whitespace = " \f\t" - -// stateFn represents the state of the scanner as a function that returns the next state. -type stateFn func(*lexer) stateFn - -// lexer holds the state of the scanner. -type lexer struct { - input string // the string being scanned - state stateFn // the next lexing function to enter - pos int // current position in the input - start int // start position of this item - width int // width of last rune read from input - lastPos int // position of most recent item returned by nextItem - runes []rune // scanned runes for this item - items chan item // channel of scanned items -} - -// next returns the next rune in the input. -func (l *lexer) next() rune { - if l.pos >= len(l.input) { - l.width = 0 - return eof - } - r, w := utf8.DecodeRuneInString(l.input[l.pos:]) - l.width = w - l.pos += l.width - return r -} - -// peek returns but does not consume the next rune in the input. -func (l *lexer) peek() rune { - r := l.next() - l.backup() - return r -} - -// backup steps back one rune. Can only be called once per call of next. -func (l *lexer) backup() { - l.pos -= l.width -} - -// emit passes an item back to the client. -func (l *lexer) emit(t itemType) { - i := item{t, l.start, string(l.runes)} - l.items <- i - l.start = l.pos - l.runes = l.runes[:0] -} - -// ignore skips over the pending input before this point. -func (l *lexer) ignore() { - l.start = l.pos -} - -// appends the rune to the current value -func (l *lexer) appendRune(r rune) { - l.runes = append(l.runes, r) -} - -// accept consumes the next rune if it's from the valid set. -func (l *lexer) accept(valid string) bool { - if strings.ContainsRune(valid, l.next()) { - return true - } - l.backup() - return false -} - -// acceptRun consumes a run of runes from the valid set. -func (l *lexer) acceptRun(valid string) { - for strings.ContainsRune(valid, l.next()) { - } - l.backup() -} - -// lineNumber reports which line we're on, based on the position of -// the previous item returned by nextItem. Doing it this way -// means we don't have to worry about peek double counting. -func (l *lexer) lineNumber() int { - return 1 + strings.Count(l.input[:l.lastPos], "\n") -} - -// errorf returns an error token and terminates the scan by passing -// back a nil pointer that will be the next state, terminating l.nextItem. -func (l *lexer) errorf(format string, args ...interface{}) stateFn { - l.items <- item{itemError, l.start, fmt.Sprintf(format, args...)} - return nil -} - -// nextItem returns the next item from the input. -func (l *lexer) nextItem() item { - i := <-l.items - l.lastPos = i.pos - return i -} - -// lex creates a new scanner for the input string. -func lex(input string) *lexer { - l := &lexer{ - input: input, - items: make(chan item), - runes: make([]rune, 0, 32), - } - go l.run() - return l -} - -// run runs the state machine for the lexer. -func (l *lexer) run() { - for l.state = lexBeforeKey(l); l.state != nil; { - l.state = l.state(l) - } -} - -// state functions - -// lexBeforeKey scans until a key begins. -func lexBeforeKey(l *lexer) stateFn { - switch r := l.next(); { - case isEOF(r): - l.emit(itemEOF) - return nil - - case isEOL(r): - l.ignore() - return lexBeforeKey - - case isComment(r): - return lexComment - - case isWhitespace(r): - l.ignore() - return lexBeforeKey - - default: - l.backup() - return lexKey - } -} - -// lexComment scans a comment line. The comment character has already been scanned. -func lexComment(l *lexer) stateFn { - l.acceptRun(whitespace) - l.ignore() - for { - switch r := l.next(); { - case isEOF(r): - l.ignore() - l.emit(itemEOF) - return nil - case isEOL(r): - l.emit(itemComment) - return lexBeforeKey - default: - l.appendRune(r) - } - } -} - -// lexKey scans the key up to a delimiter -func lexKey(l *lexer) stateFn { - var r rune - -Loop: - for { - switch r = l.next(); { - - case isEscape(r): - err := l.scanEscapeSequence() - if err != nil { - return l.errorf(err.Error()) - } - - case isEndOfKey(r): - l.backup() - break Loop - - case isEOF(r): - break Loop - - default: - l.appendRune(r) - } - } - - if len(l.runes) > 0 { - l.emit(itemKey) - } - - if isEOF(r) { - l.emit(itemEOF) - return nil - } - - return lexBeforeValue -} - -// lexBeforeValue scans the delimiter between key and value. -// Leading and trailing whitespace is ignored. -// We expect to be just after the key. -func lexBeforeValue(l *lexer) stateFn { - l.acceptRun(whitespace) - l.accept(":=") - l.acceptRun(whitespace) - l.ignore() - return lexValue -} - -// lexValue scans text until the end of the line. We expect to be just after the delimiter. -func lexValue(l *lexer) stateFn { - for { - switch r := l.next(); { - case isEscape(r): - if isEOL(l.peek()) { - l.next() - l.acceptRun(whitespace) - } else { - err := l.scanEscapeSequence() - if err != nil { - return l.errorf(err.Error()) - } - } - - case isEOL(r): - l.emit(itemValue) - l.ignore() - return lexBeforeKey - - case isEOF(r): - l.emit(itemValue) - l.emit(itemEOF) - return nil - - default: - l.appendRune(r) - } - } -} - -// scanEscapeSequence scans either one of the escaped characters -// or a unicode literal. We expect to be after the escape character. -func (l *lexer) scanEscapeSequence() error { - switch r := l.next(); { - - case isEscapedCharacter(r): - l.appendRune(decodeEscapedCharacter(r)) - return nil - - case atUnicodeLiteral(r): - return l.scanUnicodeLiteral() - - case isEOF(r): - return fmt.Errorf("premature EOF") - - // silently drop the escape character and append the rune as is - default: - l.appendRune(r) - return nil - } -} - -// scans a unicode literal in the form \uXXXX. We expect to be after the \u. -func (l *lexer) scanUnicodeLiteral() error { - // scan the digits - d := make([]rune, 4) - for i := 0; i < 4; i++ { - d[i] = l.next() - if d[i] == eof || !strings.ContainsRune("0123456789abcdefABCDEF", d[i]) { - return fmt.Errorf("invalid unicode literal") - } - } - - // decode the digits into a rune - r, err := strconv.ParseInt(string(d), 16, 0) - if err != nil { - return err - } - - l.appendRune(rune(r)) - return nil -} - -// decodeEscapedCharacter returns the unescaped rune. We expect to be after the escape character. -func decodeEscapedCharacter(r rune) rune { - switch r { - case 'f': - return '\f' - case 'n': - return '\n' - case 'r': - return '\r' - case 't': - return '\t' - default: - return r - } -} - -// atUnicodeLiteral reports whether we are at a unicode literal. -// The escape character has already been consumed. -func atUnicodeLiteral(r rune) bool { - return r == 'u' -} - -// isComment reports whether we are at the start of a comment. -func isComment(r rune) bool { - return r == '#' || r == '!' -} - -// isEndOfKey reports whether the rune terminates the current key. -func isEndOfKey(r rune) bool { - return strings.ContainsRune(" \f\t\r\n:=", r) -} - -// isEOF reports whether we are at EOF. -func isEOF(r rune) bool { - return r == eof -} - -// isEOL reports whether we are at a new line character. -func isEOL(r rune) bool { - return r == '\n' || r == '\r' -} - -// isEscape reports whether the rune is the escape character which -// prefixes unicode literals and other escaped characters. -func isEscape(r rune) bool { - return r == '\\' -} - -// isEscapedCharacter reports whether we are at one of the characters that need escaping. -// The escape character has already been consumed. -func isEscapedCharacter(r rune) bool { - return strings.ContainsRune(" :=fnrt", r) -} - -// isWhitespace reports whether the rune is a whitespace character. -func isWhitespace(r rune) bool { - return strings.ContainsRune(whitespace, r) -} diff --git a/backend/vendor/github.com/magiconair/properties/load.go b/backend/vendor/github.com/magiconair/properties/load.go deleted file mode 100644 index 635368dc..00000000 --- a/backend/vendor/github.com/magiconair/properties/load.go +++ /dev/null @@ -1,293 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "io/ioutil" - "net/http" - "os" - "strings" -) - -// Encoding specifies encoding of the input data. -type Encoding uint - -const ( - // utf8Default is a private placeholder for the zero value of Encoding to - // ensure that it has the correct meaning. UTF8 is the default encoding but - // was assigned a non-zero value which cannot be changed without breaking - // existing code. Clients should continue to use the public constants. - utf8Default Encoding = iota - - // UTF8 interprets the input data as UTF-8. - UTF8 - - // ISO_8859_1 interprets the input data as ISO-8859-1. - ISO_8859_1 -) - -type Loader struct { - // Encoding determines how the data from files and byte buffers - // is interpreted. For URLs the Content-Type header is used - // to determine the encoding of the data. - Encoding Encoding - - // DisableExpansion configures the property expansion of the - // returned property object. When set to true, the property values - // will not be expanded and the Property object will not be checked - // for invalid expansion expressions. - DisableExpansion bool - - // IgnoreMissing configures whether missing files or URLs which return - // 404 are reported as errors. When set to true, missing files and 404 - // status codes are not reported as errors. - IgnoreMissing bool -} - -// Load reads a buffer into a Properties struct. -func (l *Loader) LoadBytes(buf []byte) (*Properties, error) { - return l.loadBytes(buf, l.Encoding) -} - -// LoadAll reads the content of multiple URLs or files in the given order into -// a Properties struct. If IgnoreMissing is true then a 404 status code or -// missing file will not be reported as error. Encoding sets the encoding for -// files. For the URLs see LoadURL for the Content-Type header and the -// encoding. -func (l *Loader) LoadAll(names []string) (*Properties, error) { - all := NewProperties() - for _, name := range names { - n, err := expandName(name) - if err != nil { - return nil, err - } - - var p *Properties - switch { - case strings.HasPrefix(n, "http://"): - p, err = l.LoadURL(n) - case strings.HasPrefix(n, "https://"): - p, err = l.LoadURL(n) - default: - p, err = l.LoadFile(n) - } - if err != nil { - return nil, err - } - all.Merge(p) - } - - all.DisableExpansion = l.DisableExpansion - if all.DisableExpansion { - return all, nil - } - return all, all.check() -} - -// LoadFile reads a file into a Properties struct. -// If IgnoreMissing is true then a missing file will not be -// reported as error. -func (l *Loader) LoadFile(filename string) (*Properties, error) { - data, err := ioutil.ReadFile(filename) - if err != nil { - if l.IgnoreMissing && os.IsNotExist(err) { - LogPrintf("properties: %s not found. skipping", filename) - return NewProperties(), nil - } - return nil, err - } - return l.loadBytes(data, l.Encoding) -} - -// LoadURL reads the content of the URL into a Properties struct. -// -// The encoding is determined via the Content-Type header which -// should be set to 'text/plain'. If the 'charset' parameter is -// missing, 'iso-8859-1' or 'latin1' the encoding is set to -// ISO-8859-1. If the 'charset' parameter is set to 'utf-8' the -// encoding is set to UTF-8. A missing content type header is -// interpreted as 'text/plain; charset=utf-8'. -func (l *Loader) LoadURL(url string) (*Properties, error) { - resp, err := http.Get(url) - if err != nil { - return nil, fmt.Errorf("properties: error fetching %q. %s", url, err) - } - defer resp.Body.Close() - - if resp.StatusCode == 404 && l.IgnoreMissing { - LogPrintf("properties: %s returned %d. skipping", url, resp.StatusCode) - return NewProperties(), nil - } - - if resp.StatusCode != 200 { - return nil, fmt.Errorf("properties: %s returned %d", url, resp.StatusCode) - } - - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("properties: %s error reading response. %s", url, err) - } - - ct := resp.Header.Get("Content-Type") - ct = strings.Join(strings.Fields(ct), "") - var enc Encoding - switch strings.ToLower(ct) { - case "text/plain", "text/plain;charset=iso-8859-1", "text/plain;charset=latin1": - enc = ISO_8859_1 - case "", "text/plain;charset=utf-8": - enc = UTF8 - default: - return nil, fmt.Errorf("properties: invalid content type %s", ct) - } - - return l.loadBytes(body, enc) -} - -func (l *Loader) loadBytes(buf []byte, enc Encoding) (*Properties, error) { - p, err := parse(convert(buf, enc)) - if err != nil { - return nil, err - } - p.DisableExpansion = l.DisableExpansion - if p.DisableExpansion { - return p, nil - } - return p, p.check() -} - -// Load reads a buffer into a Properties struct. -func Load(buf []byte, enc Encoding) (*Properties, error) { - l := &Loader{Encoding: enc} - return l.LoadBytes(buf) -} - -// LoadString reads an UTF8 string into a properties struct. -func LoadString(s string) (*Properties, error) { - l := &Loader{Encoding: UTF8} - return l.LoadBytes([]byte(s)) -} - -// LoadMap creates a new Properties struct from a string map. -func LoadMap(m map[string]string) *Properties { - p := NewProperties() - for k, v := range m { - p.Set(k, v) - } - return p -} - -// LoadFile reads a file into a Properties struct. -func LoadFile(filename string, enc Encoding) (*Properties, error) { - l := &Loader{Encoding: enc} - return l.LoadAll([]string{filename}) -} - -// LoadFiles reads multiple files in the given order into -// a Properties struct. If 'ignoreMissing' is true then -// non-existent files will not be reported as error. -func LoadFiles(filenames []string, enc Encoding, ignoreMissing bool) (*Properties, error) { - l := &Loader{Encoding: enc, IgnoreMissing: ignoreMissing} - return l.LoadAll(filenames) -} - -// LoadURL reads the content of the URL into a Properties struct. -// See Loader#LoadURL for details. -func LoadURL(url string) (*Properties, error) { - l := &Loader{Encoding: UTF8} - return l.LoadAll([]string{url}) -} - -// LoadURLs reads the content of multiple URLs in the given order into a -// Properties struct. If IgnoreMissing is true then a 404 status code will -// not be reported as error. See Loader#LoadURL for the Content-Type header -// and the encoding. -func LoadURLs(urls []string, ignoreMissing bool) (*Properties, error) { - l := &Loader{Encoding: UTF8, IgnoreMissing: ignoreMissing} - return l.LoadAll(urls) -} - -// LoadAll reads the content of multiple URLs or files in the given order into a -// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will -// not be reported as error. Encoding sets the encoding for files. For the URLs please see -// LoadURL for the Content-Type header and the encoding. -func LoadAll(names []string, enc Encoding, ignoreMissing bool) (*Properties, error) { - l := &Loader{Encoding: enc, IgnoreMissing: ignoreMissing} - return l.LoadAll(names) -} - -// MustLoadString reads an UTF8 string into a Properties struct and -// panics on error. -func MustLoadString(s string) *Properties { - return must(LoadString(s)) -} - -// MustLoadFile reads a file into a Properties struct and -// panics on error. -func MustLoadFile(filename string, enc Encoding) *Properties { - return must(LoadFile(filename, enc)) -} - -// MustLoadFiles reads multiple files in the given order into -// a Properties struct and panics on error. If 'ignoreMissing' -// is true then non-existent files will not be reported as error. -func MustLoadFiles(filenames []string, enc Encoding, ignoreMissing bool) *Properties { - return must(LoadFiles(filenames, enc, ignoreMissing)) -} - -// MustLoadURL reads the content of a URL into a Properties struct and -// panics on error. -func MustLoadURL(url string) *Properties { - return must(LoadURL(url)) -} - -// MustLoadURLs reads the content of multiple URLs in the given order into a -// Properties struct and panics on error. If 'ignoreMissing' is true then a 404 -// status code will not be reported as error. -func MustLoadURLs(urls []string, ignoreMissing bool) *Properties { - return must(LoadURLs(urls, ignoreMissing)) -} - -// MustLoadAll reads the content of multiple URLs or files in the given order into a -// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will -// not be reported as error. Encoding sets the encoding for files. For the URLs please see -// LoadURL for the Content-Type header and the encoding. It panics on error. -func MustLoadAll(names []string, enc Encoding, ignoreMissing bool) *Properties { - return must(LoadAll(names, enc, ignoreMissing)) -} - -func must(p *Properties, err error) *Properties { - if err != nil { - ErrorHandler(err) - } - return p -} - -// expandName expands ${ENV_VAR} expressions in a name. -// If the environment variable does not exist then it will be replaced -// with an empty string. Malformed expressions like "${ENV_VAR" will -// be reported as error. -func expandName(name string) (string, error) { - return expand(name, []string{}, "${", "}", make(map[string]string)) -} - -// Interprets a byte buffer either as an ISO-8859-1 or UTF-8 encoded string. -// For ISO-8859-1 we can convert each byte straight into a rune since the -// first 256 unicode code points cover ISO-8859-1. -func convert(buf []byte, enc Encoding) string { - switch enc { - case utf8Default, UTF8: - return string(buf) - case ISO_8859_1: - runes := make([]rune, len(buf)) - for i, b := range buf { - runes[i] = rune(b) - } - return string(runes) - default: - ErrorHandler(fmt.Errorf("unsupported encoding %v", enc)) - } - panic("ErrorHandler should exit") -} diff --git a/backend/vendor/github.com/magiconair/properties/parser.go b/backend/vendor/github.com/magiconair/properties/parser.go deleted file mode 100644 index fccfd39f..00000000 --- a/backend/vendor/github.com/magiconair/properties/parser.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "runtime" -) - -type parser struct { - lex *lexer -} - -func parse(input string) (properties *Properties, err error) { - p := &parser{lex: lex(input)} - defer p.recover(&err) - - properties = NewProperties() - key := "" - comments := []string{} - - for { - token := p.expectOneOf(itemComment, itemKey, itemEOF) - switch token.typ { - case itemEOF: - goto done - case itemComment: - comments = append(comments, token.val) - continue - case itemKey: - key = token.val - if _, ok := properties.m[key]; !ok { - properties.k = append(properties.k, key) - } - } - - token = p.expectOneOf(itemValue, itemEOF) - if len(comments) > 0 { - properties.c[key] = comments - comments = []string{} - } - switch token.typ { - case itemEOF: - properties.m[key] = "" - goto done - case itemValue: - properties.m[key] = token.val - } - } - -done: - return properties, nil -} - -func (p *parser) errorf(format string, args ...interface{}) { - format = fmt.Sprintf("properties: Line %d: %s", p.lex.lineNumber(), format) - panic(fmt.Errorf(format, args...)) -} - -func (p *parser) expectOneOf(expected ...itemType) (token item) { - token = p.lex.nextItem() - for _, v := range expected { - if token.typ == v { - return token - } - } - p.unexpected(token) - panic("unexpected token") -} - -func (p *parser) unexpected(token item) { - p.errorf(token.String()) -} - -// recover is the handler that turns panics into returns from the top level of Parse. -func (p *parser) recover(errp *error) { - e := recover() - if e != nil { - if _, ok := e.(runtime.Error); ok { - panic(e) - } - *errp = e.(error) - } -} diff --git a/backend/vendor/github.com/magiconair/properties/properties.go b/backend/vendor/github.com/magiconair/properties/properties.go deleted file mode 100644 index fb2f7b40..00000000 --- a/backend/vendor/github.com/magiconair/properties/properties.go +++ /dev/null @@ -1,848 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -// BUG(frank): Set() does not check for invalid unicode literals since this is currently handled by the lexer. -// BUG(frank): Write() does not allow to configure the newline character. Therefore, on Windows LF is used. - -import ( - "bytes" - "fmt" - "io" - "log" - "os" - "regexp" - "sort" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -const maxExpansionDepth = 64 - -// ErrorHandlerFunc defines the type of function which handles failures -// of the MustXXX() functions. An error handler function must exit -// the application after handling the error. -type ErrorHandlerFunc func(error) - -// ErrorHandler is the function which handles failures of the MustXXX() -// functions. The default is LogFatalHandler. -var ErrorHandler ErrorHandlerFunc = LogFatalHandler - -// LogHandlerFunc defines the function prototype for logging errors. -type LogHandlerFunc func(fmt string, args ...interface{}) - -// LogPrintf defines a log handler which uses log.Printf. -var LogPrintf LogHandlerFunc = log.Printf - -// LogFatalHandler handles the error by logging a fatal error and exiting. -func LogFatalHandler(err error) { - log.Fatal(err) -} - -// PanicHandler handles the error by panicking. -func PanicHandler(err error) { - panic(err) -} - -// ----------------------------------------------------------------------------- - -// A Properties contains the key/value pairs from the properties input. -// All values are stored in unexpanded form and are expanded at runtime -type Properties struct { - // Pre-/Postfix for property expansion. - Prefix string - Postfix string - - // DisableExpansion controls the expansion of properties on Get() - // and the check for circular references on Set(). When set to - // true Properties behaves like a simple key/value store and does - // not check for circular references on Get() or on Set(). - DisableExpansion bool - - // Stores the key/value pairs - m map[string]string - - // Stores the comments per key. - c map[string][]string - - // Stores the keys in order of appearance. - k []string - - // WriteSeparator specifies the separator of key and value while writing the properties. - WriteSeparator string -} - -// NewProperties creates a new Properties struct with the default -// configuration for "${key}" expressions. -func NewProperties() *Properties { - return &Properties{ - Prefix: "${", - Postfix: "}", - m: map[string]string{}, - c: map[string][]string{}, - k: []string{}, - } -} - -// Load reads a buffer into the given Properties struct. -func (p *Properties) Load(buf []byte, enc Encoding) error { - l := &Loader{Encoding: enc, DisableExpansion: p.DisableExpansion} - newProperties, err := l.LoadBytes(buf) - if err != nil { - return err - } - p.Merge(newProperties) - return nil -} - -// Get returns the expanded value for the given key if exists. -// Otherwise, ok is false. -func (p *Properties) Get(key string) (value string, ok bool) { - v, ok := p.m[key] - if p.DisableExpansion { - return v, ok - } - if !ok { - return "", false - } - - expanded, err := p.expand(key, v) - - // we guarantee that the expanded value is free of - // circular references and malformed expressions - // so we panic if we still get an error here. - if err != nil { - ErrorHandler(err) - } - - return expanded, true -} - -// MustGet returns the expanded value for the given key if exists. -// Otherwise, it panics. -func (p *Properties) MustGet(key string) string { - if v, ok := p.Get(key); ok { - return v - } - ErrorHandler(invalidKeyError(key)) - panic("ErrorHandler should exit") -} - -// ---------------------------------------------------------------------------- - -// ClearComments removes the comments for all keys. -func (p *Properties) ClearComments() { - p.c = map[string][]string{} -} - -// ---------------------------------------------------------------------------- - -// GetComment returns the last comment before the given key or an empty string. -func (p *Properties) GetComment(key string) string { - comments, ok := p.c[key] - if !ok || len(comments) == 0 { - return "" - } - return comments[len(comments)-1] -} - -// ---------------------------------------------------------------------------- - -// GetComments returns all comments that appeared before the given key or nil. -func (p *Properties) GetComments(key string) []string { - if comments, ok := p.c[key]; ok { - return comments - } - return nil -} - -// ---------------------------------------------------------------------------- - -// SetComment sets the comment for the key. -func (p *Properties) SetComment(key, comment string) { - p.c[key] = []string{comment} -} - -// ---------------------------------------------------------------------------- - -// SetComments sets the comments for the key. If the comments are nil then -// all comments for this key are deleted. -func (p *Properties) SetComments(key string, comments []string) { - if comments == nil { - delete(p.c, key) - return - } - p.c[key] = comments -} - -// ---------------------------------------------------------------------------- - -// GetBool checks if the expanded value is one of '1', 'yes', -// 'true' or 'on' if the key exists. The comparison is case-insensitive. -// If the key does not exist the default value is returned. -func (p *Properties) GetBool(key string, def bool) bool { - v, err := p.getBool(key) - if err != nil { - return def - } - return v -} - -// MustGetBool checks if the expanded value is one of '1', 'yes', -// 'true' or 'on' if the key exists. The comparison is case-insensitive. -// If the key does not exist the function panics. -func (p *Properties) MustGetBool(key string) bool { - v, err := p.getBool(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getBool(key string) (value bool, err error) { - if v, ok := p.Get(key); ok { - return boolVal(v), nil - } - return false, invalidKeyError(key) -} - -func boolVal(v string) bool { - v = strings.ToLower(v) - return v == "1" || v == "true" || v == "yes" || v == "on" -} - -// ---------------------------------------------------------------------------- - -// GetDuration parses the expanded value as an time.Duration (in ns) if the -// key exists. If key does not exist or the value cannot be parsed the default -// value is returned. In almost all cases you want to use GetParsedDuration(). -func (p *Properties) GetDuration(key string, def time.Duration) time.Duration { - v, err := p.getInt64(key) - if err != nil { - return def - } - return time.Duration(v) -} - -// MustGetDuration parses the expanded value as an time.Duration (in ns) if -// the key exists. If key does not exist or the value cannot be parsed the -// function panics. In almost all cases you want to use MustGetParsedDuration(). -func (p *Properties) MustGetDuration(key string) time.Duration { - v, err := p.getInt64(key) - if err != nil { - ErrorHandler(err) - } - return time.Duration(v) -} - -// ---------------------------------------------------------------------------- - -// GetParsedDuration parses the expanded value with time.ParseDuration() if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetParsedDuration(key string, def time.Duration) time.Duration { - s, ok := p.Get(key) - if !ok { - return def - } - v, err := time.ParseDuration(s) - if err != nil { - return def - } - return v -} - -// MustGetParsedDuration parses the expanded value with time.ParseDuration() if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetParsedDuration(key string) time.Duration { - s, ok := p.Get(key) - if !ok { - ErrorHandler(invalidKeyError(key)) - } - v, err := time.ParseDuration(s) - if err != nil { - ErrorHandler(err) - } - return v -} - -// ---------------------------------------------------------------------------- - -// GetFloat64 parses the expanded value as a float64 if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetFloat64(key string, def float64) float64 { - v, err := p.getFloat64(key) - if err != nil { - return def - } - return v -} - -// MustGetFloat64 parses the expanded value as a float64 if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetFloat64(key string) float64 { - v, err := p.getFloat64(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getFloat64(key string) (value float64, err error) { - if v, ok := p.Get(key); ok { - value, err = strconv.ParseFloat(v, 64) - if err != nil { - return 0, err - } - return value, nil - } - return 0, invalidKeyError(key) -} - -// ---------------------------------------------------------------------------- - -// GetInt parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. If the value does not fit into an int the -// function panics with an out of range error. -func (p *Properties) GetInt(key string, def int) int { - v, err := p.getInt64(key) - if err != nil { - return def - } - return intRangeCheck(key, v) -} - -// MustGetInt parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -// If the value does not fit into an int the function panics with -// an out of range error. -func (p *Properties) MustGetInt(key string) int { - v, err := p.getInt64(key) - if err != nil { - ErrorHandler(err) - } - return intRangeCheck(key, v) -} - -// ---------------------------------------------------------------------------- - -// GetInt64 parses the expanded value as an int64 if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetInt64(key string, def int64) int64 { - v, err := p.getInt64(key) - if err != nil { - return def - } - return v -} - -// MustGetInt64 parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetInt64(key string) int64 { - v, err := p.getInt64(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getInt64(key string) (value int64, err error) { - if v, ok := p.Get(key); ok { - value, err = strconv.ParseInt(v, 10, 64) - if err != nil { - return 0, err - } - return value, nil - } - return 0, invalidKeyError(key) -} - -// ---------------------------------------------------------------------------- - -// GetUint parses the expanded value as an uint if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. If the value does not fit into an int the -// function panics with an out of range error. -func (p *Properties) GetUint(key string, def uint) uint { - v, err := p.getUint64(key) - if err != nil { - return def - } - return uintRangeCheck(key, v) -} - -// MustGetUint parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -// If the value does not fit into an int the function panics with -// an out of range error. -func (p *Properties) MustGetUint(key string) uint { - v, err := p.getUint64(key) - if err != nil { - ErrorHandler(err) - } - return uintRangeCheck(key, v) -} - -// ---------------------------------------------------------------------------- - -// GetUint64 parses the expanded value as an uint64 if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetUint64(key string, def uint64) uint64 { - v, err := p.getUint64(key) - if err != nil { - return def - } - return v -} - -// MustGetUint64 parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetUint64(key string) uint64 { - v, err := p.getUint64(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getUint64(key string) (value uint64, err error) { - if v, ok := p.Get(key); ok { - value, err = strconv.ParseUint(v, 10, 64) - if err != nil { - return 0, err - } - return value, nil - } - return 0, invalidKeyError(key) -} - -// ---------------------------------------------------------------------------- - -// GetString returns the expanded value for the given key if exists or -// the default value otherwise. -func (p *Properties) GetString(key, def string) string { - if v, ok := p.Get(key); ok { - return v - } - return def -} - -// MustGetString returns the expanded value for the given key if exists or -// panics otherwise. -func (p *Properties) MustGetString(key string) string { - if v, ok := p.Get(key); ok { - return v - } - ErrorHandler(invalidKeyError(key)) - panic("ErrorHandler should exit") -} - -// ---------------------------------------------------------------------------- - -// Filter returns a new properties object which contains all properties -// for which the key matches the pattern. -func (p *Properties) Filter(pattern string) (*Properties, error) { - re, err := regexp.Compile(pattern) - if err != nil { - return nil, err - } - - return p.FilterRegexp(re), nil -} - -// FilterRegexp returns a new properties object which contains all properties -// for which the key matches the regular expression. -func (p *Properties) FilterRegexp(re *regexp.Regexp) *Properties { - pp := NewProperties() - for _, k := range p.k { - if re.MatchString(k) { - // TODO(fs): we are ignoring the error which flags a circular reference. - // TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed) - pp.Set(k, p.m[k]) - } - } - return pp -} - -// FilterPrefix returns a new properties object with a subset of all keys -// with the given prefix. -func (p *Properties) FilterPrefix(prefix string) *Properties { - pp := NewProperties() - for _, k := range p.k { - if strings.HasPrefix(k, prefix) { - // TODO(fs): we are ignoring the error which flags a circular reference. - // TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed) - pp.Set(k, p.m[k]) - } - } - return pp -} - -// FilterStripPrefix returns a new properties object with a subset of all keys -// with the given prefix and the prefix removed from the keys. -func (p *Properties) FilterStripPrefix(prefix string) *Properties { - pp := NewProperties() - n := len(prefix) - for _, k := range p.k { - if len(k) > len(prefix) && strings.HasPrefix(k, prefix) { - // TODO(fs): we are ignoring the error which flags a circular reference. - // TODO(fs): since we are modifying keys I am not entirely sure whether we can create a circular reference - // TODO(fs): this function should probably return an error but the signature is fixed - pp.Set(k[n:], p.m[k]) - } - } - return pp -} - -// Len returns the number of keys. -func (p *Properties) Len() int { - return len(p.m) -} - -// Keys returns all keys in the same order as in the input. -func (p *Properties) Keys() []string { - keys := make([]string, len(p.k)) - copy(keys, p.k) - return keys -} - -// Set sets the property key to the corresponding value. -// If a value for key existed before then ok is true and prev -// contains the previous value. If the value contains a -// circular reference or a malformed expression then -// an error is returned. -// An empty key is silently ignored. -func (p *Properties) Set(key, value string) (prev string, ok bool, err error) { - if key == "" { - return "", false, nil - } - - // if expansion is disabled we allow circular references - if p.DisableExpansion { - prev, ok = p.Get(key) - p.m[key] = value - if !ok { - p.k = append(p.k, key) - } - return prev, ok, nil - } - - // to check for a circular reference we temporarily need - // to set the new value. If there is an error then revert - // to the previous state. Only if all tests are successful - // then we add the key to the p.k list. - prev, ok = p.Get(key) - p.m[key] = value - - // now check for a circular reference - _, err = p.expand(key, value) - if err != nil { - - // revert to the previous state - if ok { - p.m[key] = prev - } else { - delete(p.m, key) - } - - return "", false, err - } - - if !ok { - p.k = append(p.k, key) - } - - return prev, ok, nil -} - -// SetValue sets property key to the default string value -// as defined by fmt.Sprintf("%v"). -func (p *Properties) SetValue(key string, value interface{}) error { - _, _, err := p.Set(key, fmt.Sprintf("%v", value)) - return err -} - -// MustSet sets the property key to the corresponding value. -// If a value for key existed before then ok is true and prev -// contains the previous value. An empty key is silently ignored. -func (p *Properties) MustSet(key, value string) (prev string, ok bool) { - prev, ok, err := p.Set(key, value) - if err != nil { - ErrorHandler(err) - } - return prev, ok -} - -// String returns a string of all expanded 'key = value' pairs. -func (p *Properties) String() string { - var s string - for _, key := range p.k { - value, _ := p.Get(key) - s = fmt.Sprintf("%s%s = %s\n", s, key, value) - } - return s -} - -// Sort sorts the properties keys in alphabetical order. -// This is helpfully before writing the properties. -func (p *Properties) Sort() { - sort.Strings(p.k) -} - -// Write writes all unexpanded 'key = value' pairs to the given writer. -// Write returns the number of bytes written and any write error encountered. -func (p *Properties) Write(w io.Writer, enc Encoding) (n int, err error) { - return p.WriteComment(w, "", enc) -} - -// WriteComment writes all unexpanced 'key = value' pairs to the given writer. -// If prefix is not empty then comments are written with a blank line and the -// given prefix. The prefix should be either "# " or "! " to be compatible with -// the properties file format. Otherwise, the properties parser will not be -// able to read the file back in. It returns the number of bytes written and -// any write error encountered. -func (p *Properties) WriteComment(w io.Writer, prefix string, enc Encoding) (n int, err error) { - var x int - - for _, key := range p.k { - value := p.m[key] - - if prefix != "" { - if comments, ok := p.c[key]; ok { - // don't print comments if they are all empty - allEmpty := true - for _, c := range comments { - if c != "" { - allEmpty = false - break - } - } - - if !allEmpty { - // add a blank line between entries but not at the top - if len(comments) > 0 && n > 0 { - x, err = fmt.Fprintln(w) - if err != nil { - return - } - n += x - } - - for _, c := range comments { - x, err = fmt.Fprintf(w, "%s%s\n", prefix, c) - if err != nil { - return - } - n += x - } - } - } - } - sep := " = " - if p.WriteSeparator != "" { - sep = p.WriteSeparator - } - x, err = fmt.Fprintf(w, "%s%s%s\n", encode(key, " :", enc), sep, encode(value, "", enc)) - if err != nil { - return - } - n += x - } - return -} - -// Map returns a copy of the properties as a map. -func (p *Properties) Map() map[string]string { - m := make(map[string]string) - for k, v := range p.m { - m[k] = v - } - return m -} - -// FilterFunc returns a copy of the properties which includes the values which passed all filters. -func (p *Properties) FilterFunc(filters ...func(k, v string) bool) *Properties { - pp := NewProperties() -outer: - for k, v := range p.m { - for _, f := range filters { - if !f(k, v) { - continue outer - } - pp.Set(k, v) - } - } - return pp -} - -// ---------------------------------------------------------------------------- - -// Delete removes the key and its comments. -func (p *Properties) Delete(key string) { - delete(p.m, key) - delete(p.c, key) - newKeys := []string{} - for _, k := range p.k { - if k != key { - newKeys = append(newKeys, k) - } - } - p.k = newKeys -} - -// Merge merges properties, comments and keys from other *Properties into p -func (p *Properties) Merge(other *Properties) { - for _, k := range other.k { - if _, ok := p.m[k]; !ok { - p.k = append(p.k, k) - } - } - for k, v := range other.m { - p.m[k] = v - } - for k, v := range other.c { - p.c[k] = v - } -} - -// ---------------------------------------------------------------------------- - -// check expands all values and returns an error if a circular reference or -// a malformed expression was found. -func (p *Properties) check() error { - for key, value := range p.m { - if _, err := p.expand(key, value); err != nil { - return err - } - } - return nil -} - -func (p *Properties) expand(key, input string) (string, error) { - // no pre/postfix -> nothing to expand - if p.Prefix == "" && p.Postfix == "" { - return input, nil - } - - return expand(input, []string{key}, p.Prefix, p.Postfix, p.m) -} - -// expand recursively expands expressions of '(prefix)key(postfix)' to their corresponding values. -// The function keeps track of the keys that were already expanded and stops if it -// detects a circular reference or a malformed expression of the form '(prefix)key'. -func expand(s string, keys []string, prefix, postfix string, values map[string]string) (string, error) { - if len(keys) > maxExpansionDepth { - return "", fmt.Errorf("expansion too deep") - } - - for { - start := strings.Index(s, prefix) - if start == -1 { - return s, nil - } - - keyStart := start + len(prefix) - keyLen := strings.Index(s[keyStart:], postfix) - if keyLen == -1 { - return "", fmt.Errorf("malformed expression") - } - - end := keyStart + keyLen + len(postfix) - 1 - key := s[keyStart : keyStart+keyLen] - - // fmt.Printf("s:%q pp:%q start:%d end:%d keyStart:%d keyLen:%d key:%q\n", s, prefix + "..." + postfix, start, end, keyStart, keyLen, key) - - for _, k := range keys { - if key == k { - var b bytes.Buffer - b.WriteString("circular reference in:\n") - for _, k1 := range keys { - fmt.Fprintf(&b, "%s=%s\n", k1, values[k1]) - } - return "", fmt.Errorf(b.String()) - } - } - - val, ok := values[key] - if !ok { - val = os.Getenv(key) - } - new_val, err := expand(val, append(keys, key), prefix, postfix, values) - if err != nil { - return "", err - } - s = s[:start] + new_val + s[end+1:] - } -} - -// encode encodes a UTF-8 string to ISO-8859-1 and escapes some characters. -func encode(s string, special string, enc Encoding) string { - switch enc { - case UTF8: - return encodeUtf8(s, special) - case ISO_8859_1: - return encodeIso(s, special) - default: - panic(fmt.Sprintf("unsupported encoding %v", enc)) - } -} - -func encodeUtf8(s string, special string) string { - v := "" - for pos := 0; pos < len(s); { - r, w := utf8.DecodeRuneInString(s[pos:]) - pos += w - v += escape(r, special) - } - return v -} - -func encodeIso(s string, special string) string { - var r rune - var w int - var v string - for pos := 0; pos < len(s); { - switch r, w = utf8.DecodeRuneInString(s[pos:]); { - case r < 1<<8: // single byte rune -> escape special chars only - v += escape(r, special) - case r < 1<<16: // two byte rune -> unicode literal - v += fmt.Sprintf("\\u%04x", r) - default: // more than two bytes per rune -> can't encode - v += "?" - } - pos += w - } - return v -} - -func escape(r rune, special string) string { - switch r { - case '\f': - return "\\f" - case '\n': - return "\\n" - case '\r': - return "\\r" - case '\t': - return "\\t" - case '\\': - return "\\\\" - default: - if strings.ContainsRune(special, r) { - return "\\" + string(r) - } - return string(r) - } -} - -func invalidKeyError(key string) error { - return fmt.Errorf("unknown property: %s", key) -} diff --git a/backend/vendor/github.com/magiconair/properties/rangecheck.go b/backend/vendor/github.com/magiconair/properties/rangecheck.go deleted file mode 100644 index dbd60b36..00000000 --- a/backend/vendor/github.com/magiconair/properties/rangecheck.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2013-2022 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "math" -) - -// make this a var to overwrite it in a test -var is32Bit = ^uint(0) == math.MaxUint32 - -// intRangeCheck checks if the value fits into the int type and -// panics if it does not. -func intRangeCheck(key string, v int64) int { - if is32Bit && (v < math.MinInt32 || v > math.MaxInt32) { - panic(fmt.Sprintf("Value %d for key %s out of range", v, key)) - } - return int(v) -} - -// uintRangeCheck checks if the value fits into the uint type and -// panics if it does not. -func uintRangeCheck(key string, v uint64) uint { - if is32Bit && v > math.MaxUint32 { - panic(fmt.Sprintf("Value %d for key %s out of range", v, key)) - } - return uint(v) -} diff --git a/backend/vendor/github.com/maruel/natural/LICENSE b/backend/vendor/github.com/maruel/natural/LICENSE deleted file mode 100644 index 8e539f69..00000000 --- a/backend/vendor/github.com/maruel/natural/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2018 Marc-Antoine Ruel - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/vendor/github.com/maruel/natural/README.md b/backend/vendor/github.com/maruel/natural/README.md deleted file mode 100644 index 7d1a18a2..00000000 --- a/backend/vendor/github.com/maruel/natural/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# natural - -Yet another natural sort, with 100% test coverage and a benchmark. It **does not -allocate memory**, doesn't depend on package `sort` and hence doesn't depend on -`reflect`. It is optimized for speed. - -[![Go -Reference](https://pkg.go.dev/badge/github.com/maruel/natural.svg)](https://pkg.go.dev/github.com/maruel/natural) -[![codecov](https://codecov.io/gh/maruel/natural/branch/main/graph/badge.svg?token=iQg8Y62BBg)](https://codecov.io/gh/maruel/natural) - - -## Benchmarks - -On Go 1.18.3. - -``` -$ go test -bench=. -cpu 1 -goos: linux -goarch: amd64 -pkg: github.com/maruel/natural -cpu: Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz -BenchmarkLessDigitsTwoGroupsNative 331287298 3.597 ns/op 0 B/op 0 allocs/op -BenchmarkLessDigitsTwoGroups 32479050 36.55 ns/op 0 B/op 0 allocs/op -BenchmarkLessStringOnly 157775884 7.603 ns/op 0 B/op 0 allocs/op -BenchmarkLessDigitsOnly 69210796 17.52 ns/op 0 B/op 0 allocs/op -BenchmarkLess10Blocks 6331066 190.8 ns/op 0 B/op 0 allocs/op -``` - -On a Raspberry Pi 3: - -``` -$ go test -bench=. -cpu 1 -goos: linux -goarch: arm -pkg: github.com/maruel/natural -BenchmarkLessDigitsTwoGroupsNative 14181789 86.57 ns/op 0 B/op 0 allocs/op -BenchmarkLessDigitsTwoGroups 1600195 748.9 ns/op 0 B/op 0 allocs/op -BenchmarkLessStringOnly 8286034 142.3 ns/op 0 B/op 0 allocs/op -BenchmarkLessDigitsOnly 3653055 331.4 ns/op 0 B/op 0 allocs/op -BenchmarkLess10Blocks 310687 3838 ns/op 0 B/op 0 allocs/op -``` - -Coverage: - -``` -$ go test -cover -PASS -coverage: 100.0% of statements -ok github.com/maruel/natural 0.012s -``` diff --git a/backend/vendor/github.com/maruel/natural/natsort.go b/backend/vendor/github.com/maruel/natural/natsort.go deleted file mode 100644 index cf743a76..00000000 --- a/backend/vendor/github.com/maruel/natural/natsort.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2018 Marc-Antoine Ruel. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -// Package natural defines a natural "less" to compare two strings while -// interpreting natural numbers. -// -// This is occasionally nicknamed 'natsort'. -// -// It does so with no memory allocation. -package natural - -import ( - "strconv" -) - -// Less does a 'natural' comparison on the two strings. -// -// It treats digits as decimal numbers, so that Less("10", "2") return true. -// -// This function does no memory allocation. -func Less(a, b string) bool { - for { - if p := commonPrefix(a, b); p != 0 { - a = a[p:] - b = b[p:] - } - if len(a) == 0 { - return len(b) != 0 - } - if ia := digits(a); ia > 0 { - if ib := digits(b); ib > 0 { - // Both sides have digits. - an, aerr := strconv.ParseUint(a[:ia], 10, 64) - bn, berr := strconv.ParseUint(b[:ib], 10, 64) - if aerr == nil && berr == nil { - if an != bn { - return an < bn - } - // Semantically the same digits, e.g. "00" == "0", "01" == "1". In - // this case, only continue processing if there's trailing data on - // both sides, otherwise do lexical comparison. - if ia != len(a) && ib != len(b) { - a = a[ia:] - b = b[ib:] - continue - } - } - } - } - return a < b - } -} - -// StringSlice attaches the methods of Interface to []string, sorting in -// increasing order using natural order. -type StringSlice []string - -func (p StringSlice) Len() int { return len(p) } -func (p StringSlice) Less(i, j int) bool { return Less(p[i], p[j]) } -func (p StringSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -// - -// commonPrefix returns the common prefix except for digits. -func commonPrefix(a, b string) int { - m := len(a) - if n := len(b); n < m { - m = n - } - if m == 0 { - return 0 - } - _ = a[m-1] - _ = b[m-1] - for i := 0; i < m; i++ { - ca := a[i] - cb := b[i] - if (ca >= '0' && ca <= '9') || (cb >= '0' && cb <= '9') || ca != cb { - return i - } - } - return m -} - -func digits(s string) int { - for i := 0; i < len(s); i++ { - c := s[i] - if c < '0' || c > '9' { - return i - } - } - return len(s) -} diff --git a/backend/vendor/github.com/marusama/semaphore/v2/.gitignore b/backend/vendor/github.com/marusama/semaphore/v2/.gitignore deleted file mode 100644 index a1338d68..00000000 --- a/backend/vendor/github.com/marusama/semaphore/v2/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.dll -*.so -*.dylib - -# Test binary, build with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 -.glide/ diff --git a/backend/vendor/github.com/marusama/semaphore/v2/.travis.yml b/backend/vendor/github.com/marusama/semaphore/v2/.travis.yml deleted file mode 100644 index 83709dbb..00000000 --- a/backend/vendor/github.com/marusama/semaphore/v2/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: go - -go: -- 1.13.x -- 1.14.x -- 1.15.x -- 1.16.x -- 1.x -- master - -branches: - only: - - master - -install: -- go get golang.org/x/tools/cmd/cover -- go get github.com/mattn/goveralls - -script: -- go test -v -covermode=count -coverprofile=coverage.out -- $HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN \ No newline at end of file diff --git a/backend/vendor/github.com/marusama/semaphore/v2/LICENSE b/backend/vendor/github.com/marusama/semaphore/v2/LICENSE deleted file mode 100644 index 4a162dd8..00000000 --- a/backend/vendor/github.com/marusama/semaphore/v2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 marusama - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/marusama/semaphore/v2/README.md b/backend/vendor/github.com/marusama/semaphore/v2/README.md deleted file mode 100644 index e5099524..00000000 --- a/backend/vendor/github.com/marusama/semaphore/v2/README.md +++ /dev/null @@ -1,82 +0,0 @@ -semaphore -========= -[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/avelino/awesome-go#goroutines) -[![Build Status](https://travis-ci.org/marusama/semaphore.svg?branch=master)](https://travis-ci.org/marusama/semaphore) -[![Go Report Card](https://goreportcard.com/badge/github.com/marusama/semaphore)](https://goreportcard.com/report/github.com/marusama/semaphore) -[![Coverage Status](https://coveralls.io/repos/github/marusama/semaphore/badge.svg?branch=master)](https://coveralls.io/github/marusama/semaphore?branch=master) -[![GoDoc](https://godoc.org/github.com/marusama/semaphore?status.svg)](https://godoc.org/github.com/marusama/semaphore) -[![License](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](LICENSE) - -Fast resizable golang semaphore based on CAS - -* allows weighted acquire/release; -* supports cancellation via context; -* allows change semaphore limit after creation; -* faster than channel based semaphores. - -### Usage -Initiate -```go -import "github.com/marusama/semaphore/v2" -... -sem := semaphore.New(5) // new semaphore with limit = 5 -``` -Acquire -```go -sem.Acquire(ctx, n) // acquire n with context -sem.TryAcquire(n) // try acquire n without blocking -... -ctx := context.WithTimeout(context.Background(), time.Second) -sem.Acquire(ctx, n) // acquire n with timeout -``` -Release -```go -sem.Release(n) // release n -``` -Change semaphore limit -```go -sem.SetLimit(new_limit) // set new semaphore limit -``` - - -### Some benchmarks -Run on MacBook Pro (2017) with 3,1GHz Core i5 cpu and 8GB DDR3 ram, macOS High Sierra, go version go1.11.4 darwin/amd64: -```text -// this semaphore: -BenchmarkSemaphore_Acquire_Release_under_limit_simple-4 20000000 98.6 ns/op 96 B/op 1 allocs/op -BenchmarkSemaphore_Acquire_Release_under_limit-4 1000000 1593 ns/op 960 B/op 10 allocs/op -BenchmarkSemaphore_Acquire_Release_over_limit-4 100000 20760 ns/op 9600 B/op 100 allocs/op - - -// some other implementations: - -// golang.org/x/sync/semaphore: -BenchmarkXSyncSemaphore_Acquire_Release_under_limit_simple-4 50000000 34.9 ns/op 0 B/op 0 allocs/op -BenchmarkXSyncSemaphore_Acquire_Release_under_limit-4 1000000 1103 ns/op 0 B/op 0 allocs/op -BenchmarkXSyncSemaphore_Acquire_Release_over_limit-4 30000 65927 ns/op 15985 B/op 299 allocs/op - -// github.com/abiosoft/semaphore: -BenchmarkAbiosoftSemaphore_Acquire_Release_under_limit_simple-4 10000000 208 ns/op 0 B/op 0 allocs/op -BenchmarkAbiosoftSemaphore_Acquire_Release_under_limit-4 500000 3147 ns/op 0 B/op 0 allocs/op -BenchmarkAbiosoftSemaphore_Acquire_Release_over_limit-4 50000 37148 ns/op 0 B/op 0 allocs/op - -// github.com/dropbox/godropbox -BenchmarkDropboxBoundedSemaphore_Acquire_Release_under_limit_simple-4 20000000 75.9 ns/op 0 B/op 0 allocs/op -BenchmarkDropboxBoundedSemaphore_Acquire_Release_under_limit-4 2000000 629 ns/op 0 B/op 0 allocs/op -BenchmarkDropboxBoundedSemaphore_Acquire_Release_over_limit-4 200000 27308 ns/op 0 B/op 0 allocs/op -BenchmarkDropboxUnboundedSemaphore_Acquire_Release_under_limit_simple-4 50000000 39.7 ns/op 0 B/op 0 allocs/op -BenchmarkDropboxUnboundedSemaphore_Acquire_Release_under_limit-4 1000000 1170 ns/op 0 B/op 0 allocs/op -BenchmarkDropboxUnboundedSemaphore_Acquire_Release_over_limit-4 100000 21013 ns/op 0 B/op 0 allocs/op - -// github.com/kamilsk/semaphore -BenchmarkKamilskSemaphore_Acquire_Release_under_limit_simple-4 20000000 110 ns/op 16 B/op 1 allocs/op -BenchmarkKamilskSemaphore_Acquire_Release_under_limit-4 1000000 1520 ns/op 160 B/op 10 allocs/op -BenchmarkKamilskSemaphore_Acquire_Release_over_limit-4 50000 42693 ns/op 1600 B/op 100 allocs/op - -// github.com/pivotal-golang/semaphore -BenchmarkPivotalGolangSemaphore_Acquire_Release_under_limit_simple-4 3000000 558 ns/op 136 B/op 2 allocs/op -BenchmarkPivotalGolangSemaphore_Acquire_Release_under_limit-4 200000 9530 ns/op 1280 B/op 20 allocs/op -BenchmarkPivotalGolangSemaphore_Acquire_Release_over_limit-4 10000 111264 ns/op 12801 B/op 200 allocs/op - -``` -You can rerun these benchmarks, just checkout `benchmarks` branch and run `go test -bench=. -benchmem ./bench/...` diff --git a/backend/vendor/github.com/marusama/semaphore/v2/semaphore.go b/backend/vendor/github.com/marusama/semaphore/v2/semaphore.go deleted file mode 100644 index ab82d569..00000000 --- a/backend/vendor/github.com/marusama/semaphore/v2/semaphore.go +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2017 Maru Sama. All rights reserved. -// Use of this source code is governed by the MIT license -// that can be found in the LICENSE file. - -// Package semaphore provides an implementation of counting semaphore primitive with possibility to change limit -// after creation. This implementation is based on Compare-and-Swap primitive that in general case works faster -// than other golang channel-based semaphore implementations. -package semaphore // import "github.com/marusama/semaphore/v2" - -import ( - "context" - "sync" - "sync/atomic" -) - -// Semaphore counting resizable semaphore synchronization primitive. -// Use the Semaphore to control access to a pool of resources. -// There is no guaranteed order, such as FIFO or LIFO, in which blocked goroutines enter the semaphore. -// A goroutine can enter the semaphore multiple times, by calling the Acquire or TryAcquire methods repeatedly. -// To release some or all of these entries, the goroutine can call the Release method -// that specifies the number of entries to be released. -// Change Semaphore capacity to lower or higher by SetLimit. -type Semaphore interface { - // Acquire enters the semaphore a specified number of times, blocking only until ctx is done. - // This operation can be cancelled via passed context (but it's allowed to pass ctx='nil'). - // Method returns context error (ctx.Err()) if the passed context is cancelled, - // but this behavior is not guaranteed and sometimes semaphore will still be acquired. - Acquire(ctx context.Context, n int) error - - // TryAcquire acquires the semaphore without blocking. - // On success, returns true. On failure, returns false and leaves the semaphore unchanged. - TryAcquire(n int) bool - - // Release exits the semaphore a specified number of times and returns the previous count. - Release(n int) int - - // SetLimit changes current semaphore limit in concurrent way. - // It is allowed to change limit many times and it's safe to set limit higher or lower. - SetLimit(limit int) - - // GetLimit returns current semaphore limit. - GetLimit() int - - // GetCount returns current number of occupied entries in semaphore. - GetCount() int -} - -// semaphore impl Semaphore intf -type semaphore struct { - // state holds limit and count in one 64 bits unsigned integer - // - // state (64 bits) - // +-----------------------------------------------------------------+ - // limit (high 32 bits) count (low 32 bits) - // +--------------------------------|--------------------------------+ - // - state uint64 - - // broadcast fields - lock sync.RWMutex - broadcastCh chan struct{} -} - -// New initializes a new instance of the Semaphore, specifying the maximum number of concurrent entries. -func New(limit int) Semaphore { - if limit < 0 { - panic("semaphore limit must not be negative") - } - broadcastCh := make(chan struct{}) - return &semaphore{ - state: uint64(limit) << 32, - broadcastCh: broadcastCh, - } -} - -func (s *semaphore) Acquire(ctx context.Context, n int) error { - if n <= 0 { - panic("n must be positive number") - } - var ctxDoneCh <-chan struct{} - if ctx != nil { - ctxDoneCh = ctx.Done() - } - for { - // check if context is done - select { - case <-ctxDoneCh: - return ctx.Err() - default: - } - - // get current semaphore count and limit - state := atomic.LoadUint64(&s.state) - count := state & 0xFFFFFFFF - limit := state >> 32 - - // new count - newCount := count + uint64(n) - - if newCount <= limit { - if atomic.CompareAndSwapUint64(&s.state, state, limit<<32+newCount) { - // acquired - return nil - } - - // CAS failed, try again - continue - } else { - // semaphore is full, let's wait - s.lock.RLock() - broadcastCh := s.broadcastCh - s.lock.RUnlock() - - // ensure that the state is the same as when we first checked; this - // ensures that the broadcastCh will eventually be closed by a Release. - if atomic.LoadUint64(&s.state) != state { - continue - } - - select { - // check if context is done - case <-ctxDoneCh: - return ctx.Err() - // waiting for broadcast signal - case <-broadcastCh: - } - } - } -} - -func (s *semaphore) TryAcquire(n int) bool { - if n <= 0 { - panic("n must be positive number") - } - - for { - // get current semaphore count and limit - state := atomic.LoadUint64(&s.state) - count := state & 0xFFFFFFFF - limit := state >> 32 - - // new count - newCount := count + uint64(n) - - if newCount <= limit { - if atomic.CompareAndSwapUint64(&s.state, state, limit<<32+newCount) { - // acquired - return true - } - - // CAS failed, try again - continue - } - - // semaphore is full - return false - } -} - -func (s *semaphore) Release(n int) int { - if n <= 0 { - panic("n must be positive number") - } - for { - // get current semaphore count and limit - state := atomic.LoadUint64(&s.state) - count := state & 0xFFFFFFFF - - if count < uint64(n) { - panic("semaphore release without acquire") - } - - // new count - newCount := count - uint64(n) - - if atomic.CompareAndSwapUint64(&s.state, state, state&0xFFFFFFFF00000000+newCount) { - - newBroadcastCh := make(chan struct{}) - s.lock.Lock() - oldBroadcastCh := s.broadcastCh - s.broadcastCh = newBroadcastCh - s.lock.Unlock() - // send broadcast signal - close(oldBroadcastCh) - - return int(count) - } - } -} - -func (s *semaphore) SetLimit(limit int) { - if limit < 0 { - panic("semaphore limit must not be negative") - } - for { - state := atomic.LoadUint64(&s.state) - if atomic.CompareAndSwapUint64(&s.state, state, uint64(limit)<<32+state&0xFFFFFFFF) { - newBroadcastCh := make(chan struct{}) - s.lock.Lock() - oldBroadcastCh := s.broadcastCh - s.broadcastCh = newBroadcastCh - s.lock.Unlock() - - // send broadcast signal - close(oldBroadcastCh) - return - } - } -} - -func (s *semaphore) GetCount() int { - state := atomic.LoadUint64(&s.state) - return int(state & 0xFFFFFFFF) -} - -func (s *semaphore) GetLimit() int { - state := atomic.LoadUint64(&s.state) - return int(state >> 32) -} diff --git a/backend/vendor/github.com/mholt/archiver/v3/.gitignore b/backend/vendor/github.com/mholt/archiver/v3/.gitignore deleted file mode 100644 index 4a87fc1a..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -/arc -/cmd/arc/arc -/dist/ -/vendor/ - -.DS_Store -_gitignore -builds/ -*.test -.*.sw* diff --git a/backend/vendor/github.com/mholt/archiver/v3/.goreleaser.yml b/backend/vendor/github.com/mholt/archiver/v3/.goreleaser.yml deleted file mode 100644 index 13cc2a67..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/.goreleaser.yml +++ /dev/null @@ -1,41 +0,0 @@ -# This is an example goreleaser.yaml file with some sane defaults. -# Make sure to check the documentation at http://goreleaser.com -project_name: arc -before: - hooks: - # You may remove this if you don't use go modules. - - go mod download - # you may remove this if you don't need go generate - - go generate ./... -builds: - - - env: - - CGO_ENABLED=0 - main: ./cmd/arc - goos: - - linux - - windows - - darwin - goarch: - - 386 - - amd64 - - arm - - arm64 - goarm: - - 6 - - 7 -archives: - - - format: binary - replacements: - darwin: mac -checksum: - name_template: 'checksums.txt' -snapshot: - name_template: "{{ .Tag }}-next" -changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' diff --git a/backend/vendor/github.com/mholt/archiver/v3/.prettierrc b/backend/vendor/github.com/mholt/archiver/v3/.prettierrc deleted file mode 100644 index f9f5139c..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "bracketSpacing": true, - "printWidth": 120, -} diff --git a/backend/vendor/github.com/mholt/archiver/v3/LICENSE b/backend/vendor/github.com/mholt/archiver/v3/LICENSE deleted file mode 100644 index 315d04f2..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Matthew Holt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/backend/vendor/github.com/mholt/archiver/v3/README.md b/backend/vendor/github.com/mholt/archiver/v3/README.md deleted file mode 100644 index c8de5e7e..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/README.md +++ /dev/null @@ -1,324 +0,0 @@ -# archiver [![archiver GoDoc](https://img.shields.io/badge/reference-godoc-blue.svg?style=flat-square)](https://pkg.go.dev/github.com/mholt/archiver?tab=doc) [![Ubuntu-latest](https://github.com/mholt/archiver/actions/workflows/ubuntu-latest.yml/badge.svg)](https://github.com/mholt/archiver/actions/workflows/ubuntu-latest.yml) [![Macos-latest](https://github.com/mholt/archiver/actions/workflows/macos-latest.yml/badge.svg)](https://github.com/mholt/archiver/actions/workflows/macos-latest.yml) [![Windows-latest](https://github.com/mholt/archiver/actions/workflows/windows-latest.yml/badge.svg)](https://github.com/mholt/archiver/actions/workflows/windows-latest.yml) - -Introducing **Archiver 3.1** - a cross-platform, multi-format archive utility and Go library. A powerful and flexible library meets an elegant CLI in this generic replacement for several platform-specific or format-specific archive utilities. - -## Features - -Package archiver makes it trivially easy to make and extract common archive formats such as tarball (and its compressed variants) and zip. Simply name the input and output file(s). The `arc` command runs the same on all platforms and has no external dependencies (not even libc). It is powered by the Go standard library and several third-party, pure-Go libraries. - -Files are put into the root of the archive; directories are recursively added, preserving structure. - -- Make whole archives from a list of files -- Open whole archives to a folder -- Extract specific files/folders from archives -- Stream files in and out of archives without needing actual files on disk -- Traverse archive contents without loading them -- Compress files -- Decompress files -- Streaming compression and decompression -- Several archive and compression formats supported - -### Format-dependent features - -- Gzip is multithreaded -- Optionally create a top-level folder to avoid littering a directory or archive root with files -- Toggle overwrite existing files -- Adjust compression level -- Zip: store (not compress) already-compressed files -- Make all necessary directories -- Open password-protected RAR archives -- Optionally continue with other files after an error - -### Supported compression formats - -- brotli (br) -- bzip2 (bz2) -- flate (zip) -- gzip (gz) -- lz4 -- snappy (sz) -- xz -- zstandard (zstd) - -### Supported archive formats - -- .zip -- .tar (including any compressed variants like .tar.gz) -- .rar (read-only) - -Tar files can optionally be compressed using any of the above compression formats. - -## GoDoc - -See - -## Install - -### With webi - -[`webi`](https://webinstall.dev/arc) will install `webi` and `arc` to `~/.local/bin/` and update your `PATH`. - -#### Mac, Linux, Raspberry Pi - -```bash -curl -fsS https://webinstall.dev/arc | bash -``` - -#### Windows 10 - -```pwsh -curl.exe -fsS -A MS https://webinstall.dev/arc | powershell -``` - -### With Go - -To install the runnable binary to your \$GOPATH/bin: - -```bash -go install github.com/mholt/archiver/v3/cmd/arc@latest -``` - -### Manually - -To install manually - -1. Download the binary for your platform from the [Github Releases](https://github.com/mholt/archiver/releases) page. -2. Move the binary to a location in your path, for example: - - without `sudo`: - ```bash - chmod a+x ~/Downloads/arc_* - mkdir -p ~/.local/bin - mv ~/Downloads/arc_* ~/.local/bin/arc - ``` - - as `root`: - ```bash - chmod a+x ~/Downloads/arc_* - sudo mkdir -p /usr/local/bin - sudo mv ~/Downloads/arc_* /usr/local/bin/arc - ``` -3. If needed, update `~/.bashrc` or `~/.profile` to include add `arc` in your `PATH`, for example: - ``` - echo 'PATH="$HOME:/.local/bin:$PATH"' >> ~/.bashrc - ``` - -## Build from Source - -You can successfully build `arc` with just the go tooling, or with `goreleaser`. - -### With `go` - -```bash -go build cmd/arc/*.go -``` - -### Multi-platform with `goreleaser` - -Builds with `goreleaser` will also include version info. - -```bash -goreleaser --snapshot --skip-publish --rm-dist -``` - -## Command Use - -### Make new archive - -```bash -# Syntax: arc archive [archive name] [input files...] - -arc archive test.tar.gz file1.txt images/file2.jpg folder/subfolder -``` - -(At least one input file is required.) - -### Extract entire archive - -```bash -# Syntax: arc unarchive [archive name] [destination] - -arc unarchive test.tar.gz -``` - -(The destination path is optional; default is current directory.) - -The archive name must end with a supported file extension—this is how it knows what kind of archive to make. Run `arc help` for more help. - -### List archive contents - -```bash -# Syntax: arc ls [archive name] - -arc ls caddy_dist.tar.gz -``` - -```txt -drwxr-xr-x matt staff 0 2018-09-19 15:47:18 -0600 MDT dist/ --rw-r--r-- matt staff 6148 2017-08-07 18:34:22 -0600 MDT dist/.DS_Store --rw-r--r-- matt staff 22481 2018-09-19 15:47:18 -0600 MDT dist/CHANGES.txt --rw-r--r-- matt staff 17189 2018-09-19 15:47:18 -0600 MDT dist/EULA.txt --rw-r--r-- matt staff 25261 2016-03-07 16:32:00 -0700 MST dist/LICENSES.txt --rw-r--r-- matt staff 1017 2018-09-19 15:47:18 -0600 MDT dist/README.txt --rw-r--r-- matt staff 288 2016-03-21 11:52:38 -0600 MDT dist/gitcookie.sh.enc -... -``` - -### Extract a specific file or folder from an archive - -```bash -# Syntax: arc extract [archive name] [path in archive] [destination on disk] - -arc extract test.tar.gz foo/hello.txt extracted/hello.txt -``` - -### Compress a single file - -```bash -# Syntax: arc compress [input file] [output file] - -arc compress test.txt compressed_test.txt.gz -arc compress test.txt gz -``` - -For convenience, the output file (second argument) may simply be a compression format (without leading dot), in which case the output filename will be the same as the input filename but with the format extension appended, and the input file will be deleted if successful. - -### Decompress a single file - -```bash -# Syntax: arc decompress [input file] [output file] - -arc decompress test.txt.gz original_test.txt -arc decompress test.txt.gz -``` - -For convenience, the output file (second argument) may be omitted. In that case, the output filename will have the same name as the input filename, but with the compression extension stripped from the end; and the input file will be deleted if successful. - -### Flags - -Flags are specified before the subcommand. Use `arc help` or `arc -h` to get usage help and a description of flags with their default values. - -## Library Use - -The archiver package allows you to easily create and open archives, walk their contents, extract specific files, compress and decompress files, and even stream archives in and out using pure io.Reader and io.Writer interfaces, without ever needing to touch the disk. - -To use as a dependency in your project: - -```bash -go get github.com/mholt/archiver/v3 -``` - -```go -import "github.com/mholt/archiver/v3" -``` - -[See the package's GoDoc](https://pkg.go.dev/github.com/mholt/archiver?tab=doc) for full API documentation. - -For example, creating or unpacking an archive file: - -```go -err := archiver.Archive([]string{"testdata", "other/file.txt"}, "test.zip") -// ... -err = archiver.Unarchive("test.tar.gz", "test") -``` - -The archive format is determined by file extension. (There are [several functions in this package](https://pkg.go.dev/github.com/mholt/archiver?tab=doc) which perform a task by inferring the format from file extension or file header, including `Archive()`, `Unarchive()`, `CompressFile()`, and `DecompressFile()`.) - -To configure the archiver used or perform, create an instance of the format's type: - -```go -z := archiver.Zip{ - CompressionLevel: flate.DefaultCompression, - MkdirAll: true, - SelectiveCompression: true, - ContinueOnError: false, - OverwriteExisting: false, - ImplicitTopLevelFolder: false, -} - -err := z.Archive([]string{"testdata", "other/file.txt"}, "/Users/matt/Desktop/test.zip") -``` - -Inspecting an archive: - -```go -err = z.Walk("/Users/matt/Desktop/test.zip", func(f archiver.File) error { - zfh, ok := f.Header.(zip.FileHeader) - if ok { - fmt.Println("Filename:", zfh.Name) - } - return nil -}) -``` - -Streaming files into an archive that is being written to the HTTP response: - -```go -err = z.Create(responseWriter) -if err != nil { - return err -} -defer z.Close() - -for _, fname := range filenames { - info, err := os.Stat(fname) - if err != nil { - return err - } - - // get file's name for the inside of the archive - internalName, err := archiver.NameInArchive(info, fname, fname) - if err != nil { - return err - } - - // open the file - file, err := os.Open(f) - if err != nil { - return err - } - - // write it to the archive - err = z.Write(archiver.File{ - FileInfo: archiver.FileInfo{ - FileInfo: info, - CustomName: internalName, - }, - ReadCloser: file, - }) - file.Close() - if err != nil { - return err - } -} -``` - -The `archiver.File` type allows you to use actual files with archives, or to mimic files when you only have streams. - -There's a lot more that can be done, too. [See the GoDoc](https://pkg.go.dev/github.com/mholt/archiver?tab=doc) for full API documentation. - -**Security note: This package does NOT attempt to mitigate zip-slip attacks.** It is [extremely difficult](https://github.com/rubyzip/rubyzip/pull/376) [to do properly](https://github.com/mholt/archiver/pull/65#issuecomment-395988244) and [seemingly impossible to mitigate effectively across platforms](https://github.com/golang/go/issues/20126). [Attempted fixes have broken processing of legitimate files in production](https://github.com/mholt/archiver/pull/70#issuecomment-423267320), rendering the program unusable. Our recommendation instead is to inspect the contents of an untrusted archive before extracting it (this package provides `Walkers`) and decide if you want to proceed with extraction. - -## Project Values - -This project has a few principle-based goals that guide its development: - -- **Do our thing really well.** Our thing is creating, opening, inspecting, compressing, and streaming archive files. It is not meant to be a replacement for specific archive format tools like tar, zip, etc. that have lots of features and customizability. (Some customizability is OK, but not to the extent that it becomes overly complicated or error-prone.) - -- **Have good tests.** Changes should be covered by tests. - -- **Limit dependencies.** Keep the package lightweight. - -- **Pure Go.** This means no cgo or other external/system dependencies. This package should be able to stand on its own and cross-compile easily to any platform -- and that includes its library dependencies. - -- **Idiomatic Go.** Keep interfaces small, variable names semantic, vet shows no errors, the linter is generally quiet, etc. - -- **Be elegant.** This package should be elegant to use and its code should be elegant when reading and testing. If it doesn't feel good, fix it up. - -- **Well-documented.** Use comments prudently; explain why non-obvious code is necessary (and use tests to enforce it). Keep the docs updated, and have examples where helpful. - -- **Keep it efficient.** This often means keep it simple. Fast code is valuable. - -- **Consensus.** Contributions should ideally be approved by multiple reviewers before being merged. Generally, avoid merging multi-chunk changes that do not go through at least one or two iterations/reviews. Except for trivial changes, PRs are seldom ready to merge right away. - -- **Have fun contributing.** Coding is awesome! - -We welcome contributions and appreciate your efforts! However, please open issues to discuss any changes before spending the time preparing a pull request. This will save time, reduce frustration, and help coordinate the work. Thank you! diff --git a/backend/vendor/github.com/mholt/archiver/v3/SECURITY.md b/backend/vendor/github.com/mholt/archiver/v3/SECURITY.md deleted file mode 100644 index f9157124..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/SECURITY.md +++ /dev/null @@ -1,15 +0,0 @@ -# Security Policy - -## Supported Versions - -| Version | Supported | -| ------- | ------------------ | -| >= 3.x | :white_check_mark: | -| < 3.0 | :x: | - -## Reporting a Vulnerability - -Please send the details to both of us: - -- AJ ONeal -- Matthew Holt diff --git a/backend/vendor/github.com/mholt/archiver/v3/archiver.go b/backend/vendor/github.com/mholt/archiver/v3/archiver.go deleted file mode 100644 index 6fdadadc..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/archiver.go +++ /dev/null @@ -1,540 +0,0 @@ -// Package archiver facilitates convenient, cross-platform, high-level archival -// and compression operations for a variety of formats and compression algorithms. -// -// This package and its dependencies are written in pure Go (not cgo) and -// have no external dependencies, so they should run on all major platforms. -// (It also comes with a command for CLI use in the cmd/arc folder.) -// -// Each supported format or algorithm has a unique type definition that -// implements the interfaces corresponding to the tasks they perform. For -// example, the Tar type implements Reader, Writer, Archiver, Unarchiver, -// Walker, and several other interfaces. -// -// The most common functions are implemented at the package level for -// convenience: Archive, Unarchive, Walk, Extract, CompressFile, and -// DecompressFile. With these, the format type is chosen implicitly, -// and a sane default configuration is used. -// -// To customize a format's configuration, create an instance of its struct -// with its fields set to the desired values. You can also use and customize -// the handy Default* (replace the wildcard with the format's type name) -// for a quick, one-off instance of the format's type. -// -// To obtain a new instance of a format's struct with the default config, use -// the provided New*() functions. This is not required, however. An empty -// struct of any type, for example &Zip{} is perfectly valid, so you may -// create the structs manually, too. The examples on this page show how -// either may be done. -// -// See the examples in this package for an idea of how to wield this package -// for common tasks. Most of the examples which are specific to a certain -// format type, for example Zip, can be applied to other types that implement -// the same interfaces. For example, using Zip is very similar to using Tar -// or TarGz (etc), and using Gz is very similar to using Sz or Xz (etc). -// -// When creating archives or compressing files using a specific instance of -// the format's type, the name of the output file MUST match that of the -// format, to prevent confusion later on. If you absolutely need a different -// file extension, you may rename the file afterward. -// -// Values in this package are NOT safe for concurrent use. There is no -// performance benefit of reusing them, and since they may contain important -// state (especially while walking, reading, or writing), it is NOT -// recommended to reuse values from this package or change their configuration -// after they are in use. -package archiver - -import ( - "fmt" - "io" - "os" - "path" - "path/filepath" - "runtime" - "strings" -) - -// Archiver is a type that can create an archive file -// from a list of source file names. -type Archiver interface { - ExtensionChecker - - // Archive adds all the files or folders in sources - // to an archive to be created at destination. Files - // are added to the root of the archive, and directories - // are walked and recursively added, preserving folder - // structure. - Archive(sources []string, destination string) error -} - -// ExtensionChecker validates file extensions -type ExtensionChecker interface { - CheckExt(name string) error -} - -// FilenameChecker validates filenames to prevent path traversal attacks -type FilenameChecker interface { - CheckPath(to, filename string) error -} - -// Unarchiver is a type that can extract archive files -// into a folder. -type Unarchiver interface { - Unarchive(source, destination string) error -} - -// Writer can write discrete byte streams of files to -// an output stream. -type Writer interface { - Create(out io.Writer) error - Write(f File) error - Close() error -} - -// Reader can read discrete byte streams of files from -// an input stream. -type Reader interface { - Open(in io.Reader, size int64) error - Read() (File, error) - Close() error -} - -// Extractor can extract a specific file from a source -// archive to a specific destination folder on disk. -type Extractor interface { - Extract(source, target, destination string) error -} - -// File provides methods for accessing information about -// or contents of a file within an archive. -type File struct { - os.FileInfo - - // The original header info; depends on - // type of archive -- could be nil, too. - Header interface{} - - // Allow the file contents to be read (and closed) - io.ReadCloser -} - -// FileInfo is an os.FileInfo but optionally with -// a custom name, useful if dealing with files that -// are not actual files on disk, or which have a -// different name in an archive than on disk. -type FileInfo struct { - os.FileInfo - CustomName string - // Stores path to the source. - // Used when reading a symlink. - SourcePath string -} - -// Name returns fi.CustomName if not empty; -// otherwise it returns fi.FileInfo.Name(). -func (fi FileInfo) Name() string { - if fi.CustomName != "" { - return fi.CustomName - } - return fi.FileInfo.Name() -} - -// ReadFakeCloser is an io.Reader that has -// a no-op close method to satisfy the -// io.ReadCloser interface. -type ReadFakeCloser struct { - io.Reader -} - -// Close implements io.Closer. -func (rfc ReadFakeCloser) Close() error { return nil } - -// Walker can walk an archive file and return information -// about each item in the archive. -type Walker interface { - Walk(archive string, walkFn WalkFunc) error -} - -// WalkFunc is called at each item visited by Walk. -// If an error is returned, the walk may continue -// if the Walker is configured to continue on error. -// The sole exception is the error value ErrStopWalk, -// which stops the walk without an actual error. -type WalkFunc func(f File) error - -// ErrStopWalk signals Walk to break without error. -var ErrStopWalk = fmt.Errorf("walk stopped") - -// ErrFormatNotRecognized is an error that will be -// returned if the file is not a valid archive format. -var ErrFormatNotRecognized = fmt.Errorf("format not recognized") - -// Compressor compresses to out what it reads from in. -// It also ensures a compatible or matching file extension. -type Compressor interface { - ExtensionChecker - Compress(in io.Reader, out io.Writer) error -} - -// Decompressor decompresses to out what it reads from in. -type Decompressor interface { - Decompress(in io.Reader, out io.Writer) error -} - -// Matcher is a type that can return whether the given -// file appears to match the implementation's format. -// Implementations should return the file's read position -// to where it was when the method was called. -type Matcher interface { - Match(io.ReadSeeker) (bool, error) -} - -// Archive creates an archive of the source files to a new file at destination. -// The archive format is chosen implicitly by file extension. -func Archive(sources []string, destination string) error { - aIface, err := ByExtension(destination) - if err != nil { - return err - } - a, ok := aIface.(Archiver) - if !ok { - return fmt.Errorf("format specified by destination filename is not an archive format: %s (%T)", destination, aIface) - } - return a.Archive(sources, destination) -} - -// Unarchive unarchives the given archive file into the destination folder. -// The archive format is selected implicitly. -func Unarchive(source, destination string) error { - uaIface, err := ByExtension(source) - if err != nil { - return err - } - u, ok := uaIface.(Unarchiver) - if !ok { - return fmt.Errorf("format specified by source filename is not an archive format: %s (%T)", source, uaIface) - } - return u.Unarchive(source, destination) -} - -// Walk calls walkFn for each file within the given archive file. -// The archive format is chosen implicitly. -func Walk(archive string, walkFn WalkFunc) error { - wIface, err := ByExtension(archive) - if err != nil { - return err - } - w, ok := wIface.(Walker) - if !ok { - return fmt.Errorf("format specified by archive filename is not a walker format: %s (%T)", archive, wIface) - } - return w.Walk(archive, walkFn) -} - -// Extract extracts a single file from the given source archive. If the target -// is a directory, the entire folder will be extracted into destination. The -// archive format is chosen implicitly. -func Extract(source, target, destination string) error { - eIface, err := ByExtension(source) - if err != nil { - return err - } - e, ok := eIface.(Extractor) - if !ok { - return fmt.Errorf("format specified by source filename is not an extractor format: %s (%T)", source, eIface) - } - return e.Extract(source, target, destination) -} - -// CompressFile is a convenience function to simply compress a file. -// The compression algorithm is selected implicitly based on the -// destination's extension. -func CompressFile(source, destination string) error { - cIface, err := ByExtension(destination) - if err != nil { - return err - } - c, ok := cIface.(Compressor) - if !ok { - return fmt.Errorf("format specified by destination filename is not a recognized compression algorithm: %s", destination) - } - return FileCompressor{Compressor: c}.CompressFile(source, destination) -} - -// DecompressFile is a convenience function to simply decompress a file. -// The decompression algorithm is selected implicitly based on the -// source's extension. -func DecompressFile(source, destination string) error { - cIface, err := ByExtension(source) - if err != nil { - return err - } - c, ok := cIface.(Decompressor) - if !ok { - return fmt.Errorf("format specified by source filename is not a recognized compression algorithm: %s", source) - } - return FileCompressor{Decompressor: c}.DecompressFile(source, destination) -} - -func fileExists(name string) bool { - _, err := os.Stat(name) - return !os.IsNotExist(err) -} - -func mkdir(dirPath string, dirMode os.FileMode) error { - err := os.MkdirAll(dirPath, dirMode) - if err != nil { - return fmt.Errorf("%s: making directory: %v", dirPath, err) - } - return nil -} - -func writeNewFile(fpath string, in io.Reader, fm os.FileMode) error { - err := os.MkdirAll(filepath.Dir(fpath), 0755) - if err != nil { - return fmt.Errorf("%s: making directory for file: %v", fpath, err) - } - - out, err := os.Create(fpath) - if err != nil { - return fmt.Errorf("%s: creating new file: %v", fpath, err) - } - defer out.Close() - - err = out.Chmod(fm) - if err != nil && runtime.GOOS != "windows" { - return fmt.Errorf("%s: changing file mode: %v", fpath, err) - } - - _, err = io.Copy(out, in) - if err != nil { - return fmt.Errorf("%s: writing file: %v", fpath, err) - } - return nil -} - -func writeNewSymbolicLink(fpath string, target string) error { - err := os.MkdirAll(filepath.Dir(fpath), 0755) - if err != nil { - return fmt.Errorf("%s: making directory for file: %v", fpath, err) - } - - _, err = os.Lstat(fpath) - if err == nil { - err = os.Remove(fpath) - if err != nil { - return fmt.Errorf("%s: failed to unlink: %+v", fpath, err) - } - } - - err = os.Symlink(target, fpath) - if err != nil { - return fmt.Errorf("%s: making symbolic link for: %v", fpath, err) - } - return nil -} - -func writeNewHardLink(fpath string, target string) error { - err := os.MkdirAll(filepath.Dir(fpath), 0755) - if err != nil { - return fmt.Errorf("%s: making directory for file: %v", fpath, err) - } - - _, err = os.Lstat(fpath) - if err == nil { - err = os.Remove(fpath) - if err != nil { - return fmt.Errorf("%s: failed to unlink: %+v", fpath, err) - } - } - - err = os.Link(target, fpath) - if err != nil { - return fmt.Errorf("%s: making hard link for: %v", fpath, err) - } - return nil -} - -func isSymlink(fi os.FileInfo) bool { - return fi.Mode()&os.ModeSymlink != 0 -} - -// within returns true if sub is within or equal to parent. -func within(parent, sub string) bool { - rel, err := filepath.Rel(parent, sub) - if err != nil { - return false - } - return !strings.Contains(rel, "..") -} - -// multipleTopLevels returns true if the paths do not -// share a common top-level folder. -func multipleTopLevels(paths []string) bool { - if len(paths) < 2 { - return false - } - var lastTop string - for _, p := range paths { - p = strings.TrimPrefix(strings.Replace(p, `\`, "/", -1), "/") - for { - next := path.Dir(p) - if next == "." { - break - } - p = next - } - if lastTop == "" { - lastTop = p - } - if p != lastTop { - return true - } - } - return false -} - -// folderNameFromFileName returns a name for a folder -// that is suitable based on the filename, which will -// be stripped of its extensions. -func folderNameFromFileName(filename string) string { - base := filepath.Base(filename) - firstDot := strings.Index(base, ".") - if firstDot > -1 { - return base[:firstDot] - } - return base -} - -// makeNameInArchive returns the filename for the file given by fpath to be used within -// the archive. sourceInfo is the FileInfo obtained by calling os.Stat on source, and baseDir -// is an optional base directory that becomes the root of the archive. fpath should be the -// unaltered file path of the file given to a filepath.WalkFunc. -func makeNameInArchive(sourceInfo os.FileInfo, source, baseDir, fpath string) (string, error) { - name := filepath.Base(fpath) // start with the file or dir name - if sourceInfo.IsDir() { - // preserve internal directory structure; that's the path components - // between the source directory's leaf and this file's leaf - dir, err := filepath.Rel(filepath.Dir(source), filepath.Dir(fpath)) - if err != nil { - return "", err - } - // prepend the internal directory structure to the leaf name, - // and convert path separators to forward slashes as per spec - name = path.Join(filepath.ToSlash(dir), name) - } - return path.Join(baseDir, name), nil // prepend the base directory -} - -// NameInArchive returns a name for the file at fpath suitable for -// the inside of an archive. The source and its associated sourceInfo -// is the path where walking a directory started, and if no directory -// was walked, source may == fpath. The returned name is essentially -// the components of the path between source and fpath, preserving -// the internal directory structure. -func NameInArchive(sourceInfo os.FileInfo, source, fpath string) (string, error) { - return makeNameInArchive(sourceInfo, source, "", fpath) -} - -// ByExtension returns an archiver and unarchiver, or compressor -// and decompressor, based on the extension of the filename. -func ByExtension(filename string) (interface{}, error) { - var ec interface{} - for _, c := range extCheckers { - if err := c.CheckExt(filename); err == nil { - ec = c - break - } - } - switch ec.(type) { - case *Rar: - return NewRar(), nil - case *Tar: - return NewTar(), nil - case *TarBrotli: - return NewTarBrotli(), nil - case *TarBz2: - return NewTarBz2(), nil - case *TarGz: - return NewTarGz(), nil - case *TarLz4: - return NewTarLz4(), nil - case *TarSz: - return NewTarSz(), nil - case *TarXz: - return NewTarXz(), nil - case *TarZstd: - return NewTarZstd(), nil - case *Zip: - return NewZip(), nil - case *Gz: - return NewGz(), nil - case *Bz2: - return NewBz2(), nil - case *Lz4: - return NewLz4(), nil - case *Snappy: - return NewSnappy(), nil - case *Xz: - return NewXz(), nil - case *Zstd: - return NewZstd(), nil - } - return nil, fmt.Errorf("format unrecognized by filename: %s", filename) -} - -// ByHeader returns the unarchiver value that matches the input's -// file header. It does not affect the current read position. -// If the file's header is not a recognized archive format, then -// ErrFormatNotRecognized will be returned. -func ByHeader(input io.ReadSeeker) (Unarchiver, error) { - var matcher Matcher - for _, m := range matchers { - ok, err := m.Match(input) - if err != nil { - return nil, fmt.Errorf("matching on format %s: %v", m, err) - } - if ok { - matcher = m - break - } - } - switch matcher.(type) { - case *Zip: - return NewZip(), nil - case *Tar: - return NewTar(), nil - case *Rar: - return NewRar(), nil - } - return nil, ErrFormatNotRecognized -} - -// extCheckers is a list of the format implementations -// that can check extensions. Only to be used for -// checking extensions - not any archival operations. -var extCheckers = []ExtensionChecker{ - &TarBrotli{}, - &TarBz2{}, - &TarGz{}, - &TarLz4{}, - &TarSz{}, - &TarXz{}, - &TarZstd{}, - &Rar{}, - &Tar{}, - &Zip{}, - &Brotli{}, - &Gz{}, - &Bz2{}, - &Lz4{}, - &Snappy{}, - &Xz{}, - &Zstd{}, -} - -var matchers = []Matcher{ - &Rar{}, - &Tar{}, - &Zip{}, -} diff --git a/backend/vendor/github.com/mholt/archiver/v3/brotli.go b/backend/vendor/github.com/mholt/archiver/v3/brotli.go deleted file mode 100644 index d594d66f..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/brotli.go +++ /dev/null @@ -1,55 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/andybalholm/brotli" -) - -// Brotli facilitates brotli compression. -type Brotli struct { - Quality int -} - -// Compress reads in, compresses it, and writes it to out. -func (br *Brotli) Compress(in io.Reader, out io.Writer) error { - w := brotli.NewWriterLevel(out, br.Quality) - defer w.Close() - _, err := io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (br *Brotli) Decompress(in io.Reader, out io.Writer) error { - r := brotli.NewReader(in) - _, err := io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (br *Brotli) CheckExt(filename string) error { - if filepath.Ext(filename) != ".br" { - return fmt.Errorf("filename must have a .br extension") - } - return nil -} - -func (br *Brotli) String() string { return "brotli" } - -// NewBrotli returns a new, default instance ready to be customized and used. -func NewBrotli() *Brotli { - return &Brotli{ - Quality: brotli.DefaultCompression, - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Brotli)) - _ = Decompressor(new(Brotli)) -) - -// DefaultBrotli is a default instance that is conveniently ready to use. -var DefaultBrotli = NewBrotli() diff --git a/backend/vendor/github.com/mholt/archiver/v3/build.bash b/backend/vendor/github.com/mholt/archiver/v3/build.bash deleted file mode 100644 index 225ffc2d..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/build.bash +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -ex - -# This script builds archiver for most common platforms. - -export CGO_ENABLED=0 - -cd cmd/arc -GOOS=linux GOARCH=amd64 go build -o ../../builds/arc_linux_amd64 -GOOS=linux GOARCH=arm go build -o ../../builds/arc_linux_arm7 -GOOS=darwin GOARCH=amd64 go build -o ../../builds/arc_mac_amd64 -GOOS=windows GOARCH=amd64 go build -o ../../builds/arc_windows_amd64.exe -cd ../.. diff --git a/backend/vendor/github.com/mholt/archiver/v3/bz2.go b/backend/vendor/github.com/mholt/archiver/v3/bz2.go deleted file mode 100644 index 2eb4ac2b..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/bz2.go +++ /dev/null @@ -1,64 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/dsnet/compress/bzip2" -) - -// Bz2 facilitates bzip2 compression. -type Bz2 struct { - CompressionLevel int -} - -// Compress reads in, compresses it, and writes it to out. -func (bz *Bz2) Compress(in io.Reader, out io.Writer) error { - w, err := bzip2.NewWriter(out, &bzip2.WriterConfig{ - Level: bz.CompressionLevel, - }) - if err != nil { - return err - } - defer w.Close() - _, err = io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (bz *Bz2) Decompress(in io.Reader, out io.Writer) error { - r, err := bzip2.NewReader(in, nil) - if err != nil { - return err - } - defer r.Close() - _, err = io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (bz *Bz2) CheckExt(filename string) error { - if filepath.Ext(filename) != ".bz2" { - return fmt.Errorf("filename must have a .bz2 extension") - } - return nil -} - -func (bz *Bz2) String() string { return "bz2" } - -// NewBz2 returns a new, default instance ready to be customized and used. -func NewBz2() *Bz2 { - return &Bz2{ - CompressionLevel: bzip2.DefaultCompression, - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Bz2)) - _ = Decompressor(new(Bz2)) -) - -// DefaultBz2 is a default instance that is conveniently ready to use. -var DefaultBz2 = NewBz2() diff --git a/backend/vendor/github.com/mholt/archiver/v3/error.go b/backend/vendor/github.com/mholt/archiver/v3/error.go deleted file mode 100644 index a46235c6..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/error.go +++ /dev/null @@ -1,27 +0,0 @@ -package archiver - -import ( - "fmt" - "strings" -) - -// IllegalPathError is an error returned when an illegal -// path is detected during the archival process. -// -// By default, only the Filename is showed on error, but you might -// also get the absolute value of the invalid path on the AbsolutePath -// field. -type IllegalPathError struct { - AbsolutePath string - Filename string -} - -func (err *IllegalPathError) Error() string { - return fmt.Sprintf("illegal file path: %s", err.Filename) -} - -// IsIllegalPathError returns true if the provided error is of -// the type IllegalPathError. -func IsIllegalPathError(err error) bool { - return err != nil && strings.Contains(err.Error(), "illegal file path: ") -} diff --git a/backend/vendor/github.com/mholt/archiver/v3/filecompressor.go b/backend/vendor/github.com/mholt/archiver/v3/filecompressor.go deleted file mode 100644 index ab1fd3b8..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/filecompressor.go +++ /dev/null @@ -1,67 +0,0 @@ -package archiver - -import ( - "fmt" - "os" -) - -// FileCompressor can compress and decompress single files. -type FileCompressor struct { - Compressor - Decompressor - - // Whether to overwrite existing files when creating files. - OverwriteExisting bool -} - -// CompressFile reads the source file and compresses it to destination. -// The destination must have a matching extension. -func (fc FileCompressor) CompressFile(source, destination string) error { - if err := fc.CheckExt(destination); err != nil { - return err - } - if fc.Compressor == nil { - return fmt.Errorf("no compressor specified") - } - if !fc.OverwriteExisting && fileExists(destination) { - return fmt.Errorf("file exists: %s", destination) - } - - in, err := os.Open(source) - if err != nil { - return err - } - defer in.Close() - - out, err := os.Create(destination) - if err != nil { - return err - } - defer out.Close() - - return fc.Compress(in, out) -} - -// DecompressFile reads the source file and decompresses it to destination. -func (fc FileCompressor) DecompressFile(source, destination string) error { - if fc.Decompressor == nil { - return fmt.Errorf("no decompressor specified") - } - if !fc.OverwriteExisting && fileExists(destination) { - return fmt.Errorf("file exists: %s", destination) - } - - in, err := os.Open(source) - if err != nil { - return err - } - defer in.Close() - - out, err := os.Create(destination) - if err != nil { - return err - } - defer out.Close() - - return fc.Decompress(in, out) -} diff --git a/backend/vendor/github.com/mholt/archiver/v3/gz.go b/backend/vendor/github.com/mholt/archiver/v3/gz.go deleted file mode 100644 index 650718d0..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/gz.go +++ /dev/null @@ -1,76 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/klauspost/compress/gzip" - "github.com/klauspost/pgzip" -) - -// Gz facilitates gzip compression. -type Gz struct { - CompressionLevel int - SingleThreaded bool -} - -// Compress reads in, compresses it, and writes it to out. -func (gz *Gz) Compress(in io.Reader, out io.Writer) error { - var w io.WriteCloser - var err error - if gz.SingleThreaded { - w, err = gzip.NewWriterLevel(out, gz.CompressionLevel) - } else { - w, err = pgzip.NewWriterLevel(out, gz.CompressionLevel) - } - if err != nil { - return err - } - defer w.Close() - _, err = io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (gz *Gz) Decompress(in io.Reader, out io.Writer) error { - var r io.ReadCloser - var err error - if gz.SingleThreaded { - r, err = gzip.NewReader(in) - } else { - r, err = pgzip.NewReader(in) - } - if err != nil { - return err - } - defer r.Close() - _, err = io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (gz *Gz) CheckExt(filename string) error { - if filepath.Ext(filename) != ".gz" { - return fmt.Errorf("filename must have a .gz extension") - } - return nil -} - -func (gz *Gz) String() string { return "gz" } - -// NewGz returns a new, default instance ready to be customized and used. -func NewGz() *Gz { - return &Gz{ - CompressionLevel: gzip.DefaultCompression, - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Gz)) - _ = Decompressor(new(Gz)) -) - -// DefaultGz is a default instance that is conveniently ready to use. -var DefaultGz = NewGz() diff --git a/backend/vendor/github.com/mholt/archiver/v3/lz4.go b/backend/vendor/github.com/mholt/archiver/v3/lz4.go deleted file mode 100644 index 3d6b0a21..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/lz4.go +++ /dev/null @@ -1,63 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/pierrec/lz4/v4" -) - -// Lz4 facilitates LZ4 compression. -type Lz4 struct { - CompressionLevel int -} - -// Compress reads in, compresses it, and writes it to out. -func (lz *Lz4) Compress(in io.Reader, out io.Writer) error { - w := lz4.NewWriter(out) - // TODO archiver v4: use proper lz4.Fast - // bitshifting for backwards compatibility with lz4/v3 - options := []lz4.Option{ - lz4.CompressionLevelOption(lz4.CompressionLevel(1 << (8 + lz.CompressionLevel))), - } - if err := w.Apply(options...); err != nil { - return err - } - defer w.Close() - _, err := io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (lz *Lz4) Decompress(in io.Reader, out io.Writer) error { - r := lz4.NewReader(in) - _, err := io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (lz *Lz4) CheckExt(filename string) error { - if filepath.Ext(filename) != ".lz4" { - return fmt.Errorf("filename must have a .lz4 extension") - } - return nil -} - -func (lz *Lz4) String() string { return "lz4" } - -// NewLz4 returns a new, default instance ready to be customized and used. -func NewLz4() *Lz4 { - return &Lz4{ - CompressionLevel: 9, // https://github.com/lz4/lz4/blob/1b819bfd633ae285df2dfe1b0589e1ec064f2873/lib/lz4hc.h#L48 - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Lz4)) - _ = Decompressor(new(Lz4)) -) - -// DefaultLz4 is a default instance that is conveniently ready to use. -var DefaultLz4 = NewLz4() diff --git a/backend/vendor/github.com/mholt/archiver/v3/rar.go b/backend/vendor/github.com/mholt/archiver/v3/rar.go deleted file mode 100644 index 35fd60b6..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/rar.go +++ /dev/null @@ -1,446 +0,0 @@ -package archiver - -import ( - "bytes" - "fmt" - "io" - "log" - "os" - "path" - "path/filepath" - "strings" - "time" - - "github.com/nwaples/rardecode" -) - -// Rar provides facilities for reading RAR archives. -// See https://www.rarlab.com/technote.htm. -type Rar struct { - // Whether to overwrite existing files; if false, - // an error is returned if the file exists. - OverwriteExisting bool - - // Whether to make all the directories necessary - // to create a rar archive in the desired path. - MkdirAll bool - - // A single top-level folder can be implicitly - // created by the Unarchive method if the files - // to be extracted from the archive do not all - // have a common root. This roughly mimics the - // behavior of archival tools integrated into OS - // file browsers which create a subfolder to - // avoid unexpectedly littering the destination - // folder with potentially many files, causing a - // problematic cleanup/organization situation. - // This feature is available for both creation - // and extraction of archives, but may be slightly - // inefficient with lots and lots of files, - // especially on extraction. - ImplicitTopLevelFolder bool - - // Strip number of leading paths. This feature is available - // only during unpacking of the entire archive. - StripComponents int - - // If true, errors encountered during reading - // or writing a single file will be logged and - // the operation will continue on remaining files. - ContinueOnError bool - - // The password to open archives (optional). - Password string - - rr *rardecode.Reader // underlying stream reader - rc *rardecode.ReadCloser // supports multi-volume archives (files only) -} - -// CheckExt ensures the file extension matches the format. -func (*Rar) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".rar") { - return fmt.Errorf("filename must have a .rar extension") - } - return nil -} - -// CheckPath ensures that the filename has not been crafted to perform path traversal attacks -func (*Rar) CheckPath(to, filename string) error { - to, _ = filepath.Abs(to) //explicit the destination folder to prevent that 'string.HasPrefix' check can be 'bypassed' when no destination folder is supplied in input - dest := filepath.Join(to, filename) - //prevent path traversal attacks - if !strings.HasPrefix(dest, to) { - return &IllegalPathError{AbsolutePath: dest, Filename: filename} - } - return nil -} - -// Unarchive unpacks the .rar file at source to destination. -// Destination will be treated as a folder name. It supports -// multi-volume archives. -func (r *Rar) Unarchive(source, destination string) error { - if !fileExists(destination) && r.MkdirAll { - err := mkdir(destination, 0755) - if err != nil { - return fmt.Errorf("preparing destination: %v", err) - } - } - - // if the files in the archive do not all share a common - // root, then make sure we extract to a single subfolder - // rather than potentially littering the destination... - if r.ImplicitTopLevelFolder { - var err error - destination, err = r.addTopLevelFolder(source, destination) - if err != nil { - return fmt.Errorf("scanning source archive: %v", err) - } - } - - err := r.OpenFile(source) - if err != nil { - return fmt.Errorf("opening rar archive for reading: %v", err) - } - defer r.Close() - - for { - err := r.unrarNext(destination) - if err == io.EOF { - break - } - if err != nil { - if r.ContinueOnError || IsIllegalPathError(err) { - log.Printf("[ERROR] Reading file in rar archive: %v", err) - continue - } - return fmt.Errorf("reading file in rar archive: %v", err) - } - } - - return nil -} - -// addTopLevelFolder scans the files contained inside -// the tarball named sourceArchive and returns a modified -// destination if all the files do not share the same -// top-level folder. -func (r *Rar) addTopLevelFolder(sourceArchive, destination string) (string, error) { - file, err := os.Open(sourceArchive) - if err != nil { - return "", fmt.Errorf("opening source archive: %v", err) - } - defer file.Close() - - rc, err := rardecode.NewReader(file, r.Password) - if err != nil { - return "", fmt.Errorf("creating archive reader: %v", err) - } - - var files []string - for { - hdr, err := rc.Next() - if err == io.EOF { - break - } - if err != nil { - return "", fmt.Errorf("scanning tarball's file listing: %v", err) - } - files = append(files, hdr.Name) - } - - if multipleTopLevels(files) { - destination = filepath.Join(destination, folderNameFromFileName(sourceArchive)) - } - - return destination, nil -} - -func (r *Rar) unrarNext(to string) error { - f, err := r.Read() - if err != nil { - return err // don't wrap error; calling loop must break on io.EOF - } - defer f.Close() - - header, ok := f.Header.(*rardecode.FileHeader) - if !ok { - return fmt.Errorf("expected header to be *rardecode.FileHeader but was %T", f.Header) - } - - errPath := r.CheckPath(to, header.Name) - if errPath != nil { - return fmt.Errorf("checking path traversal attempt: %v", errPath) - } - - if r.StripComponents > 0 { - if strings.Count(header.Name, "/") < r.StripComponents { - return nil // skip path with fewer components - } - - for i := 0; i < r.StripComponents; i++ { - slash := strings.Index(header.Name, "/") - header.Name = header.Name[slash+1:] - } - } - - return r.unrarFile(f, filepath.Join(to, header.Name)) -} - -func (r *Rar) unrarFile(f File, to string) error { - // do not overwrite existing files, if configured - if !f.IsDir() && !r.OverwriteExisting && fileExists(to) { - return fmt.Errorf("file already exists: %s", to) - } - - hdr, ok := f.Header.(*rardecode.FileHeader) - if !ok { - return fmt.Errorf("expected header to be *rardecode.FileHeader but was %T", f.Header) - } - - if f.IsDir() { - if fileExists("testdata") { - err := os.Chmod(to, hdr.Mode()) - if err != nil { - return fmt.Errorf("changing dir mode: %v", err) - } - } else { - err := mkdir(to, hdr.Mode()) - if err != nil { - return fmt.Errorf("making directories: %v", err) - } - } - return nil - } - - // if files come before their containing folders, then we must - // create their folders before writing the file - err := mkdir(filepath.Dir(to), 0755) - if err != nil { - return fmt.Errorf("making parent directories: %v", err) - } - - if (hdr.Mode() & os.ModeSymlink) != 0 { - return nil - } - - return writeNewFile(to, r.rr, hdr.Mode()) -} - -// OpenFile opens filename for reading. This method supports -// multi-volume archives, whereas Open does not (but Open -// supports any stream, not just files). -func (r *Rar) OpenFile(filename string) error { - if r.rr != nil { - return fmt.Errorf("rar archive is already open for reading") - } - var err error - r.rc, err = rardecode.OpenReader(filename, r.Password) - if err != nil { - return err - } - r.rr = &r.rc.Reader - return nil -} - -// Open opens t for reading an archive from -// in. The size parameter is not used. -func (r *Rar) Open(in io.Reader, size int64) error { - if r.rr != nil { - return fmt.Errorf("rar archive is already open for reading") - } - var err error - r.rr, err = rardecode.NewReader(in, r.Password) - return err -} - -// Read reads the next file from t, which must have -// already been opened for reading. If there are no -// more files, the error is io.EOF. The File must -// be closed when finished reading from it. -func (r *Rar) Read() (File, error) { - if r.rr == nil { - return File{}, fmt.Errorf("rar archive is not open") - } - - hdr, err := r.rr.Next() - if err != nil { - return File{}, err // don't wrap error; preserve io.EOF - } - - file := File{ - FileInfo: rarFileInfo{hdr}, - Header: hdr, - ReadCloser: ReadFakeCloser{r.rr}, - } - - return file, nil -} - -// Close closes the rar archive(s) opened by Create and Open. -func (r *Rar) Close() error { - var err error - if r.rc != nil { - rc := r.rc - r.rc = nil - err = rc.Close() - } - if r.rr != nil { - r.rr = nil - } - return err -} - -// Walk calls walkFn for each visited item in archive. -func (r *Rar) Walk(archive string, walkFn WalkFunc) error { - file, err := os.Open(archive) - if err != nil { - return fmt.Errorf("opening archive file: %v", err) - } - defer file.Close() - - err = r.Open(file, 0) - if err != nil { - return fmt.Errorf("opening archive: %v", err) - } - defer r.Close() - - for { - f, err := r.Read() - if err == io.EOF { - break - } - if err != nil { - if r.ContinueOnError { - log.Printf("[ERROR] Opening next file: %v", err) - continue - } - return fmt.Errorf("opening next file: %v", err) - } - err = walkFn(f) - if err != nil { - if err == ErrStopWalk { - break - } - if r.ContinueOnError { - log.Printf("[ERROR] Walking %s: %v", f.Name(), err) - continue - } - return fmt.Errorf("walking %s: %v", f.Name(), err) - } - } - - return nil -} - -// Extract extracts a single file from the rar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (r *Rar) Extract(source, target, destination string) error { - // target refers to a path inside the archive, which should be clean also - target = path.Clean(target) - - // if the target ends up being a directory, then - // we will continue walking and extracting files - // until we are no longer within that directory - var targetDirPath string - - return r.Walk(source, func(f File) error { - th, ok := f.Header.(*rardecode.FileHeader) - if !ok { - return fmt.Errorf("expected header to be *rardecode.FileHeader but was %T", f.Header) - } - - // importantly, cleaning the path strips tailing slash, - // which must be appended to folders within the archive - name := path.Clean(th.Name) - if f.IsDir() && target == name { - targetDirPath = path.Dir(name) - } - - if within(target, th.Name) { - // either this is the exact file we want, or is - // in the directory we want to extract - - // build the filename we will extract to - end, err := filepath.Rel(targetDirPath, th.Name) - if err != nil { - return fmt.Errorf("relativizing paths: %v", err) - } - joined := filepath.Join(destination, end) - - err = r.unrarFile(f, joined) - if err != nil { - return fmt.Errorf("extracting file %s: %v", th.Name, err) - } - - // if our target was not a directory, stop walk - if targetDirPath == "" { - return ErrStopWalk - } - } else if targetDirPath != "" { - // finished walking the entire directory - return ErrStopWalk - } - - return nil - }) -} - -// Match returns true if the format of file matches this -// type's format. It should not affect reader position. -func (*Rar) Match(file io.ReadSeeker) (bool, error) { - currentPos, err := file.Seek(0, io.SeekCurrent) - if err != nil { - return false, err - } - _, err = file.Seek(0, 0) - if err != nil { - return false, err - } - defer func() { - _, _ = file.Seek(currentPos, io.SeekStart) - }() - - buf := make([]byte, 8) - if n, err := file.Read(buf); err != nil || n < 8 { - return false, nil - } - hasRarHeader := bytes.Equal(buf[:7], []byte("Rar!\x1a\x07\x00")) || // ver 1.5 - bytes.Equal(buf, []byte("Rar!\x1a\x07\x01\x00")) // ver 5.0 - return hasRarHeader, nil -} - -func (r *Rar) String() string { return "rar" } - -// NewRar returns a new, default instance ready to be customized and used. -func NewRar() *Rar { - return &Rar{ - MkdirAll: true, - } -} - -type rarFileInfo struct { - fh *rardecode.FileHeader -} - -func (rfi rarFileInfo) Name() string { return rfi.fh.Name } -func (rfi rarFileInfo) Size() int64 { return rfi.fh.UnPackedSize } -func (rfi rarFileInfo) Mode() os.FileMode { return rfi.fh.Mode() } -func (rfi rarFileInfo) ModTime() time.Time { return rfi.fh.ModificationTime } -func (rfi rarFileInfo) IsDir() bool { return rfi.fh.IsDir } -func (rfi rarFileInfo) Sys() interface{} { return nil } - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(Rar)) - _ = Unarchiver(new(Rar)) - _ = Walker(new(Rar)) - _ = Extractor(new(Rar)) - _ = Matcher(new(Rar)) - _ = ExtensionChecker(new(Rar)) - _ = FilenameChecker(new(Rar)) - _ = os.FileInfo(rarFileInfo{}) -) - -// DefaultRar is a default instance that is conveniently ready to use. -var DefaultRar = NewRar() diff --git a/backend/vendor/github.com/mholt/archiver/v3/sz.go b/backend/vendor/github.com/mholt/archiver/v3/sz.go deleted file mode 100644 index 02009b52..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/sz.go +++ /dev/null @@ -1,51 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/golang/snappy" -) - -// Snappy facilitates Snappy compression. -type Snappy struct{} - -// Compress reads in, compresses it, and writes it to out. -func (s *Snappy) Compress(in io.Reader, out io.Writer) error { - w := snappy.NewBufferedWriter(out) - defer w.Close() - _, err := io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (s *Snappy) Decompress(in io.Reader, out io.Writer) error { - r := snappy.NewReader(in) - _, err := io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (s *Snappy) CheckExt(filename string) error { - if filepath.Ext(filename) != ".sz" { - return fmt.Errorf("filename must have a .sz extension") - } - return nil -} - -func (s *Snappy) String() string { return "sz" } - -// NewSnappy returns a new, default instance ready to be customized and used. -func NewSnappy() *Snappy { - return new(Snappy) -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Snappy)) - _ = Decompressor(new(Snappy)) -) - -// DefaultSnappy is a default instance that is conveniently ready to use. -var DefaultSnappy = NewSnappy() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tar.go b/backend/vendor/github.com/mholt/archiver/v3/tar.go deleted file mode 100644 index be898665..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tar.go +++ /dev/null @@ -1,659 +0,0 @@ -package archiver - -import ( - "archive/tar" - "bytes" - "fmt" - "io" - "log" - "os" - "path" - "path/filepath" - "strconv" - "strings" -) - -// Tar provides facilities for operating TAR archives. -// See http://www.gnu.org/software/tar/manual/html_node/Standard.html. -type Tar struct { - // Whether to overwrite existing files; if false, - // an error is returned if the file exists. - OverwriteExisting bool - - // Whether to make all the directories necessary - // to create a tar archive in the desired path. - MkdirAll bool - - // A single top-level folder can be implicitly - // created by the Archive or Unarchive methods - // if the files to be added to the archive - // or the files to be extracted from the archive - // do not all have a common root. This roughly - // mimics the behavior of archival tools integrated - // into OS file browsers which create a subfolder - // to avoid unexpectedly littering the destination - // folder with potentially many files, causing a - // problematic cleanup/organization situation. - // This feature is available for both creation - // and extraction of archives, but may be slightly - // inefficient with lots and lots of files, - // especially on extraction. - ImplicitTopLevelFolder bool - - // Strip number of leading paths. This feature is available - // only during unpacking of the entire archive. - StripComponents int - - // If true, errors encountered during reading - // or writing a single file will be logged and - // the operation will continue on remaining files. - ContinueOnError bool - - tw *tar.Writer - tr *tar.Reader - - readerWrapFn func(io.Reader) (io.Reader, error) - writerWrapFn func(io.Writer) (io.Writer, error) - cleanupWrapFn func() -} - -// CheckExt ensures the file extension matches the format. -func (*Tar) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar") { - return fmt.Errorf("filename must have a .tar extension") - } - return nil -} - -// CheckPath ensures that the filename has not been crafted to perform path traversal attacks -func (*Tar) CheckPath(to, filename string) error { - to, _ = filepath.Abs(to) //explicit the destination folder to prevent that 'string.HasPrefix' check can be 'bypassed' when no destination folder is supplied in input - dest := filepath.Join(to, filename) - //prevent path traversal attacks - if !strings.HasPrefix(dest, to) { - return &IllegalPathError{AbsolutePath: dest, Filename: filename} - } - return nil -} - -// Archive creates a tarball file at destination containing -// the files listed in sources. The destination must end with -// ".tar". File paths can be those of regular files or -// directories; directories will be recursively added. -func (t *Tar) Archive(sources []string, destination string) error { - err := t.CheckExt(destination) - if t.writerWrapFn == nil && err != nil { - return fmt.Errorf("checking extension: %v", err) - } - if !t.OverwriteExisting && fileExists(destination) { - return fmt.Errorf("file already exists: %s", destination) - } - - // make the folder to contain the resulting archive - // if it does not already exist - destDir := filepath.Dir(destination) - if t.MkdirAll && !fileExists(destDir) { - err := mkdir(destDir, 0755) - if err != nil { - return fmt.Errorf("making folder for destination: %v", err) - } - } - - out, err := os.Create(destination) - if err != nil { - return fmt.Errorf("creating %s: %v", destination, err) - } - defer out.Close() - - err = t.Create(out) - if err != nil { - return fmt.Errorf("creating tar: %v", err) - } - defer t.Close() - - var topLevelFolder string - if t.ImplicitTopLevelFolder && multipleTopLevels(sources) { - topLevelFolder = folderNameFromFileName(destination) - } - - for _, source := range sources { - err := t.writeWalk(source, topLevelFolder, destination) - if err != nil { - return fmt.Errorf("walking %s: %v", source, err) - } - } - - return nil -} - -// Unarchive unpacks the .tar file at source to destination. -// Destination will be treated as a folder name. -func (t *Tar) Unarchive(source, destination string) error { - if !fileExists(destination) && t.MkdirAll { - err := mkdir(destination, 0755) - if err != nil { - return fmt.Errorf("preparing destination: %v", err) - } - } - - // if the files in the archive do not all share a common - // root, then make sure we extract to a single subfolder - // rather than potentially littering the destination... - if t.ImplicitTopLevelFolder { - var err error - destination, err = t.addTopLevelFolder(source, destination) - if err != nil { - return fmt.Errorf("scanning source archive: %v", err) - } - } - - file, err := os.Open(source) - if err != nil { - return fmt.Errorf("opening source archive: %v", err) - } - defer file.Close() - - err = t.Open(file, 0) - if err != nil { - return fmt.Errorf("opening tar archive for reading: %v", err) - } - defer t.Close() - - for { - err := t.untarNext(destination) - if err == io.EOF { - break - } - if err != nil { - if t.ContinueOnError || IsIllegalPathError(err) { - log.Printf("[ERROR] Reading file in tar archive: %v", err) - continue - } - return fmt.Errorf("reading file in tar archive: %v", err) - } - } - - return nil -} - -// addTopLevelFolder scans the files contained inside -// the tarball named sourceArchive and returns a modified -// destination if all the files do not share the same -// top-level folder. -func (t *Tar) addTopLevelFolder(sourceArchive, destination string) (string, error) { - file, err := os.Open(sourceArchive) - if err != nil { - return "", fmt.Errorf("opening source archive: %v", err) - } - defer file.Close() - - // if the reader is to be wrapped, ensure we do that now - // or we will not be able to read the archive successfully - reader := io.Reader(file) - if t.readerWrapFn != nil { - reader, err = t.readerWrapFn(reader) - if err != nil { - return "", fmt.Errorf("wrapping reader: %v", err) - } - } - if t.cleanupWrapFn != nil { - defer t.cleanupWrapFn() - } - - tr := tar.NewReader(reader) - - var files []string - for { - hdr, err := tr.Next() - if err == io.EOF { - break - } - if err != nil { - return "", fmt.Errorf("scanning tarball's file listing: %v", err) - } - files = append(files, hdr.Name) - } - - if multipleTopLevels(files) { - destination = filepath.Join(destination, folderNameFromFileName(sourceArchive)) - } - - return destination, nil -} - -func (t *Tar) untarNext(destination string) error { - f, err := t.Read() - if err != nil { - return err // don't wrap error; calling loop must break on io.EOF - } - defer f.Close() - - header, ok := f.Header.(*tar.Header) - if !ok { - return fmt.Errorf("expected header to be *tar.Header but was %T", f.Header) - } - - errPath := t.CheckPath(destination, header.Name) - if errPath != nil { - return fmt.Errorf("checking path traversal attempt: %v", errPath) - } - - if t.StripComponents > 0 { - if strings.Count(header.Name, "/") < t.StripComponents { - return nil // skip path with fewer components - } - - for i := 0; i < t.StripComponents; i++ { - slash := strings.Index(header.Name, "/") - header.Name = header.Name[slash+1:] - } - } - return t.untarFile(f, destination, header) -} - -func (t *Tar) untarFile(f File, destination string, hdr *tar.Header) error { - to := filepath.Join(destination, hdr.Name) - - // do not overwrite existing files, if configured - if !f.IsDir() && !t.OverwriteExisting && fileExists(to) { - return fmt.Errorf("file already exists: %s", to) - } - - switch hdr.Typeflag { - case tar.TypeDir: - return mkdir(to, f.Mode()) - case tar.TypeReg, tar.TypeRegA, tar.TypeChar, tar.TypeBlock, tar.TypeFifo, tar.TypeGNUSparse: - return writeNewFile(to, f, f.Mode()) - case tar.TypeSymlink: - return writeNewSymbolicLink(to, hdr.Linkname) - case tar.TypeLink: - return writeNewHardLink(to, filepath.Join(destination, hdr.Linkname)) - case tar.TypeXGlobalHeader: - return nil // ignore the pax global header from git-generated tarballs - default: - return fmt.Errorf("%s: unknown type flag: %c", hdr.Name, hdr.Typeflag) - } -} - -func (t *Tar) writeWalk(source, topLevelFolder, destination string) error { - sourceInfo, err := os.Stat(source) - if err != nil { - return fmt.Errorf("%s: stat: %v", source, err) - } - destAbs, err := filepath.Abs(destination) - if err != nil { - return fmt.Errorf("%s: getting absolute path of destination %s: %v", source, destination, err) - } - - return filepath.Walk(source, func(fpath string, info os.FileInfo, err error) error { - handleErr := func(err error) error { - if t.ContinueOnError { - log.Printf("[ERROR] Walking %s: %v", fpath, err) - return nil - } - return err - } - if err != nil { - return handleErr(fmt.Errorf("traversing %s: %v", fpath, err)) - } - if info == nil { - return handleErr(fmt.Errorf("no file info")) - } - - // make sure we do not copy our output file into itself - fpathAbs, err := filepath.Abs(fpath) - if err != nil { - return handleErr(fmt.Errorf("%s: getting absolute path: %v", fpath, err)) - } - if within(fpathAbs, destAbs) { - return nil - } - - // build the name to be used within the archive - nameInArchive, err := makeNameInArchive(sourceInfo, source, topLevelFolder, fpath) - if err != nil { - return handleErr(err) - } - - var file io.ReadCloser - if info.Mode().IsRegular() { - file, err = os.Open(fpath) - if err != nil { - return handleErr(fmt.Errorf("%s: opening: %v", fpath, err)) - } - defer file.Close() - } - err = t.Write(File{ - FileInfo: FileInfo{ - FileInfo: info, - CustomName: nameInArchive, - SourcePath: fpath, - }, - ReadCloser: file, - }) - if err != nil { - return handleErr(fmt.Errorf("%s: writing: %s", fpath, err)) - } - - return nil - }) -} - -// Create opens t for writing a tar archive to out. -func (t *Tar) Create(out io.Writer) error { - if t.tw != nil { - return fmt.Errorf("tar archive is already created for writing") - } - - // wrapping writers allows us to output - // compressed tarballs, for example - if t.writerWrapFn != nil { - var err error - out, err = t.writerWrapFn(out) - if err != nil { - return fmt.Errorf("wrapping writer: %v", err) - } - } - - t.tw = tar.NewWriter(out) - return nil -} - -// Write writes f to t, which must have been opened for writing first. -func (t *Tar) Write(f File) error { - if t.tw == nil { - return fmt.Errorf("tar archive was not created for writing first") - } - if f.FileInfo == nil { - return fmt.Errorf("no file info") - } - if f.FileInfo.Name() == "" { - return fmt.Errorf("missing file name") - } - - var linkTarget string - if isSymlink(f) { - fi, ok := f.FileInfo.(FileInfo) - if !ok { - return fmt.Errorf("failed to cast fs.FileInfo to archiver.FileInfo: %v", f) - } - var err error - linkTarget, err = os.Readlink(fi.SourcePath) - if err != nil { - return fmt.Errorf("%s: readlink: %v", fi.SourcePath, err) - } - } - - hdr, err := tar.FileInfoHeader(f, filepath.ToSlash(linkTarget)) - if err != nil { - return fmt.Errorf("%s: making header: %v", f.Name(), err) - } - - err = t.tw.WriteHeader(hdr) - if err != nil { - return fmt.Errorf("%s: writing header: %w", hdr.Name, err) - } - - if f.IsDir() { - return nil // directories have no contents - } - - if hdr.Typeflag == tar.TypeReg { - if f.ReadCloser == nil { - return fmt.Errorf("%s: no way to read file contents", f.Name()) - } - _, err := io.Copy(t.tw, f) - if err != nil { - return fmt.Errorf("%s: copying contents: %w", f.Name(), err) - } - } - - return nil -} - -// Open opens t for reading an archive from -// in. The size parameter is not used. -func (t *Tar) Open(in io.Reader, size int64) error { - if t.tr != nil { - return fmt.Errorf("tar archive is already open for reading") - } - // wrapping readers allows us to open compressed tarballs - if t.readerWrapFn != nil { - var err error - in, err = t.readerWrapFn(in) - if err != nil { - return fmt.Errorf("wrapping file reader: %v", err) - } - } - t.tr = tar.NewReader(in) - return nil -} - -// Read reads the next file from t, which must have -// already been opened for reading. If there are no -// more files, the error is io.EOF. The File must -// be closed when finished reading from it. -func (t *Tar) Read() (File, error) { - if t.tr == nil { - return File{}, fmt.Errorf("tar archive is not open") - } - - hdr, err := t.tr.Next() - if err != nil { - return File{}, err // don't wrap error; preserve io.EOF - } - - file := File{ - FileInfo: hdr.FileInfo(), - Header: hdr, - ReadCloser: ReadFakeCloser{t.tr}, - } - - return file, nil -} - -// Close closes the tar archive(s) opened by Create and Open. -func (t *Tar) Close() error { - var err error - if t.tr != nil { - t.tr = nil - } - if t.tw != nil { - tw := t.tw - t.tw = nil - err = tw.Close() - } - // make sure cleanup of "Reader/Writer wrapper" - // (say that ten times fast) happens AFTER the - // underlying stream is closed - if t.cleanupWrapFn != nil { - t.cleanupWrapFn() - } - return err -} - -// Walk calls walkFn for each visited item in archive. -func (t *Tar) Walk(archive string, walkFn WalkFunc) error { - file, err := os.Open(archive) - if err != nil { - return fmt.Errorf("opening archive file: %v", err) - } - defer file.Close() - - err = t.Open(file, 0) - if err != nil { - return fmt.Errorf("opening archive: %v", err) - } - defer t.Close() - - for { - f, err := t.Read() - if err == io.EOF { - break - } - if err != nil { - if t.ContinueOnError { - log.Printf("[ERROR] Opening next file: %v", err) - continue - } - return fmt.Errorf("opening next file: %v", err) - } - err = walkFn(f) - if err != nil { - if err == ErrStopWalk { - break - } - if t.ContinueOnError { - log.Printf("[ERROR] Walking %s: %v", f.Name(), err) - continue - } - return fmt.Errorf("walking %s: %v", f.Name(), err) - } - } - - return nil -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (t *Tar) Extract(source, target, destination string) error { - // target refers to a path inside the archive, which should be clean also - target = path.Clean(target) - - // if the target ends up being a directory, then - // we will continue walking and extracting files - // until we are no longer within that directory - var targetDirPath string - - return t.Walk(source, func(f File) error { - th, ok := f.Header.(*tar.Header) - if !ok { - return fmt.Errorf("expected header to be *tar.Header but was %T", f.Header) - } - - // importantly, cleaning the path strips tailing slash, - // which must be appended to folders within the archive - name := path.Clean(th.Name) - if f.IsDir() && target == name { - targetDirPath = path.Dir(name) - } - - if within(target, th.Name) { - // either this is the exact file we want, or is - // in the directory we want to extract - - // build the filename we will extract to - end, err := filepath.Rel(targetDirPath, th.Name) - if err != nil { - return fmt.Errorf("relativizing paths: %v", err) - } - th.Name = end - - // relativize any hardlink names - if th.Typeflag == tar.TypeLink { - th.Linkname = filepath.Join(filepath.Base(filepath.Dir(th.Linkname)), filepath.Base(th.Linkname)) - } - - err = t.untarFile(f, destination, th) - if err != nil { - return fmt.Errorf("extracting file %s: %v", th.Name, err) - } - - // if our target was not a directory, stop walk - if targetDirPath == "" { - return ErrStopWalk - } - } else if targetDirPath != "" { - // finished walking the entire directory - return ErrStopWalk - } - - return nil - }) -} - -// Match returns true if the format of file matches this -// type's format. It should not affect reader position. -func (*Tar) Match(file io.ReadSeeker) (bool, error) { - currentPos, err := file.Seek(0, io.SeekCurrent) - if err != nil { - return false, err - } - _, err = file.Seek(0, 0) - if err != nil { - return false, err - } - defer func() { - _, _ = file.Seek(currentPos, io.SeekStart) - }() - - buf := make([]byte, tarBlockSize) - if _, err = io.ReadFull(file, buf); err != nil { - return false, nil - } - return hasTarHeader(buf), nil -} - -// hasTarHeader checks passed bytes has a valid tar header or not. buf must -// contain at least 512 bytes and if not, it always returns false. -func hasTarHeader(buf []byte) bool { - if len(buf) < tarBlockSize { - return false - } - - b := buf[148:156] - b = bytes.Trim(b, " \x00") // clean up all spaces and null bytes - if len(b) == 0 { - return false // unknown format - } - hdrSum, err := strconv.ParseUint(string(b), 8, 64) - if err != nil { - return false - } - - // According to the go official archive/tar, Sun tar uses signed byte - // values so this calcs both signed and unsigned - var usum uint64 - var sum int64 - for i, c := range buf { - if 148 <= i && i < 156 { - c = ' ' // checksum field itself is counted as branks - } - usum += uint64(uint8(c)) - sum += int64(int8(c)) - } - - if hdrSum != usum && int64(hdrSum) != sum { - return false // invalid checksum - } - - return true -} - -func (t *Tar) String() string { return "tar" } - -// NewTar returns a new, default instance ready to be customized and used. -func NewTar() *Tar { - return &Tar{ - MkdirAll: true, - } -} - -const tarBlockSize = 512 - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(Tar)) - _ = Writer(new(Tar)) - _ = Archiver(new(Tar)) - _ = Unarchiver(new(Tar)) - _ = Walker(new(Tar)) - _ = Extractor(new(Tar)) - _ = Matcher(new(Tar)) - _ = ExtensionChecker(new(Tar)) - _ = FilenameChecker(new(Tar)) -) - -// DefaultTar is a default instance that is conveniently ready to use. -var DefaultTar = NewTar() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tarbrotli.go b/backend/vendor/github.com/mholt/archiver/v3/tarbrotli.go deleted file mode 100644 index 83a455d6..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tarbrotli.go +++ /dev/null @@ -1,114 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/andybalholm/brotli" -) - -// TarBrotli facilitates brotli compression of tarball archives. -type TarBrotli struct { - *Tar - Quality int -} - -// CheckExt ensures the file extension matches the format. -func (*TarBrotli) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.br") && - !strings.HasSuffix(filename, ".tbr") { - return fmt.Errorf("filename must have a .tar.br or .tbr extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.br" or ".tbr". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (tbr *TarBrotli) Archive(sources []string, destination string) error { - err := tbr.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - tbr.wrapWriter() - return tbr.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (tbr *TarBrotli) Unarchive(source, destination string) error { - tbr.wrapReader() - return tbr.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (tbr *TarBrotli) Walk(archive string, walkFn WalkFunc) error { - tbr.wrapReader() - return tbr.Tar.Walk(archive, walkFn) -} - -// Create opens txz for writing a compressed -// tar archive to out. -func (tbr *TarBrotli) Create(out io.Writer) error { - tbr.wrapWriter() - return tbr.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (tbr *TarBrotli) Open(in io.Reader, size int64) error { - tbr.wrapReader() - return tbr.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (tbr *TarBrotli) Extract(source, target, destination string) error { - tbr.wrapReader() - return tbr.Tar.Extract(source, target, destination) -} - -func (tbr *TarBrotli) wrapWriter() { - var brw *brotli.Writer - tbr.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - brw = brotli.NewWriterLevel(w, tbr.Quality) - return brw, nil - } - tbr.Tar.cleanupWrapFn = func() { - brw.Close() - } -} - -func (tbr *TarBrotli) wrapReader() { - tbr.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - return brotli.NewReader(r), nil - } -} - -func (tbr *TarBrotli) String() string { return "tar.br" } - -// NewTarBrotli returns a new, default instance ready to be customized and used. -func NewTarBrotli() *TarBrotli { - return &TarBrotli{ - Tar: NewTar(), - Quality: brotli.DefaultCompression, - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarBrotli)) - _ = Writer(new(TarBrotli)) - _ = Archiver(new(TarBrotli)) - _ = Unarchiver(new(TarBrotli)) - _ = Walker(new(TarBrotli)) - _ = Extractor(new(TarBrotli)) -) - -// DefaultTarBrotli is a convenient archiver ready to use. -var DefaultTarBrotli = NewTarBrotli() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tarbz2.go b/backend/vendor/github.com/mholt/archiver/v3/tarbz2.go deleted file mode 100644 index e5870a7d..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tarbz2.go +++ /dev/null @@ -1,126 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/dsnet/compress/bzip2" -) - -// TarBz2 facilitates bzip2 compression -// (https://github.com/dsnet/compress/blob/master/doc/bzip2-format.pdf) -// of tarball archives. -type TarBz2 struct { - *Tar - - CompressionLevel int -} - -// CheckExt ensures the file extension matches the format. -func (*TarBz2) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.bz2") && - !strings.HasSuffix(filename, ".tbz2") { - return fmt.Errorf("filename must have a .tar.bz2 or .tbz2 extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.bz2" or ".tbz2". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (tbz2 *TarBz2) Archive(sources []string, destination string) error { - err := tbz2.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - tbz2.wrapWriter() - return tbz2.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (tbz2 *TarBz2) Unarchive(source, destination string) error { - tbz2.wrapReader() - return tbz2.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (tbz2 *TarBz2) Walk(archive string, walkFn WalkFunc) error { - tbz2.wrapReader() - return tbz2.Tar.Walk(archive, walkFn) -} - -// Create opens tbz2 for writing a compressed -// tar archive to out. -func (tbz2 *TarBz2) Create(out io.Writer) error { - tbz2.wrapWriter() - return tbz2.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (tbz2 *TarBz2) Open(in io.Reader, size int64) error { - tbz2.wrapReader() - return tbz2.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (tbz2 *TarBz2) Extract(source, target, destination string) error { - tbz2.wrapReader() - return tbz2.Tar.Extract(source, target, destination) -} - -func (tbz2 *TarBz2) wrapWriter() { - var bz2w *bzip2.Writer - tbz2.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - var err error - bz2w, err = bzip2.NewWriter(w, &bzip2.WriterConfig{ - Level: tbz2.CompressionLevel, - }) - return bz2w, err - } - tbz2.Tar.cleanupWrapFn = func() { - bz2w.Close() - } -} - -func (tbz2 *TarBz2) wrapReader() { - var bz2r *bzip2.Reader - tbz2.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - var err error - bz2r, err = bzip2.NewReader(r, nil) - return bz2r, err - } - tbz2.Tar.cleanupWrapFn = func() { - bz2r.Close() - } -} - -func (tbz2 *TarBz2) String() string { return "tar.bz2" } - -// NewTarBz2 returns a new, default instance ready to be customized and used. -func NewTarBz2() *TarBz2 { - return &TarBz2{ - CompressionLevel: bzip2.DefaultCompression, - Tar: NewTar(), - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarBz2)) - _ = Writer(new(TarBz2)) - _ = Archiver(new(TarBz2)) - _ = Unarchiver(new(TarBz2)) - _ = Walker(new(TarBz2)) - _ = Extractor(new(TarBz2)) -) - -// DefaultTarBz2 is a convenient archiver ready to use. -var DefaultTarBz2 = NewTarBz2() diff --git a/backend/vendor/github.com/mholt/archiver/v3/targz.go b/backend/vendor/github.com/mholt/archiver/v3/targz.go deleted file mode 100644 index 283fd01b..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/targz.go +++ /dev/null @@ -1,137 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/klauspost/compress/gzip" - "github.com/klauspost/pgzip" -) - -// TarGz facilitates gzip compression -// (RFC 1952) of tarball archives. -type TarGz struct { - *Tar - - // The compression level to use, as described - // in the compress/gzip package. - CompressionLevel int - - // Disables parallel gzip. - SingleThreaded bool -} - -// CheckExt ensures the file extension matches the format. -func (*TarGz) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.gz") && - !strings.HasSuffix(filename, ".tgz") { - return fmt.Errorf("filename must have a .tar.gz or .tgz extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.gz" or ".tgz". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (tgz *TarGz) Archive(sources []string, destination string) error { - err := tgz.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - tgz.wrapWriter() - return tgz.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (tgz *TarGz) Unarchive(source, destination string) error { - tgz.wrapReader() - return tgz.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (tgz *TarGz) Walk(archive string, walkFn WalkFunc) error { - tgz.wrapReader() - return tgz.Tar.Walk(archive, walkFn) -} - -// Create opens txz for writing a compressed -// tar archive to out. -func (tgz *TarGz) Create(out io.Writer) error { - tgz.wrapWriter() - return tgz.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (tgz *TarGz) Open(in io.Reader, size int64) error { - tgz.wrapReader() - return tgz.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (tgz *TarGz) Extract(source, target, destination string) error { - tgz.wrapReader() - return tgz.Tar.Extract(source, target, destination) -} - -func (tgz *TarGz) wrapWriter() { - var gzw io.WriteCloser - tgz.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - var err error - if tgz.SingleThreaded { - gzw, err = gzip.NewWriterLevel(w, tgz.CompressionLevel) - } else { - gzw, err = pgzip.NewWriterLevel(w, tgz.CompressionLevel) - } - return gzw, err - } - tgz.Tar.cleanupWrapFn = func() { - gzw.Close() - } -} - -func (tgz *TarGz) wrapReader() { - var gzr io.ReadCloser - tgz.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - var err error - if tgz.SingleThreaded { - gzr, err = gzip.NewReader(r) - } else { - gzr, err = pgzip.NewReader(r) - } - return gzr, err - } - tgz.Tar.cleanupWrapFn = func() { - gzr.Close() - } -} - -func (tgz *TarGz) String() string { return "tar.gz" } - -// NewTarGz returns a new, default instance ready to be customized and used. -func NewTarGz() *TarGz { - return &TarGz{ - CompressionLevel: gzip.DefaultCompression, - Tar: NewTar(), - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarGz)) - _ = Writer(new(TarGz)) - _ = Archiver(new(TarGz)) - _ = Unarchiver(new(TarGz)) - _ = Walker(new(TarGz)) - _ = Extractor(new(TarGz)) -) - -// DefaultTarGz is a convenient archiver ready to use. -var DefaultTarGz = NewTarGz() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tarlz4.go b/backend/vendor/github.com/mholt/archiver/v3/tarlz4.go deleted file mode 100644 index 42cbc90b..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tarlz4.go +++ /dev/null @@ -1,129 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/pierrec/lz4/v4" -) - -// TarLz4 facilitates lz4 compression -// (https://github.com/lz4/lz4/tree/master/doc) -// of tarball archives. -type TarLz4 struct { - *Tar - - // The compression level to use when writing. - // Minimum 0 (fast compression), maximum 12 - // (most space savings). - CompressionLevel int -} - -// CheckExt ensures the file extension matches the format. -func (*TarLz4) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.lz4") && - !strings.HasSuffix(filename, ".tlz4") { - - return fmt.Errorf("filename must have a .tar.lz4 or .tlz4 extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.lz4" or ".tlz4". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (tlz4 *TarLz4) Archive(sources []string, destination string) error { - err := tlz4.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - tlz4.wrapWriter() - return tlz4.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (tlz4 *TarLz4) Unarchive(source, destination string) error { - tlz4.wrapReader() - return tlz4.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (tlz4 *TarLz4) Walk(archive string, walkFn WalkFunc) error { - tlz4.wrapReader() - return tlz4.Tar.Walk(archive, walkFn) -} - -// Create opens tlz4 for writing a compressed -// tar archive to out. -func (tlz4 *TarLz4) Create(out io.Writer) error { - tlz4.wrapWriter() - return tlz4.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (tlz4 *TarLz4) Open(in io.Reader, size int64) error { - tlz4.wrapReader() - return tlz4.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (tlz4 *TarLz4) Extract(source, target, destination string) error { - tlz4.wrapReader() - return tlz4.Tar.Extract(source, target, destination) -} - -func (tlz4 *TarLz4) wrapWriter() { - var lz4w *lz4.Writer - tlz4.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - lz4w = lz4.NewWriter(w) - // TODO archiver v4: use proper lz4.Fast - // bitshifting for backwards compatibility with lz4/v3 - options := []lz4.Option{ - lz4.CompressionLevelOption(lz4.CompressionLevel(1 << (8 + tlz4.CompressionLevel))), - } - if err := lz4w.Apply(options...); err != nil { - return lz4w, err - } - return lz4w, nil - } - tlz4.Tar.cleanupWrapFn = func() { - lz4w.Close() - } -} - -func (tlz4 *TarLz4) wrapReader() { - tlz4.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - return lz4.NewReader(r), nil - } -} - -func (tlz4 *TarLz4) String() string { return "tar.lz4" } - -// NewTarLz4 returns a new, default instance ready to be customized and used. -func NewTarLz4() *TarLz4 { - return &TarLz4{ - CompressionLevel: 9, // https://github.com/lz4/lz4/blob/1b819bfd633ae285df2dfe1b0589e1ec064f2873/lib/lz4hc.h#L48 - Tar: NewTar(), - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarLz4)) - _ = Writer(new(TarLz4)) - _ = Archiver(new(TarLz4)) - _ = Unarchiver(new(TarLz4)) - _ = Walker(new(TarLz4)) - _ = Extractor(new(TarLz4)) -) - -// DefaultTarLz4 is a convenient archiver ready to use. -var DefaultTarLz4 = NewTarLz4() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tarsz.go b/backend/vendor/github.com/mholt/archiver/v3/tarsz.go deleted file mode 100644 index ee3808e6..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tarsz.go +++ /dev/null @@ -1,114 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/golang/snappy" -) - -// TarSz facilitates Snappy compression -// (https://github.com/google/snappy) -// of tarball archives. -type TarSz struct { - *Tar -} - -// CheckExt ensures the file extension matches the format. -func (*TarSz) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.sz") && - !strings.HasSuffix(filename, ".tsz") { - return fmt.Errorf("filename must have a .tar.sz or .tsz extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.sz" or ".tsz". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (tsz *TarSz) Archive(sources []string, destination string) error { - err := tsz.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - tsz.wrapWriter() - return tsz.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (tsz *TarSz) Unarchive(source, destination string) error { - tsz.wrapReader() - return tsz.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (tsz *TarSz) Walk(archive string, walkFn WalkFunc) error { - tsz.wrapReader() - return tsz.Tar.Walk(archive, walkFn) -} - -// Create opens tsz for writing a compressed -// tar archive to out. -func (tsz *TarSz) Create(out io.Writer) error { - tsz.wrapWriter() - return tsz.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (tsz *TarSz) Open(in io.Reader, size int64) error { - tsz.wrapReader() - return tsz.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (tsz *TarSz) Extract(source, target, destination string) error { - tsz.wrapReader() - return tsz.Tar.Extract(source, target, destination) -} - -func (tsz *TarSz) wrapWriter() { - var sw *snappy.Writer - tsz.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - sw = snappy.NewBufferedWriter(w) - return sw, nil - } - tsz.Tar.cleanupWrapFn = func() { - sw.Close() - } -} - -func (tsz *TarSz) wrapReader() { - tsz.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - return snappy.NewReader(r), nil - } -} - -func (tsz *TarSz) String() string { return "tar.sz" } - -// NewTarSz returns a new, default instance ready to be customized and used. -func NewTarSz() *TarSz { - return &TarSz{ - Tar: NewTar(), - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarSz)) - _ = Writer(new(TarSz)) - _ = Archiver(new(TarSz)) - _ = Unarchiver(new(TarSz)) - _ = Walker(new(TarSz)) - _ = Extractor(new(TarSz)) -) - -// DefaultTarSz is a convenient archiver ready to use. -var DefaultTarSz = NewTarSz() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tarxz.go b/backend/vendor/github.com/mholt/archiver/v3/tarxz.go deleted file mode 100644 index 5679a067..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tarxz.go +++ /dev/null @@ -1,119 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/ulikunitz/xz" - fastxz "github.com/xi2/xz" -) - -// TarXz facilitates xz compression -// (https://tukaani.org/xz/format.html) -// of tarball archives. -type TarXz struct { - *Tar -} - -// CheckExt ensures the file extension matches the format. -func (*TarXz) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.xz") && - !strings.HasSuffix(filename, ".txz") { - return fmt.Errorf("filename must have a .tar.xz or .txz extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.xz" or ".txz". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (txz *TarXz) Archive(sources []string, destination string) error { - err := txz.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - txz.wrapWriter() - return txz.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (txz *TarXz) Unarchive(source, destination string) error { - txz.wrapReader() - return txz.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (txz *TarXz) Walk(archive string, walkFn WalkFunc) error { - txz.wrapReader() - return txz.Tar.Walk(archive, walkFn) -} - -// Create opens txz for writing a compressed -// tar archive to out. -func (txz *TarXz) Create(out io.Writer) error { - txz.wrapWriter() - return txz.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (txz *TarXz) Open(in io.Reader, size int64) error { - txz.wrapReader() - return txz.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (txz *TarXz) Extract(source, target, destination string) error { - txz.wrapReader() - return txz.Tar.Extract(source, target, destination) -} - -func (txz *TarXz) wrapWriter() { - var xzw *xz.Writer - txz.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - var err error - xzw, err = xz.NewWriter(w) - return xzw, err - } - txz.Tar.cleanupWrapFn = func() { - xzw.Close() - } -} - -func (txz *TarXz) wrapReader() { - var xzr *fastxz.Reader - txz.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - var err error - xzr, err = fastxz.NewReader(r, 0) - return xzr, err - } -} - -func (txz *TarXz) String() string { return "tar.xz" } - -// NewTarXz returns a new, default instance ready to be customized and used. -func NewTarXz() *TarXz { - return &TarXz{ - Tar: NewTar(), - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarXz)) - _ = Writer(new(TarXz)) - _ = Archiver(new(TarXz)) - _ = Unarchiver(new(TarXz)) - _ = Walker(new(TarXz)) - _ = Extractor(new(TarXz)) -) - -// DefaultTarXz is a convenient archiver ready to use. -var DefaultTarXz = NewTarXz() diff --git a/backend/vendor/github.com/mholt/archiver/v3/tarzst.go b/backend/vendor/github.com/mholt/archiver/v3/tarzst.go deleted file mode 100644 index 3b2fe431..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/tarzst.go +++ /dev/null @@ -1,120 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "strings" - - "github.com/klauspost/compress/zstd" -) - -// TarZstd facilitates Zstandard compression -// (RFC 8478) of tarball archives. -type TarZstd struct { - *Tar -} - -// CheckExt ensures the file extension matches the format. -func (*TarZstd) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".tar.zst") { - return fmt.Errorf("filename must have a .tar.zst extension") - } - return nil -} - -// Archive creates a compressed tar file at destination -// containing the files listed in sources. The destination -// must end with ".tar.zst" or ".tzst". File paths can be -// those of regular files or directories; directories will -// be recursively added. -func (tzst *TarZstd) Archive(sources []string, destination string) error { - err := tzst.CheckExt(destination) - if err != nil { - return fmt.Errorf("output %s", err.Error()) - } - tzst.wrapWriter() - return tzst.Tar.Archive(sources, destination) -} - -// Unarchive unpacks the compressed tarball at -// source to destination. Destination will be -// treated as a folder name. -func (tzst *TarZstd) Unarchive(source, destination string) error { - tzst.wrapReader() - return tzst.Tar.Unarchive(source, destination) -} - -// Walk calls walkFn for each visited item in archive. -func (tzst *TarZstd) Walk(archive string, walkFn WalkFunc) error { - tzst.wrapReader() - return tzst.Tar.Walk(archive, walkFn) -} - -// Create opens txz for writing a compressed -// tar archive to out. -func (tzst *TarZstd) Create(out io.Writer) error { - tzst.wrapWriter() - return tzst.Tar.Create(out) -} - -// Open opens t for reading a compressed archive from -// in. The size parameter is not used. -func (tzst *TarZstd) Open(in io.Reader, size int64) error { - tzst.wrapReader() - return tzst.Tar.Open(in, size) -} - -// Extract extracts a single file from the tar archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (tzst *TarZstd) Extract(source, target, destination string) error { - tzst.wrapReader() - return tzst.Tar.Extract(source, target, destination) -} - -func (tzst *TarZstd) wrapWriter() { - var zstdw *zstd.Encoder - tzst.Tar.writerWrapFn = func(w io.Writer) (io.Writer, error) { - var err error - zstdw, err = zstd.NewWriter(w) - return zstdw, err - } - tzst.Tar.cleanupWrapFn = func() { - zstdw.Close() - } -} - -func (tzst *TarZstd) wrapReader() { - var zstdr *zstd.Decoder - tzst.Tar.readerWrapFn = func(r io.Reader) (io.Reader, error) { - var err error - zstdr, err = zstd.NewReader(r) - return zstdr, err - } - tzst.Tar.cleanupWrapFn = func() { - zstdr.Close() - } -} - -func (tzst *TarZstd) String() string { return "tar.zst" } - -// NewTarZstd returns a new, default instance ready to be customized and used. -func NewTarZstd() *TarZstd { - return &TarZstd{ - Tar: NewTar(), - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(TarZstd)) - _ = Writer(new(TarZstd)) - _ = Archiver(new(TarZstd)) - _ = Unarchiver(new(TarZstd)) - _ = Walker(new(TarZstd)) - _ = ExtensionChecker(new(TarZstd)) - _ = Extractor(new(TarZstd)) -) - -// DefaultTarZstd is a convenient archiver ready to use. -var DefaultTarZstd = NewTarZstd() diff --git a/backend/vendor/github.com/mholt/archiver/v3/xz.go b/backend/vendor/github.com/mholt/archiver/v3/xz.go deleted file mode 100644 index c60d5eae..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/xz.go +++ /dev/null @@ -1,58 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/ulikunitz/xz" - fastxz "github.com/xi2/xz" -) - -// Xz facilitates XZ compression. -type Xz struct{} - -// Compress reads in, compresses it, and writes it to out. -func (x *Xz) Compress(in io.Reader, out io.Writer) error { - w, err := xz.NewWriter(out) - if err != nil { - return err - } - defer w.Close() - _, err = io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (x *Xz) Decompress(in io.Reader, out io.Writer) error { - r, err := fastxz.NewReader(in, 0) - if err != nil { - return err - } - _, err = io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (x *Xz) CheckExt(filename string) error { - if filepath.Ext(filename) != ".xz" { - return fmt.Errorf("filename must have a .xz extension") - } - return nil -} - -func (x *Xz) String() string { return "xz" } - -// NewXz returns a new, default instance ready to be customized and used. -func NewXz() *Xz { - return new(Xz) -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Xz)) - _ = Decompressor(new(Xz)) -) - -// DefaultXz is a default instance that is conveniently ready to use. -var DefaultXz = NewXz() diff --git a/backend/vendor/github.com/mholt/archiver/v3/zip.go b/backend/vendor/github.com/mholt/archiver/v3/zip.go deleted file mode 100644 index c6af8efb..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/zip.go +++ /dev/null @@ -1,711 +0,0 @@ -package archiver - -import ( - "bytes" - "compress/flate" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "path" - "path/filepath" - "strings" - - "github.com/dsnet/compress/bzip2" - "github.com/klauspost/compress/zip" - "github.com/klauspost/compress/zstd" - "github.com/ulikunitz/xz" -) - -// ZipCompressionMethod Compression type -type ZipCompressionMethod uint16 - -// Compression methods. -// see https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT. -// Note LZMA: Disabled - because 7z isn't able to unpack ZIP+LZMA ZIP+LZMA2 archives made this way - and vice versa. -const ( - Store ZipCompressionMethod = 0 - Deflate ZipCompressionMethod = 8 - BZIP2 ZipCompressionMethod = 12 - LZMA ZipCompressionMethod = 14 - ZSTD ZipCompressionMethod = 93 - XZ ZipCompressionMethod = 95 -) - -// Zip provides facilities for operating ZIP archives. -// See https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT. -type Zip struct { - // The compression level to use, as described - // in the compress/flate package. - CompressionLevel int - - // Whether to overwrite existing files; if false, - // an error is returned if the file exists. - OverwriteExisting bool - - // Whether to make all the directories necessary - // to create a zip archive in the desired path. - MkdirAll bool - - // If enabled, selective compression will only - // compress files which are not already in a - // compressed format; this is decided based - // simply on file extension. - SelectiveCompression bool - - // A single top-level folder can be implicitly - // created by the Archive or Unarchive methods - // if the files to be added to the archive - // or the files to be extracted from the archive - // do not all have a common root. This roughly - // mimics the behavior of archival tools integrated - // into OS file browsers which create a subfolder - // to avoid unexpectedly littering the destination - // folder with potentially many files, causing a - // problematic cleanup/organization situation. - // This feature is available for both creation - // and extraction of archives, but may be slightly - // inefficient with lots and lots of files, - // especially on extraction. - ImplicitTopLevelFolder bool - - // Strip number of leading paths. This feature is available - // only during unpacking of the entire archive. - StripComponents int - - // If true, errors encountered during reading - // or writing a single file will be logged and - // the operation will continue on remaining files. - ContinueOnError bool - - // Compression algorithm - FileMethod ZipCompressionMethod - zw *zip.Writer - zr *zip.Reader - ridx int - //decinitialized bool -} - -// CheckExt ensures the file extension matches the format. -func (*Zip) CheckExt(filename string) error { - if !strings.HasSuffix(filename, ".zip") { - return fmt.Errorf("filename must have a .zip extension") - } - return nil -} - -// Registering a global decompressor is not reentrant and may panic -func registerDecompressor(zr *zip.Reader) { - // register zstd decompressor - zr.RegisterDecompressor(uint16(ZSTD), func(r io.Reader) io.ReadCloser { - zr, err := zstd.NewReader(r) - if err != nil { - return nil - } - return zr.IOReadCloser() - }) - zr.RegisterDecompressor(uint16(BZIP2), func(r io.Reader) io.ReadCloser { - bz2r, err := bzip2.NewReader(r, nil) - if err != nil { - return nil - } - return bz2r - }) - zr.RegisterDecompressor(uint16(XZ), func(r io.Reader) io.ReadCloser { - xr, err := xz.NewReader(r) - if err != nil { - return nil - } - return ioutil.NopCloser(xr) - }) -} - -// CheckPath ensures the file extension matches the format. -func (*Zip) CheckPath(to, filename string) error { - to, _ = filepath.Abs(to) //explicit the destination folder to prevent that 'string.HasPrefix' check can be 'bypassed' when no destination folder is supplied in input - dest := filepath.Join(to, filename) - //prevent path traversal attacks - if !strings.HasPrefix(dest, to) { - return &IllegalPathError{AbsolutePath: dest, Filename: filename} - } - return nil -} - -// Archive creates a .zip file at destination containing -// the files listed in sources. The destination must end -// with ".zip". File paths can be those of regular files -// or directories. Regular files are stored at the 'root' -// of the archive, and directories are recursively added. -func (z *Zip) Archive(sources []string, destination string) error { - err := z.CheckExt(destination) - if err != nil { - return fmt.Errorf("checking extension: %v", err) - } - if !z.OverwriteExisting && fileExists(destination) { - return fmt.Errorf("file already exists: %s", destination) - } - - // make the folder to contain the resulting archive - // if it does not already exist - destDir := filepath.Dir(destination) - if z.MkdirAll && !fileExists(destDir) { - err := mkdir(destDir, 0755) - if err != nil { - return fmt.Errorf("making folder for destination: %v", err) - } - } - - out, err := os.Create(destination) - if err != nil { - return fmt.Errorf("creating %s: %v", destination, err) - } - defer out.Close() - - err = z.Create(out) - if err != nil { - return fmt.Errorf("creating zip: %v", err) - } - defer z.Close() - - var topLevelFolder string - if z.ImplicitTopLevelFolder && multipleTopLevels(sources) { - topLevelFolder = folderNameFromFileName(destination) - } - - for _, source := range sources { - err := z.writeWalk(source, topLevelFolder, destination) - if err != nil { - return fmt.Errorf("walking %s: %v", source, err) - } - } - - return nil -} - -// Unarchive unpacks the .zip file at source to destination. -// Destination will be treated as a folder name. -func (z *Zip) Unarchive(source, destination string) error { - if !fileExists(destination) && z.MkdirAll { - err := mkdir(destination, 0755) - if err != nil { - return fmt.Errorf("preparing destination: %v", err) - } - } - - file, err := os.Open(source) - if err != nil { - return fmt.Errorf("opening source file: %v", err) - } - defer file.Close() - - fileInfo, err := file.Stat() - if err != nil { - return fmt.Errorf("statting source file: %v", err) - } - - err = z.Open(file, fileInfo.Size()) - if err != nil { - return fmt.Errorf("opening zip archive for reading: %v", err) - } - defer z.Close() - - // if the files in the archive do not all share a common - // root, then make sure we extract to a single subfolder - // rather than potentially littering the destination... - if z.ImplicitTopLevelFolder { - files := make([]string, len(z.zr.File)) - for i := range z.zr.File { - files[i] = z.zr.File[i].Name - } - if multipleTopLevels(files) { - destination = filepath.Join(destination, folderNameFromFileName(source)) - } - } - - for { - err := z.extractNext(destination) - if err == io.EOF { - break - } - if err != nil { - if z.ContinueOnError || IsIllegalPathError(err) { - log.Printf("[ERROR] Reading file in zip archive: %v", err) - continue - } - return fmt.Errorf("reading file in zip archive: %v", err) - } - } - - return nil -} - -func (z *Zip) extractNext(to string) error { - f, err := z.Read() - if err != nil { - return err // don't wrap error; calling loop must break on io.EOF - } - defer f.Close() - - header, ok := f.Header.(zip.FileHeader) - if !ok { - return fmt.Errorf("expected header to be zip.FileHeader but was %T", f.Header) - } - - errPath := z.CheckPath(to, header.Name) - if errPath != nil { - return fmt.Errorf("checking path traversal attempt: %v", errPath) - } - - if z.StripComponents > 0 { - if strings.Count(header.Name, "/") < z.StripComponents { - return nil // skip path with fewer components - } - - for i := 0; i < z.StripComponents; i++ { - slash := strings.Index(header.Name, "/") - header.Name = header.Name[slash+1:] - } - } - return z.extractFile(f, to, &header) -} - -func (z *Zip) extractFile(f File, to string, header *zip.FileHeader) error { - to = filepath.Join(to, header.Name) - - // if a directory, no content; simply make the directory and return - if f.IsDir() { - return mkdir(to, f.Mode()) - } - - // do not overwrite existing files, if configured - if !z.OverwriteExisting && fileExists(to) { - return fmt.Errorf("file already exists: %s", to) - } - - // extract symbolic links as symbolic links - if isSymlink(header.FileInfo()) { - // symlink target is the contents of the file - buf := new(bytes.Buffer) - _, err := io.Copy(buf, f) - if err != nil { - return fmt.Errorf("%s: reading symlink target: %v", header.Name, err) - } - return writeNewSymbolicLink(to, strings.TrimSpace(buf.String())) - } - - return writeNewFile(to, f, f.Mode()) -} - -func (z *Zip) writeWalk(source, topLevelFolder, destination string) error { - sourceInfo, err := os.Stat(source) - if err != nil { - return fmt.Errorf("%s: stat: %v", source, err) - } - destAbs, err := filepath.Abs(destination) - if err != nil { - return fmt.Errorf("%s: getting absolute path of destination %s: %v", source, destination, err) - } - - return filepath.Walk(source, func(fpath string, info os.FileInfo, err error) error { - handleErr := func(err error) error { - if z.ContinueOnError { - log.Printf("[ERROR] Walking %s: %v", fpath, err) - return nil - } - return err - } - if err != nil { - return handleErr(fmt.Errorf("traversing %s: %v", fpath, err)) - } - if info == nil { - return handleErr(fmt.Errorf("%s: no file info", fpath)) - } - - // make sure we do not copy the output file into the output - // file; that results in an infinite loop and disk exhaustion! - fpathAbs, err := filepath.Abs(fpath) - if err != nil { - return handleErr(fmt.Errorf("%s: getting absolute path: %v", fpath, err)) - } - if within(fpathAbs, destAbs) { - return nil - } - - // build the name to be used within the archive - nameInArchive, err := makeNameInArchive(sourceInfo, source, topLevelFolder, fpath) - if err != nil { - return handleErr(err) - } - - var file io.ReadCloser - if info.Mode().IsRegular() { - file, err = os.Open(fpath) - if err != nil { - return handleErr(fmt.Errorf("%s: opening: %v", fpath, err)) - } - defer file.Close() - } - err = z.Write(File{ - FileInfo: FileInfo{ - FileInfo: info, - CustomName: nameInArchive, - SourcePath: fpath, - }, - ReadCloser: file, - }) - if err != nil { - return handleErr(fmt.Errorf("%s: writing: %s", fpath, err)) - } - - return nil - }) -} - -// Create opens z for writing a ZIP archive to out. -func (z *Zip) Create(out io.Writer) error { - if z.zw != nil { - return fmt.Errorf("zip archive is already created for writing") - } - z.zw = zip.NewWriter(out) - if z.CompressionLevel != flate.DefaultCompression { - z.zw.RegisterCompressor(zip.Deflate, func(out io.Writer) (io.WriteCloser, error) { - return flate.NewWriter(out, z.CompressionLevel) - }) - } - switch z.FileMethod { - case BZIP2: - z.zw.RegisterCompressor(uint16(BZIP2), func(out io.Writer) (io.WriteCloser, error) { - return bzip2.NewWriter(out, &bzip2.WriterConfig{Level: z.CompressionLevel}) - }) - case ZSTD: - z.zw.RegisterCompressor(uint16(ZSTD), func(out io.Writer) (io.WriteCloser, error) { - return zstd.NewWriter(out) - }) - case XZ: - z.zw.RegisterCompressor(uint16(XZ), func(out io.Writer) (io.WriteCloser, error) { - return xz.NewWriter(out) - }) - } - return nil -} - -// Write writes f to z, which must have been opened for writing first. -func (z *Zip) Write(f File) error { - if z.zw == nil { - return fmt.Errorf("zip archive was not created for writing first") - } - if f.FileInfo == nil { - return fmt.Errorf("no file info") - } - if f.FileInfo.Name() == "" { - return fmt.Errorf("missing file name") - } - - header, err := zip.FileInfoHeader(f) - if err != nil { - return fmt.Errorf("%s: getting header: %v", f.Name(), err) - } - - if f.IsDir() { - header.Name += "/" // required - strangely no mention of this in zip spec? but is in godoc... - header.Method = zip.Store - } else { - ext := strings.ToLower(path.Ext(header.Name)) - if _, ok := compressedFormats[ext]; ok && z.SelectiveCompression { - header.Method = zip.Store - } else { - header.Method = uint16(z.FileMethod) - } - } - - writer, err := z.zw.CreateHeader(header) - if err != nil { - return fmt.Errorf("%s: making header: %w", f.Name(), err) - } - - return z.writeFile(f, writer) -} - -func (z *Zip) writeFile(f File, writer io.Writer) error { - if f.IsDir() { - return nil // directories have no contents - } - if isSymlink(f) { - fi, ok := f.FileInfo.(FileInfo) - if !ok { - return fmt.Errorf("failed to cast fs.FileInfo to archiver.FileInfo: %v", f) - } - // file body for symlinks is the symlink target - linkTarget, err := os.Readlink(fi.SourcePath) - if err != nil { - return fmt.Errorf("%s: readlink: %v", fi.SourcePath, err) - } - _, err = writer.Write([]byte(filepath.ToSlash(linkTarget))) - if err != nil { - return fmt.Errorf("%s: writing symlink target: %v", fi.SourcePath, err) - } - return nil - } - - if f.ReadCloser == nil { - return fmt.Errorf("%s: no way to read file contents", f.Name()) - } - _, err := io.Copy(writer, f) - if err != nil { - return fmt.Errorf("%s: copying contents: %w", f.Name(), err) - } - - return nil -} - -// Open opens z for reading an archive from in, -// which is expected to have the given size and -// which must be an io.ReaderAt. -func (z *Zip) Open(in io.Reader, size int64) error { - inRdrAt, ok := in.(io.ReaderAt) - if !ok { - return fmt.Errorf("reader must be io.ReaderAt") - } - if z.zr != nil { - return fmt.Errorf("zip archive is already open for reading") - } - var err error - z.zr, err = zip.NewReader(inRdrAt, size) - if err != nil { - return fmt.Errorf("creating reader: %v", err) - } - registerDecompressor(z.zr) - z.ridx = 0 - return nil -} - -// Read reads the next file from z, which must have -// already been opened for reading. If there are no -// more files, the error is io.EOF. The File must -// be closed when finished reading from it. -func (z *Zip) Read() (File, error) { - if z.zr == nil { - return File{}, fmt.Errorf("zip archive is not open") - } - if z.ridx >= len(z.zr.File) { - return File{}, io.EOF - } - - // access the file and increment counter so that - // if there is an error processing this file, the - // caller can still iterate to the next file - zf := z.zr.File[z.ridx] - z.ridx++ - - file := File{ - FileInfo: zf.FileInfo(), - Header: zf.FileHeader, - } - - rc, err := zf.Open() - if err != nil { - return file, fmt.Errorf("%s: open compressed file: %v", zf.Name, err) - } - file.ReadCloser = rc - - return file, nil -} - -// Close closes the zip archive(s) opened by Create and Open. -func (z *Zip) Close() error { - if z.zr != nil { - z.zr = nil - } - if z.zw != nil { - zw := z.zw - z.zw = nil - return zw.Close() - } - return nil -} - -// Walk calls walkFn for each visited item in archive. -func (z *Zip) Walk(archive string, walkFn WalkFunc) error { - zr, err := zip.OpenReader(archive) - if err != nil { - return fmt.Errorf("opening zip reader: %v", err) - } - defer zr.Close() - registerDecompressor(&zr.Reader) - for _, zf := range zr.File { - zfrc, err := zf.Open() - if err != nil { - if zfrc != nil { - zfrc.Close() - } - if z.ContinueOnError { - log.Printf("[ERROR] Opening %s: %v", zf.Name, err) - continue - } - return fmt.Errorf("opening %s: %v", zf.Name, err) - } - - err = walkFn(File{ - FileInfo: zf.FileInfo(), - Header: zf.FileHeader, - ReadCloser: zfrc, - }) - zfrc.Close() - if err != nil { - if err == ErrStopWalk { - break - } - if z.ContinueOnError { - log.Printf("[ERROR] Walking %s: %v", zf.Name, err) - continue - } - return fmt.Errorf("walking %s: %v", zf.Name, err) - } - } - - return nil -} - -// Extract extracts a single file from the zip archive. -// If the target is a directory, the entire folder will -// be extracted into destination. -func (z *Zip) Extract(source, target, destination string) error { - // target refers to a path inside the archive, which should be clean also - target = path.Clean(target) - - // if the target ends up being a directory, then - // we will continue walking and extracting files - // until we are no longer within that directory - var targetDirPath string - - return z.Walk(source, func(f File) error { - zfh, ok := f.Header.(zip.FileHeader) - if !ok { - return fmt.Errorf("expected header to be zip.FileHeader but was %T", f.Header) - } - - // importantly, cleaning the path strips tailing slash, - // which must be appended to folders within the archive - name := path.Clean(zfh.Name) - if f.IsDir() && target == name { - targetDirPath = path.Dir(name) - } - - if within(target, zfh.Name) { - // either this is the exact file we want, or is - // in the directory we want to extract - - // build the filename we will extract to - end, err := filepath.Rel(targetDirPath, zfh.Name) - if err != nil { - return fmt.Errorf("relativizing paths: %v", err) - } - joined := filepath.Join(destination, end) - - err = z.extractFile(f, joined, &zfh) - if err != nil { - return fmt.Errorf("extracting file %s: %v", zfh.Name, err) - } - - // if our target was not a directory, stop walk - if targetDirPath == "" { - return ErrStopWalk - } - } else if targetDirPath != "" { - // finished walking the entire directory - return ErrStopWalk - } - - return nil - }) -} - -// Match returns true if the format of file matches this -// type's format. It should not affect reader position. -func (*Zip) Match(file io.ReadSeeker) (bool, error) { - currentPos, err := file.Seek(0, io.SeekCurrent) - if err != nil { - return false, err - } - _, err = file.Seek(0, 0) - if err != nil { - return false, err - } - defer func() { - _, _ = file.Seek(currentPos, io.SeekStart) - }() - - buf := make([]byte, 4) - if n, err := file.Read(buf); err != nil || n < 4 { - return false, nil - } - return bytes.Equal(buf, []byte("PK\x03\x04")), nil -} - -func (z *Zip) String() string { return "zip" } - -// NewZip returns a new, default instance ready to be customized and used. -func NewZip() *Zip { - return &Zip{ - CompressionLevel: flate.DefaultCompression, - MkdirAll: true, - SelectiveCompression: true, - FileMethod: Deflate, - } -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Reader(new(Zip)) - _ = Writer(new(Zip)) - _ = Archiver(new(Zip)) - _ = Unarchiver(new(Zip)) - _ = Walker(new(Zip)) - _ = Extractor(new(Zip)) - _ = Matcher(new(Zip)) - _ = ExtensionChecker(new(Zip)) - _ = FilenameChecker(new(Zip)) -) - -// compressedFormats is a (non-exhaustive) set of lowercased -// file extensions for formats that are typically already -// compressed. Compressing files that are already compressed -// is inefficient, so use this set of extension to avoid that. -var compressedFormats = map[string]struct{}{ - ".7z": {}, - ".avi": {}, - ".br": {}, - ".bz2": {}, - ".cab": {}, - ".docx": {}, - ".gif": {}, - ".gz": {}, - ".jar": {}, - ".jpeg": {}, - ".jpg": {}, - ".lz": {}, - ".lz4": {}, - ".lzma": {}, - ".m4v": {}, - ".mov": {}, - ".mp3": {}, - ".mp4": {}, - ".mpeg": {}, - ".mpg": {}, - ".png": {}, - ".pptx": {}, - ".rar": {}, - ".sz": {}, - ".tbz2": {}, - ".tgz": {}, - ".tsz": {}, - ".txz": {}, - ".xlsx": {}, - ".xz": {}, - ".zip": {}, - ".zipx": {}, -} - -// DefaultZip is a default instance that is conveniently ready to use. -var DefaultZip = NewZip() diff --git a/backend/vendor/github.com/mholt/archiver/v3/zstd.go b/backend/vendor/github.com/mholt/archiver/v3/zstd.go deleted file mode 100644 index 60c11efc..00000000 --- a/backend/vendor/github.com/mholt/archiver/v3/zstd.go +++ /dev/null @@ -1,61 +0,0 @@ -package archiver - -import ( - "fmt" - "io" - "path/filepath" - - "github.com/klauspost/compress/zstd" -) - -// Zstd facilitates Zstandard compression. -type Zstd struct { - EncoderOptions []zstd.EOption - DecoderOptions []zstd.DOption -} - -// Compress reads in, compresses it, and writes it to out. -func (zs *Zstd) Compress(in io.Reader, out io.Writer) error { - w, err := zstd.NewWriter(out, zs.EncoderOptions...) - if err != nil { - return err - } - defer w.Close() - _, err = io.Copy(w, in) - return err -} - -// Decompress reads in, decompresses it, and writes it to out. -func (zs *Zstd) Decompress(in io.Reader, out io.Writer) error { - r, err := zstd.NewReader(in, zs.DecoderOptions...) - if err != nil { - return err - } - defer r.Close() - _, err = io.Copy(out, r) - return err -} - -// CheckExt ensures the file extension matches the format. -func (zs *Zstd) CheckExt(filename string) error { - if filepath.Ext(filename) != ".zst" { - return fmt.Errorf("filename must have a .zst extension") - } - return nil -} - -func (zs *Zstd) String() string { return "zstd" } - -// NewZstd returns a new, default instance ready to be customized and used. -func NewZstd() *Zstd { - return new(Zstd) -} - -// Compile-time checks to ensure type implements desired interfaces. -var ( - _ = Compressor(new(Zstd)) - _ = Decompressor(new(Zstd)) -) - -// DefaultZstd is a default instance that is conveniently ready to use. -var DefaultZstd = NewZstd() diff --git a/backend/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md b/backend/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md deleted file mode 100644 index c7582349..00000000 --- a/backend/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md +++ /dev/null @@ -1,96 +0,0 @@ -## 1.5.0 - -* New option `IgnoreUntaggedFields` to ignore decoding to any fields - without `mapstructure` (or the configured tag name) set [GH-277] -* New option `ErrorUnset` which makes it an error if any fields - in a target struct are not set by the decoding process. [GH-225] -* New function `OrComposeDecodeHookFunc` to help compose decode hooks. [GH-240] -* Decoding to slice from array no longer crashes [GH-265] -* Decode nested struct pointers to map [GH-271] -* Fix issue where `,squash` was ignored if `Squash` option was set. [GH-280] -* Fix issue where fields with `,omitempty` would sometimes decode - into a map with an empty string key [GH-281] - -## 1.4.3 - -* Fix cases where `json.Number` didn't decode properly [GH-261] - -## 1.4.2 - -* Custom name matchers to support any sort of casing, formatting, etc. for - field names. [GH-250] -* Fix possible panic in ComposeDecodeHookFunc [GH-251] - -## 1.4.1 - -* Fix regression where `*time.Time` value would be set to empty and not be sent - to decode hooks properly [GH-232] - -## 1.4.0 - -* A new decode hook type `DecodeHookFuncValue` has been added that has - access to the full values. [GH-183] -* Squash is now supported with embedded fields that are struct pointers [GH-205] -* Empty strings will convert to 0 for all numeric types when weakly decoding [GH-206] - -## 1.3.3 - -* Decoding maps from maps creates a settable value for decode hooks [GH-203] - -## 1.3.2 - -* Decode into interface type with a struct value is supported [GH-187] - -## 1.3.1 - -* Squash should only squash embedded structs. [GH-194] - -## 1.3.0 - -* Added `",omitempty"` support. This will ignore zero values in the source - structure when encoding. [GH-145] - -## 1.2.3 - -* Fix duplicate entries in Keys list with pointer values. [GH-185] - -## 1.2.2 - -* Do not add unsettable (unexported) values to the unused metadata key - or "remain" value. [GH-150] - -## 1.2.1 - -* Go modules checksum mismatch fix - -## 1.2.0 - -* Added support to capture unused values in a field using the `",remain"` value - in the mapstructure tag. There is an example to showcase usage. -* Added `DecoderConfig` option to always squash embedded structs -* `json.Number` can decode into `uint` types -* Empty slices are preserved and not replaced with nil slices -* Fix panic that can occur in when decoding a map into a nil slice of structs -* Improved package documentation for godoc - -## 1.1.2 - -* Fix error when decode hook decodes interface implementation into interface - type. [GH-140] - -## 1.1.1 - -* Fix panic that can happen in `decodePtr` - -## 1.1.0 - -* Added `StringToIPHookFunc` to convert `string` to `net.IP` and `net.IPNet` [GH-133] -* Support struct to struct decoding [GH-137] -* If source map value is nil, then destination map value is nil (instead of empty) -* If source slice value is nil, then destination slice value is nil (instead of empty) -* If source pointer is nil, then destination pointer is set to nil (instead of - allocated zero value of type) - -## 1.0.0 - -* Initial tagged stable release. diff --git a/backend/vendor/github.com/mitchellh/mapstructure/LICENSE b/backend/vendor/github.com/mitchellh/mapstructure/LICENSE deleted file mode 100644 index f9c841a5..00000000 --- a/backend/vendor/github.com/mitchellh/mapstructure/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Mitchell Hashimoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/backend/vendor/github.com/mitchellh/mapstructure/README.md b/backend/vendor/github.com/mitchellh/mapstructure/README.md deleted file mode 100644 index 0018dc7d..00000000 --- a/backend/vendor/github.com/mitchellh/mapstructure/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# mapstructure [![Godoc](https://godoc.org/github.com/mitchellh/mapstructure?status.svg)](https://godoc.org/github.com/mitchellh/mapstructure) - -mapstructure is a Go library for decoding generic map values to structures -and vice versa, while providing helpful error handling. - -This library is most useful when decoding values from some data stream (JSON, -Gob, etc.) where you don't _quite_ know the structure of the underlying data -until you read a part of it. You can therefore read a `map[string]interface{}` -and use this library to decode it into the proper underlying native Go -structure. - -## Installation - -Standard `go get`: - -``` -$ go get github.com/mitchellh/mapstructure -``` - -## Usage & Example - -For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/mapstructure). - -The `Decode` function has examples associated with it there. - -## But Why?! - -Go offers fantastic standard libraries for decoding formats such as JSON. -The standard method is to have a struct pre-created, and populate that struct -from the bytes of the encoded format. This is great, but the problem is if -you have configuration or an encoding that changes slightly depending on -specific fields. For example, consider this JSON: - -```json -{ - "type": "person", - "name": "Mitchell" -} -``` - -Perhaps we can't populate a specific structure without first reading -the "type" field from the JSON. We could always do two passes over the -decoding of the JSON (reading the "type" first, and the rest later). -However, it is much simpler to just decode this into a `map[string]interface{}` -structure, read the "type" key, then use something like this library -to decode it into the proper structure. diff --git a/backend/vendor/github.com/mitchellh/mapstructure/decode_hooks.go b/backend/vendor/github.com/mitchellh/mapstructure/decode_hooks.go deleted file mode 100644 index 3a754ca7..00000000 --- a/backend/vendor/github.com/mitchellh/mapstructure/decode_hooks.go +++ /dev/null @@ -1,279 +0,0 @@ -package mapstructure - -import ( - "encoding" - "errors" - "fmt" - "net" - "reflect" - "strconv" - "strings" - "time" -) - -// typedDecodeHook takes a raw DecodeHookFunc (an interface{}) and turns -// it into the proper DecodeHookFunc type, such as DecodeHookFuncType. -func typedDecodeHook(h DecodeHookFunc) DecodeHookFunc { - // Create variables here so we can reference them with the reflect pkg - var f1 DecodeHookFuncType - var f2 DecodeHookFuncKind - var f3 DecodeHookFuncValue - - // Fill in the variables into this interface and the rest is done - // automatically using the reflect package. - potential := []interface{}{f1, f2, f3} - - v := reflect.ValueOf(h) - vt := v.Type() - for _, raw := range potential { - pt := reflect.ValueOf(raw).Type() - if vt.ConvertibleTo(pt) { - return v.Convert(pt).Interface() - } - } - - return nil -} - -// DecodeHookExec executes the given decode hook. This should be used -// since it'll naturally degrade to the older backwards compatible DecodeHookFunc -// that took reflect.Kind instead of reflect.Type. -func DecodeHookExec( - raw DecodeHookFunc, - from reflect.Value, to reflect.Value) (interface{}, error) { - - switch f := typedDecodeHook(raw).(type) { - case DecodeHookFuncType: - return f(from.Type(), to.Type(), from.Interface()) - case DecodeHookFuncKind: - return f(from.Kind(), to.Kind(), from.Interface()) - case DecodeHookFuncValue: - return f(from, to) - default: - return nil, errors.New("invalid decode hook signature") - } -} - -// ComposeDecodeHookFunc creates a single DecodeHookFunc that -// automatically composes multiple DecodeHookFuncs. -// -// The composed funcs are called in order, with the result of the -// previous transformation. -func ComposeDecodeHookFunc(fs ...DecodeHookFunc) DecodeHookFunc { - return func(f reflect.Value, t reflect.Value) (interface{}, error) { - var err error - data := f.Interface() - - newFrom := f - for _, f1 := range fs { - data, err = DecodeHookExec(f1, newFrom, t) - if err != nil { - return nil, err - } - newFrom = reflect.ValueOf(data) - } - - return data, nil - } -} - -// OrComposeDecodeHookFunc executes all input hook functions until one of them returns no error. In that case its value is returned. -// If all hooks return an error, OrComposeDecodeHookFunc returns an error concatenating all error messages. -func OrComposeDecodeHookFunc(ff ...DecodeHookFunc) DecodeHookFunc { - return func(a, b reflect.Value) (interface{}, error) { - var allErrs string - var out interface{} - var err error - - for _, f := range ff { - out, err = DecodeHookExec(f, a, b) - if err != nil { - allErrs += err.Error() + "\n" - continue - } - - return out, nil - } - - return nil, errors.New(allErrs) - } -} - -// StringToSliceHookFunc returns a DecodeHookFunc that converts -// string to []string by splitting on the given sep. -func StringToSliceHookFunc(sep string) DecodeHookFunc { - return func( - f reflect.Kind, - t reflect.Kind, - data interface{}) (interface{}, error) { - if f != reflect.String || t != reflect.Slice { - return data, nil - } - - raw := data.(string) - if raw == "" { - return []string{}, nil - } - - return strings.Split(raw, sep), nil - } -} - -// StringToTimeDurationHookFunc returns a DecodeHookFunc that converts -// strings to time.Duration. -func StringToTimeDurationHookFunc() DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - if f.Kind() != reflect.String { - return data, nil - } - if t != reflect.TypeOf(time.Duration(5)) { - return data, nil - } - - // Convert it by parsing - return time.ParseDuration(data.(string)) - } -} - -// StringToIPHookFunc returns a DecodeHookFunc that converts -// strings to net.IP -func StringToIPHookFunc() DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - if f.Kind() != reflect.String { - return data, nil - } - if t != reflect.TypeOf(net.IP{}) { - return data, nil - } - - // Convert it by parsing - ip := net.ParseIP(data.(string)) - if ip == nil { - return net.IP{}, fmt.Errorf("failed parsing ip %v", data) - } - - return ip, nil - } -} - -// StringToIPNetHookFunc returns a DecodeHookFunc that converts -// strings to net.IPNet -func StringToIPNetHookFunc() DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - if f.Kind() != reflect.String { - return data, nil - } - if t != reflect.TypeOf(net.IPNet{}) { - return data, nil - } - - // Convert it by parsing - _, net, err := net.ParseCIDR(data.(string)) - return net, err - } -} - -// StringToTimeHookFunc returns a DecodeHookFunc that converts -// strings to time.Time. -func StringToTimeHookFunc(layout string) DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - if f.Kind() != reflect.String { - return data, nil - } - if t != reflect.TypeOf(time.Time{}) { - return data, nil - } - - // Convert it by parsing - return time.Parse(layout, data.(string)) - } -} - -// WeaklyTypedHook is a DecodeHookFunc which adds support for weak typing to -// the decoder. -// -// Note that this is significantly different from the WeaklyTypedInput option -// of the DecoderConfig. -func WeaklyTypedHook( - f reflect.Kind, - t reflect.Kind, - data interface{}) (interface{}, error) { - dataVal := reflect.ValueOf(data) - switch t { - case reflect.String: - switch f { - case reflect.Bool: - if dataVal.Bool() { - return "1", nil - } - return "0", nil - case reflect.Float32: - return strconv.FormatFloat(dataVal.Float(), 'f', -1, 64), nil - case reflect.Int: - return strconv.FormatInt(dataVal.Int(), 10), nil - case reflect.Slice: - dataType := dataVal.Type() - elemKind := dataType.Elem().Kind() - if elemKind == reflect.Uint8 { - return string(dataVal.Interface().([]uint8)), nil - } - case reflect.Uint: - return strconv.FormatUint(dataVal.Uint(), 10), nil - } - } - - return data, nil -} - -func RecursiveStructToMapHookFunc() DecodeHookFunc { - return func(f reflect.Value, t reflect.Value) (interface{}, error) { - if f.Kind() != reflect.Struct { - return f.Interface(), nil - } - - var i interface{} = struct{}{} - if t.Type() != reflect.TypeOf(&i).Elem() { - return f.Interface(), nil - } - - m := make(map[string]interface{}) - t.Set(reflect.ValueOf(m)) - - return f.Interface(), nil - } -} - -// TextUnmarshallerHookFunc returns a DecodeHookFunc that applies -// strings to the UnmarshalText function, when the target type -// implements the encoding.TextUnmarshaler interface -func TextUnmarshallerHookFunc() DecodeHookFuncType { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - if f.Kind() != reflect.String { - return data, nil - } - result := reflect.New(t).Interface() - unmarshaller, ok := result.(encoding.TextUnmarshaler) - if !ok { - return data, nil - } - if err := unmarshaller.UnmarshalText([]byte(data.(string))); err != nil { - return nil, err - } - return result, nil - } -} diff --git a/backend/vendor/github.com/mitchellh/mapstructure/error.go b/backend/vendor/github.com/mitchellh/mapstructure/error.go deleted file mode 100644 index 47a99e5a..00000000 --- a/backend/vendor/github.com/mitchellh/mapstructure/error.go +++ /dev/null @@ -1,50 +0,0 @@ -package mapstructure - -import ( - "errors" - "fmt" - "sort" - "strings" -) - -// Error implements the error interface and can represents multiple -// errors that occur in the course of a single decode. -type Error struct { - Errors []string -} - -func (e *Error) Error() string { - points := make([]string, len(e.Errors)) - for i, err := range e.Errors { - points[i] = fmt.Sprintf("* %s", err) - } - - sort.Strings(points) - return fmt.Sprintf( - "%d error(s) decoding:\n\n%s", - len(e.Errors), strings.Join(points, "\n")) -} - -// WrappedErrors implements the errwrap.Wrapper interface to make this -// return value more useful with the errwrap and go-multierror libraries. -func (e *Error) WrappedErrors() []error { - if e == nil { - return nil - } - - result := make([]error, len(e.Errors)) - for i, e := range e.Errors { - result[i] = errors.New(e) - } - - return result -} - -func appendErrors(errors []string, err error) []string { - switch e := err.(type) { - case *Error: - return append(errors, e.Errors...) - default: - return append(errors, e.Error()) - } -} diff --git a/backend/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/backend/vendor/github.com/mitchellh/mapstructure/mapstructure.go deleted file mode 100644 index fadccc4a..00000000 --- a/backend/vendor/github.com/mitchellh/mapstructure/mapstructure.go +++ /dev/null @@ -1,1540 +0,0 @@ -// Package mapstructure exposes functionality to convert one arbitrary -// Go type into another, typically to convert a map[string]interface{} -// into a native Go structure. -// -// The Go structure can be arbitrarily complex, containing slices, -// other structs, etc. and the decoder will properly decode nested -// maps and so on into the proper structures in the native Go struct. -// See the examples to see what the decoder is capable of. -// -// The simplest function to start with is Decode. -// -// # Field Tags -// -// When decoding to a struct, mapstructure will use the field name by -// default to perform the mapping. For example, if a struct has a field -// "Username" then mapstructure will look for a key in the source value -// of "username" (case insensitive). -// -// type User struct { -// Username string -// } -// -// You can change the behavior of mapstructure by using struct tags. -// The default struct tag that mapstructure looks for is "mapstructure" -// but you can customize it using DecoderConfig. -// -// # Renaming Fields -// -// To rename the key that mapstructure looks for, use the "mapstructure" -// tag and set a value directly. For example, to change the "username" example -// above to "user": -// -// type User struct { -// Username string `mapstructure:"user"` -// } -// -// # Embedded Structs and Squashing -// -// Embedded structs are treated as if they're another field with that name. -// By default, the two structs below are equivalent when decoding with -// mapstructure: -// -// type Person struct { -// Name string -// } -// -// type Friend struct { -// Person -// } -// -// type Friend struct { -// Person Person -// } -// -// This would require an input that looks like below: -// -// map[string]interface{}{ -// "person": map[string]interface{}{"name": "alice"}, -// } -// -// If your "person" value is NOT nested, then you can append ",squash" to -// your tag value and mapstructure will treat it as if the embedded struct -// were part of the struct directly. Example: -// -// type Friend struct { -// Person `mapstructure:",squash"` -// } -// -// Now the following input would be accepted: -// -// map[string]interface{}{ -// "name": "alice", -// } -// -// When decoding from a struct to a map, the squash tag squashes the struct -// fields into a single map. Using the example structs from above: -// -// Friend{Person: Person{Name: "alice"}} -// -// Will be decoded into a map: -// -// map[string]interface{}{ -// "name": "alice", -// } -// -// DecoderConfig has a field that changes the behavior of mapstructure -// to always squash embedded structs. -// -// # Remainder Values -// -// If there are any unmapped keys in the source value, mapstructure by -// default will silently ignore them. You can error by setting ErrorUnused -// in DecoderConfig. If you're using Metadata you can also maintain a slice -// of the unused keys. -// -// You can also use the ",remain" suffix on your tag to collect all unused -// values in a map. The field with this tag MUST be a map type and should -// probably be a "map[string]interface{}" or "map[interface{}]interface{}". -// See example below: -// -// type Friend struct { -// Name string -// Other map[string]interface{} `mapstructure:",remain"` -// } -// -// Given the input below, Other would be populated with the other -// values that weren't used (everything but "name"): -// -// map[string]interface{}{ -// "name": "bob", -// "address": "123 Maple St.", -// } -// -// # Omit Empty Values -// -// When decoding from a struct to any other value, you may use the -// ",omitempty" suffix on your tag to omit that value if it equates to -// the zero value. The zero value of all types is specified in the Go -// specification. -// -// For example, the zero type of a numeric type is zero ("0"). If the struct -// field value is zero and a numeric type, the field is empty, and it won't -// be encoded into the destination type. -// -// type Source struct { -// Age int `mapstructure:",omitempty"` -// } -// -// # Unexported fields -// -// Since unexported (private) struct fields cannot be set outside the package -// where they are defined, the decoder will simply skip them. -// -// For this output type definition: -// -// type Exported struct { -// private string // this unexported field will be skipped -// Public string -// } -// -// Using this map as input: -// -// map[string]interface{}{ -// "private": "I will be ignored", -// "Public": "I made it through!", -// } -// -// The following struct will be decoded: -// -// type Exported struct { -// private: "" // field is left with an empty string (zero value) -// Public: "I made it through!" -// } -// -// # Other Configuration -// -// mapstructure is highly configurable. See the DecoderConfig struct -// for other features and options that are supported. -package mapstructure - -import ( - "encoding/json" - "errors" - "fmt" - "reflect" - "sort" - "strconv" - "strings" -) - -// DecodeHookFunc is the callback function that can be used for -// data transformations. See "DecodeHook" in the DecoderConfig -// struct. -// -// The type must be one of DecodeHookFuncType, DecodeHookFuncKind, or -// DecodeHookFuncValue. -// Values are a superset of Types (Values can return types), and Types are a -// superset of Kinds (Types can return Kinds) and are generally a richer thing -// to use, but Kinds are simpler if you only need those. -// -// The reason DecodeHookFunc is multi-typed is for backwards compatibility: -// we started with Kinds and then realized Types were the better solution, -// but have a promise to not break backwards compat so we now support -// both. -type DecodeHookFunc interface{} - -// DecodeHookFuncType is a DecodeHookFunc which has complete information about -// the source and target types. -type DecodeHookFuncType func(reflect.Type, reflect.Type, interface{}) (interface{}, error) - -// DecodeHookFuncKind is a DecodeHookFunc which knows only the Kinds of the -// source and target types. -type DecodeHookFuncKind func(reflect.Kind, reflect.Kind, interface{}) (interface{}, error) - -// DecodeHookFuncValue is a DecodeHookFunc which has complete access to both the source and target -// values. -type DecodeHookFuncValue func(from reflect.Value, to reflect.Value) (interface{}, error) - -// DecoderConfig is the configuration that is used to create a new decoder -// and allows customization of various aspects of decoding. -type DecoderConfig struct { - // DecodeHook, if set, will be called before any decoding and any - // type conversion (if WeaklyTypedInput is on). This lets you modify - // the values before they're set down onto the resulting struct. The - // DecodeHook is called for every map and value in the input. This means - // that if a struct has embedded fields with squash tags the decode hook - // is called only once with all of the input data, not once for each - // embedded struct. - // - // If an error is returned, the entire decode will fail with that error. - DecodeHook DecodeHookFunc - - // If ErrorUnused is true, then it is an error for there to exist - // keys in the original map that were unused in the decoding process - // (extra keys). - ErrorUnused bool - - // If ErrorUnset is true, then it is an error for there to exist - // fields in the result that were not set in the decoding process - // (extra fields). This only applies to decoding to a struct. This - // will affect all nested structs as well. - ErrorUnset bool - - // ZeroFields, if set to true, will zero fields before writing them. - // For example, a map will be emptied before decoded values are put in - // it. If this is false, a map will be merged. - ZeroFields bool - - // If WeaklyTypedInput is true, the decoder will make the following - // "weak" conversions: - // - // - bools to string (true = "1", false = "0") - // - numbers to string (base 10) - // - bools to int/uint (true = 1, false = 0) - // - strings to int/uint (base implied by prefix) - // - int to bool (true if value != 0) - // - string to bool (accepts: 1, t, T, TRUE, true, True, 0, f, F, - // FALSE, false, False. Anything else is an error) - // - empty array = empty map and vice versa - // - negative numbers to overflowed uint values (base 10) - // - slice of maps to a merged map - // - single values are converted to slices if required. Each - // element is weakly decoded. For example: "4" can become []int{4} - // if the target type is an int slice. - // - WeaklyTypedInput bool - - // Squash will squash embedded structs. A squash tag may also be - // added to an individual struct field using a tag. For example: - // - // type Parent struct { - // Child `mapstructure:",squash"` - // } - Squash bool - - // Metadata is the struct that will contain extra metadata about - // the decoding. If this is nil, then no metadata will be tracked. - Metadata *Metadata - - // Result is a pointer to the struct that will contain the decoded - // value. - Result interface{} - - // The tag name that mapstructure reads for field names. This - // defaults to "mapstructure" - TagName string - - // IgnoreUntaggedFields ignores all struct fields without explicit - // TagName, comparable to `mapstructure:"-"` as default behaviour. - IgnoreUntaggedFields bool - - // MatchName is the function used to match the map key to the struct - // field name or tag. Defaults to `strings.EqualFold`. This can be used - // to implement case-sensitive tag values, support snake casing, etc. - MatchName func(mapKey, fieldName string) bool -} - -// A Decoder takes a raw interface value and turns it into structured -// data, keeping track of rich error information along the way in case -// anything goes wrong. Unlike the basic top-level Decode method, you can -// more finely control how the Decoder behaves using the DecoderConfig -// structure. The top-level Decode method is just a convenience that sets -// up the most basic Decoder. -type Decoder struct { - config *DecoderConfig -} - -// Metadata contains information about decoding a structure that -// is tedious or difficult to get otherwise. -type Metadata struct { - // Keys are the keys of the structure which were successfully decoded - Keys []string - - // Unused is a slice of keys that were found in the raw value but - // weren't decoded since there was no matching field in the result interface - Unused []string - - // Unset is a slice of field names that were found in the result interface - // but weren't set in the decoding process since there was no matching value - // in the input - Unset []string -} - -// Decode takes an input structure and uses reflection to translate it to -// the output structure. output must be a pointer to a map or struct. -func Decode(input interface{}, output interface{}) error { - config := &DecoderConfig{ - Metadata: nil, - Result: output, - } - - decoder, err := NewDecoder(config) - if err != nil { - return err - } - - return decoder.Decode(input) -} - -// WeakDecode is the same as Decode but is shorthand to enable -// WeaklyTypedInput. See DecoderConfig for more info. -func WeakDecode(input, output interface{}) error { - config := &DecoderConfig{ - Metadata: nil, - Result: output, - WeaklyTypedInput: true, - } - - decoder, err := NewDecoder(config) - if err != nil { - return err - } - - return decoder.Decode(input) -} - -// DecodeMetadata is the same as Decode, but is shorthand to -// enable metadata collection. See DecoderConfig for more info. -func DecodeMetadata(input interface{}, output interface{}, metadata *Metadata) error { - config := &DecoderConfig{ - Metadata: metadata, - Result: output, - } - - decoder, err := NewDecoder(config) - if err != nil { - return err - } - - return decoder.Decode(input) -} - -// WeakDecodeMetadata is the same as Decode, but is shorthand to -// enable both WeaklyTypedInput and metadata collection. See -// DecoderConfig for more info. -func WeakDecodeMetadata(input interface{}, output interface{}, metadata *Metadata) error { - config := &DecoderConfig{ - Metadata: metadata, - Result: output, - WeaklyTypedInput: true, - } - - decoder, err := NewDecoder(config) - if err != nil { - return err - } - - return decoder.Decode(input) -} - -// NewDecoder returns a new decoder for the given configuration. Once -// a decoder has been returned, the same configuration must not be used -// again. -func NewDecoder(config *DecoderConfig) (*Decoder, error) { - val := reflect.ValueOf(config.Result) - if val.Kind() != reflect.Ptr { - return nil, errors.New("result must be a pointer") - } - - val = val.Elem() - if !val.CanAddr() { - return nil, errors.New("result must be addressable (a pointer)") - } - - if config.Metadata != nil { - if config.Metadata.Keys == nil { - config.Metadata.Keys = make([]string, 0) - } - - if config.Metadata.Unused == nil { - config.Metadata.Unused = make([]string, 0) - } - - if config.Metadata.Unset == nil { - config.Metadata.Unset = make([]string, 0) - } - } - - if config.TagName == "" { - config.TagName = "mapstructure" - } - - if config.MatchName == nil { - config.MatchName = strings.EqualFold - } - - result := &Decoder{ - config: config, - } - - return result, nil -} - -// Decode decodes the given raw interface to the target pointer specified -// by the configuration. -func (d *Decoder) Decode(input interface{}) error { - return d.decode("", input, reflect.ValueOf(d.config.Result).Elem()) -} - -// Decodes an unknown data type into a specific reflection value. -func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) error { - var inputVal reflect.Value - if input != nil { - inputVal = reflect.ValueOf(input) - - // We need to check here if input is a typed nil. Typed nils won't - // match the "input == nil" below so we check that here. - if inputVal.Kind() == reflect.Ptr && inputVal.IsNil() { - input = nil - } - } - - if input == nil { - // If the data is nil, then we don't set anything, unless ZeroFields is set - // to true. - if d.config.ZeroFields { - outVal.Set(reflect.Zero(outVal.Type())) - - if d.config.Metadata != nil && name != "" { - d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) - } - } - return nil - } - - if !inputVal.IsValid() { - // If the input value is invalid, then we just set the value - // to be the zero value. - outVal.Set(reflect.Zero(outVal.Type())) - if d.config.Metadata != nil && name != "" { - d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) - } - return nil - } - - if d.config.DecodeHook != nil { - // We have a DecodeHook, so let's pre-process the input. - var err error - input, err = DecodeHookExec(d.config.DecodeHook, inputVal, outVal) - if err != nil { - return fmt.Errorf("error decoding '%s': %s", name, err) - } - } - - var err error - outputKind := getKind(outVal) - addMetaKey := true - switch outputKind { - case reflect.Bool: - err = d.decodeBool(name, input, outVal) - case reflect.Interface: - err = d.decodeBasic(name, input, outVal) - case reflect.String: - err = d.decodeString(name, input, outVal) - case reflect.Int: - err = d.decodeInt(name, input, outVal) - case reflect.Uint: - err = d.decodeUint(name, input, outVal) - case reflect.Float32: - err = d.decodeFloat(name, input, outVal) - case reflect.Struct: - err = d.decodeStruct(name, input, outVal) - case reflect.Map: - err = d.decodeMap(name, input, outVal) - case reflect.Ptr: - addMetaKey, err = d.decodePtr(name, input, outVal) - case reflect.Slice: - err = d.decodeSlice(name, input, outVal) - case reflect.Array: - err = d.decodeArray(name, input, outVal) - case reflect.Func: - err = d.decodeFunc(name, input, outVal) - default: - // If we reached this point then we weren't able to decode it - return fmt.Errorf("%s: unsupported type: %s", name, outputKind) - } - - // If we reached here, then we successfully decoded SOMETHING, so - // mark the key as used if we're tracking metainput. - if addMetaKey && d.config.Metadata != nil && name != "" { - d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) - } - - return err -} - -// This decodes a basic type (bool, int, string, etc.) and sets the -// value to "data" of that type. -func (d *Decoder) decodeBasic(name string, data interface{}, val reflect.Value) error { - if val.IsValid() && val.Elem().IsValid() { - elem := val.Elem() - - // If we can't address this element, then its not writable. Instead, - // we make a copy of the value (which is a pointer and therefore - // writable), decode into that, and replace the whole value. - copied := false - if !elem.CanAddr() { - copied = true - - // Make *T - copy := reflect.New(elem.Type()) - - // *T = elem - copy.Elem().Set(elem) - - // Set elem so we decode into it - elem = copy - } - - // Decode. If we have an error then return. We also return right - // away if we're not a copy because that means we decoded directly. - if err := d.decode(name, data, elem); err != nil || !copied { - return err - } - - // If we're a copy, we need to set te final result - val.Set(elem.Elem()) - return nil - } - - dataVal := reflect.ValueOf(data) - - // If the input data is a pointer, and the assigned type is the dereference - // of that exact pointer, then indirect it so that we can assign it. - // Example: *string to string - if dataVal.Kind() == reflect.Ptr && dataVal.Type().Elem() == val.Type() { - dataVal = reflect.Indirect(dataVal) - } - - if !dataVal.IsValid() { - dataVal = reflect.Zero(val.Type()) - } - - dataValType := dataVal.Type() - if !dataValType.AssignableTo(val.Type()) { - return fmt.Errorf( - "'%s' expected type '%s', got '%s'", - name, val.Type(), dataValType) - } - - val.Set(dataVal) - return nil -} - -func (d *Decoder) decodeString(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataKind := getKind(dataVal) - - converted := true - switch { - case dataKind == reflect.String: - val.SetString(dataVal.String()) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetString("1") - } else { - val.SetString("0") - } - case dataKind == reflect.Int && d.config.WeaklyTypedInput: - val.SetString(strconv.FormatInt(dataVal.Int(), 10)) - case dataKind == reflect.Uint && d.config.WeaklyTypedInput: - val.SetString(strconv.FormatUint(dataVal.Uint(), 10)) - case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: - val.SetString(strconv.FormatFloat(dataVal.Float(), 'f', -1, 64)) - case dataKind == reflect.Slice && d.config.WeaklyTypedInput, - dataKind == reflect.Array && d.config.WeaklyTypedInput: - dataType := dataVal.Type() - elemKind := dataType.Elem().Kind() - switch elemKind { - case reflect.Uint8: - var uints []uint8 - if dataKind == reflect.Array { - uints = make([]uint8, dataVal.Len(), dataVal.Len()) - for i := range uints { - uints[i] = dataVal.Index(i).Interface().(uint8) - } - } else { - uints = dataVal.Interface().([]uint8) - } - val.SetString(string(uints)) - default: - converted = false - } - default: - converted = false - } - - if !converted { - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", - name, val.Type(), dataVal.Type(), data) - } - - return nil -} - -func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataKind := getKind(dataVal) - dataType := dataVal.Type() - - switch { - case dataKind == reflect.Int: - val.SetInt(dataVal.Int()) - case dataKind == reflect.Uint: - val.SetInt(int64(dataVal.Uint())) - case dataKind == reflect.Float32: - val.SetInt(int64(dataVal.Float())) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetInt(1) - } else { - val.SetInt(0) - } - case dataKind == reflect.String && d.config.WeaklyTypedInput: - str := dataVal.String() - if str == "" { - str = "0" - } - - i, err := strconv.ParseInt(str, 0, val.Type().Bits()) - if err == nil { - val.SetInt(i) - } else { - return fmt.Errorf("cannot parse '%s' as int: %s", name, err) - } - case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": - jn := data.(json.Number) - i, err := jn.Int64() - if err != nil { - return fmt.Errorf( - "error decoding json.Number into %s: %s", name, err) - } - val.SetInt(i) - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", - name, val.Type(), dataVal.Type(), data) - } - - return nil -} - -func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataKind := getKind(dataVal) - dataType := dataVal.Type() - - switch { - case dataKind == reflect.Int: - i := dataVal.Int() - if i < 0 && !d.config.WeaklyTypedInput { - return fmt.Errorf("cannot parse '%s', %d overflows uint", - name, i) - } - val.SetUint(uint64(i)) - case dataKind == reflect.Uint: - val.SetUint(dataVal.Uint()) - case dataKind == reflect.Float32: - f := dataVal.Float() - if f < 0 && !d.config.WeaklyTypedInput { - return fmt.Errorf("cannot parse '%s', %f overflows uint", - name, f) - } - val.SetUint(uint64(f)) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetUint(1) - } else { - val.SetUint(0) - } - case dataKind == reflect.String && d.config.WeaklyTypedInput: - str := dataVal.String() - if str == "" { - str = "0" - } - - i, err := strconv.ParseUint(str, 0, val.Type().Bits()) - if err == nil { - val.SetUint(i) - } else { - return fmt.Errorf("cannot parse '%s' as uint: %s", name, err) - } - case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": - jn := data.(json.Number) - i, err := strconv.ParseUint(string(jn), 0, 64) - if err != nil { - return fmt.Errorf( - "error decoding json.Number into %s: %s", name, err) - } - val.SetUint(i) - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", - name, val.Type(), dataVal.Type(), data) - } - - return nil -} - -func (d *Decoder) decodeBool(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataKind := getKind(dataVal) - - switch { - case dataKind == reflect.Bool: - val.SetBool(dataVal.Bool()) - case dataKind == reflect.Int && d.config.WeaklyTypedInput: - val.SetBool(dataVal.Int() != 0) - case dataKind == reflect.Uint && d.config.WeaklyTypedInput: - val.SetBool(dataVal.Uint() != 0) - case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: - val.SetBool(dataVal.Float() != 0) - case dataKind == reflect.String && d.config.WeaklyTypedInput: - b, err := strconv.ParseBool(dataVal.String()) - if err == nil { - val.SetBool(b) - } else if dataVal.String() == "" { - val.SetBool(false) - } else { - return fmt.Errorf("cannot parse '%s' as bool: %s", name, err) - } - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", - name, val.Type(), dataVal.Type(), data) - } - - return nil -} - -func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataKind := getKind(dataVal) - dataType := dataVal.Type() - - switch { - case dataKind == reflect.Int: - val.SetFloat(float64(dataVal.Int())) - case dataKind == reflect.Uint: - val.SetFloat(float64(dataVal.Uint())) - case dataKind == reflect.Float32: - val.SetFloat(dataVal.Float()) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetFloat(1) - } else { - val.SetFloat(0) - } - case dataKind == reflect.String && d.config.WeaklyTypedInput: - str := dataVal.String() - if str == "" { - str = "0" - } - - f, err := strconv.ParseFloat(str, val.Type().Bits()) - if err == nil { - val.SetFloat(f) - } else { - return fmt.Errorf("cannot parse '%s' as float: %s", name, err) - } - case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": - jn := data.(json.Number) - i, err := jn.Float64() - if err != nil { - return fmt.Errorf( - "error decoding json.Number into %s: %s", name, err) - } - val.SetFloat(i) - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", - name, val.Type(), dataVal.Type(), data) - } - - return nil -} - -func (d *Decoder) decodeMap(name string, data interface{}, val reflect.Value) error { - valType := val.Type() - valKeyType := valType.Key() - valElemType := valType.Elem() - - // By default we overwrite keys in the current map - valMap := val - - // If the map is nil or we're purposely zeroing fields, make a new map - if valMap.IsNil() || d.config.ZeroFields { - // Make a new map to hold our result - mapType := reflect.MapOf(valKeyType, valElemType) - valMap = reflect.MakeMap(mapType) - } - - // Check input type and based on the input type jump to the proper func - dataVal := reflect.Indirect(reflect.ValueOf(data)) - switch dataVal.Kind() { - case reflect.Map: - return d.decodeMapFromMap(name, dataVal, val, valMap) - - case reflect.Struct: - return d.decodeMapFromStruct(name, dataVal, val, valMap) - - case reflect.Array, reflect.Slice: - if d.config.WeaklyTypedInput { - return d.decodeMapFromSlice(name, dataVal, val, valMap) - } - - fallthrough - - default: - return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) - } -} - -func (d *Decoder) decodeMapFromSlice(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { - // Special case for BC reasons (covered by tests) - if dataVal.Len() == 0 { - val.Set(valMap) - return nil - } - - for i := 0; i < dataVal.Len(); i++ { - err := d.decode( - name+"["+strconv.Itoa(i)+"]", - dataVal.Index(i).Interface(), val) - if err != nil { - return err - } - } - - return nil -} - -func (d *Decoder) decodeMapFromMap(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { - valType := val.Type() - valKeyType := valType.Key() - valElemType := valType.Elem() - - // Accumulate errors - errors := make([]string, 0) - - // If the input data is empty, then we just match what the input data is. - if dataVal.Len() == 0 { - if dataVal.IsNil() { - if !val.IsNil() { - val.Set(dataVal) - } - } else { - // Set to empty allocated value - val.Set(valMap) - } - - return nil - } - - for _, k := range dataVal.MapKeys() { - fieldName := name + "[" + k.String() + "]" - - // First decode the key into the proper type - currentKey := reflect.Indirect(reflect.New(valKeyType)) - if err := d.decode(fieldName, k.Interface(), currentKey); err != nil { - errors = appendErrors(errors, err) - continue - } - - // Next decode the data into the proper type - v := dataVal.MapIndex(k).Interface() - currentVal := reflect.Indirect(reflect.New(valElemType)) - if err := d.decode(fieldName, v, currentVal); err != nil { - errors = appendErrors(errors, err) - continue - } - - valMap.SetMapIndex(currentKey, currentVal) - } - - // Set the built up map to the value - val.Set(valMap) - - // If we had errors, return those - if len(errors) > 0 { - return &Error{errors} - } - - return nil -} - -func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { - typ := dataVal.Type() - for i := 0; i < typ.NumField(); i++ { - // Get the StructField first since this is a cheap operation. If the - // field is unexported, then ignore it. - f := typ.Field(i) - if f.PkgPath != "" { - continue - } - - // Next get the actual value of this field and verify it is assignable - // to the map value. - v := dataVal.Field(i) - if !v.Type().AssignableTo(valMap.Type().Elem()) { - return fmt.Errorf("cannot assign type '%s' to map value field of type '%s'", v.Type(), valMap.Type().Elem()) - } - - tagValue := f.Tag.Get(d.config.TagName) - keyName := f.Name - - if tagValue == "" && d.config.IgnoreUntaggedFields { - continue - } - - // If Squash is set in the config, we squash the field down. - squash := d.config.Squash && v.Kind() == reflect.Struct && f.Anonymous - - v = dereferencePtrToStructIfNeeded(v, d.config.TagName) - - // Determine the name of the key in the map - if index := strings.Index(tagValue, ","); index != -1 { - if tagValue[:index] == "-" { - continue - } - // If "omitempty" is specified in the tag, it ignores empty values. - if strings.Index(tagValue[index+1:], "omitempty") != -1 && isEmptyValue(v) { - continue - } - - // If "squash" is specified in the tag, we squash the field down. - squash = squash || strings.Index(tagValue[index+1:], "squash") != -1 - if squash { - // When squashing, the embedded type can be a pointer to a struct. - if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.Struct { - v = v.Elem() - } - - // The final type must be a struct - if v.Kind() != reflect.Struct { - return fmt.Errorf("cannot squash non-struct type '%s'", v.Type()) - } - } - if keyNameTagValue := tagValue[:index]; keyNameTagValue != "" { - keyName = keyNameTagValue - } - } else if len(tagValue) > 0 { - if tagValue == "-" { - continue - } - keyName = tagValue - } - - switch v.Kind() { - // this is an embedded struct, so handle it differently - case reflect.Struct: - x := reflect.New(v.Type()) - x.Elem().Set(v) - - vType := valMap.Type() - vKeyType := vType.Key() - vElemType := vType.Elem() - mType := reflect.MapOf(vKeyType, vElemType) - vMap := reflect.MakeMap(mType) - - // Creating a pointer to a map so that other methods can completely - // overwrite the map if need be (looking at you decodeMapFromMap). The - // indirection allows the underlying map to be settable (CanSet() == true) - // where as reflect.MakeMap returns an unsettable map. - addrVal := reflect.New(vMap.Type()) - reflect.Indirect(addrVal).Set(vMap) - - err := d.decode(keyName, x.Interface(), reflect.Indirect(addrVal)) - if err != nil { - return err - } - - // the underlying map may have been completely overwritten so pull - // it indirectly out of the enclosing value. - vMap = reflect.Indirect(addrVal) - - if squash { - for _, k := range vMap.MapKeys() { - valMap.SetMapIndex(k, vMap.MapIndex(k)) - } - } else { - valMap.SetMapIndex(reflect.ValueOf(keyName), vMap) - } - - default: - valMap.SetMapIndex(reflect.ValueOf(keyName), v) - } - } - - if val.CanAddr() { - val.Set(valMap) - } - - return nil -} - -func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) (bool, error) { - // If the input data is nil, then we want to just set the output - // pointer to be nil as well. - isNil := data == nil - if !isNil { - switch v := reflect.Indirect(reflect.ValueOf(data)); v.Kind() { - case reflect.Chan, - reflect.Func, - reflect.Interface, - reflect.Map, - reflect.Ptr, - reflect.Slice: - isNil = v.IsNil() - } - } - if isNil { - if !val.IsNil() && val.CanSet() { - nilValue := reflect.New(val.Type()).Elem() - val.Set(nilValue) - } - - return true, nil - } - - // Create an element of the concrete (non pointer) type and decode - // into that. Then set the value of the pointer to this type. - valType := val.Type() - valElemType := valType.Elem() - if val.CanSet() { - realVal := val - if realVal.IsNil() || d.config.ZeroFields { - realVal = reflect.New(valElemType) - } - - if err := d.decode(name, data, reflect.Indirect(realVal)); err != nil { - return false, err - } - - val.Set(realVal) - } else { - if err := d.decode(name, data, reflect.Indirect(val)); err != nil { - return false, err - } - } - return false, nil -} - -func (d *Decoder) decodeFunc(name string, data interface{}, val reflect.Value) error { - // Create an element of the concrete (non pointer) type and decode - // into that. Then set the value of the pointer to this type. - dataVal := reflect.Indirect(reflect.ValueOf(data)) - if val.Type() != dataVal.Type() { - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", - name, val.Type(), dataVal.Type(), data) - } - val.Set(dataVal) - return nil -} - -func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataValKind := dataVal.Kind() - valType := val.Type() - valElemType := valType.Elem() - sliceType := reflect.SliceOf(valElemType) - - // If we have a non array/slice type then we first attempt to convert. - if dataValKind != reflect.Array && dataValKind != reflect.Slice { - if d.config.WeaklyTypedInput { - switch { - // Slice and array we use the normal logic - case dataValKind == reflect.Slice, dataValKind == reflect.Array: - break - - // Empty maps turn into empty slices - case dataValKind == reflect.Map: - if dataVal.Len() == 0 { - val.Set(reflect.MakeSlice(sliceType, 0, 0)) - return nil - } - // Create slice of maps of other sizes - return d.decodeSlice(name, []interface{}{data}, val) - - case dataValKind == reflect.String && valElemType.Kind() == reflect.Uint8: - return d.decodeSlice(name, []byte(dataVal.String()), val) - - // All other types we try to convert to the slice type - // and "lift" it into it. i.e. a string becomes a string slice. - default: - // Just re-try this function with data as a slice. - return d.decodeSlice(name, []interface{}{data}, val) - } - } - - return fmt.Errorf( - "'%s': source data must be an array or slice, got %s", name, dataValKind) - } - - // If the input value is nil, then don't allocate since empty != nil - if dataValKind != reflect.Array && dataVal.IsNil() { - return nil - } - - valSlice := val - if valSlice.IsNil() || d.config.ZeroFields { - // Make a new slice to hold our result, same size as the original data. - valSlice = reflect.MakeSlice(sliceType, dataVal.Len(), dataVal.Len()) - } - - // Accumulate any errors - errors := make([]string, 0) - - for i := 0; i < dataVal.Len(); i++ { - currentData := dataVal.Index(i).Interface() - for valSlice.Len() <= i { - valSlice = reflect.Append(valSlice, reflect.Zero(valElemType)) - } - currentField := valSlice.Index(i) - - fieldName := name + "[" + strconv.Itoa(i) + "]" - if err := d.decode(fieldName, currentData, currentField); err != nil { - errors = appendErrors(errors, err) - } - } - - // Finally, set the value to the slice we built up - val.Set(valSlice) - - // If there were errors, we return those - if len(errors) > 0 { - return &Error{errors} - } - - return nil -} - -func (d *Decoder) decodeArray(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataValKind := dataVal.Kind() - valType := val.Type() - valElemType := valType.Elem() - arrayType := reflect.ArrayOf(valType.Len(), valElemType) - - valArray := val - - if valArray.Interface() == reflect.Zero(valArray.Type()).Interface() || d.config.ZeroFields { - // Check input type - if dataValKind != reflect.Array && dataValKind != reflect.Slice { - if d.config.WeaklyTypedInput { - switch { - // Empty maps turn into empty arrays - case dataValKind == reflect.Map: - if dataVal.Len() == 0 { - val.Set(reflect.Zero(arrayType)) - return nil - } - - // All other types we try to convert to the array type - // and "lift" it into it. i.e. a string becomes a string array. - default: - // Just re-try this function with data as a slice. - return d.decodeArray(name, []interface{}{data}, val) - } - } - - return fmt.Errorf( - "'%s': source data must be an array or slice, got %s", name, dataValKind) - - } - if dataVal.Len() > arrayType.Len() { - return fmt.Errorf( - "'%s': expected source data to have length less or equal to %d, got %d", name, arrayType.Len(), dataVal.Len()) - - } - - // Make a new array to hold our result, same size as the original data. - valArray = reflect.New(arrayType).Elem() - } - - // Accumulate any errors - errors := make([]string, 0) - - for i := 0; i < dataVal.Len(); i++ { - currentData := dataVal.Index(i).Interface() - currentField := valArray.Index(i) - - fieldName := name + "[" + strconv.Itoa(i) + "]" - if err := d.decode(fieldName, currentData, currentField); err != nil { - errors = appendErrors(errors, err) - } - } - - // Finally, set the value to the array we built up - val.Set(valArray) - - // If there were errors, we return those - if len(errors) > 0 { - return &Error{errors} - } - - return nil -} - -func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - - // If the type of the value to write to and the data match directly, - // then we just set it directly instead of recursing into the structure. - if dataVal.Type() == val.Type() { - val.Set(dataVal) - return nil - } - - dataValKind := dataVal.Kind() - switch dataValKind { - case reflect.Map: - return d.decodeStructFromMap(name, dataVal, val) - - case reflect.Struct: - // Not the most efficient way to do this but we can optimize later if - // we want to. To convert from struct to struct we go to map first - // as an intermediary. - - // Make a new map to hold our result - mapType := reflect.TypeOf((map[string]interface{})(nil)) - mval := reflect.MakeMap(mapType) - - // Creating a pointer to a map so that other methods can completely - // overwrite the map if need be (looking at you decodeMapFromMap). The - // indirection allows the underlying map to be settable (CanSet() == true) - // where as reflect.MakeMap returns an unsettable map. - addrVal := reflect.New(mval.Type()) - - reflect.Indirect(addrVal).Set(mval) - if err := d.decodeMapFromStruct(name, dataVal, reflect.Indirect(addrVal), mval); err != nil { - return err - } - - result := d.decodeStructFromMap(name, reflect.Indirect(addrVal), val) - return result - - default: - return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) - } -} - -func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) error { - dataValType := dataVal.Type() - if kind := dataValType.Key().Kind(); kind != reflect.String && kind != reflect.Interface { - return fmt.Errorf( - "'%s' needs a map with string keys, has '%s' keys", - name, dataValType.Key().Kind()) - } - - dataValKeys := make(map[reflect.Value]struct{}) - dataValKeysUnused := make(map[interface{}]struct{}) - for _, dataValKey := range dataVal.MapKeys() { - dataValKeys[dataValKey] = struct{}{} - dataValKeysUnused[dataValKey.Interface()] = struct{}{} - } - - targetValKeysUnused := make(map[interface{}]struct{}) - errors := make([]string, 0) - - // This slice will keep track of all the structs we'll be decoding. - // There can be more than one struct if there are embedded structs - // that are squashed. - structs := make([]reflect.Value, 1, 5) - structs[0] = val - - // Compile the list of all the fields that we're going to be decoding - // from all the structs. - type field struct { - field reflect.StructField - val reflect.Value - } - - // remainField is set to a valid field set with the "remain" tag if - // we are keeping track of remaining values. - var remainField *field - - fields := []field{} - for len(structs) > 0 { - structVal := structs[0] - structs = structs[1:] - - structType := structVal.Type() - - for i := 0; i < structType.NumField(); i++ { - fieldType := structType.Field(i) - fieldVal := structVal.Field(i) - if fieldVal.Kind() == reflect.Ptr && fieldVal.Elem().Kind() == reflect.Struct { - // Handle embedded struct pointers as embedded structs. - fieldVal = fieldVal.Elem() - } - - // If "squash" is specified in the tag, we squash the field down. - squash := d.config.Squash && fieldVal.Kind() == reflect.Struct && fieldType.Anonymous - remain := false - - // We always parse the tags cause we're looking for other tags too - tagParts := strings.Split(fieldType.Tag.Get(d.config.TagName), ",") - for _, tag := range tagParts[1:] { - if tag == "squash" { - squash = true - break - } - - if tag == "remain" { - remain = true - break - } - } - - if squash { - if fieldVal.Kind() != reflect.Struct { - errors = appendErrors(errors, - fmt.Errorf("%s: unsupported type for squash: %s", fieldType.Name, fieldVal.Kind())) - } else { - structs = append(structs, fieldVal) - } - continue - } - - // Build our field - if remain { - remainField = &field{fieldType, fieldVal} - } else { - // Normal struct field, store it away - fields = append(fields, field{fieldType, fieldVal}) - } - } - } - - // for fieldType, field := range fields { - for _, f := range fields { - field, fieldValue := f.field, f.val - fieldName := field.Name - - tagValue := field.Tag.Get(d.config.TagName) - tagValue = strings.SplitN(tagValue, ",", 2)[0] - if tagValue != "" { - fieldName = tagValue - } - - rawMapKey := reflect.ValueOf(fieldName) - rawMapVal := dataVal.MapIndex(rawMapKey) - if !rawMapVal.IsValid() { - // Do a slower search by iterating over each key and - // doing case-insensitive search. - for dataValKey := range dataValKeys { - mK, ok := dataValKey.Interface().(string) - if !ok { - // Not a string key - continue - } - - if d.config.MatchName(mK, fieldName) { - rawMapKey = dataValKey - rawMapVal = dataVal.MapIndex(dataValKey) - break - } - } - - if !rawMapVal.IsValid() { - // There was no matching key in the map for the value in - // the struct. Remember it for potential errors and metadata. - targetValKeysUnused[fieldName] = struct{}{} - continue - } - } - - if !fieldValue.IsValid() { - // This should never happen - panic("field is not valid") - } - - // If we can't set the field, then it is unexported or something, - // and we just continue onwards. - if !fieldValue.CanSet() { - continue - } - - // Delete the key we're using from the unused map so we stop tracking - delete(dataValKeysUnused, rawMapKey.Interface()) - - // If the name is empty string, then we're at the root, and we - // don't dot-join the fields. - if name != "" { - fieldName = name + "." + fieldName - } - - if err := d.decode(fieldName, rawMapVal.Interface(), fieldValue); err != nil { - errors = appendErrors(errors, err) - } - } - - // If we have a "remain"-tagged field and we have unused keys then - // we put the unused keys directly into the remain field. - if remainField != nil && len(dataValKeysUnused) > 0 { - // Build a map of only the unused values - remain := map[interface{}]interface{}{} - for key := range dataValKeysUnused { - remain[key] = dataVal.MapIndex(reflect.ValueOf(key)).Interface() - } - - // Decode it as-if we were just decoding this map onto our map. - if err := d.decodeMap(name, remain, remainField.val); err != nil { - errors = appendErrors(errors, err) - } - - // Set the map to nil so we have none so that the next check will - // not error (ErrorUnused) - dataValKeysUnused = nil - } - - if d.config.ErrorUnused && len(dataValKeysUnused) > 0 { - keys := make([]string, 0, len(dataValKeysUnused)) - for rawKey := range dataValKeysUnused { - keys = append(keys, rawKey.(string)) - } - sort.Strings(keys) - - err := fmt.Errorf("'%s' has invalid keys: %s", name, strings.Join(keys, ", ")) - errors = appendErrors(errors, err) - } - - if d.config.ErrorUnset && len(targetValKeysUnused) > 0 { - keys := make([]string, 0, len(targetValKeysUnused)) - for rawKey := range targetValKeysUnused { - keys = append(keys, rawKey.(string)) - } - sort.Strings(keys) - - err := fmt.Errorf("'%s' has unset fields: %s", name, strings.Join(keys, ", ")) - errors = appendErrors(errors, err) - } - - if len(errors) > 0 { - return &Error{errors} - } - - // Add the unused keys to the list of unused keys if we're tracking metadata - if d.config.Metadata != nil { - for rawKey := range dataValKeysUnused { - key := rawKey.(string) - if name != "" { - key = name + "." + key - } - - d.config.Metadata.Unused = append(d.config.Metadata.Unused, key) - } - for rawKey := range targetValKeysUnused { - key := rawKey.(string) - if name != "" { - key = name + "." + key - } - - d.config.Metadata.Unset = append(d.config.Metadata.Unset, key) - } - } - - return nil -} - -func isEmptyValue(v reflect.Value) bool { - switch getKind(v) { - case reflect.Array, reflect.Map, reflect.Slice, reflect.String: - return v.Len() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - } - return false -} - -func getKind(val reflect.Value) reflect.Kind { - kind := val.Kind() - - switch { - case kind >= reflect.Int && kind <= reflect.Int64: - return reflect.Int - case kind >= reflect.Uint && kind <= reflect.Uint64: - return reflect.Uint - case kind >= reflect.Float32 && kind <= reflect.Float64: - return reflect.Float32 - default: - return kind - } -} - -func isStructTypeConvertibleToMap(typ reflect.Type, checkMapstructureTags bool, tagName string) bool { - for i := 0; i < typ.NumField(); i++ { - f := typ.Field(i) - if f.PkgPath == "" && !checkMapstructureTags { // check for unexported fields - return true - } - if checkMapstructureTags && f.Tag.Get(tagName) != "" { // check for mapstructure tags inside - return true - } - } - return false -} - -func dereferencePtrToStructIfNeeded(v reflect.Value, tagName string) reflect.Value { - if v.Kind() != reflect.Ptr || v.Elem().Kind() != reflect.Struct { - return v - } - deref := v.Elem() - derefT := deref.Type() - if isStructTypeConvertibleToMap(derefT, true, tagName) { - return deref - } - return v -} diff --git a/backend/vendor/github.com/nwaples/rardecode/LICENSE b/backend/vendor/github.com/nwaples/rardecode/LICENSE deleted file mode 100644 index 0050f92d..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Nicholas Waples -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/nwaples/rardecode/README.md b/backend/vendor/github.com/nwaples/rardecode/README.md deleted file mode 100644 index 513464c2..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# rardecode -[![GoDoc](https://godoc.org/github.com/nwaples/rardecode?status.svg)](https://godoc.org/github.com/nwaples/rardecode) - -A go package for reading RAR archives. diff --git a/backend/vendor/github.com/nwaples/rardecode/archive.go b/backend/vendor/github.com/nwaples/rardecode/archive.go deleted file mode 100644 index f8787511..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/archive.go +++ /dev/null @@ -1,309 +0,0 @@ -package rardecode - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "os" - "path/filepath" - "regexp" - "strconv" - "strings" -) - -const ( - maxSfxSize = 0x100000 // maximum number of bytes to read when searching for RAR signature - sigPrefix = "Rar!\x1A\x07" - - fileFmt15 = iota + 1 // Version 1.5 archive file format - fileFmt50 // Version 5.0 archive file format -) - -var ( - errNoSig = errors.New("rardecode: RAR signature not found") - errVerMismatch = errors.New("rardecode: volume version mistmatch") - errCorruptHeader = errors.New("rardecode: corrupt block header") - errCorruptFileHeader = errors.New("rardecode: corrupt file header") - errBadHeaderCrc = errors.New("rardecode: bad header crc") - errUnknownArc = errors.New("rardecode: unknown archive version") - errUnknownDecoder = errors.New("rardecode: unknown decoder version") - errUnsupportedDecoder = errors.New("rardecode: unsupported decoder version") - errArchiveContinues = errors.New("rardecode: archive continues in next volume") - errArchiveEnd = errors.New("rardecode: archive end reached") - errDecoderOutOfData = errors.New("rardecode: decoder expected more data than is in packed file") - - reDigits = regexp.MustCompile(`\d+`) -) - -type readBuf []byte - -func (b *readBuf) byte() byte { - v := (*b)[0] - *b = (*b)[1:] - return v -} - -func (b *readBuf) uint16() uint16 { - v := uint16((*b)[0]) | uint16((*b)[1])<<8 - *b = (*b)[2:] - return v -} - -func (b *readBuf) uint32() uint32 { - v := uint32((*b)[0]) | uint32((*b)[1])<<8 | uint32((*b)[2])<<16 | uint32((*b)[3])<<24 - *b = (*b)[4:] - return v -} - -func (b *readBuf) bytes(n int) []byte { - v := (*b)[:n] - *b = (*b)[n:] - return v -} - -func (b *readBuf) uvarint() uint64 { - var x uint64 - var s uint - for i, n := range *b { - if n < 0x80 { - *b = (*b)[i+1:] - return x | uint64(n)< '9' || v.file[i+3] < '0' || v.file[i+3] > '9') { - v.file = v.file[:i+2] + "00" - return - } - } - // new style volume naming - if !v.old { - // find all numbers in volume name - m := reDigits.FindAllStringIndex(v.file, -1) - if l := len(m); l > 1 { - // More than 1 match so assume name.part###of###.rar style. - // Take the last 2 matches where the first is the volume number. - m = m[l-2 : l] - if strings.Contains(v.file[m[0][1]:m[1][0]], ".") || !strings.Contains(v.file[:m[0][0]], ".") { - // Didn't match above style as volume had '.' between the two numbers or didnt have a '.' - // before the first match. Use the second number as volume number. - m = m[1:] - } - } - // extract and increment volume number - lo, hi := m[0][0], m[0][1] - n, err := strconv.Atoi(v.file[lo:hi]) - if err != nil { - n = 0 - } else { - n++ - } - // volume number must use at least the same number of characters as previous volume - vol := fmt.Sprintf("%0"+fmt.Sprint(hi-lo)+"d", n) - v.file = v.file[:lo] + vol + v.file[hi:] - return - } - // old style volume naming - i := strings.LastIndex(v.file, ".") - // get file extension - b := []byte(v.file[i+1:]) - // start incrementing volume number digits from rightmost - for j := 2; j >= 0; j-- { - if b[j] != '9' { - b[j]++ - break - } - // digit overflow - if j == 0 { - // last character before '.' - b[j] = 'A' - } else { - // set to '0' and loop to next character - b[j] = '0' - } - } - v.file = v.file[:i+1] + string(b) -} - -func (v *volume) next() (*fileBlockHeader, error) { - for { - var atEOF bool - - h, err := v.fileBlockReader.next() - switch err { - case errArchiveContinues: - case io.EOF: - // Read all of volume without finding an end block. The only way - // to tell if the archive continues is to try to open the next volume. - atEOF = true - default: - return h, err - } - - v.f.Close() - v.nextVolName() - v.f, err = os.Open(v.dir + v.file) // Open next volume file - if err != nil { - if atEOF && os.IsNotExist(err) { - // volume not found so assume that the archive has ended - return nil, io.EOF - } - return nil, err - } - v.num++ - v.br.Reset(v.f) - ver, err := findSig(v.br) - if err != nil { - return nil, err - } - if v.version() != ver { - return nil, errVerMismatch - } - v.files = append(v.files, v.dir+v.file) - v.reset() // reset encryption - } -} - -func (v *volume) Close() error { - // may be nil if os.Open fails in next() - if v.f == nil { - return nil - } - return v.f.Close() -} - -func openVolume(name, password string) (*volume, error) { - var err error - v := new(volume) - v.dir, v.file = filepath.Split(name) - v.f, err = os.Open(name) - if err != nil { - return nil, err - } - v.br = bufio.NewReader(v.f) - v.fileBlockReader, err = newFileBlockReader(v.br, password) - if err != nil { - v.f.Close() - return nil, err - } - v.files = append(v.files, name) - return v, nil -} - -func newFileBlockReader(br *bufio.Reader, pass string) (fileBlockReader, error) { - runes := []rune(pass) - if len(runes) > maxPassword { - pass = string(runes[:maxPassword]) - } - ver, err := findSig(br) - if err != nil { - return nil, err - } - switch ver { - case fileFmt15: - return newArchive15(br, pass), nil - case fileFmt50: - return newArchive50(br, pass), nil - } - return nil, errUnknownArc -} diff --git a/backend/vendor/github.com/nwaples/rardecode/archive15.go b/backend/vendor/github.com/nwaples/rardecode/archive15.go deleted file mode 100644 index 260176c0..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/archive15.go +++ /dev/null @@ -1,468 +0,0 @@ -package rardecode - -import ( - "bufio" - "bytes" - "crypto/sha1" - "errors" - "hash" - "hash/crc32" - "io" - "io/ioutil" - "strconv" - "strings" - "time" - "unicode/utf16" -) - -const ( - // block types - blockArc = 0x73 - blockFile = 0x74 - blockService = 0x7a - blockEnd = 0x7b - - // block flags - blockHasData = 0x8000 - - // archive block flags - arcVolume = 0x0001 - arcSolid = 0x0008 - arcNewNaming = 0x0010 - arcEncrypted = 0x0080 - - // file block flags - fileSplitBefore = 0x0001 - fileSplitAfter = 0x0002 - fileEncrypted = 0x0004 - fileSolid = 0x0010 - fileWindowMask = 0x00e0 - fileLargeData = 0x0100 - fileUnicode = 0x0200 - fileSalt = 0x0400 - fileVersion = 0x0800 - fileExtTime = 0x1000 - - // end block flags - endArcNotLast = 0x0001 - - saltSize = 8 // size of salt for calculating AES keys - cacheSize30 = 4 // number of AES keys to cache - hashRounds = 0x40000 -) - -var ( - errMultipleDecoders = errors.New("rardecode: multiple decoders in a single archive not supported") -) - -type blockHeader15 struct { - htype byte // block header type - flags uint16 - data readBuf // header data - dataSize int64 // size of extra block data -} - -// fileHash32 implements fileChecksum for 32-bit hashes -type fileHash32 struct { - hash.Hash32 // hash to write file contents to - sum uint32 // 32bit checksum for file -} - -func (h *fileHash32) valid() bool { - return h.sum == h.Sum32() -} - -// archive15 implements fileBlockReader for RAR 1.5 file format archives -type archive15 struct { - byteReader // reader for current block data - v *bufio.Reader // reader for current archive volume - dec decoder // current decoder - decVer byte // current decoder version - multi bool // archive is multi-volume - old bool // archive uses old naming scheme - solid bool // archive is a solid archive - encrypted bool - pass []uint16 // password in UTF-16 - checksum fileHash32 // file checksum - buf readBuf // temporary buffer - keyCache [cacheSize30]struct { // cache of previously calculated decryption keys - salt []byte - key []byte - iv []byte - } -} - -// Calculates the key and iv for AES decryption given a password and salt. -func calcAes30Params(pass []uint16, salt []byte) (key, iv []byte) { - p := make([]byte, 0, len(pass)*2+len(salt)) - for _, v := range pass { - p = append(p, byte(v), byte(v>>8)) - } - p = append(p, salt...) - - hash := sha1.New() - iv = make([]byte, 16) - s := make([]byte, 0, hash.Size()) - for i := 0; i < hashRounds; i++ { - hash.Write(p) - hash.Write([]byte{byte(i), byte(i >> 8), byte(i >> 16)}) - if i%(hashRounds/16) == 0 { - s = hash.Sum(s[:0]) - iv[i/(hashRounds/16)] = s[4*4+3] - } - } - key = hash.Sum(s[:0]) - key = key[:16] - - for k := key; len(k) >= 4; k = k[4:] { - k[0], k[1], k[2], k[3] = k[3], k[2], k[1], k[0] - } - return key, iv -} - -// parseDosTime converts a 32bit DOS time value to time.Time -func parseDosTime(t uint32) time.Time { - n := int(t) - sec := n & 0x1f << 1 - min := n >> 5 & 0x3f - hr := n >> 11 & 0x1f - day := n >> 16 & 0x1f - mon := time.Month(n >> 21 & 0x0f) - yr := n>>25&0x7f + 1980 - return time.Date(yr, mon, day, hr, min, sec, 0, time.Local) -} - -// decodeName decodes a non-unicode filename from a file header. -func decodeName(buf []byte) string { - i := bytes.IndexByte(buf, 0) - if i < 0 { - return string(buf) // filename is UTF-8 - } - - name := buf[:i] - encName := readBuf(buf[i+1:]) - if len(encName) < 2 { - return "" // invalid encoding - } - highByte := uint16(encName.byte()) << 8 - flags := encName.byte() - flagBits := 8 - var wchars []uint16 // decoded characters are UTF-16 - for len(wchars) < len(name) && len(encName) > 0 { - if flagBits == 0 { - flags = encName.byte() - flagBits = 8 - if len(encName) == 0 { - break - } - } - switch flags >> 6 { - case 0: - wchars = append(wchars, uint16(encName.byte())) - case 1: - wchars = append(wchars, uint16(encName.byte())|highByte) - case 2: - if len(encName) < 2 { - break - } - wchars = append(wchars, encName.uint16()) - case 3: - n := encName.byte() - b := name[len(wchars):] - if l := int(n&0x7f) + 2; l < len(b) { - b = b[:l] - } - if n&0x80 > 0 { - if len(encName) < 1 { - break - } - ec := encName.byte() - for _, c := range b { - wchars = append(wchars, uint16(c+ec)|highByte) - } - } else { - for _, c := range b { - wchars = append(wchars, uint16(c)) - } - } - } - flags <<= 2 - flagBits -= 2 - } - return string(utf16.Decode(wchars)) -} - -// readExtTimes reads and parses the optional extra time field from the file header. -func readExtTimes(f *fileBlockHeader, b *readBuf) { - if len(*b) < 2 { - return // invalid, not enough data - } - flags := b.uint16() - - ts := []*time.Time{&f.ModificationTime, &f.CreationTime, &f.AccessTime} - - for i, t := range ts { - n := flags >> uint((3-i)*4) - if n&0x8 == 0 { - continue - } - if i != 0 { // ModificationTime already read so skip - if len(*b) < 4 { - return // invalid, not enough data - } - *t = parseDosTime(b.uint32()) - } - if n&0x4 > 0 { - *t = t.Add(time.Second) - } - n &= 0x3 - if n == 0 { - continue - } - if len(*b) < int(n) { - return // invalid, not enough data - } - // add extra time data in 100's of nanoseconds - d := time.Duration(0) - for j := 3 - n; j < n; j++ { - d |= time.Duration(b.byte()) << (j * 8) - } - d *= 100 - *t = t.Add(d) - } -} - -func (a *archive15) getKeys(salt []byte) (key, iv []byte) { - // check cache of keys - for _, v := range a.keyCache { - if bytes.Equal(v.salt[:], salt) { - return v.key, v.iv - } - } - key, iv = calcAes30Params(a.pass, salt) - - // save a copy in the cache - copy(a.keyCache[1:], a.keyCache[:]) - a.keyCache[0].salt = append([]byte(nil), salt...) // copy so byte slice can be reused - a.keyCache[0].key = key - a.keyCache[0].iv = iv - - return key, iv -} - -func (a *archive15) parseFileHeader(h *blockHeader15) (*fileBlockHeader, error) { - f := new(fileBlockHeader) - - f.first = h.flags&fileSplitBefore == 0 - f.last = h.flags&fileSplitAfter == 0 - - f.solid = h.flags&fileSolid > 0 - f.IsDir = h.flags&fileWindowMask == fileWindowMask - if !f.IsDir { - f.winSize = uint(h.flags&fileWindowMask)>>5 + 16 - } - - b := h.data - if len(b) < 21 { - return nil, errCorruptFileHeader - } - - f.PackedSize = h.dataSize - f.UnPackedSize = int64(b.uint32()) - f.HostOS = b.byte() + 1 - if f.HostOS > HostOSBeOS { - f.HostOS = HostOSUnknown - } - a.checksum.sum = b.uint32() - - f.ModificationTime = parseDosTime(b.uint32()) - unpackver := b.byte() // decoder version - method := b.byte() - 0x30 // decryption method - namesize := int(b.uint16()) - f.Attributes = int64(b.uint32()) - if h.flags&fileLargeData > 0 { - if len(b) < 8 { - return nil, errCorruptFileHeader - } - _ = b.uint32() // already read large PackedSize in readBlockHeader - f.UnPackedSize |= int64(b.uint32()) << 32 - f.UnKnownSize = f.UnPackedSize == -1 - } else if int32(f.UnPackedSize) == -1 { - f.UnKnownSize = true - f.UnPackedSize = -1 - } - if len(b) < namesize { - return nil, errCorruptFileHeader - } - name := b.bytes(namesize) - if h.flags&fileUnicode == 0 { - f.Name = string(name) - } else { - f.Name = decodeName(name) - } - // Rar 4.x uses '\' as file separator - f.Name = strings.Replace(f.Name, "\\", "/", -1) - - if h.flags&fileVersion > 0 { - // file version is stored as ';n' appended to file name - i := strings.LastIndex(f.Name, ";") - if i > 0 { - j, err := strconv.Atoi(f.Name[i+1:]) - if err == nil && j >= 0 { - f.Version = j - f.Name = f.Name[:i] - } - } - } - - var salt []byte - if h.flags&fileSalt > 0 { - if len(b) < saltSize { - return nil, errCorruptFileHeader - } - salt = b.bytes(saltSize) - } - if h.flags&fileExtTime > 0 { - readExtTimes(f, &b) - } - - if !f.first { - return f, nil - } - // fields only needed for first block in a file - if h.flags&fileEncrypted > 0 && len(salt) == saltSize { - f.key, f.iv = a.getKeys(salt) - } - a.checksum.Reset() - f.cksum = &a.checksum - if method == 0 { - return f, nil - } - if a.dec == nil { - switch unpackver { - case 15, 20, 26: - return nil, errUnsupportedDecoder - case 29: - a.dec = new(decoder29) - default: - return nil, errUnknownDecoder - } - a.decVer = unpackver - } else if a.decVer != unpackver { - return nil, errMultipleDecoders - } - f.decoder = a.dec - return f, nil -} - -// readBlockHeader returns the next block header in the archive. -// It will return io.EOF if there were no bytes read. -func (a *archive15) readBlockHeader() (*blockHeader15, error) { - var err error - b := a.buf[:7] - r := io.Reader(a.v) - if a.encrypted { - salt := a.buf[:saltSize] - _, err = io.ReadFull(r, salt) - if err != nil { - return nil, err - } - key, iv := a.getKeys(salt) - r = newAesDecryptReader(r, key, iv) - err = readFull(r, b) - } else { - _, err = io.ReadFull(r, b) - } - if err != nil { - return nil, err - } - - crc := b.uint16() - hash := crc32.NewIEEE() - hash.Write(b) - h := new(blockHeader15) - h.htype = b.byte() - h.flags = b.uint16() - size := b.uint16() - if size < 7 { - return nil, errCorruptHeader - } - size -= 7 - if int(size) > cap(a.buf) { - a.buf = readBuf(make([]byte, size)) - } - h.data = a.buf[:size] - if err := readFull(r, h.data); err != nil { - return nil, err - } - hash.Write(h.data) - if crc != uint16(hash.Sum32()) { - return nil, errBadHeaderCrc - } - if h.flags&blockHasData > 0 { - if len(h.data) < 4 { - return nil, errCorruptHeader - } - h.dataSize = int64(h.data.uint32()) - } - if (h.htype == blockService || h.htype == blockFile) && h.flags&fileLargeData > 0 { - if len(h.data) < 25 { - return nil, errCorruptHeader - } - b := h.data[21:25] - h.dataSize |= int64(b.uint32()) << 32 - } - return h, nil -} - -// next advances to the next file block in the archive -func (a *archive15) next() (*fileBlockHeader, error) { - for { - // could return an io.EOF here as 1.5 archives may not have an end block. - h, err := a.readBlockHeader() - if err != nil { - return nil, err - } - a.byteReader = limitByteReader(a.v, h.dataSize) // reader for block data - - switch h.htype { - case blockFile: - return a.parseFileHeader(h) - case blockArc: - a.encrypted = h.flags&arcEncrypted > 0 - a.multi = h.flags&arcVolume > 0 - a.old = h.flags&arcNewNaming == 0 - a.solid = h.flags&arcSolid > 0 - case blockEnd: - if h.flags&endArcNotLast == 0 || !a.multi { - return nil, errArchiveEnd - } - return nil, errArchiveContinues - default: - _, err = io.Copy(ioutil.Discard, a.byteReader) - } - if err != nil { - return nil, err - } - } -} - -func (a *archive15) version() int { return fileFmt15 } - -func (a *archive15) reset() { - a.encrypted = false // reset encryption when opening new volume file -} - -func (a *archive15) isSolid() bool { - return a.solid -} - -// newArchive15 creates a new fileBlockReader for a Version 1.5 archive -func newArchive15(r *bufio.Reader, password string) fileBlockReader { - a := new(archive15) - a.v = r - a.pass = utf16.Encode([]rune(password)) // convert to UTF-16 - a.checksum.Hash32 = crc32.NewIEEE() - a.buf = readBuf(make([]byte, 100)) - return a -} diff --git a/backend/vendor/github.com/nwaples/rardecode/archive50.go b/backend/vendor/github.com/nwaples/rardecode/archive50.go deleted file mode 100644 index 1d8f850d..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/archive50.go +++ /dev/null @@ -1,475 +0,0 @@ -package rardecode - -import ( - "bufio" - "bytes" - "crypto/hmac" - "crypto/sha256" - "errors" - "hash" - "hash/crc32" - "io" - "io/ioutil" - "time" -) - -const ( - // block types - block5Arc = 1 - block5File = 2 - block5Service = 3 - block5Encrypt = 4 - block5End = 5 - - // block flags - block5HasExtra = 0x0001 - block5HasData = 0x0002 - block5DataNotFirst = 0x0008 - block5DataNotLast = 0x0010 - - // end block flags - endArc5NotLast = 0x0001 - - // archive encryption block flags - enc5CheckPresent = 0x0001 // password check data is present - - // main archive block flags - arc5MultiVol = 0x0001 - arc5Solid = 0x0004 - - // file block flags - file5IsDir = 0x0001 - file5HasUnixMtime = 0x0002 - file5HasCRC32 = 0x0004 - file5UnpSizeUnknown = 0x0008 - - // file encryption record flags - file5EncCheckPresent = 0x0001 // password check data is present - file5EncUseMac = 0x0002 // use MAC instead of plain checksum - - cacheSize50 = 4 - maxPbkdf2Salt = 64 - pwCheckSize = 8 - maxKdfCount = 24 - - minHeaderSize = 7 -) - -var ( - errBadPassword = errors.New("rardecode: incorrect password") - errCorruptEncrypt = errors.New("rardecode: corrupt encryption data") - errUnknownEncMethod = errors.New("rardecode: unknown encryption method") -) - -type extra struct { - ftype uint64 // field type - data readBuf // field data -} - -type blockHeader50 struct { - htype uint64 // block type - flags uint64 - data readBuf // block header data - extra []extra // extra fields - dataSize int64 // size of block data -} - -// leHash32 wraps a hash.Hash32 to return the result of Sum in little -// endian format. -type leHash32 struct { - hash.Hash32 -} - -func (h leHash32) Sum(b []byte) []byte { - s := h.Sum32() - return append(b, byte(s), byte(s>>8), byte(s>>16), byte(s>>24)) -} - -func newLittleEndianCRC32() hash.Hash32 { - return leHash32{crc32.NewIEEE()} -} - -// hash50 implements fileChecksum for RAR 5 archives -type hash50 struct { - hash.Hash // hash file data is written to - sum []byte // file checksum - key []byte // if present used with hmac in calculating checksum from hash -} - -func (h *hash50) valid() bool { - sum := h.Sum(nil) - if len(h.key) > 0 { - mac := hmac.New(sha256.New, h.key) - mac.Write(sum) - sum = mac.Sum(sum[:0]) - if len(h.sum) == 4 { - // CRC32 - for i, v := range sum[4:] { - sum[i&3] ^= v - } - sum = sum[:4] - } - } - return bytes.Equal(sum, h.sum) -} - -// archive50 implements fileBlockReader for RAR 5 file format archives -type archive50 struct { - byteReader // reader for current block data - v *bufio.Reader // reader for current archive volume - pass []byte - blockKey []byte // key used to encrypt blocks - multi bool // archive is multi-volume - solid bool // is a solid archive - checksum hash50 // file checksum - dec decoder // optional decoder used to unpack file - buf readBuf // temporary buffer - keyCache [cacheSize50]struct { // encryption key cache - kdfCount int - salt []byte - keys [][]byte - } -} - -// calcKeys50 calculates the keys used in RAR 5 archive processing. -// The returned slice of byte slices contains 3 keys. -// Key 0 is used for block or file decryption. -// Key 1 is optionally used for file checksum calculation. -// Key 2 is optionally used for password checking. -func calcKeys50(pass, salt []byte, kdfCount int) [][]byte { - if len(salt) > maxPbkdf2Salt { - salt = salt[:maxPbkdf2Salt] - } - keys := make([][]byte, 3) - if len(keys) == 0 { - return keys - } - - prf := hmac.New(sha256.New, pass) - prf.Write(salt) - prf.Write([]byte{0, 0, 0, 1}) - - t := prf.Sum(nil) - u := append([]byte(nil), t...) - - kdfCount-- - - for i, iter := range []int{kdfCount, 16, 16} { - for iter > 0 { - prf.Reset() - prf.Write(u) - u = prf.Sum(u[:0]) - for j := range u { - t[j] ^= u[j] - } - iter-- - } - keys[i] = append([]byte(nil), t...) - } - - pwcheck := keys[2] - for i, v := range pwcheck[pwCheckSize:] { - pwcheck[i&(pwCheckSize-1)] ^= v - } - keys[2] = pwcheck[:pwCheckSize] - - return keys -} - -// getKeys reads kdfcount and salt from b and returns the corresponding encryption keys. -func (a *archive50) getKeys(b *readBuf) (keys [][]byte, err error) { - if len(*b) < 17 { - return nil, errCorruptEncrypt - } - // read kdf count and salt - kdfCount := int(b.byte()) - if kdfCount > maxKdfCount { - return nil, errCorruptEncrypt - } - kdfCount = 1 << uint(kdfCount) - salt := b.bytes(16) - - // check cache of keys for match - for _, v := range a.keyCache { - if kdfCount == v.kdfCount && bytes.Equal(salt, v.salt) { - return v.keys, nil - } - } - // not found, calculate keys - keys = calcKeys50(a.pass, salt, kdfCount) - - // store in cache - copy(a.keyCache[1:], a.keyCache[:]) - a.keyCache[0].kdfCount = kdfCount - a.keyCache[0].salt = append([]byte(nil), salt...) - a.keyCache[0].keys = keys - - return keys, nil -} - -// checkPassword calculates if a password is correct given password check data and keys. -func checkPassword(b *readBuf, keys [][]byte) error { - if len(*b) < 12 { - return nil // not enough bytes, ignore for the moment - } - pwcheck := b.bytes(8) - sum := b.bytes(4) - csum := sha256.Sum256(pwcheck) - if bytes.Equal(sum, csum[:len(sum)]) && !bytes.Equal(pwcheck, keys[2]) { - return errBadPassword - } - return nil -} - -// parseFileEncryptionRecord processes the optional file encryption record from a file header. -func (a *archive50) parseFileEncryptionRecord(b readBuf, f *fileBlockHeader) error { - if ver := b.uvarint(); ver != 0 { - return errUnknownEncMethod - } - flags := b.uvarint() - - keys, err := a.getKeys(&b) - if err != nil { - return err - } - - f.key = keys[0] - if len(b) < 16 { - return errCorruptEncrypt - } - f.iv = b.bytes(16) - - if flags&file5EncCheckPresent > 0 { - if err := checkPassword(&b, keys); err != nil { - return err - } - } - if flags&file5EncUseMac > 0 { - a.checksum.key = keys[1] - } - return nil -} - -func (a *archive50) parseFileHeader(h *blockHeader50) (*fileBlockHeader, error) { - a.checksum.sum = nil - a.checksum.key = nil - - f := new(fileBlockHeader) - - f.first = h.flags&block5DataNotFirst == 0 - f.last = h.flags&block5DataNotLast == 0 - - flags := h.data.uvarint() // file flags - f.IsDir = flags&file5IsDir > 0 - f.UnKnownSize = flags&file5UnpSizeUnknown > 0 - f.UnPackedSize = int64(h.data.uvarint()) - f.PackedSize = h.dataSize - f.Attributes = int64(h.data.uvarint()) - if flags&file5HasUnixMtime > 0 { - if len(h.data) < 4 { - return nil, errCorruptFileHeader - } - f.ModificationTime = time.Unix(int64(h.data.uint32()), 0) - } - if flags&file5HasCRC32 > 0 { - if len(h.data) < 4 { - return nil, errCorruptFileHeader - } - a.checksum.sum = append([]byte(nil), h.data.bytes(4)...) - if f.first { - a.checksum.Hash = newLittleEndianCRC32() - f.cksum = &a.checksum - } - } - - flags = h.data.uvarint() // compression flags - f.solid = flags&0x0040 > 0 - f.winSize = uint(flags&0x3C00)>>10 + 17 - method := (flags >> 7) & 7 // compression method (0 == none) - if f.first && method != 0 { - unpackver := flags & 0x003f - if unpackver != 0 { - return nil, errUnknownDecoder - } - if a.dec == nil { - a.dec = new(decoder50) - } - f.decoder = a.dec - } - switch h.data.uvarint() { - case 0: - f.HostOS = HostOSWindows - case 1: - f.HostOS = HostOSUnix - default: - f.HostOS = HostOSUnknown - } - nlen := int(h.data.uvarint()) - if len(h.data) < nlen { - return nil, errCorruptFileHeader - } - f.Name = string(h.data.bytes(nlen)) - - // parse optional extra records - for _, e := range h.extra { - var err error - switch e.ftype { - case 1: // encryption - err = a.parseFileEncryptionRecord(e.data, f) - case 2: - // TODO: hash - case 3: - // TODO: time - case 4: // version - _ = e.data.uvarint() // ignore flags field - f.Version = int(e.data.uvarint()) - case 5: - // TODO: redirection - case 6: - // TODO: owner - } - if err != nil { - return nil, err - } - } - return f, nil -} - -// parseEncryptionBlock calculates the key for block encryption. -func (a *archive50) parseEncryptionBlock(b readBuf) error { - if ver := b.uvarint(); ver != 0 { - return errUnknownEncMethod - } - flags := b.uvarint() - keys, err := a.getKeys(&b) - if err != nil { - return err - } - if flags&enc5CheckPresent > 0 { - if err := checkPassword(&b, keys); err != nil { - return err - } - } - a.blockKey = keys[0] - return nil -} - -func (a *archive50) readBlockHeader() (*blockHeader50, error) { - r := io.Reader(a.v) - if a.blockKey != nil { - // block is encrypted - iv := a.buf[:16] - if err := readFull(r, iv); err != nil { - return nil, err - } - r = newAesDecryptReader(r, a.blockKey, iv) - } - - b := a.buf[:minHeaderSize] - if err := readFull(r, b); err != nil { - return nil, err - } - crc := b.uint32() - - hash := crc32.NewIEEE() - hash.Write(b) - - size := int(b.uvarint()) // header size - if size > cap(a.buf) { - a.buf = readBuf(make([]byte, size)) - } else { - a.buf = a.buf[:size] - } - n := copy(a.buf, b) // copy left over bytes - if err := readFull(r, a.buf[n:]); err != nil { // read rest of header - return nil, err - } - - // check header crc - hash.Write(a.buf[n:]) - if crc != hash.Sum32() { - return nil, errBadHeaderCrc - } - - b = a.buf - h := new(blockHeader50) - h.htype = b.uvarint() - h.flags = b.uvarint() - - var extraSize int - if h.flags&block5HasExtra > 0 { - extraSize = int(b.uvarint()) - } - if h.flags&block5HasData > 0 { - h.dataSize = int64(b.uvarint()) - } - if len(b) < extraSize { - return nil, errCorruptHeader - } - h.data = b.bytes(len(b) - extraSize) - - // read header extra records - for len(b) > 0 { - size = int(b.uvarint()) - if len(b) < size { - return nil, errCorruptHeader - } - data := readBuf(b.bytes(size)) - ftype := data.uvarint() - h.extra = append(h.extra, extra{ftype, data}) - } - - return h, nil -} - -// next advances to the next file block in the archive -func (a *archive50) next() (*fileBlockHeader, error) { - for { - h, err := a.readBlockHeader() - if err != nil { - return nil, err - } - a.byteReader = limitByteReader(a.v, h.dataSize) - switch h.htype { - case block5File: - return a.parseFileHeader(h) - case block5Arc: - flags := h.data.uvarint() - a.multi = flags&arc5MultiVol > 0 - a.solid = flags&arc5Solid > 0 - case block5Encrypt: - err = a.parseEncryptionBlock(h.data) - case block5End: - flags := h.data.uvarint() - if flags&endArc5NotLast == 0 || !a.multi { - return nil, errArchiveEnd - } - return nil, errArchiveContinues - default: - // discard block data - _, err = io.Copy(ioutil.Discard, a.byteReader) - } - if err != nil { - return nil, err - } - } -} - -func (a *archive50) version() int { return fileFmt50 } - -func (a *archive50) reset() { - a.blockKey = nil // reset encryption when opening new volume file -} - -func (a *archive50) isSolid() bool { - return a.solid -} - -// newArchive50 creates a new fileBlockReader for a Version 5 archive. -func newArchive50(r *bufio.Reader, password string) fileBlockReader { - a := new(archive50) - a.v = r - a.pass = []byte(password) - a.buf = make([]byte, 100) - return a -} diff --git a/backend/vendor/github.com/nwaples/rardecode/bit_reader.go b/backend/vendor/github.com/nwaples/rardecode/bit_reader.go deleted file mode 100644 index 9b284efa..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/bit_reader.go +++ /dev/null @@ -1,119 +0,0 @@ -package rardecode - -import "io" - -type bitReader interface { - readBits(n uint) (int, error) // read n bits of data - unreadBits(n uint) // revert the reading of the last n bits read -} - -type limitedBitReader struct { - br bitReader - n int - err error // error to return if br returns EOF before all n bits have been read -} - -// limitBitReader returns a bitReader that reads from br and stops with io.EOF after n bits. -// If br returns an io.EOF before reading n bits, err is returned. -func limitBitReader(br bitReader, n int, err error) bitReader { - return &limitedBitReader{br, n, err} -} - -func (l *limitedBitReader) readBits(n uint) (int, error) { - if int(n) > l.n { - return 0, io.EOF - } - v, err := l.br.readBits(n) - if err == nil { - l.n -= int(n) - } else if err == io.EOF { - err = l.err - } - return v, err -} - -func (l *limitedBitReader) unreadBits(n uint) { - l.n += int(n) - l.br.unreadBits(n) -} - -// rarBitReader wraps an io.ByteReader to perform various bit and byte -// reading utility functions used in RAR file processing. -type rarBitReader struct { - r io.ByteReader - v int - n uint -} - -func (r *rarBitReader) reset(br io.ByteReader) { - r.r = br - r.n = 0 - r.v = 0 -} - -func (r *rarBitReader) readBits(n uint) (int, error) { - for n > r.n { - c, err := r.r.ReadByte() - if err != nil { - return 0, err - } - r.v = r.v<<8 | int(c) - r.n += 8 - } - r.n -= n - return (r.v >> r.n) & ((1 << n) - 1), nil -} - -func (r *rarBitReader) unreadBits(n uint) { - r.n += n -} - -// alignByte aligns the current bit reading input to the next byte boundary. -func (r *rarBitReader) alignByte() { - r.n -= r.n % 8 -} - -// readUint32 reads a RAR V3 encoded uint32 -func (r *rarBitReader) readUint32() (uint32, error) { - n, err := r.readBits(2) - if err != nil { - return 0, err - } - if n != 1 { - n, err = r.readBits(4 << uint(n)) - return uint32(n), err - } - n, err = r.readBits(4) - if err != nil { - return 0, err - } - if n == 0 { - n, err = r.readBits(8) - n |= -1 << 8 - return uint32(n), err - } - nlow, err := r.readBits(4) - n = n<<4 | nlow - return uint32(n), err -} - -func (r *rarBitReader) ReadByte() (byte, error) { - n, err := r.readBits(8) - return byte(n), err -} - -// readFull reads len(p) bytes into p. If fewer bytes are read an error is returned. -func (r *rarBitReader) readFull(p []byte) error { - for i := range p { - c, err := r.ReadByte() - if err != nil { - return err - } - p[i] = c - } - return nil -} - -func newRarBitReader(r io.ByteReader) *rarBitReader { - return &rarBitReader{r: r} -} diff --git a/backend/vendor/github.com/nwaples/rardecode/decode29.go b/backend/vendor/github.com/nwaples/rardecode/decode29.go deleted file mode 100644 index 638645e7..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/decode29.go +++ /dev/null @@ -1,264 +0,0 @@ -package rardecode - -import ( - "bytes" - "errors" - "io" -) - -const ( - maxCodeSize = 0x10000 - maxUniqueFilters = 1024 -) - -var ( - // Errors marking the end of the decoding block and/or file - endOfFile = errors.New("rardecode: end of file") - endOfBlock = errors.New("rardecode: end of block") - endOfBlockAndFile = errors.New("rardecode: end of block and file") -) - -// decoder29 implements the decoder interface for RAR 3.0 compression (unpack version 29) -// Decode input is broken up into 1 or more blocks. The start of each block specifies -// the decoding algorithm (ppm or lz) and optional data to initialize with. -// Block length is not stored, it is determined only after decoding an end of file and/or -// block marker in the data. -type decoder29 struct { - br *rarBitReader - eof bool // at file eof - fnum int // current filter number (index into filters) - flen []int // filter block length history - filters []v3Filter // list of current filters used by archive encoding - - // current decode function (lz or ppm). - // When called it should perform a single decode operation, and either apply the - // data to the window or return they raw bytes for a filter. - decode func(w *window) ([]byte, error) - - lz lz29Decoder // lz decoder - ppm ppm29Decoder // ppm decoder -} - -// init intializes the decoder for decoding a new file. -func (d *decoder29) init(r io.ByteReader, reset bool) error { - if d.br == nil { - d.br = newRarBitReader(r) - } else { - d.br.reset(r) - } - d.eof = false - if reset { - d.initFilters() - d.lz.reset() - d.ppm.reset() - d.decode = nil - } - if d.decode == nil { - return d.readBlockHeader() - } - return nil -} - -func (d *decoder29) initFilters() { - d.fnum = 0 - d.flen = nil - d.filters = nil -} - -// readVMCode reads the raw bytes for the code/commands used in a vm filter -func readVMCode(br *rarBitReader) ([]byte, error) { - n, err := br.readUint32() - if err != nil { - return nil, err - } - if n > maxCodeSize || n == 0 { - return nil, errInvalidFilter - } - buf := make([]byte, n) - err = br.readFull(buf) - if err != nil { - return nil, err - } - var x byte - for _, c := range buf[1:] { - x ^= c - } - // simple xor checksum on data - if x != buf[0] { - return nil, errInvalidFilter - } - return buf, nil -} - -func (d *decoder29) parseVMFilter(buf []byte) (*filterBlock, error) { - flags := buf[0] - br := newRarBitReader(bytes.NewReader(buf[1:])) - fb := new(filterBlock) - - // Find the filter number which is an index into d.filters. - // If filter number == len(d.filters) it is a new filter to be added. - if flags&0x80 > 0 { - n, err := br.readUint32() - if err != nil { - return nil, err - } - if n == 0 { - d.initFilters() - fb.reset = true - } else { - n-- - if n > maxUniqueFilters { - return nil, errInvalidFilter - } - if int(n) > len(d.filters) { - return nil, errInvalidFilter - } - } - d.fnum = int(n) - } - - // filter offset - n, err := br.readUint32() - if err != nil { - return nil, err - } - if flags&0x40 > 0 { - n += 258 - } - fb.offset = int(n) - - // filter length - if d.fnum == len(d.flen) { - d.flen = append(d.flen, 0) - } - if flags&0x20 > 0 { - n, err = br.readUint32() - if err != nil { - return nil, err - } - //fb.length = int(n) - d.flen[d.fnum] = int(n) - } - fb.length = d.flen[d.fnum] - - // initial register values - r := make(map[int]uint32) - if flags&0x10 > 0 { - bits, err := br.readBits(vmRegs - 1) - if err != nil { - return nil, err - } - for i := 0; i < vmRegs-1; i++ { - if bits&1 > 0 { - r[i], err = br.readUint32() - if err != nil { - return nil, err - } - } - bits >>= 1 - } - } - - // filter is new so read the code for it - if d.fnum == len(d.filters) { - code, err := readVMCode(br) - if err != nil { - return nil, err - } - f, err := getV3Filter(code) - if err != nil { - return nil, err - } - d.filters = append(d.filters, f) - d.flen = append(d.flen, fb.length) - } - - // read global data - var g []byte - if flags&0x08 > 0 { - n, err := br.readUint32() - if err != nil { - return nil, err - } - if n > vmGlobalSize-vmFixedGlobalSize { - return nil, errInvalidFilter - } - g = make([]byte, n) - err = br.readFull(g) - if err != nil { - return nil, err - } - } - - // create filter function - f := d.filters[d.fnum] - fb.filter = func(buf []byte, offset int64) ([]byte, error) { - return f(r, g, buf, offset) - } - - return fb, nil -} - -// readBlockHeader determines and initializes the current decoder for a new decode block. -func (d *decoder29) readBlockHeader() error { - d.br.alignByte() - n, err := d.br.readBits(1) - if err == nil { - if n > 0 { - d.decode = d.ppm.decode - err = d.ppm.init(d.br) - } else { - d.decode = d.lz.decode - err = d.lz.init(d.br) - } - } - if err == io.EOF { - err = errDecoderOutOfData - } - return err - -} - -func (d *decoder29) fill(w *window) ([]*filterBlock, error) { - if d.eof { - return nil, io.EOF - } - - var fl []*filterBlock - - for w.available() > 0 { - b, err := d.decode(w) // perform a single decode operation - if len(b) > 0 && err == nil { - // parse raw data for filter and add to list of filters - var f *filterBlock - f, err = d.parseVMFilter(b) - if f != nil { - // make offset relative to read index (from write index) - f.offset += w.buffered() - fl = append(fl, f) - } - } - - switch err { - case nil: - continue - case endOfBlock: - err = d.readBlockHeader() - if err == nil { - continue - } - case endOfFile: - d.eof = true - err = io.EOF - case endOfBlockAndFile: - d.eof = true - d.decode = nil // clear decoder, it will be setup by next init() - err = io.EOF - case io.EOF: - err = errDecoderOutOfData - } - return fl, err - } - // return filters - return fl, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/decode29_lz.go b/backend/vendor/github.com/nwaples/rardecode/decode29_lz.go deleted file mode 100644 index 94470853..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/decode29_lz.go +++ /dev/null @@ -1,247 +0,0 @@ -package rardecode - -const ( - mainSize = 299 - offsetSize = 60 - lowOffsetSize = 17 - lengthSize = 28 - tableSize = mainSize + offsetSize + lowOffsetSize + lengthSize -) - -var ( - lengthBase = [28]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, - 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224} - lengthExtraBits = [28]uint{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, - 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5} - - offsetBase = [60]int{0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, - 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, - 6144, 8192, 12288, 16384, 24576, 32768, 49152, 65536, 98304, - 131072, 196608, 262144, 327680, 393216, 458752, 524288, - 589824, 655360, 720896, 786432, 851968, 917504, 983040, - 1048576, 1310720, 1572864, 1835008, 2097152, 2359296, 2621440, - 2883584, 3145728, 3407872, 3670016, 3932160} - offsetExtraBits = [60]uint{0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, - 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18} - - shortOffsetBase = [8]int{0, 4, 8, 16, 32, 64, 128, 192} - shortOffsetExtraBits = [8]uint{2, 2, 3, 4, 5, 6, 6, 6} -) - -type lz29Decoder struct { - codeLength [tableSize]byte - - mainDecoder huffmanDecoder - offsetDecoder huffmanDecoder - lowOffsetDecoder huffmanDecoder - lengthDecoder huffmanDecoder - - offset [4]int // history of previous offsets - length int // previous length - lowOffset int - lowOffsetRepeats int - - br *rarBitReader -} - -func (d *lz29Decoder) reset() { - for i := range d.offset { - d.offset[i] = 0 - } - d.length = 0 - for i := range d.codeLength { - d.codeLength[i] = 0 - } -} - -func (d *lz29Decoder) init(br *rarBitReader) error { - d.br = br - d.lowOffset = 0 - d.lowOffsetRepeats = 0 - - n, err := d.br.readBits(1) - if err != nil { - return err - } - addOld := n > 0 - - cl := d.codeLength[:] - if err = readCodeLengthTable(d.br, cl, addOld); err != nil { - return err - } - - d.mainDecoder.init(cl[:mainSize]) - cl = cl[mainSize:] - d.offsetDecoder.init(cl[:offsetSize]) - cl = cl[offsetSize:] - d.lowOffsetDecoder.init(cl[:lowOffsetSize]) - cl = cl[lowOffsetSize:] - d.lengthDecoder.init(cl) - - return nil -} - -func (d *lz29Decoder) readFilterData() (b []byte, err error) { - flags, err := d.br.ReadByte() - if err != nil { - return nil, err - } - - n := (int(flags) & 7) + 1 - switch n { - case 7: - n, err = d.br.readBits(8) - n += 7 - if err != nil { - return nil, err - } - case 8: - n, err = d.br.readBits(16) - if err != nil { - return nil, err - } - } - - buf := make([]byte, n+1) - buf[0] = flags - err = d.br.readFull(buf[1:]) - - return buf, err -} - -func (d *lz29Decoder) readEndOfBlock() error { - n, err := d.br.readBits(1) - if err != nil { - return err - } - if n > 0 { - return endOfBlock - } - n, err = d.br.readBits(1) - if err != nil { - return err - } - if n > 0 { - return endOfBlockAndFile - } - return endOfFile -} - -func (d *lz29Decoder) decode(win *window) ([]byte, error) { - sym, err := d.mainDecoder.readSym(d.br) - if err != nil { - return nil, err - } - - switch { - case sym < 256: - // literal - win.writeByte(byte(sym)) - return nil, nil - case sym == 256: - return nil, d.readEndOfBlock() - case sym == 257: - return d.readFilterData() - case sym == 258: - // use previous offset and length - case sym < 263: - i := sym - 259 - offset := d.offset[i] - copy(d.offset[1:i+1], d.offset[:i]) - d.offset[0] = offset - - i, err := d.lengthDecoder.readSym(d.br) - if err != nil { - return nil, err - } - d.length = lengthBase[i] + 2 - bits := lengthExtraBits[i] - if bits > 0 { - n, err := d.br.readBits(bits) - if err != nil { - return nil, err - } - d.length += n - } - case sym < 271: - i := sym - 263 - copy(d.offset[1:], d.offset[:]) - offset := shortOffsetBase[i] + 1 - bits := shortOffsetExtraBits[i] - if bits > 0 { - n, err := d.br.readBits(bits) - if err != nil { - return nil, err - } - offset += n - } - d.offset[0] = offset - - d.length = 2 - default: - i := sym - 271 - d.length = lengthBase[i] + 3 - bits := lengthExtraBits[i] - if bits > 0 { - n, err := d.br.readBits(bits) - if err != nil { - return nil, err - } - d.length += n - } - - i, err = d.offsetDecoder.readSym(d.br) - if err != nil { - return nil, err - } - offset := offsetBase[i] + 1 - bits = offsetExtraBits[i] - - switch { - case bits >= 4: - if bits > 4 { - n, err := d.br.readBits(bits - 4) - if err != nil { - return nil, err - } - offset += n << 4 - } - - if d.lowOffsetRepeats > 0 { - d.lowOffsetRepeats-- - offset += d.lowOffset - } else { - n, err := d.lowOffsetDecoder.readSym(d.br) - if err != nil { - return nil, err - } - if n == 16 { - d.lowOffsetRepeats = 15 - offset += d.lowOffset - } else { - offset += n - d.lowOffset = n - } - } - case bits > 0: - n, err := d.br.readBits(bits) - if err != nil { - return nil, err - } - offset += n - } - - if offset >= 0x2000 { - d.length++ - if offset >= 0x40000 { - d.length++ - } - } - copy(d.offset[1:], d.offset[:]) - d.offset[0] = offset - } - win.copyBytes(d.length, d.offset[0]) - return nil, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/decode29_ppm.go b/backend/vendor/github.com/nwaples/rardecode/decode29_ppm.go deleted file mode 100644 index 39c31995..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/decode29_ppm.go +++ /dev/null @@ -1,132 +0,0 @@ -package rardecode - -import "io" - -type ppm29Decoder struct { - m model // ppm model - esc byte // escape character - br io.ByteReader -} - -func (d *ppm29Decoder) init(br *rarBitReader) error { - maxOrder, err := br.readBits(7) - if err != nil { - return err - } - reset := maxOrder&0x20 > 0 - - // Should have flushed all unread bits from bitReader by now, - // use underlying ByteReader - d.br = br.r - - var maxMB int - if reset { - c, err := d.br.ReadByte() - if err != nil { - return err - } - maxMB = int(c) + 1 - } - - if maxOrder&0x40 > 0 { - d.esc, err = d.br.ReadByte() - if err != nil { - return err - } - } - - maxOrder = (maxOrder & 0x1f) + 1 - if maxOrder > 16 { - maxOrder = 16 + (maxOrder-16)*3 - } - - return d.m.init(d.br, reset, maxOrder, maxMB) -} - -func (d *ppm29Decoder) reset() { - d.esc = 2 -} - -func (d *ppm29Decoder) readFilterData() ([]byte, error) { - c, err := d.m.ReadByte() - if err != nil { - return nil, err - } - n := int(c&7) + 1 - if n == 7 { - b, err := d.m.ReadByte() - if err != nil { - return nil, err - } - n += int(b) - } else if n == 8 { - b, err := d.m.ReadByte() - if err != nil { - return nil, err - } - n = int(b) << 8 - b, err = d.m.ReadByte() - if err != nil { - return nil, err - } - n |= int(b) - } - - n++ - buf := make([]byte, n) - buf[0] = byte(c) - for i := 1; i < n; i++ { - buf[i], err = d.m.ReadByte() - if err != nil { - return nil, err - } - } - return buf, nil -} - -func (d *ppm29Decoder) decode(w *window) ([]byte, error) { - c, err := d.m.ReadByte() - if err != nil { - return nil, err - } - if c != d.esc { - w.writeByte(c) - return nil, nil - } - c, err = d.m.ReadByte() - if err != nil { - return nil, err - } - - switch c { - case 0: - return nil, endOfBlock - case 2: - return nil, endOfBlockAndFile - case 3: - return d.readFilterData() - case 4: - offset := 0 - for i := 0; i < 3; i++ { - c, err = d.m.ReadByte() - if err != nil { - return nil, err - } - offset = offset<<8 | int(c) - } - len, err := d.m.ReadByte() - if err != nil { - return nil, err - } - w.copyBytes(int(len)+32, offset+2) - case 5: - len, err := d.m.ReadByte() - if err != nil { - return nil, err - } - w.copyBytes(int(len)+4, 1) - default: - w.writeByte(d.esc) - } - return nil, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/decode50.go b/backend/vendor/github.com/nwaples/rardecode/decode50.go deleted file mode 100644 index 1939a444..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/decode50.go +++ /dev/null @@ -1,294 +0,0 @@ -package rardecode - -import ( - "errors" - "io" -) - -const ( - mainSize5 = 306 - offsetSize5 = 64 - lowoffsetSize5 = 16 - lengthSize5 = 44 - tableSize5 = mainSize5 + offsetSize5 + lowoffsetSize5 + lengthSize5 -) - -var ( - errUnknownFilter = errors.New("rardecode: unknown V5 filter") - errCorruptDecodeHeader = errors.New("rardecode: corrupt decode header") -) - -// decoder50 implements the decoder interface for RAR 5 compression. -// Decode input it broken up into 1 or more blocks. Each block starts with -// a header containing block length and optional code length tables to initialize -// the huffman decoders with. -type decoder50 struct { - r io.ByteReader - br bitReader // bit reader for current data block - codeLength [tableSize5]byte - - lastBlock bool // current block is last block in compressed file - - mainDecoder huffmanDecoder - offsetDecoder huffmanDecoder - lowoffsetDecoder huffmanDecoder - lengthDecoder huffmanDecoder - - offset [4]int - length int -} - -func (d *decoder50) init(r io.ByteReader, reset bool) error { - d.r = r - d.lastBlock = false - - if reset { - for i := range d.offset { - d.offset[i] = 0 - } - d.length = 0 - for i := range d.codeLength { - d.codeLength[i] = 0 - } - } - err := d.readBlockHeader() - if err == io.EOF { - return errDecoderOutOfData - } - return err -} - -func (d *decoder50) readBlockHeader() error { - flags, err := d.r.ReadByte() - if err != nil { - return err - } - - bytecount := (flags>>3)&3 + 1 - if bytecount == 4 { - return errCorruptDecodeHeader - } - - hsum, err := d.r.ReadByte() - if err != nil { - return err - } - - blockBits := int(flags)&0x07 + 1 - blockBytes := 0 - sum := 0x5a ^ flags - for i := byte(0); i < bytecount; i++ { - n, err := d.r.ReadByte() - if err != nil { - return err - } - sum ^= n - blockBytes |= int(n) << (i * 8) - } - if sum != hsum { // bad header checksum - return errCorruptDecodeHeader - } - blockBits += (blockBytes - 1) * 8 - - // create bit reader for block - d.br = limitBitReader(newRarBitReader(d.r), blockBits, errDecoderOutOfData) - d.lastBlock = flags&0x40 > 0 - - if flags&0x80 > 0 { - // read new code length tables and reinitialize huffman decoders - cl := d.codeLength[:] - err = readCodeLengthTable(d.br, cl, false) - if err != nil { - return err - } - d.mainDecoder.init(cl[:mainSize5]) - cl = cl[mainSize5:] - d.offsetDecoder.init(cl[:offsetSize5]) - cl = cl[offsetSize5:] - d.lowoffsetDecoder.init(cl[:lowoffsetSize5]) - cl = cl[lowoffsetSize5:] - d.lengthDecoder.init(cl) - } - return nil -} - -func slotToLength(br bitReader, n int) (int, error) { - if n >= 8 { - bits := uint(n/4 - 1) - n = (4 | (n & 3)) << bits - if bits > 0 { - b, err := br.readBits(bits) - if err != nil { - return 0, err - } - n |= b - } - } - n += 2 - return n, nil -} - -// readFilter5Data reads an encoded integer used in V5 filters. -func readFilter5Data(br bitReader) (int, error) { - // TODO: should data really be uint? (for 32bit ints). - // It will be masked later anyway by decode window mask. - bytes, err := br.readBits(2) - if err != nil { - return 0, err - } - bytes++ - - var data int - for i := 0; i < bytes; i++ { - n, err := br.readBits(8) - if err != nil { - return 0, err - } - data |= n << (uint(i) * 8) - } - return data, nil -} - -func readFilter(br bitReader) (*filterBlock, error) { - fb := new(filterBlock) - var err error - - fb.offset, err = readFilter5Data(br) - if err != nil { - return nil, err - } - fb.length, err = readFilter5Data(br) - if err != nil { - return nil, err - } - ftype, err := br.readBits(3) - if err != nil { - return nil, err - } - switch ftype { - case 0: - n, err := br.readBits(5) - if err != nil { - return nil, err - } - fb.filter = func(buf []byte, offset int64) ([]byte, error) { return filterDelta(n+1, buf) } - case 1: - fb.filter = func(buf []byte, offset int64) ([]byte, error) { return filterE8(0xe8, true, buf, offset) } - case 2: - fb.filter = func(buf []byte, offset int64) ([]byte, error) { return filterE8(0xe9, true, buf, offset) } - case 3: - fb.filter = filterArm - default: - return nil, errUnknownFilter - } - return fb, nil -} - -func (d *decoder50) decodeSym(win *window, sym int) (*filterBlock, error) { - switch { - case sym < 256: - // literal - win.writeByte(byte(sym)) - return nil, nil - case sym == 256: - f, err := readFilter(d.br) - f.offset += win.buffered() - return f, err - case sym == 257: - // use previous offset and length - case sym < 262: - i := sym - 258 - offset := d.offset[i] - copy(d.offset[1:i+1], d.offset[:i]) - d.offset[0] = offset - - sl, err := d.lengthDecoder.readSym(d.br) - if err != nil { - return nil, err - } - d.length, err = slotToLength(d.br, sl) - if err != nil { - return nil, err - } - default: - length, err := slotToLength(d.br, sym-262) - if err != nil { - return nil, err - } - - offset := 1 - slot, err := d.offsetDecoder.readSym(d.br) - if err != nil { - return nil, err - } - if slot < 4 { - offset += slot - } else { - bits := uint(slot/2 - 1) - offset += (2 | (slot & 1)) << bits - - if bits >= 4 { - if bits > 4 { - n, err := d.br.readBits(bits - 4) - if err != nil { - return nil, err - } - offset += n << 4 - } - n, err := d.lowoffsetDecoder.readSym(d.br) - if err != nil { - return nil, err - } - offset += n - } else { - n, err := d.br.readBits(bits) - if err != nil { - return nil, err - } - offset += n - } - } - if offset > 0x100 { - length++ - if offset > 0x2000 { - length++ - if offset > 0x40000 { - length++ - } - } - } - copy(d.offset[1:], d.offset[:]) - d.offset[0] = offset - d.length = length - } - win.copyBytes(d.length, d.offset[0]) - return nil, nil -} - -func (d *decoder50) fill(w *window) ([]*filterBlock, error) { - var fl []*filterBlock - - for w.available() > 0 { - sym, err := d.mainDecoder.readSym(d.br) - if err == nil { - var f *filterBlock - f, err = d.decodeSym(w, sym) - if f != nil { - fl = append(fl, f) - } - } else if err == io.EOF { - // reached end of the block - if d.lastBlock { - return fl, io.EOF - } - err = d.readBlockHeader() - } - if err != nil { - if err == io.EOF { - return fl, errDecoderOutOfData - } - return fl, err - } - } - return fl, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/decode_reader.go b/backend/vendor/github.com/nwaples/rardecode/decode_reader.go deleted file mode 100644 index b346936c..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/decode_reader.go +++ /dev/null @@ -1,290 +0,0 @@ -package rardecode - -import ( - "errors" - "io" -) - -const ( - minWindowSize = 0x40000 - maxQueuedFilters = 8192 -) - -var ( - errTooManyFilters = errors.New("rardecode: too many filters") - errInvalidFilter = errors.New("rardecode: invalid filter") -) - -// filter functions take a byte slice, the current output offset and -// returns transformed data. -type filter func(b []byte, offset int64) ([]byte, error) - -// filterBlock is a block of data to be processed by a filter. -type filterBlock struct { - length int // length of block - offset int // bytes to be read before start of block - reset bool // drop all existing queued filters - filter filter // filter function -} - -// decoder is the interface for decoding compressed data -type decoder interface { - init(r io.ByteReader, reset bool) error // initialize decoder for current file - fill(w *window) ([]*filterBlock, error) // fill window with decoded data, returning any filters -} - -// window is a sliding window buffer. -type window struct { - buf []byte - mask int // buf length mask - r int // index in buf for reads (beginning) - w int // index in buf for writes (end) - l int // length of bytes to be processed by copyBytes - o int // offset of bytes to be processed by copyBytes -} - -// buffered returns the number of bytes yet to be read from window -func (w *window) buffered() int { return (w.w - w.r) & w.mask } - -// available returns the number of bytes that can be written before the window is full -func (w *window) available() int { return (w.r - w.w - 1) & w.mask } - -func (w *window) reset(log2size uint, clear bool) { - size := 1 << log2size - if size < minWindowSize { - size = minWindowSize - } - if size > len(w.buf) { - b := make([]byte, size) - if clear { - w.w = 0 - } else if len(w.buf) > 0 { - n := copy(b, w.buf[w.w:]) - n += copy(b[n:], w.buf[:w.w]) - w.w = n - } - w.buf = b - w.mask = size - 1 - } else if clear { - for i := range w.buf { - w.buf[i] = 0 - } - w.w = 0 - } - w.r = w.w -} - -// writeByte writes c to the end of the window -func (w *window) writeByte(c byte) { - w.buf[w.w] = c - w.w = (w.w + 1) & w.mask -} - -// copyBytes copies len bytes at off distance from the end -// to the end of the window. -func (w *window) copyBytes(len, off int) { - len &= w.mask - - n := w.available() - if len > n { - // if there is not enough space availaible we copy - // as much as we can and save the offset and length - // of the remaining data to be copied later. - w.l = len - n - w.o = off - len = n - } - - i := (w.w - off) & w.mask - for ; len > 0; len-- { - w.buf[w.w] = w.buf[i] - w.w = (w.w + 1) & w.mask - i = (i + 1) & w.mask - } -} - -// read reads bytes from the beginning of the window into p -func (w *window) read(p []byte) (n int) { - if w.r > w.w { - n = copy(p, w.buf[w.r:]) - w.r = (w.r + n) & w.mask - p = p[n:] - } - if w.r < w.w { - l := copy(p, w.buf[w.r:w.w]) - w.r += l - n += l - } - if w.l > 0 && n > 0 { - // if we have successfully read data, copy any - // leftover data from a previous copyBytes. - l := w.l - w.l = 0 - w.copyBytes(l, w.o) - } - return n -} - -// decodeReader implements io.Reader for decoding compressed data in RAR archives. -type decodeReader struct { - win window // sliding window buffer used as decode dictionary - dec decoder // decoder being used to unpack file - tot int64 // total bytes read - buf []byte // filter input/output buffer - outbuf []byte // filter output not yet read - err error - filters []*filterBlock // list of filterBlock's, each with offset relative to previous in list -} - -func (d *decodeReader) init(r io.ByteReader, dec decoder, winsize uint, reset bool) error { - if reset { - d.filters = nil - } - d.err = nil - d.outbuf = nil - d.tot = 0 - d.win.reset(winsize, reset) - d.dec = dec - return d.dec.init(r, reset) -} - -func (d *decodeReader) readErr() error { - err := d.err - d.err = nil - return err -} - -// queueFilter adds a filterBlock to the end decodeReader's filters. -func (d *decodeReader) queueFilter(f *filterBlock) error { - if f.reset { - d.filters = nil - } - if len(d.filters) >= maxQueuedFilters { - return errTooManyFilters - } - // offset & length must be < window size - f.offset &= d.win.mask - f.length &= d.win.mask - // make offset relative to previous filter in list - for _, fb := range d.filters { - if f.offset < fb.offset { - // filter block must not start before previous filter - return errInvalidFilter - } - f.offset -= fb.offset - } - d.filters = append(d.filters, f) - return nil -} - -// processFilters processes any filters valid at the current read index -// and stores the output in outbuf. -func (d *decodeReader) processFilters() (err error) { - f := d.filters[0] - if f.offset > 0 { - return nil - } - d.filters = d.filters[1:] - if d.win.buffered() < f.length { - // fill() didn't return enough bytes - err = d.readErr() - if err == nil || err == io.EOF { - return errInvalidFilter - } - return err - } - - if cap(d.buf) < f.length { - d.buf = make([]byte, f.length) - } - d.outbuf = d.buf[:f.length] - n := d.win.read(d.outbuf) - for { - // run filter passing buffer and total bytes read so far - d.outbuf, err = f.filter(d.outbuf, d.tot) - if err != nil { - return err - } - if cap(d.outbuf) > cap(d.buf) { - // Filter returned a bigger buffer, save it for future filters. - d.buf = d.outbuf - } - if len(d.filters) == 0 { - return nil - } - f = d.filters[0] - - if f.offset != 0 { - // next filter not at current offset - f.offset -= n - return nil - } - if f.length != len(d.outbuf) { - return errInvalidFilter - } - d.filters = d.filters[1:] - - if cap(d.outbuf) < cap(d.buf) { - // Filter returned a smaller buffer. Copy it back to the saved buffer - // so the next filter can make use of the larger buffer if needed. - d.outbuf = append(d.buf[:0], d.outbuf...) - } - } -} - -// fill fills the decodeReader's window -func (d *decodeReader) fill() { - if d.err != nil { - return - } - var fl []*filterBlock - fl, d.err = d.dec.fill(&d.win) // fill window using decoder - for _, f := range fl { - err := d.queueFilter(f) - if err != nil { - d.err = err - return - } - } -} - -// Read decodes data and stores it in p. -func (d *decodeReader) Read(p []byte) (n int, err error) { - if len(d.outbuf) == 0 { - // no filter output, see if we need to create more - if d.win.buffered() == 0 { - // fill empty window - d.fill() - if d.win.buffered() == 0 { - return 0, d.readErr() - } - } else if len(d.filters) > 0 { - f := d.filters[0] - if f.offset == 0 && f.length > d.win.buffered() { - d.fill() // filter at current offset needs more data - } - } - if len(d.filters) > 0 { - if err := d.processFilters(); err != nil { - return 0, err - } - } - } - if len(d.outbuf) > 0 { - // copy filter output into p - n = copy(p, d.outbuf) - d.outbuf = d.outbuf[n:] - } else if len(d.filters) > 0 { - f := d.filters[0] - if f.offset < len(p) { - // only read data up to beginning of next filter - p = p[:f.offset] - } - n = d.win.read(p) // read directly from window - f.offset -= n // adjust first filter offset by bytes just read - } else { - n = d.win.read(p) // read directly from window - } - d.tot += int64(n) - return n, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/decrypt_reader.go b/backend/vendor/github.com/nwaples/rardecode/decrypt_reader.go deleted file mode 100644 index bb9f279c..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/decrypt_reader.go +++ /dev/null @@ -1,126 +0,0 @@ -package rardecode - -import ( - "crypto/aes" - "crypto/cipher" - "io" -) - -// cipherBlockReader implements Block Mode decryption of an io.Reader object. -type cipherBlockReader struct { - r io.Reader - mode cipher.BlockMode - inbuf []byte // input buffer for partial data block - outbuf []byte // output buffer used when output slice < block size - n int // bytes read from outbuf - err error -} - -// read reads and decrypts one or more input blocks into p. -// len(p) must be >= cipher block size. -func (cr *cipherBlockReader) read(p []byte) (n int, err error) { - bs := cr.mode.BlockSize() - // round p down to a multiple of the block size - l := len(p) - len(p)%bs - p = p[:l] - - l = len(cr.inbuf) - if l > 0 { - // copy any buffered input into p - copy(p, cr.inbuf) - cr.inbuf = cr.inbuf[:0] - } - // read data for at least one block - n, err = io.ReadAtLeast(cr.r, p[l:], bs-l) - n += l - p = p[:n] - - l = n % bs - // check if p is a multiple of the cipher block size - if l > 0 { - n -= l - // save trailing partial block to process later - cr.inbuf = append(cr.inbuf, p[n:]...) - p = p[:n] - } - - if err != nil { - if err == io.ErrUnexpectedEOF || err == io.ErrShortBuffer { - // ignore trailing bytes < block size length - err = io.EOF - } - return 0, err - } - cr.mode.CryptBlocks(p, p) // decrypt block(s) - return n, nil -} - -// Read reads and decrypts data into p. -// If the input is not a multiple of the cipher block size, -// the trailing bytes will be ignored. -func (cr *cipherBlockReader) Read(p []byte) (n int, err error) { - for { - if cr.n < len(cr.outbuf) { - // return buffered output - n = copy(p, cr.outbuf[cr.n:]) - cr.n += n - return n, nil - } - if cr.err != nil { - err = cr.err - cr.err = nil - return 0, err - } - if len(p) >= cap(cr.outbuf) { - break - } - // p is not large enough to process a block, use outbuf instead - n, cr.err = cr.read(cr.outbuf[:cap(cr.outbuf)]) - cr.outbuf = cr.outbuf[:n] - cr.n = 0 - } - // read blocks into p - return cr.read(p) -} - -// ReadByte returns the next decrypted byte. -func (cr *cipherBlockReader) ReadByte() (byte, error) { - for { - if cr.n < len(cr.outbuf) { - c := cr.outbuf[cr.n] - cr.n++ - return c, nil - } - if cr.err != nil { - err := cr.err - cr.err = nil - return 0, err - } - // refill outbuf - var n int - n, cr.err = cr.read(cr.outbuf[:cap(cr.outbuf)]) - cr.outbuf = cr.outbuf[:n] - cr.n = 0 - } -} - -// newCipherBlockReader returns a cipherBlockReader that decrypts the given io.Reader using -// the provided block mode cipher. -func newCipherBlockReader(r io.Reader, mode cipher.BlockMode) *cipherBlockReader { - cr := &cipherBlockReader{r: r, mode: mode} - cr.outbuf = make([]byte, 0, mode.BlockSize()) - cr.inbuf = make([]byte, 0, mode.BlockSize()) - return cr -} - -// newAesDecryptReader returns a cipherBlockReader that decrypts input from a given io.Reader using AES. -// It will panic if the provided key is invalid. -func newAesDecryptReader(r io.Reader, key, iv []byte) *cipherBlockReader { - block, err := aes.NewCipher(key) - if err != nil { - panic(err) - } - mode := cipher.NewCBCDecrypter(block, iv) - - return newCipherBlockReader(r, mode) -} diff --git a/backend/vendor/github.com/nwaples/rardecode/filters.go b/backend/vendor/github.com/nwaples/rardecode/filters.go deleted file mode 100644 index a9eb0407..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/filters.go +++ /dev/null @@ -1,416 +0,0 @@ -package rardecode - -import ( - "bytes" - "encoding/binary" - "hash/crc32" - "io" -) - -const ( - fileSize = 0x1000000 - - vmGlobalAddr = 0x3C000 - vmGlobalSize = 0x02000 - vmFixedGlobalSize = 0x40 - - maxUint32 = 1<<32 - 1 -) - -// v3Filter is the interface type for RAR V3 filters. -// v3Filter performs the same function as the filter type, except that it also takes -// the initial register values r, and global data as input for the RAR V3 VM. -type v3Filter func(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) - -var ( - // standardV3Filters is a list of known filters. We can replace the use of a vm - // filter with a custom filter function. - standardV3Filters = []struct { - crc uint32 // crc of code byte slice for filter - len int // length of code byte slice for filter - f v3Filter // replacement filter function - }{ - {0xad576887, 53, e8FilterV3}, - {0x3cd7e57e, 57, e8e9FilterV3}, - {0x3769893f, 120, itaniumFilterV3}, - {0x0e06077d, 29, deltaFilterV3}, - {0x1c2c5dc8, 149, filterRGBV3}, - {0xbc85e701, 216, filterAudioV3}, - } - - // itanium filter byte masks - byteMask = []int{4, 4, 6, 6, 0, 0, 7, 7, 4, 4, 0, 0, 4, 4, 0, 0} -) - -func filterE8(c byte, v5 bool, buf []byte, offset int64) ([]byte, error) { - off := int32(offset) - for b := buf; len(b) >= 5; { - ch := b[0] - b = b[1:] - off++ - if ch != 0xe8 && ch != c { - continue - } - if v5 { - off %= fileSize - } - addr := int32(binary.LittleEndian.Uint32(b)) - if addr < 0 { - if addr+off >= 0 { - binary.LittleEndian.PutUint32(b, uint32(addr+fileSize)) - } - } else if addr < fileSize { - binary.LittleEndian.PutUint32(b, uint32(addr-off)) - } - off += 4 - b = b[4:] - } - return buf, nil -} - -func e8FilterV3(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - return filterE8(0xe8, false, buf, offset) -} - -func e8e9FilterV3(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - return filterE8(0xe9, false, buf, offset) -} - -func getBits(buf []byte, pos, count uint) uint32 { - n := binary.LittleEndian.Uint32(buf[pos/8:]) - n >>= pos & 7 - mask := uint32(maxUint32) >> (32 - count) - return n & mask -} - -func setBits(buf []byte, pos, count uint, bits uint32) { - mask := uint32(maxUint32) >> (32 - count) - mask <<= pos & 7 - bits <<= pos & 7 - n := binary.LittleEndian.Uint32(buf[pos/8:]) - n = (n & ^mask) | (bits & mask) - binary.LittleEndian.PutUint32(buf[pos/8:], n) -} - -func itaniumFilterV3(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - fileOffset := uint32(offset) >> 4 - - for b := buf; len(b) > 21; b = b[16:] { - c := int(b[0]&0x1f) - 0x10 - if c >= 0 { - mask := byteMask[c] - if mask != 0 { - for i := uint(0); i <= 2; i++ { - if mask&(1<= 2*l { - res = buf[l : 2*l] // use unused capacity - } else { - res = make([]byte, l, 2*l) - } - - i := 0 - for j := 0; j < n; j++ { - var c byte - for k := j; k < len(res); k += n { - c -= buf[i] - i++ - res[k] = c - } - } - return res, nil -} - -func deltaFilterV3(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - return filterDelta(int(r[0]), buf) -} - -func abs(n int) int { - if n < 0 { - n = -n - } - return n -} - -func filterRGBV3(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - width := int(r[0] - 3) - posR := int(r[1]) - if posR < 0 || width < 0 { - return buf, nil - } - - var res []byte - l := len(buf) - if cap(buf) >= 2*l { - res = buf[l : 2*l] // use unused capacity - } else { - res = make([]byte, l, 2*l) - } - - for c := 0; c < 3; c++ { - var prevByte int - for i := c; i < len(res); i += 3 { - var predicted int - upperPos := i - width - if upperPos >= 3 { - upperByte := int(res[upperPos]) - upperLeftByte := int(res[upperPos-3]) - predicted = prevByte + upperByte - upperLeftByte - pa := abs(predicted - prevByte) - pb := abs(predicted - upperByte) - pc := abs(predicted - upperLeftByte) - if pa <= pb && pa <= pc { - predicted = prevByte - } else if pb <= pc { - predicted = upperByte - } else { - predicted = upperLeftByte - } - } else { - predicted = prevByte - } - prevByte = (predicted - int(buf[0])) & 0xFF - res[i] = uint8(prevByte) - buf = buf[1:] - } - - } - for i := posR; i < len(res)-2; i += 3 { - c := res[i+1] - res[i] += c - res[i+2] += c - } - return res, nil -} - -func filterAudioV3(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - var res []byte - l := len(buf) - if cap(buf) >= 2*l { - res = buf[l : 2*l] // use unused capacity - } else { - res = make([]byte, l, 2*l) - } - - chans := int(r[0]) - for c := 0; c < chans; c++ { - var prevByte, byteCount int - var diff [7]int - var d, k [3]int - - for i := c; i < len(res); i += chans { - predicted := prevByte<<3 + k[0]*d[0] + k[1]*d[1] + k[2]*d[2] - predicted = int(int8(predicted >> 3)) - - curByte := int(int8(buf[0])) - buf = buf[1:] - predicted -= curByte - res[i] = uint8(predicted) - - dd := curByte << 3 - diff[0] += abs(dd) - diff[1] += abs(dd - d[0]) - diff[2] += abs(dd + d[0]) - diff[3] += abs(dd - d[1]) - diff[4] += abs(dd + d[1]) - diff[5] += abs(dd - d[2]) - diff[6] += abs(dd + d[2]) - - prevDelta := int(int8(predicted - prevByte)) - prevByte = predicted - d[2] = d[1] - d[1] = prevDelta - d[0] - d[0] = prevDelta - - if byteCount&0x1f == 0 { - min := diff[0] - diff[0] = 0 - n := 0 - for j := 1; j < len(diff); j++ { - if diff[j] < min { - min = diff[j] - n = j - } - diff[j] = 0 - } - n-- - if n >= 0 { - m := n / 2 - if n%2 == 0 { - if k[m] >= -16 { - k[m]-- - } - } else { - if k[m] < 16 { - k[m]++ - } - } - } - } - byteCount++ - } - - } - return res, nil -} - -func filterArm(buf []byte, offset int64) ([]byte, error) { - for i := 0; len(buf)-i > 3; i += 4 { - if buf[i+3] == 0xeb { - n := uint(buf[i]) - n += uint(buf[i+1]) * 0x100 - n += uint(buf[i+2]) * 0x10000 - n -= (uint(offset) + uint(i)) / 4 - buf[i] = byte(n) - buf[i+1] = byte(n >> 8) - buf[i+2] = byte(n >> 16) - } - } - return buf, nil -} - -type vmFilter struct { - execCount uint32 - global []byte - static []byte - code []command -} - -// execute implements v3filter type for VM based RAR 3 filters. -func (f *vmFilter) execute(r map[int]uint32, global, buf []byte, offset int64) ([]byte, error) { - if len(buf) > vmGlobalAddr { - return buf, errInvalidFilter - } - v := newVM(buf) - - // register setup - v.r[3] = vmGlobalAddr - v.r[4] = uint32(len(buf)) - v.r[5] = f.execCount - for i, n := range r { - v.r[i] = n - } - - // vm global data memory block - vg := v.m[vmGlobalAddr : vmGlobalAddr+vmGlobalSize] - - // initialize fixed global memory - for i, n := range v.r[:vmRegs-1] { - binary.LittleEndian.PutUint32(vg[i*4:], n) - } - binary.LittleEndian.PutUint32(vg[0x1c:], uint32(len(buf))) - binary.LittleEndian.PutUint64(vg[0x24:], uint64(offset)) - binary.LittleEndian.PutUint32(vg[0x2c:], f.execCount) - - // registers - v.r[6] = uint32(offset) - - // copy program global memory - var n int - if len(f.global) > 0 { - n = copy(vg[vmFixedGlobalSize:], f.global) // use saved global instead - } else { - n = copy(vg[vmFixedGlobalSize:], global) - } - copy(vg[vmFixedGlobalSize+n:], f.static) - - v.execute(f.code) - - f.execCount++ - - // keep largest global buffer - if cap(global) > cap(f.global) { - f.global = global[:0] - } else if len(f.global) > 0 { - f.global = f.global[:0] - } - - // check for global data to be saved for next program execution - globalSize := binary.LittleEndian.Uint32(vg[0x30:]) - if globalSize > 0 { - if globalSize > vmGlobalSize-vmFixedGlobalSize { - globalSize = vmGlobalSize - vmFixedGlobalSize - } - if cap(f.global) < int(globalSize) { - f.global = make([]byte, globalSize) - } else { - f.global = f.global[:globalSize] - } - copy(f.global, vg[vmFixedGlobalSize:]) - } - - // find program output - length := binary.LittleEndian.Uint32(vg[0x1c:]) & vmMask - start := binary.LittleEndian.Uint32(vg[0x20:]) & vmMask - if start+length > vmSize { - // TODO: error - start = 0 - length = 0 - } - if start != 0 && cap(v.m) > cap(buf) { - // Initial buffer was to small for vm. - // Copy output to beginning of vm memory so that decodeReader - // will re-use the newly allocated vm memory and we will not - // have to reallocate again next time. - copy(v.m, v.m[start:start+length]) - start = 0 - } - return v.m[start : start+length], nil -} - -// getV3Filter returns a V3 filter function from a code byte slice. -func getV3Filter(code []byte) (v3Filter, error) { - // check if filter is a known standard filter - c := crc32.ChecksumIEEE(code) - for _, f := range standardV3Filters { - if f.crc == c && f.len == len(code) { - return f.f, nil - } - } - - // create new vm filter - f := new(vmFilter) - r := newRarBitReader(bytes.NewReader(code[1:])) // skip first xor byte check - - // read static data - n, err := r.readBits(1) - if err != nil { - return nil, err - } - if n > 0 { - m, err := r.readUint32() - if err != nil { - return nil, err - } - f.static = make([]byte, m+1) - err = r.readFull(f.static) - if err != nil { - return nil, err - } - } - - f.code, err = readCommands(r) - if err == io.EOF { - err = nil - } - - return f.execute, err -} diff --git a/backend/vendor/github.com/nwaples/rardecode/huffman.go b/backend/vendor/github.com/nwaples/rardecode/huffman.go deleted file mode 100644 index 4acb69d5..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/huffman.go +++ /dev/null @@ -1,208 +0,0 @@ -package rardecode - -import ( - "errors" - "io" -) - -const ( - maxCodeLength = 15 // maximum code length in bits - maxQuickBits = 10 - maxQuickSize = 1 << maxQuickBits -) - -var ( - errHuffDecodeFailed = errors.New("rardecode: huffman decode failed") - errInvalidLengthTable = errors.New("rardecode: invalid huffman code length table") -) - -type huffmanDecoder struct { - limit [maxCodeLength + 1]int - pos [maxCodeLength + 1]int - symbol []int - min uint - quickbits uint - quicklen [maxQuickSize]uint - quicksym [maxQuickSize]int -} - -func (h *huffmanDecoder) init(codeLengths []byte) { - var count [maxCodeLength + 1]int - - for _, n := range codeLengths { - if n == 0 { - continue - } - count[n]++ - } - - h.pos[0] = 0 - h.limit[0] = 0 - h.min = 0 - for i := uint(1); i <= maxCodeLength; i++ { - h.limit[i] = h.limit[i-1] + count[i]<<(maxCodeLength-i) - h.pos[i] = h.pos[i-1] + count[i-1] - if h.min == 0 && h.limit[i] > 0 { - h.min = i - } - } - - if cap(h.symbol) >= len(codeLengths) { - h.symbol = h.symbol[:len(codeLengths)] - for i := range h.symbol { - h.symbol[i] = 0 - } - } else { - h.symbol = make([]int, len(codeLengths)) - } - - copy(count[:], h.pos[:]) - for i, n := range codeLengths { - if n != 0 { - h.symbol[count[n]] = i - count[n]++ - } - } - - if len(codeLengths) >= 298 { - h.quickbits = maxQuickBits - } else { - h.quickbits = maxQuickBits - 3 - } - - bits := uint(1) - for i := 0; i < 1<= h.limit[bits] && bits < maxCodeLength { - bits++ - } - h.quicklen[i] = bits - - dist := v - h.limit[bits-1] - dist >>= (maxCodeLength - bits) - - pos := h.pos[bits] + dist - if pos < len(h.symbol) { - h.quicksym[i] = h.symbol[pos] - } else { - h.quicksym[i] = 0 - } - } -} - -func (h *huffmanDecoder) readSym(r bitReader) (int, error) { - bits := uint(maxCodeLength) - v, err := r.readBits(maxCodeLength) - if err != nil { - if err != io.EOF { - return 0, err - } - // fall back to 1 bit at a time if we read past EOF - for i := uint(1); i <= maxCodeLength; i++ { - b, err := r.readBits(1) - if err != nil { - return 0, err // not enough bits return error - } - v |= b << (maxCodeLength - i) - if v < h.limit[i] { - bits = i - break - } - } - } else { - if v < h.limit[h.quickbits] { - i := v >> (maxCodeLength - h.quickbits) - r.unreadBits(maxCodeLength - h.quicklen[i]) - return h.quicksym[i], nil - } - - for i, n := range h.limit[h.min:] { - if v < n { - bits = h.min + uint(i) - r.unreadBits(maxCodeLength - bits) - break - } - } - } - - dist := v - h.limit[bits-1] - dist >>= maxCodeLength - bits - - pos := h.pos[bits] + dist - if pos >= len(h.symbol) { - return 0, errHuffDecodeFailed - } - - return h.symbol[pos], nil -} - -// readCodeLengthTable reads a new code length table into codeLength from br. -// If addOld is set the old table is added to the new one. -func readCodeLengthTable(br bitReader, codeLength []byte, addOld bool) error { - var bitlength [20]byte - for i := 0; i < len(bitlength); i++ { - n, err := br.readBits(4) - if err != nil { - return err - } - if n == 0xf { - cnt, err := br.readBits(4) - if err != nil { - return err - } - if cnt > 0 { - // array already zero'd dont need to explicitly set - i += cnt + 1 - continue - } - } - bitlength[i] = byte(n) - } - - var bl huffmanDecoder - bl.init(bitlength[:]) - - for i := 0; i < len(codeLength); i++ { - l, err := bl.readSym(br) - if err != nil { - return err - } - - if l < 16 { - if addOld { - codeLength[i] = (codeLength[i] + byte(l)) & 0xf - } else { - codeLength[i] = byte(l) - } - continue - } - - var count int - var value byte - - switch l { - case 16, 18: - count, err = br.readBits(3) - count += 3 - default: - count, err = br.readBits(7) - count += 11 - } - if err != nil { - return err - } - if l < 18 { - if i == 0 { - return errInvalidLengthTable - } - value = codeLength[i-1] - } - for ; count > 0 && i < len(codeLength); i++ { - codeLength[i] = value - count-- - } - i-- - } - return nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/ppm_model.go b/backend/vendor/github.com/nwaples/rardecode/ppm_model.go deleted file mode 100644 index 58a545aa..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/ppm_model.go +++ /dev/null @@ -1,1096 +0,0 @@ -package rardecode - -import ( - "errors" - "io" -) - -const ( - rangeBottom = 1 << 15 - rangeTop = 1 << 24 - - maxFreq = 124 - - intBits = 7 - periodBits = 7 - binScale = 1 << (intBits + periodBits) - - n0 = 1 - n1 = 4 - n2 = 4 - n3 = 4 - n4 = (128 + 3 - 1*n1 - 2*n2 - 3*n3) / 4 - nIndexes = n0 + n1 + n2 + n3 + n4 - - // memory is allocated in units. A unit contains unitSize number of bytes. - // A unit can store one context or two states. - unitSize = 12 - - maxUint16 = 1<<16 - 1 - freeMark = -1 -) - -var ( - errCorruptPPM = errors.New("rardecode: corrupt ppm data") - - expEscape = []byte{25, 14, 9, 7, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2} - initBinEsc = []uint16{0x3CDD, 0x1F3F, 0x59BF, 0x48F3, 0x64A1, 0x5ABC, 0x6632, 0x6051} - - ns2Index [256]byte - ns2BSIndex [256]byte - - // units2Index maps the number of units in a block to a freelist index - units2Index [128 + 1]byte - // index2Units maps a freelist index to the size of the block in units - index2Units [nIndexes]int32 -) - -func init() { - ns2BSIndex[0] = 2 * 0 - ns2BSIndex[1] = 2 * 1 - for i := 2; i < 11; i++ { - ns2BSIndex[i] = 2 * 2 - } - for i := 11; i < 256; i++ { - ns2BSIndex[i] = 2 * 3 - } - - var j, n byte - for i := range ns2Index { - ns2Index[i] = n - if j <= 3 { - n++ - j = n - } else { - j-- - } - } - - var ii byte - var iu, units int32 - for i, n := range []int{n0, n1, n2, n3, n4} { - for j := 0; j < n; j++ { - units += int32(i) - index2Units[ii] = units - for iu <= units { - units2Index[iu] = ii - iu++ - } - ii++ - } - } -} - -type rangeCoder struct { - br io.ByteReader - code uint32 - low uint32 - rnge uint32 -} - -func (r *rangeCoder) init(br io.ByteReader) error { - r.br = br - r.low = 0 - r.rnge = ^uint32(0) - for i := 0; i < 4; i++ { - c, err := r.br.ReadByte() - if err != nil { - return err - } - r.code = r.code<<8 | uint32(c) - } - return nil -} - -func (r *rangeCoder) currentCount(scale uint32) uint32 { - r.rnge /= scale - return (r.code - r.low) / r.rnge -} - -func (r *rangeCoder) normalize() error { - for { - if r.low^(r.low+r.rnge) >= rangeTop { - if r.rnge >= rangeBottom { - return nil - } - r.rnge = -r.low & (rangeBottom - 1) - } - c, err := r.br.ReadByte() - if err != nil { - return err - } - r.code = r.code<<8 | uint32(c) - r.rnge <<= 8 - r.low <<= 8 - } -} - -func (r *rangeCoder) decode(lowCount, highCount uint32) error { - r.low += r.rnge * lowCount - r.rnge *= highCount - lowCount - - return r.normalize() -} - -type see2Context struct { - summ uint16 - shift byte - count byte -} - -func newSee2Context(i uint16) see2Context { - return see2Context{i << (periodBits - 4), (periodBits - 4), 4} -} - -func (s *see2Context) mean() uint32 { - if s == nil { - return 1 - } - n := s.summ >> s.shift - if n == 0 { - return 1 - } - s.summ -= n - return uint32(n) -} - -func (s *see2Context) update() { - if s == nil || s.shift >= periodBits { - return - } - s.count-- - if s.count == 0 { - s.summ += s.summ - s.count = 3 << s.shift - s.shift++ - } -} - -type state struct { - sym byte - freq byte - - // succ can point to a context or byte in memory. - // A context pointer is a positive integer. It is an index into the states - // array that points to the first of two states which the context is - // marshalled into. - // A byte pointer is a negative integer. The magnitude represents the position - // in bytes from the bottom of the memory. As memory is modelled as an array of - // states, this is used to calculate which state, and where in the state the - // byte is stored. - // A zero value represents a nil pointer. - succ int32 -} - -// uint16 return a uint16 stored in the sym and freq fields of a state -func (s state) uint16() uint16 { return uint16(s.sym) | uint16(s.freq)<<8 } - -// setUint16 stores a uint16 in the sym and freq fields of a state -func (s *state) setUint16(n uint16) { s.sym = byte(n); s.freq = byte(n >> 8) } - -// A context is marshalled into a slice of two states. -// The first state contains the number of states, and the suffix pointer. -// If there is only one state, the second state contains that state. -// If there is more than one state, the second state contains the summFreq -// and the index to the slice of states. -type context struct { - i int32 // index into the states array for context - s []state // slice of two states representing context - a *subAllocator -} - -// succPtr returns a pointer value for the context to be stored in a state.succ -func (c *context) succPtr() int32 { return c.i } - -func (c *context) numStates() int { return int(c.s[0].uint16()) } - -func (c *context) setNumStates(n int) { c.s[0].setUint16(uint16(n)) } - -func (c *context) statesIndex() int32 { return c.s[1].succ } - -func (c *context) setStatesIndex(n int32) { c.s[1].succ = n } - -func (c *context) suffix() *context { return c.a.succContext(c.s[0].succ) } - -func (c *context) setSuffix(sc *context) { c.s[0].succ = sc.i } - -func (c *context) summFreq() uint16 { return c.s[1].uint16() } - -func (c *context) setSummFreq(f uint16) { c.s[1].setUint16(f) } - -func (c *context) notEq(ctx *context) bool { return c.i != ctx.i } - -func (c *context) states() []state { - if ns := int32(c.s[0].uint16()); ns != 1 { - i := c.s[1].succ - return c.a.states[i : i+ns] - } - return c.s[1:] -} - -// shrinkStates shrinks the state list down to size states -func (c *context) shrinkStates(states []state, size int) []state { - i1 := units2Index[(len(states)+1)>>1] - i2 := units2Index[(size+1)>>1] - - if size == 1 { - // store state in context, and free states block - n := c.statesIndex() - c.s[1] = states[0] - states = c.s[1:] - c.a.addFreeBlock(n, i1) - } else if i1 != i2 { - if n := c.a.removeFreeBlock(i2); n > 0 { - // allocate new block and copy - copy(c.a.states[n:], states[:size]) - states = c.a.states[n:] - // free old block - c.a.addFreeBlock(c.statesIndex(), i1) - c.setStatesIndex(n) - } else { - // split current block, and free units not needed - n = c.statesIndex() + index2Units[i2]<<1 - u := index2Units[i1] - index2Units[i2] - c.a.freeUnits(n, u) - } - } - c.setNumStates(size) - return states[:size] -} - -// expandStates expands the states list by one -func (c *context) expandStates() []state { - states := c.states() - ns := len(states) - if ns == 1 { - s := states[0] - n := c.a.allocUnits(1) - if n == 0 { - return nil - } - c.setStatesIndex(n) - states = c.a.states[n:] - states[0] = s - } else if ns&0x1 == 0 { - u := ns >> 1 - i1 := units2Index[u] - i2 := units2Index[u+1] - if i1 != i2 { - n := c.a.allocUnits(i2) - if n == 0 { - return nil - } - copy(c.a.states[n:], states) - c.a.addFreeBlock(c.statesIndex(), i1) - c.setStatesIndex(n) - states = c.a.states[n:] - } - } - c.setNumStates(ns + 1) - return states[:ns+1] -} - -type subAllocator struct { - // memory for allocation is split into two heaps - - heap1MaxBytes int32 // maximum bytes available in heap1 - heap1Lo int32 // heap1 bottom in number of bytes - heap1Hi int32 // heap1 top in number of bytes - heap2Lo int32 // heap2 bottom index in states - heap2Hi int32 // heap2 top index in states - glueCount int - - // Each freeList entry contains an index into states for the beginning - // of a free block. The first state in that block may contain an index - // to another free block and so on. The size of the free block in units - // (2 states) for that freeList index can be determined from the - // index2Units array. - freeList [nIndexes]int32 - - // Instead of bytes, memory is represented by a slice of states. - // context's are marshalled to and from a pair of states. - // multiple bytes are stored in a state. - states []state -} - -func (a *subAllocator) init(maxMB int) { - bytes := int32(maxMB) << 20 - heap2Units := bytes / 8 / unitSize * 7 - a.heap1MaxBytes = bytes - heap2Units*unitSize - // Add one for the case when bytes are not a multiple of unitSize - heap1Units := a.heap1MaxBytes/unitSize + 1 - // Calculate total size in state's. Add 1 unit so we can reserve the first unit. - // This will allow us to use the zero index as a nil pointer. - n := int(1+heap1Units+heap2Units) * 2 - if cap(a.states) > n { - a.states = a.states[:n] - } else { - a.states = make([]state, n) - } -} - -func (a *subAllocator) restart() { - // Pad heap1 start by 1 unit and enough bytes so that there is no - // gap between heap1 end and heap2 start. - a.heap1Lo = unitSize + (unitSize - a.heap1MaxBytes%unitSize) - a.heap1Hi = unitSize + (a.heap1MaxBytes/unitSize+1)*unitSize - a.heap2Lo = a.heap1Hi / unitSize * 2 - a.heap2Hi = int32(len(a.states)) - a.glueCount = 0 - for i := range a.freeList { - a.freeList[i] = 0 - } - for i := range a.states { - a.states[i] = state{} - } -} - -// pushByte puts a byte on the heap and returns a state.succ index that -// can be used to retrieve it. -func (a *subAllocator) pushByte(c byte) int32 { - si := a.heap1Lo / 6 // state index - oi := a.heap1Lo % 6 // byte position in state - switch oi { - case 0: - a.states[si].sym = c - case 1: - a.states[si].freq = c - default: - n := (uint(oi) - 2) * 8 - mask := ^(uint32(0xFF) << n) - succ := uint32(a.states[si].succ) & mask - succ |= uint32(c) << n - a.states[si].succ = int32(succ) - } - a.heap1Lo++ - if a.heap1Lo >= a.heap1Hi { - return 0 - } - return -a.heap1Lo -} - -// popByte reverses the previous pushByte -func (a *subAllocator) popByte() { a.heap1Lo-- } - -// succByte returns a byte from the heap given a state.succ index -func (a *subAllocator) succByte(i int32) byte { - i = -i - si := i / 6 - oi := i % 6 - switch oi { - case 0: - return a.states[si].sym - case 1: - return a.states[si].freq - default: - n := (uint(oi) - 2) * 8 - succ := uint32(a.states[si].succ) >> n - return byte(succ & 0xff) - } -} - -// succContext returns a context given a state.succ index -func (a *subAllocator) succContext(i int32) *context { - if i <= 0 { - return nil - } - return &context{i: i, s: a.states[i : i+2 : i+2], a: a} -} - -// succIsNil returns whether a state.succ points to nothing -func (a *subAllocator) succIsNil(i int32) bool { return i == 0 } - -// nextByteAddr takes a state.succ value representing a pointer -// to a byte, and returns the next bytes address -func (a *subAllocator) nextByteAddr(n int32) int32 { return n - 1 } - -func (a *subAllocator) removeFreeBlock(i byte) int32 { - n := a.freeList[i] - if n != 0 { - a.freeList[i] = a.states[n].succ - a.states[n] = state{} - } - return n -} - -func (a *subAllocator) addFreeBlock(n int32, i byte) { - a.states[n].succ = a.freeList[i] - a.freeList[i] = n -} - -func (a *subAllocator) freeUnits(n, u int32) { - i := units2Index[u] - if u != index2Units[i] { - i-- - a.addFreeBlock(n, i) - u -= index2Units[i] - n += index2Units[i] << 1 - i = units2Index[u] - } - a.addFreeBlock(n, i) -} - -func (a *subAllocator) glueFreeBlocks() { - var freeIndex int32 - - for i, n := range a.freeList { - s := state{succ: freeMark} - s.setUint16(uint16(index2Units[i])) - for n != 0 { - states := a.states[n:] - states[1].succ = freeIndex - freeIndex = n - n = states[0].succ - states[0] = s - } - a.freeList[i] = 0 - } - - for i := freeIndex; i != 0; i = a.states[i+1].succ { - if a.states[i].succ != freeMark { - continue - } - u := int32(a.states[i].uint16()) - states := a.states[i+u<<1:] - for len(states) > 0 && states[0].succ == freeMark { - u += int32(states[0].uint16()) - if u > maxUint16 { - break - } - states[0].succ = 0 - a.states[i].setUint16(uint16(u)) - states = a.states[i+u<<1:] - } - } - - for n := freeIndex; n != 0; n = a.states[n+1].succ { - if a.states[n].succ != freeMark { - continue - } - a.states[n].succ = 0 - u := int32(a.states[n].uint16()) - m := n - for u > 128 { - a.addFreeBlock(m, nIndexes-1) - u -= 128 - m += 256 - } - a.freeUnits(m, u) - } -} - -func (a *subAllocator) allocUnitsRare(index byte) int32 { - if a.glueCount == 0 { - a.glueCount = 255 - a.glueFreeBlocks() - if n := a.removeFreeBlock(index); n > 0 { - return n - } - } - // try to find a larger free block and split it - for i := index + 1; i < nIndexes; i++ { - if n := a.removeFreeBlock(i); n > 0 { - u := index2Units[i] - index2Units[index] - a.freeUnits(n+index2Units[index]<<1, u) - return n - } - } - a.glueCount-- - - // try to allocate units from the top of heap1 - n := a.heap1Hi - index2Units[index]*unitSize - if n > a.heap1Lo { - a.heap1Hi = n - return a.heap1Hi / unitSize * 2 - } - return 0 -} - -func (a *subAllocator) allocUnits(i byte) int32 { - // try to allocate a free block - if n := a.removeFreeBlock(i); n > 0 { - return n - } - // try to allocate from the bottom of heap2 - n := index2Units[i] << 1 - if a.heap2Lo+n <= a.heap2Hi { - lo := a.heap2Lo - a.heap2Lo += n - return lo - } - return a.allocUnitsRare(i) -} - -func (a *subAllocator) newContext(s state, suffix *context) *context { - var n int32 - if a.heap2Lo < a.heap2Hi { - // allocate from top of heap2 - a.heap2Hi -= 2 - n = a.heap2Hi - } else if n = a.removeFreeBlock(1); n == 0 { - if n = a.allocUnitsRare(1); n == 0 { - return nil - } - } - c := &context{i: n, s: a.states[n : n+2 : n+2], a: a} - c.s[0] = state{} - c.setNumStates(1) - c.s[1] = s - if suffix != nil { - c.setSuffix(suffix) - } - return c -} - -func (a *subAllocator) newContextSize(ns int) *context { - c := a.newContext(state{}, nil) - c.setNumStates(ns) - i := units2Index[(ns+1)>>1] - n := a.allocUnits(i) - c.setStatesIndex(n) - return c -} - -type model struct { - maxOrder int - orderFall int - initRL int - runLength int - prevSuccess byte - escCount byte - prevSym byte - initEsc byte - minC *context - maxC *context - rc rangeCoder - a subAllocator - charMask [256]byte - binSumm [128][64]uint16 - see2Cont [25][16]see2Context -} - -func (m *model) restart() { - for i := range m.charMask { - m.charMask[i] = 0 - } - m.escCount = 1 - - if m.maxOrder < 12 { - m.initRL = -m.maxOrder - 1 - } else { - m.initRL = -12 - 1 - } - m.orderFall = m.maxOrder - m.runLength = m.initRL - m.prevSuccess = 0 - - m.a.restart() - - c := m.a.newContextSize(256) - c.setSummFreq(257) - states := c.states() - for i := range states { - states[i] = state{sym: byte(i), freq: 1} - } - m.minC = c - m.maxC = c - m.prevSym = 0 - - for i := range m.binSumm { - for j, esc := range initBinEsc { - n := binScale - esc/(uint16(i)+2) - for k := j; k < len(m.binSumm[i]); k += len(initBinEsc) { - m.binSumm[i][k] = n - } - } - } - - for i := range m.see2Cont { - see := newSee2Context(5*uint16(i) + 10) - for j := range m.see2Cont[i] { - m.see2Cont[i][j] = see - } - } -} - -func (m *model) init(br io.ByteReader, reset bool, maxOrder, maxMB int) error { - err := m.rc.init(br) - if err != nil { - return err - } - if !reset { - if m.minC == nil { - return errCorruptPPM - } - return nil - } - - m.a.init(maxMB) - - if maxOrder == 1 { - return errCorruptPPM - } - m.maxOrder = maxOrder - m.restart() - return nil -} - -func (m *model) rescale(s *state) *state { - if s.freq <= maxFreq { - return s - } - c := m.minC - - var summFreq uint16 - - s.freq += 4 - states := c.states() - escFreq := c.summFreq() + 4 - - for i := range states { - f := states[i].freq - escFreq -= uint16(f) - if m.orderFall != 0 { - f++ - } - f >>= 1 - summFreq += uint16(f) - states[i].freq = f - - if i == 0 || f <= states[i-1].freq { - continue - } - j := i - 1 - for j > 0 && f > states[j-1].freq { - j-- - } - t := states[i] - copy(states[j+1:i+1], states[j:i]) - states[j] = t - } - - i := len(states) - 1 - for states[i].freq == 0 { - i-- - escFreq++ - } - if i != len(states)-1 { - states = c.shrinkStates(states, i+1) - } - s = &states[0] - if i == 0 { - for { - s.freq -= s.freq >> 1 - escFreq >>= 1 - if escFreq <= 1 { - return s - } - } - } - summFreq += escFreq - (escFreq >> 1) - c.setSummFreq(summFreq) - return s -} - -func (m *model) decodeBinSymbol() (*state, error) { - c := m.minC - s := &c.states()[0] - - ns := c.suffix().numStates() - i := m.prevSuccess + ns2BSIndex[ns-1] + byte(m.runLength>>26)&0x20 - if m.prevSym >= 64 { - i += 8 - } - if s.sym >= 64 { - i += 2 * 8 - } - bs := &m.binSumm[s.freq-1][i] - mean := (*bs + 1<<(periodBits-2)) >> periodBits - - if m.rc.currentCount(binScale) < uint32(*bs) { - err := m.rc.decode(0, uint32(*bs)) - if s.freq < 128 { - s.freq++ - } - *bs += 1<>10] - m.charMask[s.sym] = m.escCount - m.prevSuccess = 0 - return nil, err -} - -func (m *model) decodeSymbol1() (*state, error) { - c := m.minC - states := c.states() - scale := uint32(c.summFreq()) - // protect against divide by zero - // TODO: look at why this happens, may be problem elsewhere - if scale == 0 { - return nil, errCorruptPPM - } - count := m.rc.currentCount(scale) - m.prevSuccess = 0 - - var n uint32 - for i := range states { - s := &states[i] - n += uint32(s.freq) - if n <= count { - continue - } - err := m.rc.decode(n-uint32(s.freq), n) - s.freq += 4 - c.setSummFreq(uint16(scale + 4)) - if i == 0 { - if 2*n > scale { - m.prevSuccess = 1 - m.runLength++ - } - } else { - if s.freq <= states[i-1].freq { - return s, err - } - states[i-1], states[i] = states[i], states[i-1] - s = &states[i-1] - } - return m.rescale(s), err - } - - for _, s := range states { - m.charMask[s.sym] = m.escCount - } - return nil, m.rc.decode(n, scale) -} - -func (m *model) makeEscFreq(c *context, numMasked int) *see2Context { - ns := c.numStates() - if ns == 256 { - return nil - } - diff := ns - numMasked - - var i int - if m.prevSym >= 64 { - i = 8 - } - if diff < c.suffix().numStates()-ns { - i++ - } - if int(c.summFreq()) < 11*ns { - i += 2 - } - if numMasked > diff { - i += 4 - } - return &m.see2Cont[ns2Index[diff-1]][i] -} - -func (m *model) decodeSymbol2(numMasked int) (*state, error) { - c := m.minC - - see := m.makeEscFreq(c, numMasked) - scale := see.mean() - - var i int - var hi uint32 - states := c.states() - sl := make([]*state, len(states)-numMasked) - for j := range sl { - for m.charMask[states[i].sym] == m.escCount { - i++ - } - hi += uint32(states[i].freq) - sl[j] = &states[i] - i++ - } - - scale += hi - count := m.rc.currentCount(scale) - - if count >= scale { - return nil, errCorruptPPM - } - if count >= hi { - err := m.rc.decode(hi, scale) - if see != nil { - see.summ += uint16(scale) - } - for _, s := range sl { - m.charMask[s.sym] = m.escCount - } - return nil, err - } - - hi = uint32(sl[0].freq) - for hi <= count { - sl = sl[1:] - hi += uint32(sl[0].freq) - } - s := sl[0] - - err := m.rc.decode(hi-uint32(s.freq), hi) - - see.update() - - m.escCount++ - m.runLength = m.initRL - - s.freq += 4 - c.setSummFreq(c.summFreq() + 4) - return m.rescale(s), err -} - -func (c *context) findState(sym byte) *state { - var i int - states := c.states() - for i = range states { - if states[i].sym == sym { - break - } - } - return &states[i] -} - -func (m *model) createSuccessors(s, ss *state) *context { - var sl []*state - - if m.orderFall != 0 { - sl = append(sl, s) - } - - c := m.minC - for suff := c.suffix(); suff != nil; suff = c.suffix() { - c = suff - - if ss == nil { - ss = c.findState(s.sym) - } - if ss.succ != s.succ { - c = m.a.succContext(ss.succ) - break - } - sl = append(sl, ss) - ss = nil - } - - if len(sl) == 0 { - return c - } - - var up state - up.sym = m.a.succByte(s.succ) - up.succ = m.a.nextByteAddr(s.succ) - - states := c.states() - if len(states) > 1 { - s = c.findState(up.sym) - - cf := uint16(s.freq) - 1 - s0 := c.summFreq() - uint16(len(states)) - cf - - if 2*cf <= s0 { - if 5*cf > s0 { - up.freq = 2 - } else { - up.freq = 1 - } - } else { - up.freq = byte(1 + (2*cf+3*s0-1)/(2*s0)) - } - } else { - up.freq = states[0].freq - } - - for i := len(sl) - 1; i >= 0; i-- { - c = m.a.newContext(up, c) - if c == nil { - return nil - } - sl[i].succ = c.succPtr() - } - return c -} - -func (m *model) update(s *state) { - if m.orderFall == 0 { - if c := m.a.succContext(s.succ); c != nil { - m.minC = c - m.maxC = c - return - } - } - - if m.escCount == 0 { - m.escCount = 1 - for i := range m.charMask { - m.charMask[i] = 0 - } - } - - var ss *state // matching minC.suffix state - - if s.freq < maxFreq/4 && m.minC.suffix() != nil { - c := m.minC.suffix() - states := c.states() - - var i int - if len(states) > 1 { - for states[i].sym != s.sym { - i++ - } - if i > 0 && states[i].freq >= states[i-1].freq { - states[i-1], states[i] = states[i], states[i-1] - i-- - } - if states[i].freq < maxFreq-9 { - states[i].freq += 2 - c.setSummFreq(c.summFreq() + 2) - } - } else if states[0].freq < 32 { - states[0].freq++ - } - ss = &states[i] // save later for createSuccessors - } - - if m.orderFall == 0 { - c := m.createSuccessors(s, ss) - if c == nil { - m.restart() - } else { - m.minC = c - m.maxC = c - s.succ = c.succPtr() - } - return - } - - succ := m.a.pushByte(s.sym) - if m.a.succIsNil(succ) { - m.restart() - return - } - - var minC *context - if m.a.succIsNil(s.succ) { - s.succ = succ - minC = m.minC - } else { - minC = m.a.succContext(s.succ) - if minC == nil { - minC = m.createSuccessors(s, ss) - if minC == nil { - m.restart() - return - } - } - m.orderFall-- - if m.orderFall == 0 { - succ = minC.succPtr() - if m.maxC.notEq(m.minC) { - m.a.popByte() - } - } - } - - n := m.minC.numStates() - s0 := int(m.minC.summFreq()) - n - int(s.freq-1) - for c := m.maxC; c.notEq(m.minC); c = c.suffix() { - var summFreq uint16 - - states := c.expandStates() - if states == nil { - m.restart() - return - } - if ns := len(states) - 1; ns != 1 { - summFreq = c.summFreq() - if 4*ns <= n && int(summFreq) <= 8*ns { - summFreq += 2 - } - if 2*ns < n { - summFreq++ - } - } else { - p := &states[0] - if p.freq < maxFreq/4-1 { - p.freq += p.freq - } else { - p.freq = maxFreq - 4 - } - summFreq = uint16(p.freq) + uint16(m.initEsc) - if n > 3 { - summFreq++ - } - } - - cf := 2 * int(s.freq) * int(summFreq+6) - sf := s0 + int(summFreq) - var freq byte - if cf >= 6*sf { - switch { - case cf >= 15*sf: - freq = 7 - case cf >= 12*sf: - freq = 6 - case cf >= 9*sf: - freq = 5 - default: - freq = 4 - } - summFreq += uint16(freq) - } else { - switch { - case cf >= 4*sf: - freq = 3 - case cf > sf: - freq = 2 - default: - freq = 1 - } - summFreq += 3 - } - states[len(states)-1] = state{sym: s.sym, freq: freq, succ: succ} - c.setSummFreq(summFreq) - } - m.minC = minC - m.maxC = minC -} - -func (m *model) ReadByte() (byte, error) { - if m.minC == nil { - return 0, errCorruptPPM - } - var s *state - var err error - if m.minC.numStates() == 1 { - s, err = m.decodeBinSymbol() - } else { - s, err = m.decodeSymbol1() - } - for s == nil && err == nil { - n := m.minC.numStates() - for m.minC.numStates() == n { - m.orderFall++ - m.minC = m.minC.suffix() - if m.minC == nil { - return 0, errCorruptPPM - } - } - s, err = m.decodeSymbol2(n) - } - if err != nil { - return 0, err - } - - // save sym so it doesn't get overwritten by a possible restart() - sym := s.sym - m.update(s) - m.prevSym = sym - return sym, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/reader.go b/backend/vendor/github.com/nwaples/rardecode/reader.go deleted file mode 100644 index 11adc4fe..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/reader.go +++ /dev/null @@ -1,376 +0,0 @@ -package rardecode - -import ( - "bufio" - "bytes" - "errors" - "io" - "io/ioutil" - "os" - "time" -) - -// FileHeader HostOS types -const ( - HostOSUnknown = 0 - HostOSMSDOS = 1 - HostOSOS2 = 2 - HostOSWindows = 3 - HostOSUnix = 4 - HostOSMacOS = 5 - HostOSBeOS = 6 -) - -const ( - maxPassword = 128 -) - -var ( - errShortFile = errors.New("rardecode: decoded file too short") - errInvalidFileBlock = errors.New("rardecode: invalid file block") - errUnexpectedArcEnd = errors.New("rardecode: unexpected end of archive") - errBadFileChecksum = errors.New("rardecode: bad file checksum") -) - -type byteReader interface { - io.Reader - io.ByteReader -} - -type limitedReader struct { - r io.Reader - n int64 // bytes remaining - shortErr error // error returned when r returns io.EOF with n > 0 -} - -func (l *limitedReader) Read(p []byte) (int, error) { - if l.n <= 0 { - return 0, io.EOF - } - if int64(len(p)) > l.n { - p = p[0:l.n] - } - n, err := l.r.Read(p) - l.n -= int64(n) - if err == io.EOF && l.n > 0 { - return n, l.shortErr - } - return n, err -} - -type limitedByteReader struct { - limitedReader - br io.ByteReader -} - -func (l *limitedByteReader) ReadByte() (byte, error) { - if l.n <= 0 { - return 0, io.EOF - } - c, err := l.br.ReadByte() - if err == nil { - l.n-- - } else if err == io.EOF && l.n > 0 { - return 0, l.shortErr - } - return c, err -} - -// limitByteReader returns a limitedByteReader that reads from r and stops with -// io.EOF after n bytes. -// If r returns an io.EOF before reading n bytes, io.ErrUnexpectedEOF is returned. -func limitByteReader(r byteReader, n int64) *limitedByteReader { - return &limitedByteReader{limitedReader{r, n, io.ErrUnexpectedEOF}, r} -} - -// fileChecksum allows file checksum validations to be performed. -// File contents must first be written to fileChecksum. Then valid is -// called to perform the file checksum calculation to determine -// if the file contents are valid or not. -type fileChecksum interface { - io.Writer - valid() bool -} - -// FileHeader represents a single file in a RAR archive. -type FileHeader struct { - Name string // file name using '/' as the directory separator - IsDir bool // is a directory - HostOS byte // Host OS the archive was created on - Attributes int64 // Host OS specific file attributes - PackedSize int64 // packed file size (or first block if the file spans volumes) - UnPackedSize int64 // unpacked file size - UnKnownSize bool // unpacked file size is not known - ModificationTime time.Time // modification time (non-zero if set) - CreationTime time.Time // creation time (non-zero if set) - AccessTime time.Time // access time (non-zero if set) - Version int // file version -} - -// Mode returns an os.FileMode for the file, calculated from the Attributes field. -func (f *FileHeader) Mode() os.FileMode { - var m os.FileMode - - if f.IsDir { - m = os.ModeDir - } - if f.HostOS == HostOSWindows { - if f.IsDir { - m |= 0777 - } else if f.Attributes&1 > 0 { - m |= 0444 // readonly - } else { - m |= 0666 - } - return m - } - // assume unix perms for all remaining os types - m |= os.FileMode(f.Attributes) & os.ModePerm - - // only check other bits on unix host created archives - if f.HostOS != HostOSUnix { - return m - } - - if f.Attributes&0x200 != 0 { - m |= os.ModeSticky - } - if f.Attributes&0x400 != 0 { - m |= os.ModeSetgid - } - if f.Attributes&0x800 != 0 { - m |= os.ModeSetuid - } - - // Check for additional file types. - if f.Attributes&0xF000 == 0xA000 { - m |= os.ModeSymlink - } - return m -} - -// fileBlockHeader represents a file block in a RAR archive. -// Files may comprise one or more file blocks. -// Solid files retain decode tables and dictionary from previous solid files in the archive. -type fileBlockHeader struct { - first bool // first block in file - last bool // last block in file - solid bool // file is solid - winSize uint // log base 2 of decode window size - cksum fileChecksum // file checksum - decoder decoder // decoder to use for file - key []byte // key for AES, non-empty if file encrypted - iv []byte // iv for AES, non-empty if file encrypted - FileHeader -} - -// fileBlockReader provides sequential access to file blocks in a RAR archive. -type fileBlockReader interface { - io.Reader // Read's read data from the current file block - io.ByteReader // Read bytes from current file block - next() (*fileBlockHeader, error) // reads the next file block header at current position - reset() // resets encryption - isSolid() bool // is archive solid - version() int // returns current archive format version -} - -// packedFileReader provides sequential access to packed files in a RAR archive. -type packedFileReader struct { - r fileBlockReader - h *fileBlockHeader // current file header -} - -// nextBlockInFile reads the next file block in the current file at the current -// archive file position, or returns an error if there is a problem. -// It is invalid to call this when already at the last block in the current file. -func (f *packedFileReader) nextBlockInFile() error { - h, err := f.r.next() - if err != nil { - if err == io.EOF { - // archive ended, but file hasn't - return errUnexpectedArcEnd - } - return err - } - if h.first || h.Name != f.h.Name { - return errInvalidFileBlock - } - f.h = h - return nil -} - -// next advances to the next packed file in the RAR archive. -func (f *packedFileReader) next() (*fileBlockHeader, error) { - if f.h != nil { - // skip to last block in current file - for !f.h.last { - // discard remaining block data - if _, err := io.Copy(ioutil.Discard, f.r); err != nil { - return nil, err - } - if err := f.nextBlockInFile(); err != nil { - return nil, err - } - } - // discard last block data - if _, err := io.Copy(ioutil.Discard, f.r); err != nil { - return nil, err - } - } - var err error - f.h, err = f.r.next() // get next file block - if err != nil { - if err == errArchiveEnd { - return nil, io.EOF - } - return nil, err - } - if !f.h.first { - return nil, errInvalidFileBlock - } - return f.h, nil -} - -// Read reads the packed data for the current file into p. -func (f *packedFileReader) Read(p []byte) (int, error) { - n, err := f.r.Read(p) // read current block data - for err == io.EOF { // current block empty - if n > 0 { - return n, nil - } - if f.h == nil || f.h.last { - return 0, io.EOF // last block so end of file - } - if err := f.nextBlockInFile(); err != nil { - return 0, err - } - n, err = f.r.Read(p) // read new block data - } - return n, err -} - -func (f *packedFileReader) ReadByte() (byte, error) { - c, err := f.r.ReadByte() // read current block data - for err == io.EOF && f.h != nil && !f.h.last { // current block empty - if err := f.nextBlockInFile(); err != nil { - return 0, err - } - c, err = f.r.ReadByte() // read new block data - } - return c, err -} - -// Reader provides sequential access to files in a RAR archive. -type Reader struct { - r io.Reader // reader for current unpacked file - pr packedFileReader // reader for current packed file - dr decodeReader // reader for decoding and filters if file is compressed - cksum fileChecksum // current file checksum - solidr io.Reader // reader for solid file -} - -// Read reads from the current file in the RAR archive. -func (r *Reader) Read(p []byte) (int, error) { - n, err := r.r.Read(p) - if err == io.EOF && r.cksum != nil && !r.cksum.valid() { - return n, errBadFileChecksum - } - return n, err -} - -// Next advances to the next file in the archive. -func (r *Reader) Next() (*FileHeader, error) { - if r.solidr != nil { - // solid files must be read fully to update decoder information - if _, err := io.Copy(ioutil.Discard, r.solidr); err != nil { - return nil, err - } - } - - h, err := r.pr.next() // skip to next file - if err != nil { - return nil, err - } - r.solidr = nil - - br := byteReader(&r.pr) // start with packed file reader - - // check for encryption - if len(h.key) > 0 && len(h.iv) > 0 { - br = newAesDecryptReader(br, h.key, h.iv) // decrypt - } - r.r = br - // check for compression - if h.decoder != nil { - err = r.dr.init(br, h.decoder, h.winSize, !h.solid) - if err != nil { - return nil, err - } - r.r = &r.dr - if r.pr.r.isSolid() { - r.solidr = r.r - } - } - if h.UnPackedSize >= 0 && !h.UnKnownSize { - // Limit reading to UnPackedSize as there may be padding - r.r = &limitedReader{r.r, h.UnPackedSize, errShortFile} - } - r.cksum = h.cksum - if r.cksum != nil { - r.r = io.TeeReader(r.r, h.cksum) // write file data to checksum as it is read - } - fh := new(FileHeader) - *fh = h.FileHeader - return fh, nil -} - -func (r *Reader) init(fbr fileBlockReader) { - r.r = bytes.NewReader(nil) // initial reads will always return EOF - r.pr.r = fbr -} - -// NewReader creates a Reader reading from r. -// NewReader only supports single volume archives. -// Multi-volume archives must use OpenReader. -func NewReader(r io.Reader, password string) (*Reader, error) { - br, ok := r.(*bufio.Reader) - if !ok { - br = bufio.NewReader(r) - } - fbr, err := newFileBlockReader(br, password) - if err != nil { - return nil, err - } - rr := new(Reader) - rr.init(fbr) - return rr, nil -} - -type ReadCloser struct { - v *volume - Reader -} - -// Close closes the rar file. -func (rc *ReadCloser) Close() error { - return rc.v.Close() -} - -// Volumes returns the volume filenames that have been used in decoding the archive -// up to this point. This will include the current open volume if the archive is still -// being processed. -func (rc *ReadCloser) Volumes() []string { - return rc.v.files -} - -// OpenReader opens a RAR archive specified by the name and returns a ReadCloser. -func OpenReader(name, password string) (*ReadCloser, error) { - v, err := openVolume(name, password) - if err != nil { - return nil, err - } - rc := new(ReadCloser) - rc.v = v - rc.Reader.init(v) - return rc, nil -} diff --git a/backend/vendor/github.com/nwaples/rardecode/vm.go b/backend/vendor/github.com/nwaples/rardecode/vm.go deleted file mode 100644 index fd26a5a0..00000000 --- a/backend/vendor/github.com/nwaples/rardecode/vm.go +++ /dev/null @@ -1,687 +0,0 @@ -package rardecode - -import ( - "encoding/binary" - "errors" -) - -const ( - // vm flag bits - flagC = 1 // Carry - flagZ = 2 // Zero - flagS = 0x80000000 // Sign - - maxCommands = 25000000 // maximum number of commands that can be run in a program - - vmRegs = 8 // number if registers - vmSize = 0x40000 // memory size - vmMask = vmSize - 1 -) - -var ( - errInvalidVMInstruction = errors.New("rardecode: invalid vm instruction") -) - -type vm struct { - ip uint32 // instruction pointer - ipMod bool // ip was modified - fl uint32 // flag bits - r [vmRegs]uint32 // registers - m []byte // memory -} - -func (v *vm) setIP(ip uint32) { - v.ip = ip - v.ipMod = true -} - -// execute runs a list of commands on the vm. -func (v *vm) execute(cmd []command) { - v.ip = 0 // reset instruction pointer - for n := 0; n < maxCommands; n++ { - ip := v.ip - if ip >= uint32(len(cmd)) { - return - } - ins := cmd[ip] - ins.f(v, ins.bm, ins.op) // run cpu instruction - if v.ipMod { - // command modified ip, don't increment - v.ipMod = false - } else { - v.ip++ // increment ip for next command - } - } -} - -// newVM creates a new RAR virtual machine using the byte slice as memory. -func newVM(mem []byte) *vm { - v := new(vm) - - if cap(mem) < vmSize+4 { - v.m = make([]byte, vmSize+4) - copy(v.m, mem) - } else { - v.m = mem[:vmSize+4] - for i := len(mem); i < len(v.m); i++ { - v.m[i] = 0 - } - } - v.r[7] = vmSize - return v -} - -type operand interface { - get(v *vm, byteMode bool) uint32 - set(v *vm, byteMode bool, n uint32) -} - -// Immediate Operand -type opI uint32 - -func (op opI) get(v *vm, bm bool) uint32 { return uint32(op) } -func (op opI) set(v *vm, bm bool, n uint32) {} - -// Direct Operand -type opD uint32 - -func (op opD) get(v *vm, byteMode bool) uint32 { - if byteMode { - return uint32(v.m[op]) - } - return binary.LittleEndian.Uint32(v.m[op:]) -} - -func (op opD) set(v *vm, byteMode bool, n uint32) { - if byteMode { - v.m[op] = byte(n) - } else { - binary.LittleEndian.PutUint32(v.m[op:], n) - } -} - -// Register Operand -type opR uint32 - -func (op opR) get(v *vm, byteMode bool) uint32 { - if byteMode { - return v.r[op] & 0xFF - } - return v.r[op] -} - -func (op opR) set(v *vm, byteMode bool, n uint32) { - if byteMode { - v.r[op] = (v.r[op] & 0xFFFFFF00) | (n & 0xFF) - } else { - v.r[op] = n - } -} - -// Register Indirect Operand -type opRI uint32 - -func (op opRI) get(v *vm, byteMode bool) uint32 { - i := v.r[op] & vmMask - if byteMode { - return uint32(v.m[i]) - } - return binary.LittleEndian.Uint32(v.m[i:]) -} -func (op opRI) set(v *vm, byteMode bool, n uint32) { - i := v.r[op] & vmMask - if byteMode { - v.m[i] = byte(n) - } else { - binary.LittleEndian.PutUint32(v.m[i:], n) - } -} - -// Base Plus Index Indirect Operand -type opBI struct { - r uint32 - i uint32 -} - -func (op opBI) get(v *vm, byteMode bool) uint32 { - i := (v.r[op.r] + op.i) & vmMask - if byteMode { - return uint32(v.m[i]) - } - return binary.LittleEndian.Uint32(v.m[i:]) -} -func (op opBI) set(v *vm, byteMode bool, n uint32) { - i := (v.r[op.r] + op.i) & vmMask - if byteMode { - v.m[i] = byte(n) - } else { - binary.LittleEndian.PutUint32(v.m[i:], n) - } -} - -type commandFunc func(v *vm, byteMode bool, op []operand) - -type command struct { - f commandFunc - bm bool // is byte mode - op []operand -} - -var ( - ops = []struct { - f commandFunc - byteMode bool // supports byte mode - nops int // number of operands - jop bool // is a jump op - }{ - {mov, true, 2, false}, - {cmp, true, 2, false}, - {add, true, 2, false}, - {sub, true, 2, false}, - {jz, false, 1, true}, - {jnz, false, 1, true}, - {inc, true, 1, false}, - {dec, true, 1, false}, - {jmp, false, 1, true}, - {xor, true, 2, false}, - {and, true, 2, false}, - {or, true, 2, false}, - {test, true, 2, false}, - {js, false, 1, true}, - {jns, false, 1, true}, - {jb, false, 1, true}, - {jbe, false, 1, true}, - {ja, false, 1, true}, - {jae, false, 1, true}, - {push, false, 1, false}, - {pop, false, 1, false}, - {call, false, 1, true}, - {ret, false, 0, false}, - {not, true, 1, false}, - {shl, true, 2, false}, - {shr, true, 2, false}, - {sar, true, 2, false}, - {neg, true, 1, false}, - {pusha, false, 0, false}, - {popa, false, 0, false}, - {pushf, false, 0, false}, - {popf, false, 0, false}, - {movzx, false, 2, false}, - {movsx, false, 2, false}, - {xchg, true, 2, false}, - {mul, true, 2, false}, - {div, true, 2, false}, - {adc, true, 2, false}, - {sbb, true, 2, false}, - {print, false, 0, false}, - } -) - -func mov(v *vm, bm bool, op []operand) { - op[0].set(v, bm, op[1].get(v, bm)) -} - -func cmp(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - r := v1 - op[1].get(v, bm) - if r == 0 { - v.fl = flagZ - } else { - v.fl = 0 - if r > v1 { - v.fl = flagC - } - v.fl |= r & flagS - } -} - -func add(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - r := v1 + op[1].get(v, bm) - v.fl = 0 - signBit := uint32(flagS) - if bm { - r &= 0xFF - signBit = 0x80 - } - if r < v1 { - v.fl |= flagC - } - if r == 0 { - v.fl |= flagZ - } else if r&signBit > 0 { - v.fl |= flagS - } - op[0].set(v, bm, r) -} - -func sub(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - r := v1 - op[1].get(v, bm) - v.fl = 0 - - if r == 0 { - v.fl = flagZ - } else { - v.fl = 0 - if r > v1 { - v.fl = flagC - } - v.fl |= r & flagS - } - op[0].set(v, bm, r) -} - -func jz(v *vm, bm bool, op []operand) { - if v.fl&flagZ > 0 { - v.setIP(op[0].get(v, false)) - } -} - -func jnz(v *vm, bm bool, op []operand) { - if v.fl&flagZ == 0 { - v.setIP(op[0].get(v, false)) - } -} - -func inc(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) + 1 - if bm { - r &= 0xFF - } - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } -} - -func dec(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) - 1 - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } -} - -func jmp(v *vm, bm bool, op []operand) { - v.setIP(op[0].get(v, false)) -} - -func xor(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) ^ op[1].get(v, bm) - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } -} - -func and(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) & op[1].get(v, bm) - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } -} - -func or(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) | op[1].get(v, bm) - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } -} - -func test(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) & op[1].get(v, bm) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } -} - -func js(v *vm, bm bool, op []operand) { - if v.fl&flagS > 0 { - v.setIP(op[0].get(v, false)) - } -} - -func jns(v *vm, bm bool, op []operand) { - if v.fl&flagS == 0 { - v.setIP(op[0].get(v, false)) - } -} - -func jb(v *vm, bm bool, op []operand) { - if v.fl&flagC > 0 { - v.setIP(op[0].get(v, false)) - } -} - -func jbe(v *vm, bm bool, op []operand) { - if v.fl&(flagC|flagZ) > 0 { - v.setIP(op[0].get(v, false)) - } -} - -func ja(v *vm, bm bool, op []operand) { - if v.fl&(flagC|flagZ) == 0 { - v.setIP(op[0].get(v, false)) - } -} - -func jae(v *vm, bm bool, op []operand) { - if v.fl&flagC == 0 { - v.setIP(op[0].get(v, false)) - } -} - -func push(v *vm, bm bool, op []operand) { - v.r[7] -= 4 - opRI(7).set(v, false, op[0].get(v, false)) - -} - -func pop(v *vm, bm bool, op []operand) { - op[0].set(v, false, opRI(7).get(v, false)) - v.r[7] += 4 -} - -func call(v *vm, bm bool, op []operand) { - v.r[7] -= 4 - opRI(7).set(v, false, v.ip+1) - v.setIP(op[0].get(v, false)) -} - -func ret(v *vm, bm bool, op []operand) { - r7 := v.r[7] - if r7 >= vmSize { - v.setIP(0xFFFFFFFF) // trigger end of program - } else { - v.setIP(binary.LittleEndian.Uint32(v.m[r7:])) - v.r[7] += 4 - } -} - -func not(v *vm, bm bool, op []operand) { - op[0].set(v, bm, ^op[0].get(v, bm)) -} - -func shl(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - v2 := op[1].get(v, bm) - r := v1 << v2 - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } - if (v1<<(v2-1))&0x80000000 > 0 { - v.fl |= flagC - } -} - -func shr(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - v2 := op[1].get(v, bm) - r := v1 >> v2 - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } - if (v1>>(v2-1))&0x1 > 0 { - v.fl |= flagC - } -} - -func sar(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - v2 := op[1].get(v, bm) - r := uint32(int32(v1) >> v2) - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } - if (v1>>(v2-1))&0x1 > 0 { - v.fl |= flagC - } -} - -func neg(v *vm, bm bool, op []operand) { - r := 0 - op[0].get(v, bm) - op[0].set(v, bm, r) - if r == 0 { - v.fl = flagZ - } else { - v.fl = r&flagS | flagC - } -} - -func pusha(v *vm, bm bool, op []operand) { - sp := opD(v.r[7]) - for _, r := range v.r { - sp = (sp - 4) & vmMask - sp.set(v, false, r) - } - v.r[7] = uint32(sp) -} - -func popa(v *vm, bm bool, op []operand) { - sp := opD(v.r[7]) - for i := 7; i >= 0; i-- { - v.r[i] = sp.get(v, false) - sp = (sp + 4) & vmMask - } -} - -func pushf(v *vm, bm bool, op []operand) { - v.r[7] -= 4 - opRI(7).set(v, false, v.fl) -} - -func popf(v *vm, bm bool, op []operand) { - v.fl = opRI(7).get(v, false) - v.r[7] += 4 -} - -func movzx(v *vm, bm bool, op []operand) { - op[0].set(v, false, op[1].get(v, true)) -} - -func movsx(v *vm, bm bool, op []operand) { - op[0].set(v, false, uint32(int8(op[1].get(v, true)))) -} - -func xchg(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - op[0].set(v, bm, op[1].get(v, bm)) - op[1].set(v, bm, v1) -} - -func mul(v *vm, bm bool, op []operand) { - r := op[0].get(v, bm) * op[1].get(v, bm) - op[0].set(v, bm, r) -} - -func div(v *vm, bm bool, op []operand) { - div := op[1].get(v, bm) - if div != 0 { - r := op[0].get(v, bm) / div - op[0].set(v, bm, r) - } -} - -func adc(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - fc := v.fl & flagC - r := v1 + op[1].get(v, bm) + fc - if bm { - r &= 0xFF - } - op[0].set(v, bm, r) - - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } - if r < v1 || (r == v1 && fc > 0) { - v.fl |= flagC - } -} - -func sbb(v *vm, bm bool, op []operand) { - v1 := op[0].get(v, bm) - fc := v.fl & flagC - r := v1 - op[1].get(v, bm) - fc - if bm { - r &= 0xFF - } - op[0].set(v, bm, r) - - if r == 0 { - v.fl = flagZ - } else { - v.fl = r & flagS - } - if r > v1 || (r == v1 && fc > 0) { - v.fl |= flagC - } -} - -func print(v *vm, bm bool, op []operand) { - // TODO: ignore print for the moment -} - -func decodeArg(br *rarBitReader, byteMode bool) (operand, error) { - n, err := br.readBits(1) - if err != nil { - return nil, err - } - if n > 0 { // Register - n, err = br.readBits(3) - return opR(n), err - } - n, err = br.readBits(1) - if err != nil { - return nil, err - } - if n == 0 { // Immediate - if byteMode { - n, err = br.readBits(8) - } else { - m, err := br.readUint32() - return opI(m), err - } - return opI(n), err - } - n, err = br.readBits(1) - if err != nil { - return nil, err - } - if n == 0 { - // Register Indirect - n, err = br.readBits(3) - return opRI(n), err - } - n, err = br.readBits(1) - if err != nil { - return nil, err - } - if n == 0 { - // Base + Index Indirect - n, err = br.readBits(3) - if err != nil { - return nil, err - } - i, err := br.readUint32() - return opBI{r: uint32(n), i: i}, err - } - // Direct addressing - m, err := br.readUint32() - return opD(m & vmMask), err -} - -func fixJumpOp(op operand, off int) operand { - n, ok := op.(opI) - if !ok { - return op - } - if n >= 256 { - return n - 256 - } - if n >= 136 { - n -= 264 - } else if n >= 16 { - n -= 8 - } else if n >= 8 { - n -= 16 - } - return n + opI(off) -} - -func readCommands(br *rarBitReader) ([]command, error) { - var cmds []command - - for { - code, err := br.readBits(4) - if err != nil { - return cmds, err - } - if code&0x08 > 0 { - n, err := br.readBits(2) - if err != nil { - return cmds, err - } - code = (code<<2 | n) - 24 - } - - if code >= len(ops) { - return cmds, errInvalidVMInstruction - } - ins := ops[code] - - var com command - - if ins.byteMode { - n, err := br.readBits(1) - if err != nil { - return cmds, err - } - com.bm = n > 0 - } - com.f = ins.f - - if ins.nops > 0 { - com.op = make([]operand, ins.nops) - com.op[0], err = decodeArg(br, com.bm) - if err != nil { - return cmds, err - } - if ins.nops == 2 { - com.op[1], err = decodeArg(br, com.bm) - if err != nil { - return cmds, err - } - } else if ins.jop { - com.op[0] = fixJumpOp(com.op[0], len(cmds)) - } - } - cmds = append(cmds, com) - } -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/.dockerignore b/backend/vendor/github.com/pelletier/go-toml/v2/.dockerignore deleted file mode 100644 index 7b588347..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -cmd/tomll/tomll -cmd/tomljson/tomljson diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/.gitattributes b/backend/vendor/github.com/pelletier/go-toml/v2/.gitattributes deleted file mode 100644 index 34a0a21a..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -* text=auto - -benchmark/benchmark.toml text eol=lf -testdata/** text eol=lf diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/.gitignore b/backend/vendor/github.com/pelletier/go-toml/v2/.gitignore deleted file mode 100644 index a69e2b0e..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -test_program/test_program_bin -fuzz/ -cmd/tomll/tomll -cmd/tomljson/tomljson -cmd/tomltestgen/tomltestgen -dist \ No newline at end of file diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/.golangci.toml b/backend/vendor/github.com/pelletier/go-toml/v2/.golangci.toml deleted file mode 100644 index 067db551..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/.golangci.toml +++ /dev/null @@ -1,84 +0,0 @@ -[service] -golangci-lint-version = "1.39.0" - -[linters-settings.wsl] -allow-assign-and-anything = true - -[linters-settings.exhaustive] -default-signifies-exhaustive = true - -[linters] -disable-all = true -enable = [ - "asciicheck", - "bodyclose", - "cyclop", - "deadcode", - "depguard", - "dogsled", - "dupl", - "durationcheck", - "errcheck", - "errorlint", - "exhaustive", - # "exhaustivestruct", - "exportloopref", - "forbidigo", - # "forcetypeassert", - "funlen", - "gci", - # "gochecknoglobals", - "gochecknoinits", - "gocognit", - "goconst", - "gocritic", - "gocyclo", - "godot", - "godox", - # "goerr113", - "gofmt", - "gofumpt", - "goheader", - "goimports", - "golint", - "gomnd", - # "gomoddirectives", - "gomodguard", - "goprintffuncname", - "gosec", - "gosimple", - "govet", - # "ifshort", - "importas", - "ineffassign", - "lll", - "makezero", - "misspell", - "nakedret", - "nestif", - "nilerr", - # "nlreturn", - "noctx", - "nolintlint", - #"paralleltest", - "prealloc", - "predeclared", - "revive", - "rowserrcheck", - "sqlclosecheck", - "staticcheck", - "structcheck", - "stylecheck", - # "testpackage", - "thelper", - "tparallel", - "typecheck", - "unconvert", - "unparam", - "unused", - "varcheck", - "wastedassign", - "whitespace", - # "wrapcheck", - # "wsl" -] diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml b/backend/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml deleted file mode 100644 index 3aa1840e..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml +++ /dev/null @@ -1,123 +0,0 @@ -before: - hooks: - - go mod tidy - - go fmt ./... - - go test ./... -builds: - - id: tomll - main: ./cmd/tomll - binary: tomll - env: - - CGO_ENABLED=0 - flags: - - -trimpath - ldflags: - - -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} - mod_timestamp: '{{ .CommitTimestamp }}' - targets: - - linux_amd64 - - linux_arm64 - - linux_arm - - windows_amd64 - - windows_arm64 - - windows_arm - - darwin_amd64 - - darwin_arm64 - - id: tomljson - main: ./cmd/tomljson - binary: tomljson - env: - - CGO_ENABLED=0 - flags: - - -trimpath - ldflags: - - -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} - mod_timestamp: '{{ .CommitTimestamp }}' - targets: - - linux_amd64 - - linux_arm64 - - linux_arm - - windows_amd64 - - windows_arm64 - - windows_arm - - darwin_amd64 - - darwin_arm64 - - id: jsontoml - main: ./cmd/jsontoml - binary: jsontoml - env: - - CGO_ENABLED=0 - flags: - - -trimpath - ldflags: - - -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} - mod_timestamp: '{{ .CommitTimestamp }}' - targets: - - linux_amd64 - - linux_arm64 - - linux_arm - - windows_amd64 - - windows_arm64 - - windows_arm - - darwin_amd64 - - darwin_arm64 -universal_binaries: - - id: tomll - replace: true - name_template: tomll - - id: tomljson - replace: true - name_template: tomljson - - id: jsontoml - replace: true - name_template: jsontoml -archives: -- id: jsontoml - format: tar.xz - builds: - - jsontoml - files: - - none* - name_template: "{{ .Binary }}_{{.Version}}_{{ .Os }}_{{ .Arch }}" -- id: tomljson - format: tar.xz - builds: - - tomljson - files: - - none* - name_template: "{{ .Binary }}_{{.Version}}_{{ .Os }}_{{ .Arch }}" -- id: tomll - format: tar.xz - builds: - - tomll - files: - - none* - name_template: "{{ .Binary }}_{{.Version}}_{{ .Os }}_{{ .Arch }}" -dockers: - - id: tools - goos: linux - goarch: amd64 - ids: - - jsontoml - - tomljson - - tomll - image_templates: - - "ghcr.io/pelletier/go-toml:latest" - - "ghcr.io/pelletier/go-toml:{{ .Tag }}" - - "ghcr.io/pelletier/go-toml:v{{ .Major }}" - skip_push: false -checksum: - name_template: 'sha256sums.txt' -snapshot: - name_template: "{{ incpatch .Version }}-next" -release: - github: - owner: pelletier - name: go-toml - draft: true - prerelease: auto - mode: replace -changelog: - use: github-native -announce: - skip: true diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md b/backend/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md deleted file mode 100644 index 04dd12bc..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md +++ /dev/null @@ -1,196 +0,0 @@ -# Contributing - -Thank you for your interest in go-toml! We appreciate you considering -contributing to go-toml! - -The main goal is the project is to provide an easy-to-use and efficient TOML -implementation for Go that gets the job done and gets out of your way – dealing -with TOML is probably not the central piece of your project. - -As the single maintainer of go-toml, time is scarce. All help, big or small, is -more than welcomed! - -## Ask questions - -Any question you may have, somebody else might have it too. Always feel free to -ask them on the [discussion board][discussions]. We will try to answer them as -clearly and quickly as possible, time permitting. - -Asking questions also helps us identify areas where the documentation needs -improvement, or new features that weren't envisioned before. Sometimes, a -seemingly innocent question leads to the fix of a bug. Don't hesitate and ask -away! - -[discussions]: https://github.com/pelletier/go-toml/discussions - -## Improve the documentation - -The best way to share your knowledge and experience with go-toml is to improve -the documentation. Fix a typo, clarify an interface, add an example, anything -goes! - -The documentation is present in the [README][readme] and thorough the source -code. On release, it gets updated on [pkg.go.dev][pkg.go.dev]. To make a change -to the documentation, create a pull request with your proposed changes. For -simple changes like that, the easiest way to go is probably the "Fork this -project and edit the file" button on Github, displayed at the top right of the -file. Unless it's a trivial change (for example a typo), provide a little bit of -context in your pull request description or commit message. - -## Report a bug - -Found a bug! Sorry to hear that :(. Help us and other track them down and fix by -reporting it. [File a new bug report][bug-report] on the [issues -tracker][issues-tracker]. The template should provide enough guidance on what to -include. When in doubt: add more details! By reducing ambiguity and providing -more information, it decreases back and forth and saves everyone time. - -## Code changes - -Want to contribute a patch? Very happy to hear that! - -First, some high-level rules: - -- A short proposal with some POC code is better than a lengthy piece of text - with no code. Code speaks louder than words. That being said, bigger changes - should probably start with a [discussion][discussions]. -- No backward-incompatible patch will be accepted unless discussed. Sometimes - it's hard, but we try not to break people's programs unless we absolutely have - to. -- If you are writing a new feature or extending an existing one, make sure to - write some documentation. -- Bug fixes need to be accompanied with regression tests. -- New code needs to be tested. -- Your commit messages need to explain why the change is needed, even if already - included in the PR description. - -It does sound like a lot, but those best practices are here to save time overall -and continuously improve the quality of the project, which is something everyone -benefits from. - -### Get started - -The fairly standard code contribution process looks like that: - -1. [Fork the project][fork]. -2. Make your changes, commit on any branch you like. -3. [Open up a pull request][pull-request] -4. Review, potential ask for changes. -5. Merge. - -Feel free to ask for help! You can create draft pull requests to gather -some early feedback! - -### Run the tests - -You can run tests for go-toml using Go's test tool: `go test -race ./...`. - -During the pull request process, all tests will be ran on Linux, Windows, and -MacOS on the last two versions of Go. - -However, given GitHub's new policy to _not_ run Actions on pull requests until a -maintainer clicks on button, it is highly recommended that you run them locally -as you make changes. - -### Check coverage - -We use `go tool cover` to compute test coverage. Most code editors have a way to -run and display code coverage, but at the end of the day, we do this: - -``` -go test -covermode=atomic -coverprofile=coverage.out -go tool cover -func=coverage.out -``` - -and verify that the overall percentage of tested code does not go down. This is -a requirement. As a rule of thumb, all lines of code touched by your changes -should be covered. On Unix you can use `./ci.sh coverage -d v2` to check if your -code lowers the coverage. - -### Verify performance - -Go-toml aims to stay efficient. We rely on a set of scenarios executed with Go's -builtin benchmark systems. Because of their noisy nature, containers provided by -Github Actions cannot be reliably used for benchmarking. As a result, you are -responsible for checking that your changes do not incur a performance penalty. -You can run their following to execute benchmarks: - -``` -go test ./... -bench=. -count=10 -``` - -Benchmark results should be compared against each other with -[benchstat][benchstat]. Typical flow looks like this: - -1. On the `v2` branch, run `go test ./... -bench=. -count 10` and save output to - a file (for example `old.txt`). -2. Make some code changes. -3. Run `go test ....` again, and save the output to an other file (for example - `new.txt`). -4. Run `benchstat old.txt new.txt` to check that time/op does not go up in any - test. - -On Unix you can use `./ci.sh benchmark -d v2` to verify how your code impacts -performance. - -It is highly encouraged to add the benchstat results to your pull request -description. Pull requests that lower performance will receive more scrutiny. - -[benchstat]: https://pkg.go.dev/golang.org/x/perf/cmd/benchstat - -### Style - -Try to look around and follow the same format and structure as the rest of the -code. We enforce using `go fmt` on the whole code base. - ---- - -## Maintainers-only - -### Merge pull request - -Checklist: - -- Passing CI. -- Does not introduce backward-incompatible changes (unless discussed). -- Has relevant doc changes. -- Benchstat does not show performance regression. -- Pull request is [labeled appropriately][pr-labels]. -- Title will be understandable in the changelog. - -1. Merge using "squash and merge". -2. Make sure to edit the commit message to keep all the useful information - nice and clean. -3. Make sure the commit title is clear and contains the PR number (#123). - -### New release - -1. Decide on the next version number. Use semver. -2. Generate release notes using [`gh`][gh]. Example: -``` -$ gh api -X POST \ - -F tag_name='v2.0.0-beta.5' \ - -F target_commitish='v2' \ - -F previous_tag_name='v2.0.0-beta.4' \ - --jq '.body' \ - repos/pelletier/go-toml/releases/generate-notes -``` -3. Look for "Other changes". That would indicate a pull request not labeled - properly. Tweak labels and pull request titles until changelog looks good for - users. -4. [Draft new release][new-release]. -5. Fill tag and target with the same value used to generate the changelog. -6. Set title to the new tag value. -7. Paste the generated changelog. -8. Check "create discussion", in the "Releases" category. -9. Check pre-release if new version is an alpha or beta. - -[issues-tracker]: https://github.com/pelletier/go-toml/issues -[bug-report]: https://github.com/pelletier/go-toml/issues/new?template=bug_report.md -[pkg.go.dev]: https://pkg.go.dev/github.com/pelletier/go-toml -[readme]: ./README.md -[fork]: https://help.github.com/articles/fork-a-repo -[pull-request]: https://help.github.com/en/articles/creating-a-pull-request -[new-release]: https://github.com/pelletier/go-toml/releases/new -[gh]: https://github.com/cli/cli -[pr-labels]: https://github.com/pelletier/go-toml/blob/v2/.github/release.yml diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/Dockerfile b/backend/vendor/github.com/pelletier/go-toml/v2/Dockerfile deleted file mode 100644 index b9e93323..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM scratch -ENV PATH "$PATH:/bin" -COPY tomll /bin/tomll -COPY tomljson /bin/tomljson -COPY jsontoml /bin/jsontoml diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/LICENSE b/backend/vendor/github.com/pelletier/go-toml/v2/LICENSE deleted file mode 100644 index 6839d51c..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/README.md b/backend/vendor/github.com/pelletier/go-toml/v2/README.md deleted file mode 100644 index d53f4397..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/README.md +++ /dev/null @@ -1,563 +0,0 @@ -# go-toml v2 - -Go library for the [TOML](https://toml.io/en/) format. - -This library supports [TOML v1.0.0](https://toml.io/en/v1.0.0). - -[🐞 Bug Reports](https://github.com/pelletier/go-toml/issues) - -[💬 Anything else](https://github.com/pelletier/go-toml/discussions) - -## Documentation - -Full API, examples, and implementation notes are available in the Go -documentation. - -[![Go Reference](https://pkg.go.dev/badge/github.com/pelletier/go-toml/v2.svg)](https://pkg.go.dev/github.com/pelletier/go-toml/v2) - -## Import - -```go -import "github.com/pelletier/go-toml/v2" -``` - -See [Modules](#Modules). - -## Features - -### Stdlib behavior - -As much as possible, this library is designed to behave similarly as the -standard library's `encoding/json`. - -### Performance - -While go-toml favors usability, it is written with performance in mind. Most -operations should not be shockingly slow. See [benchmarks](#benchmarks). - -### Strict mode - -`Decoder` can be set to "strict mode", which makes it error when some parts of -the TOML document was not present in the target structure. This is a great way -to check for typos. [See example in the documentation][strict]. - -[strict]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#example-Decoder.DisallowUnknownFields - -### Contextualized errors - -When most decoding errors occur, go-toml returns [`DecodeError`][decode-err]), -which contains a human readable contextualized version of the error. For -example: - -``` -2| key1 = "value1" -3| key2 = "missing2" - | ~~~~ missing field -4| key3 = "missing3" -5| key4 = "value4" -``` - -[decode-err]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#DecodeError - -### Local date and time support - -TOML supports native [local date/times][ldt]. It allows to represent a given -date, time, or date-time without relation to a timezone or offset. To support -this use-case, go-toml provides [`LocalDate`][tld], [`LocalTime`][tlt], and -[`LocalDateTime`][tldt]. Those types can be transformed to and from `time.Time`, -making them convenient yet unambiguous structures for their respective TOML -representation. - -[ldt]: https://toml.io/en/v1.0.0#local-date-time -[tld]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#LocalDate -[tlt]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#LocalTime -[tldt]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#LocalDateTime - -## Getting started - -Given the following struct, let's see how to read it and write it as TOML: - -```go -type MyConfig struct { - Version int - Name string - Tags []string -} -``` - -### Unmarshaling - -[`Unmarshal`][unmarshal] reads a TOML document and fills a Go structure with its -content. For example: - -```go -doc := ` -version = 2 -name = "go-toml" -tags = ["go", "toml"] -` - -var cfg MyConfig -err := toml.Unmarshal([]byte(doc), &cfg) -if err != nil { - panic(err) -} -fmt.Println("version:", cfg.Version) -fmt.Println("name:", cfg.Name) -fmt.Println("tags:", cfg.Tags) - -// Output: -// version: 2 -// name: go-toml -// tags: [go toml] -``` - -[unmarshal]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#Unmarshal - -### Marshaling - -[`Marshal`][marshal] is the opposite of Unmarshal: it represents a Go structure -as a TOML document: - -```go -cfg := MyConfig{ - Version: 2, - Name: "go-toml", - Tags: []string{"go", "toml"}, -} - -b, err := toml.Marshal(cfg) -if err != nil { - panic(err) -} -fmt.Println(string(b)) - -// Output: -// Version = 2 -// Name = 'go-toml' -// Tags = ['go', 'toml'] -``` - -[marshal]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#Marshal - -## Unstable API - -This API does not yet follow the backward compatibility guarantees of this -library. They provide early access to features that may have rough edges or an -API subject to change. - -### Parser - -Parser is the unstable API that allows iterative parsing of a TOML document at -the AST level. See https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable. - -## Benchmarks - -Execution time speedup compared to other Go TOML libraries: - - - - - - - - - - - - - -
Benchmarkgo-toml v1BurntSushi/toml
Marshal/HugoFrontMatter-21.9x1.9x
Marshal/ReferenceFile/map-21.7x1.8x
Marshal/ReferenceFile/struct-22.2x2.5x
Unmarshal/HugoFrontMatter-22.9x2.9x
Unmarshal/ReferenceFile/map-22.6x2.9x
Unmarshal/ReferenceFile/struct-24.4x5.3x
-
See more -

The table above has the results of the most common use-cases. The table below -contains the results of all benchmarks, including unrealistic ones. It is -provided for completeness.

- - - - - - - - - - - - - - - - - - -
Benchmarkgo-toml v1BurntSushi/toml
Marshal/SimpleDocument/map-21.8x2.9x
Marshal/SimpleDocument/struct-22.7x4.2x
Unmarshal/SimpleDocument/map-24.5x3.1x
Unmarshal/SimpleDocument/struct-26.2x3.9x
UnmarshalDataset/example-23.1x3.5x
UnmarshalDataset/code-22.3x3.1x
UnmarshalDataset/twitter-22.5x2.6x
UnmarshalDataset/citm_catalog-22.1x2.2x
UnmarshalDataset/canada-21.6x1.3x
UnmarshalDataset/config-24.3x3.2x
[Geo mean]2.7x2.8x
-

This table can be generated with ./ci.sh benchmark -a -html.

-
- -## Modules - -go-toml uses Go's standard modules system. - -Installation instructions: - -- Go ≥ 1.16: Nothing to do. Use the import in your code. The `go` command deals - with it automatically. -- Go ≥ 1.13: `GO111MODULE=on go get github.com/pelletier/go-toml/v2`. - -In case of trouble: [Go Modules FAQ][mod-faq]. - -[mod-faq]: https://github.com/golang/go/wiki/Modules#why-does-installing-a-tool-via-go-get-fail-with-error-cannot-find-main-module - -## Tools - -Go-toml provides three handy command line tools: - - * `tomljson`: Reads a TOML file and outputs its JSON representation. - - ``` - $ go install github.com/pelletier/go-toml/v2/cmd/tomljson@latest - $ tomljson --help - ``` - - * `jsontoml`: Reads a JSON file and outputs a TOML representation. - - ``` - $ go install github.com/pelletier/go-toml/v2/cmd/jsontoml@latest - $ jsontoml --help - ``` - - * `tomll`: Lints and reformats a TOML file. - - ``` - $ go install github.com/pelletier/go-toml/v2/cmd/tomll@latest - $ tomll --help - ``` - -### Docker image - -Those tools are also available as a [Docker image][docker]. For example, to use -`tomljson`: - -``` -docker run -i ghcr.io/pelletier/go-toml:v2 tomljson < example.toml -``` - -Multiple versions are availble on [ghcr.io][docker]. - -[docker]: https://github.com/pelletier/go-toml/pkgs/container/go-toml - -## Migrating from v1 - -This section describes the differences between v1 and v2, with some pointers on -how to get the original behavior when possible. - -### Decoding / Unmarshal - -#### Automatic field name guessing - -When unmarshaling to a struct, if a key in the TOML document does not exactly -match the name of a struct field or any of the `toml`-tagged field, v1 tries -multiple variations of the key ([code][v1-keys]). - -V2 instead does a case-insensitive matching, like `encoding/json`. - -This could impact you if you are relying on casing to differentiate two fields, -and one of them is a not using the `toml` struct tag. The recommended solution -is to be specific about tag names for those fields using the `toml` struct tag. - -[v1-keys]: https://github.com/pelletier/go-toml/blob/a2e52561804c6cd9392ebf0048ca64fe4af67a43/marshal.go#L775-L781 - -#### Ignore preexisting value in interface - -When decoding into a non-nil `interface{}`, go-toml v1 uses the type of the -element in the interface to decode the object. For example: - -```go -type inner struct { - B interface{} -} -type doc struct { - A interface{} -} - -d := doc{ - A: inner{ - B: "Before", - }, -} - -data := ` -[A] -B = "After" -` - -toml.Unmarshal([]byte(data), &d) -fmt.Printf("toml v1: %#v\n", d) - -// toml v1: main.doc{A:main.inner{B:"After"}} -``` - -In this case, field `A` is of type `interface{}`, containing a `inner` struct. -V1 sees that type and uses it when decoding the object. - -When decoding an object into an `interface{}`, V2 instead disregards whatever -value the `interface{}` may contain and replaces it with a -`map[string]interface{}`. With the same data structure as above, here is what -the result looks like: - -```go -toml.Unmarshal([]byte(data), &d) -fmt.Printf("toml v2: %#v\n", d) - -// toml v2: main.doc{A:map[string]interface {}{"B":"After"}} -``` - -This is to match `encoding/json`'s behavior. There is no way to make the v2 -decoder behave like v1. - -#### Values out of array bounds ignored - -When decoding into an array, v1 returns an error when the number of elements -contained in the doc is superior to the capacity of the array. For example: - -```go -type doc struct { - A [2]string -} -d := doc{} -err := toml.Unmarshal([]byte(`A = ["one", "two", "many"]`), &d) -fmt.Println(err) - -// (1, 1): unmarshal: TOML array length (3) exceeds destination array length (2) -``` - -In the same situation, v2 ignores the last value: - -```go -err := toml.Unmarshal([]byte(`A = ["one", "two", "many"]`), &d) -fmt.Println("err:", err, "d:", d) -// err: d: {[one two]} -``` - -This is to match `encoding/json`'s behavior. There is no way to make the v2 -decoder behave like v1. - -#### Support for `toml.Unmarshaler` has been dropped - -This method was not widely used, poorly defined, and added a lot of complexity. -A similar effect can be achieved by implementing the `encoding.TextUnmarshaler` -interface and use strings. - -#### Support for `default` struct tag has been dropped - -This feature adds complexity and a poorly defined API for an effect that can be -accomplished outside of the library. - -It does not seem like other format parsers in Go support that feature (the -project referenced in the original ticket #202 has not been updated since 2017). -Given that go-toml v2 should not touch values not in the document, the same -effect can be achieved by pre-filling the struct with defaults (libraries like -[go-defaults][go-defaults] can help). Also, string representation is not well -defined for all types: it creates issues like #278. - -The recommended replacement is pre-filling the struct before unmarshaling. - -[go-defaults]: https://github.com/mcuadros/go-defaults - -#### `toml.Tree` replacement - -This structure was the initial attempt at providing a document model for -go-toml. It allows manipulating the structure of any document, encoding and -decoding from their TOML representation. While a more robust feature was -initially planned in go-toml v2, this has been ultimately [removed from -scope][nodoc] of this library, with no plan to add it back at the moment. The -closest equivalent at the moment would be to unmarshal into an `interface{}` and -use type assertions and/or reflection to manipulate the arbitrary -structure. However this would fall short of providing all of the TOML features -such as adding comments and be specific about whitespace. - - -#### `toml.Position` are not retrievable anymore - -The API for retrieving the position (line, column) of a specific TOML element do -not exist anymore. This was done to minimize the amount of concepts introduced -by the library (query path), and avoid the performance hit related to storing -positions in the absence of a document model, for a feature that seemed to have -little use. Errors however have gained more detailed position -information. Position retrieval seems better fitted for a document model, which -has been [removed from the scope][nodoc] of go-toml v2 at the moment. - -### Encoding / Marshal - -#### Default struct fields order - -V1 emits struct fields order alphabetically by default. V2 struct fields are -emitted in order they are defined. For example: - -```go -type S struct { - B string - A string -} - -data := S{ - B: "B", - A: "A", -} - -b, _ := tomlv1.Marshal(data) -fmt.Println("v1:\n" + string(b)) - -b, _ = tomlv2.Marshal(data) -fmt.Println("v2:\n" + string(b)) - -// Output: -// v1: -// A = "A" -// B = "B" - -// v2: -// B = 'B' -// A = 'A' -``` - -There is no way to make v2 encoder behave like v1. A workaround could be to -manually sort the fields alphabetically in the struct definition, or generate -struct types using `reflect.StructOf`. - -#### No indentation by default - -V1 automatically indents content of tables by default. V2 does not. However the -same behavior can be obtained using [`Encoder.SetIndentTables`][sit]. For example: - -```go -data := map[string]interface{}{ - "table": map[string]string{ - "key": "value", - }, -} - -b, _ := tomlv1.Marshal(data) -fmt.Println("v1:\n" + string(b)) - -b, _ = tomlv2.Marshal(data) -fmt.Println("v2:\n" + string(b)) - -buf := bytes.Buffer{} -enc := tomlv2.NewEncoder(&buf) -enc.SetIndentTables(true) -enc.Encode(data) -fmt.Println("v2 Encoder:\n" + string(buf.Bytes())) - -// Output: -// v1: -// -// [table] -// key = "value" -// -// v2: -// [table] -// key = 'value' -// -// -// v2 Encoder: -// [table] -// key = 'value' -``` - -[sit]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#Encoder.SetIndentTables - -#### Keys and strings are single quoted - -V1 always uses double quotes (`"`) around strings and keys that cannot be -represented bare (unquoted). V2 uses single quotes instead by default (`'`), -unless a character cannot be represented, then falls back to double quotes. As a -result of this change, `Encoder.QuoteMapKeys` has been removed, as it is not -useful anymore. - -There is no way to make v2 encoder behave like v1. - -#### `TextMarshaler` emits as a string, not TOML - -Types that implement [`encoding.TextMarshaler`][tm] can emit arbitrary TOML in -v1. The encoder would append the result to the output directly. In v2 the result -is wrapped in a string. As a result, this interface cannot be implemented by the -root object. - -There is no way to make v2 encoder behave like v1. - -[tm]: https://golang.org/pkg/encoding/#TextMarshaler - -#### `Encoder.CompactComments` has been removed - -Emitting compact comments is now the default behavior of go-toml. This option -is not necessary anymore. - -#### Struct tags have been merged - -V1 used to provide multiple struct tags: `comment`, `commented`, `multiline`, -`toml`, and `omitempty`. To behave more like the standard library, v2 has merged -`toml`, `multiline`, and `omitempty`. For example: - -```go -type doc struct { - // v1 - F string `toml:"field" multiline:"true" omitempty:"true"` - // v2 - F string `toml:"field,multiline,omitempty"` -} -``` - -Has a result, the `Encoder.SetTag*` methods have been removed, as there is just -one tag now. - - -#### `commented` tag has been removed - -There is no replacement for the `commented` tag. This feature would be better -suited in a proper document model for go-toml v2, which has been [cut from -scope][nodoc] at the moment. - -#### `Encoder.ArraysWithOneElementPerLine` has been renamed - -The new name is `Encoder.SetArraysMultiline`. The behavior should be the same. - -#### `Encoder.Indentation` has been renamed - -The new name is `Encoder.SetIndentSymbol`. The behavior should be the same. - - -#### Embedded structs behave like stdlib - -V1 defaults to merging embedded struct fields into the embedding struct. This -behavior was unexpected because it does not follow the standard library. To -avoid breaking backward compatibility, the `Encoder.PromoteAnonymous` method was -added to make the encoder behave correctly. Given backward compatibility is not -a problem anymore, v2 does the right thing by default: it follows the behavior -of `encoding/json`. `Encoder.PromoteAnonymous` has been removed. - -[nodoc]: https://github.com/pelletier/go-toml/discussions/506#discussioncomment-1526038 - -### `query` - -go-toml v1 provided the [`go-toml/query`][query] package. It allowed to run -JSONPath-style queries on TOML files. This feature is not available in v2. For a -replacement, check out [dasel][dasel]. - -This package has been removed because it was essentially not supported anymore -(last commit May 2020), increased the complexity of the code base, and more -complete solutions exist out there. - -[query]: https://github.com/pelletier/go-toml/tree/f99d6bbca119636aeafcf351ee52b3d202782627/query -[dasel]: https://github.com/TomWright/dasel - -## Versioning - -Go-toml follows [Semantic Versioning](https://semver.org). The supported version -of [TOML](https://github.com/toml-lang/toml) is indicated at the beginning of -this document. The last two major versions of Go are supported -(see [Go Release Policy](https://golang.org/doc/devel/release.html#policy)). - -## License - -The MIT License (MIT). Read [LICENSE](LICENSE). diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/SECURITY.md b/backend/vendor/github.com/pelletier/go-toml/v2/SECURITY.md deleted file mode 100644 index b2f21cfc..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/SECURITY.md +++ /dev/null @@ -1,19 +0,0 @@ -# Security Policy - -## Supported Versions - -Use this section to tell people about which versions of your project are -currently being supported with security updates. - -| Version | Supported | -| ---------- | ------------------ | -| Latest 2.x | :white_check_mark: | -| All 1.x | :x: | -| All 0.x | :x: | - -## Reporting a Vulnerability - -Email a vulnerability report to `security@pelletier.codes`. Make sure to include -as many details as possible to reproduce the vulnerability. This is a -side-project: I will try to get back to you as quickly as possible, time -permitting in my personal life. Providing a working patch helps very much! diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/ci.sh b/backend/vendor/github.com/pelletier/go-toml/v2/ci.sh deleted file mode 100644 index 05c76f29..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/ci.sh +++ /dev/null @@ -1,279 +0,0 @@ -#!/usr/bin/env bash - - -stderr() { - echo "$@" 1>&2 -} - -usage() { - b=$(basename "$0") - echo $b: ERROR: "$@" 1>&2 - - cat 1>&2 < coverage.out - go tool cover -func=coverage.out - popd - - if [ "${branch}" != "HEAD" ]; then - git worktree remove --force "$dir" - fi -} - -coverage() { - case "$1" in - -d) - shift - target="${1?Need to provide a target branch argument}" - - output_dir="$(mktemp -d)" - target_out="${output_dir}/target.txt" - head_out="${output_dir}/head.txt" - - cover "${target}" > "${target_out}" - cover "HEAD" > "${head_out}" - - cat "${target_out}" - cat "${head_out}" - - echo "" - - target_pct="$(tail -n2 ${target_out} | head -n1 | sed -E 's/.*total.*\t([0-9.]+)%.*/\1/')" - head_pct="$(tail -n2 ${head_out} | head -n1 | sed -E 's/.*total.*\t([0-9.]+)%/\1/')" - echo "Results: ${target} ${target_pct}% HEAD ${head_pct}%" - - delta_pct=$(echo "$head_pct - $target_pct" | bc -l) - echo "Delta: ${delta_pct}" - - if [[ $delta_pct = \-* ]]; then - echo "Regression!"; - - target_diff="${output_dir}/target.diff.txt" - head_diff="${output_dir}/head.diff.txt" - cat "${target_out}" | grep -E '^github.com/pelletier/go-toml' | tr -s "\t " | cut -f 2,3 | sort > "${target_diff}" - cat "${head_out}" | grep -E '^github.com/pelletier/go-toml' | tr -s "\t " | cut -f 2,3 | sort > "${head_diff}" - - diff --side-by-side --suppress-common-lines "${target_diff}" "${head_diff}" - return 1 - fi - return 0 - ;; - esac - - cover "${1-HEAD}" -} - -bench() { - branch="${1}" - out="${2}" - replace="${3}" - dir="$(mktemp -d)" - - stderr "Executing benchmark for ${branch} at ${dir}" - - if [ "${branch}" = "HEAD" ]; then - cp -r . "${dir}/" - else - git worktree add "$dir" "$branch" - fi - - pushd "$dir" - - if [ "${replace}" != "" ]; then - find ./benchmark/ -iname '*.go' -exec sed -i -E "s|github.com/pelletier/go-toml/v2|${replace}|g" {} \; - go get "${replace}" - fi - - export GOMAXPROCS=2 - nice -n -19 taskset --cpu-list 0,1 go test '-bench=^Benchmark(Un)?[mM]arshal' -count=5 -run=Nothing ./... | tee "${out}" - popd - - if [ "${branch}" != "HEAD" ]; then - git worktree remove --force "$dir" - fi -} - -fmktemp() { - if mktemp --version|grep GNU >/dev/null; then - mktemp --suffix=-$1; - else - mktemp -t $1; - fi -} - -benchstathtml() { -python3 - $1 <<'EOF' -import sys - -lines = [] -stop = False - -with open(sys.argv[1]) as f: - for line in f.readlines(): - line = line.strip() - if line == "": - stop = True - if not stop: - lines.append(line.split(',')) - -results = [] -for line in reversed(lines[1:]): - v2 = float(line[1]) - results.append([ - line[0].replace("-32", ""), - "%.1fx" % (float(line[3])/v2), # v1 - "%.1fx" % (float(line[5])/v2), # bs - ]) -# move geomean to the end -results.append(results[0]) -del results[0] - - -def printtable(data): - print(""" - - - - - """) - - for r in data: - print(" ".format(*r)) - - print(""" -
Benchmarkgo-toml v1BurntSushi/toml
{}{}{}
""") - - -def match(x): - return "ReferenceFile" in x[0] or "HugoFrontMatter" in x[0] - -above = [x for x in results if match(x)] -below = [x for x in results if not match(x)] - -printtable(above) -print("
See more") -print("""

The table above has the results of the most common use-cases. The table below -contains the results of all benchmarks, including unrealistic ones. It is -provided for completeness.

""") -printtable(below) -print('

This table can be generated with ./ci.sh benchmark -a -html.

') -print("
") - -EOF -} - -benchmark() { - case "$1" in - -d) - shift - target="${1?Need to provide a target branch argument}" - - old=`fmktemp ${target}` - bench "${target}" "${old}" - - new=`fmktemp HEAD` - bench HEAD "${new}" - - benchstat "${old}" "${new}" - return 0 - ;; - -a) - shift - - v2stats=`fmktemp go-toml-v2` - bench HEAD "${v2stats}" "github.com/pelletier/go-toml/v2" - v1stats=`fmktemp go-toml-v1` - bench HEAD "${v1stats}" "github.com/pelletier/go-toml" - bsstats=`fmktemp bs-toml` - bench HEAD "${bsstats}" "github.com/BurntSushi/toml" - - cp "${v2stats}" go-toml-v2.txt - cp "${v1stats}" go-toml-v1.txt - cp "${bsstats}" bs-toml.txt - - if [ "$1" = "-html" ]; then - tmpcsv=`fmktemp csv` - benchstat -csv -geomean go-toml-v2.txt go-toml-v1.txt bs-toml.txt > $tmpcsv - benchstathtml $tmpcsv - else - benchstat -geomean go-toml-v2.txt go-toml-v1.txt bs-toml.txt - fi - - rm -f go-toml-v2.txt go-toml-v1.txt bs-toml.txt - return $? - esac - - bench "${1-HEAD}" `mktemp` -} - -case "$1" in - coverage) shift; coverage $@;; - benchmark) shift; benchmark $@;; - *) usage "bad argument $1";; -esac diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/decode.go b/backend/vendor/github.com/pelletier/go-toml/v2/decode.go deleted file mode 100644 index 3a860d0f..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/decode.go +++ /dev/null @@ -1,550 +0,0 @@ -package toml - -import ( - "fmt" - "math" - "strconv" - "time" - - "github.com/pelletier/go-toml/v2/unstable" -) - -func parseInteger(b []byte) (int64, error) { - if len(b) > 2 && b[0] == '0' { - switch b[1] { - case 'x': - return parseIntHex(b) - case 'b': - return parseIntBin(b) - case 'o': - return parseIntOct(b) - default: - panic(fmt.Errorf("invalid base '%c', should have been checked by scanIntOrFloat", b[1])) - } - } - - return parseIntDec(b) -} - -func parseLocalDate(b []byte) (LocalDate, error) { - // full-date = date-fullyear "-" date-month "-" date-mday - // date-fullyear = 4DIGIT - // date-month = 2DIGIT ; 01-12 - // date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year - var date LocalDate - - if len(b) != 10 || b[4] != '-' || b[7] != '-' { - return date, unstable.NewParserError(b, "dates are expected to have the format YYYY-MM-DD") - } - - var err error - - date.Year, err = parseDecimalDigits(b[0:4]) - if err != nil { - return LocalDate{}, err - } - - date.Month, err = parseDecimalDigits(b[5:7]) - if err != nil { - return LocalDate{}, err - } - - date.Day, err = parseDecimalDigits(b[8:10]) - if err != nil { - return LocalDate{}, err - } - - if !isValidDate(date.Year, date.Month, date.Day) { - return LocalDate{}, unstable.NewParserError(b, "impossible date") - } - - return date, nil -} - -func parseDecimalDigits(b []byte) (int, error) { - v := 0 - - for i, c := range b { - if c < '0' || c > '9' { - return 0, unstable.NewParserError(b[i:i+1], "expected digit (0-9)") - } - v *= 10 - v += int(c - '0') - } - - return v, nil -} - -func parseDateTime(b []byte) (time.Time, error) { - // offset-date-time = full-date time-delim full-time - // full-time = partial-time time-offset - // time-offset = "Z" / time-numoffset - // time-numoffset = ( "+" / "-" ) time-hour ":" time-minute - - dt, b, err := parseLocalDateTime(b) - if err != nil { - return time.Time{}, err - } - - var zone *time.Location - - if len(b) == 0 { - // parser should have checked that when assigning the date time node - panic("date time should have a timezone") - } - - if b[0] == 'Z' || b[0] == 'z' { - b = b[1:] - zone = time.UTC - } else { - const dateTimeByteLen = 6 - if len(b) != dateTimeByteLen { - return time.Time{}, unstable.NewParserError(b, "invalid date-time timezone") - } - var direction int - switch b[0] { - case '-': - direction = -1 - case '+': - direction = +1 - default: - return time.Time{}, unstable.NewParserError(b[:1], "invalid timezone offset character") - } - - if b[3] != ':' { - return time.Time{}, unstable.NewParserError(b[3:4], "expected a : separator") - } - - hours, err := parseDecimalDigits(b[1:3]) - if err != nil { - return time.Time{}, err - } - if hours > 23 { - return time.Time{}, unstable.NewParserError(b[:1], "invalid timezone offset hours") - } - - minutes, err := parseDecimalDigits(b[4:6]) - if err != nil { - return time.Time{}, err - } - if minutes > 59 { - return time.Time{}, unstable.NewParserError(b[:1], "invalid timezone offset minutes") - } - - seconds := direction * (hours*3600 + minutes*60) - if seconds == 0 { - zone = time.UTC - } else { - zone = time.FixedZone("", seconds) - } - b = b[dateTimeByteLen:] - } - - if len(b) > 0 { - return time.Time{}, unstable.NewParserError(b, "extra bytes at the end of the timezone") - } - - t := time.Date( - dt.Year, - time.Month(dt.Month), - dt.Day, - dt.Hour, - dt.Minute, - dt.Second, - dt.Nanosecond, - zone) - - return t, nil -} - -func parseLocalDateTime(b []byte) (LocalDateTime, []byte, error) { - var dt LocalDateTime - - const localDateTimeByteMinLen = 11 - if len(b) < localDateTimeByteMinLen { - return dt, nil, unstable.NewParserError(b, "local datetimes are expected to have the format YYYY-MM-DDTHH:MM:SS[.NNNNNNNNN]") - } - - date, err := parseLocalDate(b[:10]) - if err != nil { - return dt, nil, err - } - dt.LocalDate = date - - sep := b[10] - if sep != 'T' && sep != ' ' && sep != 't' { - return dt, nil, unstable.NewParserError(b[10:11], "datetime separator is expected to be T or a space") - } - - t, rest, err := parseLocalTime(b[11:]) - if err != nil { - return dt, nil, err - } - dt.LocalTime = t - - return dt, rest, nil -} - -// parseLocalTime is a bit different because it also returns the remaining -// []byte that is didn't need. This is to allow parseDateTime to parse those -// remaining bytes as a timezone. -func parseLocalTime(b []byte) (LocalTime, []byte, error) { - var ( - nspow = [10]int{0, 1e8, 1e7, 1e6, 1e5, 1e4, 1e3, 1e2, 1e1, 1e0} - t LocalTime - ) - - // check if b matches to have expected format HH:MM:SS[.NNNNNN] - const localTimeByteLen = 8 - if len(b) < localTimeByteLen { - return t, nil, unstable.NewParserError(b, "times are expected to have the format HH:MM:SS[.NNNNNN]") - } - - var err error - - t.Hour, err = parseDecimalDigits(b[0:2]) - if err != nil { - return t, nil, err - } - - if t.Hour > 23 { - return t, nil, unstable.NewParserError(b[0:2], "hour cannot be greater 23") - } - if b[2] != ':' { - return t, nil, unstable.NewParserError(b[2:3], "expecting colon between hours and minutes") - } - - t.Minute, err = parseDecimalDigits(b[3:5]) - if err != nil { - return t, nil, err - } - if t.Minute > 59 { - return t, nil, unstable.NewParserError(b[3:5], "minutes cannot be greater 59") - } - if b[5] != ':' { - return t, nil, unstable.NewParserError(b[5:6], "expecting colon between minutes and seconds") - } - - t.Second, err = parseDecimalDigits(b[6:8]) - if err != nil { - return t, nil, err - } - - if t.Second > 60 { - return t, nil, unstable.NewParserError(b[6:8], "seconds cannot be greater 60") - } - - b = b[8:] - - if len(b) >= 1 && b[0] == '.' { - frac := 0 - precision := 0 - digits := 0 - - for i, c := range b[1:] { - if !isDigit(c) { - if i == 0 { - return t, nil, unstable.NewParserError(b[0:1], "need at least one digit after fraction point") - } - break - } - digits++ - - const maxFracPrecision = 9 - if i >= maxFracPrecision { - // go-toml allows decoding fractional seconds - // beyond the supported precision of 9 - // digits. It truncates the fractional component - // to the supported precision and ignores the - // remaining digits. - // - // https://github.com/pelletier/go-toml/discussions/707 - continue - } - - frac *= 10 - frac += int(c - '0') - precision++ - } - - if precision == 0 { - return t, nil, unstable.NewParserError(b[:1], "nanoseconds need at least one digit") - } - - t.Nanosecond = frac * nspow[precision] - t.Precision = precision - - return t, b[1+digits:], nil - } - return t, b, nil -} - -//nolint:cyclop -func parseFloat(b []byte) (float64, error) { - if len(b) == 4 && (b[0] == '+' || b[0] == '-') && b[1] == 'n' && b[2] == 'a' && b[3] == 'n' { - return math.NaN(), nil - } - - cleaned, err := checkAndRemoveUnderscoresFloats(b) - if err != nil { - return 0, err - } - - if cleaned[0] == '.' { - return 0, unstable.NewParserError(b, "float cannot start with a dot") - } - - if cleaned[len(cleaned)-1] == '.' { - return 0, unstable.NewParserError(b, "float cannot end with a dot") - } - - dotAlreadySeen := false - for i, c := range cleaned { - if c == '.' { - if dotAlreadySeen { - return 0, unstable.NewParserError(b[i:i+1], "float can have at most one decimal point") - } - if !isDigit(cleaned[i-1]) { - return 0, unstable.NewParserError(b[i-1:i+1], "float decimal point must be preceded by a digit") - } - if !isDigit(cleaned[i+1]) { - return 0, unstable.NewParserError(b[i:i+2], "float decimal point must be followed by a digit") - } - dotAlreadySeen = true - } - } - - start := 0 - if cleaned[0] == '+' || cleaned[0] == '-' { - start = 1 - } - if cleaned[start] == '0' && isDigit(cleaned[start+1]) { - return 0, unstable.NewParserError(b, "float integer part cannot have leading zeroes") - } - - f, err := strconv.ParseFloat(string(cleaned), 64) - if err != nil { - return 0, unstable.NewParserError(b, "unable to parse float: %w", err) - } - - return f, nil -} - -func parseIntHex(b []byte) (int64, error) { - cleaned, err := checkAndRemoveUnderscoresIntegers(b[2:]) - if err != nil { - return 0, err - } - - i, err := strconv.ParseInt(string(cleaned), 16, 64) - if err != nil { - return 0, unstable.NewParserError(b, "couldn't parse hexadecimal number: %w", err) - } - - return i, nil -} - -func parseIntOct(b []byte) (int64, error) { - cleaned, err := checkAndRemoveUnderscoresIntegers(b[2:]) - if err != nil { - return 0, err - } - - i, err := strconv.ParseInt(string(cleaned), 8, 64) - if err != nil { - return 0, unstable.NewParserError(b, "couldn't parse octal number: %w", err) - } - - return i, nil -} - -func parseIntBin(b []byte) (int64, error) { - cleaned, err := checkAndRemoveUnderscoresIntegers(b[2:]) - if err != nil { - return 0, err - } - - i, err := strconv.ParseInt(string(cleaned), 2, 64) - if err != nil { - return 0, unstable.NewParserError(b, "couldn't parse binary number: %w", err) - } - - return i, nil -} - -func isSign(b byte) bool { - return b == '+' || b == '-' -} - -func parseIntDec(b []byte) (int64, error) { - cleaned, err := checkAndRemoveUnderscoresIntegers(b) - if err != nil { - return 0, err - } - - startIdx := 0 - - if isSign(cleaned[0]) { - startIdx++ - } - - if len(cleaned) > startIdx+1 && cleaned[startIdx] == '0' { - return 0, unstable.NewParserError(b, "leading zero not allowed on decimal number") - } - - i, err := strconv.ParseInt(string(cleaned), 10, 64) - if err != nil { - return 0, unstable.NewParserError(b, "couldn't parse decimal number: %w", err) - } - - return i, nil -} - -func checkAndRemoveUnderscoresIntegers(b []byte) ([]byte, error) { - start := 0 - if b[start] == '+' || b[start] == '-' { - start++ - } - - if len(b) == start { - return b, nil - } - - if b[start] == '_' { - return nil, unstable.NewParserError(b[start:start+1], "number cannot start with underscore") - } - - if b[len(b)-1] == '_' { - return nil, unstable.NewParserError(b[len(b)-1:], "number cannot end with underscore") - } - - // fast path - i := 0 - for ; i < len(b); i++ { - if b[i] == '_' { - break - } - } - if i == len(b) { - return b, nil - } - - before := false - cleaned := make([]byte, i, len(b)) - copy(cleaned, b) - - for i++; i < len(b); i++ { - c := b[i] - if c == '_' { - if !before { - return nil, unstable.NewParserError(b[i-1:i+1], "number must have at least one digit between underscores") - } - before = false - } else { - before = true - cleaned = append(cleaned, c) - } - } - - return cleaned, nil -} - -func checkAndRemoveUnderscoresFloats(b []byte) ([]byte, error) { - if b[0] == '_' { - return nil, unstable.NewParserError(b[0:1], "number cannot start with underscore") - } - - if b[len(b)-1] == '_' { - return nil, unstable.NewParserError(b[len(b)-1:], "number cannot end with underscore") - } - - // fast path - i := 0 - for ; i < len(b); i++ { - if b[i] == '_' { - break - } - } - if i == len(b) { - return b, nil - } - - before := false - cleaned := make([]byte, 0, len(b)) - - for i := 0; i < len(b); i++ { - c := b[i] - - switch c { - case '_': - if !before { - return nil, unstable.NewParserError(b[i-1:i+1], "number must have at least one digit between underscores") - } - if i < len(b)-1 && (b[i+1] == 'e' || b[i+1] == 'E') { - return nil, unstable.NewParserError(b[i+1:i+2], "cannot have underscore before exponent") - } - before = false - case '+', '-': - // signed exponents - cleaned = append(cleaned, c) - before = false - case 'e', 'E': - if i < len(b)-1 && b[i+1] == '_' { - return nil, unstable.NewParserError(b[i+1:i+2], "cannot have underscore after exponent") - } - cleaned = append(cleaned, c) - case '.': - if i < len(b)-1 && b[i+1] == '_' { - return nil, unstable.NewParserError(b[i+1:i+2], "cannot have underscore after decimal point") - } - if i > 0 && b[i-1] == '_' { - return nil, unstable.NewParserError(b[i-1:i], "cannot have underscore before decimal point") - } - cleaned = append(cleaned, c) - default: - before = true - cleaned = append(cleaned, c) - } - } - - return cleaned, nil -} - -// isValidDate checks if a provided date is a date that exists. -func isValidDate(year int, month int, day int) bool { - return month > 0 && month < 13 && day > 0 && day <= daysIn(month, year) -} - -// daysBefore[m] counts the number of days in a non-leap year -// before month m begins. There is an entry for m=12, counting -// the number of days before January of next year (365). -var daysBefore = [...]int32{ - 0, - 31, - 31 + 28, - 31 + 28 + 31, - 31 + 28 + 31 + 30, - 31 + 28 + 31 + 30 + 31, - 31 + 28 + 31 + 30 + 31 + 30, - 31 + 28 + 31 + 30 + 31 + 30 + 31, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31, -} - -func daysIn(m int, year int) int { - if m == 2 && isLeap(year) { - return 29 - } - return int(daysBefore[m] - daysBefore[m-1]) -} - -func isLeap(year int) bool { - return year%4 == 0 && (year%100 != 0 || year%400 == 0) -} - -func isDigit(r byte) bool { - return r >= '0' && r <= '9' -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/doc.go b/backend/vendor/github.com/pelletier/go-toml/v2/doc.go deleted file mode 100644 index b7bc599b..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package toml is a library to read and write TOML documents. -package toml diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/errors.go b/backend/vendor/github.com/pelletier/go-toml/v2/errors.go deleted file mode 100644 index 309733f1..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/errors.go +++ /dev/null @@ -1,252 +0,0 @@ -package toml - -import ( - "fmt" - "strconv" - "strings" - - "github.com/pelletier/go-toml/v2/internal/danger" - "github.com/pelletier/go-toml/v2/unstable" -) - -// DecodeError represents an error encountered during the parsing or decoding -// of a TOML document. -// -// In addition to the error message, it contains the position in the document -// where it happened, as well as a human-readable representation that shows -// where the error occurred in the document. -type DecodeError struct { - message string - line int - column int - key Key - - human string -} - -// StrictMissingError occurs in a TOML document that does not have a -// corresponding field in the target value. It contains all the missing fields -// in Errors. -// -// Emitted by Decoder when DisallowUnknownFields() was called. -type StrictMissingError struct { - // One error per field that could not be found. - Errors []DecodeError -} - -// Error returns the canonical string for this error. -func (s *StrictMissingError) Error() string { - return "strict mode: fields in the document are missing in the target struct" -} - -// String returns a human readable description of all errors. -func (s *StrictMissingError) String() string { - var buf strings.Builder - - for i, e := range s.Errors { - if i > 0 { - buf.WriteString("\n---\n") - } - - buf.WriteString(e.String()) - } - - return buf.String() -} - -type Key []string - -// Error returns the error message contained in the DecodeError. -func (e *DecodeError) Error() string { - return "toml: " + e.message -} - -// String returns the human-readable contextualized error. This string is multi-line. -func (e *DecodeError) String() string { - return e.human -} - -// Position returns the (line, column) pair indicating where the error -// occurred in the document. Positions are 1-indexed. -func (e *DecodeError) Position() (row int, column int) { - return e.line, e.column -} - -// Key that was being processed when the error occurred. The key is present only -// if this DecodeError is part of a StrictMissingError. -func (e *DecodeError) Key() Key { - return e.key -} - -// decodeErrorFromHighlight creates a DecodeError referencing a highlighted -// range of bytes from document. -// -// highlight needs to be a sub-slice of document, or this function panics. -// -// The function copies all bytes used in DecodeError, so that document and -// highlight can be freely deallocated. -// -//nolint:funlen -func wrapDecodeError(document []byte, de *unstable.ParserError) *DecodeError { - offset := danger.SubsliceOffset(document, de.Highlight) - - errMessage := de.Error() - errLine, errColumn := positionAtEnd(document[:offset]) - before, after := linesOfContext(document, de.Highlight, offset, 3) - - var buf strings.Builder - - maxLine := errLine + len(after) - 1 - lineColumnWidth := len(strconv.Itoa(maxLine)) - - // Write the lines of context strictly before the error. - for i := len(before) - 1; i > 0; i-- { - line := errLine - i - buf.WriteString(formatLineNumber(line, lineColumnWidth)) - buf.WriteString("|") - - if len(before[i]) > 0 { - buf.WriteString(" ") - buf.Write(before[i]) - } - - buf.WriteRune('\n') - } - - // Write the document line that contains the error. - - buf.WriteString(formatLineNumber(errLine, lineColumnWidth)) - buf.WriteString("| ") - - if len(before) > 0 { - buf.Write(before[0]) - } - - buf.Write(de.Highlight) - - if len(after) > 0 { - buf.Write(after[0]) - } - - buf.WriteRune('\n') - - // Write the line with the error message itself (so it does not have a line - // number). - - buf.WriteString(strings.Repeat(" ", lineColumnWidth)) - buf.WriteString("| ") - - if len(before) > 0 { - buf.WriteString(strings.Repeat(" ", len(before[0]))) - } - - buf.WriteString(strings.Repeat("~", len(de.Highlight))) - - if len(errMessage) > 0 { - buf.WriteString(" ") - buf.WriteString(errMessage) - } - - // Write the lines of context strictly after the error. - - for i := 1; i < len(after); i++ { - buf.WriteRune('\n') - line := errLine + i - buf.WriteString(formatLineNumber(line, lineColumnWidth)) - buf.WriteString("|") - - if len(after[i]) > 0 { - buf.WriteString(" ") - buf.Write(after[i]) - } - } - - return &DecodeError{ - message: errMessage, - line: errLine, - column: errColumn, - key: de.Key, - human: buf.String(), - } -} - -func formatLineNumber(line int, width int) string { - format := "%" + strconv.Itoa(width) + "d" - - return fmt.Sprintf(format, line) -} - -func linesOfContext(document []byte, highlight []byte, offset int, linesAround int) ([][]byte, [][]byte) { - return beforeLines(document, offset, linesAround), afterLines(document, highlight, offset, linesAround) -} - -func beforeLines(document []byte, offset int, linesAround int) [][]byte { - var beforeLines [][]byte - - // Walk the document backward from the highlight to find previous lines - // of context. - rest := document[:offset] -backward: - for o := len(rest) - 1; o >= 0 && len(beforeLines) <= linesAround && len(rest) > 0; { - switch { - case rest[o] == '\n': - // handle individual lines - beforeLines = append(beforeLines, rest[o+1:]) - rest = rest[:o] - o = len(rest) - 1 - case o == 0: - // add the first line only if it's non-empty - beforeLines = append(beforeLines, rest) - - break backward - default: - o-- - } - } - - return beforeLines -} - -func afterLines(document []byte, highlight []byte, offset int, linesAround int) [][]byte { - var afterLines [][]byte - - // Walk the document forward from the highlight to find the following - // lines of context. - rest := document[offset+len(highlight):] -forward: - for o := 0; o < len(rest) && len(afterLines) <= linesAround; { - switch { - case rest[o] == '\n': - // handle individual lines - afterLines = append(afterLines, rest[:o]) - rest = rest[o+1:] - o = 0 - - case o == len(rest)-1: - // add last line only if it's non-empty - afterLines = append(afterLines, rest) - - break forward - default: - o++ - } - } - - return afterLines -} - -func positionAtEnd(b []byte) (row int, column int) { - row = 1 - column = 1 - - for _, c := range b { - if c == '\n' { - row++ - column = 1 - } else { - column++ - } - } - - return -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/ascii.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/ascii.go deleted file mode 100644 index 80f698db..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/ascii.go +++ /dev/null @@ -1,42 +0,0 @@ -package characters - -var invalidAsciiTable = [256]bool{ - 0x00: true, - 0x01: true, - 0x02: true, - 0x03: true, - 0x04: true, - 0x05: true, - 0x06: true, - 0x07: true, - 0x08: true, - // 0x09 TAB - // 0x0A LF - 0x0B: true, - 0x0C: true, - // 0x0D CR - 0x0E: true, - 0x0F: true, - 0x10: true, - 0x11: true, - 0x12: true, - 0x13: true, - 0x14: true, - 0x15: true, - 0x16: true, - 0x17: true, - 0x18: true, - 0x19: true, - 0x1A: true, - 0x1B: true, - 0x1C: true, - 0x1D: true, - 0x1E: true, - 0x1F: true, - // 0x20 - 0x7E Printable ASCII characters - 0x7F: true, -} - -func InvalidAscii(b byte) bool { - return invalidAsciiTable[b] -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/utf8.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/utf8.go deleted file mode 100644 index db4f45ac..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/characters/utf8.go +++ /dev/null @@ -1,199 +0,0 @@ -package characters - -import ( - "unicode/utf8" -) - -type utf8Err struct { - Index int - Size int -} - -func (u utf8Err) Zero() bool { - return u.Size == 0 -} - -// Verified that a given string is only made of valid UTF-8 characters allowed -// by the TOML spec: -// -// Any Unicode character may be used except those that must be escaped: -// quotation mark, backslash, and the control characters other than tab (U+0000 -// to U+0008, U+000A to U+001F, U+007F). -// -// It is a copy of the Go 1.17 utf8.Valid implementation, tweaked to exit early -// when a character is not allowed. -// -// The returned utf8Err is Zero() if the string is valid, or contains the byte -// index and size of the invalid character. -// -// quotation mark => already checked -// backslash => already checked -// 0-0x8 => invalid -// 0x9 => tab, ok -// 0xA - 0x1F => invalid -// 0x7F => invalid -func Utf8TomlValidAlreadyEscaped(p []byte) (err utf8Err) { - // Fast path. Check for and skip 8 bytes of ASCII characters per iteration. - offset := 0 - for len(p) >= 8 { - // Combining two 32 bit loads allows the same code to be used - // for 32 and 64 bit platforms. - // The compiler can generate a 32bit load for first32 and second32 - // on many platforms. See test/codegen/memcombine.go. - first32 := uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24 - second32 := uint32(p[4]) | uint32(p[5])<<8 | uint32(p[6])<<16 | uint32(p[7])<<24 - if (first32|second32)&0x80808080 != 0 { - // Found a non ASCII byte (>= RuneSelf). - break - } - - for i, b := range p[:8] { - if InvalidAscii(b) { - err.Index = offset + i - err.Size = 1 - return - } - } - - p = p[8:] - offset += 8 - } - n := len(p) - for i := 0; i < n; { - pi := p[i] - if pi < utf8.RuneSelf { - if InvalidAscii(pi) { - err.Index = offset + i - err.Size = 1 - return - } - i++ - continue - } - x := first[pi] - if x == xx { - // Illegal starter byte. - err.Index = offset + i - err.Size = 1 - return - } - size := int(x & 7) - if i+size > n { - // Short or invalid. - err.Index = offset + i - err.Size = n - i - return - } - accept := acceptRanges[x>>4] - if c := p[i+1]; c < accept.lo || accept.hi < c { - err.Index = offset + i - err.Size = 2 - return - } else if size == 2 { - } else if c := p[i+2]; c < locb || hicb < c { - err.Index = offset + i - err.Size = 3 - return - } else if size == 3 { - } else if c := p[i+3]; c < locb || hicb < c { - err.Index = offset + i - err.Size = 4 - return - } - i += size - } - return -} - -// Return the size of the next rune if valid, 0 otherwise. -func Utf8ValidNext(p []byte) int { - c := p[0] - - if c < utf8.RuneSelf { - if InvalidAscii(c) { - return 0 - } - return 1 - } - - x := first[c] - if x == xx { - // Illegal starter byte. - return 0 - } - size := int(x & 7) - if size > len(p) { - // Short or invalid. - return 0 - } - accept := acceptRanges[x>>4] - if c := p[1]; c < accept.lo || accept.hi < c { - return 0 - } else if size == 2 { - } else if c := p[2]; c < locb || hicb < c { - return 0 - } else if size == 3 { - } else if c := p[3]; c < locb || hicb < c { - return 0 - } - - return size -} - -// acceptRange gives the range of valid values for the second byte in a UTF-8 -// sequence. -type acceptRange struct { - lo uint8 // lowest value for second byte. - hi uint8 // highest value for second byte. -} - -// acceptRanges has size 16 to avoid bounds checks in the code that uses it. -var acceptRanges = [16]acceptRange{ - 0: {locb, hicb}, - 1: {0xA0, hicb}, - 2: {locb, 0x9F}, - 3: {0x90, hicb}, - 4: {locb, 0x8F}, -} - -// first is information about the first byte in a UTF-8 sequence. -var first = [256]uint8{ - // 1 2 3 4 5 6 7 8 9 A B C D E F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x00-0x0F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x10-0x1F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x20-0x2F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x30-0x3F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x40-0x4F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x50-0x5F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x60-0x6F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x70-0x7F - // 1 2 3 4 5 6 7 8 9 A B C D E F - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x80-0x8F - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x90-0x9F - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xA0-0xAF - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xB0-0xBF - xx, xx, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xC0-0xCF - s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xD0-0xDF - s2, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s4, s3, s3, // 0xE0-0xEF - s5, s6, s6, s6, s7, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xF0-0xFF -} - -const ( - // The default lowest and highest continuation byte. - locb = 0b10000000 - hicb = 0b10111111 - - // These names of these constants are chosen to give nice alignment in the - // table below. The first nibble is an index into acceptRanges or F for - // special one-byte cases. The second nibble is the Rune length or the - // Status for the special one-byte case. - xx = 0xF1 // invalid: size 1 - as = 0xF0 // ASCII: size 1 - s1 = 0x02 // accept 0, size 2 - s2 = 0x13 // accept 1, size 3 - s3 = 0x03 // accept 0, size 3 - s4 = 0x23 // accept 2, size 3 - s5 = 0x34 // accept 3, size 4 - s6 = 0x04 // accept 0, size 4 - s7 = 0x44 // accept 4, size 4 -) diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/danger.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/danger.go deleted file mode 100644 index e38e1131..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/danger.go +++ /dev/null @@ -1,65 +0,0 @@ -package danger - -import ( - "fmt" - "reflect" - "unsafe" -) - -const maxInt = uintptr(int(^uint(0) >> 1)) - -func SubsliceOffset(data []byte, subslice []byte) int { - datap := (*reflect.SliceHeader)(unsafe.Pointer(&data)) - hlp := (*reflect.SliceHeader)(unsafe.Pointer(&subslice)) - - if hlp.Data < datap.Data { - panic(fmt.Errorf("subslice address (%d) is before data address (%d)", hlp.Data, datap.Data)) - } - offset := hlp.Data - datap.Data - - if offset > maxInt { - panic(fmt.Errorf("slice offset larger than int (%d)", offset)) - } - - intoffset := int(offset) - - if intoffset > datap.Len { - panic(fmt.Errorf("slice offset (%d) is farther than data length (%d)", intoffset, datap.Len)) - } - - if intoffset+hlp.Len > datap.Len { - panic(fmt.Errorf("slice ends (%d+%d) is farther than data length (%d)", intoffset, hlp.Len, datap.Len)) - } - - return intoffset -} - -func BytesRange(start []byte, end []byte) []byte { - if start == nil || end == nil { - panic("cannot call BytesRange with nil") - } - startp := (*reflect.SliceHeader)(unsafe.Pointer(&start)) - endp := (*reflect.SliceHeader)(unsafe.Pointer(&end)) - - if startp.Data > endp.Data { - panic(fmt.Errorf("start pointer address (%d) is after end pointer address (%d)", startp.Data, endp.Data)) - } - - l := startp.Len - endLen := int(endp.Data-startp.Data) + endp.Len - if endLen > l { - l = endLen - } - - if l > startp.Cap { - panic(fmt.Errorf("range length is larger than capacity")) - } - - return start[:l] -} - -func Stride(ptr unsafe.Pointer, size uintptr, offset int) unsafe.Pointer { - // TODO: replace with unsafe.Add when Go 1.17 is released - // https://github.com/golang/go/issues/40481 - return unsafe.Pointer(uintptr(ptr) + uintptr(int(size)*offset)) -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/typeid.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/typeid.go deleted file mode 100644 index 9d41c28a..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/danger/typeid.go +++ /dev/null @@ -1,23 +0,0 @@ -package danger - -import ( - "reflect" - "unsafe" -) - -// typeID is used as key in encoder and decoder caches to enable using -// the optimize runtime.mapaccess2_fast64 function instead of the more -// expensive lookup if we were to use reflect.Type as map key. -// -// typeID holds the pointer to the reflect.Type value, which is unique -// in the program. -// -// https://github.com/segmentio/encoding/blob/master/json/codec.go#L59-L61 -type TypeID unsafe.Pointer - -func MakeTypeID(t reflect.Type) TypeID { - // reflect.Type has the fields: - // typ unsafe.Pointer - // ptr unsafe.Pointer - return TypeID((*[2]unsafe.Pointer)(unsafe.Pointer(&t))[1]) -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/key.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/key.go deleted file mode 100644 index 149b17f5..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/key.go +++ /dev/null @@ -1,48 +0,0 @@ -package tracker - -import "github.com/pelletier/go-toml/v2/unstable" - -// KeyTracker is a tracker that keeps track of the current Key as the AST is -// walked. -type KeyTracker struct { - k []string -} - -// UpdateTable sets the state of the tracker with the AST table node. -func (t *KeyTracker) UpdateTable(node *unstable.Node) { - t.reset() - t.Push(node) -} - -// UpdateArrayTable sets the state of the tracker with the AST array table node. -func (t *KeyTracker) UpdateArrayTable(node *unstable.Node) { - t.reset() - t.Push(node) -} - -// Push the given key on the stack. -func (t *KeyTracker) Push(node *unstable.Node) { - it := node.Key() - for it.Next() { - t.k = append(t.k, string(it.Node().Data)) - } -} - -// Pop key from stack. -func (t *KeyTracker) Pop(node *unstable.Node) { - it := node.Key() - for it.Next() { - t.k = t.k[:len(t.k)-1] - } -} - -// Key returns the current key -func (t *KeyTracker) Key() []string { - k := make([]string, len(t.k)) - copy(k, t.k) - return k -} - -func (t *KeyTracker) reset() { - t.k = t.k[:0] -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go deleted file mode 100644 index 40e23f83..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go +++ /dev/null @@ -1,356 +0,0 @@ -package tracker - -import ( - "bytes" - "fmt" - "sync" - - "github.com/pelletier/go-toml/v2/unstable" -) - -type keyKind uint8 - -const ( - invalidKind keyKind = iota - valueKind - tableKind - arrayTableKind -) - -func (k keyKind) String() string { - switch k { - case invalidKind: - return "invalid" - case valueKind: - return "value" - case tableKind: - return "table" - case arrayTableKind: - return "array table" - } - panic("missing keyKind string mapping") -} - -// SeenTracker tracks which keys have been seen with which TOML type to flag -// duplicates and mismatches according to the spec. -// -// Each node in the visited tree is represented by an entry. Each entry has an -// identifier, which is provided by a counter. Entries are stored in the array -// entries. As new nodes are discovered (referenced for the first time in the -// TOML document), entries are created and appended to the array. An entry -// points to its parent using its id. -// -// To find whether a given key (sequence of []byte) has already been visited, -// the entries are linearly searched, looking for one with the right name and -// parent id. -// -// Given that all keys appear in the document after their parent, it is -// guaranteed that all descendants of a node are stored after the node, this -// speeds up the search process. -// -// When encountering [[array tables]], the descendants of that node are removed -// to allow that branch of the tree to be "rediscovered". To maintain the -// invariant above, the deletion process needs to keep the order of entries. -// This results in more copies in that case. -type SeenTracker struct { - entries []entry - currentIdx int -} - -var pool sync.Pool - -func (s *SeenTracker) reset() { - // Always contains a root element at index 0. - s.currentIdx = 0 - if len(s.entries) == 0 { - s.entries = make([]entry, 1, 2) - } else { - s.entries = s.entries[:1] - } - s.entries[0].child = -1 - s.entries[0].next = -1 -} - -type entry struct { - // Use -1 to indicate no child or no sibling. - child int - next int - - name []byte - kind keyKind - explicit bool - kv bool -} - -// Find the index of the child of parentIdx with key k. Returns -1 if -// it does not exist. -func (s *SeenTracker) find(parentIdx int, k []byte) int { - for i := s.entries[parentIdx].child; i >= 0; i = s.entries[i].next { - if bytes.Equal(s.entries[i].name, k) { - return i - } - } - return -1 -} - -// Remove all descendants of node at position idx. -func (s *SeenTracker) clear(idx int) { - if idx >= len(s.entries) { - return - } - - for i := s.entries[idx].child; i >= 0; { - next := s.entries[i].next - n := s.entries[0].next - s.entries[0].next = i - s.entries[i].next = n - s.entries[i].name = nil - s.clear(i) - i = next - } - - s.entries[idx].child = -1 -} - -func (s *SeenTracker) create(parentIdx int, name []byte, kind keyKind, explicit bool, kv bool) int { - e := entry{ - child: -1, - next: s.entries[parentIdx].child, - - name: name, - kind: kind, - explicit: explicit, - kv: kv, - } - var idx int - if s.entries[0].next >= 0 { - idx = s.entries[0].next - s.entries[0].next = s.entries[idx].next - s.entries[idx] = e - } else { - idx = len(s.entries) - s.entries = append(s.entries, e) - } - - s.entries[parentIdx].child = idx - - return idx -} - -func (s *SeenTracker) setExplicitFlag(parentIdx int) { - for i := s.entries[parentIdx].child; i >= 0; i = s.entries[i].next { - if s.entries[i].kv { - s.entries[i].explicit = true - s.entries[i].kv = false - } - s.setExplicitFlag(i) - } -} - -// CheckExpression takes a top-level node and checks that it does not contain -// keys that have been seen in previous calls, and validates that types are -// consistent. -func (s *SeenTracker) CheckExpression(node *unstable.Node) error { - if s.entries == nil { - s.reset() - } - switch node.Kind { - case unstable.KeyValue: - return s.checkKeyValue(node) - case unstable.Table: - return s.checkTable(node) - case unstable.ArrayTable: - return s.checkArrayTable(node) - default: - panic(fmt.Errorf("this should not be a top level node type: %s", node.Kind)) - } -} - -func (s *SeenTracker) checkTable(node *unstable.Node) error { - if s.currentIdx >= 0 { - s.setExplicitFlag(s.currentIdx) - } - - it := node.Key() - - parentIdx := 0 - - // This code is duplicated in checkArrayTable. This is because factoring - // it in a function requires to copy the iterator, or allocate it to the - // heap, which is not cheap. - for it.Next() { - if it.IsLast() { - break - } - - k := it.Node().Data - - idx := s.find(parentIdx, k) - - if idx < 0 { - idx = s.create(parentIdx, k, tableKind, false, false) - } else { - entry := s.entries[idx] - if entry.kind == valueKind { - return fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) - } - } - parentIdx = idx - } - - k := it.Node().Data - idx := s.find(parentIdx, k) - - if idx >= 0 { - kind := s.entries[idx].kind - if kind != tableKind { - return fmt.Errorf("toml: key %s should be a table, not a %s", string(k), kind) - } - if s.entries[idx].explicit { - return fmt.Errorf("toml: table %s already exists", string(k)) - } - s.entries[idx].explicit = true - } else { - idx = s.create(parentIdx, k, tableKind, true, false) - } - - s.currentIdx = idx - - return nil -} - -func (s *SeenTracker) checkArrayTable(node *unstable.Node) error { - if s.currentIdx >= 0 { - s.setExplicitFlag(s.currentIdx) - } - - it := node.Key() - - parentIdx := 0 - - for it.Next() { - if it.IsLast() { - break - } - - k := it.Node().Data - - idx := s.find(parentIdx, k) - - if idx < 0 { - idx = s.create(parentIdx, k, tableKind, false, false) - } else { - entry := s.entries[idx] - if entry.kind == valueKind { - return fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) - } - } - - parentIdx = idx - } - - k := it.Node().Data - idx := s.find(parentIdx, k) - - if idx >= 0 { - kind := s.entries[idx].kind - if kind != arrayTableKind { - return fmt.Errorf("toml: key %s already exists as a %s, but should be an array table", kind, string(k)) - } - s.clear(idx) - } else { - idx = s.create(parentIdx, k, arrayTableKind, true, false) - } - - s.currentIdx = idx - - return nil -} - -func (s *SeenTracker) checkKeyValue(node *unstable.Node) error { - parentIdx := s.currentIdx - it := node.Key() - - for it.Next() { - k := it.Node().Data - - idx := s.find(parentIdx, k) - - if idx < 0 { - idx = s.create(parentIdx, k, tableKind, false, true) - } else { - entry := s.entries[idx] - if it.IsLast() { - return fmt.Errorf("toml: key %s is already defined", string(k)) - } else if entry.kind != tableKind { - return fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) - } else if entry.explicit { - return fmt.Errorf("toml: cannot redefine table %s that has already been explicitly defined", string(k)) - } - } - - parentIdx = idx - } - - s.entries[parentIdx].kind = valueKind - - value := node.Value() - - switch value.Kind { - case unstable.InlineTable: - return s.checkInlineTable(value) - case unstable.Array: - return s.checkArray(value) - } - - return nil -} - -func (s *SeenTracker) checkArray(node *unstable.Node) error { - it := node.Children() - for it.Next() { - n := it.Node() - switch n.Kind { - case unstable.InlineTable: - err := s.checkInlineTable(n) - if err != nil { - return err - } - case unstable.Array: - err := s.checkArray(n) - if err != nil { - return err - } - } - } - return nil -} - -func (s *SeenTracker) checkInlineTable(node *unstable.Node) error { - if pool.New == nil { - pool.New = func() interface{} { - return &SeenTracker{} - } - } - - s = pool.Get().(*SeenTracker) - s.reset() - - it := node.Children() - for it.Next() { - n := it.Node() - err := s.checkKeyValue(n) - if err != nil { - return err - } - } - - // As inline tables are self-contained, the tracker does not - // need to retain the details of what they contain. The - // keyValue element that creates the inline table is kept to - // mark the presence of the inline table and prevent - // redefinition of its keys: check* functions cannot walk into - // a value. - pool.Put(s) - return nil -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/tracker.go b/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/tracker.go deleted file mode 100644 index bf031739..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/internal/tracker/tracker.go +++ /dev/null @@ -1 +0,0 @@ -package tracker diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/localtime.go b/backend/vendor/github.com/pelletier/go-toml/v2/localtime.go deleted file mode 100644 index a856bfdb..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/localtime.go +++ /dev/null @@ -1,122 +0,0 @@ -package toml - -import ( - "fmt" - "strings" - "time" - - "github.com/pelletier/go-toml/v2/unstable" -) - -// LocalDate represents a calendar day in no specific timezone. -type LocalDate struct { - Year int - Month int - Day int -} - -// AsTime converts d into a specific time instance at midnight in zone. -func (d LocalDate) AsTime(zone *time.Location) time.Time { - return time.Date(d.Year, time.Month(d.Month), d.Day, 0, 0, 0, 0, zone) -} - -// String returns RFC 3339 representation of d. -func (d LocalDate) String() string { - return fmt.Sprintf("%04d-%02d-%02d", d.Year, d.Month, d.Day) -} - -// MarshalText returns RFC 3339 representation of d. -func (d LocalDate) MarshalText() ([]byte, error) { - return []byte(d.String()), nil -} - -// UnmarshalText parses b using RFC 3339 to fill d. -func (d *LocalDate) UnmarshalText(b []byte) error { - res, err := parseLocalDate(b) - if err != nil { - return err - } - *d = res - return nil -} - -// LocalTime represents a time of day of no specific day in no specific -// timezone. -type LocalTime struct { - Hour int // Hour of the day: [0; 24[ - Minute int // Minute of the hour: [0; 60[ - Second int // Second of the minute: [0; 60[ - Nanosecond int // Nanoseconds within the second: [0, 1000000000[ - Precision int // Number of digits to display for Nanosecond. -} - -// String returns RFC 3339 representation of d. -// If d.Nanosecond and d.Precision are zero, the time won't have a nanosecond -// component. If d.Nanosecond > 0 but d.Precision = 0, then the minimum number -// of digits for nanoseconds is provided. -func (d LocalTime) String() string { - s := fmt.Sprintf("%02d:%02d:%02d", d.Hour, d.Minute, d.Second) - - if d.Precision > 0 { - s += fmt.Sprintf(".%09d", d.Nanosecond)[:d.Precision+1] - } else if d.Nanosecond > 0 { - // Nanoseconds are specified, but precision is not provided. Use the - // minimum. - s += strings.Trim(fmt.Sprintf(".%09d", d.Nanosecond), "0") - } - - return s -} - -// MarshalText returns RFC 3339 representation of d. -func (d LocalTime) MarshalText() ([]byte, error) { - return []byte(d.String()), nil -} - -// UnmarshalText parses b using RFC 3339 to fill d. -func (d *LocalTime) UnmarshalText(b []byte) error { - res, left, err := parseLocalTime(b) - if err == nil && len(left) != 0 { - err = unstable.NewParserError(left, "extra characters") - } - if err != nil { - return err - } - *d = res - return nil -} - -// LocalDateTime represents a time of a specific day in no specific timezone. -type LocalDateTime struct { - LocalDate - LocalTime -} - -// AsTime converts d into a specific time instance in zone. -func (d LocalDateTime) AsTime(zone *time.Location) time.Time { - return time.Date(d.Year, time.Month(d.Month), d.Day, d.Hour, d.Minute, d.Second, d.Nanosecond, zone) -} - -// String returns RFC 3339 representation of d. -func (d LocalDateTime) String() string { - return d.LocalDate.String() + "T" + d.LocalTime.String() -} - -// MarshalText returns RFC 3339 representation of d. -func (d LocalDateTime) MarshalText() ([]byte, error) { - return []byte(d.String()), nil -} - -// UnmarshalText parses b using RFC 3339 to fill d. -func (d *LocalDateTime) UnmarshalText(data []byte) error { - res, left, err := parseLocalDateTime(data) - if err == nil && len(left) != 0 { - err = unstable.NewParserError(left, "extra characters") - } - if err != nil { - return err - } - - *d = res - return nil -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/marshaler.go b/backend/vendor/github.com/pelletier/go-toml/v2/marshaler.go deleted file mode 100644 index 6ab1d823..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/marshaler.go +++ /dev/null @@ -1,1058 +0,0 @@ -package toml - -import ( - "bytes" - "encoding" - "fmt" - "io" - "math" - "reflect" - "sort" - "strconv" - "strings" - "time" - "unicode" - - "github.com/pelletier/go-toml/v2/internal/characters" -) - -// Marshal serializes a Go value as a TOML document. -// -// It is a shortcut for Encoder.Encode() with the default options. -func Marshal(v interface{}) ([]byte, error) { - var buf bytes.Buffer - enc := NewEncoder(&buf) - - err := enc.Encode(v) - if err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -// Encoder writes a TOML document to an output stream. -type Encoder struct { - // output - w io.Writer - - // global settings - tablesInline bool - arraysMultiline bool - indentSymbol string - indentTables bool -} - -// NewEncoder returns a new Encoder that writes to w. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - w: w, - indentSymbol: " ", - } -} - -// SetTablesInline forces the encoder to emit all tables inline. -// -// This behavior can be controlled on an individual struct field basis with the -// inline tag: -// -// MyField `toml:",inline"` -func (enc *Encoder) SetTablesInline(inline bool) *Encoder { - enc.tablesInline = inline - return enc -} - -// SetArraysMultiline forces the encoder to emit all arrays with one element per -// line. -// -// This behavior can be controlled on an individual struct field basis with the multiline tag: -// -// MyField `multiline:"true"` -func (enc *Encoder) SetArraysMultiline(multiline bool) *Encoder { - enc.arraysMultiline = multiline - return enc -} - -// SetIndentSymbol defines the string that should be used for indentation. The -// provided string is repeated for each indentation level. Defaults to two -// spaces. -func (enc *Encoder) SetIndentSymbol(s string) *Encoder { - enc.indentSymbol = s - return enc -} - -// SetIndentTables forces the encoder to intent tables and array tables. -func (enc *Encoder) SetIndentTables(indent bool) *Encoder { - enc.indentTables = indent - return enc -} - -// Encode writes a TOML representation of v to the stream. -// -// If v cannot be represented to TOML it returns an error. -// -// # Encoding rules -// -// A top level slice containing only maps or structs is encoded as [[table -// array]]. -// -// All slices not matching rule 1 are encoded as [array]. As a result, any map -// or struct they contain is encoded as an {inline table}. -// -// Nil interfaces and nil pointers are not supported. -// -// Keys in key-values always have one part. -// -// Intermediate tables are always printed. -// -// By default, strings are encoded as literal string, unless they contain either -// a newline character or a single quote. In that case they are emitted as -// quoted strings. -// -// Unsigned integers larger than math.MaxInt64 cannot be encoded. Doing so -// results in an error. This rule exists because the TOML specification only -// requires parsers to support at least the 64 bits integer range. Allowing -// larger numbers would create non-standard TOML documents, which may not be -// readable (at best) by other implementations. To encode such numbers, a -// solution is a custom type that implements encoding.TextMarshaler. -// -// When encoding structs, fields are encoded in order of definition, with their -// exact name. -// -// Tables and array tables are separated by empty lines. However, consecutive -// subtables definitions are not. For example: -// -// [top1] -// -// [top2] -// [top2.child1] -// -// [[array]] -// -// [[array]] -// [array.child2] -// -// # Struct tags -// -// The encoding of each public struct field can be customized by the format -// string in the "toml" key of the struct field's tag. This follows -// encoding/json's convention. The format string starts with the name of the -// field, optionally followed by a comma-separated list of options. The name may -// be empty in order to provide options without overriding the default name. -// -// The "multiline" option emits strings as quoted multi-line TOML strings. It -// has no effect on fields that would not be encoded as strings. -// -// The "inline" option turns fields that would be emitted as tables into inline -// tables instead. It has no effect on other fields. -// -// The "omitempty" option prevents empty values or groups from being emitted. -// -// In addition to the "toml" tag struct tag, a "comment" tag can be used to emit -// a TOML comment before the value being annotated. Comments are ignored inside -// inline tables. For array tables, the comment is only present before the first -// element of the array. -func (enc *Encoder) Encode(v interface{}) error { - var ( - b []byte - ctx encoderCtx - ) - - ctx.inline = enc.tablesInline - - if v == nil { - return fmt.Errorf("toml: cannot encode a nil interface") - } - - b, err := enc.encode(b, ctx, reflect.ValueOf(v)) - if err != nil { - return err - } - - _, err = enc.w.Write(b) - if err != nil { - return fmt.Errorf("toml: cannot write: %w", err) - } - - return nil -} - -type valueOptions struct { - multiline bool - omitempty bool - comment string -} - -type encoderCtx struct { - // Current top-level key. - parentKey []string - - // Key that should be used for a KV. - key string - // Extra flag to account for the empty string - hasKey bool - - // Set to true to indicate that the encoder is inside a KV, so that all - // tables need to be inlined. - insideKv bool - - // Set to true to skip the first table header in an array table. - skipTableHeader bool - - // Should the next table be encoded as inline - inline bool - - // Indentation level - indent int - - // Options coming from struct tags - options valueOptions -} - -func (ctx *encoderCtx) shiftKey() { - if ctx.hasKey { - ctx.parentKey = append(ctx.parentKey, ctx.key) - ctx.clearKey() - } -} - -func (ctx *encoderCtx) setKey(k string) { - ctx.key = k - ctx.hasKey = true -} - -func (ctx *encoderCtx) clearKey() { - ctx.key = "" - ctx.hasKey = false -} - -func (ctx *encoderCtx) isRoot() bool { - return len(ctx.parentKey) == 0 && !ctx.hasKey -} - -func (enc *Encoder) encode(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, error) { - i := v.Interface() - - switch x := i.(type) { - case time.Time: - if x.Nanosecond() > 0 { - return x.AppendFormat(b, time.RFC3339Nano), nil - } - return x.AppendFormat(b, time.RFC3339), nil - case LocalTime: - return append(b, x.String()...), nil - case LocalDate: - return append(b, x.String()...), nil - case LocalDateTime: - return append(b, x.String()...), nil - } - - hasTextMarshaler := v.Type().Implements(textMarshalerType) - if hasTextMarshaler || (v.CanAddr() && reflect.PtrTo(v.Type()).Implements(textMarshalerType)) { - if !hasTextMarshaler { - v = v.Addr() - } - - if ctx.isRoot() { - return nil, fmt.Errorf("toml: type %s implementing the TextMarshaler interface cannot be a root element", v.Type()) - } - - text, err := v.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return nil, err - } - - b = enc.encodeString(b, string(text), ctx.options) - - return b, nil - } - - switch v.Kind() { - // containers - case reflect.Map: - return enc.encodeMap(b, ctx, v) - case reflect.Struct: - return enc.encodeStruct(b, ctx, v) - case reflect.Slice: - return enc.encodeSlice(b, ctx, v) - case reflect.Interface: - if v.IsNil() { - return nil, fmt.Errorf("toml: encoding a nil interface is not supported") - } - - return enc.encode(b, ctx, v.Elem()) - case reflect.Ptr: - if v.IsNil() { - return enc.encode(b, ctx, reflect.Zero(v.Type().Elem())) - } - - return enc.encode(b, ctx, v.Elem()) - - // values - case reflect.String: - b = enc.encodeString(b, v.String(), ctx.options) - case reflect.Float32: - f := v.Float() - - if math.IsNaN(f) { - b = append(b, "nan"...) - } else if f > math.MaxFloat32 { - b = append(b, "inf"...) - } else if f < -math.MaxFloat32 { - b = append(b, "-inf"...) - } else if math.Trunc(f) == f { - b = strconv.AppendFloat(b, f, 'f', 1, 32) - } else { - b = strconv.AppendFloat(b, f, 'f', -1, 32) - } - case reflect.Float64: - f := v.Float() - if math.IsNaN(f) { - b = append(b, "nan"...) - } else if f > math.MaxFloat64 { - b = append(b, "inf"...) - } else if f < -math.MaxFloat64 { - b = append(b, "-inf"...) - } else if math.Trunc(f) == f { - b = strconv.AppendFloat(b, f, 'f', 1, 64) - } else { - b = strconv.AppendFloat(b, f, 'f', -1, 64) - } - case reflect.Bool: - if v.Bool() { - b = append(b, "true"...) - } else { - b = append(b, "false"...) - } - case reflect.Uint64, reflect.Uint32, reflect.Uint16, reflect.Uint8, reflect.Uint: - x := v.Uint() - if x > uint64(math.MaxInt64) { - return nil, fmt.Errorf("toml: not encoding uint (%d) greater than max int64 (%d)", x, int64(math.MaxInt64)) - } - b = strconv.AppendUint(b, x, 10) - case reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8, reflect.Int: - b = strconv.AppendInt(b, v.Int(), 10) - default: - return nil, fmt.Errorf("toml: cannot encode value of type %s", v.Kind()) - } - - return b, nil -} - -func isNil(v reflect.Value) bool { - switch v.Kind() { - case reflect.Ptr, reflect.Interface, reflect.Map: - return v.IsNil() - default: - return false - } -} - -func shouldOmitEmpty(options valueOptions, v reflect.Value) bool { - return options.omitempty && isEmptyValue(v) -} - -func (enc *Encoder) encodeKv(b []byte, ctx encoderCtx, options valueOptions, v reflect.Value) ([]byte, error) { - var err error - - if !ctx.inline { - b = enc.encodeComment(ctx.indent, options.comment, b) - b = enc.indent(ctx.indent, b) - } - - b = enc.encodeKey(b, ctx.key) - b = append(b, " = "...) - - // create a copy of the context because the value of a KV shouldn't - // modify the global context. - subctx := ctx - subctx.insideKv = true - subctx.shiftKey() - subctx.options = options - - b, err = enc.encode(b, subctx, v) - if err != nil { - return nil, err - } - - return b, nil -} - -func isEmptyValue(v reflect.Value) bool { - switch v.Kind() { - case reflect.Struct: - return isEmptyStruct(v) - case reflect.Array, reflect.Map, reflect.Slice, reflect.String: - return v.Len() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - } - return false -} - -func isEmptyStruct(v reflect.Value) bool { - // TODO: merge with walkStruct and cache. - typ := v.Type() - for i := 0; i < typ.NumField(); i++ { - fieldType := typ.Field(i) - - // only consider exported fields - if fieldType.PkgPath != "" { - continue - } - - tag := fieldType.Tag.Get("toml") - - // special field name to skip field - if tag == "-" { - continue - } - - f := v.Field(i) - - if !isEmptyValue(f) { - return false - } - } - - return true -} - -const literalQuote = '\'' - -func (enc *Encoder) encodeString(b []byte, v string, options valueOptions) []byte { - if needsQuoting(v) { - return enc.encodeQuotedString(options.multiline, b, v) - } - - return enc.encodeLiteralString(b, v) -} - -func needsQuoting(v string) bool { - // TODO: vectorize - for _, b := range []byte(v) { - if b == '\'' || b == '\r' || b == '\n' || characters.InvalidAscii(b) { - return true - } - } - return false -} - -// caller should have checked that the string does not contain new lines or ' . -func (enc *Encoder) encodeLiteralString(b []byte, v string) []byte { - b = append(b, literalQuote) - b = append(b, v...) - b = append(b, literalQuote) - - return b -} - -func (enc *Encoder) encodeQuotedString(multiline bool, b []byte, v string) []byte { - stringQuote := `"` - - if multiline { - stringQuote = `"""` - } - - b = append(b, stringQuote...) - if multiline { - b = append(b, '\n') - } - - const ( - hextable = "0123456789ABCDEF" - // U+0000 to U+0008, U+000A to U+001F, U+007F - nul = 0x0 - bs = 0x8 - lf = 0xa - us = 0x1f - del = 0x7f - ) - - for _, r := range []byte(v) { - switch r { - case '\\': - b = append(b, `\\`...) - case '"': - b = append(b, `\"`...) - case '\b': - b = append(b, `\b`...) - case '\f': - b = append(b, `\f`...) - case '\n': - if multiline { - b = append(b, r) - } else { - b = append(b, `\n`...) - } - case '\r': - b = append(b, `\r`...) - case '\t': - b = append(b, `\t`...) - default: - switch { - case r >= nul && r <= bs, r >= lf && r <= us, r == del: - b = append(b, `\u00`...) - b = append(b, hextable[r>>4]) - b = append(b, hextable[r&0x0f]) - default: - b = append(b, r) - } - } - } - - b = append(b, stringQuote...) - - return b -} - -// caller should have checked that the string is in A-Z / a-z / 0-9 / - / _ . -func (enc *Encoder) encodeUnquotedKey(b []byte, v string) []byte { - return append(b, v...) -} - -func (enc *Encoder) encodeTableHeader(ctx encoderCtx, b []byte) ([]byte, error) { - if len(ctx.parentKey) == 0 { - return b, nil - } - - b = enc.encodeComment(ctx.indent, ctx.options.comment, b) - - b = enc.indent(ctx.indent, b) - - b = append(b, '[') - - b = enc.encodeKey(b, ctx.parentKey[0]) - - for _, k := range ctx.parentKey[1:] { - b = append(b, '.') - b = enc.encodeKey(b, k) - } - - b = append(b, "]\n"...) - - return b, nil -} - -//nolint:cyclop -func (enc *Encoder) encodeKey(b []byte, k string) []byte { - needsQuotation := false - cannotUseLiteral := false - - if len(k) == 0 { - return append(b, "''"...) - } - - for _, c := range k { - if (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '-' || c == '_' { - continue - } - - if c == literalQuote { - cannotUseLiteral = true - } - - needsQuotation = true - } - - if needsQuotation && needsQuoting(k) { - cannotUseLiteral = true - } - - switch { - case cannotUseLiteral: - return enc.encodeQuotedString(false, b, k) - case needsQuotation: - return enc.encodeLiteralString(b, k) - default: - return enc.encodeUnquotedKey(b, k) - } -} - -func (enc *Encoder) keyToString(k reflect.Value) (string, error) { - keyType := k.Type() - switch { - case keyType.Kind() == reflect.String: - return k.String(), nil - - case keyType.Implements(textMarshalerType): - keyB, err := k.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return "", fmt.Errorf("toml: error marshalling key %v from text: %w", k, err) - } - return string(keyB), nil - } - return "", fmt.Errorf("toml: type %s is not supported as a map key", keyType.Kind()) -} - -func (enc *Encoder) encodeMap(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, error) { - var ( - t table - emptyValueOptions valueOptions - ) - - iter := v.MapRange() - for iter.Next() { - v := iter.Value() - - if isNil(v) { - continue - } - - k, err := enc.keyToString(iter.Key()) - if err != nil { - return nil, err - } - - if willConvertToTableOrArrayTable(ctx, v) { - t.pushTable(k, v, emptyValueOptions) - } else { - t.pushKV(k, v, emptyValueOptions) - } - } - - sortEntriesByKey(t.kvs) - sortEntriesByKey(t.tables) - - return enc.encodeTable(b, ctx, t) -} - -func sortEntriesByKey(e []entry) { - sort.Slice(e, func(i, j int) bool { - return e[i].Key < e[j].Key - }) -} - -type entry struct { - Key string - Value reflect.Value - Options valueOptions -} - -type table struct { - kvs []entry - tables []entry -} - -func (t *table) pushKV(k string, v reflect.Value, options valueOptions) { - for _, e := range t.kvs { - if e.Key == k { - return - } - } - - t.kvs = append(t.kvs, entry{Key: k, Value: v, Options: options}) -} - -func (t *table) pushTable(k string, v reflect.Value, options valueOptions) { - for _, e := range t.tables { - if e.Key == k { - return - } - } - t.tables = append(t.tables, entry{Key: k, Value: v, Options: options}) -} - -func walkStruct(ctx encoderCtx, t *table, v reflect.Value) { - // TODO: cache this - typ := v.Type() - for i := 0; i < typ.NumField(); i++ { - fieldType := typ.Field(i) - - // only consider exported fields - if fieldType.PkgPath != "" { - continue - } - - tag := fieldType.Tag.Get("toml") - - // special field name to skip field - if tag == "-" { - continue - } - - k, opts := parseTag(tag) - if !isValidName(k) { - k = "" - } - - f := v.Field(i) - - if k == "" { - if fieldType.Anonymous { - if fieldType.Type.Kind() == reflect.Struct { - walkStruct(ctx, t, f) - } - continue - } else { - k = fieldType.Name - } - } - - if isNil(f) { - continue - } - - options := valueOptions{ - multiline: opts.multiline, - omitempty: opts.omitempty, - comment: fieldType.Tag.Get("comment"), - } - - if opts.inline || !willConvertToTableOrArrayTable(ctx, f) { - t.pushKV(k, f, options) - } else { - t.pushTable(k, f, options) - } - } -} - -func (enc *Encoder) encodeStruct(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, error) { - var t table - - walkStruct(ctx, &t, v) - - return enc.encodeTable(b, ctx, t) -} - -func (enc *Encoder) encodeComment(indent int, comment string, b []byte) []byte { - for len(comment) > 0 { - var line string - idx := strings.IndexByte(comment, '\n') - if idx >= 0 { - line = comment[:idx] - comment = comment[idx+1:] - } else { - line = comment - comment = "" - } - b = enc.indent(indent, b) - b = append(b, "# "...) - b = append(b, line...) - b = append(b, '\n') - } - return b -} - -func isValidName(s string) bool { - if s == "" { - return false - } - for _, c := range s { - switch { - case strings.ContainsRune("!#$%&()*+-./:;<=>?@[]^_{|}~ ", c): - // Backslash and quote chars are reserved, but - // otherwise any punctuation chars are allowed - // in a tag name. - case !unicode.IsLetter(c) && !unicode.IsDigit(c): - return false - } - } - return true -} - -type tagOptions struct { - multiline bool - inline bool - omitempty bool -} - -func parseTag(tag string) (string, tagOptions) { - opts := tagOptions{} - - idx := strings.Index(tag, ",") - if idx == -1 { - return tag, opts - } - - raw := tag[idx+1:] - tag = string(tag[:idx]) - for raw != "" { - var o string - i := strings.Index(raw, ",") - if i >= 0 { - o, raw = raw[:i], raw[i+1:] - } else { - o, raw = raw, "" - } - switch o { - case "multiline": - opts.multiline = true - case "inline": - opts.inline = true - case "omitempty": - opts.omitempty = true - } - } - - return tag, opts -} - -func (enc *Encoder) encodeTable(b []byte, ctx encoderCtx, t table) ([]byte, error) { - var err error - - ctx.shiftKey() - - if ctx.insideKv || (ctx.inline && !ctx.isRoot()) { - return enc.encodeTableInline(b, ctx, t) - } - - if !ctx.skipTableHeader { - b, err = enc.encodeTableHeader(ctx, b) - if err != nil { - return nil, err - } - - if enc.indentTables && len(ctx.parentKey) > 0 { - ctx.indent++ - } - } - ctx.skipTableHeader = false - - hasNonEmptyKV := false - for _, kv := range t.kvs { - if shouldOmitEmpty(kv.Options, kv.Value) { - continue - } - hasNonEmptyKV = true - - ctx.setKey(kv.Key) - - b, err = enc.encodeKv(b, ctx, kv.Options, kv.Value) - if err != nil { - return nil, err - } - - b = append(b, '\n') - } - - first := true - for _, table := range t.tables { - if shouldOmitEmpty(table.Options, table.Value) { - continue - } - if first { - first = false - if hasNonEmptyKV { - b = append(b, '\n') - } - } else { - b = append(b, "\n"...) - } - - ctx.setKey(table.Key) - - ctx.options = table.Options - - b, err = enc.encode(b, ctx, table.Value) - if err != nil { - return nil, err - } - } - - return b, nil -} - -func (enc *Encoder) encodeTableInline(b []byte, ctx encoderCtx, t table) ([]byte, error) { - var err error - - b = append(b, '{') - - first := true - for _, kv := range t.kvs { - if shouldOmitEmpty(kv.Options, kv.Value) { - continue - } - - if first { - first = false - } else { - b = append(b, `, `...) - } - - ctx.setKey(kv.Key) - - b, err = enc.encodeKv(b, ctx, kv.Options, kv.Value) - if err != nil { - return nil, err - } - } - - if len(t.tables) > 0 { - panic("inline table cannot contain nested tables, only key-values") - } - - b = append(b, "}"...) - - return b, nil -} - -func willConvertToTable(ctx encoderCtx, v reflect.Value) bool { - if !v.IsValid() { - return false - } - if v.Type() == timeType || v.Type().Implements(textMarshalerType) || (v.Kind() != reflect.Ptr && v.CanAddr() && reflect.PtrTo(v.Type()).Implements(textMarshalerType)) { - return false - } - - t := v.Type() - switch t.Kind() { - case reflect.Map, reflect.Struct: - return !ctx.inline - case reflect.Interface: - return willConvertToTable(ctx, v.Elem()) - case reflect.Ptr: - if v.IsNil() { - return false - } - - return willConvertToTable(ctx, v.Elem()) - default: - return false - } -} - -func willConvertToTableOrArrayTable(ctx encoderCtx, v reflect.Value) bool { - if ctx.insideKv { - return false - } - t := v.Type() - - if t.Kind() == reflect.Interface { - return willConvertToTableOrArrayTable(ctx, v.Elem()) - } - - if t.Kind() == reflect.Slice { - if v.Len() == 0 { - // An empty slice should be a kv = []. - return false - } - - for i := 0; i < v.Len(); i++ { - t := willConvertToTable(ctx, v.Index(i)) - - if !t { - return false - } - } - - return true - } - - return willConvertToTable(ctx, v) -} - -func (enc *Encoder) encodeSlice(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, error) { - if v.Len() == 0 { - b = append(b, "[]"...) - - return b, nil - } - - if willConvertToTableOrArrayTable(ctx, v) { - return enc.encodeSliceAsArrayTable(b, ctx, v) - } - - return enc.encodeSliceAsArray(b, ctx, v) -} - -// caller should have checked that v is a slice that only contains values that -// encode into tables. -func (enc *Encoder) encodeSliceAsArrayTable(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, error) { - ctx.shiftKey() - - scratch := make([]byte, 0, 64) - scratch = append(scratch, "[["...) - - for i, k := range ctx.parentKey { - if i > 0 { - scratch = append(scratch, '.') - } - - scratch = enc.encodeKey(scratch, k) - } - - scratch = append(scratch, "]]\n"...) - ctx.skipTableHeader = true - - b = enc.encodeComment(ctx.indent, ctx.options.comment, b) - - for i := 0; i < v.Len(); i++ { - if i != 0 { - b = append(b, "\n"...) - } - - b = append(b, scratch...) - - var err error - b, err = enc.encode(b, ctx, v.Index(i)) - if err != nil { - return nil, err - } - } - - return b, nil -} - -func (enc *Encoder) encodeSliceAsArray(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, error) { - multiline := ctx.options.multiline || enc.arraysMultiline - separator := ", " - - b = append(b, '[') - - subCtx := ctx - subCtx.options = valueOptions{} - - if multiline { - separator = ",\n" - - b = append(b, '\n') - - subCtx.indent++ - } - - var err error - first := true - - for i := 0; i < v.Len(); i++ { - if first { - first = false - } else { - b = append(b, separator...) - } - - if multiline { - b = enc.indent(subCtx.indent, b) - } - - b, err = enc.encode(b, subCtx, v.Index(i)) - if err != nil { - return nil, err - } - } - - if multiline { - b = append(b, '\n') - b = enc.indent(ctx.indent, b) - } - - b = append(b, ']') - - return b, nil -} - -func (enc *Encoder) indent(level int, b []byte) []byte { - for i := 0; i < level; i++ { - b = append(b, enc.indentSymbol...) - } - - return b -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/strict.go b/backend/vendor/github.com/pelletier/go-toml/v2/strict.go deleted file mode 100644 index 802e7e4d..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/strict.go +++ /dev/null @@ -1,107 +0,0 @@ -package toml - -import ( - "github.com/pelletier/go-toml/v2/internal/danger" - "github.com/pelletier/go-toml/v2/internal/tracker" - "github.com/pelletier/go-toml/v2/unstable" -) - -type strict struct { - Enabled bool - - // Tracks the current key being processed. - key tracker.KeyTracker - - missing []unstable.ParserError -} - -func (s *strict) EnterTable(node *unstable.Node) { - if !s.Enabled { - return - } - - s.key.UpdateTable(node) -} - -func (s *strict) EnterArrayTable(node *unstable.Node) { - if !s.Enabled { - return - } - - s.key.UpdateArrayTable(node) -} - -func (s *strict) EnterKeyValue(node *unstable.Node) { - if !s.Enabled { - return - } - - s.key.Push(node) -} - -func (s *strict) ExitKeyValue(node *unstable.Node) { - if !s.Enabled { - return - } - - s.key.Pop(node) -} - -func (s *strict) MissingTable(node *unstable.Node) { - if !s.Enabled { - return - } - - s.missing = append(s.missing, unstable.ParserError{ - Highlight: keyLocation(node), - Message: "missing table", - Key: s.key.Key(), - }) -} - -func (s *strict) MissingField(node *unstable.Node) { - if !s.Enabled { - return - } - - s.missing = append(s.missing, unstable.ParserError{ - Highlight: keyLocation(node), - Message: "missing field", - Key: s.key.Key(), - }) -} - -func (s *strict) Error(doc []byte) error { - if !s.Enabled || len(s.missing) == 0 { - return nil - } - - err := &StrictMissingError{ - Errors: make([]DecodeError, 0, len(s.missing)), - } - - for _, derr := range s.missing { - derr := derr - err.Errors = append(err.Errors, *wrapDecodeError(doc, &derr)) - } - - return err -} - -func keyLocation(node *unstable.Node) []byte { - k := node.Key() - - hasOne := k.Next() - if !hasOne { - panic("should not be called with empty key") - } - - start := k.Node().Data - end := k.Node().Data - - for k.Next() { - end = k.Node().Data - } - - return danger.BytesRange(start, end) -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/toml.abnf b/backend/vendor/github.com/pelletier/go-toml/v2/toml.abnf deleted file mode 100644 index 473f3749..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/toml.abnf +++ /dev/null @@ -1,243 +0,0 @@ -;; This document describes TOML's syntax, using the ABNF format (defined in -;; RFC 5234 -- https://www.ietf.org/rfc/rfc5234.txt). -;; -;; All valid TOML documents will match this description, however certain -;; invalid documents would need to be rejected as per the semantics described -;; in the supporting text description. - -;; It is possible to try this grammar interactively, using instaparse. -;; http://instaparse.mojombo.com/ -;; -;; To do so, in the lower right, click on Options and change `:input-format` to -;; ':abnf'. Then paste this entire ABNF document into the grammar entry box -;; (above the options). Then you can type or paste a sample TOML document into -;; the beige box on the left. Tada! - -;; Overall Structure - -toml = expression *( newline expression ) - -expression = ws [ comment ] -expression =/ ws keyval ws [ comment ] -expression =/ ws table ws [ comment ] - -;; Whitespace - -ws = *wschar -wschar = %x20 ; Space -wschar =/ %x09 ; Horizontal tab - -;; Newline - -newline = %x0A ; LF -newline =/ %x0D.0A ; CRLF - -;; Comment - -comment-start-symbol = %x23 ; # -non-ascii = %x80-D7FF / %xE000-10FFFF -non-eol = %x09 / %x20-7F / non-ascii - -comment = comment-start-symbol *non-eol - -;; Key-Value pairs - -keyval = key keyval-sep val - -key = simple-key / dotted-key -simple-key = quoted-key / unquoted-key - -unquoted-key = 1*( ALPHA / DIGIT / %x2D / %x5F ) ; A-Z / a-z / 0-9 / - / _ -quoted-key = basic-string / literal-string -dotted-key = simple-key 1*( dot-sep simple-key ) - -dot-sep = ws %x2E ws ; . Period -keyval-sep = ws %x3D ws ; = - -val = string / boolean / array / inline-table / date-time / float / integer - -;; String - -string = ml-basic-string / basic-string / ml-literal-string / literal-string - -;; Basic String - -basic-string = quotation-mark *basic-char quotation-mark - -quotation-mark = %x22 ; " - -basic-char = basic-unescaped / escaped -basic-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii -escaped = escape escape-seq-char - -escape = %x5C ; \ -escape-seq-char = %x22 ; " quotation mark U+0022 -escape-seq-char =/ %x5C ; \ reverse solidus U+005C -escape-seq-char =/ %x62 ; b backspace U+0008 -escape-seq-char =/ %x66 ; f form feed U+000C -escape-seq-char =/ %x6E ; n line feed U+000A -escape-seq-char =/ %x72 ; r carriage return U+000D -escape-seq-char =/ %x74 ; t tab U+0009 -escape-seq-char =/ %x75 4HEXDIG ; uXXXX U+XXXX -escape-seq-char =/ %x55 8HEXDIG ; UXXXXXXXX U+XXXXXXXX - -;; Multiline Basic String - -ml-basic-string = ml-basic-string-delim [ newline ] ml-basic-body - ml-basic-string-delim -ml-basic-string-delim = 3quotation-mark -ml-basic-body = *mlb-content *( mlb-quotes 1*mlb-content ) [ mlb-quotes ] - -mlb-content = mlb-char / newline / mlb-escaped-nl -mlb-char = mlb-unescaped / escaped -mlb-quotes = 1*2quotation-mark -mlb-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii -mlb-escaped-nl = escape ws newline *( wschar / newline ) - -;; Literal String - -literal-string = apostrophe *literal-char apostrophe - -apostrophe = %x27 ; ' apostrophe - -literal-char = %x09 / %x20-26 / %x28-7E / non-ascii - -;; Multiline Literal String - -ml-literal-string = ml-literal-string-delim [ newline ] ml-literal-body - ml-literal-string-delim -ml-literal-string-delim = 3apostrophe -ml-literal-body = *mll-content *( mll-quotes 1*mll-content ) [ mll-quotes ] - -mll-content = mll-char / newline -mll-char = %x09 / %x20-26 / %x28-7E / non-ascii -mll-quotes = 1*2apostrophe - -;; Integer - -integer = dec-int / hex-int / oct-int / bin-int - -minus = %x2D ; - -plus = %x2B ; + -underscore = %x5F ; _ -digit1-9 = %x31-39 ; 1-9 -digit0-7 = %x30-37 ; 0-7 -digit0-1 = %x30-31 ; 0-1 - -hex-prefix = %x30.78 ; 0x -oct-prefix = %x30.6F ; 0o -bin-prefix = %x30.62 ; 0b - -dec-int = [ minus / plus ] unsigned-dec-int -unsigned-dec-int = DIGIT / digit1-9 1*( DIGIT / underscore DIGIT ) - -hex-int = hex-prefix HEXDIG *( HEXDIG / underscore HEXDIG ) -oct-int = oct-prefix digit0-7 *( digit0-7 / underscore digit0-7 ) -bin-int = bin-prefix digit0-1 *( digit0-1 / underscore digit0-1 ) - -;; Float - -float = float-int-part ( exp / frac [ exp ] ) -float =/ special-float - -float-int-part = dec-int -frac = decimal-point zero-prefixable-int -decimal-point = %x2E ; . -zero-prefixable-int = DIGIT *( DIGIT / underscore DIGIT ) - -exp = "e" float-exp-part -float-exp-part = [ minus / plus ] zero-prefixable-int - -special-float = [ minus / plus ] ( inf / nan ) -inf = %x69.6e.66 ; inf -nan = %x6e.61.6e ; nan - -;; Boolean - -boolean = true / false - -true = %x74.72.75.65 ; true -false = %x66.61.6C.73.65 ; false - -;; Date and Time (as defined in RFC 3339) - -date-time = offset-date-time / local-date-time / local-date / local-time - -date-fullyear = 4DIGIT -date-month = 2DIGIT ; 01-12 -date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year -time-delim = "T" / %x20 ; T, t, or space -time-hour = 2DIGIT ; 00-23 -time-minute = 2DIGIT ; 00-59 -time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second rules -time-secfrac = "." 1*DIGIT -time-numoffset = ( "+" / "-" ) time-hour ":" time-minute -time-offset = "Z" / time-numoffset - -partial-time = time-hour ":" time-minute ":" time-second [ time-secfrac ] -full-date = date-fullyear "-" date-month "-" date-mday -full-time = partial-time time-offset - -;; Offset Date-Time - -offset-date-time = full-date time-delim full-time - -;; Local Date-Time - -local-date-time = full-date time-delim partial-time - -;; Local Date - -local-date = full-date - -;; Local Time - -local-time = partial-time - -;; Array - -array = array-open [ array-values ] ws-comment-newline array-close - -array-open = %x5B ; [ -array-close = %x5D ; ] - -array-values = ws-comment-newline val ws-comment-newline array-sep array-values -array-values =/ ws-comment-newline val ws-comment-newline [ array-sep ] - -array-sep = %x2C ; , Comma - -ws-comment-newline = *( wschar / [ comment ] newline ) - -;; Table - -table = std-table / array-table - -;; Standard Table - -std-table = std-table-open key std-table-close - -std-table-open = %x5B ws ; [ Left square bracket -std-table-close = ws %x5D ; ] Right square bracket - -;; Inline Table - -inline-table = inline-table-open [ inline-table-keyvals ] inline-table-close - -inline-table-open = %x7B ws ; { -inline-table-close = ws %x7D ; } -inline-table-sep = ws %x2C ws ; , Comma - -inline-table-keyvals = keyval [ inline-table-sep inline-table-keyvals ] - -;; Array Table - -array-table = array-table-open key array-table-close - -array-table-open = %x5B.5B ws ; [[ Double left square bracket -array-table-close = ws %x5D.5D ; ]] Double right square bracket - -;; Built-in ABNF terms, reproduced here for clarity - -ALPHA = %x41-5A / %x61-7A ; A-Z / a-z -DIGIT = %x30-39 ; 0-9 -HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/types.go b/backend/vendor/github.com/pelletier/go-toml/v2/types.go deleted file mode 100644 index 3c6b8fe5..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/types.go +++ /dev/null @@ -1,14 +0,0 @@ -package toml - -import ( - "encoding" - "reflect" - "time" -) - -var timeType = reflect.TypeOf((*time.Time)(nil)).Elem() -var textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() -var textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() -var mapStringInterfaceType = reflect.TypeOf(map[string]interface{}(nil)) -var sliceInterfaceType = reflect.TypeOf([]interface{}(nil)) -var stringType = reflect.TypeOf("") diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go b/backend/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go deleted file mode 100644 index 39350343..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go +++ /dev/null @@ -1,1260 +0,0 @@ -package toml - -import ( - "encoding" - "errors" - "fmt" - "io" - "io/ioutil" - "math" - "reflect" - "strings" - "sync/atomic" - "time" - - "github.com/pelletier/go-toml/v2/internal/danger" - "github.com/pelletier/go-toml/v2/internal/tracker" - "github.com/pelletier/go-toml/v2/unstable" -) - -// Unmarshal deserializes a TOML document into a Go value. -// -// It is a shortcut for Decoder.Decode() with the default options. -func Unmarshal(data []byte, v interface{}) error { - p := unstable.Parser{} - p.Reset(data) - d := decoder{p: &p} - - return d.FromParser(v) -} - -// Decoder reads and decode a TOML document from an input stream. -type Decoder struct { - // input - r io.Reader - - // global settings - strict bool -} - -// NewDecoder creates a new Decoder that will read from r. -func NewDecoder(r io.Reader) *Decoder { - return &Decoder{r: r} -} - -// DisallowUnknownFields causes the Decoder to return an error when the -// destination is a struct and the input contains a key that does not match a -// non-ignored field. -// -// In that case, the Decoder returns a StrictMissingError that can be used to -// retrieve the individual errors as well as generate a human readable -// description of the missing fields. -func (d *Decoder) DisallowUnknownFields() *Decoder { - d.strict = true - return d -} - -// Decode the whole content of r into v. -// -// By default, values in the document that don't exist in the target Go value -// are ignored. See Decoder.DisallowUnknownFields() to change this behavior. -// -// When a TOML local date, time, or date-time is decoded into a time.Time, its -// value is represented in time.Local timezone. Otherwise the appropriate Local* -// structure is used. For time values, precision up to the nanosecond is -// supported by truncating extra digits. -// -// Empty tables decoded in an interface{} create an empty initialized -// map[string]interface{}. -// -// Types implementing the encoding.TextUnmarshaler interface are decoded from a -// TOML string. -// -// When decoding a number, go-toml will return an error if the number is out of -// bounds for the target type (which includes negative numbers when decoding -// into an unsigned int). -// -// If an error occurs while decoding the content of the document, this function -// returns a toml.DecodeError, providing context about the issue. When using -// strict mode and a field is missing, a `toml.StrictMissingError` is -// returned. In any other case, this function returns a standard Go error. -// -// # Type mapping -// -// List of supported TOML types and their associated accepted Go types: -// -// String -> string -// Integer -> uint*, int*, depending on size -// Float -> float*, depending on size -// Boolean -> bool -// Offset Date-Time -> time.Time -// Local Date-time -> LocalDateTime, time.Time -// Local Date -> LocalDate, time.Time -// Local Time -> LocalTime, time.Time -// Array -> slice and array, depending on elements types -// Table -> map and struct -// Inline Table -> same as Table -// Array of Tables -> same as Array and Table -func (d *Decoder) Decode(v interface{}) error { - b, err := ioutil.ReadAll(d.r) - if err != nil { - return fmt.Errorf("toml: %w", err) - } - - p := unstable.Parser{} - p.Reset(b) - dec := decoder{ - p: &p, - strict: strict{ - Enabled: d.strict, - }, - } - - return dec.FromParser(v) -} - -type decoder struct { - // Which parser instance in use for this decoding session. - p *unstable.Parser - - // Flag indicating that the current expression is stashed. - // If set to true, calling nextExpr will not actually pull a new expression - // but turn off the flag instead. - stashedExpr bool - - // Skip expressions until a table is found. This is set to true when a - // table could not be created (missing field in map), so all KV expressions - // need to be skipped. - skipUntilTable bool - - // Tracks position in Go arrays. - // This is used when decoding [[array tables]] into Go arrays. Given array - // tables are separate TOML expression, we need to keep track of where we - // are at in the Go array, as we can't just introspect its size. - arrayIndexes map[reflect.Value]int - - // Tracks keys that have been seen, with which type. - seen tracker.SeenTracker - - // Strict mode - strict strict - - // Current context for the error. - errorContext *errorContext -} - -type errorContext struct { - Struct reflect.Type - Field []int -} - -func (d *decoder) typeMismatchError(toml string, target reflect.Type) error { - if d.errorContext != nil && d.errorContext.Struct != nil { - ctx := d.errorContext - f := ctx.Struct.FieldByIndex(ctx.Field) - return fmt.Errorf("toml: cannot decode TOML %s into struct field %s.%s of type %s", toml, ctx.Struct, f.Name, f.Type) - } - return fmt.Errorf("toml: cannot decode TOML %s into a Go value of type %s", toml, target) -} - -func (d *decoder) expr() *unstable.Node { - return d.p.Expression() -} - -func (d *decoder) nextExpr() bool { - if d.stashedExpr { - d.stashedExpr = false - return true - } - return d.p.NextExpression() -} - -func (d *decoder) stashExpr() { - d.stashedExpr = true -} - -func (d *decoder) arrayIndex(shouldAppend bool, v reflect.Value) int { - if d.arrayIndexes == nil { - d.arrayIndexes = make(map[reflect.Value]int, 1) - } - - idx, ok := d.arrayIndexes[v] - - if !ok { - d.arrayIndexes[v] = 0 - } else if shouldAppend { - idx++ - d.arrayIndexes[v] = idx - } - - return idx -} - -func (d *decoder) FromParser(v interface{}) error { - r := reflect.ValueOf(v) - if r.Kind() != reflect.Ptr { - return fmt.Errorf("toml: decoding can only be performed into a pointer, not %s", r.Kind()) - } - - if r.IsNil() { - return fmt.Errorf("toml: decoding pointer target cannot be nil") - } - - r = r.Elem() - if r.Kind() == reflect.Interface && r.IsNil() { - newMap := map[string]interface{}{} - r.Set(reflect.ValueOf(newMap)) - } - - err := d.fromParser(r) - if err == nil { - return d.strict.Error(d.p.Data()) - } - - var e *unstable.ParserError - if errors.As(err, &e) { - return wrapDecodeError(d.p.Data(), e) - } - - return err -} - -func (d *decoder) fromParser(root reflect.Value) error { - for d.nextExpr() { - err := d.handleRootExpression(d.expr(), root) - if err != nil { - return err - } - } - - return d.p.Error() -} - -/* -Rules for the unmarshal code: - -- The stack is used to keep track of which values need to be set where. -- handle* functions <=> switch on a given unstable.Kind. -- unmarshalX* functions need to unmarshal a node of kind X. -- An "object" is either a struct or a map. -*/ - -func (d *decoder) handleRootExpression(expr *unstable.Node, v reflect.Value) error { - var x reflect.Value - var err error - - if !(d.skipUntilTable && expr.Kind == unstable.KeyValue) { - err = d.seen.CheckExpression(expr) - if err != nil { - return err - } - } - - switch expr.Kind { - case unstable.KeyValue: - if d.skipUntilTable { - return nil - } - x, err = d.handleKeyValue(expr, v) - case unstable.Table: - d.skipUntilTable = false - d.strict.EnterTable(expr) - x, err = d.handleTable(expr.Key(), v) - case unstable.ArrayTable: - d.skipUntilTable = false - d.strict.EnterArrayTable(expr) - x, err = d.handleArrayTable(expr.Key(), v) - default: - panic(fmt.Errorf("parser should not permit expression of kind %s at document root", expr.Kind)) - } - - if d.skipUntilTable { - if expr.Kind == unstable.Table || expr.Kind == unstable.ArrayTable { - d.strict.MissingTable(expr) - } - } else if err == nil && x.IsValid() { - v.Set(x) - } - - return err -} - -func (d *decoder) handleArrayTable(key unstable.Iterator, v reflect.Value) (reflect.Value, error) { - if key.Next() { - return d.handleArrayTablePart(key, v) - } - return d.handleKeyValues(v) -} - -func (d *decoder) handleArrayTableCollectionLast(key unstable.Iterator, v reflect.Value) (reflect.Value, error) { - switch v.Kind() { - case reflect.Interface: - elem := v.Elem() - if !elem.IsValid() { - elem = reflect.New(sliceInterfaceType).Elem() - elem.Set(reflect.MakeSlice(sliceInterfaceType, 0, 16)) - } else if elem.Kind() == reflect.Slice { - if elem.Type() != sliceInterfaceType { - elem = reflect.New(sliceInterfaceType).Elem() - elem.Set(reflect.MakeSlice(sliceInterfaceType, 0, 16)) - } else if !elem.CanSet() { - nelem := reflect.New(sliceInterfaceType).Elem() - nelem.Set(reflect.MakeSlice(sliceInterfaceType, elem.Len(), elem.Cap())) - reflect.Copy(nelem, elem) - elem = nelem - } - } - return d.handleArrayTableCollectionLast(key, elem) - case reflect.Ptr: - elem := v.Elem() - if !elem.IsValid() { - ptr := reflect.New(v.Type().Elem()) - v.Set(ptr) - elem = ptr.Elem() - } - - elem, err := d.handleArrayTableCollectionLast(key, elem) - if err != nil { - return reflect.Value{}, err - } - v.Elem().Set(elem) - - return v, nil - case reflect.Slice: - elemType := v.Type().Elem() - var elem reflect.Value - if elemType.Kind() == reflect.Interface { - elem = makeMapStringInterface() - } else { - elem = reflect.New(elemType).Elem() - } - elem2, err := d.handleArrayTable(key, elem) - if err != nil { - return reflect.Value{}, err - } - if elem2.IsValid() { - elem = elem2 - } - return reflect.Append(v, elem), nil - case reflect.Array: - idx := d.arrayIndex(true, v) - if idx >= v.Len() { - return v, fmt.Errorf("%s at position %d", d.typeMismatchError("array table", v.Type()), idx) - } - elem := v.Index(idx) - _, err := d.handleArrayTable(key, elem) - return v, err - default: - return reflect.Value{}, d.typeMismatchError("array table", v.Type()) - } -} - -// When parsing an array table expression, each part of the key needs to be -// evaluated like a normal key, but if it returns a collection, it also needs to -// point to the last element of the collection. Unless it is the last part of -// the key, then it needs to create a new element at the end. -func (d *decoder) handleArrayTableCollection(key unstable.Iterator, v reflect.Value) (reflect.Value, error) { - if key.IsLast() { - return d.handleArrayTableCollectionLast(key, v) - } - - switch v.Kind() { - case reflect.Ptr: - elem := v.Elem() - if !elem.IsValid() { - ptr := reflect.New(v.Type().Elem()) - v.Set(ptr) - elem = ptr.Elem() - } - - elem, err := d.handleArrayTableCollection(key, elem) - if err != nil { - return reflect.Value{}, err - } - if elem.IsValid() { - v.Elem().Set(elem) - } - - return v, nil - case reflect.Slice: - elem := v.Index(v.Len() - 1) - x, err := d.handleArrayTable(key, elem) - if err != nil || d.skipUntilTable { - return reflect.Value{}, err - } - if x.IsValid() { - elem.Set(x) - } - - return v, err - case reflect.Array: - idx := d.arrayIndex(false, v) - if idx >= v.Len() { - return v, fmt.Errorf("%s at position %d", d.typeMismatchError("array table", v.Type()), idx) - } - elem := v.Index(idx) - _, err := d.handleArrayTable(key, elem) - return v, err - } - - return d.handleArrayTable(key, v) -} - -func (d *decoder) handleKeyPart(key unstable.Iterator, v reflect.Value, nextFn handlerFn, makeFn valueMakerFn) (reflect.Value, error) { - var rv reflect.Value - - // First, dispatch over v to make sure it is a valid object. - // There is no guarantee over what it could be. - switch v.Kind() { - case reflect.Ptr: - elem := v.Elem() - if !elem.IsValid() { - v.Set(reflect.New(v.Type().Elem())) - } - elem = v.Elem() - return d.handleKeyPart(key, elem, nextFn, makeFn) - case reflect.Map: - vt := v.Type() - - // Create the key for the map element. Convert to key type. - mk, err := d.keyFromData(vt.Key(), key.Node().Data) - if err != nil { - return reflect.Value{}, err - } - - // If the map does not exist, create it. - if v.IsNil() { - vt := v.Type() - v = reflect.MakeMap(vt) - rv = v - } - - mv := v.MapIndex(mk) - set := false - if !mv.IsValid() { - // If there is no value in the map, create a new one according to - // the map type. If the element type is interface, create either a - // map[string]interface{} or a []interface{} depending on whether - // this is the last part of the array table key. - - t := vt.Elem() - if t.Kind() == reflect.Interface { - mv = makeFn() - } else { - mv = reflect.New(t).Elem() - } - set = true - } else if mv.Kind() == reflect.Interface { - mv = mv.Elem() - if !mv.IsValid() { - mv = makeFn() - } - set = true - } else if !mv.CanAddr() { - vt := v.Type() - t := vt.Elem() - oldmv := mv - mv = reflect.New(t).Elem() - mv.Set(oldmv) - set = true - } - - x, err := nextFn(key, mv) - if err != nil { - return reflect.Value{}, err - } - - if x.IsValid() { - mv = x - set = true - } - - if set { - v.SetMapIndex(mk, mv) - } - case reflect.Struct: - path, found := structFieldPath(v, string(key.Node().Data)) - if !found { - d.skipUntilTable = true - return reflect.Value{}, nil - } - - if d.errorContext == nil { - d.errorContext = new(errorContext) - } - t := v.Type() - d.errorContext.Struct = t - d.errorContext.Field = path - - f := fieldByIndex(v, path) - x, err := nextFn(key, f) - if err != nil || d.skipUntilTable { - return reflect.Value{}, err - } - if x.IsValid() { - f.Set(x) - } - d.errorContext.Field = nil - d.errorContext.Struct = nil - case reflect.Interface: - if v.Elem().IsValid() { - v = v.Elem() - } else { - v = makeMapStringInterface() - } - - x, err := d.handleKeyPart(key, v, nextFn, makeFn) - if err != nil { - return reflect.Value{}, err - } - if x.IsValid() { - v = x - } - rv = v - default: - panic(fmt.Errorf("unhandled part: %s", v.Kind())) - } - - return rv, nil -} - -// HandleArrayTablePart navigates the Go structure v using the key v. It is -// only used for the prefix (non-last) parts of an array-table. When -// encountering a collection, it should go to the last element. -func (d *decoder) handleArrayTablePart(key unstable.Iterator, v reflect.Value) (reflect.Value, error) { - var makeFn valueMakerFn - if key.IsLast() { - makeFn = makeSliceInterface - } else { - makeFn = makeMapStringInterface - } - return d.handleKeyPart(key, v, d.handleArrayTableCollection, makeFn) -} - -// HandleTable returns a reference when it has checked the next expression but -// cannot handle it. -func (d *decoder) handleTable(key unstable.Iterator, v reflect.Value) (reflect.Value, error) { - if v.Kind() == reflect.Slice { - if v.Len() == 0 { - return reflect.Value{}, unstable.NewParserError(key.Node().Data, "cannot store a table in a slice") - } - elem := v.Index(v.Len() - 1) - x, err := d.handleTable(key, elem) - if err != nil { - return reflect.Value{}, err - } - if x.IsValid() { - elem.Set(x) - } - return reflect.Value{}, nil - } - if key.Next() { - // Still scoping the key - return d.handleTablePart(key, v) - } - // Done scoping the key. - // Now handle all the key-value expressions in this table. - return d.handleKeyValues(v) -} - -// Handle root expressions until the end of the document or the next -// non-key-value. -func (d *decoder) handleKeyValues(v reflect.Value) (reflect.Value, error) { - var rv reflect.Value - for d.nextExpr() { - expr := d.expr() - if expr.Kind != unstable.KeyValue { - // Stash the expression so that fromParser can just loop and use - // the right handler. - // We could just recurse ourselves here, but at least this gives a - // chance to pop the stack a bit. - d.stashExpr() - break - } - - err := d.seen.CheckExpression(expr) - if err != nil { - return reflect.Value{}, err - } - - x, err := d.handleKeyValue(expr, v) - if err != nil { - return reflect.Value{}, err - } - if x.IsValid() { - v = x - rv = x - } - } - return rv, nil -} - -type ( - handlerFn func(key unstable.Iterator, v reflect.Value) (reflect.Value, error) - valueMakerFn func() reflect.Value -) - -func makeMapStringInterface() reflect.Value { - return reflect.MakeMap(mapStringInterfaceType) -} - -func makeSliceInterface() reflect.Value { - return reflect.MakeSlice(sliceInterfaceType, 0, 16) -} - -func (d *decoder) handleTablePart(key unstable.Iterator, v reflect.Value) (reflect.Value, error) { - return d.handleKeyPart(key, v, d.handleTable, makeMapStringInterface) -} - -func (d *decoder) tryTextUnmarshaler(node *unstable.Node, v reflect.Value) (bool, error) { - // Special case for time, because we allow to unmarshal to it from - // different kind of AST nodes. - if v.Type() == timeType { - return false, nil - } - - if v.CanAddr() && v.Addr().Type().Implements(textUnmarshalerType) { - err := v.Addr().Interface().(encoding.TextUnmarshaler).UnmarshalText(node.Data) - if err != nil { - return false, unstable.NewParserError(d.p.Raw(node.Raw), "%w", err) - } - - return true, nil - } - - return false, nil -} - -func (d *decoder) handleValue(value *unstable.Node, v reflect.Value) error { - for v.Kind() == reflect.Ptr { - v = initAndDereferencePointer(v) - } - - ok, err := d.tryTextUnmarshaler(value, v) - if ok || err != nil { - return err - } - - switch value.Kind { - case unstable.String: - return d.unmarshalString(value, v) - case unstable.Integer: - return d.unmarshalInteger(value, v) - case unstable.Float: - return d.unmarshalFloat(value, v) - case unstable.Bool: - return d.unmarshalBool(value, v) - case unstable.DateTime: - return d.unmarshalDateTime(value, v) - case unstable.LocalDate: - return d.unmarshalLocalDate(value, v) - case unstable.LocalTime: - return d.unmarshalLocalTime(value, v) - case unstable.LocalDateTime: - return d.unmarshalLocalDateTime(value, v) - case unstable.InlineTable: - return d.unmarshalInlineTable(value, v) - case unstable.Array: - return d.unmarshalArray(value, v) - default: - panic(fmt.Errorf("handleValue not implemented for %s", value.Kind)) - } -} - -func (d *decoder) unmarshalArray(array *unstable.Node, v reflect.Value) error { - switch v.Kind() { - case reflect.Slice: - if v.IsNil() { - v.Set(reflect.MakeSlice(v.Type(), 0, 16)) - } else { - v.SetLen(0) - } - case reflect.Array: - // arrays are always initialized - case reflect.Interface: - elem := v.Elem() - if !elem.IsValid() { - elem = reflect.New(sliceInterfaceType).Elem() - elem.Set(reflect.MakeSlice(sliceInterfaceType, 0, 16)) - } else if elem.Kind() == reflect.Slice { - if elem.Type() != sliceInterfaceType { - elem = reflect.New(sliceInterfaceType).Elem() - elem.Set(reflect.MakeSlice(sliceInterfaceType, 0, 16)) - } else if !elem.CanSet() { - nelem := reflect.New(sliceInterfaceType).Elem() - nelem.Set(reflect.MakeSlice(sliceInterfaceType, elem.Len(), elem.Cap())) - reflect.Copy(nelem, elem) - elem = nelem - } - } - err := d.unmarshalArray(array, elem) - if err != nil { - return err - } - v.Set(elem) - return nil - default: - // TODO: use newDecodeError, but first the parser needs to fill - // array.Data. - return d.typeMismatchError("array", v.Type()) - } - - elemType := v.Type().Elem() - - it := array.Children() - idx := 0 - for it.Next() { - n := it.Node() - - // TODO: optimize - if v.Kind() == reflect.Slice { - elem := reflect.New(elemType).Elem() - - err := d.handleValue(n, elem) - if err != nil { - return err - } - - v.Set(reflect.Append(v, elem)) - } else { // array - if idx >= v.Len() { - return nil - } - elem := v.Index(idx) - err := d.handleValue(n, elem) - if err != nil { - return err - } - idx++ - } - } - - return nil -} - -func (d *decoder) unmarshalInlineTable(itable *unstable.Node, v reflect.Value) error { - // Make sure v is an initialized object. - switch v.Kind() { - case reflect.Map: - if v.IsNil() { - v.Set(reflect.MakeMap(v.Type())) - } - case reflect.Struct: - // structs are always initialized. - case reflect.Interface: - elem := v.Elem() - if !elem.IsValid() { - elem = makeMapStringInterface() - v.Set(elem) - } - return d.unmarshalInlineTable(itable, elem) - default: - return unstable.NewParserError(d.p.Raw(itable.Raw), "cannot store inline table in Go type %s", v.Kind()) - } - - it := itable.Children() - for it.Next() { - n := it.Node() - - x, err := d.handleKeyValue(n, v) - if err != nil { - return err - } - if x.IsValid() { - v = x - } - } - - return nil -} - -func (d *decoder) unmarshalDateTime(value *unstable.Node, v reflect.Value) error { - dt, err := parseDateTime(value.Data) - if err != nil { - return err - } - - v.Set(reflect.ValueOf(dt)) - return nil -} - -func (d *decoder) unmarshalLocalDate(value *unstable.Node, v reflect.Value) error { - ld, err := parseLocalDate(value.Data) - if err != nil { - return err - } - - if v.Type() == timeType { - cast := ld.AsTime(time.Local) - v.Set(reflect.ValueOf(cast)) - return nil - } - - v.Set(reflect.ValueOf(ld)) - - return nil -} - -func (d *decoder) unmarshalLocalTime(value *unstable.Node, v reflect.Value) error { - lt, rest, err := parseLocalTime(value.Data) - if err != nil { - return err - } - - if len(rest) > 0 { - return unstable.NewParserError(rest, "extra characters at the end of a local time") - } - - v.Set(reflect.ValueOf(lt)) - return nil -} - -func (d *decoder) unmarshalLocalDateTime(value *unstable.Node, v reflect.Value) error { - ldt, rest, err := parseLocalDateTime(value.Data) - if err != nil { - return err - } - - if len(rest) > 0 { - return unstable.NewParserError(rest, "extra characters at the end of a local date time") - } - - if v.Type() == timeType { - cast := ldt.AsTime(time.Local) - - v.Set(reflect.ValueOf(cast)) - return nil - } - - v.Set(reflect.ValueOf(ldt)) - - return nil -} - -func (d *decoder) unmarshalBool(value *unstable.Node, v reflect.Value) error { - b := value.Data[0] == 't' - - switch v.Kind() { - case reflect.Bool: - v.SetBool(b) - case reflect.Interface: - v.Set(reflect.ValueOf(b)) - default: - return unstable.NewParserError(value.Data, "cannot assign boolean to a %t", b) - } - - return nil -} - -func (d *decoder) unmarshalFloat(value *unstable.Node, v reflect.Value) error { - f, err := parseFloat(value.Data) - if err != nil { - return err - } - - switch v.Kind() { - case reflect.Float64: - v.SetFloat(f) - case reflect.Float32: - if f > math.MaxFloat32 { - return unstable.NewParserError(value.Data, "number %f does not fit in a float32", f) - } - v.SetFloat(f) - case reflect.Interface: - v.Set(reflect.ValueOf(f)) - default: - return unstable.NewParserError(value.Data, "float cannot be assigned to %s", v.Kind()) - } - - return nil -} - -const ( - maxInt = int64(^uint(0) >> 1) - minInt = -maxInt - 1 -) - -// Maximum value of uint for decoding. Currently the decoder parses the integer -// into an int64. As a result, on architectures where uint is 64 bits, the -// effective maximum uint we can decode is the maximum of int64. On -// architectures where uint is 32 bits, the maximum value we can decode is -// lower: the maximum of uint32. I didn't find a way to figure out this value at -// compile time, so it is computed during initialization. -var maxUint int64 = math.MaxInt64 - -func init() { - m := uint64(^uint(0)) - if m < uint64(maxUint) { - maxUint = int64(m) - } -} - -func (d *decoder) unmarshalInteger(value *unstable.Node, v reflect.Value) error { - kind := v.Kind() - if kind == reflect.Float32 || kind == reflect.Float64 { - return d.unmarshalFloat(value, v) - } - - i, err := parseInteger(value.Data) - if err != nil { - return err - } - - var r reflect.Value - - switch kind { - case reflect.Int64: - v.SetInt(i) - return nil - case reflect.Int32: - if i < math.MinInt32 || i > math.MaxInt32 { - return fmt.Errorf("toml: number %d does not fit in an int32", i) - } - - r = reflect.ValueOf(int32(i)) - case reflect.Int16: - if i < math.MinInt16 || i > math.MaxInt16 { - return fmt.Errorf("toml: number %d does not fit in an int16", i) - } - - r = reflect.ValueOf(int16(i)) - case reflect.Int8: - if i < math.MinInt8 || i > math.MaxInt8 { - return fmt.Errorf("toml: number %d does not fit in an int8", i) - } - - r = reflect.ValueOf(int8(i)) - case reflect.Int: - if i < minInt || i > maxInt { - return fmt.Errorf("toml: number %d does not fit in an int", i) - } - - r = reflect.ValueOf(int(i)) - case reflect.Uint64: - if i < 0 { - return fmt.Errorf("toml: negative number %d does not fit in an uint64", i) - } - - r = reflect.ValueOf(uint64(i)) - case reflect.Uint32: - if i < 0 || i > math.MaxUint32 { - return fmt.Errorf("toml: negative number %d does not fit in an uint32", i) - } - - r = reflect.ValueOf(uint32(i)) - case reflect.Uint16: - if i < 0 || i > math.MaxUint16 { - return fmt.Errorf("toml: negative number %d does not fit in an uint16", i) - } - - r = reflect.ValueOf(uint16(i)) - case reflect.Uint8: - if i < 0 || i > math.MaxUint8 { - return fmt.Errorf("toml: negative number %d does not fit in an uint8", i) - } - - r = reflect.ValueOf(uint8(i)) - case reflect.Uint: - if i < 0 || i > maxUint { - return fmt.Errorf("toml: negative number %d does not fit in an uint", i) - } - - r = reflect.ValueOf(uint(i)) - case reflect.Interface: - r = reflect.ValueOf(i) - default: - return d.typeMismatchError("integer", v.Type()) - } - - if !r.Type().AssignableTo(v.Type()) { - r = r.Convert(v.Type()) - } - - v.Set(r) - - return nil -} - -func (d *decoder) unmarshalString(value *unstable.Node, v reflect.Value) error { - switch v.Kind() { - case reflect.String: - v.SetString(string(value.Data)) - case reflect.Interface: - v.Set(reflect.ValueOf(string(value.Data))) - default: - return unstable.NewParserError(d.p.Raw(value.Raw), "cannot store TOML string into a Go %s", v.Kind()) - } - - return nil -} - -func (d *decoder) handleKeyValue(expr *unstable.Node, v reflect.Value) (reflect.Value, error) { - d.strict.EnterKeyValue(expr) - - v, err := d.handleKeyValueInner(expr.Key(), expr.Value(), v) - if d.skipUntilTable { - d.strict.MissingField(expr) - d.skipUntilTable = false - } - - d.strict.ExitKeyValue(expr) - - return v, err -} - -func (d *decoder) handleKeyValueInner(key unstable.Iterator, value *unstable.Node, v reflect.Value) (reflect.Value, error) { - if key.Next() { - // Still scoping the key - return d.handleKeyValuePart(key, value, v) - } - // Done scoping the key. - // v is whatever Go value we need to fill. - return reflect.Value{}, d.handleValue(value, v) -} - -func (d *decoder) keyFromData(keyType reflect.Type, data []byte) (reflect.Value, error) { - switch { - case stringType.AssignableTo(keyType): - return reflect.ValueOf(string(data)), nil - - case stringType.ConvertibleTo(keyType): - return reflect.ValueOf(string(data)).Convert(keyType), nil - - case keyType.Implements(textUnmarshalerType): - mk := reflect.New(keyType.Elem()) - if err := mk.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return reflect.Value{}, fmt.Errorf("toml: error unmarshalling key type %s from text: %w", stringType, err) - } - return mk, nil - - case reflect.PtrTo(keyType).Implements(textUnmarshalerType): - mk := reflect.New(keyType) - if err := mk.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return reflect.Value{}, fmt.Errorf("toml: error unmarshalling key type %s from text: %w", stringType, err) - } - return mk.Elem(), nil - } - return reflect.Value{}, fmt.Errorf("toml: cannot convert map key of type %s to expected type %s", stringType, keyType) -} - -func (d *decoder) handleKeyValuePart(key unstable.Iterator, value *unstable.Node, v reflect.Value) (reflect.Value, error) { - // contains the replacement for v - var rv reflect.Value - - // First, dispatch over v to make sure it is a valid object. - // There is no guarantee over what it could be. - switch v.Kind() { - case reflect.Map: - vt := v.Type() - - mk, err := d.keyFromData(vt.Key(), key.Node().Data) - if err != nil { - return reflect.Value{}, err - } - - // If the map does not exist, create it. - if v.IsNil() { - v = reflect.MakeMap(vt) - rv = v - } - - mv := v.MapIndex(mk) - set := false - if !mv.IsValid() || key.IsLast() { - set = true - mv = reflect.New(v.Type().Elem()).Elem() - } - - nv, err := d.handleKeyValueInner(key, value, mv) - if err != nil { - return reflect.Value{}, err - } - if nv.IsValid() { - mv = nv - set = true - } - - if set { - v.SetMapIndex(mk, mv) - } - case reflect.Struct: - path, found := structFieldPath(v, string(key.Node().Data)) - if !found { - d.skipUntilTable = true - break - } - - if d.errorContext == nil { - d.errorContext = new(errorContext) - } - t := v.Type() - d.errorContext.Struct = t - d.errorContext.Field = path - - f := fieldByIndex(v, path) - - if !f.CanSet() { - // If the field is not settable, need to take a slower path and make a copy of - // the struct itself to a new location. - nvp := reflect.New(v.Type()) - nvp.Elem().Set(v) - v = nvp.Elem() - _, err := d.handleKeyValuePart(key, value, v) - if err != nil { - return reflect.Value{}, err - } - return nvp.Elem(), nil - } - x, err := d.handleKeyValueInner(key, value, f) - if err != nil { - return reflect.Value{}, err - } - - if x.IsValid() { - f.Set(x) - } - d.errorContext.Struct = nil - d.errorContext.Field = nil - case reflect.Interface: - v = v.Elem() - - // Following encoding/json: decoding an object into an - // interface{}, it needs to always hold a - // map[string]interface{}. This is for the types to be - // consistent whether a previous value was set or not. - if !v.IsValid() || v.Type() != mapStringInterfaceType { - v = makeMapStringInterface() - } - - x, err := d.handleKeyValuePart(key, value, v) - if err != nil { - return reflect.Value{}, err - } - if x.IsValid() { - v = x - } - rv = v - case reflect.Ptr: - elem := v.Elem() - if !elem.IsValid() { - ptr := reflect.New(v.Type().Elem()) - v.Set(ptr) - rv = v - elem = ptr.Elem() - } - - elem2, err := d.handleKeyValuePart(key, value, elem) - if err != nil { - return reflect.Value{}, err - } - if elem2.IsValid() { - elem = elem2 - } - v.Elem().Set(elem) - default: - return reflect.Value{}, fmt.Errorf("unhandled kv part: %s", v.Kind()) - } - - return rv, nil -} - -func initAndDereferencePointer(v reflect.Value) reflect.Value { - var elem reflect.Value - if v.IsNil() { - ptr := reflect.New(v.Type().Elem()) - v.Set(ptr) - } - elem = v.Elem() - return elem -} - -// Same as reflect.Value.FieldByIndex, but creates pointers if needed. -func fieldByIndex(v reflect.Value, path []int) reflect.Value { - for i, x := range path { - v = v.Field(x) - - if i < len(path)-1 && v.Kind() == reflect.Ptr { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - } - return v -} - -type fieldPathsMap = map[string][]int - -var globalFieldPathsCache atomic.Value // map[danger.TypeID]fieldPathsMap - -func structFieldPath(v reflect.Value, name string) ([]int, bool) { - t := v.Type() - - cache, _ := globalFieldPathsCache.Load().(map[danger.TypeID]fieldPathsMap) - fieldPaths, ok := cache[danger.MakeTypeID(t)] - - if !ok { - fieldPaths = map[string][]int{} - - forEachField(t, nil, func(name string, path []int) { - fieldPaths[name] = path - // extra copy for the case-insensitive match - fieldPaths[strings.ToLower(name)] = path - }) - - newCache := make(map[danger.TypeID]fieldPathsMap, len(cache)+1) - newCache[danger.MakeTypeID(t)] = fieldPaths - for k, v := range cache { - newCache[k] = v - } - globalFieldPathsCache.Store(newCache) - } - - path, ok := fieldPaths[name] - if !ok { - path, ok = fieldPaths[strings.ToLower(name)] - } - return path, ok -} - -func forEachField(t reflect.Type, path []int, do func(name string, path []int)) { - n := t.NumField() - for i := 0; i < n; i++ { - f := t.Field(i) - - if !f.Anonymous && f.PkgPath != "" { - // only consider exported fields. - continue - } - - fieldPath := append(path, i) - fieldPath = fieldPath[:len(fieldPath):len(fieldPath)] - - name := f.Tag.Get("toml") - if name == "-" { - continue - } - - if i := strings.IndexByte(name, ','); i >= 0 { - name = name[:i] - } - - if f.Anonymous && name == "" { - t2 := f.Type - if t2.Kind() == reflect.Ptr { - t2 = t2.Elem() - } - - if t2.Kind() == reflect.Struct { - forEachField(t2, fieldPath, do) - } - continue - } - - if name == "" { - name = f.Name - } - - do(name, fieldPath) - } -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/ast.go b/backend/vendor/github.com/pelletier/go-toml/v2/unstable/ast.go deleted file mode 100644 index f526bf2c..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/ast.go +++ /dev/null @@ -1,136 +0,0 @@ -package unstable - -import ( - "fmt" - "unsafe" - - "github.com/pelletier/go-toml/v2/internal/danger" -) - -// Iterator over a sequence of nodes. -// -// Starts uninitialized, you need to call Next() first. -// -// For example: -// -// it := n.Children() -// for it.Next() { -// n := it.Node() -// // do something with n -// } -type Iterator struct { - started bool - node *Node -} - -// Next moves the iterator forward and returns true if points to a -// node, false otherwise. -func (c *Iterator) Next() bool { - if !c.started { - c.started = true - } else if c.node.Valid() { - c.node = c.node.Next() - } - return c.node.Valid() -} - -// IsLast returns true if the current node of the iterator is the last -// one. Subsequent calls to Next() will return false. -func (c *Iterator) IsLast() bool { - return c.node.next == 0 -} - -// Node returns a pointer to the node pointed at by the iterator. -func (c *Iterator) Node() *Node { - return c.node -} - -// Node in a TOML expression AST. -// -// Depending on Kind, its sequence of children should be interpreted -// differently. -// -// - Array have one child per element in the array. -// - InlineTable have one child per key-value in the table (each of kind -// InlineTable). -// - KeyValue have at least two children. The first one is the value. The rest -// make a potentially dotted key. -// - Table and ArrayTable's children represent a dotted key (same as -// KeyValue, but without the first node being the value). -// -// When relevant, Raw describes the range of bytes this node is referring to in -// the input document. Use Parser.Raw() to retrieve the actual bytes. -type Node struct { - Kind Kind - Raw Range // Raw bytes from the input. - Data []byte // Node value (either allocated or referencing the input). - - // References to other nodes, as offsets in the backing array - // from this node. References can go backward, so those can be - // negative. - next int // 0 if last element - child int // 0 if no child -} - -// Range of bytes in the document. -type Range struct { - Offset uint32 - Length uint32 -} - -// Next returns a pointer to the next node, or nil if there is no next node. -func (n *Node) Next() *Node { - if n.next == 0 { - return nil - } - ptr := unsafe.Pointer(n) - size := unsafe.Sizeof(Node{}) - return (*Node)(danger.Stride(ptr, size, n.next)) -} - -// Child returns a pointer to the first child node of this node. Other children -// can be accessed calling Next on the first child. Returns an nil if this Node -// has no child. -func (n *Node) Child() *Node { - if n.child == 0 { - return nil - } - ptr := unsafe.Pointer(n) - size := unsafe.Sizeof(Node{}) - return (*Node)(danger.Stride(ptr, size, n.child)) -} - -// Valid returns true if the node's kind is set (not to Invalid). -func (n *Node) Valid() bool { - return n != nil -} - -// Key returns the children nodes making the Key on a supported node. Panics -// otherwise. They are guaranteed to be all be of the Kind Key. A simple key -// would return just one element. -func (n *Node) Key() Iterator { - switch n.Kind { - case KeyValue: - value := n.Child() - if !value.Valid() { - panic(fmt.Errorf("KeyValue should have at least two children")) - } - return Iterator{node: value.Next()} - case Table, ArrayTable: - return Iterator{node: n.Child()} - default: - panic(fmt.Errorf("Key() is not supported on a %s", n.Kind)) - } -} - -// Value returns a pointer to the value node of a KeyValue. -// Guaranteed to be non-nil. Panics if not called on a KeyValue node, -// or if the Children are malformed. -func (n *Node) Value() *Node { - return n.Child() -} - -// Children returns an iterator over a node's children. -func (n *Node) Children() Iterator { - return Iterator{node: n.Child()} -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/builder.go b/backend/vendor/github.com/pelletier/go-toml/v2/unstable/builder.go deleted file mode 100644 index 9538e30d..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/builder.go +++ /dev/null @@ -1,71 +0,0 @@ -package unstable - -// root contains a full AST. -// -// It is immutable once constructed with Builder. -type root struct { - nodes []Node -} - -// Iterator over the top level nodes. -func (r *root) Iterator() Iterator { - it := Iterator{} - if len(r.nodes) > 0 { - it.node = &r.nodes[0] - } - return it -} - -func (r *root) at(idx reference) *Node { - return &r.nodes[idx] -} - -type reference int - -const invalidReference reference = -1 - -func (r reference) Valid() bool { - return r != invalidReference -} - -type builder struct { - tree root - lastIdx int -} - -func (b *builder) Tree() *root { - return &b.tree -} - -func (b *builder) NodeAt(ref reference) *Node { - return b.tree.at(ref) -} - -func (b *builder) Reset() { - b.tree.nodes = b.tree.nodes[:0] - b.lastIdx = 0 -} - -func (b *builder) Push(n Node) reference { - b.lastIdx = len(b.tree.nodes) - b.tree.nodes = append(b.tree.nodes, n) - return reference(b.lastIdx) -} - -func (b *builder) PushAndChain(n Node) reference { - newIdx := len(b.tree.nodes) - b.tree.nodes = append(b.tree.nodes, n) - if b.lastIdx >= 0 { - b.tree.nodes[b.lastIdx].next = newIdx - b.lastIdx - } - b.lastIdx = newIdx - return reference(b.lastIdx) -} - -func (b *builder) AttachChild(parent reference, child reference) { - b.tree.nodes[parent].child = int(child) - int(parent) -} - -func (b *builder) Chain(from reference, to reference) { - b.tree.nodes[from].next = int(to) - int(from) -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/doc.go b/backend/vendor/github.com/pelletier/go-toml/v2/unstable/doc.go deleted file mode 100644 index 7ff26c53..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -// Package unstable provides APIs that do not meet the backward compatibility -// guarantees yet. -package unstable diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/kind.go b/backend/vendor/github.com/pelletier/go-toml/v2/unstable/kind.go deleted file mode 100644 index ff9df1be..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/kind.go +++ /dev/null @@ -1,71 +0,0 @@ -package unstable - -import "fmt" - -// Kind represents the type of TOML structure contained in a given Node. -type Kind int - -const ( - // Meta - Invalid Kind = iota - Comment - Key - - // Top level structures - Table - ArrayTable - KeyValue - - // Containers values - Array - InlineTable - - // Values - String - Bool - Float - Integer - LocalDate - LocalTime - LocalDateTime - DateTime -) - -// String implementation of fmt.Stringer. -func (k Kind) String() string { - switch k { - case Invalid: - return "Invalid" - case Comment: - return "Comment" - case Key: - return "Key" - case Table: - return "Table" - case ArrayTable: - return "ArrayTable" - case KeyValue: - return "KeyValue" - case Array: - return "Array" - case InlineTable: - return "InlineTable" - case String: - return "String" - case Bool: - return "Bool" - case Float: - return "Float" - case Integer: - return "Integer" - case LocalDate: - return "LocalDate" - case LocalTime: - return "LocalTime" - case LocalDateTime: - return "LocalDateTime" - case DateTime: - return "DateTime" - } - panic(fmt.Errorf("Kind.String() not implemented for '%d'", k)) -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go b/backend/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go deleted file mode 100644 index a8eb0529..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go +++ /dev/null @@ -1,1239 +0,0 @@ -package unstable - -import ( - "bytes" - "fmt" - "unicode" - - "github.com/pelletier/go-toml/v2/internal/characters" - "github.com/pelletier/go-toml/v2/internal/danger" -) - -// ParserError describes an error relative to the content of the document. -// -// It cannot outlive the instance of Parser it refers to, and may cause panics -// if the parser is reset. -type ParserError struct { - Highlight []byte - Message string - Key []string // optional -} - -// Error is the implementation of the error interface. -func (e *ParserError) Error() string { - return e.Message -} - -// NewParserError is a convenience function to create a ParserError -// -// Warning: Highlight needs to be a subslice of Parser.data, so only slices -// returned by Parser.Raw are valid candidates. -func NewParserError(highlight []byte, format string, args ...interface{}) error { - return &ParserError{ - Highlight: highlight, - Message: fmt.Errorf(format, args...).Error(), - } -} - -// Parser scans over a TOML-encoded document and generates an iterative AST. -// -// To prime the Parser, first reset it with the contents of a TOML document. -// Then, process all top-level expressions sequentially. See Example. -// -// Don't forget to check Error() after you're done parsing. -// -// Each top-level expression needs to be fully processed before calling -// NextExpression() again. Otherwise, calls to various Node methods may panic if -// the parser has moved on the next expression. -// -// For performance reasons, go-toml doesn't make a copy of the input bytes to -// the parser. Make sure to copy all the bytes you need to outlive the slice -// given to the parser. -type Parser struct { - data []byte - builder builder - ref reference - left []byte - err error - first bool - - KeepComments bool -} - -// Data returns the slice provided to the last call to Reset. -func (p *Parser) Data() []byte { - return p.data -} - -// Range returns a range description that corresponds to a given slice of the -// input. If the argument is not a subslice of the parser input, this function -// panics. -func (p *Parser) Range(b []byte) Range { - return Range{ - Offset: uint32(danger.SubsliceOffset(p.data, b)), - Length: uint32(len(b)), - } -} - -// Raw returns the slice corresponding to the bytes in the given range. -func (p *Parser) Raw(raw Range) []byte { - return p.data[raw.Offset : raw.Offset+raw.Length] -} - -// Reset brings the parser to its initial state for a given input. It wipes an -// reuses internal storage to reduce allocation. -func (p *Parser) Reset(b []byte) { - p.builder.Reset() - p.ref = invalidReference - p.data = b - p.left = b - p.err = nil - p.first = true -} - -// NextExpression parses the next top-level expression. If an expression was -// successfully parsed, it returns true. If the parser is at the end of the -// document or an error occurred, it returns false. -// -// Retrieve the parsed expression with Expression(). -func (p *Parser) NextExpression() bool { - if len(p.left) == 0 || p.err != nil { - return false - } - - p.builder.Reset() - p.ref = invalidReference - - for { - if len(p.left) == 0 || p.err != nil { - return false - } - - if !p.first { - p.left, p.err = p.parseNewline(p.left) - } - - if len(p.left) == 0 || p.err != nil { - return false - } - - p.ref, p.left, p.err = p.parseExpression(p.left) - - if p.err != nil { - return false - } - - p.first = false - - if p.ref.Valid() { - return true - } - } -} - -// Expression returns a pointer to the node representing the last successfully -// parsed expression. -func (p *Parser) Expression() *Node { - return p.builder.NodeAt(p.ref) -} - -// Error returns any error that has occurred during parsing. -func (p *Parser) Error() error { - return p.err -} - -// Position describes a position in the input. -type Position struct { - // Number of bytes from the beginning of the input. - Offset int - // Line number, starting at 1. - Line int - // Column number, starting at 1. - Column int -} - -// Shape describes the position of a range in the input. -type Shape struct { - Start Position - End Position -} - -func (p *Parser) position(b []byte) Position { - offset := danger.SubsliceOffset(p.data, b) - - lead := p.data[:offset] - - return Position{ - Offset: offset, - Line: bytes.Count(lead, []byte{'\n'}) + 1, - Column: len(lead) - bytes.LastIndex(lead, []byte{'\n'}), - } -} - -// Shape returns the shape of the given range in the input. Will -// panic if the range is not a subslice of the input. -func (p *Parser) Shape(r Range) Shape { - raw := p.Raw(r) - return Shape{ - Start: p.position(raw), - End: p.position(raw[r.Length:]), - } -} - -func (p *Parser) parseNewline(b []byte) ([]byte, error) { - if b[0] == '\n' { - return b[1:], nil - } - - if b[0] == '\r' { - _, rest, err := scanWindowsNewline(b) - return rest, err - } - - return nil, NewParserError(b[0:1], "expected newline but got %#U", b[0]) -} - -func (p *Parser) parseComment(b []byte) (reference, []byte, error) { - ref := invalidReference - data, rest, err := scanComment(b) - if p.KeepComments && err == nil { - ref = p.builder.Push(Node{ - Kind: Comment, - Raw: p.Range(data), - Data: data, - }) - } - return ref, rest, err -} - -func (p *Parser) parseExpression(b []byte) (reference, []byte, error) { - // expression = ws [ comment ] - // expression =/ ws keyval ws [ comment ] - // expression =/ ws table ws [ comment ] - ref := invalidReference - - b = p.parseWhitespace(b) - - if len(b) == 0 { - return ref, b, nil - } - - if b[0] == '#' { - ref, rest, err := p.parseComment(b) - return ref, rest, err - } - - if b[0] == '\n' || b[0] == '\r' { - return ref, b, nil - } - - var err error - if b[0] == '[' { - ref, b, err = p.parseTable(b) - } else { - ref, b, err = p.parseKeyval(b) - } - - if err != nil { - return ref, nil, err - } - - b = p.parseWhitespace(b) - - if len(b) > 0 && b[0] == '#' { - cref, rest, err := p.parseComment(b) - if cref != invalidReference { - p.builder.Chain(ref, cref) - } - return ref, rest, err - } - - return ref, b, nil -} - -func (p *Parser) parseTable(b []byte) (reference, []byte, error) { - // table = std-table / array-table - if len(b) > 1 && b[1] == '[' { - return p.parseArrayTable(b) - } - - return p.parseStdTable(b) -} - -func (p *Parser) parseArrayTable(b []byte) (reference, []byte, error) { - // array-table = array-table-open key array-table-close - // array-table-open = %x5B.5B ws ; [[ Double left square bracket - // array-table-close = ws %x5D.5D ; ]] Double right square bracket - ref := p.builder.Push(Node{ - Kind: ArrayTable, - }) - - b = b[2:] - b = p.parseWhitespace(b) - - k, b, err := p.parseKey(b) - if err != nil { - return ref, nil, err - } - - p.builder.AttachChild(ref, k) - b = p.parseWhitespace(b) - - b, err = expect(']', b) - if err != nil { - return ref, nil, err - } - - b, err = expect(']', b) - - return ref, b, err -} - -func (p *Parser) parseStdTable(b []byte) (reference, []byte, error) { - // std-table = std-table-open key std-table-close - // std-table-open = %x5B ws ; [ Left square bracket - // std-table-close = ws %x5D ; ] Right square bracket - ref := p.builder.Push(Node{ - Kind: Table, - }) - - b = b[1:] - b = p.parseWhitespace(b) - - key, b, err := p.parseKey(b) - if err != nil { - return ref, nil, err - } - - p.builder.AttachChild(ref, key) - - b = p.parseWhitespace(b) - - b, err = expect(']', b) - - return ref, b, err -} - -func (p *Parser) parseKeyval(b []byte) (reference, []byte, error) { - // keyval = key keyval-sep val - ref := p.builder.Push(Node{ - Kind: KeyValue, - }) - - key, b, err := p.parseKey(b) - if err != nil { - return invalidReference, nil, err - } - - // keyval-sep = ws %x3D ws ; = - - b = p.parseWhitespace(b) - - if len(b) == 0 { - return invalidReference, nil, NewParserError(b, "expected = after a key, but the document ends there") - } - - b, err = expect('=', b) - if err != nil { - return invalidReference, nil, err - } - - b = p.parseWhitespace(b) - - valRef, b, err := p.parseVal(b) - if err != nil { - return ref, b, err - } - - p.builder.Chain(valRef, key) - p.builder.AttachChild(ref, valRef) - - return ref, b, err -} - -//nolint:cyclop,funlen -func (p *Parser) parseVal(b []byte) (reference, []byte, error) { - // val = string / boolean / array / inline-table / date-time / float / integer - ref := invalidReference - - if len(b) == 0 { - return ref, nil, NewParserError(b, "expected value, not eof") - } - - var err error - c := b[0] - - switch c { - case '"': - var raw []byte - var v []byte - if scanFollowsMultilineBasicStringDelimiter(b) { - raw, v, b, err = p.parseMultilineBasicString(b) - } else { - raw, v, b, err = p.parseBasicString(b) - } - - if err == nil { - ref = p.builder.Push(Node{ - Kind: String, - Raw: p.Range(raw), - Data: v, - }) - } - - return ref, b, err - case '\'': - var raw []byte - var v []byte - if scanFollowsMultilineLiteralStringDelimiter(b) { - raw, v, b, err = p.parseMultilineLiteralString(b) - } else { - raw, v, b, err = p.parseLiteralString(b) - } - - if err == nil { - ref = p.builder.Push(Node{ - Kind: String, - Raw: p.Range(raw), - Data: v, - }) - } - - return ref, b, err - case 't': - if !scanFollowsTrue(b) { - return ref, nil, NewParserError(atmost(b, 4), "expected 'true'") - } - - ref = p.builder.Push(Node{ - Kind: Bool, - Data: b[:4], - }) - - return ref, b[4:], nil - case 'f': - if !scanFollowsFalse(b) { - return ref, nil, NewParserError(atmost(b, 5), "expected 'false'") - } - - ref = p.builder.Push(Node{ - Kind: Bool, - Data: b[:5], - }) - - return ref, b[5:], nil - case '[': - return p.parseValArray(b) - case '{': - return p.parseInlineTable(b) - default: - return p.parseIntOrFloatOrDateTime(b) - } -} - -func atmost(b []byte, n int) []byte { - if n >= len(b) { - return b - } - - return b[:n] -} - -func (p *Parser) parseLiteralString(b []byte) ([]byte, []byte, []byte, error) { - v, rest, err := scanLiteralString(b) - if err != nil { - return nil, nil, nil, err - } - - return v, v[1 : len(v)-1], rest, nil -} - -func (p *Parser) parseInlineTable(b []byte) (reference, []byte, error) { - // inline-table = inline-table-open [ inline-table-keyvals ] inline-table-close - // inline-table-open = %x7B ws ; { - // inline-table-close = ws %x7D ; } - // inline-table-sep = ws %x2C ws ; , Comma - // inline-table-keyvals = keyval [ inline-table-sep inline-table-keyvals ] - parent := p.builder.Push(Node{ - Kind: InlineTable, - Raw: p.Range(b[:1]), - }) - - first := true - - var child reference - - b = b[1:] - - var err error - - for len(b) > 0 { - previousB := b - b = p.parseWhitespace(b) - - if len(b) == 0 { - return parent, nil, NewParserError(previousB[:1], "inline table is incomplete") - } - - if b[0] == '}' { - break - } - - if !first { - b, err = expect(',', b) - if err != nil { - return parent, nil, err - } - b = p.parseWhitespace(b) - } - - var kv reference - - kv, b, err = p.parseKeyval(b) - if err != nil { - return parent, nil, err - } - - if first { - p.builder.AttachChild(parent, kv) - } else { - p.builder.Chain(child, kv) - } - child = kv - - first = false - } - - rest, err := expect('}', b) - - return parent, rest, err -} - -//nolint:funlen,cyclop -func (p *Parser) parseValArray(b []byte) (reference, []byte, error) { - // array = array-open [ array-values ] ws-comment-newline array-close - // array-open = %x5B ; [ - // array-close = %x5D ; ] - // array-values = ws-comment-newline val ws-comment-newline array-sep array-values - // array-values =/ ws-comment-newline val ws-comment-newline [ array-sep ] - // array-sep = %x2C ; , Comma - // ws-comment-newline = *( wschar / [ comment ] newline ) - arrayStart := b - b = b[1:] - - parent := p.builder.Push(Node{ - Kind: Array, - }) - - // First indicates whether the parser is looking for the first element - // (non-comment) of the array. - first := true - - lastChild := invalidReference - - addChild := func(valueRef reference) { - if lastChild == invalidReference { - p.builder.AttachChild(parent, valueRef) - } else { - p.builder.Chain(lastChild, valueRef) - } - lastChild = valueRef - } - - var err error - for len(b) > 0 { - cref := invalidReference - cref, b, err = p.parseOptionalWhitespaceCommentNewline(b) - if err != nil { - return parent, nil, err - } - - if cref != invalidReference { - addChild(cref) - } - - if len(b) == 0 { - return parent, nil, NewParserError(arrayStart[:1], "array is incomplete") - } - - if b[0] == ']' { - break - } - - if b[0] == ',' { - if first { - return parent, nil, NewParserError(b[0:1], "array cannot start with comma") - } - b = b[1:] - - cref, b, err = p.parseOptionalWhitespaceCommentNewline(b) - if err != nil { - return parent, nil, err - } - if cref != invalidReference { - addChild(cref) - } - } else if !first { - return parent, nil, NewParserError(b[0:1], "array elements must be separated by commas") - } - - // TOML allows trailing commas in arrays. - if len(b) > 0 && b[0] == ']' { - break - } - - var valueRef reference - valueRef, b, err = p.parseVal(b) - if err != nil { - return parent, nil, err - } - - addChild(valueRef) - - cref, b, err = p.parseOptionalWhitespaceCommentNewline(b) - if err != nil { - return parent, nil, err - } - if cref != invalidReference { - addChild(cref) - } - - first = false - } - - rest, err := expect(']', b) - - return parent, rest, err -} - -func (p *Parser) parseOptionalWhitespaceCommentNewline(b []byte) (reference, []byte, error) { - rootCommentRef := invalidReference - latestCommentRef := invalidReference - - addComment := func(ref reference) { - if rootCommentRef == invalidReference { - rootCommentRef = ref - } else if latestCommentRef == invalidReference { - p.builder.AttachChild(rootCommentRef, ref) - latestCommentRef = ref - } else { - p.builder.Chain(latestCommentRef, ref) - latestCommentRef = ref - } - } - - for len(b) > 0 { - var err error - b = p.parseWhitespace(b) - - if len(b) > 0 && b[0] == '#' { - var ref reference - ref, b, err = p.parseComment(b) - if err != nil { - return invalidReference, nil, err - } - if ref != invalidReference { - addComment(ref) - } - } - - if len(b) == 0 { - break - } - - if b[0] == '\n' || b[0] == '\r' { - b, err = p.parseNewline(b) - if err != nil { - return invalidReference, nil, err - } - } else { - break - } - } - - return rootCommentRef, b, nil -} - -func (p *Parser) parseMultilineLiteralString(b []byte) ([]byte, []byte, []byte, error) { - token, rest, err := scanMultilineLiteralString(b) - if err != nil { - return nil, nil, nil, err - } - - i := 3 - - // skip the immediate new line - if token[i] == '\n' { - i++ - } else if token[i] == '\r' && token[i+1] == '\n' { - i += 2 - } - - return token, token[i : len(token)-3], rest, err -} - -//nolint:funlen,gocognit,cyclop -func (p *Parser) parseMultilineBasicString(b []byte) ([]byte, []byte, []byte, error) { - // ml-basic-string = ml-basic-string-delim [ newline ] ml-basic-body - // ml-basic-string-delim - // ml-basic-string-delim = 3quotation-mark - // ml-basic-body = *mlb-content *( mlb-quotes 1*mlb-content ) [ mlb-quotes ] - // - // mlb-content = mlb-char / newline / mlb-escaped-nl - // mlb-char = mlb-unescaped / escaped - // mlb-quotes = 1*2quotation-mark - // mlb-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii - // mlb-escaped-nl = escape ws newline *( wschar / newline ) - token, escaped, rest, err := scanMultilineBasicString(b) - if err != nil { - return nil, nil, nil, err - } - - i := 3 - - // skip the immediate new line - if token[i] == '\n' { - i++ - } else if token[i] == '\r' && token[i+1] == '\n' { - i += 2 - } - - // fast path - startIdx := i - endIdx := len(token) - len(`"""`) - - if !escaped { - str := token[startIdx:endIdx] - verr := characters.Utf8TomlValidAlreadyEscaped(str) - if verr.Zero() { - return token, str, rest, nil - } - return nil, nil, nil, NewParserError(str[verr.Index:verr.Index+verr.Size], "invalid UTF-8") - } - - var builder bytes.Buffer - - // The scanner ensures that the token starts and ends with quotes and that - // escapes are balanced. - for i < len(token)-3 { - c := token[i] - - //nolint:nestif - if c == '\\' { - // When the last non-whitespace character on a line is an unescaped \, - // it will be trimmed along with all whitespace (including newlines) up - // to the next non-whitespace character or closing delimiter. - - isLastNonWhitespaceOnLine := false - j := 1 - findEOLLoop: - for ; j < len(token)-3-i; j++ { - switch token[i+j] { - case ' ', '\t': - continue - case '\r': - if token[i+j+1] == '\n' { - continue - } - case '\n': - isLastNonWhitespaceOnLine = true - } - break findEOLLoop - } - if isLastNonWhitespaceOnLine { - i += j - for ; i < len(token)-3; i++ { - c := token[i] - if !(c == '\n' || c == '\r' || c == ' ' || c == '\t') { - i-- - break - } - } - i++ - continue - } - - // handle escaping - i++ - c = token[i] - - switch c { - case '"', '\\': - builder.WriteByte(c) - case 'b': - builder.WriteByte('\b') - case 'f': - builder.WriteByte('\f') - case 'n': - builder.WriteByte('\n') - case 'r': - builder.WriteByte('\r') - case 't': - builder.WriteByte('\t') - case 'e': - builder.WriteByte(0x1B) - case 'u': - x, err := hexToRune(atmost(token[i+1:], 4), 4) - if err != nil { - return nil, nil, nil, err - } - builder.WriteRune(x) - i += 4 - case 'U': - x, err := hexToRune(atmost(token[i+1:], 8), 8) - if err != nil { - return nil, nil, nil, err - } - - builder.WriteRune(x) - i += 8 - default: - return nil, nil, nil, NewParserError(token[i:i+1], "invalid escaped character %#U", c) - } - i++ - } else { - size := characters.Utf8ValidNext(token[i:]) - if size == 0 { - return nil, nil, nil, NewParserError(token[i:i+1], "invalid character %#U", c) - } - builder.Write(token[i : i+size]) - i += size - } - } - - return token, builder.Bytes(), rest, nil -} - -func (p *Parser) parseKey(b []byte) (reference, []byte, error) { - // key = simple-key / dotted-key - // simple-key = quoted-key / unquoted-key - // - // unquoted-key = 1*( ALPHA / DIGIT / %x2D / %x5F ) ; A-Z / a-z / 0-9 / - / _ - // quoted-key = basic-string / literal-string - // dotted-key = simple-key 1*( dot-sep simple-key ) - // - // dot-sep = ws %x2E ws ; . Period - raw, key, b, err := p.parseSimpleKey(b) - if err != nil { - return invalidReference, nil, err - } - - ref := p.builder.Push(Node{ - Kind: Key, - Raw: p.Range(raw), - Data: key, - }) - - for { - b = p.parseWhitespace(b) - if len(b) > 0 && b[0] == '.' { - b = p.parseWhitespace(b[1:]) - - raw, key, b, err = p.parseSimpleKey(b) - if err != nil { - return ref, nil, err - } - - p.builder.PushAndChain(Node{ - Kind: Key, - Raw: p.Range(raw), - Data: key, - }) - } else { - break - } - } - - return ref, b, nil -} - -func (p *Parser) parseSimpleKey(b []byte) (raw, key, rest []byte, err error) { - if len(b) == 0 { - return nil, nil, nil, NewParserError(b, "expected key but found none") - } - - // simple-key = quoted-key / unquoted-key - // unquoted-key = 1*( ALPHA / DIGIT / %x2D / %x5F ) ; A-Z / a-z / 0-9 / - / _ - // quoted-key = basic-string / literal-string - switch { - case b[0] == '\'': - return p.parseLiteralString(b) - case b[0] == '"': - return p.parseBasicString(b) - case isUnquotedKeyChar(b[0]): - key, rest = scanUnquotedKey(b) - return key, key, rest, nil - default: - return nil, nil, nil, NewParserError(b[0:1], "invalid character at start of key: %c", b[0]) - } -} - -//nolint:funlen,cyclop -func (p *Parser) parseBasicString(b []byte) ([]byte, []byte, []byte, error) { - // basic-string = quotation-mark *basic-char quotation-mark - // quotation-mark = %x22 ; " - // basic-char = basic-unescaped / escaped - // basic-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii - // escaped = escape escape-seq-char - // escape-seq-char = %x22 ; " quotation mark U+0022 - // escape-seq-char =/ %x5C ; \ reverse solidus U+005C - // escape-seq-char =/ %x62 ; b backspace U+0008 - // escape-seq-char =/ %x66 ; f form feed U+000C - // escape-seq-char =/ %x6E ; n line feed U+000A - // escape-seq-char =/ %x72 ; r carriage return U+000D - // escape-seq-char =/ %x74 ; t tab U+0009 - // escape-seq-char =/ %x75 4HEXDIG ; uXXXX U+XXXX - // escape-seq-char =/ %x55 8HEXDIG ; UXXXXXXXX U+XXXXXXXX - token, escaped, rest, err := scanBasicString(b) - if err != nil { - return nil, nil, nil, err - } - - startIdx := len(`"`) - endIdx := len(token) - len(`"`) - - // Fast path. If there is no escape sequence, the string should just be - // an UTF-8 encoded string, which is the same as Go. In that case, - // validate the string and return a direct reference to the buffer. - if !escaped { - str := token[startIdx:endIdx] - verr := characters.Utf8TomlValidAlreadyEscaped(str) - if verr.Zero() { - return token, str, rest, nil - } - return nil, nil, nil, NewParserError(str[verr.Index:verr.Index+verr.Size], "invalid UTF-8") - } - - i := startIdx - - var builder bytes.Buffer - - // The scanner ensures that the token starts and ends with quotes and that - // escapes are balanced. - for i < len(token)-1 { - c := token[i] - if c == '\\' { - i++ - c = token[i] - - switch c { - case '"', '\\': - builder.WriteByte(c) - case 'b': - builder.WriteByte('\b') - case 'f': - builder.WriteByte('\f') - case 'n': - builder.WriteByte('\n') - case 'r': - builder.WriteByte('\r') - case 't': - builder.WriteByte('\t') - case 'e': - builder.WriteByte(0x1B) - case 'u': - x, err := hexToRune(token[i+1:len(token)-1], 4) - if err != nil { - return nil, nil, nil, err - } - - builder.WriteRune(x) - i += 4 - case 'U': - x, err := hexToRune(token[i+1:len(token)-1], 8) - if err != nil { - return nil, nil, nil, err - } - - builder.WriteRune(x) - i += 8 - default: - return nil, nil, nil, NewParserError(token[i:i+1], "invalid escaped character %#U", c) - } - i++ - } else { - size := characters.Utf8ValidNext(token[i:]) - if size == 0 { - return nil, nil, nil, NewParserError(token[i:i+1], "invalid character %#U", c) - } - builder.Write(token[i : i+size]) - i += size - } - } - - return token, builder.Bytes(), rest, nil -} - -func hexToRune(b []byte, length int) (rune, error) { - if len(b) < length { - return -1, NewParserError(b, "unicode point needs %d character, not %d", length, len(b)) - } - b = b[:length] - - var r uint32 - for i, c := range b { - d := uint32(0) - switch { - case '0' <= c && c <= '9': - d = uint32(c - '0') - case 'a' <= c && c <= 'f': - d = uint32(c - 'a' + 10) - case 'A' <= c && c <= 'F': - d = uint32(c - 'A' + 10) - default: - return -1, NewParserError(b[i:i+1], "non-hex character") - } - r = r*16 + d - } - - if r > unicode.MaxRune || 0xD800 <= r && r < 0xE000 { - return -1, NewParserError(b, "escape sequence is invalid Unicode code point") - } - - return rune(r), nil -} - -func (p *Parser) parseWhitespace(b []byte) []byte { - // ws = *wschar - // wschar = %x20 ; Space - // wschar =/ %x09 ; Horizontal tab - _, rest := scanWhitespace(b) - - return rest -} - -//nolint:cyclop -func (p *Parser) parseIntOrFloatOrDateTime(b []byte) (reference, []byte, error) { - switch b[0] { - case 'i': - if !scanFollowsInf(b) { - return invalidReference, nil, NewParserError(atmost(b, 3), "expected 'inf'") - } - - return p.builder.Push(Node{ - Kind: Float, - Data: b[:3], - }), b[3:], nil - case 'n': - if !scanFollowsNan(b) { - return invalidReference, nil, NewParserError(atmost(b, 3), "expected 'nan'") - } - - return p.builder.Push(Node{ - Kind: Float, - Data: b[:3], - }), b[3:], nil - case '+', '-': - return p.scanIntOrFloat(b) - } - - if len(b) < 3 { - return p.scanIntOrFloat(b) - } - - s := 5 - if len(b) < s { - s = len(b) - } - - for idx, c := range b[:s] { - if isDigit(c) { - continue - } - - if idx == 2 && c == ':' || (idx == 4 && c == '-') { - return p.scanDateTime(b) - } - - break - } - - return p.scanIntOrFloat(b) -} - -func (p *Parser) scanDateTime(b []byte) (reference, []byte, error) { - // scans for contiguous characters in [0-9T:Z.+-], and up to one space if - // followed by a digit. - hasDate := false - hasTime := false - hasTz := false - seenSpace := false - - i := 0 -byteLoop: - for ; i < len(b); i++ { - c := b[i] - - switch { - case isDigit(c): - case c == '-': - hasDate = true - const minOffsetOfTz = 8 - if i >= minOffsetOfTz { - hasTz = true - } - case c == 'T' || c == 't' || c == ':' || c == '.': - hasTime = true - case c == '+' || c == '-' || c == 'Z' || c == 'z': - hasTz = true - case c == ' ': - if !seenSpace && i+1 < len(b) && isDigit(b[i+1]) { - i += 2 - // Avoid reaching past the end of the document in case the time - // is malformed. See TestIssue585. - if i >= len(b) { - i-- - } - seenSpace = true - hasTime = true - } else { - break byteLoop - } - default: - break byteLoop - } - } - - var kind Kind - - if hasTime { - if hasDate { - if hasTz { - kind = DateTime - } else { - kind = LocalDateTime - } - } else { - kind = LocalTime - } - } else { - kind = LocalDate - } - - return p.builder.Push(Node{ - Kind: kind, - Data: b[:i], - }), b[i:], nil -} - -//nolint:funlen,gocognit,cyclop -func (p *Parser) scanIntOrFloat(b []byte) (reference, []byte, error) { - i := 0 - - if len(b) > 2 && b[0] == '0' && b[1] != '.' && b[1] != 'e' && b[1] != 'E' { - var isValidRune validRuneFn - - switch b[1] { - case 'x': - isValidRune = isValidHexRune - case 'o': - isValidRune = isValidOctalRune - case 'b': - isValidRune = isValidBinaryRune - default: - i++ - } - - if isValidRune != nil { - i += 2 - for ; i < len(b); i++ { - if !isValidRune(b[i]) { - break - } - } - } - - return p.builder.Push(Node{ - Kind: Integer, - Data: b[:i], - }), b[i:], nil - } - - isFloat := false - - for ; i < len(b); i++ { - c := b[i] - - if c >= '0' && c <= '9' || c == '+' || c == '-' || c == '_' { - continue - } - - if c == '.' || c == 'e' || c == 'E' { - isFloat = true - - continue - } - - if c == 'i' { - if scanFollowsInf(b[i:]) { - return p.builder.Push(Node{ - Kind: Float, - Data: b[:i+3], - }), b[i+3:], nil - } - - return invalidReference, nil, NewParserError(b[i:i+1], "unexpected character 'i' while scanning for a number") - } - - if c == 'n' { - if scanFollowsNan(b[i:]) { - return p.builder.Push(Node{ - Kind: Float, - Data: b[:i+3], - }), b[i+3:], nil - } - - return invalidReference, nil, NewParserError(b[i:i+1], "unexpected character 'n' while scanning for a number") - } - - break - } - - if i == 0 { - return invalidReference, b, NewParserError(b, "incomplete number") - } - - kind := Integer - - if isFloat { - kind = Float - } - - return p.builder.Push(Node{ - Kind: kind, - Data: b[:i], - }), b[i:], nil -} - -func isDigit(r byte) bool { - return r >= '0' && r <= '9' -} - -type validRuneFn func(r byte) bool - -func isValidHexRune(r byte) bool { - return r >= 'a' && r <= 'f' || - r >= 'A' && r <= 'F' || - r >= '0' && r <= '9' || - r == '_' -} - -func isValidOctalRune(r byte) bool { - return r >= '0' && r <= '7' || r == '_' -} - -func isValidBinaryRune(r byte) bool { - return r == '0' || r == '1' || r == '_' -} - -func expect(x byte, b []byte) ([]byte, error) { - if len(b) == 0 { - return nil, NewParserError(b, "expected character %c but the document ended here", x) - } - - if b[0] != x { - return nil, NewParserError(b[0:1], "expected character %c", x) - } - - return b[1:], nil -} diff --git a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/scanner.go b/backend/vendor/github.com/pelletier/go-toml/v2/unstable/scanner.go deleted file mode 100644 index 0512181d..00000000 --- a/backend/vendor/github.com/pelletier/go-toml/v2/unstable/scanner.go +++ /dev/null @@ -1,270 +0,0 @@ -package unstable - -import "github.com/pelletier/go-toml/v2/internal/characters" - -func scanFollows(b []byte, pattern string) bool { - n := len(pattern) - - return len(b) >= n && string(b[:n]) == pattern -} - -func scanFollowsMultilineBasicStringDelimiter(b []byte) bool { - return scanFollows(b, `"""`) -} - -func scanFollowsMultilineLiteralStringDelimiter(b []byte) bool { - return scanFollows(b, `'''`) -} - -func scanFollowsTrue(b []byte) bool { - return scanFollows(b, `true`) -} - -func scanFollowsFalse(b []byte) bool { - return scanFollows(b, `false`) -} - -func scanFollowsInf(b []byte) bool { - return scanFollows(b, `inf`) -} - -func scanFollowsNan(b []byte) bool { - return scanFollows(b, `nan`) -} - -func scanUnquotedKey(b []byte) ([]byte, []byte) { - // unquoted-key = 1*( ALPHA / DIGIT / %x2D / %x5F ) ; A-Z / a-z / 0-9 / - / _ - for i := 0; i < len(b); i++ { - if !isUnquotedKeyChar(b[i]) { - return b[:i], b[i:] - } - } - - return b, b[len(b):] -} - -func isUnquotedKeyChar(r byte) bool { - return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '-' || r == '_' -} - -func scanLiteralString(b []byte) ([]byte, []byte, error) { - // literal-string = apostrophe *literal-char apostrophe - // apostrophe = %x27 ; ' apostrophe - // literal-char = %x09 / %x20-26 / %x28-7E / non-ascii - for i := 1; i < len(b); { - switch b[i] { - case '\'': - return b[:i+1], b[i+1:], nil - case '\n', '\r': - return nil, nil, NewParserError(b[i:i+1], "literal strings cannot have new lines") - } - size := characters.Utf8ValidNext(b[i:]) - if size == 0 { - return nil, nil, NewParserError(b[i:i+1], "invalid character") - } - i += size - } - - return nil, nil, NewParserError(b[len(b):], "unterminated literal string") -} - -func scanMultilineLiteralString(b []byte) ([]byte, []byte, error) { - // ml-literal-string = ml-literal-string-delim [ newline ] ml-literal-body - // ml-literal-string-delim - // ml-literal-string-delim = 3apostrophe - // ml-literal-body = *mll-content *( mll-quotes 1*mll-content ) [ mll-quotes ] - // - // mll-content = mll-char / newline - // mll-char = %x09 / %x20-26 / %x28-7E / non-ascii - // mll-quotes = 1*2apostrophe - for i := 3; i < len(b); { - switch b[i] { - case '\'': - if scanFollowsMultilineLiteralStringDelimiter(b[i:]) { - i += 3 - - // At that point we found 3 apostrophe, and i is the - // index of the byte after the third one. The scanner - // needs to be eager, because there can be an extra 2 - // apostrophe that can be accepted at the end of the - // string. - - if i >= len(b) || b[i] != '\'' { - return b[:i], b[i:], nil - } - i++ - - if i >= len(b) || b[i] != '\'' { - return b[:i], b[i:], nil - } - i++ - - if i < len(b) && b[i] == '\'' { - return nil, nil, NewParserError(b[i-3:i+1], "''' not allowed in multiline literal string") - } - - return b[:i], b[i:], nil - } - case '\r': - if len(b) < i+2 { - return nil, nil, NewParserError(b[len(b):], `need a \n after \r`) - } - if b[i+1] != '\n' { - return nil, nil, NewParserError(b[i:i+2], `need a \n after \r`) - } - i += 2 // skip the \n - continue - } - size := characters.Utf8ValidNext(b[i:]) - if size == 0 { - return nil, nil, NewParserError(b[i:i+1], "invalid character") - } - i += size - } - - return nil, nil, NewParserError(b[len(b):], `multiline literal string not terminated by '''`) -} - -func scanWindowsNewline(b []byte) ([]byte, []byte, error) { - const lenCRLF = 2 - if len(b) < lenCRLF { - return nil, nil, NewParserError(b, "windows new line expected") - } - - if b[1] != '\n' { - return nil, nil, NewParserError(b, `windows new line should be \r\n`) - } - - return b[:lenCRLF], b[lenCRLF:], nil -} - -func scanWhitespace(b []byte) ([]byte, []byte) { - for i := 0; i < len(b); i++ { - switch b[i] { - case ' ', '\t': - continue - default: - return b[:i], b[i:] - } - } - - return b, b[len(b):] -} - -func scanComment(b []byte) ([]byte, []byte, error) { - // comment-start-symbol = %x23 ; # - // non-ascii = %x80-D7FF / %xE000-10FFFF - // non-eol = %x09 / %x20-7F / non-ascii - // - // comment = comment-start-symbol *non-eol - - for i := 1; i < len(b); { - if b[i] == '\n' { - return b[:i], b[i:], nil - } - if b[i] == '\r' { - if i+1 < len(b) && b[i+1] == '\n' { - return b[:i+1], b[i+1:], nil - } - return nil, nil, NewParserError(b[i:i+1], "invalid character in comment") - } - size := characters.Utf8ValidNext(b[i:]) - if size == 0 { - return nil, nil, NewParserError(b[i:i+1], "invalid character in comment") - } - - i += size - } - - return b, b[len(b):], nil -} - -func scanBasicString(b []byte) ([]byte, bool, []byte, error) { - // basic-string = quotation-mark *basic-char quotation-mark - // quotation-mark = %x22 ; " - // basic-char = basic-unescaped / escaped - // basic-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii - // escaped = escape escape-seq-char - escaped := false - i := 1 - - for ; i < len(b); i++ { - switch b[i] { - case '"': - return b[:i+1], escaped, b[i+1:], nil - case '\n', '\r': - return nil, escaped, nil, NewParserError(b[i:i+1], "basic strings cannot have new lines") - case '\\': - if len(b) < i+2 { - return nil, escaped, nil, NewParserError(b[i:i+1], "need a character after \\") - } - escaped = true - i++ // skip the next character - } - } - - return nil, escaped, nil, NewParserError(b[len(b):], `basic string not terminated by "`) -} - -func scanMultilineBasicString(b []byte) ([]byte, bool, []byte, error) { - // ml-basic-string = ml-basic-string-delim [ newline ] ml-basic-body - // ml-basic-string-delim - // ml-basic-string-delim = 3quotation-mark - // ml-basic-body = *mlb-content *( mlb-quotes 1*mlb-content ) [ mlb-quotes ] - // - // mlb-content = mlb-char / newline / mlb-escaped-nl - // mlb-char = mlb-unescaped / escaped - // mlb-quotes = 1*2quotation-mark - // mlb-unescaped = wschar / %x21 / %x23-5B / %x5D-7E / non-ascii - // mlb-escaped-nl = escape ws newline *( wschar / newline ) - - escaped := false - i := 3 - - for ; i < len(b); i++ { - switch b[i] { - case '"': - if scanFollowsMultilineBasicStringDelimiter(b[i:]) { - i += 3 - - // At that point we found 3 apostrophe, and i is the - // index of the byte after the third one. The scanner - // needs to be eager, because there can be an extra 2 - // apostrophe that can be accepted at the end of the - // string. - - if i >= len(b) || b[i] != '"' { - return b[:i], escaped, b[i:], nil - } - i++ - - if i >= len(b) || b[i] != '"' { - return b[:i], escaped, b[i:], nil - } - i++ - - if i < len(b) && b[i] == '"' { - return nil, escaped, nil, NewParserError(b[i-3:i+1], `""" not allowed in multiline basic string`) - } - - return b[:i], escaped, b[i:], nil - } - case '\\': - if len(b) < i+2 { - return nil, escaped, nil, NewParserError(b[len(b):], "need a character after \\") - } - escaped = true - i++ // skip the next character - case '\r': - if len(b) < i+2 { - return nil, escaped, nil, NewParserError(b[len(b):], `need a \n after \r`) - } - if b[i+1] != '\n' { - return nil, escaped, nil, NewParserError(b[i:i+2], `need a \n after \r`) - } - i++ // skip the \n - } - } - - return nil, escaped, nil, NewParserError(b[len(b):], `multiline basic string not terminated by """`) -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/.gitignore b/backend/vendor/github.com/pierrec/lz4/v4/.gitignore deleted file mode 100644 index 5d7e88de..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# Created by https://www.gitignore.io/api/macos - -### macOS ### -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# End of https://www.gitignore.io/api/macos - -cmd/*/*exe -.idea - -fuzz/*.zip diff --git a/backend/vendor/github.com/pierrec/lz4/v4/LICENSE b/backend/vendor/github.com/pierrec/lz4/v4/LICENSE deleted file mode 100644 index bd899d83..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2015, Pierre Curto -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of xxHash nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/backend/vendor/github.com/pierrec/lz4/v4/README.md b/backend/vendor/github.com/pierrec/lz4/v4/README.md deleted file mode 100644 index df027e2c..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# lz4 : LZ4 compression in pure Go - -[![Go Reference](https://pkg.go.dev/badge/github.com/pierrec/lz4/v4.svg)](https://pkg.go.dev/github.com/pierrec/lz4/v4) -[![CI](https://github.com/pierrec/lz4/workflows/ci/badge.svg)](https://github.com/pierrec/lz4/actions) -[![Go Report Card](https://goreportcard.com/badge/github.com/pierrec/lz4)](https://goreportcard.com/report/github.com/pierrec/lz4) -[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/pierrec/lz4.svg?style=social)](https://github.com/pierrec/lz4/tags) - -## Overview - -This package provides a streaming interface to [LZ4 data streams](http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html) as well as low level compress and uncompress functions for LZ4 data blocks. -The implementation is based on the reference C [one](https://github.com/lz4/lz4). - -## Install - -Assuming you have the go toolchain installed: - -``` -go get github.com/pierrec/lz4/v4 -``` - -There is a command line interface tool to compress and decompress LZ4 files. - -``` -go install github.com/pierrec/lz4/v4/cmd/lz4c -``` - -Usage - -``` -Usage of lz4c: - -version - print the program version - -Subcommands: -Compress the given files or from stdin to stdout. -compress [arguments] [ ...] - -bc - enable block checksum - -l int - compression level (0=fastest) - -sc - disable stream checksum - -size string - block max size [64K,256K,1M,4M] (default "4M") - -Uncompress the given files or from stdin to stdout. -uncompress [arguments] [ ...] - -``` - - -## Example - -``` -// Compress and uncompress an input string. -s := "hello world" -r := strings.NewReader(s) - -// The pipe will uncompress the data from the writer. -pr, pw := io.Pipe() -zw := lz4.NewWriter(pw) -zr := lz4.NewReader(pr) - -go func() { - // Compress the input string. - _, _ = io.Copy(zw, r) - _ = zw.Close() // Make sure the writer is closed - _ = pw.Close() // Terminate the pipe -}() - -_, _ = io.Copy(os.Stdout, zr) - -// Output: -// hello world -``` - -## Contributing - -Contributions are very welcome for bug fixing, performance improvements...! - -- Open an issue with a proper description -- Send a pull request with appropriate test case(s) - -## Contributors - -Thanks to all [contributors](https://github.com/pierrec/lz4/graphs/contributors) so far! - -Special thanks to [@Zariel](https://github.com/Zariel) for his asm implementation of the decoder. - -Special thanks to [@klauspost](https://github.com/klauspost) for his work on optimizing the code. diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go deleted file mode 100644 index f3826494..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go +++ /dev/null @@ -1,469 +0,0 @@ -package lz4block - -import ( - "encoding/binary" - "math/bits" - "sync" - - "github.com/pierrec/lz4/v4/internal/lz4errors" -) - -const ( - // The following constants are used to setup the compression algorithm. - minMatch = 4 // the minimum size of the match sequence size (4 bytes) - winSizeLog = 16 // LZ4 64Kb window size limit - winSize = 1 << winSizeLog - winMask = winSize - 1 // 64Kb window of previous data for dependent blocks - - // hashLog determines the size of the hash table used to quickly find a previous match position. - // Its value influences the compression speed and memory usage, the lower the faster, - // but at the expense of the compression ratio. - // 16 seems to be the best compromise for fast compression. - hashLog = 16 - htSize = 1 << hashLog - - mfLimit = 10 + minMatch // The last match cannot start within the last 14 bytes. -) - -func recoverBlock(e *error) { - if r := recover(); r != nil && *e == nil { - *e = lz4errors.ErrInvalidSourceShortBuffer - } -} - -// blockHash hashes the lower 6 bytes into a value < htSize. -func blockHash(x uint64) uint32 { - const prime6bytes = 227718039650203 - return uint32(((x << (64 - 48)) * prime6bytes) >> (64 - hashLog)) -} - -func CompressBlockBound(n int) int { - return n + n/255 + 16 -} - -func UncompressBlock(src, dst []byte) (int, error) { - if len(src) == 0 { - return 0, nil - } - if di := decodeBlock(dst, src); di >= 0 { - return di, nil - } - return 0, lz4errors.ErrInvalidSourceShortBuffer -} - -type Compressor struct { - // Offsets are at most 64kiB, so we can store only the lower 16 bits of - // match positions: effectively, an offset from some 64kiB block boundary. - // - // When we retrieve such an offset, we interpret it as relative to the last - // block boundary si &^ 0xffff, or the one before, (si &^ 0xffff) - 0x10000, - // depending on which of these is inside the current window. If a table - // entry was generated more than 64kiB back in the input, we find out by - // inspecting the input stream. - table [htSize]uint16 - - needsReset bool -} - -// Get returns the position of a presumptive match for the hash h. -// The match may be a false positive due to a hash collision or an old entry. -// If si < winSize, the return value may be negative. -func (c *Compressor) get(h uint32, si int) int { - h &= htSize - 1 - i := int(c.table[h]) - i += si &^ winMask - if i >= si { - // Try previous 64kiB block (negative when in first block). - i -= winSize - } - return i -} - -func (c *Compressor) put(h uint32, si int) { - h &= htSize - 1 - c.table[h] = uint16(si) -} - -var compressorPool = sync.Pool{New: func() interface{} { return new(Compressor) }} - -func CompressBlock(src, dst []byte) (int, error) { - c := compressorPool.Get().(*Compressor) - n, err := c.CompressBlock(src, dst) - compressorPool.Put(c) - return n, err -} - -func (c *Compressor) CompressBlock(src, dst []byte) (int, error) { - if c.needsReset { - // Zero out reused table to avoid non-deterministic output (issue #65). - c.table = [htSize]uint16{} - } - c.needsReset = true // Only false on first call. - - // Return 0, nil only if the destination buffer size is < CompressBlockBound. - isNotCompressible := len(dst) < CompressBlockBound(len(src)) - - // adaptSkipLog sets how quickly the compressor begins skipping blocks when data is incompressible. - // This significantly speeds up incompressible data and usually has very small impact on compression. - // bytes to skip = 1 + (bytes since last match >> adaptSkipLog) - const adaptSkipLog = 7 - - // si: Current position of the search. - // anchor: Position of the current literals. - var si, di, anchor int - sn := len(src) - mfLimit - if sn <= 0 { - goto lastLiterals - } - - // Fast scan strategy: the hash table only stores the last 4 bytes sequences. - for si < sn { - // Hash the next 6 bytes (sequence)... - match := binary.LittleEndian.Uint64(src[si:]) - h := blockHash(match) - h2 := blockHash(match >> 8) - - // We check a match at s, s+1 and s+2 and pick the first one we get. - // Checking 3 only requires us to load the source one. - ref := c.get(h, si) - ref2 := c.get(h2, si) - c.put(h, si) - c.put(h2, si+1) - - offset := si - ref - - if offset <= 0 || offset >= winSize || uint32(match) != binary.LittleEndian.Uint32(src[ref:]) { - // No match. Start calculating another hash. - // The processor can usually do this out-of-order. - h = blockHash(match >> 16) - ref3 := c.get(h, si+2) - - // Check the second match at si+1 - si += 1 - offset = si - ref2 - - if offset <= 0 || offset >= winSize || uint32(match>>8) != binary.LittleEndian.Uint32(src[ref2:]) { - // No match. Check the third match at si+2 - si += 1 - offset = si - ref3 - c.put(h, si) - - if offset <= 0 || offset >= winSize || uint32(match>>16) != binary.LittleEndian.Uint32(src[ref3:]) { - // Skip one extra byte (at si+3) before we check 3 matches again. - si += 2 + (si-anchor)>>adaptSkipLog - continue - } - } - } - - // Match found. - lLen := si - anchor // Literal length. - // We already matched 4 bytes. - mLen := 4 - - // Extend backwards if we can, reducing literals. - tOff := si - offset - 1 - for lLen > 0 && tOff >= 0 && src[si-1] == src[tOff] { - si-- - tOff-- - lLen-- - mLen++ - } - - // Add the match length, so we continue search at the end. - // Use mLen to store the offset base. - si, mLen = si+mLen, si+minMatch - - // Find the longest match by looking by batches of 8 bytes. - for si+8 < sn { - x := binary.LittleEndian.Uint64(src[si:]) ^ binary.LittleEndian.Uint64(src[si-offset:]) - if x == 0 { - si += 8 - } else { - // Stop is first non-zero byte. - si += bits.TrailingZeros64(x) >> 3 - break - } - } - - mLen = si - mLen - if mLen < 0xF { - dst[di] = byte(mLen) - } else { - dst[di] = 0xF - } - - // Encode literals length. - if lLen < 0xF { - dst[di] |= byte(lLen << 4) - } else { - dst[di] |= 0xF0 - di++ - l := lLen - 0xF - for ; l >= 0xFF; l -= 0xFF { - dst[di] = 0xFF - di++ - } - dst[di] = byte(l) - } - di++ - - // Literals. - if di+lLen > len(dst) { - return 0, lz4errors.ErrInvalidSourceShortBuffer - } - copy(dst[di:di+lLen], src[anchor:anchor+lLen]) - di += lLen + 2 - anchor = si - - // Encode offset. - if di > len(dst) { - return 0, lz4errors.ErrInvalidSourceShortBuffer - } - dst[di-2], dst[di-1] = byte(offset), byte(offset>>8) - - // Encode match length part 2. - if mLen >= 0xF { - for mLen -= 0xF; mLen >= 0xFF && di < len(dst); mLen -= 0xFF { - dst[di] = 0xFF - di++ - } - if di >= len(dst) { - return 0, lz4errors.ErrInvalidSourceShortBuffer - } - dst[di] = byte(mLen) - di++ - } - // Check if we can load next values. - if si >= sn { - break - } - // Hash match end-2 - h = blockHash(binary.LittleEndian.Uint64(src[si-2:])) - c.put(h, si-2) - } - -lastLiterals: - if isNotCompressible && anchor == 0 { - // Incompressible. - return 0, nil - } - - // Last literals. - if di >= len(dst) { - return 0, lz4errors.ErrInvalidSourceShortBuffer - } - lLen := len(src) - anchor - if lLen < 0xF { - dst[di] = byte(lLen << 4) - } else { - dst[di] = 0xF0 - di++ - for lLen -= 0xF; lLen >= 0xFF && di < len(dst); lLen -= 0xFF { - dst[di] = 0xFF - di++ - } - if di >= len(dst) { - return 0, lz4errors.ErrInvalidSourceShortBuffer - } - dst[di] = byte(lLen) - } - di++ - - // Write the last literals. - if isNotCompressible && di >= anchor { - // Incompressible. - return 0, nil - } - if di+len(src)-anchor > len(dst) { - return 0, lz4errors.ErrInvalidSourceShortBuffer - } - di += copy(dst[di:di+len(src)-anchor], src[anchor:]) - return di, nil -} - -// blockHash hashes 4 bytes into a value < winSize. -func blockHashHC(x uint32) uint32 { - const hasher uint32 = 2654435761 // Knuth multiplicative hash. - return x * hasher >> (32 - winSizeLog) -} - -type CompressorHC struct { - // hashTable: stores the last position found for a given hash - // chainTable: stores previous positions for a given hash - hashTable, chainTable [htSize]int - needsReset bool -} - -var compressorHCPool = sync.Pool{New: func() interface{} { return new(CompressorHC) }} - -func CompressBlockHC(src, dst []byte, depth CompressionLevel) (int, error) { - c := compressorHCPool.Get().(*CompressorHC) - n, err := c.CompressBlock(src, dst, depth) - compressorHCPool.Put(c) - return n, err -} - -func (c *CompressorHC) CompressBlock(src, dst []byte, depth CompressionLevel) (_ int, err error) { - if c.needsReset { - // Zero out reused table to avoid non-deterministic output (issue #65). - c.hashTable = [htSize]int{} - c.chainTable = [htSize]int{} - } - c.needsReset = true // Only false on first call. - - defer recoverBlock(&err) - - // Return 0, nil only if the destination buffer size is < CompressBlockBound. - isNotCompressible := len(dst) < CompressBlockBound(len(src)) - - // adaptSkipLog sets how quickly the compressor begins skipping blocks when data is incompressible. - // This significantly speeds up incompressible data and usually has very small impact on compression. - // bytes to skip = 1 + (bytes since last match >> adaptSkipLog) - const adaptSkipLog = 7 - - var si, di, anchor int - sn := len(src) - mfLimit - if sn <= 0 { - goto lastLiterals - } - - if depth == 0 { - depth = winSize - } - - for si < sn { - // Hash the next 4 bytes (sequence). - match := binary.LittleEndian.Uint32(src[si:]) - h := blockHashHC(match) - - // Follow the chain until out of window and give the longest match. - mLen := 0 - offset := 0 - for next, try := c.hashTable[h], depth; try > 0 && next > 0 && si-next < winSize; next, try = c.chainTable[next&winMask], try-1 { - // The first (mLen==0) or next byte (mLen>=minMatch) at current match length - // must match to improve on the match length. - if src[next+mLen] != src[si+mLen] { - continue - } - ml := 0 - // Compare the current position with a previous with the same hash. - for ml < sn-si { - x := binary.LittleEndian.Uint64(src[next+ml:]) ^ binary.LittleEndian.Uint64(src[si+ml:]) - if x == 0 { - ml += 8 - } else { - // Stop is first non-zero byte. - ml += bits.TrailingZeros64(x) >> 3 - break - } - } - if ml < minMatch || ml <= mLen { - // Match too small (>adaptSkipLog - continue - } - - // Match found. - // Update hash/chain tables with overlapping bytes: - // si already hashed, add everything from si+1 up to the match length. - winStart := si + 1 - if ws := si + mLen - winSize; ws > winStart { - winStart = ws - } - for si, ml := winStart, si+mLen; si < ml; { - match >>= 8 - match |= uint32(src[si+3]) << 24 - h := blockHashHC(match) - c.chainTable[si&winMask] = c.hashTable[h] - c.hashTable[h] = si - si++ - } - - lLen := si - anchor - si += mLen - mLen -= minMatch // Match length does not include minMatch. - - if mLen < 0xF { - dst[di] = byte(mLen) - } else { - dst[di] = 0xF - } - - // Encode literals length. - if lLen < 0xF { - dst[di] |= byte(lLen << 4) - } else { - dst[di] |= 0xF0 - di++ - l := lLen - 0xF - for ; l >= 0xFF; l -= 0xFF { - dst[di] = 0xFF - di++ - } - dst[di] = byte(l) - } - di++ - - // Literals. - copy(dst[di:di+lLen], src[anchor:anchor+lLen]) - di += lLen - anchor = si - - // Encode offset. - di += 2 - dst[di-2], dst[di-1] = byte(offset), byte(offset>>8) - - // Encode match length part 2. - if mLen >= 0xF { - for mLen -= 0xF; mLen >= 0xFF; mLen -= 0xFF { - dst[di] = 0xFF - di++ - } - dst[di] = byte(mLen) - di++ - } - } - - if isNotCompressible && anchor == 0 { - // Incompressible. - return 0, nil - } - - // Last literals. -lastLiterals: - lLen := len(src) - anchor - if lLen < 0xF { - dst[di] = byte(lLen << 4) - } else { - dst[di] = 0xF0 - di++ - lLen -= 0xF - for ; lLen >= 0xFF; lLen -= 0xFF { - dst[di] = 0xFF - di++ - } - dst[di] = byte(lLen) - } - di++ - - // Write the last literals. - if isNotCompressible && di >= anchor { - // Incompressible. - return 0, nil - } - di += copy(dst[di:di+len(src)-anchor], src[anchor:]) - return di, nil -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/blocks.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/blocks.go deleted file mode 100644 index e6cf88d7..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/blocks.go +++ /dev/null @@ -1,88 +0,0 @@ -// Package lz4block provides LZ4 BlockSize types and pools of buffers. -package lz4block - -import "sync" - -const ( - Block64Kb uint32 = 1 << (16 + iota*2) - Block256Kb - Block1Mb - Block4Mb - Block8Mb = 2 * Block4Mb - legacyBlockSize = Block8Mb + Block8Mb/255 + 16 // CompressBound(Block8Mb) -) - -var ( - BlockPool64K = sync.Pool{New: func() interface{} { return make([]byte, Block64Kb) }} - BlockPool256K = sync.Pool{New: func() interface{} { return make([]byte, Block256Kb) }} - BlockPool1M = sync.Pool{New: func() interface{} { return make([]byte, Block1Mb) }} - BlockPool4M = sync.Pool{New: func() interface{} { return make([]byte, Block4Mb) }} - BlockPool8M = sync.Pool{New: func() interface{} { return make([]byte, legacyBlockSize) }} -) - -func Index(b uint32) BlockSizeIndex { - switch b { - case Block64Kb: - return 4 - case Block256Kb: - return 5 - case Block1Mb: - return 6 - case Block4Mb: - return 7 - case Block8Mb: // only valid in legacy mode - return 3 - } - return 0 -} - -func IsValid(b uint32) bool { - return Index(b) > 0 -} - -type BlockSizeIndex uint8 - -func (b BlockSizeIndex) IsValid() bool { - switch b { - case 4, 5, 6, 7: - return true - } - return false -} - -func (b BlockSizeIndex) Get() []byte { - var buf interface{} - switch b { - case 4: - buf = BlockPool64K.Get() - case 5: - buf = BlockPool256K.Get() - case 6: - buf = BlockPool1M.Get() - case 7: - buf = BlockPool4M.Get() - case 3: - buf = BlockPool8M.Get() - } - return buf.([]byte) -} - -func Put(buf []byte) { - // Safeguard: do not allow invalid buffers. - switch c := cap(buf); uint32(c) { - case Block64Kb: - BlockPool64K.Put(buf[:c]) - case Block256Kb: - BlockPool256K.Put(buf[:c]) - case Block1Mb: - BlockPool1M.Put(buf[:c]) - case Block4Mb: - BlockPool4M.Put(buf[:c]) - case legacyBlockSize: - BlockPool8M.Put(buf[:c]) - } -} - -type CompressionLevel uint32 - -const Fast CompressionLevel = 0 diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_amd64.s b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_amd64.s deleted file mode 100644 index be79faa3..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_amd64.s +++ /dev/null @@ -1,369 +0,0 @@ -// +build !appengine -// +build gc -// +build !noasm - -#include "textflag.h" - -// AX scratch -// BX scratch -// CX scratch -// DX token -// -// DI &dst -// SI &src -// R8 &dst + len(dst) -// R9 &src + len(src) -// R11 &dst -// R12 short output end -// R13 short input end -// func decodeBlock(dst, src []byte) int -// using 50 bytes of stack currently -TEXT ·decodeBlock(SB), NOSPLIT, $64-56 - MOVQ dst_base+0(FP), DI - MOVQ DI, R11 - MOVQ dst_len+8(FP), R8 - ADDQ DI, R8 - - MOVQ src_base+24(FP), SI - MOVQ src_len+32(FP), R9 - CMPQ R9, $0 - JE err_corrupt - ADDQ SI, R9 - - // shortcut ends - // short output end - MOVQ R8, R12 - SUBQ $32, R12 - // short input end - MOVQ R9, R13 - SUBQ $16, R13 - -loop: - // for si < len(src) - CMPQ SI, R9 - JGE end - - // token := uint32(src[si]) - MOVBQZX (SI), DX - INCQ SI - - // lit_len = token >> 4 - // if lit_len > 0 - // CX = lit_len - MOVQ DX, CX - SHRQ $4, CX - - // if lit_len != 0xF - CMPQ CX, $0xF - JEQ lit_len_loop_pre - CMPQ DI, R12 - JGE lit_len_loop_pre - CMPQ SI, R13 - JGE lit_len_loop_pre - - // copy shortcut - - // A two-stage shortcut for the most common case: - // 1) If the literal length is 0..14, and there is enough space, - // enter the shortcut and copy 16 bytes on behalf of the literals - // (in the fast mode, only 8 bytes can be safely copied this way). - // 2) Further if the match length is 4..18, copy 18 bytes in a similar - // manner; but we ensure that there's enough space in the output for - // those 18 bytes earlier, upon entering the shortcut (in other words, - // there is a combined check for both stages). - - // copy literal - MOVOU (SI), X0 - MOVOU X0, (DI) - ADDQ CX, DI - ADDQ CX, SI - - MOVQ DX, CX - ANDQ $0xF, CX - - // The second stage: prepare for match copying, decode full info. - // If it doesn't work out, the info won't be wasted. - // offset := uint16(data[:2]) - MOVWQZX (SI), DX - ADDQ $2, SI - - MOVQ DI, AX - SUBQ DX, AX - CMPQ AX, DI - JGT err_short_buf - - // if we can't do the second stage then jump straight to read the - // match length, we already have the offset. - CMPQ CX, $0xF - JEQ match_len_loop_pre - CMPQ DX, $8 - JLT match_len_loop_pre - CMPQ AX, R11 - JLT err_short_buf - - // memcpy(op + 0, match + 0, 8); - MOVQ (AX), BX - MOVQ BX, (DI) - // memcpy(op + 8, match + 8, 8); - MOVQ 8(AX), BX - MOVQ BX, 8(DI) - // memcpy(op +16, match +16, 2); - MOVW 16(AX), BX - MOVW BX, 16(DI) - - LEAQ 4(DI)(CX*1), DI // minmatch - - // shortcut complete, load next token - JMP loop - -lit_len_loop_pre: - // if lit_len > 0 - CMPQ CX, $0 - JEQ offset - CMPQ CX, $0xF - JNE copy_literal - -lit_len_loop: - // for src[si] == 0xFF - CMPB (SI), $0xFF - JNE lit_len_finalise - - // bounds check src[si+1] - LEAQ 1(SI), AX - CMPQ AX, R9 - JGT err_short_buf - - // lit_len += 0xFF - ADDQ $0xFF, CX - INCQ SI - JMP lit_len_loop - -lit_len_finalise: - // lit_len += int(src[si]) - // si++ - MOVBQZX (SI), AX - ADDQ AX, CX - INCQ SI - -copy_literal: - // bounds check src and dst - LEAQ (SI)(CX*1), AX - CMPQ AX, R9 - JGT err_short_buf - - LEAQ (DI)(CX*1), AX - CMPQ AX, R8 - JGT err_short_buf - - // whats a good cut off to call memmove? - CMPQ CX, $16 - JGT memmove_lit - - // if len(dst[di:]) < 16 - MOVQ R8, AX - SUBQ DI, AX - CMPQ AX, $16 - JLT memmove_lit - - // if len(src[si:]) < 16 - MOVQ R9, AX - SUBQ SI, AX - CMPQ AX, $16 - JLT memmove_lit - - MOVOU (SI), X0 - MOVOU X0, (DI) - - JMP finish_lit_copy - -memmove_lit: - // memmove(to, from, len) - MOVQ DI, 0(SP) - MOVQ SI, 8(SP) - MOVQ CX, 16(SP) - // spill - MOVQ DI, 24(SP) - MOVQ SI, 32(SP) - MOVQ CX, 40(SP) // need len to inc SI, DI after - MOVB DX, 48(SP) - CALL runtime·memmove(SB) - - // restore registers - MOVQ 24(SP), DI - MOVQ 32(SP), SI - MOVQ 40(SP), CX - MOVB 48(SP), DX - - // recalc initial values - MOVQ dst_base+0(FP), R8 - MOVQ R8, R11 - ADDQ dst_len+8(FP), R8 - MOVQ src_base+24(FP), R9 - ADDQ src_len+32(FP), R9 - MOVQ R8, R12 - SUBQ $32, R12 - MOVQ R9, R13 - SUBQ $16, R13 - -finish_lit_copy: - ADDQ CX, SI - ADDQ CX, DI - - CMPQ SI, R9 - JGE end - -offset: - // CX := mLen - // free up DX to use for offset - MOVQ DX, CX - - LEAQ 2(SI), AX - CMPQ AX, R9 - JGT err_short_buf - - // offset - // DX := int(src[si]) | int(src[si+1])<<8 - MOVWQZX (SI), DX - ADDQ $2, SI - - // 0 offset is invalid - CMPQ DX, $0 - JEQ err_corrupt - - ANDB $0xF, CX - -match_len_loop_pre: - // if mlen != 0xF - CMPB CX, $0xF - JNE copy_match - -match_len_loop: - // for src[si] == 0xFF - // lit_len += 0xFF - CMPB (SI), $0xFF - JNE match_len_finalise - - // bounds check src[si+1] - LEAQ 1(SI), AX - CMPQ AX, R9 - JGT err_short_buf - - ADDQ $0xFF, CX - INCQ SI - JMP match_len_loop - -match_len_finalise: - // lit_len += int(src[si]) - // si++ - MOVBQZX (SI), AX - ADDQ AX, CX - INCQ SI - -copy_match: - // mLen += minMatch - ADDQ $4, CX - - // check we have match_len bytes left in dst - // di+match_len < len(dst) - LEAQ (DI)(CX*1), AX - CMPQ AX, R8 - JGT err_short_buf - - // DX = offset - // CX = match_len - // BX = &dst + (di - offset) - MOVQ DI, BX - SUBQ DX, BX - - // check BX is within dst - // if BX < &dst - CMPQ BX, R11 - JLT err_short_buf - - // if offset + match_len < di - LEAQ (BX)(CX*1), AX - CMPQ DI, AX - JGT copy_interior_match - - // AX := len(dst[:di]) - // MOVQ DI, AX - // SUBQ R11, AX - - // copy 16 bytes at a time - // if di-offset < 16 copy 16-(di-offset) bytes to di - // then do the remaining - -copy_match_loop: - // for match_len >= 0 - // dst[di] = dst[i] - // di++ - // i++ - MOVB (BX), AX - MOVB AX, (DI) - INCQ DI - INCQ BX - DECQ CX - - CMPQ CX, $0 - JGT copy_match_loop - - JMP loop - -copy_interior_match: - CMPQ CX, $16 - JGT memmove_match - - // if len(dst[di:]) < 16 - MOVQ R8, AX - SUBQ DI, AX - CMPQ AX, $16 - JLT memmove_match - - MOVOU (BX), X0 - MOVOU X0, (DI) - - ADDQ CX, DI - JMP loop - -memmove_match: - // memmove(to, from, len) - MOVQ DI, 0(SP) - MOVQ BX, 8(SP) - MOVQ CX, 16(SP) - // spill - MOVQ DI, 24(SP) - MOVQ SI, 32(SP) - MOVQ CX, 40(SP) // need len to inc SI, DI after - CALL runtime·memmove(SB) - - // restore registers - MOVQ 24(SP), DI - MOVQ 32(SP), SI - MOVQ 40(SP), CX - - // recalc initial values - MOVQ dst_base+0(FP), R8 - MOVQ R8, R11 // TODO: make these sensible numbers - ADDQ dst_len+8(FP), R8 - MOVQ src_base+24(FP), R9 - ADDQ src_len+32(FP), R9 - MOVQ R8, R12 - SUBQ $32, R12 - MOVQ R9, R13 - SUBQ $16, R13 - - ADDQ CX, DI - JMP loop - -err_corrupt: - MOVQ $-1, ret+48(FP) - RET - -err_short_buf: - MOVQ $-2, ret+48(FP) - RET - -end: - SUBQ R11, DI - MOVQ DI, ret+48(FP) - RET diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_arm.s b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_arm.s deleted file mode 100644 index 64be9adc..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_arm.s +++ /dev/null @@ -1,197 +0,0 @@ -// +build gc -// +build !noasm - -#include "textflag.h" - -// Register allocation. -#define dst R0 -#define dstorig R1 -#define src R2 -#define dstend R3 -#define srcend R4 -#define match R5 // Match address. -#define token R6 -#define len R7 // Literal and match lengths. -#define offset R6 // Match offset; overlaps with token. -#define tmp1 R8 -#define tmp2 R9 -#define tmp3 R12 - -#define minMatch $4 - -// func decodeBlock(dst, src []byte) int -TEXT ·decodeBlock(SB), NOFRAME|NOSPLIT, $-4-28 - MOVW dst_base +0(FP), dst - MOVW dst_len +4(FP), dstend - MOVW src_base+12(FP), src - MOVW src_len +16(FP), srcend - - CMP $0, srcend - BEQ shortSrc - - ADD dst, dstend - ADD src, srcend - - MOVW dst, dstorig - -loop: - // Read token. Extract literal length. - MOVBU.P 1(src), token - MOVW token >> 4, len - CMP $15, len - BNE readLitlenDone - -readLitlenLoop: - CMP src, srcend - BEQ shortSrc - MOVBU.P 1(src), tmp1 - ADD tmp1, len - CMP $255, tmp1 - BEQ readLitlenLoop - -readLitlenDone: - CMP $0, len - BEQ copyLiteralDone - - // Bounds check dst+len and src+len. - ADD dst, len, tmp1 - CMP dstend, tmp1 - //BHI shortDst // Uncomment for distinct error codes. - ADD src, len, tmp2 - CMP.LS srcend, tmp2 - BHI shortSrc - - // Copy literal. - CMP $4, len - BLO copyLiteralFinish - - // Copy 0-3 bytes until src is aligned. - TST $1, src - MOVBU.NE.P 1(src), tmp1 - MOVB.NE.P tmp1, 1(dst) - SUB.NE $1, len - - TST $2, src - MOVHU.NE.P 2(src), tmp2 - MOVB.NE.P tmp2, 1(dst) - MOVW.NE tmp2 >> 8, tmp1 - MOVB.NE.P tmp1, 1(dst) - SUB.NE $2, len - - B copyLiteralLoopCond - -copyLiteralLoop: - // Aligned load, unaligned write. - MOVW.P 4(src), tmp1 - MOVW tmp1 >> 8, tmp2 - MOVB tmp2, 1(dst) - MOVW tmp1 >> 16, tmp3 - MOVB tmp3, 2(dst) - MOVW tmp1 >> 24, tmp2 - MOVB tmp2, 3(dst) - MOVB.P tmp1, 4(dst) -copyLiteralLoopCond: - // Loop until len-4 < 0. - SUB.S $4, len - BPL copyLiteralLoop - - // Restore len, which is now negative. - ADD $4, len - -copyLiteralFinish: - // Copy remaining 0-3 bytes. - TST $2, len - MOVHU.NE.P 2(src), tmp2 - MOVB.NE.P tmp2, 1(dst) - MOVW.NE tmp2 >> 8, tmp1 - MOVB.NE.P tmp1, 1(dst) - TST $1, len - MOVBU.NE.P 1(src), tmp1 - MOVB.NE.P tmp1, 1(dst) - -copyLiteralDone: - CMP src, srcend - BEQ end - - // Initial part of match length. - // This frees up the token register for reuse as offset. - AND $15, token, len - - // Read offset. - ADD $2, src - CMP srcend, src - BHI shortSrc - MOVBU -2(src), offset - MOVBU -1(src), tmp1 - ORR tmp1 << 8, offset - CMP $0, offset - BEQ corrupt - - // Read rest of match length. - CMP $15, len - BNE readMatchlenDone - -readMatchlenLoop: - CMP src, srcend - BEQ shortSrc - MOVBU.P 1(src), tmp1 - ADD tmp1, len - CMP $255, tmp1 - BEQ readMatchlenLoop - -readMatchlenDone: - // Bounds check dst+len+minMatch and match = dst-offset. - ADD dst, len, tmp1 - ADD minMatch, tmp1 - CMP dstend, tmp1 - //BHI shortDst // Uncomment for distinct error codes. - SUB offset, dst, match - CMP.LS match, dstorig - BHI corrupt - - // Since len+minMatch is at least four, we can do a 4× unrolled - // byte copy loop. Using MOVW instead of four byte loads is faster, - // but to remain portable we'd have to align match first, which is - // too expensive. By alternating loads and stores, we also handle - // the case offset < 4. -copyMatch4: - SUB.S $4, len - MOVBU.P 4(match), tmp1 - MOVB.P tmp1, 4(dst) - MOVBU -3(match), tmp2 - MOVB tmp2, -3(dst) - MOVBU -2(match), tmp3 - MOVB tmp3, -2(dst) - MOVBU -1(match), tmp1 - MOVB tmp1, -1(dst) - BPL copyMatch4 - - // Restore len, which is now negative. - ADD.S $4, len - BEQ copyMatchDone - -copyMatch: - // Finish with a byte-at-a-time copy. - SUB.S $1, len - MOVBU.P 1(match), tmp2 - MOVB.P tmp2, 1(dst) - BNE copyMatch - -copyMatchDone: - CMP src, srcend - BNE loop - -end: - SUB dstorig, dst, tmp1 - MOVW tmp1, ret+24(FP) - RET - - // The three error cases have distinct labels so we can put different - // return codes here when debugging, or if the error returns need to - // be changed. -shortDst: -shortSrc: -corrupt: - MOVW $-1, tmp1 - MOVW tmp1, ret+24(FP) - RET diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_asm.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_asm.go deleted file mode 100644 index b557a06f..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_asm.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build (amd64 || arm) && !appengine && gc && !noasm -// +build amd64 arm -// +build !appengine -// +build gc -// +build !noasm - -package lz4block - -//go:noescape -func decodeBlock(dst, src []byte) int diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_other.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_other.go deleted file mode 100644 index 73343e9f..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_other.go +++ /dev/null @@ -1,109 +0,0 @@ -//go:build (!amd64 && !arm) || appengine || !gc || noasm -// +build !amd64,!arm appengine !gc noasm - -package lz4block - -import "encoding/binary" - -func decodeBlock(dst, src []byte) (ret int) { - // Restrict capacities so we don't read or write out of bounds. - dst = dst[:len(dst):len(dst)] - src = src[:len(src):len(src)] - - const hasError = -2 - defer func() { - if recover() != nil { - ret = hasError - } - }() - - var si, di uint - for { - // Literals and match lengths (token). - b := uint(src[si]) - si++ - - // Literals. - if lLen := b >> 4; lLen > 0 { - switch { - case lLen < 0xF && si+16 < uint(len(src)): - // Shortcut 1 - // if we have enough room in src and dst, and the literals length - // is small enough (0..14) then copy all 16 bytes, even if not all - // are part of the literals. - copy(dst[di:], src[si:si+16]) - si += lLen - di += lLen - if mLen := b & 0xF; mLen < 0xF { - // Shortcut 2 - // if the match length (4..18) fits within the literals, then copy - // all 18 bytes, even if not all are part of the literals. - mLen += 4 - if offset := u16(src[si:]); mLen <= offset { - i := di - offset - end := i + 18 - if end > uint(len(dst)) { - // The remaining buffer may not hold 18 bytes. - // See https://github.com/pierrec/lz4/issues/51. - end = uint(len(dst)) - } - copy(dst[di:], dst[i:end]) - si += 2 - di += mLen - continue - } - } - case lLen == 0xF: - for src[si] == 0xFF { - lLen += 0xFF - si++ - } - lLen += uint(src[si]) - si++ - fallthrough - default: - copy(dst[di:di+lLen], src[si:si+lLen]) - si += lLen - di += lLen - } - } - if si == uint(len(src)) { - return int(di) - } else if si > uint(len(src)) { - return hasError - } - - offset := u16(src[si:]) - if offset == 0 { - return hasError - } - si += 2 - - // Match. - mLen := b & 0xF - if mLen == 0xF { - for src[si] == 0xFF { - mLen += 0xFF - si++ - } - mLen += uint(src[si]) - si++ - } - mLen += minMatch - - // Copy the match. - expanded := dst[di-offset:] - if mLen > offset { - // Efficiently copy the match dst[di-offset:di] into the dst slice. - bytesToCopy := offset * (mLen / offset) - for n := offset; n <= bytesToCopy+offset; n *= 2 { - copy(expanded[n:], expanded[:n]) - } - di += bytesToCopy - mLen -= bytesToCopy - } - di += uint(copy(dst[di:di+mLen], expanded[:mLen])) - } -} - -func u16(p []byte) uint { return uint(binary.LittleEndian.Uint16(p)) } diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4errors/errors.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4errors/errors.go deleted file mode 100644 index 710ea428..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4errors/errors.go +++ /dev/null @@ -1,19 +0,0 @@ -package lz4errors - -type Error string - -func (e Error) Error() string { return string(e) } - -const ( - ErrInvalidSourceShortBuffer Error = "lz4: invalid source or destination buffer too short" - ErrInvalidFrame Error = "lz4: bad magic number" - ErrInternalUnhandledState Error = "lz4: unhandled state" - ErrInvalidHeaderChecksum Error = "lz4: invalid header checksum" - ErrInvalidBlockChecksum Error = "lz4: invalid block checksum" - ErrInvalidFrameChecksum Error = "lz4: invalid frame checksum" - ErrOptionInvalidCompressionLevel Error = "lz4: invalid compression level" - ErrOptionClosedOrError Error = "lz4: cannot apply options on closed or in error object" - ErrOptionInvalidBlockSize Error = "lz4: invalid block size" - ErrOptionNotApplicable Error = "lz4: option not applicable" - ErrWriterNotClosed Error = "lz4: writer not closed" -) diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/block.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/block.go deleted file mode 100644 index 5e0c062e..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/block.go +++ /dev/null @@ -1,332 +0,0 @@ -package lz4stream - -import ( - "encoding/binary" - "fmt" - "io" - "sync" - - "github.com/pierrec/lz4/v4/internal/lz4block" - "github.com/pierrec/lz4/v4/internal/lz4errors" - "github.com/pierrec/lz4/v4/internal/xxh32" -) - -type Blocks struct { - Block *FrameDataBlock - Blocks chan chan *FrameDataBlock - mu sync.Mutex - err error -} - -func (b *Blocks) initW(f *Frame, dst io.Writer, num int) { - if num == 1 { - b.Blocks = nil - b.Block = NewFrameDataBlock(f) - return - } - b.Block = nil - if cap(b.Blocks) != num { - b.Blocks = make(chan chan *FrameDataBlock, num) - } - // goroutine managing concurrent block compression goroutines. - go func() { - // Process next block compression item. - for c := range b.Blocks { - // Read the next compressed block result. - // Waiting here ensures that the blocks are output in the order they were sent. - // The incoming channel is always closed as it indicates to the caller that - // the block has been processed. - block := <-c - if block == nil { - // Notify the block compression routine that we are done with its result. - // This is used when a sentinel block is sent to terminate the compression. - close(c) - return - } - // Do not attempt to write the block upon any previous failure. - if b.err == nil { - // Write the block. - if err := block.Write(f, dst); err != nil { - // Keep the first error. - b.err = err - // All pending compression goroutines need to shut down, so we need to keep going. - } - } - close(c) - } - }() -} - -func (b *Blocks) close(f *Frame, num int) error { - if num == 1 { - if b.Block != nil { - b.Block.Close(f) - } - err := b.err - b.err = nil - return err - } - if b.Blocks == nil { - err := b.err - b.err = nil - return err - } - c := make(chan *FrameDataBlock) - b.Blocks <- c - c <- nil - <-c - err := b.err - b.err = nil - return err -} - -// ErrorR returns any error set while uncompressing a stream. -func (b *Blocks) ErrorR() error { - b.mu.Lock() - defer b.mu.Unlock() - return b.err -} - -// initR returns a channel that streams the uncompressed blocks if in concurrent -// mode and no error. When the channel is closed, check for any error with b.ErrorR. -// -// If not in concurrent mode, the uncompressed block is b.Block and the returned error -// needs to be checked. -func (b *Blocks) initR(f *Frame, num int, src io.Reader) (chan []byte, error) { - size := f.Descriptor.Flags.BlockSizeIndex() - if num == 1 { - b.Blocks = nil - b.Block = NewFrameDataBlock(f) - return nil, nil - } - b.Block = nil - blocks := make(chan chan []byte, num) - // data receives the uncompressed blocks. - data := make(chan []byte) - // Read blocks from the source sequentially - // and uncompress them concurrently. - - // In legacy mode, accrue the uncompress sizes in cum. - var cum uint32 - go func() { - var cumx uint32 - var err error - for b.ErrorR() == nil { - block := NewFrameDataBlock(f) - cumx, err = block.Read(f, src, 0) - if err != nil { - break - } - // Recheck for an error as reading may be slow and uncompressing is expensive. - if b.ErrorR() != nil { - break - } - c := make(chan []byte) - blocks <- c - go func() { - data, err := block.Uncompress(f, size.Get(), false) - if err != nil { - b.closeR(err) - } else { - c <- data - } - }() - } - // End the collection loop and the data channel. - c := make(chan []byte) - blocks <- c - c <- nil // signal the collection loop that we are done - <-c // wait for the collect loop to complete - if f.isLegacy() && cum == cumx { - err = io.EOF - } - b.closeR(err) - close(data) - }() - // Collect the uncompressed blocks and make them available - // on the returned channel. - go func(leg bool) { - defer close(blocks) - for c := range blocks { - buf := <-c - if buf == nil { - // Signal to end the loop. - close(c) - return - } - // Perform checksum now as the blocks are received in order. - if f.Descriptor.Flags.ContentChecksum() { - _, _ = f.checksum.Write(buf) - } - if leg { - cum += uint32(len(buf)) - } - data <- buf - close(c) - } - }(f.isLegacy()) - return data, nil -} - -// closeR safely sets the error on b if not already set. -func (b *Blocks) closeR(err error) { - b.mu.Lock() - if b.err == nil { - b.err = err - } - b.mu.Unlock() -} - -func NewFrameDataBlock(f *Frame) *FrameDataBlock { - buf := f.Descriptor.Flags.BlockSizeIndex().Get() - return &FrameDataBlock{Data: buf, data: buf} -} - -type FrameDataBlock struct { - Size DataBlockSize - Data []byte // compressed or uncompressed data (.data or .src) - Checksum uint32 - data []byte // buffer for compressed data - src []byte // uncompressed data - err error // used in concurrent mode -} - -func (b *FrameDataBlock) Close(f *Frame) { - b.Size = 0 - b.Checksum = 0 - b.err = nil - if b.data != nil { - // Block was not already closed. - lz4block.Put(b.data) - b.Data = nil - b.data = nil - b.src = nil - } -} - -// Block compression errors are ignored since the buffer is sized appropriately. -func (b *FrameDataBlock) Compress(f *Frame, src []byte, level lz4block.CompressionLevel) *FrameDataBlock { - data := b.data - if f.isLegacy() { - data = data[:cap(data)] - } else { - data = data[:len(src)] // trigger the incompressible flag in CompressBlock - } - var n int - switch level { - case lz4block.Fast: - n, _ = lz4block.CompressBlock(src, data) - default: - n, _ = lz4block.CompressBlockHC(src, data, level) - } - if n == 0 { - b.Size.UncompressedSet(true) - b.Data = src - } else { - b.Size.UncompressedSet(false) - b.Data = data[:n] - } - b.Size.sizeSet(len(b.Data)) - b.src = src // keep track of the source for content checksum - - if f.Descriptor.Flags.BlockChecksum() { - b.Checksum = xxh32.ChecksumZero(src) - } - return b -} - -func (b *FrameDataBlock) Write(f *Frame, dst io.Writer) error { - // Write is called in the same order as blocks are compressed, - // so content checksum must be done here. - if f.Descriptor.Flags.ContentChecksum() { - _, _ = f.checksum.Write(b.src) - } - buf := f.buf[:] - binary.LittleEndian.PutUint32(buf, uint32(b.Size)) - if _, err := dst.Write(buf[:4]); err != nil { - return err - } - - if _, err := dst.Write(b.Data); err != nil { - return err - } - - if b.Checksum == 0 { - return nil - } - binary.LittleEndian.PutUint32(buf, b.Checksum) - _, err := dst.Write(buf[:4]) - return err -} - -// Read updates b with the next block data, size and checksum if available. -func (b *FrameDataBlock) Read(f *Frame, src io.Reader, cum uint32) (uint32, error) { - x, err := f.readUint32(src) - if err != nil { - return 0, err - } - if f.isLegacy() { - switch x { - case frameMagicLegacy: - // Concatenated legacy frame. - return b.Read(f, src, cum) - case cum: - // Only works in non concurrent mode, for concurrent mode - // it is handled separately. - // Linux kernel format appends the total uncompressed size at the end. - return 0, io.EOF - } - } else if x == 0 { - // Marker for end of stream. - return 0, io.EOF - } - b.Size = DataBlockSize(x) - - size := b.Size.size() - if size > cap(b.data) { - return x, lz4errors.ErrOptionInvalidBlockSize - } - b.data = b.data[:size] - if _, err := io.ReadFull(src, b.data); err != nil { - return x, err - } - if f.Descriptor.Flags.BlockChecksum() { - sum, err := f.readUint32(src) - if err != nil { - return 0, err - } - b.Checksum = sum - } - return x, nil -} - -func (b *FrameDataBlock) Uncompress(f *Frame, dst []byte, sum bool) ([]byte, error) { - if b.Size.Uncompressed() { - n := copy(dst, b.data) - dst = dst[:n] - } else { - n, err := lz4block.UncompressBlock(b.data, dst) - if err != nil { - return nil, err - } - dst = dst[:n] - } - if f.Descriptor.Flags.BlockChecksum() { - if c := xxh32.ChecksumZero(dst); c != b.Checksum { - err := fmt.Errorf("%w: got %x; expected %x", lz4errors.ErrInvalidBlockChecksum, c, b.Checksum) - return nil, err - } - } - if sum && f.Descriptor.Flags.ContentChecksum() { - _, _ = f.checksum.Write(dst) - } - return dst, nil -} - -func (f *Frame) readUint32(r io.Reader) (x uint32, err error) { - if _, err = io.ReadFull(r, f.buf[:4]); err != nil { - return - } - x = binary.LittleEndian.Uint32(f.buf[:4]) - return -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame.go deleted file mode 100644 index cfbd5674..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame.go +++ /dev/null @@ -1,200 +0,0 @@ -// Package lz4stream provides the types that support reading and writing LZ4 data streams. -package lz4stream - -import ( - "encoding/binary" - "fmt" - "io" - "io/ioutil" - - "github.com/pierrec/lz4/v4/internal/lz4block" - "github.com/pierrec/lz4/v4/internal/lz4errors" - "github.com/pierrec/lz4/v4/internal/xxh32" -) - -//go:generate go run gen.go - -const ( - frameMagic uint32 = 0x184D2204 - frameSkipMagic uint32 = 0x184D2A50 - frameMagicLegacy uint32 = 0x184C2102 -) - -func NewFrame() *Frame { - return &Frame{} -} - -type Frame struct { - buf [15]byte // frame descriptor needs at most 4(magic)+4+8+1=11 bytes - Magic uint32 - Descriptor FrameDescriptor - Blocks Blocks - Checksum uint32 - checksum xxh32.XXHZero -} - -// Reset allows reusing the Frame. -// The Descriptor configuration is not modified. -func (f *Frame) Reset(num int) { - f.Magic = 0 - f.Descriptor.Checksum = 0 - f.Descriptor.ContentSize = 0 - _ = f.Blocks.close(f, num) - f.Checksum = 0 -} - -func (f *Frame) InitW(dst io.Writer, num int, legacy bool) { - if legacy { - f.Magic = frameMagicLegacy - idx := lz4block.Index(lz4block.Block8Mb) - f.Descriptor.Flags.BlockSizeIndexSet(idx) - } else { - f.Magic = frameMagic - f.Descriptor.initW() - } - f.Blocks.initW(f, dst, num) - f.checksum.Reset() -} - -func (f *Frame) CloseW(dst io.Writer, num int) error { - if err := f.Blocks.close(f, num); err != nil { - return err - } - if f.isLegacy() { - return nil - } - buf := f.buf[:0] - // End mark (data block size of uint32(0)). - buf = append(buf, 0, 0, 0, 0) - if f.Descriptor.Flags.ContentChecksum() { - buf = f.checksum.Sum(buf) - } - _, err := dst.Write(buf) - return err -} - -func (f *Frame) isLegacy() bool { - return f.Magic == frameMagicLegacy -} - -func (f *Frame) InitR(src io.Reader, num int) (chan []byte, error) { - if f.Magic > 0 { - // Header already read. - return nil, nil - } - -newFrame: - var err error - if f.Magic, err = f.readUint32(src); err != nil { - return nil, err - } - switch m := f.Magic; { - case m == frameMagic || m == frameMagicLegacy: - // All 16 values of frameSkipMagic are valid. - case m>>8 == frameSkipMagic>>8: - skip, err := f.readUint32(src) - if err != nil { - return nil, err - } - if _, err := io.CopyN(ioutil.Discard, src, int64(skip)); err != nil { - return nil, err - } - goto newFrame - default: - return nil, lz4errors.ErrInvalidFrame - } - if err := f.Descriptor.initR(f, src); err != nil { - return nil, err - } - f.checksum.Reset() - return f.Blocks.initR(f, num, src) -} - -func (f *Frame) CloseR(src io.Reader) (err error) { - if f.isLegacy() { - return nil - } - if !f.Descriptor.Flags.ContentChecksum() { - return nil - } - if f.Checksum, err = f.readUint32(src); err != nil { - return err - } - if c := f.checksum.Sum32(); c != f.Checksum { - return fmt.Errorf("%w: got %x; expected %x", lz4errors.ErrInvalidFrameChecksum, c, f.Checksum) - } - return nil -} - -type FrameDescriptor struct { - Flags DescriptorFlags - ContentSize uint64 - Checksum uint8 -} - -func (fd *FrameDescriptor) initW() { - fd.Flags.VersionSet(1) - fd.Flags.BlockIndependenceSet(true) -} - -func (fd *FrameDescriptor) Write(f *Frame, dst io.Writer) error { - if fd.Checksum > 0 { - // Header already written. - return nil - } - - buf := f.buf[:4] - // Write the magic number here even though it belongs to the Frame. - binary.LittleEndian.PutUint32(buf, f.Magic) - if !f.isLegacy() { - buf = buf[:4+2] - binary.LittleEndian.PutUint16(buf[4:], uint16(fd.Flags)) - - if fd.Flags.Size() { - buf = buf[:4+2+8] - binary.LittleEndian.PutUint64(buf[4+2:], fd.ContentSize) - } - fd.Checksum = descriptorChecksum(buf[4:]) - buf = append(buf, fd.Checksum) - } - - _, err := dst.Write(buf) - return err -} - -func (fd *FrameDescriptor) initR(f *Frame, src io.Reader) error { - if f.isLegacy() { - idx := lz4block.Index(lz4block.Block8Mb) - f.Descriptor.Flags.BlockSizeIndexSet(idx) - return nil - } - // Read the flags and the checksum, hoping that there is not content size. - buf := f.buf[:3] - if _, err := io.ReadFull(src, buf); err != nil { - return err - } - descr := binary.LittleEndian.Uint16(buf) - fd.Flags = DescriptorFlags(descr) - if fd.Flags.Size() { - // Append the 8 missing bytes. - buf = buf[:3+8] - if _, err := io.ReadFull(src, buf[3:]); err != nil { - return err - } - fd.ContentSize = binary.LittleEndian.Uint64(buf[2:]) - } - fd.Checksum = buf[len(buf)-1] // the checksum is the last byte - buf = buf[:len(buf)-1] // all descriptor fields except checksum - if c := descriptorChecksum(buf); fd.Checksum != c { - return fmt.Errorf("%w: got %x; expected %x", lz4errors.ErrInvalidHeaderChecksum, c, fd.Checksum) - } - // Validate the elements that can be. - if idx := fd.Flags.BlockSizeIndex(); !idx.IsValid() { - return lz4errors.ErrOptionInvalidBlockSize - } - return nil -} - -func descriptorChecksum(buf []byte) byte { - return byte(xxh32.ChecksumZero(buf) >> 8) -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame_gen.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame_gen.go deleted file mode 100644 index c7d245f7..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/lz4stream/frame_gen.go +++ /dev/null @@ -1,105 +0,0 @@ -// Code generated by `gen.exe`. DO NOT EDIT. - -package lz4stream - -import "github.com/pierrec/lz4/v4/internal/lz4block" - -// DescriptorFlags is defined as follow: -// -// field bits -// ----- ---- -// _ 2 -// ContentChecksum 1 -// Size 1 -// BlockChecksum 1 -// BlockIndependence 1 -// Version 2 -// _ 4 -// BlockSizeIndex 3 -// _ 1 -type DescriptorFlags uint16 - -// Getters. -func (x DescriptorFlags) ContentChecksum() bool { return x>>2&1 != 0 } -func (x DescriptorFlags) Size() bool { return x>>3&1 != 0 } -func (x DescriptorFlags) BlockChecksum() bool { return x>>4&1 != 0 } -func (x DescriptorFlags) BlockIndependence() bool { return x>>5&1 != 0 } -func (x DescriptorFlags) Version() uint16 { return uint16(x >> 6 & 0x3) } -func (x DescriptorFlags) BlockSizeIndex() lz4block.BlockSizeIndex { - return lz4block.BlockSizeIndex(x >> 12 & 0x7) -} - -// Setters. -func (x *DescriptorFlags) ContentChecksumSet(v bool) *DescriptorFlags { - const b = 1 << 2 - if v { - *x = *x&^b | b - } else { - *x &^= b - } - return x -} -func (x *DescriptorFlags) SizeSet(v bool) *DescriptorFlags { - const b = 1 << 3 - if v { - *x = *x&^b | b - } else { - *x &^= b - } - return x -} -func (x *DescriptorFlags) BlockChecksumSet(v bool) *DescriptorFlags { - const b = 1 << 4 - if v { - *x = *x&^b | b - } else { - *x &^= b - } - return x -} -func (x *DescriptorFlags) BlockIndependenceSet(v bool) *DescriptorFlags { - const b = 1 << 5 - if v { - *x = *x&^b | b - } else { - *x &^= b - } - return x -} -func (x *DescriptorFlags) VersionSet(v uint16) *DescriptorFlags { - *x = *x&^(0x3<<6) | (DescriptorFlags(v) & 0x3 << 6) - return x -} -func (x *DescriptorFlags) BlockSizeIndexSet(v lz4block.BlockSizeIndex) *DescriptorFlags { - *x = *x&^(0x7<<12) | (DescriptorFlags(v) & 0x7 << 12) - return x -} - -// Code generated by `gen.exe`. DO NOT EDIT. - -// DataBlockSize is defined as follow: -// -// field bits -// ----- ---- -// size 31 -// Uncompressed 1 -type DataBlockSize uint32 - -// Getters. -func (x DataBlockSize) size() int { return int(x & 0x7FFFFFFF) } -func (x DataBlockSize) Uncompressed() bool { return x>>31&1 != 0 } - -// Setters. -func (x *DataBlockSize) sizeSet(v int) *DataBlockSize { - *x = *x&^0x7FFFFFFF | DataBlockSize(v)&0x7FFFFFFF - return x -} -func (x *DataBlockSize) UncompressedSet(v bool) *DataBlockSize { - const b = 1 << 31 - if v { - *x = *x&^b | b - } else { - *x &^= b - } - return x -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go deleted file mode 100644 index 8d3206a8..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go +++ /dev/null @@ -1,212 +0,0 @@ -// Package xxh32 implements the very fast XXH hashing algorithm (32 bits version). -// (https://github.com/Cyan4973/XXH/) -package xxh32 - -import ( - "encoding/binary" -) - -const ( - prime1 uint32 = 2654435761 - prime2 uint32 = 2246822519 - prime3 uint32 = 3266489917 - prime4 uint32 = 668265263 - prime5 uint32 = 374761393 - - primeMask = 0xFFFFFFFF - prime1plus2 = uint32((uint64(prime1) + uint64(prime2)) & primeMask) // 606290984 - prime1minus = uint32((-int64(prime1)) & primeMask) // 1640531535 -) - -// XXHZero represents an xxhash32 object with seed 0. -type XXHZero struct { - v [4]uint32 - totalLen uint64 - buf [16]byte - bufused int -} - -// Sum appends the current hash to b and returns the resulting slice. -// It does not change the underlying hash state. -func (xxh XXHZero) Sum(b []byte) []byte { - h32 := xxh.Sum32() - return append(b, byte(h32), byte(h32>>8), byte(h32>>16), byte(h32>>24)) -} - -// Reset resets the Hash to its initial state. -func (xxh *XXHZero) Reset() { - xxh.v[0] = prime1plus2 - xxh.v[1] = prime2 - xxh.v[2] = 0 - xxh.v[3] = prime1minus - xxh.totalLen = 0 - xxh.bufused = 0 -} - -// Size returns the number of bytes returned by Sum(). -func (xxh *XXHZero) Size() int { - return 4 -} - -// BlockSizeIndex gives the minimum number of bytes accepted by Write(). -func (xxh *XXHZero) BlockSize() int { - return 1 -} - -// Write adds input bytes to the Hash. -// It never returns an error. -func (xxh *XXHZero) Write(input []byte) (int, error) { - if xxh.totalLen == 0 { - xxh.Reset() - } - n := len(input) - m := xxh.bufused - - xxh.totalLen += uint64(n) - - r := len(xxh.buf) - m - if n < r { - copy(xxh.buf[m:], input) - xxh.bufused += len(input) - return n, nil - } - - var buf *[16]byte - if m != 0 { - // some data left from previous update - buf = &xxh.buf - c := copy(buf[m:], input) - n -= c - input = input[c:] - } - update(&xxh.v, buf, input) - xxh.bufused = copy(xxh.buf[:], input[n-n%16:]) - - return n, nil -} - -// Portable version of update. This updates v by processing all of buf -// (if not nil) and all full 16-byte blocks of input. -func updateGo(v *[4]uint32, buf *[16]byte, input []byte) { - // Causes compiler to work directly from registers instead of stack: - v1, v2, v3, v4 := v[0], v[1], v[2], v[3] - - if buf != nil { - v1 = rol13(v1+binary.LittleEndian.Uint32(buf[:])*prime2) * prime1 - v2 = rol13(v2+binary.LittleEndian.Uint32(buf[4:])*prime2) * prime1 - v3 = rol13(v3+binary.LittleEndian.Uint32(buf[8:])*prime2) * prime1 - v4 = rol13(v4+binary.LittleEndian.Uint32(buf[12:])*prime2) * prime1 - } - - for ; len(input) >= 16; input = input[16:] { - sub := input[:16] //BCE hint for compiler - v1 = rol13(v1+binary.LittleEndian.Uint32(sub[:])*prime2) * prime1 - v2 = rol13(v2+binary.LittleEndian.Uint32(sub[4:])*prime2) * prime1 - v3 = rol13(v3+binary.LittleEndian.Uint32(sub[8:])*prime2) * prime1 - v4 = rol13(v4+binary.LittleEndian.Uint32(sub[12:])*prime2) * prime1 - } - v[0], v[1], v[2], v[3] = v1, v2, v3, v4 -} - -// Sum32 returns the 32 bits Hash value. -func (xxh *XXHZero) Sum32() uint32 { - h32 := uint32(xxh.totalLen) - if h32 >= 16 { - h32 += rol1(xxh.v[0]) + rol7(xxh.v[1]) + rol12(xxh.v[2]) + rol18(xxh.v[3]) - } else { - h32 += prime5 - } - - p := 0 - n := xxh.bufused - buf := xxh.buf - for n := n - 4; p <= n; p += 4 { - h32 += binary.LittleEndian.Uint32(buf[p:p+4]) * prime3 - h32 = rol17(h32) * prime4 - } - for ; p < n; p++ { - h32 += uint32(buf[p]) * prime5 - h32 = rol11(h32) * prime1 - } - - h32 ^= h32 >> 15 - h32 *= prime2 - h32 ^= h32 >> 13 - h32 *= prime3 - h32 ^= h32 >> 16 - - return h32 -} - -// Portable version of ChecksumZero. -func checksumZeroGo(input []byte) uint32 { - n := len(input) - h32 := uint32(n) - - if n < 16 { - h32 += prime5 - } else { - v1 := prime1plus2 - v2 := prime2 - v3 := uint32(0) - v4 := prime1minus - p := 0 - for n := n - 16; p <= n; p += 16 { - sub := input[p:][:16] //BCE hint for compiler - v1 = rol13(v1+binary.LittleEndian.Uint32(sub[:])*prime2) * prime1 - v2 = rol13(v2+binary.LittleEndian.Uint32(sub[4:])*prime2) * prime1 - v3 = rol13(v3+binary.LittleEndian.Uint32(sub[8:])*prime2) * prime1 - v4 = rol13(v4+binary.LittleEndian.Uint32(sub[12:])*prime2) * prime1 - } - input = input[p:] - n -= p - h32 += rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - } - - p := 0 - for n := n - 4; p <= n; p += 4 { - h32 += binary.LittleEndian.Uint32(input[p:p+4]) * prime3 - h32 = rol17(h32) * prime4 - } - for p < n { - h32 += uint32(input[p]) * prime5 - h32 = rol11(h32) * prime1 - p++ - } - - h32 ^= h32 >> 15 - h32 *= prime2 - h32 ^= h32 >> 13 - h32 *= prime3 - h32 ^= h32 >> 16 - - return h32 -} - -func rol1(u uint32) uint32 { - return u<<1 | u>>31 -} - -func rol7(u uint32) uint32 { - return u<<7 | u>>25 -} - -func rol11(u uint32) uint32 { - return u<<11 | u>>21 -} - -func rol12(u uint32) uint32 { - return u<<12 | u>>20 -} - -func rol13(u uint32) uint32 { - return u<<13 | u>>19 -} - -func rol17(u uint32) uint32 { - return u<<17 | u>>15 -} - -func rol18(u uint32) uint32 { - return u<<18 | u>>14 -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.go deleted file mode 100644 index 6ea9e128..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !noasm -// +build !noasm - -package xxh32 - -// ChecksumZero returns the 32-bit hash of input. -// -//go:noescape -func ChecksumZero(input []byte) uint32 - -//go:noescape -func update(v *[4]uint32, buf *[16]byte, input []byte) diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.s b/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.s deleted file mode 100644 index 0e9f146a..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.s +++ /dev/null @@ -1,259 +0,0 @@ -// +build !noasm - -#include "textflag.h" - -#define prime1 $2654435761 -#define prime2 $2246822519 -#define prime3 $3266489917 -#define prime4 $668265263 -#define prime5 $374761393 - -#define prime1plus2 $606290984 -#define prime1minus $1640531535 - -// Register allocation. -#define p R0 -#define n R1 -#define h R2 -#define v1 R2 // Alias for h. -#define v2 R3 -#define v3 R4 -#define v4 R5 -#define x1 R6 -#define x2 R7 -#define x3 R8 -#define x4 R9 - -// We need the primes in registers. The 16-byte loop only uses prime{1,2}. -#define prime1r R11 -#define prime2r R12 -#define prime3r R3 // The rest can alias v{2-4}. -#define prime4r R4 -#define prime5r R5 - -// Update round macros. These read from and increment p. - -#define round16aligned \ - MOVM.IA.W (p), [x1, x2, x3, x4] \ - \ - MULA x1, prime2r, v1, v1 \ - MULA x2, prime2r, v2, v2 \ - MULA x3, prime2r, v3, v3 \ - MULA x4, prime2r, v4, v4 \ - \ - MOVW v1 @> 19, v1 \ - MOVW v2 @> 19, v2 \ - MOVW v3 @> 19, v3 \ - MOVW v4 @> 19, v4 \ - \ - MUL prime1r, v1 \ - MUL prime1r, v2 \ - MUL prime1r, v3 \ - MUL prime1r, v4 \ - -#define round16unaligned \ - MOVBU.P 16(p), x1 \ - MOVBU -15(p), x2 \ - ORR x2 << 8, x1 \ - MOVBU -14(p), x3 \ - MOVBU -13(p), x4 \ - ORR x4 << 8, x3 \ - ORR x3 << 16, x1 \ - \ - MULA x1, prime2r, v1, v1 \ - MOVW v1 @> 19, v1 \ - MUL prime1r, v1 \ - \ - MOVBU -12(p), x1 \ - MOVBU -11(p), x2 \ - ORR x2 << 8, x1 \ - MOVBU -10(p), x3 \ - MOVBU -9(p), x4 \ - ORR x4 << 8, x3 \ - ORR x3 << 16, x1 \ - \ - MULA x1, prime2r, v2, v2 \ - MOVW v2 @> 19, v2 \ - MUL prime1r, v2 \ - \ - MOVBU -8(p), x1 \ - MOVBU -7(p), x2 \ - ORR x2 << 8, x1 \ - MOVBU -6(p), x3 \ - MOVBU -5(p), x4 \ - ORR x4 << 8, x3 \ - ORR x3 << 16, x1 \ - \ - MULA x1, prime2r, v3, v3 \ - MOVW v3 @> 19, v3 \ - MUL prime1r, v3 \ - \ - MOVBU -4(p), x1 \ - MOVBU -3(p), x2 \ - ORR x2 << 8, x1 \ - MOVBU -2(p), x3 \ - MOVBU -1(p), x4 \ - ORR x4 << 8, x3 \ - ORR x3 << 16, x1 \ - \ - MULA x1, prime2r, v4, v4 \ - MOVW v4 @> 19, v4 \ - MUL prime1r, v4 \ - - -// func ChecksumZero([]byte) uint32 -TEXT ·ChecksumZero(SB), NOFRAME|NOSPLIT, $-4-16 - MOVW input_base+0(FP), p - MOVW input_len+4(FP), n - - MOVW prime1, prime1r - MOVW prime2, prime2r - - // Set up h for n < 16. It's tempting to say {ADD prime5, n, h} - // here, but that's a pseudo-op that generates a load through R11. - MOVW prime5, prime5r - ADD prime5r, n, h - CMP $0, n - BEQ end - - // We let n go negative so we can do comparisons with SUB.S - // instead of separate CMP. - SUB.S $16, n - BMI loop16done - - MOVW prime1plus2, v1 - MOVW prime2, v2 - MOVW $0, v3 - MOVW prime1minus, v4 - - TST $3, p - BNE loop16unaligned - -loop16aligned: - SUB.S $16, n - round16aligned - BPL loop16aligned - B loop16finish - -loop16unaligned: - SUB.S $16, n - round16unaligned - BPL loop16unaligned - -loop16finish: - MOVW v1 @> 31, h - ADD v2 @> 25, h - ADD v3 @> 20, h - ADD v4 @> 14, h - - // h += len(input) with v2 as temporary. - MOVW input_len+4(FP), v2 - ADD v2, h - -loop16done: - ADD $16, n // Restore number of bytes left. - - SUB.S $4, n - MOVW prime3, prime3r - BMI loop4done - MOVW prime4, prime4r - - TST $3, p - BNE loop4unaligned - -loop4aligned: - SUB.S $4, n - - MOVW.P 4(p), x1 - MULA prime3r, x1, h, h - MOVW h @> 15, h - MUL prime4r, h - - BPL loop4aligned - B loop4done - -loop4unaligned: - SUB.S $4, n - - MOVBU.P 4(p), x1 - MOVBU -3(p), x2 - ORR x2 << 8, x1 - MOVBU -2(p), x3 - ORR x3 << 16, x1 - MOVBU -1(p), x4 - ORR x4 << 24, x1 - - MULA prime3r, x1, h, h - MOVW h @> 15, h - MUL prime4r, h - - BPL loop4unaligned - -loop4done: - ADD.S $4, n // Restore number of bytes left. - BEQ end - - MOVW prime5, prime5r - -loop1: - SUB.S $1, n - - MOVBU.P 1(p), x1 - MULA prime5r, x1, h, h - MOVW h @> 21, h - MUL prime1r, h - - BNE loop1 - -end: - MOVW prime3, prime3r - EOR h >> 15, h - MUL prime2r, h - EOR h >> 13, h - MUL prime3r, h - EOR h >> 16, h - - MOVW h, ret+12(FP) - RET - - -// func update(v *[4]uint64, buf *[16]byte, p []byte) -TEXT ·update(SB), NOFRAME|NOSPLIT, $-4-20 - MOVW v+0(FP), p - MOVM.IA (p), [v1, v2, v3, v4] - - MOVW prime1, prime1r - MOVW prime2, prime2r - - // Process buf, if not nil. - MOVW buf+4(FP), p - CMP $0, p - BEQ noBuffered - - round16aligned - -noBuffered: - MOVW input_base +8(FP), p - MOVW input_len +12(FP), n - - SUB.S $16, n - BMI end - - TST $3, p - BNE loop16unaligned - -loop16aligned: - SUB.S $16, n - round16aligned - BPL loop16aligned - B end - -loop16unaligned: - SUB.S $16, n - round16unaligned - BPL loop16unaligned - -end: - MOVW v+0(FP), p - MOVM.IA [v1, v2, v3, v4], (p) - RET diff --git a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_other.go b/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_other.go deleted file mode 100644 index 054195f6..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_other.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build !arm || noasm -// +build !arm noasm - -package xxh32 - -// ChecksumZero returns the 32-bit hash of input. -func ChecksumZero(input []byte) uint32 { return checksumZeroGo(input) } - -func update(v *[4]uint32, buf *[16]byte, input []byte) { - updateGo(v, buf, input) -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/lz4.go b/backend/vendor/github.com/pierrec/lz4/v4/lz4.go deleted file mode 100644 index c585d406..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/lz4.go +++ /dev/null @@ -1,147 +0,0 @@ -// Package lz4 implements reading and writing lz4 compressed data. -// -// The package supports both the LZ4 stream format, -// as specified in http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html, -// and the LZ4 block format, defined at -// http://fastcompression.blogspot.fr/2011/05/lz4-explained.html. -// -// See https://github.com/lz4/lz4 for the reference C implementation. -package lz4 - -import ( - "github.com/pierrec/lz4/v4/internal/lz4block" - "github.com/pierrec/lz4/v4/internal/lz4errors" -) - -func _() { - // Safety checks for duplicated elements. - var x [1]struct{} - _ = x[lz4block.CompressionLevel(Fast)-lz4block.Fast] - _ = x[Block64Kb-BlockSize(lz4block.Block64Kb)] - _ = x[Block256Kb-BlockSize(lz4block.Block256Kb)] - _ = x[Block1Mb-BlockSize(lz4block.Block1Mb)] - _ = x[Block4Mb-BlockSize(lz4block.Block4Mb)] -} - -// CompressBlockBound returns the maximum size of a given buffer of size n, when not compressible. -func CompressBlockBound(n int) int { - return lz4block.CompressBlockBound(n) -} - -// UncompressBlock uncompresses the source buffer into the destination one, -// and returns the uncompressed size. -// -// The destination buffer must be sized appropriately. -// -// An error is returned if the source data is invalid or the destination buffer is too small. -func UncompressBlock(src, dst []byte) (int, error) { - return lz4block.UncompressBlock(src, dst) -} - -// A Compressor compresses data into the LZ4 block format. -// It uses a fast compression algorithm. -// -// A Compressor is not safe for concurrent use by multiple goroutines. -// -// Use a Writer to compress into the LZ4 stream format. -type Compressor struct{ c lz4block.Compressor } - -// CompressBlock compresses the source buffer src into the destination dst. -// -// If compression is successful, the first return value is the size of the -// compressed data, which is always >0. -// -// If dst has length at least CompressBlockBound(len(src)), compression always -// succeeds. Otherwise, the first return value is zero. The error return is -// non-nil if the compressed data does not fit in dst, but it might fit in a -// larger buffer that is still smaller than CompressBlockBound(len(src)). The -// return value (0, nil) means the data is likely incompressible and a buffer -// of length CompressBlockBound(len(src)) should be passed in. -func (c *Compressor) CompressBlock(src, dst []byte) (int, error) { - return c.c.CompressBlock(src, dst) -} - -// CompressBlock compresses the source buffer into the destination one. -// This is the fast version of LZ4 compression and also the default one. -// -// The argument hashTable is scratch space for a hash table used by the -// compressor. If provided, it should have length at least 1<<16. If it is -// shorter (or nil), CompressBlock allocates its own hash table. -// -// The size of the compressed data is returned. -// -// If the destination buffer size is lower than CompressBlockBound and -// the compressed size is 0 and no error, then the data is incompressible. -// -// An error is returned if the destination buffer is too small. - -// CompressBlock is equivalent to Compressor.CompressBlock. -// The final argument is ignored and should be set to nil. -// -// This function is deprecated. Use a Compressor instead. -func CompressBlock(src, dst []byte, _ []int) (int, error) { - return lz4block.CompressBlock(src, dst) -} - -// A CompressorHC compresses data into the LZ4 block format. -// Its compression ratio is potentially better than that of a Compressor, -// but it is also slower and requires more memory. -// -// A Compressor is not safe for concurrent use by multiple goroutines. -// -// Use a Writer to compress into the LZ4 stream format. -type CompressorHC struct { - // Level is the maximum search depth for compression. - // Values <= 0 mean no maximum. - Level CompressionLevel - c lz4block.CompressorHC -} - -// CompressBlock compresses the source buffer src into the destination dst. -// -// If compression is successful, the first return value is the size of the -// compressed data, which is always >0. -// -// If dst has length at least CompressBlockBound(len(src)), compression always -// succeeds. Otherwise, the first return value is zero. The error return is -// non-nil if the compressed data does not fit in dst, but it might fit in a -// larger buffer that is still smaller than CompressBlockBound(len(src)). The -// return value (0, nil) means the data is likely incompressible and a buffer -// of length CompressBlockBound(len(src)) should be passed in. -func (c *CompressorHC) CompressBlock(src, dst []byte) (int, error) { - return c.c.CompressBlock(src, dst, lz4block.CompressionLevel(c.Level)) -} - -// CompressBlockHC is equivalent to CompressorHC.CompressBlock. -// The final two arguments are ignored and should be set to nil. -// -// This function is deprecated. Use a CompressorHC instead. -func CompressBlockHC(src, dst []byte, depth CompressionLevel, _, _ []int) (int, error) { - return lz4block.CompressBlockHC(src, dst, lz4block.CompressionLevel(depth)) -} - -const ( - // ErrInvalidSourceShortBuffer is returned by UncompressBlock or CompressBLock when a compressed - // block is corrupted or the destination buffer is not large enough for the uncompressed data. - ErrInvalidSourceShortBuffer = lz4errors.ErrInvalidSourceShortBuffer - // ErrInvalidFrame is returned when reading an invalid LZ4 archive. - ErrInvalidFrame = lz4errors.ErrInvalidFrame - // ErrInternalUnhandledState is an internal error. - ErrInternalUnhandledState = lz4errors.ErrInternalUnhandledState - // ErrInvalidHeaderChecksum is returned when reading a frame. - ErrInvalidHeaderChecksum = lz4errors.ErrInvalidHeaderChecksum - // ErrInvalidBlockChecksum is returned when reading a frame. - ErrInvalidBlockChecksum = lz4errors.ErrInvalidBlockChecksum - // ErrInvalidFrameChecksum is returned when reading a frame. - ErrInvalidFrameChecksum = lz4errors.ErrInvalidFrameChecksum - // ErrOptionInvalidCompressionLevel is returned when the supplied compression level is invalid. - ErrOptionInvalidCompressionLevel = lz4errors.ErrOptionInvalidCompressionLevel - // ErrOptionClosedOrError is returned when an option is applied to a closed or in error object. - ErrOptionClosedOrError = lz4errors.ErrOptionClosedOrError - // ErrOptionInvalidBlockSize is returned when - ErrOptionInvalidBlockSize = lz4errors.ErrOptionInvalidBlockSize - // ErrOptionNotApplicable is returned when trying to apply an option to an object not supporting it. - ErrOptionNotApplicable = lz4errors.ErrOptionNotApplicable - // ErrWriterNotClosed is returned when attempting to reset an unclosed writer. - ErrWriterNotClosed = lz4errors.ErrWriterNotClosed -) diff --git a/backend/vendor/github.com/pierrec/lz4/v4/options.go b/backend/vendor/github.com/pierrec/lz4/v4/options.go deleted file mode 100644 index 4e1b6703..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/options.go +++ /dev/null @@ -1,213 +0,0 @@ -package lz4 - -import ( - "fmt" - "github.com/pierrec/lz4/v4/internal/lz4block" - "github.com/pierrec/lz4/v4/internal/lz4errors" - "reflect" - "runtime" -) - -//go:generate go run golang.org/x/tools/cmd/stringer -type=BlockSize,CompressionLevel -output options_gen.go - -type ( - applier interface { - Apply(...Option) error - private() - } - // Option defines the parameters to setup an LZ4 Writer or Reader. - Option func(applier) error -) - -// String returns a string representation of the option with its parameter(s). -func (o Option) String() string { - return o(nil).Error() -} - -// Default options. -var ( - DefaultBlockSizeOption = BlockSizeOption(Block4Mb) - DefaultChecksumOption = ChecksumOption(true) - DefaultConcurrency = ConcurrencyOption(1) - defaultOnBlockDone = OnBlockDoneOption(nil) -) - -const ( - Block64Kb BlockSize = 1 << (16 + iota*2) - Block256Kb - Block1Mb - Block4Mb -) - -// BlockSizeIndex defines the size of the blocks to be compressed. -type BlockSize uint32 - -// BlockSizeOption defines the maximum size of compressed blocks (default=Block4Mb). -func BlockSizeOption(size BlockSize) Option { - return func(a applier) error { - switch w := a.(type) { - case nil: - s := fmt.Sprintf("BlockSizeOption(%s)", size) - return lz4errors.Error(s) - case *Writer: - size := uint32(size) - if !lz4block.IsValid(size) { - return fmt.Errorf("%w: %d", lz4errors.ErrOptionInvalidBlockSize, size) - } - w.frame.Descriptor.Flags.BlockSizeIndexSet(lz4block.Index(size)) - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -// BlockChecksumOption enables or disables block checksum (default=false). -func BlockChecksumOption(flag bool) Option { - return func(a applier) error { - switch w := a.(type) { - case nil: - s := fmt.Sprintf("BlockChecksumOption(%v)", flag) - return lz4errors.Error(s) - case *Writer: - w.frame.Descriptor.Flags.BlockChecksumSet(flag) - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -// ChecksumOption enables/disables all blocks or content checksum (default=true). -func ChecksumOption(flag bool) Option { - return func(a applier) error { - switch w := a.(type) { - case nil: - s := fmt.Sprintf("ChecksumOption(%v)", flag) - return lz4errors.Error(s) - case *Writer: - w.frame.Descriptor.Flags.ContentChecksumSet(flag) - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -// SizeOption sets the size of the original uncompressed data (default=0). It is useful to know the size of the -// whole uncompressed data stream. -func SizeOption(size uint64) Option { - return func(a applier) error { - switch w := a.(type) { - case nil: - s := fmt.Sprintf("SizeOption(%d)", size) - return lz4errors.Error(s) - case *Writer: - w.frame.Descriptor.Flags.SizeSet(size > 0) - w.frame.Descriptor.ContentSize = size - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -// ConcurrencyOption sets the number of go routines used for compression. -// If n <= 0, then the output of runtime.GOMAXPROCS(0) is used. -func ConcurrencyOption(n int) Option { - if n <= 0 { - n = runtime.GOMAXPROCS(0) - } - return func(a applier) error { - switch rw := a.(type) { - case nil: - s := fmt.Sprintf("ConcurrencyOption(%d)", n) - return lz4errors.Error(s) - case *Writer: - rw.num = n - return nil - case *Reader: - rw.num = n - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -// CompressionLevel defines the level of compression to use. The higher the better, but slower, compression. -type CompressionLevel uint32 - -const ( - Fast CompressionLevel = 0 - Level1 CompressionLevel = 1 << (8 + iota) - Level2 - Level3 - Level4 - Level5 - Level6 - Level7 - Level8 - Level9 -) - -// CompressionLevelOption defines the compression level (default=Fast). -func CompressionLevelOption(level CompressionLevel) Option { - return func(a applier) error { - switch w := a.(type) { - case nil: - s := fmt.Sprintf("CompressionLevelOption(%s)", level) - return lz4errors.Error(s) - case *Writer: - switch level { - case Fast, Level1, Level2, Level3, Level4, Level5, Level6, Level7, Level8, Level9: - default: - return fmt.Errorf("%w: %d", lz4errors.ErrOptionInvalidCompressionLevel, level) - } - w.level = lz4block.CompressionLevel(level) - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -func onBlockDone(int) {} - -// OnBlockDoneOption is triggered when a block has been processed. For a Writer, it is when is has been compressed, -// for a Reader, it is when it has been uncompressed. -func OnBlockDoneOption(handler func(size int)) Option { - if handler == nil { - handler = onBlockDone - } - return func(a applier) error { - switch rw := a.(type) { - case nil: - s := fmt.Sprintf("OnBlockDoneOption(%s)", reflect.TypeOf(handler).String()) - return lz4errors.Error(s) - case *Writer: - rw.handler = handler - return nil - case *Reader: - rw.handler = handler - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} - -// LegacyOption provides support for writing LZ4 frames in the legacy format. -// -// See https://github.com/lz4/lz4/blob/dev/doc/lz4_Frame_format.md#legacy-frame. -// -// NB. compressed Linux kernel images use a tweaked LZ4 legacy format where -// the compressed stream is followed by the original (uncompressed) size of -// the kernel (https://events.static.linuxfound.org/sites/events/files/lcjpcojp13_klee.pdf). -// This is also supported as a special case. -func LegacyOption(legacy bool) Option { - return func(a applier) error { - switch rw := a.(type) { - case nil: - s := fmt.Sprintf("LegacyOption(%v)", legacy) - return lz4errors.Error(s) - case *Writer: - rw.legacy = legacy - return nil - } - return lz4errors.ErrOptionNotApplicable - } -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/options_gen.go b/backend/vendor/github.com/pierrec/lz4/v4/options_gen.go deleted file mode 100644 index 2de81490..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/options_gen.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by "stringer -type=BlockSize,CompressionLevel -output options_gen.go"; DO NOT EDIT. - -package lz4 - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[Block64Kb-65536] - _ = x[Block256Kb-262144] - _ = x[Block1Mb-1048576] - _ = x[Block4Mb-4194304] -} - -const ( - _BlockSize_name_0 = "Block64Kb" - _BlockSize_name_1 = "Block256Kb" - _BlockSize_name_2 = "Block1Mb" - _BlockSize_name_3 = "Block4Mb" -) - -func (i BlockSize) String() string { - switch { - case i == 65536: - return _BlockSize_name_0 - case i == 262144: - return _BlockSize_name_1 - case i == 1048576: - return _BlockSize_name_2 - case i == 4194304: - return _BlockSize_name_3 - default: - return "BlockSize(" + strconv.FormatInt(int64(i), 10) + ")" - } -} -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[Fast-0] - _ = x[Level1-512] - _ = x[Level2-1024] - _ = x[Level3-2048] - _ = x[Level4-4096] - _ = x[Level5-8192] - _ = x[Level6-16384] - _ = x[Level7-32768] - _ = x[Level8-65536] - _ = x[Level9-131072] -} - -const ( - _CompressionLevel_name_0 = "Fast" - _CompressionLevel_name_1 = "Level1" - _CompressionLevel_name_2 = "Level2" - _CompressionLevel_name_3 = "Level3" - _CompressionLevel_name_4 = "Level4" - _CompressionLevel_name_5 = "Level5" - _CompressionLevel_name_6 = "Level6" - _CompressionLevel_name_7 = "Level7" - _CompressionLevel_name_8 = "Level8" - _CompressionLevel_name_9 = "Level9" -) - -func (i CompressionLevel) String() string { - switch { - case i == 0: - return _CompressionLevel_name_0 - case i == 512: - return _CompressionLevel_name_1 - case i == 1024: - return _CompressionLevel_name_2 - case i == 2048: - return _CompressionLevel_name_3 - case i == 4096: - return _CompressionLevel_name_4 - case i == 8192: - return _CompressionLevel_name_5 - case i == 16384: - return _CompressionLevel_name_6 - case i == 32768: - return _CompressionLevel_name_7 - case i == 65536: - return _CompressionLevel_name_8 - case i == 131072: - return _CompressionLevel_name_9 - default: - return "CompressionLevel(" + strconv.FormatInt(int64(i), 10) + ")" - } -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/reader.go b/backend/vendor/github.com/pierrec/lz4/v4/reader.go deleted file mode 100644 index b1bff118..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/reader.go +++ /dev/null @@ -1,243 +0,0 @@ -package lz4 - -import ( - "io" - - "github.com/pierrec/lz4/v4/internal/lz4block" - "github.com/pierrec/lz4/v4/internal/lz4errors" - "github.com/pierrec/lz4/v4/internal/lz4stream" -) - -var readerStates = []aState{ - noState: newState, - errorState: newState, - newState: readState, - readState: closedState, - closedState: newState, -} - -// NewReader returns a new LZ4 frame decoder. -func NewReader(r io.Reader) *Reader { - return newReader(r, false) -} - -func newReader(r io.Reader, legacy bool) *Reader { - zr := &Reader{frame: lz4stream.NewFrame()} - zr.state.init(readerStates) - _ = zr.Apply(DefaultConcurrency, defaultOnBlockDone) - zr.Reset(r) - return zr -} - -// Reader allows reading an LZ4 stream. -type Reader struct { - state _State - src io.Reader // source reader - num int // concurrency level - frame *lz4stream.Frame // frame being read - data []byte // block buffer allocated in non concurrent mode - reads chan []byte // pending data - idx int // size of pending data - handler func(int) - cum uint32 -} - -func (*Reader) private() {} - -func (r *Reader) Apply(options ...Option) (err error) { - defer r.state.check(&err) - switch r.state.state { - case newState: - case errorState: - return r.state.err - default: - return lz4errors.ErrOptionClosedOrError - } - for _, o := range options { - if err = o(r); err != nil { - return - } - } - return -} - -// Size returns the size of the underlying uncompressed data, if set in the stream. -func (r *Reader) Size() int { - switch r.state.state { - case readState, closedState: - if r.frame.Descriptor.Flags.Size() { - return int(r.frame.Descriptor.ContentSize) - } - } - return 0 -} - -func (r *Reader) isNotConcurrent() bool { - return r.num == 1 -} - -func (r *Reader) init() error { - data, err := r.frame.InitR(r.src, r.num) - if err != nil { - return err - } - r.reads = data - r.idx = 0 - size := r.frame.Descriptor.Flags.BlockSizeIndex() - r.data = size.Get() - r.cum = 0 - return nil -} - -func (r *Reader) Read(buf []byte) (n int, err error) { - defer r.state.check(&err) - switch r.state.state { - case readState: - case closedState, errorState: - return 0, r.state.err - case newState: - // First initialization. - if err = r.init(); r.state.next(err) { - return - } - default: - return 0, r.state.fail() - } - for len(buf) > 0 { - var bn int - if r.idx == 0 { - if r.isNotConcurrent() { - bn, err = r.read(buf) - } else { - lz4block.Put(r.data) - r.data = <-r.reads - if len(r.data) == 0 { - // No uncompressed data: something went wrong or we are done. - err = r.frame.Blocks.ErrorR() - } - } - switch err { - case nil: - case io.EOF: - if er := r.frame.CloseR(r.src); er != nil { - err = er - } - lz4block.Put(r.data) - r.data = nil - return - default: - return - } - } - if bn == 0 { - // Fill buf with buffered data. - bn = copy(buf, r.data[r.idx:]) - r.idx += bn - if r.idx == len(r.data) { - // All data read, get ready for the next Read. - r.idx = 0 - } - } - buf = buf[bn:] - n += bn - r.handler(bn) - } - return -} - -// read uncompresses the next block as follow: -// - if buf has enough room, the block is uncompressed into it directly -// and the lenght of used space is returned -// - else, the uncompress data is stored in r.data and 0 is returned -func (r *Reader) read(buf []byte) (int, error) { - block := r.frame.Blocks.Block - _, err := block.Read(r.frame, r.src, r.cum) - if err != nil { - return 0, err - } - var direct bool - dst := r.data[:cap(r.data)] - if len(buf) >= len(dst) { - // Uncompress directly into buf. - direct = true - dst = buf - } - dst, err = block.Uncompress(r.frame, dst, true) - if err != nil { - return 0, err - } - r.cum += uint32(len(dst)) - if direct { - return len(dst), nil - } - r.data = dst - return 0, nil -} - -// Reset clears the state of the Reader r such that it is equivalent to its -// initial state from NewReader, but instead writing to writer. -// No access to reader is performed. -// -// w.Close must be called before Reset. -func (r *Reader) Reset(reader io.Reader) { - if r.data != nil { - lz4block.Put(r.data) - r.data = nil - } - r.frame.Reset(r.num) - r.state.reset() - r.src = reader - r.reads = nil -} - -// WriteTo efficiently uncompresses the data from the Reader underlying source to w. -func (r *Reader) WriteTo(w io.Writer) (n int64, err error) { - switch r.state.state { - case closedState, errorState: - return 0, r.state.err - case newState: - if err = r.init(); r.state.next(err) { - return - } - default: - return 0, r.state.fail() - } - defer r.state.nextd(&err) - - var data []byte - if r.isNotConcurrent() { - size := r.frame.Descriptor.Flags.BlockSizeIndex() - data = size.Get() - defer lz4block.Put(data) - } - for { - var bn int - var dst []byte - if r.isNotConcurrent() { - bn, err = r.read(data) - dst = data[:bn] - } else { - lz4block.Put(dst) - dst = <-r.reads - bn = len(dst) - if bn == 0 { - // No uncompressed data: something went wrong or we are done. - err = r.frame.Blocks.ErrorR() - } - } - switch err { - case nil: - case io.EOF: - err = r.frame.CloseR(r.src) - return - default: - return - } - r.handler(bn) - bn, err = w.Write(dst) - n += int64(bn) - if err != nil { - return - } - } -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/state.go b/backend/vendor/github.com/pierrec/lz4/v4/state.go deleted file mode 100644 index d94f04d0..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/state.go +++ /dev/null @@ -1,75 +0,0 @@ -package lz4 - -import ( - "errors" - "fmt" - "io" - - "github.com/pierrec/lz4/v4/internal/lz4errors" -) - -//go:generate go run golang.org/x/tools/cmd/stringer -type=aState -output state_gen.go - -const ( - noState aState = iota // uninitialized reader - errorState // unrecoverable error encountered - newState // instantiated object - readState // reading data - writeState // writing data - closedState // all done -) - -type ( - aState uint8 - _State struct { - states []aState - state aState - err error - } -) - -func (s *_State) init(states []aState) { - s.states = states - s.state = states[0] -} - -func (s *_State) reset() { - s.state = s.states[0] - s.err = nil -} - -// next sets the state to the next one unless it is passed a non nil error. -// It returns whether or not it is in error. -func (s *_State) next(err error) bool { - if err != nil { - s.err = fmt.Errorf("%s: %w", s.state, err) - s.state = errorState - return true - } - s.state = s.states[s.state] - return false -} - -// nextd is like next but for defers. -func (s *_State) nextd(errp *error) bool { - return errp != nil && s.next(*errp) -} - -// check sets s in error if not already in error and if the error is not nil or io.EOF, -func (s *_State) check(errp *error) { - if s.state == errorState || errp == nil { - return - } - if err := *errp; err != nil { - s.err = fmt.Errorf("%w[%s]", err, s.state) - if !errors.Is(err, io.EOF) { - s.state = errorState - } - } -} - -func (s *_State) fail() error { - s.state = errorState - s.err = fmt.Errorf("%w[%s]", lz4errors.ErrInternalUnhandledState, s.state) - return s.err -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/state_gen.go b/backend/vendor/github.com/pierrec/lz4/v4/state_gen.go deleted file mode 100644 index 75fb8289..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/state_gen.go +++ /dev/null @@ -1,28 +0,0 @@ -// Code generated by "stringer -type=aState -output state_gen.go"; DO NOT EDIT. - -package lz4 - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[noState-0] - _ = x[errorState-1] - _ = x[newState-2] - _ = x[readState-3] - _ = x[writeState-4] - _ = x[closedState-5] -} - -const _aState_name = "noStateerrorStatenewStatereadStatewriteStateclosedState" - -var _aState_index = [...]uint8{0, 7, 17, 25, 34, 44, 55} - -func (i aState) String() string { - if i >= aState(len(_aState_index)-1) { - return "aState(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _aState_name[_aState_index[i]:_aState_index[i+1]] -} diff --git a/backend/vendor/github.com/pierrec/lz4/v4/writer.go b/backend/vendor/github.com/pierrec/lz4/v4/writer.go deleted file mode 100644 index 44a43d25..00000000 --- a/backend/vendor/github.com/pierrec/lz4/v4/writer.go +++ /dev/null @@ -1,233 +0,0 @@ -package lz4 - -import ( - "io" - - "github.com/pierrec/lz4/v4/internal/lz4block" - "github.com/pierrec/lz4/v4/internal/lz4errors" - "github.com/pierrec/lz4/v4/internal/lz4stream" -) - -var writerStates = []aState{ - noState: newState, - newState: writeState, - writeState: closedState, - closedState: newState, - errorState: newState, -} - -// NewWriter returns a new LZ4 frame encoder. -func NewWriter(w io.Writer) *Writer { - zw := &Writer{frame: lz4stream.NewFrame()} - zw.state.init(writerStates) - _ = zw.Apply(DefaultBlockSizeOption, DefaultChecksumOption, DefaultConcurrency, defaultOnBlockDone) - zw.Reset(w) - return zw -} - -// Writer allows writing an LZ4 stream. -type Writer struct { - state _State - src io.Writer // destination writer - level lz4block.CompressionLevel // how hard to try - num int // concurrency level - frame *lz4stream.Frame // frame being built - data []byte // pending data - idx int // size of pending data - handler func(int) - legacy bool -} - -func (*Writer) private() {} - -func (w *Writer) Apply(options ...Option) (err error) { - defer w.state.check(&err) - switch w.state.state { - case newState: - case errorState: - return w.state.err - default: - return lz4errors.ErrOptionClosedOrError - } - for _, o := range options { - if err = o(w); err != nil { - return - } - } - w.Reset(w.src) - return -} - -func (w *Writer) isNotConcurrent() bool { - return w.num == 1 -} - -// init sets up the Writer when in newState. It does not change the Writer state. -func (w *Writer) init() error { - w.frame.InitW(w.src, w.num, w.legacy) - if true || !w.isNotConcurrent() { - size := w.frame.Descriptor.Flags.BlockSizeIndex() - w.data = size.Get() - } - w.idx = 0 - return w.frame.Descriptor.Write(w.frame, w.src) -} - -func (w *Writer) Write(buf []byte) (n int, err error) { - defer w.state.check(&err) - switch w.state.state { - case writeState: - case closedState, errorState: - return 0, w.state.err - case newState: - if err = w.init(); w.state.next(err) { - return - } - default: - return 0, w.state.fail() - } - - zn := len(w.data) - for len(buf) > 0 { - if w.idx == 0 && len(buf) >= zn { - // Avoid a copy as there is enough data for a block. - if err = w.write(buf[:zn], false); err != nil { - return - } - n += zn - buf = buf[zn:] - continue - } - // Accumulate the data to be compressed. - m := copy(w.data[w.idx:], buf) - n += m - w.idx += m - buf = buf[m:] - - if w.idx < len(w.data) { - // Buffer not filled. - return - } - - // Buffer full. - if err = w.write(w.data, true); err != nil { - return - } - if !w.isNotConcurrent() { - size := w.frame.Descriptor.Flags.BlockSizeIndex() - w.data = size.Get() - } - w.idx = 0 - } - return -} - -func (w *Writer) write(data []byte, safe bool) error { - if w.isNotConcurrent() { - block := w.frame.Blocks.Block - err := block.Compress(w.frame, data, w.level).Write(w.frame, w.src) - w.handler(len(block.Data)) - return err - } - c := make(chan *lz4stream.FrameDataBlock) - w.frame.Blocks.Blocks <- c - go func(c chan *lz4stream.FrameDataBlock, data []byte, safe bool) { - b := lz4stream.NewFrameDataBlock(w.frame) - c <- b.Compress(w.frame, data, w.level) - <-c - w.handler(len(b.Data)) - b.Close(w.frame) - if safe { - // safe to put it back as the last usage of it was FrameDataBlock.Write() called before c is closed - lz4block.Put(data) - } - }(c, data, safe) - - return nil -} - -// Close closes the Writer, flushing any unwritten data to the underlying io.Writer, -// but does not close the underlying io.Writer. -func (w *Writer) Close() (err error) { - switch w.state.state { - case writeState: - case errorState: - return w.state.err - default: - return nil - } - defer w.state.nextd(&err) - if w.idx > 0 { - // Flush pending data, disable w.data freeing as it is done later on. - if err = w.write(w.data[:w.idx], false); err != nil { - return err - } - w.idx = 0 - } - err = w.frame.CloseW(w.src, w.num) - // It is now safe to free the buffer. - if w.data != nil { - lz4block.Put(w.data) - w.data = nil - } - return -} - -// Reset clears the state of the Writer w such that it is equivalent to its -// initial state from NewWriter, but instead writing to writer. -// Reset keeps the previous options unless overwritten by the supplied ones. -// No access to writer is performed. -// -// w.Close must be called before Reset or pending data may be dropped. -func (w *Writer) Reset(writer io.Writer) { - w.frame.Reset(w.num) - w.state.reset() - w.src = writer -} - -// ReadFrom efficiently reads from r and compressed into the Writer destination. -func (w *Writer) ReadFrom(r io.Reader) (n int64, err error) { - switch w.state.state { - case closedState, errorState: - return 0, w.state.err - case newState: - if err = w.init(); w.state.next(err) { - return - } - default: - return 0, w.state.fail() - } - defer w.state.check(&err) - - size := w.frame.Descriptor.Flags.BlockSizeIndex() - var done bool - var rn int - data := size.Get() - if w.isNotConcurrent() { - // Keep the same buffer for the whole process. - defer lz4block.Put(data) - } - for !done { - rn, err = io.ReadFull(r, data) - switch err { - case nil: - case io.EOF, io.ErrUnexpectedEOF: // read may be partial - done = true - default: - return - } - n += int64(rn) - err = w.write(data[:rn], true) - if err != nil { - return - } - w.handler(rn) - if !done && !w.isNotConcurrent() { - // The buffer will be returned automatically by go routines (safe=true) - // so get a new one fo the next round. - data = size.Get() - } - } - err = w.Close() - return -} diff --git a/backend/vendor/github.com/pmezard/go-difflib/LICENSE b/backend/vendor/github.com/pmezard/go-difflib/LICENSE deleted file mode 100644 index c67dad61..00000000 --- a/backend/vendor/github.com/pmezard/go-difflib/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2013, Patrick Mezard -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - The names of its contributors may not be used to endorse or promote -products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/pmezard/go-difflib/difflib/difflib.go b/backend/vendor/github.com/pmezard/go-difflib/difflib/difflib.go deleted file mode 100644 index 2a73737a..00000000 --- a/backend/vendor/github.com/pmezard/go-difflib/difflib/difflib.go +++ /dev/null @@ -1,775 +0,0 @@ -// Package difflib is a partial port of Python difflib module. -// -// It provides tools to compare sequences of strings and generate textual diffs. -// -// The following class and functions have been ported: -// -// - SequenceMatcher -// -// - unified_diff -// -// - context_diff -// -// Getting unified diffs was the main goal of the port. Keep in mind this code -// is mostly suitable to output text differences in a human friendly way, there -// are no guarantees generated diffs are consumable by patch(1). -package difflib - -import ( - "bufio" - "bytes" - "fmt" - "io" - "strings" -) - -func min(a, b int) int { - if a < b { - return a - } - return b -} - -func max(a, b int) int { - if a > b { - return a - } - return b -} - -func calculateRatio(matches, length int) float64 { - if length > 0 { - return 2.0 * float64(matches) / float64(length) - } - return 1.0 -} - -type Match struct { - A int - B int - Size int -} - -type OpCode struct { - Tag byte - I1 int - I2 int - J1 int - J2 int -} - -// SequenceMatcher compares sequence of strings. The basic -// algorithm predates, and is a little fancier than, an algorithm -// published in the late 1980's by Ratcliff and Obershelp under the -// hyperbolic name "gestalt pattern matching". The basic idea is to find -// the longest contiguous matching subsequence that contains no "junk" -// elements (R-O doesn't address junk). The same idea is then applied -// recursively to the pieces of the sequences to the left and to the right -// of the matching subsequence. This does not yield minimal edit -// sequences, but does tend to yield matches that "look right" to people. -// -// SequenceMatcher tries to compute a "human-friendly diff" between two -// sequences. Unlike e.g. UNIX(tm) diff, the fundamental notion is the -// longest *contiguous* & junk-free matching subsequence. That's what -// catches peoples' eyes. The Windows(tm) windiff has another interesting -// notion, pairing up elements that appear uniquely in each sequence. -// That, and the method here, appear to yield more intuitive difference -// reports than does diff. This method appears to be the least vulnerable -// to synching up on blocks of "junk lines", though (like blank lines in -// ordinary text files, or maybe "

" lines in HTML files). That may be -// because this is the only method of the 3 that has a *concept* of -// "junk" . -// -// Timing: Basic R-O is cubic time worst case and quadratic time expected -// case. SequenceMatcher is quadratic time for the worst case and has -// expected-case behavior dependent in a complicated way on how many -// elements the sequences have in common; best case time is linear. -type SequenceMatcher struct { - a []string - b []string - b2j map[string][]int - IsJunk func(string) bool - autoJunk bool - bJunk map[string]struct{} - matchingBlocks []Match - fullBCount map[string]int - bPopular map[string]struct{} - opCodes []OpCode -} - -func NewMatcher(a, b []string) *SequenceMatcher { - m := SequenceMatcher{autoJunk: true} - m.SetSeqs(a, b) - return &m -} - -func NewMatcherWithJunk(a, b []string, autoJunk bool, - isJunk func(string) bool) *SequenceMatcher { - - m := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk} - m.SetSeqs(a, b) - return &m -} - -// Set two sequences to be compared. -func (m *SequenceMatcher) SetSeqs(a, b []string) { - m.SetSeq1(a) - m.SetSeq2(b) -} - -// Set the first sequence to be compared. The second sequence to be compared is -// not changed. -// -// SequenceMatcher computes and caches detailed information about the second -// sequence, so if you want to compare one sequence S against many sequences, -// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other -// sequences. -// -// See also SetSeqs() and SetSeq2(). -func (m *SequenceMatcher) SetSeq1(a []string) { - if &a == &m.a { - return - } - m.a = a - m.matchingBlocks = nil - m.opCodes = nil -} - -// Set the second sequence to be compared. The first sequence to be compared is -// not changed. -func (m *SequenceMatcher) SetSeq2(b []string) { - if &b == &m.b { - return - } - m.b = b - m.matchingBlocks = nil - m.opCodes = nil - m.fullBCount = nil - m.chainB() -} - -func (m *SequenceMatcher) chainB() { - // Populate line -> index mapping - b2j := map[string][]int{} - for i, s := range m.b { - indices := b2j[s] - indices = append(indices, i) - b2j[s] = indices - } - - // Purge junk elements - m.bJunk = map[string]struct{}{} - if m.IsJunk != nil { - junk := m.bJunk - for s, _ := range b2j { - if m.IsJunk(s) { - junk[s] = struct{}{} - } - } - for s, _ := range junk { - delete(b2j, s) - } - } - - // Purge remaining popular elements - popular := map[string]struct{}{} - n := len(m.b) - if m.autoJunk && n >= 200 { - ntest := n/100 + 1 - for s, indices := range b2j { - if len(indices) > ntest { - popular[s] = struct{}{} - } - } - for s, _ := range popular { - delete(b2j, s) - } - } - m.bPopular = popular - m.b2j = b2j -} - -func (m *SequenceMatcher) isBJunk(s string) bool { - _, ok := m.bJunk[s] - return ok -} - -// Find longest matching block in a[alo:ahi] and b[blo:bhi]. -// -// If IsJunk is not defined: -// -// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where -// -// alo <= i <= i+k <= ahi -// blo <= j <= j+k <= bhi -// -// and for all (i',j',k') meeting those conditions, -// -// k >= k' -// i <= i' -// and if i == i', j <= j' -// -// In other words, of all maximal matching blocks, return one that -// starts earliest in a, and of all those maximal matching blocks that -// start earliest in a, return the one that starts earliest in b. -// -// If IsJunk is defined, first the longest matching block is -// determined as above, but with the additional restriction that no -// junk element appears in the block. Then that block is extended as -// far as possible by matching (only) junk elements on both sides. So -// the resulting block never matches on junk except as identical junk -// happens to be adjacent to an "interesting" match. -// -// If no blocks match, return (alo, blo, 0). -func (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match { - // CAUTION: stripping common prefix or suffix would be incorrect. - // E.g., - // ab - // acab - // Longest matching block is "ab", but if common prefix is - // stripped, it's "a" (tied with "b"). UNIX(tm) diff does so - // strip, so ends up claiming that ab is changed to acab by - // inserting "ca" in the middle. That's minimal but unintuitive: - // "it's obvious" that someone inserted "ac" at the front. - // Windiff ends up at the same place as diff, but by pairing up - // the unique 'b's and then matching the first two 'a's. - besti, bestj, bestsize := alo, blo, 0 - - // find longest junk-free match - // during an iteration of the loop, j2len[j] = length of longest - // junk-free match ending with a[i-1] and b[j] - j2len := map[int]int{} - for i := alo; i != ahi; i++ { - // look at all instances of a[i] in b; note that because - // b2j has no junk keys, the loop is skipped if a[i] is junk - newj2len := map[int]int{} - for _, j := range m.b2j[m.a[i]] { - // a[i] matches b[j] - if j < blo { - continue - } - if j >= bhi { - break - } - k := j2len[j-1] + 1 - newj2len[j] = k - if k > bestsize { - besti, bestj, bestsize = i-k+1, j-k+1, k - } - } - j2len = newj2len - } - - // Extend the best by non-junk elements on each end. In particular, - // "popular" non-junk elements aren't in b2j, which greatly speeds - // the inner loop above, but also means "the best" match so far - // doesn't contain any junk *or* popular non-junk elements. - for besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) && - m.a[besti-1] == m.b[bestj-1] { - besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 - } - for besti+bestsize < ahi && bestj+bestsize < bhi && - !m.isBJunk(m.b[bestj+bestsize]) && - m.a[besti+bestsize] == m.b[bestj+bestsize] { - bestsize += 1 - } - - // Now that we have a wholly interesting match (albeit possibly - // empty!), we may as well suck up the matching junk on each - // side of it too. Can't think of a good reason not to, and it - // saves post-processing the (possibly considerable) expense of - // figuring out what to do with it. In the case of an empty - // interesting match, this is clearly the right thing to do, - // because no other kind of match is possible in the regions. - for besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) && - m.a[besti-1] == m.b[bestj-1] { - besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 - } - for besti+bestsize < ahi && bestj+bestsize < bhi && - m.isBJunk(m.b[bestj+bestsize]) && - m.a[besti+bestsize] == m.b[bestj+bestsize] { - bestsize += 1 - } - - return Match{A: besti, B: bestj, Size: bestsize} -} - -// Return list of triples describing matching subsequences. -// -// Each triple is of the form (i, j, n), and means that -// a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in -// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are -// adjacent triples in the list, and the second is not the last triple in the -// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe -// adjacent equal blocks. -// -// The last triple is a dummy, (len(a), len(b), 0), and is the only -// triple with n==0. -func (m *SequenceMatcher) GetMatchingBlocks() []Match { - if m.matchingBlocks != nil { - return m.matchingBlocks - } - - var matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match - matchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match { - match := m.findLongestMatch(alo, ahi, blo, bhi) - i, j, k := match.A, match.B, match.Size - if match.Size > 0 { - if alo < i && blo < j { - matched = matchBlocks(alo, i, blo, j, matched) - } - matched = append(matched, match) - if i+k < ahi && j+k < bhi { - matched = matchBlocks(i+k, ahi, j+k, bhi, matched) - } - } - return matched - } - matched := matchBlocks(0, len(m.a), 0, len(m.b), nil) - - // It's possible that we have adjacent equal blocks in the - // matching_blocks list now. - nonAdjacent := []Match{} - i1, j1, k1 := 0, 0, 0 - for _, b := range matched { - // Is this block adjacent to i1, j1, k1? - i2, j2, k2 := b.A, b.B, b.Size - if i1+k1 == i2 && j1+k1 == j2 { - // Yes, so collapse them -- this just increases the length of - // the first block by the length of the second, and the first - // block so lengthened remains the block to compare against. - k1 += k2 - } else { - // Not adjacent. Remember the first block (k1==0 means it's - // the dummy we started with), and make the second block the - // new block to compare against. - if k1 > 0 { - nonAdjacent = append(nonAdjacent, Match{i1, j1, k1}) - } - i1, j1, k1 = i2, j2, k2 - } - } - if k1 > 0 { - nonAdjacent = append(nonAdjacent, Match{i1, j1, k1}) - } - - nonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0}) - m.matchingBlocks = nonAdjacent - return m.matchingBlocks -} - -// Return list of 5-tuples describing how to turn a into b. -// -// Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple -// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the -// tuple preceding it, and likewise for j1 == the previous j2. -// -// The tags are characters, with these meanings: -// -// 'r' (replace): a[i1:i2] should be replaced by b[j1:j2] -// -// 'd' (delete): a[i1:i2] should be deleted, j1==j2 in this case. -// -// 'i' (insert): b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case. -// -// 'e' (equal): a[i1:i2] == b[j1:j2] -func (m *SequenceMatcher) GetOpCodes() []OpCode { - if m.opCodes != nil { - return m.opCodes - } - i, j := 0, 0 - matching := m.GetMatchingBlocks() - opCodes := make([]OpCode, 0, len(matching)) - for _, m := range matching { - // invariant: we've pumped out correct diffs to change - // a[:i] into b[:j], and the next matching block is - // a[ai:ai+size] == b[bj:bj+size]. So we need to pump - // out a diff to change a[i:ai] into b[j:bj], pump out - // the matching block, and move (i,j) beyond the match - ai, bj, size := m.A, m.B, m.Size - tag := byte(0) - if i < ai && j < bj { - tag = 'r' - } else if i < ai { - tag = 'd' - } else if j < bj { - tag = 'i' - } - if tag > 0 { - opCodes = append(opCodes, OpCode{tag, i, ai, j, bj}) - } - i, j = ai+size, bj+size - // the list of matching blocks is terminated by a - // sentinel with size 0 - if size > 0 { - opCodes = append(opCodes, OpCode{'e', ai, i, bj, j}) - } - } - m.opCodes = opCodes - return m.opCodes -} - -// Isolate change clusters by eliminating ranges with no changes. -// -// Return a generator of groups with up to n lines of context. -// Each group is in the same format as returned by GetOpCodes(). -func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { - if n < 0 { - n = 3 - } - codes := m.GetOpCodes() - if len(codes) == 0 { - codes = []OpCode{OpCode{'e', 0, 1, 0, 1}} - } - // Fixup leading and trailing groups if they show no changes. - if codes[0].Tag == 'e' { - c := codes[0] - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2} - } - if codes[len(codes)-1].Tag == 'e' { - c := codes[len(codes)-1] - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)} - } - nn := n + n - groups := [][]OpCode{} - group := []OpCode{} - for _, c := range codes { - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - // End the current group and start a new one whenever - // there is a large range with no changes. - if c.Tag == 'e' && i2-i1 > nn { - group = append(group, OpCode{c.Tag, i1, min(i2, i1+n), - j1, min(j2, j1+n)}) - groups = append(groups, group) - group = []OpCode{} - i1, j1 = max(i1, i2-n), max(j1, j2-n) - } - group = append(group, OpCode{c.Tag, i1, i2, j1, j2}) - } - if len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') { - groups = append(groups, group) - } - return groups -} - -// Return a measure of the sequences' similarity (float in [0,1]). -// -// Where T is the total number of elements in both sequences, and -// M is the number of matches, this is 2.0*M / T. -// Note that this is 1 if the sequences are identical, and 0 if -// they have nothing in common. -// -// .Ratio() is expensive to compute if you haven't already computed -// .GetMatchingBlocks() or .GetOpCodes(), in which case you may -// want to try .QuickRatio() or .RealQuickRation() first to get an -// upper bound. -func (m *SequenceMatcher) Ratio() float64 { - matches := 0 - for _, m := range m.GetMatchingBlocks() { - matches += m.Size - } - return calculateRatio(matches, len(m.a)+len(m.b)) -} - -// Return an upper bound on ratio() relatively quickly. -// -// This isn't defined beyond that it is an upper bound on .Ratio(), and -// is faster to compute. -func (m *SequenceMatcher) QuickRatio() float64 { - // viewing a and b as multisets, set matches to the cardinality - // of their intersection; this counts the number of matches - // without regard to order, so is clearly an upper bound - if m.fullBCount == nil { - m.fullBCount = map[string]int{} - for _, s := range m.b { - m.fullBCount[s] = m.fullBCount[s] + 1 - } - } - - // avail[x] is the number of times x appears in 'b' less the - // number of times we've seen it in 'a' so far ... kinda - avail := map[string]int{} - matches := 0 - for _, s := range m.a { - n, ok := avail[s] - if !ok { - n = m.fullBCount[s] - } - avail[s] = n - 1 - if n > 0 { - matches += 1 - } - } - return calculateRatio(matches, len(m.a)+len(m.b)) -} - -// Return an upper bound on ratio() very quickly. -// -// This isn't defined beyond that it is an upper bound on .Ratio(), and -// is faster to compute than either .Ratio() or .QuickRatio(). -func (m *SequenceMatcher) RealQuickRatio() float64 { - la, lb := len(m.a), len(m.b) - return calculateRatio(min(la, lb), la+lb) -} - -// Convert range to the "ed" format -func formatRangeUnified(start, stop int) string { - // Per the diff spec at http://www.unix.org/single_unix_specification/ - beginning := start + 1 // lines start numbering with one - length := stop - start - if length == 1 { - return fmt.Sprintf("%d", beginning) - } - if length == 0 { - beginning -= 1 // empty ranges begin at line just before the range - } - return fmt.Sprintf("%d,%d", beginning, length) -} - -// Unified diff parameters -type UnifiedDiff struct { - A []string // First sequence lines - FromFile string // First file name - FromDate string // First file time - B []string // Second sequence lines - ToFile string // Second file name - ToDate string // Second file time - Eol string // Headers end of line, defaults to LF - Context int // Number of context lines -} - -// Compare two sequences of lines; generate the delta as a unified diff. -// -// Unified diffs are a compact way of showing line changes and a few -// lines of context. The number of context lines is set by 'n' which -// defaults to three. -// -// By default, the diff control lines (those with ---, +++, or @@) are -// created with a trailing newline. This is helpful so that inputs -// created from file.readlines() result in diffs that are suitable for -// file.writelines() since both the inputs and outputs have trailing -// newlines. -// -// For inputs that do not have trailing newlines, set the lineterm -// argument to "" so that the output will be uniformly newline free. -// -// The unidiff format normally has a header for filenames and modification -// times. Any or all of these may be specified using strings for -// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'. -// The modification times are normally expressed in the ISO 8601 format. -func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { - buf := bufio.NewWriter(writer) - defer buf.Flush() - wf := func(format string, args ...interface{}) error { - _, err := buf.WriteString(fmt.Sprintf(format, args...)) - return err - } - ws := func(s string) error { - _, err := buf.WriteString(s) - return err - } - - if len(diff.Eol) == 0 { - diff.Eol = "\n" - } - - started := false - m := NewMatcher(diff.A, diff.B) - for _, g := range m.GetGroupedOpCodes(diff.Context) { - if !started { - started = true - fromDate := "" - if len(diff.FromDate) > 0 { - fromDate = "\t" + diff.FromDate - } - toDate := "" - if len(diff.ToDate) > 0 { - toDate = "\t" + diff.ToDate - } - if diff.FromFile != "" || diff.ToFile != "" { - err := wf("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) - if err != nil { - return err - } - err = wf("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) - if err != nil { - return err - } - } - } - first, last := g[0], g[len(g)-1] - range1 := formatRangeUnified(first.I1, last.I2) - range2 := formatRangeUnified(first.J1, last.J2) - if err := wf("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { - return err - } - for _, c := range g { - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - if c.Tag == 'e' { - for _, line := range diff.A[i1:i2] { - if err := ws(" " + line); err != nil { - return err - } - } - continue - } - if c.Tag == 'r' || c.Tag == 'd' { - for _, line := range diff.A[i1:i2] { - if err := ws("-" + line); err != nil { - return err - } - } - } - if c.Tag == 'r' || c.Tag == 'i' { - for _, line := range diff.B[j1:j2] { - if err := ws("+" + line); err != nil { - return err - } - } - } - } - } - return nil -} - -// Like WriteUnifiedDiff but returns the diff a string. -func GetUnifiedDiffString(diff UnifiedDiff) (string, error) { - w := &bytes.Buffer{} - err := WriteUnifiedDiff(w, diff) - return string(w.Bytes()), err -} - -// Convert range to the "ed" format. -func formatRangeContext(start, stop int) string { - // Per the diff spec at http://www.unix.org/single_unix_specification/ - beginning := start + 1 // lines start numbering with one - length := stop - start - if length == 0 { - beginning -= 1 // empty ranges begin at line just before the range - } - if length <= 1 { - return fmt.Sprintf("%d", beginning) - } - return fmt.Sprintf("%d,%d", beginning, beginning+length-1) -} - -type ContextDiff UnifiedDiff - -// Compare two sequences of lines; generate the delta as a context diff. -// -// Context diffs are a compact way of showing line changes and a few -// lines of context. The number of context lines is set by diff.Context -// which defaults to three. -// -// By default, the diff control lines (those with *** or ---) are -// created with a trailing newline. -// -// For inputs that do not have trailing newlines, set the diff.Eol -// argument to "" so that the output will be uniformly newline free. -// -// The context diff format normally has a header for filenames and -// modification times. Any or all of these may be specified using -// strings for diff.FromFile, diff.ToFile, diff.FromDate, diff.ToDate. -// The modification times are normally expressed in the ISO 8601 format. -// If not specified, the strings default to blanks. -func WriteContextDiff(writer io.Writer, diff ContextDiff) error { - buf := bufio.NewWriter(writer) - defer buf.Flush() - var diffErr error - wf := func(format string, args ...interface{}) { - _, err := buf.WriteString(fmt.Sprintf(format, args...)) - if diffErr == nil && err != nil { - diffErr = err - } - } - ws := func(s string) { - _, err := buf.WriteString(s) - if diffErr == nil && err != nil { - diffErr = err - } - } - - if len(diff.Eol) == 0 { - diff.Eol = "\n" - } - - prefix := map[byte]string{ - 'i': "+ ", - 'd': "- ", - 'r': "! ", - 'e': " ", - } - - started := false - m := NewMatcher(diff.A, diff.B) - for _, g := range m.GetGroupedOpCodes(diff.Context) { - if !started { - started = true - fromDate := "" - if len(diff.FromDate) > 0 { - fromDate = "\t" + diff.FromDate - } - toDate := "" - if len(diff.ToDate) > 0 { - toDate = "\t" + diff.ToDate - } - if diff.FromFile != "" || diff.ToFile != "" { - wf("*** %s%s%s", diff.FromFile, fromDate, diff.Eol) - wf("--- %s%s%s", diff.ToFile, toDate, diff.Eol) - } - } - - first, last := g[0], g[len(g)-1] - ws("***************" + diff.Eol) - - range1 := formatRangeContext(first.I1, last.I2) - wf("*** %s ****%s", range1, diff.Eol) - for _, c := range g { - if c.Tag == 'r' || c.Tag == 'd' { - for _, cc := range g { - if cc.Tag == 'i' { - continue - } - for _, line := range diff.A[cc.I1:cc.I2] { - ws(prefix[cc.Tag] + line) - } - } - break - } - } - - range2 := formatRangeContext(first.J1, last.J2) - wf("--- %s ----%s", range2, diff.Eol) - for _, c := range g { - if c.Tag == 'r' || c.Tag == 'i' { - for _, cc := range g { - if cc.Tag == 'd' { - continue - } - for _, line := range diff.B[cc.J1:cc.J2] { - ws(prefix[cc.Tag] + line) - } - } - break - } - } - } - return diffErr -} - -// Like WriteContextDiff but returns the diff a string. -func GetContextDiffString(diff ContextDiff) (string, error) { - w := &bytes.Buffer{} - err := WriteContextDiff(w, diff) - return string(w.Bytes()), err -} - -// Split a string on "\n" while preserving them. The output can be used -// as input for UnifiedDiff and ContextDiff structures. -func SplitLines(s string) []string { - lines := strings.SplitAfter(s, "\n") - lines[len(lines)-1] += "\n" - return lines -} diff --git a/backend/vendor/github.com/power-devops/perfstat/LICENSE b/backend/vendor/github.com/power-devops/perfstat/LICENSE deleted file mode 100644 index ec4e5d39..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -MIT License - -Copyright (c) 2020 Power DevOps - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - diff --git a/backend/vendor/github.com/power-devops/perfstat/c_helpers.c b/backend/vendor/github.com/power-devops/perfstat/c_helpers.c deleted file mode 100644 index 49ba1ad7..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/c_helpers.c +++ /dev/null @@ -1,159 +0,0 @@ -#include "c_helpers.h" - -GETFUNC(cpu) -GETFUNC(disk) -GETFUNC(diskadapter) -GETFUNC(diskpath) -GETFUNC(fcstat) -GETFUNC(logicalvolume) -GETFUNC(memory_page) -GETFUNC(netadapter) -GETFUNC(netbuffer) -GETFUNC(netinterface) -GETFUNC(pagingspace) -GETFUNC(process) -GETFUNC(thread) -GETFUNC(volumegroup) - -double get_partition_mhz(perfstat_partition_config_t pinfo) { - return pinfo.processorMHz; -} - -char *get_ps_hostname(perfstat_pagingspace_t *ps) { - return ps->u.nfs_paging.hostname; -} - -char *get_ps_filename(perfstat_pagingspace_t *ps) { - return ps->u.nfs_paging.filename; -} - -char *get_ps_vgname(perfstat_pagingspace_t *ps) { - return ps->u.lv_paging.vgname; -} - -time_t boottime() -{ - register struct utmpx *utmp; - - setutxent(); - while ( (utmp = getutxent()) != NULL ) { - if (utmp->ut_type == BOOT_TIME) { - return utmp->ut_tv.tv_sec; - } - } - endutxent(); - return -1; -} - -struct fsinfo *get_filesystem_stat(struct fsinfo *fs_all, int n) { - if (!fs_all) return NULL; - return &(fs_all[n]); -} - -int get_mounts(struct vmount **vmountpp) { - int size; - struct vmount *vm; - int nmounts; - - size = BUFSIZ; - - while (1) { - if ((vm = (struct vmount *)malloc((size_t)size)) == NULL) { - perror("malloc failed"); - exit(-1); - } - if ((nmounts = mntctl(MCTL_QUERY, size, (caddr_t)vm)) > 0) { - *vmountpp = vm; - return nmounts; - } else if (nmounts == 0) { - size = *(int *)vm; - free((void *)vm); - } else { - free((void *)vm); - return -1; - } - } -} - -void fill_fsinfo(struct statfs statbuf, struct fsinfo *fs) { - fsblkcnt_t freeblks, totblks, usedblks; - fsblkcnt_t tinodes, ninodes, ifree; - uint cfactor; - - if (statbuf.f_blocks == -1) { - fs->totalblks = 0; - fs->freeblks = 0; - fs->totalinodes = 0; - fs->freeinodes = 0; - return; - } - - cfactor = statbuf.f_bsize / 512; - fs->freeblks = statbuf.f_bavail * cfactor; - fs->totalblks = statbuf.f_blocks * cfactor; - - fs->freeinodes = statbuf.f_ffree; - fs->totalinodes = statbuf.f_files; - - if (fs->freeblks < 0) - fs->freeblks = 0; -} - -int getfsinfo(char *fsname, char *devname, char *host, char *options, int flags, int fstype, struct fsinfo *fs) { - struct statfs statbuf; - int devname_size = strlen(devname); - int fsname_size = strlen(fsname); - char buf[BUFSIZ]; - char *p; - - if (fs == NULL) { - return 1; - } - - for (p = strtok(options, ","); p != NULL; p = strtok(NULL, ",")) - if (strcmp(p, "ignore") == 0) - return 0; - - if (*host != 0 && strcmp(host, "-") != 0) { - sprintf(buf, "%s:%s", host, devname); - devname = buf; - } - fs->devname = (char *)calloc(devname_size+1, 1); - fs->fsname = (char *)calloc(fsname_size+1, 1); - strncpy(fs->devname, devname, devname_size); - strncpy(fs->fsname, fsname, fsname_size); - fs->flags = flags; - fs->fstype = fstype; - - if (statfs(fsname,&statbuf) < 0) { - return 1; - } - - fill_fsinfo(statbuf, fs); - return 0; -} - -struct fsinfo *get_all_fs(int *rc) { - struct vmount *mnt; - struct fsinfo *fs_all; - int nmounts; - - *rc = -1; - if ((nmounts = get_mounts(&mnt)) <= 0) { - perror("Can't get mount table info"); - return NULL; - } - - fs_all = (struct fsinfo *)calloc(sizeof(struct fsinfo), nmounts); - while ((*rc)++, nmounts--) { - getfsinfo(vmt2dataptr(mnt, VMT_STUB), - vmt2dataptr(mnt, VMT_OBJECT), - vmt2dataptr(mnt, VMT_HOST), - vmt2dataptr(mnt, VMT_ARGS), - mnt->vmt_flags, - mnt->vmt_gfstype, - &fs_all[*rc]); - mnt = (struct vmount *)((char *)mnt + mnt->vmt_length); - } - return fs_all; -} diff --git a/backend/vendor/github.com/power-devops/perfstat/c_helpers.h b/backend/vendor/github.com/power-devops/perfstat/c_helpers.h deleted file mode 100644 index b66bc53c..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/c_helpers.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef C_HELPERS_H -#define C_HELPERS_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define GETFUNC(TYPE) perfstat_##TYPE##_t *get_##TYPE##_stat(perfstat_##TYPE##_t *b, int n) { \ - if (!b) return NULL; \ - return &(b[n]); \ -} - -#define GETFUNC_EXT(TYPE) extern perfstat_##TYPE##_t *get_##TYPE##_stat(perfstat_##TYPE##_t *, int); - -GETFUNC_EXT(cpu) -GETFUNC_EXT(disk) -GETFUNC_EXT(diskadapter) -GETFUNC_EXT(diskpath) -GETFUNC_EXT(fcstat) -GETFUNC_EXT(logicalvolume) -GETFUNC_EXT(memory_page) -GETFUNC_EXT(netadapter) -GETFUNC_EXT(netbuffer) -GETFUNC_EXT(netinterface) -GETFUNC_EXT(pagingspace) -GETFUNC_EXT(process) -GETFUNC_EXT(thread) -GETFUNC_EXT(volumegroup) - -struct fsinfo { - char *devname; - char *fsname; - int flags; - int fstype; - unsigned long totalblks; - unsigned long freeblks; - unsigned long totalinodes; - unsigned long freeinodes; -}; - -extern double get_partition_mhz(perfstat_partition_config_t); -extern char *get_ps_hostname(perfstat_pagingspace_t *); -extern char *get_ps_filename(perfstat_pagingspace_t *); -extern char *get_ps_vgname(perfstat_pagingspace_t *); -extern time_t boottime(); -struct fsinfo *get_filesystem_stat(struct fsinfo *, int); -int get_mounts(struct vmount **); -void fill_statfs(struct statfs, struct fsinfo *); -int getfsinfo(char *, char *, char *, char *, int, int, struct fsinfo *); -struct fsinfo *get_all_fs(int *); - -#endif diff --git a/backend/vendor/github.com/power-devops/perfstat/config.go b/backend/vendor/github.com/power-devops/perfstat/config.go deleted file mode 100644 index a6df39c6..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/config.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -*/ -import "C" - -func EnableLVMStat() { - C.perfstat_config(C.PERFSTAT_ENABLE|C.PERFSTAT_LV|C.PERFSTAT_VG, nil) -} - -func DisableLVMStat() { - C.perfstat_config(C.PERFSTAT_DISABLE|C.PERFSTAT_LV|C.PERFSTAT_VG, nil) -} diff --git a/backend/vendor/github.com/power-devops/perfstat/cpustat.go b/backend/vendor/github.com/power-devops/perfstat/cpustat.go deleted file mode 100644 index 61937af8..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/cpustat.go +++ /dev/null @@ -1,99 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include -#include - -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "runtime" - "time" - "unsafe" -) - -func CpuStat() ([]CPU, error) { - var cpustat *C.perfstat_cpu_t - var cpu C.perfstat_id_t - - ncpu := runtime.NumCPU() - - cpustat_len := C.sizeof_perfstat_cpu_t * C.ulong(ncpu) - cpustat = (*C.perfstat_cpu_t)(C.malloc(cpustat_len)) - defer C.free(unsafe.Pointer(cpustat)) - C.strcpy(&cpu.name[0], C.CString(C.FIRST_CPU)) - r := C.perfstat_cpu(&cpu, cpustat, C.sizeof_perfstat_cpu_t, C.int(ncpu)) - if r <= 0 { - return nil, fmt.Errorf("error perfstat_cpu()") - } - c := make([]CPU, r) - for i := 0; i < int(r); i++ { - n := C.get_cpu_stat(cpustat, C.int(i)) - if n != nil { - c[i] = perfstatcpu2cpu(n) - } - } - return c, nil -} - -func CpuTotalStat() (*CPUTotal, error) { - var cpustat *C.perfstat_cpu_total_t - - cpustat = (*C.perfstat_cpu_total_t)(C.malloc(C.sizeof_perfstat_cpu_total_t)) - defer C.free(unsafe.Pointer(cpustat)) - r := C.perfstat_cpu_total(nil, cpustat, C.sizeof_perfstat_cpu_total_t, 1) - if r <= 0 { - return nil, fmt.Errorf("error perfstat_cpu_total()") - } - c := perfstatcputotal2cputotal(cpustat) - return &c, nil -} - -func CpuUtilStat(intvl time.Duration) (*CPUUtil, error) { - var cpuutil *C.perfstat_cpu_util_t - var newt *C.perfstat_cpu_total_t - var oldt *C.perfstat_cpu_total_t - var data C.perfstat_rawdata_t - - oldt = (*C.perfstat_cpu_total_t)(C.malloc(C.sizeof_perfstat_cpu_total_t)) - newt = (*C.perfstat_cpu_total_t)(C.malloc(C.sizeof_perfstat_cpu_total_t)) - cpuutil = (*C.perfstat_cpu_util_t)(C.malloc(C.sizeof_perfstat_cpu_util_t)) - defer C.free(unsafe.Pointer(oldt)) - defer C.free(unsafe.Pointer(newt)) - defer C.free(unsafe.Pointer(cpuutil)) - - r := C.perfstat_cpu_total(nil, oldt, C.sizeof_perfstat_cpu_total_t, 1) - if r <= 0 { - return nil, fmt.Errorf("error perfstat_cpu_total()") - } - - time.Sleep(intvl) - - r = C.perfstat_cpu_total(nil, newt, C.sizeof_perfstat_cpu_total_t, 1) - if r <= 0 { - return nil, fmt.Errorf("error perfstat_cpu_total()") - } - - data._type = C.UTIL_CPU_TOTAL - data.curstat = unsafe.Pointer(newt) - data.prevstat = unsafe.Pointer(oldt) - data.sizeof_data = C.sizeof_perfstat_cpu_total_t - data.cur_elems = 1 - data.prev_elems = 1 - - r = C.perfstat_cpu_util(&data, cpuutil, C.sizeof_perfstat_cpu_util_t, 1) - if r <= 0 { - return nil, fmt.Errorf("error perfstat_cpu_util()") - } - u := perfstatcpuutil2cpuutil(cpuutil) - return &u, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/diskstat.go b/backend/vendor/github.com/power-devops/perfstat/diskstat.go deleted file mode 100644 index 06763b4b..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/diskstat.go +++ /dev/null @@ -1,138 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include -#include -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "unsafe" -) - -func DiskTotalStat() (*DiskTotal, error) { - var disk C.perfstat_disk_total_t - - rc := C.perfstat_disk_total(nil, &disk, C.sizeof_perfstat_disk_total_t, 1) - if rc != 1 { - return nil, fmt.Errorf("perfstat_disk_total() error") - } - d := perfstatdisktotal2disktotal(disk) - return &d, nil -} - -func DiskAdapterStat() ([]DiskAdapter, error) { - var adapter *C.perfstat_diskadapter_t - var adptname C.perfstat_id_t - - numadpt := C.perfstat_diskadapter(nil, nil, C.sizeof_perfstat_diskadapter_t, 0) - if numadpt <= 0 { - return nil, fmt.Errorf("perfstat_diskadapter() error") - } - - adapter_len := C.sizeof_perfstat_diskadapter_t * C.ulong(numadpt) - adapter = (*C.perfstat_diskadapter_t)(C.malloc(adapter_len)) - defer C.free(unsafe.Pointer(adapter)) - C.strcpy(&adptname.name[0], C.CString(C.FIRST_DISKADAPTER)) - r := C.perfstat_diskadapter(&adptname, adapter, C.sizeof_perfstat_diskadapter_t, numadpt) - if r < 0 { - return nil, fmt.Errorf("perfstat_diskadapter() error") - } - da := make([]DiskAdapter, r) - for i := 0; i < int(r); i++ { - d := C.get_diskadapter_stat(adapter, C.int(i)) - if d != nil { - da[i] = perfstatdiskadapter2diskadapter(d) - } - } - return da, nil -} - -func DiskStat() ([]Disk, error) { - var disk *C.perfstat_disk_t - var diskname C.perfstat_id_t - - numdisk := C.perfstat_disk(nil, nil, C.sizeof_perfstat_disk_t, 0) - if numdisk <= 0 { - return nil, fmt.Errorf("perfstat_disk() error") - } - - disk_len := C.sizeof_perfstat_disk_t * C.ulong(numdisk) - disk = (*C.perfstat_disk_t)(C.malloc(disk_len)) - defer C.free(unsafe.Pointer(disk)) - C.strcpy(&diskname.name[0], C.CString(C.FIRST_DISK)) - r := C.perfstat_disk(&diskname, disk, C.sizeof_perfstat_disk_t, numdisk) - if r < 0 { - return nil, fmt.Errorf("perfstat_disk() error") - } - d := make([]Disk, r) - for i := 0; i < int(r); i++ { - ds := C.get_disk_stat(disk, C.int(i)) - if ds != nil { - d[i] = perfstatdisk2disk(ds) - } - } - return d, nil -} - -func DiskPathStat() ([]DiskPath, error) { - var diskpath *C.perfstat_diskpath_t - var pathname C.perfstat_id_t - - numpaths := C.perfstat_diskpath(nil, nil, C.sizeof_perfstat_diskpath_t, 0) - if numpaths <= 0 { - return nil, fmt.Errorf("perfstat_diskpath() error") - } - - path_len := C.sizeof_perfstat_diskpath_t * C.ulong(numpaths) - diskpath = (*C.perfstat_diskpath_t)(C.malloc(path_len)) - defer C.free(unsafe.Pointer(diskpath)) - C.strcpy(&pathname.name[0], C.CString(C.FIRST_DISKPATH)) - r := C.perfstat_diskpath(&pathname, diskpath, C.sizeof_perfstat_diskpath_t, numpaths) - if r < 0 { - return nil, fmt.Errorf("perfstat_diskpath() error") - } - d := make([]DiskPath, r) - for i := 0; i < int(r); i++ { - p := C.get_diskpath_stat(diskpath, C.int(i)) - if p != nil { - d[i] = perfstatdiskpath2diskpath(p) - } - } - return d, nil -} - -func FCAdapterStat() ([]FCAdapter, error) { - var fcstat *C.perfstat_fcstat_t - var fcname C.perfstat_id_t - - numadpt := C.perfstat_fcstat(nil, nil, C.sizeof_perfstat_fcstat_t, 0) - if numadpt <= 0 { - return nil, fmt.Errorf("perfstat_fcstat() error") - } - - fcstat_len := C.sizeof_perfstat_fcstat_t * C.ulong(numadpt) - fcstat = (*C.perfstat_fcstat_t)(C.malloc(fcstat_len)) - defer C.free(unsafe.Pointer(fcstat)) - C.strcpy(&fcname.name[0], C.CString(C.FIRST_NETINTERFACE)) - r := C.perfstat_fcstat(&fcname, fcstat, C.sizeof_perfstat_fcstat_t, numadpt) - if r < 0 { - return nil, fmt.Errorf("perfstat_fcstat() error") - } - fca := make([]FCAdapter, r) - for i := 0; i < int(r); i++ { - f := C.get_fcstat_stat(fcstat, C.int(i)) - if f != nil { - fca[i] = perfstatfcstat2fcadapter(f) - } - } - return fca, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/doc.go b/backend/vendor/github.com/power-devops/perfstat/doc.go deleted file mode 100644 index 9730a61c..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/doc.go +++ /dev/null @@ -1,316 +0,0 @@ -//go:build !aix -// +build !aix - -// Copyright 2020 Power-Devops.com. All rights reserved. -// Use of this source code is governed by the license -// that can be found in the LICENSE file. -/* -Package perfstat is Go interface to IBM AIX libperfstat. -To use it you need AIX with installed bos.perf.libperfstat. You can check, if is installed using the following command: - - $ lslpp -L bos.perf.perfstat - -The package is written using Go 1.14.7 and AIX 7.2 TL5. It should work with earlier TLs of AIX 7.2, but I -can't guarantee that perfstat structures in the TLs have all the same fields as the structures in AIX 7.2 TL5. - -For documentation of perfstat on AIX and using it in programs refer to the official IBM documentation: -https://www.ibm.com/support/knowledgecenter/ssw_aix_72/performancetools/idprftools_perfstat.html -*/ -package perfstat - -import ( - "fmt" - "time" -) - -// EnableLVMStat() switches on LVM (logical volumes and volume groups) performance statistics. -// With this enabled you can use fields KBReads, KBWrites, and IOCnt -// in LogicalVolume and VolumeGroup data types. -func EnableLVMStat() {} - -// DisableLVMStat() switchess of LVM (logical volumes and volume groups) performance statistics. -// This is the default state. In this case LogicalVolume and VolumeGroup data types are -// populated with informations about LVM structures, but performance statistics fields -// (KBReads, KBWrites, IOCnt) are empty. -func DisableLVMStat() {} - -// CpuStat() returns array of CPU structures with information about -// logical CPUs on the system. -// IBM documentation: -// - https://www.ibm.com/support/knowledgecenter/ssw_aix_72/performancetools/idprftools_perfstat_int_cpu.html -// - https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/p_bostechref/perfstat_cpu.html -func CpuStat() ([]CPU, error) { - return nil, fmt.Errorf("not implemented") -} - -// CpuTotalStat() returns general information about CPUs on the system. -// IBM documentation: -// - https://www.ibm.com/support/knowledgecenter/ssw_aix_72/performancetools/idprftools_perfstat_glob_cpu.html -// - https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/p_bostechref/perfstat_cputot.html -func CpuTotalStat() (*CPUTotal, error) { - return nil, fmt.Errorf("not implemented") -} - -// CpuUtilStat() calculates CPU utilization. -// IBM documentation: -// - https://www.ibm.com/support/knowledgecenter/ssw_aix_72/performancetools/idprftools_perfstat_cpu_util.html -// - https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/p_bostechref/perfstat_cpu_util.html -func CpuUtilStat(intvl time.Duration) (*CPUUtil, error) { - return nil, fmt.Errorf("not implemented") -} - -func DiskTotalStat() (*DiskTotal, error) { - return nil, fmt.Errorf("not implemented") -} - -func DiskAdapterStat() ([]DiskAdapter, error) { - return nil, fmt.Errorf("not implemented") -} - -func DiskStat() ([]Disk, error) { - return nil, fmt.Errorf("not implemented") -} - -func DiskPathStat() ([]DiskPath, error) { - return nil, fmt.Errorf("not implemented") -} - -func FCAdapterStat() ([]FCAdapter, error) { - return nil, fmt.Errorf("not implemented") -} - -func PartitionStat() (*PartitionConfig, error) { - return nil, fmt.Errorf("not implemented") -} - -func LogicalVolumeStat() ([]LogicalVolume, error) { - return nil, fmt.Errorf("not implemented") -} - -func VolumeGroupStat() ([]VolumeGroup, error) { - return nil, fmt.Errorf("not implemented") -} - -func MemoryTotalStat() (*MemoryTotal, error) { - return nil, fmt.Errorf("not implemented") -} - -func MemoryPageStat() ([]MemoryPage, error) { - return nil, fmt.Errorf("not implemented") -} - -func PagingSpaceStat() ([]PagingSpace, error) { - return nil, fmt.Errorf("not implemented") -} - -func NetIfaceTotalStat() (*NetIfaceTotal, error) { - return nil, fmt.Errorf("not implemented") -} - -func NetBufferStat() ([]NetBuffer, error) { - return nil, fmt.Errorf("not implemented") -} - -func NetIfaceStat() ([]NetIface, error) { - return nil, fmt.Errorf("not implemented") -} - -func NetAdapterStat() ([]NetAdapter, error) { - return nil, fmt.Errorf("not implemented") -} - -func ProcessStat() ([]Process, error) { - return nil, fmt.Errorf("not implemented") -} - -func ThreadStat() ([]Thread, error) { - return nil, fmt.Errorf("not implemented") -} - -func Sysconf(name int32) (int64, error) { - return 0, fmt.Errorf("not implemented") -} - -func GetCPUImplementation() string { - return "" -} - -func POWER9OrNewer() bool { - return false -} - -func POWER9() bool { - return false -} - -func POWER8OrNewer() bool { - return false -} - -func POWER8() bool { - return false -} - -func POWER7OrNewer() bool { - return false -} - -func POWER7() bool { - return false -} - -func HasTransactionalMemory() bool { - return false -} - -func Is64Bit() bool { - return false -} - -func IsSMP() bool { - return false -} - -func HasVMX() bool { - return false -} - -func HasVSX() bool { - return false -} - -func HasDFP() bool { - return false -} - -func HasNxGzip() bool { - return false -} - -func PksCapable() bool { - return false -} - -func PksEnabled() bool { - return false -} - -func CPUMode() string { - return "" -} - -func KernelBits() int { - return 0 -} - -func IsLPAR() bool { - return false -} - -func CpuAddCapable() bool { - return false -} - -func CpuRemoveCapable() bool { - return false -} - -func MemoryAddCapable() bool { - return false -} - -func MemoryRemoveCapable() bool { - return false -} - -func DLparCapable() bool { - return false -} - -func IsNUMA() bool { - return false -} - -func KernelKeys() bool { - return false -} - -func RecoveryMode() bool { - return false -} - -func EnhancedAffinity() bool { - return false -} - -func VTpmEnabled() bool { - return false -} - -func IsVIOS() bool { - return false -} - -func MLSEnabled() bool { - return false -} - -func SPLparCapable() bool { - return false -} - -func SPLparEnabled() bool { - return false -} - -func DedicatedLpar() bool { - return false -} - -func SPLparCapped() bool { - return false -} - -func SPLparDonating() bool { - return false -} - -func SmtCapable() bool { - return false -} - -func SmtEnabled() bool { - return false -} - -func VrmCapable() bool { - return false -} - -func VrmEnabled() bool { - return false -} - -func AmeEnabled() bool { - return false -} - -func EcoCapable() bool { - return false -} - -func EcoEnabled() bool { - return false -} - -func BootTime() (uint64, error) { - return 0, fmt.Errorf("Not implemented") -} - -func UptimeSeconds() (uint64, error) { - return 0, fmt.Errorf("Not implemented") -} - -func FileSystemStat() ([]FileSystem, error) { - return nil, fmt.Errorf("Not implemented") -} diff --git a/backend/vendor/github.com/power-devops/perfstat/fsstat.go b/backend/vendor/github.com/power-devops/perfstat/fsstat.go deleted file mode 100644 index d3913197..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/fsstat.go +++ /dev/null @@ -1,32 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" -) - -func FileSystemStat() ([]FileSystem, error) { - var fsinfo *C.struct_fsinfo - var nmounts C.int - - fsinfo = C.get_all_fs(&nmounts) - if nmounts <= 0 { - return nil, fmt.Errorf("No mounts found") - } - - fs := make([]FileSystem, nmounts) - for i := 0; i < int(nmounts); i++ { - f := C.get_filesystem_stat(fsinfo, C.int(i)) - if f != nil { - fs[i] = fsinfo2filesystem(f) - } - } - return fs, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/helpers.go b/backend/vendor/github.com/power-devops/perfstat/helpers.go deleted file mode 100644 index 3e3c1208..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/helpers.go +++ /dev/null @@ -1,765 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include - -#include "c_helpers.h" -*/ -import "C" - -func perfstatcpu2cpu(n *C.perfstat_cpu_t) CPU { - var c CPU - c.Name = C.GoString(&n.name[0]) - c.User = int64(n.user) - c.Sys = int64(n.sys) - c.Idle = int64(n.idle) - c.Wait = int64(n.wait) - c.PSwitch = int64(n.pswitch) - c.Syscall = int64(n.syscall) - c.Sysread = int64(n.sysread) - c.Syswrite = int64(n.syswrite) - c.Sysfork = int64(n.sysfork) - c.Sysexec = int64(n.sysexec) - c.Readch = int64(n.readch) - c.Writech = int64(n.writech) - c.Bread = int64(n.bread) - c.Bwrite = int64(n.bwrite) - c.Lread = int64(n.lread) - c.Lwrite = int64(n.lwrite) - c.Phread = int64(n.phread) - c.Phwrite = int64(n.phwrite) - c.Iget = int64(n.iget) - c.Namei = int64(n.namei) - c.Dirblk = int64(n.dirblk) - c.Msg = int64(n.msg) - c.Sema = int64(n.sema) - c.MinFaults = int64(n.minfaults) - c.MajFaults = int64(n.majfaults) - c.PUser = int64(n.puser) - c.PSys = int64(n.psys) - c.PIdle = int64(n.pidle) - c.PWait = int64(n.pwait) - c.RedispSD0 = int64(n.redisp_sd0) - c.RedispSD1 = int64(n.redisp_sd1) - c.RedispSD2 = int64(n.redisp_sd2) - c.RedispSD3 = int64(n.redisp_sd3) - c.RedispSD4 = int64(n.redisp_sd4) - c.RedispSD5 = int64(n.redisp_sd5) - c.MigrationPush = int64(n.migration_push) - c.MigrationS3grq = int64(n.migration_S3grq) - c.MigrationS3pul = int64(n.migration_S3pul) - c.InvolCSwitch = int64(n.invol_cswitch) - c.VolCSwitch = int64(n.vol_cswitch) - c.RunQueue = int64(n.runque) - c.Bound = int64(n.bound) - c.DecrIntrs = int64(n.decrintrs) - c.MpcRIntrs = int64(n.mpcrintrs) - c.MpcSIntrs = int64(n.mpcsintrs) - c.SoftIntrs = int64(n.softintrs) - c.DevIntrs = int64(n.devintrs) - c.PhantIntrs = int64(n.phantintrs) - c.IdleDonatedPurr = int64(n.idle_donated_purr) - c.IdleDonatedSpurr = int64(n.idle_donated_spurr) - c.BusyDonatedPurr = int64(n.busy_donated_purr) - c.BusyDonatedSpurr = int64(n.busy_donated_spurr) - c.IdleStolenPurr = int64(n.idle_stolen_purr) - c.IdleStolenSpurr = int64(n.idle_stolen_spurr) - c.BusyStolenPurr = int64(n.busy_stolen_purr) - c.BusyStolenSpurr = int64(n.busy_stolen_spurr) - c.Hpi = int64(n.hpi) - c.Hpit = int64(n.hpit) - c.PUserSpurr = int64(n.puser_spurr) - c.PSysSpurr = int64(n.psys_spurr) - c.PIdleSpurr = int64(n.pidle_spurr) - c.PWaitSpurr = int64(n.pwait_spurr) - c.SpurrFlag = int32(n.spurrflag) - c.LocalDispatch = int64(n.localdispatch) - c.NearDispatch = int64(n.neardispatch) - c.FarDispatch = int64(n.fardispatch) - c.CSwitches = int64(n.cswitches) - c.Version = int64(n.version) - c.TbLast = int64(n.tb_last) - c.State = int(n.state) - c.VtbLast = int64(n.vtb_last) - c.ICountLast = int64(n.icount_last) - return c -} - -func perfstatcputotal2cputotal(n *C.perfstat_cpu_total_t) CPUTotal { - var c CPUTotal - c.NCpus = int(n.ncpus) - c.NCpusCfg = int(n.ncpus_cfg) - c.Description = C.GoString(&n.description[0]) - c.ProcessorHz = int64(n.processorHZ) - c.User = int64(n.user) - c.Sys = int64(n.sys) - c.Idle = int64(n.idle) - c.Wait = int64(n.wait) - c.PSwitch = int64(n.pswitch) - c.Syscall = int64(n.syscall) - c.Sysread = int64(n.sysread) - c.Syswrite = int64(n.syswrite) - c.Sysfork = int64(n.sysfork) - c.Sysexec = int64(n.sysexec) - c.Readch = int64(n.readch) - c.Writech = int64(n.writech) - c.DevIntrs = int64(n.devintrs) - c.SoftIntrs = int64(n.softintrs) - c.Lbolt = int64(n.lbolt) - c.LoadAvg1 = (float32(n.loadavg[0]) / (1 << C.SBITS)) - c.LoadAvg5 = (float32(n.loadavg[1]) / (1 << C.SBITS)) - c.LoadAvg15 = (float32(n.loadavg[2]) / (1 << C.SBITS)) - c.RunQueue = int64(n.runque) - c.SwpQueue = int64(n.swpque) - c.Bread = int64(n.bread) - c.Bwrite = int64(n.bwrite) - c.Lread = int64(n.lread) - c.Lwrite = int64(n.lwrite) - c.Phread = int64(n.phread) - c.Phwrite = int64(n.phwrite) - c.RunOcc = int64(n.runocc) - c.SwpOcc = int64(n.swpocc) - c.Iget = int64(n.iget) - c.Namei = int64(n.namei) - c.Dirblk = int64(n.dirblk) - c.Msg = int64(n.msg) - c.Sema = int64(n.sema) - c.RcvInt = int64(n.rcvint) - c.XmtInt = int64(n.xmtint) - c.MdmInt = int64(n.mdmint) - c.TtyRawInch = int64(n.tty_rawinch) - c.TtyCanInch = int64(n.tty_caninch) - c.TtyRawOutch = int64(n.tty_rawoutch) - c.Ksched = int64(n.ksched) - c.Koverf = int64(n.koverf) - c.Kexit = int64(n.kexit) - c.Rbread = int64(n.rbread) - c.Rcread = int64(n.rcread) - c.Rbwrt = int64(n.rbwrt) - c.Rcwrt = int64(n.rcwrt) - c.Traps = int64(n.traps) - c.NCpusHigh = int64(n.ncpus_high) - c.PUser = int64(n.puser) - c.PSys = int64(n.psys) - c.PIdle = int64(n.pidle) - c.PWait = int64(n.pwait) - c.DecrIntrs = int64(n.decrintrs) - c.MpcRIntrs = int64(n.mpcrintrs) - c.MpcSIntrs = int64(n.mpcsintrs) - c.PhantIntrs = int64(n.phantintrs) - c.IdleDonatedPurr = int64(n.idle_donated_purr) - c.IdleDonatedSpurr = int64(n.idle_donated_spurr) - c.BusyDonatedPurr = int64(n.busy_donated_purr) - c.BusyDonatedSpurr = int64(n.busy_donated_spurr) - c.IdleStolenPurr = int64(n.idle_stolen_purr) - c.IdleStolenSpurr = int64(n.idle_stolen_spurr) - c.BusyStolenPurr = int64(n.busy_stolen_purr) - c.BusyStolenSpurr = int64(n.busy_stolen_spurr) - c.IOWait = int32(n.iowait) - c.PhysIO = int32(n.physio) - c.TWait = int64(n.twait) - c.Hpi = int64(n.hpi) - c.Hpit = int64(n.hpit) - c.PUserSpurr = int64(n.puser_spurr) - c.PSysSpurr = int64(n.psys_spurr) - c.PIdleSpurr = int64(n.pidle_spurr) - c.PWaitSpurr = int64(n.pwait_spurr) - c.SpurrFlag = int(n.spurrflag) - c.Version = int64(n.version) - c.TbLast = int64(n.tb_last) - c.PurrCoalescing = int64(n.purr_coalescing) - c.SpurrCoalescing = int64(n.spurr_coalescing) - return c -} - -func perfstatcpuutil2cpuutil(n *C.perfstat_cpu_util_t) CPUUtil { - var c CPUUtil - - c.Version = int64(n.version) - c.CpuID = C.GoString(&n.cpu_id[0]) - c.Entitlement = float32(n.entitlement) - c.UserPct = float32(n.user_pct) - c.KernPct = float32(n.kern_pct) - c.IdlePct = float32(n.idle_pct) - c.WaitPct = float32(n.wait_pct) - c.PhysicalBusy = float32(n.physical_busy) - c.PhysicalConsumed = float32(n.physical_consumed) - c.FreqPct = float32(n.freq_pct) - c.EntitlementPct = float32(n.entitlement_pct) - c.BusyPct = float32(n.busy_pct) - c.IdleDonatedPct = float32(n.idle_donated_pct) - c.BusyDonatedPct = float32(n.busy_donated_pct) - c.IdleStolenPct = float32(n.idle_stolen_pct) - c.BusyStolenPct = float32(n.busy_stolen_pct) - c.LUserPct = float32(n.l_user_pct) - c.LKernPct = float32(n.l_kern_pct) - c.LIdlePct = float32(n.l_idle_pct) - c.LWaitPct = float32(n.l_wait_pct) - c.DeltaTime = int64(n.delta_time) - - return c -} - -func perfstatdisktotal2disktotal(n C.perfstat_disk_total_t) DiskTotal { - var d DiskTotal - - d.Number = int32(n.number) - d.Size = int64(n.size) - d.Free = int64(n.free) - d.XRate = int64(n.xrate) - d.Xfers = int64(n.xfers) - d.Wblks = int64(n.wblks) - d.Rblks = int64(n.rblks) - d.Time = int64(n.time) - d.Version = int64(n.version) - d.Rserv = int64(n.rserv) - d.MinRserv = int64(n.min_rserv) - d.MaxRserv = int64(n.max_rserv) - d.RTimeOut = int64(n.rtimeout) - d.RFailed = int64(n.rfailed) - d.Wserv = int64(n.wserv) - d.MinWserv = int64(n.min_wserv) - d.MaxWserv = int64(n.max_wserv) - d.WTimeOut = int64(n.wtimeout) - d.WFailed = int64(n.wfailed) - d.WqDepth = int64(n.wq_depth) - d.WqTime = int64(n.wq_time) - d.WqMinTime = int64(n.wq_min_time) - d.WqMaxTime = int64(n.wq_max_time) - - return d -} - -func perfstatdiskadapter2diskadapter(n *C.perfstat_diskadapter_t) DiskAdapter { - var d DiskAdapter - - d.Name = C.GoString(&n.name[0]) - d.Description = C.GoString(&n.description[0]) - d.Number = int32(n.number) - d.Size = int64(n.size) - d.Free = int64(n.free) - d.XRate = int64(n.xrate) - d.Xfers = int64(n.xfers) - d.Rblks = int64(n.rblks) - d.Wblks = int64(n.wblks) - d.Time = int64(n.time) - d.Version = int64(n.version) - d.AdapterType = int64(n.adapter_type) - d.DkBSize = int64(n.dk_bsize) - d.DkRserv = int64(n.dk_rserv) - d.DkWserv = int64(n.dk_wserv) - d.MinRserv = int64(n.min_rserv) - d.MaxRserv = int64(n.max_rserv) - d.MinWserv = int64(n.min_wserv) - d.MaxWserv = int64(n.max_wserv) - d.WqDepth = int64(n.wq_depth) - d.WqSampled = int64(n.wq_sampled) - d.WqTime = int64(n.wq_time) - d.WqMinTime = int64(n.wq_min_time) - d.WqMaxTime = int64(n.wq_max_time) - d.QFull = int64(n.q_full) - d.QSampled = int64(n.q_sampled) - - return d -} - -func perfstatpartitionconfig2partitionconfig(n C.perfstat_partition_config_t) PartitionConfig { - var p PartitionConfig - p.Version = int64(n.version) - p.Name = C.GoString(&n.partitionname[0]) - p.Node = C.GoString(&n.nodename[0]) - p.Conf.SmtCapable = (n.conf[0] & (1 << 7)) > 0 - p.Conf.SmtEnabled = (n.conf[0] & (1 << 6)) > 0 - p.Conf.LparCapable = (n.conf[0] & (1 << 5)) > 0 - p.Conf.LparEnabled = (n.conf[0] & (1 << 4)) > 0 - p.Conf.SharedCapable = (n.conf[0] & (1 << 3)) > 0 - p.Conf.SharedEnabled = (n.conf[0] & (1 << 2)) > 0 - p.Conf.DLparCapable = (n.conf[0] & (1 << 1)) > 0 - p.Conf.Capped = (n.conf[0] & (1 << 0)) > 0 - p.Conf.Kernel64bit = (n.conf[1] & (1 << 7)) > 0 - p.Conf.PoolUtilAuthority = (n.conf[1] & (1 << 6)) > 0 - p.Conf.DonateCapable = (n.conf[1] & (1 << 5)) > 0 - p.Conf.DonateEnabled = (n.conf[1] & (1 << 4)) > 0 - p.Conf.AmsCapable = (n.conf[1] & (1 << 3)) > 0 - p.Conf.AmsEnabled = (n.conf[1] & (1 << 2)) > 0 - p.Conf.PowerSave = (n.conf[1] & (1 << 1)) > 0 - p.Conf.AmeEnabled = (n.conf[1] & (1 << 0)) > 0 - p.Conf.SharedExtended = (n.conf[2] & (1 << 7)) > 0 - p.Number = int32(n.partitionnum) - p.GroupID = int32(n.groupid) - p.ProcessorFamily = C.GoString(&n.processorFamily[0]) - p.ProcessorModel = C.GoString(&n.processorModel[0]) - p.MachineID = C.GoString(&n.machineID[0]) - p.ProcessorMhz = float64(C.get_partition_mhz(n)) - p.NumProcessors.Online = int64(n.numProcessors.online) - p.NumProcessors.Max = int64(n.numProcessors.max) - p.NumProcessors.Min = int64(n.numProcessors.min) - p.NumProcessors.Desired = int64(n.numProcessors.desired) - p.OSName = C.GoString(&n.OSName[0]) - p.OSVersion = C.GoString(&n.OSVersion[0]) - p.OSBuild = C.GoString(&n.OSBuild[0]) - p.LCpus = int32(n.lcpus) - p.SmtThreads = int32(n.smtthreads) - p.Drives = int32(n.drives) - p.NetworkAdapters = int32(n.nw_adapters) - p.CpuCap.Online = int64(n.cpucap.online) - p.CpuCap.Max = int64(n.cpucap.max) - p.CpuCap.Min = int64(n.cpucap.min) - p.CpuCap.Desired = int64(n.cpucap.desired) - p.Weightage = int32(n.cpucap_weightage) - p.EntCapacity = int32(n.entitled_proc_capacity) - p.VCpus.Online = int64(n.vcpus.online) - p.VCpus.Max = int64(n.vcpus.max) - p.VCpus.Min = int64(n.vcpus.min) - p.VCpus.Desired = int64(n.vcpus.desired) - p.PoolID = int32(n.processor_poolid) - p.ActiveCpusInPool = int32(n.activecpusinpool) - p.PoolWeightage = int32(n.cpupool_weightage) - p.SharedPCpu = int32(n.sharedpcpu) - p.MaxPoolCap = int32(n.maxpoolcap) - p.EntPoolCap = int32(n.entpoolcap) - p.Mem.Online = int64(n.mem.online) - p.Mem.Max = int64(n.mem.max) - p.Mem.Min = int64(n.mem.min) - p.Mem.Desired = int64(n.mem.desired) - p.MemWeightage = int32(n.mem_weightage) - p.TotalIOMemoryEntitlement = int64(n.totiomement) - p.MemPoolID = int32(n.mempoolid) - p.HyperPgSize = int64(n.hyperpgsize) - p.ExpMem.Online = int64(n.exp_mem.online) - p.ExpMem.Max = int64(n.exp_mem.max) - p.ExpMem.Min = int64(n.exp_mem.min) - p.ExpMem.Desired = int64(n.exp_mem.desired) - p.TargetMemExpFactor = int64(n.targetmemexpfactor) - p.TargetMemExpSize = int64(n.targetmemexpsize) - p.SubProcessorMode = int32(n.subprocessor_mode) - return p -} - -func perfstatmemorytotal2memorytotal(n C.perfstat_memory_total_t) MemoryTotal { - var m MemoryTotal - m.VirtualTotal = int64(n.virt_total) - m.RealTotal = int64(n.real_total) - m.RealFree = int64(n.real_free) - m.RealPinned = int64(n.real_pinned) - m.RealInUse = int64(n.real_inuse) - m.BadPages = int64(n.pgbad) - m.PageFaults = int64(n.pgexct) - m.PageIn = int64(n.pgins) - m.PageOut = int64(n.pgouts) - m.PgSpIn = int64(n.pgspins) - m.PgSpOut = int64(n.pgspouts) - m.Scans = int64(n.scans) - m.Cycles = int64(n.cycles) - m.PgSteals = int64(n.pgsteals) - m.NumPerm = int64(n.numperm) - m.PgSpTotal = int64(n.pgsp_total) - m.PgSpFree = int64(n.pgsp_free) - m.PgSpRsvd = int64(n.pgsp_rsvd) - m.RealSystem = int64(n.real_system) - m.RealUser = int64(n.real_user) - m.RealProcess = int64(n.real_process) - m.VirtualActive = int64(n.virt_active) - m.IOME = int64(n.iome) - m.IOMU = int64(n.iomu) - m.IOHWM = int64(n.iohwm) - m.PMem = int64(n.pmem) - m.CompressedTotal = int64(n.comprsd_total) - m.CompressedWSegPg = int64(n.comprsd_wseg_pgs) - m.CPgIn = int64(n.cpgins) - m.CPgOut = int64(n.cpgouts) - m.TrueSize = int64(n.true_size) - m.ExpandedMemory = int64(n.expanded_memory) - m.CompressedWSegSize = int64(n.comprsd_wseg_size) - m.TargetCPoolSize = int64(n.target_cpool_size) - m.MaxCPoolSize = int64(n.max_cpool_size) - m.MinUCPoolSize = int64(n.min_ucpool_size) - m.CPoolSize = int64(n.cpool_size) - m.UCPoolSize = int64(n.ucpool_size) - m.CPoolInUse = int64(n.cpool_inuse) - m.UCPoolInUse = int64(n.ucpool_inuse) - m.Version = int64(n.version) - m.RealAvailable = int64(n.real_avail) - m.BytesCoalesced = int64(n.bytes_coalesced) - m.BytesCoalescedMemPool = int64(n.bytes_coalesced_mempool) - - return m -} - -func perfstatnetinterfacetotal2netifacetotal(n C.perfstat_netinterface_total_t) NetIfaceTotal { - var i NetIfaceTotal - - i.Number = int32(n.number) - i.IPackets = int64(n.ipackets) - i.IBytes = int64(n.ibytes) - i.IErrors = int64(n.ierrors) - i.OPackets = int64(n.opackets) - i.OBytes = int64(n.obytes) - i.OErrors = int64(n.oerrors) - i.Collisions = int64(n.collisions) - i.XmitDrops = int64(n.xmitdrops) - i.Version = int64(n.version) - - return i -} - -func perfstatdisk2disk(n *C.perfstat_disk_t) Disk { - var d Disk - - d.Name = C.GoString(&n.name[0]) - d.Description = C.GoString(&n.description[0]) - d.VGName = C.GoString(&n.vgname[0]) - d.Size = int64(n.size) - d.Free = int64(n.free) - d.BSize = int64(n.bsize) - d.XRate = int64(n.xrate) - d.Xfers = int64(n.xfers) - d.Wblks = int64(n.wblks) - d.Rblks = int64(n.rblks) - d.QDepth = int64(n.qdepth) - d.Time = int64(n.time) - d.Adapter = C.GoString(&n.adapter[0]) - d.PathsCount = int32(n.paths_count) - d.QFull = int64(n.q_full) - d.Rserv = int64(n.rserv) - d.RTimeOut = int64(n.rtimeout) - d.Rfailed = int64(n.rfailed) - d.MinRserv = int64(n.min_rserv) - d.MaxRserv = int64(n.max_rserv) - d.Wserv = int64(n.wserv) - d.WTimeOut = int64(n.wtimeout) - d.Wfailed = int64(n.wfailed) - d.MinWserv = int64(n.min_wserv) - d.MaxWserv = int64(n.max_wserv) - d.WqDepth = int64(n.wq_depth) - d.WqSampled = int64(n.wq_sampled) - d.WqTime = int64(n.wq_time) - d.WqMinTime = int64(n.wq_min_time) - d.WqMaxTime = int64(n.wq_max_time) - d.QSampled = int64(n.q_sampled) - d.Version = int64(n.version) - d.PseudoDisk = (n.dk_type[0] & (1 << 7)) > 0 - d.VTDisk = (n.dk_type[0] & (1 << 6)) > 0 - - return d -} - -func perfstatdiskpath2diskpath(n *C.perfstat_diskpath_t) DiskPath { - var d DiskPath - - d.Name = C.GoString(&n.name[0]) - d.XRate = int64(n.xrate) - d.Xfers = int64(n.xfers) - d.Rblks = int64(n.rblks) - d.Wblks = int64(n.wblks) - d.Time = int64(n.time) - d.Adapter = C.GoString(&n.adapter[0]) - d.QFull = int64(n.q_full) - d.Rserv = int64(n.rserv) - d.RTimeOut = int64(n.rtimeout) - d.Rfailed = int64(n.rfailed) - d.MinRserv = int64(n.min_rserv) - d.MaxRserv = int64(n.max_rserv) - d.Wserv = int64(n.wserv) - d.WTimeOut = int64(n.wtimeout) - d.Wfailed = int64(n.wfailed) - d.MinWserv = int64(n.min_wserv) - d.MaxWserv = int64(n.max_wserv) - d.WqDepth = int64(n.wq_depth) - d.WqSampled = int64(n.wq_sampled) - d.WqTime = int64(n.wq_time) - d.WqMinTime = int64(n.wq_min_time) - d.WqMaxTime = int64(n.wq_max_time) - d.QSampled = int64(n.q_sampled) - d.Version = int64(n.version) - - return d -} - -func perfstatfcstat2fcadapter(n *C.perfstat_fcstat_t) FCAdapter { - var f FCAdapter - - f.Version = int64(n.version) - f.Name = C.GoString(&n.name[0]) - f.State = int32(n.state) - f.InputRequests = int64(n.InputRequests) - f.OutputRequests = int64(n.OutputRequests) - f.InputBytes = int64(n.InputBytes) - f.OutputBytes = int64(n.OutputBytes) - f.EffMaxTransfer = int64(n.EffMaxTransfer) - f.NoDMAResourceCnt = int64(n.NoDMAResourceCnt) - f.NoCmdResourceCnt = int64(n.NoCmdResourceCnt) - f.AttentionType = int32(n.AttentionType) - f.SecondsSinceLastReset = int64(n.SecondsSinceLastReset) - f.TxFrames = int64(n.TxFrames) - f.TxWords = int64(n.TxWords) - f.RxFrames = int64(n.RxFrames) - f.RxWords = int64(n.RxWords) - f.LIPCount = int64(n.LIPCount) - f.NOSCount = int64(n.NOSCount) - f.ErrorFrames = int64(n.ErrorFrames) - f.DumpedFrames = int64(n.DumpedFrames) - f.LinkFailureCount = int64(n.LinkFailureCount) - f.LossofSyncCount = int64(n.LossofSyncCount) - f.LossofSignal = int64(n.LossofSignal) - f.PrimitiveSeqProtocolErrCount = int64(n.PrimitiveSeqProtocolErrCount) - f.InvalidTxWordCount = int64(n.InvalidTxWordCount) - f.InvalidCRCCount = int64(n.InvalidCRCCount) - f.PortFcId = int64(n.PortFcId) - f.PortSpeed = int64(n.PortSpeed) - f.PortType = C.GoString(&n.PortType[0]) - f.PortWWN = int64(n.PortWWN) - f.PortSupportedSpeed = int64(n.PortSupportedSpeed) - f.AdapterType = int(n.adapter_type) - f.VfcName = C.GoString(&n.vfc_name[0]) - f.ClientPartName = C.GoString(&n.client_part_name[0]) - - return f -} - -func perfstatlogicalvolume2logicalvolume(n *C.perfstat_logicalvolume_t) LogicalVolume { - var l LogicalVolume - - l.Name = C.GoString(&n.name[0]) - l.VGName = C.GoString(&n.vgname[0]) - l.OpenClose = int64(n.open_close) - l.State = int64(n.state) - l.MirrorPolicy = int64(n.mirror_policy) - l.MirrorWriteConsistency = int64(n.mirror_write_consistency) - l.WriteVerify = int64(n.write_verify) - l.PPsize = int64(n.ppsize) - l.LogicalPartitions = int64(n.logical_partitions) - l.Mirrors = int32(n.mirrors) - l.IOCnt = int64(n.iocnt) - l.KBReads = int64(n.kbreads) - l.KBWrites = int64(n.kbwrites) - l.Version = int64(n.version) - - return l -} - -func perfstatvolumegroup2volumegroup(n *C.perfstat_volumegroup_t) VolumeGroup { - var v VolumeGroup - - v.Name = C.GoString(&n.name[0]) - v.TotalDisks = int64(n.total_disks) - v.ActiveDisks = int64(n.active_disks) - v.TotalLogicalVolumes = int64(n.total_logical_volumes) - v.OpenedLogicalVolumes = int64(n.opened_logical_volumes) - v.IOCnt = int64(n.iocnt) - v.KBReads = int64(n.kbreads) - v.KBWrites = int64(n.kbwrites) - v.Version = int64(n.version) - v.VariedState = int(n.variedState) - - return v -} - -func perfstatmemorypage2memorypage(n *C.perfstat_memory_page_t) MemoryPage { - var m MemoryPage - - m.PSize = int64(n.psize) - m.RealTotal = int64(n.real_total) - m.RealFree = int64(n.real_free) - m.RealPinned = int64(n.real_pinned) - m.RealInUse = int64(n.real_inuse) - m.PgExct = int64(n.pgexct) - m.PgIns = int64(n.pgins) - m.PgOuts = int64(n.pgouts) - m.PgSpIns = int64(n.pgspins) - m.PgSpOuts = int64(n.pgspouts) - m.Scans = int64(n.scans) - m.Cycles = int64(n.cycles) - m.PgSteals = int64(n.pgsteals) - m.NumPerm = int64(n.numperm) - m.NumPgSp = int64(n.numpgsp) - m.RealSystem = int64(n.real_system) - m.RealUser = int64(n.real_user) - m.RealProcess = int64(n.real_process) - m.VirtActive = int64(n.virt_active) - m.ComprsdTotal = int64(n.comprsd_total) - m.ComprsdWsegPgs = int64(n.comprsd_wseg_pgs) - m.CPgIns = int64(n.cpgins) - m.CPgOuts = int64(n.cpgouts) - m.CPoolInUse = int64(n.cpool_inuse) - m.UCPoolSize = int64(n.ucpool_size) - m.ComprsdWsegSize = int64(n.comprsd_wseg_size) - m.Version = int64(n.version) - m.RealAvail = int64(n.real_avail) - - return m -} - -func perfstatnetbuffer2netbuffer(n *C.perfstat_netbuffer_t) NetBuffer { - var b NetBuffer - - b.Name = C.GoString(&n.name[0]) - b.InUse = int64(n.inuse) - b.Calls = int64(n.calls) - b.Delayed = int64(n.delayed) - b.Free = int64(n.free) - b.Failed = int64(n.failed) - b.HighWatermark = int64(n.highwatermark) - b.Freed = int64(n.freed) - b.Version = int64(n.version) - - return b -} - -func perfstatnetinterface2netiface(n *C.perfstat_netinterface_t) NetIface { - var i NetIface - - i.Name = C.GoString(&n.name[0]) - i.Description = C.GoString(&n.description[0]) - i.Type = uint8(n._type) - i.MTU = int64(n.mtu) - i.IPackets = int64(n.ipackets) - i.IBytes = int64(n.ibytes) - i.IErrors = int64(n.ierrors) - i.OPackets = int64(n.opackets) - i.OBytes = int64(n.obytes) - i.OErrors = int64(n.oerrors) - i.Collisions = int64(n.collisions) - i.Bitrate = int64(n.bitrate) - i.XmitDrops = int64(n.xmitdrops) - i.Version = int64(n.version) - i.IfIqDrops = int64(n.if_iqdrops) - i.IfArpDrops = int64(n.if_arpdrops) - - return i -} - -func perfstatnetadapter2netadapter(n *C.perfstat_netadapter_t) NetAdapter { - var i NetAdapter - - i.Version = int64(n.version) - i.Name = C.GoString(&n.name[0]) - i.TxPackets = int64(n.tx_packets) - i.TxBytes = int64(n.tx_bytes) - i.TxInterrupts = int64(n.tx_interrupts) - i.TxErrors = int64(n.tx_errors) - i.TxPacketsDropped = int64(n.tx_packets_dropped) - i.TxQueueSize = int64(n.tx_queue_size) - i.TxQueueLen = int64(n.tx_queue_len) - i.TxQueueOverflow = int64(n.tx_queue_overflow) - i.TxBroadcastPackets = int64(n.tx_broadcast_packets) - i.TxMulticastPackets = int64(n.tx_multicast_packets) - i.TxCarrierSense = int64(n.tx_carrier_sense) - i.TxDMAUnderrun = int64(n.tx_DMA_underrun) - i.TxLostCTSErrors = int64(n.tx_lost_CTS_errors) - i.TxMaxCollisionErrors = int64(n.tx_max_collision_errors) - i.TxLateCollisionErrors = int64(n.tx_late_collision_errors) - i.TxDeferred = int64(n.tx_deferred) - i.TxTimeoutErrors = int64(n.tx_timeout_errors) - i.TxSingleCollisionCount = int64(n.tx_single_collision_count) - i.TxMultipleCollisionCount = int64(n.tx_multiple_collision_count) - i.RxPackets = int64(n.rx_packets) - i.RxBytes = int64(n.rx_bytes) - i.RxInterrupts = int64(n.rx_interrupts) - i.RxErrors = int64(n.rx_errors) - i.RxPacketsDropped = int64(n.rx_packets_dropped) - i.RxBadPackets = int64(n.rx_bad_packets) - i.RxMulticastPackets = int64(n.rx_multicast_packets) - i.RxBroadcastPackets = int64(n.rx_broadcast_packets) - i.RxCRCErrors = int64(n.rx_CRC_errors) - i.RxDMAOverrun = int64(n.rx_DMA_overrun) - i.RxAlignmentErrors = int64(n.rx_alignment_errors) - i.RxNoResourceErrors = int64(n.rx_noresource_errors) - i.RxCollisionErrors = int64(n.rx_collision_errors) - i.RxPacketTooShortErrors = int64(n.rx_packet_tooshort_errors) - i.RxPacketTooLongErrors = int64(n.rx_packet_toolong_errors) - i.RxPacketDiscardedByAdapter = int64(n.rx_packets_discardedbyadapter) - i.AdapterType = int32(n.adapter_type) - - return i -} - -func perfstatpagingspace2pagingspace(n *C.perfstat_pagingspace_t) PagingSpace { - var i PagingSpace - - i.Name = C.GoString(&n.name[0]) - i.Type = uint8(n._type) - i.VGName = C.GoString(C.get_ps_vgname(n)) - i.Hostname = C.GoString(C.get_ps_hostname(n)) - i.Filename = C.GoString(C.get_ps_filename(n)) - i.LPSize = int64(n.lp_size) - i.MBSize = int64(n.mb_size) - i.MBUsed = int64(n.mb_used) - i.IOPending = int64(n.io_pending) - i.Active = uint8(n.active) - i.Automatic = uint8(n.automatic) - i.Version = int64(n.version) - - return i -} - -func perfstatprocess2process(n *C.perfstat_process_t) Process { - var i Process - - i.Version = int64(n.version) - i.PID = int64(n.pid) - i.ProcessName = C.GoString(&n.proc_name[0]) - i.Priority = int32(n.proc_priority) - i.NumThreads = int64(n.num_threads) - i.UID = int64(n.proc_uid) - i.ClassID = int64(n.proc_classid) - i.Size = int64(n.proc_size) - i.RealMemData = int64(n.proc_real_mem_data) - i.RealMemText = int64(n.proc_real_mem_text) - i.VirtMemData = int64(n.proc_virt_mem_data) - i.VirtMemText = int64(n.proc_virt_mem_text) - i.SharedLibDataSize = int64(n.shared_lib_data_size) - i.HeapSize = int64(n.heap_size) - i.RealInUse = int64(n.real_inuse) - i.VirtInUse = int64(n.virt_inuse) - i.Pinned = int64(n.pinned) - i.PgSpInUse = int64(n.pgsp_inuse) - i.FilePages = int64(n.filepages) - i.RealInUseMap = int64(n.real_inuse_map) - i.VirtInUseMap = int64(n.virt_inuse_map) - i.PinnedInUseMap = int64(n.pinned_inuse_map) - i.UCpuTime = float64(n.ucpu_time) - i.SCpuTime = float64(n.scpu_time) - i.LastTimeBase = int64(n.last_timebase) - i.InBytes = int64(n.inBytes) - i.OutBytes = int64(n.outBytes) - i.InOps = int64(n.inOps) - i.OutOps = int64(n.outOps) - - return i -} - -func perfstatthread2thread(n *C.perfstat_thread_t) Thread { - var i Thread - - i.TID = int64(n.tid) - i.PID = int64(n.pid) - i.CpuID = int64(n.cpuid) - i.UCpuTime = float64(n.ucpu_time) - i.SCpuTime = float64(n.scpu_time) - i.LastTimeBase = int64(n.last_timebase) - i.Version = int64(n.version) - - return i -} - -func fsinfo2filesystem(n *C.struct_fsinfo) FileSystem { - var i FileSystem - - i.Device = C.GoString(n.devname) - i.MountPoint = C.GoString(n.fsname) - i.FSType = int(n.fstype) - i.Flags = int(n.flags) - i.TotalBlocks = int64(n.totalblks) - i.FreeBlocks = int64(n.freeblks) - i.TotalInodes = int64(n.totalinodes) - i.FreeInodes = int64(n.freeinodes) - - return i -} diff --git a/backend/vendor/github.com/power-devops/perfstat/lparstat.go b/backend/vendor/github.com/power-devops/perfstat/lparstat.go deleted file mode 100644 index 06f79fd5..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/lparstat.go +++ /dev/null @@ -1,27 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -*/ -import "C" - -import ( - "fmt" -) - -func PartitionStat() (*PartitionConfig, error) { - var part C.perfstat_partition_config_t - - rc := C.perfstat_partition_config(nil, &part, C.sizeof_perfstat_partition_config_t, 1) - if rc != 1 { - return nil, fmt.Errorf("perfstat_partition_config() error") - } - p := perfstatpartitionconfig2partitionconfig(part) - return &p, nil - -} diff --git a/backend/vendor/github.com/power-devops/perfstat/lvmstat.go b/backend/vendor/github.com/power-devops/perfstat/lvmstat.go deleted file mode 100644 index 2ce99086..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/lvmstat.go +++ /dev/null @@ -1,73 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include -#include -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "unsafe" -) - -func LogicalVolumeStat() ([]LogicalVolume, error) { - var lv *C.perfstat_logicalvolume_t - var lvname C.perfstat_id_t - - numlvs := C.perfstat_logicalvolume(nil, nil, C.sizeof_perfstat_logicalvolume_t, 0) - if numlvs <= 0 { - return nil, fmt.Errorf("perfstat_logicalvolume() error") - } - - lv_len := C.sizeof_perfstat_logicalvolume_t * C.ulong(numlvs) - lv = (*C.perfstat_logicalvolume_t)(C.malloc(lv_len)) - defer C.free(unsafe.Pointer(lv)) - C.strcpy(&lvname.name[0], C.CString("")) - r := C.perfstat_logicalvolume(&lvname, lv, C.sizeof_perfstat_logicalvolume_t, numlvs) - if r < 0 { - return nil, fmt.Errorf("perfstat_logicalvolume() error") - } - lvs := make([]LogicalVolume, r) - for i := 0; i < int(r); i++ { - l := C.get_logicalvolume_stat(lv, C.int(i)) - if l != nil { - lvs[i] = perfstatlogicalvolume2logicalvolume(l) - } - } - return lvs, nil -} - -func VolumeGroupStat() ([]VolumeGroup, error) { - var vg *C.perfstat_volumegroup_t - var vgname C.perfstat_id_t - - numvgs := C.perfstat_volumegroup(nil, nil, C.sizeof_perfstat_volumegroup_t, 0) - if numvgs <= 0 { - return nil, fmt.Errorf("perfstat_volumegroup() error") - } - - vg_len := C.sizeof_perfstat_volumegroup_t * C.ulong(numvgs) - vg = (*C.perfstat_volumegroup_t)(C.malloc(vg_len)) - defer C.free(unsafe.Pointer(vg)) - C.strcpy(&vgname.name[0], C.CString("")) - r := C.perfstat_volumegroup(&vgname, vg, C.sizeof_perfstat_volumegroup_t, numvgs) - if r < 0 { - return nil, fmt.Errorf("perfstat_volumegroup() error") - } - vgs := make([]VolumeGroup, r) - for i := 0; i < int(r); i++ { - v := C.get_volumegroup_stat(vg, C.int(i)) - if v != nil { - vgs[i] = perfstatvolumegroup2volumegroup(v) - } - } - return vgs, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/memstat.go b/backend/vendor/github.com/power-devops/perfstat/memstat.go deleted file mode 100644 index 52133f0a..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/memstat.go +++ /dev/null @@ -1,85 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include -#include - -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "unsafe" -) - -func MemoryTotalStat() (*MemoryTotal, error) { - var memory C.perfstat_memory_total_t - - rc := C.perfstat_memory_total(nil, &memory, C.sizeof_perfstat_memory_total_t, 1) - if rc != 1 { - return nil, fmt.Errorf("perfstat_memory_total() error") - } - m := perfstatmemorytotal2memorytotal(memory) - return &m, nil -} - -func MemoryPageStat() ([]MemoryPage, error) { - var mempage *C.perfstat_memory_page_t - var fps C.perfstat_psize_t - - numps := C.perfstat_memory_page(nil, nil, C.sizeof_perfstat_memory_page_t, 0) - if numps < 1 { - return nil, fmt.Errorf("perfstat_memory_page() error") - } - - mp_len := C.sizeof_perfstat_memory_page_t * C.ulong(numps) - mempage = (*C.perfstat_memory_page_t)(C.malloc(mp_len)) - defer C.free(unsafe.Pointer(mempage)) - fps.psize = C.FIRST_PSIZE - r := C.perfstat_memory_page(&fps, mempage, C.sizeof_perfstat_memory_page_t, numps) - if r < 1 { - return nil, fmt.Errorf("perfstat_memory_page() error") - } - ps := make([]MemoryPage, r) - for i := 0; i < int(r); i++ { - p := C.get_memory_page_stat(mempage, C.int(i)) - if p != nil { - ps[i] = perfstatmemorypage2memorypage(p) - } - } - return ps, nil -} - -func PagingSpaceStat() ([]PagingSpace, error) { - var pspace *C.perfstat_pagingspace_t - var fps C.perfstat_id_t - - numps := C.perfstat_pagingspace(nil, nil, C.sizeof_perfstat_pagingspace_t, 0) - if numps <= 0 { - return nil, fmt.Errorf("perfstat_pagingspace() error") - } - - ps_len := C.sizeof_perfstat_pagingspace_t * C.ulong(numps) - pspace = (*C.perfstat_pagingspace_t)(C.malloc(ps_len)) - defer C.free(unsafe.Pointer(pspace)) - C.strcpy(&fps.name[0], C.CString(C.FIRST_PAGINGSPACE)) - r := C.perfstat_pagingspace(&fps, pspace, C.sizeof_perfstat_pagingspace_t, numps) - if r < 1 { - return nil, fmt.Errorf("perfstat_pagingspace() error") - } - ps := make([]PagingSpace, r) - for i := 0; i < int(r); i++ { - p := C.get_pagingspace_stat(pspace, C.int(i)) - if p != nil { - ps[i] = perfstatpagingspace2pagingspace(p) - } - } - return ps, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/netstat.go b/backend/vendor/github.com/power-devops/perfstat/netstat.go deleted file mode 100644 index 847d2946..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/netstat.go +++ /dev/null @@ -1,118 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include -#include - -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "unsafe" -) - -func NetIfaceTotalStat() (*NetIfaceTotal, error) { - var nif C.perfstat_netinterface_total_t - - rc := C.perfstat_netinterface_total(nil, &nif, C.sizeof_perfstat_netinterface_total_t, 1) - if rc != 1 { - return nil, fmt.Errorf("perfstat_netinterface_total() error") - } - n := perfstatnetinterfacetotal2netifacetotal(nif) - return &n, nil -} - -func NetBufferStat() ([]NetBuffer, error) { - var nbuf *C.perfstat_netbuffer_t - var first C.perfstat_id_t - - numbuf := C.perfstat_netbuffer(nil, nil, C.sizeof_perfstat_netbuffer_t, 0) - if numbuf < 1 { - return nil, fmt.Errorf("perfstat_netbuffer() error") - } - - nblen := C.sizeof_perfstat_netbuffer_t * C.ulong(numbuf) - nbuf = (*C.perfstat_netbuffer_t)(C.malloc(nblen)) - defer C.free(unsafe.Pointer(nbuf)) - C.strcpy(&first.name[0], C.CString(C.FIRST_NETBUFFER)) - r := C.perfstat_netbuffer(&first, nbuf, C.sizeof_perfstat_netbuffer_t, numbuf) - if r < 0 { - return nil, fmt.Errorf("perfstat_netbuffer() error") - } - nb := make([]NetBuffer, r) - for i := 0; i < int(r); i++ { - b := C.get_netbuffer_stat(nbuf, C.int(i)) - if b != nil { - nb[i] = perfstatnetbuffer2netbuffer(b) - } - } - return nb, nil -} - -func NetIfaceStat() ([]NetIface, error) { - var nif *C.perfstat_netinterface_t - var first C.perfstat_id_t - - numif := C.perfstat_netinterface(nil, nil, C.sizeof_perfstat_netinterface_t, 0) - if numif < 0 { - return nil, fmt.Errorf("perfstat_netinterface() error") - } - if numif == 0 { - return []NetIface{}, fmt.Errorf("no network interfaces found") - } - - iflen := C.sizeof_perfstat_netinterface_t * C.ulong(numif) - nif = (*C.perfstat_netinterface_t)(C.malloc(iflen)) - defer C.free(unsafe.Pointer(nif)) - C.strcpy(&first.name[0], C.CString(C.FIRST_NETINTERFACE)) - r := C.perfstat_netinterface(&first, nif, C.sizeof_perfstat_netinterface_t, numif) - if r < 0 { - return nil, fmt.Errorf("perfstat_netinterface() error") - } - ifs := make([]NetIface, r) - for i := 0; i < int(r); i++ { - b := C.get_netinterface_stat(nif, C.int(i)) - if b != nil { - ifs[i] = perfstatnetinterface2netiface(b) - } - } - return ifs, nil -} - -func NetAdapterStat() ([]NetAdapter, error) { - var adapters *C.perfstat_netadapter_t - var first C.perfstat_id_t - - numad := C.perfstat_netadapter(nil, nil, C.sizeof_perfstat_netadapter_t, 0) - if numad < 0 { - return nil, fmt.Errorf("perfstat_netadater() error") - } - if numad == 0 { - return []NetAdapter{}, fmt.Errorf("no network adapters found") - } - - adplen := C.sizeof_perfstat_netadapter_t * C.ulong(numad) - adapters = (*C.perfstat_netadapter_t)(C.malloc(adplen)) - defer C.free(unsafe.Pointer(adapters)) - C.strcpy(&first.name[0], C.CString(C.FIRST_NETINTERFACE)) - r := C.perfstat_netadapter(&first, adapters, C.sizeof_perfstat_netadapter_t, numad) - if r < 0 { - return nil, fmt.Errorf("perfstat_netadapter() error") - } - ads := make([]NetAdapter, r) - for i := 0; i < int(r); i++ { - b := C.get_netadapter_stat(adapters, C.int(i)) - if b != nil { - ads[i] = perfstatnetadapter2netadapter(b) - } - } - return ads, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/procstat.go b/backend/vendor/github.com/power-devops/perfstat/procstat.go deleted file mode 100644 index 957ec2b3..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/procstat.go +++ /dev/null @@ -1,76 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#cgo LDFLAGS: -lperfstat - -#include -#include -#include - -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "unsafe" -) - -func ProcessStat() ([]Process, error) { - var proc *C.perfstat_process_t - var first C.perfstat_id_t - - numproc := C.perfstat_process(nil, nil, C.sizeof_perfstat_process_t, 0) - if numproc < 1 { - return nil, fmt.Errorf("perfstat_process() error") - } - - plen := C.sizeof_perfstat_process_t * C.ulong(numproc) - proc = (*C.perfstat_process_t)(C.malloc(plen)) - defer C.free(unsafe.Pointer(proc)) - C.strcpy(&first.name[0], C.CString("")) - r := C.perfstat_process(&first, proc, C.sizeof_perfstat_process_t, numproc) - if r < 0 { - return nil, fmt.Errorf("perfstat_process() error") - } - - ps := make([]Process, r) - for i := 0; i < int(r); i++ { - p := C.get_process_stat(proc, C.int(i)) - if p != nil { - ps[i] = perfstatprocess2process(p) - } - } - return ps, nil -} - -func ThreadStat() ([]Thread, error) { - var thread *C.perfstat_thread_t - var first C.perfstat_id_t - - numthr := C.perfstat_thread(nil, nil, C.sizeof_perfstat_thread_t, 0) - if numthr < 1 { - return nil, fmt.Errorf("perfstat_thread() error") - } - - thlen := C.sizeof_perfstat_thread_t * C.ulong(numthr) - thread = (*C.perfstat_thread_t)(C.malloc(thlen)) - defer C.free(unsafe.Pointer(thread)) - C.strcpy(&first.name[0], C.CString("")) - r := C.perfstat_thread(&first, thread, C.sizeof_perfstat_thread_t, numthr) - if r < 0 { - return nil, fmt.Errorf("perfstat_thread() error") - } - - th := make([]Thread, r) - for i := 0; i < int(r); i++ { - t := C.get_thread_stat(thread, C.int(i)) - if t != nil { - th[i] = perfstatthread2thread(t) - } - } - return th, nil -} diff --git a/backend/vendor/github.com/power-devops/perfstat/sysconf.go b/backend/vendor/github.com/power-devops/perfstat/sysconf.go deleted file mode 100644 index b557da0d..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/sysconf.go +++ /dev/null @@ -1,196 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#include -*/ -import "C" - -import "fmt" - -const ( - SC_ARG_MAX = 0 - SC_CHILD_MAX = 1 - SC_CLK_TCK = 2 - SC_NGROUPS_MAX = 3 - SC_OPEN_MAX = 4 - SC_STREAM_MAX = 5 - SC_TZNAME_MAX = 6 - SC_JOB_CONTROL = 7 - SC_SAVED_IDS = 8 - SC_VERSION = 9 - SC_POSIX_ARG_MAX = 10 - SC_POSIX_CHILD_MAX = 11 - SC_POSIX_LINK_MAX = 12 - SC_POSIX_MAX_CANON = 13 - SC_POSIX_MAX_INPUT = 14 - SC_POSIX_NAME_MAX = 15 - SC_POSIX_NGROUPS_MAX = 16 - SC_POSIX_OPEN_MAX = 17 - SC_POSIX_PATH_MAX = 18 - SC_POSIX_PIPE_BUF = 19 - SC_POSIX_SSIZE_MAX = 20 - SC_POSIX_STREAM_MAX = 21 - SC_POSIX_TZNAME_MAX = 22 - SC_BC_BASE_MAX = 23 - SC_BC_DIM_MAX = 24 - SC_BC_SCALE_MAX = 25 - SC_BC_STRING_MAX = 26 - SC_EQUIV_CLASS_MAX = 27 - SC_EXPR_NEST_MAX = 28 - SC_LINE_MAX = 29 - SC_RE_DUP_MAX = 30 - SC_2_VERSION = 31 - SC_2_C_DEV = 32 - SC_2_FORT_DEV = 33 - SC_2_FORT_RUN = 34 - SC_2_LOCALEDEF = 35 - SC_2_SW_DEV = 36 - SC_POSIX2_BC_BASE_MAX = 37 - SC_POSIX2_BC_DIM_MAX = 38 - SC_POSIX2_BC_SCALE_MAX = 39 - SC_POSIX2_BC_STRING_MAX = 40 - SC_POSIX2_BC_EQUIV_CLASS_MAX = 41 - SC_POSIX2_BC_EXPR_NEST_MAX = 42 - SC_POSIX2_BC_LINE_MAX = 43 - SC_POSIX2_BC_RE_DUP_MAX = 44 - SC_PASS_MAX = 45 - SC_XOPEN_VERSION = 46 - SC_ATEXIT_MAX = 47 - SC_PAGE_SIZE = 48 - SC_PAGESIZE = SC_PAGE_SIZE - SC_AES_OS_VERSION = 49 - SC_COLL_WEIGHTS_MAX = 50 - SC_2_C_WIND = 51 - SC_2_C_VERSION = 52 - SC_2_UPE = 53 - SC_2_CHAR_TERM = 54 - SC_XOPEN_SHM = 55 - SC_XOPEN_CRYPT = 56 - SC_XOPEN_ENH_I18N = 57 - SC_IOV_MAX = 58 - SC_THREAD_SAFE_FUNCTIONS = 59 - SC_THREADS = 60 - SC_THREAD_ATTR_STACKADDR = 61 - SC_THREAD_ATTR_STACKSIZE = 62 - SC_THREAD_FORKALL = 63 - SC_THREAD_PRIORITY_SCHEDULING = 64 - SC_THREAD_PRIO_INHERIT = 65 - SC_THREAD_PRIO_PROTECT = 66 - SC_THREAD_PROCESS_SHARED = 67 - SC_THREAD_KEYS_MAX = 68 - SC_THREAD_DATAKEYS_MAX = SC_THREAD_KEYS_MAX - SC_THREAD_STACK_MIN = 69 - SC_THREAD_THREADS_MAX = 70 - SC_NPROCESSORS_CONF = 71 - SC_NPROCESSORS_ONLN = 72 - SC_XOPEN_UNIX = 73 - SC_AIO_LISTIO_MAX = 75 - SC_AIO_MAX = 76 - SC_AIO_PRIO_DELTA_MAX = 77 - SC_ASYNCHRONOUS_IO = 78 - SC_DELAYTIMER_MAX = 79 - SC_FSYNC = 80 - SC_GETGR_R_SIZE_MAX = 81 - SC_GETPW_R_SIZE_MAX = 82 - SC_LOGIN_NAME_MAX = 83 - SC_MAPPED_FILES = 84 - SC_MEMLOCK = 85 - SC_MEMLOCK_RANGE = 86 - SC_MEMORY_PROTECTION = 87 - SC_MESSAGE_PASSING = 88 - SC_MQ_OPEN_MAX = 89 - SC_MQ_PRIO_MAX = 90 - SC_PRIORITIZED_IO = 91 - SC_PRIORITY_SCHEDULING = 92 - SC_REALTIME_SIGNALS = 93 - SC_RTSIG_MAX = 94 - SC_SEMAPHORES = 95 - SC_SEM_NSEMS_MAX = 96 - SC_SEM_VALUE_MAX = 97 - SC_SHARED_MEMORY_OBJECTS = 98 - SC_SIGQUEUE_MAX = 99 - SC_SYNCHRONIZED_IO = 100 - SC_THREAD_DESTRUCTOR_ITERATIONS = 101 - SC_TIMERS = 102 - SC_TIMER_MAX = 103 - SC_TTY_NAME_MAX = 104 - SC_XBS5_ILP32_OFF32 = 105 - SC_XBS5_ILP32_OFFBIG = 106 - SC_XBS5_LP64_OFF64 = 107 - SC_XBS5_LPBIG_OFFBIG = 108 - SC_XOPEN_XCU_VERSION = 109 - SC_XOPEN_REALTIME = 110 - SC_XOPEN_REALTIME_THREADS = 111 - SC_XOPEN_LEGACY = 112 - SC_REENTRANT_FUNCTIONS = SC_THREAD_SAFE_FUNCTIONS - SC_PHYS_PAGES = 113 - SC_AVPHYS_PAGES = 114 - SC_LPAR_ENABLED = 115 - SC_LARGE_PAGESIZE = 116 - SC_AIX_KERNEL_BITMODE = 117 - SC_AIX_REALMEM = 118 - SC_AIX_HARDWARE_BITMODE = 119 - SC_AIX_MP_CAPABLE = 120 - SC_V6_ILP32_OFF32 = 121 - SC_V6_ILP32_OFFBIG = 122 - SC_V6_LP64_OFF64 = 123 - SC_V6_LPBIG_OFFBIG = 124 - SC_XOPEN_STREAMS = 125 - SC_HOST_NAME_MAX = 126 - SC_REGEXP = 127 - SC_SHELL = 128 - SC_SYMLOOP_MAX = 129 - SC_ADVISORY_INFO = 130 - SC_FILE_LOCKING = 131 - SC_2_PBS = 132 - SC_2_PBS_ACCOUNTING = 133 - SC_2_PBS_CHECKPOINT = 134 - SC_2_PBS_LOCATE = 135 - SC_2_PBS_MESSAGE = 136 - SC_2_PBS_TRACK = 137 - SC_BARRIERS = 138 - SC_CLOCK_SELECTION = 139 - SC_CPUTIME = 140 - SC_MONOTONIC_CLOCK = 141 - SC_READER_WRITER_LOCKS = 142 - SC_SPAWN = 143 - SC_SPIN_LOCKS = 144 - SC_SPORADIC_SERVER = 145 - SC_THREAD_CPUTIME = 146 - SC_THREAD_SPORADIC_SERVER = 147 - SC_TIMEOUTS = 148 - SC_TRACE = 149 - SC_TRACE_EVENT_FILTER = 150 - SC_TRACE_INHERIT = 151 - SC_TRACE_LOG = 152 - SC_TYPED_MEMORY_OBJECTS = 153 - SC_IPV6 = 154 - SC_RAW_SOCKETS = 155 - SC_SS_REPL_MAX = 156 - SC_TRACE_EVENT_NAME_MAX = 157 - SC_TRACE_NAME_MAX = 158 - SC_TRACE_SYS_MAX = 159 - SC_TRACE_USER_EVENT_MAX = 160 - SC_AIX_UKEYS = 161 - SC_AIX_ENHANCED_AFFINITY = 162 - SC_V7_ILP32_OFF32 = 163 - SC_V7_ILP32_OFFBIG = 164 - SC_V7_LP64_OFF64 = 165 - SC_V7_LPBIG_OFFBIG = 166 - SC_THREAD_ROBUST_PRIO_INHERIT = 167 - SC_THREAD_ROBUST_PRIO_PROTECT = 168 - SC_XOPEN_UUCP = 169 - SC_XOPEN_ARMOR = 170 -) - -func Sysconf(name int32) (int64, error) { - r := C.sysconf(C.int(name)) - if r == -1 { - return 0, fmt.Errorf("sysconf error") - } else { - return int64(r), nil - } -} diff --git a/backend/vendor/github.com/power-devops/perfstat/systemcfg.go b/backend/vendor/github.com/power-devops/perfstat/systemcfg.go deleted file mode 100644 index 7f9277bc..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/systemcfg.go +++ /dev/null @@ -1,636 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -import "golang.org/x/sys/unix" - -// function Getsystemcfg() is defined in golang.org/x/sys/unix -// we define here just missing constants for the function and some helpers - -// Calls to getsystemcfg() -const ( - SC_ARCH = 1 /* processor architecture */ - SC_IMPL = 2 /* processor implementation */ - SC_VERS = 3 /* processor version */ - SC_WIDTH = 4 /* width (32 || 64) */ - SC_NCPUS = 5 /* 1 = UP, n = n-way MP */ - SC_L1C_ATTR = 6 /* L1 cache attributes (bit flags) */ - SC_L1C_ISZ = 7 /* size of L1 instruction cache */ - SC_L1C_DSZ = 8 /* size of L1 data cache */ - SC_L1C_ICA = 9 /* L1 instruction cache associativity */ - SC_L1C_DCA = 10 /* L1 data cache associativity */ - SC_L1C_IBS = 11 /* L1 instruction cache block size */ - SC_L1C_DBS = 12 /* L1 data cache block size */ - SC_L1C_ILS = 13 /* L1 instruction cache line size */ - SC_L1C_DLS = 14 /* L1 data cache line size */ - SC_L2C_SZ = 15 /* size of L2 cache, 0 = No L2 cache */ - SC_L2C_AS = 16 /* L2 cache associativity */ - SC_TLB_ATTR = 17 /* TLB attributes (bit flags) */ - SC_ITLB_SZ = 18 /* entries in instruction TLB */ - SC_DTLB_SZ = 19 /* entries in data TLB */ - SC_ITLB_ATT = 20 /* instruction tlb associativity */ - SC_DTLB_ATT = 21 /* data tlb associativity */ - SC_RESRV_SZ = 22 /* size of reservation */ - SC_PRI_LC = 23 /* spin lock count in supevisor mode */ - SC_PRO_LC = 24 /* spin lock count in problem state */ - SC_RTC_TYPE = 25 /* RTC type */ - SC_VIRT_AL = 26 /* 1 if hardware aliasing is supported */ - SC_CAC_CONG = 27 /* number of page bits for cache synonym */ - SC_MOD_ARCH = 28 /* used by system for model determination */ - SC_MOD_IMPL = 29 /* used by system for model determination */ - SC_XINT = 30 /* used by system for time base conversion */ - SC_XFRAC = 31 /* used by system for time base conversion */ - SC_KRN_ATTR = 32 /* kernel attributes, see below */ - SC_PHYSMEM = 33 /* bytes of OS available memory */ - SC_SLB_ATTR = 34 /* SLB attributes */ - SC_SLB_SZ = 35 /* size of slb (0 = no slb) */ - SC_ORIG_NCPUS = 36 /* original number of CPUs */ - SC_MAX_NCPUS = 37 /* max cpus supported by this AIX image */ - SC_MAX_REALADDR = 38 /* max supported real memory address +1 */ - SC_ORIG_ENT_CAP = 39 /* configured entitled processor capacity at boot required by cross-partition LPAR tools. */ - SC_ENT_CAP = 40 /* entitled processor capacity */ - SC_DISP_WHE = 41 /* Dispatch wheel time period (TB units) */ - SC_CAPINC = 42 /* delta by which capacity can change */ - SC_VCAPW = 43 /* priority weight for idle capacity distribution */ - SC_SPLP_STAT = 44 /* State of SPLPAR enablement: 0x1 => 1=SPLPAR capable; 0=not, 0x2 => SPLPAR enabled 0=dedicated, 1=shared */ - SC_SMT_STAT = 45 /* State of SMT enablement: 0x1 = SMT Capable 0=no/1=yes, 0x2 = SMT Enabled 0=no/1=yes, 0x4 = SMT threads bound true 0=no/1=yes */ - SC_SMT_TC = 46 /* Number of SMT Threads per Physical CPU */ - SC_VMX_VER = 47 /* RPA defined VMX version: 0 = VMX not available or disabled, 1 = VMX capable, 2 = VMX and VSX capable */ - SC_LMB_SZ = 48 /* Size of an LMB on this system. */ - SC_MAX_XCPU = 49 /* Number of exclusive cpus on line */ - SC_EC_LVL = 50 /* Kernel error checking level */ - SC_AME_STAT = 51 /* AME status */ - SC_ECO_STAT = 52 /* extended cache options */ - SC_DFP_STAT = 53 /* RPA defined DFP version, 0=none/disabled */ - SC_VRM_STAT = 54 /* VRM Capable/enabled */ - SC_PHYS_IMP = 55 /* physical processor implementation */ - SC_PHYS_VER = 56 /* physical processor version */ - SC_SPCM_STATUS = 57 - SC_SPCM_MAX = 58 - SC_TM_VER = 59 /* Transaction Memory version, 0 - not capable */ - SC_NX_CAP = 60 /* NX GZIP capable */ - SC_PKS_STATE = 61 /* Platform KeyStore */ -) - -/* kernel attributes */ -/* bit 0/1 meaning */ -/* -----------------------------------------*/ -/* 31 32-bit kernel / 64-bit kernel */ -/* 30 non-LPAR / LPAR */ -/* 29 old 64bit ABI / 64bit Large ABI */ -/* 28 non-NUMA / NUMA */ -/* 27 UP / MP */ -/* 26 no DR CPU add / DR CPU add support */ -/* 25 no DR CPU rm / DR CPU rm support */ -/* 24 no DR MEM add / DR MEM add support */ -/* 23 no DR MEM rm / DR MEM rm support */ -/* 22 kernel keys disabled / enabled */ -/* 21 no recovery / recovery enabled */ -/* 20 non-MLS / MLS enabled */ -/* 19 enhanced affinity indicator */ -/* 18 non-vTPM / vTPM enabled */ -/* 17 non-VIOS / VIOS */ - -// Values for architecture field -const ( - ARCH_POWER_RS = 0x0001 /* Power Classic architecture */ - ARCH_POWER_PC = 0x0002 /* Power PC architecture */ - ARCH_IA64 = 0x0003 /* Intel IA64 architecture */ -) - -// Values for implementation field for POWER_PC Architectures -const ( - IMPL_POWER_RS1 = 0x00001 /* RS1 class CPU */ - IMPL_POWER_RSC = 0x00002 /* RSC class CPU */ - IMPL_POWER_RS2 = 0x00004 /* RS2 class CPU */ - IMPL_POWER_601 = 0x00008 /* 601 class CPU */ - IMPL_POWER_603 = 0x00020 /* 603 class CPU */ - IMPL_POWER_604 = 0x00010 /* 604 class CPU */ - IMPL_POWER_620 = 0x00040 /* 620 class CPU */ - IMPL_POWER_630 = 0x00080 /* 630 class CPU */ - IMPL_POWER_A35 = 0x00100 /* A35 class CPU */ - IMPL_POWER_RS64II = 0x0200 /* RS64-II class CPU */ - IMPL_POWER_RS64III = 0x0400 /* RS64-III class CPU */ - IMPL_POWER4 = 0x0800 /* 4 class CPU */ - IMPL_POWER_RS64IV = IMPL_POWER4 /* 4 class CPU */ - IMPL_POWER_MPC7450 = 0x1000 /* MPC7450 class CPU */ - IMPL_POWER5 = 0x2000 /* 5 class CPU */ - IMPL_POWER6 = 0x4000 /* 6 class CPU */ - IMPL_POWER7 = 0x8000 /* 7 class CPU */ - IMPL_POWER8 = 0x10000 /* 8 class CPU */ - IMPL_POWER9 = 0x20000 /* 9 class CPU */ -) - -// Values for implementation field for IA64 Architectures -const ( - IMPL_IA64_M1 = 0x0001 /* IA64 M1 class CPU (Itanium) */ - IMPL_IA64_M2 = 0x0002 /* IA64 M2 class CPU */ -) - -// Values for the version field -const ( - PV_601 = 0x010001 /* Power PC 601 */ - PV_601A = 0x010002 /* Power PC 601 */ - PV_603 = 0x060000 /* Power PC 603 */ - PV_604 = 0x050000 /* Power PC 604 */ - PV_620 = 0x070000 /* Power PC 620 */ - PV_630 = 0x080000 /* Power PC 630 */ - PV_A35 = 0x090000 /* Power PC A35 */ - PV_RS64II = 0x0A0000 /* Power PC RS64II */ - PV_RS64III = 0x0B0000 /* Power PC RS64III */ - PV_4 = 0x0C0000 /* Power PC 4 */ - PV_RS64IV = PV_4 /* Power PC 4 */ - PV_MPC7450 = 0x0D0000 /* Power PC MPC7450 */ - PV_4_2 = 0x0E0000 /* Power PC 4 */ - PV_4_3 = 0x0E0001 /* Power PC 4 */ - PV_5 = 0x0F0000 /* Power PC 5 */ - PV_5_2 = 0x0F0001 /* Power PC 5 */ - PV_5_3 = 0x0F0002 /* Power PC 5 */ - PV_6 = 0x100000 /* Power PC 6 */ - PV_6_1 = 0x100001 /* Power PC 6 DD1.x */ - PV_7 = 0x200000 /* Power PC 7 */ - PV_8 = 0x300000 /* Power PC 8 */ - PV_9 = 0x400000 /* Power PC 9 */ - PV_5_Compat = 0x0F8000 /* Power PC 5 */ - PV_6_Compat = 0x108000 /* Power PC 6 */ - PV_7_Compat = 0x208000 /* Power PC 7 */ - PV_8_Compat = 0x308000 /* Power PC 8 */ - PV_9_Compat = 0x408000 /* Power PC 9 */ - PV_RESERVED_2 = 0x0A0000 /* source compatability */ - PV_RESERVED_3 = 0x0B0000 /* source compatability */ - PV_RS2 = 0x040000 /* Power RS2 */ - PV_RS1 = 0x020000 /* Power RS1 */ - PV_RSC = 0x030000 /* Power RSC */ - PV_M1 = 0x008000 /* Intel IA64 M1 */ - PV_M2 = 0x008001 /* Intel IA64 M2 */ -) - -// Values for rtc_type -const ( - RTC_POWER = 1 /* rtc as defined by Power Arch. */ - RTC_POWER_PC = 2 /* rtc as defined by Power PC Arch. */ - RTC_IA64 = 3 /* rtc as defined by IA64 Arch. */ -) - -const NX_GZIP_PRESENT = 0x00000001 - -const ( - PKS_STATE_CAPABLE = 1 - PKS_STATE_ENABLED = 2 -) - -// Macros for identifying physical processor -const ( - PPI4_1 = 0x35 - PPI4_2 = 0x38 - PPI4_3 = 0x39 - PPI4_4 = 0x3C - PPI4_5 = 0x44 - PPI5_1 = 0x3A - PPI5_2 = 0x3B - PPI6_1 = 0x3E - PPI7_1 = 0x3F - PPI7_2 = 0x4A - PPI8_1 = 0x4B - PPI8_2 = 0x4D - PPI9 = 0x4E -) - -// Macros for kernel attributes -const ( - KERN_TYPE = 0x1 - KERN_LPAR = 0x2 - KERN_64BIT_LARGE_ABI = 0x4 - KERN_NUMA = 0x8 - KERN_UPMP = 0x10 - KERN_DR_CPU_ADD = 0x20 - KERN_DR_CPU_RM = 0x40 - KERN_DR_MEM_ADD = 0x80 - KERN_DR_MEM_RM = 0x100 - KERN_KKEY_ENABLED = 0x200 - KERN_RECOVERY = 0x400 - KERN_MLS = 0x800 - KERN_ENH_AFFINITY = 0x1000 - KERN_VTPM = 0x2000 - KERN_VIOS = 0x4000 -) - -// macros for SPLPAR environment. -const ( - SPLPAR_CAPABLE = 0x1 - SPLPAR_ENABLED = 0x2 - SPLPAR_DONATE_CAPABLE = 0x4 -) - -// Macros for SMT status determination -const ( - SMT_CAPABLE = 0x1 - SMT_ENABLE = 0x2 - SMT_BOUND = 0x4 - SMT_ORDER = 0x8 -) - -// Macros for VRM status determination -const ( - VRM_CAPABLE = 0x1 - VRM_ENABLE = 0x2 - CMOX_CAPABLE = 0x4 -) - -// Macros for AME status determination -const AME_ENABLE = 0x1 - -// Macros for extended cache options -const ( - ECO_CAPABLE = 0x1 - ECO_ENABLE = 0x2 -) - -// These define blocks of values for model_arch and model_impl that are reserved for OEM use. -const ( - MODEL_ARCH_RSPC = 2 - MODEL_ARCH_CHRP = 3 - MODEL_ARCH_IA64 = 4 - MODEL_ARCH_OEM_START = 1024 - MODEL_ARCH_OEM_END = 2047 - MODEL_IMPL_RS6K_UP_MCA = 1 - MODEL_IMPL_RS6K_SMP_MCA = 2 - MODEL_IMPL_RSPC_UP_PCI = 3 - MODEL_IMPL_RSPC_SMP_PCI = 4 - MODEL_IMPL_CHRP_UP_PCI = 5 - MODEL_IMPL_CHRP_SMP_PCI = 6 - MODEL_IMPL_IA64_COM = 7 - MODEL_IMPL_IA64_SOFTSDV = 8 - MODEL_IMPL_MAMBO_SIM = 9 - MODEL_IMPL_POWER_KVM = 10 - MODEL_IMPL_OEM_START = 1024 - MODEL_IMPL_OEM_END = 2047 -) - -// example determining processor compatibilty mode on AIX: -// impl := unix.Getsystemcfg(SC_IMPL) -// if impl&IMPL_POWER8 != 0 { -// // we are running on POWER8 -// } -// if impl&IMPL_POWER9 != 0 { -// // we are running on POWER9 -// } - -func GetCPUImplementation() string { - impl := unix.Getsystemcfg(SC_IMPL) - switch { - case impl&IMPL_POWER4 != 0: - return "POWER4" - case impl&IMPL_POWER5 != 0: - return "POWER5" - case impl&IMPL_POWER6 != 0: - return "POWER6" - case impl&IMPL_POWER7 != 0: - return "POWER7" - case impl&IMPL_POWER8 != 0: - return "POWER8" - case impl&IMPL_POWER9 != 0: - return "POWER9" - default: - return "Unknown" - } -} - -func POWER9OrNewer() bool { - impl := unix.Getsystemcfg(SC_IMPL) - if impl&IMPL_POWER9 != 0 { - return true - } - return false -} - -func POWER9() bool { - impl := unix.Getsystemcfg(SC_IMPL) - if impl&IMPL_POWER9 != 0 { - return true - } - return false -} - -func POWER8OrNewer() bool { - impl := unix.Getsystemcfg(SC_IMPL) - if impl&IMPL_POWER9 != 0 || impl&IMPL_POWER8 != 0 { - return true - } - return false -} - -func POWER8() bool { - impl := unix.Getsystemcfg(SC_IMPL) - if impl&IMPL_POWER8 != 0 { - return true - } - return false -} - -func POWER7OrNewer() bool { - impl := unix.Getsystemcfg(SC_IMPL) - if impl&IMPL_POWER9 != 0 || impl&IMPL_POWER8 != 0 || impl&IMPL_POWER7 != 0 { - return true - } - return false -} - -func POWER7() bool { - impl := unix.Getsystemcfg(SC_IMPL) - if impl&IMPL_POWER7 != 0 { - return true - } - return false -} - -func HasTransactionalMemory() bool { - impl := unix.Getsystemcfg(SC_TM_VER) - if impl > 0 { - return true - } - return false -} - -func Is64Bit() bool { - impl := unix.Getsystemcfg(SC_WIDTH) - if impl == 64 { - return true - } - return false -} - -func IsSMP() bool { - impl := unix.Getsystemcfg(SC_NCPUS) - if impl > 1 { - return true - } - return false -} - -func HasVMX() bool { - impl := unix.Getsystemcfg(SC_VMX_VER) - if impl > 0 { - return true - } - return false -} - -func HasVSX() bool { - impl := unix.Getsystemcfg(SC_VMX_VER) - if impl > 1 { - return true - } - return false -} - -func HasDFP() bool { - impl := unix.Getsystemcfg(SC_DFP_STAT) - if impl > 1 { - return true - } - return false -} - -func HasNxGzip() bool { - impl := unix.Getsystemcfg(SC_NX_CAP) - if impl&NX_GZIP_PRESENT > 0 { - return true - } - return false -} - -func PksCapable() bool { - impl := unix.Getsystemcfg(SC_PKS_STATE) - if impl&PKS_STATE_CAPABLE > 0 { - return true - } - return false -} - -func PksEnabled() bool { - impl := unix.Getsystemcfg(SC_PKS_STATE) - if impl&PKS_STATE_ENABLED > 0 { - return true - } - return false -} - -func CPUMode() string { - impl := unix.Getsystemcfg(SC_VERS) - switch impl { - case PV_9, PV_9_Compat: - return "POWER9" - case PV_8, PV_8_Compat: - return "POWER8" - case PV_7, PV_7_Compat: - return "POWER7" - default: - return "Unknown" - } -} - -func KernelBits() int { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_TYPE == KERN_TYPE { - return 64 - } - return 32 -} - -func IsLPAR() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_LPAR == KERN_LPAR { - return true - } - return false -} - -func CpuAddCapable() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_DR_CPU_ADD == KERN_DR_CPU_ADD { - return true - } - return false -} - -func CpuRemoveCapable() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_DR_CPU_RM == KERN_DR_CPU_RM { - return true - } - return false -} - -func MemoryAddCapable() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_DR_MEM_ADD == KERN_DR_MEM_ADD { - return true - } - return false -} - -func MemoryRemoveCapable() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_DR_MEM_RM == KERN_DR_MEM_RM { - return true - } - return false -} - -func DLparCapable() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&(KERN_DR_CPU_ADD|KERN_DR_CPU_RM|KERN_DR_MEM_ADD|KERN_DR_MEM_RM) > 0 { - return true - } - return false -} - -func IsNUMA() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_NUMA > 0 { - return true - } - return false -} - -func KernelKeys() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_KKEY_ENABLED > 0 { - return true - } - return false -} - -func RecoveryMode() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_RECOVERY > 0 { - return true - } - return false -} - -func EnhancedAffinity() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_ENH_AFFINITY > 0 { - return true - } - return false -} - -func VTpmEnabled() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_VTPM > 0 { - return true - } - return false -} - -func IsVIOS() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_VIOS > 0 { - return true - } - return false -} - -func MLSEnabled() bool { - impl := unix.Getsystemcfg(SC_KRN_ATTR) - if impl&KERN_MLS > 0 { - return true - } - return false -} - -func SPLparCapable() bool { - impl := unix.Getsystemcfg(SC_SPLP_STAT) - if impl&SPLPAR_CAPABLE > 0 { - return true - } - return false -} - -func SPLparEnabled() bool { - impl := unix.Getsystemcfg(SC_SPLP_STAT) - if impl&SPLPAR_ENABLED > 0 { - return true - } - return false -} - -func DedicatedLpar() bool { - return !SPLparEnabled() -} - -func SPLparCapped() bool { - impl := unix.Getsystemcfg(SC_VCAPW) - if impl == 0 { - return true - } - return false -} - -func SPLparDonating() bool { - impl := unix.Getsystemcfg(SC_SPLP_STAT) - if impl&SPLPAR_DONATE_CAPABLE > 0 { - return true - } - return false -} - -func SmtCapable() bool { - impl := unix.Getsystemcfg(SC_SMT_STAT) - if impl&SMT_CAPABLE > 0 { - return true - } - return false -} - -func SmtEnabled() bool { - impl := unix.Getsystemcfg(SC_SMT_STAT) - if impl&SMT_ENABLE > 0 { - return true - } - return false -} - -func VrmCapable() bool { - impl := unix.Getsystemcfg(SC_VRM_STAT) - if impl&VRM_CAPABLE > 0 { - return true - } - return false -} - -func VrmEnabled() bool { - impl := unix.Getsystemcfg(SC_VRM_STAT) - if impl&VRM_ENABLE > 0 { - return true - } - return false -} - -func AmeEnabled() bool { - impl := unix.Getsystemcfg(SC_AME_STAT) - if impl&AME_ENABLE > 0 { - return true - } - return false -} - -func EcoCapable() bool { - impl := unix.Getsystemcfg(SC_ECO_STAT) - if impl&ECO_CAPABLE > 0 { - return true - } - return false -} - -func EcoEnabled() bool { - impl := unix.Getsystemcfg(SC_ECO_STAT) - if impl&ECO_ENABLE > 0 { - return true - } - return false -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_cpu.go b/backend/vendor/github.com/power-devops/perfstat/types_cpu.go deleted file mode 100644 index 84425e92..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_cpu.go +++ /dev/null @@ -1,186 +0,0 @@ -package perfstat - -type CPU struct { - Name string /* logical processor name (cpu0, cpu1, ..) */ - User int64 /* raw number of clock ticks spent in user mode */ - Sys int64 /* raw number of clock ticks spent in system mode */ - Idle int64 /* raw number of clock ticks spent idle */ - Wait int64 /* raw number of clock ticks spent waiting for I/O */ - PSwitch int64 /* number of context switches (changes of currently running process) */ - Syscall int64 /* number of system calls executed */ - Sysread int64 /* number of read system calls executed */ - Syswrite int64 /* number of write system calls executed */ - Sysfork int64 /* number of fork system call executed */ - Sysexec int64 /* number of exec system call executed */ - Readch int64 /* number of characters tranferred with read system call */ - Writech int64 /* number of characters tranferred with write system call */ - Bread int64 /* number of block reads */ - Bwrite int64 /* number of block writes */ - Lread int64 /* number of logical read requests */ - Lwrite int64 /* number of logical write requests */ - Phread int64 /* number of physical reads (reads on raw device) */ - Phwrite int64 /* number of physical writes (writes on raw device) */ - Iget int64 /* number of inode lookups */ - Namei int64 /* number of vnode lookup from a path name */ - Dirblk int64 /* number of 512-byte block reads by the directory search routine to locate an entry for a file */ - Msg int64 /* number of IPC message operations */ - Sema int64 /* number of IPC semaphore operations */ - MinFaults int64 /* number of page faults with no I/O */ - MajFaults int64 /* number of page faults with disk I/O */ - PUser int64 /* raw number of physical processor tics in user mode */ - PSys int64 /* raw number of physical processor tics in system mode */ - PIdle int64 /* raw number of physical processor tics idle */ - PWait int64 /* raw number of physical processor tics waiting for I/O */ - RedispSD0 int64 /* number of thread redispatches within the scheduler affinity domain 0 */ - RedispSD1 int64 /* number of thread redispatches within the scheduler affinity domain 1 */ - RedispSD2 int64 /* number of thread redispatches within the scheduler affinity domain 2 */ - RedispSD3 int64 /* number of thread redispatches within the scheduler affinity domain 3 */ - RedispSD4 int64 /* number of thread redispatches within the scheduler affinity domain 4 */ - RedispSD5 int64 /* number of thread redispatches within the scheduler affinity domain 5 */ - MigrationPush int64 /* number of thread migrations from the local runque to another queue due to starvation load balancing */ - MigrationS3grq int64 /* number of thread migrations from the global runque to the local runque resulting in a move accross scheduling domain 3 */ - MigrationS3pul int64 /* number of thread migrations from another processor's runque resulting in a move accross scheduling domain 3 */ - InvolCSwitch int64 /* number of involuntary thread context switches */ - VolCSwitch int64 /* number of voluntary thread context switches */ - RunQueue int64 /* number of threads on the runque */ - Bound int64 /* number of bound threads */ - DecrIntrs int64 /* number of decrementer tics interrupts */ - MpcRIntrs int64 /* number of mpc's received interrupts */ - MpcSIntrs int64 /* number of mpc's sent interrupts */ - DevIntrs int64 /* number of device interrupts */ - SoftIntrs int64 /* number of offlevel handlers called */ - PhantIntrs int64 /* number of phantom interrupts */ - IdleDonatedPurr int64 /* number of idle cycles donated by a dedicated partition enabled for donation */ - IdleDonatedSpurr int64 /* number of idle spurr cycles donated by a dedicated partition enabled for donation */ - BusyDonatedPurr int64 /* number of busy cycles donated by a dedicated partition enabled for donation */ - BusyDonatedSpurr int64 /* number of busy spurr cycles donated by a dedicated partition enabled for donation */ - IdleStolenPurr int64 /* number of idle cycles stolen by the hypervisor from a dedicated partition */ - IdleStolenSpurr int64 /* number of idle spurr cycles stolen by the hypervisor from a dedicated partition */ - BusyStolenPurr int64 /* number of busy cycles stolen by the hypervisor from a dedicated partition */ - BusyStolenSpurr int64 /* number of busy spurr cycles stolen by the hypervisor from a dedicated partition */ - Hpi int64 /* number of hypervisor page-ins */ - Hpit int64 /* Time spent in hypervisor page-ins (in nanoseconds)*/ - PUserSpurr int64 /* number of spurr cycles spent in user mode */ - PSysSpurr int64 /* number of spurr cycles spent in kernel mode */ - PIdleSpurr int64 /* number of spurr cycles spent in idle mode */ - PWaitSpurr int64 /* number of spurr cycles spent in wait mode */ - SpurrFlag int32 /* set if running in spurr mode */ - LocalDispatch int64 /* number of local thread dispatches on this logical CPU */ - NearDispatch int64 /* number of near thread dispatches on this logical CPU */ - FarDispatch int64 /* number of far thread dispatches on this logical CPU */ - CSwitches int64 /* Context switches */ - Version int64 /* version number (1, 2, etc.,) */ - TbLast int64 /* timebase counter */ - State int /* Show whether the CPU is offline or online */ - VtbLast int64 /* Last virtual timebase read */ - ICountLast int64 /* Last instruction count read */ -} - -type CPUTotal struct { - NCpus int /* number of active logical processors */ - NCpusCfg int /* number of configured processors */ - Description string /* processor description (type/official name) */ - ProcessorHz int64 /* processor speed in Hz */ - User int64 /* raw total number of clock ticks spent in user mode */ - Sys int64 /* raw total number of clock ticks spent in system mode */ - Idle int64 /* raw total number of clock ticks spent idle */ - Wait int64 /* raw total number of clock ticks spent waiting for I/O */ - PSwitch int64 /* number of process switches (change in currently running process) */ - Syscall int64 /* number of system calls executed */ - Sysread int64 /* number of read system calls executed */ - Syswrite int64 /* number of write system calls executed */ - Sysfork int64 /* number of forks system calls executed */ - Sysexec int64 /* number of execs system calls executed */ - Readch int64 /* number of characters tranferred with read system call */ - Writech int64 /* number of characters tranferred with write system call */ - DevIntrs int64 /* number of device interrupts */ - SoftIntrs int64 /* number of software interrupts */ - Lbolt int64 /* number of ticks since last reboot */ - LoadAvg1 float32 /* times the average number of runnables processes during the last 1, 5 and 15 minutes. */ - LoadAvg5 float32 /* times the average number of runnables processes during the last 1, 5 and 15 minutes. */ - LoadAvg15 float32 /* times the average number of runnables processes during the last 1, 5 and 15 minutes. */ - RunQueue int64 /* length of the run queue (processes ready) */ - SwpQueue int64 /* length of the swap queue (processes waiting to be paged in) */ - Bread int64 /* number of blocks read */ - Bwrite int64 /* number of blocks written */ - Lread int64 /* number of logical read requests */ - Lwrite int64 /* number of logical write requests */ - Phread int64 /* number of physical reads (reads on raw devices) */ - Phwrite int64 /* number of physical writes (writes on raw devices) */ - RunOcc int64 /* updated whenever runque is updated, i.e. the runqueue is occupied. This can be used to compute the simple average of ready processes */ - SwpOcc int64 /* updated whenever swpque is updated. i.e. the swpqueue is occupied. This can be used to compute the simple average processes waiting to be paged in */ - Iget int64 /* number of inode lookups */ - Namei int64 /* number of vnode lookup from a path name */ - Dirblk int64 /* number of 512-byte block reads by the directory search routine to locate an entry for a file */ - Msg int64 /* number of IPC message operations */ - Sema int64 /* number of IPC semaphore operations */ - RcvInt int64 /* number of tty receive interrupts */ - XmtInt int64 /* number of tyy transmit interrupts */ - MdmInt int64 /* number of modem interrupts */ - TtyRawInch int64 /* number of raw input characters */ - TtyCanInch int64 /* number of canonical input characters (always zero) */ - TtyRawOutch int64 /* number of raw output characters */ - Ksched int64 /* number of kernel processes created */ - Koverf int64 /* kernel process creation attempts where: -the user has forked to their maximum limit -the configuration limit of processes has been reached */ - Kexit int64 /* number of kernel processes that became zombies */ - Rbread int64 /* number of remote read requests */ - Rcread int64 /* number of cached remote reads */ - Rbwrt int64 /* number of remote writes */ - Rcwrt int64 /* number of cached remote writes */ - Traps int64 /* number of traps */ - NCpusHigh int64 /* index of highest processor online */ - PUser int64 /* raw number of physical processor tics in user mode */ - PSys int64 /* raw number of physical processor tics in system mode */ - PIdle int64 /* raw number of physical processor tics idle */ - PWait int64 /* raw number of physical processor tics waiting for I/O */ - DecrIntrs int64 /* number of decrementer tics interrupts */ - MpcRIntrs int64 /* number of mpc's received interrupts */ - MpcSIntrs int64 /* number of mpc's sent interrupts */ - PhantIntrs int64 /* number of phantom interrupts */ - IdleDonatedPurr int64 /* number of idle cycles donated by a dedicated partition enabled for donation */ - IdleDonatedSpurr int64 /* number of idle spurr cycles donated by a dedicated partition enabled for donation */ - BusyDonatedPurr int64 /* number of busy cycles donated by a dedicated partition enabled for donation */ - BusyDonatedSpurr int64 /* number of busy spurr cycles donated by a dedicated partition enabled for donation */ - IdleStolenPurr int64 /* number of idle cycles stolen by the hypervisor from a dedicated partition */ - IdleStolenSpurr int64 /* number of idle spurr cycles stolen by the hypervisor from a dedicated partition */ - BusyStolenPurr int64 /* number of busy cycles stolen by the hypervisor from a dedicated partition */ - BusyStolenSpurr int64 /* number of busy spurr cycles stolen by the hypervisor from a dedicated partition */ - IOWait int32 /* number of processes that are asleep waiting for buffered I/O */ - PhysIO int32 /* number of processes waiting for raw I/O */ - TWait int64 /* number of threads that are waiting for filesystem direct(cio) */ - Hpi int64 /* number of hypervisor page-ins */ - Hpit int64 /* Time spent in hypervisor page-ins (in nanoseconds) */ - PUserSpurr int64 /* number of spurr cycles spent in user mode */ - PSysSpurr int64 /* number of spurr cycles spent in kernel mode */ - PIdleSpurr int64 /* number of spurr cycles spent in idle mode */ - PWaitSpurr int64 /* number of spurr cycles spent in wait mode */ - SpurrFlag int /* set if running in spurr mode */ - Version int64 /* version number (1, 2, etc.,) */ - TbLast int64 /*time base counter */ - PurrCoalescing int64 /* If the calling partition is authorized to see pool wide statistics then PURR cycles consumed to coalesce data else set to zero.*/ - SpurrCoalescing int64 /* If the calling partition is authorized to see pool wide statistics then SPURR cycles consumed to coalesce data else set to zero. */ -} - -type CPUUtil struct { - Version int64 - CpuID string /* holds the id of the cpu */ - Entitlement float32 /* Partition's entitlement */ - UserPct float32 /* % of utilization in user mode */ - KernPct float32 /* % of utilization in kernel mode */ - IdlePct float32 /* % of utilization in idle mode */ - WaitPct float32 /* % of utilization in wait mode */ - PhysicalBusy float32 /* physical cpus busy */ - PhysicalConsumed float32 /* total cpus consumed by the partition */ - FreqPct float32 /* Average freq% over the last interval */ - EntitlementPct float32 /* % of entitlement used */ - BusyPct float32 /* % of entitlement busy */ - IdleDonatedPct float32 /* % idle cycles donated */ - BusyDonatedPct float32 /* % of busy cycles donated */ - IdleStolenPct float32 /* % idle cycles stolen */ - BusyStolenPct float32 /* % busy cycles stolen */ - LUserPct float32 /* % of utilization in user mode, in terms of logical processor ticks */ - LKernPct float32 /* % of utilization in kernel mode, in terms of logical processor ticks*/ - LIdlePct float32 /* % of utilization in idle mode, in terms of logical processor ticks */ - LWaitPct float32 /* % of utilization in wait mode, in terms of logical processor ticks */ - DeltaTime int64 /* delta time in milliseconds, for which utilization is evaluated */ -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_disk.go b/backend/vendor/github.com/power-devops/perfstat/types_disk.go deleted file mode 100644 index ca1493d8..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_disk.go +++ /dev/null @@ -1,176 +0,0 @@ -package perfstat - -type DiskTotal struct { - Number int32 /* total number of disks */ - Size int64 /* total size of all disks (in MB) */ - Free int64 /* free portion of all disks (in MB) */ - XRate int64 /* __rxfers: total number of transfers from disk */ - Xfers int64 /* total number of transfers to/from disk */ - Wblks int64 /* 512 bytes blocks written to all disks */ - Rblks int64 /* 512 bytes blocks read from all disks */ - Time int64 /* amount of time disks are active */ - Version int64 /* version number (1, 2, etc.,) */ - Rserv int64 /* Average read or receive service time */ - MinRserv int64 /* min read or receive service time */ - MaxRserv int64 /* max read or receive service time */ - RTimeOut int64 /* number of read request timeouts */ - RFailed int64 /* number of failed read requests */ - Wserv int64 /* Average write or send service time */ - MinWserv int64 /* min write or send service time */ - MaxWserv int64 /* max write or send service time */ - WTimeOut int64 /* number of write request timeouts */ - WFailed int64 /* number of failed write requests */ - WqDepth int64 /* instantaneous wait queue depth (number of requests waiting to be sent to disk) */ - WqTime int64 /* accumulated wait queueing time */ - WqMinTime int64 /* min wait queueing time */ - WqMaxTime int64 /* max wait queueing time */ -} - -// Disk Adapter Types -const ( - DA_SCSI = 0 /* 0 ==> SCSI, SAS, other legacy adapter types */ - DA_VSCSI /* 1 ==> Virtual SCSI/SAS Adapter */ - DA_FCA /* 2 ==> Fiber Channel Adapter */ -) - -type DiskAdapter struct { - Name string /* name of the adapter (from ODM) */ - Description string /* adapter description (from ODM) */ - Number int32 /* number of disks connected to adapter */ - Size int64 /* total size of all disks (in MB) */ - Free int64 /* free portion of all disks (in MB) */ - XRate int64 /* __rxfers: total number of reads via adapter */ - Xfers int64 /* total number of transfers via adapter */ - Rblks int64 /* 512 bytes blocks written via adapter */ - Wblks int64 /* 512 bytes blocks read via adapter */ - Time int64 /* amount of time disks are active */ - Version int64 /* version number (1, 2, etc.,) */ - AdapterType int64 /* 0 ==> SCSI, SAS, other legacy adapter types, 1 ==> Virtual SCSI/SAS Adapter, 2 ==> Fiber Channel Adapter */ - DkBSize int64 /* Number of Bytes in a block for this disk*/ - DkRxfers int64 /* Number of transfers from disk */ - DkRserv int64 /* read or receive service time */ - DkWserv int64 /* write or send service time */ - MinRserv int64 /* Minimum read service time */ - MaxRserv int64 /* Maximum read service time */ - MinWserv int64 /* Minimum Write service time */ - MaxWserv int64 /* Maximum write service time */ - WqDepth int64 /* driver wait queue depth */ - WqSampled int64 /* accumulated sampled dk_wq_depth */ - WqTime int64 /* accumulated wait queueing time */ - WqMinTime int64 /* minimum wait queueing time */ - WqMaxTime int64 /* maximum wait queueing time */ - QFull int64 /* "Service" queue full occurrence count (number of times the adapter/devices connected to the adapter is not accepting any more request) */ - QSampled int64 /* accumulated sampled */ -} - -type Disk struct { - Name string /* name of the disk */ - Description string /* disk description (from ODM) */ - VGName string /* volume group name (from ODM) */ - Size int64 /* size of the disk (in MB) */ - Free int64 /* free portion of the disk (in MB) */ - BSize int64 /* disk block size (in bytes) */ - XRate int64 /* number of transfers from disk */ - Xfers int64 /* number of transfers to/from disk */ - Wblks int64 /* number of blocks written to disk */ - Rblks int64 /* number of blocks read from disk */ - QDepth int64 /* instantaneous "service" queue depth (number of requests sent to disk and not completed yet) */ - Time int64 /* amount of time disk is active */ - Adapter string /* disk adapter name */ - PathsCount int32 /* number of paths to this disk */ - QFull int64 /* "service" queue full occurrence count (number of times the disk is not accepting any more request) */ - Rserv int64 /* read or receive service time */ - RTimeOut int64 /* number of read request timeouts */ - Rfailed int64 /* number of failed read requests */ - MinRserv int64 /* min read or receive service time */ - MaxRserv int64 /* max read or receive service time */ - Wserv int64 /* write or send service time */ - WTimeOut int64 /* number of write request timeouts */ - Wfailed int64 /* number of failed write requests */ - MinWserv int64 /* min write or send service time */ - MaxWserv int64 /* max write or send service time */ - WqDepth int64 /* instantaneous wait queue depth (number of requests waiting to be sent to disk) */ - WqSampled int64 /* accumulated sampled dk_wq_depth */ - WqTime int64 /* accumulated wait queueing time */ - WqMinTime int64 /* min wait queueing time */ - WqMaxTime int64 /* max wait queueing time */ - QSampled int64 /* accumulated sampled dk_q_depth */ - Version int64 /* version number (1, 2, etc.,) */ - PseudoDisk bool /*Indicates whether pseudo or physical disk */ - VTDisk bool /* 1- Virtual Target Disk, 0 - Others */ -} - -type DiskPath struct { - Name string /* name of the path */ - XRate int64 /* __rxfers: number of reads via the path */ - Xfers int64 /* number of transfers via the path */ - Rblks int64 /* 512 bytes blocks written via the path */ - Wblks int64 /* 512 bytes blocks read via the path */ - Time int64 /* amount of time disks are active */ - Adapter string /* disk adapter name (from ODM) */ - QFull int64 /* "service" queue full occurrence count (number of times the disk is not accepting any more request) */ - Rserv int64 /* read or receive service time */ - RTimeOut int64 /* number of read request timeouts */ - Rfailed int64 /* number of failed read requests */ - MinRserv int64 /* min read or receive service time */ - MaxRserv int64 /* max read or receive service time */ - Wserv int64 /* write or send service time */ - WTimeOut int64 /* number of write request timeouts */ - Wfailed int64 /* number of failed write requests */ - MinWserv int64 /* min write or send service time */ - MaxWserv int64 /* max write or send service time */ - WqDepth int64 /* instantaneous wait queue depth (number of requests waiting to be sent to disk) */ - WqSampled int64 /* accumulated sampled dk_wq_depth */ - WqTime int64 /* accumulated wait queueing time */ - WqMinTime int64 /* min wait queueing time */ - WqMaxTime int64 /* max wait queueing time */ - QSampled int64 /* accumulated sampled dk_q_depth */ - Version int64 /* version number (1, 2, etc.,) */ -} - -const ( - FC_DOWN = 0 // FC Adapter state is DOWN - FC_UP = 1 // FC Adapter state is UP -) - -const ( - FCT_FCHBA = 0 // FC type - real Fiber Channel Adapter - FCT_VFC = 1 // FC type - virtual Fiber Channel -) - -type FCAdapter struct { - Version int64 /* version number (1, 2, etc.,) */ - Name string /* name of the adapter */ - State int32 /* FC Adapter state UP or DOWN */ - InputRequests int64 /* Number of Input Requests*/ - OutputRequests int64 /* Number of Output Requests */ - InputBytes int64 /* Number of Input Bytes */ - OutputBytes int64 /* Number of Output Bytes */ - EffMaxTransfer int64 /* Adapter's Effective Maximum Transfer Value */ - NoDMAResourceCnt int64 /* Count of DMA failures due to no DMA Resource available */ - NoCmdResourceCnt int64 /* Count of failures to allocate a command due to no command resource available */ - AttentionType int32 /* Link up or down Indicator */ - SecondsSinceLastReset int64 /* Displays the seconds since last reset of the statistics on the adapter */ - TxFrames int64 /* Number of frames transmitted */ - TxWords int64 /* Fiber Channel Kbytes transmitted */ - RxFrames int64 /* Number of Frames Received */ - RxWords int64 /* Fiber Channel Kbytes Received */ - LIPCount int64 /* Count of LIP (Loop Initialization Protocol) Events received in case we have FC-AL */ - NOSCount int64 /* Count of NOS (Not_Operational) Events. This indicates a link failure state. */ - ErrorFrames int64 /* Number of frames received with the CRC Error */ - DumpedFrames int64 /* Number of lost frames */ - LinkFailureCount int64 /* Count of Link failures */ - LossofSyncCount int64 /* Count of loss of sync */ - LossofSignal int64 /* Count of loss of Signal */ - PrimitiveSeqProtocolErrCount int64 /* number of times a primitive sequence was in error */ - InvalidTxWordCount int64 /* Count of Invalid Transmission words received */ - InvalidCRCCount int64 /* Count of CRC Errors in a Received Frame */ - PortFcId int64 /* SCSI Id of the adapter */ - PortSpeed int64 /* Speed of Adapter in GBIT */ - PortType string /* Type of connection. The Possible Values are Fabric, Private Loop, Point-to-Point, unknown */ - PortWWN int64 /* World Wide Port name */ - PortSupportedSpeed int64 /* Supported Port Speed in GBIT */ - AdapterType int /* 0 - Fiber Chanel, 1 - Virtual Fiber Chanel Adapter */ - VfcName string /* name of the Virtual Fiber Chanel(VFC) adapter */ - ClientPartName string /* name of the client partition */ -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_fs.go b/backend/vendor/github.com/power-devops/perfstat/types_fs.go deleted file mode 100644 index 0be048a3..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_fs.go +++ /dev/null @@ -1,195 +0,0 @@ -package perfstat - -import ( - "strings" -) - -type FileSystem struct { - Device string /* name of the mounted device */ - MountPoint string /* where the device is mounted */ - FSType int /* File system type, see the constants below */ - Flags int /* Flags of the file system */ - TotalBlocks int64 /* number of 512 bytes blocks in the filesystem */ - FreeBlocks int64 /* number of free 512 bytes block in the filesystem */ - TotalInodes int64 /* total number of inodes in the filesystem */ - FreeInodes int64 /* number of free inodes in the filesystem */ -} - -func (f *FileSystem) TypeString() string { - switch f.FSType { - case FS_JFS2: - return "jfs2" - case FS_NAMEFS: - return "namefs" - case FS_NFS: - return "nfs" - case FS_JFS: - return "jfs" - case FS_CDROM: - return "cdrfs" - case FS_PROCFS: - return "procfs" - case FS_SFS: - return "sfs" - case FS_CACHEFS: - return "cachefs" - case FS_NFS3: - return "nfs3" - case FS_AUTOFS: - return "autofs" - case FS_POOLFS: - return "poolfs" - case FS_VXFS: - return "vxfs" - case FS_VXODM: - return "vxodm" - case FS_UDF: - return "udfs" - case FS_NFS4: - return "nfs4" - case FS_RFS4: - return "rfs4" - case FS_CIFS: - return "cifs" - case FS_PMEMFS: - return "pmemfs" - case FS_AHAFS: - return "ahafs" - case FS_STNFS: - return "stnfs" - case FS_ASMFS: - return "asmfs" - } - return "unknown" -} - -func (f *FileSystem) FlagsString() string { - var flags []string - - switch { - case f.Flags&VFS_READONLY != 0: - flags = append(flags, "ro") - case f.Flags&VFS_REMOVABLE != 0: - flags = append(flags, "removable") - case f.Flags&VFS_DEVMOUNT != 0: - flags = append(flags, "local") - case f.Flags&VFS_REMOTE != 0: - flags = append(flags, "remote") - case f.Flags&VFS_SYSV_MOUNT != 0: - flags = append(flags, "sysv") - case f.Flags&VFS_UNMOUNTING != 0: - flags = append(flags, "unmounting") - case f.Flags&VFS_NOSUID != 0: - flags = append(flags, "nosuid") - case f.Flags&VFS_NODEV != 0: - flags = append(flags, "nodev") - case f.Flags&VFS_NOINTEG != 0: - flags = append(flags, "nointeg") - case f.Flags&VFS_NOMANAGER != 0: - flags = append(flags, "nomanager") - case f.Flags&VFS_NOCASE != 0: - flags = append(flags, "nocase") - case f.Flags&VFS_UPCASE != 0: - flags = append(flags, "upcase") - case f.Flags&VFS_NBC != 0: - flags = append(flags, "nbc") - case f.Flags&VFS_MIND != 0: - flags = append(flags, "mind") - case f.Flags&VFS_RBR != 0: - flags = append(flags, "rbr") - case f.Flags&VFS_RBW != 0: - flags = append(flags, "rbw") - case f.Flags&VFS_DISCONNECTED != 0: - flags = append(flags, "disconnected") - case f.Flags&VFS_SHUTDOWN != 0: - flags = append(flags, "shutdown") - case f.Flags&VFS_VMOUNTOK != 0: - flags = append(flags, "vmountok") - case f.Flags&VFS_SUSER != 0: - flags = append(flags, "suser") - case f.Flags&VFS_SOFT_MOUNT != 0: - flags = append(flags, "soft") - case f.Flags&VFS_UNMOUNTED != 0: - flags = append(flags, "unmounted") - case f.Flags&VFS_DEADMOUNT != 0: - flags = append(flags, "deadmount") - case f.Flags&VFS_SNAPSHOT != 0: - flags = append(flags, "snapshot") - case f.Flags&VFS_VCM_ON != 0: - flags = append(flags, "vcm_on") - case f.Flags&VFS_VCM_MONITOR != 0: - flags = append(flags, "vcm_monitor") - case f.Flags&VFS_ATIMEOFF != 0: - flags = append(flags, "noatime") - case f.Flags&VFS_READMOSTLY != 0: - flags = append(flags, "readmostly") - case f.Flags&VFS_CIOR != 0: - flags = append(flags, "cior") - case f.Flags&VFS_CIO != 0: - flags = append(flags, "cio") - case f.Flags&VFS_DIO != 0: - flags = append(flags, "dio") - } - - return strings.Join(flags, ",") -} - -// Filesystem types -const ( - FS_JFS2 = 0 /* AIX physical fs "jfs2" */ - FS_NAMEFS = 1 /* AIX pseudo fs "namefs" */ - FS_NFS = 2 /* SUN Network File System "nfs" */ - FS_JFS = 3 /* AIX R3 physical fs "jfs" */ - FS_CDROM = 5 /* CDROM File System "cdrom" */ - FS_PROCFS = 6 /* PROCFS File System "proc" */ - FS_SFS = 16 /* AIX Special FS (STREAM mounts) */ - FS_CACHEFS = 17 /* Cachefs file system */ - FS_NFS3 = 18 /* NFSv3 file system */ - FS_AUTOFS = 19 /* Automount file system */ - FS_POOLFS = 20 /* Pool file system */ - FS_VXFS = 32 /* THRPGIO File System "vxfs" */ - FS_VXODM = 33 /* For Veritas File System */ - FS_UDF = 34 /* UDFS file system */ - FS_NFS4 = 35 /* NFSv4 file system */ - FS_RFS4 = 36 /* NFSv4 Pseudo file system */ - FS_CIFS = 37 /* AIX SMBFS (CIFS client) */ - FS_PMEMFS = 38 /* MCR Async Mobility pseudo file system */ - FS_AHAFS = 39 /* AHAFS File System "aha" */ - FS_STNFS = 40 /* Short-Term NFS */ - FS_ASMFS = 41 /* Oracle ASM FS */ -) - -// Filesystem flags -const ( - VFS_READONLY = 0x00000001 /* rdonly access to vfs */ - VFS_REMOVABLE = 0x00000002 /* removable (diskette) media */ - VFS_DEVMOUNT = 0x00000004 /* physical device mount */ - VFS_REMOTE = 0x00000008 /* file system is on network */ - VFS_SYSV_MOUNT = 0x00000010 /* System V style mount */ - VFS_UNMOUNTING = 0x00000020 /* originated by unmount() */ - VFS_NOSUID = 0x00000040 /* don't maintain suid-ness across this mount */ - VFS_NODEV = 0x00000080 /* don't allow device access across this mount */ - VFS_NOINTEG = 0x00000100 /* no integrity mount option */ - VFS_NOMANAGER = 0x00000200 /* mount managed fs w/o manager */ - VFS_NOCASE = 0x00000400 /* do not map dir names */ - VFS_UPCASE = 0x00000800 /* map dir names to uppercase */ - VFS_NBC = 0x00001000 /* NBC cached file in this vfs */ - VFS_MIND = 0x00002000 /* multi-segment .indirect */ - VFS_RBR = 0x00004000 /* Release-behind when reading */ - VFS_RBW = 0x00008000 /* Release-behind when writing */ - VFS_DISCONNECTED = 0x00010000 /* file mount not in use */ - VFS_SHUTDOWN = 0x00020000 /* forced unmount for shutdown */ - VFS_VMOUNTOK = 0x00040000 /* dir/file mnt permission flag */ - VFS_SUSER = 0x00080000 /* client-side suser perm. flag */ - VFS_SOFT_MOUNT = 0x00100000 /* file-over-file or directory over directory "soft" mount */ - VFS_UNMOUNTED = 0x00200000 /* unmount completed, stale vnodes are left in the vfs */ - VFS_DEADMOUNT = 0x00400000 /* softmount vfs should be disconnected at last vnode free */ - VFS_SNAPSHOT = 0x00800000 /* snapshot mount */ - VFS_VCM_ON = 0x01000000 /* VCM is currently active */ - VFS_VCM_MONITOR = 0x02000000 /* VCM monitoring is active */ - VFS_ATIMEOFF = 0x04000000 /* no atime updates during i/o */ - VFS_READMOSTLY = 0x10000000 /* ROFS allows open for write */ - VFS_CIOR = 0x20000000 /* O_CIOR mount */ - VFS_CIO = 0x40000000 /* O_CIO mount */ - VFS_DIO = 0x80000000 /* O_DIRECT mount */ -) diff --git a/backend/vendor/github.com/power-devops/perfstat/types_lpar.go b/backend/vendor/github.com/power-devops/perfstat/types_lpar.go deleted file mode 100644 index 2d3c32fa..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_lpar.go +++ /dev/null @@ -1,68 +0,0 @@ -package perfstat - -type PartitionType struct { - SmtCapable bool /* OS supports SMT mode */ - SmtEnabled bool /* SMT mode is on */ - LparCapable bool /* OS supports logical partitioning */ - LparEnabled bool /* logical partitioning is on */ - SharedCapable bool /* OS supports shared processor LPAR */ - SharedEnabled bool /* partition runs in shared mode */ - DLparCapable bool /* OS supports dynamic LPAR */ - Capped bool /* partition is capped */ - Kernel64bit bool /* kernel is 64 bit */ - PoolUtilAuthority bool /* pool utilization available */ - DonateCapable bool /* capable of donating cycles */ - DonateEnabled bool /* enabled for donating cycles */ - AmsCapable bool /* 1 = AMS(Active Memory Sharing) capable, 0 = Not AMS capable */ - AmsEnabled bool /* 1 = AMS(Active Memory Sharing) enabled, 0 = Not AMS enabled */ - PowerSave bool /*1= Power saving mode is enabled*/ - AmeEnabled bool /* Active Memory Expansion is enabled */ - SharedExtended bool -} - -type PartitionValue struct { - Online int64 - Max int64 - Min int64 - Desired int64 -} - -type PartitionConfig struct { - Version int64 /* Version number */ - Name string /* Partition Name */ - Node string /* Node Name */ - Conf PartitionType /* Partition Properties */ - Number int32 /* Partition Number */ - GroupID int32 /* Group ID */ - ProcessorFamily string /* Processor Type */ - ProcessorModel string /* Processor Model */ - MachineID string /* Machine ID */ - ProcessorMhz float64 /* Processor Clock Speed in MHz */ - NumProcessors PartitionValue /* Number of Configured Physical Processors in frame*/ - OSName string /* Name of Operating System */ - OSVersion string /* Version of operating System */ - OSBuild string /* Build of Operating System */ - LCpus int32 /* Number of Logical CPUs */ - SmtThreads int32 /* Number of SMT Threads */ - Drives int32 /* Total Number of Drives */ - NetworkAdapters int32 /* Total Number of Network Adapters */ - CpuCap PartitionValue /* Min, Max and Online CPU Capacity */ - Weightage int32 /* Variable Processor Capacity Weightage */ - EntCapacity int32 /* number of processor units this partition is entitled to receive */ - VCpus PartitionValue /* Min, Max and Online Virtual CPUs */ - PoolID int32 /* Shared Pool ID of physical processors, to which this partition belongs*/ - ActiveCpusInPool int32 /* Count of physical CPUs in the shared processor pool, to which this partition belongs */ - PoolWeightage int32 /* Pool Weightage */ - SharedPCpu int32 /* Number of physical processors allocated for shared processor use */ - MaxPoolCap int32 /* Maximum processor capacity of partition's pool */ - EntPoolCap int32 /* Entitled processor capacity of partition's pool */ - Mem PartitionValue /* Min, Max and Online Memory */ - MemWeightage int32 /* Variable Memory Capacity Weightage */ - TotalIOMemoryEntitlement int64 /* I/O Memory Entitlement of the partition in bytes */ - MemPoolID int32 /* AMS pool id of the pool the LPAR belongs to */ - HyperPgSize int64 /* Hypervisor page size in KB*/ - ExpMem PartitionValue /* Min, Max and Online Expanded Memory */ - TargetMemExpFactor int64 /* Target Memory Expansion Factor scaled by 100 */ - TargetMemExpSize int64 /* Expanded Memory Size in MB */ - SubProcessorMode int32 /* Split core mode, its value can be 0,1,2 or 4. 0 for unsupported, 1 for capable but not enabled, 2 or 4 for enabled*/ -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_lvm.go b/backend/vendor/github.com/power-devops/perfstat/types_lvm.go deleted file mode 100644 index 8f7176a6..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_lvm.go +++ /dev/null @@ -1,31 +0,0 @@ -package perfstat - -type LogicalVolume struct { - Name string /* logical volume name */ - VGName string /* volume group name */ - OpenClose int64 /* LVM_QLVOPEN, etc. (see lvm.h) */ - State int64 /* LVM_UNDEF, etc. (see lvm.h) */ - MirrorPolicy int64 /* LVM_PARALLEL, etc. (see lvm.h) */ - MirrorWriteConsistency int64 /* LVM_CONSIST, etc. (see lvm.h) */ - WriteVerify int64 /* LVM_VERIFY, etc. (see lvm.h) */ - PPsize int64 /* physical partition size in MB */ - LogicalPartitions int64 /* total number of logical paritions configured for this logical volume */ - Mirrors int32 /* number of physical mirrors for each logical partition */ - IOCnt int64 /* Number of read and write requests */ - KBReads int64 /* Number of Kilobytes read */ - KBWrites int64 /* Number of Kilobytes written */ - Version int64 /* version number (1, 2, etc.,) */ -} - -type VolumeGroup struct { - Name string /* volume group name */ - TotalDisks int64 /* number of physical volumes in the volume group */ - ActiveDisks int64 /* number of active physical volumes in the volume group */ - TotalLogicalVolumes int64 /* number of logical volumes in the volume group */ - OpenedLogicalVolumes int64 /* number of logical volumes opened in the volume group */ - IOCnt int64 /* Number of read and write requests */ - KBReads int64 /* Number of Kilobytes read */ - KBWrites int64 /* Number of Kilobytes written */ - Version int64 /* version number (1, 2, etc.,) */ - VariedState int /* Indicates volume group available or not */ -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_memory.go b/backend/vendor/github.com/power-devops/perfstat/types_memory.go deleted file mode 100644 index 096d29ad..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_memory.go +++ /dev/null @@ -1,101 +0,0 @@ -package perfstat - -type MemoryTotal struct { - VirtualTotal int64 /* total virtual memory (in 4KB pages) */ - RealTotal int64 /* total real memory (in 4KB pages) */ - RealFree int64 /* free real memory (in 4KB pages) */ - RealPinned int64 /* real memory which is pinned (in 4KB pages) */ - RealInUse int64 /* real memory which is in use (in 4KB pages) */ - BadPages int64 /* number of bad pages */ - PageFaults int64 /* number of page faults */ - PageIn int64 /* number of pages paged in */ - PageOut int64 /* number of pages paged out */ - PgSpIn int64 /* number of page ins from paging space */ - PgSpOut int64 /* number of page outs from paging space */ - Scans int64 /* number of page scans by clock */ - Cycles int64 /* number of page replacement cycles */ - PgSteals int64 /* number of page steals */ - NumPerm int64 /* number of frames used for files (in 4KB pages) */ - PgSpTotal int64 /* total paging space (in 4KB pages) */ - PgSpFree int64 /* free paging space (in 4KB pages) */ - PgSpRsvd int64 /* reserved paging space (in 4KB pages) */ - RealSystem int64 /* real memory used by system segments (in 4KB pages). */ - RealUser int64 /* real memory used by non-system segments (in 4KB pages). */ - RealProcess int64 /* real memory used by process segments (in 4KB pages). */ - VirtualActive int64 /* Active virtual pages. Virtual pages are considered active if they have been accessed */ - IOME int64 /* I/O memory entitlement of the partition in bytes*/ - IOMU int64 /* I/O memory entitlement of the partition in use in bytes*/ - IOHWM int64 /* High water mark of I/O memory entitlement used in bytes*/ - PMem int64 /* Amount of physical mmeory currently backing partition's logical memory in bytes*/ - CompressedTotal int64 /* Total numbers of pages in compressed pool (in 4KB pages) */ - CompressedWSegPg int64 /* Number of compressed working storage pages */ - CPgIn int64 /* number of page ins to compressed pool */ - CPgOut int64 /* number of page outs from compressed pool */ - TrueSize int64 /* True Memory Size in 4KB pages */ - ExpandedMemory int64 /* Expanded Memory Size in 4KB pages */ - CompressedWSegSize int64 /* Total size of the compressed working storage pages in the pool */ - TargetCPoolSize int64 /* Target Compressed Pool Size in bytes */ - MaxCPoolSize int64 /* Max Size of Compressed Pool in bytes */ - MinUCPoolSize int64 /* Min Size of Uncompressed Pool in bytes */ - CPoolSize int64 /* Compressed Pool size in bytes */ - UCPoolSize int64 /* Uncompressed Pool size in bytes */ - CPoolInUse int64 /* Compressed Pool Used in bytes */ - UCPoolInUse int64 /* Uncompressed Pool Used in bytes */ - Version int64 /* version number (1, 2, etc.,) */ - RealAvailable int64 /* number of pages (in 4KB pages) of memory available without paging out working segments */ - BytesCoalesced int64 /* The number of bytes of the calling partition.s logical real memory coalesced because they contained duplicated data */ - BytesCoalescedMemPool int64 /* number of bytes of logical real memory coalesced because they contained duplicated data in the calling partition.s memory */ -} - -type MemoryPage struct { - PSize int64 /* page size in bytes */ - RealTotal int64 /* number of real memory frames of this page size */ - RealFree int64 /* number of pages on free list */ - RealPinned int64 /* number of pages pinned */ - RealInUse int64 /* number of pages in use */ - PgExct int64 /* number of page faults */ - PgIns int64 /* number of pages paged in */ - PgOuts int64 /* number of pages paged out */ - PgSpIns int64 /* number of page ins from paging space */ - PgSpOuts int64 /* number of page outs from paging space */ - Scans int64 /* number of page scans by clock */ - Cycles int64 /* number of page replacement cycles */ - PgSteals int64 /* number of page steals */ - NumPerm int64 /* number of frames used for files */ - NumPgSp int64 /* number of pages with allocated paging space */ - RealSystem int64 /* number of pages used by system segments. */ - RealUser int64 /* number of pages used by non-system segments. */ - RealProcess int64 /* number of pages used by process segments. */ - VirtActive int64 /* Active virtual pages. */ - ComprsdTotal int64 /* Number of pages of this size compressed */ - ComprsdWsegPgs int64 /* Number of compressed working storage pages */ - CPgIns int64 /* number of page ins of this page size to compressed pool */ - CPgOuts int64 /* number of page outs of this page size from compressed pool */ - CPoolInUse int64 /* Compressed Size of this page size in Compressed Pool */ - UCPoolSize int64 /* Uncompressed Pool size in bytes of this page size */ - ComprsdWsegSize int64 /* Total size of the compressed working storage pages in the pool */ - Version int64 /* version number (1, 2, etc.,) */ - RealAvail int64 /* number of pages (in 4KB pages) of memory available without paging out working segments */ -} - -// paging space types -const ( - LV_PAGING = 1 - NFS_PAGING = 2 - UNKNOWN_PAGING = 3 -) - -type PagingSpace struct { - Name string /* Paging space name */ - Type uint8 /* type of paging device (LV_PAGING or NFS_PAGING) */ - VGName string /* volume group name */ - Hostname string /* host name of paging server */ - Filename string /* swap file name on server */ - LPSize int64 /* size in number of logical partitions */ - MBSize int64 /* size in megabytes */ - MBUsed int64 /* portion used in megabytes */ - IOPending int64 /* number of pending I/O */ - Active uint8 /* indicates if active (1 if so, 0 if not) */ - Automatic uint8 /* indicates if automatic (1 if so, 0 if not) */ - Version int64 /* version number (1, 2, etc.,) */ -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_network.go b/backend/vendor/github.com/power-devops/perfstat/types_network.go deleted file mode 100644 index e69d0041..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_network.go +++ /dev/null @@ -1,163 +0,0 @@ -package perfstat - -// Network Interface types -const ( - IFT_OTHER = 0x1 - IFT_1822 = 0x2 /* old-style arpanet imp */ - IFT_HDH1822 = 0x3 /* HDH arpanet imp */ - IFT_X25DDN = 0x4 /* x25 to imp */ - IFT_X25 = 0x5 /* PDN X25 interface (RFC877) */ - IFT_ETHER = 0x6 /* Ethernet CSMACD */ - IFT_ISO88023 = 0x7 /* CMSA CD */ - IFT_ISO88024 = 0x8 /* Token Bus */ - IFT_ISO88025 = 0x9 /* Token Ring */ - IFT_ISO88026 = 0xa /* MAN */ - IFT_STARLAN = 0xb - IFT_P10 = 0xc /* Proteon 10MBit ring */ - IFT_P80 = 0xd /* Proteon 10MBit ring */ - IFT_HY = 0xe /* Hyperchannel */ - IFT_FDDI = 0xf - IFT_LAPB = 0x10 - IFT_SDLC = 0x11 - IFT_T1 = 0x12 - IFT_CEPT = 0x13 /* E1 - european T1 */ - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_PTPSERIAL = 0x16 /* Proprietary PTP serial */ - IFT_PPP = 0x17 /* RFC 1331 */ - IFT_LOOP = 0x18 /* loopback */ - IFT_EON = 0x19 /* ISO over IP */ - IFT_XETHER = 0x1a /* obsolete 3MB experimental ethernet */ - IFT_NSIP = 0x1b /* XNS over IP */ - IFT_SLIP = 0x1c /* IP over generic TTY */ - IFT_ULTRA = 0x1d /* Ultra Technologies */ - IFT_DS3 = 0x1e /* Generic T3 */ - IFT_SIP = 0x1f /* SMDS */ - IFT_FRELAY = 0x20 /* Frame Relay DTE only */ - IFT_RS232 = 0x21 - IFT_PARA = 0x22 /* parallel-port */ - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 /* ATM cells */ - IFT_MIOX25 = 0x26 - IFT_SONET = 0x27 /* SONET or SDH */ - IFT_X25PLE = 0x28 - IFT_ISO88022LLC = 0x29 - IFT_LOCALTALK = 0x2a - IFT_SMDSDXI = 0x2b - IFT_FRELAYDCE = 0x2c /* Frame Relay DCE */ - IFT_V35 = 0x2d - IFT_HSSI = 0x2e - IFT_HIPPI = 0x2f - IFT_MODEM = 0x30 /* Generic Modem */ - IFT_AAL5 = 0x31 /* AAL5 over ATM */ - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SMDSICIP = 0x34 /* SMDS InterCarrier Interface */ - IFT_PROPVIRTUAL = 0x35 /* Proprietary Virtual/internal */ - IFT_PROPMUX = 0x36 /* Proprietary Multiplexing */ - IFT_VIPA = 0x37 /* Virtual Interface */ - IFT_SN = 0x38 /* Federation Switch */ - IFT_SP = 0x39 /* SP switch */ - IFT_FCS = 0x3a /* IP over Fiber Channel */ - IFT_TUNNEL = 0x3b - IFT_GIFTUNNEL = 0x3c /* IPv4 over IPv6 tunnel */ - IFT_HF = 0x3d /* Support for PERCS HFI*/ - IFT_CLUSTER = 0x3e /* cluster pseudo network interface */ - IFT_FB = 0xc7 /* IP over Infiniband. Number by IANA */ -) - -type NetIfaceTotal struct { - Number int32 /* number of network interfaces */ - IPackets int64 /* number of packets received on interface */ - IBytes int64 /* number of bytes received on interface */ - IErrors int64 /* number of input errors on interface */ - OPackets int64 /* number of packets sent on interface */ - OBytes int64 /* number of bytes sent on interface */ - OErrors int64 /* number of output errors on interface */ - Collisions int64 /* number of collisions on csma interface */ - XmitDrops int64 /* number of packets not transmitted */ - Version int64 /* version number (1, 2, etc.,) */ -} - -type NetIface struct { - Name string /* name of the interface */ - Description string /* interface description (from ODM, similar to lscfg output) */ - Type uint8 /* ethernet, tokenring, etc. interpretation can be done using /usr/include/net/if_types.h */ - MTU int64 /* network frame size */ - IPackets int64 /* number of packets received on interface */ - IBytes int64 /* number of bytes received on interface */ - IErrors int64 /* number of input errors on interface */ - OPackets int64 /* number of packets sent on interface */ - OBytes int64 /* number of bytes sent on interface */ - OErrors int64 /* number of output errors on interface */ - Collisions int64 /* number of collisions on csma interface */ - Bitrate int64 /* adapter rating in bit per second */ - XmitDrops int64 /* number of packets not transmitted */ - Version int64 /* version number (1, 2, etc.,) */ - IfIqDrops int64 /* Dropped on input, this interface */ - IfArpDrops int64 /* Dropped because no arp response */ -} - -type NetBuffer struct { - Name string /* size in ascii, always power of 2 (ex: "32", "64", "128") */ - InUse int64 /* number of buffer currently allocated */ - Calls int64 /* number of buffer allocations since last reset */ - Delayed int64 /* number of delayed allocations */ - Free int64 /* number of free calls */ - Failed int64 /* number of failed allocations */ - HighWatermark int64 /* high threshold for number of buffer allocated */ - Freed int64 /* number of buffers freed */ - Version int64 /* version number (1, 2, etc.,) */ -} - -// Network adapter types -const ( - NET_PHY = 0 /* physical device */ - NET_SEA = 1 /* shared ethernet adapter */ - NET_VIR = 2 /* virtual device */ - NET_HEA = 3 /* host ethernet adapter */ - NET_EC = 4 /* etherchannel */ - NET_VLAN = 5 /* vlan pseudo device */ -) - -type NetAdapter struct { - Version int64 /* version number (1,2, etc) */ - Name string /* name of the adapter */ - TxPackets int64 /* Transmit Packets on interface */ - TxBytes int64 /* Transmit Bytes on interface */ - TxInterrupts int64 /* Transfer Interrupts */ - TxErrors int64 /* Transmit Errors */ - TxPacketsDropped int64 /* Packets Dropped at the time of Data Transmission */ - TxQueueSize int64 /* Maximum Packets on Software Transmit Queue */ - TxQueueLen int64 /* Transmission Queue Length */ - TxQueueOverflow int64 /* Transmission Queue Overflow */ - TxBroadcastPackets int64 /* Number of Broadcast Packets Transmitted */ - TxMulticastPackets int64 /* Number of Multicast packets Transmitted */ - TxCarrierSense int64 /* Lost Carrier Sense signal count */ - TxDMAUnderrun int64 /* Count of DMA Under-runs for Transmission */ - TxLostCTSErrors int64 /* The number of unsuccessful transmissions due to the loss of the Clear-to-Send signal error */ - TxMaxCollisionErrors int64 /* Maximum Collision Errors at Transmission */ - TxLateCollisionErrors int64 /* Late Collision Errors at Transmission */ - TxDeferred int64 /* The number of packets deferred for Transmission. */ - TxTimeoutErrors int64 /* Time Out Errors for Transmission */ - TxSingleCollisionCount int64 /* Count of Single Collision error at Transmission */ - TxMultipleCollisionCount int64 /* Count of Multiple Collision error at Transmission */ - RxPackets int64 /* Receive Packets on interface */ - RxBytes int64 /* Receive Bytes on interface */ - RxInterrupts int64 /* Receive Interrupts */ - RxErrors int64 /* Input errors on interface */ - RxPacketsDropped int64 /* The number of packets accepted by the device driver for transmission which were not (for any reason) given to the device. */ - RxBadPackets int64 /* Count of Bad Packets Received. */ - RxMulticastPackets int64 /* Number of MultiCast Packets Received */ - RxBroadcastPackets int64 /* Number of Broadcast Packets Received */ - RxCRCErrors int64 /* Count of Packets Received with CRC errors */ - RxDMAOverrun int64 /* Count of DMA over-runs for Data Receival. */ - RxAlignmentErrors int64 /* Packets Received with Alignment Error */ - RxNoResourceErrors int64 /* Packets Received with No Resource Errors */ - RxCollisionErrors int64 /* Packets Received with Collision errors */ - RxPacketTooShortErrors int64 /* Count of Short Packets Received. */ - RxPacketTooLongErrors int64 /* Count of Too Long Packets Received. */ - RxPacketDiscardedByAdapter int64 /* Count of Received Packets discarded by Adapter. */ - AdapterType int32 /* 0 - Physical, 1 - SEA, 2 - Virtual, 3 -HEA */ -} diff --git a/backend/vendor/github.com/power-devops/perfstat/types_process.go b/backend/vendor/github.com/power-devops/perfstat/types_process.go deleted file mode 100644 index 325c70b0..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/types_process.go +++ /dev/null @@ -1,43 +0,0 @@ -package perfstat - -type Process struct { - Version int64 /* version number (1, 2, etc.,) */ - PID int64 /* Process ID */ - ProcessName string /* Name of The Process */ - Priority int32 /* Process Priority */ - NumThreads int64 /* Thread Count */ - UID int64 /* Owner Info */ - ClassID int64 /* WLM Class Name */ - Size int64 /* Virtual Size of the Process in KB(Exclusive Usage, Leaving all Shared Library Text & Shared File Pages, Shared Memory, Memory Mapped) */ - RealMemData int64 /* Real Memory used for Data in KB */ - RealMemText int64 /* Real Memory used for Text in KB */ - VirtMemData int64 /* Virtual Memory used to Data in KB */ - VirtMemText int64 /* Virtual Memory used for Text in KB */ - SharedLibDataSize int64 /* Data Size from Shared Library in KB */ - HeapSize int64 /* Heap Size in KB */ - RealInUse int64 /* The Real memory in use(in KB) by the process including all kind of segments (excluding system segments). This includes Text, Data, Shared Library Text, Shared Library Data, File Pages, Shared Memory & Memory Mapped */ - VirtInUse int64 /* The Virtual memory in use(in KB) by the process including all kind of segments (excluding system segments). This includes Text, Data, Shared Library Text, Shared Library Data, File Pages, Shared Memory & Memory Mapped */ - Pinned int64 /* Pinned Memory(in KB) for this process inclusive of all segments */ - PgSpInUse int64 /* Paging Space used(in KB) inclusive of all segments */ - FilePages int64 /* File Pages used(in KB) including shared pages */ - RealInUseMap int64 /* Real memory used(in KB) for Shared Memory and Memory Mapped regions */ - VirtInUseMap int64 /* Virtual Memory used(in KB) for Shared Memory and Memory Mapped regions */ - PinnedInUseMap int64 /* Pinned memory(in KB) for Shared Memory and Memory Mapped regions */ - UCpuTime float64 /* User Mode CPU time will be in percentage or milliseconds based on, whether it is filled by perfstat_process_util or perfstat_process respectively. */ - SCpuTime float64 /* System Mode CPU time will be in percentage or milliseconds based on, whether it is filled by perfstat_process_util or perfstat_process respectively. */ - LastTimeBase int64 /* Timebase Counter */ - InBytes int64 /* Bytes Read from Disk */ - OutBytes int64 /* Bytes Written to Disk */ - InOps int64 /* In Operations from Disk */ - OutOps int64 /* Out Operations from Disk */ -} - -type Thread struct { - TID int64 /* thread identifier */ - PID int64 /* process identifier */ - CpuID int64 /* processor on which I'm bound */ - UCpuTime float64 /* User Mode CPU time will be in percentage or milliseconds based on, whether it is filled by perfstat_thread_util or perfstat_thread respectively. */ - SCpuTime float64 /* System Mode CPU time will be in percentage or milliseconds based on, whether it is filled by perfstat_thread_util or perfstat_thread respectively. */ - LastTimeBase int64 /* Timebase Counter */ - Version int64 -} diff --git a/backend/vendor/github.com/power-devops/perfstat/uptime.go b/backend/vendor/github.com/power-devops/perfstat/uptime.go deleted file mode 100644 index 86087874..00000000 --- a/backend/vendor/github.com/power-devops/perfstat/uptime.go +++ /dev/null @@ -1,36 +0,0 @@ -//go:build aix -// +build aix - -package perfstat - -/* -#include "c_helpers.h" -*/ -import "C" - -import ( - "fmt" - "time" -) - -func timeSince(ts uint64) uint64 { - return uint64(time.Now().Unix()) - ts -} - -// BootTime() returns the time of the last boot in UNIX seconds -func BootTime() (uint64, error) { - sec := C.boottime() - if sec == -1 { - return 0, fmt.Errorf("Can't determine boot time") - } - return uint64(sec), nil -} - -// UptimeSeconds() calculates uptime in seconds -func UptimeSeconds() (uint64, error) { - boot, err := BootTime() - if err != nil { - return 0, err - } - return timeSince(boot), nil -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/LICENSE b/backend/vendor/github.com/shirou/gopsutil/v3/LICENSE deleted file mode 100644 index 6f06adcb..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/LICENSE +++ /dev/null @@ -1,61 +0,0 @@ -gopsutil is distributed under BSD license reproduced below. - -Copyright (c) 2014, WAKAYAMA Shirou -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the gopsutil authors nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -------- -internal/common/binary.go in the gopsutil is copied and modified from golang/encoding/binary.go. - - - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk.go deleted file mode 100644 index 0d4b2534..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk.go +++ /dev/null @@ -1,98 +0,0 @@ -package disk - -import ( - "context" - "encoding/json" - - "github.com/shirou/gopsutil/v3/internal/common" -) - -var invoke common.Invoker = common.Invoke{} - -type Warnings = common.Warnings - -type UsageStat struct { - Path string `json:"path"` - Fstype string `json:"fstype"` - Total uint64 `json:"total"` - Free uint64 `json:"free"` - Used uint64 `json:"used"` - UsedPercent float64 `json:"usedPercent"` - InodesTotal uint64 `json:"inodesTotal"` - InodesUsed uint64 `json:"inodesUsed"` - InodesFree uint64 `json:"inodesFree"` - InodesUsedPercent float64 `json:"inodesUsedPercent"` -} - -type PartitionStat struct { - Device string `json:"device"` - Mountpoint string `json:"mountpoint"` - Fstype string `json:"fstype"` - Opts []string `json:"opts"` -} - -type IOCountersStat struct { - ReadCount uint64 `json:"readCount"` - MergedReadCount uint64 `json:"mergedReadCount"` - WriteCount uint64 `json:"writeCount"` - MergedWriteCount uint64 `json:"mergedWriteCount"` - ReadBytes uint64 `json:"readBytes"` - WriteBytes uint64 `json:"writeBytes"` - ReadTime uint64 `json:"readTime"` - WriteTime uint64 `json:"writeTime"` - IopsInProgress uint64 `json:"iopsInProgress"` - IoTime uint64 `json:"ioTime"` - WeightedIO uint64 `json:"weightedIO"` - Name string `json:"name"` - SerialNumber string `json:"serialNumber"` - Label string `json:"label"` -} - -func (d UsageStat) String() string { - s, _ := json.Marshal(d) - return string(s) -} - -func (d PartitionStat) String() string { - s, _ := json.Marshal(d) - return string(s) -} - -func (d IOCountersStat) String() string { - s, _ := json.Marshal(d) - return string(s) -} - -// Usage returns a file system usage. path is a filesystem path such -// as "/", not device file path like "/dev/vda1". If you want to use -// a return value of disk.Partitions, use "Mountpoint" not "Device". -func Usage(path string) (*UsageStat, error) { - return UsageWithContext(context.Background(), path) -} - -// Partitions returns disk partitions. If all is false, returns -// physical devices only (e.g. hard disks, cd-rom drives, USB keys) -// and ignore all others (e.g. memory partitions such as /dev/shm) -// -// 'all' argument is ignored for BSD, see: https://github.com/giampaolo/psutil/issues/906 -func Partitions(all bool) ([]PartitionStat, error) { - return PartitionsWithContext(context.Background(), all) -} - -func IOCounters(names ...string) (map[string]IOCountersStat, error) { - return IOCountersWithContext(context.Background(), names...) -} - -// SerialNumber returns Serial Number of given device or empty string -// on error. Name of device is expected, eg. /dev/sda -func SerialNumber(name string) (string, error) { - return SerialNumberWithContext(context.Background(), name) -} - -// Label returns label of given device or empty string on error. -// Name of device is expected, eg. /dev/sda -// Supports label based on devicemapper name -// See https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-block-dm -func Label(name string) (string, error) { - return LabelWithContext(context.Background(), name) -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix.go deleted file mode 100644 index bc71712e..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build aix -// +build aix - -package disk - -import ( - "context" - - "github.com/shirou/gopsutil/v3/internal/common" -) - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_cgo.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_cgo.go deleted file mode 100644 index aa534df3..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_cgo.go +++ /dev/null @@ -1,76 +0,0 @@ -//go:build aix && cgo -// +build aix,cgo - -package disk - -import ( - "context" - "fmt" - - "github.com/power-devops/perfstat" -) - -var FSType map[int]string - -func init() { - FSType = map[int]string{ - 0: "jfs2", 1: "namefs", 2: "nfs", 3: "jfs", 5: "cdrom", 6: "proc", - 16: "special-fs", 17: "cache-fs", 18: "nfs3", 19: "automount-fs", 20: "pool-fs", 32: "vxfs", - 33: "veritas-fs", 34: "udfs", 35: "nfs4", 36: "nfs4-pseudo", 37: "smbfs", 38: "mcr-pseudofs", - 39: "ahafs", 40: "sterm-nfs", 41: "asmfs", - } -} - -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - f, err := perfstat.FileSystemStat() - if err != nil { - return nil, err - } - ret := make([]PartitionStat, len(f)) - - for _, fs := range f { - fstyp, exists := FSType[fs.FSType] - if !exists { - fstyp = "unknown" - } - info := PartitionStat{ - Device: fs.Device, - Mountpoint: fs.MountPoint, - Fstype: fstyp, - } - ret = append(ret, info) - } - - return ret, err -} - -func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) { - f, err := perfstat.FileSystemStat() - if err != nil { - return nil, err - } - - blocksize := uint64(512) - for _, fs := range f { - if path == fs.MountPoint { - fstyp, exists := FSType[fs.FSType] - if !exists { - fstyp = "unknown" - } - info := UsageStat{ - Path: path, - Fstype: fstyp, - Total: uint64(fs.TotalBlocks) * blocksize, - Free: uint64(fs.FreeBlocks) * blocksize, - Used: uint64(fs.TotalBlocks-fs.FreeBlocks) * blocksize, - InodesTotal: uint64(fs.TotalInodes), - InodesFree: uint64(fs.FreeInodes), - InodesUsed: uint64(fs.TotalInodes - fs.FreeInodes), - } - info.UsedPercent = (float64(info.Used) / float64(info.Total)) * 100.0 - info.InodesUsedPercent = (float64(info.InodesUsed) / float64(info.InodesTotal)) * 100.0 - return &info, nil - } - } - return nil, fmt.Errorf("mountpoint %s not found", path) -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_nocgo.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_nocgo.go deleted file mode 100644 index 4f93c752..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_aix_nocgo.go +++ /dev/null @@ -1,82 +0,0 @@ -//go:build aix && !cgo -// +build aix,!cgo - -package disk - -import ( - "context" - "regexp" - "strings" - - "github.com/shirou/gopsutil/v3/internal/common" - "golang.org/x/sys/unix" -) - -var whiteSpaces = regexp.MustCompile(`\s+`) -var startBlank = regexp.MustCompile(`^\s+`) - -var ignoreFSType = map[string]bool{"procfs": true} -var FSType = map[int]string{ - 0: "jfs2", 1: "namefs", 2: "nfs", 3: "jfs", 5: "cdrom", 6: "proc", - 16: "special-fs", 17: "cache-fs", 18: "nfs3", 19: "automount-fs", 20: "pool-fs", 32: "vxfs", - 33: "veritas-fs", 34: "udfs", 35: "nfs4", 36: "nfs4-pseudo", 37: "smbfs", 38: "mcr-pseudofs", - 39: "ahafs", 40: "sterm-nfs", 41: "asmfs", -} - -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - var ret []PartitionStat - - out, err := invoke.CommandWithContext(ctx, "mount") - if err != nil { - return nil, err - } - - // parse head lines for column names - colidx := make(map[string]int) - lines := strings.Split(string(out), "\n") - if len(lines) < 3 { - return nil, common.ErrNotImplementedError - } - - idx := 0 - start := 0 - finished := false - for pos, ch := range lines[1] { - if ch == ' ' && !finished { - name := strings.TrimSpace(lines[0][start:pos]) - colidx[name] = idx - finished = true - } else if ch == '-' && finished { - idx++ - start = pos - finished = false - } - } - name := strings.TrimSpace(lines[0][start:len(lines[1])]) - colidx[name] = idx - - for idx := 2; idx < len(lines); idx++ { - line := lines[idx] - if startBlank.MatchString(line) { - line = "localhost" + line - } - p := whiteSpaces.Split(lines[idx], 6) - if len(p) < 5 || ignoreFSType[p[colidx["vfs"]]] { - continue - } - d := PartitionStat{ - Device: p[colidx["mounted"]], - Mountpoint: p[colidx["mounted over"]], - Fstype: p[colidx["vfs"]], - Opts: strings.Split(p[colidx["options"]], ","), - } - - ret = append(ret, d) - } - - return ret, nil -} - -func getFsType(stat unix.Statfs_t) string { - return FSType[int(stat.Vfstype)] -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin.go deleted file mode 100644 index 933cb045..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin.go +++ /dev/null @@ -1,93 +0,0 @@ -//go:build darwin -// +build darwin - -package disk - -import ( - "context" - - "github.com/shirou/gopsutil/v3/internal/common" - "golang.org/x/sys/unix" -) - -// PartitionsWithContext returns disk partition. -// 'all' argument is ignored, see: https://github.com/giampaolo/psutil/issues/906 -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - var ret []PartitionStat - - count, err := unix.Getfsstat(nil, unix.MNT_WAIT) - if err != nil { - return ret, err - } - fs := make([]unix.Statfs_t, count) - count, err = unix.Getfsstat(fs, unix.MNT_WAIT) - if err != nil { - return ret, err - } - // On 10.14, and possibly other OS versions, the actual count may - // be less than from the first call. Truncate to the returned count - // to prevent accessing uninitialized entries. - // https://github.com/shirou/gopsutil/issues/1390 - fs = fs[:count] - for _, stat := range fs { - opts := []string{"rw"} - if stat.Flags&unix.MNT_RDONLY != 0 { - opts = []string{"ro"} - } - if stat.Flags&unix.MNT_SYNCHRONOUS != 0 { - opts = append(opts, "sync") - } - if stat.Flags&unix.MNT_NOEXEC != 0 { - opts = append(opts, "noexec") - } - if stat.Flags&unix.MNT_NOSUID != 0 { - opts = append(opts, "nosuid") - } - if stat.Flags&unix.MNT_UNION != 0 { - opts = append(opts, "union") - } - if stat.Flags&unix.MNT_ASYNC != 0 { - opts = append(opts, "async") - } - if stat.Flags&unix.MNT_DONTBROWSE != 0 { - opts = append(opts, "nobrowse") - } - if stat.Flags&unix.MNT_AUTOMOUNTED != 0 { - opts = append(opts, "automounted") - } - if stat.Flags&unix.MNT_JOURNALED != 0 { - opts = append(opts, "journaled") - } - if stat.Flags&unix.MNT_MULTILABEL != 0 { - opts = append(opts, "multilabel") - } - if stat.Flags&unix.MNT_NOATIME != 0 { - opts = append(opts, "noatime") - } - if stat.Flags&unix.MNT_NODEV != 0 { - opts = append(opts, "nodev") - } - d := PartitionStat{ - Device: common.ByteToString(stat.Mntfromname[:]), - Mountpoint: common.ByteToString(stat.Mntonname[:]), - Fstype: common.ByteToString(stat.Fstypename[:]), - Opts: opts, - } - - ret = append(ret, d) - } - - return ret, nil -} - -func getFsType(stat unix.Statfs_t) string { - return common.ByteToString(stat.Fstypename[:]) -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_cgo.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_cgo.go deleted file mode 100644 index 27c24c92..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_cgo.go +++ /dev/null @@ -1,45 +0,0 @@ -//go:build darwin && cgo && !ios -// +build darwin,cgo,!ios - -package disk - -/* -#cgo LDFLAGS: -framework CoreFoundation -framework IOKit -#include -#include -#include "iostat_darwin.h" -*/ -import "C" - -import ( - "context" - - "github.com/shirou/gopsutil/v3/internal/common" -) - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - var buf [C.NDRIVE]C.DriveStats - n, err := C.gopsutil_v3_readdrivestat(&buf[0], C.int(len(buf))) - if err != nil { - return nil, err - } - ret := make(map[string]IOCountersStat, 0) - for i := 0; i < int(n); i++ { - d := IOCountersStat{ - ReadBytes: uint64(buf[i].read), - WriteBytes: uint64(buf[i].written), - ReadCount: uint64(buf[i].nread), - WriteCount: uint64(buf[i].nwrite), - ReadTime: uint64(buf[i].readtime / 1000 / 1000), // note: read/write time are in ns, but we want ms. - WriteTime: uint64(buf[i].writetime / 1000 / 1000), - IoTime: uint64((buf[i].readtime + buf[i].writetime) / 1000 / 1000), - Name: C.GoString(&buf[i].name[0]), - } - if len(names) > 0 && !common.StringsHas(names, d.Name) { - continue - } - - ret[d.Name] = d - } - return ret, nil -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_nocgo.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_nocgo.go deleted file mode 100644 index 1f099b7c..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_darwin_nocgo.go +++ /dev/null @@ -1,14 +0,0 @@ -//go:build (darwin && !cgo) || ios -// +build darwin,!cgo ios - -package disk - -import ( - "context" - - "github.com/shirou/gopsutil/v3/internal/common" -) - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_fallback.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_fallback.go deleted file mode 100644 index 47687334..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_fallback.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build !darwin && !linux && !freebsd && !openbsd && !windows && !solaris && !aix -// +build !darwin,!linux,!freebsd,!openbsd,!windows,!solaris,!aix - -package disk - -import ( - "context" - - "github.com/shirou/gopsutil/v3/internal/common" -) - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} - -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - return []PartitionStat{}, common.ErrNotImplementedError -} - -func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) { - return nil, common.ErrNotImplementedError -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd.go deleted file mode 100644 index 9b53106c..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd.go +++ /dev/null @@ -1,192 +0,0 @@ -//go:build freebsd -// +build freebsd - -package disk - -import ( - "bufio" - "bytes" - "context" - "encoding/binary" - "fmt" - "strconv" - "strings" - - "github.com/shirou/gopsutil/v3/internal/common" - "golang.org/x/sys/unix" -) - -// PartitionsWithContext returns disk partition. -// 'all' argument is ignored, see: https://github.com/giampaolo/psutil/issues/906 -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - var ret []PartitionStat - - // get length - count, err := unix.Getfsstat(nil, unix.MNT_WAIT) - if err != nil { - return ret, err - } - - fs := make([]unix.Statfs_t, count) - if _, err = unix.Getfsstat(fs, unix.MNT_WAIT); err != nil { - return ret, err - } - - for _, stat := range fs { - opts := []string{"rw"} - if stat.Flags&unix.MNT_RDONLY != 0 { - opts = []string{"ro"} - } - if stat.Flags&unix.MNT_SYNCHRONOUS != 0 { - opts = append(opts, "sync") - } - if stat.Flags&unix.MNT_NOEXEC != 0 { - opts = append(opts, "noexec") - } - if stat.Flags&unix.MNT_NOSUID != 0 { - opts = append(opts, "nosuid") - } - if stat.Flags&unix.MNT_UNION != 0 { - opts = append(opts, "union") - } - if stat.Flags&unix.MNT_ASYNC != 0 { - opts = append(opts, "async") - } - if stat.Flags&unix.MNT_SUIDDIR != 0 { - opts = append(opts, "suiddir") - } - if stat.Flags&unix.MNT_SOFTDEP != 0 { - opts = append(opts, "softdep") - } - if stat.Flags&unix.MNT_NOSYMFOLLOW != 0 { - opts = append(opts, "nosymfollow") - } - if stat.Flags&unix.MNT_GJOURNAL != 0 { - opts = append(opts, "gjournal") - } - if stat.Flags&unix.MNT_MULTILABEL != 0 { - opts = append(opts, "multilabel") - } - if stat.Flags&unix.MNT_ACLS != 0 { - opts = append(opts, "acls") - } - if stat.Flags&unix.MNT_NOATIME != 0 { - opts = append(opts, "noatime") - } - if stat.Flags&unix.MNT_NOCLUSTERR != 0 { - opts = append(opts, "noclusterr") - } - if stat.Flags&unix.MNT_NOCLUSTERW != 0 { - opts = append(opts, "noclusterw") - } - if stat.Flags&unix.MNT_NFS4ACLS != 0 { - opts = append(opts, "nfsv4acls") - } - - d := PartitionStat{ - Device: common.ByteToString(stat.Mntfromname[:]), - Mountpoint: common.ByteToString(stat.Mntonname[:]), - Fstype: common.ByteToString(stat.Fstypename[:]), - Opts: opts, - } - - ret = append(ret, d) - } - - return ret, nil -} - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - // statinfo->devinfo->devstat - // /usr/include/devinfo.h - ret := make(map[string]IOCountersStat) - - r, err := unix.Sysctl("kern.devstat.all") - if err != nil { - return nil, err - } - buf := []byte(r) - length := len(buf) - - count := int(uint64(length) / uint64(sizeOfdevstat)) - - buf = buf[8:] // devstat.all has version in the head. - // parse buf to devstat - for i := 0; i < count; i++ { - b := buf[i*sizeOfdevstat : i*sizeOfdevstat+sizeOfdevstat] - d, err := parsedevstat(b) - if err != nil { - continue - } - un := strconv.Itoa(int(d.Unit_number)) - name := common.IntToString(d.Device_name[:]) + un - - if len(names) > 0 && !common.StringsHas(names, name) { - continue - } - - ds := IOCountersStat{ - ReadCount: d.Operations[devstat_READ], - WriteCount: d.Operations[devstat_WRITE], - ReadBytes: d.Bytes[devstat_READ], - WriteBytes: d.Bytes[devstat_WRITE], - ReadTime: uint64(d.Duration[devstat_READ].Compute() * 1000), - WriteTime: uint64(d.Duration[devstat_WRITE].Compute() * 1000), - IoTime: uint64(d.Busy_time.Compute() * 1000), - Name: name, - } - ds.SerialNumber, _ = SerialNumberWithContext(ctx, name) - ret[name] = ds - } - - return ret, nil -} - -func (b bintime) Compute() float64 { - BINTIME_SCALE := 5.42101086242752217003726400434970855712890625e-20 - return float64(b.Sec) + float64(b.Frac)*BINTIME_SCALE -} - -// BT2LD(time) ((long double)(time).sec + (time).frac * BINTIME_SCALE) - -func parsedevstat(buf []byte) (devstat, error) { - var ds devstat - br := bytes.NewReader(buf) - // err := binary.Read(br, binary.LittleEndian, &ds) - err := common.Read(br, binary.LittleEndian, &ds) - if err != nil { - return ds, err - } - - return ds, nil -} - -func getFsType(stat unix.Statfs_t) string { - return common.ByteToString(stat.Fstypename[:]) -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - geomOut, err := invoke.CommandWithContext(ctx, "geom", "disk", "list", name) - if err != nil { - return "", fmt.Errorf("exec geom: %w", err) - } - s := bufio.NewScanner(bytes.NewReader(geomOut)) - serial := "" - for s.Scan() { - flds := strings.Fields(s.Text()) - if len(flds) == 2 && flds[0] == "ident:" { - if flds[1] != "(null)" { - serial = flds[1] - } - break - } - } - if err = s.Err(); err != nil { - return "", err - } - return serial, nil -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_386.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_386.go deleted file mode 100644 index 7fa1783d..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_386.go +++ /dev/null @@ -1,63 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.go - -package disk - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - sizeofLongDouble = 0x8 - - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfdevstat = 0xf0 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 - _C_long_double int64 -) - -type devstat struct { - Sequence0 uint32 - Allocated int32 - Start_count uint32 - End_count uint32 - Busy_from bintime - Dev_links _Ctype_struct___0 - Device_number uint32 - Device_name [16]int8 - Unit_number int32 - Bytes [4]uint64 - Operations [4]uint64 - Duration [4]bintime - Busy_time bintime - Creation_time bintime - Block_size uint32 - Tag_types [3]uint64 - Flags uint32 - Device_type uint32 - Priority uint32 - Id *byte - Sequence1 uint32 -} - -type bintime struct { - Sec int32 - Frac uint64 -} - -type _Ctype_struct___0 struct { - Empty uint32 -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_amd64.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_amd64.go deleted file mode 100644 index d86a308b..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_amd64.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.go - -package disk - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - sizeofLongDouble = 0x8 - - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfdevstat = 0x120 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 - _C_long_double int64 -) - -type devstat struct { - Sequence0 uint32 - Allocated int32 - Start_count uint32 - End_count uint32 - Busy_from bintime - Dev_links _Ctype_struct___0 - Device_number uint32 - Device_name [16]int8 - Unit_number int32 - Bytes [4]uint64 - Operations [4]uint64 - Duration [4]bintime - Busy_time bintime - Creation_time bintime - Block_size uint32 - Pad_cgo_0 [4]byte - Tag_types [3]uint64 - Flags uint32 - Device_type uint32 - Priority uint32 - Pad_cgo_1 [4]byte - ID *byte - Sequence1 uint32 - Pad_cgo_2 [4]byte -} - -type bintime struct { - Sec int64 - Frac uint64 -} - -type _Ctype_struct___0 struct { - Empty uint64 -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm.go deleted file mode 100644 index 7fa1783d..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm.go +++ /dev/null @@ -1,63 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.go - -package disk - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - sizeofLongDouble = 0x8 - - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfdevstat = 0xf0 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 - _C_long_double int64 -) - -type devstat struct { - Sequence0 uint32 - Allocated int32 - Start_count uint32 - End_count uint32 - Busy_from bintime - Dev_links _Ctype_struct___0 - Device_number uint32 - Device_name [16]int8 - Unit_number int32 - Bytes [4]uint64 - Operations [4]uint64 - Duration [4]bintime - Busy_time bintime - Creation_time bintime - Block_size uint32 - Tag_types [3]uint64 - Flags uint32 - Device_type uint32 - Priority uint32 - Id *byte - Sequence1 uint32 -} - -type bintime struct { - Sec int32 - Frac uint64 -} - -type _Ctype_struct___0 struct { - Empty uint32 -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm64.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm64.go deleted file mode 100644 index f6b3f80d..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_freebsd_arm64.go +++ /dev/null @@ -1,66 +0,0 @@ -//go:build freebsd && arm64 -// +build freebsd,arm64 - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs disk/types_freebsd.go - -package disk - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - sizeofLongDouble = 0x8 - - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfdevstat = 0x120 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 - _C_long_double int64 -) - -type devstat struct { - Sequence0 uint32 - Allocated int32 - Start_count uint32 - End_count uint32 - Busy_from bintime - Dev_links _Ctype_struct___0 - Device_number uint32 - Device_name [16]int8 - Unit_number int32 - Bytes [4]uint64 - Operations [4]uint64 - Duration [4]bintime - Busy_time bintime - Creation_time bintime - Block_size uint32 - Tag_types [3]uint64 - Flags uint32 - Device_type uint32 - Priority uint32 - Id *byte - Sequence1 uint32 - Pad_cgo_0 [4]byte -} -type bintime struct { - Sec int64 - Frac uint64 -} - -type _Ctype_struct___0 struct { - Empty uint64 -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_linux.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_linux.go deleted file mode 100644 index 14712f9e..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_linux.go +++ /dev/null @@ -1,539 +0,0 @@ -//go:build linux -// +build linux - -package disk - -import ( - "bufio" - "bytes" - "context" - "errors" - "fmt" - "io/ioutil" - "os" - "path" - "path/filepath" - "strconv" - "strings" - - "golang.org/x/sys/unix" - - "github.com/shirou/gopsutil/v3/internal/common" -) - -const ( - sectorSize = 512 -) - -const ( - // man statfs - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xADFF - BDEVFS_MAGIC = 0x62646576 - BEFS_SUPER_MAGIC = 0x42465331 - BFS_MAGIC = 0x1BADFACE - BINFMTFS_MAGIC = 0x42494e4d - BTRFS_SUPER_MAGIC = 0x9123683E - CGROUP_SUPER_MAGIC = 0x27e0eb - CIFS_MAGIC_NUMBER = 0xFF534D42 - CODA_SUPER_MAGIC = 0x73757245 - COH_SUPER_MAGIC = 0x012FF7B7 - CRAMFS_MAGIC = 0x28cd3d45 - DEBUGFS_MAGIC = 0x64626720 - DEVFS_SUPER_MAGIC = 0x1373 - DEVPTS_SUPER_MAGIC = 0x1cd1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x00414A53 - EXT_SUPER_MAGIC = 0x137D - EXT2_OLD_SUPER_MAGIC = 0xEF51 - EXT2_SUPER_MAGIC = 0xEF53 - EXT3_SUPER_MAGIC = 0xEF53 - EXT4_SUPER_MAGIC = 0xEF53 - FUSE_SUPER_MAGIC = 0x65735546 - FUTEXFS_SUPER_MAGIC = 0xBAD1DEA - HFS_SUPER_MAGIC = 0x4244 - HFSPLUS_SUPER_MAGIC = 0x482b - HOSTFS_SUPER_MAGIC = 0x00c0ffee - HPFS_SUPER_MAGIC = 0xF995E849 - HUGETLBFS_MAGIC = 0x958458f6 - ISOFS_SUPER_MAGIC = 0x9660 - JFFS2_SUPER_MAGIC = 0x72b6 - JFS_SUPER_MAGIC = 0x3153464a - MINIX_SUPER_MAGIC = 0x137F /* orig. minix */ - MINIX_SUPER_MAGIC2 = 0x138F /* 30 char minix */ - MINIX2_SUPER_MAGIC = 0x2468 /* minix V2 */ - MINIX2_SUPER_MAGIC2 = 0x2478 /* minix V2, 30 char names */ - MINIX3_SUPER_MAGIC = 0x4d5a /* minix V3 fs, 60 char names */ - MQUEUE_MAGIC = 0x19800202 - MSDOS_SUPER_MAGIC = 0x4d44 - NCP_SUPER_MAGIC = 0x564c - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NTFS_SB_MAGIC = 0x5346544e - OCFS2_SUPER_MAGIC = 0x7461636f - OPENPROM_SUPER_MAGIC = 0x9fa1 - PIPEFS_MAGIC = 0x50495045 - PROC_SUPER_MAGIC = 0x9fa0 - PSTOREFS_MAGIC = 0x6165676C - QNX4_SUPER_MAGIC = 0x002f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - REISERFS_SUPER_MAGIC = 0x52654973 - ROMFS_MAGIC = 0x7275 - SELINUX_MAGIC = 0xf97cff8c - SMACK_MAGIC = 0x43415d53 - SMB_SUPER_MAGIC = 0x517B - SOCKFS_MAGIC = 0x534F434B - SQUASHFS_MAGIC = 0x73717368 - SYSFS_MAGIC = 0x62656572 - SYSV2_SUPER_MAGIC = 0x012FF7B6 - SYSV4_SUPER_MAGIC = 0x012FF7B5 - TMPFS_MAGIC = 0x01021994 - UDF_SUPER_MAGIC = 0x15013346 - UFS_MAGIC = 0x00011954 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - V9FS_MAGIC = 0x01021997 - VXFS_SUPER_MAGIC = 0xa501FCF5 - XENFS_SUPER_MAGIC = 0xabba1974 - XENIX_SUPER_MAGIC = 0x012FF7B4 - XFS_SUPER_MAGIC = 0x58465342 - _XIAFS_SUPER_MAGIC = 0x012FD16D - - AFS_SUPER_MAGIC = 0x5346414F - AUFS_SUPER_MAGIC = 0x61756673 - ANON_INODE_FS_SUPER_MAGIC = 0x09041934 - BPF_FS_MAGIC = 0xCAFE4A11 - CEPH_SUPER_MAGIC = 0x00C36400 - CGROUP2_SUPER_MAGIC = 0x63677270 - CONFIGFS_MAGIC = 0x62656570 - ECRYPTFS_SUPER_MAGIC = 0xF15F - F2FS_SUPER_MAGIC = 0xF2F52010 - FAT_SUPER_MAGIC = 0x4006 - FHGFS_SUPER_MAGIC = 0x19830326 - FUSEBLK_SUPER_MAGIC = 0x65735546 - FUSECTL_SUPER_MAGIC = 0x65735543 - GFS_SUPER_MAGIC = 0x1161970 - GPFS_SUPER_MAGIC = 0x47504653 - MTD_INODE_FS_SUPER_MAGIC = 0x11307854 - INOTIFYFS_SUPER_MAGIC = 0x2BAD1DEA - ISOFS_R_WIN_SUPER_MAGIC = 0x4004 - ISOFS_WIN_SUPER_MAGIC = 0x4000 - JFFS_SUPER_MAGIC = 0x07C0 - KAFS_SUPER_MAGIC = 0x6B414653 - LUSTRE_SUPER_MAGIC = 0x0BD00BD0 - NFSD_SUPER_MAGIC = 0x6E667364 - NSFS_MAGIC = 0x6E736673 - PANFS_SUPER_MAGIC = 0xAAD7AAEA - RPC_PIPEFS_SUPER_MAGIC = 0x67596969 - SECURITYFS_SUPER_MAGIC = 0x73636673 - TRACEFS_MAGIC = 0x74726163 - UFS_BYTESWAPPED_SUPER_MAGIC = 0x54190100 - VMHGFS_SUPER_MAGIC = 0xBACBACBC - VZFS_SUPER_MAGIC = 0x565A4653 - ZFS_SUPER_MAGIC = 0x2FC12FC1 -) - -// coreutils/src/stat.c -var fsTypeMap = map[int64]string{ - ADFS_SUPER_MAGIC: "adfs", /* 0xADF5 local */ - AFFS_SUPER_MAGIC: "affs", /* 0xADFF local */ - AFS_SUPER_MAGIC: "afs", /* 0x5346414F remote */ - ANON_INODE_FS_SUPER_MAGIC: "anon-inode FS", /* 0x09041934 local */ - AUFS_SUPER_MAGIC: "aufs", /* 0x61756673 remote */ - // AUTOFS_SUPER_MAGIC: "autofs", /* 0x0187 local */ - BEFS_SUPER_MAGIC: "befs", /* 0x42465331 local */ - BDEVFS_MAGIC: "bdevfs", /* 0x62646576 local */ - BFS_MAGIC: "bfs", /* 0x1BADFACE local */ - BINFMTFS_MAGIC: "binfmt_misc", /* 0x42494E4D local */ - BPF_FS_MAGIC: "bpf", /* 0xCAFE4A11 local */ - BTRFS_SUPER_MAGIC: "btrfs", /* 0x9123683E local */ - CEPH_SUPER_MAGIC: "ceph", /* 0x00C36400 remote */ - CGROUP_SUPER_MAGIC: "cgroupfs", /* 0x0027E0EB local */ - CGROUP2_SUPER_MAGIC: "cgroup2fs", /* 0x63677270 local */ - CIFS_MAGIC_NUMBER: "cifs", /* 0xFF534D42 remote */ - CODA_SUPER_MAGIC: "coda", /* 0x73757245 remote */ - COH_SUPER_MAGIC: "coh", /* 0x012FF7B7 local */ - CONFIGFS_MAGIC: "configfs", /* 0x62656570 local */ - CRAMFS_MAGIC: "cramfs", /* 0x28CD3D45 local */ - DEBUGFS_MAGIC: "debugfs", /* 0x64626720 local */ - DEVFS_SUPER_MAGIC: "devfs", /* 0x1373 local */ - DEVPTS_SUPER_MAGIC: "devpts", /* 0x1CD1 local */ - ECRYPTFS_SUPER_MAGIC: "ecryptfs", /* 0xF15F local */ - EFIVARFS_MAGIC: "efivarfs", /* 0xDE5E81E4 local */ - EFS_SUPER_MAGIC: "efs", /* 0x00414A53 local */ - EXT_SUPER_MAGIC: "ext", /* 0x137D local */ - EXT2_SUPER_MAGIC: "ext2/ext3", /* 0xEF53 local */ - EXT2_OLD_SUPER_MAGIC: "ext2", /* 0xEF51 local */ - F2FS_SUPER_MAGIC: "f2fs", /* 0xF2F52010 local */ - FAT_SUPER_MAGIC: "fat", /* 0x4006 local */ - FHGFS_SUPER_MAGIC: "fhgfs", /* 0x19830326 remote */ - FUSEBLK_SUPER_MAGIC: "fuseblk", /* 0x65735546 remote */ - FUSECTL_SUPER_MAGIC: "fusectl", /* 0x65735543 remote */ - FUTEXFS_SUPER_MAGIC: "futexfs", /* 0x0BAD1DEA local */ - GFS_SUPER_MAGIC: "gfs/gfs2", /* 0x1161970 remote */ - GPFS_SUPER_MAGIC: "gpfs", /* 0x47504653 remote */ - HFS_SUPER_MAGIC: "hfs", /* 0x4244 local */ - HFSPLUS_SUPER_MAGIC: "hfsplus", /* 0x482b local */ - HPFS_SUPER_MAGIC: "hpfs", /* 0xF995E849 local */ - HUGETLBFS_MAGIC: "hugetlbfs", /* 0x958458F6 local */ - MTD_INODE_FS_SUPER_MAGIC: "inodefs", /* 0x11307854 local */ - INOTIFYFS_SUPER_MAGIC: "inotifyfs", /* 0x2BAD1DEA local */ - ISOFS_SUPER_MAGIC: "isofs", /* 0x9660 local */ - ISOFS_R_WIN_SUPER_MAGIC: "isofs", /* 0x4004 local */ - ISOFS_WIN_SUPER_MAGIC: "isofs", /* 0x4000 local */ - JFFS_SUPER_MAGIC: "jffs", /* 0x07C0 local */ - JFFS2_SUPER_MAGIC: "jffs2", /* 0x72B6 local */ - JFS_SUPER_MAGIC: "jfs", /* 0x3153464A local */ - KAFS_SUPER_MAGIC: "k-afs", /* 0x6B414653 remote */ - LUSTRE_SUPER_MAGIC: "lustre", /* 0x0BD00BD0 remote */ - MINIX_SUPER_MAGIC: "minix", /* 0x137F local */ - MINIX_SUPER_MAGIC2: "minix (30 char.)", /* 0x138F local */ - MINIX2_SUPER_MAGIC: "minix v2", /* 0x2468 local */ - MINIX2_SUPER_MAGIC2: "minix v2 (30 char.)", /* 0x2478 local */ - MINIX3_SUPER_MAGIC: "minix3", /* 0x4D5A local */ - MQUEUE_MAGIC: "mqueue", /* 0x19800202 local */ - MSDOS_SUPER_MAGIC: "msdos", /* 0x4D44 local */ - NCP_SUPER_MAGIC: "novell", /* 0x564C remote */ - NFS_SUPER_MAGIC: "nfs", /* 0x6969 remote */ - NFSD_SUPER_MAGIC: "nfsd", /* 0x6E667364 remote */ - NILFS_SUPER_MAGIC: "nilfs", /* 0x3434 local */ - NSFS_MAGIC: "nsfs", /* 0x6E736673 local */ - NTFS_SB_MAGIC: "ntfs", /* 0x5346544E local */ - OPENPROM_SUPER_MAGIC: "openprom", /* 0x9FA1 local */ - OCFS2_SUPER_MAGIC: "ocfs2", /* 0x7461636f remote */ - PANFS_SUPER_MAGIC: "panfs", /* 0xAAD7AAEA remote */ - PIPEFS_MAGIC: "pipefs", /* 0x50495045 remote */ - PROC_SUPER_MAGIC: "proc", /* 0x9FA0 local */ - PSTOREFS_MAGIC: "pstorefs", /* 0x6165676C local */ - QNX4_SUPER_MAGIC: "qnx4", /* 0x002F local */ - QNX6_SUPER_MAGIC: "qnx6", /* 0x68191122 local */ - RAMFS_MAGIC: "ramfs", /* 0x858458F6 local */ - REISERFS_SUPER_MAGIC: "reiserfs", /* 0x52654973 local */ - ROMFS_MAGIC: "romfs", /* 0x7275 local */ - RPC_PIPEFS_SUPER_MAGIC: "rpc_pipefs", /* 0x67596969 local */ - SECURITYFS_SUPER_MAGIC: "securityfs", /* 0x73636673 local */ - SELINUX_MAGIC: "selinux", /* 0xF97CFF8C local */ - SMB_SUPER_MAGIC: "smb", /* 0x517B remote */ - SOCKFS_MAGIC: "sockfs", /* 0x534F434B local */ - SQUASHFS_MAGIC: "squashfs", /* 0x73717368 local */ - SYSFS_MAGIC: "sysfs", /* 0x62656572 local */ - SYSV2_SUPER_MAGIC: "sysv2", /* 0x012FF7B6 local */ - SYSV4_SUPER_MAGIC: "sysv4", /* 0x012FF7B5 local */ - TMPFS_MAGIC: "tmpfs", /* 0x01021994 local */ - TRACEFS_MAGIC: "tracefs", /* 0x74726163 local */ - UDF_SUPER_MAGIC: "udf", /* 0x15013346 local */ - UFS_MAGIC: "ufs", /* 0x00011954 local */ - UFS_BYTESWAPPED_SUPER_MAGIC: "ufs", /* 0x54190100 local */ - USBDEVICE_SUPER_MAGIC: "usbdevfs", /* 0x9FA2 local */ - V9FS_MAGIC: "v9fs", /* 0x01021997 local */ - VMHGFS_SUPER_MAGIC: "vmhgfs", /* 0xBACBACBC remote */ - VXFS_SUPER_MAGIC: "vxfs", /* 0xA501FCF5 local */ - VZFS_SUPER_MAGIC: "vzfs", /* 0x565A4653 local */ - XENFS_SUPER_MAGIC: "xenfs", /* 0xABBA1974 local */ - XENIX_SUPER_MAGIC: "xenix", /* 0x012FF7B4 local */ - XFS_SUPER_MAGIC: "xfs", /* 0x58465342 local */ - _XIAFS_SUPER_MAGIC: "xia", /* 0x012FD16D local */ - ZFS_SUPER_MAGIC: "zfs", /* 0x2FC12FC1 local */ -} - -// readMountFile reads mountinfo or mounts file under the specified root path -// (eg, /proc/1, /proc/self, etc) -func readMountFile(root string) (lines []string, useMounts bool, filename string, err error) { - filename = path.Join(root, "mountinfo") - lines, err = common.ReadLines(filename) - if err != nil { - var pathErr *os.PathError - if !errors.As(err, &pathErr) { - return - } - // if kernel does not support 1/mountinfo, fallback to 1/mounts (<2.6.26) - useMounts = true - filename = path.Join(root, "mounts") - lines, err = common.ReadLines(filename) - if err != nil { - return - } - return - } - return -} - -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - // by default, try "/proc/1/..." first - root := common.HostProc(path.Join("1")) - - // force preference for dirname of HOST_PROC_MOUNTINFO, if set #1271 - hpmPath := os.Getenv("HOST_PROC_MOUNTINFO") - if hpmPath != "" { - root = filepath.Dir(hpmPath) - } - - lines, useMounts, filename, err := readMountFile(root) - if err != nil { - if hpmPath != "" { // don't fallback with HOST_PROC_MOUNTINFO - return nil, err - } - // fallback to "/proc/self/..." #1159 - lines, useMounts, filename, err = readMountFile(common.HostProc(path.Join("self"))) - if err != nil { - return nil, err - } - } - - fs, err := getFileSystems() - if err != nil && !all { - return nil, err - } - - ret := make([]PartitionStat, 0, len(lines)) - - for _, line := range lines { - var d PartitionStat - if useMounts { - fields := strings.Fields(line) - - d = PartitionStat{ - Device: fields[0], - Mountpoint: unescapeFstab(fields[1]), - Fstype: fields[2], - Opts: strings.Fields(fields[3]), - } - - if !all { - if d.Device == "none" || !common.StringsHas(fs, d.Fstype) { - continue - } - } - } else { - // a line of 1/mountinfo has the following structure: - // 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue - // (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) - - // split the mountinfo line by the separator hyphen - parts := strings.Split(line, " - ") - if len(parts) != 2 { - return nil, fmt.Errorf("found invalid mountinfo line in file %s: %s ", filename, line) - } - - fields := strings.Fields(parts[0]) - blockDeviceID := fields[2] - mountPoint := fields[4] - mountOpts := strings.Split(fields[5], ",") - - if rootDir := fields[3]; rootDir != "" && rootDir != "/" { - mountOpts = append(mountOpts, "bind") - } - - fields = strings.Fields(parts[1]) - fstype := fields[0] - device := fields[1] - - d = PartitionStat{ - Device: device, - Mountpoint: unescapeFstab(mountPoint), - Fstype: fstype, - Opts: mountOpts, - } - - if !all { - if d.Device == "none" || !common.StringsHas(fs, d.Fstype) { - continue - } - } - - if strings.HasPrefix(d.Device, "/dev/mapper/") { - devpath, err := filepath.EvalSymlinks(common.HostDev(strings.Replace(d.Device, "/dev", "", 1))) - if err == nil { - d.Device = devpath - } - } - - // /dev/root is not the real device name - // so we get the real device name from its major/minor number - if d.Device == "/dev/root" { - devpath, err := os.Readlink(common.HostSys("/dev/block/" + blockDeviceID)) - if err == nil { - d.Device = strings.Replace(d.Device, "root", filepath.Base(devpath), 1) - } - } - } - ret = append(ret, d) - } - - return ret, nil -} - -// getFileSystems returns supported filesystems from /proc/filesystems -func getFileSystems() ([]string, error) { - filename := common.HostProc("filesystems") - lines, err := common.ReadLines(filename) - if err != nil { - return nil, err - } - var ret []string - for _, line := range lines { - if !strings.HasPrefix(line, "nodev") { - ret = append(ret, strings.TrimSpace(line)) - continue - } - t := strings.Split(line, "\t") - if len(t) != 2 || t[1] != "zfs" { - continue - } - ret = append(ret, strings.TrimSpace(t[1])) - } - - return ret, nil -} - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - filename := common.HostProc("diskstats") - lines, err := common.ReadLines(filename) - if err != nil { - return nil, err - } - ret := make(map[string]IOCountersStat) - empty := IOCountersStat{} - - // use only basename such as "/dev/sda1" to "sda1" - for i, name := range names { - names[i] = filepath.Base(name) - } - - for _, line := range lines { - fields := strings.Fields(line) - if len(fields) < 14 { - // malformed line in /proc/diskstats, avoid panic by ignoring. - continue - } - name := fields[2] - - if len(names) > 0 && !common.StringsHas(names, name) { - continue - } - - reads, err := strconv.ParseUint((fields[3]), 10, 64) - if err != nil { - return ret, err - } - mergedReads, err := strconv.ParseUint((fields[4]), 10, 64) - if err != nil { - return ret, err - } - rbytes, err := strconv.ParseUint((fields[5]), 10, 64) - if err != nil { - return ret, err - } - rtime, err := strconv.ParseUint((fields[6]), 10, 64) - if err != nil { - return ret, err - } - writes, err := strconv.ParseUint((fields[7]), 10, 64) - if err != nil { - return ret, err - } - mergedWrites, err := strconv.ParseUint((fields[8]), 10, 64) - if err != nil { - return ret, err - } - wbytes, err := strconv.ParseUint((fields[9]), 10, 64) - if err != nil { - return ret, err - } - wtime, err := strconv.ParseUint((fields[10]), 10, 64) - if err != nil { - return ret, err - } - iopsInProgress, err := strconv.ParseUint((fields[11]), 10, 64) - if err != nil { - return ret, err - } - iotime, err := strconv.ParseUint((fields[12]), 10, 64) - if err != nil { - return ret, err - } - weightedIO, err := strconv.ParseUint((fields[13]), 10, 64) - if err != nil { - return ret, err - } - d := IOCountersStat{ - ReadBytes: rbytes * sectorSize, - WriteBytes: wbytes * sectorSize, - ReadCount: reads, - WriteCount: writes, - MergedReadCount: mergedReads, - MergedWriteCount: mergedWrites, - ReadTime: rtime, - WriteTime: wtime, - IopsInProgress: iopsInProgress, - IoTime: iotime, - WeightedIO: weightedIO, - } - if d == empty { - continue - } - d.Name = name - - d.SerialNumber, _ = SerialNumberWithContext(ctx, name) - d.Label, _ = LabelWithContext(ctx, name) - - ret[name] = d - } - return ret, nil -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - var stat unix.Stat_t - err := unix.Stat(name, &stat) - if err != nil { - return "", err - } - major := unix.Major(uint64(stat.Rdev)) - minor := unix.Minor(uint64(stat.Rdev)) - - // Try to get the serial from udev data - udevDataPath := common.HostRun(fmt.Sprintf("udev/data/b%d:%d", major, minor)) - if udevdata, err := ioutil.ReadFile(udevDataPath); err == nil { - scanner := bufio.NewScanner(bytes.NewReader(udevdata)) - for scanner.Scan() { - values := strings.Split(scanner.Text(), "=") - if len(values) == 2 && values[0] == "E:ID_SERIAL" { - return values[1], nil - } - } - } - - // Try to get the serial from sysfs, look at the disk device (minor 0) directly - // because if it is a partition it is not going to contain any device information - devicePath := common.HostSys(fmt.Sprintf("dev/block/%d:0/device", major)) - model, _ := ioutil.ReadFile(filepath.Join(devicePath, "model")) - serial, _ := ioutil.ReadFile(filepath.Join(devicePath, "serial")) - if len(model) > 0 && len(serial) > 0 { - return fmt.Sprintf("%s_%s", string(model), string(serial)), nil - } - return "", nil -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - // Try label based on devicemapper name - dmname_filename := common.HostSys(fmt.Sprintf("block/%s/dm/name", name)) - - if !common.PathExists(dmname_filename) { - return "", nil - } - - dmname, err := ioutil.ReadFile(dmname_filename) - if err != nil { - return "", err - } - return strings.TrimSpace(string(dmname)), nil -} - -func getFsType(stat unix.Statfs_t) string { - t := int64(stat.Type) - ret, ok := fsTypeMap[t] - if !ok { - return "" - } - return ret -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd.go deleted file mode 100644 index 81ff2399..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd.go +++ /dev/null @@ -1,159 +0,0 @@ -//go:build openbsd -// +build openbsd - -package disk - -import ( - "bytes" - "context" - "encoding/binary" - - "github.com/shirou/gopsutil/v3/internal/common" - "golang.org/x/sys/unix" -) - -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - var ret []PartitionStat - - // get length - count, err := unix.Getfsstat(nil, unix.MNT_WAIT) - if err != nil { - return ret, err - } - - fs := make([]unix.Statfs_t, count) - if _, err = unix.Getfsstat(fs, unix.MNT_WAIT); err != nil { - return ret, err - } - - for _, stat := range fs { - opts := []string{"rw"} - if stat.F_flags&unix.MNT_RDONLY != 0 { - opts = []string{"rw"} - } - if stat.F_flags&unix.MNT_SYNCHRONOUS != 0 { - opts = append(opts, "sync") - } - if stat.F_flags&unix.MNT_NOEXEC != 0 { - opts = append(opts, "noexec") - } - if stat.F_flags&unix.MNT_NOSUID != 0 { - opts = append(opts, "nosuid") - } - if stat.F_flags&unix.MNT_NODEV != 0 { - opts = append(opts, "nodev") - } - if stat.F_flags&unix.MNT_ASYNC != 0 { - opts = append(opts, "async") - } - if stat.F_flags&unix.MNT_SOFTDEP != 0 { - opts = append(opts, "softdep") - } - if stat.F_flags&unix.MNT_NOATIME != 0 { - opts = append(opts, "noatime") - } - if stat.F_flags&unix.MNT_WXALLOWED != 0 { - opts = append(opts, "wxallowed") - } - - d := PartitionStat{ - Device: common.ByteToString(stat.F_mntfromname[:]), - Mountpoint: common.ByteToString(stat.F_mntonname[:]), - Fstype: common.ByteToString(stat.F_fstypename[:]), - Opts: opts, - } - - ret = append(ret, d) - } - - return ret, nil -} - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - ret := make(map[string]IOCountersStat) - - r, err := unix.SysctlRaw("hw.diskstats") - if err != nil { - return nil, err - } - buf := []byte(r) - length := len(buf) - - count := int(uint64(length) / uint64(sizeOfDiskstats)) - - // parse buf to Diskstats - for i := 0; i < count; i++ { - b := buf[i*sizeOfDiskstats : i*sizeOfDiskstats+sizeOfDiskstats] - d, err := parseDiskstats(b) - if err != nil { - continue - } - name := common.IntToString(d.Name[:]) - - if len(names) > 0 && !common.StringsHas(names, name) { - continue - } - - ds := IOCountersStat{ - ReadCount: d.Rxfer, - WriteCount: d.Wxfer, - ReadBytes: d.Rbytes, - WriteBytes: d.Wbytes, - Name: name, - } - ret[name] = ds - } - - return ret, nil -} - -// BT2LD(time) ((long double)(time).sec + (time).frac * BINTIME_SCALE) - -func parseDiskstats(buf []byte) (Diskstats, error) { - var ds Diskstats - br := bytes.NewReader(buf) - // err := binary.Read(br, binary.LittleEndian, &ds) - err := common.Read(br, binary.LittleEndian, &ds) - if err != nil { - return ds, err - } - - return ds, nil -} - -func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) { - stat := unix.Statfs_t{} - err := unix.Statfs(path, &stat) - if err != nil { - return nil, err - } - bsize := stat.F_bsize - - ret := &UsageStat{ - Path: path, - Fstype: getFsType(stat), - Total: (uint64(stat.F_blocks) * uint64(bsize)), - Free: (uint64(stat.F_bavail) * uint64(bsize)), - InodesTotal: (uint64(stat.F_files)), - InodesFree: (uint64(stat.F_ffree)), - } - - ret.InodesUsed = (ret.InodesTotal - ret.InodesFree) - ret.InodesUsedPercent = (float64(ret.InodesUsed) / float64(ret.InodesTotal)) * 100.0 - ret.Used = (uint64(stat.F_blocks) - uint64(stat.F_bfree)) * uint64(bsize) - ret.UsedPercent = (float64(ret.Used) / float64(ret.Total)) * 100.0 - - return ret, nil -} - -func getFsType(stat unix.Statfs_t) string { - return common.ByteToString(stat.F_fstypename[:]) -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_386.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_386.go deleted file mode 100644 index f4c139f5..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_386.go +++ /dev/null @@ -1,38 +0,0 @@ -//go:build openbsd && 386 -// +build openbsd,386 - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs disk/types_openbsd.go - -package disk - -const ( - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfDiskstats = 0x60 -) - -type Diskstats struct { - Name [16]int8 - Busy int32 - Rxfer uint64 - Wxfer uint64 - Seek uint64 - Rbytes uint64 - Wbytes uint64 - Attachtime Timeval - Timestamp Timeval - Time Timeval -} -type Timeval struct { - Sec int64 - Usec int32 -} - -type Diskstat struct{} -type bintime struct{} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_amd64.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_amd64.go deleted file mode 100644 index c1bd52ef..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_amd64.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs types_openbsd.go - -package disk - -const ( - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfDiskstats = 0x70 -) - -type Diskstats struct { - Name [16]int8 - Busy int32 - Pad_cgo_0 [4]byte - Rxfer uint64 - Wxfer uint64 - Seek uint64 - Rbytes uint64 - Wbytes uint64 - Attachtime Timeval - Timestamp Timeval - Time Timeval -} -type Timeval struct { - Sec int64 - Usec int64 -} - -type Diskstat struct{} -type bintime struct{} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm.go deleted file mode 100644 index 86054a62..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm.go +++ /dev/null @@ -1,38 +0,0 @@ -//go:build openbsd && arm -// +build openbsd,arm - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs disk/types_openbsd.go - -package disk - -const ( - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfDiskstats = 0x60 -) - -type Diskstats struct { - Name [16]int8 - Busy int32 - Rxfer uint64 - Wxfer uint64 - Seek uint64 - Rbytes uint64 - Wbytes uint64 - Attachtime Timeval - Timestamp Timeval - Time Timeval -} -type Timeval struct { - Sec int64 - Usec int32 -} - -type Diskstat struct{} -type bintime struct{} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm64.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm64.go deleted file mode 100644 index ae1cf57e..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_openbsd_arm64.go +++ /dev/null @@ -1,38 +0,0 @@ -//go:build openbsd && arm64 -// +build openbsd,arm64 - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs disk/types_openbsd.go - -package disk - -const ( - devstat_NO_DATA = 0x00 - devstat_READ = 0x01 - devstat_WRITE = 0x02 - devstat_FREE = 0x03 -) - -const ( - sizeOfDiskstats = 0x70 -) - -type Diskstats struct { - Name [16]int8 - Busy int32 - Rxfer uint64 - Wxfer uint64 - Seek uint64 - Rbytes uint64 - Wbytes uint64 - Attachtime Timeval - Timestamp Timeval - Time Timeval -} -type Timeval struct { - Sec int64 - Usec int64 -} - -type Diskstat struct{} -type bintime struct{} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_solaris.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_solaris.go deleted file mode 100644 index 934d651f..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_solaris.go +++ /dev/null @@ -1,260 +0,0 @@ -//go:build solaris -// +build solaris - -package disk - -import ( - "bufio" - "bytes" - "context" - "fmt" - "math" - "os" - "path/filepath" - "regexp" - "runtime" - "strconv" - "strings" - - "github.com/shirou/gopsutil/v3/internal/common" - "golang.org/x/sys/unix" -) - -const ( - // _DEFAULT_NUM_MOUNTS is set to `cat /etc/mnttab | wc -l` rounded up to the - // nearest power of two. - _DEFAULT_NUM_MOUNTS = 32 - - // _MNTTAB default place to read mount information - _MNTTAB = "/etc/mnttab" -) - -// A blacklist of read-only virtual filesystems. Writable filesystems are of -// operational concern and must not be included in this list. -var fsTypeBlacklist = map[string]struct{}{ - "ctfs": {}, - "dev": {}, - "fd": {}, - "lofs": {}, - "lxproc": {}, - "mntfs": {}, - "objfs": {}, - "proc": {}, -} - -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - ret := make([]PartitionStat, 0, _DEFAULT_NUM_MOUNTS) - - // Scan mnttab(4) - f, err := os.Open(_MNTTAB) - if err != nil { - } - defer func() { - if err == nil { - err = f.Close() - } else { - f.Close() - } - }() - - scanner := bufio.NewScanner(f) - for scanner.Scan() { - fields := strings.Split(scanner.Text(), "\t") - - if _, found := fsTypeBlacklist[fields[2]]; found { - continue - } - - ret = append(ret, PartitionStat{ - // NOTE(seanc@): Device isn't exactly accurate: from mnttab(4): "The name - // of the resource that has been mounted." Ideally this value would come - // from Statvfs_t.Fsid but I'm leaving it to the caller to traverse - // unix.Statvfs(). - Device: fields[0], - Mountpoint: fields[1], - Fstype: fields[2], - Opts: strings.Split(fields[3], ","), - }) - } - if err := scanner.Err(); err != nil { - return nil, fmt.Errorf("unable to scan %q: %w", _MNTTAB, err) - } - - return ret, err -} - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - var issolaris bool - if runtime.GOOS == "illumos" { - issolaris = false - } else { - issolaris = true - } - // check disks instead of zfs pools - filterstr := "/[^zfs]/:::/^nread$|^nwritten$|^reads$|^writes$|^rtime$|^wtime$/" - kstatSysOut, err := invoke.CommandWithContext(ctx, "kstat", "-c", "disk", "-p", filterstr) - if err != nil { - return nil, fmt.Errorf("cannot execute kstat: %w", err) - } - lines := strings.Split(strings.TrimSpace(string(kstatSysOut)), "\n") - if len(lines) == 0 { - return nil, fmt.Errorf("no disk class found") - } - dnamearr := make(map[string]string) - nreadarr := make(map[string]uint64) - nwrittenarr := make(map[string]uint64) - readsarr := make(map[string]uint64) - writesarr := make(map[string]uint64) - rtimearr := make(map[string]uint64) - wtimearr := make(map[string]uint64) - re := regexp.MustCompile(`[:\s]+`) - - // in case the name is "/dev/sda1", then convert to "sda1" - for i, name := range names { - names[i] = filepath.Base(name) - } - - for _, line := range lines { - fields := re.Split(line, -1) - if len(fields) == 0 { - continue - } - moduleName := fields[0] - instance := fields[1] - dname := fields[2] - - if len(names) > 0 && !common.StringsHas(names, dname) { - continue - } - dnamearr[moduleName+instance] = dname - // fields[3] is the statistic label, fields[4] is the value - switch fields[3] { - case "nread": - nreadarr[moduleName+instance], err = strconv.ParseUint((fields[4]), 10, 64) - if err != nil { - return nil, err - } - case "nwritten": - nwrittenarr[moduleName+instance], err = strconv.ParseUint((fields[4]), 10, 64) - if err != nil { - return nil, err - } - case "reads": - readsarr[moduleName+instance], err = strconv.ParseUint((fields[4]), 10, 64) - if err != nil { - return nil, err - } - case "writes": - writesarr[moduleName+instance], err = strconv.ParseUint((fields[4]), 10, 64) - if err != nil { - return nil, err - } - case "rtime": - if issolaris { - // from sec to milli secs - var frtime float64 - frtime, err = strconv.ParseFloat((fields[4]), 64) - rtimearr[moduleName+instance] = uint64(frtime * 1000) - } else { - // from nano to milli secs - rtimearr[moduleName+instance], err = strconv.ParseUint((fields[4]), 10, 64) - rtimearr[moduleName+instance] = rtimearr[moduleName+instance] / 1000 / 1000 - } - if err != nil { - return nil, err - } - case "wtime": - if issolaris { - // from sec to milli secs - var fwtime float64 - fwtime, err = strconv.ParseFloat((fields[4]), 64) - wtimearr[moduleName+instance] = uint64(fwtime * 1000) - } else { - // from nano to milli secs - wtimearr[moduleName+instance], err = strconv.ParseUint((fields[4]), 10, 64) - wtimearr[moduleName+instance] = wtimearr[moduleName+instance] / 1000 / 1000 - } - if err != nil { - return nil, err - } - } - } - - ret := make(map[string]IOCountersStat, 0) - for k := range dnamearr { - d := IOCountersStat{ - Name: dnamearr[k], - ReadBytes: nreadarr[k], - WriteBytes: nwrittenarr[k], - ReadCount: readsarr[k], - WriteCount: writesarr[k], - ReadTime: rtimearr[k], - WriteTime: wtimearr[k], - } - ret[d.Name] = d - } - return ret, nil -} - -func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) { - statvfs := unix.Statvfs_t{} - if err := unix.Statvfs(path, &statvfs); err != nil { - return nil, fmt.Errorf("unable to call statvfs(2) on %q: %w", path, err) - } - - usageStat := &UsageStat{ - Path: path, - Fstype: common.IntToString(statvfs.Basetype[:]), - Total: statvfs.Blocks * statvfs.Frsize, - Free: statvfs.Bfree * statvfs.Frsize, - Used: (statvfs.Blocks - statvfs.Bfree) * statvfs.Frsize, - - // NOTE: ZFS (and FreeBZSD's UFS2) use dynamic inode/dnode allocation. - // Explicitly return a near-zero value for InodesUsedPercent so that nothing - // attempts to garbage collect based on a lack of available inodes/dnodes. - // Similarly, don't use the zero value to prevent divide-by-zero situations - // and inject a faux near-zero value. Filesystems evolve. Has your - // filesystem evolved? Probably not if you care about the number of - // available inodes. - InodesTotal: 1024.0 * 1024.0, - InodesUsed: 1024.0, - InodesFree: math.MaxUint64, - InodesUsedPercent: (1024.0 / (1024.0 * 1024.0)) * 100.0, - } - - usageStat.UsedPercent = (float64(usageStat.Used) / float64(usageStat.Total)) * 100.0 - - return usageStat, nil -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - out, err := invoke.CommandWithContext(ctx, "cfgadm", "-ls", "select=type(disk),cols=ap_id:info,cols2=,noheadings") - if err != nil { - return "", fmt.Errorf("exec cfgadm: %w", err) - } - - suf := "::" + strings.TrimPrefix(name, "/dev/") - s := bufio.NewScanner(bytes.NewReader(out)) - for s.Scan() { - flds := strings.Fields(s.Text()) - if strings.HasSuffix(flds[0], suf) { - flen := len(flds) - if flen >= 3 { - for i, f := range flds { - if i > 0 && i < flen-1 && f == "SN:" { - return flds[i+1], nil - } - } - } - return "", nil - } - } - if err := s.Err(); err != nil { - return "", err - } - return "", nil -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_unix.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_unix.go deleted file mode 100644 index 1e735240..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_unix.go +++ /dev/null @@ -1,63 +0,0 @@ -//go:build freebsd || linux || darwin || (aix && !cgo) -// +build freebsd linux darwin aix,!cgo - -package disk - -import ( - "context" - "strconv" - - "golang.org/x/sys/unix" -) - -func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) { - stat := unix.Statfs_t{} - err := unix.Statfs(path, &stat) - if err != nil { - return nil, err - } - bsize := stat.Bsize - - ret := &UsageStat{ - Path: unescapeFstab(path), - Fstype: getFsType(stat), - Total: (uint64(stat.Blocks) * uint64(bsize)), - Free: (uint64(stat.Bavail) * uint64(bsize)), - InodesTotal: (uint64(stat.Files)), - InodesFree: (uint64(stat.Ffree)), - } - - ret.Used = (uint64(stat.Blocks) - uint64(stat.Bfree)) * uint64(bsize) - - if (ret.Used + ret.Free) == 0 { - ret.UsedPercent = 0 - } else { - // We don't use ret.Total to calculate percent. - // see https://github.com/shirou/gopsutil/issues/562 - ret.UsedPercent = (float64(ret.Used) / float64(ret.Used+ret.Free)) * 100.0 - } - - // if could not get InodesTotal, return empty - if ret.InodesTotal < ret.InodesFree { - return ret, nil - } - - ret.InodesUsed = (ret.InodesTotal - ret.InodesFree) - - if ret.InodesTotal == 0 { - ret.InodesUsedPercent = 0 - } else { - ret.InodesUsedPercent = (float64(ret.InodesUsed) / float64(ret.InodesTotal)) * 100.0 - } - - return ret, nil -} - -// Unescape escaped octal chars (like space 040, ampersand 046 and backslash 134) to their real value in fstab fields issue#555 -func unescapeFstab(path string) string { - escaped, err := strconv.Unquote(`"` + path + `"`) - if err != nil { - return path - } - return escaped -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_windows.go b/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_windows.go deleted file mode 100644 index 8a1a28d6..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/disk_windows.go +++ /dev/null @@ -1,237 +0,0 @@ -//go:build windows -// +build windows - -package disk - -import ( - "bytes" - "context" - "fmt" - "sync" - "syscall" - "unsafe" - - "github.com/shirou/gopsutil/v3/internal/common" - "golang.org/x/sys/windows" - "golang.org/x/sys/windows/registry" -) - -var ( - procGetDiskFreeSpaceExW = common.Modkernel32.NewProc("GetDiskFreeSpaceExW") - procGetLogicalDriveStringsW = common.Modkernel32.NewProc("GetLogicalDriveStringsW") - procGetDriveType = common.Modkernel32.NewProc("GetDriveTypeW") - procGetVolumeInformation = common.Modkernel32.NewProc("GetVolumeInformationW") -) - -var ( - fileFileCompression = int64(16) // 0x00000010 - fileReadOnlyVolume = int64(524288) // 0x00080000 -) - -// diskPerformance is an equivalent representation of DISK_PERFORMANCE in the Windows API. -// https://docs.microsoft.com/fr-fr/windows/win32/api/winioctl/ns-winioctl-disk_performance -type diskPerformance struct { - BytesRead int64 - BytesWritten int64 - ReadTime int64 - WriteTime int64 - IdleTime int64 - ReadCount uint32 - WriteCount uint32 - QueueDepth uint32 - SplitCount uint32 - QueryTime int64 - StorageDeviceNumber uint32 - StorageManagerName [8]uint16 - alignmentPadding uint32 // necessary for 32bit support, see https://github.com/elastic/beats/pull/16553 -} - -func init() { - // enable disk performance counters on Windows Server editions (needs to run as admin) - key, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Services\PartMgr`, registry.SET_VALUE) - if err == nil { - key.SetDWordValue("EnableCounterForIoctl", 1) - } -} - -func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) { - lpFreeBytesAvailable := int64(0) - lpTotalNumberOfBytes := int64(0) - lpTotalNumberOfFreeBytes := int64(0) - diskret, _, err := procGetDiskFreeSpaceExW.Call( - uintptr(unsafe.Pointer(windows.StringToUTF16Ptr(path))), - uintptr(unsafe.Pointer(&lpFreeBytesAvailable)), - uintptr(unsafe.Pointer(&lpTotalNumberOfBytes)), - uintptr(unsafe.Pointer(&lpTotalNumberOfFreeBytes))) - if diskret == 0 { - return nil, err - } - ret := &UsageStat{ - Path: path, - Total: uint64(lpTotalNumberOfBytes), - Free: uint64(lpTotalNumberOfFreeBytes), - Used: uint64(lpTotalNumberOfBytes) - uint64(lpTotalNumberOfFreeBytes), - UsedPercent: (float64(lpTotalNumberOfBytes) - float64(lpTotalNumberOfFreeBytes)) / float64(lpTotalNumberOfBytes) * 100, - // InodesTotal: 0, - // InodesFree: 0, - // InodesUsed: 0, - // InodesUsedPercent: 0, - } - return ret, nil -} - -// PartitionsWithContext returns disk partitions. -// Since GetVolumeInformation doesn't have a timeout, this method uses context to set deadline by users. -func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { - warnings := Warnings{ - Verbose: true, - } - var ret []PartitionStat - retChan := make(chan []PartitionStat) - errChan := make(chan error) - lpBuffer := make([]byte, 254) - - var waitgrp sync.WaitGroup - waitgrp.Add(1) - defer waitgrp.Done() - - f := func() { - defer func() { - waitgrp.Wait() - // fires when this func and the outside func finishes. - close(errChan) - close(retChan) - }() - - diskret, _, err := procGetLogicalDriveStringsW.Call( - uintptr(len(lpBuffer)), - uintptr(unsafe.Pointer(&lpBuffer[0]))) - if diskret == 0 { - errChan <- err - return - } - for _, v := range lpBuffer { - if v >= 65 && v <= 90 { - path := string(v) + ":" - typepath, _ := windows.UTF16PtrFromString(path) - typeret, _, _ := procGetDriveType.Call(uintptr(unsafe.Pointer(typepath))) - if typeret == 0 { - err := windows.GetLastError() - warnings.Add(err) - continue - } - // 2: DRIVE_REMOVABLE 3: DRIVE_FIXED 4: DRIVE_REMOTE 5: DRIVE_CDROM - - if typeret == 2 || typeret == 3 || typeret == 4 || typeret == 5 { - lpVolumeNameBuffer := make([]byte, 256) - lpVolumeSerialNumber := int64(0) - lpMaximumComponentLength := int64(0) - lpFileSystemFlags := int64(0) - lpFileSystemNameBuffer := make([]byte, 256) - volpath, _ := windows.UTF16PtrFromString(string(v) + ":/") - driveret, _, err := procGetVolumeInformation.Call( - uintptr(unsafe.Pointer(volpath)), - uintptr(unsafe.Pointer(&lpVolumeNameBuffer[0])), - uintptr(len(lpVolumeNameBuffer)), - uintptr(unsafe.Pointer(&lpVolumeSerialNumber)), - uintptr(unsafe.Pointer(&lpMaximumComponentLength)), - uintptr(unsafe.Pointer(&lpFileSystemFlags)), - uintptr(unsafe.Pointer(&lpFileSystemNameBuffer[0])), - uintptr(len(lpFileSystemNameBuffer))) - if driveret == 0 { - if typeret == 5 || typeret == 2 { - continue // device is not ready will happen if there is no disk in the drive - } - warnings.Add(err) - continue - } - opts := []string{"rw"} - if lpFileSystemFlags&fileReadOnlyVolume != 0 { - opts = []string{"ro"} - } - if lpFileSystemFlags&fileFileCompression != 0 { - opts = append(opts, "compress") - } - - d := PartitionStat{ - Mountpoint: path, - Device: path, - Fstype: string(bytes.Replace(lpFileSystemNameBuffer, []byte("\x00"), []byte(""), -1)), - Opts: opts, - } - ret = append(ret, d) - } - } - } - retChan <- ret - } - - go f() - select { - case err := <-errChan: - return ret, err - case ret := <-retChan: - return ret, warnings.Reference() - case <-ctx.Done(): - return ret, ctx.Err() - } -} - -func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) { - // https://github.com/giampaolo/psutil/blob/544e9daa4f66a9f80d7bf6c7886d693ee42f0a13/psutil/arch/windows/disk.c#L83 - drivemap := make(map[string]IOCountersStat, 0) - var diskPerformance diskPerformance - - lpBuffer := make([]uint16, 254) - lpBufferLen, err := windows.GetLogicalDriveStrings(uint32(len(lpBuffer)), &lpBuffer[0]) - if err != nil { - return drivemap, err - } - for _, v := range lpBuffer[:lpBufferLen] { - if 'A' <= v && v <= 'Z' { - path := string(rune(v)) + ":" - typepath, _ := windows.UTF16PtrFromString(path) - typeret := windows.GetDriveType(typepath) - if typeret == 0 { - return drivemap, windows.GetLastError() - } - if typeret != windows.DRIVE_FIXED { - continue - } - szDevice := fmt.Sprintf(`\\.\%s`, path) - const IOCTL_DISK_PERFORMANCE = 0x70020 - h, err := windows.CreateFile(syscall.StringToUTF16Ptr(szDevice), 0, windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE, nil, windows.OPEN_EXISTING, 0, 0) - if err != nil { - if err == windows.ERROR_FILE_NOT_FOUND { - continue - } - return drivemap, err - } - defer windows.CloseHandle(h) - - var diskPerformanceSize uint32 - err = windows.DeviceIoControl(h, IOCTL_DISK_PERFORMANCE, nil, 0, (*byte)(unsafe.Pointer(&diskPerformance)), uint32(unsafe.Sizeof(diskPerformance)), &diskPerformanceSize, nil) - if err != nil { - return drivemap, err - } - drivemap[path] = IOCountersStat{ - ReadBytes: uint64(diskPerformance.BytesRead), - WriteBytes: uint64(diskPerformance.BytesWritten), - ReadCount: uint64(diskPerformance.ReadCount), - WriteCount: uint64(diskPerformance.WriteCount), - ReadTime: uint64(diskPerformance.ReadTime / 10000 / 1000), // convert to ms: https://github.com/giampaolo/psutil/issues/1012 - WriteTime: uint64(diskPerformance.WriteTime / 10000 / 1000), - Name: path, - } - } - } - return drivemap, nil -} - -func SerialNumberWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} - -func LabelWithContext(ctx context.Context, name string) (string, error) { - return "", common.ErrNotImplementedError -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.c b/backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.c deleted file mode 100644 index 8aab04f6..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.c +++ /dev/null @@ -1,129 +0,0 @@ -// https://github.com/lufia/iostat/blob/9f7362b77ad333b26c01c99de52a11bdb650ded2/iostat_darwin.c -#include -#include -#include "iostat_darwin.h" - -#define IOKIT 1 /* to get io_name_t in device_types.h */ - -#include -#include -#include -#include - -#include - -static int getdrivestat(io_registry_entry_t d, DriveStats *stat); -static int fillstat(io_registry_entry_t d, DriveStats *stat); - -int -gopsutil_v3_readdrivestat(DriveStats a[], int n) -{ - CFMutableDictionaryRef match; - io_iterator_t drives; - io_registry_entry_t d; - kern_return_t status; - int na, rv; - - match = IOServiceMatching("IOMedia"); - CFDictionaryAddValue(match, CFSTR(kIOMediaWholeKey), kCFBooleanTrue); - status = IOServiceGetMatchingServices(0, match, &drives); - if(status != KERN_SUCCESS) - return -1; - - na = 0; - while(na < n && (d=IOIteratorNext(drives)) > 0){ - rv = getdrivestat(d, &a[na]); - if(rv < 0) - return -1; - if(rv > 0) - na++; - IOObjectRelease(d); - } - IOObjectRelease(drives); - return na; -} - -static int -getdrivestat(io_registry_entry_t d, DriveStats *stat) -{ - io_registry_entry_t parent; - kern_return_t status; - CFDictionaryRef props; - CFStringRef name; - CFNumberRef num; - int rv; - - memset(stat, 0, sizeof *stat); - status = IORegistryEntryGetParentEntry(d, kIOServicePlane, &parent); - if(status != KERN_SUCCESS) - return -1; - if(!IOObjectConformsTo(parent, "IOBlockStorageDriver")){ - IOObjectRelease(parent); - return 0; - } - - status = IORegistryEntryCreateCFProperties(d, (CFMutableDictionaryRef *)&props, kCFAllocatorDefault, kNilOptions); - if(status != KERN_SUCCESS){ - IOObjectRelease(parent); - return -1; - } - name = (CFStringRef)CFDictionaryGetValue(props, CFSTR(kIOBSDNameKey)); - CFStringGetCString(name, stat->name, NAMELEN, CFStringGetSystemEncoding()); - num = (CFNumberRef)CFDictionaryGetValue(props, CFSTR(kIOMediaSizeKey)); - CFNumberGetValue(num, kCFNumberSInt64Type, &stat->size); - num = (CFNumberRef)CFDictionaryGetValue(props, CFSTR(kIOMediaPreferredBlockSizeKey)); - CFNumberGetValue(num, kCFNumberSInt64Type, &stat->blocksize); - CFRelease(props); - - rv = fillstat(parent, stat); - IOObjectRelease(parent); - if(rv < 0) - return -1; - return 1; -} - -static struct { - char *key; - size_t off; -} statstab[] = { - {kIOBlockStorageDriverStatisticsBytesReadKey, offsetof(DriveStats, read)}, - {kIOBlockStorageDriverStatisticsBytesWrittenKey, offsetof(DriveStats, written)}, - {kIOBlockStorageDriverStatisticsReadsKey, offsetof(DriveStats, nread)}, - {kIOBlockStorageDriverStatisticsWritesKey, offsetof(DriveStats, nwrite)}, - {kIOBlockStorageDriverStatisticsTotalReadTimeKey, offsetof(DriveStats, readtime)}, - {kIOBlockStorageDriverStatisticsTotalWriteTimeKey, offsetof(DriveStats, writetime)}, - {kIOBlockStorageDriverStatisticsLatentReadTimeKey, offsetof(DriveStats, readlat)}, - {kIOBlockStorageDriverStatisticsLatentWriteTimeKey, offsetof(DriveStats, writelat)}, -}; - -static int -fillstat(io_registry_entry_t d, DriveStats *stat) -{ - CFDictionaryRef props, v; - CFNumberRef num; - kern_return_t status; - typeof(statstab[0]) *bp, *ep; - - status = IORegistryEntryCreateCFProperties(d, (CFMutableDictionaryRef *)&props, kCFAllocatorDefault, kNilOptions); - if(status != KERN_SUCCESS) - return -1; - v = (CFDictionaryRef)CFDictionaryGetValue(props, CFSTR(kIOBlockStorageDriverStatisticsKey)); - if(v == NULL){ - CFRelease(props); - return -1; - } - - ep = &statstab[sizeof(statstab)/sizeof(statstab[0])]; - for(bp = &statstab[0]; bp < ep; bp++){ - CFStringRef s; - - s = CFStringCreateWithCString(kCFAllocatorDefault, bp->key, CFStringGetSystemEncoding()); - num = (CFNumberRef)CFDictionaryGetValue(v, s); - if(num) - CFNumberGetValue(num, kCFNumberSInt64Type, ((char*)stat)+bp->off); - CFRelease(s); - } - - CFRelease(props); - return 0; -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.h b/backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.h deleted file mode 100644 index cb9ec7a0..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/disk/iostat_darwin.h +++ /dev/null @@ -1,32 +0,0 @@ -// https://github.com/lufia/iostat/blob/9f7362b77ad333b26c01c99de52a11bdb650ded2/iostat_darwin.h -typedef struct DriveStats DriveStats; -typedef struct CPUStats CPUStats; - -enum { - NDRIVE = 16, - NAMELEN = 31 -}; - -struct DriveStats { - char name[NAMELEN+1]; - int64_t size; - int64_t blocksize; - - int64_t read; - int64_t written; - int64_t nread; - int64_t nwrite; - int64_t readtime; - int64_t writetime; - int64_t readlat; - int64_t writelat; -}; - -struct CPUStats { - natural_t user; - natural_t nice; - natural_t sys; - natural_t idle; -}; - -extern int gopsutil_v3_readdrivestat(DriveStats a[], int n); diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/binary.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/binary.go deleted file mode 100644 index 5e8d43db..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/binary.go +++ /dev/null @@ -1,637 +0,0 @@ -package common - -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package binary implements simple translation between numbers and byte -// sequences and encoding and decoding of varints. -// -// Numbers are translated by reading and writing fixed-size values. -// A fixed-size value is either a fixed-size arithmetic -// type (int8, uint8, int16, float32, complex64, ...) -// or an array or struct containing only fixed-size values. -// -// The varint functions encode and decode single integer values using -// a variable-length encoding; smaller values require fewer bytes. -// For a specification, see -// http://code.google.com/apis/protocolbuffers/docs/encoding.html. -// -// This package favors simplicity over efficiency. Clients that require -// high-performance serialization, especially for large data structures, -// should look at more advanced solutions such as the encoding/gob -// package or protocol buffers. - -import ( - "errors" - "io" - "math" - "reflect" -) - -// A ByteOrder specifies how to convert byte sequences into -// 16-, 32-, or 64-bit unsigned integers. -type ByteOrder interface { - Uint16([]byte) uint16 - Uint32([]byte) uint32 - Uint64([]byte) uint64 - PutUint16([]byte, uint16) - PutUint32([]byte, uint32) - PutUint64([]byte, uint64) - String() string -} - -// LittleEndian is the little-endian implementation of ByteOrder. -var LittleEndian littleEndian - -// BigEndian is the big-endian implementation of ByteOrder. -var BigEndian bigEndian - -type littleEndian struct{} - -func (littleEndian) Uint16(b []byte) uint16 { return uint16(b[0]) | uint16(b[1])<<8 } - -func (littleEndian) PutUint16(b []byte, v uint16) { - b[0] = byte(v) - b[1] = byte(v >> 8) -} - -func (littleEndian) Uint32(b []byte) uint32 { - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func (littleEndian) PutUint32(b []byte, v uint32) { - b[0] = byte(v) - b[1] = byte(v >> 8) - b[2] = byte(v >> 16) - b[3] = byte(v >> 24) -} - -func (littleEndian) Uint64(b []byte) uint64 { - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -func (littleEndian) PutUint64(b []byte, v uint64) { - b[0] = byte(v) - b[1] = byte(v >> 8) - b[2] = byte(v >> 16) - b[3] = byte(v >> 24) - b[4] = byte(v >> 32) - b[5] = byte(v >> 40) - b[6] = byte(v >> 48) - b[7] = byte(v >> 56) -} - -func (littleEndian) String() string { return "LittleEndian" } - -func (littleEndian) GoString() string { return "binary.LittleEndian" } - -type bigEndian struct{} - -func (bigEndian) Uint16(b []byte) uint16 { return uint16(b[1]) | uint16(b[0])<<8 } - -func (bigEndian) PutUint16(b []byte, v uint16) { - b[0] = byte(v >> 8) - b[1] = byte(v) -} - -func (bigEndian) Uint32(b []byte) uint32 { - return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24 -} - -func (bigEndian) PutUint32(b []byte, v uint32) { - b[0] = byte(v >> 24) - b[1] = byte(v >> 16) - b[2] = byte(v >> 8) - b[3] = byte(v) -} - -func (bigEndian) Uint64(b []byte) uint64 { - return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | - uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 -} - -func (bigEndian) PutUint64(b []byte, v uint64) { - b[0] = byte(v >> 56) - b[1] = byte(v >> 48) - b[2] = byte(v >> 40) - b[3] = byte(v >> 32) - b[4] = byte(v >> 24) - b[5] = byte(v >> 16) - b[6] = byte(v >> 8) - b[7] = byte(v) -} - -func (bigEndian) String() string { return "BigEndian" } - -func (bigEndian) GoString() string { return "binary.BigEndian" } - -// Read reads structured binary data from r into data. -// Data must be a pointer to a fixed-size value or a slice -// of fixed-size values. -// Bytes read from r are decoded using the specified byte order -// and written to successive fields of the data. -// When reading into structs, the field data for fields with -// blank (_) field names is skipped; i.e., blank field names -// may be used for padding. -// When reading into a struct, all non-blank fields must be exported. -func Read(r io.Reader, order ByteOrder, data interface{}) error { - // Fast path for basic types and slices. - if n := intDataSize(data); n != 0 { - var b [8]byte - var bs []byte - if n > len(b) { - bs = make([]byte, n) - } else { - bs = b[:n] - } - if _, err := io.ReadFull(r, bs); err != nil { - return err - } - switch data := data.(type) { - case *int8: - *data = int8(b[0]) - case *uint8: - *data = b[0] - case *int16: - *data = int16(order.Uint16(bs)) - case *uint16: - *data = order.Uint16(bs) - case *int32: - *data = int32(order.Uint32(bs)) - case *uint32: - *data = order.Uint32(bs) - case *int64: - *data = int64(order.Uint64(bs)) - case *uint64: - *data = order.Uint64(bs) - case []int8: - for i, x := range bs { // Easier to loop over the input for 8-bit values. - data[i] = int8(x) - } - case []uint8: - copy(data, bs) - case []int16: - for i := range data { - data[i] = int16(order.Uint16(bs[2*i:])) - } - case []uint16: - for i := range data { - data[i] = order.Uint16(bs[2*i:]) - } - case []int32: - for i := range data { - data[i] = int32(order.Uint32(bs[4*i:])) - } - case []uint32: - for i := range data { - data[i] = order.Uint32(bs[4*i:]) - } - case []int64: - for i := range data { - data[i] = int64(order.Uint64(bs[8*i:])) - } - case []uint64: - for i := range data { - data[i] = order.Uint64(bs[8*i:]) - } - } - return nil - } - - // Fallback to reflect-based decoding. - v := reflect.ValueOf(data) - size := -1 - switch v.Kind() { - case reflect.Ptr: - v = v.Elem() - size = dataSize(v) - case reflect.Slice: - size = dataSize(v) - } - if size < 0 { - return errors.New("binary.Read: invalid type " + reflect.TypeOf(data).String()) - } - d := &decoder{order: order, buf: make([]byte, size)} - if _, err := io.ReadFull(r, d.buf); err != nil { - return err - } - d.value(v) - return nil -} - -// Write writes the binary representation of data into w. -// Data must be a fixed-size value or a slice of fixed-size -// values, or a pointer to such data. -// Bytes written to w are encoded using the specified byte order -// and read from successive fields of the data. -// When writing structs, zero values are written for fields -// with blank (_) field names. -func Write(w io.Writer, order ByteOrder, data interface{}) error { - // Fast path for basic types and slices. - if n := intDataSize(data); n != 0 { - var b [8]byte - var bs []byte - if n > len(b) { - bs = make([]byte, n) - } else { - bs = b[:n] - } - switch v := data.(type) { - case *int8: - bs = b[:1] - b[0] = byte(*v) - case int8: - bs = b[:1] - b[0] = byte(v) - case []int8: - for i, x := range v { - bs[i] = byte(x) - } - case *uint8: - bs = b[:1] - b[0] = *v - case uint8: - bs = b[:1] - b[0] = byte(v) - case []uint8: - bs = v - case *int16: - bs = b[:2] - order.PutUint16(bs, uint16(*v)) - case int16: - bs = b[:2] - order.PutUint16(bs, uint16(v)) - case []int16: - for i, x := range v { - order.PutUint16(bs[2*i:], uint16(x)) - } - case *uint16: - bs = b[:2] - order.PutUint16(bs, *v) - case uint16: - bs = b[:2] - order.PutUint16(bs, v) - case []uint16: - for i, x := range v { - order.PutUint16(bs[2*i:], x) - } - case *int32: - bs = b[:4] - order.PutUint32(bs, uint32(*v)) - case int32: - bs = b[:4] - order.PutUint32(bs, uint32(v)) - case []int32: - for i, x := range v { - order.PutUint32(bs[4*i:], uint32(x)) - } - case *uint32: - bs = b[:4] - order.PutUint32(bs, *v) - case uint32: - bs = b[:4] - order.PutUint32(bs, v) - case []uint32: - for i, x := range v { - order.PutUint32(bs[4*i:], x) - } - case *int64: - bs = b[:8] - order.PutUint64(bs, uint64(*v)) - case int64: - bs = b[:8] - order.PutUint64(bs, uint64(v)) - case []int64: - for i, x := range v { - order.PutUint64(bs[8*i:], uint64(x)) - } - case *uint64: - bs = b[:8] - order.PutUint64(bs, *v) - case uint64: - bs = b[:8] - order.PutUint64(bs, v) - case []uint64: - for i, x := range v { - order.PutUint64(bs[8*i:], x) - } - } - _, err := w.Write(bs) - return err - } - - // Fallback to reflect-based encoding. - v := reflect.Indirect(reflect.ValueOf(data)) - size := dataSize(v) - if size < 0 { - return errors.New("binary.Write: invalid type " + reflect.TypeOf(data).String()) - } - buf := make([]byte, size) - e := &encoder{order: order, buf: buf} - e.value(v) - _, err := w.Write(buf) - return err -} - -// Size returns how many bytes Write would generate to encode the value v, which -// must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. -// If v is neither of these, Size returns -1. -func Size(v interface{}) int { - return dataSize(reflect.Indirect(reflect.ValueOf(v))) -} - -// dataSize returns the number of bytes the actual data represented by v occupies in memory. -// For compound structures, it sums the sizes of the elements. Thus, for instance, for a slice -// it returns the length of the slice times the element size and does not count the memory -// occupied by the header. If the type of v is not acceptable, dataSize returns -1. -func dataSize(v reflect.Value) int { - if v.Kind() == reflect.Slice { - if s := sizeof(v.Type().Elem()); s >= 0 { - return s * v.Len() - } - return -1 - } - return sizeof(v.Type()) -} - -// sizeof returns the size >= 0 of variables for the given type or -1 if the type is not acceptable. -func sizeof(t reflect.Type) int { - switch t.Kind() { - case reflect.Array: - if s := sizeof(t.Elem()); s >= 0 { - return s * t.Len() - } - - case reflect.Struct: - sum := 0 - for i, n := 0, t.NumField(); i < n; i++ { - s := sizeof(t.Field(i).Type) - if s < 0 { - return -1 - } - sum += s - } - return sum - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, - reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128, reflect.Ptr: - return int(t.Size()) - } - - return -1 -} - -type coder struct { - order ByteOrder - buf []byte -} - -type ( - decoder coder - encoder coder -) - -func (d *decoder) uint8() uint8 { - x := d.buf[0] - d.buf = d.buf[1:] - return x -} - -func (e *encoder) uint8(x uint8) { - e.buf[0] = x - e.buf = e.buf[1:] -} - -func (d *decoder) uint16() uint16 { - x := d.order.Uint16(d.buf[0:2]) - d.buf = d.buf[2:] - return x -} - -func (e *encoder) uint16(x uint16) { - e.order.PutUint16(e.buf[0:2], x) - e.buf = e.buf[2:] -} - -func (d *decoder) uint32() uint32 { - x := d.order.Uint32(d.buf[0:4]) - d.buf = d.buf[4:] - return x -} - -func (e *encoder) uint32(x uint32) { - e.order.PutUint32(e.buf[0:4], x) - e.buf = e.buf[4:] -} - -func (d *decoder) uint64() uint64 { - x := d.order.Uint64(d.buf[0:8]) - d.buf = d.buf[8:] - return x -} - -func (e *encoder) uint64(x uint64) { - e.order.PutUint64(e.buf[0:8], x) - e.buf = e.buf[8:] -} - -func (d *decoder) int8() int8 { return int8(d.uint8()) } - -func (e *encoder) int8(x int8) { e.uint8(uint8(x)) } - -func (d *decoder) int16() int16 { return int16(d.uint16()) } - -func (e *encoder) int16(x int16) { e.uint16(uint16(x)) } - -func (d *decoder) int32() int32 { return int32(d.uint32()) } - -func (e *encoder) int32(x int32) { e.uint32(uint32(x)) } - -func (d *decoder) int64() int64 { return int64(d.uint64()) } - -func (e *encoder) int64(x int64) { e.uint64(uint64(x)) } - -func (d *decoder) value(v reflect.Value) { - switch v.Kind() { - case reflect.Array: - l := v.Len() - for i := 0; i < l; i++ { - d.value(v.Index(i)) - } - - case reflect.Struct: - t := v.Type() - l := v.NumField() - for i := 0; i < l; i++ { - // Note: Calling v.CanSet() below is an optimization. - // It would be sufficient to check the field name, - // but creating the StructField info for each field is - // costly (run "go test -bench=ReadStruct" and compare - // results when making changes to this code). - if v := v.Field(i); v.CanSet() || t.Field(i).Name != "_" { - d.value(v) - } else { - d.skip(v) - } - } - - case reflect.Slice: - l := v.Len() - for i := 0; i < l; i++ { - d.value(v.Index(i)) - } - - case reflect.Int8: - v.SetInt(int64(d.int8())) - case reflect.Int16: - v.SetInt(int64(d.int16())) - case reflect.Int32: - v.SetInt(int64(d.int32())) - case reflect.Int64: - v.SetInt(d.int64()) - - case reflect.Uint8: - v.SetUint(uint64(d.uint8())) - case reflect.Uint16: - v.SetUint(uint64(d.uint16())) - case reflect.Uint32: - v.SetUint(uint64(d.uint32())) - case reflect.Uint64: - v.SetUint(d.uint64()) - - case reflect.Float32: - v.SetFloat(float64(math.Float32frombits(d.uint32()))) - case reflect.Float64: - v.SetFloat(math.Float64frombits(d.uint64())) - - case reflect.Complex64: - v.SetComplex(complex( - float64(math.Float32frombits(d.uint32())), - float64(math.Float32frombits(d.uint32())), - )) - case reflect.Complex128: - v.SetComplex(complex( - math.Float64frombits(d.uint64()), - math.Float64frombits(d.uint64()), - )) - } -} - -func (e *encoder) value(v reflect.Value) { - switch v.Kind() { - case reflect.Array: - l := v.Len() - for i := 0; i < l; i++ { - e.value(v.Index(i)) - } - - case reflect.Struct: - t := v.Type() - l := v.NumField() - for i := 0; i < l; i++ { - // see comment for corresponding code in decoder.value() - if v := v.Field(i); v.CanSet() || t.Field(i).Name != "_" { - e.value(v) - } else { - e.skip(v) - } - } - - case reflect.Slice: - l := v.Len() - for i := 0; i < l; i++ { - e.value(v.Index(i)) - } - - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - switch v.Type().Kind() { - case reflect.Int8: - e.int8(int8(v.Int())) - case reflect.Int16: - e.int16(int16(v.Int())) - case reflect.Int32: - e.int32(int32(v.Int())) - case reflect.Int64: - e.int64(v.Int()) - } - - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch v.Type().Kind() { - case reflect.Uint8: - e.uint8(uint8(v.Uint())) - case reflect.Uint16: - e.uint16(uint16(v.Uint())) - case reflect.Uint32: - e.uint32(uint32(v.Uint())) - case reflect.Uint64: - e.uint64(v.Uint()) - } - - case reflect.Float32, reflect.Float64: - switch v.Type().Kind() { - case reflect.Float32: - e.uint32(math.Float32bits(float32(v.Float()))) - case reflect.Float64: - e.uint64(math.Float64bits(v.Float())) - } - - case reflect.Complex64, reflect.Complex128: - switch v.Type().Kind() { - case reflect.Complex64: - x := v.Complex() - e.uint32(math.Float32bits(float32(real(x)))) - e.uint32(math.Float32bits(float32(imag(x)))) - case reflect.Complex128: - x := v.Complex() - e.uint64(math.Float64bits(real(x))) - e.uint64(math.Float64bits(imag(x))) - } - } -} - -func (d *decoder) skip(v reflect.Value) { - d.buf = d.buf[dataSize(v):] -} - -func (e *encoder) skip(v reflect.Value) { - n := dataSize(v) - for i := range e.buf[0:n] { - e.buf[i] = 0 - } - e.buf = e.buf[n:] -} - -// intDataSize returns the size of the data required to represent the data when encoded. -// It returns zero if the type cannot be implemented by the fast path in Read or Write. -func intDataSize(data interface{}) int { - switch data := data.(type) { - case int8, *int8, *uint8: - return 1 - case []int8: - return len(data) - case []uint8: - return len(data) - case int16, *int16, *uint16: - return 2 - case []int16: - return 2 * len(data) - case []uint16: - return 2 * len(data) - case int32, *int32, *uint32: - return 4 - case []int32: - return 4 * len(data) - case []uint32: - return 4 * len(data) - case int64, *int64, *uint64: - return 8 - case []int64: - return 8 * len(data) - case []uint64: - return 8 * len(data) - } - return 0 -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common.go deleted file mode 100644 index c1e96ca7..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common.go +++ /dev/null @@ -1,386 +0,0 @@ -package common - -// -// gopsutil is a port of psutil(http://pythonhosted.org/psutil/). -// This covers these architectures. -// - linux (amd64, arm) -// - freebsd (amd64) -// - windows (amd64) - -import ( - "bufio" - "bytes" - "context" - "errors" - "fmt" - "io" - "io/ioutil" - "net/url" - "os" - "os/exec" - "path" - "path/filepath" - "reflect" - "runtime" - "strconv" - "strings" - "time" -) - -var ( - Timeout = 3 * time.Second - ErrTimeout = errors.New("command timed out") -) - -type Invoker interface { - Command(string, ...string) ([]byte, error) - CommandWithContext(context.Context, string, ...string) ([]byte, error) -} - -type Invoke struct{} - -func (i Invoke) Command(name string, arg ...string) ([]byte, error) { - ctx, cancel := context.WithTimeout(context.Background(), Timeout) - defer cancel() - return i.CommandWithContext(ctx, name, arg...) -} - -func (i Invoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error) { - cmd := exec.CommandContext(ctx, name, arg...) - - var buf bytes.Buffer - cmd.Stdout = &buf - cmd.Stderr = &buf - - if err := cmd.Start(); err != nil { - return buf.Bytes(), err - } - - if err := cmd.Wait(); err != nil { - return buf.Bytes(), err - } - - return buf.Bytes(), nil -} - -type FakeInvoke struct { - Suffix string // Suffix species expected file name suffix such as "fail" - Error error // If Error specified, return the error. -} - -// Command in FakeInvoke returns from expected file if exists. -func (i FakeInvoke) Command(name string, arg ...string) ([]byte, error) { - if i.Error != nil { - return []byte{}, i.Error - } - - arch := runtime.GOOS - - commandName := filepath.Base(name) - - fname := strings.Join(append([]string{commandName}, arg...), "") - fname = url.QueryEscape(fname) - fpath := path.Join("testdata", arch, fname) - if i.Suffix != "" { - fpath += "_" + i.Suffix - } - if PathExists(fpath) { - return ioutil.ReadFile(fpath) - } - return []byte{}, fmt.Errorf("could not find testdata: %s", fpath) -} - -func (i FakeInvoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error) { - return i.Command(name, arg...) -} - -var ErrNotImplementedError = errors.New("not implemented yet") - -// ReadFile reads contents from a file -func ReadFile(filename string) (string, error) { - content, err := ioutil.ReadFile(filename) - if err != nil { - return "", err - } - - return string(content), nil -} - -// ReadLines reads contents from a file and splits them by new lines. -// A convenience wrapper to ReadLinesOffsetN(filename, 0, -1). -func ReadLines(filename string) ([]string, error) { - return ReadLinesOffsetN(filename, 0, -1) -} - -// ReadLinesOffsetN reads contents from file and splits them by new line. -// The offset tells at which line number to start. -// The count determines the number of lines to read (starting from offset): -// n >= 0: at most n lines -// n < 0: whole file -func ReadLinesOffsetN(filename string, offset uint, n int) ([]string, error) { - f, err := os.Open(filename) - if err != nil { - return []string{""}, err - } - defer f.Close() - - var ret []string - - r := bufio.NewReader(f) - for i := 0; i < n+int(offset) || n < 0; i++ { - line, err := r.ReadString('\n') - if err != nil { - if err == io.EOF && len(line) > 0 { - ret = append(ret, strings.Trim(line, "\n")) - } - break - } - if i < int(offset) { - continue - } - ret = append(ret, strings.Trim(line, "\n")) - } - - return ret, nil -} - -func IntToString(orig []int8) string { - ret := make([]byte, len(orig)) - size := -1 - for i, o := range orig { - if o == 0 { - size = i - break - } - ret[i] = byte(o) - } - if size == -1 { - size = len(orig) - } - - return string(ret[0:size]) -} - -func UintToString(orig []uint8) string { - ret := make([]byte, len(orig)) - size := -1 - for i, o := range orig { - if o == 0 { - size = i - break - } - ret[i] = byte(o) - } - if size == -1 { - size = len(orig) - } - - return string(ret[0:size]) -} - -func ByteToString(orig []byte) string { - n := -1 - l := -1 - for i, b := range orig { - // skip left side null - if l == -1 && b == 0 { - continue - } - if l == -1 { - l = i - } - - if b == 0 { - break - } - n = i + 1 - } - if n == -1 { - return string(orig) - } - return string(orig[l:n]) -} - -// ReadInts reads contents from single line file and returns them as []int32. -func ReadInts(filename string) ([]int64, error) { - f, err := os.Open(filename) - if err != nil { - return []int64{}, err - } - defer f.Close() - - var ret []int64 - - r := bufio.NewReader(f) - - // The int files that this is concerned with should only be one liners. - line, err := r.ReadString('\n') - if err != nil { - return []int64{}, err - } - - i, err := strconv.ParseInt(strings.Trim(line, "\n"), 10, 32) - if err != nil { - return []int64{}, err - } - ret = append(ret, i) - - return ret, nil -} - -// Parse Hex to uint32 without error -func HexToUint32(hex string) uint32 { - vv, _ := strconv.ParseUint(hex, 16, 32) - return uint32(vv) -} - -// Parse to int32 without error -func mustParseInt32(val string) int32 { - vv, _ := strconv.ParseInt(val, 10, 32) - return int32(vv) -} - -// Parse to uint64 without error -func mustParseUint64(val string) uint64 { - vv, _ := strconv.ParseInt(val, 10, 64) - return uint64(vv) -} - -// Parse to Float64 without error -func mustParseFloat64(val string) float64 { - vv, _ := strconv.ParseFloat(val, 64) - return vv -} - -// StringsHas checks the target string slice contains src or not -func StringsHas(target []string, src string) bool { - for _, t := range target { - if strings.TrimSpace(t) == src { - return true - } - } - return false -} - -// StringsContains checks the src in any string of the target string slice -func StringsContains(target []string, src string) bool { - for _, t := range target { - if strings.Contains(t, src) { - return true - } - } - return false -} - -// IntContains checks the src in any int of the target int slice. -func IntContains(target []int, src int) bool { - for _, t := range target { - if src == t { - return true - } - } - return false -} - -// get struct attributes. -// This method is used only for debugging platform dependent code. -func attributes(m interface{}) map[string]reflect.Type { - typ := reflect.TypeOf(m) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - attrs := make(map[string]reflect.Type) - if typ.Kind() != reflect.Struct { - return nil - } - - for i := 0; i < typ.NumField(); i++ { - p := typ.Field(i) - if !p.Anonymous { - attrs[p.Name] = p.Type - } - } - - return attrs -} - -func PathExists(filename string) bool { - if _, err := os.Stat(filename); err == nil { - return true - } - return false -} - -// PathExistsWithContents returns the filename exists and it is not empty -func PathExistsWithContents(filename string) bool { - info, err := os.Stat(filename) - if err != nil { - return false - } - return info.Size() > 4 // at least 4 bytes -} - -// GetEnv retrieves the environment variable key. If it does not exist it returns the default. -func GetEnv(key string, dfault string, combineWith ...string) string { - value := os.Getenv(key) - if value == "" { - value = dfault - } - - switch len(combineWith) { - case 0: - return value - case 1: - return filepath.Join(value, combineWith[0]) - default: - all := make([]string, len(combineWith)+1) - all[0] = value - copy(all[1:], combineWith) - return filepath.Join(all...) - } -} - -func HostProc(combineWith ...string) string { - return GetEnv("HOST_PROC", "/proc", combineWith...) -} - -func HostSys(combineWith ...string) string { - return GetEnv("HOST_SYS", "/sys", combineWith...) -} - -func HostEtc(combineWith ...string) string { - return GetEnv("HOST_ETC", "/etc", combineWith...) -} - -func HostVar(combineWith ...string) string { - return GetEnv("HOST_VAR", "/var", combineWith...) -} - -func HostRun(combineWith ...string) string { - return GetEnv("HOST_RUN", "/run", combineWith...) -} - -func HostDev(combineWith ...string) string { - return GetEnv("HOST_DEV", "/dev", combineWith...) -} - -func HostRoot(combineWith ...string) string { - return GetEnv("HOST_ROOT", "/", combineWith...) -} - -// getSysctrlEnv sets LC_ALL=C in a list of env vars for use when running -// sysctl commands (see DoSysctrl). -func getSysctrlEnv(env []string) []string { - foundLC := false - for i, line := range env { - if strings.HasPrefix(line, "LC_ALL") { - env[i] = "LC_ALL=C" - foundLC = true - } - } - if !foundLC { - env = append(env, "LC_ALL=C") - } - return env -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_darwin.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_darwin.go deleted file mode 100644 index f1a78459..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_darwin.go +++ /dev/null @@ -1,66 +0,0 @@ -//go:build darwin -// +build darwin - -package common - -import ( - "context" - "os" - "os/exec" - "strings" - "unsafe" - - "golang.org/x/sys/unix" -) - -func DoSysctrlWithContext(ctx context.Context, mib string) ([]string, error) { - cmd := exec.CommandContext(ctx, "sysctl", "-n", mib) - cmd.Env = getSysctrlEnv(os.Environ()) - out, err := cmd.Output() - if err != nil { - return []string{}, err - } - v := strings.Replace(string(out), "{ ", "", 1) - v = strings.Replace(string(v), " }", "", 1) - values := strings.Fields(string(v)) - - return values, nil -} - -func CallSyscall(mib []int32) ([]byte, uint64, error) { - miblen := uint64(len(mib)) - - // get required buffer size - length := uint64(0) - _, _, err := unix.Syscall6( - 202, // unix.SYS___SYSCTL https://github.com/golang/sys/blob/76b94024e4b621e672466e8db3d7f084e7ddcad2/unix/zsysnum_darwin_amd64.go#L146 - uintptr(unsafe.Pointer(&mib[0])), - uintptr(miblen), - 0, - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if err != 0 { - var b []byte - return b, length, err - } - if length == 0 { - var b []byte - return b, length, err - } - // get proc info itself - buf := make([]byte, length) - _, _, err = unix.Syscall6( - 202, // unix.SYS___SYSCTL https://github.com/golang/sys/blob/76b94024e4b621e672466e8db3d7f084e7ddcad2/unix/zsysnum_darwin_amd64.go#L146 - uintptr(unsafe.Pointer(&mib[0])), - uintptr(miblen), - uintptr(unsafe.Pointer(&buf[0])), - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if err != 0 { - return buf, length, err - } - - return buf, length, nil -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_freebsd.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_freebsd.go deleted file mode 100644 index f590e2e6..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_freebsd.go +++ /dev/null @@ -1,82 +0,0 @@ -//go:build freebsd || openbsd -// +build freebsd openbsd - -package common - -import ( - "fmt" - "os" - "os/exec" - "strings" - "unsafe" - - "golang.org/x/sys/unix" -) - -func SysctlUint(mib string) (uint64, error) { - buf, err := unix.SysctlRaw(mib) - if err != nil { - return 0, err - } - if len(buf) == 8 { // 64 bit - return *(*uint64)(unsafe.Pointer(&buf[0])), nil - } - if len(buf) == 4 { // 32bit - t := *(*uint32)(unsafe.Pointer(&buf[0])) - return uint64(t), nil - } - return 0, fmt.Errorf("unexpected size: %s, %d", mib, len(buf)) -} - -func DoSysctrl(mib string) ([]string, error) { - cmd := exec.Command("sysctl", "-n", mib) - cmd.Env = getSysctrlEnv(os.Environ()) - out, err := cmd.Output() - if err != nil { - return []string{}, err - } - v := strings.Replace(string(out), "{ ", "", 1) - v = strings.Replace(string(v), " }", "", 1) - values := strings.Fields(string(v)) - - return values, nil -} - -func CallSyscall(mib []int32) ([]byte, uint64, error) { - mibptr := unsafe.Pointer(&mib[0]) - miblen := uint64(len(mib)) - - // get required buffer size - length := uint64(0) - _, _, err := unix.Syscall6( - unix.SYS___SYSCTL, - uintptr(mibptr), - uintptr(miblen), - 0, - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if err != 0 { - var b []byte - return b, length, err - } - if length == 0 { - var b []byte - return b, length, err - } - // get proc info itself - buf := make([]byte, length) - _, _, err = unix.Syscall6( - unix.SYS___SYSCTL, - uintptr(mibptr), - uintptr(miblen), - uintptr(unsafe.Pointer(&buf[0])), - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if err != 0 { - return buf, length, err - } - - return buf, length, nil -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_linux.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_linux.go deleted file mode 100644 index fa6373b5..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_linux.go +++ /dev/null @@ -1,314 +0,0 @@ -//go:build linux -// +build linux - -package common - -import ( - "context" - "fmt" - "os" - "os/exec" - "path/filepath" - "strconv" - "strings" - "sync" - "syscall" - "time" -) - -func DoSysctrl(mib string) ([]string, error) { - cmd := exec.Command("sysctl", "-n", mib) - cmd.Env = getSysctrlEnv(os.Environ()) - out, err := cmd.Output() - if err != nil { - return []string{}, err - } - v := strings.Replace(string(out), "{ ", "", 1) - v = strings.Replace(string(v), " }", "", 1) - values := strings.Fields(string(v)) - - return values, nil -} - -func NumProcs() (uint64, error) { - f, err := os.Open(HostProc()) - if err != nil { - return 0, err - } - defer f.Close() - - list, err := f.Readdirnames(-1) - if err != nil { - return 0, err - } - var cnt uint64 - - for _, v := range list { - if _, err = strconv.ParseUint(v, 10, 64); err == nil { - cnt++ - } - } - - return cnt, nil -} - -func BootTimeWithContext(ctx context.Context) (uint64, error) { - system, role, err := VirtualizationWithContext(ctx) - if err != nil { - return 0, err - } - - statFile := "stat" - if system == "lxc" && role == "guest" { - // if lxc, /proc/uptime is used. - statFile = "uptime" - } else if system == "docker" && role == "guest" { - // also docker, guest - statFile = "uptime" - } - - filename := HostProc(statFile) - lines, err := ReadLines(filename) - if os.IsPermission(err) { - var info syscall.Sysinfo_t - err := syscall.Sysinfo(&info) - if err != nil { - return 0, err - } - - currentTime := time.Now().UnixNano() / int64(time.Second) - t := currentTime - int64(info.Uptime) - return uint64(t), nil - } - if err != nil { - return 0, err - } - - if statFile == "stat" { - for _, line := range lines { - if strings.HasPrefix(line, "btime") { - f := strings.Fields(line) - if len(f) != 2 { - return 0, fmt.Errorf("wrong btime format") - } - b, err := strconv.ParseInt(f[1], 10, 64) - if err != nil { - return 0, err - } - t := uint64(b) - return t, nil - } - } - } else if statFile == "uptime" { - if len(lines) != 1 { - return 0, fmt.Errorf("wrong uptime format") - } - f := strings.Fields(lines[0]) - b, err := strconv.ParseFloat(f[0], 64) - if err != nil { - return 0, err - } - currentTime := float64(time.Now().UnixNano()) / float64(time.Second) - t := currentTime - b - return uint64(t), nil - } - - return 0, fmt.Errorf("could not find btime") -} - -func Virtualization() (string, string, error) { - return VirtualizationWithContext(context.Background()) -} - -// required variables for concurrency safe virtualization caching -var ( - cachedVirtMap map[string]string - cachedVirtMutex sync.RWMutex - cachedVirtOnce sync.Once -) - -func VirtualizationWithContext(ctx context.Context) (string, string, error) { - var system, role string - - // if cached already, return from cache - cachedVirtMutex.RLock() // unlock won't be deferred so concurrent reads don't wait for long - if cachedVirtMap != nil { - cachedSystem, cachedRole := cachedVirtMap["system"], cachedVirtMap["role"] - cachedVirtMutex.RUnlock() - return cachedSystem, cachedRole, nil - } - cachedVirtMutex.RUnlock() - - filename := HostProc("xen") - if PathExists(filename) { - system = "xen" - role = "guest" // assume guest - - if PathExists(filepath.Join(filename, "capabilities")) { - contents, err := ReadLines(filepath.Join(filename, "capabilities")) - if err == nil { - if StringsContains(contents, "control_d") { - role = "host" - } - } - } - } - - filename = HostProc("modules") - if PathExists(filename) { - contents, err := ReadLines(filename) - if err == nil { - if StringsContains(contents, "kvm") { - system = "kvm" - role = "host" - } else if StringsContains(contents, "hv_util") { - system = "hyperv" - role = "guest" - } else if StringsContains(contents, "vboxdrv") { - system = "vbox" - role = "host" - } else if StringsContains(contents, "vboxguest") { - system = "vbox" - role = "guest" - } else if StringsContains(contents, "vmware") { - system = "vmware" - role = "guest" - } - } - } - - filename = HostProc("cpuinfo") - if PathExists(filename) { - contents, err := ReadLines(filename) - if err == nil { - if StringsContains(contents, "QEMU Virtual CPU") || - StringsContains(contents, "Common KVM processor") || - StringsContains(contents, "Common 32-bit KVM processor") { - system = "kvm" - role = "guest" - } - } - } - - filename = HostProc("bus/pci/devices") - if PathExists(filename) { - contents, err := ReadLines(filename) - if err == nil { - if StringsContains(contents, "virtio-pci") { - role = "guest" - } - } - } - - filename = HostProc() - if PathExists(filepath.Join(filename, "bc", "0")) { - system = "openvz" - role = "host" - } else if PathExists(filepath.Join(filename, "vz")) { - system = "openvz" - role = "guest" - } - - // not use dmidecode because it requires root - if PathExists(filepath.Join(filename, "self", "status")) { - contents, err := ReadLines(filepath.Join(filename, "self", "status")) - if err == nil { - if StringsContains(contents, "s_context:") || - StringsContains(contents, "VxID:") { - system = "linux-vserver" - } - // TODO: guest or host - } - } - - if PathExists(filepath.Join(filename, "1", "environ")) { - contents, err := ReadFile(filepath.Join(filename, "1", "environ")) - - if err == nil { - if strings.Contains(contents, "container=lxc") { - system = "lxc" - role = "guest" - } - } - } - - if PathExists(filepath.Join(filename, "self", "cgroup")) { - contents, err := ReadLines(filepath.Join(filename, "self", "cgroup")) - if err == nil { - if StringsContains(contents, "lxc") { - system = "lxc" - role = "guest" - } else if StringsContains(contents, "docker") { - system = "docker" - role = "guest" - } else if StringsContains(contents, "machine-rkt") { - system = "rkt" - role = "guest" - } else if PathExists("/usr/bin/lxc-version") { - system = "lxc" - role = "host" - } - } - } - - if PathExists(HostEtc("os-release")) { - p, _, err := GetOSRelease() - if err == nil && p == "coreos" { - system = "rkt" // Is it true? - role = "host" - } - } - - if PathExists(HostRoot(".dockerenv")) { - system = "docker" - role = "guest" - } - - // before returning for the first time, cache the system and role - cachedVirtOnce.Do(func() { - cachedVirtMutex.Lock() - defer cachedVirtMutex.Unlock() - cachedVirtMap = map[string]string{ - "system": system, - "role": role, - } - }) - - return system, role, nil -} - -func GetOSRelease() (platform string, version string, err error) { - contents, err := ReadLines(HostEtc("os-release")) - if err != nil { - return "", "", nil // return empty - } - for _, line := range contents { - field := strings.Split(line, "=") - if len(field) < 2 { - continue - } - switch field[0] { - case "ID": // use ID for lowercase - platform = trimQuotes(field[1]) - case "VERSION": - version = trimQuotes(field[1]) - } - } - - // cleanup amazon ID - if platform == "amzn" { - platform = "amazon" - } - - return platform, version, nil -} - -// Remove quotes of the source string -func trimQuotes(s string) string { - if len(s) >= 2 { - if s[0] == '"' && s[len(s)-1] == '"' { - return s[1 : len(s)-1] - } - } - return s -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_openbsd.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_openbsd.go deleted file mode 100644 index 58d76f33..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_openbsd.go +++ /dev/null @@ -1,66 +0,0 @@ -//go:build openbsd -// +build openbsd - -package common - -import ( - "os" - "os/exec" - "strings" - "unsafe" - - "golang.org/x/sys/unix" -) - -func DoSysctrl(mib string) ([]string, error) { - cmd := exec.Command("sysctl", "-n", mib) - cmd.Env = getSysctrlEnv(os.Environ()) - out, err := cmd.Output() - if err != nil { - return []string{}, err - } - v := strings.Replace(string(out), "{ ", "", 1) - v = strings.Replace(string(v), " }", "", 1) - values := strings.Fields(string(v)) - - return values, nil -} - -func CallSyscall(mib []int32) ([]byte, uint64, error) { - mibptr := unsafe.Pointer(&mib[0]) - miblen := uint64(len(mib)) - - // get required buffer size - length := uint64(0) - _, _, err := unix.Syscall6( - unix.SYS___SYSCTL, - uintptr(mibptr), - uintptr(miblen), - 0, - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if err != 0 { - var b []byte - return b, length, err - } - if length == 0 { - var b []byte - return b, length, err - } - // get proc info itself - buf := make([]byte, length) - _, _, err = unix.Syscall6( - unix.SYS___SYSCTL, - uintptr(mibptr), - uintptr(miblen), - uintptr(unsafe.Pointer(&buf[0])), - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if err != 0 { - return buf, length, err - } - - return buf, length, nil -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_unix.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_unix.go deleted file mode 100644 index 4af7e5c2..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_unix.go +++ /dev/null @@ -1,62 +0,0 @@ -//go:build linux || freebsd || darwin || openbsd -// +build linux freebsd darwin openbsd - -package common - -import ( - "context" - "errors" - "os/exec" - "strconv" - "strings" -) - -func CallLsofWithContext(ctx context.Context, invoke Invoker, pid int32, args ...string) ([]string, error) { - var cmd []string - if pid == 0 { // will get from all processes. - cmd = []string{"-a", "-n", "-P"} - } else { - cmd = []string{"-a", "-n", "-P", "-p", strconv.Itoa(int(pid))} - } - cmd = append(cmd, args...) - out, err := invoke.CommandWithContext(ctx, "lsof", cmd...) - if err != nil { - if errors.Is(err, exec.ErrNotFound) { - return []string{}, err - } - // if no pid found, lsof returns code 1. - if err.Error() == "exit status 1" && len(out) == 0 { - return []string{}, nil - } - } - lines := strings.Split(string(out), "\n") - - var ret []string - for _, l := range lines[1:] { - if len(l) == 0 { - continue - } - ret = append(ret, l) - } - return ret, nil -} - -func CallPgrepWithContext(ctx context.Context, invoke Invoker, pid int32) ([]int32, error) { - out, err := invoke.CommandWithContext(ctx, "pgrep", "-P", strconv.Itoa(int(pid))) - if err != nil { - return []int32{}, err - } - lines := strings.Split(string(out), "\n") - ret := make([]int32, 0, len(lines)) - for _, l := range lines { - if len(l) == 0 { - continue - } - i, err := strconv.ParseInt(l, 10, 32) - if err != nil { - continue - } - ret = append(ret, int32(i)) - } - return ret, nil -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_windows.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_windows.go deleted file mode 100644 index 301b2315..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/common_windows.go +++ /dev/null @@ -1,304 +0,0 @@ -//go:build windows -// +build windows - -package common - -import ( - "context" - "fmt" - "path/filepath" - "reflect" - "strings" - "syscall" - "unsafe" - - "github.com/yusufpapurcu/wmi" - "golang.org/x/sys/windows" -) - -// for double values -type PDH_FMT_COUNTERVALUE_DOUBLE struct { - CStatus uint32 - DoubleValue float64 -} - -// for 64 bit integer values -type PDH_FMT_COUNTERVALUE_LARGE struct { - CStatus uint32 - LargeValue int64 -} - -// for long values -type PDH_FMT_COUNTERVALUE_LONG struct { - CStatus uint32 - LongValue int32 - padding [4]byte -} - -// windows system const -const ( - ERROR_SUCCESS = 0 - ERROR_FILE_NOT_FOUND = 2 - DRIVE_REMOVABLE = 2 - DRIVE_FIXED = 3 - HKEY_LOCAL_MACHINE = 0x80000002 - RRF_RT_REG_SZ = 0x00000002 - RRF_RT_REG_DWORD = 0x00000010 - PDH_FMT_LONG = 0x00000100 - PDH_FMT_DOUBLE = 0x00000200 - PDH_FMT_LARGE = 0x00000400 - PDH_INVALID_DATA = 0xc0000bc6 - PDH_INVALID_HANDLE = 0xC0000bbc - PDH_NO_DATA = 0x800007d5 - - STATUS_BUFFER_OVERFLOW = 0x80000005 - STATUS_BUFFER_TOO_SMALL = 0xC0000023 - STATUS_INFO_LENGTH_MISMATCH = 0xC0000004 -) - -const ( - ProcessBasicInformation = 0 - ProcessWow64Information = 26 - ProcessQueryInformation = windows.PROCESS_DUP_HANDLE | windows.PROCESS_QUERY_INFORMATION - - SystemExtendedHandleInformationClass = 64 -) - -var ( - Modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - ModNt = windows.NewLazySystemDLL("ntdll.dll") - ModPdh = windows.NewLazySystemDLL("pdh.dll") - ModPsapi = windows.NewLazySystemDLL("psapi.dll") - - ProcGetSystemTimes = Modkernel32.NewProc("GetSystemTimes") - ProcNtQuerySystemInformation = ModNt.NewProc("NtQuerySystemInformation") - ProcRtlGetNativeSystemInformation = ModNt.NewProc("RtlGetNativeSystemInformation") - ProcRtlNtStatusToDosError = ModNt.NewProc("RtlNtStatusToDosError") - ProcNtQueryInformationProcess = ModNt.NewProc("NtQueryInformationProcess") - ProcNtReadVirtualMemory = ModNt.NewProc("NtReadVirtualMemory") - ProcNtWow64QueryInformationProcess64 = ModNt.NewProc("NtWow64QueryInformationProcess64") - ProcNtWow64ReadVirtualMemory64 = ModNt.NewProc("NtWow64ReadVirtualMemory64") - - PdhOpenQuery = ModPdh.NewProc("PdhOpenQuery") - PdhAddEnglishCounterW = ModPdh.NewProc("PdhAddEnglishCounterW") - PdhCollectQueryData = ModPdh.NewProc("PdhCollectQueryData") - PdhGetFormattedCounterValue = ModPdh.NewProc("PdhGetFormattedCounterValue") - PdhCloseQuery = ModPdh.NewProc("PdhCloseQuery") - - procQueryDosDeviceW = Modkernel32.NewProc("QueryDosDeviceW") -) - -type FILETIME struct { - DwLowDateTime uint32 - DwHighDateTime uint32 -} - -// borrowed from net/interface_windows.go -func BytePtrToString(p *uint8) string { - a := (*[10000]uint8)(unsafe.Pointer(p)) - i := 0 - for a[i] != 0 { - i++ - } - return string(a[:i]) -} - -// CounterInfo struct is used to track a windows performance counter -// copied from https://github.com/mackerelio/mackerel-agent/ -type CounterInfo struct { - PostName string - CounterName string - Counter windows.Handle -} - -// CreateQuery with a PdhOpenQuery call -// copied from https://github.com/mackerelio/mackerel-agent/ -func CreateQuery() (windows.Handle, error) { - var query windows.Handle - r, _, err := PdhOpenQuery.Call(0, 0, uintptr(unsafe.Pointer(&query))) - if r != 0 { - return 0, err - } - return query, nil -} - -// CreateCounter with a PdhAddEnglishCounterW call -func CreateCounter(query windows.Handle, pname, cname string) (*CounterInfo, error) { - var counter windows.Handle - r, _, err := PdhAddEnglishCounterW.Call( - uintptr(query), - uintptr(unsafe.Pointer(windows.StringToUTF16Ptr(cname))), - 0, - uintptr(unsafe.Pointer(&counter))) - if r != 0 { - return nil, err - } - return &CounterInfo{ - PostName: pname, - CounterName: cname, - Counter: counter, - }, nil -} - -// GetCounterValue get counter value from handle -// adapted from https://github.com/mackerelio/mackerel-agent/ -func GetCounterValue(counter windows.Handle) (float64, error) { - var value PDH_FMT_COUNTERVALUE_DOUBLE - r, _, err := PdhGetFormattedCounterValue.Call(uintptr(counter), PDH_FMT_DOUBLE, uintptr(0), uintptr(unsafe.Pointer(&value))) - if r != 0 && r != PDH_INVALID_DATA { - return 0.0, err - } - return value.DoubleValue, nil -} - -type Win32PerformanceCounter struct { - PostName string - CounterName string - Query windows.Handle - Counter windows.Handle -} - -func NewWin32PerformanceCounter(postName, counterName string) (*Win32PerformanceCounter, error) { - query, err := CreateQuery() - if err != nil { - return nil, err - } - counter := Win32PerformanceCounter{ - Query: query, - PostName: postName, - CounterName: counterName, - } - r, _, err := PdhAddEnglishCounterW.Call( - uintptr(counter.Query), - uintptr(unsafe.Pointer(windows.StringToUTF16Ptr(counter.CounterName))), - 0, - uintptr(unsafe.Pointer(&counter.Counter)), - ) - if r != 0 { - return nil, err - } - return &counter, nil -} - -func (w *Win32PerformanceCounter) GetValue() (float64, error) { - r, _, err := PdhCollectQueryData.Call(uintptr(w.Query)) - if r != 0 && err != nil { - if r == PDH_NO_DATA { - return 0.0, fmt.Errorf("%w: this counter has not data", err) - } - return 0.0, err - } - - return GetCounterValue(w.Counter) -} - -func ProcessorQueueLengthCounter() (*Win32PerformanceCounter, error) { - return NewWin32PerformanceCounter("processor_queue_length", `\System\Processor Queue Length`) -} - -// WMIQueryWithContext - wraps wmi.Query with a timed-out context to avoid hanging -func WMIQueryWithContext(ctx context.Context, query string, dst interface{}, connectServerArgs ...interface{}) error { - if _, ok := ctx.Deadline(); !ok { - ctxTimeout, cancel := context.WithTimeout(ctx, Timeout) - defer cancel() - ctx = ctxTimeout - } - - errChan := make(chan error, 1) - go func() { - errChan <- wmi.Query(query, dst, connectServerArgs...) - }() - - select { - case <-ctx.Done(): - return ctx.Err() - case err := <-errChan: - return err - } -} - -// Convert paths using native DOS format like: -// -// "\Device\HarddiskVolume1\Windows\systemew\file.txt" -// -// into: -// -// "C:\Windows\systemew\file.txt" -func ConvertDOSPath(p string) string { - rawDrive := strings.Join(strings.Split(p, `\`)[:3], `\`) - - for d := 'A'; d <= 'Z'; d++ { - szDeviceName := string(d) + ":" - szTarget := make([]uint16, 512) - ret, _, _ := procQueryDosDeviceW.Call(uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(szDeviceName))), - uintptr(unsafe.Pointer(&szTarget[0])), - uintptr(len(szTarget))) - if ret != 0 && windows.UTF16ToString(szTarget[:]) == rawDrive { - return filepath.Join(szDeviceName, p[len(rawDrive):]) - } - } - return p -} - -type NtStatus uint32 - -func (s NtStatus) Error() error { - if s == 0 { - return nil - } - return fmt.Errorf("NtStatus 0x%08x", uint32(s)) -} - -func (s NtStatus) IsError() bool { - return s>>30 == 3 -} - -type SystemExtendedHandleTableEntryInformation struct { - Object uintptr - UniqueProcessId uintptr - HandleValue uintptr - GrantedAccess uint32 - CreatorBackTraceIndex uint16 - ObjectTypeIndex uint16 - HandleAttributes uint32 - Reserved uint32 -} - -type SystemExtendedHandleInformation struct { - NumberOfHandles uintptr - Reserved uintptr - Handles [1]SystemExtendedHandleTableEntryInformation -} - -// CallWithExpandingBuffer https://github.com/hillu/go-ntdll -func CallWithExpandingBuffer(fn func() NtStatus, buf *[]byte, resultLength *uint32) NtStatus { - for { - if st := fn(); st == STATUS_BUFFER_OVERFLOW || st == STATUS_BUFFER_TOO_SMALL || st == STATUS_INFO_LENGTH_MISMATCH { - if int(*resultLength) <= cap(*buf) { - (*reflect.SliceHeader)(unsafe.Pointer(buf)).Len = int(*resultLength) - } else { - *buf = make([]byte, int(*resultLength)) - } - continue - } else { - if !st.IsError() { - *buf = (*buf)[:int(*resultLength)] - } - return st - } - } -} - -func NtQuerySystemInformation( - SystemInformationClass uint32, - SystemInformation *byte, - SystemInformationLength uint32, - ReturnLength *uint32, -) NtStatus { - r0, _, _ := ProcNtQuerySystemInformation.Call( - uintptr(SystemInformationClass), - uintptr(unsafe.Pointer(SystemInformation)), - uintptr(SystemInformationLength), - uintptr(unsafe.Pointer(ReturnLength))) - return NtStatus(r0) -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/endian.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/endian.go deleted file mode 100644 index 147cfdc4..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/endian.go +++ /dev/null @@ -1,10 +0,0 @@ -package common - -import "unsafe" - -// IsLittleEndian checks if the current platform uses little-endian. -// copied from https://github.com/ntrrg/ntgo/blob/v0.8.0/runtime/infrastructure.go#L16 (MIT License) -func IsLittleEndian() bool { - var x int16 = 0x0011 - return *(*byte)(unsafe.Pointer(&x)) == 0x11 -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/sleep.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/sleep.go deleted file mode 100644 index 9bed2419..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/sleep.go +++ /dev/null @@ -1,21 +0,0 @@ -package common - -import ( - "context" - "time" -) - -// Sleep awaits for provided interval. -// Can be interrupted by context cancelation. -func Sleep(ctx context.Context, interval time.Duration) error { - timer := time.NewTimer(interval) - select { - case <-ctx.Done(): - if !timer.Stop() { - <-timer.C - } - return ctx.Err() - case <-timer.C: - return nil - } -} diff --git a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/warnings.go b/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/warnings.go deleted file mode 100644 index a4aaadaf..00000000 --- a/backend/vendor/github.com/shirou/gopsutil/v3/internal/common/warnings.go +++ /dev/null @@ -1,30 +0,0 @@ -package common - -import "fmt" - -type Warnings struct { - List []error - Verbose bool -} - -func (w *Warnings) Add(err error) { - w.List = append(w.List, err) -} - -func (w *Warnings) Reference() error { - if len(w.List) > 0 { - return w - } - return nil -} - -func (w *Warnings) Error() string { - if w.Verbose { - str := "" - for i, e := range w.List { - str += fmt.Sprintf("\tError %d: %s\n", i, e.Error()) - } - return str - } - return fmt.Sprintf("Number of warnings: %v", len(w.List)) -} diff --git a/backend/vendor/github.com/spf13/afero/.gitignore b/backend/vendor/github.com/spf13/afero/.gitignore deleted file mode 100644 index 9c1d9861..00000000 --- a/backend/vendor/github.com/spf13/afero/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -sftpfs/file1 -sftpfs/test/ diff --git a/backend/vendor/github.com/spf13/afero/LICENSE.txt b/backend/vendor/github.com/spf13/afero/LICENSE.txt deleted file mode 100644 index 298f0e26..00000000 --- a/backend/vendor/github.com/spf13/afero/LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/backend/vendor/github.com/spf13/afero/README.md b/backend/vendor/github.com/spf13/afero/README.md deleted file mode 100644 index 3bafbfdf..00000000 --- a/backend/vendor/github.com/spf13/afero/README.md +++ /dev/null @@ -1,442 +0,0 @@ -![afero logo-sm](https://cloud.githubusercontent.com/assets/173412/11490338/d50e16dc-97a5-11e5-8b12-019a300d0fcb.png) - -A FileSystem Abstraction System for Go - -[![Test](https://github.com/spf13/afero/actions/workflows/test.yml/badge.svg)](https://github.com/spf13/afero/actions/workflows/test.yml) [![GoDoc](https://godoc.org/github.com/spf13/afero?status.svg)](https://godoc.org/github.com/spf13/afero) [![Join the chat at https://gitter.im/spf13/afero](https://badges.gitter.im/Dev%20Chat.svg)](https://gitter.im/spf13/afero?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -# Overview - -Afero is a filesystem framework providing a simple, uniform and universal API -interacting with any filesystem, as an abstraction layer providing interfaces, -types and methods. Afero has an exceptionally clean interface and simple design -without needless constructors or initialization methods. - -Afero is also a library providing a base set of interoperable backend -filesystems that make it easy to work with afero while retaining all the power -and benefit of the os and ioutil packages. - -Afero provides significant improvements over using the os package alone, most -notably the ability to create mock and testing filesystems without relying on the disk. - -It is suitable for use in any situation where you would consider using the OS -package as it provides an additional abstraction that makes it easy to use a -memory backed file system during testing. It also adds support for the http -filesystem for full interoperability. - - -## Afero Features - -* A single consistent API for accessing a variety of filesystems -* Interoperation between a variety of file system types -* A set of interfaces to encourage and enforce interoperability between backends -* An atomic cross platform memory backed file system -* Support for compositional (union) file systems by combining multiple file systems acting as one -* Specialized backends which modify existing filesystems (Read Only, Regexp filtered) -* A set of utility functions ported from io, ioutil & hugo to be afero aware -* Wrapper for go 1.16 filesystem abstraction `io/fs.FS` - -# Using Afero - -Afero is easy to use and easier to adopt. - -A few different ways you could use Afero: - -* Use the interfaces alone to define your own file system. -* Wrapper for the OS packages. -* Define different filesystems for different parts of your application. -* Use Afero for mock filesystems while testing - -## Step 1: Install Afero - -First use go get to install the latest version of the library. - - $ go get github.com/spf13/afero - -Next include Afero in your application. -```go -import "github.com/spf13/afero" -``` - -## Step 2: Declare a backend - -First define a package variable and set it to a pointer to a filesystem. -```go -var AppFs = afero.NewMemMapFs() - -or - -var AppFs = afero.NewOsFs() -``` -It is important to note that if you repeat the composite literal you -will be using a completely new and isolated filesystem. In the case of -OsFs it will still use the same underlying filesystem but will reduce -the ability to drop in other filesystems as desired. - -## Step 3: Use it like you would the OS package - -Throughout your application use any function and method like you normally -would. - -So if my application before had: -```go -os.Open("/tmp/foo") -``` -We would replace it with: -```go -AppFs.Open("/tmp/foo") -``` - -`AppFs` being the variable we defined above. - - -## List of all available functions - -File System Methods Available: -```go -Chmod(name string, mode os.FileMode) : error -Chown(name string, uid, gid int) : error -Chtimes(name string, atime time.Time, mtime time.Time) : error -Create(name string) : File, error -Mkdir(name string, perm os.FileMode) : error -MkdirAll(path string, perm os.FileMode) : error -Name() : string -Open(name string) : File, error -OpenFile(name string, flag int, perm os.FileMode) : File, error -Remove(name string) : error -RemoveAll(path string) : error -Rename(oldname, newname string) : error -Stat(name string) : os.FileInfo, error -``` -File Interfaces and Methods Available: -```go -io.Closer -io.Reader -io.ReaderAt -io.Seeker -io.Writer -io.WriterAt - -Name() : string -Readdir(count int) : []os.FileInfo, error -Readdirnames(n int) : []string, error -Stat() : os.FileInfo, error -Sync() : error -Truncate(size int64) : error -WriteString(s string) : ret int, err error -``` -In some applications it may make sense to define a new package that -simply exports the file system variable for easy access from anywhere. - -## Using Afero's utility functions - -Afero provides a set of functions to make it easier to use the underlying file systems. -These functions have been primarily ported from io & ioutil with some developed for Hugo. - -The afero utilities support all afero compatible backends. - -The list of utilities includes: - -```go -DirExists(path string) (bool, error) -Exists(path string) (bool, error) -FileContainsBytes(filename string, subslice []byte) (bool, error) -GetTempDir(subPath string) string -IsDir(path string) (bool, error) -IsEmpty(path string) (bool, error) -ReadDir(dirname string) ([]os.FileInfo, error) -ReadFile(filename string) ([]byte, error) -SafeWriteReader(path string, r io.Reader) (err error) -TempDir(dir, prefix string) (name string, err error) -TempFile(dir, prefix string) (f File, err error) -Walk(root string, walkFn filepath.WalkFunc) error -WriteFile(filename string, data []byte, perm os.FileMode) error -WriteReader(path string, r io.Reader) (err error) -``` -For a complete list see [Afero's GoDoc](https://godoc.org/github.com/spf13/afero) - -They are available under two different approaches to use. You can either call -them directly where the first parameter of each function will be the file -system, or you can declare a new `Afero`, a custom type used to bind these -functions as methods to a given filesystem. - -### Calling utilities directly - -```go -fs := new(afero.MemMapFs) -f, err := afero.TempFile(fs,"", "ioutil-test") - -``` - -### Calling via Afero - -```go -fs := afero.NewMemMapFs() -afs := &afero.Afero{Fs: fs} -f, err := afs.TempFile("", "ioutil-test") -``` - -## Using Afero for Testing - -There is a large benefit to using a mock filesystem for testing. It has a -completely blank state every time it is initialized and can be easily -reproducible regardless of OS. You could create files to your heart’s content -and the file access would be fast while also saving you from all the annoying -issues with deleting temporary files, Windows file locking, etc. The MemMapFs -backend is perfect for testing. - -* Much faster than performing I/O operations on disk -* Avoid security issues and permissions -* Far more control. 'rm -rf /' with confidence -* Test setup is far more easier to do -* No test cleanup needed - -One way to accomplish this is to define a variable as mentioned above. -In your application this will be set to afero.NewOsFs() during testing you -can set it to afero.NewMemMapFs(). - -It wouldn't be uncommon to have each test initialize a blank slate memory -backend. To do this I would define my `appFS = afero.NewOsFs()` somewhere -appropriate in my application code. This approach ensures that Tests are order -independent, with no test relying on the state left by an earlier test. - -Then in my tests I would initialize a new MemMapFs for each test: -```go -func TestExist(t *testing.T) { - appFS := afero.NewMemMapFs() - // create test files and directories - appFS.MkdirAll("src/a", 0755) - afero.WriteFile(appFS, "src/a/b", []byte("file b"), 0644) - afero.WriteFile(appFS, "src/c", []byte("file c"), 0644) - name := "src/c" - _, err := appFS.Stat(name) - if os.IsNotExist(err) { - t.Errorf("file \"%s\" does not exist.\n", name) - } -} -``` - -# Available Backends - -## Operating System Native - -### OsFs - -The first is simply a wrapper around the native OS calls. This makes it -very easy to use as all of the calls are the same as the existing OS -calls. It also makes it trivial to have your code use the OS during -operation and a mock filesystem during testing or as needed. - -```go -appfs := afero.NewOsFs() -appfs.MkdirAll("src/a", 0755) -``` - -## Memory Backed Storage - -### MemMapFs - -Afero also provides a fully atomic memory backed filesystem perfect for use in -mocking and to speed up unnecessary disk io when persistence isn’t -necessary. It is fully concurrent and will work within go routines -safely. - -```go -mm := afero.NewMemMapFs() -mm.MkdirAll("src/a", 0755) -``` - -#### InMemoryFile - -As part of MemMapFs, Afero also provides an atomic, fully concurrent memory -backed file implementation. This can be used in other memory backed file -systems with ease. Plans are to add a radix tree memory stored file -system using InMemoryFile. - -## Network Interfaces - -### SftpFs - -Afero has experimental support for secure file transfer protocol (sftp). Which can -be used to perform file operations over a encrypted channel. - -### GCSFs - -Afero has experimental support for Google Cloud Storage (GCS). You can either set the -`GOOGLE_APPLICATION_CREDENTIALS_JSON` env variable to your JSON credentials or use `opts` in -`NewGcsFS` to configure access to your GCS bucket. - -Some known limitations of the existing implementation: -* No Chmod support - The GCS ACL could probably be mapped to *nix style permissions but that would add another level of complexity and is ignored in this version. -* No Chtimes support - Could be simulated with attributes (gcs a/m-times are set implicitly) but that's is left for another version. -* Not thread safe - Also assumes all file operations are done through the same instance of the GcsFs. File operations between different GcsFs instances are not guaranteed to be consistent. - - -## Filtering Backends - -### BasePathFs - -The BasePathFs restricts all operations to a given path within an Fs. -The given file name to the operations on this Fs will be prepended with -the base path before calling the source Fs. - -```go -bp := afero.NewBasePathFs(afero.NewOsFs(), "/base/path") -``` - -### ReadOnlyFs - -A thin wrapper around the source Fs providing a read only view. - -```go -fs := afero.NewReadOnlyFs(afero.NewOsFs()) -_, err := fs.Create("/file.txt") -// err = syscall.EPERM -``` - -# RegexpFs - -A filtered view on file names, any file NOT matching -the passed regexp will be treated as non-existing. -Files not matching the regexp provided will not be created. -Directories are not filtered. - -```go -fs := afero.NewRegexpFs(afero.NewMemMapFs(), regexp.MustCompile(`\.txt$`)) -_, err := fs.Create("/file.html") -// err = syscall.ENOENT -``` - -### HttpFs - -Afero provides an http compatible backend which can wrap any of the existing -backends. - -The Http package requires a slightly specific version of Open which -returns an http.File type. - -Afero provides an httpFs file system which satisfies this requirement. -Any Afero FileSystem can be used as an httpFs. - -```go -httpFs := afero.NewHttpFs() -fileserver := http.FileServer(httpFs.Dir()) -http.Handle("/", fileserver) -``` - -## Composite Backends - -Afero provides the ability have two filesystems (or more) act as a single -file system. - -### CacheOnReadFs - -The CacheOnReadFs will lazily make copies of any accessed files from the base -layer into the overlay. Subsequent reads will be pulled from the overlay -directly permitting the request is within the cache duration of when it was -created in the overlay. - -If the base filesystem is writeable, any changes to files will be -done first to the base, then to the overlay layer. Write calls to open file -handles like `Write()` or `Truncate()` to the overlay first. - -To writing files to the overlay only, you can use the overlay Fs directly (not -via the union Fs). - -Cache files in the layer for the given time.Duration, a cache duration of 0 -means "forever" meaning the file will not be re-requested from the base ever. - -A read-only base will make the overlay also read-only but still copy files -from the base to the overlay when they're not present (or outdated) in the -caching layer. - -```go -base := afero.NewOsFs() -layer := afero.NewMemMapFs() -ufs := afero.NewCacheOnReadFs(base, layer, 100 * time.Second) -``` - -### CopyOnWriteFs() - -The CopyOnWriteFs is a read only base file system with a potentially -writeable layer on top. - -Read operations will first look in the overlay and if not found there, will -serve the file from the base. - -Changes to the file system will only be made in the overlay. - -Any attempt to modify a file found only in the base will copy the file to the -overlay layer before modification (including opening a file with a writable -handle). - -Removing and Renaming files present only in the base layer is not currently -permitted. If a file is present in the base layer and the overlay, only the -overlay will be removed/renamed. - -```go - base := afero.NewOsFs() - roBase := afero.NewReadOnlyFs(base) - ufs := afero.NewCopyOnWriteFs(roBase, afero.NewMemMapFs()) - - fh, _ = ufs.Create("/home/test/file2.txt") - fh.WriteString("This is a test") - fh.Close() -``` - -In this example all write operations will only occur in memory (MemMapFs) -leaving the base filesystem (OsFs) untouched. - - -## Desired/possible backends - -The following is a short list of possible backends we hope someone will -implement: - -* SSH -* S3 - -# About the project - -## What's in the name - -Afero comes from the latin roots Ad-Facere. - -**"Ad"** is a prefix meaning "to". - -**"Facere"** is a form of the root "faciō" making "make or do". - -The literal meaning of afero is "to make" or "to do" which seems very fitting -for a library that allows one to make files and directories and do things with them. - -The English word that shares the same roots as Afero is "affair". Affair shares -the same concept but as a noun it means "something that is made or done" or "an -object of a particular type". - -It's also nice that unlike some of my other libraries (hugo, cobra, viper) it -Googles very well. - -## Release Notes - -See the [Releases Page](https://github.com/spf13/afero/releases). - -## Contributing - -1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request - -## Contributors - -Names in no particular order: - -* [spf13](https://github.com/spf13) -* [jaqx0r](https://github.com/jaqx0r) -* [mbertschler](https://github.com/mbertschler) -* [xor-gate](https://github.com/xor-gate) - -## License - -Afero is released under the Apache 2.0 license. See -[LICENSE.txt](https://github.com/spf13/afero/blob/master/LICENSE.txt) diff --git a/backend/vendor/github.com/spf13/afero/afero.go b/backend/vendor/github.com/spf13/afero/afero.go deleted file mode 100644 index 39f65852..00000000 --- a/backend/vendor/github.com/spf13/afero/afero.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright © 2014 Steve Francia . -// Copyright 2013 tsuru authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package afero provides types and methods for interacting with the filesystem, -// as an abstraction layer. - -// Afero also provides a few implementations that are mostly interoperable. One that -// uses the operating system filesystem, one that uses memory to store files -// (cross platform) and an interface that should be implemented if you want to -// provide your own filesystem. - -package afero - -import ( - "errors" - "io" - "os" - "time" -) - -type Afero struct { - Fs -} - -// File represents a file in the filesystem. -type File interface { - io.Closer - io.Reader - io.ReaderAt - io.Seeker - io.Writer - io.WriterAt - - Name() string - Readdir(count int) ([]os.FileInfo, error) - Readdirnames(n int) ([]string, error) - Stat() (os.FileInfo, error) - Sync() error - Truncate(size int64) error - WriteString(s string) (ret int, err error) -} - -// Fs is the filesystem interface. -// -// Any simulated or real filesystem should implement this interface. -type Fs interface { - // Create creates a file in the filesystem, returning the file and an - // error, if any happens. - Create(name string) (File, error) - - // Mkdir creates a directory in the filesystem, return an error if any - // happens. - Mkdir(name string, perm os.FileMode) error - - // MkdirAll creates a directory path and all parents that does not exist - // yet. - MkdirAll(path string, perm os.FileMode) error - - // Open opens a file, returning it or an error, if any happens. - Open(name string) (File, error) - - // OpenFile opens a file using the given flags and the given mode. - OpenFile(name string, flag int, perm os.FileMode) (File, error) - - // Remove removes a file identified by name, returning an error, if any - // happens. - Remove(name string) error - - // RemoveAll removes a directory path and any children it contains. It - // does not fail if the path does not exist (return nil). - RemoveAll(path string) error - - // Rename renames a file. - Rename(oldname, newname string) error - - // Stat returns a FileInfo describing the named file, or an error, if any - // happens. - Stat(name string) (os.FileInfo, error) - - // The name of this FileSystem - Name() string - - // Chmod changes the mode of the named file to mode. - Chmod(name string, mode os.FileMode) error - - // Chown changes the uid and gid of the named file. - Chown(name string, uid, gid int) error - - // Chtimes changes the access and modification times of the named file - Chtimes(name string, atime time.Time, mtime time.Time) error -} - -var ( - ErrFileClosed = errors.New("File is closed") - ErrOutOfRange = errors.New("out of range") - ErrTooLarge = errors.New("too large") - ErrFileNotFound = os.ErrNotExist - ErrFileExists = os.ErrExist - ErrDestinationExists = os.ErrExist -) diff --git a/backend/vendor/github.com/spf13/afero/appveyor.yml b/backend/vendor/github.com/spf13/afero/appveyor.yml deleted file mode 100644 index 65e20e8c..00000000 --- a/backend/vendor/github.com/spf13/afero/appveyor.yml +++ /dev/null @@ -1,10 +0,0 @@ -# This currently does nothing. We have moved to GitHub action, but this is kept -# until spf13 has disabled this project in AppVeyor. -version: '{build}' -clone_folder: C:\gopath\src\github.com\spf13\afero -environment: - GOPATH: C:\gopath -build_script: -- cmd: >- - go version - diff --git a/backend/vendor/github.com/spf13/afero/basepath.go b/backend/vendor/github.com/spf13/afero/basepath.go deleted file mode 100644 index 2e72793a..00000000 --- a/backend/vendor/github.com/spf13/afero/basepath.go +++ /dev/null @@ -1,222 +0,0 @@ -package afero - -import ( - "io/fs" - "os" - "path/filepath" - "runtime" - "strings" - "time" -) - -var ( - _ Lstater = (*BasePathFs)(nil) - _ fs.ReadDirFile = (*BasePathFile)(nil) -) - -// The BasePathFs restricts all operations to a given path within an Fs. -// The given file name to the operations on this Fs will be prepended with -// the base path before calling the base Fs. -// Any file name (after filepath.Clean()) outside this base path will be -// treated as non existing file. -// -// Note that it does not clean the error messages on return, so you may -// reveal the real path on errors. -type BasePathFs struct { - source Fs - path string -} - -type BasePathFile struct { - File - path string -} - -func (f *BasePathFile) Name() string { - sourcename := f.File.Name() - return strings.TrimPrefix(sourcename, filepath.Clean(f.path)) -} - -func (f *BasePathFile) ReadDir(n int) ([]fs.DirEntry, error) { - if rdf, ok := f.File.(fs.ReadDirFile); ok { - return rdf.ReadDir(n) - } - return readDirFile{f.File}.ReadDir(n) -} - -func NewBasePathFs(source Fs, path string) Fs { - return &BasePathFs{source: source, path: path} -} - -// on a file outside the base path it returns the given file name and an error, -// else the given file with the base path prepended -func (b *BasePathFs) RealPath(name string) (path string, err error) { - if err := validateBasePathName(name); err != nil { - return name, err - } - - bpath := filepath.Clean(b.path) - path = filepath.Clean(filepath.Join(bpath, name)) - if !strings.HasPrefix(path, bpath) { - return name, os.ErrNotExist - } - - return path, nil -} - -func validateBasePathName(name string) error { - if runtime.GOOS != "windows" { - // Not much to do here; - // the virtual file paths all look absolute on *nix. - return nil - } - - // On Windows a common mistake would be to provide an absolute OS path - // We could strip out the base part, but that would not be very portable. - if filepath.IsAbs(name) { - return os.ErrNotExist - } - - return nil -} - -func (b *BasePathFs) Chtimes(name string, atime, mtime time.Time) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "chtimes", Path: name, Err: err} - } - return b.source.Chtimes(name, atime, mtime) -} - -func (b *BasePathFs) Chmod(name string, mode os.FileMode) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "chmod", Path: name, Err: err} - } - return b.source.Chmod(name, mode) -} - -func (b *BasePathFs) Chown(name string, uid, gid int) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "chown", Path: name, Err: err} - } - return b.source.Chown(name, uid, gid) -} - -func (b *BasePathFs) Name() string { - return "BasePathFs" -} - -func (b *BasePathFs) Stat(name string) (fi os.FileInfo, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "stat", Path: name, Err: err} - } - return b.source.Stat(name) -} - -func (b *BasePathFs) Rename(oldname, newname string) (err error) { - if oldname, err = b.RealPath(oldname); err != nil { - return &os.PathError{Op: "rename", Path: oldname, Err: err} - } - if newname, err = b.RealPath(newname); err != nil { - return &os.PathError{Op: "rename", Path: newname, Err: err} - } - return b.source.Rename(oldname, newname) -} - -func (b *BasePathFs) RemoveAll(name string) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "remove_all", Path: name, Err: err} - } - return b.source.RemoveAll(name) -} - -func (b *BasePathFs) Remove(name string) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "remove", Path: name, Err: err} - } - return b.source.Remove(name) -} - -func (b *BasePathFs) OpenFile(name string, flag int, mode os.FileMode) (f File, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "openfile", Path: name, Err: err} - } - sourcef, err := b.source.OpenFile(name, flag, mode) - if err != nil { - return nil, err - } - return &BasePathFile{sourcef, b.path}, nil -} - -func (b *BasePathFs) Open(name string) (f File, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "open", Path: name, Err: err} - } - sourcef, err := b.source.Open(name) - if err != nil { - return nil, err - } - return &BasePathFile{File: sourcef, path: b.path}, nil -} - -func (b *BasePathFs) Mkdir(name string, mode os.FileMode) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "mkdir", Path: name, Err: err} - } - return b.source.Mkdir(name, mode) -} - -func (b *BasePathFs) MkdirAll(name string, mode os.FileMode) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "mkdir", Path: name, Err: err} - } - return b.source.MkdirAll(name, mode) -} - -func (b *BasePathFs) Create(name string) (f File, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "create", Path: name, Err: err} - } - sourcef, err := b.source.Create(name) - if err != nil { - return nil, err - } - return &BasePathFile{File: sourcef, path: b.path}, nil -} - -func (b *BasePathFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { - name, err := b.RealPath(name) - if err != nil { - return nil, false, &os.PathError{Op: "lstat", Path: name, Err: err} - } - if lstater, ok := b.source.(Lstater); ok { - return lstater.LstatIfPossible(name) - } - fi, err := b.source.Stat(name) - return fi, false, err -} - -func (b *BasePathFs) SymlinkIfPossible(oldname, newname string) error { - oldname, err := b.RealPath(oldname) - if err != nil { - return &os.LinkError{Op: "symlink", Old: oldname, New: newname, Err: err} - } - newname, err = b.RealPath(newname) - if err != nil { - return &os.LinkError{Op: "symlink", Old: oldname, New: newname, Err: err} - } - if linker, ok := b.source.(Linker); ok { - return linker.SymlinkIfPossible(oldname, newname) - } - return &os.LinkError{Op: "symlink", Old: oldname, New: newname, Err: ErrNoSymlink} -} - -func (b *BasePathFs) ReadlinkIfPossible(name string) (string, error) { - name, err := b.RealPath(name) - if err != nil { - return "", &os.PathError{Op: "readlink", Path: name, Err: err} - } - if reader, ok := b.source.(LinkReader); ok { - return reader.ReadlinkIfPossible(name) - } - return "", &os.PathError{Op: "readlink", Path: name, Err: ErrNoReadlink} -} diff --git a/backend/vendor/github.com/spf13/afero/cacheOnReadFs.go b/backend/vendor/github.com/spf13/afero/cacheOnReadFs.go deleted file mode 100644 index 017d344f..00000000 --- a/backend/vendor/github.com/spf13/afero/cacheOnReadFs.go +++ /dev/null @@ -1,315 +0,0 @@ -package afero - -import ( - "os" - "syscall" - "time" -) - -// If the cache duration is 0, cache time will be unlimited, i.e. once -// a file is in the layer, the base will never be read again for this file. -// -// For cache times greater than 0, the modification time of a file is -// checked. Note that a lot of file system implementations only allow a -// resolution of a second for timestamps... or as the godoc for os.Chtimes() -// states: "The underlying filesystem may truncate or round the values to a -// less precise time unit." -// -// This caching union will forward all write calls also to the base file -// system first. To prevent writing to the base Fs, wrap it in a read-only -// filter - Note: this will also make the overlay read-only, for writing files -// in the overlay, use the overlay Fs directly, not via the union Fs. -type CacheOnReadFs struct { - base Fs - layer Fs - cacheTime time.Duration -} - -func NewCacheOnReadFs(base Fs, layer Fs, cacheTime time.Duration) Fs { - return &CacheOnReadFs{base: base, layer: layer, cacheTime: cacheTime} -} - -type cacheState int - -const ( - // not present in the overlay, unknown if it exists in the base: - cacheMiss cacheState = iota - // present in the overlay and in base, base file is newer: - cacheStale - // present in the overlay - with cache time == 0 it may exist in the base, - // with cacheTime > 0 it exists in the base and is same age or newer in the - // overlay - cacheHit - // happens if someone writes directly to the overlay without - // going through this union - cacheLocal -) - -func (u *CacheOnReadFs) cacheStatus(name string) (state cacheState, fi os.FileInfo, err error) { - var lfi, bfi os.FileInfo - lfi, err = u.layer.Stat(name) - if err == nil { - if u.cacheTime == 0 { - return cacheHit, lfi, nil - } - if lfi.ModTime().Add(u.cacheTime).Before(time.Now()) { - bfi, err = u.base.Stat(name) - if err != nil { - return cacheLocal, lfi, nil - } - if bfi.ModTime().After(lfi.ModTime()) { - return cacheStale, bfi, nil - } - } - return cacheHit, lfi, nil - } - - if err == syscall.ENOENT || os.IsNotExist(err) { - return cacheMiss, nil, nil - } - - return cacheMiss, nil, err -} - -func (u *CacheOnReadFs) copyToLayer(name string) error { - return copyToLayer(u.base, u.layer, name) -} - -func (u *CacheOnReadFs) copyFileToLayer(name string, flag int, perm os.FileMode) error { - return copyFileToLayer(u.base, u.layer, name, flag, perm) -} - -func (u *CacheOnReadFs) Chtimes(name string, atime, mtime time.Time) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Chtimes(name, atime, mtime) - case cacheStale, cacheMiss: - if err := u.copyToLayer(name); err != nil { - return err - } - err = u.base.Chtimes(name, atime, mtime) - } - if err != nil { - return err - } - return u.layer.Chtimes(name, atime, mtime) -} - -func (u *CacheOnReadFs) Chmod(name string, mode os.FileMode) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Chmod(name, mode) - case cacheStale, cacheMiss: - if err := u.copyToLayer(name); err != nil { - return err - } - err = u.base.Chmod(name, mode) - } - if err != nil { - return err - } - return u.layer.Chmod(name, mode) -} - -func (u *CacheOnReadFs) Chown(name string, uid, gid int) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Chown(name, uid, gid) - case cacheStale, cacheMiss: - if err := u.copyToLayer(name); err != nil { - return err - } - err = u.base.Chown(name, uid, gid) - } - if err != nil { - return err - } - return u.layer.Chown(name, uid, gid) -} - -func (u *CacheOnReadFs) Stat(name string) (os.FileInfo, error) { - st, fi, err := u.cacheStatus(name) - if err != nil { - return nil, err - } - switch st { - case cacheMiss: - return u.base.Stat(name) - default: // cacheStale has base, cacheHit and cacheLocal the layer os.FileInfo - return fi, nil - } -} - -func (u *CacheOnReadFs) Rename(oldname, newname string) error { - st, _, err := u.cacheStatus(oldname) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Rename(oldname, newname) - case cacheStale, cacheMiss: - if err := u.copyToLayer(oldname); err != nil { - return err - } - err = u.base.Rename(oldname, newname) - } - if err != nil { - return err - } - return u.layer.Rename(oldname, newname) -} - -func (u *CacheOnReadFs) Remove(name string) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit, cacheStale, cacheMiss: - err = u.base.Remove(name) - } - if err != nil { - return err - } - return u.layer.Remove(name) -} - -func (u *CacheOnReadFs) RemoveAll(name string) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit, cacheStale, cacheMiss: - err = u.base.RemoveAll(name) - } - if err != nil { - return err - } - return u.layer.RemoveAll(name) -} - -func (u *CacheOnReadFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - st, _, err := u.cacheStatus(name) - if err != nil { - return nil, err - } - switch st { - case cacheLocal, cacheHit: - default: - if err := u.copyFileToLayer(name, flag, perm); err != nil { - return nil, err - } - } - if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { - bfi, err := u.base.OpenFile(name, flag, perm) - if err != nil { - return nil, err - } - lfi, err := u.layer.OpenFile(name, flag, perm) - if err != nil { - bfi.Close() // oops, what if O_TRUNC was set and file opening in the layer failed...? - return nil, err - } - return &UnionFile{Base: bfi, Layer: lfi}, nil - } - return u.layer.OpenFile(name, flag, perm) -} - -func (u *CacheOnReadFs) Open(name string) (File, error) { - st, fi, err := u.cacheStatus(name) - if err != nil { - return nil, err - } - - switch st { - case cacheLocal: - return u.layer.Open(name) - - case cacheMiss: - bfi, err := u.base.Stat(name) - if err != nil { - return nil, err - } - if bfi.IsDir() { - return u.base.Open(name) - } - if err := u.copyToLayer(name); err != nil { - return nil, err - } - return u.layer.Open(name) - - case cacheStale: - if !fi.IsDir() { - if err := u.copyToLayer(name); err != nil { - return nil, err - } - return u.layer.Open(name) - } - case cacheHit: - if !fi.IsDir() { - return u.layer.Open(name) - } - } - // the dirs from cacheHit, cacheStale fall down here: - bfile, _ := u.base.Open(name) - lfile, err := u.layer.Open(name) - if err != nil && bfile == nil { - return nil, err - } - return &UnionFile{Base: bfile, Layer: lfile}, nil -} - -func (u *CacheOnReadFs) Mkdir(name string, perm os.FileMode) error { - err := u.base.Mkdir(name, perm) - if err != nil { - return err - } - return u.layer.MkdirAll(name, perm) // yes, MkdirAll... we cannot assume it exists in the cache -} - -func (u *CacheOnReadFs) Name() string { - return "CacheOnReadFs" -} - -func (u *CacheOnReadFs) MkdirAll(name string, perm os.FileMode) error { - err := u.base.MkdirAll(name, perm) - if err != nil { - return err - } - return u.layer.MkdirAll(name, perm) -} - -func (u *CacheOnReadFs) Create(name string) (File, error) { - bfh, err := u.base.Create(name) - if err != nil { - return nil, err - } - lfh, err := u.layer.Create(name) - if err != nil { - // oops, see comment about OS_TRUNC above, should we remove? then we have to - // remember if the file did not exist before - bfh.Close() - return nil, err - } - return &UnionFile{Base: bfh, Layer: lfh}, nil -} diff --git a/backend/vendor/github.com/spf13/afero/const_bsds.go b/backend/vendor/github.com/spf13/afero/const_bsds.go deleted file mode 100644 index eed0f225..00000000 --- a/backend/vendor/github.com/spf13/afero/const_bsds.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build aix || darwin || openbsd || freebsd || netbsd || dragonfly -// +build aix darwin openbsd freebsd netbsd dragonfly - -package afero - -import ( - "syscall" -) - -const BADFD = syscall.EBADF diff --git a/backend/vendor/github.com/spf13/afero/const_win_unix.go b/backend/vendor/github.com/spf13/afero/const_win_unix.go deleted file mode 100644 index 004d57e2..00000000 --- a/backend/vendor/github.com/spf13/afero/const_win_unix.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//go:build !darwin && !openbsd && !freebsd && !dragonfly && !netbsd && !aix -// +build !darwin,!openbsd,!freebsd,!dragonfly,!netbsd,!aix - -package afero - -import ( - "syscall" -) - -const BADFD = syscall.EBADFD diff --git a/backend/vendor/github.com/spf13/afero/copyOnWriteFs.go b/backend/vendor/github.com/spf13/afero/copyOnWriteFs.go deleted file mode 100644 index 184d6dd7..00000000 --- a/backend/vendor/github.com/spf13/afero/copyOnWriteFs.go +++ /dev/null @@ -1,327 +0,0 @@ -package afero - -import ( - "fmt" - "os" - "path/filepath" - "syscall" - "time" -) - -var _ Lstater = (*CopyOnWriteFs)(nil) - -// The CopyOnWriteFs is a union filesystem: a read only base file system with -// a possibly writeable layer on top. Changes to the file system will only -// be made in the overlay: Changing an existing file in the base layer which -// is not present in the overlay will copy the file to the overlay ("changing" -// includes also calls to e.g. Chtimes(), Chmod() and Chown()). -// -// Reading directories is currently only supported via Open(), not OpenFile(). -type CopyOnWriteFs struct { - base Fs - layer Fs -} - -func NewCopyOnWriteFs(base Fs, layer Fs) Fs { - return &CopyOnWriteFs{base: base, layer: layer} -} - -// Returns true if the file is not in the overlay -func (u *CopyOnWriteFs) isBaseFile(name string) (bool, error) { - if _, err := u.layer.Stat(name); err == nil { - return false, nil - } - _, err := u.base.Stat(name) - if err != nil { - if oerr, ok := err.(*os.PathError); ok { - if oerr.Err == os.ErrNotExist || oerr.Err == syscall.ENOENT || oerr.Err == syscall.ENOTDIR { - return false, nil - } - } - if err == syscall.ENOENT { - return false, nil - } - } - return true, err -} - -func (u *CopyOnWriteFs) copyToLayer(name string) error { - return copyToLayer(u.base, u.layer, name) -} - -func (u *CopyOnWriteFs) Chtimes(name string, atime, mtime time.Time) error { - b, err := u.isBaseFile(name) - if err != nil { - return err - } - if b { - if err := u.copyToLayer(name); err != nil { - return err - } - } - return u.layer.Chtimes(name, atime, mtime) -} - -func (u *CopyOnWriteFs) Chmod(name string, mode os.FileMode) error { - b, err := u.isBaseFile(name) - if err != nil { - return err - } - if b { - if err := u.copyToLayer(name); err != nil { - return err - } - } - return u.layer.Chmod(name, mode) -} - -func (u *CopyOnWriteFs) Chown(name string, uid, gid int) error { - b, err := u.isBaseFile(name) - if err != nil { - return err - } - if b { - if err := u.copyToLayer(name); err != nil { - return err - } - } - return u.layer.Chown(name, uid, gid) -} - -func (u *CopyOnWriteFs) Stat(name string) (os.FileInfo, error) { - fi, err := u.layer.Stat(name) - if err != nil { - isNotExist := u.isNotExist(err) - if isNotExist { - return u.base.Stat(name) - } - return nil, err - } - return fi, nil -} - -func (u *CopyOnWriteFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { - llayer, ok1 := u.layer.(Lstater) - lbase, ok2 := u.base.(Lstater) - - if ok1 { - fi, b, err := llayer.LstatIfPossible(name) - if err == nil { - return fi, b, nil - } - - if !u.isNotExist(err) { - return nil, b, err - } - } - - if ok2 { - fi, b, err := lbase.LstatIfPossible(name) - if err == nil { - return fi, b, nil - } - if !u.isNotExist(err) { - return nil, b, err - } - } - - fi, err := u.Stat(name) - - return fi, false, err -} - -func (u *CopyOnWriteFs) SymlinkIfPossible(oldname, newname string) error { - if slayer, ok := u.layer.(Linker); ok { - return slayer.SymlinkIfPossible(oldname, newname) - } - - return &os.LinkError{Op: "symlink", Old: oldname, New: newname, Err: ErrNoSymlink} -} - -func (u *CopyOnWriteFs) ReadlinkIfPossible(name string) (string, error) { - if rlayer, ok := u.layer.(LinkReader); ok { - return rlayer.ReadlinkIfPossible(name) - } - - if rbase, ok := u.base.(LinkReader); ok { - return rbase.ReadlinkIfPossible(name) - } - - return "", &os.PathError{Op: "readlink", Path: name, Err: ErrNoReadlink} -} - -func (u *CopyOnWriteFs) isNotExist(err error) bool { - if e, ok := err.(*os.PathError); ok { - err = e.Err - } - if err == os.ErrNotExist || err == syscall.ENOENT || err == syscall.ENOTDIR { - return true - } - return false -} - -// Renaming files present only in the base layer is not permitted -func (u *CopyOnWriteFs) Rename(oldname, newname string) error { - b, err := u.isBaseFile(oldname) - if err != nil { - return err - } - if b { - return syscall.EPERM - } - return u.layer.Rename(oldname, newname) -} - -// Removing files present only in the base layer is not permitted. If -// a file is present in the base layer and the overlay, only the overlay -// will be removed. -func (u *CopyOnWriteFs) Remove(name string) error { - err := u.layer.Remove(name) - switch err { - case syscall.ENOENT: - _, err = u.base.Stat(name) - if err == nil { - return syscall.EPERM - } - return syscall.ENOENT - default: - return err - } -} - -func (u *CopyOnWriteFs) RemoveAll(name string) error { - err := u.layer.RemoveAll(name) - switch err { - case syscall.ENOENT: - _, err = u.base.Stat(name) - if err == nil { - return syscall.EPERM - } - return syscall.ENOENT - default: - return err - } -} - -func (u *CopyOnWriteFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - b, err := u.isBaseFile(name) - if err != nil { - return nil, err - } - - if flag&(os.O_WRONLY|os.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { - if b { - if err = u.copyToLayer(name); err != nil { - return nil, err - } - return u.layer.OpenFile(name, flag, perm) - } - - dir := filepath.Dir(name) - isaDir, err := IsDir(u.base, dir) - if err != nil && !os.IsNotExist(err) { - return nil, err - } - if isaDir { - if err = u.layer.MkdirAll(dir, 0o777); err != nil { - return nil, err - } - return u.layer.OpenFile(name, flag, perm) - } - - isaDir, err = IsDir(u.layer, dir) - if err != nil { - return nil, err - } - if isaDir { - return u.layer.OpenFile(name, flag, perm) - } - - return nil, &os.PathError{Op: "open", Path: name, Err: syscall.ENOTDIR} // ...or os.ErrNotExist? - } - if b { - return u.base.OpenFile(name, flag, perm) - } - return u.layer.OpenFile(name, flag, perm) -} - -// This function handles the 9 different possibilities caused -// by the union which are the intersection of the following... -// -// layer: doesn't exist, exists as a file, and exists as a directory -// base: doesn't exist, exists as a file, and exists as a directory -func (u *CopyOnWriteFs) Open(name string) (File, error) { - // Since the overlay overrides the base we check that first - b, err := u.isBaseFile(name) - if err != nil { - return nil, err - } - - // If overlay doesn't exist, return the base (base state irrelevant) - if b { - return u.base.Open(name) - } - - // If overlay is a file, return it (base state irrelevant) - dir, err := IsDir(u.layer, name) - if err != nil { - return nil, err - } - if !dir { - return u.layer.Open(name) - } - - // Overlay is a directory, base state now matters. - // Base state has 3 states to check but 2 outcomes: - // A. It's a file or non-readable in the base (return just the overlay) - // B. It's an accessible directory in the base (return a UnionFile) - - // If base is file or nonreadable, return overlay - dir, err = IsDir(u.base, name) - if !dir || err != nil { - return u.layer.Open(name) - } - - // Both base & layer are directories - // Return union file (if opens are without error) - bfile, bErr := u.base.Open(name) - lfile, lErr := u.layer.Open(name) - - // If either have errors at this point something is very wrong. Return nil and the errors - if bErr != nil || lErr != nil { - return nil, fmt.Errorf("BaseErr: %v\nOverlayErr: %v", bErr, lErr) - } - - return &UnionFile{Base: bfile, Layer: lfile}, nil -} - -func (u *CopyOnWriteFs) Mkdir(name string, perm os.FileMode) error { - dir, err := IsDir(u.base, name) - if err != nil { - return u.layer.MkdirAll(name, perm) - } - if dir { - return ErrFileExists - } - return u.layer.MkdirAll(name, perm) -} - -func (u *CopyOnWriteFs) Name() string { - return "CopyOnWriteFs" -} - -func (u *CopyOnWriteFs) MkdirAll(name string, perm os.FileMode) error { - dir, err := IsDir(u.base, name) - if err != nil { - return u.layer.MkdirAll(name, perm) - } - if dir { - // This is in line with how os.MkdirAll behaves. - return nil - } - return u.layer.MkdirAll(name, perm) -} - -func (u *CopyOnWriteFs) Create(name string) (File, error) { - return u.OpenFile(name, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0o666) -} diff --git a/backend/vendor/github.com/spf13/afero/httpFs.go b/backend/vendor/github.com/spf13/afero/httpFs.go deleted file mode 100644 index ac0de6d5..00000000 --- a/backend/vendor/github.com/spf13/afero/httpFs.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "errors" - "net/http" - "os" - "path" - "path/filepath" - "strings" - "time" -) - -type httpDir struct { - basePath string - fs HttpFs -} - -func (d httpDir) Open(name string) (http.File, error) { - if filepath.Separator != '/' && strings.ContainsRune(name, filepath.Separator) || - strings.Contains(name, "\x00") { - return nil, errors.New("http: invalid character in file path") - } - dir := string(d.basePath) - if dir == "" { - dir = "." - } - - f, err := d.fs.Open(filepath.Join(dir, filepath.FromSlash(path.Clean("/"+name)))) - if err != nil { - return nil, err - } - return f, nil -} - -type HttpFs struct { - source Fs -} - -func NewHttpFs(source Fs) *HttpFs { - return &HttpFs{source: source} -} - -func (h HttpFs) Dir(s string) *httpDir { - return &httpDir{basePath: s, fs: h} -} - -func (h HttpFs) Name() string { return "h HttpFs" } - -func (h HttpFs) Create(name string) (File, error) { - return h.source.Create(name) -} - -func (h HttpFs) Chmod(name string, mode os.FileMode) error { - return h.source.Chmod(name, mode) -} - -func (h HttpFs) Chown(name string, uid, gid int) error { - return h.source.Chown(name, uid, gid) -} - -func (h HttpFs) Chtimes(name string, atime time.Time, mtime time.Time) error { - return h.source.Chtimes(name, atime, mtime) -} - -func (h HttpFs) Mkdir(name string, perm os.FileMode) error { - return h.source.Mkdir(name, perm) -} - -func (h HttpFs) MkdirAll(path string, perm os.FileMode) error { - return h.source.MkdirAll(path, perm) -} - -func (h HttpFs) Open(name string) (http.File, error) { - f, err := h.source.Open(name) - if err == nil { - if httpfile, ok := f.(http.File); ok { - return httpfile, nil - } - } - return nil, err -} - -func (h HttpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - return h.source.OpenFile(name, flag, perm) -} - -func (h HttpFs) Remove(name string) error { - return h.source.Remove(name) -} - -func (h HttpFs) RemoveAll(path string) error { - return h.source.RemoveAll(path) -} - -func (h HttpFs) Rename(oldname, newname string) error { - return h.source.Rename(oldname, newname) -} - -func (h HttpFs) Stat(name string) (os.FileInfo, error) { - return h.source.Stat(name) -} diff --git a/backend/vendor/github.com/spf13/afero/internal/common/adapters.go b/backend/vendor/github.com/spf13/afero/internal/common/adapters.go deleted file mode 100644 index 60685caa..00000000 --- a/backend/vendor/github.com/spf13/afero/internal/common/adapters.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright © 2022 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package common - -import "io/fs" - -// FileInfoDirEntry provides an adapter from os.FileInfo to fs.DirEntry -type FileInfoDirEntry struct { - fs.FileInfo -} - -var _ fs.DirEntry = FileInfoDirEntry{} - -func (d FileInfoDirEntry) Type() fs.FileMode { return d.FileInfo.Mode().Type() } - -func (d FileInfoDirEntry) Info() (fs.FileInfo, error) { return d.FileInfo, nil } diff --git a/backend/vendor/github.com/spf13/afero/iofs.go b/backend/vendor/github.com/spf13/afero/iofs.go deleted file mode 100644 index 938b9316..00000000 --- a/backend/vendor/github.com/spf13/afero/iofs.go +++ /dev/null @@ -1,298 +0,0 @@ -//go:build go1.16 -// +build go1.16 - -package afero - -import ( - "io" - "io/fs" - "os" - "path" - "sort" - "time" - - "github.com/spf13/afero/internal/common" -) - -// IOFS adopts afero.Fs to stdlib io/fs.FS -type IOFS struct { - Fs -} - -func NewIOFS(fs Fs) IOFS { - return IOFS{Fs: fs} -} - -var ( - _ fs.FS = IOFS{} - _ fs.GlobFS = IOFS{} - _ fs.ReadDirFS = IOFS{} - _ fs.ReadFileFS = IOFS{} - _ fs.StatFS = IOFS{} - _ fs.SubFS = IOFS{} -) - -func (iofs IOFS) Open(name string) (fs.File, error) { - const op = "open" - - // by convention for fs.FS implementations we should perform this check - if !fs.ValidPath(name) { - return nil, iofs.wrapError(op, name, fs.ErrInvalid) - } - - file, err := iofs.Fs.Open(name) - if err != nil { - return nil, iofs.wrapError(op, name, err) - } - - // file should implement fs.ReadDirFile - if _, ok := file.(fs.ReadDirFile); !ok { - file = readDirFile{file} - } - - return file, nil -} - -func (iofs IOFS) Glob(pattern string) ([]string, error) { - const op = "glob" - - // afero.Glob does not perform this check but it's required for implementations - if _, err := path.Match(pattern, ""); err != nil { - return nil, iofs.wrapError(op, pattern, err) - } - - items, err := Glob(iofs.Fs, pattern) - if err != nil { - return nil, iofs.wrapError(op, pattern, err) - } - - return items, nil -} - -func (iofs IOFS) ReadDir(name string) ([]fs.DirEntry, error) { - f, err := iofs.Fs.Open(name) - if err != nil { - return nil, iofs.wrapError("readdir", name, err) - } - - defer f.Close() - - if rdf, ok := f.(fs.ReadDirFile); ok { - items, err := rdf.ReadDir(-1) - if err != nil { - return nil, iofs.wrapError("readdir", name, err) - } - sort.Slice(items, func(i, j int) bool { return items[i].Name() < items[j].Name() }) - return items, nil - } - - items, err := f.Readdir(-1) - if err != nil { - return nil, iofs.wrapError("readdir", name, err) - } - sort.Sort(byName(items)) - - ret := make([]fs.DirEntry, len(items)) - for i := range items { - ret[i] = common.FileInfoDirEntry{FileInfo: items[i]} - } - - return ret, nil -} - -func (iofs IOFS) ReadFile(name string) ([]byte, error) { - const op = "readfile" - - if !fs.ValidPath(name) { - return nil, iofs.wrapError(op, name, fs.ErrInvalid) - } - - bytes, err := ReadFile(iofs.Fs, name) - if err != nil { - return nil, iofs.wrapError(op, name, err) - } - - return bytes, nil -} - -func (iofs IOFS) Sub(dir string) (fs.FS, error) { return IOFS{NewBasePathFs(iofs.Fs, dir)}, nil } - -func (IOFS) wrapError(op, path string, err error) error { - if _, ok := err.(*fs.PathError); ok { - return err // don't need to wrap again - } - - return &fs.PathError{ - Op: op, - Path: path, - Err: err, - } -} - -// readDirFile provides adapter from afero.File to fs.ReadDirFile needed for correct Open -type readDirFile struct { - File -} - -var _ fs.ReadDirFile = readDirFile{} - -func (r readDirFile) ReadDir(n int) ([]fs.DirEntry, error) { - items, err := r.File.Readdir(n) - if err != nil { - return nil, err - } - - ret := make([]fs.DirEntry, len(items)) - for i := range items { - ret[i] = common.FileInfoDirEntry{FileInfo: items[i]} - } - - return ret, nil -} - -// FromIOFS adopts io/fs.FS to use it as afero.Fs -// Note that io/fs.FS is read-only so all mutating methods will return fs.PathError with fs.ErrPermission -// To store modifications you may use afero.CopyOnWriteFs -type FromIOFS struct { - fs.FS -} - -var _ Fs = FromIOFS{} - -func (f FromIOFS) Create(name string) (File, error) { return nil, notImplemented("create", name) } - -func (f FromIOFS) Mkdir(name string, perm os.FileMode) error { return notImplemented("mkdir", name) } - -func (f FromIOFS) MkdirAll(path string, perm os.FileMode) error { - return notImplemented("mkdirall", path) -} - -func (f FromIOFS) Open(name string) (File, error) { - file, err := f.FS.Open(name) - if err != nil { - return nil, err - } - - return fromIOFSFile{File: file, name: name}, nil -} - -func (f FromIOFS) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - return f.Open(name) -} - -func (f FromIOFS) Remove(name string) error { - return notImplemented("remove", name) -} - -func (f FromIOFS) RemoveAll(path string) error { - return notImplemented("removeall", path) -} - -func (f FromIOFS) Rename(oldname, newname string) error { - return notImplemented("rename", oldname) -} - -func (f FromIOFS) Stat(name string) (os.FileInfo, error) { return fs.Stat(f.FS, name) } - -func (f FromIOFS) Name() string { return "fromiofs" } - -func (f FromIOFS) Chmod(name string, mode os.FileMode) error { - return notImplemented("chmod", name) -} - -func (f FromIOFS) Chown(name string, uid, gid int) error { - return notImplemented("chown", name) -} - -func (f FromIOFS) Chtimes(name string, atime time.Time, mtime time.Time) error { - return notImplemented("chtimes", name) -} - -type fromIOFSFile struct { - fs.File - name string -} - -func (f fromIOFSFile) ReadAt(p []byte, off int64) (n int, err error) { - readerAt, ok := f.File.(io.ReaderAt) - if !ok { - return -1, notImplemented("readat", f.name) - } - - return readerAt.ReadAt(p, off) -} - -func (f fromIOFSFile) Seek(offset int64, whence int) (int64, error) { - seeker, ok := f.File.(io.Seeker) - if !ok { - return -1, notImplemented("seek", f.name) - } - - return seeker.Seek(offset, whence) -} - -func (f fromIOFSFile) Write(p []byte) (n int, err error) { - return -1, notImplemented("write", f.name) -} - -func (f fromIOFSFile) WriteAt(p []byte, off int64) (n int, err error) { - return -1, notImplemented("writeat", f.name) -} - -func (f fromIOFSFile) Name() string { return f.name } - -func (f fromIOFSFile) Readdir(count int) ([]os.FileInfo, error) { - rdfile, ok := f.File.(fs.ReadDirFile) - if !ok { - return nil, notImplemented("readdir", f.name) - } - - entries, err := rdfile.ReadDir(count) - if err != nil { - return nil, err - } - - ret := make([]os.FileInfo, len(entries)) - for i := range entries { - ret[i], err = entries[i].Info() - - if err != nil { - return nil, err - } - } - - return ret, nil -} - -func (f fromIOFSFile) Readdirnames(n int) ([]string, error) { - rdfile, ok := f.File.(fs.ReadDirFile) - if !ok { - return nil, notImplemented("readdir", f.name) - } - - entries, err := rdfile.ReadDir(n) - if err != nil { - return nil, err - } - - ret := make([]string, len(entries)) - for i := range entries { - ret[i] = entries[i].Name() - } - - return ret, nil -} - -func (f fromIOFSFile) Sync() error { return nil } - -func (f fromIOFSFile) Truncate(size int64) error { - return notImplemented("truncate", f.name) -} - -func (f fromIOFSFile) WriteString(s string) (ret int, err error) { - return -1, notImplemented("writestring", f.name) -} - -func notImplemented(op, path string) error { - return &fs.PathError{Op: op, Path: path, Err: fs.ErrPermission} -} diff --git a/backend/vendor/github.com/spf13/afero/ioutil.go b/backend/vendor/github.com/spf13/afero/ioutil.go deleted file mode 100644 index fa6abe1e..00000000 --- a/backend/vendor/github.com/spf13/afero/ioutil.go +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright ©2015 The Go Authors -// Copyright ©2015 Steve Francia -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "bytes" - "io" - "os" - "path/filepath" - "sort" - "strconv" - "strings" - "sync" - "time" -) - -// byName implements sort.Interface. -type byName []os.FileInfo - -func (f byName) Len() int { return len(f) } -func (f byName) Less(i, j int) bool { return f[i].Name() < f[j].Name() } -func (f byName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } - -// ReadDir reads the directory named by dirname and returns -// a list of sorted directory entries. -func (a Afero) ReadDir(dirname string) ([]os.FileInfo, error) { - return ReadDir(a.Fs, dirname) -} - -func ReadDir(fs Fs, dirname string) ([]os.FileInfo, error) { - f, err := fs.Open(dirname) - if err != nil { - return nil, err - } - list, err := f.Readdir(-1) - f.Close() - if err != nil { - return nil, err - } - sort.Sort(byName(list)) - return list, nil -} - -// ReadFile reads the file named by filename and returns the contents. -// A successful call returns err == nil, not err == EOF. Because ReadFile -// reads the whole file, it does not treat an EOF from Read as an error -// to be reported. -func (a Afero) ReadFile(filename string) ([]byte, error) { - return ReadFile(a.Fs, filename) -} - -func ReadFile(fs Fs, filename string) ([]byte, error) { - f, err := fs.Open(filename) - if err != nil { - return nil, err - } - defer f.Close() - // It's a good but not certain bet that FileInfo will tell us exactly how much to - // read, so let's try it but be prepared for the answer to be wrong. - var n int64 - - if fi, err := f.Stat(); err == nil { - // Don't preallocate a huge buffer, just in case. - if size := fi.Size(); size < 1e9 { - n = size - } - } - // As initial capacity for readAll, use n + a little extra in case Size is zero, - // and to avoid another allocation after Read has filled the buffer. The readAll - // call will read into its allocated internal buffer cheaply. If the size was - // wrong, we'll either waste some space off the end or reallocate as needed, but - // in the overwhelmingly common case we'll get it just right. - return readAll(f, n+bytes.MinRead) -} - -// readAll reads from r until an error or EOF and returns the data it read -// from the internal buffer allocated with a specified capacity. -func readAll(r io.Reader, capacity int64) (b []byte, err error) { - buf := bytes.NewBuffer(make([]byte, 0, capacity)) - // If the buffer overflows, we will get bytes.ErrTooLarge. - // Return that as an error. Any other panic remains. - defer func() { - e := recover() - if e == nil { - return - } - if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge { - err = panicErr - } else { - panic(e) - } - }() - _, err = buf.ReadFrom(r) - return buf.Bytes(), err -} - -// ReadAll reads from r until an error or EOF and returns the data it read. -// A successful call returns err == nil, not err == EOF. Because ReadAll is -// defined to read from src until EOF, it does not treat an EOF from Read -// as an error to be reported. -func ReadAll(r io.Reader) ([]byte, error) { - return readAll(r, bytes.MinRead) -} - -// WriteFile writes data to a file named by filename. -// If the file does not exist, WriteFile creates it with permissions perm; -// otherwise WriteFile truncates it before writing. -func (a Afero) WriteFile(filename string, data []byte, perm os.FileMode) error { - return WriteFile(a.Fs, filename, data, perm) -} - -func WriteFile(fs Fs, filename string, data []byte, perm os.FileMode) error { - f, err := fs.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) - if err != nil { - return err - } - n, err := f.Write(data) - if err == nil && n < len(data) { - err = io.ErrShortWrite - } - if err1 := f.Close(); err == nil { - err = err1 - } - return err -} - -// Random number state. -// We generate random temporary file names so that there's a good -// chance the file doesn't exist yet - keeps the number of tries in -// TempFile to a minimum. -var ( - randNum uint32 - randmu sync.Mutex -) - -func reseed() uint32 { - return uint32(time.Now().UnixNano() + int64(os.Getpid())) -} - -func nextRandom() string { - randmu.Lock() - r := randNum - if r == 0 { - r = reseed() - } - r = r*1664525 + 1013904223 // constants from Numerical Recipes - randNum = r - randmu.Unlock() - return strconv.Itoa(int(1e9 + r%1e9))[1:] -} - -// TempFile creates a new temporary file in the directory dir, -// opens the file for reading and writing, and returns the resulting *os.File. -// The filename is generated by taking pattern and adding a random -// string to the end. If pattern includes a "*", the random string -// replaces the last "*". -// If dir is the empty string, TempFile uses the default directory -// for temporary files (see os.TempDir). -// Multiple programs calling TempFile simultaneously -// will not choose the same file. The caller can use f.Name() -// to find the pathname of the file. It is the caller's responsibility -// to remove the file when no longer needed. -func (a Afero) TempFile(dir, pattern string) (f File, err error) { - return TempFile(a.Fs, dir, pattern) -} - -func TempFile(fs Fs, dir, pattern string) (f File, err error) { - if dir == "" { - dir = os.TempDir() - } - - var prefix, suffix string - if pos := strings.LastIndex(pattern, "*"); pos != -1 { - prefix, suffix = pattern[:pos], pattern[pos+1:] - } else { - prefix = pattern - } - - nconflict := 0 - for i := 0; i < 10000; i++ { - name := filepath.Join(dir, prefix+nextRandom()+suffix) - f, err = fs.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0o600) - if os.IsExist(err) { - if nconflict++; nconflict > 10 { - randmu.Lock() - randNum = reseed() - randmu.Unlock() - } - continue - } - break - } - return -} - -// TempDir creates a new temporary directory in the directory dir -// with a name beginning with prefix and returns the path of the -// new directory. If dir is the empty string, TempDir uses the -// default directory for temporary files (see os.TempDir). -// Multiple programs calling TempDir simultaneously -// will not choose the same directory. It is the caller's responsibility -// to remove the directory when no longer needed. -func (a Afero) TempDir(dir, prefix string) (name string, err error) { - return TempDir(a.Fs, dir, prefix) -} - -func TempDir(fs Fs, dir, prefix string) (name string, err error) { - if dir == "" { - dir = os.TempDir() - } - - nconflict := 0 - for i := 0; i < 10000; i++ { - try := filepath.Join(dir, prefix+nextRandom()) - err = fs.Mkdir(try, 0o700) - if os.IsExist(err) { - if nconflict++; nconflict > 10 { - randmu.Lock() - randNum = reseed() - randmu.Unlock() - } - continue - } - if err == nil { - name = try - } - break - } - return -} diff --git a/backend/vendor/github.com/spf13/afero/lstater.go b/backend/vendor/github.com/spf13/afero/lstater.go deleted file mode 100644 index 89c1bfc0..00000000 --- a/backend/vendor/github.com/spf13/afero/lstater.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright © 2018 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "os" -) - -// Lstater is an optional interface in Afero. It is only implemented by the -// filesystems saying so. -// It will call Lstat if the filesystem iself is, or it delegates to, the os filesystem. -// Else it will call Stat. -// In addtion to the FileInfo, it will return a boolean telling whether Lstat was called or not. -type Lstater interface { - LstatIfPossible(name string) (os.FileInfo, bool, error) -} diff --git a/backend/vendor/github.com/spf13/afero/match.go b/backend/vendor/github.com/spf13/afero/match.go deleted file mode 100644 index 7db4b7de..00000000 --- a/backend/vendor/github.com/spf13/afero/match.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright © 2014 Steve Francia . -// Copyright 2009 The Go Authors. All rights reserved. - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "path/filepath" - "sort" - "strings" -) - -// Glob returns the names of all files matching pattern or nil -// if there is no matching file. The syntax of patterns is the same -// as in Match. The pattern may describe hierarchical names such as -// /usr/*/bin/ed (assuming the Separator is '/'). -// -// Glob ignores file system errors such as I/O errors reading directories. -// The only possible returned error is ErrBadPattern, when pattern -// is malformed. -// -// This was adapted from (http://golang.org/pkg/path/filepath) and uses several -// built-ins from that package. -func Glob(fs Fs, pattern string) (matches []string, err error) { - if !hasMeta(pattern) { - // Lstat not supported by a ll filesystems. - if _, err = lstatIfPossible(fs, pattern); err != nil { - return nil, nil - } - return []string{pattern}, nil - } - - dir, file := filepath.Split(pattern) - switch dir { - case "": - dir = "." - case string(filepath.Separator): - // nothing - default: - dir = dir[0 : len(dir)-1] // chop off trailing separator - } - - if !hasMeta(dir) { - return glob(fs, dir, file, nil) - } - - var m []string - m, err = Glob(fs, dir) - if err != nil { - return - } - for _, d := range m { - matches, err = glob(fs, d, file, matches) - if err != nil { - return - } - } - return -} - -// glob searches for files matching pattern in the directory dir -// and appends them to matches. If the directory cannot be -// opened, it returns the existing matches. New matches are -// added in lexicographical order. -func glob(fs Fs, dir, pattern string, matches []string) (m []string, e error) { - m = matches - fi, err := fs.Stat(dir) - if err != nil { - return - } - if !fi.IsDir() { - return - } - d, err := fs.Open(dir) - if err != nil { - return - } - defer d.Close() - - names, _ := d.Readdirnames(-1) - sort.Strings(names) - - for _, n := range names { - matched, err := filepath.Match(pattern, n) - if err != nil { - return m, err - } - if matched { - m = append(m, filepath.Join(dir, n)) - } - } - return -} - -// hasMeta reports whether path contains any of the magic characters -// recognized by Match. -func hasMeta(path string) bool { - // TODO(niemeyer): Should other magic characters be added here? - return strings.ContainsAny(path, "*?[") -} diff --git a/backend/vendor/github.com/spf13/afero/mem/dir.go b/backend/vendor/github.com/spf13/afero/mem/dir.go deleted file mode 100644 index e104013f..00000000 --- a/backend/vendor/github.com/spf13/afero/mem/dir.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package mem - -type Dir interface { - Len() int - Names() []string - Files() []*FileData - Add(*FileData) - Remove(*FileData) -} - -func RemoveFromMemDir(dir *FileData, f *FileData) { - dir.memDir.Remove(f) -} - -func AddToMemDir(dir *FileData, f *FileData) { - dir.memDir.Add(f) -} - -func InitializeDir(d *FileData) { - if d.memDir == nil { - d.dir = true - d.memDir = &DirMap{} - } -} diff --git a/backend/vendor/github.com/spf13/afero/mem/dirmap.go b/backend/vendor/github.com/spf13/afero/mem/dirmap.go deleted file mode 100644 index 03a57ee5..00000000 --- a/backend/vendor/github.com/spf13/afero/mem/dirmap.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright © 2015 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package mem - -import "sort" - -type DirMap map[string]*FileData - -func (m DirMap) Len() int { return len(m) } -func (m DirMap) Add(f *FileData) { m[f.name] = f } -func (m DirMap) Remove(f *FileData) { delete(m, f.name) } -func (m DirMap) Files() (files []*FileData) { - for _, f := range m { - files = append(files, f) - } - sort.Sort(filesSorter(files)) - return files -} - -// implement sort.Interface for []*FileData -type filesSorter []*FileData - -func (s filesSorter) Len() int { return len(s) } -func (s filesSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s filesSorter) Less(i, j int) bool { return s[i].name < s[j].name } - -func (m DirMap) Names() (names []string) { - for x := range m { - names = append(names, x) - } - return names -} diff --git a/backend/vendor/github.com/spf13/afero/mem/file.go b/backend/vendor/github.com/spf13/afero/mem/file.go deleted file mode 100644 index 62fe4498..00000000 --- a/backend/vendor/github.com/spf13/afero/mem/file.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright © 2015 Steve Francia . -// Copyright 2013 tsuru authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package mem - -import ( - "bytes" - "errors" - "io" - "io/fs" - "os" - "path/filepath" - "sync" - "sync/atomic" - "time" - - "github.com/spf13/afero/internal/common" -) - -const FilePathSeparator = string(filepath.Separator) - -var _ fs.ReadDirFile = &File{} - -type File struct { - // atomic requires 64-bit alignment for struct field access - at int64 - readDirCount int64 - closed bool - readOnly bool - fileData *FileData -} - -func NewFileHandle(data *FileData) *File { - return &File{fileData: data} -} - -func NewReadOnlyFileHandle(data *FileData) *File { - return &File{fileData: data, readOnly: true} -} - -func (f File) Data() *FileData { - return f.fileData -} - -type FileData struct { - sync.Mutex - name string - data []byte - memDir Dir - dir bool - mode os.FileMode - modtime time.Time - uid int - gid int -} - -func (d *FileData) Name() string { - d.Lock() - defer d.Unlock() - return d.name -} - -func CreateFile(name string) *FileData { - return &FileData{name: name, mode: os.ModeTemporary, modtime: time.Now()} -} - -func CreateDir(name string) *FileData { - return &FileData{name: name, memDir: &DirMap{}, dir: true, modtime: time.Now()} -} - -func ChangeFileName(f *FileData, newname string) { - f.Lock() - f.name = newname - f.Unlock() -} - -func SetMode(f *FileData, mode os.FileMode) { - f.Lock() - f.mode = mode - f.Unlock() -} - -func SetModTime(f *FileData, mtime time.Time) { - f.Lock() - setModTime(f, mtime) - f.Unlock() -} - -func setModTime(f *FileData, mtime time.Time) { - f.modtime = mtime -} - -func SetUID(f *FileData, uid int) { - f.Lock() - f.uid = uid - f.Unlock() -} - -func SetGID(f *FileData, gid int) { - f.Lock() - f.gid = gid - f.Unlock() -} - -func GetFileInfo(f *FileData) *FileInfo { - return &FileInfo{f} -} - -func (f *File) Open() error { - atomic.StoreInt64(&f.at, 0) - atomic.StoreInt64(&f.readDirCount, 0) - f.fileData.Lock() - f.closed = false - f.fileData.Unlock() - return nil -} - -func (f *File) Close() error { - f.fileData.Lock() - f.closed = true - if !f.readOnly { - setModTime(f.fileData, time.Now()) - } - f.fileData.Unlock() - return nil -} - -func (f *File) Name() string { - return f.fileData.Name() -} - -func (f *File) Stat() (os.FileInfo, error) { - return &FileInfo{f.fileData}, nil -} - -func (f *File) Sync() error { - return nil -} - -func (f *File) Readdir(count int) (res []os.FileInfo, err error) { - if !f.fileData.dir { - return nil, &os.PathError{Op: "readdir", Path: f.fileData.name, Err: errors.New("not a dir")} - } - var outLength int64 - - f.fileData.Lock() - files := f.fileData.memDir.Files()[f.readDirCount:] - if count > 0 { - if len(files) < count { - outLength = int64(len(files)) - } else { - outLength = int64(count) - } - if len(files) == 0 { - err = io.EOF - } - } else { - outLength = int64(len(files)) - } - f.readDirCount += outLength - f.fileData.Unlock() - - res = make([]os.FileInfo, outLength) - for i := range res { - res[i] = &FileInfo{files[i]} - } - - return res, err -} - -func (f *File) Readdirnames(n int) (names []string, err error) { - fi, err := f.Readdir(n) - names = make([]string, len(fi)) - for i, f := range fi { - _, names[i] = filepath.Split(f.Name()) - } - return names, err -} - -// Implements fs.ReadDirFile -func (f *File) ReadDir(n int) ([]fs.DirEntry, error) { - fi, err := f.Readdir(n) - if err != nil { - return nil, err - } - di := make([]fs.DirEntry, len(fi)) - for i, f := range fi { - di[i] = common.FileInfoDirEntry{FileInfo: f} - } - return di, nil -} - -func (f *File) Read(b []byte) (n int, err error) { - f.fileData.Lock() - defer f.fileData.Unlock() - if f.closed { - return 0, ErrFileClosed - } - if len(b) > 0 && int(f.at) == len(f.fileData.data) { - return 0, io.EOF - } - if int(f.at) > len(f.fileData.data) { - return 0, io.ErrUnexpectedEOF - } - if len(f.fileData.data)-int(f.at) >= len(b) { - n = len(b) - } else { - n = len(f.fileData.data) - int(f.at) - } - copy(b, f.fileData.data[f.at:f.at+int64(n)]) - atomic.AddInt64(&f.at, int64(n)) - return -} - -func (f *File) ReadAt(b []byte, off int64) (n int, err error) { - prev := atomic.LoadInt64(&f.at) - atomic.StoreInt64(&f.at, off) - n, err = f.Read(b) - atomic.StoreInt64(&f.at, prev) - return -} - -func (f *File) Truncate(size int64) error { - if f.closed { - return ErrFileClosed - } - if f.readOnly { - return &os.PathError{Op: "truncate", Path: f.fileData.name, Err: errors.New("file handle is read only")} - } - if size < 0 { - return ErrOutOfRange - } - f.fileData.Lock() - defer f.fileData.Unlock() - if size > int64(len(f.fileData.data)) { - diff := size - int64(len(f.fileData.data)) - f.fileData.data = append(f.fileData.data, bytes.Repeat([]byte{0o0}, int(diff))...) - } else { - f.fileData.data = f.fileData.data[0:size] - } - setModTime(f.fileData, time.Now()) - return nil -} - -func (f *File) Seek(offset int64, whence int) (int64, error) { - if f.closed { - return 0, ErrFileClosed - } - switch whence { - case io.SeekStart: - atomic.StoreInt64(&f.at, offset) - case io.SeekCurrent: - atomic.AddInt64(&f.at, offset) - case io.SeekEnd: - atomic.StoreInt64(&f.at, int64(len(f.fileData.data))+offset) - } - return f.at, nil -} - -func (f *File) Write(b []byte) (n int, err error) { - if f.closed { - return 0, ErrFileClosed - } - if f.readOnly { - return 0, &os.PathError{Op: "write", Path: f.fileData.name, Err: errors.New("file handle is read only")} - } - n = len(b) - cur := atomic.LoadInt64(&f.at) - f.fileData.Lock() - defer f.fileData.Unlock() - diff := cur - int64(len(f.fileData.data)) - var tail []byte - if n+int(cur) < len(f.fileData.data) { - tail = f.fileData.data[n+int(cur):] - } - if diff > 0 { - f.fileData.data = append(f.fileData.data, append(bytes.Repeat([]byte{0o0}, int(diff)), b...)...) - f.fileData.data = append(f.fileData.data, tail...) - } else { - f.fileData.data = append(f.fileData.data[:cur], b...) - f.fileData.data = append(f.fileData.data, tail...) - } - setModTime(f.fileData, time.Now()) - - atomic.AddInt64(&f.at, int64(n)) - return -} - -func (f *File) WriteAt(b []byte, off int64) (n int, err error) { - atomic.StoreInt64(&f.at, off) - return f.Write(b) -} - -func (f *File) WriteString(s string) (ret int, err error) { - return f.Write([]byte(s)) -} - -func (f *File) Info() *FileInfo { - return &FileInfo{f.fileData} -} - -type FileInfo struct { - *FileData -} - -// Implements os.FileInfo -func (s *FileInfo) Name() string { - s.Lock() - _, name := filepath.Split(s.name) - s.Unlock() - return name -} - -func (s *FileInfo) Mode() os.FileMode { - s.Lock() - defer s.Unlock() - return s.mode -} - -func (s *FileInfo) ModTime() time.Time { - s.Lock() - defer s.Unlock() - return s.modtime -} - -func (s *FileInfo) IsDir() bool { - s.Lock() - defer s.Unlock() - return s.dir -} -func (s *FileInfo) Sys() interface{} { return nil } -func (s *FileInfo) Size() int64 { - if s.IsDir() { - return int64(42) - } - s.Lock() - defer s.Unlock() - return int64(len(s.data)) -} - -var ( - ErrFileClosed = errors.New("File is closed") - ErrOutOfRange = errors.New("out of range") - ErrTooLarge = errors.New("too large") - ErrFileNotFound = os.ErrNotExist - ErrFileExists = os.ErrExist - ErrDestinationExists = os.ErrExist -) diff --git a/backend/vendor/github.com/spf13/afero/memmap.go b/backend/vendor/github.com/spf13/afero/memmap.go deleted file mode 100644 index e6b7d70b..00000000 --- a/backend/vendor/github.com/spf13/afero/memmap.go +++ /dev/null @@ -1,422 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "fmt" - "io" - "log" - "os" - "path/filepath" - "strings" - "sync" - "time" - - "github.com/spf13/afero/mem" -) - -const chmodBits = os.ModePerm | os.ModeSetuid | os.ModeSetgid | os.ModeSticky // Only a subset of bits are allowed to be changed. Documented under os.Chmod() - -type MemMapFs struct { - mu sync.RWMutex - data map[string]*mem.FileData - init sync.Once -} - -func NewMemMapFs() Fs { - return &MemMapFs{} -} - -func (m *MemMapFs) getData() map[string]*mem.FileData { - m.init.Do(func() { - m.data = make(map[string]*mem.FileData) - // Root should always exist, right? - // TODO: what about windows? - root := mem.CreateDir(FilePathSeparator) - mem.SetMode(root, os.ModeDir|0o755) - m.data[FilePathSeparator] = root - }) - return m.data -} - -func (*MemMapFs) Name() string { return "MemMapFS" } - -func (m *MemMapFs) Create(name string) (File, error) { - name = normalizePath(name) - m.mu.Lock() - file := mem.CreateFile(name) - m.getData()[name] = file - m.registerWithParent(file, 0) - m.mu.Unlock() - return mem.NewFileHandle(file), nil -} - -func (m *MemMapFs) unRegisterWithParent(fileName string) error { - f, err := m.lockfreeOpen(fileName) - if err != nil { - return err - } - parent := m.findParent(f) - if parent == nil { - log.Panic("parent of ", f.Name(), " is nil") - } - - parent.Lock() - mem.RemoveFromMemDir(parent, f) - parent.Unlock() - return nil -} - -func (m *MemMapFs) findParent(f *mem.FileData) *mem.FileData { - pdir, _ := filepath.Split(f.Name()) - pdir = filepath.Clean(pdir) - pfile, err := m.lockfreeOpen(pdir) - if err != nil { - return nil - } - return pfile -} - -func (m *MemMapFs) registerWithParent(f *mem.FileData, perm os.FileMode) { - if f == nil { - return - } - parent := m.findParent(f) - if parent == nil { - pdir := filepath.Dir(filepath.Clean(f.Name())) - err := m.lockfreeMkdir(pdir, perm) - if err != nil { - // log.Println("Mkdir error:", err) - return - } - parent, err = m.lockfreeOpen(pdir) - if err != nil { - // log.Println("Open after Mkdir error:", err) - return - } - } - - parent.Lock() - mem.InitializeDir(parent) - mem.AddToMemDir(parent, f) - parent.Unlock() -} - -func (m *MemMapFs) lockfreeMkdir(name string, perm os.FileMode) error { - name = normalizePath(name) - x, ok := m.getData()[name] - if ok { - // Only return ErrFileExists if it's a file, not a directory. - i := mem.FileInfo{FileData: x} - if !i.IsDir() { - return ErrFileExists - } - } else { - item := mem.CreateDir(name) - mem.SetMode(item, os.ModeDir|perm) - m.getData()[name] = item - m.registerWithParent(item, perm) - } - return nil -} - -func (m *MemMapFs) Mkdir(name string, perm os.FileMode) error { - perm &= chmodBits - name = normalizePath(name) - - m.mu.RLock() - _, ok := m.getData()[name] - m.mu.RUnlock() - if ok { - return &os.PathError{Op: "mkdir", Path: name, Err: ErrFileExists} - } - - m.mu.Lock() - // Dobule check that it doesn't exist. - if _, ok := m.getData()[name]; ok { - m.mu.Unlock() - return &os.PathError{Op: "mkdir", Path: name, Err: ErrFileExists} - } - item := mem.CreateDir(name) - mem.SetMode(item, os.ModeDir|perm) - m.getData()[name] = item - m.registerWithParent(item, perm) - m.mu.Unlock() - - return m.setFileMode(name, perm|os.ModeDir) -} - -func (m *MemMapFs) MkdirAll(path string, perm os.FileMode) error { - err := m.Mkdir(path, perm) - if err != nil { - if err.(*os.PathError).Err == ErrFileExists { - return nil - } - return err - } - return nil -} - -// Handle some relative paths -func normalizePath(path string) string { - path = filepath.Clean(path) - - switch path { - case ".": - return FilePathSeparator - case "..": - return FilePathSeparator - default: - return path - } -} - -func (m *MemMapFs) Open(name string) (File, error) { - f, err := m.open(name) - if f != nil { - return mem.NewReadOnlyFileHandle(f), err - } - return nil, err -} - -func (m *MemMapFs) openWrite(name string) (File, error) { - f, err := m.open(name) - if f != nil { - return mem.NewFileHandle(f), err - } - return nil, err -} - -func (m *MemMapFs) open(name string) (*mem.FileData, error) { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileNotFound} - } - return f, nil -} - -func (m *MemMapFs) lockfreeOpen(name string) (*mem.FileData, error) { - name = normalizePath(name) - f, ok := m.getData()[name] - if ok { - return f, nil - } else { - return nil, ErrFileNotFound - } -} - -func (m *MemMapFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - perm &= chmodBits - chmod := false - file, err := m.openWrite(name) - if err == nil && (flag&os.O_EXCL > 0) { - return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileExists} - } - if os.IsNotExist(err) && (flag&os.O_CREATE > 0) { - file, err = m.Create(name) - chmod = true - } - if err != nil { - return nil, err - } - if flag == os.O_RDONLY { - file = mem.NewReadOnlyFileHandle(file.(*mem.File).Data()) - } - if flag&os.O_APPEND > 0 { - _, err = file.Seek(0, io.SeekEnd) - if err != nil { - file.Close() - return nil, err - } - } - if flag&os.O_TRUNC > 0 && flag&(os.O_RDWR|os.O_WRONLY) > 0 { - err = file.Truncate(0) - if err != nil { - file.Close() - return nil, err - } - } - if chmod { - return file, m.setFileMode(name, perm) - } - return file, nil -} - -func (m *MemMapFs) Remove(name string) error { - name = normalizePath(name) - - m.mu.Lock() - defer m.mu.Unlock() - - if _, ok := m.getData()[name]; ok { - err := m.unRegisterWithParent(name) - if err != nil { - return &os.PathError{Op: "remove", Path: name, Err: err} - } - delete(m.getData(), name) - } else { - return &os.PathError{Op: "remove", Path: name, Err: os.ErrNotExist} - } - return nil -} - -func (m *MemMapFs) RemoveAll(path string) error { - path = normalizePath(path) - m.mu.Lock() - m.unRegisterWithParent(path) - m.mu.Unlock() - - m.mu.RLock() - defer m.mu.RUnlock() - - for p := range m.getData() { - if p == path || strings.HasPrefix(p, path+FilePathSeparator) { - m.mu.RUnlock() - m.mu.Lock() - delete(m.getData(), p) - m.mu.Unlock() - m.mu.RLock() - } - } - return nil -} - -func (m *MemMapFs) Rename(oldname, newname string) error { - oldname = normalizePath(oldname) - newname = normalizePath(newname) - - if oldname == newname { - return nil - } - - m.mu.RLock() - defer m.mu.RUnlock() - if _, ok := m.getData()[oldname]; ok { - m.mu.RUnlock() - m.mu.Lock() - m.unRegisterWithParent(oldname) - fileData := m.getData()[oldname] - delete(m.getData(), oldname) - mem.ChangeFileName(fileData, newname) - m.getData()[newname] = fileData - m.registerWithParent(fileData, 0) - m.mu.Unlock() - m.mu.RLock() - } else { - return &os.PathError{Op: "rename", Path: oldname, Err: ErrFileNotFound} - } - - for p, fileData := range m.getData() { - if strings.HasPrefix(p, oldname+FilePathSeparator) { - m.mu.RUnlock() - m.mu.Lock() - delete(m.getData(), p) - p := strings.Replace(p, oldname, newname, 1) - m.getData()[p] = fileData - m.mu.Unlock() - m.mu.RLock() - } - } - return nil -} - -func (m *MemMapFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { - fileInfo, err := m.Stat(name) - return fileInfo, false, err -} - -func (m *MemMapFs) Stat(name string) (os.FileInfo, error) { - f, err := m.Open(name) - if err != nil { - return nil, err - } - fi := mem.GetFileInfo(f.(*mem.File).Data()) - return fi, nil -} - -func (m *MemMapFs) Chmod(name string, mode os.FileMode) error { - mode &= chmodBits - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return &os.PathError{Op: "chmod", Path: name, Err: ErrFileNotFound} - } - prevOtherBits := mem.GetFileInfo(f).Mode() & ^chmodBits - - mode = prevOtherBits | mode - return m.setFileMode(name, mode) -} - -func (m *MemMapFs) setFileMode(name string, mode os.FileMode) error { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return &os.PathError{Op: "chmod", Path: name, Err: ErrFileNotFound} - } - - m.mu.Lock() - mem.SetMode(f, mode) - m.mu.Unlock() - - return nil -} - -func (m *MemMapFs) Chown(name string, uid, gid int) error { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return &os.PathError{Op: "chown", Path: name, Err: ErrFileNotFound} - } - - mem.SetUID(f, uid) - mem.SetGID(f, gid) - - return nil -} - -func (m *MemMapFs) Chtimes(name string, atime time.Time, mtime time.Time) error { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return &os.PathError{Op: "chtimes", Path: name, Err: ErrFileNotFound} - } - - m.mu.Lock() - mem.SetModTime(f, mtime) - m.mu.Unlock() - - return nil -} - -func (m *MemMapFs) List() { - for _, x := range m.data { - y := mem.FileInfo{FileData: x} - fmt.Println(x.Name(), y.Size()) - } -} diff --git a/backend/vendor/github.com/spf13/afero/os.go b/backend/vendor/github.com/spf13/afero/os.go deleted file mode 100644 index f1366321..00000000 --- a/backend/vendor/github.com/spf13/afero/os.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright © 2014 Steve Francia . -// Copyright 2013 tsuru authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "os" - "time" -) - -var _ Lstater = (*OsFs)(nil) - -// OsFs is a Fs implementation that uses functions provided by the os package. -// -// For details in any method, check the documentation of the os package -// (http://golang.org/pkg/os/). -type OsFs struct{} - -func NewOsFs() Fs { - return &OsFs{} -} - -func (OsFs) Name() string { return "OsFs" } - -func (OsFs) Create(name string) (File, error) { - f, e := os.Create(name) - if f == nil { - // while this looks strange, we need to return a bare nil (of type nil) not - // a nil value of type *os.File or nil won't be nil - return nil, e - } - return f, e -} - -func (OsFs) Mkdir(name string, perm os.FileMode) error { - return os.Mkdir(name, perm) -} - -func (OsFs) MkdirAll(path string, perm os.FileMode) error { - return os.MkdirAll(path, perm) -} - -func (OsFs) Open(name string) (File, error) { - f, e := os.Open(name) - if f == nil { - // while this looks strange, we need to return a bare nil (of type nil) not - // a nil value of type *os.File or nil won't be nil - return nil, e - } - return f, e -} - -func (OsFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - f, e := os.OpenFile(name, flag, perm) - if f == nil { - // while this looks strange, we need to return a bare nil (of type nil) not - // a nil value of type *os.File or nil won't be nil - return nil, e - } - return f, e -} - -func (OsFs) Remove(name string) error { - return os.Remove(name) -} - -func (OsFs) RemoveAll(path string) error { - return os.RemoveAll(path) -} - -func (OsFs) Rename(oldname, newname string) error { - return os.Rename(oldname, newname) -} - -func (OsFs) Stat(name string) (os.FileInfo, error) { - return os.Stat(name) -} - -func (OsFs) Chmod(name string, mode os.FileMode) error { - return os.Chmod(name, mode) -} - -func (OsFs) Chown(name string, uid, gid int) error { - return os.Chown(name, uid, gid) -} - -func (OsFs) Chtimes(name string, atime time.Time, mtime time.Time) error { - return os.Chtimes(name, atime, mtime) -} - -func (OsFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { - fi, err := os.Lstat(name) - return fi, true, err -} - -func (OsFs) SymlinkIfPossible(oldname, newname string) error { - return os.Symlink(oldname, newname) -} - -func (OsFs) ReadlinkIfPossible(name string) (string, error) { - return os.Readlink(name) -} diff --git a/backend/vendor/github.com/spf13/afero/path.go b/backend/vendor/github.com/spf13/afero/path.go deleted file mode 100644 index 18f60a0f..00000000 --- a/backend/vendor/github.com/spf13/afero/path.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright ©2015 The Go Authors -// Copyright ©2015 Steve Francia -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "os" - "path/filepath" - "sort" -) - -// readDirNames reads the directory named by dirname and returns -// a sorted list of directory entries. -// adapted from https://golang.org/src/path/filepath/path.go -func readDirNames(fs Fs, dirname string) ([]string, error) { - f, err := fs.Open(dirname) - if err != nil { - return nil, err - } - names, err := f.Readdirnames(-1) - f.Close() - if err != nil { - return nil, err - } - sort.Strings(names) - return names, nil -} - -// walk recursively descends path, calling walkFn -// adapted from https://golang.org/src/path/filepath/path.go -func walk(fs Fs, path string, info os.FileInfo, walkFn filepath.WalkFunc) error { - err := walkFn(path, info, nil) - if err != nil { - if info.IsDir() && err == filepath.SkipDir { - return nil - } - return err - } - - if !info.IsDir() { - return nil - } - - names, err := readDirNames(fs, path) - if err != nil { - return walkFn(path, info, err) - } - - for _, name := range names { - filename := filepath.Join(path, name) - fileInfo, err := lstatIfPossible(fs, filename) - if err != nil { - if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir { - return err - } - } else { - err = walk(fs, filename, fileInfo, walkFn) - if err != nil { - if !fileInfo.IsDir() || err != filepath.SkipDir { - return err - } - } - } - } - return nil -} - -// if the filesystem supports it, use Lstat, else use fs.Stat -func lstatIfPossible(fs Fs, path string) (os.FileInfo, error) { - if lfs, ok := fs.(Lstater); ok { - fi, _, err := lfs.LstatIfPossible(path) - return fi, err - } - return fs.Stat(path) -} - -// Walk walks the file tree rooted at root, calling walkFn for each file or -// directory in the tree, including root. All errors that arise visiting files -// and directories are filtered by walkFn. The files are walked in lexical -// order, which makes the output deterministic but means that for very -// large directories Walk can be inefficient. -// Walk does not follow symbolic links. - -func (a Afero) Walk(root string, walkFn filepath.WalkFunc) error { - return Walk(a.Fs, root, walkFn) -} - -func Walk(fs Fs, root string, walkFn filepath.WalkFunc) error { - info, err := lstatIfPossible(fs, root) - if err != nil { - return walkFn(root, nil, err) - } - return walk(fs, root, info, walkFn) -} diff --git a/backend/vendor/github.com/spf13/afero/readonlyfs.go b/backend/vendor/github.com/spf13/afero/readonlyfs.go deleted file mode 100644 index bd8f9264..00000000 --- a/backend/vendor/github.com/spf13/afero/readonlyfs.go +++ /dev/null @@ -1,96 +0,0 @@ -package afero - -import ( - "os" - "syscall" - "time" -) - -var _ Lstater = (*ReadOnlyFs)(nil) - -type ReadOnlyFs struct { - source Fs -} - -func NewReadOnlyFs(source Fs) Fs { - return &ReadOnlyFs{source: source} -} - -func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error) { - return ReadDir(r.source, name) -} - -func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Chown(n string, uid, gid int) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Name() string { - return "ReadOnlyFilter" -} - -func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error) { - return r.source.Stat(name) -} - -func (r *ReadOnlyFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { - if lsf, ok := r.source.(Lstater); ok { - return lsf.LstatIfPossible(name) - } - fi, err := r.Stat(name) - return fi, false, err -} - -func (r *ReadOnlyFs) SymlinkIfPossible(oldname, newname string) error { - return &os.LinkError{Op: "symlink", Old: oldname, New: newname, Err: ErrNoSymlink} -} - -func (r *ReadOnlyFs) ReadlinkIfPossible(name string) (string, error) { - if srdr, ok := r.source.(LinkReader); ok { - return srdr.ReadlinkIfPossible(name) - } - - return "", &os.PathError{Op: "readlink", Path: name, Err: ErrNoReadlink} -} - -func (r *ReadOnlyFs) Rename(o, n string) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) RemoveAll(p string) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Remove(n string) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { - return nil, syscall.EPERM - } - return r.source.OpenFile(name, flag, perm) -} - -func (r *ReadOnlyFs) Open(n string) (File, error) { - return r.source.Open(n) -} - -func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Create(n string) (File, error) { - return nil, syscall.EPERM -} diff --git a/backend/vendor/github.com/spf13/afero/regexpfs.go b/backend/vendor/github.com/spf13/afero/regexpfs.go deleted file mode 100644 index 218f3b23..00000000 --- a/backend/vendor/github.com/spf13/afero/regexpfs.go +++ /dev/null @@ -1,223 +0,0 @@ -package afero - -import ( - "os" - "regexp" - "syscall" - "time" -) - -// The RegexpFs filters files (not directories) by regular expression. Only -// files matching the given regexp will be allowed, all others get a ENOENT error ( -// "No such file or directory"). -type RegexpFs struct { - re *regexp.Regexp - source Fs -} - -func NewRegexpFs(source Fs, re *regexp.Regexp) Fs { - return &RegexpFs{source: source, re: re} -} - -type RegexpFile struct { - f File - re *regexp.Regexp -} - -func (r *RegexpFs) matchesName(name string) error { - if r.re == nil { - return nil - } - if r.re.MatchString(name) { - return nil - } - return syscall.ENOENT -} - -func (r *RegexpFs) dirOrMatches(name string) error { - dir, err := IsDir(r.source, name) - if err != nil { - return err - } - if dir { - return nil - } - return r.matchesName(name) -} - -func (r *RegexpFs) Chtimes(name string, a, m time.Time) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Chtimes(name, a, m) -} - -func (r *RegexpFs) Chmod(name string, mode os.FileMode) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Chmod(name, mode) -} - -func (r *RegexpFs) Chown(name string, uid, gid int) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Chown(name, uid, gid) -} - -func (r *RegexpFs) Name() string { - return "RegexpFs" -} - -func (r *RegexpFs) Stat(name string) (os.FileInfo, error) { - if err := r.dirOrMatches(name); err != nil { - return nil, err - } - return r.source.Stat(name) -} - -func (r *RegexpFs) Rename(oldname, newname string) error { - dir, err := IsDir(r.source, oldname) - if err != nil { - return err - } - if dir { - return nil - } - if err := r.matchesName(oldname); err != nil { - return err - } - if err := r.matchesName(newname); err != nil { - return err - } - return r.source.Rename(oldname, newname) -} - -func (r *RegexpFs) RemoveAll(p string) error { - dir, err := IsDir(r.source, p) - if err != nil { - return err - } - if !dir { - if err := r.matchesName(p); err != nil { - return err - } - } - return r.source.RemoveAll(p) -} - -func (r *RegexpFs) Remove(name string) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Remove(name) -} - -func (r *RegexpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - if err := r.dirOrMatches(name); err != nil { - return nil, err - } - return r.source.OpenFile(name, flag, perm) -} - -func (r *RegexpFs) Open(name string) (File, error) { - dir, err := IsDir(r.source, name) - if err != nil { - return nil, err - } - if !dir { - if err := r.matchesName(name); err != nil { - return nil, err - } - } - f, err := r.source.Open(name) - if err != nil { - return nil, err - } - return &RegexpFile{f: f, re: r.re}, nil -} - -func (r *RegexpFs) Mkdir(n string, p os.FileMode) error { - return r.source.Mkdir(n, p) -} - -func (r *RegexpFs) MkdirAll(n string, p os.FileMode) error { - return r.source.MkdirAll(n, p) -} - -func (r *RegexpFs) Create(name string) (File, error) { - if err := r.matchesName(name); err != nil { - return nil, err - } - return r.source.Create(name) -} - -func (f *RegexpFile) Close() error { - return f.f.Close() -} - -func (f *RegexpFile) Read(s []byte) (int, error) { - return f.f.Read(s) -} - -func (f *RegexpFile) ReadAt(s []byte, o int64) (int, error) { - return f.f.ReadAt(s, o) -} - -func (f *RegexpFile) Seek(o int64, w int) (int64, error) { - return f.f.Seek(o, w) -} - -func (f *RegexpFile) Write(s []byte) (int, error) { - return f.f.Write(s) -} - -func (f *RegexpFile) WriteAt(s []byte, o int64) (int, error) { - return f.f.WriteAt(s, o) -} - -func (f *RegexpFile) Name() string { - return f.f.Name() -} - -func (f *RegexpFile) Readdir(c int) (fi []os.FileInfo, err error) { - var rfi []os.FileInfo - rfi, err = f.f.Readdir(c) - if err != nil { - return nil, err - } - for _, i := range rfi { - if i.IsDir() || f.re.MatchString(i.Name()) { - fi = append(fi, i) - } - } - return fi, nil -} - -func (f *RegexpFile) Readdirnames(c int) (n []string, err error) { - fi, err := f.Readdir(c) - if err != nil { - return nil, err - } - for _, s := range fi { - n = append(n, s.Name()) - } - return n, nil -} - -func (f *RegexpFile) Stat() (os.FileInfo, error) { - return f.f.Stat() -} - -func (f *RegexpFile) Sync() error { - return f.f.Sync() -} - -func (f *RegexpFile) Truncate(s int64) error { - return f.f.Truncate(s) -} - -func (f *RegexpFile) WriteString(s string) (int, error) { - return f.f.WriteString(s) -} diff --git a/backend/vendor/github.com/spf13/afero/symlink.go b/backend/vendor/github.com/spf13/afero/symlink.go deleted file mode 100644 index aa6ae125..00000000 --- a/backend/vendor/github.com/spf13/afero/symlink.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright © 2018 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "errors" -) - -// Symlinker is an optional interface in Afero. It is only implemented by the -// filesystems saying so. -// It indicates support for 3 symlink related interfaces that implement the -// behaviors of the os methods: -// - Lstat -// - Symlink, and -// - Readlink -type Symlinker interface { - Lstater - Linker - LinkReader -} - -// Linker is an optional interface in Afero. It is only implemented by the -// filesystems saying so. -// It will call Symlink if the filesystem itself is, or it delegates to, the os filesystem, -// or the filesystem otherwise supports Symlink's. -type Linker interface { - SymlinkIfPossible(oldname, newname string) error -} - -// ErrNoSymlink is the error that will be wrapped in an os.LinkError if a file system -// does not support Symlink's either directly or through its delegated filesystem. -// As expressed by support for the Linker interface. -var ErrNoSymlink = errors.New("symlink not supported") - -// LinkReader is an optional interface in Afero. It is only implemented by the -// filesystems saying so. -type LinkReader interface { - ReadlinkIfPossible(name string) (string, error) -} - -// ErrNoReadlink is the error that will be wrapped in an os.Path if a file system -// does not support the readlink operation either directly or through its delegated filesystem. -// As expressed by support for the LinkReader interface. -var ErrNoReadlink = errors.New("readlink not supported") diff --git a/backend/vendor/github.com/spf13/afero/unionFile.go b/backend/vendor/github.com/spf13/afero/unionFile.go deleted file mode 100644 index 62dd6c93..00000000 --- a/backend/vendor/github.com/spf13/afero/unionFile.go +++ /dev/null @@ -1,330 +0,0 @@ -package afero - -import ( - "io" - "os" - "path/filepath" - "syscall" -) - -// The UnionFile implements the afero.File interface and will be returned -// when reading a directory present at least in the overlay or opening a file -// for writing. -// -// The calls to -// Readdir() and Readdirnames() merge the file os.FileInfo / names from the -// base and the overlay - for files present in both layers, only those -// from the overlay will be used. -// -// When opening files for writing (Create() / OpenFile() with the right flags) -// the operations will be done in both layers, starting with the overlay. A -// successful read in the overlay will move the cursor position in the base layer -// by the number of bytes read. -type UnionFile struct { - Base File - Layer File - Merger DirsMerger - off int - files []os.FileInfo -} - -func (f *UnionFile) Close() error { - // first close base, so we have a newer timestamp in the overlay. If we'd close - // the overlay first, we'd get a cacheStale the next time we access this file - // -> cache would be useless ;-) - if f.Base != nil { - f.Base.Close() - } - if f.Layer != nil { - return f.Layer.Close() - } - return BADFD -} - -func (f *UnionFile) Read(s []byte) (int, error) { - if f.Layer != nil { - n, err := f.Layer.Read(s) - if (err == nil || err == io.EOF) && f.Base != nil { - // advance the file position also in the base file, the next - // call may be a write at this position (or a seek with SEEK_CUR) - if _, seekErr := f.Base.Seek(int64(n), io.SeekCurrent); seekErr != nil { - // only overwrite err in case the seek fails: we need to - // report an eventual io.EOF to the caller - err = seekErr - } - } - return n, err - } - if f.Base != nil { - return f.Base.Read(s) - } - return 0, BADFD -} - -func (f *UnionFile) ReadAt(s []byte, o int64) (int, error) { - if f.Layer != nil { - n, err := f.Layer.ReadAt(s, o) - if (err == nil || err == io.EOF) && f.Base != nil { - _, err = f.Base.Seek(o+int64(n), io.SeekStart) - } - return n, err - } - if f.Base != nil { - return f.Base.ReadAt(s, o) - } - return 0, BADFD -} - -func (f *UnionFile) Seek(o int64, w int) (pos int64, err error) { - if f.Layer != nil { - pos, err = f.Layer.Seek(o, w) - if (err == nil || err == io.EOF) && f.Base != nil { - _, err = f.Base.Seek(o, w) - } - return pos, err - } - if f.Base != nil { - return f.Base.Seek(o, w) - } - return 0, BADFD -} - -func (f *UnionFile) Write(s []byte) (n int, err error) { - if f.Layer != nil { - n, err = f.Layer.Write(s) - if err == nil && f.Base != nil { // hmm, do we have fixed size files where a write may hit the EOF mark? - _, err = f.Base.Write(s) - } - return n, err - } - if f.Base != nil { - return f.Base.Write(s) - } - return 0, BADFD -} - -func (f *UnionFile) WriteAt(s []byte, o int64) (n int, err error) { - if f.Layer != nil { - n, err = f.Layer.WriteAt(s, o) - if err == nil && f.Base != nil { - _, err = f.Base.WriteAt(s, o) - } - return n, err - } - if f.Base != nil { - return f.Base.WriteAt(s, o) - } - return 0, BADFD -} - -func (f *UnionFile) Name() string { - if f.Layer != nil { - return f.Layer.Name() - } - return f.Base.Name() -} - -// DirsMerger is how UnionFile weaves two directories together. -// It takes the FileInfo slices from the layer and the base and returns a -// single view. -type DirsMerger func(lofi, bofi []os.FileInfo) ([]os.FileInfo, error) - -var defaultUnionMergeDirsFn = func(lofi, bofi []os.FileInfo) ([]os.FileInfo, error) { - files := make(map[string]os.FileInfo) - - for _, fi := range lofi { - files[fi.Name()] = fi - } - - for _, fi := range bofi { - if _, exists := files[fi.Name()]; !exists { - files[fi.Name()] = fi - } - } - - rfi := make([]os.FileInfo, len(files)) - - i := 0 - for _, fi := range files { - rfi[i] = fi - i++ - } - - return rfi, nil -} - -// Readdir will weave the two directories together and -// return a single view of the overlayed directories. -// At the end of the directory view, the error is io.EOF if c > 0. -func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error) { - var merge DirsMerger = f.Merger - if merge == nil { - merge = defaultUnionMergeDirsFn - } - - if f.off == 0 { - var lfi []os.FileInfo - if f.Layer != nil { - lfi, err = f.Layer.Readdir(-1) - if err != nil { - return nil, err - } - } - - var bfi []os.FileInfo - if f.Base != nil { - bfi, err = f.Base.Readdir(-1) - if err != nil { - return nil, err - } - - } - merged, err := merge(lfi, bfi) - if err != nil { - return nil, err - } - f.files = append(f.files, merged...) - } - files := f.files[f.off:] - - if c <= 0 { - return files, nil - } - - if len(files) == 0 { - return nil, io.EOF - } - - if c > len(files) { - c = len(files) - } - - defer func() { f.off += c }() - return files[:c], nil -} - -func (f *UnionFile) Readdirnames(c int) ([]string, error) { - rfi, err := f.Readdir(c) - if err != nil { - return nil, err - } - var names []string - for _, fi := range rfi { - names = append(names, fi.Name()) - } - return names, nil -} - -func (f *UnionFile) Stat() (os.FileInfo, error) { - if f.Layer != nil { - return f.Layer.Stat() - } - if f.Base != nil { - return f.Base.Stat() - } - return nil, BADFD -} - -func (f *UnionFile) Sync() (err error) { - if f.Layer != nil { - err = f.Layer.Sync() - if err == nil && f.Base != nil { - err = f.Base.Sync() - } - return err - } - if f.Base != nil { - return f.Base.Sync() - } - return BADFD -} - -func (f *UnionFile) Truncate(s int64) (err error) { - if f.Layer != nil { - err = f.Layer.Truncate(s) - if err == nil && f.Base != nil { - err = f.Base.Truncate(s) - } - return err - } - if f.Base != nil { - return f.Base.Truncate(s) - } - return BADFD -} - -func (f *UnionFile) WriteString(s string) (n int, err error) { - if f.Layer != nil { - n, err = f.Layer.WriteString(s) - if err == nil && f.Base != nil { - _, err = f.Base.WriteString(s) - } - return n, err - } - if f.Base != nil { - return f.Base.WriteString(s) - } - return 0, BADFD -} - -func copyFile(base Fs, layer Fs, name string, bfh File) error { - // First make sure the directory exists - exists, err := Exists(layer, filepath.Dir(name)) - if err != nil { - return err - } - if !exists { - err = layer.MkdirAll(filepath.Dir(name), 0o777) // FIXME? - if err != nil { - return err - } - } - - // Create the file on the overlay - lfh, err := layer.Create(name) - if err != nil { - return err - } - n, err := io.Copy(lfh, bfh) - if err != nil { - // If anything fails, clean up the file - layer.Remove(name) - lfh.Close() - return err - } - - bfi, err := bfh.Stat() - if err != nil || bfi.Size() != n { - layer.Remove(name) - lfh.Close() - return syscall.EIO - } - - err = lfh.Close() - if err != nil { - layer.Remove(name) - lfh.Close() - return err - } - return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime()) -} - -func copyToLayer(base Fs, layer Fs, name string) error { - bfh, err := base.Open(name) - if err != nil { - return err - } - defer bfh.Close() - - return copyFile(base, layer, name, bfh) -} - -func copyFileToLayer(base Fs, layer Fs, name string, flag int, perm os.FileMode) error { - bfh, err := base.OpenFile(name, flag, perm) - if err != nil { - return err - } - defer bfh.Close() - - return copyFile(base, layer, name, bfh) -} diff --git a/backend/vendor/github.com/spf13/afero/util.go b/backend/vendor/github.com/spf13/afero/util.go deleted file mode 100644 index 9e4cba27..00000000 --- a/backend/vendor/github.com/spf13/afero/util.go +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright ©2015 Steve Francia -// Portions Copyright ©2015 The Hugo Authors -// Portions Copyright 2016-present Bjørn Erik Pedersen -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "bytes" - "fmt" - "io" - "os" - "path/filepath" - "strings" - "unicode" - - "golang.org/x/text/runes" - "golang.org/x/text/transform" - "golang.org/x/text/unicode/norm" -) - -// Filepath separator defined by os.Separator. -const FilePathSeparator = string(filepath.Separator) - -// Takes a reader and a path and writes the content -func (a Afero) WriteReader(path string, r io.Reader) (err error) { - return WriteReader(a.Fs, path, r) -} - -func WriteReader(fs Fs, path string, r io.Reader) (err error) { - dir, _ := filepath.Split(path) - ospath := filepath.FromSlash(dir) - - if ospath != "" { - err = fs.MkdirAll(ospath, 0o777) // rwx, rw, r - if err != nil { - if err != os.ErrExist { - return err - } - } - } - - file, err := fs.Create(path) - if err != nil { - return - } - defer file.Close() - - _, err = io.Copy(file, r) - return -} - -// Same as WriteReader but checks to see if file/directory already exists. -func (a Afero) SafeWriteReader(path string, r io.Reader) (err error) { - return SafeWriteReader(a.Fs, path, r) -} - -func SafeWriteReader(fs Fs, path string, r io.Reader) (err error) { - dir, _ := filepath.Split(path) - ospath := filepath.FromSlash(dir) - - if ospath != "" { - err = fs.MkdirAll(ospath, 0o777) // rwx, rw, r - if err != nil { - return - } - } - - exists, err := Exists(fs, path) - if err != nil { - return - } - if exists { - return fmt.Errorf("%v already exists", path) - } - - file, err := fs.Create(path) - if err != nil { - return - } - defer file.Close() - - _, err = io.Copy(file, r) - return -} - -func (a Afero) GetTempDir(subPath string) string { - return GetTempDir(a.Fs, subPath) -} - -// GetTempDir returns the default temp directory with trailing slash -// if subPath is not empty then it will be created recursively with mode 777 rwx rwx rwx -func GetTempDir(fs Fs, subPath string) string { - addSlash := func(p string) string { - if FilePathSeparator != p[len(p)-1:] { - p = p + FilePathSeparator - } - return p - } - dir := addSlash(os.TempDir()) - - if subPath != "" { - // preserve windows backslash :-( - if FilePathSeparator == "\\" { - subPath = strings.Replace(subPath, "\\", "____", -1) - } - dir = dir + UnicodeSanitize((subPath)) - if FilePathSeparator == "\\" { - dir = strings.Replace(dir, "____", "\\", -1) - } - - if exists, _ := Exists(fs, dir); exists { - return addSlash(dir) - } - - err := fs.MkdirAll(dir, 0o777) - if err != nil { - panic(err) - } - dir = addSlash(dir) - } - return dir -} - -// Rewrite string to remove non-standard path characters -func UnicodeSanitize(s string) string { - source := []rune(s) - target := make([]rune, 0, len(source)) - - for _, r := range source { - if unicode.IsLetter(r) || - unicode.IsDigit(r) || - unicode.IsMark(r) || - r == '.' || - r == '/' || - r == '\\' || - r == '_' || - r == '-' || - r == '%' || - r == ' ' || - r == '#' { - target = append(target, r) - } - } - - return string(target) -} - -// Transform characters with accents into plain forms. -func NeuterAccents(s string) string { - t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC) - result, _, _ := transform.String(t, string(s)) - - return result -} - -func (a Afero) FileContainsBytes(filename string, subslice []byte) (bool, error) { - return FileContainsBytes(a.Fs, filename, subslice) -} - -// Check if a file contains a specified byte slice. -func FileContainsBytes(fs Fs, filename string, subslice []byte) (bool, error) { - f, err := fs.Open(filename) - if err != nil { - return false, err - } - defer f.Close() - - return readerContainsAny(f, subslice), nil -} - -func (a Afero) FileContainsAnyBytes(filename string, subslices [][]byte) (bool, error) { - return FileContainsAnyBytes(a.Fs, filename, subslices) -} - -// Check if a file contains any of the specified byte slices. -func FileContainsAnyBytes(fs Fs, filename string, subslices [][]byte) (bool, error) { - f, err := fs.Open(filename) - if err != nil { - return false, err - } - defer f.Close() - - return readerContainsAny(f, subslices...), nil -} - -// readerContains reports whether any of the subslices is within r. -func readerContainsAny(r io.Reader, subslices ...[]byte) bool { - if r == nil || len(subslices) == 0 { - return false - } - - largestSlice := 0 - - for _, sl := range subslices { - if len(sl) > largestSlice { - largestSlice = len(sl) - } - } - - if largestSlice == 0 { - return false - } - - bufflen := largestSlice * 4 - halflen := bufflen / 2 - buff := make([]byte, bufflen) - var err error - var n, i int - - for { - i++ - if i == 1 { - n, err = io.ReadAtLeast(r, buff[:halflen], halflen) - } else { - if i != 2 { - // shift left to catch overlapping matches - copy(buff[:], buff[halflen:]) - } - n, err = io.ReadAtLeast(r, buff[halflen:], halflen) - } - - if n > 0 { - for _, sl := range subslices { - if bytes.Contains(buff, sl) { - return true - } - } - } - - if err != nil { - break - } - } - return false -} - -func (a Afero) DirExists(path string) (bool, error) { - return DirExists(a.Fs, path) -} - -// DirExists checks if a path exists and is a directory. -func DirExists(fs Fs, path string) (bool, error) { - fi, err := fs.Stat(path) - if err == nil && fi.IsDir() { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} - -func (a Afero) IsDir(path string) (bool, error) { - return IsDir(a.Fs, path) -} - -// IsDir checks if a given path is a directory. -func IsDir(fs Fs, path string) (bool, error) { - fi, err := fs.Stat(path) - if err != nil { - return false, err - } - return fi.IsDir(), nil -} - -func (a Afero) IsEmpty(path string) (bool, error) { - return IsEmpty(a.Fs, path) -} - -// IsEmpty checks if a given file or directory is empty. -func IsEmpty(fs Fs, path string) (bool, error) { - if b, _ := Exists(fs, path); !b { - return false, fmt.Errorf("%q path does not exist", path) - } - fi, err := fs.Stat(path) - if err != nil { - return false, err - } - if fi.IsDir() { - f, err := fs.Open(path) - if err != nil { - return false, err - } - defer f.Close() - list, err := f.Readdir(-1) - if err != nil { - return false, err - } - return len(list) == 0, nil - } - return fi.Size() == 0, nil -} - -func (a Afero) Exists(path string) (bool, error) { - return Exists(a.Fs, path) -} - -// Check if a file or directory exists. -func Exists(fs Fs, path string) (bool, error) { - _, err := fs.Stat(path) - if err == nil { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} - -func FullBaseFsPath(basePathFs *BasePathFs, relativePath string) string { - combinedPath := filepath.Join(basePathFs.path, relativePath) - if parent, ok := basePathFs.source.(*BasePathFs); ok { - return FullBaseFsPath(parent, combinedPath) - } - - return combinedPath -} diff --git a/backend/vendor/github.com/spf13/cast/.gitignore b/backend/vendor/github.com/spf13/cast/.gitignore deleted file mode 100644 index 53053a8a..00000000 --- a/backend/vendor/github.com/spf13/cast/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test - -*.bench diff --git a/backend/vendor/github.com/spf13/cast/LICENSE b/backend/vendor/github.com/spf13/cast/LICENSE deleted file mode 100644 index 4527efb9..00000000 --- a/backend/vendor/github.com/spf13/cast/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Steve Francia - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/backend/vendor/github.com/spf13/cast/Makefile b/backend/vendor/github.com/spf13/cast/Makefile deleted file mode 100644 index f01a5dbb..00000000 --- a/backend/vendor/github.com/spf13/cast/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -GOVERSION := $(shell go version | cut -d ' ' -f 3 | cut -d '.' -f 2) - -.PHONY: check fmt lint test test-race vet test-cover-html help -.DEFAULT_GOAL := help - -check: test-race fmt vet lint ## Run tests and linters - -test: ## Run tests - go test ./... - -test-race: ## Run tests with race detector - go test -race ./... - -fmt: ## Run gofmt linter -ifeq "$(GOVERSION)" "12" - @for d in `go list` ; do \ - if [ "`gofmt -l -s $$GOPATH/src/$$d | tee /dev/stderr`" ]; then \ - echo "^ improperly formatted go files" && echo && exit 1; \ - fi \ - done -endif - -lint: ## Run golint linter - @for d in `go list` ; do \ - if [ "`golint $$d | tee /dev/stderr`" ]; then \ - echo "^ golint errors!" && echo && exit 1; \ - fi \ - done - -vet: ## Run go vet linter - @if [ "`go vet | tee /dev/stderr`" ]; then \ - echo "^ go vet errors!" && echo && exit 1; \ - fi - -test-cover-html: ## Generate test coverage report - go test -coverprofile=coverage.out -covermode=count - go tool cover -func=coverage.out - -help: - @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/backend/vendor/github.com/spf13/cast/README.md b/backend/vendor/github.com/spf13/cast/README.md deleted file mode 100644 index 58141f02..00000000 --- a/backend/vendor/github.com/spf13/cast/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# cast - -[![Build Status](https://github.com/spf13/cast/actions/workflows/ci.yml/badge.svg)](https://github.com/spf13/cast/actions/workflows/ci.yml) -[![PkgGoDev](https://pkg.go.dev/badge/mod/github.com/spf13/cast)](https://pkg.go.dev/mod/github.com/spf13/cast) -![Go Version](https://img.shields.io/badge/go%20version-%3E=1.16-61CFDD.svg?style=flat-square) -[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cast)](https://goreportcard.com/report/github.com/spf13/cast) - -Easy and safe casting from one type to another in Go - -Don’t Panic! ... Cast - -## What is Cast? - -Cast is a library to convert between different go types in a consistent and easy way. - -Cast provides simple functions to easily convert a number to a string, an -interface into a bool, etc. Cast does this intelligently when an obvious -conversion is possible. It doesn’t make any attempts to guess what you meant, -for example you can only convert a string to an int when it is a string -representation of an int such as “8”. Cast was developed for use in -[Hugo](https://gohugo.io), a website engine which uses YAML, TOML or JSON -for meta data. - -## Why use Cast? - -When working with dynamic data in Go you often need to cast or convert the data -from one type into another. Cast goes beyond just using type assertion (though -it uses that when possible) to provide a very straightforward and convenient -library. - -If you are working with interfaces to handle things like dynamic content -you’ll need an easy way to convert an interface into a given type. This -is the library for you. - -If you are taking in data from YAML, TOML or JSON or other formats which lack -full types, then Cast is the library for you. - -## Usage - -Cast provides a handful of To_____ methods. These methods will always return -the desired type. **If input is provided that will not convert to that type, the -0 or nil value for that type will be returned**. - -Cast also provides identical methods To_____E. These return the same result as -the To_____ methods, plus an additional error which tells you if it successfully -converted. Using these methods you can tell the difference between when the -input matched the zero value or when the conversion failed and the zero value -was returned. - -The following examples are merely a sample of what is available. Please review -the code for a complete set. - -### Example ‘ToString’: - - cast.ToString("mayonegg") // "mayonegg" - cast.ToString(8) // "8" - cast.ToString(8.31) // "8.31" - cast.ToString([]byte("one time")) // "one time" - cast.ToString(nil) // "" - - var foo interface{} = "one more time" - cast.ToString(foo) // "one more time" - - -### Example ‘ToInt’: - - cast.ToInt(8) // 8 - cast.ToInt(8.31) // 8 - cast.ToInt("8") // 8 - cast.ToInt(true) // 1 - cast.ToInt(false) // 0 - - var eight interface{} = 8 - cast.ToInt(eight) // 8 - cast.ToInt(nil) // 0 diff --git a/backend/vendor/github.com/spf13/cast/cast.go b/backend/vendor/github.com/spf13/cast/cast.go deleted file mode 100644 index 0cfe9418..00000000 --- a/backend/vendor/github.com/spf13/cast/cast.go +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -// Package cast provides easy and safe casting in Go. -package cast - -import "time" - -// ToBool casts an interface to a bool type. -func ToBool(i interface{}) bool { - v, _ := ToBoolE(i) - return v -} - -// ToTime casts an interface to a time.Time type. -func ToTime(i interface{}) time.Time { - v, _ := ToTimeE(i) - return v -} - -func ToTimeInDefaultLocation(i interface{}, location *time.Location) time.Time { - v, _ := ToTimeInDefaultLocationE(i, location) - return v -} - -// ToDuration casts an interface to a time.Duration type. -func ToDuration(i interface{}) time.Duration { - v, _ := ToDurationE(i) - return v -} - -// ToFloat64 casts an interface to a float64 type. -func ToFloat64(i interface{}) float64 { - v, _ := ToFloat64E(i) - return v -} - -// ToFloat32 casts an interface to a float32 type. -func ToFloat32(i interface{}) float32 { - v, _ := ToFloat32E(i) - return v -} - -// ToInt64 casts an interface to an int64 type. -func ToInt64(i interface{}) int64 { - v, _ := ToInt64E(i) - return v -} - -// ToInt32 casts an interface to an int32 type. -func ToInt32(i interface{}) int32 { - v, _ := ToInt32E(i) - return v -} - -// ToInt16 casts an interface to an int16 type. -func ToInt16(i interface{}) int16 { - v, _ := ToInt16E(i) - return v -} - -// ToInt8 casts an interface to an int8 type. -func ToInt8(i interface{}) int8 { - v, _ := ToInt8E(i) - return v -} - -// ToInt casts an interface to an int type. -func ToInt(i interface{}) int { - v, _ := ToIntE(i) - return v -} - -// ToUint casts an interface to a uint type. -func ToUint(i interface{}) uint { - v, _ := ToUintE(i) - return v -} - -// ToUint64 casts an interface to a uint64 type. -func ToUint64(i interface{}) uint64 { - v, _ := ToUint64E(i) - return v -} - -// ToUint32 casts an interface to a uint32 type. -func ToUint32(i interface{}) uint32 { - v, _ := ToUint32E(i) - return v -} - -// ToUint16 casts an interface to a uint16 type. -func ToUint16(i interface{}) uint16 { - v, _ := ToUint16E(i) - return v -} - -// ToUint8 casts an interface to a uint8 type. -func ToUint8(i interface{}) uint8 { - v, _ := ToUint8E(i) - return v -} - -// ToString casts an interface to a string type. -func ToString(i interface{}) string { - v, _ := ToStringE(i) - return v -} - -// ToStringMapString casts an interface to a map[string]string type. -func ToStringMapString(i interface{}) map[string]string { - v, _ := ToStringMapStringE(i) - return v -} - -// ToStringMapStringSlice casts an interface to a map[string][]string type. -func ToStringMapStringSlice(i interface{}) map[string][]string { - v, _ := ToStringMapStringSliceE(i) - return v -} - -// ToStringMapBool casts an interface to a map[string]bool type. -func ToStringMapBool(i interface{}) map[string]bool { - v, _ := ToStringMapBoolE(i) - return v -} - -// ToStringMapInt casts an interface to a map[string]int type. -func ToStringMapInt(i interface{}) map[string]int { - v, _ := ToStringMapIntE(i) - return v -} - -// ToStringMapInt64 casts an interface to a map[string]int64 type. -func ToStringMapInt64(i interface{}) map[string]int64 { - v, _ := ToStringMapInt64E(i) - return v -} - -// ToStringMap casts an interface to a map[string]interface{} type. -func ToStringMap(i interface{}) map[string]interface{} { - v, _ := ToStringMapE(i) - return v -} - -// ToSlice casts an interface to a []interface{} type. -func ToSlice(i interface{}) []interface{} { - v, _ := ToSliceE(i) - return v -} - -// ToBoolSlice casts an interface to a []bool type. -func ToBoolSlice(i interface{}) []bool { - v, _ := ToBoolSliceE(i) - return v -} - -// ToStringSlice casts an interface to a []string type. -func ToStringSlice(i interface{}) []string { - v, _ := ToStringSliceE(i) - return v -} - -// ToIntSlice casts an interface to a []int type. -func ToIntSlice(i interface{}) []int { - v, _ := ToIntSliceE(i) - return v -} - -// ToDurationSlice casts an interface to a []time.Duration type. -func ToDurationSlice(i interface{}) []time.Duration { - v, _ := ToDurationSliceE(i) - return v -} diff --git a/backend/vendor/github.com/spf13/cast/caste.go b/backend/vendor/github.com/spf13/cast/caste.go deleted file mode 100644 index d49bbf83..00000000 --- a/backend/vendor/github.com/spf13/cast/caste.go +++ /dev/null @@ -1,1498 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package cast - -import ( - "encoding/json" - "errors" - "fmt" - "html/template" - "reflect" - "strconv" - "strings" - "time" -) - -var errNegativeNotAllowed = errors.New("unable to cast negative value") - -// ToTimeE casts an interface to a time.Time type. -func ToTimeE(i interface{}) (tim time.Time, err error) { - return ToTimeInDefaultLocationE(i, time.UTC) -} - -// ToTimeInDefaultLocationE casts an empty interface to time.Time, -// interpreting inputs without a timezone to be in the given location, -// or the local timezone if nil. -func ToTimeInDefaultLocationE(i interface{}, location *time.Location) (tim time.Time, err error) { - i = indirect(i) - - switch v := i.(type) { - case time.Time: - return v, nil - case string: - return StringToDateInDefaultLocation(v, location) - case json.Number: - s, err1 := ToInt64E(v) - if err1 != nil { - return time.Time{}, fmt.Errorf("unable to cast %#v of type %T to Time", i, i) - } - return time.Unix(s, 0), nil - case int: - return time.Unix(int64(v), 0), nil - case int64: - return time.Unix(v, 0), nil - case int32: - return time.Unix(int64(v), 0), nil - case uint: - return time.Unix(int64(v), 0), nil - case uint64: - return time.Unix(int64(v), 0), nil - case uint32: - return time.Unix(int64(v), 0), nil - default: - return time.Time{}, fmt.Errorf("unable to cast %#v of type %T to Time", i, i) - } -} - -// ToDurationE casts an interface to a time.Duration type. -func ToDurationE(i interface{}) (d time.Duration, err error) { - i = indirect(i) - - switch s := i.(type) { - case time.Duration: - return s, nil - case int, int64, int32, int16, int8, uint, uint64, uint32, uint16, uint8: - d = time.Duration(ToInt64(s)) - return - case float32, float64: - d = time.Duration(ToFloat64(s)) - return - case string: - if strings.ContainsAny(s, "nsuµmh") { - d, err = time.ParseDuration(s) - } else { - d, err = time.ParseDuration(s + "ns") - } - return - case json.Number: - var v float64 - v, err = s.Float64() - d = time.Duration(v) - return - default: - err = fmt.Errorf("unable to cast %#v of type %T to Duration", i, i) - return - } -} - -// ToBoolE casts an interface to a bool type. -func ToBoolE(i interface{}) (bool, error) { - i = indirect(i) - - switch b := i.(type) { - case bool: - return b, nil - case nil: - return false, nil - case int: - return b != 0, nil - case int64: - return b != 0, nil - case int32: - return b != 0, nil - case int16: - return b != 0, nil - case int8: - return b != 0, nil - case uint: - return b != 0, nil - case uint64: - return b != 0, nil - case uint32: - return b != 0, nil - case uint16: - return b != 0, nil - case uint8: - return b != 0, nil - case float64: - return b != 0, nil - case float32: - return b != 0, nil - case time.Duration: - return b != 0, nil - case string: - return strconv.ParseBool(i.(string)) - case json.Number: - v, err := ToInt64E(b) - if err == nil { - return v != 0, nil - } - return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i) - default: - return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i) - } -} - -// ToFloat64E casts an interface to a float64 type. -func ToFloat64E(i interface{}) (float64, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return float64(intv), nil - } - - switch s := i.(type) { - case float64: - return s, nil - case float32: - return float64(s), nil - case int64: - return float64(s), nil - case int32: - return float64(s), nil - case int16: - return float64(s), nil - case int8: - return float64(s), nil - case uint: - return float64(s), nil - case uint64: - return float64(s), nil - case uint32: - return float64(s), nil - case uint16: - return float64(s), nil - case uint8: - return float64(s), nil - case string: - v, err := strconv.ParseFloat(s, 64) - if err == nil { - return v, nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) - case json.Number: - v, err := s.Float64() - if err == nil { - return v, nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) - } -} - -// ToFloat32E casts an interface to a float32 type. -func ToFloat32E(i interface{}) (float32, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return float32(intv), nil - } - - switch s := i.(type) { - case float64: - return float32(s), nil - case float32: - return s, nil - case int64: - return float32(s), nil - case int32: - return float32(s), nil - case int16: - return float32(s), nil - case int8: - return float32(s), nil - case uint: - return float32(s), nil - case uint64: - return float32(s), nil - case uint32: - return float32(s), nil - case uint16: - return float32(s), nil - case uint8: - return float32(s), nil - case string: - v, err := strconv.ParseFloat(s, 32) - if err == nil { - return float32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) - case json.Number: - v, err := s.Float64() - if err == nil { - return float32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) - } -} - -// ToInt64E casts an interface to an int64 type. -func ToInt64E(i interface{}) (int64, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return int64(intv), nil - } - - switch s := i.(type) { - case int64: - return s, nil - case int32: - return int64(s), nil - case int16: - return int64(s), nil - case int8: - return int64(s), nil - case uint: - return int64(s), nil - case uint64: - return int64(s), nil - case uint32: - return int64(s), nil - case uint16: - return int64(s), nil - case uint8: - return int64(s), nil - case float64: - return int64(s), nil - case float32: - return int64(s), nil - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - return v, nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) - case json.Number: - return ToInt64E(string(s)) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) - } -} - -// ToInt32E casts an interface to an int32 type. -func ToInt32E(i interface{}) (int32, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return int32(intv), nil - } - - switch s := i.(type) { - case int64: - return int32(s), nil - case int32: - return s, nil - case int16: - return int32(s), nil - case int8: - return int32(s), nil - case uint: - return int32(s), nil - case uint64: - return int32(s), nil - case uint32: - return int32(s), nil - case uint16: - return int32(s), nil - case uint8: - return int32(s), nil - case float64: - return int32(s), nil - case float32: - return int32(s), nil - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - return int32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i) - case json.Number: - return ToInt32E(string(s)) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i) - } -} - -// ToInt16E casts an interface to an int16 type. -func ToInt16E(i interface{}) (int16, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return int16(intv), nil - } - - switch s := i.(type) { - case int64: - return int16(s), nil - case int32: - return int16(s), nil - case int16: - return s, nil - case int8: - return int16(s), nil - case uint: - return int16(s), nil - case uint64: - return int16(s), nil - case uint32: - return int16(s), nil - case uint16: - return int16(s), nil - case uint8: - return int16(s), nil - case float64: - return int16(s), nil - case float32: - return int16(s), nil - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - return int16(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i) - case json.Number: - return ToInt16E(string(s)) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i) - } -} - -// ToInt8E casts an interface to an int8 type. -func ToInt8E(i interface{}) (int8, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return int8(intv), nil - } - - switch s := i.(type) { - case int64: - return int8(s), nil - case int32: - return int8(s), nil - case int16: - return int8(s), nil - case int8: - return s, nil - case uint: - return int8(s), nil - case uint64: - return int8(s), nil - case uint32: - return int8(s), nil - case uint16: - return int8(s), nil - case uint8: - return int8(s), nil - case float64: - return int8(s), nil - case float32: - return int8(s), nil - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - return int8(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i) - case json.Number: - return ToInt8E(string(s)) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i) - } -} - -// ToIntE casts an interface to an int type. -func ToIntE(i interface{}) (int, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - return intv, nil - } - - switch s := i.(type) { - case int64: - return int(s), nil - case int32: - return int(s), nil - case int16: - return int(s), nil - case int8: - return int(s), nil - case uint: - return int(s), nil - case uint64: - return int(s), nil - case uint32: - return int(s), nil - case uint16: - return int(s), nil - case uint8: - return int(s), nil - case float64: - return int(s), nil - case float32: - return int(s), nil - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - return int(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) - case json.Number: - return ToIntE(string(s)) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int", i, i) - } -} - -// ToUintE casts an interface to a uint type. -func ToUintE(i interface{}) (uint, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - if intv < 0 { - return 0, errNegativeNotAllowed - } - return uint(intv), nil - } - - switch s := i.(type) { - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - if v < 0 { - return 0, errNegativeNotAllowed - } - return uint(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to uint", i, i) - case json.Number: - return ToUintE(string(s)) - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case uint: - return s, nil - case uint64: - return uint(s), nil - case uint32: - return uint(s), nil - case uint16: - return uint(s), nil - case uint8: - return uint(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint", i, i) - } -} - -// ToUint64E casts an interface to a uint64 type. -func ToUint64E(i interface{}) (uint64, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - if intv < 0 { - return 0, errNegativeNotAllowed - } - return uint64(intv), nil - } - - switch s := i.(type) { - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - if v < 0 { - return 0, errNegativeNotAllowed - } - return uint64(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to uint64", i, i) - case json.Number: - return ToUint64E(string(s)) - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case uint: - return uint64(s), nil - case uint64: - return s, nil - case uint32: - return uint64(s), nil - case uint16: - return uint64(s), nil - case uint8: - return uint64(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint64", i, i) - } -} - -// ToUint32E casts an interface to a uint32 type. -func ToUint32E(i interface{}) (uint32, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - if intv < 0 { - return 0, errNegativeNotAllowed - } - return uint32(intv), nil - } - - switch s := i.(type) { - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - if v < 0 { - return 0, errNegativeNotAllowed - } - return uint32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to uint32", i, i) - case json.Number: - return ToUint32E(string(s)) - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case uint: - return uint32(s), nil - case uint64: - return uint32(s), nil - case uint32: - return s, nil - case uint16: - return uint32(s), nil - case uint8: - return uint32(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint32", i, i) - } -} - -// ToUint16E casts an interface to a uint16 type. -func ToUint16E(i interface{}) (uint16, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - if intv < 0 { - return 0, errNegativeNotAllowed - } - return uint16(intv), nil - } - - switch s := i.(type) { - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - if v < 0 { - return 0, errNegativeNotAllowed - } - return uint16(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to uint16", i, i) - case json.Number: - return ToUint16E(string(s)) - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case uint: - return uint16(s), nil - case uint64: - return uint16(s), nil - case uint32: - return uint16(s), nil - case uint16: - return s, nil - case uint8: - return uint16(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint16", i, i) - } -} - -// ToUint8E casts an interface to a uint type. -func ToUint8E(i interface{}) (uint8, error) { - i = indirect(i) - - intv, ok := toInt(i) - if ok { - if intv < 0 { - return 0, errNegativeNotAllowed - } - return uint8(intv), nil - } - - switch s := i.(type) { - case string: - v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0) - if err == nil { - if v < 0 { - return 0, errNegativeNotAllowed - } - return uint8(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to uint8", i, i) - case json.Number: - return ToUint8E(string(s)) - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case uint: - return uint8(s), nil - case uint64: - return uint8(s), nil - case uint32: - return uint8(s), nil - case uint16: - return uint8(s), nil - case uint8: - return s, nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint8", i, i) - } -} - -// From html/template/content.go -// Copyright 2011 The Go Authors. All rights reserved. -// indirect returns the value, after dereferencing as many times -// as necessary to reach the base type (or nil). -func indirect(a interface{}) interface{} { - if a == nil { - return nil - } - if t := reflect.TypeOf(a); t.Kind() != reflect.Ptr { - // Avoid creating a reflect.Value if it's not a pointer. - return a - } - v := reflect.ValueOf(a) - for v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - return v.Interface() -} - -// From html/template/content.go -// Copyright 2011 The Go Authors. All rights reserved. -// indirectToStringerOrError returns the value, after dereferencing as many times -// as necessary to reach the base type (or nil) or an implementation of fmt.Stringer -// or error, -func indirectToStringerOrError(a interface{}) interface{} { - if a == nil { - return nil - } - - var errorType = reflect.TypeOf((*error)(nil)).Elem() - var fmtStringerType = reflect.TypeOf((*fmt.Stringer)(nil)).Elem() - - v := reflect.ValueOf(a) - for !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - return v.Interface() -} - -// ToStringE casts an interface to a string type. -func ToStringE(i interface{}) (string, error) { - i = indirectToStringerOrError(i) - - switch s := i.(type) { - case string: - return s, nil - case bool: - return strconv.FormatBool(s), nil - case float64: - return strconv.FormatFloat(s, 'f', -1, 64), nil - case float32: - return strconv.FormatFloat(float64(s), 'f', -1, 32), nil - case int: - return strconv.Itoa(s), nil - case int64: - return strconv.FormatInt(s, 10), nil - case int32: - return strconv.Itoa(int(s)), nil - case int16: - return strconv.FormatInt(int64(s), 10), nil - case int8: - return strconv.FormatInt(int64(s), 10), nil - case uint: - return strconv.FormatUint(uint64(s), 10), nil - case uint64: - return strconv.FormatUint(uint64(s), 10), nil - case uint32: - return strconv.FormatUint(uint64(s), 10), nil - case uint16: - return strconv.FormatUint(uint64(s), 10), nil - case uint8: - return strconv.FormatUint(uint64(s), 10), nil - case json.Number: - return s.String(), nil - case []byte: - return string(s), nil - case template.HTML: - return string(s), nil - case template.URL: - return string(s), nil - case template.JS: - return string(s), nil - case template.CSS: - return string(s), nil - case template.HTMLAttr: - return string(s), nil - case nil: - return "", nil - case fmt.Stringer: - return s.String(), nil - case error: - return s.Error(), nil - default: - return "", fmt.Errorf("unable to cast %#v of type %T to string", i, i) - } -} - -// ToStringMapStringE casts an interface to a map[string]string type. -func ToStringMapStringE(i interface{}) (map[string]string, error) { - var m = map[string]string{} - - switch v := i.(type) { - case map[string]string: - return v, nil - case map[string]interface{}: - for k, val := range v { - m[ToString(k)] = ToString(val) - } - return m, nil - case map[interface{}]string: - for k, val := range v { - m[ToString(k)] = ToString(val) - } - return m, nil - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = ToString(val) - } - return m, nil - case string: - err := jsonStringToObject(v, &m) - return m, err - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]string", i, i) - } -} - -// ToStringMapStringSliceE casts an interface to a map[string][]string type. -func ToStringMapStringSliceE(i interface{}) (map[string][]string, error) { - var m = map[string][]string{} - - switch v := i.(type) { - case map[string][]string: - return v, nil - case map[string][]interface{}: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[string]string: - for k, val := range v { - m[ToString(k)] = []string{val} - } - case map[string]interface{}: - for k, val := range v { - switch vt := val.(type) { - case []interface{}: - m[ToString(k)] = ToStringSlice(vt) - case []string: - m[ToString(k)] = vt - default: - m[ToString(k)] = []string{ToString(val)} - } - } - return m, nil - case map[interface{}][]string: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[interface{}]string: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[interface{}][]interface{}: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[interface{}]interface{}: - for k, val := range v { - key, err := ToStringE(k) - if err != nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) - } - value, err := ToStringSliceE(val) - if err != nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) - } - m[key] = value - } - case string: - err := jsonStringToObject(v, &m) - return m, err - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) - } - return m, nil -} - -// ToStringMapBoolE casts an interface to a map[string]bool type. -func ToStringMapBoolE(i interface{}) (map[string]bool, error) { - var m = map[string]bool{} - - switch v := i.(type) { - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = ToBool(val) - } - return m, nil - case map[string]interface{}: - for k, val := range v { - m[ToString(k)] = ToBool(val) - } - return m, nil - case map[string]bool: - return v, nil - case string: - err := jsonStringToObject(v, &m) - return m, err - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]bool", i, i) - } -} - -// ToStringMapE casts an interface to a map[string]interface{} type. -func ToStringMapE(i interface{}) (map[string]interface{}, error) { - var m = map[string]interface{}{} - - switch v := i.(type) { - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = val - } - return m, nil - case map[string]interface{}: - return v, nil - case string: - err := jsonStringToObject(v, &m) - return m, err - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]interface{}", i, i) - } -} - -// ToStringMapIntE casts an interface to a map[string]int{} type. -func ToStringMapIntE(i interface{}) (map[string]int, error) { - var m = map[string]int{} - if i == nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) - } - - switch v := i.(type) { - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = ToInt(val) - } - return m, nil - case map[string]interface{}: - for k, val := range v { - m[k] = ToInt(val) - } - return m, nil - case map[string]int: - return v, nil - case string: - err := jsonStringToObject(v, &m) - return m, err - } - - if reflect.TypeOf(i).Kind() != reflect.Map { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) - } - - mVal := reflect.ValueOf(m) - v := reflect.ValueOf(i) - for _, keyVal := range v.MapKeys() { - val, err := ToIntE(v.MapIndex(keyVal).Interface()) - if err != nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) - } - mVal.SetMapIndex(keyVal, reflect.ValueOf(val)) - } - return m, nil -} - -// ToStringMapInt64E casts an interface to a map[string]int64{} type. -func ToStringMapInt64E(i interface{}) (map[string]int64, error) { - var m = map[string]int64{} - if i == nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) - } - - switch v := i.(type) { - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = ToInt64(val) - } - return m, nil - case map[string]interface{}: - for k, val := range v { - m[k] = ToInt64(val) - } - return m, nil - case map[string]int64: - return v, nil - case string: - err := jsonStringToObject(v, &m) - return m, err - } - - if reflect.TypeOf(i).Kind() != reflect.Map { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) - } - mVal := reflect.ValueOf(m) - v := reflect.ValueOf(i) - for _, keyVal := range v.MapKeys() { - val, err := ToInt64E(v.MapIndex(keyVal).Interface()) - if err != nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) - } - mVal.SetMapIndex(keyVal, reflect.ValueOf(val)) - } - return m, nil -} - -// ToSliceE casts an interface to a []interface{} type. -func ToSliceE(i interface{}) ([]interface{}, error) { - var s []interface{} - - switch v := i.(type) { - case []interface{}: - return append(s, v...), nil - case []map[string]interface{}: - for _, u := range v { - s = append(s, u) - } - return s, nil - default: - return s, fmt.Errorf("unable to cast %#v of type %T to []interface{}", i, i) - } -} - -// ToBoolSliceE casts an interface to a []bool type. -func ToBoolSliceE(i interface{}) ([]bool, error) { - if i == nil { - return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) - } - - switch v := i.(type) { - case []bool: - return v, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]bool, s.Len()) - for j := 0; j < s.Len(); j++ { - val, err := ToBoolE(s.Index(j).Interface()) - if err != nil { - return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) - } - a[j] = val - } - return a, nil - default: - return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) - } -} - -// ToStringSliceE casts an interface to a []string type. -func ToStringSliceE(i interface{}) ([]string, error) { - var a []string - - switch v := i.(type) { - case []interface{}: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []string: - return v, nil - case []int8: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []int: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []int32: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []int64: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []float32: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []float64: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case string: - return strings.Fields(v), nil - case []error: - for _, err := range i.([]error) { - a = append(a, err.Error()) - } - return a, nil - case interface{}: - str, err := ToStringE(v) - if err != nil { - return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i) - } - return []string{str}, nil - default: - return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i) - } -} - -// ToIntSliceE casts an interface to a []int type. -func ToIntSliceE(i interface{}) ([]int, error) { - if i == nil { - return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) - } - - switch v := i.(type) { - case []int: - return v, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]int, s.Len()) - for j := 0; j < s.Len(); j++ { - val, err := ToIntE(s.Index(j).Interface()) - if err != nil { - return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) - } - a[j] = val - } - return a, nil - default: - return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) - } -} - -// ToDurationSliceE casts an interface to a []time.Duration type. -func ToDurationSliceE(i interface{}) ([]time.Duration, error) { - if i == nil { - return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) - } - - switch v := i.(type) { - case []time.Duration: - return v, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]time.Duration, s.Len()) - for j := 0; j < s.Len(); j++ { - val, err := ToDurationE(s.Index(j).Interface()) - if err != nil { - return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) - } - a[j] = val - } - return a, nil - default: - return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) - } -} - -// StringToDate attempts to parse a string into a time.Time type using a -// predefined list of formats. If no suitable format is found, an error is -// returned. -func StringToDate(s string) (time.Time, error) { - return parseDateWith(s, time.UTC, timeFormats) -} - -// StringToDateInDefaultLocation casts an empty interface to a time.Time, -// interpreting inputs without a timezone to be in the given location, -// or the local timezone if nil. -func StringToDateInDefaultLocation(s string, location *time.Location) (time.Time, error) { - return parseDateWith(s, location, timeFormats) -} - -type timeFormatType int - -const ( - timeFormatNoTimezone timeFormatType = iota - timeFormatNamedTimezone - timeFormatNumericTimezone - timeFormatNumericAndNamedTimezone - timeFormatTimeOnly -) - -type timeFormat struct { - format string - typ timeFormatType -} - -func (f timeFormat) hasTimezone() bool { - // We don't include the formats with only named timezones, see - // https://github.com/golang/go/issues/19694#issuecomment-289103522 - return f.typ >= timeFormatNumericTimezone && f.typ <= timeFormatNumericAndNamedTimezone -} - -var ( - timeFormats = []timeFormat{ - // Keep common formats at the top. - {"2006-01-02", timeFormatNoTimezone}, - {time.RFC3339, timeFormatNumericTimezone}, - {"2006-01-02T15:04:05", timeFormatNoTimezone}, // iso8601 without timezone - {time.RFC1123Z, timeFormatNumericTimezone}, - {time.RFC1123, timeFormatNamedTimezone}, - {time.RFC822Z, timeFormatNumericTimezone}, - {time.RFC822, timeFormatNamedTimezone}, - {time.RFC850, timeFormatNamedTimezone}, - {"2006-01-02 15:04:05.999999999 -0700 MST", timeFormatNumericAndNamedTimezone}, // Time.String() - {"2006-01-02T15:04:05-0700", timeFormatNumericTimezone}, // RFC3339 without timezone hh:mm colon - {"2006-01-02 15:04:05Z0700", timeFormatNumericTimezone}, // RFC3339 without T or timezone hh:mm colon - {"2006-01-02 15:04:05", timeFormatNoTimezone}, - {time.ANSIC, timeFormatNoTimezone}, - {time.UnixDate, timeFormatNamedTimezone}, - {time.RubyDate, timeFormatNumericTimezone}, - {"2006-01-02 15:04:05Z07:00", timeFormatNumericTimezone}, - {"02 Jan 2006", timeFormatNoTimezone}, - {"2006-01-02 15:04:05 -07:00", timeFormatNumericTimezone}, - {"2006-01-02 15:04:05 -0700", timeFormatNumericTimezone}, - {time.Kitchen, timeFormatTimeOnly}, - {time.Stamp, timeFormatTimeOnly}, - {time.StampMilli, timeFormatTimeOnly}, - {time.StampMicro, timeFormatTimeOnly}, - {time.StampNano, timeFormatTimeOnly}, - } -) - -func parseDateWith(s string, location *time.Location, formats []timeFormat) (d time.Time, e error) { - - for _, format := range formats { - if d, e = time.Parse(format.format, s); e == nil { - - // Some time formats have a zone name, but no offset, so it gets - // put in that zone name (not the default one passed in to us), but - // without that zone's offset. So set the location manually. - if format.typ <= timeFormatNamedTimezone { - if location == nil { - location = time.Local - } - year, month, day := d.Date() - hour, min, sec := d.Clock() - d = time.Date(year, month, day, hour, min, sec, d.Nanosecond(), location) - } - - return - } - } - return d, fmt.Errorf("unable to parse date: %s", s) -} - -// jsonStringToObject attempts to unmarshall a string as JSON into -// the object passed as pointer. -func jsonStringToObject(s string, v interface{}) error { - data := []byte(s) - return json.Unmarshal(data, v) -} - -// toInt returns the int value of v if v or v's underlying type -// is an int. -// Note that this will return false for int64 etc. types. -func toInt(v interface{}) (int, bool) { - switch v := v.(type) { - case int: - return v, true - case time.Weekday: - return int(v), true - case time.Month: - return int(v), true - default: - return 0, false - } -} - -func trimZeroDecimal(s string) string { - var foundZero bool - for i := len(s); i > 0; i-- { - switch s[i-1] { - case '.': - if foundZero { - return s[:i-1] - } - case '0': - foundZero = true - default: - return s - } - } - return s -} diff --git a/backend/vendor/github.com/spf13/cast/timeformattype_string.go b/backend/vendor/github.com/spf13/cast/timeformattype_string.go deleted file mode 100644 index 1524fc82..00000000 --- a/backend/vendor/github.com/spf13/cast/timeformattype_string.go +++ /dev/null @@ -1,27 +0,0 @@ -// Code generated by "stringer -type timeFormatType"; DO NOT EDIT. - -package cast - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[timeFormatNoTimezone-0] - _ = x[timeFormatNamedTimezone-1] - _ = x[timeFormatNumericTimezone-2] - _ = x[timeFormatNumericAndNamedTimezone-3] - _ = x[timeFormatTimeOnly-4] -} - -const _timeFormatType_name = "timeFormatNoTimezonetimeFormatNamedTimezonetimeFormatNumericTimezonetimeFormatNumericAndNamedTimezonetimeFormatTimeOnly" - -var _timeFormatType_index = [...]uint8{0, 20, 43, 68, 101, 119} - -func (i timeFormatType) String() string { - if i < 0 || i >= timeFormatType(len(_timeFormatType_index)-1) { - return "timeFormatType(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _timeFormatType_name[_timeFormatType_index[i]:_timeFormatType_index[i+1]] -} diff --git a/backend/vendor/github.com/spf13/cobra/.gitignore b/backend/vendor/github.com/spf13/cobra/.gitignore deleted file mode 100644 index c7b459e4..00000000 --- a/backend/vendor/github.com/spf13/cobra/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -# Vim files https://github.com/github/gitignore/blob/master/Global/Vim.gitignore -# swap -[._]*.s[a-w][a-z] -[._]s[a-w][a-z] -# session -Session.vim -# temporary -.netrwhist -*~ -# auto-generated tag files -tags - -*.exe -cobra.test -bin - -.idea/ -*.iml diff --git a/backend/vendor/github.com/spf13/cobra/.golangci.yml b/backend/vendor/github.com/spf13/cobra/.golangci.yml deleted file mode 100644 index 2578d94b..00000000 --- a/backend/vendor/github.com/spf13/cobra/.golangci.yml +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 2013-2023 The Cobra Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -run: - deadline: 5m - -linters: - disable-all: true - enable: - #- bodyclose - - deadcode - #- depguard - #- dogsled - #- dupl - - errcheck - #- exhaustive - #- funlen - - gas - #- gochecknoinits - - goconst - #- gocritic - #- gocyclo - #- gofmt - - goimports - - golint - #- gomnd - #- goprintffuncname - #- gosec - #- gosimple - - govet - - ineffassign - - interfacer - #- lll - - maligned - - megacheck - #- misspell - #- nakedret - #- noctx - #- nolintlint - #- rowserrcheck - #- scopelint - #- staticcheck - - structcheck - #- stylecheck - #- typecheck - - unconvert - #- unparam - #- unused - - varcheck - #- whitespace - fast: false diff --git a/backend/vendor/github.com/spf13/cobra/.mailmap b/backend/vendor/github.com/spf13/cobra/.mailmap deleted file mode 100644 index 94ec5306..00000000 --- a/backend/vendor/github.com/spf13/cobra/.mailmap +++ /dev/null @@ -1,3 +0,0 @@ -Steve Francia -Bjørn Erik Pedersen -Fabiano Franz diff --git a/backend/vendor/github.com/spf13/cobra/CONDUCT.md b/backend/vendor/github.com/spf13/cobra/CONDUCT.md deleted file mode 100644 index 9d16f88f..00000000 --- a/backend/vendor/github.com/spf13/cobra/CONDUCT.md +++ /dev/null @@ -1,37 +0,0 @@ -## Cobra User Contract - -### Versioning -Cobra will follow a steady release cadence. Non breaking changes will be released as minor versions quarterly. Patch bug releases are at the discretion of the maintainers. Users can expect security patch fixes to be released within relatively short order of a CVE becoming known. For more information on security patch fixes see the CVE section below. Releases will follow [Semantic Versioning](https://semver.org/). Users tracking the Master branch should expect unpredictable breaking changes as the project continues to move forward. For stability, it is highly recommended to use a release. - -### Backward Compatibility -We will maintain two major releases in a moving window. The N-1 release will only receive bug fixes and security updates and will be dropped once N+1 is released. - -### Deprecation -Deprecation of Go versions or dependent packages will only occur in major releases. To reduce the change of this taking users by surprise, any large deprecation will be preceded by an announcement in the [#cobra slack channel](https://gophers.slack.com/archives/CD3LP1199) and an Issue on Github. - -### CVE -Maintainers will make every effort to release security patches in the case of a medium to high severity CVE directly impacting the library. The speed in which these patches reach a release is up to the discretion of the maintainers. A low severity CVE may be a lower priority than a high severity one. - -### Communication -Cobra maintainers will use GitHub issues and the [#cobra slack channel](https://gophers.slack.com/archives/CD3LP1199) as the primary means of communication with the community. This is to foster open communication with all users and contributors. - -### Breaking Changes -Breaking changes are generally allowed in the master branch, as this is the branch used to develop the next release of Cobra. - -There may be times, however, when master is closed for breaking changes. This is likely to happen as we near the release of a new version. - -Breaking changes are not allowed in release branches, as these represent minor versions that have already been released. These version have consumers who expect the APIs, behaviors, etc, to remain stable during the lifetime of the patch stream for the minor release. - -Examples of breaking changes include: -- Removing or renaming exported constant, variable, type, or function. -- Updating the version of critical libraries such as `spf13/pflag`, `spf13/viper` etc... - - Some version updates may be acceptable for picking up bug fixes, but maintainers must exercise caution when reviewing. - -There may, at times, need to be exceptions where breaking changes are allowed in release branches. These are at the discretion of the project's maintainers, and must be carefully considered before merging. - -### CI Testing -Maintainers will ensure the Cobra test suite utilizes the current supported versions of Golang. - -### Disclaimer -Changes to this document and the contents therein are at the discretion of the maintainers. -None of the contents of this document are legally binding in any way to the maintainers or the users. diff --git a/backend/vendor/github.com/spf13/cobra/CONTRIBUTING.md b/backend/vendor/github.com/spf13/cobra/CONTRIBUTING.md deleted file mode 100644 index 6f356e6a..00000000 --- a/backend/vendor/github.com/spf13/cobra/CONTRIBUTING.md +++ /dev/null @@ -1,50 +0,0 @@ -# Contributing to Cobra - -Thank you so much for contributing to Cobra. We appreciate your time and help. -Here are some guidelines to help you get started. - -## Code of Conduct - -Be kind and respectful to the members of the community. Take time to educate -others who are seeking help. Harassment of any kind will not be tolerated. - -## Questions - -If you have questions regarding Cobra, feel free to ask it in the community -[#cobra Slack channel][cobra-slack] - -## Filing a bug or feature - -1. Before filing an issue, please check the existing issues to see if a - similar one was already opened. If there is one already opened, feel free - to comment on it. -1. If you believe you've found a bug, please provide detailed steps of - reproduction, the version of Cobra and anything else you believe will be - useful to help troubleshoot it (e.g. OS environment, environment variables, - etc...). Also state the current behavior vs. the expected behavior. -1. If you'd like to see a feature or an enhancement please open an issue with - a clear title and description of what the feature is and why it would be - beneficial to the project and its users. - -## Submitting changes - -1. CLA: Upon submitting a Pull Request (PR), contributors will be prompted to - sign a CLA. Please sign the CLA :slightly_smiling_face: -1. Tests: If you are submitting code, please ensure you have adequate tests - for the feature. Tests can be run via `go test ./...` or `make test`. -1. Since this is golang project, ensure the new code is properly formatted to - ensure code consistency. Run `make all`. - -### Quick steps to contribute - -1. Fork the project. -1. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`) -1. Create your feature branch (`git checkout -b my-new-feature`) -1. Make changes and run tests (`make test`) -1. Add them to staging (`git add .`) -1. Commit your changes (`git commit -m 'Add some feature'`) -1. Push to the branch (`git push origin my-new-feature`) -1. Create new pull request - - -[cobra-slack]: https://gophers.slack.com/archives/CD3LP1199 diff --git a/backend/vendor/github.com/spf13/cobra/LICENSE.txt b/backend/vendor/github.com/spf13/cobra/LICENSE.txt deleted file mode 100644 index 298f0e26..00000000 --- a/backend/vendor/github.com/spf13/cobra/LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/backend/vendor/github.com/spf13/cobra/MAINTAINERS b/backend/vendor/github.com/spf13/cobra/MAINTAINERS deleted file mode 100644 index 4c5ac3dd..00000000 --- a/backend/vendor/github.com/spf13/cobra/MAINTAINERS +++ /dev/null @@ -1,13 +0,0 @@ -maintainers: -- spf13 -- johnSchnake -- jpmcb -- marckhouzam -inactive: -- anthonyfok -- bep -- bogem -- broady -- eparis -- jharshman -- wfernandes diff --git a/backend/vendor/github.com/spf13/cobra/Makefile b/backend/vendor/github.com/spf13/cobra/Makefile deleted file mode 100644 index 0da8d7aa..00000000 --- a/backend/vendor/github.com/spf13/cobra/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -BIN="./bin" -SRC=$(shell find . -name "*.go") - -ifeq (, $(shell which golangci-lint)) -$(warning "could not find golangci-lint in $(PATH), run: curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh") -endif - -.PHONY: fmt lint test install_deps clean - -default: all - -all: fmt test - -fmt: - $(info ******************** checking formatting ********************) - @test -z $(shell gofmt -l $(SRC)) || (gofmt -d $(SRC); exit 1) - -lint: - $(info ******************** running lint tools ********************) - golangci-lint run -v - -test: install_deps - $(info ******************** running tests ********************) - go test -v ./... - -richtest: install_deps - $(info ******************** running tests with kyoh86/richgo ********************) - richgo test -v ./... - -install_deps: - $(info ******************** downloading dependencies ********************) - go get -v ./... - -clean: - rm -rf $(BIN) diff --git a/backend/vendor/github.com/spf13/cobra/README.md b/backend/vendor/github.com/spf13/cobra/README.md deleted file mode 100644 index 592c0b8a..00000000 --- a/backend/vendor/github.com/spf13/cobra/README.md +++ /dev/null @@ -1,112 +0,0 @@ -![cobra logo](assets/CobraMain.png) - -Cobra is a library for creating powerful modern CLI applications. - -Cobra is used in many Go projects such as [Kubernetes](https://kubernetes.io/), -[Hugo](https://gohugo.io), and [GitHub CLI](https://github.com/cli/cli) to -name a few. [This list](./projects_using_cobra.md) contains a more extensive list of projects using Cobra. - -[![](https://img.shields.io/github/actions/workflow/status/spf13/cobra/test.yml?branch=main&longCache=true&label=Test&logo=github%20actions&logoColor=fff)](https://github.com/spf13/cobra/actions?query=workflow%3ATest) -[![Go Reference](https://pkg.go.dev/badge/github.com/spf13/cobra.svg)](https://pkg.go.dev/github.com/spf13/cobra) -[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cobra)](https://goreportcard.com/report/github.com/spf13/cobra) -[![Slack](https://img.shields.io/badge/Slack-cobra-brightgreen)](https://gophers.slack.com/archives/CD3LP1199) - -# Overview - -Cobra is a library providing a simple interface to create powerful modern CLI -interfaces similar to git & go tools. - -Cobra provides: -* Easy subcommand-based CLIs: `app server`, `app fetch`, etc. -* Fully POSIX-compliant flags (including short & long versions) -* Nested subcommands -* Global, local and cascading flags -* Intelligent suggestions (`app srver`... did you mean `app server`?) -* Automatic help generation for commands and flags -* Grouping help for subcommands -* Automatic help flag recognition of `-h`, `--help`, etc. -* Automatically generated shell autocomplete for your application (bash, zsh, fish, powershell) -* Automatically generated man pages for your application -* Command aliases so you can change things without breaking them -* The flexibility to define your own help, usage, etc. -* Optional seamless integration with [viper](https://github.com/spf13/viper) for 12-factor apps - -# Concepts - -Cobra is built on a structure of commands, arguments & flags. - -**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions. - -The best applications read like sentences when used, and as a result, users -intuitively know how to interact with them. - -The pattern to follow is -`APPNAME VERB NOUN --ADJECTIVE` - or -`APPNAME COMMAND ARG --FLAG`. - -A few good real world examples may better illustrate this point. - -In the following example, 'server' is a command, and 'port' is a flag: - - hugo server --port=1313 - -In this command we are telling Git to clone the url bare. - - git clone URL --bare - -## Commands - -Command is the central point of the application. Each interaction that -the application supports will be contained in a Command. A command can -have children commands and optionally run an action. - -In the example above, 'server' is the command. - -[More about cobra.Command](https://pkg.go.dev/github.com/spf13/cobra#Command) - -## Flags - -A flag is a way to modify the behavior of a command. Cobra supports -fully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/). -A Cobra command can define flags that persist through to children commands -and flags that are only available to that command. - -In the example above, 'port' is the flag. - -Flag functionality is provided by the [pflag -library](https://github.com/spf13/pflag), a fork of the flag standard library -which maintains the same interface while adding POSIX compliance. - -# Installing -Using Cobra is easy. First, use `go get` to install the latest version -of the library. - -``` -go get -u github.com/spf13/cobra@latest -``` - -Next, include Cobra in your application: - -```go -import "github.com/spf13/cobra" -``` - -# Usage -`cobra-cli` is a command line program to generate cobra applications and command files. -It will bootstrap your application scaffolding to rapidly -develop a Cobra-based application. It is the easiest way to incorporate Cobra into your application. - -It can be installed by running: - -``` -go install github.com/spf13/cobra-cli@latest -``` - -For complete details on using the Cobra-CLI generator, please read [The Cobra Generator README](https://github.com/spf13/cobra-cli/blob/main/README.md) - -For complete details on using the Cobra library, please read the [The Cobra User Guide](user_guide.md). - -# License - -Cobra is released under the Apache 2.0 license. See [LICENSE.txt](https://github.com/spf13/cobra/blob/master/LICENSE.txt) diff --git a/backend/vendor/github.com/spf13/cobra/active_help.go b/backend/vendor/github.com/spf13/cobra/active_help.go deleted file mode 100644 index 2d023943..00000000 --- a/backend/vendor/github.com/spf13/cobra/active_help.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "fmt" - "os" - "strings" -) - -const ( - activeHelpMarker = "_activeHelp_ " - // The below values should not be changed: programs will be using them explicitly - // in their user documentation, and users will be using them explicitly. - activeHelpEnvVarSuffix = "_ACTIVE_HELP" - activeHelpGlobalEnvVar = "COBRA_ACTIVE_HELP" - activeHelpGlobalDisable = "0" -) - -// AppendActiveHelp adds the specified string to the specified array to be used as ActiveHelp. -// Such strings will be processed by the completion script and will be shown as ActiveHelp -// to the user. -// The array parameter should be the array that will contain the completions. -// This function can be called multiple times before and/or after completions are added to -// the array. Each time this function is called with the same array, the new -// ActiveHelp line will be shown below the previous ones when completion is triggered. -func AppendActiveHelp(compArray []string, activeHelpStr string) []string { - return append(compArray, fmt.Sprintf("%s%s", activeHelpMarker, activeHelpStr)) -} - -// GetActiveHelpConfig returns the value of the ActiveHelp environment variable -// _ACTIVE_HELP where is the name of the root command in upper -// case, with all - replaced by _. -// It will always return "0" if the global environment variable COBRA_ACTIVE_HELP -// is set to "0". -func GetActiveHelpConfig(cmd *Command) string { - activeHelpCfg := os.Getenv(activeHelpGlobalEnvVar) - if activeHelpCfg != activeHelpGlobalDisable { - activeHelpCfg = os.Getenv(activeHelpEnvVar(cmd.Root().Name())) - } - return activeHelpCfg -} - -// activeHelpEnvVar returns the name of the program-specific ActiveHelp environment -// variable. It has the format _ACTIVE_HELP where is the name of the -// root command in upper case, with all - replaced by _. -func activeHelpEnvVar(name string) string { - // This format should not be changed: users will be using it explicitly. - activeHelpEnvVar := strings.ToUpper(fmt.Sprintf("%s%s", name, activeHelpEnvVarSuffix)) - return strings.ReplaceAll(activeHelpEnvVar, "-", "_") -} diff --git a/backend/vendor/github.com/spf13/cobra/active_help.md b/backend/vendor/github.com/spf13/cobra/active_help.md deleted file mode 100644 index 5e7f59af..00000000 --- a/backend/vendor/github.com/spf13/cobra/active_help.md +++ /dev/null @@ -1,157 +0,0 @@ -# Active Help - -Active Help is a framework provided by Cobra which allows a program to define messages (hints, warnings, etc) that will be printed during program usage. It aims to make it easier for your users to learn how to use your program. If configured by the program, Active Help is printed when the user triggers shell completion. - -For example, -``` -bash-5.1$ helm repo add [tab] -You must choose a name for the repo you are adding. - -bash-5.1$ bin/helm package [tab] -Please specify the path to the chart to package - -bash-5.1$ bin/helm package [tab][tab] -bin/ internal/ scripts/ pkg/ testdata/ -``` - -**Hint**: A good place to use Active Help messages is when the normal completion system does not provide any suggestions. In such cases, Active Help nicely supplements the normal shell completions to guide the user in knowing what is expected by the program. -## Supported shells - -Active Help is currently only supported for the following shells: -- Bash (using [bash completion V2](shell_completions.md#bash-completion-v2) only). Note that bash 4.4 or higher is required for the prompt to appear when an Active Help message is printed. -- Zsh - -## Adding Active Help messages - -As Active Help uses the shell completion system, the implementation of Active Help messages is done by enhancing custom dynamic completions. If you are not familiar with dynamic completions, please refer to [Shell Completions](shell_completions.md). - -Adding Active Help is done through the use of the `cobra.AppendActiveHelp(...)` function, where the program repeatedly adds Active Help messages to the list of completions. Keep reading for details. - -### Active Help for nouns - -Adding Active Help when completing a noun is done within the `ValidArgsFunction(...)` of a command. Please notice the use of `cobra.AppendActiveHelp(...)` in the following example: - -```go -cmd := &cobra.Command{ - Use: "add [NAME] [URL]", - Short: "add a chart repository", - Args: require.ExactArgs(2), - RunE: func(cmd *cobra.Command, args []string) error { - return addRepo(args) - }, - ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - var comps []string - if len(args) == 0 { - comps = cobra.AppendActiveHelp(comps, "You must choose a name for the repo you are adding") - } else if len(args) == 1 { - comps = cobra.AppendActiveHelp(comps, "You must specify the URL for the repo you are adding") - } else { - comps = cobra.AppendActiveHelp(comps, "This command does not take any more arguments") - } - return comps, cobra.ShellCompDirectiveNoFileComp - }, -} -``` -The example above defines the completions (none, in this specific example) as well as the Active Help messages for the `helm repo add` command. It yields the following behavior: -``` -bash-5.1$ helm repo add [tab] -You must choose a name for the repo you are adding - -bash-5.1$ helm repo add grafana [tab] -You must specify the URL for the repo you are adding - -bash-5.1$ helm repo add grafana https://grafana.github.io/helm-charts [tab] -This command does not take any more arguments -``` -**Hint**: As can be seen in the above example, a good place to use Active Help messages is when the normal completion system does not provide any suggestions. In such cases, Active Help nicely supplements the normal shell completions. - -### Active Help for flags - -Providing Active Help for flags is done in the same fashion as for nouns, but using the completion function registered for the flag. For example: -```go -_ = cmd.RegisterFlagCompletionFunc("version", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - if len(args) != 2 { - return cobra.AppendActiveHelp(nil, "You must first specify the chart to install before the --version flag can be completed"), cobra.ShellCompDirectiveNoFileComp - } - return compVersionFlag(args[1], toComplete) - }) -``` -The example above prints an Active Help message when not enough information was given by the user to complete the `--version` flag. -``` -bash-5.1$ bin/helm install myrelease --version 2.0.[tab] -You must first specify the chart to install before the --version flag can be completed - -bash-5.1$ bin/helm install myrelease bitnami/solr --version 2.0.[tab][tab] -2.0.1 2.0.2 2.0.3 -``` - -## User control of Active Help - -You may want to allow your users to disable Active Help or choose between different levels of Active Help. It is entirely up to the program to define the type of configurability of Active Help that it wants to offer, if any. -Allowing to configure Active Help is entirely optional; you can use Active Help in your program without doing anything about Active Help configuration. - -The way to configure Active Help is to use the program's Active Help environment -variable. That variable is named `_ACTIVE_HELP` where `` is the name of your -program in uppercase with any `-` replaced by an `_`. The variable should be set by the user to whatever -Active Help configuration values are supported by the program. - -For example, say `helm` has chosen to support three levels for Active Help: `on`, `off`, `local`. Then a user -would set the desired behavior to `local` by doing `export HELM_ACTIVE_HELP=local` in their shell. - -For simplicity, when in `cmd.ValidArgsFunction(...)` or a flag's completion function, the program should read the -Active Help configuration using the `cobra.GetActiveHelpConfig(cmd)` function and select what Active Help messages -should or should not be added (instead of reading the environment variable directly). - -For example: -```go -ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - activeHelpLevel := cobra.GetActiveHelpConfig(cmd) - - var comps []string - if len(args) == 0 { - if activeHelpLevel != "off" { - comps = cobra.AppendActiveHelp(comps, "You must choose a name for the repo you are adding") - } - } else if len(args) == 1 { - if activeHelpLevel != "off" { - comps = cobra.AppendActiveHelp(comps, "You must specify the URL for the repo you are adding") - } - } else { - if activeHelpLevel == "local" { - comps = cobra.AppendActiveHelp(comps, "This command does not take any more arguments") - } - } - return comps, cobra.ShellCompDirectiveNoFileComp -}, -``` -**Note 1**: If the `_ACTIVE_HELP` environment variable is set to the string "0", Cobra will automatically disable all Active Help output (even if some output was specified by the program using the `cobra.AppendActiveHelp(...)` function). Using "0" can simplify your code in situations where you want to blindly disable Active Help without having to call `cobra.GetActiveHelpConfig(cmd)` explicitly. - -**Note 2**: If a user wants to disable Active Help for every single program based on Cobra, she can set the environment variable `COBRA_ACTIVE_HELP` to "0". In this case `cobra.GetActiveHelpConfig(cmd)` will return "0" no matter what the variable `_ACTIVE_HELP` is set to. - -**Note 3**: If the user does not set `_ACTIVE_HELP` or `COBRA_ACTIVE_HELP` (which will be a common case), the default value for the Active Help configuration returned by `cobra.GetActiveHelpConfig(cmd)` will be the empty string. -## Active Help with Cobra's default completion command - -Cobra provides a default `completion` command for programs that wish to use it. -When using the default `completion` command, Active Help is configurable in the same -fashion as described above using environment variables. You may wish to document this in more -details for your users. - -## Debugging Active Help - -Debugging your Active Help code is done in the same way as debugging your dynamic completion code, which is with Cobra's hidden `__complete` command. Please refer to [debugging shell completion](shell_completions.md#debugging) for details. - -When debugging with the `__complete` command, if you want to specify different Active Help configurations, you should use the active help environment variable. That variable is named `_ACTIVE_HELP` where any `-` is replaced by an `_`. For example, we can test deactivating some Active Help as shown below: -``` -$ HELM_ACTIVE_HELP=1 bin/helm __complete install wordpress bitnami/h -bitnami/haproxy -bitnami/harbor -_activeHelp_ WARNING: cannot re-use a name that is still in use -:0 -Completion ended with directive: ShellCompDirectiveDefault - -$ HELM_ACTIVE_HELP=0 bin/helm __complete install wordpress bitnami/h -bitnami/haproxy -bitnami/harbor -:0 -Completion ended with directive: ShellCompDirectiveDefault -``` diff --git a/backend/vendor/github.com/spf13/cobra/args.go b/backend/vendor/github.com/spf13/cobra/args.go deleted file mode 100644 index e79ec33a..00000000 --- a/backend/vendor/github.com/spf13/cobra/args.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "fmt" - "strings" -) - -type PositionalArgs func(cmd *Command, args []string) error - -// legacyArgs validation has the following behaviour: -// - root commands with no subcommands can take arbitrary arguments -// - root commands with subcommands will do subcommand validity checking -// - subcommands will always accept arbitrary arguments -func legacyArgs(cmd *Command, args []string) error { - // no subcommand, always take args - if !cmd.HasSubCommands() { - return nil - } - - // root command with subcommands, do subcommand checking. - if !cmd.HasParent() && len(args) > 0 { - return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0])) - } - return nil -} - -// NoArgs returns an error if any args are included. -func NoArgs(cmd *Command, args []string) error { - if len(args) > 0 { - return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath()) - } - return nil -} - -// OnlyValidArgs returns an error if there are any positional args that are not in -// the `ValidArgs` field of `Command` -func OnlyValidArgs(cmd *Command, args []string) error { - if len(cmd.ValidArgs) > 0 { - // Remove any description that may be included in ValidArgs. - // A description is following a tab character. - var validArgs []string - for _, v := range cmd.ValidArgs { - validArgs = append(validArgs, strings.Split(v, "\t")[0]) - } - for _, v := range args { - if !stringInSlice(v, validArgs) { - return fmt.Errorf("invalid argument %q for %q%s", v, cmd.CommandPath(), cmd.findSuggestions(args[0])) - } - } - } - return nil -} - -// ArbitraryArgs never returns an error. -func ArbitraryArgs(cmd *Command, args []string) error { - return nil -} - -// MinimumNArgs returns an error if there is not at least N args. -func MinimumNArgs(n int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) < n { - return fmt.Errorf("requires at least %d arg(s), only received %d", n, len(args)) - } - return nil - } -} - -// MaximumNArgs returns an error if there are more than N args. -func MaximumNArgs(n int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) > n { - return fmt.Errorf("accepts at most %d arg(s), received %d", n, len(args)) - } - return nil - } -} - -// ExactArgs returns an error if there are not exactly n args. -func ExactArgs(n int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) != n { - return fmt.Errorf("accepts %d arg(s), received %d", n, len(args)) - } - return nil - } -} - -// RangeArgs returns an error if the number of args is not within the expected range. -func RangeArgs(min int, max int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) < min || len(args) > max { - return fmt.Errorf("accepts between %d and %d arg(s), received %d", min, max, len(args)) - } - return nil - } -} - -// MatchAll allows combining several PositionalArgs to work in concert. -func MatchAll(pargs ...PositionalArgs) PositionalArgs { - return func(cmd *Command, args []string) error { - for _, parg := range pargs { - if err := parg(cmd, args); err != nil { - return err - } - } - return nil - } -} - -// ExactValidArgs returns an error if there are not exactly N positional args OR -// there are any positional args that are not in the `ValidArgs` field of `Command` -// -// Deprecated: use MatchAll(ExactArgs(n), OnlyValidArgs) instead -func ExactValidArgs(n int) PositionalArgs { - return MatchAll(ExactArgs(n), OnlyValidArgs) -} diff --git a/backend/vendor/github.com/spf13/cobra/bash_completions.go b/backend/vendor/github.com/spf13/cobra/bash_completions.go deleted file mode 100644 index 10c78847..00000000 --- a/backend/vendor/github.com/spf13/cobra/bash_completions.go +++ /dev/null @@ -1,712 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" - "sort" - "strings" - - "github.com/spf13/pflag" -) - -// Annotations for Bash completion. -const ( - BashCompFilenameExt = "cobra_annotation_bash_completion_filename_extensions" - BashCompCustom = "cobra_annotation_bash_completion_custom" - BashCompOneRequiredFlag = "cobra_annotation_bash_completion_one_required_flag" - BashCompSubdirsInDir = "cobra_annotation_bash_completion_subdirs_in_dir" -) - -func writePreamble(buf io.StringWriter, name string) { - WriteStringAndCheck(buf, fmt.Sprintf("# bash completion for %-36s -*- shell-script -*-\n", name)) - WriteStringAndCheck(buf, fmt.Sprintf(` -__%[1]s_debug() -{ - if [[ -n ${BASH_COMP_DEBUG_FILE:-} ]]; then - echo "$*" >> "${BASH_COMP_DEBUG_FILE}" - fi -} - -# Homebrew on Macs have version 1.3 of bash-completion which doesn't include -# _init_completion. This is a very minimal version of that function. -__%[1]s_init_completion() -{ - COMPREPLY=() - _get_comp_words_by_ref "$@" cur prev words cword -} - -__%[1]s_index_of_word() -{ - local w word=$1 - shift - index=0 - for w in "$@"; do - [[ $w = "$word" ]] && return - index=$((index+1)) - done - index=-1 -} - -__%[1]s_contains_word() -{ - local w word=$1; shift - for w in "$@"; do - [[ $w = "$word" ]] && return - done - return 1 -} - -__%[1]s_handle_go_custom_completion() -{ - __%[1]s_debug "${FUNCNAME[0]}: cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}" - - local shellCompDirectiveError=%[3]d - local shellCompDirectiveNoSpace=%[4]d - local shellCompDirectiveNoFileComp=%[5]d - local shellCompDirectiveFilterFileExt=%[6]d - local shellCompDirectiveFilterDirs=%[7]d - - local out requestComp lastParam lastChar comp directive args - - # Prepare the command to request completions for the program. - # Calling ${words[0]} instead of directly %[1]s allows to handle aliases - args=("${words[@]:1}") - # Disable ActiveHelp which is not supported for bash completion v1 - requestComp="%[8]s=0 ${words[0]} %[2]s ${args[*]}" - - lastParam=${words[$((${#words[@]}-1))]} - lastChar=${lastParam:$((${#lastParam}-1)):1} - __%[1]s_debug "${FUNCNAME[0]}: lastParam ${lastParam}, lastChar ${lastChar}" - - if [ -z "${cur}" ] && [ "${lastChar}" != "=" ]; then - # If the last parameter is complete (there is a space following it) - # We add an extra empty parameter so we can indicate this to the go method. - __%[1]s_debug "${FUNCNAME[0]}: Adding extra empty parameter" - requestComp="${requestComp} \"\"" - fi - - __%[1]s_debug "${FUNCNAME[0]}: calling ${requestComp}" - # Use eval to handle any environment variables and such - out=$(eval "${requestComp}" 2>/dev/null) - - # Extract the directive integer at the very end of the output following a colon (:) - directive=${out##*:} - # Remove the directive - out=${out%%:*} - if [ "${directive}" = "${out}" ]; then - # There is not directive specified - directive=0 - fi - __%[1]s_debug "${FUNCNAME[0]}: the completion directive is: ${directive}" - __%[1]s_debug "${FUNCNAME[0]}: the completions are: ${out}" - - if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then - # Error code. No completion. - __%[1]s_debug "${FUNCNAME[0]}: received error from custom completion go code" - return - else - if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then - if [[ $(type -t compopt) = "builtin" ]]; then - __%[1]s_debug "${FUNCNAME[0]}: activating no space" - compopt -o nospace - fi - fi - if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then - if [[ $(type -t compopt) = "builtin" ]]; then - __%[1]s_debug "${FUNCNAME[0]}: activating no file completion" - compopt +o default - fi - fi - fi - - if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then - # File extension filtering - local fullFilter filter filteringCmd - # Do not use quotes around the $out variable or else newline - # characters will be kept. - for filter in ${out}; do - fullFilter+="$filter|" - done - - filteringCmd="_filedir $fullFilter" - __%[1]s_debug "File filtering command: $filteringCmd" - $filteringCmd - elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then - # File completion for directories only - local subdir - # Use printf to strip any trailing newline - subdir=$(printf "%%s" "${out}") - if [ -n "$subdir" ]; then - __%[1]s_debug "Listing directories in $subdir" - __%[1]s_handle_subdirs_in_dir_flag "$subdir" - else - __%[1]s_debug "Listing directories in ." - _filedir -d - fi - else - while IFS='' read -r comp; do - COMPREPLY+=("$comp") - done < <(compgen -W "${out}" -- "$cur") - fi -} - -__%[1]s_handle_reply() -{ - __%[1]s_debug "${FUNCNAME[0]}" - local comp - case $cur in - -*) - if [[ $(type -t compopt) = "builtin" ]]; then - compopt -o nospace - fi - local allflags - if [ ${#must_have_one_flag[@]} -ne 0 ]; then - allflags=("${must_have_one_flag[@]}") - else - allflags=("${flags[*]} ${two_word_flags[*]}") - fi - while IFS='' read -r comp; do - COMPREPLY+=("$comp") - done < <(compgen -W "${allflags[*]}" -- "$cur") - if [[ $(type -t compopt) = "builtin" ]]; then - [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace - fi - - # complete after --flag=abc - if [[ $cur == *=* ]]; then - if [[ $(type -t compopt) = "builtin" ]]; then - compopt +o nospace - fi - - local index flag - flag="${cur%%=*}" - __%[1]s_index_of_word "${flag}" "${flags_with_completion[@]}" - COMPREPLY=() - if [[ ${index} -ge 0 ]]; then - PREFIX="" - cur="${cur#*=}" - ${flags_completion[${index}]} - if [ -n "${ZSH_VERSION:-}" ]; then - # zsh completion needs --flag= prefix - eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )" - fi - fi - fi - - if [[ -z "${flag_parsing_disabled}" ]]; then - # If flag parsing is enabled, we have completed the flags and can return. - # If flag parsing is disabled, we may not know all (or any) of the flags, so we fallthrough - # to possibly call handle_go_custom_completion. - return 0; - fi - ;; - esac - - # check if we are handling a flag with special work handling - local index - __%[1]s_index_of_word "${prev}" "${flags_with_completion[@]}" - if [[ ${index} -ge 0 ]]; then - ${flags_completion[${index}]} - return - fi - - # we are parsing a flag and don't have a special handler, no completion - if [[ ${cur} != "${words[cword]}" ]]; then - return - fi - - local completions - completions=("${commands[@]}") - if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then - completions+=("${must_have_one_noun[@]}") - elif [[ -n "${has_completion_function}" ]]; then - # if a go completion function is provided, defer to that function - __%[1]s_handle_go_custom_completion - fi - if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then - completions+=("${must_have_one_flag[@]}") - fi - while IFS='' read -r comp; do - COMPREPLY+=("$comp") - done < <(compgen -W "${completions[*]}" -- "$cur") - - if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then - while IFS='' read -r comp; do - COMPREPLY+=("$comp") - done < <(compgen -W "${noun_aliases[*]}" -- "$cur") - fi - - if [[ ${#COMPREPLY[@]} -eq 0 ]]; then - if declare -F __%[1]s_custom_func >/dev/null; then - # try command name qualified custom func - __%[1]s_custom_func - else - # otherwise fall back to unqualified for compatibility - declare -F __custom_func >/dev/null && __custom_func - fi - fi - - # available in bash-completion >= 2, not always present on macOS - if declare -F __ltrim_colon_completions >/dev/null; then - __ltrim_colon_completions "$cur" - fi - - # If there is only 1 completion and it is a flag with an = it will be completed - # but we don't want a space after the = - if [[ "${#COMPREPLY[@]}" -eq "1" ]] && [[ $(type -t compopt) = "builtin" ]] && [[ "${COMPREPLY[0]}" == --*= ]]; then - compopt -o nospace - fi -} - -# The arguments should be in the form "ext1|ext2|extn" -__%[1]s_handle_filename_extension_flag() -{ - local ext="$1" - _filedir "@(${ext})" -} - -__%[1]s_handle_subdirs_in_dir_flag() -{ - local dir="$1" - pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return -} - -__%[1]s_handle_flag() -{ - __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - - # if a command required a flag, and we found it, unset must_have_one_flag() - local flagname=${words[c]} - local flagvalue="" - # if the word contained an = - if [[ ${words[c]} == *"="* ]]; then - flagvalue=${flagname#*=} # take in as flagvalue after the = - flagname=${flagname%%=*} # strip everything after the = - flagname="${flagname}=" # but put the = back - fi - __%[1]s_debug "${FUNCNAME[0]}: looking for ${flagname}" - if __%[1]s_contains_word "${flagname}" "${must_have_one_flag[@]}"; then - must_have_one_flag=() - fi - - # if you set a flag which only applies to this command, don't show subcommands - if __%[1]s_contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then - commands=() - fi - - # keep flag value with flagname as flaghash - # flaghash variable is an associative array which is only supported in bash > 3. - if [[ -z "${BASH_VERSION:-}" || "${BASH_VERSINFO[0]:-}" -gt 3 ]]; then - if [ -n "${flagvalue}" ] ; then - flaghash[${flagname}]=${flagvalue} - elif [ -n "${words[ $((c+1)) ]}" ] ; then - flaghash[${flagname}]=${words[ $((c+1)) ]} - else - flaghash[${flagname}]="true" # pad "true" for bool flag - fi - fi - - # skip the argument to a two word flag - if [[ ${words[c]} != *"="* ]] && __%[1]s_contains_word "${words[c]}" "${two_word_flags[@]}"; then - __%[1]s_debug "${FUNCNAME[0]}: found a flag ${words[c]}, skip the next argument" - c=$((c+1)) - # if we are looking for a flags value, don't show commands - if [[ $c -eq $cword ]]; then - commands=() - fi - fi - - c=$((c+1)) - -} - -__%[1]s_handle_noun() -{ - __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - - if __%[1]s_contains_word "${words[c]}" "${must_have_one_noun[@]}"; then - must_have_one_noun=() - elif __%[1]s_contains_word "${words[c]}" "${noun_aliases[@]}"; then - must_have_one_noun=() - fi - - nouns+=("${words[c]}") - c=$((c+1)) -} - -__%[1]s_handle_command() -{ - __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - - local next_command - if [[ -n ${last_command} ]]; then - next_command="_${last_command}_${words[c]//:/__}" - else - if [[ $c -eq 0 ]]; then - next_command="_%[1]s_root_command" - else - next_command="_${words[c]//:/__}" - fi - fi - c=$((c+1)) - __%[1]s_debug "${FUNCNAME[0]}: looking for ${next_command}" - declare -F "$next_command" >/dev/null && $next_command -} - -__%[1]s_handle_word() -{ - if [[ $c -ge $cword ]]; then - __%[1]s_handle_reply - return - fi - __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - if [[ "${words[c]}" == -* ]]; then - __%[1]s_handle_flag - elif __%[1]s_contains_word "${words[c]}" "${commands[@]}"; then - __%[1]s_handle_command - elif [[ $c -eq 0 ]]; then - __%[1]s_handle_command - elif __%[1]s_contains_word "${words[c]}" "${command_aliases[@]}"; then - # aliashash variable is an associative array which is only supported in bash > 3. - if [[ -z "${BASH_VERSION:-}" || "${BASH_VERSINFO[0]:-}" -gt 3 ]]; then - words[c]=${aliashash[${words[c]}]} - __%[1]s_handle_command - else - __%[1]s_handle_noun - fi - else - __%[1]s_handle_noun - fi - __%[1]s_handle_word -} - -`, name, ShellCompNoDescRequestCmd, - ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp, - ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, activeHelpEnvVar(name))) -} - -func writePostscript(buf io.StringWriter, name string) { - name = strings.ReplaceAll(name, ":", "__") - WriteStringAndCheck(buf, fmt.Sprintf("__start_%s()\n", name)) - WriteStringAndCheck(buf, fmt.Sprintf(`{ - local cur prev words cword split - declare -A flaghash 2>/dev/null || : - declare -A aliashash 2>/dev/null || : - if declare -F _init_completion >/dev/null 2>&1; then - _init_completion -s || return - else - __%[1]s_init_completion -n "=" || return - fi - - local c=0 - local flag_parsing_disabled= - local flags=() - local two_word_flags=() - local local_nonpersistent_flags=() - local flags_with_completion=() - local flags_completion=() - local commands=("%[1]s") - local command_aliases=() - local must_have_one_flag=() - local must_have_one_noun=() - local has_completion_function="" - local last_command="" - local nouns=() - local noun_aliases=() - - __%[1]s_handle_word -} - -`, name)) - WriteStringAndCheck(buf, fmt.Sprintf(`if [[ $(type -t compopt) = "builtin" ]]; then - complete -o default -F __start_%s %s -else - complete -o default -o nospace -F __start_%s %s -fi - -`, name, name, name, name)) - WriteStringAndCheck(buf, "# ex: ts=4 sw=4 et filetype=sh\n") -} - -func writeCommands(buf io.StringWriter, cmd *Command) { - WriteStringAndCheck(buf, " commands=()\n") - for _, c := range cmd.Commands() { - if !c.IsAvailableCommand() && c != cmd.helpCommand { - continue - } - WriteStringAndCheck(buf, fmt.Sprintf(" commands+=(%q)\n", c.Name())) - writeCmdAliases(buf, c) - } - WriteStringAndCheck(buf, "\n") -} - -func writeFlagHandler(buf io.StringWriter, name string, annotations map[string][]string, cmd *Command) { - for key, value := range annotations { - switch key { - case BashCompFilenameExt: - WriteStringAndCheck(buf, fmt.Sprintf(" flags_with_completion+=(%q)\n", name)) - - var ext string - if len(value) > 0 { - ext = fmt.Sprintf("__%s_handle_filename_extension_flag ", cmd.Root().Name()) + strings.Join(value, "|") - } else { - ext = "_filedir" - } - WriteStringAndCheck(buf, fmt.Sprintf(" flags_completion+=(%q)\n", ext)) - case BashCompCustom: - WriteStringAndCheck(buf, fmt.Sprintf(" flags_with_completion+=(%q)\n", name)) - - if len(value) > 0 { - handlers := strings.Join(value, "; ") - WriteStringAndCheck(buf, fmt.Sprintf(" flags_completion+=(%q)\n", handlers)) - } else { - WriteStringAndCheck(buf, " flags_completion+=(:)\n") - } - case BashCompSubdirsInDir: - WriteStringAndCheck(buf, fmt.Sprintf(" flags_with_completion+=(%q)\n", name)) - - var ext string - if len(value) == 1 { - ext = fmt.Sprintf("__%s_handle_subdirs_in_dir_flag ", cmd.Root().Name()) + value[0] - } else { - ext = "_filedir -d" - } - WriteStringAndCheck(buf, fmt.Sprintf(" flags_completion+=(%q)\n", ext)) - } - } -} - -const cbn = "\")\n" - -func writeShortFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) { - name := flag.Shorthand - format := " " - if len(flag.NoOptDefVal) == 0 { - format += "two_word_" - } - format += "flags+=(\"-%s" + cbn - WriteStringAndCheck(buf, fmt.Sprintf(format, name)) - writeFlagHandler(buf, "-"+name, flag.Annotations, cmd) -} - -func writeFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) { - name := flag.Name - format := " flags+=(\"--%s" - if len(flag.NoOptDefVal) == 0 { - format += "=" - } - format += cbn - WriteStringAndCheck(buf, fmt.Sprintf(format, name)) - if len(flag.NoOptDefVal) == 0 { - format = " two_word_flags+=(\"--%s" + cbn - WriteStringAndCheck(buf, fmt.Sprintf(format, name)) - } - writeFlagHandler(buf, "--"+name, flag.Annotations, cmd) -} - -func writeLocalNonPersistentFlag(buf io.StringWriter, flag *pflag.Flag) { - name := flag.Name - format := " local_nonpersistent_flags+=(\"--%[1]s" + cbn - if len(flag.NoOptDefVal) == 0 { - format += " local_nonpersistent_flags+=(\"--%[1]s=" + cbn - } - WriteStringAndCheck(buf, fmt.Sprintf(format, name)) - if len(flag.Shorthand) > 0 { - WriteStringAndCheck(buf, fmt.Sprintf(" local_nonpersistent_flags+=(\"-%s\")\n", flag.Shorthand)) - } -} - -// prepareCustomAnnotationsForFlags setup annotations for go completions for registered flags -func prepareCustomAnnotationsForFlags(cmd *Command) { - flagCompletionMutex.RLock() - defer flagCompletionMutex.RUnlock() - for flag := range flagCompletionFunctions { - // Make sure the completion script calls the __*_go_custom_completion function for - // every registered flag. We need to do this here (and not when the flag was registered - // for completion) so that we can know the root command name for the prefix - // of ___go_custom_completion - if flag.Annotations == nil { - flag.Annotations = map[string][]string{} - } - flag.Annotations[BashCompCustom] = []string{fmt.Sprintf("__%[1]s_handle_go_custom_completion", cmd.Root().Name())} - } -} - -func writeFlags(buf io.StringWriter, cmd *Command) { - prepareCustomAnnotationsForFlags(cmd) - WriteStringAndCheck(buf, ` flags=() - two_word_flags=() - local_nonpersistent_flags=() - flags_with_completion=() - flags_completion=() - -`) - - if cmd.DisableFlagParsing { - WriteStringAndCheck(buf, " flag_parsing_disabled=1\n") - } - - localNonPersistentFlags := cmd.LocalNonPersistentFlags() - cmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) { - if nonCompletableFlag(flag) { - return - } - writeFlag(buf, flag, cmd) - if len(flag.Shorthand) > 0 { - writeShortFlag(buf, flag, cmd) - } - // localNonPersistentFlags are used to stop the completion of subcommands when one is set - // if TraverseChildren is true we should allow to complete subcommands - if localNonPersistentFlags.Lookup(flag.Name) != nil && !cmd.Root().TraverseChildren { - writeLocalNonPersistentFlag(buf, flag) - } - }) - cmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) { - if nonCompletableFlag(flag) { - return - } - writeFlag(buf, flag, cmd) - if len(flag.Shorthand) > 0 { - writeShortFlag(buf, flag, cmd) - } - }) - - WriteStringAndCheck(buf, "\n") -} - -func writeRequiredFlag(buf io.StringWriter, cmd *Command) { - WriteStringAndCheck(buf, " must_have_one_flag=()\n") - flags := cmd.NonInheritedFlags() - flags.VisitAll(func(flag *pflag.Flag) { - if nonCompletableFlag(flag) { - return - } - for key := range flag.Annotations { - switch key { - case BashCompOneRequiredFlag: - format := " must_have_one_flag+=(\"--%s" - if flag.Value.Type() != "bool" { - format += "=" - } - format += cbn - WriteStringAndCheck(buf, fmt.Sprintf(format, flag.Name)) - - if len(flag.Shorthand) > 0 { - WriteStringAndCheck(buf, fmt.Sprintf(" must_have_one_flag+=(\"-%s"+cbn, flag.Shorthand)) - } - } - } - }) -} - -func writeRequiredNouns(buf io.StringWriter, cmd *Command) { - WriteStringAndCheck(buf, " must_have_one_noun=()\n") - sort.Strings(cmd.ValidArgs) - for _, value := range cmd.ValidArgs { - // Remove any description that may be included following a tab character. - // Descriptions are not supported by bash completion. - value = strings.Split(value, "\t")[0] - WriteStringAndCheck(buf, fmt.Sprintf(" must_have_one_noun+=(%q)\n", value)) - } - if cmd.ValidArgsFunction != nil { - WriteStringAndCheck(buf, " has_completion_function=1\n") - } -} - -func writeCmdAliases(buf io.StringWriter, cmd *Command) { - if len(cmd.Aliases) == 0 { - return - } - - sort.Strings(cmd.Aliases) - - WriteStringAndCheck(buf, fmt.Sprint(` if [[ -z "${BASH_VERSION:-}" || "${BASH_VERSINFO[0]:-}" -gt 3 ]]; then`, "\n")) - for _, value := range cmd.Aliases { - WriteStringAndCheck(buf, fmt.Sprintf(" command_aliases+=(%q)\n", value)) - WriteStringAndCheck(buf, fmt.Sprintf(" aliashash[%q]=%q\n", value, cmd.Name())) - } - WriteStringAndCheck(buf, ` fi`) - WriteStringAndCheck(buf, "\n") -} -func writeArgAliases(buf io.StringWriter, cmd *Command) { - WriteStringAndCheck(buf, " noun_aliases=()\n") - sort.Strings(cmd.ArgAliases) - for _, value := range cmd.ArgAliases { - WriteStringAndCheck(buf, fmt.Sprintf(" noun_aliases+=(%q)\n", value)) - } -} - -func gen(buf io.StringWriter, cmd *Command) { - for _, c := range cmd.Commands() { - if !c.IsAvailableCommand() && c != cmd.helpCommand { - continue - } - gen(buf, c) - } - commandName := cmd.CommandPath() - commandName = strings.ReplaceAll(commandName, " ", "_") - commandName = strings.ReplaceAll(commandName, ":", "__") - - if cmd.Root() == cmd { - WriteStringAndCheck(buf, fmt.Sprintf("_%s_root_command()\n{\n", commandName)) - } else { - WriteStringAndCheck(buf, fmt.Sprintf("_%s()\n{\n", commandName)) - } - - WriteStringAndCheck(buf, fmt.Sprintf(" last_command=%q\n", commandName)) - WriteStringAndCheck(buf, "\n") - WriteStringAndCheck(buf, " command_aliases=()\n") - WriteStringAndCheck(buf, "\n") - - writeCommands(buf, cmd) - writeFlags(buf, cmd) - writeRequiredFlag(buf, cmd) - writeRequiredNouns(buf, cmd) - writeArgAliases(buf, cmd) - WriteStringAndCheck(buf, "}\n\n") -} - -// GenBashCompletion generates bash completion file and writes to the passed writer. -func (c *Command) GenBashCompletion(w io.Writer) error { - buf := new(bytes.Buffer) - writePreamble(buf, c.Name()) - if len(c.BashCompletionFunction) > 0 { - buf.WriteString(c.BashCompletionFunction + "\n") - } - gen(buf, c) - writePostscript(buf, c.Name()) - - _, err := buf.WriteTo(w) - return err -} - -func nonCompletableFlag(flag *pflag.Flag) bool { - return flag.Hidden || len(flag.Deprecated) > 0 -} - -// GenBashCompletionFile generates bash completion file. -func (c *Command) GenBashCompletionFile(filename string) error { - outFile, err := os.Create(filename) - if err != nil { - return err - } - defer outFile.Close() - - return c.GenBashCompletion(outFile) -} diff --git a/backend/vendor/github.com/spf13/cobra/bash_completions.md b/backend/vendor/github.com/spf13/cobra/bash_completions.md deleted file mode 100644 index 52919b2f..00000000 --- a/backend/vendor/github.com/spf13/cobra/bash_completions.md +++ /dev/null @@ -1,93 +0,0 @@ -# Generating Bash Completions For Your cobra.Command - -Please refer to [Shell Completions](shell_completions.md) for details. - -## Bash legacy dynamic completions - -For backward compatibility, Cobra still supports its legacy dynamic completion solution (described below). Unlike the `ValidArgsFunction` solution, the legacy solution will only work for Bash shell-completion and not for other shells. This legacy solution can be used along-side `ValidArgsFunction` and `RegisterFlagCompletionFunc()`, as long as both solutions are not used for the same command. This provides a path to gradually migrate from the legacy solution to the new solution. - -**Note**: Cobra's default `completion` command uses bash completion V2. If you are currently using Cobra's legacy dynamic completion solution, you should not use the default `completion` command but continue using your own. - -The legacy solution allows you to inject bash functions into the bash completion script. Those bash functions are responsible for providing the completion choices for your own completions. - -Some code that works in kubernetes: - -```bash -const ( - bash_completion_func = `__kubectl_parse_get() -{ - local kubectl_output out - if kubectl_output=$(kubectl get --no-headers "$1" 2>/dev/null); then - out=($(echo "${kubectl_output}" | awk '{print $1}')) - COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) ) - fi -} - -__kubectl_get_resource() -{ - if [[ ${#nouns[@]} -eq 0 ]]; then - return 1 - fi - __kubectl_parse_get ${nouns[${#nouns[@]} -1]} - if [[ $? -eq 0 ]]; then - return 0 - fi -} - -__kubectl_custom_func() { - case ${last_command} in - kubectl_get | kubectl_describe | kubectl_delete | kubectl_stop) - __kubectl_get_resource - return - ;; - *) - ;; - esac -} -`) -``` - -And then I set that in my command definition: - -```go -cmds := &cobra.Command{ - Use: "kubectl", - Short: "kubectl controls the Kubernetes cluster manager", - Long: `kubectl controls the Kubernetes cluster manager. - -Find more information at https://github.com/GoogleCloudPlatform/kubernetes.`, - Run: runHelp, - BashCompletionFunction: bash_completion_func, -} -``` - -The `BashCompletionFunction` option is really only valid/useful on the root command. Doing the above will cause `__kubectl_custom_func()` (`___custom_func()`) to be called when the built in processor was unable to find a solution. In the case of kubernetes a valid command might look something like `kubectl get pod [mypod]`. If you type `kubectl get pod [tab][tab]` the `__kubectl_customc_func()` will run because the cobra.Command only understood "kubectl" and "get." `__kubectl_custom_func()` will see that the cobra.Command is "kubectl_get" and will thus call another helper `__kubectl_get_resource()`. `__kubectl_get_resource` will look at the 'nouns' collected. In our example the only noun will be `pod`. So it will call `__kubectl_parse_get pod`. `__kubectl_parse_get` will actually call out to kubernetes and get any pods. It will then set `COMPREPLY` to valid pods! - -Similarly, for flags: - -```go - annotation := make(map[string][]string) - annotation[cobra.BashCompCustom] = []string{"__kubectl_get_namespaces"} - - flag := &pflag.Flag{ - Name: "namespace", - Usage: usage, - Annotations: annotation, - } - cmd.Flags().AddFlag(flag) -``` - -In addition add the `__kubectl_get_namespaces` implementation in the `BashCompletionFunction` -value, e.g.: - -```bash -__kubectl_get_namespaces() -{ - local template - template="{{ range .items }}{{ .metadata.name }} {{ end }}" - local kubectl_out - if kubectl_out=$(kubectl get -o template --template="${template}" namespace 2>/dev/null); then - COMPREPLY=( $( compgen -W "${kubectl_out}[*]" -- "$cur" ) ) - fi -} -``` diff --git a/backend/vendor/github.com/spf13/cobra/bash_completionsV2.go b/backend/vendor/github.com/spf13/cobra/bash_completionsV2.go deleted file mode 100644 index 19b09560..00000000 --- a/backend/vendor/github.com/spf13/cobra/bash_completionsV2.go +++ /dev/null @@ -1,396 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" -) - -func (c *Command) genBashCompletion(w io.Writer, includeDesc bool) error { - buf := new(bytes.Buffer) - genBashComp(buf, c.Name(), includeDesc) - _, err := buf.WriteTo(w) - return err -} - -func genBashComp(buf io.StringWriter, name string, includeDesc bool) { - compCmd := ShellCompRequestCmd - if !includeDesc { - compCmd = ShellCompNoDescRequestCmd - } - - WriteStringAndCheck(buf, fmt.Sprintf(`# bash completion V2 for %-36[1]s -*- shell-script -*- - -__%[1]s_debug() -{ - if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then - echo "$*" >> "${BASH_COMP_DEBUG_FILE}" - fi -} - -# Macs have bash3 for which the bash-completion package doesn't include -# _init_completion. This is a minimal version of that function. -__%[1]s_init_completion() -{ - COMPREPLY=() - _get_comp_words_by_ref "$@" cur prev words cword -} - -# This function calls the %[1]s program to obtain the completion -# results and the directive. It fills the 'out' and 'directive' vars. -__%[1]s_get_completion_results() { - local requestComp lastParam lastChar args - - # Prepare the command to request completions for the program. - # Calling ${words[0]} instead of directly %[1]s allows to handle aliases - args=("${words[@]:1}") - requestComp="${words[0]} %[2]s ${args[*]}" - - lastParam=${words[$((${#words[@]}-1))]} - lastChar=${lastParam:$((${#lastParam}-1)):1} - __%[1]s_debug "lastParam ${lastParam}, lastChar ${lastChar}" - - if [[ -z ${cur} && ${lastChar} != = ]]; then - # If the last parameter is complete (there is a space following it) - # We add an extra empty parameter so we can indicate this to the go method. - __%[1]s_debug "Adding extra empty parameter" - requestComp="${requestComp} ''" - fi - - # When completing a flag with an = (e.g., %[1]s -n=) - # bash focuses on the part after the =, so we need to remove - # the flag part from $cur - if [[ ${cur} == -*=* ]]; then - cur="${cur#*=}" - fi - - __%[1]s_debug "Calling ${requestComp}" - # Use eval to handle any environment variables and such - out=$(eval "${requestComp}" 2>/dev/null) - - # Extract the directive integer at the very end of the output following a colon (:) - directive=${out##*:} - # Remove the directive - out=${out%%:*} - if [[ ${directive} == "${out}" ]]; then - # There is not directive specified - directive=0 - fi - __%[1]s_debug "The completion directive is: ${directive}" - __%[1]s_debug "The completions are: ${out}" -} - -__%[1]s_process_completion_results() { - local shellCompDirectiveError=%[3]d - local shellCompDirectiveNoSpace=%[4]d - local shellCompDirectiveNoFileComp=%[5]d - local shellCompDirectiveFilterFileExt=%[6]d - local shellCompDirectiveFilterDirs=%[7]d - local shellCompDirectiveKeepOrder=%[8]d - - if (((directive & shellCompDirectiveError) != 0)); then - # Error code. No completion. - __%[1]s_debug "Received error from custom completion go code" - return - else - if (((directive & shellCompDirectiveNoSpace) != 0)); then - if [[ $(type -t compopt) == builtin ]]; then - __%[1]s_debug "Activating no space" - compopt -o nospace - else - __%[1]s_debug "No space directive not supported in this version of bash" - fi - fi - if (((directive & shellCompDirectiveKeepOrder) != 0)); then - if [[ $(type -t compopt) == builtin ]]; then - # no sort isn't supported for bash less than < 4.4 - if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then - __%[1]s_debug "No sort directive not supported in this version of bash" - else - __%[1]s_debug "Activating keep order" - compopt -o nosort - fi - else - __%[1]s_debug "No sort directive not supported in this version of bash" - fi - fi - if (((directive & shellCompDirectiveNoFileComp) != 0)); then - if [[ $(type -t compopt) == builtin ]]; then - __%[1]s_debug "Activating no file completion" - compopt +o default - else - __%[1]s_debug "No file completion directive not supported in this version of bash" - fi - fi - fi - - # Separate activeHelp from normal completions - local completions=() - local activeHelp=() - __%[1]s_extract_activeHelp - - if (((directive & shellCompDirectiveFilterFileExt) != 0)); then - # File extension filtering - local fullFilter filter filteringCmd - - # Do not use quotes around the $completions variable or else newline - # characters will be kept. - for filter in ${completions[*]}; do - fullFilter+="$filter|" - done - - filteringCmd="_filedir $fullFilter" - __%[1]s_debug "File filtering command: $filteringCmd" - $filteringCmd - elif (((directive & shellCompDirectiveFilterDirs) != 0)); then - # File completion for directories only - - local subdir - subdir=${completions[0]} - if [[ -n $subdir ]]; then - __%[1]s_debug "Listing directories in $subdir" - pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return - else - __%[1]s_debug "Listing directories in ." - _filedir -d - fi - else - __%[1]s_handle_completion_types - fi - - __%[1]s_handle_special_char "$cur" : - __%[1]s_handle_special_char "$cur" = - - # Print the activeHelp statements before we finish - if ((${#activeHelp[*]} != 0)); then - printf "\n"; - printf "%%s\n" "${activeHelp[@]}" - printf "\n" - - # The prompt format is only available from bash 4.4. - # We test if it is available before using it. - if (x=${PS1@P}) 2> /dev/null; then - printf "%%s" "${PS1@P}${COMP_LINE[@]}" - else - # Can't print the prompt. Just print the - # text the user had typed, it is workable enough. - printf "%%s" "${COMP_LINE[@]}" - fi - fi -} - -# Separate activeHelp lines from real completions. -# Fills the $activeHelp and $completions arrays. -__%[1]s_extract_activeHelp() { - local activeHelpMarker="%[9]s" - local endIndex=${#activeHelpMarker} - - while IFS='' read -r comp; do - if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then - comp=${comp:endIndex} - __%[1]s_debug "ActiveHelp found: $comp" - if [[ -n $comp ]]; then - activeHelp+=("$comp") - fi - else - # Not an activeHelp line but a normal completion - completions+=("$comp") - fi - done <<<"${out}" -} - -__%[1]s_handle_completion_types() { - __%[1]s_debug "__%[1]s_handle_completion_types: COMP_TYPE is $COMP_TYPE" - - case $COMP_TYPE in - 37|42) - # Type: menu-complete/menu-complete-backward and insert-completions - # If the user requested inserting one completion at a time, or all - # completions at once on the command-line we must remove the descriptions. - # https://github.com/spf13/cobra/issues/1508 - local tab=$'\t' comp - while IFS='' read -r comp; do - [[ -z $comp ]] && continue - # Strip any description - comp=${comp%%%%$tab*} - # Only consider the completions that match - if [[ $comp == "$cur"* ]]; then - COMPREPLY+=("$comp") - fi - done < <(printf "%%s\n" "${completions[@]}") - ;; - - *) - # Type: complete (normal completion) - __%[1]s_handle_standard_completion_case - ;; - esac -} - -__%[1]s_handle_standard_completion_case() { - local tab=$'\t' comp - - # Short circuit to optimize if we don't have descriptions - if [[ "${completions[*]}" != *$tab* ]]; then - IFS=$'\n' read -ra COMPREPLY -d '' < <(compgen -W "${completions[*]}" -- "$cur") - return 0 - fi - - local longest=0 - local compline - # Look for the longest completion so that we can format things nicely - while IFS='' read -r compline; do - [[ -z $compline ]] && continue - # Strip any description before checking the length - comp=${compline%%%%$tab*} - # Only consider the completions that match - [[ $comp == "$cur"* ]] || continue - COMPREPLY+=("$compline") - if ((${#comp}>longest)); then - longest=${#comp} - fi - done < <(printf "%%s\n" "${completions[@]}") - - # If there is a single completion left, remove the description text - if ((${#COMPREPLY[*]} == 1)); then - __%[1]s_debug "COMPREPLY[0]: ${COMPREPLY[0]}" - comp="${COMPREPLY[0]%%%%$tab*}" - __%[1]s_debug "Removed description from single completion, which is now: ${comp}" - COMPREPLY[0]=$comp - else # Format the descriptions - __%[1]s_format_comp_descriptions $longest - fi -} - -__%[1]s_handle_special_char() -{ - local comp="$1" - local char=$2 - if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then - local word=${comp%%"${comp##*${char}}"} - local idx=${#COMPREPLY[*]} - while ((--idx >= 0)); do - COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} - done - fi -} - -__%[1]s_format_comp_descriptions() -{ - local tab=$'\t' - local comp desc maxdesclength - local longest=$1 - - local i ci - for ci in ${!COMPREPLY[*]}; do - comp=${COMPREPLY[ci]} - # Properly format the description string which follows a tab character if there is one - if [[ "$comp" == *$tab* ]]; then - __%[1]s_debug "Original comp: $comp" - desc=${comp#*$tab} - comp=${comp%%%%$tab*} - - # $COLUMNS stores the current shell width. - # Remove an extra 4 because we add 2 spaces and 2 parentheses. - maxdesclength=$(( COLUMNS - longest - 4 )) - - # Make sure we can fit a description of at least 8 characters - # if we are to align the descriptions. - if ((maxdesclength > 8)); then - # Add the proper number of spaces to align the descriptions - for ((i = ${#comp} ; i < longest ; i++)); do - comp+=" " - done - else - # Don't pad the descriptions so we can fit more text after the completion - maxdesclength=$(( COLUMNS - ${#comp} - 4 )) - fi - - # If there is enough space for any description text, - # truncate the descriptions that are too long for the shell width - if ((maxdesclength > 0)); then - if ((${#desc} > maxdesclength)); then - desc=${desc:0:$(( maxdesclength - 1 ))} - desc+="…" - fi - comp+=" ($desc)" - fi - COMPREPLY[ci]=$comp - __%[1]s_debug "Final comp: $comp" - fi - done -} - -__start_%[1]s() -{ - local cur prev words cword split - - COMPREPLY=() - - # Call _init_completion from the bash-completion package - # to prepare the arguments properly - if declare -F _init_completion >/dev/null 2>&1; then - _init_completion -n =: || return - else - __%[1]s_init_completion -n =: || return - fi - - __%[1]s_debug - __%[1]s_debug "========= starting completion logic ==========" - __%[1]s_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" - - # The user could have moved the cursor backwards on the command-line. - # We need to trigger completion from the $cword location, so we need - # to truncate the command-line ($words) up to the $cword location. - words=("${words[@]:0:$cword+1}") - __%[1]s_debug "Truncated words[*]: ${words[*]}," - - local out directive - __%[1]s_get_completion_results - __%[1]s_process_completion_results -} - -if [[ $(type -t compopt) = "builtin" ]]; then - complete -o default -F __start_%[1]s %[1]s -else - complete -o default -o nospace -F __start_%[1]s %[1]s -fi - -# ex: ts=4 sw=4 et filetype=sh -`, name, compCmd, - ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp, - ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, - activeHelpMarker)) -} - -// GenBashCompletionFileV2 generates Bash completion version 2. -func (c *Command) GenBashCompletionFileV2(filename string, includeDesc bool) error { - outFile, err := os.Create(filename) - if err != nil { - return err - } - defer outFile.Close() - - return c.GenBashCompletionV2(outFile, includeDesc) -} - -// GenBashCompletionV2 generates Bash completion file version 2 -// and writes it to the passed writer. -func (c *Command) GenBashCompletionV2(w io.Writer, includeDesc bool) error { - return c.genBashCompletion(w, includeDesc) -} diff --git a/backend/vendor/github.com/spf13/cobra/cobra.go b/backend/vendor/github.com/spf13/cobra/cobra.go deleted file mode 100644 index b07b44a0..00000000 --- a/backend/vendor/github.com/spf13/cobra/cobra.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Commands similar to git, go tools and other modern CLI tools -// inspired by go, go-Commander, gh and subcommand - -package cobra - -import ( - "fmt" - "io" - "os" - "reflect" - "strconv" - "strings" - "text/template" - "time" - "unicode" -) - -var templateFuncs = template.FuncMap{ - "trim": strings.TrimSpace, - "trimRightSpace": trimRightSpace, - "trimTrailingWhitespaces": trimRightSpace, - "appendIfNotPresent": appendIfNotPresent, - "rpad": rpad, - "gt": Gt, - "eq": Eq, -} - -var initializers []func() -var finalizers []func() - -const ( - defaultPrefixMatching = false - defaultCommandSorting = true - defaultCaseInsensitive = false -) - -// EnablePrefixMatching allows to set automatic prefix matching. Automatic prefix matching can be a dangerous thing -// to automatically enable in CLI tools. -// Set this to true to enable it. -var EnablePrefixMatching = defaultPrefixMatching - -// EnableCommandSorting controls sorting of the slice of commands, which is turned on by default. -// To disable sorting, set it to false. -var EnableCommandSorting = defaultCommandSorting - -// EnableCaseInsensitive allows case-insensitive commands names. (case sensitive by default) -var EnableCaseInsensitive = defaultCaseInsensitive - -// MousetrapHelpText enables an information splash screen on Windows -// if the CLI is started from explorer.exe. -// To disable the mousetrap, just set this variable to blank string (""). -// Works only on Microsoft Windows. -var MousetrapHelpText = `This is a command line tool. - -You need to open cmd.exe and run it from there. -` - -// MousetrapDisplayDuration controls how long the MousetrapHelpText message is displayed on Windows -// if the CLI is started from explorer.exe. Set to 0 to wait for the return key to be pressed. -// To disable the mousetrap, just set MousetrapHelpText to blank string (""). -// Works only on Microsoft Windows. -var MousetrapDisplayDuration = 5 * time.Second - -// AddTemplateFunc adds a template function that's available to Usage and Help -// template generation. -func AddTemplateFunc(name string, tmplFunc interface{}) { - templateFuncs[name] = tmplFunc -} - -// AddTemplateFuncs adds multiple template functions that are available to Usage and -// Help template generation. -func AddTemplateFuncs(tmplFuncs template.FuncMap) { - for k, v := range tmplFuncs { - templateFuncs[k] = v - } -} - -// OnInitialize sets the passed functions to be run when each command's -// Execute method is called. -func OnInitialize(y ...func()) { - initializers = append(initializers, y...) -} - -// OnFinalize sets the passed functions to be run when each command's -// Execute method is terminated. -func OnFinalize(y ...func()) { - finalizers = append(finalizers, y...) -} - -// FIXME Gt is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra. - -// Gt takes two types and checks whether the first type is greater than the second. In case of types Arrays, Chans, -// Maps and Slices, Gt will compare their lengths. Ints are compared directly while strings are first parsed as -// ints and then compared. -func Gt(a interface{}, b interface{}) bool { - var left, right int64 - av := reflect.ValueOf(a) - - switch av.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice: - left = int64(av.Len()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - left = av.Int() - case reflect.String: - left, _ = strconv.ParseInt(av.String(), 10, 64) - } - - bv := reflect.ValueOf(b) - - switch bv.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice: - right = int64(bv.Len()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - right = bv.Int() - case reflect.String: - right, _ = strconv.ParseInt(bv.String(), 10, 64) - } - - return left > right -} - -// FIXME Eq is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra. - -// Eq takes two types and checks whether they are equal. Supported types are int and string. Unsupported types will panic. -func Eq(a interface{}, b interface{}) bool { - av := reflect.ValueOf(a) - bv := reflect.ValueOf(b) - - switch av.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice: - panic("Eq called on unsupported type") - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return av.Int() == bv.Int() - case reflect.String: - return av.String() == bv.String() - } - return false -} - -func trimRightSpace(s string) string { - return strings.TrimRightFunc(s, unicode.IsSpace) -} - -// FIXME appendIfNotPresent is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra. - -// appendIfNotPresent will append stringToAppend to the end of s, but only if it's not yet present in s. -func appendIfNotPresent(s, stringToAppend string) string { - if strings.Contains(s, stringToAppend) { - return s - } - return s + " " + stringToAppend -} - -// rpad adds padding to the right of a string. -func rpad(s string, padding int) string { - formattedString := fmt.Sprintf("%%-%ds", padding) - return fmt.Sprintf(formattedString, s) -} - -// tmpl executes the given template text on data, writing the result to w. -func tmpl(w io.Writer, text string, data interface{}) error { - t := template.New("top") - t.Funcs(templateFuncs) - template.Must(t.Parse(text)) - return t.Execute(w, data) -} - -// ld compares two strings and returns the levenshtein distance between them. -func ld(s, t string, ignoreCase bool) int { - if ignoreCase { - s = strings.ToLower(s) - t = strings.ToLower(t) - } - d := make([][]int, len(s)+1) - for i := range d { - d[i] = make([]int, len(t)+1) - } - for i := range d { - d[i][0] = i - } - for j := range d[0] { - d[0][j] = j - } - for j := 1; j <= len(t); j++ { - for i := 1; i <= len(s); i++ { - if s[i-1] == t[j-1] { - d[i][j] = d[i-1][j-1] - } else { - min := d[i-1][j] - if d[i][j-1] < min { - min = d[i][j-1] - } - if d[i-1][j-1] < min { - min = d[i-1][j-1] - } - d[i][j] = min + 1 - } - } - - } - return d[len(s)][len(t)] -} - -func stringInSlice(a string, list []string) bool { - for _, b := range list { - if b == a { - return true - } - } - return false -} - -// CheckErr prints the msg with the prefix 'Error:' and exits with error code 1. If the msg is nil, it does nothing. -func CheckErr(msg interface{}) { - if msg != nil { - fmt.Fprintln(os.Stderr, "Error:", msg) - os.Exit(1) - } -} - -// WriteStringAndCheck writes a string into a buffer, and checks if the error is not nil. -func WriteStringAndCheck(b io.StringWriter, s string) { - _, err := b.WriteString(s) - CheckErr(err) -} diff --git a/backend/vendor/github.com/spf13/cobra/command.go b/backend/vendor/github.com/spf13/cobra/command.go deleted file mode 100644 index 01f7c6f1..00000000 --- a/backend/vendor/github.com/spf13/cobra/command.go +++ /dev/null @@ -1,1834 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces. -// In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code. -package cobra - -import ( - "bytes" - "context" - "errors" - "fmt" - "io" - "os" - "path/filepath" - "sort" - "strings" - - flag "github.com/spf13/pflag" -) - -const FlagSetByCobraAnnotation = "cobra_annotation_flag_set_by_cobra" - -// FParseErrWhitelist configures Flag parse errors to be ignored -type FParseErrWhitelist flag.ParseErrorsWhitelist - -// Group Structure to manage groups for commands -type Group struct { - ID string - Title string -} - -// Command is just that, a command for your application. -// E.g. 'go run ...' - 'run' is the command. Cobra requires -// you to define the usage and description as part of your command -// definition to ensure usability. -type Command struct { - // Use is the one-line usage message. - // Recommended syntax is as follows: - // [ ] identifies an optional argument. Arguments that are not enclosed in brackets are required. - // ... indicates that you can specify multiple values for the previous argument. - // | indicates mutually exclusive information. You can use the argument to the left of the separator or the - // argument to the right of the separator. You cannot use both arguments in a single use of the command. - // { } delimits a set of mutually exclusive arguments when one of the arguments is required. If the arguments are - // optional, they are enclosed in brackets ([ ]). - // Example: add [-F file | -D dir]... [-f format] profile - Use string - - // Aliases is an array of aliases that can be used instead of the first word in Use. - Aliases []string - - // SuggestFor is an array of command names for which this command will be suggested - - // similar to aliases but only suggests. - SuggestFor []string - - // Short is the short description shown in the 'help' output. - Short string - - // The group id under which this subcommand is grouped in the 'help' output of its parent. - GroupID string - - // Long is the long message shown in the 'help ' output. - Long string - - // Example is examples of how to use the command. - Example string - - // ValidArgs is list of all valid non-flag arguments that are accepted in shell completions - ValidArgs []string - // ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion. - // It is a dynamic version of using ValidArgs. - // Only one of ValidArgs and ValidArgsFunction can be used for a command. - ValidArgsFunction func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) - - // Expected arguments - Args PositionalArgs - - // ArgAliases is List of aliases for ValidArgs. - // These are not suggested to the user in the shell completion, - // but accepted if entered manually. - ArgAliases []string - - // BashCompletionFunction is custom bash functions used by the legacy bash autocompletion generator. - // For portability with other shells, it is recommended to instead use ValidArgsFunction - BashCompletionFunction string - - // Deprecated defines, if this command is deprecated and should print this string when used. - Deprecated string - - // Annotations are key/value pairs that can be used by applications to identify or - // group commands. - Annotations map[string]string - - // Version defines the version for this command. If this value is non-empty and the command does not - // define a "version" flag, a "version" boolean flag will be added to the command and, if specified, - // will print content of the "Version" variable. A shorthand "v" flag will also be added if the - // command does not define one. - Version string - - // The *Run functions are executed in the following order: - // * PersistentPreRun() - // * PreRun() - // * Run() - // * PostRun() - // * PersistentPostRun() - // All functions get the same args, the arguments after the command name. - // - // PersistentPreRun: children of this command will inherit and execute. - PersistentPreRun func(cmd *Command, args []string) - // PersistentPreRunE: PersistentPreRun but returns an error. - PersistentPreRunE func(cmd *Command, args []string) error - // PreRun: children of this command will not inherit. - PreRun func(cmd *Command, args []string) - // PreRunE: PreRun but returns an error. - PreRunE func(cmd *Command, args []string) error - // Run: Typically the actual work function. Most commands will only implement this. - Run func(cmd *Command, args []string) - // RunE: Run but returns an error. - RunE func(cmd *Command, args []string) error - // PostRun: run after the Run command. - PostRun func(cmd *Command, args []string) - // PostRunE: PostRun but returns an error. - PostRunE func(cmd *Command, args []string) error - // PersistentPostRun: children of this command will inherit and execute after PostRun. - PersistentPostRun func(cmd *Command, args []string) - // PersistentPostRunE: PersistentPostRun but returns an error. - PersistentPostRunE func(cmd *Command, args []string) error - - // groups for subcommands - commandgroups []*Group - - // args is actual args parsed from flags. - args []string - // flagErrorBuf contains all error messages from pflag. - flagErrorBuf *bytes.Buffer - // flags is full set of flags. - flags *flag.FlagSet - // pflags contains persistent flags. - pflags *flag.FlagSet - // lflags contains local flags. - lflags *flag.FlagSet - // iflags contains inherited flags. - iflags *flag.FlagSet - // parentsPflags is all persistent flags of cmd's parents. - parentsPflags *flag.FlagSet - // globNormFunc is the global normalization function - // that we can use on every pflag set and children commands - globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName - - // usageFunc is usage func defined by user. - usageFunc func(*Command) error - // usageTemplate is usage template defined by user. - usageTemplate string - // flagErrorFunc is func defined by user and it's called when the parsing of - // flags returns an error. - flagErrorFunc func(*Command, error) error - // helpTemplate is help template defined by user. - helpTemplate string - // helpFunc is help func defined by user. - helpFunc func(*Command, []string) - // helpCommand is command with usage 'help'. If it's not defined by user, - // cobra uses default help command. - helpCommand *Command - // helpCommandGroupID is the group id for the helpCommand - helpCommandGroupID string - - // completionCommandGroupID is the group id for the completion command - completionCommandGroupID string - - // versionTemplate is the version template defined by user. - versionTemplate string - - // inReader is a reader defined by the user that replaces stdin - inReader io.Reader - // outWriter is a writer defined by the user that replaces stdout - outWriter io.Writer - // errWriter is a writer defined by the user that replaces stderr - errWriter io.Writer - - // FParseErrWhitelist flag parse errors to be ignored - FParseErrWhitelist FParseErrWhitelist - - // CompletionOptions is a set of options to control the handling of shell completion - CompletionOptions CompletionOptions - - // commandsAreSorted defines, if command slice are sorted or not. - commandsAreSorted bool - // commandCalledAs is the name or alias value used to call this command. - commandCalledAs struct { - name string - called bool - } - - ctx context.Context - - // commands is the list of commands supported by this program. - commands []*Command - // parent is a parent command for this command. - parent *Command - // Max lengths of commands' string lengths for use in padding. - commandsMaxUseLen int - commandsMaxCommandPathLen int - commandsMaxNameLen int - - // TraverseChildren parses flags on all parents before executing child command. - TraverseChildren bool - - // Hidden defines, if this command is hidden and should NOT show up in the list of available commands. - Hidden bool - - // SilenceErrors is an option to quiet errors down stream. - SilenceErrors bool - - // SilenceUsage is an option to silence usage when an error occurs. - SilenceUsage bool - - // DisableFlagParsing disables the flag parsing. - // If this is true all flags will be passed to the command as arguments. - DisableFlagParsing bool - - // DisableAutoGenTag defines, if gen tag ("Auto generated by spf13/cobra...") - // will be printed by generating docs for this command. - DisableAutoGenTag bool - - // DisableFlagsInUseLine will disable the addition of [flags] to the usage - // line of a command when printing help or generating docs - DisableFlagsInUseLine bool - - // DisableSuggestions disables the suggestions based on Levenshtein distance - // that go along with 'unknown command' messages. - DisableSuggestions bool - - // SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions. - // Must be > 0. - SuggestionsMinimumDistance int -} - -// Context returns underlying command context. If command was executed -// with ExecuteContext or the context was set with SetContext, the -// previously set context will be returned. Otherwise, nil is returned. -// -// Notice that a call to Execute and ExecuteC will replace a nil context of -// a command with a context.Background, so a background context will be -// returned by Context after one of these functions has been called. -func (c *Command) Context() context.Context { - return c.ctx -} - -// SetContext sets context for the command. This context will be overwritten by -// Command.ExecuteContext or Command.ExecuteContextC. -func (c *Command) SetContext(ctx context.Context) { - c.ctx = ctx -} - -// SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden -// particularly useful when testing. -func (c *Command) SetArgs(a []string) { - c.args = a -} - -// SetOutput sets the destination for usage and error messages. -// If output is nil, os.Stderr is used. -// Deprecated: Use SetOut and/or SetErr instead -func (c *Command) SetOutput(output io.Writer) { - c.outWriter = output - c.errWriter = output -} - -// SetOut sets the destination for usage messages. -// If newOut is nil, os.Stdout is used. -func (c *Command) SetOut(newOut io.Writer) { - c.outWriter = newOut -} - -// SetErr sets the destination for error messages. -// If newErr is nil, os.Stderr is used. -func (c *Command) SetErr(newErr io.Writer) { - c.errWriter = newErr -} - -// SetIn sets the source for input data -// If newIn is nil, os.Stdin is used. -func (c *Command) SetIn(newIn io.Reader) { - c.inReader = newIn -} - -// SetUsageFunc sets usage function. Usage can be defined by application. -func (c *Command) SetUsageFunc(f func(*Command) error) { - c.usageFunc = f -} - -// SetUsageTemplate sets usage template. Can be defined by Application. -func (c *Command) SetUsageTemplate(s string) { - c.usageTemplate = s -} - -// SetFlagErrorFunc sets a function to generate an error when flag parsing -// fails. -func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) { - c.flagErrorFunc = f -} - -// SetHelpFunc sets help function. Can be defined by Application. -func (c *Command) SetHelpFunc(f func(*Command, []string)) { - c.helpFunc = f -} - -// SetHelpCommand sets help command. -func (c *Command) SetHelpCommand(cmd *Command) { - c.helpCommand = cmd -} - -// SetHelpCommandGroupID sets the group id of the help command. -func (c *Command) SetHelpCommandGroupID(groupID string) { - if c.helpCommand != nil { - c.helpCommand.GroupID = groupID - } - // helpCommandGroupID is used if no helpCommand is defined by the user - c.helpCommandGroupID = groupID -} - -// SetCompletionCommandGroupID sets the group id of the completion command. -func (c *Command) SetCompletionCommandGroupID(groupID string) { - // completionCommandGroupID is used if no completion command is defined by the user - c.Root().completionCommandGroupID = groupID -} - -// SetHelpTemplate sets help template to be used. Application can use it to set custom template. -func (c *Command) SetHelpTemplate(s string) { - c.helpTemplate = s -} - -// SetVersionTemplate sets version template to be used. Application can use it to set custom template. -func (c *Command) SetVersionTemplate(s string) { - c.versionTemplate = s -} - -// SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands. -// The user should not have a cyclic dependency on commands. -func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) { - c.Flags().SetNormalizeFunc(n) - c.PersistentFlags().SetNormalizeFunc(n) - c.globNormFunc = n - - for _, command := range c.commands { - command.SetGlobalNormalizationFunc(n) - } -} - -// OutOrStdout returns output to stdout. -func (c *Command) OutOrStdout() io.Writer { - return c.getOut(os.Stdout) -} - -// OutOrStderr returns output to stderr -func (c *Command) OutOrStderr() io.Writer { - return c.getOut(os.Stderr) -} - -// ErrOrStderr returns output to stderr -func (c *Command) ErrOrStderr() io.Writer { - return c.getErr(os.Stderr) -} - -// InOrStdin returns input to stdin -func (c *Command) InOrStdin() io.Reader { - return c.getIn(os.Stdin) -} - -func (c *Command) getOut(def io.Writer) io.Writer { - if c.outWriter != nil { - return c.outWriter - } - if c.HasParent() { - return c.parent.getOut(def) - } - return def -} - -func (c *Command) getErr(def io.Writer) io.Writer { - if c.errWriter != nil { - return c.errWriter - } - if c.HasParent() { - return c.parent.getErr(def) - } - return def -} - -func (c *Command) getIn(def io.Reader) io.Reader { - if c.inReader != nil { - return c.inReader - } - if c.HasParent() { - return c.parent.getIn(def) - } - return def -} - -// UsageFunc returns either the function set by SetUsageFunc for this command -// or a parent, or it returns a default usage function. -func (c *Command) UsageFunc() (f func(*Command) error) { - if c.usageFunc != nil { - return c.usageFunc - } - if c.HasParent() { - return c.Parent().UsageFunc() - } - return func(c *Command) error { - c.mergePersistentFlags() - err := tmpl(c.OutOrStderr(), c.UsageTemplate(), c) - if err != nil { - c.PrintErrln(err) - } - return err - } -} - -// Usage puts out the usage for the command. -// Used when a user provides invalid input. -// Can be defined by user by overriding UsageFunc. -func (c *Command) Usage() error { - return c.UsageFunc()(c) -} - -// HelpFunc returns either the function set by SetHelpFunc for this command -// or a parent, or it returns a function with default help behavior. -func (c *Command) HelpFunc() func(*Command, []string) { - if c.helpFunc != nil { - return c.helpFunc - } - if c.HasParent() { - return c.Parent().HelpFunc() - } - return func(c *Command, a []string) { - c.mergePersistentFlags() - // The help should be sent to stdout - // See https://github.com/spf13/cobra/issues/1002 - err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c) - if err != nil { - c.PrintErrln(err) - } - } -} - -// Help puts out the help for the command. -// Used when a user calls help [command]. -// Can be defined by user by overriding HelpFunc. -func (c *Command) Help() error { - c.HelpFunc()(c, []string{}) - return nil -} - -// UsageString returns usage string. -func (c *Command) UsageString() string { - // Storing normal writers - tmpOutput := c.outWriter - tmpErr := c.errWriter - - bb := new(bytes.Buffer) - c.outWriter = bb - c.errWriter = bb - - CheckErr(c.Usage()) - - // Setting things back to normal - c.outWriter = tmpOutput - c.errWriter = tmpErr - - return bb.String() -} - -// FlagErrorFunc returns either the function set by SetFlagErrorFunc for this -// command or a parent, or it returns a function which returns the original -// error. -func (c *Command) FlagErrorFunc() (f func(*Command, error) error) { - if c.flagErrorFunc != nil { - return c.flagErrorFunc - } - - if c.HasParent() { - return c.parent.FlagErrorFunc() - } - return func(c *Command, err error) error { - return err - } -} - -var minUsagePadding = 25 - -// UsagePadding return padding for the usage. -func (c *Command) UsagePadding() int { - if c.parent == nil || minUsagePadding > c.parent.commandsMaxUseLen { - return minUsagePadding - } - return c.parent.commandsMaxUseLen -} - -var minCommandPathPadding = 11 - -// CommandPathPadding return padding for the command path. -func (c *Command) CommandPathPadding() int { - if c.parent == nil || minCommandPathPadding > c.parent.commandsMaxCommandPathLen { - return minCommandPathPadding - } - return c.parent.commandsMaxCommandPathLen -} - -var minNamePadding = 11 - -// NamePadding returns padding for the name. -func (c *Command) NamePadding() int { - if c.parent == nil || minNamePadding > c.parent.commandsMaxNameLen { - return minNamePadding - } - return c.parent.commandsMaxNameLen -} - -// UsageTemplate returns usage template for the command. -func (c *Command) UsageTemplate() string { - if c.usageTemplate != "" { - return c.usageTemplate - } - - if c.HasParent() { - return c.parent.UsageTemplate() - } - return `Usage:{{if .Runnable}} - {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}} - {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}} - -Aliases: - {{.NameAndAliases}}{{end}}{{if .HasExample}} - -Examples: -{{.Example}}{{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}} - -Available Commands:{{range $cmds}}{{if (or .IsAvailableCommand (eq .Name "help"))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{else}}{{range $group := .Groups}} - -{{.Title}}{{range $cmds}}{{if (and (eq .GroupID $group.ID) (or .IsAvailableCommand (eq .Name "help")))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if not .AllChildCommandsHaveGroup}} - -Additional Commands:{{range $cmds}}{{if (and (eq .GroupID "") (or .IsAvailableCommand (eq .Name "help")))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}} - -Flags: -{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}} - -Global Flags: -{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}} - -Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} - {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}} - -Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}} -` -} - -// HelpTemplate return help template for the command. -func (c *Command) HelpTemplate() string { - if c.helpTemplate != "" { - return c.helpTemplate - } - - if c.HasParent() { - return c.parent.HelpTemplate() - } - return `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}} - -{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}` -} - -// VersionTemplate return version template for the command. -func (c *Command) VersionTemplate() string { - if c.versionTemplate != "" { - return c.versionTemplate - } - - if c.HasParent() { - return c.parent.VersionTemplate() - } - return `{{with .Name}}{{printf "%s " .}}{{end}}{{printf "version %s" .Version}} -` -} - -func hasNoOptDefVal(name string, fs *flag.FlagSet) bool { - flag := fs.Lookup(name) - if flag == nil { - return false - } - return flag.NoOptDefVal != "" -} - -func shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool { - if len(name) == 0 { - return false - } - - flag := fs.ShorthandLookup(name[:1]) - if flag == nil { - return false - } - return flag.NoOptDefVal != "" -} - -func stripFlags(args []string, c *Command) []string { - if len(args) == 0 { - return args - } - c.mergePersistentFlags() - - commands := []string{} - flags := c.Flags() - -Loop: - for len(args) > 0 { - s := args[0] - args = args[1:] - switch { - case s == "--": - // "--" terminates the flags - break Loop - case strings.HasPrefix(s, "--") && !strings.Contains(s, "=") && !hasNoOptDefVal(s[2:], flags): - // If '--flag arg' then - // delete arg from args. - fallthrough // (do the same as below) - case strings.HasPrefix(s, "-") && !strings.Contains(s, "=") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags): - // If '-f arg' then - // delete 'arg' from args or break the loop if len(args) <= 1. - if len(args) <= 1 { - break Loop - } else { - args = args[1:] - continue - } - case s != "" && !strings.HasPrefix(s, "-"): - commands = append(commands, s) - } - } - - return commands -} - -// argsMinusFirstX removes only the first x from args. Otherwise, commands that look like -// openshift admin policy add-role-to-user admin my-user, lose the admin argument (arg[4]). -// Special care needs to be taken not to remove a flag value. -func (c *Command) argsMinusFirstX(args []string, x string) []string { - if len(args) == 0 { - return args - } - c.mergePersistentFlags() - flags := c.Flags() - -Loop: - for pos := 0; pos < len(args); pos++ { - s := args[pos] - switch { - case s == "--": - // -- means we have reached the end of the parseable args. Break out of the loop now. - break Loop - case strings.HasPrefix(s, "--") && !strings.Contains(s, "=") && !hasNoOptDefVal(s[2:], flags): - fallthrough - case strings.HasPrefix(s, "-") && !strings.Contains(s, "=") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags): - // This is a flag without a default value, and an equal sign is not used. Increment pos in order to skip - // over the next arg, because that is the value of this flag. - pos++ - continue - case !strings.HasPrefix(s, "-"): - // This is not a flag or a flag value. Check to see if it matches what we're looking for, and if so, - // return the args, excluding the one at this position. - if s == x { - ret := []string{} - ret = append(ret, args[:pos]...) - ret = append(ret, args[pos+1:]...) - return ret - } - } - } - return args -} - -func isFlagArg(arg string) bool { - return ((len(arg) >= 3 && arg[0:2] == "--") || - (len(arg) >= 2 && arg[0] == '-' && arg[1] != '-')) -} - -// Find the target command given the args and command tree -// Meant to be run on the highest node. Only searches down. -func (c *Command) Find(args []string) (*Command, []string, error) { - var innerfind func(*Command, []string) (*Command, []string) - - innerfind = func(c *Command, innerArgs []string) (*Command, []string) { - argsWOflags := stripFlags(innerArgs, c) - if len(argsWOflags) == 0 { - return c, innerArgs - } - nextSubCmd := argsWOflags[0] - - cmd := c.findNext(nextSubCmd) - if cmd != nil { - return innerfind(cmd, c.argsMinusFirstX(innerArgs, nextSubCmd)) - } - return c, innerArgs - } - - commandFound, a := innerfind(c, args) - if commandFound.Args == nil { - return commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound)) - } - return commandFound, a, nil -} - -func (c *Command) findSuggestions(arg string) string { - if c.DisableSuggestions { - return "" - } - if c.SuggestionsMinimumDistance <= 0 { - c.SuggestionsMinimumDistance = 2 - } - suggestionsString := "" - if suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 { - suggestionsString += "\n\nDid you mean this?\n" - for _, s := range suggestions { - suggestionsString += fmt.Sprintf("\t%v\n", s) - } - } - return suggestionsString -} - -func (c *Command) findNext(next string) *Command { - matches := make([]*Command, 0) - for _, cmd := range c.commands { - if commandNameMatches(cmd.Name(), next) || cmd.HasAlias(next) { - cmd.commandCalledAs.name = next - return cmd - } - if EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) { - matches = append(matches, cmd) - } - } - - if len(matches) == 1 { - return matches[0] - } - - return nil -} - -// Traverse the command tree to find the command, and parse args for -// each parent. -func (c *Command) Traverse(args []string) (*Command, []string, error) { - flags := []string{} - inFlag := false - - for i, arg := range args { - switch { - // A long flag with a space separated value - case strings.HasPrefix(arg, "--") && !strings.Contains(arg, "="): - // TODO: this isn't quite right, we should really check ahead for 'true' or 'false' - inFlag = !hasNoOptDefVal(arg[2:], c.Flags()) - flags = append(flags, arg) - continue - // A short flag with a space separated value - case strings.HasPrefix(arg, "-") && !strings.Contains(arg, "=") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()): - inFlag = true - flags = append(flags, arg) - continue - // The value for a flag - case inFlag: - inFlag = false - flags = append(flags, arg) - continue - // A flag without a value, or with an `=` separated value - case isFlagArg(arg): - flags = append(flags, arg) - continue - } - - cmd := c.findNext(arg) - if cmd == nil { - return c, args, nil - } - - if err := c.ParseFlags(flags); err != nil { - return nil, args, err - } - return cmd.Traverse(args[i+1:]) - } - return c, args, nil -} - -// SuggestionsFor provides suggestions for the typedName. -func (c *Command) SuggestionsFor(typedName string) []string { - suggestions := []string{} - for _, cmd := range c.commands { - if cmd.IsAvailableCommand() { - levenshteinDistance := ld(typedName, cmd.Name(), true) - suggestByLevenshtein := levenshteinDistance <= c.SuggestionsMinimumDistance - suggestByPrefix := strings.HasPrefix(strings.ToLower(cmd.Name()), strings.ToLower(typedName)) - if suggestByLevenshtein || suggestByPrefix { - suggestions = append(suggestions, cmd.Name()) - } - for _, explicitSuggestion := range cmd.SuggestFor { - if strings.EqualFold(typedName, explicitSuggestion) { - suggestions = append(suggestions, cmd.Name()) - } - } - } - } - return suggestions -} - -// VisitParents visits all parents of the command and invokes fn on each parent. -func (c *Command) VisitParents(fn func(*Command)) { - if c.HasParent() { - fn(c.Parent()) - c.Parent().VisitParents(fn) - } -} - -// Root finds root command. -func (c *Command) Root() *Command { - if c.HasParent() { - return c.Parent().Root() - } - return c -} - -// ArgsLenAtDash will return the length of c.Flags().Args at the moment -// when a -- was found during args parsing. -func (c *Command) ArgsLenAtDash() int { - return c.Flags().ArgsLenAtDash() -} - -func (c *Command) execute(a []string) (err error) { - if c == nil { - return fmt.Errorf("Called Execute() on a nil Command") - } - - if len(c.Deprecated) > 0 { - c.Printf("Command %q is deprecated, %s\n", c.Name(), c.Deprecated) - } - - // initialize help and version flag at the last point possible to allow for user - // overriding - c.InitDefaultHelpFlag() - c.InitDefaultVersionFlag() - - err = c.ParseFlags(a) - if err != nil { - return c.FlagErrorFunc()(c, err) - } - - // If help is called, regardless of other flags, return we want help. - // Also say we need help if the command isn't runnable. - helpVal, err := c.Flags().GetBool("help") - if err != nil { - // should be impossible to get here as we always declare a help - // flag in InitDefaultHelpFlag() - c.Println("\"help\" flag declared as non-bool. Please correct your code") - return err - } - - if helpVal { - return flag.ErrHelp - } - - // for back-compat, only add version flag behavior if version is defined - if c.Version != "" { - versionVal, err := c.Flags().GetBool("version") - if err != nil { - c.Println("\"version\" flag declared as non-bool. Please correct your code") - return err - } - if versionVal { - err := tmpl(c.OutOrStdout(), c.VersionTemplate(), c) - if err != nil { - c.Println(err) - } - return err - } - } - - if !c.Runnable() { - return flag.ErrHelp - } - - c.preRun() - - defer c.postRun() - - argWoFlags := c.Flags().Args() - if c.DisableFlagParsing { - argWoFlags = a - } - - if err := c.ValidateArgs(argWoFlags); err != nil { - return err - } - - for p := c; p != nil; p = p.Parent() { - if p.PersistentPreRunE != nil { - if err := p.PersistentPreRunE(c, argWoFlags); err != nil { - return err - } - break - } else if p.PersistentPreRun != nil { - p.PersistentPreRun(c, argWoFlags) - break - } - } - if c.PreRunE != nil { - if err := c.PreRunE(c, argWoFlags); err != nil { - return err - } - } else if c.PreRun != nil { - c.PreRun(c, argWoFlags) - } - - if err := c.ValidateRequiredFlags(); err != nil { - return err - } - if err := c.ValidateFlagGroups(); err != nil { - return err - } - - if c.RunE != nil { - if err := c.RunE(c, argWoFlags); err != nil { - return err - } - } else { - c.Run(c, argWoFlags) - } - if c.PostRunE != nil { - if err := c.PostRunE(c, argWoFlags); err != nil { - return err - } - } else if c.PostRun != nil { - c.PostRun(c, argWoFlags) - } - for p := c; p != nil; p = p.Parent() { - if p.PersistentPostRunE != nil { - if err := p.PersistentPostRunE(c, argWoFlags); err != nil { - return err - } - break - } else if p.PersistentPostRun != nil { - p.PersistentPostRun(c, argWoFlags) - break - } - } - - return nil -} - -func (c *Command) preRun() { - for _, x := range initializers { - x() - } -} - -func (c *Command) postRun() { - for _, x := range finalizers { - x() - } -} - -// ExecuteContext is the same as Execute(), but sets the ctx on the command. -// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs -// functions. -func (c *Command) ExecuteContext(ctx context.Context) error { - c.ctx = ctx - return c.Execute() -} - -// Execute uses the args (os.Args[1:] by default) -// and run through the command tree finding appropriate matches -// for commands and then corresponding flags. -func (c *Command) Execute() error { - _, err := c.ExecuteC() - return err -} - -// ExecuteContextC is the same as ExecuteC(), but sets the ctx on the command. -// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs -// functions. -func (c *Command) ExecuteContextC(ctx context.Context) (*Command, error) { - c.ctx = ctx - return c.ExecuteC() -} - -// ExecuteC executes the command. -func (c *Command) ExecuteC() (cmd *Command, err error) { - if c.ctx == nil { - c.ctx = context.Background() - } - - // Regardless of what command execute is called on, run on Root only - if c.HasParent() { - return c.Root().ExecuteC() - } - - // windows hook - if preExecHookFn != nil { - preExecHookFn(c) - } - - // initialize help at the last point to allow for user overriding - c.InitDefaultHelpCmd() - // initialize completion at the last point to allow for user overriding - c.InitDefaultCompletionCmd() - - // Now that all commands have been created, let's make sure all groups - // are properly created also - c.checkCommandGroups() - - args := c.args - - // Workaround FAIL with "go test -v" or "cobra.test -test.v", see #155 - if c.args == nil && filepath.Base(os.Args[0]) != "cobra.test" { - args = os.Args[1:] - } - - // initialize the hidden command to be used for shell completion - c.initCompleteCmd(args) - - var flags []string - if c.TraverseChildren { - cmd, flags, err = c.Traverse(args) - } else { - cmd, flags, err = c.Find(args) - } - if err != nil { - // If found parse to a subcommand and then failed, talk about the subcommand - if cmd != nil { - c = cmd - } - if !c.SilenceErrors { - c.PrintErrln("Error:", err.Error()) - c.PrintErrf("Run '%v --help' for usage.\n", c.CommandPath()) - } - return c, err - } - - cmd.commandCalledAs.called = true - if cmd.commandCalledAs.name == "" { - cmd.commandCalledAs.name = cmd.Name() - } - - // We have to pass global context to children command - // if context is present on the parent command. - if cmd.ctx == nil { - cmd.ctx = c.ctx - } - - err = cmd.execute(flags) - if err != nil { - // Always show help if requested, even if SilenceErrors is in - // effect - if errors.Is(err, flag.ErrHelp) { - cmd.HelpFunc()(cmd, args) - return cmd, nil - } - - // If root command has SilenceErrors flagged, - // all subcommands should respect it - if !cmd.SilenceErrors && !c.SilenceErrors { - c.PrintErrln("Error:", err.Error()) - } - - // If root command has SilenceUsage flagged, - // all subcommands should respect it - if !cmd.SilenceUsage && !c.SilenceUsage { - c.Println(cmd.UsageString()) - } - } - return cmd, err -} - -func (c *Command) ValidateArgs(args []string) error { - if c.Args == nil { - return ArbitraryArgs(c, args) - } - return c.Args(c, args) -} - -// ValidateRequiredFlags validates all required flags are present and returns an error otherwise -func (c *Command) ValidateRequiredFlags() error { - if c.DisableFlagParsing { - return nil - } - - flags := c.Flags() - missingFlagNames := []string{} - flags.VisitAll(func(pflag *flag.Flag) { - requiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag] - if !found { - return - } - if (requiredAnnotation[0] == "true") && !pflag.Changed { - missingFlagNames = append(missingFlagNames, pflag.Name) - } - }) - - if len(missingFlagNames) > 0 { - return fmt.Errorf(`required flag(s) "%s" not set`, strings.Join(missingFlagNames, `", "`)) - } - return nil -} - -// checkCommandGroups checks if a command has been added to a group that does not exists. -// If so, we panic because it indicates a coding error that should be corrected. -func (c *Command) checkCommandGroups() { - for _, sub := range c.commands { - // if Group is not defined let the developer know right away - if sub.GroupID != "" && !c.ContainsGroup(sub.GroupID) { - panic(fmt.Sprintf("group id '%s' is not defined for subcommand '%s'", sub.GroupID, sub.CommandPath())) - } - - sub.checkCommandGroups() - } -} - -// InitDefaultHelpFlag adds default help flag to c. -// It is called automatically by executing the c or by calling help and usage. -// If c already has help flag, it will do nothing. -func (c *Command) InitDefaultHelpFlag() { - c.mergePersistentFlags() - if c.Flags().Lookup("help") == nil { - usage := "help for " - if c.Name() == "" { - usage += "this command" - } else { - usage += c.Name() - } - c.Flags().BoolP("help", "h", false, usage) - _ = c.Flags().SetAnnotation("help", FlagSetByCobraAnnotation, []string{"true"}) - } -} - -// InitDefaultVersionFlag adds default version flag to c. -// It is called automatically by executing the c. -// If c already has a version flag, it will do nothing. -// If c.Version is empty, it will do nothing. -func (c *Command) InitDefaultVersionFlag() { - if c.Version == "" { - return - } - - c.mergePersistentFlags() - if c.Flags().Lookup("version") == nil { - usage := "version for " - if c.Name() == "" { - usage += "this command" - } else { - usage += c.Name() - } - if c.Flags().ShorthandLookup("v") == nil { - c.Flags().BoolP("version", "v", false, usage) - } else { - c.Flags().Bool("version", false, usage) - } - _ = c.Flags().SetAnnotation("version", FlagSetByCobraAnnotation, []string{"true"}) - } -} - -// InitDefaultHelpCmd adds default help command to c. -// It is called automatically by executing the c or by calling help and usage. -// If c already has help command or c has no subcommands, it will do nothing. -func (c *Command) InitDefaultHelpCmd() { - if !c.HasSubCommands() { - return - } - - if c.helpCommand == nil { - c.helpCommand = &Command{ - Use: "help [command]", - Short: "Help about any command", - Long: `Help provides help for any command in the application. -Simply type ` + c.Name() + ` help [path to command] for full details.`, - ValidArgsFunction: func(c *Command, args []string, toComplete string) ([]string, ShellCompDirective) { - var completions []string - cmd, _, e := c.Root().Find(args) - if e != nil { - return nil, ShellCompDirectiveNoFileComp - } - if cmd == nil { - // Root help command. - cmd = c.Root() - } - for _, subCmd := range cmd.Commands() { - if subCmd.IsAvailableCommand() || subCmd == cmd.helpCommand { - if strings.HasPrefix(subCmd.Name(), toComplete) { - completions = append(completions, fmt.Sprintf("%s\t%s", subCmd.Name(), subCmd.Short)) - } - } - } - return completions, ShellCompDirectiveNoFileComp - }, - Run: func(c *Command, args []string) { - cmd, _, e := c.Root().Find(args) - if cmd == nil || e != nil { - c.Printf("Unknown help topic %#q\n", args) - CheckErr(c.Root().Usage()) - } else { - cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown - cmd.InitDefaultVersionFlag() // make possible 'version' flag to be shown - CheckErr(cmd.Help()) - } - }, - GroupID: c.helpCommandGroupID, - } - } - c.RemoveCommand(c.helpCommand) - c.AddCommand(c.helpCommand) -} - -// ResetCommands delete parent, subcommand and help command from c. -func (c *Command) ResetCommands() { - c.parent = nil - c.commands = nil - c.helpCommand = nil - c.parentsPflags = nil -} - -// Sorts commands by their names. -type commandSorterByName []*Command - -func (c commandSorterByName) Len() int { return len(c) } -func (c commandSorterByName) Swap(i, j int) { c[i], c[j] = c[j], c[i] } -func (c commandSorterByName) Less(i, j int) bool { return c[i].Name() < c[j].Name() } - -// Commands returns a sorted slice of child commands. -func (c *Command) Commands() []*Command { - // do not sort commands if it already sorted or sorting was disabled - if EnableCommandSorting && !c.commandsAreSorted { - sort.Sort(commandSorterByName(c.commands)) - c.commandsAreSorted = true - } - return c.commands -} - -// AddCommand adds one or more commands to this parent command. -func (c *Command) AddCommand(cmds ...*Command) { - for i, x := range cmds { - if cmds[i] == c { - panic("Command can't be a child of itself") - } - cmds[i].parent = c - // update max lengths - usageLen := len(x.Use) - if usageLen > c.commandsMaxUseLen { - c.commandsMaxUseLen = usageLen - } - commandPathLen := len(x.CommandPath()) - if commandPathLen > c.commandsMaxCommandPathLen { - c.commandsMaxCommandPathLen = commandPathLen - } - nameLen := len(x.Name()) - if nameLen > c.commandsMaxNameLen { - c.commandsMaxNameLen = nameLen - } - // If global normalization function exists, update all children - if c.globNormFunc != nil { - x.SetGlobalNormalizationFunc(c.globNormFunc) - } - c.commands = append(c.commands, x) - c.commandsAreSorted = false - } -} - -// Groups returns a slice of child command groups. -func (c *Command) Groups() []*Group { - return c.commandgroups -} - -// AllChildCommandsHaveGroup returns if all subcommands are assigned to a group -func (c *Command) AllChildCommandsHaveGroup() bool { - for _, sub := range c.commands { - if (sub.IsAvailableCommand() || sub == c.helpCommand) && sub.GroupID == "" { - return false - } - } - return true -} - -// ContainsGroup return if groupID exists in the list of command groups. -func (c *Command) ContainsGroup(groupID string) bool { - for _, x := range c.commandgroups { - if x.ID == groupID { - return true - } - } - return false -} - -// AddGroup adds one or more command groups to this parent command. -func (c *Command) AddGroup(groups ...*Group) { - c.commandgroups = append(c.commandgroups, groups...) -} - -// RemoveCommand removes one or more commands from a parent command. -func (c *Command) RemoveCommand(cmds ...*Command) { - commands := []*Command{} -main: - for _, command := range c.commands { - for _, cmd := range cmds { - if command == cmd { - command.parent = nil - continue main - } - } - commands = append(commands, command) - } - c.commands = commands - // recompute all lengths - c.commandsMaxUseLen = 0 - c.commandsMaxCommandPathLen = 0 - c.commandsMaxNameLen = 0 - for _, command := range c.commands { - usageLen := len(command.Use) - if usageLen > c.commandsMaxUseLen { - c.commandsMaxUseLen = usageLen - } - commandPathLen := len(command.CommandPath()) - if commandPathLen > c.commandsMaxCommandPathLen { - c.commandsMaxCommandPathLen = commandPathLen - } - nameLen := len(command.Name()) - if nameLen > c.commandsMaxNameLen { - c.commandsMaxNameLen = nameLen - } - } -} - -// Print is a convenience method to Print to the defined output, fallback to Stderr if not set. -func (c *Command) Print(i ...interface{}) { - fmt.Fprint(c.OutOrStderr(), i...) -} - -// Println is a convenience method to Println to the defined output, fallback to Stderr if not set. -func (c *Command) Println(i ...interface{}) { - c.Print(fmt.Sprintln(i...)) -} - -// Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set. -func (c *Command) Printf(format string, i ...interface{}) { - c.Print(fmt.Sprintf(format, i...)) -} - -// PrintErr is a convenience method to Print to the defined Err output, fallback to Stderr if not set. -func (c *Command) PrintErr(i ...interface{}) { - fmt.Fprint(c.ErrOrStderr(), i...) -} - -// PrintErrln is a convenience method to Println to the defined Err output, fallback to Stderr if not set. -func (c *Command) PrintErrln(i ...interface{}) { - c.PrintErr(fmt.Sprintln(i...)) -} - -// PrintErrf is a convenience method to Printf to the defined Err output, fallback to Stderr if not set. -func (c *Command) PrintErrf(format string, i ...interface{}) { - c.PrintErr(fmt.Sprintf(format, i...)) -} - -// CommandPath returns the full path to this command. -func (c *Command) CommandPath() string { - if c.HasParent() { - return c.Parent().CommandPath() + " " + c.Name() - } - return c.Name() -} - -// UseLine puts out the full usage for a given command (including parents). -func (c *Command) UseLine() string { - var useline string - if c.HasParent() { - useline = c.parent.CommandPath() + " " + c.Use - } else { - useline = c.Use - } - if c.DisableFlagsInUseLine { - return useline - } - if c.HasAvailableFlags() && !strings.Contains(useline, "[flags]") { - useline += " [flags]" - } - return useline -} - -// DebugFlags used to determine which flags have been assigned to which commands -// and which persist. -func (c *Command) DebugFlags() { - c.Println("DebugFlags called on", c.Name()) - var debugflags func(*Command) - - debugflags = func(x *Command) { - if x.HasFlags() || x.HasPersistentFlags() { - c.Println(x.Name()) - } - if x.HasFlags() { - x.flags.VisitAll(func(f *flag.Flag) { - if x.HasPersistentFlags() && x.persistentFlag(f.Name) != nil { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [LP]") - } else { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [L]") - } - }) - } - if x.HasPersistentFlags() { - x.pflags.VisitAll(func(f *flag.Flag) { - if x.HasFlags() { - if x.flags.Lookup(f.Name) == nil { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [P]") - } - } else { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [P]") - } - }) - } - c.Println(x.flagErrorBuf) - if x.HasSubCommands() { - for _, y := range x.commands { - debugflags(y) - } - } - } - - debugflags(c) -} - -// Name returns the command's name: the first word in the use line. -func (c *Command) Name() string { - name := c.Use - i := strings.Index(name, " ") - if i >= 0 { - name = name[:i] - } - return name -} - -// HasAlias determines if a given string is an alias of the command. -func (c *Command) HasAlias(s string) bool { - for _, a := range c.Aliases { - if commandNameMatches(a, s) { - return true - } - } - return false -} - -// CalledAs returns the command name or alias that was used to invoke -// this command or an empty string if the command has not been called. -func (c *Command) CalledAs() string { - if c.commandCalledAs.called { - return c.commandCalledAs.name - } - return "" -} - -// hasNameOrAliasPrefix returns true if the Name or any of aliases start -// with prefix -func (c *Command) hasNameOrAliasPrefix(prefix string) bool { - if strings.HasPrefix(c.Name(), prefix) { - c.commandCalledAs.name = c.Name() - return true - } - for _, alias := range c.Aliases { - if strings.HasPrefix(alias, prefix) { - c.commandCalledAs.name = alias - return true - } - } - return false -} - -// NameAndAliases returns a list of the command name and all aliases -func (c *Command) NameAndAliases() string { - return strings.Join(append([]string{c.Name()}, c.Aliases...), ", ") -} - -// HasExample determines if the command has example. -func (c *Command) HasExample() bool { - return len(c.Example) > 0 -} - -// Runnable determines if the command is itself runnable. -func (c *Command) Runnable() bool { - return c.Run != nil || c.RunE != nil -} - -// HasSubCommands determines if the command has children commands. -func (c *Command) HasSubCommands() bool { - return len(c.commands) > 0 -} - -// IsAvailableCommand determines if a command is available as a non-help command -// (this includes all non deprecated/hidden commands). -func (c *Command) IsAvailableCommand() bool { - if len(c.Deprecated) != 0 || c.Hidden { - return false - } - - if c.HasParent() && c.Parent().helpCommand == c { - return false - } - - if c.Runnable() || c.HasAvailableSubCommands() { - return true - } - - return false -} - -// IsAdditionalHelpTopicCommand determines if a command is an additional -// help topic command; additional help topic command is determined by the -// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that -// are runnable/hidden/deprecated. -// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924. -func (c *Command) IsAdditionalHelpTopicCommand() bool { - // if a command is runnable, deprecated, or hidden it is not a 'help' command - if c.Runnable() || len(c.Deprecated) != 0 || c.Hidden { - return false - } - - // if any non-help sub commands are found, the command is not a 'help' command - for _, sub := range c.commands { - if !sub.IsAdditionalHelpTopicCommand() { - return false - } - } - - // the command either has no sub commands, or no non-help sub commands - return true -} - -// HasHelpSubCommands determines if a command has any available 'help' sub commands -// that need to be shown in the usage/help default template under 'additional help -// topics'. -func (c *Command) HasHelpSubCommands() bool { - // return true on the first found available 'help' sub command - for _, sub := range c.commands { - if sub.IsAdditionalHelpTopicCommand() { - return true - } - } - - // the command either has no sub commands, or no available 'help' sub commands - return false -} - -// HasAvailableSubCommands determines if a command has available sub commands that -// need to be shown in the usage/help default template under 'available commands'. -func (c *Command) HasAvailableSubCommands() bool { - // return true on the first found available (non deprecated/help/hidden) - // sub command - for _, sub := range c.commands { - if sub.IsAvailableCommand() { - return true - } - } - - // the command either has no sub commands, or no available (non deprecated/help/hidden) - // sub commands - return false -} - -// HasParent determines if the command is a child command. -func (c *Command) HasParent() bool { - return c.parent != nil -} - -// GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist. -func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) flag.NormalizedName { - return c.globNormFunc -} - -// Flags returns the complete FlagSet that applies -// to this command (local and persistent declared here and by all parents). -func (c *Command) Flags() *flag.FlagSet { - if c.flags == nil { - c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.flags.SetOutput(c.flagErrorBuf) - } - - return c.flags -} - -// LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands. -func (c *Command) LocalNonPersistentFlags() *flag.FlagSet { - persistentFlags := c.PersistentFlags() - - out := flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.LocalFlags().VisitAll(func(f *flag.Flag) { - if persistentFlags.Lookup(f.Name) == nil { - out.AddFlag(f) - } - }) - return out -} - -// LocalFlags returns the local FlagSet specifically set in the current command. -func (c *Command) LocalFlags() *flag.FlagSet { - c.mergePersistentFlags() - - if c.lflags == nil { - c.lflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.lflags.SetOutput(c.flagErrorBuf) - } - c.lflags.SortFlags = c.Flags().SortFlags - if c.globNormFunc != nil { - c.lflags.SetNormalizeFunc(c.globNormFunc) - } - - addToLocal := func(f *flag.Flag) { - // Add the flag if it is not a parent PFlag, or it shadows a parent PFlag - if c.lflags.Lookup(f.Name) == nil && f != c.parentsPflags.Lookup(f.Name) { - c.lflags.AddFlag(f) - } - } - c.Flags().VisitAll(addToLocal) - c.PersistentFlags().VisitAll(addToLocal) - return c.lflags -} - -// InheritedFlags returns all flags which were inherited from parent commands. -func (c *Command) InheritedFlags() *flag.FlagSet { - c.mergePersistentFlags() - - if c.iflags == nil { - c.iflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.iflags.SetOutput(c.flagErrorBuf) - } - - local := c.LocalFlags() - if c.globNormFunc != nil { - c.iflags.SetNormalizeFunc(c.globNormFunc) - } - - c.parentsPflags.VisitAll(func(f *flag.Flag) { - if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil { - c.iflags.AddFlag(f) - } - }) - return c.iflags -} - -// NonInheritedFlags returns all flags which were not inherited from parent commands. -func (c *Command) NonInheritedFlags() *flag.FlagSet { - return c.LocalFlags() -} - -// PersistentFlags returns the persistent FlagSet specifically set in the current command. -func (c *Command) PersistentFlags() *flag.FlagSet { - if c.pflags == nil { - c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.pflags.SetOutput(c.flagErrorBuf) - } - return c.pflags -} - -// ResetFlags deletes all flags from command. -func (c *Command) ResetFlags() { - c.flagErrorBuf = new(bytes.Buffer) - c.flagErrorBuf.Reset() - c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.flags.SetOutput(c.flagErrorBuf) - c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.pflags.SetOutput(c.flagErrorBuf) - - c.lflags = nil - c.iflags = nil - c.parentsPflags = nil -} - -// HasFlags checks if the command contains any flags (local plus persistent from the entire structure). -func (c *Command) HasFlags() bool { - return c.Flags().HasFlags() -} - -// HasPersistentFlags checks if the command contains persistent flags. -func (c *Command) HasPersistentFlags() bool { - return c.PersistentFlags().HasFlags() -} - -// HasLocalFlags checks if the command has flags specifically declared locally. -func (c *Command) HasLocalFlags() bool { - return c.LocalFlags().HasFlags() -} - -// HasInheritedFlags checks if the command has flags inherited from its parent command. -func (c *Command) HasInheritedFlags() bool { - return c.InheritedFlags().HasFlags() -} - -// HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire -// structure) which are not hidden or deprecated. -func (c *Command) HasAvailableFlags() bool { - return c.Flags().HasAvailableFlags() -} - -// HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated. -func (c *Command) HasAvailablePersistentFlags() bool { - return c.PersistentFlags().HasAvailableFlags() -} - -// HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden -// or deprecated. -func (c *Command) HasAvailableLocalFlags() bool { - return c.LocalFlags().HasAvailableFlags() -} - -// HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are -// not hidden or deprecated. -func (c *Command) HasAvailableInheritedFlags() bool { - return c.InheritedFlags().HasAvailableFlags() -} - -// Flag climbs up the command tree looking for matching flag. -func (c *Command) Flag(name string) (flag *flag.Flag) { - flag = c.Flags().Lookup(name) - - if flag == nil { - flag = c.persistentFlag(name) - } - - return -} - -// Recursively find matching persistent flag. -func (c *Command) persistentFlag(name string) (flag *flag.Flag) { - if c.HasPersistentFlags() { - flag = c.PersistentFlags().Lookup(name) - } - - if flag == nil { - c.updateParentsPflags() - flag = c.parentsPflags.Lookup(name) - } - return -} - -// ParseFlags parses persistent flag tree and local flags. -func (c *Command) ParseFlags(args []string) error { - if c.DisableFlagParsing { - return nil - } - - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - beforeErrorBufLen := c.flagErrorBuf.Len() - c.mergePersistentFlags() - - // do it here after merging all flags and just before parse - c.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist) - - err := c.Flags().Parse(args) - // Print warnings if they occurred (e.g. deprecated flag messages). - if c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil { - c.Print(c.flagErrorBuf.String()) - } - - return err -} - -// Parent returns a commands parent command. -func (c *Command) Parent() *Command { - return c.parent -} - -// mergePersistentFlags merges c.PersistentFlags() to c.Flags() -// and adds missing persistent flags of all parents. -func (c *Command) mergePersistentFlags() { - c.updateParentsPflags() - c.Flags().AddFlagSet(c.PersistentFlags()) - c.Flags().AddFlagSet(c.parentsPflags) -} - -// updateParentsPflags updates c.parentsPflags by adding -// new persistent flags of all parents. -// If c.parentsPflags == nil, it makes new. -func (c *Command) updateParentsPflags() { - if c.parentsPflags == nil { - c.parentsPflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.parentsPflags.SetOutput(c.flagErrorBuf) - c.parentsPflags.SortFlags = false - } - - if c.globNormFunc != nil { - c.parentsPflags.SetNormalizeFunc(c.globNormFunc) - } - - c.Root().PersistentFlags().AddFlagSet(flag.CommandLine) - - c.VisitParents(func(parent *Command) { - c.parentsPflags.AddFlagSet(parent.PersistentFlags()) - }) -} - -// commandNameMatches checks if two command names are equal -// taking into account case sensitivity according to -// EnableCaseInsensitive global configuration. -func commandNameMatches(s string, t string) bool { - if EnableCaseInsensitive { - return strings.EqualFold(s, t) - } - - return s == t -} diff --git a/backend/vendor/github.com/spf13/cobra/command_notwin.go b/backend/vendor/github.com/spf13/cobra/command_notwin.go deleted file mode 100644 index 307f0c12..00000000 --- a/backend/vendor/github.com/spf13/cobra/command_notwin.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build !windows -// +build !windows - -package cobra - -var preExecHookFn func(*Command) diff --git a/backend/vendor/github.com/spf13/cobra/command_win.go b/backend/vendor/github.com/spf13/cobra/command_win.go deleted file mode 100644 index adbef395..00000000 --- a/backend/vendor/github.com/spf13/cobra/command_win.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build windows -// +build windows - -package cobra - -import ( - "fmt" - "os" - "time" - - "github.com/inconshreveable/mousetrap" -) - -var preExecHookFn = preExecHook - -func preExecHook(c *Command) { - if MousetrapHelpText != "" && mousetrap.StartedByExplorer() { - c.Print(MousetrapHelpText) - if MousetrapDisplayDuration > 0 { - time.Sleep(MousetrapDisplayDuration) - } else { - c.Println("Press return to continue...") - fmt.Scanln() - } - os.Exit(1) - } -} diff --git a/backend/vendor/github.com/spf13/cobra/completions.go b/backend/vendor/github.com/spf13/cobra/completions.go deleted file mode 100644 index ee38c4d0..00000000 --- a/backend/vendor/github.com/spf13/cobra/completions.go +++ /dev/null @@ -1,878 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "fmt" - "os" - "strings" - "sync" - - "github.com/spf13/pflag" -) - -const ( - // ShellCompRequestCmd is the name of the hidden command that is used to request - // completion results from the program. It is used by the shell completion scripts. - ShellCompRequestCmd = "__complete" - // ShellCompNoDescRequestCmd is the name of the hidden command that is used to request - // completion results without their description. It is used by the shell completion scripts. - ShellCompNoDescRequestCmd = "__completeNoDesc" -) - -// Global map of flag completion functions. Make sure to use flagCompletionMutex before you try to read and write from it. -var flagCompletionFunctions = map[*pflag.Flag]func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective){} - -// lock for reading and writing from flagCompletionFunctions -var flagCompletionMutex = &sync.RWMutex{} - -// ShellCompDirective is a bit map representing the different behaviors the shell -// can be instructed to have once completions have been provided. -type ShellCompDirective int - -type flagCompError struct { - subCommand string - flagName string -} - -func (e *flagCompError) Error() string { - return "Subcommand '" + e.subCommand + "' does not support flag '" + e.flagName + "'" -} - -const ( - // ShellCompDirectiveError indicates an error occurred and completions should be ignored. - ShellCompDirectiveError ShellCompDirective = 1 << iota - - // ShellCompDirectiveNoSpace indicates that the shell should not add a space - // after the completion even if there is a single completion provided. - ShellCompDirectiveNoSpace - - // ShellCompDirectiveNoFileComp indicates that the shell should not provide - // file completion even when no completion is provided. - ShellCompDirectiveNoFileComp - - // ShellCompDirectiveFilterFileExt indicates that the provided completions - // should be used as file extension filters. - // For flags, using Command.MarkFlagFilename() and Command.MarkPersistentFlagFilename() - // is a shortcut to using this directive explicitly. The BashCompFilenameExt - // annotation can also be used to obtain the same behavior for flags. - ShellCompDirectiveFilterFileExt - - // ShellCompDirectiveFilterDirs indicates that only directory names should - // be provided in file completion. To request directory names within another - // directory, the returned completions should specify the directory within - // which to search. The BashCompSubdirsInDir annotation can be used to - // obtain the same behavior but only for flags. - ShellCompDirectiveFilterDirs - - // ShellCompDirectiveKeepOrder indicates that the shell should preserve the order - // in which the completions are provided - ShellCompDirectiveKeepOrder - - // =========================================================================== - - // All directives using iota should be above this one. - // For internal use. - shellCompDirectiveMaxValue - - // ShellCompDirectiveDefault indicates to let the shell perform its default - // behavior after completions have been provided. - // This one must be last to avoid messing up the iota count. - ShellCompDirectiveDefault ShellCompDirective = 0 -) - -const ( - // Constants for the completion command - compCmdName = "completion" - compCmdNoDescFlagName = "no-descriptions" - compCmdNoDescFlagDesc = "disable completion descriptions" - compCmdNoDescFlagDefault = false -) - -// CompletionOptions are the options to control shell completion -type CompletionOptions struct { - // DisableDefaultCmd prevents Cobra from creating a default 'completion' command - DisableDefaultCmd bool - // DisableNoDescFlag prevents Cobra from creating the '--no-descriptions' flag - // for shells that support completion descriptions - DisableNoDescFlag bool - // DisableDescriptions turns off all completion descriptions for shells - // that support them - DisableDescriptions bool - // HiddenDefaultCmd makes the default 'completion' command hidden - HiddenDefaultCmd bool -} - -// NoFileCompletions can be used to disable file completion for commands that should -// not trigger file completions. -func NoFileCompletions(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) { - return nil, ShellCompDirectiveNoFileComp -} - -// FixedCompletions can be used to create a completion function which always -// returns the same results. -func FixedCompletions(choices []string, directive ShellCompDirective) func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) { - return func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) { - return choices, directive - } -} - -// RegisterFlagCompletionFunc should be called to register a function to provide completion for a flag. -func (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)) error { - flag := c.Flag(flagName) - if flag == nil { - return fmt.Errorf("RegisterFlagCompletionFunc: flag '%s' does not exist", flagName) - } - flagCompletionMutex.Lock() - defer flagCompletionMutex.Unlock() - - if _, exists := flagCompletionFunctions[flag]; exists { - return fmt.Errorf("RegisterFlagCompletionFunc: flag '%s' already registered", flagName) - } - flagCompletionFunctions[flag] = f - return nil -} - -// Returns a string listing the different directive enabled in the specified parameter -func (d ShellCompDirective) string() string { - var directives []string - if d&ShellCompDirectiveError != 0 { - directives = append(directives, "ShellCompDirectiveError") - } - if d&ShellCompDirectiveNoSpace != 0 { - directives = append(directives, "ShellCompDirectiveNoSpace") - } - if d&ShellCompDirectiveNoFileComp != 0 { - directives = append(directives, "ShellCompDirectiveNoFileComp") - } - if d&ShellCompDirectiveFilterFileExt != 0 { - directives = append(directives, "ShellCompDirectiveFilterFileExt") - } - if d&ShellCompDirectiveFilterDirs != 0 { - directives = append(directives, "ShellCompDirectiveFilterDirs") - } - if d&ShellCompDirectiveKeepOrder != 0 { - directives = append(directives, "ShellCompDirectiveKeepOrder") - } - if len(directives) == 0 { - directives = append(directives, "ShellCompDirectiveDefault") - } - - if d >= shellCompDirectiveMaxValue { - return fmt.Sprintf("ERROR: unexpected ShellCompDirective value: %d", d) - } - return strings.Join(directives, ", ") -} - -// initCompleteCmd adds a special hidden command that can be used to request custom completions. -func (c *Command) initCompleteCmd(args []string) { - completeCmd := &Command{ - Use: fmt.Sprintf("%s [command-line]", ShellCompRequestCmd), - Aliases: []string{ShellCompNoDescRequestCmd}, - DisableFlagsInUseLine: true, - Hidden: true, - DisableFlagParsing: true, - Args: MinimumNArgs(1), - Short: "Request shell completion choices for the specified command-line", - Long: fmt.Sprintf("%[2]s is a special command that is used by the shell completion logic\n%[1]s", - "to request completion choices for the specified command-line.", ShellCompRequestCmd), - Run: func(cmd *Command, args []string) { - finalCmd, completions, directive, err := cmd.getCompletions(args) - if err != nil { - CompErrorln(err.Error()) - // Keep going for multiple reasons: - // 1- There could be some valid completions even though there was an error - // 2- Even without completions, we need to print the directive - } - - noDescriptions := (cmd.CalledAs() == ShellCompNoDescRequestCmd) - for _, comp := range completions { - if GetActiveHelpConfig(finalCmd) == activeHelpGlobalDisable { - // Remove all activeHelp entries in this case - if strings.HasPrefix(comp, activeHelpMarker) { - continue - } - } - if noDescriptions { - // Remove any description that may be included following a tab character. - comp = strings.Split(comp, "\t")[0] - } - - // Make sure we only write the first line to the output. - // This is needed if a description contains a linebreak. - // Otherwise the shell scripts will interpret the other lines as new flags - // and could therefore provide a wrong completion. - comp = strings.Split(comp, "\n")[0] - - // Finally trim the completion. This is especially important to get rid - // of a trailing tab when there are no description following it. - // For example, a sub-command without a description should not be completed - // with a tab at the end (or else zsh will show a -- following it - // although there is no description). - comp = strings.TrimSpace(comp) - - // Print each possible completion to stdout for the completion script to consume. - fmt.Fprintln(finalCmd.OutOrStdout(), comp) - } - - // As the last printout, print the completion directive for the completion script to parse. - // The directive integer must be that last character following a single colon (:). - // The completion script expects : - fmt.Fprintf(finalCmd.OutOrStdout(), ":%d\n", directive) - - // Print some helpful info to stderr for the user to understand. - // Output from stderr must be ignored by the completion script. - fmt.Fprintf(finalCmd.ErrOrStderr(), "Completion ended with directive: %s\n", directive.string()) - }, - } - c.AddCommand(completeCmd) - subCmd, _, err := c.Find(args) - if err != nil || subCmd.Name() != ShellCompRequestCmd { - // Only create this special command if it is actually being called. - // This reduces possible side-effects of creating such a command; - // for example, having this command would cause problems to a - // cobra program that only consists of the root command, since this - // command would cause the root command to suddenly have a subcommand. - c.RemoveCommand(completeCmd) - } -} - -func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDirective, error) { - // The last argument, which is not completely typed by the user, - // should not be part of the list of arguments - toComplete := args[len(args)-1] - trimmedArgs := args[:len(args)-1] - - var finalCmd *Command - var finalArgs []string - var err error - // Find the real command for which completion must be performed - // check if we need to traverse here to parse local flags on parent commands - if c.Root().TraverseChildren { - finalCmd, finalArgs, err = c.Root().Traverse(trimmedArgs) - } else { - // For Root commands that don't specify any value for their Args fields, when we call - // Find(), if those Root commands don't have any sub-commands, they will accept arguments. - // However, because we have added the __complete sub-command in the current code path, the - // call to Find() -> legacyArgs() will return an error if there are any arguments. - // To avoid this, we first remove the __complete command to get back to having no sub-commands. - rootCmd := c.Root() - if len(rootCmd.Commands()) == 1 { - rootCmd.RemoveCommand(c) - } - - finalCmd, finalArgs, err = rootCmd.Find(trimmedArgs) - } - if err != nil { - // Unable to find the real command. E.g., someInvalidCmd - return c, []string{}, ShellCompDirectiveDefault, fmt.Errorf("Unable to find a command for arguments: %v", trimmedArgs) - } - finalCmd.ctx = c.ctx - - // These flags are normally added when `execute()` is called on `finalCmd`, - // however, when doing completion, we don't call `finalCmd.execute()`. - // Let's add the --help and --version flag ourselves. - finalCmd.InitDefaultHelpFlag() - finalCmd.InitDefaultVersionFlag() - - // Check if we are doing flag value completion before parsing the flags. - // This is important because if we are completing a flag value, we need to also - // remove the flag name argument from the list of finalArgs or else the parsing - // could fail due to an invalid value (incomplete) for the flag. - flag, finalArgs, toComplete, flagErr := checkIfFlagCompletion(finalCmd, finalArgs, toComplete) - - // Check if interspersed is false or -- was set on a previous arg. - // This works by counting the arguments. Normally -- is not counted as arg but - // if -- was already set or interspersed is false and there is already one arg then - // the extra added -- is counted as arg. - flagCompletion := true - _ = finalCmd.ParseFlags(append(finalArgs, "--")) - newArgCount := finalCmd.Flags().NArg() - - // Parse the flags early so we can check if required flags are set - if err = finalCmd.ParseFlags(finalArgs); err != nil { - return finalCmd, []string{}, ShellCompDirectiveDefault, fmt.Errorf("Error while parsing flags from args %v: %s", finalArgs, err.Error()) - } - - realArgCount := finalCmd.Flags().NArg() - if newArgCount > realArgCount { - // don't do flag completion (see above) - flagCompletion = false - } - // Error while attempting to parse flags - if flagErr != nil { - // If error type is flagCompError and we don't want flagCompletion we should ignore the error - if _, ok := flagErr.(*flagCompError); !(ok && !flagCompletion) { - return finalCmd, []string{}, ShellCompDirectiveDefault, flagErr - } - } - - // Look for the --help or --version flags. If they are present, - // there should be no further completions. - if helpOrVersionFlagPresent(finalCmd) { - return finalCmd, []string{}, ShellCompDirectiveNoFileComp, nil - } - - // We only remove the flags from the arguments if DisableFlagParsing is not set. - // This is important for commands which have requested to do their own flag completion. - if !finalCmd.DisableFlagParsing { - finalArgs = finalCmd.Flags().Args() - } - - if flag != nil && flagCompletion { - // Check if we are completing a flag value subject to annotations - if validExts, present := flag.Annotations[BashCompFilenameExt]; present { - if len(validExts) != 0 { - // File completion filtered by extensions - return finalCmd, validExts, ShellCompDirectiveFilterFileExt, nil - } - - // The annotation requests simple file completion. There is no reason to do - // that since it is the default behavior anyway. Let's ignore this annotation - // in case the program also registered a completion function for this flag. - // Even though it is a mistake on the program's side, let's be nice when we can. - } - - if subDir, present := flag.Annotations[BashCompSubdirsInDir]; present { - if len(subDir) == 1 { - // Directory completion from within a directory - return finalCmd, subDir, ShellCompDirectiveFilterDirs, nil - } - // Directory completion - return finalCmd, []string{}, ShellCompDirectiveFilterDirs, nil - } - } - - var completions []string - var directive ShellCompDirective - - // Enforce flag groups before doing flag completions - finalCmd.enforceFlagGroupsForCompletion() - - // Note that we want to perform flagname completion even if finalCmd.DisableFlagParsing==true; - // doing this allows for completion of persistent flag names even for commands that disable flag parsing. - // - // When doing completion of a flag name, as soon as an argument starts with - // a '-' we know it is a flag. We cannot use isFlagArg() here as it requires - // the flag name to be complete - if flag == nil && len(toComplete) > 0 && toComplete[0] == '-' && !strings.Contains(toComplete, "=") && flagCompletion { - // First check for required flags - completions = completeRequireFlags(finalCmd, toComplete) - - // If we have not found any required flags, only then can we show regular flags - if len(completions) == 0 { - doCompleteFlags := func(flag *pflag.Flag) { - if !flag.Changed || - strings.Contains(flag.Value.Type(), "Slice") || - strings.Contains(flag.Value.Type(), "Array") { - // If the flag is not already present, or if it can be specified multiple times (Array or Slice) - // we suggest it as a completion - completions = append(completions, getFlagNameCompletions(flag, toComplete)...) - } - } - - // We cannot use finalCmd.Flags() because we may not have called ParsedFlags() for commands - // that have set DisableFlagParsing; it is ParseFlags() that merges the inherited and - // non-inherited flags. - finalCmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) { - doCompleteFlags(flag) - }) - finalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) { - doCompleteFlags(flag) - }) - } - - directive = ShellCompDirectiveNoFileComp - if len(completions) == 1 && strings.HasSuffix(completions[0], "=") { - // If there is a single completion, the shell usually adds a space - // after the completion. We don't want that if the flag ends with an = - directive = ShellCompDirectiveNoSpace - } - - if !finalCmd.DisableFlagParsing { - // If DisableFlagParsing==false, we have completed the flags as known by Cobra; - // we can return what we found. - // If DisableFlagParsing==true, Cobra may not be aware of all flags, so we - // let the logic continue to see if ValidArgsFunction needs to be called. - return finalCmd, completions, directive, nil - } - } else { - directive = ShellCompDirectiveDefault - if flag == nil { - foundLocalNonPersistentFlag := false - // If TraverseChildren is true on the root command we don't check for - // local flags because we can use a local flag on a parent command - if !finalCmd.Root().TraverseChildren { - // Check if there are any local, non-persistent flags on the command-line - localNonPersistentFlags := finalCmd.LocalNonPersistentFlags() - finalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) { - if localNonPersistentFlags.Lookup(flag.Name) != nil && flag.Changed { - foundLocalNonPersistentFlag = true - } - }) - } - - // Complete subcommand names, including the help command - if len(finalArgs) == 0 && !foundLocalNonPersistentFlag { - // We only complete sub-commands if: - // - there are no arguments on the command-line and - // - there are no local, non-persistent flags on the command-line or TraverseChildren is true - for _, subCmd := range finalCmd.Commands() { - if subCmd.IsAvailableCommand() || subCmd == finalCmd.helpCommand { - if strings.HasPrefix(subCmd.Name(), toComplete) { - completions = append(completions, fmt.Sprintf("%s\t%s", subCmd.Name(), subCmd.Short)) - } - directive = ShellCompDirectiveNoFileComp - } - } - } - - // Complete required flags even without the '-' prefix - completions = append(completions, completeRequireFlags(finalCmd, toComplete)...) - - // Always complete ValidArgs, even if we are completing a subcommand name. - // This is for commands that have both subcommands and ValidArgs. - if len(finalCmd.ValidArgs) > 0 { - if len(finalArgs) == 0 { - // ValidArgs are only for the first argument - for _, validArg := range finalCmd.ValidArgs { - if strings.HasPrefix(validArg, toComplete) { - completions = append(completions, validArg) - } - } - directive = ShellCompDirectiveNoFileComp - - // If no completions were found within commands or ValidArgs, - // see if there are any ArgAliases that should be completed. - if len(completions) == 0 { - for _, argAlias := range finalCmd.ArgAliases { - if strings.HasPrefix(argAlias, toComplete) { - completions = append(completions, argAlias) - } - } - } - } - - // If there are ValidArgs specified (even if they don't match), we stop completion. - // Only one of ValidArgs or ValidArgsFunction can be used for a single command. - return finalCmd, completions, directive, nil - } - - // Let the logic continue so as to add any ValidArgsFunction completions, - // even if we already found sub-commands. - // This is for commands that have subcommands but also specify a ValidArgsFunction. - } - } - - // Find the completion function for the flag or command - var completionFn func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) - if flag != nil && flagCompletion { - flagCompletionMutex.RLock() - completionFn = flagCompletionFunctions[flag] - flagCompletionMutex.RUnlock() - } else { - completionFn = finalCmd.ValidArgsFunction - } - if completionFn != nil { - // Go custom completion defined for this flag or command. - // Call the registered completion function to get the completions. - var comps []string - comps, directive = completionFn(finalCmd, finalArgs, toComplete) - completions = append(completions, comps...) - } - - return finalCmd, completions, directive, nil -} - -func helpOrVersionFlagPresent(cmd *Command) bool { - if versionFlag := cmd.Flags().Lookup("version"); versionFlag != nil && - len(versionFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && versionFlag.Changed { - return true - } - if helpFlag := cmd.Flags().Lookup("help"); helpFlag != nil && - len(helpFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && helpFlag.Changed { - return true - } - return false -} - -func getFlagNameCompletions(flag *pflag.Flag, toComplete string) []string { - if nonCompletableFlag(flag) { - return []string{} - } - - var completions []string - flagName := "--" + flag.Name - if strings.HasPrefix(flagName, toComplete) { - // Flag without the = - completions = append(completions, fmt.Sprintf("%s\t%s", flagName, flag.Usage)) - - // Why suggest both long forms: --flag and --flag= ? - // This forces the user to *always* have to type either an = or a space after the flag name. - // Let's be nice and avoid making users have to do that. - // Since boolean flags and shortname flags don't show the = form, let's go that route and never show it. - // The = form will still work, we just won't suggest it. - // This also makes the list of suggested flags shorter as we avoid all the = forms. - // - // if len(flag.NoOptDefVal) == 0 { - // // Flag requires a value, so it can be suffixed with = - // flagName += "=" - // completions = append(completions, fmt.Sprintf("%s\t%s", flagName, flag.Usage)) - // } - } - - flagName = "-" + flag.Shorthand - if len(flag.Shorthand) > 0 && strings.HasPrefix(flagName, toComplete) { - completions = append(completions, fmt.Sprintf("%s\t%s", flagName, flag.Usage)) - } - - return completions -} - -func completeRequireFlags(finalCmd *Command, toComplete string) []string { - var completions []string - - doCompleteRequiredFlags := func(flag *pflag.Flag) { - if _, present := flag.Annotations[BashCompOneRequiredFlag]; present { - if !flag.Changed { - // If the flag is not already present, we suggest it as a completion - completions = append(completions, getFlagNameCompletions(flag, toComplete)...) - } - } - } - - // We cannot use finalCmd.Flags() because we may not have called ParsedFlags() for commands - // that have set DisableFlagParsing; it is ParseFlags() that merges the inherited and - // non-inherited flags. - finalCmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) { - doCompleteRequiredFlags(flag) - }) - finalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) { - doCompleteRequiredFlags(flag) - }) - - return completions -} - -func checkIfFlagCompletion(finalCmd *Command, args []string, lastArg string) (*pflag.Flag, []string, string, error) { - if finalCmd.DisableFlagParsing { - // We only do flag completion if we are allowed to parse flags - // This is important for commands which have requested to do their own flag completion. - return nil, args, lastArg, nil - } - - var flagName string - trimmedArgs := args - flagWithEqual := false - orgLastArg := lastArg - - // When doing completion of a flag name, as soon as an argument starts with - // a '-' we know it is a flag. We cannot use isFlagArg() here as that function - // requires the flag name to be complete - if len(lastArg) > 0 && lastArg[0] == '-' { - if index := strings.Index(lastArg, "="); index >= 0 { - // Flag with an = - if strings.HasPrefix(lastArg[:index], "--") { - // Flag has full name - flagName = lastArg[2:index] - } else { - // Flag is shorthand - // We have to get the last shorthand flag name - // e.g. `-asd` => d to provide the correct completion - // https://github.com/spf13/cobra/issues/1257 - flagName = lastArg[index-1 : index] - } - lastArg = lastArg[index+1:] - flagWithEqual = true - } else { - // Normal flag completion - return nil, args, lastArg, nil - } - } - - if len(flagName) == 0 { - if len(args) > 0 { - prevArg := args[len(args)-1] - if isFlagArg(prevArg) { - // Only consider the case where the flag does not contain an =. - // If the flag contains an = it means it has already been fully processed, - // so we don't need to deal with it here. - if index := strings.Index(prevArg, "="); index < 0 { - if strings.HasPrefix(prevArg, "--") { - // Flag has full name - flagName = prevArg[2:] - } else { - // Flag is shorthand - // We have to get the last shorthand flag name - // e.g. `-asd` => d to provide the correct completion - // https://github.com/spf13/cobra/issues/1257 - flagName = prevArg[len(prevArg)-1:] - } - // Remove the uncompleted flag or else there could be an error created - // for an invalid value for that flag - trimmedArgs = args[:len(args)-1] - } - } - } - } - - if len(flagName) == 0 { - // Not doing flag completion - return nil, trimmedArgs, lastArg, nil - } - - flag := findFlag(finalCmd, flagName) - if flag == nil { - // Flag not supported by this command, the interspersed option might be set so return the original args - return nil, args, orgLastArg, &flagCompError{subCommand: finalCmd.Name(), flagName: flagName} - } - - if !flagWithEqual { - if len(flag.NoOptDefVal) != 0 { - // We had assumed dealing with a two-word flag but the flag is a boolean flag. - // In that case, there is no value following it, so we are not really doing flag completion. - // Reset everything to do noun completion. - trimmedArgs = args - flag = nil - } - } - - return flag, trimmedArgs, lastArg, nil -} - -// InitDefaultCompletionCmd adds a default 'completion' command to c. -// This function will do nothing if any of the following is true: -// 1- the feature has been explicitly disabled by the program, -// 2- c has no subcommands (to avoid creating one), -// 3- c already has a 'completion' command provided by the program. -func (c *Command) InitDefaultCompletionCmd() { - if c.CompletionOptions.DisableDefaultCmd || !c.HasSubCommands() { - return - } - - for _, cmd := range c.commands { - if cmd.Name() == compCmdName || cmd.HasAlias(compCmdName) { - // A completion command is already available - return - } - } - - haveNoDescFlag := !c.CompletionOptions.DisableNoDescFlag && !c.CompletionOptions.DisableDescriptions - - completionCmd := &Command{ - Use: compCmdName, - Short: "Generate the autocompletion script for the specified shell", - Long: fmt.Sprintf(`Generate the autocompletion script for %[1]s for the specified shell. -See each sub-command's help for details on how to use the generated script. -`, c.Root().Name()), - Args: NoArgs, - ValidArgsFunction: NoFileCompletions, - Hidden: c.CompletionOptions.HiddenDefaultCmd, - GroupID: c.completionCommandGroupID, - } - c.AddCommand(completionCmd) - - out := c.OutOrStdout() - noDesc := c.CompletionOptions.DisableDescriptions - shortDesc := "Generate the autocompletion script for %s" - bash := &Command{ - Use: "bash", - Short: fmt.Sprintf(shortDesc, "bash"), - Long: fmt.Sprintf(`Generate the autocompletion script for the bash shell. - -This script depends on the 'bash-completion' package. -If it is not installed already, you can install it via your OS's package manager. - -To load completions in your current shell session: - - source <(%[1]s completion bash) - -To load completions for every new session, execute once: - -#### Linux: - - %[1]s completion bash > /etc/bash_completion.d/%[1]s - -#### macOS: - - %[1]s completion bash > $(brew --prefix)/etc/bash_completion.d/%[1]s - -You will need to start a new shell for this setup to take effect. -`, c.Root().Name()), - Args: NoArgs, - DisableFlagsInUseLine: true, - ValidArgsFunction: NoFileCompletions, - RunE: func(cmd *Command, args []string) error { - return cmd.Root().GenBashCompletionV2(out, !noDesc) - }, - } - if haveNoDescFlag { - bash.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc) - } - - zsh := &Command{ - Use: "zsh", - Short: fmt.Sprintf(shortDesc, "zsh"), - Long: fmt.Sprintf(`Generate the autocompletion script for the zsh shell. - -If shell completion is not already enabled in your environment you will need -to enable it. You can execute the following once: - - echo "autoload -U compinit; compinit" >> ~/.zshrc - -To load completions in your current shell session: - - source <(%[1]s completion zsh) - -To load completions for every new session, execute once: - -#### Linux: - - %[1]s completion zsh > "${fpath[1]}/_%[1]s" - -#### macOS: - - %[1]s completion zsh > $(brew --prefix)/share/zsh/site-functions/_%[1]s - -You will need to start a new shell for this setup to take effect. -`, c.Root().Name()), - Args: NoArgs, - ValidArgsFunction: NoFileCompletions, - RunE: func(cmd *Command, args []string) error { - if noDesc { - return cmd.Root().GenZshCompletionNoDesc(out) - } - return cmd.Root().GenZshCompletion(out) - }, - } - if haveNoDescFlag { - zsh.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc) - } - - fish := &Command{ - Use: "fish", - Short: fmt.Sprintf(shortDesc, "fish"), - Long: fmt.Sprintf(`Generate the autocompletion script for the fish shell. - -To load completions in your current shell session: - - %[1]s completion fish | source - -To load completions for every new session, execute once: - - %[1]s completion fish > ~/.config/fish/completions/%[1]s.fish - -You will need to start a new shell for this setup to take effect. -`, c.Root().Name()), - Args: NoArgs, - ValidArgsFunction: NoFileCompletions, - RunE: func(cmd *Command, args []string) error { - return cmd.Root().GenFishCompletion(out, !noDesc) - }, - } - if haveNoDescFlag { - fish.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc) - } - - powershell := &Command{ - Use: "powershell", - Short: fmt.Sprintf(shortDesc, "powershell"), - Long: fmt.Sprintf(`Generate the autocompletion script for powershell. - -To load completions in your current shell session: - - %[1]s completion powershell | Out-String | Invoke-Expression - -To load completions for every new session, add the output of the above command -to your powershell profile. -`, c.Root().Name()), - Args: NoArgs, - ValidArgsFunction: NoFileCompletions, - RunE: func(cmd *Command, args []string) error { - if noDesc { - return cmd.Root().GenPowerShellCompletion(out) - } - return cmd.Root().GenPowerShellCompletionWithDesc(out) - - }, - } - if haveNoDescFlag { - powershell.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc) - } - - completionCmd.AddCommand(bash, zsh, fish, powershell) -} - -func findFlag(cmd *Command, name string) *pflag.Flag { - flagSet := cmd.Flags() - if len(name) == 1 { - // First convert the short flag into a long flag - // as the cmd.Flag() search only accepts long flags - if short := flagSet.ShorthandLookup(name); short != nil { - name = short.Name - } else { - set := cmd.InheritedFlags() - if short = set.ShorthandLookup(name); short != nil { - name = short.Name - } else { - return nil - } - } - } - return cmd.Flag(name) -} - -// CompDebug prints the specified string to the same file as where the -// completion script prints its logs. -// Note that completion printouts should never be on stdout as they would -// be wrongly interpreted as actual completion choices by the completion script. -func CompDebug(msg string, printToStdErr bool) { - msg = fmt.Sprintf("[Debug] %s", msg) - - // Such logs are only printed when the user has set the environment - // variable BASH_COMP_DEBUG_FILE to the path of some file to be used. - if path := os.Getenv("BASH_COMP_DEBUG_FILE"); path != "" { - f, err := os.OpenFile(path, - os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) - if err == nil { - defer f.Close() - WriteStringAndCheck(f, msg) - } - } - - if printToStdErr { - // Must print to stderr for this not to be read by the completion script. - fmt.Fprint(os.Stderr, msg) - } -} - -// CompDebugln prints the specified string with a newline at the end -// to the same file as where the completion script prints its logs. -// Such logs are only printed when the user has set the environment -// variable BASH_COMP_DEBUG_FILE to the path of some file to be used. -func CompDebugln(msg string, printToStdErr bool) { - CompDebug(fmt.Sprintf("%s\n", msg), printToStdErr) -} - -// CompError prints the specified completion message to stderr. -func CompError(msg string) { - msg = fmt.Sprintf("[Error] %s", msg) - CompDebug(msg, true) -} - -// CompErrorln prints the specified completion message to stderr with a newline at the end. -func CompErrorln(msg string) { - CompError(fmt.Sprintf("%s\n", msg)) -} diff --git a/backend/vendor/github.com/spf13/cobra/fish_completions.go b/backend/vendor/github.com/spf13/cobra/fish_completions.go deleted file mode 100644 index 12ca0d2b..00000000 --- a/backend/vendor/github.com/spf13/cobra/fish_completions.go +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" - "strings" -) - -func genFishComp(buf io.StringWriter, name string, includeDesc bool) { - // Variables should not contain a '-' or ':' character - nameForVar := name - nameForVar = strings.ReplaceAll(nameForVar, "-", "_") - nameForVar = strings.ReplaceAll(nameForVar, ":", "_") - - compCmd := ShellCompRequestCmd - if !includeDesc { - compCmd = ShellCompNoDescRequestCmd - } - WriteStringAndCheck(buf, fmt.Sprintf("# fish completion for %-36s -*- shell-script -*-\n", name)) - WriteStringAndCheck(buf, fmt.Sprintf(` -function __%[1]s_debug - set -l file "$BASH_COMP_DEBUG_FILE" - if test -n "$file" - echo "$argv" >> $file - end -end - -function __%[1]s_perform_completion - __%[1]s_debug "Starting __%[1]s_perform_completion" - - # Extract all args except the last one - set -l args (commandline -opc) - # Extract the last arg and escape it in case it is a space - set -l lastArg (string escape -- (commandline -ct)) - - __%[1]s_debug "args: $args" - __%[1]s_debug "last arg: $lastArg" - - # Disable ActiveHelp which is not supported for fish shell - set -l requestComp "%[10]s=0 $args[1] %[3]s $args[2..-1] $lastArg" - - __%[1]s_debug "Calling $requestComp" - set -l results (eval $requestComp 2> /dev/null) - - # Some programs may output extra empty lines after the directive. - # Let's ignore them or else it will break completion. - # Ref: https://github.com/spf13/cobra/issues/1279 - for line in $results[-1..1] - if test (string trim -- $line) = "" - # Found an empty line, remove it - set results $results[1..-2] - else - # Found non-empty line, we have our proper output - break - end - end - - set -l comps $results[1..-2] - set -l directiveLine $results[-1] - - # For Fish, when completing a flag with an = (e.g., -n=) - # completions must be prefixed with the flag - set -l flagPrefix (string match -r -- '-.*=' "$lastArg") - - __%[1]s_debug "Comps: $comps" - __%[1]s_debug "DirectiveLine: $directiveLine" - __%[1]s_debug "flagPrefix: $flagPrefix" - - for comp in $comps - printf "%%s%%s\n" "$flagPrefix" "$comp" - end - - printf "%%s\n" "$directiveLine" -end - -# this function limits calls to __%[1]s_perform_completion, by caching the result behind $__%[1]s_perform_completion_once_result -function __%[1]s_perform_completion_once - __%[1]s_debug "Starting __%[1]s_perform_completion_once" - - if test -n "$__%[1]s_perform_completion_once_result" - __%[1]s_debug "Seems like a valid result already exists, skipping __%[1]s_perform_completion" - return 0 - end - - set --global __%[1]s_perform_completion_once_result (__%[1]s_perform_completion) - if test -z "$__%[1]s_perform_completion_once_result" - __%[1]s_debug "No completions, probably due to a failure" - return 1 - end - - __%[1]s_debug "Performed completions and set __%[1]s_perform_completion_once_result" - return 0 -end - -# this function is used to clear the $__%[1]s_perform_completion_once_result variable after completions are run -function __%[1]s_clear_perform_completion_once_result - __%[1]s_debug "" - __%[1]s_debug "========= clearing previously set __%[1]s_perform_completion_once_result variable ==========" - set --erase __%[1]s_perform_completion_once_result - __%[1]s_debug "Succesfully erased the variable __%[1]s_perform_completion_once_result" -end - -function __%[1]s_requires_order_preservation - __%[1]s_debug "" - __%[1]s_debug "========= checking if order preservation is required ==========" - - __%[1]s_perform_completion_once - if test -z "$__%[1]s_perform_completion_once_result" - __%[1]s_debug "Error determining if order preservation is required" - return 1 - end - - set -l directive (string sub --start 2 $__%[1]s_perform_completion_once_result[-1]) - __%[1]s_debug "Directive is: $directive" - - set -l shellCompDirectiveKeepOrder %[9]d - set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) %% 2) - __%[1]s_debug "Keeporder is: $keeporder" - - if test $keeporder -ne 0 - __%[1]s_debug "This does require order preservation" - return 0 - end - - __%[1]s_debug "This doesn't require order preservation" - return 1 -end - - -# This function does two things: -# - Obtain the completions and store them in the global __%[1]s_comp_results -# - Return false if file completion should be performed -function __%[1]s_prepare_completions - __%[1]s_debug "" - __%[1]s_debug "========= starting completion logic ==========" - - # Start fresh - set --erase __%[1]s_comp_results - - __%[1]s_perform_completion_once - __%[1]s_debug "Completion results: $__%[1]s_perform_completion_once_result" - - if test -z "$__%[1]s_perform_completion_once_result" - __%[1]s_debug "No completion, probably due to a failure" - # Might as well do file completion, in case it helps - return 1 - end - - set -l directive (string sub --start 2 $__%[1]s_perform_completion_once_result[-1]) - set --global __%[1]s_comp_results $__%[1]s_perform_completion_once_result[1..-2] - - __%[1]s_debug "Completions are: $__%[1]s_comp_results" - __%[1]s_debug "Directive is: $directive" - - set -l shellCompDirectiveError %[4]d - set -l shellCompDirectiveNoSpace %[5]d - set -l shellCompDirectiveNoFileComp %[6]d - set -l shellCompDirectiveFilterFileExt %[7]d - set -l shellCompDirectiveFilterDirs %[8]d - - if test -z "$directive" - set directive 0 - end - - set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) %% 2) - if test $compErr -eq 1 - __%[1]s_debug "Received error directive: aborting." - # Might as well do file completion, in case it helps - return 1 - end - - set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) %% 2) - set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) %% 2) - if test $filefilter -eq 1; or test $dirfilter -eq 1 - __%[1]s_debug "File extension filtering or directory filtering not supported" - # Do full file completion instead - return 1 - end - - set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) %% 2) - set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) %% 2) - - __%[1]s_debug "nospace: $nospace, nofiles: $nofiles" - - # If we want to prevent a space, or if file completion is NOT disabled, - # we need to count the number of valid completions. - # To do so, we will filter on prefix as the completions we have received - # may not already be filtered so as to allow fish to match on different - # criteria than the prefix. - if test $nospace -ne 0; or test $nofiles -eq 0 - set -l prefix (commandline -t | string escape --style=regex) - __%[1]s_debug "prefix: $prefix" - - set -l completions (string match -r -- "^$prefix.*" $__%[1]s_comp_results) - set --global __%[1]s_comp_results $completions - __%[1]s_debug "Filtered completions are: $__%[1]s_comp_results" - - # Important not to quote the variable for count to work - set -l numComps (count $__%[1]s_comp_results) - __%[1]s_debug "numComps: $numComps" - - if test $numComps -eq 1; and test $nospace -ne 0 - # We must first split on \t to get rid of the descriptions to be - # able to check what the actual completion will be. - # We don't need descriptions anyway since there is only a single - # real completion which the shell will expand immediately. - set -l split (string split --max 1 \t $__%[1]s_comp_results[1]) - - # Fish won't add a space if the completion ends with any - # of the following characters: @=/:., - set -l lastChar (string sub -s -1 -- $split) - if not string match -r -q "[@=/:.,]" -- "$lastChar" - # In other cases, to support the "nospace" directive we trick the shell - # by outputting an extra, longer completion. - __%[1]s_debug "Adding second completion to perform nospace directive" - set --global __%[1]s_comp_results $split[1] $split[1]. - __%[1]s_debug "Completions are now: $__%[1]s_comp_results" - end - end - - if test $numComps -eq 0; and test $nofiles -eq 0 - # To be consistent with bash and zsh, we only trigger file - # completion when there are no other completions - __%[1]s_debug "Requesting file completion" - return 1 - end - end - - return 0 -end - -# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves -# so we can properly delete any completions provided by another script. -# Only do this if the program can be found, or else fish may print some errors; besides, -# the existing completions will only be loaded if the program can be found. -if type -q "%[2]s" - # The space after the program name is essential to trigger completion for the program - # and not completion of the program name itself. - # Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish. - complete --do-complete "%[2]s " > /dev/null 2>&1 -end - -# Remove any pre-existing completions for the program since we will be handling all of them. -complete -c %[2]s -e - -# this will get called after the two calls below and clear the $__%[1]s_perform_completion_once_result global -complete -c %[2]s -n '__%[1]s_clear_perform_completion_once_result' -# The call to __%[1]s_prepare_completions will setup __%[1]s_comp_results -# which provides the program's completion choices. -# If this doesn't require order preservation, we don't use the -k flag -complete -c %[2]s -n 'not __%[1]s_requires_order_preservation && __%[1]s_prepare_completions' -f -a '$__%[1]s_comp_results' -# otherwise we use the -k flag -complete -k -c %[2]s -n '__%[1]s_requires_order_preservation && __%[1]s_prepare_completions' -f -a '$__%[1]s_comp_results' -`, nameForVar, name, compCmd, - ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp, - ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name))) -} - -// GenFishCompletion generates fish completion file and writes to the passed writer. -func (c *Command) GenFishCompletion(w io.Writer, includeDesc bool) error { - buf := new(bytes.Buffer) - genFishComp(buf, c.Name(), includeDesc) - _, err := buf.WriteTo(w) - return err -} - -// GenFishCompletionFile generates fish completion file. -func (c *Command) GenFishCompletionFile(filename string, includeDesc bool) error { - outFile, err := os.Create(filename) - if err != nil { - return err - } - defer outFile.Close() - - return c.GenFishCompletion(outFile, includeDesc) -} diff --git a/backend/vendor/github.com/spf13/cobra/fish_completions.md b/backend/vendor/github.com/spf13/cobra/fish_completions.md deleted file mode 100644 index 19b2ed12..00000000 --- a/backend/vendor/github.com/spf13/cobra/fish_completions.md +++ /dev/null @@ -1,4 +0,0 @@ -## Generating Fish Completions For Your cobra.Command - -Please refer to [Shell Completions](shell_completions.md) for details. - diff --git a/backend/vendor/github.com/spf13/cobra/flag_groups.go b/backend/vendor/github.com/spf13/cobra/flag_groups.go deleted file mode 100644 index b35fde15..00000000 --- a/backend/vendor/github.com/spf13/cobra/flag_groups.go +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "fmt" - "sort" - "strings" - - flag "github.com/spf13/pflag" -) - -const ( - requiredAsGroup = "cobra_annotation_required_if_others_set" - mutuallyExclusive = "cobra_annotation_mutually_exclusive" -) - -// MarkFlagsRequiredTogether marks the given flags with annotations so that Cobra errors -// if the command is invoked with a subset (but not all) of the given flags. -func (c *Command) MarkFlagsRequiredTogether(flagNames ...string) { - c.mergePersistentFlags() - for _, v := range flagNames { - f := c.Flags().Lookup(v) - if f == nil { - panic(fmt.Sprintf("Failed to find flag %q and mark it as being required in a flag group", v)) - } - if err := c.Flags().SetAnnotation(v, requiredAsGroup, append(f.Annotations[requiredAsGroup], strings.Join(flagNames, " "))); err != nil { - // Only errs if the flag isn't found. - panic(err) - } - } -} - -// MarkFlagsMutuallyExclusive marks the given flags with annotations so that Cobra errors -// if the command is invoked with more than one flag from the given set of flags. -func (c *Command) MarkFlagsMutuallyExclusive(flagNames ...string) { - c.mergePersistentFlags() - for _, v := range flagNames { - f := c.Flags().Lookup(v) - if f == nil { - panic(fmt.Sprintf("Failed to find flag %q and mark it as being in a mutually exclusive flag group", v)) - } - // Each time this is called is a single new entry; this allows it to be a member of multiple groups if needed. - if err := c.Flags().SetAnnotation(v, mutuallyExclusive, append(f.Annotations[mutuallyExclusive], strings.Join(flagNames, " "))); err != nil { - panic(err) - } - } -} - -// ValidateFlagGroups validates the mutuallyExclusive/requiredAsGroup logic and returns the -// first error encountered. -func (c *Command) ValidateFlagGroups() error { - if c.DisableFlagParsing { - return nil - } - - flags := c.Flags() - - // groupStatus format is the list of flags as a unique ID, - // then a map of each flag name and whether it is set or not. - groupStatus := map[string]map[string]bool{} - mutuallyExclusiveGroupStatus := map[string]map[string]bool{} - flags.VisitAll(func(pflag *flag.Flag) { - processFlagForGroupAnnotation(flags, pflag, requiredAsGroup, groupStatus) - processFlagForGroupAnnotation(flags, pflag, mutuallyExclusive, mutuallyExclusiveGroupStatus) - }) - - if err := validateRequiredFlagGroups(groupStatus); err != nil { - return err - } - if err := validateExclusiveFlagGroups(mutuallyExclusiveGroupStatus); err != nil { - return err - } - return nil -} - -func hasAllFlags(fs *flag.FlagSet, flagnames ...string) bool { - for _, fname := range flagnames { - f := fs.Lookup(fname) - if f == nil { - return false - } - } - return true -} - -func processFlagForGroupAnnotation(flags *flag.FlagSet, pflag *flag.Flag, annotation string, groupStatus map[string]map[string]bool) { - groupInfo, found := pflag.Annotations[annotation] - if found { - for _, group := range groupInfo { - if groupStatus[group] == nil { - flagnames := strings.Split(group, " ") - - // Only consider this flag group at all if all the flags are defined. - if !hasAllFlags(flags, flagnames...) { - continue - } - - groupStatus[group] = map[string]bool{} - for _, name := range flagnames { - groupStatus[group][name] = false - } - } - - groupStatus[group][pflag.Name] = pflag.Changed - } - } -} - -func validateRequiredFlagGroups(data map[string]map[string]bool) error { - keys := sortedKeys(data) - for _, flagList := range keys { - flagnameAndStatus := data[flagList] - - unset := []string{} - for flagname, isSet := range flagnameAndStatus { - if !isSet { - unset = append(unset, flagname) - } - } - if len(unset) == len(flagnameAndStatus) || len(unset) == 0 { - continue - } - - // Sort values, so they can be tested/scripted against consistently. - sort.Strings(unset) - return fmt.Errorf("if any flags in the group [%v] are set they must all be set; missing %v", flagList, unset) - } - - return nil -} - -func validateExclusiveFlagGroups(data map[string]map[string]bool) error { - keys := sortedKeys(data) - for _, flagList := range keys { - flagnameAndStatus := data[flagList] - var set []string - for flagname, isSet := range flagnameAndStatus { - if isSet { - set = append(set, flagname) - } - } - if len(set) == 0 || len(set) == 1 { - continue - } - - // Sort values, so they can be tested/scripted against consistently. - sort.Strings(set) - return fmt.Errorf("if any flags in the group [%v] are set none of the others can be; %v were all set", flagList, set) - } - return nil -} - -func sortedKeys(m map[string]map[string]bool) []string { - keys := make([]string, len(m)) - i := 0 - for k := range m { - keys[i] = k - i++ - } - sort.Strings(keys) - return keys -} - -// enforceFlagGroupsForCompletion will do the following: -// - when a flag in a group is present, other flags in the group will be marked required -// - when a flag in a mutually exclusive group is present, other flags in the group will be marked as hidden -// This allows the standard completion logic to behave appropriately for flag groups -func (c *Command) enforceFlagGroupsForCompletion() { - if c.DisableFlagParsing { - return - } - - flags := c.Flags() - groupStatus := map[string]map[string]bool{} - mutuallyExclusiveGroupStatus := map[string]map[string]bool{} - c.Flags().VisitAll(func(pflag *flag.Flag) { - processFlagForGroupAnnotation(flags, pflag, requiredAsGroup, groupStatus) - processFlagForGroupAnnotation(flags, pflag, mutuallyExclusive, mutuallyExclusiveGroupStatus) - }) - - // If a flag that is part of a group is present, we make all the other flags - // of that group required so that the shell completion suggests them automatically - for flagList, flagnameAndStatus := range groupStatus { - for _, isSet := range flagnameAndStatus { - if isSet { - // One of the flags of the group is set, mark the other ones as required - for _, fName := range strings.Split(flagList, " ") { - _ = c.MarkFlagRequired(fName) - } - } - } - } - - // If a flag that is mutually exclusive to others is present, we hide the other - // flags of that group so the shell completion does not suggest them - for flagList, flagnameAndStatus := range mutuallyExclusiveGroupStatus { - for flagName, isSet := range flagnameAndStatus { - if isSet { - // One of the flags of the mutually exclusive group is set, mark the other ones as hidden - // Don't mark the flag that is already set as hidden because it may be an - // array or slice flag and therefore must continue being suggested - for _, fName := range strings.Split(flagList, " ") { - if fName != flagName { - flag := c.Flags().Lookup(fName) - flag.Hidden = true - } - } - } - } - } -} diff --git a/backend/vendor/github.com/spf13/cobra/powershell_completions.go b/backend/vendor/github.com/spf13/cobra/powershell_completions.go deleted file mode 100644 index 177d2755..00000000 --- a/backend/vendor/github.com/spf13/cobra/powershell_completions.go +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// The generated scripts require PowerShell v5.0+ (which comes Windows 10, but -// can be downloaded separately for windows 7 or 8.1). - -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" - "strings" -) - -func genPowerShellComp(buf io.StringWriter, name string, includeDesc bool) { - // Variables should not contain a '-' or ':' character - nameForVar := name - nameForVar = strings.Replace(nameForVar, "-", "_", -1) - nameForVar = strings.Replace(nameForVar, ":", "_", -1) - - compCmd := ShellCompRequestCmd - if !includeDesc { - compCmd = ShellCompNoDescRequestCmd - } - WriteStringAndCheck(buf, fmt.Sprintf(`# powershell completion for %-36[1]s -*- shell-script -*- - -function __%[1]s_debug { - if ($env:BASH_COMP_DEBUG_FILE) { - "$args" | Out-File -Append -FilePath "$env:BASH_COMP_DEBUG_FILE" - } -} - -filter __%[1]s_escapeStringWithSpecialChars { -`+" $_ -replace '\\s|#|@|\\$|;|,|''|\\{|\\}|\\(|\\)|\"|`|\\||<|>|&','`$&'"+` -} - -[scriptblock]$__%[2]sCompleterBlock = { - param( - $WordToComplete, - $CommandAst, - $CursorPosition - ) - - # Get the current command line and convert into a string - $Command = $CommandAst.CommandElements - $Command = "$Command" - - __%[1]s_debug "" - __%[1]s_debug "========= starting completion logic ==========" - __%[1]s_debug "WordToComplete: $WordToComplete Command: $Command CursorPosition: $CursorPosition" - - # The user could have moved the cursor backwards on the command-line. - # We need to trigger completion from the $CursorPosition location, so we need - # to truncate the command-line ($Command) up to the $CursorPosition location. - # Make sure the $Command is longer then the $CursorPosition before we truncate. - # This happens because the $Command does not include the last space. - if ($Command.Length -gt $CursorPosition) { - $Command=$Command.Substring(0,$CursorPosition) - } - __%[1]s_debug "Truncated command: $Command" - - $ShellCompDirectiveError=%[4]d - $ShellCompDirectiveNoSpace=%[5]d - $ShellCompDirectiveNoFileComp=%[6]d - $ShellCompDirectiveFilterFileExt=%[7]d - $ShellCompDirectiveFilterDirs=%[8]d - $ShellCompDirectiveKeepOrder=%[9]d - - # Prepare the command to request completions for the program. - # Split the command at the first space to separate the program and arguments. - $Program,$Arguments = $Command.Split(" ",2) - - $RequestComp="$Program %[3]s $Arguments" - __%[1]s_debug "RequestComp: $RequestComp" - - # we cannot use $WordToComplete because it - # has the wrong values if the cursor was moved - # so use the last argument - if ($WordToComplete -ne "" ) { - $WordToComplete = $Arguments.Split(" ")[-1] - } - __%[1]s_debug "New WordToComplete: $WordToComplete" - - - # Check for flag with equal sign - $IsEqualFlag = ($WordToComplete -Like "--*=*" ) - if ( $IsEqualFlag ) { - __%[1]s_debug "Completing equal sign flag" - # Remove the flag part - $Flag,$WordToComplete = $WordToComplete.Split("=",2) - } - - if ( $WordToComplete -eq "" -And ( -Not $IsEqualFlag )) { - # If the last parameter is complete (there is a space following it) - # We add an extra empty parameter so we can indicate this to the go method. - __%[1]s_debug "Adding extra empty parameter" - # PowerShell 7.2+ changed the way how the arguments are passed to executables, - # so for pre-7.2 or when Legacy argument passing is enabled we need to use -`+" # `\"`\" to pass an empty argument, a \"\" or '' does not work!!!"+` - if ($PSVersionTable.PsVersion -lt [version]'7.2.0' -or - ($PSVersionTable.PsVersion -lt [version]'7.3.0' -and -not [ExperimentalFeature]::IsEnabled("PSNativeCommandArgumentPassing")) -or - (($PSVersionTable.PsVersion -ge [version]'7.3.0' -or [ExperimentalFeature]::IsEnabled("PSNativeCommandArgumentPassing")) -and - $PSNativeCommandArgumentPassing -eq 'Legacy')) { -`+" $RequestComp=\"$RequestComp\" + ' `\"`\"'"+` - } else { - $RequestComp="$RequestComp" + ' ""' - } - } - - __%[1]s_debug "Calling $RequestComp" - # First disable ActiveHelp which is not supported for Powershell - $env:%[10]s=0 - - #call the command store the output in $out and redirect stderr and stdout to null - # $Out is an array contains each line per element - Invoke-Expression -OutVariable out "$RequestComp" 2>&1 | Out-Null - - # get directive from last line - [int]$Directive = $Out[-1].TrimStart(':') - if ($Directive -eq "") { - # There is no directive specified - $Directive = 0 - } - __%[1]s_debug "The completion directive is: $Directive" - - # remove directive (last element) from out - $Out = $Out | Where-Object { $_ -ne $Out[-1] } - __%[1]s_debug "The completions are: $Out" - - if (($Directive -band $ShellCompDirectiveError) -ne 0 ) { - # Error code. No completion. - __%[1]s_debug "Received error from custom completion go code" - return - } - - $Longest = 0 - [Array]$Values = $Out | ForEach-Object { - #Split the output in name and description -`+" $Name, $Description = $_.Split(\"`t\",2)"+` - __%[1]s_debug "Name: $Name Description: $Description" - - # Look for the longest completion so that we can format things nicely - if ($Longest -lt $Name.Length) { - $Longest = $Name.Length - } - - # Set the description to a one space string if there is none set. - # This is needed because the CompletionResult does not accept an empty string as argument - if (-Not $Description) { - $Description = " " - } - @{Name="$Name";Description="$Description"} - } - - - $Space = " " - if (($Directive -band $ShellCompDirectiveNoSpace) -ne 0 ) { - # remove the space here - __%[1]s_debug "ShellCompDirectiveNoSpace is called" - $Space = "" - } - - if ((($Directive -band $ShellCompDirectiveFilterFileExt) -ne 0 ) -or - (($Directive -band $ShellCompDirectiveFilterDirs) -ne 0 )) { - __%[1]s_debug "ShellCompDirectiveFilterFileExt ShellCompDirectiveFilterDirs are not supported" - - # return here to prevent the completion of the extensions - return - } - - $Values = $Values | Where-Object { - # filter the result - $_.Name -like "$WordToComplete*" - - # Join the flag back if we have an equal sign flag - if ( $IsEqualFlag ) { - __%[1]s_debug "Join the equal sign flag back to the completion value" - $_.Name = $Flag + "=" + $_.Name - } - } - - # we sort the values in ascending order by name if keep order isn't passed - if (($Directive -band $ShellCompDirectiveKeepOrder) -eq 0 ) { - $Values = $Values | Sort-Object -Property Name - } - - if (($Directive -band $ShellCompDirectiveNoFileComp) -ne 0 ) { - __%[1]s_debug "ShellCompDirectiveNoFileComp is called" - - if ($Values.Length -eq 0) { - # Just print an empty string here so the - # shell does not start to complete paths. - # We cannot use CompletionResult here because - # it does not accept an empty string as argument. - "" - return - } - } - - # Get the current mode - $Mode = (Get-PSReadLineKeyHandler | Where-Object {$_.Key -eq "Tab" }).Function - __%[1]s_debug "Mode: $Mode" - - $Values | ForEach-Object { - - # store temporary because switch will overwrite $_ - $comp = $_ - - # PowerShell supports three different completion modes - # - TabCompleteNext (default windows style - on each key press the next option is displayed) - # - Complete (works like bash) - # - MenuComplete (works like zsh) - # You set the mode with Set-PSReadLineKeyHandler -Key Tab -Function - - # CompletionResult Arguments: - # 1) CompletionText text to be used as the auto completion result - # 2) ListItemText text to be displayed in the suggestion list - # 3) ResultType type of completion result - # 4) ToolTip text for the tooltip with details about the object - - switch ($Mode) { - - # bash like - "Complete" { - - if ($Values.Length -eq 1) { - __%[1]s_debug "Only one completion left" - - # insert space after value - [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") - - } else { - # Add the proper number of spaces to align the descriptions - while($comp.Name.Length -lt $Longest) { - $comp.Name = $comp.Name + " " - } - - # Check for empty description and only add parentheses if needed - if ($($comp.Description) -eq " " ) { - $Description = "" - } else { - $Description = " ($($comp.Description))" - } - - [System.Management.Automation.CompletionResult]::new("$($comp.Name)$Description", "$($comp.Name)$Description", 'ParameterValue', "$($comp.Description)") - } - } - - # zsh like - "MenuComplete" { - # insert space after value - # MenuComplete will automatically show the ToolTip of - # the highlighted value at the bottom of the suggestions. - [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") - } - - # TabCompleteNext and in case we get something unknown - Default { - # Like MenuComplete but we don't want to add a space here because - # the user need to press space anyway to get the completion. - # Description will not be shown because that's not possible with TabCompleteNext - [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars), "$($comp.Name)", 'ParameterValue', "$($comp.Description)") - } - } - - } -} - -Register-ArgumentCompleter -CommandName '%[1]s' -ScriptBlock $__%[2]sCompleterBlock -`, name, nameForVar, compCmd, - ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp, - ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name))) -} - -func (c *Command) genPowerShellCompletion(w io.Writer, includeDesc bool) error { - buf := new(bytes.Buffer) - genPowerShellComp(buf, c.Name(), includeDesc) - _, err := buf.WriteTo(w) - return err -} - -func (c *Command) genPowerShellCompletionFile(filename string, includeDesc bool) error { - outFile, err := os.Create(filename) - if err != nil { - return err - } - defer outFile.Close() - - return c.genPowerShellCompletion(outFile, includeDesc) -} - -// GenPowerShellCompletionFile generates powershell completion file without descriptions. -func (c *Command) GenPowerShellCompletionFile(filename string) error { - return c.genPowerShellCompletionFile(filename, false) -} - -// GenPowerShellCompletion generates powershell completion file without descriptions -// and writes it to the passed writer. -func (c *Command) GenPowerShellCompletion(w io.Writer) error { - return c.genPowerShellCompletion(w, false) -} - -// GenPowerShellCompletionFileWithDesc generates powershell completion file with descriptions. -func (c *Command) GenPowerShellCompletionFileWithDesc(filename string) error { - return c.genPowerShellCompletionFile(filename, true) -} - -// GenPowerShellCompletionWithDesc generates powershell completion file with descriptions -// and writes it to the passed writer. -func (c *Command) GenPowerShellCompletionWithDesc(w io.Writer) error { - return c.genPowerShellCompletion(w, true) -} diff --git a/backend/vendor/github.com/spf13/cobra/powershell_completions.md b/backend/vendor/github.com/spf13/cobra/powershell_completions.md deleted file mode 100644 index c449f1e5..00000000 --- a/backend/vendor/github.com/spf13/cobra/powershell_completions.md +++ /dev/null @@ -1,3 +0,0 @@ -# Generating PowerShell Completions For Your Own cobra.Command - -Please refer to [Shell Completions](shell_completions.md#powershell-completions) for details. diff --git a/backend/vendor/github.com/spf13/cobra/projects_using_cobra.md b/backend/vendor/github.com/spf13/cobra/projects_using_cobra.md deleted file mode 100644 index 8a291eb2..00000000 --- a/backend/vendor/github.com/spf13/cobra/projects_using_cobra.md +++ /dev/null @@ -1,64 +0,0 @@ -## Projects using Cobra - -- [Allero](https://github.com/allero-io/allero) -- [Arewefastyet](https://benchmark.vitess.io) -- [Arduino CLI](https://github.com/arduino/arduino-cli) -- [Bleve](https://blevesearch.com/) -- [Cilium](https://cilium.io/) -- [CloudQuery](https://github.com/cloudquery/cloudquery) -- [CockroachDB](https://www.cockroachlabs.com/) -- [Constellation](https://github.com/edgelesssys/constellation) -- [Cosmos SDK](https://github.com/cosmos/cosmos-sdk) -- [Datree](https://github.com/datreeio/datree) -- [Delve](https://github.com/derekparker/delve) -- [Docker (distribution)](https://github.com/docker/distribution) -- [Etcd](https://etcd.io/) -- [Gardener](https://github.com/gardener/gardenctl) -- [Giant Swarm's gsctl](https://github.com/giantswarm/gsctl) -- [Git Bump](https://github.com/erdaltsksn/git-bump) -- [GitHub CLI](https://github.com/cli/cli) -- [GitHub Labeler](https://github.com/erdaltsksn/gh-label) -- [Golangci-lint](https://golangci-lint.run) -- [GopherJS](https://github.com/gopherjs/gopherjs) -- [GoReleaser](https://goreleaser.com) -- [Helm](https://helm.sh) -- [Hugo](https://gohugo.io) -- [Infracost](https://github.com/infracost/infracost) -- [Istio](https://istio.io) -- [Kool](https://github.com/kool-dev/kool) -- [Kubernetes](https://kubernetes.io/) -- [Kubescape](https://github.com/kubescape/kubescape) -- [KubeVirt](https://github.com/kubevirt/kubevirt) -- [Linkerd](https://linkerd.io/) -- [Mattermost-server](https://github.com/mattermost/mattermost-server) -- [Mercure](https://mercure.rocks/) -- [Meroxa CLI](https://github.com/meroxa/cli) -- [Metal Stack CLI](https://github.com/metal-stack/metalctl) -- [Moby (former Docker)](https://github.com/moby/moby) -- [Moldy](https://github.com/Moldy-Community/moldy) -- [Multi-gitter](https://github.com/lindell/multi-gitter) -- [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) -- [nFPM](https://nfpm.goreleaser.com) -- [Okteto](https://github.com/okteto/okteto) -- [OpenShift](https://www.openshift.com/) -- [Ory Hydra](https://github.com/ory/hydra) -- [Ory Kratos](https://github.com/ory/kratos) -- [Pixie](https://github.com/pixie-io/pixie) -- [Polygon Edge](https://github.com/0xPolygon/polygon-edge) -- [Pouch](https://github.com/alibaba/pouch) -- [ProjectAtomic (enterprise)](https://www.projectatomic.io/) -- [Prototool](https://github.com/uber/prototool) -- [Pulumi](https://www.pulumi.com) -- [QRcp](https://github.com/claudiodangelis/qrcp) -- [Random](https://github.com/erdaltsksn/random) -- [Rclone](https://rclone.org/) -- [Scaleway CLI](https://github.com/scaleway/scaleway-cli) -- [Sia](https://github.com/SiaFoundation/siad) -- [Skaffold](https://skaffold.dev/) -- [Tendermint](https://github.com/tendermint/tendermint) -- [Twitch CLI](https://github.com/twitchdev/twitch-cli) -- [UpCloud CLI (`upctl`)](https://github.com/UpCloudLtd/upcloud-cli) -- [Vitess](https://vitess.io) -- VMware's [Tanzu Community Edition](https://github.com/vmware-tanzu/community-edition) & [Tanzu Framework](https://github.com/vmware-tanzu/tanzu-framework) -- [Werf](https://werf.io/) -- [ZITADEL](https://github.com/zitadel/zitadel) diff --git a/backend/vendor/github.com/spf13/cobra/shell_completions.go b/backend/vendor/github.com/spf13/cobra/shell_completions.go deleted file mode 100644 index b035742d..00000000 --- a/backend/vendor/github.com/spf13/cobra/shell_completions.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "github.com/spf13/pflag" -) - -// MarkFlagRequired instructs the various shell completion implementations to -// prioritize the named flag when performing completion, -// and causes your command to report an error if invoked without the flag. -func (c *Command) MarkFlagRequired(name string) error { - return MarkFlagRequired(c.Flags(), name) -} - -// MarkPersistentFlagRequired instructs the various shell completion implementations to -// prioritize the named persistent flag when performing completion, -// and causes your command to report an error if invoked without the flag. -func (c *Command) MarkPersistentFlagRequired(name string) error { - return MarkFlagRequired(c.PersistentFlags(), name) -} - -// MarkFlagRequired instructs the various shell completion implementations to -// prioritize the named flag when performing completion, -// and causes your command to report an error if invoked without the flag. -func MarkFlagRequired(flags *pflag.FlagSet, name string) error { - return flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{"true"}) -} - -// MarkFlagFilename instructs the various shell completion implementations to -// limit completions for the named flag to the specified file extensions. -func (c *Command) MarkFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(c.Flags(), name, extensions...) -} - -// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. -// The bash completion script will call the bash function f for the flag. -// -// This will only work for bash completion. -// It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows -// to register a Go function which will work across all shells. -func (c *Command) MarkFlagCustom(name string, f string) error { - return MarkFlagCustom(c.Flags(), name, f) -} - -// MarkPersistentFlagFilename instructs the various shell completion -// implementations to limit completions for the named persistent flag to the -// specified file extensions. -func (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(c.PersistentFlags(), name, extensions...) -} - -// MarkFlagFilename instructs the various shell completion implementations to -// limit completions for the named flag to the specified file extensions. -func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error { - return flags.SetAnnotation(name, BashCompFilenameExt, extensions) -} - -// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. -// The bash completion script will call the bash function f for the flag. -// -// This will only work for bash completion. -// It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows -// to register a Go function which will work across all shells. -func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error { - return flags.SetAnnotation(name, BashCompCustom, []string{f}) -} - -// MarkFlagDirname instructs the various shell completion implementations to -// limit completions for the named flag to directory names. -func (c *Command) MarkFlagDirname(name string) error { - return MarkFlagDirname(c.Flags(), name) -} - -// MarkPersistentFlagDirname instructs the various shell completion -// implementations to limit completions for the named persistent flag to -// directory names. -func (c *Command) MarkPersistentFlagDirname(name string) error { - return MarkFlagDirname(c.PersistentFlags(), name) -} - -// MarkFlagDirname instructs the various shell completion implementations to -// limit completions for the named flag to directory names. -func MarkFlagDirname(flags *pflag.FlagSet, name string) error { - return flags.SetAnnotation(name, BashCompSubdirsInDir, []string{}) -} diff --git a/backend/vendor/github.com/spf13/cobra/shell_completions.md b/backend/vendor/github.com/spf13/cobra/shell_completions.md deleted file mode 100644 index 065c0621..00000000 --- a/backend/vendor/github.com/spf13/cobra/shell_completions.md +++ /dev/null @@ -1,576 +0,0 @@ -# Generating shell completions - -Cobra can generate shell completions for multiple shells. -The currently supported shells are: -- Bash -- Zsh -- fish -- PowerShell - -Cobra will automatically provide your program with a fully functional `completion` command, -similarly to how it provides the `help` command. - -## Creating your own completion command - -If you do not wish to use the default `completion` command, you can choose to -provide your own, which will take precedence over the default one. (This also provides -backwards-compatibility with programs that already have their own `completion` command.) - -If you are using the `cobra-cli` generator, -which can be found at [spf13/cobra-cli](https://github.com/spf13/cobra-cli), -you can create a completion command by running - -```bash -cobra-cli add completion -``` -and then modifying the generated `cmd/completion.go` file to look something like this -(writing the shell script to stdout allows the most flexible use): - -```go -var completionCmd = &cobra.Command{ - Use: "completion [bash|zsh|fish|powershell]", - Short: "Generate completion script", - Long: fmt.Sprintf(`To load completions: - -Bash: - - $ source <(%[1]s completion bash) - - # To load completions for each session, execute once: - # Linux: - $ %[1]s completion bash > /etc/bash_completion.d/%[1]s - # macOS: - $ %[1]s completion bash > $(brew --prefix)/etc/bash_completion.d/%[1]s - -Zsh: - - # If shell completion is not already enabled in your environment, - # you will need to enable it. You can execute the following once: - - $ echo "autoload -U compinit; compinit" >> ~/.zshrc - - # To load completions for each session, execute once: - $ %[1]s completion zsh > "${fpath[1]}/_%[1]s" - - # You will need to start a new shell for this setup to take effect. - -fish: - - $ %[1]s completion fish | source - - # To load completions for each session, execute once: - $ %[1]s completion fish > ~/.config/fish/completions/%[1]s.fish - -PowerShell: - - PS> %[1]s completion powershell | Out-String | Invoke-Expression - - # To load completions for every new session, run: - PS> %[1]s completion powershell > %[1]s.ps1 - # and source this file from your PowerShell profile. -`,cmd.Root().Name()), - DisableFlagsInUseLine: true, - ValidArgs: []string{"bash", "zsh", "fish", "powershell"}, - Args: cobra.MatchAll(cobra.ExactArgs(1), cobra.OnlyValidArgs), - Run: func(cmd *cobra.Command, args []string) { - switch args[0] { - case "bash": - cmd.Root().GenBashCompletion(os.Stdout) - case "zsh": - cmd.Root().GenZshCompletion(os.Stdout) - case "fish": - cmd.Root().GenFishCompletion(os.Stdout, true) - case "powershell": - cmd.Root().GenPowerShellCompletionWithDesc(os.Stdout) - } - }, -} -``` - -**Note:** The cobra generator may include messages printed to stdout, for example, if the config file is loaded; this will break the auto-completion script so must be removed. - -## Adapting the default completion command - -Cobra provides a few options for the default `completion` command. To configure such options you must set -the `CompletionOptions` field on the *root* command. - -To tell Cobra *not* to provide the default `completion` command: -``` -rootCmd.CompletionOptions.DisableDefaultCmd = true -``` - -To tell Cobra to mark the default `completion` command as *hidden*: -``` -rootCmd.CompletionOptions.HiddenDefaultCmd = true -``` - -To tell Cobra *not* to provide the user with the `--no-descriptions` flag to the completion sub-commands: -``` -rootCmd.CompletionOptions.DisableNoDescFlag = true -``` - -To tell Cobra to completely disable descriptions for completions: -``` -rootCmd.CompletionOptions.DisableDescriptions = true -``` - -# Customizing completions - -The generated completion scripts will automatically handle completing commands and flags. However, you can make your completions much more powerful by providing information to complete your program's nouns and flag values. - -## Completion of nouns - -### Static completion of nouns - -Cobra allows you to provide a pre-defined list of completion choices for your nouns using the `ValidArgs` field. -For example, if you want `kubectl get [tab][tab]` to show a list of valid "nouns" you have to set them. -Some simplified code from `kubectl get` looks like: - -```go -validArgs = []string{ "pod", "node", "service", "replicationcontroller" } - -cmd := &cobra.Command{ - Use: "get [(-o|--output=)json|yaml|template|...] (RESOURCE [NAME] | RESOURCE/NAME ...)", - Short: "Display one or many resources", - Long: get_long, - Example: get_example, - Run: func(cmd *cobra.Command, args []string) { - cobra.CheckErr(RunGet(f, out, cmd, args)) - }, - ValidArgs: validArgs, -} -``` - -Notice we put the `ValidArgs` field on the `get` sub-command. Doing so will give results like: - -```bash -$ kubectl get [tab][tab] -node pod replicationcontroller service -``` - -#### Aliases for nouns - -If your nouns have aliases, you can define them alongside `ValidArgs` using `ArgAliases`: - -```go -argAliases = []string { "pods", "nodes", "services", "svc", "replicationcontrollers", "rc" } - -cmd := &cobra.Command{ - ... - ValidArgs: validArgs, - ArgAliases: argAliases -} -``` - -The aliases are shown to the user on tab completion only if no completions were found within sub-commands or `ValidArgs`. - -### Dynamic completion of nouns - -In some cases it is not possible to provide a list of completions in advance. Instead, the list of completions must be determined at execution-time. In a similar fashion as for static completions, you can use the `ValidArgsFunction` field to provide a Go function that Cobra will execute when it needs the list of completion choices for the nouns of a command. Note that either `ValidArgs` or `ValidArgsFunction` can be used for a single cobra command, but not both. -Simplified code from `helm status` looks like: - -```go -cmd := &cobra.Command{ - Use: "status RELEASE_NAME", - Short: "Display the status of the named release", - Long: status_long, - RunE: func(cmd *cobra.Command, args []string) { - RunGet(args[0]) - }, - ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - if len(args) != 0 { - return nil, cobra.ShellCompDirectiveNoFileComp - } - return getReleasesFromCluster(toComplete), cobra.ShellCompDirectiveNoFileComp - }, -} -``` -Where `getReleasesFromCluster()` is a Go function that obtains the list of current Helm releases running on the Kubernetes cluster. -Notice we put the `ValidArgsFunction` on the `status` sub-command. Let's assume the Helm releases on the cluster are: `harbor`, `notary`, `rook` and `thanos` then this dynamic completion will give results like: - -```bash -$ helm status [tab][tab] -harbor notary rook thanos -``` -You may have noticed the use of `cobra.ShellCompDirective`. These directives are bit fields allowing to control some shell completion behaviors for your particular completion. You can combine them with the bit-or operator such as `cobra.ShellCompDirectiveNoSpace | cobra.ShellCompDirectiveNoFileComp` -```go -// Indicates that the shell will perform its default behavior after completions -// have been provided (this implies none of the other directives). -ShellCompDirectiveDefault - -// Indicates an error occurred and completions should be ignored. -ShellCompDirectiveError - -// Indicates that the shell should not add a space after the completion, -// even if there is a single completion provided. -ShellCompDirectiveNoSpace - -// Indicates that the shell should not provide file completion even when -// no completion is provided. -ShellCompDirectiveNoFileComp - -// Indicates that the returned completions should be used as file extension filters. -// For example, to complete only files of the form *.json or *.yaml: -// return []string{"yaml", "json"}, ShellCompDirectiveFilterFileExt -// For flags, using MarkFlagFilename() and MarkPersistentFlagFilename() -// is a shortcut to using this directive explicitly. -// -ShellCompDirectiveFilterFileExt - -// Indicates that only directory names should be provided in file completion. -// For example: -// return nil, ShellCompDirectiveFilterDirs -// For flags, using MarkFlagDirname() is a shortcut to using this directive explicitly. -// -// To request directory names within another directory, the returned completions -// should specify a single directory name within which to search. For example, -// to complete directories within "themes/": -// return []string{"themes"}, ShellCompDirectiveFilterDirs -// -ShellCompDirectiveFilterDirs - -// ShellCompDirectiveKeepOrder indicates that the shell should preserve the order -// in which the completions are provided -ShellCompDirectiveKeepOrder -``` - -***Note***: When using the `ValidArgsFunction`, Cobra will call your registered function after having parsed all flags and arguments provided in the command-line. You therefore don't need to do this parsing yourself. For example, when a user calls `helm status --namespace my-rook-ns [tab][tab]`, Cobra will call your registered `ValidArgsFunction` after having parsed the `--namespace` flag, as it would have done when calling the `RunE` function. - -#### Debugging - -Cobra achieves dynamic completion through the use of a hidden command called by the completion script. To debug your Go completion code, you can call this hidden command directly: -```bash -$ helm __complete status har -harbor -:4 -Completion ended with directive: ShellCompDirectiveNoFileComp # This is on stderr -``` -***Important:*** If the noun to complete is empty (when the user has not yet typed any letters of that noun), you must pass an empty parameter to the `__complete` command: -```bash -$ helm __complete status "" -harbor -notary -rook -thanos -:4 -Completion ended with directive: ShellCompDirectiveNoFileComp # This is on stderr -``` -Calling the `__complete` command directly allows you to run the Go debugger to troubleshoot your code. You can also add printouts to your code; Cobra provides the following functions to use for printouts in Go completion code: -```go -// Prints to the completion script debug file (if BASH_COMP_DEBUG_FILE -// is set to a file path) and optionally prints to stderr. -cobra.CompDebug(msg string, printToStdErr bool) { -cobra.CompDebugln(msg string, printToStdErr bool) - -// Prints to the completion script debug file (if BASH_COMP_DEBUG_FILE -// is set to a file path) and to stderr. -cobra.CompError(msg string) -cobra.CompErrorln(msg string) -``` -***Important:*** You should **not** leave traces that print directly to stdout in your completion code as they will be interpreted as completion choices by the completion script. Instead, use the cobra-provided debugging traces functions mentioned above. - -## Completions for flags - -### Mark flags as required - -Most of the time completions will only show sub-commands. But if a flag is required to make a sub-command work, you probably want it to show up when the user types [tab][tab]. You can mark a flag as 'Required' like so: - -```go -cmd.MarkFlagRequired("pod") -cmd.MarkFlagRequired("container") -``` - -and you'll get something like - -```bash -$ kubectl exec [tab][tab] --c --container= -p --pod= -``` - -### Specify dynamic flag completion - -As for nouns, Cobra provides a way of defining dynamic completion of flags. To provide a Go function that Cobra will execute when it needs the list of completion choices for a flag, you must register the function using the `command.RegisterFlagCompletionFunc()` function. - -```go -flagName := "output" -cmd.RegisterFlagCompletionFunc(flagName, func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - return []string{"json", "table", "yaml"}, cobra.ShellCompDirectiveDefault -}) -``` -Notice that calling `RegisterFlagCompletionFunc()` is done through the `command` with which the flag is associated. In our example this dynamic completion will give results like so: - -```bash -$ helm status --output [tab][tab] -json table yaml -``` - -#### Debugging - -You can also easily debug your Go completion code for flags: -```bash -$ helm __complete status --output "" -json -table -yaml -:4 -Completion ended with directive: ShellCompDirectiveNoFileComp # This is on stderr -``` -***Important:*** You should **not** leave traces that print to stdout in your completion code as they will be interpreted as completion choices by the completion script. Instead, use the cobra-provided debugging traces functions mentioned further above. - -### Specify valid filename extensions for flags that take a filename - -To limit completions of flag values to file names with certain extensions you can either use the different `MarkFlagFilename()` functions or a combination of `RegisterFlagCompletionFunc()` and `ShellCompDirectiveFilterFileExt`, like so: -```go -flagName := "output" -cmd.MarkFlagFilename(flagName, "yaml", "json") -``` -or -```go -flagName := "output" -cmd.RegisterFlagCompletionFunc(flagName, func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - return []string{"yaml", "json"}, ShellCompDirectiveFilterFileExt}) -``` - -### Limit flag completions to directory names - -To limit completions of flag values to directory names you can either use the `MarkFlagDirname()` functions or a combination of `RegisterFlagCompletionFunc()` and `ShellCompDirectiveFilterDirs`, like so: -```go -flagName := "output" -cmd.MarkFlagDirname(flagName) -``` -or -```go -flagName := "output" -cmd.RegisterFlagCompletionFunc(flagName, func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - return nil, cobra.ShellCompDirectiveFilterDirs -}) -``` -To limit completions of flag values to directory names *within another directory* you can use a combination of `RegisterFlagCompletionFunc()` and `ShellCompDirectiveFilterDirs` like so: -```go -flagName := "output" -cmd.RegisterFlagCompletionFunc(flagName, func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - return []string{"themes"}, cobra.ShellCompDirectiveFilterDirs -}) -``` -### Descriptions for completions - -Cobra provides support for completion descriptions. Such descriptions are supported for each shell -(however, for bash, it is only available in the [completion V2 version](#bash-completion-v2)). -For commands and flags, Cobra will provide the descriptions automatically, based on usage information. -For example, using zsh: -``` -$ helm s[tab] -search -- search for a keyword in charts -show -- show information of a chart -status -- displays the status of the named release -``` -while using fish: -``` -$ helm s[tab] -search (search for a keyword in charts) show (show information of a chart) status (displays the status of the named release) -``` - -Cobra allows you to add descriptions to your own completions. Simply add the description text after each completion, following a `\t` separator. This technique applies to completions returned by `ValidArgs`, `ValidArgsFunction` and `RegisterFlagCompletionFunc()`. For example: -```go -ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - return []string{"harbor\tAn image registry", "thanos\tLong-term metrics"}, cobra.ShellCompDirectiveNoFileComp -}} -``` -or -```go -ValidArgs: []string{"bash\tCompletions for bash", "zsh\tCompletions for zsh"} -``` - -If you don't want to show descriptions in the completions, you can add `--no-descriptions` to the default `completion` command to disable them, like: - -```bash -$ source <(helm completion bash) -$ helm completion [tab][tab] -bash (generate autocompletion script for bash) powershell (generate autocompletion script for powershell) -fish (generate autocompletion script for fish) zsh (generate autocompletion script for zsh) - -$ source <(helm completion bash --no-descriptions) -$ helm completion [tab][tab] -bash fish powershell zsh -``` -## Bash completions - -### Dependencies - -The bash completion script generated by Cobra requires the `bash_completion` package. You should update the help text of your completion command to show how to install the `bash_completion` package ([Kubectl docs](https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion)) - -### Aliases - -You can also configure `bash` aliases for your program and they will also support completions. - -```bash -alias aliasname=origcommand -complete -o default -F __start_origcommand aliasname - -# and now when you run `aliasname` completion will make -# suggestions as it did for `origcommand`. - -$ aliasname -completion firstcommand secondcommand -``` -### Bash legacy dynamic completions - -For backward compatibility, Cobra still supports its bash legacy dynamic completion solution. -Please refer to [Bash Completions](bash_completions.md) for details. - -### Bash completion V2 - -Cobra provides two versions for bash completion. The original bash completion (which started it all!) can be used by calling -`GenBashCompletion()` or `GenBashCompletionFile()`. - -A new V2 bash completion version is also available. This version can be used by calling `GenBashCompletionV2()` or -`GenBashCompletionFileV2()`. The V2 version does **not** support the legacy dynamic completion -(see [Bash Completions](bash_completions.md)) but instead works only with the Go dynamic completion -solution described in this document. -Unless your program already uses the legacy dynamic completion solution, it is recommended that you use the bash -completion V2 solution which provides the following extra features: -- Supports completion descriptions (like the other shells) -- Small completion script of less than 300 lines (v1 generates scripts of thousands of lines; `kubectl` for example has a bash v1 completion script of over 13K lines) -- Streamlined user experience thanks to a completion behavior aligned with the other shells - -`Bash` completion V2 supports descriptions for completions. When calling `GenBashCompletionV2()` or `GenBashCompletionFileV2()` -you must provide these functions with a parameter indicating if the completions should be annotated with a description; Cobra -will provide the description automatically based on usage information. You can choose to make this option configurable by -your users. - -``` -# With descriptions -$ helm s[tab][tab] -search (search for a keyword in charts) status (display the status of the named release) -show (show information of a chart) - -# Without descriptions -$ helm s[tab][tab] -search show status -``` -**Note**: Cobra's default `completion` command uses bash completion V2. If for some reason you need to use bash completion V1, you will need to implement your own `completion` command. -## Zsh completions - -Cobra supports native zsh completion generated from the root `cobra.Command`. -The generated completion script should be put somewhere in your `$fpath` and be named -`_`. You will need to start a new shell for the completions to become available. - -Zsh supports descriptions for completions. Cobra will provide the description automatically, -based on usage information. Cobra provides a way to completely disable such descriptions by -using `GenZshCompletionNoDesc()` or `GenZshCompletionFileNoDesc()`. You can choose to make -this a configurable option to your users. -``` -# With descriptions -$ helm s[tab] -search -- search for a keyword in charts -show -- show information of a chart -status -- displays the status of the named release - -# Without descriptions -$ helm s[tab] -search show status -``` -*Note*: Because of backward-compatibility requirements, we were forced to have a different API to disable completion descriptions between `zsh` and `fish`. - -### Limitations - -* Custom completions implemented in Bash scripting (legacy) are not supported and will be ignored for `zsh` (including the use of the `BashCompCustom` flag annotation). - * You should instead use `ValidArgsFunction` and `RegisterFlagCompletionFunc()` which are portable to the different shells (`bash`, `zsh`, `fish`, `powershell`). -* The function `MarkFlagCustom()` is not supported and will be ignored for `zsh`. - * You should instead use `RegisterFlagCompletionFunc()`. - -### Zsh completions standardization - -Cobra 1.1 standardized its zsh completion support to align it with its other shell completions. Although the API was kept backward-compatible, some small changes in behavior were introduced. -Please refer to [Zsh Completions](zsh_completions.md) for details. - -## fish completions - -Cobra supports native fish completions generated from the root `cobra.Command`. You can use the `command.GenFishCompletion()` or `command.GenFishCompletionFile()` functions. You must provide these functions with a parameter indicating if the completions should be annotated with a description; Cobra will provide the description automatically based on usage information. You can choose to make this option configurable by your users. -``` -# With descriptions -$ helm s[tab] -search (search for a keyword in charts) show (show information of a chart) status (displays the status of the named release) - -# Without descriptions -$ helm s[tab] -search show status -``` -*Note*: Because of backward-compatibility requirements, we were forced to have a different API to disable completion descriptions between `zsh` and `fish`. - -### Limitations - -* Custom completions implemented in bash scripting (legacy) are not supported and will be ignored for `fish` (including the use of the `BashCompCustom` flag annotation). - * You should instead use `ValidArgsFunction` and `RegisterFlagCompletionFunc()` which are portable to the different shells (`bash`, `zsh`, `fish`, `powershell`). -* The function `MarkFlagCustom()` is not supported and will be ignored for `fish`. - * You should instead use `RegisterFlagCompletionFunc()`. -* The following flag completion annotations are not supported and will be ignored for `fish`: - * `BashCompFilenameExt` (filtering by file extension) - * `BashCompSubdirsInDir` (filtering by directory) -* The functions corresponding to the above annotations are consequently not supported and will be ignored for `fish`: - * `MarkFlagFilename()` and `MarkPersistentFlagFilename()` (filtering by file extension) - * `MarkFlagDirname()` and `MarkPersistentFlagDirname()` (filtering by directory) -* Similarly, the following completion directives are not supported and will be ignored for `fish`: - * `ShellCompDirectiveFilterFileExt` (filtering by file extension) - * `ShellCompDirectiveFilterDirs` (filtering by directory) - -## PowerShell completions - -Cobra supports native PowerShell completions generated from the root `cobra.Command`. You can use the `command.GenPowerShellCompletion()` or `command.GenPowerShellCompletionFile()` functions. To include descriptions use `command.GenPowerShellCompletionWithDesc()` and `command.GenPowerShellCompletionFileWithDesc()`. Cobra will provide the description automatically based on usage information. You can choose to make this option configurable by your users. - -The script is designed to support all three PowerShell completion modes: - -* TabCompleteNext (default windows style - on each key press the next option is displayed) -* Complete (works like bash) -* MenuComplete (works like zsh) - -You set the mode with `Set-PSReadLineKeyHandler -Key Tab -Function `. Descriptions are only displayed when using the `Complete` or `MenuComplete` mode. - -Users need PowerShell version 5.0 or above, which comes with Windows 10 and can be downloaded separately for Windows 7 or 8.1. They can then write the completions to a file and source this file from their PowerShell profile, which is referenced by the `$Profile` environment variable. See `Get-Help about_Profiles` for more info about PowerShell profiles. - -``` -# With descriptions and Mode 'Complete' -$ helm s[tab] -search (search for a keyword in charts) show (show information of a chart) status (displays the status of the named release) - -# With descriptions and Mode 'MenuComplete' The description of the current selected value will be displayed below the suggestions. -$ helm s[tab] -search show status - -search for a keyword in charts - -# Without descriptions -$ helm s[tab] -search show status -``` -### Aliases - -You can also configure `powershell` aliases for your program and they will also support completions. - -``` -$ sal aliasname origcommand -$ Register-ArgumentCompleter -CommandName 'aliasname' -ScriptBlock $__origcommandCompleterBlock - -# and now when you run `aliasname` completion will make -# suggestions as it did for `origcommand`. - -$ aliasname -completion firstcommand secondcommand -``` -The name of the completer block variable is of the form `$__CompleterBlock` where every `-` and `:` in the program name have been replaced with `_`, to respect powershell naming syntax. - -### Limitations - -* Custom completions implemented in bash scripting (legacy) are not supported and will be ignored for `powershell` (including the use of the `BashCompCustom` flag annotation). - * You should instead use `ValidArgsFunction` and `RegisterFlagCompletionFunc()` which are portable to the different shells (`bash`, `zsh`, `fish`, `powershell`). -* The function `MarkFlagCustom()` is not supported and will be ignored for `powershell`. - * You should instead use `RegisterFlagCompletionFunc()`. -* The following flag completion annotations are not supported and will be ignored for `powershell`: - * `BashCompFilenameExt` (filtering by file extension) - * `BashCompSubdirsInDir` (filtering by directory) -* The functions corresponding to the above annotations are consequently not supported and will be ignored for `powershell`: - * `MarkFlagFilename()` and `MarkPersistentFlagFilename()` (filtering by file extension) - * `MarkFlagDirname()` and `MarkPersistentFlagDirname()` (filtering by directory) -* Similarly, the following completion directives are not supported and will be ignored for `powershell`: - * `ShellCompDirectiveFilterFileExt` (filtering by file extension) - * `ShellCompDirectiveFilterDirs` (filtering by directory) diff --git a/backend/vendor/github.com/spf13/cobra/user_guide.md b/backend/vendor/github.com/spf13/cobra/user_guide.md deleted file mode 100644 index 85201d84..00000000 --- a/backend/vendor/github.com/spf13/cobra/user_guide.md +++ /dev/null @@ -1,726 +0,0 @@ -# User Guide - -While you are welcome to provide your own organization, typically a Cobra-based -application will follow the following organizational structure: - -``` - ▾ appName/ - ▾ cmd/ - add.go - your.go - commands.go - here.go - main.go -``` - -In a Cobra app, typically the main.go file is very bare. It serves one purpose: initializing Cobra. - -```go -package main - -import ( - "{pathToYourApp}/cmd" -) - -func main() { - cmd.Execute() -} -``` - -## Using the Cobra Generator - -Cobra-CLI is its own program that will create your application and add any -commands you want. It's the easiest way to incorporate Cobra into your application. - -For complete details on using the Cobra generator, please refer to [The Cobra-CLI Generator README](https://github.com/spf13/cobra-cli/blob/main/README.md) - -## Using the Cobra Library - -To manually implement Cobra you need to create a bare main.go file and a rootCmd file. -You will optionally provide additional commands as you see fit. - -### Create rootCmd - -Cobra doesn't require any special constructors. Simply create your commands. - -Ideally you place this in app/cmd/root.go: - -```go -var rootCmd = &cobra.Command{ - Use: "hugo", - Short: "Hugo is a very fast static site generator", - Long: `A Fast and Flexible Static Site Generator built with - love by spf13 and friends in Go. - Complete documentation is available at https://gohugo.io/documentation/`, - Run: func(cmd *cobra.Command, args []string) { - // Do Stuff Here - }, -} - -func Execute() { - if err := rootCmd.Execute(); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} -``` - -You will additionally define flags and handle configuration in your init() function. - -For example cmd/root.go: - -```go -package cmd - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - "github.com/spf13/viper" -) - -var ( - // Used for flags. - cfgFile string - userLicense string - - rootCmd = &cobra.Command{ - Use: "cobra-cli", - Short: "A generator for Cobra based Applications", - Long: `Cobra is a CLI library for Go that empowers applications. -This application is a tool to generate the needed files -to quickly create a Cobra application.`, - } -) - -// Execute executes the root command. -func Execute() error { - return rootCmd.Execute() -} - -func init() { - cobra.OnInitialize(initConfig) - - rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") - rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "author name for copyright attribution") - rootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "name of license for the project") - rootCmd.PersistentFlags().Bool("viper", true, "use Viper for configuration") - viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author")) - viper.BindPFlag("useViper", rootCmd.PersistentFlags().Lookup("viper")) - viper.SetDefault("author", "NAME HERE ") - viper.SetDefault("license", "apache") - - rootCmd.AddCommand(addCmd) - rootCmd.AddCommand(initCmd) -} - -func initConfig() { - if cfgFile != "" { - // Use config file from the flag. - viper.SetConfigFile(cfgFile) - } else { - // Find home directory. - home, err := os.UserHomeDir() - cobra.CheckErr(err) - - // Search config in home directory with name ".cobra" (without extension). - viper.AddConfigPath(home) - viper.SetConfigType("yaml") - viper.SetConfigName(".cobra") - } - - viper.AutomaticEnv() - - if err := viper.ReadInConfig(); err == nil { - fmt.Println("Using config file:", viper.ConfigFileUsed()) - } -} -``` - -### Create your main.go - -With the root command you need to have your main function execute it. -Execute should be run on the root for clarity, though it can be called on any command. - -In a Cobra app, typically the main.go file is very bare. It serves one purpose: to initialize Cobra. - -```go -package main - -import ( - "{pathToYourApp}/cmd" -) - -func main() { - cmd.Execute() -} -``` - -### Create additional commands - -Additional commands can be defined and typically are each given their own file -inside of the cmd/ directory. - -If you wanted to create a version command you would create cmd/version.go and -populate it with the following: - -```go -package cmd - -import ( - "fmt" - - "github.com/spf13/cobra" -) - -func init() { - rootCmd.AddCommand(versionCmd) -} - -var versionCmd = &cobra.Command{ - Use: "version", - Short: "Print the version number of Hugo", - Long: `All software has versions. This is Hugo's`, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Hugo Static Site Generator v0.9 -- HEAD") - }, -} -``` - -### Organizing subcommands - -A command may have subcommands which in turn may have other subcommands. This is achieved by using -`AddCommand`. In some cases, especially in larger applications, each subcommand may be defined in -its own go package. - -The suggested approach is for the parent command to use `AddCommand` to add its most immediate -subcommands. For example, consider the following directory structure: - -```text -├── cmd -│   ├── root.go -│   └── sub1 -│   ├── sub1.go -│   └── sub2 -│   ├── leafA.go -│   ├── leafB.go -│   └── sub2.go -└── main.go -``` - -In this case: - -* The `init` function of `root.go` adds the command defined in `sub1.go` to the root command. -* The `init` function of `sub1.go` adds the command defined in `sub2.go` to the sub1 command. -* The `init` function of `sub2.go` adds the commands defined in `leafA.go` and `leafB.go` to the - sub2 command. - -This approach ensures the subcommands are always included at compile time while avoiding cyclic -references. - -### Returning and handling errors - -If you wish to return an error to the caller of a command, `RunE` can be used. - -```go -package cmd - -import ( - "fmt" - - "github.com/spf13/cobra" -) - -func init() { - rootCmd.AddCommand(tryCmd) -} - -var tryCmd = &cobra.Command{ - Use: "try", - Short: "Try and possibly fail at something", - RunE: func(cmd *cobra.Command, args []string) error { - if err := someFunc(); err != nil { - return err - } - return nil - }, -} -``` - -The error can then be caught at the execute function call. - -## Working with Flags - -Flags provide modifiers to control how the action command operates. - -### Assign flags to a command - -Since the flags are defined and used in different locations, we need to -define a variable outside with the correct scope to assign the flag to -work with. - -```go -var Verbose bool -var Source string -``` - -There are two different approaches to assign a flag. - -### Persistent Flags - -A flag can be 'persistent', meaning that this flag will be available to the -command it's assigned to as well as every command under that command. For -global flags, assign a flag as a persistent flag on the root. - -```go -rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output") -``` - -### Local Flags - -A flag can also be assigned locally, which will only apply to that specific command. - -```go -localCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") -``` - -### Local Flag on Parent Commands - -By default, Cobra only parses local flags on the target command, and any local flags on -parent commands are ignored. By enabling `Command.TraverseChildren`, Cobra will -parse local flags on each command before executing the target command. - -```go -command := cobra.Command{ - Use: "print [OPTIONS] [COMMANDS]", - TraverseChildren: true, -} -``` - -### Bind Flags with Config - -You can also bind your flags with [viper](https://github.com/spf13/viper): -```go -var author string - -func init() { - rootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution") - viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author")) -} -``` - -In this example, the persistent flag `author` is bound with `viper`. -**Note**: the variable `author` will not be set to the value from config, -when the `--author` flag is provided by user. - -More in [viper documentation](https://github.com/spf13/viper#working-with-flags). - -### Required flags - -Flags are optional by default. If instead you wish your command to report an error -when a flag has not been set, mark it as required: -```go -rootCmd.Flags().StringVarP(&Region, "region", "r", "", "AWS region (required)") -rootCmd.MarkFlagRequired("region") -``` - -Or, for persistent flags: -```go -rootCmd.PersistentFlags().StringVarP(&Region, "region", "r", "", "AWS region (required)") -rootCmd.MarkPersistentFlagRequired("region") -``` - -### Flag Groups - -If you have different flags that must be provided together (e.g. if they provide the `--username` flag they MUST provide the `--password` flag as well) then -Cobra can enforce that requirement: -```go -rootCmd.Flags().StringVarP(&u, "username", "u", "", "Username (required if password is set)") -rootCmd.Flags().StringVarP(&pw, "password", "p", "", "Password (required if username is set)") -rootCmd.MarkFlagsRequiredTogether("username", "password") -``` - -You can also prevent different flags from being provided together if they represent mutually -exclusive options such as specifying an output format as either `--json` or `--yaml` but never both: -```go -rootCmd.Flags().BoolVar(&ofJson, "json", false, "Output in JSON") -rootCmd.Flags().BoolVar(&ofYaml, "yaml", false, "Output in YAML") -rootCmd.MarkFlagsMutuallyExclusive("json", "yaml") -``` - -In both of these cases: - - both local and persistent flags can be used - - **NOTE:** the group is only enforced on commands where every flag is defined - - a flag may appear in multiple groups - - a group may contain any number of flags - -## Positional and Custom Arguments - -Validation of positional arguments can be specified using the `Args` field of `Command`. -The following validators are built in: - -- Number of arguments: - - `NoArgs` - report an error if there are any positional args. - - `ArbitraryArgs` - accept any number of args. - - `MinimumNArgs(int)` - report an error if less than N positional args are provided. - - `MaximumNArgs(int)` - report an error if more than N positional args are provided. - - `ExactArgs(int)` - report an error if there are not exactly N positional args. - - `RangeArgs(min, max)` - report an error if the number of args is not between `min` and `max`. -- Content of the arguments: - - `OnlyValidArgs` - report an error if there are any positional args not specified in the `ValidArgs` field of `Command`, which can optionally be set to a list of valid values for positional args. - -If `Args` is undefined or `nil`, it defaults to `ArbitraryArgs`. - -Moreover, `MatchAll(pargs ...PositionalArgs)` enables combining existing checks with arbitrary other checks. -For instance, if you want to report an error if there are not exactly N positional args OR if there are any positional -args that are not in the `ValidArgs` field of `Command`, you can call `MatchAll` on `ExactArgs` and `OnlyValidArgs`, as -shown below: - -```go -var cmd = &cobra.Command{ - Short: "hello", - Args: cobra.MatchAll(cobra.ExactArgs(2), cobra.OnlyValidArgs), - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Hello, World!") - }, -} -``` - -It is possible to set any custom validator that satisfies `func(cmd *cobra.Command, args []string) error`. -For example: - -```go -var cmd = &cobra.Command{ - Short: "hello", - Args: func(cmd *cobra.Command, args []string) error { - // Optionally run one of the validators provided by cobra - if err := cobra.MinimumNArgs(1)(cmd, args); err != nil { - return err - } - // Run the custom validation logic - if myapp.IsValidColor(args[0]) { - return nil - } - return fmt.Errorf("invalid color specified: %s", args[0]) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Hello, World!") - }, -} -``` - -## Example - -In the example below, we have defined three commands. Two are at the top level -and one (cmdTimes) is a child of one of the top commands. In this case the root -is not executable, meaning that a subcommand is required. This is accomplished -by not providing a 'Run' for the 'rootCmd'. - -We have only defined one flag for a single command. - -More documentation about flags is available at https://github.com/spf13/pflag - -```go -package main - -import ( - "fmt" - "strings" - - "github.com/spf13/cobra" -) - -func main() { - var echoTimes int - - var cmdPrint = &cobra.Command{ - Use: "print [string to print]", - Short: "Print anything to the screen", - Long: `print is for printing anything back to the screen. -For many years people have printed back to the screen.`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Print: " + strings.Join(args, " ")) - }, - } - - var cmdEcho = &cobra.Command{ - Use: "echo [string to echo]", - Short: "Echo anything to the screen", - Long: `echo is for echoing anything back. -Echo works a lot like print, except it has a child command.`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Echo: " + strings.Join(args, " ")) - }, - } - - var cmdTimes = &cobra.Command{ - Use: "times [string to echo]", - Short: "Echo anything to the screen more times", - Long: `echo things multiple times back to the user by providing -a count and a string.`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - for i := 0; i < echoTimes; i++ { - fmt.Println("Echo: " + strings.Join(args, " ")) - } - }, - } - - cmdTimes.Flags().IntVarP(&echoTimes, "times", "t", 1, "times to echo the input") - - var rootCmd = &cobra.Command{Use: "app"} - rootCmd.AddCommand(cmdPrint, cmdEcho) - cmdEcho.AddCommand(cmdTimes) - rootCmd.Execute() -} -``` - -For a more complete example of a larger application, please checkout [Hugo](https://gohugo.io/). - -## Help Command - -Cobra automatically adds a help command to your application when you have subcommands. -This will be called when a user runs 'app help'. Additionally, help will also -support all other commands as input. Say, for instance, you have a command called -'create' without any additional configuration; Cobra will work when 'app help -create' is called. Every command will automatically have the '--help' flag added. - -### Example - -The following output is automatically generated by Cobra. Nothing beyond the -command and flag definitions are needed. - - $ cobra-cli help - - Cobra is a CLI library for Go that empowers applications. - This application is a tool to generate the needed files - to quickly create a Cobra application. - - Usage: - cobra-cli [command] - - Available Commands: - add Add a command to a Cobra Application - completion Generate the autocompletion script for the specified shell - help Help about any command - init Initialize a Cobra Application - - Flags: - -a, --author string author name for copyright attribution (default "YOUR NAME") - --config string config file (default is $HOME/.cobra.yaml) - -h, --help help for cobra-cli - -l, --license string name of license for the project - --viper use Viper for configuration - - Use "cobra-cli [command] --help" for more information about a command. - - -Help is just a command like any other. There is no special logic or behavior -around it. In fact, you can provide your own if you want. - -### Grouping commands in help - -Cobra supports grouping of available commands in the help output. To group commands, each group must be explicitly -defined using `AddGroup()` on the parent command. Then a subcommand can be added to a group using the `GroupID` element -of that subcommand. The groups will appear in the help output in the same order as they are defined using different -calls to `AddGroup()`. If you use the generated `help` or `completion` commands, you can set their group ids using -`SetHelpCommandGroupId()` and `SetCompletionCommandGroupId()` on the root command, respectively. - -### Defining your own help - -You can provide your own Help command or your own template for the default command to use -with the following functions: - -```go -cmd.SetHelpCommand(cmd *Command) -cmd.SetHelpFunc(f func(*Command, []string)) -cmd.SetHelpTemplate(s string) -``` - -The latter two will also apply to any children commands. - -## Usage Message - -When the user provides an invalid flag or invalid command, Cobra responds by -showing the user the 'usage'. - -### Example -You may recognize this from the help above. That's because the default help -embeds the usage as part of its output. - - $ cobra-cli --invalid - Error: unknown flag: --invalid - Usage: - cobra-cli [command] - - Available Commands: - add Add a command to a Cobra Application - completion Generate the autocompletion script for the specified shell - help Help about any command - init Initialize a Cobra Application - - Flags: - -a, --author string author name for copyright attribution (default "YOUR NAME") - --config string config file (default is $HOME/.cobra.yaml) - -h, --help help for cobra-cli - -l, --license string name of license for the project - --viper use Viper for configuration - - Use "cobra [command] --help" for more information about a command. - -### Defining your own usage -You can provide your own usage function or template for Cobra to use. -Like help, the function and template are overridable through public methods: - -```go -cmd.SetUsageFunc(f func(*Command) error) -cmd.SetUsageTemplate(s string) -``` - -## Version Flag - -Cobra adds a top-level '--version' flag if the Version field is set on the root command. -Running an application with the '--version' flag will print the version to stdout using -the version template. The template can be customized using the -`cmd.SetVersionTemplate(s string)` function. - -## PreRun and PostRun Hooks - -It is possible to run functions before or after the main `Run` function of your command. The `PersistentPreRun` and `PreRun` functions will be executed before `Run`. `PersistentPostRun` and `PostRun` will be executed after `Run`. The `Persistent*Run` functions will be inherited by children if they do not declare their own. These functions are run in the following order: - -- `PersistentPreRun` -- `PreRun` -- `Run` -- `PostRun` -- `PersistentPostRun` - -An example of two commands which use all of these features is below. When the subcommand is executed, it will run the root command's `PersistentPreRun` but not the root command's `PersistentPostRun`: - -```go -package main - -import ( - "fmt" - - "github.com/spf13/cobra" -) - -func main() { - - var rootCmd = &cobra.Command{ - Use: "root [sub]", - Short: "My root command", - PersistentPreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PersistentPreRun with args: %v\n", args) - }, - PreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PreRun with args: %v\n", args) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd Run with args: %v\n", args) - }, - PostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PostRun with args: %v\n", args) - }, - PersistentPostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PersistentPostRun with args: %v\n", args) - }, - } - - var subCmd = &cobra.Command{ - Use: "sub [no options!]", - Short: "My subcommand", - PreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PreRun with args: %v\n", args) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd Run with args: %v\n", args) - }, - PostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PostRun with args: %v\n", args) - }, - PersistentPostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PersistentPostRun with args: %v\n", args) - }, - } - - rootCmd.AddCommand(subCmd) - - rootCmd.SetArgs([]string{""}) - rootCmd.Execute() - fmt.Println() - rootCmd.SetArgs([]string{"sub", "arg1", "arg2"}) - rootCmd.Execute() -} -``` - -Output: -``` -Inside rootCmd PersistentPreRun with args: [] -Inside rootCmd PreRun with args: [] -Inside rootCmd Run with args: [] -Inside rootCmd PostRun with args: [] -Inside rootCmd PersistentPostRun with args: [] - -Inside rootCmd PersistentPreRun with args: [arg1 arg2] -Inside subCmd PreRun with args: [arg1 arg2] -Inside subCmd Run with args: [arg1 arg2] -Inside subCmd PostRun with args: [arg1 arg2] -Inside subCmd PersistentPostRun with args: [arg1 arg2] -``` - -## Suggestions when "unknown command" happens - -Cobra will print automatic suggestions when "unknown command" errors happen. This allows Cobra to behave similarly to the `git` command when a typo happens. For example: - -``` -$ hugo srever -Error: unknown command "srever" for "hugo" - -Did you mean this? - server - -Run 'hugo --help' for usage. -``` - -Suggestions are automatically generated based on existing subcommands and use an implementation of [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance). Every registered command that matches a minimum distance of 2 (ignoring case) will be displayed as a suggestion. - -If you need to disable suggestions or tweak the string distance in your command, use: - -```go -command.DisableSuggestions = true -``` - -or - -```go -command.SuggestionsMinimumDistance = 1 -``` - -You can also explicitly set names for which a given command will be suggested using the `SuggestFor` attribute. This allows suggestions for strings that are not close in terms of string distance, but make sense in your set of commands but for which -you don't want aliases. Example: - -``` -$ kubectl remove -Error: unknown command "remove" for "kubectl" - -Did you mean this? - delete - -Run 'kubectl help' for usage. -``` - -## Generating documentation for your command - -Cobra can generate documentation based on subcommands, flags, etc. Read more about it in the [docs generation documentation](doc/README.md). - -## Generating shell completions - -Cobra can generate a shell-completion file for the following shells: bash, zsh, fish, PowerShell. If you add more information to your commands, these completions can be amazingly powerful and flexible. Read more about it in [Shell Completions](shell_completions.md). - -## Providing Active Help - -Cobra makes use of the shell-completion system to define a framework allowing you to provide Active Help to your users. Active Help are messages (hints, warnings, etc) printed as the program is being used. Read more about it in [Active Help](active_help.md). diff --git a/backend/vendor/github.com/spf13/cobra/zsh_completions.go b/backend/vendor/github.com/spf13/cobra/zsh_completions.go deleted file mode 100644 index 1856e4c7..00000000 --- a/backend/vendor/github.com/spf13/cobra/zsh_completions.go +++ /dev/null @@ -1,308 +0,0 @@ -// Copyright 2013-2023 The Cobra Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" -) - -// GenZshCompletionFile generates zsh completion file including descriptions. -func (c *Command) GenZshCompletionFile(filename string) error { - return c.genZshCompletionFile(filename, true) -} - -// GenZshCompletion generates zsh completion file including descriptions -// and writes it to the passed writer. -func (c *Command) GenZshCompletion(w io.Writer) error { - return c.genZshCompletion(w, true) -} - -// GenZshCompletionFileNoDesc generates zsh completion file without descriptions. -func (c *Command) GenZshCompletionFileNoDesc(filename string) error { - return c.genZshCompletionFile(filename, false) -} - -// GenZshCompletionNoDesc generates zsh completion file without descriptions -// and writes it to the passed writer. -func (c *Command) GenZshCompletionNoDesc(w io.Writer) error { - return c.genZshCompletion(w, false) -} - -// MarkZshCompPositionalArgumentFile only worked for zsh and its behavior was -// not consistent with Bash completion. It has therefore been disabled. -// Instead, when no other completion is specified, file completion is done by -// default for every argument. One can disable file completion on a per-argument -// basis by using ValidArgsFunction and ShellCompDirectiveNoFileComp. -// To achieve file extension filtering, one can use ValidArgsFunction and -// ShellCompDirectiveFilterFileExt. -// -// Deprecated -func (c *Command) MarkZshCompPositionalArgumentFile(argPosition int, patterns ...string) error { - return nil -} - -// MarkZshCompPositionalArgumentWords only worked for zsh. It has therefore -// been disabled. -// To achieve the same behavior across all shells, one can use -// ValidArgs (for the first argument only) or ValidArgsFunction for -// any argument (can include the first one also). -// -// Deprecated -func (c *Command) MarkZshCompPositionalArgumentWords(argPosition int, words ...string) error { - return nil -} - -func (c *Command) genZshCompletionFile(filename string, includeDesc bool) error { - outFile, err := os.Create(filename) - if err != nil { - return err - } - defer outFile.Close() - - return c.genZshCompletion(outFile, includeDesc) -} - -func (c *Command) genZshCompletion(w io.Writer, includeDesc bool) error { - buf := new(bytes.Buffer) - genZshComp(buf, c.Name(), includeDesc) - _, err := buf.WriteTo(w) - return err -} - -func genZshComp(buf io.StringWriter, name string, includeDesc bool) { - compCmd := ShellCompRequestCmd - if !includeDesc { - compCmd = ShellCompNoDescRequestCmd - } - WriteStringAndCheck(buf, fmt.Sprintf(`#compdef %[1]s -compdef _%[1]s %[1]s - -# zsh completion for %-36[1]s -*- shell-script -*- - -__%[1]s_debug() -{ - local file="$BASH_COMP_DEBUG_FILE" - if [[ -n ${file} ]]; then - echo "$*" >> "${file}" - fi -} - -_%[1]s() -{ - local shellCompDirectiveError=%[3]d - local shellCompDirectiveNoSpace=%[4]d - local shellCompDirectiveNoFileComp=%[5]d - local shellCompDirectiveFilterFileExt=%[6]d - local shellCompDirectiveFilterDirs=%[7]d - local shellCompDirectiveKeepOrder=%[8]d - - local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace keepOrder - local -a completions - - __%[1]s_debug "\n========= starting completion logic ==========" - __%[1]s_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" - - # The user could have moved the cursor backwards on the command-line. - # We need to trigger completion from the $CURRENT location, so we need - # to truncate the command-line ($words) up to the $CURRENT location. - # (We cannot use $CURSOR as its value does not work when a command is an alias.) - words=("${=words[1,CURRENT]}") - __%[1]s_debug "Truncated words[*]: ${words[*]}," - - lastParam=${words[-1]} - lastChar=${lastParam[-1]} - __%[1]s_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" - - # For zsh, when completing a flag with an = (e.g., %[1]s -n=) - # completions must be prefixed with the flag - setopt local_options BASH_REMATCH - if [[ "${lastParam}" =~ '-.*=' ]]; then - # We are dealing with a flag with an = - flagPrefix="-P ${BASH_REMATCH}" - fi - - # Prepare the command to obtain completions - requestComp="${words[1]} %[2]s ${words[2,-1]}" - if [ "${lastChar}" = "" ]; then - # If the last parameter is complete (there is a space following it) - # We add an extra empty parameter so we can indicate this to the go completion code. - __%[1]s_debug "Adding extra empty parameter" - requestComp="${requestComp} \"\"" - fi - - __%[1]s_debug "About to call: eval ${requestComp}" - - # Use eval to handle any environment variables and such - out=$(eval ${requestComp} 2>/dev/null) - __%[1]s_debug "completion output: ${out}" - - # Extract the directive integer following a : from the last line - local lastLine - while IFS='\n' read -r line; do - lastLine=${line} - done < <(printf "%%s\n" "${out[@]}") - __%[1]s_debug "last line: ${lastLine}" - - if [ "${lastLine[1]}" = : ]; then - directive=${lastLine[2,-1]} - # Remove the directive including the : and the newline - local suffix - (( suffix=${#lastLine}+2)) - out=${out[1,-$suffix]} - else - # There is no directive specified. Leave $out as is. - __%[1]s_debug "No directive found. Setting do default" - directive=0 - fi - - __%[1]s_debug "directive: ${directive}" - __%[1]s_debug "completions: ${out}" - __%[1]s_debug "flagPrefix: ${flagPrefix}" - - if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then - __%[1]s_debug "Completion received error. Ignoring completions." - return - fi - - local activeHelpMarker="%[9]s" - local endIndex=${#activeHelpMarker} - local startIndex=$((${#activeHelpMarker}+1)) - local hasActiveHelp=0 - while IFS='\n' read -r comp; do - # Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker) - if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then - __%[1]s_debug "ActiveHelp found: $comp" - comp="${comp[$startIndex,-1]}" - if [ -n "$comp" ]; then - compadd -x "${comp}" - __%[1]s_debug "ActiveHelp will need delimiter" - hasActiveHelp=1 - fi - - continue - fi - - if [ -n "$comp" ]; then - # If requested, completions are returned with a description. - # The description is preceded by a TAB character. - # For zsh's _describe, we need to use a : instead of a TAB. - # We first need to escape any : as part of the completion itself. - comp=${comp//:/\\:} - - local tab="$(printf '\t')" - comp=${comp//$tab/:} - - __%[1]s_debug "Adding completion: ${comp}" - completions+=${comp} - lastComp=$comp - fi - done < <(printf "%%s\n" "${out[@]}") - - # Add a delimiter after the activeHelp statements, but only if: - # - there are completions following the activeHelp statements, or - # - file completion will be performed (so there will be choices after the activeHelp) - if [ $hasActiveHelp -eq 1 ]; then - if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then - __%[1]s_debug "Adding activeHelp delimiter" - compadd -x "--" - hasActiveHelp=0 - fi - fi - - if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then - __%[1]s_debug "Activating nospace." - noSpace="-S ''" - fi - - if [ $((directive & shellCompDirectiveKeepOrder)) -ne 0 ]; then - __%[1]s_debug "Activating keep order." - keepOrder="-V" - fi - - if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then - # File extension filtering - local filteringCmd - filteringCmd='_files' - for filter in ${completions[@]}; do - if [ ${filter[1]} != '*' ]; then - # zsh requires a glob pattern to do file filtering - filter="\*.$filter" - fi - filteringCmd+=" -g $filter" - done - filteringCmd+=" ${flagPrefix}" - - __%[1]s_debug "File filtering command: $filteringCmd" - _arguments '*:filename:'"$filteringCmd" - elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then - # File completion for directories only - local subdir - subdir="${completions[1]}" - if [ -n "$subdir" ]; then - __%[1]s_debug "Listing directories in $subdir" - pushd "${subdir}" >/dev/null 2>&1 - else - __%[1]s_debug "Listing directories in ." - fi - - local result - _arguments '*:dirname:_files -/'" ${flagPrefix}" - result=$? - if [ -n "$subdir" ]; then - popd >/dev/null 2>&1 - fi - return $result - else - __%[1]s_debug "Calling _describe" - if eval _describe $keepOrder "completions" completions $flagPrefix $noSpace; then - __%[1]s_debug "_describe found some completions" - - # Return the success of having called _describe - return 0 - else - __%[1]s_debug "_describe did not find completions." - __%[1]s_debug "Checking if we should do file completion." - if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then - __%[1]s_debug "deactivating file completion" - - # We must return an error code here to let zsh know that there were no - # completions found by _describe; this is what will trigger other - # matching algorithms to attempt to find completions. - # For example zsh can match letters in the middle of words. - return 1 - else - # Perform file completion - __%[1]s_debug "Activating file completion" - - # We must return the result of this command, so it must be the - # last command, or else we must store its result to return it. - _arguments '*:filename:_files'" ${flagPrefix}" - fi - fi - fi -} - -# don't run the completion function when being source-ed or eval-ed -if [ "$funcstack[1]" = "_%[1]s" ]; then - _%[1]s -fi -`, name, compCmd, - ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp, - ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, - activeHelpMarker)) -} diff --git a/backend/vendor/github.com/spf13/cobra/zsh_completions.md b/backend/vendor/github.com/spf13/cobra/zsh_completions.md deleted file mode 100644 index 7cff6178..00000000 --- a/backend/vendor/github.com/spf13/cobra/zsh_completions.md +++ /dev/null @@ -1,48 +0,0 @@ -## Generating Zsh Completion For Your cobra.Command - -Please refer to [Shell Completions](shell_completions.md) for details. - -## Zsh completions standardization - -Cobra 1.1 standardized its zsh completion support to align it with its other shell completions. Although the API was kept backwards-compatible, some small changes in behavior were introduced. - -### Deprecation summary - -See further below for more details on these deprecations. - -* `cmd.MarkZshCompPositionalArgumentFile(pos, []string{})` is no longer needed. It is therefore **deprecated** and silently ignored. -* `cmd.MarkZshCompPositionalArgumentFile(pos, glob[])` is **deprecated** and silently ignored. - * Instead use `ValidArgsFunction` with `ShellCompDirectiveFilterFileExt`. -* `cmd.MarkZshCompPositionalArgumentWords()` is **deprecated** and silently ignored. - * Instead use `ValidArgsFunction`. - -### Behavioral changes - -**Noun completion** -|Old behavior|New behavior| -|---|---| -|No file completion by default (opposite of bash)|File completion by default; use `ValidArgsFunction` with `ShellCompDirectiveNoFileComp` to turn off file completion on a per-argument basis| -|Completion of flag names without the `-` prefix having been typed|Flag names are only completed if the user has typed the first `-`| -`cmd.MarkZshCompPositionalArgumentFile(pos, []string{})` used to turn on file completion on a per-argument position basis|File completion for all arguments by default; `cmd.MarkZshCompPositionalArgumentFile()` is **deprecated** and silently ignored| -|`cmd.MarkZshCompPositionalArgumentFile(pos, glob[])` used to turn on file completion **with glob filtering** on a per-argument position basis (zsh-specific)|`cmd.MarkZshCompPositionalArgumentFile()` is **deprecated** and silently ignored; use `ValidArgsFunction` with `ShellCompDirectiveFilterFileExt` for file **extension** filtering (not full glob filtering)| -|`cmd.MarkZshCompPositionalArgumentWords(pos, words[])` used to provide completion choices on a per-argument position basis (zsh-specific)|`cmd.MarkZshCompPositionalArgumentWords()` is **deprecated** and silently ignored; use `ValidArgsFunction` to achieve the same behavior| - -**Flag-value completion** - -|Old behavior|New behavior| -|---|---| -|No file completion by default (opposite of bash)|File completion by default; use `RegisterFlagCompletionFunc()` with `ShellCompDirectiveNoFileComp` to turn off file completion| -|`cmd.MarkFlagFilename(flag, []string{})` and similar used to turn on file completion|File completion by default; `cmd.MarkFlagFilename(flag, []string{})` no longer needed in this context and silently ignored| -|`cmd.MarkFlagFilename(flag, glob[])` used to turn on file completion **with glob filtering** (syntax of `[]string{"*.yaml", "*.yml"}` incompatible with bash)|Will continue to work, however, support for bash syntax is added and should be used instead so as to work for all shells (`[]string{"yaml", "yml"}`)| -|`cmd.MarkFlagDirname(flag)` only completes directories (zsh-specific)|Has been added for all shells| -|Completion of a flag name does not repeat, unless flag is of type `*Array` or `*Slice` (not supported by bash)|Retained for `zsh` and added to `fish`| -|Completion of a flag name does not provide the `=` form (unlike bash)|Retained for `zsh` and added to `fish`| - -**Improvements** - -* Custom completion support (`ValidArgsFunction` and `RegisterFlagCompletionFunc()`) -* File completion by default if no other completions found -* Handling of required flags -* File extension filtering no longer mutually exclusive with bash usage -* Completion of directory names *within* another directory -* Support for `=` form of flags diff --git a/backend/vendor/github.com/spf13/jwalterweatherman/.gitignore b/backend/vendor/github.com/spf13/jwalterweatherman/.gitignore deleted file mode 100644 index a71f88af..00000000 --- a/backend/vendor/github.com/spf13/jwalterweatherman/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.bench -go.sum \ No newline at end of file diff --git a/backend/vendor/github.com/spf13/jwalterweatherman/LICENSE b/backend/vendor/github.com/spf13/jwalterweatherman/LICENSE deleted file mode 100644 index 4527efb9..00000000 --- a/backend/vendor/github.com/spf13/jwalterweatherman/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Steve Francia - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/backend/vendor/github.com/spf13/jwalterweatherman/README.md b/backend/vendor/github.com/spf13/jwalterweatherman/README.md deleted file mode 100644 index 932a23fc..00000000 --- a/backend/vendor/github.com/spf13/jwalterweatherman/README.md +++ /dev/null @@ -1,148 +0,0 @@ -jWalterWeatherman -================= - -Seamless printing to the terminal (stdout) and logging to a io.Writer -(file) that’s as easy to use as fmt.Println. - -![and_that__s_why_you_always_leave_a_note_by_jonnyetc-d57q7um](https://cloud.githubusercontent.com/assets/173412/11002937/ccd01654-847d-11e5-828e-12ebaf582eaf.jpg) -Graphic by [JonnyEtc](http://jonnyetc.deviantart.com/art/And-That-s-Why-You-Always-Leave-a-Note-315311422) - -JWW is primarily a wrapper around the excellent standard log library. It -provides a few advantages over using the standard log library alone. - -1. Ready to go out of the box. -2. One library for both printing to the terminal and logging (to files). -3. Really easy to log to either a temp file or a file you specify. - - -I really wanted a very straightforward library that could seamlessly do -the following things. - -1. Replace all the println, printf, etc statements thoughout my code with - something more useful -2. Allow the user to easily control what levels are printed to stdout -3. Allow the user to easily control what levels are logged -4. Provide an easy mechanism (like fmt.Println) to print info to the user - which can be easily logged as well -5. Due to 2 & 3 provide easy verbose mode for output and logs -6. Not have any unnecessary initialization cruft. Just use it. - -# Usage - -## Step 1. Use it -Put calls throughout your source based on type of feedback. -No initialization or setup needs to happen. Just start calling things. - -Available Loggers are: - - * TRACE - * DEBUG - * INFO - * WARN - * ERROR - * CRITICAL - * FATAL - -These each are loggers based on the log standard library and follow the -standard usage. Eg. - -```go - import ( - jww "github.com/spf13/jwalterweatherman" - ) - - ... - - if err != nil { - - // This is a pretty serious error and the user should know about - // it. It will be printed to the terminal as well as logged under the - // default thresholds. - - jww.ERROR.Println(err) - } - - if err2 != nil { - // This error isn’t going to materially change the behavior of the - // application, but it’s something that may not be what the user - // expects. Under the default thresholds, Warn will be logged, but - // not printed to the terminal. - - jww.WARN.Println(err2) - } - - // Information that’s relevant to what’s happening, but not very - // important for the user. Under the default thresholds this will be - // discarded. - - jww.INFO.Printf("information %q", response) - -``` - -NOTE: You can also use the library in a non-global setting by creating an instance of a Notebook: - -```go -notepad = jww.NewNotepad(jww.LevelInfo, jww.LevelTrace, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime) -notepad.WARN.Println("Some warning"") -``` - -_Why 7 levels?_ - -Maybe you think that 7 levels are too much for any application... and you -are probably correct. Just because there are seven levels doesn’t mean -that you should be using all 7 levels. Pick the right set for your needs. -Remember they only have to mean something to your project. - -## Step 2. Optionally configure JWW - -Under the default thresholds : - - * Debug, Trace & Info goto /dev/null - * Warn and above is logged (when a log file/io.Writer is provided) - * Error and above is printed to the terminal (stdout) - -### Changing the thresholds - -The threshold can be changed at any time, but will only affect calls that -execute after the change was made. - -This is very useful if your application has a verbose mode. Of course you -can decide what verbose means to you or even have multiple levels of -verbosity. - - -```go - import ( - jww "github.com/spf13/jwalterweatherman" - ) - - if Verbose { - jww.SetLogThreshold(jww.LevelTrace) - jww.SetStdoutThreshold(jww.LevelInfo) - } -``` - -Note that JWW's own internal output uses log levels as well, so set the log -level before making any other calls if you want to see what it's up to. - - -### Setting a log file - -JWW can log to any `io.Writer`: - - -```go - - jww.SetLogOutput(customWriter) - -``` - - -# More information - -This is an early release. I’ve been using it for a while and this is the -third interface I’ve tried. I like this one pretty well, but no guarantees -that it won’t change a bit. - -I wrote this for use in [hugo](https://gohugo.io). If you are looking -for a static website engine that’s super fast please checkout Hugo. diff --git a/backend/vendor/github.com/spf13/jwalterweatherman/default_notepad.go b/backend/vendor/github.com/spf13/jwalterweatherman/default_notepad.go deleted file mode 100644 index a018c15c..00000000 --- a/backend/vendor/github.com/spf13/jwalterweatherman/default_notepad.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package jwalterweatherman - -import ( - "io" - "io/ioutil" - "log" - "os" -) - -var ( - TRACE *log.Logger - DEBUG *log.Logger - INFO *log.Logger - WARN *log.Logger - ERROR *log.Logger - CRITICAL *log.Logger - FATAL *log.Logger - - LOG *log.Logger - FEEDBACK *Feedback - - defaultNotepad *Notepad -) - -func reloadDefaultNotepad() { - TRACE = defaultNotepad.TRACE - DEBUG = defaultNotepad.DEBUG - INFO = defaultNotepad.INFO - WARN = defaultNotepad.WARN - ERROR = defaultNotepad.ERROR - CRITICAL = defaultNotepad.CRITICAL - FATAL = defaultNotepad.FATAL - - LOG = defaultNotepad.LOG - FEEDBACK = defaultNotepad.FEEDBACK -} - -func init() { - defaultNotepad = NewNotepad(LevelError, LevelWarn, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime) - reloadDefaultNotepad() -} - -// SetLogThreshold set the log threshold for the default notepad. Trace by default. -func SetLogThreshold(threshold Threshold) { - defaultNotepad.SetLogThreshold(threshold) - reloadDefaultNotepad() -} - -// SetLogOutput set the log output for the default notepad. Discarded by default. -func SetLogOutput(handle io.Writer) { - defaultNotepad.SetLogOutput(handle) - reloadDefaultNotepad() -} - -// SetStdoutThreshold set the standard output threshold for the default notepad. -// Info by default. -func SetStdoutThreshold(threshold Threshold) { - defaultNotepad.SetStdoutThreshold(threshold) - reloadDefaultNotepad() -} - -// SetStdoutOutput set the stdout output for the default notepad. Default is stdout. -func SetStdoutOutput(handle io.Writer) { - defaultNotepad.outHandle = handle - defaultNotepad.init() - reloadDefaultNotepad() -} - -// SetPrefix set the prefix for the default logger. Empty by default. -func SetPrefix(prefix string) { - defaultNotepad.SetPrefix(prefix) - reloadDefaultNotepad() -} - -// SetFlags set the flags for the default logger. "log.Ldate | log.Ltime" by default. -func SetFlags(flags int) { - defaultNotepad.SetFlags(flags) - reloadDefaultNotepad() -} - -// SetLogListeners configures the default logger with one or more log listeners. -func SetLogListeners(l ...LogListener) { - defaultNotepad.logListeners = l - defaultNotepad.init() - reloadDefaultNotepad() -} - -// Level returns the current global log threshold. -func LogThreshold() Threshold { - return defaultNotepad.logThreshold -} - -// Level returns the current global output threshold. -func StdoutThreshold() Threshold { - return defaultNotepad.stdoutThreshold -} - -// GetStdoutThreshold returns the defined Treshold for the log logger. -func GetLogThreshold() Threshold { - return defaultNotepad.GetLogThreshold() -} - -// GetStdoutThreshold returns the Treshold for the stdout logger. -func GetStdoutThreshold() Threshold { - return defaultNotepad.GetStdoutThreshold() -} diff --git a/backend/vendor/github.com/spf13/jwalterweatherman/log_counter.go b/backend/vendor/github.com/spf13/jwalterweatherman/log_counter.go deleted file mode 100644 index 41285f3d..00000000 --- a/backend/vendor/github.com/spf13/jwalterweatherman/log_counter.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package jwalterweatherman - -import ( - "io" - "sync/atomic" -) - -// Counter is an io.Writer that increments a counter on Write. -type Counter struct { - count uint64 -} - -func (c *Counter) incr() { - atomic.AddUint64(&c.count, 1) -} - -// Reset resets the counter. -func (c *Counter) Reset() { - atomic.StoreUint64(&c.count, 0) -} - -// Count returns the current count. -func (c *Counter) Count() uint64 { - return atomic.LoadUint64(&c.count) -} - -func (c *Counter) Write(p []byte) (n int, err error) { - c.incr() - return len(p), nil -} - -// LogCounter creates a LogListener that counts log statements >= the given threshold. -func LogCounter(counter *Counter, t1 Threshold) LogListener { - return func(t2 Threshold) io.Writer { - if t2 < t1 { - // Not interested in this threshold. - return nil - } - return counter - } -} diff --git a/backend/vendor/github.com/spf13/jwalterweatherman/notepad.go b/backend/vendor/github.com/spf13/jwalterweatherman/notepad.go deleted file mode 100644 index cc7957bf..00000000 --- a/backend/vendor/github.com/spf13/jwalterweatherman/notepad.go +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package jwalterweatherman - -import ( - "fmt" - "io" - "io/ioutil" - "log" -) - -type Threshold int - -func (t Threshold) String() string { - return prefixes[t] -} - -const ( - LevelTrace Threshold = iota - LevelDebug - LevelInfo - LevelWarn - LevelError - LevelCritical - LevelFatal -) - -var prefixes map[Threshold]string = map[Threshold]string{ - LevelTrace: "TRACE", - LevelDebug: "DEBUG", - LevelInfo: "INFO", - LevelWarn: "WARN", - LevelError: "ERROR", - LevelCritical: "CRITICAL", - LevelFatal: "FATAL", -} - -// Notepad is where you leave a note! -type Notepad struct { - TRACE *log.Logger - DEBUG *log.Logger - INFO *log.Logger - WARN *log.Logger - ERROR *log.Logger - CRITICAL *log.Logger - FATAL *log.Logger - - LOG *log.Logger - FEEDBACK *Feedback - - loggers [7]**log.Logger - logHandle io.Writer - outHandle io.Writer - logThreshold Threshold - stdoutThreshold Threshold - prefix string - flags int - - logListeners []LogListener -} - -// A LogListener can ble supplied to a Notepad to listen on log writes for a given -// threshold. This can be used to capture log events in unit tests and similar. -// Note that this function will be invoked once for each log threshold. If -// the given threshold is not of interest to you, return nil. -// Note that these listeners will receive log events for a given threshold, even -// if the current configuration says not to log it. That way you can count ERRORs even -// if you don't print them to the console. -type LogListener func(t Threshold) io.Writer - -// NewNotepad creates a new Notepad. -func NewNotepad( - outThreshold Threshold, - logThreshold Threshold, - outHandle, logHandle io.Writer, - prefix string, flags int, - logListeners ...LogListener, -) *Notepad { - - n := &Notepad{logListeners: logListeners} - - n.loggers = [7]**log.Logger{&n.TRACE, &n.DEBUG, &n.INFO, &n.WARN, &n.ERROR, &n.CRITICAL, &n.FATAL} - n.outHandle = outHandle - n.logHandle = logHandle - n.stdoutThreshold = outThreshold - n.logThreshold = logThreshold - - if len(prefix) != 0 { - n.prefix = "[" + prefix + "] " - } else { - n.prefix = "" - } - - n.flags = flags - - n.LOG = log.New(n.logHandle, - "LOG: ", - n.flags) - n.FEEDBACK = &Feedback{out: log.New(outHandle, "", 0), log: n.LOG} - - n.init() - return n -} - -// init creates the loggers for each level depending on the notepad thresholds. -func (n *Notepad) init() { - logAndOut := io.MultiWriter(n.outHandle, n.logHandle) - - for t, logger := range n.loggers { - threshold := Threshold(t) - prefix := n.prefix + threshold.String() + " " - - switch { - case threshold >= n.logThreshold && threshold >= n.stdoutThreshold: - *logger = log.New(n.createLogWriters(threshold, logAndOut), prefix, n.flags) - - case threshold >= n.logThreshold: - *logger = log.New(n.createLogWriters(threshold, n.logHandle), prefix, n.flags) - - case threshold >= n.stdoutThreshold: - *logger = log.New(n.createLogWriters(threshold, n.outHandle), prefix, n.flags) - - default: - *logger = log.New(n.createLogWriters(threshold, ioutil.Discard), prefix, n.flags) - } - } -} - -func (n *Notepad) createLogWriters(t Threshold, handle io.Writer) io.Writer { - if len(n.logListeners) == 0 { - return handle - } - writers := []io.Writer{handle} - for _, l := range n.logListeners { - w := l(t) - if w != nil { - writers = append(writers, w) - } - } - - if len(writers) == 1 { - return handle - } - - return io.MultiWriter(writers...) -} - -// SetLogThreshold changes the threshold above which messages are written to the -// log file. -func (n *Notepad) SetLogThreshold(threshold Threshold) { - n.logThreshold = threshold - n.init() -} - -// SetLogOutput changes the file where log messages are written. -func (n *Notepad) SetLogOutput(handle io.Writer) { - n.logHandle = handle - n.init() -} - -// GetStdoutThreshold returns the defined Treshold for the log logger. -func (n *Notepad) GetLogThreshold() Threshold { - return n.logThreshold -} - -// SetStdoutThreshold changes the threshold above which messages are written to the -// standard output. -func (n *Notepad) SetStdoutThreshold(threshold Threshold) { - n.stdoutThreshold = threshold - n.init() -} - -// GetStdoutThreshold returns the Treshold for the stdout logger. -func (n *Notepad) GetStdoutThreshold() Threshold { - return n.stdoutThreshold -} - -// SetPrefix changes the prefix used by the notepad. Prefixes are displayed between -// brackets at the beginning of the line. An empty prefix won't be displayed at all. -func (n *Notepad) SetPrefix(prefix string) { - if len(prefix) != 0 { - n.prefix = "[" + prefix + "] " - } else { - n.prefix = "" - } - n.init() -} - -// SetFlags choose which flags the logger will display (after prefix and message -// level). See the package log for more informations on this. -func (n *Notepad) SetFlags(flags int) { - n.flags = flags - n.init() -} - -// Feedback writes plainly to the outHandle while -// logging with the standard extra information (date, file, etc). -type Feedback struct { - out *log.Logger - log *log.Logger -} - -func (fb *Feedback) Println(v ...interface{}) { - fb.output(fmt.Sprintln(v...)) -} - -func (fb *Feedback) Printf(format string, v ...interface{}) { - fb.output(fmt.Sprintf(format, v...)) -} - -func (fb *Feedback) Print(v ...interface{}) { - fb.output(fmt.Sprint(v...)) -} - -func (fb *Feedback) output(s string) { - if fb.out != nil { - fb.out.Output(2, s) - } - if fb.log != nil { - fb.log.Output(2, s) - } -} diff --git a/backend/vendor/github.com/spf13/pflag/.gitignore b/backend/vendor/github.com/spf13/pflag/.gitignore deleted file mode 100644 index c3da2901..00000000 --- a/backend/vendor/github.com/spf13/pflag/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.idea/* - diff --git a/backend/vendor/github.com/spf13/pflag/.travis.yml b/backend/vendor/github.com/spf13/pflag/.travis.yml deleted file mode 100644 index 00d04cb9..00000000 --- a/backend/vendor/github.com/spf13/pflag/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -sudo: false - -language: go - -go: - - 1.9.x - - 1.10.x - - 1.11.x - - tip - -matrix: - allow_failures: - - go: tip - -install: - - go get golang.org/x/lint/golint - - export PATH=$GOPATH/bin:$PATH - - go install ./... - -script: - - verify/all.sh -v - - go test ./... diff --git a/backend/vendor/github.com/spf13/pflag/LICENSE b/backend/vendor/github.com/spf13/pflag/LICENSE deleted file mode 100644 index 63ed1cfe..00000000 --- a/backend/vendor/github.com/spf13/pflag/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 Alex Ogier. All rights reserved. -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/spf13/pflag/README.md b/backend/vendor/github.com/spf13/pflag/README.md deleted file mode 100644 index 7eacc5bd..00000000 --- a/backend/vendor/github.com/spf13/pflag/README.md +++ /dev/null @@ -1,296 +0,0 @@ -[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag) -[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag) -[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag) - -## Description - -pflag is a drop-in replacement for Go's flag package, implementing -POSIX/GNU-style --flags. - -pflag is compatible with the [GNU extensions to the POSIX recommendations -for command-line options][1]. For a more precise description, see the -"Command-line flag syntax" section below. - -[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html - -pflag is available under the same style of BSD license as the Go language, -which can be found in the LICENSE file. - -## Installation - -pflag is available using the standard `go get` command. - -Install by running: - - go get github.com/spf13/pflag - -Run tests by running: - - go test github.com/spf13/pflag - -## Usage - -pflag is a drop-in replacement of Go's native flag package. If you import -pflag under the name "flag" then all code should continue to function -with no changes. - -``` go -import flag "github.com/spf13/pflag" -``` - -There is one exception to this: if you directly instantiate the Flag struct -there is one more field "Shorthand" that you will need to set. -Most code never instantiates this struct directly, and instead uses -functions such as String(), BoolVar(), and Var(), and is therefore -unaffected. - -Define flags using flag.String(), Bool(), Int(), etc. - -This declares an integer flag, -flagname, stored in the pointer ip, with type *int. - -``` go -var ip *int = flag.Int("flagname", 1234, "help message for flagname") -``` - -If you like, you can bind the flag to a variable using the Var() functions. - -``` go -var flagvar int -func init() { - flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") -} -``` - -Or you can create custom flags that satisfy the Value interface (with -pointer receivers) and couple them to flag parsing by - -``` go -flag.Var(&flagVal, "name", "help message for flagname") -``` - -For such flags, the default value is just the initial value of the variable. - -After all flags are defined, call - -``` go -flag.Parse() -``` - -to parse the command line into the defined flags. - -Flags may then be used directly. If you're using the flags themselves, -they are all pointers; if you bind to variables, they're values. - -``` go -fmt.Println("ip has value ", *ip) -fmt.Println("flagvar has value ", flagvar) -``` - -There are helper functions available to get the value stored in a Flag if you have a FlagSet but find -it difficult to keep up with all of the pointers in your code. -If you have a pflag.FlagSet with a flag called 'flagname' of type int you -can use GetInt() to get the int value. But notice that 'flagname' must exist -and it must be an int. GetString("flagname") will fail. - -``` go -i, err := flagset.GetInt("flagname") -``` - -After parsing, the arguments after the flag are available as the -slice flag.Args() or individually as flag.Arg(i). -The arguments are indexed from 0 through flag.NArg()-1. - -The pflag package also defines some new functions that are not in flag, -that give one-letter shorthands for flags. You can use these by appending -'P' to the name of any function that defines a flag. - -``` go -var ip = flag.IntP("flagname", "f", 1234, "help message") -var flagvar bool -func init() { - flag.BoolVarP(&flagvar, "boolname", "b", true, "help message") -} -flag.VarP(&flagVal, "varname", "v", "help message") -``` - -Shorthand letters can be used with single dashes on the command line. -Boolean shorthand flags can be combined with other shorthand flags. - -The default set of command-line flags is controlled by -top-level functions. The FlagSet type allows one to define -independent sets of flags, such as to implement subcommands -in a command-line interface. The methods of FlagSet are -analogous to the top-level functions for the command-line -flag set. - -## Setting no option default values for flags - -After you create a flag it is possible to set the pflag.NoOptDefVal for -the given flag. Doing this changes the meaning of the flag slightly. If -a flag has a NoOptDefVal and the flag is set on the command line without -an option the flag will be set to the NoOptDefVal. For example given: - -``` go -var ip = flag.IntP("flagname", "f", 1234, "help message") -flag.Lookup("flagname").NoOptDefVal = "4321" -``` - -Would result in something like - -| Parsed Arguments | Resulting Value | -| ------------- | ------------- | -| --flagname=1357 | ip=1357 | -| --flagname | ip=4321 | -| [nothing] | ip=1234 | - -## Command line flag syntax - -``` ---flag // boolean flags, or flags with no option default values ---flag x // only on flags without a default value ---flag=x -``` - -Unlike the flag package, a single dash before an option means something -different than a double dash. Single dashes signify a series of shorthand -letters for flags. All but the last shorthand letter must be boolean flags -or a flag with a default value - -``` -// boolean or flags where the 'no option default value' is set --f --f=true --abc -but --b true is INVALID - -// non-boolean and flags without a 'no option default value' --n 1234 --n=1234 --n1234 - -// mixed --abcs "hello" --absd="hello" --abcs1234 -``` - -Flag parsing stops after the terminator "--". Unlike the flag package, -flags can be interspersed with arguments anywhere on the command line -before this terminator. - -Integer flags accept 1234, 0664, 0x1234 and may be negative. -Boolean flags (in their long form) accept 1, 0, t, f, true, false, -TRUE, FALSE, True, False. -Duration flags accept any input valid for time.ParseDuration. - -## Mutating or "Normalizing" Flag names - -It is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow. - -**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag - -``` go -func wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { - from := []string{"-", "_"} - to := "." - for _, sep := range from { - name = strings.Replace(name, sep, to, -1) - } - return pflag.NormalizedName(name) -} - -myFlagSet.SetNormalizeFunc(wordSepNormalizeFunc) -``` - -**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name - -``` go -func aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { - switch name { - case "old-flag-name": - name = "new-flag-name" - break - } - return pflag.NormalizedName(name) -} - -myFlagSet.SetNormalizeFunc(aliasNormalizeFunc) -``` - -## Deprecating a flag or its shorthand -It is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used. - -**Example #1**: You want to deprecate a flag named "badflag" as well as inform the users what flag they should use instead. -```go -// deprecate a flag by specifying its name and a usage message -flags.MarkDeprecated("badflag", "please use --good-flag instead") -``` -This hides "badflag" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when "badflag" is used. - -**Example #2**: You want to keep a flag name "noshorthandflag" but deprecate its shortname "n". -```go -// deprecate a flag shorthand by specifying its flag name and a usage message -flags.MarkShorthandDeprecated("noshorthandflag", "please use --noshorthandflag only") -``` -This hides the shortname "n" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand "n" is used. - -Note that usage message is essential here, and it should not be empty. - -## Hidden flags -It is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text. - -**Example**: You have a flag named "secretFlag" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available. -```go -// hide a flag by specifying its name -flags.MarkHidden("secretFlag") -``` - -## Disable sorting of flags -`pflag` allows you to disable sorting of flags for help and usage message. - -**Example**: -```go -flags.BoolP("verbose", "v", false, "verbose output") -flags.String("coolflag", "yeaah", "it's really cool flag") -flags.Int("usefulflag", 777, "sometimes it's very useful") -flags.SortFlags = false -flags.PrintDefaults() -``` -**Output**: -``` - -v, --verbose verbose output - --coolflag string it's really cool flag (default "yeaah") - --usefulflag int sometimes it's very useful (default 777) -``` - - -## Supporting Go flags when using pflag -In order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary -to support flags defined by third-party dependencies (e.g. `golang/glog`). - -**Example**: You want to add the Go flags to the `CommandLine` flagset -```go -import ( - goflag "flag" - flag "github.com/spf13/pflag" -) - -var ip *int = flag.Int("flagname", 1234, "help message for flagname") - -func main() { - flag.CommandLine.AddGoFlagSet(goflag.CommandLine) - flag.Parse() -} -``` - -## More info - -You can see the full reference documentation of the pflag package -[at godoc.org][3], or through go's standard documentation system by -running `godoc -http=:6060` and browsing to -[http://localhost:6060/pkg/github.com/spf13/pflag][2] after -installation. - -[2]: http://localhost:6060/pkg/github.com/spf13/pflag -[3]: http://godoc.org/github.com/spf13/pflag diff --git a/backend/vendor/github.com/spf13/pflag/bool.go b/backend/vendor/github.com/spf13/pflag/bool.go deleted file mode 100644 index c4c5c0bf..00000000 --- a/backend/vendor/github.com/spf13/pflag/bool.go +++ /dev/null @@ -1,94 +0,0 @@ -package pflag - -import "strconv" - -// optional interface to indicate boolean flags that can be -// supplied without "=value" text -type boolFlag interface { - Value - IsBoolFlag() bool -} - -// -- bool Value -type boolValue bool - -func newBoolValue(val bool, p *bool) *boolValue { - *p = val - return (*boolValue)(p) -} - -func (b *boolValue) Set(s string) error { - v, err := strconv.ParseBool(s) - *b = boolValue(v) - return err -} - -func (b *boolValue) Type() string { - return "bool" -} - -func (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) } - -func (b *boolValue) IsBoolFlag() bool { return true } - -func boolConv(sval string) (interface{}, error) { - return strconv.ParseBool(sval) -} - -// GetBool return the bool value of a flag with the given name -func (f *FlagSet) GetBool(name string) (bool, error) { - val, err := f.getFlagType(name, "bool", boolConv) - if err != nil { - return false, err - } - return val.(bool), nil -} - -// BoolVar defines a bool flag with specified name, default value, and usage string. -// The argument p points to a bool variable in which to store the value of the flag. -func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) { - f.BoolVarP(p, name, "", value, usage) -} - -// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) { - flag := f.VarPF(newBoolValue(value, p), name, shorthand, usage) - flag.NoOptDefVal = "true" -} - -// BoolVar defines a bool flag with specified name, default value, and usage string. -// The argument p points to a bool variable in which to store the value of the flag. -func BoolVar(p *bool, name string, value bool, usage string) { - BoolVarP(p, name, "", value, usage) -} - -// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. -func BoolVarP(p *bool, name, shorthand string, value bool, usage string) { - flag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage) - flag.NoOptDefVal = "true" -} - -// Bool defines a bool flag with specified name, default value, and usage string. -// The return value is the address of a bool variable that stores the value of the flag. -func (f *FlagSet) Bool(name string, value bool, usage string) *bool { - return f.BoolP(name, "", value, usage) -} - -// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool { - p := new(bool) - f.BoolVarP(p, name, shorthand, value, usage) - return p -} - -// Bool defines a bool flag with specified name, default value, and usage string. -// The return value is the address of a bool variable that stores the value of the flag. -func Bool(name string, value bool, usage string) *bool { - return BoolP(name, "", value, usage) -} - -// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. -func BoolP(name, shorthand string, value bool, usage string) *bool { - b := CommandLine.BoolP(name, shorthand, value, usage) - return b -} diff --git a/backend/vendor/github.com/spf13/pflag/bool_slice.go b/backend/vendor/github.com/spf13/pflag/bool_slice.go deleted file mode 100644 index 3731370d..00000000 --- a/backend/vendor/github.com/spf13/pflag/bool_slice.go +++ /dev/null @@ -1,185 +0,0 @@ -package pflag - -import ( - "io" - "strconv" - "strings" -) - -// -- boolSlice Value -type boolSliceValue struct { - value *[]bool - changed bool -} - -func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue { - bsv := new(boolSliceValue) - bsv.value = p - *bsv.value = val - return bsv -} - -// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag. -// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended. -func (s *boolSliceValue) Set(val string) error { - - // remove all quote characters - rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") - - // read flag arguments with CSV parser - boolStrSlice, err := readAsCSV(rmQuote.Replace(val)) - if err != nil && err != io.EOF { - return err - } - - // parse boolean values into slice - out := make([]bool, 0, len(boolStrSlice)) - for _, boolStr := range boolStrSlice { - b, err := strconv.ParseBool(strings.TrimSpace(boolStr)) - if err != nil { - return err - } - out = append(out, b) - } - - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - - s.changed = true - - return nil -} - -// Type returns a string that uniquely represents this flag's type. -func (s *boolSliceValue) Type() string { - return "boolSlice" -} - -// String defines a "native" format for this boolean slice flag value. -func (s *boolSliceValue) String() string { - - boolStrSlice := make([]string, len(*s.value)) - for i, b := range *s.value { - boolStrSlice[i] = strconv.FormatBool(b) - } - - out, _ := writeAsCSV(boolStrSlice) - - return "[" + out + "]" -} - -func (s *boolSliceValue) fromString(val string) (bool, error) { - return strconv.ParseBool(val) -} - -func (s *boolSliceValue) toString(val bool) string { - return strconv.FormatBool(val) -} - -func (s *boolSliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *boolSliceValue) Replace(val []string) error { - out := make([]bool, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *boolSliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func boolSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []bool{}, nil - } - ss := strings.Split(val, ",") - out := make([]bool, len(ss)) - for i, t := range ss { - var err error - out[i], err = strconv.ParseBool(t) - if err != nil { - return nil, err - } - } - return out, nil -} - -// GetBoolSlice returns the []bool value of a flag with the given name. -func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) { - val, err := f.getFlagType(name, "boolSlice", boolSliceConv) - if err != nil { - return []bool{}, err - } - return val.([]bool), nil -} - -// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string. -// The argument p points to a []bool variable in which to store the value of the flag. -func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) { - f.VarP(newBoolSliceValue(value, p), name, "", usage) -} - -// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { - f.VarP(newBoolSliceValue(value, p), name, shorthand, usage) -} - -// BoolSliceVar defines a []bool flag with specified name, default value, and usage string. -// The argument p points to a []bool variable in which to store the value of the flag. -func BoolSliceVar(p *[]bool, name string, value []bool, usage string) { - CommandLine.VarP(newBoolSliceValue(value, p), name, "", usage) -} - -// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. -func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { - CommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage) -} - -// BoolSlice defines a []bool flag with specified name, default value, and usage string. -// The return value is the address of a []bool variable that stores the value of the flag. -func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool { - p := []bool{} - f.BoolSliceVarP(&p, name, "", value, usage) - return &p -} - -// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { - p := []bool{} - f.BoolSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// BoolSlice defines a []bool flag with specified name, default value, and usage string. -// The return value is the address of a []bool variable that stores the value of the flag. -func BoolSlice(name string, value []bool, usage string) *[]bool { - return CommandLine.BoolSliceP(name, "", value, usage) -} - -// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. -func BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { - return CommandLine.BoolSliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/bytes.go b/backend/vendor/github.com/spf13/pflag/bytes.go deleted file mode 100644 index 67d53045..00000000 --- a/backend/vendor/github.com/spf13/pflag/bytes.go +++ /dev/null @@ -1,209 +0,0 @@ -package pflag - -import ( - "encoding/base64" - "encoding/hex" - "fmt" - "strings" -) - -// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded -type bytesHexValue []byte - -// String implements pflag.Value.String. -func (bytesHex bytesHexValue) String() string { - return fmt.Sprintf("%X", []byte(bytesHex)) -} - -// Set implements pflag.Value.Set. -func (bytesHex *bytesHexValue) Set(value string) error { - bin, err := hex.DecodeString(strings.TrimSpace(value)) - - if err != nil { - return err - } - - *bytesHex = bin - - return nil -} - -// Type implements pflag.Value.Type. -func (*bytesHexValue) Type() string { - return "bytesHex" -} - -func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue { - *p = val - return (*bytesHexValue)(p) -} - -func bytesHexConv(sval string) (interface{}, error) { - - bin, err := hex.DecodeString(sval) - - if err == nil { - return bin, nil - } - - return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err) -} - -// GetBytesHex return the []byte value of a flag with the given name -func (f *FlagSet) GetBytesHex(name string) ([]byte, error) { - val, err := f.getFlagType(name, "bytesHex", bytesHexConv) - - if err != nil { - return []byte{}, err - } - - return val.([]byte), nil -} - -// BytesHexVar defines an []byte flag with specified name, default value, and usage string. -// The argument p points to an []byte variable in which to store the value of the flag. -func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) { - f.VarP(newBytesHexValue(value, p), name, "", usage) -} - -// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { - f.VarP(newBytesHexValue(value, p), name, shorthand, usage) -} - -// BytesHexVar defines an []byte flag with specified name, default value, and usage string. -// The argument p points to an []byte variable in which to store the value of the flag. -func BytesHexVar(p *[]byte, name string, value []byte, usage string) { - CommandLine.VarP(newBytesHexValue(value, p), name, "", usage) -} - -// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. -func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { - CommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage) -} - -// BytesHex defines an []byte flag with specified name, default value, and usage string. -// The return value is the address of an []byte variable that stores the value of the flag. -func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte { - p := new([]byte) - f.BytesHexVarP(p, name, "", value, usage) - return p -} - -// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { - p := new([]byte) - f.BytesHexVarP(p, name, shorthand, value, usage) - return p -} - -// BytesHex defines an []byte flag with specified name, default value, and usage string. -// The return value is the address of an []byte variable that stores the value of the flag. -func BytesHex(name string, value []byte, usage string) *[]byte { - return CommandLine.BytesHexP(name, "", value, usage) -} - -// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. -func BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { - return CommandLine.BytesHexP(name, shorthand, value, usage) -} - -// BytesBase64 adapts []byte for use as a flag. Value of flag is Base64 encoded -type bytesBase64Value []byte - -// String implements pflag.Value.String. -func (bytesBase64 bytesBase64Value) String() string { - return base64.StdEncoding.EncodeToString([]byte(bytesBase64)) -} - -// Set implements pflag.Value.Set. -func (bytesBase64 *bytesBase64Value) Set(value string) error { - bin, err := base64.StdEncoding.DecodeString(strings.TrimSpace(value)) - - if err != nil { - return err - } - - *bytesBase64 = bin - - return nil -} - -// Type implements pflag.Value.Type. -func (*bytesBase64Value) Type() string { - return "bytesBase64" -} - -func newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value { - *p = val - return (*bytesBase64Value)(p) -} - -func bytesBase64ValueConv(sval string) (interface{}, error) { - - bin, err := base64.StdEncoding.DecodeString(sval) - if err == nil { - return bin, nil - } - - return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err) -} - -// GetBytesBase64 return the []byte value of a flag with the given name -func (f *FlagSet) GetBytesBase64(name string) ([]byte, error) { - val, err := f.getFlagType(name, "bytesBase64", bytesBase64ValueConv) - - if err != nil { - return []byte{}, err - } - - return val.([]byte), nil -} - -// BytesBase64Var defines an []byte flag with specified name, default value, and usage string. -// The argument p points to an []byte variable in which to store the value of the flag. -func (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, usage string) { - f.VarP(newBytesBase64Value(value, p), name, "", usage) -} - -// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) { - f.VarP(newBytesBase64Value(value, p), name, shorthand, usage) -} - -// BytesBase64Var defines an []byte flag with specified name, default value, and usage string. -// The argument p points to an []byte variable in which to store the value of the flag. -func BytesBase64Var(p *[]byte, name string, value []byte, usage string) { - CommandLine.VarP(newBytesBase64Value(value, p), name, "", usage) -} - -// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash. -func BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) { - CommandLine.VarP(newBytesBase64Value(value, p), name, shorthand, usage) -} - -// BytesBase64 defines an []byte flag with specified name, default value, and usage string. -// The return value is the address of an []byte variable that stores the value of the flag. -func (f *FlagSet) BytesBase64(name string, value []byte, usage string) *[]byte { - p := new([]byte) - f.BytesBase64VarP(p, name, "", value, usage) - return p -} - -// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte { - p := new([]byte) - f.BytesBase64VarP(p, name, shorthand, value, usage) - return p -} - -// BytesBase64 defines an []byte flag with specified name, default value, and usage string. -// The return value is the address of an []byte variable that stores the value of the flag. -func BytesBase64(name string, value []byte, usage string) *[]byte { - return CommandLine.BytesBase64P(name, "", value, usage) -} - -// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash. -func BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte { - return CommandLine.BytesBase64P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/count.go b/backend/vendor/github.com/spf13/pflag/count.go deleted file mode 100644 index a0b2679f..00000000 --- a/backend/vendor/github.com/spf13/pflag/count.go +++ /dev/null @@ -1,96 +0,0 @@ -package pflag - -import "strconv" - -// -- count Value -type countValue int - -func newCountValue(val int, p *int) *countValue { - *p = val - return (*countValue)(p) -} - -func (i *countValue) Set(s string) error { - // "+1" means that no specific value was passed, so increment - if s == "+1" { - *i = countValue(*i + 1) - return nil - } - v, err := strconv.ParseInt(s, 0, 0) - *i = countValue(v) - return err -} - -func (i *countValue) Type() string { - return "count" -} - -func (i *countValue) String() string { return strconv.Itoa(int(*i)) } - -func countConv(sval string) (interface{}, error) { - i, err := strconv.Atoi(sval) - if err != nil { - return nil, err - } - return i, nil -} - -// GetCount return the int value of a flag with the given name -func (f *FlagSet) GetCount(name string) (int, error) { - val, err := f.getFlagType(name, "count", countConv) - if err != nil { - return 0, err - } - return val.(int), nil -} - -// CountVar defines a count flag with specified name, default value, and usage string. -// The argument p points to an int variable in which to store the value of the flag. -// A count flag will add 1 to its value every time it is found on the command line -func (f *FlagSet) CountVar(p *int, name string, usage string) { - f.CountVarP(p, name, "", usage) -} - -// CountVarP is like CountVar only take a shorthand for the flag name. -func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) { - flag := f.VarPF(newCountValue(0, p), name, shorthand, usage) - flag.NoOptDefVal = "+1" -} - -// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set -func CountVar(p *int, name string, usage string) { - CommandLine.CountVar(p, name, usage) -} - -// CountVarP is like CountVar only take a shorthand for the flag name. -func CountVarP(p *int, name, shorthand string, usage string) { - CommandLine.CountVarP(p, name, shorthand, usage) -} - -// Count defines a count flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -// A count flag will add 1 to its value every time it is found on the command line -func (f *FlagSet) Count(name string, usage string) *int { - p := new(int) - f.CountVarP(p, name, "", usage) - return p -} - -// CountP is like Count only takes a shorthand for the flag name. -func (f *FlagSet) CountP(name, shorthand string, usage string) *int { - p := new(int) - f.CountVarP(p, name, shorthand, usage) - return p -} - -// Count defines a count flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -// A count flag will add 1 to its value evey time it is found on the command line -func Count(name string, usage string) *int { - return CommandLine.CountP(name, "", usage) -} - -// CountP is like Count only takes a shorthand for the flag name. -func CountP(name, shorthand string, usage string) *int { - return CommandLine.CountP(name, shorthand, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/duration.go b/backend/vendor/github.com/spf13/pflag/duration.go deleted file mode 100644 index e9debef8..00000000 --- a/backend/vendor/github.com/spf13/pflag/duration.go +++ /dev/null @@ -1,86 +0,0 @@ -package pflag - -import ( - "time" -) - -// -- time.Duration Value -type durationValue time.Duration - -func newDurationValue(val time.Duration, p *time.Duration) *durationValue { - *p = val - return (*durationValue)(p) -} - -func (d *durationValue) Set(s string) error { - v, err := time.ParseDuration(s) - *d = durationValue(v) - return err -} - -func (d *durationValue) Type() string { - return "duration" -} - -func (d *durationValue) String() string { return (*time.Duration)(d).String() } - -func durationConv(sval string) (interface{}, error) { - return time.ParseDuration(sval) -} - -// GetDuration return the duration value of a flag with the given name -func (f *FlagSet) GetDuration(name string) (time.Duration, error) { - val, err := f.getFlagType(name, "duration", durationConv) - if err != nil { - return 0, err - } - return val.(time.Duration), nil -} - -// DurationVar defines a time.Duration flag with specified name, default value, and usage string. -// The argument p points to a time.Duration variable in which to store the value of the flag. -func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) { - f.VarP(newDurationValue(value, p), name, "", usage) -} - -// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { - f.VarP(newDurationValue(value, p), name, shorthand, usage) -} - -// DurationVar defines a time.Duration flag with specified name, default value, and usage string. -// The argument p points to a time.Duration variable in which to store the value of the flag. -func DurationVar(p *time.Duration, name string, value time.Duration, usage string) { - CommandLine.VarP(newDurationValue(value, p), name, "", usage) -} - -// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. -func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { - CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage) -} - -// Duration defines a time.Duration flag with specified name, default value, and usage string. -// The return value is the address of a time.Duration variable that stores the value of the flag. -func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration { - p := new(time.Duration) - f.DurationVarP(p, name, "", value, usage) - return p -} - -// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { - p := new(time.Duration) - f.DurationVarP(p, name, shorthand, value, usage) - return p -} - -// Duration defines a time.Duration flag with specified name, default value, and usage string. -// The return value is the address of a time.Duration variable that stores the value of the flag. -func Duration(name string, value time.Duration, usage string) *time.Duration { - return CommandLine.DurationP(name, "", value, usage) -} - -// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. -func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { - return CommandLine.DurationP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/duration_slice.go b/backend/vendor/github.com/spf13/pflag/duration_slice.go deleted file mode 100644 index badadda5..00000000 --- a/backend/vendor/github.com/spf13/pflag/duration_slice.go +++ /dev/null @@ -1,166 +0,0 @@ -package pflag - -import ( - "fmt" - "strings" - "time" -) - -// -- durationSlice Value -type durationSliceValue struct { - value *[]time.Duration - changed bool -} - -func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue { - dsv := new(durationSliceValue) - dsv.value = p - *dsv.value = val - return dsv -} - -func (s *durationSliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]time.Duration, len(ss)) - for i, d := range ss { - var err error - out[i], err = time.ParseDuration(d) - if err != nil { - return err - } - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *durationSliceValue) Type() string { - return "durationSlice" -} - -func (s *durationSliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%s", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *durationSliceValue) fromString(val string) (time.Duration, error) { - return time.ParseDuration(val) -} - -func (s *durationSliceValue) toString(val time.Duration) string { - return fmt.Sprintf("%s", val) -} - -func (s *durationSliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *durationSliceValue) Replace(val []string) error { - out := make([]time.Duration, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *durationSliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func durationSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []time.Duration{}, nil - } - ss := strings.Split(val, ",") - out := make([]time.Duration, len(ss)) - for i, d := range ss { - var err error - out[i], err = time.ParseDuration(d) - if err != nil { - return nil, err - } - - } - return out, nil -} - -// GetDurationSlice returns the []time.Duration value of a flag with the given name -func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) { - val, err := f.getFlagType(name, "durationSlice", durationSliceConv) - if err != nil { - return []time.Duration{}, err - } - return val.([]time.Duration), nil -} - -// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string. -// The argument p points to a []time.Duration variable in which to store the value of the flag. -func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { - f.VarP(newDurationSliceValue(value, p), name, "", usage) -} - -// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { - f.VarP(newDurationSliceValue(value, p), name, shorthand, usage) -} - -// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string. -// The argument p points to a duration[] variable in which to store the value of the flag. -func DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { - CommandLine.VarP(newDurationSliceValue(value, p), name, "", usage) -} - -// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. -func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { - CommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage) -} - -// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. -// The return value is the address of a []time.Duration variable that stores the value of the flag. -func (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { - p := []time.Duration{} - f.DurationSliceVarP(&p, name, "", value, usage) - return &p -} - -// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { - p := []time.Duration{} - f.DurationSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. -// The return value is the address of a []time.Duration variable that stores the value of the flag. -func DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { - return CommandLine.DurationSliceP(name, "", value, usage) -} - -// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. -func DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { - return CommandLine.DurationSliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/flag.go b/backend/vendor/github.com/spf13/pflag/flag.go deleted file mode 100644 index e368aaf1..00000000 --- a/backend/vendor/github.com/spf13/pflag/flag.go +++ /dev/null @@ -1,1252 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package pflag is a drop-in replacement for Go's flag package, implementing -POSIX/GNU-style --flags. - -pflag is compatible with the GNU extensions to the POSIX recommendations -for command-line options. See -http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html - -Usage: - -pflag is a drop-in replacement of Go's native flag package. If you import -pflag under the name "flag" then all code should continue to function -with no changes. - - import flag "github.com/spf13/pflag" - -There is one exception to this: if you directly instantiate the Flag struct -there is one more field "Shorthand" that you will need to set. -Most code never instantiates this struct directly, and instead uses -functions such as String(), BoolVar(), and Var(), and is therefore -unaffected. - -Define flags using flag.String(), Bool(), Int(), etc. - -This declares an integer flag, -flagname, stored in the pointer ip, with type *int. - - var ip = flag.Int("flagname", 1234, "help message for flagname") - -If you like, you can bind the flag to a variable using the Var() functions. - - var flagvar int - func init() { - flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") - } - -Or you can create custom flags that satisfy the Value interface (with -pointer receivers) and couple them to flag parsing by - - flag.Var(&flagVal, "name", "help message for flagname") - -For such flags, the default value is just the initial value of the variable. - -After all flags are defined, call - - flag.Parse() - -to parse the command line into the defined flags. - -Flags may then be used directly. If you're using the flags themselves, -they are all pointers; if you bind to variables, they're values. - - fmt.Println("ip has value ", *ip) - fmt.Println("flagvar has value ", flagvar) - -After parsing, the arguments after the flag are available as the -slice flag.Args() or individually as flag.Arg(i). -The arguments are indexed from 0 through flag.NArg()-1. - -The pflag package also defines some new functions that are not in flag, -that give one-letter shorthands for flags. You can use these by appending -'P' to the name of any function that defines a flag. - - var ip = flag.IntP("flagname", "f", 1234, "help message") - var flagvar bool - func init() { - flag.BoolVarP(&flagvar, "boolname", "b", true, "help message") - } - flag.VarP(&flagval, "varname", "v", "help message") - -Shorthand letters can be used with single dashes on the command line. -Boolean shorthand flags can be combined with other shorthand flags. - -Command line flag syntax: - - --flag // boolean flags only - --flag=x - -Unlike the flag package, a single dash before an option means something -different than a double dash. Single dashes signify a series of shorthand -letters for flags. All but the last shorthand letter must be boolean flags. - - // boolean flags - -f - -abc - // non-boolean flags - -n 1234 - -Ifile - // mixed - -abcs "hello" - -abcn1234 - -Flag parsing stops after the terminator "--". Unlike the flag package, -flags can be interspersed with arguments anywhere on the command line -before this terminator. - -Integer flags accept 1234, 0664, 0x1234 and may be negative. -Boolean flags (in their long form) accept 1, 0, t, f, true, false, -TRUE, FALSE, True, False. -Duration flags accept any input valid for time.ParseDuration. - -The default set of command-line flags is controlled by -top-level functions. The FlagSet type allows one to define -independent sets of flags, such as to implement subcommands -in a command-line interface. The methods of FlagSet are -analogous to the top-level functions for the command-line -flag set. -*/ -package pflag - -import ( - "bytes" - "errors" - goflag "flag" - "fmt" - "io" - "os" - "sort" - "strings" -) - -// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined. -var ErrHelp = errors.New("pflag: help requested") - -// ErrorHandling defines how to handle flag parsing errors. -type ErrorHandling int - -const ( - // ContinueOnError will return an err from Parse() if an error is found - ContinueOnError ErrorHandling = iota - // ExitOnError will call os.Exit(2) if an error is found when parsing - ExitOnError - // PanicOnError will panic() if an error is found when parsing flags - PanicOnError -) - -// ParseErrorsWhitelist defines the parsing errors that can be ignored -type ParseErrorsWhitelist struct { - // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags - UnknownFlags bool -} - -// NormalizedName is a flag name that has been normalized according to rules -// for the FlagSet (e.g. making '-' and '_' equivalent). -type NormalizedName string - -// A FlagSet represents a set of defined flags. -type FlagSet struct { - // Usage is the function called when an error occurs while parsing flags. - // The field is a function (not a method) that may be changed to point to - // a custom error handler. - Usage func() - - // SortFlags is used to indicate, if user wants to have sorted flags in - // help/usage messages. - SortFlags bool - - // ParseErrorsWhitelist is used to configure a whitelist of errors - ParseErrorsWhitelist ParseErrorsWhitelist - - name string - parsed bool - actual map[NormalizedName]*Flag - orderedActual []*Flag - sortedActual []*Flag - formal map[NormalizedName]*Flag - orderedFormal []*Flag - sortedFormal []*Flag - shorthands map[byte]*Flag - args []string // arguments after flags - argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no -- - errorHandling ErrorHandling - output io.Writer // nil means stderr; use out() accessor - interspersed bool // allow interspersed option/non-option args - normalizeNameFunc func(f *FlagSet, name string) NormalizedName - - addedGoFlagSets []*goflag.FlagSet -} - -// A Flag represents the state of a flag. -type Flag struct { - Name string // name as it appears on command line - Shorthand string // one-letter abbreviated flag - Usage string // help message - Value Value // value as set - DefValue string // default value (as text); for usage message - Changed bool // If the user set the value (or if left to default) - NoOptDefVal string // default value (as text); if the flag is on the command line without any options - Deprecated string // If this flag is deprecated, this string is the new or now thing to use - Hidden bool // used by cobra.Command to allow flags to be hidden from help/usage text - ShorthandDeprecated string // If the shorthand of this flag is deprecated, this string is the new or now thing to use - Annotations map[string][]string // used by cobra.Command bash autocomple code -} - -// Value is the interface to the dynamic value stored in a flag. -// (The default value is represented as a string.) -type Value interface { - String() string - Set(string) error - Type() string -} - -// SliceValue is a secondary interface to all flags which hold a list -// of values. This allows full control over the value of list flags, -// and avoids complicated marshalling and unmarshalling to csv. -type SliceValue interface { - // Append adds the specified value to the end of the flag value list. - Append(string) error - // Replace will fully overwrite any data currently in the flag value list. - Replace([]string) error - // GetSlice returns the flag value list as an array of strings. - GetSlice() []string -} - -// sortFlags returns the flags as a slice in lexicographical sorted order. -func sortFlags(flags map[NormalizedName]*Flag) []*Flag { - list := make(sort.StringSlice, len(flags)) - i := 0 - for k := range flags { - list[i] = string(k) - i++ - } - list.Sort() - result := make([]*Flag, len(list)) - for i, name := range list { - result[i] = flags[NormalizedName(name)] - } - return result -} - -// SetNormalizeFunc allows you to add a function which can translate flag names. -// Flags added to the FlagSet will be translated and then when anything tries to -// look up the flag that will also be translated. So it would be possible to create -// a flag named "getURL" and have it translated to "geturl". A user could then pass -// "--getUrl" which may also be translated to "geturl" and everything will work. -func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) { - f.normalizeNameFunc = n - f.sortedFormal = f.sortedFormal[:0] - for fname, flag := range f.formal { - nname := f.normalizeFlagName(flag.Name) - if fname == nname { - continue - } - flag.Name = string(nname) - delete(f.formal, fname) - f.formal[nname] = flag - if _, set := f.actual[fname]; set { - delete(f.actual, fname) - f.actual[nname] = flag - } - } -} - -// GetNormalizeFunc returns the previously set NormalizeFunc of a function which -// does no translation, if not set previously. -func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName { - if f.normalizeNameFunc != nil { - return f.normalizeNameFunc - } - return func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) } -} - -func (f *FlagSet) normalizeFlagName(name string) NormalizedName { - n := f.GetNormalizeFunc() - return n(f, name) -} - -func (f *FlagSet) out() io.Writer { - if f.output == nil { - return os.Stderr - } - return f.output -} - -// SetOutput sets the destination for usage and error messages. -// If output is nil, os.Stderr is used. -func (f *FlagSet) SetOutput(output io.Writer) { - f.output = output -} - -// VisitAll visits the flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits all flags, even those not set. -func (f *FlagSet) VisitAll(fn func(*Flag)) { - if len(f.formal) == 0 { - return - } - - var flags []*Flag - if f.SortFlags { - if len(f.formal) != len(f.sortedFormal) { - f.sortedFormal = sortFlags(f.formal) - } - flags = f.sortedFormal - } else { - flags = f.orderedFormal - } - - for _, flag := range flags { - fn(flag) - } -} - -// HasFlags returns a bool to indicate if the FlagSet has any flags defined. -func (f *FlagSet) HasFlags() bool { - return len(f.formal) > 0 -} - -// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags -// that are not hidden. -func (f *FlagSet) HasAvailableFlags() bool { - for _, flag := range f.formal { - if !flag.Hidden { - return true - } - } - return false -} - -// VisitAll visits the command-line flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits all flags, even those not set. -func VisitAll(fn func(*Flag)) { - CommandLine.VisitAll(fn) -} - -// Visit visits the flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits only those flags that have been set. -func (f *FlagSet) Visit(fn func(*Flag)) { - if len(f.actual) == 0 { - return - } - - var flags []*Flag - if f.SortFlags { - if len(f.actual) != len(f.sortedActual) { - f.sortedActual = sortFlags(f.actual) - } - flags = f.sortedActual - } else { - flags = f.orderedActual - } - - for _, flag := range flags { - fn(flag) - } -} - -// Visit visits the command-line flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits only those flags that have been set. -func Visit(fn func(*Flag)) { - CommandLine.Visit(fn) -} - -// Lookup returns the Flag structure of the named flag, returning nil if none exists. -func (f *FlagSet) Lookup(name string) *Flag { - return f.lookup(f.normalizeFlagName(name)) -} - -// ShorthandLookup returns the Flag structure of the short handed flag, -// returning nil if none exists. -// It panics, if len(name) > 1. -func (f *FlagSet) ShorthandLookup(name string) *Flag { - if name == "" { - return nil - } - if len(name) > 1 { - msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name) - fmt.Fprintf(f.out(), msg) - panic(msg) - } - c := name[0] - return f.shorthands[c] -} - -// lookup returns the Flag structure of the named flag, returning nil if none exists. -func (f *FlagSet) lookup(name NormalizedName) *Flag { - return f.formal[name] -} - -// func to return a given type for a given flag name -func (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) { - flag := f.Lookup(name) - if flag == nil { - err := fmt.Errorf("flag accessed but not defined: %s", name) - return nil, err - } - - if flag.Value.Type() != ftype { - err := fmt.Errorf("trying to get %s value of flag of type %s", ftype, flag.Value.Type()) - return nil, err - } - - sval := flag.Value.String() - result, err := convFunc(sval) - if err != nil { - return nil, err - } - return result, nil -} - -// ArgsLenAtDash will return the length of f.Args at the moment when a -- was -// found during arg parsing. This allows your program to know which args were -// before the -- and which came after. -func (f *FlagSet) ArgsLenAtDash() int { - return f.argsLenAtDash -} - -// MarkDeprecated indicated that a flag is deprecated in your program. It will -// continue to function but will not show up in help or usage messages. Using -// this flag will also print the given usageMessage. -func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error { - flag := f.Lookup(name) - if flag == nil { - return fmt.Errorf("flag %q does not exist", name) - } - if usageMessage == "" { - return fmt.Errorf("deprecated message for flag %q must be set", name) - } - flag.Deprecated = usageMessage - flag.Hidden = true - return nil -} - -// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your -// program. It will continue to function but will not show up in help or usage -// messages. Using this flag will also print the given usageMessage. -func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error { - flag := f.Lookup(name) - if flag == nil { - return fmt.Errorf("flag %q does not exist", name) - } - if usageMessage == "" { - return fmt.Errorf("deprecated message for flag %q must be set", name) - } - flag.ShorthandDeprecated = usageMessage - return nil -} - -// MarkHidden sets a flag to 'hidden' in your program. It will continue to -// function but will not show up in help or usage messages. -func (f *FlagSet) MarkHidden(name string) error { - flag := f.Lookup(name) - if flag == nil { - return fmt.Errorf("flag %q does not exist", name) - } - flag.Hidden = true - return nil -} - -// Lookup returns the Flag structure of the named command-line flag, -// returning nil if none exists. -func Lookup(name string) *Flag { - return CommandLine.Lookup(name) -} - -// ShorthandLookup returns the Flag structure of the short handed flag, -// returning nil if none exists. -func ShorthandLookup(name string) *Flag { - return CommandLine.ShorthandLookup(name) -} - -// Set sets the value of the named flag. -func (f *FlagSet) Set(name, value string) error { - normalName := f.normalizeFlagName(name) - flag, ok := f.formal[normalName] - if !ok { - return fmt.Errorf("no such flag -%v", name) - } - - err := flag.Value.Set(value) - if err != nil { - var flagName string - if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { - flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name) - } else { - flagName = fmt.Sprintf("--%s", flag.Name) - } - return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err) - } - - if !flag.Changed { - if f.actual == nil { - f.actual = make(map[NormalizedName]*Flag) - } - f.actual[normalName] = flag - f.orderedActual = append(f.orderedActual, flag) - - flag.Changed = true - } - - if flag.Deprecated != "" { - fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) - } - return nil -} - -// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet. -// This is sometimes used by spf13/cobra programs which want to generate additional -// bash completion information. -func (f *FlagSet) SetAnnotation(name, key string, values []string) error { - normalName := f.normalizeFlagName(name) - flag, ok := f.formal[normalName] - if !ok { - return fmt.Errorf("no such flag -%v", name) - } - if flag.Annotations == nil { - flag.Annotations = map[string][]string{} - } - flag.Annotations[key] = values - return nil -} - -// Changed returns true if the flag was explicitly set during Parse() and false -// otherwise -func (f *FlagSet) Changed(name string) bool { - flag := f.Lookup(name) - // If a flag doesn't exist, it wasn't changed.... - if flag == nil { - return false - } - return flag.Changed -} - -// Set sets the value of the named command-line flag. -func Set(name, value string) error { - return CommandLine.Set(name, value) -} - -// PrintDefaults prints, to standard error unless configured -// otherwise, the default values of all defined flags in the set. -func (f *FlagSet) PrintDefaults() { - usages := f.FlagUsages() - fmt.Fprint(f.out(), usages) -} - -// defaultIsZeroValue returns true if the default value for this flag represents -// a zero value. -func (f *Flag) defaultIsZeroValue() bool { - switch f.Value.(type) { - case boolFlag: - return f.DefValue == "false" - case *durationValue: - // Beginning in Go 1.7, duration zero values are "0s" - return f.DefValue == "0" || f.DefValue == "0s" - case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value: - return f.DefValue == "0" - case *stringValue: - return f.DefValue == "" - case *ipValue, *ipMaskValue, *ipNetValue: - return f.DefValue == "" - case *intSliceValue, *stringSliceValue, *stringArrayValue: - return f.DefValue == "[]" - default: - switch f.Value.String() { - case "false": - return true - case "": - return true - case "": - return true - case "0": - return true - } - return false - } -} - -// UnquoteUsage extracts a back-quoted name from the usage -// string for a flag and returns it and the un-quoted usage. -// Given "a `name` to show" it returns ("name", "a name to show"). -// If there are no back quotes, the name is an educated guess of the -// type of the flag's value, or the empty string if the flag is boolean. -func UnquoteUsage(flag *Flag) (name string, usage string) { - // Look for a back-quoted name, but avoid the strings package. - usage = flag.Usage - for i := 0; i < len(usage); i++ { - if usage[i] == '`' { - for j := i + 1; j < len(usage); j++ { - if usage[j] == '`' { - name = usage[i+1 : j] - usage = usage[:i] + name + usage[j+1:] - return name, usage - } - } - break // Only one back quote; use type name. - } - } - - name = flag.Value.Type() - switch name { - case "bool": - name = "" - case "float64": - name = "float" - case "int64": - name = "int" - case "uint64": - name = "uint" - case "stringSlice": - name = "strings" - case "intSlice": - name = "ints" - case "uintSlice": - name = "uints" - case "boolSlice": - name = "bools" - } - - return -} - -// Splits the string `s` on whitespace into an initial substring up to -// `i` runes in length and the remainder. Will go `slop` over `i` if -// that encompasses the entire string (which allows the caller to -// avoid short orphan words on the final line). -func wrapN(i, slop int, s string) (string, string) { - if i+slop > len(s) { - return s, "" - } - - w := strings.LastIndexAny(s[:i], " \t\n") - if w <= 0 { - return s, "" - } - nlPos := strings.LastIndex(s[:i], "\n") - if nlPos > 0 && nlPos < w { - return s[:nlPos], s[nlPos+1:] - } - return s[:w], s[w+1:] -} - -// Wraps the string `s` to a maximum width `w` with leading indent -// `i`. The first line is not indented (this is assumed to be done by -// caller). Pass `w` == 0 to do no wrapping -func wrap(i, w int, s string) string { - if w == 0 { - return strings.Replace(s, "\n", "\n"+strings.Repeat(" ", i), -1) - } - - // space between indent i and end of line width w into which - // we should wrap the text. - wrap := w - i - - var r, l string - - // Not enough space for sensible wrapping. Wrap as a block on - // the next line instead. - if wrap < 24 { - i = 16 - wrap = w - i - r += "\n" + strings.Repeat(" ", i) - } - // If still not enough space then don't even try to wrap. - if wrap < 24 { - return strings.Replace(s, "\n", r, -1) - } - - // Try to avoid short orphan words on the final line, by - // allowing wrapN to go a bit over if that would fit in the - // remainder of the line. - slop := 5 - wrap = wrap - slop - - // Handle first line, which is indented by the caller (or the - // special case above) - l, s = wrapN(wrap, slop, s) - r = r + strings.Replace(l, "\n", "\n"+strings.Repeat(" ", i), -1) - - // Now wrap the rest - for s != "" { - var t string - - t, s = wrapN(wrap, slop, s) - r = r + "\n" + strings.Repeat(" ", i) + strings.Replace(t, "\n", "\n"+strings.Repeat(" ", i), -1) - } - - return r - -} - -// FlagUsagesWrapped returns a string containing the usage information -// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no -// wrapping) -func (f *FlagSet) FlagUsagesWrapped(cols int) string { - buf := new(bytes.Buffer) - - lines := make([]string, 0, len(f.formal)) - - maxlen := 0 - f.VisitAll(func(flag *Flag) { - if flag.Hidden { - return - } - - line := "" - if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { - line = fmt.Sprintf(" -%s, --%s", flag.Shorthand, flag.Name) - } else { - line = fmt.Sprintf(" --%s", flag.Name) - } - - varname, usage := UnquoteUsage(flag) - if varname != "" { - line += " " + varname - } - if flag.NoOptDefVal != "" { - switch flag.Value.Type() { - case "string": - line += fmt.Sprintf("[=\"%s\"]", flag.NoOptDefVal) - case "bool": - if flag.NoOptDefVal != "true" { - line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) - } - case "count": - if flag.NoOptDefVal != "+1" { - line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) - } - default: - line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) - } - } - - // This special character will be replaced with spacing once the - // correct alignment is calculated - line += "\x00" - if len(line) > maxlen { - maxlen = len(line) - } - - line += usage - if !flag.defaultIsZeroValue() { - if flag.Value.Type() == "string" { - line += fmt.Sprintf(" (default %q)", flag.DefValue) - } else { - line += fmt.Sprintf(" (default %s)", flag.DefValue) - } - } - if len(flag.Deprecated) != 0 { - line += fmt.Sprintf(" (DEPRECATED: %s)", flag.Deprecated) - } - - lines = append(lines, line) - }) - - for _, line := range lines { - sidx := strings.Index(line, "\x00") - spacing := strings.Repeat(" ", maxlen-sidx) - // maxlen + 2 comes from + 1 for the \x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx - fmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:])) - } - - return buf.String() -} - -// FlagUsages returns a string containing the usage information for all flags in -// the FlagSet -func (f *FlagSet) FlagUsages() string { - return f.FlagUsagesWrapped(0) -} - -// PrintDefaults prints to standard error the default values of all defined command-line flags. -func PrintDefaults() { - CommandLine.PrintDefaults() -} - -// defaultUsage is the default function to print a usage message. -func defaultUsage(f *FlagSet) { - fmt.Fprintf(f.out(), "Usage of %s:\n", f.name) - f.PrintDefaults() -} - -// NOTE: Usage is not just defaultUsage(CommandLine) -// because it serves (via godoc flag Usage) as the example -// for how to write your own usage function. - -// Usage prints to standard error a usage message documenting all defined command-line flags. -// The function is a variable that may be changed to point to a custom function. -// By default it prints a simple header and calls PrintDefaults; for details about the -// format of the output and how to control it, see the documentation for PrintDefaults. -var Usage = func() { - fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) - PrintDefaults() -} - -// NFlag returns the number of flags that have been set. -func (f *FlagSet) NFlag() int { return len(f.actual) } - -// NFlag returns the number of command-line flags that have been set. -func NFlag() int { return len(CommandLine.actual) } - -// Arg returns the i'th argument. Arg(0) is the first remaining argument -// after flags have been processed. -func (f *FlagSet) Arg(i int) string { - if i < 0 || i >= len(f.args) { - return "" - } - return f.args[i] -} - -// Arg returns the i'th command-line argument. Arg(0) is the first remaining argument -// after flags have been processed. -func Arg(i int) string { - return CommandLine.Arg(i) -} - -// NArg is the number of arguments remaining after flags have been processed. -func (f *FlagSet) NArg() int { return len(f.args) } - -// NArg is the number of arguments remaining after flags have been processed. -func NArg() int { return len(CommandLine.args) } - -// Args returns the non-flag arguments. -func (f *FlagSet) Args() []string { return f.args } - -// Args returns the non-flag command-line arguments. -func Args() []string { return CommandLine.args } - -// Var defines a flag with the specified name and usage string. The type and -// value of the flag are represented by the first argument, of type Value, which -// typically holds a user-defined implementation of Value. For instance, the -// caller could create a flag that turns a comma-separated string into a slice -// of strings by giving the slice the methods of Value; in particular, Set would -// decompose the comma-separated string into the slice. -func (f *FlagSet) Var(value Value, name string, usage string) { - f.VarP(value, name, "", usage) -} - -// VarPF is like VarP, but returns the flag created -func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag { - // Remember the default value as a string; it won't change. - flag := &Flag{ - Name: name, - Shorthand: shorthand, - Usage: usage, - Value: value, - DefValue: value.String(), - } - f.AddFlag(flag) - return flag -} - -// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) VarP(value Value, name, shorthand, usage string) { - f.VarPF(value, name, shorthand, usage) -} - -// AddFlag will add the flag to the FlagSet -func (f *FlagSet) AddFlag(flag *Flag) { - normalizedFlagName := f.normalizeFlagName(flag.Name) - - _, alreadyThere := f.formal[normalizedFlagName] - if alreadyThere { - msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name) - fmt.Fprintln(f.out(), msg) - panic(msg) // Happens only if flags are declared with identical names - } - if f.formal == nil { - f.formal = make(map[NormalizedName]*Flag) - } - - flag.Name = string(normalizedFlagName) - f.formal[normalizedFlagName] = flag - f.orderedFormal = append(f.orderedFormal, flag) - - if flag.Shorthand == "" { - return - } - if len(flag.Shorthand) > 1 { - msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand) - fmt.Fprintf(f.out(), msg) - panic(msg) - } - if f.shorthands == nil { - f.shorthands = make(map[byte]*Flag) - } - c := flag.Shorthand[0] - used, alreadyThere := f.shorthands[c] - if alreadyThere { - msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name) - fmt.Fprintf(f.out(), msg) - panic(msg) - } - f.shorthands[c] = flag -} - -// AddFlagSet adds one FlagSet to another. If a flag is already present in f -// the flag from newSet will be ignored. -func (f *FlagSet) AddFlagSet(newSet *FlagSet) { - if newSet == nil { - return - } - newSet.VisitAll(func(flag *Flag) { - if f.Lookup(flag.Name) == nil { - f.AddFlag(flag) - } - }) -} - -// Var defines a flag with the specified name and usage string. The type and -// value of the flag are represented by the first argument, of type Value, which -// typically holds a user-defined implementation of Value. For instance, the -// caller could create a flag that turns a comma-separated string into a slice -// of strings by giving the slice the methods of Value; in particular, Set would -// decompose the comma-separated string into the slice. -func Var(value Value, name string, usage string) { - CommandLine.VarP(value, name, "", usage) -} - -// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. -func VarP(value Value, name, shorthand, usage string) { - CommandLine.VarP(value, name, shorthand, usage) -} - -// failf prints to standard error a formatted error and usage message and -// returns the error. -func (f *FlagSet) failf(format string, a ...interface{}) error { - err := fmt.Errorf(format, a...) - if f.errorHandling != ContinueOnError { - fmt.Fprintln(f.out(), err) - f.usage() - } - return err -} - -// usage calls the Usage method for the flag set, or the usage function if -// the flag set is CommandLine. -func (f *FlagSet) usage() { - if f == CommandLine { - Usage() - } else if f.Usage == nil { - defaultUsage(f) - } else { - f.Usage() - } -} - -// --unknown (args will be empty) -// --unknown --next-flag ... (args will be --next-flag ...) -// --unknown arg ... (args will be arg ...) -func stripUnknownFlagValue(args []string) []string { - if len(args) == 0 { - //--unknown - return args - } - - first := args[0] - if len(first) > 0 && first[0] == '-' { - //--unknown --next-flag ... - return args - } - - //--unknown arg ... (args will be arg ...) - if len(args) > 1 { - return args[1:] - } - return nil -} - -func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) { - a = args - name := s[2:] - if len(name) == 0 || name[0] == '-' || name[0] == '=' { - err = f.failf("bad flag syntax: %s", s) - return - } - - split := strings.SplitN(name, "=", 2) - name = split[0] - flag, exists := f.formal[f.normalizeFlagName(name)] - - if !exists { - switch { - case name == "help": - f.usage() - return a, ErrHelp - case f.ParseErrorsWhitelist.UnknownFlags: - // --unknown=unknownval arg ... - // we do not want to lose arg in this case - if len(split) >= 2 { - return a, nil - } - - return stripUnknownFlagValue(a), nil - default: - err = f.failf("unknown flag: --%s", name) - return - } - } - - var value string - if len(split) == 2 { - // '--flag=arg' - value = split[1] - } else if flag.NoOptDefVal != "" { - // '--flag' (arg was optional) - value = flag.NoOptDefVal - } else if len(a) > 0 { - // '--flag arg' - value = a[0] - a = a[1:] - } else { - // '--flag' (arg was required) - err = f.failf("flag needs an argument: %s", s) - return - } - - err = fn(flag, value) - if err != nil { - f.failf(err.Error()) - } - return -} - -func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) { - outArgs = args - - if strings.HasPrefix(shorthands, "test.") { - return - } - - outShorts = shorthands[1:] - c := shorthands[0] - - flag, exists := f.shorthands[c] - if !exists { - switch { - case c == 'h': - f.usage() - err = ErrHelp - return - case f.ParseErrorsWhitelist.UnknownFlags: - // '-f=arg arg ...' - // we do not want to lose arg in this case - if len(shorthands) > 2 && shorthands[1] == '=' { - outShorts = "" - return - } - - outArgs = stripUnknownFlagValue(outArgs) - return - default: - err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands) - return - } - } - - var value string - if len(shorthands) > 2 && shorthands[1] == '=' { - // '-f=arg' - value = shorthands[2:] - outShorts = "" - } else if flag.NoOptDefVal != "" { - // '-f' (arg was optional) - value = flag.NoOptDefVal - } else if len(shorthands) > 1 { - // '-farg' - value = shorthands[1:] - outShorts = "" - } else if len(args) > 0 { - // '-f arg' - value = args[0] - outArgs = args[1:] - } else { - // '-f' (arg was required) - err = f.failf("flag needs an argument: %q in -%s", c, shorthands) - return - } - - if flag.ShorthandDeprecated != "" { - fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated) - } - - err = fn(flag, value) - if err != nil { - f.failf(err.Error()) - } - return -} - -func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) { - a = args - shorthands := s[1:] - - // "shorthands" can be a series of shorthand letters of flags (e.g. "-vvv"). - for len(shorthands) > 0 { - shorthands, a, err = f.parseSingleShortArg(shorthands, args, fn) - if err != nil { - return - } - } - - return -} - -func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) { - for len(args) > 0 { - s := args[0] - args = args[1:] - if len(s) == 0 || s[0] != '-' || len(s) == 1 { - if !f.interspersed { - f.args = append(f.args, s) - f.args = append(f.args, args...) - return nil - } - f.args = append(f.args, s) - continue - } - - if s[1] == '-' { - if len(s) == 2 { // "--" terminates the flags - f.argsLenAtDash = len(f.args) - f.args = append(f.args, args...) - break - } - args, err = f.parseLongArg(s, args, fn) - } else { - args, err = f.parseShortArg(s, args, fn) - } - if err != nil { - return - } - } - return -} - -// Parse parses flag definitions from the argument list, which should not -// include the command name. Must be called after all flags in the FlagSet -// are defined and before flags are accessed by the program. -// The return value will be ErrHelp if -help was set but not defined. -func (f *FlagSet) Parse(arguments []string) error { - if f.addedGoFlagSets != nil { - for _, goFlagSet := range f.addedGoFlagSets { - goFlagSet.Parse(nil) - } - } - f.parsed = true - - if len(arguments) < 0 { - return nil - } - - f.args = make([]string, 0, len(arguments)) - - set := func(flag *Flag, value string) error { - return f.Set(flag.Name, value) - } - - err := f.parseArgs(arguments, set) - if err != nil { - switch f.errorHandling { - case ContinueOnError: - return err - case ExitOnError: - fmt.Println(err) - os.Exit(2) - case PanicOnError: - panic(err) - } - } - return nil -} - -type parseFunc func(flag *Flag, value string) error - -// ParseAll parses flag definitions from the argument list, which should not -// include the command name. The arguments for fn are flag and value. Must be -// called after all flags in the FlagSet are defined and before flags are -// accessed by the program. The return value will be ErrHelp if -help was set -// but not defined. -func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error { - f.parsed = true - f.args = make([]string, 0, len(arguments)) - - err := f.parseArgs(arguments, fn) - if err != nil { - switch f.errorHandling { - case ContinueOnError: - return err - case ExitOnError: - os.Exit(2) - case PanicOnError: - panic(err) - } - } - return nil -} - -// Parsed reports whether f.Parse has been called. -func (f *FlagSet) Parsed() bool { - return f.parsed -} - -// Parse parses the command-line flags from os.Args[1:]. Must be called -// after all flags are defined and before flags are accessed by the program. -func Parse() { - // Ignore errors; CommandLine is set for ExitOnError. - CommandLine.Parse(os.Args[1:]) -} - -// ParseAll parses the command-line flags from os.Args[1:] and called fn for each. -// The arguments for fn are flag and value. Must be called after all flags are -// defined and before flags are accessed by the program. -func ParseAll(fn func(flag *Flag, value string) error) { - // Ignore errors; CommandLine is set for ExitOnError. - CommandLine.ParseAll(os.Args[1:], fn) -} - -// SetInterspersed sets whether to support interspersed option/non-option arguments. -func SetInterspersed(interspersed bool) { - CommandLine.SetInterspersed(interspersed) -} - -// Parsed returns true if the command-line flags have been parsed. -func Parsed() bool { - return CommandLine.Parsed() -} - -// CommandLine is the default set of command-line flags, parsed from os.Args. -var CommandLine = NewFlagSet(os.Args[0], ExitOnError) - -// NewFlagSet returns a new, empty flag set with the specified name, -// error handling property and SortFlags set to true. -func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { - f := &FlagSet{ - name: name, - errorHandling: errorHandling, - argsLenAtDash: -1, - interspersed: true, - SortFlags: true, - } - return f -} - -// SetInterspersed sets whether to support interspersed option/non-option arguments. -func (f *FlagSet) SetInterspersed(interspersed bool) { - f.interspersed = interspersed -} - -// Init sets the name and error handling property for a flag set. -// By default, the zero FlagSet uses an empty name and the -// ContinueOnError error handling policy. -func (f *FlagSet) Init(name string, errorHandling ErrorHandling) { - f.name = name - f.errorHandling = errorHandling - f.argsLenAtDash = -1 -} diff --git a/backend/vendor/github.com/spf13/pflag/float32.go b/backend/vendor/github.com/spf13/pflag/float32.go deleted file mode 100644 index a243f81f..00000000 --- a/backend/vendor/github.com/spf13/pflag/float32.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- float32 Value -type float32Value float32 - -func newFloat32Value(val float32, p *float32) *float32Value { - *p = val - return (*float32Value)(p) -} - -func (f *float32Value) Set(s string) error { - v, err := strconv.ParseFloat(s, 32) - *f = float32Value(v) - return err -} - -func (f *float32Value) Type() string { - return "float32" -} - -func (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) } - -func float32Conv(sval string) (interface{}, error) { - v, err := strconv.ParseFloat(sval, 32) - if err != nil { - return 0, err - } - return float32(v), nil -} - -// GetFloat32 return the float32 value of a flag with the given name -func (f *FlagSet) GetFloat32(name string) (float32, error) { - val, err := f.getFlagType(name, "float32", float32Conv) - if err != nil { - return 0, err - } - return val.(float32), nil -} - -// Float32Var defines a float32 flag with specified name, default value, and usage string. -// The argument p points to a float32 variable in which to store the value of the flag. -func (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) { - f.VarP(newFloat32Value(value, p), name, "", usage) -} - -// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) { - f.VarP(newFloat32Value(value, p), name, shorthand, usage) -} - -// Float32Var defines a float32 flag with specified name, default value, and usage string. -// The argument p points to a float32 variable in which to store the value of the flag. -func Float32Var(p *float32, name string, value float32, usage string) { - CommandLine.VarP(newFloat32Value(value, p), name, "", usage) -} - -// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. -func Float32VarP(p *float32, name, shorthand string, value float32, usage string) { - CommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage) -} - -// Float32 defines a float32 flag with specified name, default value, and usage string. -// The return value is the address of a float32 variable that stores the value of the flag. -func (f *FlagSet) Float32(name string, value float32, usage string) *float32 { - p := new(float32) - f.Float32VarP(p, name, "", value, usage) - return p -} - -// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 { - p := new(float32) - f.Float32VarP(p, name, shorthand, value, usage) - return p -} - -// Float32 defines a float32 flag with specified name, default value, and usage string. -// The return value is the address of a float32 variable that stores the value of the flag. -func Float32(name string, value float32, usage string) *float32 { - return CommandLine.Float32P(name, "", value, usage) -} - -// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. -func Float32P(name, shorthand string, value float32, usage string) *float32 { - return CommandLine.Float32P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/float32_slice.go b/backend/vendor/github.com/spf13/pflag/float32_slice.go deleted file mode 100644 index caa35274..00000000 --- a/backend/vendor/github.com/spf13/pflag/float32_slice.go +++ /dev/null @@ -1,174 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- float32Slice Value -type float32SliceValue struct { - value *[]float32 - changed bool -} - -func newFloat32SliceValue(val []float32, p *[]float32) *float32SliceValue { - isv := new(float32SliceValue) - isv.value = p - *isv.value = val - return isv -} - -func (s *float32SliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]float32, len(ss)) - for i, d := range ss { - var err error - var temp64 float64 - temp64, err = strconv.ParseFloat(d, 32) - if err != nil { - return err - } - out[i] = float32(temp64) - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *float32SliceValue) Type() string { - return "float32Slice" -} - -func (s *float32SliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%f", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *float32SliceValue) fromString(val string) (float32, error) { - t64, err := strconv.ParseFloat(val, 32) - if err != nil { - return 0, err - } - return float32(t64), nil -} - -func (s *float32SliceValue) toString(val float32) string { - return fmt.Sprintf("%f", val) -} - -func (s *float32SliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *float32SliceValue) Replace(val []string) error { - out := make([]float32, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *float32SliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func float32SliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []float32{}, nil - } - ss := strings.Split(val, ",") - out := make([]float32, len(ss)) - for i, d := range ss { - var err error - var temp64 float64 - temp64, err = strconv.ParseFloat(d, 32) - if err != nil { - return nil, err - } - out[i] = float32(temp64) - - } - return out, nil -} - -// GetFloat32Slice return the []float32 value of a flag with the given name -func (f *FlagSet) GetFloat32Slice(name string) ([]float32, error) { - val, err := f.getFlagType(name, "float32Slice", float32SliceConv) - if err != nil { - return []float32{}, err - } - return val.([]float32), nil -} - -// Float32SliceVar defines a float32Slice flag with specified name, default value, and usage string. -// The argument p points to a []float32 variable in which to store the value of the flag. -func (f *FlagSet) Float32SliceVar(p *[]float32, name string, value []float32, usage string) { - f.VarP(newFloat32SliceValue(value, p), name, "", usage) -} - -// Float32SliceVarP is like Float32SliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float32SliceVarP(p *[]float32, name, shorthand string, value []float32, usage string) { - f.VarP(newFloat32SliceValue(value, p), name, shorthand, usage) -} - -// Float32SliceVar defines a float32[] flag with specified name, default value, and usage string. -// The argument p points to a float32[] variable in which to store the value of the flag. -func Float32SliceVar(p *[]float32, name string, value []float32, usage string) { - CommandLine.VarP(newFloat32SliceValue(value, p), name, "", usage) -} - -// Float32SliceVarP is like Float32SliceVar, but accepts a shorthand letter that can be used after a single dash. -func Float32SliceVarP(p *[]float32, name, shorthand string, value []float32, usage string) { - CommandLine.VarP(newFloat32SliceValue(value, p), name, shorthand, usage) -} - -// Float32Slice defines a []float32 flag with specified name, default value, and usage string. -// The return value is the address of a []float32 variable that stores the value of the flag. -func (f *FlagSet) Float32Slice(name string, value []float32, usage string) *[]float32 { - p := []float32{} - f.Float32SliceVarP(&p, name, "", value, usage) - return &p -} - -// Float32SliceP is like Float32Slice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32 { - p := []float32{} - f.Float32SliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// Float32Slice defines a []float32 flag with specified name, default value, and usage string. -// The return value is the address of a []float32 variable that stores the value of the flag. -func Float32Slice(name string, value []float32, usage string) *[]float32 { - return CommandLine.Float32SliceP(name, "", value, usage) -} - -// Float32SliceP is like Float32Slice, but accepts a shorthand letter that can be used after a single dash. -func Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32 { - return CommandLine.Float32SliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/float64.go b/backend/vendor/github.com/spf13/pflag/float64.go deleted file mode 100644 index 04b5492a..00000000 --- a/backend/vendor/github.com/spf13/pflag/float64.go +++ /dev/null @@ -1,84 +0,0 @@ -package pflag - -import "strconv" - -// -- float64 Value -type float64Value float64 - -func newFloat64Value(val float64, p *float64) *float64Value { - *p = val - return (*float64Value)(p) -} - -func (f *float64Value) Set(s string) error { - v, err := strconv.ParseFloat(s, 64) - *f = float64Value(v) - return err -} - -func (f *float64Value) Type() string { - return "float64" -} - -func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) } - -func float64Conv(sval string) (interface{}, error) { - return strconv.ParseFloat(sval, 64) -} - -// GetFloat64 return the float64 value of a flag with the given name -func (f *FlagSet) GetFloat64(name string) (float64, error) { - val, err := f.getFlagType(name, "float64", float64Conv) - if err != nil { - return 0, err - } - return val.(float64), nil -} - -// Float64Var defines a float64 flag with specified name, default value, and usage string. -// The argument p points to a float64 variable in which to store the value of the flag. -func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) { - f.VarP(newFloat64Value(value, p), name, "", usage) -} - -// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) { - f.VarP(newFloat64Value(value, p), name, shorthand, usage) -} - -// Float64Var defines a float64 flag with specified name, default value, and usage string. -// The argument p points to a float64 variable in which to store the value of the flag. -func Float64Var(p *float64, name string, value float64, usage string) { - CommandLine.VarP(newFloat64Value(value, p), name, "", usage) -} - -// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. -func Float64VarP(p *float64, name, shorthand string, value float64, usage string) { - CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage) -} - -// Float64 defines a float64 flag with specified name, default value, and usage string. -// The return value is the address of a float64 variable that stores the value of the flag. -func (f *FlagSet) Float64(name string, value float64, usage string) *float64 { - p := new(float64) - f.Float64VarP(p, name, "", value, usage) - return p -} - -// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 { - p := new(float64) - f.Float64VarP(p, name, shorthand, value, usage) - return p -} - -// Float64 defines a float64 flag with specified name, default value, and usage string. -// The return value is the address of a float64 variable that stores the value of the flag. -func Float64(name string, value float64, usage string) *float64 { - return CommandLine.Float64P(name, "", value, usage) -} - -// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. -func Float64P(name, shorthand string, value float64, usage string) *float64 { - return CommandLine.Float64P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/float64_slice.go b/backend/vendor/github.com/spf13/pflag/float64_slice.go deleted file mode 100644 index 85bf3073..00000000 --- a/backend/vendor/github.com/spf13/pflag/float64_slice.go +++ /dev/null @@ -1,166 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- float64Slice Value -type float64SliceValue struct { - value *[]float64 - changed bool -} - -func newFloat64SliceValue(val []float64, p *[]float64) *float64SliceValue { - isv := new(float64SliceValue) - isv.value = p - *isv.value = val - return isv -} - -func (s *float64SliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]float64, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.ParseFloat(d, 64) - if err != nil { - return err - } - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *float64SliceValue) Type() string { - return "float64Slice" -} - -func (s *float64SliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%f", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *float64SliceValue) fromString(val string) (float64, error) { - return strconv.ParseFloat(val, 64) -} - -func (s *float64SliceValue) toString(val float64) string { - return fmt.Sprintf("%f", val) -} - -func (s *float64SliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *float64SliceValue) Replace(val []string) error { - out := make([]float64, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *float64SliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func float64SliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []float64{}, nil - } - ss := strings.Split(val, ",") - out := make([]float64, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.ParseFloat(d, 64) - if err != nil { - return nil, err - } - - } - return out, nil -} - -// GetFloat64Slice return the []float64 value of a flag with the given name -func (f *FlagSet) GetFloat64Slice(name string) ([]float64, error) { - val, err := f.getFlagType(name, "float64Slice", float64SliceConv) - if err != nil { - return []float64{}, err - } - return val.([]float64), nil -} - -// Float64SliceVar defines a float64Slice flag with specified name, default value, and usage string. -// The argument p points to a []float64 variable in which to store the value of the flag. -func (f *FlagSet) Float64SliceVar(p *[]float64, name string, value []float64, usage string) { - f.VarP(newFloat64SliceValue(value, p), name, "", usage) -} - -// Float64SliceVarP is like Float64SliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float64SliceVarP(p *[]float64, name, shorthand string, value []float64, usage string) { - f.VarP(newFloat64SliceValue(value, p), name, shorthand, usage) -} - -// Float64SliceVar defines a float64[] flag with specified name, default value, and usage string. -// The argument p points to a float64[] variable in which to store the value of the flag. -func Float64SliceVar(p *[]float64, name string, value []float64, usage string) { - CommandLine.VarP(newFloat64SliceValue(value, p), name, "", usage) -} - -// Float64SliceVarP is like Float64SliceVar, but accepts a shorthand letter that can be used after a single dash. -func Float64SliceVarP(p *[]float64, name, shorthand string, value []float64, usage string) { - CommandLine.VarP(newFloat64SliceValue(value, p), name, shorthand, usage) -} - -// Float64Slice defines a []float64 flag with specified name, default value, and usage string. -// The return value is the address of a []float64 variable that stores the value of the flag. -func (f *FlagSet) Float64Slice(name string, value []float64, usage string) *[]float64 { - p := []float64{} - f.Float64SliceVarP(&p, name, "", value, usage) - return &p -} - -// Float64SliceP is like Float64Slice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64 { - p := []float64{} - f.Float64SliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// Float64Slice defines a []float64 flag with specified name, default value, and usage string. -// The return value is the address of a []float64 variable that stores the value of the flag. -func Float64Slice(name string, value []float64, usage string) *[]float64 { - return CommandLine.Float64SliceP(name, "", value, usage) -} - -// Float64SliceP is like Float64Slice, but accepts a shorthand letter that can be used after a single dash. -func Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64 { - return CommandLine.Float64SliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/golangflag.go b/backend/vendor/github.com/spf13/pflag/golangflag.go deleted file mode 100644 index d3dd72b7..00000000 --- a/backend/vendor/github.com/spf13/pflag/golangflag.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pflag - -import ( - goflag "flag" - "reflect" - "strings" -) - -// flagValueWrapper implements pflag.Value around a flag.Value. The main -// difference here is the addition of the Type method that returns a string -// name of the type. As this is generally unknown, we approximate that with -// reflection. -type flagValueWrapper struct { - inner goflag.Value - flagType string -} - -// We are just copying the boolFlag interface out of goflag as that is what -// they use to decide if a flag should get "true" when no arg is given. -type goBoolFlag interface { - goflag.Value - IsBoolFlag() bool -} - -func wrapFlagValue(v goflag.Value) Value { - // If the flag.Value happens to also be a pflag.Value, just use it directly. - if pv, ok := v.(Value); ok { - return pv - } - - pv := &flagValueWrapper{ - inner: v, - } - - t := reflect.TypeOf(v) - if t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr { - t = t.Elem() - } - - pv.flagType = strings.TrimSuffix(t.Name(), "Value") - return pv -} - -func (v *flagValueWrapper) String() string { - return v.inner.String() -} - -func (v *flagValueWrapper) Set(s string) error { - return v.inner.Set(s) -} - -func (v *flagValueWrapper) Type() string { - return v.flagType -} - -// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag -// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei -// with both `-v` and `--v` in flags. If the golang flag was more than a single -// character (ex: `verbose`) it will only be accessible via `--verbose` -func PFlagFromGoFlag(goflag *goflag.Flag) *Flag { - // Remember the default value as a string; it won't change. - flag := &Flag{ - Name: goflag.Name, - Usage: goflag.Usage, - Value: wrapFlagValue(goflag.Value), - // Looks like golang flags don't set DefValue correctly :-( - //DefValue: goflag.DefValue, - DefValue: goflag.Value.String(), - } - // Ex: if the golang flag was -v, allow both -v and --v to work - if len(flag.Name) == 1 { - flag.Shorthand = flag.Name - } - if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() { - flag.NoOptDefVal = "true" - } - return flag -} - -// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet -func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) { - if f.Lookup(goflag.Name) != nil { - return - } - newflag := PFlagFromGoFlag(goflag) - f.AddFlag(newflag) -} - -// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet -func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) { - if newSet == nil { - return - } - newSet.VisitAll(func(goflag *goflag.Flag) { - f.AddGoFlag(goflag) - }) - if f.addedGoFlagSets == nil { - f.addedGoFlagSets = make([]*goflag.FlagSet, 0) - } - f.addedGoFlagSets = append(f.addedGoFlagSets, newSet) -} diff --git a/backend/vendor/github.com/spf13/pflag/int.go b/backend/vendor/github.com/spf13/pflag/int.go deleted file mode 100644 index 1474b89d..00000000 --- a/backend/vendor/github.com/spf13/pflag/int.go +++ /dev/null @@ -1,84 +0,0 @@ -package pflag - -import "strconv" - -// -- int Value -type intValue int - -func newIntValue(val int, p *int) *intValue { - *p = val - return (*intValue)(p) -} - -func (i *intValue) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 64) - *i = intValue(v) - return err -} - -func (i *intValue) Type() string { - return "int" -} - -func (i *intValue) String() string { return strconv.Itoa(int(*i)) } - -func intConv(sval string) (interface{}, error) { - return strconv.Atoi(sval) -} - -// GetInt return the int value of a flag with the given name -func (f *FlagSet) GetInt(name string) (int, error) { - val, err := f.getFlagType(name, "int", intConv) - if err != nil { - return 0, err - } - return val.(int), nil -} - -// IntVar defines an int flag with specified name, default value, and usage string. -// The argument p points to an int variable in which to store the value of the flag. -func (f *FlagSet) IntVar(p *int, name string, value int, usage string) { - f.VarP(newIntValue(value, p), name, "", usage) -} - -// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) { - f.VarP(newIntValue(value, p), name, shorthand, usage) -} - -// IntVar defines an int flag with specified name, default value, and usage string. -// The argument p points to an int variable in which to store the value of the flag. -func IntVar(p *int, name string, value int, usage string) { - CommandLine.VarP(newIntValue(value, p), name, "", usage) -} - -// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. -func IntVarP(p *int, name, shorthand string, value int, usage string) { - CommandLine.VarP(newIntValue(value, p), name, shorthand, usage) -} - -// Int defines an int flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -func (f *FlagSet) Int(name string, value int, usage string) *int { - p := new(int) - f.IntVarP(p, name, "", value, usage) - return p -} - -// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int { - p := new(int) - f.IntVarP(p, name, shorthand, value, usage) - return p -} - -// Int defines an int flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -func Int(name string, value int, usage string) *int { - return CommandLine.IntP(name, "", value, usage) -} - -// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. -func IntP(name, shorthand string, value int, usage string) *int { - return CommandLine.IntP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int16.go b/backend/vendor/github.com/spf13/pflag/int16.go deleted file mode 100644 index f1a01d05..00000000 --- a/backend/vendor/github.com/spf13/pflag/int16.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- int16 Value -type int16Value int16 - -func newInt16Value(val int16, p *int16) *int16Value { - *p = val - return (*int16Value)(p) -} - -func (i *int16Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 16) - *i = int16Value(v) - return err -} - -func (i *int16Value) Type() string { - return "int16" -} - -func (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int16Conv(sval string) (interface{}, error) { - v, err := strconv.ParseInt(sval, 0, 16) - if err != nil { - return 0, err - } - return int16(v), nil -} - -// GetInt16 returns the int16 value of a flag with the given name -func (f *FlagSet) GetInt16(name string) (int16, error) { - val, err := f.getFlagType(name, "int16", int16Conv) - if err != nil { - return 0, err - } - return val.(int16), nil -} - -// Int16Var defines an int16 flag with specified name, default value, and usage string. -// The argument p points to an int16 variable in which to store the value of the flag. -func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) { - f.VarP(newInt16Value(value, p), name, "", usage) -} - -// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) { - f.VarP(newInt16Value(value, p), name, shorthand, usage) -} - -// Int16Var defines an int16 flag with specified name, default value, and usage string. -// The argument p points to an int16 variable in which to store the value of the flag. -func Int16Var(p *int16, name string, value int16, usage string) { - CommandLine.VarP(newInt16Value(value, p), name, "", usage) -} - -// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. -func Int16VarP(p *int16, name, shorthand string, value int16, usage string) { - CommandLine.VarP(newInt16Value(value, p), name, shorthand, usage) -} - -// Int16 defines an int16 flag with specified name, default value, and usage string. -// The return value is the address of an int16 variable that stores the value of the flag. -func (f *FlagSet) Int16(name string, value int16, usage string) *int16 { - p := new(int16) - f.Int16VarP(p, name, "", value, usage) - return p -} - -// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 { - p := new(int16) - f.Int16VarP(p, name, shorthand, value, usage) - return p -} - -// Int16 defines an int16 flag with specified name, default value, and usage string. -// The return value is the address of an int16 variable that stores the value of the flag. -func Int16(name string, value int16, usage string) *int16 { - return CommandLine.Int16P(name, "", value, usage) -} - -// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. -func Int16P(name, shorthand string, value int16, usage string) *int16 { - return CommandLine.Int16P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int32.go b/backend/vendor/github.com/spf13/pflag/int32.go deleted file mode 100644 index 9b95944f..00000000 --- a/backend/vendor/github.com/spf13/pflag/int32.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- int32 Value -type int32Value int32 - -func newInt32Value(val int32, p *int32) *int32Value { - *p = val - return (*int32Value)(p) -} - -func (i *int32Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 32) - *i = int32Value(v) - return err -} - -func (i *int32Value) Type() string { - return "int32" -} - -func (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int32Conv(sval string) (interface{}, error) { - v, err := strconv.ParseInt(sval, 0, 32) - if err != nil { - return 0, err - } - return int32(v), nil -} - -// GetInt32 return the int32 value of a flag with the given name -func (f *FlagSet) GetInt32(name string) (int32, error) { - val, err := f.getFlagType(name, "int32", int32Conv) - if err != nil { - return 0, err - } - return val.(int32), nil -} - -// Int32Var defines an int32 flag with specified name, default value, and usage string. -// The argument p points to an int32 variable in which to store the value of the flag. -func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) { - f.VarP(newInt32Value(value, p), name, "", usage) -} - -// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) { - f.VarP(newInt32Value(value, p), name, shorthand, usage) -} - -// Int32Var defines an int32 flag with specified name, default value, and usage string. -// The argument p points to an int32 variable in which to store the value of the flag. -func Int32Var(p *int32, name string, value int32, usage string) { - CommandLine.VarP(newInt32Value(value, p), name, "", usage) -} - -// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. -func Int32VarP(p *int32, name, shorthand string, value int32, usage string) { - CommandLine.VarP(newInt32Value(value, p), name, shorthand, usage) -} - -// Int32 defines an int32 flag with specified name, default value, and usage string. -// The return value is the address of an int32 variable that stores the value of the flag. -func (f *FlagSet) Int32(name string, value int32, usage string) *int32 { - p := new(int32) - f.Int32VarP(p, name, "", value, usage) - return p -} - -// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 { - p := new(int32) - f.Int32VarP(p, name, shorthand, value, usage) - return p -} - -// Int32 defines an int32 flag with specified name, default value, and usage string. -// The return value is the address of an int32 variable that stores the value of the flag. -func Int32(name string, value int32, usage string) *int32 { - return CommandLine.Int32P(name, "", value, usage) -} - -// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. -func Int32P(name, shorthand string, value int32, usage string) *int32 { - return CommandLine.Int32P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int32_slice.go b/backend/vendor/github.com/spf13/pflag/int32_slice.go deleted file mode 100644 index ff128ff0..00000000 --- a/backend/vendor/github.com/spf13/pflag/int32_slice.go +++ /dev/null @@ -1,174 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- int32Slice Value -type int32SliceValue struct { - value *[]int32 - changed bool -} - -func newInt32SliceValue(val []int32, p *[]int32) *int32SliceValue { - isv := new(int32SliceValue) - isv.value = p - *isv.value = val - return isv -} - -func (s *int32SliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]int32, len(ss)) - for i, d := range ss { - var err error - var temp64 int64 - temp64, err = strconv.ParseInt(d, 0, 32) - if err != nil { - return err - } - out[i] = int32(temp64) - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *int32SliceValue) Type() string { - return "int32Slice" -} - -func (s *int32SliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%d", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *int32SliceValue) fromString(val string) (int32, error) { - t64, err := strconv.ParseInt(val, 0, 32) - if err != nil { - return 0, err - } - return int32(t64), nil -} - -func (s *int32SliceValue) toString(val int32) string { - return fmt.Sprintf("%d", val) -} - -func (s *int32SliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *int32SliceValue) Replace(val []string) error { - out := make([]int32, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *int32SliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func int32SliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []int32{}, nil - } - ss := strings.Split(val, ",") - out := make([]int32, len(ss)) - for i, d := range ss { - var err error - var temp64 int64 - temp64, err = strconv.ParseInt(d, 0, 32) - if err != nil { - return nil, err - } - out[i] = int32(temp64) - - } - return out, nil -} - -// GetInt32Slice return the []int32 value of a flag with the given name -func (f *FlagSet) GetInt32Slice(name string) ([]int32, error) { - val, err := f.getFlagType(name, "int32Slice", int32SliceConv) - if err != nil { - return []int32{}, err - } - return val.([]int32), nil -} - -// Int32SliceVar defines a int32Slice flag with specified name, default value, and usage string. -// The argument p points to a []int32 variable in which to store the value of the flag. -func (f *FlagSet) Int32SliceVar(p *[]int32, name string, value []int32, usage string) { - f.VarP(newInt32SliceValue(value, p), name, "", usage) -} - -// Int32SliceVarP is like Int32SliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, usage string) { - f.VarP(newInt32SliceValue(value, p), name, shorthand, usage) -} - -// Int32SliceVar defines a int32[] flag with specified name, default value, and usage string. -// The argument p points to a int32[] variable in which to store the value of the flag. -func Int32SliceVar(p *[]int32, name string, value []int32, usage string) { - CommandLine.VarP(newInt32SliceValue(value, p), name, "", usage) -} - -// Int32SliceVarP is like Int32SliceVar, but accepts a shorthand letter that can be used after a single dash. -func Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, usage string) { - CommandLine.VarP(newInt32SliceValue(value, p), name, shorthand, usage) -} - -// Int32Slice defines a []int32 flag with specified name, default value, and usage string. -// The return value is the address of a []int32 variable that stores the value of the flag. -func (f *FlagSet) Int32Slice(name string, value []int32, usage string) *[]int32 { - p := []int32{} - f.Int32SliceVarP(&p, name, "", value, usage) - return &p -} - -// Int32SliceP is like Int32Slice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32 { - p := []int32{} - f.Int32SliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// Int32Slice defines a []int32 flag with specified name, default value, and usage string. -// The return value is the address of a []int32 variable that stores the value of the flag. -func Int32Slice(name string, value []int32, usage string) *[]int32 { - return CommandLine.Int32SliceP(name, "", value, usage) -} - -// Int32SliceP is like Int32Slice, but accepts a shorthand letter that can be used after a single dash. -func Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32 { - return CommandLine.Int32SliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int64.go b/backend/vendor/github.com/spf13/pflag/int64.go deleted file mode 100644 index 0026d781..00000000 --- a/backend/vendor/github.com/spf13/pflag/int64.go +++ /dev/null @@ -1,84 +0,0 @@ -package pflag - -import "strconv" - -// -- int64 Value -type int64Value int64 - -func newInt64Value(val int64, p *int64) *int64Value { - *p = val - return (*int64Value)(p) -} - -func (i *int64Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 64) - *i = int64Value(v) - return err -} - -func (i *int64Value) Type() string { - return "int64" -} - -func (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int64Conv(sval string) (interface{}, error) { - return strconv.ParseInt(sval, 0, 64) -} - -// GetInt64 return the int64 value of a flag with the given name -func (f *FlagSet) GetInt64(name string) (int64, error) { - val, err := f.getFlagType(name, "int64", int64Conv) - if err != nil { - return 0, err - } - return val.(int64), nil -} - -// Int64Var defines an int64 flag with specified name, default value, and usage string. -// The argument p points to an int64 variable in which to store the value of the flag. -func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) { - f.VarP(newInt64Value(value, p), name, "", usage) -} - -// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) { - f.VarP(newInt64Value(value, p), name, shorthand, usage) -} - -// Int64Var defines an int64 flag with specified name, default value, and usage string. -// The argument p points to an int64 variable in which to store the value of the flag. -func Int64Var(p *int64, name string, value int64, usage string) { - CommandLine.VarP(newInt64Value(value, p), name, "", usage) -} - -// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. -func Int64VarP(p *int64, name, shorthand string, value int64, usage string) { - CommandLine.VarP(newInt64Value(value, p), name, shorthand, usage) -} - -// Int64 defines an int64 flag with specified name, default value, and usage string. -// The return value is the address of an int64 variable that stores the value of the flag. -func (f *FlagSet) Int64(name string, value int64, usage string) *int64 { - p := new(int64) - f.Int64VarP(p, name, "", value, usage) - return p -} - -// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 { - p := new(int64) - f.Int64VarP(p, name, shorthand, value, usage) - return p -} - -// Int64 defines an int64 flag with specified name, default value, and usage string. -// The return value is the address of an int64 variable that stores the value of the flag. -func Int64(name string, value int64, usage string) *int64 { - return CommandLine.Int64P(name, "", value, usage) -} - -// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. -func Int64P(name, shorthand string, value int64, usage string) *int64 { - return CommandLine.Int64P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int64_slice.go b/backend/vendor/github.com/spf13/pflag/int64_slice.go deleted file mode 100644 index 25464638..00000000 --- a/backend/vendor/github.com/spf13/pflag/int64_slice.go +++ /dev/null @@ -1,166 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- int64Slice Value -type int64SliceValue struct { - value *[]int64 - changed bool -} - -func newInt64SliceValue(val []int64, p *[]int64) *int64SliceValue { - isv := new(int64SliceValue) - isv.value = p - *isv.value = val - return isv -} - -func (s *int64SliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]int64, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.ParseInt(d, 0, 64) - if err != nil { - return err - } - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *int64SliceValue) Type() string { - return "int64Slice" -} - -func (s *int64SliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%d", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *int64SliceValue) fromString(val string) (int64, error) { - return strconv.ParseInt(val, 0, 64) -} - -func (s *int64SliceValue) toString(val int64) string { - return fmt.Sprintf("%d", val) -} - -func (s *int64SliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *int64SliceValue) Replace(val []string) error { - out := make([]int64, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *int64SliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func int64SliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []int64{}, nil - } - ss := strings.Split(val, ",") - out := make([]int64, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.ParseInt(d, 0, 64) - if err != nil { - return nil, err - } - - } - return out, nil -} - -// GetInt64Slice return the []int64 value of a flag with the given name -func (f *FlagSet) GetInt64Slice(name string) ([]int64, error) { - val, err := f.getFlagType(name, "int64Slice", int64SliceConv) - if err != nil { - return []int64{}, err - } - return val.([]int64), nil -} - -// Int64SliceVar defines a int64Slice flag with specified name, default value, and usage string. -// The argument p points to a []int64 variable in which to store the value of the flag. -func (f *FlagSet) Int64SliceVar(p *[]int64, name string, value []int64, usage string) { - f.VarP(newInt64SliceValue(value, p), name, "", usage) -} - -// Int64SliceVarP is like Int64SliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, usage string) { - f.VarP(newInt64SliceValue(value, p), name, shorthand, usage) -} - -// Int64SliceVar defines a int64[] flag with specified name, default value, and usage string. -// The argument p points to a int64[] variable in which to store the value of the flag. -func Int64SliceVar(p *[]int64, name string, value []int64, usage string) { - CommandLine.VarP(newInt64SliceValue(value, p), name, "", usage) -} - -// Int64SliceVarP is like Int64SliceVar, but accepts a shorthand letter that can be used after a single dash. -func Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, usage string) { - CommandLine.VarP(newInt64SliceValue(value, p), name, shorthand, usage) -} - -// Int64Slice defines a []int64 flag with specified name, default value, and usage string. -// The return value is the address of a []int64 variable that stores the value of the flag. -func (f *FlagSet) Int64Slice(name string, value []int64, usage string) *[]int64 { - p := []int64{} - f.Int64SliceVarP(&p, name, "", value, usage) - return &p -} - -// Int64SliceP is like Int64Slice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64 { - p := []int64{} - f.Int64SliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// Int64Slice defines a []int64 flag with specified name, default value, and usage string. -// The return value is the address of a []int64 variable that stores the value of the flag. -func Int64Slice(name string, value []int64, usage string) *[]int64 { - return CommandLine.Int64SliceP(name, "", value, usage) -} - -// Int64SliceP is like Int64Slice, but accepts a shorthand letter that can be used after a single dash. -func Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64 { - return CommandLine.Int64SliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int8.go b/backend/vendor/github.com/spf13/pflag/int8.go deleted file mode 100644 index 4da92228..00000000 --- a/backend/vendor/github.com/spf13/pflag/int8.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- int8 Value -type int8Value int8 - -func newInt8Value(val int8, p *int8) *int8Value { - *p = val - return (*int8Value)(p) -} - -func (i *int8Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 8) - *i = int8Value(v) - return err -} - -func (i *int8Value) Type() string { - return "int8" -} - -func (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int8Conv(sval string) (interface{}, error) { - v, err := strconv.ParseInt(sval, 0, 8) - if err != nil { - return 0, err - } - return int8(v), nil -} - -// GetInt8 return the int8 value of a flag with the given name -func (f *FlagSet) GetInt8(name string) (int8, error) { - val, err := f.getFlagType(name, "int8", int8Conv) - if err != nil { - return 0, err - } - return val.(int8), nil -} - -// Int8Var defines an int8 flag with specified name, default value, and usage string. -// The argument p points to an int8 variable in which to store the value of the flag. -func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) { - f.VarP(newInt8Value(value, p), name, "", usage) -} - -// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) { - f.VarP(newInt8Value(value, p), name, shorthand, usage) -} - -// Int8Var defines an int8 flag with specified name, default value, and usage string. -// The argument p points to an int8 variable in which to store the value of the flag. -func Int8Var(p *int8, name string, value int8, usage string) { - CommandLine.VarP(newInt8Value(value, p), name, "", usage) -} - -// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. -func Int8VarP(p *int8, name, shorthand string, value int8, usage string) { - CommandLine.VarP(newInt8Value(value, p), name, shorthand, usage) -} - -// Int8 defines an int8 flag with specified name, default value, and usage string. -// The return value is the address of an int8 variable that stores the value of the flag. -func (f *FlagSet) Int8(name string, value int8, usage string) *int8 { - p := new(int8) - f.Int8VarP(p, name, "", value, usage) - return p -} - -// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 { - p := new(int8) - f.Int8VarP(p, name, shorthand, value, usage) - return p -} - -// Int8 defines an int8 flag with specified name, default value, and usage string. -// The return value is the address of an int8 variable that stores the value of the flag. -func Int8(name string, value int8, usage string) *int8 { - return CommandLine.Int8P(name, "", value, usage) -} - -// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. -func Int8P(name, shorthand string, value int8, usage string) *int8 { - return CommandLine.Int8P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/int_slice.go b/backend/vendor/github.com/spf13/pflag/int_slice.go deleted file mode 100644 index e71c39d9..00000000 --- a/backend/vendor/github.com/spf13/pflag/int_slice.go +++ /dev/null @@ -1,158 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- intSlice Value -type intSliceValue struct { - value *[]int - changed bool -} - -func newIntSliceValue(val []int, p *[]int) *intSliceValue { - isv := new(intSliceValue) - isv.value = p - *isv.value = val - return isv -} - -func (s *intSliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]int, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.Atoi(d) - if err != nil { - return err - } - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *intSliceValue) Type() string { - return "intSlice" -} - -func (s *intSliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%d", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *intSliceValue) Append(val string) error { - i, err := strconv.Atoi(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *intSliceValue) Replace(val []string) error { - out := make([]int, len(val)) - for i, d := range val { - var err error - out[i], err = strconv.Atoi(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *intSliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = strconv.Itoa(d) - } - return out -} - -func intSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []int{}, nil - } - ss := strings.Split(val, ",") - out := make([]int, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.Atoi(d) - if err != nil { - return nil, err - } - - } - return out, nil -} - -// GetIntSlice return the []int value of a flag with the given name -func (f *FlagSet) GetIntSlice(name string) ([]int, error) { - val, err := f.getFlagType(name, "intSlice", intSliceConv) - if err != nil { - return []int{}, err - } - return val.([]int), nil -} - -// IntSliceVar defines a intSlice flag with specified name, default value, and usage string. -// The argument p points to a []int variable in which to store the value of the flag. -func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) { - f.VarP(newIntSliceValue(value, p), name, "", usage) -} - -// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { - f.VarP(newIntSliceValue(value, p), name, shorthand, usage) -} - -// IntSliceVar defines a int[] flag with specified name, default value, and usage string. -// The argument p points to a int[] variable in which to store the value of the flag. -func IntSliceVar(p *[]int, name string, value []int, usage string) { - CommandLine.VarP(newIntSliceValue(value, p), name, "", usage) -} - -// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. -func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { - CommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage) -} - -// IntSlice defines a []int flag with specified name, default value, and usage string. -// The return value is the address of a []int variable that stores the value of the flag. -func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int { - p := []int{} - f.IntSliceVarP(&p, name, "", value, usage) - return &p -} - -// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int { - p := []int{} - f.IntSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// IntSlice defines a []int flag with specified name, default value, and usage string. -// The return value is the address of a []int variable that stores the value of the flag. -func IntSlice(name string, value []int, usage string) *[]int { - return CommandLine.IntSliceP(name, "", value, usage) -} - -// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. -func IntSliceP(name, shorthand string, value []int, usage string) *[]int { - return CommandLine.IntSliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/ip.go b/backend/vendor/github.com/spf13/pflag/ip.go deleted file mode 100644 index 3d414ba6..00000000 --- a/backend/vendor/github.com/spf13/pflag/ip.go +++ /dev/null @@ -1,94 +0,0 @@ -package pflag - -import ( - "fmt" - "net" - "strings" -) - -// -- net.IP value -type ipValue net.IP - -func newIPValue(val net.IP, p *net.IP) *ipValue { - *p = val - return (*ipValue)(p) -} - -func (i *ipValue) String() string { return net.IP(*i).String() } -func (i *ipValue) Set(s string) error { - ip := net.ParseIP(strings.TrimSpace(s)) - if ip == nil { - return fmt.Errorf("failed to parse IP: %q", s) - } - *i = ipValue(ip) - return nil -} - -func (i *ipValue) Type() string { - return "ip" -} - -func ipConv(sval string) (interface{}, error) { - ip := net.ParseIP(sval) - if ip != nil { - return ip, nil - } - return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) -} - -// GetIP return the net.IP value of a flag with the given name -func (f *FlagSet) GetIP(name string) (net.IP, error) { - val, err := f.getFlagType(name, "ip", ipConv) - if err != nil { - return nil, err - } - return val.(net.IP), nil -} - -// IPVar defines an net.IP flag with specified name, default value, and usage string. -// The argument p points to an net.IP variable in which to store the value of the flag. -func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) { - f.VarP(newIPValue(value, p), name, "", usage) -} - -// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { - f.VarP(newIPValue(value, p), name, shorthand, usage) -} - -// IPVar defines an net.IP flag with specified name, default value, and usage string. -// The argument p points to an net.IP variable in which to store the value of the flag. -func IPVar(p *net.IP, name string, value net.IP, usage string) { - CommandLine.VarP(newIPValue(value, p), name, "", usage) -} - -// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. -func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { - CommandLine.VarP(newIPValue(value, p), name, shorthand, usage) -} - -// IP defines an net.IP flag with specified name, default value, and usage string. -// The return value is the address of an net.IP variable that stores the value of the flag. -func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP { - p := new(net.IP) - f.IPVarP(p, name, "", value, usage) - return p -} - -// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP { - p := new(net.IP) - f.IPVarP(p, name, shorthand, value, usage) - return p -} - -// IP defines an net.IP flag with specified name, default value, and usage string. -// The return value is the address of an net.IP variable that stores the value of the flag. -func IP(name string, value net.IP, usage string) *net.IP { - return CommandLine.IPP(name, "", value, usage) -} - -// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. -func IPP(name, shorthand string, value net.IP, usage string) *net.IP { - return CommandLine.IPP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/ip_slice.go b/backend/vendor/github.com/spf13/pflag/ip_slice.go deleted file mode 100644 index 775faae4..00000000 --- a/backend/vendor/github.com/spf13/pflag/ip_slice.go +++ /dev/null @@ -1,186 +0,0 @@ -package pflag - -import ( - "fmt" - "io" - "net" - "strings" -) - -// -- ipSlice Value -type ipSliceValue struct { - value *[]net.IP - changed bool -} - -func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue { - ipsv := new(ipSliceValue) - ipsv.value = p - *ipsv.value = val - return ipsv -} - -// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag. -// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended. -func (s *ipSliceValue) Set(val string) error { - - // remove all quote characters - rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") - - // read flag arguments with CSV parser - ipStrSlice, err := readAsCSV(rmQuote.Replace(val)) - if err != nil && err != io.EOF { - return err - } - - // parse ip values into slice - out := make([]net.IP, 0, len(ipStrSlice)) - for _, ipStr := range ipStrSlice { - ip := net.ParseIP(strings.TrimSpace(ipStr)) - if ip == nil { - return fmt.Errorf("invalid string being converted to IP address: %s", ipStr) - } - out = append(out, ip) - } - - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - - s.changed = true - - return nil -} - -// Type returns a string that uniquely represents this flag's type. -func (s *ipSliceValue) Type() string { - return "ipSlice" -} - -// String defines a "native" format for this net.IP slice flag value. -func (s *ipSliceValue) String() string { - - ipStrSlice := make([]string, len(*s.value)) - for i, ip := range *s.value { - ipStrSlice[i] = ip.String() - } - - out, _ := writeAsCSV(ipStrSlice) - - return "[" + out + "]" -} - -func (s *ipSliceValue) fromString(val string) (net.IP, error) { - return net.ParseIP(strings.TrimSpace(val)), nil -} - -func (s *ipSliceValue) toString(val net.IP) string { - return val.String() -} - -func (s *ipSliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *ipSliceValue) Replace(val []string) error { - out := make([]net.IP, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *ipSliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func ipSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []net.IP{}, nil - } - ss := strings.Split(val, ",") - out := make([]net.IP, len(ss)) - for i, sval := range ss { - ip := net.ParseIP(strings.TrimSpace(sval)) - if ip == nil { - return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) - } - out[i] = ip - } - return out, nil -} - -// GetIPSlice returns the []net.IP value of a flag with the given name -func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) { - val, err := f.getFlagType(name, "ipSlice", ipSliceConv) - if err != nil { - return []net.IP{}, err - } - return val.([]net.IP), nil -} - -// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string. -// The argument p points to a []net.IP variable in which to store the value of the flag. -func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { - f.VarP(newIPSliceValue(value, p), name, "", usage) -} - -// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { - f.VarP(newIPSliceValue(value, p), name, shorthand, usage) -} - -// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string. -// The argument p points to a []net.IP variable in which to store the value of the flag. -func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { - CommandLine.VarP(newIPSliceValue(value, p), name, "", usage) -} - -// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. -func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { - CommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage) -} - -// IPSlice defines a []net.IP flag with specified name, default value, and usage string. -// The return value is the address of a []net.IP variable that stores the value of that flag. -func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP { - p := []net.IP{} - f.IPSliceVarP(&p, name, "", value, usage) - return &p -} - -// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { - p := []net.IP{} - f.IPSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// IPSlice defines a []net.IP flag with specified name, default value, and usage string. -// The return value is the address of a []net.IP variable that stores the value of the flag. -func IPSlice(name string, value []net.IP, usage string) *[]net.IP { - return CommandLine.IPSliceP(name, "", value, usage) -} - -// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. -func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { - return CommandLine.IPSliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/ipmask.go b/backend/vendor/github.com/spf13/pflag/ipmask.go deleted file mode 100644 index 5bd44bd2..00000000 --- a/backend/vendor/github.com/spf13/pflag/ipmask.go +++ /dev/null @@ -1,122 +0,0 @@ -package pflag - -import ( - "fmt" - "net" - "strconv" -) - -// -- net.IPMask value -type ipMaskValue net.IPMask - -func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue { - *p = val - return (*ipMaskValue)(p) -} - -func (i *ipMaskValue) String() string { return net.IPMask(*i).String() } -func (i *ipMaskValue) Set(s string) error { - ip := ParseIPv4Mask(s) - if ip == nil { - return fmt.Errorf("failed to parse IP mask: %q", s) - } - *i = ipMaskValue(ip) - return nil -} - -func (i *ipMaskValue) Type() string { - return "ipMask" -} - -// ParseIPv4Mask written in IP form (e.g. 255.255.255.0). -// This function should really belong to the net package. -func ParseIPv4Mask(s string) net.IPMask { - mask := net.ParseIP(s) - if mask == nil { - if len(s) != 8 { - return nil - } - // net.IPMask.String() actually outputs things like ffffff00 - // so write a horrible parser for that as well :-( - m := []int{} - for i := 0; i < 4; i++ { - b := "0x" + s[2*i:2*i+2] - d, err := strconv.ParseInt(b, 0, 0) - if err != nil { - return nil - } - m = append(m, int(d)) - } - s := fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3]) - mask = net.ParseIP(s) - if mask == nil { - return nil - } - } - return net.IPv4Mask(mask[12], mask[13], mask[14], mask[15]) -} - -func parseIPv4Mask(sval string) (interface{}, error) { - mask := ParseIPv4Mask(sval) - if mask == nil { - return nil, fmt.Errorf("unable to parse %s as net.IPMask", sval) - } - return mask, nil -} - -// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name -func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) { - val, err := f.getFlagType(name, "ipMask", parseIPv4Mask) - if err != nil { - return nil, err - } - return val.(net.IPMask), nil -} - -// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. -// The argument p points to an net.IPMask variable in which to store the value of the flag. -func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { - f.VarP(newIPMaskValue(value, p), name, "", usage) -} - -// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { - f.VarP(newIPMaskValue(value, p), name, shorthand, usage) -} - -// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. -// The argument p points to an net.IPMask variable in which to store the value of the flag. -func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { - CommandLine.VarP(newIPMaskValue(value, p), name, "", usage) -} - -// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. -func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { - CommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage) -} - -// IPMask defines an net.IPMask flag with specified name, default value, and usage string. -// The return value is the address of an net.IPMask variable that stores the value of the flag. -func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask { - p := new(net.IPMask) - f.IPMaskVarP(p, name, "", value, usage) - return p -} - -// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { - p := new(net.IPMask) - f.IPMaskVarP(p, name, shorthand, value, usage) - return p -} - -// IPMask defines an net.IPMask flag with specified name, default value, and usage string. -// The return value is the address of an net.IPMask variable that stores the value of the flag. -func IPMask(name string, value net.IPMask, usage string) *net.IPMask { - return CommandLine.IPMaskP(name, "", value, usage) -} - -// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash. -func IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { - return CommandLine.IPMaskP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/ipnet.go b/backend/vendor/github.com/spf13/pflag/ipnet.go deleted file mode 100644 index e2c1b8bc..00000000 --- a/backend/vendor/github.com/spf13/pflag/ipnet.go +++ /dev/null @@ -1,98 +0,0 @@ -package pflag - -import ( - "fmt" - "net" - "strings" -) - -// IPNet adapts net.IPNet for use as a flag. -type ipNetValue net.IPNet - -func (ipnet ipNetValue) String() string { - n := net.IPNet(ipnet) - return n.String() -} - -func (ipnet *ipNetValue) Set(value string) error { - _, n, err := net.ParseCIDR(strings.TrimSpace(value)) - if err != nil { - return err - } - *ipnet = ipNetValue(*n) - return nil -} - -func (*ipNetValue) Type() string { - return "ipNet" -} - -func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue { - *p = val - return (*ipNetValue)(p) -} - -func ipNetConv(sval string) (interface{}, error) { - _, n, err := net.ParseCIDR(strings.TrimSpace(sval)) - if err == nil { - return *n, nil - } - return nil, fmt.Errorf("invalid string being converted to IPNet: %s", sval) -} - -// GetIPNet return the net.IPNet value of a flag with the given name -func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) { - val, err := f.getFlagType(name, "ipNet", ipNetConv) - if err != nil { - return net.IPNet{}, err - } - return val.(net.IPNet), nil -} - -// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. -// The argument p points to an net.IPNet variable in which to store the value of the flag. -func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { - f.VarP(newIPNetValue(value, p), name, "", usage) -} - -// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { - f.VarP(newIPNetValue(value, p), name, shorthand, usage) -} - -// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. -// The argument p points to an net.IPNet variable in which to store the value of the flag. -func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { - CommandLine.VarP(newIPNetValue(value, p), name, "", usage) -} - -// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. -func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { - CommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage) -} - -// IPNet defines an net.IPNet flag with specified name, default value, and usage string. -// The return value is the address of an net.IPNet variable that stores the value of the flag. -func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet { - p := new(net.IPNet) - f.IPNetVarP(p, name, "", value, usage) - return p -} - -// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { - p := new(net.IPNet) - f.IPNetVarP(p, name, shorthand, value, usage) - return p -} - -// IPNet defines an net.IPNet flag with specified name, default value, and usage string. -// The return value is the address of an net.IPNet variable that stores the value of the flag. -func IPNet(name string, value net.IPNet, usage string) *net.IPNet { - return CommandLine.IPNetP(name, "", value, usage) -} - -// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. -func IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { - return CommandLine.IPNetP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/string.go b/backend/vendor/github.com/spf13/pflag/string.go deleted file mode 100644 index 04e0a26f..00000000 --- a/backend/vendor/github.com/spf13/pflag/string.go +++ /dev/null @@ -1,80 +0,0 @@ -package pflag - -// -- string Value -type stringValue string - -func newStringValue(val string, p *string) *stringValue { - *p = val - return (*stringValue)(p) -} - -func (s *stringValue) Set(val string) error { - *s = stringValue(val) - return nil -} -func (s *stringValue) Type() string { - return "string" -} - -func (s *stringValue) String() string { return string(*s) } - -func stringConv(sval string) (interface{}, error) { - return sval, nil -} - -// GetString return the string value of a flag with the given name -func (f *FlagSet) GetString(name string) (string, error) { - val, err := f.getFlagType(name, "string", stringConv) - if err != nil { - return "", err - } - return val.(string), nil -} - -// StringVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a string variable in which to store the value of the flag. -func (f *FlagSet) StringVar(p *string, name string, value string, usage string) { - f.VarP(newStringValue(value, p), name, "", usage) -} - -// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) { - f.VarP(newStringValue(value, p), name, shorthand, usage) -} - -// StringVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a string variable in which to store the value of the flag. -func StringVar(p *string, name string, value string, usage string) { - CommandLine.VarP(newStringValue(value, p), name, "", usage) -} - -// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. -func StringVarP(p *string, name, shorthand string, value string, usage string) { - CommandLine.VarP(newStringValue(value, p), name, shorthand, usage) -} - -// String defines a string flag with specified name, default value, and usage string. -// The return value is the address of a string variable that stores the value of the flag. -func (f *FlagSet) String(name string, value string, usage string) *string { - p := new(string) - f.StringVarP(p, name, "", value, usage) - return p -} - -// StringP is like String, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string { - p := new(string) - f.StringVarP(p, name, shorthand, value, usage) - return p -} - -// String defines a string flag with specified name, default value, and usage string. -// The return value is the address of a string variable that stores the value of the flag. -func String(name string, value string, usage string) *string { - return CommandLine.StringP(name, "", value, usage) -} - -// StringP is like String, but accepts a shorthand letter that can be used after a single dash. -func StringP(name, shorthand string, value string, usage string) *string { - return CommandLine.StringP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/string_array.go b/backend/vendor/github.com/spf13/pflag/string_array.go deleted file mode 100644 index 4894af81..00000000 --- a/backend/vendor/github.com/spf13/pflag/string_array.go +++ /dev/null @@ -1,129 +0,0 @@ -package pflag - -// -- stringArray Value -type stringArrayValue struct { - value *[]string - changed bool -} - -func newStringArrayValue(val []string, p *[]string) *stringArrayValue { - ssv := new(stringArrayValue) - ssv.value = p - *ssv.value = val - return ssv -} - -func (s *stringArrayValue) Set(val string) error { - if !s.changed { - *s.value = []string{val} - s.changed = true - } else { - *s.value = append(*s.value, val) - } - return nil -} - -func (s *stringArrayValue) Append(val string) error { - *s.value = append(*s.value, val) - return nil -} - -func (s *stringArrayValue) Replace(val []string) error { - out := make([]string, len(val)) - for i, d := range val { - var err error - out[i] = d - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *stringArrayValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = d - } - return out -} - -func (s *stringArrayValue) Type() string { - return "stringArray" -} - -func (s *stringArrayValue) String() string { - str, _ := writeAsCSV(*s.value) - return "[" + str + "]" -} - -func stringArrayConv(sval string) (interface{}, error) { - sval = sval[1 : len(sval)-1] - // An empty string would cause a array with one (empty) string - if len(sval) == 0 { - return []string{}, nil - } - return readAsCSV(sval) -} - -// GetStringArray return the []string value of a flag with the given name -func (f *FlagSet) GetStringArray(name string) ([]string, error) { - val, err := f.getFlagType(name, "stringArray", stringArrayConv) - if err != nil { - return []string{}, err - } - return val.([]string), nil -} - -// StringArrayVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the values of the multiple flags. -// The value of each argument will not try to be separated by comma. Use a StringSlice for that. -func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) { - f.VarP(newStringArrayValue(value, p), name, "", usage) -} - -// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { - f.VarP(newStringArrayValue(value, p), name, shorthand, usage) -} - -// StringArrayVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the value of the flag. -// The value of each argument will not try to be separated by comma. Use a StringSlice for that. -func StringArrayVar(p *[]string, name string, value []string, usage string) { - CommandLine.VarP(newStringArrayValue(value, p), name, "", usage) -} - -// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. -func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { - CommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage) -} - -// StringArray defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma. Use a StringSlice for that. -func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string { - p := []string{} - f.StringArrayVarP(&p, name, "", value, usage) - return &p -} - -// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string { - p := []string{} - f.StringArrayVarP(&p, name, shorthand, value, usage) - return &p -} - -// StringArray defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma. Use a StringSlice for that. -func StringArray(name string, value []string, usage string) *[]string { - return CommandLine.StringArrayP(name, "", value, usage) -} - -// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. -func StringArrayP(name, shorthand string, value []string, usage string) *[]string { - return CommandLine.StringArrayP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/string_slice.go b/backend/vendor/github.com/spf13/pflag/string_slice.go deleted file mode 100644 index d421887e..00000000 --- a/backend/vendor/github.com/spf13/pflag/string_slice.go +++ /dev/null @@ -1,175 +0,0 @@ -package pflag - -import ( - "bytes" - "encoding/csv" - "strings" -) - -// -- stringSlice Value -type stringSliceValue struct { - value *[]string - changed bool -} - -func newStringSliceValue(val []string, p *[]string) *stringSliceValue { - ssv := new(stringSliceValue) - ssv.value = p - *ssv.value = val - return ssv -} - -func readAsCSV(val string) ([]string, error) { - if val == "" { - return []string{}, nil - } - stringReader := strings.NewReader(val) - csvReader := csv.NewReader(stringReader) - return csvReader.Read() -} - -func writeAsCSV(vals []string) (string, error) { - b := &bytes.Buffer{} - w := csv.NewWriter(b) - err := w.Write(vals) - if err != nil { - return "", err - } - w.Flush() - return strings.TrimSuffix(b.String(), "\n"), nil -} - -func (s *stringSliceValue) Set(val string) error { - v, err := readAsCSV(val) - if err != nil { - return err - } - if !s.changed { - *s.value = v - } else { - *s.value = append(*s.value, v...) - } - s.changed = true - return nil -} - -func (s *stringSliceValue) Type() string { - return "stringSlice" -} - -func (s *stringSliceValue) String() string { - str, _ := writeAsCSV(*s.value) - return "[" + str + "]" -} - -func (s *stringSliceValue) Append(val string) error { - *s.value = append(*s.value, val) - return nil -} - -func (s *stringSliceValue) Replace(val []string) error { - *s.value = val - return nil -} - -func (s *stringSliceValue) GetSlice() []string { - return *s.value -} - -func stringSliceConv(sval string) (interface{}, error) { - sval = sval[1 : len(sval)-1] - // An empty string would cause a slice with one (empty) string - if len(sval) == 0 { - return []string{}, nil - } - return readAsCSV(sval) -} - -// GetStringSlice return the []string value of a flag with the given name -func (f *FlagSet) GetStringSlice(name string) ([]string, error) { - val, err := f.getFlagType(name, "stringSlice", stringSliceConv) - if err != nil { - return []string{}, err - } - return val.([]string), nil -} - -// StringSliceVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the value of the flag. -// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. -// For example: -// -// --ss="v1,v2" --ss="v3" -// -// will result in -// -// []string{"v1", "v2", "v3"} -func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) { - f.VarP(newStringSliceValue(value, p), name, "", usage) -} - -// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { - f.VarP(newStringSliceValue(value, p), name, shorthand, usage) -} - -// StringSliceVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the value of the flag. -// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. -// For example: -// -// --ss="v1,v2" --ss="v3" -// -// will result in -// -// []string{"v1", "v2", "v3"} -func StringSliceVar(p *[]string, name string, value []string, usage string) { - CommandLine.VarP(newStringSliceValue(value, p), name, "", usage) -} - -// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. -func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { - CommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage) -} - -// StringSlice defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. -// For example: -// -// --ss="v1,v2" --ss="v3" -// -// will result in -// -// []string{"v1", "v2", "v3"} -func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string { - p := []string{} - f.StringSliceVarP(&p, name, "", value, usage) - return &p -} - -// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string { - p := []string{} - f.StringSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// StringSlice defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. -// For example: -// -// --ss="v1,v2" --ss="v3" -// -// will result in -// -// []string{"v1", "v2", "v3"} -func StringSlice(name string, value []string, usage string) *[]string { - return CommandLine.StringSliceP(name, "", value, usage) -} - -// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. -func StringSliceP(name, shorthand string, value []string, usage string) *[]string { - return CommandLine.StringSliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/string_to_int.go b/backend/vendor/github.com/spf13/pflag/string_to_int.go deleted file mode 100644 index 5ceda396..00000000 --- a/backend/vendor/github.com/spf13/pflag/string_to_int.go +++ /dev/null @@ -1,149 +0,0 @@ -package pflag - -import ( - "bytes" - "fmt" - "strconv" - "strings" -) - -// -- stringToInt Value -type stringToIntValue struct { - value *map[string]int - changed bool -} - -func newStringToIntValue(val map[string]int, p *map[string]int) *stringToIntValue { - ssv := new(stringToIntValue) - ssv.value = p - *ssv.value = val - return ssv -} - -// Format: a=1,b=2 -func (s *stringToIntValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make(map[string]int, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return fmt.Errorf("%s must be formatted as key=value", pair) - } - var err error - out[kv[0]], err = strconv.Atoi(kv[1]) - if err != nil { - return err - } - } - if !s.changed { - *s.value = out - } else { - for k, v := range out { - (*s.value)[k] = v - } - } - s.changed = true - return nil -} - -func (s *stringToIntValue) Type() string { - return "stringToInt" -} - -func (s *stringToIntValue) String() string { - var buf bytes.Buffer - i := 0 - for k, v := range *s.value { - if i > 0 { - buf.WriteRune(',') - } - buf.WriteString(k) - buf.WriteRune('=') - buf.WriteString(strconv.Itoa(v)) - i++ - } - return "[" + buf.String() + "]" -} - -func stringToIntConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // An empty string would cause an empty map - if len(val) == 0 { - return map[string]int{}, nil - } - ss := strings.Split(val, ",") - out := make(map[string]int, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return nil, fmt.Errorf("%s must be formatted as key=value", pair) - } - var err error - out[kv[0]], err = strconv.Atoi(kv[1]) - if err != nil { - return nil, err - } - } - return out, nil -} - -// GetStringToInt return the map[string]int value of a flag with the given name -func (f *FlagSet) GetStringToInt(name string) (map[string]int, error) { - val, err := f.getFlagType(name, "stringToInt", stringToIntConv) - if err != nil { - return map[string]int{}, err - } - return val.(map[string]int), nil -} - -// StringToIntVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a map[string]int variable in which to store the values of the multiple flags. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) { - f.VarP(newStringToIntValue(value, p), name, "", usage) -} - -// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) { - f.VarP(newStringToIntValue(value, p), name, shorthand, usage) -} - -// StringToIntVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a map[string]int variable in which to store the value of the flag. -// The value of each argument will not try to be separated by comma -func StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) { - CommandLine.VarP(newStringToIntValue(value, p), name, "", usage) -} - -// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash. -func StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) { - CommandLine.VarP(newStringToIntValue(value, p), name, shorthand, usage) -} - -// StringToInt defines a string flag with specified name, default value, and usage string. -// The return value is the address of a map[string]int variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringToInt(name string, value map[string]int, usage string) *map[string]int { - p := map[string]int{} - f.StringToIntVarP(&p, name, "", value, usage) - return &p -} - -// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int { - p := map[string]int{} - f.StringToIntVarP(&p, name, shorthand, value, usage) - return &p -} - -// StringToInt defines a string flag with specified name, default value, and usage string. -// The return value is the address of a map[string]int variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func StringToInt(name string, value map[string]int, usage string) *map[string]int { - return CommandLine.StringToIntP(name, "", value, usage) -} - -// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash. -func StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int { - return CommandLine.StringToIntP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/string_to_int64.go b/backend/vendor/github.com/spf13/pflag/string_to_int64.go deleted file mode 100644 index a807a04a..00000000 --- a/backend/vendor/github.com/spf13/pflag/string_to_int64.go +++ /dev/null @@ -1,149 +0,0 @@ -package pflag - -import ( - "bytes" - "fmt" - "strconv" - "strings" -) - -// -- stringToInt64 Value -type stringToInt64Value struct { - value *map[string]int64 - changed bool -} - -func newStringToInt64Value(val map[string]int64, p *map[string]int64) *stringToInt64Value { - ssv := new(stringToInt64Value) - ssv.value = p - *ssv.value = val - return ssv -} - -// Format: a=1,b=2 -func (s *stringToInt64Value) Set(val string) error { - ss := strings.Split(val, ",") - out := make(map[string]int64, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return fmt.Errorf("%s must be formatted as key=value", pair) - } - var err error - out[kv[0]], err = strconv.ParseInt(kv[1], 10, 64) - if err != nil { - return err - } - } - if !s.changed { - *s.value = out - } else { - for k, v := range out { - (*s.value)[k] = v - } - } - s.changed = true - return nil -} - -func (s *stringToInt64Value) Type() string { - return "stringToInt64" -} - -func (s *stringToInt64Value) String() string { - var buf bytes.Buffer - i := 0 - for k, v := range *s.value { - if i > 0 { - buf.WriteRune(',') - } - buf.WriteString(k) - buf.WriteRune('=') - buf.WriteString(strconv.FormatInt(v, 10)) - i++ - } - return "[" + buf.String() + "]" -} - -func stringToInt64Conv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // An empty string would cause an empty map - if len(val) == 0 { - return map[string]int64{}, nil - } - ss := strings.Split(val, ",") - out := make(map[string]int64, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return nil, fmt.Errorf("%s must be formatted as key=value", pair) - } - var err error - out[kv[0]], err = strconv.ParseInt(kv[1], 10, 64) - if err != nil { - return nil, err - } - } - return out, nil -} - -// GetStringToInt64 return the map[string]int64 value of a flag with the given name -func (f *FlagSet) GetStringToInt64(name string) (map[string]int64, error) { - val, err := f.getFlagType(name, "stringToInt64", stringToInt64Conv) - if err != nil { - return map[string]int64{}, err - } - return val.(map[string]int64), nil -} - -// StringToInt64Var defines a string flag with specified name, default value, and usage string. -// The argument p point64s to a map[string]int64 variable in which to store the values of the multiple flags. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringToInt64Var(p *map[string]int64, name string, value map[string]int64, usage string) { - f.VarP(newStringToInt64Value(value, p), name, "", usage) -} - -// StringToInt64VarP is like StringToInt64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringToInt64VarP(p *map[string]int64, name, shorthand string, value map[string]int64, usage string) { - f.VarP(newStringToInt64Value(value, p), name, shorthand, usage) -} - -// StringToInt64Var defines a string flag with specified name, default value, and usage string. -// The argument p point64s to a map[string]int64 variable in which to store the value of the flag. -// The value of each argument will not try to be separated by comma -func StringToInt64Var(p *map[string]int64, name string, value map[string]int64, usage string) { - CommandLine.VarP(newStringToInt64Value(value, p), name, "", usage) -} - -// StringToInt64VarP is like StringToInt64Var, but accepts a shorthand letter that can be used after a single dash. -func StringToInt64VarP(p *map[string]int64, name, shorthand string, value map[string]int64, usage string) { - CommandLine.VarP(newStringToInt64Value(value, p), name, shorthand, usage) -} - -// StringToInt64 defines a string flag with specified name, default value, and usage string. -// The return value is the address of a map[string]int64 variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringToInt64(name string, value map[string]int64, usage string) *map[string]int64 { - p := map[string]int64{} - f.StringToInt64VarP(&p, name, "", value, usage) - return &p -} - -// StringToInt64P is like StringToInt64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64 { - p := map[string]int64{} - f.StringToInt64VarP(&p, name, shorthand, value, usage) - return &p -} - -// StringToInt64 defines a string flag with specified name, default value, and usage string. -// The return value is the address of a map[string]int64 variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func StringToInt64(name string, value map[string]int64, usage string) *map[string]int64 { - return CommandLine.StringToInt64P(name, "", value, usage) -} - -// StringToInt64P is like StringToInt64, but accepts a shorthand letter that can be used after a single dash. -func StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64 { - return CommandLine.StringToInt64P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/string_to_string.go b/backend/vendor/github.com/spf13/pflag/string_to_string.go deleted file mode 100644 index 890a01af..00000000 --- a/backend/vendor/github.com/spf13/pflag/string_to_string.go +++ /dev/null @@ -1,160 +0,0 @@ -package pflag - -import ( - "bytes" - "encoding/csv" - "fmt" - "strings" -) - -// -- stringToString Value -type stringToStringValue struct { - value *map[string]string - changed bool -} - -func newStringToStringValue(val map[string]string, p *map[string]string) *stringToStringValue { - ssv := new(stringToStringValue) - ssv.value = p - *ssv.value = val - return ssv -} - -// Format: a=1,b=2 -func (s *stringToStringValue) Set(val string) error { - var ss []string - n := strings.Count(val, "=") - switch n { - case 0: - return fmt.Errorf("%s must be formatted as key=value", val) - case 1: - ss = append(ss, strings.Trim(val, `"`)) - default: - r := csv.NewReader(strings.NewReader(val)) - var err error - ss, err = r.Read() - if err != nil { - return err - } - } - - out := make(map[string]string, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return fmt.Errorf("%s must be formatted as key=value", pair) - } - out[kv[0]] = kv[1] - } - if !s.changed { - *s.value = out - } else { - for k, v := range out { - (*s.value)[k] = v - } - } - s.changed = true - return nil -} - -func (s *stringToStringValue) Type() string { - return "stringToString" -} - -func (s *stringToStringValue) String() string { - records := make([]string, 0, len(*s.value)>>1) - for k, v := range *s.value { - records = append(records, k+"="+v) - } - - var buf bytes.Buffer - w := csv.NewWriter(&buf) - if err := w.Write(records); err != nil { - panic(err) - } - w.Flush() - return "[" + strings.TrimSpace(buf.String()) + "]" -} - -func stringToStringConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // An empty string would cause an empty map - if len(val) == 0 { - return map[string]string{}, nil - } - r := csv.NewReader(strings.NewReader(val)) - ss, err := r.Read() - if err != nil { - return nil, err - } - out := make(map[string]string, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return nil, fmt.Errorf("%s must be formatted as key=value", pair) - } - out[kv[0]] = kv[1] - } - return out, nil -} - -// GetStringToString return the map[string]string value of a flag with the given name -func (f *FlagSet) GetStringToString(name string) (map[string]string, error) { - val, err := f.getFlagType(name, "stringToString", stringToStringConv) - if err != nil { - return map[string]string{}, err - } - return val.(map[string]string), nil -} - -// StringToStringVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a map[string]string variable in which to store the values of the multiple flags. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) { - f.VarP(newStringToStringValue(value, p), name, "", usage) -} - -// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) { - f.VarP(newStringToStringValue(value, p), name, shorthand, usage) -} - -// StringToStringVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a map[string]string variable in which to store the value of the flag. -// The value of each argument will not try to be separated by comma -func StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) { - CommandLine.VarP(newStringToStringValue(value, p), name, "", usage) -} - -// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash. -func StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) { - CommandLine.VarP(newStringToStringValue(value, p), name, shorthand, usage) -} - -// StringToString defines a string flag with specified name, default value, and usage string. -// The return value is the address of a map[string]string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringToString(name string, value map[string]string, usage string) *map[string]string { - p := map[string]string{} - f.StringToStringVarP(&p, name, "", value, usage) - return &p -} - -// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string { - p := map[string]string{} - f.StringToStringVarP(&p, name, shorthand, value, usage) - return &p -} - -// StringToString defines a string flag with specified name, default value, and usage string. -// The return value is the address of a map[string]string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func StringToString(name string, value map[string]string, usage string) *map[string]string { - return CommandLine.StringToStringP(name, "", value, usage) -} - -// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash. -func StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string { - return CommandLine.StringToStringP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/uint.go b/backend/vendor/github.com/spf13/pflag/uint.go deleted file mode 100644 index dcbc2b75..00000000 --- a/backend/vendor/github.com/spf13/pflag/uint.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint Value -type uintValue uint - -func newUintValue(val uint, p *uint) *uintValue { - *p = val - return (*uintValue)(p) -} - -func (i *uintValue) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 64) - *i = uintValue(v) - return err -} - -func (i *uintValue) Type() string { - return "uint" -} - -func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uintConv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 0) - if err != nil { - return 0, err - } - return uint(v), nil -} - -// GetUint return the uint value of a flag with the given name -func (f *FlagSet) GetUint(name string) (uint, error) { - val, err := f.getFlagType(name, "uint", uintConv) - if err != nil { - return 0, err - } - return val.(uint), nil -} - -// UintVar defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) { - f.VarP(newUintValue(value, p), name, "", usage) -} - -// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) { - f.VarP(newUintValue(value, p), name, shorthand, usage) -} - -// UintVar defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func UintVar(p *uint, name string, value uint, usage string) { - CommandLine.VarP(newUintValue(value, p), name, "", usage) -} - -// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. -func UintVarP(p *uint, name, shorthand string, value uint, usage string) { - CommandLine.VarP(newUintValue(value, p), name, shorthand, usage) -} - -// Uint defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func (f *FlagSet) Uint(name string, value uint, usage string) *uint { - p := new(uint) - f.UintVarP(p, name, "", value, usage) - return p -} - -// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint { - p := new(uint) - f.UintVarP(p, name, shorthand, value, usage) - return p -} - -// Uint defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func Uint(name string, value uint, usage string) *uint { - return CommandLine.UintP(name, "", value, usage) -} - -// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. -func UintP(name, shorthand string, value uint, usage string) *uint { - return CommandLine.UintP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/uint16.go b/backend/vendor/github.com/spf13/pflag/uint16.go deleted file mode 100644 index 7e9914ed..00000000 --- a/backend/vendor/github.com/spf13/pflag/uint16.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint16 value -type uint16Value uint16 - -func newUint16Value(val uint16, p *uint16) *uint16Value { - *p = val - return (*uint16Value)(p) -} - -func (i *uint16Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 16) - *i = uint16Value(v) - return err -} - -func (i *uint16Value) Type() string { - return "uint16" -} - -func (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint16Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 16) - if err != nil { - return 0, err - } - return uint16(v), nil -} - -// GetUint16 return the uint16 value of a flag with the given name -func (f *FlagSet) GetUint16(name string) (uint16, error) { - val, err := f.getFlagType(name, "uint16", uint16Conv) - if err != nil { - return 0, err - } - return val.(uint16), nil -} - -// Uint16Var defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) { - f.VarP(newUint16Value(value, p), name, "", usage) -} - -// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { - f.VarP(newUint16Value(value, p), name, shorthand, usage) -} - -// Uint16Var defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func Uint16Var(p *uint16, name string, value uint16, usage string) { - CommandLine.VarP(newUint16Value(value, p), name, "", usage) -} - -// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. -func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { - CommandLine.VarP(newUint16Value(value, p), name, shorthand, usage) -} - -// Uint16 defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 { - p := new(uint16) - f.Uint16VarP(p, name, "", value, usage) - return p -} - -// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 { - p := new(uint16) - f.Uint16VarP(p, name, shorthand, value, usage) - return p -} - -// Uint16 defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func Uint16(name string, value uint16, usage string) *uint16 { - return CommandLine.Uint16P(name, "", value, usage) -} - -// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. -func Uint16P(name, shorthand string, value uint16, usage string) *uint16 { - return CommandLine.Uint16P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/uint32.go b/backend/vendor/github.com/spf13/pflag/uint32.go deleted file mode 100644 index d8024539..00000000 --- a/backend/vendor/github.com/spf13/pflag/uint32.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint32 value -type uint32Value uint32 - -func newUint32Value(val uint32, p *uint32) *uint32Value { - *p = val - return (*uint32Value)(p) -} - -func (i *uint32Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 32) - *i = uint32Value(v) - return err -} - -func (i *uint32Value) Type() string { - return "uint32" -} - -func (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint32Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 32) - if err != nil { - return 0, err - } - return uint32(v), nil -} - -// GetUint32 return the uint32 value of a flag with the given name -func (f *FlagSet) GetUint32(name string) (uint32, error) { - val, err := f.getFlagType(name, "uint32", uint32Conv) - if err != nil { - return 0, err - } - return val.(uint32), nil -} - -// Uint32Var defines a uint32 flag with specified name, default value, and usage string. -// The argument p points to a uint32 variable in which to store the value of the flag. -func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) { - f.VarP(newUint32Value(value, p), name, "", usage) -} - -// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { - f.VarP(newUint32Value(value, p), name, shorthand, usage) -} - -// Uint32Var defines a uint32 flag with specified name, default value, and usage string. -// The argument p points to a uint32 variable in which to store the value of the flag. -func Uint32Var(p *uint32, name string, value uint32, usage string) { - CommandLine.VarP(newUint32Value(value, p), name, "", usage) -} - -// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. -func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { - CommandLine.VarP(newUint32Value(value, p), name, shorthand, usage) -} - -// Uint32 defines a uint32 flag with specified name, default value, and usage string. -// The return value is the address of a uint32 variable that stores the value of the flag. -func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 { - p := new(uint32) - f.Uint32VarP(p, name, "", value, usage) - return p -} - -// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 { - p := new(uint32) - f.Uint32VarP(p, name, shorthand, value, usage) - return p -} - -// Uint32 defines a uint32 flag with specified name, default value, and usage string. -// The return value is the address of a uint32 variable that stores the value of the flag. -func Uint32(name string, value uint32, usage string) *uint32 { - return CommandLine.Uint32P(name, "", value, usage) -} - -// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. -func Uint32P(name, shorthand string, value uint32, usage string) *uint32 { - return CommandLine.Uint32P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/uint64.go b/backend/vendor/github.com/spf13/pflag/uint64.go deleted file mode 100644 index f62240f2..00000000 --- a/backend/vendor/github.com/spf13/pflag/uint64.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint64 Value -type uint64Value uint64 - -func newUint64Value(val uint64, p *uint64) *uint64Value { - *p = val - return (*uint64Value)(p) -} - -func (i *uint64Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 64) - *i = uint64Value(v) - return err -} - -func (i *uint64Value) Type() string { - return "uint64" -} - -func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint64Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 64) - if err != nil { - return 0, err - } - return uint64(v), nil -} - -// GetUint64 return the uint64 value of a flag with the given name -func (f *FlagSet) GetUint64(name string) (uint64, error) { - val, err := f.getFlagType(name, "uint64", uint64Conv) - if err != nil { - return 0, err - } - return val.(uint64), nil -} - -// Uint64Var defines a uint64 flag with specified name, default value, and usage string. -// The argument p points to a uint64 variable in which to store the value of the flag. -func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) { - f.VarP(newUint64Value(value, p), name, "", usage) -} - -// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { - f.VarP(newUint64Value(value, p), name, shorthand, usage) -} - -// Uint64Var defines a uint64 flag with specified name, default value, and usage string. -// The argument p points to a uint64 variable in which to store the value of the flag. -func Uint64Var(p *uint64, name string, value uint64, usage string) { - CommandLine.VarP(newUint64Value(value, p), name, "", usage) -} - -// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. -func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { - CommandLine.VarP(newUint64Value(value, p), name, shorthand, usage) -} - -// Uint64 defines a uint64 flag with specified name, default value, and usage string. -// The return value is the address of a uint64 variable that stores the value of the flag. -func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 { - p := new(uint64) - f.Uint64VarP(p, name, "", value, usage) - return p -} - -// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 { - p := new(uint64) - f.Uint64VarP(p, name, shorthand, value, usage) - return p -} - -// Uint64 defines a uint64 flag with specified name, default value, and usage string. -// The return value is the address of a uint64 variable that stores the value of the flag. -func Uint64(name string, value uint64, usage string) *uint64 { - return CommandLine.Uint64P(name, "", value, usage) -} - -// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. -func Uint64P(name, shorthand string, value uint64, usage string) *uint64 { - return CommandLine.Uint64P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/uint8.go b/backend/vendor/github.com/spf13/pflag/uint8.go deleted file mode 100644 index bb0e83c1..00000000 --- a/backend/vendor/github.com/spf13/pflag/uint8.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint8 Value -type uint8Value uint8 - -func newUint8Value(val uint8, p *uint8) *uint8Value { - *p = val - return (*uint8Value)(p) -} - -func (i *uint8Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 8) - *i = uint8Value(v) - return err -} - -func (i *uint8Value) Type() string { - return "uint8" -} - -func (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint8Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 8) - if err != nil { - return 0, err - } - return uint8(v), nil -} - -// GetUint8 return the uint8 value of a flag with the given name -func (f *FlagSet) GetUint8(name string) (uint8, error) { - val, err := f.getFlagType(name, "uint8", uint8Conv) - if err != nil { - return 0, err - } - return val.(uint8), nil -} - -// Uint8Var defines a uint8 flag with specified name, default value, and usage string. -// The argument p points to a uint8 variable in which to store the value of the flag. -func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) { - f.VarP(newUint8Value(value, p), name, "", usage) -} - -// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { - f.VarP(newUint8Value(value, p), name, shorthand, usage) -} - -// Uint8Var defines a uint8 flag with specified name, default value, and usage string. -// The argument p points to a uint8 variable in which to store the value of the flag. -func Uint8Var(p *uint8, name string, value uint8, usage string) { - CommandLine.VarP(newUint8Value(value, p), name, "", usage) -} - -// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. -func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { - CommandLine.VarP(newUint8Value(value, p), name, shorthand, usage) -} - -// Uint8 defines a uint8 flag with specified name, default value, and usage string. -// The return value is the address of a uint8 variable that stores the value of the flag. -func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 { - p := new(uint8) - f.Uint8VarP(p, name, "", value, usage) - return p -} - -// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 { - p := new(uint8) - f.Uint8VarP(p, name, shorthand, value, usage) - return p -} - -// Uint8 defines a uint8 flag with specified name, default value, and usage string. -// The return value is the address of a uint8 variable that stores the value of the flag. -func Uint8(name string, value uint8, usage string) *uint8 { - return CommandLine.Uint8P(name, "", value, usage) -} - -// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. -func Uint8P(name, shorthand string, value uint8, usage string) *uint8 { - return CommandLine.Uint8P(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/pflag/uint_slice.go b/backend/vendor/github.com/spf13/pflag/uint_slice.go deleted file mode 100644 index 5fa92483..00000000 --- a/backend/vendor/github.com/spf13/pflag/uint_slice.go +++ /dev/null @@ -1,168 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- uintSlice Value -type uintSliceValue struct { - value *[]uint - changed bool -} - -func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue { - uisv := new(uintSliceValue) - uisv.value = p - *uisv.value = val - return uisv -} - -func (s *uintSliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]uint, len(ss)) - for i, d := range ss { - u, err := strconv.ParseUint(d, 10, 0) - if err != nil { - return err - } - out[i] = uint(u) - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *uintSliceValue) Type() string { - return "uintSlice" -} - -func (s *uintSliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%d", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func (s *uintSliceValue) fromString(val string) (uint, error) { - t, err := strconv.ParseUint(val, 10, 0) - if err != nil { - return 0, err - } - return uint(t), nil -} - -func (s *uintSliceValue) toString(val uint) string { - return fmt.Sprintf("%d", val) -} - -func (s *uintSliceValue) Append(val string) error { - i, err := s.fromString(val) - if err != nil { - return err - } - *s.value = append(*s.value, i) - return nil -} - -func (s *uintSliceValue) Replace(val []string) error { - out := make([]uint, len(val)) - for i, d := range val { - var err error - out[i], err = s.fromString(d) - if err != nil { - return err - } - } - *s.value = out - return nil -} - -func (s *uintSliceValue) GetSlice() []string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = s.toString(d) - } - return out -} - -func uintSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []uint{}, nil - } - ss := strings.Split(val, ",") - out := make([]uint, len(ss)) - for i, d := range ss { - u, err := strconv.ParseUint(d, 10, 0) - if err != nil { - return nil, err - } - out[i] = uint(u) - } - return out, nil -} - -// GetUintSlice returns the []uint value of a flag with the given name. -func (f *FlagSet) GetUintSlice(name string) ([]uint, error) { - val, err := f.getFlagType(name, "uintSlice", uintSliceConv) - if err != nil { - return []uint{}, err - } - return val.([]uint), nil -} - -// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string. -// The argument p points to a []uint variable in which to store the value of the flag. -func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) { - f.VarP(newUintSliceValue(value, p), name, "", usage) -} - -// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { - f.VarP(newUintSliceValue(value, p), name, shorthand, usage) -} - -// UintSliceVar defines a uint[] flag with specified name, default value, and usage string. -// The argument p points to a uint[] variable in which to store the value of the flag. -func UintSliceVar(p *[]uint, name string, value []uint, usage string) { - CommandLine.VarP(newUintSliceValue(value, p), name, "", usage) -} - -// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash. -func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { - CommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage) -} - -// UintSlice defines a []uint flag with specified name, default value, and usage string. -// The return value is the address of a []uint variable that stores the value of the flag. -func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint { - p := []uint{} - f.UintSliceVarP(&p, name, "", value, usage) - return &p -} - -// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { - p := []uint{} - f.UintSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// UintSlice defines a []uint flag with specified name, default value, and usage string. -// The return value is the address of a []uint variable that stores the value of the flag. -func UintSlice(name string, value []uint, usage string) *[]uint { - return CommandLine.UintSliceP(name, "", value, usage) -} - -// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. -func UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { - return CommandLine.UintSliceP(name, shorthand, value, usage) -} diff --git a/backend/vendor/github.com/spf13/viper/.editorconfig b/backend/vendor/github.com/spf13/viper/.editorconfig deleted file mode 100644 index 6d0b6d35..00000000 --- a/backend/vendor/github.com/spf13/viper/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 4 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[*.go] -indent_style = tab - -[{Makefile,*.mk}] -indent_style = tab diff --git a/backend/vendor/github.com/spf13/viper/.gitignore b/backend/vendor/github.com/spf13/viper/.gitignore deleted file mode 100644 index 89625083..00000000 --- a/backend/vendor/github.com/spf13/viper/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.idea/ -/bin/ -/build/ -/var/ -/vendor/ diff --git a/backend/vendor/github.com/spf13/viper/.golangci.yaml b/backend/vendor/github.com/spf13/viper/.golangci.yaml deleted file mode 100644 index acd9eeba..00000000 --- a/backend/vendor/github.com/spf13/viper/.golangci.yaml +++ /dev/null @@ -1,98 +0,0 @@ -run: - timeout: 5m - -linters-settings: - gci: - sections: - - standard - - default - - prefix(github.com/spf13/viper) - golint: - min-confidence: 0 - goimports: - local-prefixes: github.com/spf13/viper - -linters: - disable-all: true - enable: - - bodyclose - - dogsled - - dupl - - durationcheck - - exhaustive - - exportloopref - - gci - - gofmt - - gofumpt - - goimports - - gomoddirectives - - goprintffuncname - - govet - - importas - - ineffassign - - makezero - - misspell - - nakedret - - nilerr - - noctx - - nolintlint - - prealloc - - predeclared - - revive - - rowserrcheck - - sqlclosecheck - - staticcheck - - stylecheck - - tparallel - - typecheck - - unconvert - - unparam - - unused - - wastedassign - - whitespace - - # fixme - # - cyclop - # - errcheck - # - errorlint - # - exhaustivestruct - # - forbidigo - # - forcetypeassert - # - gochecknoglobals - # - gochecknoinits - # - gocognit - # - goconst - # - gocritic - # - gocyclo - # - godot - # - gosec - # - gosimple - # - ifshort - # - lll - # - nlreturn - # - paralleltest - # - scopelint - # - thelper - # - wrapcheck - - # unused - # - depguard - # - goheader - # - gomodguard - - # deprecated - # - deadcode - # - structcheck - # - varcheck - - # don't enable: - # - asciicheck - # - funlen - # - godox - # - goerr113 - # - gomnd - # - interfacer - # - maligned - # - nestif - # - testpackage - # - wsl diff --git a/backend/vendor/github.com/spf13/viper/LICENSE b/backend/vendor/github.com/spf13/viper/LICENSE deleted file mode 100644 index 4527efb9..00000000 --- a/backend/vendor/github.com/spf13/viper/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Steve Francia - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/backend/vendor/github.com/spf13/viper/Makefile b/backend/vendor/github.com/spf13/viper/Makefile deleted file mode 100644 index e8d3baaa..00000000 --- a/backend/vendor/github.com/spf13/viper/Makefile +++ /dev/null @@ -1,76 +0,0 @@ -# A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html - -OS = $(shell uname | tr A-Z a-z) -export PATH := $(abspath bin/):${PATH} - -# Build variables -BUILD_DIR ?= build -export CGO_ENABLED ?= 0 -export GOOS = $(shell go env GOOS) -ifeq (${VERBOSE}, 1) -ifeq ($(filter -v,${GOARGS}),) - GOARGS += -v -endif -TEST_FORMAT = short-verbose -endif - -# Dependency versions -GOTESTSUM_VERSION = 1.9.0 -GOLANGCI_VERSION = 1.52.2 - -# Add the ability to override some variables -# Use with care --include override.mk - -.PHONY: clear -clear: ## Clear the working area and the project - rm -rf bin/ - -.PHONY: check -check: test lint ## Run tests and linters - -bin/gotestsum: bin/gotestsum-${GOTESTSUM_VERSION} - @ln -sf gotestsum-${GOTESTSUM_VERSION} bin/gotestsum -bin/gotestsum-${GOTESTSUM_VERSION}: - @mkdir -p bin - curl -L https://github.com/gotestyourself/gotestsum/releases/download/v${GOTESTSUM_VERSION}/gotestsum_${GOTESTSUM_VERSION}_${OS}_amd64.tar.gz | tar -zOxf - gotestsum > ./bin/gotestsum-${GOTESTSUM_VERSION} && chmod +x ./bin/gotestsum-${GOTESTSUM_VERSION} - -TEST_PKGS ?= ./... -.PHONY: test -test: TEST_FORMAT ?= short -test: SHELL = /bin/bash -test: export CGO_ENABLED=1 -test: bin/gotestsum ## Run tests - @mkdir -p ${BUILD_DIR} - bin/gotestsum --no-summary=skipped --junitfile ${BUILD_DIR}/coverage.xml --format ${TEST_FORMAT} -- -race -coverprofile=${BUILD_DIR}/coverage.txt -covermode=atomic $(filter-out -v,${GOARGS}) $(if ${TEST_PKGS},${TEST_PKGS},./...) - -bin/golangci-lint: bin/golangci-lint-${GOLANGCI_VERSION} - @ln -sf golangci-lint-${GOLANGCI_VERSION} bin/golangci-lint -bin/golangci-lint-${GOLANGCI_VERSION}: - @mkdir -p bin - curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | bash -s -- -b ./bin/ v${GOLANGCI_VERSION} - @mv bin/golangci-lint "$@" - -.PHONY: lint -lint: bin/golangci-lint ## Run linter - bin/golangci-lint run - -.PHONY: fix -fix: bin/golangci-lint ## Fix lint violations - bin/golangci-lint run --fix - -# Add custom targets here --include custom.mk - -.PHONY: list -list: ## List all make targets - @${MAKE} -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort - -.PHONY: help -.DEFAULT_GOAL := help -help: - @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' - -# Variable outputting/exporting rules -var-%: ; @echo $($*) -varexport-%: ; @echo $*=$($*) diff --git a/backend/vendor/github.com/spf13/viper/README.md b/backend/vendor/github.com/spf13/viper/README.md deleted file mode 100644 index 4184d2a1..00000000 --- a/backend/vendor/github.com/spf13/viper/README.md +++ /dev/null @@ -1,884 +0,0 @@ -> ## Viper v2 feedback -> Viper is heading towards v2 and we would love to hear what _**you**_ would like to see in it. Share your thoughts here: https://forms.gle/R6faU74qPRPAzchZ9 -> -> **Thank you!** - -![Viper](.github/logo.png?raw=true) - -[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go#configuration) -[![run on repl.it](https://repl.it/badge/github/sagikazarmark/Viper-example)](https://repl.it/@sagikazarmark/Viper-example#main.go) - -[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/spf13/viper/ci.yaml?branch=master&style=flat-square)](https://github.com/spf13/viper/actions?query=workflow%3ACI) -[![Join the chat at https://gitter.im/spf13/viper](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/spf13/viper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/viper?style=flat-square)](https://goreportcard.com/report/github.com/spf13/viper) -![Go Version](https://img.shields.io/badge/go%20version-%3E=1.16-61CFDD.svg?style=flat-square) -[![PkgGoDev](https://pkg.go.dev/badge/mod/github.com/spf13/viper)](https://pkg.go.dev/mod/github.com/spf13/viper) - -**Go configuration with fangs!** - -Many Go projects are built using Viper including: - -* [Hugo](http://gohugo.io) -* [EMC RexRay](http://rexray.readthedocs.org/en/stable/) -* [Imgur’s Incus](https://github.com/Imgur/incus) -* [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) -* [Docker Notary](https://github.com/docker/Notary) -* [BloomApi](https://www.bloomapi.com/) -* [doctl](https://github.com/digitalocean/doctl) -* [Clairctl](https://github.com/jgsqware/clairctl) -* [Mercure](https://mercure.rocks) -* [Meshery](https://github.com/meshery/meshery) -* [Bearer](https://github.com/bearer/bearer) -* [Coder](https://github.com/coder/coder) - - -## Install - -```shell -go get github.com/spf13/viper -``` - -**Note:** Viper uses [Go Modules](https://github.com/golang/go/wiki/Modules) to manage dependencies. - - -## What is Viper? - -Viper is a complete configuration solution for Go applications including [12-Factor apps](https://12factor.net/#the_twelve_factors). -It is designed to work within an application, and can handle all types of configuration needs -and formats. It supports: - -* setting defaults -* reading from JSON, TOML, YAML, HCL, envfile and Java properties config files -* live watching and re-reading of config files (optional) -* reading from environment variables -* reading from remote config systems (etcd or Consul), and watching changes -* reading from command line flags -* reading from buffer -* setting explicit values - -Viper can be thought of as a registry for all of your applications configuration needs. - - -## Why Viper? - -When building a modern application, you don’t want to worry about -configuration file formats; you want to focus on building awesome software. -Viper is here to help with that. - -Viper does the following for you: - -1. Find, load, and unmarshal a configuration file in JSON, TOML, YAML, HCL, INI, envfile or Java properties formats. -2. Provide a mechanism to set default values for your different configuration options. -3. Provide a mechanism to set override values for options specified through command line flags. -4. Provide an alias system to easily rename parameters without breaking existing code. -5. Make it easy to tell the difference between when a user has provided a command line or config file which is the same as the default. - -Viper uses the following precedence order. Each item takes precedence over the item below it: - - * explicit call to `Set` - * flag - * env - * config - * key/value store - * default - -**Important:** Viper configuration keys are case insensitive. -There are ongoing discussions about making that optional. - - -## Putting Values into Viper - -### Establishing Defaults - -A good configuration system will support default values. A default value is not -required for a key, but it’s useful in the event that a key hasn't been set via -config file, environment variable, remote configuration or flag. - -Examples: - -```go -viper.SetDefault("ContentDir", "content") -viper.SetDefault("LayoutDir", "layouts") -viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"}) -``` - -### Reading Config Files - -Viper requires minimal configuration so it knows where to look for config files. -Viper supports JSON, TOML, YAML, HCL, INI, envfile and Java Properties files. Viper can search multiple paths, but -currently a single Viper instance only supports a single configuration file. -Viper does not default to any configuration search paths leaving defaults decision -to an application. - -Here is an example of how to use Viper to search for and read a configuration file. -None of the specific paths are required, but at least one path should be provided -where a configuration file is expected. - -```go -viper.SetConfigName("config") // name of config file (without extension) -viper.SetConfigType("yaml") // REQUIRED if the config file does not have the extension in the name -viper.AddConfigPath("/etc/appname/") // path to look for the config file in -viper.AddConfigPath("$HOME/.appname") // call multiple times to add many search paths -viper.AddConfigPath(".") // optionally look for config in the working directory -err := viper.ReadInConfig() // Find and read the config file -if err != nil { // Handle errors reading the config file - panic(fmt.Errorf("fatal error config file: %w", err)) -} -``` - -You can handle the specific case where no config file is found like this: - -```go -if err := viper.ReadInConfig(); err != nil { - if _, ok := err.(viper.ConfigFileNotFoundError); ok { - // Config file not found; ignore error if desired - } else { - // Config file was found but another error was produced - } -} - -// Config file found and successfully parsed -``` - -*NOTE [since 1.6]:* You can also have a file without an extension and specify the format programmaticaly. For those configuration files that lie in the home of the user without any extension like `.bashrc` - -### Writing Config Files - -Reading from config files is useful, but at times you want to store all modifications made at run time. -For that, a bunch of commands are available, each with its own purpose: - -* WriteConfig - writes the current viper configuration to the predefined path, if exists. Errors if no predefined path. Will overwrite the current config file, if it exists. -* SafeWriteConfig - writes the current viper configuration to the predefined path. Errors if no predefined path. Will not overwrite the current config file, if it exists. -* WriteConfigAs - writes the current viper configuration to the given filepath. Will overwrite the given file, if it exists. -* SafeWriteConfigAs - writes the current viper configuration to the given filepath. Will not overwrite the given file, if it exists. - -As a rule of the thumb, everything marked with safe won't overwrite any file, but just create if not existent, whilst the default behavior is to create or truncate. - -A small examples section: - -```go -viper.WriteConfig() // writes current config to predefined path set by 'viper.AddConfigPath()' and 'viper.SetConfigName' -viper.SafeWriteConfig() -viper.WriteConfigAs("/path/to/my/.config") -viper.SafeWriteConfigAs("/path/to/my/.config") // will error since it has already been written -viper.SafeWriteConfigAs("/path/to/my/.other_config") -``` - -### Watching and re-reading config files - -Viper supports the ability to have your application live read a config file while running. - -Gone are the days of needing to restart a server to have a config take effect, -viper powered applications can read an update to a config file while running and -not miss a beat. - -Simply tell the viper instance to watchConfig. -Optionally you can provide a function for Viper to run each time a change occurs. - -**Make sure you add all of the configPaths prior to calling `WatchConfig()`** - -```go -viper.OnConfigChange(func(e fsnotify.Event) { - fmt.Println("Config file changed:", e.Name) -}) -viper.WatchConfig() -``` - -### Reading Config from io.Reader - -Viper predefines many configuration sources such as files, environment -variables, flags, and remote K/V store, but you are not bound to them. You can -also implement your own required configuration source and feed it to viper. - -```go -viper.SetConfigType("yaml") // or viper.SetConfigType("YAML") - -// any approach to require this configuration into your program. -var yamlExample = []byte(` -Hacker: true -name: steve -hobbies: -- skateboarding -- snowboarding -- go -clothing: - jacket: leather - trousers: denim -age: 35 -eyes : brown -beard: true -`) - -viper.ReadConfig(bytes.NewBuffer(yamlExample)) - -viper.Get("name") // this would be "steve" -``` - -### Setting Overrides - -These could be from a command line flag, or from your own application logic. - -```go -viper.Set("Verbose", true) -viper.Set("LogFile", LogFile) -``` - -### Registering and Using Aliases - -Aliases permit a single value to be referenced by multiple keys - -```go -viper.RegisterAlias("loud", "Verbose") - -viper.Set("verbose", true) // same result as next line -viper.Set("loud", true) // same result as prior line - -viper.GetBool("loud") // true -viper.GetBool("verbose") // true -``` - -### Working with Environment Variables - -Viper has full support for environment variables. This enables 12 factor -applications out of the box. There are five methods that exist to aid working -with ENV: - - * `AutomaticEnv()` - * `BindEnv(string...) : error` - * `SetEnvPrefix(string)` - * `SetEnvKeyReplacer(string...) *strings.Replacer` - * `AllowEmptyEnv(bool)` - -_When working with ENV variables, it’s important to recognize that Viper -treats ENV variables as case sensitive._ - -Viper provides a mechanism to try to ensure that ENV variables are unique. By -using `SetEnvPrefix`, you can tell Viper to use a prefix while reading from -the environment variables. Both `BindEnv` and `AutomaticEnv` will use this -prefix. - -`BindEnv` takes one or more parameters. The first parameter is the key name, the -rest are the name of the environment variables to bind to this key. If more than -one are provided, they will take precedence in the specified order. The name of -the environment variable is case sensitive. If the ENV variable name is not provided, then -Viper will automatically assume that the ENV variable matches the following format: prefix + "_" + the key name in ALL CAPS. When you explicitly provide the ENV variable name (the second parameter), -it **does not** automatically add the prefix. For example if the second parameter is "id", -Viper will look for the ENV variable "ID". - -One important thing to recognize when working with ENV variables is that the -value will be read each time it is accessed. Viper does not fix the value when -the `BindEnv` is called. - -`AutomaticEnv` is a powerful helper especially when combined with -`SetEnvPrefix`. When called, Viper will check for an environment variable any -time a `viper.Get` request is made. It will apply the following rules. It will -check for an environment variable with a name matching the key uppercased and -prefixed with the `EnvPrefix` if set. - -`SetEnvKeyReplacer` allows you to use a `strings.Replacer` object to rewrite Env -keys to an extent. This is useful if you want to use `-` or something in your -`Get()` calls, but want your environmental variables to use `_` delimiters. An -example of using it can be found in `viper_test.go`. - -Alternatively, you can use `EnvKeyReplacer` with `NewWithOptions` factory function. -Unlike `SetEnvKeyReplacer`, it accepts a `StringReplacer` interface allowing you to write custom string replacing logic. - -By default empty environment variables are considered unset and will fall back to -the next configuration source. To treat empty environment variables as set, use -the `AllowEmptyEnv` method. - -#### Env example - -```go -SetEnvPrefix("spf") // will be uppercased automatically -BindEnv("id") - -os.Setenv("SPF_ID", "13") // typically done outside of the app - -id := Get("id") // 13 -``` - -### Working with Flags - -Viper has the ability to bind to flags. Specifically, Viper supports `Pflags` -as used in the [Cobra](https://github.com/spf13/cobra) library. - -Like `BindEnv`, the value is not set when the binding method is called, but when -it is accessed. This means you can bind as early as you want, even in an -`init()` function. - -For individual flags, the `BindPFlag()` method provides this functionality. - -Example: - -```go -serverCmd.Flags().Int("port", 1138, "Port to run Application server on") -viper.BindPFlag("port", serverCmd.Flags().Lookup("port")) -``` - -You can also bind an existing set of pflags (pflag.FlagSet): - -Example: - -```go -pflag.Int("flagname", 1234, "help message for flagname") - -pflag.Parse() -viper.BindPFlags(pflag.CommandLine) - -i := viper.GetInt("flagname") // retrieve values from viper instead of pflag -``` - -The use of [pflag](https://github.com/spf13/pflag/) in Viper does not preclude -the use of other packages that use the [flag](https://golang.org/pkg/flag/) -package from the standard library. The pflag package can handle the flags -defined for the flag package by importing these flags. This is accomplished -by a calling a convenience function provided by the pflag package called -AddGoFlagSet(). - -Example: - -```go -package main - -import ( - "flag" - "github.com/spf13/pflag" -) - -func main() { - - // using standard library "flag" package - flag.Int("flagname", 1234, "help message for flagname") - - pflag.CommandLine.AddGoFlagSet(flag.CommandLine) - pflag.Parse() - viper.BindPFlags(pflag.CommandLine) - - i := viper.GetInt("flagname") // retrieve value from viper - - // ... -} -``` - -#### Flag interfaces - -Viper provides two Go interfaces to bind other flag systems if you don’t use `Pflags`. - -`FlagValue` represents a single flag. This is a very simple example on how to implement this interface: - -```go -type myFlag struct {} -func (f myFlag) HasChanged() bool { return false } -func (f myFlag) Name() string { return "my-flag-name" } -func (f myFlag) ValueString() string { return "my-flag-value" } -func (f myFlag) ValueType() string { return "string" } -``` - -Once your flag implements this interface, you can simply tell Viper to bind it: - -```go -viper.BindFlagValue("my-flag-name", myFlag{}) -``` - -`FlagValueSet` represents a group of flags. This is a very simple example on how to implement this interface: - -```go -type myFlagSet struct { - flags []myFlag -} - -func (f myFlagSet) VisitAll(fn func(FlagValue)) { - for _, flag := range flags { - fn(flag) - } -} -``` - -Once your flag set implements this interface, you can simply tell Viper to bind it: - -```go -fSet := myFlagSet{ - flags: []myFlag{myFlag{}, myFlag{}}, -} -viper.BindFlagValues("my-flags", fSet) -``` - -### Remote Key/Value Store Support - -To enable remote support in Viper, do a blank import of the `viper/remote` -package: - -`import _ "github.com/spf13/viper/remote"` - -Viper will read a config string (as JSON, TOML, YAML, HCL or envfile) retrieved from a path -in a Key/Value store such as etcd or Consul. These values take precedence over -default values, but are overridden by configuration values retrieved from disk, -flags, or environment variables. - -Viper uses [crypt](https://github.com/bketelsen/crypt) to retrieve -configuration from the K/V store, which means that you can store your -configuration values encrypted and have them automatically decrypted if you have -the correct gpg keyring. Encryption is optional. - -You can use remote configuration in conjunction with local configuration, or -independently of it. - -`crypt` has a command-line helper that you can use to put configurations in your -K/V store. `crypt` defaults to etcd on http://127.0.0.1:4001. - -```bash -$ go get github.com/bketelsen/crypt/bin/crypt -$ crypt set -plaintext /config/hugo.json /Users/hugo/settings/config.json -``` - -Confirm that your value was set: - -```bash -$ crypt get -plaintext /config/hugo.json -``` - -See the `crypt` documentation for examples of how to set encrypted values, or -how to use Consul. - -### Remote Key/Value Store Example - Unencrypted - -#### etcd -```go -viper.AddRemoteProvider("etcd", "http://127.0.0.1:4001","/config/hugo.json") -viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" -err := viper.ReadRemoteConfig() -``` - -#### etcd3 -```go -viper.AddRemoteProvider("etcd3", "http://127.0.0.1:4001","/config/hugo.json") -viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" -err := viper.ReadRemoteConfig() -``` - -#### Consul -You need to set a key to Consul key/value storage with JSON value containing your desired config. -For example, create a Consul key/value store key `MY_CONSUL_KEY` with value: - -```json -{ - "port": 8080, - "hostname": "myhostname.com" -} -``` - -```go -viper.AddRemoteProvider("consul", "localhost:8500", "MY_CONSUL_KEY") -viper.SetConfigType("json") // Need to explicitly set this to json -err := viper.ReadRemoteConfig() - -fmt.Println(viper.Get("port")) // 8080 -fmt.Println(viper.Get("hostname")) // myhostname.com -``` - -#### Firestore - -```go -viper.AddRemoteProvider("firestore", "google-cloud-project-id", "collection/document") -viper.SetConfigType("json") // Config's format: "json", "toml", "yaml", "yml" -err := viper.ReadRemoteConfig() -``` - -Of course, you're allowed to use `SecureRemoteProvider` also - -### Remote Key/Value Store Example - Encrypted - -```go -viper.AddSecureRemoteProvider("etcd","http://127.0.0.1:4001","/config/hugo.json","/etc/secrets/mykeyring.gpg") -viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" -err := viper.ReadRemoteConfig() -``` - -### Watching Changes in etcd - Unencrypted - -```go -// alternatively, you can create a new viper instance. -var runtime_viper = viper.New() - -runtime_viper.AddRemoteProvider("etcd", "http://127.0.0.1:4001", "/config/hugo.yml") -runtime_viper.SetConfigType("yaml") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" - -// read from remote config the first time. -err := runtime_viper.ReadRemoteConfig() - -// unmarshal config -runtime_viper.Unmarshal(&runtime_conf) - -// open a goroutine to watch remote changes forever -go func(){ - for { - time.Sleep(time.Second * 5) // delay after each request - - // currently, only tested with etcd support - err := runtime_viper.WatchRemoteConfig() - if err != nil { - log.Errorf("unable to read remote config: %v", err) - continue - } - - // unmarshal new config into our runtime config struct. you can also use channel - // to implement a signal to notify the system of the changes - runtime_viper.Unmarshal(&runtime_conf) - } -}() -``` - -## Getting Values From Viper - -In Viper, there are a few ways to get a value depending on the value’s type. -The following functions and methods exist: - - * `Get(key string) : interface{}` - * `GetBool(key string) : bool` - * `GetFloat64(key string) : float64` - * `GetInt(key string) : int` - * `GetIntSlice(key string) : []int` - * `GetString(key string) : string` - * `GetStringMap(key string) : map[string]interface{}` - * `GetStringMapString(key string) : map[string]string` - * `GetStringSlice(key string) : []string` - * `GetTime(key string) : time.Time` - * `GetDuration(key string) : time.Duration` - * `IsSet(key string) : bool` - * `AllSettings() : map[string]interface{}` - -One important thing to recognize is that each Get function will return a zero -value if it’s not found. To check if a given key exists, the `IsSet()` method -has been provided. - -Example: -```go -viper.GetString("logfile") // case-insensitive Setting & Getting -if viper.GetBool("verbose") { - fmt.Println("verbose enabled") -} -``` -### Accessing nested keys - -The accessor methods also accept formatted paths to deeply nested keys. For -example, if the following JSON file is loaded: - -```json -{ - "host": { - "address": "localhost", - "port": 5799 - }, - "datastore": { - "metric": { - "host": "127.0.0.1", - "port": 3099 - }, - "warehouse": { - "host": "198.0.0.1", - "port": 2112 - } - } -} - -``` - -Viper can access a nested field by passing a `.` delimited path of keys: - -```go -GetString("datastore.metric.host") // (returns "127.0.0.1") -``` - -This obeys the precedence rules established above; the search for the path -will cascade through the remaining configuration registries until found. - -For example, given this configuration file, both `datastore.metric.host` and -`datastore.metric.port` are already defined (and may be overridden). If in addition -`datastore.metric.protocol` was defined in the defaults, Viper would also find it. - -However, if `datastore.metric` was overridden (by a flag, an environment variable, -the `Set()` method, …) with an immediate value, then all sub-keys of -`datastore.metric` become undefined, they are “shadowed” by the higher-priority -configuration level. - -Viper can access array indices by using numbers in the path. For example: - -```jsonc -{ - "host": { - "address": "localhost", - "ports": [ - 5799, - 6029 - ] - }, - "datastore": { - "metric": { - "host": "127.0.0.1", - "port": 3099 - }, - "warehouse": { - "host": "198.0.0.1", - "port": 2112 - } - } -} - -GetInt("host.ports.1") // returns 6029 - -``` - -Lastly, if there exists a key that matches the delimited key path, its value -will be returned instead. E.g. - -```jsonc -{ - "datastore.metric.host": "0.0.0.0", - "host": { - "address": "localhost", - "port": 5799 - }, - "datastore": { - "metric": { - "host": "127.0.0.1", - "port": 3099 - }, - "warehouse": { - "host": "198.0.0.1", - "port": 2112 - } - } -} - -GetString("datastore.metric.host") // returns "0.0.0.0" -``` - -### Extracting a sub-tree - -When developing reusable modules, it's often useful to extract a subset of the configuration -and pass it to a module. This way the module can be instantiated more than once, with different configurations. - -For example, an application might use multiple different cache stores for different purposes: - -```yaml -cache: - cache1: - max-items: 100 - item-size: 64 - cache2: - max-items: 200 - item-size: 80 -``` - -We could pass the cache name to a module (eg. `NewCache("cache1")`), -but it would require weird concatenation for accessing config keys and would be less separated from the global config. - -So instead of doing that let's pass a Viper instance to the constructor that represents a subset of the configuration: - -```go -cache1Config := viper.Sub("cache.cache1") -if cache1Config == nil { // Sub returns nil if the key cannot be found - panic("cache configuration not found") -} - -cache1 := NewCache(cache1Config) -``` - -**Note:** Always check the return value of `Sub`. It returns `nil` if a key cannot be found. - -Internally, the `NewCache` function can address `max-items` and `item-size` keys directly: - -```go -func NewCache(v *Viper) *Cache { - return &Cache{ - MaxItems: v.GetInt("max-items"), - ItemSize: v.GetInt("item-size"), - } -} -``` - -The resulting code is easy to test, since it's decoupled from the main config structure, -and easier to reuse (for the same reason). - - -### Unmarshaling - -You also have the option of Unmarshaling all or a specific value to a struct, map, -etc. - -There are two methods to do this: - - * `Unmarshal(rawVal interface{}) : error` - * `UnmarshalKey(key string, rawVal interface{}) : error` - -Example: - -```go -type config struct { - Port int - Name string - PathMap string `mapstructure:"path_map"` -} - -var C config - -err := viper.Unmarshal(&C) -if err != nil { - t.Fatalf("unable to decode into struct, %v", err) -} -``` - -If you want to unmarshal configuration where the keys themselves contain dot (the default key delimiter), -you have to change the delimiter: - -```go -v := viper.NewWithOptions(viper.KeyDelimiter("::")) - -v.SetDefault("chart::values", map[string]interface{}{ - "ingress": map[string]interface{}{ - "annotations": map[string]interface{}{ - "traefik.frontend.rule.type": "PathPrefix", - "traefik.ingress.kubernetes.io/ssl-redirect": "true", - }, - }, -}) - -type config struct { - Chart struct{ - Values map[string]interface{} - } -} - -var C config - -v.Unmarshal(&C) -``` - -Viper also supports unmarshaling into embedded structs: - -```go -/* -Example config: - -module: - enabled: true - token: 89h3f98hbwf987h3f98wenf89ehf -*/ -type config struct { - Module struct { - Enabled bool - - moduleConfig `mapstructure:",squash"` - } -} - -// moduleConfig could be in a module specific package -type moduleConfig struct { - Token string -} - -var C config - -err := viper.Unmarshal(&C) -if err != nil { - t.Fatalf("unable to decode into struct, %v", err) -} -``` - -Viper uses [github.com/mitchellh/mapstructure](https://github.com/mitchellh/mapstructure) under the hood for unmarshaling values which uses `mapstructure` tags by default. - -### Decoding custom formats - -A frequently requested feature for Viper is adding more value formats and decoders. -For example, parsing character (dot, comma, semicolon, etc) separated strings into slices. - -This is already available in Viper using mapstructure decode hooks. - -Read more about the details in [this blog post](https://sagikazarmark.hu/blog/decoding-custom-formats-with-viper/). - -### Marshalling to string - -You may need to marshal all the settings held in viper into a string rather than write them to a file. -You can use your favorite format's marshaller with the config returned by `AllSettings()`. - -```go -import ( - yaml "gopkg.in/yaml.v2" - // ... -) - -func yamlStringSettings() string { - c := viper.AllSettings() - bs, err := yaml.Marshal(c) - if err != nil { - log.Fatalf("unable to marshal config to YAML: %v", err) - } - return string(bs) -} -``` - -## Viper or Vipers? - -Viper comes ready to use out of the box. There is no configuration or -initialization needed to begin using Viper. Since most applications will want -to use a single central repository for their configuration, the viper package -provides this. It is similar to a singleton. - -In all of the examples above, they demonstrate using viper in its singleton -style approach. - -### Working with multiple vipers - -You can also create many different vipers for use in your application. Each will -have its own unique set of configurations and values. Each can read from a -different config file, key value store, etc. All of the functions that viper -package supports are mirrored as methods on a viper. - -Example: - -```go -x := viper.New() -y := viper.New() - -x.SetDefault("ContentDir", "content") -y.SetDefault("ContentDir", "foobar") - -//... -``` - -When working with multiple vipers, it is up to the user to keep track of the -different vipers. - - -## Q & A - -### Why is it called “Viper”? - -A: Viper is designed to be a [companion](http://en.wikipedia.org/wiki/Viper_(G.I._Joe)) -to [Cobra](https://github.com/spf13/cobra). While both can operate completely -independently, together they make a powerful pair to handle much of your -application foundation needs. - -### Why is it called “Cobra”? - -Is there a better name for a [commander](http://en.wikipedia.org/wiki/Cobra_Commander)? - -### Does Viper support case sensitive keys? - -**tl;dr:** No. - -Viper merges configuration from various sources, many of which are either case insensitive or uses different casing than the rest of the sources (eg. env vars). -In order to provide the best experience when using multiple sources, the decision has been made to make all keys case insensitive. - -There has been several attempts to implement case sensitivity, but unfortunately it's not that trivial. We might take a stab at implementing it in [Viper v2](https://github.com/spf13/viper/issues/772), but despite the initial noise, it does not seem to be requested that much. - -You can vote for case sensitivity by filling out this feedback form: https://forms.gle/R6faU74qPRPAzchZ9 - -### Is it safe to concurrently read and write to a viper? - -No, you will need to synchronize access to the viper yourself (for example by using the `sync` package). Concurrent reads and writes can cause a panic. - -## Troubleshooting - -See [TROUBLESHOOTING.md](TROUBLESHOOTING.md). diff --git a/backend/vendor/github.com/spf13/viper/TROUBLESHOOTING.md b/backend/vendor/github.com/spf13/viper/TROUBLESHOOTING.md deleted file mode 100644 index c4e36c68..00000000 --- a/backend/vendor/github.com/spf13/viper/TROUBLESHOOTING.md +++ /dev/null @@ -1,32 +0,0 @@ -# Troubleshooting - -## Unmarshaling doesn't work - -The most common reason for this issue is improper use of struct tags (eg. `yaml` or `json`). Viper uses [github.com/mitchellh/mapstructure](https://github.com/mitchellh/mapstructure) under the hood for unmarshaling values which uses `mapstructure` tags by default. Please refer to the library's documentation for using other struct tags. - -## Cannot find package - -Viper installation seems to fail a lot lately with the following (or a similar) error: - -``` -cannot find package "github.com/hashicorp/hcl/tree/hcl1" in any of: -/usr/local/Cellar/go/1.15.7_1/libexec/src/github.com/hashicorp/hcl/tree/hcl1 (from $GOROOT) -/Users/user/go/src/github.com/hashicorp/hcl/tree/hcl1 (from $GOPATH) -``` - -As the error message suggests, Go tries to look up dependencies in `GOPATH` mode (as it's commonly called) from the `GOPATH`. -Viper opted to use [Go Modules](https://github.com/golang/go/wiki/Modules) to manage its dependencies. While in many cases the two methods are interchangeable, once a dependency releases new (major) versions, `GOPATH` mode is no longer able to decide which version to use, so it'll either use one that's already present or pick a version (usually the `master` branch). - -The solution is easy: switch to using Go Modules. -Please refer to the [wiki](https://github.com/golang/go/wiki/Modules) on how to do that. - -**tl;dr* `export GO111MODULE=on` - -## Unquoted 'y' and 'n' characters get replaced with _true_ and _false_ when reading a YAML file - -This is a YAML 1.1 feature according to [go-yaml/yaml#740](https://github.com/go-yaml/yaml/issues/740). - -Potential solutions are: - -1. Quoting values resolved as boolean -1. Upgrading to YAML v3 (for the time being this is possible by passing the `viper_yaml3` tag to your build) diff --git a/backend/vendor/github.com/spf13/viper/experimental_logger.go b/backend/vendor/github.com/spf13/viper/experimental_logger.go deleted file mode 100644 index 206dad6a..00000000 --- a/backend/vendor/github.com/spf13/viper/experimental_logger.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build viper_logger -// +build viper_logger - -package viper - -// WithLogger sets a custom logger. -func WithLogger(l Logger) Option { - return optionFunc(func(v *Viper) { - v.logger = l - }) -} diff --git a/backend/vendor/github.com/spf13/viper/flags.go b/backend/vendor/github.com/spf13/viper/flags.go deleted file mode 100644 index b5ddbf5d..00000000 --- a/backend/vendor/github.com/spf13/viper/flags.go +++ /dev/null @@ -1,57 +0,0 @@ -package viper - -import "github.com/spf13/pflag" - -// FlagValueSet is an interface that users can implement -// to bind a set of flags to viper. -type FlagValueSet interface { - VisitAll(fn func(FlagValue)) -} - -// FlagValue is an interface that users can implement -// to bind different flags to viper. -type FlagValue interface { - HasChanged() bool - Name() string - ValueString() string - ValueType() string -} - -// pflagValueSet is a wrapper around *pflag.ValueSet -// that implements FlagValueSet. -type pflagValueSet struct { - flags *pflag.FlagSet -} - -// VisitAll iterates over all *pflag.Flag inside the *pflag.FlagSet. -func (p pflagValueSet) VisitAll(fn func(flag FlagValue)) { - p.flags.VisitAll(func(flag *pflag.Flag) { - fn(pflagValue{flag}) - }) -} - -// pflagValue is a wrapper aroung *pflag.flag -// that implements FlagValue -type pflagValue struct { - flag *pflag.Flag -} - -// HasChanged returns whether the flag has changes or not. -func (p pflagValue) HasChanged() bool { - return p.flag.Changed -} - -// Name returns the name of the flag. -func (p pflagValue) Name() string { - return p.flag.Name -} - -// ValueString returns the value of the flag as a string. -func (p pflagValue) ValueString() string { - return p.flag.Value.String() -} - -// ValueType returns the type of the flag as a string. -func (p pflagValue) ValueType() string { - return p.flag.Value.Type() -} diff --git a/backend/vendor/github.com/spf13/viper/fs.go b/backend/vendor/github.com/spf13/viper/fs.go deleted file mode 100644 index ecb1769e..00000000 --- a/backend/vendor/github.com/spf13/viper/fs.go +++ /dev/null @@ -1,65 +0,0 @@ -//go:build go1.16 && finder -// +build go1.16,finder - -package viper - -import ( - "errors" - "io/fs" - "path" -) - -type finder struct { - paths []string - fileNames []string - extensions []string - - withoutExtension bool -} - -func (f finder) Find(fsys fs.FS) (string, error) { - for _, searchPath := range f.paths { - for _, fileName := range f.fileNames { - for _, extension := range f.extensions { - filePath := path.Join(searchPath, fileName+"."+extension) - - ok, err := fileExists(fsys, filePath) - if err != nil { - return "", err - } - - if ok { - return filePath, nil - } - } - - if f.withoutExtension { - filePath := path.Join(searchPath, fileName) - - ok, err := fileExists(fsys, filePath) - if err != nil { - return "", err - } - - if ok { - return filePath, nil - } - } - } - } - - return "", nil -} - -func fileExists(fsys fs.FS, filePath string) (bool, error) { - fileInfo, err := fs.Stat(fsys, filePath) - if err == nil { - return !fileInfo.IsDir(), nil - } - - if errors.Is(err, fs.ErrNotExist) { - return false, nil - } - - return false, err -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/decoder.go b/backend/vendor/github.com/spf13/viper/internal/encoding/decoder.go deleted file mode 100644 index f472e9ff..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/decoder.go +++ /dev/null @@ -1,61 +0,0 @@ -package encoding - -import ( - "sync" -) - -// Decoder decodes the contents of b into v. -// It's primarily used for decoding contents of a file into a map[string]interface{}. -type Decoder interface { - Decode(b []byte, v map[string]interface{}) error -} - -const ( - // ErrDecoderNotFound is returned when there is no decoder registered for a format. - ErrDecoderNotFound = encodingError("decoder not found for this format") - - // ErrDecoderFormatAlreadyRegistered is returned when an decoder is already registered for a format. - ErrDecoderFormatAlreadyRegistered = encodingError("decoder already registered for this format") -) - -// DecoderRegistry can choose an appropriate Decoder based on the provided format. -type DecoderRegistry struct { - decoders map[string]Decoder - - mu sync.RWMutex -} - -// NewDecoderRegistry returns a new, initialized DecoderRegistry. -func NewDecoderRegistry() *DecoderRegistry { - return &DecoderRegistry{ - decoders: make(map[string]Decoder), - } -} - -// RegisterDecoder registers a Decoder for a format. -// Registering a Decoder for an already existing format is not supported. -func (e *DecoderRegistry) RegisterDecoder(format string, enc Decoder) error { - e.mu.Lock() - defer e.mu.Unlock() - - if _, ok := e.decoders[format]; ok { - return ErrDecoderFormatAlreadyRegistered - } - - e.decoders[format] = enc - - return nil -} - -// Decode calls the underlying Decoder based on the format. -func (e *DecoderRegistry) Decode(format string, b []byte, v map[string]interface{}) error { - e.mu.RLock() - decoder, ok := e.decoders[format] - e.mu.RUnlock() - - if !ok { - return ErrDecoderNotFound - } - - return decoder.Decode(b, v) -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go deleted file mode 100644 index 4485063b..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/codec.go +++ /dev/null @@ -1,61 +0,0 @@ -package dotenv - -import ( - "bytes" - "fmt" - "sort" - "strings" - - "github.com/subosito/gotenv" -) - -const keyDelimiter = "_" - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for encoding data containing environment variables -// (commonly called as dotenv format). -type Codec struct{} - -func (Codec) Encode(v map[string]interface{}) ([]byte, error) { - flattened := map[string]interface{}{} - - flattened = flattenAndMergeMap(flattened, v, "", keyDelimiter) - - keys := make([]string, 0, len(flattened)) - - for key := range flattened { - keys = append(keys, key) - } - - sort.Strings(keys) - - var buf bytes.Buffer - - for _, key := range keys { - _, err := buf.WriteString(fmt.Sprintf("%v=%v\n", strings.ToUpper(key), flattened[key])) - if err != nil { - return nil, err - } - } - - return buf.Bytes(), nil -} - -func (Codec) Decode(b []byte, v map[string]interface{}) error { - var buf bytes.Buffer - - _, err := buf.Write(b) - if err != nil { - return err - } - - env, err := gotenv.StrictParse(&buf) - if err != nil { - return err - } - - for key, value := range env { - v[key] = value - } - - return nil -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/map_utils.go b/backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/map_utils.go deleted file mode 100644 index ce6e6efa..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/dotenv/map_utils.go +++ /dev/null @@ -1,41 +0,0 @@ -package dotenv - -import ( - "strings" - - "github.com/spf13/cast" -) - -// flattenAndMergeMap recursively flattens the given map into a new map -// Code is based on the function with the same name in tha main package. -// TODO: move it to a common place -func flattenAndMergeMap(shadow map[string]interface{}, m map[string]interface{}, prefix string, delimiter string) map[string]interface{} { - if shadow != nil && prefix != "" && shadow[prefix] != nil { - // prefix is shadowed => nothing more to flatten - return shadow - } - if shadow == nil { - shadow = make(map[string]interface{}) - } - - var m2 map[string]interface{} - if prefix != "" { - prefix += delimiter - } - for k, val := range m { - fullKey := prefix + k - switch val.(type) { - case map[string]interface{}: - m2 = val.(map[string]interface{}) - case map[interface{}]interface{}: - m2 = cast.ToStringMap(val) - default: - // immediate value - shadow[strings.ToLower(fullKey)] = val - continue - } - // recursively merge to shadow map - shadow = flattenAndMergeMap(shadow, m2, fullKey, delimiter) - } - return shadow -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/encoder.go b/backend/vendor/github.com/spf13/viper/internal/encoding/encoder.go deleted file mode 100644 index 2341bf23..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/encoder.go +++ /dev/null @@ -1,60 +0,0 @@ -package encoding - -import ( - "sync" -) - -// Encoder encodes the contents of v into a byte representation. -// It's primarily used for encoding a map[string]interface{} into a file format. -type Encoder interface { - Encode(v map[string]interface{}) ([]byte, error) -} - -const ( - // ErrEncoderNotFound is returned when there is no encoder registered for a format. - ErrEncoderNotFound = encodingError("encoder not found for this format") - - // ErrEncoderFormatAlreadyRegistered is returned when an encoder is already registered for a format. - ErrEncoderFormatAlreadyRegistered = encodingError("encoder already registered for this format") -) - -// EncoderRegistry can choose an appropriate Encoder based on the provided format. -type EncoderRegistry struct { - encoders map[string]Encoder - - mu sync.RWMutex -} - -// NewEncoderRegistry returns a new, initialized EncoderRegistry. -func NewEncoderRegistry() *EncoderRegistry { - return &EncoderRegistry{ - encoders: make(map[string]Encoder), - } -} - -// RegisterEncoder registers an Encoder for a format. -// Registering a Encoder for an already existing format is not supported. -func (e *EncoderRegistry) RegisterEncoder(format string, enc Encoder) error { - e.mu.Lock() - defer e.mu.Unlock() - - if _, ok := e.encoders[format]; ok { - return ErrEncoderFormatAlreadyRegistered - } - - e.encoders[format] = enc - - return nil -} - -func (e *EncoderRegistry) Encode(format string, v map[string]interface{}) ([]byte, error) { - e.mu.RLock() - encoder, ok := e.encoders[format] - e.mu.RUnlock() - - if !ok { - return nil, ErrEncoderNotFound - } - - return encoder.Encode(v) -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/error.go b/backend/vendor/github.com/spf13/viper/internal/encoding/error.go deleted file mode 100644 index e4cde02d..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/error.go +++ /dev/null @@ -1,7 +0,0 @@ -package encoding - -type encodingError string - -func (e encodingError) Error() string { - return string(e) -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/hcl/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/hcl/codec.go deleted file mode 100644 index 7fde8e4b..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/hcl/codec.go +++ /dev/null @@ -1,40 +0,0 @@ -package hcl - -import ( - "bytes" - "encoding/json" - - "github.com/hashicorp/hcl" - "github.com/hashicorp/hcl/hcl/printer" -) - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for HCL encoding. -// TODO: add printer config to the codec? -type Codec struct{} - -func (Codec) Encode(v map[string]interface{}) ([]byte, error) { - b, err := json.Marshal(v) - if err != nil { - return nil, err - } - - // TODO: use printer.Format? Is the trailing newline an issue? - - ast, err := hcl.Parse(string(b)) - if err != nil { - return nil, err - } - - var buf bytes.Buffer - - err = printer.Fprint(&buf, ast.Node) - if err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -func (Codec) Decode(b []byte, v map[string]interface{}) error { - return hcl.Unmarshal(b, &v) -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/ini/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/ini/codec.go deleted file mode 100644 index 9acd87fc..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/ini/codec.go +++ /dev/null @@ -1,99 +0,0 @@ -package ini - -import ( - "bytes" - "sort" - "strings" - - "github.com/spf13/cast" - "gopkg.in/ini.v1" -) - -// LoadOptions contains all customized options used for load data source(s). -// This type is added here for convenience: this way consumers can import a single package called "ini". -type LoadOptions = ini.LoadOptions - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for INI encoding. -type Codec struct { - KeyDelimiter string - LoadOptions LoadOptions -} - -func (c Codec) Encode(v map[string]interface{}) ([]byte, error) { - cfg := ini.Empty() - ini.PrettyFormat = false - - flattened := map[string]interface{}{} - - flattened = flattenAndMergeMap(flattened, v, "", c.keyDelimiter()) - - keys := make([]string, 0, len(flattened)) - - for key := range flattened { - keys = append(keys, key) - } - - sort.Strings(keys) - - for _, key := range keys { - sectionName, keyName := "", key - - lastSep := strings.LastIndex(key, ".") - if lastSep != -1 { - sectionName = key[:(lastSep)] - keyName = key[(lastSep + 1):] - } - - // TODO: is this a good idea? - if sectionName == "default" { - sectionName = "" - } - - cfg.Section(sectionName).Key(keyName).SetValue(cast.ToString(flattened[key])) - } - - var buf bytes.Buffer - - _, err := cfg.WriteTo(&buf) - if err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -func (c Codec) Decode(b []byte, v map[string]interface{}) error { - cfg := ini.Empty(c.LoadOptions) - - err := cfg.Append(b) - if err != nil { - return err - } - - sections := cfg.Sections() - - for i := 0; i < len(sections); i++ { - section := sections[i] - keys := section.Keys() - - for j := 0; j < len(keys); j++ { - key := keys[j] - value := cfg.Section(section.Name()).Key(key.Name()).String() - - deepestMap := deepSearch(v, strings.Split(section.Name(), c.keyDelimiter())) - - // set innermost value - deepestMap[key.Name()] = value - } - } - - return nil -} - -func (c Codec) keyDelimiter() string { - if c.KeyDelimiter == "" { - return "." - } - - return c.KeyDelimiter -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/ini/map_utils.go b/backend/vendor/github.com/spf13/viper/internal/encoding/ini/map_utils.go deleted file mode 100644 index 8329856b..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/ini/map_utils.go +++ /dev/null @@ -1,74 +0,0 @@ -package ini - -import ( - "strings" - - "github.com/spf13/cast" -) - -// THIS CODE IS COPIED HERE: IT SHOULD NOT BE MODIFIED -// AT SOME POINT IT WILL BE MOVED TO A COMMON PLACE -// deepSearch scans deep maps, following the key indexes listed in the -// sequence "path". -// The last value is expected to be another map, and is returned. -// -// In case intermediate keys do not exist, or map to a non-map value, -// a new map is created and inserted, and the search continues from there: -// the initial map "m" may be modified! -func deepSearch(m map[string]interface{}, path []string) map[string]interface{} { - for _, k := range path { - m2, ok := m[k] - if !ok { - // intermediate key does not exist - // => create it and continue from there - m3 := make(map[string]interface{}) - m[k] = m3 - m = m3 - continue - } - m3, ok := m2.(map[string]interface{}) - if !ok { - // intermediate key is a value - // => replace with a new map - m3 = make(map[string]interface{}) - m[k] = m3 - } - // continue search from here - m = m3 - } - return m -} - -// flattenAndMergeMap recursively flattens the given map into a new map -// Code is based on the function with the same name in tha main package. -// TODO: move it to a common place -func flattenAndMergeMap(shadow map[string]interface{}, m map[string]interface{}, prefix string, delimiter string) map[string]interface{} { - if shadow != nil && prefix != "" && shadow[prefix] != nil { - // prefix is shadowed => nothing more to flatten - return shadow - } - if shadow == nil { - shadow = make(map[string]interface{}) - } - - var m2 map[string]interface{} - if prefix != "" { - prefix += delimiter - } - for k, val := range m { - fullKey := prefix + k - switch val.(type) { - case map[string]interface{}: - m2 = val.(map[string]interface{}) - case map[interface{}]interface{}: - m2 = cast.ToStringMap(val) - default: - // immediate value - shadow[strings.ToLower(fullKey)] = val - continue - } - // recursively merge to shadow map - shadow = flattenAndMergeMap(shadow, m2, fullKey, delimiter) - } - return shadow -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/codec.go deleted file mode 100644 index b8a2251c..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/codec.go +++ /dev/null @@ -1,86 +0,0 @@ -package javaproperties - -import ( - "bytes" - "sort" - "strings" - - "github.com/magiconair/properties" - "github.com/spf13/cast" -) - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for Java properties encoding. -type Codec struct { - KeyDelimiter string - - // Store read properties on the object so that we can write back in order with comments. - // This will only be used if the configuration read is a properties file. - // TODO: drop this feature in v2 - // TODO: make use of the global properties object optional - Properties *properties.Properties -} - -func (c *Codec) Encode(v map[string]interface{}) ([]byte, error) { - if c.Properties == nil { - c.Properties = properties.NewProperties() - } - - flattened := map[string]interface{}{} - - flattened = flattenAndMergeMap(flattened, v, "", c.keyDelimiter()) - - keys := make([]string, 0, len(flattened)) - - for key := range flattened { - keys = append(keys, key) - } - - sort.Strings(keys) - - for _, key := range keys { - _, _, err := c.Properties.Set(key, cast.ToString(flattened[key])) - if err != nil { - return nil, err - } - } - - var buf bytes.Buffer - - _, err := c.Properties.WriteComment(&buf, "#", properties.UTF8) - if err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -func (c *Codec) Decode(b []byte, v map[string]interface{}) error { - var err error - c.Properties, err = properties.Load(b, properties.UTF8) - if err != nil { - return err - } - - for _, key := range c.Properties.Keys() { - // ignore existence check: we know it's there - value, _ := c.Properties.Get(key) - - // recursively build nested maps - path := strings.Split(key, c.keyDelimiter()) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(v, path[0:len(path)-1]) - - // set innermost value - deepestMap[lastKey] = value - } - - return nil -} - -func (c Codec) keyDelimiter() string { - if c.KeyDelimiter == "" { - return "." - } - - return c.KeyDelimiter -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/map_utils.go b/backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/map_utils.go deleted file mode 100644 index 93755cac..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/javaproperties/map_utils.go +++ /dev/null @@ -1,74 +0,0 @@ -package javaproperties - -import ( - "strings" - - "github.com/spf13/cast" -) - -// THIS CODE IS COPIED HERE: IT SHOULD NOT BE MODIFIED -// AT SOME POINT IT WILL BE MOVED TO A COMMON PLACE -// deepSearch scans deep maps, following the key indexes listed in the -// sequence "path". -// The last value is expected to be another map, and is returned. -// -// In case intermediate keys do not exist, or map to a non-map value, -// a new map is created and inserted, and the search continues from there: -// the initial map "m" may be modified! -func deepSearch(m map[string]interface{}, path []string) map[string]interface{} { - for _, k := range path { - m2, ok := m[k] - if !ok { - // intermediate key does not exist - // => create it and continue from there - m3 := make(map[string]interface{}) - m[k] = m3 - m = m3 - continue - } - m3, ok := m2.(map[string]interface{}) - if !ok { - // intermediate key is a value - // => replace with a new map - m3 = make(map[string]interface{}) - m[k] = m3 - } - // continue search from here - m = m3 - } - return m -} - -// flattenAndMergeMap recursively flattens the given map into a new map -// Code is based on the function with the same name in tha main package. -// TODO: move it to a common place -func flattenAndMergeMap(shadow map[string]interface{}, m map[string]interface{}, prefix string, delimiter string) map[string]interface{} { - if shadow != nil && prefix != "" && shadow[prefix] != nil { - // prefix is shadowed => nothing more to flatten - return shadow - } - if shadow == nil { - shadow = make(map[string]interface{}) - } - - var m2 map[string]interface{} - if prefix != "" { - prefix += delimiter - } - for k, val := range m { - fullKey := prefix + k - switch val.(type) { - case map[string]interface{}: - m2 = val.(map[string]interface{}) - case map[interface{}]interface{}: - m2 = cast.ToStringMap(val) - default: - // immediate value - shadow[strings.ToLower(fullKey)] = val - continue - } - // recursively merge to shadow map - shadow = flattenAndMergeMap(shadow, m2, fullKey, delimiter) - } - return shadow -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/json/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/json/codec.go deleted file mode 100644 index 1b7caace..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/json/codec.go +++ /dev/null @@ -1,17 +0,0 @@ -package json - -import ( - "encoding/json" -) - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for JSON encoding. -type Codec struct{} - -func (Codec) Encode(v map[string]interface{}) ([]byte, error) { - // TODO: expose prefix and indent in the Codec as setting? - return json.MarshalIndent(v, "", " ") -} - -func (Codec) Decode(b []byte, v map[string]interface{}) error { - return json.Unmarshal(b, &v) -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/toml/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/toml/codec.go deleted file mode 100644 index a993c599..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/toml/codec.go +++ /dev/null @@ -1,16 +0,0 @@ -package toml - -import ( - "github.com/pelletier/go-toml/v2" -) - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for TOML encoding. -type Codec struct{} - -func (Codec) Encode(v map[string]interface{}) ([]byte, error) { - return toml.Marshal(v) -} - -func (Codec) Decode(b []byte, v map[string]interface{}) error { - return toml.Unmarshal(b, &v) -} diff --git a/backend/vendor/github.com/spf13/viper/internal/encoding/yaml/codec.go b/backend/vendor/github.com/spf13/viper/internal/encoding/yaml/codec.go deleted file mode 100644 index 82dc136a..00000000 --- a/backend/vendor/github.com/spf13/viper/internal/encoding/yaml/codec.go +++ /dev/null @@ -1,14 +0,0 @@ -package yaml - -import "gopkg.in/yaml.v3" - -// Codec implements the encoding.Encoder and encoding.Decoder interfaces for YAML encoding. -type Codec struct{} - -func (Codec) Encode(v map[string]interface{}) ([]byte, error) { - return yaml.Marshal(v) -} - -func (Codec) Decode(b []byte, v map[string]interface{}) error { - return yaml.Unmarshal(b, &v) -} diff --git a/backend/vendor/github.com/spf13/viper/logger.go b/backend/vendor/github.com/spf13/viper/logger.go deleted file mode 100644 index a64e1446..00000000 --- a/backend/vendor/github.com/spf13/viper/logger.go +++ /dev/null @@ -1,77 +0,0 @@ -package viper - -import ( - "fmt" - - jww "github.com/spf13/jwalterweatherman" -) - -// Logger is a unified interface for various logging use cases and practices, including: -// - leveled logging -// - structured logging -type Logger interface { - // Trace logs a Trace event. - // - // Even more fine-grained information than Debug events. - // Loggers not supporting this level should fall back to Debug. - Trace(msg string, keyvals ...interface{}) - - // Debug logs a Debug event. - // - // A verbose series of information events. - // They are useful when debugging the system. - Debug(msg string, keyvals ...interface{}) - - // Info logs an Info event. - // - // General information about what's happening inside the system. - Info(msg string, keyvals ...interface{}) - - // Warn logs a Warn(ing) event. - // - // Non-critical events that should be looked at. - Warn(msg string, keyvals ...interface{}) - - // Error logs an Error event. - // - // Critical events that require immediate attention. - // Loggers commonly provide Fatal and Panic levels above Error level, - // but exiting and panicing is out of scope for a logging library. - Error(msg string, keyvals ...interface{}) -} - -type jwwLogger struct{} - -func (jwwLogger) Trace(msg string, keyvals ...interface{}) { - jww.TRACE.Printf(jwwLogMessage(msg, keyvals...)) -} - -func (jwwLogger) Debug(msg string, keyvals ...interface{}) { - jww.DEBUG.Printf(jwwLogMessage(msg, keyvals...)) -} - -func (jwwLogger) Info(msg string, keyvals ...interface{}) { - jww.INFO.Printf(jwwLogMessage(msg, keyvals...)) -} - -func (jwwLogger) Warn(msg string, keyvals ...interface{}) { - jww.WARN.Printf(jwwLogMessage(msg, keyvals...)) -} - -func (jwwLogger) Error(msg string, keyvals ...interface{}) { - jww.ERROR.Printf(jwwLogMessage(msg, keyvals...)) -} - -func jwwLogMessage(msg string, keyvals ...interface{}) string { - out := msg - - if len(keyvals) > 0 && len(keyvals)%2 == 1 { - keyvals = append(keyvals, nil) - } - - for i := 0; i <= len(keyvals)-2; i += 2 { - out = fmt.Sprintf("%s %v=%v", out, keyvals[i], keyvals[i+1]) - } - - return out -} diff --git a/backend/vendor/github.com/spf13/viper/util.go b/backend/vendor/github.com/spf13/viper/util.go deleted file mode 100644 index 95009a14..00000000 --- a/backend/vendor/github.com/spf13/viper/util.go +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -// Viper is a application configuration system. -// It believes that applications can be configured a variety of ways -// via flags, ENVIRONMENT variables, configuration files retrieved -// from the file system, or a remote key/value store. - -package viper - -import ( - "fmt" - "os" - "path/filepath" - "runtime" - "strings" - "unicode" - - "github.com/spf13/cast" -) - -// ConfigParseError denotes failing to parse configuration file. -type ConfigParseError struct { - err error -} - -// Error returns the formatted configuration error. -func (pe ConfigParseError) Error() string { - return fmt.Sprintf("While parsing config: %s", pe.err.Error()) -} - -// Unwrap returns the wrapped error. -func (pe ConfigParseError) Unwrap() error { - return pe.err -} - -// toCaseInsensitiveValue checks if the value is a map; -// if so, create a copy and lower-case the keys recursively. -func toCaseInsensitiveValue(value interface{}) interface{} { - switch v := value.(type) { - case map[interface{}]interface{}: - value = copyAndInsensitiviseMap(cast.ToStringMap(v)) - case map[string]interface{}: - value = copyAndInsensitiviseMap(v) - } - - return value -} - -// copyAndInsensitiviseMap behaves like insensitiviseMap, but creates a copy of -// any map it makes case insensitive. -func copyAndInsensitiviseMap(m map[string]interface{}) map[string]interface{} { - nm := make(map[string]interface{}) - - for key, val := range m { - lkey := strings.ToLower(key) - switch v := val.(type) { - case map[interface{}]interface{}: - nm[lkey] = copyAndInsensitiviseMap(cast.ToStringMap(v)) - case map[string]interface{}: - nm[lkey] = copyAndInsensitiviseMap(v) - default: - nm[lkey] = v - } - } - - return nm -} - -func insensitiviseVal(val interface{}) interface{} { - switch val.(type) { - case map[interface{}]interface{}: - // nested map: cast and recursively insensitivise - val = cast.ToStringMap(val) - insensitiviseMap(val.(map[string]interface{})) - case map[string]interface{}: - // nested map: recursively insensitivise - insensitiviseMap(val.(map[string]interface{})) - case []interface{}: - // nested array: recursively insensitivise - insensitiveArray(val.([]interface{})) - } - return val -} - -func insensitiviseMap(m map[string]interface{}) { - for key, val := range m { - val = insensitiviseVal(val) - lower := strings.ToLower(key) - if key != lower { - // remove old key (not lower-cased) - delete(m, key) - } - // update map - m[lower] = val - } -} - -func insensitiveArray(a []interface{}) { - for i, val := range a { - a[i] = insensitiviseVal(val) - } -} - -func absPathify(logger Logger, inPath string) string { - logger.Info("trying to resolve absolute path", "path", inPath) - - if inPath == "$HOME" || strings.HasPrefix(inPath, "$HOME"+string(os.PathSeparator)) { - inPath = userHomeDir() + inPath[5:] - } - - inPath = os.ExpandEnv(inPath) - - if filepath.IsAbs(inPath) { - return filepath.Clean(inPath) - } - - p, err := filepath.Abs(inPath) - if err == nil { - return filepath.Clean(p) - } - - logger.Error(fmt.Errorf("could not discover absolute path: %w", err).Error()) - - return "" -} - -func stringInSlice(a string, list []string) bool { - for _, b := range list { - if b == a { - return true - } - } - return false -} - -func userHomeDir() string { - if runtime.GOOS == "windows" { - home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") - if home == "" { - home = os.Getenv("USERPROFILE") - } - return home - } - return os.Getenv("HOME") -} - -func safeMul(a, b uint) uint { - c := a * b - if a > 1 && b > 1 && c/b != a { - return 0 - } - return c -} - -// parseSizeInBytes converts strings like 1GB or 12 mb into an unsigned integer number of bytes -func parseSizeInBytes(sizeStr string) uint { - sizeStr = strings.TrimSpace(sizeStr) - lastChar := len(sizeStr) - 1 - multiplier := uint(1) - - if lastChar > 0 { - if sizeStr[lastChar] == 'b' || sizeStr[lastChar] == 'B' { - if lastChar > 1 { - switch unicode.ToLower(rune(sizeStr[lastChar-1])) { - case 'k': - multiplier = 1 << 10 - sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) - case 'm': - multiplier = 1 << 20 - sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) - case 'g': - multiplier = 1 << 30 - sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) - default: - multiplier = 1 - sizeStr = strings.TrimSpace(sizeStr[:lastChar]) - } - } - } - } - - size := cast.ToInt(sizeStr) - if size < 0 { - size = 0 - } - - return safeMul(uint(size), multiplier) -} - -// deepSearch scans deep maps, following the key indexes listed in the -// sequence "path". -// The last value is expected to be another map, and is returned. -// -// In case intermediate keys do not exist, or map to a non-map value, -// a new map is created and inserted, and the search continues from there: -// the initial map "m" may be modified! -func deepSearch(m map[string]interface{}, path []string) map[string]interface{} { - for _, k := range path { - m2, ok := m[k] - if !ok { - // intermediate key does not exist - // => create it and continue from there - m3 := make(map[string]interface{}) - m[k] = m3 - m = m3 - continue - } - m3, ok := m2.(map[string]interface{}) - if !ok { - // intermediate key is a value - // => replace with a new map - m3 = make(map[string]interface{}) - m[k] = m3 - } - // continue search from here - m = m3 - } - return m -} diff --git a/backend/vendor/github.com/spf13/viper/viper.go b/backend/vendor/github.com/spf13/viper/viper.go deleted file mode 100644 index 7fb1e191..00000000 --- a/backend/vendor/github.com/spf13/viper/viper.go +++ /dev/null @@ -1,2201 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -// Viper is an application configuration system. -// It believes that applications can be configured a variety of ways -// via flags, ENVIRONMENT variables, configuration files retrieved -// from the file system, or a remote key/value store. - -// Each item takes precedence over the item below it: - -// overrides -// flag -// env -// config -// key/value store -// default - -package viper - -import ( - "bytes" - "encoding/csv" - "errors" - "fmt" - "io" - "os" - "path/filepath" - "reflect" - "strconv" - "strings" - "sync" - "time" - - "github.com/fsnotify/fsnotify" - "github.com/mitchellh/mapstructure" - "github.com/spf13/afero" - "github.com/spf13/cast" - "github.com/spf13/pflag" - - "github.com/spf13/viper/internal/encoding" - "github.com/spf13/viper/internal/encoding/dotenv" - "github.com/spf13/viper/internal/encoding/hcl" - "github.com/spf13/viper/internal/encoding/ini" - "github.com/spf13/viper/internal/encoding/javaproperties" - "github.com/spf13/viper/internal/encoding/json" - "github.com/spf13/viper/internal/encoding/toml" - "github.com/spf13/viper/internal/encoding/yaml" -) - -// ConfigMarshalError happens when failing to marshal the configuration. -type ConfigMarshalError struct { - err error -} - -// Error returns the formatted configuration error. -func (e ConfigMarshalError) Error() string { - return fmt.Sprintf("While marshaling config: %s", e.err.Error()) -} - -var v *Viper - -type RemoteResponse struct { - Value []byte - Error error -} - -func init() { - v = New() -} - -type remoteConfigFactory interface { - Get(rp RemoteProvider) (io.Reader, error) - Watch(rp RemoteProvider) (io.Reader, error) - WatchChannel(rp RemoteProvider) (<-chan *RemoteResponse, chan bool) -} - -// RemoteConfig is optional, see the remote package -var RemoteConfig remoteConfigFactory - -// UnsupportedConfigError denotes encountering an unsupported -// configuration filetype. -type UnsupportedConfigError string - -// Error returns the formatted configuration error. -func (str UnsupportedConfigError) Error() string { - return fmt.Sprintf("Unsupported Config Type %q", string(str)) -} - -// UnsupportedRemoteProviderError denotes encountering an unsupported remote -// provider. Currently only etcd and Consul are supported. -type UnsupportedRemoteProviderError string - -// Error returns the formatted remote provider error. -func (str UnsupportedRemoteProviderError) Error() string { - return fmt.Sprintf("Unsupported Remote Provider Type %q", string(str)) -} - -// RemoteConfigError denotes encountering an error while trying to -// pull the configuration from the remote provider. -type RemoteConfigError string - -// Error returns the formatted remote provider error -func (rce RemoteConfigError) Error() string { - return fmt.Sprintf("Remote Configurations Error: %s", string(rce)) -} - -// ConfigFileNotFoundError denotes failing to find configuration file. -type ConfigFileNotFoundError struct { - name, locations string -} - -// Error returns the formatted configuration error. -func (fnfe ConfigFileNotFoundError) Error() string { - return fmt.Sprintf("Config File %q Not Found in %q", fnfe.name, fnfe.locations) -} - -// ConfigFileAlreadyExistsError denotes failure to write new configuration file. -type ConfigFileAlreadyExistsError string - -// Error returns the formatted error when configuration already exists. -func (faee ConfigFileAlreadyExistsError) Error() string { - return fmt.Sprintf("Config File %q Already Exists", string(faee)) -} - -// A DecoderConfigOption can be passed to viper.Unmarshal to configure -// mapstructure.DecoderConfig options -type DecoderConfigOption func(*mapstructure.DecoderConfig) - -// DecodeHook returns a DecoderConfigOption which overrides the default -// DecoderConfig.DecodeHook value, the default is: -// -// mapstructure.ComposeDecodeHookFunc( -// mapstructure.StringToTimeDurationHookFunc(), -// mapstructure.StringToSliceHookFunc(","), -// ) -func DecodeHook(hook mapstructure.DecodeHookFunc) DecoderConfigOption { - return func(c *mapstructure.DecoderConfig) { - c.DecodeHook = hook - } -} - -// Viper is a prioritized configuration registry. It -// maintains a set of configuration sources, fetches -// values to populate those, and provides them according -// to the source's priority. -// The priority of the sources is the following: -// 1. overrides -// 2. flags -// 3. env. variables -// 4. config file -// 5. key/value store -// 6. defaults -// -// For example, if values from the following sources were loaded: -// -// Defaults : { -// "secret": "", -// "user": "default", -// "endpoint": "https://localhost" -// } -// Config : { -// "user": "root" -// "secret": "defaultsecret" -// } -// Env : { -// "secret": "somesecretkey" -// } -// -// The resulting config will have the following values: -// -// { -// "secret": "somesecretkey", -// "user": "root", -// "endpoint": "https://localhost" -// } -// -// Note: Vipers are not safe for concurrent Get() and Set() operations. -type Viper struct { - // Delimiter that separates a list of keys - // used to access a nested value in one go - keyDelim string - - // A set of paths to look for the config file in - configPaths []string - - // The filesystem to read config from. - fs afero.Fs - - // A set of remote providers to search for the configuration - remoteProviders []*defaultRemoteProvider - - // Name of file to look for inside the path - configName string - configFile string - configType string - configPermissions os.FileMode - envPrefix string - - // Specific commands for ini parsing - iniLoadOptions ini.LoadOptions - - automaticEnvApplied bool - envKeyReplacer StringReplacer - allowEmptyEnv bool - - parents []string - config map[string]interface{} - override map[string]interface{} - defaults map[string]interface{} - kvstore map[string]interface{} - pflags map[string]FlagValue - env map[string][]string - aliases map[string]string - typeByDefValue bool - - onConfigChange func(fsnotify.Event) - - logger Logger - - // TODO: should probably be protected with a mutex - encoderRegistry *encoding.EncoderRegistry - decoderRegistry *encoding.DecoderRegistry -} - -// New returns an initialized Viper instance. -func New() *Viper { - v := new(Viper) - v.keyDelim = "." - v.configName = "config" - v.configPermissions = os.FileMode(0o644) - v.fs = afero.NewOsFs() - v.config = make(map[string]interface{}) - v.parents = []string{} - v.override = make(map[string]interface{}) - v.defaults = make(map[string]interface{}) - v.kvstore = make(map[string]interface{}) - v.pflags = make(map[string]FlagValue) - v.env = make(map[string][]string) - v.aliases = make(map[string]string) - v.typeByDefValue = false - v.logger = jwwLogger{} - - v.resetEncoding() - - return v -} - -// Option configures Viper using the functional options paradigm popularized by Rob Pike and Dave Cheney. -// If you're unfamiliar with this style, -// see https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html and -// https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis. -type Option interface { - apply(v *Viper) -} - -type optionFunc func(v *Viper) - -func (fn optionFunc) apply(v *Viper) { - fn(v) -} - -// KeyDelimiter sets the delimiter used for determining key parts. -// By default it's value is ".". -func KeyDelimiter(d string) Option { - return optionFunc(func(v *Viper) { - v.keyDelim = d - }) -} - -// StringReplacer applies a set of replacements to a string. -type StringReplacer interface { - // Replace returns a copy of s with all replacements performed. - Replace(s string) string -} - -// EnvKeyReplacer sets a replacer used for mapping environment variables to internal keys. -func EnvKeyReplacer(r StringReplacer) Option { - return optionFunc(func(v *Viper) { - v.envKeyReplacer = r - }) -} - -// NewWithOptions creates a new Viper instance. -func NewWithOptions(opts ...Option) *Viper { - v := New() - - for _, opt := range opts { - opt.apply(v) - } - - v.resetEncoding() - - return v -} - -// Reset is intended for testing, will reset all to default settings. -// In the public interface for the viper package so applications -// can use it in their testing as well. -func Reset() { - v = New() - SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl", "tfvars", "dotenv", "env", "ini"} - SupportedRemoteProviders = []string{"etcd", "etcd3", "consul", "firestore"} -} - -// TODO: make this lazy initialization instead -func (v *Viper) resetEncoding() { - encoderRegistry := encoding.NewEncoderRegistry() - decoderRegistry := encoding.NewDecoderRegistry() - - { - codec := yaml.Codec{} - - encoderRegistry.RegisterEncoder("yaml", codec) - decoderRegistry.RegisterDecoder("yaml", codec) - - encoderRegistry.RegisterEncoder("yml", codec) - decoderRegistry.RegisterDecoder("yml", codec) - } - - { - codec := json.Codec{} - - encoderRegistry.RegisterEncoder("json", codec) - decoderRegistry.RegisterDecoder("json", codec) - } - - { - codec := toml.Codec{} - - encoderRegistry.RegisterEncoder("toml", codec) - decoderRegistry.RegisterDecoder("toml", codec) - } - - { - codec := hcl.Codec{} - - encoderRegistry.RegisterEncoder("hcl", codec) - decoderRegistry.RegisterDecoder("hcl", codec) - - encoderRegistry.RegisterEncoder("tfvars", codec) - decoderRegistry.RegisterDecoder("tfvars", codec) - } - - { - codec := ini.Codec{ - KeyDelimiter: v.keyDelim, - LoadOptions: v.iniLoadOptions, - } - - encoderRegistry.RegisterEncoder("ini", codec) - decoderRegistry.RegisterDecoder("ini", codec) - } - - { - codec := &javaproperties.Codec{ - KeyDelimiter: v.keyDelim, - } - - encoderRegistry.RegisterEncoder("properties", codec) - decoderRegistry.RegisterDecoder("properties", codec) - - encoderRegistry.RegisterEncoder("props", codec) - decoderRegistry.RegisterDecoder("props", codec) - - encoderRegistry.RegisterEncoder("prop", codec) - decoderRegistry.RegisterDecoder("prop", codec) - } - - { - codec := &dotenv.Codec{} - - encoderRegistry.RegisterEncoder("dotenv", codec) - decoderRegistry.RegisterDecoder("dotenv", codec) - - encoderRegistry.RegisterEncoder("env", codec) - decoderRegistry.RegisterDecoder("env", codec) - } - - v.encoderRegistry = encoderRegistry - v.decoderRegistry = decoderRegistry -} - -type defaultRemoteProvider struct { - provider string - endpoint string - path string - secretKeyring string -} - -func (rp defaultRemoteProvider) Provider() string { - return rp.provider -} - -func (rp defaultRemoteProvider) Endpoint() string { - return rp.endpoint -} - -func (rp defaultRemoteProvider) Path() string { - return rp.path -} - -func (rp defaultRemoteProvider) SecretKeyring() string { - return rp.secretKeyring -} - -// RemoteProvider stores the configuration necessary -// to connect to a remote key/value store. -// Optional secretKeyring to unencrypt encrypted values -// can be provided. -type RemoteProvider interface { - Provider() string - Endpoint() string - Path() string - SecretKeyring() string -} - -// SupportedExts are universally supported extensions. -var SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl", "tfvars", "dotenv", "env", "ini"} - -// SupportedRemoteProviders are universally supported remote providers. -var SupportedRemoteProviders = []string{"etcd", "etcd3", "consul", "firestore"} - -// OnConfigChange sets the event handler that is called when a config file changes. -func OnConfigChange(run func(in fsnotify.Event)) { v.OnConfigChange(run) } - -// OnConfigChange sets the event handler that is called when a config file changes. -func (v *Viper) OnConfigChange(run func(in fsnotify.Event)) { - v.onConfigChange = run -} - -// WatchConfig starts watching a config file for changes. -func WatchConfig() { v.WatchConfig() } - -// WatchConfig starts watching a config file for changes. -func (v *Viper) WatchConfig() { - initWG := sync.WaitGroup{} - initWG.Add(1) - go func() { - watcher, err := newWatcher() - if err != nil { - v.logger.Error(fmt.Sprintf("failed to create watcher: %s", err)) - os.Exit(1) - } - defer watcher.Close() - // we have to watch the entire directory to pick up renames/atomic saves in a cross-platform way - filename, err := v.getConfigFile() - if err != nil { - v.logger.Error(fmt.Sprintf("get config file: %s", err)) - initWG.Done() - return - } - - configFile := filepath.Clean(filename) - configDir, _ := filepath.Split(configFile) - realConfigFile, _ := filepath.EvalSymlinks(filename) - - eventsWG := sync.WaitGroup{} - eventsWG.Add(1) - go func() { - for { - select { - case event, ok := <-watcher.Events: - if !ok { // 'Events' channel is closed - eventsWG.Done() - return - } - currentConfigFile, _ := filepath.EvalSymlinks(filename) - // we only care about the config file with the following cases: - // 1 - if the config file was modified or created - // 2 - if the real path to the config file changed (eg: k8s ConfigMap replacement) - if (filepath.Clean(event.Name) == configFile && - (event.Has(fsnotify.Write) || event.Has(fsnotify.Create))) || - (currentConfigFile != "" && currentConfigFile != realConfigFile) { - realConfigFile = currentConfigFile - err := v.ReadInConfig() - if err != nil { - v.logger.Error(fmt.Sprintf("read config file: %s", err)) - } - if v.onConfigChange != nil { - v.onConfigChange(event) - } - } else if filepath.Clean(event.Name) == configFile && event.Has(fsnotify.Remove) { - eventsWG.Done() - return - } - - case err, ok := <-watcher.Errors: - if ok { // 'Errors' channel is not closed - v.logger.Error(fmt.Sprintf("watcher error: %s", err)) - } - eventsWG.Done() - return - } - } - }() - watcher.Add(configDir) - initWG.Done() // done initializing the watch in this go routine, so the parent routine can move on... - eventsWG.Wait() // now, wait for event loop to end in this go-routine... - }() - initWG.Wait() // make sure that the go routine above fully ended before returning -} - -// SetConfigFile explicitly defines the path, name and extension of the config file. -// Viper will use this and not check any of the config paths. -func SetConfigFile(in string) { v.SetConfigFile(in) } - -func (v *Viper) SetConfigFile(in string) { - if in != "" { - v.configFile = in - } -} - -// SetEnvPrefix defines a prefix that ENVIRONMENT variables will use. -// E.g. if your prefix is "spf", the env registry will look for env -// variables that start with "SPF_". -func SetEnvPrefix(in string) { v.SetEnvPrefix(in) } - -func (v *Viper) SetEnvPrefix(in string) { - if in != "" { - v.envPrefix = in - } -} - -func (v *Viper) mergeWithEnvPrefix(in string) string { - if v.envPrefix != "" { - return strings.ToUpper(v.envPrefix + "_" + in) - } - - return strings.ToUpper(in) -} - -// AllowEmptyEnv tells Viper to consider set, -// but empty environment variables as valid values instead of falling back. -// For backward compatibility reasons this is false by default. -func AllowEmptyEnv(allowEmptyEnv bool) { v.AllowEmptyEnv(allowEmptyEnv) } - -func (v *Viper) AllowEmptyEnv(allowEmptyEnv bool) { - v.allowEmptyEnv = allowEmptyEnv -} - -// TODO: should getEnv logic be moved into find(). Can generalize the use of -// rewriting keys many things, Ex: Get('someKey') -> some_key -// (camel case to snake case for JSON keys perhaps) - -// getEnv is a wrapper around os.Getenv which replaces characters in the original -// key. This allows env vars which have different keys than the config object -// keys. -func (v *Viper) getEnv(key string) (string, bool) { - if v.envKeyReplacer != nil { - key = v.envKeyReplacer.Replace(key) - } - - val, ok := os.LookupEnv(key) - - return val, ok && (v.allowEmptyEnv || val != "") -} - -// ConfigFileUsed returns the file used to populate the config registry. -func ConfigFileUsed() string { return v.ConfigFileUsed() } -func (v *Viper) ConfigFileUsed() string { return v.configFile } - -// AddConfigPath adds a path for Viper to search for the config file in. -// Can be called multiple times to define multiple search paths. -func AddConfigPath(in string) { v.AddConfigPath(in) } - -func (v *Viper) AddConfigPath(in string) { - if in != "" { - absin := absPathify(v.logger, in) - - v.logger.Info("adding path to search paths", "path", absin) - if !stringInSlice(absin, v.configPaths) { - v.configPaths = append(v.configPaths, absin) - } - } -} - -// AddRemoteProvider adds a remote configuration source. -// Remote Providers are searched in the order they are added. -// provider is a string value: "etcd", "etcd3", "consul" or "firestore" are currently supported. -// endpoint is the url. etcd requires http://ip:port consul requires ip:port -// path is the path in the k/v store to retrieve configuration -// To retrieve a config file called myapp.json from /configs/myapp.json -// you should set path to /configs and set config name (SetConfigName()) to -// "myapp" -func AddRemoteProvider(provider, endpoint, path string) error { - return v.AddRemoteProvider(provider, endpoint, path) -} - -func (v *Viper) AddRemoteProvider(provider, endpoint, path string) error { - if !stringInSlice(provider, SupportedRemoteProviders) { - return UnsupportedRemoteProviderError(provider) - } - if provider != "" && endpoint != "" { - v.logger.Info("adding remote provider", "provider", provider, "endpoint", endpoint) - - rp := &defaultRemoteProvider{ - endpoint: endpoint, - provider: provider, - path: path, - } - if !v.providerPathExists(rp) { - v.remoteProviders = append(v.remoteProviders, rp) - } - } - return nil -} - -// AddSecureRemoteProvider adds a remote configuration source. -// Secure Remote Providers are searched in the order they are added. -// provider is a string value: "etcd", "etcd3", "consul" or "firestore" are currently supported. -// endpoint is the url. etcd requires http://ip:port consul requires ip:port -// secretkeyring is the filepath to your openpgp secret keyring. e.g. /etc/secrets/myring.gpg -// path is the path in the k/v store to retrieve configuration -// To retrieve a config file called myapp.json from /configs/myapp.json -// you should set path to /configs and set config name (SetConfigName()) to -// "myapp" -// Secure Remote Providers are implemented with github.com/bketelsen/crypt -func AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { - return v.AddSecureRemoteProvider(provider, endpoint, path, secretkeyring) -} - -func (v *Viper) AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { - if !stringInSlice(provider, SupportedRemoteProviders) { - return UnsupportedRemoteProviderError(provider) - } - if provider != "" && endpoint != "" { - v.logger.Info("adding remote provider", "provider", provider, "endpoint", endpoint) - - rp := &defaultRemoteProvider{ - endpoint: endpoint, - provider: provider, - path: path, - secretKeyring: secretkeyring, - } - if !v.providerPathExists(rp) { - v.remoteProviders = append(v.remoteProviders, rp) - } - } - return nil -} - -func (v *Viper) providerPathExists(p *defaultRemoteProvider) bool { - for _, y := range v.remoteProviders { - if reflect.DeepEqual(y, p) { - return true - } - } - return false -} - -// searchMap recursively searches for a value for path in source map. -// Returns nil if not found. -// Note: This assumes that the path entries and map keys are lower cased. -func (v *Viper) searchMap(source map[string]interface{}, path []string) interface{} { - if len(path) == 0 { - return source - } - - next, ok := source[path[0]] - if ok { - // Fast path - if len(path) == 1 { - return next - } - - // Nested case - switch next.(type) { - case map[interface{}]interface{}: - return v.searchMap(cast.ToStringMap(next), path[1:]) - case map[string]interface{}: - // Type assertion is safe here since it is only reached - // if the type of `next` is the same as the type being asserted - return v.searchMap(next.(map[string]interface{}), path[1:]) - default: - // got a value but nested key expected, return "nil" for not found - return nil - } - } - return nil -} - -// searchIndexableWithPathPrefixes recursively searches for a value for path in source map/slice. -// -// While searchMap() considers each path element as a single map key or slice index, this -// function searches for, and prioritizes, merged path elements. -// e.g., if in the source, "foo" is defined with a sub-key "bar", and "foo.bar" -// is also defined, this latter value is returned for path ["foo", "bar"]. -// -// This should be useful only at config level (other maps may not contain dots -// in their keys). -// -// Note: This assumes that the path entries and map keys are lower cased. -func (v *Viper) searchIndexableWithPathPrefixes(source interface{}, path []string) interface{} { - if len(path) == 0 { - return source - } - - // search for path prefixes, starting from the longest one - for i := len(path); i > 0; i-- { - prefixKey := strings.ToLower(strings.Join(path[0:i], v.keyDelim)) - - var val interface{} - switch sourceIndexable := source.(type) { - case []interface{}: - val = v.searchSliceWithPathPrefixes(sourceIndexable, prefixKey, i, path) - case map[string]interface{}: - val = v.searchMapWithPathPrefixes(sourceIndexable, prefixKey, i, path) - } - if val != nil { - return val - } - } - - // not found - return nil -} - -// searchSliceWithPathPrefixes searches for a value for path in sourceSlice -// -// This function is part of the searchIndexableWithPathPrefixes recurring search and -// should not be called directly from functions other than searchIndexableWithPathPrefixes. -func (v *Viper) searchSliceWithPathPrefixes( - sourceSlice []interface{}, - prefixKey string, - pathIndex int, - path []string, -) interface{} { - // if the prefixKey is not a number or it is out of bounds of the slice - index, err := strconv.Atoi(prefixKey) - if err != nil || len(sourceSlice) <= index { - return nil - } - - next := sourceSlice[index] - - // Fast path - if pathIndex == len(path) { - return next - } - - switch n := next.(type) { - case map[interface{}]interface{}: - return v.searchIndexableWithPathPrefixes(cast.ToStringMap(n), path[pathIndex:]) - case map[string]interface{}, []interface{}: - return v.searchIndexableWithPathPrefixes(n, path[pathIndex:]) - default: - // got a value but nested key expected, do nothing and look for next prefix - } - - // not found - return nil -} - -// searchMapWithPathPrefixes searches for a value for path in sourceMap -// -// This function is part of the searchIndexableWithPathPrefixes recurring search and -// should not be called directly from functions other than searchIndexableWithPathPrefixes. -func (v *Viper) searchMapWithPathPrefixes( - sourceMap map[string]interface{}, - prefixKey string, - pathIndex int, - path []string, -) interface{} { - next, ok := sourceMap[prefixKey] - if !ok { - return nil - } - - // Fast path - if pathIndex == len(path) { - return next - } - - // Nested case - switch n := next.(type) { - case map[interface{}]interface{}: - return v.searchIndexableWithPathPrefixes(cast.ToStringMap(n), path[pathIndex:]) - case map[string]interface{}, []interface{}: - return v.searchIndexableWithPathPrefixes(n, path[pathIndex:]) - default: - // got a value but nested key expected, do nothing and look for next prefix - } - - // not found - return nil -} - -// isPathShadowedInDeepMap makes sure the given path is not shadowed somewhere -// on its path in the map. -// e.g., if "foo.bar" has a value in the given map, it “shadows” -// -// "foo.bar.baz" in a lower-priority map -func (v *Viper) isPathShadowedInDeepMap(path []string, m map[string]interface{}) string { - var parentVal interface{} - for i := 1; i < len(path); i++ { - parentVal = v.searchMap(m, path[0:i]) - if parentVal == nil { - // not found, no need to add more path elements - return "" - } - switch parentVal.(type) { - case map[interface{}]interface{}: - continue - case map[string]interface{}: - continue - default: - // parentVal is a regular value which shadows "path" - return strings.Join(path[0:i], v.keyDelim) - } - } - return "" -} - -// isPathShadowedInFlatMap makes sure the given path is not shadowed somewhere -// in a sub-path of the map. -// e.g., if "foo.bar" has a value in the given map, it “shadows” -// -// "foo.bar.baz" in a lower-priority map -func (v *Viper) isPathShadowedInFlatMap(path []string, mi interface{}) string { - // unify input map - var m map[string]interface{} - switch mi.(type) { - case map[string]string, map[string]FlagValue: - m = cast.ToStringMap(mi) - default: - return "" - } - - // scan paths - var parentKey string - for i := 1; i < len(path); i++ { - parentKey = strings.Join(path[0:i], v.keyDelim) - if _, ok := m[parentKey]; ok { - return parentKey - } - } - return "" -} - -// isPathShadowedInAutoEnv makes sure the given path is not shadowed somewhere -// in the environment, when automatic env is on. -// e.g., if "foo.bar" has a value in the environment, it “shadows” -// -// "foo.bar.baz" in a lower-priority map -func (v *Viper) isPathShadowedInAutoEnv(path []string) string { - var parentKey string - for i := 1; i < len(path); i++ { - parentKey = strings.Join(path[0:i], v.keyDelim) - if _, ok := v.getEnv(v.mergeWithEnvPrefix(parentKey)); ok { - return parentKey - } - } - return "" -} - -// SetTypeByDefaultValue enables or disables the inference of a key value's -// type when the Get function is used based upon a key's default value as -// opposed to the value returned based on the normal fetch logic. -// -// For example, if a key has a default value of []string{} and the same key -// is set via an environment variable to "a b c", a call to the Get function -// would return a string slice for the key if the key's type is inferred by -// the default value and the Get function would return: -// -// []string {"a", "b", "c"} -// -// Otherwise the Get function would return: -// -// "a b c" -func SetTypeByDefaultValue(enable bool) { v.SetTypeByDefaultValue(enable) } - -func (v *Viper) SetTypeByDefaultValue(enable bool) { - v.typeByDefValue = enable -} - -// GetViper gets the global Viper instance. -func GetViper() *Viper { - return v -} - -// Get can retrieve any value given the key to use. -// Get is case-insensitive for a key. -// Get has the behavior of returning the value associated with the first -// place from where it is set. Viper will check in the following order: -// override, flag, env, config file, key/value store, default -// -// Get returns an interface. For a specific value use one of the Get____ methods. -func Get(key string) interface{} { return v.Get(key) } - -func (v *Viper) Get(key string) interface{} { - lcaseKey := strings.ToLower(key) - val := v.find(lcaseKey, true) - if val == nil { - return nil - } - - if v.typeByDefValue { - // TODO(bep) this branch isn't covered by a single test. - valType := val - path := strings.Split(lcaseKey, v.keyDelim) - defVal := v.searchMap(v.defaults, path) - if defVal != nil { - valType = defVal - } - - switch valType.(type) { - case bool: - return cast.ToBool(val) - case string: - return cast.ToString(val) - case int32, int16, int8, int: - return cast.ToInt(val) - case uint: - return cast.ToUint(val) - case uint32: - return cast.ToUint32(val) - case uint64: - return cast.ToUint64(val) - case int64: - return cast.ToInt64(val) - case float64, float32: - return cast.ToFloat64(val) - case time.Time: - return cast.ToTime(val) - case time.Duration: - return cast.ToDuration(val) - case []string: - return cast.ToStringSlice(val) - case []int: - return cast.ToIntSlice(val) - case []time.Duration: - return cast.ToDurationSlice(val) - } - } - - return val -} - -// Sub returns new Viper instance representing a sub tree of this instance. -// Sub is case-insensitive for a key. -func Sub(key string) *Viper { return v.Sub(key) } - -func (v *Viper) Sub(key string) *Viper { - subv := New() - data := v.Get(key) - if data == nil { - return nil - } - - if reflect.TypeOf(data).Kind() == reflect.Map { - subv.parents = append(v.parents, strings.ToLower(key)) - subv.automaticEnvApplied = v.automaticEnvApplied - subv.envPrefix = v.envPrefix - subv.envKeyReplacer = v.envKeyReplacer - subv.config = cast.ToStringMap(data) - return subv - } - return nil -} - -// GetString returns the value associated with the key as a string. -func GetString(key string) string { return v.GetString(key) } - -func (v *Viper) GetString(key string) string { - return cast.ToString(v.Get(key)) -} - -// GetBool returns the value associated with the key as a boolean. -func GetBool(key string) bool { return v.GetBool(key) } - -func (v *Viper) GetBool(key string) bool { - return cast.ToBool(v.Get(key)) -} - -// GetInt returns the value associated with the key as an integer. -func GetInt(key string) int { return v.GetInt(key) } - -func (v *Viper) GetInt(key string) int { - return cast.ToInt(v.Get(key)) -} - -// GetInt32 returns the value associated with the key as an integer. -func GetInt32(key string) int32 { return v.GetInt32(key) } - -func (v *Viper) GetInt32(key string) int32 { - return cast.ToInt32(v.Get(key)) -} - -// GetInt64 returns the value associated with the key as an integer. -func GetInt64(key string) int64 { return v.GetInt64(key) } - -func (v *Viper) GetInt64(key string) int64 { - return cast.ToInt64(v.Get(key)) -} - -// GetUint returns the value associated with the key as an unsigned integer. -func GetUint(key string) uint { return v.GetUint(key) } - -func (v *Viper) GetUint(key string) uint { - return cast.ToUint(v.Get(key)) -} - -// GetUint16 returns the value associated with the key as an unsigned integer. -func GetUint16(key string) uint16 { return v.GetUint16(key) } - -func (v *Viper) GetUint16(key string) uint16 { - return cast.ToUint16(v.Get(key)) -} - -// GetUint32 returns the value associated with the key as an unsigned integer. -func GetUint32(key string) uint32 { return v.GetUint32(key) } - -func (v *Viper) GetUint32(key string) uint32 { - return cast.ToUint32(v.Get(key)) -} - -// GetUint64 returns the value associated with the key as an unsigned integer. -func GetUint64(key string) uint64 { return v.GetUint64(key) } - -func (v *Viper) GetUint64(key string) uint64 { - return cast.ToUint64(v.Get(key)) -} - -// GetFloat64 returns the value associated with the key as a float64. -func GetFloat64(key string) float64 { return v.GetFloat64(key) } - -func (v *Viper) GetFloat64(key string) float64 { - return cast.ToFloat64(v.Get(key)) -} - -// GetTime returns the value associated with the key as time. -func GetTime(key string) time.Time { return v.GetTime(key) } - -func (v *Viper) GetTime(key string) time.Time { - return cast.ToTime(v.Get(key)) -} - -// GetDuration returns the value associated with the key as a duration. -func GetDuration(key string) time.Duration { return v.GetDuration(key) } - -func (v *Viper) GetDuration(key string) time.Duration { - return cast.ToDuration(v.Get(key)) -} - -// GetIntSlice returns the value associated with the key as a slice of int values. -func GetIntSlice(key string) []int { return v.GetIntSlice(key) } - -func (v *Viper) GetIntSlice(key string) []int { - return cast.ToIntSlice(v.Get(key)) -} - -// GetStringSlice returns the value associated with the key as a slice of strings. -func GetStringSlice(key string) []string { return v.GetStringSlice(key) } - -func (v *Viper) GetStringSlice(key string) []string { - return cast.ToStringSlice(v.Get(key)) -} - -// GetStringMap returns the value associated with the key as a map of interfaces. -func GetStringMap(key string) map[string]interface{} { return v.GetStringMap(key) } - -func (v *Viper) GetStringMap(key string) map[string]interface{} { - return cast.ToStringMap(v.Get(key)) -} - -// GetStringMapString returns the value associated with the key as a map of strings. -func GetStringMapString(key string) map[string]string { return v.GetStringMapString(key) } - -func (v *Viper) GetStringMapString(key string) map[string]string { - return cast.ToStringMapString(v.Get(key)) -} - -// GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings. -func GetStringMapStringSlice(key string) map[string][]string { return v.GetStringMapStringSlice(key) } - -func (v *Viper) GetStringMapStringSlice(key string) map[string][]string { - return cast.ToStringMapStringSlice(v.Get(key)) -} - -// GetSizeInBytes returns the size of the value associated with the given key -// in bytes. -func GetSizeInBytes(key string) uint { return v.GetSizeInBytes(key) } - -func (v *Viper) GetSizeInBytes(key string) uint { - sizeStr := cast.ToString(v.Get(key)) - return parseSizeInBytes(sizeStr) -} - -// UnmarshalKey takes a single key and unmarshals it into a Struct. -func UnmarshalKey(key string, rawVal interface{}, opts ...DecoderConfigOption) error { - return v.UnmarshalKey(key, rawVal, opts...) -} - -func (v *Viper) UnmarshalKey(key string, rawVal interface{}, opts ...DecoderConfigOption) error { - return decode(v.Get(key), defaultDecoderConfig(rawVal, opts...)) -} - -// Unmarshal unmarshals the config into a Struct. Make sure that the tags -// on the fields of the structure are properly set. -func Unmarshal(rawVal interface{}, opts ...DecoderConfigOption) error { - return v.Unmarshal(rawVal, opts...) -} - -func (v *Viper) Unmarshal(rawVal interface{}, opts ...DecoderConfigOption) error { - return decode(v.AllSettings(), defaultDecoderConfig(rawVal, opts...)) -} - -// defaultDecoderConfig returns default mapstructure.DecoderConfig with support -// of time.Duration values & string slices -func defaultDecoderConfig(output interface{}, opts ...DecoderConfigOption) *mapstructure.DecoderConfig { - c := &mapstructure.DecoderConfig{ - Metadata: nil, - Result: output, - WeaklyTypedInput: true, - DecodeHook: mapstructure.ComposeDecodeHookFunc( - mapstructure.StringToTimeDurationHookFunc(), - mapstructure.StringToSliceHookFunc(","), - ), - } - for _, opt := range opts { - opt(c) - } - return c -} - -// A wrapper around mapstructure.Decode that mimics the WeakDecode functionality -func decode(input interface{}, config *mapstructure.DecoderConfig) error { - decoder, err := mapstructure.NewDecoder(config) - if err != nil { - return err - } - return decoder.Decode(input) -} - -// UnmarshalExact unmarshals the config into a Struct, erroring if a field is nonexistent -// in the destination struct. -func UnmarshalExact(rawVal interface{}, opts ...DecoderConfigOption) error { - return v.UnmarshalExact(rawVal, opts...) -} - -func (v *Viper) UnmarshalExact(rawVal interface{}, opts ...DecoderConfigOption) error { - config := defaultDecoderConfig(rawVal, opts...) - config.ErrorUnused = true - - return decode(v.AllSettings(), config) -} - -// BindPFlags binds a full flag set to the configuration, using each flag's long -// name as the config key. -func BindPFlags(flags *pflag.FlagSet) error { return v.BindPFlags(flags) } - -func (v *Viper) BindPFlags(flags *pflag.FlagSet) error { - return v.BindFlagValues(pflagValueSet{flags}) -} - -// BindPFlag binds a specific key to a pflag (as used by cobra). -// Example (where serverCmd is a Cobra instance): -// -// serverCmd.Flags().Int("port", 1138, "Port to run Application server on") -// Viper.BindPFlag("port", serverCmd.Flags().Lookup("port")) -func BindPFlag(key string, flag *pflag.Flag) error { return v.BindPFlag(key, flag) } - -func (v *Viper) BindPFlag(key string, flag *pflag.Flag) error { - if flag == nil { - return fmt.Errorf("flag for %q is nil", key) - } - return v.BindFlagValue(key, pflagValue{flag}) -} - -// BindFlagValues binds a full FlagValue set to the configuration, using each flag's long -// name as the config key. -func BindFlagValues(flags FlagValueSet) error { return v.BindFlagValues(flags) } - -func (v *Viper) BindFlagValues(flags FlagValueSet) (err error) { - flags.VisitAll(func(flag FlagValue) { - if err = v.BindFlagValue(flag.Name(), flag); err != nil { - return - } - }) - return nil -} - -// BindFlagValue binds a specific key to a FlagValue. -func BindFlagValue(key string, flag FlagValue) error { return v.BindFlagValue(key, flag) } - -func (v *Viper) BindFlagValue(key string, flag FlagValue) error { - if flag == nil { - return fmt.Errorf("flag for %q is nil", key) - } - v.pflags[strings.ToLower(key)] = flag - return nil -} - -// BindEnv binds a Viper key to a ENV variable. -// ENV variables are case sensitive. -// If only a key is provided, it will use the env key matching the key, uppercased. -// If more arguments are provided, they will represent the env variable names that -// should bind to this key and will be taken in the specified order. -// EnvPrefix will be used when set when env name is not provided. -func BindEnv(input ...string) error { return v.BindEnv(input...) } - -func (v *Viper) BindEnv(input ...string) error { - if len(input) == 0 { - return fmt.Errorf("missing key to bind to") - } - - key := strings.ToLower(input[0]) - - if len(input) == 1 { - v.env[key] = append(v.env[key], v.mergeWithEnvPrefix(key)) - } else { - v.env[key] = append(v.env[key], input[1:]...) - } - - return nil -} - -// MustBindEnv wraps BindEnv in a panic. -// If there is an error binding an environment variable, MustBindEnv will -// panic. -func MustBindEnv(input ...string) { v.MustBindEnv(input...) } - -func (v *Viper) MustBindEnv(input ...string) { - if err := v.BindEnv(input...); err != nil { - panic(fmt.Sprintf("error while binding environment variable: %v", err)) - } -} - -// Given a key, find the value. -// -// Viper will check to see if an alias exists first. -// Viper will then check in the following order: -// flag, env, config file, key/value store. -// Lastly, if no value was found and flagDefault is true, and if the key -// corresponds to a flag, the flag's default value is returned. -// -// Note: this assumes a lower-cased key given. -func (v *Viper) find(lcaseKey string, flagDefault bool) interface{} { - var ( - val interface{} - exists bool - path = strings.Split(lcaseKey, v.keyDelim) - nested = len(path) > 1 - ) - - // compute the path through the nested maps to the nested value - if nested && v.isPathShadowedInDeepMap(path, castMapStringToMapInterface(v.aliases)) != "" { - return nil - } - - // if the requested key is an alias, then return the proper key - lcaseKey = v.realKey(lcaseKey) - path = strings.Split(lcaseKey, v.keyDelim) - nested = len(path) > 1 - - // Set() override first - val = v.searchMap(v.override, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.override) != "" { - return nil - } - - // PFlag override next - flag, exists := v.pflags[lcaseKey] - if exists && flag.HasChanged() { - switch flag.ValueType() { - case "int", "int8", "int16", "int32", "int64": - return cast.ToInt(flag.ValueString()) - case "bool": - return cast.ToBool(flag.ValueString()) - case "stringSlice", "stringArray": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - res, _ := readAsCSV(s) - return res - case "intSlice": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - res, _ := readAsCSV(s) - return cast.ToIntSlice(res) - case "durationSlice": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - slice := strings.Split(s, ",") - return cast.ToDurationSlice(slice) - case "stringToString": - return stringToStringConv(flag.ValueString()) - case "stringToInt": - return stringToIntConv(flag.ValueString()) - default: - return flag.ValueString() - } - } - if nested && v.isPathShadowedInFlatMap(path, v.pflags) != "" { - return nil - } - - // Env override next - if v.automaticEnvApplied { - envKey := strings.Join(append(v.parents, lcaseKey), ".") - // even if it hasn't been registered, if automaticEnv is used, - // check any Get request - if val, ok := v.getEnv(v.mergeWithEnvPrefix(envKey)); ok { - return val - } - if nested && v.isPathShadowedInAutoEnv(path) != "" { - return nil - } - } - envkeys, exists := v.env[lcaseKey] - if exists { - for _, envkey := range envkeys { - if val, ok := v.getEnv(envkey); ok { - return val - } - } - } - if nested && v.isPathShadowedInFlatMap(path, v.env) != "" { - return nil - } - - // Config file next - val = v.searchIndexableWithPathPrefixes(v.config, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.config) != "" { - return nil - } - - // K/V store next - val = v.searchMap(v.kvstore, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.kvstore) != "" { - return nil - } - - // Default next - val = v.searchMap(v.defaults, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.defaults) != "" { - return nil - } - - if flagDefault { - // last chance: if no value is found and a flag does exist for the key, - // get the flag's default value even if the flag's value has not been set. - if flag, exists := v.pflags[lcaseKey]; exists { - switch flag.ValueType() { - case "int", "int8", "int16", "int32", "int64": - return cast.ToInt(flag.ValueString()) - case "bool": - return cast.ToBool(flag.ValueString()) - case "stringSlice", "stringArray": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - res, _ := readAsCSV(s) - return res - case "intSlice": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - res, _ := readAsCSV(s) - return cast.ToIntSlice(res) - case "stringToString": - return stringToStringConv(flag.ValueString()) - case "stringToInt": - return stringToIntConv(flag.ValueString()) - case "durationSlice": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - slice := strings.Split(s, ",") - return cast.ToDurationSlice(slice) - default: - return flag.ValueString() - } - } - // last item, no need to check shadowing - } - - return nil -} - -func readAsCSV(val string) ([]string, error) { - if val == "" { - return []string{}, nil - } - stringReader := strings.NewReader(val) - csvReader := csv.NewReader(stringReader) - return csvReader.Read() -} - -// mostly copied from pflag's implementation of this operation here https://github.com/spf13/pflag/blob/master/string_to_string.go#L79 -// alterations are: errors are swallowed, map[string]interface{} is returned in order to enable cast.ToStringMap -func stringToStringConv(val string) interface{} { - val = strings.Trim(val, "[]") - // An empty string would cause an empty map - if len(val) == 0 { - return map[string]interface{}{} - } - r := csv.NewReader(strings.NewReader(val)) - ss, err := r.Read() - if err != nil { - return nil - } - out := make(map[string]interface{}, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return nil - } - out[kv[0]] = kv[1] - } - return out -} - -// mostly copied from pflag's implementation of this operation here https://github.com/spf13/pflag/blob/d5e0c0615acee7028e1e2740a11102313be88de1/string_to_int.go#L68 -// alterations are: errors are swallowed, map[string]interface{} is returned in order to enable cast.ToStringMap -func stringToIntConv(val string) interface{} { - val = strings.Trim(val, "[]") - // An empty string would cause an empty map - if len(val) == 0 { - return map[string]interface{}{} - } - ss := strings.Split(val, ",") - out := make(map[string]interface{}, len(ss)) - for _, pair := range ss { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 { - return nil - } - var err error - out[kv[0]], err = strconv.Atoi(kv[1]) - if err != nil { - return nil - } - } - return out -} - -// IsSet checks to see if the key has been set in any of the data locations. -// IsSet is case-insensitive for a key. -func IsSet(key string) bool { return v.IsSet(key) } - -func (v *Viper) IsSet(key string) bool { - lcaseKey := strings.ToLower(key) - val := v.find(lcaseKey, false) - return val != nil -} - -// AutomaticEnv makes Viper check if environment variables match any of the existing keys -// (config, default or flags). If matching env vars are found, they are loaded into Viper. -func AutomaticEnv() { v.AutomaticEnv() } - -func (v *Viper) AutomaticEnv() { - v.automaticEnvApplied = true -} - -// SetEnvKeyReplacer sets the strings.Replacer on the viper object -// Useful for mapping an environmental variable to a key that does -// not match it. -func SetEnvKeyReplacer(r *strings.Replacer) { v.SetEnvKeyReplacer(r) } - -func (v *Viper) SetEnvKeyReplacer(r *strings.Replacer) { - v.envKeyReplacer = r -} - -// RegisterAlias creates an alias that provides another accessor for the same key. -// This enables one to change a name without breaking the application. -func RegisterAlias(alias string, key string) { v.RegisterAlias(alias, key) } - -func (v *Viper) RegisterAlias(alias string, key string) { - v.registerAlias(alias, strings.ToLower(key)) -} - -func (v *Viper) registerAlias(alias string, key string) { - alias = strings.ToLower(alias) - if alias != key && alias != v.realKey(key) { - _, exists := v.aliases[alias] - - if !exists { - // if we alias something that exists in one of the maps to another - // name, we'll never be able to get that value using the original - // name, so move the config value to the new realkey. - if val, ok := v.config[alias]; ok { - delete(v.config, alias) - v.config[key] = val - } - if val, ok := v.kvstore[alias]; ok { - delete(v.kvstore, alias) - v.kvstore[key] = val - } - if val, ok := v.defaults[alias]; ok { - delete(v.defaults, alias) - v.defaults[key] = val - } - if val, ok := v.override[alias]; ok { - delete(v.override, alias) - v.override[key] = val - } - v.aliases[alias] = key - } - } else { - v.logger.Warn("creating circular reference alias", "alias", alias, "key", key, "real_key", v.realKey(key)) - } -} - -func (v *Viper) realKey(key string) string { - newkey, exists := v.aliases[key] - if exists { - v.logger.Debug("key is an alias", "alias", key, "to", newkey) - - return v.realKey(newkey) - } - return key -} - -// InConfig checks to see if the given key (or an alias) is in the config file. -func InConfig(key string) bool { return v.InConfig(key) } - -func (v *Viper) InConfig(key string) bool { - lcaseKey := strings.ToLower(key) - - // if the requested key is an alias, then return the proper key - lcaseKey = v.realKey(lcaseKey) - path := strings.Split(lcaseKey, v.keyDelim) - - return v.searchIndexableWithPathPrefixes(v.config, path) != nil -} - -// SetDefault sets the default value for this key. -// SetDefault is case-insensitive for a key. -// Default only used when no value is provided by the user via flag, config or ENV. -func SetDefault(key string, value interface{}) { v.SetDefault(key, value) } - -func (v *Viper) SetDefault(key string, value interface{}) { - // If alias passed in, then set the proper default - key = v.realKey(strings.ToLower(key)) - value = toCaseInsensitiveValue(value) - - path := strings.Split(key, v.keyDelim) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(v.defaults, path[0:len(path)-1]) - - // set innermost value - deepestMap[lastKey] = value -} - -// Set sets the value for the key in the override register. -// Set is case-insensitive for a key. -// Will be used instead of values obtained via -// flags, config file, ENV, default, or key/value store. -func Set(key string, value interface{}) { v.Set(key, value) } - -func (v *Viper) Set(key string, value interface{}) { - // If alias passed in, then set the proper override - key = v.realKey(strings.ToLower(key)) - value = toCaseInsensitiveValue(value) - - path := strings.Split(key, v.keyDelim) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(v.override, path[0:len(path)-1]) - - // set innermost value - deepestMap[lastKey] = value -} - -// ReadInConfig will discover and load the configuration file from disk -// and key/value stores, searching in one of the defined paths. -func ReadInConfig() error { return v.ReadInConfig() } - -func (v *Viper) ReadInConfig() error { - v.logger.Info("attempting to read in config file") - filename, err := v.getConfigFile() - if err != nil { - return err - } - - if !stringInSlice(v.getConfigType(), SupportedExts) { - return UnsupportedConfigError(v.getConfigType()) - } - - v.logger.Debug("reading file", "file", filename) - file, err := afero.ReadFile(v.fs, filename) - if err != nil { - return err - } - - config := make(map[string]interface{}) - - err = v.unmarshalReader(bytes.NewReader(file), config) - if err != nil { - return err - } - - v.config = config - return nil -} - -// MergeInConfig merges a new configuration with an existing config. -func MergeInConfig() error { return v.MergeInConfig() } - -func (v *Viper) MergeInConfig() error { - v.logger.Info("attempting to merge in config file") - filename, err := v.getConfigFile() - if err != nil { - return err - } - - if !stringInSlice(v.getConfigType(), SupportedExts) { - return UnsupportedConfigError(v.getConfigType()) - } - - file, err := afero.ReadFile(v.fs, filename) - if err != nil { - return err - } - - return v.MergeConfig(bytes.NewReader(file)) -} - -// ReadConfig will read a configuration file, setting existing keys to nil if the -// key does not exist in the file. -func ReadConfig(in io.Reader) error { return v.ReadConfig(in) } - -func (v *Viper) ReadConfig(in io.Reader) error { - v.config = make(map[string]interface{}) - return v.unmarshalReader(in, v.config) -} - -// MergeConfig merges a new configuration with an existing config. -func MergeConfig(in io.Reader) error { return v.MergeConfig(in) } - -func (v *Viper) MergeConfig(in io.Reader) error { - cfg := make(map[string]interface{}) - if err := v.unmarshalReader(in, cfg); err != nil { - return err - } - return v.MergeConfigMap(cfg) -} - -// MergeConfigMap merges the configuration from the map given with an existing config. -// Note that the map given may be modified. -func MergeConfigMap(cfg map[string]interface{}) error { return v.MergeConfigMap(cfg) } - -func (v *Viper) MergeConfigMap(cfg map[string]interface{}) error { - if v.config == nil { - v.config = make(map[string]interface{}) - } - insensitiviseMap(cfg) - mergeMaps(cfg, v.config, nil) - return nil -} - -// WriteConfig writes the current configuration to a file. -func WriteConfig() error { return v.WriteConfig() } - -func (v *Viper) WriteConfig() error { - filename, err := v.getConfigFile() - if err != nil { - return err - } - return v.writeConfig(filename, true) -} - -// SafeWriteConfig writes current configuration to file only if the file does not exist. -func SafeWriteConfig() error { return v.SafeWriteConfig() } - -func (v *Viper) SafeWriteConfig() error { - if len(v.configPaths) < 1 { - return errors.New("missing configuration for 'configPath'") - } - return v.SafeWriteConfigAs(filepath.Join(v.configPaths[0], v.configName+"."+v.configType)) -} - -// WriteConfigAs writes current configuration to a given filename. -func WriteConfigAs(filename string) error { return v.WriteConfigAs(filename) } - -func (v *Viper) WriteConfigAs(filename string) error { - return v.writeConfig(filename, true) -} - -// SafeWriteConfigAs writes current configuration to a given filename if it does not exist. -func SafeWriteConfigAs(filename string) error { return v.SafeWriteConfigAs(filename) } - -func (v *Viper) SafeWriteConfigAs(filename string) error { - alreadyExists, err := afero.Exists(v.fs, filename) - if alreadyExists && err == nil { - return ConfigFileAlreadyExistsError(filename) - } - return v.writeConfig(filename, false) -} - -func (v *Viper) writeConfig(filename string, force bool) error { - v.logger.Info("attempting to write configuration to file") - - var configType string - - ext := filepath.Ext(filename) - if ext != "" && ext != filepath.Base(filename) { - configType = ext[1:] - } else { - configType = v.configType - } - if configType == "" { - return fmt.Errorf("config type could not be determined for %s", filename) - } - - if !stringInSlice(configType, SupportedExts) { - return UnsupportedConfigError(configType) - } - if v.config == nil { - v.config = make(map[string]interface{}) - } - flags := os.O_CREATE | os.O_TRUNC | os.O_WRONLY - if !force { - flags |= os.O_EXCL - } - f, err := v.fs.OpenFile(filename, flags, v.configPermissions) - if err != nil { - return err - } - defer f.Close() - - if err := v.marshalWriter(f, configType); err != nil { - return err - } - - return f.Sync() -} - -// Unmarshal a Reader into a map. -// Should probably be an unexported function. -func unmarshalReader(in io.Reader, c map[string]interface{}) error { - return v.unmarshalReader(in, c) -} - -func (v *Viper) unmarshalReader(in io.Reader, c map[string]interface{}) error { - buf := new(bytes.Buffer) - buf.ReadFrom(in) - - switch format := strings.ToLower(v.getConfigType()); format { - case "yaml", "yml", "json", "toml", "hcl", "tfvars", "ini", "properties", "props", "prop", "dotenv", "env": - err := v.decoderRegistry.Decode(format, buf.Bytes(), c) - if err != nil { - return ConfigParseError{err} - } - } - - insensitiviseMap(c) - return nil -} - -// Marshal a map into Writer. -func (v *Viper) marshalWriter(f afero.File, configType string) error { - c := v.AllSettings() - switch configType { - case "yaml", "yml", "json", "toml", "hcl", "tfvars", "ini", "prop", "props", "properties", "dotenv", "env": - b, err := v.encoderRegistry.Encode(configType, c) - if err != nil { - return ConfigMarshalError{err} - } - - _, err = f.WriteString(string(b)) - if err != nil { - return ConfigMarshalError{err} - } - } - return nil -} - -func keyExists(k string, m map[string]interface{}) string { - lk := strings.ToLower(k) - for mk := range m { - lmk := strings.ToLower(mk) - if lmk == lk { - return mk - } - } - return "" -} - -func castToMapStringInterface( - src map[interface{}]interface{}, -) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[fmt.Sprintf("%v", k)] = v - } - return tgt -} - -func castMapStringSliceToMapInterface(src map[string][]string) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[k] = v - } - return tgt -} - -func castMapStringToMapInterface(src map[string]string) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[k] = v - } - return tgt -} - -func castMapFlagToMapInterface(src map[string]FlagValue) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[k] = v - } - return tgt -} - -// mergeMaps merges two maps. The `itgt` parameter is for handling go-yaml's -// insistence on parsing nested structures as `map[interface{}]interface{}` -// instead of using a `string` as the key for nest structures beyond one level -// deep. Both map types are supported as there is a go-yaml fork that uses -// `map[string]interface{}` instead. -func mergeMaps( - src, tgt map[string]interface{}, itgt map[interface{}]interface{}, -) { - for sk, sv := range src { - tk := keyExists(sk, tgt) - if tk == "" { - v.logger.Trace("", "tk", "\"\"", fmt.Sprintf("tgt[%s]", sk), sv) - tgt[sk] = sv - if itgt != nil { - itgt[sk] = sv - } - continue - } - - tv, ok := tgt[tk] - if !ok { - v.logger.Trace("", fmt.Sprintf("ok[%s]", tk), false, fmt.Sprintf("tgt[%s]", sk), sv) - tgt[sk] = sv - if itgt != nil { - itgt[sk] = sv - } - continue - } - - svType := reflect.TypeOf(sv) - tvType := reflect.TypeOf(tv) - - v.logger.Trace( - "processing", - "key", sk, - "st", svType, - "tt", tvType, - "sv", sv, - "tv", tv, - ) - - switch ttv := tv.(type) { - case map[interface{}]interface{}: - v.logger.Trace("merging maps (must convert)") - tsv, ok := sv.(map[interface{}]interface{}) - if !ok { - v.logger.Error( - "Could not cast sv to map[interface{}]interface{}", - "key", sk, - "st", svType, - "tt", tvType, - "sv", sv, - "tv", tv, - ) - continue - } - - ssv := castToMapStringInterface(tsv) - stv := castToMapStringInterface(ttv) - mergeMaps(ssv, stv, ttv) - case map[string]interface{}: - v.logger.Trace("merging maps") - tsv, ok := sv.(map[string]interface{}) - if !ok { - v.logger.Error( - "Could not cast sv to map[string]interface{}", - "key", sk, - "st", svType, - "tt", tvType, - "sv", sv, - "tv", tv, - ) - continue - } - mergeMaps(tsv, ttv, nil) - default: - v.logger.Trace("setting value") - tgt[tk] = sv - if itgt != nil { - itgt[tk] = sv - } - } - } -} - -// ReadRemoteConfig attempts to get configuration from a remote source -// and read it in the remote configuration registry. -func ReadRemoteConfig() error { return v.ReadRemoteConfig() } - -func (v *Viper) ReadRemoteConfig() error { - return v.getKeyValueConfig() -} - -func WatchRemoteConfig() error { return v.WatchRemoteConfig() } -func (v *Viper) WatchRemoteConfig() error { - return v.watchKeyValueConfig() -} - -func (v *Viper) WatchRemoteConfigOnChannel() error { - return v.watchKeyValueConfigOnChannel() -} - -// Retrieve the first found remote configuration. -func (v *Viper) getKeyValueConfig() error { - if RemoteConfig == nil { - return RemoteConfigError("Enable the remote features by doing a blank import of the viper/remote package: '_ github.com/spf13/viper/remote'") - } - - if len(v.remoteProviders) == 0 { - return RemoteConfigError("No Remote Providers") - } - - for _, rp := range v.remoteProviders { - val, err := v.getRemoteConfig(rp) - if err != nil { - v.logger.Error(fmt.Errorf("get remote config: %w", err).Error()) - - continue - } - - v.kvstore = val - - return nil - } - return RemoteConfigError("No Files Found") -} - -func (v *Viper) getRemoteConfig(provider RemoteProvider) (map[string]interface{}, error) { - reader, err := RemoteConfig.Get(provider) - if err != nil { - return nil, err - } - err = v.unmarshalReader(reader, v.kvstore) - return v.kvstore, err -} - -// Retrieve the first found remote configuration. -func (v *Viper) watchKeyValueConfigOnChannel() error { - if len(v.remoteProviders) == 0 { - return RemoteConfigError("No Remote Providers") - } - - for _, rp := range v.remoteProviders { - respc, _ := RemoteConfig.WatchChannel(rp) - // Todo: Add quit channel - go func(rc <-chan *RemoteResponse) { - for { - b := <-rc - reader := bytes.NewReader(b.Value) - v.unmarshalReader(reader, v.kvstore) - } - }(respc) - return nil - } - return RemoteConfigError("No Files Found") -} - -// Retrieve the first found remote configuration. -func (v *Viper) watchKeyValueConfig() error { - if len(v.remoteProviders) == 0 { - return RemoteConfigError("No Remote Providers") - } - - for _, rp := range v.remoteProviders { - val, err := v.watchRemoteConfig(rp) - if err != nil { - v.logger.Error(fmt.Errorf("watch remote config: %w", err).Error()) - - continue - } - v.kvstore = val - return nil - } - return RemoteConfigError("No Files Found") -} - -func (v *Viper) watchRemoteConfig(provider RemoteProvider) (map[string]interface{}, error) { - reader, err := RemoteConfig.Watch(provider) - if err != nil { - return nil, err - } - err = v.unmarshalReader(reader, v.kvstore) - return v.kvstore, err -} - -// AllKeys returns all keys holding a value, regardless of where they are set. -// Nested keys are returned with a v.keyDelim separator -func AllKeys() []string { return v.AllKeys() } - -func (v *Viper) AllKeys() []string { - m := map[string]bool{} - // add all paths, by order of descending priority to ensure correct shadowing - m = v.flattenAndMergeMap(m, castMapStringToMapInterface(v.aliases), "") - m = v.flattenAndMergeMap(m, v.override, "") - m = v.mergeFlatMap(m, castMapFlagToMapInterface(v.pflags)) - m = v.mergeFlatMap(m, castMapStringSliceToMapInterface(v.env)) - m = v.flattenAndMergeMap(m, v.config, "") - m = v.flattenAndMergeMap(m, v.kvstore, "") - m = v.flattenAndMergeMap(m, v.defaults, "") - - // convert set of paths to list - a := make([]string, 0, len(m)) - for x := range m { - a = append(a, x) - } - return a -} - -// flattenAndMergeMap recursively flattens the given map into a map[string]bool -// of key paths (used as a set, easier to manipulate than a []string): -// - each path is merged into a single key string, delimited with v.keyDelim -// - if a path is shadowed by an earlier value in the initial shadow map, -// it is skipped. -// -// The resulting set of paths is merged to the given shadow set at the same time. -func (v *Viper) flattenAndMergeMap(shadow map[string]bool, m map[string]interface{}, prefix string) map[string]bool { - if shadow != nil && prefix != "" && shadow[prefix] { - // prefix is shadowed => nothing more to flatten - return shadow - } - if shadow == nil { - shadow = make(map[string]bool) - } - - var m2 map[string]interface{} - if prefix != "" { - prefix += v.keyDelim - } - for k, val := range m { - fullKey := prefix + k - switch val.(type) { - case map[string]interface{}: - m2 = val.(map[string]interface{}) - case map[interface{}]interface{}: - m2 = cast.ToStringMap(val) - default: - // immediate value - shadow[strings.ToLower(fullKey)] = true - continue - } - // recursively merge to shadow map - shadow = v.flattenAndMergeMap(shadow, m2, fullKey) - } - return shadow -} - -// mergeFlatMap merges the given maps, excluding values of the second map -// shadowed by values from the first map. -func (v *Viper) mergeFlatMap(shadow map[string]bool, m map[string]interface{}) map[string]bool { - // scan keys -outer: - for k := range m { - path := strings.Split(k, v.keyDelim) - // scan intermediate paths - var parentKey string - for i := 1; i < len(path); i++ { - parentKey = strings.Join(path[0:i], v.keyDelim) - if shadow[parentKey] { - // path is shadowed, continue - continue outer - } - } - // add key - shadow[strings.ToLower(k)] = true - } - return shadow -} - -// AllSettings merges all settings and returns them as a map[string]interface{}. -func AllSettings() map[string]interface{} { return v.AllSettings() } - -func (v *Viper) AllSettings() map[string]interface{} { - m := map[string]interface{}{} - // start from the list of keys, and construct the map one value at a time - for _, k := range v.AllKeys() { - value := v.Get(k) - if value == nil { - // should not happen, since AllKeys() returns only keys holding a value, - // check just in case anything changes - continue - } - path := strings.Split(k, v.keyDelim) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(m, path[0:len(path)-1]) - // set innermost value - deepestMap[lastKey] = value - } - return m -} - -// SetFs sets the filesystem to use to read configuration. -func SetFs(fs afero.Fs) { v.SetFs(fs) } - -func (v *Viper) SetFs(fs afero.Fs) { - v.fs = fs -} - -// SetConfigName sets name for the config file. -// Does not include extension. -func SetConfigName(in string) { v.SetConfigName(in) } - -func (v *Viper) SetConfigName(in string) { - if in != "" { - v.configName = in - v.configFile = "" - } -} - -// SetConfigType sets the type of the configuration returned by the -// remote source, e.g. "json". -func SetConfigType(in string) { v.SetConfigType(in) } - -func (v *Viper) SetConfigType(in string) { - if in != "" { - v.configType = in - } -} - -// SetConfigPermissions sets the permissions for the config file. -func SetConfigPermissions(perm os.FileMode) { v.SetConfigPermissions(perm) } - -func (v *Viper) SetConfigPermissions(perm os.FileMode) { - v.configPermissions = perm.Perm() -} - -// IniLoadOptions sets the load options for ini parsing. -func IniLoadOptions(in ini.LoadOptions) Option { - return optionFunc(func(v *Viper) { - v.iniLoadOptions = in - }) -} - -func (v *Viper) getConfigType() string { - if v.configType != "" { - return v.configType - } - - cf, err := v.getConfigFile() - if err != nil { - return "" - } - - ext := filepath.Ext(cf) - - if len(ext) > 1 { - return ext[1:] - } - - return "" -} - -func (v *Viper) getConfigFile() (string, error) { - if v.configFile == "" { - cf, err := v.findConfigFile() - if err != nil { - return "", err - } - v.configFile = cf - } - return v.configFile, nil -} - -// Debug prints all configuration registries for debugging -// purposes. -func Debug() { v.Debug() } -func DebugTo(w io.Writer) { v.DebugTo(w) } - -func (v *Viper) Debug() { v.DebugTo(os.Stdout) } - -func (v *Viper) DebugTo(w io.Writer) { - fmt.Fprintf(w, "Aliases:\n%#v\n", v.aliases) - fmt.Fprintf(w, "Override:\n%#v\n", v.override) - fmt.Fprintf(w, "PFlags:\n%#v\n", v.pflags) - fmt.Fprintf(w, "Env:\n%#v\n", v.env) - fmt.Fprintf(w, "Key/Value Store:\n%#v\n", v.kvstore) - fmt.Fprintf(w, "Config:\n%#v\n", v.config) - fmt.Fprintf(w, "Defaults:\n%#v\n", v.defaults) -} diff --git a/backend/vendor/github.com/spf13/viper/viper_go1_15.go b/backend/vendor/github.com/spf13/viper/viper_go1_15.go deleted file mode 100644 index 19a771cb..00000000 --- a/backend/vendor/github.com/spf13/viper/viper_go1_15.go +++ /dev/null @@ -1,57 +0,0 @@ -//go:build !go1.16 || !finder -// +build !go1.16 !finder - -package viper - -import ( - "fmt" - "os" - "path/filepath" - - "github.com/spf13/afero" -) - -// Search all configPaths for any config file. -// Returns the first path that exists (and is a config file). -func (v *Viper) findConfigFile() (string, error) { - v.logger.Info("searching for config in paths", "paths", v.configPaths) - - for _, cp := range v.configPaths { - file := v.searchInPath(cp) - if file != "" { - return file, nil - } - } - return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)} -} - -func (v *Viper) searchInPath(in string) (filename string) { - v.logger.Debug("searching for config in path", "path", in) - for _, ext := range SupportedExts { - v.logger.Debug("checking if file exists", "file", filepath.Join(in, v.configName+"."+ext)) - if b, _ := exists(v.fs, filepath.Join(in, v.configName+"."+ext)); b { - v.logger.Debug("found file", "file", filepath.Join(in, v.configName+"."+ext)) - return filepath.Join(in, v.configName+"."+ext) - } - } - - if v.configType != "" { - if b, _ := exists(v.fs, filepath.Join(in, v.configName)); b { - return filepath.Join(in, v.configName) - } - } - - return "" -} - -// Check if file Exists -func exists(fs afero.Fs, path string) (bool, error) { - stat, err := fs.Stat(path) - if err == nil { - return !stat.IsDir(), nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} diff --git a/backend/vendor/github.com/spf13/viper/viper_go1_16.go b/backend/vendor/github.com/spf13/viper/viper_go1_16.go deleted file mode 100644 index e10172fa..00000000 --- a/backend/vendor/github.com/spf13/viper/viper_go1_16.go +++ /dev/null @@ -1,32 +0,0 @@ -//go:build go1.16 && finder -// +build go1.16,finder - -package viper - -import ( - "fmt" - - "github.com/spf13/afero" -) - -// Search all configPaths for any config file. -// Returns the first path that exists (and is a config file). -func (v *Viper) findConfigFile() (string, error) { - finder := finder{ - paths: v.configPaths, - fileNames: []string{v.configName}, - extensions: SupportedExts, - withoutExtension: v.configType != "", - } - - file, err := finder.Find(afero.NewIOFS(v.fs)) - if err != nil { - return "", err - } - - if file == "" { - return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)} - } - - return file, nil -} diff --git a/backend/vendor/github.com/spf13/viper/watch.go b/backend/vendor/github.com/spf13/viper/watch.go deleted file mode 100644 index 1ce84eaf..00000000 --- a/backend/vendor/github.com/spf13/viper/watch.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build darwin || dragonfly || freebsd || openbsd || linux || netbsd || solaris || windows -// +build darwin dragonfly freebsd openbsd linux netbsd solaris windows - -package viper - -import "github.com/fsnotify/fsnotify" - -type watcher = fsnotify.Watcher - -func newWatcher() (*watcher, error) { - return fsnotify.NewWatcher() -} diff --git a/backend/vendor/github.com/spf13/viper/watch_unsupported.go b/backend/vendor/github.com/spf13/viper/watch_unsupported.go deleted file mode 100644 index 7e271537..00000000 --- a/backend/vendor/github.com/spf13/viper/watch_unsupported.go +++ /dev/null @@ -1,32 +0,0 @@ -//go:build appengine || (!darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows) -// +build appengine !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows - -package viper - -import ( - "fmt" - "runtime" - - "github.com/fsnotify/fsnotify" -) - -func newWatcher() (*watcher, error) { - return &watcher{}, fmt.Errorf("fsnotify not supported on %s", runtime.GOOS) -} - -type watcher struct { - Events chan fsnotify.Event - Errors chan error -} - -func (*watcher) Close() error { - return nil -} - -func (*watcher) Add(name string) error { - return nil -} - -func (*watcher) Remove(name string) error { - return nil -} diff --git a/backend/vendor/github.com/stretchr/testify/LICENSE b/backend/vendor/github.com/stretchr/testify/LICENSE deleted file mode 100644 index 4b0421cf..00000000 --- a/backend/vendor/github.com/stretchr/testify/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_compare.go b/backend/vendor/github.com/stretchr/testify/assert/assertion_compare.go deleted file mode 100644 index b774da88..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_compare.go +++ /dev/null @@ -1,458 +0,0 @@ -package assert - -import ( - "bytes" - "fmt" - "reflect" - "time" -) - -type CompareType int - -const ( - compareLess CompareType = iota - 1 - compareEqual - compareGreater -) - -var ( - intType = reflect.TypeOf(int(1)) - int8Type = reflect.TypeOf(int8(1)) - int16Type = reflect.TypeOf(int16(1)) - int32Type = reflect.TypeOf(int32(1)) - int64Type = reflect.TypeOf(int64(1)) - - uintType = reflect.TypeOf(uint(1)) - uint8Type = reflect.TypeOf(uint8(1)) - uint16Type = reflect.TypeOf(uint16(1)) - uint32Type = reflect.TypeOf(uint32(1)) - uint64Type = reflect.TypeOf(uint64(1)) - - float32Type = reflect.TypeOf(float32(1)) - float64Type = reflect.TypeOf(float64(1)) - - stringType = reflect.TypeOf("") - - timeType = reflect.TypeOf(time.Time{}) - bytesType = reflect.TypeOf([]byte{}) -) - -func compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) { - obj1Value := reflect.ValueOf(obj1) - obj2Value := reflect.ValueOf(obj2) - - // throughout this switch we try and avoid calling .Convert() if possible, - // as this has a pretty big performance impact - switch kind { - case reflect.Int: - { - intobj1, ok := obj1.(int) - if !ok { - intobj1 = obj1Value.Convert(intType).Interface().(int) - } - intobj2, ok := obj2.(int) - if !ok { - intobj2 = obj2Value.Convert(intType).Interface().(int) - } - if intobj1 > intobj2 { - return compareGreater, true - } - if intobj1 == intobj2 { - return compareEqual, true - } - if intobj1 < intobj2 { - return compareLess, true - } - } - case reflect.Int8: - { - int8obj1, ok := obj1.(int8) - if !ok { - int8obj1 = obj1Value.Convert(int8Type).Interface().(int8) - } - int8obj2, ok := obj2.(int8) - if !ok { - int8obj2 = obj2Value.Convert(int8Type).Interface().(int8) - } - if int8obj1 > int8obj2 { - return compareGreater, true - } - if int8obj1 == int8obj2 { - return compareEqual, true - } - if int8obj1 < int8obj2 { - return compareLess, true - } - } - case reflect.Int16: - { - int16obj1, ok := obj1.(int16) - if !ok { - int16obj1 = obj1Value.Convert(int16Type).Interface().(int16) - } - int16obj2, ok := obj2.(int16) - if !ok { - int16obj2 = obj2Value.Convert(int16Type).Interface().(int16) - } - if int16obj1 > int16obj2 { - return compareGreater, true - } - if int16obj1 == int16obj2 { - return compareEqual, true - } - if int16obj1 < int16obj2 { - return compareLess, true - } - } - case reflect.Int32: - { - int32obj1, ok := obj1.(int32) - if !ok { - int32obj1 = obj1Value.Convert(int32Type).Interface().(int32) - } - int32obj2, ok := obj2.(int32) - if !ok { - int32obj2 = obj2Value.Convert(int32Type).Interface().(int32) - } - if int32obj1 > int32obj2 { - return compareGreater, true - } - if int32obj1 == int32obj2 { - return compareEqual, true - } - if int32obj1 < int32obj2 { - return compareLess, true - } - } - case reflect.Int64: - { - int64obj1, ok := obj1.(int64) - if !ok { - int64obj1 = obj1Value.Convert(int64Type).Interface().(int64) - } - int64obj2, ok := obj2.(int64) - if !ok { - int64obj2 = obj2Value.Convert(int64Type).Interface().(int64) - } - if int64obj1 > int64obj2 { - return compareGreater, true - } - if int64obj1 == int64obj2 { - return compareEqual, true - } - if int64obj1 < int64obj2 { - return compareLess, true - } - } - case reflect.Uint: - { - uintobj1, ok := obj1.(uint) - if !ok { - uintobj1 = obj1Value.Convert(uintType).Interface().(uint) - } - uintobj2, ok := obj2.(uint) - if !ok { - uintobj2 = obj2Value.Convert(uintType).Interface().(uint) - } - if uintobj1 > uintobj2 { - return compareGreater, true - } - if uintobj1 == uintobj2 { - return compareEqual, true - } - if uintobj1 < uintobj2 { - return compareLess, true - } - } - case reflect.Uint8: - { - uint8obj1, ok := obj1.(uint8) - if !ok { - uint8obj1 = obj1Value.Convert(uint8Type).Interface().(uint8) - } - uint8obj2, ok := obj2.(uint8) - if !ok { - uint8obj2 = obj2Value.Convert(uint8Type).Interface().(uint8) - } - if uint8obj1 > uint8obj2 { - return compareGreater, true - } - if uint8obj1 == uint8obj2 { - return compareEqual, true - } - if uint8obj1 < uint8obj2 { - return compareLess, true - } - } - case reflect.Uint16: - { - uint16obj1, ok := obj1.(uint16) - if !ok { - uint16obj1 = obj1Value.Convert(uint16Type).Interface().(uint16) - } - uint16obj2, ok := obj2.(uint16) - if !ok { - uint16obj2 = obj2Value.Convert(uint16Type).Interface().(uint16) - } - if uint16obj1 > uint16obj2 { - return compareGreater, true - } - if uint16obj1 == uint16obj2 { - return compareEqual, true - } - if uint16obj1 < uint16obj2 { - return compareLess, true - } - } - case reflect.Uint32: - { - uint32obj1, ok := obj1.(uint32) - if !ok { - uint32obj1 = obj1Value.Convert(uint32Type).Interface().(uint32) - } - uint32obj2, ok := obj2.(uint32) - if !ok { - uint32obj2 = obj2Value.Convert(uint32Type).Interface().(uint32) - } - if uint32obj1 > uint32obj2 { - return compareGreater, true - } - if uint32obj1 == uint32obj2 { - return compareEqual, true - } - if uint32obj1 < uint32obj2 { - return compareLess, true - } - } - case reflect.Uint64: - { - uint64obj1, ok := obj1.(uint64) - if !ok { - uint64obj1 = obj1Value.Convert(uint64Type).Interface().(uint64) - } - uint64obj2, ok := obj2.(uint64) - if !ok { - uint64obj2 = obj2Value.Convert(uint64Type).Interface().(uint64) - } - if uint64obj1 > uint64obj2 { - return compareGreater, true - } - if uint64obj1 == uint64obj2 { - return compareEqual, true - } - if uint64obj1 < uint64obj2 { - return compareLess, true - } - } - case reflect.Float32: - { - float32obj1, ok := obj1.(float32) - if !ok { - float32obj1 = obj1Value.Convert(float32Type).Interface().(float32) - } - float32obj2, ok := obj2.(float32) - if !ok { - float32obj2 = obj2Value.Convert(float32Type).Interface().(float32) - } - if float32obj1 > float32obj2 { - return compareGreater, true - } - if float32obj1 == float32obj2 { - return compareEqual, true - } - if float32obj1 < float32obj2 { - return compareLess, true - } - } - case reflect.Float64: - { - float64obj1, ok := obj1.(float64) - if !ok { - float64obj1 = obj1Value.Convert(float64Type).Interface().(float64) - } - float64obj2, ok := obj2.(float64) - if !ok { - float64obj2 = obj2Value.Convert(float64Type).Interface().(float64) - } - if float64obj1 > float64obj2 { - return compareGreater, true - } - if float64obj1 == float64obj2 { - return compareEqual, true - } - if float64obj1 < float64obj2 { - return compareLess, true - } - } - case reflect.String: - { - stringobj1, ok := obj1.(string) - if !ok { - stringobj1 = obj1Value.Convert(stringType).Interface().(string) - } - stringobj2, ok := obj2.(string) - if !ok { - stringobj2 = obj2Value.Convert(stringType).Interface().(string) - } - if stringobj1 > stringobj2 { - return compareGreater, true - } - if stringobj1 == stringobj2 { - return compareEqual, true - } - if stringobj1 < stringobj2 { - return compareLess, true - } - } - // Check for known struct types we can check for compare results. - case reflect.Struct: - { - // All structs enter here. We're not interested in most types. - if !canConvert(obj1Value, timeType) { - break - } - - // time.Time can compared! - timeObj1, ok := obj1.(time.Time) - if !ok { - timeObj1 = obj1Value.Convert(timeType).Interface().(time.Time) - } - - timeObj2, ok := obj2.(time.Time) - if !ok { - timeObj2 = obj2Value.Convert(timeType).Interface().(time.Time) - } - - return compare(timeObj1.UnixNano(), timeObj2.UnixNano(), reflect.Int64) - } - case reflect.Slice: - { - // We only care about the []byte type. - if !canConvert(obj1Value, bytesType) { - break - } - - // []byte can be compared! - bytesObj1, ok := obj1.([]byte) - if !ok { - bytesObj1 = obj1Value.Convert(bytesType).Interface().([]byte) - - } - bytesObj2, ok := obj2.([]byte) - if !ok { - bytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte) - } - - return CompareType(bytes.Compare(bytesObj1, bytesObj2)), true - } - } - - return compareEqual, false -} - -// Greater asserts that the first element is greater than the second -// -// assert.Greater(t, 2, 1) -// assert.Greater(t, float64(2), float64(1)) -// assert.Greater(t, "b", "a") -func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return compareTwoValues(t, e1, e2, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqual(t, 2, 1) -// assert.GreaterOrEqual(t, 2, 2) -// assert.GreaterOrEqual(t, "b", "a") -// assert.GreaterOrEqual(t, "b", "b") -func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return compareTwoValues(t, e1, e2, []CompareType{compareGreater, compareEqual}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) -} - -// Less asserts that the first element is less than the second -// -// assert.Less(t, 1, 2) -// assert.Less(t, float64(1), float64(2)) -// assert.Less(t, "a", "b") -func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return compareTwoValues(t, e1, e2, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// assert.LessOrEqual(t, 1, 2) -// assert.LessOrEqual(t, 2, 2) -// assert.LessOrEqual(t, "a", "b") -// assert.LessOrEqual(t, "b", "b") -func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return compareTwoValues(t, e1, e2, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) -} - -// Positive asserts that the specified element is positive -// -// assert.Positive(t, 1) -// assert.Positive(t, 1.23) -func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - zero := reflect.Zero(reflect.TypeOf(e)) - return compareTwoValues(t, e, zero.Interface(), []CompareType{compareGreater}, "\"%v\" is not positive", msgAndArgs...) -} - -// Negative asserts that the specified element is negative -// -// assert.Negative(t, -1) -// assert.Negative(t, -1.23) -func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - zero := reflect.Zero(reflect.TypeOf(e)) - return compareTwoValues(t, e, zero.Interface(), []CompareType{compareLess}, "\"%v\" is not negative", msgAndArgs...) -} - -func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - e1Kind := reflect.ValueOf(e1).Kind() - e2Kind := reflect.ValueOf(e2).Kind() - if e1Kind != e2Kind { - return Fail(t, "Elements should be the same type", msgAndArgs...) - } - - compareResult, isComparable := compare(e1, e2, e1Kind) - if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) - } - - if !containsValue(allowedComparesResults, compareResult) { - return Fail(t, fmt.Sprintf(failMessage, e1, e2), msgAndArgs...) - } - - return true -} - -func containsValue(values []CompareType, value CompareType) bool { - for _, v := range values { - if v == value { - return true - } - } - - return false -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go b/backend/vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go deleted file mode 100644 index da867903..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build go1.17 -// +build go1.17 - -// TODO: once support for Go 1.16 is dropped, this file can be -// merged/removed with assertion_compare_go1.17_test.go and -// assertion_compare_legacy.go - -package assert - -import "reflect" - -// Wrapper around reflect.Value.CanConvert, for compatibility -// reasons. -func canConvert(value reflect.Value, to reflect.Type) bool { - return value.CanConvert(to) -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go b/backend/vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go deleted file mode 100644 index 1701af2a..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !go1.17 -// +build !go1.17 - -// TODO: once support for Go 1.16 is dropped, this file can be -// merged/removed with assertion_compare_go1.17_test.go and -// assertion_compare_can_convert.go - -package assert - -import "reflect" - -// Older versions of Go does not have the reflect.Value.CanConvert -// method. -func canConvert(value reflect.Value, to reflect.Type) bool { - return false -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_format.go b/backend/vendor/github.com/stretchr/testify/assert/assertion_format.go deleted file mode 100644 index 84dbd6c7..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_format.go +++ /dev/null @@ -1,805 +0,0 @@ -/* -* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen -* THIS FILE MUST NOT BE EDITED BY HAND - */ - -package assert - -import ( - http "net/http" - url "net/url" - time "time" -) - -// Conditionf uses a Comparison to assert a complex condition. -func Conditionf(t TestingT, comp Comparison, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Condition(t, comp, append([]interface{}{msg}, args...)...) -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// assert.Containsf(t, "Hello World", "World", "error message %s", "formatted") -// assert.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted") -// assert.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted") -func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Contains(t, s, contains, append([]interface{}{msg}, args...)...) -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return DirExists(t, path, append([]interface{}{msg}, args...)...) -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) -} - -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// assert.Emptyf(t, obj, "error message %s", "formatted") -func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Empty(t, object, append([]interface{}{msg}, args...)...) -} - -// Equalf asserts that two objects are equal. -// -// assert.Equalf(t, 123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Equal(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// assert.EqualErrorf(t, err, expectedErrorString, "error message %s", "formatted") -func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EqualError(t, theError, errString, append([]interface{}{msg}, args...)...) -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// assert.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// assert.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// EqualValuesf asserts that two objects are equal or convertable to the same types -// and equal. -// -// assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") -func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if assert.Errorf(t, err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } -func Errorf(t TestingT, err error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Error(t, err, append([]interface{}{msg}, args...)...) -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ErrorAs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// assert.ErrorContainsf(t, err, expectedErrorSubString, "error message %s", "formatted") -func ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ErrorContains(t, theError, contains, append([]interface{}{msg}, args...)...) -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ErrorIs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// assert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Eventually(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// assert.EventuallyWithTf(t, func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EventuallyWithT(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// assert.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") -func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Exactly(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Failf reports a failure through -func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, failureMessage, append([]interface{}{msg}, args...)...) -} - -// FailNowf fails test -func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return FailNow(t, failureMessage, append([]interface{}{msg}, args...)...) -} - -// Falsef asserts that the specified value is false. -// -// assert.Falsef(t, myBool, "error message %s", "formatted") -func Falsef(t TestingT, value bool, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return False(t, value, append([]interface{}{msg}, args...)...) -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return FileExists(t, path, append([]interface{}{msg}, args...)...) -} - -// Greaterf asserts that the first element is greater than the second -// -// assert.Greaterf(t, 2, 1, "error message %s", "formatted") -// assert.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") -// assert.Greaterf(t, "b", "a", "error message %s", "formatted") -func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Greater(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqualf(t, 2, 1, "error message %s", "formatted") -// assert.GreaterOrEqualf(t, 2, 2, "error message %s", "formatted") -// assert.GreaterOrEqualf(t, "b", "a", "error message %s", "formatted") -// assert.GreaterOrEqualf(t, "b", "b", "error message %s", "formatted") -func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return GreaterOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// assert.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPBodyContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...) -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// assert.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPBodyNotContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...) -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPError(t, handler, method, url, values, append([]interface{}{msg}, args...)...) -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...) -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// assert.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPStatusCode(t, handler, method, url, values, statuscode, append([]interface{}{msg}, args...)...) -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPSuccess(t, handler, method, url, values, append([]interface{}{msg}, args...)...) -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// assert.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Implements(t, interfaceObject, object, append([]interface{}{msg}, args...)...) -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// assert.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InDelta(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InDeltaMapValues(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InDeltaSlice(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InEpsilon(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) -} - -// IsDecreasingf asserts that the collection is decreasing -// -// assert.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") -// assert.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") -// assert.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsDecreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsIncreasingf asserts that the collection is increasing -// -// assert.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") -// assert.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") -// assert.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsIncreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// assert.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") -// assert.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") -// assert.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsNonDecreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// assert.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") -// assert.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") -// assert.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsTypef asserts that the specified objects are of the same type. -func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsType(t, expectedType, object, append([]interface{}{msg}, args...)...) -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// assert.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// assert.Lenf(t, mySlice, 3, "error message %s", "formatted") -func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Len(t, object, length, append([]interface{}{msg}, args...)...) -} - -// Lessf asserts that the first element is less than the second -// -// assert.Lessf(t, 1, 2, "error message %s", "formatted") -// assert.Lessf(t, float64(1), float64(2), "error message %s", "formatted") -// assert.Lessf(t, "a", "b", "error message %s", "formatted") -func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Less(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// assert.LessOrEqualf(t, 1, 2, "error message %s", "formatted") -// assert.LessOrEqualf(t, 2, 2, "error message %s", "formatted") -// assert.LessOrEqualf(t, "a", "b", "error message %s", "formatted") -// assert.LessOrEqualf(t, "b", "b", "error message %s", "formatted") -func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// Negativef asserts that the specified element is negative -// -// assert.Negativef(t, -1, "error message %s", "formatted") -// assert.Negativef(t, -1.23, "error message %s", "formatted") -func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Negative(t, e, append([]interface{}{msg}, args...)...) -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// assert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Never(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) -} - -// Nilf asserts that the specified object is nil. -// -// assert.Nilf(t, err, "error message %s", "formatted") -func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Nil(t, object, append([]interface{}{msg}, args...)...) -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NoDirExists(t, path, append([]interface{}{msg}, args...)...) -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if assert.NoErrorf(t, err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NoError(t, err, append([]interface{}{msg}, args...)...) -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NoFileExists(t, path, append([]interface{}{msg}, args...)...) -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// assert.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted") -// assert.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted") -// assert.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted") -func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotContains(t, s, contains, append([]interface{}{msg}, args...)...) -} - -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if assert.NotEmptyf(t, obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotEmpty(t, object, append([]interface{}{msg}, args...)...) -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// assert.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") -func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// NotErrorIsf asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotErrorIs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// NotNilf asserts that the specified object is not nil. -// -// assert.NotNilf(t, err, "error message %s", "formatted") -func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotNil(t, object, append([]interface{}{msg}, args...)...) -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// assert.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted") -func NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotPanics(t, f, append([]interface{}{msg}, args...)...) -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// assert.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") -func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...) -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// assert.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotSame(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// NotSubsetf asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// assert.NotSubsetf(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted") -func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotSubset(t, list, subset, append([]interface{}{msg}, args...)...) -} - -// NotZerof asserts that i is not the zero value for its type. -func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotZero(t, i, append([]interface{}{msg}, args...)...) -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// assert.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted") -func Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Panics(t, f, append([]interface{}{msg}, args...)...) -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// assert.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithErrorf(t TestingT, errString string, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return PanicsWithError(t, errString, f, append([]interface{}{msg}, args...)...) -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// assert.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...) -} - -// Positivef asserts that the specified element is positive -// -// assert.Positivef(t, 1, "error message %s", "formatted") -// assert.Positivef(t, 1.23, "error message %s", "formatted") -func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Positive(t, e, append([]interface{}{msg}, args...)...) -} - -// Regexpf asserts that a specified regexp matches a string. -// -// assert.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") -func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Regexp(t, rx, str, append([]interface{}{msg}, args...)...) -} - -// Samef asserts that two pointers reference the same object. -// -// assert.Samef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Same(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Subsetf asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// assert.Subsetf(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted") -func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Subset(t, list, subset, append([]interface{}{msg}, args...)...) -} - -// Truef asserts that the specified value is true. -// -// assert.Truef(t, myBool, "error message %s", "formatted") -func Truef(t TestingT, value bool, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return True(t, value, append([]interface{}{msg}, args...)...) -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// assert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// assert.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return WithinRange(t, actual, start, end, append([]interface{}{msg}, args...)...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Zerof asserts that i is the zero value for its type. -func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Zero(t, i, append([]interface{}{msg}, args...)...) -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl b/backend/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl deleted file mode 100644 index d2bb0b81..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{.CommentFormat}} -func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool { - if h, ok := t.(tHelper); ok { h.Helper() } - return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}}) -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go deleted file mode 100644 index b1d94aec..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go +++ /dev/null @@ -1,1598 +0,0 @@ -/* -* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen -* THIS FILE MUST NOT BE EDITED BY HAND - */ - -package assert - -import ( - http "net/http" - url "net/url" - time "time" -) - -// Condition uses a Comparison to assert a complex condition. -func (a *Assertions) Condition(comp Comparison, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Condition(a.t, comp, msgAndArgs...) -} - -// Conditionf uses a Comparison to assert a complex condition. -func (a *Assertions) Conditionf(comp Comparison, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Conditionf(a.t, comp, msg, args...) -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Contains("Hello World", "World") -// a.Contains(["Hello", "World"], "World") -// a.Contains({"Hello": "World"}, "Hello") -func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Contains(a.t, s, contains, msgAndArgs...) -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Containsf("Hello World", "World", "error message %s", "formatted") -// a.Containsf(["Hello", "World"], "World", "error message %s", "formatted") -// a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted") -func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Containsf(a.t, s, contains, msg, args...) -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return DirExists(a.t, path, msgAndArgs...) -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return DirExistsf(a.t, path, msg, args...) -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2]) -func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ElementsMatch(a.t, listA, listB, msgAndArgs...) -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ElementsMatchf(a.t, listA, listB, msg, args...) -} - -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// a.Empty(obj) -func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Empty(a.t, object, msgAndArgs...) -} - -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// a.Emptyf(obj, "error message %s", "formatted") -func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Emptyf(a.t, object, msg, args...) -} - -// Equal asserts that two objects are equal. -// -// a.Equal(123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Equal(a.t, expected, actual, msgAndArgs...) -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualError(err, expectedErrorString) -func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualError(a.t, theError, errString, msgAndArgs...) -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualErrorf(err, expectedErrorString, "error message %s", "formatted") -func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualErrorf(a.t, theError, errString, msg, args...) -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValues(S{1, 2}, S{1, 3}) => true -// a.EqualExportedValues(S{1, 2}, S{2, 3}) => false -func (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualExportedValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValuesf(S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// a.EqualExportedValuesf(S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualExportedValuesf(a.t, expected, actual, msg, args...) -} - -// EqualValues asserts that two objects are equal or convertable to the same types -// and equal. -// -// a.EqualValues(uint32(123), int32(123)) -func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualValuesf asserts that two objects are equal or convertable to the same types -// and equal. -// -// a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") -func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualValuesf(a.t, expected, actual, msg, args...) -} - -// Equalf asserts that two objects are equal. -// -// a.Equalf(123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Equalf(a.t, expected, actual, msg, args...) -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if a.Error(err) { -// assert.Equal(t, expectedError, err) -// } -func (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Error(a.t, err, msgAndArgs...) -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorAs(a.t, err, target, msgAndArgs...) -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorAsf(a.t, err, target, msg, args...) -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContains(err, expectedErrorSubString) -func (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorContains(a.t, theError, contains, msgAndArgs...) -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContainsf(err, expectedErrorSubString, "error message %s", "formatted") -func (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorContainsf(a.t, theError, contains, msg, args...) -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorIs(a.t, err, target, msgAndArgs...) -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorIsf(a.t, err, target, msg, args...) -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if a.Errorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } -func (a *Assertions) Errorf(err error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Errorf(a.t, err, msg, args...) -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Eventually(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithT(func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EventuallyWithT(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithTf(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EventuallyWithTf(a.t, condition, waitFor, tick, msg, args...) -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Eventuallyf(a.t, condition, waitFor, tick, msg, args...) -} - -// Exactly asserts that two objects are equal in value and type. -// -// a.Exactly(int32(123), int64(123)) -func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Exactly(a.t, expected, actual, msgAndArgs...) -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// a.Exactlyf(int32(123), int64(123), "error message %s", "formatted") -func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Exactlyf(a.t, expected, actual, msg, args...) -} - -// Fail reports a failure through -func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Fail(a.t, failureMessage, msgAndArgs...) -} - -// FailNow fails test -func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FailNow(a.t, failureMessage, msgAndArgs...) -} - -// FailNowf fails test -func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FailNowf(a.t, failureMessage, msg, args...) -} - -// Failf reports a failure through -func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Failf(a.t, failureMessage, msg, args...) -} - -// False asserts that the specified value is false. -// -// a.False(myBool) -func (a *Assertions) False(value bool, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return False(a.t, value, msgAndArgs...) -} - -// Falsef asserts that the specified value is false. -// -// a.Falsef(myBool, "error message %s", "formatted") -func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Falsef(a.t, value, msg, args...) -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FileExists(a.t, path, msgAndArgs...) -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FileExistsf(a.t, path, msg, args...) -} - -// Greater asserts that the first element is greater than the second -// -// a.Greater(2, 1) -// a.Greater(float64(2), float64(1)) -// a.Greater("b", "a") -func (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Greater(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqual(2, 1) -// a.GreaterOrEqual(2, 2) -// a.GreaterOrEqual("b", "a") -// a.GreaterOrEqual("b", "b") -func (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return GreaterOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqualf(2, 1, "error message %s", "formatted") -// a.GreaterOrEqualf(2, 2, "error message %s", "formatted") -// a.GreaterOrEqualf("b", "a", "error message %s", "formatted") -// a.GreaterOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return GreaterOrEqualf(a.t, e1, e2, msg, args...) -} - -// Greaterf asserts that the first element is greater than the second -// -// a.Greaterf(2, 1, "error message %s", "formatted") -// a.Greaterf(float64(2), float64(1), "error message %s", "formatted") -// a.Greaterf("b", "a", "error message %s", "formatted") -func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Greaterf(a.t, e1, e2, msg, args...) -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPError(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPErrorf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPRedirectf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...) -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...) -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPSuccessf(a.t, handler, method, url, values, msg, args...) -} - -// Implements asserts that an object is implemented by the specified interface. -// -// a.Implements((*MyInterface)(nil), new(MyObject)) -func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Implements(a.t, interfaceObject, object, msgAndArgs...) -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Implementsf(a.t, interfaceObject, object, msg, args...) -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// a.InDelta(math.Pi, 22/7.0, 0.01) -func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDelta(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaSlicef(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaf(a.t, expected, actual, delta, msg, args...) -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...) -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilonf(a.t, expected, actual, epsilon, msg, args...) -} - -// IsDecreasing asserts that the collection is decreasing -// -// a.IsDecreasing([]int{2, 1, 0}) -// a.IsDecreasing([]float{2, 1}) -// a.IsDecreasing([]string{"b", "a"}) -func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsDecreasing(a.t, object, msgAndArgs...) -} - -// IsDecreasingf asserts that the collection is decreasing -// -// a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted") -// a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsDecreasingf(a.t, object, msg, args...) -} - -// IsIncreasing asserts that the collection is increasing -// -// a.IsIncreasing([]int{1, 2, 3}) -// a.IsIncreasing([]float{1, 2}) -// a.IsIncreasing([]string{"a", "b"}) -func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsIncreasing(a.t, object, msgAndArgs...) -} - -// IsIncreasingf asserts that the collection is increasing -// -// a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted") -// a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsIncreasingf(a.t, object, msg, args...) -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// a.IsNonDecreasing([]int{1, 1, 2}) -// a.IsNonDecreasing([]float{1, 2}) -// a.IsNonDecreasing([]string{"a", "b"}) -func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonDecreasing(a.t, object, msgAndArgs...) -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonDecreasingf(a.t, object, msg, args...) -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// a.IsNonIncreasing([]int{2, 1, 1}) -// a.IsNonIncreasing([]float{2, 1}) -// a.IsNonIncreasing([]string{"b", "a"}) -func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonIncreasing(a.t, object, msgAndArgs...) -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonIncreasingf(a.t, object, msg, args...) -} - -// IsType asserts that the specified objects are of the same type. -func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsType(a.t, expectedType, object, msgAndArgs...) -} - -// IsTypef asserts that the specified objects are of the same type. -func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsTypef(a.t, expectedType, object, msg, args...) -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return JSONEq(a.t, expected, actual, msgAndArgs...) -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return JSONEqf(a.t, expected, actual, msg, args...) -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// a.Len(mySlice, 3) -func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Len(a.t, object, length, msgAndArgs...) -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// a.Lenf(mySlice, 3, "error message %s", "formatted") -func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Lenf(a.t, object, length, msg, args...) -} - -// Less asserts that the first element is less than the second -// -// a.Less(1, 2) -// a.Less(float64(1), float64(2)) -// a.Less("a", "b") -func (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Less(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// a.LessOrEqual(1, 2) -// a.LessOrEqual(2, 2) -// a.LessOrEqual("a", "b") -// a.LessOrEqual("b", "b") -func (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return LessOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// a.LessOrEqualf(1, 2, "error message %s", "formatted") -// a.LessOrEqualf(2, 2, "error message %s", "formatted") -// a.LessOrEqualf("a", "b", "error message %s", "formatted") -// a.LessOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return LessOrEqualf(a.t, e1, e2, msg, args...) -} - -// Lessf asserts that the first element is less than the second -// -// a.Lessf(1, 2, "error message %s", "formatted") -// a.Lessf(float64(1), float64(2), "error message %s", "formatted") -// a.Lessf("a", "b", "error message %s", "formatted") -func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Lessf(a.t, e1, e2, msg, args...) -} - -// Negative asserts that the specified element is negative -// -// a.Negative(-1) -// a.Negative(-1.23) -func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Negative(a.t, e, msgAndArgs...) -} - -// Negativef asserts that the specified element is negative -// -// a.Negativef(-1, "error message %s", "formatted") -// a.Negativef(-1.23, "error message %s", "formatted") -func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Negativef(a.t, e, msg, args...) -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Never(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Neverf(a.t, condition, waitFor, tick, msg, args...) -} - -// Nil asserts that the specified object is nil. -// -// a.Nil(err) -func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Nil(a.t, object, msgAndArgs...) -} - -// Nilf asserts that the specified object is nil. -// -// a.Nilf(err, "error message %s", "formatted") -func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Nilf(a.t, object, msg, args...) -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoDirExists(a.t, path, msgAndArgs...) -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoDirExistsf(a.t, path, msg, args...) -} - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoError(err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoError(err error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoError(a.t, err, msgAndArgs...) -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoErrorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoErrorf(a.t, err, msg, args...) -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoFileExists(a.t, path, msgAndArgs...) -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoFileExistsf(a.t, path, msg, args...) -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContains("Hello World", "Earth") -// a.NotContains(["Hello", "World"], "Earth") -// a.NotContains({"Hello": "World"}, "Earth") -func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotContains(a.t, s, contains, msgAndArgs...) -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContainsf("Hello World", "Earth", "error message %s", "formatted") -// a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted") -// a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted") -func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotContainsf(a.t, s, contains, msg, args...) -} - -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if a.NotEmpty(obj) { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEmpty(a.t, object, msgAndArgs...) -} - -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if a.NotEmptyf(obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEmptyf(a.t, object, msg, args...) -} - -// NotEqual asserts that the specified values are NOT equal. -// -// a.NotEqual(obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqual(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValues(obj1, obj2) -func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqualValues(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted") -func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqualValuesf(a.t, expected, actual, msg, args...) -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// a.NotEqualf(obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqualf(a.t, expected, actual, msg, args...) -} - -// NotErrorIs asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotErrorIs(a.t, err, target, msgAndArgs...) -} - -// NotErrorIsf asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotErrorIsf(a.t, err, target, msg, args...) -} - -// NotNil asserts that the specified object is not nil. -// -// a.NotNil(err) -func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotNil(a.t, object, msgAndArgs...) -} - -// NotNilf asserts that the specified object is not nil. -// -// a.NotNilf(err, "error message %s", "formatted") -func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotNilf(a.t, object, msg, args...) -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanics(func(){ RemainCalm() }) -func (a *Assertions) NotPanics(f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotPanics(a.t, f, msgAndArgs...) -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted") -func (a *Assertions) NotPanicsf(f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotPanicsf(a.t, f, msg, args...) -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// a.NotRegexp(regexp.MustCompile("starts"), "it's starting") -// a.NotRegexp("^start", "it's not starting") -func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotRegexp(a.t, rx, str, msgAndArgs...) -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted") -func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotRegexpf(a.t, rx, str, msg, args...) -} - -// NotSame asserts that two pointers do not reference the same object. -// -// a.NotSame(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSame(a.t, expected, actual, msgAndArgs...) -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// a.NotSamef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSamef(a.t, expected, actual, msg, args...) -} - -// NotSubset asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// a.NotSubset([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]") -func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSubset(a.t, list, subset, msgAndArgs...) -} - -// NotSubsetf asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// a.NotSubsetf([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted") -func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSubsetf(a.t, list, subset, msg, args...) -} - -// NotZero asserts that i is not the zero value for its type. -func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotZero(a.t, i, msgAndArgs...) -} - -// NotZerof asserts that i is not the zero value for its type. -func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotZerof(a.t, i, msg, args...) -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panics(func(){ GoCrazy() }) -func (a *Assertions) Panics(f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Panics(a.t, f, msgAndArgs...) -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithError("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithError(errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithError(a.t, errString, f, msgAndArgs...) -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithErrorf(errString string, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithErrorf(a.t, errString, f, msg, args...) -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValue("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithValue(expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithValue(a.t, expected, f, msgAndArgs...) -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithValuef(expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithValuef(a.t, expected, f, msg, args...) -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) Panicsf(f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Panicsf(a.t, f, msg, args...) -} - -// Positive asserts that the specified element is positive -// -// a.Positive(1) -// a.Positive(1.23) -func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Positive(a.t, e, msgAndArgs...) -} - -// Positivef asserts that the specified element is positive -// -// a.Positivef(1, "error message %s", "formatted") -// a.Positivef(1.23, "error message %s", "formatted") -func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Positivef(a.t, e, msg, args...) -} - -// Regexp asserts that a specified regexp matches a string. -// -// a.Regexp(regexp.MustCompile("start"), "it's starting") -// a.Regexp("start...$", "it's not starting") -func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Regexp(a.t, rx, str, msgAndArgs...) -} - -// Regexpf asserts that a specified regexp matches a string. -// -// a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// a.Regexpf("start...$", "it's not starting", "error message %s", "formatted") -func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Regexpf(a.t, rx, str, msg, args...) -} - -// Same asserts that two pointers reference the same object. -// -// a.Same(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Same(a.t, expected, actual, msgAndArgs...) -} - -// Samef asserts that two pointers reference the same object. -// -// a.Samef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Samef(a.t, expected, actual, msg, args...) -} - -// Subset asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// a.Subset([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]") -func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Subset(a.t, list, subset, msgAndArgs...) -} - -// Subsetf asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// a.Subsetf([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted") -func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Subsetf(a.t, list, subset, msg, args...) -} - -// True asserts that the specified value is true. -// -// a.True(myBool) -func (a *Assertions) True(value bool, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return True(a.t, value, msgAndArgs...) -} - -// Truef asserts that the specified value is true. -// -// a.Truef(myBool, "error message %s", "formatted") -func (a *Assertions) Truef(value bool, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Truef(a.t, value, msg, args...) -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// a.WithinDuration(time.Now(), time.Now(), 10*time.Second) -func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinDuration(a.t, expected, actual, delta, msgAndArgs...) -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinDurationf(a.t, expected, actual, delta, msg, args...) -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// a.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinRange(a.t, actual, start, end, msgAndArgs...) -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// a.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinRangef(a.t, actual, start, end, msg, args...) -} - -// YAMLEq asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return YAMLEq(a.t, expected, actual, msgAndArgs...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return YAMLEqf(a.t, expected, actual, msg, args...) -} - -// Zero asserts that i is the zero value for its type. -func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Zero(a.t, i, msgAndArgs...) -} - -// Zerof asserts that i is the zero value for its type. -func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Zerof(a.t, i, msg, args...) -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl b/backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl deleted file mode 100644 index 188bb9e1..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{.CommentWithoutT "a"}} -func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool { - if h, ok := a.t.(tHelper); ok { h.Helper() } - return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}}) -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertion_order.go b/backend/vendor/github.com/stretchr/testify/assert/assertion_order.go deleted file mode 100644 index 00df62a0..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertion_order.go +++ /dev/null @@ -1,81 +0,0 @@ -package assert - -import ( - "fmt" - "reflect" -) - -// isOrdered checks that collection contains orderable elements. -func isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { - objKind := reflect.TypeOf(object).Kind() - if objKind != reflect.Slice && objKind != reflect.Array { - return false - } - - objValue := reflect.ValueOf(object) - objLen := objValue.Len() - - if objLen <= 1 { - return true - } - - value := objValue.Index(0) - valueInterface := value.Interface() - firstValueKind := value.Kind() - - for i := 1; i < objLen; i++ { - prevValue := value - prevValueInterface := valueInterface - - value = objValue.Index(i) - valueInterface = value.Interface() - - compareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind) - - if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\" and \"%s\"", reflect.TypeOf(value), reflect.TypeOf(prevValue)), msgAndArgs...) - } - - if !containsValue(allowedComparesResults, compareResult) { - return Fail(t, fmt.Sprintf(failMessage, prevValue, value), msgAndArgs...) - } - } - - return true -} - -// IsIncreasing asserts that the collection is increasing -// -// assert.IsIncreasing(t, []int{1, 2, 3}) -// assert.IsIncreasing(t, []float{1, 2}) -// assert.IsIncreasing(t, []string{"a", "b"}) -func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// assert.IsNonIncreasing(t, []int{2, 1, 1}) -// assert.IsNonIncreasing(t, []float{2, 1}) -// assert.IsNonIncreasing(t, []string{"b", "a"}) -func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []CompareType{compareEqual, compareGreater}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) -} - -// IsDecreasing asserts that the collection is decreasing -// -// assert.IsDecreasing(t, []int{2, 1, 0}) -// assert.IsDecreasing(t, []float{2, 1}) -// assert.IsDecreasing(t, []string{"b", "a"}) -func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// assert.IsNonDecreasing(t, []int{1, 1, 2}) -// assert.IsNonDecreasing(t, []float{1, 2}) -// assert.IsNonDecreasing(t, []string{"a", "b"}) -func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/assertions.go b/backend/vendor/github.com/stretchr/testify/assert/assertions.go deleted file mode 100644 index a55d1bba..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/assertions.go +++ /dev/null @@ -1,2054 +0,0 @@ -package assert - -import ( - "bufio" - "bytes" - "encoding/json" - "errors" - "fmt" - "math" - "os" - "reflect" - "regexp" - "runtime" - "runtime/debug" - "strings" - "time" - "unicode" - "unicode/utf8" - - "github.com/davecgh/go-spew/spew" - "github.com/pmezard/go-difflib/difflib" - yaml "gopkg.in/yaml.v3" -) - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" - -// TestingT is an interface wrapper around *testing.T -type TestingT interface { - Errorf(format string, args ...interface{}) -} - -// ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful -// for table driven tests. -type ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) bool - -// ValueAssertionFunc is a common function prototype when validating a single value. Can be useful -// for table driven tests. -type ValueAssertionFunc func(TestingT, interface{}, ...interface{}) bool - -// BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful -// for table driven tests. -type BoolAssertionFunc func(TestingT, bool, ...interface{}) bool - -// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful -// for table driven tests. -type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool - -// Comparison is a custom function that returns true on success and false on failure -type Comparison func() (success bool) - -/* - Helper functions -*/ - -// ObjectsAreEqual determines if two objects are considered equal. -// -// This function does no assertion of any kind. -func ObjectsAreEqual(expected, actual interface{}) bool { - if expected == nil || actual == nil { - return expected == actual - } - - exp, ok := expected.([]byte) - if !ok { - return reflect.DeepEqual(expected, actual) - } - - act, ok := actual.([]byte) - if !ok { - return false - } - if exp == nil || act == nil { - return exp == nil && act == nil - } - return bytes.Equal(exp, act) -} - -// copyExportedFields iterates downward through nested data structures and creates a copy -// that only contains the exported struct fields. -func copyExportedFields(expected interface{}) interface{} { - if isNil(expected) { - return expected - } - - expectedType := reflect.TypeOf(expected) - expectedKind := expectedType.Kind() - expectedValue := reflect.ValueOf(expected) - - switch expectedKind { - case reflect.Struct: - result := reflect.New(expectedType).Elem() - for i := 0; i < expectedType.NumField(); i++ { - field := expectedType.Field(i) - isExported := field.IsExported() - if isExported { - fieldValue := expectedValue.Field(i) - if isNil(fieldValue) || isNil(fieldValue.Interface()) { - continue - } - newValue := copyExportedFields(fieldValue.Interface()) - result.Field(i).Set(reflect.ValueOf(newValue)) - } - } - return result.Interface() - - case reflect.Ptr: - result := reflect.New(expectedType.Elem()) - unexportedRemoved := copyExportedFields(expectedValue.Elem().Interface()) - result.Elem().Set(reflect.ValueOf(unexportedRemoved)) - return result.Interface() - - case reflect.Array, reflect.Slice: - result := reflect.MakeSlice(expectedType, expectedValue.Len(), expectedValue.Len()) - for i := 0; i < expectedValue.Len(); i++ { - index := expectedValue.Index(i) - if isNil(index) { - continue - } - unexportedRemoved := copyExportedFields(index.Interface()) - result.Index(i).Set(reflect.ValueOf(unexportedRemoved)) - } - return result.Interface() - - case reflect.Map: - result := reflect.MakeMap(expectedType) - for _, k := range expectedValue.MapKeys() { - index := expectedValue.MapIndex(k) - unexportedRemoved := copyExportedFields(index.Interface()) - result.SetMapIndex(k, reflect.ValueOf(unexportedRemoved)) - } - return result.Interface() - - default: - return expected - } -} - -// ObjectsExportedFieldsAreEqual determines if the exported (public) fields of two objects are -// considered equal. This comparison of only exported fields is applied recursively to nested data -// structures. -// -// This function does no assertion of any kind. -func ObjectsExportedFieldsAreEqual(expected, actual interface{}) bool { - expectedCleaned := copyExportedFields(expected) - actualCleaned := copyExportedFields(actual) - return ObjectsAreEqualValues(expectedCleaned, actualCleaned) -} - -// ObjectsAreEqualValues gets whether two objects are equal, or if their -// values are equal. -func ObjectsAreEqualValues(expected, actual interface{}) bool { - if ObjectsAreEqual(expected, actual) { - return true - } - - actualType := reflect.TypeOf(actual) - if actualType == nil { - return false - } - expectedValue := reflect.ValueOf(expected) - if expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) { - // Attempt comparison after type conversion - return reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual) - } - - return false -} - -/* CallerInfo is necessary because the assert functions use the testing object -internally, causing it to print the file:line of the assert method, rather than where -the problem actually occurred in calling code.*/ - -// CallerInfo returns an array of strings containing the file and line number -// of each stack frame leading from the current test to the assert call that -// failed. -func CallerInfo() []string { - - var pc uintptr - var ok bool - var file string - var line int - var name string - - callers := []string{} - for i := 0; ; i++ { - pc, file, line, ok = runtime.Caller(i) - if !ok { - // The breaks below failed to terminate the loop, and we ran off the - // end of the call stack. - break - } - - // This is a huge edge case, but it will panic if this is the case, see #180 - if file == "" { - break - } - - f := runtime.FuncForPC(pc) - if f == nil { - break - } - name = f.Name() - - // testing.tRunner is the standard library function that calls - // tests. Subtests are called directly by tRunner, without going through - // the Test/Benchmark/Example function that contains the t.Run calls, so - // with subtests we should break when we hit tRunner, without adding it - // to the list of callers. - if name == "testing.tRunner" { - break - } - - parts := strings.Split(file, "/") - if len(parts) > 1 { - filename := parts[len(parts)-1] - dir := parts[len(parts)-2] - if (dir != "assert" && dir != "mock" && dir != "require") || filename == "mock_test.go" { - callers = append(callers, fmt.Sprintf("%s:%d", file, line)) - } - } - - // Drop the package - segments := strings.Split(name, ".") - name = segments[len(segments)-1] - if isTest(name, "Test") || - isTest(name, "Benchmark") || - isTest(name, "Example") { - break - } - } - - return callers -} - -// Stolen from the `go test` tool. -// isTest tells whether name looks like a test (or benchmark, according to prefix). -// It is a Test (say) if there is a character after Test that is not a lower-case letter. -// We don't want TesticularCancer. -func isTest(name, prefix string) bool { - if !strings.HasPrefix(name, prefix) { - return false - } - if len(name) == len(prefix) { // "Test" is ok - return true - } - r, _ := utf8.DecodeRuneInString(name[len(prefix):]) - return !unicode.IsLower(r) -} - -func messageFromMsgAndArgs(msgAndArgs ...interface{}) string { - if len(msgAndArgs) == 0 || msgAndArgs == nil { - return "" - } - if len(msgAndArgs) == 1 { - msg := msgAndArgs[0] - if msgAsStr, ok := msg.(string); ok { - return msgAsStr - } - return fmt.Sprintf("%+v", msg) - } - if len(msgAndArgs) > 1 { - return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...) - } - return "" -} - -// Aligns the provided message so that all lines after the first line start at the same location as the first line. -// Assumes that the first line starts at the correct location (after carriage return, tab, label, spacer and tab). -// The longestLabelLen parameter specifies the length of the longest label in the output (required becaues this is the -// basis on which the alignment occurs). -func indentMessageLines(message string, longestLabelLen int) string { - outBuf := new(bytes.Buffer) - - for i, scanner := 0, bufio.NewScanner(strings.NewReader(message)); scanner.Scan(); i++ { - // no need to align first line because it starts at the correct location (after the label) - if i != 0 { - // append alignLen+1 spaces to align with "{{longestLabel}}:" before adding tab - outBuf.WriteString("\n\t" + strings.Repeat(" ", longestLabelLen+1) + "\t") - } - outBuf.WriteString(scanner.Text()) - } - - return outBuf.String() -} - -type failNower interface { - FailNow() -} - -// FailNow fails test -func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - Fail(t, failureMessage, msgAndArgs...) - - // We cannot extend TestingT with FailNow() and - // maintain backwards compatibility, so we fallback - // to panicking when FailNow is not available in - // TestingT. - // See issue #263 - - if t, ok := t.(failNower); ok { - t.FailNow() - } else { - panic("test failed and t is missing `FailNow()`") - } - return false -} - -// Fail reports a failure through -func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - content := []labeledContent{ - {"Error Trace", strings.Join(CallerInfo(), "\n\t\t\t")}, - {"Error", failureMessage}, - } - - // Add test name if the Go version supports it - if n, ok := t.(interface { - Name() string - }); ok { - content = append(content, labeledContent{"Test", n.Name()}) - } - - message := messageFromMsgAndArgs(msgAndArgs...) - if len(message) > 0 { - content = append(content, labeledContent{"Messages", message}) - } - - t.Errorf("\n%s", ""+labeledOutput(content...)) - - return false -} - -type labeledContent struct { - label string - content string -} - -// labeledOutput returns a string consisting of the provided labeledContent. Each labeled output is appended in the following manner: -// -// \t{{label}}:{{align_spaces}}\t{{content}}\n -// -// The initial carriage return is required to undo/erase any padding added by testing.T.Errorf. The "\t{{label}}:" is for the label. -// If a label is shorter than the longest label provided, padding spaces are added to make all the labels match in length. Once this -// alignment is achieved, "\t{{content}}\n" is added for the output. -// -// If the content of the labeledOutput contains line breaks, the subsequent lines are aligned so that they start at the same location as the first line. -func labeledOutput(content ...labeledContent) string { - longestLabel := 0 - for _, v := range content { - if len(v.label) > longestLabel { - longestLabel = len(v.label) - } - } - var output string - for _, v := range content { - output += "\t" + v.label + ":" + strings.Repeat(" ", longestLabel-len(v.label)) + "\t" + indentMessageLines(v.content, longestLabel) + "\n" - } - return output -} - -// Implements asserts that an object is implemented by the specified interface. -// -// assert.Implements(t, (*MyInterface)(nil), new(MyObject)) -func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - interfaceType := reflect.TypeOf(interfaceObject).Elem() - - if object == nil { - return Fail(t, fmt.Sprintf("Cannot check if nil implements %v", interfaceType), msgAndArgs...) - } - if !reflect.TypeOf(object).Implements(interfaceType) { - return Fail(t, fmt.Sprintf("%T must implement %v", object, interfaceType), msgAndArgs...) - } - - return true -} - -// IsType asserts that the specified objects are of the same type. -func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if !ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) { - return Fail(t, fmt.Sprintf("Object expected to be of type %v, but was %v", reflect.TypeOf(expectedType), reflect.TypeOf(object)), msgAndArgs...) - } - - return true -} - -// Equal asserts that two objects are equal. -// -// assert.Equal(t, 123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if err := validateEqualArgs(expected, actual); err != nil { - return Fail(t, fmt.Sprintf("Invalid operation: %#v == %#v (%s)", - expected, actual, err), msgAndArgs...) - } - - if !ObjectsAreEqual(expected, actual) { - diff := diff(expected, actual) - expected, actual = formatUnequalValues(expected, actual) - return Fail(t, fmt.Sprintf("Not equal: \n"+ - "expected: %s\n"+ - "actual : %s%s", expected, actual, diff), msgAndArgs...) - } - - return true - -} - -// validateEqualArgs checks whether provided arguments can be safely used in the -// Equal/NotEqual functions. -func validateEqualArgs(expected, actual interface{}) error { - if expected == nil && actual == nil { - return nil - } - - if isFunction(expected) || isFunction(actual) { - return errors.New("cannot take func type as argument") - } - return nil -} - -// Same asserts that two pointers reference the same object. -// -// assert.Same(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if !samePointers(expected, actual) { - return Fail(t, fmt.Sprintf("Not same: \n"+ - "expected: %p %#v\n"+ - "actual : %p %#v", expected, expected, actual, actual), msgAndArgs...) - } - - return true -} - -// NotSame asserts that two pointers do not reference the same object. -// -// assert.NotSame(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if samePointers(expected, actual) { - return Fail(t, fmt.Sprintf( - "Expected and actual point to the same object: %p %#v", - expected, expected), msgAndArgs...) - } - return true -} - -// samePointers compares two generic interface objects and returns whether -// they point to the same object -func samePointers(first, second interface{}) bool { - firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) - if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { - return false - } - - firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) - if firstType != secondType { - return false - } - - // compare pointer addresses - return first == second -} - -// formatUnequalValues takes two values of arbitrary types and returns string -// representations appropriate to be presented to the user. -// -// If the values are not of like type, the returned strings will be prefixed -// with the type name, and the value will be enclosed in parenthesis similar -// to a type conversion in the Go grammar. -func formatUnequalValues(expected, actual interface{}) (e string, a string) { - if reflect.TypeOf(expected) != reflect.TypeOf(actual) { - return fmt.Sprintf("%T(%s)", expected, truncatingFormat(expected)), - fmt.Sprintf("%T(%s)", actual, truncatingFormat(actual)) - } - switch expected.(type) { - case time.Duration: - return fmt.Sprintf("%v", expected), fmt.Sprintf("%v", actual) - } - return truncatingFormat(expected), truncatingFormat(actual) -} - -// truncatingFormat formats the data and truncates it if it's too long. -// -// This helps keep formatted error messages lines from exceeding the -// bufio.MaxScanTokenSize max line length that the go testing framework imposes. -func truncatingFormat(data interface{}) string { - value := fmt.Sprintf("%#v", data) - max := bufio.MaxScanTokenSize - 100 // Give us some space the type info too if needed. - if len(value) > max { - value = value[0:max] + "<... truncated>" - } - return value -} - -// EqualValues asserts that two objects are equal or convertable to the same types -// and equal. -// -// assert.EqualValues(t, uint32(123), int32(123)) -func EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if !ObjectsAreEqualValues(expected, actual) { - diff := diff(expected, actual) - expected, actual = formatUnequalValues(expected, actual) - return Fail(t, fmt.Sprintf("Not equal: \n"+ - "expected: %s\n"+ - "actual : %s%s", expected, actual, diff), msgAndArgs...) - } - - return true - -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// assert.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true -// assert.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false -func EqualExportedValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - aType := reflect.TypeOf(expected) - bType := reflect.TypeOf(actual) - - if aType != bType { - return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...) - } - - if aType.Kind() != reflect.Struct { - return Fail(t, fmt.Sprintf("Types expected to both be struct \n\t%v != %v", aType.Kind(), reflect.Struct), msgAndArgs...) - } - - if bType.Kind() != reflect.Struct { - return Fail(t, fmt.Sprintf("Types expected to both be struct \n\t%v != %v", bType.Kind(), reflect.Struct), msgAndArgs...) - } - - expected = copyExportedFields(expected) - actual = copyExportedFields(actual) - - if !ObjectsAreEqualValues(expected, actual) { - diff := diff(expected, actual) - expected, actual = formatUnequalValues(expected, actual) - return Fail(t, fmt.Sprintf("Not equal (comparing only exported fields): \n"+ - "expected: %s\n"+ - "actual : %s%s", expected, actual, diff), msgAndArgs...) - } - - return true -} - -// Exactly asserts that two objects are equal in value and type. -// -// assert.Exactly(t, int32(123), int64(123)) -func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - aType := reflect.TypeOf(expected) - bType := reflect.TypeOf(actual) - - if aType != bType { - return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...) - } - - return Equal(t, expected, actual, msgAndArgs...) - -} - -// NotNil asserts that the specified object is not nil. -// -// assert.NotNil(t, err) -func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if !isNil(object) { - return true - } - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "Expected value not to be nil.", msgAndArgs...) -} - -// containsKind checks if a specified kind in the slice of kinds. -func containsKind(kinds []reflect.Kind, kind reflect.Kind) bool { - for i := 0; i < len(kinds); i++ { - if kind == kinds[i] { - return true - } - } - - return false -} - -// isNil checks if a specified object is nil or not, without Failing. -func isNil(object interface{}) bool { - if object == nil { - return true - } - - value := reflect.ValueOf(object) - kind := value.Kind() - isNilableKind := containsKind( - []reflect.Kind{ - reflect.Chan, reflect.Func, - reflect.Interface, reflect.Map, - reflect.Ptr, reflect.Slice, reflect.UnsafePointer}, - kind) - - if isNilableKind && value.IsNil() { - return true - } - - return false -} - -// Nil asserts that the specified object is nil. -// -// assert.Nil(t, err) -func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if isNil(object) { - return true - } - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, fmt.Sprintf("Expected nil, but got: %#v", object), msgAndArgs...) -} - -// isEmpty gets whether the specified object is considered empty or not. -func isEmpty(object interface{}) bool { - - // get nil case out of the way - if object == nil { - return true - } - - objValue := reflect.ValueOf(object) - - switch objValue.Kind() { - // collection types are empty when they have no element - case reflect.Chan, reflect.Map, reflect.Slice: - return objValue.Len() == 0 - // pointers are empty if nil or if the value they point to is empty - case reflect.Ptr: - if objValue.IsNil() { - return true - } - deref := objValue.Elem().Interface() - return isEmpty(deref) - // for all other types, compare against the zero value - // array types are empty when they match their zero-initialized state - default: - zero := reflect.Zero(objValue.Type()) - return reflect.DeepEqual(object, zero.Interface()) - } -} - -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// assert.Empty(t, obj) -func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - pass := isEmpty(object) - if !pass { - if h, ok := t.(tHelper); ok { - h.Helper() - } - Fail(t, fmt.Sprintf("Should be empty, but was %v", object), msgAndArgs...) - } - - return pass - -} - -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if assert.NotEmpty(t, obj) { -// assert.Equal(t, "two", obj[1]) -// } -func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - pass := !isEmpty(object) - if !pass { - if h, ok := t.(tHelper); ok { - h.Helper() - } - Fail(t, fmt.Sprintf("Should NOT be empty, but was %v", object), msgAndArgs...) - } - - return pass - -} - -// getLen try to get length of object. -// return (false, 0) if impossible. -func getLen(x interface{}) (ok bool, length int) { - v := reflect.ValueOf(x) - defer func() { - if e := recover(); e != nil { - ok = false - } - }() - return true, v.Len() -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// assert.Len(t, mySlice, 3) -func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - ok, l := getLen(object) - if !ok { - return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", object), msgAndArgs...) - } - - if l != length { - return Fail(t, fmt.Sprintf("\"%s\" should have %d item(s), but has %d", object, length, l), msgAndArgs...) - } - return true -} - -// True asserts that the specified value is true. -// -// assert.True(t, myBool) -func True(t TestingT, value bool, msgAndArgs ...interface{}) bool { - if !value { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "Should be true", msgAndArgs...) - } - - return true - -} - -// False asserts that the specified value is false. -// -// assert.False(t, myBool) -func False(t TestingT, value bool, msgAndArgs ...interface{}) bool { - if value { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "Should be false", msgAndArgs...) - } - - return true - -} - -// NotEqual asserts that the specified values are NOT equal. -// -// assert.NotEqual(t, obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if err := validateEqualArgs(expected, actual); err != nil { - return Fail(t, fmt.Sprintf("Invalid operation: %#v != %#v (%s)", - expected, actual, err), msgAndArgs...) - } - - if ObjectsAreEqual(expected, actual) { - return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...) - } - - return true - -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// assert.NotEqualValues(t, obj1, obj2) -func NotEqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if ObjectsAreEqualValues(expected, actual) { - return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...) - } - - return true -} - -// containsElement try loop over the list check if the list includes the element. -// return (false, false) if impossible. -// return (true, false) if element was not found. -// return (true, true) if element was found. -func containsElement(list interface{}, element interface{}) (ok, found bool) { - - listValue := reflect.ValueOf(list) - listType := reflect.TypeOf(list) - if listType == nil { - return false, false - } - listKind := listType.Kind() - defer func() { - if e := recover(); e != nil { - ok = false - found = false - } - }() - - if listKind == reflect.String { - elementValue := reflect.ValueOf(element) - return true, strings.Contains(listValue.String(), elementValue.String()) - } - - if listKind == reflect.Map { - mapKeys := listValue.MapKeys() - for i := 0; i < len(mapKeys); i++ { - if ObjectsAreEqual(mapKeys[i].Interface(), element) { - return true, true - } - } - return true, false - } - - for i := 0; i < listValue.Len(); i++ { - if ObjectsAreEqual(listValue.Index(i).Interface(), element) { - return true, true - } - } - return true, false - -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// assert.Contains(t, "Hello World", "World") -// assert.Contains(t, ["Hello", "World"], "World") -// assert.Contains(t, {"Hello": "World"}, "Hello") -func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ok, found := containsElement(s, contains) - if !ok { - return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", s), msgAndArgs...) - } - if !found { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", s, contains), msgAndArgs...) - } - - return true - -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// assert.NotContains(t, "Hello World", "Earth") -// assert.NotContains(t, ["Hello", "World"], "Earth") -// assert.NotContains(t, {"Hello": "World"}, "Earth") -func NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ok, found := containsElement(s, contains) - if !ok { - return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", s), msgAndArgs...) - } - if found { - return Fail(t, fmt.Sprintf("%#v should not contain %#v", s, contains), msgAndArgs...) - } - - return true - -} - -// Subset asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// assert.Subset(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]") -func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if subset == nil { - return true // we consider nil to be equal to the nil set - } - - listKind := reflect.TypeOf(list).Kind() - if listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", list, listKind), msgAndArgs...) - } - - subsetKind := reflect.TypeOf(subset).Kind() - if subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...) - } - - if subsetKind == reflect.Map && listKind == reflect.Map { - subsetMap := reflect.ValueOf(subset) - actualMap := reflect.ValueOf(list) - - for _, k := range subsetMap.MapKeys() { - ev := subsetMap.MapIndex(k) - av := actualMap.MapIndex(k) - - if !av.IsValid() { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", list, subset), msgAndArgs...) - } - if !ObjectsAreEqual(ev.Interface(), av.Interface()) { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", list, subset), msgAndArgs...) - } - } - - return true - } - - subsetList := reflect.ValueOf(subset) - for i := 0; i < subsetList.Len(); i++ { - element := subsetList.Index(i).Interface() - ok, found := containsElement(list, element) - if !ok { - return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", list), msgAndArgs...) - } - if !found { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", list, element), msgAndArgs...) - } - } - - return true -} - -// NotSubset asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// assert.NotSubset(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]") -func NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if subset == nil { - return Fail(t, "nil is the empty set which is a subset of every set", msgAndArgs...) - } - - listKind := reflect.TypeOf(list).Kind() - if listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", list, listKind), msgAndArgs...) - } - - subsetKind := reflect.TypeOf(subset).Kind() - if subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...) - } - - if subsetKind == reflect.Map && listKind == reflect.Map { - subsetMap := reflect.ValueOf(subset) - actualMap := reflect.ValueOf(list) - - for _, k := range subsetMap.MapKeys() { - ev := subsetMap.MapIndex(k) - av := actualMap.MapIndex(k) - - if !av.IsValid() { - return true - } - if !ObjectsAreEqual(ev.Interface(), av.Interface()) { - return true - } - } - - return Fail(t, fmt.Sprintf("%q is a subset of %q", subset, list), msgAndArgs...) - } - - subsetList := reflect.ValueOf(subset) - for i := 0; i < subsetList.Len(); i++ { - element := subsetList.Index(i).Interface() - ok, found := containsElement(list, element) - if !ok { - return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", list), msgAndArgs...) - } - if !found { - return true - } - } - - return Fail(t, fmt.Sprintf("%q is a subset of %q", subset, list), msgAndArgs...) -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2]) -func ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if isEmpty(listA) && isEmpty(listB) { - return true - } - - if !isList(t, listA, msgAndArgs...) || !isList(t, listB, msgAndArgs...) { - return false - } - - extraA, extraB := diffLists(listA, listB) - - if len(extraA) == 0 && len(extraB) == 0 { - return true - } - - return Fail(t, formatListDiff(listA, listB, extraA, extraB), msgAndArgs...) -} - -// isList checks that the provided value is array or slice. -func isList(t TestingT, list interface{}, msgAndArgs ...interface{}) (ok bool) { - kind := reflect.TypeOf(list).Kind() - if kind != reflect.Array && kind != reflect.Slice { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s, expecting array or slice", list, kind), - msgAndArgs...) - } - return true -} - -// diffLists diffs two arrays/slices and returns slices of elements that are only in A and only in B. -// If some element is present multiple times, each instance is counted separately (e.g. if something is 2x in A and -// 5x in B, it will be 0x in extraA and 3x in extraB). The order of items in both lists is ignored. -func diffLists(listA, listB interface{}) (extraA, extraB []interface{}) { - aValue := reflect.ValueOf(listA) - bValue := reflect.ValueOf(listB) - - aLen := aValue.Len() - bLen := bValue.Len() - - // Mark indexes in bValue that we already used - visited := make([]bool, bLen) - for i := 0; i < aLen; i++ { - element := aValue.Index(i).Interface() - found := false - for j := 0; j < bLen; j++ { - if visited[j] { - continue - } - if ObjectsAreEqual(bValue.Index(j).Interface(), element) { - visited[j] = true - found = true - break - } - } - if !found { - extraA = append(extraA, element) - } - } - - for j := 0; j < bLen; j++ { - if visited[j] { - continue - } - extraB = append(extraB, bValue.Index(j).Interface()) - } - - return -} - -func formatListDiff(listA, listB interface{}, extraA, extraB []interface{}) string { - var msg bytes.Buffer - - msg.WriteString("elements differ") - if len(extraA) > 0 { - msg.WriteString("\n\nextra elements in list A:\n") - msg.WriteString(spewConfig.Sdump(extraA)) - } - if len(extraB) > 0 { - msg.WriteString("\n\nextra elements in list B:\n") - msg.WriteString(spewConfig.Sdump(extraB)) - } - msg.WriteString("\n\nlistA:\n") - msg.WriteString(spewConfig.Sdump(listA)) - msg.WriteString("\n\nlistB:\n") - msg.WriteString(spewConfig.Sdump(listB)) - - return msg.String() -} - -// Condition uses a Comparison to assert a complex condition. -func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - result := comp() - if !result { - Fail(t, "Condition failed!", msgAndArgs...) - } - return result -} - -// PanicTestFunc defines a func that should be passed to the assert.Panics and assert.NotPanics -// methods, and represents a simple func that takes no arguments, and returns nothing. -type PanicTestFunc func() - -// didPanic returns true if the function passed to it panics. Otherwise, it returns false. -func didPanic(f PanicTestFunc) (didPanic bool, message interface{}, stack string) { - didPanic = true - - defer func() { - message = recover() - if didPanic { - stack = string(debug.Stack()) - } - }() - - // call the target function - f() - didPanic = false - - return -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// assert.Panics(t, func(){ GoCrazy() }) -func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if funcDidPanic, panicValue, _ := didPanic(f); !funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) - } - - return true -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// assert.PanicsWithValue(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - funcDidPanic, panicValue, panickedStack := didPanic(f) - if !funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) - } - if panicValue != expected { - return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, expected, panicValue, panickedStack), msgAndArgs...) - } - - return true -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// assert.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithError(t TestingT, errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - funcDidPanic, panicValue, panickedStack := didPanic(f) - if !funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) - } - panicErr, ok := panicValue.(error) - if !ok || panicErr.Error() != errString { - return Fail(t, fmt.Sprintf("func %#v should panic with error message:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, errString, panicValue, panickedStack), msgAndArgs...) - } - - return true -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// assert.NotPanics(t, func(){ RemainCalm() }) -func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if funcDidPanic, panicValue, panickedStack := didPanic(f); funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v\n\tPanic stack:\t%s", f, panicValue, panickedStack), msgAndArgs...) - } - - return true -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// assert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second) -func WithinDuration(t TestingT, expected, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - dt := expected.Sub(actual) - if dt < -delta || dt > delta { - return Fail(t, fmt.Sprintf("Max difference between %v and %v allowed is %v, but difference was %v", expected, actual, delta, dt), msgAndArgs...) - } - - return true -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// assert.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func WithinRange(t TestingT, actual, start, end time.Time, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if end.Before(start) { - return Fail(t, "Start should be before end", msgAndArgs...) - } - - if actual.Before(start) { - return Fail(t, fmt.Sprintf("Time %v expected to be in time range %v to %v, but is before the range", actual, start, end), msgAndArgs...) - } else if actual.After(end) { - return Fail(t, fmt.Sprintf("Time %v expected to be in time range %v to %v, but is after the range", actual, start, end), msgAndArgs...) - } - - return true -} - -func toFloat(x interface{}) (float64, bool) { - var xf float64 - xok := true - - switch xn := x.(type) { - case uint: - xf = float64(xn) - case uint8: - xf = float64(xn) - case uint16: - xf = float64(xn) - case uint32: - xf = float64(xn) - case uint64: - xf = float64(xn) - case int: - xf = float64(xn) - case int8: - xf = float64(xn) - case int16: - xf = float64(xn) - case int32: - xf = float64(xn) - case int64: - xf = float64(xn) - case float32: - xf = float64(xn) - case float64: - xf = xn - case time.Duration: - xf = float64(xn) - default: - xok = false - } - - return xf, xok -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// assert.InDelta(t, math.Pi, 22/7.0, 0.01) -func InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - af, aok := toFloat(expected) - bf, bok := toFloat(actual) - - if !aok || !bok { - return Fail(t, "Parameters must be numerical", msgAndArgs...) - } - - if math.IsNaN(af) && math.IsNaN(bf) { - return true - } - - if math.IsNaN(af) { - return Fail(t, "Expected must not be NaN", msgAndArgs...) - } - - if math.IsNaN(bf) { - return Fail(t, fmt.Sprintf("Expected %v with delta %v, but was NaN", expected, delta), msgAndArgs...) - } - - dt := af - bf - if dt < -delta || dt > delta { - return Fail(t, fmt.Sprintf("Max difference between %v and %v allowed is %v, but difference was %v", expected, actual, delta, dt), msgAndArgs...) - } - - return true -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func InDeltaSlice(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if expected == nil || actual == nil || - reflect.TypeOf(actual).Kind() != reflect.Slice || - reflect.TypeOf(expected).Kind() != reflect.Slice { - return Fail(t, "Parameters must be slice", msgAndArgs...) - } - - actualSlice := reflect.ValueOf(actual) - expectedSlice := reflect.ValueOf(expected) - - for i := 0; i < actualSlice.Len(); i++ { - result := InDelta(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), delta, msgAndArgs...) - if !result { - return result - } - } - - return true -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValues(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if expected == nil || actual == nil || - reflect.TypeOf(actual).Kind() != reflect.Map || - reflect.TypeOf(expected).Kind() != reflect.Map { - return Fail(t, "Arguments must be maps", msgAndArgs...) - } - - expectedMap := reflect.ValueOf(expected) - actualMap := reflect.ValueOf(actual) - - if expectedMap.Len() != actualMap.Len() { - return Fail(t, "Arguments must have the same number of keys", msgAndArgs...) - } - - for _, k := range expectedMap.MapKeys() { - ev := expectedMap.MapIndex(k) - av := actualMap.MapIndex(k) - - if !ev.IsValid() { - return Fail(t, fmt.Sprintf("missing key %q in expected map", k), msgAndArgs...) - } - - if !av.IsValid() { - return Fail(t, fmt.Sprintf("missing key %q in actual map", k), msgAndArgs...) - } - - if !InDelta( - t, - ev.Interface(), - av.Interface(), - delta, - msgAndArgs..., - ) { - return false - } - } - - return true -} - -func calcRelativeError(expected, actual interface{}) (float64, error) { - af, aok := toFloat(expected) - bf, bok := toFloat(actual) - if !aok || !bok { - return 0, fmt.Errorf("Parameters must be numerical") - } - if math.IsNaN(af) && math.IsNaN(bf) { - return 0, nil - } - if math.IsNaN(af) { - return 0, errors.New("expected value must not be NaN") - } - if af == 0 { - return 0, fmt.Errorf("expected value must have a value other than zero to calculate the relative error") - } - if math.IsNaN(bf) { - return 0, errors.New("actual value must not be NaN") - } - - return math.Abs(af-bf) / math.Abs(af), nil -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if math.IsNaN(epsilon) { - return Fail(t, "epsilon must not be NaN") - } - actualEpsilon, err := calcRelativeError(expected, actual) - if err != nil { - return Fail(t, err.Error(), msgAndArgs...) - } - if actualEpsilon > epsilon { - return Fail(t, fmt.Sprintf("Relative error is too high: %#v (expected)\n"+ - " < %#v (actual)", epsilon, actualEpsilon), msgAndArgs...) - } - - return true -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlice(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if expected == nil || actual == nil || - reflect.TypeOf(actual).Kind() != reflect.Slice || - reflect.TypeOf(expected).Kind() != reflect.Slice { - return Fail(t, "Parameters must be slice", msgAndArgs...) - } - - actualSlice := reflect.ValueOf(actual) - expectedSlice := reflect.ValueOf(expected) - - for i := 0; i < actualSlice.Len(); i++ { - result := InEpsilon(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), epsilon) - if !result { - return result - } - } - - return true -} - -/* - Errors -*/ - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if assert.NoError(t, err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool { - if err != nil { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, fmt.Sprintf("Received unexpected error:\n%+v", err), msgAndArgs...) - } - - return true -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if assert.Error(t, err) { -// assert.Equal(t, expectedError, err) -// } -func Error(t TestingT, err error, msgAndArgs ...interface{}) bool { - if err == nil { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "An error is expected but got nil.", msgAndArgs...) - } - - return true -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// assert.EqualError(t, err, expectedErrorString) -func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !Error(t, theError, msgAndArgs...) { - return false - } - expected := errString - actual := theError.Error() - // don't need to use deep equals here, we know they are both strings - if expected != actual { - return Fail(t, fmt.Sprintf("Error message not equal:\n"+ - "expected: %q\n"+ - "actual : %q", expected, actual), msgAndArgs...) - } - return true -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// assert.ErrorContains(t, err, expectedErrorSubString) -func ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !Error(t, theError, msgAndArgs...) { - return false - } - - actual := theError.Error() - if !strings.Contains(actual, contains) { - return Fail(t, fmt.Sprintf("Error %#v does not contain %#v", actual, contains), msgAndArgs...) - } - - return true -} - -// matchRegexp return true if a specified regexp matches a string. -func matchRegexp(rx interface{}, str interface{}) bool { - - var r *regexp.Regexp - if rr, ok := rx.(*regexp.Regexp); ok { - r = rr - } else { - r = regexp.MustCompile(fmt.Sprint(rx)) - } - - return (r.FindStringIndex(fmt.Sprint(str)) != nil) - -} - -// Regexp asserts that a specified regexp matches a string. -// -// assert.Regexp(t, regexp.MustCompile("start"), "it's starting") -// assert.Regexp(t, "start...$", "it's not starting") -func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - match := matchRegexp(rx, str) - - if !match { - Fail(t, fmt.Sprintf("Expect \"%v\" to match \"%v\"", str, rx), msgAndArgs...) - } - - return match -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// assert.NotRegexp(t, regexp.MustCompile("starts"), "it's starting") -// assert.NotRegexp(t, "^start", "it's not starting") -func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - match := matchRegexp(rx, str) - - if match { - Fail(t, fmt.Sprintf("Expect \"%v\" to NOT match \"%v\"", str, rx), msgAndArgs...) - } - - return !match - -} - -// Zero asserts that i is the zero value for its type. -func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if i != nil && !reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) { - return Fail(t, fmt.Sprintf("Should be zero, but was %v", i), msgAndArgs...) - } - return true -} - -// NotZero asserts that i is not the zero value for its type. -func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if i == nil || reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) { - return Fail(t, fmt.Sprintf("Should not be zero, but was %v", i), msgAndArgs...) - } - return true -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - if os.IsNotExist(err) { - return Fail(t, fmt.Sprintf("unable to find file %q", path), msgAndArgs...) - } - return Fail(t, fmt.Sprintf("error when running os.Lstat(%q): %s", path, err), msgAndArgs...) - } - if info.IsDir() { - return Fail(t, fmt.Sprintf("%q is a directory", path), msgAndArgs...) - } - return true -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - return true - } - if info.IsDir() { - return true - } - return Fail(t, fmt.Sprintf("file %q exists", path), msgAndArgs...) -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - if os.IsNotExist(err) { - return Fail(t, fmt.Sprintf("unable to find file %q", path), msgAndArgs...) - } - return Fail(t, fmt.Sprintf("error when running os.Lstat(%q): %s", path, err), msgAndArgs...) - } - if !info.IsDir() { - return Fail(t, fmt.Sprintf("%q is a file", path), msgAndArgs...) - } - return true -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - if os.IsNotExist(err) { - return true - } - return true - } - if !info.IsDir() { - return true - } - return Fail(t, fmt.Sprintf("directory %q exists", path), msgAndArgs...) -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - var expectedJSONAsInterface, actualJSONAsInterface interface{} - - if err := json.Unmarshal([]byte(expected), &expectedJSONAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid json.\nJSON parsing error: '%s'", expected, err.Error()), msgAndArgs...) - } - - if err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid json.\nJSON parsing error: '%s'", actual, err.Error()), msgAndArgs...) - } - - return Equal(t, expectedJSONAsInterface, actualJSONAsInterface, msgAndArgs...) -} - -// YAMLEq asserts that two YAML strings are equivalent. -func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - var expectedYAMLAsInterface, actualYAMLAsInterface interface{} - - if err := yaml.Unmarshal([]byte(expected), &expectedYAMLAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid yaml.\nYAML parsing error: '%s'", expected, err.Error()), msgAndArgs...) - } - - if err := yaml.Unmarshal([]byte(actual), &actualYAMLAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid yaml.\nYAML error: '%s'", actual, err.Error()), msgAndArgs...) - } - - return Equal(t, expectedYAMLAsInterface, actualYAMLAsInterface, msgAndArgs...) -} - -func typeAndKind(v interface{}) (reflect.Type, reflect.Kind) { - t := reflect.TypeOf(v) - k := t.Kind() - - if k == reflect.Ptr { - t = t.Elem() - k = t.Kind() - } - return t, k -} - -// diff returns a diff of both values as long as both are of the same type and -// are a struct, map, slice, array or string. Otherwise it returns an empty string. -func diff(expected interface{}, actual interface{}) string { - if expected == nil || actual == nil { - return "" - } - - et, ek := typeAndKind(expected) - at, _ := typeAndKind(actual) - - if et != at { - return "" - } - - if ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array && ek != reflect.String { - return "" - } - - var e, a string - - switch et { - case reflect.TypeOf(""): - e = reflect.ValueOf(expected).String() - a = reflect.ValueOf(actual).String() - case reflect.TypeOf(time.Time{}): - e = spewConfigStringerEnabled.Sdump(expected) - a = spewConfigStringerEnabled.Sdump(actual) - default: - e = spewConfig.Sdump(expected) - a = spewConfig.Sdump(actual) - } - - diff, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{ - A: difflib.SplitLines(e), - B: difflib.SplitLines(a), - FromFile: "Expected", - FromDate: "", - ToFile: "Actual", - ToDate: "", - Context: 1, - }) - - return "\n\nDiff:\n" + diff -} - -func isFunction(arg interface{}) bool { - if arg == nil { - return false - } - return reflect.TypeOf(arg).Kind() == reflect.Func -} - -var spewConfig = spew.ConfigState{ - Indent: " ", - DisablePointerAddresses: true, - DisableCapacities: true, - SortKeys: true, - DisableMethods: true, - MaxDepth: 10, -} - -var spewConfigStringerEnabled = spew.ConfigState{ - Indent: " ", - DisablePointerAddresses: true, - DisableCapacities: true, - SortKeys: true, - MaxDepth: 10, -} - -type tHelper interface { - Helper() -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// assert.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond) -func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ch := make(chan bool, 1) - - timer := time.NewTimer(waitFor) - defer timer.Stop() - - ticker := time.NewTicker(tick) - defer ticker.Stop() - - for tick := ticker.C; ; { - select { - case <-timer.C: - return Fail(t, "Condition never satisfied", msgAndArgs...) - case <-tick: - tick = nil - go func() { ch <- condition() }() - case v := <-ch: - if v { - return true - } - tick = ticker.C - } - } -} - -// CollectT implements the TestingT interface and collects all errors. -type CollectT struct { - errors []error -} - -// Errorf collects the error. -func (c *CollectT) Errorf(format string, args ...interface{}) { - c.errors = append(c.errors, fmt.Errorf(format, args...)) -} - -// FailNow panics. -func (c *CollectT) FailNow() { - panic("Assertion failed") -} - -// Reset clears the collected errors. -func (c *CollectT) Reset() { - c.errors = nil -} - -// Copy copies the collected errors to the supplied t. -func (c *CollectT) Copy(t TestingT) { - if tt, ok := t.(tHelper); ok { - tt.Helper() - } - for _, err := range c.errors { - t.Errorf("%v", err) - } -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// assert.EventuallyWithT(t, func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - collect := new(CollectT) - ch := make(chan bool, 1) - - timer := time.NewTimer(waitFor) - defer timer.Stop() - - ticker := time.NewTicker(tick) - defer ticker.Stop() - - for tick := ticker.C; ; { - select { - case <-timer.C: - collect.Copy(t) - return Fail(t, "Condition never satisfied", msgAndArgs...) - case <-tick: - tick = nil - collect.Reset() - go func() { - condition(collect) - ch <- len(collect.errors) == 0 - }() - case v := <-ch: - if v { - return true - } - tick = ticker.C - } - } -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// assert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) -func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ch := make(chan bool, 1) - - timer := time.NewTimer(waitFor) - defer timer.Stop() - - ticker := time.NewTicker(tick) - defer ticker.Stop() - - for tick := ticker.C; ; { - select { - case <-timer.C: - return true - case <-tick: - tick = nil - go func() { ch <- condition() }() - case v := <-ch: - if v { - return Fail(t, "Condition satisfied", msgAndArgs...) - } - tick = ticker.C - } - } -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if errors.Is(err, target) { - return true - } - - var expectedText string - if target != nil { - expectedText = target.Error() - } - - chain := buildErrorChainString(err) - - return Fail(t, fmt.Sprintf("Target error should be in err chain:\n"+ - "expected: %q\n"+ - "in chain: %s", expectedText, chain, - ), msgAndArgs...) -} - -// NotErrorIs asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !errors.Is(err, target) { - return true - } - - var expectedText string - if target != nil { - expectedText = target.Error() - } - - chain := buildErrorChainString(err) - - return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ - "found: %q\n"+ - "in chain: %s", expectedText, chain, - ), msgAndArgs...) -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if errors.As(err, target) { - return true - } - - chain := buildErrorChainString(err) - - return Fail(t, fmt.Sprintf("Should be in error chain:\n"+ - "expected: %q\n"+ - "in chain: %s", target, chain, - ), msgAndArgs...) -} - -func buildErrorChainString(err error) string { - if err == nil { - return "" - } - - e := errors.Unwrap(err) - chain := fmt.Sprintf("%q", err.Error()) - for e != nil { - chain += fmt.Sprintf("\n\t%q", e.Error()) - e = errors.Unwrap(e) - } - return chain -} diff --git a/backend/vendor/github.com/stretchr/testify/assert/doc.go b/backend/vendor/github.com/stretchr/testify/assert/doc.go deleted file mode 100644 index 4953981d..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/doc.go +++ /dev/null @@ -1,46 +0,0 @@ -// Package assert provides a set of comprehensive testing tools for use with the normal Go testing system. -// -// # Example Usage -// -// The following is a complete example using assert in a standard test function: -// -// import ( -// "testing" -// "github.com/stretchr/testify/assert" -// ) -// -// func TestSomething(t *testing.T) { -// -// var a string = "Hello" -// var b string = "Hello" -// -// assert.Equal(t, a, b, "The two words should be the same.") -// -// } -// -// if you assert many times, use the format below: -// -// import ( -// "testing" -// "github.com/stretchr/testify/assert" -// ) -// -// func TestSomething(t *testing.T) { -// assert := assert.New(t) -// -// var a string = "Hello" -// var b string = "Hello" -// -// assert.Equal(a, b, "The two words should be the same.") -// } -// -// # Assertions -// -// Assertions allow you to easily write test code, and are global funcs in the `assert` package. -// All assertion functions take, as the first argument, the `*testing.T` object provided by the -// testing framework. This allows the assertion funcs to write the failings and other details to -// the correct place. -// -// Every assertion function also takes an optional string message as the final argument, -// allowing custom error messages to be appended to the message the assertion method outputs. -package assert diff --git a/backend/vendor/github.com/stretchr/testify/assert/errors.go b/backend/vendor/github.com/stretchr/testify/assert/errors.go deleted file mode 100644 index ac9dc9d1..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/errors.go +++ /dev/null @@ -1,10 +0,0 @@ -package assert - -import ( - "errors" -) - -// AnError is an error instance useful for testing. If the code does not care -// about error specifics, and only needs to return the error for example, this -// error should be used to make the test code more readable. -var AnError = errors.New("assert.AnError general error for testing") diff --git a/backend/vendor/github.com/stretchr/testify/assert/forward_assertions.go b/backend/vendor/github.com/stretchr/testify/assert/forward_assertions.go deleted file mode 100644 index df189d23..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/forward_assertions.go +++ /dev/null @@ -1,16 +0,0 @@ -package assert - -// Assertions provides assertion methods around the -// TestingT interface. -type Assertions struct { - t TestingT -} - -// New makes a new Assertions object for the specified TestingT. -func New(t TestingT) *Assertions { - return &Assertions{ - t: t, - } -} - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs" diff --git a/backend/vendor/github.com/stretchr/testify/assert/http_assertions.go b/backend/vendor/github.com/stretchr/testify/assert/http_assertions.go deleted file mode 100644 index d8038c28..00000000 --- a/backend/vendor/github.com/stretchr/testify/assert/http_assertions.go +++ /dev/null @@ -1,162 +0,0 @@ -package assert - -import ( - "fmt" - "net/http" - "net/http/httptest" - "net/url" - "strings" -) - -// httpCode is a helper that returns HTTP code of the response. It returns -1 and -// an error if building a new request fails. -func httpCode(handler http.HandlerFunc, method, url string, values url.Values) (int, error) { - w := httptest.NewRecorder() - req, err := http.NewRequest(method, url, nil) - if err != nil { - return -1, err - } - req.URL.RawQuery = values.Encode() - handler(w, req) - return w.Code, nil -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - } - - isSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent - if !isSuccessCode { - Fail(t, fmt.Sprintf("Expected HTTP success status code for %q but received %d", url+"?"+values.Encode(), code)) - } - - return isSuccessCode -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - } - - isRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect - if !isRedirectCode { - Fail(t, fmt.Sprintf("Expected HTTP redirect status code for %q but received %d", url+"?"+values.Encode(), code)) - } - - return isRedirectCode -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - } - - isErrorCode := code >= http.StatusBadRequest - if !isErrorCode { - Fail(t, fmt.Sprintf("Expected HTTP error status code for %q but received %d", url+"?"+values.Encode(), code)) - } - - return isErrorCode -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// assert.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - } - - successful := code == statuscode - if !successful { - Fail(t, fmt.Sprintf("Expected HTTP status code %d for %q but received %d", statuscode, url+"?"+values.Encode(), code)) - } - - return successful -} - -// HTTPBody is a helper that returns HTTP body of the response. It returns -// empty string if building a new request fails. -func HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string { - w := httptest.NewRecorder() - req, err := http.NewRequest(method, url+"?"+values.Encode(), nil) - if err != nil { - return "" - } - handler(w, req) - return w.Body.String() -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// assert.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - body := HTTPBody(handler, method, url, values) - - contains := strings.Contains(body, fmt.Sprint(str)) - if !contains { - Fail(t, fmt.Sprintf("Expected response body for \"%s\" to contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body)) - } - - return contains -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// assert.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - body := HTTPBody(handler, method, url, values) - - contains := strings.Contains(body, fmt.Sprint(str)) - if contains { - Fail(t, fmt.Sprintf("Expected response body for \"%s\" to NOT contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body)) - } - - return !contains -} diff --git a/backend/vendor/github.com/stretchr/testify/require/doc.go b/backend/vendor/github.com/stretchr/testify/require/doc.go deleted file mode 100644 index 96843472..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/doc.go +++ /dev/null @@ -1,29 +0,0 @@ -// Package require implements the same assertions as the `assert` package but -// stops test execution when a test fails. -// -// # Example Usage -// -// The following is a complete example using require in a standard test function: -// -// import ( -// "testing" -// "github.com/stretchr/testify/require" -// ) -// -// func TestSomething(t *testing.T) { -// -// var a string = "Hello" -// var b string = "Hello" -// -// require.Equal(t, a, b, "The two words should be the same.") -// -// } -// -// # Assertions -// -// The `require` package have same global functions as in the `assert` package, -// but instead of returning a boolean result they call `t.FailNow()`. -// -// Every assertion function also takes an optional string message as the final argument, -// allowing custom error messages to be appended to the message the assertion method outputs. -package require diff --git a/backend/vendor/github.com/stretchr/testify/require/forward_requirements.go b/backend/vendor/github.com/stretchr/testify/require/forward_requirements.go deleted file mode 100644 index 1dcb2338..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/forward_requirements.go +++ /dev/null @@ -1,16 +0,0 @@ -package require - -// Assertions provides assertion methods around the -// TestingT interface. -type Assertions struct { - t TestingT -} - -// New makes a new Assertions object for the specified TestingT. -func New(t TestingT) *Assertions { - return &Assertions{ - t: t, - } -} - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require_forward.go.tmpl -include-format-funcs" diff --git a/backend/vendor/github.com/stretchr/testify/require/require.go b/backend/vendor/github.com/stretchr/testify/require/require.go deleted file mode 100644 index 63f85214..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/require.go +++ /dev/null @@ -1,2031 +0,0 @@ -/* -* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen -* THIS FILE MUST NOT BE EDITED BY HAND - */ - -package require - -import ( - assert "github.com/stretchr/testify/assert" - http "net/http" - url "net/url" - time "time" -) - -// Condition uses a Comparison to assert a complex condition. -func Condition(t TestingT, comp assert.Comparison, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Condition(t, comp, msgAndArgs...) { - return - } - t.FailNow() -} - -// Conditionf uses a Comparison to assert a complex condition. -func Conditionf(t TestingT, comp assert.Comparison, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Conditionf(t, comp, msg, args...) { - return - } - t.FailNow() -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// assert.Contains(t, "Hello World", "World") -// assert.Contains(t, ["Hello", "World"], "World") -// assert.Contains(t, {"Hello": "World"}, "Hello") -func Contains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Contains(t, s, contains, msgAndArgs...) { - return - } - t.FailNow() -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// assert.Containsf(t, "Hello World", "World", "error message %s", "formatted") -// assert.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted") -// assert.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted") -func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Containsf(t, s, contains, msg, args...) { - return - } - t.FailNow() -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.DirExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.DirExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2]) -func ElementsMatch(t TestingT, listA interface{}, listB interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ElementsMatch(t, listA, listB, msgAndArgs...) { - return - } - t.FailNow() -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ElementsMatchf(t, listA, listB, msg, args...) { - return - } - t.FailNow() -} - -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// assert.Empty(t, obj) -func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Empty(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// assert.Emptyf(t, obj, "error message %s", "formatted") -func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Emptyf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// Equal asserts that two objects are equal. -// -// assert.Equal(t, 123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equal(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Equal(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// assert.EqualError(t, err, expectedErrorString) -func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualError(t, theError, errString, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// assert.EqualErrorf(t, err, expectedErrorString, "error message %s", "formatted") -func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualErrorf(t, theError, errString, msg, args...) { - return - } - t.FailNow() -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// assert.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true -// assert.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false -func EqualExportedValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualExportedValues(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// assert.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// assert.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualExportedValuesf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// EqualValues asserts that two objects are equal or convertable to the same types -// and equal. -// -// assert.EqualValues(t, uint32(123), int32(123)) -func EqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualValues(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualValuesf asserts that two objects are equal or convertable to the same types -// and equal. -// -// assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") -func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualValuesf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Equalf asserts that two objects are equal. -// -// assert.Equalf(t, 123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Equalf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if assert.Error(t, err) { -// assert.Equal(t, expectedError, err) -// } -func Error(t TestingT, err error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Error(t, err, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorAs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorAsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// assert.ErrorContains(t, err, expectedErrorSubString) -func ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorContains(t, theError, contains, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// assert.ErrorContainsf(t, err, expectedErrorSubString, "error message %s", "formatted") -func ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorContainsf(t, theError, contains, msg, args...) { - return - } - t.FailNow() -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorIs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorIsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if assert.Errorf(t, err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } -func Errorf(t TestingT, err error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Errorf(t, err, msg, args...) { - return - } - t.FailNow() -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// assert.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond) -func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Eventually(t, condition, waitFor, tick, msgAndArgs...) { - return - } - t.FailNow() -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// assert.EventuallyWithT(t, func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithT(t TestingT, condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EventuallyWithT(t, condition, waitFor, tick, msgAndArgs...) { - return - } - t.FailNow() -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// assert.EventuallyWithTf(t, func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithTf(t TestingT, condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EventuallyWithTf(t, condition, waitFor, tick, msg, args...) { - return - } - t.FailNow() -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// assert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Eventuallyf(t, condition, waitFor, tick, msg, args...) { - return - } - t.FailNow() -} - -// Exactly asserts that two objects are equal in value and type. -// -// assert.Exactly(t, int32(123), int64(123)) -func Exactly(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Exactly(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// assert.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") -func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Exactlyf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Fail reports a failure through -func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Fail(t, failureMessage, msgAndArgs...) { - return - } - t.FailNow() -} - -// FailNow fails test -func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FailNow(t, failureMessage, msgAndArgs...) { - return - } - t.FailNow() -} - -// FailNowf fails test -func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FailNowf(t, failureMessage, msg, args...) { - return - } - t.FailNow() -} - -// Failf reports a failure through -func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Failf(t, failureMessage, msg, args...) { - return - } - t.FailNow() -} - -// False asserts that the specified value is false. -// -// assert.False(t, myBool) -func False(t TestingT, value bool, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.False(t, value, msgAndArgs...) { - return - } - t.FailNow() -} - -// Falsef asserts that the specified value is false. -// -// assert.Falsef(t, myBool, "error message %s", "formatted") -func Falsef(t TestingT, value bool, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Falsef(t, value, msg, args...) { - return - } - t.FailNow() -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FileExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FileExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// Greater asserts that the first element is greater than the second -// -// assert.Greater(t, 2, 1) -// assert.Greater(t, float64(2), float64(1)) -// assert.Greater(t, "b", "a") -func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Greater(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqual(t, 2, 1) -// assert.GreaterOrEqual(t, 2, 2) -// assert.GreaterOrEqual(t, "b", "a") -// assert.GreaterOrEqual(t, "b", "b") -func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.GreaterOrEqual(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqualf(t, 2, 1, "error message %s", "formatted") -// assert.GreaterOrEqualf(t, 2, 2, "error message %s", "formatted") -// assert.GreaterOrEqualf(t, "b", "a", "error message %s", "formatted") -// assert.GreaterOrEqualf(t, "b", "b", "error message %s", "formatted") -func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.GreaterOrEqualf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// Greaterf asserts that the first element is greater than the second -// -// assert.Greaterf(t, 2, 1, "error message %s", "formatted") -// assert.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") -// assert.Greaterf(t, "b", "a", "error message %s", "formatted") -func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Greaterf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// assert.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyContains(t, handler, method, url, values, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// assert.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyContainsf(t, handler, method, url, values, str, msg, args...) { - return - } - t.FailNow() -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// assert.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyNotContains(t, handler, method, url, values, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// assert.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyNotContainsf(t, handler, method, url, values, str, msg, args...) { - return - } - t.FailNow() -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPError(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPError(t, handler, method, url, values, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPErrorf(t, handler, method, url, values, msg, args...) { - return - } - t.FailNow() -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirect(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPRedirect(t, handler, method, url, values, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPRedirectf(t, handler, method, url, values, msg, args...) { - return - } - t.FailNow() -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// assert.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPStatusCode(t, handler, method, url, values, statuscode, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// assert.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPStatusCodef(t, handler, method, url, values, statuscode, msg, args...) { - return - } - t.FailNow() -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccess(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPSuccess(t, handler, method, url, values, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPSuccessf(t, handler, method, url, values, msg, args...) { - return - } - t.FailNow() -} - -// Implements asserts that an object is implemented by the specified interface. -// -// assert.Implements(t, (*MyInterface)(nil), new(MyObject)) -func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Implements(t, interfaceObject, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// assert.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Implementsf(t, interfaceObject, object, msg, args...) { - return - } - t.FailNow() -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// assert.InDelta(t, math.Pi, 22/7.0, 0.01) -func InDelta(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDelta(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValues(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaMapValues(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaMapValuesf(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func InDeltaSlice(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaSlice(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaSlicef(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// assert.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaf(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func InEpsilon(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilon(t, expected, actual, epsilon, msgAndArgs...) { - return - } - t.FailNow() -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlice(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilonSlice(t, expected, actual, epsilon, msgAndArgs...) { - return - } - t.FailNow() -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilonSlicef(t, expected, actual, epsilon, msg, args...) { - return - } - t.FailNow() -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilonf(t, expected, actual, epsilon, msg, args...) { - return - } - t.FailNow() -} - -// IsDecreasing asserts that the collection is decreasing -// -// assert.IsDecreasing(t, []int{2, 1, 0}) -// assert.IsDecreasing(t, []float{2, 1}) -// assert.IsDecreasing(t, []string{"b", "a"}) -func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsDecreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsDecreasingf asserts that the collection is decreasing -// -// assert.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") -// assert.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") -// assert.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsDecreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsIncreasing asserts that the collection is increasing -// -// assert.IsIncreasing(t, []int{1, 2, 3}) -// assert.IsIncreasing(t, []float{1, 2}) -// assert.IsIncreasing(t, []string{"a", "b"}) -func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsIncreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsIncreasingf asserts that the collection is increasing -// -// assert.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") -// assert.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") -// assert.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsIncreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// assert.IsNonDecreasing(t, []int{1, 1, 2}) -// assert.IsNonDecreasing(t, []float{1, 2}) -// assert.IsNonDecreasing(t, []string{"a", "b"}) -func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonDecreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// assert.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") -// assert.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") -// assert.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonDecreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// assert.IsNonIncreasing(t, []int{2, 1, 1}) -// assert.IsNonIncreasing(t, []float{2, 1}) -// assert.IsNonIncreasing(t, []string{"b", "a"}) -func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonIncreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// assert.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") -// assert.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") -// assert.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonIncreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsType asserts that the specified objects are of the same type. -func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsType(t, expectedType, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsTypef asserts that the specified objects are of the same type. -func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsTypef(t, expectedType, object, msg, args...) { - return - } - t.FailNow() -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.JSONEq(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// assert.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.JSONEqf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// assert.Len(t, mySlice, 3) -func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Len(t, object, length, msgAndArgs...) { - return - } - t.FailNow() -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// assert.Lenf(t, mySlice, 3, "error message %s", "formatted") -func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Lenf(t, object, length, msg, args...) { - return - } - t.FailNow() -} - -// Less asserts that the first element is less than the second -// -// assert.Less(t, 1, 2) -// assert.Less(t, float64(1), float64(2)) -// assert.Less(t, "a", "b") -func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Less(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// assert.LessOrEqual(t, 1, 2) -// assert.LessOrEqual(t, 2, 2) -// assert.LessOrEqual(t, "a", "b") -// assert.LessOrEqual(t, "b", "b") -func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.LessOrEqual(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// assert.LessOrEqualf(t, 1, 2, "error message %s", "formatted") -// assert.LessOrEqualf(t, 2, 2, "error message %s", "formatted") -// assert.LessOrEqualf(t, "a", "b", "error message %s", "formatted") -// assert.LessOrEqualf(t, "b", "b", "error message %s", "formatted") -func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.LessOrEqualf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// Lessf asserts that the first element is less than the second -// -// assert.Lessf(t, 1, 2, "error message %s", "formatted") -// assert.Lessf(t, float64(1), float64(2), "error message %s", "formatted") -// assert.Lessf(t, "a", "b", "error message %s", "formatted") -func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Lessf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// Negative asserts that the specified element is negative -// -// assert.Negative(t, -1) -// assert.Negative(t, -1.23) -func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Negative(t, e, msgAndArgs...) { - return - } - t.FailNow() -} - -// Negativef asserts that the specified element is negative -// -// assert.Negativef(t, -1, "error message %s", "formatted") -// assert.Negativef(t, -1.23, "error message %s", "formatted") -func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Negativef(t, e, msg, args...) { - return - } - t.FailNow() -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// assert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) -func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Never(t, condition, waitFor, tick, msgAndArgs...) { - return - } - t.FailNow() -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// assert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Neverf(t, condition, waitFor, tick, msg, args...) { - return - } - t.FailNow() -} - -// Nil asserts that the specified object is nil. -// -// assert.Nil(t, err) -func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Nil(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// Nilf asserts that the specified object is nil. -// -// assert.Nilf(t, err, "error message %s", "formatted") -func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Nilf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoDirExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoDirExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if assert.NoError(t, err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func NoError(t TestingT, err error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoError(t, err, msgAndArgs...) { - return - } - t.FailNow() -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if assert.NoErrorf(t, err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func NoErrorf(t TestingT, err error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoErrorf(t, err, msg, args...) { - return - } - t.FailNow() -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoFileExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoFileExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// assert.NotContains(t, "Hello World", "Earth") -// assert.NotContains(t, ["Hello", "World"], "Earth") -// assert.NotContains(t, {"Hello": "World"}, "Earth") -func NotContains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotContains(t, s, contains, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// assert.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted") -// assert.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted") -// assert.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted") -func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotContainsf(t, s, contains, msg, args...) { - return - } - t.FailNow() -} - -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if assert.NotEmpty(t, obj) { -// assert.Equal(t, "two", obj[1]) -// } -func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEmpty(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if assert.NotEmptyf(t, obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEmptyf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// NotEqual asserts that the specified values are NOT equal. -// -// assert.NotEqual(t, obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqual(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqual(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// assert.NotEqualValues(t, obj1, obj2) -func NotEqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqualValues(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// assert.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") -func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqualValuesf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqualf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// NotErrorIs asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotErrorIs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotErrorIsf asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotErrorIsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// NotNil asserts that the specified object is not nil. -// -// assert.NotNil(t, err) -func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotNil(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotNilf asserts that the specified object is not nil. -// -// assert.NotNilf(t, err, "error message %s", "formatted") -func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotNilf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// assert.NotPanics(t, func(){ RemainCalm() }) -func NotPanics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotPanics(t, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// assert.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted") -func NotPanicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotPanicsf(t, f, msg, args...) { - return - } - t.FailNow() -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// assert.NotRegexp(t, regexp.MustCompile("starts"), "it's starting") -// assert.NotRegexp(t, "^start", "it's not starting") -func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotRegexp(t, rx, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// assert.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") -func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotRegexpf(t, rx, str, msg, args...) { - return - } - t.FailNow() -} - -// NotSame asserts that two pointers do not reference the same object. -// -// assert.NotSame(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSame(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSame(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// assert.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSamef(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// NotSubset asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// assert.NotSubset(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]") -func NotSubset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSubset(t, list, subset, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotSubsetf asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// assert.NotSubsetf(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted") -func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSubsetf(t, list, subset, msg, args...) { - return - } - t.FailNow() -} - -// NotZero asserts that i is not the zero value for its type. -func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotZero(t, i, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotZerof asserts that i is not the zero value for its type. -func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotZerof(t, i, msg, args...) { - return - } - t.FailNow() -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// assert.Panics(t, func(){ GoCrazy() }) -func Panics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Panics(t, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// assert.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithError(t TestingT, errString string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithError(t, errString, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// assert.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithErrorf(t TestingT, errString string, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithErrorf(t, errString, f, msg, args...) { - return - } - t.FailNow() -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// assert.PanicsWithValue(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithValue(t TestingT, expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithValue(t, expected, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// assert.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithValuef(t TestingT, expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithValuef(t, expected, f, msg, args...) { - return - } - t.FailNow() -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// assert.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted") -func Panicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Panicsf(t, f, msg, args...) { - return - } - t.FailNow() -} - -// Positive asserts that the specified element is positive -// -// assert.Positive(t, 1) -// assert.Positive(t, 1.23) -func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Positive(t, e, msgAndArgs...) { - return - } - t.FailNow() -} - -// Positivef asserts that the specified element is positive -// -// assert.Positivef(t, 1, "error message %s", "formatted") -// assert.Positivef(t, 1.23, "error message %s", "formatted") -func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Positivef(t, e, msg, args...) { - return - } - t.FailNow() -} - -// Regexp asserts that a specified regexp matches a string. -// -// assert.Regexp(t, regexp.MustCompile("start"), "it's starting") -// assert.Regexp(t, "start...$", "it's not starting") -func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Regexp(t, rx, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// Regexpf asserts that a specified regexp matches a string. -// -// assert.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") -func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Regexpf(t, rx, str, msg, args...) { - return - } - t.FailNow() -} - -// Same asserts that two pointers reference the same object. -// -// assert.Same(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Same(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Same(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// Samef asserts that two pointers reference the same object. -// -// assert.Samef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Samef(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Subset asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// assert.Subset(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]") -func Subset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Subset(t, list, subset, msgAndArgs...) { - return - } - t.FailNow() -} - -// Subsetf asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// assert.Subsetf(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted") -func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Subsetf(t, list, subset, msg, args...) { - return - } - t.FailNow() -} - -// True asserts that the specified value is true. -// -// assert.True(t, myBool) -func True(t TestingT, value bool, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.True(t, value, msgAndArgs...) { - return - } - t.FailNow() -} - -// Truef asserts that the specified value is true. -// -// assert.Truef(t, myBool, "error message %s", "formatted") -func Truef(t TestingT, value bool, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Truef(t, value, msg, args...) { - return - } - t.FailNow() -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// assert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second) -func WithinDuration(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinDuration(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// assert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinDurationf(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// assert.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func WithinRange(t TestingT, actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinRange(t, actual, start, end, msgAndArgs...) { - return - } - t.FailNow() -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// assert.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinRangef(t, actual, start, end, msg, args...) { - return - } - t.FailNow() -} - -// YAMLEq asserts that two YAML strings are equivalent. -func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.YAMLEq(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.YAMLEqf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Zero asserts that i is the zero value for its type. -func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Zero(t, i, msgAndArgs...) { - return - } - t.FailNow() -} - -// Zerof asserts that i is the zero value for its type. -func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Zerof(t, i, msg, args...) { - return - } - t.FailNow() -} diff --git a/backend/vendor/github.com/stretchr/testify/require/require.go.tmpl b/backend/vendor/github.com/stretchr/testify/require/require.go.tmpl deleted file mode 100644 index 55e42dde..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/require.go.tmpl +++ /dev/null @@ -1,6 +0,0 @@ -{{.Comment}} -func {{.DocInfo.Name}}(t TestingT, {{.Params}}) { - if h, ok := t.(tHelper); ok { h.Helper() } - if assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) { return } - t.FailNow() -} diff --git a/backend/vendor/github.com/stretchr/testify/require/require_forward.go b/backend/vendor/github.com/stretchr/testify/require/require_forward.go deleted file mode 100644 index 3b5b0933..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/require_forward.go +++ /dev/null @@ -1,1599 +0,0 @@ -/* -* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen -* THIS FILE MUST NOT BE EDITED BY HAND - */ - -package require - -import ( - assert "github.com/stretchr/testify/assert" - http "net/http" - url "net/url" - time "time" -) - -// Condition uses a Comparison to assert a complex condition. -func (a *Assertions) Condition(comp assert.Comparison, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Condition(a.t, comp, msgAndArgs...) -} - -// Conditionf uses a Comparison to assert a complex condition. -func (a *Assertions) Conditionf(comp assert.Comparison, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Conditionf(a.t, comp, msg, args...) -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Contains("Hello World", "World") -// a.Contains(["Hello", "World"], "World") -// a.Contains({"Hello": "World"}, "Hello") -func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Contains(a.t, s, contains, msgAndArgs...) -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Containsf("Hello World", "World", "error message %s", "formatted") -// a.Containsf(["Hello", "World"], "World", "error message %s", "formatted") -// a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted") -func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Containsf(a.t, s, contains, msg, args...) -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - DirExists(a.t, path, msgAndArgs...) -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - DirExistsf(a.t, path, msg, args...) -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2]) -func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ElementsMatch(a.t, listA, listB, msgAndArgs...) -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ElementsMatchf(a.t, listA, listB, msg, args...) -} - -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// a.Empty(obj) -func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Empty(a.t, object, msgAndArgs...) -} - -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// a.Emptyf(obj, "error message %s", "formatted") -func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Emptyf(a.t, object, msg, args...) -} - -// Equal asserts that two objects are equal. -// -// a.Equal(123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Equal(a.t, expected, actual, msgAndArgs...) -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualError(err, expectedErrorString) -func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualError(a.t, theError, errString, msgAndArgs...) -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualErrorf(err, expectedErrorString, "error message %s", "formatted") -func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualErrorf(a.t, theError, errString, msg, args...) -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValues(S{1, 2}, S{1, 3}) => true -// a.EqualExportedValues(S{1, 2}, S{2, 3}) => false -func (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualExportedValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValuesf(S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// a.EqualExportedValuesf(S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualExportedValuesf(a.t, expected, actual, msg, args...) -} - -// EqualValues asserts that two objects are equal or convertable to the same types -// and equal. -// -// a.EqualValues(uint32(123), int32(123)) -func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualValuesf asserts that two objects are equal or convertable to the same types -// and equal. -// -// a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") -func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualValuesf(a.t, expected, actual, msg, args...) -} - -// Equalf asserts that two objects are equal. -// -// a.Equalf(123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Equalf(a.t, expected, actual, msg, args...) -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if a.Error(err) { -// assert.Equal(t, expectedError, err) -// } -func (a *Assertions) Error(err error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Error(a.t, err, msgAndArgs...) -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorAs(a.t, err, target, msgAndArgs...) -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorAsf(a.t, err, target, msg, args...) -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContains(err, expectedErrorSubString) -func (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorContains(a.t, theError, contains, msgAndArgs...) -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContainsf(err, expectedErrorSubString, "error message %s", "formatted") -func (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorContainsf(a.t, theError, contains, msg, args...) -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorIs(a.t, err, target, msgAndArgs...) -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorIsf(a.t, err, target, msg, args...) -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// if a.Errorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } -func (a *Assertions) Errorf(err error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Errorf(a.t, err, msg, args...) -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Eventually(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithT(func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithT(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EventuallyWithT(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithTf(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EventuallyWithTf(a.t, condition, waitFor, tick, msg, args...) -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Eventuallyf(a.t, condition, waitFor, tick, msg, args...) -} - -// Exactly asserts that two objects are equal in value and type. -// -// a.Exactly(int32(123), int64(123)) -func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Exactly(a.t, expected, actual, msgAndArgs...) -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// a.Exactlyf(int32(123), int64(123), "error message %s", "formatted") -func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Exactlyf(a.t, expected, actual, msg, args...) -} - -// Fail reports a failure through -func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Fail(a.t, failureMessage, msgAndArgs...) -} - -// FailNow fails test -func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FailNow(a.t, failureMessage, msgAndArgs...) -} - -// FailNowf fails test -func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FailNowf(a.t, failureMessage, msg, args...) -} - -// Failf reports a failure through -func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Failf(a.t, failureMessage, msg, args...) -} - -// False asserts that the specified value is false. -// -// a.False(myBool) -func (a *Assertions) False(value bool, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - False(a.t, value, msgAndArgs...) -} - -// Falsef asserts that the specified value is false. -// -// a.Falsef(myBool, "error message %s", "formatted") -func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Falsef(a.t, value, msg, args...) -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FileExists(a.t, path, msgAndArgs...) -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FileExistsf(a.t, path, msg, args...) -} - -// Greater asserts that the first element is greater than the second -// -// a.Greater(2, 1) -// a.Greater(float64(2), float64(1)) -// a.Greater("b", "a") -func (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Greater(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqual(2, 1) -// a.GreaterOrEqual(2, 2) -// a.GreaterOrEqual("b", "a") -// a.GreaterOrEqual("b", "b") -func (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - GreaterOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqualf(2, 1, "error message %s", "formatted") -// a.GreaterOrEqualf(2, 2, "error message %s", "formatted") -// a.GreaterOrEqualf("b", "a", "error message %s", "formatted") -// a.GreaterOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - GreaterOrEqualf(a.t, e1, e2, msg, args...) -} - -// Greaterf asserts that the first element is greater than the second -// -// a.Greaterf(2, 1, "error message %s", "formatted") -// a.Greaterf(float64(2), float64(1), "error message %s", "formatted") -// a.Greaterf("b", "a", "error message %s", "formatted") -func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Greaterf(a.t, e1, e2, msg, args...) -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPError(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPErrorf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPRedirectf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...) -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...) -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPSuccessf(a.t, handler, method, url, values, msg, args...) -} - -// Implements asserts that an object is implemented by the specified interface. -// -// a.Implements((*MyInterface)(nil), new(MyObject)) -func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Implements(a.t, interfaceObject, object, msgAndArgs...) -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Implementsf(a.t, interfaceObject, object, msg, args...) -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// a.InDelta(math.Pi, 22/7.0, 0.01) -func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDelta(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaSlicef(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaf(a.t, expected, actual, delta, msg, args...) -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...) -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilonf(a.t, expected, actual, epsilon, msg, args...) -} - -// IsDecreasing asserts that the collection is decreasing -// -// a.IsDecreasing([]int{2, 1, 0}) -// a.IsDecreasing([]float{2, 1}) -// a.IsDecreasing([]string{"b", "a"}) -func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsDecreasing(a.t, object, msgAndArgs...) -} - -// IsDecreasingf asserts that the collection is decreasing -// -// a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted") -// a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsDecreasingf(a.t, object, msg, args...) -} - -// IsIncreasing asserts that the collection is increasing -// -// a.IsIncreasing([]int{1, 2, 3}) -// a.IsIncreasing([]float{1, 2}) -// a.IsIncreasing([]string{"a", "b"}) -func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsIncreasing(a.t, object, msgAndArgs...) -} - -// IsIncreasingf asserts that the collection is increasing -// -// a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted") -// a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsIncreasingf(a.t, object, msg, args...) -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// a.IsNonDecreasing([]int{1, 1, 2}) -// a.IsNonDecreasing([]float{1, 2}) -// a.IsNonDecreasing([]string{"a", "b"}) -func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonDecreasing(a.t, object, msgAndArgs...) -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonDecreasingf(a.t, object, msg, args...) -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// a.IsNonIncreasing([]int{2, 1, 1}) -// a.IsNonIncreasing([]float{2, 1}) -// a.IsNonIncreasing([]string{"b", "a"}) -func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonIncreasing(a.t, object, msgAndArgs...) -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonIncreasingf(a.t, object, msg, args...) -} - -// IsType asserts that the specified objects are of the same type. -func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsType(a.t, expectedType, object, msgAndArgs...) -} - -// IsTypef asserts that the specified objects are of the same type. -func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsTypef(a.t, expectedType, object, msg, args...) -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - JSONEq(a.t, expected, actual, msgAndArgs...) -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - JSONEqf(a.t, expected, actual, msg, args...) -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// a.Len(mySlice, 3) -func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Len(a.t, object, length, msgAndArgs...) -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// a.Lenf(mySlice, 3, "error message %s", "formatted") -func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Lenf(a.t, object, length, msg, args...) -} - -// Less asserts that the first element is less than the second -// -// a.Less(1, 2) -// a.Less(float64(1), float64(2)) -// a.Less("a", "b") -func (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Less(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// a.LessOrEqual(1, 2) -// a.LessOrEqual(2, 2) -// a.LessOrEqual("a", "b") -// a.LessOrEqual("b", "b") -func (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - LessOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// a.LessOrEqualf(1, 2, "error message %s", "formatted") -// a.LessOrEqualf(2, 2, "error message %s", "formatted") -// a.LessOrEqualf("a", "b", "error message %s", "formatted") -// a.LessOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - LessOrEqualf(a.t, e1, e2, msg, args...) -} - -// Lessf asserts that the first element is less than the second -// -// a.Lessf(1, 2, "error message %s", "formatted") -// a.Lessf(float64(1), float64(2), "error message %s", "formatted") -// a.Lessf("a", "b", "error message %s", "formatted") -func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Lessf(a.t, e1, e2, msg, args...) -} - -// Negative asserts that the specified element is negative -// -// a.Negative(-1) -// a.Negative(-1.23) -func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Negative(a.t, e, msgAndArgs...) -} - -// Negativef asserts that the specified element is negative -// -// a.Negativef(-1, "error message %s", "formatted") -// a.Negativef(-1.23, "error message %s", "formatted") -func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Negativef(a.t, e, msg, args...) -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Never(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Neverf(a.t, condition, waitFor, tick, msg, args...) -} - -// Nil asserts that the specified object is nil. -// -// a.Nil(err) -func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Nil(a.t, object, msgAndArgs...) -} - -// Nilf asserts that the specified object is nil. -// -// a.Nilf(err, "error message %s", "formatted") -func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Nilf(a.t, object, msg, args...) -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoDirExists(a.t, path, msgAndArgs...) -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoDirExistsf(a.t, path, msg, args...) -} - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoError(err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoError(err error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoError(a.t, err, msgAndArgs...) -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoErrorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoErrorf(a.t, err, msg, args...) -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoFileExists(a.t, path, msgAndArgs...) -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoFileExistsf(a.t, path, msg, args...) -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContains("Hello World", "Earth") -// a.NotContains(["Hello", "World"], "Earth") -// a.NotContains({"Hello": "World"}, "Earth") -func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotContains(a.t, s, contains, msgAndArgs...) -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContainsf("Hello World", "Earth", "error message %s", "formatted") -// a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted") -// a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted") -func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotContainsf(a.t, s, contains, msg, args...) -} - -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if a.NotEmpty(obj) { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEmpty(a.t, object, msgAndArgs...) -} - -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. -// -// if a.NotEmptyf(obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEmptyf(a.t, object, msg, args...) -} - -// NotEqual asserts that the specified values are NOT equal. -// -// a.NotEqual(obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqual(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValues(obj1, obj2) -func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqualValues(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted") -func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqualValuesf(a.t, expected, actual, msg, args...) -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// a.NotEqualf(obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqualf(a.t, expected, actual, msg, args...) -} - -// NotErrorIs asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotErrorIs(a.t, err, target, msgAndArgs...) -} - -// NotErrorIsf asserts that at none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotErrorIsf(a.t, err, target, msg, args...) -} - -// NotNil asserts that the specified object is not nil. -// -// a.NotNil(err) -func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotNil(a.t, object, msgAndArgs...) -} - -// NotNilf asserts that the specified object is not nil. -// -// a.NotNilf(err, "error message %s", "formatted") -func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotNilf(a.t, object, msg, args...) -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanics(func(){ RemainCalm() }) -func (a *Assertions) NotPanics(f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotPanics(a.t, f, msgAndArgs...) -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted") -func (a *Assertions) NotPanicsf(f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotPanicsf(a.t, f, msg, args...) -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// a.NotRegexp(regexp.MustCompile("starts"), "it's starting") -// a.NotRegexp("^start", "it's not starting") -func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotRegexp(a.t, rx, str, msgAndArgs...) -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted") -func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotRegexpf(a.t, rx, str, msg, args...) -} - -// NotSame asserts that two pointers do not reference the same object. -// -// a.NotSame(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSame(a.t, expected, actual, msgAndArgs...) -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// a.NotSamef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSamef(a.t, expected, actual, msg, args...) -} - -// NotSubset asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// a.NotSubset([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]") -func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSubset(a.t, list, subset, msgAndArgs...) -} - -// NotSubsetf asserts that the specified list(array, slice...) contains not all -// elements given in the specified subset(array, slice...). -// -// a.NotSubsetf([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted") -func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSubsetf(a.t, list, subset, msg, args...) -} - -// NotZero asserts that i is not the zero value for its type. -func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotZero(a.t, i, msgAndArgs...) -} - -// NotZerof asserts that i is not the zero value for its type. -func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotZerof(a.t, i, msg, args...) -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panics(func(){ GoCrazy() }) -func (a *Assertions) Panics(f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Panics(a.t, f, msgAndArgs...) -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithError("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithError(errString string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithError(a.t, errString, f, msgAndArgs...) -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithErrorf(errString string, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithErrorf(a.t, errString, f, msg, args...) -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValue("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithValue(expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithValue(a.t, expected, f, msgAndArgs...) -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithValuef(expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithValuef(a.t, expected, f, msg, args...) -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) Panicsf(f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Panicsf(a.t, f, msg, args...) -} - -// Positive asserts that the specified element is positive -// -// a.Positive(1) -// a.Positive(1.23) -func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Positive(a.t, e, msgAndArgs...) -} - -// Positivef asserts that the specified element is positive -// -// a.Positivef(1, "error message %s", "formatted") -// a.Positivef(1.23, "error message %s", "formatted") -func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Positivef(a.t, e, msg, args...) -} - -// Regexp asserts that a specified regexp matches a string. -// -// a.Regexp(regexp.MustCompile("start"), "it's starting") -// a.Regexp("start...$", "it's not starting") -func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Regexp(a.t, rx, str, msgAndArgs...) -} - -// Regexpf asserts that a specified regexp matches a string. -// -// a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// a.Regexpf("start...$", "it's not starting", "error message %s", "formatted") -func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Regexpf(a.t, rx, str, msg, args...) -} - -// Same asserts that two pointers reference the same object. -// -// a.Same(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Same(a.t, expected, actual, msgAndArgs...) -} - -// Samef asserts that two pointers reference the same object. -// -// a.Samef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Samef(a.t, expected, actual, msg, args...) -} - -// Subset asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// a.Subset([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]") -func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Subset(a.t, list, subset, msgAndArgs...) -} - -// Subsetf asserts that the specified list(array, slice...) contains all -// elements given in the specified subset(array, slice...). -// -// a.Subsetf([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted") -func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Subsetf(a.t, list, subset, msg, args...) -} - -// True asserts that the specified value is true. -// -// a.True(myBool) -func (a *Assertions) True(value bool, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - True(a.t, value, msgAndArgs...) -} - -// Truef asserts that the specified value is true. -// -// a.Truef(myBool, "error message %s", "formatted") -func (a *Assertions) Truef(value bool, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Truef(a.t, value, msg, args...) -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// a.WithinDuration(time.Now(), time.Now(), 10*time.Second) -func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinDuration(a.t, expected, actual, delta, msgAndArgs...) -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinDurationf(a.t, expected, actual, delta, msg, args...) -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// a.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinRange(a.t, actual, start, end, msgAndArgs...) -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// a.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinRangef(a.t, actual, start, end, msg, args...) -} - -// YAMLEq asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - YAMLEq(a.t, expected, actual, msgAndArgs...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - YAMLEqf(a.t, expected, actual, msg, args...) -} - -// Zero asserts that i is the zero value for its type. -func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Zero(a.t, i, msgAndArgs...) -} - -// Zerof asserts that i is the zero value for its type. -func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Zerof(a.t, i, msg, args...) -} diff --git a/backend/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl b/backend/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl deleted file mode 100644 index 54124df1..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{.CommentWithoutT "a"}} -func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) { - if h, ok := a.t.(tHelper); ok { h.Helper() } - {{.DocInfo.Name}}(a.t, {{.ForwardedParams}}) -} diff --git a/backend/vendor/github.com/stretchr/testify/require/requirements.go b/backend/vendor/github.com/stretchr/testify/require/requirements.go deleted file mode 100644 index 91772dfe..00000000 --- a/backend/vendor/github.com/stretchr/testify/require/requirements.go +++ /dev/null @@ -1,29 +0,0 @@ -package require - -// TestingT is an interface wrapper around *testing.T -type TestingT interface { - Errorf(format string, args ...interface{}) - FailNow() -} - -type tHelper interface { - Helper() -} - -// ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful -// for table driven tests. -type ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) - -// ValueAssertionFunc is a common function prototype when validating a single value. Can be useful -// for table driven tests. -type ValueAssertionFunc func(TestingT, interface{}, ...interface{}) - -// BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful -// for table driven tests. -type BoolAssertionFunc func(TestingT, bool, ...interface{}) - -// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful -// for table driven tests. -type ErrorAssertionFunc func(TestingT, error, ...interface{}) - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require.go.tmpl -include-format-funcs" diff --git a/backend/vendor/github.com/subosito/gotenv/.env b/backend/vendor/github.com/subosito/gotenv/.env deleted file mode 100644 index 6405eca7..00000000 --- a/backend/vendor/github.com/subosito/gotenv/.env +++ /dev/null @@ -1 +0,0 @@ -HELLO=world diff --git a/backend/vendor/github.com/subosito/gotenv/.env.invalid b/backend/vendor/github.com/subosito/gotenv/.env.invalid deleted file mode 100644 index 016d5e0c..00000000 --- a/backend/vendor/github.com/subosito/gotenv/.env.invalid +++ /dev/null @@ -1 +0,0 @@ -lol$wut diff --git a/backend/vendor/github.com/subosito/gotenv/.gitignore b/backend/vendor/github.com/subosito/gotenv/.gitignore deleted file mode 100644 index 7db37c1d..00000000 --- a/backend/vendor/github.com/subosito/gotenv/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.test -*.out -annotate.json -profile.cov diff --git a/backend/vendor/github.com/subosito/gotenv/.golangci.yaml b/backend/vendor/github.com/subosito/gotenv/.golangci.yaml deleted file mode 100644 index 8c82a762..00000000 --- a/backend/vendor/github.com/subosito/gotenv/.golangci.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# Options for analysis running. -run: - timeout: 1m - -linters-settings: - gofmt: - simplify: true diff --git a/backend/vendor/github.com/subosito/gotenv/CHANGELOG.md b/backend/vendor/github.com/subosito/gotenv/CHANGELOG.md deleted file mode 100644 index 757caad2..00000000 --- a/backend/vendor/github.com/subosito/gotenv/CHANGELOG.md +++ /dev/null @@ -1,68 +0,0 @@ -# Changelog - -## [1.4.0] - 2022-06-02 - -### Added - -- Add `Marshal` and `Unmarshal` helpers - -### Changed - -- The CI will now run a linter and the tests on PRs. - -## [1.3.0] - 2022-05-23 - -### Added - -- Support = within double-quoted strings -- Add support for multiline values - -### Changed - -- `OverLoad` prefer environment variables over local variables - -## [1.2.0] - 2019-08-03 - -### Added - -- Add `Must` helper to raise an error as panic. It can be used with `Load` and `OverLoad`. -- Add more tests to be 100% coverage. -- Add CHANGELOG -- Add more OS for the test: OSX and Windows - -### Changed - -- Reduce complexity and improve source code for having `A+` score in [goreportcard](https://goreportcard.com/report/github.com/subosito/gotenv). -- Updated README with mentions to all available functions - -### Removed - -- Remove `ErrFormat` -- Remove `MustLoad` and `MustOverload`, replaced with `Must` helper. - -## [1.1.1] - 2018-06-05 - -### Changed - -- Replace `os.Getenv` with `os.LookupEnv` to ensure that the environment variable is not set, by [radding](https://github.com/radding) - -## [1.1.0] - 2017-03-20 - -### Added - -- Supports carriage return in env -- Handle files with UTF-8 BOM - -### Changed - -- Whitespace handling - -### Fixed - -- Incorrect variable expansion -- Handling escaped '$' characters - -## [1.0.0] - 2014-10-05 - -First stable release. - diff --git a/backend/vendor/github.com/subosito/gotenv/LICENSE b/backend/vendor/github.com/subosito/gotenv/LICENSE deleted file mode 100644 index f64ccaed..00000000 --- a/backend/vendor/github.com/subosito/gotenv/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Alif Rachmawadi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/backend/vendor/github.com/subosito/gotenv/README.md b/backend/vendor/github.com/subosito/gotenv/README.md deleted file mode 100644 index fc9616e3..00000000 --- a/backend/vendor/github.com/subosito/gotenv/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# gotenv - -[![Build Status](https://github.com/subosito/gotenv/workflows/Go%20workflow/badge.svg)](https://github.com/subosito/gotenv/actions) -[![Coverage Status](https://badgen.net/codecov/c/github/subosito/gotenv)](https://codecov.io/gh/subosito/gotenv) -[![Go Report Card](https://goreportcard.com/badge/github.com/subosito/gotenv)](https://goreportcard.com/report/github.com/subosito/gotenv) -[![GoDoc](https://godoc.org/github.com/subosito/gotenv?status.svg)](https://godoc.org/github.com/subosito/gotenv) - -Load environment variables from `.env` or `io.Reader` in Go. - -## Usage - -Put the gotenv package on your `import` statement: - -```go -import "github.com/subosito/gotenv" -``` - -To modify your app environment variables, `gotenv` expose 2 main functions: - -- `gotenv.Load` -- `gotenv.Apply` - -By default, `gotenv.Load` will look for a file called `.env` in the current working directory. - -Behind the scene, it will then load `.env` file and export the valid variables to the environment variables. Make sure you call the method as soon as possible to ensure it loads all variables, say, put it on `init()` function. - -Once loaded you can use `os.Getenv()` to get the value of the variable. - -Let's say you have `.env` file: - -```sh -APP_ID=1234567 -APP_SECRET=abcdef -``` - -Here's the example of your app: - -```go -package main - -import ( - "github.com/subosito/gotenv" - "log" - "os" -) - -func init() { - gotenv.Load() -} - -func main() { - log.Println(os.Getenv("APP_ID")) // "1234567" - log.Println(os.Getenv("APP_SECRET")) // "abcdef" -} -``` - -You can also load other than `.env` file if you wish. Just supply filenames when calling `Load()`. It will load them in order and the first value set for a variable will win.: - -```go -gotenv.Load(".env.production", "credentials") -``` - -While `gotenv.Load` loads entries from `.env` file, `gotenv.Apply` allows you to use any `io.Reader`: - -```go -gotenv.Apply(strings.NewReader("APP_ID=1234567")) - -log.Println(os.Getenv("APP_ID")) -// Output: "1234567" -``` - -Both `gotenv.Load` and `gotenv.Apply` **DO NOT** overrides existing environment variables. If you want to override existing ones, you can see section below. - -### Environment Overrides - -Besides above functions, `gotenv` also provides another functions that overrides existing: - -- `gotenv.OverLoad` -- `gotenv.OverApply` - -Here's the example of this overrides behavior: - -```go -os.Setenv("HELLO", "world") - -// NOTE: using Apply existing value will be reserved -gotenv.Apply(strings.NewReader("HELLO=universe")) -fmt.Println(os.Getenv("HELLO")) -// Output: "world" - -// NOTE: using OverApply existing value will be overridden -gotenv.OverApply(strings.NewReader("HELLO=universe")) -fmt.Println(os.Getenv("HELLO")) -// Output: "universe" -``` - -### Throw a Panic - -Both `gotenv.Load` and `gotenv.OverLoad` returns an error on something wrong occurred, like your env file is not exist, and so on. To make it easier to use, `gotenv` also provides `gotenv.Must` helper, to let it panic when an error returned. - -```go -err := gotenv.Load(".env-is-not-exist") -fmt.Println("error", err) -// error: open .env-is-not-exist: no such file or directory - -gotenv.Must(gotenv.Load, ".env-is-not-exist") -// it will throw a panic -// panic: open .env-is-not-exist: no such file or directory -``` - -### Another Scenario - -Just in case you want to parse environment variables from any `io.Reader`, gotenv keeps its `Parse` and `StrictParse` function as public API so you can use that. - -```go -// import "strings" - -pairs := gotenv.Parse(strings.NewReader("FOO=test\nBAR=$FOO")) -// gotenv.Env{"FOO": "test", "BAR": "test"} - -pairs, err := gotenv.StrictParse(strings.NewReader(`FOO="bar"`)) -// gotenv.Env{"FOO": "bar"} -``` - -`Parse` ignores invalid lines and returns `Env` of valid environment variables, while `StrictParse` returns an error for invalid lines. - -## Notes - -The gotenv package is a Go port of [`dotenv`](https://github.com/bkeepers/dotenv) project with some additions made for Go. For general features, it aims to be compatible as close as possible. diff --git a/backend/vendor/github.com/subosito/gotenv/gotenv.go b/backend/vendor/github.com/subosito/gotenv/gotenv.go deleted file mode 100644 index dc013e1e..00000000 --- a/backend/vendor/github.com/subosito/gotenv/gotenv.go +++ /dev/null @@ -1,381 +0,0 @@ -// Package gotenv provides functionality to dynamically load the environment variables -package gotenv - -import ( - "bufio" - "bytes" - "fmt" - "io" - "os" - "path/filepath" - "regexp" - "sort" - "strconv" - "strings" -) - -const ( - // Pattern for detecting valid line format - linePattern = `\A\s*(?:export\s+)?([\w\.]+)(?:\s*=\s*|:\s+?)('(?:\'|[^'])*'|"(?:\"|[^"])*"|[^#\n]+)?\s*(?:\s*\#.*)?\z` - - // Pattern for detecting valid variable within a value - variablePattern = `(\\)?(\$)(\{?([A-Z0-9_]+)?\}?)` - - // Byte order mark character - bom = "\xef\xbb\xbf" -) - -// Env holds key/value pair of valid environment variable -type Env map[string]string - -// Load is a function to load a file or multiple files and then export the valid variables into environment variables if they do not exist. -// When it's called with no argument, it will load `.env` file on the current path and set the environment variables. -// Otherwise, it will loop over the filenames parameter and set the proper environment variables. -func Load(filenames ...string) error { - return loadenv(false, filenames...) -} - -// OverLoad is a function to load a file or multiple files and then export and override the valid variables into environment variables. -func OverLoad(filenames ...string) error { - return loadenv(true, filenames...) -} - -// Must is wrapper function that will panic when supplied function returns an error. -func Must(fn func(filenames ...string) error, filenames ...string) { - if err := fn(filenames...); err != nil { - panic(err.Error()) - } -} - -// Apply is a function to load an io Reader then export the valid variables into environment variables if they do not exist. -func Apply(r io.Reader) error { - return parset(r, false) -} - -// OverApply is a function to load an io Reader then export and override the valid variables into environment variables. -func OverApply(r io.Reader) error { - return parset(r, true) -} - -func loadenv(override bool, filenames ...string) error { - if len(filenames) == 0 { - filenames = []string{".env"} - } - - for _, filename := range filenames { - f, err := os.Open(filename) - if err != nil { - return err - } - - err = parset(f, override) - f.Close() - if err != nil { - return err - } - } - - return nil -} - -// parse and set :) -func parset(r io.Reader, override bool) error { - env, err := strictParse(r, override) - if err != nil { - return err - } - - for key, val := range env { - setenv(key, val, override) - } - - return nil -} - -func setenv(key, val string, override bool) { - if override { - os.Setenv(key, val) - } else { - if _, present := os.LookupEnv(key); !present { - os.Setenv(key, val) - } - } -} - -// Parse is a function to parse line by line any io.Reader supplied and returns the valid Env key/value pair of valid variables. -// It expands the value of a variable from the environment variable but does not set the value to the environment itself. -// This function is skipping any invalid lines and only processing the valid one. -func Parse(r io.Reader) Env { - env, _ := strictParse(r, false) - return env -} - -// StrictParse is a function to parse line by line any io.Reader supplied and returns the valid Env key/value pair of valid variables. -// It expands the value of a variable from the environment variable but does not set the value to the environment itself. -// This function is returning an error if there are any invalid lines. -func StrictParse(r io.Reader) (Env, error) { - return strictParse(r, false) -} - -// Read is a function to parse a file line by line and returns the valid Env key/value pair of valid variables. -// It expands the value of a variable from the environment variable but does not set the value to the environment itself. -// This function is skipping any invalid lines and only processing the valid one. -func Read(filename string) (Env, error) { - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer f.Close() - return strictParse(f, false) -} - -// Unmarshal reads a string line by line and returns the valid Env key/value pair of valid variables. -// It expands the value of a variable from the environment variable but does not set the value to the environment itself. -// This function is returning an error if there are any invalid lines. -func Unmarshal(str string) (Env, error) { - return strictParse(strings.NewReader(str), false) -} - -// Marshal outputs the given environment as a env file. -// Variables will be sorted by name. -func Marshal(env Env) (string, error) { - lines := make([]string, 0, len(env)) - for k, v := range env { - if d, err := strconv.Atoi(v); err == nil { - lines = append(lines, fmt.Sprintf(`%s=%d`, k, d)) - } else { - lines = append(lines, fmt.Sprintf(`%s=%q`, k, v)) - } - } - sort.Strings(lines) - return strings.Join(lines, "\n"), nil -} - -// Write serializes the given environment and writes it to a file -func Write(env Env, filename string) error { - content, err := Marshal(env) - if err != nil { - return err - } - // ensure the path exists - if err := os.MkdirAll(filepath.Dir(filename), 0o775); err != nil { - return err - } - // create or truncate the file - file, err := os.Create(filename) - if err != nil { - return err - } - defer file.Close() - _, err = file.WriteString(content + "\n") - if err != nil { - return err - } - - return file.Sync() -} - -// splitLines is a valid SplitFunc for a bufio.Scanner. It will split lines on CR ('\r'), LF ('\n') or CRLF (any of the three sequences). -// If a CR is immediately followed by a LF, it is treated as a CRLF (one single line break). -func splitLines(data []byte, atEOF bool) (advance int, token []byte, err error) { - if atEOF && len(data) == 0 { - return 0, nil, bufio.ErrFinalToken - } - - idx := bytes.IndexAny(data, "\r\n") - switch { - case atEOF && idx < 0: - return len(data), data, bufio.ErrFinalToken - - case idx < 0: - return 0, nil, nil - } - - // consume CR or LF - eol := idx + 1 - // detect CRLF - if len(data) > eol && data[eol-1] == '\r' && data[eol] == '\n' { - eol++ - } - - return eol, data[:idx], nil -} - -func strictParse(r io.Reader, override bool) (Env, error) { - env := make(Env) - scanner := bufio.NewScanner(r) - scanner.Split(splitLines) - - firstLine := true - - for scanner.Scan() { - line := strings.TrimSpace(scanner.Text()) - - if firstLine { - line = strings.TrimPrefix(line, bom) - firstLine = false - } - - if line == "" || line[0] == '#' { - continue - } - - quote := "" - // look for the delimiter character - idx := strings.Index(line, "=") - if idx == -1 { - idx = strings.Index(line, ":") - } - // look for a quote character - if idx > 0 && idx < len(line)-1 { - val := strings.TrimSpace(line[idx+1:]) - if val[0] == '"' || val[0] == '\'' { - quote = val[:1] - // look for the closing quote character within the same line - idx = strings.LastIndex(strings.TrimSpace(val[1:]), quote) - if idx >= 0 && val[idx] != '\\' { - quote = "" - } - } - } - // look for the closing quote character - for quote != "" && scanner.Scan() { - l := scanner.Text() - line += "\n" + l - idx := strings.LastIndex(l, quote) - if idx > 0 && l[idx-1] == '\\' { - // foud a matching quote character but it's escaped - continue - } - if idx >= 0 { - // foud a matching quote - quote = "" - } - } - - if quote != "" { - return env, fmt.Errorf("missing quotes") - } - - err := parseLine(line, env, override) - if err != nil { - return env, err - } - } - - return env, nil -} - -var ( - lineRgx = regexp.MustCompile(linePattern) - unescapeRgx = regexp.MustCompile(`\\([^$])`) - varRgx = regexp.MustCompile(variablePattern) -) - -func parseLine(s string, env Env, override bool) error { - rm := lineRgx.FindStringSubmatch(s) - - if len(rm) == 0 { - return checkFormat(s, env) - } - - key := strings.TrimSpace(rm[1]) - val := strings.TrimSpace(rm[2]) - - var hsq, hdq bool - - // check if the value is quoted - if l := len(val); l >= 2 { - l -= 1 - // has double quotes - hdq = val[0] == '"' && val[l] == '"' - // has single quotes - hsq = val[0] == '\'' && val[l] == '\'' - - // remove quotes '' or "" - if hsq || hdq { - val = val[1:l] - } - } - - if hdq { - val = strings.ReplaceAll(val, `\n`, "\n") - val = strings.ReplaceAll(val, `\r`, "\r") - - // Unescape all characters except $ so variables can be escaped properly - val = unescapeRgx.ReplaceAllString(val, "$1") - } - - if !hsq { - fv := func(s string) string { - return varReplacement(s, hsq, env, override) - } - val = varRgx.ReplaceAllStringFunc(val, fv) - } - - env[key] = val - return nil -} - -func parseExport(st string, env Env) error { - if strings.HasPrefix(st, "export") { - vs := strings.SplitN(st, " ", 2) - - if len(vs) > 1 { - if _, ok := env[vs[1]]; !ok { - return fmt.Errorf("line `%s` has an unset variable", st) - } - } - } - - return nil -} - -var varNameRgx = regexp.MustCompile(`(\$)(\{?([A-Z0-9_]+)\}?)`) - -func varReplacement(s string, hsq bool, env Env, override bool) string { - if s == "" { - return s - } - - if s[0] == '\\' { - // the dollar sign is escaped - return s[1:] - } - - if hsq { - return s - } - - mn := varNameRgx.FindStringSubmatch(s) - - if len(mn) == 0 { - return s - } - - v := mn[3] - - if replace, ok := os.LookupEnv(v); ok && !override { - return replace - } - - if replace, ok := env[v]; ok { - return replace - } - - return os.Getenv(v) -} - -func checkFormat(s string, env Env) error { - st := strings.TrimSpace(s) - - if st == "" || st[0] == '#' { - return nil - } - - if err := parseExport(st, env); err != nil { - return err - } - - return fmt.Errorf("line `%s` doesn't match format", s) -} diff --git a/backend/vendor/github.com/tomasen/realip/.travis.yml b/backend/vendor/github.com/tomasen/realip/.travis.yml deleted file mode 100644 index fdfbf875..00000000 --- a/backend/vendor/github.com/tomasen/realip/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: go - -go: - - tip - -before_install: - # lint - - go get github.com/golang/lint/golint - - # code complexity - - go get github.com/on99/gocyclo - - # test - - go get github.com/smartystreets/goconvey/convey - -script: - - golint ./... - - go vet ./... - - gocyclo -skip-godeps=true -top 10 -over 10 . # over 10 is bad code diff --git a/backend/vendor/github.com/tomasen/realip/LICENSE b/backend/vendor/github.com/tomasen/realip/LICENSE deleted file mode 100644 index 977c3511..00000000 --- a/backend/vendor/github.com/tomasen/realip/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 SHEN SHENG - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/github.com/tomasen/realip/README.md b/backend/vendor/github.com/tomasen/realip/README.md deleted file mode 100644 index a7bb1203..00000000 --- a/backend/vendor/github.com/tomasen/realip/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# RealIP - -[![GoDoc](https://godoc.org/github.com/tomasen/realip?status.svg)](http://godoc.org/github.com/tomasen/realip) - -Go package that can be used to get client's real public IP, which usually useful for logging HTTP server. - -### Feature - -* Follows the rule of X-Real-IP -* Follows the rule of X-Forwarded-For -* Exclude local or private address - -## Example - -```go -package main - -import "github.com/tomasen/realip" - -func (h *Handler) ServeIndexPage(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { - clientIP := realip.FromRequest(r) - log.Println("GET / from", clientIP) -} -``` - -## Developing - -Commited code must pass: - -* [golint](https://github.com/golang/lint) -* [go vet](https://godoc.org/golang.org/x/tools/cmd/vet) -* [gofmt](https://golang.org/cmd/gofmt) -* [go test](https://golang.org/cmd/go/#hdr-Test_packages): diff --git a/backend/vendor/github.com/tomasen/realip/realip.go b/backend/vendor/github.com/tomasen/realip/realip.go deleted file mode 100644 index e2803a2b..00000000 --- a/backend/vendor/github.com/tomasen/realip/realip.go +++ /dev/null @@ -1,89 +0,0 @@ -package realip - -import ( - "errors" - "net" - "net/http" - "strings" -) - -var cidrs []*net.IPNet - -func init() { - maxCidrBlocks := []string{ - "127.0.0.1/8", // localhost - "10.0.0.0/8", // 24-bit block - "172.16.0.0/12", // 20-bit block - "192.168.0.0/16", // 16-bit block - "169.254.0.0/16", // link local address - "::1/128", // localhost IPv6 - "fc00::/7", // unique local address IPv6 - "fe80::/10", // link local address IPv6 - } - - cidrs = make([]*net.IPNet, len(maxCidrBlocks)) - for i, maxCidrBlock := range maxCidrBlocks { - _, cidr, _ := net.ParseCIDR(maxCidrBlock) - cidrs[i] = cidr - } -} - -// isLocalAddress works by checking if the address is under private CIDR blocks. -// List of private CIDR blocks can be seen on : -// -// https://en.wikipedia.org/wiki/Private_network -// -// https://en.wikipedia.org/wiki/Link-local_address -func isPrivateAddress(address string) (bool, error) { - ipAddress := net.ParseIP(address) - if ipAddress == nil { - return false, errors.New("address is not valid") - } - - for i := range cidrs { - if cidrs[i].Contains(ipAddress) { - return true, nil - } - } - - return false, nil -} - -// FromRequest return client's real public IP address from http request headers. -func FromRequest(r *http.Request) string { - // Fetch header value - xRealIP := r.Header.Get("X-Real-Ip") - xForwardedFor := r.Header.Get("X-Forwarded-For") - - // If both empty, return IP from remote address - if xRealIP == "" && xForwardedFor == "" { - var remoteIP string - - // If there are colon in remote address, remove the port number - // otherwise, return remote address as is - if strings.ContainsRune(r.RemoteAddr, ':') { - remoteIP, _, _ = net.SplitHostPort(r.RemoteAddr) - } else { - remoteIP = r.RemoteAddr - } - - return remoteIP - } - - // Check list of IP in X-Forwarded-For and return the first global address - for _, address := range strings.Split(xForwardedFor, ",") { - address = strings.TrimSpace(address) - isPrivate, err := isPrivateAddress(address) - if !isPrivate && err == nil { - return address - } - } - - // If nothing succeed, return X-Real-IP - return xRealIP -} - -// RealIP is depreciated, use FromRequest instead -func RealIP(r *http.Request) string { - return FromRequest(r) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/.gitignore b/backend/vendor/github.com/ulikunitz/xz/.gitignore deleted file mode 100644 index e3c2fc2f..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# .gitignore - -TODO.html -README.html - -lzma/writer.txt -lzma/reader.txt - -cmd/gxz/gxz -cmd/xb/xb - -# test executables -*.test - -# profile files -*.out - -# vim swap file -.*.swp - -# executables on windows -*.exe - -# default compression test file -enwik8* diff --git a/backend/vendor/github.com/ulikunitz/xz/LICENSE b/backend/vendor/github.com/ulikunitz/xz/LICENSE deleted file mode 100644 index d3214997..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -Copyright (c) 2014-2020 Ulrich Kunitz -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* My name, Ulrich Kunitz, may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/github.com/ulikunitz/xz/README.md b/backend/vendor/github.com/ulikunitz/xz/README.md deleted file mode 100644 index 0a2dc828..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Package xz - -This Go language package supports the reading and writing of xz -compressed streams. It includes also a gxz command for compressing and -decompressing data. The package is completely written in Go and doesn't -have any dependency on any C code. - -The package is currently under development. There might be bugs and APIs -are not considered stable. At this time the package cannot compete with -the xz tool regarding compression speed and size. The algorithms there -have been developed over a long time and are highly optimized. However -there are a number of improvements planned and I'm very optimistic about -parallel compression and decompression. Stay tuned! - -## Using the API - -The following example program shows how to use the API. - -```go -package main - -import ( - "bytes" - "io" - "log" - "os" - - "github.com/ulikunitz/xz" -) - -func main() { - const text = "The quick brown fox jumps over the lazy dog.\n" - var buf bytes.Buffer - // compress text - w, err := xz.NewWriter(&buf) - if err != nil { - log.Fatalf("xz.NewWriter error %s", err) - } - if _, err := io.WriteString(w, text); err != nil { - log.Fatalf("WriteString error %s", err) - } - if err := w.Close(); err != nil { - log.Fatalf("w.Close error %s", err) - } - // decompress buffer and write output to stdout - r, err := xz.NewReader(&buf) - if err != nil { - log.Fatalf("NewReader error %s", err) - } - if _, err = io.Copy(os.Stdout, r); err != nil { - log.Fatalf("io.Copy error %s", err) - } -} -``` - -## Using the gxz compression tool - -The package includes a gxz command line utility for compression and -decompression. - -Use following command for installation: - - $ go get github.com/ulikunitz/xz/cmd/gxz - -To test it call the following command. - - $ gxz bigfile - -After some time a much smaller file bigfile.xz will replace bigfile. -To decompress it use the following command. - - $ gxz -d bigfile.xz - diff --git a/backend/vendor/github.com/ulikunitz/xz/SECURITY.md b/backend/vendor/github.com/ulikunitz/xz/SECURITY.md deleted file mode 100644 index 5f7ec01b..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/SECURITY.md +++ /dev/null @@ -1,10 +0,0 @@ -# Security Policy - -## Supported Versions - -Currently the last minor version v0.5.x is supported. - -## Reporting a Vulnerability - -Report a vulnerability by creating a Github issue at -. Expect a response in a week. diff --git a/backend/vendor/github.com/ulikunitz/xz/TODO.md b/backend/vendor/github.com/ulikunitz/xz/TODO.md deleted file mode 100644 index 88c7341c..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/TODO.md +++ /dev/null @@ -1,355 +0,0 @@ -# TODO list - -## Release v0.5.x - -1. Support check flag in gxz command. - -## Release v0.6 - -1. Review encoder and check for lzma improvements under xz. -2. Fix binary tree matcher. -3. Compare compression ratio with xz tool using comparable parameters and optimize parameters -4. rename operation action and make it a simple type of size 8 -5. make maxMatches, wordSize parameters -6. stop searching after a certain length is found (parameter sweetLen) - -## Release v0.7 - -1. Optimize code -2. Do statistical analysis to get linear presets. -3. Test sync.Pool compatability for xz and lzma Writer and Reader -4. Fuzz optimized code. - -## Release v0.8 - -1. Support parallel go routines for writing and reading xz files. -2. Support a ReaderAt interface for xz files with small block sizes. -3. Improve compatibility between gxz and xz -4. Provide manual page for gxz - -## Release v0.9 - -1. Improve documentation -2. Fuzz again - -## Release v1.0 - -1. Full functioning gxz -2. Add godoc URL to README.md (godoc.org) -3. Resolve all issues. -4. Define release candidates. -5. Public announcement. - -## Package lzma - -### v0.6 - -* Rewrite Encoder into a simple greedy one-op-at-a-time encoder including - * simple scan at the dictionary head for the same byte - * use the killer byte (requiring matches to get longer, the first test should be the byte that would make the match longer) - -## Optimizations - -* There may be a lot of false sharing in lzma. State; check whether this can be improved by reorganizing the internal structure of it. - -* Check whether batching encoding and decoding improves speed. - -### DAG optimizations - -* Use full buffer to create minimal bit-length above range encoder. -* Might be too slow (see v0.4) - -### Different match finders - -* hashes with 2, 3 characters additional to 4 characters -* binary trees with 2-7 characters (uint64 as key, use uint32 as - - pointers into a an array) - -* rb-trees with 2-7 characters (uint64 as key, use uint32 as pointers - - into an array with bit-steeling for the colors) - -## Release Procedure - -* execute goch -l for all packages; probably with lower param like 0.5. -* check orthography with gospell -* Write release notes in doc/relnotes. -* Update README.md -* xb copyright . in xz directory to ensure all new files have Copyright header -* `VERSION= go generate github.com/ulikunitz/xz/...` to update version files -* Execute test for Linux/amd64, Linux/x86 and Windows/amd64. -* Update TODO.md - write short log entry -* `git checkout master && git merge dev` -* `git tag -a ` -* `git push` - -## Log - -### 2020-12-17 - -Release v0.5.9 fixes warnings, a typo and adds SECURITY.md. - -One fix is interesting. - -```go -const ( - a byte = 0x1 - b = 0x2 -) -``` - -The constants a and b don't have the same type. Correct is - -```go -const ( - a byte = 0x1 - b byte = 0x2 -) -``` - -### 2020-08-19 - -Release v0.5.8 fixes issue -[issue #35](https://github.com/ulikunitz/xz/issues/35). - -### 2020-02-24 - -Release v0.5.7 supports the check-ID None and fixes -[issue #27](https://github.com/ulikunitz/xz/issues/27). - -### 2019-02-20 - -Release v0.5.6 supports the go.mod file. - -### 2018-10-28 - -Release v0.5.5 fixes issues #19 observing ErrLimit outputs. - -### 2017-06-05 - -Release v0.5.4 fixes issues #15 of another problem with the padding size -check for the xz block header. I removed the check completely. - -### 2017-02-15 - -Release v0.5.3 fixes issue #12 regarding the decompression of an empty -XZ stream. Many thanks to Tomasz Kłak, who reported the issue. - -### 2016-12-02 - -Release v0.5.2 became necessary to allow the decoding of xz files with -4-byte padding in the block header. Many thanks to Greg, who reported -the issue. - -### 2016-07-23 - -Release v0.5.1 became necessary to fix problems with 32-bit platforms. -Many thanks to Bruno Brigas, who reported the issue. - -### 2016-07-04 - -Release v0.5 provides improvements to the compressor and provides support for -the decompression of xz files with multiple xz streams. - -### 2016-01-31 - -Another compression rate increase by checking the byte at length of the -best match first, before checking the whole prefix. This makes the -compressor even faster. We have now a large time budget to beat the -compression ratio of the xz tool. For enwik8 we have now over 40 seconds -to reduce the compressed file size for another 7 MiB. - -### 2016-01-30 - -I simplified the encoder. Speed and compression rate increased -dramatically. A high compression rate affects also the decompression -speed. The approach with the buffer and optimizing for operation -compression rate has not been successful. Going for the maximum length -appears to be the best approach. - -### 2016-01-28 - -The release v0.4 is ready. It provides a working xz implementation, -which is rather slow, but works and is interoperable with the xz tool. -It is an important milestone. - -### 2016-01-10 - -I have the first working implementation of an xz reader and writer. I'm -happy about reaching this milestone. - -### 2015-12-02 - -I'm now ready to implement xz because, I have a working LZMA2 -implementation. I decided today that v0.4 will use the slow encoder -using the operations buffer to be able to go back, if I intend to do so. - -### 2015-10-21 - -I have restarted the work on the library. While trying to implement -LZMA2, I discovered that I need to resimplify the encoder and decoder -functions. The option approach is too complicated. Using a limited byte -writer and not caring for written bytes at all and not to try to handle -uncompressed data simplifies the LZMA encoder and decoder much. -Processing uncompressed data and handling limits is a feature of the -LZMA2 format not of LZMA. - -I learned an interesting method from the LZO format. If the last copy is -too far away they are moving the head one 2 bytes and not 1 byte to -reduce processing times. - -### 2015-08-26 - -I have now reimplemented the lzma package. The code is reasonably fast, -but can still be optimized. The next step is to implement LZMA2 and then -xz. - -### 2015-07-05 - -Created release v0.3. The version is the foundation for a full xz -implementation that is the target of v0.4. - -### 2015-06-11 - -The gflag package has been developed because I couldn't use flag and -pflag for a fully compatible support of gzip's and lzma's options. It -seems to work now quite nicely. - -### 2015-06-05 - -The overflow issue was interesting to research, however Henry S. Warren -Jr. Hacker's Delight book was very helpful as usual and had the issue -explained perfectly. Fefe's information on his website was based on the -C FAQ and quite bad, because it didn't address the issue of -MININT == -MININT. - -### 2015-06-04 - -It has been a productive day. I improved the interface of lzma. Reader -and lzma. Writer and fixed the error handling. - -### 2015-06-01 - -By computing the bit length of the LZMA operations I was able to -improve the greedy algorithm implementation. By using an 8 MByte buffer -the compression rate was not as good as for xz but already better then -gzip default. - -Compression is currently slow, but this is something we will be able to -improve over time. - -### 2015-05-26 - -Checked the license of ogier/pflag. The binary lzmago binary should -include the license terms for the pflag library. - -I added the endorsement clause as used by Google for the Go sources the -LICENSE file. - -### 2015-05-22 - -The package lzb contains now the basic implementation for creating or -reading LZMA byte streams. It allows the support for the implementation -of the DAG-shortest-path algorithm for the compression function. - -### 2015-04-23 - -Completed yesterday the lzbase classes. I'm a little bit concerned that -using the components may require too much code, but on the other hand -there is a lot of flexibility. - -### 2015-04-22 - -Implemented Reader and Writer during the Bayern game against Porto. The -second half gave me enough time. - -### 2015-04-21 - -While showering today morning I discovered that the design for OpEncoder -and OpDecoder doesn't work, because encoding/decoding might depend on -the current status of the dictionary. This is not exactly the right way -to start the day. - -Therefore we need to keep the Reader and Writer design. This time around -we simplify it by ignoring size limits. These can be added by wrappers -around the Reader and Writer interfaces. The Parameters type isn't -needed anymore. - -However I will implement a ReaderState and WriterState type to use -static typing to ensure the right State object is combined with the -right lzbase. Reader and lzbase. Writer. - -As a start I have implemented ReaderState and WriterState to ensure -that the state for reading is only used by readers and WriterState only -used by Writers. - -### 2015-04-20 - -Today I implemented the OpDecoder and tested OpEncoder and OpDecoder. - -### 2015-04-08 - -Came up with a new simplified design for lzbase. I implemented already -the type State that replaces OpCodec. - -### 2015-04-06 - -The new lzma package is now fully usable and lzmago is using it now. The -old lzma package has been completely removed. - -### 2015-04-05 - -Implemented lzma. Reader and tested it. - -### 2015-04-04 - -Implemented baseReader by adapting code form lzma. Reader. - -### 2015-04-03 - -The opCodec has been copied yesterday to lzma2. opCodec has a high -number of dependencies on other files in lzma2. Therefore I had to copy -almost all files from lzma. - -### 2015-03-31 - -Removed only a TODO item. - -However in Francesco Campoy's presentation "Go for Javaneros -(Javaïstes?)" is the the idea that using an embedded field E, all the -methods of E will be defined on T. If E is an interface T satisfies E. - - - -I have never used this, but it seems to be a cool idea. - -### 2015-03-30 - -Finished the type writerDict and wrote a simple test. - -### 2015-03-25 - -I started to implement the writerDict. - -### 2015-03-24 - -After thinking long about the LZMA2 code and several false starts, I -have now a plan to create a self-sufficient lzma2 package that supports -the classic LZMA format as well as LZMA2. The core idea is to support a -baseReader and baseWriter type that support the basic LZMA stream -without any headers. Both types must support the reuse of dictionaries -and the opCodec. - -### 2015-01-10 - -1. Implemented simple lzmago tool -2. Tested tool against large 4.4G file - * compression worked correctly; tested decompression with lzma - * decompression hits a full buffer condition -3. Fixed a bug in the compressor and wrote a test for it -4. Executed full cycle for 4.4 GB file; performance can be improved ;-) - -### 2015-01-11 - -* Release v0.2 because of the working LZMA encoder and decoder diff --git a/backend/vendor/github.com/ulikunitz/xz/bits.go b/backend/vendor/github.com/ulikunitz/xz/bits.go deleted file mode 100644 index dc8f3286..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/bits.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package xz - -import ( - "errors" - "io" -) - -// putUint32LE puts the little-endian representation of x into the first -// four bytes of p. -func putUint32LE(p []byte, x uint32) { - p[0] = byte(x) - p[1] = byte(x >> 8) - p[2] = byte(x >> 16) - p[3] = byte(x >> 24) -} - -// putUint64LE puts the little-endian representation of x into the first -// eight bytes of p. -func putUint64LE(p []byte, x uint64) { - p[0] = byte(x) - p[1] = byte(x >> 8) - p[2] = byte(x >> 16) - p[3] = byte(x >> 24) - p[4] = byte(x >> 32) - p[5] = byte(x >> 40) - p[6] = byte(x >> 48) - p[7] = byte(x >> 56) -} - -// uint32LE converts a little endian representation to an uint32 value. -func uint32LE(p []byte) uint32 { - return uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | - uint32(p[3])<<24 -} - -// putUvarint puts a uvarint representation of x into the byte slice. -func putUvarint(p []byte, x uint64) int { - i := 0 - for x >= 0x80 { - p[i] = byte(x) | 0x80 - x >>= 7 - i++ - } - p[i] = byte(x) - return i + 1 -} - -// errOverflow indicates an overflow of the 64-bit unsigned integer. -var errOverflowU64 = errors.New("xz: uvarint overflows 64-bit unsigned integer") - -// readUvarint reads a uvarint from the given byte reader. -func readUvarint(r io.ByteReader) (x uint64, n int, err error) { - const maxUvarintLen = 10 - - var s uint - i := 0 - for { - b, err := r.ReadByte() - if err != nil { - return x, i, err - } - i++ - if i > maxUvarintLen { - return x, i, errOverflowU64 - } - if b < 0x80 { - if i == maxUvarintLen && b > 1 { - return x, i, errOverflowU64 - } - return x | uint64(b)< 0 { - k = 4 - k - } - return k -} - -/*** Header ***/ - -// headerMagic stores the magic bytes for the header -var headerMagic = []byte{0xfd, '7', 'z', 'X', 'Z', 0x00} - -// HeaderLen provides the length of the xz file header. -const HeaderLen = 12 - -// Constants for the checksum methods supported by xz. -const ( - None byte = 0x0 - CRC32 byte = 0x1 - CRC64 byte = 0x4 - SHA256 byte = 0xa -) - -// errInvalidFlags indicates that flags are invalid. -var errInvalidFlags = errors.New("xz: invalid flags") - -// verifyFlags returns the error errInvalidFlags if the value is -// invalid. -func verifyFlags(flags byte) error { - switch flags { - case None, CRC32, CRC64, SHA256: - return nil - default: - return errInvalidFlags - } -} - -// flagstrings maps flag values to strings. -var flagstrings = map[byte]string{ - None: "None", - CRC32: "CRC-32", - CRC64: "CRC-64", - SHA256: "SHA-256", -} - -// flagString returns the string representation for the given flags. -func flagString(flags byte) string { - s, ok := flagstrings[flags] - if !ok { - return "invalid" - } - return s -} - -// newHashFunc returns a function that creates hash instances for the -// hash method encoded in flags. -func newHashFunc(flags byte) (newHash func() hash.Hash, err error) { - switch flags { - case None: - newHash = newNoneHash - case CRC32: - newHash = newCRC32 - case CRC64: - newHash = newCRC64 - case SHA256: - newHash = sha256.New - default: - err = errInvalidFlags - } - return -} - -// header provides the actual content of the xz file header: the flags. -type header struct { - flags byte -} - -// Errors returned by readHeader. -var errHeaderMagic = errors.New("xz: invalid header magic bytes") - -// ValidHeader checks whether data is a correct xz file header. The -// length of data must be HeaderLen. -func ValidHeader(data []byte) bool { - var h header - err := h.UnmarshalBinary(data) - return err == nil -} - -// String returns a string representation of the flags. -func (h header) String() string { - return flagString(h.flags) -} - -// UnmarshalBinary reads header from the provided data slice. -func (h *header) UnmarshalBinary(data []byte) error { - // header length - if len(data) != HeaderLen { - return errors.New("xz: wrong file header length") - } - - // magic header - if !bytes.Equal(headerMagic, data[:6]) { - return errHeaderMagic - } - - // checksum - crc := crc32.NewIEEE() - crc.Write(data[6:8]) - if uint32LE(data[8:]) != crc.Sum32() { - return errors.New("xz: invalid checksum for file header") - } - - // stream flags - if data[6] != 0 { - return errInvalidFlags - } - flags := data[7] - if err := verifyFlags(flags); err != nil { - return err - } - - h.flags = flags - return nil -} - -// MarshalBinary generates the xz file header. -func (h *header) MarshalBinary() (data []byte, err error) { - if err = verifyFlags(h.flags); err != nil { - return nil, err - } - - data = make([]byte, 12) - copy(data, headerMagic) - data[7] = h.flags - - crc := crc32.NewIEEE() - crc.Write(data[6:8]) - putUint32LE(data[8:], crc.Sum32()) - - return data, nil -} - -/*** Footer ***/ - -// footerLen defines the length of the footer. -const footerLen = 12 - -// footerMagic contains the footer magic bytes. -var footerMagic = []byte{'Y', 'Z'} - -// footer represents the content of the xz file footer. -type footer struct { - indexSize int64 - flags byte -} - -// String prints a string representation of the footer structure. -func (f footer) String() string { - return fmt.Sprintf("%s index size %d", flagString(f.flags), f.indexSize) -} - -// Minimum and maximum for the size of the index (backward size). -const ( - minIndexSize = 4 - maxIndexSize = (1 << 32) * 4 -) - -// MarshalBinary converts footer values into an xz file footer. Note -// that the footer value is checked for correctness. -func (f *footer) MarshalBinary() (data []byte, err error) { - if err = verifyFlags(f.flags); err != nil { - return nil, err - } - if !(minIndexSize <= f.indexSize && f.indexSize <= maxIndexSize) { - return nil, errors.New("xz: index size out of range") - } - if f.indexSize%4 != 0 { - return nil, errors.New( - "xz: index size not aligned to four bytes") - } - - data = make([]byte, footerLen) - - // backward size (index size) - s := (f.indexSize / 4) - 1 - putUint32LE(data[4:], uint32(s)) - // flags - data[9] = f.flags - // footer magic - copy(data[10:], footerMagic) - - // CRC-32 - crc := crc32.NewIEEE() - crc.Write(data[4:10]) - putUint32LE(data, crc.Sum32()) - - return data, nil -} - -// UnmarshalBinary sets the footer value by unmarshalling an xz file -// footer. -func (f *footer) UnmarshalBinary(data []byte) error { - if len(data) != footerLen { - return errors.New("xz: wrong footer length") - } - - // magic bytes - if !bytes.Equal(data[10:], footerMagic) { - return errors.New("xz: footer magic invalid") - } - - // CRC-32 - crc := crc32.NewIEEE() - crc.Write(data[4:10]) - if uint32LE(data) != crc.Sum32() { - return errors.New("xz: footer checksum error") - } - - var g footer - // backward size (index size) - g.indexSize = (int64(uint32LE(data[4:])) + 1) * 4 - - // flags - if data[8] != 0 { - return errInvalidFlags - } - g.flags = data[9] - if err := verifyFlags(g.flags); err != nil { - return err - } - - *f = g - return nil -} - -/*** Block Header ***/ - -// blockHeader represents the content of an xz block header. -type blockHeader struct { - compressedSize int64 - uncompressedSize int64 - filters []filter -} - -// String converts the block header into a string. -func (h blockHeader) String() string { - var buf bytes.Buffer - first := true - if h.compressedSize >= 0 { - fmt.Fprintf(&buf, "compressed size %d", h.compressedSize) - first = false - } - if h.uncompressedSize >= 0 { - if !first { - buf.WriteString(" ") - } - fmt.Fprintf(&buf, "uncompressed size %d", h.uncompressedSize) - first = false - } - for _, f := range h.filters { - if !first { - buf.WriteString(" ") - } - fmt.Fprintf(&buf, "filter %s", f) - first = false - } - return buf.String() -} - -// Masks for the block flags. -const ( - filterCountMask = 0x03 - compressedSizePresent = 0x40 - uncompressedSizePresent = 0x80 - reservedBlockFlags = 0x3C -) - -// errIndexIndicator signals that an index indicator (0x00) has been found -// instead of an expected block header indicator. -var errIndexIndicator = errors.New("xz: found index indicator") - -// readBlockHeader reads the block header. -func readBlockHeader(r io.Reader) (h *blockHeader, n int, err error) { - var buf bytes.Buffer - buf.Grow(20) - - // block header size - z, err := io.CopyN(&buf, r, 1) - n = int(z) - if err != nil { - return nil, n, err - } - s := buf.Bytes()[0] - if s == 0 { - return nil, n, errIndexIndicator - } - - // read complete header - headerLen := (int(s) + 1) * 4 - buf.Grow(headerLen - 1) - z, err = io.CopyN(&buf, r, int64(headerLen-1)) - n += int(z) - if err != nil { - return nil, n, err - } - - // unmarshal block header - h = new(blockHeader) - if err = h.UnmarshalBinary(buf.Bytes()); err != nil { - return nil, n, err - } - - return h, n, nil -} - -// readSizeInBlockHeader reads the uncompressed or compressed size -// fields in the block header. The present value informs the function -// whether the respective field is actually present in the header. -func readSizeInBlockHeader(r io.ByteReader, present bool) (n int64, err error) { - if !present { - return -1, nil - } - x, _, err := readUvarint(r) - if err != nil { - return 0, err - } - if x >= 1<<63 { - return 0, errors.New("xz: size overflow in block header") - } - return int64(x), nil -} - -// UnmarshalBinary unmarshals the block header. -func (h *blockHeader) UnmarshalBinary(data []byte) error { - // Check header length - s := data[0] - if data[0] == 0 { - return errIndexIndicator - } - headerLen := (int(s) + 1) * 4 - if len(data) != headerLen { - return fmt.Errorf("xz: data length %d; want %d", len(data), - headerLen) - } - n := headerLen - 4 - - // Check CRC-32 - crc := crc32.NewIEEE() - crc.Write(data[:n]) - if crc.Sum32() != uint32LE(data[n:]) { - return errors.New("xz: checksum error for block header") - } - - // Block header flags - flags := data[1] - if flags&reservedBlockFlags != 0 { - return errors.New("xz: reserved block header flags set") - } - - r := bytes.NewReader(data[2:n]) - - // Compressed size - var err error - h.compressedSize, err = readSizeInBlockHeader( - r, flags&compressedSizePresent != 0) - if err != nil { - return err - } - - // Uncompressed size - h.uncompressedSize, err = readSizeInBlockHeader( - r, flags&uncompressedSizePresent != 0) - if err != nil { - return err - } - - h.filters, err = readFilters(r, int(flags&filterCountMask)+1) - if err != nil { - return err - } - - // Check padding - // Since headerLen is a multiple of 4 we don't need to check - // alignment. - k := r.Len() - // The standard spec says that the padding should have not more - // than 3 bytes. However we found paddings of 4 or 5 in the - // wild. See https://github.com/ulikunitz/xz/pull/11 and - // https://github.com/ulikunitz/xz/issues/15 - // - // The only reasonable approach seems to be to ignore the - // padding size. We still check that all padding bytes are zero. - if !allZeros(data[n-k : n]) { - return errPadding - } - return nil -} - -// MarshalBinary marshals the binary header. -func (h *blockHeader) MarshalBinary() (data []byte, err error) { - if !(minFilters <= len(h.filters) && len(h.filters) <= maxFilters) { - return nil, errors.New("xz: filter count wrong") - } - for i, f := range h.filters { - if i < len(h.filters)-1 { - if f.id() == lzmaFilterID { - return nil, errors.New( - "xz: LZMA2 filter is not the last") - } - } else { - // last filter - if f.id() != lzmaFilterID { - return nil, errors.New("xz: " + - "last filter must be the LZMA2 filter") - } - } - } - - var buf bytes.Buffer - // header size must set at the end - buf.WriteByte(0) - - // flags - flags := byte(len(h.filters) - 1) - if h.compressedSize >= 0 { - flags |= compressedSizePresent - } - if h.uncompressedSize >= 0 { - flags |= uncompressedSizePresent - } - buf.WriteByte(flags) - - p := make([]byte, 10) - if h.compressedSize >= 0 { - k := putUvarint(p, uint64(h.compressedSize)) - buf.Write(p[:k]) - } - if h.uncompressedSize >= 0 { - k := putUvarint(p, uint64(h.uncompressedSize)) - buf.Write(p[:k]) - } - - for _, f := range h.filters { - fp, err := f.MarshalBinary() - if err != nil { - return nil, err - } - buf.Write(fp) - } - - // padding - for i := padLen(int64(buf.Len())); i > 0; i-- { - buf.WriteByte(0) - } - - // crc place holder - buf.Write(p[:4]) - - data = buf.Bytes() - if len(data)%4 != 0 { - panic("data length not aligned") - } - s := len(data)/4 - 1 - if !(1 < s && s <= 255) { - panic("wrong block header size") - } - data[0] = byte(s) - - crc := crc32.NewIEEE() - crc.Write(data[:len(data)-4]) - putUint32LE(data[len(data)-4:], crc.Sum32()) - - return data, nil -} - -// Constants used for marshalling and unmarshalling filters in the xz -// block header. -const ( - minFilters = 1 - maxFilters = 4 - minReservedID = 1 << 62 -) - -// filter represents a filter in the block header. -type filter interface { - id() uint64 - UnmarshalBinary(data []byte) error - MarshalBinary() (data []byte, err error) - reader(r io.Reader, c *ReaderConfig) (fr io.Reader, err error) - writeCloser(w io.WriteCloser, c *WriterConfig) (fw io.WriteCloser, err error) - // filter must be last filter - last() bool -} - -// readFilter reads a block filter from the block header. At this point -// in time only the LZMA2 filter is supported. -func readFilter(r io.Reader) (f filter, err error) { - br := lzma.ByteReader(r) - - // index - id, _, err := readUvarint(br) - if err != nil { - return nil, err - } - - var data []byte - switch id { - case lzmaFilterID: - data = make([]byte, lzmaFilterLen) - data[0] = lzmaFilterID - if _, err = io.ReadFull(r, data[1:]); err != nil { - return nil, err - } - f = new(lzmaFilter) - default: - if id >= minReservedID { - return nil, errors.New( - "xz: reserved filter id in block stream header") - } - return nil, errors.New("xz: invalid filter id") - } - if err = f.UnmarshalBinary(data); err != nil { - return nil, err - } - return f, err -} - -// readFilters reads count filters. At this point in time only the count -// 1 is supported. -func readFilters(r io.Reader, count int) (filters []filter, err error) { - if count != 1 { - return nil, errors.New("xz: unsupported filter count") - } - f, err := readFilter(r) - if err != nil { - return nil, err - } - return []filter{f}, err -} - -/*** Index ***/ - -// record describes a block in the xz file index. -type record struct { - unpaddedSize int64 - uncompressedSize int64 -} - -// readRecord reads an index record. -func readRecord(r io.ByteReader) (rec record, n int, err error) { - u, k, err := readUvarint(r) - n += k - if err != nil { - return rec, n, err - } - rec.unpaddedSize = int64(u) - if rec.unpaddedSize < 0 { - return rec, n, errors.New("xz: unpadded size negative") - } - - u, k, err = readUvarint(r) - n += k - if err != nil { - return rec, n, err - } - rec.uncompressedSize = int64(u) - if rec.uncompressedSize < 0 { - return rec, n, errors.New("xz: uncompressed size negative") - } - - return rec, n, nil -} - -// MarshalBinary converts an index record in its binary encoding. -func (rec *record) MarshalBinary() (data []byte, err error) { - // maximum length of a uvarint is 10 - p := make([]byte, 20) - n := putUvarint(p, uint64(rec.unpaddedSize)) - n += putUvarint(p[n:], uint64(rec.uncompressedSize)) - return p[:n], nil -} - -// writeIndex writes the index, a sequence of records. -func writeIndex(w io.Writer, index []record) (n int64, err error) { - crc := crc32.NewIEEE() - mw := io.MultiWriter(w, crc) - - // index indicator - k, err := mw.Write([]byte{0}) - n += int64(k) - if err != nil { - return n, err - } - - // number of records - p := make([]byte, 10) - k = putUvarint(p, uint64(len(index))) - k, err = mw.Write(p[:k]) - n += int64(k) - if err != nil { - return n, err - } - - // list of records - for _, rec := range index { - p, err := rec.MarshalBinary() - if err != nil { - return n, err - } - k, err = mw.Write(p) - n += int64(k) - if err != nil { - return n, err - } - } - - // index padding - k, err = mw.Write(make([]byte, padLen(int64(n)))) - n += int64(k) - if err != nil { - return n, err - } - - // crc32 checksum - putUint32LE(p, crc.Sum32()) - k, err = w.Write(p[:4]) - n += int64(k) - - return n, err -} - -// readIndexBody reads the index from the reader. It assumes that the -// index indicator has already been read. -func readIndexBody(r io.Reader) (records []record, n int64, err error) { - crc := crc32.NewIEEE() - // index indicator - crc.Write([]byte{0}) - - br := lzma.ByteReader(io.TeeReader(r, crc)) - - // number of records - u, k, err := readUvarint(br) - n += int64(k) - if err != nil { - return nil, n, err - } - recLen := int(u) - if recLen < 0 || uint64(recLen) != u { - return nil, n, errors.New("xz: record number overflow") - } - - // list of records - records = make([]record, recLen) - for i := range records { - records[i], k, err = readRecord(br) - n += int64(k) - if err != nil { - return nil, n, err - } - } - - p := make([]byte, padLen(int64(n+1)), 4) - k, err = io.ReadFull(br.(io.Reader), p) - n += int64(k) - if err != nil { - return nil, n, err - } - if !allZeros(p) { - return nil, n, errors.New("xz: non-zero byte in index padding") - } - - // crc32 - s := crc.Sum32() - p = p[:4] - k, err = io.ReadFull(br.(io.Reader), p) - n += int64(k) - if err != nil { - return records, n, err - } - if uint32LE(p) != s { - return nil, n, errors.New("xz: wrong checksum for index") - } - - return records, n, nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/fox-check-none.xz b/backend/vendor/github.com/ulikunitz/xz/fox-check-none.xz deleted file mode 100644 index 46043f7dc89b610dc3badb9db3426620c4c97462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmexsUKJ6=z`*cd=%ynRgCe6CkX@qxbTK1?PDnLRM*R tL9s%9S!$6&2~avGv8qxbB|lw{3#g5Ofzej?!NQIFY(?{`7{LOOQ2>-O93KDx diff --git a/backend/vendor/github.com/ulikunitz/xz/fox.xz b/backend/vendor/github.com/ulikunitz/xz/fox.xz deleted file mode 100644 index 4b820bd5a16e83fe5db4fb315639a4337f862483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 zcmexsUKJ6=z`*kC+7>q^21Q0O1_p)_{ill=8FWH2QWXkIGn2Cwl8W-n^AytZD-^Oy za|?dFO$zmVVdxt0+m!4eq- E0K@hlng9R* diff --git a/backend/vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go b/backend/vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go deleted file mode 100644 index f2861ba3..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hash - -// CyclicPoly provides a cyclic polynomial rolling hash. -type CyclicPoly struct { - h uint64 - p []uint64 - i int -} - -// ror rotates the unsigned 64-bit integer to right. The argument s must be -// less than 64. -func ror(x uint64, s uint) uint64 { - return (x >> s) | (x << (64 - s)) -} - -// NewCyclicPoly creates a new instance of the CyclicPoly structure. The -// argument n gives the number of bytes for which a hash will be executed. -// This number must be positive; the method panics if this isn't the case. -func NewCyclicPoly(n int) *CyclicPoly { - if n < 1 { - panic("argument n must be positive") - } - return &CyclicPoly{p: make([]uint64, 0, n)} -} - -// Len returns the length of the byte sequence for which a hash is generated. -func (r *CyclicPoly) Len() int { - return cap(r.p) -} - -// RollByte hashes the next byte and returns a hash value. The complete becomes -// available after at least Len() bytes have been hashed. -func (r *CyclicPoly) RollByte(x byte) uint64 { - y := hash[x] - if len(r.p) < cap(r.p) { - r.h = ror(r.h, 1) ^ y - r.p = append(r.p, y) - } else { - r.h ^= ror(r.p[r.i], uint(cap(r.p)-1)) - r.h = ror(r.h, 1) ^ y - r.p[r.i] = y - r.i = (r.i + 1) % cap(r.p) - } - return r.h -} - -// Stores the hash for the individual bytes. -var hash = [256]uint64{ - 0x2e4fc3f904065142, 0xc790984cfbc99527, - 0x879f95eb8c62f187, 0x3b61be86b5021ef2, - 0x65a896a04196f0a5, 0xc5b307b80470b59e, - 0xd3bff376a70df14b, 0xc332f04f0b3f1701, - 0x753b5f0e9abf3e0d, 0xb41538fdfe66ef53, - 0x1906a10c2c1c0208, 0xfb0c712a03421c0d, - 0x38be311a65c9552b, 0xfee7ee4ca6445c7e, - 0x71aadeded184f21e, 0xd73426fccda23b2d, - 0x29773fb5fb9600b5, 0xce410261cd32981a, - 0xfe2848b3c62dbc2d, 0x459eaaff6e43e11c, - 0xc13e35fc9c73a887, 0xf30ed5c201e76dbc, - 0xa5f10b3910482cea, 0x2945d59be02dfaad, - 0x06ee334ff70571b5, 0xbabf9d8070f44380, - 0xee3e2e9912ffd27c, 0x2a7118d1ea6b8ea7, - 0x26183cb9f7b1664c, 0xea71dac7da068f21, - 0xea92eca5bd1d0bb7, 0x415595862defcd75, - 0x248a386023c60648, 0x9cf021ab284b3c8a, - 0xfc9372df02870f6c, 0x2b92d693eeb3b3fc, - 0x73e799d139dc6975, 0x7b15ae312486363c, - 0xb70e5454a2239c80, 0x208e3fb31d3b2263, - 0x01f563cabb930f44, 0x2ac4533d2a3240d8, - 0x84231ed1064f6f7c, 0xa9f020977c2a6d19, - 0x213c227271c20122, 0x09fe8a9a0a03d07a, - 0x4236dc75bcaf910c, 0x460a8b2bead8f17e, - 0xd9b27be1aa07055f, 0xd202d5dc4b11c33e, - 0x70adb010543bea12, 0xcdae938f7ea6f579, - 0x3f3d870208672f4d, 0x8e6ccbce9d349536, - 0xe4c0871a389095ae, 0xf5f2a49152bca080, - 0x9a43f9b97269934e, 0xc17b3753cb6f475c, - 0xd56d941e8e206bd4, 0xac0a4f3e525eda00, - 0xa06d5a011912a550, 0x5537ed19537ad1df, - 0xa32fe713d611449d, 0x2a1d05b47c3b579f, - 0x991d02dbd30a2a52, 0x39e91e7e28f93eb0, - 0x40d06adb3e92c9ac, 0x9b9d3afde1c77c97, - 0x9a3f3f41c02c616f, 0x22ecd4ba00f60c44, - 0x0b63d5d801708420, 0x8f227ca8f37ffaec, - 0x0256278670887c24, 0x107e14877dbf540b, - 0x32c19f2786ac1c05, 0x1df5b12bb4bc9c61, - 0xc0cac129d0d4c4e2, 0x9fdb52ee9800b001, - 0x31f601d5d31c48c4, 0x72ff3c0928bcaec7, - 0xd99264421147eb03, 0x535a2d6d38aefcfe, - 0x6ba8b4454a916237, 0xfa39366eaae4719c, - 0x10f00fd7bbb24b6f, 0x5bd23185c76c84d4, - 0xb22c3d7e1b00d33f, 0x3efc20aa6bc830a8, - 0xd61c2503fe639144, 0x30ce625441eb92d3, - 0xe5d34cf359e93100, 0xa8e5aa13f2b9f7a5, - 0x5c2b8d851ca254a6, 0x68fb6c5e8b0d5fdf, - 0xc7ea4872c96b83ae, 0x6dd5d376f4392382, - 0x1be88681aaa9792f, 0xfef465ee1b6c10d9, - 0x1f98b65ed43fcb2e, 0x4d1ca11eb6e9a9c9, - 0x7808e902b3857d0b, 0x171c9c4ea4607972, - 0x58d66274850146df, 0x42b311c10d3981d1, - 0x647fa8c621c41a4c, 0xf472771c66ddfedc, - 0x338d27e3f847b46b, 0x6402ce3da97545ce, - 0x5162db616fc38638, 0x9c83be97bc22a50e, - 0x2d3d7478a78d5e72, 0xe621a9b938fd5397, - 0x9454614eb0f81c45, 0x395fb6e742ed39b6, - 0x77dd9179d06037bf, 0xc478d0fee4d2656d, - 0x35d9d6cb772007af, 0x83a56e92c883f0f6, - 0x27937453250c00a1, 0x27bd6ebc3a46a97d, - 0x9f543bf784342d51, 0xd158f38c48b0ed52, - 0x8dd8537c045f66b4, 0x846a57230226f6d5, - 0x6b13939e0c4e7cdf, 0xfca25425d8176758, - 0x92e5fc6cd52788e6, 0x9992e13d7a739170, - 0x518246f7a199e8ea, 0xf104c2a71b9979c7, - 0x86b3ffaabea4768f, 0x6388061cf3e351ad, - 0x09d9b5295de5bbb5, 0x38bf1638c2599e92, - 0x1d759846499e148d, 0x4c0ff015e5f96ef4, - 0xa41a94cfa270f565, 0x42d76f9cb2326c0b, - 0x0cf385dd3c9c23ba, 0x0508a6c7508d6e7a, - 0x337523aabbe6cf8d, 0x646bb14001d42b12, - 0xc178729d138adc74, 0xf900ef4491f24086, - 0xee1a90d334bb5ac4, 0x9755c92247301a50, - 0xb999bf7c4ff1b610, 0x6aeeb2f3b21e8fc9, - 0x0fa8084cf91ac6ff, 0x10d226cf136e6189, - 0xd302057a07d4fb21, 0x5f03800e20a0fcc3, - 0x80118d4ae46bd210, 0x58ab61a522843733, - 0x51edd575c5432a4b, 0x94ee6ff67f9197f7, - 0x765669e0e5e8157b, 0xa5347830737132f0, - 0x3ba485a69f01510c, 0x0b247d7b957a01c3, - 0x1b3d63449fd807dc, 0x0fdc4721c30ad743, - 0x8b535ed3829b2b14, 0xee41d0cad65d232c, - 0xe6a99ed97a6a982f, 0x65ac6194c202003d, - 0x692accf3a70573eb, 0xcc3c02c3e200d5af, - 0x0d419e8b325914a3, 0x320f160f42c25e40, - 0x00710d647a51fe7a, 0x3c947692330aed60, - 0x9288aa280d355a7a, 0xa1806a9b791d1696, - 0x5d60e38496763da1, 0x6c69e22e613fd0f4, - 0x977fc2a5aadffb17, 0xfb7bd063fc5a94ba, - 0x460c17992cbaece1, 0xf7822c5444d3297f, - 0x344a9790c69b74aa, 0xb80a42e6cae09dce, - 0x1b1361eaf2b1e757, 0xd84c1e758e236f01, - 0x88e0b7be347627cc, 0x45246009b7a99490, - 0x8011c6dd3fe50472, 0xc341d682bffb99d7, - 0x2511be93808e2d15, 0xd5bc13d7fd739840, - 0x2a3cd030679ae1ec, 0x8ad9898a4b9ee157, - 0x3245fef0a8eaf521, 0x3d6d8dbbb427d2b0, - 0x1ed146d8968b3981, 0x0c6a28bf7d45f3fc, - 0x4a1fd3dbcee3c561, 0x4210ff6a476bf67e, - 0xa559cce0d9199aac, 0xde39d47ef3723380, - 0xe5b69d848ce42e35, 0xefa24296f8e79f52, - 0x70190b59db9a5afc, 0x26f166cdb211e7bf, - 0x4deaf2df3c6b8ef5, 0xf171dbdd670f1017, - 0xb9059b05e9420d90, 0x2f0da855c9388754, - 0x611d5e9ab77949cc, 0x2912038ac01163f4, - 0x0231df50402b2fba, 0x45660fc4f3245f58, - 0xb91cc97c7c8dac50, 0xb72d2aafe4953427, - 0xfa6463f87e813d6b, 0x4515f7ee95d5c6a2, - 0x1310e1c1a48d21c3, 0xad48a7810cdd8544, - 0x4d5bdfefd5c9e631, 0xa43ed43f1fdcb7de, - 0xe70cfc8fe1ee9626, 0xef4711b0d8dda442, - 0xb80dd9bd4dab6c93, 0xa23be08d31ba4d93, - 0x9b37db9d0335a39c, 0x494b6f870f5cfebc, - 0x6d1b3c1149dda943, 0x372c943a518c1093, - 0xad27af45e77c09c4, 0x3b6f92b646044604, - 0xac2917909f5fcf4f, 0x2069a60e977e5557, - 0x353a469e71014de5, 0x24be356281f55c15, - 0x2b6d710ba8e9adea, 0x404ad1751c749c29, - 0xed7311bf23d7f185, 0xba4f6976b4acc43e, - 0x32d7198d2bc39000, 0xee667019014d6e01, - 0x494ef3e128d14c83, 0x1f95a152baecd6be, - 0x201648dff1f483a5, 0x68c28550c8384af6, - 0x5fc834a6824a7f48, 0x7cd06cb7365eaf28, - 0xd82bbd95e9b30909, 0x234f0d1694c53f6d, - 0xd2fb7f4a96d83f4a, 0xff0d5da83acac05e, - 0xf8f6b97f5585080a, 0x74236084be57b95b, - 0xa25e40c03bbc36ad, 0x6b6e5c14ce88465b, - 0x4378ffe93e1528c5, 0x94ca92a17118e2d2, -} diff --git a/backend/vendor/github.com/ulikunitz/xz/internal/hash/doc.go b/backend/vendor/github.com/ulikunitz/xz/internal/hash/doc.go deleted file mode 100644 index e28d23be..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/internal/hash/doc.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package hash provides rolling hashes. - -Rolling hashes have to be used for maintaining the positions of n-byte -sequences in the dictionary buffer. - -The package provides currently the Rabin-Karp rolling hash and a Cyclic -Polynomial hash. Both support the Hashes method to be used with an interface. -*/ -package hash diff --git a/backend/vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go b/backend/vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go deleted file mode 100644 index b8e66d97..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hash - -// A is the default constant for Robin-Karp rolling hash. This is a random -// prime. -const A = 0x97b548add41d5da1 - -// RabinKarp supports the computation of a rolling hash. -type RabinKarp struct { - A uint64 - // a^n - aOldest uint64 - h uint64 - p []byte - i int -} - -// NewRabinKarp creates a new RabinKarp value. The argument n defines the -// length of the byte sequence to be hashed. The default constant will will be -// used. -func NewRabinKarp(n int) *RabinKarp { - return NewRabinKarpConst(n, A) -} - -// NewRabinKarpConst creates a new RabinKarp value. The argument n defines the -// length of the byte sequence to be hashed. The argument a provides the -// constant used to compute the hash. -func NewRabinKarpConst(n int, a uint64) *RabinKarp { - if n <= 0 { - panic("number of bytes n must be positive") - } - aOldest := uint64(1) - // There are faster methods. For the small n required by the LZMA - // compressor O(n) is sufficient. - for i := 0; i < n; i++ { - aOldest *= a - } - return &RabinKarp{ - A: a, aOldest: aOldest, - p: make([]byte, 0, n), - } -} - -// Len returns the length of the byte sequence. -func (r *RabinKarp) Len() int { - return cap(r.p) -} - -// RollByte computes the hash after x has been added. -func (r *RabinKarp) RollByte(x byte) uint64 { - if len(r.p) < cap(r.p) { - r.h += uint64(x) - r.h *= r.A - r.p = append(r.p, x) - } else { - r.h -= uint64(r.p[r.i]) * r.aOldest - r.h += uint64(x) - r.h *= r.A - r.p[r.i] = x - r.i = (r.i + 1) % cap(r.p) - } - return r.h -} diff --git a/backend/vendor/github.com/ulikunitz/xz/internal/hash/roller.go b/backend/vendor/github.com/ulikunitz/xz/internal/hash/roller.go deleted file mode 100644 index 34c81b38..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/internal/hash/roller.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hash - -// Roller provides an interface for rolling hashes. The hash value will become -// valid after hash has been called Len times. -type Roller interface { - Len() int - RollByte(x byte) uint64 -} - -// Hashes computes all hash values for the array p. Note that the state of the -// roller is changed. -func Hashes(r Roller, p []byte) []uint64 { - n := r.Len() - if len(p) < n { - return nil - } - h := make([]uint64, len(p)-n+1) - for i := 0; i < n-1; i++ { - r.RollByte(p[i]) - } - for i := range h { - h[i] = r.RollByte(p[i+n-1]) - } - return h -} diff --git a/backend/vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go b/backend/vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go deleted file mode 100644 index fe0c956b..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go +++ /dev/null @@ -1,456 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package xlog provides a simple logging package that allows to disable -// certain message categories. It defines a type, Logger, with multiple -// methods for formatting output. The package has also a predefined -// 'standard' Logger accessible through helper function Print[f|ln], -// Fatal[f|ln], Panic[f|ln], Warn[f|ln], Print[f|ln] and Debug[f|ln] -// that are easier to use then creating a Logger manually. That logger -// writes to standard error and prints the date and time of each logged -// message, which can be configured using the function SetFlags. -// -// The Fatal functions call os.Exit(1) after the message is output -// unless not suppressed by the flags. The Panic functions call panic -// after the writing the log message unless suppressed. -package xlog - -import ( - "fmt" - "io" - "os" - "runtime" - "sync" - "time" -) - -// The flags define what information is prefixed to each log entry -// generated by the Logger. The Lno* versions allow the suppression of -// specific output. The bits are or'ed together to control what will be -// printed. There is no control over the order of the items printed and -// the format. The full format is: -// -// 2009-01-23 01:23:23.123123 /a/b/c/d.go:23: message -const ( - Ldate = 1 << iota // the date: 2009-01-23 - Ltime // the time: 01:23:23 - Lmicroseconds // microsecond resolution: 01:23:23.123123 - Llongfile // full file name and line number: /a/b/c/d.go:23 - Lshortfile // final file name element and line number: d.go:23 - Lnopanic // suppresses output from Panic[f|ln] but not the panic call - Lnofatal // suppresses output from Fatal[f|ln] but not the exit - Lnowarn // suppresses output from Warn[f|ln] - Lnoprint // suppresses output from Print[f|ln] - Lnodebug // suppresses output from Debug[f|ln] - // initial values for the standard logger - Lstdflags = Ldate | Ltime | Lnodebug -) - -// A Logger represents an active logging object that generates lines of -// output to an io.Writer. Each logging operation if not suppressed -// makes a single call to the Writer's Write method. A Logger can be -// used simultaneously from multiple goroutines; it guarantees to -// serialize access to the Writer. -type Logger struct { - mu sync.Mutex // ensures atomic writes; and protects the following - // fields - prefix string // prefix to write at beginning of each line - flag int // properties - out io.Writer // destination for output - buf []byte // for accumulating text to write -} - -// New creates a new Logger. The out argument sets the destination to -// which the log output will be written. The prefix appears at the -// beginning of each log line. The flag argument defines the logging -// properties. -func New(out io.Writer, prefix string, flag int) *Logger { - return &Logger{out: out, prefix: prefix, flag: flag} -} - -// std is the standard logger used by the package scope functions. -var std = New(os.Stderr, "", Lstdflags) - -// itoa converts the integer to ASCII. A negative widths will avoid -// zero-padding. The function supports only non-negative integers. -func itoa(buf *[]byte, i int, wid int) { - var u = uint(i) - if u == 0 && wid <= 1 { - *buf = append(*buf, '0') - return - } - var b [32]byte - bp := len(b) - for ; u > 0 || wid > 0; u /= 10 { - bp-- - wid-- - b[bp] = byte(u%10) + '0' - } - *buf = append(*buf, b[bp:]...) -} - -// formatHeader puts the header into the buf field of the buffer. -func (l *Logger) formatHeader(t time.Time, file string, line int) { - l.buf = append(l.buf, l.prefix...) - if l.flag&(Ldate|Ltime|Lmicroseconds) != 0 { - if l.flag&Ldate != 0 { - year, month, day := t.Date() - itoa(&l.buf, year, 4) - l.buf = append(l.buf, '-') - itoa(&l.buf, int(month), 2) - l.buf = append(l.buf, '-') - itoa(&l.buf, day, 2) - l.buf = append(l.buf, ' ') - } - if l.flag&(Ltime|Lmicroseconds) != 0 { - hour, min, sec := t.Clock() - itoa(&l.buf, hour, 2) - l.buf = append(l.buf, ':') - itoa(&l.buf, min, 2) - l.buf = append(l.buf, ':') - itoa(&l.buf, sec, 2) - if l.flag&Lmicroseconds != 0 { - l.buf = append(l.buf, '.') - itoa(&l.buf, t.Nanosecond()/1e3, 6) - } - l.buf = append(l.buf, ' ') - } - } - if l.flag&(Lshortfile|Llongfile) != 0 { - if l.flag&Lshortfile != 0 { - short := file - for i := len(file) - 1; i > 0; i-- { - if file[i] == '/' { - short = file[i+1:] - break - } - } - file = short - } - l.buf = append(l.buf, file...) - l.buf = append(l.buf, ':') - itoa(&l.buf, line, -1) - l.buf = append(l.buf, ": "...) - } -} - -func (l *Logger) output(calldepth int, now time.Time, s string) error { - var file string - var line int - if l.flag&(Lshortfile|Llongfile) != 0 { - l.mu.Unlock() - var ok bool - _, file, line, ok = runtime.Caller(calldepth) - if !ok { - file = "???" - line = 0 - } - l.mu.Lock() - } - l.buf = l.buf[:0] - l.formatHeader(now, file, line) - l.buf = append(l.buf, s...) - if len(s) == 0 || s[len(s)-1] != '\n' { - l.buf = append(l.buf, '\n') - } - _, err := l.out.Write(l.buf) - return err -} - -// Output writes the string s with the header controlled by the flags to -// the l.out writer. A newline will be appended if s doesn't end in a -// newline. Calldepth is used to recover the PC, although all current -// calls of Output use the call depth 2. Access to the function is serialized. -func (l *Logger) Output(calldepth, noflag int, v ...interface{}) error { - now := time.Now() - l.mu.Lock() - defer l.mu.Unlock() - if l.flag&noflag != 0 { - return nil - } - s := fmt.Sprint(v...) - return l.output(calldepth+1, now, s) -} - -// Outputf works like output but formats the output like Printf. -func (l *Logger) Outputf(calldepth int, noflag int, format string, v ...interface{}) error { - now := time.Now() - l.mu.Lock() - defer l.mu.Unlock() - if l.flag&noflag != 0 { - return nil - } - s := fmt.Sprintf(format, v...) - return l.output(calldepth+1, now, s) -} - -// Outputln works like output but formats the output like Println. -func (l *Logger) Outputln(calldepth int, noflag int, v ...interface{}) error { - now := time.Now() - l.mu.Lock() - defer l.mu.Unlock() - if l.flag&noflag != 0 { - return nil - } - s := fmt.Sprintln(v...) - return l.output(calldepth+1, now, s) -} - -// Panic prints the message like Print and calls panic. The printing -// might be suppressed by the flag Lnopanic. -func (l *Logger) Panic(v ...interface{}) { - l.Output(2, Lnopanic, v...) - s := fmt.Sprint(v...) - panic(s) -} - -// Panic prints the message like Print and calls panic. The printing -// might be suppressed by the flag Lnopanic. -func Panic(v ...interface{}) { - std.Output(2, Lnopanic, v...) - s := fmt.Sprint(v...) - panic(s) -} - -// Panicf prints the message like Printf and calls panic. The printing -// might be suppressed by the flag Lnopanic. -func (l *Logger) Panicf(format string, v ...interface{}) { - l.Outputf(2, Lnopanic, format, v...) - s := fmt.Sprintf(format, v...) - panic(s) -} - -// Panicf prints the message like Printf and calls panic. The printing -// might be suppressed by the flag Lnopanic. -func Panicf(format string, v ...interface{}) { - std.Outputf(2, Lnopanic, format, v...) - s := fmt.Sprintf(format, v...) - panic(s) -} - -// Panicln prints the message like Println and calls panic. The printing -// might be suppressed by the flag Lnopanic. -func (l *Logger) Panicln(v ...interface{}) { - l.Outputln(2, Lnopanic, v...) - s := fmt.Sprintln(v...) - panic(s) -} - -// Panicln prints the message like Println and calls panic. The printing -// might be suppressed by the flag Lnopanic. -func Panicln(v ...interface{}) { - std.Outputln(2, Lnopanic, v...) - s := fmt.Sprintln(v...) - panic(s) -} - -// Fatal prints the message like Print and calls os.Exit(1). The -// printing might be suppressed by the flag Lnofatal. -func (l *Logger) Fatal(v ...interface{}) { - l.Output(2, Lnofatal, v...) - os.Exit(1) -} - -// Fatal prints the message like Print and calls os.Exit(1). The -// printing might be suppressed by the flag Lnofatal. -func Fatal(v ...interface{}) { - std.Output(2, Lnofatal, v...) - os.Exit(1) -} - -// Fatalf prints the message like Printf and calls os.Exit(1). The -// printing might be suppressed by the flag Lnofatal. -func (l *Logger) Fatalf(format string, v ...interface{}) { - l.Outputf(2, Lnofatal, format, v...) - os.Exit(1) -} - -// Fatalf prints the message like Printf and calls os.Exit(1). The -// printing might be suppressed by the flag Lnofatal. -func Fatalf(format string, v ...interface{}) { - std.Outputf(2, Lnofatal, format, v...) - os.Exit(1) -} - -// Fatalln prints the message like Println and calls os.Exit(1). The -// printing might be suppressed by the flag Lnofatal. -func (l *Logger) Fatalln(format string, v ...interface{}) { - l.Outputln(2, Lnofatal, v...) - os.Exit(1) -} - -// Fatalln prints the message like Println and calls os.Exit(1). The -// printing might be suppressed by the flag Lnofatal. -func Fatalln(format string, v ...interface{}) { - std.Outputln(2, Lnofatal, v...) - os.Exit(1) -} - -// Warn prints the message like Print. The printing might be suppressed -// by the flag Lnowarn. -func (l *Logger) Warn(v ...interface{}) { - l.Output(2, Lnowarn, v...) -} - -// Warn prints the message like Print. The printing might be suppressed -// by the flag Lnowarn. -func Warn(v ...interface{}) { - std.Output(2, Lnowarn, v...) -} - -// Warnf prints the message like Printf. The printing might be suppressed -// by the flag Lnowarn. -func (l *Logger) Warnf(format string, v ...interface{}) { - l.Outputf(2, Lnowarn, format, v...) -} - -// Warnf prints the message like Printf. The printing might be suppressed -// by the flag Lnowarn. -func Warnf(format string, v ...interface{}) { - std.Outputf(2, Lnowarn, format, v...) -} - -// Warnln prints the message like Println. The printing might be suppressed -// by the flag Lnowarn. -func (l *Logger) Warnln(v ...interface{}) { - l.Outputln(2, Lnowarn, v...) -} - -// Warnln prints the message like Println. The printing might be suppressed -// by the flag Lnowarn. -func Warnln(v ...interface{}) { - std.Outputln(2, Lnowarn, v...) -} - -// Print prints the message like fmt.Print. The printing might be suppressed -// by the flag Lnoprint. -func (l *Logger) Print(v ...interface{}) { - l.Output(2, Lnoprint, v...) -} - -// Print prints the message like fmt.Print. The printing might be suppressed -// by the flag Lnoprint. -func Print(v ...interface{}) { - std.Output(2, Lnoprint, v...) -} - -// Printf prints the message like fmt.Printf. The printing might be suppressed -// by the flag Lnoprint. -func (l *Logger) Printf(format string, v ...interface{}) { - l.Outputf(2, Lnoprint, format, v...) -} - -// Printf prints the message like fmt.Printf. The printing might be suppressed -// by the flag Lnoprint. -func Printf(format string, v ...interface{}) { - std.Outputf(2, Lnoprint, format, v...) -} - -// Println prints the message like fmt.Println. The printing might be -// suppressed by the flag Lnoprint. -func (l *Logger) Println(v ...interface{}) { - l.Outputln(2, Lnoprint, v...) -} - -// Println prints the message like fmt.Println. The printing might be -// suppressed by the flag Lnoprint. -func Println(v ...interface{}) { - std.Outputln(2, Lnoprint, v...) -} - -// Debug prints the message like Print. The printing might be suppressed -// by the flag Lnodebug. -func (l *Logger) Debug(v ...interface{}) { - l.Output(2, Lnodebug, v...) -} - -// Debug prints the message like Print. The printing might be suppressed -// by the flag Lnodebug. -func Debug(v ...interface{}) { - std.Output(2, Lnodebug, v...) -} - -// Debugf prints the message like Printf. The printing might be suppressed -// by the flag Lnodebug. -func (l *Logger) Debugf(format string, v ...interface{}) { - l.Outputf(2, Lnodebug, format, v...) -} - -// Debugf prints the message like Printf. The printing might be suppressed -// by the flag Lnodebug. -func Debugf(format string, v ...interface{}) { - std.Outputf(2, Lnodebug, format, v...) -} - -// Debugln prints the message like Println. The printing might be suppressed -// by the flag Lnodebug. -func (l *Logger) Debugln(v ...interface{}) { - l.Outputln(2, Lnodebug, v...) -} - -// Debugln prints the message like Println. The printing might be suppressed -// by the flag Lnodebug. -func Debugln(v ...interface{}) { - std.Outputln(2, Lnodebug, v...) -} - -// Flags returns the current flags used by the logger. -func (l *Logger) Flags() int { - l.mu.Lock() - defer l.mu.Unlock() - return l.flag -} - -// Flags returns the current flags used by the standard logger. -func Flags() int { - return std.Flags() -} - -// SetFlags sets the flags of the logger. -func (l *Logger) SetFlags(flag int) { - l.mu.Lock() - defer l.mu.Unlock() - l.flag = flag -} - -// SetFlags sets the flags for the standard logger. -func SetFlags(flag int) { - std.SetFlags(flag) -} - -// Prefix returns the prefix used by the logger. -func (l *Logger) Prefix() string { - l.mu.Lock() - defer l.mu.Unlock() - return l.prefix -} - -// Prefix returns the prefix used by the standard logger of the package. -func Prefix() string { - return std.Prefix() -} - -// SetPrefix sets the prefix for the logger. -func (l *Logger) SetPrefix(prefix string) { - l.mu.Lock() - defer l.mu.Unlock() - l.prefix = prefix -} - -// SetPrefix sets the prefix of the standard logger of the package. -func SetPrefix(prefix string) { - std.SetPrefix(prefix) -} - -// SetOutput sets the output of the logger. -func (l *Logger) SetOutput(w io.Writer) { - l.mu.Lock() - defer l.mu.Unlock() - l.out = w -} - -// SetOutput sets the output for the standard logger of the package. -func SetOutput(w io.Writer) { - std.SetOutput(w) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/bintree.go b/backend/vendor/github.com/ulikunitz/xz/lzma/bintree.go deleted file mode 100644 index 527ea19a..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/bintree.go +++ /dev/null @@ -1,522 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "unicode" -) - -// node represents a node in the binary tree. -type node struct { - // x is the search value - x uint32 - // p parent node - p uint32 - // l left child - l uint32 - // r right child - r uint32 -} - -// wordLen is the number of bytes represented by the v field of a node. -const wordLen = 4 - -// binTree supports the identification of the next operation based on a -// binary tree. -// -// Nodes will be identified by their index into the ring buffer. -type binTree struct { - dict *encoderDict - // ring buffer of nodes - node []node - // absolute offset of the entry for the next node. Position 4 - // byte larger. - hoff int64 - // front position in the node ring buffer - front uint32 - // index of the root node - root uint32 - // current x value - x uint32 - // preallocated array - data []byte -} - -// null represents the nonexistent index. We can't use zero because it -// would always exist or we would need to decrease the index for each -// reference. -const null uint32 = 1<<32 - 1 - -// newBinTree initializes the binTree structure. The capacity defines -// the size of the buffer and defines the maximum distance for which -// matches will be found. -func newBinTree(capacity int) (t *binTree, err error) { - if capacity < 1 { - return nil, errors.New( - "newBinTree: capacity must be larger than zero") - } - if int64(capacity) >= int64(null) { - return nil, errors.New( - "newBinTree: capacity must less 2^{32}-1") - } - t = &binTree{ - node: make([]node, capacity), - hoff: -int64(wordLen), - root: null, - data: make([]byte, maxMatchLen), - } - return t, nil -} - -func (t *binTree) SetDict(d *encoderDict) { t.dict = d } - -// WriteByte writes a single byte into the binary tree. -func (t *binTree) WriteByte(c byte) error { - t.x = (t.x << 8) | uint32(c) - t.hoff++ - if t.hoff < 0 { - return nil - } - v := t.front - if int64(v) < t.hoff { - // We are overwriting old nodes stored in the tree. - t.remove(v) - } - t.node[v].x = t.x - t.add(v) - t.front++ - if int64(t.front) >= int64(len(t.node)) { - t.front = 0 - } - return nil -} - -// Writes writes a sequence of bytes into the binTree structure. -func (t *binTree) Write(p []byte) (n int, err error) { - for _, c := range p { - t.WriteByte(c) - } - return len(p), nil -} - -// add puts the node v into the tree. The node must not be part of the -// tree before. -func (t *binTree) add(v uint32) { - vn := &t.node[v] - // Set left and right to null indices. - vn.l, vn.r = null, null - // If the binary tree is empty make v the root. - if t.root == null { - t.root = v - vn.p = null - return - } - x := vn.x - p := t.root - // Search for the right leave link and add the new node. - for { - pn := &t.node[p] - if x <= pn.x { - if pn.l == null { - pn.l = v - vn.p = p - return - } - p = pn.l - } else { - if pn.r == null { - pn.r = v - vn.p = p - return - } - p = pn.r - } - } -} - -// parent returns the parent node index of v and the pointer to v value -// in the parent. -func (t *binTree) parent(v uint32) (p uint32, ptr *uint32) { - if t.root == v { - return null, &t.root - } - p = t.node[v].p - if t.node[p].l == v { - ptr = &t.node[p].l - } else { - ptr = &t.node[p].r - } - return -} - -// Remove node v. -func (t *binTree) remove(v uint32) { - vn := &t.node[v] - p, ptr := t.parent(v) - l, r := vn.l, vn.r - if l == null { - // Move the right child up. - *ptr = r - if r != null { - t.node[r].p = p - } - return - } - if r == null { - // Move the left child up. - *ptr = l - t.node[l].p = p - return - } - - // Search the in-order predecessor u. - un := &t.node[l] - ur := un.r - if ur == null { - // In order predecessor is l. Move it up. - un.r = r - t.node[r].p = l - un.p = p - *ptr = l - return - } - var u uint32 - for { - // Look for the max value in the tree where l is root. - u = ur - ur = t.node[u].r - if ur == null { - break - } - } - // replace u with ul - un = &t.node[u] - ul := un.l - up := un.p - t.node[up].r = ul - if ul != null { - t.node[ul].p = up - } - - // replace v by u - un.l, un.r = l, r - t.node[l].p = u - t.node[r].p = u - *ptr = u - un.p = p -} - -// search looks for the node that have the value x or for the nodes that -// brace it. The node highest in the tree with the value x will be -// returned. All other nodes with the same value live in left subtree of -// the returned node. -func (t *binTree) search(v uint32, x uint32) (a, b uint32) { - a, b = null, null - if v == null { - return - } - for { - vn := &t.node[v] - if x <= vn.x { - if x == vn.x { - return v, v - } - b = v - if vn.l == null { - return - } - v = vn.l - } else { - a = v - if vn.r == null { - return - } - v = vn.r - } - } -} - -// max returns the node with maximum value in the subtree with v as -// root. -func (t *binTree) max(v uint32) uint32 { - if v == null { - return null - } - for { - r := t.node[v].r - if r == null { - return v - } - v = r - } -} - -// min returns the node with the minimum value in the subtree with v as -// root. -func (t *binTree) min(v uint32) uint32 { - if v == null { - return null - } - for { - l := t.node[v].l - if l == null { - return v - } - v = l - } -} - -// pred returns the in-order predecessor of node v. -func (t *binTree) pred(v uint32) uint32 { - if v == null { - return null - } - u := t.max(t.node[v].l) - if u != null { - return u - } - for { - p := t.node[v].p - if p == null { - return null - } - if t.node[p].r == v { - return p - } - v = p - } -} - -// succ returns the in-order successor of node v. -func (t *binTree) succ(v uint32) uint32 { - if v == null { - return null - } - u := t.min(t.node[v].r) - if u != null { - return u - } - for { - p := t.node[v].p - if p == null { - return null - } - if t.node[p].l == v { - return p - } - v = p - } -} - -// xval converts the first four bytes of a into an 32-bit unsigned -// integer in big-endian order. -func xval(a []byte) uint32 { - var x uint32 - switch len(a) { - default: - x |= uint32(a[3]) - fallthrough - case 3: - x |= uint32(a[2]) << 8 - fallthrough - case 2: - x |= uint32(a[1]) << 16 - fallthrough - case 1: - x |= uint32(a[0]) << 24 - case 0: - } - return x -} - -// dumpX converts value x into a four-letter string. -func dumpX(x uint32) string { - a := make([]byte, 4) - for i := 0; i < 4; i++ { - c := byte(x >> uint((3-i)*8)) - if unicode.IsGraphic(rune(c)) { - a[i] = c - } else { - a[i] = '.' - } - } - return string(a) -} - -/* -// dumpNode writes a representation of the node v into the io.Writer. -func (t *binTree) dumpNode(w io.Writer, v uint32, indent int) { - if v == null { - return - } - - vn := &t.node[v] - - t.dumpNode(w, vn.r, indent+2) - - for i := 0; i < indent; i++ { - fmt.Fprint(w, " ") - } - if vn.p == null { - fmt.Fprintf(w, "node %d %q parent null\n", v, dumpX(vn.x)) - } else { - fmt.Fprintf(w, "node %d %q parent %d\n", v, dumpX(vn.x), vn.p) - } - - t.dumpNode(w, vn.l, indent+2) -} - -// dump prints a representation of the binary tree into the writer. -func (t *binTree) dump(w io.Writer) error { - bw := bufio.NewWriter(w) - t.dumpNode(bw, t.root, 0) - return bw.Flush() -} -*/ - -func (t *binTree) distance(v uint32) int { - dist := int(t.front) - int(v) - if dist <= 0 { - dist += len(t.node) - } - return dist -} - -type matchParams struct { - rep [4]uint32 - // length when match will be accepted - nAccept int - // nodes to check - check int - // finish if length get shorter - stopShorter bool -} - -func (t *binTree) match(m match, distIter func() (int, bool), p matchParams, -) (r match, checked int, accepted bool) { - buf := &t.dict.buf - for { - if checked >= p.check { - return m, checked, true - } - dist, ok := distIter() - if !ok { - return m, checked, false - } - checked++ - if m.n > 0 { - i := buf.rear - dist + m.n - 1 - if i < 0 { - i += len(buf.data) - } else if i >= len(buf.data) { - i -= len(buf.data) - } - if buf.data[i] != t.data[m.n-1] { - if p.stopShorter { - return m, checked, false - } - continue - } - } - n := buf.matchLen(dist, t.data) - switch n { - case 0: - if p.stopShorter { - return m, checked, false - } - continue - case 1: - if uint32(dist-minDistance) != p.rep[0] { - continue - } - } - if n < m.n || (n == m.n && int64(dist) >= m.distance) { - continue - } - m = match{int64(dist), n} - if n >= p.nAccept { - return m, checked, true - } - } -} - -func (t *binTree) NextOp(rep [4]uint32) operation { - // retrieve maxMatchLen data - n, _ := t.dict.buf.Peek(t.data[:maxMatchLen]) - if n == 0 { - panic("no data in buffer") - } - t.data = t.data[:n] - - var ( - m match - x, u, v uint32 - iterPred, iterSucc func() (int, bool) - ) - p := matchParams{ - rep: rep, - nAccept: maxMatchLen, - check: 32, - } - i := 4 - iterSmall := func() (dist int, ok bool) { - i-- - if i <= 0 { - return 0, false - } - return i, true - } - m, checked, accepted := t.match(m, iterSmall, p) - if accepted { - goto end - } - p.check -= checked - x = xval(t.data) - u, v = t.search(t.root, x) - if u == v && len(t.data) == 4 { - iter := func() (dist int, ok bool) { - if u == null { - return 0, false - } - dist = t.distance(u) - u, v = t.search(t.node[u].l, x) - if u != v { - u = null - } - return dist, true - } - m, _, _ = t.match(m, iter, p) - goto end - } - p.stopShorter = true - iterSucc = func() (dist int, ok bool) { - if v == null { - return 0, false - } - dist = t.distance(v) - v = t.succ(v) - return dist, true - } - m, checked, accepted = t.match(m, iterSucc, p) - if accepted { - goto end - } - p.check -= checked - iterPred = func() (dist int, ok bool) { - if u == null { - return 0, false - } - dist = t.distance(u) - u = t.pred(u) - return dist, true - } - m, _, _ = t.match(m, iterPred, p) -end: - if m.n == 0 { - return lit{t.data[0]} - } - return m -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/bitops.go b/backend/vendor/github.com/ulikunitz/xz/lzma/bitops.go deleted file mode 100644 index d4309f97..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/bitops.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -/* Naming conventions follows the CodeReviewComments in the Go Wiki. */ - -// ntz32Const is used by the functions NTZ and NLZ. -const ntz32Const = 0x04d7651f - -// ntz32Table is a helper table for de Bruijn algorithm by Danny Dubé. -// See Henry S. Warren, Jr. "Hacker's Delight" section 5-1 figure 5-26. -var ntz32Table = [32]int8{ - 0, 1, 2, 24, 3, 19, 6, 25, - 22, 4, 20, 10, 16, 7, 12, 26, - 31, 23, 18, 5, 21, 9, 15, 11, - 30, 17, 8, 14, 29, 13, 28, 27, -} - -/* -// ntz32 computes the number of trailing zeros for an unsigned 32-bit integer. -func ntz32(x uint32) int { - if x == 0 { - return 32 - } - x = (x & -x) * ntz32Const - return int(ntz32Table[x>>27]) -} -*/ - -// nlz32 computes the number of leading zeros for an unsigned 32-bit integer. -func nlz32(x uint32) int { - // Smear left most bit to the right - x |= x >> 1 - x |= x >> 2 - x |= x >> 4 - x |= x >> 8 - x |= x >> 16 - // Use ntz mechanism to calculate nlz. - x++ - if x == 0 { - return 0 - } - x *= ntz32Const - return 32 - int(ntz32Table[x>>27]) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/breader.go b/backend/vendor/github.com/ulikunitz/xz/lzma/breader.go deleted file mode 100644 index 4ad09a14..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/breader.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "io" -) - -// breader provides the ReadByte function for a Reader. It doesn't read -// more data from the reader than absolutely necessary. -type breader struct { - io.Reader - // helper slice to save allocations - p []byte -} - -// ByteReader converts an io.Reader into an io.ByteReader. -func ByteReader(r io.Reader) io.ByteReader { - br, ok := r.(io.ByteReader) - if !ok { - return &breader{r, make([]byte, 1)} - } - return br -} - -// ReadByte read byte function. -func (r *breader) ReadByte() (c byte, err error) { - n, err := r.Reader.Read(r.p) - if n < 1 { - if err == nil { - err = errors.New("breader.ReadByte: no data") - } - return 0, err - } - return r.p[0], nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/buffer.go b/backend/vendor/github.com/ulikunitz/xz/lzma/buffer.go deleted file mode 100644 index 9cb7838a..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/buffer.go +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" -) - -// buffer provides a circular buffer of bytes. If the front index equals -// the rear index the buffer is empty. As a consequence front cannot be -// equal rear for a full buffer. So a full buffer has a length that is -// one byte less the the length of the data slice. -type buffer struct { - data []byte - front int - rear int -} - -// newBuffer creates a buffer with the given size. -func newBuffer(size int) *buffer { - return &buffer{data: make([]byte, size+1)} -} - -// Cap returns the capacity of the buffer. -func (b *buffer) Cap() int { - return len(b.data) - 1 -} - -// Resets the buffer. The front and rear index are set to zero. -func (b *buffer) Reset() { - b.front = 0 - b.rear = 0 -} - -// Buffered returns the number of bytes buffered. -func (b *buffer) Buffered() int { - delta := b.front - b.rear - if delta < 0 { - delta += len(b.data) - } - return delta -} - -// Available returns the number of bytes available for writing. -func (b *buffer) Available() int { - delta := b.rear - 1 - b.front - if delta < 0 { - delta += len(b.data) - } - return delta -} - -// addIndex adds a non-negative integer to the index i and returns the -// resulting index. The function takes care of wrapping the index as -// well as potential overflow situations. -func (b *buffer) addIndex(i int, n int) int { - // subtraction of len(b.data) prevents overflow - i += n - len(b.data) - if i < 0 { - i += len(b.data) - } - return i -} - -// Read reads bytes from the buffer into p and returns the number of -// bytes read. The function never returns an error but might return less -// data than requested. -func (b *buffer) Read(p []byte) (n int, err error) { - n, err = b.Peek(p) - b.rear = b.addIndex(b.rear, n) - return n, err -} - -// Peek reads bytes from the buffer into p without changing the buffer. -// Peek will never return an error but might return less data than -// requested. -func (b *buffer) Peek(p []byte) (n int, err error) { - m := b.Buffered() - n = len(p) - if m < n { - n = m - p = p[:n] - } - k := copy(p, b.data[b.rear:]) - if k < n { - copy(p[k:], b.data) - } - return n, nil -} - -// Discard skips the n next bytes to read from the buffer, returning the -// bytes discarded. -// -// If Discards skips fewer than n bytes, it returns an error. -func (b *buffer) Discard(n int) (discarded int, err error) { - if n < 0 { - return 0, errors.New("buffer.Discard: negative argument") - } - m := b.Buffered() - if m < n { - n = m - err = errors.New( - "buffer.Discard: discarded less bytes then requested") - } - b.rear = b.addIndex(b.rear, n) - return n, err -} - -// ErrNoSpace indicates that there is insufficient space for the Write -// operation. -var ErrNoSpace = errors.New("insufficient space") - -// Write puts data into the buffer. If less bytes are written than -// requested ErrNoSpace is returned. -func (b *buffer) Write(p []byte) (n int, err error) { - m := b.Available() - n = len(p) - if m < n { - n = m - p = p[:m] - err = ErrNoSpace - } - k := copy(b.data[b.front:], p) - if k < n { - copy(b.data, p[k:]) - } - b.front = b.addIndex(b.front, n) - return n, err -} - -// WriteByte writes a single byte into the buffer. The error ErrNoSpace -// is returned if no single byte is available in the buffer for writing. -func (b *buffer) WriteByte(c byte) error { - if b.Available() < 1 { - return ErrNoSpace - } - b.data[b.front] = c - b.front = b.addIndex(b.front, 1) - return nil -} - -// prefixLen returns the length of the common prefix of a and b. -func prefixLen(a, b []byte) int { - if len(a) > len(b) { - a, b = b, a - } - for i, c := range a { - if b[i] != c { - return i - } - } - return len(a) -} - -// matchLen returns the length of the common prefix for the given -// distance from the rear and the byte slice p. -func (b *buffer) matchLen(distance int, p []byte) int { - var n int - i := b.rear - distance - if i < 0 { - if n = prefixLen(p, b.data[len(b.data)+i:]); n < -i { - return n - } - p = p[n:] - i = 0 - } - n += prefixLen(p, b.data[i:]) - return n -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/bytewriter.go b/backend/vendor/github.com/ulikunitz/xz/lzma/bytewriter.go deleted file mode 100644 index 290606dd..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/bytewriter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "io" -) - -// ErrLimit indicates that the limit of the LimitedByteWriter has been -// reached. -var ErrLimit = errors.New("limit reached") - -// LimitedByteWriter provides a byte writer that can be written until a -// limit is reached. The field N provides the number of remaining -// bytes. -type LimitedByteWriter struct { - BW io.ByteWriter - N int64 -} - -// WriteByte writes a single byte to the limited byte writer. It returns -// ErrLimit if the limit has been reached. If the byte is successfully -// written the field N of the LimitedByteWriter will be decremented by -// one. -func (l *LimitedByteWriter) WriteByte(c byte) error { - if l.N <= 0 { - return ErrLimit - } - if err := l.BW.WriteByte(c); err != nil { - return err - } - l.N-- - return nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/decoder.go b/backend/vendor/github.com/ulikunitz/xz/lzma/decoder.go deleted file mode 100644 index 4b820792..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/decoder.go +++ /dev/null @@ -1,277 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" - "io" -) - -// decoder decodes a raw LZMA stream without any header. -type decoder struct { - // dictionary; the rear pointer of the buffer will be used for - // reading the data. - Dict *decoderDict - // decoder state - State *state - // range decoder - rd *rangeDecoder - // start stores the head value of the dictionary for the LZMA - // stream - start int64 - // size of uncompressed data - size int64 - // end-of-stream encountered - eos bool - // EOS marker found - eosMarker bool -} - -// newDecoder creates a new decoder instance. The parameter size provides -// the expected byte size of the decompressed data. If the size is -// unknown use a negative value. In that case the decoder will look for -// a terminating end-of-stream marker. -func newDecoder(br io.ByteReader, state *state, dict *decoderDict, size int64) (d *decoder, err error) { - rd, err := newRangeDecoder(br) - if err != nil { - return nil, err - } - d = &decoder{ - State: state, - Dict: dict, - rd: rd, - size: size, - start: dict.pos(), - } - return d, nil -} - -// Reopen restarts the decoder with a new byte reader and a new size. Reopen -// resets the Decompressed counter to zero. -func (d *decoder) Reopen(br io.ByteReader, size int64) error { - var err error - if d.rd, err = newRangeDecoder(br); err != nil { - return err - } - d.start = d.Dict.pos() - d.size = size - d.eos = false - return nil -} - -// decodeLiteral decodes a single literal from the LZMA stream. -func (d *decoder) decodeLiteral() (op operation, err error) { - litState := d.State.litState(d.Dict.byteAt(1), d.Dict.head) - match := d.Dict.byteAt(int(d.State.rep[0]) + 1) - s, err := d.State.litCodec.Decode(d.rd, d.State.state, match, litState) - if err != nil { - return nil, err - } - return lit{s}, nil -} - -// errEOS indicates that an EOS marker has been found. -var errEOS = errors.New("EOS marker found") - -// readOp decodes the next operation from the compressed stream. It -// returns the operation. If an explicit end of stream marker is -// identified the eos error is returned. -func (d *decoder) readOp() (op operation, err error) { - // Value of the end of stream (EOS) marker - const eosDist = 1<<32 - 1 - - state, state2, posState := d.State.states(d.Dict.head) - - b, err := d.State.isMatch[state2].Decode(d.rd) - if err != nil { - return nil, err - } - if b == 0 { - // literal - op, err := d.decodeLiteral() - if err != nil { - return nil, err - } - d.State.updateStateLiteral() - return op, nil - } - b, err = d.State.isRep[state].Decode(d.rd) - if err != nil { - return nil, err - } - if b == 0 { - // simple match - d.State.rep[3], d.State.rep[2], d.State.rep[1] = - d.State.rep[2], d.State.rep[1], d.State.rep[0] - - d.State.updateStateMatch() - // The length decoder returns the length offset. - n, err := d.State.lenCodec.Decode(d.rd, posState) - if err != nil { - return nil, err - } - // The dist decoder returns the distance offset. The actual - // distance is 1 higher. - d.State.rep[0], err = d.State.distCodec.Decode(d.rd, n) - if err != nil { - return nil, err - } - if d.State.rep[0] == eosDist { - d.eosMarker = true - return nil, errEOS - } - op = match{n: int(n) + minMatchLen, - distance: int64(d.State.rep[0]) + minDistance} - return op, nil - } - b, err = d.State.isRepG0[state].Decode(d.rd) - if err != nil { - return nil, err - } - dist := d.State.rep[0] - if b == 0 { - // rep match 0 - b, err = d.State.isRepG0Long[state2].Decode(d.rd) - if err != nil { - return nil, err - } - if b == 0 { - d.State.updateStateShortRep() - op = match{n: 1, distance: int64(dist) + minDistance} - return op, nil - } - } else { - b, err = d.State.isRepG1[state].Decode(d.rd) - if err != nil { - return nil, err - } - if b == 0 { - dist = d.State.rep[1] - } else { - b, err = d.State.isRepG2[state].Decode(d.rd) - if err != nil { - return nil, err - } - if b == 0 { - dist = d.State.rep[2] - } else { - dist = d.State.rep[3] - d.State.rep[3] = d.State.rep[2] - } - d.State.rep[2] = d.State.rep[1] - } - d.State.rep[1] = d.State.rep[0] - d.State.rep[0] = dist - } - n, err := d.State.repLenCodec.Decode(d.rd, posState) - if err != nil { - return nil, err - } - d.State.updateStateRep() - op = match{n: int(n) + minMatchLen, distance: int64(dist) + minDistance} - return op, nil -} - -// apply takes the operation and transforms the decoder dictionary accordingly. -func (d *decoder) apply(op operation) error { - var err error - switch x := op.(type) { - case match: - err = d.Dict.writeMatch(x.distance, x.n) - case lit: - err = d.Dict.WriteByte(x.b) - default: - panic("op is neither a match nor a literal") - } - return err -} - -// decompress fills the dictionary unless no space for new data is -// available. If the end of the LZMA stream has been reached io.EOF will -// be returned. -func (d *decoder) decompress() error { - if d.eos { - return io.EOF - } - for d.Dict.Available() >= maxMatchLen { - op, err := d.readOp() - switch err { - case nil: - // break - case errEOS: - d.eos = true - if !d.rd.possiblyAtEnd() { - return errDataAfterEOS - } - if d.size >= 0 && d.size != d.Decompressed() { - return errSize - } - return io.EOF - case io.EOF: - d.eos = true - return io.ErrUnexpectedEOF - default: - return err - } - if err = d.apply(op); err != nil { - return err - } - if d.size >= 0 && d.Decompressed() >= d.size { - d.eos = true - if d.Decompressed() > d.size { - return errSize - } - if !d.rd.possiblyAtEnd() { - switch _, err = d.readOp(); err { - case nil: - return errSize - case io.EOF: - return io.ErrUnexpectedEOF - case errEOS: - break - default: - return err - } - } - return io.EOF - } - } - return nil -} - -// Errors that may be returned while decoding data. -var ( - errDataAfterEOS = errors.New("lzma: data after end of stream marker") - errSize = errors.New("lzma: wrong uncompressed data size") -) - -// Read reads data from the buffer. If no more data is available io.EOF is -// returned. -func (d *decoder) Read(p []byte) (n int, err error) { - var k int - for { - // Read of decoder dict never returns an error. - k, err = d.Dict.Read(p[n:]) - if err != nil { - panic(fmt.Errorf("dictionary read error %s", err)) - } - if k == 0 && d.eos { - return n, io.EOF - } - n += k - if n >= len(p) { - return n, nil - } - if err = d.decompress(); err != nil && err != io.EOF { - return n, err - } - } -} - -// Decompressed returns the number of bytes decompressed by the decoder. -func (d *decoder) Decompressed() int64 { - return d.Dict.pos() - d.start -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/decoderdict.go b/backend/vendor/github.com/ulikunitz/xz/lzma/decoderdict.go deleted file mode 100644 index dd44e662..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/decoderdict.go +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" -) - -// decoderDict provides the dictionary for the decoder. The whole -// dictionary is used as reader buffer. -type decoderDict struct { - buf buffer - head int64 -} - -// newDecoderDict creates a new decoder dictionary. The whole dictionary -// will be used as reader buffer. -func newDecoderDict(dictCap int) (d *decoderDict, err error) { - // lower limit supports easy test cases - if !(1 <= dictCap && int64(dictCap) <= MaxDictCap) { - return nil, errors.New("lzma: dictCap out of range") - } - d = &decoderDict{buf: *newBuffer(dictCap)} - return d, nil -} - -// Reset clears the dictionary. The read buffer is not changed, so the -// buffered data can still be read. -func (d *decoderDict) Reset() { - d.head = 0 -} - -// WriteByte writes a single byte into the dictionary. It is used to -// write literals into the dictionary. -func (d *decoderDict) WriteByte(c byte) error { - if err := d.buf.WriteByte(c); err != nil { - return err - } - d.head++ - return nil -} - -// pos returns the position of the dictionary head. -func (d *decoderDict) pos() int64 { return d.head } - -// dictLen returns the actual length of the dictionary. -func (d *decoderDict) dictLen() int { - capacity := d.buf.Cap() - if d.head >= int64(capacity) { - return capacity - } - return int(d.head) -} - -// byteAt returns a byte stored in the dictionary. If the distance is -// non-positive or exceeds the current length of the dictionary the zero -// byte is returned. -func (d *decoderDict) byteAt(dist int) byte { - if !(0 < dist && dist <= d.dictLen()) { - return 0 - } - i := d.buf.front - dist - if i < 0 { - i += len(d.buf.data) - } - return d.buf.data[i] -} - -// writeMatch writes the match at the top of the dictionary. The given -// distance must point in the current dictionary and the length must not -// exceed the maximum length 273 supported in LZMA. -// -// The error value ErrNoSpace indicates that no space is available in -// the dictionary for writing. You need to read from the dictionary -// first. -func (d *decoderDict) writeMatch(dist int64, length int) error { - if !(0 < dist && dist <= int64(d.dictLen())) { - return errors.New("writeMatch: distance out of range") - } - if !(0 < length && length <= maxMatchLen) { - return errors.New("writeMatch: length out of range") - } - if length > d.buf.Available() { - return ErrNoSpace - } - d.head += int64(length) - - i := d.buf.front - int(dist) - if i < 0 { - i += len(d.buf.data) - } - for length > 0 { - var p []byte - if i >= d.buf.front { - p = d.buf.data[i:] - i = 0 - } else { - p = d.buf.data[i:d.buf.front] - i = d.buf.front - } - if len(p) > length { - p = p[:length] - } - if _, err := d.buf.Write(p); err != nil { - panic(fmt.Errorf("d.buf.Write returned error %s", err)) - } - length -= len(p) - } - return nil -} - -// Write writes the given bytes into the dictionary and advances the -// head. -func (d *decoderDict) Write(p []byte) (n int, err error) { - n, err = d.buf.Write(p) - d.head += int64(n) - return n, err -} - -// Available returns the number of available bytes for writing into the -// decoder dictionary. -func (d *decoderDict) Available() int { return d.buf.Available() } - -// Read reads data from the buffer contained in the decoder dictionary. -func (d *decoderDict) Read(p []byte) (n int, err error) { return d.buf.Read(p) } diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/directcodec.go b/backend/vendor/github.com/ulikunitz/xz/lzma/directcodec.go deleted file mode 100644 index 06464283..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/directcodec.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -// directCodec allows the encoding and decoding of values with a fixed number -// of bits. The number of bits must be in the range [1,32]. -type directCodec byte - -// Bits returns the number of bits supported by this codec. -func (dc directCodec) Bits() int { - return int(dc) -} - -// Encode uses the range encoder to encode a value with the fixed number of -// bits. The most-significant bit is encoded first. -func (dc directCodec) Encode(e *rangeEncoder, v uint32) error { - for i := int(dc) - 1; i >= 0; i-- { - if err := e.DirectEncodeBit(v >> uint(i)); err != nil { - return err - } - } - return nil -} - -// Decode uses the range decoder to decode a value with the given number of -// given bits. The most-significant bit is decoded first. -func (dc directCodec) Decode(d *rangeDecoder) (v uint32, err error) { - for i := int(dc) - 1; i >= 0; i-- { - x, err := d.DirectDecodeBit() - if err != nil { - return 0, err - } - v = (v << 1) | x - } - return v, nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/distcodec.go b/backend/vendor/github.com/ulikunitz/xz/lzma/distcodec.go deleted file mode 100644 index 9ed486d2..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/distcodec.go +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -// Constants used by the distance codec. -const ( - // minimum supported distance - minDistance = 1 - // maximum supported distance, value is used for the eos marker. - maxDistance = 1 << 32 - // number of the supported len states - lenStates = 4 - // start for the position models - startPosModel = 4 - // first index with align bits support - endPosModel = 14 - // bits for the position slots - posSlotBits = 6 - // number of align bits - alignBits = 4 -) - -// distCodec provides encoding and decoding of distance values. -type distCodec struct { - posSlotCodecs [lenStates]treeCodec - posModel [endPosModel - startPosModel]treeReverseCodec - alignCodec treeReverseCodec -} - -// deepcopy initializes dc as deep copy of the source. -func (dc *distCodec) deepcopy(src *distCodec) { - if dc == src { - return - } - for i := range dc.posSlotCodecs { - dc.posSlotCodecs[i].deepcopy(&src.posSlotCodecs[i]) - } - for i := range dc.posModel { - dc.posModel[i].deepcopy(&src.posModel[i]) - } - dc.alignCodec.deepcopy(&src.alignCodec) -} - -// newDistCodec creates a new distance codec. -func (dc *distCodec) init() { - for i := range dc.posSlotCodecs { - dc.posSlotCodecs[i] = makeTreeCodec(posSlotBits) - } - for i := range dc.posModel { - posSlot := startPosModel + i - bits := (posSlot >> 1) - 1 - dc.posModel[i] = makeTreeReverseCodec(bits) - } - dc.alignCodec = makeTreeReverseCodec(alignBits) -} - -// lenState converts the value l to a supported lenState value. -func lenState(l uint32) uint32 { - if l >= lenStates { - l = lenStates - 1 - } - return l -} - -// Encode encodes the distance using the parameter l. Dist can have values from -// the full range of uint32 values. To get the distance offset the actual match -// distance has to be decreased by 1. A distance offset of 0xffffffff (eos) -// indicates the end of the stream. -func (dc *distCodec) Encode(e *rangeEncoder, dist uint32, l uint32) (err error) { - // Compute the posSlot using nlz32 - var posSlot uint32 - var bits uint32 - if dist < startPosModel { - posSlot = dist - } else { - bits = uint32(30 - nlz32(dist)) - posSlot = startPosModel - 2 + (bits << 1) - posSlot += (dist >> uint(bits)) & 1 - } - - if err = dc.posSlotCodecs[lenState(l)].Encode(e, posSlot); err != nil { - return - } - - switch { - case posSlot < startPosModel: - return nil - case posSlot < endPosModel: - tc := &dc.posModel[posSlot-startPosModel] - return tc.Encode(dist, e) - } - dic := directCodec(bits - alignBits) - if err = dic.Encode(e, dist>>alignBits); err != nil { - return - } - return dc.alignCodec.Encode(dist, e) -} - -// Decode decodes the distance offset using the parameter l. The dist value -// 0xffffffff (eos) indicates the end of the stream. Add one to the distance -// offset to get the actual match distance. -func (dc *distCodec) Decode(d *rangeDecoder, l uint32) (dist uint32, err error) { - posSlot, err := dc.posSlotCodecs[lenState(l)].Decode(d) - if err != nil { - return - } - - // posSlot equals distance - if posSlot < startPosModel { - return posSlot, nil - } - - // posSlot uses the individual models - bits := (posSlot >> 1) - 1 - dist = (2 | (posSlot & 1)) << bits - var u uint32 - if posSlot < endPosModel { - tc := &dc.posModel[posSlot-startPosModel] - if u, err = tc.Decode(d); err != nil { - return 0, err - } - dist += u - return dist, nil - } - - // posSlots use direct encoding and a single model for the four align - // bits. - dic := directCodec(bits - alignBits) - if u, err = dic.Decode(d); err != nil { - return 0, err - } - dist += u << alignBits - if u, err = dc.alignCodec.Decode(d); err != nil { - return 0, err - } - dist += u - return dist, nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/encoder.go b/backend/vendor/github.com/ulikunitz/xz/lzma/encoder.go deleted file mode 100644 index 59055eb6..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/encoder.go +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "fmt" - "io" -) - -// opLenMargin provides the upper limit of the number of bytes required -// to encode a single operation. -const opLenMargin = 16 - -// compressFlags control the compression process. -type compressFlags uint32 - -// Values for compressFlags. -const ( - // all data should be compressed, even if compression is not - // optimal. - all compressFlags = 1 << iota -) - -// encoderFlags provide the flags for an encoder. -type encoderFlags uint32 - -// Flags for the encoder. -const ( - // eosMarker requests an EOS marker to be written. - eosMarker encoderFlags = 1 << iota -) - -// Encoder compresses data buffered in the encoder dictionary and writes -// it into a byte writer. -type encoder struct { - dict *encoderDict - state *state - re *rangeEncoder - start int64 - // generate eos marker - marker bool - limit bool - margin int -} - -// newEncoder creates a new encoder. If the byte writer must be -// limited use LimitedByteWriter provided by this package. The flags -// argument supports the eosMarker flag, controlling whether a -// terminating end-of-stream marker must be written. -func newEncoder(bw io.ByteWriter, state *state, dict *encoderDict, - flags encoderFlags) (e *encoder, err error) { - - re, err := newRangeEncoder(bw) - if err != nil { - return nil, err - } - e = &encoder{ - dict: dict, - state: state, - re: re, - marker: flags&eosMarker != 0, - start: dict.Pos(), - margin: opLenMargin, - } - if e.marker { - e.margin += 5 - } - return e, nil -} - -// Write writes the bytes from p into the dictionary. If not enough -// space is available the data in the dictionary buffer will be -// compressed to make additional space available. If the limit of the -// underlying writer has been reached ErrLimit will be returned. -func (e *encoder) Write(p []byte) (n int, err error) { - for { - k, err := e.dict.Write(p[n:]) - n += k - if err == ErrNoSpace { - if err = e.compress(0); err != nil { - return n, err - } - continue - } - return n, err - } -} - -// Reopen reopens the encoder with a new byte writer. -func (e *encoder) Reopen(bw io.ByteWriter) error { - var err error - if e.re, err = newRangeEncoder(bw); err != nil { - return err - } - e.start = e.dict.Pos() - e.limit = false - return nil -} - -// writeLiteral writes a literal into the LZMA stream -func (e *encoder) writeLiteral(l lit) error { - var err error - state, state2, _ := e.state.states(e.dict.Pos()) - if err = e.state.isMatch[state2].Encode(e.re, 0); err != nil { - return err - } - litState := e.state.litState(e.dict.ByteAt(1), e.dict.Pos()) - match := e.dict.ByteAt(int(e.state.rep[0]) + 1) - err = e.state.litCodec.Encode(e.re, l.b, state, match, litState) - if err != nil { - return err - } - e.state.updateStateLiteral() - return nil -} - -// iverson implements the Iverson operator as proposed by Donald Knuth in his -// book Concrete Mathematics. -func iverson(ok bool) uint32 { - if ok { - return 1 - } - return 0 -} - -// writeMatch writes a repetition operation into the operation stream -func (e *encoder) writeMatch(m match) error { - var err error - if !(minDistance <= m.distance && m.distance <= maxDistance) { - panic(fmt.Errorf("match distance %d out of range", m.distance)) - } - dist := uint32(m.distance - minDistance) - if !(minMatchLen <= m.n && m.n <= maxMatchLen) && - !(dist == e.state.rep[0] && m.n == 1) { - panic(fmt.Errorf( - "match length %d out of range; dist %d rep[0] %d", - m.n, dist, e.state.rep[0])) - } - state, state2, posState := e.state.states(e.dict.Pos()) - if err = e.state.isMatch[state2].Encode(e.re, 1); err != nil { - return err - } - g := 0 - for ; g < 4; g++ { - if e.state.rep[g] == dist { - break - } - } - b := iverson(g < 4) - if err = e.state.isRep[state].Encode(e.re, b); err != nil { - return err - } - n := uint32(m.n - minMatchLen) - if b == 0 { - // simple match - e.state.rep[3], e.state.rep[2], e.state.rep[1], e.state.rep[0] = - e.state.rep[2], e.state.rep[1], e.state.rep[0], dist - e.state.updateStateMatch() - if err = e.state.lenCodec.Encode(e.re, n, posState); err != nil { - return err - } - return e.state.distCodec.Encode(e.re, dist, n) - } - b = iverson(g != 0) - if err = e.state.isRepG0[state].Encode(e.re, b); err != nil { - return err - } - if b == 0 { - // g == 0 - b = iverson(m.n != 1) - if err = e.state.isRepG0Long[state2].Encode(e.re, b); err != nil { - return err - } - if b == 0 { - e.state.updateStateShortRep() - return nil - } - } else { - // g in {1,2,3} - b = iverson(g != 1) - if err = e.state.isRepG1[state].Encode(e.re, b); err != nil { - return err - } - if b == 1 { - // g in {2,3} - b = iverson(g != 2) - err = e.state.isRepG2[state].Encode(e.re, b) - if err != nil { - return err - } - if b == 1 { - e.state.rep[3] = e.state.rep[2] - } - e.state.rep[2] = e.state.rep[1] - } - e.state.rep[1] = e.state.rep[0] - e.state.rep[0] = dist - } - e.state.updateStateRep() - return e.state.repLenCodec.Encode(e.re, n, posState) -} - -// writeOp writes a single operation to the range encoder. The function -// checks whether there is enough space available to close the LZMA -// stream. -func (e *encoder) writeOp(op operation) error { - if e.re.Available() < int64(e.margin) { - return ErrLimit - } - switch x := op.(type) { - case lit: - return e.writeLiteral(x) - case match: - return e.writeMatch(x) - default: - panic("unexpected operation") - } -} - -// compress compressed data from the dictionary buffer. If the flag all -// is set, all data in the dictionary buffer will be compressed. The -// function returns ErrLimit if the underlying writer has reached its -// limit. -func (e *encoder) compress(flags compressFlags) error { - n := 0 - if flags&all == 0 { - n = maxMatchLen - 1 - } - d := e.dict - m := d.m - for d.Buffered() > n { - op := m.NextOp(e.state.rep) - if err := e.writeOp(op); err != nil { - return err - } - d.Discard(op.Len()) - } - return nil -} - -// eosMatch is a pseudo operation that indicates the end of the stream. -var eosMatch = match{distance: maxDistance, n: minMatchLen} - -// Close terminates the LZMA stream. If requested the end-of-stream -// marker will be written. If the byte writer limit has been or will be -// reached during compression of the remaining data in the buffer the -// LZMA stream will be closed and data will remain in the buffer. -func (e *encoder) Close() error { - err := e.compress(all) - if err != nil && err != ErrLimit { - return err - } - if e.marker { - if err := e.writeMatch(eosMatch); err != nil { - return err - } - } - err = e.re.Close() - return err -} - -// Compressed returns the number bytes of the input data that been -// compressed. -func (e *encoder) Compressed() int64 { - return e.dict.Pos() - e.start -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/encoderdict.go b/backend/vendor/github.com/ulikunitz/xz/lzma/encoderdict.go deleted file mode 100644 index c36308d7..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/encoderdict.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" - "io" -) - -// matcher is an interface that supports the identification of the next -// operation. -type matcher interface { - io.Writer - SetDict(d *encoderDict) - NextOp(rep [4]uint32) operation -} - -// encoderDict provides the dictionary of the encoder. It includes an -// additional buffer atop of the actual dictionary. -type encoderDict struct { - buf buffer - m matcher - head int64 - capacity int - // preallocated array - data [maxMatchLen]byte -} - -// newEncoderDict creates the encoder dictionary. The argument bufSize -// defines the size of the additional buffer. -func newEncoderDict(dictCap, bufSize int, m matcher) (d *encoderDict, err error) { - if !(1 <= dictCap && int64(dictCap) <= MaxDictCap) { - return nil, errors.New( - "lzma: dictionary capacity out of range") - } - if bufSize < 1 { - return nil, errors.New( - "lzma: buffer size must be larger than zero") - } - d = &encoderDict{ - buf: *newBuffer(dictCap + bufSize), - capacity: dictCap, - m: m, - } - m.SetDict(d) - return d, nil -} - -// Discard discards n bytes. Note that n must not be larger than -// MaxMatchLen. -func (d *encoderDict) Discard(n int) { - p := d.data[:n] - k, _ := d.buf.Read(p) - if k < n { - panic(fmt.Errorf("lzma: can't discard %d bytes", n)) - } - d.head += int64(n) - d.m.Write(p) -} - -// Len returns the data available in the encoder dictionary. -func (d *encoderDict) Len() int { - n := d.buf.Available() - if int64(n) > d.head { - return int(d.head) - } - return n -} - -// DictLen returns the actual length of data in the dictionary. -func (d *encoderDict) DictLen() int { - if d.head < int64(d.capacity) { - return int(d.head) - } - return d.capacity -} - -// Available returns the number of bytes that can be written by a -// following Write call. -func (d *encoderDict) Available() int { - return d.buf.Available() - d.DictLen() -} - -// Write writes data into the dictionary buffer. Note that the position -// of the dictionary head will not be moved. If there is not enough -// space in the buffer ErrNoSpace will be returned. -func (d *encoderDict) Write(p []byte) (n int, err error) { - m := d.Available() - if len(p) > m { - p = p[:m] - err = ErrNoSpace - } - var e error - if n, e = d.buf.Write(p); e != nil { - err = e - } - return n, err -} - -// Pos returns the position of the head. -func (d *encoderDict) Pos() int64 { return d.head } - -// ByteAt returns the byte at the given distance. -func (d *encoderDict) ByteAt(distance int) byte { - if !(0 < distance && distance <= d.Len()) { - return 0 - } - i := d.buf.rear - distance - if i < 0 { - i += len(d.buf.data) - } - return d.buf.data[i] -} - -// CopyN copies the last n bytes from the dictionary into the provided -// writer. This is used for copying uncompressed data into an -// uncompressed segment. -func (d *encoderDict) CopyN(w io.Writer, n int) (written int, err error) { - if n <= 0 { - return 0, nil - } - m := d.Len() - if n > m { - n = m - err = ErrNoSpace - } - i := d.buf.rear - n - var e error - if i < 0 { - i += len(d.buf.data) - if written, e = w.Write(d.buf.data[i:]); e != nil { - return written, e - } - i = 0 - } - var k int - k, e = w.Write(d.buf.data[i:d.buf.rear]) - written += k - if e != nil { - err = e - } - return written, err -} - -// Buffered returns the number of bytes in the buffer. -func (d *encoderDict) Buffered() int { return d.buf.Buffered() } diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/fox.lzma b/backend/vendor/github.com/ulikunitz/xz/lzma/fox.lzma deleted file mode 100644 index 5edad633266eb5173a7c39761dc8b9e71efbfe80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67 zcma!LU}#|Y4+RWbQXGqzRntCtR~%i$`d{za%}WYWYfXMUl6~Q5_UjH?=5CuO0w(I5 UuQ#VXelz{mI_3ZW`W7$%0HEw6g#Z8m diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/hashtable.go b/backend/vendor/github.com/ulikunitz/xz/lzma/hashtable.go deleted file mode 100644 index e82970ea..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/hashtable.go +++ /dev/null @@ -1,309 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" - - "github.com/ulikunitz/xz/internal/hash" -) - -/* For compression we need to find byte sequences that match the byte - * sequence at the dictionary head. A hash table is a simple method to - * provide this capability. - */ - -// maxMatches limits the number of matches requested from the Matches -// function. This controls the speed of the overall encoding. -const maxMatches = 16 - -// shortDists defines the number of short distances supported by the -// implementation. -const shortDists = 8 - -// The minimum is somehow arbitrary but the maximum is limited by the -// memory requirements of the hash table. -const ( - minTableExponent = 9 - maxTableExponent = 20 -) - -// newRoller contains the function used to create an instance of the -// hash.Roller. -var newRoller = func(n int) hash.Roller { return hash.NewCyclicPoly(n) } - -// hashTable stores the hash table including the rolling hash method. -// -// We implement chained hashing into a circular buffer. Each entry in -// the circular buffer stores the delta distance to the next position with a -// word that has the same hash value. -type hashTable struct { - dict *encoderDict - // actual hash table - t []int64 - // circular list data with the offset to the next word - data []uint32 - front int - // mask for computing the index for the hash table - mask uint64 - // hash offset; initial value is -int64(wordLen) - hoff int64 - // length of the hashed word - wordLen int - // hash roller for computing the hash values for the Write - // method - wr hash.Roller - // hash roller for computing arbitrary hashes - hr hash.Roller - // preallocated slices - p [maxMatches]int64 - distances [maxMatches + shortDists]int -} - -// hashTableExponent derives the hash table exponent from the dictionary -// capacity. -func hashTableExponent(n uint32) int { - e := 30 - nlz32(n) - switch { - case e < minTableExponent: - e = minTableExponent - case e > maxTableExponent: - e = maxTableExponent - } - return e -} - -// newHashTable creates a new hash table for words of length wordLen -func newHashTable(capacity int, wordLen int) (t *hashTable, err error) { - if !(0 < capacity) { - return nil, errors.New( - "newHashTable: capacity must not be negative") - } - exp := hashTableExponent(uint32(capacity)) - if !(1 <= wordLen && wordLen <= 4) { - return nil, errors.New("newHashTable: " + - "argument wordLen out of range") - } - n := 1 << uint(exp) - if n <= 0 { - panic("newHashTable: exponent is too large") - } - t = &hashTable{ - t: make([]int64, n), - data: make([]uint32, capacity), - mask: (uint64(1) << uint(exp)) - 1, - hoff: -int64(wordLen), - wordLen: wordLen, - wr: newRoller(wordLen), - hr: newRoller(wordLen), - } - return t, nil -} - -func (t *hashTable) SetDict(d *encoderDict) { t.dict = d } - -// buffered returns the number of bytes that are currently hashed. -func (t *hashTable) buffered() int { - n := t.hoff + 1 - switch { - case n <= 0: - return 0 - case n >= int64(len(t.data)): - return len(t.data) - } - return int(n) -} - -// addIndex adds n to an index ensuring that is stays inside the -// circular buffer for the hash chain. -func (t *hashTable) addIndex(i, n int) int { - i += n - len(t.data) - if i < 0 { - i += len(t.data) - } - return i -} - -// putDelta puts the delta instance at the current front of the circular -// chain buffer. -func (t *hashTable) putDelta(delta uint32) { - t.data[t.front] = delta - t.front = t.addIndex(t.front, 1) -} - -// putEntry puts a new entry into the hash table. If there is already a -// value stored it is moved into the circular chain buffer. -func (t *hashTable) putEntry(h uint64, pos int64) { - if pos < 0 { - return - } - i := h & t.mask - old := t.t[i] - 1 - t.t[i] = pos + 1 - var delta int64 - if old >= 0 { - delta = pos - old - if delta > 1<<32-1 || delta > int64(t.buffered()) { - delta = 0 - } - } - t.putDelta(uint32(delta)) -} - -// WriteByte converts a single byte into a hash and puts them into the hash -// table. -func (t *hashTable) WriteByte(b byte) error { - h := t.wr.RollByte(b) - t.hoff++ - t.putEntry(h, t.hoff) - return nil -} - -// Write converts the bytes provided into hash tables and stores the -// abbreviated offsets into the hash table. The method will never return an -// error. -func (t *hashTable) Write(p []byte) (n int, err error) { - for _, b := range p { - // WriteByte doesn't generate an error. - t.WriteByte(b) - } - return len(p), nil -} - -// getMatches the matches for a specific hash. The functions returns the -// number of positions found. -// -// TODO: Make a getDistances because that we are actually interested in. -func (t *hashTable) getMatches(h uint64, positions []int64) (n int) { - if t.hoff < 0 || len(positions) == 0 { - return 0 - } - buffered := t.buffered() - tailPos := t.hoff + 1 - int64(buffered) - rear := t.front - buffered - if rear >= 0 { - rear -= len(t.data) - } - // get the slot for the hash - pos := t.t[h&t.mask] - 1 - delta := pos - tailPos - for { - if delta < 0 { - return n - } - positions[n] = tailPos + delta - n++ - if n >= len(positions) { - return n - } - i := rear + int(delta) - if i < 0 { - i += len(t.data) - } - u := t.data[i] - if u == 0 { - return n - } - delta -= int64(u) - } -} - -// hash computes the rolling hash for the word stored in p. For correct -// results its length must be equal to t.wordLen. -func (t *hashTable) hash(p []byte) uint64 { - var h uint64 - for _, b := range p { - h = t.hr.RollByte(b) - } - return h -} - -// Matches fills the positions slice with potential matches. The -// functions returns the number of positions filled into positions. The -// byte slice p must have word length of the hash table. -func (t *hashTable) Matches(p []byte, positions []int64) int { - if len(p) != t.wordLen { - panic(fmt.Errorf( - "byte slice must have length %d", t.wordLen)) - } - h := t.hash(p) - return t.getMatches(h, positions) -} - -// NextOp identifies the next operation using the hash table. -// -// TODO: Use all repetitions to find matches. -func (t *hashTable) NextOp(rep [4]uint32) operation { - // get positions - data := t.dict.data[:maxMatchLen] - n, _ := t.dict.buf.Peek(data) - data = data[:n] - var p []int64 - if n < t.wordLen { - p = t.p[:0] - } else { - p = t.p[:maxMatches] - n = t.Matches(data[:t.wordLen], p) - p = p[:n] - } - - // convert positions in potential distances - head := t.dict.head - dists := append(t.distances[:0], 1, 2, 3, 4, 5, 6, 7, 8) - for _, pos := range p { - dis := int(head - pos) - if dis > shortDists { - dists = append(dists, dis) - } - } - - // check distances - var m match - dictLen := t.dict.DictLen() - for _, dist := range dists { - if dist > dictLen { - continue - } - - // Here comes a trick. We are only interested in matches - // that are longer than the matches we have been found - // before. So before we test the whole byte sequence at - // the given distance, we test the first byte that would - // make the match longer. If it doesn't match the byte - // to match, we don't to care any longer. - i := t.dict.buf.rear - dist + m.n - if i < 0 { - i += len(t.dict.buf.data) - } - if t.dict.buf.data[i] != data[m.n] { - // We can't get a longer match. Jump to the next - // distance. - continue - } - - n := t.dict.buf.matchLen(dist, data) - switch n { - case 0: - continue - case 1: - if uint32(dist-minDistance) != rep[0] { - continue - } - } - if n > m.n { - m = match{int64(dist), n} - if n == len(data) { - // No better match will be found. - break - } - } - } - - if m.n == 0 { - return lit{data[0]} - } - return m -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/header.go b/backend/vendor/github.com/ulikunitz/xz/lzma/header.go deleted file mode 100644 index cda39462..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/header.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" -) - -// uint32LE reads an uint32 integer from a byte slice -func uint32LE(b []byte) uint32 { - x := uint32(b[3]) << 24 - x |= uint32(b[2]) << 16 - x |= uint32(b[1]) << 8 - x |= uint32(b[0]) - return x -} - -// uint64LE converts the uint64 value stored as little endian to an uint64 -// value. -func uint64LE(b []byte) uint64 { - x := uint64(b[7]) << 56 - x |= uint64(b[6]) << 48 - x |= uint64(b[5]) << 40 - x |= uint64(b[4]) << 32 - x |= uint64(b[3]) << 24 - x |= uint64(b[2]) << 16 - x |= uint64(b[1]) << 8 - x |= uint64(b[0]) - return x -} - -// putUint32LE puts an uint32 integer into a byte slice that must have at least -// a length of 4 bytes. -func putUint32LE(b []byte, x uint32) { - b[0] = byte(x) - b[1] = byte(x >> 8) - b[2] = byte(x >> 16) - b[3] = byte(x >> 24) -} - -// putUint64LE puts the uint64 value into the byte slice as little endian -// value. The byte slice b must have at least place for 8 bytes. -func putUint64LE(b []byte, x uint64) { - b[0] = byte(x) - b[1] = byte(x >> 8) - b[2] = byte(x >> 16) - b[3] = byte(x >> 24) - b[4] = byte(x >> 32) - b[5] = byte(x >> 40) - b[6] = byte(x >> 48) - b[7] = byte(x >> 56) -} - -// noHeaderSize defines the value of the length field in the LZMA header. -const noHeaderSize uint64 = 1<<64 - 1 - -// HeaderLen provides the length of the LZMA file header. -const HeaderLen = 13 - -// header represents the header of an LZMA file. -type header struct { - properties Properties - dictCap int - // uncompressed size; negative value if no size is given - size int64 -} - -// marshalBinary marshals the header. -func (h *header) marshalBinary() (data []byte, err error) { - if err = h.properties.verify(); err != nil { - return nil, err - } - if !(0 <= h.dictCap && int64(h.dictCap) <= MaxDictCap) { - return nil, fmt.Errorf("lzma: DictCap %d out of range", - h.dictCap) - } - - data = make([]byte, 13) - - // property byte - data[0] = h.properties.Code() - - // dictionary capacity - putUint32LE(data[1:5], uint32(h.dictCap)) - - // uncompressed size - var s uint64 - if h.size > 0 { - s = uint64(h.size) - } else { - s = noHeaderSize - } - putUint64LE(data[5:], s) - - return data, nil -} - -// unmarshalBinary unmarshals the header. -func (h *header) unmarshalBinary(data []byte) error { - if len(data) != HeaderLen { - return errors.New("lzma.unmarshalBinary: data has wrong length") - } - - // properties - var err error - if h.properties, err = PropertiesForCode(data[0]); err != nil { - return err - } - - // dictionary capacity - h.dictCap = int(uint32LE(data[1:])) - if h.dictCap < 0 { - return errors.New( - "LZMA header: dictionary capacity exceeds maximum " + - "integer") - } - - // uncompressed size - s := uint64LE(data[5:]) - if s == noHeaderSize { - h.size = -1 - } else { - h.size = int64(s) - if h.size < 0 { - return errors.New( - "LZMA header: uncompressed size " + - "out of int64 range") - } - } - - return nil -} - -// validDictCap checks whether the dictionary capacity is correct. This -// is used to weed out wrong file headers. -func validDictCap(dictcap int) bool { - if int64(dictcap) == MaxDictCap { - return true - } - for n := uint(10); n < 32; n++ { - if dictcap == 1<= 10 or 2^32-1. If -// there is an explicit size it must not exceed 256 GiB. The length of -// the data argument must be HeaderLen. -func ValidHeader(data []byte) bool { - var h header - if err := h.unmarshalBinary(data); err != nil { - return false - } - if !validDictCap(h.dictCap) { - return false - } - return h.size < 0 || h.size <= 1<<38 -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/header2.go b/backend/vendor/github.com/ulikunitz/xz/lzma/header2.go deleted file mode 100644 index ffeca35c..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/header2.go +++ /dev/null @@ -1,398 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" - "io" -) - -const ( - // maximum size of compressed data in a chunk - maxCompressed = 1 << 16 - // maximum size of uncompressed data in a chunk - maxUncompressed = 1 << 21 -) - -// chunkType represents the type of an LZMA2 chunk. Note that this -// value is an internal representation and no actual encoding of a LZMA2 -// chunk header. -type chunkType byte - -// Possible values for the chunk type. -const ( - // end of stream - cEOS chunkType = iota - // uncompressed; reset dictionary - cUD - // uncompressed; no reset of dictionary - cU - // LZMA compressed; no reset - cL - // LZMA compressed; reset state - cLR - // LZMA compressed; reset state; new property value - cLRN - // LZMA compressed; reset state; new property value; reset dictionary - cLRND -) - -// chunkTypeStrings provide a string representation for the chunk types. -var chunkTypeStrings = [...]string{ - cEOS: "EOS", - cU: "U", - cUD: "UD", - cL: "L", - cLR: "LR", - cLRN: "LRN", - cLRND: "LRND", -} - -// String returns a string representation of the chunk type. -func (c chunkType) String() string { - if !(cEOS <= c && c <= cLRND) { - return "unknown" - } - return chunkTypeStrings[c] -} - -// Actual encodings for the chunk types in the value. Note that the high -// uncompressed size bits are stored in the header byte additionally. -const ( - hEOS = 0 - hUD = 1 - hU = 2 - hL = 1 << 7 - hLR = 1<<7 | 1<<5 - hLRN = 1<<7 | 1<<6 - hLRND = 1<<7 | 1<<6 | 1<<5 -) - -// errHeaderByte indicates an unsupported value for the chunk header -// byte. These bytes starts the variable-length chunk header. -var errHeaderByte = errors.New("lzma: unsupported chunk header byte") - -// headerChunkType converts the header byte into a chunk type. It -// ignores the uncompressed size bits in the chunk header byte. -func headerChunkType(h byte) (c chunkType, err error) { - if h&hL == 0 { - // no compression - switch h { - case hEOS: - c = cEOS - case hUD: - c = cUD - case hU: - c = cU - default: - return 0, errHeaderByte - } - return - } - switch h & hLRND { - case hL: - c = cL - case hLR: - c = cLR - case hLRN: - c = cLRN - case hLRND: - c = cLRND - default: - return 0, errHeaderByte - } - return -} - -// uncompressedHeaderLen provides the length of an uncompressed header -const uncompressedHeaderLen = 3 - -// headerLen returns the length of the LZMA2 header for a given chunk -// type. -func headerLen(c chunkType) int { - switch c { - case cEOS: - return 1 - case cU, cUD: - return uncompressedHeaderLen - case cL, cLR: - return 5 - case cLRN, cLRND: - return 6 - } - panic(fmt.Errorf("unsupported chunk type %d", c)) -} - -// chunkHeader represents the contents of a chunk header. -type chunkHeader struct { - ctype chunkType - uncompressed uint32 - compressed uint16 - props Properties -} - -// String returns a string representation of the chunk header. -func (h *chunkHeader) String() string { - return fmt.Sprintf("%s %d %d %s", h.ctype, h.uncompressed, - h.compressed, &h.props) -} - -// UnmarshalBinary reads the content of the chunk header from the data -// slice. The slice must have the correct length. -func (h *chunkHeader) UnmarshalBinary(data []byte) error { - if len(data) == 0 { - return errors.New("no data") - } - c, err := headerChunkType(data[0]) - if err != nil { - return err - } - - n := headerLen(c) - if len(data) < n { - return errors.New("incomplete data") - } - if len(data) > n { - return errors.New("invalid data length") - } - - *h = chunkHeader{ctype: c} - if c == cEOS { - return nil - } - - h.uncompressed = uint32(uint16BE(data[1:3])) - if c <= cU { - return nil - } - h.uncompressed |= uint32(data[0]&^hLRND) << 16 - - h.compressed = uint16BE(data[3:5]) - if c <= cLR { - return nil - } - - h.props, err = PropertiesForCode(data[5]) - return err -} - -// MarshalBinary encodes the chunk header value. The function checks -// whether the content of the chunk header is correct. -func (h *chunkHeader) MarshalBinary() (data []byte, err error) { - if h.ctype > cLRND { - return nil, errors.New("invalid chunk type") - } - if err = h.props.verify(); err != nil { - return nil, err - } - - data = make([]byte, headerLen(h.ctype)) - - switch h.ctype { - case cEOS: - return data, nil - case cUD: - data[0] = hUD - case cU: - data[0] = hU - case cL: - data[0] = hL - case cLR: - data[0] = hLR - case cLRN: - data[0] = hLRN - case cLRND: - data[0] = hLRND - } - - putUint16BE(data[1:3], uint16(h.uncompressed)) - if h.ctype <= cU { - return data, nil - } - data[0] |= byte(h.uncompressed>>16) &^ hLRND - - putUint16BE(data[3:5], h.compressed) - if h.ctype <= cLR { - return data, nil - } - - data[5] = h.props.Code() - return data, nil -} - -// readChunkHeader reads the chunk header from the IO reader. -func readChunkHeader(r io.Reader) (h *chunkHeader, err error) { - p := make([]byte, 1, 6) - if _, err = io.ReadFull(r, p); err != nil { - return - } - c, err := headerChunkType(p[0]) - if err != nil { - return - } - p = p[:headerLen(c)] - if _, err = io.ReadFull(r, p[1:]); err != nil { - return - } - h = new(chunkHeader) - if err = h.UnmarshalBinary(p); err != nil { - return nil, err - } - return h, nil -} - -// uint16BE converts a big-endian uint16 representation to an uint16 -// value. -func uint16BE(p []byte) uint16 { - return uint16(p[0])<<8 | uint16(p[1]) -} - -// putUint16BE puts the big-endian uint16 presentation into the given -// slice. -func putUint16BE(p []byte, x uint16) { - p[0] = byte(x >> 8) - p[1] = byte(x) -} - -// chunkState is used to manage the state of the chunks -type chunkState byte - -// start and stop define the initial and terminating state of the chunk -// state -const ( - start chunkState = 'S' - stop chunkState = 'T' -) - -// errors for the chunk state handling -var ( - errChunkType = errors.New("lzma: unexpected chunk type") - errState = errors.New("lzma: wrong chunk state") -) - -// next transitions state based on chunk type input -func (c *chunkState) next(ctype chunkType) error { - switch *c { - // start state - case 'S': - switch ctype { - case cEOS: - *c = 'T' - case cUD: - *c = 'R' - case cLRND: - *c = 'L' - default: - return errChunkType - } - // normal LZMA mode - case 'L': - switch ctype { - case cEOS: - *c = 'T' - case cUD: - *c = 'R' - case cU: - *c = 'U' - case cL, cLR, cLRN, cLRND: - break - default: - return errChunkType - } - // reset required - case 'R': - switch ctype { - case cEOS: - *c = 'T' - case cUD, cU: - break - case cLRN, cLRND: - *c = 'L' - default: - return errChunkType - } - // uncompressed - case 'U': - switch ctype { - case cEOS: - *c = 'T' - case cUD: - *c = 'R' - case cU: - break - case cL, cLR, cLRN, cLRND: - *c = 'L' - default: - return errChunkType - } - // terminal state - case 'T': - return errChunkType - default: - return errState - } - return nil -} - -// defaultChunkType returns the default chunk type for each chunk state. -func (c chunkState) defaultChunkType() chunkType { - switch c { - case 'S': - return cLRND - case 'L', 'U': - return cL - case 'R': - return cLRN - default: - // no error - return cEOS - } -} - -// maxDictCap defines the maximum dictionary capacity supported by the -// LZMA2 dictionary capacity encoding. -const maxDictCap = 1<<32 - 1 - -// maxDictCapCode defines the maximum dictionary capacity code. -const maxDictCapCode = 40 - -// The function decodes the dictionary capacity byte, but doesn't change -// for the correct range of the given byte. -func decodeDictCap(c byte) int64 { - return (2 | int64(c)&1) << (11 + (c>>1)&0x1f) -} - -// DecodeDictCap decodes the encoded dictionary capacity. The function -// returns an error if the code is out of range. -func DecodeDictCap(c byte) (n int64, err error) { - if c >= maxDictCapCode { - if c == maxDictCapCode { - return maxDictCap, nil - } - return 0, errors.New("lzma: invalid dictionary size code") - } - return decodeDictCap(c), nil -} - -// EncodeDictCap encodes a dictionary capacity. The function returns the -// code for the capacity that is greater or equal n. If n exceeds the -// maximum support dictionary capacity, the maximum value is returned. -func EncodeDictCap(n int64) byte { - a, b := byte(0), byte(40) - for a < b { - c := a + (b-a)>>1 - m := decodeDictCap(c) - if n <= m { - if n == m { - return c - } - b = c - } else { - a = c + 1 - } - } - return a -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go b/backend/vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go deleted file mode 100644 index 38e736fb..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import "errors" - -// maxPosBits defines the number of bits of the position value that are used to -// to compute the posState value. The value is used to select the tree codec -// for length encoding and decoding. -const maxPosBits = 4 - -// minMatchLen and maxMatchLen give the minimum and maximum values for -// encoding and decoding length values. minMatchLen is also used as base -// for the encoded length values. -const ( - minMatchLen = 2 - maxMatchLen = minMatchLen + 16 + 256 - 1 -) - -// lengthCodec support the encoding of the length value. -type lengthCodec struct { - choice [2]prob - low [1 << maxPosBits]treeCodec - mid [1 << maxPosBits]treeCodec - high treeCodec -} - -// deepcopy initializes the lc value as deep copy of the source value. -func (lc *lengthCodec) deepcopy(src *lengthCodec) { - if lc == src { - return - } - lc.choice = src.choice - for i := range lc.low { - lc.low[i].deepcopy(&src.low[i]) - } - for i := range lc.mid { - lc.mid[i].deepcopy(&src.mid[i]) - } - lc.high.deepcopy(&src.high) -} - -// init initializes a new length codec. -func (lc *lengthCodec) init() { - for i := range lc.choice { - lc.choice[i] = probInit - } - for i := range lc.low { - lc.low[i] = makeTreeCodec(3) - } - for i := range lc.mid { - lc.mid[i] = makeTreeCodec(3) - } - lc.high = makeTreeCodec(8) -} - -// Encode encodes the length offset. The length offset l can be compute by -// subtracting minMatchLen (2) from the actual length. -// -// l = length - minMatchLen -func (lc *lengthCodec) Encode(e *rangeEncoder, l uint32, posState uint32, -) (err error) { - if l > maxMatchLen-minMatchLen { - return errors.New("lengthCodec.Encode: l out of range") - } - if l < 8 { - if err = lc.choice[0].Encode(e, 0); err != nil { - return - } - return lc.low[posState].Encode(e, l) - } - if err = lc.choice[0].Encode(e, 1); err != nil { - return - } - if l < 16 { - if err = lc.choice[1].Encode(e, 0); err != nil { - return - } - return lc.mid[posState].Encode(e, l-8) - } - if err = lc.choice[1].Encode(e, 1); err != nil { - return - } - if err = lc.high.Encode(e, l-16); err != nil { - return - } - return nil -} - -// Decode reads the length offset. Add minMatchLen to compute the actual length -// to the length offset l. -func (lc *lengthCodec) Decode(d *rangeDecoder, posState uint32, -) (l uint32, err error) { - var b uint32 - if b, err = lc.choice[0].Decode(d); err != nil { - return - } - if b == 0 { - l, err = lc.low[posState].Decode(d) - return - } - if b, err = lc.choice[1].Decode(d); err != nil { - return - } - if b == 0 { - l, err = lc.mid[posState].Decode(d) - l += 8 - return - } - l, err = lc.high.Decode(d) - l += 16 - return -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/literalcodec.go b/backend/vendor/github.com/ulikunitz/xz/lzma/literalcodec.go deleted file mode 100644 index 7b1ad1d9..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/literalcodec.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -// literalCodec supports the encoding of literal. It provides 768 probability -// values per literal state. The upper 512 probabilities are used with the -// context of a match bit. -type literalCodec struct { - probs []prob -} - -// deepcopy initializes literal codec c as a deep copy of the source. -func (c *literalCodec) deepcopy(src *literalCodec) { - if c == src { - return - } - c.probs = make([]prob, len(src.probs)) - copy(c.probs, src.probs) -} - -// init initializes the literal codec. -func (c *literalCodec) init(lc, lp int) { - switch { - case !(minLC <= lc && lc <= maxLC): - panic("lc out of range") - case !(minLP <= lp && lp <= maxLP): - panic("lp out of range") - } - c.probs = make([]prob, 0x300<= 7 { - m := uint32(match) - for { - matchBit := (m >> 7) & 1 - m <<= 1 - bit := (r >> 7) & 1 - r <<= 1 - i := ((1 + matchBit) << 8) | symbol - if err = probs[i].Encode(e, bit); err != nil { - return - } - symbol = (symbol << 1) | bit - if matchBit != bit { - break - } - if symbol >= 0x100 { - break - } - } - } - for symbol < 0x100 { - bit := (r >> 7) & 1 - r <<= 1 - if err = probs[symbol].Encode(e, bit); err != nil { - return - } - symbol = (symbol << 1) | bit - } - return nil -} - -// Decode decodes a literal byte using the range decoder as well as the LZMA -// state, a match byte, and the literal state. -func (c *literalCodec) Decode(d *rangeDecoder, - state uint32, match byte, litState uint32, -) (s byte, err error) { - k := litState * 0x300 - probs := c.probs[k : k+0x300] - symbol := uint32(1) - if state >= 7 { - m := uint32(match) - for { - matchBit := (m >> 7) & 1 - m <<= 1 - i := ((1 + matchBit) << 8) | symbol - bit, err := d.DecodeBit(&probs[i]) - if err != nil { - return 0, err - } - symbol = (symbol << 1) | bit - if matchBit != bit { - break - } - if symbol >= 0x100 { - break - } - } - } - for symbol < 0x100 { - bit, err := d.DecodeBit(&probs[symbol]) - if err != nil { - return 0, err - } - symbol = (symbol << 1) | bit - } - s = byte(symbol - 0x100) - return s, nil -} - -// minLC and maxLC define the range for LC values. -const ( - minLC = 0 - maxLC = 8 -) - -// minLC and maxLC define the range for LP values. -const ( - minLP = 0 - maxLP = 4 -) diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go b/backend/vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go deleted file mode 100644 index 7d03ec0d..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import "errors" - -// MatchAlgorithm identifies an algorithm to find matches in the -// dictionary. -type MatchAlgorithm byte - -// Supported matcher algorithms. -const ( - HashTable4 MatchAlgorithm = iota - BinaryTree -) - -// maStrings are used by the String method. -var maStrings = map[MatchAlgorithm]string{ - HashTable4: "HashTable4", - BinaryTree: "BinaryTree", -} - -// String returns a string representation of the Matcher. -func (a MatchAlgorithm) String() string { - if s, ok := maStrings[a]; ok { - return s - } - return "unknown" -} - -var errUnsupportedMatchAlgorithm = errors.New( - "lzma: unsupported match algorithm value") - -// verify checks whether the matcher value is supported. -func (a MatchAlgorithm) verify() error { - if _, ok := maStrings[a]; !ok { - return errUnsupportedMatchAlgorithm - } - return nil -} - -func (a MatchAlgorithm) new(dictCap int) (m matcher, err error) { - switch a { - case HashTable4: - return newHashTable(dictCap, 4) - case BinaryTree: - return newBinTree(dictCap) - } - return nil, errUnsupportedMatchAlgorithm -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/operation.go b/backend/vendor/github.com/ulikunitz/xz/lzma/operation.go deleted file mode 100644 index 2f9b78ea..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/operation.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "fmt" - "unicode" -) - -// operation represents an operation on the dictionary during encoding or -// decoding. -type operation interface { - Len() int -} - -// rep represents a repetition at the given distance and the given length -type match struct { - // supports all possible distance values, including the eos marker - distance int64 - // length - n int -} - -// Len returns the number of bytes matched. -func (m match) Len() int { - return m.n -} - -// String returns a string representation for the repetition. -func (m match) String() string { - return fmt.Sprintf("M{%d,%d}", m.distance, m.n) -} - -// lit represents a single byte literal. -type lit struct { - b byte -} - -// Len returns 1 for the single byte literal. -func (l lit) Len() int { - return 1 -} - -// String returns a string representation for the literal. -func (l lit) String() string { - var c byte - if unicode.IsPrint(rune(l.b)) { - c = l.b - } else { - c = '.' - } - return fmt.Sprintf("L{%c/%02x}", c, l.b) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/prob.go b/backend/vendor/github.com/ulikunitz/xz/lzma/prob.go deleted file mode 100644 index 6987a166..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/prob.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -// movebits defines the number of bits used for the updates of probability -// values. -const movebits = 5 - -// probbits defines the number of bits of a probability value. -const probbits = 11 - -// probInit defines 0.5 as initial value for prob values. -const probInit prob = 1 << (probbits - 1) - -// Type prob represents probabilities. The type can also be used to encode and -// decode single bits. -type prob uint16 - -// Dec decreases the probability. The decrease is proportional to the -// probability value. -func (p *prob) dec() { - *p -= *p >> movebits -} - -// Inc increases the probability. The Increase is proportional to the -// difference of 1 and the probability value. -func (p *prob) inc() { - *p += ((1 << probbits) - *p) >> movebits -} - -// Computes the new bound for a given range using the probability value. -func (p prob) bound(r uint32) uint32 { - return (r >> probbits) * uint32(p) -} - -// Bits returns 1. One is the number of bits that can be encoded or decoded -// with a single prob value. -func (p prob) Bits() int { - return 1 -} - -// Encode encodes the least-significant bit of v. Note that the p value will be -// changed. -func (p *prob) Encode(e *rangeEncoder, v uint32) error { - return e.EncodeBit(v, p) -} - -// Decode decodes a single bit. Note that the p value will change. -func (p *prob) Decode(d *rangeDecoder) (v uint32, err error) { - return d.DecodeBit(p) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/properties.go b/backend/vendor/github.com/ulikunitz/xz/lzma/properties.go deleted file mode 100644 index 662feba8..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/properties.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "fmt" -) - -// maximum and minimum values for the LZMA properties. -const ( - minPB = 0 - maxPB = 4 -) - -// maxPropertyCode is the possible maximum of a properties code byte. -const maxPropertyCode = (maxPB+1)*(maxLP+1)*(maxLC+1) - 1 - -// Properties contains the parameters LC, LP and PB. The parameter LC -// defines the number of literal context bits; parameter LP the number -// of literal position bits and PB the number of position bits. -type Properties struct { - LC int - LP int - PB int -} - -// String returns the properties in a string representation. -func (p *Properties) String() string { - return fmt.Sprintf("LC %d LP %d PB %d", p.LC, p.LP, p.PB) -} - -// PropertiesForCode converts a properties code byte into a Properties value. -func PropertiesForCode(code byte) (p Properties, err error) { - if code > maxPropertyCode { - return p, errors.New("lzma: invalid properties code") - } - p.LC = int(code % 9) - code /= 9 - p.LP = int(code % 5) - code /= 5 - p.PB = int(code % 5) - return p, err -} - -// verify checks the properties for correctness. -func (p *Properties) verify() error { - if p == nil { - return errors.New("lzma: properties are nil") - } - if !(minLC <= p.LC && p.LC <= maxLC) { - return errors.New("lzma: lc out of range") - } - if !(minLP <= p.LP && p.LP <= maxLP) { - return errors.New("lzma: lp out of range") - } - if !(minPB <= p.PB && p.PB <= maxPB) { - return errors.New("lzma: pb out of range") - } - return nil -} - -// Code converts the properties to a byte. The function assumes that -// the properties components are all in range. -func (p Properties) Code() byte { - return byte((p.PB*5+p.LP)*9 + p.LC) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/rangecodec.go b/backend/vendor/github.com/ulikunitz/xz/lzma/rangecodec.go deleted file mode 100644 index 7b299abf..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/rangecodec.go +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "io" -) - -// rangeEncoder implements range encoding of single bits. The low value can -// overflow therefore we need uint64. The cache value is used to handle -// overflows. -type rangeEncoder struct { - lbw *LimitedByteWriter - nrange uint32 - low uint64 - cacheLen int64 - cache byte -} - -// maxInt64 provides the maximal value of the int64 type -const maxInt64 = 1<<63 - 1 - -// newRangeEncoder creates a new range encoder. -func newRangeEncoder(bw io.ByteWriter) (re *rangeEncoder, err error) { - lbw, ok := bw.(*LimitedByteWriter) - if !ok { - lbw = &LimitedByteWriter{BW: bw, N: maxInt64} - } - return &rangeEncoder{ - lbw: lbw, - nrange: 0xffffffff, - cacheLen: 1}, nil -} - -// Available returns the number of bytes that still can be written. The -// method takes the bytes that will be currently written by Close into -// account. -func (e *rangeEncoder) Available() int64 { - return e.lbw.N - (e.cacheLen + 4) -} - -// writeByte writes a single byte to the underlying writer. An error is -// returned if the limit is reached. The written byte will be counted if -// the underlying writer doesn't return an error. -func (e *rangeEncoder) writeByte(c byte) error { - if e.Available() < 1 { - return ErrLimit - } - return e.lbw.WriteByte(c) -} - -// DirectEncodeBit encodes the least-significant bit of b with probability 1/2. -func (e *rangeEncoder) DirectEncodeBit(b uint32) error { - e.nrange >>= 1 - e.low += uint64(e.nrange) & (0 - (uint64(b) & 1)) - - // normalize - const top = 1 << 24 - if e.nrange >= top { - return nil - } - e.nrange <<= 8 - return e.shiftLow() -} - -// EncodeBit encodes the least significant bit of b. The p value will be -// updated by the function depending on the bit encoded. -func (e *rangeEncoder) EncodeBit(b uint32, p *prob) error { - bound := p.bound(e.nrange) - if b&1 == 0 { - e.nrange = bound - p.inc() - } else { - e.low += uint64(bound) - e.nrange -= bound - p.dec() - } - - // normalize - const top = 1 << 24 - if e.nrange >= top { - return nil - } - e.nrange <<= 8 - return e.shiftLow() -} - -// Close writes a complete copy of the low value. -func (e *rangeEncoder) Close() error { - for i := 0; i < 5; i++ { - if err := e.shiftLow(); err != nil { - return err - } - } - return nil -} - -// shiftLow shifts the low value for 8 bit. The shifted byte is written into -// the byte writer. The cache value is used to handle overflows. -func (e *rangeEncoder) shiftLow() error { - if uint32(e.low) < 0xff000000 || (e.low>>32) != 0 { - tmp := e.cache - for { - err := e.writeByte(tmp + byte(e.low>>32)) - if err != nil { - return err - } - tmp = 0xff - e.cacheLen-- - if e.cacheLen <= 0 { - if e.cacheLen < 0 { - panic("negative cacheLen") - } - break - } - } - e.cache = byte(uint32(e.low) >> 24) - } - e.cacheLen++ - e.low = uint64(uint32(e.low) << 8) - return nil -} - -// rangeDecoder decodes single bits of the range encoding stream. -type rangeDecoder struct { - br io.ByteReader - nrange uint32 - code uint32 -} - -// newRangeDecoder initializes a range decoder. It reads five bytes from the -// reader and therefore may return an error. -func newRangeDecoder(br io.ByteReader) (d *rangeDecoder, err error) { - d = &rangeDecoder{br: br, nrange: 0xffffffff} - - b, err := d.br.ReadByte() - if err != nil { - return nil, err - } - if b != 0 { - return nil, errors.New("newRangeDecoder: first byte not zero") - } - - for i := 0; i < 4; i++ { - if err = d.updateCode(); err != nil { - return nil, err - } - } - - if d.code >= d.nrange { - return nil, errors.New("newRangeDecoder: d.code >= d.nrange") - } - - return d, nil -} - -// possiblyAtEnd checks whether the decoder may be at the end of the stream. -func (d *rangeDecoder) possiblyAtEnd() bool { - return d.code == 0 -} - -// DirectDecodeBit decodes a bit with probability 1/2. The return value b will -// contain the bit at the least-significant position. All other bits will be -// zero. -func (d *rangeDecoder) DirectDecodeBit() (b uint32, err error) { - d.nrange >>= 1 - d.code -= d.nrange - t := 0 - (d.code >> 31) - d.code += d.nrange & t - b = (t + 1) & 1 - - // d.code will stay less then d.nrange - - // normalize - // assume d.code < d.nrange - const top = 1 << 24 - if d.nrange >= top { - return b, nil - } - d.nrange <<= 8 - // d.code < d.nrange will be maintained - return b, d.updateCode() -} - -// decodeBit decodes a single bit. The bit will be returned at the -// least-significant position. All other bits will be zero. The probability -// value will be updated. -func (d *rangeDecoder) DecodeBit(p *prob) (b uint32, err error) { - bound := p.bound(d.nrange) - if d.code < bound { - d.nrange = bound - p.inc() - b = 0 - } else { - d.code -= bound - d.nrange -= bound - p.dec() - b = 1 - } - // normalize - // assume d.code < d.nrange - const top = 1 << 24 - if d.nrange >= top { - return b, nil - } - d.nrange <<= 8 - // d.code < d.nrange will be maintained - return b, d.updateCode() -} - -// updateCode reads a new byte into the code. -func (d *rangeDecoder) updateCode() error { - b, err := d.br.ReadByte() - if err != nil { - return err - } - d.code = (d.code << 8) | uint32(b) - return nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/reader.go b/backend/vendor/github.com/ulikunitz/xz/lzma/reader.go deleted file mode 100644 index 7b7eef31..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/reader.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package lzma supports the decoding and encoding of LZMA streams. -// Reader and Writer support the classic LZMA format. Reader2 and -// Writer2 support the decoding and encoding of LZMA2 streams. -// -// The package is written completely in Go and doesn't rely on any external -// library. -package lzma - -import ( - "errors" - "io" -) - -// ReaderConfig stores the parameters for the reader of the classic LZMA -// format. -type ReaderConfig struct { - DictCap int -} - -// fill converts the zero values of the configuration to the default values. -func (c *ReaderConfig) fill() { - if c.DictCap == 0 { - c.DictCap = 8 * 1024 * 1024 - } -} - -// Verify checks the reader configuration for errors. Zero values will -// be replaced by default values. -func (c *ReaderConfig) Verify() error { - c.fill() - if !(MinDictCap <= c.DictCap && int64(c.DictCap) <= MaxDictCap) { - return errors.New("lzma: dictionary capacity is out of range") - } - return nil -} - -// Reader provides a reader for LZMA files or streams. -type Reader struct { - lzma io.Reader - h header - d *decoder -} - -// NewReader creates a new reader for an LZMA stream using the classic -// format. NewReader reads and checks the header of the LZMA stream. -func NewReader(lzma io.Reader) (r *Reader, err error) { - return ReaderConfig{}.NewReader(lzma) -} - -// NewReader creates a new reader for an LZMA stream in the classic -// format. The function reads and verifies the the header of the LZMA -// stream. -func (c ReaderConfig) NewReader(lzma io.Reader) (r *Reader, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - data := make([]byte, HeaderLen) - if _, err := io.ReadFull(lzma, data); err != nil { - if err == io.EOF { - return nil, errors.New("lzma: unexpected EOF") - } - return nil, err - } - r = &Reader{lzma: lzma} - if err = r.h.unmarshalBinary(data); err != nil { - return nil, err - } - if r.h.dictCap < MinDictCap { - return nil, errors.New("lzma: dictionary capacity too small") - } - dictCap := r.h.dictCap - if c.DictCap > dictCap { - dictCap = c.DictCap - } - - state := newState(r.h.properties) - dict, err := newDecoderDict(dictCap) - if err != nil { - return nil, err - } - r.d, err = newDecoder(ByteReader(lzma), state, dict, r.h.size) - if err != nil { - return nil, err - } - return r, nil -} - -// EOSMarker indicates that an EOS marker has been encountered. -func (r *Reader) EOSMarker() bool { - return r.d.eosMarker -} - -// Read returns uncompressed data. -func (r *Reader) Read(p []byte) (n int, err error) { - return r.d.Read(p) -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/reader2.go b/backend/vendor/github.com/ulikunitz/xz/lzma/reader2.go deleted file mode 100644 index e34c23f9..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/reader2.go +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "errors" - "io" - - "github.com/ulikunitz/xz/internal/xlog" -) - -// Reader2Config stores the parameters for the LZMA2 reader. -// format. -type Reader2Config struct { - DictCap int -} - -// fill converts the zero values of the configuration to the default values. -func (c *Reader2Config) fill() { - if c.DictCap == 0 { - c.DictCap = 8 * 1024 * 1024 - } -} - -// Verify checks the reader configuration for errors. Zero configuration values -// will be replaced by default values. -func (c *Reader2Config) Verify() error { - c.fill() - if !(MinDictCap <= c.DictCap && int64(c.DictCap) <= MaxDictCap) { - return errors.New("lzma: dictionary capacity is out of range") - } - return nil -} - -// Reader2 supports the reading of LZMA2 chunk sequences. Note that the -// first chunk should have a dictionary reset and the first compressed -// chunk a properties reset. The chunk sequence may not be terminated by -// an end-of-stream chunk. -type Reader2 struct { - r io.Reader - err error - - dict *decoderDict - ur *uncompressedReader - decoder *decoder - chunkReader io.Reader - - cstate chunkState -} - -// NewReader2 creates a reader for an LZMA2 chunk sequence. -func NewReader2(lzma2 io.Reader) (r *Reader2, err error) { - return Reader2Config{}.NewReader2(lzma2) -} - -// NewReader2 creates an LZMA2 reader using the given configuration. -func (c Reader2Config) NewReader2(lzma2 io.Reader) (r *Reader2, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - r = &Reader2{r: lzma2, cstate: start} - r.dict, err = newDecoderDict(c.DictCap) - if err != nil { - return nil, err - } - if err = r.startChunk(); err != nil { - r.err = err - } - return r, nil -} - -// uncompressed tests whether the chunk type specifies an uncompressed -// chunk. -func uncompressed(ctype chunkType) bool { - return ctype == cU || ctype == cUD -} - -// startChunk parses a new chunk. -func (r *Reader2) startChunk() error { - r.chunkReader = nil - header, err := readChunkHeader(r.r) - if err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return err - } - xlog.Debugf("chunk header %v", header) - if err = r.cstate.next(header.ctype); err != nil { - return err - } - if r.cstate == stop { - return io.EOF - } - if header.ctype == cUD || header.ctype == cLRND { - r.dict.Reset() - } - size := int64(header.uncompressed) + 1 - if uncompressed(header.ctype) { - if r.ur != nil { - r.ur.Reopen(r.r, size) - } else { - r.ur = newUncompressedReader(r.r, r.dict, size) - } - r.chunkReader = r.ur - return nil - } - br := ByteReader(io.LimitReader(r.r, int64(header.compressed)+1)) - if r.decoder == nil { - state := newState(header.props) - r.decoder, err = newDecoder(br, state, r.dict, size) - if err != nil { - return err - } - r.chunkReader = r.decoder - return nil - } - switch header.ctype { - case cLR: - r.decoder.State.Reset() - case cLRN, cLRND: - r.decoder.State = newState(header.props) - } - err = r.decoder.Reopen(br, size) - if err != nil { - return err - } - r.chunkReader = r.decoder - return nil -} - -// Read reads data from the LZMA2 chunk sequence. -func (r *Reader2) Read(p []byte) (n int, err error) { - if r.err != nil { - return 0, r.err - } - for n < len(p) { - var k int - k, err = r.chunkReader.Read(p[n:]) - n += k - if err != nil { - if err == io.EOF { - err = r.startChunk() - if err == nil { - continue - } - } - r.err = err - return n, err - } - if k == 0 { - r.err = errors.New("lzma: Reader2 doesn't get data") - return n, r.err - } - } - return n, nil -} - -// EOS returns whether the LZMA2 stream has been terminated by an -// end-of-stream chunk. -func (r *Reader2) EOS() bool { - return r.cstate == stop -} - -// uncompressedReader is used to read uncompressed chunks. -type uncompressedReader struct { - lr io.LimitedReader - Dict *decoderDict - eof bool - err error -} - -// newUncompressedReader initializes a new uncompressedReader. -func newUncompressedReader(r io.Reader, dict *decoderDict, size int64) *uncompressedReader { - ur := &uncompressedReader{ - lr: io.LimitedReader{R: r, N: size}, - Dict: dict, - } - return ur -} - -// Reopen reinitializes an uncompressed reader. -func (ur *uncompressedReader) Reopen(r io.Reader, size int64) { - ur.err = nil - ur.eof = false - ur.lr = io.LimitedReader{R: r, N: size} -} - -// fill reads uncompressed data into the dictionary. -func (ur *uncompressedReader) fill() error { - if !ur.eof { - n, err := io.CopyN(ur.Dict, &ur.lr, int64(ur.Dict.Available())) - if err != io.EOF { - return err - } - ur.eof = true - if n > 0 { - return nil - } - } - if ur.lr.N != 0 { - return io.ErrUnexpectedEOF - } - return io.EOF -} - -// Read reads uncompressed data from the limited reader. -func (ur *uncompressedReader) Read(p []byte) (n int, err error) { - if ur.err != nil { - return 0, ur.err - } - for { - var k int - k, err = ur.Dict.Read(p[n:]) - n += k - if n >= len(p) { - return n, nil - } - if err != nil { - break - } - err = ur.fill() - if err != nil { - break - } - } - ur.err = err - return n, err -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/state.go b/backend/vendor/github.com/ulikunitz/xz/lzma/state.go deleted file mode 100644 index fbe3a394..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/state.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -// states defines the overall state count -const states = 12 - -// State maintains the full state of the operation encoding or decoding -// process. -type state struct { - rep [4]uint32 - isMatch [states << maxPosBits]prob - isRepG0Long [states << maxPosBits]prob - isRep [states]prob - isRepG0 [states]prob - isRepG1 [states]prob - isRepG2 [states]prob - litCodec literalCodec - lenCodec lengthCodec - repLenCodec lengthCodec - distCodec distCodec - state uint32 - posBitMask uint32 - Properties Properties -} - -// initProbSlice initializes a slice of probabilities. -func initProbSlice(p []prob) { - for i := range p { - p[i] = probInit - } -} - -// Reset sets all state information to the original values. -func (s *state) Reset() { - p := s.Properties - *s = state{ - Properties: p, - // dict: s.dict, - posBitMask: (uint32(1) << uint(p.PB)) - 1, - } - initProbSlice(s.isMatch[:]) - initProbSlice(s.isRep[:]) - initProbSlice(s.isRepG0[:]) - initProbSlice(s.isRepG1[:]) - initProbSlice(s.isRepG2[:]) - initProbSlice(s.isRepG0Long[:]) - s.litCodec.init(p.LC, p.LP) - s.lenCodec.init() - s.repLenCodec.init() - s.distCodec.init() -} - -// newState creates a new state from the give Properties. -func newState(p Properties) *state { - s := &state{Properties: p} - s.Reset() - return s -} - -// deepcopy initializes s as a deep copy of the source. -func (s *state) deepcopy(src *state) { - if s == src { - return - } - s.rep = src.rep - s.isMatch = src.isMatch - s.isRepG0Long = src.isRepG0Long - s.isRep = src.isRep - s.isRepG0 = src.isRepG0 - s.isRepG1 = src.isRepG1 - s.isRepG2 = src.isRepG2 - s.litCodec.deepcopy(&src.litCodec) - s.lenCodec.deepcopy(&src.lenCodec) - s.repLenCodec.deepcopy(&src.repLenCodec) - s.distCodec.deepcopy(&src.distCodec) - s.state = src.state - s.posBitMask = src.posBitMask - s.Properties = src.Properties -} - -// cloneState creates a new clone of the give state. -func cloneState(src *state) *state { - s := new(state) - s.deepcopy(src) - return s -} - -// updateStateLiteral updates the state for a literal. -func (s *state) updateStateLiteral() { - switch { - case s.state < 4: - s.state = 0 - return - case s.state < 10: - s.state -= 3 - return - } - s.state -= 6 -} - -// updateStateMatch updates the state for a match. -func (s *state) updateStateMatch() { - if s.state < 7 { - s.state = 7 - } else { - s.state = 10 - } -} - -// updateStateRep updates the state for a repetition. -func (s *state) updateStateRep() { - if s.state < 7 { - s.state = 8 - } else { - s.state = 11 - } -} - -// updateStateShortRep updates the state for a short repetition. -func (s *state) updateStateShortRep() { - if s.state < 7 { - s.state = 9 - } else { - s.state = 11 - } -} - -// states computes the states of the operation codec. -func (s *state) states(dictHead int64) (state1, state2, posState uint32) { - state1 = s.state - posState = uint32(dictHead) & s.posBitMask - state2 = (s.state << maxPosBits) | posState - return -} - -// litState computes the literal state. -func (s *state) litState(prev byte, dictHead int64) uint32 { - lp, lc := uint(s.Properties.LP), uint(s.Properties.LC) - litState := ((uint32(dictHead) & ((1 << lp) - 1)) << lc) | - (uint32(prev) >> (8 - lc)) - return litState -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/treecodecs.go b/backend/vendor/github.com/ulikunitz/xz/lzma/treecodecs.go deleted file mode 100644 index 1cb3596f..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/treecodecs.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -// treeCodec encodes or decodes values with a fixed bit size. It is using a -// tree of probability value. The root of the tree is the most-significant bit. -type treeCodec struct { - probTree -} - -// makeTreeCodec makes a tree codec. The bits value must be inside the range -// [1,32]. -func makeTreeCodec(bits int) treeCodec { - return treeCodec{makeProbTree(bits)} -} - -// deepcopy initializes tc as a deep copy of the source. -func (tc *treeCodec) deepcopy(src *treeCodec) { - tc.probTree.deepcopy(&src.probTree) -} - -// Encode uses the range encoder to encode a fixed-bit-size value. -func (tc *treeCodec) Encode(e *rangeEncoder, v uint32) (err error) { - m := uint32(1) - for i := int(tc.bits) - 1; i >= 0; i-- { - b := (v >> uint(i)) & 1 - if err := e.EncodeBit(b, &tc.probs[m]); err != nil { - return err - } - m = (m << 1) | b - } - return nil -} - -// Decodes uses the range decoder to decode a fixed-bit-size value. Errors may -// be caused by the range decoder. -func (tc *treeCodec) Decode(d *rangeDecoder) (v uint32, err error) { - m := uint32(1) - for j := 0; j < int(tc.bits); j++ { - b, err := d.DecodeBit(&tc.probs[m]) - if err != nil { - return 0, err - } - m = (m << 1) | b - } - return m - (1 << uint(tc.bits)), nil -} - -// treeReverseCodec is another tree codec, where the least-significant bit is -// the start of the probability tree. -type treeReverseCodec struct { - probTree -} - -// deepcopy initializes the treeReverseCodec as a deep copy of the -// source. -func (tc *treeReverseCodec) deepcopy(src *treeReverseCodec) { - tc.probTree.deepcopy(&src.probTree) -} - -// makeTreeReverseCodec creates treeReverseCodec value. The bits argument must -// be in the range [1,32]. -func makeTreeReverseCodec(bits int) treeReverseCodec { - return treeReverseCodec{makeProbTree(bits)} -} - -// Encode uses range encoder to encode a fixed-bit-size value. The range -// encoder may cause errors. -func (tc *treeReverseCodec) Encode(v uint32, e *rangeEncoder) (err error) { - m := uint32(1) - for i := uint(0); i < uint(tc.bits); i++ { - b := (v >> i) & 1 - if err := e.EncodeBit(b, &tc.probs[m]); err != nil { - return err - } - m = (m << 1) | b - } - return nil -} - -// Decodes uses the range decoder to decode a fixed-bit-size value. Errors -// returned by the range decoder will be returned. -func (tc *treeReverseCodec) Decode(d *rangeDecoder) (v uint32, err error) { - m := uint32(1) - for j := uint(0); j < uint(tc.bits); j++ { - b, err := d.DecodeBit(&tc.probs[m]) - if err != nil { - return 0, err - } - m = (m << 1) | b - v |= b << j - } - return v, nil -} - -// probTree stores enough probability values to be used by the treeEncode and -// treeDecode methods of the range coder types. -type probTree struct { - probs []prob - bits byte -} - -// deepcopy initializes the probTree value as a deep copy of the source. -func (t *probTree) deepcopy(src *probTree) { - if t == src { - return - } - t.probs = make([]prob, len(src.probs)) - copy(t.probs, src.probs) - t.bits = src.bits -} - -// makeProbTree initializes a probTree structure. -func makeProbTree(bits int) probTree { - if !(1 <= bits && bits <= 32) { - panic("bits outside of range [1,32]") - } - t := probTree{ - bits: byte(bits), - probs: make([]prob, 1< 0 { - c.SizeInHeader = true - } - if !c.SizeInHeader { - c.EOSMarker = true - } -} - -// Verify checks WriterConfig for errors. Verify will replace zero -// values with default values. -func (c *WriterConfig) Verify() error { - c.fill() - var err error - if c == nil { - return errors.New("lzma: WriterConfig is nil") - } - if c.Properties == nil { - return errors.New("lzma: WriterConfig has no Properties set") - } - if err = c.Properties.verify(); err != nil { - return err - } - if !(MinDictCap <= c.DictCap && int64(c.DictCap) <= MaxDictCap) { - return errors.New("lzma: dictionary capacity is out of range") - } - if !(maxMatchLen <= c.BufSize) { - return errors.New("lzma: lookahead buffer size too small") - } - if c.SizeInHeader { - if c.Size < 0 { - return errors.New("lzma: negative size not supported") - } - } else if !c.EOSMarker { - return errors.New("lzma: EOS marker is required") - } - if err = c.Matcher.verify(); err != nil { - return err - } - - return nil -} - -// header returns the header structure for this configuration. -func (c *WriterConfig) header() header { - h := header{ - properties: *c.Properties, - dictCap: c.DictCap, - size: -1, - } - if c.SizeInHeader { - h.size = c.Size - } - return h -} - -// Writer writes an LZMA stream in the classic format. -type Writer struct { - h header - bw io.ByteWriter - buf *bufio.Writer - e *encoder -} - -// NewWriter creates a new LZMA writer for the classic format. The -// method will write the header to the underlying stream. -func (c WriterConfig) NewWriter(lzma io.Writer) (w *Writer, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - w = &Writer{h: c.header()} - - var ok bool - w.bw, ok = lzma.(io.ByteWriter) - if !ok { - w.buf = bufio.NewWriter(lzma) - w.bw = w.buf - } - state := newState(w.h.properties) - m, err := c.Matcher.new(w.h.dictCap) - if err != nil { - return nil, err - } - dict, err := newEncoderDict(w.h.dictCap, c.BufSize, m) - if err != nil { - return nil, err - } - var flags encoderFlags - if c.EOSMarker { - flags = eosMarker - } - if w.e, err = newEncoder(w.bw, state, dict, flags); err != nil { - return nil, err - } - - if err = w.writeHeader(); err != nil { - return nil, err - } - return w, nil -} - -// NewWriter creates a new LZMA writer using the classic format. The -// function writes the header to the underlying stream. -func NewWriter(lzma io.Writer) (w *Writer, err error) { - return WriterConfig{}.NewWriter(lzma) -} - -// writeHeader writes the LZMA header into the stream. -func (w *Writer) writeHeader() error { - data, err := w.h.marshalBinary() - if err != nil { - return err - } - _, err = w.bw.(io.Writer).Write(data) - return err -} - -// Write puts data into the Writer. -func (w *Writer) Write(p []byte) (n int, err error) { - if w.h.size >= 0 { - m := w.h.size - m -= w.e.Compressed() + int64(w.e.dict.Buffered()) - if m < 0 { - m = 0 - } - if m < int64(len(p)) { - p = p[:m] - err = ErrNoSpace - } - } - var werr error - if n, werr = w.e.Write(p); werr != nil { - err = werr - } - return n, err -} - -// Close closes the writer stream. It ensures that all data from the -// buffer will be compressed and the LZMA stream will be finished. -func (w *Writer) Close() error { - if w.h.size >= 0 { - n := w.e.Compressed() + int64(w.e.dict.Buffered()) - if n != w.h.size { - return errSize - } - } - err := w.e.Close() - if w.buf != nil { - ferr := w.buf.Flush() - if err == nil { - err = ferr - } - } - return err -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzma/writer2.go b/backend/vendor/github.com/ulikunitz/xz/lzma/writer2.go deleted file mode 100644 index c263b066..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzma/writer2.go +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lzma - -import ( - "bytes" - "errors" - "io" -) - -// Writer2Config is used to create a Writer2 using parameters. -type Writer2Config struct { - // The properties for the encoding. If the it is nil the value - // {LC: 3, LP: 0, PB: 2} will be chosen. - Properties *Properties - // The capacity of the dictionary. If DictCap is zero, the value - // 8 MiB will be chosen. - DictCap int - // Size of the lookahead buffer; value 0 indicates default size - // 4096 - BufSize int - // Match algorithm - Matcher MatchAlgorithm -} - -// fill replaces zero values with default values. -func (c *Writer2Config) fill() { - if c.Properties == nil { - c.Properties = &Properties{LC: 3, LP: 0, PB: 2} - } - if c.DictCap == 0 { - c.DictCap = 8 * 1024 * 1024 - } - if c.BufSize == 0 { - c.BufSize = 4096 - } -} - -// Verify checks the Writer2Config for correctness. Zero values will be -// replaced by default values. -func (c *Writer2Config) Verify() error { - c.fill() - var err error - if c == nil { - return errors.New("lzma: WriterConfig is nil") - } - if c.Properties == nil { - return errors.New("lzma: WriterConfig has no Properties set") - } - if err = c.Properties.verify(); err != nil { - return err - } - if !(MinDictCap <= c.DictCap && int64(c.DictCap) <= MaxDictCap) { - return errors.New("lzma: dictionary capacity is out of range") - } - if !(maxMatchLen <= c.BufSize) { - return errors.New("lzma: lookahead buffer size too small") - } - if c.Properties.LC+c.Properties.LP > 4 { - return errors.New("lzma: sum of lc and lp exceeds 4") - } - if err = c.Matcher.verify(); err != nil { - return err - } - return nil -} - -// Writer2 supports the creation of an LZMA2 stream. But note that -// written data is buffered, so call Flush or Close to write data to the -// underlying writer. The Close method writes the end-of-stream marker -// to the stream. So you may be able to concatenate the output of two -// writers as long the output of the first writer has only been flushed -// but not closed. -// -// Any change to the fields Properties, DictCap must be done before the -// first call to Write, Flush or Close. -type Writer2 struct { - w io.Writer - - start *state - encoder *encoder - - cstate chunkState - ctype chunkType - - buf bytes.Buffer - lbw LimitedByteWriter -} - -// NewWriter2 creates an LZMA2 chunk sequence writer with the default -// parameters and options. -func NewWriter2(lzma2 io.Writer) (w *Writer2, err error) { - return Writer2Config{}.NewWriter2(lzma2) -} - -// NewWriter2 creates a new LZMA2 writer using the given configuration. -func (c Writer2Config) NewWriter2(lzma2 io.Writer) (w *Writer2, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - w = &Writer2{ - w: lzma2, - start: newState(*c.Properties), - cstate: start, - ctype: start.defaultChunkType(), - } - w.buf.Grow(maxCompressed) - w.lbw = LimitedByteWriter{BW: &w.buf, N: maxCompressed} - m, err := c.Matcher.new(c.DictCap) - if err != nil { - return nil, err - } - d, err := newEncoderDict(c.DictCap, c.BufSize, m) - if err != nil { - return nil, err - } - w.encoder, err = newEncoder(&w.lbw, cloneState(w.start), d, 0) - if err != nil { - return nil, err - } - return w, nil -} - -// written returns the number of bytes written to the current chunk -func (w *Writer2) written() int { - if w.encoder == nil { - return 0 - } - return int(w.encoder.Compressed()) + w.encoder.dict.Buffered() -} - -// errClosed indicates that the writer is closed. -var errClosed = errors.New("lzma: writer closed") - -// Writes data to LZMA2 stream. Note that written data will be buffered. -// Use Flush or Close to ensure that data is written to the underlying -// writer. -func (w *Writer2) Write(p []byte) (n int, err error) { - if w.cstate == stop { - return 0, errClosed - } - for n < len(p) { - m := maxUncompressed - w.written() - if m <= 0 { - panic("lzma: maxUncompressed reached") - } - var q []byte - if n+m < len(p) { - q = p[n : n+m] - } else { - q = p[n:] - } - k, err := w.encoder.Write(q) - n += k - if err != nil && err != ErrLimit { - return n, err - } - if err == ErrLimit || k == m { - if err = w.flushChunk(); err != nil { - return n, err - } - } - } - return n, nil -} - -// writeUncompressedChunk writes an uncompressed chunk to the LZMA2 -// stream. -func (w *Writer2) writeUncompressedChunk() error { - u := w.encoder.Compressed() - if u <= 0 { - return errors.New("lzma: can't write empty uncompressed chunk") - } - if u > maxUncompressed { - panic("overrun of uncompressed data limit") - } - switch w.ctype { - case cLRND: - w.ctype = cUD - default: - w.ctype = cU - } - w.encoder.state = w.start - - header := chunkHeader{ - ctype: w.ctype, - uncompressed: uint32(u - 1), - } - hdata, err := header.MarshalBinary() - if err != nil { - return err - } - if _, err = w.w.Write(hdata); err != nil { - return err - } - _, err = w.encoder.dict.CopyN(w.w, int(u)) - return err -} - -// writeCompressedChunk writes a compressed chunk to the underlying -// writer. -func (w *Writer2) writeCompressedChunk() error { - if w.ctype == cU || w.ctype == cUD { - panic("chunk type uncompressed") - } - - u := w.encoder.Compressed() - if u <= 0 { - return errors.New("writeCompressedChunk: empty chunk") - } - if u > maxUncompressed { - panic("overrun of uncompressed data limit") - } - c := w.buf.Len() - if c <= 0 { - panic("no compressed data") - } - if c > maxCompressed { - panic("overrun of compressed data limit") - } - header := chunkHeader{ - ctype: w.ctype, - uncompressed: uint32(u - 1), - compressed: uint16(c - 1), - props: w.encoder.state.Properties, - } - hdata, err := header.MarshalBinary() - if err != nil { - return err - } - if _, err = w.w.Write(hdata); err != nil { - return err - } - _, err = io.Copy(w.w, &w.buf) - return err -} - -// writes a single chunk to the underlying writer. -func (w *Writer2) writeChunk() error { - u := int(uncompressedHeaderLen + w.encoder.Compressed()) - c := headerLen(w.ctype) + w.buf.Len() - if u < c { - return w.writeUncompressedChunk() - } - return w.writeCompressedChunk() -} - -// flushChunk terminates the current chunk. The encoder will be reset -// to support the next chunk. -func (w *Writer2) flushChunk() error { - if w.written() == 0 { - return nil - } - var err error - if err = w.encoder.Close(); err != nil { - return err - } - if err = w.writeChunk(); err != nil { - return err - } - w.buf.Reset() - w.lbw.N = maxCompressed - if err = w.encoder.Reopen(&w.lbw); err != nil { - return err - } - if err = w.cstate.next(w.ctype); err != nil { - return err - } - w.ctype = w.cstate.defaultChunkType() - w.start = cloneState(w.encoder.state) - return nil -} - -// Flush writes all buffered data out to the underlying stream. This -// could result in multiple chunks to be created. -func (w *Writer2) Flush() error { - if w.cstate == stop { - return errClosed - } - for w.written() > 0 { - if err := w.flushChunk(); err != nil { - return err - } - } - return nil -} - -// Close terminates the LZMA2 stream with an EOS chunk. -func (w *Writer2) Close() error { - if w.cstate == stop { - return errClosed - } - if err := w.Flush(); err != nil { - return nil - } - // write zero byte EOS chunk - _, err := w.w.Write([]byte{0}) - if err != nil { - return err - } - w.cstate = stop - return nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/lzmafilter.go b/backend/vendor/github.com/ulikunitz/xz/lzmafilter.go deleted file mode 100644 index 6f4aa2c0..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/lzmafilter.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package xz - -import ( - "errors" - "fmt" - "io" - - "github.com/ulikunitz/xz/lzma" -) - -// LZMA filter constants. -const ( - lzmaFilterID = 0x21 - lzmaFilterLen = 3 -) - -// lzmaFilter declares the LZMA2 filter information stored in an xz -// block header. -type lzmaFilter struct { - dictCap int64 -} - -// String returns a representation of the LZMA filter. -func (f lzmaFilter) String() string { - return fmt.Sprintf("LZMA dict cap %#x", f.dictCap) -} - -// id returns the ID for the LZMA2 filter. -func (f lzmaFilter) id() uint64 { return lzmaFilterID } - -// MarshalBinary converts the lzmaFilter in its encoded representation. -func (f lzmaFilter) MarshalBinary() (data []byte, err error) { - c := lzma.EncodeDictCap(f.dictCap) - return []byte{lzmaFilterID, 1, c}, nil -} - -// UnmarshalBinary unmarshals the given data representation of the LZMA2 -// filter. -func (f *lzmaFilter) UnmarshalBinary(data []byte) error { - if len(data) != lzmaFilterLen { - return errors.New("xz: data for LZMA2 filter has wrong length") - } - if data[0] != lzmaFilterID { - return errors.New("xz: wrong LZMA2 filter id") - } - if data[1] != 1 { - return errors.New("xz: wrong LZMA2 filter size") - } - dc, err := lzma.DecodeDictCap(data[2]) - if err != nil { - return errors.New("xz: wrong LZMA2 dictionary size property") - } - - f.dictCap = dc - return nil -} - -// reader creates a new reader for the LZMA2 filter. -func (f lzmaFilter) reader(r io.Reader, c *ReaderConfig) (fr io.Reader, - err error) { - - config := new(lzma.Reader2Config) - if c != nil { - config.DictCap = c.DictCap - } - dc := int(f.dictCap) - if dc < 1 { - return nil, errors.New("xz: LZMA2 filter parameter " + - "dictionary capacity overflow") - } - if dc > config.DictCap { - config.DictCap = dc - } - - fr, err = config.NewReader2(r) - if err != nil { - return nil, err - } - return fr, nil -} - -// writeCloser creates a io.WriteCloser for the LZMA2 filter. -func (f lzmaFilter) writeCloser(w io.WriteCloser, c *WriterConfig, -) (fw io.WriteCloser, err error) { - config := new(lzma.Writer2Config) - if c != nil { - *config = lzma.Writer2Config{ - Properties: c.Properties, - DictCap: c.DictCap, - BufSize: c.BufSize, - Matcher: c.Matcher, - } - } - - dc := int(f.dictCap) - if dc < 1 { - return nil, errors.New("xz: LZMA2 filter parameter " + - "dictionary capacity overflow") - } - if dc > config.DictCap { - config.DictCap = dc - } - - fw, err = config.NewWriter2(w) - if err != nil { - return nil, err - } - return fw, nil -} - -// last returns true, because an LZMA2 filter must be the last filter in -// the filter list. -func (f lzmaFilter) last() bool { return true } diff --git a/backend/vendor/github.com/ulikunitz/xz/make-docs b/backend/vendor/github.com/ulikunitz/xz/make-docs deleted file mode 100644 index a8c612ce..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/make-docs +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -x -pandoc -t html5 -f markdown -s --css=doc/md.css -o README.html README.md -pandoc -t html5 -f markdown -s --css=doc/md.css -o TODO.html TODO.md diff --git a/backend/vendor/github.com/ulikunitz/xz/none-check.go b/backend/vendor/github.com/ulikunitz/xz/none-check.go deleted file mode 100644 index e12d8e47..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/none-check.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package xz - -import "hash" - -type noneHash struct{} - -func (h noneHash) Write(p []byte) (n int, err error) { return len(p), nil } - -func (h noneHash) Sum(b []byte) []byte { return b } - -func (h noneHash) Reset() {} - -func (h noneHash) Size() int { return 0 } - -func (h noneHash) BlockSize() int { return 0 } - -func newNoneHash() hash.Hash { - return &noneHash{} -} diff --git a/backend/vendor/github.com/ulikunitz/xz/reader.go b/backend/vendor/github.com/ulikunitz/xz/reader.go deleted file mode 100644 index 79585891..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/reader.go +++ /dev/null @@ -1,362 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package xz supports the compression and decompression of xz files. It -// supports version 1.0.4 of the specification without the non-LZMA2 -// filters. See http://tukaani.org/xz/xz-file-format-1.0.4.txt -package xz - -import ( - "bytes" - "errors" - "fmt" - "hash" - "io" - - "github.com/ulikunitz/xz/internal/xlog" - "github.com/ulikunitz/xz/lzma" -) - -// ReaderConfig defines the parameters for the xz reader. The -// SingleStream parameter requests the reader to assume that the -// underlying stream contains only a single stream. -type ReaderConfig struct { - DictCap int - SingleStream bool -} - -// Verify checks the reader parameters for Validity. Zero values will be -// replaced by default values. -func (c *ReaderConfig) Verify() error { - if c == nil { - return errors.New("xz: reader parameters are nil") - } - lc := lzma.Reader2Config{DictCap: c.DictCap} - if err := lc.Verify(); err != nil { - return err - } - return nil -} - -// Reader supports the reading of one or multiple xz streams. -type Reader struct { - ReaderConfig - - xz io.Reader - sr *streamReader -} - -// streamReader decodes a single xz stream -type streamReader struct { - ReaderConfig - - xz io.Reader - br *blockReader - newHash func() hash.Hash - h header - index []record -} - -// NewReader creates a new xz reader using the default parameters. -// The function reads and checks the header of the first XZ stream. The -// reader will process multiple streams including padding. -func NewReader(xz io.Reader) (r *Reader, err error) { - return ReaderConfig{}.NewReader(xz) -} - -// NewReader creates an xz stream reader. The created reader will be -// able to process multiple streams and padding unless a SingleStream -// has been set in the reader configuration c. -func (c ReaderConfig) NewReader(xz io.Reader) (r *Reader, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - r = &Reader{ - ReaderConfig: c, - xz: xz, - } - if r.sr, err = c.newStreamReader(xz); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return nil, err - } - return r, nil -} - -var errUnexpectedData = errors.New("xz: unexpected data after stream") - -// Read reads uncompressed data from the stream. -func (r *Reader) Read(p []byte) (n int, err error) { - for n < len(p) { - if r.sr == nil { - if r.SingleStream { - data := make([]byte, 1) - _, err = io.ReadFull(r.xz, data) - if err != io.EOF { - return n, errUnexpectedData - } - return n, io.EOF - } - for { - r.sr, err = r.ReaderConfig.newStreamReader(r.xz) - if err != errPadding { - break - } - } - if err != nil { - return n, err - } - } - k, err := r.sr.Read(p[n:]) - n += k - if err != nil { - if err == io.EOF { - r.sr = nil - continue - } - return n, err - } - } - return n, nil -} - -var errPadding = errors.New("xz: padding (4 zero bytes) encountered") - -// newStreamReader creates a new xz stream reader using the given configuration -// parameters. NewReader reads and checks the header of the xz stream. -func (c ReaderConfig) newStreamReader(xz io.Reader) (r *streamReader, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - data := make([]byte, HeaderLen) - if _, err := io.ReadFull(xz, data[:4]); err != nil { - return nil, err - } - if bytes.Equal(data[:4], []byte{0, 0, 0, 0}) { - return nil, errPadding - } - if _, err = io.ReadFull(xz, data[4:]); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return nil, err - } - r = &streamReader{ - ReaderConfig: c, - xz: xz, - index: make([]record, 0, 4), - } - if err = r.h.UnmarshalBinary(data); err != nil { - return nil, err - } - xlog.Debugf("xz header %s", r.h) - if r.newHash, err = newHashFunc(r.h.flags); err != nil { - return nil, err - } - return r, nil -} - -// readTail reads the index body and the xz footer. -func (r *streamReader) readTail() error { - index, n, err := readIndexBody(r.xz) - if err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return err - } - if len(index) != len(r.index) { - return fmt.Errorf("xz: index length is %d; want %d", - len(index), len(r.index)) - } - for i, rec := range r.index { - if rec != index[i] { - return fmt.Errorf("xz: record %d is %v; want %v", - i, rec, index[i]) - } - } - - p := make([]byte, footerLen) - if _, err = io.ReadFull(r.xz, p); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return err - } - var f footer - if err = f.UnmarshalBinary(p); err != nil { - return err - } - xlog.Debugf("xz footer %s", f) - if f.flags != r.h.flags { - return errors.New("xz: footer flags incorrect") - } - if f.indexSize != int64(n)+1 { - return errors.New("xz: index size in footer wrong") - } - return nil -} - -// Read reads actual data from the xz stream. -func (r *streamReader) Read(p []byte) (n int, err error) { - for n < len(p) { - if r.br == nil { - bh, hlen, err := readBlockHeader(r.xz) - if err != nil { - if err == errIndexIndicator { - if err = r.readTail(); err != nil { - return n, err - } - return n, io.EOF - } - return n, err - } - xlog.Debugf("block %v", *bh) - r.br, err = r.ReaderConfig.newBlockReader(r.xz, bh, - hlen, r.newHash()) - if err != nil { - return n, err - } - } - k, err := r.br.Read(p[n:]) - n += k - if err != nil { - if err == io.EOF { - r.index = append(r.index, r.br.record()) - r.br = nil - } else { - return n, err - } - } - } - return n, nil -} - -// countingReader is a reader that counts the bytes read. -type countingReader struct { - r io.Reader - n int64 -} - -// Read reads data from the wrapped reader and adds it to the n field. -func (lr *countingReader) Read(p []byte) (n int, err error) { - n, err = lr.r.Read(p) - lr.n += int64(n) - return n, err -} - -// blockReader supports the reading of a block. -type blockReader struct { - lxz countingReader - header *blockHeader - headerLen int - n int64 - hash hash.Hash - r io.Reader -} - -// newBlockReader creates a new block reader. -func (c *ReaderConfig) newBlockReader(xz io.Reader, h *blockHeader, - hlen int, hash hash.Hash) (br *blockReader, err error) { - - br = &blockReader{ - lxz: countingReader{r: xz}, - header: h, - headerLen: hlen, - hash: hash, - } - - fr, err := c.newFilterReader(&br.lxz, h.filters) - if err != nil { - return nil, err - } - if br.hash.Size() != 0 { - br.r = io.TeeReader(fr, br.hash) - } else { - br.r = fr - } - - return br, nil -} - -// uncompressedSize returns the uncompressed size of the block. -func (br *blockReader) uncompressedSize() int64 { - return br.n -} - -// compressedSize returns the compressed size of the block. -func (br *blockReader) compressedSize() int64 { - return br.lxz.n -} - -// unpaddedSize computes the unpadded size for the block. -func (br *blockReader) unpaddedSize() int64 { - n := int64(br.headerLen) - n += br.compressedSize() - n += int64(br.hash.Size()) - return n -} - -// record returns the index record for the current block. -func (br *blockReader) record() record { - return record{br.unpaddedSize(), br.uncompressedSize()} -} - -// Read reads data from the block. -func (br *blockReader) Read(p []byte) (n int, err error) { - n, err = br.r.Read(p) - br.n += int64(n) - - u := br.header.uncompressedSize - if u >= 0 && br.uncompressedSize() > u { - return n, errors.New("xz: wrong uncompressed size for block") - } - c := br.header.compressedSize - if c >= 0 && br.compressedSize() > c { - return n, errors.New("xz: wrong compressed size for block") - } - if err != io.EOF { - return n, err - } - if br.uncompressedSize() < u || br.compressedSize() < c { - return n, io.ErrUnexpectedEOF - } - - s := br.hash.Size() - k := padLen(br.lxz.n) - q := make([]byte, k+s, k+2*s) - if _, err = io.ReadFull(br.lxz.r, q); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return n, err - } - if !allZeros(q[:k]) { - return n, errors.New("xz: non-zero block padding") - } - checkSum := q[k:] - computedSum := br.hash.Sum(checkSum[s:]) - if !bytes.Equal(checkSum, computedSum) { - return n, errors.New("xz: checksum error for block") - } - return n, io.EOF -} - -func (c *ReaderConfig) newFilterReader(r io.Reader, f []filter) (fr io.Reader, - err error) { - - if err = verifyFilters(f); err != nil { - return nil, err - } - - fr = r - for i := len(f) - 1; i >= 0; i-- { - fr, err = f[i].reader(fr, c) - if err != nil { - return nil, err - } - } - return fr, nil -} diff --git a/backend/vendor/github.com/ulikunitz/xz/writer.go b/backend/vendor/github.com/ulikunitz/xz/writer.go deleted file mode 100644 index a9ed4491..00000000 --- a/backend/vendor/github.com/ulikunitz/xz/writer.go +++ /dev/null @@ -1,399 +0,0 @@ -// Copyright 2014-2019 Ulrich Kunitz. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package xz - -import ( - "errors" - "fmt" - "hash" - "io" - - "github.com/ulikunitz/xz/lzma" -) - -// WriterConfig describe the parameters for an xz writer. -type WriterConfig struct { - Properties *lzma.Properties - DictCap int - BufSize int - BlockSize int64 - // checksum method: CRC32, CRC64 or SHA256 (default: CRC64) - CheckSum byte - // Forces NoChecksum (default: false) - NoCheckSum bool - // match algorithm - Matcher lzma.MatchAlgorithm -} - -// fill replaces zero values with default values. -func (c *WriterConfig) fill() { - if c.Properties == nil { - c.Properties = &lzma.Properties{LC: 3, LP: 0, PB: 2} - } - if c.DictCap == 0 { - c.DictCap = 8 * 1024 * 1024 - } - if c.BufSize == 0 { - c.BufSize = 4096 - } - if c.BlockSize == 0 { - c.BlockSize = maxInt64 - } - if c.CheckSum == 0 { - c.CheckSum = CRC64 - } - if c.NoCheckSum { - c.CheckSum = None - } -} - -// Verify checks the configuration for errors. Zero values will be -// replaced by default values. -func (c *WriterConfig) Verify() error { - if c == nil { - return errors.New("xz: writer configuration is nil") - } - c.fill() - lc := lzma.Writer2Config{ - Properties: c.Properties, - DictCap: c.DictCap, - BufSize: c.BufSize, - Matcher: c.Matcher, - } - if err := lc.Verify(); err != nil { - return err - } - if c.BlockSize <= 0 { - return errors.New("xz: block size out of range") - } - if err := verifyFlags(c.CheckSum); err != nil { - return err - } - return nil -} - -// filters creates the filter list for the given parameters. -func (c *WriterConfig) filters() []filter { - return []filter{&lzmaFilter{int64(c.DictCap)}} -} - -// maxInt64 defines the maximum 64-bit signed integer. -const maxInt64 = 1<<63 - 1 - -// verifyFilters checks the filter list for the length and the right -// sequence of filters. -func verifyFilters(f []filter) error { - if len(f) == 0 { - return errors.New("xz: no filters") - } - if len(f) > 4 { - return errors.New("xz: more than four filters") - } - for _, g := range f[:len(f)-1] { - if g.last() { - return errors.New("xz: last filter is not last") - } - } - if !f[len(f)-1].last() { - return errors.New("xz: wrong last filter") - } - return nil -} - -// newFilterWriteCloser converts a filter list into a WriteCloser that -// can be used by a blockWriter. -func (c *WriterConfig) newFilterWriteCloser(w io.Writer, f []filter) (fw io.WriteCloser, err error) { - if err = verifyFilters(f); err != nil { - return nil, err - } - fw = nopWriteCloser(w) - for i := len(f) - 1; i >= 0; i-- { - fw, err = f[i].writeCloser(fw, c) - if err != nil { - return nil, err - } - } - return fw, nil -} - -// nopWCloser implements a WriteCloser with a Close method not doing -// anything. -type nopWCloser struct { - io.Writer -} - -// Close returns nil and doesn't do anything else. -func (c nopWCloser) Close() error { - return nil -} - -// nopWriteCloser converts the Writer into a WriteCloser with a Close -// function that does nothing beside returning nil. -func nopWriteCloser(w io.Writer) io.WriteCloser { - return nopWCloser{w} -} - -// Writer compresses data written to it. It is an io.WriteCloser. -type Writer struct { - WriterConfig - - xz io.Writer - bw *blockWriter - newHash func() hash.Hash - h header - index []record - closed bool -} - -// newBlockWriter creates a new block writer writes the header out. -func (w *Writer) newBlockWriter() error { - var err error - w.bw, err = w.WriterConfig.newBlockWriter(w.xz, w.newHash()) - if err != nil { - return err - } - if err = w.bw.writeHeader(w.xz); err != nil { - return err - } - return nil -} - -// closeBlockWriter closes a block writer and records the sizes in the -// index. -func (w *Writer) closeBlockWriter() error { - var err error - if err = w.bw.Close(); err != nil { - return err - } - w.index = append(w.index, w.bw.record()) - return nil -} - -// NewWriter creates a new xz writer using default parameters. -func NewWriter(xz io.Writer) (w *Writer, err error) { - return WriterConfig{}.NewWriter(xz) -} - -// NewWriter creates a new Writer using the given configuration parameters. -func (c WriterConfig) NewWriter(xz io.Writer) (w *Writer, err error) { - if err = c.Verify(); err != nil { - return nil, err - } - w = &Writer{ - WriterConfig: c, - xz: xz, - h: header{c.CheckSum}, - index: make([]record, 0, 4), - } - if w.newHash, err = newHashFunc(c.CheckSum); err != nil { - return nil, err - } - data, err := w.h.MarshalBinary() - if err != nil { - return nil, fmt.Errorf("w.h.MarshalBinary(): error %w", err) - } - if _, err = xz.Write(data); err != nil { - return nil, err - } - if err = w.newBlockWriter(); err != nil { - return nil, err - } - return w, nil - -} - -// Write compresses the uncompressed data provided. -func (w *Writer) Write(p []byte) (n int, err error) { - if w.closed { - return 0, errClosed - } - for { - k, err := w.bw.Write(p[n:]) - n += k - if err != errNoSpace { - return n, err - } - if err = w.closeBlockWriter(); err != nil { - return n, err - } - if err = w.newBlockWriter(); err != nil { - return n, err - } - } -} - -// Close closes the writer and adds the footer to the Writer. Close -// doesn't close the underlying writer. -func (w *Writer) Close() error { - if w.closed { - return errClosed - } - w.closed = true - var err error - if err = w.closeBlockWriter(); err != nil { - return err - } - - f := footer{flags: w.h.flags} - if f.indexSize, err = writeIndex(w.xz, w.index); err != nil { - return err - } - data, err := f.MarshalBinary() - if err != nil { - return err - } - if _, err = w.xz.Write(data); err != nil { - return err - } - return nil -} - -// countingWriter is a writer that counts all data written to it. -type countingWriter struct { - w io.Writer - n int64 -} - -// Write writes data to the countingWriter. -func (cw *countingWriter) Write(p []byte) (n int, err error) { - n, err = cw.w.Write(p) - cw.n += int64(n) - if err == nil && cw.n < 0 { - return n, errors.New("xz: counter overflow") - } - return -} - -// blockWriter is writes a single block. -type blockWriter struct { - cxz countingWriter - // mw combines io.WriteCloser w and the hash. - mw io.Writer - w io.WriteCloser - n int64 - blockSize int64 - closed bool - headerLen int - - filters []filter - hash hash.Hash -} - -// newBlockWriter creates a new block writer. -func (c *WriterConfig) newBlockWriter(xz io.Writer, hash hash.Hash) (bw *blockWriter, err error) { - bw = &blockWriter{ - cxz: countingWriter{w: xz}, - blockSize: c.BlockSize, - filters: c.filters(), - hash: hash, - } - bw.w, err = c.newFilterWriteCloser(&bw.cxz, bw.filters) - if err != nil { - return nil, err - } - if bw.hash.Size() != 0 { - bw.mw = io.MultiWriter(bw.w, bw.hash) - } else { - bw.mw = bw.w - } - return bw, nil -} - -// writeHeader writes the header. If the function is called after Close -// the commpressedSize and uncompressedSize fields will be filled. -func (bw *blockWriter) writeHeader(w io.Writer) error { - h := blockHeader{ - compressedSize: -1, - uncompressedSize: -1, - filters: bw.filters, - } - if bw.closed { - h.compressedSize = bw.compressedSize() - h.uncompressedSize = bw.uncompressedSize() - } - data, err := h.MarshalBinary() - if err != nil { - return err - } - if _, err = w.Write(data); err != nil { - return err - } - bw.headerLen = len(data) - return nil -} - -// compressed size returns the amount of data written to the underlying -// stream. -func (bw *blockWriter) compressedSize() int64 { - return bw.cxz.n -} - -// uncompressedSize returns the number of data written to the -// blockWriter -func (bw *blockWriter) uncompressedSize() int64 { - return bw.n -} - -// unpaddedSize returns the sum of the header length, the uncompressed -// size of the block and the hash size. -func (bw *blockWriter) unpaddedSize() int64 { - if bw.headerLen <= 0 { - panic("xz: block header not written") - } - n := int64(bw.headerLen) - n += bw.compressedSize() - n += int64(bw.hash.Size()) - return n -} - -// record returns the record for the current stream. Call Close before -// calling this method. -func (bw *blockWriter) record() record { - return record{bw.unpaddedSize(), bw.uncompressedSize()} -} - -var errClosed = errors.New("xz: writer already closed") - -var errNoSpace = errors.New("xz: no space") - -// Write writes uncompressed data to the block writer. -func (bw *blockWriter) Write(p []byte) (n int, err error) { - if bw.closed { - return 0, errClosed - } - - t := bw.blockSize - bw.n - if int64(len(p)) > t { - err = errNoSpace - p = p[:t] - } - - var werr error - n, werr = bw.mw.Write(p) - bw.n += int64(n) - if werr != nil { - return n, werr - } - return n, err -} - -// Close closes the writer. -func (bw *blockWriter) Close() error { - if bw.closed { - return errClosed - } - bw.closed = true - if err := bw.w.Close(); err != nil { - return err - } - s := bw.hash.Size() - k := padLen(bw.cxz.n) - p := make([]byte, k+s) - bw.hash.Sum(p[k:k]) - if _, err := bw.cxz.w.Write(p); err != nil { - return err - } - return nil -} diff --git a/backend/vendor/github.com/xi2/xz/AUTHORS b/backend/vendor/github.com/xi2/xz/AUTHORS deleted file mode 100644 index 657330e1..00000000 --- a/backend/vendor/github.com/xi2/xz/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -# Package xz authors - -Michael Cross - -# XZ Embedded authors - -Lasse Collin -Igor Pavlov diff --git a/backend/vendor/github.com/xi2/xz/LICENSE b/backend/vendor/github.com/xi2/xz/LICENSE deleted file mode 100644 index b56f2e6a..00000000 --- a/backend/vendor/github.com/xi2/xz/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Licensing of github.com/xi2/xz -============================== - - This Go package is a modified version of - - XZ Embedded - - The contents of the testdata directory are modified versions of - the test files from - - XZ Utils - - All the files in this package have been written by Michael Cross, - Lasse Collin and/or Igor PavLov. All these files have been put - into the public domain. You can do whatever you want with these - files. - - This software is provided "as is", without any warranty. diff --git a/backend/vendor/github.com/xi2/xz/README.md b/backend/vendor/github.com/xi2/xz/README.md deleted file mode 100644 index 2190af55..00000000 --- a/backend/vendor/github.com/xi2/xz/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Xz - -Package xz implements XZ decompression natively in Go. - -Documentation at . - -Download and install with `go get github.com/xi2/xz`. - -If you need compression as well as decompression, you might want to -look at . diff --git a/backend/vendor/github.com/xi2/xz/dec_bcj.go b/backend/vendor/github.com/xi2/xz/dec_bcj.go deleted file mode 100644 index a8a3df92..00000000 --- a/backend/vendor/github.com/xi2/xz/dec_bcj.go +++ /dev/null @@ -1,461 +0,0 @@ -/* - * Branch/Call/Jump (BCJ) filter decoders - * - * Authors: Lasse Collin - * Igor Pavlov - * - * Translation to Go: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -/* from linux/lib/xz/xz_dec_bcj.c *************************************/ - -type xzDecBCJ struct { - /* Type of the BCJ filter being used */ - typ xzFilterID - /* - * Return value of the next filter in the chain. We need to preserve - * this information across calls, because we must not call the next - * filter anymore once it has returned xzStreamEnd - */ - ret xzRet - /* - * Absolute position relative to the beginning of the uncompressed - * data (in a single .xz Block). - */ - pos int - /* x86 filter state */ - x86PrevMask uint32 - /* Temporary space to hold the variables from xzBuf */ - out []byte - outPos int - temp struct { - /* Amount of already filtered data in the beginning of buf */ - filtered int - /* - * Buffer to hold a mix of filtered and unfiltered data. This - * needs to be big enough to hold Alignment + 2 * Look-ahead: - * - * Type Alignment Look-ahead - * x86 1 4 - * PowerPC 4 0 - * IA-64 16 0 - * ARM 4 0 - * ARM-Thumb 2 2 - * SPARC 4 0 - */ - buf []byte // slice buf will be backed by bufArray - bufArray [16]byte - } -} - -/* - * This is used to test the most significant byte of a memory address - * in an x86 instruction. - */ -func bcjX86TestMSByte(b byte) bool { - return b == 0x00 || b == 0xff -} - -func bcjX86Filter(s *xzDecBCJ, buf []byte) int { - var maskToAllowedStatus = []bool{ - true, true, true, false, true, false, false, false, - } - var maskToBitNum = []byte{0, 1, 2, 2, 3, 3, 3, 3} - var i int - var prevPos int = -1 - var prevMask uint32 = s.x86PrevMask - var src uint32 - var dest uint32 - var j uint32 - var b byte - if len(buf) <= 4 { - return 0 - } - for i = 0; i < len(buf)-4; i++ { - if buf[i]&0xfe != 0xe8 { - continue - } - prevPos = i - prevPos - if prevPos > 3 { - prevMask = 0 - } else { - prevMask = (prevMask << (uint(prevPos) - 1)) & 7 - if prevMask != 0 { - b = buf[i+4-int(maskToBitNum[prevMask])] - if !maskToAllowedStatus[prevMask] || bcjX86TestMSByte(b) { - prevPos = i - prevMask = prevMask<<1 | 1 - continue - } - } - } - prevPos = i - if bcjX86TestMSByte(buf[i+4]) { - src = getLE32(buf[i+1:]) - for { - dest = src - uint32(s.pos+i+5) - if prevMask == 0 { - break - } - j = uint32(maskToBitNum[prevMask]) * 8 - b = byte(dest >> (24 - j)) - if !bcjX86TestMSByte(b) { - break - } - src = dest ^ (1<<(32-j) - 1) - } - dest &= 0x01FFFFFF - dest |= 0 - dest&0x01000000 - putLE32(dest, buf[i+1:]) - i += 4 - } else { - prevMask = prevMask<<1 | 1 - } - } - prevPos = i - prevPos - if prevPos > 3 { - s.x86PrevMask = 0 - } else { - s.x86PrevMask = prevMask << (uint(prevPos) - 1) - } - return i -} - -func bcjPowerPCFilter(s *xzDecBCJ, buf []byte) int { - var i int - var instr uint32 - for i = 0; i+4 <= len(buf); i += 4 { - instr = getBE32(buf[i:]) - if instr&0xFC000003 == 0x48000001 { - instr &= 0x03FFFFFC - instr -= uint32(s.pos + i) - instr &= 0x03FFFFFC - instr |= 0x48000001 - putBE32(instr, buf[i:]) - } - } - return i -} - -var bcjIA64BranchTable = [...]byte{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 6, 6, 0, 0, 7, 7, - 4, 4, 0, 0, 4, 4, 0, 0, -} - -func bcjIA64Filter(s *xzDecBCJ, buf []byte) int { - var branchTable = bcjIA64BranchTable[:] - /* - * The local variables take a little bit stack space, but it's less - * than what LZMA2 decoder takes, so it doesn't make sense to reduce - * stack usage here without doing that for the LZMA2 decoder too. - */ - /* Loop counters */ - var i int - var j int - /* Instruction slot (0, 1, or 2) in the 128-bit instruction word */ - var slot uint32 - /* Bitwise offset of the instruction indicated by slot */ - var bitPos uint32 - /* bit_pos split into byte and bit parts */ - var bytePos uint32 - var bitRes uint32 - /* Address part of an instruction */ - var addr uint32 - /* Mask used to detect which instructions to convert */ - var mask uint32 - /* 41-bit instruction stored somewhere in the lowest 48 bits */ - var instr uint64 - /* Instruction normalized with bit_res for easier manipulation */ - var norm uint64 - for i = 0; i+16 <= len(buf); i += 16 { - mask = uint32(branchTable[buf[i]&0x1f]) - for slot, bitPos = 0, 5; slot < 3; slot, bitPos = slot+1, bitPos+41 { - if (mask>>slot)&1 == 0 { - continue - } - bytePos = bitPos >> 3 - bitRes = bitPos & 7 - instr = 0 - for j = 0; j < 6; j++ { - instr |= uint64(buf[i+j+int(bytePos)]) << (8 * uint(j)) - } - norm = instr >> bitRes - if (norm>>37)&0x0f == 0x05 && (norm>>9)&0x07 == 0 { - addr = uint32((norm >> 13) & 0x0fffff) - addr |= (uint32(norm>>36) & 1) << 20 - addr <<= 4 - addr -= uint32(s.pos + i) - addr >>= 4 - norm &= ^(uint64(0x8fffff) << 13) - norm |= uint64(addr&0x0fffff) << 13 - norm |= uint64(addr&0x100000) << (36 - 20) - instr &= 1<> (8 * uint(j))) - } - } - } - } - return i -} - -func bcjARMFilter(s *xzDecBCJ, buf []byte) int { - var i int - var addr uint32 - for i = 0; i+4 <= len(buf); i += 4 { - if buf[i+3] == 0xeb { - addr = uint32(buf[i]) | uint32(buf[i+1])<<8 | - uint32(buf[i+2])<<16 - addr <<= 2 - addr -= uint32(s.pos + i + 8) - addr >>= 2 - buf[i] = byte(addr) - buf[i+1] = byte(addr >> 8) - buf[i+2] = byte(addr >> 16) - } - } - return i -} - -func bcjARMThumbFilter(s *xzDecBCJ, buf []byte) int { - var i int - var addr uint32 - for i = 0; i+4 <= len(buf); i += 2 { - if buf[i+1]&0xf8 == 0xf0 && buf[i+3]&0xf8 == 0xf8 { - addr = uint32(buf[i+1]&0x07)<<19 | - uint32(buf[i])<<11 | - uint32(buf[i+3]&0x07)<<8 | - uint32(buf[i+2]) - addr <<= 1 - addr -= uint32(s.pos + i + 4) - addr >>= 1 - buf[i+1] = byte(0xf0 | (addr>>19)&0x07) - buf[i] = byte(addr >> 11) - buf[i+3] = byte(0xf8 | (addr>>8)&0x07) - buf[i+2] = byte(addr) - i += 2 - } - } - return i -} - -func bcjSPARCFilter(s *xzDecBCJ, buf []byte) int { - var i int - var instr uint32 - for i = 0; i+4 <= len(buf); i += 4 { - instr = getBE32(buf[i:]) - if instr>>22 == 0x100 || instr>>22 == 0x1ff { - instr <<= 2 - instr -= uint32(s.pos + i) - instr >>= 2 - instr = (0x40000000 - instr&0x400000) | - 0x40000000 | (instr & 0x3FFFFF) - putBE32(instr, buf[i:]) - } - } - return i -} - -/* - * Apply the selected BCJ filter. Update *pos and s.pos to match the amount - * of data that got filtered. - */ -func bcjApply(s *xzDecBCJ, buf []byte, pos *int) { - var filtered int - buf = buf[*pos:] - switch s.typ { - case idBCJX86: - filtered = bcjX86Filter(s, buf) - case idBCJPowerPC: - filtered = bcjPowerPCFilter(s, buf) - case idBCJIA64: - filtered = bcjIA64Filter(s, buf) - case idBCJARM: - filtered = bcjARMFilter(s, buf) - case idBCJARMThumb: - filtered = bcjARMThumbFilter(s, buf) - case idBCJSPARC: - filtered = bcjSPARCFilter(s, buf) - default: - /* Never reached */ - } - *pos += filtered - s.pos += filtered -} - -/* - * Flush pending filtered data from temp to the output buffer. - * Move the remaining mixture of possibly filtered and unfiltered - * data to the beginning of temp. - */ -func bcjFlush(s *xzDecBCJ, b *xzBuf) { - var copySize int - copySize = len(b.out) - b.outPos - if copySize > s.temp.filtered { - copySize = s.temp.filtered - } - copy(b.out[b.outPos:], s.temp.buf[:copySize]) - b.outPos += copySize - s.temp.filtered -= copySize - copy(s.temp.buf, s.temp.buf[copySize:]) - s.temp.buf = s.temp.buf[:len(s.temp.buf)-copySize] -} - -/* - * Decode raw stream which has a BCJ filter as the first filter. - * - * The BCJ filter functions are primitive in sense that they process the - * data in chunks of 1-16 bytes. To hide this issue, this function does - * some buffering. - */ -func xzDecBCJRun(s *xzDecBCJ, b *xzBuf, chain func(*xzBuf) xzRet) xzRet { - var outStart int - /* - * Flush pending already filtered data to the output buffer. Return - * immediately if we couldn't flush everything, or if the next - * filter in the chain had already returned xzStreamEnd. - */ - if s.temp.filtered > 0 { - bcjFlush(s, b) - if s.temp.filtered > 0 { - return xzOK - } - if s.ret == xzStreamEnd { - return xzStreamEnd - } - } - /* - * If we have more output space than what is currently pending in - * temp, copy the unfiltered data from temp to the output buffer - * and try to fill the output buffer by decoding more data from the - * next filter in the chain. Apply the BCJ filter on the new data - * in the output buffer. If everything cannot be filtered, copy it - * to temp and rewind the output buffer position accordingly. - * - * This needs to be always run when len(temp.buf) == 0 to handle a special - * case where the output buffer is full and the next filter has no - * more output coming but hasn't returned xzStreamEnd yet. - */ - if len(s.temp.buf) < len(b.out)-b.outPos || len(s.temp.buf) == 0 { - outStart = b.outPos - copy(b.out[b.outPos:], s.temp.buf) - b.outPos += len(s.temp.buf) - s.ret = chain(b) - if s.ret != xzStreamEnd && s.ret != xzOK { - return s.ret - } - bcjApply(s, b.out[:b.outPos], &outStart) - /* - * As an exception, if the next filter returned xzStreamEnd, - * we can do that too, since the last few bytes that remain - * unfiltered are meant to remain unfiltered. - */ - if s.ret == xzStreamEnd { - return xzStreamEnd - } - s.temp.buf = s.temp.bufArray[:b.outPos-outStart] - b.outPos -= len(s.temp.buf) - copy(s.temp.buf, b.out[b.outPos:]) - /* - * If there wasn't enough input to the next filter to fill - * the output buffer with unfiltered data, there's no point - * to try decoding more data to temp. - */ - if b.outPos+len(s.temp.buf) < len(b.out) { - return xzOK - } - } - /* - * We have unfiltered data in temp. If the output buffer isn't full - * yet, try to fill the temp buffer by decoding more data from the - * next filter. Apply the BCJ filter on temp. Then we hopefully can - * fill the actual output buffer by copying filtered data from temp. - * A mix of filtered and unfiltered data may be left in temp; it will - * be taken care on the next call to this function. - */ - if b.outPos < len(b.out) { - /* Make b.out temporarily point to s.temp. */ - s.out = b.out - s.outPos = b.outPos - b.out = s.temp.bufArray[:] - b.outPos = len(s.temp.buf) - s.ret = chain(b) - s.temp.buf = s.temp.bufArray[:b.outPos] - b.out = s.out - b.outPos = s.outPos - if s.ret != xzOK && s.ret != xzStreamEnd { - return s.ret - } - bcjApply(s, s.temp.buf, &s.temp.filtered) - /* - * If the next filter returned xzStreamEnd, we mark that - * everything is filtered, since the last unfiltered bytes - * of the stream are meant to be left as is. - */ - if s.ret == xzStreamEnd { - s.temp.filtered = len(s.temp.buf) - } - bcjFlush(s, b) - if s.temp.filtered > 0 { - return xzOK - } - } - return s.ret -} - -/* - * Allocate memory for BCJ decoders. xzDecBCJReset must be used before - * calling xzDecBCJRun. - */ -func xzDecBCJCreate() *xzDecBCJ { - return new(xzDecBCJ) -} - -/* - * Decode the Filter ID of a BCJ filter and check the start offset is - * valid. Returns xzOK if the given Filter ID and offset is - * supported. Otherwise xzOptionsError is returned. - */ -func xzDecBCJReset(s *xzDecBCJ, id xzFilterID, offset int) xzRet { - switch id { - case idBCJX86: - case idBCJPowerPC: - case idBCJIA64: - case idBCJARM: - case idBCJARMThumb: - case idBCJSPARC: - default: - /* Unsupported Filter ID */ - return xzOptionsError - } - // check offset is a multiple of alignment - switch id { - case idBCJPowerPC, idBCJARM, idBCJSPARC: - if offset%4 != 0 { - return xzOptionsError - } - case idBCJIA64: - if offset%16 != 0 { - return xzOptionsError - } - case idBCJARMThumb: - if offset%2 != 0 { - return xzOptionsError - } - } - s.typ = id - s.ret = xzOK - s.pos = offset - s.x86PrevMask = 0 - s.temp.filtered = 0 - s.temp.buf = nil - return xzOK -} diff --git a/backend/vendor/github.com/xi2/xz/dec_delta.go b/backend/vendor/github.com/xi2/xz/dec_delta.go deleted file mode 100644 index 19df5908..00000000 --- a/backend/vendor/github.com/xi2/xz/dec_delta.go +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Delta decoder - * - * Author: Lasse Collin - * - * Translation to Go: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -type xzDecDelta struct { - delta [256]byte - pos byte - distance int // in range [1, 256] -} - -/* - * Decode raw stream which has a delta filter as the first filter. - */ -func xzDecDeltaRun(s *xzDecDelta, b *xzBuf, chain func(*xzBuf) xzRet) xzRet { - outStart := b.outPos - ret := chain(b) - for i := outStart; i < b.outPos; i++ { - tmp := b.out[i] + s.delta[byte(s.distance+int(s.pos))] - s.delta[s.pos] = tmp - b.out[i] = tmp - s.pos-- - } - return ret -} - -/* - * Allocate memory for a delta decoder. xzDecDeltaReset must be used - * before calling xzDecDeltaRun. - */ -func xzDecDeltaCreate() *xzDecDelta { - return new(xzDecDelta) -} - -/* - * Returns xzOK if the given distance is valid. Otherwise - * xzOptionsError is returned. - */ -func xzDecDeltaReset(s *xzDecDelta, distance int) xzRet { - if distance < 1 || distance > 256 { - return xzOptionsError - } - s.delta = [256]byte{} - s.pos = 0 - s.distance = distance - return xzOK -} diff --git a/backend/vendor/github.com/xi2/xz/dec_lzma2.go b/backend/vendor/github.com/xi2/xz/dec_lzma2.go deleted file mode 100644 index fa42e471..00000000 --- a/backend/vendor/github.com/xi2/xz/dec_lzma2.go +++ /dev/null @@ -1,1235 +0,0 @@ -/* - * LZMA2 decoder - * - * Authors: Lasse Collin - * Igor Pavlov - * - * Translation to Go: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -/* from linux/lib/xz/xz_lzma2.h ***************************************/ - -/* Range coder constants */ -const ( - rcShiftBits = 8 - rcTopBits = 24 - rcTopValue = 1 << rcTopBits - rcBitModelTotalBits = 11 - rcBitModelTotal = 1 << rcBitModelTotalBits - rcMoveBits = 5 -) - -/* - * Maximum number of position states. A position state is the lowest pb - * number of bits of the current uncompressed offset. In some places there - * are different sets of probabilities for different position states. - */ -const posStatesMax = 1 << 4 - -/* - * lzmaState is used to track which LZMA symbols have occurred most recently - * and in which order. This information is used to predict the next symbol. - * - * Symbols: - * - Literal: One 8-bit byte - * - Match: Repeat a chunk of data at some distance - * - Long repeat: Multi-byte match at a recently seen distance - * - Short repeat: One-byte repeat at a recently seen distance - * - * The symbol names are in from STATE-oldest-older-previous. REP means - * either short or long repeated match, and NONLIT means any non-literal. - */ -type lzmaState int - -const ( - stateLitLit lzmaState = iota - stateMatchLitLit - stateRepLitLit - stateShortrepLitLit - stateMatchLit - stateRepList - stateShortrepLit - stateLitMatch - stateLitLongrep - stateLitShortrep - stateNonlitMatch - stateNonlitRep -) - -/* Total number of states */ -const states = 12 - -/* The lowest 7 states indicate that the previous state was a literal. */ -const litStates = 7 - -/* Indicate that the latest symbol was a literal. */ -func lzmaStateLiteral(state *lzmaState) { - switch { - case *state <= stateShortrepLitLit: - *state = stateLitLit - case *state <= stateLitShortrep: - *state -= 3 - default: - *state -= 6 - } -} - -/* Indicate that the latest symbol was a match. */ -func lzmaStateMatch(state *lzmaState) { - if *state < litStates { - *state = stateLitMatch - } else { - *state = stateNonlitMatch - } -} - -/* Indicate that the latest state was a long repeated match. */ -func lzmaStateLongRep(state *lzmaState) { - if *state < litStates { - *state = stateLitLongrep - } else { - *state = stateNonlitRep - } -} - -/* Indicate that the latest symbol was a short match. */ -func lzmaStateShortRep(state *lzmaState) { - if *state < litStates { - *state = stateLitShortrep - } else { - *state = stateNonlitRep - } -} - -/* Test if the previous symbol was a literal. */ -func lzmaStateIsLiteral(state lzmaState) bool { - return state < litStates -} - -/* Each literal coder is divided in three sections: - * - 0x001-0x0FF: Without match byte - * - 0x101-0x1FF: With match byte; match bit is 0 - * - 0x201-0x2FF: With match byte; match bit is 1 - * - * Match byte is used when the previous LZMA symbol was something else than - * a literal (that is, it was some kind of match). - */ -const literalCoderSize = 0x300 - -/* Maximum number of literal coders */ -const literalCodersMax = 1 << 4 - -/* Minimum length of a match is two bytes. */ -const matchLenMin = 2 - -/* Match length is encoded with 4, 5, or 10 bits. - * - * Length Bits - * 2-9 4 = Choice=0 + 3 bits - * 10-17 5 = Choice=1 + Choice2=0 + 3 bits - * 18-273 10 = Choice=1 + Choice2=1 + 8 bits - */ -const ( - lenLowBits = 3 - lenLowSymbols = 1 << lenLowBits - lenMidBits = 3 - lenMidSymbols = 1 << lenMidBits - lenHighBits = 8 - lenHighSymbols = 1 << lenHighBits -) - -/* - * Different sets of probabilities are used for match distances that have - * very short match length: Lengths of 2, 3, and 4 bytes have a separate - * set of probabilities for each length. The matches with longer length - * use a shared set of probabilities. - */ -const distStates = 4 - -/* - * Get the index of the appropriate probability array for decoding - * the distance slot. - */ -func lzmaGetDistState(len uint32) uint32 { - if len < distStates+matchLenMin { - return len - matchLenMin - } else { - return distStates - 1 - } -} - -/* - * The highest two bits of a 32-bit match distance are encoded using six bits. - * This six-bit value is called a distance slot. This way encoding a 32-bit - * value takes 6-36 bits, larger values taking more bits. - */ -const ( - distSlotBits = 6 - distSlots = 1 << distSlotBits -) - -/* Match distances up to 127 are fully encoded using probabilities. Since - * the highest two bits (distance slot) are always encoded using six bits, - * the distances 0-3 don't need any additional bits to encode, since the - * distance slot itself is the same as the actual distance. distModelStart - * indicates the first distance slot where at least one additional bit is - * needed. - */ -const distModelStart = 4 - -/* - * Match distances greater than 127 are encoded in three pieces: - * - distance slot: the highest two bits - * - direct bits: 2-26 bits below the highest two bits - * - alignment bits: four lowest bits - * - * Direct bits don't use any probabilities. - * - * The distance slot value of 14 is for distances 128-191. - */ -const distModelEnd = 14 - -/* Distance slots that indicate a distance <= 127. */ -const ( - fullDistancesBits = distModelEnd / 2 - fullDistances = 1 << fullDistancesBits -) - -/* - * For match distances greater than 127, only the highest two bits and the - * lowest four bits (alignment) is encoded using probabilities. - */ -const ( - alignBits = 4 - alignSize = 1 << alignBits -) - -/* from linux/lib/xz/xz_dec_lzma2.c ***********************************/ - -/* - * Range decoder initialization eats the first five bytes of each LZMA chunk. - */ -const rcInitBytes = 5 - -/* - * Minimum number of usable input buffer to safely decode one LZMA symbol. - * The worst case is that we decode 22 bits using probabilities and 26 - * direct bits. This may decode at maximum of 20 bytes of input. However, - * lzmaMain does an extra normalization before returning, thus we - * need to put 21 here. - */ -const lzmaInRequired = 21 - -/* - * Dictionary (history buffer) - * - * These are always true: - * start <= pos <= full <= end - * pos <= limit <= end - * end == size - * size <= sizeMax - * len(buf) <= size - */ -type dictionary struct { - /* The history buffer */ - buf []byte - /* Old position in buf (before decoding more data) */ - start uint32 - /* Position in buf */ - pos uint32 - /* - * How full dictionary is. This is used to detect corrupt input that - * would read beyond the beginning of the uncompressed stream. - */ - full uint32 - /* Write limit; we don't write to buf[limit] or later bytes. */ - limit uint32 - /* - * End of the dictionary buffer. This is the same as the - * dictionary size. - */ - end uint32 - /* - * Size of the dictionary as specified in Block Header. This is used - * together with "full" to detect corrupt input that would make us - * read beyond the beginning of the uncompressed stream. - */ - size uint32 - /* Maximum allowed dictionary size. */ - sizeMax uint32 -} - -/* Range decoder */ -type rcDec struct { - rnge uint32 - code uint32 - /* - * Number of initializing bytes remaining to be read - * by rcReadInit. - */ - initBytesLeft uint32 - /* - * Buffer from which we read our input. It can be either - * temp.buf or the caller-provided input buffer. - */ - in []byte - inPos int - inLimit int -} - -/* Probabilities for a length decoder. */ -type lzmaLenDec struct { - /* Probability of match length being at least 10 */ - choice uint16 - /* Probability of match length being at least 18 */ - choice2 uint16 - /* Probabilities for match lengths 2-9 */ - low [posStatesMax][lenLowSymbols]uint16 - /* Probabilities for match lengths 10-17 */ - mid [posStatesMax][lenMidSymbols]uint16 - /* Probabilities for match lengths 18-273 */ - high [lenHighSymbols]uint16 -} - -type lzmaDec struct { - /* Distances of latest four matches */ - rep0 uint32 - rep1 uint32 - rep2 uint32 - rep3 uint32 - /* Types of the most recently seen LZMA symbols */ - state lzmaState - /* - * Length of a match. This is updated so that dictRepeat can - * be called again to finish repeating the whole match. - */ - len uint32 - /* - * LZMA properties or related bit masks (number of literal - * context bits, a mask derived from the number of literal - * position bits, and a mask derived from the number - * position bits) - */ - lc uint32 - literalPosMask uint32 - posMask uint32 - /* If 1, it's a match. Otherwise it's a single 8-bit literal. */ - isMatch [states][posStatesMax]uint16 - /* If 1, it's a repeated match. The distance is one of rep0 .. rep3. */ - isRep [states]uint16 - /* - * If 0, distance of a repeated match is rep0. - * Otherwise check is_rep1. - */ - isRep0 [states]uint16 - /* - * If 0, distance of a repeated match is rep1. - * Otherwise check is_rep2. - */ - isRep1 [states]uint16 - /* If 0, distance of a repeated match is rep2. Otherwise it is rep3. */ - isRep2 [states]uint16 - /* - * If 1, the repeated match has length of one byte. Otherwise - * the length is decoded from rep_len_decoder. - */ - isRep0Long [states][posStatesMax]uint16 - /* - * Probability tree for the highest two bits of the match - * distance. There is a separate probability tree for match - * lengths of 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273]. - */ - distSlot [distStates][distSlots]uint16 - /* - * Probility trees for additional bits for match distance - * when the distance is in the range [4, 127]. - */ - distSpecial [fullDistances - distModelEnd]uint16 - /* - * Probability tree for the lowest four bits of a match - * distance that is equal to or greater than 128. - */ - distAlign [alignSize]uint16 - /* Length of a normal match */ - matchLenDec lzmaLenDec - /* Length of a repeated match */ - repLenDec lzmaLenDec - /* Probabilities of literals */ - literal [literalCodersMax][literalCoderSize]uint16 -} - -// type of lzma2Dec.sequence -type lzma2Seq int - -const ( - seqControl lzma2Seq = iota - seqUncompressed1 - seqUncompressed2 - seqCompressed0 - seqCompressed1 - seqProperties - seqLZMAPrepare - seqLZMARun - seqCopy -) - -type lzma2Dec struct { - /* Position in xzDecLZMA2Run. */ - sequence lzma2Seq - /* Next position after decoding the compressed size of the chunk. */ - nextSequence lzma2Seq - /* Uncompressed size of LZMA chunk (2 MiB at maximum) */ - uncompressed int - /* - * Compressed size of LZMA chunk or compressed/uncompressed - * size of uncompressed chunk (64 KiB at maximum) - */ - compressed int - /* - * True if dictionary reset is needed. This is false before - * the first chunk (LZMA or uncompressed). - */ - needDictReset bool - /* - * True if new LZMA properties are needed. This is false - * before the first LZMA chunk. - */ - needProps bool -} - -type xzDecLZMA2 struct { - /* - * The order below is important on x86 to reduce code size and - * it shouldn't hurt on other platforms. Everything up to and - * including lzma.pos_mask are in the first 128 bytes on x86-32, - * which allows using smaller instructions to access those - * variables. On x86-64, fewer variables fit into the first 128 - * bytes, but this is still the best order without sacrificing - * the readability by splitting the structures. - */ - rc rcDec - dict dictionary - lzma2 lzma2Dec - lzma lzmaDec - /* - * Temporary buffer which holds small number of input bytes between - * decoder calls. See lzma2LZMA for details. - */ - temp struct { - buf []byte // slice buf will be backed by bufArray - bufArray [3 * lzmaInRequired]byte - } -} - -/************** - * Dictionary * - **************/ - -/* - * Reset the dictionary state. When in single-call mode, set up the beginning - * of the dictionary to point to the actual output buffer. - */ -func dictReset(dict *dictionary, b *xzBuf) { - dict.start = 0 - dict.pos = 0 - dict.limit = 0 - dict.full = 0 -} - -/* Set dictionary write limit */ -func dictLimit(dict *dictionary, outMax int) { - if dict.end-dict.pos <= uint32(outMax) { - dict.limit = dict.end - } else { - dict.limit = dict.pos + uint32(outMax) - } -} - -/* Return true if at least one byte can be written into the dictionary. */ -func dictHasSpace(dict *dictionary) bool { - return dict.pos < dict.limit -} - -/* - * Get a byte from the dictionary at the given distance. The distance is - * assumed to valid, or as a special case, zero when the dictionary is - * still empty. This special case is needed for single-call decoding to - * avoid writing a '\x00' to the end of the destination buffer. - */ -func dictGet(dict *dictionary, dist uint32) uint32 { - var offset uint32 = dict.pos - dist - 1 - if dist >= dict.pos { - offset += dict.end - } - if dict.full > 0 { - return uint32(dict.buf[offset]) - } - return 0 -} - -/* - * Put one byte into the dictionary. It is assumed that there is space for it. - */ -func dictPut(dict *dictionary, byte byte) { - dict.buf[dict.pos] = byte - dict.pos++ - if dict.full < dict.pos { - dict.full = dict.pos - } -} - -/* - * Repeat given number of bytes from the given distance. If the distance is - * invalid, false is returned. On success, true is returned and *len is - * updated to indicate how many bytes were left to be repeated. - */ -func dictRepeat(dict *dictionary, len *uint32, dist uint32) bool { - var back uint32 - var left uint32 - if dist >= dict.full || dist >= dict.size { - return false - } - left = dict.limit - dict.pos - if left > *len { - left = *len - } - *len -= left - back = dict.pos - dist - 1 - if dist >= dict.pos { - back += dict.end - } - for { - dict.buf[dict.pos] = dict.buf[back] - dict.pos++ - back++ - if back == dict.end { - back = 0 - } - left-- - if !(left > 0) { - break - } - } - if dict.full < dict.pos { - dict.full = dict.pos - } - return true -} - -/* Copy uncompressed data as is from input to dictionary and output buffers. */ -func dictUncompressed(dict *dictionary, b *xzBuf, left *int) { - var copySize int - for *left > 0 && b.inPos < len(b.in) && b.outPos < len(b.out) { - copySize = len(b.in) - b.inPos - if copySize > len(b.out)-b.outPos { - copySize = len(b.out) - b.outPos - } - if copySize > int(dict.end-dict.pos) { - copySize = int(dict.end - dict.pos) - } - if copySize > *left { - copySize = *left - } - *left -= copySize - copy(dict.buf[dict.pos:], b.in[b.inPos:b.inPos+copySize]) - dict.pos += uint32(copySize) - if dict.full < dict.pos { - dict.full = dict.pos - } - if dict.pos == dict.end { - dict.pos = 0 - } - copy(b.out[b.outPos:], b.in[b.inPos:b.inPos+copySize]) - dict.start = dict.pos - b.outPos += copySize - b.inPos += copySize - } -} - -/* - * Flush pending data from dictionary to b.out. It is assumed that there is - * enough space in b.out. This is guaranteed because caller uses dictLimit - * before decoding data into the dictionary. - */ -func dictFlush(dict *dictionary, b *xzBuf) int { - var copySize int = int(dict.pos - dict.start) - if dict.pos == dict.end { - dict.pos = 0 - } - copy(b.out[b.outPos:], dict.buf[dict.start:dict.start+uint32(copySize)]) - dict.start = dict.pos - b.outPos += copySize - return copySize -} - -/***************** - * Range decoder * - *****************/ - -/* Reset the range decoder. */ -func rcReset(rc *rcDec) { - rc.rnge = ^uint32(0) - rc.code = 0 - rc.initBytesLeft = rcInitBytes -} - -/* - * Read the first five initial bytes into rc->code if they haven't been - * read already. (Yes, the first byte gets completely ignored.) - */ -func rcReadInit(rc *rcDec, b *xzBuf) bool { - for rc.initBytesLeft > 0 { - if b.inPos == len(b.in) { - return false - } - rc.code = rc.code<<8 + uint32(b.in[b.inPos]) - b.inPos++ - rc.initBytesLeft-- - } - return true -} - -/* Return true if there may not be enough input for the next decoding loop. */ -func rcLimitExceeded(rc *rcDec) bool { - return rc.inPos > rc.inLimit -} - -/* - * Return true if it is possible (from point of view of range decoder) that - * we have reached the end of the LZMA chunk. - */ -func rcIsFinished(rc *rcDec) bool { - return rc.code == 0 -} - -/* Read the next input byte if needed. */ -func rcNormalize(rc *rcDec) { - if rc.rnge < rcTopValue { - rc.rnge <<= rcShiftBits - rc.code = rc.code<> rcBitModelTotalBits) * uint32(*prob) - if rc.code < bound { - rc.rnge = bound - *prob += (rcBitModelTotal - *prob) >> rcMoveBits - bit = false - } else { - rc.rnge -= bound - rc.code -= bound - *prob -= *prob >> rcMoveBits - bit = true - } - return bit -} - -/* Decode a bittree starting from the most significant bit. */ -func rcBittree(rc *rcDec, probs []uint16, limit uint32) uint32 { - var symbol uint32 = 1 - for { - if rcBit(rc, &probs[symbol-1]) { - symbol = symbol<<1 + 1 - } else { - symbol <<= 1 - } - if !(symbol < limit) { - break - } - } - return symbol -} - -/* Decode a bittree starting from the least significant bit. */ -func rcBittreeReverse(rc *rcDec, probs []uint16, dest *uint32, limit uint32) { - var symbol uint32 = 1 - var i uint32 = 0 - for { - if rcBit(rc, &probs[symbol-1]) { - symbol = symbol<<1 + 1 - *dest += 1 << i - } else { - symbol <<= 1 - } - i++ - if !(i < limit) { - break - } - } -} - -/* Decode direct bits (fixed fifty-fifty probability) */ -func rcDirect(rc *rcDec, dest *uint32, limit uint32) { - var mask uint32 - for { - rcNormalize(rc) - rc.rnge >>= 1 - rc.code -= rc.rnge - mask = 0 - rc.code>>31 - rc.code += rc.rnge & mask - *dest = *dest<<1 + mask + 1 - limit-- - if !(limit > 0) { - break - } - } -} - -/******** - * LZMA * - ********/ - -/* Get pointer to literal coder probability array. */ -func lzmaLiteralProbs(s *xzDecLZMA2) []uint16 { - var prevByte uint32 = dictGet(&s.dict, 0) - var low uint32 = prevByte >> (8 - s.lzma.lc) - var high uint32 = (s.dict.pos & s.lzma.literalPosMask) << s.lzma.lc - return s.lzma.literal[low+high][:] -} - -/* Decode a literal (one 8-bit byte) */ -func lzmaLiteral(s *xzDecLZMA2) { - var probs []uint16 - var symbol uint32 - var matchByte uint32 - var matchBit uint32 - var offset uint32 - var i uint32 - probs = lzmaLiteralProbs(s) - if lzmaStateIsLiteral(s.lzma.state) { - symbol = rcBittree(&s.rc, probs[1:], 0x100) - } else { - symbol = 1 - matchByte = dictGet(&s.dict, s.lzma.rep0) << 1 - offset = 0x100 - for { - matchBit = matchByte & offset - matchByte <<= 1 - i = offset + matchBit + symbol - if rcBit(&s.rc, &probs[i]) { - symbol = symbol<<1 + 1 - offset &= matchBit - } else { - symbol <<= 1 - offset &= ^matchBit - } - if !(symbol < 0x100) { - break - } - } - } - dictPut(&s.dict, byte(symbol)) - lzmaStateLiteral(&s.lzma.state) -} - -/* Decode the length of the match into s.lzma.len. */ -func lzmaLen(s *xzDecLZMA2, l *lzmaLenDec, posState uint32) { - var probs []uint16 - var limit uint32 - switch { - case !rcBit(&s.rc, &l.choice): - probs = l.low[posState][:] - limit = lenLowSymbols - s.lzma.len = matchLenMin - case !rcBit(&s.rc, &l.choice2): - probs = l.mid[posState][:] - limit = lenMidSymbols - s.lzma.len = matchLenMin + lenLowSymbols - default: - probs = l.high[:] - limit = lenHighSymbols - s.lzma.len = matchLenMin + lenLowSymbols + lenMidSymbols - } - s.lzma.len += rcBittree(&s.rc, probs[1:], limit) - limit -} - -/* Decode a match. The distance will be stored in s.lzma.rep0. */ -func lzmaMatch(s *xzDecLZMA2, posState uint32) { - var probs []uint16 - var distSlot uint32 - var limit uint32 - lzmaStateMatch(&s.lzma.state) - s.lzma.rep3 = s.lzma.rep2 - s.lzma.rep2 = s.lzma.rep1 - s.lzma.rep1 = s.lzma.rep0 - lzmaLen(s, &s.lzma.matchLenDec, posState) - probs = s.lzma.distSlot[lzmaGetDistState(s.lzma.len)][:] - distSlot = rcBittree(&s.rc, probs[1:], distSlots) - distSlots - if distSlot < distModelStart { - s.lzma.rep0 = distSlot - } else { - limit = distSlot>>1 - 1 - s.lzma.rep0 = 2 + distSlot&1 - if distSlot < distModelEnd { - s.lzma.rep0 <<= limit - probs = s.lzma.distSpecial[s.lzma.rep0-distSlot:] - rcBittreeReverse(&s.rc, probs, &s.lzma.rep0, limit) - } else { - rcDirect(&s.rc, &s.lzma.rep0, limit-alignBits) - s.lzma.rep0 <<= alignBits - rcBittreeReverse( - &s.rc, s.lzma.distAlign[1:], &s.lzma.rep0, alignBits) - } - } -} - -/* - * Decode a repeated match. The distance is one of the four most recently - * seen matches. The distance will be stored in s.lzma.rep0. - */ -func lzmaRepMatch(s *xzDecLZMA2, posState uint32) { - var tmp uint32 - if !rcBit(&s.rc, &s.lzma.isRep0[s.lzma.state]) { - if !rcBit(&s.rc, &s.lzma.isRep0Long[s.lzma.state][posState]) { - lzmaStateShortRep(&s.lzma.state) - s.lzma.len = 1 - return - } - } else { - if !rcBit(&s.rc, &s.lzma.isRep1[s.lzma.state]) { - tmp = s.lzma.rep1 - } else { - if !rcBit(&s.rc, &s.lzma.isRep2[s.lzma.state]) { - tmp = s.lzma.rep2 - } else { - tmp = s.lzma.rep3 - s.lzma.rep3 = s.lzma.rep2 - } - s.lzma.rep2 = s.lzma.rep1 - } - s.lzma.rep1 = s.lzma.rep0 - s.lzma.rep0 = tmp - } - lzmaStateLongRep(&s.lzma.state) - lzmaLen(s, &s.lzma.repLenDec, posState) -} - -/* LZMA decoder core */ -func lzmaMain(s *xzDecLZMA2) bool { - var posState uint32 - /* - * If the dictionary was reached during the previous call, try to - * finish the possibly pending repeat in the dictionary. - */ - if dictHasSpace(&s.dict) && s.lzma.len > 0 { - dictRepeat(&s.dict, &s.lzma.len, s.lzma.rep0) - } - /* - * Decode more LZMA symbols. One iteration may consume up to - * lzmaInRequired - 1 bytes. - */ - for dictHasSpace(&s.dict) && !rcLimitExceeded(&s.rc) { - posState = s.dict.pos & s.lzma.posMask - if !rcBit(&s.rc, &s.lzma.isMatch[s.lzma.state][posState]) { - lzmaLiteral(s) - } else { - if rcBit(&s.rc, &s.lzma.isRep[s.lzma.state]) { - lzmaRepMatch(s, posState) - } else { - lzmaMatch(s, posState) - } - if !dictRepeat(&s.dict, &s.lzma.len, s.lzma.rep0) { - return false - } - } - } - /* - * Having the range decoder always normalized when we are outside - * this function makes it easier to correctly handle end of the chunk. - */ - rcNormalize(&s.rc) - return true -} - -/* - * Reset the LZMA decoder and range decoder state. Dictionary is not reset - * here, because LZMA state may be reset without resetting the dictionary. - */ -func lzmaReset(s *xzDecLZMA2) { - s.lzma.state = stateLitLit - s.lzma.rep0 = 0 - s.lzma.rep1 = 0 - s.lzma.rep2 = 0 - s.lzma.rep3 = 0 - /* All probabilities are initialized to the same value, v */ - v := uint16(rcBitModelTotal / 2) - s.lzma.matchLenDec.choice = v - s.lzma.matchLenDec.choice2 = v - s.lzma.repLenDec.choice = v - s.lzma.repLenDec.choice2 = v - for _, m := range [][]uint16{ - s.lzma.isRep[:], s.lzma.isRep0[:], s.lzma.isRep1[:], - s.lzma.isRep2[:], s.lzma.distSpecial[:], s.lzma.distAlign[:], - s.lzma.matchLenDec.high[:], s.lzma.repLenDec.high[:], - } { - for j := range m { - m[j] = v - } - } - for i := range s.lzma.isMatch { - for j := range s.lzma.isMatch[i] { - s.lzma.isMatch[i][j] = v - } - } - for i := range s.lzma.isRep0Long { - for j := range s.lzma.isRep0Long[i] { - s.lzma.isRep0Long[i][j] = v - } - } - for i := range s.lzma.distSlot { - for j := range s.lzma.distSlot[i] { - s.lzma.distSlot[i][j] = v - } - } - for i := range s.lzma.literal { - for j := range s.lzma.literal[i] { - s.lzma.literal[i][j] = v - } - } - for i := range s.lzma.matchLenDec.low { - for j := range s.lzma.matchLenDec.low[i] { - s.lzma.matchLenDec.low[i][j] = v - } - } - for i := range s.lzma.matchLenDec.mid { - for j := range s.lzma.matchLenDec.mid[i] { - s.lzma.matchLenDec.mid[i][j] = v - } - } - for i := range s.lzma.repLenDec.low { - for j := range s.lzma.repLenDec.low[i] { - s.lzma.repLenDec.low[i][j] = v - } - } - for i := range s.lzma.repLenDec.mid { - for j := range s.lzma.repLenDec.mid[i] { - s.lzma.repLenDec.mid[i][j] = v - } - } - rcReset(&s.rc) -} - -/* - * Decode and validate LZMA properties (lc/lp/pb) and calculate the bit masks - * from the decoded lp and pb values. On success, the LZMA decoder state is - * reset and true is returned. - */ -func lzmaProps(s *xzDecLZMA2, props byte) bool { - if props > (4*5+4)*9+8 { - return false - } - s.lzma.posMask = 0 - for props >= 9*5 { - props -= 9 * 5 - s.lzma.posMask++ - } - s.lzma.posMask = 1<= 9 { - props -= 9 - s.lzma.literalPosMask++ - } - s.lzma.lc = uint32(props) - if s.lzma.lc+s.lzma.literalPosMask > 4 { - return false - } - s.lzma.literalPosMask = 1< 0 || s.lzma2.compressed == 0 { - tmp = 2*lzmaInRequired - len(s.temp.buf) - if tmp > s.lzma2.compressed-len(s.temp.buf) { - tmp = s.lzma2.compressed - len(s.temp.buf) - } - if tmp > inAvail { - tmp = inAvail - } - copy(s.temp.bufArray[len(s.temp.buf):], b.in[b.inPos:b.inPos+tmp]) - switch { - case len(s.temp.buf)+tmp == s.lzma2.compressed: - for i := len(s.temp.buf) + tmp; i < len(s.temp.bufArray); i++ { - s.temp.bufArray[i] = 0 - } - s.rc.inLimit = len(s.temp.buf) + tmp - case len(s.temp.buf)+tmp < lzmaInRequired: - s.temp.buf = s.temp.bufArray[:len(s.temp.buf)+tmp] - b.inPos += tmp - return true - default: - s.rc.inLimit = len(s.temp.buf) + tmp - lzmaInRequired - } - s.rc.in = s.temp.bufArray[:] - s.rc.inPos = 0 - if !lzmaMain(s) || s.rc.inPos > len(s.temp.buf)+tmp { - return false - } - s.lzma2.compressed -= s.rc.inPos - if s.rc.inPos < len(s.temp.buf) { - copy(s.temp.buf, s.temp.buf[s.rc.inPos:]) - s.temp.buf = s.temp.buf[:len(s.temp.buf)-s.rc.inPos] - return true - } - b.inPos += s.rc.inPos - len(s.temp.buf) - s.temp.buf = nil - } - inAvail = len(b.in) - b.inPos - if inAvail >= lzmaInRequired { - s.rc.in = b.in - s.rc.inPos = b.inPos - if inAvail >= s.lzma2.compressed+lzmaInRequired { - s.rc.inLimit = b.inPos + s.lzma2.compressed - } else { - s.rc.inLimit = len(b.in) - lzmaInRequired - } - if !lzmaMain(s) { - return false - } - inAvail = s.rc.inPos - b.inPos - if inAvail > s.lzma2.compressed { - return false - } - s.lzma2.compressed -= inAvail - b.inPos = s.rc.inPos - } - inAvail = len(b.in) - b.inPos - if inAvail < lzmaInRequired { - if inAvail > s.lzma2.compressed { - inAvail = s.lzma2.compressed - } - s.temp.buf = s.temp.bufArray[:inAvail] - copy(s.temp.buf, b.in[b.inPos:]) - b.inPos += inAvail - } - return true -} - -/* - * Take care of the LZMA2 control layer, and forward the job of actual LZMA - * decoding or copying of uncompressed chunks to other functions. - */ -func xzDecLZMA2Run(s *xzDecLZMA2, b *xzBuf) xzRet { - var tmp int - for b.inPos < len(b.in) || s.lzma2.sequence == seqLZMARun { - switch s.lzma2.sequence { - case seqControl: - /* - * LZMA2 control byte - * - * Exact values: - * 0x00 End marker - * 0x01 Dictionary reset followed by - * an uncompressed chunk - * 0x02 Uncompressed chunk (no dictionary reset) - * - * Highest three bits (s.control & 0xE0): - * 0xE0 Dictionary reset, new properties and state - * reset, followed by LZMA compressed chunk - * 0xC0 New properties and state reset, followed - * by LZMA compressed chunk (no dictionary - * reset) - * 0xA0 State reset using old properties, - * followed by LZMA compressed chunk (no - * dictionary reset) - * 0x80 LZMA chunk (no dictionary or state reset) - * - * For LZMA compressed chunks, the lowest five bits - * (s.control & 1F) are the highest bits of the - * uncompressed size (bits 16-20). - * - * A new LZMA2 stream must begin with a dictionary - * reset. The first LZMA chunk must set new - * properties and reset the LZMA state. - * - * Values that don't match anything described above - * are invalid and we return xzDataError. - */ - tmp = int(b.in[b.inPos]) - b.inPos++ - if tmp == 0x00 { - return xzStreamEnd - } - switch { - case tmp >= 0xe0 || tmp == 0x01: - s.lzma2.needProps = true - s.lzma2.needDictReset = false - dictReset(&s.dict, b) - case s.lzma2.needDictReset: - return xzDataError - } - if tmp >= 0x80 { - s.lzma2.uncompressed = (tmp & 0x1f) << 16 - s.lzma2.sequence = seqUncompressed1 - switch { - case tmp >= 0xc0: - /* - * When there are new properties, - * state reset is done at - * seqProperties. - */ - s.lzma2.needProps = false - s.lzma2.nextSequence = seqProperties - case s.lzma2.needProps: - return xzDataError - default: - s.lzma2.nextSequence = seqLZMAPrepare - if tmp >= 0xa0 { - lzmaReset(s) - } - } - } else { - if tmp > 0x02 { - return xzDataError - } - s.lzma2.sequence = seqCompressed0 - s.lzma2.nextSequence = seqCopy - } - case seqUncompressed1: - s.lzma2.uncompressed += int(b.in[b.inPos]) << 8 - b.inPos++ - s.lzma2.sequence = seqUncompressed2 - case seqUncompressed2: - s.lzma2.uncompressed += int(b.in[b.inPos]) + 1 - b.inPos++ - s.lzma2.sequence = seqCompressed0 - case seqCompressed0: - s.lzma2.compressed += int(b.in[b.inPos]) << 8 - b.inPos++ - s.lzma2.sequence = seqCompressed1 - case seqCompressed1: - s.lzma2.compressed += int(b.in[b.inPos]) + 1 - b.inPos++ - s.lzma2.sequence = s.lzma2.nextSequence - case seqProperties: - if !lzmaProps(s, b.in[b.inPos]) { - return xzDataError - } - b.inPos++ - s.lzma2.sequence = seqLZMAPrepare - fallthrough - case seqLZMAPrepare: - if s.lzma2.compressed < rcInitBytes { - return xzDataError - } - if !rcReadInit(&s.rc, b) { - return xzOK - } - s.lzma2.compressed -= rcInitBytes - s.lzma2.sequence = seqLZMARun - fallthrough - case seqLZMARun: - /* - * Set dictionary limit to indicate how much we want - * to be encoded at maximum. Decode new data into the - * dictionary. Flush the new data from dictionary to - * b.out. Check if we finished decoding this chunk. - * In case the dictionary got full but we didn't fill - * the output buffer yet, we may run this loop - * multiple times without changing s.lzma2.sequence. - */ - outMax := len(b.out) - b.outPos - if outMax > s.lzma2.uncompressed { - outMax = s.lzma2.uncompressed - } - dictLimit(&s.dict, outMax) - if !lzma2LZMA(s, b) { - return xzDataError - } - s.lzma2.uncompressed -= dictFlush(&s.dict, b) - switch { - case s.lzma2.uncompressed == 0: - if s.lzma2.compressed > 0 || s.lzma.len > 0 || - !rcIsFinished(&s.rc) { - return xzDataError - } - rcReset(&s.rc) - s.lzma2.sequence = seqControl - case b.outPos == len(b.out) || - b.inPos == len(b.in) && - len(s.temp.buf) < s.lzma2.compressed: - return xzOK - } - case seqCopy: - dictUncompressed(&s.dict, b, &s.lzma2.compressed) - if s.lzma2.compressed > 0 { - return xzOK - } - s.lzma2.sequence = seqControl - } - } - return xzOK -} - -/* - * Allocate memory for LZMA2 decoder. xzDecLZMA2Reset must be used - * before calling xzDecLZMA2Run. - */ -func xzDecLZMA2Create(dictMax uint32) *xzDecLZMA2 { - s := new(xzDecLZMA2) - s.dict.sizeMax = dictMax - return s -} - -/* - * Decode the LZMA2 properties (one byte) and reset the decoder. Return - * xzOK on success, xzMemlimitError if the preallocated dictionary is not - * big enough, and xzOptionsError if props indicates something that this - * decoder doesn't support. - */ -func xzDecLZMA2Reset(s *xzDecLZMA2, props byte) xzRet { - if props > 40 { - return xzOptionsError // Bigger than 4 GiB - } - if props == 40 { - s.dict.size = ^uint32(0) - } else { - s.dict.size = uint32(2 + props&1) - s.dict.size <<= props>>1 + 11 - } - if s.dict.size > s.dict.sizeMax { - return xzMemlimitError - } - s.dict.end = s.dict.size - if len(s.dict.buf) < int(s.dict.size) { - s.dict.buf = make([]byte, s.dict.size) - } - s.lzma.len = 0 - s.lzma2.sequence = seqControl - s.lzma2.compressed = 0 - s.lzma2.uncompressed = 0 - s.lzma2.needDictReset = true - s.temp.buf = nil - return xzOK -} diff --git a/backend/vendor/github.com/xi2/xz/dec_stream.go b/backend/vendor/github.com/xi2/xz/dec_stream.go deleted file mode 100644 index 9381a3c8..00000000 --- a/backend/vendor/github.com/xi2/xz/dec_stream.go +++ /dev/null @@ -1,932 +0,0 @@ -/* - * .xz Stream decoder - * - * Author: Lasse Collin - * - * Translation to Go: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -import ( - "bytes" - "crypto/sha256" - "hash" - "hash/crc32" - "hash/crc64" -) - -/* from linux/lib/xz/xz_stream.h **************************************/ - -/* - * See the .xz file format specification at - * http://tukaani.org/xz/xz-file-format.txt - * to understand the container format. - */ -const ( - streamHeaderSize = 12 - headerMagic = "\xfd7zXZ\x00" - footerMagic = "YZ" -) - -/* - * Variable-length integer can hold a 63-bit unsigned integer or a special - * value indicating that the value is unknown. - */ -type vliType uint64 - -const ( - vliUnknown vliType = ^vliType(0) - /* Maximum encoded size of a VLI */ - vliBytesMax = 8 * 8 / 7 // (Sizeof(vliType) * 8 / 7) -) - -/* from linux/lib/xz/xz_dec_stream.c **********************************/ - -/* Hash used to validate the Index field */ -type xzDecHash struct { - unpadded vliType - uncompressed vliType - sha256 hash.Hash -} - -// type of xzDec.sequence -type xzDecSeq int - -const ( - seqStreamHeader xzDecSeq = iota - seqBlockStart - seqBlockHeader - seqBlockUncompress - seqBlockPadding - seqBlockCheck - seqIndex - seqIndexPadding - seqIndexCRC32 - seqStreamFooter -) - -// type of xzDec.index.sequence -type xzDecIndexSeq int - -const ( - seqIndexCount xzDecIndexSeq = iota - seqIndexUnpadded - seqIndexUncompressed -) - -/** - * xzDec - Opaque type to hold the XZ decoder state - */ -type xzDec struct { - /* Position in decMain */ - sequence xzDecSeq - /* Position in variable-length integers and Check fields */ - pos int - /* Variable-length integer decoded by decVLI */ - vli vliType - /* Saved inPos and outPos */ - inStart int - outStart int - /* CRC32 checksum hash used in Index */ - crc32 hash.Hash - /* Hashes used in Blocks */ - checkCRC32 hash.Hash - checkCRC64 hash.Hash - checkSHA256 hash.Hash - /* for checkTypes CRC32/CRC64/SHA256, check is one of the above 3 hashes */ - check hash.Hash - /* Embedded stream header struct containing CheckType */ - *Header - /* - * True if the next call to xzDecRun is allowed to return - * xzBufError. - */ - allowBufError bool - /* Information stored in Block Header */ - blockHeader struct { - /* - * Value stored in the Compressed Size field, or - * vliUnknown if Compressed Size is not present. - */ - compressed vliType - /* - * Value stored in the Uncompressed Size field, or - * vliUnknown if Uncompressed Size is not present. - */ - uncompressed vliType - /* Size of the Block Header field */ - size int - } - /* Information collected when decoding Blocks */ - block struct { - /* Observed compressed size of the current Block */ - compressed vliType - /* Observed uncompressed size of the current Block */ - uncompressed vliType - /* Number of Blocks decoded so far */ - count vliType - /* - * Hash calculated from the Block sizes. This is used to - * validate the Index field. - */ - hash xzDecHash - } - /* Variables needed when verifying the Index field */ - index struct { - /* Position in decIndex */ - sequence xzDecIndexSeq - /* Size of the Index in bytes */ - size vliType - /* Number of Records (matches block.count in valid files) */ - count vliType - /* - * Hash calculated from the Records (matches block.hash in - * valid files). - */ - hash xzDecHash - } - /* - * Temporary buffer needed to hold Stream Header, Block Header, - * and Stream Footer. The Block Header is the biggest (1 KiB) - * so we reserve space according to that. bufArray has to be aligned - * to a multiple of four bytes; the variables before it - * should guarantee this. - */ - temp struct { - pos int - buf []byte // slice buf will be backed by bufArray - bufArray [1024]byte - } - // chain is the function (or to be more precise, closure) which - // does the decompression and will call into the lzma2 and other - // filter code as needed. It is constructed by decBlockHeader - chain func(b *xzBuf) xzRet - // lzma2 holds the state of the last filter (which must be LZMA2) - lzma2 *xzDecLZMA2 - // pointers to allocated BCJ/Delta filters - bcjs []*xzDecBCJ - deltas []*xzDecDelta - // number of currently in use BCJ/Delta filters from the above - bcjsUsed int - deltasUsed int -} - -/* Sizes of the Check field with different Check IDs */ -var checkSizes = [...]byte{ - 0, - 4, 4, 4, - 8, 8, 8, - 16, 16, 16, - 32, 32, 32, - 64, 64, 64, -} - -/* - * Fill s.temp by copying data starting from b.in[b.inPos]. Caller - * must have set s.temp.pos to indicate how much data we are supposed - * to copy into s.temp.buf. Return true once s.temp.pos has reached - * len(s.temp.buf). - */ -func fillTemp(s *xzDec, b *xzBuf) bool { - copySize := len(b.in) - b.inPos - tempRemaining := len(s.temp.buf) - s.temp.pos - if copySize > tempRemaining { - copySize = tempRemaining - } - copy(s.temp.buf[s.temp.pos:], b.in[b.inPos:]) - b.inPos += copySize - s.temp.pos += copySize - if s.temp.pos == len(s.temp.buf) { - s.temp.pos = 0 - return true - } - return false -} - -/* Decode a variable-length integer (little-endian base-128 encoding) */ -func decVLI(s *xzDec, in []byte, inPos *int) xzRet { - var byte byte - if s.pos == 0 { - s.vli = 0 - } - for *inPos < len(in) { - byte = in[*inPos] - *inPos++ - s.vli |= vliType(byte&0x7f) << uint(s.pos) - if byte&0x80 == 0 { - /* Don't allow non-minimal encodings. */ - if byte == 0 && s.pos != 0 { - return xzDataError - } - s.pos = 0 - return xzStreamEnd - } - s.pos += 7 - if s.pos == 7*vliBytesMax { - return xzDataError - } - } - return xzOK -} - -/* - * Decode the Compressed Data field from a Block. Update and validate - * the observed compressed and uncompressed sizes of the Block so that - * they don't exceed the values possibly stored in the Block Header - * (validation assumes that no integer overflow occurs, since vliType - * is uint64). Update s.check if presence of the CRC32/CRC64/SHA256 - * field was indicated in Stream Header. - * - * Once the decoding is finished, validate that the observed sizes match - * the sizes possibly stored in the Block Header. Update the hash and - * Block count, which are later used to validate the Index field. - */ -func decBlock(s *xzDec, b *xzBuf) xzRet { - var ret xzRet - s.inStart = b.inPos - s.outStart = b.outPos - ret = s.chain(b) - s.block.compressed += vliType(b.inPos - s.inStart) - s.block.uncompressed += vliType(b.outPos - s.outStart) - /* - * There is no need to separately check for vliUnknown since - * the observed sizes are always smaller than vliUnknown. - */ - if s.block.compressed > s.blockHeader.compressed || - s.block.uncompressed > s.blockHeader.uncompressed { - return xzDataError - } - switch s.CheckType { - case CheckCRC32, CheckCRC64, CheckSHA256: - _, _ = s.check.Write(b.out[s.outStart:b.outPos]) - } - if ret == xzStreamEnd { - if s.blockHeader.compressed != vliUnknown && - s.blockHeader.compressed != s.block.compressed { - return xzDataError - } - if s.blockHeader.uncompressed != vliUnknown && - s.blockHeader.uncompressed != s.block.uncompressed { - return xzDataError - } - s.block.hash.unpadded += - vliType(s.blockHeader.size) + s.block.compressed - s.block.hash.unpadded += vliType(checkSizes[s.CheckType]) - s.block.hash.uncompressed += s.block.uncompressed - var buf [2 * 8]byte // 2*Sizeof(vliType) - putLE64(uint64(s.block.hash.unpadded), buf[:]) - putLE64(uint64(s.block.hash.uncompressed), buf[8:]) - _, _ = s.block.hash.sha256.Write(buf[:]) - s.block.count++ - } - return ret -} - -/* Update the Index size and the CRC32 hash. */ -func indexUpdate(s *xzDec, b *xzBuf) { - inUsed := b.inPos - s.inStart - s.index.size += vliType(inUsed) - _, _ = s.crc32.Write(b.in[s.inStart : s.inStart+inUsed]) -} - -/* - * Decode the Number of Records, Unpadded Size, and Uncompressed Size - * fields from the Index field. That is, Index Padding and CRC32 are not - * decoded by this function. - * - * This can return xzOK (more input needed), xzStreamEnd (everything - * successfully decoded), or xzDataError (input is corrupt). - */ -func decIndex(s *xzDec, b *xzBuf) xzRet { - var ret xzRet - for { - ret = decVLI(s, b.in, &b.inPos) - if ret != xzStreamEnd { - indexUpdate(s, b) - return ret - } - switch s.index.sequence { - case seqIndexCount: - s.index.count = s.vli - /* - * Validate that the Number of Records field - * indicates the same number of Records as - * there were Blocks in the Stream. - */ - if s.index.count != s.block.count { - return xzDataError - } - s.index.sequence = seqIndexUnpadded - case seqIndexUnpadded: - s.index.hash.unpadded += s.vli - s.index.sequence = seqIndexUncompressed - case seqIndexUncompressed: - s.index.hash.uncompressed += s.vli - var buf [2 * 8]byte // 2*Sizeof(vliType) - putLE64(uint64(s.index.hash.unpadded), buf[:]) - putLE64(uint64(s.index.hash.uncompressed), buf[8:]) - _, _ = s.index.hash.sha256.Write(buf[:]) - s.index.count-- - s.index.sequence = seqIndexUnpadded - } - if !(s.index.count > 0) { - break - } - } - return xzStreamEnd -} - -/* - * Validate that the next 4 bytes match s.crc32.Sum(nil). s.pos must - * be zero when starting to validate the first byte. - */ -func crcValidate(s *xzDec, b *xzBuf) xzRet { - sum := s.crc32.Sum(nil) - // CRC32 - reverse slice - sum[0], sum[1], sum[2], sum[3] = sum[3], sum[2], sum[1], sum[0] - for { - if b.inPos == len(b.in) { - return xzOK - } - if sum[s.pos] != b.in[b.inPos] { - return xzDataError - } - b.inPos++ - s.pos++ - if !(s.pos < 4) { - break - } - } - s.crc32.Reset() - s.pos = 0 - return xzStreamEnd -} - -/* - * Validate that the next 4/8/32 bytes match s.check.Sum(nil). s.pos - * must be zero when starting to validate the first byte. - */ -func checkValidate(s *xzDec, b *xzBuf) xzRet { - sum := s.check.Sum(nil) - if s.CheckType == CheckCRC32 || s.CheckType == CheckCRC64 { - // CRC32/64 - reverse slice - for i, j := 0, len(sum)-1; i < j; i, j = i+1, j-1 { - sum[i], sum[j] = sum[j], sum[i] - } - } - for { - if b.inPos == len(b.in) { - return xzOK - } - if sum[s.pos] != b.in[b.inPos] { - return xzDataError - } - b.inPos++ - s.pos++ - if !(s.pos < len(sum)) { - break - } - } - s.check.Reset() - s.pos = 0 - return xzStreamEnd -} - -/* - * Skip over the Check field when the Check ID is not supported. - * Returns true once the whole Check field has been skipped over. - */ -func checkSkip(s *xzDec, b *xzBuf) bool { - for s.pos < int(checkSizes[s.CheckType]) { - if b.inPos == len(b.in) { - return false - } - b.inPos++ - s.pos++ - } - s.pos = 0 - return true -} - -/* polynomial table used in decStreamHeader below */ -var xzCRC64Table = crc64.MakeTable(crc64.ECMA) - -/* Decode the Stream Header field (the first 12 bytes of the .xz Stream). */ -func decStreamHeader(s *xzDec) xzRet { - if string(s.temp.buf[:len(headerMagic)]) != headerMagic { - return xzFormatError - } - if crc32.ChecksumIEEE(s.temp.buf[len(headerMagic):len(headerMagic)+2]) != - getLE32(s.temp.buf[len(headerMagic)+2:]) { - return xzDataError - } - if s.temp.buf[len(headerMagic)] != 0 { - return xzOptionsError - } - /* - * Of integrity checks, we support none (Check ID = 0), - * CRC32 (Check ID = 1), CRC64 (Check ID = 4) and SHA256 (Check ID = 10) - * However, we will accept other check types too, but then the check - * won't be verified and a warning (xzUnsupportedCheck) will be given. - */ - s.CheckType = CheckID(s.temp.buf[len(headerMagic)+1]) - if s.CheckType > checkMax { - return xzOptionsError - } - switch s.CheckType { - case CheckNone: - // CheckNone: no action needed - case CheckCRC32: - if s.checkCRC32 == nil { - s.checkCRC32 = crc32.NewIEEE() - } else { - s.checkCRC32.Reset() - } - s.check = s.checkCRC32 - case CheckCRC64: - if s.checkCRC64 == nil { - s.checkCRC64 = crc64.New(xzCRC64Table) - } else { - s.checkCRC64.Reset() - } - s.check = s.checkCRC64 - case CheckSHA256: - if s.checkSHA256 == nil { - s.checkSHA256 = sha256.New() - } else { - s.checkSHA256.Reset() - } - s.check = s.checkSHA256 - default: - return xzUnsupportedCheck - } - return xzOK -} - -/* Decode the Stream Footer field (the last 12 bytes of the .xz Stream) */ -func decStreamFooter(s *xzDec) xzRet { - if string(s.temp.buf[10:10+len(footerMagic)]) != footerMagic { - return xzDataError - } - if crc32.ChecksumIEEE(s.temp.buf[4:10]) != getLE32(s.temp.buf) { - return xzDataError - } - /* - * Validate Backward Size. Note that we never added the size of the - * Index CRC32 field to s->index.size, thus we use s->index.size / 4 - * instead of s->index.size / 4 - 1. - */ - if s.index.size>>2 != vliType(getLE32(s.temp.buf[4:])) { - return xzDataError - } - if s.temp.buf[8] != 0 || CheckID(s.temp.buf[9]) != s.CheckType { - return xzDataError - } - /* - * Use xzStreamEnd instead of xzOK to be more convenient - * for the caller. - */ - return xzStreamEnd -} - -/* Decode the Block Header and initialize the filter chain. */ -func decBlockHeader(s *xzDec) xzRet { - var ret xzRet - /* - * Validate the CRC32. We know that the temp buffer is at least - * eight bytes so this is safe. - */ - crc := getLE32(s.temp.buf[len(s.temp.buf)-4:]) - s.temp.buf = s.temp.buf[:len(s.temp.buf)-4] - if crc32.ChecksumIEEE(s.temp.buf) != crc { - return xzDataError - } - s.temp.pos = 2 - /* - * Catch unsupported Block Flags. - */ - if s.temp.buf[1]&0x3C != 0 { - return xzOptionsError - } - /* Compressed Size */ - if s.temp.buf[1]&0x40 != 0 { - if decVLI(s, s.temp.buf, &s.temp.pos) != xzStreamEnd { - return xzDataError - } - if s.vli >= 1<<63-8 { - // the whole block must stay smaller than 2^63 bytes - // the block header cannot be smaller than 8 bytes - return xzDataError - } - if s.vli == 0 { - // compressed size must be non-zero - return xzDataError - } - s.blockHeader.compressed = s.vli - } else { - s.blockHeader.compressed = vliUnknown - } - /* Uncompressed Size */ - if s.temp.buf[1]&0x80 != 0 { - if decVLI(s, s.temp.buf, &s.temp.pos) != xzStreamEnd { - return xzDataError - } - s.blockHeader.uncompressed = s.vli - } else { - s.blockHeader.uncompressed = vliUnknown - } - // get total number of filters (1-4) - filterTotal := int(s.temp.buf[1]&0x03) + 1 - // slice to hold decoded filters - filterList := make([]struct { - id xzFilterID - props uint32 - }, filterTotal) - // decode the non-last filters which cannot be LZMA2 - for i := 0; i < filterTotal-1; i++ { - /* Valid Filter Flags always take at least two bytes. */ - if len(s.temp.buf)-s.temp.pos < 2 { - return xzDataError - } - s.temp.pos += 2 - switch id := xzFilterID(s.temp.buf[s.temp.pos-2]); id { - case idDelta: - // delta filter - if s.temp.buf[s.temp.pos-1] != 0x01 { - return xzOptionsError - } - /* Filter Properties contains distance - 1 */ - if len(s.temp.buf)-s.temp.pos < 1 { - return xzDataError - } - props := uint32(s.temp.buf[s.temp.pos]) - s.temp.pos++ - filterList[i] = struct { - id xzFilterID - props uint32 - }{id: id, props: props} - case idBCJX86, idBCJPowerPC, idBCJIA64, - idBCJARM, idBCJARMThumb, idBCJSPARC: - // bcj filter - var props uint32 - switch s.temp.buf[s.temp.pos-1] { - case 0x00: - props = 0 - case 0x04: - if len(s.temp.buf)-s.temp.pos < 4 { - return xzDataError - } - props = getLE32(s.temp.buf[s.temp.pos:]) - s.temp.pos += 4 - default: - return xzOptionsError - } - filterList[i] = struct { - id xzFilterID - props uint32 - }{id: id, props: props} - default: - return xzOptionsError - } - } - /* - * decode the last filter which must be LZMA2 - */ - if len(s.temp.buf)-s.temp.pos < 2 { - return xzDataError - } - /* Filter ID = LZMA2 */ - if xzFilterID(s.temp.buf[s.temp.pos]) != idLZMA2 { - return xzOptionsError - } - s.temp.pos++ - /* Size of Properties = 1-byte Filter Properties */ - if s.temp.buf[s.temp.pos] != 0x01 { - return xzOptionsError - } - s.temp.pos++ - /* Filter Properties contains LZMA2 dictionary size. */ - if len(s.temp.buf)-s.temp.pos < 1 { - return xzDataError - } - props := uint32(s.temp.buf[s.temp.pos]) - s.temp.pos++ - filterList[filterTotal-1] = struct { - id xzFilterID - props uint32 - }{id: idLZMA2, props: props} - /* - * Process the filter list and create s.chain, going from last - * filter (LZMA2) to first filter - * - * First, LZMA2. - */ - ret = xzDecLZMA2Reset(s.lzma2, byte(filterList[filterTotal-1].props)) - if ret != xzOK { - return ret - } - s.chain = func(b *xzBuf) xzRet { - return xzDecLZMA2Run(s.lzma2, b) - } - /* - * Now the non-last filters - */ - for i := filterTotal - 2; i >= 0; i-- { - switch id := filterList[i].id; id { - case idDelta: - // delta filter - var delta *xzDecDelta - if s.deltasUsed < len(s.deltas) { - delta = s.deltas[s.deltasUsed] - } else { - delta = xzDecDeltaCreate() - s.deltas = append(s.deltas, delta) - } - s.deltasUsed++ - ret = xzDecDeltaReset(delta, int(filterList[i].props)+1) - if ret != xzOK { - return ret - } - chain := s.chain - s.chain = func(b *xzBuf) xzRet { - return xzDecDeltaRun(delta, b, chain) - } - case idBCJX86, idBCJPowerPC, idBCJIA64, - idBCJARM, idBCJARMThumb, idBCJSPARC: - // bcj filter - var bcj *xzDecBCJ - if s.bcjsUsed < len(s.bcjs) { - bcj = s.bcjs[s.bcjsUsed] - } else { - bcj = xzDecBCJCreate() - s.bcjs = append(s.bcjs, bcj) - } - s.bcjsUsed++ - ret = xzDecBCJReset(bcj, id, int(filterList[i].props)) - if ret != xzOK { - return ret - } - chain := s.chain - s.chain = func(b *xzBuf) xzRet { - return xzDecBCJRun(bcj, b, chain) - } - } - } - /* The rest must be Header Padding. */ - for s.temp.pos < len(s.temp.buf) { - if s.temp.buf[s.temp.pos] != 0x00 { - return xzOptionsError - } - s.temp.pos++ - } - s.temp.pos = 0 - s.block.compressed = 0 - s.block.uncompressed = 0 - return xzOK -} - -func decMain(s *xzDec, b *xzBuf) xzRet { - var ret xzRet - /* - * Store the start position for the case when we are in the middle - * of the Index field. - */ - s.inStart = b.inPos - for { - switch s.sequence { - case seqStreamHeader: - /* - * Stream Header is copied to s.temp, and then - * decoded from there. This way if the caller - * gives us only little input at a time, we can - * still keep the Stream Header decoding code - * simple. Similar approach is used in many places - * in this file. - */ - if !fillTemp(s, b) { - return xzOK - } - /* - * If decStreamHeader returns - * xzUnsupportedCheck, it is still possible - * to continue decoding. Thus, update s.sequence - * before calling decStreamHeader. - */ - s.sequence = seqBlockStart - ret = decStreamHeader(s) - if ret != xzOK { - return ret - } - fallthrough - case seqBlockStart: - /* We need one byte of input to continue. */ - if b.inPos == len(b.in) { - return xzOK - } - /* See if this is the beginning of the Index field. */ - if b.in[b.inPos] == 0 { - s.inStart = b.inPos - b.inPos++ - s.sequence = seqIndex - break - } - /* - * Calculate the size of the Block Header and - * prepare to decode it. - */ - s.blockHeader.size = (int(b.in[b.inPos]) + 1) * 4 - s.temp.buf = s.temp.bufArray[:s.blockHeader.size] - s.temp.pos = 0 - s.sequence = seqBlockHeader - fallthrough - case seqBlockHeader: - if !fillTemp(s, b) { - return xzOK - } - ret = decBlockHeader(s) - if ret != xzOK { - return ret - } - s.sequence = seqBlockUncompress - fallthrough - case seqBlockUncompress: - ret = decBlock(s, b) - if ret != xzStreamEnd { - return ret - } - s.sequence = seqBlockPadding - fallthrough - case seqBlockPadding: - /* - * Size of Compressed Data + Block Padding - * must be a multiple of four. We don't need - * s->block.compressed for anything else - * anymore, so we use it here to test the size - * of the Block Padding field. - */ - for s.block.compressed&3 != 0 { - if b.inPos == len(b.in) { - return xzOK - } - if b.in[b.inPos] != 0 { - return xzDataError - } - b.inPos++ - s.block.compressed++ - } - s.sequence = seqBlockCheck - fallthrough - case seqBlockCheck: - switch s.CheckType { - case CheckCRC32, CheckCRC64, CheckSHA256: - ret = checkValidate(s, b) - if ret != xzStreamEnd { - return ret - } - default: - if !checkSkip(s, b) { - return xzOK - } - } - s.sequence = seqBlockStart - case seqIndex: - ret = decIndex(s, b) - if ret != xzStreamEnd { - return ret - } - s.sequence = seqIndexPadding - fallthrough - case seqIndexPadding: - for (s.index.size+vliType(b.inPos-s.inStart))&3 != 0 { - if b.inPos == len(b.in) { - indexUpdate(s, b) - return xzOK - } - if b.in[b.inPos] != 0 { - return xzDataError - } - b.inPos++ - } - /* Finish the CRC32 value and Index size. */ - indexUpdate(s, b) - /* Compare the hashes to validate the Index field. */ - if !bytes.Equal( - s.block.hash.sha256.Sum(nil), s.index.hash.sha256.Sum(nil)) { - return xzDataError - } - s.sequence = seqIndexCRC32 - fallthrough - case seqIndexCRC32: - ret = crcValidate(s, b) - if ret != xzStreamEnd { - return ret - } - s.temp.buf = s.temp.bufArray[:streamHeaderSize] - s.sequence = seqStreamFooter - fallthrough - case seqStreamFooter: - if !fillTemp(s, b) { - return xzOK - } - return decStreamFooter(s) - } - } - /* Never reached */ -} - -/** - * xzDecRun - Run the XZ decoder - * @s: Decoder state allocated using xzDecInit - * @b: Input and output buffers - * - * See xzRet for details of return values. - * - * xzDecRun is a wrapper for decMain to handle some special cases. - * - * We must return xzBufError when it seems clear that we are not - * going to make any progress anymore. This is to prevent the caller - * from calling us infinitely when the input file is truncated or - * otherwise corrupt. Since zlib-style API allows that the caller - * fills the input buffer only when the decoder doesn't produce any - * new output, we have to be careful to avoid returning xzBufError - * too easily: xzBufError is returned only after the second - * consecutive call to xzDecRun that makes no progress. - */ -func xzDecRun(s *xzDec, b *xzBuf) xzRet { - inStart := b.inPos - outStart := b.outPos - ret := decMain(s, b) - if ret == xzOK && inStart == b.inPos && outStart == b.outPos { - if s.allowBufError { - ret = xzBufError - } - s.allowBufError = true - } else { - s.allowBufError = false - } - return ret -} - -/** - * xzDecInit - Allocate and initialize a XZ decoder state - * @dictMax: Maximum size of the LZMA2 dictionary (history buffer) for - * decoding. LZMA2 dictionary is always 2^n bytes - * or 2^n + 2^(n-1) bytes (the latter sizes are less common - * in practice), so other values for dictMax don't make sense. - * - * dictMax specifies the maximum allowed dictionary size that xzDecRun - * may allocate once it has parsed the dictionary size from the stream - * headers. This way excessive allocations can be avoided while still - * limiting the maximum memory usage to a sane value to prevent running the - * system out of memory when decompressing streams from untrusted sources. - * - * xzDecInit returns a pointer to an xzDec, which is ready to be used with - * xzDecRun. - */ -func xzDecInit(dictMax uint32, header *Header) *xzDec { - s := new(xzDec) - s.crc32 = crc32.NewIEEE() - s.Header = header - s.block.hash.sha256 = sha256.New() - s.index.hash.sha256 = sha256.New() - s.lzma2 = xzDecLZMA2Create(dictMax) - xzDecReset(s) - return s -} - -/** - * xzDecReset - Reset an already allocated decoder state - * @s: Decoder state allocated using xzDecInit - * - * This function can be used to reset the decoder state without - * reallocating memory with xzDecInit. - */ -func xzDecReset(s *xzDec) { - s.sequence = seqStreamHeader - s.allowBufError = false - s.pos = 0 - s.crc32.Reset() - s.check = nil - s.CheckType = checkUnset - s.block.compressed = 0 - s.block.uncompressed = 0 - s.block.count = 0 - s.block.hash.unpadded = 0 - s.block.hash.uncompressed = 0 - s.block.hash.sha256.Reset() - s.index.sequence = seqIndexCount - s.index.size = 0 - s.index.count = 0 - s.index.hash.unpadded = 0 - s.index.hash.uncompressed = 0 - s.index.hash.sha256.Reset() - s.temp.pos = 0 - s.temp.buf = s.temp.bufArray[:streamHeaderSize] - s.chain = nil - s.bcjsUsed = 0 - s.deltasUsed = 0 -} diff --git a/backend/vendor/github.com/xi2/xz/dec_util.go b/backend/vendor/github.com/xi2/xz/dec_util.go deleted file mode 100644 index c4227522..00000000 --- a/backend/vendor/github.com/xi2/xz/dec_util.go +++ /dev/null @@ -1,52 +0,0 @@ -/* - * XZ decompressor utility functions - * - * Author: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -func getLE32(buf []byte) uint32 { - return uint32(buf[0]) | - uint32(buf[1])<<8 | - uint32(buf[2])<<16 | - uint32(buf[3])<<24 -} - -func getBE32(buf []byte) uint32 { - return uint32(buf[0])<<24 | - uint32(buf[1])<<16 | - uint32(buf[2])<<8 | - uint32(buf[3]) -} - -func putLE32(val uint32, buf []byte) { - buf[0] = byte(val) - buf[1] = byte(val >> 8) - buf[2] = byte(val >> 16) - buf[3] = byte(val >> 24) - return -} - -func putBE32(val uint32, buf []byte) { - buf[0] = byte(val >> 24) - buf[1] = byte(val >> 16) - buf[2] = byte(val >> 8) - buf[3] = byte(val) - return -} - -func putLE64(val uint64, buf []byte) { - buf[0] = byte(val) - buf[1] = byte(val >> 8) - buf[2] = byte(val >> 16) - buf[3] = byte(val >> 24) - buf[4] = byte(val >> 32) - buf[5] = byte(val >> 40) - buf[6] = byte(val >> 48) - buf[7] = byte(val >> 56) - return -} diff --git a/backend/vendor/github.com/xi2/xz/dec_xz.go b/backend/vendor/github.com/xi2/xz/dec_xz.go deleted file mode 100644 index 1b18a838..00000000 --- a/backend/vendor/github.com/xi2/xz/dec_xz.go +++ /dev/null @@ -1,124 +0,0 @@ -/* - * XZ decompressor - * - * Authors: Lasse Collin - * Igor Pavlov - * - * Translation to Go: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -/* from linux/include/linux/xz.h **************************************/ - -/** - * xzRet - Return codes - * @xzOK: Everything is OK so far. More input or more - * output space is required to continue. - * @xzStreamEnd: Operation finished successfully. - * @xzUnSupportedCheck: Integrity check type is not supported. Decoding - * is still possible by simply calling xzDecRun - * again. - * @xzMemlimitError: A bigger LZMA2 dictionary would be needed than - * allowed by the dictMax argument given to - * xzDecInit. - * @xzFormatError: File format was not recognized (wrong magic - * bytes). - * @xzOptionsError: This implementation doesn't support the requested - * compression options. In the decoder this means - * that the header CRC32 matches, but the header - * itself specifies something that we don't support. - * @xzDataError: Compressed data is corrupt. - * @xzBufError: Cannot make any progress. - * - * xzBufError is returned when two consecutive calls to XZ code cannot - * consume any input and cannot produce any new output. This happens - * when there is no new input available, or the output buffer is full - * while at least one output byte is still pending. Assuming your code - * is not buggy, you can get this error only when decoding a - * compressed stream that is truncated or otherwise corrupt. - */ -type xzRet int - -const ( - xzOK xzRet = iota - xzStreamEnd - xzUnsupportedCheck - xzMemlimitError - xzFormatError - xzOptionsError - xzDataError - xzBufError -) - -/** - * xzBuf - Passing input and output buffers to XZ code - * @in: Input buffer. - * @inPos: Current position in the input buffer. This must not exceed - * input buffer size. - * @out: Output buffer. - * @outPos: Current position in the output buffer. This must not exceed - * output buffer size. - * - * Only the contents of the output buffer from out[outPos] onward, and - * the variables inPos and outPos are modified by the XZ code. - */ -type xzBuf struct { - in []byte - inPos int - out []byte - outPos int -} - -/* All XZ filter IDs */ -type xzFilterID int64 - -const ( - idDelta xzFilterID = 0x03 - idBCJX86 xzFilterID = 0x04 - idBCJPowerPC xzFilterID = 0x05 - idBCJIA64 xzFilterID = 0x06 - idBCJARM xzFilterID = 0x07 - idBCJARMThumb xzFilterID = 0x08 - idBCJSPARC xzFilterID = 0x09 - idLZMA2 xzFilterID = 0x21 -) - -// CheckID is the type of the data integrity check in an XZ stream -// calculated from the uncompressed data. -type CheckID int - -func (id CheckID) String() string { - switch id { - case CheckNone: - return "None" - case CheckCRC32: - return "CRC32" - case CheckCRC64: - return "CRC64" - case CheckSHA256: - return "SHA256" - default: - return "Unknown" - } -} - -const ( - CheckNone CheckID = 0x00 - CheckCRC32 CheckID = 0x01 - CheckCRC64 CheckID = 0x04 - CheckSHA256 CheckID = 0x0A - checkMax CheckID = 0x0F - checkUnset CheckID = -1 -) - -// An XZ stream contains a stream header which holds information about -// the stream. That information is exposed as fields of the -// Reader. Currently it contains only the stream's data integrity -// check type. -type Header struct { - CheckType CheckID // type of the stream's data integrity check -} diff --git a/backend/vendor/github.com/xi2/xz/doc.go b/backend/vendor/github.com/xi2/xz/doc.go deleted file mode 100644 index d8d97e17..00000000 --- a/backend/vendor/github.com/xi2/xz/doc.go +++ /dev/null @@ -1,35 +0,0 @@ -// Package xz implements XZ decompression natively in Go. -// -// # Usage -// -// For ease of use, this package is designed to have a similar API to -// compress/gzip. See the examples for further details. -// -// # Implementation -// -// This package is a translation from C to Go of XZ Embedded -// (http://tukaani.org/xz/embedded.html) with enhancements made so as -// to implement all mandatory and optional parts of the XZ file format -// specification v1.0.4. It supports all filters and block check -// types, supports multiple streams, and performs index verification -// using SHA-256 as recommended by the specification. -// -// # Speed -// -// On the author's Intel Ivybridge i5, decompression speed is about -// half that of the standard XZ Utils (tested with a recent linux -// kernel tarball). -// -// # Thanks -// -// Thanks are due to Lasse Collin and Igor Pavlov, the authors of XZ -// Embedded, on whose code package xz is based. It would not exist -// without their decision to allow others to modify and reuse their -// code. -// -// # Bug reports -// -// For bug reports relating to this package please contact the author -// through https://github.com/xi2/xz/issues, and not the authors of XZ -// Embedded. -package xz diff --git a/backend/vendor/github.com/xi2/xz/reader.go b/backend/vendor/github.com/xi2/xz/reader.go deleted file mode 100644 index e321d755..00000000 --- a/backend/vendor/github.com/xi2/xz/reader.go +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Package xz Go Reader API - * - * Author: Michael Cross - * - * This file has been put into the public domain. - * You can do whatever you want with this file. - */ - -package xz - -import ( - "errors" - "io" -) - -// Package specific errors. -var ( - ErrUnsupportedCheck = errors.New("xz: integrity check type not supported") - ErrMemlimit = errors.New("xz: LZMA2 dictionary size exceeds max") - ErrFormat = errors.New("xz: file format not recognized") - ErrOptions = errors.New("xz: compression options not supported") - ErrData = errors.New("xz: data is corrupt") - ErrBuf = errors.New("xz: data is truncated or corrupt") -) - -// DefaultDictMax is the default maximum dictionary size in bytes used -// by the decoder. This value is sufficient to decompress files -// created with XZ Utils "xz -9". -const DefaultDictMax = 1 << 26 // 64 MiB - -// inBufSize is the input buffer size used by the decoder. -const inBufSize = 1 << 13 // 8 KiB - -// A Reader is an io.Reader that can be used to retrieve uncompressed -// data from an XZ file. -// -// In general, an XZ file can be a concatenation of other XZ -// files. Reads from the Reader return the concatenation of the -// uncompressed data of each. -type Reader struct { - Header - r io.Reader // the wrapped io.Reader - multistream bool // true if reader is in multistream mode - rEOF bool // true after io.EOF received on r - dEOF bool // true after decoder has completed - padding int // bytes of stream padding read (or -1) - in [inBufSize]byte // backing array for buf.in - buf *xzBuf // decoder input/output buffers - dec *xzDec // decoder state - err error // the result of the last decoder call -} - -// NewReader creates a new Reader reading from r. The decompressor -// will use an LZMA2 dictionary size up to dictMax bytes in -// size. Passing a value of zero sets dictMax to DefaultDictMax. If -// an individual XZ stream requires a dictionary size greater than -// dictMax in order to decompress, Read will return ErrMemlimit. -// -// If NewReader is passed a value of nil for r then a Reader is -// created such that all read attempts will return io.EOF. This is -// useful if you just want to allocate memory for a Reader which will -// later be initialized with Reset. -// -// Due to internal buffering, the Reader may read more data than -// necessary from r. -func NewReader(r io.Reader, dictMax uint32) (*Reader, error) { - if dictMax == 0 { - dictMax = DefaultDictMax - } - z := &Reader{ - r: r, - multistream: true, - padding: -1, - buf: &xzBuf{}, - } - if r == nil { - z.rEOF, z.dEOF = true, true - } - z.dec = xzDecInit(dictMax, &z.Header) - var err error - if r != nil { - _, err = z.Read(nil) // read stream header - } - return z, err -} - -// decode is a wrapper around xzDecRun that additionally handles -// stream padding. It treats the padding as a kind of stream that -// decodes to nothing. -// -// When decoding padding, z.padding >= 0 -// When decoding a real stream, z.padding == -1 -func (z *Reader) decode() (ret xzRet) { - if z.padding >= 0 { - // read all padding in input buffer - for z.buf.inPos < len(z.buf.in) && - z.buf.in[z.buf.inPos] == 0 { - z.buf.inPos++ - z.padding++ - } - switch { - case z.buf.inPos == len(z.buf.in) && z.rEOF: - // case: out of padding. no more input data available - if z.padding%4 != 0 { - ret = xzDataError - } else { - ret = xzStreamEnd - } - case z.buf.inPos == len(z.buf.in): - // case: read more padding next loop iteration - ret = xzOK - default: - // case: out of padding. more input data available - if z.padding%4 != 0 { - ret = xzDataError - } else { - xzDecReset(z.dec) - ret = xzStreamEnd - } - } - } else { - ret = xzDecRun(z.dec, z.buf) - } - return -} - -func (z *Reader) Read(p []byte) (n int, err error) { - // restore err - err = z.err - // set decoder output buffer to p - z.buf.out = p - z.buf.outPos = 0 - for { - // update n - n = z.buf.outPos - // if last call to decoder ended with an error, return that error - if err != nil { - break - } - // if decoder has finished, return with err == io.EOF - if z.dEOF { - err = io.EOF - break - } - // if p full, return with err == nil, unless we have not yet - // read the stream header with Read(nil) - if n == len(p) && z.CheckType != checkUnset { - break - } - // if needed, read more data from z.r - if z.buf.inPos == len(z.buf.in) && !z.rEOF { - rn, e := z.r.Read(z.in[:]) - if e != nil && e != io.EOF { - // read error - err = e - break - } - if e == io.EOF { - z.rEOF = true - } - // set new input buffer in z.buf - z.buf.in = z.in[:rn] - z.buf.inPos = 0 - } - // decode more data - ret := z.decode() - switch ret { - case xzOK: - // no action needed - case xzStreamEnd: - if z.padding >= 0 { - z.padding = -1 - if !z.multistream || z.rEOF { - z.dEOF = true - } - } else { - z.padding = 0 - } - case xzUnsupportedCheck: - err = ErrUnsupportedCheck - case xzMemlimitError: - err = ErrMemlimit - case xzFormatError: - err = ErrFormat - case xzOptionsError: - err = ErrOptions - case xzDataError: - err = ErrData - case xzBufError: - err = ErrBuf - } - // save err - z.err = err - } - return -} - -// Multistream controls whether the reader is operating in multistream -// mode. -// -// If enabled (the default), the Reader expects the input to be a -// sequence of XZ streams, possibly interspersed with stream padding, -// which it reads one after another. The effect is that the -// concatenation of a sequence of XZ streams or XZ files is -// treated as equivalent to the compressed result of the concatenation -// of the sequence. This is standard behaviour for XZ readers. -// -// Calling Multistream(false) disables this behaviour; disabling the -// behaviour can be useful when reading file formats that distinguish -// individual XZ streams. In this mode, when the Reader reaches the -// end of the stream, Read returns io.EOF. To start the next stream, -// call z.Reset(nil) followed by z.Multistream(false). If there is no -// next stream, z.Reset(nil) will return io.EOF. -func (z *Reader) Multistream(ok bool) { - z.multistream = ok -} - -// Reset, for non-nil values of io.Reader r, discards the Reader z's -// state and makes it equivalent to the result of its original state -// from NewReader, but reading from r instead. This permits reusing a -// Reader rather than allocating a new one. -// -// If you wish to leave r unchanged use z.Reset(nil). This keeps r -// unchanged and ensures internal buffering is preserved. If the -// Reader was at the end of a stream it is then ready to read any -// follow on streams. If there are no follow on streams z.Reset(nil) -// returns io.EOF. If the Reader was not at the end of a stream then -// z.Reset(nil) does nothing. -func (z *Reader) Reset(r io.Reader) error { - switch { - case r == nil: - z.multistream = true - if !z.dEOF { - return nil - } - if z.rEOF { - return io.EOF - } - z.dEOF = false - _, err := z.Read(nil) // read stream header - return err - default: - z.r = r - z.multistream = true - z.rEOF = false - z.dEOF = false - z.padding = -1 - z.buf.in = nil - z.buf.inPos = 0 - xzDecReset(z.dec) - z.err = nil - _, err := z.Read(nil) // read stream header - return err - } -} diff --git a/backend/vendor/github.com/yusufpapurcu/wmi/LICENSE b/backend/vendor/github.com/yusufpapurcu/wmi/LICENSE deleted file mode 100644 index ae80b672..00000000 --- a/backend/vendor/github.com/yusufpapurcu/wmi/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Stack Exchange - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/github.com/yusufpapurcu/wmi/README.md b/backend/vendor/github.com/yusufpapurcu/wmi/README.md deleted file mode 100644 index 426d1a46..00000000 --- a/backend/vendor/github.com/yusufpapurcu/wmi/README.md +++ /dev/null @@ -1,6 +0,0 @@ -wmi -=== - -Package wmi provides a WQL interface to Windows WMI. - -Note: It interfaces with WMI on the local machine, therefore it only runs on Windows. diff --git a/backend/vendor/github.com/yusufpapurcu/wmi/swbemservices.go b/backend/vendor/github.com/yusufpapurcu/wmi/swbemservices.go deleted file mode 100644 index a250c846..00000000 --- a/backend/vendor/github.com/yusufpapurcu/wmi/swbemservices.go +++ /dev/null @@ -1,261 +0,0 @@ -//go:build windows -// +build windows - -package wmi - -import ( - "fmt" - "reflect" - "runtime" - "sync" - - "github.com/go-ole/go-ole" - "github.com/go-ole/go-ole/oleutil" -) - -// SWbemServices is used to access wmi. See https://msdn.microsoft.com/en-us/library/aa393719(v=vs.85).aspx -type SWbemServices struct { - //TODO: track namespace. Not sure if we can re connect to a different namespace using the same instance - cWMIClient *Client //This could also be an embedded struct, but then we would need to branch on Client vs SWbemServices in the Query method - sWbemLocatorIUnknown *ole.IUnknown - sWbemLocatorIDispatch *ole.IDispatch - queries chan *queryRequest - closeError chan error - lQueryorClose sync.Mutex -} - -type queryRequest struct { - query string - dst interface{} - args []interface{} - finished chan error -} - -// InitializeSWbemServices will return a new SWbemServices object that can be used to query WMI -func InitializeSWbemServices(c *Client, connectServerArgs ...interface{}) (*SWbemServices, error) { - //fmt.Println("InitializeSWbemServices: Starting") - //TODO: implement connectServerArgs as optional argument for init with connectServer call - s := new(SWbemServices) - s.cWMIClient = c - s.queries = make(chan *queryRequest) - initError := make(chan error) - go s.process(initError) - - err, ok := <-initError - if ok { - return nil, err //Send error to caller - } - //fmt.Println("InitializeSWbemServices: Finished") - return s, nil -} - -// Close will clear and release all of the SWbemServices resources -func (s *SWbemServices) Close() error { - s.lQueryorClose.Lock() - if s == nil || s.sWbemLocatorIDispatch == nil { - s.lQueryorClose.Unlock() - return fmt.Errorf("SWbemServices is not Initialized") - } - if s.queries == nil { - s.lQueryorClose.Unlock() - return fmt.Errorf("SWbemServices has been closed") - } - //fmt.Println("Close: sending close request") - var result error - ce := make(chan error) - s.closeError = ce //Race condition if multiple callers to close. May need to lock here - close(s.queries) //Tell background to shut things down - s.lQueryorClose.Unlock() - err, ok := <-ce - if ok { - result = err - } - //fmt.Println("Close: finished") - return result -} - -func (s *SWbemServices) process(initError chan error) { - //fmt.Println("process: starting background thread initialization") - //All OLE/WMI calls must happen on the same initialized thead, so lock this goroutine - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - err := ole.CoInitializeEx(0, ole.COINIT_MULTITHREADED) - if err != nil { - oleCode := err.(*ole.OleError).Code() - if oleCode != ole.S_OK && oleCode != S_FALSE { - initError <- fmt.Errorf("ole.CoInitializeEx error: %v", err) - return - } - } - defer ole.CoUninitialize() - - unknown, err := oleutil.CreateObject("WbemScripting.SWbemLocator") - if err != nil { - initError <- fmt.Errorf("CreateObject SWbemLocator error: %v", err) - return - } else if unknown == nil { - initError <- ErrNilCreateObject - return - } - defer unknown.Release() - s.sWbemLocatorIUnknown = unknown - - dispatch, err := s.sWbemLocatorIUnknown.QueryInterface(ole.IID_IDispatch) - if err != nil { - initError <- fmt.Errorf("SWbemLocator QueryInterface error: %v", err) - return - } - defer dispatch.Release() - s.sWbemLocatorIDispatch = dispatch - - // we can't do the ConnectServer call outside the loop unless we find a way to track and re-init the connectServerArgs - //fmt.Println("process: initialized. closing initError") - close(initError) - //fmt.Println("process: waiting for queries") - for q := range s.queries { - //fmt.Printf("process: new query: len(query)=%d\n", len(q.query)) - errQuery := s.queryBackground(q) - //fmt.Println("process: s.queryBackground finished") - if errQuery != nil { - q.finished <- errQuery - } - close(q.finished) - } - //fmt.Println("process: queries channel closed") - s.queries = nil //set channel to nil so we know it is closed - //TODO: I think the Release/Clear calls can panic if things are in a bad state. - //TODO: May need to recover from panics and send error to method caller instead. - close(s.closeError) -} - -// Query runs the WQL query using a SWbemServices instance and appends the values to dst. -// -// dst must have type *[]S or *[]*S, for some struct type S. Fields selected in -// the query must have the same name in dst. Supported types are all signed and -// unsigned integers, time.Time, string, bool, or a pointer to one of those. -// Array types are not supported. -// -// By default, the local machine and default namespace are used. These can be -// changed using connectServerArgs. See -// http://msdn.microsoft.com/en-us/library/aa393720.aspx for details. -func (s *SWbemServices) Query(query string, dst interface{}, connectServerArgs ...interface{}) error { - s.lQueryorClose.Lock() - if s == nil || s.sWbemLocatorIDispatch == nil { - s.lQueryorClose.Unlock() - return fmt.Errorf("SWbemServices is not Initialized") - } - if s.queries == nil { - s.lQueryorClose.Unlock() - return fmt.Errorf("SWbemServices has been closed") - } - - //fmt.Println("Query: Sending query request") - qr := queryRequest{ - query: query, - dst: dst, - args: connectServerArgs, - finished: make(chan error), - } - s.queries <- &qr - s.lQueryorClose.Unlock() - err, ok := <-qr.finished - if ok { - //fmt.Println("Query: Finished with error") - return err //Send error to caller - } - //fmt.Println("Query: Finished") - return nil -} - -func (s *SWbemServices) queryBackground(q *queryRequest) error { - if s == nil || s.sWbemLocatorIDispatch == nil { - return fmt.Errorf("SWbemServices is not Initialized") - } - wmi := s.sWbemLocatorIDispatch //Should just rename in the code, but this will help as we break things apart - //fmt.Println("queryBackground: Starting") - - dv := reflect.ValueOf(q.dst) - if dv.Kind() != reflect.Ptr || dv.IsNil() { - return ErrInvalidEntityType - } - dv = dv.Elem() - mat, elemType := checkMultiArg(dv) - if mat == multiArgTypeInvalid { - return ErrInvalidEntityType - } - - // service is a SWbemServices - serviceRaw, err := oleutil.CallMethod(wmi, "ConnectServer", q.args...) - if err != nil { - return err - } - service := serviceRaw.ToIDispatch() - defer serviceRaw.Clear() - - // result is a SWBemObjectSet - resultRaw, err := oleutil.CallMethod(service, "ExecQuery", q.query) - if err != nil { - return err - } - result := resultRaw.ToIDispatch() - defer resultRaw.Clear() - - count, err := oleInt64(result, "Count") - if err != nil { - return err - } - - enumProperty, err := result.GetProperty("_NewEnum") - if err != nil { - return err - } - defer enumProperty.Clear() - - enum, err := enumProperty.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) - if err != nil { - return err - } - if enum == nil { - return fmt.Errorf("can't get IEnumVARIANT, enum is nil") - } - defer enum.Release() - - // Initialize a slice with Count capacity - dv.Set(reflect.MakeSlice(dv.Type(), 0, int(count))) - - var errFieldMismatch error - for itemRaw, length, err := enum.Next(1); length > 0; itemRaw, length, err = enum.Next(1) { - if err != nil { - return err - } - - err := func() error { - // item is a SWbemObject, but really a Win32_Process - item := itemRaw.ToIDispatch() - defer item.Release() - - ev := reflect.New(elemType) - if err = s.cWMIClient.loadEntity(ev.Interface(), item); err != nil { - if _, ok := err.(*ErrFieldMismatch); ok { - // We continue loading entities even in the face of field mismatch errors. - // If we encounter any other error, that other error is returned. Otherwise, - // an ErrFieldMismatch is returned. - errFieldMismatch = err - } else { - return err - } - } - if mat != multiArgTypeStructPtr { - ev = ev.Elem() - } - dv.Set(reflect.Append(dv, ev)) - return nil - }() - if err != nil { - return err - } - } - //fmt.Println("queryBackground: Finished") - return errFieldMismatch -} diff --git a/backend/vendor/github.com/yusufpapurcu/wmi/wmi.go b/backend/vendor/github.com/yusufpapurcu/wmi/wmi.go deleted file mode 100644 index 26c3581c..00000000 --- a/backend/vendor/github.com/yusufpapurcu/wmi/wmi.go +++ /dev/null @@ -1,591 +0,0 @@ -//go:build windows -// +build windows - -/* -Package wmi provides a WQL interface for WMI on Windows. - -Example code to print names of running processes: - - type Win32_Process struct { - Name string - } - - func main() { - var dst []Win32_Process - q := wmi.CreateQuery(&dst, "") - err := wmi.Query(q, &dst) - if err != nil { - log.Fatal(err) - } - for i, v := range dst { - println(i, v.Name) - } - } -*/ -package wmi - -import ( - "bytes" - "errors" - "fmt" - "log" - "os" - "reflect" - "runtime" - "strconv" - "strings" - "sync" - "time" - - "github.com/go-ole/go-ole" - "github.com/go-ole/go-ole/oleutil" -) - -var l = log.New(os.Stdout, "", log.LstdFlags) - -var ( - ErrInvalidEntityType = errors.New("wmi: invalid entity type") - // ErrNilCreateObject is the error returned if CreateObject returns nil even - // if the error was nil. - ErrNilCreateObject = errors.New("wmi: create object returned nil") - lock sync.Mutex -) - -// S_FALSE is returned by CoInitializeEx if it was already called on this thread. -const S_FALSE = 0x00000001 - -// QueryNamespace invokes Query with the given namespace on the local machine. -func QueryNamespace(query string, dst interface{}, namespace string) error { - return Query(query, dst, nil, namespace) -} - -// Query runs the WQL query and appends the values to dst. -// -// dst must have type *[]S or *[]*S, for some struct type S. Fields selected in -// the query must have the same name in dst. Supported types are all signed and -// unsigned integers, time.Time, string, bool, or a pointer to one of those. -// Array types are not supported. -// -// By default, the local machine and default namespace are used. These can be -// changed using connectServerArgs. See -// https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/swbemlocator-connectserver -// for details. -// -// Query is a wrapper around DefaultClient.Query. -func Query(query string, dst interface{}, connectServerArgs ...interface{}) error { - if DefaultClient.SWbemServicesClient == nil { - return DefaultClient.Query(query, dst, connectServerArgs...) - } - return DefaultClient.SWbemServicesClient.Query(query, dst, connectServerArgs...) -} - -// CallMethod calls a method named methodName on an instance of the class named -// className, with the given params. -// -// CallMethod is a wrapper around DefaultClient.CallMethod. -func CallMethod(connectServerArgs []interface{}, className, methodName string, params []interface{}) (int32, error) { - return DefaultClient.CallMethod(connectServerArgs, className, methodName, params) -} - -// A Client is an WMI query client. -// -// Its zero value (DefaultClient) is a usable client. -type Client struct { - // NonePtrZero specifies if nil values for fields which aren't pointers - // should be returned as the field types zero value. - // - // Setting this to true allows stucts without pointer fields to be used - // without the risk failure should a nil value returned from WMI. - NonePtrZero bool - - // PtrNil specifies if nil values for pointer fields should be returned - // as nil. - // - // Setting this to true will set pointer fields to nil where WMI - // returned nil, otherwise the types zero value will be returned. - PtrNil bool - - // AllowMissingFields specifies that struct fields not present in the - // query result should not result in an error. - // - // Setting this to true allows custom queries to be used with full - // struct definitions instead of having to define multiple structs. - AllowMissingFields bool - - // SWbemServiceClient is an optional SWbemServices object that can be - // initialized and then reused across multiple queries. If it is null - // then the method will initialize a new temporary client each time. - SWbemServicesClient *SWbemServices -} - -// DefaultClient is the default Client and is used by Query, QueryNamespace, and CallMethod. -var DefaultClient = &Client{} - -// coinitService coinitializes WMI service. If no error is returned, a cleanup function -// is returned which must be executed (usually deferred) to clean up allocated resources. -func (c *Client) coinitService(connectServerArgs ...interface{}) (*ole.IDispatch, func(), error) { - var unknown *ole.IUnknown - var wmi *ole.IDispatch - var serviceRaw *ole.VARIANT - - // be sure teardown happens in the reverse - // order from that which they were created - deferFn := func() { - if serviceRaw != nil { - serviceRaw.Clear() - } - if wmi != nil { - wmi.Release() - } - if unknown != nil { - unknown.Release() - } - ole.CoUninitialize() - } - - // if we error'ed here, clean up immediately - var err error - defer func() { - if err != nil { - deferFn() - } - }() - - err = ole.CoInitializeEx(0, ole.COINIT_MULTITHREADED) - if err != nil { - oleCode := err.(*ole.OleError).Code() - if oleCode != ole.S_OK && oleCode != S_FALSE { - return nil, nil, err - } - } - - unknown, err = oleutil.CreateObject("WbemScripting.SWbemLocator") - if err != nil { - return nil, nil, err - } else if unknown == nil { - return nil, nil, ErrNilCreateObject - } - - wmi, err = unknown.QueryInterface(ole.IID_IDispatch) - if err != nil { - return nil, nil, err - } - - // service is a SWbemServices - serviceRaw, err = oleutil.CallMethod(wmi, "ConnectServer", connectServerArgs...) - if err != nil { - return nil, nil, err - } - - return serviceRaw.ToIDispatch(), deferFn, nil -} - -// CallMethod calls a WMI method named methodName on an instance -// of the class named className. It passes in the arguments given -// in params. Use connectServerArgs to customize the machine and -// namespace; by default, the local machine and default namespace -// are used. See -// https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/swbemlocator-connectserver -// for details. -func (c *Client) CallMethod(connectServerArgs []interface{}, className, methodName string, params []interface{}) (int32, error) { - service, cleanup, err := c.coinitService(connectServerArgs...) - if err != nil { - return 0, fmt.Errorf("coinit: %v", err) - } - defer cleanup() - - // Get class - classRaw, err := oleutil.CallMethod(service, "Get", className) - if err != nil { - return 0, fmt.Errorf("CallMethod Get class %s: %v", className, err) - } - class := classRaw.ToIDispatch() - defer classRaw.Clear() - - // Run method - resultRaw, err := oleutil.CallMethod(class, methodName, params...) - if err != nil { - return 0, fmt.Errorf("CallMethod %s.%s: %v", className, methodName, err) - } - resultInt, ok := resultRaw.Value().(int32) - if !ok { - return 0, fmt.Errorf("return value was not an int32: %v (%T)", resultRaw, resultRaw) - } - - return resultInt, nil -} - -// Query runs the WQL query and appends the values to dst. -// -// dst must have type *[]S or *[]*S, for some struct type S. Fields selected in -// the query must have the same name in dst. Supported types are all signed and -// unsigned integers, time.Time, string, bool, or a pointer to one of those. -// Array types are not supported. -// -// By default, the local machine and default namespace are used. These can be -// changed using connectServerArgs. See -// https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/swbemlocator-connectserver -// for details. -func (c *Client) Query(query string, dst interface{}, connectServerArgs ...interface{}) error { - dv := reflect.ValueOf(dst) - if dv.Kind() != reflect.Ptr || dv.IsNil() { - return ErrInvalidEntityType - } - dv = dv.Elem() - mat, elemType := checkMultiArg(dv) - if mat == multiArgTypeInvalid { - return ErrInvalidEntityType - } - - lock.Lock() - defer lock.Unlock() - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - service, cleanup, err := c.coinitService(connectServerArgs...) - if err != nil { - return err - } - defer cleanup() - - // result is a SWBemObjectSet - resultRaw, err := oleutil.CallMethod(service, "ExecQuery", query) - if err != nil { - return err - } - result := resultRaw.ToIDispatch() - defer resultRaw.Clear() - - count, err := oleInt64(result, "Count") - if err != nil { - return err - } - - enumProperty, err := result.GetProperty("_NewEnum") - if err != nil { - return err - } - defer enumProperty.Clear() - - enum, err := enumProperty.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) - if err != nil { - return err - } - if enum == nil { - return fmt.Errorf("can't get IEnumVARIANT, enum is nil") - } - defer enum.Release() - - // Initialize a slice with Count capacity - dv.Set(reflect.MakeSlice(dv.Type(), 0, int(count))) - - var errFieldMismatch error - for itemRaw, length, err := enum.Next(1); length > 0; itemRaw, length, err = enum.Next(1) { - if err != nil { - return err - } - - err := func() error { - // item is a SWbemObject, but really a Win32_Process - item := itemRaw.ToIDispatch() - defer item.Release() - - ev := reflect.New(elemType) - if err = c.loadEntity(ev.Interface(), item); err != nil { - if _, ok := err.(*ErrFieldMismatch); ok { - // We continue loading entities even in the face of field mismatch errors. - // If we encounter any other error, that other error is returned. Otherwise, - // an ErrFieldMismatch is returned. - errFieldMismatch = err - } else { - return err - } - } - if mat != multiArgTypeStructPtr { - ev = ev.Elem() - } - dv.Set(reflect.Append(dv, ev)) - return nil - }() - if err != nil { - return err - } - } - return errFieldMismatch -} - -// ErrFieldMismatch is returned when a field is to be loaded into a different -// type than the one it was stored from, or when a field is missing or -// unexported in the destination struct. -// StructType is the type of the struct pointed to by the destination argument. -type ErrFieldMismatch struct { - StructType reflect.Type - FieldName string - Reason string -} - -func (e *ErrFieldMismatch) Error() string { - return fmt.Sprintf("wmi: cannot load field %q into a %q: %s", - e.FieldName, e.StructType, e.Reason) -} - -var timeType = reflect.TypeOf(time.Time{}) - -// loadEntity loads a SWbemObject into a struct pointer. -func (c *Client) loadEntity(dst interface{}, src *ole.IDispatch) (errFieldMismatch error) { - v := reflect.ValueOf(dst).Elem() - for i := 0; i < v.NumField(); i++ { - f := v.Field(i) - of := f - isPtr := f.Kind() == reflect.Ptr - n := v.Type().Field(i).Name - if n[0] < 'A' || n[0] > 'Z' { - continue - } - if !f.CanSet() { - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: "CanSet() is false", - } - } - prop, err := oleutil.GetProperty(src, n) - if err != nil { - if !c.AllowMissingFields { - errFieldMismatch = &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: "no such struct field", - } - } - continue - } - defer prop.Clear() - - if isPtr && !(c.PtrNil && prop.VT == 0x1) { - ptr := reflect.New(f.Type().Elem()) - f.Set(ptr) - f = f.Elem() - } - - if prop.VT == 0x1 { //VT_NULL - continue - } - - switch val := prop.Value().(type) { - case int8, int16, int32, int64, int: - v := reflect.ValueOf(val).Int() - switch f.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - f.SetInt(v) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - f.SetUint(uint64(v)) - default: - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: "not an integer class", - } - } - case uint8, uint16, uint32, uint64: - v := reflect.ValueOf(val).Uint() - switch f.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - f.SetInt(int64(v)) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - f.SetUint(v) - default: - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: "not an integer class", - } - } - case string: - switch f.Kind() { - case reflect.String: - f.SetString(val) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - iv, err := strconv.ParseInt(val, 10, 64) - if err != nil { - return err - } - f.SetInt(iv) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - uv, err := strconv.ParseUint(val, 10, 64) - if err != nil { - return err - } - f.SetUint(uv) - case reflect.Struct: - switch f.Type() { - case timeType: - if len(val) == 25 { - mins, err := strconv.Atoi(val[22:]) - if err != nil { - return err - } - val = val[:22] + fmt.Sprintf("%02d%02d", mins/60, mins%60) - } - t, err := time.Parse("20060102150405.000000-0700", val) - if err != nil { - return err - } - f.Set(reflect.ValueOf(t)) - } - } - case bool: - switch f.Kind() { - case reflect.Bool: - f.SetBool(val) - default: - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: "not a bool", - } - } - case float32: - switch f.Kind() { - case reflect.Float32: - f.SetFloat(float64(val)) - default: - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: "not a Float32", - } - } - default: - if f.Kind() == reflect.Slice { - switch f.Type().Elem().Kind() { - case reflect.String: - safeArray := prop.ToArray() - if safeArray != nil { - arr := safeArray.ToValueArray() - fArr := reflect.MakeSlice(f.Type(), len(arr), len(arr)) - for i, v := range arr { - s := fArr.Index(i) - s.SetString(v.(string)) - } - f.Set(fArr) - } - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - safeArray := prop.ToArray() - if safeArray != nil { - arr := safeArray.ToValueArray() - fArr := reflect.MakeSlice(f.Type(), len(arr), len(arr)) - for i, v := range arr { - s := fArr.Index(i) - s.SetUint(reflect.ValueOf(v).Uint()) - } - f.Set(fArr) - } - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - safeArray := prop.ToArray() - if safeArray != nil { - arr := safeArray.ToValueArray() - fArr := reflect.MakeSlice(f.Type(), len(arr), len(arr)) - for i, v := range arr { - s := fArr.Index(i) - s.SetInt(reflect.ValueOf(v).Int()) - } - f.Set(fArr) - } - default: - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: fmt.Sprintf("unsupported slice type (%T)", val), - } - } - } else { - typeof := reflect.TypeOf(val) - if typeof == nil && (isPtr || c.NonePtrZero) { - if (isPtr && c.PtrNil) || (!isPtr && c.NonePtrZero) { - of.Set(reflect.Zero(of.Type())) - } - break - } - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: fmt.Sprintf("unsupported type (%T)", val), - } - } - } - } - return errFieldMismatch -} - -type multiArgType int - -const ( - multiArgTypeInvalid multiArgType = iota - multiArgTypeStruct - multiArgTypeStructPtr -) - -// checkMultiArg checks that v has type []S, []*S for some struct type S. -// -// It returns what category the slice's elements are, and the reflect.Type -// that represents S. -func checkMultiArg(v reflect.Value) (m multiArgType, elemType reflect.Type) { - if v.Kind() != reflect.Slice { - return multiArgTypeInvalid, nil - } - elemType = v.Type().Elem() - switch elemType.Kind() { - case reflect.Struct: - return multiArgTypeStruct, elemType - case reflect.Ptr: - elemType = elemType.Elem() - if elemType.Kind() == reflect.Struct { - return multiArgTypeStructPtr, elemType - } - } - return multiArgTypeInvalid, nil -} - -func oleInt64(item *ole.IDispatch, prop string) (int64, error) { - v, err := oleutil.GetProperty(item, prop) - if err != nil { - return 0, err - } - defer v.Clear() - - i := int64(v.Val) - return i, nil -} - -// CreateQuery returns a WQL query string that queries all columns of src. where -// is an optional string that is appended to the query, to be used with WHERE -// clauses. In such a case, the "WHERE" string should appear at the beginning. -// The wmi class is obtained by the name of the type. You can pass a optional -// class throught the variadic class parameter which is useful for anonymous -// structs. -func CreateQuery(src interface{}, where string, class ...string) string { - var b bytes.Buffer - b.WriteString("SELECT ") - s := reflect.Indirect(reflect.ValueOf(src)) - t := s.Type() - if s.Kind() == reflect.Slice { - t = t.Elem() - } - if t.Kind() != reflect.Struct { - return "" - } - var fields []string - for i := 0; i < t.NumField(); i++ { - fields = append(fields, t.Field(i).Name) - } - b.WriteString(strings.Join(fields, ", ")) - b.WriteString(" FROM ") - if len(class) > 0 { - b.WriteString(class[0]) - } else { - b.WriteString(t.Name()) - } - b.WriteString(" " + where) - return b.String() -} diff --git a/backend/vendor/go.etcd.io/bbolt/.gitignore b/backend/vendor/go.etcd.io/bbolt/.gitignore deleted file mode 100644 index 9fa948eb..00000000 --- a/backend/vendor/go.etcd.io/bbolt/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*.prof -*.test -*.swp -/bin/ -cover.out -cover-*.out -/.idea -*.iml -/cmd/bbolt/bbolt - diff --git a/backend/vendor/go.etcd.io/bbolt/LICENSE b/backend/vendor/go.etcd.io/bbolt/LICENSE deleted file mode 100644 index 004e77fe..00000000 --- a/backend/vendor/go.etcd.io/bbolt/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Ben Johnson - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/vendor/go.etcd.io/bbolt/Makefile b/backend/vendor/go.etcd.io/bbolt/Makefile deleted file mode 100644 index 18154c63..00000000 --- a/backend/vendor/go.etcd.io/bbolt/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -BRANCH=`git rev-parse --abbrev-ref HEAD` -COMMIT=`git rev-parse --short HEAD` -GOLDFLAGS="-X main.branch $(BRANCH) -X main.commit $(COMMIT)" - -TESTFLAGS_RACE=-race=false -ifdef ENABLE_RACE - TESTFLAGS_RACE=-race=true -endif - -TESTFLAGS_CPU= -ifdef CPU - TESTFLAGS_CPU=-cpu=$(CPU) -endif -TESTFLAGS = $(TESTFLAGS_RACE) $(TESTFLAGS_CPU) $(EXTRA_TESTFLAGS) - -.PHONY: fmt -fmt: - !(gofmt -l -s -d $(shell find . -name \*.go) | grep '[a-z]') - -.PHONY: lint -lint: - golangci-lint run ./... - -.PHONY: test -test: - @echo "hashmap freelist test" - TEST_FREELIST_TYPE=hashmap go test -v ${TESTFLAGS} -timeout 30m - TEST_FREELIST_TYPE=hashmap go test -v ${TESTFLAGS} ./cmd/bbolt - - @echo "array freelist test" - TEST_FREELIST_TYPE=array go test -v ${TESTFLAGS} -timeout 30m - TEST_FREELIST_TYPE=array go test -v ${TESTFLAGS} ./cmd/bbolt - -.PHONY: coverage -coverage: - @echo "hashmap freelist test" - TEST_FREELIST_TYPE=hashmap go test -v -timeout 30m \ - -coverprofile cover-freelist-hashmap.out -covermode atomic - - @echo "array freelist test" - TEST_FREELIST_TYPE=array go test -v -timeout 30m \ - -coverprofile cover-freelist-array.out -covermode atomic - -.PHONY: gofail-enable -gofail-enable: install-gofail - gofail enable . - -.PHONY: gofail-disable -gofail-disable: - gofail disable . - -.PHONY: install-gofail -install-gofail: - go install go.etcd.io/gofail - -.PHONY: test-failpoint -test-failpoint: - @echo "[failpoint] hashmap freelist test" - TEST_FREELIST_TYPE=hashmap go test -v ${TESTFLAGS} -timeout 30m ./tests/failpoint - - @echo "[failpoint] array freelist test" - TEST_FREELIST_TYPE=array go test -v ${TESTFLAGS} -timeout 30m ./tests/failpoint - diff --git a/backend/vendor/go.etcd.io/bbolt/README.md b/backend/vendor/go.etcd.io/bbolt/README.md deleted file mode 100644 index 2be669a6..00000000 --- a/backend/vendor/go.etcd.io/bbolt/README.md +++ /dev/null @@ -1,967 +0,0 @@ -bbolt -===== - -[![Go Report Card](https://goreportcard.com/badge/github.com/etcd-io/bbolt?style=flat-square)](https://goreportcard.com/report/github.com/etcd-io/bbolt) -[![Coverage](https://codecov.io/gh/etcd-io/bbolt/branch/master/graph/badge.svg)](https://codecov.io/gh/etcd-io/bbolt) -[![Build Status Travis](https://img.shields.io/travis/etcd-io/bboltlabs.svg?style=flat-square&&branch=master)](https://travis-ci.com/etcd-io/bbolt) -[![Godoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/etcd-io/bbolt) -[![Releases](https://img.shields.io/github/release/etcd-io/bbolt/all.svg?style=flat-square)](https://github.com/etcd-io/bbolt/releases) -[![LICENSE](https://img.shields.io/github/license/etcd-io/bbolt.svg?style=flat-square)](https://github.com/etcd-io/bbolt/blob/master/LICENSE) - -bbolt is a fork of [Ben Johnson's][gh_ben] [Bolt][bolt] key/value -store. The purpose of this fork is to provide the Go community with an active -maintenance and development target for Bolt; the goal is improved reliability -and stability. bbolt includes bug fixes, performance enhancements, and features -not found in Bolt while preserving backwards compatibility with the Bolt API. - -Bolt is a pure Go key/value store inspired by [Howard Chu's][hyc_symas] -[LMDB project][lmdb]. The goal of the project is to provide a simple, -fast, and reliable database for projects that don't require a full database -server such as Postgres or MySQL. - -Since Bolt is meant to be used as such a low-level piece of functionality, -simplicity is key. The API will be small and only focus on getting values -and setting values. That's it. - -[gh_ben]: https://github.com/benbjohnson -[bolt]: https://github.com/boltdb/bolt -[hyc_symas]: https://twitter.com/hyc_symas -[lmdb]: https://www.symas.com/symas-embedded-database-lmdb - -## Project Status - -Bolt is stable, the API is fixed, and the file format is fixed. Full unit -test coverage and randomized black box testing are used to ensure database -consistency and thread safety. Bolt is currently used in high-load production -environments serving databases as large as 1TB. Many companies such as -Shopify and Heroku use Bolt-backed services every day. - -## Project versioning - -bbolt uses [semantic versioning](http://semver.org). -API should not change between patch and minor releases. -New minor versions may add additional features to the API. - -## Table of Contents - - - [Getting Started](#getting-started) - - [Installing](#installing) - - [Opening a database](#opening-a-database) - - [Transactions](#transactions) - - [Read-write transactions](#read-write-transactions) - - [Read-only transactions](#read-only-transactions) - - [Batch read-write transactions](#batch-read-write-transactions) - - [Managing transactions manually](#managing-transactions-manually) - - [Using buckets](#using-buckets) - - [Using key/value pairs](#using-keyvalue-pairs) - - [Autoincrementing integer for the bucket](#autoincrementing-integer-for-the-bucket) - - [Iterating over keys](#iterating-over-keys) - - [Prefix scans](#prefix-scans) - - [Range scans](#range-scans) - - [ForEach()](#foreach) - - [Nested buckets](#nested-buckets) - - [Database backups](#database-backups) - - [Statistics](#statistics) - - [Read-Only Mode](#read-only-mode) - - [Mobile Use (iOS/Android)](#mobile-use-iosandroid) - - [Resources](#resources) - - [Comparison with other databases](#comparison-with-other-databases) - - [Postgres, MySQL, & other relational databases](#postgres-mysql--other-relational-databases) - - [LevelDB, RocksDB](#leveldb-rocksdb) - - [LMDB](#lmdb) - - [Caveats & Limitations](#caveats--limitations) - - [Reading the Source](#reading-the-source) - - [Other Projects Using Bolt](#other-projects-using-bolt) - -## Getting Started - -### Installing - -To start using Bolt, install Go and run `go get`: -```sh -$ go get go.etcd.io/bbolt@latest -``` - -This will retrieve the library and update your `go.mod` and `go.sum` files. - -To run the command line utility, execute: -```sh -$ go run go.etcd.io/bbolt/cmd/bbolt@latest -``` - -Run `go install` to install the `bbolt` command line utility into -your `$GOBIN` path, which defaults to `$GOPATH/bin` or `$HOME/go/bin` if the -`GOPATH` environment variable is not set. -```sh -$ go install go.etcd.io/bbolt/cmd/bbolt@latest -``` - -### Importing bbolt - -To use bbolt as an embedded key-value store, import as: - -```go -import bolt "go.etcd.io/bbolt" - -db, err := bolt.Open(path, 0666, nil) -if err != nil { - return err -} -defer db.Close() -``` - - -### Opening a database - -The top-level object in Bolt is a `DB`. It is represented as a single file on -your disk and represents a consistent snapshot of your data. - -To open your database, simply use the `bolt.Open()` function: - -```go -package main - -import ( - "log" - - bolt "go.etcd.io/bbolt" -) - -func main() { - // Open the my.db data file in your current directory. - // It will be created if it doesn't exist. - db, err := bolt.Open("my.db", 0600, nil) - if err != nil { - log.Fatal(err) - } - defer db.Close() - - ... -} -``` - -Please note that Bolt obtains a file lock on the data file so multiple processes -cannot open the same database at the same time. Opening an already open Bolt -database will cause it to hang until the other process closes it. To prevent -an indefinite wait you can pass a timeout option to the `Open()` function: - -```go -db, err := bolt.Open("my.db", 0600, &bolt.Options{Timeout: 1 * time.Second}) -``` - - -### Transactions - -Bolt allows only one read-write transaction at a time but allows as many -read-only transactions as you want at a time. Each transaction has a consistent -view of the data as it existed when the transaction started. - -Individual transactions and all objects created from them (e.g. buckets, keys) -are not thread safe. To work with data in multiple goroutines you must start -a transaction for each one or use locking to ensure only one goroutine accesses -a transaction at a time. Creating transaction from the `DB` is thread safe. - -Transactions should not depend on one another and generally shouldn't be opened -simultaneously in the same goroutine. This can cause a deadlock as the read-write -transaction needs to periodically re-map the data file but it cannot do so while -any read-only transaction is open. Even a nested read-only transaction can cause -a deadlock, as the child transaction can block the parent transaction from releasing -its resources. - -#### Read-write transactions - -To start a read-write transaction, you can use the `DB.Update()` function: - -```go -err := db.Update(func(tx *bolt.Tx) error { - ... - return nil -}) -``` - -Inside the closure, you have a consistent view of the database. You commit the -transaction by returning `nil` at the end. You can also rollback the transaction -at any point by returning an error. All database operations are allowed inside -a read-write transaction. - -Always check the return error as it will report any disk failures that can cause -your transaction to not complete. If you return an error within your closure -it will be passed through. - - -#### Read-only transactions - -To start a read-only transaction, you can use the `DB.View()` function: - -```go -err := db.View(func(tx *bolt.Tx) error { - ... - return nil -}) -``` - -You also get a consistent view of the database within this closure, however, -no mutating operations are allowed within a read-only transaction. You can only -retrieve buckets, retrieve values, and copy the database within a read-only -transaction. - - -#### Batch read-write transactions - -Each `DB.Update()` waits for disk to commit the writes. This overhead -can be minimized by combining multiple updates with the `DB.Batch()` -function: - -```go -err := db.Batch(func(tx *bolt.Tx) error { - ... - return nil -}) -``` - -Concurrent Batch calls are opportunistically combined into larger -transactions. Batch is only useful when there are multiple goroutines -calling it. - -The trade-off is that `Batch` can call the given -function multiple times, if parts of the transaction fail. The -function must be idempotent and side effects must take effect only -after a successful return from `DB.Batch()`. - -For example: don't display messages from inside the function, instead -set variables in the enclosing scope: - -```go -var id uint64 -err := db.Batch(func(tx *bolt.Tx) error { - // Find last key in bucket, decode as bigendian uint64, increment - // by one, encode back to []byte, and add new key. - ... - id = newValue - return nil -}) -if err != nil { - return ... -} -fmt.Println("Allocated ID %d", id) -``` - - -#### Managing transactions manually - -The `DB.View()` and `DB.Update()` functions are wrappers around the `DB.Begin()` -function. These helper functions will start the transaction, execute a function, -and then safely close your transaction if an error is returned. This is the -recommended way to use Bolt transactions. - -However, sometimes you may want to manually start and end your transactions. -You can use the `DB.Begin()` function directly but **please** be sure to close -the transaction. - -```go -// Start a writable transaction. -tx, err := db.Begin(true) -if err != nil { - return err -} -defer tx.Rollback() - -// Use the transaction... -_, err := tx.CreateBucket([]byte("MyBucket")) -if err != nil { - return err -} - -// Commit the transaction and check for error. -if err := tx.Commit(); err != nil { - return err -} -``` - -The first argument to `DB.Begin()` is a boolean stating if the transaction -should be writable. - - -### Using buckets - -Buckets are collections of key/value pairs within the database. All keys in a -bucket must be unique. You can create a bucket using the `Tx.CreateBucket()` -function: - -```go -db.Update(func(tx *bolt.Tx) error { - b, err := tx.CreateBucket([]byte("MyBucket")) - if err != nil { - return fmt.Errorf("create bucket: %s", err) - } - return nil -}) -``` - -You can also create a bucket only if it doesn't exist by using the -`Tx.CreateBucketIfNotExists()` function. It's a common pattern to call this -function for all your top-level buckets after you open your database so you can -guarantee that they exist for future transactions. - -To delete a bucket, simply call the `Tx.DeleteBucket()` function. - - -### Using key/value pairs - -To save a key/value pair to a bucket, use the `Bucket.Put()` function: - -```go -db.Update(func(tx *bolt.Tx) error { - b := tx.Bucket([]byte("MyBucket")) - err := b.Put([]byte("answer"), []byte("42")) - return err -}) -``` - -This will set the value of the `"answer"` key to `"42"` in the `MyBucket` -bucket. To retrieve this value, we can use the `Bucket.Get()` function: - -```go -db.View(func(tx *bolt.Tx) error { - b := tx.Bucket([]byte("MyBucket")) - v := b.Get([]byte("answer")) - fmt.Printf("The answer is: %s\n", v) - return nil -}) -``` - -The `Get()` function does not return an error because its operation is -guaranteed to work (unless there is some kind of system failure). If the key -exists then it will return its byte slice value. If it doesn't exist then it -will return `nil`. It's important to note that you can have a zero-length value -set to a key which is different than the key not existing. - -Use the `Bucket.Delete()` function to delete a key from the bucket. - -Please note that values returned from `Get()` are only valid while the -transaction is open. If you need to use a value outside of the transaction -then you must use `copy()` to copy it to another byte slice. - - -### Autoincrementing integer for the bucket -By using the `NextSequence()` function, you can let Bolt determine a sequence -which can be used as the unique identifier for your key/value pairs. See the -example below. - -```go -// CreateUser saves u to the store. The new user ID is set on u once the data is persisted. -func (s *Store) CreateUser(u *User) error { - return s.db.Update(func(tx *bolt.Tx) error { - // Retrieve the users bucket. - // This should be created when the DB is first opened. - b := tx.Bucket([]byte("users")) - - // Generate ID for the user. - // This returns an error only if the Tx is closed or not writeable. - // That can't happen in an Update() call so I ignore the error check. - id, _ := b.NextSequence() - u.ID = int(id) - - // Marshal user data into bytes. - buf, err := json.Marshal(u) - if err != nil { - return err - } - - // Persist bytes to users bucket. - return b.Put(itob(u.ID), buf) - }) -} - -// itob returns an 8-byte big endian representation of v. -func itob(v int) []byte { - b := make([]byte, 8) - binary.BigEndian.PutUint64(b, uint64(v)) - return b -} - -type User struct { - ID int - ... -} -``` - -### Iterating over keys - -Bolt stores its keys in byte-sorted order within a bucket. This makes sequential -iteration over these keys extremely fast. To iterate over keys we'll use a -`Cursor`: - -```go -db.View(func(tx *bolt.Tx) error { - // Assume bucket exists and has keys - b := tx.Bucket([]byte("MyBucket")) - - c := b.Cursor() - - for k, v := c.First(); k != nil; k, v = c.Next() { - fmt.Printf("key=%s, value=%s\n", k, v) - } - - return nil -}) -``` - -The cursor allows you to move to a specific point in the list of keys and move -forward or backward through the keys one at a time. - -The following functions are available on the cursor: - -``` -First() Move to the first key. -Last() Move to the last key. -Seek() Move to a specific key. -Next() Move to the next key. -Prev() Move to the previous key. -``` - -Each of those functions has a return signature of `(key []byte, value []byte)`. -When you have iterated to the end of the cursor then `Next()` will return a -`nil` key. You must seek to a position using `First()`, `Last()`, or `Seek()` -before calling `Next()` or `Prev()`. If you do not seek to a position then -these functions will return a `nil` key. - -During iteration, if the key is non-`nil` but the value is `nil`, that means -the key refers to a bucket rather than a value. Use `Bucket.Bucket()` to -access the sub-bucket. - - -#### Prefix scans - -To iterate over a key prefix, you can combine `Seek()` and `bytes.HasPrefix()`: - -```go -db.View(func(tx *bolt.Tx) error { - // Assume bucket exists and has keys - c := tx.Bucket([]byte("MyBucket")).Cursor() - - prefix := []byte("1234") - for k, v := c.Seek(prefix); k != nil && bytes.HasPrefix(k, prefix); k, v = c.Next() { - fmt.Printf("key=%s, value=%s\n", k, v) - } - - return nil -}) -``` - -#### Range scans - -Another common use case is scanning over a range such as a time range. If you -use a sortable time encoding such as RFC3339 then you can query a specific -date range like this: - -```go -db.View(func(tx *bolt.Tx) error { - // Assume our events bucket exists and has RFC3339 encoded time keys. - c := tx.Bucket([]byte("Events")).Cursor() - - // Our time range spans the 90's decade. - min := []byte("1990-01-01T00:00:00Z") - max := []byte("2000-01-01T00:00:00Z") - - // Iterate over the 90's. - for k, v := c.Seek(min); k != nil && bytes.Compare(k, max) <= 0; k, v = c.Next() { - fmt.Printf("%s: %s\n", k, v) - } - - return nil -}) -``` - -Note that, while RFC3339 is sortable, the Golang implementation of RFC3339Nano does not use a fixed number of digits after the decimal point and is therefore not sortable. - - -#### ForEach() - -You can also use the function `ForEach()` if you know you'll be iterating over -all the keys in a bucket: - -```go -db.View(func(tx *bolt.Tx) error { - // Assume bucket exists and has keys - b := tx.Bucket([]byte("MyBucket")) - - b.ForEach(func(k, v []byte) error { - fmt.Printf("key=%s, value=%s\n", k, v) - return nil - }) - return nil -}) -``` - -Please note that keys and values in `ForEach()` are only valid while -the transaction is open. If you need to use a key or value outside of -the transaction, you must use `copy()` to copy it to another byte -slice. - -### Nested buckets - -You can also store a bucket in a key to create nested buckets. The API is the -same as the bucket management API on the `DB` object: - -```go -func (*Bucket) CreateBucket(key []byte) (*Bucket, error) -func (*Bucket) CreateBucketIfNotExists(key []byte) (*Bucket, error) -func (*Bucket) DeleteBucket(key []byte) error -``` - -Say you had a multi-tenant application where the root level bucket was the account bucket. Inside of this bucket was a sequence of accounts which themselves are buckets. And inside the sequence bucket you could have many buckets pertaining to the Account itself (Users, Notes, etc) isolating the information into logical groupings. - -```go - -// createUser creates a new user in the given account. -func createUser(accountID int, u *User) error { - // Start the transaction. - tx, err := db.Begin(true) - if err != nil { - return err - } - defer tx.Rollback() - - // Retrieve the root bucket for the account. - // Assume this has already been created when the account was set up. - root := tx.Bucket([]byte(strconv.FormatUint(accountID, 10))) - - // Setup the users bucket. - bkt, err := root.CreateBucketIfNotExists([]byte("USERS")) - if err != nil { - return err - } - - // Generate an ID for the new user. - userID, err := bkt.NextSequence() - if err != nil { - return err - } - u.ID = userID - - // Marshal and save the encoded user. - if buf, err := json.Marshal(u); err != nil { - return err - } else if err := bkt.Put([]byte(strconv.FormatUint(u.ID, 10)), buf); err != nil { - return err - } - - // Commit the transaction. - if err := tx.Commit(); err != nil { - return err - } - - return nil -} - -``` - - - - -### Database backups - -Bolt is a single file so it's easy to backup. You can use the `Tx.WriteTo()` -function to write a consistent view of the database to a writer. If you call -this from a read-only transaction, it will perform a hot backup and not block -your other database reads and writes. - -By default, it will use a regular file handle which will utilize the operating -system's page cache. See the [`Tx`](https://godoc.org/go.etcd.io/bbolt#Tx) -documentation for information about optimizing for larger-than-RAM datasets. - -One common use case is to backup over HTTP so you can use tools like `cURL` to -do database backups: - -```go -func BackupHandleFunc(w http.ResponseWriter, req *http.Request) { - err := db.View(func(tx *bolt.Tx) error { - w.Header().Set("Content-Type", "application/octet-stream") - w.Header().Set("Content-Disposition", `attachment; filename="my.db"`) - w.Header().Set("Content-Length", strconv.Itoa(int(tx.Size()))) - _, err := tx.WriteTo(w) - return err - }) - if err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - } -} -``` - -Then you can backup using this command: - -```sh -$ curl http://localhost/backup > my.db -``` - -Or you can open your browser to `http://localhost/backup` and it will download -automatically. - -If you want to backup to another file you can use the `Tx.CopyFile()` helper -function. - - -### Statistics - -The database keeps a running count of many of the internal operations it -performs so you can better understand what's going on. By grabbing a snapshot -of these stats at two points in time we can see what operations were performed -in that time range. - -For example, we could start a goroutine to log stats every 10 seconds: - -```go -go func() { - // Grab the initial stats. - prev := db.Stats() - - for { - // Wait for 10s. - time.Sleep(10 * time.Second) - - // Grab the current stats and diff them. - stats := db.Stats() - diff := stats.Sub(&prev) - - // Encode stats to JSON and print to STDERR. - json.NewEncoder(os.Stderr).Encode(diff) - - // Save stats for the next loop. - prev = stats - } -}() -``` - -It's also useful to pipe these stats to a service such as statsd for monitoring -or to provide an HTTP endpoint that will perform a fixed-length sample. - - -### Read-Only Mode - -Sometimes it is useful to create a shared, read-only Bolt database. To this, -set the `Options.ReadOnly` flag when opening your database. Read-only mode -uses a shared lock to allow multiple processes to read from the database but -it will block any processes from opening the database in read-write mode. - -```go -db, err := bolt.Open("my.db", 0666, &bolt.Options{ReadOnly: true}) -if err != nil { - log.Fatal(err) -} -``` - -### Mobile Use (iOS/Android) - -Bolt is able to run on mobile devices by leveraging the binding feature of the -[gomobile](https://github.com/golang/mobile) tool. Create a struct that will -contain your database logic and a reference to a `*bolt.DB` with a initializing -constructor that takes in a filepath where the database file will be stored. -Neither Android nor iOS require extra permissions or cleanup from using this method. - -```go -func NewBoltDB(filepath string) *BoltDB { - db, err := bolt.Open(filepath+"/demo.db", 0600, nil) - if err != nil { - log.Fatal(err) - } - - return &BoltDB{db} -} - -type BoltDB struct { - db *bolt.DB - ... -} - -func (b *BoltDB) Path() string { - return b.db.Path() -} - -func (b *BoltDB) Close() { - b.db.Close() -} -``` - -Database logic should be defined as methods on this wrapper struct. - -To initialize this struct from the native language (both platforms now sync -their local storage to the cloud. These snippets disable that functionality for the -database file): - -#### Android - -```java -String path; -if (android.os.Build.VERSION.SDK_INT >=android.os.Build.VERSION_CODES.LOLLIPOP){ - path = getNoBackupFilesDir().getAbsolutePath(); -} else{ - path = getFilesDir().getAbsolutePath(); -} -Boltmobiledemo.BoltDB boltDB = Boltmobiledemo.NewBoltDB(path) -``` - -#### iOS - -```objc -- (void)demo { - NSString* path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, - NSUserDomainMask, - YES) objectAtIndex:0]; - GoBoltmobiledemoBoltDB * demo = GoBoltmobiledemoNewBoltDB(path); - [self addSkipBackupAttributeToItemAtPath:demo.path]; - //Some DB Logic would go here - [demo close]; -} - -- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString -{ - NSURL* URL= [NSURL fileURLWithPath: filePathString]; - assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); - - NSError *error = nil; - BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] - forKey: NSURLIsExcludedFromBackupKey error: &error]; - if(!success){ - NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); - } - return success; -} - -``` - -## Resources - -For more information on getting started with Bolt, check out the following articles: - -* [Intro to BoltDB: Painless Performant Persistence](http://npf.io/2014/07/intro-to-boltdb-painless-performant-persistence/) by [Nate Finch](https://github.com/natefinch). -* [Bolt -- an embedded key/value database for Go](https://www.progville.com/go/bolt-embedded-db-golang/) by Progville - - -## Comparison with other databases - -### Postgres, MySQL, & other relational databases - -Relational databases structure data into rows and are only accessible through -the use of SQL. This approach provides flexibility in how you store and query -your data but also incurs overhead in parsing and planning SQL statements. Bolt -accesses all data by a byte slice key. This makes Bolt fast to read and write -data by key but provides no built-in support for joining values together. - -Most relational databases (with the exception of SQLite) are standalone servers -that run separately from your application. This gives your systems -flexibility to connect multiple application servers to a single database -server but also adds overhead in serializing and transporting data over the -network. Bolt runs as a library included in your application so all data access -has to go through your application's process. This brings data closer to your -application but limits multi-process access to the data. - - -### LevelDB, RocksDB - -LevelDB and its derivatives (RocksDB, HyperLevelDB) are similar to Bolt in that -they are libraries bundled into the application, however, their underlying -structure is a log-structured merge-tree (LSM tree). An LSM tree optimizes -random writes by using a write ahead log and multi-tiered, sorted files called -SSTables. Bolt uses a B+tree internally and only a single file. Both approaches -have trade-offs. - -If you require a high random write throughput (>10,000 w/sec) or you need to use -spinning disks then LevelDB could be a good choice. If your application is -read-heavy or does a lot of range scans then Bolt could be a good choice. - -One other important consideration is that LevelDB does not have transactions. -It supports batch writing of key/values pairs and it supports read snapshots -but it will not give you the ability to do a compare-and-swap operation safely. -Bolt supports fully serializable ACID transactions. - - -### LMDB - -Bolt was originally a port of LMDB so it is architecturally similar. Both use -a B+tree, have ACID semantics with fully serializable transactions, and support -lock-free MVCC using a single writer and multiple readers. - -The two projects have somewhat diverged. LMDB heavily focuses on raw performance -while Bolt has focused on simplicity and ease of use. For example, LMDB allows -several unsafe actions such as direct writes for the sake of performance. Bolt -opts to disallow actions which can leave the database in a corrupted state. The -only exception to this in Bolt is `DB.NoSync`. - -There are also a few differences in API. LMDB requires a maximum mmap size when -opening an `mdb_env` whereas Bolt will handle incremental mmap resizing -automatically. LMDB overloads the getter and setter functions with multiple -flags whereas Bolt splits these specialized cases into their own functions. - - -## Caveats & Limitations - -It's important to pick the right tool for the job and Bolt is no exception. -Here are a few things to note when evaluating and using Bolt: - -* Bolt is good for read intensive workloads. Sequential write performance is - also fast but random writes can be slow. You can use `DB.Batch()` or add a - write-ahead log to help mitigate this issue. - -* Bolt uses a B+tree internally so there can be a lot of random page access. - SSDs provide a significant performance boost over spinning disks. - -* Try to avoid long running read transactions. Bolt uses copy-on-write so - old pages cannot be reclaimed while an old transaction is using them. - -* Byte slices returned from Bolt are only valid during a transaction. Once the - transaction has been committed or rolled back then the memory they point to - can be reused by a new page or can be unmapped from virtual memory and you'll - see an `unexpected fault address` panic when accessing it. - -* Bolt uses an exclusive write lock on the database file so it cannot be - shared by multiple processes. - -* Be careful when using `Bucket.FillPercent`. Setting a high fill percent for - buckets that have random inserts will cause your database to have very poor - page utilization. - -* Use larger buckets in general. Smaller buckets causes poor page utilization - once they become larger than the page size (typically 4KB). - -* Bulk loading a lot of random writes into a new bucket can be slow as the - page will not split until the transaction is committed. Randomly inserting - more than 100,000 key/value pairs into a single new bucket in a single - transaction is not advised. - -* Bolt uses a memory-mapped file so the underlying operating system handles the - caching of the data. Typically, the OS will cache as much of the file as it - can in memory and will release memory as needed to other processes. This means - that Bolt can show very high memory usage when working with large databases. - However, this is expected and the OS will release memory as needed. Bolt can - handle databases much larger than the available physical RAM, provided its - memory-map fits in the process virtual address space. It may be problematic - on 32-bits systems. - -* The data structures in the Bolt database are memory mapped so the data file - will be endian specific. This means that you cannot copy a Bolt file from a - little endian machine to a big endian machine and have it work. For most - users this is not a concern since most modern CPUs are little endian. - -* Because of the way pages are laid out on disk, Bolt cannot truncate data files - and return free pages back to the disk. Instead, Bolt maintains a free list - of unused pages within its data file. These free pages can be reused by later - transactions. This works well for many use cases as databases generally tend - to grow. However, it's important to note that deleting large chunks of data - will not allow you to reclaim that space on disk. - - For more information on page allocation, [see this comment][page-allocation]. - -[page-allocation]: https://github.com/boltdb/bolt/issues/308#issuecomment-74811638 - - -## Reading the Source - -Bolt is a relatively small code base (<5KLOC) for an embedded, serializable, -transactional key/value database so it can be a good starting point for people -interested in how databases work. - -The best places to start are the main entry points into Bolt: - -- `Open()` - Initializes the reference to the database. It's responsible for - creating the database if it doesn't exist, obtaining an exclusive lock on the - file, reading the meta pages, & memory-mapping the file. - -- `DB.Begin()` - Starts a read-only or read-write transaction depending on the - value of the `writable` argument. This requires briefly obtaining the "meta" - lock to keep track of open transactions. Only one read-write transaction can - exist at a time so the "rwlock" is acquired during the life of a read-write - transaction. - -- `Bucket.Put()` - Writes a key/value pair into a bucket. After validating the - arguments, a cursor is used to traverse the B+tree to the page and position - where they key & value will be written. Once the position is found, the bucket - materializes the underlying page and the page's parent pages into memory as - "nodes". These nodes are where mutations occur during read-write transactions. - These changes get flushed to disk during commit. - -- `Bucket.Get()` - Retrieves a key/value pair from a bucket. This uses a cursor - to move to the page & position of a key/value pair. During a read-only - transaction, the key and value data is returned as a direct reference to the - underlying mmap file so there's no allocation overhead. For read-write - transactions, this data may reference the mmap file or one of the in-memory - node values. - -- `Cursor` - This object is simply for traversing the B+tree of on-disk pages - or in-memory nodes. It can seek to a specific key, move to the first or last - value, or it can move forward or backward. The cursor handles the movement up - and down the B+tree transparently to the end user. - -- `Tx.Commit()` - Converts the in-memory dirty nodes and the list of free pages - into pages to be written to disk. Writing to disk then occurs in two phases. - First, the dirty pages are written to disk and an `fsync()` occurs. Second, a - new meta page with an incremented transaction ID is written and another - `fsync()` occurs. This two phase write ensures that partially written data - pages are ignored in the event of a crash since the meta page pointing to them - is never written. Partially written meta pages are invalidated because they - are written with a checksum. - -If you have additional notes that could be helpful for others, please submit -them via pull request. - - -## Other Projects Using Bolt - -Below is a list of public, open source projects that use Bolt: - -* [Algernon](https://github.com/xyproto/algernon) - A HTTP/2 web server with built-in support for Lua. Uses BoltDB as the default database backend. -* [Bazil](https://bazil.org/) - A file system that lets your data reside where it is most convenient for it to reside. -* [bolter](https://github.com/hasit/bolter) - Command-line app for viewing BoltDB file in your terminal. -* [boltcli](https://github.com/spacewander/boltcli) - the redis-cli for boltdb with Lua script support. -* [BoltHold](https://github.com/timshannon/bolthold) - An embeddable NoSQL store for Go types built on BoltDB -* [BoltStore](https://github.com/yosssi/boltstore) - Session store using Bolt. -* [Boltdb Boilerplate](https://github.com/bobintornado/boltdb-boilerplate) - Boilerplate wrapper around bolt aiming to make simple calls one-liners. -* [BoltDbWeb](https://github.com/evnix/boltdbweb) - A web based GUI for BoltDB files. -* [BoltDB Viewer](https://github.com/zc310/rich_boltdb) - A BoltDB Viewer Can run on Windows、Linux、Android system. -* [bleve](http://www.blevesearch.com/) - A pure Go search engine similar to ElasticSearch that uses Bolt as the default storage backend. -* [btcwallet](https://github.com/btcsuite/btcwallet) - A bitcoin wallet. -* [buckets](https://github.com/joyrexus/buckets) - a bolt wrapper streamlining - simple tx and key scans. -* [cayley](https://github.com/google/cayley) - Cayley is an open-source graph database using Bolt as optional backend. -* [ChainStore](https://github.com/pressly/chainstore) - Simple key-value interface to a variety of storage engines organized as a chain of operations. -* [🌰 Chestnut](https://github.com/jrapoport/chestnut) - Chestnut is encrypted storage for Go. -* [Consul](https://github.com/hashicorp/consul) - Consul is service discovery and configuration made easy. Distributed, highly available, and datacenter-aware. -* [DVID](https://github.com/janelia-flyem/dvid) - Added Bolt as optional storage engine and testing it against Basho-tuned leveldb. -* [dcrwallet](https://github.com/decred/dcrwallet) - A wallet for the Decred cryptocurrency. -* [drive](https://github.com/odeke-em/drive) - drive is an unofficial Google Drive command line client for \*NIX operating systems. -* [event-shuttle](https://github.com/sclasen/event-shuttle) - A Unix system service to collect and reliably deliver messages to Kafka. -* [Freehold](http://tshannon.bitbucket.org/freehold/) - An open, secure, and lightweight platform for your files and data. -* [Go Report Card](https://goreportcard.com/) - Go code quality report cards as a (free and open source) service. -* [GoWebApp](https://github.com/josephspurrier/gowebapp) - A basic MVC web application in Go using BoltDB. -* [GoShort](https://github.com/pankajkhairnar/goShort) - GoShort is a URL shortener written in Golang and BoltDB for persistent key/value storage and for routing it's using high performent HTTPRouter. -* [gopherpit](https://github.com/gopherpit/gopherpit) - A web service to manage Go remote import paths with custom domains -* [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more) -* [Gitchain](https://github.com/gitchain/gitchain) - Decentralized, peer-to-peer Git repositories aka "Git meets Bitcoin". -* [InfluxDB](https://influxdata.com) - Scalable datastore for metrics, events, and real-time analytics. -* [ipLocator](https://github.com/AndreasBriese/ipLocator) - A fast ip-geo-location-server using bolt with bloom filters. -* [ipxed](https://github.com/kelseyhightower/ipxed) - Web interface and api for ipxed. -* [Ironsmith](https://github.com/timshannon/ironsmith) - A simple, script-driven continuous integration (build - > test -> release) tool, with no external dependencies -* [Kala](https://github.com/ajvb/kala) - Kala is a modern job scheduler optimized to run on a single node. It is persistent, JSON over HTTP API, ISO 8601 duration notation, and dependent jobs. -* [Key Value Access Language (KVAL)](https://github.com/kval-access-language) - A proposed grammar for key-value datastores offering a bbolt binding. -* [LedisDB](https://github.com/siddontang/ledisdb) - A high performance NoSQL, using Bolt as optional storage. -* [lru](https://github.com/crowdriff/lru) - Easy to use Bolt-backed Least-Recently-Used (LRU) read-through cache with chainable remote stores. -* [mbuckets](https://github.com/abhigupta912/mbuckets) - A Bolt wrapper that allows easy operations on multi level (nested) buckets. -* [MetricBase](https://github.com/msiebuhr/MetricBase) - Single-binary version of Graphite. -* [MuLiFS](https://github.com/dankomiocevic/mulifs) - Music Library Filesystem creates a filesystem to organise your music files. -* [NATS](https://github.com/nats-io/nats-streaming-server) - NATS Streaming uses bbolt for message and metadata storage. -* [Prometheus Annotation Server](https://github.com/oliver006/prom_annotation_server) - Annotation server for PromDash & Prometheus service monitoring system. -* [Rain](https://github.com/cenkalti/rain) - BitTorrent client and library. -* [reef-pi](https://github.com/reef-pi/reef-pi) - reef-pi is an award winning, modular, DIY reef tank controller using easy to learn electronics based on a Raspberry Pi. -* [Request Baskets](https://github.com/darklynx/request-baskets) - A web service to collect arbitrary HTTP requests and inspect them via REST API or simple web UI, similar to [RequestBin](http://requestb.in/) service -* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Highly scalable distributed key~file system with O(1) disk read. -* [stow](https://github.com/djherbis/stow) - a persistence manager for objects - backed by boltdb. -* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. -* [SimpleBolt](https://github.com/xyproto/simplebolt) - A simple way to use BoltDB. Deals mainly with strings. -* [Skybox Analytics](https://github.com/skybox/skybox) - A standalone funnel analysis tool for web analytics. -* [Scuttlebutt](https://github.com/benbjohnson/scuttlebutt) - Uses Bolt to store and process all Twitter mentions of GitHub projects. -* [tentacool](https://github.com/optiflows/tentacool) - REST api server to manage system stuff (IP, DNS, Gateway...) on a linux server. -* [torrent](https://github.com/anacrolix/torrent) - Full-featured BitTorrent client package and utilities in Go. BoltDB is a storage backend in development. -* [Wiki](https://github.com/peterhellberg/wiki) - A tiny wiki using Goji, BoltDB and Blackfriday. - -If you are using Bolt in a project please send a pull request to add it to the list. diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_386.go b/backend/vendor/go.etcd.io/bbolt/bolt_386.go deleted file mode 100644 index aee25960..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_386.go +++ /dev/null @@ -1,7 +0,0 @@ -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0x7FFFFFFF // 2GB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0xFFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_amd64.go b/backend/vendor/go.etcd.io/bbolt/bolt_amd64.go deleted file mode 100644 index 5dd8f3f2..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_amd64.go +++ /dev/null @@ -1,7 +0,0 @@ -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_arm.go b/backend/vendor/go.etcd.io/bbolt/bolt_arm.go deleted file mode 100644 index aee25960..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_arm.go +++ /dev/null @@ -1,7 +0,0 @@ -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0x7FFFFFFF // 2GB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0xFFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_arm64.go b/backend/vendor/go.etcd.io/bbolt/bolt_arm64.go deleted file mode 100644 index 447bc197..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_arm64.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build arm64 -// +build arm64 - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_linux.go b/backend/vendor/go.etcd.io/bbolt/bolt_linux.go deleted file mode 100644 index 7707bcac..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_linux.go +++ /dev/null @@ -1,10 +0,0 @@ -package bbolt - -import ( - "syscall" -) - -// fdatasync flushes written data to a file descriptor. -func fdatasync(db *DB) error { - return syscall.Fdatasync(int(db.file.Fd())) -} diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_loong64.go b/backend/vendor/go.etcd.io/bbolt/bolt_loong64.go deleted file mode 100644 index 31c17c1d..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_loong64.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build loong64 -// +build loong64 - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_mips64x.go b/backend/vendor/go.etcd.io/bbolt/bolt_mips64x.go deleted file mode 100644 index a9385beb..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_mips64x.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build mips64 || mips64le -// +build mips64 mips64le - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0x8000000000 // 512GB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_mipsx.go b/backend/vendor/go.etcd.io/bbolt/bolt_mipsx.go deleted file mode 100644 index ed734ff7..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_mipsx.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build mips || mipsle -// +build mips mipsle - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0x40000000 // 1GB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0xFFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_openbsd.go b/backend/vendor/go.etcd.io/bbolt/bolt_openbsd.go deleted file mode 100644 index d7f50358..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_openbsd.go +++ /dev/null @@ -1,27 +0,0 @@ -package bbolt - -import ( - "syscall" - "unsafe" -) - -const ( - msAsync = 1 << iota // perform asynchronous writes - msSync // perform synchronous writes - msInvalidate // invalidate cached data -) - -func msync(db *DB) error { - _, _, errno := syscall.Syscall(syscall.SYS_MSYNC, uintptr(unsafe.Pointer(db.data)), uintptr(db.datasz), msInvalidate) - if errno != 0 { - return errno - } - return nil -} - -func fdatasync(db *DB) error { - if db.data != nil { - return msync(db) - } - return db.file.Sync() -} diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_ppc.go b/backend/vendor/go.etcd.io/bbolt/bolt_ppc.go deleted file mode 100644 index e403f57d..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_ppc.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build ppc -// +build ppc - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0x7FFFFFFF // 2GB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0xFFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_ppc64.go b/backend/vendor/go.etcd.io/bbolt/bolt_ppc64.go deleted file mode 100644 index fcd86529..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_ppc64.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build ppc64 -// +build ppc64 - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_ppc64le.go b/backend/vendor/go.etcd.io/bbolt/bolt_ppc64le.go deleted file mode 100644 index 20234aca..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_ppc64le.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build ppc64le -// +build ppc64le - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_riscv64.go b/backend/vendor/go.etcd.io/bbolt/bolt_riscv64.go deleted file mode 100644 index 060f30c7..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_riscv64.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build riscv64 -// +build riscv64 - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_s390x.go b/backend/vendor/go.etcd.io/bbolt/bolt_s390x.go deleted file mode 100644 index 92d2755a..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_s390x.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build s390x -// +build s390x - -package bbolt - -// maxMapSize represents the largest mmap size supported by Bolt. -const maxMapSize = 0xFFFFFFFFFFFF // 256TB - -// maxAllocSize is the size used when creating array pointers. -const maxAllocSize = 0x7FFFFFFF diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_unix.go b/backend/vendor/go.etcd.io/bbolt/bolt_unix.go deleted file mode 100644 index 757ae4d1..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_unix.go +++ /dev/null @@ -1,87 +0,0 @@ -//go:build !windows && !plan9 && !solaris && !aix -// +build !windows,!plan9,!solaris,!aix - -package bbolt - -import ( - "fmt" - "syscall" - "time" - "unsafe" - - "golang.org/x/sys/unix" -) - -// flock acquires an advisory lock on a file descriptor. -func flock(db *DB, exclusive bool, timeout time.Duration) error { - var t time.Time - if timeout != 0 { - t = time.Now() - } - fd := db.file.Fd() - flag := syscall.LOCK_NB - if exclusive { - flag |= syscall.LOCK_EX - } else { - flag |= syscall.LOCK_SH - } - for { - // Attempt to obtain an exclusive lock. - err := syscall.Flock(int(fd), flag) - if err == nil { - return nil - } else if err != syscall.EWOULDBLOCK { - return err - } - - // If we timed out then return an error. - if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout { - return ErrTimeout - } - - // Wait for a bit and try again. - time.Sleep(flockRetryTimeout) - } -} - -// funlock releases an advisory lock on a file descriptor. -func funlock(db *DB) error { - return syscall.Flock(int(db.file.Fd()), syscall.LOCK_UN) -} - -// mmap memory maps a DB's data file. -func mmap(db *DB, sz int) error { - // Map the data file to memory. - b, err := unix.Mmap(int(db.file.Fd()), 0, sz, syscall.PROT_READ, syscall.MAP_SHARED|db.MmapFlags) - if err != nil { - return err - } - - // Advise the kernel that the mmap is accessed randomly. - err = unix.Madvise(b, syscall.MADV_RANDOM) - if err != nil && err != syscall.ENOSYS { - // Ignore not implemented error in kernel because it still works. - return fmt.Errorf("madvise: %s", err) - } - - // Save the original byte slice and convert to a byte array pointer. - db.dataref = b - db.data = (*[maxMapSize]byte)(unsafe.Pointer(&b[0])) - db.datasz = sz - return nil -} - -// munmap unmaps a DB's data file from memory. -func munmap(db *DB) error { - // Ignore the unmap if we have no mapped data. - if db.dataref == nil { - return nil - } - - // Unmap using the original byte slice. - err := unix.Munmap(db.dataref) - db.dataref = nil - db.data = nil - db.datasz = 0 - return err -} diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_unix_aix.go b/backend/vendor/go.etcd.io/bbolt/bolt_unix_aix.go deleted file mode 100644 index 6dea4294..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_unix_aix.go +++ /dev/null @@ -1,91 +0,0 @@ -//go:build aix -// +build aix - -package bbolt - -import ( - "fmt" - "syscall" - "time" - "unsafe" - - "golang.org/x/sys/unix" -) - -// flock acquires an advisory lock on a file descriptor. -func flock(db *DB, exclusive bool, timeout time.Duration) error { - var t time.Time - if timeout != 0 { - t = time.Now() - } - fd := db.file.Fd() - var lockType int16 - if exclusive { - lockType = syscall.F_WRLCK - } else { - lockType = syscall.F_RDLCK - } - for { - // Attempt to obtain an exclusive lock. - lock := syscall.Flock_t{Type: lockType} - err := syscall.FcntlFlock(fd, syscall.F_SETLK, &lock) - if err == nil { - return nil - } else if err != syscall.EAGAIN { - return err - } - - // If we timed out then return an error. - if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout { - return ErrTimeout - } - - // Wait for a bit and try again. - time.Sleep(flockRetryTimeout) - } -} - -// funlock releases an advisory lock on a file descriptor. -func funlock(db *DB) error { - var lock syscall.Flock_t - lock.Start = 0 - lock.Len = 0 - lock.Type = syscall.F_UNLCK - lock.Whence = 0 - return syscall.FcntlFlock(uintptr(db.file.Fd()), syscall.F_SETLK, &lock) -} - -// mmap memory maps a DB's data file. -func mmap(db *DB, sz int) error { - // Map the data file to memory. - b, err := unix.Mmap(int(db.file.Fd()), 0, sz, syscall.PROT_READ, syscall.MAP_SHARED|db.MmapFlags) - if err != nil { - return err - } - - // Advise the kernel that the mmap is accessed randomly. - if err := unix.Madvise(b, syscall.MADV_RANDOM); err != nil { - return fmt.Errorf("madvise: %s", err) - } - - // Save the original byte slice and convert to a byte array pointer. - db.dataref = b - db.data = (*[maxMapSize]byte)(unsafe.Pointer(&b[0])) - db.datasz = sz - return nil -} - -// munmap unmaps a DB's data file from memory. -func munmap(db *DB) error { - // Ignore the unmap if we have no mapped data. - if db.dataref == nil { - return nil - } - - // Unmap using the original byte slice. - err := unix.Munmap(db.dataref) - db.dataref = nil - db.data = nil - db.datasz = 0 - return err -} diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go b/backend/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go deleted file mode 100644 index babad657..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go +++ /dev/null @@ -1,88 +0,0 @@ -package bbolt - -import ( - "fmt" - "syscall" - "time" - "unsafe" - - "golang.org/x/sys/unix" -) - -// flock acquires an advisory lock on a file descriptor. -func flock(db *DB, exclusive bool, timeout time.Duration) error { - var t time.Time - if timeout != 0 { - t = time.Now() - } - fd := db.file.Fd() - var lockType int16 - if exclusive { - lockType = syscall.F_WRLCK - } else { - lockType = syscall.F_RDLCK - } - for { - // Attempt to obtain an exclusive lock. - lock := syscall.Flock_t{Type: lockType} - err := syscall.FcntlFlock(fd, syscall.F_SETLK, &lock) - if err == nil { - return nil - } else if err != syscall.EAGAIN { - return err - } - - // If we timed out then return an error. - if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout { - return ErrTimeout - } - - // Wait for a bit and try again. - time.Sleep(flockRetryTimeout) - } -} - -// funlock releases an advisory lock on a file descriptor. -func funlock(db *DB) error { - var lock syscall.Flock_t - lock.Start = 0 - lock.Len = 0 - lock.Type = syscall.F_UNLCK - lock.Whence = 0 - return syscall.FcntlFlock(uintptr(db.file.Fd()), syscall.F_SETLK, &lock) -} - -// mmap memory maps a DB's data file. -func mmap(db *DB, sz int) error { - // Map the data file to memory. - b, err := unix.Mmap(int(db.file.Fd()), 0, sz, syscall.PROT_READ, syscall.MAP_SHARED|db.MmapFlags) - if err != nil { - return err - } - - // Advise the kernel that the mmap is accessed randomly. - if err := unix.Madvise(b, syscall.MADV_RANDOM); err != nil { - return fmt.Errorf("madvise: %s", err) - } - - // Save the original byte slice and convert to a byte array pointer. - db.dataref = b - db.data = (*[maxMapSize]byte)(unsafe.Pointer(&b[0])) - db.datasz = sz - return nil -} - -// munmap unmaps a DB's data file from memory. -func munmap(db *DB) error { - // Ignore the unmap if we have no mapped data. - if db.dataref == nil { - return nil - } - - // Unmap using the original byte slice. - err := unix.Munmap(db.dataref) - db.dataref = nil - db.data = nil - db.datasz = 0 - return err -} diff --git a/backend/vendor/go.etcd.io/bbolt/bolt_windows.go b/backend/vendor/go.etcd.io/bbolt/bolt_windows.go deleted file mode 100644 index e5dde274..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bolt_windows.go +++ /dev/null @@ -1,117 +0,0 @@ -package bbolt - -import ( - "fmt" - "os" - "syscall" - "time" - "unsafe" - - "golang.org/x/sys/windows" -) - -// fdatasync flushes written data to a file descriptor. -func fdatasync(db *DB) error { - return db.file.Sync() -} - -// flock acquires an advisory lock on a file descriptor. -func flock(db *DB, exclusive bool, timeout time.Duration) error { - var t time.Time - if timeout != 0 { - t = time.Now() - } - var flags uint32 = windows.LOCKFILE_FAIL_IMMEDIATELY - if exclusive { - flags |= windows.LOCKFILE_EXCLUSIVE_LOCK - } - for { - // Fix for https://github.com/etcd-io/bbolt/issues/121. Use byte-range - // -1..0 as the lock on the database file. - var m1 uint32 = (1 << 32) - 1 // -1 in a uint32 - err := windows.LockFileEx(windows.Handle(db.file.Fd()), flags, 0, 1, 0, &windows.Overlapped{ - Offset: m1, - OffsetHigh: m1, - }) - - if err == nil { - return nil - } else if err != windows.ERROR_LOCK_VIOLATION { - return err - } - - // If we timed oumercit then return an error. - if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout { - return ErrTimeout - } - - // Wait for a bit and try again. - time.Sleep(flockRetryTimeout) - } -} - -// funlock releases an advisory lock on a file descriptor. -func funlock(db *DB) error { - var m1 uint32 = (1 << 32) - 1 // -1 in a uint32 - return windows.UnlockFileEx(windows.Handle(db.file.Fd()), 0, 1, 0, &windows.Overlapped{ - Offset: m1, - OffsetHigh: m1, - }) -} - -// mmap memory maps a DB's data file. -// Based on: https://github.com/edsrzf/mmap-go -func mmap(db *DB, sz int) error { - var sizelo, sizehi uint32 - - if !db.readOnly { - // Truncate the database to the size of the mmap. - if err := db.file.Truncate(int64(sz)); err != nil { - return fmt.Errorf("truncate: %s", err) - } - sizehi = uint32(sz >> 32) - sizelo = uint32(sz) & 0xffffffff - } - - // Open a file mapping handle. - h, errno := syscall.CreateFileMapping(syscall.Handle(db.file.Fd()), nil, syscall.PAGE_READONLY, sizehi, sizelo, nil) - if h == 0 { - return os.NewSyscallError("CreateFileMapping", errno) - } - - // Create the memory map. - addr, errno := syscall.MapViewOfFile(h, syscall.FILE_MAP_READ, 0, 0, 0) - if addr == 0 { - // Do our best and report error returned from MapViewOfFile. - _ = syscall.CloseHandle(h) - return os.NewSyscallError("MapViewOfFile", errno) - } - - // Close mapping handle. - if err := syscall.CloseHandle(syscall.Handle(h)); err != nil { - return os.NewSyscallError("CloseHandle", err) - } - - // Convert to a byte array. - db.data = ((*[maxMapSize]byte)(unsafe.Pointer(addr))) - db.datasz = sz - - return nil -} - -// munmap unmaps a pointer from a file. -// Based on: https://github.com/edsrzf/mmap-go -func munmap(db *DB) error { - if db.data == nil { - return nil - } - - addr := (uintptr)(unsafe.Pointer(&db.data[0])) - var err1 error - if err := syscall.UnmapViewOfFile(addr); err != nil { - err1 = os.NewSyscallError("UnmapViewOfFile", err) - } - db.data = nil - db.datasz = 0 - return err1 -} diff --git a/backend/vendor/go.etcd.io/bbolt/boltsync_unix.go b/backend/vendor/go.etcd.io/bbolt/boltsync_unix.go deleted file mode 100644 index 81e09a53..00000000 --- a/backend/vendor/go.etcd.io/bbolt/boltsync_unix.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build !windows && !plan9 && !linux && !openbsd -// +build !windows,!plan9,!linux,!openbsd - -package bbolt - -// fdatasync flushes written data to a file descriptor. -func fdatasync(db *DB) error { - return db.file.Sync() -} diff --git a/backend/vendor/go.etcd.io/bbolt/bucket.go b/backend/vendor/go.etcd.io/bbolt/bucket.go deleted file mode 100644 index 054467af..00000000 --- a/backend/vendor/go.etcd.io/bbolt/bucket.go +++ /dev/null @@ -1,791 +0,0 @@ -package bbolt - -import ( - "bytes" - "fmt" - "unsafe" -) - -const ( - // MaxKeySize is the maximum length of a key, in bytes. - MaxKeySize = 32768 - - // MaxValueSize is the maximum length of a value, in bytes. - MaxValueSize = (1 << 31) - 2 -) - -const bucketHeaderSize = int(unsafe.Sizeof(bucket{})) - -const ( - minFillPercent = 0.1 - maxFillPercent = 1.0 -) - -// DefaultFillPercent is the percentage that split pages are filled. -// This value can be changed by setting Bucket.FillPercent. -const DefaultFillPercent = 0.5 - -// Bucket represents a collection of key/value pairs inside the database. -type Bucket struct { - *bucket - tx *Tx // the associated transaction - buckets map[string]*Bucket // subbucket cache - page *page // inline page reference - rootNode *node // materialized node for the root page. - nodes map[pgid]*node // node cache - - // Sets the threshold for filling nodes when they split. By default, - // the bucket will fill to 50% but it can be useful to increase this - // amount if you know that your write workloads are mostly append-only. - // - // This is non-persisted across transactions so it must be set in every Tx. - FillPercent float64 -} - -// bucket represents the on-file representation of a bucket. -// This is stored as the "value" of a bucket key. If the bucket is small enough, -// then its root page can be stored inline in the "value", after the bucket -// header. In the case of inline buckets, the "root" will be 0. -type bucket struct { - root pgid // page id of the bucket's root-level page - sequence uint64 // monotonically incrementing, used by NextSequence() -} - -// newBucket returns a new bucket associated with a transaction. -func newBucket(tx *Tx) Bucket { - var b = Bucket{tx: tx, FillPercent: DefaultFillPercent} - if tx.writable { - b.buckets = make(map[string]*Bucket) - b.nodes = make(map[pgid]*node) - } - return b -} - -// Tx returns the tx of the bucket. -func (b *Bucket) Tx() *Tx { - return b.tx -} - -// Root returns the root of the bucket. -func (b *Bucket) Root() pgid { - return b.root -} - -// Writable returns whether the bucket is writable. -func (b *Bucket) Writable() bool { - return b.tx.writable -} - -// Cursor creates a cursor associated with the bucket. -// The cursor is only valid as long as the transaction is open. -// Do not use a cursor after the transaction is closed. -func (b *Bucket) Cursor() *Cursor { - // Update transaction statistics. - b.tx.stats.IncCursorCount(1) - - // Allocate and return a cursor. - return &Cursor{ - bucket: b, - stack: make([]elemRef, 0), - } -} - -// Bucket retrieves a nested bucket by name. -// Returns nil if the bucket does not exist. -// The bucket instance is only valid for the lifetime of the transaction. -func (b *Bucket) Bucket(name []byte) *Bucket { - if b.buckets != nil { - if child := b.buckets[string(name)]; child != nil { - return child - } - } - - // Move cursor to key. - c := b.Cursor() - k, v, flags := c.seek(name) - - // Return nil if the key doesn't exist or it is not a bucket. - if !bytes.Equal(name, k) || (flags&bucketLeafFlag) == 0 { - return nil - } - - // Otherwise create a bucket and cache it. - var child = b.openBucket(v) - if b.buckets != nil { - b.buckets[string(name)] = child - } - - return child -} - -// Helper method that re-interprets a sub-bucket value -// from a parent into a Bucket -func (b *Bucket) openBucket(value []byte) *Bucket { - var child = newBucket(b.tx) - - // Unaligned access requires a copy to be made. - const unalignedMask = unsafe.Alignof(struct { - bucket - page - }{}) - 1 - unaligned := uintptr(unsafe.Pointer(&value[0]))&unalignedMask != 0 - if unaligned { - value = cloneBytes(value) - } - - // If this is a writable transaction then we need to copy the bucket entry. - // Read-only transactions can point directly at the mmap entry. - if b.tx.writable && !unaligned { - child.bucket = &bucket{} - *child.bucket = *(*bucket)(unsafe.Pointer(&value[0])) - } else { - child.bucket = (*bucket)(unsafe.Pointer(&value[0])) - } - - // Save a reference to the inline page if the bucket is inline. - if child.root == 0 { - child.page = (*page)(unsafe.Pointer(&value[bucketHeaderSize])) - } - - return &child -} - -// CreateBucket creates a new bucket at the given key and returns the new bucket. -// Returns an error if the key already exists, if the bucket name is blank, or if the bucket name is too long. -// The bucket instance is only valid for the lifetime of the transaction. -func (b *Bucket) CreateBucket(key []byte) (*Bucket, error) { - if b.tx.db == nil { - return nil, ErrTxClosed - } else if !b.tx.writable { - return nil, ErrTxNotWritable - } else if len(key) == 0 { - return nil, ErrBucketNameRequired - } - - // Move cursor to correct position. - c := b.Cursor() - k, _, flags := c.seek(key) - - // Return an error if there is an existing key. - if bytes.Equal(key, k) { - if (flags & bucketLeafFlag) != 0 { - return nil, ErrBucketExists - } - return nil, ErrIncompatibleValue - } - - // Create empty, inline bucket. - var bucket = Bucket{ - bucket: &bucket{}, - rootNode: &node{isLeaf: true}, - FillPercent: DefaultFillPercent, - } - var value = bucket.write() - - // Insert into node. - key = cloneBytes(key) - c.node().put(key, key, value, 0, bucketLeafFlag) - - // Since subbuckets are not allowed on inline buckets, we need to - // dereference the inline page, if it exists. This will cause the bucket - // to be treated as a regular, non-inline bucket for the rest of the tx. - b.page = nil - - return b.Bucket(key), nil -} - -// CreateBucketIfNotExists creates a new bucket if it doesn't already exist and returns a reference to it. -// Returns an error if the bucket name is blank, or if the bucket name is too long. -// The bucket instance is only valid for the lifetime of the transaction. -func (b *Bucket) CreateBucketIfNotExists(key []byte) (*Bucket, error) { - child, err := b.CreateBucket(key) - if err == ErrBucketExists { - return b.Bucket(key), nil - } else if err != nil { - return nil, err - } - return child, nil -} - -// DeleteBucket deletes a bucket at the given key. -// Returns an error if the bucket does not exist, or if the key represents a non-bucket value. -func (b *Bucket) DeleteBucket(key []byte) error { - if b.tx.db == nil { - return ErrTxClosed - } else if !b.Writable() { - return ErrTxNotWritable - } - - // Move cursor to correct position. - c := b.Cursor() - k, _, flags := c.seek(key) - - // Return an error if bucket doesn't exist or is not a bucket. - if !bytes.Equal(key, k) { - return ErrBucketNotFound - } else if (flags & bucketLeafFlag) == 0 { - return ErrIncompatibleValue - } - - // Recursively delete all child buckets. - child := b.Bucket(key) - err := child.ForEachBucket(func(k []byte) error { - if err := child.DeleteBucket(k); err != nil { - return fmt.Errorf("delete bucket: %s", err) - } - return nil - }) - if err != nil { - return err - } - - // Remove cached copy. - delete(b.buckets, string(key)) - - // Release all bucket pages to freelist. - child.nodes = nil - child.rootNode = nil - child.free() - - // Delete the node if we have a matching key. - c.node().del(key) - - return nil -} - -// Get retrieves the value for a key in the bucket. -// Returns a nil value if the key does not exist or if the key is a nested bucket. -// The returned value is only valid for the life of the transaction. -func (b *Bucket) Get(key []byte) []byte { - k, v, flags := b.Cursor().seek(key) - - // Return nil if this is a bucket. - if (flags & bucketLeafFlag) != 0 { - return nil - } - - // If our target node isn't the same key as what's passed in then return nil. - if !bytes.Equal(key, k) { - return nil - } - return v -} - -// Put sets the value for a key in the bucket. -// If the key exist then its previous value will be overwritten. -// Supplied value must remain valid for the life of the transaction. -// Returns an error if the bucket was created from a read-only transaction, if the key is blank, if the key is too large, or if the value is too large. -func (b *Bucket) Put(key []byte, value []byte) error { - if b.tx.db == nil { - return ErrTxClosed - } else if !b.Writable() { - return ErrTxNotWritable - } else if len(key) == 0 { - return ErrKeyRequired - } else if len(key) > MaxKeySize { - return ErrKeyTooLarge - } else if int64(len(value)) > MaxValueSize { - return ErrValueTooLarge - } - - // Move cursor to correct position. - c := b.Cursor() - k, _, flags := c.seek(key) - - // Return an error if there is an existing key with a bucket value. - if bytes.Equal(key, k) && (flags&bucketLeafFlag) != 0 { - return ErrIncompatibleValue - } - - // Insert into node. - key = cloneBytes(key) - c.node().put(key, key, value, 0, 0) - - return nil -} - -// Delete removes a key from the bucket. -// If the key does not exist then nothing is done and a nil error is returned. -// Returns an error if the bucket was created from a read-only transaction. -func (b *Bucket) Delete(key []byte) error { - if b.tx.db == nil { - return ErrTxClosed - } else if !b.Writable() { - return ErrTxNotWritable - } - - // Move cursor to correct position. - c := b.Cursor() - k, _, flags := c.seek(key) - - // Return nil if the key doesn't exist. - if !bytes.Equal(key, k) { - return nil - } - - // Return an error if there is already existing bucket value. - if (flags & bucketLeafFlag) != 0 { - return ErrIncompatibleValue - } - - // Delete the node if we have a matching key. - c.node().del(key) - - return nil -} - -// Sequence returns the current integer for the bucket without incrementing it. -func (b *Bucket) Sequence() uint64 { return b.bucket.sequence } - -// SetSequence updates the sequence number for the bucket. -func (b *Bucket) SetSequence(v uint64) error { - if b.tx.db == nil { - return ErrTxClosed - } else if !b.Writable() { - return ErrTxNotWritable - } - - // Materialize the root node if it hasn't been already so that the - // bucket will be saved during commit. - if b.rootNode == nil { - _ = b.node(b.root, nil) - } - - // Set the sequence. - b.bucket.sequence = v - return nil -} - -// NextSequence returns an autoincrementing integer for the bucket. -func (b *Bucket) NextSequence() (uint64, error) { - if b.tx.db == nil { - return 0, ErrTxClosed - } else if !b.Writable() { - return 0, ErrTxNotWritable - } - - // Materialize the root node if it hasn't been already so that the - // bucket will be saved during commit. - if b.rootNode == nil { - _ = b.node(b.root, nil) - } - - // Increment and return the sequence. - b.bucket.sequence++ - return b.bucket.sequence, nil -} - -// ForEach executes a function for each key/value pair in a bucket. -// Because ForEach uses a Cursor, the iteration over keys is in lexicographical order. -// If the provided function returns an error then the iteration is stopped and -// the error is returned to the caller. The provided function must not modify -// the bucket; this will result in undefined behavior. -func (b *Bucket) ForEach(fn func(k, v []byte) error) error { - if b.tx.db == nil { - return ErrTxClosed - } - c := b.Cursor() - for k, v := c.First(); k != nil; k, v = c.Next() { - if err := fn(k, v); err != nil { - return err - } - } - return nil -} - -func (b *Bucket) ForEachBucket(fn func(k []byte) error) error { - if b.tx.db == nil { - return ErrTxClosed - } - c := b.Cursor() - for k, _, flags := c.first(); k != nil; k, _, flags = c.next() { - if flags&bucketLeafFlag != 0 { - if err := fn(k); err != nil { - return err - } - } - } - return nil -} - -// Stats returns stats on a bucket. -func (b *Bucket) Stats() BucketStats { - var s, subStats BucketStats - pageSize := b.tx.db.pageSize - s.BucketN += 1 - if b.root == 0 { - s.InlineBucketN += 1 - } - b.forEachPage(func(p *page, depth int, pgstack []pgid) { - if (p.flags & leafPageFlag) != 0 { - s.KeyN += int(p.count) - - // used totals the used bytes for the page - used := pageHeaderSize - - if p.count != 0 { - // If page has any elements, add all element headers. - used += leafPageElementSize * uintptr(p.count-1) - - // Add all element key, value sizes. - // The computation takes advantage of the fact that the position - // of the last element's key/value equals to the total of the sizes - // of all previous elements' keys and values. - // It also includes the last element's header. - lastElement := p.leafPageElement(p.count - 1) - used += uintptr(lastElement.pos + lastElement.ksize + lastElement.vsize) - } - - if b.root == 0 { - // For inlined bucket just update the inline stats - s.InlineBucketInuse += int(used) - } else { - // For non-inlined bucket update all the leaf stats - s.LeafPageN++ - s.LeafInuse += int(used) - s.LeafOverflowN += int(p.overflow) - - // Collect stats from sub-buckets. - // Do that by iterating over all element headers - // looking for the ones with the bucketLeafFlag. - for i := uint16(0); i < p.count; i++ { - e := p.leafPageElement(i) - if (e.flags & bucketLeafFlag) != 0 { - // For any bucket element, open the element value - // and recursively call Stats on the contained bucket. - subStats.Add(b.openBucket(e.value()).Stats()) - } - } - } - } else if (p.flags & branchPageFlag) != 0 { - s.BranchPageN++ - lastElement := p.branchPageElement(p.count - 1) - - // used totals the used bytes for the page - // Add header and all element headers. - used := pageHeaderSize + (branchPageElementSize * uintptr(p.count-1)) - - // Add size of all keys and values. - // Again, use the fact that last element's position equals to - // the total of key, value sizes of all previous elements. - used += uintptr(lastElement.pos + lastElement.ksize) - s.BranchInuse += int(used) - s.BranchOverflowN += int(p.overflow) - } - - // Keep track of maximum page depth. - if depth+1 > s.Depth { - s.Depth = depth + 1 - } - }) - - // Alloc stats can be computed from page counts and pageSize. - s.BranchAlloc = (s.BranchPageN + s.BranchOverflowN) * pageSize - s.LeafAlloc = (s.LeafPageN + s.LeafOverflowN) * pageSize - - // Add the max depth of sub-buckets to get total nested depth. - s.Depth += subStats.Depth - // Add the stats for all sub-buckets - s.Add(subStats) - return s -} - -// forEachPage iterates over every page in a bucket, including inline pages. -func (b *Bucket) forEachPage(fn func(*page, int, []pgid)) { - // If we have an inline page then just use that. - if b.page != nil { - fn(b.page, 0, []pgid{b.root}) - return - } - - // Otherwise traverse the page hierarchy. - b.tx.forEachPage(b.root, fn) -} - -// forEachPageNode iterates over every page (or node) in a bucket. -// This also includes inline pages. -func (b *Bucket) forEachPageNode(fn func(*page, *node, int)) { - // If we have an inline page or root node then just use that. - if b.page != nil { - fn(b.page, nil, 0) - return - } - b._forEachPageNode(b.root, 0, fn) -} - -func (b *Bucket) _forEachPageNode(pgId pgid, depth int, fn func(*page, *node, int)) { - var p, n = b.pageNode(pgId) - - // Execute function. - fn(p, n, depth) - - // Recursively loop over children. - if p != nil { - if (p.flags & branchPageFlag) != 0 { - for i := 0; i < int(p.count); i++ { - elem := p.branchPageElement(uint16(i)) - b._forEachPageNode(elem.pgid, depth+1, fn) - } - } - } else { - if !n.isLeaf { - for _, inode := range n.inodes { - b._forEachPageNode(inode.pgid, depth+1, fn) - } - } - } -} - -// spill writes all the nodes for this bucket to dirty pages. -func (b *Bucket) spill() error { - // Spill all child buckets first. - for name, child := range b.buckets { - // If the child bucket is small enough and it has no child buckets then - // write it inline into the parent bucket's page. Otherwise spill it - // like a normal bucket and make the parent value a pointer to the page. - var value []byte - if child.inlineable() { - child.free() - value = child.write() - } else { - if err := child.spill(); err != nil { - return err - } - - // Update the child bucket header in this bucket. - value = make([]byte, unsafe.Sizeof(bucket{})) - var bucket = (*bucket)(unsafe.Pointer(&value[0])) - *bucket = *child.bucket - } - - // Skip writing the bucket if there are no materialized nodes. - if child.rootNode == nil { - continue - } - - // Update parent node. - var c = b.Cursor() - k, _, flags := c.seek([]byte(name)) - if !bytes.Equal([]byte(name), k) { - panic(fmt.Sprintf("misplaced bucket header: %x -> %x", []byte(name), k)) - } - if flags&bucketLeafFlag == 0 { - panic(fmt.Sprintf("unexpected bucket header flag: %x", flags)) - } - c.node().put([]byte(name), []byte(name), value, 0, bucketLeafFlag) - } - - // Ignore if there's not a materialized root node. - if b.rootNode == nil { - return nil - } - - // Spill nodes. - if err := b.rootNode.spill(); err != nil { - return err - } - b.rootNode = b.rootNode.root() - - // Update the root node for this bucket. - if b.rootNode.pgid >= b.tx.meta.pgid { - panic(fmt.Sprintf("pgid (%d) above high water mark (%d)", b.rootNode.pgid, b.tx.meta.pgid)) - } - b.root = b.rootNode.pgid - - return nil -} - -// inlineable returns true if a bucket is small enough to be written inline -// and if it contains no subbuckets. Otherwise returns false. -func (b *Bucket) inlineable() bool { - var n = b.rootNode - - // Bucket must only contain a single leaf node. - if n == nil || !n.isLeaf { - return false - } - - // Bucket is not inlineable if it contains subbuckets or if it goes beyond - // our threshold for inline bucket size. - var size = pageHeaderSize - for _, inode := range n.inodes { - size += leafPageElementSize + uintptr(len(inode.key)) + uintptr(len(inode.value)) - - if inode.flags&bucketLeafFlag != 0 { - return false - } else if size > b.maxInlineBucketSize() { - return false - } - } - - return true -} - -// Returns the maximum total size of a bucket to make it a candidate for inlining. -func (b *Bucket) maxInlineBucketSize() uintptr { - return uintptr(b.tx.db.pageSize / 4) -} - -// write allocates and writes a bucket to a byte slice. -func (b *Bucket) write() []byte { - // Allocate the appropriate size. - var n = b.rootNode - var value = make([]byte, bucketHeaderSize+n.size()) - - // Write a bucket header. - var bucket = (*bucket)(unsafe.Pointer(&value[0])) - *bucket = *b.bucket - - // Convert byte slice to a fake page and write the root node. - var p = (*page)(unsafe.Pointer(&value[bucketHeaderSize])) - n.write(p) - - return value -} - -// rebalance attempts to balance all nodes. -func (b *Bucket) rebalance() { - for _, n := range b.nodes { - n.rebalance() - } - for _, child := range b.buckets { - child.rebalance() - } -} - -// node creates a node from a page and associates it with a given parent. -func (b *Bucket) node(pgId pgid, parent *node) *node { - _assert(b.nodes != nil, "nodes map expected") - - // Retrieve node if it's already been created. - if n := b.nodes[pgId]; n != nil { - return n - } - - // Otherwise create a node and cache it. - n := &node{bucket: b, parent: parent} - if parent == nil { - b.rootNode = n - } else { - parent.children = append(parent.children, n) - } - - // Use the inline page if this is an inline bucket. - var p = b.page - if p == nil { - p = b.tx.page(pgId) - } - - // Read the page into the node and cache it. - n.read(p) - b.nodes[pgId] = n - - // Update statistics. - b.tx.stats.IncNodeCount(1) - - return n -} - -// free recursively frees all pages in the bucket. -func (b *Bucket) free() { - if b.root == 0 { - return - } - - var tx = b.tx - b.forEachPageNode(func(p *page, n *node, _ int) { - if p != nil { - tx.db.freelist.free(tx.meta.txid, p) - } else { - n.free() - } - }) - b.root = 0 -} - -// dereference removes all references to the old mmap. -func (b *Bucket) dereference() { - if b.rootNode != nil { - b.rootNode.root().dereference() - } - - for _, child := range b.buckets { - child.dereference() - } -} - -// pageNode returns the in-memory node, if it exists. -// Otherwise returns the underlying page. -func (b *Bucket) pageNode(id pgid) (*page, *node) { - // Inline buckets have a fake page embedded in their value so treat them - // differently. We'll return the rootNode (if available) or the fake page. - if b.root == 0 { - if id != 0 { - panic(fmt.Sprintf("inline bucket non-zero page access(2): %d != 0", id)) - } - if b.rootNode != nil { - return nil, b.rootNode - } - return b.page, nil - } - - // Check the node cache for non-inline buckets. - if b.nodes != nil { - if n := b.nodes[id]; n != nil { - return nil, n - } - } - - // Finally lookup the page from the transaction if no node is materialized. - return b.tx.page(id), nil -} - -// BucketStats records statistics about resources used by a bucket. -type BucketStats struct { - // Page count statistics. - BranchPageN int // number of logical branch pages - BranchOverflowN int // number of physical branch overflow pages - LeafPageN int // number of logical leaf pages - LeafOverflowN int // number of physical leaf overflow pages - - // Tree statistics. - KeyN int // number of keys/value pairs - Depth int // number of levels in B+tree - - // Page size utilization. - BranchAlloc int // bytes allocated for physical branch pages - BranchInuse int // bytes actually used for branch data - LeafAlloc int // bytes allocated for physical leaf pages - LeafInuse int // bytes actually used for leaf data - - // Bucket statistics - BucketN int // total number of buckets including the top bucket - InlineBucketN int // total number on inlined buckets - InlineBucketInuse int // bytes used for inlined buckets (also accounted for in LeafInuse) -} - -func (s *BucketStats) Add(other BucketStats) { - s.BranchPageN += other.BranchPageN - s.BranchOverflowN += other.BranchOverflowN - s.LeafPageN += other.LeafPageN - s.LeafOverflowN += other.LeafOverflowN - s.KeyN += other.KeyN - if s.Depth < other.Depth { - s.Depth = other.Depth - } - s.BranchAlloc += other.BranchAlloc - s.BranchInuse += other.BranchInuse - s.LeafAlloc += other.LeafAlloc - s.LeafInuse += other.LeafInuse - - s.BucketN += other.BucketN - s.InlineBucketN += other.InlineBucketN - s.InlineBucketInuse += other.InlineBucketInuse -} - -// cloneBytes returns a copy of a given slice. -func cloneBytes(v []byte) []byte { - var clone = make([]byte, len(v)) - copy(clone, v) - return clone -} diff --git a/backend/vendor/go.etcd.io/bbolt/compact.go b/backend/vendor/go.etcd.io/bbolt/compact.go deleted file mode 100644 index 5f1d4c3b..00000000 --- a/backend/vendor/go.etcd.io/bbolt/compact.go +++ /dev/null @@ -1,119 +0,0 @@ -package bbolt - -// Compact will create a copy of the source DB and in the destination DB. This may -// reclaim space that the source database no longer has use for. txMaxSize can be -// used to limit the transactions size of this process and may trigger intermittent -// commits. A value of zero will ignore transaction sizes. -// TODO: merge with: https://github.com/etcd-io/etcd/blob/b7f0f52a16dbf83f18ca1d803f7892d750366a94/mvcc/backend/backend.go#L349 -func Compact(dst, src *DB, txMaxSize int64) error { - // commit regularly, or we'll run out of memory for large datasets if using one transaction. - var size int64 - tx, err := dst.Begin(true) - if err != nil { - return err - } - defer func() { - if tempErr := tx.Rollback(); tempErr != nil { - err = tempErr - } - }() - - if err := walk(src, func(keys [][]byte, k, v []byte, seq uint64) error { - // On each key/value, check if we have exceeded tx size. - sz := int64(len(k) + len(v)) - if size+sz > txMaxSize && txMaxSize != 0 { - // Commit previous transaction. - if err := tx.Commit(); err != nil { - return err - } - - // Start new transaction. - tx, err = dst.Begin(true) - if err != nil { - return err - } - size = 0 - } - size += sz - - // Create bucket on the root transaction if this is the first level. - nk := len(keys) - if nk == 0 { - bkt, err := tx.CreateBucket(k) - if err != nil { - return err - } - if err := bkt.SetSequence(seq); err != nil { - return err - } - return nil - } - - // Create buckets on subsequent levels, if necessary. - b := tx.Bucket(keys[0]) - if nk > 1 { - for _, k := range keys[1:] { - b = b.Bucket(k) - } - } - - // Fill the entire page for best compaction. - b.FillPercent = 1.0 - - // If there is no value then this is a bucket call. - if v == nil { - bkt, err := b.CreateBucket(k) - if err != nil { - return err - } - if err := bkt.SetSequence(seq); err != nil { - return err - } - return nil - } - - // Otherwise treat it as a key/value pair. - return b.Put(k, v) - }); err != nil { - return err - } - err = tx.Commit() - - return err -} - -// walkFunc is the type of the function called for keys (buckets and "normal" -// values) discovered by Walk. keys is the list of keys to descend to the bucket -// owning the discovered key/value pair k/v. -type walkFunc func(keys [][]byte, k, v []byte, seq uint64) error - -// walk walks recursively the bolt database db, calling walkFn for each key it finds. -func walk(db *DB, walkFn walkFunc) error { - return db.View(func(tx *Tx) error { - return tx.ForEach(func(name []byte, b *Bucket) error { - return walkBucket(b, nil, name, nil, b.Sequence(), walkFn) - }) - }) -} - -func walkBucket(b *Bucket, keypath [][]byte, k, v []byte, seq uint64, fn walkFunc) error { - // Execute callback. - if err := fn(keypath, k, v, seq); err != nil { - return err - } - - // If this is not a bucket then stop. - if v != nil { - return nil - } - - // Iterate over each child key/value. - keypath = append(keypath, k) - return b.ForEach(func(k, v []byte) error { - if v == nil { - bkt := b.Bucket(k) - return walkBucket(bkt, keypath, k, nil, bkt.Sequence(), fn) - } - return walkBucket(b, keypath, k, v, b.Sequence(), fn) - }) -} diff --git a/backend/vendor/go.etcd.io/bbolt/cursor.go b/backend/vendor/go.etcd.io/bbolt/cursor.go deleted file mode 100644 index 5dafb0ca..00000000 --- a/backend/vendor/go.etcd.io/bbolt/cursor.go +++ /dev/null @@ -1,420 +0,0 @@ -package bbolt - -import ( - "bytes" - "fmt" - "sort" -) - -// Cursor represents an iterator that can traverse over all key/value pairs in a bucket -// in lexicographical order. -// Cursors see nested buckets with value == nil. -// Cursors can be obtained from a transaction and are valid as long as the transaction is open. -// -// Keys and values returned from the cursor are only valid for the life of the transaction. -// -// Changing data while traversing with a cursor may cause it to be invalidated -// and return unexpected keys and/or values. You must reposition your cursor -// after mutating data. -type Cursor struct { - bucket *Bucket - stack []elemRef -} - -// Bucket returns the bucket that this cursor was created from. -func (c *Cursor) Bucket() *Bucket { - return c.bucket -} - -// First moves the cursor to the first item in the bucket and returns its key and value. -// If the bucket is empty then a nil key and value are returned. -// The returned key and value are only valid for the life of the transaction. -func (c *Cursor) First() (key []byte, value []byte) { - _assert(c.bucket.tx.db != nil, "tx closed") - k, v, flags := c.first() - if (flags & uint32(bucketLeafFlag)) != 0 { - return k, nil - } - return k, v -} - -func (c *Cursor) first() (key []byte, value []byte, flags uint32) { - c.stack = c.stack[:0] - p, n := c.bucket.pageNode(c.bucket.root) - c.stack = append(c.stack, elemRef{page: p, node: n, index: 0}) - c.goToFirstElementOnTheStack() - - // If we land on an empty page then move to the next value. - // https://github.com/boltdb/bolt/issues/450 - if c.stack[len(c.stack)-1].count() == 0 { - c.next() - } - - k, v, flags := c.keyValue() - if (flags & uint32(bucketLeafFlag)) != 0 { - return k, nil, flags - } - return k, v, flags -} - -// Last moves the cursor to the last item in the bucket and returns its key and value. -// If the bucket is empty then a nil key and value are returned. -// The returned key and value are only valid for the life of the transaction. -func (c *Cursor) Last() (key []byte, value []byte) { - _assert(c.bucket.tx.db != nil, "tx closed") - c.stack = c.stack[:0] - p, n := c.bucket.pageNode(c.bucket.root) - ref := elemRef{page: p, node: n} - ref.index = ref.count() - 1 - c.stack = append(c.stack, ref) - c.last() - - // If this is an empty page (calling Delete may result in empty pages) - // we call prev to find the last page that is not empty - for len(c.stack) > 0 && c.stack[len(c.stack)-1].count() == 0 { - c.prev() - } - - if len(c.stack) == 0 { - return nil, nil - } - - k, v, flags := c.keyValue() - if (flags & uint32(bucketLeafFlag)) != 0 { - return k, nil - } - return k, v -} - -// Next moves the cursor to the next item in the bucket and returns its key and value. -// If the cursor is at the end of the bucket then a nil key and value are returned. -// The returned key and value are only valid for the life of the transaction. -func (c *Cursor) Next() (key []byte, value []byte) { - _assert(c.bucket.tx.db != nil, "tx closed") - k, v, flags := c.next() - if (flags & uint32(bucketLeafFlag)) != 0 { - return k, nil - } - return k, v -} - -// Prev moves the cursor to the previous item in the bucket and returns its key and value. -// If the cursor is at the beginning of the bucket then a nil key and value are returned. -// The returned key and value are only valid for the life of the transaction. -func (c *Cursor) Prev() (key []byte, value []byte) { - _assert(c.bucket.tx.db != nil, "tx closed") - k, v, flags := c.prev() - if (flags & uint32(bucketLeafFlag)) != 0 { - return k, nil - } - return k, v -} - -// Seek moves the cursor to a given key using a b-tree search and returns it. -// If the key does not exist then the next key is used. If no keys -// follow, a nil key is returned. -// The returned key and value are only valid for the life of the transaction. -func (c *Cursor) Seek(seek []byte) (key []byte, value []byte) { - _assert(c.bucket.tx.db != nil, "tx closed") - - k, v, flags := c.seek(seek) - - // If we ended up after the last element of a page then move to the next one. - if ref := &c.stack[len(c.stack)-1]; ref.index >= ref.count() { - k, v, flags = c.next() - } - - if k == nil { - return nil, nil - } else if (flags & uint32(bucketLeafFlag)) != 0 { - return k, nil - } - return k, v -} - -// Delete removes the current key/value under the cursor from the bucket. -// Delete fails if current key/value is a bucket or if the transaction is not writable. -func (c *Cursor) Delete() error { - if c.bucket.tx.db == nil { - return ErrTxClosed - } else if !c.bucket.Writable() { - return ErrTxNotWritable - } - - key, _, flags := c.keyValue() - // Return an error if current value is a bucket. - if (flags & bucketLeafFlag) != 0 { - return ErrIncompatibleValue - } - c.node().del(key) - - return nil -} - -// seek moves the cursor to a given key and returns it. -// If the key does not exist then the next key is used. -func (c *Cursor) seek(seek []byte) (key []byte, value []byte, flags uint32) { - // Start from root page/node and traverse to correct page. - c.stack = c.stack[:0] - c.search(seek, c.bucket.root) - - // If this is a bucket then return a nil value. - return c.keyValue() -} - -// first moves the cursor to the first leaf element under the last page in the stack. -func (c *Cursor) goToFirstElementOnTheStack() { - for { - // Exit when we hit a leaf page. - var ref = &c.stack[len(c.stack)-1] - if ref.isLeaf() { - break - } - - // Keep adding pages pointing to the first element to the stack. - var pgId pgid - if ref.node != nil { - pgId = ref.node.inodes[ref.index].pgid - } else { - pgId = ref.page.branchPageElement(uint16(ref.index)).pgid - } - p, n := c.bucket.pageNode(pgId) - c.stack = append(c.stack, elemRef{page: p, node: n, index: 0}) - } -} - -// last moves the cursor to the last leaf element under the last page in the stack. -func (c *Cursor) last() { - for { - // Exit when we hit a leaf page. - ref := &c.stack[len(c.stack)-1] - if ref.isLeaf() { - break - } - - // Keep adding pages pointing to the last element in the stack. - var pgId pgid - if ref.node != nil { - pgId = ref.node.inodes[ref.index].pgid - } else { - pgId = ref.page.branchPageElement(uint16(ref.index)).pgid - } - p, n := c.bucket.pageNode(pgId) - - var nextRef = elemRef{page: p, node: n} - nextRef.index = nextRef.count() - 1 - c.stack = append(c.stack, nextRef) - } -} - -// next moves to the next leaf element and returns the key and value. -// If the cursor is at the last leaf element then it stays there and returns nil. -func (c *Cursor) next() (key []byte, value []byte, flags uint32) { - for { - // Attempt to move over one element until we're successful. - // Move up the stack as we hit the end of each page in our stack. - var i int - for i = len(c.stack) - 1; i >= 0; i-- { - elem := &c.stack[i] - if elem.index < elem.count()-1 { - elem.index++ - break - } - } - - // If we've hit the root page then stop and return. This will leave the - // cursor on the last element of the last page. - if i == -1 { - return nil, nil, 0 - } - - // Otherwise start from where we left off in the stack and find the - // first element of the first leaf page. - c.stack = c.stack[:i+1] - c.goToFirstElementOnTheStack() - - // If this is an empty page then restart and move back up the stack. - // https://github.com/boltdb/bolt/issues/450 - if c.stack[len(c.stack)-1].count() == 0 { - continue - } - - return c.keyValue() - } -} - -// prev moves the cursor to the previous item in the bucket and returns its key and value. -// If the cursor is at the beginning of the bucket then a nil key and value are returned. -func (c *Cursor) prev() (key []byte, value []byte, flags uint32) { - // Attempt to move back one element until we're successful. - // Move up the stack as we hit the beginning of each page in our stack. - for i := len(c.stack) - 1; i >= 0; i-- { - elem := &c.stack[i] - if elem.index > 0 { - elem.index-- - break - } - c.stack = c.stack[:i] - } - - // If we've hit the end then return nil. - if len(c.stack) == 0 { - return nil, nil, 0 - } - - // Move down the stack to find the last element of the last leaf under this branch. - c.last() - return c.keyValue() -} - -// search recursively performs a binary search against a given page/node until it finds a given key. -func (c *Cursor) search(key []byte, pgId pgid) { - p, n := c.bucket.pageNode(pgId) - if p != nil && (p.flags&(branchPageFlag|leafPageFlag)) == 0 { - panic(fmt.Sprintf("invalid page type: %d: %x", p.id, p.flags)) - } - e := elemRef{page: p, node: n} - c.stack = append(c.stack, e) - - // If we're on a leaf page/node then find the specific node. - if e.isLeaf() { - c.nsearch(key) - return - } - - if n != nil { - c.searchNode(key, n) - return - } - c.searchPage(key, p) -} - -func (c *Cursor) searchNode(key []byte, n *node) { - var exact bool - index := sort.Search(len(n.inodes), func(i int) bool { - // TODO(benbjohnson): Optimize this range search. It's a bit hacky right now. - // sort.Search() finds the lowest index where f() != -1 but we need the highest index. - ret := bytes.Compare(n.inodes[i].key, key) - if ret == 0 { - exact = true - } - return ret != -1 - }) - if !exact && index > 0 { - index-- - } - c.stack[len(c.stack)-1].index = index - - // Recursively search to the next page. - c.search(key, n.inodes[index].pgid) -} - -func (c *Cursor) searchPage(key []byte, p *page) { - // Binary search for the correct range. - inodes := p.branchPageElements() - - var exact bool - index := sort.Search(int(p.count), func(i int) bool { - // TODO(benbjohnson): Optimize this range search. It's a bit hacky right now. - // sort.Search() finds the lowest index where f() != -1 but we need the highest index. - ret := bytes.Compare(inodes[i].key(), key) - if ret == 0 { - exact = true - } - return ret != -1 - }) - if !exact && index > 0 { - index-- - } - c.stack[len(c.stack)-1].index = index - - // Recursively search to the next page. - c.search(key, inodes[index].pgid) -} - -// nsearch searches the leaf node on the top of the stack for a key. -func (c *Cursor) nsearch(key []byte) { - e := &c.stack[len(c.stack)-1] - p, n := e.page, e.node - - // If we have a node then search its inodes. - if n != nil { - index := sort.Search(len(n.inodes), func(i int) bool { - return bytes.Compare(n.inodes[i].key, key) != -1 - }) - e.index = index - return - } - - // If we have a page then search its leaf elements. - inodes := p.leafPageElements() - index := sort.Search(int(p.count), func(i int) bool { - return bytes.Compare(inodes[i].key(), key) != -1 - }) - e.index = index -} - -// keyValue returns the key and value of the current leaf element. -func (c *Cursor) keyValue() ([]byte, []byte, uint32) { - ref := &c.stack[len(c.stack)-1] - - // If the cursor is pointing to the end of page/node then return nil. - if ref.count() == 0 || ref.index >= ref.count() { - return nil, nil, 0 - } - - // Retrieve value from node. - if ref.node != nil { - inode := &ref.node.inodes[ref.index] - return inode.key, inode.value, inode.flags - } - - // Or retrieve value from page. - elem := ref.page.leafPageElement(uint16(ref.index)) - return elem.key(), elem.value(), elem.flags -} - -// node returns the node that the cursor is currently positioned on. -func (c *Cursor) node() *node { - _assert(len(c.stack) > 0, "accessing a node with a zero-length cursor stack") - - // If the top of the stack is a leaf node then just return it. - if ref := &c.stack[len(c.stack)-1]; ref.node != nil && ref.isLeaf() { - return ref.node - } - - // Start from root and traverse down the hierarchy. - var n = c.stack[0].node - if n == nil { - n = c.bucket.node(c.stack[0].page.id, nil) - } - for _, ref := range c.stack[:len(c.stack)-1] { - _assert(!n.isLeaf, "expected branch node") - n = n.childAt(ref.index) - } - _assert(n.isLeaf, "expected leaf node") - return n -} - -// elemRef represents a reference to an element on a given page/node. -type elemRef struct { - page *page - node *node - index int -} - -// isLeaf returns whether the ref is pointing at a leaf page/node. -func (r *elemRef) isLeaf() bool { - if r.node != nil { - return r.node.isLeaf - } - return (r.page.flags & leafPageFlag) != 0 -} - -// count returns the number of inodes or page elements. -func (r *elemRef) count() int { - if r.node != nil { - return len(r.node.inodes) - } - return int(r.page.count) -} diff --git a/backend/vendor/go.etcd.io/bbolt/db.go b/backend/vendor/go.etcd.io/bbolt/db.go deleted file mode 100644 index c9422127..00000000 --- a/backend/vendor/go.etcd.io/bbolt/db.go +++ /dev/null @@ -1,1361 +0,0 @@ -package bbolt - -import ( - "errors" - "fmt" - "hash/fnv" - "io" - "os" - "runtime" - "sort" - "sync" - "time" - "unsafe" -) - -// The largest step that can be taken when remapping the mmap. -const maxMmapStep = 1 << 30 // 1GB - -// The data file format version. -const version = 2 - -// Represents a marker value to indicate that a file is a Bolt DB. -const magic uint32 = 0xED0CDAED - -const pgidNoFreelist pgid = 0xffffffffffffffff - -// IgnoreNoSync specifies whether the NoSync field of a DB is ignored when -// syncing changes to a file. This is required as some operating systems, -// such as OpenBSD, do not have a unified buffer cache (UBC) and writes -// must be synchronized using the msync(2) syscall. -const IgnoreNoSync = runtime.GOOS == "openbsd" - -// Default values if not set in a DB instance. -const ( - DefaultMaxBatchSize int = 1000 - DefaultMaxBatchDelay = 10 * time.Millisecond - DefaultAllocSize = 16 * 1024 * 1024 -) - -// default page size for db is set to the OS page size. -var defaultPageSize = os.Getpagesize() - -// The time elapsed between consecutive file locking attempts. -const flockRetryTimeout = 50 * time.Millisecond - -// FreelistType is the type of the freelist backend -type FreelistType string - -const ( - // FreelistArrayType indicates backend freelist type is array - FreelistArrayType = FreelistType("array") - // FreelistMapType indicates backend freelist type is hashmap - FreelistMapType = FreelistType("hashmap") -) - -// DB represents a collection of buckets persisted to a file on disk. -// All data access is performed through transactions which can be obtained through the DB. -// All the functions on DB will return a ErrDatabaseNotOpen if accessed before Open() is called. -type DB struct { - // When enabled, the database will perform a Check() after every commit. - // A panic is issued if the database is in an inconsistent state. This - // flag has a large performance impact so it should only be used for - // debugging purposes. - StrictMode bool - - // Setting the NoSync flag will cause the database to skip fsync() - // calls after each commit. This can be useful when bulk loading data - // into a database and you can restart the bulk load in the event of - // a system failure or database corruption. Do not set this flag for - // normal use. - // - // If the package global IgnoreNoSync constant is true, this value is - // ignored. See the comment on that constant for more details. - // - // THIS IS UNSAFE. PLEASE USE WITH CAUTION. - NoSync bool - - // When true, skips syncing freelist to disk. This improves the database - // write performance under normal operation, but requires a full database - // re-sync during recovery. - NoFreelistSync bool - - // FreelistType sets the backend freelist type. There are two options. Array which is simple but endures - // dramatic performance degradation if database is large and fragmentation in freelist is common. - // The alternative one is using hashmap, it is faster in almost all circumstances - // but it doesn't guarantee that it offers the smallest page id available. In normal case it is safe. - // The default type is array - FreelistType FreelistType - - // When true, skips the truncate call when growing the database. - // Setting this to true is only safe on non-ext3/ext4 systems. - // Skipping truncation avoids preallocation of hard drive space and - // bypasses a truncate() and fsync() syscall on remapping. - // - // https://github.com/boltdb/bolt/issues/284 - NoGrowSync bool - - // When `true`, bbolt will always load the free pages when opening the DB. - // When opening db in write mode, this flag will always automatically - // set to `true`. - PreLoadFreelist bool - - // If you want to read the entire database fast, you can set MmapFlag to - // syscall.MAP_POPULATE on Linux 2.6.23+ for sequential read-ahead. - MmapFlags int - - // MaxBatchSize is the maximum size of a batch. Default value is - // copied from DefaultMaxBatchSize in Open. - // - // If <=0, disables batching. - // - // Do not change concurrently with calls to Batch. - MaxBatchSize int - - // MaxBatchDelay is the maximum delay before a batch starts. - // Default value is copied from DefaultMaxBatchDelay in Open. - // - // If <=0, effectively disables batching. - // - // Do not change concurrently with calls to Batch. - MaxBatchDelay time.Duration - - // AllocSize is the amount of space allocated when the database - // needs to create new pages. This is done to amortize the cost - // of truncate() and fsync() when growing the data file. - AllocSize int - - // Mlock locks database file in memory when set to true. - // It prevents major page faults, however used memory can't be reclaimed. - // - // Supported only on Unix via mlock/munlock syscalls. - Mlock bool - - path string - openFile func(string, int, os.FileMode) (*os.File, error) - file *os.File - // `dataref` isn't used at all on Windows, and the golangci-lint - // always fails on Windows platform. - //nolint - dataref []byte // mmap'ed readonly, write throws SEGV - data *[maxMapSize]byte - datasz int - filesz int // current on disk file size - meta0 *meta - meta1 *meta - pageSize int - opened bool - rwtx *Tx - txs []*Tx - stats Stats - - freelist *freelist - freelistLoad sync.Once - - pagePool sync.Pool - - batchMu sync.Mutex - batch *batch - - rwlock sync.Mutex // Allows only one writer at a time. - metalock sync.Mutex // Protects meta page access. - mmaplock sync.RWMutex // Protects mmap access during remapping. - statlock sync.RWMutex // Protects stats access. - - ops struct { - writeAt func(b []byte, off int64) (n int, err error) - } - - // Read only mode. - // When true, Update() and Begin(true) return ErrDatabaseReadOnly immediately. - readOnly bool -} - -// Path returns the path to currently open database file. -func (db *DB) Path() string { - return db.path -} - -// GoString returns the Go string representation of the database. -func (db *DB) GoString() string { - return fmt.Sprintf("bolt.DB{path:%q}", db.path) -} - -// String returns the string representation of the database. -func (db *DB) String() string { - return fmt.Sprintf("DB<%q>", db.path) -} - -// Open creates and opens a database at the given path. -// If the file does not exist then it will be created automatically. -// Passing in nil options will cause Bolt to open the database with the default options. -func Open(path string, mode os.FileMode, options *Options) (*DB, error) { - db := &DB{ - opened: true, - } - // Set default options if no options are provided. - if options == nil { - options = DefaultOptions - } - db.NoSync = options.NoSync - db.NoGrowSync = options.NoGrowSync - db.MmapFlags = options.MmapFlags - db.NoFreelistSync = options.NoFreelistSync - db.PreLoadFreelist = options.PreLoadFreelist - db.FreelistType = options.FreelistType - db.Mlock = options.Mlock - - // Set default values for later DB operations. - db.MaxBatchSize = DefaultMaxBatchSize - db.MaxBatchDelay = DefaultMaxBatchDelay - db.AllocSize = DefaultAllocSize - - flag := os.O_RDWR - if options.ReadOnly { - flag = os.O_RDONLY - db.readOnly = true - } else { - // always load free pages in write mode - db.PreLoadFreelist = true - } - - db.openFile = options.OpenFile - if db.openFile == nil { - db.openFile = os.OpenFile - } - - // Open data file and separate sync handler for metadata writes. - var err error - if db.file, err = db.openFile(path, flag|os.O_CREATE, mode); err != nil { - _ = db.close() - return nil, err - } - db.path = db.file.Name() - - // Lock file so that other processes using Bolt in read-write mode cannot - // use the database at the same time. This would cause corruption since - // the two processes would write meta pages and free pages separately. - // The database file is locked exclusively (only one process can grab the lock) - // if !options.ReadOnly. - // The database file is locked using the shared lock (more than one process may - // hold a lock at the same time) otherwise (options.ReadOnly is set). - if err := flock(db, !db.readOnly, options.Timeout); err != nil { - _ = db.close() - return nil, err - } - - // Default values for test hooks - db.ops.writeAt = db.file.WriteAt - - if db.pageSize = options.PageSize; db.pageSize == 0 { - // Set the default page size to the OS page size. - db.pageSize = defaultPageSize - } - - // Initialize the database if it doesn't exist. - if info, err := db.file.Stat(); err != nil { - _ = db.close() - return nil, err - } else if info.Size() == 0 { - // Initialize new files with meta pages. - if err := db.init(); err != nil { - // clean up file descriptor on initialization fail - _ = db.close() - return nil, err - } - } else { - // try to get the page size from the metadata pages - if pgSize, err := db.getPageSize(); err == nil { - db.pageSize = pgSize - } else { - _ = db.close() - return nil, ErrInvalid - } - } - - // Initialize page pool. - db.pagePool = sync.Pool{ - New: func() interface{} { - return make([]byte, db.pageSize) - }, - } - - // Memory map the data file. - if err := db.mmap(options.InitialMmapSize); err != nil { - _ = db.close() - return nil, err - } - - if db.PreLoadFreelist { - db.loadFreelist() - } - - if db.readOnly { - return db, nil - } - - // Flush freelist when transitioning from no sync to sync so - // NoFreelistSync unaware boltdb can open the db later. - if !db.NoFreelistSync && !db.hasSyncedFreelist() { - tx, err := db.Begin(true) - if tx != nil { - err = tx.Commit() - } - if err != nil { - _ = db.close() - return nil, err - } - } - - // Mark the database as opened and return. - return db, nil -} - -// getPageSize reads the pageSize from the meta pages. It tries -// to read the first meta page firstly. If the first page is invalid, -// then it tries to read the second page using the default page size. -func (db *DB) getPageSize() (int, error) { - var ( - meta0CanRead, meta1CanRead bool - ) - - // Read the first meta page to determine the page size. - if pgSize, canRead, err := db.getPageSizeFromFirstMeta(); err != nil { - // We cannot read the page size from page 0, but can read page 0. - meta0CanRead = canRead - } else { - return pgSize, nil - } - - // Read the second meta page to determine the page size. - if pgSize, canRead, err := db.getPageSizeFromSecondMeta(); err != nil { - // We cannot read the page size from page 1, but can read page 1. - meta1CanRead = canRead - } else { - return pgSize, nil - } - - // If we can't read the page size from both pages, but can read - // either page, then we assume it's the same as the OS or the one - // given, since that's how the page size was chosen in the first place. - // - // If both pages are invalid, and (this OS uses a different page size - // from what the database was created with or the given page size is - // different from what the database was created with), then we are out - // of luck and cannot access the database. - if meta0CanRead || meta1CanRead { - return db.pageSize, nil - } - - return 0, ErrInvalid -} - -// getPageSizeFromFirstMeta reads the pageSize from the first meta page -func (db *DB) getPageSizeFromFirstMeta() (int, bool, error) { - var buf [0x1000]byte - var metaCanRead bool - if bw, err := db.file.ReadAt(buf[:], 0); err == nil && bw == len(buf) { - metaCanRead = true - if m := db.pageInBuffer(buf[:], 0).meta(); m.validate() == nil { - return int(m.pageSize), metaCanRead, nil - } - } - return 0, metaCanRead, ErrInvalid -} - -// getPageSizeFromSecondMeta reads the pageSize from the second meta page -func (db *DB) getPageSizeFromSecondMeta() (int, bool, error) { - var ( - fileSize int64 - metaCanRead bool - ) - - // get the db file size - if info, err := db.file.Stat(); err != nil { - return 0, metaCanRead, err - } else { - fileSize = info.Size() - } - - // We need to read the second meta page, so we should skip the first page; - // but we don't know the exact page size yet, it's chicken & egg problem. - // The solution is to try all the possible page sizes, which starts from 1KB - // and until 16MB (1024<<14) or the end of the db file - // - // TODO: should we support larger page size? - for i := 0; i <= 14; i++ { - var buf [0x1000]byte - var pos int64 = 1024 << uint(i) - if pos >= fileSize-1024 { - break - } - bw, err := db.file.ReadAt(buf[:], pos) - if (err == nil && bw == len(buf)) || (err == io.EOF && int64(bw) == (fileSize-pos)) { - metaCanRead = true - if m := db.pageInBuffer(buf[:], 0).meta(); m.validate() == nil { - return int(m.pageSize), metaCanRead, nil - } - } - } - - return 0, metaCanRead, ErrInvalid -} - -// loadFreelist reads the freelist if it is synced, or reconstructs it -// by scanning the DB if it is not synced. It assumes there are no -// concurrent accesses being made to the freelist. -func (db *DB) loadFreelist() { - db.freelistLoad.Do(func() { - db.freelist = newFreelist(db.FreelistType) - if !db.hasSyncedFreelist() { - // Reconstruct free list by scanning the DB. - db.freelist.readIDs(db.freepages()) - } else { - // Read free list from freelist page. - db.freelist.read(db.page(db.meta().freelist)) - } - db.stats.FreePageN = db.freelist.free_count() - }) -} - -func (db *DB) hasSyncedFreelist() bool { - return db.meta().freelist != pgidNoFreelist -} - -// mmap opens the underlying memory-mapped file and initializes the meta references. -// minsz is the minimum size that the new mmap can be. -func (db *DB) mmap(minsz int) error { - db.mmaplock.Lock() - defer db.mmaplock.Unlock() - - info, err := db.file.Stat() - if err != nil { - return fmt.Errorf("mmap stat error: %s", err) - } else if int(info.Size()) < db.pageSize*2 { - return fmt.Errorf("file size too small") - } - - // Ensure the size is at least the minimum size. - fileSize := int(info.Size()) - var size = fileSize - if size < minsz { - size = minsz - } - size, err = db.mmapSize(size) - if err != nil { - return err - } - - if db.Mlock { - // Unlock db memory - if err := db.munlock(fileSize); err != nil { - return err - } - } - - // Dereference all mmap references before unmapping. - if db.rwtx != nil { - db.rwtx.root.dereference() - } - - // Unmap existing data before continuing. - if err := db.munmap(); err != nil { - return err - } - - // Memory-map the data file as a byte slice. - // gofail: var mapError string - // return errors.New(mapError) - if err := mmap(db, size); err != nil { - return err - } - - if db.Mlock { - // Don't allow swapping of data file - if err := db.mlock(fileSize); err != nil { - return err - } - } - - // Save references to the meta pages. - db.meta0 = db.page(0).meta() - db.meta1 = db.page(1).meta() - - // Validate the meta pages. We only return an error if both meta pages fail - // validation, since meta0 failing validation means that it wasn't saved - // properly -- but we can recover using meta1. And vice-versa. - err0 := db.meta0.validate() - err1 := db.meta1.validate() - if err0 != nil && err1 != nil { - return err0 - } - - return nil -} - -func (db *DB) invalidate() { - db.dataref = nil - db.data = nil - db.datasz = 0 - - db.meta0 = nil - db.meta1 = nil -} - -// munmap unmaps the data file from memory. -func (db *DB) munmap() error { - defer db.invalidate() - - // gofail: var unmapError string - // return errors.New(unmapError) - if err := munmap(db); err != nil { - return fmt.Errorf("unmap error: " + err.Error()) - } - - return nil -} - -// mmapSize determines the appropriate size for the mmap given the current size -// of the database. The minimum size is 32KB and doubles until it reaches 1GB. -// Returns an error if the new mmap size is greater than the max allowed. -func (db *DB) mmapSize(size int) (int, error) { - // Double the size from 32KB until 1GB. - for i := uint(15); i <= 30; i++ { - if size <= 1< maxMapSize { - return 0, fmt.Errorf("mmap too large") - } - - // If larger than 1GB then grow by 1GB at a time. - sz := int64(size) - if remainder := sz % int64(maxMmapStep); remainder > 0 { - sz += int64(maxMmapStep) - remainder - } - - // Ensure that the mmap size is a multiple of the page size. - // This should always be true since we're incrementing in MBs. - pageSize := int64(db.pageSize) - if (sz % pageSize) != 0 { - sz = ((sz / pageSize) + 1) * pageSize - } - - // If we've exceeded the max size then only grow up to the max size. - if sz > maxMapSize { - sz = maxMapSize - } - - return int(sz), nil -} - -func (db *DB) munlock(fileSize int) error { - if err := munlock(db, fileSize); err != nil { - return fmt.Errorf("munlock error: " + err.Error()) - } - return nil -} - -func (db *DB) mlock(fileSize int) error { - if err := mlock(db, fileSize); err != nil { - return fmt.Errorf("mlock error: " + err.Error()) - } - return nil -} - -func (db *DB) mrelock(fileSizeFrom, fileSizeTo int) error { - if err := db.munlock(fileSizeFrom); err != nil { - return err - } - if err := db.mlock(fileSizeTo); err != nil { - return err - } - return nil -} - -// init creates a new database file and initializes its meta pages. -func (db *DB) init() error { - // Create two meta pages on a buffer. - buf := make([]byte, db.pageSize*4) - for i := 0; i < 2; i++ { - p := db.pageInBuffer(buf, pgid(i)) - p.id = pgid(i) - p.flags = metaPageFlag - - // Initialize the meta page. - m := p.meta() - m.magic = magic - m.version = version - m.pageSize = uint32(db.pageSize) - m.freelist = 2 - m.root = bucket{root: 3} - m.pgid = 4 - m.txid = txid(i) - m.checksum = m.sum64() - } - - // Write an empty freelist at page 3. - p := db.pageInBuffer(buf, pgid(2)) - p.id = pgid(2) - p.flags = freelistPageFlag - p.count = 0 - - // Write an empty leaf page at page 4. - p = db.pageInBuffer(buf, pgid(3)) - p.id = pgid(3) - p.flags = leafPageFlag - p.count = 0 - - // Write the buffer to our data file. - if _, err := db.ops.writeAt(buf, 0); err != nil { - return err - } - if err := fdatasync(db); err != nil { - return err - } - db.filesz = len(buf) - - return nil -} - -// Close releases all database resources. -// It will block waiting for any open transactions to finish -// before closing the database and returning. -func (db *DB) Close() error { - db.rwlock.Lock() - defer db.rwlock.Unlock() - - db.metalock.Lock() - defer db.metalock.Unlock() - - db.mmaplock.Lock() - defer db.mmaplock.Unlock() - - return db.close() -} - -func (db *DB) close() error { - if !db.opened { - return nil - } - - db.opened = false - - db.freelist = nil - - // Clear ops. - db.ops.writeAt = nil - - // Close the mmap. - if err := db.munmap(); err != nil { - return err - } - - // Close file handles. - if db.file != nil { - // No need to unlock read-only file. - if !db.readOnly { - // Unlock the file. - if err := funlock(db); err != nil { - return fmt.Errorf("bolt.Close(): funlock error: %w", err) - } - } - - // Close the file descriptor. - if err := db.file.Close(); err != nil { - return fmt.Errorf("db file close: %s", err) - } - db.file = nil - } - - db.path = "" - return nil -} - -// Begin starts a new transaction. -// Multiple read-only transactions can be used concurrently but only one -// write transaction can be used at a time. Starting multiple write transactions -// will cause the calls to block and be serialized until the current write -// transaction finishes. -// -// Transactions should not be dependent on one another. Opening a read -// transaction and a write transaction in the same goroutine can cause the -// writer to deadlock because the database periodically needs to re-mmap itself -// as it grows and it cannot do that while a read transaction is open. -// -// If a long running read transaction (for example, a snapshot transaction) is -// needed, you might want to set DB.InitialMmapSize to a large enough value -// to avoid potential blocking of write transaction. -// -// IMPORTANT: You must close read-only transactions after you are finished or -// else the database will not reclaim old pages. -func (db *DB) Begin(writable bool) (*Tx, error) { - if writable { - return db.beginRWTx() - } - return db.beginTx() -} - -func (db *DB) beginTx() (*Tx, error) { - // Lock the meta pages while we initialize the transaction. We obtain - // the meta lock before the mmap lock because that's the order that the - // write transaction will obtain them. - db.metalock.Lock() - - // Obtain a read-only lock on the mmap. When the mmap is remapped it will - // obtain a write lock so all transactions must finish before it can be - // remapped. - db.mmaplock.RLock() - - // Exit if the database is not open yet. - if !db.opened { - db.mmaplock.RUnlock() - db.metalock.Unlock() - return nil, ErrDatabaseNotOpen - } - - // Exit if the database is not correctly mapped. - if db.data == nil { - db.mmaplock.RUnlock() - db.metalock.Unlock() - return nil, ErrInvalidMapping - } - - // Create a transaction associated with the database. - t := &Tx{} - t.init(db) - - // Keep track of transaction until it closes. - db.txs = append(db.txs, t) - n := len(db.txs) - - // Unlock the meta pages. - db.metalock.Unlock() - - // Update the transaction stats. - db.statlock.Lock() - db.stats.TxN++ - db.stats.OpenTxN = n - db.statlock.Unlock() - - return t, nil -} - -func (db *DB) beginRWTx() (*Tx, error) { - // If the database was opened with Options.ReadOnly, return an error. - if db.readOnly { - return nil, ErrDatabaseReadOnly - } - - // Obtain writer lock. This is released by the transaction when it closes. - // This enforces only one writer transaction at a time. - db.rwlock.Lock() - - // Once we have the writer lock then we can lock the meta pages so that - // we can set up the transaction. - db.metalock.Lock() - defer db.metalock.Unlock() - - // Exit if the database is not open yet. - if !db.opened { - db.rwlock.Unlock() - return nil, ErrDatabaseNotOpen - } - - // Exit if the database is not correctly mapped. - if db.data == nil { - db.rwlock.Unlock() - return nil, ErrInvalidMapping - } - - // Create a transaction associated with the database. - t := &Tx{writable: true} - t.init(db) - db.rwtx = t - db.freePages() - return t, nil -} - -// freePages releases any pages associated with closed read-only transactions. -func (db *DB) freePages() { - // Free all pending pages prior to earliest open transaction. - sort.Sort(txsById(db.txs)) - minid := txid(0xFFFFFFFFFFFFFFFF) - if len(db.txs) > 0 { - minid = db.txs[0].meta.txid - } - if minid > 0 { - db.freelist.release(minid - 1) - } - // Release unused txid extents. - for _, t := range db.txs { - db.freelist.releaseRange(minid, t.meta.txid-1) - minid = t.meta.txid + 1 - } - db.freelist.releaseRange(minid, txid(0xFFFFFFFFFFFFFFFF)) - // Any page both allocated and freed in an extent is safe to release. -} - -type txsById []*Tx - -func (t txsById) Len() int { return len(t) } -func (t txsById) Swap(i, j int) { t[i], t[j] = t[j], t[i] } -func (t txsById) Less(i, j int) bool { return t[i].meta.txid < t[j].meta.txid } - -// removeTx removes a transaction from the database. -func (db *DB) removeTx(tx *Tx) { - // Release the read lock on the mmap. - db.mmaplock.RUnlock() - - // Use the meta lock to restrict access to the DB object. - db.metalock.Lock() - - // Remove the transaction. - for i, t := range db.txs { - if t == tx { - last := len(db.txs) - 1 - db.txs[i] = db.txs[last] - db.txs[last] = nil - db.txs = db.txs[:last] - break - } - } - n := len(db.txs) - - // Unlock the meta pages. - db.metalock.Unlock() - - // Merge statistics. - db.statlock.Lock() - db.stats.OpenTxN = n - db.stats.TxStats.add(&tx.stats) - db.statlock.Unlock() -} - -// Update executes a function within the context of a read-write managed transaction. -// If no error is returned from the function then the transaction is committed. -// If an error is returned then the entire transaction is rolled back. -// Any error that is returned from the function or returned from the commit is -// returned from the Update() method. -// -// Attempting to manually commit or rollback within the function will cause a panic. -func (db *DB) Update(fn func(*Tx) error) error { - t, err := db.Begin(true) - if err != nil { - return err - } - - // Make sure the transaction rolls back in the event of a panic. - defer func() { - if t.db != nil { - t.rollback() - } - }() - - // Mark as a managed tx so that the inner function cannot manually commit. - t.managed = true - - // If an error is returned from the function then rollback and return error. - err = fn(t) - t.managed = false - if err != nil { - _ = t.Rollback() - return err - } - - return t.Commit() -} - -// View executes a function within the context of a managed read-only transaction. -// Any error that is returned from the function is returned from the View() method. -// -// Attempting to manually rollback within the function will cause a panic. -func (db *DB) View(fn func(*Tx) error) error { - t, err := db.Begin(false) - if err != nil { - return err - } - - // Make sure the transaction rolls back in the event of a panic. - defer func() { - if t.db != nil { - t.rollback() - } - }() - - // Mark as a managed tx so that the inner function cannot manually rollback. - t.managed = true - - // If an error is returned from the function then pass it through. - err = fn(t) - t.managed = false - if err != nil { - _ = t.Rollback() - return err - } - - return t.Rollback() -} - -// Batch calls fn as part of a batch. It behaves similar to Update, -// except: -// -// 1. concurrent Batch calls can be combined into a single Bolt -// transaction. -// -// 2. the function passed to Batch may be called multiple times, -// regardless of whether it returns error or not. -// -// This means that Batch function side effects must be idempotent and -// take permanent effect only after a successful return is seen in -// caller. -// -// The maximum batch size and delay can be adjusted with DB.MaxBatchSize -// and DB.MaxBatchDelay, respectively. -// -// Batch is only useful when there are multiple goroutines calling it. -func (db *DB) Batch(fn func(*Tx) error) error { - errCh := make(chan error, 1) - - db.batchMu.Lock() - if (db.batch == nil) || (db.batch != nil && len(db.batch.calls) >= db.MaxBatchSize) { - // There is no existing batch, or the existing batch is full; start a new one. - db.batch = &batch{ - db: db, - } - db.batch.timer = time.AfterFunc(db.MaxBatchDelay, db.batch.trigger) - } - db.batch.calls = append(db.batch.calls, call{fn: fn, err: errCh}) - if len(db.batch.calls) >= db.MaxBatchSize { - // wake up batch, it's ready to run - go db.batch.trigger() - } - db.batchMu.Unlock() - - err := <-errCh - if err == trySolo { - err = db.Update(fn) - } - return err -} - -type call struct { - fn func(*Tx) error - err chan<- error -} - -type batch struct { - db *DB - timer *time.Timer - start sync.Once - calls []call -} - -// trigger runs the batch if it hasn't already been run. -func (b *batch) trigger() { - b.start.Do(b.run) -} - -// run performs the transactions in the batch and communicates results -// back to DB.Batch. -func (b *batch) run() { - b.db.batchMu.Lock() - b.timer.Stop() - // Make sure no new work is added to this batch, but don't break - // other batches. - if b.db.batch == b { - b.db.batch = nil - } - b.db.batchMu.Unlock() - -retry: - for len(b.calls) > 0 { - var failIdx = -1 - err := b.db.Update(func(tx *Tx) error { - for i, c := range b.calls { - if err := safelyCall(c.fn, tx); err != nil { - failIdx = i - return err - } - } - return nil - }) - - if failIdx >= 0 { - // take the failing transaction out of the batch. it's - // safe to shorten b.calls here because db.batch no longer - // points to us, and we hold the mutex anyway. - c := b.calls[failIdx] - b.calls[failIdx], b.calls = b.calls[len(b.calls)-1], b.calls[:len(b.calls)-1] - // tell the submitter re-run it solo, continue with the rest of the batch - c.err <- trySolo - continue retry - } - - // pass success, or bolt internal errors, to all callers - for _, c := range b.calls { - c.err <- err - } - break retry - } -} - -// trySolo is a special sentinel error value used for signaling that a -// transaction function should be re-run. It should never be seen by -// callers. -var trySolo = errors.New("batch function returned an error and should be re-run solo") - -type panicked struct { - reason interface{} -} - -func (p panicked) Error() string { - if err, ok := p.reason.(error); ok { - return err.Error() - } - return fmt.Sprintf("panic: %v", p.reason) -} - -func safelyCall(fn func(*Tx) error, tx *Tx) (err error) { - defer func() { - if p := recover(); p != nil { - err = panicked{p} - } - }() - return fn(tx) -} - -// Sync executes fdatasync() against the database file handle. -// -// This is not necessary under normal operation, however, if you use NoSync -// then it allows you to force the database file to sync against the disk. -func (db *DB) Sync() error { return fdatasync(db) } - -// Stats retrieves ongoing performance stats for the database. -// This is only updated when a transaction closes. -func (db *DB) Stats() Stats { - db.statlock.RLock() - defer db.statlock.RUnlock() - return db.stats -} - -// This is for internal access to the raw data bytes from the C cursor, use -// carefully, or not at all. -func (db *DB) Info() *Info { - _assert(db.data != nil, "database file isn't correctly mapped") - return &Info{uintptr(unsafe.Pointer(&db.data[0])), db.pageSize} -} - -// page retrieves a page reference from the mmap based on the current page size. -func (db *DB) page(id pgid) *page { - pos := id * pgid(db.pageSize) - return (*page)(unsafe.Pointer(&db.data[pos])) -} - -// pageInBuffer retrieves a page reference from a given byte array based on the current page size. -func (db *DB) pageInBuffer(b []byte, id pgid) *page { - return (*page)(unsafe.Pointer(&b[id*pgid(db.pageSize)])) -} - -// meta retrieves the current meta page reference. -func (db *DB) meta() *meta { - // We have to return the meta with the highest txid which doesn't fail - // validation. Otherwise, we can cause errors when in fact the database is - // in a consistent state. metaA is the one with the higher txid. - metaA := db.meta0 - metaB := db.meta1 - if db.meta1.txid > db.meta0.txid { - metaA = db.meta1 - metaB = db.meta0 - } - - // Use higher meta page if valid. Otherwise, fallback to previous, if valid. - if err := metaA.validate(); err == nil { - return metaA - } else if err := metaB.validate(); err == nil { - return metaB - } - - // This should never be reached, because both meta1 and meta0 were validated - // on mmap() and we do fsync() on every write. - panic("bolt.DB.meta(): invalid meta pages") -} - -// allocate returns a contiguous block of memory starting at a given page. -func (db *DB) allocate(txid txid, count int) (*page, error) { - // Allocate a temporary buffer for the page. - var buf []byte - if count == 1 { - buf = db.pagePool.Get().([]byte) - } else { - buf = make([]byte, count*db.pageSize) - } - p := (*page)(unsafe.Pointer(&buf[0])) - p.overflow = uint32(count - 1) - - // Use pages from the freelist if they are available. - if p.id = db.freelist.allocate(txid, count); p.id != 0 { - return p, nil - } - - // Resize mmap() if we're at the end. - p.id = db.rwtx.meta.pgid - var minsz = int((p.id+pgid(count))+1) * db.pageSize - if minsz >= db.datasz { - if err := db.mmap(minsz); err != nil { - return nil, fmt.Errorf("mmap allocate error: %s", err) - } - } - - // Move the page id high water mark. - db.rwtx.meta.pgid += pgid(count) - - return p, nil -} - -// grow grows the size of the database to the given sz. -func (db *DB) grow(sz int) error { - // Ignore if the new size is less than available file size. - if sz <= db.filesz { - return nil - } - - // If the data is smaller than the alloc size then only allocate what's needed. - // Once it goes over the allocation size then allocate in chunks. - if db.datasz <= db.AllocSize { - sz = db.datasz - } else { - sz += db.AllocSize - } - - // Truncate and fsync to ensure file size metadata is flushed. - // https://github.com/boltdb/bolt/issues/284 - if !db.NoGrowSync && !db.readOnly { - if runtime.GOOS != "windows" { - if err := db.file.Truncate(int64(sz)); err != nil { - return fmt.Errorf("file resize error: %s", err) - } - } - if err := db.file.Sync(); err != nil { - return fmt.Errorf("file sync error: %s", err) - } - if db.Mlock { - // unlock old file and lock new one - if err := db.mrelock(db.filesz, sz); err != nil { - return fmt.Errorf("mlock/munlock error: %s", err) - } - } - } - - db.filesz = sz - return nil -} - -func (db *DB) IsReadOnly() bool { - return db.readOnly -} - -func (db *DB) freepages() []pgid { - tx, err := db.beginTx() - defer func() { - err = tx.Rollback() - if err != nil { - panic("freepages: failed to rollback tx") - } - }() - if err != nil { - panic("freepages: failed to open read only tx") - } - - reachable := make(map[pgid]*page) - nofreed := make(map[pgid]bool) - ech := make(chan error) - go func() { - for e := range ech { - panic(fmt.Sprintf("freepages: failed to get all reachable pages (%v)", e)) - } - }() - tx.checkBucket(&tx.root, reachable, nofreed, HexKVStringer(), ech) - close(ech) - - // TODO: If check bucket reported any corruptions (ech) we shouldn't proceed to freeing the pages. - - var fids []pgid - for i := pgid(2); i < db.meta().pgid; i++ { - if _, ok := reachable[i]; !ok { - fids = append(fids, i) - } - } - return fids -} - -// Options represents the options that can be set when opening a database. -type Options struct { - // Timeout is the amount of time to wait to obtain a file lock. - // When set to zero it will wait indefinitely. This option is only - // available on Darwin and Linux. - Timeout time.Duration - - // Sets the DB.NoGrowSync flag before memory mapping the file. - NoGrowSync bool - - // Do not sync freelist to disk. This improves the database write performance - // under normal operation, but requires a full database re-sync during recovery. - NoFreelistSync bool - - // PreLoadFreelist sets whether to load the free pages when opening - // the db file. Note when opening db in write mode, bbolt will always - // load the free pages. - PreLoadFreelist bool - - // FreelistType sets the backend freelist type. There are two options. Array which is simple but endures - // dramatic performance degradation if database is large and fragmentation in freelist is common. - // The alternative one is using hashmap, it is faster in almost all circumstances - // but it doesn't guarantee that it offers the smallest page id available. In normal case it is safe. - // The default type is array - FreelistType FreelistType - - // Open database in read-only mode. Uses flock(..., LOCK_SH |LOCK_NB) to - // grab a shared lock (UNIX). - ReadOnly bool - - // Sets the DB.MmapFlags flag before memory mapping the file. - MmapFlags int - - // InitialMmapSize is the initial mmap size of the database - // in bytes. Read transactions won't block write transaction - // if the InitialMmapSize is large enough to hold database mmap - // size. (See DB.Begin for more information) - // - // If <=0, the initial map size is 0. - // If initialMmapSize is smaller than the previous database size, - // it takes no effect. - InitialMmapSize int - - // PageSize overrides the default OS page size. - PageSize int - - // NoSync sets the initial value of DB.NoSync. Normally this can just be - // set directly on the DB itself when returned from Open(), but this option - // is useful in APIs which expose Options but not the underlying DB. - NoSync bool - - // OpenFile is used to open files. It defaults to os.OpenFile. This option - // is useful for writing hermetic tests. - OpenFile func(string, int, os.FileMode) (*os.File, error) - - // Mlock locks database file in memory when set to true. - // It prevents potential page faults, however - // used memory can't be reclaimed. (UNIX only) - Mlock bool -} - -// DefaultOptions represent the options used if nil options are passed into Open(). -// No timeout is used which will cause Bolt to wait indefinitely for a lock. -var DefaultOptions = &Options{ - Timeout: 0, - NoGrowSync: false, - FreelistType: FreelistArrayType, -} - -// Stats represents statistics about the database. -type Stats struct { - // Freelist stats - FreePageN int // total number of free pages on the freelist - PendingPageN int // total number of pending pages on the freelist - FreeAlloc int // total bytes allocated in free pages - FreelistInuse int // total bytes used by the freelist - - // Transaction stats - TxN int // total number of started read transactions - OpenTxN int // number of currently open read transactions - - TxStats TxStats // global, ongoing stats. -} - -// Sub calculates and returns the difference between two sets of database stats. -// This is useful when obtaining stats at two different points and time and -// you need the performance counters that occurred within that time span. -func (s *Stats) Sub(other *Stats) Stats { - if other == nil { - return *s - } - var diff Stats - diff.FreePageN = s.FreePageN - diff.PendingPageN = s.PendingPageN - diff.FreeAlloc = s.FreeAlloc - diff.FreelistInuse = s.FreelistInuse - diff.TxN = s.TxN - other.TxN - diff.TxStats = s.TxStats.Sub(&other.TxStats) - return diff -} - -type Info struct { - Data uintptr - PageSize int -} - -type meta struct { - magic uint32 - version uint32 - pageSize uint32 - flags uint32 - root bucket - freelist pgid - pgid pgid - txid txid - checksum uint64 -} - -// validate checks the marker bytes and version of the meta page to ensure it matches this binary. -func (m *meta) validate() error { - if m.magic != magic { - return ErrInvalid - } else if m.version != version { - return ErrVersionMismatch - } else if m.checksum != m.sum64() { - return ErrChecksum - } - return nil -} - -// copy copies one meta object to another. -func (m *meta) copy(dest *meta) { - *dest = *m -} - -// write writes the meta onto a page. -func (m *meta) write(p *page) { - if m.root.root >= m.pgid { - panic(fmt.Sprintf("root bucket pgid (%d) above high water mark (%d)", m.root.root, m.pgid)) - } else if m.freelist >= m.pgid && m.freelist != pgidNoFreelist { - // TODO: reject pgidNoFreeList if !NoFreelistSync - panic(fmt.Sprintf("freelist pgid (%d) above high water mark (%d)", m.freelist, m.pgid)) - } - - // Page id is either going to be 0 or 1 which we can determine by the transaction ID. - p.id = pgid(m.txid % 2) - p.flags |= metaPageFlag - - // Calculate the checksum. - m.checksum = m.sum64() - - m.copy(p.meta()) -} - -// generates the checksum for the meta. -func (m *meta) sum64() uint64 { - var h = fnv.New64a() - _, _ = h.Write((*[unsafe.Offsetof(meta{}.checksum)]byte)(unsafe.Pointer(m))[:]) - return h.Sum64() -} - -// _assert will panic with a given formatted message if the given condition is false. -func _assert(condition bool, msg string, v ...interface{}) { - if !condition { - panic(fmt.Sprintf("assertion failed: "+msg, v...)) - } -} diff --git a/backend/vendor/go.etcd.io/bbolt/doc.go b/backend/vendor/go.etcd.io/bbolt/doc.go deleted file mode 100644 index d1007e4b..00000000 --- a/backend/vendor/go.etcd.io/bbolt/doc.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -package bbolt implements a low-level key/value store in pure Go. It supports -fully serializable transactions, ACID semantics, and lock-free MVCC with -multiple readers and a single writer. Bolt can be used for projects that -want a simple data store without the need to add large dependencies such as -Postgres or MySQL. - -Bolt is a single-level, zero-copy, B+tree data store. This means that Bolt is -optimized for fast read access and does not require recovery in the event of a -system crash. Transactions which have not finished committing will simply be -rolled back in the event of a crash. - -The design of Bolt is based on Howard Chu's LMDB database project. - -Bolt currently works on Windows, Mac OS X, and Linux. - -# Basics - -There are only a few types in Bolt: DB, Bucket, Tx, and Cursor. The DB is -a collection of buckets and is represented by a single file on disk. A bucket is -a collection of unique keys that are associated with values. - -Transactions provide either read-only or read-write access to the database. -Read-only transactions can retrieve key/value pairs and can use Cursors to -iterate over the dataset sequentially. Read-write transactions can create and -delete buckets and can insert and remove keys. Only one read-write transaction -is allowed at a time. - -# Caveats - -The database uses a read-only, memory-mapped data file to ensure that -applications cannot corrupt the database, however, this means that keys and -values returned from Bolt cannot be changed. Writing to a read-only byte slice -will cause Go to panic. - -Keys and values retrieved from the database are only valid for the life of -the transaction. When used outside the transaction, these byte slices can -point to different data or can point to invalid memory which will cause a panic. -*/ -package bbolt diff --git a/backend/vendor/go.etcd.io/bbolt/errors.go b/backend/vendor/go.etcd.io/bbolt/errors.go deleted file mode 100644 index f2c3b20e..00000000 --- a/backend/vendor/go.etcd.io/bbolt/errors.go +++ /dev/null @@ -1,78 +0,0 @@ -package bbolt - -import "errors" - -// These errors can be returned when opening or calling methods on a DB. -var ( - // ErrDatabaseNotOpen is returned when a DB instance is accessed before it - // is opened or after it is closed. - ErrDatabaseNotOpen = errors.New("database not open") - - // ErrDatabaseOpen is returned when opening a database that is - // already open. - ErrDatabaseOpen = errors.New("database already open") - - // ErrInvalid is returned when both meta pages on a database are invalid. - // This typically occurs when a file is not a bolt database. - ErrInvalid = errors.New("invalid database") - - // ErrInvalidMapping is returned when the database file fails to get mapped. - ErrInvalidMapping = errors.New("database isn't correctly mapped") - - // ErrVersionMismatch is returned when the data file was created with a - // different version of Bolt. - ErrVersionMismatch = errors.New("version mismatch") - - // ErrChecksum is returned when either meta page checksum does not match. - ErrChecksum = errors.New("checksum error") - - // ErrTimeout is returned when a database cannot obtain an exclusive lock - // on the data file after the timeout passed to Open(). - ErrTimeout = errors.New("timeout") -) - -// These errors can occur when beginning or committing a Tx. -var ( - // ErrTxNotWritable is returned when performing a write operation on a - // read-only transaction. - ErrTxNotWritable = errors.New("tx not writable") - - // ErrTxClosed is returned when committing or rolling back a transaction - // that has already been committed or rolled back. - ErrTxClosed = errors.New("tx closed") - - // ErrDatabaseReadOnly is returned when a mutating transaction is started on a - // read-only database. - ErrDatabaseReadOnly = errors.New("database is in read-only mode") - - // ErrFreePagesNotLoaded is returned when a readonly transaction without - // preloading the free pages is trying to access the free pages. - ErrFreePagesNotLoaded = errors.New("free pages are not pre-loaded") -) - -// These errors can occur when putting or deleting a value or a bucket. -var ( - // ErrBucketNotFound is returned when trying to access a bucket that has - // not been created yet. - ErrBucketNotFound = errors.New("bucket not found") - - // ErrBucketExists is returned when creating a bucket that already exists. - ErrBucketExists = errors.New("bucket already exists") - - // ErrBucketNameRequired is returned when creating a bucket with a blank name. - ErrBucketNameRequired = errors.New("bucket name required") - - // ErrKeyRequired is returned when inserting a zero-length key. - ErrKeyRequired = errors.New("key required") - - // ErrKeyTooLarge is returned when inserting a key that is larger than MaxKeySize. - ErrKeyTooLarge = errors.New("key too large") - - // ErrValueTooLarge is returned when inserting a value that is larger than MaxValueSize. - ErrValueTooLarge = errors.New("value too large") - - // ErrIncompatibleValue is returned when trying create or delete a bucket - // on an existing non-bucket key or when trying to create or delete a - // non-bucket key on an existing bucket key. - ErrIncompatibleValue = errors.New("incompatible value") -) diff --git a/backend/vendor/go.etcd.io/bbolt/freelist.go b/backend/vendor/go.etcd.io/bbolt/freelist.go deleted file mode 100644 index 50f2d0e1..00000000 --- a/backend/vendor/go.etcd.io/bbolt/freelist.go +++ /dev/null @@ -1,405 +0,0 @@ -package bbolt - -import ( - "fmt" - "sort" - "unsafe" -) - -// txPending holds a list of pgids and corresponding allocation txns -// that are pending to be freed. -type txPending struct { - ids []pgid - alloctx []txid // txids allocating the ids - lastReleaseBegin txid // beginning txid of last matching releaseRange -} - -// pidSet holds the set of starting pgids which have the same span size -type pidSet map[pgid]struct{} - -// freelist represents a list of all pages that are available for allocation. -// It also tracks pages that have been freed but are still in use by open transactions. -type freelist struct { - freelistType FreelistType // freelist type - ids []pgid // all free and available free page ids. - allocs map[pgid]txid // mapping of txid that allocated a pgid. - pending map[txid]*txPending // mapping of soon-to-be free page ids by tx. - cache map[pgid]struct{} // fast lookup of all free and pending page ids. - freemaps map[uint64]pidSet // key is the size of continuous pages(span), value is a set which contains the starting pgids of same size - forwardMap map[pgid]uint64 // key is start pgid, value is its span size - backwardMap map[pgid]uint64 // key is end pgid, value is its span size - allocate func(txid txid, n int) pgid // the freelist allocate func - free_count func() int // the function which gives you free page number - mergeSpans func(ids pgids) // the mergeSpan func - getFreePageIDs func() []pgid // get free pgids func - readIDs func(pgids []pgid) // readIDs func reads list of pages and init the freelist -} - -// newFreelist returns an empty, initialized freelist. -func newFreelist(freelistType FreelistType) *freelist { - f := &freelist{ - freelistType: freelistType, - allocs: make(map[pgid]txid), - pending: make(map[txid]*txPending), - cache: make(map[pgid]struct{}), - freemaps: make(map[uint64]pidSet), - forwardMap: make(map[pgid]uint64), - backwardMap: make(map[pgid]uint64), - } - - if freelistType == FreelistMapType { - f.allocate = f.hashmapAllocate - f.free_count = f.hashmapFreeCount - f.mergeSpans = f.hashmapMergeSpans - f.getFreePageIDs = f.hashmapGetFreePageIDs - f.readIDs = f.hashmapReadIDs - } else { - f.allocate = f.arrayAllocate - f.free_count = f.arrayFreeCount - f.mergeSpans = f.arrayMergeSpans - f.getFreePageIDs = f.arrayGetFreePageIDs - f.readIDs = f.arrayReadIDs - } - - return f -} - -// size returns the size of the page after serialization. -func (f *freelist) size() int { - n := f.count() - if n >= 0xFFFF { - // The first element will be used to store the count. See freelist.write. - n++ - } - return int(pageHeaderSize) + (int(unsafe.Sizeof(pgid(0))) * n) -} - -// count returns count of pages on the freelist -func (f *freelist) count() int { - return f.free_count() + f.pending_count() -} - -// arrayFreeCount returns count of free pages(array version) -func (f *freelist) arrayFreeCount() int { - return len(f.ids) -} - -// pending_count returns count of pending pages -func (f *freelist) pending_count() int { - var count int - for _, txp := range f.pending { - count += len(txp.ids) - } - return count -} - -// copyall copies a list of all free ids and all pending ids in one sorted list. -// f.count returns the minimum length required for dst. -func (f *freelist) copyall(dst []pgid) { - m := make(pgids, 0, f.pending_count()) - for _, txp := range f.pending { - m = append(m, txp.ids...) - } - sort.Sort(m) - mergepgids(dst, f.getFreePageIDs(), m) -} - -// arrayAllocate returns the starting page id of a contiguous list of pages of a given size. -// If a contiguous block cannot be found then 0 is returned. -func (f *freelist) arrayAllocate(txid txid, n int) pgid { - if len(f.ids) == 0 { - return 0 - } - - var initial, previd pgid - for i, id := range f.ids { - if id <= 1 { - panic(fmt.Sprintf("invalid page allocation: %d", id)) - } - - // Reset initial page if this is not contiguous. - if previd == 0 || id-previd != 1 { - initial = id - } - - // If we found a contiguous block then remove it and return it. - if (id-initial)+1 == pgid(n) { - // If we're allocating off the beginning then take the fast path - // and just adjust the existing slice. This will use extra memory - // temporarily but the append() in free() will realloc the slice - // as is necessary. - if (i + 1) == n { - f.ids = f.ids[i+1:] - } else { - copy(f.ids[i-n+1:], f.ids[i+1:]) - f.ids = f.ids[:len(f.ids)-n] - } - - // Remove from the free cache. - for i := pgid(0); i < pgid(n); i++ { - delete(f.cache, initial+i) - } - f.allocs[initial] = txid - return initial - } - - previd = id - } - return 0 -} - -// free releases a page and its overflow for a given transaction id. -// If the page is already free then a panic will occur. -func (f *freelist) free(txid txid, p *page) { - if p.id <= 1 { - panic(fmt.Sprintf("cannot free page 0 or 1: %d", p.id)) - } - - // Free page and all its overflow pages. - txp := f.pending[txid] - if txp == nil { - txp = &txPending{} - f.pending[txid] = txp - } - allocTxid, ok := f.allocs[p.id] - if ok { - delete(f.allocs, p.id) - } else if (p.flags & freelistPageFlag) != 0 { - // Freelist is always allocated by prior tx. - allocTxid = txid - 1 - } - - for id := p.id; id <= p.id+pgid(p.overflow); id++ { - // Verify that page is not already free. - if _, ok := f.cache[id]; ok { - panic(fmt.Sprintf("page %d already freed", id)) - } - // Add to the freelist and cache. - txp.ids = append(txp.ids, id) - txp.alloctx = append(txp.alloctx, allocTxid) - f.cache[id] = struct{}{} - } -} - -// release moves all page ids for a transaction id (or older) to the freelist. -func (f *freelist) release(txid txid) { - m := make(pgids, 0) - for tid, txp := range f.pending { - if tid <= txid { - // Move transaction's pending pages to the available freelist. - // Don't remove from the cache since the page is still free. - m = append(m, txp.ids...) - delete(f.pending, tid) - } - } - f.mergeSpans(m) -} - -// releaseRange moves pending pages allocated within an extent [begin,end] to the free list. -func (f *freelist) releaseRange(begin, end txid) { - if begin > end { - return - } - var m pgids - for tid, txp := range f.pending { - if tid < begin || tid > end { - continue - } - // Don't recompute freed pages if ranges haven't updated. - if txp.lastReleaseBegin == begin { - continue - } - for i := 0; i < len(txp.ids); i++ { - if atx := txp.alloctx[i]; atx < begin || atx > end { - continue - } - m = append(m, txp.ids[i]) - txp.ids[i] = txp.ids[len(txp.ids)-1] - txp.ids = txp.ids[:len(txp.ids)-1] - txp.alloctx[i] = txp.alloctx[len(txp.alloctx)-1] - txp.alloctx = txp.alloctx[:len(txp.alloctx)-1] - i-- - } - txp.lastReleaseBegin = begin - if len(txp.ids) == 0 { - delete(f.pending, tid) - } - } - f.mergeSpans(m) -} - -// rollback removes the pages from a given pending tx. -func (f *freelist) rollback(txid txid) { - // Remove page ids from cache. - txp := f.pending[txid] - if txp == nil { - return - } - var m pgids - for i, pgid := range txp.ids { - delete(f.cache, pgid) - tx := txp.alloctx[i] - if tx == 0 { - continue - } - if tx != txid { - // Pending free aborted; restore page back to alloc list. - f.allocs[pgid] = tx - } else { - // Freed page was allocated by this txn; OK to throw away. - m = append(m, pgid) - } - } - // Remove pages from pending list and mark as free if allocated by txid. - delete(f.pending, txid) - f.mergeSpans(m) -} - -// freed returns whether a given page is in the free list. -func (f *freelist) freed(pgId pgid) bool { - _, ok := f.cache[pgId] - return ok -} - -// read initializes the freelist from a freelist page. -func (f *freelist) read(p *page) { - if (p.flags & freelistPageFlag) == 0 { - panic(fmt.Sprintf("invalid freelist page: %d, page type is %s", p.id, p.typ())) - } - // If the page.count is at the max uint16 value (64k) then it's considered - // an overflow and the size of the freelist is stored as the first element. - var idx, count = 0, int(p.count) - if count == 0xFFFF { - idx = 1 - c := *(*pgid)(unsafeAdd(unsafe.Pointer(p), unsafe.Sizeof(*p))) - count = int(c) - if count < 0 { - panic(fmt.Sprintf("leading element count %d overflows int", c)) - } - } - - // Copy the list of page ids from the freelist. - if count == 0 { - f.ids = nil - } else { - var ids []pgid - data := unsafeIndex(unsafe.Pointer(p), unsafe.Sizeof(*p), unsafe.Sizeof(ids[0]), idx) - unsafeSlice(unsafe.Pointer(&ids), data, count) - - // copy the ids, so we don't modify on the freelist page directly - idsCopy := make([]pgid, count) - copy(idsCopy, ids) - // Make sure they're sorted. - sort.Sort(pgids(idsCopy)) - - f.readIDs(idsCopy) - } -} - -// arrayReadIDs initializes the freelist from a given list of ids. -func (f *freelist) arrayReadIDs(ids []pgid) { - f.ids = ids - f.reindex() -} - -func (f *freelist) arrayGetFreePageIDs() []pgid { - return f.ids -} - -// write writes the page ids onto a freelist page. All free and pending ids are -// saved to disk since in the event of a program crash, all pending ids will -// become free. -func (f *freelist) write(p *page) error { - // Combine the old free pgids and pgids waiting on an open transaction. - - // Update the header flag. - p.flags |= freelistPageFlag - - // The page.count can only hold up to 64k elements so if we overflow that - // number then we handle it by putting the size in the first element. - l := f.count() - if l == 0 { - p.count = uint16(l) - } else if l < 0xFFFF { - p.count = uint16(l) - var ids []pgid - data := unsafeAdd(unsafe.Pointer(p), unsafe.Sizeof(*p)) - unsafeSlice(unsafe.Pointer(&ids), data, l) - f.copyall(ids) - } else { - p.count = 0xFFFF - var ids []pgid - data := unsafeAdd(unsafe.Pointer(p), unsafe.Sizeof(*p)) - unsafeSlice(unsafe.Pointer(&ids), data, l+1) - ids[0] = pgid(l) - f.copyall(ids[1:]) - } - - return nil -} - -// reload reads the freelist from a page and filters out pending items. -func (f *freelist) reload(p *page) { - f.read(p) - - // Build a cache of only pending pages. - pcache := make(map[pgid]bool) - for _, txp := range f.pending { - for _, pendingID := range txp.ids { - pcache[pendingID] = true - } - } - - // Check each page in the freelist and build a new available freelist - // with any pages not in the pending lists. - var a []pgid - for _, id := range f.getFreePageIDs() { - if !pcache[id] { - a = append(a, id) - } - } - - f.readIDs(a) -} - -// noSyncReload reads the freelist from pgids and filters out pending items. -func (f *freelist) noSyncReload(pgids []pgid) { - // Build a cache of only pending pages. - pcache := make(map[pgid]bool) - for _, txp := range f.pending { - for _, pendingID := range txp.ids { - pcache[pendingID] = true - } - } - - // Check each page in the freelist and build a new available freelist - // with any pages not in the pending lists. - var a []pgid - for _, id := range pgids { - if !pcache[id] { - a = append(a, id) - } - } - - f.readIDs(a) -} - -// reindex rebuilds the free cache based on available and pending free lists. -func (f *freelist) reindex() { - ids := f.getFreePageIDs() - f.cache = make(map[pgid]struct{}, len(ids)) - for _, id := range ids { - f.cache[id] = struct{}{} - } - for _, txp := range f.pending { - for _, pendingID := range txp.ids { - f.cache[pendingID] = struct{}{} - } - } -} - -// arrayMergeSpans try to merge list of pages(represented by pgids) with existing spans but using array -func (f *freelist) arrayMergeSpans(ids pgids) { - sort.Sort(ids) - f.ids = pgids(f.ids).merge(ids) -} diff --git a/backend/vendor/go.etcd.io/bbolt/freelist_hmap.go b/backend/vendor/go.etcd.io/bbolt/freelist_hmap.go deleted file mode 100644 index dbd67a1e..00000000 --- a/backend/vendor/go.etcd.io/bbolt/freelist_hmap.go +++ /dev/null @@ -1,178 +0,0 @@ -package bbolt - -import "sort" - -// hashmapFreeCount returns count of free pages(hashmap version) -func (f *freelist) hashmapFreeCount() int { - // use the forwardMap to get the total count - count := 0 - for _, size := range f.forwardMap { - count += int(size) - } - return count -} - -// hashmapAllocate serves the same purpose as arrayAllocate, but use hashmap as backend -func (f *freelist) hashmapAllocate(txid txid, n int) pgid { - if n == 0 { - return 0 - } - - // if we have a exact size match just return short path - if bm, ok := f.freemaps[uint64(n)]; ok { - for pid := range bm { - // remove the span - f.delSpan(pid, uint64(n)) - - f.allocs[pid] = txid - - for i := pgid(0); i < pgid(n); i++ { - delete(f.cache, pid+i) - } - return pid - } - } - - // lookup the map to find larger span - for size, bm := range f.freemaps { - if size < uint64(n) { - continue - } - - for pid := range bm { - // remove the initial - f.delSpan(pid, size) - - f.allocs[pid] = txid - - remain := size - uint64(n) - - // add remain span - f.addSpan(pid+pgid(n), remain) - - for i := pgid(0); i < pgid(n); i++ { - delete(f.cache, pid+i) - } - return pid - } - } - - return 0 -} - -// hashmapReadIDs reads pgids as input an initial the freelist(hashmap version) -func (f *freelist) hashmapReadIDs(pgids []pgid) { - f.init(pgids) - - // Rebuild the page cache. - f.reindex() -} - -// hashmapGetFreePageIDs returns the sorted free page ids -func (f *freelist) hashmapGetFreePageIDs() []pgid { - count := f.free_count() - if count == 0 { - return nil - } - - m := make([]pgid, 0, count) - for start, size := range f.forwardMap { - for i := 0; i < int(size); i++ { - m = append(m, start+pgid(i)) - } - } - sort.Sort(pgids(m)) - - return m -} - -// hashmapMergeSpans try to merge list of pages(represented by pgids) with existing spans -func (f *freelist) hashmapMergeSpans(ids pgids) { - for _, id := range ids { - // try to see if we can merge and update - f.mergeWithExistingSpan(id) - } -} - -// mergeWithExistingSpan merges pid to the existing free spans, try to merge it backward and forward -func (f *freelist) mergeWithExistingSpan(pid pgid) { - prev := pid - 1 - next := pid + 1 - - preSize, mergeWithPrev := f.backwardMap[prev] - nextSize, mergeWithNext := f.forwardMap[next] - newStart := pid - newSize := uint64(1) - - if mergeWithPrev { - //merge with previous span - start := prev + 1 - pgid(preSize) - f.delSpan(start, preSize) - - newStart -= pgid(preSize) - newSize += preSize - } - - if mergeWithNext { - // merge with next span - f.delSpan(next, nextSize) - newSize += nextSize - } - - f.addSpan(newStart, newSize) -} - -func (f *freelist) addSpan(start pgid, size uint64) { - f.backwardMap[start-1+pgid(size)] = size - f.forwardMap[start] = size - if _, ok := f.freemaps[size]; !ok { - f.freemaps[size] = make(map[pgid]struct{}) - } - - f.freemaps[size][start] = struct{}{} -} - -func (f *freelist) delSpan(start pgid, size uint64) { - delete(f.forwardMap, start) - delete(f.backwardMap, start+pgid(size-1)) - delete(f.freemaps[size], start) - if len(f.freemaps[size]) == 0 { - delete(f.freemaps, size) - } -} - -// initial from pgids using when use hashmap version -// pgids must be sorted -func (f *freelist) init(pgids []pgid) { - if len(pgids) == 0 { - return - } - - size := uint64(1) - start := pgids[0] - - if !sort.SliceIsSorted([]pgid(pgids), func(i, j int) bool { return pgids[i] < pgids[j] }) { - panic("pgids not sorted") - } - - f.freemaps = make(map[uint64]pidSet) - f.forwardMap = make(map[pgid]uint64) - f.backwardMap = make(map[pgid]uint64) - - for i := 1; i < len(pgids); i++ { - // continuous page - if pgids[i] == pgids[i-1]+1 { - size++ - } else { - f.addSpan(start, size) - - size = 1 - start = pgids[i] - } - } - - // init the tail - if size != 0 && start != 0 { - f.addSpan(start, size) - } -} diff --git a/backend/vendor/go.etcd.io/bbolt/mlock_unix.go b/backend/vendor/go.etcd.io/bbolt/mlock_unix.go deleted file mode 100644 index 744a972f..00000000 --- a/backend/vendor/go.etcd.io/bbolt/mlock_unix.go +++ /dev/null @@ -1,37 +0,0 @@ -//go:build !windows -// +build !windows - -package bbolt - -import "golang.org/x/sys/unix" - -// mlock locks memory of db file -func mlock(db *DB, fileSize int) error { - sizeToLock := fileSize - if sizeToLock > db.datasz { - // Can't lock more than mmaped slice - sizeToLock = db.datasz - } - if err := unix.Mlock(db.dataref[:sizeToLock]); err != nil { - return err - } - return nil -} - -// munlock unlocks memory of db file -func munlock(db *DB, fileSize int) error { - if db.dataref == nil { - return nil - } - - sizeToUnlock := fileSize - if sizeToUnlock > db.datasz { - // Can't unlock more than mmaped slice - sizeToUnlock = db.datasz - } - - if err := unix.Munlock(db.dataref[:sizeToUnlock]); err != nil { - return err - } - return nil -} diff --git a/backend/vendor/go.etcd.io/bbolt/mlock_windows.go b/backend/vendor/go.etcd.io/bbolt/mlock_windows.go deleted file mode 100644 index 00b0fb43..00000000 --- a/backend/vendor/go.etcd.io/bbolt/mlock_windows.go +++ /dev/null @@ -1,11 +0,0 @@ -package bbolt - -// mlock locks memory of db file -func mlock(_ *DB, _ int) error { - panic("mlock is supported only on UNIX systems") -} - -// munlock unlocks memory of db file -func munlock(_ *DB, _ int) error { - panic("munlock is supported only on UNIX systems") -} diff --git a/backend/vendor/go.etcd.io/bbolt/node.go b/backend/vendor/go.etcd.io/bbolt/node.go deleted file mode 100644 index 9c56150d..00000000 --- a/backend/vendor/go.etcd.io/bbolt/node.go +++ /dev/null @@ -1,610 +0,0 @@ -package bbolt - -import ( - "bytes" - "fmt" - "sort" - "unsafe" -) - -// node represents an in-memory, deserialized page. -type node struct { - bucket *Bucket - isLeaf bool - unbalanced bool - spilled bool - key []byte - pgid pgid - parent *node - children nodes - inodes inodes -} - -// root returns the top-level node this node is attached to. -func (n *node) root() *node { - if n.parent == nil { - return n - } - return n.parent.root() -} - -// minKeys returns the minimum number of inodes this node should have. -func (n *node) minKeys() int { - if n.isLeaf { - return 1 - } - return 2 -} - -// size returns the size of the node after serialization. -func (n *node) size() int { - sz, elsz := pageHeaderSize, n.pageElementSize() - for i := 0; i < len(n.inodes); i++ { - item := &n.inodes[i] - sz += elsz + uintptr(len(item.key)) + uintptr(len(item.value)) - } - return int(sz) -} - -// sizeLessThan returns true if the node is less than a given size. -// This is an optimization to avoid calculating a large node when we only need -// to know if it fits inside a certain page size. -func (n *node) sizeLessThan(v uintptr) bool { - sz, elsz := pageHeaderSize, n.pageElementSize() - for i := 0; i < len(n.inodes); i++ { - item := &n.inodes[i] - sz += elsz + uintptr(len(item.key)) + uintptr(len(item.value)) - if sz >= v { - return false - } - } - return true -} - -// pageElementSize returns the size of each page element based on the type of node. -func (n *node) pageElementSize() uintptr { - if n.isLeaf { - return leafPageElementSize - } - return branchPageElementSize -} - -// childAt returns the child node at a given index. -func (n *node) childAt(index int) *node { - if n.isLeaf { - panic(fmt.Sprintf("invalid childAt(%d) on a leaf node", index)) - } - return n.bucket.node(n.inodes[index].pgid, n) -} - -// childIndex returns the index of a given child node. -func (n *node) childIndex(child *node) int { - index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, child.key) != -1 }) - return index -} - -// numChildren returns the number of children. -func (n *node) numChildren() int { - return len(n.inodes) -} - -// nextSibling returns the next node with the same parent. -func (n *node) nextSibling() *node { - if n.parent == nil { - return nil - } - index := n.parent.childIndex(n) - if index >= n.parent.numChildren()-1 { - return nil - } - return n.parent.childAt(index + 1) -} - -// prevSibling returns the previous node with the same parent. -func (n *node) prevSibling() *node { - if n.parent == nil { - return nil - } - index := n.parent.childIndex(n) - if index == 0 { - return nil - } - return n.parent.childAt(index - 1) -} - -// put inserts a key/value. -func (n *node) put(oldKey, newKey, value []byte, pgId pgid, flags uint32) { - if pgId >= n.bucket.tx.meta.pgid { - panic(fmt.Sprintf("pgId (%d) above high water mark (%d)", pgId, n.bucket.tx.meta.pgid)) - } else if len(oldKey) <= 0 { - panic("put: zero-length old key") - } else if len(newKey) <= 0 { - panic("put: zero-length new key") - } - - // Find insertion index. - index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, oldKey) != -1 }) - - // Add capacity and shift nodes if we don't have an exact match and need to insert. - exact := (len(n.inodes) > 0 && index < len(n.inodes) && bytes.Equal(n.inodes[index].key, oldKey)) - if !exact { - n.inodes = append(n.inodes, inode{}) - copy(n.inodes[index+1:], n.inodes[index:]) - } - - inode := &n.inodes[index] - inode.flags = flags - inode.key = newKey - inode.value = value - inode.pgid = pgId - _assert(len(inode.key) > 0, "put: zero-length inode key") -} - -// del removes a key from the node. -func (n *node) del(key []byte) { - // Find index of key. - index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, key) != -1 }) - - // Exit if the key isn't found. - if index >= len(n.inodes) || !bytes.Equal(n.inodes[index].key, key) { - return - } - - // Delete inode from the node. - n.inodes = append(n.inodes[:index], n.inodes[index+1:]...) - - // Mark the node as needing rebalancing. - n.unbalanced = true -} - -// read initializes the node from a page. -func (n *node) read(p *page) { - n.pgid = p.id - n.isLeaf = ((p.flags & leafPageFlag) != 0) - n.inodes = make(inodes, int(p.count)) - - for i := 0; i < int(p.count); i++ { - inode := &n.inodes[i] - if n.isLeaf { - elem := p.leafPageElement(uint16(i)) - inode.flags = elem.flags - inode.key = elem.key() - inode.value = elem.value() - } else { - elem := p.branchPageElement(uint16(i)) - inode.pgid = elem.pgid - inode.key = elem.key() - } - _assert(len(inode.key) > 0, "read: zero-length inode key") - } - - // Save first key so we can find the node in the parent when we spill. - if len(n.inodes) > 0 { - n.key = n.inodes[0].key - _assert(len(n.key) > 0, "read: zero-length node key") - } else { - n.key = nil - } -} - -// write writes the items onto one or more pages. -// The page should have p.id (might be 0 for meta or bucket-inline page) and p.overflow set -// and the rest should be zeroed. -func (n *node) write(p *page) { - _assert(p.count == 0 && p.flags == 0, "node cannot be written into a not empty page") - - // Initialize page. - if n.isLeaf { - p.flags = leafPageFlag - } else { - p.flags = branchPageFlag - } - - if len(n.inodes) >= 0xFFFF { - panic(fmt.Sprintf("inode overflow: %d (pgid=%d)", len(n.inodes), p.id)) - } - p.count = uint16(len(n.inodes)) - - // Stop here if there are no items to write. - if p.count == 0 { - return - } - - // Loop over each item and write it to the page. - // off tracks the offset into p of the start of the next data. - off := unsafe.Sizeof(*p) + n.pageElementSize()*uintptr(len(n.inodes)) - for i, item := range n.inodes { - _assert(len(item.key) > 0, "write: zero-length inode key") - - // Create a slice to write into of needed size and advance - // byte pointer for next iteration. - sz := len(item.key) + len(item.value) - b := unsafeByteSlice(unsafe.Pointer(p), off, 0, sz) - off += uintptr(sz) - - // Write the page element. - if n.isLeaf { - elem := p.leafPageElement(uint16(i)) - elem.pos = uint32(uintptr(unsafe.Pointer(&b[0])) - uintptr(unsafe.Pointer(elem))) - elem.flags = item.flags - elem.ksize = uint32(len(item.key)) - elem.vsize = uint32(len(item.value)) - } else { - elem := p.branchPageElement(uint16(i)) - elem.pos = uint32(uintptr(unsafe.Pointer(&b[0])) - uintptr(unsafe.Pointer(elem))) - elem.ksize = uint32(len(item.key)) - elem.pgid = item.pgid - _assert(elem.pgid != p.id, "write: circular dependency occurred") - } - - // Write data for the element to the end of the page. - l := copy(b, item.key) - copy(b[l:], item.value) - } - - // DEBUG ONLY: n.dump() -} - -// split breaks up a node into multiple smaller nodes, if appropriate. -// This should only be called from the spill() function. -func (n *node) split(pageSize uintptr) []*node { - var nodes []*node - - node := n - for { - // Split node into two. - a, b := node.splitTwo(pageSize) - nodes = append(nodes, a) - - // If we can't split then exit the loop. - if b == nil { - break - } - - // Set node to b so it gets split on the next iteration. - node = b - } - - return nodes -} - -// splitTwo breaks up a node into two smaller nodes, if appropriate. -// This should only be called from the split() function. -func (n *node) splitTwo(pageSize uintptr) (*node, *node) { - // Ignore the split if the page doesn't have at least enough nodes for - // two pages or if the nodes can fit in a single page. - if len(n.inodes) <= (minKeysPerPage*2) || n.sizeLessThan(pageSize) { - return n, nil - } - - // Determine the threshold before starting a new node. - var fillPercent = n.bucket.FillPercent - if fillPercent < minFillPercent { - fillPercent = minFillPercent - } else if fillPercent > maxFillPercent { - fillPercent = maxFillPercent - } - threshold := int(float64(pageSize) * fillPercent) - - // Determine split position and sizes of the two pages. - splitIndex, _ := n.splitIndex(threshold) - - // Split node into two separate nodes. - // If there's no parent then we'll need to create one. - if n.parent == nil { - n.parent = &node{bucket: n.bucket, children: []*node{n}} - } - - // Create a new node and add it to the parent. - next := &node{bucket: n.bucket, isLeaf: n.isLeaf, parent: n.parent} - n.parent.children = append(n.parent.children, next) - - // Split inodes across two nodes. - next.inodes = n.inodes[splitIndex:] - n.inodes = n.inodes[:splitIndex] - - // Update the statistics. - n.bucket.tx.stats.IncSplit(1) - - return n, next -} - -// splitIndex finds the position where a page will fill a given threshold. -// It returns the index as well as the size of the first page. -// This is only be called from split(). -func (n *node) splitIndex(threshold int) (index, sz uintptr) { - sz = pageHeaderSize - - // Loop until we only have the minimum number of keys required for the second page. - for i := 0; i < len(n.inodes)-minKeysPerPage; i++ { - index = uintptr(i) - inode := n.inodes[i] - elsize := n.pageElementSize() + uintptr(len(inode.key)) + uintptr(len(inode.value)) - - // If we have at least the minimum number of keys and adding another - // node would put us over the threshold then exit and return. - if index >= minKeysPerPage && sz+elsize > uintptr(threshold) { - break - } - - // Add the element size to the total size. - sz += elsize - } - - return -} - -// spill writes the nodes to dirty pages and splits nodes as it goes. -// Returns an error if dirty pages cannot be allocated. -func (n *node) spill() error { - var tx = n.bucket.tx - if n.spilled { - return nil - } - - // Spill child nodes first. Child nodes can materialize sibling nodes in - // the case of split-merge so we cannot use a range loop. We have to check - // the children size on every loop iteration. - sort.Sort(n.children) - for i := 0; i < len(n.children); i++ { - if err := n.children[i].spill(); err != nil { - return err - } - } - - // We no longer need the child list because it's only used for spill tracking. - n.children = nil - - // Split nodes into appropriate sizes. The first node will always be n. - var nodes = n.split(uintptr(tx.db.pageSize)) - for _, node := range nodes { - // Add node's page to the freelist if it's not new. - if node.pgid > 0 { - tx.db.freelist.free(tx.meta.txid, tx.page(node.pgid)) - node.pgid = 0 - } - - // Allocate contiguous space for the node. - p, err := tx.allocate((node.size() + tx.db.pageSize - 1) / tx.db.pageSize) - if err != nil { - return err - } - - // Write the node. - if p.id >= tx.meta.pgid { - panic(fmt.Sprintf("pgid (%d) above high water mark (%d)", p.id, tx.meta.pgid)) - } - node.pgid = p.id - node.write(p) - node.spilled = true - - // Insert into parent inodes. - if node.parent != nil { - var key = node.key - if key == nil { - key = node.inodes[0].key - } - - node.parent.put(key, node.inodes[0].key, nil, node.pgid, 0) - node.key = node.inodes[0].key - _assert(len(node.key) > 0, "spill: zero-length node key") - } - - // Update the statistics. - tx.stats.IncSpill(1) - } - - // If the root node split and created a new root then we need to spill that - // as well. We'll clear out the children to make sure it doesn't try to respill. - if n.parent != nil && n.parent.pgid == 0 { - n.children = nil - return n.parent.spill() - } - - return nil -} - -// rebalance attempts to combine the node with sibling nodes if the node fill -// size is below a threshold or if there are not enough keys. -func (n *node) rebalance() { - if !n.unbalanced { - return - } - n.unbalanced = false - - // Update statistics. - n.bucket.tx.stats.IncRebalance(1) - - // Ignore if node is above threshold (25%) and has enough keys. - var threshold = n.bucket.tx.db.pageSize / 4 - if n.size() > threshold && len(n.inodes) > n.minKeys() { - return - } - - // Root node has special handling. - if n.parent == nil { - // If root node is a branch and only has one node then collapse it. - if !n.isLeaf && len(n.inodes) == 1 { - // Move root's child up. - child := n.bucket.node(n.inodes[0].pgid, n) - n.isLeaf = child.isLeaf - n.inodes = child.inodes[:] - n.children = child.children - - // Reparent all child nodes being moved. - for _, inode := range n.inodes { - if child, ok := n.bucket.nodes[inode.pgid]; ok { - child.parent = n - } - } - - // Remove old child. - child.parent = nil - delete(n.bucket.nodes, child.pgid) - child.free() - } - - return - } - - // If node has no keys then just remove it. - if n.numChildren() == 0 { - n.parent.del(n.key) - n.parent.removeChild(n) - delete(n.bucket.nodes, n.pgid) - n.free() - n.parent.rebalance() - return - } - - _assert(n.parent.numChildren() > 1, "parent must have at least 2 children") - - // Destination node is right sibling if idx == 0, otherwise left sibling. - var target *node - var useNextSibling = (n.parent.childIndex(n) == 0) - if useNextSibling { - target = n.nextSibling() - } else { - target = n.prevSibling() - } - - // If both this node and the target node are too small then merge them. - if useNextSibling { - // Reparent all child nodes being moved. - for _, inode := range target.inodes { - if child, ok := n.bucket.nodes[inode.pgid]; ok { - child.parent.removeChild(child) - child.parent = n - child.parent.children = append(child.parent.children, child) - } - } - - // Copy over inodes from target and remove target. - n.inodes = append(n.inodes, target.inodes...) - n.parent.del(target.key) - n.parent.removeChild(target) - delete(n.bucket.nodes, target.pgid) - target.free() - } else { - // Reparent all child nodes being moved. - for _, inode := range n.inodes { - if child, ok := n.bucket.nodes[inode.pgid]; ok { - child.parent.removeChild(child) - child.parent = target - child.parent.children = append(child.parent.children, child) - } - } - - // Copy over inodes to target and remove node. - target.inodes = append(target.inodes, n.inodes...) - n.parent.del(n.key) - n.parent.removeChild(n) - delete(n.bucket.nodes, n.pgid) - n.free() - } - - // Either this node or the target node was deleted from the parent so rebalance it. - n.parent.rebalance() -} - -// removes a node from the list of in-memory children. -// This does not affect the inodes. -func (n *node) removeChild(target *node) { - for i, child := range n.children { - if child == target { - n.children = append(n.children[:i], n.children[i+1:]...) - return - } - } -} - -// dereference causes the node to copy all its inode key/value references to heap memory. -// This is required when the mmap is reallocated so inodes are not pointing to stale data. -func (n *node) dereference() { - if n.key != nil { - key := make([]byte, len(n.key)) - copy(key, n.key) - n.key = key - _assert(n.pgid == 0 || len(n.key) > 0, "dereference: zero-length node key on existing node") - } - - for i := range n.inodes { - inode := &n.inodes[i] - - key := make([]byte, len(inode.key)) - copy(key, inode.key) - inode.key = key - _assert(len(inode.key) > 0, "dereference: zero-length inode key") - - value := make([]byte, len(inode.value)) - copy(value, inode.value) - inode.value = value - } - - // Recursively dereference children. - for _, child := range n.children { - child.dereference() - } - - // Update statistics. - n.bucket.tx.stats.IncNodeDeref(1) -} - -// free adds the node's underlying page to the freelist. -func (n *node) free() { - if n.pgid != 0 { - n.bucket.tx.db.freelist.free(n.bucket.tx.meta.txid, n.bucket.tx.page(n.pgid)) - n.pgid = 0 - } -} - -// dump writes the contents of the node to STDERR for debugging purposes. -/* -func (n *node) dump() { - // Write node header. - var typ = "branch" - if n.isLeaf { - typ = "leaf" - } - warnf("[NODE %d {type=%s count=%d}]", n.pgid, typ, len(n.inodes)) - - // Write out abbreviated version of each item. - for _, item := range n.inodes { - if n.isLeaf { - if item.flags&bucketLeafFlag != 0 { - bucket := (*bucket)(unsafe.Pointer(&item.value[0])) - warnf("+L %08x -> (bucket root=%d)", trunc(item.key, 4), bucket.root) - } else { - warnf("+L %08x -> %08x", trunc(item.key, 4), trunc(item.value, 4)) - } - } else { - warnf("+B %08x -> pgid=%d", trunc(item.key, 4), item.pgid) - } - } - warn("") -} -*/ - -func compareKeys(left, right []byte) int { - return bytes.Compare(left, right) -} - -type nodes []*node - -func (s nodes) Len() int { return len(s) } -func (s nodes) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s nodes) Less(i, j int) bool { - return bytes.Compare(s[i].inodes[0].key, s[j].inodes[0].key) == -1 -} - -// inode represents an internal node inside of a node. -// It can be used to point to elements in a page or point -// to an element which hasn't been added to a page yet. -type inode struct { - flags uint32 - pgid pgid - key []byte - value []byte -} - -type inodes []inode diff --git a/backend/vendor/go.etcd.io/bbolt/page.go b/backend/vendor/go.etcd.io/bbolt/page.go deleted file mode 100644 index 379645c9..00000000 --- a/backend/vendor/go.etcd.io/bbolt/page.go +++ /dev/null @@ -1,214 +0,0 @@ -package bbolt - -import ( - "fmt" - "os" - "sort" - "unsafe" -) - -const pageHeaderSize = unsafe.Sizeof(page{}) - -const minKeysPerPage = 2 - -const branchPageElementSize = unsafe.Sizeof(branchPageElement{}) -const leafPageElementSize = unsafe.Sizeof(leafPageElement{}) - -const ( - branchPageFlag = 0x01 - leafPageFlag = 0x02 - metaPageFlag = 0x04 - freelistPageFlag = 0x10 -) - -const ( - bucketLeafFlag = 0x01 -) - -type pgid uint64 - -type page struct { - id pgid - flags uint16 - count uint16 - overflow uint32 -} - -// typ returns a human readable page type string used for debugging. -func (p *page) typ() string { - if (p.flags & branchPageFlag) != 0 { - return "branch" - } else if (p.flags & leafPageFlag) != 0 { - return "leaf" - } else if (p.flags & metaPageFlag) != 0 { - return "meta" - } else if (p.flags & freelistPageFlag) != 0 { - return "freelist" - } - return fmt.Sprintf("unknown<%02x>", p.flags) -} - -// meta returns a pointer to the metadata section of the page. -func (p *page) meta() *meta { - return (*meta)(unsafeAdd(unsafe.Pointer(p), unsafe.Sizeof(*p))) -} - -func (p *page) fastCheck(id pgid) { - _assert(p.id == id, "Page expected to be: %v, but self identifies as %v", id, p.id) - // Only one flag of page-type can be set. - _assert(p.flags == branchPageFlag || - p.flags == leafPageFlag || - p.flags == metaPageFlag || - p.flags == freelistPageFlag, - "page %v: has unexpected type/flags: %x", p.id, p.flags) -} - -// leafPageElement retrieves the leaf node by index -func (p *page) leafPageElement(index uint16) *leafPageElement { - return (*leafPageElement)(unsafeIndex(unsafe.Pointer(p), unsafe.Sizeof(*p), - leafPageElementSize, int(index))) -} - -// leafPageElements retrieves a list of leaf nodes. -func (p *page) leafPageElements() []leafPageElement { - if p.count == 0 { - return nil - } - var elems []leafPageElement - data := unsafeAdd(unsafe.Pointer(p), unsafe.Sizeof(*p)) - unsafeSlice(unsafe.Pointer(&elems), data, int(p.count)) - return elems -} - -// branchPageElement retrieves the branch node by index -func (p *page) branchPageElement(index uint16) *branchPageElement { - return (*branchPageElement)(unsafeIndex(unsafe.Pointer(p), unsafe.Sizeof(*p), - unsafe.Sizeof(branchPageElement{}), int(index))) -} - -// branchPageElements retrieves a list of branch nodes. -func (p *page) branchPageElements() []branchPageElement { - if p.count == 0 { - return nil - } - var elems []branchPageElement - data := unsafeAdd(unsafe.Pointer(p), unsafe.Sizeof(*p)) - unsafeSlice(unsafe.Pointer(&elems), data, int(p.count)) - return elems -} - -// dump writes n bytes of the page to STDERR as hex output. -func (p *page) hexdump(n int) { - buf := unsafeByteSlice(unsafe.Pointer(p), 0, 0, n) - fmt.Fprintf(os.Stderr, "%x\n", buf) -} - -type pages []*page - -func (s pages) Len() int { return len(s) } -func (s pages) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s pages) Less(i, j int) bool { return s[i].id < s[j].id } - -// branchPageElement represents a node on a branch page. -type branchPageElement struct { - pos uint32 - ksize uint32 - pgid pgid -} - -// key returns a byte slice of the node key. -func (n *branchPageElement) key() []byte { - return unsafeByteSlice(unsafe.Pointer(n), 0, int(n.pos), int(n.pos)+int(n.ksize)) -} - -// leafPageElement represents a node on a leaf page. -type leafPageElement struct { - flags uint32 - pos uint32 - ksize uint32 - vsize uint32 -} - -// key returns a byte slice of the node key. -func (n *leafPageElement) key() []byte { - i := int(n.pos) - j := i + int(n.ksize) - return unsafeByteSlice(unsafe.Pointer(n), 0, i, j) -} - -// value returns a byte slice of the node value. -func (n *leafPageElement) value() []byte { - i := int(n.pos) + int(n.ksize) - j := i + int(n.vsize) - return unsafeByteSlice(unsafe.Pointer(n), 0, i, j) -} - -// PageInfo represents human readable information about a page. -type PageInfo struct { - ID int - Type string - Count int - OverflowCount int -} - -type pgids []pgid - -func (s pgids) Len() int { return len(s) } -func (s pgids) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s pgids) Less(i, j int) bool { return s[i] < s[j] } - -// merge returns the sorted union of a and b. -func (a pgids) merge(b pgids) pgids { - // Return the opposite slice if one is nil. - if len(a) == 0 { - return b - } - if len(b) == 0 { - return a - } - merged := make(pgids, len(a)+len(b)) - mergepgids(merged, a, b) - return merged -} - -// mergepgids copies the sorted union of a and b into dst. -// If dst is too small, it panics. -func mergepgids(dst, a, b pgids) { - if len(dst) < len(a)+len(b) { - panic(fmt.Errorf("mergepgids bad len %d < %d + %d", len(dst), len(a), len(b))) - } - // Copy in the opposite slice if one is nil. - if len(a) == 0 { - copy(dst, b) - return - } - if len(b) == 0 { - copy(dst, a) - return - } - - // Merged will hold all elements from both lists. - merged := dst[:0] - - // Assign lead to the slice with a lower starting value, follow to the higher value. - lead, follow := a, b - if b[0] < a[0] { - lead, follow = b, a - } - - // Continue while there are elements in the lead. - for len(lead) > 0 { - // Merge largest prefix of lead that is ahead of follow[0]. - n := sort.Search(len(lead), func(i int) bool { return lead[i] > follow[0] }) - merged = append(merged, lead[:n]...) - if n >= len(lead) { - break - } - - // Swap lead and follow. - lead, follow = follow, lead[n:] - } - - // Append what's left in follow. - _ = append(merged, follow...) -} diff --git a/backend/vendor/go.etcd.io/bbolt/tx.go b/backend/vendor/go.etcd.io/bbolt/tx.go deleted file mode 100644 index 2fac8c0a..00000000 --- a/backend/vendor/go.etcd.io/bbolt/tx.go +++ /dev/null @@ -1,797 +0,0 @@ -package bbolt - -import ( - "fmt" - "io" - "os" - "sort" - "strings" - "sync/atomic" - "time" - "unsafe" -) - -// txid represents the internal transaction identifier. -type txid uint64 - -// Tx represents a read-only or read/write transaction on the database. -// Read-only transactions can be used for retrieving values for keys and creating cursors. -// Read/write transactions can create and remove buckets and create and remove keys. -// -// IMPORTANT: You must commit or rollback transactions when you are done with -// them. Pages can not be reclaimed by the writer until no more transactions -// are using them. A long running read transaction can cause the database to -// quickly grow. -type Tx struct { - writable bool - managed bool - db *DB - meta *meta - root Bucket - pages map[pgid]*page - stats TxStats - commitHandlers []func() - - // WriteFlag specifies the flag for write-related methods like WriteTo(). - // Tx opens the database file with the specified flag to copy the data. - // - // By default, the flag is unset, which works well for mostly in-memory - // workloads. For databases that are much larger than available RAM, - // set the flag to syscall.O_DIRECT to avoid trashing the page cache. - WriteFlag int -} - -// init initializes the transaction. -func (tx *Tx) init(db *DB) { - tx.db = db - tx.pages = nil - - // Copy the meta page since it can be changed by the writer. - tx.meta = &meta{} - db.meta().copy(tx.meta) - - // Copy over the root bucket. - tx.root = newBucket(tx) - tx.root.bucket = &bucket{} - *tx.root.bucket = tx.meta.root - - // Increment the transaction id and add a page cache for writable transactions. - if tx.writable { - tx.pages = make(map[pgid]*page) - tx.meta.txid += txid(1) - } -} - -// ID returns the transaction id. -func (tx *Tx) ID() int { - return int(tx.meta.txid) -} - -// DB returns a reference to the database that created the transaction. -func (tx *Tx) DB() *DB { - return tx.db -} - -// Size returns current database size in bytes as seen by this transaction. -func (tx *Tx) Size() int64 { - return int64(tx.meta.pgid) * int64(tx.db.pageSize) -} - -// Writable returns whether the transaction can perform write operations. -func (tx *Tx) Writable() bool { - return tx.writable -} - -// Cursor creates a cursor associated with the root bucket. -// All items in the cursor will return a nil value because all root bucket keys point to buckets. -// The cursor is only valid as long as the transaction is open. -// Do not use a cursor after the transaction is closed. -func (tx *Tx) Cursor() *Cursor { - return tx.root.Cursor() -} - -// Stats retrieves a copy of the current transaction statistics. -func (tx *Tx) Stats() TxStats { - return tx.stats -} - -// Bucket retrieves a bucket by name. -// Returns nil if the bucket does not exist. -// The bucket instance is only valid for the lifetime of the transaction. -func (tx *Tx) Bucket(name []byte) *Bucket { - return tx.root.Bucket(name) -} - -// CreateBucket creates a new bucket. -// Returns an error if the bucket already exists, if the bucket name is blank, or if the bucket name is too long. -// The bucket instance is only valid for the lifetime of the transaction. -func (tx *Tx) CreateBucket(name []byte) (*Bucket, error) { - return tx.root.CreateBucket(name) -} - -// CreateBucketIfNotExists creates a new bucket if it doesn't already exist. -// Returns an error if the bucket name is blank, or if the bucket name is too long. -// The bucket instance is only valid for the lifetime of the transaction. -func (tx *Tx) CreateBucketIfNotExists(name []byte) (*Bucket, error) { - return tx.root.CreateBucketIfNotExists(name) -} - -// DeleteBucket deletes a bucket. -// Returns an error if the bucket cannot be found or if the key represents a non-bucket value. -func (tx *Tx) DeleteBucket(name []byte) error { - return tx.root.DeleteBucket(name) -} - -// ForEach executes a function for each bucket in the root. -// If the provided function returns an error then the iteration is stopped and -// the error is returned to the caller. -func (tx *Tx) ForEach(fn func(name []byte, b *Bucket) error) error { - return tx.root.ForEach(func(k, v []byte) error { - return fn(k, tx.root.Bucket(k)) - }) -} - -// OnCommit adds a handler function to be executed after the transaction successfully commits. -func (tx *Tx) OnCommit(fn func()) { - tx.commitHandlers = append(tx.commitHandlers, fn) -} - -// Commit writes all changes to disk and updates the meta page. -// Returns an error if a disk write error occurs, or if Commit is -// called on a read-only transaction. -func (tx *Tx) Commit() error { - _assert(!tx.managed, "managed tx commit not allowed") - if tx.db == nil { - return ErrTxClosed - } else if !tx.writable { - return ErrTxNotWritable - } - - // TODO(benbjohnson): Use vectorized I/O to write out dirty pages. - - // Rebalance nodes which have had deletions. - var startTime = time.Now() - tx.root.rebalance() - if tx.stats.GetRebalance() > 0 { - tx.stats.IncRebalanceTime(time.Since(startTime)) - } - - opgid := tx.meta.pgid - - // spill data onto dirty pages. - startTime = time.Now() - if err := tx.root.spill(); err != nil { - tx.rollback() - return err - } - tx.stats.IncSpillTime(time.Since(startTime)) - - // Free the old root bucket. - tx.meta.root.root = tx.root.root - - // Free the old freelist because commit writes out a fresh freelist. - if tx.meta.freelist != pgidNoFreelist { - tx.db.freelist.free(tx.meta.txid, tx.db.page(tx.meta.freelist)) - } - - if !tx.db.NoFreelistSync { - err := tx.commitFreelist() - if err != nil { - return err - } - } else { - tx.meta.freelist = pgidNoFreelist - } - - // If the high water mark has moved up then attempt to grow the database. - if tx.meta.pgid > opgid { - if err := tx.db.grow(int(tx.meta.pgid+1) * tx.db.pageSize); err != nil { - tx.rollback() - return err - } - } - - // Write dirty pages to disk. - startTime = time.Now() - if err := tx.write(); err != nil { - tx.rollback() - return err - } - - // If strict mode is enabled then perform a consistency check. - if tx.db.StrictMode { - ch := tx.Check() - var errs []string - for { - err, ok := <-ch - if !ok { - break - } - errs = append(errs, err.Error()) - } - if len(errs) > 0 { - panic("check fail: " + strings.Join(errs, "\n")) - } - } - - // Write meta to disk. - if err := tx.writeMeta(); err != nil { - tx.rollback() - return err - } - tx.stats.IncWriteTime(time.Since(startTime)) - - // Finalize the transaction. - tx.close() - - // Execute commit handlers now that the locks have been removed. - for _, fn := range tx.commitHandlers { - fn() - } - - return nil -} - -func (tx *Tx) commitFreelist() error { - // Allocate new pages for the new free list. This will overestimate - // the size of the freelist but not underestimate the size (which would be bad). - p, err := tx.allocate((tx.db.freelist.size() / tx.db.pageSize) + 1) - if err != nil { - tx.rollback() - return err - } - if err := tx.db.freelist.write(p); err != nil { - tx.rollback() - return err - } - tx.meta.freelist = p.id - - return nil -} - -// Rollback closes the transaction and ignores all previous updates. Read-only -// transactions must be rolled back and not committed. -func (tx *Tx) Rollback() error { - _assert(!tx.managed, "managed tx rollback not allowed") - if tx.db == nil { - return ErrTxClosed - } - tx.nonPhysicalRollback() - return nil -} - -// nonPhysicalRollback is called when user calls Rollback directly, in this case we do not need to reload the free pages from disk. -func (tx *Tx) nonPhysicalRollback() { - if tx.db == nil { - return - } - if tx.writable { - tx.db.freelist.rollback(tx.meta.txid) - } - tx.close() -} - -// rollback needs to reload the free pages from disk in case some system error happens like fsync error. -func (tx *Tx) rollback() { - if tx.db == nil { - return - } - if tx.writable { - tx.db.freelist.rollback(tx.meta.txid) - // When mmap fails, the `data`, `dataref` and `datasz` may be reset to - // zero values, and there is no way to reload free page IDs in this case. - if tx.db.data != nil { - if !tx.db.hasSyncedFreelist() { - // Reconstruct free page list by scanning the DB to get the whole free page list. - // Note: scaning the whole db is heavy if your db size is large in NoSyncFreeList mode. - tx.db.freelist.noSyncReload(tx.db.freepages()) - } else { - // Read free page list from freelist page. - tx.db.freelist.reload(tx.db.page(tx.db.meta().freelist)) - } - } - } - tx.close() -} - -func (tx *Tx) close() { - if tx.db == nil { - return - } - if tx.writable { - // Grab freelist stats. - var freelistFreeN = tx.db.freelist.free_count() - var freelistPendingN = tx.db.freelist.pending_count() - var freelistAlloc = tx.db.freelist.size() - - // Remove transaction ref & writer lock. - tx.db.rwtx = nil - tx.db.rwlock.Unlock() - - // Merge statistics. - tx.db.statlock.Lock() - tx.db.stats.FreePageN = freelistFreeN - tx.db.stats.PendingPageN = freelistPendingN - tx.db.stats.FreeAlloc = (freelistFreeN + freelistPendingN) * tx.db.pageSize - tx.db.stats.FreelistInuse = freelistAlloc - tx.db.stats.TxStats.add(&tx.stats) - tx.db.statlock.Unlock() - } else { - tx.db.removeTx(tx) - } - - // Clear all references. - tx.db = nil - tx.meta = nil - tx.root = Bucket{tx: tx} - tx.pages = nil -} - -// Copy writes the entire database to a writer. -// This function exists for backwards compatibility. -// -// Deprecated; Use WriteTo() instead. -func (tx *Tx) Copy(w io.Writer) error { - _, err := tx.WriteTo(w) - return err -} - -// WriteTo writes the entire database to a writer. -// If err == nil then exactly tx.Size() bytes will be written into the writer. -func (tx *Tx) WriteTo(w io.Writer) (n int64, err error) { - // Attempt to open reader with WriteFlag - f, err := tx.db.openFile(tx.db.path, os.O_RDONLY|tx.WriteFlag, 0) - if err != nil { - return 0, err - } - defer func() { - if cerr := f.Close(); err == nil { - err = cerr - } - }() - - // Generate a meta page. We use the same page data for both meta pages. - buf := make([]byte, tx.db.pageSize) - page := (*page)(unsafe.Pointer(&buf[0])) - page.flags = metaPageFlag - *page.meta() = *tx.meta - - // Write meta 0. - page.id = 0 - page.meta().checksum = page.meta().sum64() - nn, err := w.Write(buf) - n += int64(nn) - if err != nil { - return n, fmt.Errorf("meta 0 copy: %s", err) - } - - // Write meta 1 with a lower transaction id. - page.id = 1 - page.meta().txid -= 1 - page.meta().checksum = page.meta().sum64() - nn, err = w.Write(buf) - n += int64(nn) - if err != nil { - return n, fmt.Errorf("meta 1 copy: %s", err) - } - - // Move past the meta pages in the file. - if _, err := f.Seek(int64(tx.db.pageSize*2), io.SeekStart); err != nil { - return n, fmt.Errorf("seek: %s", err) - } - - // Copy data pages. - wn, err := io.CopyN(w, f, tx.Size()-int64(tx.db.pageSize*2)) - n += wn - if err != nil { - return n, err - } - - return n, nil -} - -// CopyFile copies the entire database to file at the given path. -// A reader transaction is maintained during the copy so it is safe to continue -// using the database while a copy is in progress. -func (tx *Tx) CopyFile(path string, mode os.FileMode) error { - f, err := tx.db.openFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode) - if err != nil { - return err - } - - _, err = tx.WriteTo(f) - if err != nil { - _ = f.Close() - return err - } - return f.Close() -} - -// allocate returns a contiguous block of memory starting at a given page. -func (tx *Tx) allocate(count int) (*page, error) { - p, err := tx.db.allocate(tx.meta.txid, count) - if err != nil { - return nil, err - } - - // Save to our page cache. - tx.pages[p.id] = p - - // Update statistics. - tx.stats.IncPageCount(int64(count)) - tx.stats.IncPageAlloc(int64(count * tx.db.pageSize)) - - return p, nil -} - -// write writes any dirty pages to disk. -func (tx *Tx) write() error { - // Sort pages by id. - pages := make(pages, 0, len(tx.pages)) - for _, p := range tx.pages { - pages = append(pages, p) - } - // Clear out page cache early. - tx.pages = make(map[pgid]*page) - sort.Sort(pages) - - // Write pages to disk in order. - for _, p := range pages { - rem := (uint64(p.overflow) + 1) * uint64(tx.db.pageSize) - offset := int64(p.id) * int64(tx.db.pageSize) - var written uintptr - - // Write out page in "max allocation" sized chunks. - for { - sz := rem - if sz > maxAllocSize-1 { - sz = maxAllocSize - 1 - } - buf := unsafeByteSlice(unsafe.Pointer(p), written, 0, int(sz)) - - if _, err := tx.db.ops.writeAt(buf, offset); err != nil { - return err - } - - // Update statistics. - tx.stats.IncWrite(1) - - // Exit inner for loop if we've written all the chunks. - rem -= sz - if rem == 0 { - break - } - - // Otherwise move offset forward and move pointer to next chunk. - offset += int64(sz) - written += uintptr(sz) - } - } - - // Ignore file sync if flag is set on DB. - if !tx.db.NoSync || IgnoreNoSync { - if err := fdatasync(tx.db); err != nil { - return err - } - } - - // Put small pages back to page pool. - for _, p := range pages { - // Ignore page sizes over 1 page. - // These are allocated using make() instead of the page pool. - if int(p.overflow) != 0 { - continue - } - - buf := unsafeByteSlice(unsafe.Pointer(p), 0, 0, tx.db.pageSize) - - // See https://go.googlesource.com/go/+/f03c9202c43e0abb130669852082117ca50aa9b1 - for i := range buf { - buf[i] = 0 - } - tx.db.pagePool.Put(buf) //nolint:staticcheck - } - - return nil -} - -// writeMeta writes the meta to the disk. -func (tx *Tx) writeMeta() error { - // Create a temporary buffer for the meta page. - buf := make([]byte, tx.db.pageSize) - p := tx.db.pageInBuffer(buf, 0) - tx.meta.write(p) - - // Write the meta page to file. - if _, err := tx.db.ops.writeAt(buf, int64(p.id)*int64(tx.db.pageSize)); err != nil { - return err - } - if !tx.db.NoSync || IgnoreNoSync { - if err := fdatasync(tx.db); err != nil { - return err - } - } - - // Update statistics. - tx.stats.IncWrite(1) - - return nil -} - -// page returns a reference to the page with a given id. -// If page has been written to then a temporary buffered page is returned. -func (tx *Tx) page(id pgid) *page { - // Check the dirty pages first. - if tx.pages != nil { - if p, ok := tx.pages[id]; ok { - p.fastCheck(id) - return p - } - } - - // Otherwise return directly from the mmap. - p := tx.db.page(id) - p.fastCheck(id) - return p -} - -// forEachPage iterates over every page within a given page and executes a function. -func (tx *Tx) forEachPage(pgidnum pgid, fn func(*page, int, []pgid)) { - stack := make([]pgid, 10) - stack[0] = pgidnum - tx.forEachPageInternal(stack[:1], fn) -} - -func (tx *Tx) forEachPageInternal(pgidstack []pgid, fn func(*page, int, []pgid)) { - p := tx.page(pgidstack[len(pgidstack)-1]) - - // Execute function. - fn(p, len(pgidstack)-1, pgidstack) - - // Recursively loop over children. - if (p.flags & branchPageFlag) != 0 { - for i := 0; i < int(p.count); i++ { - elem := p.branchPageElement(uint16(i)) - tx.forEachPageInternal(append(pgidstack, elem.pgid), fn) - } - } -} - -// Page returns page information for a given page number. -// This is only safe for concurrent use when used by a writable transaction. -func (tx *Tx) Page(id int) (*PageInfo, error) { - if tx.db == nil { - return nil, ErrTxClosed - } else if pgid(id) >= tx.meta.pgid { - return nil, nil - } - - if tx.db.freelist == nil { - return nil, ErrFreePagesNotLoaded - } - - // Build the page info. - p := tx.db.page(pgid(id)) - info := &PageInfo{ - ID: id, - Count: int(p.count), - OverflowCount: int(p.overflow), - } - - // Determine the type (or if it's free). - if tx.db.freelist.freed(pgid(id)) { - info.Type = "free" - } else { - info.Type = p.typ() - } - - return info, nil -} - -// TxStats represents statistics about the actions performed by the transaction. -type TxStats struct { - // Page statistics. - // - // DEPRECATED: Use GetPageCount() or IncPageCount() - PageCount int64 // number of page allocations - // DEPRECATED: Use GetPageAlloc() or IncPageAlloc() - PageAlloc int64 // total bytes allocated - - // Cursor statistics. - // - // DEPRECATED: Use GetCursorCount() or IncCursorCount() - CursorCount int64 // number of cursors created - - // Node statistics - // - // DEPRECATED: Use GetNodeCount() or IncNodeCount() - NodeCount int64 // number of node allocations - // DEPRECATED: Use GetNodeDeref() or IncNodeDeref() - NodeDeref int64 // number of node dereferences - - // Rebalance statistics. - // - // DEPRECATED: Use GetRebalance() or IncRebalance() - Rebalance int64 // number of node rebalances - // DEPRECATED: Use GetRebalanceTime() or IncRebalanceTime() - RebalanceTime time.Duration // total time spent rebalancing - - // Split/Spill statistics. - // - // DEPRECATED: Use GetSplit() or IncSplit() - Split int64 // number of nodes split - // DEPRECATED: Use GetSpill() or IncSpill() - Spill int64 // number of nodes spilled - // DEPRECATED: Use GetSpillTime() or IncSpillTime() - SpillTime time.Duration // total time spent spilling - - // Write statistics. - // - // DEPRECATED: Use GetWrite() or IncWrite() - Write int64 // number of writes performed - // DEPRECATED: Use GetWriteTime() or IncWriteTime() - WriteTime time.Duration // total time spent writing to disk -} - -func (s *TxStats) add(other *TxStats) { - s.IncPageCount(other.GetPageCount()) - s.IncPageAlloc(other.GetPageAlloc()) - s.IncCursorCount(other.GetCursorCount()) - s.IncNodeCount(other.GetNodeCount()) - s.IncNodeDeref(other.GetNodeDeref()) - s.IncRebalance(other.GetRebalance()) - s.IncRebalanceTime(other.GetRebalanceTime()) - s.IncSplit(other.GetSplit()) - s.IncSpill(other.GetSpill()) - s.IncSpillTime(other.GetSpillTime()) - s.IncWrite(other.GetWrite()) - s.IncWriteTime(other.GetWriteTime()) -} - -// Sub calculates and returns the difference between two sets of transaction stats. -// This is useful when obtaining stats at two different points and time and -// you need the performance counters that occurred within that time span. -func (s *TxStats) Sub(other *TxStats) TxStats { - var diff TxStats - diff.PageCount = s.GetPageCount() - other.GetPageCount() - diff.PageAlloc = s.GetPageAlloc() - other.GetPageAlloc() - diff.CursorCount = s.GetCursorCount() - other.GetCursorCount() - diff.NodeCount = s.GetNodeCount() - other.GetNodeCount() - diff.NodeDeref = s.GetNodeDeref() - other.GetNodeDeref() - diff.Rebalance = s.GetRebalance() - other.GetRebalance() - diff.RebalanceTime = s.GetRebalanceTime() - other.GetRebalanceTime() - diff.Split = s.GetSplit() - other.GetSplit() - diff.Spill = s.GetSpill() - other.GetSpill() - diff.SpillTime = s.GetSpillTime() - other.GetSpillTime() - diff.Write = s.GetWrite() - other.GetWrite() - diff.WriteTime = s.GetWriteTime() - other.GetWriteTime() - return diff -} - -// GetPageCount returns PageCount atomically. -func (s *TxStats) GetPageCount() int64 { - return atomic.LoadInt64(&s.PageCount) -} - -// IncPageCount increases PageCount atomically and returns the new value. -func (s *TxStats) IncPageCount(delta int64) int64 { - return atomic.AddInt64(&s.PageCount, delta) -} - -// GetPageAlloc returns PageAlloc atomically. -func (s *TxStats) GetPageAlloc() int64 { - return atomic.LoadInt64(&s.PageAlloc) -} - -// IncPageAlloc increases PageAlloc atomically and returns the new value. -func (s *TxStats) IncPageAlloc(delta int64) int64 { - return atomic.AddInt64(&s.PageAlloc, delta) -} - -// GetCursorCount returns CursorCount atomically. -func (s *TxStats) GetCursorCount() int64 { - return atomic.LoadInt64(&s.CursorCount) -} - -// IncCursorCount increases CursorCount atomically and return the new value. -func (s *TxStats) IncCursorCount(delta int64) int64 { - return atomic.AddInt64(&s.CursorCount, delta) -} - -// GetNodeCount returns NodeCount atomically. -func (s *TxStats) GetNodeCount() int64 { - return atomic.LoadInt64(&s.NodeCount) -} - -// IncNodeCount increases NodeCount atomically and returns the new value. -func (s *TxStats) IncNodeCount(delta int64) int64 { - return atomic.AddInt64(&s.NodeCount, delta) -} - -// GetNodeDeref returns NodeDeref atomically. -func (s *TxStats) GetNodeDeref() int64 { - return atomic.LoadInt64(&s.NodeDeref) -} - -// IncNodeDeref increases NodeDeref atomically and returns the new value. -func (s *TxStats) IncNodeDeref(delta int64) int64 { - return atomic.AddInt64(&s.NodeDeref, delta) -} - -// GetRebalance returns Rebalance atomically. -func (s *TxStats) GetRebalance() int64 { - return atomic.LoadInt64(&s.Rebalance) -} - -// IncRebalance increases Rebalance atomically and returns the new value. -func (s *TxStats) IncRebalance(delta int64) int64 { - return atomic.AddInt64(&s.Rebalance, delta) -} - -// GetRebalanceTime returns RebalanceTime atomically. -func (s *TxStats) GetRebalanceTime() time.Duration { - return atomicLoadDuration(&s.RebalanceTime) -} - -// IncRebalanceTime increases RebalanceTime atomically and returns the new value. -func (s *TxStats) IncRebalanceTime(delta time.Duration) time.Duration { - return atomicAddDuration(&s.RebalanceTime, delta) -} - -// GetSplit returns Split atomically. -func (s *TxStats) GetSplit() int64 { - return atomic.LoadInt64(&s.Split) -} - -// IncSplit increases Split atomically and returns the new value. -func (s *TxStats) IncSplit(delta int64) int64 { - return atomic.AddInt64(&s.Split, delta) -} - -// GetSpill returns Spill atomically. -func (s *TxStats) GetSpill() int64 { - return atomic.LoadInt64(&s.Spill) -} - -// IncSpill increases Spill atomically and returns the new value. -func (s *TxStats) IncSpill(delta int64) int64 { - return atomic.AddInt64(&s.Spill, delta) -} - -// GetSpillTime returns SpillTime atomically. -func (s *TxStats) GetSpillTime() time.Duration { - return atomicLoadDuration(&s.SpillTime) -} - -// IncSpillTime increases SpillTime atomically and returns the new value. -func (s *TxStats) IncSpillTime(delta time.Duration) time.Duration { - return atomicAddDuration(&s.SpillTime, delta) -} - -// GetWrite returns Write atomically. -func (s *TxStats) GetWrite() int64 { - return atomic.LoadInt64(&s.Write) -} - -// IncWrite increases Write atomically and returns the new value. -func (s *TxStats) IncWrite(delta int64) int64 { - return atomic.AddInt64(&s.Write, delta) -} - -// GetWriteTime returns WriteTime atomically. -func (s *TxStats) GetWriteTime() time.Duration { - return atomicLoadDuration(&s.WriteTime) -} - -// IncWriteTime increases WriteTime atomically and returns the new value. -func (s *TxStats) IncWriteTime(delta time.Duration) time.Duration { - return atomicAddDuration(&s.WriteTime, delta) -} - -func atomicAddDuration(ptr *time.Duration, du time.Duration) time.Duration { - return time.Duration(atomic.AddInt64((*int64)(unsafe.Pointer(ptr)), int64(du))) -} - -func atomicLoadDuration(ptr *time.Duration) time.Duration { - return time.Duration(atomic.LoadInt64((*int64)(unsafe.Pointer(ptr)))) -} diff --git a/backend/vendor/go.etcd.io/bbolt/tx_check.go b/backend/vendor/go.etcd.io/bbolt/tx_check.go deleted file mode 100644 index 75c7c084..00000000 --- a/backend/vendor/go.etcd.io/bbolt/tx_check.go +++ /dev/null @@ -1,226 +0,0 @@ -package bbolt - -import ( - "encoding/hex" - "fmt" -) - -// Check performs several consistency checks on the database for this transaction. -// An error is returned if any inconsistency is found. -// -// It can be safely run concurrently on a writable transaction. However, this -// incurs a high cost for large databases and databases with a lot of subbuckets -// because of caching. This overhead can be removed if running on a read-only -// transaction, however, it is not safe to execute other writer transactions at -// the same time. -func (tx *Tx) Check() <-chan error { - return tx.CheckWithOptions() -} - -// CheckWithOptions allows users to provide a customized `KVStringer` implementation, -// so that bolt can generate human-readable diagnostic messages. -func (tx *Tx) CheckWithOptions(options ...CheckOption) <-chan error { - chkConfig := checkConfig{ - kvStringer: HexKVStringer(), - } - for _, op := range options { - op(&chkConfig) - } - - ch := make(chan error) - go tx.check(chkConfig.kvStringer, ch) - return ch -} - -func (tx *Tx) check(kvStringer KVStringer, ch chan error) { - // Force loading free list if opened in ReadOnly mode. - tx.db.loadFreelist() - - // Check if any pages are double freed. - freed := make(map[pgid]bool) - all := make([]pgid, tx.db.freelist.count()) - tx.db.freelist.copyall(all) - for _, id := range all { - if freed[id] { - ch <- fmt.Errorf("page %d: already freed", id) - } - freed[id] = true - } - - // Track every reachable page. - reachable := make(map[pgid]*page) - reachable[0] = tx.page(0) // meta0 - reachable[1] = tx.page(1) // meta1 - if tx.meta.freelist != pgidNoFreelist { - for i := uint32(0); i <= tx.page(tx.meta.freelist).overflow; i++ { - reachable[tx.meta.freelist+pgid(i)] = tx.page(tx.meta.freelist) - } - } - - // Recursively check buckets. - tx.checkBucket(&tx.root, reachable, freed, kvStringer, ch) - - // Ensure all pages below high water mark are either reachable or freed. - for i := pgid(0); i < tx.meta.pgid; i++ { - _, isReachable := reachable[i] - if !isReachable && !freed[i] { - ch <- fmt.Errorf("page %d: unreachable unfreed", int(i)) - } - } - - // Close the channel to signal completion. - close(ch) -} - -func (tx *Tx) checkBucket(b *Bucket, reachable map[pgid]*page, freed map[pgid]bool, - kvStringer KVStringer, ch chan error) { - // Ignore inline buckets. - if b.root == 0 { - return - } - - // Check every page used by this bucket. - b.tx.forEachPage(b.root, func(p *page, _ int, stack []pgid) { - if p.id > tx.meta.pgid { - ch <- fmt.Errorf("page %d: out of bounds: %d (stack: %v)", int(p.id), int(b.tx.meta.pgid), stack) - } - - // Ensure each page is only referenced once. - for i := pgid(0); i <= pgid(p.overflow); i++ { - var id = p.id + i - if _, ok := reachable[id]; ok { - ch <- fmt.Errorf("page %d: multiple references (stack: %v)", int(id), stack) - } - reachable[id] = p - } - - // We should only encounter un-freed leaf and branch pages. - if freed[p.id] { - ch <- fmt.Errorf("page %d: reachable freed", int(p.id)) - } else if (p.flags&branchPageFlag) == 0 && (p.flags&leafPageFlag) == 0 { - ch <- fmt.Errorf("page %d: invalid type: %s (stack: %v)", int(p.id), p.typ(), stack) - } - }) - - tx.recursivelyCheckPages(b.root, kvStringer.KeyToString, ch) - - // Check each bucket within this bucket. - _ = b.ForEachBucket(func(k []byte) error { - if child := b.Bucket(k); child != nil { - tx.checkBucket(child, reachable, freed, kvStringer, ch) - } - return nil - }) -} - -// recursivelyCheckPages confirms database consistency with respect to b-tree -// key order constraints: -// - keys on pages must be sorted -// - keys on children pages are between 2 consecutive keys on the parent's branch page). -func (tx *Tx) recursivelyCheckPages(pgId pgid, keyToString func([]byte) string, ch chan error) { - tx.recursivelyCheckPagesInternal(pgId, nil, nil, nil, keyToString, ch) -} - -// recursivelyCheckPagesInternal verifies that all keys in the subtree rooted at `pgid` are: -// - >=`minKeyClosed` (can be nil) -// - <`maxKeyOpen` (can be nil) -// - Are in right ordering relationship to their parents. -// `pagesStack` is expected to contain IDs of pages from the tree root to `pgid` for the clean debugging message. -func (tx *Tx) recursivelyCheckPagesInternal( - pgId pgid, minKeyClosed, maxKeyOpen []byte, pagesStack []pgid, - keyToString func([]byte) string, ch chan error) (maxKeyInSubtree []byte) { - - p := tx.page(pgId) - pagesStack = append(pagesStack, pgId) - switch { - case p.flags&branchPageFlag != 0: - // For branch page we navigate ranges of all subpages. - runningMin := minKeyClosed - for i := range p.branchPageElements() { - elem := p.branchPageElement(uint16(i)) - verifyKeyOrder(elem.pgid, "branch", i, elem.key(), runningMin, maxKeyOpen, ch, keyToString, pagesStack) - - maxKey := maxKeyOpen - if i < len(p.branchPageElements())-1 { - maxKey = p.branchPageElement(uint16(i + 1)).key() - } - maxKeyInSubtree = tx.recursivelyCheckPagesInternal(elem.pgid, elem.key(), maxKey, pagesStack, keyToString, ch) - runningMin = maxKeyInSubtree - } - return maxKeyInSubtree - case p.flags&leafPageFlag != 0: - runningMin := minKeyClosed - for i := range p.leafPageElements() { - elem := p.leafPageElement(uint16(i)) - verifyKeyOrder(pgId, "leaf", i, elem.key(), runningMin, maxKeyOpen, ch, keyToString, pagesStack) - runningMin = elem.key() - } - if p.count > 0 { - return p.leafPageElement(p.count - 1).key() - } - default: - ch <- fmt.Errorf("unexpected page type for pgId:%d", pgId) - } - return maxKeyInSubtree -} - -/*** - * verifyKeyOrder checks whether an entry with given #index on pgId (pageType: "branch|leaf") that has given "key", - * is within range determined by (previousKey..maxKeyOpen) and reports found violations to the channel (ch). - */ -func verifyKeyOrder(pgId pgid, pageType string, index int, key []byte, previousKey []byte, maxKeyOpen []byte, ch chan error, keyToString func([]byte) string, pagesStack []pgid) { - if index == 0 && previousKey != nil && compareKeys(previousKey, key) > 0 { - ch <- fmt.Errorf("the first key[%d]=(hex)%s on %s page(%d) needs to be >= the key in the ancestor (%s). Stack: %v", - index, keyToString(key), pageType, pgId, keyToString(previousKey), pagesStack) - } - if index > 0 { - cmpRet := compareKeys(previousKey, key) - if cmpRet > 0 { - ch <- fmt.Errorf("key[%d]=(hex)%s on %s page(%d) needs to be > (found <) than previous element (hex)%s. Stack: %v", - index, keyToString(key), pageType, pgId, keyToString(previousKey), pagesStack) - } - if cmpRet == 0 { - ch <- fmt.Errorf("key[%d]=(hex)%s on %s page(%d) needs to be > (found =) than previous element (hex)%s. Stack: %v", - index, keyToString(key), pageType, pgId, keyToString(previousKey), pagesStack) - } - } - if maxKeyOpen != nil && compareKeys(key, maxKeyOpen) >= 0 { - ch <- fmt.Errorf("key[%d]=(hex)%s on %s page(%d) needs to be < than key of the next element in ancestor (hex)%s. Pages stack: %v", - index, keyToString(key), pageType, pgId, keyToString(previousKey), pagesStack) - } -} - -// =========================================================================================== - -type checkConfig struct { - kvStringer KVStringer -} - -type CheckOption func(options *checkConfig) - -func WithKVStringer(kvStringer KVStringer) CheckOption { - return func(c *checkConfig) { - c.kvStringer = kvStringer - } -} - -// KVStringer allows to prepare human-readable diagnostic messages. -type KVStringer interface { - KeyToString([]byte) string - ValueToString([]byte) string -} - -// HexKVStringer serializes both key & value to hex representation. -func HexKVStringer() KVStringer { - return hexKvStringer{} -} - -type hexKvStringer struct{} - -func (_ hexKvStringer) KeyToString(key []byte) string { - return hex.EncodeToString(key) -} - -func (_ hexKvStringer) ValueToString(value []byte) string { - return hex.EncodeToString(value) -} diff --git a/backend/vendor/go.etcd.io/bbolt/unsafe.go b/backend/vendor/go.etcd.io/bbolt/unsafe.go deleted file mode 100644 index c0e50375..00000000 --- a/backend/vendor/go.etcd.io/bbolt/unsafe.go +++ /dev/null @@ -1,39 +0,0 @@ -package bbolt - -import ( - "reflect" - "unsafe" -) - -func unsafeAdd(base unsafe.Pointer, offset uintptr) unsafe.Pointer { - return unsafe.Pointer(uintptr(base) + offset) -} - -func unsafeIndex(base unsafe.Pointer, offset uintptr, elemsz uintptr, n int) unsafe.Pointer { - return unsafe.Pointer(uintptr(base) + offset + uintptr(n)*elemsz) -} - -func unsafeByteSlice(base unsafe.Pointer, offset uintptr, i, j int) []byte { - // See: https://github.com/golang/go/wiki/cgo#turning-c-arrays-into-go-slices - // - // This memory is not allocated from C, but it is unmanaged by Go's - // garbage collector and should behave similarly, and the compiler - // should produce similar code. Note that this conversion allows a - // subslice to begin after the base address, with an optional offset, - // while the URL above does not cover this case and only slices from - // index 0. However, the wiki never says that the address must be to - // the beginning of a C allocation (or even that malloc was used at - // all), so this is believed to be correct. - return (*[maxAllocSize]byte)(unsafeAdd(base, offset))[i:j:j] -} - -// unsafeSlice modifies the data, len, and cap of a slice variable pointed to by -// the slice parameter. This helper should be used over other direct -// manipulation of reflect.SliceHeader to prevent misuse, namely, converting -// from reflect.SliceHeader to a Go slice type. -func unsafeSlice(slice, data unsafe.Pointer, len int) { - s := (*reflect.SliceHeader)(slice) - s.Data = uintptr(data) - s.Cap = len - s.Len = len -} diff --git a/backend/vendor/golang.org/x/crypto/LICENSE b/backend/vendor/golang.org/x/crypto/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/backend/vendor/golang.org/x/crypto/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/golang.org/x/crypto/PATENTS b/backend/vendor/golang.org/x/crypto/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/backend/vendor/golang.org/x/crypto/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/backend/vendor/golang.org/x/crypto/bcrypt/base64.go b/backend/vendor/golang.org/x/crypto/bcrypt/base64.go deleted file mode 100644 index fc311609..00000000 --- a/backend/vendor/golang.org/x/crypto/bcrypt/base64.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package bcrypt - -import "encoding/base64" - -const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" - -var bcEncoding = base64.NewEncoding(alphabet) - -func base64Encode(src []byte) []byte { - n := bcEncoding.EncodedLen(len(src)) - dst := make([]byte, n) - bcEncoding.Encode(dst, src) - for dst[n-1] == '=' { - n-- - } - return dst[:n] -} - -func base64Decode(src []byte) ([]byte, error) { - numOfEquals := 4 - (len(src) % 4) - for i := 0; i < numOfEquals; i++ { - src = append(src, '=') - } - - dst := make([]byte, bcEncoding.DecodedLen(len(src))) - n, err := bcEncoding.Decode(dst, src) - if err != nil { - return nil, err - } - return dst[:n], nil -} diff --git a/backend/vendor/golang.org/x/crypto/bcrypt/bcrypt.go b/backend/vendor/golang.org/x/crypto/bcrypt/bcrypt.go deleted file mode 100644 index 5577c0f9..00000000 --- a/backend/vendor/golang.org/x/crypto/bcrypt/bcrypt.go +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing -// algorithm. See http://www.usenix.org/event/usenix99/provos/provos.pdf -package bcrypt // import "golang.org/x/crypto/bcrypt" - -// The code is a port of Provos and Mazières's C implementation. -import ( - "crypto/rand" - "crypto/subtle" - "errors" - "fmt" - "io" - "strconv" - - "golang.org/x/crypto/blowfish" -) - -const ( - MinCost int = 4 // the minimum allowable cost as passed in to GenerateFromPassword - MaxCost int = 31 // the maximum allowable cost as passed in to GenerateFromPassword - DefaultCost int = 10 // the cost that will actually be set if a cost below MinCost is passed into GenerateFromPassword -) - -// The error returned from CompareHashAndPassword when a password and hash do -// not match. -var ErrMismatchedHashAndPassword = errors.New("crypto/bcrypt: hashedPassword is not the hash of the given password") - -// The error returned from CompareHashAndPassword when a hash is too short to -// be a bcrypt hash. -var ErrHashTooShort = errors.New("crypto/bcrypt: hashedSecret too short to be a bcrypted password") - -// The error returned from CompareHashAndPassword when a hash was created with -// a bcrypt algorithm newer than this implementation. -type HashVersionTooNewError byte - -func (hv HashVersionTooNewError) Error() string { - return fmt.Sprintf("crypto/bcrypt: bcrypt algorithm version '%c' requested is newer than current version '%c'", byte(hv), majorVersion) -} - -// The error returned from CompareHashAndPassword when a hash starts with something other than '$' -type InvalidHashPrefixError byte - -func (ih InvalidHashPrefixError) Error() string { - return fmt.Sprintf("crypto/bcrypt: bcrypt hashes must start with '$', but hashedSecret started with '%c'", byte(ih)) -} - -type InvalidCostError int - -func (ic InvalidCostError) Error() string { - return fmt.Sprintf("crypto/bcrypt: cost %d is outside allowed range (%d,%d)", int(ic), MinCost, MaxCost) -} - -const ( - majorVersion = '2' - minorVersion = 'a' - maxSaltSize = 16 - maxCryptedHashSize = 23 - encodedSaltSize = 22 - encodedHashSize = 31 - minHashSize = 59 -) - -// magicCipherData is an IV for the 64 Blowfish encryption calls in -// bcrypt(). It's the string "OrpheanBeholderScryDoubt" in big-endian bytes. -var magicCipherData = []byte{ - 0x4f, 0x72, 0x70, 0x68, - 0x65, 0x61, 0x6e, 0x42, - 0x65, 0x68, 0x6f, 0x6c, - 0x64, 0x65, 0x72, 0x53, - 0x63, 0x72, 0x79, 0x44, - 0x6f, 0x75, 0x62, 0x74, -} - -type hashed struct { - hash []byte - salt []byte - cost int // allowed range is MinCost to MaxCost - major byte - minor byte -} - -// ErrPasswordTooLong is returned when the password passed to -// GenerateFromPassword is too long (i.e. > 72 bytes). -var ErrPasswordTooLong = errors.New("bcrypt: password length exceeds 72 bytes") - -// GenerateFromPassword returns the bcrypt hash of the password at the given -// cost. If the cost given is less than MinCost, the cost will be set to -// DefaultCost, instead. Use CompareHashAndPassword, as defined in this package, -// to compare the returned hashed password with its cleartext version. -// GenerateFromPassword does not accept passwords longer than 72 bytes, which -// is the longest password bcrypt will operate on. -func GenerateFromPassword(password []byte, cost int) ([]byte, error) { - if len(password) > 72 { - return nil, ErrPasswordTooLong - } - p, err := newFromPassword(password, cost) - if err != nil { - return nil, err - } - return p.Hash(), nil -} - -// CompareHashAndPassword compares a bcrypt hashed password with its possible -// plaintext equivalent. Returns nil on success, or an error on failure. -func CompareHashAndPassword(hashedPassword, password []byte) error { - p, err := newFromHash(hashedPassword) - if err != nil { - return err - } - - otherHash, err := bcrypt(password, p.cost, p.salt) - if err != nil { - return err - } - - otherP := &hashed{otherHash, p.salt, p.cost, p.major, p.minor} - if subtle.ConstantTimeCompare(p.Hash(), otherP.Hash()) == 1 { - return nil - } - - return ErrMismatchedHashAndPassword -} - -// Cost returns the hashing cost used to create the given hashed -// password. When, in the future, the hashing cost of a password system needs -// to be increased in order to adjust for greater computational power, this -// function allows one to establish which passwords need to be updated. -func Cost(hashedPassword []byte) (int, error) { - p, err := newFromHash(hashedPassword) - if err != nil { - return 0, err - } - return p.cost, nil -} - -func newFromPassword(password []byte, cost int) (*hashed, error) { - if cost < MinCost { - cost = DefaultCost - } - p := new(hashed) - p.major = majorVersion - p.minor = minorVersion - - err := checkCost(cost) - if err != nil { - return nil, err - } - p.cost = cost - - unencodedSalt := make([]byte, maxSaltSize) - _, err = io.ReadFull(rand.Reader, unencodedSalt) - if err != nil { - return nil, err - } - - p.salt = base64Encode(unencodedSalt) - hash, err := bcrypt(password, p.cost, p.salt) - if err != nil { - return nil, err - } - p.hash = hash - return p, err -} - -func newFromHash(hashedSecret []byte) (*hashed, error) { - if len(hashedSecret) < minHashSize { - return nil, ErrHashTooShort - } - p := new(hashed) - n, err := p.decodeVersion(hashedSecret) - if err != nil { - return nil, err - } - hashedSecret = hashedSecret[n:] - n, err = p.decodeCost(hashedSecret) - if err != nil { - return nil, err - } - hashedSecret = hashedSecret[n:] - - // The "+2" is here because we'll have to append at most 2 '=' to the salt - // when base64 decoding it in expensiveBlowfishSetup(). - p.salt = make([]byte, encodedSaltSize, encodedSaltSize+2) - copy(p.salt, hashedSecret[:encodedSaltSize]) - - hashedSecret = hashedSecret[encodedSaltSize:] - p.hash = make([]byte, len(hashedSecret)) - copy(p.hash, hashedSecret) - - return p, nil -} - -func bcrypt(password []byte, cost int, salt []byte) ([]byte, error) { - cipherData := make([]byte, len(magicCipherData)) - copy(cipherData, magicCipherData) - - c, err := expensiveBlowfishSetup(password, uint32(cost), salt) - if err != nil { - return nil, err - } - - for i := 0; i < 24; i += 8 { - for j := 0; j < 64; j++ { - c.Encrypt(cipherData[i:i+8], cipherData[i:i+8]) - } - } - - // Bug compatibility with C bcrypt implementations. We only encode 23 of - // the 24 bytes encrypted. - hsh := base64Encode(cipherData[:maxCryptedHashSize]) - return hsh, nil -} - -func expensiveBlowfishSetup(key []byte, cost uint32, salt []byte) (*blowfish.Cipher, error) { - csalt, err := base64Decode(salt) - if err != nil { - return nil, err - } - - // Bug compatibility with C bcrypt implementations. They use the trailing - // NULL in the key string during expansion. - // We copy the key to prevent changing the underlying array. - ckey := append(key[:len(key):len(key)], 0) - - c, err := blowfish.NewSaltedCipher(ckey, csalt) - if err != nil { - return nil, err - } - - var i, rounds uint64 - rounds = 1 << cost - for i = 0; i < rounds; i++ { - blowfish.ExpandKey(ckey, c) - blowfish.ExpandKey(csalt, c) - } - - return c, nil -} - -func (p *hashed) Hash() []byte { - arr := make([]byte, 60) - arr[0] = '$' - arr[1] = p.major - n := 2 - if p.minor != 0 { - arr[2] = p.minor - n = 3 - } - arr[n] = '$' - n++ - copy(arr[n:], []byte(fmt.Sprintf("%02d", p.cost))) - n += 2 - arr[n] = '$' - n++ - copy(arr[n:], p.salt) - n += encodedSaltSize - copy(arr[n:], p.hash) - n += encodedHashSize - return arr[:n] -} - -func (p *hashed) decodeVersion(sbytes []byte) (int, error) { - if sbytes[0] != '$' { - return -1, InvalidHashPrefixError(sbytes[0]) - } - if sbytes[1] > majorVersion { - return -1, HashVersionTooNewError(sbytes[1]) - } - p.major = sbytes[1] - n := 3 - if sbytes[2] != '$' { - p.minor = sbytes[2] - n++ - } - return n, nil -} - -// sbytes should begin where decodeVersion left off. -func (p *hashed) decodeCost(sbytes []byte) (int, error) { - cost, err := strconv.Atoi(string(sbytes[0:2])) - if err != nil { - return -1, err - } - err = checkCost(cost) - if err != nil { - return -1, err - } - p.cost = cost - return 3, nil -} - -func (p *hashed) String() string { - return fmt.Sprintf("&{hash: %#v, salt: %#v, cost: %d, major: %c, minor: %c}", string(p.hash), p.salt, p.cost, p.major, p.minor) -} - -func checkCost(cost int) error { - if cost < MinCost || cost > MaxCost { - return InvalidCostError(cost) - } - return nil -} diff --git a/backend/vendor/golang.org/x/crypto/blowfish/block.go b/backend/vendor/golang.org/x/crypto/blowfish/block.go deleted file mode 100644 index 9d80f195..00000000 --- a/backend/vendor/golang.org/x/crypto/blowfish/block.go +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package blowfish - -// getNextWord returns the next big-endian uint32 value from the byte slice -// at the given position in a circular manner, updating the position. -func getNextWord(b []byte, pos *int) uint32 { - var w uint32 - j := *pos - for i := 0; i < 4; i++ { - w = w<<8 | uint32(b[j]) - j++ - if j >= len(b) { - j = 0 - } - } - *pos = j - return w -} - -// ExpandKey performs a key expansion on the given *Cipher. Specifically, it -// performs the Blowfish algorithm's key schedule which sets up the *Cipher's -// pi and substitution tables for calls to Encrypt. This is used, primarily, -// by the bcrypt package to reuse the Blowfish key schedule during its -// set up. It's unlikely that you need to use this directly. -func ExpandKey(key []byte, c *Cipher) { - j := 0 - for i := 0; i < 18; i++ { - // Using inlined getNextWord for performance. - var d uint32 - for k := 0; k < 4; k++ { - d = d<<8 | uint32(key[j]) - j++ - if j >= len(key) { - j = 0 - } - } - c.p[i] ^= d - } - - var l, r uint32 - for i := 0; i < 18; i += 2 { - l, r = encryptBlock(l, r, c) - c.p[i], c.p[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s0[i], c.s0[i+1] = l, r - } - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s1[i], c.s1[i+1] = l, r - } - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s2[i], c.s2[i+1] = l, r - } - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s3[i], c.s3[i+1] = l, r - } -} - -// This is similar to ExpandKey, but folds the salt during the key -// schedule. While ExpandKey is essentially expandKeyWithSalt with an all-zero -// salt passed in, reusing ExpandKey turns out to be a place of inefficiency -// and specializing it here is useful. -func expandKeyWithSalt(key []byte, salt []byte, c *Cipher) { - j := 0 - for i := 0; i < 18; i++ { - c.p[i] ^= getNextWord(key, &j) - } - - j = 0 - var l, r uint32 - for i := 0; i < 18; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.p[i], c.p[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s0[i], c.s0[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s1[i], c.s1[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s2[i], c.s2[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s3[i], c.s3[i+1] = l, r - } -} - -func encryptBlock(l, r uint32, c *Cipher) (uint32, uint32) { - xl, xr := l, r - xl ^= c.p[0] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[1] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[2] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[3] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[4] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[5] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[6] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[7] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[8] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[9] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[10] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[11] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[12] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[13] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[14] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[15] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[16] - xr ^= c.p[17] - return xr, xl -} - -func decryptBlock(l, r uint32, c *Cipher) (uint32, uint32) { - xl, xr := l, r - xl ^= c.p[17] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[16] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[15] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[14] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[13] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[12] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[11] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[10] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[9] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[8] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[7] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[6] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[5] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[4] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[3] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[2] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[1] - xr ^= c.p[0] - return xr, xl -} diff --git a/backend/vendor/golang.org/x/crypto/blowfish/cipher.go b/backend/vendor/golang.org/x/crypto/blowfish/cipher.go deleted file mode 100644 index 213bf204..00000000 --- a/backend/vendor/golang.org/x/crypto/blowfish/cipher.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. -// -// Blowfish is a legacy cipher and its short block size makes it vulnerable to -// birthday bound attacks (see https://sweet32.info). It should only be used -// where compatibility with legacy systems, not security, is the goal. -// -// Deprecated: any new system should use AES (from crypto/aes, if necessary in -// an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from -// golang.org/x/crypto/chacha20poly1305). -package blowfish // import "golang.org/x/crypto/blowfish" - -// The code is a port of Bruce Schneier's C implementation. -// See https://www.schneier.com/blowfish.html. - -import "strconv" - -// The Blowfish block size in bytes. -const BlockSize = 8 - -// A Cipher is an instance of Blowfish encryption using a particular key. -type Cipher struct { - p [18]uint32 - s0, s1, s2, s3 [256]uint32 -} - -type KeySizeError int - -func (k KeySizeError) Error() string { - return "crypto/blowfish: invalid key size " + strconv.Itoa(int(k)) -} - -// NewCipher creates and returns a Cipher. -// The key argument should be the Blowfish key, from 1 to 56 bytes. -func NewCipher(key []byte) (*Cipher, error) { - var result Cipher - if k := len(key); k < 1 || k > 56 { - return nil, KeySizeError(k) - } - initCipher(&result) - ExpandKey(key, &result) - return &result, nil -} - -// NewSaltedCipher creates a returns a Cipher that folds a salt into its key -// schedule. For most purposes, NewCipher, instead of NewSaltedCipher, is -// sufficient and desirable. For bcrypt compatibility, the key can be over 56 -// bytes. -func NewSaltedCipher(key, salt []byte) (*Cipher, error) { - if len(salt) == 0 { - return NewCipher(key) - } - var result Cipher - if k := len(key); k < 1 { - return nil, KeySizeError(k) - } - initCipher(&result) - expandKeyWithSalt(key, salt, &result) - return &result, nil -} - -// BlockSize returns the Blowfish block size, 8 bytes. -// It is necessary to satisfy the Block interface in the -// package "crypto/cipher". -func (c *Cipher) BlockSize() int { return BlockSize } - -// Encrypt encrypts the 8-byte buffer src using the key k -// and stores the result in dst. -// Note that for amounts of data larger than a block, -// it is not safe to just call Encrypt on successive blocks; -// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). -func (c *Cipher) Encrypt(dst, src []byte) { - l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - l, r = encryptBlock(l, r, c) - dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) - dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) -} - -// Decrypt decrypts the 8-byte buffer src using the key k -// and stores the result in dst. -func (c *Cipher) Decrypt(dst, src []byte) { - l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - l, r = decryptBlock(l, r, c) - dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) - dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) -} - -func initCipher(c *Cipher) { - copy(c.p[0:], p[0:]) - copy(c.s0[0:], s0[0:]) - copy(c.s1[0:], s1[0:]) - copy(c.s2[0:], s2[0:]) - copy(c.s3[0:], s3[0:]) -} diff --git a/backend/vendor/golang.org/x/crypto/blowfish/const.go b/backend/vendor/golang.org/x/crypto/blowfish/const.go deleted file mode 100644 index d0407759..00000000 --- a/backend/vendor/golang.org/x/crypto/blowfish/const.go +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// The startup permutation array and substitution boxes. -// They are the hexadecimal digits of PI; see: -// https://www.schneier.com/code/constants.txt. - -package blowfish - -var s0 = [256]uint32{ - 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, - 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, - 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, - 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, - 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, - 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, - 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, - 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, - 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, - 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, - 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, - 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, - 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, - 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, - 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, - 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, - 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, - 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, - 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, - 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, - 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, - 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, - 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, - 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, - 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, - 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, - 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, - 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, - 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, - 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, - 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, - 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, - 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, - 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, - 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, - 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, - 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, - 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, - 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, - 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, - 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, - 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, - 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a, -} - -var s1 = [256]uint32{ - 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, - 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, - 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, - 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, - 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, - 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, - 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, - 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, - 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, - 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, - 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, - 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, - 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, - 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, - 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, - 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, - 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, - 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, - 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, - 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, - 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, - 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, - 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, - 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, - 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, - 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, - 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, - 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, - 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, - 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, - 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, - 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, - 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, - 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, - 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, - 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, - 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, - 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, - 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, - 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, - 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, - 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, - 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, -} - -var s2 = [256]uint32{ - 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, - 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, - 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, - 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, - 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, - 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, - 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, - 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, - 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, - 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, - 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, - 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, - 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, - 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, - 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, - 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, - 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, - 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, - 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, - 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, - 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, - 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, - 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, - 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, - 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, - 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, - 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, - 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, - 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, - 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, - 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, - 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, - 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, - 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, - 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, - 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, - 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, - 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, - 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, - 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, - 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, - 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, - 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, -} - -var s3 = [256]uint32{ - 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, - 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, - 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, - 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, - 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, - 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, - 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, - 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, - 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, - 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, - 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, - 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, - 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, - 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, - 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, - 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, - 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, - 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, - 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, - 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, - 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, - 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, - 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, - 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, - 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, - 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, - 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, - 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, - 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, - 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, - 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, - 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, - 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, - 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, - 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, - 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, - 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, - 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, - 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, - 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, - 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, - 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, - 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6, -} - -var p = [18]uint32{ - 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, - 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, - 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b, -} diff --git a/backend/vendor/golang.org/x/image/LICENSE b/backend/vendor/golang.org/x/image/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/backend/vendor/golang.org/x/image/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/golang.org/x/image/PATENTS b/backend/vendor/golang.org/x/image/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/backend/vendor/golang.org/x/image/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/backend/vendor/golang.org/x/image/bmp/reader.go b/backend/vendor/golang.org/x/image/bmp/reader.go deleted file mode 100644 index e165c2e3..00000000 --- a/backend/vendor/golang.org/x/image/bmp/reader.go +++ /dev/null @@ -1,245 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package bmp implements a BMP image decoder and encoder. -// -// The BMP specification is at http://www.digicamsoft.com/bmp/bmp.html. -package bmp // import "golang.org/x/image/bmp" - -import ( - "errors" - "image" - "image/color" - "io" -) - -// ErrUnsupported means that the input BMP image uses a valid but unsupported -// feature. -var ErrUnsupported = errors.New("bmp: unsupported BMP image") - -func readUint16(b []byte) uint16 { - return uint16(b[0]) | uint16(b[1])<<8 -} - -func readUint32(b []byte) uint32 { - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -// decodePaletted reads an 8 bit-per-pixel BMP image from r. -// If topDown is false, the image rows will be read bottom-up. -func decodePaletted(r io.Reader, c image.Config, topDown bool) (image.Image, error) { - paletted := image.NewPaletted(image.Rect(0, 0, c.Width, c.Height), c.ColorModel.(color.Palette)) - if c.Width == 0 || c.Height == 0 { - return paletted, nil - } - var tmp [4]byte - y0, y1, yDelta := c.Height-1, -1, -1 - if topDown { - y0, y1, yDelta = 0, c.Height, +1 - } - for y := y0; y != y1; y += yDelta { - p := paletted.Pix[y*paletted.Stride : y*paletted.Stride+c.Width] - if _, err := io.ReadFull(r, p); err != nil { - return nil, err - } - // Each row is 4-byte aligned. - if c.Width%4 != 0 { - _, err := io.ReadFull(r, tmp[:4-c.Width%4]) - if err != nil { - return nil, err - } - } - } - return paletted, nil -} - -// decodeRGB reads a 24 bit-per-pixel BMP image from r. -// If topDown is false, the image rows will be read bottom-up. -func decodeRGB(r io.Reader, c image.Config, topDown bool) (image.Image, error) { - rgba := image.NewRGBA(image.Rect(0, 0, c.Width, c.Height)) - if c.Width == 0 || c.Height == 0 { - return rgba, nil - } - // There are 3 bytes per pixel, and each row is 4-byte aligned. - b := make([]byte, (3*c.Width+3)&^3) - y0, y1, yDelta := c.Height-1, -1, -1 - if topDown { - y0, y1, yDelta = 0, c.Height, +1 - } - for y := y0; y != y1; y += yDelta { - if _, err := io.ReadFull(r, b); err != nil { - return nil, err - } - p := rgba.Pix[y*rgba.Stride : y*rgba.Stride+c.Width*4] - for i, j := 0, 0; i < len(p); i, j = i+4, j+3 { - // BMP images are stored in BGR order rather than RGB order. - p[i+0] = b[j+2] - p[i+1] = b[j+1] - p[i+2] = b[j+0] - p[i+3] = 0xFF - } - } - return rgba, nil -} - -// decodeNRGBA reads a 32 bit-per-pixel BMP image from r. -// If topDown is false, the image rows will be read bottom-up. -func decodeNRGBA(r io.Reader, c image.Config, topDown, allowAlpha bool) (image.Image, error) { - rgba := image.NewNRGBA(image.Rect(0, 0, c.Width, c.Height)) - if c.Width == 0 || c.Height == 0 { - return rgba, nil - } - y0, y1, yDelta := c.Height-1, -1, -1 - if topDown { - y0, y1, yDelta = 0, c.Height, +1 - } - for y := y0; y != y1; y += yDelta { - p := rgba.Pix[y*rgba.Stride : y*rgba.Stride+c.Width*4] - if _, err := io.ReadFull(r, p); err != nil { - return nil, err - } - for i := 0; i < len(p); i += 4 { - // BMP images are stored in BGRA order rather than RGBA order. - p[i+0], p[i+2] = p[i+2], p[i+0] - if !allowAlpha { - p[i+3] = 0xFF - } - } - } - return rgba, nil -} - -// Decode reads a BMP image from r and returns it as an image.Image. -// Limitation: The file must be 8, 24 or 32 bits per pixel. -func Decode(r io.Reader) (image.Image, error) { - c, bpp, topDown, allowAlpha, err := decodeConfig(r) - if err != nil { - return nil, err - } - switch bpp { - case 8: - return decodePaletted(r, c, topDown) - case 24: - return decodeRGB(r, c, topDown) - case 32: - return decodeNRGBA(r, c, topDown, allowAlpha) - } - panic("unreachable") -} - -// DecodeConfig returns the color model and dimensions of a BMP image without -// decoding the entire image. -// Limitation: The file must be 8, 24 or 32 bits per pixel. -func DecodeConfig(r io.Reader) (image.Config, error) { - config, _, _, _, err := decodeConfig(r) - return config, err -} - -func decodeConfig(r io.Reader) (config image.Config, bitsPerPixel int, topDown bool, allowAlpha bool, err error) { - // We only support those BMP images with one of the following DIB headers: - // - BITMAPINFOHEADER (40 bytes) - // - BITMAPV4HEADER (108 bytes) - // - BITMAPV5HEADER (124 bytes) - const ( - fileHeaderLen = 14 - infoHeaderLen = 40 - v4InfoHeaderLen = 108 - v5InfoHeaderLen = 124 - ) - var b [1024]byte - if _, err := io.ReadFull(r, b[:fileHeaderLen+4]); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return image.Config{}, 0, false, false, err - } - if string(b[:2]) != "BM" { - return image.Config{}, 0, false, false, errors.New("bmp: invalid format") - } - offset := readUint32(b[10:14]) - infoLen := readUint32(b[14:18]) - if infoLen != infoHeaderLen && infoLen != v4InfoHeaderLen && infoLen != v5InfoHeaderLen { - return image.Config{}, 0, false, false, ErrUnsupported - } - if _, err := io.ReadFull(r, b[fileHeaderLen+4:fileHeaderLen+infoLen]); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return image.Config{}, 0, false, false, err - } - width := int(int32(readUint32(b[18:22]))) - height := int(int32(readUint32(b[22:26]))) - if height < 0 { - height, topDown = -height, true - } - if width < 0 || height < 0 { - return image.Config{}, 0, false, false, ErrUnsupported - } - // We only support 1 plane and 8, 24 or 32 bits per pixel and no - // compression. - planes, bpp, compression := readUint16(b[26:28]), readUint16(b[28:30]), readUint32(b[30:34]) - // if compression is set to BI_BITFIELDS, but the bitmask is set to the default bitmask - // that would be used if compression was set to 0, we can continue as if compression was 0 - if compression == 3 && infoLen > infoHeaderLen && - readUint32(b[54:58]) == 0xff0000 && readUint32(b[58:62]) == 0xff00 && - readUint32(b[62:66]) == 0xff && readUint32(b[66:70]) == 0xff000000 { - compression = 0 - } - if planes != 1 || compression != 0 { - return image.Config{}, 0, false, false, ErrUnsupported - } - switch bpp { - case 8: - if offset != fileHeaderLen+infoLen+256*4 { - return image.Config{}, 0, false, false, ErrUnsupported - } - _, err = io.ReadFull(r, b[:256*4]) - if err != nil { - return image.Config{}, 0, false, false, err - } - pcm := make(color.Palette, 256) - for i := range pcm { - // BMP images are stored in BGR order rather than RGB order. - // Every 4th byte is padding. - pcm[i] = color.RGBA{b[4*i+2], b[4*i+1], b[4*i+0], 0xFF} - } - return image.Config{ColorModel: pcm, Width: width, Height: height}, 8, topDown, false, nil - case 24: - if offset != fileHeaderLen+infoLen { - return image.Config{}, 0, false, false, ErrUnsupported - } - return image.Config{ColorModel: color.RGBAModel, Width: width, Height: height}, 24, topDown, false, nil - case 32: - if offset != fileHeaderLen+infoLen { - return image.Config{}, 0, false, false, ErrUnsupported - } - // 32 bits per pixel is possibly RGBX (X is padding) or RGBA (A is - // alpha transparency). However, for BMP images, "Alpha is a - // poorly-documented and inconsistently-used feature" says - // https://source.chromium.org/chromium/chromium/src/+/bc0a792d7ebc587190d1a62ccddba10abeea274b:third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc;l=621 - // - // That goes on to say "BITMAPV3HEADER+ have an alpha bitmask in the - // info header... so we respect it at all times... [For earlier - // (smaller) headers we] ignore alpha in Windows V3 BMPs except inside - // ICO files". - // - // "Ignore" means to always set alpha to 0xFF (fully opaque): - // https://source.chromium.org/chromium/chromium/src/+/bc0a792d7ebc587190d1a62ccddba10abeea274b:third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.h;l=272 - // - // Confusingly, "Windows V3" does not correspond to BITMAPV3HEADER, but - // instead corresponds to the earlier (smaller) BITMAPINFOHEADER: - // https://source.chromium.org/chromium/chromium/src/+/bc0a792d7ebc587190d1a62ccddba10abeea274b:third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc;l=258 - // - // This Go package does not support ICO files and the (infoLen > - // infoHeaderLen) condition distinguishes BITMAPINFOHEADER (40 bytes) - // vs later (larger) headers. - allowAlpha = infoLen > infoHeaderLen - return image.Config{ColorModel: color.RGBAModel, Width: width, Height: height}, 32, topDown, allowAlpha, nil - } - return image.Config{}, 0, false, false, ErrUnsupported -} - -func init() { - image.RegisterFormat("bmp", "BM????\x00\x00\x00\x00", Decode, DecodeConfig) -} diff --git a/backend/vendor/golang.org/x/image/bmp/writer.go b/backend/vendor/golang.org/x/image/bmp/writer.go deleted file mode 100644 index f07b39db..00000000 --- a/backend/vendor/golang.org/x/image/bmp/writer.go +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package bmp - -import ( - "encoding/binary" - "errors" - "image" - "io" -) - -type header struct { - sigBM [2]byte - fileSize uint32 - resverved [2]uint16 - pixOffset uint32 - dibHeaderSize uint32 - width uint32 - height uint32 - colorPlane uint16 - bpp uint16 - compression uint32 - imageSize uint32 - xPixelsPerMeter uint32 - yPixelsPerMeter uint32 - colorUse uint32 - colorImportant uint32 -} - -func encodePaletted(w io.Writer, pix []uint8, dx, dy, stride, step int) error { - var padding []byte - if dx < step { - padding = make([]byte, step-dx) - } - for y := dy - 1; y >= 0; y-- { - min := y*stride + 0 - max := y*stride + dx - if _, err := w.Write(pix[min:max]); err != nil { - return err - } - if padding != nil { - if _, err := w.Write(padding); err != nil { - return err - } - } - } - return nil -} - -func encodeRGBA(w io.Writer, pix []uint8, dx, dy, stride, step int, opaque bool) error { - buf := make([]byte, step) - if opaque { - for y := dy - 1; y >= 0; y-- { - min := y*stride + 0 - max := y*stride + dx*4 - off := 0 - for i := min; i < max; i += 4 { - buf[off+2] = pix[i+0] - buf[off+1] = pix[i+1] - buf[off+0] = pix[i+2] - off += 3 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - } else { - for y := dy - 1; y >= 0; y-- { - min := y*stride + 0 - max := y*stride + dx*4 - off := 0 - for i := min; i < max; i += 4 { - a := uint32(pix[i+3]) - if a == 0 { - buf[off+2] = 0 - buf[off+1] = 0 - buf[off+0] = 0 - buf[off+3] = 0 - off += 4 - continue - } else if a == 0xff { - buf[off+2] = pix[i+0] - buf[off+1] = pix[i+1] - buf[off+0] = pix[i+2] - buf[off+3] = 0xff - off += 4 - continue - } - buf[off+2] = uint8(((uint32(pix[i+0]) * 0xffff) / a) >> 8) - buf[off+1] = uint8(((uint32(pix[i+1]) * 0xffff) / a) >> 8) - buf[off+0] = uint8(((uint32(pix[i+2]) * 0xffff) / a) >> 8) - buf[off+3] = uint8(a) - off += 4 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - } - return nil -} - -func encodeNRGBA(w io.Writer, pix []uint8, dx, dy, stride, step int, opaque bool) error { - buf := make([]byte, step) - if opaque { - for y := dy - 1; y >= 0; y-- { - min := y*stride + 0 - max := y*stride + dx*4 - off := 0 - for i := min; i < max; i += 4 { - buf[off+2] = pix[i+0] - buf[off+1] = pix[i+1] - buf[off+0] = pix[i+2] - off += 3 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - } else { - for y := dy - 1; y >= 0; y-- { - min := y*stride + 0 - max := y*stride + dx*4 - off := 0 - for i := min; i < max; i += 4 { - buf[off+2] = pix[i+0] - buf[off+1] = pix[i+1] - buf[off+0] = pix[i+2] - buf[off+3] = pix[i+3] - off += 4 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - } - return nil -} - -func encode(w io.Writer, m image.Image, step int) error { - b := m.Bounds() - buf := make([]byte, step) - for y := b.Max.Y - 1; y >= b.Min.Y; y-- { - off := 0 - for x := b.Min.X; x < b.Max.X; x++ { - r, g, b, _ := m.At(x, y).RGBA() - buf[off+2] = byte(r >> 8) - buf[off+1] = byte(g >> 8) - buf[off+0] = byte(b >> 8) - off += 3 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - return nil -} - -// Encode writes the image m to w in BMP format. -func Encode(w io.Writer, m image.Image) error { - d := m.Bounds().Size() - if d.X < 0 || d.Y < 0 { - return errors.New("bmp: negative bounds") - } - h := &header{ - sigBM: [2]byte{'B', 'M'}, - fileSize: 14 + 40, - pixOffset: 14 + 40, - dibHeaderSize: 40, - width: uint32(d.X), - height: uint32(d.Y), - colorPlane: 1, - } - - var step int - var palette []byte - var opaque bool - switch m := m.(type) { - case *image.Gray: - step = (d.X + 3) &^ 3 - palette = make([]byte, 1024) - for i := 0; i < 256; i++ { - palette[i*4+0] = uint8(i) - palette[i*4+1] = uint8(i) - palette[i*4+2] = uint8(i) - palette[i*4+3] = 0xFF - } - h.imageSize = uint32(d.Y * step) - h.fileSize += uint32(len(palette)) + h.imageSize - h.pixOffset += uint32(len(palette)) - h.bpp = 8 - - case *image.Paletted: - step = (d.X + 3) &^ 3 - palette = make([]byte, 1024) - for i := 0; i < len(m.Palette) && i < 256; i++ { - r, g, b, _ := m.Palette[i].RGBA() - palette[i*4+0] = uint8(b >> 8) - palette[i*4+1] = uint8(g >> 8) - palette[i*4+2] = uint8(r >> 8) - palette[i*4+3] = 0xFF - } - h.imageSize = uint32(d.Y * step) - h.fileSize += uint32(len(palette)) + h.imageSize - h.pixOffset += uint32(len(palette)) - h.bpp = 8 - case *image.RGBA: - opaque = m.Opaque() - if opaque { - step = (3*d.X + 3) &^ 3 - h.bpp = 24 - } else { - step = 4 * d.X - h.bpp = 32 - } - h.imageSize = uint32(d.Y * step) - h.fileSize += h.imageSize - case *image.NRGBA: - opaque = m.Opaque() - if opaque { - step = (3*d.X + 3) &^ 3 - h.bpp = 24 - } else { - step = 4 * d.X - h.bpp = 32 - } - h.imageSize = uint32(d.Y * step) - h.fileSize += h.imageSize - default: - step = (3*d.X + 3) &^ 3 - h.imageSize = uint32(d.Y * step) - h.fileSize += h.imageSize - h.bpp = 24 - } - - if err := binary.Write(w, binary.LittleEndian, h); err != nil { - return err - } - if palette != nil { - if err := binary.Write(w, binary.LittleEndian, palette); err != nil { - return err - } - } - - if d.X == 0 || d.Y == 0 { - return nil - } - - switch m := m.(type) { - case *image.Gray: - return encodePaletted(w, m.Pix, d.X, d.Y, m.Stride, step) - case *image.Paletted: - return encodePaletted(w, m.Pix, d.X, d.Y, m.Stride, step) - case *image.RGBA: - return encodeRGBA(w, m.Pix, d.X, d.Y, m.Stride, step, opaque) - case *image.NRGBA: - return encodeNRGBA(w, m.Pix, d.X, d.Y, m.Stride, step, opaque) - } - return encode(w, m, step) -} diff --git a/backend/vendor/golang.org/x/image/ccitt/reader.go b/backend/vendor/golang.org/x/image/ccitt/reader.go deleted file mode 100644 index 340de053..00000000 --- a/backend/vendor/golang.org/x/image/ccitt/reader.go +++ /dev/null @@ -1,795 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package ccitt implements a CCITT (fax) image decoder. -package ccitt - -import ( - "encoding/binary" - "errors" - "image" - "io" - "math/bits" -) - -var ( - errIncompleteCode = errors.New("ccitt: incomplete code") - errInvalidBounds = errors.New("ccitt: invalid bounds") - errInvalidCode = errors.New("ccitt: invalid code") - errInvalidMode = errors.New("ccitt: invalid mode") - errInvalidOffset = errors.New("ccitt: invalid offset") - errMissingEOL = errors.New("ccitt: missing End-of-Line") - errRunLengthOverflowsWidth = errors.New("ccitt: run length overflows width") - errRunLengthTooLong = errors.New("ccitt: run length too long") - errUnsupportedMode = errors.New("ccitt: unsupported mode") - errUnsupportedSubFormat = errors.New("ccitt: unsupported sub-format") - errUnsupportedWidth = errors.New("ccitt: unsupported width") -) - -// Order specifies the bit ordering in a CCITT data stream. -type Order uint32 - -const ( - // LSB means Least Significant Bits first. - LSB Order = iota - // MSB means Most Significant Bits first. - MSB -) - -// SubFormat represents that the CCITT format consists of a number of -// sub-formats. Decoding or encoding a CCITT data stream requires knowing the -// sub-format context. It is not represented in the data stream per se. -type SubFormat uint32 - -const ( - Group3 SubFormat = iota - Group4 -) - -// AutoDetectHeight is passed as the height argument to NewReader to indicate -// that the image height (the number of rows) is not known in advance. -const AutoDetectHeight = -1 - -// Options are optional parameters. -type Options struct { - // Align means that some variable-bit-width codes are byte-aligned. - Align bool - // Invert means that black is the 1 bit or 0xFF byte, and white is 0. - Invert bool -} - -// maxWidth is the maximum (inclusive) supported width. This is a limitation of -// this implementation, to guard against integer overflow, and not anything -// inherent to the CCITT format. -const maxWidth = 1 << 20 - -func invertBytes(b []byte) { - for i, c := range b { - b[i] = ^c - } -} - -func reverseBitsWithinBytes(b []byte) { - for i, c := range b { - b[i] = bits.Reverse8(c) - } -} - -// highBits writes to dst (1 bit per pixel, most significant bit first) the -// high (0x80) bits from src (1 byte per pixel). It returns the number of bytes -// written and read such that dst[:d] is the packed form of src[:s]. -// -// For example, if src starts with the 8 bytes [0x7D, 0x7E, 0x7F, 0x80, 0x81, -// 0x82, 0x00, 0xFF] then 0x1D will be written to dst[0]. -// -// If src has (8 * len(dst)) or more bytes then only len(dst) bytes are -// written, (8 * len(dst)) bytes are read, and invert is ignored. -// -// Otherwise, if len(src) is not a multiple of 8 then the final byte written to -// dst is padded with 1 bits (if invert is true) or 0 bits. If inverted, the 1s -// are typically temporary, e.g. they will be flipped back to 0s by an -// invertBytes call in the highBits caller, reader.Read. -func highBits(dst []byte, src []byte, invert bool) (d int, s int) { - // Pack as many complete groups of 8 src bytes as we can. - n := len(src) / 8 - if n > len(dst) { - n = len(dst) - } - dstN := dst[:n] - for i := range dstN { - src8 := src[i*8 : i*8+8] - dstN[i] = ((src8[0] & 0x80) >> 0) | - ((src8[1] & 0x80) >> 1) | - ((src8[2] & 0x80) >> 2) | - ((src8[3] & 0x80) >> 3) | - ((src8[4] & 0x80) >> 4) | - ((src8[5] & 0x80) >> 5) | - ((src8[6] & 0x80) >> 6) | - ((src8[7] & 0x80) >> 7) - } - d, s = n, 8*n - dst, src = dst[d:], src[s:] - - // Pack up to 7 remaining src bytes, if there's room in dst. - if (len(dst) > 0) && (len(src) > 0) { - dstByte := byte(0) - if invert { - dstByte = 0xFF >> uint(len(src)) - } - for n, srcByte := range src { - dstByte |= (srcByte & 0x80) >> uint(n) - } - dst[0] = dstByte - d, s = d+1, s+len(src) - } - return d, s -} - -type bitReader struct { - r io.Reader - - // readErr is the error returned from the most recent r.Read call. As the - // io.Reader documentation says, when r.Read returns (n, err), "always - // process the n > 0 bytes returned before considering the error err". - readErr error - - // order is whether to process r's bytes LSB first or MSB first. - order Order - - // The high nBits bits of the bits field hold upcoming bits in MSB order. - bits uint64 - nBits uint32 - - // bytes[br:bw] holds bytes read from r but not yet loaded into bits. - br uint32 - bw uint32 - bytes [1024]uint8 -} - -func (b *bitReader) alignToByteBoundary() { - n := b.nBits & 7 - b.bits <<= n - b.nBits -= n -} - -// nextBitMaxNBits is the maximum possible value of bitReader.nBits after a -// bitReader.nextBit call, provided that bitReader.nBits was not more than this -// value before that call. -// -// Note that the decode function can unread bits, which can temporarily set the -// bitReader.nBits value above nextBitMaxNBits. -const nextBitMaxNBits = 31 - -func (b *bitReader) nextBit() (uint64, error) { - for { - if b.nBits > 0 { - bit := b.bits >> 63 - b.bits <<= 1 - b.nBits-- - return bit, nil - } - - if available := b.bw - b.br; available >= 4 { - // Read 32 bits, even though b.bits is a uint64, since the decode - // function may need to unread up to maxCodeLength bits, putting - // them back in the remaining (64 - 32) bits. TestMaxCodeLength - // checks that the generated maxCodeLength constant fits. - // - // If changing the Uint32 call, also change nextBitMaxNBits. - b.bits = uint64(binary.BigEndian.Uint32(b.bytes[b.br:])) << 32 - b.br += 4 - b.nBits = 32 - continue - } else if available > 0 { - b.bits = uint64(b.bytes[b.br]) << (7 * 8) - b.br++ - b.nBits = 8 - continue - } - - if b.readErr != nil { - return 0, b.readErr - } - - n, err := b.r.Read(b.bytes[:]) - b.br = 0 - b.bw = uint32(n) - b.readErr = err - - if b.order != MSB { - reverseBitsWithinBytes(b.bytes[:b.bw]) - } - } -} - -func decode(b *bitReader, decodeTable [][2]int16) (uint32, error) { - nBitsRead, bitsRead, state := uint32(0), uint64(0), int32(1) - for { - bit, err := b.nextBit() - if err != nil { - if err == io.EOF { - err = errIncompleteCode - } - return 0, err - } - bitsRead |= bit << (63 - nBitsRead) - nBitsRead++ - - // The "&1" is redundant, but can eliminate a bounds check. - state = int32(decodeTable[state][bit&1]) - if state < 0 { - return uint32(^state), nil - } else if state == 0 { - // Unread the bits we've read, then return errInvalidCode. - b.bits = (b.bits >> nBitsRead) | bitsRead - b.nBits += nBitsRead - return 0, errInvalidCode - } - } -} - -// decodeEOL decodes the 12-bit EOL code 0000_0000_0001. -func decodeEOL(b *bitReader) error { - nBitsRead, bitsRead := uint32(0), uint64(0) - for { - bit, err := b.nextBit() - if err != nil { - if err == io.EOF { - err = errMissingEOL - } - return err - } - bitsRead |= bit << (63 - nBitsRead) - nBitsRead++ - - if nBitsRead < 12 { - if bit&1 == 0 { - continue - } - } else if bit&1 != 0 { - return nil - } - - // Unread the bits we've read, then return errMissingEOL. - b.bits = (b.bits >> nBitsRead) | bitsRead - b.nBits += nBitsRead - return errMissingEOL - } -} - -type reader struct { - br bitReader - subFormat SubFormat - - // width is the image width in pixels. - width int - - // rowsRemaining starts at the image height in pixels, when the reader is - // driven through the io.Reader interface, and decrements to zero as rows - // are decoded. Alternatively, it may be negative if the image height is - // not known in advance at the time of the NewReader call. - // - // When driven through DecodeIntoGray, this field is unused. - rowsRemaining int - - // curr and prev hold the current and previous rows. Each element is either - // 0x00 (black) or 0xFF (white). - // - // prev may be nil, when processing the first row. - curr []byte - prev []byte - - // ri is the read index. curr[:ri] are those bytes of curr that have been - // passed along via the Read method. - // - // When the reader is driven through DecodeIntoGray, instead of through the - // io.Reader interface, this field is unused. - ri int - - // wi is the write index. curr[:wi] are those bytes of curr that have - // already been decoded via the decodeRow method. - // - // What this implementation calls wi is roughly equivalent to what the spec - // calls the a0 index. - wi int - - // These fields are copied from the *Options (which may be nil). - align bool - invert bool - - // atStartOfRow is whether we have just started the row. Some parts of the - // spec say to treat this situation as if "wi = -1". - atStartOfRow bool - - // penColorIsWhite is whether the next run is black or white. - penColorIsWhite bool - - // seenStartOfImage is whether we've called the startDecode method. - seenStartOfImage bool - - // truncated is whether the input is missing the final 6 consecutive EOL's - // (for Group3) or 2 consecutive EOL's (for Group4). Omitting that trailer - // (but otherwise padding to a byte boundary, with either all 0 bits or all - // 1 bits) is invalid according to the spec, but happens in practice when - // exporting from Adobe Acrobat to TIFF + CCITT. This package silently - // ignores the format error for CCITT input that has been truncated in that - // fashion, returning the full decoded image. - // - // Detecting trailer truncation (just after the final row of pixels) - // requires knowing which row is the final row, and therefore does not - // trigger if the image height is not known in advance. - truncated bool - - // readErr is a sticky error for the Read method. - readErr error -} - -func (z *reader) Read(p []byte) (int, error) { - if z.readErr != nil { - return 0, z.readErr - } - originalP := p - - for len(p) > 0 { - // Allocate buffers (and decode any start-of-image codes), if - // processing the first or second row. - if z.curr == nil { - if !z.seenStartOfImage { - if z.readErr = z.startDecode(); z.readErr != nil { - break - } - z.atStartOfRow = true - } - z.curr = make([]byte, z.width) - } - - // Decode the next row, if necessary. - if z.atStartOfRow { - if z.rowsRemaining < 0 { - // We do not know the image height in advance. See if the next - // code is an EOL. If it is, it is consumed. If it isn't, the - // bitReader shouldn't advance along the bit stream, and we - // simply decode another row of pixel data. - // - // For the Group4 subFormat, we may need to align to a byte - // boundary. For the Group3 subFormat, the previous z.decodeRow - // call (or z.startDecode call) has already consumed one of the - // 6 consecutive EOL's. The next EOL is actually the second of - // 6, in the middle, and we shouldn't align at that point. - if z.align && (z.subFormat == Group4) { - z.br.alignToByteBoundary() - } - - if err := z.decodeEOL(); err == errMissingEOL { - // No-op. It's another row of pixel data. - } else if err != nil { - z.readErr = err - break - } else { - if z.readErr = z.finishDecode(true); z.readErr != nil { - break - } - z.readErr = io.EOF - break - } - - } else if z.rowsRemaining == 0 { - // We do know the image height in advance, and we have already - // decoded exactly that many rows. - if z.readErr = z.finishDecode(false); z.readErr != nil { - break - } - z.readErr = io.EOF - break - - } else { - z.rowsRemaining-- - } - - if z.readErr = z.decodeRow(z.rowsRemaining == 0); z.readErr != nil { - break - } - } - - // Pack from z.curr (1 byte per pixel) to p (1 bit per pixel). - packD, packS := highBits(p, z.curr[z.ri:], z.invert) - p = p[packD:] - z.ri += packS - - // Prepare to decode the next row, if necessary. - if z.ri == len(z.curr) { - z.ri, z.curr, z.prev = 0, z.prev, z.curr - z.atStartOfRow = true - } - } - - n := len(originalP) - len(p) - if z.invert { - invertBytes(originalP[:n]) - } - return n, z.readErr -} - -func (z *reader) penColor() byte { - if z.penColorIsWhite { - return 0xFF - } - return 0x00 -} - -func (z *reader) startDecode() error { - switch z.subFormat { - case Group3: - if err := z.decodeEOL(); err != nil { - return err - } - - case Group4: - // No-op. - - default: - return errUnsupportedSubFormat - } - - z.seenStartOfImage = true - return nil -} - -func (z *reader) finishDecode(alreadySeenEOL bool) error { - numberOfEOLs := 0 - switch z.subFormat { - case Group3: - if z.truncated { - return nil - } - // The stream ends with a RTC (Return To Control) of 6 consecutive - // EOL's, but we should have already just seen an EOL, either in - // z.startDecode (for a zero-height image) or in z.decodeRow. - numberOfEOLs = 5 - - case Group4: - autoDetectHeight := z.rowsRemaining < 0 - if autoDetectHeight { - // Aligning to a byte boundary was already handled by reader.Read. - } else if z.align { - z.br.alignToByteBoundary() - } - // The stream ends with two EOL's. If the first one is missing, and we - // had an explicit image height, we just assume that the trailing two - // EOL's were truncated and return a nil error. - if err := z.decodeEOL(); err != nil { - if (err == errMissingEOL) && !autoDetectHeight { - z.truncated = true - return nil - } - return err - } - numberOfEOLs = 1 - - default: - return errUnsupportedSubFormat - } - - if alreadySeenEOL { - numberOfEOLs-- - } - for ; numberOfEOLs > 0; numberOfEOLs-- { - if err := z.decodeEOL(); err != nil { - return err - } - } - return nil -} - -func (z *reader) decodeEOL() error { - return decodeEOL(&z.br) -} - -func (z *reader) decodeRow(finalRow bool) error { - z.wi = 0 - z.atStartOfRow = true - z.penColorIsWhite = true - - if z.align { - z.br.alignToByteBoundary() - } - - switch z.subFormat { - case Group3: - for ; z.wi < len(z.curr); z.atStartOfRow = false { - if err := z.decodeRun(); err != nil { - return err - } - } - err := z.decodeEOL() - if finalRow && (err == errMissingEOL) { - z.truncated = true - return nil - } - return err - - case Group4: - for ; z.wi < len(z.curr); z.atStartOfRow = false { - mode, err := decode(&z.br, modeDecodeTable[:]) - if err != nil { - return err - } - rm := readerMode{} - if mode < uint32(len(readerModes)) { - rm = readerModes[mode] - } - if rm.function == nil { - return errInvalidMode - } - if err := rm.function(z, rm.arg); err != nil { - return err - } - } - return nil - } - - return errUnsupportedSubFormat -} - -func (z *reader) decodeRun() error { - table := blackDecodeTable[:] - if z.penColorIsWhite { - table = whiteDecodeTable[:] - } - - total := 0 - for { - n, err := decode(&z.br, table) - if err != nil { - return err - } - if n > maxWidth { - panic("unreachable") - } - total += int(n) - if total > maxWidth { - return errRunLengthTooLong - } - // Anything 0x3F or below is a terminal code. - if n <= 0x3F { - break - } - } - - if total > (len(z.curr) - z.wi) { - return errRunLengthOverflowsWidth - } - dst := z.curr[z.wi : z.wi+total] - penColor := z.penColor() - for i := range dst { - dst[i] = penColor - } - z.wi += total - z.penColorIsWhite = !z.penColorIsWhite - - return nil -} - -// The various modes' semantics are based on determining a row of pixels' -// "changing elements": those pixels whose color differs from the one on its -// immediate left. -// -// The row above the first row is implicitly all white. Similarly, the column -// to the left of the first column is implicitly all white. -// -// For example, here's Figure 1 in "ITU-T Recommendation T.6", where the -// current and previous rows contain black (B) and white (w) pixels. The a? -// indexes point into curr, the b? indexes point into prev. -// -// b1 b2 -// v v -// prev: BBBBBwwwwwBBBwwwww -// curr: BBBwwwwwBBBBBBwwww -// ^ ^ ^ -// a0 a1 a2 -// -// a0 is the "reference element" or current decoder position, roughly -// equivalent to what this implementation calls reader.wi. -// -// a1 is the next changing element to the right of a0, on the "coding line" -// (the current row). -// -// a2 is the next changing element to the right of a1, again on curr. -// -// b1 is the first changing element on the "reference line" (the previous row) -// to the right of a0 and of opposite color to a0. -// -// b2 is the next changing element to the right of b1, again on prev. -// -// The various modes calculate a1 (and a2, for modeH): -// - modePass calculates that a1 is at or to the right of b2. -// - modeH calculates a1 and a2 without considering b1 or b2. -// - modeV* calculates a1 to be b1 plus an adjustment (between -3 and +3). - -const ( - findB1 = false - findB2 = true -) - -// findB finds either the b1 or b2 value. -func (z *reader) findB(whichB bool) int { - // The initial row is a special case. The previous row is implicitly all - // white, so that there are no changing pixel elements. We return b1 or b2 - // to be at the end of the row. - if len(z.prev) != len(z.curr) { - return len(z.curr) - } - - i := z.wi - - if z.atStartOfRow { - // a0 is implicitly at -1, on a white pixel. b1 is the first black - // pixel in the previous row. b2 is the first white pixel after that. - for ; (i < len(z.prev)) && (z.prev[i] == 0xFF); i++ { - } - if whichB == findB2 { - for ; (i < len(z.prev)) && (z.prev[i] == 0x00); i++ { - } - } - return i - } - - // As per figure 1 above, assume that the current pen color is white. - // First, walk past every contiguous black pixel in prev, starting at a0. - oppositeColor := ^z.penColor() - for ; (i < len(z.prev)) && (z.prev[i] == oppositeColor); i++ { - } - - // Then walk past every contiguous white pixel. - penColor := ^oppositeColor - for ; (i < len(z.prev)) && (z.prev[i] == penColor); i++ { - } - - // We're now at a black pixel (or at the end of the row). That's b1. - if whichB == findB2 { - // If we're looking for b2, walk past every contiguous black pixel - // again. - oppositeColor := ^penColor - for ; (i < len(z.prev)) && (z.prev[i] == oppositeColor); i++ { - } - } - - return i -} - -type readerMode struct { - function func(z *reader, arg int) error - arg int -} - -var readerModes = [...]readerMode{ - modePass: {function: readerModePass}, - modeH: {function: readerModeH}, - modeV0: {function: readerModeV, arg: +0}, - modeVR1: {function: readerModeV, arg: +1}, - modeVR2: {function: readerModeV, arg: +2}, - modeVR3: {function: readerModeV, arg: +3}, - modeVL1: {function: readerModeV, arg: -1}, - modeVL2: {function: readerModeV, arg: -2}, - modeVL3: {function: readerModeV, arg: -3}, - modeExt: {function: readerModeExt}, -} - -func readerModePass(z *reader, arg int) error { - b2 := z.findB(findB2) - if (b2 < z.wi) || (len(z.curr) < b2) { - return errInvalidOffset - } - dst := z.curr[z.wi:b2] - penColor := z.penColor() - for i := range dst { - dst[i] = penColor - } - z.wi = b2 - return nil -} - -func readerModeH(z *reader, arg int) error { - // The first iteration finds a1. The second finds a2. - for i := 0; i < 2; i++ { - if err := z.decodeRun(); err != nil { - return err - } - } - return nil -} - -func readerModeV(z *reader, arg int) error { - a1 := z.findB(findB1) + arg - if (a1 < z.wi) || (len(z.curr) < a1) { - return errInvalidOffset - } - dst := z.curr[z.wi:a1] - penColor := z.penColor() - for i := range dst { - dst[i] = penColor - } - z.wi = a1 - z.penColorIsWhite = !z.penColorIsWhite - return nil -} - -func readerModeExt(z *reader, arg int) error { - return errUnsupportedMode -} - -// DecodeIntoGray decodes the CCITT-formatted data in r into dst. -// -// It returns an error if dst's width and height don't match the implied width -// and height of CCITT-formatted data. -func DecodeIntoGray(dst *image.Gray, r io.Reader, order Order, sf SubFormat, opts *Options) error { - bounds := dst.Bounds() - if (bounds.Dx() < 0) || (bounds.Dy() < 0) { - return errInvalidBounds - } - if bounds.Dx() > maxWidth { - return errUnsupportedWidth - } - - z := reader{ - br: bitReader{r: r, order: order}, - subFormat: sf, - align: (opts != nil) && opts.Align, - invert: (opts != nil) && opts.Invert, - width: bounds.Dx(), - } - if err := z.startDecode(); err != nil { - return err - } - - width := bounds.Dx() - for y := bounds.Min.Y; y < bounds.Max.Y; y++ { - p := (y - bounds.Min.Y) * dst.Stride - z.curr = dst.Pix[p : p+width] - if err := z.decodeRow(y+1 == bounds.Max.Y); err != nil { - return err - } - z.curr, z.prev = nil, z.curr - } - - if err := z.finishDecode(false); err != nil { - return err - } - - if z.invert { - for y := bounds.Min.Y; y < bounds.Max.Y; y++ { - p := (y - bounds.Min.Y) * dst.Stride - invertBytes(dst.Pix[p : p+width]) - } - } - - return nil -} - -// NewReader returns an io.Reader that decodes the CCITT-formatted data in r. -// The resultant byte stream is one bit per pixel (MSB first), with 1 meaning -// white and 0 meaning black. Each row in the result is byte-aligned. -// -// A negative height, such as passing AutoDetectHeight, means that the image -// height is not known in advance. A negative width is invalid. -func NewReader(r io.Reader, order Order, sf SubFormat, width int, height int, opts *Options) io.Reader { - readErr := error(nil) - if width < 0 { - readErr = errInvalidBounds - } else if width > maxWidth { - readErr = errUnsupportedWidth - } - - return &reader{ - br: bitReader{r: r, order: order}, - subFormat: sf, - align: (opts != nil) && opts.Align, - invert: (opts != nil) && opts.Invert, - width: width, - rowsRemaining: height, - readErr: readErr, - } -} diff --git a/backend/vendor/golang.org/x/image/ccitt/table.go b/backend/vendor/golang.org/x/image/ccitt/table.go deleted file mode 100644 index 8b3794bc..00000000 --- a/backend/vendor/golang.org/x/image/ccitt/table.go +++ /dev/null @@ -1,972 +0,0 @@ -// generated by "go run gen.go". DO NOT EDIT. - -package ccitt - -// Each decodeTable is represented by an array of [2]int16's: a binary tree. -// Each array element (other than element 0, which means invalid) is a branch -// node in that tree. The root node is always element 1 (the second element). -// -// To walk the tree, look at the next bit in the bit stream, using it to select -// the first or second element of the [2]int16. If that int16 is 0, we have an -// invalid code. If it is positive, go to that branch node. If it is negative, -// then we have a leaf node, whose value is the bitwise complement (the ^ -// operator) of that int16. -// -// Comments above each decodeTable also show the same structure visually. The -// "b123" lines show the 123'rd branch node. The "=XXXXX" lines show an invalid -// code. The "=v1234" lines show a leaf node with value 1234. When reading the -// bit stream, a 0 or 1 bit means to go up or down, as you move left to right. -// -// For example, in modeDecodeTable, branch node b005 is three steps up from the -// root node, meaning that we have already seen "000". If the next bit is "0" -// then we move to branch node b006. Otherwise, the next bit is "1", and we -// move to the leaf node v0000 (also known as the modePass constant). Indeed, -// the bits that encode modePass are "0001". -// -// Tables 1, 2 and 3 come from the "ITU-T Recommendation T.6: FACSIMILE CODING -// SCHEMES AND CODING CONTROL FUNCTIONS FOR GROUP 4 FACSIMILE APPARATUS" -// specification: -// -// https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.6-198811-I!!PDF-E&type=items - -// modeDecodeTable represents Table 1 and the End-of-Line code. -// -// +=XXXXX -// b009 +-+ -// | +=v0009 -// b007 +-+ -// | | +=v0008 -// b010 | +-+ -// | +=v0005 -// b006 +-+ -// | | +=v0007 -// b008 | +-+ -// | +=v0004 -// b005 +-+ -// | +=v0000 -// b003 +-+ -// | +=v0001 -// b002 +-+ -// | | +=v0006 -// b004 | +-+ -// | +=v0003 -// b001 +-+ -// +=v0002 -var modeDecodeTable = [...][2]int16{ - 0: {0, 0}, - 1: {2, ^2}, - 2: {3, 4}, - 3: {5, ^1}, - 4: {^6, ^3}, - 5: {6, ^0}, - 6: {7, 8}, - 7: {9, 10}, - 8: {^7, ^4}, - 9: {0, ^9}, - 10: {^8, ^5}, -} - -// whiteDecodeTable represents Tables 2 and 3 for a white run. -// -// +=XXXXX -// b059 +-+ -// | | +=v1792 -// b096 | | +-+ -// | | | | +=v1984 -// b100 | | | +-+ -// | | | +=v2048 -// b094 | | +-+ -// | | | | +=v2112 -// b101 | | | | +-+ -// | | | | | +=v2176 -// b097 | | | +-+ -// | | | | +=v2240 -// b102 | | | +-+ -// | | | +=v2304 -// b085 | +-+ -// | | +=v1856 -// b098 | | +-+ -// | | | +=v1920 -// b095 | +-+ -// | | +=v2368 -// b103 | | +-+ -// | | | +=v2432 -// b099 | +-+ -// | | +=v2496 -// b104 | +-+ -// | +=v2560 -// b040 +-+ -// | | +=v0029 -// b060 | +-+ -// | +=v0030 -// b026 +-+ -// | | +=v0045 -// b061 | | +-+ -// | | | +=v0046 -// b041 | +-+ -// | +=v0022 -// b016 +-+ -// | | +=v0023 -// b042 | | +-+ -// | | | | +=v0047 -// b062 | | | +-+ -// | | | +=v0048 -// b027 | +-+ -// | +=v0013 -// b008 +-+ -// | | +=v0020 -// b043 | | +-+ -// | | | | +=v0033 -// b063 | | | +-+ -// | | | +=v0034 -// b028 | | +-+ -// | | | | +=v0035 -// b064 | | | | +-+ -// | | | | | +=v0036 -// b044 | | | +-+ -// | | | | +=v0037 -// b065 | | | +-+ -// | | | +=v0038 -// b017 | +-+ -// | | +=v0019 -// b045 | | +-+ -// | | | | +=v0031 -// b066 | | | +-+ -// | | | +=v0032 -// b029 | +-+ -// | +=v0001 -// b004 +-+ -// | | +=v0012 -// b030 | | +-+ -// | | | | +=v0053 -// b067 | | | | +-+ -// | | | | | +=v0054 -// b046 | | | +-+ -// | | | +=v0026 -// b018 | | +-+ -// | | | | +=v0039 -// b068 | | | | +-+ -// | | | | | +=v0040 -// b047 | | | | +-+ -// | | | | | | +=v0041 -// b069 | | | | | +-+ -// | | | | | +=v0042 -// b031 | | | +-+ -// | | | | +=v0043 -// b070 | | | | +-+ -// | | | | | +=v0044 -// b048 | | | +-+ -// | | | +=v0021 -// b009 | +-+ -// | | +=v0028 -// b049 | | +-+ -// | | | | +=v0061 -// b071 | | | +-+ -// | | | +=v0062 -// b032 | | +-+ -// | | | | +=v0063 -// b072 | | | | +-+ -// | | | | | +=v0000 -// b050 | | | +-+ -// | | | | +=v0320 -// b073 | | | +-+ -// | | | +=v0384 -// b019 | +-+ -// | +=v0010 -// b002 +-+ -// | | +=v0011 -// b020 | | +-+ -// | | | | +=v0027 -// b051 | | | | +-+ -// | | | | | | +=v0059 -// b074 | | | | | +-+ -// | | | | | +=v0060 -// b033 | | | +-+ -// | | | | +=v1472 -// b086 | | | | +-+ -// | | | | | +=v1536 -// b075 | | | | +-+ -// | | | | | | +=v1600 -// b087 | | | | | +-+ -// | | | | | +=v1728 -// b052 | | | +-+ -// | | | +=v0018 -// b010 | | +-+ -// | | | | +=v0024 -// b053 | | | | +-+ -// | | | | | | +=v0049 -// b076 | | | | | +-+ -// | | | | | +=v0050 -// b034 | | | | +-+ -// | | | | | | +=v0051 -// b077 | | | | | | +-+ -// | | | | | | | +=v0052 -// b054 | | | | | +-+ -// | | | | | +=v0025 -// b021 | | | +-+ -// | | | | +=v0055 -// b078 | | | | +-+ -// | | | | | +=v0056 -// b055 | | | | +-+ -// | | | | | | +=v0057 -// b079 | | | | | +-+ -// | | | | | +=v0058 -// b035 | | | +-+ -// | | | +=v0192 -// b005 | +-+ -// | | +=v1664 -// b036 | | +-+ -// | | | | +=v0448 -// b080 | | | | +-+ -// | | | | | +=v0512 -// b056 | | | +-+ -// | | | | +=v0704 -// b088 | | | | +-+ -// | | | | | +=v0768 -// b081 | | | +-+ -// | | | +=v0640 -// b022 | | +-+ -// | | | | +=v0576 -// b082 | | | | +-+ -// | | | | | | +=v0832 -// b089 | | | | | +-+ -// | | | | | +=v0896 -// b057 | | | | +-+ -// | | | | | | +=v0960 -// b090 | | | | | | +-+ -// | | | | | | | +=v1024 -// b083 | | | | | +-+ -// | | | | | | +=v1088 -// b091 | | | | | +-+ -// | | | | | +=v1152 -// b037 | | | +-+ -// | | | | +=v1216 -// b092 | | | | +-+ -// | | | | | +=v1280 -// b084 | | | | +-+ -// | | | | | | +=v1344 -// b093 | | | | | +-+ -// | | | | | +=v1408 -// b058 | | | +-+ -// | | | +=v0256 -// b011 | +-+ -// | +=v0002 -// b001 +-+ -// | +=v0003 -// b012 | +-+ -// | | | +=v0128 -// b023 | | +-+ -// | | +=v0008 -// b006 | +-+ -// | | | +=v0009 -// b024 | | | +-+ -// | | | | | +=v0016 -// b038 | | | | +-+ -// | | | | +=v0017 -// b013 | | +-+ -// | | +=v0004 -// b003 +-+ -// | +=v0005 -// b014 | +-+ -// | | | +=v0014 -// b039 | | | +-+ -// | | | | +=v0015 -// b025 | | +-+ -// | | +=v0064 -// b007 +-+ -// | +=v0006 -// b015 +-+ -// +=v0007 -var whiteDecodeTable = [...][2]int16{ - 0: {0, 0}, - 1: {2, 3}, - 2: {4, 5}, - 3: {6, 7}, - 4: {8, 9}, - 5: {10, 11}, - 6: {12, 13}, - 7: {14, 15}, - 8: {16, 17}, - 9: {18, 19}, - 10: {20, 21}, - 11: {22, ^2}, - 12: {^3, 23}, - 13: {24, ^4}, - 14: {^5, 25}, - 15: {^6, ^7}, - 16: {26, 27}, - 17: {28, 29}, - 18: {30, 31}, - 19: {32, ^10}, - 20: {^11, 33}, - 21: {34, 35}, - 22: {36, 37}, - 23: {^128, ^8}, - 24: {^9, 38}, - 25: {39, ^64}, - 26: {40, 41}, - 27: {42, ^13}, - 28: {43, 44}, - 29: {45, ^1}, - 30: {^12, 46}, - 31: {47, 48}, - 32: {49, 50}, - 33: {51, 52}, - 34: {53, 54}, - 35: {55, ^192}, - 36: {^1664, 56}, - 37: {57, 58}, - 38: {^16, ^17}, - 39: {^14, ^15}, - 40: {59, 60}, - 41: {61, ^22}, - 42: {^23, 62}, - 43: {^20, 63}, - 44: {64, 65}, - 45: {^19, 66}, - 46: {67, ^26}, - 47: {68, 69}, - 48: {70, ^21}, - 49: {^28, 71}, - 50: {72, 73}, - 51: {^27, 74}, - 52: {75, ^18}, - 53: {^24, 76}, - 54: {77, ^25}, - 55: {78, 79}, - 56: {80, 81}, - 57: {82, 83}, - 58: {84, ^256}, - 59: {0, 85}, - 60: {^29, ^30}, - 61: {^45, ^46}, - 62: {^47, ^48}, - 63: {^33, ^34}, - 64: {^35, ^36}, - 65: {^37, ^38}, - 66: {^31, ^32}, - 67: {^53, ^54}, - 68: {^39, ^40}, - 69: {^41, ^42}, - 70: {^43, ^44}, - 71: {^61, ^62}, - 72: {^63, ^0}, - 73: {^320, ^384}, - 74: {^59, ^60}, - 75: {86, 87}, - 76: {^49, ^50}, - 77: {^51, ^52}, - 78: {^55, ^56}, - 79: {^57, ^58}, - 80: {^448, ^512}, - 81: {88, ^640}, - 82: {^576, 89}, - 83: {90, 91}, - 84: {92, 93}, - 85: {94, 95}, - 86: {^1472, ^1536}, - 87: {^1600, ^1728}, - 88: {^704, ^768}, - 89: {^832, ^896}, - 90: {^960, ^1024}, - 91: {^1088, ^1152}, - 92: {^1216, ^1280}, - 93: {^1344, ^1408}, - 94: {96, 97}, - 95: {98, 99}, - 96: {^1792, 100}, - 97: {101, 102}, - 98: {^1856, ^1920}, - 99: {103, 104}, - 100: {^1984, ^2048}, - 101: {^2112, ^2176}, - 102: {^2240, ^2304}, - 103: {^2368, ^2432}, - 104: {^2496, ^2560}, -} - -// blackDecodeTable represents Tables 2 and 3 for a black run. -// -// +=XXXXX -// b017 +-+ -// | | +=v1792 -// b042 | | +-+ -// | | | | +=v1984 -// b063 | | | +-+ -// | | | +=v2048 -// b029 | | +-+ -// | | | | +=v2112 -// b064 | | | | +-+ -// | | | | | +=v2176 -// b043 | | | +-+ -// | | | | +=v2240 -// b065 | | | +-+ -// | | | +=v2304 -// b022 | +-+ -// | | +=v1856 -// b044 | | +-+ -// | | | +=v1920 -// b030 | +-+ -// | | +=v2368 -// b066 | | +-+ -// | | | +=v2432 -// b045 | +-+ -// | | +=v2496 -// b067 | +-+ -// | +=v2560 -// b013 +-+ -// | | +=v0018 -// b031 | | +-+ -// | | | | +=v0052 -// b068 | | | | +-+ -// | | | | | | +=v0640 -// b095 | | | | | +-+ -// | | | | | +=v0704 -// b046 | | | +-+ -// | | | | +=v0768 -// b096 | | | | +-+ -// | | | | | +=v0832 -// b069 | | | +-+ -// | | | +=v0055 -// b023 | | +-+ -// | | | | +=v0056 -// b070 | | | | +-+ -// | | | | | | +=v1280 -// b097 | | | | | +-+ -// | | | | | +=v1344 -// b047 | | | | +-+ -// | | | | | | +=v1408 -// b098 | | | | | | +-+ -// | | | | | | | +=v1472 -// b071 | | | | | +-+ -// | | | | | +=v0059 -// b032 | | | +-+ -// | | | | +=v0060 -// b072 | | | | +-+ -// | | | | | | +=v1536 -// b099 | | | | | +-+ -// | | | | | +=v1600 -// b048 | | | +-+ -// | | | +=v0024 -// b018 | +-+ -// | | +=v0025 -// b049 | | +-+ -// | | | | +=v1664 -// b100 | | | | +-+ -// | | | | | +=v1728 -// b073 | | | +-+ -// | | | +=v0320 -// b033 | | +-+ -// | | | | +=v0384 -// b074 | | | | +-+ -// | | | | | +=v0448 -// b050 | | | +-+ -// | | | | +=v0512 -// b101 | | | | +-+ -// | | | | | +=v0576 -// b075 | | | +-+ -// | | | +=v0053 -// b024 | +-+ -// | | +=v0054 -// b076 | | +-+ -// | | | | +=v0896 -// b102 | | | +-+ -// | | | +=v0960 -// b051 | | +-+ -// | | | | +=v1024 -// b103 | | | | +-+ -// | | | | | +=v1088 -// b077 | | | +-+ -// | | | | +=v1152 -// b104 | | | +-+ -// | | | +=v1216 -// b034 | +-+ -// | +=v0064 -// b010 +-+ -// | | +=v0013 -// b019 | | +-+ -// | | | | +=v0023 -// b052 | | | | +-+ -// | | | | | | +=v0050 -// b078 | | | | | +-+ -// | | | | | +=v0051 -// b035 | | | | +-+ -// | | | | | | +=v0044 -// b079 | | | | | | +-+ -// | | | | | | | +=v0045 -// b053 | | | | | +-+ -// | | | | | | +=v0046 -// b080 | | | | | +-+ -// | | | | | +=v0047 -// b025 | | | +-+ -// | | | | +=v0057 -// b081 | | | | +-+ -// | | | | | +=v0058 -// b054 | | | | +-+ -// | | | | | | +=v0061 -// b082 | | | | | +-+ -// | | | | | +=v0256 -// b036 | | | +-+ -// | | | +=v0016 -// b014 | +-+ -// | | +=v0017 -// b037 | | +-+ -// | | | | +=v0048 -// b083 | | | | +-+ -// | | | | | +=v0049 -// b055 | | | +-+ -// | | | | +=v0062 -// b084 | | | +-+ -// | | | +=v0063 -// b026 | | +-+ -// | | | | +=v0030 -// b085 | | | | +-+ -// | | | | | +=v0031 -// b056 | | | | +-+ -// | | | | | | +=v0032 -// b086 | | | | | +-+ -// | | | | | +=v0033 -// b038 | | | +-+ -// | | | | +=v0040 -// b087 | | | | +-+ -// | | | | | +=v0041 -// b057 | | | +-+ -// | | | +=v0022 -// b020 | +-+ -// | +=v0014 -// b008 +-+ -// | | +=v0010 -// b015 | | +-+ -// | | | +=v0011 -// b011 | +-+ -// | | +=v0015 -// b027 | | +-+ -// | | | | +=v0128 -// b088 | | | | +-+ -// | | | | | +=v0192 -// b058 | | | | +-+ -// | | | | | | +=v0026 -// b089 | | | | | +-+ -// | | | | | +=v0027 -// b039 | | | +-+ -// | | | | +=v0028 -// b090 | | | | +-+ -// | | | | | +=v0029 -// b059 | | | +-+ -// | | | +=v0019 -// b021 | | +-+ -// | | | | +=v0020 -// b060 | | | | +-+ -// | | | | | | +=v0034 -// b091 | | | | | +-+ -// | | | | | +=v0035 -// b040 | | | | +-+ -// | | | | | | +=v0036 -// b092 | | | | | | +-+ -// | | | | | | | +=v0037 -// b061 | | | | | +-+ -// | | | | | | +=v0038 -// b093 | | | | | +-+ -// | | | | | +=v0039 -// b028 | | | +-+ -// | | | | +=v0021 -// b062 | | | | +-+ -// | | | | | | +=v0042 -// b094 | | | | | +-+ -// | | | | | +=v0043 -// b041 | | | +-+ -// | | | +=v0000 -// b016 | +-+ -// | +=v0012 -// b006 +-+ -// | | +=v0009 -// b012 | | +-+ -// | | | +=v0008 -// b009 | +-+ -// | +=v0007 -// b004 +-+ -// | | +=v0006 -// b007 | +-+ -// | +=v0005 -// b002 +-+ -// | | +=v0001 -// b005 | +-+ -// | +=v0004 -// b001 +-+ -// | +=v0003 -// b003 +-+ -// +=v0002 -var blackDecodeTable = [...][2]int16{ - 0: {0, 0}, - 1: {2, 3}, - 2: {4, 5}, - 3: {^3, ^2}, - 4: {6, 7}, - 5: {^1, ^4}, - 6: {8, 9}, - 7: {^6, ^5}, - 8: {10, 11}, - 9: {12, ^7}, - 10: {13, 14}, - 11: {15, 16}, - 12: {^9, ^8}, - 13: {17, 18}, - 14: {19, 20}, - 15: {^10, ^11}, - 16: {21, ^12}, - 17: {0, 22}, - 18: {23, 24}, - 19: {^13, 25}, - 20: {26, ^14}, - 21: {27, 28}, - 22: {29, 30}, - 23: {31, 32}, - 24: {33, 34}, - 25: {35, 36}, - 26: {37, 38}, - 27: {^15, 39}, - 28: {40, 41}, - 29: {42, 43}, - 30: {44, 45}, - 31: {^18, 46}, - 32: {47, 48}, - 33: {49, 50}, - 34: {51, ^64}, - 35: {52, 53}, - 36: {54, ^16}, - 37: {^17, 55}, - 38: {56, 57}, - 39: {58, 59}, - 40: {60, 61}, - 41: {62, ^0}, - 42: {^1792, 63}, - 43: {64, 65}, - 44: {^1856, ^1920}, - 45: {66, 67}, - 46: {68, 69}, - 47: {70, 71}, - 48: {72, ^24}, - 49: {^25, 73}, - 50: {74, 75}, - 51: {76, 77}, - 52: {^23, 78}, - 53: {79, 80}, - 54: {81, 82}, - 55: {83, 84}, - 56: {85, 86}, - 57: {87, ^22}, - 58: {88, 89}, - 59: {90, ^19}, - 60: {^20, 91}, - 61: {92, 93}, - 62: {^21, 94}, - 63: {^1984, ^2048}, - 64: {^2112, ^2176}, - 65: {^2240, ^2304}, - 66: {^2368, ^2432}, - 67: {^2496, ^2560}, - 68: {^52, 95}, - 69: {96, ^55}, - 70: {^56, 97}, - 71: {98, ^59}, - 72: {^60, 99}, - 73: {100, ^320}, - 74: {^384, ^448}, - 75: {101, ^53}, - 76: {^54, 102}, - 77: {103, 104}, - 78: {^50, ^51}, - 79: {^44, ^45}, - 80: {^46, ^47}, - 81: {^57, ^58}, - 82: {^61, ^256}, - 83: {^48, ^49}, - 84: {^62, ^63}, - 85: {^30, ^31}, - 86: {^32, ^33}, - 87: {^40, ^41}, - 88: {^128, ^192}, - 89: {^26, ^27}, - 90: {^28, ^29}, - 91: {^34, ^35}, - 92: {^36, ^37}, - 93: {^38, ^39}, - 94: {^42, ^43}, - 95: {^640, ^704}, - 96: {^768, ^832}, - 97: {^1280, ^1344}, - 98: {^1408, ^1472}, - 99: {^1536, ^1600}, - 100: {^1664, ^1728}, - 101: {^512, ^576}, - 102: {^896, ^960}, - 103: {^1024, ^1088}, - 104: {^1152, ^1216}, -} - -const maxCodeLength = 13 - -// Each encodeTable is represented by an array of bitStrings. - -// bitString is a pair of uint32 values representing a bit code. -// The nBits low bits of bits make up the actual bit code. -// Eg. bitString{0x0004, 8} represents the bitcode "00000100". -type bitString struct { - bits uint32 - nBits uint32 -} - -// modeEncodeTable represents Table 1 and the End-of-Line code. -var modeEncodeTable = [...]bitString{ - 0: {0x0001, 4}, // "0001" - 1: {0x0001, 3}, // "001" - 2: {0x0001, 1}, // "1" - 3: {0x0003, 3}, // "011" - 4: {0x0003, 6}, // "000011" - 5: {0x0003, 7}, // "0000011" - 6: {0x0002, 3}, // "010" - 7: {0x0002, 6}, // "000010" - 8: {0x0002, 7}, // "0000010" - 9: {0x0001, 7}, // "0000001" -} - -// whiteEncodeTable2 represents Table 2 for a white run. -var whiteEncodeTable2 = [...]bitString{ - 0: {0x0035, 8}, // "00110101" - 1: {0x0007, 6}, // "000111" - 2: {0x0007, 4}, // "0111" - 3: {0x0008, 4}, // "1000" - 4: {0x000b, 4}, // "1011" - 5: {0x000c, 4}, // "1100" - 6: {0x000e, 4}, // "1110" - 7: {0x000f, 4}, // "1111" - 8: {0x0013, 5}, // "10011" - 9: {0x0014, 5}, // "10100" - 10: {0x0007, 5}, // "00111" - 11: {0x0008, 5}, // "01000" - 12: {0x0008, 6}, // "001000" - 13: {0x0003, 6}, // "000011" - 14: {0x0034, 6}, // "110100" - 15: {0x0035, 6}, // "110101" - 16: {0x002a, 6}, // "101010" - 17: {0x002b, 6}, // "101011" - 18: {0x0027, 7}, // "0100111" - 19: {0x000c, 7}, // "0001100" - 20: {0x0008, 7}, // "0001000" - 21: {0x0017, 7}, // "0010111" - 22: {0x0003, 7}, // "0000011" - 23: {0x0004, 7}, // "0000100" - 24: {0x0028, 7}, // "0101000" - 25: {0x002b, 7}, // "0101011" - 26: {0x0013, 7}, // "0010011" - 27: {0x0024, 7}, // "0100100" - 28: {0x0018, 7}, // "0011000" - 29: {0x0002, 8}, // "00000010" - 30: {0x0003, 8}, // "00000011" - 31: {0x001a, 8}, // "00011010" - 32: {0x001b, 8}, // "00011011" - 33: {0x0012, 8}, // "00010010" - 34: {0x0013, 8}, // "00010011" - 35: {0x0014, 8}, // "00010100" - 36: {0x0015, 8}, // "00010101" - 37: {0x0016, 8}, // "00010110" - 38: {0x0017, 8}, // "00010111" - 39: {0x0028, 8}, // "00101000" - 40: {0x0029, 8}, // "00101001" - 41: {0x002a, 8}, // "00101010" - 42: {0x002b, 8}, // "00101011" - 43: {0x002c, 8}, // "00101100" - 44: {0x002d, 8}, // "00101101" - 45: {0x0004, 8}, // "00000100" - 46: {0x0005, 8}, // "00000101" - 47: {0x000a, 8}, // "00001010" - 48: {0x000b, 8}, // "00001011" - 49: {0x0052, 8}, // "01010010" - 50: {0x0053, 8}, // "01010011" - 51: {0x0054, 8}, // "01010100" - 52: {0x0055, 8}, // "01010101" - 53: {0x0024, 8}, // "00100100" - 54: {0x0025, 8}, // "00100101" - 55: {0x0058, 8}, // "01011000" - 56: {0x0059, 8}, // "01011001" - 57: {0x005a, 8}, // "01011010" - 58: {0x005b, 8}, // "01011011" - 59: {0x004a, 8}, // "01001010" - 60: {0x004b, 8}, // "01001011" - 61: {0x0032, 8}, // "00110010" - 62: {0x0033, 8}, // "00110011" - 63: {0x0034, 8}, // "00110100" -} - -// whiteEncodeTable3 represents Table 3 for a white run. -var whiteEncodeTable3 = [...]bitString{ - 0: {0x001b, 5}, // "11011" - 1: {0x0012, 5}, // "10010" - 2: {0x0017, 6}, // "010111" - 3: {0x0037, 7}, // "0110111" - 4: {0x0036, 8}, // "00110110" - 5: {0x0037, 8}, // "00110111" - 6: {0x0064, 8}, // "01100100" - 7: {0x0065, 8}, // "01100101" - 8: {0x0068, 8}, // "01101000" - 9: {0x0067, 8}, // "01100111" - 10: {0x00cc, 9}, // "011001100" - 11: {0x00cd, 9}, // "011001101" - 12: {0x00d2, 9}, // "011010010" - 13: {0x00d3, 9}, // "011010011" - 14: {0x00d4, 9}, // "011010100" - 15: {0x00d5, 9}, // "011010101" - 16: {0x00d6, 9}, // "011010110" - 17: {0x00d7, 9}, // "011010111" - 18: {0x00d8, 9}, // "011011000" - 19: {0x00d9, 9}, // "011011001" - 20: {0x00da, 9}, // "011011010" - 21: {0x00db, 9}, // "011011011" - 22: {0x0098, 9}, // "010011000" - 23: {0x0099, 9}, // "010011001" - 24: {0x009a, 9}, // "010011010" - 25: {0x0018, 6}, // "011000" - 26: {0x009b, 9}, // "010011011" - 27: {0x0008, 11}, // "00000001000" - 28: {0x000c, 11}, // "00000001100" - 29: {0x000d, 11}, // "00000001101" - 30: {0x0012, 12}, // "000000010010" - 31: {0x0013, 12}, // "000000010011" - 32: {0x0014, 12}, // "000000010100" - 33: {0x0015, 12}, // "000000010101" - 34: {0x0016, 12}, // "000000010110" - 35: {0x0017, 12}, // "000000010111" - 36: {0x001c, 12}, // "000000011100" - 37: {0x001d, 12}, // "000000011101" - 38: {0x001e, 12}, // "000000011110" - 39: {0x001f, 12}, // "000000011111" -} - -// blackEncodeTable2 represents Table 2 for a black run. -var blackEncodeTable2 = [...]bitString{ - 0: {0x0037, 10}, // "0000110111" - 1: {0x0002, 3}, // "010" - 2: {0x0003, 2}, // "11" - 3: {0x0002, 2}, // "10" - 4: {0x0003, 3}, // "011" - 5: {0x0003, 4}, // "0011" - 6: {0x0002, 4}, // "0010" - 7: {0x0003, 5}, // "00011" - 8: {0x0005, 6}, // "000101" - 9: {0x0004, 6}, // "000100" - 10: {0x0004, 7}, // "0000100" - 11: {0x0005, 7}, // "0000101" - 12: {0x0007, 7}, // "0000111" - 13: {0x0004, 8}, // "00000100" - 14: {0x0007, 8}, // "00000111" - 15: {0x0018, 9}, // "000011000" - 16: {0x0017, 10}, // "0000010111" - 17: {0x0018, 10}, // "0000011000" - 18: {0x0008, 10}, // "0000001000" - 19: {0x0067, 11}, // "00001100111" - 20: {0x0068, 11}, // "00001101000" - 21: {0x006c, 11}, // "00001101100" - 22: {0x0037, 11}, // "00000110111" - 23: {0x0028, 11}, // "00000101000" - 24: {0x0017, 11}, // "00000010111" - 25: {0x0018, 11}, // "00000011000" - 26: {0x00ca, 12}, // "000011001010" - 27: {0x00cb, 12}, // "000011001011" - 28: {0x00cc, 12}, // "000011001100" - 29: {0x00cd, 12}, // "000011001101" - 30: {0x0068, 12}, // "000001101000" - 31: {0x0069, 12}, // "000001101001" - 32: {0x006a, 12}, // "000001101010" - 33: {0x006b, 12}, // "000001101011" - 34: {0x00d2, 12}, // "000011010010" - 35: {0x00d3, 12}, // "000011010011" - 36: {0x00d4, 12}, // "000011010100" - 37: {0x00d5, 12}, // "000011010101" - 38: {0x00d6, 12}, // "000011010110" - 39: {0x00d7, 12}, // "000011010111" - 40: {0x006c, 12}, // "000001101100" - 41: {0x006d, 12}, // "000001101101" - 42: {0x00da, 12}, // "000011011010" - 43: {0x00db, 12}, // "000011011011" - 44: {0x0054, 12}, // "000001010100" - 45: {0x0055, 12}, // "000001010101" - 46: {0x0056, 12}, // "000001010110" - 47: {0x0057, 12}, // "000001010111" - 48: {0x0064, 12}, // "000001100100" - 49: {0x0065, 12}, // "000001100101" - 50: {0x0052, 12}, // "000001010010" - 51: {0x0053, 12}, // "000001010011" - 52: {0x0024, 12}, // "000000100100" - 53: {0x0037, 12}, // "000000110111" - 54: {0x0038, 12}, // "000000111000" - 55: {0x0027, 12}, // "000000100111" - 56: {0x0028, 12}, // "000000101000" - 57: {0x0058, 12}, // "000001011000" - 58: {0x0059, 12}, // "000001011001" - 59: {0x002b, 12}, // "000000101011" - 60: {0x002c, 12}, // "000000101100" - 61: {0x005a, 12}, // "000001011010" - 62: {0x0066, 12}, // "000001100110" - 63: {0x0067, 12}, // "000001100111" -} - -// blackEncodeTable3 represents Table 3 for a black run. -var blackEncodeTable3 = [...]bitString{ - 0: {0x000f, 10}, // "0000001111" - 1: {0x00c8, 12}, // "000011001000" - 2: {0x00c9, 12}, // "000011001001" - 3: {0x005b, 12}, // "000001011011" - 4: {0x0033, 12}, // "000000110011" - 5: {0x0034, 12}, // "000000110100" - 6: {0x0035, 12}, // "000000110101" - 7: {0x006c, 13}, // "0000001101100" - 8: {0x006d, 13}, // "0000001101101" - 9: {0x004a, 13}, // "0000001001010" - 10: {0x004b, 13}, // "0000001001011" - 11: {0x004c, 13}, // "0000001001100" - 12: {0x004d, 13}, // "0000001001101" - 13: {0x0072, 13}, // "0000001110010" - 14: {0x0073, 13}, // "0000001110011" - 15: {0x0074, 13}, // "0000001110100" - 16: {0x0075, 13}, // "0000001110101" - 17: {0x0076, 13}, // "0000001110110" - 18: {0x0077, 13}, // "0000001110111" - 19: {0x0052, 13}, // "0000001010010" - 20: {0x0053, 13}, // "0000001010011" - 21: {0x0054, 13}, // "0000001010100" - 22: {0x0055, 13}, // "0000001010101" - 23: {0x005a, 13}, // "0000001011010" - 24: {0x005b, 13}, // "0000001011011" - 25: {0x0064, 13}, // "0000001100100" - 26: {0x0065, 13}, // "0000001100101" - 27: {0x0008, 11}, // "00000001000" - 28: {0x000c, 11}, // "00000001100" - 29: {0x000d, 11}, // "00000001101" - 30: {0x0012, 12}, // "000000010010" - 31: {0x0013, 12}, // "000000010011" - 32: {0x0014, 12}, // "000000010100" - 33: {0x0015, 12}, // "000000010101" - 34: {0x0016, 12}, // "000000010110" - 35: {0x0017, 12}, // "000000010111" - 36: {0x001c, 12}, // "000000011100" - 37: {0x001d, 12}, // "000000011101" - 38: {0x001e, 12}, // "000000011110" - 39: {0x001f, 12}, // "000000011111" -} - -// COPY PASTE table.go BEGIN - -const ( - modePass = iota // Pass - modeH // Horizontal - modeV0 // Vertical-0 - modeVR1 // Vertical-Right-1 - modeVR2 // Vertical-Right-2 - modeVR3 // Vertical-Right-3 - modeVL1 // Vertical-Left-1 - modeVL2 // Vertical-Left-2 - modeVL3 // Vertical-Left-3 - modeExt // Extension -) - -// COPY PASTE table.go END diff --git a/backend/vendor/golang.org/x/image/ccitt/writer.go b/backend/vendor/golang.org/x/image/ccitt/writer.go deleted file mode 100644 index 87130ab0..00000000 --- a/backend/vendor/golang.org/x/image/ccitt/writer.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ccitt - -import ( - "encoding/binary" - "io" -) - -type bitWriter struct { - w io.Writer - - // order is whether to process w's bytes LSB first or MSB first. - order Order - - // The high nBits bits of the bits field hold encoded bits to be written to w. - bits uint64 - nBits uint32 - - // bytes[:bw] holds encoded bytes not yet written to w. - // Overflow protection is ensured by using a multiple of 8 as bytes length. - bw uint32 - bytes [1024]uint8 -} - -// flushBits copies 64 bits from b.bits to b.bytes. If b.bytes is then full, it -// is written to b.w. -func (b *bitWriter) flushBits() error { - binary.BigEndian.PutUint64(b.bytes[b.bw:], b.bits) - b.bits = 0 - b.nBits = 0 - b.bw += 8 - if b.bw < uint32(len(b.bytes)) { - return nil - } - b.bw = 0 - if b.order != MSB { - reverseBitsWithinBytes(b.bytes[:]) - } - _, err := b.w.Write(b.bytes[:]) - return err -} - -// close finalizes a bitcode stream by writing any -// pending bits to bitWriter's underlying io.Writer. -func (b *bitWriter) close() error { - // Write any encoded bits to bytes. - if b.nBits > 0 { - binary.BigEndian.PutUint64(b.bytes[b.bw:], b.bits) - b.bw += (b.nBits + 7) >> 3 - } - - if b.order != MSB { - reverseBitsWithinBytes(b.bytes[:b.bw]) - } - - // Write b.bw bytes to b.w. - _, err := b.w.Write(b.bytes[:b.bw]) - return err -} - -// alignToByteBoundary rounds b.nBits up to a multiple of 8. -// If all 64 bits are used, flush them to bitWriter's bytes. -func (b *bitWriter) alignToByteBoundary() error { - if b.nBits = (b.nBits + 7) &^ 7; b.nBits == 64 { - return b.flushBits() - } - return nil -} - -// writeCode writes a variable length bitcode to b's underlying io.Writer. -func (b *bitWriter) writeCode(bs bitString) error { - bits := bs.bits - nBits := bs.nBits - if 64-b.nBits >= nBits { - // b.bits has sufficient room for storing nBits bits. - b.bits |= uint64(bits) << (64 - nBits - b.nBits) - b.nBits += nBits - if b.nBits == 64 { - return b.flushBits() - } - return nil - } - - // Number of leading bits that fill b.bits. - i := 64 - b.nBits - - // Fill b.bits then flush and write remaining bits. - b.bits |= uint64(bits) >> (nBits - i) - b.nBits = 64 - - if err := b.flushBits(); err != nil { - return err - } - - nBits -= i - b.bits = uint64(bits) << (64 - nBits) - b.nBits = nBits - return nil -} diff --git a/backend/vendor/golang.org/x/image/tiff/buffer.go b/backend/vendor/golang.org/x/image/tiff/buffer.go deleted file mode 100644 index d1801be4..00000000 --- a/backend/vendor/golang.org/x/image/tiff/buffer.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package tiff - -import "io" - -// buffer buffers an io.Reader to satisfy io.ReaderAt. -type buffer struct { - r io.Reader - buf []byte -} - -// fill reads data from b.r until the buffer contains at least end bytes. -func (b *buffer) fill(end int) error { - m := len(b.buf) - if end > m { - if end > cap(b.buf) { - newcap := 1024 - for newcap < end { - newcap *= 2 - } - newbuf := make([]byte, end, newcap) - copy(newbuf, b.buf) - b.buf = newbuf - } else { - b.buf = b.buf[:end] - } - if n, err := io.ReadFull(b.r, b.buf[m:end]); err != nil { - end = m + n - b.buf = b.buf[:end] - return err - } - } - return nil -} - -func (b *buffer) ReadAt(p []byte, off int64) (int, error) { - o := int(off) - end := o + len(p) - if int64(end) != off+int64(len(p)) { - return 0, io.ErrUnexpectedEOF - } - - err := b.fill(end) - return copy(p, b.buf[o:end]), err -} - -// Slice returns a slice of the underlying buffer. The slice contains -// n bytes starting at offset off. -func (b *buffer) Slice(off, n int) ([]byte, error) { - end := off + n - if err := b.fill(end); err != nil { - return nil, err - } - return b.buf[off:end], nil -} - -// newReaderAt converts an io.Reader into an io.ReaderAt. -func newReaderAt(r io.Reader) io.ReaderAt { - if ra, ok := r.(io.ReaderAt); ok { - return ra - } - return &buffer{ - r: r, - buf: make([]byte, 0, 1024), - } -} diff --git a/backend/vendor/golang.org/x/image/tiff/compress.go b/backend/vendor/golang.org/x/image/tiff/compress.go deleted file mode 100644 index 3f176f00..00000000 --- a/backend/vendor/golang.org/x/image/tiff/compress.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package tiff - -import ( - "bufio" - "io" -) - -type byteReader interface { - io.Reader - io.ByteReader -} - -// unpackBits decodes the PackBits-compressed data in src and returns the -// uncompressed data. -// -// The PackBits compression format is described in section 9 (p. 42) -// of the TIFF spec. -func unpackBits(r io.Reader) ([]byte, error) { - buf := make([]byte, 128) - dst := make([]byte, 0, 1024) - br, ok := r.(byteReader) - if !ok { - br = bufio.NewReader(r) - } - - for { - b, err := br.ReadByte() - if err != nil { - if err == io.EOF { - return dst, nil - } - return nil, err - } - code := int(int8(b)) - switch { - case code >= 0: - n, err := io.ReadFull(br, buf[:code+1]) - if err != nil { - return nil, err - } - dst = append(dst, buf[:n]...) - case code == -128: - // No-op. - default: - if b, err = br.ReadByte(); err != nil { - return nil, err - } - for j := 0; j < 1-code; j++ { - buf[j] = b - } - dst = append(dst, buf[:1-code]...) - } - } -} diff --git a/backend/vendor/golang.org/x/image/tiff/consts.go b/backend/vendor/golang.org/x/image/tiff/consts.go deleted file mode 100644 index 3e5f7f14..00000000 --- a/backend/vendor/golang.org/x/image/tiff/consts.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package tiff - -// A tiff image file contains one or more images. The metadata -// of each image is contained in an Image File Directory (IFD), -// which contains entries of 12 bytes each and is described -// on page 14-16 of the specification. An IFD entry consists of -// -// - a tag, which describes the signification of the entry, -// - the data type and length of the entry, -// - the data itself or a pointer to it if it is more than 4 bytes. -// -// The presence of a length means that each IFD is effectively an array. - -const ( - leHeader = "II\x2A\x00" // Header for little-endian files. - beHeader = "MM\x00\x2A" // Header for big-endian files. - - ifdLen = 12 // Length of an IFD entry in bytes. -) - -// Data types (p. 14-16 of the spec). -const ( - dtByte = 1 - dtASCII = 2 - dtShort = 3 - dtLong = 4 - dtRational = 5 -) - -// The length of one instance of each data type in bytes. -var lengths = [...]uint32{0, 1, 1, 2, 4, 8} - -// Tags (see p. 28-41 of the spec). -const ( - tImageWidth = 256 - tImageLength = 257 - tBitsPerSample = 258 - tCompression = 259 - tPhotometricInterpretation = 262 - - tFillOrder = 266 - - tStripOffsets = 273 - tSamplesPerPixel = 277 - tRowsPerStrip = 278 - tStripByteCounts = 279 - - tT4Options = 292 // CCITT Group 3 options, a set of 32 flag bits. - tT6Options = 293 // CCITT Group 4 options, a set of 32 flag bits. - - tTileWidth = 322 - tTileLength = 323 - tTileOffsets = 324 - tTileByteCounts = 325 - - tXResolution = 282 - tYResolution = 283 - tResolutionUnit = 296 - - tPredictor = 317 - tColorMap = 320 - tExtraSamples = 338 - tSampleFormat = 339 -) - -// Compression types (defined in various places in the spec and supplements). -const ( - cNone = 1 - cCCITT = 2 - cG3 = 3 // Group 3 Fax. - cG4 = 4 // Group 4 Fax. - cLZW = 5 - cJPEGOld = 6 // Superseded by cJPEG. - cJPEG = 7 - cDeflate = 8 // zlib compression. - cPackBits = 32773 - cDeflateOld = 32946 // Superseded by cDeflate. -) - -// Photometric interpretation values (see p. 37 of the spec). -const ( - pWhiteIsZero = 0 - pBlackIsZero = 1 - pRGB = 2 - pPaletted = 3 - pTransMask = 4 // transparency mask - pCMYK = 5 - pYCbCr = 6 - pCIELab = 8 -) - -// Values for the tPredictor tag (page 64-65 of the spec). -const ( - prNone = 1 - prHorizontal = 2 -) - -// Values for the tResolutionUnit tag (page 18). -const ( - resNone = 1 - resPerInch = 2 // Dots per inch. - resPerCM = 3 // Dots per centimeter. -) - -// imageMode represents the mode of the image. -type imageMode int - -const ( - mBilevel imageMode = iota - mPaletted - mGray - mGrayInvert - mRGB - mRGBA - mNRGBA - mCMYK -) - -// CompressionType describes the type of compression used in Options. -type CompressionType int - -// Constants for supported compression types. -const ( - Uncompressed CompressionType = iota - Deflate - LZW - CCITTGroup3 - CCITTGroup4 -) - -// specValue returns the compression type constant from the TIFF spec that -// is equivalent to c. -func (c CompressionType) specValue() uint32 { - switch c { - case LZW: - return cLZW - case Deflate: - return cDeflate - case CCITTGroup3: - return cG3 - case CCITTGroup4: - return cG4 - } - return cNone -} diff --git a/backend/vendor/golang.org/x/image/tiff/fuzz.go b/backend/vendor/golang.org/x/image/tiff/fuzz.go deleted file mode 100644 index b27c5400..00000000 --- a/backend/vendor/golang.org/x/image/tiff/fuzz.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gofuzz -// +build gofuzz - -package tiff - -import "bytes" - -func Fuzz(data []byte) int { - cfg, err := DecodeConfig(bytes.NewReader(data)) - if err != nil { - return 0 - } - if cfg.Width*cfg.Height > 1e6 { - return 0 - } - img, err := Decode(bytes.NewReader(data)) - if err != nil { - return 0 - } - var w bytes.Buffer - err = Encode(&w, img, nil) - if err != nil { - panic(err) - } - return 1 -} diff --git a/backend/vendor/golang.org/x/image/tiff/lzw/reader.go b/backend/vendor/golang.org/x/image/tiff/lzw/reader.go deleted file mode 100644 index 0aae475a..00000000 --- a/backend/vendor/golang.org/x/image/tiff/lzw/reader.go +++ /dev/null @@ -1,272 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package lzw implements the Lempel-Ziv-Welch compressed data format, -// described in T. A. Welch, “A Technique for High-Performance Data -// Compression”, Computer, 17(6) (June 1984), pp 8-19. -// -// In particular, it implements LZW as used by the TIFF file format, including -// an "off by one" algorithmic difference when compared to standard LZW. -package lzw // import "golang.org/x/image/tiff/lzw" - -/* -This file was branched from src/pkg/compress/lzw/reader.go in the -standard library. Differences from the original are marked with "NOTE". - -The tif_lzw.c file in the libtiff C library has this comment: - ----- -The 5.0 spec describes a different algorithm than Aldus -implements. Specifically, Aldus does code length transitions -one code earlier than should be done (for real LZW). -Earlier versions of this library implemented the correct -LZW algorithm, but emitted codes in a bit order opposite -to the TIFF spec. Thus, to maintain compatibility w/ Aldus -we interpret MSB-LSB ordered codes to be images written w/ -old versions of this library, but otherwise adhere to the -Aldus "off by one" algorithm. ----- - -The Go code doesn't read (invalid) TIFF files written by old versions of -libtiff, but the LZW algorithm in this package still differs from the one in -Go's standard package library to accommodate this "off by one" in valid TIFFs. -*/ - -import ( - "bufio" - "errors" - "fmt" - "io" -) - -// Order specifies the bit ordering in an LZW data stream. -type Order int - -const ( - // LSB means Least Significant Bits first, as used in the GIF file format. - LSB Order = iota - // MSB means Most Significant Bits first, as used in the TIFF and PDF - // file formats. - MSB -) - -const ( - maxWidth = 12 - decoderInvalidCode = 0xffff - flushBuffer = 1 << maxWidth -) - -// decoder is the state from which the readXxx method converts a byte -// stream into a code stream. -type decoder struct { - r io.ByteReader - bits uint32 - nBits uint - width uint - read func(*decoder) (uint16, error) // readLSB or readMSB - litWidth int // width in bits of literal codes - err error - - // The first 1<= 1<>= d.width - d.nBits -= d.width - return code, nil -} - -// readMSB returns the next code for "Most Significant Bits first" data. -func (d *decoder) readMSB() (uint16, error) { - for d.nBits < d.width { - x, err := d.r.ReadByte() - if err != nil { - return 0, err - } - d.bits |= uint32(x) << (24 - d.nBits) - d.nBits += 8 - } - code := uint16(d.bits >> (32 - d.width)) - d.bits <<= d.width - d.nBits -= d.width - return code, nil -} - -func (d *decoder) Read(b []byte) (int, error) { - for { - if len(d.toRead) > 0 { - n := copy(b, d.toRead) - d.toRead = d.toRead[n:] - return n, nil - } - if d.err != nil { - return 0, d.err - } - d.decode() - } -} - -// decode decompresses bytes from r and leaves them in d.toRead. -// read specifies how to decode bytes into codes. -// litWidth is the width in bits of literal codes. -func (d *decoder) decode() { - // Loop over the code stream, converting codes into decompressed bytes. -loop: - for { - code, err := d.read(d) - if err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - d.err = err - break - } - switch { - case code < d.clear: - // We have a literal code. - d.output[d.o] = uint8(code) - d.o++ - if d.last != decoderInvalidCode { - // Save what the hi code expands to. - d.suffix[d.hi] = uint8(code) - d.prefix[d.hi] = d.last - } - case code == d.clear: - d.width = 1 + uint(d.litWidth) - d.hi = d.eof - d.overflow = 1 << d.width - d.last = decoderInvalidCode - continue - case code == d.eof: - d.err = io.EOF - break loop - case code <= d.hi: - c, i := code, len(d.output)-1 - if code == d.hi && d.last != decoderInvalidCode { - // code == hi is a special case which expands to the last expansion - // followed by the head of the last expansion. To find the head, we walk - // the prefix chain until we find a literal code. - c = d.last - for c >= d.clear { - c = d.prefix[c] - } - d.output[i] = uint8(c) - i-- - c = d.last - } - // Copy the suffix chain into output and then write that to w. - for c >= d.clear { - d.output[i] = d.suffix[c] - i-- - c = d.prefix[c] - } - d.output[i] = uint8(c) - d.o += copy(d.output[d.o:], d.output[i:]) - if d.last != decoderInvalidCode { - // Save what the hi code expands to. - d.suffix[d.hi] = uint8(c) - d.prefix[d.hi] = d.last - } - default: - d.err = errors.New("lzw: invalid code") - break loop - } - d.last, d.hi = code, d.hi+1 - if d.hi+1 >= d.overflow { // NOTE: the "+1" is where TIFF's LZW differs from the standard algorithm. - if d.width == maxWidth { - d.last = decoderInvalidCode - } else { - d.width++ - d.overflow <<= 1 - } - } - if d.o >= flushBuffer { - break - } - } - // Flush pending output. - d.toRead = d.output[:d.o] - d.o = 0 -} - -var errClosed = errors.New("lzw: reader/writer is closed") - -func (d *decoder) Close() error { - d.err = errClosed // in case any Reads come along - return nil -} - -// NewReader creates a new io.ReadCloser. -// Reads from the returned io.ReadCloser read and decompress data from r. -// If r does not also implement io.ByteReader, -// the decompressor may read more data than necessary from r. -// It is the caller's responsibility to call Close on the ReadCloser when -// finished reading. -// The number of bits to use for literal codes, litWidth, must be in the -// range [2,8] and is typically 8. It must equal the litWidth -// used during compression. -func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser { - d := new(decoder) - switch order { - case LSB: - d.read = (*decoder).readLSB - case MSB: - d.read = (*decoder).readMSB - default: - d.err = errors.New("lzw: unknown order") - return d - } - if litWidth < 2 || 8 < litWidth { - d.err = fmt.Errorf("lzw: litWidth %d out of range", litWidth) - return d - } - if br, ok := r.(io.ByteReader); ok { - d.r = br - } else { - d.r = bufio.NewReader(r) - } - d.litWidth = litWidth - d.width = 1 + uint(litWidth) - d.clear = uint16(1) << uint(litWidth) - d.eof, d.hi = d.clear+1, d.clear+1 - d.overflow = uint16(1) << d.width - d.last = decoderInvalidCode - - return d -} diff --git a/backend/vendor/golang.org/x/image/tiff/reader.go b/backend/vendor/golang.org/x/image/tiff/reader.go deleted file mode 100644 index 45cc056f..00000000 --- a/backend/vendor/golang.org/x/image/tiff/reader.go +++ /dev/null @@ -1,754 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package tiff implements a TIFF image decoder and encoder. -// -// The TIFF specification is at http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf -package tiff // import "golang.org/x/image/tiff" - -import ( - "compress/zlib" - "encoding/binary" - "fmt" - "image" - "image/color" - "io" - "io/ioutil" - "math" - - "golang.org/x/image/ccitt" - "golang.org/x/image/tiff/lzw" -) - -// A FormatError reports that the input is not a valid TIFF image. -type FormatError string - -func (e FormatError) Error() string { - return "tiff: invalid format: " + string(e) -} - -// An UnsupportedError reports that the input uses a valid but -// unimplemented feature. -type UnsupportedError string - -func (e UnsupportedError) Error() string { - return "tiff: unsupported feature: " + string(e) -} - -var errNoPixels = FormatError("not enough pixel data") - -const maxChunkSize = 10 << 20 // 10M - -// safeReadtAt is a verbatim copy of internal/saferio.ReadDataAt from the -// standard library, which is used to read data from a reader using a length -// provided by untrusted data, without allocating the entire slice ahead of time -// if it is large (>maxChunkSize). This allows us to avoid allocating giant -// slices before learning that we can't actually read that much data from the -// reader. -func safeReadAt(r io.ReaderAt, n uint64, off int64) ([]byte, error) { - if int64(n) < 0 || n != uint64(int(n)) { - // n is too large to fit in int, so we can't allocate - // a buffer large enough. Treat this as a read failure. - return nil, io.ErrUnexpectedEOF - } - - if n < maxChunkSize { - buf := make([]byte, n) - _, err := r.ReadAt(buf, off) - if err != nil { - // io.SectionReader can return EOF for n == 0, - // but for our purposes that is a success. - if err != io.EOF || n > 0 { - return nil, err - } - } - return buf, nil - } - - var buf []byte - buf1 := make([]byte, maxChunkSize) - for n > 0 { - next := n - if next > maxChunkSize { - next = maxChunkSize - } - _, err := r.ReadAt(buf1[:next], off) - if err != nil { - return nil, err - } - buf = append(buf, buf1[:next]...) - n -= next - off += int64(next) - } - return buf, nil -} - -type decoder struct { - r io.ReaderAt - byteOrder binary.ByteOrder - config image.Config - mode imageMode - bpp uint - features map[int][]uint - palette []color.Color - - buf []byte - off int // Current offset in buf. - v uint32 // Buffer value for reading with arbitrary bit depths. - nbits uint // Remaining number of bits in v. -} - -// firstVal returns the first uint of the features entry with the given tag, -// or 0 if the tag does not exist. -func (d *decoder) firstVal(tag int) uint { - f := d.features[tag] - if len(f) == 0 { - return 0 - } - return f[0] -} - -// ifdUint decodes the IFD entry in p, which must be of the Byte, Short -// or Long type, and returns the decoded uint values. -func (d *decoder) ifdUint(p []byte) (u []uint, err error) { - var raw []byte - if len(p) < ifdLen { - return nil, FormatError("bad IFD entry") - } - - datatype := d.byteOrder.Uint16(p[2:4]) - if dt := int(datatype); dt <= 0 || dt >= len(lengths) { - return nil, UnsupportedError("IFD entry datatype") - } - - count := d.byteOrder.Uint32(p[4:8]) - if count > math.MaxInt32/lengths[datatype] { - return nil, FormatError("IFD data too large") - } - if datalen := lengths[datatype] * count; datalen > 4 { - // The IFD contains a pointer to the real value. - raw, err = safeReadAt(d.r, uint64(datalen), int64(d.byteOrder.Uint32(p[8:12]))) - } else { - raw = p[8 : 8+datalen] - } - if err != nil { - return nil, err - } - - u = make([]uint, count) - switch datatype { - case dtByte: - for i := uint32(0); i < count; i++ { - u[i] = uint(raw[i]) - } - case dtShort: - for i := uint32(0); i < count; i++ { - u[i] = uint(d.byteOrder.Uint16(raw[2*i : 2*(i+1)])) - } - case dtLong: - for i := uint32(0); i < count; i++ { - u[i] = uint(d.byteOrder.Uint32(raw[4*i : 4*(i+1)])) - } - default: - return nil, UnsupportedError("data type") - } - return u, nil -} - -// parseIFD decides whether the IFD entry in p is "interesting" and -// stows away the data in the decoder. It returns the tag number of the -// entry and an error, if any. -func (d *decoder) parseIFD(p []byte) (int, error) { - tag := d.byteOrder.Uint16(p[0:2]) - switch tag { - case tBitsPerSample, - tExtraSamples, - tPhotometricInterpretation, - tCompression, - tPredictor, - tStripOffsets, - tStripByteCounts, - tRowsPerStrip, - tTileWidth, - tTileLength, - tTileOffsets, - tTileByteCounts, - tImageLength, - tImageWidth, - tFillOrder, - tT4Options, - tT6Options: - val, err := d.ifdUint(p) - if err != nil { - return 0, err - } - d.features[int(tag)] = val - case tColorMap: - val, err := d.ifdUint(p) - if err != nil { - return 0, err - } - numcolors := len(val) / 3 - if len(val)%3 != 0 || numcolors <= 0 || numcolors > 256 { - return 0, FormatError("bad ColorMap length") - } - d.palette = make([]color.Color, numcolors) - for i := 0; i < numcolors; i++ { - d.palette[i] = color.RGBA64{ - uint16(val[i]), - uint16(val[i+numcolors]), - uint16(val[i+2*numcolors]), - 0xffff, - } - } - case tSampleFormat: - // Page 27 of the spec: If the SampleFormat is present and - // the value is not 1 [= unsigned integer data], a Baseline - // TIFF reader that cannot handle the SampleFormat value - // must terminate the import process gracefully. - val, err := d.ifdUint(p) - if err != nil { - return 0, err - } - for _, v := range val { - if v != 1 { - return 0, UnsupportedError("sample format") - } - } - } - return int(tag), nil -} - -// readBits reads n bits from the internal buffer starting at the current offset. -func (d *decoder) readBits(n uint) (v uint32, ok bool) { - for d.nbits < n { - d.v <<= 8 - if d.off >= len(d.buf) { - return 0, false - } - d.v |= uint32(d.buf[d.off]) - d.off++ - d.nbits += 8 - } - d.nbits -= n - rv := d.v >> d.nbits - d.v &^= rv << d.nbits - return rv, true -} - -// flushBits discards the unread bits in the buffer used by readBits. -// It is used at the end of a line. -func (d *decoder) flushBits() { - d.v = 0 - d.nbits = 0 -} - -// minInt returns the smaller of x or y. -func minInt(a, b int) int { - if a <= b { - return a - } - return b -} - -// decode decodes the raw data of an image. -// It reads from d.buf and writes the strip or tile into dst. -func (d *decoder) decode(dst image.Image, xmin, ymin, xmax, ymax int) error { - d.off = 0 - - // Apply horizontal predictor if necessary. - // In this case, p contains the color difference to the preceding pixel. - // See page 64-65 of the spec. - if d.firstVal(tPredictor) == prHorizontal { - switch d.bpp { - case 16: - var off int - n := 2 * len(d.features[tBitsPerSample]) // bytes per sample times samples per pixel - for y := ymin; y < ymax; y++ { - off += n - for x := 0; x < (xmax-xmin-1)*n; x += 2 { - if off+2 > len(d.buf) { - return errNoPixels - } - v0 := d.byteOrder.Uint16(d.buf[off-n : off-n+2]) - v1 := d.byteOrder.Uint16(d.buf[off : off+2]) - d.byteOrder.PutUint16(d.buf[off:off+2], v1+v0) - off += 2 - } - } - case 8: - var off int - n := 1 * len(d.features[tBitsPerSample]) // bytes per sample times samples per pixel - for y := ymin; y < ymax; y++ { - off += n - for x := 0; x < (xmax-xmin-1)*n; x++ { - if off >= len(d.buf) { - return errNoPixels - } - d.buf[off] += d.buf[off-n] - off++ - } - } - case 1: - return UnsupportedError("horizontal predictor with 1 BitsPerSample") - } - } - - rMaxX := minInt(xmax, dst.Bounds().Max.X) - rMaxY := minInt(ymax, dst.Bounds().Max.Y) - switch d.mode { - case mGray, mGrayInvert: - if d.bpp == 16 { - img := dst.(*image.Gray16) - for y := ymin; y < rMaxY; y++ { - for x := xmin; x < rMaxX; x++ { - if d.off+2 > len(d.buf) { - return errNoPixels - } - v := d.byteOrder.Uint16(d.buf[d.off : d.off+2]) - d.off += 2 - if d.mode == mGrayInvert { - v = 0xffff - v - } - img.SetGray16(x, y, color.Gray16{v}) - } - if rMaxX == img.Bounds().Max.X { - d.off += 2 * (xmax - img.Bounds().Max.X) - } - } - } else { - img := dst.(*image.Gray) - max := uint32((1 << d.bpp) - 1) - for y := ymin; y < rMaxY; y++ { - for x := xmin; x < rMaxX; x++ { - v, ok := d.readBits(d.bpp) - if !ok { - return errNoPixels - } - v = v * 0xff / max - if d.mode == mGrayInvert { - v = 0xff - v - } - img.SetGray(x, y, color.Gray{uint8(v)}) - } - d.flushBits() - } - } - case mPaletted: - img := dst.(*image.Paletted) - for y := ymin; y < rMaxY; y++ { - for x := xmin; x < rMaxX; x++ { - v, ok := d.readBits(d.bpp) - if !ok { - return errNoPixels - } - img.SetColorIndex(x, y, uint8(v)) - } - d.flushBits() - } - case mRGB: - if d.bpp == 16 { - img := dst.(*image.RGBA64) - for y := ymin; y < rMaxY; y++ { - for x := xmin; x < rMaxX; x++ { - if d.off+6 > len(d.buf) { - return errNoPixels - } - r := d.byteOrder.Uint16(d.buf[d.off+0 : d.off+2]) - g := d.byteOrder.Uint16(d.buf[d.off+2 : d.off+4]) - b := d.byteOrder.Uint16(d.buf[d.off+4 : d.off+6]) - d.off += 6 - img.SetRGBA64(x, y, color.RGBA64{r, g, b, 0xffff}) - } - } - } else { - img := dst.(*image.RGBA) - for y := ymin; y < rMaxY; y++ { - min := img.PixOffset(xmin, y) - max := img.PixOffset(rMaxX, y) - off := (y - ymin) * (xmax - xmin) * 3 - for i := min; i < max; i += 4 { - if off+3 > len(d.buf) { - return errNoPixels - } - img.Pix[i+0] = d.buf[off+0] - img.Pix[i+1] = d.buf[off+1] - img.Pix[i+2] = d.buf[off+2] - img.Pix[i+3] = 0xff - off += 3 - } - } - } - case mNRGBA: - if d.bpp == 16 { - img := dst.(*image.NRGBA64) - for y := ymin; y < rMaxY; y++ { - for x := xmin; x < rMaxX; x++ { - if d.off+8 > len(d.buf) { - return errNoPixels - } - r := d.byteOrder.Uint16(d.buf[d.off+0 : d.off+2]) - g := d.byteOrder.Uint16(d.buf[d.off+2 : d.off+4]) - b := d.byteOrder.Uint16(d.buf[d.off+4 : d.off+6]) - a := d.byteOrder.Uint16(d.buf[d.off+6 : d.off+8]) - d.off += 8 - img.SetNRGBA64(x, y, color.NRGBA64{r, g, b, a}) - } - } - } else { - img := dst.(*image.NRGBA) - for y := ymin; y < rMaxY; y++ { - min := img.PixOffset(xmin, y) - max := img.PixOffset(rMaxX, y) - i0, i1 := (y-ymin)*(xmax-xmin)*4, (y-ymin+1)*(xmax-xmin)*4 - if i1 > len(d.buf) { - return errNoPixels - } - copy(img.Pix[min:max], d.buf[i0:i1]) - } - } - case mRGBA: - if d.bpp == 16 { - img := dst.(*image.RGBA64) - for y := ymin; y < rMaxY; y++ { - for x := xmin; x < rMaxX; x++ { - if d.off+8 > len(d.buf) { - return errNoPixels - } - r := d.byteOrder.Uint16(d.buf[d.off+0 : d.off+2]) - g := d.byteOrder.Uint16(d.buf[d.off+2 : d.off+4]) - b := d.byteOrder.Uint16(d.buf[d.off+4 : d.off+6]) - a := d.byteOrder.Uint16(d.buf[d.off+6 : d.off+8]) - d.off += 8 - img.SetRGBA64(x, y, color.RGBA64{r, g, b, a}) - } - } - } else { - img := dst.(*image.RGBA) - for y := ymin; y < rMaxY; y++ { - min := img.PixOffset(xmin, y) - max := img.PixOffset(rMaxX, y) - i0, i1 := (y-ymin)*(xmax-xmin)*4, (y-ymin+1)*(xmax-xmin)*4 - if i1 > len(d.buf) { - return errNoPixels - } - copy(img.Pix[min:max], d.buf[i0:i1]) - } - } - } - - return nil -} - -func newDecoder(r io.Reader) (*decoder, error) { - d := &decoder{ - r: newReaderAt(r), - features: make(map[int][]uint), - } - - p := make([]byte, 8) - if _, err := d.r.ReadAt(p, 0); err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return nil, err - } - switch string(p[0:4]) { - case leHeader: - d.byteOrder = binary.LittleEndian - case beHeader: - d.byteOrder = binary.BigEndian - default: - return nil, FormatError("malformed header") - } - - ifdOffset := int64(d.byteOrder.Uint32(p[4:8])) - - // The first two bytes contain the number of entries (12 bytes each). - if _, err := d.r.ReadAt(p[0:2], ifdOffset); err != nil { - return nil, err - } - numItems := int(d.byteOrder.Uint16(p[0:2])) - - // All IFD entries are read in one chunk. - var err error - p, err = safeReadAt(d.r, uint64(ifdLen*numItems), ifdOffset+2) - if err != nil { - return nil, err - } - - prevTag := -1 - for i := 0; i < len(p); i += ifdLen { - tag, err := d.parseIFD(p[i : i+ifdLen]) - if err != nil { - return nil, err - } - if tag <= prevTag { - return nil, FormatError("tags are not sorted in ascending order") - } - prevTag = tag - } - - d.config.Width = int(d.firstVal(tImageWidth)) - d.config.Height = int(d.firstVal(tImageLength)) - - if _, ok := d.features[tBitsPerSample]; !ok { - // Default is 1 per specification. - d.features[tBitsPerSample] = []uint{1} - } - d.bpp = d.firstVal(tBitsPerSample) - switch d.bpp { - case 0: - return nil, FormatError("BitsPerSample must not be 0") - case 1, 8, 16: - // Nothing to do, these are accepted by this implementation. - default: - return nil, UnsupportedError(fmt.Sprintf("BitsPerSample of %v", d.bpp)) - } - - // Determine the image mode. - switch d.firstVal(tPhotometricInterpretation) { - case pRGB: - if d.bpp == 16 { - for _, b := range d.features[tBitsPerSample] { - if b != 16 { - return nil, FormatError("wrong number of samples for 16bit RGB") - } - } - } else { - for _, b := range d.features[tBitsPerSample] { - if b != 8 { - return nil, FormatError("wrong number of samples for 8bit RGB") - } - } - } - // RGB images normally have 3 samples per pixel. - // If there are more, ExtraSamples (p. 31-32 of the spec) - // gives their meaning (usually an alpha channel). - // - // This implementation does not support extra samples - // of an unspecified type. - switch len(d.features[tBitsPerSample]) { - case 3: - d.mode = mRGB - if d.bpp == 16 { - d.config.ColorModel = color.RGBA64Model - } else { - d.config.ColorModel = color.RGBAModel - } - case 4: - switch d.firstVal(tExtraSamples) { - case 1: - d.mode = mRGBA - if d.bpp == 16 { - d.config.ColorModel = color.RGBA64Model - } else { - d.config.ColorModel = color.RGBAModel - } - case 2: - d.mode = mNRGBA - if d.bpp == 16 { - d.config.ColorModel = color.NRGBA64Model - } else { - d.config.ColorModel = color.NRGBAModel - } - default: - return nil, FormatError("wrong number of samples for RGB") - } - default: - return nil, FormatError("wrong number of samples for RGB") - } - case pPaletted: - d.mode = mPaletted - d.config.ColorModel = color.Palette(d.palette) - case pWhiteIsZero: - d.mode = mGrayInvert - if d.bpp == 16 { - d.config.ColorModel = color.Gray16Model - } else { - d.config.ColorModel = color.GrayModel - } - case pBlackIsZero: - d.mode = mGray - if d.bpp == 16 { - d.config.ColorModel = color.Gray16Model - } else { - d.config.ColorModel = color.GrayModel - } - default: - return nil, UnsupportedError("color model") - } - - return d, nil -} - -// DecodeConfig returns the color model and dimensions of a TIFF image without -// decoding the entire image. -func DecodeConfig(r io.Reader) (image.Config, error) { - d, err := newDecoder(r) - if err != nil { - return image.Config{}, err - } - return d.config, nil -} - -func ccittFillOrder(tiffFillOrder uint) ccitt.Order { - if tiffFillOrder == 2 { - return ccitt.LSB - } - return ccitt.MSB -} - -// Decode reads a TIFF image from r and returns it as an image.Image. -// The type of Image returned depends on the contents of the TIFF. -func Decode(r io.Reader) (img image.Image, err error) { - d, err := newDecoder(r) - if err != nil { - return - } - - blockPadding := false - blockWidth := d.config.Width - blockHeight := d.config.Height - blocksAcross := 1 - blocksDown := 1 - - if d.config.Width == 0 { - blocksAcross = 0 - } - if d.config.Height == 0 { - blocksDown = 0 - } - - var blockOffsets, blockCounts []uint - - if int(d.firstVal(tTileWidth)) != 0 { - blockPadding = true - - blockWidth = int(d.firstVal(tTileWidth)) - blockHeight = int(d.firstVal(tTileLength)) - - if blockWidth != 0 { - blocksAcross = (d.config.Width + blockWidth - 1) / blockWidth - } - if blockHeight != 0 { - blocksDown = (d.config.Height + blockHeight - 1) / blockHeight - } - - blockCounts = d.features[tTileByteCounts] - blockOffsets = d.features[tTileOffsets] - - } else { - if int(d.firstVal(tRowsPerStrip)) != 0 { - blockHeight = int(d.firstVal(tRowsPerStrip)) - } - - if blockHeight != 0 { - blocksDown = (d.config.Height + blockHeight - 1) / blockHeight - } - - blockOffsets = d.features[tStripOffsets] - blockCounts = d.features[tStripByteCounts] - } - - // Check if we have the right number of strips/tiles, offsets and counts. - if n := blocksAcross * blocksDown; len(blockOffsets) < n || len(blockCounts) < n { - return nil, FormatError("inconsistent header") - } - - imgRect := image.Rect(0, 0, d.config.Width, d.config.Height) - switch d.mode { - case mGray, mGrayInvert: - if d.bpp == 16 { - img = image.NewGray16(imgRect) - } else { - img = image.NewGray(imgRect) - } - case mPaletted: - img = image.NewPaletted(imgRect, d.palette) - case mNRGBA: - if d.bpp == 16 { - img = image.NewNRGBA64(imgRect) - } else { - img = image.NewNRGBA(imgRect) - } - case mRGB, mRGBA: - if d.bpp == 16 { - img = image.NewRGBA64(imgRect) - } else { - img = image.NewRGBA(imgRect) - } - } - - for i := 0; i < blocksAcross; i++ { - blkW := blockWidth - if !blockPadding && i == blocksAcross-1 && d.config.Width%blockWidth != 0 { - blkW = d.config.Width % blockWidth - } - for j := 0; j < blocksDown; j++ { - blkH := blockHeight - if !blockPadding && j == blocksDown-1 && d.config.Height%blockHeight != 0 { - blkH = d.config.Height % blockHeight - } - offset := int64(blockOffsets[j*blocksAcross+i]) - n := int64(blockCounts[j*blocksAcross+i]) - switch d.firstVal(tCompression) { - - // According to the spec, Compression does not have a default value, - // but some tools interpret a missing Compression value as none so we do - // the same. - case cNone, 0: - if b, ok := d.r.(*buffer); ok { - d.buf, err = b.Slice(int(offset), int(n)) - } else { - d.buf, err = safeReadAt(d.r, uint64(n), offset) - } - case cG3: - inv := d.firstVal(tPhotometricInterpretation) == pWhiteIsZero - order := ccittFillOrder(d.firstVal(tFillOrder)) - r := ccitt.NewReader(io.NewSectionReader(d.r, offset, n), order, ccitt.Group3, blkW, blkH, &ccitt.Options{Invert: inv, Align: false}) - d.buf, err = ioutil.ReadAll(r) - case cG4: - inv := d.firstVal(tPhotometricInterpretation) == pWhiteIsZero - order := ccittFillOrder(d.firstVal(tFillOrder)) - r := ccitt.NewReader(io.NewSectionReader(d.r, offset, n), order, ccitt.Group4, blkW, blkH, &ccitt.Options{Invert: inv, Align: false}) - d.buf, err = ioutil.ReadAll(r) - case cLZW: - r := lzw.NewReader(io.NewSectionReader(d.r, offset, n), lzw.MSB, 8) - d.buf, err = ioutil.ReadAll(r) - r.Close() - case cDeflate, cDeflateOld: - var r io.ReadCloser - r, err = zlib.NewReader(io.NewSectionReader(d.r, offset, n)) - if err != nil { - return nil, err - } - d.buf, err = ioutil.ReadAll(r) - r.Close() - case cPackBits: - d.buf, err = unpackBits(io.NewSectionReader(d.r, offset, n)) - default: - err = UnsupportedError(fmt.Sprintf("compression value %d", d.firstVal(tCompression))) - } - if err != nil { - return nil, err - } - - xmin := i * blockWidth - ymin := j * blockHeight - xmax := xmin + blkW - ymax := ymin + blkH - err = d.decode(img, xmin, ymin, xmax, ymax) - if err != nil { - return nil, err - } - } - } - return -} - -func init() { - image.RegisterFormat("tiff", leHeader, Decode, DecodeConfig) - image.RegisterFormat("tiff", beHeader, Decode, DecodeConfig) -} diff --git a/backend/vendor/golang.org/x/image/tiff/writer.go b/backend/vendor/golang.org/x/image/tiff/writer.go deleted file mode 100644 index 5d461841..00000000 --- a/backend/vendor/golang.org/x/image/tiff/writer.go +++ /dev/null @@ -1,441 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package tiff - -import ( - "bytes" - "compress/zlib" - "encoding/binary" - "errors" - "image" - "io" - "sort" -) - -// The TIFF format allows to choose the order of the different elements freely. -// The basic structure of a TIFF file written by this package is: -// -// 1. Header (8 bytes). -// 2. Image data. -// 3. Image File Directory (IFD). -// 4. "Pointer area" for larger entries in the IFD. - -// We only write little-endian TIFF files. -var enc = binary.LittleEndian - -// An ifdEntry is a single entry in an Image File Directory. -// A value of type dtRational is composed of two 32-bit values, -// thus data contains two uints (numerator and denominator) for a single number. -type ifdEntry struct { - tag int - datatype int - data []uint32 -} - -func (e ifdEntry) putData(p []byte) { - for _, d := range e.data { - switch e.datatype { - case dtByte, dtASCII: - p[0] = byte(d) - p = p[1:] - case dtShort: - enc.PutUint16(p, uint16(d)) - p = p[2:] - case dtLong, dtRational: - enc.PutUint32(p, uint32(d)) - p = p[4:] - } - } -} - -type byTag []ifdEntry - -func (d byTag) Len() int { return len(d) } -func (d byTag) Less(i, j int) bool { return d[i].tag < d[j].tag } -func (d byTag) Swap(i, j int) { d[i], d[j] = d[j], d[i] } - -func encodeGray(w io.Writer, pix []uint8, dx, dy, stride int, predictor bool) error { - if !predictor { - return writePix(w, pix, dy, dx, stride) - } - buf := make([]byte, dx) - for y := 0; y < dy; y++ { - min := y*stride + 0 - max := y*stride + dx - off := 0 - var v0 uint8 - for i := min; i < max; i++ { - v1 := pix[i] - buf[off] = v1 - v0 - v0 = v1 - off++ - } - if _, err := w.Write(buf); err != nil { - return err - } - } - return nil -} - -func encodeGray16(w io.Writer, pix []uint8, dx, dy, stride int, predictor bool) error { - buf := make([]byte, dx*2) - for y := 0; y < dy; y++ { - min := y*stride + 0 - max := y*stride + dx*2 - off := 0 - var v0 uint16 - for i := min; i < max; i += 2 { - // An image.Gray16's Pix is in big-endian order. - v1 := uint16(pix[i])<<8 | uint16(pix[i+1]) - if predictor { - v0, v1 = v1, v1-v0 - } - // We only write little-endian TIFF files. - buf[off+0] = byte(v1) - buf[off+1] = byte(v1 >> 8) - off += 2 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - return nil -} - -func encodeRGBA(w io.Writer, pix []uint8, dx, dy, stride int, predictor bool) error { - if !predictor { - return writePix(w, pix, dy, dx*4, stride) - } - buf := make([]byte, dx*4) - for y := 0; y < dy; y++ { - min := y*stride + 0 - max := y*stride + dx*4 - off := 0 - var r0, g0, b0, a0 uint8 - for i := min; i < max; i += 4 { - r1, g1, b1, a1 := pix[i+0], pix[i+1], pix[i+2], pix[i+3] - buf[off+0] = r1 - r0 - buf[off+1] = g1 - g0 - buf[off+2] = b1 - b0 - buf[off+3] = a1 - a0 - off += 4 - r0, g0, b0, a0 = r1, g1, b1, a1 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - return nil -} - -func encodeRGBA64(w io.Writer, pix []uint8, dx, dy, stride int, predictor bool) error { - buf := make([]byte, dx*8) - for y := 0; y < dy; y++ { - min := y*stride + 0 - max := y*stride + dx*8 - off := 0 - var r0, g0, b0, a0 uint16 - for i := min; i < max; i += 8 { - // An image.RGBA64's Pix is in big-endian order. - r1 := uint16(pix[i+0])<<8 | uint16(pix[i+1]) - g1 := uint16(pix[i+2])<<8 | uint16(pix[i+3]) - b1 := uint16(pix[i+4])<<8 | uint16(pix[i+5]) - a1 := uint16(pix[i+6])<<8 | uint16(pix[i+7]) - if predictor { - r0, r1 = r1, r1-r0 - g0, g1 = g1, g1-g0 - b0, b1 = b1, b1-b0 - a0, a1 = a1, a1-a0 - } - // We only write little-endian TIFF files. - buf[off+0] = byte(r1) - buf[off+1] = byte(r1 >> 8) - buf[off+2] = byte(g1) - buf[off+3] = byte(g1 >> 8) - buf[off+4] = byte(b1) - buf[off+5] = byte(b1 >> 8) - buf[off+6] = byte(a1) - buf[off+7] = byte(a1 >> 8) - off += 8 - } - if _, err := w.Write(buf); err != nil { - return err - } - } - return nil -} - -func encode(w io.Writer, m image.Image, predictor bool) error { - bounds := m.Bounds() - buf := make([]byte, 4*bounds.Dx()) - for y := bounds.Min.Y; y < bounds.Max.Y; y++ { - off := 0 - if predictor { - var r0, g0, b0, a0 uint8 - for x := bounds.Min.X; x < bounds.Max.X; x++ { - r, g, b, a := m.At(x, y).RGBA() - r1 := uint8(r >> 8) - g1 := uint8(g >> 8) - b1 := uint8(b >> 8) - a1 := uint8(a >> 8) - buf[off+0] = r1 - r0 - buf[off+1] = g1 - g0 - buf[off+2] = b1 - b0 - buf[off+3] = a1 - a0 - off += 4 - r0, g0, b0, a0 = r1, g1, b1, a1 - } - } else { - for x := bounds.Min.X; x < bounds.Max.X; x++ { - r, g, b, a := m.At(x, y).RGBA() - buf[off+0] = uint8(r >> 8) - buf[off+1] = uint8(g >> 8) - buf[off+2] = uint8(b >> 8) - buf[off+3] = uint8(a >> 8) - off += 4 - } - } - if _, err := w.Write(buf); err != nil { - return err - } - } - return nil -} - -// writePix writes the internal byte array of an image to w. It is less general -// but much faster then encode. writePix is used when pix directly -// corresponds to one of the TIFF image types. -func writePix(w io.Writer, pix []byte, nrows, length, stride int) error { - if length == stride { - _, err := w.Write(pix[:nrows*length]) - return err - } - for ; nrows > 0; nrows-- { - if _, err := w.Write(pix[:length]); err != nil { - return err - } - pix = pix[stride:] - } - return nil -} - -func writeIFD(w io.Writer, ifdOffset int, d []ifdEntry) error { - var buf [ifdLen]byte - // Make space for "pointer area" containing IFD entry data - // longer than 4 bytes. - parea := make([]byte, 1024) - pstart := ifdOffset + ifdLen*len(d) + 6 - var o int // Current offset in parea. - - // The IFD has to be written with the tags in ascending order. - sort.Sort(byTag(d)) - - // Write the number of entries in this IFD. - if err := binary.Write(w, enc, uint16(len(d))); err != nil { - return err - } - for _, ent := range d { - enc.PutUint16(buf[0:2], uint16(ent.tag)) - enc.PutUint16(buf[2:4], uint16(ent.datatype)) - count := uint32(len(ent.data)) - if ent.datatype == dtRational { - count /= 2 - } - enc.PutUint32(buf[4:8], count) - datalen := int(count * lengths[ent.datatype]) - if datalen <= 4 { - ent.putData(buf[8:12]) - } else { - if (o + datalen) > len(parea) { - newlen := len(parea) + 1024 - for (o + datalen) > newlen { - newlen += 1024 - } - newarea := make([]byte, newlen) - copy(newarea, parea) - parea = newarea - } - ent.putData(parea[o : o+datalen]) - enc.PutUint32(buf[8:12], uint32(pstart+o)) - o += datalen - } - if _, err := w.Write(buf[:]); err != nil { - return err - } - } - // The IFD ends with the offset of the next IFD in the file, - // or zero if it is the last one (page 14). - if err := binary.Write(w, enc, uint32(0)); err != nil { - return err - } - _, err := w.Write(parea[:o]) - return err -} - -// Options are the encoding parameters. -type Options struct { - // Compression is the type of compression used. - Compression CompressionType - // Predictor determines whether a differencing predictor is used; - // if true, instead of each pixel's color, the color difference to the - // preceding one is saved. This improves the compression for certain - // types of images and compressors. For example, it works well for - // photos with Deflate compression. - Predictor bool -} - -// Encode writes the image m to w. opt determines the options used for -// encoding, such as the compression type. If opt is nil, an uncompressed -// image is written. -func Encode(w io.Writer, m image.Image, opt *Options) error { - d := m.Bounds().Size() - - compression := uint32(cNone) - predictor := false - if opt != nil { - compression = opt.Compression.specValue() - // The predictor field is only used with LZW. See page 64 of the spec. - predictor = opt.Predictor && compression == cLZW - } - - _, err := io.WriteString(w, leHeader) - if err != nil { - return err - } - - // Compressed data is written into a buffer first, so that we - // know the compressed size. - var buf bytes.Buffer - // dst holds the destination for the pixel data of the image -- - // either w or a writer to buf. - var dst io.Writer - // imageLen is the length of the pixel data in bytes. - // The offset of the IFD is imageLen + 8 header bytes. - var imageLen int - - switch compression { - case cNone: - dst = w - // Write IFD offset before outputting pixel data. - switch m.(type) { - case *image.Paletted: - imageLen = d.X * d.Y * 1 - case *image.Gray: - imageLen = d.X * d.Y * 1 - case *image.Gray16: - imageLen = d.X * d.Y * 2 - case *image.RGBA64: - imageLen = d.X * d.Y * 8 - case *image.NRGBA64: - imageLen = d.X * d.Y * 8 - default: - imageLen = d.X * d.Y * 4 - } - err = binary.Write(w, enc, uint32(imageLen+8)) - if err != nil { - return err - } - case cDeflate: - dst = zlib.NewWriter(&buf) - default: - return errors.New("tiff: unsupported compression") - } - - pr := uint32(prNone) - photometricInterpretation := uint32(pRGB) - samplesPerPixel := uint32(4) - bitsPerSample := []uint32{8, 8, 8, 8} - extraSamples := uint32(0) - colorMap := []uint32{} - - if predictor { - pr = prHorizontal - } - switch m := m.(type) { - case *image.Paletted: - photometricInterpretation = pPaletted - samplesPerPixel = 1 - bitsPerSample = []uint32{8} - colorMap = make([]uint32, 256*3) - for i := 0; i < 256 && i < len(m.Palette); i++ { - r, g, b, _ := m.Palette[i].RGBA() - colorMap[i+0*256] = uint32(r) - colorMap[i+1*256] = uint32(g) - colorMap[i+2*256] = uint32(b) - } - err = encodeGray(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - case *image.Gray: - photometricInterpretation = pBlackIsZero - samplesPerPixel = 1 - bitsPerSample = []uint32{8} - err = encodeGray(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - case *image.Gray16: - photometricInterpretation = pBlackIsZero - samplesPerPixel = 1 - bitsPerSample = []uint32{16} - err = encodeGray16(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - case *image.NRGBA: - extraSamples = 2 // Unassociated alpha. - err = encodeRGBA(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - case *image.NRGBA64: - extraSamples = 2 // Unassociated alpha. - bitsPerSample = []uint32{16, 16, 16, 16} - err = encodeRGBA64(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - case *image.RGBA: - extraSamples = 1 // Associated alpha. - err = encodeRGBA(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - case *image.RGBA64: - extraSamples = 1 // Associated alpha. - bitsPerSample = []uint32{16, 16, 16, 16} - err = encodeRGBA64(dst, m.Pix, d.X, d.Y, m.Stride, predictor) - default: - extraSamples = 1 // Associated alpha. - err = encode(dst, m, predictor) - } - if err != nil { - return err - } - - if compression != cNone { - if err = dst.(io.Closer).Close(); err != nil { - return err - } - imageLen = buf.Len() - if err = binary.Write(w, enc, uint32(imageLen+8)); err != nil { - return err - } - if _, err = buf.WriteTo(w); err != nil { - return err - } - } - - ifd := []ifdEntry{ - {tImageWidth, dtShort, []uint32{uint32(d.X)}}, - {tImageLength, dtShort, []uint32{uint32(d.Y)}}, - {tBitsPerSample, dtShort, bitsPerSample}, - {tCompression, dtShort, []uint32{compression}}, - {tPhotometricInterpretation, dtShort, []uint32{photometricInterpretation}}, - {tStripOffsets, dtLong, []uint32{8}}, - {tSamplesPerPixel, dtShort, []uint32{samplesPerPixel}}, - {tRowsPerStrip, dtShort, []uint32{uint32(d.Y)}}, - {tStripByteCounts, dtLong, []uint32{uint32(imageLen)}}, - // There is currently no support for storing the image - // resolution, so give a bogus value of 72x72 dpi. - {tXResolution, dtRational, []uint32{72, 1}}, - {tYResolution, dtRational, []uint32{72, 1}}, - {tResolutionUnit, dtShort, []uint32{resPerInch}}, - } - if pr != prNone { - ifd = append(ifd, ifdEntry{tPredictor, dtShort, []uint32{pr}}) - } - if len(colorMap) != 0 { - ifd = append(ifd, ifdEntry{tColorMap, dtShort, colorMap}) - } - if extraSamples > 0 { - ifd = append(ifd, ifdEntry{tExtraSamples, dtShort, []uint32{extraSamples}}) - } - - return writeIFD(w, imageLen+8, ifd) -} diff --git a/backend/vendor/golang.org/x/net/LICENSE b/backend/vendor/golang.org/x/net/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/backend/vendor/golang.org/x/net/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/golang.org/x/net/PATENTS b/backend/vendor/golang.org/x/net/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/backend/vendor/golang.org/x/net/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/backend/vendor/golang.org/x/net/context/context.go b/backend/vendor/golang.org/x/net/context/context.go deleted file mode 100644 index cf66309c..00000000 --- a/backend/vendor/golang.org/x/net/context/context.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package context defines the Context type, which carries deadlines, -// cancelation signals, and other request-scoped values across API boundaries -// and between processes. -// As of Go 1.7 this package is available in the standard library under the -// name context. https://golang.org/pkg/context. -// -// Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must -// propagate the Context, optionally replacing it with a modified copy created -// using WithDeadline, WithTimeout, WithCancel, or WithValue. -// -// Programs that use Contexts should follow these rules to keep interfaces -// consistent across packages and enable static analysis tools to check context -// propagation: -// -// Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first -// parameter, typically named ctx: -// -// func DoSomething(ctx context.Context, arg Arg) error { -// // ... use ctx ... -// } -// -// Do not pass a nil Context, even if a function permits it. Pass context.TODO -// if you are unsure about which Context to use. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -// -// The same Context may be passed to functions running in different goroutines; -// Contexts are safe for simultaneous use by multiple goroutines. -// -// See http://blog.golang.org/context for example code for a server that uses -// Contexts. -package context // import "golang.org/x/net/context" - -// Background returns a non-nil, empty Context. It is never canceled, has no -// values, and has no deadline. It is typically used by the main function, -// initialization, and tests, and as the top-level Context for incoming -// requests. -func Background() Context { - return background -} - -// TODO returns a non-nil, empty Context. Code should use context.TODO when -// it's unclear which Context to use or it is not yet available (because the -// surrounding function has not yet been extended to accept a Context -// parameter). TODO is recognized by static analysis tools that determine -// whether Contexts are propagated correctly in a program. -func TODO() Context { - return todo -} diff --git a/backend/vendor/golang.org/x/net/context/go17.go b/backend/vendor/golang.org/x/net/context/go17.go deleted file mode 100644 index 2cb9c408..00000000 --- a/backend/vendor/golang.org/x/net/context/go17.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.7 -// +build go1.7 - -package context - -import ( - "context" // standard library's context, as of Go 1.7 - "time" -) - -var ( - todo = context.TODO() - background = context.Background() -) - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = context.Canceled - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = context.DeadlineExceeded - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - ctx, f := context.WithCancel(parent) - return ctx, f -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - ctx, f := context.WithDeadline(parent, deadline) - return ctx, f -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return context.WithValue(parent, key, val) -} diff --git a/backend/vendor/golang.org/x/net/context/go19.go b/backend/vendor/golang.org/x/net/context/go19.go deleted file mode 100644 index 64d31ecc..00000000 --- a/backend/vendor/golang.org/x/net/context/go19.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.9 -// +build go1.9 - -package context - -import "context" // standard library's context, as of Go 1.7 - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context = context.Context - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc = context.CancelFunc diff --git a/backend/vendor/golang.org/x/net/context/pre_go17.go b/backend/vendor/golang.org/x/net/context/pre_go17.go deleted file mode 100644 index 7b6b6851..00000000 --- a/backend/vendor/golang.org/x/net/context/pre_go17.go +++ /dev/null @@ -1,301 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.7 -// +build !go1.7 - -package context - -import ( - "errors" - "fmt" - "sync" - "time" -) - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, c) - return c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) *cancelCtx { - return &cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - *cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/backend/vendor/golang.org/x/net/context/pre_go19.go b/backend/vendor/golang.org/x/net/context/pre_go19.go deleted file mode 100644 index 1f971534..00000000 --- a/backend/vendor/golang.org/x/net/context/pre_go19.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.9 -// +build !go1.9 - -package context - -import "time" - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - // - // WithCancel arranges for Done to be closed when cancel is called; - // WithDeadline arranges for Done to be closed when the deadline - // expires; WithTimeout arranges for Done to be closed when the timeout - // elapses. - // - // Done is provided for use in select statements: - // - // // Stream generates values with DoSomething and sends them to out - // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out chan<- Value) error { - // for { - // v, err := DoSomething(ctx) - // if err != nil { - // return err - // } - // select { - // case <-ctx.Done(): - // return ctx.Err() - // case out <- v: - // } - // } - // } - // - // See http://blog.golang.org/pipelines for more examples of how to use - // a Done channel for cancelation. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - // - // A key identifies a specific value in a Context. Functions that wish - // to store values in Context typically allocate a key in a global - // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; - // packages should define keys as an unexported type to avoid - // collisions. - // - // Packages that define a Context key should provide type-safe accessors - // for the values stores using that key: - // - // // Package user defines a User type that's stored in Contexts. - // package user - // - // import "golang.org/x/net/context" - // - // // User is the type of value stored in the Contexts. - // type User struct {...} - // - // // key is an unexported type for keys defined in this package. - // // This prevents collisions with keys defined in other packages. - // type key int - // - // // userKey is the key for user.User values in Contexts. It is - // // unexported; clients use user.NewContext and user.FromContext - // // instead of using this key directly. - // var userKey key = 0 - // - // // NewContext returns a new Context that carries value u. - // func NewContext(ctx context.Context, u *User) context.Context { - // return context.WithValue(ctx, userKey, u) - // } - // - // // FromContext returns the User value stored in ctx, if any. - // func FromContext(ctx context.Context) (*User, bool) { - // u, ok := ctx.Value(userKey).(*User) - // return u, ok - // } - Value(key interface{}) interface{} -} - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc func() diff --git a/backend/vendor/golang.org/x/sys/LICENSE b/backend/vendor/golang.org/x/sys/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/backend/vendor/golang.org/x/sys/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/golang.org/x/sys/PATENTS b/backend/vendor/golang.org/x/sys/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/backend/vendor/golang.org/x/sys/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/backend/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/backend/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go deleted file mode 100644 index e07899b9..00000000 --- a/backend/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package unsafeheader contains header declarations for the Go runtime's -// slice and string implementations. -// -// This package allows x/sys to use types equivalent to -// reflect.SliceHeader and reflect.StringHeader without introducing -// a dependency on the (relatively heavy) "reflect" package. -package unsafeheader - -import ( - "unsafe" -) - -// Slice is the runtime representation of a slice. -// It cannot be used safely or portably and its representation may change in a later release. -type Slice struct { - Data unsafe.Pointer - Len int - Cap int -} - -// String is the runtime representation of a string. -// It cannot be used safely or portably and its representation may change in a later release. -type String struct { - Data unsafe.Pointer - Len int -} diff --git a/backend/vendor/golang.org/x/sys/unix/.gitignore b/backend/vendor/golang.org/x/sys/unix/.gitignore deleted file mode 100644 index e3e0fc6f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -_obj/ -unix.test diff --git a/backend/vendor/golang.org/x/sys/unix/README.md b/backend/vendor/golang.org/x/sys/unix/README.md deleted file mode 100644 index 7d3c060e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/README.md +++ /dev/null @@ -1,184 +0,0 @@ -# Building `sys/unix` - -The sys/unix package provides access to the raw system call interface of the -underlying operating system. See: https://godoc.org/golang.org/x/sys/unix - -Porting Go to a new architecture/OS combination or adding syscalls, types, or -constants to an existing architecture/OS pair requires some manual effort; -however, there are tools that automate much of the process. - -## Build Systems - -There are currently two ways we generate the necessary files. We are currently -migrating the build system to use containers so the builds are reproducible. -This is being done on an OS-by-OS basis. Please update this documentation as -components of the build system change. - -### Old Build System (currently for `GOOS != "linux"`) - -The old build system generates the Go files based on the C header files -present on your system. This means that files -for a given GOOS/GOARCH pair must be generated on a system with that OS and -architecture. This also means that the generated code can differ from system -to system, based on differences in the header files. - -To avoid this, if you are using the old build system, only generate the Go -files on an installation with unmodified header files. It is also important to -keep track of which version of the OS the files were generated from (ex. -Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes -and have each OS upgrade correspond to a single change. - -To build the files for your current OS and architecture, make sure GOOS and -GOARCH are set correctly and run `mkall.sh`. This will generate the files for -your specific system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, go - -### New Build System (currently for `GOOS == "linux"`) - -The new build system uses a Docker container to generate the go files directly -from source checkouts of the kernel and various system libraries. This means -that on any platform that supports Docker, all the files using the new build -system can be generated at once, and generated files will not change based on -what the person running the scripts has installed on their computer. - -The OS specific files for the new build system are located in the `${GOOS}` -directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When -the kernel or system library updates, modify the Dockerfile at -`${GOOS}/Dockerfile` to checkout the new release of the source. - -To build all the files under the new build system, you must be on an amd64/Linux -system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will -then generate all of the files for all of the GOOS/GOARCH pairs in the new build -system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, go, docker - -## Component files - -This section describes the various files used in the code generation process. -It also contains instructions on how to modify these files to add a new -architecture/OS or to add additional syscalls, types, or constants. Note that -if you are using the new build system, the scripts/programs cannot be called normally. -They must be called from within the docker container. - -### asm files - -The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system -call dispatch. There are three entry points: -``` - func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) - func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) - func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) -``` -The first and second are the standard ones; they differ only in how many -arguments can be passed to the kernel. The third is for low-level use by the -ForkExec wrapper. Unlike the first two, it does not call into the scheduler to -let it know that a system call is running. - -When porting Go to a new architecture/OS, this file must be implemented for -each GOOS/GOARCH pair. - -### mksysnum - -Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go` -for the old system). This program takes in a list of header files containing the -syscall number declarations and parses them to produce the corresponding list of -Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated -constants. - -Adding new syscall numbers is mostly done by running the build on a sufficiently -new installation of the target OS (or updating the source checkouts for the -new build system). However, depending on the OS, you may need to update the -parsing in mksysnum. - -### mksyscall.go - -The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are -hand-written Go files which implement system calls (for unix, the specific OS, -or the specific OS/Architecture pair respectively) that need special handling -and list `//sys` comments giving prototypes for ones that can be generated. - -The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts -them into syscalls. This requires the name of the prototype in the comment to -match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function -prototype can be exported (capitalized) or not. - -Adding a new syscall often just requires adding a new `//sys` function prototype -with the desired arguments and a capitalized name so it is exported. However, if -you want the interface to the syscall to be different, often one will make an -unexported `//sys` prototype, and then write a custom wrapper in -`syscall_${GOOS}.go`. - -### types files - -For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or -`types_${GOOS}.go` on the old system). This file includes standard C headers and -creates Go type aliases to the corresponding C types. The file is then fed -through godef to get the Go compatible definitions. Finally, the generated code -is fed though mkpost.go to format the code correctly and remove any hidden or -private identifiers. This cleaned-up code is written to -`ztypes_${GOOS}_${GOARCH}.go`. - -The hardest part about preparing this file is figuring out which headers to -include and which symbols need to be `#define`d to get the actual data -structures that pass through to the kernel system calls. Some C libraries -preset alternate versions for binary compatibility and translate them on the -way in and out of system calls, but there is almost always a `#define` that can -get the real ones. -See `types_darwin.go` and `linux/types.go` for examples. - -To add a new type, add in the necessary include statement at the top of the -file (if it is not already there) and add in a type alias line. Note that if -your type is significantly different on different architectures, you may need -some `#if/#elif` macros in your include statements. - -### mkerrors.sh - -This script is used to generate the system's various constants. This doesn't -just include the error numbers and error strings, but also the signal numbers -and a wide variety of miscellaneous constants. The constants come from the list -of include files in the `includes_${uname}` variable. A regex then picks out -the desired `#define` statements, and generates the corresponding Go constants. -The error numbers and strings are generated from `#include `, and the -signal numbers and strings are generated from `#include `. All of -these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, -`_errors.c`, which prints out all the constants. - -To add a constant, add the header that includes it to the appropriate variable. -Then, edit the regex (if necessary) to match the desired constant. Avoid making -the regex too broad to avoid matching unintended constants. - -### internal/mkmerge - -This program is used to extract duplicate const, func, and type declarations -from the generated architecture-specific files listed below, and merge these -into a common file for each OS. - -The merge is performed in the following steps: -1. Construct the set of common code that is idential in all architecture-specific files. -2. Write this common code to the merged file. -3. Remove the common code from all architecture-specific files. - - -## Generated files - -### `zerrors_${GOOS}_${GOARCH}.go` - -A file containing all of the system's generated error numbers, error strings, -signal numbers, and constants. Generated by `mkerrors.sh` (see above). - -### `zsyscall_${GOOS}_${GOARCH}.go` - -A file containing all the generated syscalls for a specific GOOS and GOARCH. -Generated by `mksyscall.go` (see above). - -### `zsysnum_${GOOS}_${GOARCH}.go` - -A list of numeric constants for all the syscall number of the specific GOOS -and GOARCH. Generated by mksysnum (see above). - -### `ztypes_${GOOS}_${GOARCH}.go` - -A file containing Go types for passing into (or returning from) syscalls. -Generated by godefs and the types file (see above). diff --git a/backend/vendor/golang.org/x/sys/unix/affinity_linux.go b/backend/vendor/golang.org/x/sys/unix/affinity_linux.go deleted file mode 100644 index 6e5c81ac..00000000 --- a/backend/vendor/golang.org/x/sys/unix/affinity_linux.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// CPU affinity functions - -package unix - -import ( - "math/bits" - "unsafe" -) - -const cpuSetSize = _CPU_SETSIZE / _NCPUBITS - -// CPUSet represents a CPU affinity mask. -type CPUSet [cpuSetSize]cpuMask - -func schedAffinity(trap uintptr, pid int, set *CPUSet) error { - _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) - if e != 0 { - return errnoErr(e) - } - return nil -} - -// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. -// If pid is 0 the calling thread is used. -func SchedGetaffinity(pid int, set *CPUSet) error { - return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) -} - -// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. -// If pid is 0 the calling thread is used. -func SchedSetaffinity(pid int, set *CPUSet) error { - return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) -} - -// Zero clears the set s, so that it contains no CPUs. -func (s *CPUSet) Zero() { - for i := range s { - s[i] = 0 - } -} - -func cpuBitsIndex(cpu int) int { - return cpu / _NCPUBITS -} - -func cpuBitsMask(cpu int) cpuMask { - return cpuMask(1 << (uint(cpu) % _NCPUBITS)) -} - -// Set adds cpu to the set s. -func (s *CPUSet) Set(cpu int) { - i := cpuBitsIndex(cpu) - if i < len(s) { - s[i] |= cpuBitsMask(cpu) - } -} - -// Clear removes cpu from the set s. -func (s *CPUSet) Clear(cpu int) { - i := cpuBitsIndex(cpu) - if i < len(s) { - s[i] &^= cpuBitsMask(cpu) - } -} - -// IsSet reports whether cpu is in the set s. -func (s *CPUSet) IsSet(cpu int) bool { - i := cpuBitsIndex(cpu) - if i < len(s) { - return s[i]&cpuBitsMask(cpu) != 0 - } - return false -} - -// Count returns the number of CPUs in the set s. -func (s *CPUSet) Count() int { - c := 0 - for _, b := range s { - c += bits.OnesCount64(uint64(b)) - } - return c -} diff --git a/backend/vendor/golang.org/x/sys/unix/aliases.go b/backend/vendor/golang.org/x/sys/unix/aliases.go deleted file mode 100644 index abc89c10..00000000 --- a/backend/vendor/golang.org/x/sys/unix/aliases.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos -// +build go1.9 - -package unix - -import "syscall" - -type Signal = syscall.Signal -type Errno = syscall.Errno -type SysProcAttr = syscall.SysProcAttr diff --git a/backend/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/backend/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s deleted file mode 100644 index db9171c2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc -// +build gc - -#include "textflag.h" - -// -// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go -// - -TEXT ·syscall6(SB),NOSPLIT,$0-88 - JMP syscall·syscall6(SB) - -TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/backend/vendor/golang.org/x/sys/unix/asm_bsd_386.s deleted file mode 100644 index e0fcd9b3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_bsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (freebsd || netbsd || openbsd) && gc -// +build freebsd netbsd openbsd -// +build gc - -#include "textflag.h" - -// System call support for 386 BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/backend/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s deleted file mode 100644 index 2b99c349..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc -// +build darwin dragonfly freebsd netbsd openbsd -// +build gc - -#include "textflag.h" - -// System call support for AMD64 BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_bsd_arm.s b/backend/vendor/golang.org/x/sys/unix/asm_bsd_arm.s deleted file mode 100644 index d702d4ad..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_bsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (freebsd || netbsd || openbsd) && gc -// +build freebsd netbsd openbsd -// +build gc - -#include "textflag.h" - -// System call support for ARM BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/backend/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s deleted file mode 100644 index fe36a739..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || freebsd || netbsd || openbsd) && gc -// +build darwin freebsd netbsd openbsd -// +build gc - -#include "textflag.h" - -// System call support for ARM64 BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s b/backend/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s deleted file mode 100644 index e5b9a848..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || freebsd || netbsd || openbsd) && gc -// +build darwin freebsd netbsd openbsd -// +build gc - -#include "textflag.h" - -// -// System call support for ppc64, BSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s b/backend/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s deleted file mode 100644 index d560019e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || freebsd || netbsd || openbsd) && gc -// +build darwin freebsd netbsd openbsd -// +build gc - -#include "textflag.h" - -// System call support for RISCV64 BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_386.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_386.s deleted file mode 100644 index 8fd101d0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_386.s +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc -// +build gc - -#include "textflag.h" - -// -// System calls for 386, Linux -// - -// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 -// instead of the glibc-specific "CALL 0x10(GS)". -#define INVOKE_SYSCALL INT $0x80 - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 - CALL runtime·entersyscall(SB) - MOVL trap+0(FP), AX // syscall entry - MOVL a1+4(FP), BX - MOVL a2+8(FP), CX - MOVL a3+12(FP), DX - MOVL $0, SI - MOVL $0, DI - INVOKE_SYSCALL - MOVL AX, r1+16(FP) - MOVL DX, r2+20(FP) - CALL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVL trap+0(FP), AX // syscall entry - MOVL a1+4(FP), BX - MOVL a2+8(FP), CX - MOVL a3+12(FP), DX - MOVL $0, SI - MOVL $0, DI - INVOKE_SYSCALL - MOVL AX, r1+16(FP) - MOVL DX, r2+20(FP) - RET - -TEXT ·socketcall(SB),NOSPLIT,$0-36 - JMP syscall·socketcall(SB) - -TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 - JMP syscall·rawsocketcall(SB) - -TEXT ·seek(SB),NOSPLIT,$0-28 - JMP syscall·seek(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_amd64.s deleted file mode 100644 index 7ed38e43..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc -// +build gc - -#include "textflag.h" - -// -// System calls for AMD64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - CALL runtime·entersyscall(SB) - MOVQ a1+8(FP), DI - MOVQ a2+16(FP), SI - MOVQ a3+24(FP), DX - MOVQ $0, R10 - MOVQ $0, R8 - MOVQ $0, R9 - MOVQ trap+0(FP), AX // syscall entry - SYSCALL - MOVQ AX, r1+32(FP) - MOVQ DX, r2+40(FP) - CALL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVQ a1+8(FP), DI - MOVQ a2+16(FP), SI - MOVQ a3+24(FP), DX - MOVQ $0, R10 - MOVQ $0, R8 - MOVQ $0, R9 - MOVQ trap+0(FP), AX // syscall entry - SYSCALL - MOVQ AX, r1+32(FP) - MOVQ DX, r2+40(FP) - RET - -TEXT ·gettimeofday(SB),NOSPLIT,$0-16 - JMP syscall·gettimeofday(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_arm.s deleted file mode 100644 index 8ef1d514..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_arm.s +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc -// +build gc - -#include "textflag.h" - -// -// System calls for arm, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 - BL runtime·entersyscall(SB) - MOVW trap+0(FP), R7 - MOVW a1+4(FP), R0 - MOVW a2+8(FP), R1 - MOVW a3+12(FP), R2 - MOVW $0, R3 - MOVW $0, R4 - MOVW $0, R5 - SWI $0 - MOVW R0, r1+16(FP) - MOVW $0, R0 - MOVW R0, r2+20(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVW trap+0(FP), R7 // syscall entry - MOVW a1+4(FP), R0 - MOVW a2+8(FP), R1 - MOVW a3+12(FP), R2 - SWI $0 - MOVW R0, r1+16(FP) - MOVW $0, R0 - MOVW R0, r2+20(FP) - RET - -TEXT ·seek(SB),NOSPLIT,$0-28 - B syscall·seek(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_arm64.s deleted file mode 100644 index 98ae0276..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && arm64 && gc -// +build linux -// +build arm64 -// +build gc - -#include "textflag.h" - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R0 - MOVD a2+16(FP), R1 - MOVD a3+24(FP), R2 - MOVD $0, R3 - MOVD $0, R4 - MOVD $0, R5 - MOVD trap+0(FP), R8 // syscall entry - SVC - MOVD R0, r1+32(FP) // r1 - MOVD R1, r2+40(FP) // r2 - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R0 - MOVD a2+16(FP), R1 - MOVD a3+24(FP), R2 - MOVD $0, R3 - MOVD $0, R4 - MOVD $0, R5 - MOVD trap+0(FP), R8 // syscall entry - SVC - MOVD R0, r1+32(FP) - MOVD R1, r2+40(FP) - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_loong64.s deleted file mode 100644 index 56535728..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_loong64.s +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && loong64 && gc -// +build linux -// +build loong64 -// +build gc - -#include "textflag.h" - - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - JAL runtime·entersyscall(SB) - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R11 // syscall entry - SYSCALL - MOVV R4, r1+32(FP) - MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 - JAL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R11 // syscall entry - SYSCALL - MOVV R4, r1+32(FP) - MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s deleted file mode 100644 index 21231d2c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips64 || mips64le) && gc -// +build linux -// +build mips64 mips64le -// +build gc - -#include "textflag.h" - -// -// System calls for mips64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - JAL runtime·entersyscall(SB) - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R2 // syscall entry - SYSCALL - MOVV R2, r1+32(FP) - MOVV R3, r2+40(FP) - JAL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R2 // syscall entry - SYSCALL - MOVV R2, r1+32(FP) - MOVV R3, r2+40(FP) - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s deleted file mode 100644 index 6783b26c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips || mipsle) && gc -// +build linux -// +build mips mipsle -// +build gc - -#include "textflag.h" - -// -// System calls for mips, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 - JAL runtime·entersyscall(SB) - MOVW a1+4(FP), R4 - MOVW a2+8(FP), R5 - MOVW a3+12(FP), R6 - MOVW R0, R7 - MOVW trap+0(FP), R2 // syscall entry - SYSCALL - MOVW R2, r1+16(FP) // r1 - MOVW R3, r2+20(FP) // r2 - JAL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVW a1+4(FP), R4 - MOVW a2+8(FP), R5 - MOVW a3+12(FP), R6 - MOVW trap+0(FP), R2 // syscall entry - SYSCALL - MOVW R2, r1+16(FP) - MOVW R3, r2+20(FP) - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s deleted file mode 100644 index 19d49893..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (ppc64 || ppc64le) && gc -// +build linux -// +build ppc64 ppc64le -// +build gc - -#include "textflag.h" - -// -// System calls for ppc64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R3 - MOVD a2+16(FP), R4 - MOVD a3+24(FP), R5 - MOVD R0, R6 - MOVD R0, R7 - MOVD R0, R8 - MOVD trap+0(FP), R9 // syscall entry - SYSCALL R9 - MOVD R3, r1+32(FP) - MOVD R4, r2+40(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R3 - MOVD a2+16(FP), R4 - MOVD a3+24(FP), R5 - MOVD R0, R6 - MOVD R0, R7 - MOVD R0, R8 - MOVD trap+0(FP), R9 // syscall entry - SYSCALL R9 - MOVD R3, r1+32(FP) - MOVD R4, r2+40(FP) - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s deleted file mode 100644 index e42eb81d..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build riscv64 && gc -// +build riscv64 -// +build gc - -#include "textflag.h" - -// -// System calls for linux/riscv64. -// -// Where available, just jump to package syscall's implementation of -// these functions. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - CALL runtime·entersyscall(SB) - MOV a1+8(FP), A0 - MOV a2+16(FP), A1 - MOV a3+24(FP), A2 - MOV trap+0(FP), A7 // syscall entry - ECALL - MOV A0, r1+32(FP) // r1 - MOV A1, r2+40(FP) // r2 - CALL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOV a1+8(FP), A0 - MOV a2+16(FP), A1 - MOV a3+24(FP), A2 - MOV trap+0(FP), A7 // syscall entry - ECALL - MOV A0, r1+32(FP) - MOV A1, r2+40(FP) - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/backend/vendor/golang.org/x/sys/unix/asm_linux_s390x.s deleted file mode 100644 index c46aab33..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && s390x && gc -// +build linux -// +build s390x -// +build gc - -#include "textflag.h" - -// -// System calls for s390x, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - BR syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - BR syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R2 - MOVD a2+16(FP), R3 - MOVD a3+24(FP), R4 - MOVD $0, R5 - MOVD $0, R6 - MOVD $0, R7 - MOVD trap+0(FP), R1 // syscall entry - SYSCALL - MOVD R2, r1+32(FP) - MOVD R3, r2+40(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - BR syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - BR syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R2 - MOVD a2+16(FP), R3 - MOVD a3+24(FP), R4 - MOVD $0, R5 - MOVD $0, R6 - MOVD $0, R7 - MOVD trap+0(FP), R1 // syscall entry - SYSCALL - MOVD R2, r1+32(FP) - MOVD R3, r2+40(FP) - RET diff --git a/backend/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/backend/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s deleted file mode 100644 index 5e7a1169..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc -// +build gc - -#include "textflag.h" - -// -// System call support for mips64, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/backend/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s deleted file mode 100644 index f8c5394c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc -// +build gc - -#include "textflag.h" - -// -// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go -// - -TEXT ·sysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·sysvicall6(SB) - -TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSysvicall6(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/backend/vendor/golang.org/x/sys/unix/asm_zos_s390x.s deleted file mode 100644 index 3b54e185..00000000 --- a/backend/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +++ /dev/null @@ -1,426 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x && gc -// +build zos -// +build s390x -// +build gc - -#include "textflag.h" - -#define PSALAA 1208(R0) -#define GTAB64(x) 80(x) -#define LCA64(x) 88(x) -#define CAA(x) 8(x) -#define EDCHPXV(x) 1016(x) // in the CAA -#define SAVSTACK_ASYNC(x) 336(x) // in the LCA - -// SS_*, where x=SAVSTACK_ASYNC -#define SS_LE(x) 0(x) -#define SS_GO(x) 8(x) -#define SS_ERRNO(x) 16(x) -#define SS_ERRNOJR(x) 20(x) - -#define LE_CALL BYTE $0x0D; BYTE $0x76; // BL R7, R6 - -TEXT ·clearErrno(SB),NOSPLIT,$0-0 - BL addrerrno<>(SB) - MOVD $0, 0(R3) - RET - -// Returns the address of errno in R3. -TEXT addrerrno<>(SB),NOSPLIT|NOFRAME,$0-0 - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get __errno FuncDesc. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - ADD $(0x156*16), R9 - LMG 0(R9), R5, R6 - - // Switch to saved LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Call __errno function. - LE_CALL - NOPH - - // Switch back to Go stack. - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - RET - -TEXT ·syscall_syscall(SB),NOSPLIT,$0-56 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+32(FP) - MOVD R0, r2+40(FP) - MOVD R0, err+48(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) -done: - BL runtime·exitsyscall(SB) - RET - -TEXT ·syscall_rawsyscall(SB),NOSPLIT,$0-56 - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+32(FP) - MOVD R0, r2+40(FP) - MOVD R0, err+48(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) -done: - RET - -TEXT ·syscall_syscall6(SB),NOSPLIT,$0-80 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+56(FP) - MOVD R0, r2+64(FP) - MOVD R0, err+72(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+72(FP) -done: - BL runtime·exitsyscall(SB) - RET - -TEXT ·syscall_rawsyscall6(SB),NOSPLIT,$0-80 - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+56(FP) - MOVD R0, r2+64(FP) - MOVD R0, err+72(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL ·rrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+72(FP) -done: - RET - -TEXT ·syscall_syscall9(SB),NOSPLIT,$0 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - MOVD a7+56(FP), R12 - MOVD R12, (2176+48)(R4) - MOVD a8+64(FP), R12 - MOVD R12, (2176+56)(R4) - MOVD a9+72(FP), R12 - MOVD R12, (2176+64)(R4) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+80(FP) - MOVD R0, r2+88(FP) - MOVD R0, err+96(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+96(FP) -done: - BL runtime·exitsyscall(SB) - RET - -TEXT ·syscall_rawsyscall9(SB),NOSPLIT,$0 - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - MOVD a7+56(FP), R12 - MOVD R12, (2176+48)(R4) - MOVD a8+64(FP), R12 - MOVD R12, (2176+56)(R4) - MOVD a9+72(FP), R12 - MOVD R12, (2176+64)(R4) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+80(FP) - MOVD R0, r2+88(FP) - MOVD R0, err+96(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+96(FP) -done: - RET - -// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) -TEXT ·svcCall(SB),NOSPLIT,$0 - BL runtime·save_g(SB) // Save g and stack pointer - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD R15, 0(R9) - - MOVD argv+8(FP), R1 // Move function arguments into registers - MOVD dsa+16(FP), g - MOVD fnptr+0(FP), R15 - - BYTE $0x0D // Branch to function - BYTE $0xEF - - BL runtime·load_g(SB) // Restore g and stack pointer - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R15 - - RET - -// func svcLoad(name *byte) unsafe.Pointer -TEXT ·svcLoad(SB),NOSPLIT,$0 - MOVD R15, R2 // Save go stack pointer - MOVD name+0(FP), R0 // Move SVC args into registers - MOVD $0x80000000, R1 - MOVD $0, R15 - BYTE $0x0A // SVC 08 LOAD - BYTE $0x08 - MOVW R15, R3 // Save return code from SVC - MOVD R2, R15 // Restore go stack pointer - CMP R3, $0 // Check SVC return code - BNE error - - MOVD $-2, R3 // Reset last bit of entry point to zero - AND R0, R3 - MOVD R3, addr+8(FP) // Return entry point returned by SVC - CMP R0, R3 // Check if last bit of entry point was set - BNE done - - MOVD R15, R2 // Save go stack pointer - MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) - BYTE $0x0A // SVC 09 DELETE - BYTE $0x09 - MOVD R2, R15 // Restore go stack pointer - -error: - MOVD $0, addr+8(FP) // Return 0 on failure -done: - XOR R0, R0 // Reset r0 to 0 - RET - -// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 -TEXT ·svcUnload(SB),NOSPLIT,$0 - MOVD R15, R2 // Save go stack pointer - MOVD name+0(FP), R0 // Move SVC args into registers - MOVD addr+8(FP), R15 - BYTE $0x0A // SVC 09 - BYTE $0x09 - XOR R0, R0 // Reset r0 to 0 - MOVD R15, R1 // Save SVC return code - MOVD R2, R15 // Restore go stack pointer - MOVD R1, rc+0(FP) // Return SVC return code - RET - -// func gettid() uint64 -TEXT ·gettid(SB), NOSPLIT, $0 - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get CEECAATHDID - MOVD CAA(R8), R9 - MOVD 0x3D0(R9), R9 - MOVD R9, ret+0(FP) - - RET diff --git a/backend/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/backend/vendor/golang.org/x/sys/unix/bluetooth_linux.go deleted file mode 100644 index a178a614..00000000 --- a/backend/vendor/golang.org/x/sys/unix/bluetooth_linux.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Bluetooth sockets and messages - -package unix - -// Bluetooth Protocols -const ( - BTPROTO_L2CAP = 0 - BTPROTO_HCI = 1 - BTPROTO_SCO = 2 - BTPROTO_RFCOMM = 3 - BTPROTO_BNEP = 4 - BTPROTO_CMTP = 5 - BTPROTO_HIDP = 6 - BTPROTO_AVDTP = 7 -) - -const ( - HCI_CHANNEL_RAW = 0 - HCI_CHANNEL_USER = 1 - HCI_CHANNEL_MONITOR = 2 - HCI_CHANNEL_CONTROL = 3 - HCI_CHANNEL_LOGGING = 4 -) - -// Socketoption Level -const ( - SOL_BLUETOOTH = 0x112 - SOL_HCI = 0x0 - SOL_L2CAP = 0x6 - SOL_RFCOMM = 0x12 - SOL_SCO = 0x11 -) diff --git a/backend/vendor/golang.org/x/sys/unix/cap_freebsd.go b/backend/vendor/golang.org/x/sys/unix/cap_freebsd.go deleted file mode 100644 index 0b7c6adb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/cap_freebsd.go +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build freebsd -// +build freebsd - -package unix - -import ( - "errors" - "fmt" -) - -// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c - -const ( - // This is the version of CapRights this package understands. See C implementation for parallels. - capRightsGoVersion = CAP_RIGHTS_VERSION_00 - capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 - capArSizeMax = capRightsGoVersion + 2 -) - -var ( - bit2idx = []int{ - -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - } -) - -func capidxbit(right uint64) int { - return int((right >> 57) & 0x1f) -} - -func rightToIndex(right uint64) (int, error) { - idx := capidxbit(right) - if idx < 0 || idx >= len(bit2idx) { - return -2, fmt.Errorf("index for right 0x%x out of range", right) - } - return bit2idx[idx], nil -} - -func caprver(right uint64) int { - return int(right >> 62) -} - -func capver(rights *CapRights) int { - return caprver(rights.Rights[0]) -} - -func caparsize(rights *CapRights) int { - return capver(rights) + 2 -} - -// CapRightsSet sets the permissions in setrights in rights. -func CapRightsSet(rights *CapRights, setrights []uint64) error { - // This is essentially a copy of cap_rights_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errors.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch") - } - rights.Rights[i] |= right - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsClear clears the permissions in clearrights from rights. -func CapRightsClear(rights *CapRights, clearrights []uint64) error { - // This is essentially a copy of cap_rights_vclear() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errors.New("bad rights size") - } - - for _, right := range clearrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch") - } - rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsIsSet checks whether all the permissions in setrights are present in rights. -func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { - // This is essentially a copy of cap_rights_is_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return false, fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return false, errors.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return false, errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return false, err - } - if i >= n { - return false, errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return false, errors.New("index mismatch") - } - if (rights.Rights[i] & right) != right { - return false, nil - } - } - - return true, nil -} - -func capright(idx uint64, bit uint64) uint64 { - return ((1 << (57 + idx)) | bit) -} - -// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. -// See man cap_rights_init(3) and rights(4). -func CapRightsInit(rights []uint64) (*CapRights, error) { - var r CapRights - r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) - r.Rights[1] = capright(1, 0) - - err := CapRightsSet(&r, rights) - if err != nil { - return nil, err - } - return &r, nil -} - -// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. -// The capability rights on fd can never be increased by CapRightsLimit. -// See man cap_rights_limit(2) and rights(4). -func CapRightsLimit(fd uintptr, rights *CapRights) error { - return capRightsLimit(int(fd), rights) -} - -// CapRightsGet returns a CapRights structure containing the operations permitted on fd. -// See man cap_rights_get(3) and rights(4). -func CapRightsGet(fd uintptr) (*CapRights, error) { - r, err := CapRightsInit(nil) - if err != nil { - return nil, err - } - err = capRightsGet(capRightsGoVersion, int(fd), r) - if err != nil { - return nil, err - } - return r, nil -} diff --git a/backend/vendor/golang.org/x/sys/unix/constants.go b/backend/vendor/golang.org/x/sys/unix/constants.go deleted file mode 100644 index 394a3965..00000000 --- a/backend/vendor/golang.org/x/sys/unix/constants.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -package unix - -const ( - R_OK = 0x4 - W_OK = 0x2 - X_OK = 0x1 -) diff --git a/backend/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/backend/vendor/golang.org/x/sys/unix/dev_aix_ppc.go deleted file mode 100644 index 65a99850..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix && ppc -// +build aix,ppc - -// Functions to access/create device major and minor numbers matching the -// encoding used by AIX. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 16) & 0xffff) -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff) -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return uint64(((major) << 16) | (minor)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/backend/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go deleted file mode 100644 index 8fc08ad0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix && ppc64 -// +build aix,ppc64 - -// Functions to access/create device major and minor numbers matching the -// encoding used AIX. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x3fffffff00000000) >> 32) -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - return uint32((dev & 0x00000000ffffffff) >> 0) -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - var DEVNO64 uint64 - DEVNO64 = 0x8000000000000000 - return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_darwin.go b/backend/vendor/golang.org/x/sys/unix/dev_darwin.go deleted file mode 100644 index 8d1dc0fa..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_darwin.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Darwin's sys/types.h header. - -package unix - -// Major returns the major component of a Darwin device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 24) & 0xff) -} - -// Minor returns the minor component of a Darwin device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffffff) -} - -// Mkdev returns a Darwin device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 24) | uint64(minor) -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/backend/vendor/golang.org/x/sys/unix/dev_dragonfly.go deleted file mode 100644 index 8502f202..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_dragonfly.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Dragonfly's sys/types.h header. -// -// The information below is extracted and adapted from sys/types.h: -// -// Minor gives a cookie instead of an index since in order to avoid changing the -// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for -// devices that don't use them. - -package unix - -// Major returns the major component of a DragonFlyBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 8) & 0xff) -} - -// Minor returns the minor component of a DragonFlyBSD device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff00ff) -} - -// Mkdev returns a DragonFlyBSD device number generated from the given major and -// minor components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 8) | uint64(minor) -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_freebsd.go b/backend/vendor/golang.org/x/sys/unix/dev_freebsd.go deleted file mode 100644 index eba3b4bd..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_freebsd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in FreeBSD's sys/types.h header. -// -// The information below is extracted and adapted from sys/types.h: -// -// Minor gives a cookie instead of an index since in order to avoid changing the -// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for -// devices that don't use them. - -package unix - -// Major returns the major component of a FreeBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 8) & 0xff) -} - -// Minor returns the minor component of a FreeBSD device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff00ff) -} - -// Mkdev returns a FreeBSD device number generated from the given major and -// minor components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 8) | uint64(minor) -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_linux.go b/backend/vendor/golang.org/x/sys/unix/dev_linux.go deleted file mode 100644 index d165d6f3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_linux.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used by the Linux kernel and glibc. -// -// The information below is extracted and adapted from bits/sysmacros.h in the -// glibc sources: -// -// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's -// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major -// number and m is a hex digit of the minor number. This is backward compatible -// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also -// backward compatible with the Linux kernel, which for some architectures uses -// 32-bit dev_t, encoded as mmmM MMmm. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - major := uint32((dev & 0x00000000000fff00) >> 8) - major |= uint32((dev & 0xfffff00000000000) >> 32) - return major -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x00000000000000ff) >> 0) - minor |= uint32((dev & 0x00000ffffff00000) >> 12) - return minor -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) & 0x00000fff) << 8 - dev |= (uint64(major) & 0xfffff000) << 32 - dev |= (uint64(minor) & 0x000000ff) << 0 - dev |= (uint64(minor) & 0xffffff00) << 12 - return dev -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_netbsd.go b/backend/vendor/golang.org/x/sys/unix/dev_netbsd.go deleted file mode 100644 index b4a203d0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_netbsd.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in NetBSD's sys/types.h header. - -package unix - -// Major returns the major component of a NetBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x000fff00) >> 8) -} - -// Minor returns the minor component of a NetBSD device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x000000ff) >> 0) - minor |= uint32((dev & 0xfff00000) >> 12) - return minor -} - -// Mkdev returns a NetBSD device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) << 8) & 0x000fff00 - dev |= (uint64(minor) << 12) & 0xfff00000 - dev |= (uint64(minor) << 0) & 0x000000ff - return dev -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_openbsd.go b/backend/vendor/golang.org/x/sys/unix/dev_openbsd.go deleted file mode 100644 index f3430c42..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_openbsd.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in OpenBSD's sys/types.h header. - -package unix - -// Major returns the major component of an OpenBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x0000ff00) >> 8) -} - -// Minor returns the minor component of an OpenBSD device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x000000ff) >> 0) - minor |= uint32((dev & 0xffff0000) >> 8) - return minor -} - -// Mkdev returns an OpenBSD device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) << 8) & 0x0000ff00 - dev |= (uint64(minor) << 8) & 0xffff0000 - dev |= (uint64(minor) << 0) & 0x000000ff - return dev -} diff --git a/backend/vendor/golang.org/x/sys/unix/dev_zos.go b/backend/vendor/golang.org/x/sys/unix/dev_zos.go deleted file mode 100644 index a388e59a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dev_zos.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -// Functions to access/create device major and minor numbers matching the -// encoding used by z/OS. -// -// The information below is extracted and adapted from macros. - -package unix - -// Major returns the major component of a z/OS device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 16) & 0x0000FFFF) -} - -// Minor returns the minor component of a z/OS device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0x0000FFFF) -} - -// Mkdev returns a z/OS device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 16) | uint64(minor) -} diff --git a/backend/vendor/golang.org/x/sys/unix/dirent.go b/backend/vendor/golang.org/x/sys/unix/dirent.go deleted file mode 100644 index 2499f977..00000000 --- a/backend/vendor/golang.org/x/sys/unix/dirent.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -package unix - -import "unsafe" - -// readInt returns the size-bytes unsigned integer in native byte order at offset off. -func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { - if len(b) < int(off+size) { - return 0, false - } - if isBigEndian { - return readIntBE(b[off:], size), true - } - return readIntLE(b[off:], size), true -} - -func readIntBE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[1]) | uint64(b[0])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | - uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - -func readIntLE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number of -// bytes consumed from buf, the number of entries added -// to names, and the new names slice. -func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { - origlen := len(buf) - count = 0 - for max != 0 && len(buf) > 0 { - reclen, ok := direntReclen(buf) - if !ok || reclen > uint64(len(buf)) { - return origlen, count, names - } - rec := buf[:reclen] - buf = buf[reclen:] - ino, ok := direntIno(rec) - if !ok { - break - } - if ino == 0 { // File absent in directory. - continue - } - const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) - namlen, ok := direntNamlen(rec) - if !ok || namoff+namlen > uint64(len(rec)) { - break - } - name := rec[namoff : namoff+namlen] - for i, c := range name { - if c == 0 { - name = name[:i] - break - } - } - // Check for useless names before allocating a string. - if string(name) == "." || string(name) == ".." { - continue - } - max-- - count++ - names = append(names, string(name)) - } - return origlen - len(buf), count, names -} diff --git a/backend/vendor/golang.org/x/sys/unix/endian_big.go b/backend/vendor/golang.org/x/sys/unix/endian_big.go deleted file mode 100644 index a5202655..00000000 --- a/backend/vendor/golang.org/x/sys/unix/endian_big.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 -// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 - -package unix - -const isBigEndian = true diff --git a/backend/vendor/golang.org/x/sys/unix/endian_little.go b/backend/vendor/golang.org/x/sys/unix/endian_little.go deleted file mode 100644 index b0f2bc4a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/endian_little.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh -// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh - -package unix - -const isBigEndian = false diff --git a/backend/vendor/golang.org/x/sys/unix/env_unix.go b/backend/vendor/golang.org/x/sys/unix/env_unix.go deleted file mode 100644 index 29ccc4d1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/env_unix.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -// Unix environment variables. - -package unix - -import "syscall" - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -func Environ() []string { - return syscall.Environ() -} - -func Unsetenv(key string) error { - return syscall.Unsetenv(key) -} diff --git a/backend/vendor/golang.org/x/sys/unix/epoll_zos.go b/backend/vendor/golang.org/x/sys/unix/epoll_zos.go deleted file mode 100644 index cedaf7e0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/epoll_zos.go +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -package unix - -import ( - "sync" -) - -// This file simulates epoll on z/OS using poll. - -// Analogous to epoll_event on Linux. -// TODO(neeilan): Pad is because the Linux kernel expects a 96-bit struct. We never pass this to the kernel; remove? -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - EPOLLERR = 0x8 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDNORM = 0x40 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - // The following constants are part of the epoll API, but represent - // currently unsupported functionality on z/OS. - // EPOLL_CLOEXEC = 0x80000 - // EPOLLET = 0x80000000 - // EPOLLONESHOT = 0x40000000 - // EPOLLRDHUP = 0x2000 // Typically used with edge-triggered notis - // EPOLLEXCLUSIVE = 0x10000000 // Exclusive wake-up mode - // EPOLLWAKEUP = 0x20000000 // Relies on Linux's BLOCK_SUSPEND capability -) - -// TODO(neeilan): We can eliminate these epToPoll / pToEpoll calls by using identical mask values for POLL/EPOLL -// constants where possible The lower 16 bits of epoll events (uint32) can fit any system poll event (int16). - -// epToPollEvt converts epoll event field to poll equivalent. -// In epoll, Events is a 32-bit field, while poll uses 16 bits. -func epToPollEvt(events uint32) int16 { - var ep2p = map[uint32]int16{ - EPOLLIN: POLLIN, - EPOLLOUT: POLLOUT, - EPOLLHUP: POLLHUP, - EPOLLPRI: POLLPRI, - EPOLLERR: POLLERR, - } - - var pollEvts int16 = 0 - for epEvt, pEvt := range ep2p { - if (events & epEvt) != 0 { - pollEvts |= pEvt - } - } - - return pollEvts -} - -// pToEpollEvt converts 16 bit poll event bitfields to 32-bit epoll event fields. -func pToEpollEvt(revents int16) uint32 { - var p2ep = map[int16]uint32{ - POLLIN: EPOLLIN, - POLLOUT: EPOLLOUT, - POLLHUP: EPOLLHUP, - POLLPRI: EPOLLPRI, - POLLERR: EPOLLERR, - } - - var epollEvts uint32 = 0 - for pEvt, epEvt := range p2ep { - if (revents & pEvt) != 0 { - epollEvts |= epEvt - } - } - - return epollEvts -} - -// Per-process epoll implementation. -type epollImpl struct { - mu sync.Mutex - epfd2ep map[int]*eventPoll - nextEpfd int -} - -// eventPoll holds a set of file descriptors being watched by the process. A process can have multiple epoll instances. -// On Linux, this is an in-kernel data structure accessed through a fd. -type eventPoll struct { - mu sync.Mutex - fds map[int]*EpollEvent -} - -// epoll impl for this process. -var impl epollImpl = epollImpl{ - epfd2ep: make(map[int]*eventPoll), - nextEpfd: 0, -} - -func (e *epollImpl) epollcreate(size int) (epfd int, err error) { - e.mu.Lock() - defer e.mu.Unlock() - epfd = e.nextEpfd - e.nextEpfd++ - - e.epfd2ep[epfd] = &eventPoll{ - fds: make(map[int]*EpollEvent), - } - return epfd, nil -} - -func (e *epollImpl) epollcreate1(flag int) (fd int, err error) { - return e.epollcreate(4) -} - -func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEvent) (err error) { - e.mu.Lock() - defer e.mu.Unlock() - - ep, ok := e.epfd2ep[epfd] - if !ok { - - return EBADF - } - - switch op { - case EPOLL_CTL_ADD: - // TODO(neeilan): When we make epfds and fds disjoint, detect epoll - // loops here (instances watching each other) and return ELOOP. - if _, ok := ep.fds[fd]; ok { - return EEXIST - } - ep.fds[fd] = event - case EPOLL_CTL_MOD: - if _, ok := ep.fds[fd]; !ok { - return ENOENT - } - ep.fds[fd] = event - case EPOLL_CTL_DEL: - if _, ok := ep.fds[fd]; !ok { - return ENOENT - } - delete(ep.fds, fd) - - } - return nil -} - -// Must be called while holding ep.mu -func (ep *eventPoll) getFds() []int { - fds := make([]int, len(ep.fds)) - for fd := range ep.fds { - fds = append(fds, fd) - } - return fds -} - -func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int) (n int, err error) { - e.mu.Lock() // in [rare] case of concurrent epollcreate + epollwait - ep, ok := e.epfd2ep[epfd] - - if !ok { - e.mu.Unlock() - return 0, EBADF - } - - pollfds := make([]PollFd, 4) - for fd, epollevt := range ep.fds { - pollfds = append(pollfds, PollFd{Fd: int32(fd), Events: epToPollEvt(epollevt.Events)}) - } - e.mu.Unlock() - - n, err = Poll(pollfds, msec) - if err != nil { - return n, err - } - - i := 0 - for _, pFd := range pollfds { - if pFd.Revents != 0 { - events[i] = EpollEvent{Fd: pFd.Fd, Events: pToEpollEvt(pFd.Revents)} - i++ - } - - if i == n { - break - } - } - - return n, nil -} - -func EpollCreate(size int) (fd int, err error) { - return impl.epollcreate(size) -} - -func EpollCreate1(flag int) (fd int, err error) { - return impl.epollcreate1(flag) -} - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - return impl.epollctl(epfd, op, fd, event) -} - -// Because EpollWait mutates events, the caller is expected to coordinate -// concurrent access if calling with the same epfd from multiple goroutines. -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - return impl.epollwait(epfd, events, msec) -} diff --git a/backend/vendor/golang.org/x/sys/unix/fcntl.go b/backend/vendor/golang.org/x/sys/unix/fcntl.go deleted file mode 100644 index e9b99125..00000000 --- a/backend/vendor/golang.org/x/sys/unix/fcntl.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build dragonfly || freebsd || linux || netbsd || openbsd -// +build dragonfly freebsd linux netbsd openbsd - -package unix - -import "unsafe" - -// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux -// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. -var fcntl64Syscall uintptr = SYS_FCNTL - -func fcntl(fd int, cmd, arg int) (int, error) { - valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg)) - var err error - if errno != 0 { - err = errno - } - return int(valptr), err -} - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - return fcntl(int(fd), cmd, arg) -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) - if errno == 0 { - return nil - } - return errno -} diff --git a/backend/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/backend/vendor/golang.org/x/sys/unix/fcntl_darwin.go deleted file mode 100644 index a9911c7c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/fcntl_darwin.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import "unsafe" - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - return fcntl(int(fd), cmd, arg) -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) - return err -} - -// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. -func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { - _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) - return err -} diff --git a/backend/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/backend/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go deleted file mode 100644 index 29d44808..00000000 --- a/backend/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) -// +build linux,386 linux,arm linux,mips linux,mipsle linux,ppc - -package unix - -func init() { - // On 32-bit Linux systems, the fcntl syscall that matches Go's - // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. - fcntl64Syscall = SYS_FCNTL64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/fdset.go b/backend/vendor/golang.org/x/sys/unix/fdset.go deleted file mode 100644 index a8068f94..00000000 --- a/backend/vendor/golang.org/x/sys/unix/fdset.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -package unix - -// Set adds fd to the set fds. -func (fds *FdSet) Set(fd int) { - fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) -} - -// Clear removes fd from the set fds. -func (fds *FdSet) Clear(fd int) { - fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) -} - -// IsSet returns whether fd is in the set fds. -func (fds *FdSet) IsSet(fd int) bool { - return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 -} - -// Zero clears the set fds. -func (fds *FdSet) Zero() { - for i := range fds.Bits { - fds.Bits[i] = 0 - } -} diff --git a/backend/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/backend/vendor/golang.org/x/sys/unix/fstatfs_zos.go deleted file mode 100644 index e377cc9f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/fstatfs_zos.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -package unix - -import ( - "unsafe" -) - -// This file simulates fstatfs on z/OS using fstatvfs and w_getmntent. - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - var stat_v Statvfs_t - err = Fstatvfs(fd, &stat_v) - if err == nil { - // populate stat - stat.Type = 0 - stat.Bsize = stat_v.Bsize - stat.Blocks = stat_v.Blocks - stat.Bfree = stat_v.Bfree - stat.Bavail = stat_v.Bavail - stat.Files = stat_v.Files - stat.Ffree = stat_v.Ffree - stat.Fsid = stat_v.Fsid - stat.Namelen = stat_v.Namemax - stat.Frsize = stat_v.Frsize - stat.Flags = stat_v.Flag - for passn := 0; passn < 5; passn++ { - switch passn { - case 0: - err = tryGetmntent64(stat) - break - case 1: - err = tryGetmntent128(stat) - break - case 2: - err = tryGetmntent256(stat) - break - case 3: - err = tryGetmntent512(stat) - break - case 4: - err = tryGetmntent1024(stat) - break - default: - break - } - //proceed to return if: err is nil (found), err is nonnil but not ERANGE (another error occurred) - if err == nil || err != nil && err != ERANGE { - break - } - } - } - return err -} - -func tryGetmntent64(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [64]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent128(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [128]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent256(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [256]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent512(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [512]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent1024(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [1024]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} diff --git a/backend/vendor/golang.org/x/sys/unix/gccgo.go b/backend/vendor/golang.org/x/sys/unix/gccgo.go deleted file mode 100644 index b06f52d7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/gccgo.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gccgo && !aix && !hurd -// +build gccgo,!aix,!hurd - -package unix - -import "syscall" - -// We can't use the gc-syntax .s files for gccgo. On the plus side -// much of the functionality can be written directly in Go. - -func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) - -func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) - -func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { - syscall.Entersyscall() - r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0 -} - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { - r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0 -} - -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} - -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} diff --git a/backend/vendor/golang.org/x/sys/unix/gccgo_c.c b/backend/vendor/golang.org/x/sys/unix/gccgo_c.c deleted file mode 100644 index f98a1c54..00000000 --- a/backend/vendor/golang.org/x/sys/unix/gccgo_c.c +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gccgo && !aix && !hurd -// +build gccgo,!aix,!hurd - -#include -#include -#include - -#define _STRINGIFY2_(x) #x -#define _STRINGIFY_(x) _STRINGIFY2_(x) -#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) - -// Call syscall from C code because the gccgo support for calling from -// Go to C does not support varargs functions. - -struct ret { - uintptr_t r; - uintptr_t err; -}; - -struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) - __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall"); - -struct ret -gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) -{ - struct ret r; - - errno = 0; - r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); - r.err = errno; - return r; -} - -uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) - __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError"); - -uintptr_t -gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) -{ - return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); -} diff --git a/backend/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/backend/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go deleted file mode 100644 index e60e49a3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gccgo && linux && amd64 -// +build gccgo,linux,amd64 - -package unix - -import "syscall" - -//extern gettimeofday -func realGettimeofday(*Timeval, *byte) int32 - -func gettimeofday(tv *Timeval) (err syscall.Errno) { - r := realGettimeofday(tv, nil) - if r < 0 { - return syscall.GetErrno() - } - return 0 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ifreq_linux.go b/backend/vendor/golang.org/x/sys/unix/ifreq_linux.go deleted file mode 100644 index 15721a51..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ifreq_linux.go +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux -// +build linux - -package unix - -import ( - "unsafe" -) - -// Helpers for dealing with ifreq since it contains a union and thus requires a -// lot of unsafe.Pointer casts to use properly. - -// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq -// contains an interface name and a union of arbitrary data which can be -// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq -// function. -// -// Use the Name method to access the stored interface name. The union data -// fields can be get and set using the following methods: -// - Uint16/SetUint16: flags -// - Uint32/SetUint32: ifindex, metric, mtu -type Ifreq struct{ raw ifreq } - -// NewIfreq creates an Ifreq with the input network interface name after -// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required) -// bytes. -func NewIfreq(name string) (*Ifreq, error) { - // Leave room for terminating NULL byte. - if len(name) >= IFNAMSIZ { - return nil, EINVAL - } - - var ifr ifreq - copy(ifr.Ifrn[:], name) - - return &Ifreq{raw: ifr}, nil -} - -// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc. - -// Name returns the interface name associated with the Ifreq. -func (ifr *Ifreq) Name() string { - return ByteSliceToString(ifr.raw.Ifrn[:]) -} - -// According to netdevice(7), only AF_INET addresses are returned for numerous -// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port -// field and other data is always empty. - -// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C -// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not -// AF_INET, an error is returned. -func (ifr *Ifreq) Inet4Addr() ([]byte, error) { - raw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0])) - if raw.Family != AF_INET { - // Cannot safely interpret raw.Addr bytes as an IPv4 address. - return nil, EINVAL - } - - return raw.Addr[:], nil -} - -// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an -// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length -// or an error will be returned. -func (ifr *Ifreq) SetInet4Addr(v []byte) error { - if len(v) != 4 { - return EINVAL - } - - var addr [4]byte - copy(addr[:], v) - - ifr.clear() - *(*RawSockaddrInet4)( - unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]), - ) = RawSockaddrInet4{ - // Always set IP family as ioctls would require it anyway. - Family: AF_INET, - Addr: addr, - } - - return nil -} - -// Uint16 returns the Ifreq union data as a C short/Go uint16 value. -func (ifr *Ifreq) Uint16() uint16 { - return *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) -} - -// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data. -func (ifr *Ifreq) SetUint16(v uint16) { - ifr.clear() - *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v -} - -// Uint32 returns the Ifreq union data as a C int/Go uint32 value. -func (ifr *Ifreq) Uint32() uint32 { - return *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) -} - -// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data. -func (ifr *Ifreq) SetUint32(v uint32) { - ifr.clear() - *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v -} - -// clear zeroes the ifreq's union field to prevent trailing garbage data from -// being sent to the kernel if an ifreq is reused. -func (ifr *Ifreq) clear() { - for i := range ifr.raw.Ifru { - ifr.raw.Ifru[i] = 0 - } -} - -// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as -// IoctlGetEthtoolDrvinfo which use these APIs under the hood. - -// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData, -// use the Ifreq.withData method. -type ifreqData struct { - name [IFNAMSIZ]byte - // A type separate from ifreq is required in order to comply with the - // unsafe.Pointer rules since the "pointer-ness" of data would not be - // preserved if it were cast into the byte array of a raw ifreq. - data unsafe.Pointer - // Pad to the same size as ifreq. - _ [len(ifreq{}.Ifru) - SizeofPtr]byte -} - -// withData produces an ifreqData with the pointer p set for ioctls which require -// arbitrary pointer data. -func (ifr Ifreq) withData(p unsafe.Pointer) ifreqData { - return ifreqData{ - name: ifr.raw.Ifrn, - data: p, - } -} diff --git a/backend/vendor/golang.org/x/sys/unix/ioctl_linux.go b/backend/vendor/golang.org/x/sys/unix/ioctl_linux.go deleted file mode 100644 index 0d12c085..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ioctl_linux.go +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import "unsafe" - -// IoctlRetInt performs an ioctl operation specified by req on a device -// associated with opened file descriptor fd, and returns a non-negative -// integer that is returned by the ioctl syscall. -func IoctlRetInt(fd int, req uint) (int, error) { - ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) - if err != 0 { - return 0, err - } - return int(ret), nil -} - -func IoctlGetUint32(fd int, req uint) (uint32, error) { - var value uint32 - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetRTCTime(fd int) (*RTCTime, error) { - var value RTCTime - err := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlSetRTCTime(fd int, value *RTCTime) error { - return ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value)) -} - -func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { - var value RTCWkAlrm - err := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { - return ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value)) -} - -// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network -// device specified by ifname. -func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) - return &value, err -} - -// IoctlGetWatchdogInfo fetches information about a watchdog device from the -// Linux watchdog API. For more information, see: -// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. -func IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) { - var value WatchdogInfo - err := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For -// more information, see: -// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. -func IoctlWatchdogKeepalive(fd int) error { - // arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr. - return ioctl(fd, WDIOC_KEEPALIVE, 0) -} - -// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the -// range of data conveyed in value to the file associated with the file -// descriptor destFd. See the ioctl_ficlonerange(2) man page for details. -func IoctlFileCloneRange(destFd int, value *FileCloneRange) error { - return ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value)) -} - -// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file -// associated with the file description srcFd to the file associated with the -// file descriptor destFd. See the ioctl_ficlone(2) man page for details. -func IoctlFileClone(destFd, srcFd int) error { - return ioctl(destFd, FICLONE, uintptr(srcFd)) -} - -type FileDedupeRange struct { - Src_offset uint64 - Src_length uint64 - Reserved1 uint16 - Reserved2 uint32 - Info []FileDedupeRangeInfo -} - -type FileDedupeRangeInfo struct { - Dest_fd int64 - Dest_offset uint64 - Bytes_deduped uint64 - Status int32 - Reserved uint32 -} - -// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the -// range of data conveyed in value from the file associated with the file -// descriptor srcFd to the value.Info destinations. See the -// ioctl_fideduperange(2) man page for details. -func IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error { - buf := make([]byte, SizeofRawFileDedupeRange+ - len(value.Info)*SizeofRawFileDedupeRangeInfo) - rawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0])) - rawrange.Src_offset = value.Src_offset - rawrange.Src_length = value.Src_length - rawrange.Dest_count = uint16(len(value.Info)) - rawrange.Reserved1 = value.Reserved1 - rawrange.Reserved2 = value.Reserved2 - - for i := range value.Info { - rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( - uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + - uintptr(i*SizeofRawFileDedupeRangeInfo))) - rawinfo.Dest_fd = value.Info[i].Dest_fd - rawinfo.Dest_offset = value.Info[i].Dest_offset - rawinfo.Bytes_deduped = value.Info[i].Bytes_deduped - rawinfo.Status = value.Info[i].Status - rawinfo.Reserved = value.Info[i].Reserved - } - - err := ioctlPtr(srcFd, FIDEDUPERANGE, unsafe.Pointer(&buf[0])) - - // Output - for i := range value.Info { - rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( - uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + - uintptr(i*SizeofRawFileDedupeRangeInfo))) - value.Info[i].Dest_fd = rawinfo.Dest_fd - value.Info[i].Dest_offset = rawinfo.Dest_offset - value.Info[i].Bytes_deduped = rawinfo.Bytes_deduped - value.Info[i].Status = rawinfo.Status - value.Info[i].Reserved = rawinfo.Reserved - } - - return err -} - -func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { - return ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value)) -} - -func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { - var value HIDRawDevInfo - err := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlHIDGetRawName(fd int) (string, error) { - var value [_HIDIOCGRAWNAME_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -func IoctlHIDGetRawPhys(fd int) (string, error) { - var value [_HIDIOCGRAWPHYS_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -func IoctlHIDGetRawUniq(fd int) (string, error) { - var value [_HIDIOCGRAWUNIQ_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or -// output. See the netdevice(7) man page for details. -func IoctlIfreq(fd int, req uint, value *Ifreq) error { - // It is possible we will add more fields to *Ifreq itself later to prevent - // misuse, so pass the raw *ifreq directly. - return ioctlPtr(fd, req, unsafe.Pointer(&value.raw)) -} - -// TODO(mdlayher): export if and when IfreqData is exported. - -// ioctlIfreqData performs an ioctl using an ifreqData structure for input -// and/or output. See the netdevice(7) man page for details. -func ioctlIfreqData(fd int, req uint, value *ifreqData) error { - // The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are - // identical so pass *IfreqData directly. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an -// existing KCM socket, returning a structure containing the file descriptor of -// the new socket. -func IoctlKCMClone(fd int) (*KCMClone, error) { - var info KCMClone - if err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil { - return nil, err - } - - return &info, nil -} - -// IoctlKCMAttach attaches a TCP socket and associated BPF program file -// descriptor to a multiplexor. -func IoctlKCMAttach(fd int, info KCMAttach) error { - return ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info)) -} - -// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor. -func IoctlKCMUnattach(fd int, info KCMUnattach) error { - return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) -} - -// IoctlLoopGetStatus64 gets the status of the loop device associated with the -// file descriptor fd using the LOOP_GET_STATUS64 operation. -func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { - var value LoopInfo64 - if err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil { - return nil, err - } - return &value, nil -} - -// IoctlLoopSetStatus64 sets the status of the loop device associated with the -// file descriptor fd using the LOOP_SET_STATUS64 operation. -func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { - return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/ioctl_signed.go b/backend/vendor/golang.org/x/sys/unix/ioctl_signed.go deleted file mode 100644 index 7def9580..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ioctl_signed.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || solaris -// +build aix solaris - -package unix - -import ( - "unsafe" -) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req int, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -// IoctlSetPointerInt performs an ioctl operation which sets an -// integer value on fd, using the specified request number. The ioctl -// argument is called with a pointer to the integer value, rather than -// passing the integer value directly. -func IoctlSetPointerInt(fd int, req int, value int) error { - v := int32(value) - return ioctlPtr(fd, req, unsafe.Pointer(&v)) -} - -// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. -// -// To change fd's window size, the req argument should be TIOCSWINSZ. -func IoctlSetWinsize(fd int, req int, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value will usually be TCSETA or TIOCSETA. -func IoctlSetTermios(fd int, req int, value *Termios) error { - // TODO: if we get the chance, remove the req parameter. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -// -// A few ioctl requests use the return value as an output parameter; -// for those, IoctlRetInt should be used instead of this function. -func IoctlGetInt(fd int, req int) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlGetTermios(fd int, req int) (*Termios, error) { - var value Termios - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} diff --git a/backend/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/backend/vendor/golang.org/x/sys/unix/ioctl_unsigned.go deleted file mode 100644 index 649913d1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ioctl_unsigned.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd -// +build darwin dragonfly freebsd hurd linux netbsd openbsd - -package unix - -import ( - "unsafe" -) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -// IoctlSetPointerInt performs an ioctl operation which sets an -// integer value on fd, using the specified request number. The ioctl -// argument is called with a pointer to the integer value, rather than -// passing the integer value directly. -func IoctlSetPointerInt(fd int, req uint, value int) error { - v := int32(value) - return ioctlPtr(fd, req, unsafe.Pointer(&v)) -} - -// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. -// -// To change fd's window size, the req argument should be TIOCSWINSZ. -func IoctlSetWinsize(fd int, req uint, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value will usually be TCSETA or TIOCSETA. -func IoctlSetTermios(fd int, req uint, value *Termios) error { - // TODO: if we get the chance, remove the req parameter. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -// -// A few ioctl requests use the return value as an output parameter; -// for those, IoctlRetInt should be used instead of this function. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} diff --git a/backend/vendor/golang.org/x/sys/unix/ioctl_zos.go b/backend/vendor/golang.org/x/sys/unix/ioctl_zos.go deleted file mode 100644 index cdc21bf7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ioctl_zos.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -package unix - -import ( - "runtime" - "unsafe" -) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req int, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. -// -// To change fd's window size, the req argument should be TIOCSWINSZ. -func IoctlSetWinsize(fd int, req int, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value is expected to be TCSETS, TCSETSW, or TCSETSF -func IoctlSetTermios(fd int, req int, value *Termios) error { - if (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) { - return ENOSYS - } - err := Tcsetattr(fd, int(req), value) - runtime.KeepAlive(value) - return err -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -// -// A few ioctl requests use the return value as an output parameter; -// for those, IoctlRetInt should be used instead of this function. -func IoctlGetInt(fd int, req int) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlGetTermios performs an ioctl on fd with a *Termios. -// -// The req value is expected to be TCGETS -func IoctlGetTermios(fd int, req int) (*Termios, error) { - var value Termios - if req != TCGETS { - return &value, ENOSYS - } - err := Tcgetattr(fd, &value) - return &value, err -} diff --git a/backend/vendor/golang.org/x/sys/unix/mkall.sh b/backend/vendor/golang.org/x/sys/unix/mkall.sh deleted file mode 100644 index e6f31d37..00000000 --- a/backend/vendor/golang.org/x/sys/unix/mkall.sh +++ /dev/null @@ -1,249 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# This script runs or (given -n) prints suggested commands to generate files for -# the Architecture/OS specified by the GOARCH and GOOS environment variables. -# See README.md for more information about how the build system works. - -GOOSARCH="${GOOS}_${GOARCH}" - -# defaults -mksyscall="go run mksyscall.go" -mkerrors="./mkerrors.sh" -zerrors="zerrors_$GOOSARCH.go" -mksysctl="" -zsysctl="zsysctl_$GOOSARCH.go" -mksysnum= -mktypes= -mkasm= -run="sh" -cmd="" - -case "$1" in --syscalls) - for i in zsyscall*go - do - # Run the command line that appears in the first line - # of the generated file to regenerate it. - sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i - rm _$i - done - exit 0 - ;; --n) - run="cat" - cmd="echo" - shift -esac - -case "$#" in -0) - ;; -*) - echo 'usage: mkall.sh [-n]' 1>&2 - exit 2 -esac - -if [[ "$GOOS" = "linux" ]]; then - # Use the Docker-based build system - # Files generated through docker (use $cmd so you can Ctl-C the build or run) - $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS - exit -fi - -GOOSARCH_in=syscall_$GOOSARCH.go -case "$GOOSARCH" in -_* | *_ | _) - echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 - exit 1 - ;; -aix_ppc) - mkerrors="$mkerrors -maix32" - mksyscall="go run mksyscall_aix_ppc.go -aix" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -aix_ppc64) - mkerrors="$mkerrors -maix64" - mksyscall="go run mksyscall_aix_ppc64.go -aix" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -darwin_amd64) - mkerrors="$mkerrors -m64" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm.go" - ;; -darwin_arm64) - mkerrors="$mkerrors -m64" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm.go" - ;; -dragonfly_amd64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -dragonfly" - mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_amd64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -freebsd_arm64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -freebsd_riscv64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -netbsd_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -netbsd" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -netbsd_amd64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -netbsd" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -netbsd_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -netbsd -arm" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -netbsd_arm64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -netbsd" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_386) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_amd64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_arm) - mkasm="go run mkasm.go" - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -openbsd -arm -libc" - mksysctl="go run mksysctl_openbsd.go" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -openbsd_arm64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -openbsd_mips64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -openbsd_ppc64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -openbsd_riscv64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -solaris_amd64) - mksyscall="go run mksyscall_solaris.go" - mkerrors="$mkerrors -m64" - mksysnum= - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -illumos_amd64) - mksyscall="go run mksyscall_solaris.go" - mkerrors= - mksysnum= - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -*) - echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 - exit 1 - ;; -esac - -( - if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi - case "$GOOS" in - *) - syscall_goos="syscall_$GOOS.go" - case "$GOOS" in - darwin | dragonfly | freebsd | netbsd | openbsd) - syscall_goos="syscall_bsd.go $syscall_goos" - ;; - esac - if [ -n "$mksyscall" ]; then - if [ "$GOOSARCH" == "aix_ppc64" ]; then - # aix/ppc64 script generates files instead of writing to stdin. - echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; - elif [ "$GOOS" == "illumos" ]; then - # illumos code generation requires a --illumos switch - echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; - # illumos implies solaris, so solaris code generation is also required - echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go"; - else - echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; - fi - fi - esac - if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi - if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi - if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi - if [ -n "$mkasm" ]; then echo "$mkasm $GOOS $GOARCH"; fi -) | $run diff --git a/backend/vendor/golang.org/x/sys/unix/mkerrors.sh b/backend/vendor/golang.org/x/sys/unix/mkerrors.sh deleted file mode 100644 index 31564627..00000000 --- a/backend/vendor/golang.org/x/sys/unix/mkerrors.sh +++ /dev/null @@ -1,783 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# Generate Go code listing errors and other #defined constant -# values (ENAMETOOLONG etc.), by asking the preprocessor -# about the definitions. - -unset LANG -export LC_ALL=C -export LC_CTYPE=C - -if test -z "$GOARCH" -o -z "$GOOS"; then - echo 1>&2 "GOARCH or GOOS not defined in environment" - exit 1 -fi - -# Check that we are using the new build system if we should -if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then - echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." - echo 1>&2 "See README.md" - exit 1 -fi - -if [[ "$GOOS" = "aix" ]]; then - CC=${CC:-gcc} -else - CC=${CC:-cc} -fi - -if [[ "$GOOS" = "solaris" ]]; then - # Assumes GNU versions of utilities in PATH. - export PATH=/usr/gnu/bin:$PATH -fi - -uname=$(uname) - -includes_AIX=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define AF_LOCAL AF_UNIX -' - -includes_Darwin=' -#define _DARWIN_C_SOURCE -#define KERNEL 1 -#define _DARWIN_USE_64_BIT_INODE -#define __APPLE_USE_RFC_3542 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk. -#define TIOCREMOTE 0x80047469 -' - -includes_DragonFly=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - -includes_FreeBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if __FreeBSD__ >= 10 -#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 -#undef SIOCAIFADDR -#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data -#undef SIOCSIFPHYADDR -#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data -#endif -' - -includes_Linux=' -#define _LARGEFILE_SOURCE -#define _LARGEFILE64_SOURCE -#ifndef __LP64__ -#define _FILE_OFFSET_BITS 64 -#endif -#define _GNU_SOURCE - -// is broken on powerpc64, as it fails to include definitions of -// these structures. We just include them copied from . -#if defined(__powerpc__) -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#if defined(__sparc__) -// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the -// definition in glibc. As only the error constants are needed here, include the -// generic termibits.h (which is included by termbits.h on sparc). -#include -#else -#include -#endif - -#ifndef MSG_FASTOPEN -#define MSG_FASTOPEN 0x20000000 -#endif - -#ifndef PTRACE_GETREGS -#define PTRACE_GETREGS 0xc -#endif - -#ifndef PTRACE_SETREGS -#define PTRACE_SETREGS 0xd -#endif - -#ifndef SOL_NETLINK -#define SOL_NETLINK 270 -#endif - -#ifndef SOL_SMC -#define SOL_SMC 286 -#endif - -#ifdef SOL_BLUETOOTH -// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h -// but it is already in bluetooth_linux.go -#undef SOL_BLUETOOTH -#endif - -// Certain constants are missing from the fs/crypto UAPI -#define FS_KEY_DESC_PREFIX "fscrypt:" -#define FS_KEY_DESC_PREFIX_SIZE 8 -#define FS_MAX_KEY_SIZE 64 - -// The code generator produces -0x1 for (~0), but an unsigned value is necessary -// for the tipc_subscr timeout __u32 field. -#undef TIPC_WAIT_FOREVER -#define TIPC_WAIT_FOREVER 0xffffffff - -// Copied from linux/l2tp.h -// Including linux/l2tp.h here causes conflicts between linux/in.h -// and netinet/in.h included via net/route.h above. -#define IPPROTO_L2TP 115 - -// Copied from linux/hid.h. -// Keep in sync with the size of the referenced fields. -#define _HIDIOCGRAWNAME_LEN 128 // sizeof_field(struct hid_device, name) -#define _HIDIOCGRAWPHYS_LEN 64 // sizeof_field(struct hid_device, phys) -#define _HIDIOCGRAWUNIQ_LEN 64 // sizeof_field(struct hid_device, uniq) - -#define _HIDIOCGRAWNAME HIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN) -#define _HIDIOCGRAWPHYS HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN) -#define _HIDIOCGRAWUNIQ HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN) - -' - -includes_NetBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Needed since refers to it... -#define schedppq 1 -' - -includes_OpenBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// We keep some constants not supported in OpenBSD 5.5 and beyond for -// the promise of compatibility. -#define EMUL_ENABLED 0x1 -#define EMUL_NATIVE 0x2 -#define IPV6_FAITH 0x1d -#define IPV6_OPTIONS 0x1 -#define IPV6_RTHDR_STRICT 0x1 -#define IPV6_SOCKOPT_RESERVED1 0x3 -#define SIOCGIFGENERIC 0xc020693a -#define SIOCSIFGENERIC 0x80206939 -#define WALTSIG 0x4 -' - -includes_SunOS=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - - -includes=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' -ccflags="$@" - -# Write go tool cgo -godefs input. -( - echo package unix - echo - echo '/*' - indirect="includes_$(uname)" - echo "${!indirect} $includes" - echo '*/' - echo 'import "C"' - echo 'import "syscall"' - echo - echo 'const (' - - # The gcc command line prints all the #defines - # it encounters while processing the input - echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | - awk ' - $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} - - $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers - $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} - $2 ~ /^(SCM_SRCRT)$/ {next} - $2 ~ /^(MAP_FAILED)$/ {next} - $2 ~ /^ELF_.*$/ {next}# contains ELF_ARCH, etc. - - $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || - $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} - - $2 !~ /^ECCAPBITS/ && - $2 !~ /^ETH_/ && - $2 !~ /^EPROC_/ && - $2 !~ /^EQUIV_/ && - $2 !~ /^EXPR_/ && - $2 !~ /^EVIOC/ && - $2 ~ /^E[A-Z0-9_]+$/ || - $2 ~ /^B[0-9_]+$/ || - $2 ~ /^(OLD|NEW)DEV$/ || - $2 == "BOTHER" || - $2 ~ /^CI?BAUD(EX)?$/ || - $2 == "IBSHIFT" || - $2 ~ /^V[A-Z0-9]+$/ || - $2 ~ /^CS[A-Z0-9]/ || - $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || - $2 ~ /^IGN/ || - $2 ~ /^IX(ON|ANY|OFF)$/ || - $2 ~ /^IN(LCR|PCK)$/ || - $2 !~ "X86_CR3_PCID_NOFLUSH" && - $2 ~ /(^FLU?SH)|(FLU?SH$)/ || - $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || - $2 == "BRKINT" || - $2 == "HUPCL" || - $2 == "PENDIN" || - $2 == "TOSTOP" || - $2 == "XCASE" || - $2 == "ALTWERASE" || - $2 == "NOKERNINFO" || - $2 == "NFDBITS" || - $2 ~ /^PAR/ || - $2 ~ /^SIG[^_]/ || - $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || - $2 ~ /^O?XTABS$/ || - $2 ~ /^TC[IO](ON|OFF)$/ || - $2 ~ /^IN_/ || - $2 ~ /^KCM/ || - $2 ~ /^LANDLOCK_/ || - $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^LO_(KEY|NAME)_SIZE$/ || - $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || - $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || - $2 ~ /^NFC_.*_(MAX)?SIZE$/ || - $2 ~ /^RAW_PAYLOAD_/ || - $2 ~ /^[US]F_/ || - $2 ~ /^TP_STATUS_/ || - $2 ~ /^FALLOC_/ || - $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || - $2 == "SOMAXCONN" || - $2 == "NAME_MAX" || - $2 == "IFNAMSIZ" || - $2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ || - $2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ || - $2 ~ /^HW_MACHINE$/ || - $2 ~ /^SYSCTL_VERS/ || - $2 !~ "MNT_BITS" && - $2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ || - $2 ~ /^NS_GET_/ || - $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ || - $2 ~ /^KEXEC_/ || - $2 ~ /^LINUX_REBOOT_CMD_/ || - $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || - $2 ~ /^MODULE_INIT_/ || - $2 !~ "NLA_TYPE_MASK" && - $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && - $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || - $2 ~ /^FIORDCHK$/ || - $2 ~ /^SIOC/ || - $2 ~ /^TIOC/ || - $2 ~ /^TCGET/ || - $2 ~ /^TCSET/ || - $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || - $2 !~ "RTF_BITS" && - $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ || - $2 ~ /^BIOC/ || - $2 ~ /^DIOC/ || - $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || - $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || - $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || - $2 ~ /^CLONE_[A-Z_]+/ || - $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^AUDIT_/ || - $2 ~ /^(CLOCK|TIMER)_/ || - $2 ~ /^CAN_/ || - $2 ~ /^CAP_/ || - $2 ~ /^CP_/ || - $2 ~ /^CPUSTATES$/ || - $2 ~ /^CTLIOCGINFO$/ || - $2 ~ /^ALG_/ || - $2 ~ /^FI(CLONE|DEDUPERANGE)/ || - $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || - $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || - $2 ~ /^FS_VERITY_/ || - $2 ~ /^FSCRYPT_/ || - $2 ~ /^DM_/ || - $2 ~ /^GRND_/ || - $2 ~ /^RND/ || - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || - $2 ~ /^SECCOMP_MODE_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SPLICE_/ || - $2 ~ /^SYNC_FILE_RANGE_/ || - $2 !~ /IOC_MAGIC/ && - $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || - $2 ~ /^(VM|VMADDR)_/ || - $2 ~ /^IOCTL_VM_SOCKETS_/ || - $2 ~ /^(TASKSTATS|TS)_/ || - $2 ~ /^CGROUPSTATS_/ || - $2 ~ /^GENL_/ || - $2 ~ /^STATX_/ || - $2 ~ /^RENAME/ || - $2 ~ /^UBI_IOC[A-Z]/ || - $2 ~ /^UTIME_/ || - $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || - $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || - $2 ~ /^CRYPTO_/ || - $2 ~ /^TIPC_/ || - $2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" && - $2 ~ /^DEVLINK_/ || - $2 ~ /^ETHTOOL_/ || - $2 ~ /^LWTUNNEL_IP/ || - $2 ~ /^ITIMER_/ || - $2 !~ "WMESGLEN" && - $2 ~ /^W[A-Z0-9]+$/ || - $2 ~ /^P_/ || - $2 ~/^PPPIOC/ || - $2 ~ /^FAN_|FANOTIFY_/ || - $2 == "HID_MAX_DESCRIPTOR_SIZE" || - $2 ~ /^_?HIDIOC/ || - $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || - $2 ~ /^MTD/ || - $2 ~ /^OTP/ || - $2 ~ /^MEM/ || - $2 ~ /^WG/ || - $2 ~ /^FIB_RULE_/ || - $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} - $2 ~ /^__WCOREFLAG$/ {next} - $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} - - {next} - ' | sort - - echo ')' -) >_const.go - -# Pull out the error names for later. -errors=$( - echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | - sort -) - -# Pull out the signal names for later. -signals=$( - echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | - grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | - sort -) - -# Again, writing regexps to a file. -echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | - sort >_error.grep -echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | - grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | - sort >_signal.grep - -echo '// mkerrors.sh' "$@" -echo '// Code generated by the command above; see README.md. DO NOT EDIT.' -echo -echo "//go:build ${GOARCH} && ${GOOS}" -echo "// +build ${GOARCH},${GOOS}" -echo -go tool cgo -godefs -- "$@" _const.go >_error.out -cat _error.out | grep -vf _error.grep | grep -vf _signal.grep -echo -echo '// Errors' -echo 'const (' -cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' -echo ')' - -echo -echo '// Signals' -echo 'const (' -cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' -echo ')' - -# Run C program to print error and syscall strings. -( - echo -E " -#include -#include -#include -#include -#include -#include - -#define nelem(x) (sizeof(x)/sizeof((x)[0])) - -enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below - -struct tuple { - int num; - const char *name; -}; - -struct tuple errors[] = { -" - for i in $errors - do - echo -E ' {'$i', "'$i'" },' - done - - echo -E " -}; - -struct tuple signals[] = { -" - for i in $signals - do - echo -E ' {'$i', "'$i'" },' - done - - # Use -E because on some systems bash builtin interprets \n itself. - echo -E ' -}; - -static int -tuplecmp(const void *a, const void *b) -{ - return ((struct tuple *)a)->num - ((struct tuple *)b)->num; -} - -int -main(void) -{ - int i, e; - char buf[1024], *p; - - printf("\n\n// Error table\n"); - printf("var errorList = [...]struct {\n"); - printf("\tnum syscall.Errno\n"); - printf("\tname string\n"); - printf("\tdesc string\n"); - printf("} {\n"); - qsort(errors, nelem(errors), sizeof errors[0], tuplecmp); - for(i=0; i 0 && errors[i-1].num == e) - continue; - strncpy(buf, strerror(e), sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - printf("\t{ %d, \"%s\", \"%s\" },\n", e, errors[i].name, buf); - } - printf("}\n\n"); - - printf("\n\n// Signal table\n"); - printf("var signalList = [...]struct {\n"); - printf("\tnum syscall.Signal\n"); - printf("\tname string\n"); - printf("\tdesc string\n"); - printf("} {\n"); - qsort(signals, nelem(signals), sizeof signals[0], tuplecmp); - for(i=0; i 0 && signals[i-1].num == e) - continue; - strncpy(buf, strsignal(e), sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - // cut trailing : number. - p = strrchr(buf, ":"[0]); - if(p) - *p = '\0'; - printf("\t{ %d, \"%s\", \"%s\" },\n", e, signals[i].name, buf); - } - printf("}\n\n"); - - return 0; -} - -' -) >_errors.c - -$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/backend/vendor/golang.org/x/sys/unix/pagesize_unix.go b/backend/vendor/golang.org/x/sys/unix/pagesize_unix.go deleted file mode 100644 index 53f1b4c5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/pagesize_unix.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - -// For Unix, get the pagesize from the runtime. - -package unix - -import "syscall" - -func Getpagesize() int { - return syscall.Getpagesize() -} diff --git a/backend/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/backend/vendor/golang.org/x/sys/unix/pledge_openbsd.go deleted file mode 100644 index eb48294b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/pledge_openbsd.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "errors" - "fmt" - "strconv" - "syscall" - "unsafe" -) - -// Pledge implements the pledge syscall. -// -// The pledge syscall does not accept execpromises on OpenBSD releases -// before 6.3. -// -// execpromises must be empty when Pledge is called on OpenBSD -// releases predating 6.3, otherwise an error will be returned. -// -// For more information see pledge(2). -func Pledge(promises, execpromises string) error { - maj, min, err := majmin() - if err != nil { - return err - } - - err = pledgeAvailable(maj, min, execpromises) - if err != nil { - return err - } - - pptr, err := syscall.BytePtrFromString(promises) - if err != nil { - return err - } - - // This variable will hold either a nil unsafe.Pointer or - // an unsafe.Pointer to a string (execpromises). - var expr unsafe.Pointer - - // If we're running on OpenBSD > 6.2, pass execpromises to the syscall. - if maj > 6 || (maj == 6 && min > 2) { - exptr, err := syscall.BytePtrFromString(execpromises) - if err != nil { - return err - } - expr = unsafe.Pointer(exptr) - } - - _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) - if e != 0 { - return e - } - - return nil -} - -// PledgePromises implements the pledge syscall. -// -// This changes the promises and leaves the execpromises untouched. -// -// For more information see pledge(2). -func PledgePromises(promises string) error { - maj, min, err := majmin() - if err != nil { - return err - } - - err = pledgeAvailable(maj, min, "") - if err != nil { - return err - } - - // This variable holds the execpromises and is always nil. - var expr unsafe.Pointer - - pptr, err := syscall.BytePtrFromString(promises) - if err != nil { - return err - } - - _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) - if e != 0 { - return e - } - - return nil -} - -// PledgeExecpromises implements the pledge syscall. -// -// This changes the execpromises and leaves the promises untouched. -// -// For more information see pledge(2). -func PledgeExecpromises(execpromises string) error { - maj, min, err := majmin() - if err != nil { - return err - } - - err = pledgeAvailable(maj, min, execpromises) - if err != nil { - return err - } - - // This variable holds the promises and is always nil. - var pptr unsafe.Pointer - - exptr, err := syscall.BytePtrFromString(execpromises) - if err != nil { - return err - } - - _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0) - if e != 0 { - return e - } - - return nil -} - -// majmin returns major and minor version number for an OpenBSD system. -func majmin() (major int, minor int, err error) { - var v Utsname - err = Uname(&v) - if err != nil { - return - } - - major, err = strconv.Atoi(string(v.Release[0])) - if err != nil { - err = errors.New("cannot parse major version number returned by uname") - return - } - - minor, err = strconv.Atoi(string(v.Release[2])) - if err != nil { - err = errors.New("cannot parse minor version number returned by uname") - return - } - - return -} - -// pledgeAvailable checks for availability of the pledge(2) syscall -// based on the running OpenBSD version. -func pledgeAvailable(maj, min int, execpromises string) error { - // If OpenBSD <= 5.9, pledge is not available. - if (maj == 5 && min != 9) || maj < 5 { - return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min) - } - - // If OpenBSD <= 6.2 and execpromises is not empty, - // return an error - execpromises is not available before 6.3 - if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" { - return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min) - } - - return nil -} diff --git a/backend/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/backend/vendor/golang.org/x/sys/unix/ptrace_darwin.go deleted file mode 100644 index 39dba6ca..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ptrace_darwin.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin && !ios -// +build darwin,!ios - -package unix - -import "unsafe" - -func ptrace(request int, pid int, addr uintptr, data uintptr) error { - return ptrace1(request, pid, addr, data) -} - -func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) error { - return ptrace1Ptr(request, pid, addr, data) -} diff --git a/backend/vendor/golang.org/x/sys/unix/ptrace_ios.go b/backend/vendor/golang.org/x/sys/unix/ptrace_ios.go deleted file mode 100644 index 9ea66330..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ptrace_ios.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build ios -// +build ios - -package unix - -import "unsafe" - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - return ENOTSUP -} - -func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { - return ENOTSUP -} diff --git a/backend/vendor/golang.org/x/sys/unix/race.go b/backend/vendor/golang.org/x/sys/unix/race.go deleted file mode 100644 index 6f6c5fec..00000000 --- a/backend/vendor/golang.org/x/sys/unix/race.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin && race) || (linux && race) || (freebsd && race) -// +build darwin,race linux,race freebsd,race - -package unix - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/backend/vendor/golang.org/x/sys/unix/race0.go b/backend/vendor/golang.org/x/sys/unix/race0.go deleted file mode 100644 index 706e1322..00000000 --- a/backend/vendor/golang.org/x/sys/unix/race0.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos -// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly zos - -package unix - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/backend/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/backend/vendor/golang.org/x/sys/unix/readdirent_getdents.go deleted file mode 100644 index 4d625756..00000000 --- a/backend/vendor/golang.org/x/sys/unix/readdirent_getdents.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd -// +build aix dragonfly freebsd linux netbsd openbsd - -package unix - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) -} diff --git a/backend/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/backend/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go deleted file mode 100644 index 2a4ba47c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin -// +build darwin - -package unix - -import "unsafe" - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // 64 bits should be enough. (32 bits isn't even on 386). Since the - // actual system call is getdirentries64, 64 is a good guess. - // TODO(rsc): Can we use a single global basep for all calls? - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) -} diff --git a/backend/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/backend/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go deleted file mode 100644 index 5144deec..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { - // 64-bit Dragonfly before the September 2019 ABI changes still requires - // 32-bit aligned access to network subsystem. - salign = 4 - } - return (salen + salign - 1) & ^(salign - 1) -} diff --git a/backend/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/backend/vendor/golang.org/x/sys/unix/sockcmsg_linux.go deleted file mode 100644 index 5f63147e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Socket control messages - -package unix - -import "unsafe" - -// UnixCredentials encodes credentials into a socket control message -// for sending to another process. This can be used for -// authentication. -func UnixCredentials(ucred *Ucred) []byte { - b := make([]byte, CmsgSpace(SizeofUcred)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_CREDENTIALS - h.SetLen(CmsgLen(SizeofUcred)) - *(*Ucred)(h.data(0)) = *ucred - return b -} - -// ParseUnixCredentials decodes a socket control message that contains -// credentials in a Ucred structure. To receive such a message, the -// SO_PASSCRED option must be enabled on the socket. -func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_CREDENTIALS { - return nil, EINVAL - } - ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) - return &ucred, nil -} - -// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. -func PktInfo4(info *Inet4Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IP - h.Type = IP_PKTINFO - h.SetLen(CmsgLen(SizeofInet4Pktinfo)) - *(*Inet4Pktinfo)(h.data(0)) = *info - return b -} - -// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. -func PktInfo6(info *Inet6Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IPV6 - h.Type = IPV6_PKTINFO - h.SetLen(CmsgLen(SizeofInet6Pktinfo)) - *(*Inet6Pktinfo)(h.data(0)) = *info - return b -} - -// ParseOrigDstAddr decodes a socket control message containing the original -// destination address. To receive such a message the IP_RECVORIGDSTADDR or -// IPV6_RECVORIGDSTADDR option must be enabled on the socket. -func ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) { - switch { - case m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR: - pp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0])) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR: - pp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0])) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - - default: - return nil, EINVAL - } -} diff --git a/backend/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/backend/vendor/golang.org/x/sys/unix/sockcmsg_unix.go deleted file mode 100644 index 3865943f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -// Socket control messages - -package unix - -import ( - "unsafe" -) - -// CmsgLen returns the value to store in the Len field of the Cmsghdr -// structure, taking into account any necessary alignment. -func CmsgLen(datalen int) int { - return cmsgAlignOf(SizeofCmsghdr) + datalen -} - -// CmsgSpace returns the number of bytes an ancillary element with -// payload of the passed data length occupies. -func CmsgSpace(datalen int) int { - return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) -} - -func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { - return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) -} - -// SocketControlMessage represents a socket control message. -type SocketControlMessage struct { - Header Cmsghdr - Data []byte -} - -// ParseSocketControlMessage parses b as an array of socket control -// messages. -func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { - var msgs []SocketControlMessage - i := 0 - for i+CmsgLen(0) <= len(b) { - h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) - if err != nil { - return nil, err - } - m := SocketControlMessage{Header: *h, Data: dbuf} - msgs = append(msgs, m) - i += cmsgAlignOf(int(h.Len)) - } - return msgs, nil -} - -// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, -// message data (a slice of b), and the remainder of b after that single message. -// When there are no remaining messages, len(remainder) == 0. -func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { - h, dbuf, err := socketControlMessageHeaderAndData(b) - if err != nil { - return Cmsghdr{}, nil, nil, err - } - if i := cmsgAlignOf(int(h.Len)); i < len(b) { - remainder = b[i:] - } - return *h, dbuf, remainder, nil -} - -func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { - return nil, nil, EINVAL - } - return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil -} - -// UnixRights encodes a set of open file descriptors into a socket -// control message for sending to another process. -func UnixRights(fds ...int) []byte { - datalen := len(fds) * 4 - b := make([]byte, CmsgSpace(datalen)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_RIGHTS - h.SetLen(CmsgLen(datalen)) - for i, fd := range fds { - *(*int32)(h.data(4 * uintptr(i))) = int32(fd) - } - return b -} - -// ParseUnixRights decodes a socket control message that contains an -// integer array of open file descriptors from another process. -func ParseUnixRights(m *SocketControlMessage) ([]int, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_RIGHTS { - return nil, EINVAL - } - fds := make([]int, len(m.Data)>>2) - for i, j := 0, 0; i < len(m.Data); i += 4 { - fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) - j++ - } - return fds, nil -} diff --git a/backend/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/backend/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go deleted file mode 100644 index 0840fe4a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin freebsd linux netbsd openbsd solaris zos - -package unix - -import ( - "runtime" -) - -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - - // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in - // sockcmsg_dragonfly.go - switch runtime.GOOS { - case "aix": - // There is no alignment on AIX. - salign = 1 - case "darwin", "ios", "illumos", "solaris": - // NOTE: It seems like 64-bit Darwin, Illumos and Solaris - // kernels still require 32-bit aligned access to network - // subsystem. - if SizeofPtr == 8 { - salign = 4 - } - case "netbsd", "openbsd": - // NetBSD and OpenBSD armv7 require 64-bit alignment. - if runtime.GOARCH == "arm" { - salign = 8 - } - // NetBSD aarch64 requires 128-bit alignment. - if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { - salign = 16 - } - case "zos": - // z/OS socket macros use [32-bit] sizeof(int) alignment, - // not pointer width. - salign = SizeofInt - } - - return (salen + salign - 1) & ^(salign - 1) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall.go b/backend/vendor/golang.org/x/sys/unix/syscall.go deleted file mode 100644 index 63e8c838..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -// Package unix contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display OS-specific documentation for the current -// system. If you want godoc to display OS documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package unix // import "golang.org/x/sys/unix" - -import ( - "bytes" - "strings" - "unsafe" -) - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, EINVAL - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any -// bytes after the NUL removed. -func ByteSliceToString(s []byte) string { - if i := bytes.IndexByte(s, 0); i != -1 { - s = s[:i] - } - return string(s) -} - -// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. -// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated -// at a zero byte; if the zero byte is not present, the program may crash. -func BytePtrToString(p *byte) string { - if p == nil { - return "" - } - if *p == 0 { - return "" - } - - // Find NUL terminator. - n := 0 - for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + 1) - } - - return string(unsafe.Slice(p, n)) -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -var _zero uintptr diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_aix.go b/backend/vendor/golang.org/x/sys/unix/syscall_aix.go deleted file mode 100644 index c406ae00..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_aix.go +++ /dev/null @@ -1,599 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix -// +build aix - -// Aix system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import "unsafe" - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n > len(sa.raw.Path) { - return nil, 0, EINVAL - } - if n == len(sa.raw.Path) && name[0] != '@' { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = uint8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' { - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -//sys getcwd(buf []byte) (err error) - -const ImplementsGetwd = true - -func Getwd() (ret string, err error) { - for len := uint64(4096); ; len *= 2 { - b := make([]byte, len) - err := getcwd(b) - if err == nil { - i := 0 - for b[i] != 0 { - i++ - } - return string(b[0:i]), nil - } - if err != ERANGE { - return "", err - } - } -} - -func Getcwd(buf []byte) (n int, err error) { - err = getcwd(buf) - if err == nil { - i := 0 - for buf[i] != 0 { - i++ - } - n = i + 1 - } - return -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 16 on BSD. - if n < 0 || n > 1000 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -/* - * Socket - */ - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - - // Some versions of AIX have a bug in getsockname (see IV78655). - // We can't rely on sa.Len being set correctly. - n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL. - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - n = i - break - } - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Gettimeofday(tv *Timeval) (err error) { - err = gettimeofday(tv, nil) - return -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sys getdirent(fd int, buf []byte) (n int, err error) - -func Getdents(fd int, buf []byte) (n int, err error) { - return getdirent(fd, buf) -} - -//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - var r Pid_t - err = ERESTART - // AIX wait4 may return with ERESTART errno, while the processus is still - // active. - for err == ERESTART { - r, err = wait4(Pid_t(pid), &status, options, rusage) - } - wpid = int(r) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -/* - * Wait - */ - -type WaitStatus uint32 - -func (w WaitStatus) Stopped() bool { return w&0x40 != 0 } -func (w WaitStatus) StopSignal() Signal { - if !w.Stopped() { - return -1 - } - return Signal(w>>8) & 0xFF -} - -func (w WaitStatus) Exited() bool { return w&0xFF == 0 } -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int((w >> 8) & 0xFF) -} - -func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 } -func (w WaitStatus) Signal() Signal { - if !w.Signaled() { - return -1 - } - return Signal(w>>16) & 0xFF -} - -func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 } - -func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 } - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys ioctl(fd int, req int, arg uintptr) (err error) -//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl - -// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX -// There is no way to create a custom fcntl and to keep //sys fcntl easily, -// Therefore, the programmer must call dup2 instead of fcntl in this case. - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -//sys fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range - -func Fsync(fd int) error { - return fsyncRange(fd, O_SYNC, 0, 0) -} - -/* - * Direct access - */ - -//sys Acct(path string) (err error) -//sys Chdir(path string) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(oldfd int) (fd int, err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -// readdir_r -//sysnb Getpgid(pid int) (pgid int, err error) - -//sys Getpgrp() (pid int) - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Kill(pid int, sig Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog -//sys Mkdir(dirfd int, path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) - -//sys Setuid(uid int) (err error) -//sys Setgid(uid int) (err error) - -//sys Setpriority(which int, who int, prio int) (err error) -//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) -//sys Sync() -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sysnb Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys readlen(fd int, p *byte, np int) (n int, err error) = read -//sys writelen(fd int, p *byte, np int) (n int, err error) = write - -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys fstat(fd int, stat *Stat_t) (err error) -//sys fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = pread64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys stat(path string, statptr *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys Truncate(path string, length int64) (err error) - -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) - -// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used. -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg - -//sys munmap(addr uintptr, length uintptr) (err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -//sysnb pipe(p *[2]_C_int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) - -//sys Getsystemcfg(label int) (n uint64) - -//sys umount(target string) (err error) - -func Unmount(target string, flags int) (err error) { - if flags != 0 { - // AIX doesn't have any flags for umount. - return ENOSYS - } - return umount(target) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go deleted file mode 100644 index f2871fa9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix && ppc -// +build aix,ppc - -package unix - -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64 - -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Fstat(fd int, stat *Stat_t) error { - return fstat(fd, stat) -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { - return fstatat(dirfd, path, stat, flags) -} - -func Lstat(path string, stat *Stat_t) error { - return lstat(path, stat) -} - -func Stat(path string, statptr *Stat_t) error { - return stat(path, statptr) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go deleted file mode 100644 index 75718ec0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix && ppc64 -// +build aix,ppc64 - -package unix - -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek - -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64 - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int64(sec), Usec: int32(usec)} -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// In order to only have Timespec structure, type of Stat_t's fields -// Atim, Mtim and Ctim is changed from StTimespec to Timespec during -// ztypes generation. -// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an -// int32, so the fields' value must be modified. -func fixStatTimFields(stat *Stat_t) { - stat.Atim.Nsec >>= 32 - stat.Mtim.Nsec >>= 32 - stat.Ctim.Nsec >>= 32 -} - -func Fstat(fd int, stat *Stat_t) error { - err := fstat(fd, stat) - if err != nil { - return err - } - fixStatTimFields(stat) - return nil -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { - err := fstatat(dirfd, path, stat, flags) - if err != nil { - return err - } - fixStatTimFields(stat) - return nil -} - -func Lstat(path string, stat *Stat_t) error { - err := lstat(path, stat) - if err != nil { - return err - } - fixStatTimFields(stat) - return nil -} - -func Stat(path string, statptr *Stat_t) error { - err := stat(path, statptr) - if err != nil { - return err - } - fixStatTimFields(statptr) - return nil -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_bsd.go b/backend/vendor/golang.org/x/sys/unix/syscall_bsd.go deleted file mode 100644 index 7705c327..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ /dev/null @@ -1,624 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin || dragonfly || freebsd || netbsd || openbsd -// +build darwin dragonfly freebsd netbsd openbsd - -// BSD system call wrappers shared by *BSD based systems -// including OS X (Darwin) and FreeBSD. Like the other -// syscall_*.go files it is compiled as Go code but also -// used as input to mksyscall which parses the //sys -// lines and generates system call stubs. - -package unix - -import ( - "runtime" - "syscall" - "unsafe" -) - -const ImplementsGetwd = true - -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 16 on BSD. - if n < 0 || n > 1000 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - killed = 9 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } - -func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL } - -func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys Shutdown(s int, how int) (err error) - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet4 - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet6 - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) || n == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Index == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = sa.Len - sa.raw.Family = AF_LINK - sa.raw.Index = sa.Index - sa.raw.Type = sa.Type - sa.raw.Nlen = sa.Nlen - sa.raw.Alen = sa.Alen - sa.raw.Slen = sa.Slen - sa.raw.Data = sa.Data - return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_LINK: - pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) - sa := new(SockaddrDatalink) - sa.Len = pp.Len - sa.Family = pp.Family - sa.Index = pp.Index - sa.Type = pp.Type - sa.Nlen = pp.Nlen - sa.Alen = pp.Alen - sa.Slen = pp.Slen - sa.Data = pp.Data - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { - return nil, EINVAL - } - sa := new(SockaddrUnix) - - // Some BSDs include the trailing NUL in the length, whereas - // others do not. Work around this by subtracting the leading - // family and len. The path is then scanned to see if a NUL - // terminator still exists within the length. - n := int(pp.Len) - 2 // subtract leading Family, Len - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - // found early NUL; assume Len included the NUL - // or was overestimating. - n = i - break - } - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return anyToSockaddrGOOS(fd, rsa) -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if err != nil { - return - } - if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 { - // Accepted socket has no address. - // This is likely due to a bug in xnu kernels, - // where instead of ECONNABORTED error socket - // is accepted, but has no address. - Close(nfd) - return 0, nil, ECONNABORTED - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be - // reported upstream. - if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { - rsa.Addr.Family = AF_UNIX - rsa.Addr.Len = SizeofSockaddrUnix - } - return anyToSockaddr(fd, &rsa) -} - -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - return "", err - } - return string(buf[:vallen-1]), nil -} - -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) - -func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { - var change, event unsafe.Pointer - if len(changes) > 0 { - change = unsafe.Pointer(&changes[0]) - } - if len(events) > 0 { - event = unsafe.Pointer(&events[0]) - } - return kevent(kq, change, len(changes), event, len(events), timeout) -} - -// sysctlmib translates name to mib number and appends any additional args. -func sysctlmib(name string, args ...int) ([]_C_int, error) { - // Translate name to mib number. - mib, err := nametomib(name) - if err != nil { - return nil, err - } - - for _, a := range args { - mib = append(mib, _C_int(a)) - } - - return mib, nil -} - -func Sysctl(name string) (string, error) { - return SysctlArgs(name) -} - -func SysctlArgs(name string, args ...int) (string, error) { - buf, err := SysctlRaw(name, args...) - if err != nil { - return "", err - } - n := len(buf) - - // Throw away terminating NUL. - if n > 0 && buf[n-1] == '\x00' { - n-- - } - return string(buf[0:n]), nil -} - -func SysctlUint32(name string) (uint32, error) { - return SysctlUint32Args(name) -} - -func SysctlUint32Args(name string, args ...int) (uint32, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(4) - buf := make([]byte, 4) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 4 { - return 0, EIO - } - return *(*uint32)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlUint64(name string, args ...int) (uint64, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(8) - buf := make([]byte, 8) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 8 { - return 0, EIO - } - return *(*uint64)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlRaw(name string, args ...int) ([]byte, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Read into buffer of that size. - buf := make([]byte, n) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return nil, err - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n], nil -} - -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - -func SysctlTimeval(name string) (*Timeval, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - var tv Timeval - n := uintptr(unsafe.Sizeof(tv)) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil { - return nil, err - } - if n != unsafe.Sizeof(tv) { - return nil, EIO - } - return &tv, nil -} - -//sys utimes(path string, timeval *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(ts) != 2 { - return EINVAL - } - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := [2]Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys futimes(fd int, timeval *[2]Timeval) (err error) - -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimes(fd, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -// TODO: wrap -// Acct(name nil-string) (err error) -// Gethostuuid(uuid *byte, timeout *Timespec) (err error) -// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys Madvise(b []byte, behav int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_darwin.go b/backend/vendor/golang.org/x/sys/unix/syscall_darwin.go deleted file mode 100644 index 20692150..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ /dev/null @@ -1,826 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Darwin system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "fmt" - "syscall" - "unsafe" -) - -//sys closedir(dir uintptr) (err error) -//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) - -func fdopendir(fd int) (dir uintptr, err error) { - r0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) - dir = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fdopendir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // Simulate Getdirentries using fdopendir/readdir_r/closedir. - // We store the number of entries to skip in the seek - // offset of fd. See issue #31368. - // It's not the full required semantics, but should handle the case - // of calling Getdirentries or ReadDirent repeatedly. - // It won't handle assigning the results of lseek to *basep, or handle - // the directory being edited underfoot. - skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - return 0, err - } - - // We need to duplicate the incoming file descriptor - // because the caller expects to retain control of it, but - // fdopendir expects to take control of its argument. - // Just Dup'ing the file descriptor is not enough, as the - // result shares underlying state. Use Openat to make a really - // new file descriptor referring to the same directory. - fd2, err := Openat(fd, ".", O_RDONLY, 0) - if err != nil { - return 0, err - } - d, err := fdopendir(fd2) - if err != nil { - Close(fd2) - return 0, err - } - defer closedir(d) - - var cnt int64 - for { - var entry Dirent - var entryp *Dirent - e := readdir_r(d, &entry, &entryp) - if e != 0 { - return n, errnoErr(e) - } - if entryp == nil { - break - } - if skip > 0 { - skip-- - cnt++ - continue - } - - reclen := int(entry.Reclen) - if reclen > len(buf) { - // Not enough room. Return for now. - // The counter will let us know where we should start up again. - // Note: this strategy for suspending in the middle and - // restarting is O(n^2) in the length of the directory. Oh well. - break - } - - // Copy entry into return buffer. - s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) - copy(buf, s) - - buf = buf[reclen:] - n += reclen - cnt++ - } - // Set the seek offset of the input fd to record - // how many files we've already returned. - _, err = Seek(fd, cnt, 0 /* SEEK_SET */) - if err != nil { - return n, err - } - - return n, nil -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - raw RawSockaddrDatalink -} - -// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets. -type SockaddrCtl struct { - ID uint32 - Unit uint32 - raw RawSockaddrCtl -} - -func (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sc_len = SizeofSockaddrCtl - sa.raw.Sc_family = AF_SYSTEM - sa.raw.Ss_sysaddr = AF_SYS_CONTROL - sa.raw.Sc_id = sa.ID - sa.raw.Sc_unit = sa.Unit - return unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_LOCAL: refers to local communication (loopback). - // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - raw RawSockaddrVM -} - -func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Len = SizeofSockaddrVM - sa.raw.Family = AF_VSOCK - sa.raw.Port = sa.Port - sa.raw.Cid = sa.CID - - return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_SYSTEM: - pp := (*RawSockaddrCtl)(unsafe.Pointer(rsa)) - if pp.Ss_sysaddr == AF_SYS_CONTROL { - sa := new(SockaddrCtl) - sa.ID = pp.Sc_id - sa.Unit = pp.Sc_unit - return sa, nil - } - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - } - return sa, nil - } - return nil, EAFNOSUPPORT -} - -// Some external packages rely on SYS___SYSCTL being defined to implement their -// own sysctl wrappers. Provide it here, even though direct syscalls are no -// longer supported on darwin. -const SYS___SYSCTL = SYS_SYSCTL - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } -func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } -func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } - -//sysnb pipe(p *[2]int32) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var x [2]int32 - err = pipe(&x) - if err == nil { - p[0] = int(x[0]) - p[1] = int(x[1]) - } - return -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - return getfsstat(_p0, bufsize, flags) -} - -func xattrPointer(dest []byte) *byte { - // It's only when dest is set to NULL that the OS X implementations of - // getxattr() and listxattr() return the current sizes of the named attributes. - // An empty byte array is not sufficient. To maintain the same behaviour as the - // linux implementation, we wrap around the system calls and pass in NULL when - // dest is empty. - var destp *byte - if len(dest) > 0 { - destp = &dest[0] - } - return destp -} - -//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) -} - -//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0) -} - -//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - // The parameters for the OS X implementation vary slightly compared to the - // linux system call, specifically the position parameter: - // - // linux: - // int setxattr( - // const char *path, - // const char *name, - // const void *value, - // size_t size, - // int flags - // ); - // - // darwin: - // int setxattr( - // const char *path, - // const char *name, - // void *value, - // size_t size, - // u_int32_t position, - // int options - // ); - // - // position specifies the offset within the extended attribute. In the - // current implementation, only the resource fork extended attribute makes - // use of this argument. For all others, position is reserved. We simply - // default to setting it to zero. - return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) -} - -//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0) -} - -//sys removexattr(path string, attr string, options int) (err error) - -func Removexattr(path string, attr string) (err error) { - // We wrap around and explicitly zero out the options provided to the OS X - // implementation of removexattr, we do so for interoperability with the - // linux variant. - return removexattr(path, attr, 0) -} - -func Lremovexattr(link string, attr string) (err error) { - return removexattr(link, attr, XATTR_NOFOLLOW) -} - -//sys fremovexattr(fd int, attr string, options int) (err error) - -func Fremovexattr(fd int, attr string) (err error) { - return fremovexattr(fd, attr, 0) -} - -//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error) - -func Listxattr(path string, dest []byte) (sz int, err error) { - return listxattr(path, xattrPointer(dest), len(dest), 0) -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) -} - -//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - return flistxattr(fd, xattrPointer(dest), len(dest), 0) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Wrapped - */ - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -//sys kill(pid int, signum int, posix int) (err error) - -func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { - return ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo)) -} - -// IfreqMTU is struct ifreq used to get or set a network device's MTU. -type IfreqMTU struct { - Name [IFNAMSIZ]byte - MTU int32 -} - -// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU -// of the network device specified by ifname. -func IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) { - var ifreq IfreqMTU - copy(ifreq.Name[:], ifname) - err := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq)) - return &ifreq, err -} - -// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU -// of the network device specified by ifreq.Name. -func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { - return ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq)) -} - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var length = int64(count) - err = sendfile(infd, outfd, *offset, &length, nil, 0) - written = int(length) - return -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. -// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. -func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { - x := new(Xucred) - vallen := _Socklen(SizeofXucred) - err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) - return x, err -} - -func GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) { - var value TCPConnectionInfo - vallen := _Socklen(SizeofTCPConnectionInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - var kinfo KinfoProc - n := uintptr(SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofKinfoProc { - return nil, EIO - } - return &kinfo, nil -} - -func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } - - // Read into buffer of that size. - buf := make([]KinfoProc, n/SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { - return nil, err - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n/SizeofKinfoProc], nil -} - -//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) - -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) -//sys shmdt(addr uintptr) (err error) -//sys shmget(key int, size int, flag int) (id int, err error) - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Clonefile(src string, dst string, flags int) (err error) -//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exchangedata(path1 string, path2 string, options int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getcwd(buf []byte) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tp *Timeval) (err error) -//sysnb Getuid() (uid int) -//sysnb Issetugid() (tainted bool) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) -//sys Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sys Setprivexec(flag int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE - -/* - * Unimplemented - */ -// Profil -// Sigaction -// Sigprocmask -// Getlogin -// Sigpending -// Sigaltstack -// Ioctl -// Reboot -// Execve -// Vfork -// Sbrk -// Sstk -// Ovadvise -// Mincore -// Setitimer -// Swapon -// Select -// Sigsuspend -// Readv -// Writev -// Nfssvc -// Getfh -// Quotactl -// Csops -// Waitid -// Add_profil -// Kdebug_trace -// Sigreturn -// Atsocket -// Kqueue_from_portset_np -// Kqueue_portset -// Getattrlist -// Getdirentriesattr -// Searchfs -// Delete -// Copyfile -// Watchevent -// Waitevent -// Modwatch -// Fsctl -// Initgroups -// Posix_spawn -// Nfsclnt -// Fhopen -// Minherit -// Semsys -// Msgsys -// Shmsys -// Semctl -// Semget -// Semop -// Msgctl -// Msgget -// Msgsnd -// Msgrcv -// Shm_open -// Shm_unlink -// Sem_open -// Sem_close -// Sem_unlink -// Sem_wait -// Sem_trywait -// Sem_post -// Sem_getvalue -// Sem_init -// Sem_destroy -// Open_extended -// Umask_extended -// Stat_extended -// Lstat_extended -// Fstat_extended -// Chmod_extended -// Fchmod_extended -// Access_extended -// Settid -// Gettid -// Setsgroups -// Getsgroups -// Setwgroups -// Getwgroups -// Mkfifo_extended -// Mkdir_extended -// Identitysvc -// Shared_region_check_np -// Shared_region_map_np -// __pthread_mutex_destroy -// __pthread_mutex_init -// __pthread_mutex_lock -// __pthread_mutex_trylock -// __pthread_mutex_unlock -// __pthread_cond_init -// __pthread_cond_destroy -// __pthread_cond_broadcast -// __pthread_cond_signal -// Setsid_with_pid -// __pthread_cond_timedwait -// Aio_fsync -// Aio_return -// Aio_suspend -// Aio_cancel -// Aio_error -// Aio_read -// Aio_write -// Lio_listio -// __pthread_cond_wait -// Iopolicysys -// __pthread_kill -// __pthread_sigmask -// __sigwait -// __disable_threadsignal -// __pthread_markcancel -// __pthread_canceled -// __semwait_signal -// Proc_info -// sendfile -// Stat64_extended -// Lstat64_extended -// Fstat64_extended -// __pthread_chdir -// __pthread_fchdir -// Audit -// Auditon -// Getauid -// Setauid -// Getaudit -// Setaudit -// Getaudit_addr -// Setaudit_addr -// Auditctl -// Bsdthread_create -// Bsdthread_terminate -// Stack_snapshot -// Bsdthread_register -// Workq_open -// Workq_ops -// __mac_execve -// __mac_syscall -// __mac_get_file -// __mac_set_file -// __mac_get_link -// __mac_set_link -// __mac_get_proc -// __mac_set_proc -// __mac_get_fd -// __mac_set_fd -// __mac_get_pid -// __mac_get_lcid -// __mac_get_lctx -// __mac_set_lctx -// Setlcid -// Read_nocancel -// Write_nocancel -// Open_nocancel -// Close_nocancel -// Wait4_nocancel -// Recvmsg_nocancel -// Sendmsg_nocancel -// Recvfrom_nocancel -// Accept_nocancel -// Fcntl_nocancel -// Select_nocancel -// Fsync_nocancel -// Connect_nocancel -// Sigsuspend_nocancel -// Readv_nocancel -// Writev_nocancel -// Sendto_nocancel -// Pread_nocancel -// Pwrite_nocancel -// Waitid_nocancel -// Poll_nocancel -// Msgsnd_nocancel -// Msgrcv_nocancel -// Sem_wait_nocancel -// Aio_suspend_nocancel -// __sigwait_nocancel -// __semwait_signal_nocancel -// __mac_mount -// __mac_get_mount -// __mac_getfsstat diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go deleted file mode 100644 index 9fa87980..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && darwin -// +build amd64,darwin - -package unix - -import "syscall" - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 -//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace -//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/backend/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go deleted file mode 100644 index f17b8c52..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && darwin -// +build arm64,darwin - -package unix - -import "syscall" - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic - -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT -//sys Lstat(path string, stat *Stat_t) (err error) -//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace -//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/backend/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go deleted file mode 100644 index 53c96641..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin && go1.12 -// +build darwin,go1.12 - -package unix - -import _ "unsafe" - -// Implemented in the runtime package (runtime/sys_darwin.go) -func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only -func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) - -//go:linkname syscall_syscall syscall.syscall -//go:linkname syscall_syscall6 syscall.syscall6 -//go:linkname syscall_syscall6X syscall.syscall6X -//go:linkname syscall_syscall9 syscall.syscall9 -//go:linkname syscall_rawSyscall syscall.rawSyscall -//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 -//go:linkname syscall_syscallPtr syscall.syscallPtr diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/backend/vendor/golang.org/x/sys/unix/syscall_dragonfly.go deleted file mode 100644 index d4ce988e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ /dev/null @@ -1,545 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// DragonFly BSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "sync" - "unsafe" -) - -// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h -var ( - osreldateOnce sync.Once - osreldate uint32 -) - -// First __DragonFly_version after September 2019 ABI changes -// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html -const _dragonflyABIChangeVersion = 500705 - -func supportsABI(ver uint32) bool { - osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) - return osreldate >= ver -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - Rcf uint16 - Route [16]uint16 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - namlen, ok := direntNamlen(buf) - if !ok { - return 0, false - } - return (16 + namlen + 1 + 7) &^ 7, true -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sysnb pipe() (r int, w int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - r, w, err := pipe() - if err == nil { - p[0], p[1] = r, w - } - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (r int, w int, err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - // pipe2 on dragonfly takes an fds array as an argument, but still - // returns the file descriptors. - r, w, err := pipe2(&pp, flags) - if err == nil { - p[0], p[1] = r, w - } - return err -} - -//sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) - -func pread(fd int, p []byte, offset int64) (n int, err error) { - return extpread(fd, p, 0, offset) -} - -//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - return extpwrite(fd, p, 0, offset) -} - -func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { - err := sysctl(mib, old, oldlen, nil, 0) - if err != nil { - // Utsname members on Dragonfly are only 32 bytes and - // the syscall returns ENOMEM in case the actual value - // is longer. - if err == ENOMEM { - err = nil - } - } - return err -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { - return err - } - uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { - return err - } - uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { - return err - } - uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { - return err - } - uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getdents(fd int, buf []byte) (n int, err error) -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(fd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - * TODO(jsing): Update this list for DragonFly. - */ -// Profil -// Sigaction -// Sigprocmask -// Getlogin -// Sigpending -// Sigaltstack -// Reboot -// Execve -// Vfork -// Sbrk -// Sstk -// Ovadvise -// Mincore -// Setitimer -// Swapon -// Select -// Sigsuspend -// Readv -// Writev -// Nfssvc -// Getfh -// Quotactl -// Mount -// Csops -// Waitid -// Add_profil -// Kdebug_trace -// Sigreturn -// Atsocket -// Kqueue_from_portset_np -// Kqueue_portset -// Getattrlist -// Setattrlist -// Getdirentriesattr -// Searchfs -// Delete -// Copyfile -// Watchevent -// Waitevent -// Modwatch -// Getxattr -// Fgetxattr -// Setxattr -// Fsetxattr -// Removexattr -// Fremovexattr -// Listxattr -// Flistxattr -// Fsctl -// Initgroups -// Posix_spawn -// Nfsclnt -// Fhopen -// Minherit -// Semsys -// Msgsys -// Shmsys -// Semctl -// Semget -// Semop -// Msgctl -// Msgget -// Msgsnd -// Msgrcv -// Shmat -// Shmctl -// Shmdt -// Shmget -// Shm_open -// Shm_unlink -// Sem_open -// Sem_close -// Sem_unlink -// Sem_wait -// Sem_trywait -// Sem_post -// Sem_getvalue -// Sem_init -// Sem_destroy -// Open_extended -// Umask_extended -// Stat_extended -// Lstat_extended -// Fstat_extended -// Chmod_extended -// Fchmod_extended -// Access_extended -// Settid -// Gettid -// Setsgroups -// Getsgroups -// Setwgroups -// Getwgroups -// Mkfifo_extended -// Mkdir_extended -// Identitysvc -// Shared_region_check_np -// Shared_region_map_np -// __pthread_mutex_destroy -// __pthread_mutex_init -// __pthread_mutex_lock -// __pthread_mutex_trylock -// __pthread_mutex_unlock -// __pthread_cond_init -// __pthread_cond_destroy -// __pthread_cond_broadcast -// __pthread_cond_signal -// Setsid_with_pid -// __pthread_cond_timedwait -// Aio_fsync -// Aio_return -// Aio_suspend -// Aio_cancel -// Aio_error -// Aio_read -// Aio_write -// Lio_listio -// __pthread_cond_wait -// Iopolicysys -// __pthread_kill -// __pthread_sigmask -// __sigwait -// __disable_threadsignal -// __pthread_markcancel -// __pthread_canceled -// __semwait_signal -// Proc_info -// Stat64_extended -// Lstat64_extended -// Fstat64_extended -// __pthread_chdir -// __pthread_fchdir -// Audit -// Auditon -// Getauid -// Setauid -// Getaudit -// Setaudit -// Getaudit_addr -// Setaudit_addr -// Auditctl -// Bsdthread_create -// Bsdthread_terminate -// Stack_snapshot -// Bsdthread_register -// Workq_open -// Workq_ops -// __mac_execve -// __mac_syscall -// __mac_get_file -// __mac_set_file -// __mac_get_link -// __mac_set_link -// __mac_get_proc -// __mac_set_proc -// __mac_get_fd -// __mac_set_fd -// __mac_get_pid -// __mac_get_lcid -// __mac_get_lctx -// __mac_set_lctx -// Setlcid -// Read_nocancel -// Write_nocancel -// Open_nocancel -// Close_nocancel -// Wait4_nocancel -// Recvmsg_nocancel -// Sendmsg_nocancel -// Recvfrom_nocancel -// Accept_nocancel -// Fcntl_nocancel -// Select_nocancel -// Fsync_nocancel -// Connect_nocancel -// Sigsuspend_nocancel -// Readv_nocancel -// Writev_nocancel -// Sendto_nocancel -// Pread_nocancel -// Pwrite_nocancel -// Waitid_nocancel -// Msgsnd_nocancel -// Msgrcv_nocancel -// Sem_wait_nocancel -// Aio_suspend_nocancel -// __sigwait_nocancel -// __semwait_signal_nocancel -// __mac_mount -// __mac_get_mount -// __mac_getfsstat diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go deleted file mode 100644 index 4e2d3212..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && dragonfly -// +build amd64,dragonfly - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/backend/vendor/golang.org/x/sys/unix/syscall_freebsd.go deleted file mode 100644 index afb10106..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ /dev/null @@ -1,645 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// FreeBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "sync" - "unsafe" -) - -// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html. -var ( - osreldateOnce sync.Once - osreldate uint32 -) - -func supportsABI(ver uint32) bool { - osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) - return osreldate >= ver -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func Pipe(p []int) (err error) { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. -// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. -func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { - x := new(Xucred) - vallen := _Socklen(SizeofXucred) - err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) - return x, err -} - -func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var ( - _p0 unsafe.Pointer - bufsize uintptr - ) - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Stat(path string, st *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, st, 0) -} - -func Lstat(path string, st *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) -} - -func Getdents(fd int, buf []byte) (n int, err error) { - return Getdirentries(fd, buf, nil) -} - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - if basep == nil || unsafe.Sizeof(*basep) == 8 { - return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep))) - } - // The syscall needs a 64-bit base. On 32-bit machines - // we can't just use the basep passed in. See #32498. - var base uint64 = uint64(*basep) - n, err = getdirentries(fd, buf, &base) - *basep = uintptr(base) - if base>>32 != 0 { - // We can't stuff the base back into a uintptr, so any - // future calls would be suspect. Generate an error. - // EIO is allowed by getdirentries. - err = EIO - } - return -} - -func Mknod(path string, mode uint32, dev uint64) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -//sys ptrace(request int, pid int, addr uintptr, data int) (err error) -//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE - -func PtraceAttach(pid int) (err error) { - return ptrace(PT_ATTACH, pid, 0, 0) -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PT_CONTINUE, pid, 1, signal) -} - -func PtraceDetach(pid int) (err error) { - return ptrace(PT_DETACH, pid, 1, 0) -} - -func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { - return ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0) -} - -func PtraceGetRegs(pid int, regsout *Reg) (err error) { - return ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0) -} - -func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{ - Op: int32(req), - Offs: offs, - } - if countin > 0 { - _ = out[:countin] // check bounds - ioDesc.Addr = &out[0] - } else if out != nil { - ioDesc.Addr = (*byte)(unsafe.Pointer(&_zero)) - } - ioDesc.SetLen(countin) - - err = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0) - return int(ioDesc.Len), err -} - -func PtraceLwpEvents(pid int, enable int) (err error) { - return ptrace(PT_LWP_EVENTS, pid, 0, enable) -} - -func PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) { - return ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info))) -} - -func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { - return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong) -} - -func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { - return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong) -} - -func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { - return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong) -} - -func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { - return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong) -} - -func PtraceSetRegs(pid int, regs *Reg) (err error) { - return ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0) -} - -func PtraceSingleStep(pid int) (err error) { - return ptrace(PT_STEP, pid, 1, 0) -} - -func Dup3(oldfd, newfd, flags int) error { - if oldfd == newfd || flags&^O_CLOEXEC != 0 { - return EINVAL - } - how := F_DUP2FD - if flags&O_CLOEXEC != 0 { - how = F_DUP2FD_CLOEXEC - } - _, err := fcntl(oldfd, how, newfd) - return err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys CapEnter() (err error) -//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET -//sys capRightsLimit(fd int, rightsp *CapRights) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknodat(fd int, path string, mode uint32, dev uint64) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - */ -// Profil -// Sigaction -// Sigprocmask -// Getlogin -// Sigpending -// Sigaltstack -// Ioctl -// Reboot -// Execve -// Vfork -// Sbrk -// Sstk -// Ovadvise -// Mincore -// Setitimer -// Swapon -// Select -// Sigsuspend -// Readv -// Writev -// Nfssvc -// Getfh -// Quotactl -// Mount -// Csops -// Waitid -// Add_profil -// Kdebug_trace -// Sigreturn -// Atsocket -// Kqueue_from_portset_np -// Kqueue_portset -// Getattrlist -// Setattrlist -// Getdents -// Getdirentriesattr -// Searchfs -// Delete -// Copyfile -// Watchevent -// Waitevent -// Modwatch -// Fsctl -// Initgroups -// Posix_spawn -// Nfsclnt -// Fhopen -// Minherit -// Semsys -// Msgsys -// Shmsys -// Semctl -// Semget -// Semop -// Msgctl -// Msgget -// Msgsnd -// Msgrcv -// Shmat -// Shmctl -// Shmdt -// Shmget -// Shm_open -// Shm_unlink -// Sem_open -// Sem_close -// Sem_unlink -// Sem_wait -// Sem_trywait -// Sem_post -// Sem_getvalue -// Sem_init -// Sem_destroy -// Open_extended -// Umask_extended -// Stat_extended -// Lstat_extended -// Fstat_extended -// Chmod_extended -// Fchmod_extended -// Access_extended -// Settid -// Gettid -// Setsgroups -// Getsgroups -// Setwgroups -// Getwgroups -// Mkfifo_extended -// Mkdir_extended -// Identitysvc -// Shared_region_check_np -// Shared_region_map_np -// __pthread_mutex_destroy -// __pthread_mutex_init -// __pthread_mutex_lock -// __pthread_mutex_trylock -// __pthread_mutex_unlock -// __pthread_cond_init -// __pthread_cond_destroy -// __pthread_cond_broadcast -// __pthread_cond_signal -// Setsid_with_pid -// __pthread_cond_timedwait -// Aio_fsync -// Aio_return -// Aio_suspend -// Aio_cancel -// Aio_error -// Aio_read -// Aio_write -// Lio_listio -// __pthread_cond_wait -// Iopolicysys -// __pthread_kill -// __pthread_sigmask -// __sigwait -// __disable_threadsignal -// __pthread_markcancel -// __pthread_canceled -// __semwait_signal -// Proc_info -// Stat64_extended -// Lstat64_extended -// Fstat64_extended -// __pthread_chdir -// __pthread_fchdir -// Audit -// Auditon -// Getauid -// Setauid -// Getaudit -// Setaudit -// Getaudit_addr -// Setaudit_addr -// Auditctl -// Bsdthread_create -// Bsdthread_terminate -// Stack_snapshot -// Bsdthread_register -// Workq_open -// Workq_ops -// __mac_execve -// __mac_syscall -// __mac_get_file -// __mac_set_file -// __mac_get_link -// __mac_set_link -// __mac_get_proc -// __mac_set_proc -// __mac_get_fd -// __mac_set_fd -// __mac_get_pid -// __mac_get_lcid -// __mac_get_lctx -// __mac_set_lctx -// Setlcid -// Read_nocancel -// Write_nocancel -// Open_nocancel -// Close_nocancel -// Wait4_nocancel -// Recvmsg_nocancel -// Sendmsg_nocancel -// Recvfrom_nocancel -// Accept_nocancel -// Fcntl_nocancel -// Select_nocancel -// Fsync_nocancel -// Connect_nocancel -// Sigsuspend_nocancel -// Readv_nocancel -// Writev_nocancel -// Sendto_nocancel -// Pread_nocancel -// Pwrite_nocancel -// Waitid_nocancel -// Poll_nocancel -// Msgsnd_nocancel -// Msgrcv_nocancel -// Sem_wait_nocancel -// Aio_suspend_nocancel -// __sigwait_nocancel -// __semwait_signal_nocancel -// __mac_mount -// __mac_get_mount -// __mac_getfsstat diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go deleted file mode 100644 index b8da5100..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && freebsd -// +build 386,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func PtraceGetFsBase(pid int, fsbase *int64) (err error) { - return ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go deleted file mode 100644 index 47155c48..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && freebsd -// +build amd64,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func PtraceGetFsBase(pid int, fsbase *int64) (err error) { - return ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go deleted file mode 100644 index 08932093..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && freebsd -// +build arm,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go deleted file mode 100644 index d151a0d0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && freebsd -// +build arm64,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go deleted file mode 100644 index d5cd64b3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build riscv64 && freebsd -// +build riscv64,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_hurd.go b/backend/vendor/golang.org/x/sys/unix/syscall_hurd.go deleted file mode 100644 index 381fd467..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_hurd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build hurd -// +build hurd - -package unix - -/* -#include -int ioctl(int, unsigned long int, uintptr_t); -*/ -import "C" - -func ioctl(fd int, req uint, arg uintptr) (err error) { - r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) - if r0 == -1 && er != nil { - err = er - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg))) - if r0 == -1 && er != nil { - err = er - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_hurd_386.go deleted file mode 100644 index 7cf54a3e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_hurd_386.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && hurd -// +build 386,hurd - -package unix - -const ( - TIOCGETA = 0x62251713 -) - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_illumos.go b/backend/vendor/golang.org/x/sys/unix/syscall_illumos.go deleted file mode 100644 index 87db5a6a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_illumos.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// illumos system calls not present on Solaris. - -//go:build amd64 && illumos -// +build amd64,illumos - -package unix - -import ( - "unsafe" -) - -func bytes2iovec(bs [][]byte) []Iovec { - iovecs := make([]Iovec, len(bs)) - for i, b := range bs { - iovecs[i].SetLen(len(b)) - if len(b) > 0 { - iovecs[i].Base = &b[0] - } else { - iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - return iovecs -} - -//sys readv(fd int, iovs []Iovec) (n int, err error) - -func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = readv(fd, iovecs) - return n, err -} - -//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) - -func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = preadv(fd, iovecs, off) - return n, err -} - -//sys writev(fd int, iovs []Iovec) (n int, err error) - -func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = writev(fd, iovecs) - return n, err -} - -//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) - -func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = pwritev(fd, iovecs, off) - return n, err -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4 - -func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux.go deleted file mode 100644 index 6de486be..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux.go +++ /dev/null @@ -1,2544 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Linux system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import ( - "encoding/binary" - "strconv" - "syscall" - "time" - "unsafe" -) - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -func EpollCreate(size int) (fd int, err error) { - if size <= 0 { - return -1, EINVAL - } - return EpollCreate1(0) -} - -//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) -//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) - -func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) { - if pathname == "" { - return fanotifyMark(fd, flags, mask, dirFd, nil) - } - p, err := BytePtrFromString(pathname) - if err != nil { - return err - } - return fanotifyMark(fd, flags, mask, dirFd, p) -} - -//sys fchmodat(dirfd int, path string, mode uint32) (err error) - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - // Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior - // and check the flags. Otherwise the mode would be applied to the symlink - // destination which is not what the user expects. - if flags&^AT_SYMLINK_NOFOLLOW != 0 { - return EINVAL - } else if flags&AT_SYMLINK_NOFOLLOW != 0 { - return EOPNOTSUPP - } - return fchmodat(dirfd, path, mode) -} - -func InotifyInit() (fd int, err error) { - return InotifyInit1(0) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -// ioctl itself should not be exposed directly, but additional get/set functions -// for specific types are permissible. These are defined in ioctl.go and -// ioctl_linux.go. -// -// The third argument to ioctl is often a pointer but sometimes an integer. -// Callers should use ioctlPtr when the third argument is a pointer and ioctl -// when the third argument is an integer. -// -// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr. - -//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) - -func Link(oldpath string, newpath string) (err error) { - return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) -} - -func Mkdir(path string, mode uint32) (err error) { - return Mkdirat(AT_FDCWD, path, mode) -} - -func Mknod(path string, mode uint32, dev int) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Open(path string, mode int, perm uint32) (fd int, err error) { - return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) -} - -//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - return openat(dirfd, path, flags|O_LARGEFILE, mode) -} - -//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) - -func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { - return openat2(dirfd, path, how, SizeofOpenHow) -} - -func Pipe(p []int) error { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) - -func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -func Poll(fds []PollFd, timeout int) (n int, err error) { - var ts *Timespec - if timeout >= 0 { - ts = new(Timespec) - *ts = NsecToTimespec(int64(timeout) * 1e6) - } - return Ppoll(fds, ts, nil) -} - -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) - -func Readlink(path string, buf []byte) (n int, err error) { - return Readlinkat(AT_FDCWD, path, buf) -} - -func Rename(oldpath string, newpath string) (err error) { - return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) -} - -func Rmdir(path string) error { - return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) -} - -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) - -func Symlink(oldpath string, newpath string) (err error) { - return Symlinkat(oldpath, AT_FDCWD, newpath) -} - -func Unlink(path string) error { - return Unlinkat(AT_FDCWD, path, 0) -} - -//sys Unlinkat(dirfd int, path string, flags int) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - var ts [2]Timespec - ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) - ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - return UtimesNanoAt(AT_FDCWD, path, ts, 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func Futimesat(dirfd int, path string, tv []Timeval) error { - if tv == nil { - return futimesat(dirfd, path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func Futimes(fd int, tv []Timeval) (err error) { - // Believe it or not, this is the best we can do on Linux - // (and is what glibc does). - return Utimes("/proc/self/fd/"+strconv.Itoa(fd), tv) -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - n, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - // Getcwd returns the number of bytes written to buf, including the NUL. - if n < 1 || n > len(buf) || buf[n-1] != 0 { - return "", EINVAL - } - // In some cases, Linux can return a path that starts with the - // "(unreachable)" prefix, which can potentially be a valid relative - // path. To work around that, return ENOENT if path is not absolute. - if buf[0] != '/' { - return "", ENOENT - } - - return string(buf[0 : n-1]), nil -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 1<<16 on Linux. - if n < 0 || n > 1<<20 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -type WaitStatus uint32 - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. At least that's the idea. -// There are various irregularities. For example, the -// "continued" status is 0xFFFF, distinguishing itself -// from stopped via the core dump bit. - -const ( - mask = 0x7F - core = 0x80 - exited = 0x00 - stopped = 0x7F - shift = 8 -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } - -func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } - -func (w WaitStatus) Continued() bool { return w == 0xFFFF } - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int(w>>shift) & 0xFF -} - -func (w WaitStatus) Signal() syscall.Signal { - if !w.Signaled() { - return -1 - } - return syscall.Signal(w & mask) -} - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { - if w.StopSignal() != SIGTRAP { - return -1 - } - return int(w>>shift) >> 8 -} - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) - -func Mkfifo(path string, mode uint32) error { - return Mknod(path, mode|S_IFIFO, 0) -} - -func Mkfifoat(dirfd int, path string, mode uint32) error { - return Mknodat(dirfd, path, mode|S_IFIFO, 0) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' { - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. -type SockaddrLinklayer struct { - Protocol uint16 - Ifindex int - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]byte - raw RawSockaddrLinklayer -} - -func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_PACKET - sa.raw.Protocol = sa.Protocol - sa.raw.Ifindex = int32(sa.Ifindex) - sa.raw.Hatype = sa.Hatype - sa.raw.Pkttype = sa.Pkttype - sa.raw.Halen = sa.Halen - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil -} - -// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. -type SockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 - raw RawSockaddrNetlink -} - -func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_NETLINK - sa.raw.Pad = sa.Pad - sa.raw.Pid = sa.Pid - sa.raw.Groups = sa.Groups - return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil -} - -// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the HCI protocol. -type SockaddrHCI struct { - Dev uint16 - Channel uint16 - raw RawSockaddrHCI -} - -func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Dev = sa.Dev - sa.raw.Channel = sa.Channel - return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil -} - -// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the L2CAP protocol. -type SockaddrL2 struct { - PSM uint16 - CID uint16 - Addr [6]uint8 - AddrType uint8 - raw RawSockaddrL2 -} - -func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) - psm[0] = byte(sa.PSM) - psm[1] = byte(sa.PSM >> 8) - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] - } - cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) - cid[0] = byte(sa.CID) - cid[1] = byte(sa.CID >> 8) - sa.raw.Bdaddr_type = sa.AddrType - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil -} - -// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the RFCOMM protocol. -// -// Server example: -// -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 -// }) -// _ = Listen(fd, 1) -// nfd, sa, _ := Accept(fd) -// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) -// Read(nfd, buf) -// -// Client example: -// -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = Connect(fd, &SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 -// }) -// Write(fd, []byte(`hello`)) -type SockaddrRFCOMM struct { - // Addr represents a bluetooth address, byte ordering is little-endian. - Addr [6]uint8 - - // Channel is a designated bluetooth channel, only 1-30 are available for use. - // Since Linux 2.6.7 and further zero value is the first available channel. - Channel uint8 - - raw RawSockaddrRFCOMM -} - -func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Channel = sa.Channel - sa.raw.Bdaddr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil -} - -// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. -// The RxID and TxID fields are used for transport protocol addressing in -// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with -// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. -// -// The SockaddrCAN struct must be bound to the socket file descriptor -// using Bind before the CAN socket can be used. -// -// // Read one raw CAN frame -// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) -// addr := &SockaddrCAN{Ifindex: index} -// Bind(fd, addr) -// frame := make([]byte, 16) -// Read(fd, frame) -// -// The full SocketCAN documentation can be found in the linux kernel -// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt -type SockaddrCAN struct { - Ifindex int - RxID uint32 - TxID uint32 - raw RawSockaddrCAN -} - -func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_CAN - sa.raw.Ifindex = int32(sa.Ifindex) - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := 0; i < 4; i++ { - sa.raw.Addr[i] = rx[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := 0; i < 4; i++ { - sa.raw.Addr[i+4] = tx[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil -} - -// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939 -// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information -// on the purposes of the fields, check the official linux kernel documentation -// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst -type SockaddrCANJ1939 struct { - Ifindex int - Name uint64 - PGN uint32 - Addr uint8 - raw RawSockaddrCAN -} - -func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_CAN - sa.raw.Ifindex = int32(sa.Ifindex) - n := (*[8]byte)(unsafe.Pointer(&sa.Name)) - for i := 0; i < 8; i++ { - sa.raw.Addr[i] = n[i] - } - p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) - for i := 0; i < 4; i++ { - sa.raw.Addr[i+8] = p[i] - } - sa.raw.Addr[12] = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil -} - -// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. -// SockaddrALG enables userspace access to the Linux kernel's cryptography -// subsystem. The Type and Name fields specify which type of hash or cipher -// should be used with a given socket. -// -// To create a file descriptor that provides access to a hash or cipher, both -// Bind and Accept must be used. Once the setup process is complete, input -// data can be written to the socket, processed by the kernel, and then read -// back as hash output or ciphertext. -// -// Here is an example of using an AF_ALG socket with SHA1 hashing. -// The initial socket setup process is as follows: -// -// // Open a socket to perform SHA1 hashing. -// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) -// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} -// unix.Bind(fd, addr) -// // Note: unix.Accept does not work at this time; must invoke accept() -// // manually using unix.Syscall. -// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) -// -// Once a file descriptor has been returned from Accept, it may be used to -// perform SHA1 hashing. The descriptor is not safe for concurrent use, but -// may be re-used repeatedly with subsequent Write and Read operations. -// -// When hashing a small byte slice or string, a single Write and Read may -// be used: -// -// // Assume hashfd is already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash an input string and read the results. Each Write discards -// // previous hash state. Read always reads the current state. -// b := make([]byte, 20) -// for i := 0; i < 2; i++ { -// io.WriteString(hash, "Hello, world.") -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// } -// // Output: -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// -// For hashing larger byte slices, or byte streams such as those read from -// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update -// the hash digest instead of creating a new one for a given chunk and finalizing it. -// -// // Assume hashfd and addr are already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash the contents of a file. -// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") -// b := make([]byte, 4096) -// for { -// n, err := f.Read(b) -// if err == io.EOF { -// break -// } -// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) -// } -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 -// -// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. -type SockaddrALG struct { - Type string - Name string - Feature uint32 - Mask uint32 - raw RawSockaddrALG -} - -func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { - // Leave room for NUL byte terminator. - if len(sa.Type) > 13 { - return nil, 0, EINVAL - } - if len(sa.Name) > 63 { - return nil, 0, EINVAL - } - - sa.raw.Family = AF_ALG - sa.raw.Feat = sa.Feature - sa.raw.Mask = sa.Mask - - typ, err := ByteSliceFromString(sa.Type) - if err != nil { - return nil, 0, err - } - name, err := ByteSliceFromString(sa.Name) - if err != nil { - return nil, 0, err - } - - copy(sa.raw.Type[:], typ) - copy(sa.raw.Name[:], name) - - return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Linux VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_LOCAL: refers to local communication (loopback). - // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - Flags uint8 - raw RawSockaddrVM -} - -func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_VSOCK - sa.raw.Port = sa.Port - sa.raw.Cid = sa.CID - sa.raw.Flags = sa.Flags - - return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil -} - -type SockaddrXDP struct { - Flags uint16 - Ifindex uint32 - QueueID uint32 - SharedUmemFD uint32 - raw RawSockaddrXDP -} - -func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_XDP - sa.raw.Flags = sa.Flags - sa.raw.Ifindex = sa.Ifindex - sa.raw.Queue_id = sa.QueueID - sa.raw.Shared_umem_fd = sa.SharedUmemFD - - return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil -} - -// This constant mirrors the #define of PX_PROTO_OE in -// linux/if_pppox.h. We're defining this by hand here instead of -// autogenerating through mkerrors.sh because including -// linux/if_pppox.h causes some declaration conflicts with other -// includes (linux/if_pppox.h includes linux/in.h, which conflicts -// with netinet/in.h). Given that we only need a single zero constant -// out of that file, it's cleaner to just define it by hand here. -const px_proto_oe = 0 - -type SockaddrPPPoE struct { - SID uint16 - Remote []byte - Dev string - raw RawSockaddrPPPoX -} - -func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { - if len(sa.Remote) != 6 { - return nil, 0, EINVAL - } - if len(sa.Dev) > IFNAMSIZ-1 { - return nil, 0, EINVAL - } - - *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX - // This next field is in host-endian byte order. We can't use the - // same unsafe pointer cast as above, because this value is not - // 32-bit aligned and some architectures don't allow unaligned - // access. - // - // However, the value of px_proto_oe is 0, so we can use - // encoding/binary helpers to write the bytes without worrying - // about the ordering. - binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe) - // This field is deliberately big-endian, unlike the previous - // one. The kernel expects SID to be in network byte order. - binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) - copy(sa.raw[8:14], sa.Remote) - for i := 14; i < 14+IFNAMSIZ; i++ { - sa.raw[i] = 0 - } - copy(sa.raw[14:], sa.Dev) - return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil -} - -// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets. -// For more information on TIPC, see: http://tipc.sourceforge.net/. -type SockaddrTIPC struct { - // Scope is the publication scopes when binding service/service range. - // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE. - Scope int - - // Addr is the type of address used to manipulate a socket. Addr must be - // one of: - // - *TIPCSocketAddr: "id" variant in the C addr union - // - *TIPCServiceRange: "nameseq" variant in the C addr union - // - *TIPCServiceName: "name" variant in the C addr union - // - // If nil, EINVAL will be returned when the structure is used. - Addr TIPCAddr - - raw RawSockaddrTIPC -} - -// TIPCAddr is implemented by types that can be used as an address for -// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange, -// and *TIPCServiceName. -type TIPCAddr interface { - tipcAddrtype() uint8 - tipcAddr() [12]byte -} - -func (sa *TIPCSocketAddr) tipcAddr() [12]byte { - var out [12]byte - copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:]) - return out -} - -func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR } - -func (sa *TIPCServiceRange) tipcAddr() [12]byte { - var out [12]byte - copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:]) - return out -} - -func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE } - -func (sa *TIPCServiceName) tipcAddr() [12]byte { - var out [12]byte - copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:]) - return out -} - -func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR } - -func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Addr == nil { - return nil, 0, EINVAL - } - sa.raw.Family = AF_TIPC - sa.raw.Scope = int8(sa.Scope) - sa.raw.Addrtype = sa.Addr.tipcAddrtype() - sa.raw.Addr = sa.Addr.tipcAddr() - return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil -} - -// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets. -type SockaddrL2TPIP struct { - Addr [4]byte - ConnId uint32 - raw RawSockaddrL2TPIP -} - -func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_INET - sa.raw.Conn_id = sa.ConnId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil -} - -// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets. -type SockaddrL2TPIP6 struct { - Addr [16]byte - ZoneId uint32 - ConnId uint32 - raw RawSockaddrL2TPIP6 -} - -func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_INET6 - sa.raw.Conn_id = sa.ConnId - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil -} - -// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets. -type SockaddrIUCV struct { - UserID string - Name string - raw RawSockaddrIUCV -} - -func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_IUCV - // These are EBCDIC encoded by the kernel, but we still need to pad them - // with blanks. Initializing with blanks allows the caller to feed in either - // a padded or an unpadded string. - for i := 0; i < 8; i++ { - sa.raw.Nodeid[i] = ' ' - sa.raw.User_id[i] = ' ' - sa.raw.Name[i] = ' ' - } - if len(sa.UserID) > 8 || len(sa.Name) > 8 { - return nil, 0, EINVAL - } - for i, b := range []byte(sa.UserID[:]) { - sa.raw.User_id[i] = int8(b) - } - for i, b := range []byte(sa.Name[:]) { - sa.raw.Name[i] = int8(b) - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil -} - -type SockaddrNFC struct { - DeviceIdx uint32 - TargetIdx uint32 - NFCProtocol uint32 - raw RawSockaddrNFC -} - -func (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sa_family = AF_NFC - sa.raw.Dev_idx = sa.DeviceIdx - sa.raw.Target_idx = sa.TargetIdx - sa.raw.Nfc_protocol = sa.NFCProtocol - return unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil -} - -type SockaddrNFCLLCP struct { - DeviceIdx uint32 - TargetIdx uint32 - NFCProtocol uint32 - DestinationSAP uint8 - SourceSAP uint8 - ServiceName string - raw RawSockaddrNFCLLCP -} - -func (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sa_family = AF_NFC - sa.raw.Dev_idx = sa.DeviceIdx - sa.raw.Target_idx = sa.TargetIdx - sa.raw.Nfc_protocol = sa.NFCProtocol - sa.raw.Dsap = sa.DestinationSAP - sa.raw.Ssap = sa.SourceSAP - if len(sa.ServiceName) > len(sa.raw.Service_name) { - return nil, 0, EINVAL - } - copy(sa.raw.Service_name[:], sa.ServiceName) - sa.raw.SetServiceNameLen(len(sa.ServiceName)) - return unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, nil -} - -var socketProtocol = func(fd int) (int, error) { - return GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_NETLINK: - pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) - sa := new(SockaddrNetlink) - sa.Family = pp.Family - sa.Pad = pp.Pad - sa.Pid = pp.Pid - sa.Groups = pp.Groups - return sa, nil - - case AF_PACKET: - pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) - sa := new(SockaddrLinklayer) - sa.Protocol = pp.Protocol - sa.Ifindex = int(pp.Ifindex) - sa.Hatype = pp.Hatype - sa.Pkttype = pp.Pkttype - sa.Halen = pp.Halen - sa.Addr = pp.Addr - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - - switch proto { - case IPPROTO_L2TP: - pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa)) - sa := new(SockaddrL2TPIP) - sa.ConnId = pp.Conn_id - sa.Addr = pp.Addr - return sa, nil - default: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - } - - case AF_INET6: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - - switch proto { - case IPPROTO_L2TP: - pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa)) - sa := new(SockaddrL2TPIP6) - sa.ConnId = pp.Conn_id - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - default: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - Flags: pp.Flags, - } - return sa, nil - case AF_BLUETOOTH: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections - switch proto { - case BTPROTO_L2CAP: - pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) - sa := &SockaddrL2{ - PSM: pp.Psm, - CID: pp.Cid, - Addr: pp.Bdaddr, - AddrType: pp.Bdaddr_type, - } - return sa, nil - case BTPROTO_RFCOMM: - pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) - sa := &SockaddrRFCOMM{ - Channel: pp.Channel, - Addr: pp.Bdaddr, - } - return sa, nil - } - case AF_XDP: - pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa)) - sa := &SockaddrXDP{ - Flags: pp.Flags, - Ifindex: pp.Ifindex, - QueueID: pp.Queue_id, - SharedUmemFD: pp.Shared_umem_fd, - } - return sa, nil - case AF_PPPOX: - pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa)) - if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe { - return nil, EINVAL - } - sa := &SockaddrPPPoE{ - SID: binary.BigEndian.Uint16(pp[6:8]), - Remote: pp[8:14], - } - for i := 14; i < 14+IFNAMSIZ; i++ { - if pp[i] == 0 { - sa.Dev = string(pp[14:i]) - break - } - } - return sa, nil - case AF_TIPC: - pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa)) - - sa := &SockaddrTIPC{ - Scope: int(pp.Scope), - } - - // Determine which union variant is present in pp.Addr by checking - // pp.Addrtype. - switch pp.Addrtype { - case TIPC_SERVICE_RANGE: - sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr)) - case TIPC_SERVICE_ADDR: - sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr)) - case TIPC_SOCKET_ADDR: - sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr)) - default: - return nil, EINVAL - } - - return sa, nil - case AF_IUCV: - pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa)) - - var user [8]byte - var name [8]byte - - for i := 0; i < 8; i++ { - user[i] = byte(pp.User_id[i]) - name[i] = byte(pp.Name[i]) - } - - sa := &SockaddrIUCV{ - UserID: string(user[:]), - Name: string(name[:]), - } - return sa, nil - - case AF_CAN: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - - pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) - - switch proto { - case CAN_J1939: - sa := &SockaddrCANJ1939{ - Ifindex: int(pp.Ifindex), - } - name := (*[8]byte)(unsafe.Pointer(&sa.Name)) - for i := 0; i < 8; i++ { - name[i] = pp.Addr[i] - } - pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) - for i := 0; i < 4; i++ { - pgn[i] = pp.Addr[i+8] - } - addr := (*[1]byte)(unsafe.Pointer(&sa.Addr)) - addr[0] = pp.Addr[12] - return sa, nil - default: - sa := &SockaddrCAN{ - Ifindex: int(pp.Ifindex), - } - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := 0; i < 4; i++ { - rx[i] = pp.Addr[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := 0; i < 4; i++ { - tx[i] = pp.Addr[i+4] - } - return sa, nil - } - case AF_NFC: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - switch proto { - case NFC_SOCKPROTO_RAW: - pp := (*RawSockaddrNFC)(unsafe.Pointer(rsa)) - sa := &SockaddrNFC{ - DeviceIdx: pp.Dev_idx, - TargetIdx: pp.Target_idx, - NFCProtocol: pp.Nfc_protocol, - } - return sa, nil - case NFC_SOCKPROTO_LLCP: - pp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa)) - if uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) { - return nil, EINVAL - } - sa := &SockaddrNFCLLCP{ - DeviceIdx: pp.Dev_idx, - TargetIdx: pp.Target_idx, - NFCProtocol: pp.Nfc_protocol, - DestinationSAP: pp.Dsap, - SourceSAP: pp.Ssap, - ServiceName: string(pp.Service_name[:pp.Service_name_len]), - } - return sa, nil - default: - return nil, EINVAL - } - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, 0) - if err != nil { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { - var value Ucred - vallen := _Socklen(SizeofUcred) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { - var value TCPInfo - vallen := _Socklen(SizeofTCPInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - if err == ERANGE { - buf = make([]byte, vallen) - err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - } - if err != nil { - return "", err - } - } - return string(buf[:vallen-1]), nil -} - -func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { - var value TpacketStats - vallen := _Socklen(SizeofTpacketStats) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) { - var value TpacketStatsV3 - vallen := _Socklen(SizeofTpacketStatsV3) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a -// socket to filter incoming packets. See 'man 7 socket' for usage information. -func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { - return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog)) -} - -func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { - var p unsafe.Pointer - if len(filter) > 0 { - p = unsafe.Pointer(&filter[0]) - } - return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) -} - -func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error { - return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) -} - -func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error { - return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) -} - -func SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) { - if len(o) == 0 { - return EINVAL - } - return setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o))) -} - -func SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error { - return setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s)) -} - -// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) - -// KeyctlInt calls keyctl commands in which each argument is an int. -// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, -// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, -// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, -// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. -//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlBuffer calls keyctl commands in which the third and fourth -// arguments are a buffer and its length, respectively. -// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. -//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlString calls keyctl commands which return a string. -// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. -func KeyctlString(cmd int, id int) (string, error) { - // We must loop as the string data may change in between the syscalls. - // We could allocate a large buffer here to reduce the chance that the - // syscall needs to be called twice; however, this is unnecessary as - // the performance loss is negligible. - var buffer []byte - for { - // Try to fill the buffer with data - length, err := KeyctlBuffer(cmd, id, buffer, 0) - if err != nil { - return "", err - } - - // Check if the data was written - if length <= len(buffer) { - // Exclude the null terminator - return string(buffer[:length-1]), nil - } - - // Make a bigger buffer if needed - buffer = make([]byte, length) - } -} - -// Keyctl commands with special signatures. - -// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html -func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { - createInt := 0 - if create { - createInt = 1 - } - return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) -} - -// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the -// key handle permission mask as described in the "keyctl setperm" section of -// http://man7.org/linux/man-pages/man1/keyctl.1.html. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html -func KeyctlSetperm(id int, perm uint32) error { - _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) - return err -} - -//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL - -// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html -func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { - return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) -} - -//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlSearch implements the KEYCTL_SEARCH command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_search.3.html -func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { - return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) -} - -//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL - -// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This -// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice -// of Iovec (each of which represents a buffer) instead of a single buffer. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html -func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { - return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) -} - -//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL - -// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command -// computes a Diffie-Hellman shared secret based on the provide params. The -// secret is written to the provided buffer and the returned size is the number -// of bytes written (returning an error if there is insufficient space in the -// buffer). If a nil buffer is passed in, this function returns the minimum -// buffer length needed to store the appropriate data. Note that this differs -// from KEYCTL_READ's behavior which always returns the requested payload size. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html -func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) { - return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) -} - -// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This -// command limits the set of keys that can be linked to the keyring, regardless -// of keyring permissions. The command requires the "setattr" permission. -// -// When called with an empty keyType the command locks the keyring, preventing -// any further keys from being linked to the keyring. -// -// The "asymmetric" keyType defines restrictions requiring key payloads to be -// DER encoded X.509 certificates signed by keys in another keyring. Restrictions -// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted", -// "key_or_keyring:", and "key_or_keyring::chain". -// -// As of Linux 4.12, only the "asymmetric" keyType defines type-specific -// restrictions. -// -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html -// http://man7.org/linux/man-pages/man2/keyctl.2.html -func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error { - if keyType == "" { - return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid) - } - return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction) -} - -//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL -//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - if emptyIovecs(iov) { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return - } - // receive at least one normal byte - if sockType != SOCK_DGRAM { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - } - msg.Control = &oob[0] - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(ptr) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - empty = emptyIovecs(iov) - if empty { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return 0, err - } - // send at least one normal byte - if sockType != SOCK_DGRAM { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - } - msg.Control = &oob[0] - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -// BindToDevice binds the socket associated with fd to device. -func BindToDevice(fd int, device string) (err error) { - return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) -} - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) -//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE - -func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { - // The peek requests are machine-size oriented, so we wrap it - // to retrieve arbitrary-length data. - - // The ptrace syscall differs from glibc's ptrace. - // Peeks returns the word in *data, not as the return value. - - var buf [SizeofPtr]byte - - // Leading edge. PEEKTEXT/PEEKDATA don't require aligned - // access (PEEKUSER warns that it might), but if we don't - // align our reads, we might straddle an unmapped page - // boundary and not get the bytes leading up to the page - // boundary. - n := 0 - if addr%SizeofPtr != 0 { - err = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) - if err != nil { - return 0, err - } - n += copy(out, buf[addr%SizeofPtr:]) - out = out[n:] - } - - // Remainder. - for len(out) > 0 { - // We use an internal buffer to guarantee alignment. - // It's not documented if this is necessary, but we're paranoid. - err = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) - if err != nil { - return n, err - } - copied := copy(out, buf[0:]) - n += copied - out = out[copied:] - } - - return n, nil -} - -func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) -} - -func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) -} - -func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) -} - -func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { - // As for ptracePeek, we need to align our accesses to deal - // with the possibility of straddling an invalid page. - - // Leading edge. - n := 0 - if addr%SizeofPtr != 0 { - var buf [SizeofPtr]byte - err = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) - if err != nil { - return 0, err - } - n += copy(buf[addr%SizeofPtr:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word) - if err != nil { - return 0, err - } - data = data[n:] - } - - // Interior. - for len(data) > SizeofPtr { - word := *((*uintptr)(unsafe.Pointer(&data[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += SizeofPtr - data = data[SizeofPtr:] - } - - // Trailing edge. - if len(data) > 0 { - var buf [SizeofPtr]byte - err = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) - if err != nil { - return n, err - } - copy(buf[0:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += len(data) - } - - return n, nil -} - -func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) -} - -func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) -} - -func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) -} - -// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so -// x/sys/unix doesn't need to depend on debug/elf and thus -// compress/zlib, debug/dwarf, and other packages. -const elfNT_PRSTATUS = 1 - -func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { - var iov Iovec - iov.Base = (*byte)(unsafe.Pointer(regsout)) - iov.SetLen(int(unsafe.Sizeof(*regsout))) - return ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) -} - -func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { - var iov Iovec - iov.Base = (*byte)(unsafe.Pointer(regs)) - iov.SetLen(int(unsafe.Sizeof(*regs))) - return ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) -} - -func PtraceSetOptions(pid int, options int) (err error) { - return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) -} - -func PtraceGetEventMsg(pid int) (msg uint, err error) { - var data _C_long - err = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data)) - msg = uint(data) - return -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) -} - -func PtraceSyscall(pid int, signal int) (err error) { - return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) -} - -func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } - -func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) } - -func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } - -func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) } - -func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } - -//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) - -func Reboot(cmd int) (err error) { - return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) - -func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - // Certain file systems get rather angry and EINVAL if you give - // them an empty string of data, rather than NULL. - if data == "" { - return mount(source, target, fstype, flags, nil) - } - datap, err := BytePtrFromString(data) - if err != nil { - return err - } - return mount(source, target, fstype, flags, datap) -} - -//sys mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR - -// MountSetattr is a wrapper for mount_setattr(2). -// https://man7.org/linux/man-pages/man2/mount_setattr.2.html -// -// Requires kernel >= 5.12. -func MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error { - return mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr)) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// Sendto -// Recvfrom -// Socketpair - -/* - * Direct access - */ -//sys Acct(path string) (err error) -//sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) -//sys Adjtimex(buf *Timex) (state int, err error) -//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) -//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) -//sys Chdir(path string) (err error) -//sys Chroot(path string) (err error) -//sys ClockAdjtime(clockid int32, buf *Timex) (state int, err error) -//sys ClockGetres(clockid int32, res *Timespec) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) -//sys Close(fd int) (err error) -//sys CloseRange(first uint, last uint, flags uint) (err error) -//sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys DeleteModule(name string, flags int) (err error) -//sys Dup(oldfd int) (fd int, err error) - -func Dup2(oldfd, newfd int) error { - return Dup3(oldfd, newfd, 0) -} - -//sys Dup3(oldfd int, newfd int, flags int) (err error) -//sysnb EpollCreate1(flag int) (fd int, err error) -//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) -//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 -//sys Exit(code int) = SYS_EXIT_GROUP -//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) -//sys FinitModule(fd int, params string, flags int) (err error) -//sys Flistxattr(fd int, dest []byte) (sz int, err error) -//sys Flock(fd int, how int) (err error) -//sys Fremovexattr(fd int, attr string) (err error) -//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) -//sys Fsync(fd int) (err error) -//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) -//sys Fsopen(fsName string, flags int) (fd int, err error) -//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) -//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 -//sysnb Getpgid(pid int) (pgid int, err error) - -func Getpgrp() (pid int) { - pid, _ = Getpgid(0) - return -} - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sys Getrandom(buf []byte, flags int) (n int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettid() (tid int) -//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) -//sys InitModule(moduleImage []byte, params string) (err error) -//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) -//sysnb InotifyInit1(flags int) (fd int, err error) -//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) -//sysnb Kill(pid int, sig syscall.Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG -//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) -//sys Listxattr(path string, dest []byte) (sz int, err error) -//sys Llistxattr(path string, dest []byte) (sz int, err error) -//sys Lremovexattr(path string, attr string) (err error) -//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) -//sys MemfdCreate(name string, flags int) (fd int, err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys OpenTree(dfd int, fileName string, flags uint) (r int, err error) -//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) -//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) -//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 -//sys read(fd int, p []byte) (n int, err error) -//sys Removexattr(path string, attr string) (err error) -//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) -//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) -//sys Setns(fd int, nstype int) (err error) - -//go:linkname syscall_prlimit syscall.prlimit -func syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error - -func Prlimit(pid, resource int, newlimit, old *Rlimit) error { - // Just call the syscall version, because as of Go 1.21 - // it will affect starting a new process. - return syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old)) -} - -// PrctlRetInt performs a prctl operation specified by option and further -// optional arguments arg2 through arg5 depending on option. It returns a -// non-negative integer that is returned by the prctl syscall. -func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) { - ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if err != 0 { - return 0, err - } - return int(ret), nil -} - -func Setuid(uid int) (err error) { - return syscall.Setuid(uid) -} - -func Setgid(gid int) (err error) { - return syscall.Setgid(gid) -} - -func Setreuid(ruid, euid int) (err error) { - return syscall.Setreuid(ruid, euid) -} - -func Setregid(rgid, egid int) (err error) { - return syscall.Setregid(rgid, egid) -} - -func Setresuid(ruid, euid, suid int) (err error) { - return syscall.Setresuid(ruid, euid, suid) -} - -func Setresgid(rgid, egid, sgid int) (err error) { - return syscall.Setresgid(rgid, egid, sgid) -} - -// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. -// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability. -// If the call fails due to other reasons, current fsgid will be returned. -func SetfsgidRetGid(gid int) (int, error) { - return setfsgid(gid) -} - -// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set. -// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability -// If the call fails due to other reasons, current fsuid will be returned. -func SetfsuidRetUid(uid int) (int, error) { - return setfsuid(uid) -} - -func Setfsgid(gid int) error { - _, err := setfsgid(gid) - return err -} - -func Setfsuid(uid int) error { - _, err := setfsuid(uid) - return err -} - -func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { - return signalfd(fd, sigmask, _C__NSIG/8, flags) -} - -//sys Setpriority(which int, who int, prio int) (err error) -//sys Setxattr(path string, attr string, data []byte, flags int) (err error) -//sys signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4 -//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) -//sys Sync() -//sys Syncfs(fd int) (err error) -//sysnb Sysinfo(info *Sysinfo_t) (err error) -//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) -//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) -//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) -//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) -//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sysnb Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 -//sys Unshare(flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys exitThread(code int) (err error) = SYS_EXIT -//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ -//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE -//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV -//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV -//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV -//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV -//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 -//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 - -// minIovec is the size of the small initial allocation used by -// Readv, Writev, etc. -// -// This small allocation gets stack allocated, which lets the -// common use case of len(iovs) <= minIovs avoid more expensive -// heap allocations. -const minIovec = 8 - -// appendBytes converts bs to Iovecs and appends them to vecs. -func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { - for _, b := range bs { - var v Iovec - v.SetLen(len(b)) - if len(b) > 0 { - v.Base = &b[0] - } else { - v.Base = (*byte)(unsafe.Pointer(&_zero)) - } - vecs = append(vecs, v) - } - return vecs -} - -// offs2lohi splits offs into its low and high order bits. -func offs2lohi(offs int64) (lo, hi uintptr) { - const longBits = SizeofLong * 8 - return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet -} - -func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - n, err = readv(fd, iovecs) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - lo, hi := offs2lohi(offset) - n, err = preadv(fd, iovecs, lo, hi) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - lo, hi := offs2lohi(offset) - n, err = preadv2(fd, iovecs, lo, hi, flags) - readvRacedetect(iovecs, n, err) - return n, err -} - -func readvRacedetect(iovecs []Iovec, n int, err error) { - if !raceenabled { - return - } - for i := 0; n > 0 && i < len(iovecs); i++ { - m := int(iovecs[i].Len) - if m > n { - m = n - } - n -= m - if m > 0 { - raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) - } - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } -} - -func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = writev(fd, iovecs) - writevRacedetect(iovecs, n) - return n, err -} - -func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - lo, hi := offs2lohi(offset) - n, err = pwritev(fd, iovecs, lo, hi) - writevRacedetect(iovecs, n) - return n, err -} - -func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - lo, hi := offs2lohi(offset) - n, err = pwritev2(fd, iovecs, lo, hi, flags) - writevRacedetect(iovecs, n) - return n, err -} - -func writevRacedetect(iovecs []Iovec, n int) { - if !raceenabled { - return - } - for i := 0; n > 0 && i < len(iovecs); i++ { - m := int(iovecs[i].Len) - if m > n { - m = n - } - n -= m - if m > 0 { - raceReadRange(unsafe.Pointer(iovecs[i].Base), m) - } - } -} - -// mmap varies by architecture; see syscall_linux_*.go. -//sys munmap(addr uintptr, length uintptr) (err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, -// using the specified flags. -func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { - var p unsafe.Pointer - if len(iovs) > 0 { - p = unsafe.Pointer(&iovs[0]) - } - - n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) - if errno != 0 { - return 0, syscall.Errno(errno) - } - - return int(n), nil -} - -func isGroupMember(gid int) bool { - groups, err := Getgroups() - if err != nil { - return false - } - - for _, g := range groups { - if g == gid { - return true - } - } - return false -} - -func isCapDacOverrideSet() bool { - hdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3} - data := [2]CapUserData{} - err := Capget(&hdr, &data[0]) - - return err == nil && data[0].Effective&(1<> 6) & 7 - } else { - var gid int - if flags&AT_EACCESS != 0 { - gid = Getegid() - } else { - gid = Getgid() - } - - if uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) { - fmode = (st.Mode >> 3) & 7 - } else { - fmode = st.Mode & 7 - } - } - - if fmode&mode == mode { - return nil - } - - return EACCES -} - -//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT -//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT - -// fileHandle is the argument to nameToHandleAt and openByHandleAt. We -// originally tried to generate it via unix/linux/types.go with "type -// fileHandle C.struct_file_handle" but that generated empty structs -// for mips64 and mips64le. Instead, hard code it for now (it's the -// same everywhere else) until the mips64 generator issue is fixed. -type fileHandle struct { - Bytes uint32 - Type int32 -} - -// FileHandle represents the C struct file_handle used by -// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see -// OpenByHandleAt). -type FileHandle struct { - *fileHandle -} - -// NewFileHandle constructs a FileHandle. -func NewFileHandle(handleType int32, handle []byte) FileHandle { - const hdrSize = unsafe.Sizeof(fileHandle{}) - buf := make([]byte, hdrSize+uintptr(len(handle))) - copy(buf[hdrSize:], handle) - fh := (*fileHandle)(unsafe.Pointer(&buf[0])) - fh.Type = handleType - fh.Bytes = uint32(len(handle)) - return FileHandle{fh} -} - -func (fh *FileHandle) Size() int { return int(fh.fileHandle.Bytes) } -func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type } -func (fh *FileHandle) Bytes() []byte { - n := fh.Size() - if n == 0 { - return nil - } - return unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), n) -} - -// NameToHandleAt wraps the name_to_handle_at system call; it obtains -// a handle for a path name. -func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) { - var mid _C_int - // Try first with a small buffer, assuming the handle will - // only be 32 bytes. - size := uint32(32 + unsafe.Sizeof(fileHandle{})) - didResize := false - for { - buf := make([]byte, size) - fh := (*fileHandle)(unsafe.Pointer(&buf[0])) - fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{})) - err = nameToHandleAt(dirfd, path, fh, &mid, flags) - if err == EOVERFLOW { - if didResize { - // We shouldn't need to resize more than once - return - } - didResize = true - size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{})) - continue - } - if err != nil { - return - } - return FileHandle{fh}, int(mid), nil - } -} - -// OpenByHandleAt wraps the open_by_handle_at system call; it opens a -// file via a handle as previously returned by NameToHandleAt. -func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) { - return openByHandleAt(mountFD, handle.fileHandle, flags) -} - -// Klogset wraps the sys_syslog system call; it sets console_loglevel to -// the value specified by arg and passes a dummy pointer to bufp. -func Klogset(typ int, arg int) (err error) { - var p unsafe.Pointer - _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg)) - if errno != 0 { - return errnoErr(errno) - } - return nil -} - -// RemoteIovec is Iovec with the pointer replaced with an integer. -// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer -// refers to a location in a different process' address space, which -// would confuse the Go garbage collector. -type RemoteIovec struct { - Base uintptr - Len int -} - -//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV -//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV - -//sys PidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN -//sys PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD -//sys PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL - -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) -//sys shmdt(addr uintptr) (err error) -//sys shmget(key int, size int, flag int) (id int, err error) - -//sys getitimer(which int, currValue *Itimerval) (err error) -//sys setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) - -// MakeItimerval creates an Itimerval from interval and value durations. -func MakeItimerval(interval, value time.Duration) Itimerval { - return Itimerval{ - Interval: NsecToTimeval(interval.Nanoseconds()), - Value: NsecToTimeval(value.Nanoseconds()), - } -} - -// A value which may be passed to the which parameter for Getitimer and -// Setitimer. -type ItimerWhich int - -// Possible which values for Getitimer and Setitimer. -const ( - ItimerReal ItimerWhich = ITIMER_REAL - ItimerVirtual ItimerWhich = ITIMER_VIRTUAL - ItimerProf ItimerWhich = ITIMER_PROF -) - -// Getitimer wraps getitimer(2) to return the current value of the timer -// specified by which. -func Getitimer(which ItimerWhich) (Itimerval, error) { - var it Itimerval - if err := getitimer(int(which), &it); err != nil { - return Itimerval{}, err - } - - return it, nil -} - -// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which. -// It returns the previous value of the timer. -// -// If the Itimerval argument is the zero value, the timer will be disarmed. -func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { - var prev Itimerval - if err := setitimer(int(which), &it, &prev); err != nil { - return Itimerval{}, err - } - - return prev, nil -} - -//sysnb rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK - -func PthreadSigmask(how int, set, oldset *Sigset_t) error { - if oldset != nil { - // Explicitly clear in case Sigset_t is larger than _C__NSIG. - *oldset = Sigset_t{} - } - return rtSigprocmask(how, set, oldset, _C__NSIG/8) -} - -//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) - -func Getresuid() (ruid, euid, suid int) { - var r, e, s _C_int - getresuid(&r, &e, &s) - return int(r), int(e), int(s) -} - -func Getresgid() (rgid, egid, sgid int) { - var r, e, s _C_int - getresgid(&r, &e, &s) - return int(r), int(e), int(s) -} - -/* - * Unimplemented - */ -// AfsSyscall -// ArchPrctl -// Brk -// ClockNanosleep -// ClockSettime -// Clone -// EpollCtlOld -// EpollPwait -// EpollWaitOld -// Execve -// Fork -// Futex -// GetKernelSyms -// GetMempolicy -// GetRobustList -// GetThreadArea -// Getpmsg -// IoCancel -// IoDestroy -// IoGetevents -// IoSetup -// IoSubmit -// IoprioGet -// IoprioSet -// KexecLoad -// LookupDcookie -// Mbind -// MigratePages -// Mincore -// ModifyLdt -// Mount -// MovePages -// MqGetsetattr -// MqNotify -// MqOpen -// MqTimedreceive -// MqTimedsend -// MqUnlink -// Mremap -// Msgctl -// Msgget -// Msgrcv -// Msgsnd -// Nfsservctl -// Personality -// Pselect6 -// Ptrace -// Putpmsg -// Quotactl -// Readahead -// Readv -// RemapFilePages -// RestartSyscall -// RtSigaction -// RtSigpending -// RtSigqueueinfo -// RtSigreturn -// RtSigsuspend -// RtSigtimedwait -// SchedGetPriorityMax -// SchedGetPriorityMin -// SchedGetparam -// SchedGetscheduler -// SchedRrGetInterval -// SchedSetparam -// SchedYield -// Security -// Semctl -// Semget -// Semop -// Semtimedop -// SetMempolicy -// SetRobustList -// SetThreadArea -// SetTidAddress -// Sigaltstack -// Swapoff -// Swapon -// Sysfs -// TimerCreate -// TimerDelete -// TimerGetoverrun -// TimerGettime -// TimerSettime -// Tkill (obsolete) -// Tuxcall -// Umount2 -// Uselib -// Utimensat -// Vfork -// Vhangup -// Vserver -// _Sysctl diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_386.go deleted file mode 100644 index c7d9945e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && linux -// +build 386,linux - -package unix - -import ( - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -// 64-bit file system and 32-bit uid calls -// (386 default is 32-bit file system and 16-bit uid). -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 -//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) -//sys Pause() (err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -// On x86 Linux, all the socket calls go through an extra indirection, -// I think because the 5-register system call interface can't handle -// the 6-argument calls like sendto and recvfrom. Instead the -// arguments to the underlying system call are the number below -// and a pointer to an array of uintptr. We hide the pointer in the -// socketcall assembly to avoid allocation on every system call. - -const ( - // see linux/net.h - _SOCKET = 1 - _BIND = 2 - _CONNECT = 3 - _LISTEN = 4 - _ACCEPT = 5 - _GETSOCKNAME = 6 - _GETPEERNAME = 7 - _SOCKETPAIR = 8 - _SEND = 9 - _RECV = 10 - _SENDTO = 11 - _RECVFROM = 12 - _SHUTDOWN = 13 - _SETSOCKOPT = 14 - _GETSOCKOPT = 15 - _SENDMSG = 16 - _RECVMSG = 17 - _ACCEPT4 = 18 - _RECVMMSG = 19 - _SENDMMSG = 20 -) - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) - if e != 0 { - err = e - } - return -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socket(domain int, typ int, proto int) (fd int, err error) { - fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e != 0 { - err = e - } - return -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) - if e != 0 { - err = e - } - return -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - if e != 0 { - err = e - } - return -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e != 0 { - err = e - } - return -} - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Listen(s int, n int) (err error) { - _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Shutdown(s, how int) (err error) { - _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go deleted file mode 100644 index 08086ac6..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) -// +build linux -// +build 386 amd64 mips mipsle mips64 mipsle ppc64 ppc64le ppc s390x sparc64 - -package unix - -// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH -// values. - -//sys Alarm(seconds uint) (remaining uint, err error) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go deleted file mode 100644 index 5b21fcfd..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && linux -// +build amd64,linux - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys MemfdSecret(flags int) (fd int, err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return Pselect(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - // Use fstatat, because Android's seccomp policy blocks stat. - return Fstatat(AT_FDCWD, path, stat, 0) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) - -func Gettimeofday(tv *Timeval) (err error) { - errno := gettimeofday(tv) - if errno != 0 { - return errno - } - return nil -} - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - errno := gettimeofday(&tv) - if errno != 0 { - return 0, errno - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func (r *PtraceRegs) PC() uint64 { return r.Rip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go deleted file mode 100644 index 8b0f0f3a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && linux && gc -// +build amd64,linux,gc - -package unix - -import "syscall" - -//go:noescape -func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_arm.go deleted file mode 100644 index da298641..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && linux -// +build arm,linux - -package unix - -import ( - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -// 64-bit file system and 32-bit uid calls -// (16-bit uid calls are not always supported in newer kernels) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pause() (err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 -//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} - -//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and arm_sync_file_range syscalls differ only in the - // order of their arguments. - return armSyncFileRange(fd, flags, off, n) -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go deleted file mode 100644 index a81f5742..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && linux -// +build arm64,linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys MemfdSecret(flags int) (fd int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return Pselect(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -// Getrlimit prefers the prlimit64 system call. See issue 38604. -func Getrlimit(resource int, rlim *Rlimit) error { - err := Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - return getrlimit(resource, rlim) -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc.go deleted file mode 100644 index 2b1168d7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && gc -// +build linux,gc - -package unix - -// SyscallNoError may be used instead of Syscall for syscalls that don't fail. -func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) - -// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't -// fail. -func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go deleted file mode 100644 index 9843fb48..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && gc && 386 -// +build linux,gc,386 - -package unix - -import "syscall" - -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go deleted file mode 100644 index a6008fcc..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && gc && linux -// +build arm,gc,linux - -package unix - -import "syscall" - -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go deleted file mode 100644 index 7740af24..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && gccgo && 386 -// +build linux,gccgo,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { - fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) - return int(fd), err -} - -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { - fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) - return int(fd), err -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go deleted file mode 100644 index e16a1229..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && gccgo && arm -// +build linux,gccgo,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go deleted file mode 100644 index 69d2d7c3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build loong64 && linux -// +build loong64,linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return Pselect(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func timespecFromStatxTimestamp(x StatxTimestamp) Timespec { - return Timespec{ - Sec: x.Sec, - Nsec: int64(x.Nsec), - } -} - -func Fstatat(fd int, path string, stat *Stat_t, flags int) error { - var r Statx_t - // Do it the glibc way, add AT_NO_AUTOMOUNT. - if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil { - return err - } - - stat.Dev = Mkdev(r.Dev_major, r.Dev_minor) - stat.Ino = r.Ino - stat.Mode = uint32(r.Mode) - stat.Nlink = r.Nlink - stat.Uid = r.Uid - stat.Gid = r.Gid - stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor) - // hope we don't get to process files so large to overflow these size - // fields... - stat.Size = int64(r.Size) - stat.Blksize = int32(r.Blksize) - stat.Blocks = int64(r.Blocks) - stat.Atim = timespecFromStatxTimestamp(r.Atime) - stat.Mtim = timespecFromStatxTimestamp(r.Mtime) - stat.Ctim = timespecFromStatxTimestamp(r.Ctime) - - return nil -} - -func Fstat(fd int, stat *Stat_t) (err error) { - return Fstatat(fd, "", stat, AT_EMPTY_PATH) -} - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - return -} - -func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func (r *PtraceRegs) PC() uint64 { return r.Era } - -func (r *PtraceRegs) SetPC(era uint64) { r.Era = era } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go deleted file mode 100644 index 76d56409..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips64 || mips64le) -// +build linux -// +build mips64 mips64le - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return Pselect(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -type stat_t struct { - Dev uint32 - Pad0 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad1 [3]uint32 - Size int64 - Atime uint32 - Atime_nsec uint32 - Mtime uint32 - Mtime_nsec uint32 - Ctime uint32 - Ctime_nsec uint32 - Blksize uint32 - Pad2 uint32 - Blocks int64 -} - -//sys fstat(fd int, st *stat_t) (err error) -//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys lstat(path string, st *stat_t) (err error) -//sys stat(path string, st *stat_t) (err error) - -func Fstat(fd int, s *Stat_t) (err error) { - st := &stat_t{} - err = fstat(fd, st) - fillStat_t(s, st) - return -} - -func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { - st := &stat_t{} - err = fstatat(dirfd, path, st, flags) - fillStat_t(s, st) - return -} - -func Lstat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = lstat(path, st) - fillStat_t(s, st) - return -} - -func Stat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = stat(path, st) - fillStat_t(s, st) - return -} - -func fillStat_t(s *Stat_t, st *stat_t) { - s.Dev = st.Dev - s.Ino = st.Ino - s.Mode = st.Mode - s.Nlink = st.Nlink - s.Uid = st.Uid - s.Gid = st.Gid - s.Rdev = st.Rdev - s.Size = st.Size - s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} - s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} - s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} - s.Blksize = st.Blksize - s.Blocks = st.Blocks -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go deleted file mode 100644 index aae7f0ff..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips || mipsle) -// +build linux -// +build mips mipsle - -package unix - -import ( - "syscall" - "unsafe" -) - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 - -//sys Pause() (err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - p, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) - if e != 0 { - err = errnoErr(e) - } - return -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go deleted file mode 100644 index 66eff19a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go +++ /dev/null @@ -1,205 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && ppc -// +build linux,ppc - -package unix - -import ( - "syscall" - "unsafe" -) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint32 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} - -//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and sync_file_range2 syscalls differ only in the - // order of their arguments. - return syncFileRange2(fd, flags, off, n) -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go deleted file mode 100644 index 806aa257..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (ppc64 || ppc64le) -// +build linux -// +build ppc64 ppc64le - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func (r *PtraceRegs) PC() uint64 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and sync_file_range2 syscalls differ only in the - // order of their arguments. - return syncFileRange2(fd, flags, off, n) -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go deleted file mode 100644 index 35851ef7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build riscv64 && linux -// +build riscv64,linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys MemfdSecret(flags int) (fd int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return Pselect(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go deleted file mode 100644 index 2f89e8f5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build s390x && linux -// +build s390x,linux - -package unix - -import ( - "unsafe" -) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. -// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} - r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// On s390x Linux, all the socket calls go through an extra indirection. -// The arguments to the underlying system call (SYS_SOCKETCALL) are the -// number below and a pointer to an array of uintptr. -const ( - // see linux/net.h - netSocket = 1 - netBind = 2 - netConnect = 3 - netListen = 4 - netAccept = 5 - netGetSockName = 6 - netGetPeerName = 7 - netSocketPair = 8 - netSend = 9 - netRecv = 10 - netSendTo = 11 - netRecvFrom = 12 - netShutdown = 13 - netSetSockOpt = 14 - netGetSockOpt = 15 - netSendMsg = 16 - netRecvMsg = 17 - netAccept4 = 18 - netRecvMMsg = 19 - netSendMMsg = 20 -) - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { - args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} - fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) error { - args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socket(domain int, typ int, proto int) (int, error) { - args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} - fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { - args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} - _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { - args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen} - _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func Listen(s int, n int) error { - args := [2]uintptr{uintptr(s), uintptr(n)} - _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func Shutdown(s, how int) error { - args := [2]uintptr{uintptr(s), uintptr(how)} - _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/backend/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go deleted file mode 100644 index 7ca064ae..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build sparc64 && linux -// +build sparc64,linux - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func (r *PtraceRegs) PC() uint64 { return r.Tpc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/backend/vendor/golang.org/x/sys/unix/syscall_netbsd.go deleted file mode 100644 index 018d7d47..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ /dev/null @@ -1,621 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// NetBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "syscall" - "unsafe" -) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { - var olen uintptr - - // Get a list of all sysctl nodes below the given MIB by performing - // a sysctl for the given MIB with CTL_QUERY appended. - mib = append(mib, CTL_QUERY) - qnode := Sysctlnode{Flags: SYSCTL_VERS_1} - qp := (*byte)(unsafe.Pointer(&qnode)) - sz := unsafe.Sizeof(qnode) - if err = sysctl(mib, nil, &olen, qp, sz); err != nil { - return nil, err - } - - // Now that we know the size, get the actual nodes. - nodes = make([]Sysctlnode, olen/sz) - np := (*byte)(unsafe.Pointer(&nodes[0])) - if err = sysctl(mib, np, &olen, qp, sz); err != nil { - return nil, err - } - - return nodes, nil -} - -func nametomib(name string) (mib []_C_int, err error) { - // Split name into components. - var parts []string - last := 0 - for i := 0; i < len(name); i++ { - if name[i] == '.' { - parts = append(parts, name[last:i]) - last = i + 1 - } - } - parts = append(parts, name[last:]) - - // Discover the nodes and construct the MIB OID. - for partno, part := range parts { - nodes, err := sysctlNodes(mib) - if err != nil { - return nil, err - } - for _, node := range nodes { - n := make([]byte, 0) - for i := range node.Name { - if node.Name[i] != 0 { - n = append(n, byte(node.Name[i])) - } - } - if string(n) == part { - mib = append(mib, _C_int(node.Num)) - break - } - } - if len(mib) != partno+1 { - return nil, EINVAL - } - } - - return mib, nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func SysctlUvmexp(name string) (*Uvmexp, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofUvmexp) - var u Uvmexp - if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { - return nil, err - } - return &u, nil -} - -func Pipe(p []int) (err error) { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//sys Getdents(fd int, buf []byte) (n int, err error) - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - n, err = Getdents(fd, buf) - if err != nil || basep == nil { - return - } - - var off int64 - off, err = Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - *basep = ^uintptr(0) - return - } - *basep = uintptr(off) - if unsafe.Sizeof(*basep) == 8 { - return - } - if off>>32 != 0 { - // We can't stuff the offset back into a uintptr, so any - // future calls would be suspect. Generate an error. - // EIO is allowed by getdirentries. - err = EIO - } - return -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { - var value Ptmget - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -func Fstatvfs(fd int, buf *Statvfs_t) (err error) { - return Fstatvfs1(fd, buf, ST_WAIT) -} - -func Statvfs(path string, buf *Statvfs_t) (err error) { - return Statvfs1(path, buf, ST_WAIT) -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Dup3(from int, to int, flags int) (err error) -//sys Exit(code int) -//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1 -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1 -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - */ -// ____semctl13 -// __clone -// __fhopen40 -// __fhstat40 -// __fhstatvfs140 -// __fstat30 -// __getcwd -// __getfh30 -// __getlogin -// __lstat30 -// __mount50 -// __msgctl13 -// __msync13 -// __ntp_gettime30 -// __posix_chown -// __posix_fchown -// __posix_lchown -// __posix_rename -// __setlogin -// __shmctl13 -// __sigaction_sigtramp -// __sigaltstack14 -// __sigpending14 -// __sigprocmask14 -// __sigsuspend14 -// __sigtimedwait -// __stat30 -// __syscall -// __vfork14 -// _ksem_close -// _ksem_destroy -// _ksem_getvalue -// _ksem_init -// _ksem_open -// _ksem_post -// _ksem_trywait -// _ksem_unlink -// _ksem_wait -// _lwp_continue -// _lwp_create -// _lwp_ctl -// _lwp_detach -// _lwp_exit -// _lwp_getname -// _lwp_getprivate -// _lwp_kill -// _lwp_park -// _lwp_self -// _lwp_setname -// _lwp_setprivate -// _lwp_suspend -// _lwp_unpark -// _lwp_unpark_all -// _lwp_wait -// _lwp_wakeup -// _pset_bind -// _sched_getaffinity -// _sched_getparam -// _sched_setaffinity -// _sched_setparam -// acct -// aio_cancel -// aio_error -// aio_fsync -// aio_read -// aio_return -// aio_suspend -// aio_write -// break -// clock_getres -// clock_gettime -// clock_settime -// compat_09_ogetdomainname -// compat_09_osetdomainname -// compat_09_ouname -// compat_10_omsgsys -// compat_10_osemsys -// compat_10_oshmsys -// compat_12_fstat12 -// compat_12_getdirentries -// compat_12_lstat12 -// compat_12_msync -// compat_12_oreboot -// compat_12_oswapon -// compat_12_stat12 -// compat_13_sigaction13 -// compat_13_sigaltstack13 -// compat_13_sigpending13 -// compat_13_sigprocmask13 -// compat_13_sigreturn13 -// compat_13_sigsuspend13 -// compat_14___semctl -// compat_14_msgctl -// compat_14_shmctl -// compat_16___sigaction14 -// compat_16___sigreturn14 -// compat_20_fhstatfs -// compat_20_fstatfs -// compat_20_getfsstat -// compat_20_statfs -// compat_30___fhstat30 -// compat_30___fstat13 -// compat_30___lstat13 -// compat_30___stat13 -// compat_30_fhopen -// compat_30_fhstat -// compat_30_fhstatvfs1 -// compat_30_getdents -// compat_30_getfh -// compat_30_ntp_gettime -// compat_30_socket -// compat_40_mount -// compat_43_fstat43 -// compat_43_lstat43 -// compat_43_oaccept -// compat_43_ocreat -// compat_43_oftruncate -// compat_43_ogetdirentries -// compat_43_ogetdtablesize -// compat_43_ogethostid -// compat_43_ogethostname -// compat_43_ogetkerninfo -// compat_43_ogetpagesize -// compat_43_ogetpeername -// compat_43_ogetrlimit -// compat_43_ogetsockname -// compat_43_okillpg -// compat_43_olseek -// compat_43_ommap -// compat_43_oquota -// compat_43_orecv -// compat_43_orecvfrom -// compat_43_orecvmsg -// compat_43_osend -// compat_43_osendmsg -// compat_43_osethostid -// compat_43_osethostname -// compat_43_osigblock -// compat_43_osigsetmask -// compat_43_osigstack -// compat_43_osigvec -// compat_43_otruncate -// compat_43_owait -// compat_43_stat43 -// execve -// extattr_delete_fd -// extattr_delete_file -// extattr_delete_link -// extattr_get_fd -// extattr_get_file -// extattr_get_link -// extattr_list_fd -// extattr_list_file -// extattr_list_link -// extattr_set_fd -// extattr_set_file -// extattr_set_link -// extattrctl -// fchroot -// fdatasync -// fgetxattr -// fktrace -// flistxattr -// fork -// fremovexattr -// fsetxattr -// fstatvfs1 -// fsync_range -// getcontext -// getitimer -// getvfsstat -// getxattr -// ktrace -// lchflags -// lchmod -// lfs_bmapv -// lfs_markv -// lfs_segclean -// lfs_segwait -// lgetxattr -// lio_listio -// listxattr -// llistxattr -// lremovexattr -// lseek -// lsetxattr -// lutimes -// madvise -// mincore -// minherit -// modctl -// mq_close -// mq_getattr -// mq_notify -// mq_open -// mq_receive -// mq_send -// mq_setattr -// mq_timedreceive -// mq_timedsend -// mq_unlink -// mremap -// msgget -// msgrcv -// msgsnd -// nfssvc -// ntp_adjtime -// pmc_control -// pmc_get_info -// pollts -// preadv -// profil -// pselect -// pset_assign -// pset_create -// pset_destroy -// ptrace -// pwritev -// quotactl -// rasctl -// readv -// reboot -// removexattr -// sa_enable -// sa_preempt -// sa_register -// sa_setconcurrency -// sa_stacks -// sa_yield -// sbrk -// sched_yield -// semconfig -// semget -// semop -// setcontext -// setitimer -// setxattr -// shmat -// shmdt -// shmget -// sstk -// statvfs1 -// swapctl -// sysarch -// syscall -// timer_create -// timer_delete -// timer_getoverrun -// timer_gettime -// timer_settime -// undelete -// utrace -// uuidgen -// vadvise -// vfork -// writev diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go deleted file mode 100644 index 5199d282..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && netbsd -// +build 386,netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go deleted file mode 100644 index 70a9c52e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && netbsd -// +build amd64,netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go deleted file mode 100644 index 3eb5942f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && netbsd -// +build arm,netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go deleted file mode 100644 index fc6ccfd8..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && netbsd -// +build arm64,netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd.go deleted file mode 100644 index c5f166a1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ /dev/null @@ -1,403 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// OpenBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "sort" - "syscall" - "unsafe" -) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func nametomib(name string) (mib []_C_int, err error) { - i := sort.Search(len(sysctlMib), func(i int) bool { - return sysctlMib[i].ctlname >= name - }) - if i < len(sysctlMib) && sysctlMib[i].ctlname == name { - return sysctlMib[i].ctloid, nil - } - return nil, EINVAL -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func SysctlUvmexp(name string) (*Uvmexp, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofUvmexp) - var u Uvmexp - if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofUvmexp { - return nil, EIO - } - return &u, nil -} - -func Pipe(p []int) (err error) { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//sys Getdents(fd int, buf []byte) (n int, err error) - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - n, err = Getdents(fd, buf) - if err != nil || basep == nil { - return - } - - var off int64 - off, err = Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - *basep = ^uintptr(0) - return - } - *basep = uintptr(off) - if unsafe.Sizeof(*basep) == 8 { - return - } - if off>>32 != 0 { - // We can't stuff the offset back into a uintptr, so any - // future calls would be suspect. Generate an error. - // EIO was allowed by getdirentries. - err = EIO - } - return -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) - -func Getresuid() (ruid, euid, suid int) { - var r, e, s _C_int - getresuid(&r, &e, &s) - return int(r), int(e), int(s) -} - -func Getresgid() (rgid, egid, sgid int) { - var r, e, s _C_int - getresgid(&r, &e, &s) - return int(r), int(e), int(s) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) - -func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Dup3(from int, to int, flags int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrtable() (rtable int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrtable(rtable int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - */ -// __getcwd -// __semctl -// __syscall -// __sysctl -// adjfreq -// break -// clock_getres -// clock_gettime -// clock_settime -// closefrom -// execve -// fhopen -// fhstat -// fhstatfs -// fork -// futimens -// getfh -// getgid -// getitimer -// getlogin -// getthrid -// ktrace -// lfs_bmapv -// lfs_markv -// lfs_segclean -// lfs_segwait -// mincore -// minherit -// mount -// mquery -// msgctl -// msgget -// msgrcv -// msgsnd -// nfssvc -// nnpfspioctl -// preadv -// profil -// pwritev -// quotactl -// readv -// reboot -// renameat -// rfork -// sched_yield -// semget -// semop -// setgroups -// setitimer -// setsockopt -// shmat -// shmctl -// shmdt -// shmget -// sigaction -// sigaltstack -// sigpending -// sigprocmask -// sigreturn -// sigsuspend -// sysarch -// syscall -// threxit -// thrsigdivert -// thrsleep -// thrwakeup -// vfork -// writev diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go deleted file mode 100644 index 6baabcdc..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && openbsd -// +build 386,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/386 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go deleted file mode 100644 index bab25360..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && openbsd -// +build amd64,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go deleted file mode 100644 index 8eed3c4d..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && openbsd -// +build arm,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/arm the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go deleted file mode 100644 index 483dde99..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && openbsd -// +build arm64,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go deleted file mode 100644 index 04aa43f4..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build openbsd -// +build openbsd - -package unix - -import _ "unsafe" - -// Implemented in the runtime package (runtime/sys_openbsd3.go) -func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) - -//go:linkname syscall_syscall syscall.syscall -//go:linkname syscall_syscall6 syscall.syscall6 -//go:linkname syscall_syscall10 syscall.syscall10 -//go:linkname syscall_rawSyscall syscall.rawSyscall -//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 - -func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) { - return syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go deleted file mode 100644 index 1378489f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of OpenBSD the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go deleted file mode 100644 index c2796139..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build ppc64 && openbsd -// +build ppc64,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/ppc64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go deleted file mode 100644 index 23199a7f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build riscv64 && openbsd -// +build riscv64,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/riscv64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_solaris.go b/backend/vendor/golang.org/x/sys/unix/syscall_solaris.go deleted file mode 100644 index b600a289..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ /dev/null @@ -1,1135 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Solaris system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_solaris.go or syscall_unix.go. - -package unix - -import ( - "fmt" - "os" - "runtime" - "sync" - "syscall" - "unsafe" -) - -// Implemented in runtime/syscall_solaris.go. -type syscallFunc uintptr - -func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 - raw RawSockaddrDatalink -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sysnb pipe(p *[2]_C_int) (n int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - n, err := pipe(&pp) - if n != 0 { - return err - } - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return nil -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' { - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - return "", err - } - return string(buf[:vallen-1]), nil -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - // Getcwd will return an error if it failed for any reason. - _, err = Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - // Check for error and sanity check group count. Newer versions of - // Solaris allow up to 1024 (NGROUPS_MAX). - if n < 0 || n > 1024 { - if err != nil { - return nil, err - } - return nil, EINVAL - } else if n == 0 { - return nil, nil - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if n == -1 { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // TODO(rsc): Can we use a single global basep for all calls? - return Getdents(fd, buf, new(uintptr)) -} - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } - -func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { - var status _C_int - rpid, err := wait4(int32(pid), &status, options, rusage) - wpid := int(rpid) - if wpid == -1 { - return wpid, err - } - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return wpid, nil -} - -//sys gethostname(buf []byte) (n int, err error) - -func Gethostname() (name string, err error) { - var buf [MaxHostNameLen]byte - n, err := gethostname(buf[:]) - if n != 0 { - return "", err - } - n = clen(buf[:]) - if n < 1 { - return "", EFAULT - } - return string(buf[:n]), nil -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) (err error) { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) - var err error - if errno != 0 { - err = errno - } - return int(valptr), err -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) - if e1 != 0 { - return e1 - } - return nil -} - -//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) - -func Futimesat(dirfd int, path string, tv []Timeval) error { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - if tv == nil { - return futimesat(dirfd, pathp, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -// Solaris doesn't have an futimes function because it allows NULL to be -// specified as the path for futimesat. However, Go doesn't like -// NULL-style string interfaces, so this simple wrapper is provided. -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimesat(fd, nil, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - // Assume path ends at NUL. - // This is not technically the Solaris semantics for - // abstract Unix domain sockets -- they are supposed - // to be uninterpreted fixed-size binary blobs -- but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Accrightslen = int32(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Accrightslen) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Accrightslen = int32(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -//sys acct(path *byte) (err error) - -func Acct(path string) (err error) { - if len(path) == 0 { - // Assume caller wants to disable accounting. - return acct(nil) - } - - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - return acct(pathp) -} - -//sys __makedev(version int, major uint, minor uint) (val uint64) - -func Mkdev(major, minor uint32) uint64 { - return __makedev(NEWDEV, uint(major), uint(minor)) -} - -//sys __major(version int, dev uint64) (val uint) - -func Major(dev uint64) uint32 { - return uint32(__major(NEWDEV, dev)) -} - -//sys __minor(version int, dev uint64) (val uint) - -func Minor(dev uint64) uint32 { - return uint32(__minor(NEWDEV, dev)) -} - -/* - * Expose the ioctl function - */ - -//sys ioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl -//sys ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl - -func ioctl(fd int, req int, arg uintptr) (err error) { - _, err = ioctlRet(fd, req, arg) - return err -} - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, err = ioctlPtrRet(fd, req, arg) - return err -} - -func IoctlSetTermio(fd int, req int, value *Termio) error { - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -func IoctlGetTermio(fd int, req int) (*Termio, error) { - var value Termio - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Creat(path string, mode uint32) (fd int, err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) -//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) -//sysnb Getgid() (gid int) -//sysnb Getpid() (pid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgid int, err error) -//sys Geteuid() (euid int) -//sys Getegid() (egid int) -//sys Getppid() (ppid int) -//sys Getpriority(which int, who int) (n int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Setuid(uid int) (err error) -//sys Shutdown(s int, how int) (err error) = libsocket.shutdown -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statvfs(path string, vfsstat *Statvfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Sync() (err error) -//sys Sysconf(which int) (n int64, err error) -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sys Truncate(path string, length int64) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = libc.umount -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto -//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair -//sys write(fd int, p []byte) (n int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -// Event Ports - -type fileObjCookie struct { - fobj *fileObj - cookie interface{} -} - -// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports. -type EventPort struct { - port int - mu sync.Mutex - fds map[uintptr]*fileObjCookie - paths map[string]*fileObjCookie - // The user cookie presents an interesting challenge from a memory management perspective. - // There are two paths by which we can discover that it is no longer in use: - // 1. The user calls port_dissociate before any events fire - // 2. An event fires and we return it to the user - // The tricky situation is if the event has fired in the kernel but - // the user hasn't requested/received it yet. - // If the user wants to port_dissociate before the event has been processed, - // we should handle things gracefully. To do so, we need to keep an extra - // reference to the cookie around until the event is processed - // thus the otherwise seemingly extraneous "cookies" map - // The key of this map is a pointer to the corresponding fCookie - cookies map[*fileObjCookie]struct{} -} - -// PortEvent is an abstraction of the port_event C struct. -// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD -// to see if Path or Fd was the event source. The other will be -// uninitialized. -type PortEvent struct { - Cookie interface{} - Events int32 - Fd uintptr - Path string - Source uint16 - fobj *fileObj -} - -// NewEventPort creates a new EventPort including the -// underlying call to port_create(3c). -func NewEventPort() (*EventPort, error) { - port, err := port_create() - if err != nil { - return nil, err - } - e := &EventPort{ - port: port, - fds: make(map[uintptr]*fileObjCookie), - paths: make(map[string]*fileObjCookie), - cookies: make(map[*fileObjCookie]struct{}), - } - return e, nil -} - -//sys port_create() (n int, err error) -//sys port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) -//sys port_dissociate(port int, source int, object uintptr) (n int, err error) -//sys port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) -//sys port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) - -// Close closes the event port. -func (e *EventPort) Close() error { - e.mu.Lock() - defer e.mu.Unlock() - err := Close(e.port) - if err != nil { - return err - } - e.fds = nil - e.paths = nil - e.cookies = nil - return nil -} - -// PathIsWatched checks to see if path is associated with this EventPort. -func (e *EventPort) PathIsWatched(path string) bool { - e.mu.Lock() - defer e.mu.Unlock() - _, found := e.paths[path] - return found -} - -// FdIsWatched checks to see if fd is associated with this EventPort. -func (e *EventPort) FdIsWatched(fd uintptr) bool { - e.mu.Lock() - defer e.mu.Unlock() - _, found := e.fds[fd] - return found -} - -// AssociatePath wraps port_associate(3c) for a filesystem path including -// creating the necessary file_obj from the provided stat information. -func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error { - e.mu.Lock() - defer e.mu.Unlock() - if _, found := e.paths[path]; found { - return fmt.Errorf("%v is already associated with this Event Port", path) - } - fCookie, err := createFileObjCookie(path, stat, cookie) - if err != nil { - return err - } - _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie))) - if err != nil { - return err - } - e.paths[path] = fCookie - e.cookies[fCookie] = struct{}{} - return nil -} - -// DissociatePath wraps port_dissociate(3c) for a filesystem path. -func (e *EventPort) DissociatePath(path string) error { - e.mu.Lock() - defer e.mu.Unlock() - f, ok := e.paths[path] - if !ok { - return fmt.Errorf("%v is not associated with this Event Port", path) - } - _, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj))) - // If the path is no longer associated with this event port (ENOENT) - // we should delete it from our map. We can still return ENOENT to the caller. - // But we need to save the cookie - if err != nil && err != ENOENT { - return err - } - if err == nil { - // dissociate was successful, safe to delete the cookie - fCookie := e.paths[path] - delete(e.cookies, fCookie) - } - delete(e.paths, path) - return err -} - -// AssociateFd wraps calls to port_associate(3c) on file descriptors. -func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error { - e.mu.Lock() - defer e.mu.Unlock() - if _, found := e.fds[fd]; found { - return fmt.Errorf("%v is already associated with this Event Port", fd) - } - fCookie, err := createFileObjCookie("", nil, cookie) - if err != nil { - return err - } - _, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie))) - if err != nil { - return err - } - e.fds[fd] = fCookie - e.cookies[fCookie] = struct{}{} - return nil -} - -// DissociateFd wraps calls to port_dissociate(3c) on file descriptors. -func (e *EventPort) DissociateFd(fd uintptr) error { - e.mu.Lock() - defer e.mu.Unlock() - _, ok := e.fds[fd] - if !ok { - return fmt.Errorf("%v is not associated with this Event Port", fd) - } - _, err := port_dissociate(e.port, PORT_SOURCE_FD, fd) - if err != nil && err != ENOENT { - return err - } - if err == nil { - // dissociate was successful, safe to delete the cookie - fCookie := e.fds[fd] - delete(e.cookies, fCookie) - } - delete(e.fds, fd) - return err -} - -func createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) { - fCookie := new(fileObjCookie) - fCookie.cookie = cookie - if name != "" && stat != nil { - fCookie.fobj = new(fileObj) - bs, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - fCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) - s := stat.Sys().(*syscall.Stat_t) - fCookie.fobj.Atim.Sec = s.Atim.Sec - fCookie.fobj.Atim.Nsec = s.Atim.Nsec - fCookie.fobj.Mtim.Sec = s.Mtim.Sec - fCookie.fobj.Mtim.Nsec = s.Mtim.Nsec - fCookie.fobj.Ctim.Sec = s.Ctim.Sec - fCookie.fobj.Ctim.Nsec = s.Ctim.Nsec - } - return fCookie, nil -} - -// GetOne wraps port_get(3c) and returns a single PortEvent. -func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { - pe := new(portEvent) - _, err := port_get(e.port, pe, t) - if err != nil { - return nil, err - } - p := new(PortEvent) - e.mu.Lock() - defer e.mu.Unlock() - err = e.peIntToExt(pe, p) - if err != nil { - return nil, err - } - return p, nil -} - -// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent -// NOTE: Always call this function while holding the e.mu mutex -func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error { - if e.cookies == nil { - return fmt.Errorf("this EventPort is already closed") - } - peExt.Events = peInt.Events - peExt.Source = peInt.Source - fCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User)) - _, found := e.cookies[fCookie] - - if !found { - panic("unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254") - } - peExt.Cookie = fCookie.cookie - delete(e.cookies, fCookie) - - switch peInt.Source { - case PORT_SOURCE_FD: - peExt.Fd = uintptr(peInt.Object) - // Only remove the fds entry if it exists and this cookie matches - if fobj, ok := e.fds[peExt.Fd]; ok { - if fobj == fCookie { - delete(e.fds, peExt.Fd) - } - } - case PORT_SOURCE_FILE: - peExt.fobj = fCookie.fobj - peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) - // Only remove the paths entry if it exists and this cookie matches - if fobj, ok := e.paths[peExt.Path]; ok { - if fobj == fCookie { - delete(e.paths, peExt.Path) - } - } - } - return nil -} - -// Pending wraps port_getn(3c) and returns how many events are pending. -func (e *EventPort) Pending() (int, error) { - var n uint32 = 0 - _, err := port_getn(e.port, nil, 0, &n, nil) - return int(n), err -} - -// Get wraps port_getn(3c) and fills a slice of PortEvent. -// It will block until either min events have been received -// or the timeout has been exceeded. It will return how many -// events were actually received along with any error information. -func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) { - if min == 0 { - return 0, fmt.Errorf("need to request at least one event or use Pending() instead") - } - if len(s) < min { - return 0, fmt.Errorf("len(s) (%d) is less than min events requested (%d)", len(s), min) - } - got := uint32(min) - max := uint32(len(s)) - var err error - ps := make([]portEvent, max) - _, err = port_getn(e.port, &ps[0], max, &got, timeout) - // got will be trustworthy with ETIME, but not any other error. - if err != nil && err != ETIME { - return 0, err - } - e.mu.Lock() - defer e.mu.Unlock() - valid := 0 - for i := 0; i < int(got); i++ { - err2 := e.peIntToExt(&ps[i], &s[i]) - if err2 != nil { - if valid == 0 && err == nil { - // If err2 is the only error and there are no valid events - // to return, return it to the caller. - err = err2 - } - break - } - valid = i + 1 - } - return valid, err -} - -//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) - -func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { - var clp, datap *strbuf - if len(cl) > 0 { - clp = &strbuf{ - Len: int32(len(cl)), - Buf: (*int8)(unsafe.Pointer(&cl[0])), - } - } - if len(data) > 0 { - datap = &strbuf{ - Len: int32(len(data)), - Buf: (*int8)(unsafe.Pointer(&data[0])), - } - } - return putmsg(fd, clp, datap, flags) -} - -//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) - -func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { - var clp, datap *strbuf - if len(cl) > 0 { - clp = &strbuf{ - Maxlen: int32(len(cl)), - Buf: (*int8)(unsafe.Pointer(&cl[0])), - } - } - if len(data) > 0 { - datap = &strbuf{ - Maxlen: int32(len(data)), - Buf: (*int8)(unsafe.Pointer(&data[0])), - } - } - - if err = getmsg(fd, clp, datap, &flags); err != nil { - return nil, nil, 0, err - } - - if len(cl) > 0 { - retCl = cl[:clp.Len] - } - if len(data) > 0 { - retData = data[:datap.Len] - } - return retCl, retData, flags, nil -} - -func IoctlSetIntRetInt(fd int, req int, arg int) (int, error) { - return ioctlRet(fd, req, uintptr(arg)) -} - -func IoctlSetString(fd int, req int, val string) error { - bs := make([]byte, len(val)+1) - copy(bs[:len(bs)-1], val) - err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0])) - runtime.KeepAlive(&bs[0]) - return err -} - -// Lifreq Helpers - -func (l *Lifreq) SetName(name string) error { - if len(name) >= len(l.Name) { - return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) - } - for i := range name { - l.Name[i] = int8(name[i]) - } - return nil -} - -func (l *Lifreq) SetLifruInt(d int) { - *(*int)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruInt() int { - return *(*int)(unsafe.Pointer(&l.Lifru[0])) -} - -func (l *Lifreq) SetLifruUint(d uint) { - *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruUint() uint { - return *(*uint)(unsafe.Pointer(&l.Lifru[0])) -} - -func IoctlLifreq(fd int, req int, l *Lifreq) error { - return ioctlPtr(fd, req, unsafe.Pointer(l)) -} - -// Strioctl Helpers - -func (s *Strioctl) SetInt(i int) { - s.Len = int32(unsafe.Sizeof(i)) - s.Dp = (*int8)(unsafe.Pointer(&i)) -} - -func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { - return ioctlPtrRet(fd, req, unsafe.Pointer(s)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/backend/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go deleted file mode 100644 index 0bd25ef8..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && solaris -// +build amd64,solaris - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_unix.go b/backend/vendor/golang.org/x/sys/unix/syscall_unix.go deleted file mode 100644 index 8e48c29e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_unix.go +++ /dev/null @@ -1,596 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - -package unix - -import ( - "bytes" - "sort" - "sync" - "syscall" - "unsafe" -) - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -// Do the interface allocations only once for common -// Errno values. -var ( - errEAGAIN error = syscall.EAGAIN - errEINVAL error = syscall.EINVAL - errENOENT error = syscall.ENOENT -) - -var ( - signalNameMapOnce sync.Once - signalNameMap map[string]syscall.Signal -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - } - return e -} - -// ErrnoName returns the error name for error number e. -func ErrnoName(e syscall.Errno) string { - i := sort.Search(len(errorList), func(i int) bool { - return errorList[i].num >= e - }) - if i < len(errorList) && errorList[i].num == e { - return errorList[i].name - } - return "" -} - -// SignalName returns the signal name for signal number s. -func SignalName(s syscall.Signal) string { - i := sort.Search(len(signalList), func(i int) bool { - return signalList[i].num >= s - }) - if i < len(signalList) && signalList[i].num == s { - return signalList[i].name - } - return "" -} - -// SignalNum returns the syscall.Signal for signal named s, -// or 0 if a signal with such name is not found. -// The signal name should start with "SIG". -func SignalNum(s string) syscall.Signal { - signalNameMapOnce.Do(func() { - signalNameMap = make(map[string]syscall.Signal, len(signalList)) - for _, signal := range signalList { - signalNameMap[signal.name] = signal.num - } - }) - return signalNameMap[s] -} - -// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. -func clen(n []byte) int { - i := bytes.IndexByte(n, 0) - if i == -1 { - i = len(n) - } - return i -} - -// Mmap manager, for use by operating system-specific implementations. - -type mmapper struct { - sync.Mutex - active map[*byte][]byte // active mappings; key is last byte in mapping - mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) - munmap func(addr uintptr, length uintptr) error -} - -func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - if length <= 0 { - return nil, EINVAL - } - - // Map the requested memory. - addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) - if errno != nil { - return nil, errno - } - - // Use unsafe to convert addr into a []byte. - b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length) - - // Register mapping in m and return it. - p := &b[cap(b)-1] - m.Lock() - defer m.Unlock() - m.active[p] = b - return b, nil -} - -func (m *mmapper) Munmap(data []byte) (err error) { - if len(data) == 0 || len(data) != cap(data) { - return EINVAL - } - - // Find the base of the mapping. - p := &data[cap(data)-1] - m.Lock() - defer m.Unlock() - b := m.active[p] - if b == nil || &b[0] != &data[0] { - return EINVAL - } - - // Unmap the memory and update m. - if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { - return errno - } - delete(m.active, p) - return nil -} - -func Read(fd int, p []byte) (n int, err error) { - n, err = read(fd, p) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Write(fd int, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = write(fd, p) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - n, err = pread(fd, p, offset) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = pwrite(fd, p, offset) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -// Sockaddr represents a socket address. -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs -} - -// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func Bind(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func Getpeername(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getpeername(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptByte(fd, level, opt int) (value byte, err error) { - var n byte - vallen := _Socklen(1) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func GetsockoptInt(fd, level, opt int) (value int, err error) { - var n int32 - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return int(n), err -} - -func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - return value, err -} - -func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { - var value IPMreq - vallen := _Socklen(SizeofIPMreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { - var value IPv6Mreq - vallen := _Socklen(SizeofIPv6Mreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { - var value IPv6MTUInfo - vallen := _Socklen(SizeofIPv6MTUInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { - var value ICMPv6Filter - vallen := _Socklen(SizeofICMPv6Filter) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptLinger(fd, level, opt int) (*Linger, error) { - var linger Linger - vallen := _Socklen(SizeofLinger) - err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) - return &linger, err -} - -func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { - var tv Timeval - vallen := _Socklen(unsafe.Sizeof(tv)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) - return &tv, err -} - -func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { - var n uint64 - vallen := _Socklen(8) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { - return - } - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// Recvmsg receives a message from a socket using the recvmsg system call. The -// received non-control data will be written to p, and any "out of band" -// control data will be written to oob. The flags are passed to recvmsg. -// -// The results are: -// - n is the number of non-control data bytes read into p -// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] -// - recvflags is flags returned by recvmsg -// - from is the address of the sender -// -// If the underlying socket type is not SOCK_DGRAM, a received message -// containing oob data and a single '\0' of non-control data is treated as if -// the message contained only control data, i.e. n will be zero on return. -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var iov [1]Iovec - if len(p) > 0 { - iov[0].Base = &p[0] - iov[0].SetLen(len(p)) - } - var rsa RawSockaddrAny - n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// RecvmsgBuffers receives a message from a socket using the recvmsg system -// call. This function is equivalent to Recvmsg, but non-control data read is -// scattered into the buffers slices. -func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - iov := make([]Iovec, len(buffers)) - for i := range buffers { - if len(buffers[i]) > 0 { - iov[i].Base = &buffers[i][0] - iov[i].SetLen(len(buffers[i])) - } else { - iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - var rsa RawSockaddrAny - n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa) - if err == nil && rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// Sendmsg sends a message on a socket to an address using the sendmsg system -// call. This function is equivalent to SendmsgN, but does not return the -// number of bytes actually sent. -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -// SendmsgN sends a message on a socket to an address using the sendmsg system -// call. p contains the non-control data to send, and oob contains the "out of -// band" control data. The flags are passed to sendmsg. The number of -// non-control bytes actually written to the socket is returned. -// -// Some socket types do not support sending control data without accompanying -// non-control data. If p is empty, and oob contains control data, and the -// underlying socket type is not SOCK_DGRAM, p will be treated as containing a -// single '\0' and the return value will indicate zero bytes sent. -// -// The Go function Recvmsg, if called with an empty p and a non-empty oob, -// will read and ignore this additional '\0'. If the message is received by -// code that does not use Recvmsg, or that does not use Go at all, that code -// will need to be written to expect and ignore the additional '\0'. -// -// If you need to send non-empty oob with p actually empty, and if the -// underlying socket type supports it, you can do so via a raw system call as -// follows: -// -// msg := &unix.Msghdr{ -// Control: &oob[0], -// } -// msg.SetControllen(len(oob)) -// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var iov [1]Iovec - if len(p) > 0 { - iov[0].Base = &p[0] - iov[0].SetLen(len(p)) - } - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - return sendmsgN(fd, iov[:], oob, ptr, salen, flags) -} - -// SendmsgBuffers sends a message on a socket to an address using the sendmsg -// system call. This function is equivalent to SendmsgN, but the non-control -// data is gathered from buffers. -func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { - iov := make([]Iovec, len(buffers)) - for i := range buffers { - if len(buffers[i]) > 0 { - iov[i].Base = &buffers[i][0] - iov[i].SetLen(len(buffers[i])) - } else { - iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - return sendmsgN(fd, iov, oob, ptr, salen, flags) -} - -func Send(s int, buf []byte, flags int) (err error) { - return sendto(s, buf, flags, nil, 0) -} - -func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return err - } - } - return sendto(fd, p, flags, ptr, salen) -} - -func SetsockoptByte(fd, level, opt int, value byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) -} - -func SetsockoptInt(fd, level, opt int, value int) (err error) { - var n = int32(value) - return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) -} - -func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) -} - -func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) -} - -func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) -} - -func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { - return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) -} - -func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) -} - -func SetsockoptString(fd, level, opt int, s string) (err error) { - var p unsafe.Pointer - if len(s) > 0 { - p = unsafe.Pointer(&[]byte(s)[0]) - } - return setsockopt(fd, level, opt, p, uintptr(len(s))) -} - -func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) -} - -func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) -} - -func Socket(domain, typ, proto int) (fd int, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return -1, EAFNOSUPPORT - } - fd, err = socket(domain, typ, proto) - return -} - -func Socketpair(domain, typ, proto int) (fd [2]int, err error) { - var fdx [2]int32 - err = socketpair(domain, typ, proto, &fdx) - if err == nil { - fd[0] = int(fdx[0]) - fd[1] = int(fdx[1]) - } - return -} - -var ioSync int64 - -func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } - -func SetNonblock(fd int, nonblocking bool) (err error) { - flag, err := fcntl(fd, F_GETFL, 0) - if err != nil { - return err - } - if nonblocking { - flag |= O_NONBLOCK - } else { - flag &= ^O_NONBLOCK - } - _, err = fcntl(fd, F_SETFL, flag) - return err -} - -// Exec calls execve(2), which replaces the calling executable in the process -// tree. argv0 should be the full path to an executable ("/bin/ls") and the -// executable name should also be the first argument in argv (["ls", "-l"]). -// envv are the environment variables that should be passed to the new -// process (["USER=go", "PWD=/tmp"]). -func Exec(argv0 string, argv []string, envv []string) error { - return syscall.Exec(argv0, argv, envv) -} - -// Lutimes sets the access and modification times tv on path. If path refers to -// a symlink, it is not dereferenced and the timestamps are set on the symlink. -// If tv is nil, the access and modification times are set to the current time. -// Otherwise tv must contain exactly 2 elements, with access time as the first -// element and modification time as the second element. -func Lutimes(path string, tv []Timeval) error { - if tv == nil { - return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW) - } - if len(tv) != 2 { - return EINVAL - } - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) -} - -// emptyIovecs reports whether there are no bytes in the slice of Iovec. -func emptyIovecs(iov []Iovec) bool { - for i := range iov { - if iov[i].Len > 0 { - return false - } - } - return true -} - -// Setrlimit sets a resource limit. -func Setrlimit(resource int, rlim *Rlimit) error { - // Just call the syscall version, because as of Go 1.21 - // it will affect starting a new process. - return syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/backend/vendor/golang.org/x/sys/unix/syscall_unix_gc.go deleted file mode 100644 index b6919ca5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc -// +build darwin dragonfly freebsd linux,!ppc64,!ppc64le netbsd openbsd solaris -// +build gc - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/backend/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go deleted file mode 100644 index f6f707ac..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (ppc64le || ppc64) && gc -// +build linux -// +build ppc64le ppc64 -// +build gc - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.Syscall(trap, a1, a2, a3) -} -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) -} -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.RawSyscall(trap, a1, a2, a3) -} -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) -} diff --git a/backend/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/backend/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go deleted file mode 100644 index d3d49ec3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ /dev/null @@ -1,1994 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -package unix - -import ( - "bytes" - "fmt" - "runtime" - "sort" - "strings" - "sync" - "syscall" - "unsafe" -) - -const ( - O_CLOEXEC = 0 // Dummy value (not supported). - AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX -) - -func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawsyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawsyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawsyscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) - -func copyStat(stat *Stat_t, statLE *Stat_LE_t) { - stat.Dev = uint64(statLE.Dev) - stat.Ino = uint64(statLE.Ino) - stat.Nlink = uint64(statLE.Nlink) - stat.Mode = uint32(statLE.Mode) - stat.Uid = uint32(statLE.Uid) - stat.Gid = uint32(statLE.Gid) - stat.Rdev = uint64(statLE.Rdev) - stat.Size = statLE.Size - stat.Atim.Sec = int64(statLE.Atim) - stat.Atim.Nsec = 0 //zos doesn't return nanoseconds - stat.Mtim.Sec = int64(statLE.Mtim) - stat.Mtim.Nsec = 0 //zos doesn't return nanoseconds - stat.Ctim.Sec = int64(statLE.Ctim) - stat.Ctim.Nsec = 0 //zos doesn't return nanoseconds - stat.Blksize = int64(statLE.Blksize) - stat.Blocks = statLE.Blocks -} - -func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) -func svcLoad(name *byte) unsafe.Pointer -func svcUnload(name *byte, fnptr unsafe.Pointer) int64 - -func (d *Dirent) NameString() string { - if d == nil { - return "" - } - s := string(d.Name[:]) - idx := strings.IndexByte(s, 0) - if idx == -1 { - return s - } else { - return s[:idx] - } -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet4 - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet6 - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) || n == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { - // TODO(neeilan): Implement use of first param (fd) - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - // For z/OS, only replace NUL with @ when the - // length is not zero. - if pp.Len != 0 && pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // - // For z/OS, the length of the name is a field - // in the structure. To be on the safe side, we - // will still scan the name for a NUL but only - // to the length provided in the structure. - // - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < int(pp.Len) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if err != nil { - return - } - // TODO(neeilan): Remove 0 in call - sa, err = anyToSockaddr(0, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = int32(length) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys write(fd int, p []byte) (n int, err error) - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP -//sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP -//sys ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A -//sys Chdir(path string) (err error) = SYS___CHDIR_A -//sys Chown(path string, uid int, gid int) (err error) = SYS___CHOWN_A -//sys Chmod(path string, mode uint32) (err error) = SYS___CHMOD_A -//sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A -//sys Dup(oldfd int) (fd int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Errno2() (er2 int) = SYS___ERRNO2 -//sys Err2ad() (eadd *int) = SYS___ERR2AD -//sys Exit(code int) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL -//sys fstat(fd int, stat *Stat_LE_t) (err error) - -func Fstat(fd int, stat *Stat_t) (err error) { - var statLE Stat_LE_t - err = fstat(fd, &statLE) - copyStat(stat, &statLE) - return -} - -//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getpagesize() (pgsize int) = SYS_GETPAGESIZE -//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT -//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC -//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL -//sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES -//sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT -//sys W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A - -//sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A -//sys unmount(filesystem string, mtm int) (err error) = SYS___UMOUNT_A -//sys Chroot(path string) (err error) = SYS___CHROOT_A -//sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT -//sysnb Uname(buf *Utsname) (err error) = SYS___UNAME_A - -func Ptsname(fd int) (name string, err error) { - r0, _, e1 := syscall_syscall(SYS___PTSNAME_A, uintptr(fd), 0, 0) - name = u2s(unsafe.Pointer(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func u2s(cstr unsafe.Pointer) string { - str := (*[1024]uint8)(cstr) - i := 0 - for str[i] != 0 { - i++ - } - return string(str[:i]) -} - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) - for i := 0; e1 == EAGAIN && i < 10; i++ { - _, _, _ = syscall_syscall(SYS_USLEEP, uintptr(10), 0, 0) - _, _, e1 = syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) - } - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -// Dummy function: there are no semantics for Madvise on z/OS -func Madvise(b []byte, advice int) (err error) { - return -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpid() (pid int) -//sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID - -func Getpgrp() (pid int) { - pid, _ = Getpgid(0) - return -} - -//sysnb Getppid() (pid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT - -//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE - -func Getrusage(who int, rusage *Rusage) (err error) { - var ruz rusage_zos - err = getrusage(who, &ruz) - //Only the first two fields of Rusage are set - rusage.Utime.Sec = ruz.Utime.Sec - rusage.Utime.Usec = int64(ruz.Utime.Usec) - rusage.Stime.Sec = ruz.Stime.Sec - rusage.Stime.Usec = int64(ruz.Stime.Usec) - return -} - -//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID -//sysnb Getuid() (uid int) -//sysnb Kill(pid int, sig Signal) (err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A -//sys Link(path string, link string) (err error) = SYS___LINK_A -//sys Listen(s int, n int) (err error) -//sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A - -func Lstat(path string, stat *Stat_t) (err error) { - var statLE Stat_LE_t - err = lstat(path, &statLE) - copyStat(stat, &statLE) - return -} - -//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A -//sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A -//sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) = SYS___READLINK_A -//sys Rename(from string, to string) (err error) = SYS___RENAME_A -//sys Rmdir(path string) (err error) = SYS___RMDIR_A -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID -//sysnb Setrlimit(resource int, lim *Rlimit) (err error) -//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID -//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID -//sysnb Setsid() (pid int, err error) = SYS_SETSID -//sys Setuid(uid int) (err error) = SYS_SETUID -//sys Setgid(uid int) (err error) = SYS_SETGID -//sys Shutdown(fd int, how int) (err error) -//sys stat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A - -func Stat(path string, sta *Stat_t) (err error) { - var statLE Stat_LE_t - err = stat(path, &statLE) - copyStat(sta, &statLE) - return -} - -//sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A -//sys Sync() = SYS_SYNC -//sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A -//sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR -//sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR -//sys Umask(mask int) (oldmask int) -//sys Unlink(path string) (err error) = SYS___UNLINK_A -//sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A - -//sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A - -func Open(path string, mode int, perm uint32) (fd int, err error) { - return open(path, mode, perm) -} - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - wd, err := Getwd() - if err != nil { - return err - } - - if err := Fchdir(dirfd); err != nil { - return err - } - defer Chdir(wd) - - return Mkfifo(path, mode) -} - -//sys remove(path string) (err error) - -func Remove(path string) error { - return remove(path) -} - -const ImplementsGetwd = true - -func Getcwd(buf []byte) (n int, err error) { - var p unsafe.Pointer - if len(buf) > 0 { - p = unsafe.Pointer(&buf[0]) - } else { - p = unsafe.Pointer(&_zero) - } - _, _, e := syscall_syscall(SYS___GETCWD_A, uintptr(p), uintptr(len(buf)), 0) - n = clen(buf) + 1 - if e != 0 { - err = errnoErr(e) - } - return -} - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - n, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - // Getcwd returns the number of bytes written to buf, including the NUL. - if n < 1 || n > len(buf) || buf[n-1] != 0 { - return "", EINVAL - } - return string(buf[0 : n-1]), nil -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 1<<16 on Linux. - if n < 0 || n > 1<<20 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -func gettid() uint64 - -func Gettid() (tid int) { - return int(gettid()) -} - -type WaitStatus uint32 - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. At least that's the idea. -// There are various irregularities. For example, the -// "continued" status is 0xFFFF, distinguishing itself -// from stopped via the core dump bit. - -const ( - mask = 0x7F - core = 0x80 - exited = 0x00 - stopped = 0x7F - shift = 8 -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } - -func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } - -func (w WaitStatus) Continued() bool { return w == 0xFFFF } - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int(w>>shift) & 0xFF -} - -func (w WaitStatus) Signal() Signal { - if !w.Signaled() { - return -1 - } - return Signal(w & mask) -} - -func (w WaitStatus) StopSignal() Signal { - if !w.Stopped() { - return -1 - } - return Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. - // At the moment rusage will not be touched. - var status _C_int - wpid, err = waitpid(pid, &status, options) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sysnb gettimeofday(tv *timeval_zos) (err error) - -func Gettimeofday(tv *Timeval) (err error) { - var tvz timeval_zos - err = gettimeofday(&tvz) - tv.Sec = tvz.Sec - tv.Usec = int64(tvz.Usec) - return -} - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { //fix - return Timeval{Sec: sec, Usec: usec} -} - -//sysnb pipe(p *[2]_C_int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return -} - -//sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A - -func Utimes(path string, tv []Timeval) (err error) { - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNano(path string, ts []Timespec) error { - if len(ts) != 2 { - return EINVAL - } - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := [2]Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - // TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS ) - return anyToSockaddr(0, &rsa) -} - -const ( - // identifier constants - nwmHeaderIdentifier = 0xd5e6d4c8 - nwmFilterIdentifier = 0xd5e6d4c6 - nwmTCPConnIdentifier = 0xd5e6d4c3 - nwmRecHeaderIdentifier = 0xd5e6d4d9 - nwmIPStatsIdentifier = 0xd5e6d4c9d7e2e340 - nwmIPGStatsIdentifier = 0xd5e6d4c9d7c7e2e3 - nwmTCPStatsIdentifier = 0xd5e6d4e3c3d7e2e3 - nwmUDPStatsIdentifier = 0xd5e6d4e4c4d7e2e3 - nwmICMPGStatsEntry = 0xd5e6d4c9c3d4d7c7 - nwmICMPTStatsEntry = 0xd5e6d4c9c3d4d7e3 - - // nwmHeader constants - nwmVersion1 = 1 - nwmVersion2 = 2 - nwmCurrentVer = 2 - - nwmTCPConnType = 1 - nwmGlobalStatsType = 14 - - // nwmFilter constants - nwmFilterLclAddrMask = 0x20000000 // Local address - nwmFilterSrcAddrMask = 0x20000000 // Source address - nwmFilterLclPortMask = 0x10000000 // Local port - nwmFilterSrcPortMask = 0x10000000 // Source port - - // nwmConnEntry constants - nwmTCPStateClosed = 1 - nwmTCPStateListen = 2 - nwmTCPStateSynSent = 3 - nwmTCPStateSynRcvd = 4 - nwmTCPStateEstab = 5 - nwmTCPStateFinWait1 = 6 - nwmTCPStateFinWait2 = 7 - nwmTCPStateClosWait = 8 - nwmTCPStateLastAck = 9 - nwmTCPStateClosing = 10 - nwmTCPStateTimeWait = 11 - nwmTCPStateDeletTCB = 12 - - // Existing constants on linux - BPF_TCP_CLOSE = 1 - BPF_TCP_LISTEN = 2 - BPF_TCP_SYN_SENT = 3 - BPF_TCP_SYN_RECV = 4 - BPF_TCP_ESTABLISHED = 5 - BPF_TCP_FIN_WAIT1 = 6 - BPF_TCP_FIN_WAIT2 = 7 - BPF_TCP_CLOSE_WAIT = 8 - BPF_TCP_LAST_ACK = 9 - BPF_TCP_CLOSING = 10 - BPF_TCP_TIME_WAIT = 11 - BPF_TCP_NEW_SYN_RECV = -1 - BPF_TCP_MAX_STATES = -2 -) - -type nwmTriplet struct { - offset uint32 - length uint32 - number uint32 -} - -type nwmQuadruplet struct { - offset uint32 - length uint32 - number uint32 - match uint32 -} - -type nwmHeader struct { - ident uint32 - length uint32 - version uint16 - nwmType uint16 - bytesNeeded uint32 - options uint32 - _ [16]byte - inputDesc nwmTriplet - outputDesc nwmQuadruplet -} - -type nwmFilter struct { - ident uint32 - flags uint32 - resourceName [8]byte - resourceId uint32 - listenerId uint32 - local [28]byte // union of sockaddr4 and sockaddr6 - remote [28]byte // union of sockaddr4 and sockaddr6 - _ uint16 - _ uint16 - asid uint16 - _ [2]byte - tnLuName [8]byte - tnMonGrp uint32 - tnAppl [8]byte - applData [40]byte - nInterface [16]byte - dVipa [16]byte - dVipaPfx uint16 - dVipaPort uint16 - dVipaFamily byte - _ [3]byte - destXCF [16]byte - destXCFPfx uint16 - destXCFFamily byte - _ [1]byte - targIP [16]byte - targIPPfx uint16 - targIPFamily byte - _ [1]byte - _ [20]byte -} - -type nwmRecHeader struct { - ident uint32 - length uint32 - number byte - _ [3]byte -} - -type nwmTCPStatsEntry struct { - ident uint64 - currEstab uint32 - activeOpened uint32 - passiveOpened uint32 - connClosed uint32 - estabResets uint32 - attemptFails uint32 - passiveDrops uint32 - timeWaitReused uint32 - inSegs uint64 - predictAck uint32 - predictData uint32 - inDupAck uint32 - inBadSum uint32 - inBadLen uint32 - inShort uint32 - inDiscOldTime uint32 - inAllBeforeWin uint32 - inSomeBeforeWin uint32 - inAllAfterWin uint32 - inSomeAfterWin uint32 - inOutOfOrder uint32 - inAfterClose uint32 - inWinProbes uint32 - inWinUpdates uint32 - outWinUpdates uint32 - outSegs uint64 - outDelayAcks uint32 - outRsts uint32 - retransSegs uint32 - retransTimeouts uint32 - retransDrops uint32 - pmtuRetrans uint32 - pmtuErrors uint32 - outWinProbes uint32 - probeDrops uint32 - keepAliveProbes uint32 - keepAliveDrops uint32 - finwait2Drops uint32 - acceptCount uint64 - inBulkQSegs uint64 - inDiscards uint64 - connFloods uint32 - connStalls uint32 - cfgEphemDef uint16 - ephemInUse uint16 - ephemHiWater uint16 - flags byte - _ [1]byte - ephemExhaust uint32 - smcRCurrEstabLnks uint32 - smcRLnkActTimeOut uint32 - smcRActLnkOpened uint32 - smcRPasLnkOpened uint32 - smcRLnksClosed uint32 - smcRCurrEstab uint32 - smcRActiveOpened uint32 - smcRPassiveOpened uint32 - smcRConnClosed uint32 - smcRInSegs uint64 - smcROutSegs uint64 - smcRInRsts uint32 - smcROutRsts uint32 - smcDCurrEstabLnks uint32 - smcDActLnkOpened uint32 - smcDPasLnkOpened uint32 - smcDLnksClosed uint32 - smcDCurrEstab uint32 - smcDActiveOpened uint32 - smcDPassiveOpened uint32 - smcDConnClosed uint32 - smcDInSegs uint64 - smcDOutSegs uint64 - smcDInRsts uint32 - smcDOutRsts uint32 -} - -type nwmConnEntry struct { - ident uint32 - local [28]byte // union of sockaddr4 and sockaddr6 - remote [28]byte // union of sockaddr4 and sockaddr6 - startTime [8]byte // uint64, changed to prevent padding from being inserted - lastActivity [8]byte // uint64 - bytesIn [8]byte // uint64 - bytesOut [8]byte // uint64 - inSegs [8]byte // uint64 - outSegs [8]byte // uint64 - state uint16 - activeOpen byte - flag01 byte - outBuffered uint32 - inBuffered uint32 - maxSndWnd uint32 - reXmtCount uint32 - congestionWnd uint32 - ssThresh uint32 - roundTripTime uint32 - roundTripVar uint32 - sendMSS uint32 - sndWnd uint32 - rcvBufSize uint32 - sndBufSize uint32 - outOfOrderCount uint32 - lcl0WindowCount uint32 - rmt0WindowCount uint32 - dupacks uint32 - flag02 byte - sockOpt6Cont byte - asid uint16 - resourceName [8]byte - resourceId uint32 - subtask uint32 - sockOpt byte - sockOpt6 byte - clusterConnFlag byte - proto byte - targetAppl [8]byte - luName [8]byte - clientUserId [8]byte - logMode [8]byte - timeStamp uint32 - timeStampAge uint32 - serverResourceId uint32 - intfName [16]byte - ttlsStatPol byte - ttlsStatConn byte - ttlsSSLProt uint16 - ttlsNegCiph [2]byte - ttlsSecType byte - ttlsFIPS140Mode byte - ttlsUserID [8]byte - applData [40]byte - inOldestTime [8]byte // uint64 - outOldestTime [8]byte // uint64 - tcpTrustedPartner byte - _ [3]byte - bulkDataIntfName [16]byte - ttlsNegCiph4 [4]byte - smcReason uint32 - lclSMCLinkId uint32 - rmtSMCLinkId uint32 - smcStatus byte - smcFlags byte - _ [2]byte - rcvWnd uint32 - lclSMCBufSz uint32 - rmtSMCBufSz uint32 - ttlsSessID [32]byte - ttlsSessIDLen int16 - _ [1]byte - smcDStatus byte - smcDReason uint32 -} - -var svcNameTable [][]byte = [][]byte{ - []byte("\xc5\xe9\xc2\xd5\xd4\xc9\xc6\xf4"), // svc_EZBNMIF4 -} - -const ( - svc_EZBNMIF4 = 0 -) - -func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { - jobname := []byte("\x5c\x40\x40\x40\x40\x40\x40\x40") // "*" - responseBuffer := [4096]byte{0} - var bufferAlet, reasonCode uint32 = 0, 0 - var bufferLen, returnValue, returnCode int32 = 4096, 0, 0 - - dsa := [18]uint64{0} - var argv [7]unsafe.Pointer - argv[0] = unsafe.Pointer(&jobname[0]) - argv[1] = unsafe.Pointer(&responseBuffer[0]) - argv[2] = unsafe.Pointer(&bufferAlet) - argv[3] = unsafe.Pointer(&bufferLen) - argv[4] = unsafe.Pointer(&returnValue) - argv[5] = unsafe.Pointer(&returnCode) - argv[6] = unsafe.Pointer(&reasonCode) - - request := (*struct { - header nwmHeader - filter nwmFilter - })(unsafe.Pointer(&responseBuffer[0])) - - EZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0]) - if EZBNMIF4 == nil { - return nil, errnoErr(EINVAL) - } - - // GetGlobalStats EZBNMIF4 call - request.header.ident = nwmHeaderIdentifier - request.header.length = uint32(unsafe.Sizeof(request.header)) - request.header.version = nwmCurrentVer - request.header.nwmType = nwmGlobalStatsType - request.header.options = 0x80000000 - - svcCall(EZBNMIF4, &argv[0], &dsa[0]) - - // outputDesc field is filled by EZBNMIF4 on success - if returnCode != 0 || request.header.outputDesc.offset == 0 { - return nil, errnoErr(EINVAL) - } - - // Check that EZBNMIF4 returned a nwmRecHeader - recHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) - if recHeader.ident != nwmRecHeaderIdentifier { - return nil, errnoErr(EINVAL) - } - - // Parse nwmTriplets to get offsets of returned entries - var sections []*uint64 - var sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0])) - for i := uint32(0); i < uint32(recHeader.number); i++ { - offset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc)) - sectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset])) - for j := uint32(0); j < sectionDesc.number; j++ { - offset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length - sections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset]))) - } - } - - // Find nwmTCPStatsEntry in returned entries - var tcpStats *nwmTCPStatsEntry = nil - for _, ptr := range sections { - switch *ptr { - case nwmTCPStatsIdentifier: - if tcpStats != nil { - return nil, errnoErr(EINVAL) - } - tcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr)) - case nwmIPStatsIdentifier: - case nwmIPGStatsIdentifier: - case nwmUDPStatsIdentifier: - case nwmICMPGStatsEntry: - case nwmICMPTStatsEntry: - default: - return nil, errnoErr(EINVAL) - } - } - if tcpStats == nil { - return nil, errnoErr(EINVAL) - } - - // GetConnectionDetail EZBNMIF4 call - responseBuffer = [4096]byte{0} - dsa = [18]uint64{0} - bufferAlet, reasonCode = 0, 0 - bufferLen, returnValue, returnCode = 4096, 0, 0 - nameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process - nameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12))) - argv[0] = unsafe.Pointer(uintptr(*nameptr)) - - request.header.ident = nwmHeaderIdentifier - request.header.length = uint32(unsafe.Sizeof(request.header)) - request.header.version = nwmCurrentVer - request.header.nwmType = nwmTCPConnType - request.header.options = 0x80000000 - - request.filter.ident = nwmFilterIdentifier - - var localSockaddr RawSockaddrAny - socklen := _Socklen(SizeofSockaddrAny) - err := getsockname(fd, &localSockaddr, &socklen) - if err != nil { - return nil, errnoErr(EINVAL) - } - if localSockaddr.Addr.Family == AF_INET { - localSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr)) - localSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0])) - localSockFilter.Family = AF_INET - var i int - for i = 0; i < 4; i++ { - if localSockaddr.Addr[i] != 0 { - break - } - } - if i != 4 { - request.filter.flags |= nwmFilterLclAddrMask - for i = 0; i < 4; i++ { - localSockFilter.Addr[i] = localSockaddr.Addr[i] - } - } - if localSockaddr.Port != 0 { - request.filter.flags |= nwmFilterLclPortMask - localSockFilter.Port = localSockaddr.Port - } - } else if localSockaddr.Addr.Family == AF_INET6 { - localSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr)) - localSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0])) - localSockFilter.Family = AF_INET6 - var i int - for i = 0; i < 16; i++ { - if localSockaddr.Addr[i] != 0 { - break - } - } - if i != 16 { - request.filter.flags |= nwmFilterLclAddrMask - for i = 0; i < 16; i++ { - localSockFilter.Addr[i] = localSockaddr.Addr[i] - } - } - if localSockaddr.Port != 0 { - request.filter.flags |= nwmFilterLclPortMask - localSockFilter.Port = localSockaddr.Port - } - } - - svcCall(EZBNMIF4, &argv[0], &dsa[0]) - - // outputDesc field is filled by EZBNMIF4 on success - if returnCode != 0 || request.header.outputDesc.offset == 0 { - return nil, errnoErr(EINVAL) - } - - // Check that EZBNMIF4 returned a nwmConnEntry - conn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) - if conn.ident != nwmTCPConnIdentifier { - return nil, errnoErr(EINVAL) - } - - // Copy data from the returned data structures into tcpInfo - // Stats from nwmConnEntry are specific to that connection. - // Stats from nwmTCPStatsEntry are global (to the interface?) - // Fields may not be an exact match. Some fields have no equivalent. - var tcpinfo TCPInfo - tcpinfo.State = uint8(conn.state) - tcpinfo.Ca_state = 0 // dummy - tcpinfo.Retransmits = uint8(tcpStats.retransSegs) - tcpinfo.Probes = uint8(tcpStats.outWinProbes) - tcpinfo.Backoff = 0 // dummy - tcpinfo.Options = 0 // dummy - tcpinfo.Rto = tcpStats.retransTimeouts - tcpinfo.Ato = tcpStats.outDelayAcks - tcpinfo.Snd_mss = conn.sendMSS - tcpinfo.Rcv_mss = conn.sendMSS // dummy - tcpinfo.Unacked = 0 // dummy - tcpinfo.Sacked = 0 // dummy - tcpinfo.Lost = 0 // dummy - tcpinfo.Retrans = conn.reXmtCount - tcpinfo.Fackets = 0 // dummy - tcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0]))) - tcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0]))) - tcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) - tcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) - tcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate - tcpinfo.Rcv_ssthresh = conn.ssThresh - tcpinfo.Rtt = conn.roundTripTime - tcpinfo.Rttvar = conn.roundTripVar - tcpinfo.Snd_ssthresh = conn.ssThresh // dummy - tcpinfo.Snd_cwnd = conn.congestionWnd - tcpinfo.Advmss = conn.sendMSS // dummy - tcpinfo.Reordering = 0 // dummy - tcpinfo.Rcv_rtt = conn.roundTripTime // dummy - tcpinfo.Rcv_space = conn.sendMSS // dummy - tcpinfo.Total_retrans = conn.reXmtCount - - svcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4) - - return &tcpinfo, nil -} - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - return "", err - } - - return string(buf[:vallen-1]), nil -} - -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var msg Msghdr - var rsa RawSockaddrAny - msg.Name = (*byte)(unsafe.Pointer(&rsa)) - msg.Namelen = SizeofSockaddrAny - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - // TODO(neeilan): Remove 0 arg added to get this compiling on z/OS - from, err = anyToSockaddr(0, &rsa) - } - return -} - -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - var err error - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = int32(salen) - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - // send at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && len(p) == 0 { - n = 0 - } - return n, nil -} - -func Opendir(name string) (uintptr, error) { - p, err := BytePtrFromString(name) - if err != nil { - return 0, err - } - dir, _, e := syscall_syscall(SYS___OPENDIR_A, uintptr(unsafe.Pointer(p)), 0, 0) - runtime.KeepAlive(unsafe.Pointer(p)) - if e != 0 { - err = errnoErr(e) - } - return dir, err -} - -// clearsyscall.Errno resets the errno value to 0. -func clearErrno() - -func Readdir(dir uintptr) (*Dirent, error) { - var ent Dirent - var res uintptr - // __readdir_r_a returns errno at the end of the directory stream, rather than 0. - // Therefore to avoid false positives we clear errno before calling it. - - // TODO(neeilan): Commented this out to get sys/unix compiling on z/OS. Uncomment and fix. Error: "undefined: clearsyscall" - //clearsyscall.Errno() // TODO(mundaym): check pre-emption rules. - - e, _, _ := syscall_syscall(SYS___READDIR_R_A, dir, uintptr(unsafe.Pointer(&ent)), uintptr(unsafe.Pointer(&res))) - var err error - if e != 0 { - err = errnoErr(Errno(e)) - } - if res == 0 { - return nil, err - } - return &ent, err -} - -func readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { - r0, _, e1 := syscall_syscall(SYS___READDIR_R_A, dirp, uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - if int64(r0) == -1 { - err = errnoErr(Errno(e1)) - } - return -} - -func Closedir(dir uintptr) error { - _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) - if e != 0 { - return errnoErr(e) - } - return nil -} - -func Seekdir(dir uintptr, pos int) { - _, _, _ = syscall_syscall(SYS_SEEKDIR, dir, uintptr(pos), 0) -} - -func Telldir(dir uintptr) (int, error) { - p, _, e := syscall_syscall(SYS_TELLDIR, dir, 0, 0) - pos := int(p) - if pos == -1 { - return pos, errnoErr(e) - } - return pos, nil -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - // struct flock is packed on z/OS. We can't emulate that in Go so - // instead we pack it here. - var flock [24]byte - *(*int16)(unsafe.Pointer(&flock[0])) = lk.Type - *(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence - *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start - *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len - *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid - _, _, errno := syscall_syscall(SYS_FCNTL, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) - lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) - lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) - lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) - lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) - lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) - if errno == 0 { - return nil - } - return errno -} - -func Flock(fd int, how int) error { - - var flock_type int16 - var fcntl_cmd int - - switch how { - case LOCK_SH | LOCK_NB: - flock_type = F_RDLCK - fcntl_cmd = F_SETLK - case LOCK_EX | LOCK_NB: - flock_type = F_WRLCK - fcntl_cmd = F_SETLK - case LOCK_EX: - flock_type = F_WRLCK - fcntl_cmd = F_SETLKW - case LOCK_UN: - flock_type = F_UNLCK - fcntl_cmd = F_SETLKW - default: - } - - flock := Flock_t{ - Type: int16(flock_type), - Whence: int16(0), - Start: int64(0), - Len: int64(0), - Pid: int32(Getppid()), - } - - err := FcntlFlock(uintptr(fd), fcntl_cmd, &flock) - return err -} - -func Mlock(b []byte) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func Mlock2(b []byte, flags int) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func Munlock(b []byte) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ClockGettime(clockid int32, ts *Timespec) error { - - var ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise - var nsec_per_sec int64 = 1000000000 - - if ts == nil { - return EFAULT - } - if clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC { - var nanotime int64 = runtime.Nanotime1() - ts.Sec = nanotime / nsec_per_sec - ts.Nsec = nanotime % nsec_per_sec - } else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID { - var tm Tms - _, err := Times(&tm) - if err != nil { - return EFAULT - } - ts.Sec = int64(tm.Utime / ticks_per_sec) - ts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec) - } else { - return EINVAL - } - return nil -} - -func Statfs(path string, stat *Statfs_t) (err error) { - fd, err := open(path, O_RDONLY, 0) - defer Close(fd) - if err != nil { - return err - } - return Fstatfs(fd, stat) -} - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -// Do the interface allocations only once for common -// Errno values. -var ( - errEAGAIN error = syscall.EAGAIN - errEINVAL error = syscall.EINVAL - errENOENT error = syscall.ENOENT -) - -var ( - signalNameMapOnce sync.Once - signalNameMap map[string]syscall.Signal -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e Errno) error { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - } - return e -} - -// ErrnoName returns the error name for error number e. -func ErrnoName(e Errno) string { - i := sort.Search(len(errorList), func(i int) bool { - return errorList[i].num >= e - }) - if i < len(errorList) && errorList[i].num == e { - return errorList[i].name - } - return "" -} - -// SignalName returns the signal name for signal number s. -func SignalName(s syscall.Signal) string { - i := sort.Search(len(signalList), func(i int) bool { - return signalList[i].num >= s - }) - if i < len(signalList) && signalList[i].num == s { - return signalList[i].name - } - return "" -} - -// SignalNum returns the syscall.Signal for signal named s, -// or 0 if a signal with such name is not found. -// The signal name should start with "SIG". -func SignalNum(s string) syscall.Signal { - signalNameMapOnce.Do(func() { - signalNameMap = make(map[string]syscall.Signal, len(signalList)) - for _, signal := range signalList { - signalNameMap[signal.name] = signal.num - } - }) - return signalNameMap[s] -} - -// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. -func clen(n []byte) int { - i := bytes.IndexByte(n, 0) - if i == -1 { - i = len(n) - } - return i -} - -// Mmap manager, for use by operating system-specific implementations. - -type mmapper struct { - sync.Mutex - active map[*byte][]byte // active mappings; key is last byte in mapping - mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) - munmap func(addr uintptr, length uintptr) error -} - -func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - if length <= 0 { - return nil, EINVAL - } - - // Map the requested memory. - addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) - if errno != nil { - return nil, errno - } - - // Slice memory layout - var sl = struct { - addr uintptr - len int - cap int - }{addr, length, length} - - // Use unsafe to turn sl into a []byte. - b := *(*[]byte)(unsafe.Pointer(&sl)) - - // Register mapping in m and return it. - p := &b[cap(b)-1] - m.Lock() - defer m.Unlock() - m.active[p] = b - return b, nil -} - -func (m *mmapper) Munmap(data []byte) (err error) { - if len(data) == 0 || len(data) != cap(data) { - return EINVAL - } - - // Find the base of the mapping. - p := &data[cap(data)-1] - m.Lock() - defer m.Unlock() - b := m.active[p] - if b == nil || &b[0] != &data[0] { - return EINVAL - } - - // Unmap the memory and update m. - if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { - return errno - } - delete(m.active, p) - return nil -} - -func Read(fd int, p []byte) (n int, err error) { - n, err = read(fd, p) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Write(fd int, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = write(fd, p) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -// Sockaddr represents a socket address. -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs -} - -// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func Bind(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func Getpeername(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getpeername(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptByte(fd, level, opt int) (value byte, err error) { - var n byte - vallen := _Socklen(1) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func GetsockoptInt(fd, level, opt int) (value int, err error) { - var n int32 - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return int(n), err -} - -func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - return value, err -} - -func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { - var value IPMreq - vallen := _Socklen(SizeofIPMreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { - var value IPv6Mreq - vallen := _Socklen(SizeofIPv6Mreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { - var value IPv6MTUInfo - vallen := _Socklen(SizeofIPv6MTUInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { - var value ICMPv6Filter - vallen := _Socklen(SizeofICMPv6Filter) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptLinger(fd, level, opt int) (*Linger, error) { - var linger Linger - vallen := _Socklen(SizeofLinger) - err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) - return &linger, err -} - -func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { - var tv Timeval - vallen := _Socklen(unsafe.Sizeof(tv)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) - return &tv, err -} - -func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { - var n uint64 - vallen := _Socklen(8) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { - return - } - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - ptr, n, err := to.sockaddr() - if err != nil { - return err - } - return sendto(fd, p, flags, ptr, n) -} - -func SetsockoptByte(fd, level, opt int, value byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) -} - -func SetsockoptInt(fd, level, opt int, value int) (err error) { - var n = int32(value) - return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) -} - -func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) -} - -func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) -} - -func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) -} - -func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { - return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) -} - -func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) -} - -func SetsockoptString(fd, level, opt int, s string) (err error) { - var p unsafe.Pointer - if len(s) > 0 { - p = unsafe.Pointer(&[]byte(s)[0]) - } - return setsockopt(fd, level, opt, p, uintptr(len(s))) -} - -func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) -} - -func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) -} - -func Socket(domain, typ, proto int) (fd int, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return -1, EAFNOSUPPORT - } - fd, err = socket(domain, typ, proto) - return -} - -func Socketpair(domain, typ, proto int) (fd [2]int, err error) { - var fdx [2]int32 - err = socketpair(domain, typ, proto, &fdx) - if err == nil { - fd[0] = int(fdx[0]) - fd[1] = int(fdx[1]) - } - return -} - -var ioSync int64 - -func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } - -func SetNonblock(fd int, nonblocking bool) (err error) { - flag, err := fcntl(fd, F_GETFL, 0) - if err != nil { - return err - } - if nonblocking { - flag |= O_NONBLOCK - } else { - flag &= ^O_NONBLOCK - } - _, err = fcntl(fd, F_SETFL, flag) - return err -} - -// Exec calls execve(2), which replaces the calling executable in the process -// tree. argv0 should be the full path to an executable ("/bin/ls") and the -// executable name should also be the first argument in argv (["ls", "-l"]). -// envv are the environment variables that should be passed to the new -// process (["USER=go", "PWD=/tmp"]). -func Exec(argv0 string, argv []string, envv []string) error { - return syscall.Exec(argv0, argv, envv) -} - -func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - if needspace := 8 - len(fstype); needspace <= 0 { - fstype = fstype[:8] - } else { - fstype += " "[:needspace] - } - return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) -} - -func Unmount(name string, mtm int) (err error) { - // mountpoint is always a full path and starts with a '/' - // check if input string is not a mountpoint but a filesystem name - if name[0] != '/' { - return unmount(name, mtm) - } - // treat name as mountpoint - b2s := func(arr []byte) string { - nulli := bytes.IndexByte(arr, 0) - if nulli == -1 { - return string(arr) - } else { - return string(arr[:nulli]) - } - } - var buffer struct { - header W_Mnth - fsinfo [64]W_Mntent - } - fsCount, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) - if err != nil { - return err - } - if fsCount == 0 { - return EINVAL - } - for i := 0; i < fsCount; i++ { - if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { - err = unmount(b2s(buffer.fsinfo[i].Fsname[:]), mtm) - break - } - } - return err -} - -func fdToPath(dirfd int) (path string, err error) { - var buffer [1024]byte - // w_ctrl() - ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, - []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - // __e2a_l() - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, - []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) - return string(buffer[:zb]), nil - } - // __errno() - errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, - []uintptr{})))) - // __errno2() - errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, - []uintptr{})) - // strerror_r() - ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, - []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) - } else { - return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) - } -} - -func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { - var d Dirent - - d.Ino = uint64(dirent.Ino) - offset, err := Telldir(dir) - if err != nil { - return d, err - } - - d.Off = int64(offset) - s := string(bytes.Split(dirent.Name[:], []byte{0})[0]) - copy(d.Name[:], s) - - d.Reclen = uint16(24 + len(d.NameString())) - var st Stat_t - path = path + "/" + s - err = Lstat(path, &st) - if err != nil { - return d, err - } - - d.Type = uint8(st.Mode >> 24) - return d, err -} - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // Simulation of Getdirentries port from the Darwin implementation. - // COMMENTS FROM DARWIN: - // It's not the full required semantics, but should handle the case - // of calling Getdirentries or ReadDirent repeatedly. - // It won't handle assigning the results of lseek to *basep, or handle - // the directory being edited underfoot. - - skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - return 0, err - } - - // Get path from fd to avoid unavailable call (fdopendir) - path, err := fdToPath(fd) - if err != nil { - return 0, err - } - d, err := Opendir(path) - if err != nil { - return 0, err - } - defer Closedir(d) - - var cnt int64 - for { - var entryLE direntLE - var entrypLE *direntLE - e := readdir_r(d, &entryLE, &entrypLE) - if e != nil { - return n, e - } - if entrypLE == nil { - break - } - if skip > 0 { - skip-- - cnt++ - continue - } - - // Dirent on zos has a different structure - entry, e := direntLeToDirentUnix(&entryLE, d, path) - if e != nil { - return n, e - } - - reclen := int(entry.Reclen) - if reclen > len(buf) { - // Not enough room. Return for now. - // The counter will let us know where we should start up again. - // Note: this strategy for suspending in the middle and - // restarting is O(n^2) in the length of the directory. Oh well. - break - } - - // Copy entry into return buffer. - s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) - copy(buf, s) - - buf = buf[reclen:] - n += reclen - cnt++ - } - // Set the seek offset of the input fd to record - // how many files we've already returned. - _, err = Seek(fd, cnt, 0 /* SEEK_SET */) - if err != nil { - return n, err - } - - return n, nil -} - -func ReadDirent(fd int, buf []byte) (n int, err error) { - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} diff --git a/backend/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/backend/vendor/golang.org/x/sys/unix/sysvshm_linux.go deleted file mode 100644 index 2c3a4437..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sysvshm_linux.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux -// +build linux - -package unix - -import "runtime" - -// SysvShmCtl performs control operations on the shared memory segment -// specified by id. -func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { - if runtime.GOARCH == "arm" || - runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" { - cmd |= ipc_64 - } - - return shmctl(id, cmd, desc) -} diff --git a/backend/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/backend/vendor/golang.org/x/sys/unix/sysvshm_unix.go deleted file mode 100644 index 5bb41d17..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sysvshm_unix.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin && !ios) || linux -// +build darwin,!ios linux - -package unix - -import "unsafe" - -// SysvShmAttach attaches the Sysv shared memory segment associated with the -// shared memory identifier id. -func SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) { - addr, errno := shmat(id, addr, flag) - if errno != nil { - return nil, errno - } - - // Retrieve the size of the shared memory to enable slice creation - var info SysvShmDesc - - _, err := SysvShmCtl(id, IPC_STAT, &info) - if err != nil { - // release the shared memory if we can't find the size - - // ignoring error from shmdt as there's nothing sensible to return here - shmdt(addr) - return nil, err - } - - // Use unsafe to convert addr into a []byte. - b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz)) - return b, nil -} - -// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach. -// -// It is not safe to use the slice after calling this function. -func SysvShmDetach(data []byte) error { - if len(data) == 0 { - return EINVAL - } - - return shmdt(uintptr(unsafe.Pointer(&data[0]))) -} - -// SysvShmGet returns the Sysv shared memory identifier associated with key. -// If the IPC_CREAT flag is specified a new segment is created. -func SysvShmGet(key, size, flag int) (id int, err error) { - return shmget(key, size, flag) -} diff --git a/backend/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/backend/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go deleted file mode 100644 index 71bddefd..00000000 --- a/backend/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin && !ios -// +build darwin,!ios - -package unix - -// SysvShmCtl performs control operations on the shared memory segment -// specified by id. -func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { - return shmctl(id, cmd, desc) -} diff --git a/backend/vendor/golang.org/x/sys/unix/timestruct.go b/backend/vendor/golang.org/x/sys/unix/timestruct.go deleted file mode 100644 index 616b1b28..00000000 --- a/backend/vendor/golang.org/x/sys/unix/timestruct.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -package unix - -import "time" - -// TimespecToNsec returns the time stored in ts as nanoseconds. -func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } - -// NsecToTimespec converts a number of nanoseconds into a Timespec. -func NsecToTimespec(nsec int64) Timespec { - sec := nsec / 1e9 - nsec = nsec % 1e9 - if nsec < 0 { - nsec += 1e9 - sec-- - } - return setTimespec(sec, nsec) -} - -// TimeToTimespec converts t into a Timespec. -// On some 32-bit systems the range of valid Timespec values are smaller -// than that of time.Time values. So if t is out of the valid range of -// Timespec, it returns a zero Timespec and ERANGE. -func TimeToTimespec(t time.Time) (Timespec, error) { - sec := t.Unix() - nsec := int64(t.Nanosecond()) - ts := setTimespec(sec, nsec) - - // Currently all targets have either int32 or int64 for Timespec.Sec. - // If there were a new target with floating point type for it, we have - // to consider the rounding error. - if int64(ts.Sec) != sec { - return Timespec{}, ERANGE - } - return ts, nil -} - -// TimevalToNsec returns the time stored in tv as nanoseconds. -func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } - -// NsecToTimeval converts a number of nanoseconds into a Timeval. -func NsecToTimeval(nsec int64) Timeval { - nsec += 999 // round up to microsecond - usec := nsec % 1e9 / 1e3 - sec := nsec / 1e9 - if usec < 0 { - usec += 1e6 - sec-- - } - return setTimeval(sec, usec) -} - -// Unix returns the time stored in ts as seconds plus nanoseconds. -func (ts *Timespec) Unix() (sec int64, nsec int64) { - return int64(ts.Sec), int64(ts.Nsec) -} - -// Unix returns the time stored in tv as seconds plus nanoseconds. -func (tv *Timeval) Unix() (sec int64, nsec int64) { - return int64(tv.Sec), int64(tv.Usec) * 1000 -} - -// Nano returns the time stored in ts as nanoseconds. -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -// Nano returns the time stored in tv as nanoseconds. -func (tv *Timeval) Nano() int64 { - return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 -} diff --git a/backend/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/backend/vendor/golang.org/x/sys/unix/unveil_openbsd.go deleted file mode 100644 index 168d5ae7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/unveil_openbsd.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "syscall" - "unsafe" -) - -// Unveil implements the unveil syscall. -// For more information see unveil(2). -// Note that the special case of blocking further -// unveil calls is handled by UnveilBlock. -func Unveil(path string, flags string) error { - pathPtr, err := syscall.BytePtrFromString(path) - if err != nil { - return err - } - flagsPtr, err := syscall.BytePtrFromString(flags) - if err != nil { - return err - } - _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0) - if e != 0 { - return e - } - return nil -} - -// UnveilBlock blocks future unveil calls. -// For more information see unveil(2). -func UnveilBlock() error { - // Both pointers must be nil. - var pathUnsafe, flagsUnsafe unsafe.Pointer - _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0) - if e != 0 { - return e - } - return nil -} diff --git a/backend/vendor/golang.org/x/sys/unix/xattr_bsd.go b/backend/vendor/golang.org/x/sys/unix/xattr_bsd.go deleted file mode 100644 index f5f8e9f3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ /dev/null @@ -1,281 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build freebsd || netbsd -// +build freebsd netbsd - -package unix - -import ( - "strings" - "unsafe" -) - -// Derive extattr namespace and attribute name - -func xattrnamespace(fullattr string) (ns int, attr string, err error) { - s := strings.IndexByte(fullattr, '.') - if s == -1 { - return -1, "", ENOATTR - } - - namespace := fullattr[0:s] - attr = fullattr[s+1:] - - switch namespace { - case "user": - return EXTATTR_NAMESPACE_USER, attr, nil - case "system": - return EXTATTR_NAMESPACE_SYSTEM, attr, nil - default: - return -1, "", ENOATTR - } -} - -func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { - if len(dest) > idx { - return unsafe.Pointer(&dest[idx]) - } - if dest != nil { - // extattr_get_file and extattr_list_file treat NULL differently from - // a non-NULL pointer of length zero. Preserve the property of nilness, - // even if we can't use dest directly. - return unsafe.Pointer(&_zero) - } - return nil -} - -// FreeBSD and NetBSD implement their own syscalls to handle extended attributes - -func Getxattr(file string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) -} - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) -} - -// flags are unused on FreeBSD - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) - return -} - -func Setxattr(file string, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) - return -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) - return -} - -func Removexattr(file string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFile(file, nsid, a) - return -} - -func Fremovexattr(fd int, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFd(fd, nsid, a) - return -} - -func Lremovexattr(link string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteLink(link, nsid, a) - return -} - -func Listxattr(file string, dest []byte) (sz int, err error) { - destsiz := len(dest) - - // FreeBSD won't allow you to list xattrs from multiple namespaces - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ListxattrNS(file, nsid, dest[pos:]) - - /* Errors accessing system attrs are ignored so that - * we can implement the Linux-like behavior of omitting errors that - * we don't have read permissions on - * - * Linux will still error if we ask for user attributes on a file that - * we don't have read permissions on, so don't ignore those errors - */ - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - destsiz := len(dest) - - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := FlistxattrNS(fd, nsid, dest[pos:]) - - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - destsiz := len(dest) - - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := LlistxattrNS(link, nsid, dest[pos:]) - - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go deleted file mode 100644 index ca9799b7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ /dev/null @@ -1,1385 +0,0 @@ -// mkerrors.sh -maix32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && aix -// +build ppc,aix - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -maix32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BYPASS = 0x19 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_INTF = 0x14 - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x1e - AF_NDD = 0x17 - AF_NETWARE = 0x16 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_RIF = 0x15 - AF_ROUTE = 0x11 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x400000 - ARPHRD_802_3 = 0x6 - ARPHRD_802_5 = 0x6 - ARPHRD_ETHER = 0x1 - ARPHRD_FDDI = 0x1 - B0 = 0x0 - B110 = 0x3 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2400 = 0xb - B300 = 0x7 - B38400 = 0xf - B4800 = 0xc - B50 = 0x1 - B600 = 0x8 - B75 = 0x2 - B9600 = 0xd - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x1000 - BSDLY = 0x1000 - CAP_AACCT = 0x6 - CAP_ARM_APPLICATION = 0x5 - CAP_BYPASS_RAC_VMM = 0x3 - CAP_CLEAR = 0x0 - CAP_CREDENTIALS = 0x7 - CAP_EFFECTIVE = 0x1 - CAP_EWLM_AGENT = 0x4 - CAP_INHERITABLE = 0x2 - CAP_MAXIMUM = 0x7 - CAP_NUMA_ATTACH = 0x2 - CAP_PERMITTED = 0x3 - CAP_PROPAGATE = 0x1 - CAP_PROPOGATE = 0x1 - CAP_SET = 0x1 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_MONOTONIC = 0xa - CLOCK_PROCESS_CPUTIME_ID = 0xb - CLOCK_REALTIME = 0x9 - CLOCK_THREAD_CPUTIME_ID = 0xc - CR0 = 0x0 - CR1 = 0x100 - CR2 = 0x200 - CR3 = 0x300 - CRDLY = 0x300 - CREAD = 0x80 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIOCGIFCONF = -0x3ff796dc - CSIZE = 0x30 - CSMAP_DIR = "/usr/lib/nls/csmap/" - CSTART = '\021' - CSTOP = '\023' - CSTOPB = 0x40 - CSUSP = 0x1a - ECHO = 0x8 - ECHOCTL = 0x20000 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x80000 - ECHONL = 0x40 - ECHOPRT = 0x40000 - ECH_ICMPID = 0x2 - ETHERNET_CSMACD = 0x6 - EVENP = 0x80 - EXCONTINUE = 0x0 - EXDLOK = 0x3 - EXIO = 0x2 - EXPGIO = 0x0 - EXRESUME = 0x2 - EXRETURN = 0x1 - EXSIG = 0x4 - EXTA = 0xe - EXTB = 0xf - EXTRAP = 0x1 - EYEC_RTENTRYA = 0x257274656e747241 - EYEC_RTENTRYF = 0x257274656e747246 - E_ACC = 0x0 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0xfffe - FF0 = 0x0 - FF1 = 0x2000 - FFDLY = 0x2000 - FLUSHBAND = 0x40 - FLUSHLOW = 0x8 - FLUSHO = 0x100000 - FLUSHR = 0x1 - FLUSHRW = 0x3 - FLUSHW = 0x2 - F_CLOSEM = 0xa - F_DUP2FD = 0xe - F_DUPFD = 0x0 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x5 - F_GETLK64 = 0xb - F_GETOWN = 0x8 - F_LOCK = 0x1 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0xc - F_SETLKW = 0x7 - F_SETLKW64 = 0xd - F_SETOWN = 0x9 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_TSTLK = 0xf - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x26 - ICMP6_SEC_SEND_DEL = 0x46 - ICMP6_SEC_SEND_GET = 0x47 - ICMP6_SEC_SEND_SET = 0x44 - ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 - ICRNL = 0x100 - IEXTEN = 0x200000 - IFA_FIRSTALIAS = 0x2000 - IFA_ROUTE = 0x1 - IFF_64BIT = 0x4000000 - IFF_ALLCAST = 0x20000 - IFF_ALLMULTI = 0x200 - IFF_BPF = 0x8000000 - IFF_BRIDGE = 0x40000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x80c52 - IFF_CHECKSUM_OFFLOAD = 0x10000000 - IFF_D1 = 0x8000 - IFF_D2 = 0x4000 - IFF_D3 = 0x2000 - IFF_D4 = 0x1000 - IFF_DEBUG = 0x4 - IFF_DEVHEALTH = 0x4000 - IFF_DO_HW_LOOPBACK = 0x10000 - IFF_GROUP_ROUTING = 0x2000000 - IFF_IFBUFMGT = 0x800000 - IFF_LINK0 = 0x100000 - IFF_LINK1 = 0x200000 - IFF_LINK2 = 0x400000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x80000 - IFF_NOARP = 0x80 - IFF_NOECHO = 0x800 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_PSEG = 0x40000000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SNAP = 0x8000 - IFF_TCP_DISABLE_CKSUM = 0x20000000 - IFF_TCP_NOCKSUM = 0x1000000 - IFF_UP = 0x1 - IFF_VIPA = 0x80000000 - IFNAMSIZ = 0x10 - IFO_FLUSH = 0x1 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_CLUSTER = 0x3e - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FCS = 0x3a - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIFTUNNEL = 0x3c - IFT_HDH1822 = 0x3 - IFT_HF = 0x3d - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SN = 0x38 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SP = 0x39 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TUNNEL = 0x3b - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_VIPA = 0x37 - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x10000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_USE = 0x1 - IPPROTO_AH = 0x33 - IPPROTO_BIP = 0x53 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GIF = 0x8c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_LOCAL = 0x3f - IPPROTO_MAX = 0x100 - IPPROTO_MH = 0x87 - IPPROTO_NONE = 0x3b - IPPROTO_PUP = 0xc - IPPROTO_QOS = 0x2d - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_ADDRFORM = 0x16 - IPV6_ADDR_PREFERENCES = 0x4a - IPV6_ADD_MEMBERSHIP = 0xc - IPV6_AIXRAWSOCKET = 0x39 - IPV6_CHECKSUM = 0x27 - IPV6_DONTFRAG = 0x2d - IPV6_DROP_MEMBERSHIP = 0xd - IPV6_DSTOPTS = 0x36 - IPV6_FLOWINFO_FLOWLABEL = 0xffffff - IPV6_FLOWINFO_PRIFLOW = 0xfffffff - IPV6_FLOWINFO_PRIORITY = 0xf000000 - IPV6_FLOWINFO_SRFLAG = 0x10000000 - IPV6_FLOWINFO_VERSION = 0xf0000000 - IPV6_HOPLIMIT = 0x28 - IPV6_HOPOPTS = 0x34 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MIPDSTOPTS = 0x36 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_NOPROBE = 0x1c - IPV6_PATHMTU = 0x2e - IPV6_PKTINFO = 0x21 - IPV6_PKTOPTIONS = 0x24 - IPV6_PRIORITY_10 = 0xa000000 - IPV6_PRIORITY_11 = 0xb000000 - IPV6_PRIORITY_12 = 0xc000000 - IPV6_PRIORITY_13 = 0xd000000 - IPV6_PRIORITY_14 = 0xe000000 - IPV6_PRIORITY_15 = 0xf000000 - IPV6_PRIORITY_8 = 0x8000000 - IPV6_PRIORITY_9 = 0x9000000 - IPV6_PRIORITY_BULK = 0x4000000 - IPV6_PRIORITY_CONTROL = 0x7000000 - IPV6_PRIORITY_FILLER = 0x1000000 - IPV6_PRIORITY_INTERACTIVE = 0x6000000 - IPV6_PRIORITY_RESERVED1 = 0x3000000 - IPV6_PRIORITY_RESERVED2 = 0x5000000 - IPV6_PRIORITY_UNATTENDED = 0x2000000 - IPV6_PRIORITY_UNCHARACTERIZED = 0x0 - IPV6_RECVDSTOPTS = 0x38 - IPV6_RECVHOPLIMIT = 0x29 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVHOPS = 0x22 - IPV6_RECVIF = 0x1e - IPV6_RECVPATHMTU = 0x2f - IPV6_RECVPKTINFO = 0x23 - IPV6_RECVRTHDR = 0x33 - IPV6_RECVSRCRT = 0x1d - IPV6_RECVTCLASS = 0x2a - IPV6_RTHDR = 0x32 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RTHDR_TYPE_2 = 0x2 - IPV6_SENDIF = 0x1f - IPV6_SRFLAG_LOOSE = 0x0 - IPV6_SRFLAG_STRICT = 0x10000000 - IPV6_TCLASS = 0x2b - IPV6_TOKEN_LENGTH = 0x40 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2c - IPV6_V6ONLY = 0x25 - IPV6_VERSION = 0x60000000 - IP_ADDRFORM = 0x16 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x3c - IP_BLOCK_SOURCE = 0x3a - IP_BROADCAST_IF = 0x10 - IP_CACHE_LINE_SIZE = 0x80 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPMODE = 0x11 - IP_DONTFRAG = 0x19 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x3d - IP_FINDPMTU = 0x1a - IP_HDRINCL = 0x2 - IP_INC_MEMBERSHIPS = 0x14 - IP_INIT_MEMBERSHIP = 0x14 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_HOPS = 0xa - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OPT = 0x1b - IP_OPTIONS = 0x1 - IP_PMTUAGE = 0x1b - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVIFINFO = 0xf - IP_RECVINTERFACE = 0x20 - IP_RECVMACHDR = 0xe - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x22 - IP_RETOPTS = 0x8 - IP_SOURCE_FILTER = 0x48 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x3b - IP_UNICAST_HOPS = 0x4 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x800 - IXANY = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - I_FLUSH = 0x20005305 - LNOFLSH = 0x8000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x10 - MAP_ANONYMOUS = 0x10 - MAP_FILE = 0x0 - MAP_FIXED = 0x100 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_TYPE = 0xf0 - MAP_VARIABLE = 0x0 - MCAST_BLOCK_SOURCE = 0x40 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x3e - MCAST_JOIN_SOURCE_GROUP = 0x42 - MCAST_LEAVE_GROUP = 0x3f - MCAST_LEAVE_SOURCE_GROUP = 0x43 - MCAST_SOURCE_FILTER = 0x49 - MCAST_UNBLOCK_SOURCE = 0x41 - MCL_CURRENT = 0x100 - MCL_FUTURE = 0x200 - MSG_ANY = 0x4 - MSG_ARGEXT = 0x400 - MSG_BAND = 0x2 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOR = 0x8 - MSG_HIPRI = 0x1 - MSG_MAXIOVLEN = 0x10 - MSG_MPEG2 = 0x80 - MSG_NONBLOCK = 0x4000 - MSG_NOSIGNAL = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x200 - MS_ASYNC = 0x10 - MS_EINTR = 0x80 - MS_INVALIDATE = 0x40 - MS_PER_SEC = 0x3e8 - MS_SYNC = 0x20 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x4000 - NL2 = 0x8000 - NL3 = 0xc000 - NLDLY = 0x4000 - NOFLSH = 0x80 - NOFLUSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - ONOEOT = 0x80000 - OPOST = 0x1 - OXTABS = 0x40000 - O_ACCMODE = 0x23 - O_APPEND = 0x8 - O_CIO = 0x80 - O_CIOR = 0x800000000 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DEFER = 0x2000 - O_DELAY = 0x4000 - O_DIRECT = 0x8000000 - O_DIRECTORY = 0x80000 - O_DSYNC = 0x400000 - O_EFSOFF = 0x400000000 - O_EFSON = 0x200000000 - O_EXCL = 0x400 - O_EXEC = 0x20 - O_LARGEFILE = 0x4000000 - O_NDELAY = 0x8000 - O_NOCACHE = 0x100000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x1000000 - O_NONBLOCK = 0x4 - O_NONE = 0x3 - O_NSHARE = 0x10000 - O_RAW = 0x100000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSHARE = 0x1000 - O_RSYNC = 0x200000 - O_SEARCH = 0x20 - O_SNAPSHOT = 0x40 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_TTY_INIT = 0x0 - O_WRONLY = 0x1 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_64BIT = 0x20 - PR_ADDR = 0x2 - PR_ARGEXT = 0x400 - PR_ATOMIC = 0x1 - PR_CONNREQUIRED = 0x4 - PR_FASTHZ = 0x5 - PR_INP = 0x40 - PR_INTRLEVEL = 0x8000 - PR_MLS = 0x100 - PR_MLS_1_LABEL = 0x200 - PR_NOEOR = 0x4000 - PR_RIGHTS = 0x10 - PR_SLOWHZ = 0x2 - PR_WANTRCVD = 0x8 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x9 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DOWNSTREAM = 0x100 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTC_IA64 = 0x3 - RTC_POWER = 0x1 - RTC_POWER_PC = 0x2 - RTF_ACTIVE_DGD = 0x1000000 - RTF_BCE = 0x80000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_BUL = 0x2000 - RTF_CLONE = 0x10000 - RTF_CLONED = 0x20000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FREE_IN_PROG = 0x4000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PERMANENT6 = 0x8000000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_SMALLMTU = 0x40000 - RTF_STATIC = 0x800 - RTF_STOPSRCH = 0x2000000 - RTF_UNREACHABLE = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_EXPIRE = 0xf - RTM_GET = 0x4 - RTM_GETNEXT = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTLOST = 0x10 - RTM_RTTUNIT = 0xf4240 - RTM_SAMEADDR = 0x12 - RTM_SET = 0x13 - RTM_VERSION = 0x2 - RTM_VERSION_GR = 0x4 - RTM_VERSION_GR_COMPAT = 0x3 - RTM_VERSION_POLICY = 0x5 - RTM_VERSION_POLICY_EXT = 0x6 - RTM_VERSION_POLICY_PRFN = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIGMAX64 = 0xff - SIGQUEUE_MAX = 0x20 - SIOCADDIFVIPA = 0x20006942 - SIOCADDMTU = -0x7ffb9690 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDNETID = -0x7fd796a9 - SIOCADDRT = -0x7fcf8df6 - SIOCAIFADDR = -0x7fbf96e6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fb396e0 - SIOCDELIFVIPA = 0x20006943 - SIOCDELMTU = -0x7ffb968f - SIOCDELMULTI = -0x7fdf96ce - SIOCDELPMTU = -0x7fd78ff6 - SIOCDELRT = -0x7fcf8df5 - SIOCDIFADDR = -0x7fd796e7 - SIOCDNETOPT = -0x3ffe9680 - SIOCDX25XLATE = -0x7fd7969b - SIOCFIFADDR = -0x7fdf966d - SIOCGARP = -0x3fb396da - SIOCGETMTUS = 0x2000696f - SIOCGETSGCNT = -0x3feb8acc - SIOCGETVIFCNT = -0x3feb8acd - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fd796df - SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fdf9669 - SIOCGIFBRDADDR = -0x3fd796dd - SIOCGIFCONF = -0x3ff796bb - SIOCGIFCONFGLOB = -0x3ff79670 - SIOCGIFDSTADDR = -0x3fd796de - SIOCGIFFLAGS = -0x3fd796ef - SIOCGIFGIDLIST = 0x20006968 - SIOCGIFHWADDR = -0x3fab966b - SIOCGIFMETRIC = -0x3fd796e9 - SIOCGIFMTU = -0x3fd796aa - SIOCGIFNETMASK = -0x3fd796db - SIOCGIFOPTIONS = -0x3fd796d6 - SIOCGISNO = -0x3fd79695 - SIOCGLOADF = -0x3ffb967e - SIOCGLOWAT = 0x40047303 - SIOCGNETOPT = -0x3ffe96a5 - SIOCGNETOPT1 = -0x3fdf967f - SIOCGNMTUS = 0x2000696e - SIOCGPGRP = 0x40047309 - SIOCGSIZIFCONF = 0x4004696a - SIOCGSRCFILTER = -0x3fe796cb - SIOCGTUNEPHASE = -0x3ffb9676 - SIOCGX25XLATE = -0x3fd7969c - SIOCIFATTACH = -0x7fdf9699 - SIOCIFDETACH = -0x7fdf969a - SIOCIFGETPKEY = -0x7fdf969b - SIOCIF_ATM_DARP = -0x7fdf9683 - SIOCIF_ATM_DUMPARP = -0x7fdf9685 - SIOCIF_ATM_GARP = -0x7fdf9682 - SIOCIF_ATM_IDLE = -0x7fdf9686 - SIOCIF_ATM_SARP = -0x7fdf9681 - SIOCIF_ATM_SNMPARP = -0x7fdf9687 - SIOCIF_ATM_SVC = -0x7fdf9684 - SIOCIF_ATM_UBR = -0x7fdf9688 - SIOCIF_DEVHEALTH = -0x7ffb966c - SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 - SIOCIF_IB_ARP_TIMER = -0x7fdf9678 - SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f - SIOCIF_IB_DEL_ARP = -0x7fdf967f - SIOCIF_IB_DEL_PINFO = -0x3fdf9670 - SIOCIF_IB_DUMP_ARP = -0x7fdf9680 - SIOCIF_IB_GET_ARP = -0x7fdf967e - SIOCIF_IB_GET_INFO = -0x3f879675 - SIOCIF_IB_GET_STATS = -0x3f879672 - SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a - SIOCIF_IB_RESET_STATS = -0x3f879671 - SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 - SIOCIF_IB_SET_ARP = -0x7fdf967d - SIOCIF_IB_SET_PKEY = -0x7fdf967c - SIOCIF_IB_SET_PORT = -0x7fdf967b - SIOCIF_IB_SET_QKEY = -0x7fdf9676 - SIOCIF_IB_SET_QSIZE = -0x7fdf967a - SIOCLISTIFVIPA = 0x20006944 - SIOCSARP = -0x7fb396e2 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = -0x7fd796f4 - SIOCSIFADDRORI = -0x7fdb9673 - SIOCSIFBRDADDR = -0x7fd796ed - SIOCSIFDSTADDR = -0x7fd796f2 - SIOCSIFFLAGS = -0x7fd796f0 - SIOCSIFGIDLIST = 0x20006969 - SIOCSIFMETRIC = -0x7fd796e8 - SIOCSIFMTU = -0x7fd796a8 - SIOCSIFNETDUMP = -0x7fd796e4 - SIOCSIFNETMASK = -0x7fd796ea - SIOCSIFOPTIONS = -0x7fd796d7 - SIOCSIFSUBCHAN = -0x7fd796e5 - SIOCSISNO = -0x7fd79694 - SIOCSLOADF = -0x3ffb967d - SIOCSLOWAT = 0x80047302 - SIOCSNETOPT = -0x7ffe96a6 - SIOCSPGRP = 0x80047308 - SIOCSX25XLATE = -0x7fd7969d - SOCK_CONN_DGRAM = 0x6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x400 - SO_ACCEPTCONN = 0x2 - SO_AUDIT = 0x8000 - SO_BROADCAST = 0x20 - SO_CKSUMRECV = 0x800 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_KERNACCEPT = 0x2000 - SO_LINGER = 0x80 - SO_NOMULTIPATH = 0x4000 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x100 - SO_PEERID = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMPNS = 0x100a - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USE_IFBUFS = 0x400 - S_BANDURG = 0x400 - S_EMODFMT = 0x3c000000 - S_ENFMT = 0x400 - S_ERROR = 0x100 - S_HANGUP = 0x200 - S_HIPRI = 0x2 - S_ICRYPTO = 0x80000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFJOURNAL = 0x10000 - S_IFLNK = 0xa000 - S_IFMPX = 0x2200 - S_IFMT = 0xf000 - S_IFPDIR = 0x4000000 - S_IFPSDIR = 0x8000000 - S_IFPSSDIR = 0xc000000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFSYSEA = 0x30000000 - S_INPUT = 0x1 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_ITCB = 0x1000000 - S_ITP = 0x800000 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXACL = 0x2000000 - S_IXATTR = 0x40000 - S_IXGRP = 0x8 - S_IXINTERFACE = 0x100000 - S_IXMOD = 0x40000000 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_MSG = 0x8 - S_OUTPUT = 0x4 - S_RDBAND = 0x20 - S_RDNORM = 0x10 - S_RESERVED1 = 0x20000 - S_RESERVED2 = 0x200000 - S_RESERVED3 = 0x400000 - S_RESERVED4 = 0x80000000 - S_RESFMT1 = 0x10000000 - S_RESFMT10 = 0x34000000 - S_RESFMT11 = 0x38000000 - S_RESFMT12 = 0x3c000000 - S_RESFMT2 = 0x14000000 - S_RESFMT3 = 0x18000000 - S_RESFMT4 = 0x1c000000 - S_RESFMT5 = 0x20000000 - S_RESFMT6 = 0x24000000 - S_RESFMT7 = 0x28000000 - S_RESFMT8 = 0x2c000000 - S_WRBAND = 0x80 - S_WRNORM = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x540c - TCGETA = 0x5405 - TCGETS = 0x5401 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 - TCP_ACLADD = 0x23 - TCP_ACLBIND = 0x26 - TCP_ACLCLEAR = 0x22 - TCP_ACLDEL = 0x24 - TCP_ACLDENY = 0x8 - TCP_ACLFLUSH = 0x21 - TCP_ACLGID = 0x1 - TCP_ACLLS = 0x25 - TCP_ACLSUBNET = 0x4 - TCP_ACLUID = 0x2 - TCP_CWND_DF = 0x16 - TCP_CWND_IF = 0x15 - TCP_DELAY_ACK_FIN = 0x2 - TCP_DELAY_ACK_SYN = 0x1 - TCP_FASTNAME = 0x101080a - TCP_KEEPCNT = 0x13 - TCP_KEEPIDLE = 0x11 - TCP_KEEPINTVL = 0x12 - TCP_LSPRIV = 0x29 - TCP_LUID = 0x20 - TCP_MAXBURST = 0x8 - TCP_MAXDF = 0x64 - TCP_MAXIF = 0x64 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAXWINDOWSCALE = 0xe - TCP_MAX_SACK = 0x4 - TCP_MSS = 0x5b4 - TCP_NODELAY = 0x1 - TCP_NODELAYACK = 0x14 - TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 - TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 - TCP_NOTENTER_SSTART = 0x17 - TCP_OPT = 0x19 - TCP_RFC1323 = 0x4 - TCP_SETPRIV = 0x27 - TCP_STDURG = 0x10 - TCP_TIMESTAMP_OPTLEN = 0xc - TCP_UNSETPRIV = 0x28 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETSF = 0x5404 - TCSETSW = 0x5403 - TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 - TIOC = 0x5400 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCEXCL = 0x2000740d - TIOCFLUSH = 0x80047410 - TIOCGETC = 0x40067412 - TIOCGETD = 0x40047400 - TIOCGETP = 0x40067408 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047448 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCHPCL = 0x20007402 - TIOCLBIC = 0x8004747e - TIOCLBIS = 0x8004747f - TIOCLGET = 0x4004747c - TIOCLSET = 0x8004747d - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x80047464 - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSDTR = 0x20007479 - TIOCSETC = 0x80067411 - TIOCSETD = 0x80047401 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x10000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x3 - VDISCRD = 0xc - VDSUSP = 0xa - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xe - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0x7 - VSTOP = 0x8 - VSTRT = 0x7 - VSUSP = 0x9 - VT0 = 0x0 - VT1 = 0x8000 - VTDELAY = 0x2000 - VTDLY = 0x8000 - VTIME = 0x5 - VWERSE = 0xd - WPARSTART = 0x1 - WPARSTOP = 0x2 - WPARTTYNAME = "Global" - XCASE = 0x4 - XTABS = 0xc00 - _FDATAFLUSH = 0x2000000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x43) - EADDRNOTAVAIL = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x42) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x38) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x78) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x75) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECLONEME = syscall.Errno(0x52) - ECONNABORTED = syscall.Errno(0x48) - ECONNREFUSED = syscall.Errno(0x4f) - ECONNRESET = syscall.Errno(0x49) - ECORRUPT = syscall.Errno(0x59) - EDEADLK = syscall.Errno(0x2d) - EDESTADDREQ = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x3a) - EDIST = syscall.Errno(0x35) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x58) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFORMAT = syscall.Errno(0x30) - EHOSTDOWN = syscall.Errno(0x50) - EHOSTUNREACH = syscall.Errno(0x51) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x74) - EINPROGRESS = syscall.Errno(0x37) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x4b) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x55) - EMEDIA = syscall.Errno(0x6e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x3b) - EMULTIHOP = syscall.Errno(0x7d) - ENAMETOOLONG = syscall.Errno(0x56) - ENETDOWN = syscall.Errno(0x45) - ENETRESET = syscall.Errno(0x47) - ENETUNREACH = syscall.Errno(0x46) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x70) - ENOBUFS = syscall.Errno(0x4a) - ENOCONNECT = syscall.Errno(0x32) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x7a) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x31) - ENOLINK = syscall.Errno(0x7e) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENOPROTOOPT = syscall.Errno(0x3d) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x76) - ENOSTR = syscall.Errno(0x7b) - ENOSYS = syscall.Errno(0x6d) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x4c) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x11) - ENOTREADY = syscall.Errno(0x2e) - ENOTRECOVERABLE = syscall.Errno(0x5e) - ENOTRUST = syscall.Errno(0x72) - ENOTSOCK = syscall.Errno(0x39) - ENOTSUP = syscall.Errno(0x7c) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x40) - EOVERFLOW = syscall.Errno(0x7f) - EOWNERDEAD = syscall.Errno(0x5f) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x41) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x53) - EPROTO = syscall.Errno(0x79) - EPROTONOSUPPORT = syscall.Errno(0x3e) - EPROTOTYPE = syscall.Errno(0x3c) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x5d) - ERESTART = syscall.Errno(0x52) - EROFS = syscall.Errno(0x1e) - ESAD = syscall.Errno(0x71) - ESHUTDOWN = syscall.Errno(0x4d) - ESOCKTNOSUPPORT = syscall.Errno(0x3f) - ESOFT = syscall.Errno(0x6f) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x34) - ESYSERROR = syscall.Errno(0x5a) - ETIME = syscall.Errno(0x77) - ETIMEDOUT = syscall.Errno(0x4e) - ETOOMANYREFS = syscall.Errno(0x73) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x54) - EWOULDBLOCK = syscall.Errno(0xb) - EWRPROTECT = syscall.Errno(0x2f) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGAIO = syscall.Signal(0x17) - SIGALRM = syscall.Signal(0xe) - SIGALRM1 = syscall.Signal(0x26) - SIGBUS = syscall.Signal(0xa) - SIGCAPI = syscall.Signal(0x31) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGCPUFAIL = syscall.Signal(0x3b) - SIGDANGER = syscall.Signal(0x21) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGGRANT = syscall.Signal(0x3c) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOINT = syscall.Signal(0x10) - SIGIOT = syscall.Signal(0x6) - SIGKAP = syscall.Signal(0x3c) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x6) - SIGMAX = syscall.Signal(0x3f) - SIGMAX32 = syscall.Signal(0x3f) - SIGMIGRATE = syscall.Signal(0x23) - SIGMSG = syscall.Signal(0x1b) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPRE = syscall.Signal(0x24) - SIGPROF = syscall.Signal(0x20) - SIGPTY = syscall.Signal(0x17) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGRECONFIG = syscall.Signal(0x3a) - SIGRETRACT = syscall.Signal(0x3d) - SIGSAK = syscall.Signal(0x3f) - SIGSEGV = syscall.Signal(0xb) - SIGSOUND = syscall.Signal(0x3e) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGSYSERROR = syscall.Signal(0x30) - SIGTALRM = syscall.Signal(0x26) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVIRT = syscall.Signal(0x25) - SIGVTALRM = syscall.Signal(0x22) - SIGWAITING = syscall.Signal(0x27) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EWOULDBLOCK", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "ENOTEMPTY", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "not a typewriter"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock condition if locked"}, - {46, "ENOTREADY", "device not ready"}, - {47, "EWRPROTECT", "write-protected media"}, - {48, "EFORMAT", "unformatted or incompatible media"}, - {49, "ENOLCK", "no locks available"}, - {50, "ENOCONNECT", "cannot Establish Connection"}, - {52, "ESTALE", "missing file or filesystem"}, - {53, "EDIST", "requests blocked by Administrator"}, - {55, "EINPROGRESS", "operation now in progress"}, - {56, "EALREADY", "operation already in progress"}, - {57, "ENOTSOCK", "socket operation on non-socket"}, - {58, "EDESTADDREQ", "destination address required"}, - {59, "EMSGSIZE", "message too long"}, - {60, "EPROTOTYPE", "protocol wrong type for socket"}, - {61, "ENOPROTOOPT", "protocol not available"}, - {62, "EPROTONOSUPPORT", "protocol not supported"}, - {63, "ESOCKTNOSUPPORT", "socket type not supported"}, - {64, "EOPNOTSUPP", "operation not supported on socket"}, - {65, "EPFNOSUPPORT", "protocol family not supported"}, - {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, - {67, "EADDRINUSE", "address already in use"}, - {68, "EADDRNOTAVAIL", "can't assign requested address"}, - {69, "ENETDOWN", "network is down"}, - {70, "ENETUNREACH", "network is unreachable"}, - {71, "ENETRESET", "network dropped connection on reset"}, - {72, "ECONNABORTED", "software caused connection abort"}, - {73, "ECONNRESET", "connection reset by peer"}, - {74, "ENOBUFS", "no buffer space available"}, - {75, "EISCONN", "socket is already connected"}, - {76, "ENOTCONN", "socket is not connected"}, - {77, "ESHUTDOWN", "can't send after socket shutdown"}, - {78, "ETIMEDOUT", "connection timed out"}, - {79, "ECONNREFUSED", "connection refused"}, - {80, "EHOSTDOWN", "host is down"}, - {81, "EHOSTUNREACH", "no route to host"}, - {82, "ERESTART", "restart the system call"}, - {83, "EPROCLIM", "too many processes"}, - {84, "EUSERS", "too many users"}, - {85, "ELOOP", "too many levels of symbolic links"}, - {86, "ENAMETOOLONG", "file name too long"}, - {88, "EDQUOT", "disk quota exceeded"}, - {89, "ECORRUPT", "invalid file system control data detected"}, - {90, "ESYSERROR", "for future use "}, - {93, "EREMOTE", "item is not local to host"}, - {94, "ENOTRECOVERABLE", "state not recoverable "}, - {95, "EOWNERDEAD", "previous owner died "}, - {109, "ENOSYS", "function not implemented"}, - {110, "EMEDIA", "media surface error"}, - {111, "ESOFT", "I/O completed, but needs relocation"}, - {112, "ENOATTR", "no attribute found"}, - {113, "ESAD", "security Authentication Denied"}, - {114, "ENOTRUST", "not a Trusted Program"}, - {115, "ETOOMANYREFS", "too many references: can't splice"}, - {116, "EILSEQ", "invalid wide character"}, - {117, "ECANCELED", "asynchronous I/O cancelled"}, - {118, "ENOSR", "out of STREAMS resources"}, - {119, "ETIME", "system call timed out"}, - {120, "EBADMSG", "next message has wrong type"}, - {121, "EPROTO", "error in protocol"}, - {122, "ENODATA", "no message on stream head read q"}, - {123, "ENOSTR", "fd not associated with a stream"}, - {124, "ENOTSUP", "unsupported attribute value"}, - {125, "EMULTIHOP", "multihop is not allowed"}, - {126, "ENOLINK", "the server link has been severed"}, - {127, "EOVERFLOW", "value too large to be stored in data type"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "IOT/Abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible/complete"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {27, "SIGMSG", "input device data"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGPWR", "power-failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "paging space low"}, - {34, "SIGVTALRM", "virtual timer expired"}, - {35, "SIGMIGRATE", "signal 35"}, - {36, "SIGPRE", "signal 36"}, - {37, "SIGVIRT", "signal 37"}, - {38, "SIGTALRM", "signal 38"}, - {39, "SIGWAITING", "signal 39"}, - {48, "SIGSYSERROR", "signal 48"}, - {49, "SIGCAPI", "signal 49"}, - {58, "SIGRECONFIG", "signal 58"}, - {59, "SIGCPUFAIL", "CPU Failure Predicted"}, - {60, "SIGKAP", "monitor mode granted"}, - {61, "SIGRETRACT", "monitor mode retracted"}, - {62, "SIGSOUND", "sound completed"}, - {63, "SIGSAK", "secure attention"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go deleted file mode 100644 index 200c8c26..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ /dev/null @@ -1,1386 +0,0 @@ -// mkerrors.sh -maix64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && aix -// +build ppc64,aix - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -maix64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BYPASS = 0x19 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_INTF = 0x14 - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x1e - AF_NDD = 0x17 - AF_NETWARE = 0x16 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_RIF = 0x15 - AF_ROUTE = 0x11 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x400000 - ARPHRD_802_3 = 0x6 - ARPHRD_802_5 = 0x6 - ARPHRD_ETHER = 0x1 - ARPHRD_FDDI = 0x1 - B0 = 0x0 - B110 = 0x3 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2400 = 0xb - B300 = 0x7 - B38400 = 0xf - B4800 = 0xc - B50 = 0x1 - B600 = 0x8 - B75 = 0x2 - B9600 = 0xd - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x1000 - BSDLY = 0x1000 - CAP_AACCT = 0x6 - CAP_ARM_APPLICATION = 0x5 - CAP_BYPASS_RAC_VMM = 0x3 - CAP_CLEAR = 0x0 - CAP_CREDENTIALS = 0x7 - CAP_EFFECTIVE = 0x1 - CAP_EWLM_AGENT = 0x4 - CAP_INHERITABLE = 0x2 - CAP_MAXIMUM = 0x7 - CAP_NUMA_ATTACH = 0x2 - CAP_PERMITTED = 0x3 - CAP_PROPAGATE = 0x1 - CAP_PROPOGATE = 0x1 - CAP_SET = 0x1 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_MONOTONIC = 0xa - CLOCK_PROCESS_CPUTIME_ID = 0xb - CLOCK_REALTIME = 0x9 - CLOCK_THREAD_CPUTIME_ID = 0xc - CR0 = 0x0 - CR1 = 0x100 - CR2 = 0x200 - CR3 = 0x300 - CRDLY = 0x300 - CREAD = 0x80 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIOCGIFCONF = -0x3fef96dc - CSIZE = 0x30 - CSMAP_DIR = "/usr/lib/nls/csmap/" - CSTART = '\021' - CSTOP = '\023' - CSTOPB = 0x40 - CSUSP = 0x1a - ECHO = 0x8 - ECHOCTL = 0x20000 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x80000 - ECHONL = 0x40 - ECHOPRT = 0x40000 - ECH_ICMPID = 0x2 - ETHERNET_CSMACD = 0x6 - EVENP = 0x80 - EXCONTINUE = 0x0 - EXDLOK = 0x3 - EXIO = 0x2 - EXPGIO = 0x0 - EXRESUME = 0x2 - EXRETURN = 0x1 - EXSIG = 0x4 - EXTA = 0xe - EXTB = 0xf - EXTRAP = 0x1 - EYEC_RTENTRYA = 0x257274656e747241 - EYEC_RTENTRYF = 0x257274656e747246 - E_ACC = 0x0 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0xfffe - FF0 = 0x0 - FF1 = 0x2000 - FFDLY = 0x2000 - FLUSHBAND = 0x40 - FLUSHLOW = 0x8 - FLUSHO = 0x100000 - FLUSHR = 0x1 - FLUSHRW = 0x3 - FLUSHW = 0x2 - F_CLOSEM = 0xa - F_DUP2FD = 0xe - F_DUPFD = 0x0 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETLK64 = 0xb - F_GETOWN = 0x8 - F_LOCK = 0x1 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLK64 = 0xc - F_SETLKW = 0xd - F_SETLKW64 = 0xd - F_SETOWN = 0x9 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_TSTLK = 0xf - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x26 - ICMP6_SEC_SEND_DEL = 0x46 - ICMP6_SEC_SEND_GET = 0x47 - ICMP6_SEC_SEND_SET = 0x44 - ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 - ICRNL = 0x100 - IEXTEN = 0x200000 - IFA_FIRSTALIAS = 0x2000 - IFA_ROUTE = 0x1 - IFF_64BIT = 0x4000000 - IFF_ALLCAST = 0x20000 - IFF_ALLMULTI = 0x200 - IFF_BPF = 0x8000000 - IFF_BRIDGE = 0x40000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x80c52 - IFF_CHECKSUM_OFFLOAD = 0x10000000 - IFF_D1 = 0x8000 - IFF_D2 = 0x4000 - IFF_D3 = 0x2000 - IFF_D4 = 0x1000 - IFF_DEBUG = 0x4 - IFF_DEVHEALTH = 0x4000 - IFF_DO_HW_LOOPBACK = 0x10000 - IFF_GROUP_ROUTING = 0x2000000 - IFF_IFBUFMGT = 0x800000 - IFF_LINK0 = 0x100000 - IFF_LINK1 = 0x200000 - IFF_LINK2 = 0x400000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x80000 - IFF_NOARP = 0x80 - IFF_NOECHO = 0x800 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_PSEG = 0x40000000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SNAP = 0x8000 - IFF_TCP_DISABLE_CKSUM = 0x20000000 - IFF_TCP_NOCKSUM = 0x1000000 - IFF_UP = 0x1 - IFF_VIPA = 0x80000000 - IFNAMSIZ = 0x10 - IFO_FLUSH = 0x1 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_CLUSTER = 0x3e - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FCS = 0x3a - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIFTUNNEL = 0x3c - IFT_HDH1822 = 0x3 - IFT_HF = 0x3d - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SN = 0x38 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SP = 0x39 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TUNNEL = 0x3b - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_VIPA = 0x37 - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x10000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_USE = 0x1 - IPPROTO_AH = 0x33 - IPPROTO_BIP = 0x53 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GIF = 0x8c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_LOCAL = 0x3f - IPPROTO_MAX = 0x100 - IPPROTO_MH = 0x87 - IPPROTO_NONE = 0x3b - IPPROTO_PUP = 0xc - IPPROTO_QOS = 0x2d - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_ADDRFORM = 0x16 - IPV6_ADDR_PREFERENCES = 0x4a - IPV6_ADD_MEMBERSHIP = 0xc - IPV6_AIXRAWSOCKET = 0x39 - IPV6_CHECKSUM = 0x27 - IPV6_DONTFRAG = 0x2d - IPV6_DROP_MEMBERSHIP = 0xd - IPV6_DSTOPTS = 0x36 - IPV6_FLOWINFO_FLOWLABEL = 0xffffff - IPV6_FLOWINFO_PRIFLOW = 0xfffffff - IPV6_FLOWINFO_PRIORITY = 0xf000000 - IPV6_FLOWINFO_SRFLAG = 0x10000000 - IPV6_FLOWINFO_VERSION = 0xf0000000 - IPV6_HOPLIMIT = 0x28 - IPV6_HOPOPTS = 0x34 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MIPDSTOPTS = 0x36 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_NOPROBE = 0x1c - IPV6_PATHMTU = 0x2e - IPV6_PKTINFO = 0x21 - IPV6_PKTOPTIONS = 0x24 - IPV6_PRIORITY_10 = 0xa000000 - IPV6_PRIORITY_11 = 0xb000000 - IPV6_PRIORITY_12 = 0xc000000 - IPV6_PRIORITY_13 = 0xd000000 - IPV6_PRIORITY_14 = 0xe000000 - IPV6_PRIORITY_15 = 0xf000000 - IPV6_PRIORITY_8 = 0x8000000 - IPV6_PRIORITY_9 = 0x9000000 - IPV6_PRIORITY_BULK = 0x4000000 - IPV6_PRIORITY_CONTROL = 0x7000000 - IPV6_PRIORITY_FILLER = 0x1000000 - IPV6_PRIORITY_INTERACTIVE = 0x6000000 - IPV6_PRIORITY_RESERVED1 = 0x3000000 - IPV6_PRIORITY_RESERVED2 = 0x5000000 - IPV6_PRIORITY_UNATTENDED = 0x2000000 - IPV6_PRIORITY_UNCHARACTERIZED = 0x0 - IPV6_RECVDSTOPTS = 0x38 - IPV6_RECVHOPLIMIT = 0x29 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVHOPS = 0x22 - IPV6_RECVIF = 0x1e - IPV6_RECVPATHMTU = 0x2f - IPV6_RECVPKTINFO = 0x23 - IPV6_RECVRTHDR = 0x33 - IPV6_RECVSRCRT = 0x1d - IPV6_RECVTCLASS = 0x2a - IPV6_RTHDR = 0x32 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RTHDR_TYPE_2 = 0x2 - IPV6_SENDIF = 0x1f - IPV6_SRFLAG_LOOSE = 0x0 - IPV6_SRFLAG_STRICT = 0x10000000 - IPV6_TCLASS = 0x2b - IPV6_TOKEN_LENGTH = 0x40 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2c - IPV6_V6ONLY = 0x25 - IPV6_VERSION = 0x60000000 - IP_ADDRFORM = 0x16 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x3c - IP_BLOCK_SOURCE = 0x3a - IP_BROADCAST_IF = 0x10 - IP_CACHE_LINE_SIZE = 0x80 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPMODE = 0x11 - IP_DONTFRAG = 0x19 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x3d - IP_FINDPMTU = 0x1a - IP_HDRINCL = 0x2 - IP_INC_MEMBERSHIPS = 0x14 - IP_INIT_MEMBERSHIP = 0x14 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_HOPS = 0xa - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OPT = 0x1b - IP_OPTIONS = 0x1 - IP_PMTUAGE = 0x1b - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVIFINFO = 0xf - IP_RECVINTERFACE = 0x20 - IP_RECVMACHDR = 0xe - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x22 - IP_RETOPTS = 0x8 - IP_SOURCE_FILTER = 0x48 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x3b - IP_UNICAST_HOPS = 0x4 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x800 - IXANY = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - I_FLUSH = 0x20005305 - LNOFLSH = 0x8000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x10 - MAP_ANONYMOUS = 0x10 - MAP_FILE = 0x0 - MAP_FIXED = 0x100 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_TYPE = 0xf0 - MAP_VARIABLE = 0x0 - MCAST_BLOCK_SOURCE = 0x40 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x3e - MCAST_JOIN_SOURCE_GROUP = 0x42 - MCAST_LEAVE_GROUP = 0x3f - MCAST_LEAVE_SOURCE_GROUP = 0x43 - MCAST_SOURCE_FILTER = 0x49 - MCAST_UNBLOCK_SOURCE = 0x41 - MCL_CURRENT = 0x100 - MCL_FUTURE = 0x200 - MSG_ANY = 0x4 - MSG_ARGEXT = 0x400 - MSG_BAND = 0x2 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOR = 0x8 - MSG_HIPRI = 0x1 - MSG_MAXIOVLEN = 0x10 - MSG_MPEG2 = 0x80 - MSG_NONBLOCK = 0x4000 - MSG_NOSIGNAL = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x200 - MS_ASYNC = 0x10 - MS_EINTR = 0x80 - MS_INVALIDATE = 0x40 - MS_PER_SEC = 0x3e8 - MS_SYNC = 0x20 - NFDBITS = 0x40 - NL0 = 0x0 - NL1 = 0x4000 - NL2 = 0x8000 - NL3 = 0xc000 - NLDLY = 0x4000 - NOFLSH = 0x80 - NOFLUSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - ONOEOT = 0x80000 - OPOST = 0x1 - OXTABS = 0x40000 - O_ACCMODE = 0x23 - O_APPEND = 0x8 - O_CIO = 0x80 - O_CIOR = 0x800000000 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DEFER = 0x2000 - O_DELAY = 0x4000 - O_DIRECT = 0x8000000 - O_DIRECTORY = 0x80000 - O_DSYNC = 0x400000 - O_EFSOFF = 0x400000000 - O_EFSON = 0x200000000 - O_EXCL = 0x400 - O_EXEC = 0x20 - O_LARGEFILE = 0x4000000 - O_NDELAY = 0x8000 - O_NOCACHE = 0x100000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x1000000 - O_NONBLOCK = 0x4 - O_NONE = 0x3 - O_NSHARE = 0x10000 - O_RAW = 0x100000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSHARE = 0x1000 - O_RSYNC = 0x200000 - O_SEARCH = 0x20 - O_SNAPSHOT = 0x40 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_TTY_INIT = 0x0 - O_WRONLY = 0x1 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_64BIT = 0x20 - PR_ADDR = 0x2 - PR_ARGEXT = 0x400 - PR_ATOMIC = 0x1 - PR_CONNREQUIRED = 0x4 - PR_FASTHZ = 0x5 - PR_INP = 0x40 - PR_INTRLEVEL = 0x8000 - PR_MLS = 0x100 - PR_MLS_1_LABEL = 0x200 - PR_NOEOR = 0x4000 - PR_RIGHTS = 0x10 - PR_SLOWHZ = 0x2 - PR_WANTRCVD = 0x8 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x9 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DOWNSTREAM = 0x100 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTC_IA64 = 0x3 - RTC_POWER = 0x1 - RTC_POWER_PC = 0x2 - RTF_ACTIVE_DGD = 0x1000000 - RTF_BCE = 0x80000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_BUL = 0x2000 - RTF_CLONE = 0x10000 - RTF_CLONED = 0x20000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FREE_IN_PROG = 0x4000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PERMANENT6 = 0x8000000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_SMALLMTU = 0x40000 - RTF_STATIC = 0x800 - RTF_STOPSRCH = 0x2000000 - RTF_UNREACHABLE = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_EXPIRE = 0xf - RTM_GET = 0x4 - RTM_GETNEXT = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTLOST = 0x10 - RTM_RTTUNIT = 0xf4240 - RTM_SAMEADDR = 0x12 - RTM_SET = 0x13 - RTM_VERSION = 0x2 - RTM_VERSION_GR = 0x4 - RTM_VERSION_GR_COMPAT = 0x3 - RTM_VERSION_POLICY = 0x5 - RTM_VERSION_POLICY_EXT = 0x6 - RTM_VERSION_POLICY_PRFN = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIGMAX64 = 0xff - SIGQUEUE_MAX = 0x20 - SIOCADDIFVIPA = 0x20006942 - SIOCADDMTU = -0x7ffb9690 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDNETID = -0x7fd796a9 - SIOCADDRT = -0x7fc78df6 - SIOCAIFADDR = -0x7fbf96e6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fb396e0 - SIOCDELIFVIPA = 0x20006943 - SIOCDELMTU = -0x7ffb968f - SIOCDELMULTI = -0x7fdf96ce - SIOCDELPMTU = -0x7fd78ff6 - SIOCDELRT = -0x7fc78df5 - SIOCDIFADDR = -0x7fd796e7 - SIOCDNETOPT = -0x3ffe9680 - SIOCDX25XLATE = -0x7fd7969b - SIOCFIFADDR = -0x7fdf966d - SIOCGARP = -0x3fb396da - SIOCGETMTUS = 0x2000696f - SIOCGETSGCNT = -0x3feb8acc - SIOCGETVIFCNT = -0x3feb8acd - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fd796df - SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fdf9669 - SIOCGIFBRDADDR = -0x3fd796dd - SIOCGIFCONF = -0x3fef96bb - SIOCGIFCONFGLOB = -0x3fef9670 - SIOCGIFDSTADDR = -0x3fd796de - SIOCGIFFLAGS = -0x3fd796ef - SIOCGIFGIDLIST = 0x20006968 - SIOCGIFHWADDR = -0x3fab966b - SIOCGIFMETRIC = -0x3fd796e9 - SIOCGIFMTU = -0x3fd796aa - SIOCGIFNETMASK = -0x3fd796db - SIOCGIFOPTIONS = -0x3fd796d6 - SIOCGISNO = -0x3fd79695 - SIOCGLOADF = -0x3ffb967e - SIOCGLOWAT = 0x40047303 - SIOCGNETOPT = -0x3ffe96a5 - SIOCGNETOPT1 = -0x3fdf967f - SIOCGNMTUS = 0x2000696e - SIOCGPGRP = 0x40047309 - SIOCGSIZIFCONF = 0x4004696a - SIOCGSRCFILTER = -0x3fe796cb - SIOCGTUNEPHASE = -0x3ffb9676 - SIOCGX25XLATE = -0x3fd7969c - SIOCIFATTACH = -0x7fdf9699 - SIOCIFDETACH = -0x7fdf969a - SIOCIFGETPKEY = -0x7fdf969b - SIOCIF_ATM_DARP = -0x7fdf9683 - SIOCIF_ATM_DUMPARP = -0x7fdf9685 - SIOCIF_ATM_GARP = -0x7fdf9682 - SIOCIF_ATM_IDLE = -0x7fdf9686 - SIOCIF_ATM_SARP = -0x7fdf9681 - SIOCIF_ATM_SNMPARP = -0x7fdf9687 - SIOCIF_ATM_SVC = -0x7fdf9684 - SIOCIF_ATM_UBR = -0x7fdf9688 - SIOCIF_DEVHEALTH = -0x7ffb966c - SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 - SIOCIF_IB_ARP_TIMER = -0x7fdf9678 - SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f - SIOCIF_IB_DEL_ARP = -0x7fdf967f - SIOCIF_IB_DEL_PINFO = -0x3fdf9670 - SIOCIF_IB_DUMP_ARP = -0x7fdf9680 - SIOCIF_IB_GET_ARP = -0x7fdf967e - SIOCIF_IB_GET_INFO = -0x3f879675 - SIOCIF_IB_GET_STATS = -0x3f879672 - SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a - SIOCIF_IB_RESET_STATS = -0x3f879671 - SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 - SIOCIF_IB_SET_ARP = -0x7fdf967d - SIOCIF_IB_SET_PKEY = -0x7fdf967c - SIOCIF_IB_SET_PORT = -0x7fdf967b - SIOCIF_IB_SET_QKEY = -0x7fdf9676 - SIOCIF_IB_SET_QSIZE = -0x7fdf967a - SIOCLISTIFVIPA = 0x20006944 - SIOCSARP = -0x7fb396e2 - SIOCSHIWAT = 0xffffffff80047300 - SIOCSIFADDR = -0x7fd796f4 - SIOCSIFADDRORI = -0x7fdb9673 - SIOCSIFBRDADDR = -0x7fd796ed - SIOCSIFDSTADDR = -0x7fd796f2 - SIOCSIFFLAGS = -0x7fd796f0 - SIOCSIFGIDLIST = 0x20006969 - SIOCSIFMETRIC = -0x7fd796e8 - SIOCSIFMTU = -0x7fd796a8 - SIOCSIFNETDUMP = -0x7fd796e4 - SIOCSIFNETMASK = -0x7fd796ea - SIOCSIFOPTIONS = -0x7fd796d7 - SIOCSIFSUBCHAN = -0x7fd796e5 - SIOCSISNO = -0x7fd79694 - SIOCSLOADF = -0x3ffb967d - SIOCSLOWAT = 0xffffffff80047302 - SIOCSNETOPT = -0x7ffe96a6 - SIOCSPGRP = 0xffffffff80047308 - SIOCSX25XLATE = -0x7fd7969d - SOCK_CONN_DGRAM = 0x6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x400 - SO_ACCEPTCONN = 0x2 - SO_AUDIT = 0x8000 - SO_BROADCAST = 0x20 - SO_CKSUMRECV = 0x800 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_KERNACCEPT = 0x2000 - SO_LINGER = 0x80 - SO_NOMULTIPATH = 0x4000 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x100 - SO_PEERID = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMPNS = 0x100a - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USE_IFBUFS = 0x400 - S_BANDURG = 0x400 - S_EMODFMT = 0x3c000000 - S_ENFMT = 0x400 - S_ERROR = 0x100 - S_HANGUP = 0x200 - S_HIPRI = 0x2 - S_ICRYPTO = 0x80000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFJOURNAL = 0x10000 - S_IFLNK = 0xa000 - S_IFMPX = 0x2200 - S_IFMT = 0xf000 - S_IFPDIR = 0x4000000 - S_IFPSDIR = 0x8000000 - S_IFPSSDIR = 0xc000000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFSYSEA = 0x30000000 - S_INPUT = 0x1 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_ITCB = 0x1000000 - S_ITP = 0x800000 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXACL = 0x2000000 - S_IXATTR = 0x40000 - S_IXGRP = 0x8 - S_IXINTERFACE = 0x100000 - S_IXMOD = 0x40000000 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_MSG = 0x8 - S_OUTPUT = 0x4 - S_RDBAND = 0x20 - S_RDNORM = 0x10 - S_RESERVED1 = 0x20000 - S_RESERVED2 = 0x200000 - S_RESERVED3 = 0x400000 - S_RESERVED4 = 0x80000000 - S_RESFMT1 = 0x10000000 - S_RESFMT10 = 0x34000000 - S_RESFMT11 = 0x38000000 - S_RESFMT12 = 0x3c000000 - S_RESFMT2 = 0x14000000 - S_RESFMT3 = 0x18000000 - S_RESFMT4 = 0x1c000000 - S_RESFMT5 = 0x20000000 - S_RESFMT6 = 0x24000000 - S_RESFMT7 = 0x28000000 - S_RESFMT8 = 0x2c000000 - S_WRBAND = 0x80 - S_WRNORM = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x540c - TCGETA = 0x5405 - TCGETS = 0x5401 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 - TCP_ACLADD = 0x23 - TCP_ACLBIND = 0x26 - TCP_ACLCLEAR = 0x22 - TCP_ACLDEL = 0x24 - TCP_ACLDENY = 0x8 - TCP_ACLFLUSH = 0x21 - TCP_ACLGID = 0x1 - TCP_ACLLS = 0x25 - TCP_ACLSUBNET = 0x4 - TCP_ACLUID = 0x2 - TCP_CWND_DF = 0x16 - TCP_CWND_IF = 0x15 - TCP_DELAY_ACK_FIN = 0x2 - TCP_DELAY_ACK_SYN = 0x1 - TCP_FASTNAME = 0x101080a - TCP_KEEPCNT = 0x13 - TCP_KEEPIDLE = 0x11 - TCP_KEEPINTVL = 0x12 - TCP_LSPRIV = 0x29 - TCP_LUID = 0x20 - TCP_MAXBURST = 0x8 - TCP_MAXDF = 0x64 - TCP_MAXIF = 0x64 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAXWINDOWSCALE = 0xe - TCP_MAX_SACK = 0x4 - TCP_MSS = 0x5b4 - TCP_NODELAY = 0x1 - TCP_NODELAYACK = 0x14 - TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 - TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 - TCP_NOTENTER_SSTART = 0x17 - TCP_OPT = 0x19 - TCP_RFC1323 = 0x4 - TCP_SETPRIV = 0x27 - TCP_STDURG = 0x10 - TCP_TIMESTAMP_OPTLEN = 0xc - TCP_UNSETPRIV = 0x28 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETSF = 0x5404 - TCSETSW = 0x5403 - TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 - TIOC = 0x5400 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0xffffffff80047462 - TIOCEXCL = 0x2000740d - TIOCFLUSH = 0xffffffff80047410 - TIOCGETC = 0x40067412 - TIOCGETD = 0x40047400 - TIOCGETP = 0x40067408 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047448 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCHPCL = 0x20007402 - TIOCLBIC = 0xffffffff8004747e - TIOCLBIS = 0xffffffff8004747f - TIOCLGET = 0x4004747c - TIOCLSET = 0xffffffff8004747d - TIOCMBIC = 0xffffffff8004746b - TIOCMBIS = 0xffffffff8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0xffffffff80047464 - TIOCMODG = 0x40047403 - TIOCMODS = 0xffffffff80047404 - TIOCMSET = 0xffffffff8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0xffffffff80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0xffffffff80047469 - TIOCSBRK = 0x2000747b - TIOCSDTR = 0x20007479 - TIOCSETC = 0xffffffff80067411 - TIOCSETD = 0xffffffff80047401 - TIOCSETN = 0xffffffff8006740a - TIOCSETP = 0xffffffff80067409 - TIOCSLTC = 0xffffffff80067475 - TIOCSPGRP = 0xffffffff80047476 - TIOCSSIZE = 0xffffffff80087467 - TIOCSTART = 0x2000746e - TIOCSTI = 0xffffffff80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0xffffffff80087467 - TIOCUCNTL = 0xffffffff80047466 - TOSTOP = 0x10000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x3 - VDISCRD = 0xc - VDSUSP = 0xa - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xe - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0x7 - VSTOP = 0x8 - VSTRT = 0x7 - VSUSP = 0x9 - VT0 = 0x0 - VT1 = 0x8000 - VTDELAY = 0x2000 - VTDLY = 0x8000 - VTIME = 0x5 - VWERSE = 0xd - WPARSTART = 0x1 - WPARSTOP = 0x2 - WPARTTYNAME = "Global" - XCASE = 0x4 - XTABS = 0xc00 - _FDATAFLUSH = 0x2000000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x43) - EADDRNOTAVAIL = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x42) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x38) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x78) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x75) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECLONEME = syscall.Errno(0x52) - ECONNABORTED = syscall.Errno(0x48) - ECONNREFUSED = syscall.Errno(0x4f) - ECONNRESET = syscall.Errno(0x49) - ECORRUPT = syscall.Errno(0x59) - EDEADLK = syscall.Errno(0x2d) - EDESTADDREQ = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x3a) - EDIST = syscall.Errno(0x35) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x58) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFORMAT = syscall.Errno(0x30) - EHOSTDOWN = syscall.Errno(0x50) - EHOSTUNREACH = syscall.Errno(0x51) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x74) - EINPROGRESS = syscall.Errno(0x37) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x4b) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x55) - EMEDIA = syscall.Errno(0x6e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x3b) - EMULTIHOP = syscall.Errno(0x7d) - ENAMETOOLONG = syscall.Errno(0x56) - ENETDOWN = syscall.Errno(0x45) - ENETRESET = syscall.Errno(0x47) - ENETUNREACH = syscall.Errno(0x46) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x70) - ENOBUFS = syscall.Errno(0x4a) - ENOCONNECT = syscall.Errno(0x32) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x7a) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x31) - ENOLINK = syscall.Errno(0x7e) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENOPROTOOPT = syscall.Errno(0x3d) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x76) - ENOSTR = syscall.Errno(0x7b) - ENOSYS = syscall.Errno(0x6d) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x4c) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x11) - ENOTREADY = syscall.Errno(0x2e) - ENOTRECOVERABLE = syscall.Errno(0x5e) - ENOTRUST = syscall.Errno(0x72) - ENOTSOCK = syscall.Errno(0x39) - ENOTSUP = syscall.Errno(0x7c) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x40) - EOVERFLOW = syscall.Errno(0x7f) - EOWNERDEAD = syscall.Errno(0x5f) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x41) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x53) - EPROTO = syscall.Errno(0x79) - EPROTONOSUPPORT = syscall.Errno(0x3e) - EPROTOTYPE = syscall.Errno(0x3c) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x5d) - ERESTART = syscall.Errno(0x52) - EROFS = syscall.Errno(0x1e) - ESAD = syscall.Errno(0x71) - ESHUTDOWN = syscall.Errno(0x4d) - ESOCKTNOSUPPORT = syscall.Errno(0x3f) - ESOFT = syscall.Errno(0x6f) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x34) - ESYSERROR = syscall.Errno(0x5a) - ETIME = syscall.Errno(0x77) - ETIMEDOUT = syscall.Errno(0x4e) - ETOOMANYREFS = syscall.Errno(0x73) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x54) - EWOULDBLOCK = syscall.Errno(0xb) - EWRPROTECT = syscall.Errno(0x2f) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGAIO = syscall.Signal(0x17) - SIGALRM = syscall.Signal(0xe) - SIGALRM1 = syscall.Signal(0x26) - SIGBUS = syscall.Signal(0xa) - SIGCAPI = syscall.Signal(0x31) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGCPUFAIL = syscall.Signal(0x3b) - SIGDANGER = syscall.Signal(0x21) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGGRANT = syscall.Signal(0x3c) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOINT = syscall.Signal(0x10) - SIGIOT = syscall.Signal(0x6) - SIGKAP = syscall.Signal(0x3c) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x6) - SIGMAX = syscall.Signal(0xff) - SIGMAX32 = syscall.Signal(0x3f) - SIGMIGRATE = syscall.Signal(0x23) - SIGMSG = syscall.Signal(0x1b) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPRE = syscall.Signal(0x24) - SIGPROF = syscall.Signal(0x20) - SIGPTY = syscall.Signal(0x17) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGRECONFIG = syscall.Signal(0x3a) - SIGRETRACT = syscall.Signal(0x3d) - SIGSAK = syscall.Signal(0x3f) - SIGSEGV = syscall.Signal(0xb) - SIGSOUND = syscall.Signal(0x3e) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGSYSERROR = syscall.Signal(0x30) - SIGTALRM = syscall.Signal(0x26) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVIRT = syscall.Signal(0x25) - SIGVTALRM = syscall.Signal(0x22) - SIGWAITING = syscall.Signal(0x27) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EWOULDBLOCK", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "ENOTEMPTY", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "not a typewriter"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock condition if locked"}, - {46, "ENOTREADY", "device not ready"}, - {47, "EWRPROTECT", "write-protected media"}, - {48, "EFORMAT", "unformatted or incompatible media"}, - {49, "ENOLCK", "no locks available"}, - {50, "ENOCONNECT", "cannot Establish Connection"}, - {52, "ESTALE", "missing file or filesystem"}, - {53, "EDIST", "requests blocked by Administrator"}, - {55, "EINPROGRESS", "operation now in progress"}, - {56, "EALREADY", "operation already in progress"}, - {57, "ENOTSOCK", "socket operation on non-socket"}, - {58, "EDESTADDREQ", "destination address required"}, - {59, "EMSGSIZE", "message too long"}, - {60, "EPROTOTYPE", "protocol wrong type for socket"}, - {61, "ENOPROTOOPT", "protocol not available"}, - {62, "EPROTONOSUPPORT", "protocol not supported"}, - {63, "ESOCKTNOSUPPORT", "socket type not supported"}, - {64, "EOPNOTSUPP", "operation not supported on socket"}, - {65, "EPFNOSUPPORT", "protocol family not supported"}, - {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, - {67, "EADDRINUSE", "address already in use"}, - {68, "EADDRNOTAVAIL", "can't assign requested address"}, - {69, "ENETDOWN", "network is down"}, - {70, "ENETUNREACH", "network is unreachable"}, - {71, "ENETRESET", "network dropped connection on reset"}, - {72, "ECONNABORTED", "software caused connection abort"}, - {73, "ECONNRESET", "connection reset by peer"}, - {74, "ENOBUFS", "no buffer space available"}, - {75, "EISCONN", "socket is already connected"}, - {76, "ENOTCONN", "socket is not connected"}, - {77, "ESHUTDOWN", "can't send after socket shutdown"}, - {78, "ETIMEDOUT", "connection timed out"}, - {79, "ECONNREFUSED", "connection refused"}, - {80, "EHOSTDOWN", "host is down"}, - {81, "EHOSTUNREACH", "no route to host"}, - {82, "ERESTART", "restart the system call"}, - {83, "EPROCLIM", "too many processes"}, - {84, "EUSERS", "too many users"}, - {85, "ELOOP", "too many levels of symbolic links"}, - {86, "ENAMETOOLONG", "file name too long"}, - {88, "EDQUOT", "disk quota exceeded"}, - {89, "ECORRUPT", "invalid file system control data detected"}, - {90, "ESYSERROR", "for future use "}, - {93, "EREMOTE", "item is not local to host"}, - {94, "ENOTRECOVERABLE", "state not recoverable "}, - {95, "EOWNERDEAD", "previous owner died "}, - {109, "ENOSYS", "function not implemented"}, - {110, "EMEDIA", "media surface error"}, - {111, "ESOFT", "I/O completed, but needs relocation"}, - {112, "ENOATTR", "no attribute found"}, - {113, "ESAD", "security Authentication Denied"}, - {114, "ENOTRUST", "not a Trusted Program"}, - {115, "ETOOMANYREFS", "too many references: can't splice"}, - {116, "EILSEQ", "invalid wide character"}, - {117, "ECANCELED", "asynchronous I/O cancelled"}, - {118, "ENOSR", "out of STREAMS resources"}, - {119, "ETIME", "system call timed out"}, - {120, "EBADMSG", "next message has wrong type"}, - {121, "EPROTO", "error in protocol"}, - {122, "ENODATA", "no message on stream head read q"}, - {123, "ENOSTR", "fd not associated with a stream"}, - {124, "ENOTSUP", "unsupported attribute value"}, - {125, "EMULTIHOP", "multihop is not allowed"}, - {126, "ENOLINK", "the server link has been severed"}, - {127, "EOVERFLOW", "value too large to be stored in data type"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "IOT/Abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible/complete"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {27, "SIGMSG", "input device data"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGPWR", "power-failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "paging space low"}, - {34, "SIGVTALRM", "virtual timer expired"}, - {35, "SIGMIGRATE", "signal 35"}, - {36, "SIGPRE", "signal 36"}, - {37, "SIGVIRT", "signal 37"}, - {38, "SIGTALRM", "signal 38"}, - {39, "SIGWAITING", "signal 39"}, - {48, "SIGSYSERROR", "signal 48"}, - {49, "SIGCAPI", "signal 49"}, - {58, "SIGRECONFIG", "signal 58"}, - {59, "SIGCPUFAIL", "CPU Failure Predicted"}, - {60, "SIGGRANT", "monitor mode granted"}, - {61, "SIGRETRACT", "monitor mode retracted"}, - {62, "SIGSOUND", "sound completed"}, - {63, "SIGMAX32", "secure attention"}, - {255, "SIGMAX", "signal 255"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go deleted file mode 100644 index 14300762..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ /dev/null @@ -1,1911 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin -// +build amd64,darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x29 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_SYS_CONTROL = 0x2 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - AF_VSOCK = 0x28 - ALTWERASE = 0x200 - ATTR_BIT_MAP_COUNT = 0x5 - ATTR_CMN_ACCESSMASK = 0x20000 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x51c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_SPACEUSED = 0x800000 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf087ffff - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CLONE_NOFOLLOW = 0x1 - CLONE_NOOWNERCOPY = 0x2 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTLIOCGINFO = 0xc0644e03 - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x10a - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_DARWIN = 0x10a - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x11 - EVFILT_THREADMARKER = 0x11 - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - FSOPT_NOINMEMUPDATE = 0x2 - FSOPT_PACK_INVAL_ATTRS = 0x8 - FSOPT_REPORT_FULLSIZE = 0x4 - FSOPT_RETURN_REALDEV = 0x200 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_INFO = 0x67 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDFILESUPPL = 0x68 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPATH_NOFIRMLINK = 0x66 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GETSIGSINFO = 0x69 - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_SPECULATIVE_READ = 0x65 - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_TRIM_ACTIVE_FILE = 0x64 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6LOWPAN = 0x40 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_3542DSTOPTS = 0x32 - IPV6_3542HOPLIMIT = 0x2f - IPV6_3542HOPOPTS = 0x31 - IPV6_3542NEXTHOP = 0x30 - IPV6_3542PKTINFO = 0x2e - IPV6_3542RTHDR = 0x33 - IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 - IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 - IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x3000 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x3d - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x39 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x1c - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_PEERCRED = 0x1 - LOCAL_PEEREPID = 0x3 - LOCAL_PEEREUUID = 0x5 - LOCAL_PEERPID = 0x2 - LOCAL_PEERTOKEN = 0x6 - LOCAL_PEERUUID = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_32BIT = 0x8000 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 - MAP_UNIX03 = 0x40000 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_EXT_ROOT_DATA_VOL = 0x1 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_REMOVABLE = 0x200 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x40000000 - MNT_STRICTATIME = 0x80000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xd7f0f7ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_NOSIGNAL = 0x80000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_FLAGS_PRIV = 0xa - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xb - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACHTIME = 0x100 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NOFOLLOW_ANY = 0x20000000 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DEAD = 0x20000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_GLOBAL = 0x40000000 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SEEK_CUR = 0x1 - SEEK_DATA = 0x4 - SEEK_END = 0x2 - SEEK_HOLE = 0x3 - SEEK_SET = 0x0 - SF_APPEND = 0x40000 - SF_ARCHIVED = 0x10000 - SF_DATALESS = 0x40000000 - SF_FIRMLINK = 0x800000 - SF_IMMUTABLE = 0x20000 - SF_NOUNLINK = 0x100000 - SF_RESTRICTED = 0x80000 - SF_SETTABLE = 0x3fff0000 - SF_SUPPORTED = 0x9f0000 - SF_SYNTHETIC = 0xc0000000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIF6LOWPAN = 0xc02069c5 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFFUNCTIONALTYPE = 0xc02069ad - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGIFXMEDIA = 0xc02c6948 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIF6LOWPAN = 0x802069c4 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 - SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 - SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 - SO_TRACKER_TRANSPARENCY_VERSION = 0x3 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_CC = 0xb - TCPOPT_CCECHO = 0xd - TCPOPT_CCNEW = 0xc - TCPOPT_EOL = 0x0 - TCPOPT_FASTOPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UF_APPEND = 0x4 - UF_COMPRESSED = 0x20 - UF_DATAVAULT = 0x80 - UF_HIDDEN = 0x8000 - UF_IMMUTABLE = 0x2 - UF_NODUMP = 0x1 - UF_OPAQUE = 0x8 - UF_SETTABLE = 0xffff - UF_TRACKED = 0x40 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go deleted file mode 100644 index ab044a74..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ /dev/null @@ -1,1911 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin -// +build arm64,darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x29 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_SYS_CONTROL = 0x2 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - AF_VSOCK = 0x28 - ALTWERASE = 0x200 - ATTR_BIT_MAP_COUNT = 0x5 - ATTR_CMN_ACCESSMASK = 0x20000 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x51c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_SPACEUSED = 0x800000 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf087ffff - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CLONE_NOFOLLOW = 0x1 - CLONE_NOOWNERCOPY = 0x2 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTLIOCGINFO = 0xc0644e03 - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x10a - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_DARWIN = 0x10a - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x11 - EVFILT_THREADMARKER = 0x11 - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - FSOPT_NOINMEMUPDATE = 0x2 - FSOPT_PACK_INVAL_ATTRS = 0x8 - FSOPT_REPORT_FULLSIZE = 0x4 - FSOPT_RETURN_REALDEV = 0x200 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_INFO = 0x67 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDFILESUPPL = 0x68 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPATH_NOFIRMLINK = 0x66 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GETSIGSINFO = 0x69 - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_SPECULATIVE_READ = 0x65 - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_TRIM_ACTIVE_FILE = 0x64 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6LOWPAN = 0x40 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_3542DSTOPTS = 0x32 - IPV6_3542HOPLIMIT = 0x2f - IPV6_3542HOPOPTS = 0x31 - IPV6_3542NEXTHOP = 0x30 - IPV6_3542PKTINFO = 0x2e - IPV6_3542RTHDR = 0x33 - IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 - IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 - IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x3000 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x3d - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x39 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x1c - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_PEERCRED = 0x1 - LOCAL_PEEREPID = 0x3 - LOCAL_PEEREUUID = 0x5 - LOCAL_PEERPID = 0x2 - LOCAL_PEERTOKEN = 0x6 - LOCAL_PEERUUID = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_32BIT = 0x8000 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 - MAP_UNIX03 = 0x40000 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_EXT_ROOT_DATA_VOL = 0x1 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_REMOVABLE = 0x200 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x40000000 - MNT_STRICTATIME = 0x80000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xd7f0f7ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_NOSIGNAL = 0x80000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_FLAGS_PRIV = 0xa - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xb - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACHTIME = 0x100 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NOFOLLOW_ANY = 0x20000000 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DEAD = 0x20000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_GLOBAL = 0x40000000 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SEEK_CUR = 0x1 - SEEK_DATA = 0x4 - SEEK_END = 0x2 - SEEK_HOLE = 0x3 - SEEK_SET = 0x0 - SF_APPEND = 0x40000 - SF_ARCHIVED = 0x10000 - SF_DATALESS = 0x40000000 - SF_FIRMLINK = 0x800000 - SF_IMMUTABLE = 0x20000 - SF_NOUNLINK = 0x100000 - SF_RESTRICTED = 0x80000 - SF_SETTABLE = 0x3fff0000 - SF_SUPPORTED = 0x9f0000 - SF_SYNTHETIC = 0xc0000000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIF6LOWPAN = 0xc02069c5 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFFUNCTIONALTYPE = 0xc02069ad - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGIFXMEDIA = 0xc02c6948 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIF6LOWPAN = 0x802069c4 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 - SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 - SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 - SO_TRACKER_TRANSPARENCY_VERSION = 0x3 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_CC = 0xb - TCPOPT_CCECHO = 0xd - TCPOPT_CCNEW = 0xc - TCPOPT_EOL = 0x0 - TCPOPT_FASTOPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UF_APPEND = 0x4 - UF_COMPRESSED = 0x20 - UF_DATAVAULT = 0x80 - UF_HIDDEN = 0x8000 - UF_IMMUTABLE = 0x2 - UF_NODUMP = 0x1 - UF_OPAQUE = 0x8 - UF_SETTABLE = 0xffff - UF_TRACKED = 0x40 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go deleted file mode 100644 index 17bba0e4..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +++ /dev/null @@ -1,1738 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly -// +build amd64,dragonfly - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x21 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x23 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x22 - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETIF = 0x4020426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8010427b - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DEFAULTBUFSIZE = 0x1000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MAX_CLONES = 0x80 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x109 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DBF = 0xf - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0x8 - EVFILT_FS = -0xa - EVFILT_MARKER = 0xf - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xa - EVFILT_TIMER = -0x7 - EVFILT_USER = -0x9 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_HUP = 0x800 - EV_NODATA = 0x1000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTEXIT_LWP = 0x10000 - EXTEXIT_PROC = 0x0 - EXTEXIT_SETINT = 0x1 - EXTEXIT_SIMPLE = 0x0 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x318e72 - IFF_DEBUG = 0x4 - IFF_IDIRECT = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NPOLLING = 0x100000 - IFF_OACTIVE = 0x400 - IFF_OACTIVE_COMPAT = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_POLLING = 0x10000 - IFF_POLLING_COMPAT = 0x10000 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SMART = 0x20 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xf3 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SKIP = 0x39 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UNKNOWN = 0x102 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHLIM = 0x28 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PKTOPTIONS = 0x34 - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_RESETLOG = 0x37 - IP_FW_TBL_ADD = 0x2a - IP_FW_TBL_CREATE = 0x28 - IP_FW_TBL_DEL = 0x2b - IP_FW_TBL_DESTROY = 0x29 - IP_FW_TBL_EXPIRE = 0x2f - IP_FW_TBL_FLUSH = 0x2c - IP_FW_TBL_GET = 0x2d - IP_FW_TBL_ZERO = 0x2e - IP_FW_X = 0x31 - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CONTROL_END = 0xb - MADV_CONTROL_START = 0xa - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_INVAL = 0xa - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SETMAP = 0xb - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_NOCORE = 0x20000 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_SIZEALIGN = 0x40000 - MAP_STACK = 0x400 - MAP_TRYFIXED = 0x10000 - MAP_VPAGETABLE = 0x2000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x20 - MNT_CMDFLAGS = 0xf0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x4 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SYNCHRONOUS = 0x2 - MNT_TRIM = 0x1000000 - MNT_UPDATE = 0x10000 - MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0xf1f0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x1000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FBLOCKING = 0x10000 - MSG_FMASK = 0xffff0000 - MSG_FNONBLOCKING = 0x20000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_SYNC = 0x800 - MSG_TRUNC = 0x10 - MSG_UNUSED09 = 0x200 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x20000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x8000000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FAPPEND = 0x100000 - O_FASYNCWRITE = 0x800000 - O_FBLOCKING = 0x40000 - O_FMASK = 0xfc0000 - O_FNONBLOCKING = 0x80000 - O_FOFFSET = 0x200000 - O_FSYNC = 0x80 - O_FSYNCWRITE = 0x400000 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0xb - RTAX_MPLS1 = 0x8 - RTAX_MPLS2 = 0x9 - RTAX_MPLS3 = 0xa - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_MPLS1 = 0x100 - RTA_MPLS2 = 0x200 - RTA_MPLS3 = 0x400 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPLSOPS = 0x1000000 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_IWCAPSEGS = 0x400 - RTV_IWMAXSEGS = 0x200 - RTV_MSL = 0x100 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc0406929 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc0206926 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPOLLCPU = 0xc020697e - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFTSOLEN = 0xc0206980 - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFPOLLCPU = 0x8020697d - SIOCSIFTSOLEN = 0x8020697f - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_CPUHINT = 0x1030 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDSPACE = 0x100a - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDB = 0x9000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_FASTKEEP = 0x80 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x20 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0x100 - TCP_MIN_WINSHIFT = 0x5 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_SIGNATURE_ENABLE = 0x10 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCISPTMASTER = 0x20007455 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VCHECKPT = 0x13 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x0 - VM_SWZONE_SIZE_MAX = 0x4000000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EASYNC = syscall.Errno(0x63) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x63) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEDIUM = syscall.Errno(0x5d) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCKPT = syscall.Signal(0x21) - SIGCKPTEXIT = syscall.Signal(0x22) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOMEDIUM", "no medium found"}, - {99, "EASYNC", "unknown error: 99"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread Scheduler"}, - {33, "SIGCKPT", "checkPoint"}, - {34, "SIGCKPTEXIT", "checkPointExit"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go deleted file mode 100644 index f8c2c513..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ /dev/null @@ -1,2043 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd -// +build 386,freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8008426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc144648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x804c6490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc06c648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETFSBASE = 0x47 - PT_GETGSBASE = 0x49 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETXMMREGS = 0x40 - PT_GETXSTATE = 0x45 - PT_GETXSTATE_INFO = 0x44 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETFSBASE = 0x48 - PT_SETGSBASE = 0x4a - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETXMMREGS = 0x41 - PT_SETXSTATE = 0x46 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40087459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x70e0000 - VM_SWZONE_SIZE_MAX = 0x2280000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go deleted file mode 100644 index 96310c3b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ /dev/null @@ -1,2040 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd -// +build amd64,freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80506490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc080648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETFSBASE = 0x47 - PT_GETGSBASE = 0x49 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETXSTATE = 0x45 - PT_GETXSTATE_INFO = 0x44 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETFSBASE = 0x48 - PT_SETGSBASE = 0x4a - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETXSTATE = 0x46 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go deleted file mode 100644 index 777b69de..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ /dev/null @@ -1,2034 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd -// +build arm,freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x804c6490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc078648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETVFPREGS = 0x40 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETVFPREGS = 0x41 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go deleted file mode 100644 index c557ac2d..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +++ /dev/null @@ -1,2034 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd -// +build arm64,freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80506490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc080648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x19000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go deleted file mode 100644 index 341b4d96..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +++ /dev/null @@ -1,2148 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd -// +build riscv64,freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_HYPERV = 0x2b - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B1000000 = 0xf4240 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1500000 = 0x16e360 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B2000000 = 0x1e8480 - B230400 = 0x38400 - B2400 = 0x960 - B2500000 = 0x2625a0 - B28800 = 0x7080 - B300 = 0x12c - B3000000 = 0x2dc6c0 - B3500000 = 0x3567e0 - B38400 = 0x9600 - B4000000 = 0x3d0900 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B500000 = 0x7a120 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x5 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_COARSE = 0xc - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_COARSE = 0xa - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGKERNELDUMP = 0xc0986492 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80986491 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCSKERNELDUMP_FREEBSD12 = 0x80506490 - DIOCZONECMD = 0xc080648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EHE_DEAD_PRIORITY = -0x1 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_NONE = -0xc8 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADD_SEALS = 0x13 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_GET_SEALS = 0x14 - F_ISUNIONSTACK = 0x15 - F_KINFO = 0x16 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f72 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_KNOWSEPOCH = 0x20 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_NETMASK_DEFAULT = 0xffffff00 - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_CREDS_PERSISTENT = 0x3 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0xfc000000 - MFD_HUGE_SHIFT = 0x1a - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0x300d0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EMPTYDIR = 0x2000000000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_EXTLS = 0x4000000000 - MNT_EXTLSCERT = 0x8000000000 - MNT_EXTLSCERTUSER = 0x10000000000 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOCOVER = 0x1000000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NET_RT_NHGRP = 0x7 - NET_RT_NHOP = 0x6 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x1000000 - O_EMPTY_PATH = 0x2000000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_PATH = 0x400000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_COREDUMP = 0x1d - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_DEFAULT_WEIGHT = 0x1 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAX_WEIGHT = 0xffffff - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_CREDS2 = 0x8 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0x8020692c - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_INIT_RATE = 0x458 - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_USE_RACK_RR = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DEFER_OPTIONS = 0x470 - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FAST_RSM_HACK = 0x471 - TCP_FIN_IS_RST = 0x49 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_HDWR_RATE_CAP = 0x46a - TCP_HDWR_UP_ONLY = 0x46c - TCP_IDLE_REDUCE = 0x46 - TCP_INFO = 0x20 - TCP_IWND_NB = 0x2b - TCP_IWND_NSEG = 0x2c - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOGID_CNT = 0x2e - TCP_LOG_ID_LEN = 0x40 - TCP_LOG_LIMIT = 0x4a - TCP_LOG_TAG = 0x2f - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXPEAKRATE = 0x45 - TCP_MAXSEG = 0x2 - TCP_MAXUNACKTIME = 0x44 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NO_PRR = 0x462 - TCP_PACING_RATE_CAP = 0x46b - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_PERF_INFO = 0x4e - TCP_PROC_ACCOUNTING = 0x4c - TCP_RACK_ABC_VAL = 0x46d - TCP_RACK_CHEAT_NOT_CONF_RATE = 0x459 - TCP_RACK_DO_DETECTION = 0x449 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_FORCE_MSEG = 0x45d - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_GP_INCREASE_CA = 0x45a - TCP_RACK_GP_INCREASE_REC = 0x45c - TCP_RACK_GP_INCREASE_SS = 0x45b - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MBUF_QUEUE = 0x41a - TCP_RACK_MEASURE_CNT = 0x46f - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_NONRXT_CFG_RATE = 0x463 - TCP_RACK_NO_PUSH_AT_MAX = 0x466 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_RATE_CA = 0x45e - TCP_RACK_PACE_RATE_REC = 0x460 - TCP_RACK_PACE_RATE_SS = 0x45f - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PACE_TO_FILL = 0x467 - TCP_RACK_PACING_BETA = 0x472 - TCP_RACK_PACING_BETA_ECN = 0x473 - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROFILE = 0x469 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_RR_CONF = 0x459 - TCP_RACK_TIMER_SLOP = 0x474 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_REC_ABC_VAL = 0x46e - TCP_REMOTE_UDP_ENCAPS_PORT = 0x47 - TCP_REUSPORT_LB_NUMA = 0x402 - TCP_REUSPORT_LB_NUMA_CURDOM = -0x1 - TCP_REUSPORT_LB_NUMA_NODOM = -0x2 - TCP_RXTLS_ENABLE = 0x29 - TCP_RXTLS_MODE = 0x2a - TCP_SHARED_CWND_ALLOWED = 0x4b - TCP_SHARED_CWND_ENABLE = 0x464 - TCP_SHARED_CWND_TIME_LIMIT = 0x468 - TCP_STATS = 0x21 - TCP_TIMELY_DYN_ADJ = 0x465 - TCP_TLS_MODE_IFNET = 0x2 - TCP_TLS_MODE_NONE = 0x0 - TCP_TLS_MODE_SW = 0x1 - TCP_TLS_MODE_TOE = 0x3 - TCP_TXTLS_ENABLE = 0x27 - TCP_TXTLS_MODE = 0x28 - TCP_USER_LOG = 0x30 - TCP_USE_CMP_ACKS = 0x4d - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux.go deleted file mode 100644 index de936b67..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ /dev/null @@ -1,3493 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux -// +build linux - -package unix - -import "syscall" - -const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2e - AF_MCTP = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_DRBG_ENTROPY = 0x6 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_KEY_BY_KEY_SERIAL = 0x7 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_MCTP = 0x122 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUDIT_ADD = 0x3eb - AUDIT_ADD_RULE = 0x3f3 - AUDIT_ALWAYS = 0x2 - AUDIT_ANOM_ABEND = 0x6a5 - AUDIT_ANOM_CREAT = 0x6a7 - AUDIT_ANOM_LINK = 0x6a6 - AUDIT_ANOM_PROMISCUOUS = 0x6a4 - AUDIT_ARCH = 0xb - AUDIT_ARCH_AARCH64 = 0xc00000b7 - AUDIT_ARCH_ALPHA = 0xc0009026 - AUDIT_ARCH_ARCOMPACT = 0x4000005d - AUDIT_ARCH_ARCOMPACTBE = 0x5d - AUDIT_ARCH_ARCV2 = 0x400000c3 - AUDIT_ARCH_ARCV2BE = 0xc3 - AUDIT_ARCH_ARM = 0x40000028 - AUDIT_ARCH_ARMEB = 0x28 - AUDIT_ARCH_C6X = 0x4000008c - AUDIT_ARCH_C6XBE = 0x8c - AUDIT_ARCH_CRIS = 0x4000004c - AUDIT_ARCH_CSKY = 0x400000fc - AUDIT_ARCH_FRV = 0x5441 - AUDIT_ARCH_H8300 = 0x2e - AUDIT_ARCH_HEXAGON = 0xa4 - AUDIT_ARCH_I386 = 0x40000003 - AUDIT_ARCH_IA64 = 0xc0000032 - AUDIT_ARCH_LOONGARCH32 = 0x40000102 - AUDIT_ARCH_LOONGARCH64 = 0xc0000102 - AUDIT_ARCH_M32R = 0x58 - AUDIT_ARCH_M68K = 0x4 - AUDIT_ARCH_MICROBLAZE = 0xbd - AUDIT_ARCH_MIPS = 0x8 - AUDIT_ARCH_MIPS64 = 0x80000008 - AUDIT_ARCH_MIPS64N32 = 0xa0000008 - AUDIT_ARCH_MIPSEL = 0x40000008 - AUDIT_ARCH_MIPSEL64 = 0xc0000008 - AUDIT_ARCH_MIPSEL64N32 = 0xe0000008 - AUDIT_ARCH_NDS32 = 0x400000a7 - AUDIT_ARCH_NDS32BE = 0xa7 - AUDIT_ARCH_NIOS2 = 0x40000071 - AUDIT_ARCH_OPENRISC = 0x5c - AUDIT_ARCH_PARISC = 0xf - AUDIT_ARCH_PARISC64 = 0x8000000f - AUDIT_ARCH_PPC = 0x14 - AUDIT_ARCH_PPC64 = 0x80000015 - AUDIT_ARCH_PPC64LE = 0xc0000015 - AUDIT_ARCH_RISCV32 = 0x400000f3 - AUDIT_ARCH_RISCV64 = 0xc00000f3 - AUDIT_ARCH_S390 = 0x16 - AUDIT_ARCH_S390X = 0x80000016 - AUDIT_ARCH_SH = 0x2a - AUDIT_ARCH_SH64 = 0x8000002a - AUDIT_ARCH_SHEL = 0x4000002a - AUDIT_ARCH_SHEL64 = 0xc000002a - AUDIT_ARCH_SPARC = 0x2 - AUDIT_ARCH_SPARC64 = 0x8000002b - AUDIT_ARCH_TILEGX = 0xc00000bf - AUDIT_ARCH_TILEGX32 = 0x400000bf - AUDIT_ARCH_TILEPRO = 0x400000bc - AUDIT_ARCH_UNICORE = 0x4000006e - AUDIT_ARCH_X86_64 = 0xc000003e - AUDIT_ARCH_XTENSA = 0x5e - AUDIT_ARG0 = 0xc8 - AUDIT_ARG1 = 0xc9 - AUDIT_ARG2 = 0xca - AUDIT_ARG3 = 0xcb - AUDIT_AVC = 0x578 - AUDIT_AVC_PATH = 0x57a - AUDIT_BITMASK_SIZE = 0x40 - AUDIT_BIT_MASK = 0x8000000 - AUDIT_BIT_TEST = 0x48000000 - AUDIT_BPF = 0x536 - AUDIT_BPRM_FCAPS = 0x529 - AUDIT_CAPSET = 0x52a - AUDIT_CLASS_CHATTR = 0x2 - AUDIT_CLASS_CHATTR_32 = 0x3 - AUDIT_CLASS_DIR_WRITE = 0x0 - AUDIT_CLASS_DIR_WRITE_32 = 0x1 - AUDIT_CLASS_READ = 0x4 - AUDIT_CLASS_READ_32 = 0x5 - AUDIT_CLASS_SIGNAL = 0x8 - AUDIT_CLASS_SIGNAL_32 = 0x9 - AUDIT_CLASS_WRITE = 0x6 - AUDIT_CLASS_WRITE_32 = 0x7 - AUDIT_COMPARE_AUID_TO_EUID = 0x10 - AUDIT_COMPARE_AUID_TO_FSUID = 0xe - AUDIT_COMPARE_AUID_TO_OBJ_UID = 0x5 - AUDIT_COMPARE_AUID_TO_SUID = 0xf - AUDIT_COMPARE_EGID_TO_FSGID = 0x17 - AUDIT_COMPARE_EGID_TO_OBJ_GID = 0x4 - AUDIT_COMPARE_EGID_TO_SGID = 0x18 - AUDIT_COMPARE_EUID_TO_FSUID = 0x12 - AUDIT_COMPARE_EUID_TO_OBJ_UID = 0x3 - AUDIT_COMPARE_EUID_TO_SUID = 0x11 - AUDIT_COMPARE_FSGID_TO_OBJ_GID = 0x9 - AUDIT_COMPARE_FSUID_TO_OBJ_UID = 0x8 - AUDIT_COMPARE_GID_TO_EGID = 0x14 - AUDIT_COMPARE_GID_TO_FSGID = 0x15 - AUDIT_COMPARE_GID_TO_OBJ_GID = 0x2 - AUDIT_COMPARE_GID_TO_SGID = 0x16 - AUDIT_COMPARE_SGID_TO_FSGID = 0x19 - AUDIT_COMPARE_SGID_TO_OBJ_GID = 0x7 - AUDIT_COMPARE_SUID_TO_FSUID = 0x13 - AUDIT_COMPARE_SUID_TO_OBJ_UID = 0x6 - AUDIT_COMPARE_UID_TO_AUID = 0xa - AUDIT_COMPARE_UID_TO_EUID = 0xb - AUDIT_COMPARE_UID_TO_FSUID = 0xc - AUDIT_COMPARE_UID_TO_OBJ_UID = 0x1 - AUDIT_COMPARE_UID_TO_SUID = 0xd - AUDIT_CONFIG_CHANGE = 0x519 - AUDIT_CWD = 0x51b - AUDIT_DAEMON_ABORT = 0x4b2 - AUDIT_DAEMON_CONFIG = 0x4b3 - AUDIT_DAEMON_END = 0x4b1 - AUDIT_DAEMON_START = 0x4b0 - AUDIT_DEL = 0x3ec - AUDIT_DEL_RULE = 0x3f4 - AUDIT_DEVMAJOR = 0x64 - AUDIT_DEVMINOR = 0x65 - AUDIT_DIR = 0x6b - AUDIT_DM_CTRL = 0x53a - AUDIT_DM_EVENT = 0x53b - AUDIT_EGID = 0x6 - AUDIT_EOE = 0x528 - AUDIT_EQUAL = 0x40000000 - AUDIT_EUID = 0x2 - AUDIT_EVENT_LISTENER = 0x537 - AUDIT_EXE = 0x70 - AUDIT_EXECVE = 0x51d - AUDIT_EXIT = 0x67 - AUDIT_FAIL_PANIC = 0x2 - AUDIT_FAIL_PRINTK = 0x1 - AUDIT_FAIL_SILENT = 0x0 - AUDIT_FANOTIFY = 0x533 - AUDIT_FD_PAIR = 0x525 - AUDIT_FEATURE_BITMAP_ALL = 0x7f - AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT = 0x1 - AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME = 0x2 - AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND = 0x8 - AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH = 0x4 - AUDIT_FEATURE_BITMAP_FILTER_FS = 0x40 - AUDIT_FEATURE_BITMAP_LOST_RESET = 0x20 - AUDIT_FEATURE_BITMAP_SESSIONID_FILTER = 0x10 - AUDIT_FEATURE_CHANGE = 0x530 - AUDIT_FEATURE_LOGINUID_IMMUTABLE = 0x1 - AUDIT_FEATURE_ONLY_UNSET_LOGINUID = 0x0 - AUDIT_FEATURE_VERSION = 0x1 - AUDIT_FIELD_COMPARE = 0x6f - AUDIT_FILETYPE = 0x6c - AUDIT_FILTERKEY = 0xd2 - AUDIT_FILTER_ENTRY = 0x2 - AUDIT_FILTER_EXCLUDE = 0x5 - AUDIT_FILTER_EXIT = 0x4 - AUDIT_FILTER_FS = 0x6 - AUDIT_FILTER_PREPEND = 0x10 - AUDIT_FILTER_TASK = 0x1 - AUDIT_FILTER_TYPE = 0x5 - AUDIT_FILTER_URING_EXIT = 0x7 - AUDIT_FILTER_USER = 0x0 - AUDIT_FILTER_WATCH = 0x3 - AUDIT_FIRST_KERN_ANOM_MSG = 0x6a4 - AUDIT_FIRST_USER_MSG = 0x44c - AUDIT_FIRST_USER_MSG2 = 0x834 - AUDIT_FSGID = 0x8 - AUDIT_FSTYPE = 0x1a - AUDIT_FSUID = 0x4 - AUDIT_GET = 0x3e8 - AUDIT_GET_FEATURE = 0x3fb - AUDIT_GID = 0x5 - AUDIT_GREATER_THAN = 0x20000000 - AUDIT_GREATER_THAN_OR_EQUAL = 0x60000000 - AUDIT_INODE = 0x66 - AUDIT_INTEGRITY_DATA = 0x708 - AUDIT_INTEGRITY_EVM_XATTR = 0x70e - AUDIT_INTEGRITY_HASH = 0x70b - AUDIT_INTEGRITY_METADATA = 0x709 - AUDIT_INTEGRITY_PCR = 0x70c - AUDIT_INTEGRITY_POLICY_RULE = 0x70f - AUDIT_INTEGRITY_RULE = 0x70d - AUDIT_INTEGRITY_STATUS = 0x70a - AUDIT_IPC = 0x517 - AUDIT_IPC_SET_PERM = 0x51f - AUDIT_KERNEL = 0x7d0 - AUDIT_KERNEL_OTHER = 0x524 - AUDIT_KERN_MODULE = 0x532 - AUDIT_LAST_FEATURE = 0x1 - AUDIT_LAST_KERN_ANOM_MSG = 0x707 - AUDIT_LAST_USER_MSG = 0x4af - AUDIT_LAST_USER_MSG2 = 0xbb7 - AUDIT_LESS_THAN = 0x10000000 - AUDIT_LESS_THAN_OR_EQUAL = 0x50000000 - AUDIT_LIST = 0x3ea - AUDIT_LIST_RULES = 0x3f5 - AUDIT_LOGIN = 0x3ee - AUDIT_LOGINUID = 0x9 - AUDIT_LOGINUID_SET = 0x18 - AUDIT_MAC_CALIPSO_ADD = 0x58a - AUDIT_MAC_CALIPSO_DEL = 0x58b - AUDIT_MAC_CIPSOV4_ADD = 0x57f - AUDIT_MAC_CIPSOV4_DEL = 0x580 - AUDIT_MAC_CONFIG_CHANGE = 0x57d - AUDIT_MAC_IPSEC_ADDSA = 0x583 - AUDIT_MAC_IPSEC_ADDSPD = 0x585 - AUDIT_MAC_IPSEC_DELSA = 0x584 - AUDIT_MAC_IPSEC_DELSPD = 0x586 - AUDIT_MAC_IPSEC_EVENT = 0x587 - AUDIT_MAC_MAP_ADD = 0x581 - AUDIT_MAC_MAP_DEL = 0x582 - AUDIT_MAC_POLICY_LOAD = 0x57b - AUDIT_MAC_STATUS = 0x57c - AUDIT_MAC_UNLBL_ALLOW = 0x57e - AUDIT_MAC_UNLBL_STCADD = 0x588 - AUDIT_MAC_UNLBL_STCDEL = 0x589 - AUDIT_MAKE_EQUIV = 0x3f7 - AUDIT_MAX_FIELDS = 0x40 - AUDIT_MAX_FIELD_COMPARE = 0x19 - AUDIT_MAX_KEY_LEN = 0x100 - AUDIT_MESSAGE_TEXT_MAX = 0x2170 - AUDIT_MMAP = 0x52b - AUDIT_MQ_GETSETATTR = 0x523 - AUDIT_MQ_NOTIFY = 0x522 - AUDIT_MQ_OPEN = 0x520 - AUDIT_MQ_SENDRECV = 0x521 - AUDIT_MSGTYPE = 0xc - AUDIT_NEGATE = 0x80000000 - AUDIT_NETFILTER_CFG = 0x52d - AUDIT_NETFILTER_PKT = 0x52c - AUDIT_NEVER = 0x0 - AUDIT_NLGRP_MAX = 0x1 - AUDIT_NOT_EQUAL = 0x30000000 - AUDIT_NR_FILTERS = 0x8 - AUDIT_OBJ_GID = 0x6e - AUDIT_OBJ_LEV_HIGH = 0x17 - AUDIT_OBJ_LEV_LOW = 0x16 - AUDIT_OBJ_PID = 0x526 - AUDIT_OBJ_ROLE = 0x14 - AUDIT_OBJ_TYPE = 0x15 - AUDIT_OBJ_UID = 0x6d - AUDIT_OBJ_USER = 0x13 - AUDIT_OPENAT2 = 0x539 - AUDIT_OPERATORS = 0x78000000 - AUDIT_PATH = 0x516 - AUDIT_PERM = 0x6a - AUDIT_PERM_ATTR = 0x8 - AUDIT_PERM_EXEC = 0x1 - AUDIT_PERM_READ = 0x4 - AUDIT_PERM_WRITE = 0x2 - AUDIT_PERS = 0xa - AUDIT_PID = 0x0 - AUDIT_POSSIBLE = 0x1 - AUDIT_PPID = 0x12 - AUDIT_PROCTITLE = 0x52f - AUDIT_REPLACE = 0x531 - AUDIT_SADDR_FAM = 0x71 - AUDIT_SECCOMP = 0x52e - AUDIT_SELINUX_ERR = 0x579 - AUDIT_SESSIONID = 0x19 - AUDIT_SET = 0x3e9 - AUDIT_SET_FEATURE = 0x3fa - AUDIT_SGID = 0x7 - AUDIT_SID_UNSET = 0xffffffff - AUDIT_SIGNAL_INFO = 0x3f2 - AUDIT_SOCKADDR = 0x51a - AUDIT_SOCKETCALL = 0x518 - AUDIT_STATUS_BACKLOG_LIMIT = 0x10 - AUDIT_STATUS_BACKLOG_WAIT_TIME = 0x20 - AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL = 0x80 - AUDIT_STATUS_ENABLED = 0x1 - AUDIT_STATUS_FAILURE = 0x2 - AUDIT_STATUS_LOST = 0x40 - AUDIT_STATUS_PID = 0x4 - AUDIT_STATUS_RATE_LIMIT = 0x8 - AUDIT_SUBJ_CLR = 0x11 - AUDIT_SUBJ_ROLE = 0xe - AUDIT_SUBJ_SEN = 0x10 - AUDIT_SUBJ_TYPE = 0xf - AUDIT_SUBJ_USER = 0xd - AUDIT_SUCCESS = 0x68 - AUDIT_SUID = 0x3 - AUDIT_SYSCALL = 0x514 - AUDIT_SYSCALL_CLASSES = 0x10 - AUDIT_TIME_ADJNTPVAL = 0x535 - AUDIT_TIME_INJOFFSET = 0x534 - AUDIT_TRIM = 0x3f6 - AUDIT_TTY = 0x527 - AUDIT_TTY_GET = 0x3f8 - AUDIT_TTY_SET = 0x3f9 - AUDIT_UID = 0x1 - AUDIT_UID_UNSET = 0xffffffff - AUDIT_UNUSED_BITS = 0x7fffc00 - AUDIT_URINGOP = 0x538 - AUDIT_USER = 0x3ed - AUDIT_USER_AVC = 0x453 - AUDIT_USER_TTY = 0x464 - AUDIT_VERSION_BACKLOG_LIMIT = 0x1 - AUDIT_VERSION_BACKLOG_WAIT_TIME = 0x2 - AUDIT_VERSION_LATEST = 0x7f - AUDIT_WATCH = 0x69 - AUDIT_WATCH_INS = 0x3ef - AUDIT_WATCH_LIST = 0x3f1 - AUDIT_WATCH_REM = 0x3f0 - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B110 = 0x3 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2400 = 0xb - B300 = 0x7 - B38400 = 0xf - B4800 = 0xc - B50 = 0x1 - B600 = 0x8 - B75 = 0x2 - B9600 = 0xd - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ARSH = 0xc0 - BPF_ATOMIC = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_CMPXCHG = 0xf1 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIT = 0x90 - BPF_FETCH = 0x1 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_KPROBE_MULTI_RETURN = 0x1 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_REPLACE = 0x4 - BPF_F_SLEEPABLE = 0x10 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TEST_RUN_ON_CPU = 0x1 - BPF_F_TEST_STATE_FREQ = 0x8 - BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 - BPF_F_XDP_HAS_FRAGS = 0x20 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_BTF_ID = 0x3 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_FUNC = 0x4 - BPF_PSEUDO_KFUNC_CALL = 0x2 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_IDX = 0x5 - BPF_PSEUDO_MAP_IDX_VALUE = 0x6 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XCHG = 0xe1 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - BUS_BLUETOOTH = 0x5 - BUS_HIL = 0x4 - BUS_USB = 0x3 - BUS_VIRTUAL = 0x6 - CAN_BCM = 0x2 - CAN_BUS_OFF_THRESHOLD = 0x100 - CAN_CTRLMODE_3_SAMPLES = 0x4 - CAN_CTRLMODE_BERR_REPORTING = 0x10 - CAN_CTRLMODE_CC_LEN8_DLC = 0x100 - CAN_CTRLMODE_FD = 0x20 - CAN_CTRLMODE_FD_NON_ISO = 0x80 - CAN_CTRLMODE_LISTENONLY = 0x2 - CAN_CTRLMODE_LOOPBACK = 0x1 - CAN_CTRLMODE_ONE_SHOT = 0x8 - CAN_CTRLMODE_PRESUME_ACK = 0x40 - CAN_CTRLMODE_TDC_AUTO = 0x200 - CAN_CTRLMODE_TDC_MANUAL = 0x400 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERROR_PASSIVE_THRESHOLD = 0x80 - CAN_ERROR_WARNING_THRESHOLD = 0x60 - CAN_ERR_ACK = 0x20 - CAN_ERR_BUSERROR = 0x80 - CAN_ERR_BUSOFF = 0x40 - CAN_ERR_CNT = 0x200 - CAN_ERR_CRTL = 0x4 - CAN_ERR_CRTL_ACTIVE = 0x40 - CAN_ERR_CRTL_RX_OVERFLOW = 0x1 - CAN_ERR_CRTL_RX_PASSIVE = 0x10 - CAN_ERR_CRTL_RX_WARNING = 0x4 - CAN_ERR_CRTL_TX_OVERFLOW = 0x2 - CAN_ERR_CRTL_TX_PASSIVE = 0x20 - CAN_ERR_CRTL_TX_WARNING = 0x8 - CAN_ERR_CRTL_UNSPEC = 0x0 - CAN_ERR_DLC = 0x8 - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_LOSTARB = 0x2 - CAN_ERR_LOSTARB_UNSPEC = 0x0 - CAN_ERR_MASK = 0x1fffffff - CAN_ERR_PROT = 0x8 - CAN_ERR_PROT_ACTIVE = 0x40 - CAN_ERR_PROT_BIT = 0x1 - CAN_ERR_PROT_BIT0 = 0x8 - CAN_ERR_PROT_BIT1 = 0x10 - CAN_ERR_PROT_FORM = 0x2 - CAN_ERR_PROT_LOC_ACK = 0x19 - CAN_ERR_PROT_LOC_ACK_DEL = 0x1b - CAN_ERR_PROT_LOC_CRC_DEL = 0x18 - CAN_ERR_PROT_LOC_CRC_SEQ = 0x8 - CAN_ERR_PROT_LOC_DATA = 0xa - CAN_ERR_PROT_LOC_DLC = 0xb - CAN_ERR_PROT_LOC_EOF = 0x1a - CAN_ERR_PROT_LOC_ID04_00 = 0xe - CAN_ERR_PROT_LOC_ID12_05 = 0xf - CAN_ERR_PROT_LOC_ID17_13 = 0x7 - CAN_ERR_PROT_LOC_ID20_18 = 0x6 - CAN_ERR_PROT_LOC_ID28_21 = 0x2 - CAN_ERR_PROT_LOC_IDE = 0x5 - CAN_ERR_PROT_LOC_INTERM = 0x12 - CAN_ERR_PROT_LOC_RES0 = 0x9 - CAN_ERR_PROT_LOC_RES1 = 0xd - CAN_ERR_PROT_LOC_RTR = 0xc - CAN_ERR_PROT_LOC_SOF = 0x3 - CAN_ERR_PROT_LOC_SRTR = 0x4 - CAN_ERR_PROT_LOC_UNSPEC = 0x0 - CAN_ERR_PROT_OVERLOAD = 0x20 - CAN_ERR_PROT_STUFF = 0x4 - CAN_ERR_PROT_TX = 0x80 - CAN_ERR_PROT_UNSPEC = 0x0 - CAN_ERR_RESTARTED = 0x100 - CAN_ERR_TRX = 0x10 - CAN_ERR_TRX_CANH_NO_WIRE = 0x4 - CAN_ERR_TRX_CANH_SHORT_TO_BAT = 0x5 - CAN_ERR_TRX_CANH_SHORT_TO_GND = 0x7 - CAN_ERR_TRX_CANH_SHORT_TO_VCC = 0x6 - CAN_ERR_TRX_CANL_NO_WIRE = 0x40 - CAN_ERR_TRX_CANL_SHORT_TO_BAT = 0x50 - CAN_ERR_TRX_CANL_SHORT_TO_CANH = 0x80 - CAN_ERR_TRX_CANL_SHORT_TO_GND = 0x70 - CAN_ERR_TRX_CANL_SHORT_TO_VCC = 0x60 - CAN_ERR_TRX_UNSPEC = 0x0 - CAN_ERR_TX_TIMEOUT = 0x1 - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_J1939 = 0x7 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MAX_RAW_DLC = 0xf - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x8 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TERMINATION_DISABLED = 0x0 - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_BPF = 0x27 - CAP_CHECKPOINT_RESTORE = 0x28 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x28 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_PERFMON = 0x26 - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CEPH_SUPER_MAGIC = 0xc36400 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIFS_SUPER_MAGIC = 0xff534d42 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_ARGS_SIZE_VER0 = 0x40 - CLONE_ARGS_SIZE_VER1 = 0x50 - CLONE_ARGS_SIZE_VER2 = 0x58 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_CLEAR_SIGHAND = 0x100000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_INTO_CGROUP = 0x200000000 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWTIME = 0x80 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CRAMFS_MAGIC = 0x28cd3d45 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CSIGNAL = 0xff - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d - DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e - DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2 - DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1 - DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" - DEVLINK_GENL_NAME = "devlink" - DEVLINK_GENL_VERSION = 0x1 - DEVLINK_PORT_FN_CAP_MIGRATABLE = 0x2 - DEVLINK_PORT_FN_CAP_ROCE = 0x1 - DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 - DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3 - DEVMEM_MAGIC = 0x454d444d - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DM_ACTIVE_PRESENT_FLAG = 0x20 - DM_BUFFER_FULL_FLAG = 0x100 - DM_CONTROL_NODE = "control" - DM_DATA_OUT_FLAG = 0x10000 - DM_DEFERRED_REMOVE = 0x20000 - DM_DEV_ARM_POLL = 0xc138fd10 - DM_DEV_CREATE = 0xc138fd03 - DM_DEV_REMOVE = 0xc138fd04 - DM_DEV_RENAME = 0xc138fd05 - DM_DEV_SET_GEOMETRY = 0xc138fd0f - DM_DEV_STATUS = 0xc138fd07 - DM_DEV_SUSPEND = 0xc138fd06 - DM_DEV_WAIT = 0xc138fd08 - DM_DIR = "mapper" - DM_GET_TARGET_VERSION = 0xc138fd11 - DM_IMA_MEASUREMENT_FLAG = 0x80000 - DM_INACTIVE_PRESENT_FLAG = 0x40 - DM_INTERNAL_SUSPEND_FLAG = 0x40000 - DM_IOCTL = 0xfd - DM_LIST_DEVICES = 0xc138fd02 - DM_LIST_VERSIONS = 0xc138fd0d - DM_MAX_TYPE_NAME = 0x10 - DM_NAME_LEN = 0x80 - DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID = 0x2 - DM_NAME_LIST_FLAG_HAS_UUID = 0x1 - DM_NOFLUSH_FLAG = 0x800 - DM_PERSISTENT_DEV_FLAG = 0x8 - DM_QUERY_INACTIVE_TABLE_FLAG = 0x1000 - DM_READONLY_FLAG = 0x1 - DM_REMOVE_ALL = 0xc138fd01 - DM_SECURE_DATA_FLAG = 0x8000 - DM_SKIP_BDGET_FLAG = 0x200 - DM_SKIP_LOCKFS_FLAG = 0x400 - DM_STATUS_TABLE_FLAG = 0x10 - DM_SUSPEND_FLAG = 0x2 - DM_TABLE_CLEAR = 0xc138fd0a - DM_TABLE_DEPS = 0xc138fd0b - DM_TABLE_LOAD = 0xc138fd09 - DM_TABLE_STATUS = 0xc138fd0c - DM_TARGET_MSG = 0xc138fd0e - DM_UEVENT_GENERATED_FLAG = 0x2000 - DM_UUID_FLAG = 0x4000 - DM_UUID_LEN = 0x81 - DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2022-07-28)" - DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x2f - DM_VERSION_PATCHLEVEL = 0x0 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - EM_386 = 0x3 - EM_486 = 0x6 - EM_68K = 0x4 - EM_860 = 0x7 - EM_88K = 0x5 - EM_AARCH64 = 0xb7 - EM_ALPHA = 0x9026 - EM_ALTERA_NIOS2 = 0x71 - EM_ARCOMPACT = 0x5d - EM_ARCV2 = 0xc3 - EM_ARM = 0x28 - EM_BLACKFIN = 0x6a - EM_BPF = 0xf7 - EM_CRIS = 0x4c - EM_CSKY = 0xfc - EM_CYGNUS_M32R = 0x9041 - EM_CYGNUS_MN10300 = 0xbeef - EM_FRV = 0x5441 - EM_H8_300 = 0x2e - EM_HEXAGON = 0xa4 - EM_IA_64 = 0x32 - EM_LOONGARCH = 0x102 - EM_M32 = 0x1 - EM_M32R = 0x58 - EM_MICROBLAZE = 0xbd - EM_MIPS = 0x8 - EM_MIPS_RS3_LE = 0xa - EM_MIPS_RS4_BE = 0xa - EM_MN10300 = 0x59 - EM_NDS32 = 0xa7 - EM_NONE = 0x0 - EM_OPENRISC = 0x5c - EM_PARISC = 0xf - EM_PPC = 0x14 - EM_PPC64 = 0x15 - EM_RISCV = 0xf3 - EM_S390 = 0x16 - EM_S390_OLD = 0xa390 - EM_SH = 0x2a - EM_SPARC = 0x2 - EM_SPARC32PLUS = 0x12 - EM_SPARCV9 = 0x2b - EM_SPU = 0x17 - EM_TILEGX = 0xbf - EM_TILEPRO = 0xbc - EM_TI_C6000 = 0x8c - EM_UNICORE = 0x6e - EM_X86_64 = 0x3e - EM_XTENSA = 0x5e - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 - ESP_V4_FLOW = 0xa - ESP_V6_FLOW = 0xc - ETHER_FLOW = 0x12 - ETHTOOL_BUSINFO_LEN = 0x20 - ETHTOOL_EROMVERS_LEN = 0x20 - ETHTOOL_FEC_AUTO = 0x2 - ETHTOOL_FEC_BASER = 0x10 - ETHTOOL_FEC_LLRS = 0x20 - ETHTOOL_FEC_NONE = 0x1 - ETHTOOL_FEC_OFF = 0x4 - ETHTOOL_FEC_RS = 0x8 - ETHTOOL_FLAG_ALL = 0x7 - ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 - ETHTOOL_FLAG_OMIT_REPLY = 0x2 - ETHTOOL_FLAG_STATS = 0x4 - ETHTOOL_FLASHDEV = 0x33 - ETHTOOL_FLASH_MAX_FILENAME = 0x80 - ETHTOOL_FWVERS_LEN = 0x20 - ETHTOOL_F_COMPAT = 0x4 - ETHTOOL_F_UNSUPPORTED = 0x1 - ETHTOOL_F_WISH = 0x2 - ETHTOOL_GCHANNELS = 0x3c - ETHTOOL_GCOALESCE = 0xe - ETHTOOL_GDRVINFO = 0x3 - ETHTOOL_GEEE = 0x44 - ETHTOOL_GEEPROM = 0xb - ETHTOOL_GENL_NAME = "ethtool" - ETHTOOL_GENL_VERSION = 0x1 - ETHTOOL_GET_DUMP_DATA = 0x40 - ETHTOOL_GET_DUMP_FLAG = 0x3f - ETHTOOL_GET_TS_INFO = 0x41 - ETHTOOL_GFEATURES = 0x3a - ETHTOOL_GFECPARAM = 0x50 - ETHTOOL_GFLAGS = 0x25 - ETHTOOL_GGRO = 0x2b - ETHTOOL_GGSO = 0x23 - ETHTOOL_GLINK = 0xa - ETHTOOL_GLINKSETTINGS = 0x4c - ETHTOOL_GMODULEEEPROM = 0x43 - ETHTOOL_GMODULEINFO = 0x42 - ETHTOOL_GMSGLVL = 0x7 - ETHTOOL_GPAUSEPARAM = 0x12 - ETHTOOL_GPERMADDR = 0x20 - ETHTOOL_GPFLAGS = 0x27 - ETHTOOL_GPHYSTATS = 0x4a - ETHTOOL_GREGS = 0x4 - ETHTOOL_GRINGPARAM = 0x10 - ETHTOOL_GRSSH = 0x46 - ETHTOOL_GRXCLSRLALL = 0x30 - ETHTOOL_GRXCLSRLCNT = 0x2e - ETHTOOL_GRXCLSRULE = 0x2f - ETHTOOL_GRXCSUM = 0x14 - ETHTOOL_GRXFH = 0x29 - ETHTOOL_GRXFHINDIR = 0x38 - ETHTOOL_GRXNTUPLE = 0x36 - ETHTOOL_GRXRINGS = 0x2d - ETHTOOL_GSET = 0x1 - ETHTOOL_GSG = 0x18 - ETHTOOL_GSSET_INFO = 0x37 - ETHTOOL_GSTATS = 0x1d - ETHTOOL_GSTRINGS = 0x1b - ETHTOOL_GTSO = 0x1e - ETHTOOL_GTUNABLE = 0x48 - ETHTOOL_GTXCSUM = 0x16 - ETHTOOL_GUFO = 0x21 - ETHTOOL_GWOL = 0x5 - ETHTOOL_MCGRP_MONITOR_NAME = "monitor" - ETHTOOL_NWAY_RST = 0x9 - ETHTOOL_PERQUEUE = 0x4b - ETHTOOL_PHYS_ID = 0x1c - ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff - ETHTOOL_PHY_EDPD_DISABLE = 0x0 - ETHTOOL_PHY_EDPD_NO_TX = 0xfffe - ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff - ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0 - ETHTOOL_PHY_GTUNABLE = 0x4e - ETHTOOL_PHY_STUNABLE = 0x4f - ETHTOOL_RESET = 0x34 - ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2 - ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1 - ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff - ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000 - ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20 - ETHTOOL_SCHANNELS = 0x3d - ETHTOOL_SCOALESCE = 0xf - ETHTOOL_SEEE = 0x45 - ETHTOOL_SEEPROM = 0xc - ETHTOOL_SET_DUMP = 0x3e - ETHTOOL_SFEATURES = 0x3b - ETHTOOL_SFECPARAM = 0x51 - ETHTOOL_SFLAGS = 0x26 - ETHTOOL_SGRO = 0x2c - ETHTOOL_SGSO = 0x24 - ETHTOOL_SLINKSETTINGS = 0x4d - ETHTOOL_SMSGLVL = 0x8 - ETHTOOL_SPAUSEPARAM = 0x13 - ETHTOOL_SPFLAGS = 0x28 - ETHTOOL_SRINGPARAM = 0x11 - ETHTOOL_SRSSH = 0x47 - ETHTOOL_SRXCLSRLDEL = 0x31 - ETHTOOL_SRXCLSRLINS = 0x32 - ETHTOOL_SRXCSUM = 0x15 - ETHTOOL_SRXFH = 0x2a - ETHTOOL_SRXFHINDIR = 0x39 - ETHTOOL_SRXNTUPLE = 0x35 - ETHTOOL_SSET = 0x2 - ETHTOOL_SSG = 0x19 - ETHTOOL_STSO = 0x1f - ETHTOOL_STUNABLE = 0x49 - ETHTOOL_STXCSUM = 0x17 - ETHTOOL_SUFO = 0x22 - ETHTOOL_SWOL = 0x6 - ETHTOOL_TEST = 0x1a - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CANXL = 0xe - ETH_P_CFM = 0x8902 - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_DSA_A5PSW = 0xe001 - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_ETHERCAT = 0x88a4 - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MCTP = 0xfa - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MRP = 0x88e3 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PROFINET = 0x8892 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_REALTEK = 0x8899 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EV_ABS = 0x3 - EV_CNT = 0x20 - EV_FF = 0x15 - EV_FF_STATUS = 0x17 - EV_KEY = 0x1 - EV_LED = 0x11 - EV_MAX = 0x1f - EV_MSC = 0x4 - EV_PWR = 0x16 - EV_REL = 0x2 - EV_REP = 0x14 - EV_SND = 0x12 - EV_SW = 0x5 - EV_SYN = 0x0 - EV_VERSION = 0x10001 - EXABYTE_ENABLE_NEST = 0xf0 - EXFAT_SUPER_MAGIC = 0x2011bab0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EPIDFD = -0x2 - FAN_EVENT_INFO_TYPE_DFID = 0x3 - FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 - FAN_EVENT_INFO_TYPE_ERROR = 0x5 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc - FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa - FAN_EVENT_INFO_TYPE_PIDFD = 0x4 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_FS_ERROR = 0x8000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_EVICTABLE = 0x200 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORE = 0x400 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_IGNORE_SURV = 0x440 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_NOPIDFD = -0x1 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_RENAME = 0x10000000 - FAN_REPORT_DFID_NAME = 0xc00 - FAN_REPORT_DFID_NAME_TARGET = 0x1e00 - FAN_REPORT_DIR_FID = 0x400 - FAN_REPORT_FID = 0x200 - FAN_REPORT_NAME = 0x800 - FAN_REPORT_PIDFD = 0x80 - FAN_REPORT_TARGET_FID = 0x1000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FIB_RULE_DEV_DETACHED = 0x8 - FIB_RULE_FIND_SADDR = 0x10000 - FIB_RULE_IIF_DETACHED = 0x8 - FIB_RULE_INVERT = 0x2 - FIB_RULE_OIF_DETACHED = 0x10 - FIB_RULE_PERMANENT = 0x1 - FIB_RULE_UNRESOLVED = 0x4 - FIDEDUPERANGE = 0xc0189436 - FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 - FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" - FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 - FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10 - FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1 - FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2 - FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1 - FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2 - FSCRYPT_KEY_STATUS_ABSENT = 0x1 - FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1 - FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3 - FSCRYPT_KEY_STATUS_PRESENT = 0x2 - FSCRYPT_MAX_KEY_SIZE = 0x40 - FSCRYPT_MODE_ADIANTUM = 0x9 - FSCRYPT_MODE_AES_128_CBC = 0x5 - FSCRYPT_MODE_AES_128_CTS = 0x6 - FSCRYPT_MODE_AES_256_CTS = 0x4 - FSCRYPT_MODE_AES_256_HCTR2 = 0xa - FSCRYPT_MODE_AES_256_XTS = 0x1 - FSCRYPT_MODE_SM4_CTS = 0x8 - FSCRYPT_MODE_SM4_XTS = 0x7 - FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 - FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 - FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 - FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 - FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 - FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 - FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 - FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 - FSCRYPT_POLICY_V1 = 0x0 - FSCRYPT_POLICY_V2 = 0x2 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617 - FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a - FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 - FS_IOC_MEASURE_VERITY = 0xc0046686 - FS_IOC_READ_VERITY_METADATA = 0xc0286687 - FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 - FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FS_VERITY_FL = 0x100000 - FS_VERITY_HASH_ALG_SHA256 = 0x1 - FS_VERITY_HASH_ALG_SHA512 = 0x2 - FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2 - FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1 - FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3 - FUSE_SUPER_MAGIC = 0x65735546 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_INSECURE = 0x4 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HID_MAX_DESCRIPTOR_SIZE = 0x1000 - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - IBSHIFT = 0x10 - ICRNL = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xb - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_CARRIER = 0x40 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERNET = 0x8f - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_L2TP = 0x73 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MPTCP = 0x106 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FLOW = 0x11 - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVERR_RFC4884 = 0x1f - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_USER_FLOW = 0xe - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVERR_RFC4884 = 0x1a - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_USER_FLOW = 0xd - IP_XFRM_POLICY = 0x11 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUTF8 = 0x4000 - IXANY = 0x800 - JFFS2_SUPER_MAGIC = 0x72b6 - KCMPROTO_CONNECTED = 0x0 - KCM_RECV_DISABLE = 0x1 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_LOONGARCH = 0x1020000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PARISC = 0xf0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_RISCV = 0xf30000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NOTIFICATIONS = 0x4 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEYCTL_WATCH_KEY = 0x20 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LANDLOCK_ACCESS_FS_EXECUTE = 0x1 - LANDLOCK_ACCESS_FS_MAKE_BLOCK = 0x800 - LANDLOCK_ACCESS_FS_MAKE_CHAR = 0x40 - LANDLOCK_ACCESS_FS_MAKE_DIR = 0x80 - LANDLOCK_ACCESS_FS_MAKE_FIFO = 0x400 - LANDLOCK_ACCESS_FS_MAKE_REG = 0x100 - LANDLOCK_ACCESS_FS_MAKE_SOCK = 0x200 - LANDLOCK_ACCESS_FS_MAKE_SYM = 0x1000 - LANDLOCK_ACCESS_FS_READ_DIR = 0x8 - LANDLOCK_ACCESS_FS_READ_FILE = 0x4 - LANDLOCK_ACCESS_FS_REFER = 0x2000 - LANDLOCK_ACCESS_FS_REMOVE_DIR = 0x10 - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LOOP_SET_STATUS_CLEARABLE_FLAGS = 0x4 - LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - LWTUNNEL_IP6_MAX = 0x8 - LWTUNNEL_IP_MAX = 0x8 - LWTUNNEL_IP_OPTS_MAX = 0x3 - LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4 - LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3 - LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1 - MADV_COLD = 0x14 - MADV_COLLAPSE = 0x19 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_DONTNEED_LOCKED = 0x18 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0x15 - MADV_POPULATE_READ = 0x16 - MADV_POPULATE_WRITE = 0x17 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MEMGETREGIONINFO = 0xc0104d08 - MEMREADOOB64 = 0xc0184d16 - MEMWRITE = 0xc0304d18 - MEMWRITEOOB64 = 0xc0184d15 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = 0x88000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_COMPRESSED_FILE = 0x4 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MOUNT_ATTR_IDMAP = 0x100000 - MOUNT_ATTR_NOATIME = 0x10 - MOUNT_ATTR_NODEV = 0x4 - MOUNT_ATTR_NODIRATIME = 0x80 - MOUNT_ATTR_NOEXEC = 0x8 - MOUNT_ATTR_NOSUID = 0x2 - MOUNT_ATTR_NOSYMFOLLOW = 0x200000 - MOUNT_ATTR_RDONLY = 0x1 - MOUNT_ATTR_RELATIME = 0x0 - MOUNT_ATTR_SIZE_VER0 = 0x20 - MOUNT_ATTR_STRICTATIME = 0x20 - MOUNT_ATTR__ATIME = 0x70 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOSYMFOLLOW = 0x100 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_ABSENT = 0x0 - MTD_BIT_WRITEABLE = 0x800 - MTD_CAP_NANDFLASH = 0x400 - MTD_CAP_NORFLASH = 0xc00 - MTD_CAP_NVRAM = 0x1c00 - MTD_CAP_RAM = 0x1c00 - MTD_CAP_ROM = 0x0 - MTD_DATAFLASH = 0x6 - MTD_INODE_FS_MAGIC = 0x11307854 - MTD_MAX_ECCPOS_ENTRIES = 0x40 - MTD_MAX_OOBFREE_ENTRIES = 0x8 - MTD_MLCNANDFLASH = 0x8 - MTD_NANDECC_AUTOPLACE = 0x2 - MTD_NANDECC_AUTOPL_USR = 0x4 - MTD_NANDECC_OFF = 0x0 - MTD_NANDECC_PLACE = 0x1 - MTD_NANDECC_PLACEONLY = 0x3 - MTD_NANDFLASH = 0x4 - MTD_NORFLASH = 0x3 - MTD_NO_ERASE = 0x1000 - MTD_OTP_FACTORY = 0x1 - MTD_OTP_OFF = 0x0 - MTD_OTP_USER = 0x2 - MTD_POWERUP_LOCK = 0x2000 - MTD_RAM = 0x1 - MTD_ROM = 0x2 - MTD_SLC_ON_MLC_EMULATION = 0x4000 - MTD_UBIVOLUME = 0x7 - MTD_WRITEABLE = 0x400 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFC_ATR_REQ_GB_MAXSIZE = 0x30 - NFC_ATR_REQ_MAXSIZE = 0x40 - NFC_ATR_RES_GB_MAXSIZE = 0x2f - NFC_ATR_RES_MAXSIZE = 0x40 - NFC_COMM_ACTIVE = 0x0 - NFC_COMM_PASSIVE = 0x1 - NFC_DEVICE_NAME_MAXSIZE = 0x8 - NFC_DIRECTION_RX = 0x0 - NFC_DIRECTION_TX = 0x1 - NFC_FIRMWARE_NAME_MAXSIZE = 0x20 - NFC_GB_MAXSIZE = 0x30 - NFC_GENL_MCAST_EVENT_NAME = "events" - NFC_GENL_NAME = "nfc" - NFC_GENL_VERSION = 0x1 - NFC_HEADER_SIZE = 0x1 - NFC_ISO15693_UID_MAXSIZE = 0x8 - NFC_LLCP_MAX_SERVICE_NAME = 0x3f - NFC_LLCP_MIUX = 0x1 - NFC_LLCP_REMOTE_LTO = 0x3 - NFC_LLCP_REMOTE_MIU = 0x2 - NFC_LLCP_REMOTE_RW = 0x4 - NFC_LLCP_RW = 0x0 - NFC_NFCID1_MAXSIZE = 0xa - NFC_NFCID2_MAXSIZE = 0x8 - NFC_NFCID3_MAXSIZE = 0xa - NFC_PROTO_FELICA = 0x3 - NFC_PROTO_FELICA_MASK = 0x8 - NFC_PROTO_ISO14443 = 0x4 - NFC_PROTO_ISO14443_B = 0x6 - NFC_PROTO_ISO14443_B_MASK = 0x40 - NFC_PROTO_ISO14443_MASK = 0x10 - NFC_PROTO_ISO15693 = 0x7 - NFC_PROTO_ISO15693_MASK = 0x80 - NFC_PROTO_JEWEL = 0x1 - NFC_PROTO_JEWEL_MASK = 0x2 - NFC_PROTO_MAX = 0x8 - NFC_PROTO_MIFARE = 0x2 - NFC_PROTO_MIFARE_MASK = 0x4 - NFC_PROTO_NFC_DEP = 0x5 - NFC_PROTO_NFC_DEP_MASK = 0x20 - NFC_RAW_HEADER_SIZE = 0x2 - NFC_RF_INITIATOR = 0x0 - NFC_RF_NONE = 0x2 - NFC_RF_TARGET = 0x1 - NFC_SENSB_RES_MAXSIZE = 0xc - NFC_SENSF_RES_MAXSIZE = 0x12 - NFC_SE_DISABLED = 0x0 - NFC_SE_EMBEDDED = 0x2 - NFC_SE_ENABLED = 0x1 - NFC_SE_UICC = 0x1 - NFC_SOCKPROTO_LLCP = 0x1 - NFC_SOCKPROTO_MAX = 0x2 - NFC_SOCKPROTO_RAW = 0x0 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xd - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_HOOK = 0xc - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_BULK = 0x200 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_IGNORE_OUTGOING = 0x4000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PERF_ATTR_SIZE_VER0 = 0x40 - PERF_ATTR_SIZE_VER1 = 0x48 - PERF_ATTR_SIZE_VER2 = 0x50 - PERF_ATTR_SIZE_VER3 = 0x60 - PERF_ATTR_SIZE_VER4 = 0x68 - PERF_ATTR_SIZE_VER5 = 0x70 - PERF_ATTR_SIZE_VER6 = 0x78 - PERF_ATTR_SIZE_VER7 = 0x80 - PERF_AUX_FLAG_COLLISION = 0x8 - PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 - PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 - PERF_AUX_FLAG_OVERWRITE = 0x2 - PERF_AUX_FLAG_PARTIAL = 0x4 - PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 - PERF_AUX_FLAG_TRUNCATED = 0x1 - PERF_BR_ARM64_DEBUG_DATA = 0x7 - PERF_BR_ARM64_DEBUG_EXIT = 0x5 - PERF_BR_ARM64_DEBUG_HALT = 0x4 - PERF_BR_ARM64_DEBUG_INST = 0x6 - PERF_BR_ARM64_FIQ = 0x3 - PERF_FLAG_FD_CLOEXEC = 0x8 - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_HW_EVENT_MASK = 0xffffffff - PERF_MAX_CONTEXTS_PER_STACK = 0x8 - PERF_MAX_STACK_DEPTH = 0x7f - PERF_MEM_BLK_ADDR = 0x4 - PERF_MEM_BLK_DATA = 0x2 - PERF_MEM_BLK_NA = 0x1 - PERF_MEM_BLK_SHIFT = 0x28 - PERF_MEM_HOPS_0 = 0x1 - PERF_MEM_HOPS_1 = 0x2 - PERF_MEM_HOPS_2 = 0x3 - PERF_MEM_HOPS_3 = 0x4 - PERF_MEM_HOPS_SHIFT = 0x2b - PERF_MEM_LOCK_LOCKED = 0x2 - PERF_MEM_LOCK_NA = 0x1 - PERF_MEM_LOCK_SHIFT = 0x18 - PERF_MEM_LVLNUM_ANY_CACHE = 0xb - PERF_MEM_LVLNUM_CXL = 0x9 - PERF_MEM_LVLNUM_IO = 0xa - PERF_MEM_LVLNUM_L1 = 0x1 - PERF_MEM_LVLNUM_L2 = 0x2 - PERF_MEM_LVLNUM_L3 = 0x3 - PERF_MEM_LVLNUM_L4 = 0x4 - PERF_MEM_LVLNUM_LFB = 0xc - PERF_MEM_LVLNUM_NA = 0xf - PERF_MEM_LVLNUM_PMEM = 0xe - PERF_MEM_LVLNUM_RAM = 0xd - PERF_MEM_LVLNUM_SHIFT = 0x21 - PERF_MEM_LVL_HIT = 0x2 - PERF_MEM_LVL_IO = 0x1000 - PERF_MEM_LVL_L1 = 0x8 - PERF_MEM_LVL_L2 = 0x20 - PERF_MEM_LVL_L3 = 0x40 - PERF_MEM_LVL_LFB = 0x10 - PERF_MEM_LVL_LOC_RAM = 0x80 - PERF_MEM_LVL_MISS = 0x4 - PERF_MEM_LVL_NA = 0x1 - PERF_MEM_LVL_REM_CCE1 = 0x400 - PERF_MEM_LVL_REM_CCE2 = 0x800 - PERF_MEM_LVL_REM_RAM1 = 0x100 - PERF_MEM_LVL_REM_RAM2 = 0x200 - PERF_MEM_LVL_SHIFT = 0x5 - PERF_MEM_LVL_UNC = 0x2000 - PERF_MEM_OP_EXEC = 0x10 - PERF_MEM_OP_LOAD = 0x2 - PERF_MEM_OP_NA = 0x1 - PERF_MEM_OP_PFETCH = 0x8 - PERF_MEM_OP_SHIFT = 0x0 - PERF_MEM_OP_STORE = 0x4 - PERF_MEM_REMOTE_REMOTE = 0x1 - PERF_MEM_REMOTE_SHIFT = 0x25 - PERF_MEM_SNOOPX_FWD = 0x1 - PERF_MEM_SNOOPX_PEER = 0x2 - PERF_MEM_SNOOPX_SHIFT = 0x26 - PERF_MEM_SNOOP_HIT = 0x4 - PERF_MEM_SNOOP_HITM = 0x10 - PERF_MEM_SNOOP_MISS = 0x8 - PERF_MEM_SNOOP_NA = 0x1 - PERF_MEM_SNOOP_NONE = 0x2 - PERF_MEM_SNOOP_SHIFT = 0x13 - PERF_MEM_TLB_HIT = 0x2 - PERF_MEM_TLB_L1 = 0x8 - PERF_MEM_TLB_L2 = 0x10 - PERF_MEM_TLB_MISS = 0x4 - PERF_MEM_TLB_NA = 0x1 - PERF_MEM_TLB_OS = 0x40 - PERF_MEM_TLB_SHIFT = 0x1a - PERF_MEM_TLB_WK = 0x20 - PERF_PMU_TYPE_SHIFT = 0x20 - PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER = 0x1 - PERF_RECORD_MISC_COMM_EXEC = 0x2000 - PERF_RECORD_MISC_CPUMODE_MASK = 0x7 - PERF_RECORD_MISC_CPUMODE_UNKNOWN = 0x0 - PERF_RECORD_MISC_EXACT_IP = 0x4000 - PERF_RECORD_MISC_EXT_RESERVED = 0x8000 - PERF_RECORD_MISC_FORK_EXEC = 0x2000 - PERF_RECORD_MISC_GUEST_KERNEL = 0x4 - PERF_RECORD_MISC_GUEST_USER = 0x5 - PERF_RECORD_MISC_HYPERVISOR = 0x3 - PERF_RECORD_MISC_KERNEL = 0x1 - PERF_RECORD_MISC_MMAP_BUILD_ID = 0x4000 - PERF_RECORD_MISC_MMAP_DATA = 0x2000 - PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000 - PERF_RECORD_MISC_SWITCH_OUT = 0x2000 - PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000 - PERF_RECORD_MISC_USER = 0x2 - PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 - PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 - PIPEFS_MAGIC = 0x50495045 - PPPIOCGNPMODE = 0xc008744c - PPPIOCNEWUNIT = 0xc004743e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_IO_FLUSHER = 0x3a - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_TAGGED_ADDR_CTRL = 0x38 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_MTE_TAG_MASK = 0x7fff8 - PR_MTE_TAG_SHIFT = 0x3 - PR_MTE_TCF_ASYNC = 0x4 - PR_MTE_TCF_MASK = 0x6 - PR_MTE_TCF_NONE = 0x0 - PR_MTE_TCF_SHIFT = 0x1 - PR_MTE_TCF_SYNC = 0x2 - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_GET_ENABLED_KEYS = 0x3d - PR_PAC_RESET_KEYS = 0x36 - PR_PAC_SET_ENABLED_KEYS = 0x3c - PR_SCHED_CORE = 0x3e - PR_SCHED_CORE_CREATE = 0x1 - PR_SCHED_CORE_GET = 0x0 - PR_SCHED_CORE_MAX = 0x4 - PR_SCHED_CORE_SCOPE_PROCESS_GROUP = 0x2 - PR_SCHED_CORE_SCOPE_THREAD = 0x0 - PR_SCHED_CORE_SCOPE_THREAD_GROUP = 0x1 - PR_SCHED_CORE_SHARE_FROM = 0x3 - PR_SCHED_CORE_SHARE_TO = 0x2 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_IO_FLUSHER = 0x39 - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_SYSCALL_USER_DISPATCH = 0x3b - PR_SET_TAGGED_ADDR_CTRL = 0x37 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SET_VMA = 0x53564d41 - PR_SET_VMA_ANON_NAME = 0x0 - PR_SME_GET_VL = 0x40 - PR_SME_SET_VL = 0x3f - PR_SME_SET_VL_ONEXEC = 0x40000 - PR_SME_VL_INHERIT = 0x20000 - PR_SME_VL_LEN_MASK = 0xffff - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_L1D_FLUSH = 0x2 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_SYS_DISPATCH_OFF = 0x0 - PR_SYS_DISPATCH_ON = 0x1 - PR_TAGGED_ADDR_ENABLE = 0x1 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_RSEQ_CONFIGURATION = 0x420f - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - P_ALL = 0x0 - P_PGID = 0x2 - P_PID = 0x1 - P_PIDFD = 0x3 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RAW_PAYLOAD_DIGITAL = 0x3 - RAW_PAYLOAD_HCI = 0x2 - RAW_PAYLOAD_LLCP = 0x0 - RAW_PAYLOAD_NCI = 0x1 - RAW_PAYLOAD_PROPRIETARY = 0x4 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_BSM_DIRECT = 0x1 - RTC_BSM_DISABLED = 0x0 - RTC_BSM_LEVEL = 0x2 - RTC_BSM_STANDBY = 0x3 - RTC_FEATURE_ALARM = 0x0 - RTC_FEATURE_ALARM_RES_2S = 0x3 - RTC_FEATURE_ALARM_RES_MINUTE = 0x1 - RTC_FEATURE_ALARM_WAKEUP_ONLY = 0x7 - RTC_FEATURE_BACKUP_SWITCH_MODE = 0x6 - RTC_FEATURE_CNT = 0x8 - RTC_FEATURE_CORRECTION = 0x5 - RTC_FEATURE_NEED_WEEK_DAY = 0x2 - RTC_FEATURE_UPDATE_INTERRUPT = 0x4 - RTC_IRQF = 0x80 - RTC_MAX_FREQ = 0x2000 - RTC_PARAM_BACKUP_SWITCH_MODE = 0x2 - RTC_PARAM_CORRECTION = 0x1 - RTC_PARAM_FEATURES = 0x0 - RTC_PF = 0x40 - RTC_UF = 0x10 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTMGRP_DECnet_IFADDR = 0x1000 - RTMGRP_DECnet_ROUTE = 0x4000 - RTMGRP_IPV4_IFADDR = 0x10 - RTMGRP_IPV4_MROUTE = 0x20 - RTMGRP_IPV4_ROUTE = 0x40 - RTMGRP_IPV4_RULE = 0x80 - RTMGRP_IPV6_IFADDR = 0x100 - RTMGRP_IPV6_IFINFO = 0x800 - RTMGRP_IPV6_MROUTE = 0x200 - RTMGRP_IPV6_PREFIX = 0x20000 - RTMGRP_IPV6_ROUTE = 0x400 - RTMGRP_LINK = 0x1 - RTMGRP_NEIGH = 0x4 - RTMGRP_NOTIFY = 0x2 - RTMGRP_TC = 0x8 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELLINKPROP = 0x6d - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNEXTHOPBUCKET = 0x75 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_DELTUNNEL = 0x79 - RTM_DELVLAN = 0x71 - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_OFFLOAD = 0x4000 - RTM_F_OFFLOAD_FAILED = 0x20000000 - RTM_F_PREFIX = 0x800 - RTM_F_TRAP = 0x8000 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETLINKPROP = 0x6e - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNEXTHOPBUCKET = 0x76 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_GETTUNNEL = 0x7a - RTM_GETVLAN = 0x72 - RTM_MAX = 0x7b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWLINKPROP = 0x6c - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNEXTHOPBUCKET = 0x74 - RTM_NEWNSID = 0x58 - RTM_NEWNVLAN = 0x70 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NEWTUNNEL = 0x78 - RTM_NR_FAMILIES = 0x1b - RTM_NR_MSGTYPES = 0x6c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTM_SETSTATS = 0x5f - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x59 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_TRAP = 0x40 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KEEPALIVED = 0x12 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OPENR = 0x63 - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - RWF_APPEND = 0x10 - RWF_DSYNC = 0x2 - RWF_HIPRI = 0x1 - RWF_NOWAIT = 0x8 - RWF_SUPPORTED = 0x1f - RWF_SYNC = 0x4 - RWF_WRITE_LIFE_NOT_SET = 0x0 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_MAX = 0x4 - SEEK_SET = 0x0 - SELINUX_MAGIC = 0xf97cff8c - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_OLD = 0x8906 - SIOCKCMATTACH = 0x89e0 - SIOCKCMCLONE = 0x89e2 - SIOCKCMUNATTACH = 0x89e1 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB2_SUPER_MAGIC = 0xfe534d42 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_BUF_LOCK_MASK = 0x3 - SOCK_DCCP = 0x6 - SOCK_IOC_TYPE = 0x89 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RCVBUF_LOCK = 0x2 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_SNDBUF_LOCK = 0x1 - SOCK_TXREHASH_DEFAULT = 0xff - SOCK_TXREHASH_DISABLED = 0x0 - SOCK_TXREHASH_ENABLED = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_CAN_RAW = 0x65 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_MCTP = 0x11d - SOL_MPTCP = 0x11c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SMC = 0x11e - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 - SO_ATTACH_FILTER = 0x1a - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_EE_RFC4884_FLAG_INVALID = 0x1 - SO_GET_FILTER = 0x1a - SO_NO_CHECK = 0xb - SO_PEERNAME = 0x1c - SO_PRIORITY = 0xc - SO_TIMESTAMP = 0x1d - SO_TIMESTAMP_OLD = 0x1d - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW = 0x8 - SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_DAX = 0x200000 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_MOUNT_ROOT = 0x2000 - STATX_ATTR_NODUMP = 0x40 - STATX_ATTR_VERITY = 0x100000 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_DIOALIGN = 0x2000 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MNT_ID = 0x1000 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0xd - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_TX_DELAY = 0x25 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_V4_FLOW = 0x1 - TCP_V6_FLOW = 0x5 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TFD_TIMER_ABSTIME = 0x1 - TFD_TIMER_CANCEL_ON_SET = 0x2 - TIMER_ABSTIME = 0x1 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RTS = 0x4 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_AEAD_ALG_NAME = 0x20 - TIPC_AEAD_KEYLEN_MAX = 0x24 - TIPC_AEAD_KEYLEN_MIN = 0x14 - TIPC_AEAD_KEY_SIZE_MAX = 0x48 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODELAY = 0x8a - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_REKEYING_NOW = 0xffffffff - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - UDF_SUPER_MAGIC = 0x15013346 - UDP_CORK = 0x1 - UDP_ENCAP = 0x64 - UDP_ENCAP_ESPINUDP = 0x2 - UDP_ENCAP_ESPINUDP_NON_IKE = 0x1 - UDP_ENCAP_GTP0 = 0x4 - UDP_ENCAP_GTP1U = 0x5 - UDP_ENCAP_L2TPINUDP = 0x3 - UDP_GRO = 0x68 - UDP_NO_CHECK6_RX = 0x66 - UDP_NO_CHECK6_TX = 0x65 - UDP_SEGMENT = 0x67 - UDP_V4_FLOW = 0x2 - UDP_V6_FLOW = 0x6 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_LOCAL = 0x1 - VMADDR_FLAG_TO_HOST = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VT0 = 0x0 - WAKE_MAGIC = 0x20 - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WDIOF_ALARMONLY = 0x400 - WDIOF_CARDRESET = 0x20 - WDIOF_EXTERN1 = 0x4 - WDIOF_EXTERN2 = 0x8 - WDIOF_FANFAULT = 0x2 - WDIOF_KEEPALIVEPING = 0x8000 - WDIOF_MAGICCLOSE = 0x100 - WDIOF_OVERHEAT = 0x1 - WDIOF_POWEROVER = 0x40 - WDIOF_POWERUNDER = 0x10 - WDIOF_PRETIMEOUT = 0x200 - WDIOF_SETTIMEOUT = 0x80 - WDIOF_UNKNOWN = -0x1 - WDIOS_DISABLECARD = 0x1 - WDIOS_ENABLECARD = 0x2 - WDIOS_TEMPPANIC = 0x4 - WDIOS_UNKNOWN = -0x1 - WEXITED = 0x4 - WGALLOWEDIP_A_MAX = 0x3 - WGDEVICE_A_MAX = 0x8 - WGPEER_A_MAX = 0xa - WG_CMD_MAX = 0x1 - WG_GENL_NAME = "wireguard" - WG_GENL_VERSION = 0x1 - WG_KEY_LEN = 0x20 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0x1f - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_REPLACE = 0x10 - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RING_NEED_WAKEUP = 0x1 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 - XDP_USE_NEED_WAKEUP = 0x8 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - ZONEFS_MAGIC = 0x5a4f4653 - _HIDIOCGRAWNAME_LEN = 0x80 - _HIDIOCGRAWPHYS_LEN = 0x40 - _HIDIOCGRAWUNIQ_LEN = 0x40 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EAGAIN = syscall.Errno(0xb) - EBADF = syscall.Errno(0x9) - EBUSY = syscall.Errno(0x10) - ECHILD = syscall.Errno(0xa) - EDOM = syscall.Errno(0x21) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISDIR = syscall.Errno(0x15) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - ENFILE = syscall.Errno(0x17) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOMEM = syscall.Errno(0xc) - ENOSPC = syscall.Errno(0x1c) - ENOTBLK = syscall.Errno(0xf) - ENOTDIR = syscall.Errno(0x14) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EPERM = syscall.Errno(0x1) - EPIPE = syscall.Errno(0x20) - ERANGE = syscall.Errno(0x22) - EROFS = syscall.Errno(0x1e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ETXTBSY = syscall.Errno(0x1a) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) -) diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_386.go deleted file mode 100644 index a46df0f1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ /dev/null @@ -1,829 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux -// +build 386,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc03c4d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x8000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffff - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x20 - X86_FXSR_MAGIC = 0x0 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go deleted file mode 100644 index 6cd4a3ea..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ /dev/null @@ -1,829 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux -// +build amd64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_ARCH_PRCTL = 0x1e - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go deleted file mode 100644 index c7ebee24..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ /dev/null @@ -1,835 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux -// +build arm,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x20000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffff - PTRACE_GETCRUNCHREGS = 0x19 - PTRACE_GETFDPIC = 0x1f - PTRACE_GETFDPIC_EXEC = 0x0 - PTRACE_GETFDPIC_INTERP = 0x1 - PTRACE_GETFPREGS = 0xe - PTRACE_GETHBPREGS = 0x1d - PTRACE_GETVFPREGS = 0x1b - PTRACE_GETWMMXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x16 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_SETCRUNCHREGS = 0x1a - PTRACE_SETFPREGS = 0xf - PTRACE_SETHBPREGS = 0x1e - PTRACE_SETVFPREGS = 0x1c - PTRACE_SETWMMXREGS = 0x13 - PTRACE_SET_SYSCALL = 0x17 - PT_DATA_ADDR = 0x10004 - PT_TEXT_ADDR = 0x10000 - PT_TEXT_END_ADDR = 0x10008 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x20 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go deleted file mode 100644 index 9d5352c3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ /dev/null @@ -1,827 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux -// +build arm64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - ESR_MAGIC = 0x45535201 - EXTPROC = 0x10000 - EXTRA_MAGIC = 0x45585401 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FPSIMD_MAGIC = 0x46508001 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PROT_BTI = 0x10 - PROT_MTE = 0x20 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_PEEKMTETAGS = 0x21 - PTRACE_POKEMTETAGS = 0x22 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SVE_MAGIC = 0x53564501 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - ZA_MAGIC = 0x54366345 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go deleted file mode 100644 index f26a164f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ /dev/null @@ -1,819 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux -// +build loong64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FPU_CTX_MAGIC = 0x46505501 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go deleted file mode 100644 index 890bc3c9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ /dev/null @@ -1,836 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux -// +build mips,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffff - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x20 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go deleted file mode 100644 index 549f26ac..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ /dev/null @@ -1,836 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux -// +build mips64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go deleted file mode 100644 index e0365e32..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ /dev/null @@ -1,836 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux -// +build mips64le,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go deleted file mode 100644 index fdccce15..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ /dev/null @@ -1,836 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux -// +build mipsle,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffff - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x20 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go deleted file mode 100644 index b2205c83..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ /dev/null @@ -1,888 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux -// +build ppc,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x17 - B115200 = 0x11 - B1152000 = 0x18 - B1500000 = 0x19 - B2000000 = 0x1a - B230400 = 0x12 - B2500000 = 0x1b - B3000000 = 0x1c - B3500000 = 0x1d - B4000000 = 0x1e - B460800 = 0x13 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 - CBAUD = 0xff - CBAUDEX = 0x0 - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTOPB = 0x400 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x80 - IUCLC = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x10000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x1000 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffff - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS64 = 0x16 - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETREGS64 = 0x17 - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPR31 = 0x6e - PT_FPSCR = 0x71 - PT_LNK = 0x24 - PT_MQ = 0x27 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_TRAP = 0x28 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VMIN = 0x5 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x20 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go deleted file mode 100644 index 81aa5ad0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ /dev/null @@ -1,892 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux -// +build ppc64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x17 - B115200 = 0x11 - B1152000 = 0x18 - B1500000 = 0x19 - B2000000 = 0x1a - B230400 = 0x12 - B2500000 = 0x1b - B3000000 = 0x1c - B3500000 = 0x1d - B4000000 = 0x1e - B460800 = 0x13 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 - CBAUD = 0xff - CBAUDEX = 0x0 - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTOPB = 0x400 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x80 - IUCLC = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x1000 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS64 = 0x16 - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETREGS64 = 0x17 - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VMIN = 0x5 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go deleted file mode 100644 index 76807a1f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ /dev/null @@ -1,892 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux -// +build ppc64le,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x17 - B115200 = 0x11 - B1152000 = 0x18 - B1500000 = 0x19 - B2000000 = 0x1a - B230400 = 0x12 - B2500000 = 0x1b - B3000000 = 0x1c - B3500000 = 0x1d - B4000000 = 0x1e - B460800 = 0x13 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 - CBAUD = 0xff - CBAUDEX = 0x0 - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTOPB = 0x400 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x80 - IUCLC = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x1000 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS64 = 0x16 - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETREGS64 = 0x17 - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VMIN = 0x5 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go deleted file mode 100644 index d4a5ab9e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ /dev/null @@ -1,816 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux -// +build riscv64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go deleted file mode 100644 index 66e65db9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ /dev/null @@ -1,891 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux -// +build s390x,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_DISABLE_TE = 0x5010 - PTRACE_ENABLE_TE = 0x5009 - PTRACE_GET_LAST_BREAK = 0x5006 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_AREA = 0x5003 - PTRACE_PEEKTEXT_AREA = 0x5002 - PTRACE_PEEKUSR_AREA = 0x5000 - PTRACE_PEEK_SYSTEM_CALL = 0x5007 - PTRACE_POKEDATA_AREA = 0x5005 - PTRACE_POKETEXT_AREA = 0x5004 - PTRACE_POKEUSR_AREA = 0x5001 - PTRACE_POKE_SYSTEM_CALL = 0x5008 - PTRACE_PROT = 0x15 - PTRACE_SINGLEBLOCK = 0xc - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TE_ABORT_RAND = 0x5011 - PT_ACR0 = 0x90 - PT_ACR1 = 0x94 - PT_ACR10 = 0xb8 - PT_ACR11 = 0xbc - PT_ACR12 = 0xc0 - PT_ACR13 = 0xc4 - PT_ACR14 = 0xc8 - PT_ACR15 = 0xcc - PT_ACR2 = 0x98 - PT_ACR3 = 0x9c - PT_ACR4 = 0xa0 - PT_ACR5 = 0xa4 - PT_ACR6 = 0xa8 - PT_ACR7 = 0xac - PT_ACR8 = 0xb0 - PT_ACR9 = 0xb4 - PT_CR_10 = 0x168 - PT_CR_11 = 0x170 - PT_CR_9 = 0x160 - PT_ENDREGS = 0x1af - PT_FPC = 0xd8 - PT_FPR0 = 0xe0 - PT_FPR1 = 0xe8 - PT_FPR10 = 0x130 - PT_FPR11 = 0x138 - PT_FPR12 = 0x140 - PT_FPR13 = 0x148 - PT_FPR14 = 0x150 - PT_FPR15 = 0x158 - PT_FPR2 = 0xf0 - PT_FPR3 = 0xf8 - PT_FPR4 = 0x100 - PT_FPR5 = 0x108 - PT_FPR6 = 0x110 - PT_FPR7 = 0x118 - PT_FPR8 = 0x120 - PT_FPR9 = 0x128 - PT_GPR0 = 0x10 - PT_GPR1 = 0x18 - PT_GPR10 = 0x60 - PT_GPR11 = 0x68 - PT_GPR12 = 0x70 - PT_GPR13 = 0x78 - PT_GPR14 = 0x80 - PT_GPR15 = 0x88 - PT_GPR2 = 0x20 - PT_GPR3 = 0x28 - PT_GPR4 = 0x30 - PT_GPR5 = 0x38 - PT_GPR6 = 0x40 - PT_GPR7 = 0x48 - PT_GPR8 = 0x50 - PT_GPR9 = 0x58 - PT_IEEE_IP = 0x1a8 - PT_LASTOFF = 0x1a8 - PT_ORIGGPR2 = 0xd0 - PT_PSWADDR = 0x8 - PT_PSWMASK = 0x0 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go deleted file mode 100644 index 48984202..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ /dev/null @@ -1,934 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux -// +build sparc64,linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go - -package unix - -import "syscall" - -const ( - ASI_LEON_DFLUSH = 0x11 - ASI_LEON_IFLUSH = 0x10 - ASI_LEON_MMUFLUSH = 0x18 - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x400000 - EFD_NONBLOCK = 0x4000 - EMT_TAGOVF = 0x1 - EPOLL_CLOEXEC = 0x400000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x7 - F_GETLK64 = 0x7 - F_GETOWN = 0x5 - F_RDLCK = 0x1 - F_SETLK = 0x8 - F_SETLK64 = 0x8 - F_SETLKW = 0x9 - F_SETLKW64 = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x400000 - IN_NONBLOCK = 0x4000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x200 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x100 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_RENAME = 0x20 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x100000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x2000 - O_EXCL = 0x800 - O_FSYNC = 0x802000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x4004 - O_NOATIME = 0x200000 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x4000 - O_PATH = 0x1000000 - O_RSYNC = 0x802000 - O_SYNC = 0x802000 - O_TMPFILE = 0x2010000 - O_TRUNC = 0x400 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTRACE_GETFPAREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPREGS64 = 0x19 - PTRACE_GETREGS64 = 0x16 - PTRACE_READDATA = 0x10 - PTRACE_READTEXT = 0x12 - PTRACE_SETFPAREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPREGS64 = 0x1a - PTRACE_SETREGS64 = 0x17 - PTRACE_SPARC_DETACH = 0xb - PTRACE_WRITEDATA = 0x11 - PTRACE_WRITETEXT = 0x13 - PT_FP = 0x48 - PT_G0 = 0x10 - PT_G1 = 0x14 - PT_G2 = 0x18 - PT_G3 = 0x1c - PT_G4 = 0x20 - PT_G5 = 0x24 - PT_G6 = 0x28 - PT_G7 = 0x2c - PT_I0 = 0x30 - PT_I1 = 0x34 - PT_I2 = 0x38 - PT_I3 = 0x3c - PT_I4 = 0x40 - PT_I5 = 0x44 - PT_I6 = 0x48 - PT_I7 = 0x4c - PT_NPC = 0x8 - PT_PC = 0x4 - PT_PSR = 0x0 - PT_REGS_MAGIC = 0x57ac6c00 - PT_TNPC = 0x90 - PT_TPC = 0x88 - PT_TSTATE = 0x80 - PT_V9_FP = 0x70 - PT_V9_G0 = 0x0 - PT_V9_G1 = 0x8 - PT_V9_G2 = 0x10 - PT_V9_G3 = 0x18 - PT_V9_G4 = 0x20 - PT_V9_G5 = 0x28 - PT_V9_G6 = 0x30 - PT_V9_G7 = 0x38 - PT_V9_I0 = 0x40 - PT_V9_I1 = 0x48 - PT_V9_I2 = 0x50 - PT_V9_I3 = 0x58 - PT_V9_I4 = 0x60 - PT_V9_I5 = 0x68 - PT_V9_I6 = 0x70 - PT_V9_I7 = 0x78 - PT_V9_MAGIC = 0x9c - PT_V9_TNPC = 0x90 - PT_V9_TPC = 0x88 - PT_V9_TSTATE = 0x80 - PT_V9_Y = 0x98 - PT_WIM = 0x10 - PT_Y = 0xc - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x6 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPING_OPT_STATS = 0x38 - SCM_TIMESTAMPING_PKTINFO = 0x3c - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 - SF_I0 = 0x20 - SF_I1 = 0x24 - SF_I2 = 0x28 - SF_I3 = 0x2c - SF_I4 = 0x30 - SF_I5 = 0x34 - SF_L0 = 0x0 - SF_L1 = 0x4 - SF_L2 = 0x8 - SF_L3 = 0xc - SF_L4 = 0x10 - SF_L5 = 0x14 - SF_L6 = 0x18 - SF_L7 = 0x1c - SF_PC = 0x3c - SF_RETP = 0x40 - SF_V9_FP = 0x70 - SF_V9_I0 = 0x40 - SF_V9_I1 = 0x48 - SF_V9_I2 = 0x50 - SF_V9_I3 = 0x58 - SF_V9_I4 = 0x60 - SF_V9_I5 = 0x68 - SF_V9_L0 = 0x0 - SF_V9_L1 = 0x8 - SF_V9_L2 = 0x10 - SF_V9_L3 = 0x18 - SF_V9_L4 = 0x20 - SF_V9_L5 = 0x28 - SF_V9_L6 = 0x30 - SF_V9_L7 = 0x38 - SF_V9_PC = 0x78 - SF_V9_RETP = 0x80 - SF_V9_XARG0 = 0x88 - SF_V9_XARG1 = 0x90 - SF_V9_XARG2 = 0x98 - SF_V9_XARG3 = 0xa0 - SF_V9_XARG4 = 0xa8 - SF_V9_XARG5 = 0xb0 - SF_V9_XXARG = 0xb8 - SF_XARG0 = 0x44 - SF_XARG1 = 0x48 - SF_XARG2 = 0x4c - SF_XARG3 = 0x50 - SF_XARG4 = 0x54 - SF_XARG5 = 0x58 - SF_XXARG = 0x5c - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x400000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x4000 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x8000 - SO_ATTACH_BPF = 0x34 - SO_ATTACH_REUSEPORT_CBPF = 0x35 - SO_ATTACH_REUSEPORT_EBPF = 0x36 - SO_BINDTODEVICE = 0xd - SO_BINDTOIFINDEX = 0x41 - SO_BPF_EXTENSIONS = 0x32 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0x400 - SO_BUF_LOCK = 0x51 - SO_BUSY_POLL = 0x30 - SO_BUSY_POLL_BUDGET = 0x49 - SO_CNX_ADVICE = 0x37 - SO_COOKIE = 0x3b - SO_DETACH_REUSEPORT_BPF = 0x47 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x33 - SO_INCOMING_NAPI_ID = 0x3a - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x28 - SO_MARK = 0x22 - SO_MAX_PACING_RATE = 0x31 - SO_MEMINFO = 0x39 - SO_NETNS_COOKIE = 0x50 - SO_NOFCS = 0x27 - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERGROUPS = 0x3d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x48 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVMARK = 0x54 - SO_RCVTIMEO = 0x2000 - SO_RCVTIMEO_NEW = 0x44 - SO_RCVTIMEO_OLD = 0x2000 - SO_RESERVE_MEM = 0x52 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x24 - SO_SECURITY_AUTHENTICATION = 0x5001 - SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 - SO_SELECT_ERR_QUEUE = 0x29 - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x100a - SO_SNDLOWAT = 0x1000 - SO_SNDTIMEO = 0x4000 - SO_SNDTIMEO_NEW = 0x45 - SO_SNDTIMEO_OLD = 0x4000 - SO_TIMESTAMPING = 0x23 - SO_TIMESTAMPING_NEW = 0x43 - SO_TIMESTAMPING_OLD = 0x23 - SO_TIMESTAMPNS = 0x21 - SO_TIMESTAMPNS_NEW = 0x42 - SO_TIMESTAMPNS_OLD = 0x21 - SO_TIMESTAMP_NEW = 0x46 - SO_TXREHASH = 0x53 - SO_TXTIME = 0x3f - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x25 - SO_ZEROCOPY = 0x3e - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x20005407 - TCGETA = 0x40125401 - TCGETS = 0x40245408 - TCGETS2 = 0x402c540c - TCSAFLUSH = 0x2 - TCSBRK = 0x20005405 - TCSBRKP = 0x5425 - TCSETA = 0x80125402 - TCSETAF = 0x80125404 - TCSETAW = 0x80125403 - TCSETS = 0x80245409 - TCSETS2 = 0x802c540d - TCSETSF = 0x8024540b - TCSETSF2 = 0x802c540f - TCSETSW = 0x8024540a - TCSETSW2 = 0x802c540e - TCXONC = 0x20005406 - TFD_CLOEXEC = 0x400000 - TFD_NONBLOCK = 0x4000 - TIOCCBRK = 0x2000747a - TIOCCONS = 0x20007424 - TIOCEXCL = 0x2000740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x40047400 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285443 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x40047483 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40047486 - TIOCGPTPEER = 0x20007489 - TIOCGRS485 = 0x40205441 - TIOCGSERIAL = 0x541e - TIOCGSID = 0x40047485 - TIOCGSOFTCAR = 0x40047464 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x545c - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007484 - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSETD = 0x80047401 - TIOCSIG = 0x80047488 - TIOCSISO7816 = 0xc0285444 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x80047482 - TIOCSPTLCK = 0x80047487 - TIOCSRS485 = 0xc0205442 - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x80047465 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x20005437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 - __TIOCFLUSH = 0x80047410 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EADV = syscall.Errno(0x53) - EAFNOSUPPORT = syscall.Errno(0x2f) - EALREADY = syscall.Errno(0x25) - EBADE = syscall.Errno(0x66) - EBADFD = syscall.Errno(0x5d) - EBADMSG = syscall.Errno(0x4c) - EBADR = syscall.Errno(0x67) - EBADRQC = syscall.Errno(0x6a) - EBADSLT = syscall.Errno(0x6b) - EBFONT = syscall.Errno(0x6d) - ECANCELED = syscall.Errno(0x7f) - ECHRNG = syscall.Errno(0x5e) - ECOMM = syscall.Errno(0x55) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0x4e) - EDEADLOCK = syscall.Errno(0x6c) - EDESTADDRREQ = syscall.Errno(0x27) - EDOTDOT = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EHWPOISON = syscall.Errno(0x87) - EIDRM = syscall.Errno(0x4d) - EILSEQ = syscall.Errno(0x7a) - EINPROGRESS = syscall.Errno(0x24) - EISCONN = syscall.Errno(0x38) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x81) - EKEYREJECTED = syscall.Errno(0x83) - EKEYREVOKED = syscall.Errno(0x82) - EL2HLT = syscall.Errno(0x65) - EL2NSYNC = syscall.Errno(0x5f) - EL3HLT = syscall.Errno(0x60) - EL3RST = syscall.Errno(0x61) - ELIBACC = syscall.Errno(0x72) - ELIBBAD = syscall.Errno(0x70) - ELIBEXEC = syscall.Errno(0x6e) - ELIBMAX = syscall.Errno(0x7b) - ELIBSCN = syscall.Errno(0x7c) - ELNRNG = syscall.Errno(0x62) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x7e) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x57) - ENAMETOOLONG = syscall.Errno(0x3f) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENOANO = syscall.Errno(0x69) - ENOBUFS = syscall.Errno(0x37) - ENOCSI = syscall.Errno(0x64) - ENODATA = syscall.Errno(0x6f) - ENOKEY = syscall.Errno(0x80) - ENOLCK = syscall.Errno(0x4f) - ENOLINK = syscall.Errno(0x52) - ENOMEDIUM = syscall.Errno(0x7d) - ENOMSG = syscall.Errno(0x4b) - ENONET = syscall.Errno(0x50) - ENOPKG = syscall.Errno(0x71) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSR = syscall.Errno(0x4a) - ENOSTR = syscall.Errno(0x48) - ENOSYS = syscall.Errno(0x5a) - ENOTCONN = syscall.Errno(0x39) - ENOTEMPTY = syscall.Errno(0x42) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x85) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTUNIQ = syscall.Errno(0x73) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x5c) - EOWNERDEAD = syscall.Errno(0x84) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPROCLIM = syscall.Errno(0x43) - EPROTO = syscall.Errno(0x56) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EREMCHG = syscall.Errno(0x59) - EREMOTE = syscall.Errno(0x47) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x74) - ERFKILL = syscall.Errno(0x86) - ERREMOTE = syscall.Errno(0x51) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESRMNT = syscall.Errno(0x54) - ESTALE = syscall.Errno(0x46) - ESTRPIPE = syscall.Errno(0x5b) - ETIME = syscall.Errno(0x49) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x63) - EUSERS = syscall.Errno(0x44) - EXFULL = syscall.Errno(0x68) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x17) - SIGLOST = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x17) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1d) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "numerical result out of range"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "cannot assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "transport endpoint is already connected"}, - {57, "ENOTCONN", "transport endpoint is not connected"}, - {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {59, "ETOOMANYREFS", "too many references: cannot splice"}, - {60, "ETIMEDOUT", "connection timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale file handle"}, - {71, "EREMOTE", "object is remote"}, - {72, "ENOSTR", "device not a stream"}, - {73, "ETIME", "timer expired"}, - {74, "ENOSR", "out of streams resources"}, - {75, "ENOMSG", "no message of desired type"}, - {76, "EBADMSG", "bad message"}, - {77, "EIDRM", "identifier removed"}, - {78, "EDEADLK", "resource deadlock avoided"}, - {79, "ENOLCK", "no locks available"}, - {80, "ENONET", "machine is not on the network"}, - {81, "ERREMOTE", "unknown error 81"}, - {82, "ENOLINK", "link has been severed"}, - {83, "EADV", "advertise error"}, - {84, "ESRMNT", "srmount error"}, - {85, "ECOMM", "communication error on send"}, - {86, "EPROTO", "protocol error"}, - {87, "EMULTIHOP", "multihop attempted"}, - {88, "EDOTDOT", "RFS specific error"}, - {89, "EREMCHG", "remote address changed"}, - {90, "ENOSYS", "function not implemented"}, - {91, "ESTRPIPE", "streams pipe error"}, - {92, "EOVERFLOW", "value too large for defined data type"}, - {93, "EBADFD", "file descriptor in bad state"}, - {94, "ECHRNG", "channel number out of range"}, - {95, "EL2NSYNC", "level 2 not synchronized"}, - {96, "EL3HLT", "level 3 halted"}, - {97, "EL3RST", "level 3 reset"}, - {98, "ELNRNG", "link number out of range"}, - {99, "EUNATCH", "protocol driver not attached"}, - {100, "ENOCSI", "no CSI structure available"}, - {101, "EL2HLT", "level 2 halted"}, - {102, "EBADE", "invalid exchange"}, - {103, "EBADR", "invalid request descriptor"}, - {104, "EXFULL", "exchange full"}, - {105, "ENOANO", "no anode"}, - {106, "EBADRQC", "invalid request code"}, - {107, "EBADSLT", "invalid slot"}, - {108, "EDEADLOCK", "file locking deadlock error"}, - {109, "EBFONT", "bad font file format"}, - {110, "ELIBEXEC", "cannot exec a shared library directly"}, - {111, "ENODATA", "no data available"}, - {112, "ELIBBAD", "accessing a corrupted shared library"}, - {113, "ENOPKG", "package not installed"}, - {114, "ELIBACC", "can not access a needed shared library"}, - {115, "ENOTUNIQ", "name not unique on network"}, - {116, "ERESTART", "interrupted system call should be restarted"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {123, "ELIBMAX", "attempting to link in too many shared libraries"}, - {124, "ELIBSCN", ".lib section in a.out corrupted"}, - {125, "ENOMEDIUM", "no medium found"}, - {126, "EMEDIUMTYPE", "wrong medium type"}, - {127, "ECANCELED", "operation canceled"}, - {128, "ENOKEY", "required key not available"}, - {129, "EKEYEXPIRED", "key has expired"}, - {130, "EKEYREVOKED", "key has been revoked"}, - {131, "EKEYREJECTED", "key was rejected by service"}, - {132, "EOWNERDEAD", "owner died"}, - {133, "ENOTRECOVERABLE", "state not recoverable"}, - {134, "ERFKILL", "operation not possible due to RF-kill"}, - {135, "EHWPOISON", "memory page has hardware error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGLOST", "power failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go deleted file mode 100644 index 72f7420d..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ /dev/null @@ -1,1780 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd -// +build 386,netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - EN_SW_CTL_INF = 0x1000 - EN_SW_CTL_PREC = 0x300 - EN_SW_CTL_ROUND = 0xc00 - EN_SW_DATACHAIN = 0x80 - EN_SW_DENORM = 0x2 - EN_SW_INVOP = 0x1 - EN_SW_OVERFLOW = 0x8 - EN_SW_PRECLOSS = 0x20 - EN_SW_UNDERFLOW = 0x10 - EN_SW_ZERODIV = 0x4 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large or too small"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol option not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "connection timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPWR", "power fail/restart"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go deleted file mode 100644 index 8d4eb0c0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ /dev/null @@ -1,1770 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd -// +build amd64,netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large or too small"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol option not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "connection timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPWR", "power fail/restart"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go deleted file mode 100644 index 9eef9749..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ /dev/null @@ -1,1759 +0,0 @@ -// mkerrors.sh -marm -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd -// +build arm,netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -marm _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PRI_IOFLUSH = 0x7c - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x48087446 - TIOCPTSNAME = 0x48087448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large or too small"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol option not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "connection timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPWR", "power fail/restart"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go deleted file mode 100644 index 3b62ba19..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +++ /dev/null @@ -1,1770 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && netbsd -// +build arm64,netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large or too small"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol option not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "connection timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPWR", "power fail/restart"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go deleted file mode 100644 index af20e474..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ /dev/null @@ -1,1906 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && openbsd -// +build 386,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc008427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc100445d - DIOCADDRULE = 0xccc84404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xccc8441a - DIOCCLRIFFLAG = 0xc024445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0d04412 - DIOCCLRSTATUS = 0xc0244416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1084460 - DIOCGETQUEUE = 0xc100445f - DIOCGETQUEUES = 0xc100445e - DIOCGETRULE = 0xccc84407 - DIOCGETRULES = 0xccc84406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0084454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0084419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0244457 - DIOCKILLSRCNODES = 0xc068445b - DIOCKILLSTATES = 0xc0d04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc084444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0844450 - DIOCRADDADDRS = 0xc44c4443 - DIOCRADDTABLES = 0xc44c443d - DIOCRCLRADDRS = 0xc44c4442 - DIOCRCLRASTATS = 0xc44c4448 - DIOCRCLRTABLES = 0xc44c443c - DIOCRCLRTSTATS = 0xc44c4441 - DIOCRDELADDRS = 0xc44c4444 - DIOCRDELTABLES = 0xc44c443e - DIOCRGETADDRS = 0xc44c4446 - DIOCRGETASTATS = 0xc44c4447 - DIOCRGETTABLES = 0xc44c443f - DIOCRGETTSTATS = 0xc44c4440 - DIOCRINADEFINE = 0xc44c444d - DIOCRSETADDRS = 0xc44c4445 - DIOCRSETTFLAGS = 0xc44c444a - DIOCRTSTADDRS = 0xc44c4449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0244459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0244414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc00c4451 - DIOCXCOMMIT = 0xc00c4452 - DIOCXROLLBACK = 0xc00c4453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x1000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x805c693c - SIOCBRDGADDL = 0x805c6949 - SIOCBRDGADDS = 0x805c6941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x805c693d - SIOCBRDGDELS = 0x805c6942 - SIOCBRDGFLUSH = 0x805c6948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc05c693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc05c6942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x805c6955 - SIOCBRDGSIFFLGS = 0x805c693f - SIOCBRDGSIFPRIO = 0x805c6954 - SIOCBRDGSIFPROT = 0x805c694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc024698d - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0386938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x400c745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go deleted file mode 100644 index 6015fcb2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ /dev/null @@ -1,1906 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && openbsd -// +build amd64,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x1000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc028698d - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0406938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go deleted file mode 100644 index 8d44955e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ /dev/null @@ -1,1906 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && openbsd -// +build arm,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc008427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc100445d - DIOCADDRULE = 0xcce04404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcce0441a - DIOCCLRIFFLAG = 0xc024445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0d04412 - DIOCCLRSTATUS = 0xc0244416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1084460 - DIOCGETQUEUE = 0xc100445f - DIOCGETQUEUES = 0xc100445e - DIOCGETRULE = 0xcce04407 - DIOCGETRULES = 0xcce04406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0084454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0084419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0244457 - DIOCKILLSRCNODES = 0xc068445b - DIOCKILLSTATES = 0xc0d04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc44c4443 - DIOCRADDTABLES = 0xc44c443d - DIOCRCLRADDRS = 0xc44c4442 - DIOCRCLRASTATS = 0xc44c4448 - DIOCRCLRTABLES = 0xc44c443c - DIOCRCLRTSTATS = 0xc44c4441 - DIOCRDELADDRS = 0xc44c4444 - DIOCRDELTABLES = 0xc44c443e - DIOCRGETADDRS = 0xc44c4446 - DIOCRGETASTATS = 0xc44c4447 - DIOCRGETTABLES = 0xc44c443f - DIOCRGETTSTATS = 0xc44c4440 - DIOCRINADEFINE = 0xc44c444d - DIOCRSETADDRS = 0xc44c4445 - DIOCRSETTFLAGS = 0xc44c444a - DIOCRTSTADDRS = 0xc44c4449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0244459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0244414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc00c4451 - DIOCXCOMMIT = 0xc00c4452 - DIOCXROLLBACK = 0xc00c4453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x1000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc024698d - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0386938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go deleted file mode 100644 index ae16fe75..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ /dev/null @@ -1,1906 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && openbsd -// +build arm64,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x1000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc028698d - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0406938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go deleted file mode 100644 index 03d90fe3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +++ /dev/null @@ -1,1906 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && openbsd -// +build mips64,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x1000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc028698d - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0406938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGIOT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, - {81920, "SIGSTKSZ", "unknown signal"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go deleted file mode 100644 index 8e2c51b1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && openbsd -// +build ppc64,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x1000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc028698d - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0406938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go deleted file mode 100644 index 13d40303..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +++ /dev/null @@ -1,1904 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && openbsd -// +build riscv64,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RND = 0xc0 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_EAPOL = 0x888e - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MACSEC = 0x88e5 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_WIREGUARD = 0xfb - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x4 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_SOURCE = 0x16 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc028698d - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0406938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACKHOLE_LIMIT = 0x80 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/backend/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go deleted file mode 100644 index 1afee6a0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +++ /dev/null @@ -1,1557 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && solaris -// +build amd64,solaris - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_802 = 0x12 - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_FILE = 0x1 - AF_GOSIP = 0x16 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1a - AF_INET_OFFLOAD = 0x1e - AF_IPX = 0x17 - AF_KEY = 0x1b - AF_LAT = 0xe - AF_LINK = 0x19 - AF_LOCAL = 0x1 - AF_MAX = 0x20 - AF_NBS = 0x7 - AF_NCA = 0x1c - AF_NIT = 0x11 - AF_NS = 0x6 - AF_OSI = 0x13 - AF_OSINET = 0x15 - AF_PACKET = 0x20 - AF_POLICY = 0x1d - AF_PUP = 0x4 - AF_ROUTE = 0x18 - AF_SNA = 0xb - AF_TRILL = 0x1f - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_X25 = 0x14 - ARPHRD_ARCNET = 0x7 - ARPHRD_ATM = 0x10 - ARPHRD_AX25 = 0x3 - ARPHRD_CHAOS = 0x5 - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_FC = 0x12 - ARPHRD_FRAME = 0xf - ARPHRD_HDLC = 0x11 - ARPHRD_IB = 0x20 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IPATM = 0x13 - ARPHRD_METRICOM = 0x17 - ARPHRD_TUNNEL = 0x1f - B0 = 0x0 - B110 = 0x3 - B115200 = 0x12 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B153600 = 0x13 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B230400 = 0x14 - B2400 = 0xb - B300 = 0x7 - B307200 = 0x15 - B38400 = 0xf - B460800 = 0x16 - B4800 = 0xc - B50 = 0x1 - B57600 = 0x10 - B600 = 0x8 - B75 = 0x2 - B76800 = 0x11 - B921600 = 0x17 - B9600 = 0xd - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = -0x3fefbd89 - BIOCGDLTLIST32 = -0x3ff7bd89 - BIOCGETIF = 0x4020426b - BIOCGETLIF = 0x4078426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGRTIMEOUT32 = 0x4008427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = -0x7ffbbd90 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = -0x3ffbbd9a - BIOCSDLT = -0x7ffbbd8a - BIOCSETF = -0x7fefbd99 - BIOCSETF32 = -0x7ff7bd99 - BIOCSETIF = -0x7fdfbd94 - BIOCSETLIF = -0x7f87bd94 - BIOCSHDRCMPLT = -0x7ffbbd8b - BIOCSRTIMEOUT = -0x7fefbd86 - BIOCSRTIMEOUT32 = -0x7ff7bd86 - BIOCSSEESENT = -0x7ffbbd87 - BIOCSTCPF = -0x7fefbd8e - BIOCSUDPF = -0x7fefbd8d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_HIGHRES = 0x4 - CLOCK_LEVEL = 0xa - CLOCK_MONOTONIC = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x5 - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x3 - CLOCK_THREAD_CPUTIME_ID = 0x2 - CLOCK_VIRTUAL = 0x1 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - CSWTCH = 0x1a - DIOC = 0x6400 - DIOCGETB = 0x6402 - DIOCGETC = 0x6401 - DIOCGETP = 0x6408 - DIOCSETE = 0x6403 - DIOCSETP = 0x6409 - DLT_AIRONET_HEADER = 0x78 - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_BACNET_MS_TP = 0xa5 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FDDI = 0xa - DLT_FRELAY = 0x6b - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xa2 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_PPPD = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EMPTY_SET = 0x0 - EMT_CPCOVF = 0x1 - EQUALITY_CHECK = 0x0 - EXTA = 0xe - EXTB = 0xf - FD_CLOEXEC = 0x1 - FD_NFDBITS = 0x40 - FD_SETSIZE = 0x10000 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FIORDCHK = 0x6603 - FLUSHALL = 0x1 - FLUSHDATA = 0x0 - FLUSHO = 0x2000 - F_ALLOCSP = 0xa - F_ALLOCSP64 = 0xa - F_BADFD = 0x2e - F_BLKSIZE = 0x13 - F_BLOCKS = 0x12 - F_CHKFL = 0x8 - F_COMPAT = 0x8 - F_DUP2FD = 0x9 - F_DUP2FD_CLOEXEC = 0x24 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x25 - F_FLOCK = 0x35 - F_FLOCK64 = 0x35 - F_FLOCKW = 0x36 - F_FLOCKW64 = 0x36 - F_FREESP = 0xb - F_FREESP64 = 0xb - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETXFL = 0x2d - F_HASREMOTELOCKS = 0x1a - F_ISSTREAM = 0xd - F_MANDDNY = 0x10 - F_MDACC = 0x20 - F_NODNY = 0x0 - F_NPRIV = 0x10 - F_OFD_GETLK = 0x2f - F_OFD_GETLK64 = 0x2f - F_OFD_SETLK = 0x30 - F_OFD_SETLK64 = 0x30 - F_OFD_SETLKW = 0x31 - F_OFD_SETLKW64 = 0x31 - F_PRIV = 0xf - F_QUOTACTL = 0x11 - F_RDACC = 0x1 - F_RDDNY = 0x1 - F_RDLCK = 0x1 - F_REVOKE = 0x19 - F_RMACC = 0x4 - F_RMDNY = 0x4 - F_RWACC = 0x3 - F_RWDNY = 0x3 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLK64_NBMAND = 0x2a - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETLK_NBMAND = 0x2a - F_SETOWN = 0x18 - F_SHARE = 0x28 - F_SHARE_NBMAND = 0x2b - F_UNLCK = 0x3 - F_UNLKSYS = 0x4 - F_UNSHARE = 0x29 - F_WRACC = 0x2 - F_WRDNY = 0x2 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFF_ADDRCONF = 0x80000 - IFF_ALLMULTI = 0x200 - IFF_ANYCAST = 0x400000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x7f203003b5a - IFF_COS_ENABLED = 0x200000000 - IFF_DEBUG = 0x4 - IFF_DEPRECATED = 0x40000 - IFF_DHCPRUNNING = 0x4000 - IFF_DUPLICATE = 0x4000000000 - IFF_FAILED = 0x10000000 - IFF_FIXEDMTU = 0x1000000000 - IFF_INACTIVE = 0x40000000 - IFF_INTELLIGENT = 0x400 - IFF_IPMP = 0x8000000000 - IFF_IPMP_CANTCHANGE = 0x10000000 - IFF_IPMP_INVALID = 0x1ec200080 - IFF_IPV4 = 0x1000000 - IFF_IPV6 = 0x2000000 - IFF_L3PROTECT = 0x40000000000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x800 - IFF_MULTI_BCAST = 0x1000 - IFF_NOACCEPT = 0x4000000 - IFF_NOARP = 0x80 - IFF_NOFAILOVER = 0x8000000 - IFF_NOLINKLOCAL = 0x20000000000 - IFF_NOLOCAL = 0x20000 - IFF_NONUD = 0x200000 - IFF_NORTEXCH = 0x800000 - IFF_NOTRAILERS = 0x20 - IFF_NOXMIT = 0x10000 - IFF_OFFLINE = 0x80000000 - IFF_POINTOPOINT = 0x10 - IFF_PREFERRED = 0x400000000 - IFF_PRIVATE = 0x8000 - IFF_PROMISC = 0x100 - IFF_ROUTER = 0x100000 - IFF_RUNNING = 0x40 - IFF_STANDBY = 0x20000000 - IFF_TEMPORARY = 0x800000000 - IFF_UNNUMBERED = 0x2000 - IFF_UP = 0x1 - IFF_VIRTUAL = 0x2000000000 - IFF_VRRP = 0x10000000000 - IFF_XRESOLV = 0x100000000 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6TO4 = 0xca - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_IPV4 = 0xc8 - IFT_IPV6 = 0xc9 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_AUTOCONF_MASK = 0xffff0000 - IN_AUTOCONF_NET = 0xa9fe0000 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_CLASSE_NET = 0xffffffff - IN_LOOPBACKNET = 0x7f - IN_PRIVATE12_MASK = 0xfff00000 - IN_PRIVATE12_NET = 0xac100000 - IN_PRIVATE16_MASK = 0xffff0000 - IN_PRIVATE16_NET = 0xc0a80000 - IN_PRIVATE8_MASK = 0xff000000 - IN_PRIVATE8_NET = 0xa000000 - IPPROTO_AH = 0x33 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x4 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_HELLO = 0x3f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_ND = 0x4d - IPPROTO_NONE = 0x3b - IPPROTO_OSPF = 0x59 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_UDP = 0x11 - IPV6_ADD_MEMBERSHIP = 0x9 - IPV6_BOUND_IF = 0x41 - IPV6_CHECKSUM = 0x18 - IPV6_DONTFRAG = 0x21 - IPV6_DROP_MEMBERSHIP = 0xa - IPV6_DSTOPTS = 0xf - IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 - IPV6_FLOWINFO_TCLASS = 0xf00f - IPV6_HOPLIMIT = 0xc - IPV6_HOPOPTS = 0xe - IPV6_JOIN_GROUP = 0x9 - IPV6_LEAVE_GROUP = 0xa - IPV6_MULTICAST_HOPS = 0x7 - IPV6_MULTICAST_IF = 0x6 - IPV6_MULTICAST_LOOP = 0x8 - IPV6_NEXTHOP = 0xd - IPV6_PAD1_OPT = 0x0 - IPV6_PATHMTU = 0x25 - IPV6_PKTINFO = 0xb - IPV6_PREFER_SRC_CGA = 0x20 - IPV6_PREFER_SRC_CGADEFAULT = 0x10 - IPV6_PREFER_SRC_CGAMASK = 0x30 - IPV6_PREFER_SRC_COA = 0x2 - IPV6_PREFER_SRC_DEFAULT = 0x15 - IPV6_PREFER_SRC_HOME = 0x1 - IPV6_PREFER_SRC_MASK = 0x3f - IPV6_PREFER_SRC_MIPDEFAULT = 0x1 - IPV6_PREFER_SRC_MIPMASK = 0x3 - IPV6_PREFER_SRC_NONCGA = 0x10 - IPV6_PREFER_SRC_PUBLIC = 0x4 - IPV6_PREFER_SRC_TMP = 0x8 - IPV6_PREFER_SRC_TMPDEFAULT = 0x4 - IPV6_PREFER_SRC_TMPMASK = 0xc - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x13 - IPV6_RECVHOPOPTS = 0x14 - IPV6_RECVPATHMTU = 0x24 - IPV6_RECVPKTINFO = 0x12 - IPV6_RECVRTHDR = 0x16 - IPV6_RECVRTHDRDSTOPTS = 0x17 - IPV6_RECVTCLASS = 0x19 - IPV6_RTHDR = 0x10 - IPV6_RTHDRDSTOPTS = 0x11 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SEC_OPT = 0x22 - IPV6_SRC_PREFERENCES = 0x23 - IPV6_TCLASS = 0x26 - IPV6_UNICAST_HOPS = 0x5 - IPV6_UNSPEC_SRC = 0x42 - IPV6_USE_MIN_MTU = 0x20 - IPV6_V6ONLY = 0x27 - IP_ADD_MEMBERSHIP = 0x13 - IP_ADD_SOURCE_MEMBERSHIP = 0x17 - IP_BLOCK_SOURCE = 0x15 - IP_BOUND_IF = 0x41 - IP_BROADCAST = 0x106 - IP_BROADCAST_TTL = 0x43 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPINIT_IF = 0x45 - IP_DONTFRAG = 0x1b - IP_DONTROUTE = 0x105 - IP_DROP_MEMBERSHIP = 0x14 - IP_DROP_SOURCE_MEMBERSHIP = 0x18 - IP_HDRINCL = 0x2 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x10 - IP_MULTICAST_LOOP = 0x12 - IP_MULTICAST_TTL = 0x11 - IP_NEXTHOP = 0x19 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x9 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVSLLA = 0xa - IP_RECVTOS = 0xc - IP_RECVTTL = 0xb - IP_RETOPTS = 0x8 - IP_REUSEADDR = 0x104 - IP_SEC_OPT = 0x22 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x16 - IP_UNSPEC_SRC = 0x42 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_ACCESS_DEFAULT = 0x6 - MADV_ACCESS_LWP = 0x7 - MADV_ACCESS_MANY = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NORMAL = 0x0 - MADV_PURGE = 0x9 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80 - MAP_ALIGN = 0x200 - MAP_ANON = 0x100 - MAP_ANONYMOUS = 0x100 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_INITDATA = 0x800 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_TEXT = 0x400 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x29 - MCAST_JOIN_SOURCE_GROUP = 0x2d - MCAST_LEAVE_GROUP = 0x2a - MCAST_LEAVE_SOURCE_GROUP = 0x2e - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CTRUNC = 0x10 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_DUPCTRL = 0x800 - MSG_EOR = 0x8 - MSG_MAXIOVLEN = 0x10 - MSG_NOSIGNAL = 0x200 - MSG_NOTIFICATION = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x20 - MSG_WAITALL = 0x40 - MSG_XPG4_2 = 0x8000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_OLDSYNC = 0x0 - MS_SYNC = 0x4 - M_FLUSH = 0x86 - NAME_MAX = 0xff - NEWDEV = 0x1 - NFDBITS = 0x40 - NL0 = 0x0 - NL1 = 0x100 - NLDLY = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - OLDDEV = 0x0 - ONBITSMAJOR = 0x7 - ONBITSMINOR = 0x8 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENFAIL = -0x1 - OPOST = 0x1 - O_ACCMODE = 0x600003 - O_APPEND = 0x8 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DIRECT = 0x2000000 - O_DIRECTORY = 0x1000000 - O_DSYNC = 0x40 - O_EXCL = 0x400 - O_EXEC = 0x400000 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x4 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NOLINKS = 0x40000 - O_NONBLOCK = 0x80 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x8000 - O_SEARCH = 0x200000 - O_SIOCGIFCONF = -0x3ff796ec - O_SIOCGLIFCONF = -0x3fef9688 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - O_XATTR = 0x4000 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xfffffffffffffffd - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_NUMBITS = 0x9 - RTA_SRC = 0x100 - RTF_BLACKHOLE = 0x1000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INDIRECT = 0x40000 - RTF_KERNEL = 0x80000 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTIRT = 0x10000 - RTF_PRIVATE = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SETSRC = 0x20000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTF_ZONE = 0x100000 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0xf - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_FREEADDR = 0x10 - RTM_GET = 0x4 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_VERSION = 0x3 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_AWARE = 0x1 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_RIGHTS = 0x1010 - SCM_TIMESTAMP = 0x1013 - SCM_UCRED = 0x1012 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIG2STR_MAX = 0x20 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDRT = -0x7fcf8df6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fdb96e0 - SIOCDELMULTI = -0x7fdf96ce - SIOCDELRT = -0x7fcf8df5 - SIOCDXARP = -0x7fff9658 - SIOCGARP = -0x3fdb96e1 - SIOCGDSTINFO = -0x3fff965c - SIOCGENADDR = -0x3fdf96ab - SIOCGENPSTATS = -0x3fdf96c7 - SIOCGETLSGCNT = -0x3fef8deb - SIOCGETNAME = 0x40107334 - SIOCGETPEER = 0x40107335 - SIOCGETPROP = -0x3fff8f44 - SIOCGETSGCNT = -0x3feb8deb - SIOCGETSYNC = -0x3fdf96d3 - SIOCGETVIFCNT = -0x3feb8dec - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fdf96f3 - SIOCGIFBRDADDR = -0x3fdf96e9 - SIOCGIFCONF = -0x3ff796a4 - SIOCGIFDSTADDR = -0x3fdf96f1 - SIOCGIFFLAGS = -0x3fdf96ef - SIOCGIFHWADDR = -0x3fdf9647 - SIOCGIFINDEX = -0x3fdf96a6 - SIOCGIFMEM = -0x3fdf96ed - SIOCGIFMETRIC = -0x3fdf96e5 - SIOCGIFMTU = -0x3fdf96ea - SIOCGIFMUXID = -0x3fdf96a8 - SIOCGIFNETMASK = -0x3fdf96e7 - SIOCGIFNUM = 0x40046957 - SIOCGIP6ADDRPOLICY = -0x3fff965e - SIOCGIPMSFILTER = -0x3ffb964c - SIOCGLIFADDR = -0x3f87968f - SIOCGLIFBINDING = -0x3f879666 - SIOCGLIFBRDADDR = -0x3f879685 - SIOCGLIFCONF = -0x3fef965b - SIOCGLIFDADSTATE = -0x3f879642 - SIOCGLIFDSTADDR = -0x3f87968d - SIOCGLIFFLAGS = -0x3f87968b - SIOCGLIFGROUPINFO = -0x3f4b9663 - SIOCGLIFGROUPNAME = -0x3f879664 - SIOCGLIFHWADDR = -0x3f879640 - SIOCGLIFINDEX = -0x3f87967b - SIOCGLIFLNKINFO = -0x3f879674 - SIOCGLIFMETRIC = -0x3f879681 - SIOCGLIFMTU = -0x3f879686 - SIOCGLIFMUXID = -0x3f87967d - SIOCGLIFNETMASK = -0x3f879683 - SIOCGLIFNUM = -0x3ff3967e - SIOCGLIFSRCOF = -0x3fef964f - SIOCGLIFSUBNET = -0x3f879676 - SIOCGLIFTOKEN = -0x3f879678 - SIOCGLIFUSESRC = -0x3f879651 - SIOCGLIFZONE = -0x3f879656 - SIOCGLOWAT = 0x40047303 - SIOCGMSFILTER = -0x3ffb964e - SIOCGPGRP = 0x40047309 - SIOCGSTAMP = -0x3fef9646 - SIOCGXARP = -0x3fff9659 - SIOCIFDETACH = -0x7fdf96c8 - SIOCILB = -0x3ffb9645 - SIOCLIFADDIF = -0x3f879691 - SIOCLIFDELND = -0x7f879673 - SIOCLIFGETND = -0x3f879672 - SIOCLIFREMOVEIF = -0x7f879692 - SIOCLIFSETND = -0x7f879671 - SIOCLOWER = -0x7fdf96d7 - SIOCSARP = -0x7fdb96e2 - SIOCSCTPGOPT = -0x3fef9653 - SIOCSCTPPEELOFF = -0x3ffb9652 - SIOCSCTPSOPT = -0x7fef9654 - SIOCSENABLESDP = -0x3ffb9649 - SIOCSETPROP = -0x7ffb8f43 - SIOCSETSYNC = -0x7fdf96d4 - SIOCSHIWAT = -0x7ffb8d00 - SIOCSIFADDR = -0x7fdf96f4 - SIOCSIFBRDADDR = -0x7fdf96e8 - SIOCSIFDSTADDR = -0x7fdf96f2 - SIOCSIFFLAGS = -0x7fdf96f0 - SIOCSIFINDEX = -0x7fdf96a5 - SIOCSIFMEM = -0x7fdf96ee - SIOCSIFMETRIC = -0x7fdf96e4 - SIOCSIFMTU = -0x7fdf96eb - SIOCSIFMUXID = -0x7fdf96a7 - SIOCSIFNAME = -0x7fdf96b7 - SIOCSIFNETMASK = -0x7fdf96e6 - SIOCSIP6ADDRPOLICY = -0x7fff965d - SIOCSIPMSFILTER = -0x7ffb964b - SIOCSLGETREQ = -0x3fdf96b9 - SIOCSLIFADDR = -0x7f879690 - SIOCSLIFBRDADDR = -0x7f879684 - SIOCSLIFDSTADDR = -0x7f87968e - SIOCSLIFFLAGS = -0x7f87968c - SIOCSLIFGROUPNAME = -0x7f879665 - SIOCSLIFINDEX = -0x7f87967a - SIOCSLIFLNKINFO = -0x7f879675 - SIOCSLIFMETRIC = -0x7f879680 - SIOCSLIFMTU = -0x7f879687 - SIOCSLIFMUXID = -0x7f87967c - SIOCSLIFNAME = -0x3f87967f - SIOCSLIFNETMASK = -0x7f879682 - SIOCSLIFPREFIX = -0x3f879641 - SIOCSLIFSUBNET = -0x7f879677 - SIOCSLIFTOKEN = -0x7f879679 - SIOCSLIFUSESRC = -0x7f879650 - SIOCSLIFZONE = -0x7f879655 - SIOCSLOWAT = -0x7ffb8cfe - SIOCSLSTAT = -0x7fdf96b8 - SIOCSMSFILTER = -0x7ffb964d - SIOCSPGRP = -0x7ffb8cf8 - SIOCSPROMISC = -0x7ffb96d0 - SIOCSQPTR = -0x3ffb9648 - SIOCSSDSTATS = -0x3fdf96d2 - SIOCSSESTATS = -0x3fdf96d1 - SIOCSXARP = -0x7fff965a - SIOCTMYADDR = -0x3ff79670 - SIOCTMYSITE = -0x3ff7966e - SIOCTONLINK = -0x3ff7966f - SIOCUPPER = -0x7fdf96d8 - SIOCX25RCV = -0x3fdf96c4 - SIOCX25TBL = -0x3fdf96c3 - SIOCX25XMT = -0x3fdf96c5 - SIOCXPROTO = 0x20007337 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NDELAY = 0x200000 - SOCK_NONBLOCK = 0x100000 - SOCK_RAW = 0x4 - SOCK_RDM = 0x5 - SOCK_SEQPACKET = 0x6 - SOCK_STREAM = 0x2 - SOCK_TYPE_MASK = 0xffff - SOL_FILTER = 0xfffc - SOL_PACKET = 0xfffd - SOL_ROUTE = 0xfffe - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ALL = 0x3f - SO_ALLZONES = 0x1014 - SO_ANON_MLP = 0x100a - SO_ATTACH_FILTER = 0x40000001 - SO_BAND = 0x4000 - SO_BROADCAST = 0x20 - SO_COPYOPT = 0x80000 - SO_DEBUG = 0x1 - SO_DELIM = 0x8000 - SO_DETACH_FILTER = 0x40000002 - SO_DGRAM_ERRIND = 0x200 - SO_DOMAIN = 0x100c - SO_DONTLINGER = -0x81 - SO_DONTROUTE = 0x10 - SO_ERROPT = 0x40000 - SO_ERROR = 0x1007 - SO_EXCLBIND = 0x1015 - SO_HIWAT = 0x10 - SO_ISNTTY = 0x800 - SO_ISTTY = 0x400 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOWAT = 0x20 - SO_MAC_EXEMPT = 0x100b - SO_MAC_IMPLICIT = 0x1016 - SO_MAXBLK = 0x100000 - SO_MAXPSZ = 0x8 - SO_MINPSZ = 0x4 - SO_MREADOFF = 0x80 - SO_MREADON = 0x40 - SO_NDELOFF = 0x200 - SO_NDELON = 0x100 - SO_NODELIM = 0x10000 - SO_OOBINLINE = 0x100 - SO_PROTOTYPE = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVPSH = 0x100d - SO_RCVTIMEO = 0x1006 - SO_READOPT = 0x1 - SO_RECVUCRED = 0x400 - SO_REUSEADDR = 0x4 - SO_SECATTR = 0x1011 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STRHOLD = 0x20000 - SO_TAIL = 0x200000 - SO_TIMESTAMP = 0x1013 - SO_TONSTOP = 0x2000 - SO_TOSTOP = 0x1000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_VRRP = 0x1017 - SO_WROFF = 0x2 - S_ENFMT = 0x400 - S_IAMB = 0x1ff - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFDOOR = 0xd000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFNAM = 0x5000 - S_IFPORT = 0xe000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_INSEM = 0x1 - S_INSHD = 0x2 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_ABORT_THRESHOLD = 0x11 - TCP_ANONPRIVBIND = 0x20 - TCP_CONGESTION = 0x25 - TCP_CONN_ABORT_THRESHOLD = 0x13 - TCP_CONN_NOTIFY_THRESHOLD = 0x12 - TCP_CORK = 0x18 - TCP_EXCLBIND = 0x21 - TCP_INIT_CWND = 0x15 - TCP_KEEPALIVE = 0x8 - TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 - TCP_KEEPALIVE_THRESHOLD = 0x16 - TCP_KEEPCNT = 0x23 - TCP_KEEPIDLE = 0x22 - TCP_KEEPINTVL = 0x24 - TCP_LINGER2 = 0x1c - TCP_MAXSEG = 0x2 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOTIFY_THRESHOLD = 0x10 - TCP_RECVDSTADDR = 0x14 - TCP_RTO_INITIAL = 0x19 - TCP_RTO_MAX = 0x1b - TCP_RTO_MIN = 0x1a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETSF = 0x5410 - TCSETSW = 0x540f - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOC = 0x5400 - TIOCCBRK = 0x747a - TIOCCDTR = 0x7478 - TIOCCILOOP = 0x746c - TIOCEXCL = 0x740d - TIOCFLUSH = 0x7410 - TIOCGETC = 0x7412 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x7414 - TIOCGPPS = 0x547d - TIOCGPPSEV = 0x547f - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5469 - TIOCGWINSZ = 0x5468 - TIOCHPCL = 0x7402 - TIOCKBOF = 0x5409 - TIOCKBON = 0x5408 - TIOCLBIC = 0x747e - TIOCLBIS = 0x747f - TIOCLGET = 0x747c - TIOCLSET = 0x747d - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMSET = 0x741a - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x7471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7473 - TIOCREMOTE = 0x741e - TIOCSBRK = 0x747b - TIOCSCTTY = 0x7484 - TIOCSDTR = 0x7479 - TIOCSETC = 0x7411 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIGNAL = 0x741f - TIOCSILOOP = 0x746d - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x7415 - TIOCSPPS = 0x547e - TIOCSSOFTCAR = 0x546a - TIOCSTART = 0x746e - TIOCSTI = 0x7417 - TIOCSTOP = 0x746f - TIOCSWINSZ = 0x5467 - TOSTOP = 0x100 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VCEOF = 0x8 - VCEOL = 0x9 - VDISCARD = 0xd - VDSUSP = 0xb - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VERASE2 = 0x11 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTATUS = 0x10 - VSTOP = 0x9 - VSUSP = 0xa - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WCONTFLG = 0xffff - WCONTINUED = 0x8 - WCOREFLG = 0x80 - WEXITED = 0x1 - WNOHANG = 0x40 - WNOWAIT = 0x80 - WOPTMASK = 0xcf - WRAP = 0x20000 - WSIGMASK = 0x7f - WSTOPFLG = 0x7f - WSTOPPED = 0x4 - WTRAPPED = 0x2 - WUNTRACED = 0x4 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x39) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x2f) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x31) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOCKUNMAPPED = syscall.Errno(0x48) - ELOOP = syscall.Errno(0x5a) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTACTIVE = syscall.Errno(0x49) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTRECOVERABLE = syscall.Errno(0x3b) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x30) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0x3a) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMOTE = syscall.Errno(0x42) - ERESTART = syscall.Errno(0x5b) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCANCEL = syscall.Signal(0x24) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGFREEZE = syscall.Signal(0x22) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x29) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGJVM1 = syscall.Signal(0x27) - SIGJVM2 = syscall.Signal(0x28) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x25) - SIGLWP = syscall.Signal(0x21) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHAW = syscall.Signal(0x23) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWAITING = syscall.Signal(0x20) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) - SIGXRES = syscall.Signal(0x26) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock situation detected/avoided"}, - {46, "ENOLCK", "no record locks available"}, - {47, "ECANCELED", "operation canceled"}, - {48, "ENOTSUP", "operation not supported"}, - {49, "EDQUOT", "disc quota exceeded"}, - {50, "EBADE", "bad exchange descriptor"}, - {51, "EBADR", "bad request descriptor"}, - {52, "EXFULL", "message tables full"}, - {53, "ENOANO", "anode table overflow"}, - {54, "EBADRQC", "bad request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock"}, - {57, "EBFONT", "bad font file format"}, - {58, "EOWNERDEAD", "owner of the lock died"}, - {59, "ENOTRECOVERABLE", "lock is not recoverable"}, - {60, "ENOSTR", "not a stream device"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of stream resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "ELOCKUNMAPPED", "locked lock was unmapped "}, - {73, "ENOTACTIVE", "facility is not active"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "not a data message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"}, - {87, "ELIBEXEC", "can not exec a shared library directly"}, - {88, "EILSEQ", "illegal byte sequence"}, - {89, "ENOSYS", "operation not applicable"}, - {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"}, - {91, "ERESTART", "error 91"}, - {92, "ESTRPIPE", "error 92"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "option not supported by protocol"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "EOPNOTSUPP", "operation not supported on transport endpoint"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection because of reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {143, "ESHUTDOWN", "cannot send after socket shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale NFS file handle"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal Instruction"}, - {5, "SIGTRAP", "trace/Breakpoint Trap"}, - {6, "SIGABRT", "abort"}, - {7, "SIGEMT", "emulation Trap"}, - {8, "SIGFPE", "arithmetic Exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus Error"}, - {11, "SIGSEGV", "segmentation Fault"}, - {12, "SIGSYS", "bad System Call"}, - {13, "SIGPIPE", "broken Pipe"}, - {14, "SIGALRM", "alarm Clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user Signal 1"}, - {17, "SIGUSR2", "user Signal 2"}, - {18, "SIGCHLD", "child Status Changed"}, - {19, "SIGPWR", "power-Fail/Restart"}, - {20, "SIGWINCH", "window Size Change"}, - {21, "SIGURG", "urgent Socket Condition"}, - {22, "SIGIO", "pollable Event"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped (user)"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual Timer Expired"}, - {29, "SIGPROF", "profiling Timer Expired"}, - {30, "SIGXCPU", "cpu Limit Exceeded"}, - {31, "SIGXFSZ", "file Size Limit Exceeded"}, - {32, "SIGWAITING", "no runnable lwp"}, - {33, "SIGLWP", "inter-lwp signal"}, - {34, "SIGFREEZE", "checkpoint Freeze"}, - {35, "SIGTHAW", "checkpoint Thaw"}, - {36, "SIGCANCEL", "thread Cancellation"}, - {37, "SIGLOST", "resource Lost"}, - {38, "SIGXRES", "resource Control Exceeded"}, - {39, "SIGJVM1", "reserved for JVM 1"}, - {40, "SIGJVM2", "reserved for JVM 2"}, - {41, "SIGINFO", "information Request"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/backend/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go deleted file mode 100644 index fc7d0506..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +++ /dev/null @@ -1,860 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -// Hand edited based on zerrors_linux_s390x.go -// TODO: auto-generate. - -package unix - -const ( - BRKINT = 0x0001 - CLOCK_MONOTONIC = 0x1 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x3 - CS8 = 0x0030 - CSIZE = 0x0030 - ECHO = 0x00000008 - ECHONL = 0x00000001 - FD_CLOEXEC = 0x01 - FD_CLOFORK = 0x02 - FNDELAY = 0x04 - F_CLOSFD = 9 - F_CONTROL_CVT = 13 - F_DUPFD = 0 - F_DUPFD2 = 8 - F_GETFD = 1 - F_GETFL = 259 - F_GETLK = 5 - F_GETOWN = 10 - F_OK = 0x0 - F_RDLCK = 1 - F_SETFD = 2 - F_SETFL = 4 - F_SETLK = 6 - F_SETLKW = 7 - F_SETOWN = 11 - F_SETTAG = 12 - F_UNLCK = 3 - F_WRLCK = 2 - FSTYPE_ZFS = 0xe9 //"Z" - FSTYPE_HFS = 0xc8 //"H" - FSTYPE_NFS = 0xd5 //"N" - FSTYPE_TFS = 0xe3 //"T" - FSTYPE_AUTOMOUNT = 0xc1 //"A" - IP6F_MORE_FRAG = 0x0001 - IP6F_OFF_MASK = 0xfff8 - IP6F_RESERVED_MASK = 0x0006 - IP6OPT_JUMBO = 0xc2 - IP6OPT_JUMBO_LEN = 6 - IP6OPT_MUTABLE = 0x20 - IP6OPT_NSAP_ADDR = 0xc3 - IP6OPT_PAD1 = 0x00 - IP6OPT_PADN = 0x01 - IP6OPT_ROUTER_ALERT = 0x05 - IP6OPT_TUNNEL_LIMIT = 0x04 - IP6OPT_TYPE_DISCARD = 0x40 - IP6OPT_TYPE_FORCEICMP = 0x80 - IP6OPT_TYPE_ICMP = 0xc0 - IP6OPT_TYPE_SKIP = 0x00 - IP6_ALERT_AN = 0x0002 - IP6_ALERT_MLD = 0x0000 - IP6_ALERT_RSVP = 0x0001 - IPPORT_RESERVED = 1024 - IPPORT_USERRESERVED = 5000 - IPPROTO_AH = 51 - SOL_AH = 51 - IPPROTO_DSTOPTS = 60 - SOL_DSTOPTS = 60 - IPPROTO_EGP = 8 - SOL_EGP = 8 - IPPROTO_ESP = 50 - SOL_ESP = 50 - IPPROTO_FRAGMENT = 44 - SOL_FRAGMENT = 44 - IPPROTO_GGP = 2 - SOL_GGP = 2 - IPPROTO_HOPOPTS = 0 - SOL_HOPOPTS = 0 - IPPROTO_ICMP = 1 - SOL_ICMP = 1 - IPPROTO_ICMPV6 = 58 - SOL_ICMPV6 = 58 - IPPROTO_IDP = 22 - SOL_IDP = 22 - IPPROTO_IP = 0 - SOL_IP = 0 - IPPROTO_IPV6 = 41 - SOL_IPV6 = 41 - IPPROTO_MAX = 256 - SOL_MAX = 256 - IPPROTO_NONE = 59 - SOL_NONE = 59 - IPPROTO_PUP = 12 - SOL_PUP = 12 - IPPROTO_RAW = 255 - SOL_RAW = 255 - IPPROTO_ROUTING = 43 - SOL_ROUTING = 43 - IPPROTO_TCP = 6 - SOL_TCP = 6 - IPPROTO_UDP = 17 - SOL_UDP = 17 - IPV6_ADDR_PREFERENCES = 32 - IPV6_CHECKSUM = 19 - IPV6_DONTFRAG = 29 - IPV6_DSTOPTS = 23 - IPV6_HOPLIMIT = 11 - IPV6_HOPOPTS = 22 - IPV6_JOIN_GROUP = 5 - IPV6_LEAVE_GROUP = 6 - IPV6_MULTICAST_HOPS = 9 - IPV6_MULTICAST_IF = 7 - IPV6_MULTICAST_LOOP = 4 - IPV6_NEXTHOP = 20 - IPV6_PATHMTU = 12 - IPV6_PKTINFO = 13 - IPV6_PREFER_SRC_CGA = 0x10 - IPV6_PREFER_SRC_COA = 0x02 - IPV6_PREFER_SRC_HOME = 0x01 - IPV6_PREFER_SRC_NONCGA = 0x20 - IPV6_PREFER_SRC_PUBLIC = 0x08 - IPV6_PREFER_SRC_TMP = 0x04 - IPV6_RECVDSTOPTS = 28 - IPV6_RECVHOPLIMIT = 14 - IPV6_RECVHOPOPTS = 26 - IPV6_RECVPATHMTU = 16 - IPV6_RECVPKTINFO = 15 - IPV6_RECVRTHDR = 25 - IPV6_RECVTCLASS = 31 - IPV6_RTHDR = 21 - IPV6_RTHDRDSTOPTS = 24 - IPV6_RTHDR_TYPE_0 = 0 - IPV6_TCLASS = 30 - IPV6_UNICAST_HOPS = 3 - IPV6_USE_MIN_MTU = 18 - IPV6_V6ONLY = 10 - IP_ADD_MEMBERSHIP = 5 - IP_ADD_SOURCE_MEMBERSHIP = 12 - IP_BLOCK_SOURCE = 10 - IP_DEFAULT_MULTICAST_LOOP = 1 - IP_DEFAULT_MULTICAST_TTL = 1 - IP_DROP_MEMBERSHIP = 6 - IP_DROP_SOURCE_MEMBERSHIP = 13 - IP_MAX_MEMBERSHIPS = 20 - IP_MULTICAST_IF = 7 - IP_MULTICAST_LOOP = 4 - IP_MULTICAST_TTL = 3 - IP_OPTIONS = 1 - IP_PKTINFO = 101 - IP_RECVPKTINFO = 102 - IP_TOS = 2 - IP_TTL = 3 - IP_UNBLOCK_SOURCE = 11 - ICANON = 0x0010 - ICMP6_FILTER = 0x26 - ICRNL = 0x0002 - IEXTEN = 0x0020 - IGNBRK = 0x0004 - IGNCR = 0x0008 - INLCR = 0x0020 - ISIG = 0x0040 - ISTRIP = 0x0080 - IXON = 0x0200 - IXOFF = 0x0100 - LOCK_SH = 0x1 // Not exist on zOS - LOCK_EX = 0x2 // Not exist on zOS - LOCK_NB = 0x4 // Not exist on zOS - LOCK_UN = 0x8 // Not exist on zOS - POLLIN = 0x0003 - POLLOUT = 0x0004 - POLLPRI = 0x0010 - POLLERR = 0x0020 - POLLHUP = 0x0040 - POLLNVAL = 0x0080 - PROT_READ = 0x1 // mmap - page can be read - PROT_WRITE = 0x2 // page can be written - PROT_NONE = 0x4 // can't be accessed - PROT_EXEC = 0x8 // can be executed - MAP_PRIVATE = 0x1 // changes are private - MAP_SHARED = 0x2 // changes are shared - MAP_FIXED = 0x4 // place exactly - MCAST_JOIN_GROUP = 40 - MCAST_LEAVE_GROUP = 41 - MCAST_JOIN_SOURCE_GROUP = 42 - MCAST_LEAVE_SOURCE_GROUP = 43 - MCAST_BLOCK_SOURCE = 44 - MCAST_UNBLOCK_SOURCE = 45 - MS_SYNC = 0x1 // msync - synchronous writes - MS_ASYNC = 0x2 // asynchronous writes - MS_INVALIDATE = 0x4 // invalidate mappings - MTM_RDONLY = 0x80000000 - MTM_RDWR = 0x40000000 - MTM_UMOUNT = 0x10000000 - MTM_IMMED = 0x08000000 - MTM_FORCE = 0x04000000 - MTM_DRAIN = 0x02000000 - MTM_RESET = 0x01000000 - MTM_SAMEMODE = 0x00100000 - MTM_UNQSEFORCE = 0x00040000 - MTM_NOSUID = 0x00000400 - MTM_SYNCHONLY = 0x00000200 - MTM_REMOUNT = 0x00000100 - MTM_NOSECURITY = 0x00000080 - NFDBITS = 0x20 - O_ACCMODE = 0x03 - O_APPEND = 0x08 - O_ASYNCSIG = 0x0200 - O_CREAT = 0x80 - O_EXCL = 0x40 - O_GETFL = 0x0F - O_LARGEFILE = 0x0400 - O_NONBLOCK = 0x04 - O_RDONLY = 0x02 - O_RDWR = 0x03 - O_SYNC = 0x0100 - O_TRUNC = 0x10 - O_WRONLY = 0x01 - O_NOCTTY = 0x20 - OPOST = 0x0001 - ONLCR = 0x0004 - PARENB = 0x0200 - PARMRK = 0x0400 - QUERYCVT = 3 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 // RUSAGE_THREAD unsupported on z/OS - SEEK_CUR = 1 - SEEK_END = 2 - SEEK_SET = 0 - SETAUTOCVTALL = 5 - SETAUTOCVTON = 2 - SETCVTALL = 4 - SETCVTOFF = 0 - SETCVTON = 1 - AF_APPLETALK = 16 - AF_CCITT = 10 - AF_CHAOS = 5 - AF_DATAKIT = 9 - AF_DLI = 13 - AF_ECMA = 8 - AF_HYLINK = 15 - AF_IMPLINK = 3 - AF_INET = 2 - AF_INET6 = 19 - AF_INTF = 20 - AF_IUCV = 17 - AF_LAT = 14 - AF_LINK = 18 - AF_MAX = 30 - AF_NBS = 7 - AF_NDD = 23 - AF_NETWARE = 22 - AF_NS = 6 - AF_PUP = 4 - AF_RIF = 21 - AF_ROUTE = 20 - AF_SNA = 11 - AF_UNIX = 1 - AF_UNSPEC = 0 - IBMTCP_IMAGE = 1 - MSG_ACK_EXPECTED = 0x10 - MSG_ACK_GEN = 0x40 - MSG_ACK_TIMEOUT = 0x20 - MSG_CONNTERM = 0x80 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOF = 0x8000 - MSG_EOR = 0x8 - MSG_MAXIOVLEN = 16 - MSG_NONBLOCK = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - PRIO_PROCESS = 1 - PRIO_PGRP = 2 - PRIO_USER = 3 - RLIMIT_CPU = 0 - RLIMIT_FSIZE = 1 - RLIMIT_DATA = 2 - RLIMIT_STACK = 3 - RLIMIT_CORE = 4 - RLIMIT_AS = 5 - RLIMIT_NOFILE = 6 - RLIMIT_MEMLIMIT = 7 - RLIM_INFINITY = 2147483647 - SCM_RIGHTS = 0x01 - SF_CLOSE = 0x00000002 - SF_REUSE = 0x00000001 - SHUT_RD = 0 - SHUT_RDWR = 2 - SHUT_WR = 1 - SOCK_CONN_DGRAM = 6 - SOCK_DGRAM = 2 - SOCK_RAW = 3 - SOCK_RDM = 4 - SOCK_SEQPACKET = 5 - SOCK_STREAM = 1 - SOL_SOCKET = 0xffff - SOMAXCONN = 10 - SO_ACCEPTCONN = 0x0002 - SO_ACCEPTECONNABORTED = 0x0006 - SO_ACKNOW = 0x7700 - SO_BROADCAST = 0x0020 - SO_BULKMODE = 0x8000 - SO_CKSUMRECV = 0x0800 - SO_CLOSE = 0x01 - SO_CLUSTERCONNTYPE = 0x00004001 - SO_CLUSTERCONNTYPE_INTERNAL = 8 - SO_CLUSTERCONNTYPE_NOCONN = 0 - SO_CLUSTERCONNTYPE_NONE = 1 - SO_CLUSTERCONNTYPE_SAME_CLUSTER = 2 - SO_CLUSTERCONNTYPE_SAME_IMAGE = 4 - SO_DEBUG = 0x0001 - SO_DONTROUTE = 0x0010 - SO_ERROR = 0x1007 - SO_IGNOREINCOMINGPUSH = 0x1 - SO_IGNORESOURCEVIPA = 0x0002 - SO_KEEPALIVE = 0x0008 - SO_LINGER = 0x0080 - SO_NONBLOCKLOCAL = 0x8001 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x0100 - SO_OPTACK = 0x8004 - SO_OPTMSS = 0x8003 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x0004 - SO_REUSEPORT = 0x0200 - SO_SECINFO = 0x00004002 - SO_SET = 0x0200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TYPE = 0x1008 - SO_UNSET = 0x0400 - SO_USELOOPBACK = 0x0040 - SO_USE_IFBUFS = 0x0400 - S_ISUID = 0x0800 - S_ISGID = 0x0400 - S_ISVTX = 0x0200 - S_IRUSR = 0x0100 - S_IWUSR = 0x0080 - S_IXUSR = 0x0040 - S_IRWXU = 0x01C0 - S_IRGRP = 0x0020 - S_IWGRP = 0x0010 - S_IXGRP = 0x0008 - S_IRWXG = 0x0038 - S_IROTH = 0x0004 - S_IWOTH = 0x0002 - S_IXOTH = 0x0001 - S_IRWXO = 0x0007 - S_IREAD = S_IRUSR - S_IWRITE = S_IWUSR - S_IEXEC = S_IXUSR - S_IFDIR = 0x01000000 - S_IFCHR = 0x02000000 - S_IFREG = 0x03000000 - S_IFFIFO = 0x04000000 - S_IFIFO = 0x04000000 - S_IFLNK = 0x05000000 - S_IFBLK = 0x06000000 - S_IFSOCK = 0x07000000 - S_IFVMEXTL = 0xFE000000 - S_IFVMEXTL_EXEC = 0x00010000 - S_IFVMEXTL_DATA = 0x00020000 - S_IFVMEXTL_MEL = 0x00030000 - S_IFEXTL = 0x00000001 - S_IFPROGCTL = 0x00000002 - S_IFAPFCTL = 0x00000004 - S_IFNOSHARE = 0x00000008 - S_IFSHARELIB = 0x00000010 - S_IFMT = 0xFF000000 - S_IFMST = 0x00FF0000 - TCP_KEEPALIVE = 0x8 - TCP_NODELAY = 0x1 - TCP_INFO = 0xb - TCP_USER_TIMEOUT = 0x1 - TIOCGWINSZ = 0x4008a368 - TIOCSWINSZ = 0x8008a367 - TIOCSBRK = 0x2000a77b - TIOCCBRK = 0x2000a77a - TIOCSTI = 0x8001a772 - TIOCGPGRP = 0x4004a777 // _IOR(167, 119, int) - TCSANOW = 0 - TCSETS = 0 // equivalent to TCSANOW for tcsetattr - TCSADRAIN = 1 - TCSETSW = 1 // equivalent to TCSADRAIN for tcsetattr - TCSAFLUSH = 2 - TCSETSF = 2 // equivalent to TCSAFLUSH for tcsetattr - TCGETS = 3 // not defined in ioctl.h -- zos golang only - TCIFLUSH = 0 - TCOFLUSH = 1 - TCIOFLUSH = 2 - TCOOFF = 0 - TCOON = 1 - TCIOFF = 2 - TCION = 3 - TIOCSPGRP = 0x8004a776 - TIOCNOTTY = 0x2000a771 - TIOCEXCL = 0x2000a70d - TIOCNXCL = 0x2000a70e - TIOCGETD = 0x4004a700 - TIOCSETD = 0x8004a701 - TIOCPKT = 0x8004a770 - TIOCSTOP = 0x2000a76f - TIOCSTART = 0x2000a76e - TIOCUCNTL = 0x8004a766 - TIOCREMOTE = 0x8004a769 - TIOCMGET = 0x4004a76a - TIOCMSET = 0x8004a76d - TIOCMBIC = 0x8004a76b - TIOCMBIS = 0x8004a76c - VINTR = 0 - VQUIT = 1 - VERASE = 2 - VKILL = 3 - VEOF = 4 - VEOL = 5 - VMIN = 6 - VSTART = 7 - VSTOP = 8 - VSUSP = 9 - VTIME = 10 - WCONTINUED = 0x4 - WNOHANG = 0x1 - WUNTRACED = 0x2 - _BPX_SWAP = 1 - _BPX_NONSWAP = 2 - MCL_CURRENT = 1 // for Linux compatibility -- no zos semantics - MCL_FUTURE = 2 // for Linux compatibility -- no zos semantics - MCL_ONFAULT = 3 // for Linux compatibility -- no zos semantics - MADV_NORMAL = 0 // for Linux compatibility -- no zos semantics - MADV_RANDOM = 1 // for Linux compatibility -- no zos semantics - MADV_SEQUENTIAL = 2 // for Linux compatibility -- no zos semantics - MADV_WILLNEED = 3 // for Linux compatibility -- no zos semantics - MADV_REMOVE = 4 // for Linux compatibility -- no zos semantics - MADV_DONTFORK = 5 // for Linux compatibility -- no zos semantics - MADV_DOFORK = 6 // for Linux compatibility -- no zos semantics - MADV_HWPOISON = 7 // for Linux compatibility -- no zos semantics - MADV_MERGEABLE = 8 // for Linux compatibility -- no zos semantics - MADV_UNMERGEABLE = 9 // for Linux compatibility -- no zos semantics - MADV_SOFT_OFFLINE = 10 // for Linux compatibility -- no zos semantics - MADV_HUGEPAGE = 11 // for Linux compatibility -- no zos semantics - MADV_NOHUGEPAGE = 12 // for Linux compatibility -- no zos semantics - MADV_DONTDUMP = 13 // for Linux compatibility -- no zos semantics - MADV_DODUMP = 14 // for Linux compatibility -- no zos semantics - MADV_FREE = 15 // for Linux compatibility -- no zos semantics - MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics - MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics - AT_SYMLINK_NOFOLLOW = 1 // for Unix compatibility -- no zos semantics - AT_FDCWD = 2 // for Unix compatibility -- no zos semantics -) - -const ( - EDOM = Errno(1) - ERANGE = Errno(2) - EACCES = Errno(111) - EAGAIN = Errno(112) - EBADF = Errno(113) - EBUSY = Errno(114) - ECHILD = Errno(115) - EDEADLK = Errno(116) - EEXIST = Errno(117) - EFAULT = Errno(118) - EFBIG = Errno(119) - EINTR = Errno(120) - EINVAL = Errno(121) - EIO = Errno(122) - EISDIR = Errno(123) - EMFILE = Errno(124) - EMLINK = Errno(125) - ENAMETOOLONG = Errno(126) - ENFILE = Errno(127) - ENODEV = Errno(128) - ENOENT = Errno(129) - ENOEXEC = Errno(130) - ENOLCK = Errno(131) - ENOMEM = Errno(132) - ENOSPC = Errno(133) - ENOSYS = Errno(134) - ENOTDIR = Errno(135) - ENOTEMPTY = Errno(136) - ENOTTY = Errno(137) - ENXIO = Errno(138) - EPERM = Errno(139) - EPIPE = Errno(140) - EROFS = Errno(141) - ESPIPE = Errno(142) - ESRCH = Errno(143) - EXDEV = Errno(144) - E2BIG = Errno(145) - ELOOP = Errno(146) - EILSEQ = Errno(147) - ENODATA = Errno(148) - EOVERFLOW = Errno(149) - EMVSNOTUP = Errno(150) - ECMSSTORAGE = Errno(151) - EMVSDYNALC = Errno(151) - EMVSCVAF = Errno(152) - EMVSCATLG = Errno(153) - ECMSINITIAL = Errno(156) - EMVSINITIAL = Errno(156) - ECMSERR = Errno(157) - EMVSERR = Errno(157) - EMVSPARM = Errno(158) - ECMSPFSFILE = Errno(159) - EMVSPFSFILE = Errno(159) - EMVSBADCHAR = Errno(160) - ECMSPFSPERM = Errno(162) - EMVSPFSPERM = Errno(162) - EMVSSAFEXTRERR = Errno(163) - EMVSSAF2ERR = Errno(164) - EMVSTODNOTSET = Errno(165) - EMVSPATHOPTS = Errno(166) - EMVSNORTL = Errno(167) - EMVSEXPIRE = Errno(168) - EMVSPASSWORD = Errno(169) - EMVSWLMERROR = Errno(170) - EMVSCPLERROR = Errno(171) - EMVSARMERROR = Errno(172) - ELENOFORK = Errno(200) - ELEMSGERR = Errno(201) - EFPMASKINV = Errno(202) - EFPMODEINV = Errno(203) - EBUFLEN = Errno(227) - EEXTLINK = Errno(228) - ENODD = Errno(229) - ECMSESMERR = Errno(230) - ECPERR = Errno(231) - ELEMULTITHREAD = Errno(232) - ELEFENCE = Errno(244) - EBADDATA = Errno(245) - EUNKNOWN = Errno(246) - ENOTSUP = Errno(247) - EBADNAME = Errno(248) - ENOTSAFE = Errno(249) - ELEMULTITHREADFORK = Errno(257) - ECUNNOENV = Errno(258) - ECUNNOCONV = Errno(259) - ECUNNOTALIGNED = Errno(260) - ECUNERR = Errno(262) - EIBMBADCALL = Errno(1000) - EIBMBADPARM = Errno(1001) - EIBMSOCKOUTOFRANGE = Errno(1002) - EIBMSOCKINUSE = Errno(1003) - EIBMIUCVERR = Errno(1004) - EOFFLOADboxERROR = Errno(1005) - EOFFLOADboxRESTART = Errno(1006) - EOFFLOADboxDOWN = Errno(1007) - EIBMCONFLICT = Errno(1008) - EIBMCANCELLED = Errno(1009) - EIBMBADTCPNAME = Errno(1011) - ENOTBLK = Errno(1100) - ETXTBSY = Errno(1101) - EWOULDBLOCK = Errno(1102) - EINPROGRESS = Errno(1103) - EALREADY = Errno(1104) - ENOTSOCK = Errno(1105) - EDESTADDRREQ = Errno(1106) - EMSGSIZE = Errno(1107) - EPROTOTYPE = Errno(1108) - ENOPROTOOPT = Errno(1109) - EPROTONOSUPPORT = Errno(1110) - ESOCKTNOSUPPORT = Errno(1111) - EOPNOTSUPP = Errno(1112) - EPFNOSUPPORT = Errno(1113) - EAFNOSUPPORT = Errno(1114) - EADDRINUSE = Errno(1115) - EADDRNOTAVAIL = Errno(1116) - ENETDOWN = Errno(1117) - ENETUNREACH = Errno(1118) - ENETRESET = Errno(1119) - ECONNABORTED = Errno(1120) - ECONNRESET = Errno(1121) - ENOBUFS = Errno(1122) - EISCONN = Errno(1123) - ENOTCONN = Errno(1124) - ESHUTDOWN = Errno(1125) - ETOOMANYREFS = Errno(1126) - ETIMEDOUT = Errno(1127) - ECONNREFUSED = Errno(1128) - EHOSTDOWN = Errno(1129) - EHOSTUNREACH = Errno(1130) - EPROCLIM = Errno(1131) - EUSERS = Errno(1132) - EDQUOT = Errno(1133) - ESTALE = Errno(1134) - EREMOTE = Errno(1135) - ENOSTR = Errno(1136) - ETIME = Errno(1137) - ENOSR = Errno(1138) - ENOMSG = Errno(1139) - EBADMSG = Errno(1140) - EIDRM = Errno(1141) - ENONET = Errno(1142) - ERREMOTE = Errno(1143) - ENOLINK = Errno(1144) - EADV = Errno(1145) - ESRMNT = Errno(1146) - ECOMM = Errno(1147) - EPROTO = Errno(1148) - EMULTIHOP = Errno(1149) - EDOTDOT = Errno(1150) - EREMCHG = Errno(1151) - ECANCELED = Errno(1152) - EINTRNODATA = Errno(1159) - ENOREUSE = Errno(1160) - ENOMOVE = Errno(1161) -) - -// Signals -const ( - SIGHUP = Signal(1) - SIGINT = Signal(2) - SIGABRT = Signal(3) - SIGILL = Signal(4) - SIGPOLL = Signal(5) - SIGURG = Signal(6) - SIGSTOP = Signal(7) - SIGFPE = Signal(8) - SIGKILL = Signal(9) - SIGBUS = Signal(10) - SIGSEGV = Signal(11) - SIGSYS = Signal(12) - SIGPIPE = Signal(13) - SIGALRM = Signal(14) - SIGTERM = Signal(15) - SIGUSR1 = Signal(16) - SIGUSR2 = Signal(17) - SIGABND = Signal(18) - SIGCONT = Signal(19) - SIGCHLD = Signal(20) - SIGTTIN = Signal(21) - SIGTTOU = Signal(22) - SIGIO = Signal(23) - SIGQUIT = Signal(24) - SIGTSTP = Signal(25) - SIGTRAP = Signal(26) - SIGIOERR = Signal(27) - SIGWINCH = Signal(28) - SIGXCPU = Signal(29) - SIGXFSZ = Signal(30) - SIGVTALRM = Signal(31) - SIGPROF = Signal(32) - SIGDANGER = Signal(33) - SIGTHSTOP = Signal(34) - SIGTHCONT = Signal(35) - SIGTRACE = Signal(37) - SIGDCE = Signal(38) - SIGDUMP = Signal(39) -) - -// Error table -var errorList = [...]struct { - num Errno - name string - desc string -}{ - {1, "EDC5001I", "A domain error occurred."}, - {2, "EDC5002I", "A range error occurred."}, - {111, "EDC5111I", "Permission denied."}, - {112, "EDC5112I", "Resource temporarily unavailable."}, - {113, "EDC5113I", "Bad file descriptor."}, - {114, "EDC5114I", "Resource busy."}, - {115, "EDC5115I", "No child processes."}, - {116, "EDC5116I", "Resource deadlock avoided."}, - {117, "EDC5117I", "File exists."}, - {118, "EDC5118I", "Incorrect address."}, - {119, "EDC5119I", "File too large."}, - {120, "EDC5120I", "Interrupted function call."}, - {121, "EDC5121I", "Invalid argument."}, - {122, "EDC5122I", "Input/output error."}, - {123, "EDC5123I", "Is a directory."}, - {124, "EDC5124I", "Too many open files."}, - {125, "EDC5125I", "Too many links."}, - {126, "EDC5126I", "Filename too long."}, - {127, "EDC5127I", "Too many open files in system."}, - {128, "EDC5128I", "No such device."}, - {129, "EDC5129I", "No such file or directory."}, - {130, "EDC5130I", "Exec format error."}, - {131, "EDC5131I", "No locks available."}, - {132, "EDC5132I", "Not enough memory."}, - {133, "EDC5133I", "No space left on device."}, - {134, "EDC5134I", "Function not implemented."}, - {135, "EDC5135I", "Not a directory."}, - {136, "EDC5136I", "Directory not empty."}, - {137, "EDC5137I", "Inappropriate I/O control operation."}, - {138, "EDC5138I", "No such device or address."}, - {139, "EDC5139I", "Operation not permitted."}, - {140, "EDC5140I", "Broken pipe."}, - {141, "EDC5141I", "Read-only file system."}, - {142, "EDC5142I", "Invalid seek."}, - {143, "EDC5143I", "No such process."}, - {144, "EDC5144I", "Improper link."}, - {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, - {146, "EDC5146I", "Too many levels of symbolic links."}, - {147, "EDC5147I", "Illegal byte sequence."}, - {148, "", ""}, - {149, "EDC5149I", "Value Overflow Error."}, - {150, "EDC5150I", "UNIX System Services is not active."}, - {151, "EDC5151I", "Dynamic allocation error."}, - {152, "EDC5152I", "Common VTOC access facility (CVAF) error."}, - {153, "EDC5153I", "Catalog obtain error."}, - {156, "EDC5156I", "Process initialization error."}, - {157, "EDC5157I", "An internal error has occurred."}, - {158, "EDC5158I", "Bad parameters were passed to the service."}, - {159, "EDC5159I", "The Physical File System encountered a permanent file error."}, - {160, "EDC5160I", "Bad character in environment variable name."}, - {162, "EDC5162I", "The Physical File System encountered a system error."}, - {163, "EDC5163I", "SAF/RACF extract error."}, - {164, "EDC5164I", "SAF/RACF error."}, - {165, "EDC5165I", "System TOD clock not set."}, - {166, "EDC5166I", "Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement."}, - {167, "EDC5167I", "Access to the UNIX System Services version of the C RTL is denied."}, - {168, "EDC5168I", "Password has expired."}, - {169, "EDC5169I", "Password is invalid."}, - {170, "EDC5170I", "An error was encountered with WLM."}, - {171, "EDC5171I", "An error was encountered with CPL."}, - {172, "EDC5172I", "An error was encountered with Application Response Measurement (ARM) component."}, - {200, "EDC5200I", "The application contains a Language Environment member language that cannot tolerate a fork()."}, - {201, "EDC5201I", "The Language Environment message file was not found in the hierarchical file system."}, - {202, "EDC5202E", "DLL facilities are not supported under SPC environment."}, - {203, "EDC5203E", "DLL facilities are not supported under POSIX environment."}, - {227, "EDC5227I", "Buffer is not long enough to contain a path definition"}, - {228, "EDC5228I", "The file referred to is an external link"}, - {229, "EDC5229I", "No path definition for ddname in effect"}, - {230, "EDC5230I", "ESM error."}, - {231, "EDC5231I", "CP or the external security manager had an error"}, - {232, "EDC5232I", "The function failed because it was invoked from a multithread environment."}, - {244, "EDC5244I", "The program, module or DLL is not supported in this environment."}, - {245, "EDC5245I", "Data is not valid."}, - {246, "EDC5246I", "Unknown system state."}, - {247, "EDC5247I", "Operation not supported."}, - {248, "EDC5248I", "The object name specified is not correct."}, - {249, "EDC5249I", "The function is not allowed."}, - {257, "EDC5257I", "Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called."}, - {258, "EDC5258I", "A CUN_RS_NO_UNI_ENV error was issued by Unicode Services."}, - {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, - {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, - {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, - {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, - {1001, "EDC8001I", "An error was found in the IUCV header."}, - {1002, "EDC8002I", "A socket descriptor is out of range."}, - {1003, "EDC8003I", "A socket descriptor is in use."}, - {1004, "EDC8004I", "Request failed because of an IUCV error."}, - {1005, "EDC8005I", "Offload box error."}, - {1006, "EDC8006I", "Offload box restarted."}, - {1007, "EDC8007I", "Offload box down."}, - {1008, "EDC8008I", "Already a conflicting call outstanding on socket."}, - {1009, "EDC8009I", "Request cancelled using a SOCKcallCANCEL request."}, - {1011, "EDC8011I", "A name of a PFS was specified that either is not configured or is not a Sockets PFS."}, - {1100, "EDC8100I", "Block device required."}, - {1101, "EDC8101I", "Text file busy."}, - {1102, "EDC8102I", "Operation would block."}, - {1103, "EDC8103I", "Operation now in progress."}, - {1104, "EDC8104I", "Connection already in progress."}, - {1105, "EDC8105I", "Socket operation on non-socket."}, - {1106, "EDC8106I", "Destination address required."}, - {1107, "EDC8107I", "Message too long."}, - {1108, "EDC8108I", "Protocol wrong type for socket."}, - {1109, "EDC8109I", "Protocol not available."}, - {1110, "EDC8110I", "Protocol not supported."}, - {1111, "EDC8111I", "Socket type not supported."}, - {1112, "EDC8112I", "Operation not supported on socket."}, - {1113, "EDC8113I", "Protocol family not supported."}, - {1114, "EDC8114I", "Address family not supported."}, - {1115, "EDC8115I", "Address already in use."}, - {1116, "EDC8116I", "Address not available."}, - {1117, "EDC8117I", "Network is down."}, - {1118, "EDC8118I", "Network is unreachable."}, - {1119, "EDC8119I", "Network dropped connection on reset."}, - {1120, "EDC8120I", "Connection ended abnormally."}, - {1121, "EDC8121I", "Connection reset."}, - {1122, "EDC8122I", "No buffer space available."}, - {1123, "EDC8123I", "Socket already connected."}, - {1124, "EDC8124I", "Socket not connected."}, - {1125, "EDC8125I", "Can't send after socket shutdown."}, - {1126, "EDC8126I", "Too many references; can't splice."}, - {1127, "EDC8127I", "Connection timed out."}, - {1128, "EDC8128I", "Connection refused."}, - {1129, "EDC8129I", "Host is not available."}, - {1130, "EDC8130I", "Host cannot be reached."}, - {1131, "EDC8131I", "Too many processes."}, - {1132, "EDC8132I", "Too many users."}, - {1133, "EDC8133I", "Disk quota exceeded."}, - {1134, "EDC8134I", "Stale file handle."}, - {1135, "", ""}, - {1136, "EDC8136I", "File is not a STREAM."}, - {1137, "EDC8137I", "STREAMS ioctl() timeout."}, - {1138, "EDC8138I", "No STREAMS resources."}, - {1139, "EDC8139I", "The message identified by set_id and msg_id is not in the message catalog."}, - {1140, "EDC8140I", "Bad message."}, - {1141, "EDC8141I", "Identifier removed."}, - {1142, "", ""}, - {1143, "", ""}, - {1144, "EDC8144I", "The link has been severed."}, - {1145, "", ""}, - {1146, "", ""}, - {1147, "", ""}, - {1148, "EDC8148I", "Protocol error."}, - {1149, "EDC8149I", "Multihop not allowed."}, - {1150, "", ""}, - {1151, "", ""}, - {1152, "EDC8152I", "The asynchronous I/O request has been canceled."}, - {1159, "EDC8159I", "Function call was interrupted before any data was received."}, - {1160, "EDC8160I", "Socket reuse is not supported."}, - {1161, "EDC8161I", "The file system cannot currently be moved."}, -} - -// Signal table -var signalList = [...]struct { - num Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGABT", "aborted"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGPOLL", "pollable event"}, - {6, "SIGURG", "urgent I/O condition"}, - {7, "SIGSTOP", "stop process"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad argument to routine"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGABND", "abend"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGQUIT", "quit"}, - {25, "SIGTSTP", "stopped"}, - {26, "SIGTRAP", "trace/breakpoint trap"}, - {27, "SIGIOER", "I/O error"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGXCPU", "CPU time limit exceeded"}, - {30, "SIGXFSZ", "file size limit exceeded"}, - {31, "SIGVTALRM", "virtual timer expired"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "danger"}, - {34, "SIGTHSTOP", "stop thread"}, - {35, "SIGTHCONT", "continue thread"}, - {37, "SIGTRACE", "trace"}, - {38, "", "DCE"}, - {39, "SIGDUMP", "dump"}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/backend/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go deleted file mode 100644 index 97f20ca2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +++ /dev/null @@ -1,42 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. - -//go:build linux && (arm || arm64) -// +build linux -// +build arm arm64 - -package unix - -import "unsafe" - -// PtraceRegsArm is the registers used by arm binaries. -type PtraceRegsArm struct { - Uregs [18]uint32 -} - -// PtraceGetRegsArm fetches the registers used by arm binaries. -func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsArm sets the registers used by arm binaries. -func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsArm64 is the registers used by arm64 binaries. -type PtraceRegsArm64 struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -// PtraceGetRegsArm64 fetches the registers used by arm64 binaries. -func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsArm64 sets the registers used by arm64 binaries. -func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/backend/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go deleted file mode 100644 index 834d2856..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +++ /dev/null @@ -1,17 +0,0 @@ -// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. - -package unix - -import "unsafe" - -// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. -func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { - iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} - return ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) -} - -// PtraceSetRegSetArm64 sets the registers used by arm64 binaries. -func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { - iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} - return ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/backend/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go deleted file mode 100644 index 0b5f7943..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. - -//go:build linux && (mips || mips64) -// +build linux -// +build mips mips64 - -package unix - -import "unsafe" - -// PtraceRegsMips is the registers used by mips binaries. -type PtraceRegsMips struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips fetches the registers used by mips binaries. -func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips sets the registers used by mips binaries. -func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsMips64 is the registers used by mips64 binaries. -type PtraceRegsMips64 struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips64 fetches the registers used by mips64 binaries. -func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips64 sets the registers used by mips64 binaries. -func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/backend/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go deleted file mode 100644 index 2807f7e6..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. - -//go:build linux && (mipsle || mips64le) -// +build linux -// +build mipsle mips64le - -package unix - -import "unsafe" - -// PtraceRegsMipsle is the registers used by mipsle binaries. -type PtraceRegsMipsle struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMipsle fetches the registers used by mipsle binaries. -func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMipsle sets the registers used by mipsle binaries. -func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsMips64le is the registers used by mips64le binaries. -type PtraceRegsMips64le struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips64le fetches the registers used by mips64le binaries. -func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips64le sets the registers used by mips64le binaries. -func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/backend/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go deleted file mode 100644 index 281ea64e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. - -//go:build linux && (386 || amd64) -// +build linux -// +build 386 amd64 - -package unix - -import "unsafe" - -// PtraceRegs386 is the registers used by 386 binaries. -type PtraceRegs386 struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -// PtraceGetRegs386 fetches the registers used by 386 binaries. -func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegs386 sets the registers used by 386 binaries. -func PtraceSetRegs386(pid int, regs *PtraceRegs386) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsAmd64 is the registers used by amd64 binaries. -type PtraceRegsAmd64 struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries. -func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsAmd64 sets the registers used by amd64 binaries. -func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go deleted file mode 100644 index 9a257219..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ /dev/null @@ -1,1484 +0,0 @@ -// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc -// +build aix,ppc - -package unix - -/* -#include -#include -int utimes(uintptr_t, uintptr_t); -int utimensat(int, uintptr_t, uintptr_t, int); -int getcwd(uintptr_t, size_t); -int accept(int, uintptr_t, uintptr_t); -int getdirent(int, uintptr_t, size_t); -int wait4(int, uintptr_t, int, uintptr_t); -int ioctl(int, int, uintptr_t); -int fcntl(uintptr_t, int, uintptr_t); -int fsync_range(int, int, long long, long long); -int acct(uintptr_t); -int chdir(uintptr_t); -int chroot(uintptr_t); -int close(int); -int dup(int); -void exit(int); -int faccessat(int, uintptr_t, unsigned int, int); -int fchdir(int); -int fchmod(int, unsigned int); -int fchmodat(int, uintptr_t, unsigned int, int); -int fchownat(int, uintptr_t, int, int, int); -int fdatasync(int); -int getpgid(int); -int getpgrp(); -int getpid(); -int getppid(); -int getpriority(int, int); -int getrusage(int, uintptr_t); -int getsid(int); -int kill(int, int); -int syslog(int, uintptr_t, size_t); -int mkdir(int, uintptr_t, unsigned int); -int mkdirat(int, uintptr_t, unsigned int); -int mkfifo(uintptr_t, unsigned int); -int mknod(uintptr_t, unsigned int, int); -int mknodat(int, uintptr_t, unsigned int, int); -int nanosleep(uintptr_t, uintptr_t); -int open64(uintptr_t, int, unsigned int); -int openat(int, uintptr_t, int, unsigned int); -int read(int, uintptr_t, size_t); -int readlink(uintptr_t, uintptr_t, size_t); -int renameat(int, uintptr_t, int, uintptr_t); -int setdomainname(uintptr_t, size_t); -int sethostname(uintptr_t, size_t); -int setpgid(int, int); -int setsid(); -int settimeofday(uintptr_t); -int setuid(int); -int setgid(int); -int setpriority(int, int, int); -int statx(int, uintptr_t, int, int, uintptr_t); -int sync(); -uintptr_t times(uintptr_t); -int umask(int); -int uname(uintptr_t); -int unlink(uintptr_t); -int unlinkat(int, uintptr_t, int); -int ustat(int, uintptr_t); -int write(int, uintptr_t, size_t); -int dup2(int, int); -int posix_fadvise64(int, long long, long long, int); -int fchown(int, int, int); -int fstat(int, uintptr_t); -int fstatat(int, uintptr_t, uintptr_t, int); -int fstatfs(int, uintptr_t); -int ftruncate(int, long long); -int getegid(); -int geteuid(); -int getgid(); -int getuid(); -int lchown(uintptr_t, int, int); -int listen(int, int); -int lstat(uintptr_t, uintptr_t); -int pause(); -int pread64(int, uintptr_t, size_t, long long); -int pwrite64(int, uintptr_t, size_t, long long); -#define c_select select -int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); -int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); -int setregid(int, int); -int setreuid(int, int); -int shutdown(int, int); -long long splice(int, uintptr_t, int, uintptr_t, int, int); -int stat(uintptr_t, uintptr_t); -int statfs(uintptr_t, uintptr_t); -int truncate(uintptr_t, long long); -int bind(int, uintptr_t, uintptr_t); -int connect(int, uintptr_t, uintptr_t); -int getgroups(int, uintptr_t); -int setgroups(int, uintptr_t); -int getsockopt(int, int, int, uintptr_t, uintptr_t); -int setsockopt(int, int, int, uintptr_t, uintptr_t); -int socket(int, int, int); -int socketpair(int, int, int, uintptr_t); -int getpeername(int, uintptr_t, uintptr_t); -int getsockname(int, uintptr_t, uintptr_t); -int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int nrecvmsg(int, uintptr_t, int); -int nsendmsg(int, uintptr_t, int); -int munmap(uintptr_t, uintptr_t); -int madvise(uintptr_t, size_t, int); -int mprotect(uintptr_t, size_t, int); -int mlock(uintptr_t, size_t); -int mlockall(int); -int msync(uintptr_t, size_t, int); -int munlock(uintptr_t, size_t); -int munlockall(); -int pipe(uintptr_t); -int poll(uintptr_t, int, int); -int gettimeofday(uintptr_t, uintptr_t); -int time(uintptr_t); -int utime(uintptr_t, uintptr_t); -unsigned long long getsystemcfg(int); -int umount(uintptr_t); -int getrlimit64(int, uintptr_t); -long long lseek64(int, long long, int); -uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long); - -*/ -import "C" -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getcwd(buf []byte) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirent(fd int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { - r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) - wpid = Pid_t(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) - r = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) - val = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsyncRange(fd int, how int, start int64, length int64) (err error) { - r0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.acct(C.uintptr_t(_p0)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.chdir(C.uintptr_t(_p0)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.chroot(C.uintptr_t(_p0)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - r0, er := C.close(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, er := C.dup(C.int(oldfd)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - C.exit(C.int(code)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - r0, er := C.fchdir(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - r0, er := C.fchmod(C.int(fd), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - r0, er := C.fdatasync(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, er := C.getpgid(C.int(pid)) - pgid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pid int) { - r0, _ := C.getpgrp() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := C.getpid() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := C.getppid() - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, er := C.getpriority(C.int(which), C.int(who)) - prio = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, er := C.getsid(C.int(pid)) - sid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - r0, er := C.kill(C.int(pid), C.int(sig)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(dirfd int, path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - var _p2 int - _p2 = len(buf) - r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(oldpath))) - _p1 := uintptr(unsafe.Pointer(C.CString(newpath))) - r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - r0, er := C.setpgid(C.int(pid), C.int(pgid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, er := C.setsid() - pid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - r0, er := C.setuid(C.int(uid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - r0, er := C.setgid(C.int(uid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - C.sync() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms)))) - ticks = uintptr(r0) - if uintptr(r0) == ^uintptr(0) && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := C.umask(C.int(mask)) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.unlink(C.uintptr_t(_p0)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - r0, er := C.dup2(C.int(oldfd), C.int(newfd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, stat *Stat_t) (err error) { - r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - r0, er := C.ftruncate(C.int(fd), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := C.getegid() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := C.geteuid() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := C.getgid() - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := C.getuid() - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - r0, er := C.listen(C.int(s), C.int(n)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, stat *Stat_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - r0, er := C.pause() - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout)))) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask)))) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - r0, er := C.setregid(C.int(rgid), C.int(egid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - r0, er := C.setreuid(C.int(ruid), C.int(euid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - r0, er := C.shutdown(C.int(fd), C.int(how)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags)) - n = int64(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, statptr *Stat_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) - nn = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, er := C.socket(C.int(domain), C.int(typ), C.int(proto)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen)))) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - r0, er := C.mlockall(C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - r0, er := C.munlockall() - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout)) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tv *Timeval, tzp *Timezone) (err error) { - r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t)))) - tt = Time_t(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsystemcfg(label int) (n uint64) { - r0, _ := C.getsystemcfg(C.int(label)) - n = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func umount(target string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(target))) - r0, er := C.umount(C.uintptr_t(_p0)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence)) - off = int64(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)) - xaddr = uintptr(r0) - if uintptr(r0) == ^uintptr(0) && er != nil { - err = er - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go deleted file mode 100644 index 6de80c20..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +++ /dev/null @@ -1,1443 +0,0 @@ -// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc64 -// +build aix,ppc64 - -package unix - -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getcwd(buf []byte) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirent(fd int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { - r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage))) - wpid = Pid_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - _, e1 := callioctl(fd, req, arg) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, e1 := callioctl_ptr(fd, req, arg) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { - r0, e1 := callfcntl(fd, cmd, uintptr(arg)) - r = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { - _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsyncRange(fd int, how int, start int64, length int64) (err error) { - _, e1 := callfsync_range(fd, how, start, length) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callacct(uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callchdir(uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callchroot(uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, e1 := callclose(fd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, e1 := calldup(oldfd) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - callexit(code) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, e1 := callfchdir(fd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, e1 := callfchmod(fd, mode) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, e1 := callfdatasync(fd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, e1 := callgetpgid(pid) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pid int) { - r0, _ := callgetpgrp() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := callgetpid() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := callgetppid() - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, e1 := callgetpriority(which, who) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, e1 := callgetsid(pid) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - _, e1 := callkill(pid, int(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, e1 := callsetpgid(pid, pgid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, e1 := callsetsid() - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, e1 := callsetuid(uid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - _, e1 := callsetgid(uid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, e1 := callsetpriority(which, who, prio) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - callsync() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, e1 := calltimes(uintptr(unsafe.Pointer(tms))) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := callumask(mask) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, e1 := calluname(uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callunlink(uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, e1 := calldup2(oldfd, newfd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, e1 := callposix_fadvise64(fd, offset, length, advice) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, e1 := callfchown(fd, uid, gid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, stat *Stat_t) (err error) { - _, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, e1 := callftruncate(fd, length) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := callgetegid() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := callgeteuid() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := callgetgid() - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := callgetuid() - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, e1 := calllisten(s, n) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, e1 := callpause() - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, e1 := callsetregid(rgid, egid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, e1 := callsetreuid(ruid, euid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, e1 := callshutdown(fd, how) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, statptr *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e1 := callbind(s, uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e1 := callconnect(s, uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list))) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, e1 := callsetsockopt(s, level, name, uintptr(val), vallen) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, e1 := callsocket(domain, typ, proto) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, e1 := callmunmap(addr, length) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, e1 := callmlockall(flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, e1 := callmunlockall() - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, e1 := callpipe(uintptr(unsafe.Pointer(p))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tv *Timeval, tzp *Timezone) (err error) { - _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, e1 := calltime(uintptr(unsafe.Pointer(t))) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsystemcfg(label int) (n uint64) { - r0, _ := callgetsystemcfg(label) - n = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func umount(target string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, e1 := callumount(uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, e1 := calllseek(fd, offset, whence) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, e1 := callmmap64(addr, length, prot, flags, fd, offset) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go deleted file mode 100644 index c4d50ae5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +++ /dev/null @@ -1,1189 +0,0 @@ -// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc64 && gc -// +build aix,ppc64,gc - -package unix - -import ( - "unsafe" -) - -//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fsync_range fsync_range "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o" - -//go:linkname libc_utimes libc_utimes -//go:linkname libc_utimensat libc_utimensat -//go:linkname libc_getcwd libc_getcwd -//go:linkname libc_accept libc_accept -//go:linkname libc_getdirent libc_getdirent -//go:linkname libc_wait4 libc_wait4 -//go:linkname libc_ioctl libc_ioctl -//go:linkname libc_fcntl libc_fcntl -//go:linkname libc_fsync_range libc_fsync_range -//go:linkname libc_acct libc_acct -//go:linkname libc_chdir libc_chdir -//go:linkname libc_chroot libc_chroot -//go:linkname libc_close libc_close -//go:linkname libc_dup libc_dup -//go:linkname libc_exit libc_exit -//go:linkname libc_faccessat libc_faccessat -//go:linkname libc_fchdir libc_fchdir -//go:linkname libc_fchmod libc_fchmod -//go:linkname libc_fchmodat libc_fchmodat -//go:linkname libc_fchownat libc_fchownat -//go:linkname libc_fdatasync libc_fdatasync -//go:linkname libc_getpgid libc_getpgid -//go:linkname libc_getpgrp libc_getpgrp -//go:linkname libc_getpid libc_getpid -//go:linkname libc_getppid libc_getppid -//go:linkname libc_getpriority libc_getpriority -//go:linkname libc_getrusage libc_getrusage -//go:linkname libc_getsid libc_getsid -//go:linkname libc_kill libc_kill -//go:linkname libc_syslog libc_syslog -//go:linkname libc_mkdir libc_mkdir -//go:linkname libc_mkdirat libc_mkdirat -//go:linkname libc_mkfifo libc_mkfifo -//go:linkname libc_mknod libc_mknod -//go:linkname libc_mknodat libc_mknodat -//go:linkname libc_nanosleep libc_nanosleep -//go:linkname libc_open64 libc_open64 -//go:linkname libc_openat libc_openat -//go:linkname libc_read libc_read -//go:linkname libc_readlink libc_readlink -//go:linkname libc_renameat libc_renameat -//go:linkname libc_setdomainname libc_setdomainname -//go:linkname libc_sethostname libc_sethostname -//go:linkname libc_setpgid libc_setpgid -//go:linkname libc_setsid libc_setsid -//go:linkname libc_settimeofday libc_settimeofday -//go:linkname libc_setuid libc_setuid -//go:linkname libc_setgid libc_setgid -//go:linkname libc_setpriority libc_setpriority -//go:linkname libc_statx libc_statx -//go:linkname libc_sync libc_sync -//go:linkname libc_times libc_times -//go:linkname libc_umask libc_umask -//go:linkname libc_uname libc_uname -//go:linkname libc_unlink libc_unlink -//go:linkname libc_unlinkat libc_unlinkat -//go:linkname libc_ustat libc_ustat -//go:linkname libc_write libc_write -//go:linkname libc_dup2 libc_dup2 -//go:linkname libc_posix_fadvise64 libc_posix_fadvise64 -//go:linkname libc_fchown libc_fchown -//go:linkname libc_fstat libc_fstat -//go:linkname libc_fstatat libc_fstatat -//go:linkname libc_fstatfs libc_fstatfs -//go:linkname libc_ftruncate libc_ftruncate -//go:linkname libc_getegid libc_getegid -//go:linkname libc_geteuid libc_geteuid -//go:linkname libc_getgid libc_getgid -//go:linkname libc_getuid libc_getuid -//go:linkname libc_lchown libc_lchown -//go:linkname libc_listen libc_listen -//go:linkname libc_lstat libc_lstat -//go:linkname libc_pause libc_pause -//go:linkname libc_pread64 libc_pread64 -//go:linkname libc_pwrite64 libc_pwrite64 -//go:linkname libc_select libc_select -//go:linkname libc_pselect libc_pselect -//go:linkname libc_setregid libc_setregid -//go:linkname libc_setreuid libc_setreuid -//go:linkname libc_shutdown libc_shutdown -//go:linkname libc_splice libc_splice -//go:linkname libc_stat libc_stat -//go:linkname libc_statfs libc_statfs -//go:linkname libc_truncate libc_truncate -//go:linkname libc_bind libc_bind -//go:linkname libc_connect libc_connect -//go:linkname libc_getgroups libc_getgroups -//go:linkname libc_setgroups libc_setgroups -//go:linkname libc_getsockopt libc_getsockopt -//go:linkname libc_setsockopt libc_setsockopt -//go:linkname libc_socket libc_socket -//go:linkname libc_socketpair libc_socketpair -//go:linkname libc_getpeername libc_getpeername -//go:linkname libc_getsockname libc_getsockname -//go:linkname libc_recvfrom libc_recvfrom -//go:linkname libc_sendto libc_sendto -//go:linkname libc_nrecvmsg libc_nrecvmsg -//go:linkname libc_nsendmsg libc_nsendmsg -//go:linkname libc_munmap libc_munmap -//go:linkname libc_madvise libc_madvise -//go:linkname libc_mprotect libc_mprotect -//go:linkname libc_mlock libc_mlock -//go:linkname libc_mlockall libc_mlockall -//go:linkname libc_msync libc_msync -//go:linkname libc_munlock libc_munlock -//go:linkname libc_munlockall libc_munlockall -//go:linkname libc_pipe libc_pipe -//go:linkname libc_poll libc_poll -//go:linkname libc_gettimeofday libc_gettimeofday -//go:linkname libc_time libc_time -//go:linkname libc_utime libc_utime -//go:linkname libc_getsystemcfg libc_getsystemcfg -//go:linkname libc_umount libc_umount -//go:linkname libc_getrlimit libc_getrlimit -//go:linkname libc_lseek libc_lseek -//go:linkname libc_mmap64 libc_mmap64 - -type syscallFunc uintptr - -var ( - libc_utimes, - libc_utimensat, - libc_getcwd, - libc_accept, - libc_getdirent, - libc_wait4, - libc_ioctl, - libc_fcntl, - libc_fsync_range, - libc_acct, - libc_chdir, - libc_chroot, - libc_close, - libc_dup, - libc_exit, - libc_faccessat, - libc_fchdir, - libc_fchmod, - libc_fchmodat, - libc_fchownat, - libc_fdatasync, - libc_getpgid, - libc_getpgrp, - libc_getpid, - libc_getppid, - libc_getpriority, - libc_getrusage, - libc_getsid, - libc_kill, - libc_syslog, - libc_mkdir, - libc_mkdirat, - libc_mkfifo, - libc_mknod, - libc_mknodat, - libc_nanosleep, - libc_open64, - libc_openat, - libc_read, - libc_readlink, - libc_renameat, - libc_setdomainname, - libc_sethostname, - libc_setpgid, - libc_setsid, - libc_settimeofday, - libc_setuid, - libc_setgid, - libc_setpriority, - libc_statx, - libc_sync, - libc_times, - libc_umask, - libc_uname, - libc_unlink, - libc_unlinkat, - libc_ustat, - libc_write, - libc_dup2, - libc_posix_fadvise64, - libc_fchown, - libc_fstat, - libc_fstatat, - libc_fstatfs, - libc_ftruncate, - libc_getegid, - libc_geteuid, - libc_getgid, - libc_getuid, - libc_lchown, - libc_listen, - libc_lstat, - libc_pause, - libc_pread64, - libc_pwrite64, - libc_select, - libc_pselect, - libc_setregid, - libc_setreuid, - libc_shutdown, - libc_splice, - libc_stat, - libc_statfs, - libc_truncate, - libc_bind, - libc_connect, - libc_getgroups, - libc_setgroups, - libc_getsockopt, - libc_setsockopt, - libc_socket, - libc_socketpair, - libc_getpeername, - libc_getsockname, - libc_recvfrom, - libc_sendto, - libc_nrecvmsg, - libc_nsendmsg, - libc_munmap, - libc_madvise, - libc_mprotect, - libc_mlock, - libc_mlockall, - libc_msync, - libc_munlock, - libc_munlockall, - libc_pipe, - libc_poll, - libc_gettimeofday, - libc_time, - libc_utime, - libc_getsystemcfg, - libc_umount, - libc_getrlimit, - libc_lseek, - libc_mmap64 syscallFunc -) - -// Implemented in runtime/syscall_aix.go. -func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callclose(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup(oldfd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callexit(code int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchdir(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfdatasync(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgid(pid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgrp() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetppid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsid(pid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetuid(uid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgid(uid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsync() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumask(mask int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calluname(buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetegid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgeteuid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetuid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllisten(s int, n int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpause() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlockall(flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlockall() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpipe(p uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltime(t uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go deleted file mode 100644 index 6903d3b0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +++ /dev/null @@ -1,1070 +0,0 @@ -// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc64 && gccgo -// +build aix,ppc64,gccgo - -package unix - -/* -#include -int utimes(uintptr_t, uintptr_t); -int utimensat(int, uintptr_t, uintptr_t, int); -int getcwd(uintptr_t, size_t); -int accept(int, uintptr_t, uintptr_t); -int getdirent(int, uintptr_t, size_t); -int wait4(int, uintptr_t, int, uintptr_t); -int ioctl(int, int, uintptr_t); -int fcntl(uintptr_t, int, uintptr_t); -int fsync_range(int, int, long long, long long); -int acct(uintptr_t); -int chdir(uintptr_t); -int chroot(uintptr_t); -int close(int); -int dup(int); -void exit(int); -int faccessat(int, uintptr_t, unsigned int, int); -int fchdir(int); -int fchmod(int, unsigned int); -int fchmodat(int, uintptr_t, unsigned int, int); -int fchownat(int, uintptr_t, int, int, int); -int fdatasync(int); -int getpgid(int); -int getpgrp(); -int getpid(); -int getppid(); -int getpriority(int, int); -int getrusage(int, uintptr_t); -int getsid(int); -int kill(int, int); -int syslog(int, uintptr_t, size_t); -int mkdir(int, uintptr_t, unsigned int); -int mkdirat(int, uintptr_t, unsigned int); -int mkfifo(uintptr_t, unsigned int); -int mknod(uintptr_t, unsigned int, int); -int mknodat(int, uintptr_t, unsigned int, int); -int nanosleep(uintptr_t, uintptr_t); -int open64(uintptr_t, int, unsigned int); -int openat(int, uintptr_t, int, unsigned int); -int read(int, uintptr_t, size_t); -int readlink(uintptr_t, uintptr_t, size_t); -int renameat(int, uintptr_t, int, uintptr_t); -int setdomainname(uintptr_t, size_t); -int sethostname(uintptr_t, size_t); -int setpgid(int, int); -int setsid(); -int settimeofday(uintptr_t); -int setuid(int); -int setgid(int); -int setpriority(int, int, int); -int statx(int, uintptr_t, int, int, uintptr_t); -int sync(); -uintptr_t times(uintptr_t); -int umask(int); -int uname(uintptr_t); -int unlink(uintptr_t); -int unlinkat(int, uintptr_t, int); -int ustat(int, uintptr_t); -int write(int, uintptr_t, size_t); -int dup2(int, int); -int posix_fadvise64(int, long long, long long, int); -int fchown(int, int, int); -int fstat(int, uintptr_t); -int fstatat(int, uintptr_t, uintptr_t, int); -int fstatfs(int, uintptr_t); -int ftruncate(int, long long); -int getegid(); -int geteuid(); -int getgid(); -int getuid(); -int lchown(uintptr_t, int, int); -int listen(int, int); -int lstat(uintptr_t, uintptr_t); -int pause(); -int pread64(int, uintptr_t, size_t, long long); -int pwrite64(int, uintptr_t, size_t, long long); -#define c_select select -int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); -int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); -int setregid(int, int); -int setreuid(int, int); -int shutdown(int, int); -long long splice(int, uintptr_t, int, uintptr_t, int, int); -int stat(uintptr_t, uintptr_t); -int statfs(uintptr_t, uintptr_t); -int truncate(uintptr_t, long long); -int bind(int, uintptr_t, uintptr_t); -int connect(int, uintptr_t, uintptr_t); -int getgroups(int, uintptr_t); -int setgroups(int, uintptr_t); -int getsockopt(int, int, int, uintptr_t, uintptr_t); -int setsockopt(int, int, int, uintptr_t, uintptr_t); -int socket(int, int, int); -int socketpair(int, int, int, uintptr_t); -int getpeername(int, uintptr_t, uintptr_t); -int getsockname(int, uintptr_t, uintptr_t); -int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int nrecvmsg(int, uintptr_t, int); -int nsendmsg(int, uintptr_t, int); -int munmap(uintptr_t, uintptr_t); -int madvise(uintptr_t, size_t, int); -int mprotect(uintptr_t, size_t, int); -int mlock(uintptr_t, size_t); -int mlockall(int); -int msync(uintptr_t, size_t, int); -int munlock(uintptr_t, size_t); -int munlockall(); -int pipe(uintptr_t); -int poll(uintptr_t, int, int); -int gettimeofday(uintptr_t, uintptr_t); -int time(uintptr_t); -int utime(uintptr_t, uintptr_t); -unsigned long long getsystemcfg(int); -int umount(uintptr_t); -int getrlimit(int, uintptr_t); -long long lseek(int, long long, int); -uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long); - -*/ -import "C" -import ( - "syscall" - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.acct(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.chdir(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.chroot(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callclose(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.close(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup(oldfd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.dup(C.int(oldfd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callexit(code int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.exit(C.int(code))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchdir(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchdir(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfdatasync(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fdatasync(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgid(pid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpgid(C.int(pid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgrp() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpgrp()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetppid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getppid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpriority(C.int(which), C.int(who))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsid(pid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsid(C.int(pid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.kill(C.int(pid), C.int(sig))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setsid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.settimeofday(C.uintptr_t(tv))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetuid(uid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setuid(C.int(uid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgid(uid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setgid(C.int(uid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsync() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sync()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.times(C.uintptr_t(tms))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumask(mask int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.umask(C.int(mask))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calluname(buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.uname(C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.unlink(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetegid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getegid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgeteuid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.geteuid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getgid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetuid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getuid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllisten(s int, n int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.listen(C.int(s), C.int(n))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpause() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pause()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setregid(C.int(rgid), C.int(egid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.shutdown(C.int(fd), C.int(how))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlockall(flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mlockall(C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlockall() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munlockall()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpipe(p uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pipe(C.uintptr_t(p))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltime(t uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.time(C.uintptr_t(t))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsystemcfg(C.int(label))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.umount(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go deleted file mode 100644 index 4037ccf7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ /dev/null @@ -1,2572 +0,0 @@ -// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build darwin && amd64 -// +build darwin,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fgetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_removexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fremovexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flistxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendfile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmdt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmget_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefile(src string, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_exchangedata_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fclonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) - size = int(r0) - return -} - -var libc_getdtablesize_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(attrBuf) > 0 { - _p1 = unsafe.Pointer(&attrBuf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setattrlist_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setprivexec_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_undelete_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ptrace1Ptr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ptrace_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s deleted file mode 100644 index 4baaed0b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ /dev/null @@ -1,903 +0,0 @@ -// go run mkasm.go darwin amd64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) - -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) - -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) - -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) - -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) - -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) - -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) - -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) - -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) - -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) - -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) - -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) - -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) - -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) - -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) - -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) - -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) - -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) - -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) - -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) - -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) - -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) - -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) - -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) - -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) - -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) - -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) - -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) - -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) - -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) - -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) - -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - -TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) - -GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - -TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) - -GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - -TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) - -GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - -TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) - -GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - -TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) - -GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - -TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) - -GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - -TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) - -GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - -TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) - -GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - -TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) - -GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) - -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) - -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) - -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) - -GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - -TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) - -GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - -TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) - -GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - -TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) - -GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - -TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) - -GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) - -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) - -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) - -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) - -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) - -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) - -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) - -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) - -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) - -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) - -GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - -TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) - -GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) - -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) - -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) - -GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) - -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) - -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) - -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) - -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) - -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) - -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) - -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) - -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) - -GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) - -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) - -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) - -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) - -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) - -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) - -GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) - -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) - -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) - -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) - -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) - -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) - -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) - -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) - -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) - -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) - -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) - -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) - -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) - -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) - -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) - -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) - -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) - -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) - -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) - -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) - -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) - -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) - -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) - -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) - -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) - -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) - -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) - -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) - -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) - -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) - -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) - -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) - -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) - -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) - -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) - -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) - -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) - -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) - -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) - -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) - -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) - -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) - -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) - -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) - -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) - -GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) - -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) - -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) - -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) - -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) - -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) - -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) - -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) - -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) - -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) - -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) - -GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 -DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) - -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) - -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) - -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) - -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) - -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) - -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat64(SB) - -GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) - -TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat64(SB) - -GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) - -TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs64(SB) - -GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) - -TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat64(SB) - -GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) - -TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat64(SB) - -GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) - -TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) - -GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - -TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat64(SB) - -GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) - -TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs64(SB) - -GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go deleted file mode 100644 index 51d6f3fb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ /dev/null @@ -1,2572 +0,0 @@ -// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build darwin && arm64 -// +build darwin,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fgetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_removexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fremovexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flistxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendfile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmdt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmget_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefile(src string, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_exchangedata_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fclonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) - size = int(r0) - return -} - -var libc_getdtablesize_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(attrBuf) > 0 { - _p1 = unsafe.Pointer(&attrBuf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setattrlist_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setprivexec_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_undelete_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ptrace1Ptr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ptrace_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s deleted file mode 100644 index c3b82c03..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ /dev/null @@ -1,903 +0,0 @@ -// go run mkasm.go darwin arm64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) - -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) - -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) - -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) - -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) - -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) - -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) - -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) - -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) - -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) - -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) - -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) - -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) - -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) - -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) - -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) - -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) - -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) - -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) - -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) - -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) - -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) - -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) - -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) - -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) - -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) - -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) - -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) - -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) - -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) - -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) - -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - -TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) - -GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - -TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) - -GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - -TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) - -GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - -TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) - -GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - -TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) - -GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - -TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) - -GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - -TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) - -GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - -TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) - -GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - -TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) - -GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) - -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) - -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) - -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) - -GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - -TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) - -GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - -TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) - -GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - -TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) - -GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - -TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) - -GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) - -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) - -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) - -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) - -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) - -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) - -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) - -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) - -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) - -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) - -GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - -TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) - -GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) - -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) - -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) - -GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) - -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) - -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) - -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) - -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) - -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) - -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) - -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) - -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) - -GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) - -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) - -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) - -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) - -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) - -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) - -GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) - -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) - -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) - -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) - -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) - -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) - -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) - -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) - -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) - -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) - -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) - -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) - -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) - -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) - -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) - -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) - -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) - -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) - -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) - -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) - -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) - -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) - -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) - -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) - -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) - -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) - -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) - -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) - -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) - -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) - -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) - -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) - -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) - -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) - -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) - -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) - -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) - -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) - -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) - -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) - -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) - -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) - -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) - -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) - -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) - -GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) - -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) - -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) - -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) - -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) - -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) - -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) - -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) - -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) - -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) - -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) - -GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 -DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) - -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) - -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) - -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) - -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) - -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) - -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) - -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) - -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) - -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) - -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) - -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) - -GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) - -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) - -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go deleted file mode 100644 index 0eabac7a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ /dev/null @@ -1,1689 +0,0 @@ -// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build dragonfly && amd64 -// +build dragonfly,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(fd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go deleted file mode 100644 index ee313eb0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ /dev/null @@ -1,1909 +0,0 @@ -// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && 386 -// +build freebsd,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go deleted file mode 100644 index 4c986e44..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ /dev/null @@ -1,1909 +0,0 @@ -// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && amd64 -// +build freebsd,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go deleted file mode 100644 index 55521694..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ /dev/null @@ -1,1909 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && arm -// +build freebsd,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go deleted file mode 100644 index 67a226fb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ /dev/null @@ -1,1909 +0,0 @@ -// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && arm64 -// +build freebsd,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go deleted file mode 100644 index f0b9ddaa..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +++ /dev/null @@ -1,1909 +0,0 @@ -// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && riscv64 -// +build freebsd,riscv64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go deleted file mode 100644 index b57c7050..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +++ /dev/null @@ -1,102 +0,0 @@ -// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build illumos && amd64 -// +build illumos,amd64 - -package unix - -import ( - "unsafe" -) - -//go:cgo_import_dynamic libc_readv readv "libc.so" -//go:cgo_import_dynamic libc_preadv preadv "libc.so" -//go:cgo_import_dynamic libc_writev writev "libc.so" -//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" -//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" - -//go:linkname procreadv libc_readv -//go:linkname procpreadv libc_preadv -//go:linkname procwritev libc_writev -//go:linkname procpwritev libc_pwritev -//go:linkname procaccept4 libc_accept4 - -var ( - procreadv, - procpreadv, - procwritev, - procpwritev, - procaccept4 syscallFunc -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readv(fd int, iovs []Iovec) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovs []Iovec, off int64) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovs []Iovec) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux.go deleted file mode 100644 index 722c29a0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ /dev/null @@ -1,2188 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux -// +build linux - -package unix - -import ( - "syscall" - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { - _, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CloseRange(first uint, last uint, flags uint) (err error) { - _, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) { - r0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs)) - fsfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsopen(fsName string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fromPathName) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(toPathName) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func OpenTree(dfd int, fileName string, flags uint) (r int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fileName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - r = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func TimerfdCreate(clockid int, flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func TimerfdGettime(fd int, currValue *ItimerSpec) (err error) { - _, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) { - _, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readv(fd int, iovs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { - var _p0 unsafe.Pointer - if len(localIov) > 0 { - _p0 = unsafe.Pointer(&localIov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 unsafe.Pointer - if len(remoteIov) > 0 { - _p1 = unsafe.Pointer(&remoteIov[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { - var _p0 unsafe.Pointer - if len(localIov) > 0 { - _p0 = unsafe.Pointer(&localIov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 unsafe.Pointer - if len(remoteIov) > 0 { - _p1 = unsafe.Pointer(&remoteIov[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PidfdOpen(pid int, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) { - _, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getitimer(which int, currValue *Itimerval) (err error) { - _, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) { - _, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) { - _, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go deleted file mode 100644 index 07b549cc..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ /dev/null @@ -1,487 +0,0 @@ -// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && 386 -// +build linux,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go deleted file mode 100644 index 5f481bf8..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ /dev/null @@ -1,654 +0,0 @@ -// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && amd64 -// +build linux,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go deleted file mode 100644 index 824cd52c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ /dev/null @@ -1,602 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && arm -// +build linux,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go deleted file mode 100644 index e77aecfe..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ /dev/null @@ -1,553 +0,0 @@ -// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && arm64 -// +build linux,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go deleted file mode 100644 index 806ffd1e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +++ /dev/null @@ -1,487 +0,0 @@ -// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && loong64 -// +build linux,loong64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go deleted file mode 100644 index 961a3afb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ /dev/null @@ -1,654 +0,0 @@ -// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips -// +build linux,mips - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go deleted file mode 100644 index ed05005e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ /dev/null @@ -1,648 +0,0 @@ -// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips64 -// +build linux,mips64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, st *stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go deleted file mode 100644 index d365b718..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ /dev/null @@ -1,637 +0,0 @@ -// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips64le -// +build linux,mips64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, st *stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go deleted file mode 100644 index c3f1b8bb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ /dev/null @@ -1,654 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mipsle -// +build linux,mipsle - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go deleted file mode 100644 index a6574cf9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +++ /dev/null @@ -1,659 +0,0 @@ -// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc -// +build linux,ppc - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go deleted file mode 100644 index f4099026..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ /dev/null @@ -1,705 +0,0 @@ -// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc64 -// +build linux,ppc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go deleted file mode 100644 index 9dfcc299..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ /dev/null @@ -1,705 +0,0 @@ -// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc64le -// +build linux,ppc64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go deleted file mode 100644 index 0b292395..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ /dev/null @@ -1,533 +0,0 @@ -// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && riscv64 -// +build linux,riscv64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go deleted file mode 100644 index 6cde3223..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ /dev/null @@ -1,496 +0,0 @@ -// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && s390x -// +build linux,s390x - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go deleted file mode 100644 index 5253d65b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ /dev/null @@ -1,649 +0,0 @@ -// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && sparc64 -// +build linux,sparc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go deleted file mode 100644 index cdb2af5a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ /dev/null @@ -1,1860 +0,0 @@ -// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && 386 -// +build netbsd,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go deleted file mode 100644 index 9d25f76b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ /dev/null @@ -1,1860 +0,0 @@ -// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && amd64 -// +build netbsd,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go deleted file mode 100644 index d3f80351..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ /dev/null @@ -1,1860 +0,0 @@ -// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && arm -// +build netbsd,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go deleted file mode 100644 index 887188a5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ /dev/null @@ -1,1860 +0,0 @@ -// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && arm64 -// +build netbsd,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go deleted file mode 100644 index 9ab9abf7..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ /dev/null @@ -1,2251 +0,0 @@ -// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && 386 -// +build openbsd,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s deleted file mode 100644 index 3dcacd30..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +++ /dev/null @@ -1,674 +0,0 @@ -// go run mkasm.go openbsd 386 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 -DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 -DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 -DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 -DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 -DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 -DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 -DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 -DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 -DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 -DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 -DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 -DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 -DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 -DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 -DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go deleted file mode 100644 index 915761ea..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ /dev/null @@ -1,2253 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && amd64 -// +build openbsd,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s deleted file mode 100644 index 2763620b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +++ /dev/null @@ -1,674 +0,0 @@ -// go run mkasm.go openbsd amd64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go deleted file mode 100644 index 8e87fdf1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ /dev/null @@ -1,2251 +0,0 @@ -// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && arm -// +build openbsd,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s deleted file mode 100644 index c9223140..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +++ /dev/null @@ -1,674 +0,0 @@ -// go run mkasm.go openbsd arm -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 -DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 -DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 -DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 -DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 -DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 -DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 -DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 -DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 -DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 -DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 -DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 -DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 -DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 -DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 -DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go deleted file mode 100644 index 12a7a216..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ /dev/null @@ -1,2251 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && arm64 -// +build openbsd,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s deleted file mode 100644 index a6bc32c9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +++ /dev/null @@ -1,674 +0,0 @@ -// go run mkasm.go openbsd arm64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go deleted file mode 100644 index b19e8aa0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ /dev/null @@ -1,2251 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && mips64 -// +build openbsd,mips64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s deleted file mode 100644 index b4e7bcea..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +++ /dev/null @@ -1,674 +0,0 @@ -// go run mkasm.go openbsd mips64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go deleted file mode 100644 index fb99594c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +++ /dev/null @@ -1,2251 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && ppc64 -// +build openbsd,ppc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s deleted file mode 100644 index ca3f7660..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +++ /dev/null @@ -1,808 +0,0 @@ -// go run mkasm.go openbsd ppc64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getgroups(SB) - RET -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setgroups(SB) - RET -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_wait4(SB) - RET -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_accept(SB) - RET -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_bind(SB) - RET -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_connect(SB) - RET -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_socket(SB) - RET -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsockopt(SB) - RET -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setsockopt(SB) - RET -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpeername(SB) - RET -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsockname(SB) - RET -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_shutdown(SB) - RET -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_socketpair(SB) - RET -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_recvfrom(SB) - RET -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sendto(SB) - RET -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_recvmsg(SB) - RET -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sendmsg(SB) - RET -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kevent(SB) - RET -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimes(SB) - RET -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_futimes(SB) - RET -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_poll(SB) - RET -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_madvise(SB) - RET -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mlock(SB) - RET -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mlockall(SB) - RET -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mprotect(SB) - RET -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_msync(SB) - RET -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munlock(SB) - RET -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munlockall(SB) - RET -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pipe2(SB) - RET -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getdents(SB) - RET -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getcwd(SB) - RET -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getresuid(SB) - RET -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getresgid(SB) - RET -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ioctl(SB) - RET -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sysctl(SB) - RET -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ppoll(SB) - RET -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_access(SB) - RET -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_adjtime(SB) - RET -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chdir(SB) - RET -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chflags(SB) - RET -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chmod(SB) - RET -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chown(SB) - RET -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chroot(SB) - RET -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_clock_gettime(SB) - RET -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_close(SB) - RET -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup(SB) - RET -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup2(SB) - RET -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup3(SB) - RET -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_exit(SB) - RET -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_faccessat(SB) - RET -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchdir(SB) - RET -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchflags(SB) - RET -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchmod(SB) - RET -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchmodat(SB) - RET -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchown(SB) - RET -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchownat(SB) - RET -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_flock(SB) - RET -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fpathconf(SB) - RET -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstat(SB) - RET -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstatat(SB) - RET -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstatfs(SB) - RET -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fsync(SB) - RET -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ftruncate(SB) - RET -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getegid(SB) - RET -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_geteuid(SB) - RET -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getgid(SB) - RET -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpgid(SB) - RET -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpgrp(SB) - RET -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpid(SB) - RET -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getppid(SB) - RET -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpriority(SB) - RET -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrlimit(SB) - RET -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrtable(SB) - RET -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrusage(SB) - RET -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsid(SB) - RET -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_gettimeofday(SB) - RET -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getuid(SB) - RET -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_issetugid(SB) - RET -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kill(SB) - RET -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kqueue(SB) - RET -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lchown(SB) - RET -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_link(SB) - RET -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_linkat(SB) - RET -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_listen(SB) - RET -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lstat(SB) - RET -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkdir(SB) - RET -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkdirat(SB) - RET -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkfifo(SB) - RET -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkfifoat(SB) - RET -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mknod(SB) - RET -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mknodat(SB) - RET -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_nanosleep(SB) - RET -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_open(SB) - RET -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_openat(SB) - RET -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pathconf(SB) - RET -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pread(SB) - RET -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pwrite(SB) - RET -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_read(SB) - RET -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_readlink(SB) - RET -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_readlinkat(SB) - RET -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_rename(SB) - RET -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_renameat(SB) - RET -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_revoke(SB) - RET -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_rmdir(SB) - RET -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lseek(SB) - RET -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_select(SB) - RET -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setegid(SB) - RET -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_seteuid(SB) - RET -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setgid(SB) - RET -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setlogin(SB) - RET -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setpgid(SB) - RET -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setpriority(SB) - RET -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setregid(SB) - RET -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setreuid(SB) - RET -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setresgid(SB) - RET -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setresuid(SB) - RET -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setrtable(SB) - RET -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setsid(SB) - RET -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_settimeofday(SB) - RET -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setuid(SB) - RET -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_stat(SB) - RET -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_statfs(SB) - RET -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_symlink(SB) - RET -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_symlinkat(SB) - RET -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sync(SB) - RET -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_truncate(SB) - RET -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_umask(SB) - RET -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unlink(SB) - RET -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unlinkat(SB) - RET -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unmount(SB) - RET -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_write(SB) - RET -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mmap(SB) - RET -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munmap(SB) - RET -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimensat(SB) - RET -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go deleted file mode 100644 index 32cbbbc5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +++ /dev/null @@ -1,2251 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && riscv64 -// +build openbsd,riscv64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s deleted file mode 100644 index 477a7d5b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +++ /dev/null @@ -1,674 +0,0 @@ -// go run mkasm.go openbsd riscv64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go deleted file mode 100644 index 609d1c59..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ /dev/null @@ -1,2104 +0,0 @@ -// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build solaris && amd64 -// +build solaris,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -//go:cgo_import_dynamic libc_pipe pipe "libc.so" -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" -//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" -//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" -//go:cgo_import_dynamic libc_utimes utimes "libc.so" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" -//go:cgo_import_dynamic libc_accept accept "libsocket.so" -//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" -//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" -//go:cgo_import_dynamic libc_acct acct "libc.so" -//go:cgo_import_dynamic libc___makedev __makedev "libc.so" -//go:cgo_import_dynamic libc___major __major "libc.so" -//go:cgo_import_dynamic libc___minor __minor "libc.so" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -//go:cgo_import_dynamic libc_poll poll "libc.so" -//go:cgo_import_dynamic libc_access access "libc.so" -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" -//go:cgo_import_dynamic libc_chdir chdir "libc.so" -//go:cgo_import_dynamic libc_chmod chmod "libc.so" -//go:cgo_import_dynamic libc_chown chown "libc.so" -//go:cgo_import_dynamic libc_chroot chroot "libc.so" -//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" -//go:cgo_import_dynamic libc_close close "libc.so" -//go:cgo_import_dynamic libc_creat creat "libc.so" -//go:cgo_import_dynamic libc_dup dup "libc.so" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" -//go:cgo_import_dynamic libc_exit exit "libc.so" -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" -//go:cgo_import_dynamic libc_fchown fchown "libc.so" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" -//go:cgo_import_dynamic libc_flock flock "libc.so" -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" -//go:cgo_import_dynamic libc_fstat fstat "libc.so" -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" -//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" -//go:cgo_import_dynamic libc_getdents getdents "libc.so" -//go:cgo_import_dynamic libc_getgid getgid "libc.so" -//go:cgo_import_dynamic libc_getpid getpid "libc.so" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" -//go:cgo_import_dynamic libc_getegid getegid "libc.so" -//go:cgo_import_dynamic libc_getppid getppid "libc.so" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" -//go:cgo_import_dynamic libc_getsid getsid "libc.so" -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" -//go:cgo_import_dynamic libc_getuid getuid "libc.so" -//go:cgo_import_dynamic libc_kill kill "libc.so" -//go:cgo_import_dynamic libc_lchown lchown "libc.so" -//go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" -//go:cgo_import_dynamic libc_lstat lstat "libc.so" -//go:cgo_import_dynamic libc_madvise madvise "libc.so" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" -//go:cgo_import_dynamic libc_mknod mknod "libc.so" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" -//go:cgo_import_dynamic libc_mlock mlock "libc.so" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" -//go:cgo_import_dynamic libc_msync msync "libc.so" -//go:cgo_import_dynamic libc_munlock munlock "libc.so" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" -//go:cgo_import_dynamic libc_open open "libc.so" -//go:cgo_import_dynamic libc_openat openat "libc.so" -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" -//go:cgo_import_dynamic libc_pause pause "libc.so" -//go:cgo_import_dynamic libc_pread pread "libc.so" -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" -//go:cgo_import_dynamic libc_read read "libc.so" -//go:cgo_import_dynamic libc_readlink readlink "libc.so" -//go:cgo_import_dynamic libc_rename rename "libc.so" -//go:cgo_import_dynamic libc_renameat renameat "libc.so" -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" -//go:cgo_import_dynamic libc_lseek lseek "libc.so" -//go:cgo_import_dynamic libc_select select "libc.so" -//go:cgo_import_dynamic libc_setegid setegid "libc.so" -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" -//go:cgo_import_dynamic libc_setgid setgid "libc.so" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" -//go:cgo_import_dynamic libc_setregid setregid "libc.so" -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" -//go:cgo_import_dynamic libc_setsid setsid "libc.so" -//go:cgo_import_dynamic libc_setuid setuid "libc.so" -//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" -//go:cgo_import_dynamic libc_stat stat "libc.so" -//go:cgo_import_dynamic libc_statvfs statvfs "libc.so" -//go:cgo_import_dynamic libc_symlink symlink "libc.so" -//go:cgo_import_dynamic libc_sync sync "libc.so" -//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" -//go:cgo_import_dynamic libc_times times "libc.so" -//go:cgo_import_dynamic libc_truncate truncate "libc.so" -//go:cgo_import_dynamic libc_fsync fsync "libc.so" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" -//go:cgo_import_dynamic libc_umask umask "libc.so" -//go:cgo_import_dynamic libc_uname uname "libc.so" -//go:cgo_import_dynamic libc_umount umount "libc.so" -//go:cgo_import_dynamic libc_unlink unlink "libc.so" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" -//go:cgo_import_dynamic libc_ustat ustat "libc.so" -//go:cgo_import_dynamic libc_utime utime "libc.so" -//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" -//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" -//go:cgo_import_dynamic libc_mmap mmap "libc.so" -//go:cgo_import_dynamic libc_munmap munmap "libc.so" -//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so" -//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" -//go:cgo_import_dynamic libc_write write "libc.so" -//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" -//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" -//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" -//go:cgo_import_dynamic libc_port_create port_create "libc.so" -//go:cgo_import_dynamic libc_port_associate port_associate "libc.so" -//go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" -//go:cgo_import_dynamic libc_port_get port_get "libc.so" -//go:cgo_import_dynamic libc_port_getn port_getn "libc.so" -//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" -//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" - -//go:linkname procpipe libc_pipe -//go:linkname procpipe2 libc_pipe2 -//go:linkname procgetsockname libc_getsockname -//go:linkname procGetcwd libc_getcwd -//go:linkname procgetgroups libc_getgroups -//go:linkname procsetgroups libc_setgroups -//go:linkname procwait4 libc_wait4 -//go:linkname procgethostname libc_gethostname -//go:linkname procutimes libc_utimes -//go:linkname procutimensat libc_utimensat -//go:linkname procfcntl libc_fcntl -//go:linkname procfutimesat libc_futimesat -//go:linkname procaccept libc_accept -//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg -//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg -//go:linkname procacct libc_acct -//go:linkname proc__makedev libc___makedev -//go:linkname proc__major libc___major -//go:linkname proc__minor libc___minor -//go:linkname procioctl libc_ioctl -//go:linkname procpoll libc_poll -//go:linkname procAccess libc_access -//go:linkname procAdjtime libc_adjtime -//go:linkname procChdir libc_chdir -//go:linkname procChmod libc_chmod -//go:linkname procChown libc_chown -//go:linkname procChroot libc_chroot -//go:linkname procClockGettime libc_clockgettime -//go:linkname procClose libc_close -//go:linkname procCreat libc_creat -//go:linkname procDup libc_dup -//go:linkname procDup2 libc_dup2 -//go:linkname procExit libc_exit -//go:linkname procFaccessat libc_faccessat -//go:linkname procFchdir libc_fchdir -//go:linkname procFchmod libc_fchmod -//go:linkname procFchmodat libc_fchmodat -//go:linkname procFchown libc_fchown -//go:linkname procFchownat libc_fchownat -//go:linkname procFdatasync libc_fdatasync -//go:linkname procFlock libc_flock -//go:linkname procFpathconf libc_fpathconf -//go:linkname procFstat libc_fstat -//go:linkname procFstatat libc_fstatat -//go:linkname procFstatvfs libc_fstatvfs -//go:linkname procGetdents libc_getdents -//go:linkname procGetgid libc_getgid -//go:linkname procGetpid libc_getpid -//go:linkname procGetpgid libc_getpgid -//go:linkname procGetpgrp libc_getpgrp -//go:linkname procGeteuid libc_geteuid -//go:linkname procGetegid libc_getegid -//go:linkname procGetppid libc_getppid -//go:linkname procGetpriority libc_getpriority -//go:linkname procGetrlimit libc_getrlimit -//go:linkname procGetrusage libc_getrusage -//go:linkname procGetsid libc_getsid -//go:linkname procGettimeofday libc_gettimeofday -//go:linkname procGetuid libc_getuid -//go:linkname procKill libc_kill -//go:linkname procLchown libc_lchown -//go:linkname procLink libc_link -//go:linkname proc__xnet_llisten libc___xnet_llisten -//go:linkname procLstat libc_lstat -//go:linkname procMadvise libc_madvise -//go:linkname procMkdir libc_mkdir -//go:linkname procMkdirat libc_mkdirat -//go:linkname procMkfifo libc_mkfifo -//go:linkname procMkfifoat libc_mkfifoat -//go:linkname procMknod libc_mknod -//go:linkname procMknodat libc_mknodat -//go:linkname procMlock libc_mlock -//go:linkname procMlockall libc_mlockall -//go:linkname procMprotect libc_mprotect -//go:linkname procMsync libc_msync -//go:linkname procMunlock libc_munlock -//go:linkname procMunlockall libc_munlockall -//go:linkname procNanosleep libc_nanosleep -//go:linkname procOpen libc_open -//go:linkname procOpenat libc_openat -//go:linkname procPathconf libc_pathconf -//go:linkname procPause libc_pause -//go:linkname procpread libc_pread -//go:linkname procpwrite libc_pwrite -//go:linkname procread libc_read -//go:linkname procReadlink libc_readlink -//go:linkname procRename libc_rename -//go:linkname procRenameat libc_renameat -//go:linkname procRmdir libc_rmdir -//go:linkname proclseek libc_lseek -//go:linkname procSelect libc_select -//go:linkname procSetegid libc_setegid -//go:linkname procSeteuid libc_seteuid -//go:linkname procSetgid libc_setgid -//go:linkname procSethostname libc_sethostname -//go:linkname procSetpgid libc_setpgid -//go:linkname procSetpriority libc_setpriority -//go:linkname procSetregid libc_setregid -//go:linkname procSetreuid libc_setreuid -//go:linkname procSetsid libc_setsid -//go:linkname procSetuid libc_setuid -//go:linkname procshutdown libc_shutdown -//go:linkname procStat libc_stat -//go:linkname procStatvfs libc_statvfs -//go:linkname procSymlink libc_symlink -//go:linkname procSync libc_sync -//go:linkname procSysconf libc_sysconf -//go:linkname procTimes libc_times -//go:linkname procTruncate libc_truncate -//go:linkname procFsync libc_fsync -//go:linkname procFtruncate libc_ftruncate -//go:linkname procUmask libc_umask -//go:linkname procUname libc_uname -//go:linkname procumount libc_umount -//go:linkname procUnlink libc_unlink -//go:linkname procUnlinkat libc_unlinkat -//go:linkname procUstat libc_ustat -//go:linkname procUtime libc_utime -//go:linkname proc__xnet_bind libc___xnet_bind -//go:linkname proc__xnet_connect libc___xnet_connect -//go:linkname procmmap libc_mmap -//go:linkname procmunmap libc_munmap -//go:linkname procsendfile libc_sendfile -//go:linkname proc__xnet_sendto libc___xnet_sendto -//go:linkname proc__xnet_socket libc___xnet_socket -//go:linkname proc__xnet_socketpair libc___xnet_socketpair -//go:linkname procwrite libc_write -//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt -//go:linkname procgetpeername libc_getpeername -//go:linkname procsetsockopt libc_setsockopt -//go:linkname procrecvfrom libc_recvfrom -//go:linkname procport_create libc_port_create -//go:linkname procport_associate libc_port_associate -//go:linkname procport_dissociate libc_port_dissociate -//go:linkname procport_get libc_port_get -//go:linkname procport_getn libc_port_getn -//go:linkname procputmsg libc_putmsg -//go:linkname procgetmsg libc_getmsg - -var ( - procpipe, - procpipe2, - procgetsockname, - procGetcwd, - procgetgroups, - procsetgroups, - procwait4, - procgethostname, - procutimes, - procutimensat, - procfcntl, - procfutimesat, - procaccept, - proc__xnet_recvmsg, - proc__xnet_sendmsg, - procacct, - proc__makedev, - proc__major, - proc__minor, - procioctl, - procpoll, - procAccess, - procAdjtime, - procChdir, - procChmod, - procChown, - procChroot, - procClockGettime, - procClose, - procCreat, - procDup, - procDup2, - procExit, - procFaccessat, - procFchdir, - procFchmod, - procFchmodat, - procFchown, - procFchownat, - procFdatasync, - procFlock, - procFpathconf, - procFstat, - procFstatat, - procFstatvfs, - procGetdents, - procGetgid, - procGetpid, - procGetpgid, - procGetpgrp, - procGeteuid, - procGetegid, - procGetppid, - procGetpriority, - procGetrlimit, - procGetrusage, - procGetsid, - procGettimeofday, - procGetuid, - procKill, - procLchown, - procLink, - proc__xnet_llisten, - procLstat, - procMadvise, - procMkdir, - procMkdirat, - procMkfifo, - procMkfifoat, - procMknod, - procMknodat, - procMlock, - procMlockall, - procMprotect, - procMsync, - procMunlock, - procMunlockall, - procNanosleep, - procOpen, - procOpenat, - procPathconf, - procPause, - procpread, - procpwrite, - procread, - procReadlink, - procRename, - procRenameat, - procRmdir, - proclseek, - procSelect, - procSetegid, - procSeteuid, - procSetgid, - procSethostname, - procSetpgid, - procSetpriority, - procSetregid, - procSetreuid, - procSetsid, - procSetuid, - procshutdown, - procStat, - procStatvfs, - procSymlink, - procSync, - procSysconf, - procTimes, - procTruncate, - procFsync, - procFtruncate, - procUmask, - procUname, - procumount, - procUnlink, - procUnlinkat, - procUstat, - procUtime, - proc__xnet_bind, - proc__xnet_connect, - procmmap, - procmunmap, - procsendfile, - proc__xnet_sendto, - proc__xnet_socket, - proc__xnet_socketpair, - procwrite, - proc__xnet_getsockopt, - procgetpeername, - procsetsockopt, - procrecvfrom, - procport_create, - procport_associate, - procport_dissociate, - procport_get, - procport_getn, - procputmsg, - procgetmsg syscallFunc -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int32(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gethostname(buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) - val = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func acct(path *byte) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __makedev(version int, major uint, minor uint) (val uint64) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0) - val = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __major(version int, dev uint64) (val uint) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) - val = uint(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __minor(version int, dev uint64) (val uint) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) - val = uint(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlRet(fd int, req int, arg uintptr) (ret int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - ret = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - ret = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Creat(path string, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0) - nfd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0) - val = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - pgid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0) - pgid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - sid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0) - val = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs(path string, vfsstat *Statvfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysconf(which int) (n int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0) - n = int64(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_create() (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_dissociate(port int, source int, object uintptr) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/backend/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go deleted file mode 100644 index c3168174..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +++ /dev/null @@ -1,1265 +0,0 @@ -// go run mksyscall.go -tags zos,s390x syscall_zos_s390x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x -// +build zos,s390x - -package unix - -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(SYS___ACCEPT_A, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(SYS___BIND_A, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(SYS___CONNECT_A, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawsyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawsyscall(SYS___GETPEERNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawsyscall(SYS___GETSOCKNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(SYS___RECVFROM_A, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(SYS___SENDTO_A, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(SYS___RECVMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(SYS___SENDMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___ACCESS_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___CHDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___CHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___CHMOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Creat(path string, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(SYS___CREAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := syscall_syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := syscall_syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Errno2() (er2 int) { - uer2, _, _ := syscall_syscall(SYS___ERRNO2, 0, 0, 0) - er2 = int(uer2) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Err2ad() (eadd *int) { - ueadd, _, _ := syscall_syscall(SYS___ERR2AD, 0, 0, 0) - eadd = (*int)(unsafe.Pointer(ueadd)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { - r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - retval = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, stat *Stat_LE_t) (err error) { - _, _, e1 := syscall_syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs(fd int, stat *Statvfs_t) (err error) { - _, _, e1 := syscall_syscall(SYS_FSTATVFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpagesize() (pgsize int) { - r0, _, _ := syscall_syscall(SYS_GETPAGESIZE, 0, 0, 0) - pgsize = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Poll(fds []PollFd, timeout int) (n int, err error) { - var _p0 unsafe.Pointer - if len(fds) > 0 { - _p0 = unsafe.Pointer(&fds[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(SYS_POLL, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := syscall_syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func W_Getmntent(buff *byte, size int) (lastsys int, err error) { - r0, _, e1 := syscall_syscall(SYS_W_GETMNTENT, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) - lastsys = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { - r0, _, e1 := syscall_syscall(SYS___W_GETMNTENT_A, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) - lastsys = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(filesystem) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - var _p3 *byte - _p3, err = BytePtrFromString(parm) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(SYS___MOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unmount(filesystem string, mtm int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(filesystem) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___UMOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mtm), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___CHROOT_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := syscall_rawsyscall(SYS___UNAME_A, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gethostname(buf []byte) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(SYS___GETHOSTNAME_A, uintptr(_p0), uintptr(len(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (pid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETPPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrusage(who int, rusage *rusage_zos) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___LCHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___LINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := syscall_syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, stat *Stat_LE_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___LSTAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___MKDIR_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___MKFIFO_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___MKNOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(SYS___READLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___RENAME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___RMDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := syscall_syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_syscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - _, _, e1 := syscall_syscall(SYS_SETGID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, statLE *Stat_LE_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___STAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___SYMLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - syscall_syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___TRUNCATE_A, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tcgetattr(fildes int, termptr *Termios) (err error) { - _, _, e1 := syscall_syscall(SYS_TCGETATTR, uintptr(fildes), uintptr(unsafe.Pointer(termptr)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { - _, _, e1 := syscall_syscall(SYS_TCSETATTR, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := syscall_syscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___UNLINK_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, utim *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___UTIME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(SYS___OPEN_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func remove(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { - r0, _, e1 := syscall_syscall(SYS_WAITPID, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tv *timeval_zos) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___UTIMES_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { - r0, _, e1 := syscall_syscall6(SYS_SELECT, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go deleted file mode 100644 index 55e04847..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build 386 && openbsd -// +build 386,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go deleted file mode 100644 index d2243cf8..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build amd64 && openbsd -// +build amd64,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go deleted file mode 100644 index 82dc51bd..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build arm && openbsd -// +build arm,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go deleted file mode 100644 index cbdda1a4..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build arm64 && openbsd -// +build arm64,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go deleted file mode 100644 index f55eae1a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build mips64 && openbsd -// +build mips64,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go deleted file mode 100644 index e4405447..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build ppc64 && openbsd -// +build ppc64,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go deleted file mode 100644 index a0db82fc..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +++ /dev/null @@ -1,282 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build riscv64 && openbsd -// +build riscv64,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.power", []_C_int{6, 26}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowdt", []_C_int{1, 65}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pfstatus", []_C_int{1, 86}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.timeout_stats", []_C_int{1, 87}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go deleted file mode 100644 index f8298ff9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ /dev/null @@ -1,440 +0,0 @@ -// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin -// +build amd64,darwin - -package unix - -// Deprecated: Use libSystem wrappers instead of direct syscalls. -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_KQUEUE_WORKLOOP_CTL = 530 - SYS___MACH_BRIDGE_REMOTE_TIME = 531 - SYS_MAXSYSCALL = 532 - SYS_INVALID = 63 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go deleted file mode 100644 index 5eb433bb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ /dev/null @@ -1,438 +0,0 @@ -// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin -// +build arm64,darwin - -package unix - -// Deprecated: Use libSystem wrappers instead of direct syscalls. -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_MAXSYSCALL = 530 - SYS_INVALID = 63 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go deleted file mode 100644 index 703675c0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ /dev/null @@ -1,317 +0,0 @@ -// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly -// +build amd64,dragonfly - -package unix - -const ( - SYS_EXIT = 1 // { void exit(int rval); } - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int - // SYS_NOSYS = 8; // { int nosys(void); } __nosys nosys_args int - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int - SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } - SYS_ACCESS = 33 // { int access(char *path, int flags); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, size_t namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { pid_t vfork(void); } - SYS_SBRK = 69 // { caddr_t sbrk(size_t incr); } - SYS_SSTK = 70 // { int sstk(size_t incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(int from, int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } - SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } - SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } - SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } - SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } - SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } - SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } - SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } - SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } - SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } - SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } - SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } - SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } - SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_CLOSEFROM = 474 // { int closefrom(int fd); } - SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } - SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } - SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } - SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } - SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } - SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } - SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } - SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } - SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } - SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } - SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } - SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } - SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } - SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } - SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } - SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } - SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } - SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } - SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } - SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } - SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } - SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } - SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } - SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } - SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } - SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } - SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } - SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } - SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } - SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } - SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } - SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } - SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } - SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } - SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } - SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } - SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } - SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } - SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_SWAPOFF = 529 // { int swapoff(char *name); } - SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } - SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } - SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } - SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } - SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } - SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } - SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } - SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);} - SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } - SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } - SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } - SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } - SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } - SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } - SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } - SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } - SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } - SYS_GETCPUCLOCKID = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); } - SYS_WAIT6 = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_LWP_GETNAME = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); } - SYS_GETRANDOM = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); } - SYS___REALPATH = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go deleted file mode 100644 index 4e0d9610..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ /dev/null @@ -1,394 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd -// +build 386,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } - SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } - SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } - SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } - SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } - SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } - SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } - SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } - SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } - SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } - SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } - SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } - SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } - SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } - SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go deleted file mode 100644 index 01636b83..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ /dev/null @@ -1,394 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd -// +build amd64,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } - SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } - SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } - SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } - SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } - SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } - SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } - SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } - SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } - SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } - SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } - SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } - SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } - SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } - SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go deleted file mode 100644 index ad99bc10..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ /dev/null @@ -1,394 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd -// +build arm,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } - SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } - SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } - SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } - SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } - SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } - SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } - SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } - SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } - SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } - SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } - SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } - SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } - SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } - SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go deleted file mode 100644 index 89dcc427..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ /dev/null @@ -1,394 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd -// +build arm64,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } - SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } - SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } - SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } - SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } - SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } - SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } - SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } - SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } - SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } - SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } - SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } - SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } - SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } - SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go deleted file mode 100644 index ee37aaa0..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +++ /dev/null @@ -1,394 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd -// +build riscv64,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } - SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } - SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } - SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } - SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } - SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } - SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } - SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } - SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } - SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } - SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } - SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } - SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } - SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } - SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go deleted file mode 100644 index c9c4ad03..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ /dev/null @@ -1,450 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux -// +build 386,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86OLD = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_VM86 = 166 - SYS_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_SET_THREAD_AREA = 243 - SYS_GET_THREAD_AREA = 244 - SYS_IO_SETUP = 245 - SYS_IO_DESTROY = 246 - SYS_IO_GETEVENTS = 247 - SYS_IO_SUBMIT = 248 - SYS_IO_CANCEL = 249 - SYS_FADVISE64 = 250 - SYS_EXIT_GROUP = 252 - SYS_LOOKUP_DCOOKIE = 253 - SYS_EPOLL_CREATE = 254 - SYS_EPOLL_CTL = 255 - SYS_EPOLL_WAIT = 256 - SYS_REMAP_FILE_PAGES = 257 - SYS_SET_TID_ADDRESS = 258 - SYS_TIMER_CREATE = 259 - SYS_TIMER_SETTIME = 260 - SYS_TIMER_GETTIME = 261 - SYS_TIMER_GETOVERRUN = 262 - SYS_TIMER_DELETE = 263 - SYS_CLOCK_SETTIME = 264 - SYS_CLOCK_GETTIME = 265 - SYS_CLOCK_GETRES = 266 - SYS_CLOCK_NANOSLEEP = 267 - SYS_STATFS64 = 268 - SYS_FSTATFS64 = 269 - SYS_TGKILL = 270 - SYS_UTIMES = 271 - SYS_FADVISE64_64 = 272 - SYS_VSERVER = 273 - SYS_MBIND = 274 - SYS_GET_MEMPOLICY = 275 - SYS_SET_MEMPOLICY = 276 - SYS_MQ_OPEN = 277 - SYS_MQ_UNLINK = 278 - SYS_MQ_TIMEDSEND = 279 - SYS_MQ_TIMEDRECEIVE = 280 - SYS_MQ_NOTIFY = 281 - SYS_MQ_GETSETATTR = 282 - SYS_KEXEC_LOAD = 283 - SYS_WAITID = 284 - SYS_ADD_KEY = 286 - SYS_REQUEST_KEY = 287 - SYS_KEYCTL = 288 - SYS_IOPRIO_SET = 289 - SYS_IOPRIO_GET = 290 - SYS_INOTIFY_INIT = 291 - SYS_INOTIFY_ADD_WATCH = 292 - SYS_INOTIFY_RM_WATCH = 293 - SYS_MIGRATE_PAGES = 294 - SYS_OPENAT = 295 - SYS_MKDIRAT = 296 - SYS_MKNODAT = 297 - SYS_FCHOWNAT = 298 - SYS_FUTIMESAT = 299 - SYS_FSTATAT64 = 300 - SYS_UNLINKAT = 301 - SYS_RENAMEAT = 302 - SYS_LINKAT = 303 - SYS_SYMLINKAT = 304 - SYS_READLINKAT = 305 - SYS_FCHMODAT = 306 - SYS_FACCESSAT = 307 - SYS_PSELECT6 = 308 - SYS_PPOLL = 309 - SYS_UNSHARE = 310 - SYS_SET_ROBUST_LIST = 311 - SYS_GET_ROBUST_LIST = 312 - SYS_SPLICE = 313 - SYS_SYNC_FILE_RANGE = 314 - SYS_TEE = 315 - SYS_VMSPLICE = 316 - SYS_MOVE_PAGES = 317 - SYS_GETCPU = 318 - SYS_EPOLL_PWAIT = 319 - SYS_UTIMENSAT = 320 - SYS_SIGNALFD = 321 - SYS_TIMERFD_CREATE = 322 - SYS_EVENTFD = 323 - SYS_FALLOCATE = 324 - SYS_TIMERFD_SETTIME = 325 - SYS_TIMERFD_GETTIME = 326 - SYS_SIGNALFD4 = 327 - SYS_EVENTFD2 = 328 - SYS_EPOLL_CREATE1 = 329 - SYS_DUP3 = 330 - SYS_PIPE2 = 331 - SYS_INOTIFY_INIT1 = 332 - SYS_PREADV = 333 - SYS_PWRITEV = 334 - SYS_RT_TGSIGQUEUEINFO = 335 - SYS_PERF_EVENT_OPEN = 336 - SYS_RECVMMSG = 337 - SYS_FANOTIFY_INIT = 338 - SYS_FANOTIFY_MARK = 339 - SYS_PRLIMIT64 = 340 - SYS_NAME_TO_HANDLE_AT = 341 - SYS_OPEN_BY_HANDLE_AT = 342 - SYS_CLOCK_ADJTIME = 343 - SYS_SYNCFS = 344 - SYS_SENDMMSG = 345 - SYS_SETNS = 346 - SYS_PROCESS_VM_READV = 347 - SYS_PROCESS_VM_WRITEV = 348 - SYS_KCMP = 349 - SYS_FINIT_MODULE = 350 - SYS_SCHED_SETATTR = 351 - SYS_SCHED_GETATTR = 352 - SYS_RENAMEAT2 = 353 - SYS_SECCOMP = 354 - SYS_GETRANDOM = 355 - SYS_MEMFD_CREATE = 356 - SYS_BPF = 357 - SYS_EXECVEAT = 358 - SYS_SOCKET = 359 - SYS_SOCKETPAIR = 360 - SYS_BIND = 361 - SYS_CONNECT = 362 - SYS_LISTEN = 363 - SYS_ACCEPT4 = 364 - SYS_GETSOCKOPT = 365 - SYS_SETSOCKOPT = 366 - SYS_GETSOCKNAME = 367 - SYS_GETPEERNAME = 368 - SYS_SENDTO = 369 - SYS_SENDMSG = 370 - SYS_RECVFROM = 371 - SYS_RECVMSG = 372 - SYS_SHUTDOWN = 373 - SYS_USERFAULTFD = 374 - SYS_MEMBARRIER = 375 - SYS_MLOCK2 = 376 - SYS_COPY_FILE_RANGE = 377 - SYS_PREADV2 = 378 - SYS_PWRITEV2 = 379 - SYS_PKEY_MPROTECT = 380 - SYS_PKEY_ALLOC = 381 - SYS_PKEY_FREE = 382 - SYS_STATX = 383 - SYS_ARCH_PRCTL = 384 - SYS_IO_PGETEVENTS = 385 - SYS_RSEQ = 386 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_CLOCK_GETTIME64 = 403 - SYS_CLOCK_SETTIME64 = 404 - SYS_CLOCK_ADJTIME64 = 405 - SYS_CLOCK_GETRES_TIME64 = 406 - SYS_CLOCK_NANOSLEEP_TIME64 = 407 - SYS_TIMER_GETTIME64 = 408 - SYS_TIMER_SETTIME64 = 409 - SYS_TIMERFD_GETTIME64 = 410 - SYS_TIMERFD_SETTIME64 = 411 - SYS_UTIMENSAT_TIME64 = 412 - SYS_PSELECT6_TIME64 = 413 - SYS_PPOLL_TIME64 = 414 - SYS_IO_PGETEVENTS_TIME64 = 416 - SYS_RECVMMSG_TIME64 = 417 - SYS_MQ_TIMEDSEND_TIME64 = 418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 419 - SYS_SEMTIMEDOP_TIME64 = 420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 421 - SYS_FUTEX_TIME64 = 422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go deleted file mode 100644 index 12ff3417..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ /dev/null @@ -1,372 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux -// +build amd64,linux - -package unix - -const ( - SYS_READ = 0 - SYS_WRITE = 1 - SYS_OPEN = 2 - SYS_CLOSE = 3 - SYS_STAT = 4 - SYS_FSTAT = 5 - SYS_LSTAT = 6 - SYS_POLL = 7 - SYS_LSEEK = 8 - SYS_MMAP = 9 - SYS_MPROTECT = 10 - SYS_MUNMAP = 11 - SYS_BRK = 12 - SYS_RT_SIGACTION = 13 - SYS_RT_SIGPROCMASK = 14 - SYS_RT_SIGRETURN = 15 - SYS_IOCTL = 16 - SYS_PREAD64 = 17 - SYS_PWRITE64 = 18 - SYS_READV = 19 - SYS_WRITEV = 20 - SYS_ACCESS = 21 - SYS_PIPE = 22 - SYS_SELECT = 23 - SYS_SCHED_YIELD = 24 - SYS_MREMAP = 25 - SYS_MSYNC = 26 - SYS_MINCORE = 27 - SYS_MADVISE = 28 - SYS_SHMGET = 29 - SYS_SHMAT = 30 - SYS_SHMCTL = 31 - SYS_DUP = 32 - SYS_DUP2 = 33 - SYS_PAUSE = 34 - SYS_NANOSLEEP = 35 - SYS_GETITIMER = 36 - SYS_ALARM = 37 - SYS_SETITIMER = 38 - SYS_GETPID = 39 - SYS_SENDFILE = 40 - SYS_SOCKET = 41 - SYS_CONNECT = 42 - SYS_ACCEPT = 43 - SYS_SENDTO = 44 - SYS_RECVFROM = 45 - SYS_SENDMSG = 46 - SYS_RECVMSG = 47 - SYS_SHUTDOWN = 48 - SYS_BIND = 49 - SYS_LISTEN = 50 - SYS_GETSOCKNAME = 51 - SYS_GETPEERNAME = 52 - SYS_SOCKETPAIR = 53 - SYS_SETSOCKOPT = 54 - SYS_GETSOCKOPT = 55 - SYS_CLONE = 56 - SYS_FORK = 57 - SYS_VFORK = 58 - SYS_EXECVE = 59 - SYS_EXIT = 60 - SYS_WAIT4 = 61 - SYS_KILL = 62 - SYS_UNAME = 63 - SYS_SEMGET = 64 - SYS_SEMOP = 65 - SYS_SEMCTL = 66 - SYS_SHMDT = 67 - SYS_MSGGET = 68 - SYS_MSGSND = 69 - SYS_MSGRCV = 70 - SYS_MSGCTL = 71 - SYS_FCNTL = 72 - SYS_FLOCK = 73 - SYS_FSYNC = 74 - SYS_FDATASYNC = 75 - SYS_TRUNCATE = 76 - SYS_FTRUNCATE = 77 - SYS_GETDENTS = 78 - SYS_GETCWD = 79 - SYS_CHDIR = 80 - SYS_FCHDIR = 81 - SYS_RENAME = 82 - SYS_MKDIR = 83 - SYS_RMDIR = 84 - SYS_CREAT = 85 - SYS_LINK = 86 - SYS_UNLINK = 87 - SYS_SYMLINK = 88 - SYS_READLINK = 89 - SYS_CHMOD = 90 - SYS_FCHMOD = 91 - SYS_CHOWN = 92 - SYS_FCHOWN = 93 - SYS_LCHOWN = 94 - SYS_UMASK = 95 - SYS_GETTIMEOFDAY = 96 - SYS_GETRLIMIT = 97 - SYS_GETRUSAGE = 98 - SYS_SYSINFO = 99 - SYS_TIMES = 100 - SYS_PTRACE = 101 - SYS_GETUID = 102 - SYS_SYSLOG = 103 - SYS_GETGID = 104 - SYS_SETUID = 105 - SYS_SETGID = 106 - SYS_GETEUID = 107 - SYS_GETEGID = 108 - SYS_SETPGID = 109 - SYS_GETPPID = 110 - SYS_GETPGRP = 111 - SYS_SETSID = 112 - SYS_SETREUID = 113 - SYS_SETREGID = 114 - SYS_GETGROUPS = 115 - SYS_SETGROUPS = 116 - SYS_SETRESUID = 117 - SYS_GETRESUID = 118 - SYS_SETRESGID = 119 - SYS_GETRESGID = 120 - SYS_GETPGID = 121 - SYS_SETFSUID = 122 - SYS_SETFSGID = 123 - SYS_GETSID = 124 - SYS_CAPGET = 125 - SYS_CAPSET = 126 - SYS_RT_SIGPENDING = 127 - SYS_RT_SIGTIMEDWAIT = 128 - SYS_RT_SIGQUEUEINFO = 129 - SYS_RT_SIGSUSPEND = 130 - SYS_SIGALTSTACK = 131 - SYS_UTIME = 132 - SYS_MKNOD = 133 - SYS_USELIB = 134 - SYS_PERSONALITY = 135 - SYS_USTAT = 136 - SYS_STATFS = 137 - SYS_FSTATFS = 138 - SYS_SYSFS = 139 - SYS_GETPRIORITY = 140 - SYS_SETPRIORITY = 141 - SYS_SCHED_SETPARAM = 142 - SYS_SCHED_GETPARAM = 143 - SYS_SCHED_SETSCHEDULER = 144 - SYS_SCHED_GETSCHEDULER = 145 - SYS_SCHED_GET_PRIORITY_MAX = 146 - SYS_SCHED_GET_PRIORITY_MIN = 147 - SYS_SCHED_RR_GET_INTERVAL = 148 - SYS_MLOCK = 149 - SYS_MUNLOCK = 150 - SYS_MLOCKALL = 151 - SYS_MUNLOCKALL = 152 - SYS_VHANGUP = 153 - SYS_MODIFY_LDT = 154 - SYS_PIVOT_ROOT = 155 - SYS__SYSCTL = 156 - SYS_PRCTL = 157 - SYS_ARCH_PRCTL = 158 - SYS_ADJTIMEX = 159 - SYS_SETRLIMIT = 160 - SYS_CHROOT = 161 - SYS_SYNC = 162 - SYS_ACCT = 163 - SYS_SETTIMEOFDAY = 164 - SYS_MOUNT = 165 - SYS_UMOUNT2 = 166 - SYS_SWAPON = 167 - SYS_SWAPOFF = 168 - SYS_REBOOT = 169 - SYS_SETHOSTNAME = 170 - SYS_SETDOMAINNAME = 171 - SYS_IOPL = 172 - SYS_IOPERM = 173 - SYS_CREATE_MODULE = 174 - SYS_INIT_MODULE = 175 - SYS_DELETE_MODULE = 176 - SYS_GET_KERNEL_SYMS = 177 - SYS_QUERY_MODULE = 178 - SYS_QUOTACTL = 179 - SYS_NFSSERVCTL = 180 - SYS_GETPMSG = 181 - SYS_PUTPMSG = 182 - SYS_AFS_SYSCALL = 183 - SYS_TUXCALL = 184 - SYS_SECURITY = 185 - SYS_GETTID = 186 - SYS_READAHEAD = 187 - SYS_SETXATTR = 188 - SYS_LSETXATTR = 189 - SYS_FSETXATTR = 190 - SYS_GETXATTR = 191 - SYS_LGETXATTR = 192 - SYS_FGETXATTR = 193 - SYS_LISTXATTR = 194 - SYS_LLISTXATTR = 195 - SYS_FLISTXATTR = 196 - SYS_REMOVEXATTR = 197 - SYS_LREMOVEXATTR = 198 - SYS_FREMOVEXATTR = 199 - SYS_TKILL = 200 - SYS_TIME = 201 - SYS_FUTEX = 202 - SYS_SCHED_SETAFFINITY = 203 - SYS_SCHED_GETAFFINITY = 204 - SYS_SET_THREAD_AREA = 205 - SYS_IO_SETUP = 206 - SYS_IO_DESTROY = 207 - SYS_IO_GETEVENTS = 208 - SYS_IO_SUBMIT = 209 - SYS_IO_CANCEL = 210 - SYS_GET_THREAD_AREA = 211 - SYS_LOOKUP_DCOOKIE = 212 - SYS_EPOLL_CREATE = 213 - SYS_EPOLL_CTL_OLD = 214 - SYS_EPOLL_WAIT_OLD = 215 - SYS_REMAP_FILE_PAGES = 216 - SYS_GETDENTS64 = 217 - SYS_SET_TID_ADDRESS = 218 - SYS_RESTART_SYSCALL = 219 - SYS_SEMTIMEDOP = 220 - SYS_FADVISE64 = 221 - SYS_TIMER_CREATE = 222 - SYS_TIMER_SETTIME = 223 - SYS_TIMER_GETTIME = 224 - SYS_TIMER_GETOVERRUN = 225 - SYS_TIMER_DELETE = 226 - SYS_CLOCK_SETTIME = 227 - SYS_CLOCK_GETTIME = 228 - SYS_CLOCK_GETRES = 229 - SYS_CLOCK_NANOSLEEP = 230 - SYS_EXIT_GROUP = 231 - SYS_EPOLL_WAIT = 232 - SYS_EPOLL_CTL = 233 - SYS_TGKILL = 234 - SYS_UTIMES = 235 - SYS_VSERVER = 236 - SYS_MBIND = 237 - SYS_SET_MEMPOLICY = 238 - SYS_GET_MEMPOLICY = 239 - SYS_MQ_OPEN = 240 - SYS_MQ_UNLINK = 241 - SYS_MQ_TIMEDSEND = 242 - SYS_MQ_TIMEDRECEIVE = 243 - SYS_MQ_NOTIFY = 244 - SYS_MQ_GETSETATTR = 245 - SYS_KEXEC_LOAD = 246 - SYS_WAITID = 247 - SYS_ADD_KEY = 248 - SYS_REQUEST_KEY = 249 - SYS_KEYCTL = 250 - SYS_IOPRIO_SET = 251 - SYS_IOPRIO_GET = 252 - SYS_INOTIFY_INIT = 253 - SYS_INOTIFY_ADD_WATCH = 254 - SYS_INOTIFY_RM_WATCH = 255 - SYS_MIGRATE_PAGES = 256 - SYS_OPENAT = 257 - SYS_MKDIRAT = 258 - SYS_MKNODAT = 259 - SYS_FCHOWNAT = 260 - SYS_FUTIMESAT = 261 - SYS_NEWFSTATAT = 262 - SYS_UNLINKAT = 263 - SYS_RENAMEAT = 264 - SYS_LINKAT = 265 - SYS_SYMLINKAT = 266 - SYS_READLINKAT = 267 - SYS_FCHMODAT = 268 - SYS_FACCESSAT = 269 - SYS_PSELECT6 = 270 - SYS_PPOLL = 271 - SYS_UNSHARE = 272 - SYS_SET_ROBUST_LIST = 273 - SYS_GET_ROBUST_LIST = 274 - SYS_SPLICE = 275 - SYS_TEE = 276 - SYS_SYNC_FILE_RANGE = 277 - SYS_VMSPLICE = 278 - SYS_MOVE_PAGES = 279 - SYS_UTIMENSAT = 280 - SYS_EPOLL_PWAIT = 281 - SYS_SIGNALFD = 282 - SYS_TIMERFD_CREATE = 283 - SYS_EVENTFD = 284 - SYS_FALLOCATE = 285 - SYS_TIMERFD_SETTIME = 286 - SYS_TIMERFD_GETTIME = 287 - SYS_ACCEPT4 = 288 - SYS_SIGNALFD4 = 289 - SYS_EVENTFD2 = 290 - SYS_EPOLL_CREATE1 = 291 - SYS_DUP3 = 292 - SYS_PIPE2 = 293 - SYS_INOTIFY_INIT1 = 294 - SYS_PREADV = 295 - SYS_PWRITEV = 296 - SYS_RT_TGSIGQUEUEINFO = 297 - SYS_PERF_EVENT_OPEN = 298 - SYS_RECVMMSG = 299 - SYS_FANOTIFY_INIT = 300 - SYS_FANOTIFY_MARK = 301 - SYS_PRLIMIT64 = 302 - SYS_NAME_TO_HANDLE_AT = 303 - SYS_OPEN_BY_HANDLE_AT = 304 - SYS_CLOCK_ADJTIME = 305 - SYS_SYNCFS = 306 - SYS_SENDMMSG = 307 - SYS_SETNS = 308 - SYS_GETCPU = 309 - SYS_PROCESS_VM_READV = 310 - SYS_PROCESS_VM_WRITEV = 311 - SYS_KCMP = 312 - SYS_FINIT_MODULE = 313 - SYS_SCHED_SETATTR = 314 - SYS_SCHED_GETATTR = 315 - SYS_RENAMEAT2 = 316 - SYS_SECCOMP = 317 - SYS_GETRANDOM = 318 - SYS_MEMFD_CREATE = 319 - SYS_KEXEC_FILE_LOAD = 320 - SYS_BPF = 321 - SYS_EXECVEAT = 322 - SYS_USERFAULTFD = 323 - SYS_MEMBARRIER = 324 - SYS_MLOCK2 = 325 - SYS_COPY_FILE_RANGE = 326 - SYS_PREADV2 = 327 - SYS_PWRITEV2 = 328 - SYS_PKEY_MPROTECT = 329 - SYS_PKEY_ALLOC = 330 - SYS_PKEY_FREE = 331 - SYS_STATX = 332 - SYS_IO_PGETEVENTS = 333 - SYS_RSEQ = 334 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go deleted file mode 100644 index c3fb5e77..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ /dev/null @@ -1,414 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux -// +build arm,linux - -package unix - -const ( - SYS_SYSCALL_MASK = 0 - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_PTRACE = 26 - SYS_PAUSE = 29 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_SETPGID = 57 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_VHANGUP = 111 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_GETDENTS64 = 217 - SYS_PIVOT_ROOT = 218 - SYS_MINCORE = 219 - SYS_MADVISE = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_IO_SETUP = 243 - SYS_IO_DESTROY = 244 - SYS_IO_GETEVENTS = 245 - SYS_IO_SUBMIT = 246 - SYS_IO_CANCEL = 247 - SYS_EXIT_GROUP = 248 - SYS_LOOKUP_DCOOKIE = 249 - SYS_EPOLL_CREATE = 250 - SYS_EPOLL_CTL = 251 - SYS_EPOLL_WAIT = 252 - SYS_REMAP_FILE_PAGES = 253 - SYS_SET_TID_ADDRESS = 256 - SYS_TIMER_CREATE = 257 - SYS_TIMER_SETTIME = 258 - SYS_TIMER_GETTIME = 259 - SYS_TIMER_GETOVERRUN = 260 - SYS_TIMER_DELETE = 261 - SYS_CLOCK_SETTIME = 262 - SYS_CLOCK_GETTIME = 263 - SYS_CLOCK_GETRES = 264 - SYS_CLOCK_NANOSLEEP = 265 - SYS_STATFS64 = 266 - SYS_FSTATFS64 = 267 - SYS_TGKILL = 268 - SYS_UTIMES = 269 - SYS_ARM_FADVISE64_64 = 270 - SYS_PCICONFIG_IOBASE = 271 - SYS_PCICONFIG_READ = 272 - SYS_PCICONFIG_WRITE = 273 - SYS_MQ_OPEN = 274 - SYS_MQ_UNLINK = 275 - SYS_MQ_TIMEDSEND = 276 - SYS_MQ_TIMEDRECEIVE = 277 - SYS_MQ_NOTIFY = 278 - SYS_MQ_GETSETATTR = 279 - SYS_WAITID = 280 - SYS_SOCKET = 281 - SYS_BIND = 282 - SYS_CONNECT = 283 - SYS_LISTEN = 284 - SYS_ACCEPT = 285 - SYS_GETSOCKNAME = 286 - SYS_GETPEERNAME = 287 - SYS_SOCKETPAIR = 288 - SYS_SEND = 289 - SYS_SENDTO = 290 - SYS_RECV = 291 - SYS_RECVFROM = 292 - SYS_SHUTDOWN = 293 - SYS_SETSOCKOPT = 294 - SYS_GETSOCKOPT = 295 - SYS_SENDMSG = 296 - SYS_RECVMSG = 297 - SYS_SEMOP = 298 - SYS_SEMGET = 299 - SYS_SEMCTL = 300 - SYS_MSGSND = 301 - SYS_MSGRCV = 302 - SYS_MSGGET = 303 - SYS_MSGCTL = 304 - SYS_SHMAT = 305 - SYS_SHMDT = 306 - SYS_SHMGET = 307 - SYS_SHMCTL = 308 - SYS_ADD_KEY = 309 - SYS_REQUEST_KEY = 310 - SYS_KEYCTL = 311 - SYS_SEMTIMEDOP = 312 - SYS_VSERVER = 313 - SYS_IOPRIO_SET = 314 - SYS_IOPRIO_GET = 315 - SYS_INOTIFY_INIT = 316 - SYS_INOTIFY_ADD_WATCH = 317 - SYS_INOTIFY_RM_WATCH = 318 - SYS_MBIND = 319 - SYS_GET_MEMPOLICY = 320 - SYS_SET_MEMPOLICY = 321 - SYS_OPENAT = 322 - SYS_MKDIRAT = 323 - SYS_MKNODAT = 324 - SYS_FCHOWNAT = 325 - SYS_FUTIMESAT = 326 - SYS_FSTATAT64 = 327 - SYS_UNLINKAT = 328 - SYS_RENAMEAT = 329 - SYS_LINKAT = 330 - SYS_SYMLINKAT = 331 - SYS_READLINKAT = 332 - SYS_FCHMODAT = 333 - SYS_FACCESSAT = 334 - SYS_PSELECT6 = 335 - SYS_PPOLL = 336 - SYS_UNSHARE = 337 - SYS_SET_ROBUST_LIST = 338 - SYS_GET_ROBUST_LIST = 339 - SYS_SPLICE = 340 - SYS_ARM_SYNC_FILE_RANGE = 341 - SYS_TEE = 342 - SYS_VMSPLICE = 343 - SYS_MOVE_PAGES = 344 - SYS_GETCPU = 345 - SYS_EPOLL_PWAIT = 346 - SYS_KEXEC_LOAD = 347 - SYS_UTIMENSAT = 348 - SYS_SIGNALFD = 349 - SYS_TIMERFD_CREATE = 350 - SYS_EVENTFD = 351 - SYS_FALLOCATE = 352 - SYS_TIMERFD_SETTIME = 353 - SYS_TIMERFD_GETTIME = 354 - SYS_SIGNALFD4 = 355 - SYS_EVENTFD2 = 356 - SYS_EPOLL_CREATE1 = 357 - SYS_DUP3 = 358 - SYS_PIPE2 = 359 - SYS_INOTIFY_INIT1 = 360 - SYS_PREADV = 361 - SYS_PWRITEV = 362 - SYS_RT_TGSIGQUEUEINFO = 363 - SYS_PERF_EVENT_OPEN = 364 - SYS_RECVMMSG = 365 - SYS_ACCEPT4 = 366 - SYS_FANOTIFY_INIT = 367 - SYS_FANOTIFY_MARK = 368 - SYS_PRLIMIT64 = 369 - SYS_NAME_TO_HANDLE_AT = 370 - SYS_OPEN_BY_HANDLE_AT = 371 - SYS_CLOCK_ADJTIME = 372 - SYS_SYNCFS = 373 - SYS_SENDMMSG = 374 - SYS_SETNS = 375 - SYS_PROCESS_VM_READV = 376 - SYS_PROCESS_VM_WRITEV = 377 - SYS_KCMP = 378 - SYS_FINIT_MODULE = 379 - SYS_SCHED_SETATTR = 380 - SYS_SCHED_GETATTR = 381 - SYS_RENAMEAT2 = 382 - SYS_SECCOMP = 383 - SYS_GETRANDOM = 384 - SYS_MEMFD_CREATE = 385 - SYS_BPF = 386 - SYS_EXECVEAT = 387 - SYS_USERFAULTFD = 388 - SYS_MEMBARRIER = 389 - SYS_MLOCK2 = 390 - SYS_COPY_FILE_RANGE = 391 - SYS_PREADV2 = 392 - SYS_PWRITEV2 = 393 - SYS_PKEY_MPROTECT = 394 - SYS_PKEY_ALLOC = 395 - SYS_PKEY_FREE = 396 - SYS_STATX = 397 - SYS_RSEQ = 398 - SYS_IO_PGETEVENTS = 399 - SYS_MIGRATE_PAGES = 400 - SYS_KEXEC_FILE_LOAD = 401 - SYS_CLOCK_GETTIME64 = 403 - SYS_CLOCK_SETTIME64 = 404 - SYS_CLOCK_ADJTIME64 = 405 - SYS_CLOCK_GETRES_TIME64 = 406 - SYS_CLOCK_NANOSLEEP_TIME64 = 407 - SYS_TIMER_GETTIME64 = 408 - SYS_TIMER_SETTIME64 = 409 - SYS_TIMERFD_GETTIME64 = 410 - SYS_TIMERFD_SETTIME64 = 411 - SYS_UTIMENSAT_TIME64 = 412 - SYS_PSELECT6_TIME64 = 413 - SYS_PPOLL_TIME64 = 414 - SYS_IO_PGETEVENTS_TIME64 = 416 - SYS_RECVMMSG_TIME64 = 417 - SYS_MQ_TIMEDSEND_TIME64 = 418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 419 - SYS_SEMTIMEDOP_TIME64 = 420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 421 - SYS_FUTEX_TIME64 = 422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go deleted file mode 100644 index 358c847a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ /dev/null @@ -1,317 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux -// +build arm64,linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_RENAMEAT = 38 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_FSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - SYS_STATX = 291 - SYS_IO_PGETEVENTS = 292 - SYS_RSEQ = 293 - SYS_KEXEC_FILE_LOAD = 294 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go deleted file mode 100644 index 81c4849b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ /dev/null @@ -1,311 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux -// +build loong64,linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - SYS_STATX = 291 - SYS_IO_PGETEVENTS = 292 - SYS_RSEQ = 293 - SYS_KEXEC_FILE_LOAD = 294 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go deleted file mode 100644 index 202a57e9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ /dev/null @@ -1,434 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux -// +build mips,linux - -package unix - -const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - SYS_KCMP = 4347 - SYS_FINIT_MODULE = 4348 - SYS_SCHED_SETATTR = 4349 - SYS_SCHED_GETATTR = 4350 - SYS_RENAMEAT2 = 4351 - SYS_SECCOMP = 4352 - SYS_GETRANDOM = 4353 - SYS_MEMFD_CREATE = 4354 - SYS_BPF = 4355 - SYS_EXECVEAT = 4356 - SYS_USERFAULTFD = 4357 - SYS_MEMBARRIER = 4358 - SYS_MLOCK2 = 4359 - SYS_COPY_FILE_RANGE = 4360 - SYS_PREADV2 = 4361 - SYS_PWRITEV2 = 4362 - SYS_PKEY_MPROTECT = 4363 - SYS_PKEY_ALLOC = 4364 - SYS_PKEY_FREE = 4365 - SYS_STATX = 4366 - SYS_RSEQ = 4367 - SYS_IO_PGETEVENTS = 4368 - SYS_SEMGET = 4393 - SYS_SEMCTL = 4394 - SYS_SHMGET = 4395 - SYS_SHMCTL = 4396 - SYS_SHMAT = 4397 - SYS_SHMDT = 4398 - SYS_MSGGET = 4399 - SYS_MSGSND = 4400 - SYS_MSGRCV = 4401 - SYS_MSGCTL = 4402 - SYS_CLOCK_GETTIME64 = 4403 - SYS_CLOCK_SETTIME64 = 4404 - SYS_CLOCK_ADJTIME64 = 4405 - SYS_CLOCK_GETRES_TIME64 = 4406 - SYS_CLOCK_NANOSLEEP_TIME64 = 4407 - SYS_TIMER_GETTIME64 = 4408 - SYS_TIMER_SETTIME64 = 4409 - SYS_TIMERFD_GETTIME64 = 4410 - SYS_TIMERFD_SETTIME64 = 4411 - SYS_UTIMENSAT_TIME64 = 4412 - SYS_PSELECT6_TIME64 = 4413 - SYS_PPOLL_TIME64 = 4414 - SYS_IO_PGETEVENTS_TIME64 = 4416 - SYS_RECVMMSG_TIME64 = 4417 - SYS_MQ_TIMEDSEND_TIME64 = 4418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 - SYS_SEMTIMEDOP_TIME64 = 4420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 - SYS_FUTEX_TIME64 = 4422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 - SYS_PIDFD_SEND_SIGNAL = 4424 - SYS_IO_URING_SETUP = 4425 - SYS_IO_URING_ENTER = 4426 - SYS_IO_URING_REGISTER = 4427 - SYS_OPEN_TREE = 4428 - SYS_MOVE_MOUNT = 4429 - SYS_FSOPEN = 4430 - SYS_FSCONFIG = 4431 - SYS_FSMOUNT = 4432 - SYS_FSPICK = 4433 - SYS_PIDFD_OPEN = 4434 - SYS_CLONE3 = 4435 - SYS_CLOSE_RANGE = 4436 - SYS_OPENAT2 = 4437 - SYS_PIDFD_GETFD = 4438 - SYS_FACCESSAT2 = 4439 - SYS_PROCESS_MADVISE = 4440 - SYS_EPOLL_PWAIT2 = 4441 - SYS_MOUNT_SETATTR = 4442 - SYS_QUOTACTL_FD = 4443 - SYS_LANDLOCK_CREATE_RULESET = 4444 - SYS_LANDLOCK_ADD_RULE = 4445 - SYS_LANDLOCK_RESTRICT_SELF = 4446 - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go deleted file mode 100644 index 1fbceb52..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ /dev/null @@ -1,364 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux -// +build mips64,linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 - SYS_STATX = 5326 - SYS_RSEQ = 5327 - SYS_IO_PGETEVENTS = 5328 - SYS_PIDFD_SEND_SIGNAL = 5424 - SYS_IO_URING_SETUP = 5425 - SYS_IO_URING_ENTER = 5426 - SYS_IO_URING_REGISTER = 5427 - SYS_OPEN_TREE = 5428 - SYS_MOVE_MOUNT = 5429 - SYS_FSOPEN = 5430 - SYS_FSCONFIG = 5431 - SYS_FSMOUNT = 5432 - SYS_FSPICK = 5433 - SYS_PIDFD_OPEN = 5434 - SYS_CLONE3 = 5435 - SYS_CLOSE_RANGE = 5436 - SYS_OPENAT2 = 5437 - SYS_PIDFD_GETFD = 5438 - SYS_FACCESSAT2 = 5439 - SYS_PROCESS_MADVISE = 5440 - SYS_EPOLL_PWAIT2 = 5441 - SYS_MOUNT_SETATTR = 5442 - SYS_QUOTACTL_FD = 5443 - SYS_LANDLOCK_CREATE_RULESET = 5444 - SYS_LANDLOCK_ADD_RULE = 5445 - SYS_LANDLOCK_RESTRICT_SELF = 5446 - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go deleted file mode 100644 index b4ffb7a2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ /dev/null @@ -1,364 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux -// +build mips64le,linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 - SYS_STATX = 5326 - SYS_RSEQ = 5327 - SYS_IO_PGETEVENTS = 5328 - SYS_PIDFD_SEND_SIGNAL = 5424 - SYS_IO_URING_SETUP = 5425 - SYS_IO_URING_ENTER = 5426 - SYS_IO_URING_REGISTER = 5427 - SYS_OPEN_TREE = 5428 - SYS_MOVE_MOUNT = 5429 - SYS_FSOPEN = 5430 - SYS_FSCONFIG = 5431 - SYS_FSMOUNT = 5432 - SYS_FSPICK = 5433 - SYS_PIDFD_OPEN = 5434 - SYS_CLONE3 = 5435 - SYS_CLOSE_RANGE = 5436 - SYS_OPENAT2 = 5437 - SYS_PIDFD_GETFD = 5438 - SYS_FACCESSAT2 = 5439 - SYS_PROCESS_MADVISE = 5440 - SYS_EPOLL_PWAIT2 = 5441 - SYS_MOUNT_SETATTR = 5442 - SYS_QUOTACTL_FD = 5443 - SYS_LANDLOCK_CREATE_RULESET = 5444 - SYS_LANDLOCK_ADD_RULE = 5445 - SYS_LANDLOCK_RESTRICT_SELF = 5446 - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go deleted file mode 100644 index 867985f9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ /dev/null @@ -1,434 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux -// +build mipsle,linux - -package unix - -const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - SYS_KCMP = 4347 - SYS_FINIT_MODULE = 4348 - SYS_SCHED_SETATTR = 4349 - SYS_SCHED_GETATTR = 4350 - SYS_RENAMEAT2 = 4351 - SYS_SECCOMP = 4352 - SYS_GETRANDOM = 4353 - SYS_MEMFD_CREATE = 4354 - SYS_BPF = 4355 - SYS_EXECVEAT = 4356 - SYS_USERFAULTFD = 4357 - SYS_MEMBARRIER = 4358 - SYS_MLOCK2 = 4359 - SYS_COPY_FILE_RANGE = 4360 - SYS_PREADV2 = 4361 - SYS_PWRITEV2 = 4362 - SYS_PKEY_MPROTECT = 4363 - SYS_PKEY_ALLOC = 4364 - SYS_PKEY_FREE = 4365 - SYS_STATX = 4366 - SYS_RSEQ = 4367 - SYS_IO_PGETEVENTS = 4368 - SYS_SEMGET = 4393 - SYS_SEMCTL = 4394 - SYS_SHMGET = 4395 - SYS_SHMCTL = 4396 - SYS_SHMAT = 4397 - SYS_SHMDT = 4398 - SYS_MSGGET = 4399 - SYS_MSGSND = 4400 - SYS_MSGRCV = 4401 - SYS_MSGCTL = 4402 - SYS_CLOCK_GETTIME64 = 4403 - SYS_CLOCK_SETTIME64 = 4404 - SYS_CLOCK_ADJTIME64 = 4405 - SYS_CLOCK_GETRES_TIME64 = 4406 - SYS_CLOCK_NANOSLEEP_TIME64 = 4407 - SYS_TIMER_GETTIME64 = 4408 - SYS_TIMER_SETTIME64 = 4409 - SYS_TIMERFD_GETTIME64 = 4410 - SYS_TIMERFD_SETTIME64 = 4411 - SYS_UTIMENSAT_TIME64 = 4412 - SYS_PSELECT6_TIME64 = 4413 - SYS_PPOLL_TIME64 = 4414 - SYS_IO_PGETEVENTS_TIME64 = 4416 - SYS_RECVMMSG_TIME64 = 4417 - SYS_MQ_TIMEDSEND_TIME64 = 4418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 - SYS_SEMTIMEDOP_TIME64 = 4420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 - SYS_FUTEX_TIME64 = 4422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 - SYS_PIDFD_SEND_SIGNAL = 4424 - SYS_IO_URING_SETUP = 4425 - SYS_IO_URING_ENTER = 4426 - SYS_IO_URING_REGISTER = 4427 - SYS_OPEN_TREE = 4428 - SYS_MOVE_MOUNT = 4429 - SYS_FSOPEN = 4430 - SYS_FSCONFIG = 4431 - SYS_FSMOUNT = 4432 - SYS_FSPICK = 4433 - SYS_PIDFD_OPEN = 4434 - SYS_CLONE3 = 4435 - SYS_CLOSE_RANGE = 4436 - SYS_OPENAT2 = 4437 - SYS_PIDFD_GETFD = 4438 - SYS_FACCESSAT2 = 4439 - SYS_PROCESS_MADVISE = 4440 - SYS_EPOLL_PWAIT2 = 4441 - SYS_MOUNT_SETATTR = 4442 - SYS_QUOTACTL_FD = 4443 - SYS_LANDLOCK_CREATE_RULESET = 4444 - SYS_LANDLOCK_ADD_RULE = 4445 - SYS_LANDLOCK_RESTRICT_SELF = 4446 - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go deleted file mode 100644 index a8cce69e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ /dev/null @@ -1,441 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux -// +build ppc,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86 = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_FCNTL64 = 204 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_SENDFILE64 = 226 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_FADVISE64_64 = 254 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_FSTATAT64 = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - SYS_PKEY_MPROTECT = 386 - SYS_RSEQ = 387 - SYS_IO_PGETEVENTS = 388 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_CLOCK_GETTIME64 = 403 - SYS_CLOCK_SETTIME64 = 404 - SYS_CLOCK_ADJTIME64 = 405 - SYS_CLOCK_GETRES_TIME64 = 406 - SYS_CLOCK_NANOSLEEP_TIME64 = 407 - SYS_TIMER_GETTIME64 = 408 - SYS_TIMER_SETTIME64 = 409 - SYS_TIMERFD_GETTIME64 = 410 - SYS_TIMERFD_SETTIME64 = 411 - SYS_UTIMENSAT_TIME64 = 412 - SYS_PSELECT6_TIME64 = 413 - SYS_PPOLL_TIME64 = 414 - SYS_IO_PGETEVENTS_TIME64 = 416 - SYS_RECVMMSG_TIME64 = 417 - SYS_MQ_TIMEDSEND_TIME64 = 418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 419 - SYS_SEMTIMEDOP_TIME64 = 420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 421 - SYS_FUTEX_TIME64 = 422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go deleted file mode 100644 index d44c5b39..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ /dev/null @@ -1,413 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux -// +build ppc64,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86 = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - SYS_PKEY_MPROTECT = 386 - SYS_RSEQ = 387 - SYS_IO_PGETEVENTS = 388 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go deleted file mode 100644 index 4214dd9c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ /dev/null @@ -1,413 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux -// +build ppc64le,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86 = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - SYS_PKEY_MPROTECT = 386 - SYS_RSEQ = 387 - SYS_IO_PGETEVENTS = 388 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go deleted file mode 100644 index 3e594a8c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ /dev/null @@ -1,316 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux -// +build riscv64,linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_FSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - SYS_STATX = 291 - SYS_IO_PGETEVENTS = 292 - SYS_RSEQ = 293 - SYS_KEXEC_FILE_LOAD = 294 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go deleted file mode 100644 index 7ea46520..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ /dev/null @@ -1,378 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux -// +build s390x,linux - -package unix - -const ( - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_RESTART_SYSCALL = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_BRK = 45 - SYS_SIGNAL = 48 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_SETPGID = 57 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_LOOKUP_DCOOKIE = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_GETDENTS = 141 - SYS_SELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_GETRLIMIT = 191 - SYS_LCHOWN = 198 - SYS_GETUID = 199 - SYS_GETGID = 200 - SYS_GETEUID = 201 - SYS_GETEGID = 202 - SYS_SETREUID = 203 - SYS_SETREGID = 204 - SYS_GETGROUPS = 205 - SYS_SETGROUPS = 206 - SYS_FCHOWN = 207 - SYS_SETRESUID = 208 - SYS_GETRESUID = 209 - SYS_SETRESGID = 210 - SYS_GETRESGID = 211 - SYS_CHOWN = 212 - SYS_SETUID = 213 - SYS_SETGID = 214 - SYS_SETFSUID = 215 - SYS_SETFSGID = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_READAHEAD = 222 - SYS_SETXATTR = 224 - SYS_LSETXATTR = 225 - SYS_FSETXATTR = 226 - SYS_GETXATTR = 227 - SYS_LGETXATTR = 228 - SYS_FGETXATTR = 229 - SYS_LISTXATTR = 230 - SYS_LLISTXATTR = 231 - SYS_FLISTXATTR = 232 - SYS_REMOVEXATTR = 233 - SYS_LREMOVEXATTR = 234 - SYS_FREMOVEXATTR = 235 - SYS_GETTID = 236 - SYS_TKILL = 237 - SYS_FUTEX = 238 - SYS_SCHED_SETAFFINITY = 239 - SYS_SCHED_GETAFFINITY = 240 - SYS_TGKILL = 241 - SYS_IO_SETUP = 243 - SYS_IO_DESTROY = 244 - SYS_IO_GETEVENTS = 245 - SYS_IO_SUBMIT = 246 - SYS_IO_CANCEL = 247 - SYS_EXIT_GROUP = 248 - SYS_EPOLL_CREATE = 249 - SYS_EPOLL_CTL = 250 - SYS_EPOLL_WAIT = 251 - SYS_SET_TID_ADDRESS = 252 - SYS_FADVISE64 = 253 - SYS_TIMER_CREATE = 254 - SYS_TIMER_SETTIME = 255 - SYS_TIMER_GETTIME = 256 - SYS_TIMER_GETOVERRUN = 257 - SYS_TIMER_DELETE = 258 - SYS_CLOCK_SETTIME = 259 - SYS_CLOCK_GETTIME = 260 - SYS_CLOCK_GETRES = 261 - SYS_CLOCK_NANOSLEEP = 262 - SYS_STATFS64 = 265 - SYS_FSTATFS64 = 266 - SYS_REMAP_FILE_PAGES = 267 - SYS_MBIND = 268 - SYS_GET_MEMPOLICY = 269 - SYS_SET_MEMPOLICY = 270 - SYS_MQ_OPEN = 271 - SYS_MQ_UNLINK = 272 - SYS_MQ_TIMEDSEND = 273 - SYS_MQ_TIMEDRECEIVE = 274 - SYS_MQ_NOTIFY = 275 - SYS_MQ_GETSETATTR = 276 - SYS_KEXEC_LOAD = 277 - SYS_ADD_KEY = 278 - SYS_REQUEST_KEY = 279 - SYS_KEYCTL = 280 - SYS_WAITID = 281 - SYS_IOPRIO_SET = 282 - SYS_IOPRIO_GET = 283 - SYS_INOTIFY_INIT = 284 - SYS_INOTIFY_ADD_WATCH = 285 - SYS_INOTIFY_RM_WATCH = 286 - SYS_MIGRATE_PAGES = 287 - SYS_OPENAT = 288 - SYS_MKDIRAT = 289 - SYS_MKNODAT = 290 - SYS_FCHOWNAT = 291 - SYS_FUTIMESAT = 292 - SYS_NEWFSTATAT = 293 - SYS_UNLINKAT = 294 - SYS_RENAMEAT = 295 - SYS_LINKAT = 296 - SYS_SYMLINKAT = 297 - SYS_READLINKAT = 298 - SYS_FCHMODAT = 299 - SYS_FACCESSAT = 300 - SYS_PSELECT6 = 301 - SYS_PPOLL = 302 - SYS_UNSHARE = 303 - SYS_SET_ROBUST_LIST = 304 - SYS_GET_ROBUST_LIST = 305 - SYS_SPLICE = 306 - SYS_SYNC_FILE_RANGE = 307 - SYS_TEE = 308 - SYS_VMSPLICE = 309 - SYS_MOVE_PAGES = 310 - SYS_GETCPU = 311 - SYS_EPOLL_PWAIT = 312 - SYS_UTIMES = 313 - SYS_FALLOCATE = 314 - SYS_UTIMENSAT = 315 - SYS_SIGNALFD = 316 - SYS_TIMERFD = 317 - SYS_EVENTFD = 318 - SYS_TIMERFD_CREATE = 319 - SYS_TIMERFD_SETTIME = 320 - SYS_TIMERFD_GETTIME = 321 - SYS_SIGNALFD4 = 322 - SYS_EVENTFD2 = 323 - SYS_INOTIFY_INIT1 = 324 - SYS_PIPE2 = 325 - SYS_DUP3 = 326 - SYS_EPOLL_CREATE1 = 327 - SYS_PREADV = 328 - SYS_PWRITEV = 329 - SYS_RT_TGSIGQUEUEINFO = 330 - SYS_PERF_EVENT_OPEN = 331 - SYS_FANOTIFY_INIT = 332 - SYS_FANOTIFY_MARK = 333 - SYS_PRLIMIT64 = 334 - SYS_NAME_TO_HANDLE_AT = 335 - SYS_OPEN_BY_HANDLE_AT = 336 - SYS_CLOCK_ADJTIME = 337 - SYS_SYNCFS = 338 - SYS_SETNS = 339 - SYS_PROCESS_VM_READV = 340 - SYS_PROCESS_VM_WRITEV = 341 - SYS_S390_RUNTIME_INSTR = 342 - SYS_KCMP = 343 - SYS_FINIT_MODULE = 344 - SYS_SCHED_SETATTR = 345 - SYS_SCHED_GETATTR = 346 - SYS_RENAMEAT2 = 347 - SYS_SECCOMP = 348 - SYS_GETRANDOM = 349 - SYS_MEMFD_CREATE = 350 - SYS_BPF = 351 - SYS_S390_PCI_MMIO_WRITE = 352 - SYS_S390_PCI_MMIO_READ = 353 - SYS_EXECVEAT = 354 - SYS_USERFAULTFD = 355 - SYS_MEMBARRIER = 356 - SYS_RECVMMSG = 357 - SYS_SENDMMSG = 358 - SYS_SOCKET = 359 - SYS_SOCKETPAIR = 360 - SYS_BIND = 361 - SYS_CONNECT = 362 - SYS_LISTEN = 363 - SYS_ACCEPT4 = 364 - SYS_GETSOCKOPT = 365 - SYS_SETSOCKOPT = 366 - SYS_GETSOCKNAME = 367 - SYS_GETPEERNAME = 368 - SYS_SENDTO = 369 - SYS_SENDMSG = 370 - SYS_RECVFROM = 371 - SYS_RECVMSG = 372 - SYS_SHUTDOWN = 373 - SYS_MLOCK2 = 374 - SYS_COPY_FILE_RANGE = 375 - SYS_PREADV2 = 376 - SYS_PWRITEV2 = 377 - SYS_S390_GUARDED_STORAGE = 378 - SYS_STATX = 379 - SYS_S390_STHYI = 380 - SYS_KEXEC_FILE_LOAD = 381 - SYS_IO_PGETEVENTS = 382 - SYS_RSEQ = 383 - SYS_PKEY_MPROTECT = 384 - SYS_PKEY_ALLOC = 385 - SYS_PKEY_FREE = 386 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go deleted file mode 100644 index 92f628ef..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ /dev/null @@ -1,392 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux -// +build sparc64,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECV = 11 - SYS_CHDIR = 12 - SYS_CHOWN = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BRK = 17 - SYS_PERFCTR = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_CAPGET = 21 - SYS_CAPSET = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_VMSPLICE = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_SIGALTSTACK = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_STAT = 38 - SYS_SENDFILE = 39 - SYS_LSTAT = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_UMOUNT2 = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_MEMORY_ORDERING = 52 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_FSTAT = 62 - SYS_FSTAT64 = 63 - SYS_GETPAGESIZE = 64 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_MMAP = 71 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_VHANGUP = 76 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_SETHOSTNAME = 88 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_ACCEPT = 99 - SYS_GETPRIORITY = 100 - SYS_RT_SIGRETURN = 101 - SYS_RT_SIGACTION = 102 - SYS_RT_SIGPROCMASK = 103 - SYS_RT_SIGPENDING = 104 - SYS_RT_SIGTIMEDWAIT = 105 - SYS_RT_SIGQUEUEINFO = 106 - SYS_RT_SIGSUSPEND = 107 - SYS_SETRESUID = 108 - SYS_GETRESUID = 109 - SYS_SETRESGID = 110 - SYS_GETRESGID = 111 - SYS_RECVMSG = 113 - SYS_SENDMSG = 114 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_GETCWD = 119 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_RECVFROM = 125 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_TRUNCATE = 129 - SYS_FTRUNCATE = 130 - SYS_FLOCK = 131 - SYS_LSTAT64 = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_STAT64 = 139 - SYS_SENDFILE64 = 140 - SYS_GETPEERNAME = 141 - SYS_FUTEX = 142 - SYS_GETTID = 143 - SYS_GETRLIMIT = 144 - SYS_SETRLIMIT = 145 - SYS_PIVOT_ROOT = 146 - SYS_PRCTL = 147 - SYS_PCICONFIG_READ = 148 - SYS_PCICONFIG_WRITE = 149 - SYS_GETSOCKNAME = 150 - SYS_INOTIFY_INIT = 151 - SYS_INOTIFY_ADD_WATCH = 152 - SYS_POLL = 153 - SYS_GETDENTS64 = 154 - SYS_INOTIFY_RM_WATCH = 156 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UMOUNT = 159 - SYS_SCHED_SET_AFFINITY = 160 - SYS_SCHED_GET_AFFINITY = 161 - SYS_GETDOMAINNAME = 162 - SYS_SETDOMAINNAME = 163 - SYS_UTRAP_INSTALL = 164 - SYS_QUOTACTL = 165 - SYS_SET_TID_ADDRESS = 166 - SYS_MOUNT = 167 - SYS_USTAT = 168 - SYS_SETXATTR = 169 - SYS_LSETXATTR = 170 - SYS_FSETXATTR = 171 - SYS_GETXATTR = 172 - SYS_LGETXATTR = 173 - SYS_GETDENTS = 174 - SYS_SETSID = 175 - SYS_FCHDIR = 176 - SYS_FGETXATTR = 177 - SYS_LISTXATTR = 178 - SYS_LLISTXATTR = 179 - SYS_FLISTXATTR = 180 - SYS_REMOVEXATTR = 181 - SYS_LREMOVEXATTR = 182 - SYS_SIGPENDING = 183 - SYS_QUERY_MODULE = 184 - SYS_SETPGID = 185 - SYS_FREMOVEXATTR = 186 - SYS_TKILL = 187 - SYS_EXIT_GROUP = 188 - SYS_UNAME = 189 - SYS_INIT_MODULE = 190 - SYS_PERSONALITY = 191 - SYS_REMAP_FILE_PAGES = 192 - SYS_EPOLL_CREATE = 193 - SYS_EPOLL_CTL = 194 - SYS_EPOLL_WAIT = 195 - SYS_IOPRIO_SET = 196 - SYS_GETPPID = 197 - SYS_SIGACTION = 198 - SYS_SGETMASK = 199 - SYS_SSETMASK = 200 - SYS_SIGSUSPEND = 201 - SYS_OLDLSTAT = 202 - SYS_USELIB = 203 - SYS_READDIR = 204 - SYS_READAHEAD = 205 - SYS_SOCKETCALL = 206 - SYS_SYSLOG = 207 - SYS_LOOKUP_DCOOKIE = 208 - SYS_FADVISE64 = 209 - SYS_FADVISE64_64 = 210 - SYS_TGKILL = 211 - SYS_WAITPID = 212 - SYS_SWAPOFF = 213 - SYS_SYSINFO = 214 - SYS_IPC = 215 - SYS_SIGRETURN = 216 - SYS_CLONE = 217 - SYS_IOPRIO_GET = 218 - SYS_ADJTIMEX = 219 - SYS_SIGPROCMASK = 220 - SYS_CREATE_MODULE = 221 - SYS_DELETE_MODULE = 222 - SYS_GET_KERNEL_SYMS = 223 - SYS_GETPGID = 224 - SYS_BDFLUSH = 225 - SYS_SYSFS = 226 - SYS_AFS_SYSCALL = 227 - SYS_SETFSUID = 228 - SYS_SETFSGID = 229 - SYS__NEWSELECT = 230 - SYS_SPLICE = 232 - SYS_STIME = 233 - SYS_STATFS64 = 234 - SYS_FSTATFS64 = 235 - SYS__LLSEEK = 236 - SYS_MLOCK = 237 - SYS_MUNLOCK = 238 - SYS_MLOCKALL = 239 - SYS_MUNLOCKALL = 240 - SYS_SCHED_SETPARAM = 241 - SYS_SCHED_GETPARAM = 242 - SYS_SCHED_SETSCHEDULER = 243 - SYS_SCHED_GETSCHEDULER = 244 - SYS_SCHED_YIELD = 245 - SYS_SCHED_GET_PRIORITY_MAX = 246 - SYS_SCHED_GET_PRIORITY_MIN = 247 - SYS_SCHED_RR_GET_INTERVAL = 248 - SYS_NANOSLEEP = 249 - SYS_MREMAP = 250 - SYS__SYSCTL = 251 - SYS_GETSID = 252 - SYS_FDATASYNC = 253 - SYS_NFSSERVCTL = 254 - SYS_SYNC_FILE_RANGE = 255 - SYS_CLOCK_SETTIME = 256 - SYS_CLOCK_GETTIME = 257 - SYS_CLOCK_GETRES = 258 - SYS_CLOCK_NANOSLEEP = 259 - SYS_SCHED_GETAFFINITY = 260 - SYS_SCHED_SETAFFINITY = 261 - SYS_TIMER_SETTIME = 262 - SYS_TIMER_GETTIME = 263 - SYS_TIMER_GETOVERRUN = 264 - SYS_TIMER_DELETE = 265 - SYS_TIMER_CREATE = 266 - SYS_VSERVER = 267 - SYS_IO_SETUP = 268 - SYS_IO_DESTROY = 269 - SYS_IO_SUBMIT = 270 - SYS_IO_CANCEL = 271 - SYS_IO_GETEVENTS = 272 - SYS_MQ_OPEN = 273 - SYS_MQ_UNLINK = 274 - SYS_MQ_TIMEDSEND = 275 - SYS_MQ_TIMEDRECEIVE = 276 - SYS_MQ_NOTIFY = 277 - SYS_MQ_GETSETATTR = 278 - SYS_WAITID = 279 - SYS_TEE = 280 - SYS_ADD_KEY = 281 - SYS_REQUEST_KEY = 282 - SYS_KEYCTL = 283 - SYS_OPENAT = 284 - SYS_MKDIRAT = 285 - SYS_MKNODAT = 286 - SYS_FCHOWNAT = 287 - SYS_FUTIMESAT = 288 - SYS_FSTATAT64 = 289 - SYS_UNLINKAT = 290 - SYS_RENAMEAT = 291 - SYS_LINKAT = 292 - SYS_SYMLINKAT = 293 - SYS_READLINKAT = 294 - SYS_FCHMODAT = 295 - SYS_FACCESSAT = 296 - SYS_PSELECT6 = 297 - SYS_PPOLL = 298 - SYS_UNSHARE = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_GET_ROBUST_LIST = 301 - SYS_MIGRATE_PAGES = 302 - SYS_MBIND = 303 - SYS_GET_MEMPOLICY = 304 - SYS_SET_MEMPOLICY = 305 - SYS_KEXEC_LOAD = 306 - SYS_MOVE_PAGES = 307 - SYS_GETCPU = 308 - SYS_EPOLL_PWAIT = 309 - SYS_UTIMENSAT = 310 - SYS_SIGNALFD = 311 - SYS_TIMERFD_CREATE = 312 - SYS_EVENTFD = 313 - SYS_FALLOCATE = 314 - SYS_TIMERFD_SETTIME = 315 - SYS_TIMERFD_GETTIME = 316 - SYS_SIGNALFD4 = 317 - SYS_EVENTFD2 = 318 - SYS_EPOLL_CREATE1 = 319 - SYS_DUP3 = 320 - SYS_PIPE2 = 321 - SYS_INOTIFY_INIT1 = 322 - SYS_ACCEPT4 = 323 - SYS_PREADV = 324 - SYS_PWRITEV = 325 - SYS_RT_TGSIGQUEUEINFO = 326 - SYS_PERF_EVENT_OPEN = 327 - SYS_RECVMMSG = 328 - SYS_FANOTIFY_INIT = 329 - SYS_FANOTIFY_MARK = 330 - SYS_PRLIMIT64 = 331 - SYS_NAME_TO_HANDLE_AT = 332 - SYS_OPEN_BY_HANDLE_AT = 333 - SYS_CLOCK_ADJTIME = 334 - SYS_SYNCFS = 335 - SYS_SENDMMSG = 336 - SYS_SETNS = 337 - SYS_PROCESS_VM_READV = 338 - SYS_PROCESS_VM_WRITEV = 339 - SYS_KERN_FEATURES = 340 - SYS_KCMP = 341 - SYS_FINIT_MODULE = 342 - SYS_SCHED_SETATTR = 343 - SYS_SCHED_GETATTR = 344 - SYS_RENAMEAT2 = 345 - SYS_SECCOMP = 346 - SYS_GETRANDOM = 347 - SYS_MEMFD_CREATE = 348 - SYS_BPF = 349 - SYS_EXECVEAT = 350 - SYS_MEMBARRIER = 351 - SYS_USERFAULTFD = 352 - SYS_BIND = 353 - SYS_LISTEN = 354 - SYS_SETSOCKOPT = 355 - SYS_MLOCK2 = 356 - SYS_COPY_FILE_RANGE = 357 - SYS_PREADV2 = 358 - SYS_PWRITEV2 = 359 - SYS_STATX = 360 - SYS_IO_PGETEVENTS = 361 - SYS_PKEY_MPROTECT = 362 - SYS_PKEY_ALLOC = 363 - SYS_PKEY_FREE = 364 - SYS_RSEQ = 365 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go deleted file mode 100644 index 3a6699eb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ /dev/null @@ -1,275 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd -// +build 386,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go deleted file mode 100644 index 5677cd4f..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ /dev/null @@ -1,275 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd -// +build amd64,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go deleted file mode 100644 index e784cb6d..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ /dev/null @@ -1,275 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd -// +build arm,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go deleted file mode 100644 index bd4952ef..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +++ /dev/null @@ -1,275 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; DO NOT EDIT. - -//go:build arm64 && netbsd -// +build arm64,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go deleted file mode 100644 index 59773381..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ /dev/null @@ -1,220 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && openbsd -// +build 386,openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go deleted file mode 100644 index 16af2918..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ /dev/null @@ -1,220 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && openbsd -// +build amd64,openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go deleted file mode 100644 index f59b18a9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ /dev/null @@ -1,220 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && openbsd -// +build arm,openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go deleted file mode 100644 index 721ef591..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +++ /dev/null @@ -1,219 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && openbsd -// +build arm64,openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go deleted file mode 100644 index 01c43a01..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +++ /dev/null @@ -1,222 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && openbsd -// +build mips64,openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_MSYSCALL = 37 // { int sys_msyscall(void *addr, size_t len); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS___REALPATH = 115 // { int sys___realpath(const char *pathname, char *resolved); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS___TMPFD = 164 // { int sys___tmpfd(int flags); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go deleted file mode 100644 index f258cfa2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +++ /dev/null @@ -1,218 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && openbsd -// +build ppc64,openbsd - -package unix - -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go deleted file mode 100644 index 07919e0e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +++ /dev/null @@ -1,219 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && openbsd -// +build riscv64,openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/backend/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/backend/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go deleted file mode 100644 index 073daad4..00000000 --- a/backend/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +++ /dev/null @@ -1,2670 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -package unix - -// TODO: auto-generate. - -const ( - SYS_ACOSD128 = 0xB80 - SYS_ACOSD32 = 0xB7E - SYS_ACOSD64 = 0xB7F - SYS_ACOSHD128 = 0xB83 - SYS_ACOSHD32 = 0xB81 - SYS_ACOSHD64 = 0xB82 - SYS_AIO_FSYNC = 0xC69 - SYS_ASCTIME = 0x0AE - SYS_ASCTIME64 = 0xCD7 - SYS_ASCTIME64_R = 0xCD8 - SYS_ASIND128 = 0xB86 - SYS_ASIND32 = 0xB84 - SYS_ASIND64 = 0xB85 - SYS_ASINHD128 = 0xB89 - SYS_ASINHD32 = 0xB87 - SYS_ASINHD64 = 0xB88 - SYS_ATAN2D128 = 0xB8F - SYS_ATAN2D32 = 0xB8D - SYS_ATAN2D64 = 0xB8E - SYS_ATAND128 = 0xB8C - SYS_ATAND32 = 0xB8A - SYS_ATAND64 = 0xB8B - SYS_ATANHD128 = 0xB92 - SYS_ATANHD32 = 0xB90 - SYS_ATANHD64 = 0xB91 - SYS_BIND2ADDRSEL = 0xD59 - SYS_C16RTOMB = 0xD40 - SYS_C32RTOMB = 0xD41 - SYS_CBRTD128 = 0xB95 - SYS_CBRTD32 = 0xB93 - SYS_CBRTD64 = 0xB94 - SYS_CEILD128 = 0xB98 - SYS_CEILD32 = 0xB96 - SYS_CEILD64 = 0xB97 - SYS_CLEARENV = 0x0C9 - SYS_CLEARERR_UNLOCKED = 0xCA1 - SYS_CLOCK = 0x0AA - SYS_CLOGL = 0xA00 - SYS_CLRMEMF = 0x0BD - SYS_CONJ = 0xA03 - SYS_CONJF = 0xA06 - SYS_CONJL = 0xA09 - SYS_COPYSIGND128 = 0xB9E - SYS_COPYSIGND32 = 0xB9C - SYS_COPYSIGND64 = 0xB9D - SYS_COSD128 = 0xBA1 - SYS_COSD32 = 0xB9F - SYS_COSD64 = 0xBA0 - SYS_COSHD128 = 0xBA4 - SYS_COSHD32 = 0xBA2 - SYS_COSHD64 = 0xBA3 - SYS_CPOW = 0xA0C - SYS_CPOWF = 0xA0F - SYS_CPOWL = 0xA12 - SYS_CPROJ = 0xA15 - SYS_CPROJF = 0xA18 - SYS_CPROJL = 0xA1B - SYS_CREAL = 0xA1E - SYS_CREALF = 0xA21 - SYS_CREALL = 0xA24 - SYS_CSIN = 0xA27 - SYS_CSINF = 0xA2A - SYS_CSINH = 0xA30 - SYS_CSINHF = 0xA33 - SYS_CSINHL = 0xA36 - SYS_CSINL = 0xA2D - SYS_CSNAP = 0x0C5 - SYS_CSQRT = 0xA39 - SYS_CSQRTF = 0xA3C - SYS_CSQRTL = 0xA3F - SYS_CTAN = 0xA42 - SYS_CTANF = 0xA45 - SYS_CTANH = 0xA4B - SYS_CTANHF = 0xA4E - SYS_CTANHL = 0xA51 - SYS_CTANL = 0xA48 - SYS_CTIME = 0x0AB - SYS_CTIME64 = 0xCD9 - SYS_CTIME64_R = 0xCDA - SYS_CTRACE = 0x0C6 - SYS_DIFFTIME = 0x0A7 - SYS_DIFFTIME64 = 0xCDB - SYS_DLADDR = 0xC82 - SYS_DYNALLOC = 0x0C3 - SYS_DYNFREE = 0x0C2 - SYS_ERFCD128 = 0xBAA - SYS_ERFCD32 = 0xBA8 - SYS_ERFCD64 = 0xBA9 - SYS_ERFD128 = 0xBA7 - SYS_ERFD32 = 0xBA5 - SYS_ERFD64 = 0xBA6 - SYS_EXP2D128 = 0xBB0 - SYS_EXP2D32 = 0xBAE - SYS_EXP2D64 = 0xBAF - SYS_EXPD128 = 0xBAD - SYS_EXPD32 = 0xBAB - SYS_EXPD64 = 0xBAC - SYS_EXPM1D128 = 0xBB3 - SYS_EXPM1D32 = 0xBB1 - SYS_EXPM1D64 = 0xBB2 - SYS_FABSD128 = 0xBB6 - SYS_FABSD32 = 0xBB4 - SYS_FABSD64 = 0xBB5 - SYS_FDELREC_UNLOCKED = 0xCA2 - SYS_FDIMD128 = 0xBB9 - SYS_FDIMD32 = 0xBB7 - SYS_FDIMD64 = 0xBB8 - SYS_FDOPEN_UNLOCKED = 0xCFC - SYS_FECLEAREXCEPT = 0xAEA - SYS_FEGETENV = 0xAEB - SYS_FEGETEXCEPTFLAG = 0xAEC - SYS_FEGETROUND = 0xAED - SYS_FEHOLDEXCEPT = 0xAEE - SYS_FEOF_UNLOCKED = 0xCA3 - SYS_FERAISEEXCEPT = 0xAEF - SYS_FERROR_UNLOCKED = 0xCA4 - SYS_FESETENV = 0xAF0 - SYS_FESETEXCEPTFLAG = 0xAF1 - SYS_FESETROUND = 0xAF2 - SYS_FETCHEP = 0x0BF - SYS_FETESTEXCEPT = 0xAF3 - SYS_FEUPDATEENV = 0xAF4 - SYS_FE_DEC_GETROUND = 0xBBA - SYS_FE_DEC_SETROUND = 0xBBB - SYS_FFLUSH_UNLOCKED = 0xCA5 - SYS_FGETC_UNLOCKED = 0xC80 - SYS_FGETPOS64 = 0xCEE - SYS_FGETPOS64_UNLOCKED = 0xCF4 - SYS_FGETPOS_UNLOCKED = 0xCA6 - SYS_FGETS_UNLOCKED = 0xC7C - SYS_FGETWC_UNLOCKED = 0xCA7 - SYS_FGETWS_UNLOCKED = 0xCA8 - SYS_FILENO_UNLOCKED = 0xCA9 - SYS_FLDATA = 0x0C1 - SYS_FLDATA_UNLOCKED = 0xCAA - SYS_FLOCATE_UNLOCKED = 0xCAB - SYS_FLOORD128 = 0xBBE - SYS_FLOORD32 = 0xBBC - SYS_FLOORD64 = 0xBBD - SYS_FMA = 0xA63 - SYS_FMAD128 = 0xBC1 - SYS_FMAD32 = 0xBBF - SYS_FMAD64 = 0xBC0 - SYS_FMAF = 0xA66 - SYS_FMAL = 0xA69 - SYS_FMAX = 0xA6C - SYS_FMAXD128 = 0xBC4 - SYS_FMAXD32 = 0xBC2 - SYS_FMAXD64 = 0xBC3 - SYS_FMAXF = 0xA6F - SYS_FMAXL = 0xA72 - SYS_FMIN = 0xA75 - SYS_FMIND128 = 0xBC7 - SYS_FMIND32 = 0xBC5 - SYS_FMIND64 = 0xBC6 - SYS_FMINF = 0xA78 - SYS_FMINL = 0xA7B - SYS_FMODD128 = 0xBCA - SYS_FMODD32 = 0xBC8 - SYS_FMODD64 = 0xBC9 - SYS_FOPEN64 = 0xD49 - SYS_FOPEN64_UNLOCKED = 0xD4A - SYS_FOPEN_UNLOCKED = 0xCFA - SYS_FPRINTF_UNLOCKED = 0xCAC - SYS_FPUTC_UNLOCKED = 0xC81 - SYS_FPUTS_UNLOCKED = 0xC7E - SYS_FPUTWC_UNLOCKED = 0xCAD - SYS_FPUTWS_UNLOCKED = 0xCAE - SYS_FREAD_NOUPDATE = 0xCEC - SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED - SYS_FREAD_UNLOCKED = 0xC7B - SYS_FREEIFADDRS = 0xCE6 - SYS_FREOPEN64 = 0xD4B - SYS_FREOPEN64_UNLOCKED = 0xD4C - SYS_FREOPEN_UNLOCKED = 0xCFB - SYS_FREXPD128 = 0xBCE - SYS_FREXPD32 = 0xBCC - SYS_FREXPD64 = 0xBCD - SYS_FSCANF_UNLOCKED = 0xCAF - SYS_FSEEK64 = 0xCEF - SYS_FSEEK64_UNLOCKED = 0xCF5 - SYS_FSEEKO64 = 0xCF0 - SYS_FSEEKO64_UNLOCKED = 0xCF6 - SYS_FSEEKO_UNLOCKED = 0xCB1 - SYS_FSEEK_UNLOCKED = 0xCB0 - SYS_FSETPOS64 = 0xCF1 - SYS_FSETPOS64_UNLOCKED = 0xCF7 - SYS_FSETPOS_UNLOCKED = 0xCB3 - SYS_FTELL64 = 0xCF2 - SYS_FTELL64_UNLOCKED = 0xCF8 - SYS_FTELLO64 = 0xCF3 - SYS_FTELLO64_UNLOCKED = 0xCF9 - SYS_FTELLO_UNLOCKED = 0xCB5 - SYS_FTELL_UNLOCKED = 0xCB4 - SYS_FUPDATE = 0x0B5 - SYS_FUPDATE_UNLOCKED = 0xCB7 - SYS_FWIDE_UNLOCKED = 0xCB8 - SYS_FWPRINTF_UNLOCKED = 0xCB9 - SYS_FWRITE_UNLOCKED = 0xC7A - SYS_FWSCANF_UNLOCKED = 0xCBA - SYS_GETDATE64 = 0xD4F - SYS_GETIFADDRS = 0xCE7 - SYS_GETIPV4SOURCEFILTER = 0xC77 - SYS_GETSOURCEFILTER = 0xC79 - SYS_GETSYNTX = 0x0FD - SYS_GETS_UNLOCKED = 0xC7D - SYS_GETTIMEOFDAY64 = 0xD50 - SYS_GETWCHAR_UNLOCKED = 0xCBC - SYS_GETWC_UNLOCKED = 0xCBB - SYS_GMTIME = 0x0B0 - SYS_GMTIME64 = 0xCDC - SYS_GMTIME64_R = 0xCDD - SYS_HYPOTD128 = 0xBD1 - SYS_HYPOTD32 = 0xBCF - SYS_HYPOTD64 = 0xBD0 - SYS_ILOGBD128 = 0xBD4 - SYS_ILOGBD32 = 0xBD2 - SYS_ILOGBD64 = 0xBD3 - SYS_ILOGBF = 0xA7E - SYS_ILOGBL = 0xA81 - SYS_INET6_IS_SRCADDR = 0xD5A - SYS_ISBLANK = 0x0FE - SYS_ISWALNUM = 0x0FF - SYS_LDEXPD128 = 0xBD7 - SYS_LDEXPD32 = 0xBD5 - SYS_LDEXPD64 = 0xBD6 - SYS_LGAMMAD128 = 0xBDA - SYS_LGAMMAD32 = 0xBD8 - SYS_LGAMMAD64 = 0xBD9 - SYS_LIO_LISTIO = 0xC6A - SYS_LLRINT = 0xA84 - SYS_LLRINTD128 = 0xBDD - SYS_LLRINTD32 = 0xBDB - SYS_LLRINTD64 = 0xBDC - SYS_LLRINTF = 0xA87 - SYS_LLRINTL = 0xA8A - SYS_LLROUND = 0xA8D - SYS_LLROUNDD128 = 0xBE0 - SYS_LLROUNDD32 = 0xBDE - SYS_LLROUNDD64 = 0xBDF - SYS_LLROUNDF = 0xA90 - SYS_LLROUNDL = 0xA93 - SYS_LOCALTIM = 0x0B1 - SYS_LOCALTIME = 0x0B1 - SYS_LOCALTIME64 = 0xCDE - SYS_LOCALTIME64_R = 0xCDF - SYS_LOG10D128 = 0xBE6 - SYS_LOG10D32 = 0xBE4 - SYS_LOG10D64 = 0xBE5 - SYS_LOG1PD128 = 0xBE9 - SYS_LOG1PD32 = 0xBE7 - SYS_LOG1PD64 = 0xBE8 - SYS_LOG2D128 = 0xBEC - SYS_LOG2D32 = 0xBEA - SYS_LOG2D64 = 0xBEB - SYS_LOGBD128 = 0xBEF - SYS_LOGBD32 = 0xBED - SYS_LOGBD64 = 0xBEE - SYS_LOGBF = 0xA96 - SYS_LOGBL = 0xA99 - SYS_LOGD128 = 0xBE3 - SYS_LOGD32 = 0xBE1 - SYS_LOGD64 = 0xBE2 - SYS_LRINT = 0xA9C - SYS_LRINTD128 = 0xBF2 - SYS_LRINTD32 = 0xBF0 - SYS_LRINTD64 = 0xBF1 - SYS_LRINTF = 0xA9F - SYS_LRINTL = 0xAA2 - SYS_LROUNDD128 = 0xBF5 - SYS_LROUNDD32 = 0xBF3 - SYS_LROUNDD64 = 0xBF4 - SYS_LROUNDL = 0xAA5 - SYS_MBLEN = 0x0AF - SYS_MBRTOC16 = 0xD42 - SYS_MBRTOC32 = 0xD43 - SYS_MEMSET = 0x0A3 - SYS_MKTIME = 0x0AC - SYS_MKTIME64 = 0xCE0 - SYS_MODFD128 = 0xBF8 - SYS_MODFD32 = 0xBF6 - SYS_MODFD64 = 0xBF7 - SYS_NAN = 0xAA8 - SYS_NAND128 = 0xBFB - SYS_NAND32 = 0xBF9 - SYS_NAND64 = 0xBFA - SYS_NANF = 0xAAA - SYS_NANL = 0xAAC - SYS_NEARBYINT = 0xAAE - SYS_NEARBYINTD128 = 0xBFE - SYS_NEARBYINTD32 = 0xBFC - SYS_NEARBYINTD64 = 0xBFD - SYS_NEARBYINTF = 0xAB1 - SYS_NEARBYINTL = 0xAB4 - SYS_NEXTAFTERD128 = 0xC01 - SYS_NEXTAFTERD32 = 0xBFF - SYS_NEXTAFTERD64 = 0xC00 - SYS_NEXTAFTERF = 0xAB7 - SYS_NEXTAFTERL = 0xABA - SYS_NEXTTOWARD = 0xABD - SYS_NEXTTOWARDD128 = 0xC04 - SYS_NEXTTOWARDD32 = 0xC02 - SYS_NEXTTOWARDD64 = 0xC03 - SYS_NEXTTOWARDF = 0xAC0 - SYS_NEXTTOWARDL = 0xAC3 - SYS_NL_LANGINFO = 0x0FC - SYS_PERROR_UNLOCKED = 0xCBD - SYS_POSIX_FALLOCATE = 0xCE8 - SYS_POSIX_MEMALIGN = 0xCE9 - SYS_POSIX_OPENPT = 0xC66 - SYS_POWD128 = 0xC07 - SYS_POWD32 = 0xC05 - SYS_POWD64 = 0xC06 - SYS_PRINTF_UNLOCKED = 0xCBE - SYS_PSELECT = 0xC67 - SYS_PTHREAD_ATTR_GETSTACK = 0xB3E - SYS_PTHREAD_ATTR_SETSTACK = 0xB3F - SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 - SYS_PUTS_UNLOCKED = 0xC7F - SYS_PUTWCHAR_UNLOCKED = 0xCC0 - SYS_PUTWC_UNLOCKED = 0xCBF - SYS_QUANTEXPD128 = 0xD46 - SYS_QUANTEXPD32 = 0xD44 - SYS_QUANTEXPD64 = 0xD45 - SYS_QUANTIZED128 = 0xC0A - SYS_QUANTIZED32 = 0xC08 - SYS_QUANTIZED64 = 0xC09 - SYS_REMAINDERD128 = 0xC0D - SYS_REMAINDERD32 = 0xC0B - SYS_REMAINDERD64 = 0xC0C - SYS_RESIZE_ALLOC = 0xCEB - SYS_REWIND_UNLOCKED = 0xCC1 - SYS_RINTD128 = 0xC13 - SYS_RINTD32 = 0xC11 - SYS_RINTD64 = 0xC12 - SYS_RINTF = 0xACB - SYS_RINTL = 0xACD - SYS_ROUND = 0xACF - SYS_ROUNDD128 = 0xC16 - SYS_ROUNDD32 = 0xC14 - SYS_ROUNDD64 = 0xC15 - SYS_ROUNDF = 0xAD2 - SYS_ROUNDL = 0xAD5 - SYS_SAMEQUANTUMD128 = 0xC19 - SYS_SAMEQUANTUMD32 = 0xC17 - SYS_SAMEQUANTUMD64 = 0xC18 - SYS_SCALBLN = 0xAD8 - SYS_SCALBLND128 = 0xC1C - SYS_SCALBLND32 = 0xC1A - SYS_SCALBLND64 = 0xC1B - SYS_SCALBLNF = 0xADB - SYS_SCALBLNL = 0xADE - SYS_SCALBND128 = 0xC1F - SYS_SCALBND32 = 0xC1D - SYS_SCALBND64 = 0xC1E - SYS_SCALBNF = 0xAE3 - SYS_SCALBNL = 0xAE6 - SYS_SCANF_UNLOCKED = 0xCC2 - SYS_SCHED_YIELD = 0xB32 - SYS_SETENV = 0x0C8 - SYS_SETIPV4SOURCEFILTER = 0xC76 - SYS_SETSOURCEFILTER = 0xC78 - SYS_SHM_OPEN = 0xC8C - SYS_SHM_UNLINK = 0xC8D - SYS_SIND128 = 0xC22 - SYS_SIND32 = 0xC20 - SYS_SIND64 = 0xC21 - SYS_SINHD128 = 0xC25 - SYS_SINHD32 = 0xC23 - SYS_SINHD64 = 0xC24 - SYS_SIZEOF_ALLOC = 0xCEA - SYS_SOCKATMARK = 0xC68 - SYS_SQRTD128 = 0xC28 - SYS_SQRTD32 = 0xC26 - SYS_SQRTD64 = 0xC27 - SYS_STRCHR = 0x0A0 - SYS_STRCSPN = 0x0A1 - SYS_STRERROR = 0x0A8 - SYS_STRERROR_R = 0xB33 - SYS_STRFTIME = 0x0B2 - SYS_STRLEN = 0x0A9 - SYS_STRPBRK = 0x0A2 - SYS_STRSPN = 0x0A4 - SYS_STRSTR = 0x0A5 - SYS_STRTOD128 = 0xC2B - SYS_STRTOD32 = 0xC29 - SYS_STRTOD64 = 0xC2A - SYS_STRTOK = 0x0A6 - SYS_TAND128 = 0xC2E - SYS_TAND32 = 0xC2C - SYS_TAND64 = 0xC2D - SYS_TANHD128 = 0xC31 - SYS_TANHD32 = 0xC2F - SYS_TANHD64 = 0xC30 - SYS_TGAMMAD128 = 0xC34 - SYS_TGAMMAD32 = 0xC32 - SYS_TGAMMAD64 = 0xC33 - SYS_TIME = 0x0AD - SYS_TIME64 = 0xCE1 - SYS_TMPFILE64 = 0xD4D - SYS_TMPFILE64_UNLOCKED = 0xD4E - SYS_TMPFILE_UNLOCKED = 0xCFD - SYS_TRUNCD128 = 0xC40 - SYS_TRUNCD32 = 0xC3E - SYS_TRUNCD64 = 0xC3F - SYS_UNGETC_UNLOCKED = 0xCC3 - SYS_UNGETWC_UNLOCKED = 0xCC4 - SYS_UNSETENV = 0xB34 - SYS_VFPRINTF_UNLOCKED = 0xCC5 - SYS_VFSCANF_UNLOCKED = 0xCC7 - SYS_VFWPRINTF_UNLOCKED = 0xCC9 - SYS_VFWSCANF_UNLOCKED = 0xCCB - SYS_VPRINTF_UNLOCKED = 0xCCD - SYS_VSCANF_UNLOCKED = 0xCCF - SYS_VWPRINTF_UNLOCKED = 0xCD1 - SYS_VWSCANF_UNLOCKED = 0xCD3 - SYS_WCSTOD128 = 0xC43 - SYS_WCSTOD32 = 0xC41 - SYS_WCSTOD64 = 0xC42 - SYS_WPRINTF_UNLOCKED = 0xCD5 - SYS_WSCANF_UNLOCKED = 0xCD6 - SYS__FLUSHLBF = 0xD68 - SYS__FLUSHLBF_UNLOCKED = 0xD6F - SYS___ACOSHF_H = 0xA54 - SYS___ACOSHL_H = 0xA55 - SYS___ASINHF_H = 0xA56 - SYS___ASINHL_H = 0xA57 - SYS___ATANPID128 = 0xC6D - SYS___ATANPID32 = 0xC6B - SYS___ATANPID64 = 0xC6C - SYS___CBRTF_H = 0xA58 - SYS___CBRTL_H = 0xA59 - SYS___CDUMP = 0x0C4 - SYS___CLASS = 0xAFA - SYS___CLASS2 = 0xB99 - SYS___CLASS2D128 = 0xC99 - SYS___CLASS2D32 = 0xC97 - SYS___CLASS2D64 = 0xC98 - SYS___CLASS2F = 0xC91 - SYS___CLASS2F_B = 0xC93 - SYS___CLASS2F_H = 0xC94 - SYS___CLASS2L = 0xC92 - SYS___CLASS2L_B = 0xC95 - SYS___CLASS2L_H = 0xC96 - SYS___CLASS2_B = 0xB9A - SYS___CLASS2_H = 0xB9B - SYS___CLASS_B = 0xAFB - SYS___CLASS_H = 0xAFC - SYS___CLOGL_B = 0xA01 - SYS___CLOGL_H = 0xA02 - SYS___CLRENV = 0x0C9 - SYS___CLRMF = 0x0BD - SYS___CODEPAGE_INFO = 0xC64 - SYS___CONJF_B = 0xA07 - SYS___CONJF_H = 0xA08 - SYS___CONJL_B = 0xA0A - SYS___CONJL_H = 0xA0B - SYS___CONJ_B = 0xA04 - SYS___CONJ_H = 0xA05 - SYS___COPYSIGN_B = 0xA5A - SYS___COPYSIGN_H = 0xAF5 - SYS___COSPID128 = 0xC70 - SYS___COSPID32 = 0xC6E - SYS___COSPID64 = 0xC6F - SYS___CPOWF_B = 0xA10 - SYS___CPOWF_H = 0xA11 - SYS___CPOWL_B = 0xA13 - SYS___CPOWL_H = 0xA14 - SYS___CPOW_B = 0xA0D - SYS___CPOW_H = 0xA0E - SYS___CPROJF_B = 0xA19 - SYS___CPROJF_H = 0xA1A - SYS___CPROJL_B = 0xA1C - SYS___CPROJL_H = 0xA1D - SYS___CPROJ_B = 0xA16 - SYS___CPROJ_H = 0xA17 - SYS___CREALF_B = 0xA22 - SYS___CREALF_H = 0xA23 - SYS___CREALL_B = 0xA25 - SYS___CREALL_H = 0xA26 - SYS___CREAL_B = 0xA1F - SYS___CREAL_H = 0xA20 - SYS___CSINF_B = 0xA2B - SYS___CSINF_H = 0xA2C - SYS___CSINHF_B = 0xA34 - SYS___CSINHF_H = 0xA35 - SYS___CSINHL_B = 0xA37 - SYS___CSINHL_H = 0xA38 - SYS___CSINH_B = 0xA31 - SYS___CSINH_H = 0xA32 - SYS___CSINL_B = 0xA2E - SYS___CSINL_H = 0xA2F - SYS___CSIN_B = 0xA28 - SYS___CSIN_H = 0xA29 - SYS___CSNAP = 0x0C5 - SYS___CSQRTF_B = 0xA3D - SYS___CSQRTF_H = 0xA3E - SYS___CSQRTL_B = 0xA40 - SYS___CSQRTL_H = 0xA41 - SYS___CSQRT_B = 0xA3A - SYS___CSQRT_H = 0xA3B - SYS___CTANF_B = 0xA46 - SYS___CTANF_H = 0xA47 - SYS___CTANHF_B = 0xA4F - SYS___CTANHF_H = 0xA50 - SYS___CTANHL_B = 0xA52 - SYS___CTANHL_H = 0xA53 - SYS___CTANH_B = 0xA4C - SYS___CTANH_H = 0xA4D - SYS___CTANL_B = 0xA49 - SYS___CTANL_H = 0xA4A - SYS___CTAN_B = 0xA43 - SYS___CTAN_H = 0xA44 - SYS___CTEST = 0x0C7 - SYS___CTRACE = 0x0C6 - SYS___D1TOP = 0xC9B - SYS___D2TOP = 0xC9C - SYS___D4TOP = 0xC9D - SYS___DYNALL = 0x0C3 - SYS___DYNFRE = 0x0C2 - SYS___EXP2F_H = 0xA5E - SYS___EXP2L_H = 0xA5F - SYS___EXP2_H = 0xA5D - SYS___EXPM1F_H = 0xA5B - SYS___EXPM1L_H = 0xA5C - SYS___FBUFSIZE = 0xD60 - SYS___FLBF = 0xD62 - SYS___FLDATA = 0x0C1 - SYS___FMAF_B = 0xA67 - SYS___FMAF_H = 0xA68 - SYS___FMAL_B = 0xA6A - SYS___FMAL_H = 0xA6B - SYS___FMAXF_B = 0xA70 - SYS___FMAXF_H = 0xA71 - SYS___FMAXL_B = 0xA73 - SYS___FMAXL_H = 0xA74 - SYS___FMAX_B = 0xA6D - SYS___FMAX_H = 0xA6E - SYS___FMA_B = 0xA64 - SYS___FMA_H = 0xA65 - SYS___FMINF_B = 0xA79 - SYS___FMINF_H = 0xA7A - SYS___FMINL_B = 0xA7C - SYS___FMINL_H = 0xA7D - SYS___FMIN_B = 0xA76 - SYS___FMIN_H = 0xA77 - SYS___FPENDING = 0xD61 - SYS___FPENDING_UNLOCKED = 0xD6C - SYS___FPURGE = 0xD69 - SYS___FPURGE_UNLOCKED = 0xD70 - SYS___FP_CAST_D = 0xBCB - SYS___FREADABLE = 0xD63 - SYS___FREADAHEAD = 0xD6A - SYS___FREADAHEAD_UNLOCKED = 0xD71 - SYS___FREADING = 0xD65 - SYS___FREADING_UNLOCKED = 0xD6D - SYS___FSEEK2 = 0xB3C - SYS___FSETERR = 0xD6B - SYS___FSETLOCKING = 0xD67 - SYS___FTCHEP = 0x0BF - SYS___FTELL2 = 0xB3B - SYS___FUPDT = 0x0B5 - SYS___FWRITABLE = 0xD64 - SYS___FWRITING = 0xD66 - SYS___FWRITING_UNLOCKED = 0xD6E - SYS___GETCB = 0x0B4 - SYS___GETGRGID1 = 0xD5B - SYS___GETGRNAM1 = 0xD5C - SYS___GETTHENT = 0xCE5 - SYS___GETTOD = 0xD3E - SYS___HYPOTF_H = 0xAF6 - SYS___HYPOTL_H = 0xAF7 - SYS___ILOGBF_B = 0xA7F - SYS___ILOGBF_H = 0xA80 - SYS___ILOGBL_B = 0xA82 - SYS___ILOGBL_H = 0xA83 - SYS___ISBLANK_A = 0xB2E - SYS___ISBLNK = 0x0FE - SYS___ISWBLANK_A = 0xB2F - SYS___LE_CEEGTJS = 0xD72 - SYS___LE_TRACEBACK = 0xB7A - SYS___LGAMMAL_H = 0xA62 - SYS___LGAMMA_B_C99 = 0xB39 - SYS___LGAMMA_H_C99 = 0xB38 - SYS___LGAMMA_R_C99 = 0xB3A - SYS___LLRINTF_B = 0xA88 - SYS___LLRINTF_H = 0xA89 - SYS___LLRINTL_B = 0xA8B - SYS___LLRINTL_H = 0xA8C - SYS___LLRINT_B = 0xA85 - SYS___LLRINT_H = 0xA86 - SYS___LLROUNDF_B = 0xA91 - SYS___LLROUNDF_H = 0xA92 - SYS___LLROUNDL_B = 0xA94 - SYS___LLROUNDL_H = 0xA95 - SYS___LLROUND_B = 0xA8E - SYS___LLROUND_H = 0xA8F - SYS___LOCALE_CTL = 0xD47 - SYS___LOG1PF_H = 0xA60 - SYS___LOG1PL_H = 0xA61 - SYS___LOGBF_B = 0xA97 - SYS___LOGBF_H = 0xA98 - SYS___LOGBL_B = 0xA9A - SYS___LOGBL_H = 0xA9B - SYS___LOGIN_APPLID = 0xCE2 - SYS___LRINTF_B = 0xAA0 - SYS___LRINTF_H = 0xAA1 - SYS___LRINTL_B = 0xAA3 - SYS___LRINTL_H = 0xAA4 - SYS___LRINT_B = 0xA9D - SYS___LRINT_H = 0xA9E - SYS___LROUNDF_FIXUP = 0xB31 - SYS___LROUNDL_B = 0xAA6 - SYS___LROUNDL_H = 0xAA7 - SYS___LROUND_FIXUP = 0xB30 - SYS___MOSERVICES = 0xD3D - SYS___MUST_STAY_CLEAN = 0xB7C - SYS___NANF_B = 0xAAB - SYS___NANL_B = 0xAAD - SYS___NAN_B = 0xAA9 - SYS___NEARBYINTF_B = 0xAB2 - SYS___NEARBYINTF_H = 0xAB3 - SYS___NEARBYINTL_B = 0xAB5 - SYS___NEARBYINTL_H = 0xAB6 - SYS___NEARBYINT_B = 0xAAF - SYS___NEARBYINT_H = 0xAB0 - SYS___NEXTAFTERF_B = 0xAB8 - SYS___NEXTAFTERF_H = 0xAB9 - SYS___NEXTAFTERL_B = 0xABB - SYS___NEXTAFTERL_H = 0xABC - SYS___NEXTTOWARDF_B = 0xAC1 - SYS___NEXTTOWARDF_H = 0xAC2 - SYS___NEXTTOWARDL_B = 0xAC4 - SYS___NEXTTOWARDL_H = 0xAC5 - SYS___NEXTTOWARD_B = 0xABE - SYS___NEXTTOWARD_H = 0xABF - SYS___O_ENV = 0xB7D - SYS___PASSWD_APPLID = 0xCE3 - SYS___PTOD1 = 0xC9E - SYS___PTOD2 = 0xC9F - SYS___PTOD4 = 0xCA0 - SYS___REGCOMP_STD = 0x0EA - SYS___REMAINDERF_H = 0xAC6 - SYS___REMAINDERL_H = 0xAC7 - SYS___REMQUOD128 = 0xC10 - SYS___REMQUOD32 = 0xC0E - SYS___REMQUOD64 = 0xC0F - SYS___REMQUOF_H = 0xAC9 - SYS___REMQUOL_H = 0xACA - SYS___REMQUO_H = 0xAC8 - SYS___RINTF_B = 0xACC - SYS___RINTL_B = 0xACE - SYS___ROUNDF_B = 0xAD3 - SYS___ROUNDF_H = 0xAD4 - SYS___ROUNDL_B = 0xAD6 - SYS___ROUNDL_H = 0xAD7 - SYS___ROUND_B = 0xAD0 - SYS___ROUND_H = 0xAD1 - SYS___SCALBLNF_B = 0xADC - SYS___SCALBLNF_H = 0xADD - SYS___SCALBLNL_B = 0xADF - SYS___SCALBLNL_H = 0xAE0 - SYS___SCALBLN_B = 0xAD9 - SYS___SCALBLN_H = 0xADA - SYS___SCALBNF_B = 0xAE4 - SYS___SCALBNF_H = 0xAE5 - SYS___SCALBNL_B = 0xAE7 - SYS___SCALBNL_H = 0xAE8 - SYS___SCALBN_B = 0xAE1 - SYS___SCALBN_H = 0xAE2 - SYS___SETENV = 0x0C8 - SYS___SINPID128 = 0xC73 - SYS___SINPID32 = 0xC71 - SYS___SINPID64 = 0xC72 - SYS___SMF_RECORD2 = 0xD48 - SYS___STATIC_REINIT = 0xB3D - SYS___TGAMMAF_H_C99 = 0xB79 - SYS___TGAMMAL_H = 0xAE9 - SYS___TGAMMA_H_C99 = 0xB78 - SYS___TOCSNAME2 = 0xC9A - SYS_CEIL = 0x01F - SYS_CHAUDIT = 0x1E0 - SYS_EXP = 0x01A - SYS_FCHAUDIT = 0x1E1 - SYS_FREXP = 0x01D - SYS_GETGROUPSBYNAME = 0x1E2 - SYS_GETPWUID = 0x1A0 - SYS_GETUID = 0x1A1 - SYS_ISATTY = 0x1A3 - SYS_KILL = 0x1A4 - SYS_LDEXP = 0x01E - SYS_LINK = 0x1A5 - SYS_LOG10 = 0x01C - SYS_LSEEK = 0x1A6 - SYS_LSTAT = 0x1A7 - SYS_MKDIR = 0x1A8 - SYS_MKFIFO = 0x1A9 - SYS_MKNOD = 0x1AA - SYS_MODF = 0x01B - SYS_MOUNT = 0x1AB - SYS_OPEN = 0x1AC - SYS_OPENDIR = 0x1AD - SYS_PATHCONF = 0x1AE - SYS_PAUSE = 0x1AF - SYS_PIPE = 0x1B0 - SYS_PTHREAD_ATTR_DESTROY = 0x1E7 - SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB - SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 - SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED - SYS_PTHREAD_ATTR_INIT = 0x1E6 - SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA - SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 - SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC - SYS_PTHREAD_CANCEL = 0x1EE - SYS_PTHREAD_CLEANUP_POP = 0x1F0 - SYS_PTHREAD_CLEANUP_PUSH = 0x1EF - SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 - SYS_PTHREAD_CONDATTR_INIT = 0x1F1 - SYS_PTHREAD_COND_BROADCAST = 0x1F6 - SYS_PTHREAD_COND_DESTROY = 0x1F4 - SYS_PTHREAD_COND_INIT = 0x1F3 - SYS_PTHREAD_COND_SIGNAL = 0x1F5 - SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 - SYS_PTHREAD_COND_WAIT = 0x1F7 - SYS_PTHREAD_CREATE = 0x1F9 - SYS_PTHREAD_DETACH = 0x1FA - SYS_PTHREAD_EQUAL = 0x1FB - SYS_PTHREAD_EXIT = 0x1E4 - SYS_PTHREAD_GETSPECIFIC = 0x1FC - SYS_PTHREAD_JOIN = 0x1FD - SYS_PTHREAD_KEY_CREATE = 0x1FE - SYS_PTHREAD_KILL = 0x1E5 - SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF - SYS_READ = 0x1B2 - SYS_READDIR = 0x1B3 - SYS_READLINK = 0x1B4 - SYS_REWINDDIR = 0x1B5 - SYS_RMDIR = 0x1B6 - SYS_SETEGID = 0x1B7 - SYS_SETEUID = 0x1B8 - SYS_SETGID = 0x1B9 - SYS_SETPGID = 0x1BA - SYS_SETSID = 0x1BB - SYS_SETUID = 0x1BC - SYS_SIGACTION = 0x1BD - SYS_SIGADDSET = 0x1BE - SYS_SIGDELSET = 0x1BF - SYS_SIGEMPTYSET = 0x1C0 - SYS_SIGFILLSET = 0x1C1 - SYS_SIGISMEMBER = 0x1C2 - SYS_SIGLONGJMP = 0x1C3 - SYS_SIGPENDING = 0x1C4 - SYS_SIGPROCMASK = 0x1C5 - SYS_SIGSETJMP = 0x1C6 - SYS_SIGSUSPEND = 0x1C7 - SYS_SIGWAIT = 0x1E3 - SYS_SLEEP = 0x1C8 - SYS_STAT = 0x1C9 - SYS_SYMLINK = 0x1CB - SYS_SYSCONF = 0x1CC - SYS_TCDRAIN = 0x1CD - SYS_TCFLOW = 0x1CE - SYS_TCFLUSH = 0x1CF - SYS_TCGETATTR = 0x1D0 - SYS_TCGETPGRP = 0x1D1 - SYS_TCSENDBREAK = 0x1D2 - SYS_TCSETATTR = 0x1D3 - SYS_TCSETPGRP = 0x1D4 - SYS_TIMES = 0x1D5 - SYS_TTYNAME = 0x1D6 - SYS_TZSET = 0x1D7 - SYS_UMASK = 0x1D8 - SYS_UMOUNT = 0x1D9 - SYS_UNAME = 0x1DA - SYS_UNLINK = 0x1DB - SYS_UTIME = 0x1DC - SYS_WAIT = 0x1DD - SYS_WAITPID = 0x1DE - SYS_WRITE = 0x1DF - SYS_W_GETPSENT = 0x1B1 - SYS_W_IOCTL = 0x1A2 - SYS_W_STATFS = 0x1CA - SYS_A64L = 0x2EF - SYS_BCMP = 0x2B9 - SYS_BCOPY = 0x2BA - SYS_BZERO = 0x2BB - SYS_CATCLOSE = 0x2B6 - SYS_CATGETS = 0x2B7 - SYS_CATOPEN = 0x2B8 - SYS_CRYPT = 0x2AC - SYS_DBM_CLEARERR = 0x2F7 - SYS_DBM_CLOSE = 0x2F8 - SYS_DBM_DELETE = 0x2F9 - SYS_DBM_ERROR = 0x2FA - SYS_DBM_FETCH = 0x2FB - SYS_DBM_FIRSTKEY = 0x2FC - SYS_DBM_NEXTKEY = 0x2FD - SYS_DBM_OPEN = 0x2FE - SYS_DBM_STORE = 0x2FF - SYS_DRAND48 = 0x2B2 - SYS_ENCRYPT = 0x2AD - SYS_ENDUTXENT = 0x2E1 - SYS_ERAND48 = 0x2B3 - SYS_ERF = 0x02C - SYS_ERFC = 0x02D - SYS_FCHDIR = 0x2D9 - SYS_FFS = 0x2BC - SYS_FMTMSG = 0x2E5 - SYS_FSTATVFS = 0x2B4 - SYS_FTIME = 0x2F5 - SYS_GAMMA = 0x02E - SYS_GETDATE = 0x2A6 - SYS_GETPAGESIZE = 0x2D8 - SYS_GETTIMEOFDAY = 0x2F6 - SYS_GETUTXENT = 0x2E0 - SYS_GETUTXID = 0x2E2 - SYS_GETUTXLINE = 0x2E3 - SYS_HCREATE = 0x2C6 - SYS_HDESTROY = 0x2C7 - SYS_HSEARCH = 0x2C8 - SYS_HYPOT = 0x02B - SYS_INDEX = 0x2BD - SYS_INITSTATE = 0x2C2 - SYS_INSQUE = 0x2CF - SYS_ISASCII = 0x2ED - SYS_JRAND48 = 0x2E6 - SYS_L64A = 0x2F0 - SYS_LCONG48 = 0x2EA - SYS_LFIND = 0x2C9 - SYS_LRAND48 = 0x2E7 - SYS_LSEARCH = 0x2CA - SYS_MEMCCPY = 0x2D4 - SYS_MRAND48 = 0x2E8 - SYS_NRAND48 = 0x2E9 - SYS_PCLOSE = 0x2D2 - SYS_POPEN = 0x2D1 - SYS_PUTUTXLINE = 0x2E4 - SYS_RANDOM = 0x2C4 - SYS_REMQUE = 0x2D0 - SYS_RINDEX = 0x2BE - SYS_SEED48 = 0x2EC - SYS_SETKEY = 0x2AE - SYS_SETSTATE = 0x2C3 - SYS_SETUTXENT = 0x2DF - SYS_SRAND48 = 0x2EB - SYS_SRANDOM = 0x2C5 - SYS_STATVFS = 0x2B5 - SYS_STRCASECMP = 0x2BF - SYS_STRDUP = 0x2C0 - SYS_STRNCASECMP = 0x2C1 - SYS_SWAB = 0x2D3 - SYS_TDELETE = 0x2CB - SYS_TFIND = 0x2CC - SYS_TOASCII = 0x2EE - SYS_TSEARCH = 0x2CD - SYS_TWALK = 0x2CE - SYS_UALARM = 0x2F1 - SYS_USLEEP = 0x2F2 - SYS_WAIT3 = 0x2A7 - SYS_WAITID = 0x2A8 - SYS_Y1 = 0x02A - SYS___ATOE = 0x2DB - SYS___ATOE_L = 0x2DC - SYS___CATTRM = 0x2A9 - SYS___CNVBLK = 0x2AF - SYS___CRYTRM = 0x2B0 - SYS___DLGHT = 0x2A1 - SYS___ECRTRM = 0x2B1 - SYS___ETOA = 0x2DD - SYS___ETOA_L = 0x2DE - SYS___GDTRM = 0x2AA - SYS___OCLCK = 0x2DA - SYS___OPARGF = 0x2A2 - SYS___OPERRF = 0x2A5 - SYS___OPINDF = 0x2A4 - SYS___OPOPTF = 0x2A3 - SYS___RNDTRM = 0x2AB - SYS___SRCTRM = 0x2F4 - SYS___TZONE = 0x2A0 - SYS___UTXTRM = 0x2F3 - SYS_ASIN = 0x03E - SYS_ISXDIGIT = 0x03B - SYS_SETLOCAL = 0x03A - SYS_SETLOCALE = 0x03A - SYS_SIN = 0x03F - SYS_TOLOWER = 0x03C - SYS_TOUPPER = 0x03D - SYS_ACCEPT_AND_RECV = 0x4F7 - SYS_ATOL = 0x04E - SYS_CHECKSCH = 0x4BC - SYS_CHECKSCHENV = 0x4BC - SYS_CLEARERR = 0x04C - SYS_CONNECTS = 0x4B5 - SYS_CONNECTSERVER = 0x4B5 - SYS_CONNECTW = 0x4B4 - SYS_CONNECTWORKMGR = 0x4B4 - SYS_CONTINUE = 0x4B3 - SYS_CONTINUEWORKUNIT = 0x4B3 - SYS_COPYSIGN = 0x4C2 - SYS_CREATEWO = 0x4B2 - SYS_CREATEWORKUNIT = 0x4B2 - SYS_DELETEWO = 0x4B9 - SYS_DELETEWORKUNIT = 0x4B9 - SYS_DISCONNE = 0x4B6 - SYS_DISCONNECTSERVER = 0x4B6 - SYS_FEOF = 0x04D - SYS_FERROR = 0x04A - SYS_FINITE = 0x4C8 - SYS_GAMMA_R = 0x4E2 - SYS_JOINWORK = 0x4B7 - SYS_JOINWORKUNIT = 0x4B7 - SYS_LEAVEWOR = 0x4B8 - SYS_LEAVEWORKUNIT = 0x4B8 - SYS_LGAMMA_R = 0x4EB - SYS_MATHERR = 0x4D0 - SYS_PERROR = 0x04F - SYS_QUERYMET = 0x4BA - SYS_QUERYMETRICS = 0x4BA - SYS_QUERYSCH = 0x4BB - SYS_QUERYSCHENV = 0x4BB - SYS_REWIND = 0x04B - SYS_SCALBN = 0x4D4 - SYS_SIGNIFIC = 0x4D5 - SYS_SIGNIFICAND = 0x4D5 - SYS___ACOSH_B = 0x4DA - SYS___ACOS_B = 0x4D9 - SYS___ASINH_B = 0x4BE - SYS___ASIN_B = 0x4DB - SYS___ATAN2_B = 0x4DC - SYS___ATANH_B = 0x4DD - SYS___ATAN_B = 0x4BF - SYS___CBRT_B = 0x4C0 - SYS___CEIL_B = 0x4C1 - SYS___COSH_B = 0x4DE - SYS___COS_B = 0x4C3 - SYS___DGHT = 0x4A8 - SYS___ENVN = 0x4B0 - SYS___ERFC_B = 0x4C5 - SYS___ERF_B = 0x4C4 - SYS___EXPM1_B = 0x4C6 - SYS___EXP_B = 0x4DF - SYS___FABS_B = 0x4C7 - SYS___FLOOR_B = 0x4C9 - SYS___FMOD_B = 0x4E0 - SYS___FP_SETMODE = 0x4F8 - SYS___FREXP_B = 0x4CA - SYS___GAMMA_B = 0x4E1 - SYS___GDRR = 0x4A1 - SYS___HRRNO = 0x4A2 - SYS___HYPOT_B = 0x4E3 - SYS___ILOGB_B = 0x4CB - SYS___ISNAN_B = 0x4CC - SYS___J0_B = 0x4E4 - SYS___J1_B = 0x4E6 - SYS___JN_B = 0x4E8 - SYS___LDEXP_B = 0x4CD - SYS___LGAMMA_B = 0x4EA - SYS___LOG10_B = 0x4ED - SYS___LOG1P_B = 0x4CE - SYS___LOGB_B = 0x4CF - SYS___LOGIN = 0x4F5 - SYS___LOG_B = 0x4EC - SYS___MLOCKALL = 0x4B1 - SYS___MODF_B = 0x4D1 - SYS___NEXTAFTER_B = 0x4D2 - SYS___OPENDIR2 = 0x4F3 - SYS___OPEN_STAT = 0x4F6 - SYS___OPND = 0x4A5 - SYS___OPPT = 0x4A6 - SYS___OPRG = 0x4A3 - SYS___OPRR = 0x4A4 - SYS___PID_AFFINITY = 0x4BD - SYS___POW_B = 0x4EE - SYS___READDIR2 = 0x4F4 - SYS___REMAINDER_B = 0x4EF - SYS___RINT_B = 0x4D3 - SYS___SCALB_B = 0x4F0 - SYS___SIGACTIONSET = 0x4FB - SYS___SIGGM = 0x4A7 - SYS___SINH_B = 0x4F1 - SYS___SIN_B = 0x4D6 - SYS___SQRT_B = 0x4F2 - SYS___TANH_B = 0x4D8 - SYS___TAN_B = 0x4D7 - SYS___TRRNO = 0x4AF - SYS___TZNE = 0x4A9 - SYS___TZZN = 0x4AA - SYS___UCREATE = 0x4FC - SYS___UFREE = 0x4FE - SYS___UHEAPREPORT = 0x4FF - SYS___UMALLOC = 0x4FD - SYS___Y0_B = 0x4E5 - SYS___Y1_B = 0x4E7 - SYS___YN_B = 0x4E9 - SYS_ABORT = 0x05C - SYS_ASCTIME_R = 0x5E0 - SYS_ATEXIT = 0x05D - SYS_CONNECTE = 0x5AE - SYS_CONNECTEXPORTIMPORT = 0x5AE - SYS_CTIME_R = 0x5E1 - SYS_DN_COMP = 0x5DF - SYS_DN_EXPAND = 0x5DD - SYS_DN_SKIPNAME = 0x5DE - SYS_EXIT = 0x05A - SYS_EXPORTWO = 0x5A1 - SYS_EXPORTWORKUNIT = 0x5A1 - SYS_EXTRACTW = 0x5A5 - SYS_EXTRACTWORKUNIT = 0x5A5 - SYS_FSEEKO = 0x5C9 - SYS_FTELLO = 0x5C8 - SYS_GETGRGID_R = 0x5E7 - SYS_GETGRNAM_R = 0x5E8 - SYS_GETLOGIN_R = 0x5E9 - SYS_GETPWNAM_R = 0x5EA - SYS_GETPWUID_R = 0x5EB - SYS_GMTIME_R = 0x5E2 - SYS_IMPORTWO = 0x5A3 - SYS_IMPORTWORKUNIT = 0x5A3 - SYS_INET_NTOP = 0x5D3 - SYS_INET_PTON = 0x5D4 - SYS_LLABS = 0x5CE - SYS_LLDIV = 0x5CB - SYS_LOCALTIME_R = 0x5E3 - SYS_PTHREAD_ATFORK = 0x5ED - SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB - SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE - SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 - SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF - SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC - SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 - SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA - SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 - SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 - SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 - SYS_PTHREAD_DETACH_U98 = 0x5FD - SYS_PTHREAD_GETCONCURRENCY = 0x5F4 - SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE - SYS_PTHREAD_KEY_DELETE = 0x5F5 - SYS_PTHREAD_SETCANCELSTATE = 0x5FF - SYS_PTHREAD_SETCONCURRENCY = 0x5F6 - SYS_PTHREAD_SIGMASK = 0x5F7 - SYS_QUERYENC = 0x5AD - SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD - SYS_RAISE = 0x05E - SYS_RAND_R = 0x5E4 - SYS_READDIR_R = 0x5E6 - SYS_REALLOC = 0x05B - SYS_RES_INIT = 0x5D8 - SYS_RES_MKQUERY = 0x5D7 - SYS_RES_QUERY = 0x5D9 - SYS_RES_QUERYDOMAIN = 0x5DC - SYS_RES_SEARCH = 0x5DA - SYS_RES_SEND = 0x5DB - SYS_SETJMP = 0x05F - SYS_SIGQUEUE = 0x5A9 - SYS_STRTOK_R = 0x5E5 - SYS_STRTOLL = 0x5B0 - SYS_STRTOULL = 0x5B1 - SYS_TTYNAME_R = 0x5EC - SYS_UNDOEXPO = 0x5A2 - SYS_UNDOEXPORTWORKUNIT = 0x5A2 - SYS_UNDOIMPO = 0x5A4 - SYS_UNDOIMPORTWORKUNIT = 0x5A4 - SYS_WCSTOLL = 0x5CC - SYS_WCSTOULL = 0x5CD - SYS___ABORT = 0x05C - SYS___CONSOLE2 = 0x5D2 - SYS___CPL = 0x5A6 - SYS___DISCARDDATA = 0x5F8 - SYS___DSA_PREV = 0x5B2 - SYS___EP_FIND = 0x5B3 - SYS___FP_SWAPMODE = 0x5AF - SYS___GETUSERID = 0x5AB - SYS___GET_CPUID = 0x5B9 - SYS___GET_SYSTEM_SETTINGS = 0x5BA - SYS___IPDOMAINNAME = 0x5AC - SYS___MAP_INIT = 0x5A7 - SYS___MAP_SERVICE = 0x5A8 - SYS___MOUNT = 0x5AA - SYS___MSGRCV_TIMED = 0x5B7 - SYS___RES = 0x5D6 - SYS___SEMOP_TIMED = 0x5B8 - SYS___SERVER_THREADS_QUERY = 0x5B4 - SYS_FPRINTF = 0x06D - SYS_FSCANF = 0x06A - SYS_PRINTF = 0x06F - SYS_SETBUF = 0x06B - SYS_SETVBUF = 0x06C - SYS_SSCANF = 0x06E - SYS___CATGETS_A = 0x6C0 - SYS___CHAUDIT_A = 0x6F4 - SYS___CHMOD_A = 0x6E8 - SYS___COLLATE_INIT_A = 0x6AC - SYS___CREAT_A = 0x6F6 - SYS___CTYPE_INIT_A = 0x6AF - SYS___DLLLOAD_A = 0x6DF - SYS___DLLQUERYFN_A = 0x6E0 - SYS___DLLQUERYVAR_A = 0x6E1 - SYS___E2A_L = 0x6E3 - SYS___EXECLE_A = 0x6A0 - SYS___EXECLP_A = 0x6A4 - SYS___EXECVE_A = 0x6C1 - SYS___EXECVP_A = 0x6C2 - SYS___EXECV_A = 0x6B1 - SYS___FPRINTF_A = 0x6FA - SYS___GETADDRINFO_A = 0x6BF - SYS___GETNAMEINFO_A = 0x6C4 - SYS___GET_WCTYPE_STD_A = 0x6AE - SYS___ICONV_OPEN_A = 0x6DE - SYS___IF_INDEXTONAME_A = 0x6DC - SYS___IF_NAMETOINDEX_A = 0x6DB - SYS___ISWCTYPE_A = 0x6B0 - SYS___IS_WCTYPE_STD_A = 0x6B2 - SYS___LOCALECONV_A = 0x6B8 - SYS___LOCALECONV_STD_A = 0x6B9 - SYS___LOCALE_INIT_A = 0x6B7 - SYS___LSTAT_A = 0x6EE - SYS___LSTAT_O_A = 0x6EF - SYS___MKDIR_A = 0x6E9 - SYS___MKFIFO_A = 0x6EC - SYS___MKNOD_A = 0x6F0 - SYS___MONETARY_INIT_A = 0x6BC - SYS___MOUNT_A = 0x6F1 - SYS___NL_CSINFO_A = 0x6D6 - SYS___NL_LANGINFO_A = 0x6BA - SYS___NL_LNAGINFO_STD_A = 0x6BB - SYS___NL_MONINFO_A = 0x6D7 - SYS___NL_NUMINFO_A = 0x6D8 - SYS___NL_RESPINFO_A = 0x6D9 - SYS___NL_TIMINFO_A = 0x6DA - SYS___NUMERIC_INIT_A = 0x6C6 - SYS___OPEN_A = 0x6F7 - SYS___PRINTF_A = 0x6DD - SYS___RESP_INIT_A = 0x6C7 - SYS___RPMATCH_A = 0x6C8 - SYS___RPMATCH_C_A = 0x6C9 - SYS___RPMATCH_STD_A = 0x6CA - SYS___SETLOCALE_A = 0x6F9 - SYS___SPAWNP_A = 0x6C5 - SYS___SPAWN_A = 0x6C3 - SYS___SPRINTF_A = 0x6FB - SYS___STAT_A = 0x6EA - SYS___STAT_O_A = 0x6EB - SYS___STRCOLL_STD_A = 0x6A1 - SYS___STRFMON_A = 0x6BD - SYS___STRFMON_STD_A = 0x6BE - SYS___STRFTIME_A = 0x6CC - SYS___STRFTIME_STD_A = 0x6CD - SYS___STRPTIME_A = 0x6CE - SYS___STRPTIME_STD_A = 0x6CF - SYS___STRXFRM_A = 0x6A2 - SYS___STRXFRM_C_A = 0x6A3 - SYS___STRXFRM_STD_A = 0x6A5 - SYS___SYNTAX_INIT_A = 0x6D4 - SYS___TIME_INIT_A = 0x6CB - SYS___TOD_INIT_A = 0x6D5 - SYS___TOWLOWER_A = 0x6B3 - SYS___TOWLOWER_STD_A = 0x6B4 - SYS___TOWUPPER_A = 0x6B5 - SYS___TOWUPPER_STD_A = 0x6B6 - SYS___UMOUNT_A = 0x6F2 - SYS___VFPRINTF_A = 0x6FC - SYS___VPRINTF_A = 0x6FD - SYS___VSPRINTF_A = 0x6FE - SYS___VSWPRINTF_A = 0x6FF - SYS___WCSCOLL_A = 0x6A6 - SYS___WCSCOLL_C_A = 0x6A7 - SYS___WCSCOLL_STD_A = 0x6A8 - SYS___WCSFTIME_A = 0x6D0 - SYS___WCSFTIME_STD_A = 0x6D1 - SYS___WCSXFRM_A = 0x6A9 - SYS___WCSXFRM_C_A = 0x6AA - SYS___WCSXFRM_STD_A = 0x6AB - SYS___WCTYPE_A = 0x6AD - SYS___W_GETMNTENT_A = 0x6F5 - SYS_____CCSIDTYPE_A = 0x6E6 - SYS_____CHATTR_A = 0x6E2 - SYS_____CSNAMETYPE_A = 0x6E7 - SYS_____OPEN_STAT_A = 0x6ED - SYS_____SPAWN2_A = 0x6D2 - SYS_____SPAWNP2_A = 0x6D3 - SYS_____TOCCSID_A = 0x6E4 - SYS_____TOCSNAME_A = 0x6E5 - SYS_ACL_FREE = 0x7FF - SYS_ACL_INIT = 0x7FE - SYS_FWIDE = 0x7DF - SYS_FWPRINTF = 0x7D1 - SYS_FWRITE = 0x07E - SYS_FWSCANF = 0x7D5 - SYS_GETCHAR = 0x07B - SYS_GETS = 0x07C - SYS_M_CREATE_LAYOUT = 0x7C9 - SYS_M_DESTROY_LAYOUT = 0x7CA - SYS_M_GETVALUES_LAYOUT = 0x7CB - SYS_M_SETVALUES_LAYOUT = 0x7CC - SYS_M_TRANSFORM_LAYOUT = 0x7CD - SYS_M_WTRANSFORM_LAYOUT = 0x7CE - SYS_PREAD = 0x7C7 - SYS_PUTC = 0x07D - SYS_PUTCHAR = 0x07A - SYS_PUTS = 0x07F - SYS_PWRITE = 0x7C8 - SYS_TOWCTRAN = 0x7D8 - SYS_TOWCTRANS = 0x7D8 - SYS_UNATEXIT = 0x7B5 - SYS_VFWPRINT = 0x7D3 - SYS_VFWPRINTF = 0x7D3 - SYS_VWPRINTF = 0x7D4 - SYS_WCTRANS = 0x7D7 - SYS_WPRINTF = 0x7D2 - SYS_WSCANF = 0x7D6 - SYS___ASCTIME_R_A = 0x7A1 - SYS___BASENAME_A = 0x7DC - SYS___BTOWC_A = 0x7E4 - SYS___CDUMP_A = 0x7B7 - SYS___CEE3DMP_A = 0x7B6 - SYS___CEILF_H = 0x7F4 - SYS___CEILL_H = 0x7F5 - SYS___CEIL_H = 0x7EA - SYS___CRYPT_A = 0x7BE - SYS___CSNAP_A = 0x7B8 - SYS___CTEST_A = 0x7B9 - SYS___CTIME_R_A = 0x7A2 - SYS___CTRACE_A = 0x7BA - SYS___DBM_OPEN_A = 0x7E6 - SYS___DIRNAME_A = 0x7DD - SYS___FABSF_H = 0x7FA - SYS___FABSL_H = 0x7FB - SYS___FABS_H = 0x7ED - SYS___FGETWC_A = 0x7AA - SYS___FGETWS_A = 0x7AD - SYS___FLOORF_H = 0x7F6 - SYS___FLOORL_H = 0x7F7 - SYS___FLOOR_H = 0x7EB - SYS___FPUTWC_A = 0x7A5 - SYS___FPUTWS_A = 0x7A8 - SYS___GETTIMEOFDAY_A = 0x7AE - SYS___GETWCHAR_A = 0x7AC - SYS___GETWC_A = 0x7AB - SYS___GLOB_A = 0x7DE - SYS___GMTIME_A = 0x7AF - SYS___GMTIME_R_A = 0x7B0 - SYS___INET_PTON_A = 0x7BC - SYS___J0_H = 0x7EE - SYS___J1_H = 0x7EF - SYS___JN_H = 0x7F0 - SYS___LOCALTIME_A = 0x7B1 - SYS___LOCALTIME_R_A = 0x7B2 - SYS___MALLOC24 = 0x7FC - SYS___MALLOC31 = 0x7FD - SYS___MKTIME_A = 0x7B3 - SYS___MODFF_H = 0x7F8 - SYS___MODFL_H = 0x7F9 - SYS___MODF_H = 0x7EC - SYS___OPENDIR_A = 0x7C2 - SYS___OSNAME = 0x7E0 - SYS___PUTWCHAR_A = 0x7A7 - SYS___PUTWC_A = 0x7A6 - SYS___READDIR_A = 0x7C3 - SYS___STRTOLL_A = 0x7A3 - SYS___STRTOULL_A = 0x7A4 - SYS___SYSLOG_A = 0x7BD - SYS___TZZNA = 0x7B4 - SYS___UNGETWC_A = 0x7A9 - SYS___UTIME_A = 0x7A0 - SYS___VFPRINTF2_A = 0x7E7 - SYS___VPRINTF2_A = 0x7E8 - SYS___VSPRINTF2_A = 0x7E9 - SYS___VSWPRNTF2_A = 0x7BB - SYS___WCSTOD_A = 0x7D9 - SYS___WCSTOL_A = 0x7DA - SYS___WCSTOUL_A = 0x7DB - SYS___WCTOB_A = 0x7E5 - SYS___Y0_H = 0x7F1 - SYS___Y1_H = 0x7F2 - SYS___YN_H = 0x7F3 - SYS_____OPENDIR2_A = 0x7BF - SYS_____OSNAME_A = 0x7E1 - SYS_____READDIR2_A = 0x7C0 - SYS_DLCLOSE = 0x8DF - SYS_DLERROR = 0x8E0 - SYS_DLOPEN = 0x8DD - SYS_DLSYM = 0x8DE - SYS_FLOCKFILE = 0x8D3 - SYS_FTRYLOCKFILE = 0x8D4 - SYS_FUNLOCKFILE = 0x8D5 - SYS_GETCHAR_UNLOCKED = 0x8D7 - SYS_GETC_UNLOCKED = 0x8D6 - SYS_PUTCHAR_UNLOCKED = 0x8D9 - SYS_PUTC_UNLOCKED = 0x8D8 - SYS_SNPRINTF = 0x8DA - SYS_VSNPRINTF = 0x8DB - SYS_WCSCSPN = 0x08B - SYS_WCSLEN = 0x08C - SYS_WCSNCAT = 0x08D - SYS_WCSNCMP = 0x08A - SYS_WCSNCPY = 0x08F - SYS_WCSSPN = 0x08E - SYS___ABSF_H = 0x8E7 - SYS___ABSL_H = 0x8E8 - SYS___ABS_H = 0x8E6 - SYS___ACOSF_H = 0x8EA - SYS___ACOSH_H = 0x8EC - SYS___ACOSL_H = 0x8EB - SYS___ACOS_H = 0x8E9 - SYS___ASINF_H = 0x8EE - SYS___ASINH_H = 0x8F0 - SYS___ASINL_H = 0x8EF - SYS___ASIN_H = 0x8ED - SYS___ATAN2F_H = 0x8F8 - SYS___ATAN2L_H = 0x8F9 - SYS___ATAN2_H = 0x8F7 - SYS___ATANF_H = 0x8F2 - SYS___ATANHF_H = 0x8F5 - SYS___ATANHL_H = 0x8F6 - SYS___ATANH_H = 0x8F4 - SYS___ATANL_H = 0x8F3 - SYS___ATAN_H = 0x8F1 - SYS___CBRT_H = 0x8FA - SYS___COPYSIGNF_H = 0x8FB - SYS___COPYSIGNL_H = 0x8FC - SYS___COSF_H = 0x8FE - SYS___COSL_H = 0x8FF - SYS___COS_H = 0x8FD - SYS___DLERROR_A = 0x8D2 - SYS___DLOPEN_A = 0x8D0 - SYS___DLSYM_A = 0x8D1 - SYS___GETUTXENT_A = 0x8C6 - SYS___GETUTXID_A = 0x8C7 - SYS___GETUTXLINE_A = 0x8C8 - SYS___ITOA = 0x8AA - SYS___ITOA_A = 0x8B0 - SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 - SYS___LE_MSG_ADD_INSERT = 0x8A6 - SYS___LE_MSG_GET = 0x8A7 - SYS___LE_MSG_GET_AND_WRITE = 0x8A8 - SYS___LE_MSG_WRITE = 0x8A9 - SYS___LLTOA = 0x8AE - SYS___LLTOA_A = 0x8B4 - SYS___LTOA = 0x8AC - SYS___LTOA_A = 0x8B2 - SYS___PUTCHAR_UNLOCKED_A = 0x8CC - SYS___PUTC_UNLOCKED_A = 0x8CB - SYS___PUTUTXLINE_A = 0x8C9 - SYS___RESET_EXCEPTION_HANDLER = 0x8E3 - SYS___REXEC_A = 0x8C4 - SYS___REXEC_AF_A = 0x8C5 - SYS___SET_EXCEPTION_HANDLER = 0x8E2 - SYS___SNPRINTF_A = 0x8CD - SYS___SUPERKILL = 0x8A4 - SYS___TCGETATTR_A = 0x8A1 - SYS___TCSETATTR_A = 0x8A2 - SYS___ULLTOA = 0x8AF - SYS___ULLTOA_A = 0x8B5 - SYS___ULTOA = 0x8AD - SYS___ULTOA_A = 0x8B3 - SYS___UTOA = 0x8AB - SYS___UTOA_A = 0x8B1 - SYS___VHM_EVENT = 0x8E4 - SYS___VSNPRINTF_A = 0x8CE - SYS_____GETENV_A = 0x8C3 - SYS_____UTMPXNAME_A = 0x8CA - SYS_CACOSH = 0x9A0 - SYS_CACOSHF = 0x9A3 - SYS_CACOSHL = 0x9A6 - SYS_CARG = 0x9A9 - SYS_CARGF = 0x9AC - SYS_CARGL = 0x9AF - SYS_CASIN = 0x9B2 - SYS_CASINF = 0x9B5 - SYS_CASINH = 0x9BB - SYS_CASINHF = 0x9BE - SYS_CASINHL = 0x9C1 - SYS_CASINL = 0x9B8 - SYS_CATAN = 0x9C4 - SYS_CATANF = 0x9C7 - SYS_CATANH = 0x9CD - SYS_CATANHF = 0x9D0 - SYS_CATANHL = 0x9D3 - SYS_CATANL = 0x9CA - SYS_CCOS = 0x9D6 - SYS_CCOSF = 0x9D9 - SYS_CCOSH = 0x9DF - SYS_CCOSHF = 0x9E2 - SYS_CCOSHL = 0x9E5 - SYS_CCOSL = 0x9DC - SYS_CEXP = 0x9E8 - SYS_CEXPF = 0x9EB - SYS_CEXPL = 0x9EE - SYS_CIMAG = 0x9F1 - SYS_CIMAGF = 0x9F4 - SYS_CIMAGL = 0x9F7 - SYS_CLOGF = 0x9FD - SYS_MEMCHR = 0x09B - SYS_MEMCMP = 0x09A - SYS_STRCOLL = 0x09C - SYS_STRNCMP = 0x09D - SYS_STRRCHR = 0x09F - SYS_STRXFRM = 0x09E - SYS___CACOSHF_B = 0x9A4 - SYS___CACOSHF_H = 0x9A5 - SYS___CACOSHL_B = 0x9A7 - SYS___CACOSHL_H = 0x9A8 - SYS___CACOSH_B = 0x9A1 - SYS___CACOSH_H = 0x9A2 - SYS___CARGF_B = 0x9AD - SYS___CARGF_H = 0x9AE - SYS___CARGL_B = 0x9B0 - SYS___CARGL_H = 0x9B1 - SYS___CARG_B = 0x9AA - SYS___CARG_H = 0x9AB - SYS___CASINF_B = 0x9B6 - SYS___CASINF_H = 0x9B7 - SYS___CASINHF_B = 0x9BF - SYS___CASINHF_H = 0x9C0 - SYS___CASINHL_B = 0x9C2 - SYS___CASINHL_H = 0x9C3 - SYS___CASINH_B = 0x9BC - SYS___CASINH_H = 0x9BD - SYS___CASINL_B = 0x9B9 - SYS___CASINL_H = 0x9BA - SYS___CASIN_B = 0x9B3 - SYS___CASIN_H = 0x9B4 - SYS___CATANF_B = 0x9C8 - SYS___CATANF_H = 0x9C9 - SYS___CATANHF_B = 0x9D1 - SYS___CATANHF_H = 0x9D2 - SYS___CATANHL_B = 0x9D4 - SYS___CATANHL_H = 0x9D5 - SYS___CATANH_B = 0x9CE - SYS___CATANH_H = 0x9CF - SYS___CATANL_B = 0x9CB - SYS___CATANL_H = 0x9CC - SYS___CATAN_B = 0x9C5 - SYS___CATAN_H = 0x9C6 - SYS___CCOSF_B = 0x9DA - SYS___CCOSF_H = 0x9DB - SYS___CCOSHF_B = 0x9E3 - SYS___CCOSHF_H = 0x9E4 - SYS___CCOSHL_B = 0x9E6 - SYS___CCOSHL_H = 0x9E7 - SYS___CCOSH_B = 0x9E0 - SYS___CCOSH_H = 0x9E1 - SYS___CCOSL_B = 0x9DD - SYS___CCOSL_H = 0x9DE - SYS___CCOS_B = 0x9D7 - SYS___CCOS_H = 0x9D8 - SYS___CEXPF_B = 0x9EC - SYS___CEXPF_H = 0x9ED - SYS___CEXPL_B = 0x9EF - SYS___CEXPL_H = 0x9F0 - SYS___CEXP_B = 0x9E9 - SYS___CEXP_H = 0x9EA - SYS___CIMAGF_B = 0x9F5 - SYS___CIMAGF_H = 0x9F6 - SYS___CIMAGL_B = 0x9F8 - SYS___CIMAGL_H = 0x9F9 - SYS___CIMAG_B = 0x9F2 - SYS___CIMAG_H = 0x9F3 - SYS___CLOG = 0x9FA - SYS___CLOGF_B = 0x9FE - SYS___CLOGF_H = 0x9FF - SYS___CLOG_B = 0x9FB - SYS___CLOG_H = 0x9FC - SYS_ISWCTYPE = 0x10C - SYS_ISWXDIGI = 0x10A - SYS_ISWXDIGIT = 0x10A - SYS_MBSINIT = 0x10F - SYS_TOWLOWER = 0x10D - SYS_TOWUPPER = 0x10E - SYS_WCTYPE = 0x10B - SYS_WCSSTR = 0x11B - SYS___RPMTCH = 0x11A - SYS_WCSTOD = 0x12E - SYS_WCSTOK = 0x12C - SYS_WCSTOL = 0x12D - SYS_WCSTOUL = 0x12F - SYS_FGETWC = 0x13C - SYS_FGETWS = 0x13D - SYS_FPUTWC = 0x13E - SYS_FPUTWS = 0x13F - SYS_REGERROR = 0x13B - SYS_REGFREE = 0x13A - SYS_COLLEQUIV = 0x14F - SYS_COLLTOSTR = 0x14E - SYS_ISMCCOLLEL = 0x14C - SYS_STRTOCOLL = 0x14D - SYS_DLLFREE = 0x16F - SYS_DLLQUERYFN = 0x16D - SYS_DLLQUERYVAR = 0x16E - SYS_GETMCCOLL = 0x16A - SYS_GETWMCCOLL = 0x16B - SYS___ERR2AD = 0x16C - SYS_CFSETOSPEED = 0x17A - SYS_CHDIR = 0x17B - SYS_CHMOD = 0x17C - SYS_CHOWN = 0x17D - SYS_CLOSE = 0x17E - SYS_CLOSEDIR = 0x17F - SYS_LOG = 0x017 - SYS_COSH = 0x018 - SYS_FCHMOD = 0x18A - SYS_FCHOWN = 0x18B - SYS_FCNTL = 0x18C - SYS_FILENO = 0x18D - SYS_FORK = 0x18E - SYS_FPATHCONF = 0x18F - SYS_GETLOGIN = 0x19A - SYS_GETPGRP = 0x19C - SYS_GETPID = 0x19D - SYS_GETPPID = 0x19E - SYS_GETPWNAM = 0x19F - SYS_TANH = 0x019 - SYS_W_GETMNTENT = 0x19B - SYS_POW = 0x020 - SYS_PTHREAD_SELF = 0x20A - SYS_PTHREAD_SETINTR = 0x20B - SYS_PTHREAD_SETINTRTYPE = 0x20C - SYS_PTHREAD_SETSPECIFIC = 0x20D - SYS_PTHREAD_TESTINTR = 0x20E - SYS_PTHREAD_YIELD = 0x20F - SYS_SQRT = 0x021 - SYS_FLOOR = 0x022 - SYS_J1 = 0x023 - SYS_WCSPBRK = 0x23F - SYS_BSEARCH = 0x24C - SYS_FABS = 0x024 - SYS_GETENV = 0x24A - SYS_LDIV = 0x24D - SYS_SYSTEM = 0x24B - SYS_FMOD = 0x025 - SYS___RETHROW = 0x25F - SYS___THROW = 0x25E - SYS_J0 = 0x026 - SYS_PUTENV = 0x26A - SYS___GETENV = 0x26F - SYS_SEMCTL = 0x27A - SYS_SEMGET = 0x27B - SYS_SEMOP = 0x27C - SYS_SHMAT = 0x27D - SYS_SHMCTL = 0x27E - SYS_SHMDT = 0x27F - SYS_YN = 0x027 - SYS_JN = 0x028 - SYS_SIGALTSTACK = 0x28A - SYS_SIGHOLD = 0x28B - SYS_SIGIGNORE = 0x28C - SYS_SIGINTERRUPT = 0x28D - SYS_SIGPAUSE = 0x28E - SYS_SIGRELSE = 0x28F - SYS_GETOPT = 0x29A - SYS_GETSUBOPT = 0x29D - SYS_LCHOWN = 0x29B - SYS_SETPGRP = 0x29E - SYS_TRUNCATE = 0x29C - SYS_Y0 = 0x029 - SYS___GDERR = 0x29F - SYS_ISALPHA = 0x030 - SYS_VFORK = 0x30F - SYS__LONGJMP = 0x30D - SYS__SETJMP = 0x30E - SYS_GLOB = 0x31A - SYS_GLOBFREE = 0x31B - SYS_ISALNUM = 0x031 - SYS_PUTW = 0x31C - SYS_SEEKDIR = 0x31D - SYS_TELLDIR = 0x31E - SYS_TEMPNAM = 0x31F - SYS_GETTIMEOFDAY_R = 0x32E - SYS_ISLOWER = 0x032 - SYS_LGAMMA = 0x32C - SYS_REMAINDER = 0x32A - SYS_SCALB = 0x32B - SYS_SYNC = 0x32F - SYS_TTYSLOT = 0x32D - SYS_ENDPROTOENT = 0x33A - SYS_ENDSERVENT = 0x33B - SYS_GETHOSTBYADDR = 0x33D - SYS_GETHOSTBYADDR_R = 0x33C - SYS_GETHOSTBYNAME = 0x33F - SYS_GETHOSTBYNAME_R = 0x33E - SYS_ISCNTRL = 0x033 - SYS_GETSERVBYNAME = 0x34A - SYS_GETSERVBYPORT = 0x34B - SYS_GETSERVENT = 0x34C - SYS_GETSOCKNAME = 0x34D - SYS_GETSOCKOPT = 0x34E - SYS_INET_ADDR = 0x34F - SYS_ISDIGIT = 0x034 - SYS_ISGRAPH = 0x035 - SYS_SELECT = 0x35B - SYS_SELECTEX = 0x35C - SYS_SEND = 0x35D - SYS_SENDTO = 0x35F - SYS_CHROOT = 0x36A - SYS_ISNAN = 0x36D - SYS_ISUPPER = 0x036 - SYS_ULIMIT = 0x36C - SYS_UTIMES = 0x36E - SYS_W_STATVFS = 0x36B - SYS___H_ERRNO = 0x36F - SYS_GRANTPT = 0x37A - SYS_ISPRINT = 0x037 - SYS_TCGETSID = 0x37C - SYS_UNLOCKPT = 0x37B - SYS___TCGETCP = 0x37D - SYS___TCSETCP = 0x37E - SYS___TCSETTABLES = 0x37F - SYS_ISPUNCT = 0x038 - SYS_NLIST = 0x38C - SYS___IPDBCS = 0x38D - SYS___IPDSPX = 0x38E - SYS___IPMSGC = 0x38F - SYS___STHOSTENT = 0x38B - SYS___STSERVENT = 0x38A - SYS_ISSPACE = 0x039 - SYS_COS = 0x040 - SYS_T_ALLOC = 0x40A - SYS_T_BIND = 0x40B - SYS_T_CLOSE = 0x40C - SYS_T_CONNECT = 0x40D - SYS_T_ERROR = 0x40E - SYS_T_FREE = 0x40F - SYS_TAN = 0x041 - SYS_T_RCVREL = 0x41A - SYS_T_RCVUDATA = 0x41B - SYS_T_RCVUDERR = 0x41C - SYS_T_SND = 0x41D - SYS_T_SNDDIS = 0x41E - SYS_T_SNDREL = 0x41F - SYS_GETPMSG = 0x42A - SYS_ISASTREAM = 0x42B - SYS_PUTMSG = 0x42C - SYS_PUTPMSG = 0x42D - SYS_SINH = 0x042 - SYS___ISPOSIXON = 0x42E - SYS___OPENMVSREL = 0x42F - SYS_ACOS = 0x043 - SYS_ATAN = 0x044 - SYS_ATAN2 = 0x045 - SYS_FTELL = 0x046 - SYS_FGETPOS = 0x047 - SYS_SOCK_DEBUG = 0x47A - SYS_SOCK_DO_TESTSTOR = 0x47D - SYS_TAKESOCKET = 0x47E - SYS___SERVER_INIT = 0x47F - SYS_FSEEK = 0x048 - SYS___IPHOST = 0x48B - SYS___IPNODE = 0x48C - SYS___SERVER_CLASSIFY_CREATE = 0x48D - SYS___SERVER_CLASSIFY_DESTROY = 0x48E - SYS___SERVER_CLASSIFY_RESET = 0x48F - SYS___SMF_RECORD = 0x48A - SYS_FSETPOS = 0x049 - SYS___FNWSA = 0x49B - SYS___SPAWN2 = 0x49D - SYS___SPAWNP2 = 0x49E - SYS_ATOF = 0x050 - SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A - SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B - SYS_PTHREAD_RWLOCK_DESTROY = 0x50C - SYS_PTHREAD_RWLOCK_INIT = 0x50D - SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E - SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F - SYS_ATOI = 0x051 - SYS___FP_CLASS = 0x51D - SYS___FP_CLR_FLAG = 0x51A - SYS___FP_FINITE = 0x51E - SYS___FP_ISNAN = 0x51F - SYS___FP_RAISE_XCP = 0x51C - SYS___FP_READ_FLAG = 0x51B - SYS_RAND = 0x052 - SYS_SIGTIMEDWAIT = 0x52D - SYS_SIGWAITINFO = 0x52E - SYS___CHKBFP = 0x52F - SYS___FPC_RS = 0x52C - SYS___FPC_RW = 0x52A - SYS___FPC_SM = 0x52B - SYS_STRTOD = 0x053 - SYS_STRTOL = 0x054 - SYS_STRTOUL = 0x055 - SYS_MALLOC = 0x056 - SYS_SRAND = 0x057 - SYS_CALLOC = 0x058 - SYS_FREE = 0x059 - SYS___OSENV = 0x59F - SYS___W_PIOCTL = 0x59E - SYS_LONGJMP = 0x060 - SYS___FLOORF_B = 0x60A - SYS___FLOORL_B = 0x60B - SYS___FREXPF_B = 0x60C - SYS___FREXPL_B = 0x60D - SYS___LDEXPF_B = 0x60E - SYS___LDEXPL_B = 0x60F - SYS_SIGNAL = 0x061 - SYS___ATAN2F_B = 0x61A - SYS___ATAN2L_B = 0x61B - SYS___COSHF_B = 0x61C - SYS___COSHL_B = 0x61D - SYS___EXPF_B = 0x61E - SYS___EXPL_B = 0x61F - SYS_TMPNAM = 0x062 - SYS___ABSF_B = 0x62A - SYS___ABSL_B = 0x62C - SYS___ABS_B = 0x62B - SYS___FMODF_B = 0x62D - SYS___FMODL_B = 0x62E - SYS___MODFF_B = 0x62F - SYS_ATANL = 0x63A - SYS_CEILF = 0x63B - SYS_CEILL = 0x63C - SYS_COSF = 0x63D - SYS_COSHF = 0x63F - SYS_COSL = 0x63E - SYS_REMOVE = 0x063 - SYS_POWL = 0x64A - SYS_RENAME = 0x064 - SYS_SINF = 0x64B - SYS_SINHF = 0x64F - SYS_SINL = 0x64C - SYS_SQRTF = 0x64D - SYS_SQRTL = 0x64E - SYS_BTOWC = 0x65F - SYS_FREXPL = 0x65A - SYS_LDEXPF = 0x65B - SYS_LDEXPL = 0x65C - SYS_MODFF = 0x65D - SYS_MODFL = 0x65E - SYS_TMPFILE = 0x065 - SYS_FREOPEN = 0x066 - SYS___CHARMAP_INIT_A = 0x66E - SYS___GETHOSTBYADDR_R_A = 0x66C - SYS___GETHOSTBYNAME_A = 0x66A - SYS___GETHOSTBYNAME_R_A = 0x66D - SYS___MBLEN_A = 0x66F - SYS___RES_INIT_A = 0x66B - SYS_FCLOSE = 0x067 - SYS___GETGRGID_R_A = 0x67D - SYS___WCSTOMBS_A = 0x67A - SYS___WCSTOMBS_STD_A = 0x67B - SYS___WCSWIDTH_A = 0x67C - SYS___WCSWIDTH_ASIA = 0x67F - SYS___WCSWIDTH_STD_A = 0x67E - SYS_FFLUSH = 0x068 - SYS___GETLOGIN_R_A = 0x68E - SYS___GETPWNAM_R_A = 0x68C - SYS___GETPWUID_R_A = 0x68D - SYS___TTYNAME_R_A = 0x68F - SYS___WCWIDTH_ASIA = 0x68B - SYS___WCWIDTH_STD_A = 0x68A - SYS_FOPEN = 0x069 - SYS___REGEXEC_A = 0x69A - SYS___REGEXEC_STD_A = 0x69B - SYS___REGFREE_A = 0x69C - SYS___REGFREE_STD_A = 0x69D - SYS___STRCOLL_A = 0x69E - SYS___STRCOLL_C_A = 0x69F - SYS_SCANF = 0x070 - SYS___A64L_A = 0x70C - SYS___ECVT_A = 0x70D - SYS___FCVT_A = 0x70E - SYS___GCVT_A = 0x70F - SYS___STRTOUL_A = 0x70A - SYS_____AE_CORRESTBL_QUERY_A = 0x70B - SYS_SPRINTF = 0x071 - SYS___ACCESS_A = 0x71F - SYS___CATOPEN_A = 0x71E - SYS___GETOPT_A = 0x71D - SYS___REALPATH_A = 0x71A - SYS___SETENV_A = 0x71B - SYS___SYSTEM_A = 0x71C - SYS_FGETC = 0x072 - SYS___GAI_STRERROR_A = 0x72F - SYS___RMDIR_A = 0x72A - SYS___STATVFS_A = 0x72B - SYS___SYMLINK_A = 0x72C - SYS___TRUNCATE_A = 0x72D - SYS___UNLINK_A = 0x72E - SYS_VFPRINTF = 0x073 - SYS___ISSPACE_A = 0x73A - SYS___ISUPPER_A = 0x73B - SYS___ISWALNUM_A = 0x73F - SYS___ISXDIGIT_A = 0x73C - SYS___TOLOWER_A = 0x73D - SYS___TOUPPER_A = 0x73E - SYS_VPRINTF = 0x074 - SYS___CONFSTR_A = 0x74B - SYS___FDOPEN_A = 0x74E - SYS___FLDATA_A = 0x74F - SYS___FTOK_A = 0x74C - SYS___ISWXDIGIT_A = 0x74A - SYS___MKTEMP_A = 0x74D - SYS_VSPRINTF = 0x075 - SYS___GETGRGID_A = 0x75A - SYS___GETGRNAM_A = 0x75B - SYS___GETGROUPSBYNAME_A = 0x75C - SYS___GETHOSTENT_A = 0x75D - SYS___GETHOSTNAME_A = 0x75E - SYS___GETLOGIN_A = 0x75F - SYS_GETC = 0x076 - SYS___CREATEWORKUNIT_A = 0x76A - SYS___CTERMID_A = 0x76B - SYS___FMTMSG_A = 0x76C - SYS___INITGROUPS_A = 0x76D - SYS___MSGRCV_A = 0x76F - SYS_____LOGIN_A = 0x76E - SYS_FGETS = 0x077 - SYS___STRCASECMP_A = 0x77B - SYS___STRNCASECMP_A = 0x77C - SYS___TTYNAME_A = 0x77D - SYS___UNAME_A = 0x77E - SYS___UTIMES_A = 0x77F - SYS_____SERVER_PWU_A = 0x77A - SYS_FPUTC = 0x078 - SYS___CREAT_O_A = 0x78E - SYS___ENVNA = 0x78F - SYS___FREAD_A = 0x78A - SYS___FWRITE_A = 0x78B - SYS___ISASCII = 0x78D - SYS___OPEN_O_A = 0x78C - SYS_FPUTS = 0x079 - SYS___ASCTIME_A = 0x79C - SYS___CTIME_A = 0x79D - SYS___GETDATE_A = 0x79E - SYS___GETSERVBYPORT_A = 0x79A - SYS___GETSERVENT_A = 0x79B - SYS___TZSET_A = 0x79F - SYS_ACL_FROM_TEXT = 0x80C - SYS_ACL_SET_FD = 0x80A - SYS_ACL_SET_FILE = 0x80B - SYS_ACL_SORT = 0x80E - SYS_ACL_TO_TEXT = 0x80D - SYS_UNGETC = 0x080 - SYS___SHUTDOWN_REGISTRATION = 0x80F - SYS_FREAD = 0x081 - SYS_FREEADDRINFO = 0x81A - SYS_GAI_STRERROR = 0x81B - SYS_REXEC_AF = 0x81C - SYS___DYNALLOC_A = 0x81F - SYS___POE = 0x81D - SYS_WCSTOMBS = 0x082 - SYS___INET_ADDR_A = 0x82F - SYS___NLIST_A = 0x82A - SYS_____TCGETCP_A = 0x82B - SYS_____TCSETCP_A = 0x82C - SYS_____W_PIOCTL_A = 0x82E - SYS_MBTOWC = 0x083 - SYS___CABEND = 0x83D - SYS___LE_CIB_GET = 0x83E - SYS___RECVMSG_A = 0x83B - SYS___SENDMSG_A = 0x83A - SYS___SET_LAA_FOR_JIT = 0x83F - SYS_____LCHATTR_A = 0x83C - SYS_WCTOMB = 0x084 - SYS___CBRTL_B = 0x84A - SYS___COPYSIGNF_B = 0x84B - SYS___COPYSIGNL_B = 0x84C - SYS___COTANF_B = 0x84D - SYS___COTANL_B = 0x84F - SYS___COTAN_B = 0x84E - SYS_MBSTOWCS = 0x085 - SYS___LOG1PL_B = 0x85A - SYS___LOG2F_B = 0x85B - SYS___LOG2L_B = 0x85D - SYS___LOG2_B = 0x85C - SYS___REMAINDERF_B = 0x85E - SYS___REMAINDERL_B = 0x85F - SYS_ACOSHF = 0x86E - SYS_ACOSHL = 0x86F - SYS_WCSCPY = 0x086 - SYS___ERFCF_B = 0x86D - SYS___ERFF_B = 0x86C - SYS___LROUNDF_B = 0x86A - SYS___LROUND_B = 0x86B - SYS_COTANL = 0x87A - SYS_EXP2F = 0x87B - SYS_EXP2L = 0x87C - SYS_EXPM1F = 0x87D - SYS_EXPM1L = 0x87E - SYS_FDIMF = 0x87F - SYS_WCSCAT = 0x087 - SYS___COTANL = 0x87A - SYS_REMAINDERF = 0x88A - SYS_REMAINDERL = 0x88B - SYS_REMAINDF = 0x88A - SYS_REMAINDL = 0x88B - SYS_REMQUO = 0x88D - SYS_REMQUOF = 0x88C - SYS_REMQUOL = 0x88E - SYS_TGAMMAF = 0x88F - SYS_WCSCHR = 0x088 - SYS_ERFCF = 0x89B - SYS_ERFCL = 0x89C - SYS_ERFL = 0x89A - SYS_EXP2 = 0x89E - SYS_WCSCMP = 0x089 - SYS___EXP2_B = 0x89D - SYS___FAR_JUMP = 0x89F - SYS_ABS = 0x090 - SYS___ERFCL_H = 0x90A - SYS___EXPF_H = 0x90C - SYS___EXPL_H = 0x90D - SYS___EXPM1_H = 0x90E - SYS___EXP_H = 0x90B - SYS___FDIM_H = 0x90F - SYS_DIV = 0x091 - SYS___LOG2F_H = 0x91F - SYS___LOG2_H = 0x91E - SYS___LOGB_H = 0x91D - SYS___LOGF_H = 0x91B - SYS___LOGL_H = 0x91C - SYS___LOG_H = 0x91A - SYS_LABS = 0x092 - SYS___POWL_H = 0x92A - SYS___REMAINDER_H = 0x92B - SYS___RINT_H = 0x92C - SYS___SCALB_H = 0x92D - SYS___SINF_H = 0x92F - SYS___SIN_H = 0x92E - SYS_STRNCPY = 0x093 - SYS___TANHF_H = 0x93B - SYS___TANHL_H = 0x93C - SYS___TANH_H = 0x93A - SYS___TGAMMAF_H = 0x93E - SYS___TGAMMA_H = 0x93D - SYS___TRUNC_H = 0x93F - SYS_MEMCPY = 0x094 - SYS_VFWSCANF = 0x94A - SYS_VSWSCANF = 0x94E - SYS_VWSCANF = 0x94C - SYS_INET6_RTH_ADD = 0x95D - SYS_INET6_RTH_INIT = 0x95C - SYS_INET6_RTH_REVERSE = 0x95E - SYS_INET6_RTH_SEGMENTS = 0x95F - SYS_INET6_RTH_SPACE = 0x95B - SYS_MEMMOVE = 0x095 - SYS_WCSTOLD = 0x95A - SYS_STRCPY = 0x096 - SYS_STRCMP = 0x097 - SYS_CABS = 0x98E - SYS_STRCAT = 0x098 - SYS___CABS_B = 0x98F - SYS___POW_II = 0x98A - SYS___POW_II_B = 0x98B - SYS___POW_II_H = 0x98C - SYS_CACOSF = 0x99A - SYS_CACOSL = 0x99D - SYS_STRNCAT = 0x099 - SYS___CACOSF_B = 0x99B - SYS___CACOSF_H = 0x99C - SYS___CACOSL_B = 0x99E - SYS___CACOSL_H = 0x99F - SYS_ISWALPHA = 0x100 - SYS_ISWBLANK = 0x101 - SYS___ISWBLK = 0x101 - SYS_ISWCNTRL = 0x102 - SYS_ISWDIGIT = 0x103 - SYS_ISWGRAPH = 0x104 - SYS_ISWLOWER = 0x105 - SYS_ISWPRINT = 0x106 - SYS_ISWPUNCT = 0x107 - SYS_ISWSPACE = 0x108 - SYS_ISWUPPER = 0x109 - SYS_WCTOB = 0x110 - SYS_MBRLEN = 0x111 - SYS_MBRTOWC = 0x112 - SYS_MBSRTOWC = 0x113 - SYS_MBSRTOWCS = 0x113 - SYS_WCRTOMB = 0x114 - SYS_WCSRTOMB = 0x115 - SYS_WCSRTOMBS = 0x115 - SYS___CSID = 0x116 - SYS___WCSID = 0x117 - SYS_STRPTIME = 0x118 - SYS___STRPTM = 0x118 - SYS_STRFMON = 0x119 - SYS_WCSCOLL = 0x130 - SYS_WCSXFRM = 0x131 - SYS_WCSWIDTH = 0x132 - SYS_WCWIDTH = 0x133 - SYS_WCSFTIME = 0x134 - SYS_SWPRINTF = 0x135 - SYS_VSWPRINT = 0x136 - SYS_VSWPRINTF = 0x136 - SYS_SWSCANF = 0x137 - SYS_REGCOMP = 0x138 - SYS_REGEXEC = 0x139 - SYS_GETWC = 0x140 - SYS_GETWCHAR = 0x141 - SYS_PUTWC = 0x142 - SYS_PUTWCHAR = 0x143 - SYS_UNGETWC = 0x144 - SYS_ICONV_OPEN = 0x145 - SYS_ICONV = 0x146 - SYS_ICONV_CLOSE = 0x147 - SYS_COLLRANGE = 0x150 - SYS_CCLASS = 0x151 - SYS_COLLORDER = 0x152 - SYS___DEMANGLE = 0x154 - SYS_FDOPEN = 0x155 - SYS___ERRNO = 0x156 - SYS___ERRNO2 = 0x157 - SYS___TERROR = 0x158 - SYS_MAXCOLL = 0x169 - SYS_DLLLOAD = 0x170 - SYS__EXIT = 0x174 - SYS_ACCESS = 0x175 - SYS_ALARM = 0x176 - SYS_CFGETISPEED = 0x177 - SYS_CFGETOSPEED = 0x178 - SYS_CFSETISPEED = 0x179 - SYS_CREAT = 0x180 - SYS_CTERMID = 0x181 - SYS_DUP = 0x182 - SYS_DUP2 = 0x183 - SYS_EXECL = 0x184 - SYS_EXECLE = 0x185 - SYS_EXECLP = 0x186 - SYS_EXECV = 0x187 - SYS_EXECVE = 0x188 - SYS_EXECVP = 0x189 - SYS_FSTAT = 0x190 - SYS_FSYNC = 0x191 - SYS_FTRUNCATE = 0x192 - SYS_GETCWD = 0x193 - SYS_GETEGID = 0x194 - SYS_GETEUID = 0x195 - SYS_GETGID = 0x196 - SYS_GETGRGID = 0x197 - SYS_GETGRNAM = 0x198 - SYS_GETGROUPS = 0x199 - SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 - SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 - SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 - SYS_PTHREAD_MUTEX_INIT = 0x203 - SYS_PTHREAD_MUTEX_DESTROY = 0x204 - SYS_PTHREAD_MUTEX_LOCK = 0x205 - SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 - SYS_PTHREAD_MUTEX_UNLOCK = 0x207 - SYS_PTHREAD_ONCE = 0x209 - SYS_TW_OPEN = 0x210 - SYS_TW_FCNTL = 0x211 - SYS_PTHREAD_JOIN_D4_NP = 0x212 - SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 - SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 - SYS_EXTLINK_NP = 0x215 - SYS___PASSWD = 0x216 - SYS_SETGROUPS = 0x217 - SYS_INITGROUPS = 0x218 - SYS_WCSRCHR = 0x240 - SYS_SVC99 = 0x241 - SYS___SVC99 = 0x241 - SYS_WCSWCS = 0x242 - SYS_LOCALECO = 0x243 - SYS_LOCALECONV = 0x243 - SYS___LIBREL = 0x244 - SYS_RELEASE = 0x245 - SYS___RLSE = 0x245 - SYS_FLOCATE = 0x246 - SYS___FLOCT = 0x246 - SYS_FDELREC = 0x247 - SYS___FDLREC = 0x247 - SYS_FETCH = 0x248 - SYS___FETCH = 0x248 - SYS_QSORT = 0x249 - SYS___CLEANUPCATCH = 0x260 - SYS___CATCHMATCH = 0x261 - SYS___CLEAN2UPCATCH = 0x262 - SYS_GETPRIORITY = 0x270 - SYS_NICE = 0x271 - SYS_SETPRIORITY = 0x272 - SYS_GETITIMER = 0x273 - SYS_SETITIMER = 0x274 - SYS_MSGCTL = 0x275 - SYS_MSGGET = 0x276 - SYS_MSGRCV = 0x277 - SYS_MSGSND = 0x278 - SYS_MSGXRCV = 0x279 - SYS___MSGXR = 0x279 - SYS_SHMGET = 0x280 - SYS___GETIPC = 0x281 - SYS_SETGRENT = 0x282 - SYS_GETGRENT = 0x283 - SYS_ENDGRENT = 0x284 - SYS_SETPWENT = 0x285 - SYS_GETPWENT = 0x286 - SYS_ENDPWENT = 0x287 - SYS_BSD_SIGNAL = 0x288 - SYS_KILLPG = 0x289 - SYS_SIGSET = 0x290 - SYS_SIGSTACK = 0x291 - SYS_GETRLIMIT = 0x292 - SYS_SETRLIMIT = 0x293 - SYS_GETRUSAGE = 0x294 - SYS_MMAP = 0x295 - SYS_MPROTECT = 0x296 - SYS_MSYNC = 0x297 - SYS_MUNMAP = 0x298 - SYS_CONFSTR = 0x299 - SYS___NDMTRM = 0x300 - SYS_FTOK = 0x301 - SYS_BASENAME = 0x302 - SYS_DIRNAME = 0x303 - SYS_GETDTABLESIZE = 0x304 - SYS_MKSTEMP = 0x305 - SYS_MKTEMP = 0x306 - SYS_NFTW = 0x307 - SYS_GETWD = 0x308 - SYS_LOCKF = 0x309 - SYS_WORDEXP = 0x310 - SYS_WORDFREE = 0x311 - SYS_GETPGID = 0x312 - SYS_GETSID = 0x313 - SYS___UTMPXNAME = 0x314 - SYS_CUSERID = 0x315 - SYS_GETPASS = 0x316 - SYS_FNMATCH = 0x317 - SYS_FTW = 0x318 - SYS_GETW = 0x319 - SYS_ACOSH = 0x320 - SYS_ASINH = 0x321 - SYS_ATANH = 0x322 - SYS_CBRT = 0x323 - SYS_EXPM1 = 0x324 - SYS_ILOGB = 0x325 - SYS_LOGB = 0x326 - SYS_LOG1P = 0x327 - SYS_NEXTAFTER = 0x328 - SYS_RINT = 0x329 - SYS_SPAWN = 0x330 - SYS_SPAWNP = 0x331 - SYS_GETLOGIN_UU = 0x332 - SYS_ECVT = 0x333 - SYS_FCVT = 0x334 - SYS_GCVT = 0x335 - SYS_ACCEPT = 0x336 - SYS_BIND = 0x337 - SYS_CONNECT = 0x338 - SYS_ENDHOSTENT = 0x339 - SYS_GETHOSTENT = 0x340 - SYS_GETHOSTID = 0x341 - SYS_GETHOSTNAME = 0x342 - SYS_GETNETBYADDR = 0x343 - SYS_GETNETBYNAME = 0x344 - SYS_GETNETENT = 0x345 - SYS_GETPEERNAME = 0x346 - SYS_GETPROTOBYNAME = 0x347 - SYS_GETPROTOBYNUMBER = 0x348 - SYS_GETPROTOENT = 0x349 - SYS_INET_LNAOF = 0x350 - SYS_INET_MAKEADDR = 0x351 - SYS_INET_NETOF = 0x352 - SYS_INET_NETWORK = 0x353 - SYS_INET_NTOA = 0x354 - SYS_IOCTL = 0x355 - SYS_LISTEN = 0x356 - SYS_READV = 0x357 - SYS_RECV = 0x358 - SYS_RECVFROM = 0x359 - SYS_SETHOSTENT = 0x360 - SYS_SETNETENT = 0x361 - SYS_SETPEER = 0x362 - SYS_SETPROTOENT = 0x363 - SYS_SETSERVENT = 0x364 - SYS_SETSOCKOPT = 0x365 - SYS_SHUTDOWN = 0x366 - SYS_SOCKET = 0x367 - SYS_SOCKETPAIR = 0x368 - SYS_WRITEV = 0x369 - SYS_ENDNETENT = 0x370 - SYS_CLOSELOG = 0x371 - SYS_OPENLOG = 0x372 - SYS_SETLOGMASK = 0x373 - SYS_SYSLOG = 0x374 - SYS_PTSNAME = 0x375 - SYS_SETREUID = 0x376 - SYS_SETREGID = 0x377 - SYS_REALPATH = 0x378 - SYS___SIGNGAM = 0x379 - SYS_POLL = 0x380 - SYS_REXEC = 0x381 - SYS___ISASCII2 = 0x382 - SYS___TOASCII2 = 0x383 - SYS_CHPRIORITY = 0x384 - SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 - SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 - SYS_PTHREAD_SET_LIMIT_NP = 0x387 - SYS___STNETENT = 0x388 - SYS___STPROTOENT = 0x389 - SYS___SELECT1 = 0x390 - SYS_PTHREAD_SECURITY_NP = 0x391 - SYS___CHECK_RESOURCE_AUTH_NP = 0x392 - SYS___CONVERT_ID_NP = 0x393 - SYS___OPENVMREL = 0x394 - SYS_WMEMCHR = 0x395 - SYS_WMEMCMP = 0x396 - SYS_WMEMCPY = 0x397 - SYS_WMEMMOVE = 0x398 - SYS_WMEMSET = 0x399 - SYS___FPUTWC = 0x400 - SYS___PUTWC = 0x401 - SYS___PWCHAR = 0x402 - SYS___WCSFTM = 0x403 - SYS___WCSTOK = 0x404 - SYS___WCWDTH = 0x405 - SYS_T_ACCEPT = 0x409 - SYS_T_GETINFO = 0x410 - SYS_T_GETPROTADDR = 0x411 - SYS_T_GETSTATE = 0x412 - SYS_T_LISTEN = 0x413 - SYS_T_LOOK = 0x414 - SYS_T_OPEN = 0x415 - SYS_T_OPTMGMT = 0x416 - SYS_T_RCV = 0x417 - SYS_T_RCVCONNECT = 0x418 - SYS_T_RCVDIS = 0x419 - SYS_T_SNDUDATA = 0x420 - SYS_T_STRERROR = 0x421 - SYS_T_SYNC = 0x422 - SYS_T_UNBIND = 0x423 - SYS___T_ERRNO = 0x424 - SYS___RECVMSG2 = 0x425 - SYS___SENDMSG2 = 0x426 - SYS_FATTACH = 0x427 - SYS_FDETACH = 0x428 - SYS_GETMSG = 0x429 - SYS_GETCONTEXT = 0x430 - SYS_SETCONTEXT = 0x431 - SYS_MAKECONTEXT = 0x432 - SYS_SWAPCONTEXT = 0x433 - SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 - SYS_GETCLIENTID = 0x470 - SYS___GETCLIENTID = 0x471 - SYS_GETSTABLESIZE = 0x472 - SYS_GETIBMOPT = 0x473 - SYS_GETIBMSOCKOPT = 0x474 - SYS_GIVESOCKET = 0x475 - SYS_IBMSFLUSH = 0x476 - SYS_MAXDESC = 0x477 - SYS_SETIBMOPT = 0x478 - SYS_SETIBMSOCKOPT = 0x479 - SYS___SERVER_PWU = 0x480 - SYS_PTHREAD_TAG_NP = 0x481 - SYS___CONSOLE = 0x482 - SYS___WSINIT = 0x483 - SYS___IPTCPN = 0x489 - SYS___SERVER_CLASSIFY = 0x490 - SYS___HEAPRPT = 0x496 - SYS___ISBFP = 0x500 - SYS___FP_CAST = 0x501 - SYS___CERTIFICATE = 0x502 - SYS_SEND_FILE = 0x503 - SYS_AIO_CANCEL = 0x504 - SYS_AIO_ERROR = 0x505 - SYS_AIO_READ = 0x506 - SYS_AIO_RETURN = 0x507 - SYS_AIO_SUSPEND = 0x508 - SYS_AIO_WRITE = 0x509 - SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 - SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 - SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 - SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 - SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 - SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 - SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 - SYS___CTTBL = 0x517 - SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 - SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 - SYS___FP_UNORDERED = 0x520 - SYS___FP_READ_RND = 0x521 - SYS___FP_READ_RND_B = 0x522 - SYS___FP_SWAP_RND = 0x523 - SYS___FP_SWAP_RND_B = 0x524 - SYS___FP_LEVEL = 0x525 - SYS___FP_BTOH = 0x526 - SYS___FP_HTOB = 0x527 - SYS___FPC_RD = 0x528 - SYS___FPC_WR = 0x529 - SYS_PTHREAD_SETCANCELTYPE = 0x600 - SYS_PTHREAD_TESTCANCEL = 0x601 - SYS___ATANF_B = 0x602 - SYS___ATANL_B = 0x603 - SYS___CEILF_B = 0x604 - SYS___CEILL_B = 0x605 - SYS___COSF_B = 0x606 - SYS___COSL_B = 0x607 - SYS___FABSF_B = 0x608 - SYS___FABSL_B = 0x609 - SYS___SINF_B = 0x610 - SYS___SINL_B = 0x611 - SYS___TANF_B = 0x612 - SYS___TANL_B = 0x613 - SYS___TANHF_B = 0x614 - SYS___TANHL_B = 0x615 - SYS___ACOSF_B = 0x616 - SYS___ACOSL_B = 0x617 - SYS___ASINF_B = 0x618 - SYS___ASINL_B = 0x619 - SYS___LOGF_B = 0x620 - SYS___LOGL_B = 0x621 - SYS___LOG10F_B = 0x622 - SYS___LOG10L_B = 0x623 - SYS___POWF_B = 0x624 - SYS___POWL_B = 0x625 - SYS___SINHF_B = 0x626 - SYS___SINHL_B = 0x627 - SYS___SQRTF_B = 0x628 - SYS___SQRTL_B = 0x629 - SYS___MODFL_B = 0x630 - SYS_ABSF = 0x631 - SYS_ABSL = 0x632 - SYS_ACOSF = 0x633 - SYS_ACOSL = 0x634 - SYS_ASINF = 0x635 - SYS_ASINL = 0x636 - SYS_ATAN2F = 0x637 - SYS_ATAN2L = 0x638 - SYS_ATANF = 0x639 - SYS_COSHL = 0x640 - SYS_EXPF = 0x641 - SYS_EXPL = 0x642 - SYS_TANHF = 0x643 - SYS_TANHL = 0x644 - SYS_LOG10F = 0x645 - SYS_LOG10L = 0x646 - SYS_LOGF = 0x647 - SYS_LOGL = 0x648 - SYS_POWF = 0x649 - SYS_SINHL = 0x650 - SYS_TANF = 0x651 - SYS_TANL = 0x652 - SYS_FABSF = 0x653 - SYS_FABSL = 0x654 - SYS_FLOORF = 0x655 - SYS_FLOORL = 0x656 - SYS_FMODF = 0x657 - SYS_FMODL = 0x658 - SYS_FREXPF = 0x659 - SYS___CHATTR = 0x660 - SYS___FCHATTR = 0x661 - SYS___TOCCSID = 0x662 - SYS___CSNAMETYPE = 0x663 - SYS___TOCSNAME = 0x664 - SYS___CCSIDTYPE = 0x665 - SYS___AE_CORRESTBL_QUERY = 0x666 - SYS___AE_AUTOCONVERT_STATE = 0x667 - SYS_DN_FIND = 0x668 - SYS___GETHOSTBYADDR_A = 0x669 - SYS___MBLEN_SB_A = 0x670 - SYS___MBLEN_STD_A = 0x671 - SYS___MBLEN_UTF = 0x672 - SYS___MBSTOWCS_A = 0x673 - SYS___MBSTOWCS_STD_A = 0x674 - SYS___MBTOWC_A = 0x675 - SYS___MBTOWC_ISO1 = 0x676 - SYS___MBTOWC_SBCS = 0x677 - SYS___MBTOWC_MBCS = 0x678 - SYS___MBTOWC_UTF = 0x679 - SYS___CSID_A = 0x680 - SYS___CSID_STD_A = 0x681 - SYS___WCSID_A = 0x682 - SYS___WCSID_STD_A = 0x683 - SYS___WCTOMB_A = 0x684 - SYS___WCTOMB_ISO1 = 0x685 - SYS___WCTOMB_STD_A = 0x686 - SYS___WCTOMB_UTF = 0x687 - SYS___WCWIDTH_A = 0x688 - SYS___GETGRNAM_R_A = 0x689 - SYS___READDIR_R_A = 0x690 - SYS___E2A_S = 0x691 - SYS___FNMATCH_A = 0x692 - SYS___FNMATCH_C_A = 0x693 - SYS___EXECL_A = 0x694 - SYS___FNMATCH_STD_A = 0x695 - SYS___REGCOMP_A = 0x696 - SYS___REGCOMP_STD_A = 0x697 - SYS___REGERROR_A = 0x698 - SYS___REGERROR_STD_A = 0x699 - SYS___SWPRINTF_A = 0x700 - SYS___FSCANF_A = 0x701 - SYS___SCANF_A = 0x702 - SYS___SSCANF_A = 0x703 - SYS___SWSCANF_A = 0x704 - SYS___ATOF_A = 0x705 - SYS___ATOI_A = 0x706 - SYS___ATOL_A = 0x707 - SYS___STRTOD_A = 0x708 - SYS___STRTOL_A = 0x709 - SYS___L64A_A = 0x710 - SYS___STRERROR_A = 0x711 - SYS___PERROR_A = 0x712 - SYS___FETCH_A = 0x713 - SYS___GETENV_A = 0x714 - SYS___MKSTEMP_A = 0x717 - SYS___PTSNAME_A = 0x718 - SYS___PUTENV_A = 0x719 - SYS___CHDIR_A = 0x720 - SYS___CHOWN_A = 0x721 - SYS___CHROOT_A = 0x722 - SYS___GETCWD_A = 0x723 - SYS___GETWD_A = 0x724 - SYS___LCHOWN_A = 0x725 - SYS___LINK_A = 0x726 - SYS___PATHCONF_A = 0x727 - SYS___IF_NAMEINDEX_A = 0x728 - SYS___READLINK_A = 0x729 - SYS___EXTLINK_NP_A = 0x730 - SYS___ISALNUM_A = 0x731 - SYS___ISALPHA_A = 0x732 - SYS___A2E_S = 0x733 - SYS___ISCNTRL_A = 0x734 - SYS___ISDIGIT_A = 0x735 - SYS___ISGRAPH_A = 0x736 - SYS___ISLOWER_A = 0x737 - SYS___ISPRINT_A = 0x738 - SYS___ISPUNCT_A = 0x739 - SYS___ISWALPHA_A = 0x740 - SYS___A2E_L = 0x741 - SYS___ISWCNTRL_A = 0x742 - SYS___ISWDIGIT_A = 0x743 - SYS___ISWGRAPH_A = 0x744 - SYS___ISWLOWER_A = 0x745 - SYS___ISWPRINT_A = 0x746 - SYS___ISWPUNCT_A = 0x747 - SYS___ISWSPACE_A = 0x748 - SYS___ISWUPPER_A = 0x749 - SYS___REMOVE_A = 0x750 - SYS___RENAME_A = 0x751 - SYS___TMPNAM_A = 0x752 - SYS___FOPEN_A = 0x753 - SYS___FREOPEN_A = 0x754 - SYS___CUSERID_A = 0x755 - SYS___POPEN_A = 0x756 - SYS___TEMPNAM_A = 0x757 - SYS___FTW_A = 0x758 - SYS___GETGRENT_A = 0x759 - SYS___INET_NTOP_A = 0x760 - SYS___GETPASS_A = 0x761 - SYS___GETPWENT_A = 0x762 - SYS___GETPWNAM_A = 0x763 - SYS___GETPWUID_A = 0x764 - SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 - SYS___CHECKSCHENV_A = 0x766 - SYS___CONNECTSERVER_A = 0x767 - SYS___CONNECTWORKMGR_A = 0x768 - SYS_____CONSOLE_A = 0x769 - SYS___MSGSND_A = 0x770 - SYS___MSGXRCV_A = 0x771 - SYS___NFTW_A = 0x772 - SYS_____PASSWD_A = 0x773 - SYS___PTHREAD_SECURITY_NP_A = 0x774 - SYS___QUERYMETRICS_A = 0x775 - SYS___QUERYSCHENV = 0x776 - SYS___READV_A = 0x777 - SYS_____SERVER_CLASSIFY_A = 0x778 - SYS_____SERVER_INIT_A = 0x779 - SYS___W_GETPSENT_A = 0x780 - SYS___WRITEV_A = 0x781 - SYS___W_STATFS_A = 0x782 - SYS___W_STATVFS_A = 0x783 - SYS___FPUTC_A = 0x784 - SYS___PUTCHAR_A = 0x785 - SYS___PUTS_A = 0x786 - SYS___FGETS_A = 0x787 - SYS___GETS_A = 0x788 - SYS___FPUTS_A = 0x789 - SYS___PUTC_A = 0x790 - SYS___AE_THREAD_SETMODE = 0x791 - SYS___AE_THREAD_SWAPMODE = 0x792 - SYS___GETNETBYADDR_A = 0x793 - SYS___GETNETBYNAME_A = 0x794 - SYS___GETNETENT_A = 0x795 - SYS___GETPROTOBYNAME_A = 0x796 - SYS___GETPROTOBYNUMBER_A = 0x797 - SYS___GETPROTOENT_A = 0x798 - SYS___GETSERVBYNAME_A = 0x799 - SYS_ACL_FIRST_ENTRY = 0x800 - SYS_ACL_GET_ENTRY = 0x801 - SYS_ACL_VALID = 0x802 - SYS_ACL_CREATE_ENTRY = 0x803 - SYS_ACL_DELETE_ENTRY = 0x804 - SYS_ACL_UPDATE_ENTRY = 0x805 - SYS_ACL_DELETE_FD = 0x806 - SYS_ACL_DELETE_FILE = 0x807 - SYS_ACL_GET_FD = 0x808 - SYS_ACL_GET_FILE = 0x809 - SYS___ERFL_B = 0x810 - SYS___ERFCL_B = 0x811 - SYS___LGAMMAL_B = 0x812 - SYS___SETHOOKEVENTS = 0x813 - SYS_IF_NAMETOINDEX = 0x814 - SYS_IF_INDEXTONAME = 0x815 - SYS_IF_NAMEINDEX = 0x816 - SYS_IF_FREENAMEINDEX = 0x817 - SYS_GETADDRINFO = 0x818 - SYS_GETNAMEINFO = 0x819 - SYS___DYNFREE_A = 0x820 - SYS___RES_QUERY_A = 0x821 - SYS___RES_SEARCH_A = 0x822 - SYS___RES_QUERYDOMAIN_A = 0x823 - SYS___RES_MKQUERY_A = 0x824 - SYS___RES_SEND_A = 0x825 - SYS___DN_EXPAND_A = 0x826 - SYS___DN_SKIPNAME_A = 0x827 - SYS___DN_COMP_A = 0x828 - SYS___DN_FIND_A = 0x829 - SYS___INET_NTOA_A = 0x830 - SYS___INET_NETWORK_A = 0x831 - SYS___ACCEPT_A = 0x832 - SYS___ACCEPT_AND_RECV_A = 0x833 - SYS___BIND_A = 0x834 - SYS___CONNECT_A = 0x835 - SYS___GETPEERNAME_A = 0x836 - SYS___GETSOCKNAME_A = 0x837 - SYS___RECVFROM_A = 0x838 - SYS___SENDTO_A = 0x839 - SYS___LCHATTR = 0x840 - SYS___WRITEDOWN = 0x841 - SYS_PTHREAD_MUTEX_INIT2 = 0x842 - SYS___ACOSHF_B = 0x843 - SYS___ACOSHL_B = 0x844 - SYS___ASINHF_B = 0x845 - SYS___ASINHL_B = 0x846 - SYS___ATANHF_B = 0x847 - SYS___ATANHL_B = 0x848 - SYS___CBRTF_B = 0x849 - SYS___EXP2F_B = 0x850 - SYS___EXP2L_B = 0x851 - SYS___EXPM1F_B = 0x852 - SYS___EXPM1L_B = 0x853 - SYS___FDIMF_B = 0x854 - SYS___FDIM_B = 0x855 - SYS___FDIML_B = 0x856 - SYS___HYPOTF_B = 0x857 - SYS___HYPOTL_B = 0x858 - SYS___LOG1PF_B = 0x859 - SYS___REMQUOF_B = 0x860 - SYS___REMQUO_B = 0x861 - SYS___REMQUOL_B = 0x862 - SYS___TGAMMAF_B = 0x863 - SYS___TGAMMA_B = 0x864 - SYS___TGAMMAL_B = 0x865 - SYS___TRUNCF_B = 0x866 - SYS___TRUNC_B = 0x867 - SYS___TRUNCL_B = 0x868 - SYS___LGAMMAF_B = 0x869 - SYS_ASINHF = 0x870 - SYS_ASINHL = 0x871 - SYS_ATANHF = 0x872 - SYS_ATANHL = 0x873 - SYS_CBRTF = 0x874 - SYS_CBRTL = 0x875 - SYS_COPYSIGNF = 0x876 - SYS_CPYSIGNF = 0x876 - SYS_COPYSIGNL = 0x877 - SYS_CPYSIGNL = 0x877 - SYS_COTANF = 0x878 - SYS___COTANF = 0x878 - SYS_COTAN = 0x879 - SYS___COTAN = 0x879 - SYS_FDIM = 0x881 - SYS_FDIML = 0x882 - SYS_HYPOTF = 0x883 - SYS_HYPOTL = 0x884 - SYS_LOG1PF = 0x885 - SYS_LOG1PL = 0x886 - SYS_LOG2F = 0x887 - SYS_LOG2 = 0x888 - SYS_LOG2L = 0x889 - SYS_TGAMMA = 0x890 - SYS_TGAMMAL = 0x891 - SYS_TRUNCF = 0x892 - SYS_TRUNC = 0x893 - SYS_TRUNCL = 0x894 - SYS_LGAMMAF = 0x895 - SYS_LGAMMAL = 0x896 - SYS_LROUNDF = 0x897 - SYS_LROUND = 0x898 - SYS_ERFF = 0x899 - SYS___COSHF_H = 0x900 - SYS___COSHL_H = 0x901 - SYS___COTAN_H = 0x902 - SYS___COTANF_H = 0x903 - SYS___COTANL_H = 0x904 - SYS___ERF_H = 0x905 - SYS___ERFF_H = 0x906 - SYS___ERFL_H = 0x907 - SYS___ERFC_H = 0x908 - SYS___ERFCF_H = 0x909 - SYS___FDIMF_H = 0x910 - SYS___FDIML_H = 0x911 - SYS___FMOD_H = 0x912 - SYS___FMODF_H = 0x913 - SYS___FMODL_H = 0x914 - SYS___GAMMA_H = 0x915 - SYS___HYPOT_H = 0x916 - SYS___ILOGB_H = 0x917 - SYS___LGAMMA_H = 0x918 - SYS___LGAMMAF_H = 0x919 - SYS___LOG2L_H = 0x920 - SYS___LOG1P_H = 0x921 - SYS___LOG10_H = 0x922 - SYS___LOG10F_H = 0x923 - SYS___LOG10L_H = 0x924 - SYS___LROUND_H = 0x925 - SYS___LROUNDF_H = 0x926 - SYS___NEXTAFTER_H = 0x927 - SYS___POW_H = 0x928 - SYS___POWF_H = 0x929 - SYS___SINL_H = 0x930 - SYS___SINH_H = 0x931 - SYS___SINHF_H = 0x932 - SYS___SINHL_H = 0x933 - SYS___SQRT_H = 0x934 - SYS___SQRTF_H = 0x935 - SYS___SQRTL_H = 0x936 - SYS___TAN_H = 0x937 - SYS___TANF_H = 0x938 - SYS___TANL_H = 0x939 - SYS___TRUNCF_H = 0x940 - SYS___TRUNCL_H = 0x941 - SYS___COSH_H = 0x942 - SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 - SYS_VFSCANF = 0x944 - SYS_VSCANF = 0x946 - SYS_VSSCANF = 0x948 - SYS_IMAXABS = 0x950 - SYS_IMAXDIV = 0x951 - SYS_STRTOIMAX = 0x952 - SYS_STRTOUMAX = 0x953 - SYS_WCSTOIMAX = 0x954 - SYS_WCSTOUMAX = 0x955 - SYS_ATOLL = 0x956 - SYS_STRTOF = 0x957 - SYS_STRTOLD = 0x958 - SYS_WCSTOF = 0x959 - SYS_INET6_RTH_GETADDR = 0x960 - SYS_INET6_OPT_INIT = 0x961 - SYS_INET6_OPT_APPEND = 0x962 - SYS_INET6_OPT_FINISH = 0x963 - SYS_INET6_OPT_SET_VAL = 0x964 - SYS_INET6_OPT_NEXT = 0x965 - SYS_INET6_OPT_FIND = 0x966 - SYS_INET6_OPT_GET_VAL = 0x967 - SYS___POW_I = 0x987 - SYS___POW_I_B = 0x988 - SYS___POW_I_H = 0x989 - SYS___CABS_H = 0x990 - SYS_CABSF = 0x991 - SYS___CABSF_B = 0x992 - SYS___CABSF_H = 0x993 - SYS_CABSL = 0x994 - SYS___CABSL_B = 0x995 - SYS___CABSL_H = 0x996 - SYS_CACOS = 0x997 - SYS___CACOS_B = 0x998 - SYS___CACOS_H = 0x999 -) diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go deleted file mode 100644 index 7a8161c1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +++ /dev/null @@ -1,354 +0,0 @@ -// cgo -godefs types_aix.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && aix -// +build ppc,aix - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x3ff -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type off64 int64 -type off int32 -type Mode_t uint32 - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Timex struct{} - -type Time_t int32 - -type Tms struct{} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Timezone struct { - Minuteswest int32 - Dsttime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type Pid_t int32 - -type _Gid_t uint32 - -type dev_t uint32 - -type Stat_t struct { - Dev uint32 - Ino uint32 - Mode uint32 - Nlink int16 - Flag uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Size int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Blocks int32 - Vfstype int32 - Vfs uint32 - Type uint32 - Gen uint32 - Reserved [9]uint32 -} - -type StatxTimestamp struct{} - -type Statx_t struct{} - -type Dirent struct { - Offset uint32 - Ino uint32 - Reclen uint16 - Namlen uint16 - Name [256]uint8 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [1023]uint8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [120]uint8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [1012]uint8 -} - -type _Socklen uint32 - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofSockaddrDatalink = 0x80 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 -) - -const ( - SizeofIfMsghdr = 0x10 -) - -type IfMsgHdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Addrlen uint8 - _ [1]byte -} - -type FdSet struct { - Bits [2048]int32 -} - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -type Ustat_t struct{} - -type Sigset_t struct { - Losigs uint32 - Hisigs uint32 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x1 - AT_SYMLINK_NOFOLLOW = 0x1 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [16]uint8 -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line uint8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = 0x4000 - POLLHUP = 0x2000 - POLLIN = 0x1 - POLLNVAL = 0x8000 - POLLOUT = 0x2 - POLLPRI = 0x4 - POLLRDBAND = 0x20 - POLLRDNORM = 0x10 - POLLWRBAND = 0x40 - POLLWRNORM = 0x2 -) - -type Flock_t struct { - Type int16 - Whence int16 - Sysid uint32 - Pid int32 - Vfs int32 - Start int64 - Len int64 -} - -type Fsid_t struct { - Val [2]uint32 -} -type Fsid64_t struct { - Val [2]uint64 -} - -type Statfs_t struct { - Version int32 - Type int32 - Bsize uint32 - Blocks uint32 - Bfree uint32 - Bavail uint32 - Files uint32 - Ffree uint32 - Fsid Fsid_t - Vfstype int32 - Fsize uint32 - Vfsnumber int32 - Vfsoff int32 - Vfslen int32 - Vfsvers int32 - Fname [32]uint8 - Fpack [32]uint8 - Name_max int32 -} - -const RNDGETENTCNT = 0x80045200 diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go deleted file mode 100644 index 07ed733c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +++ /dev/null @@ -1,358 +0,0 @@ -// cgo -godefs types_aix.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && aix -// +build ppc64,aix - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x3ff -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type off64 int64 -type off int64 -type Mode_t uint32 - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Timex struct{} - -type Time_t int64 - -type Tms struct{} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Timezone struct { - Minuteswest int32 - Dsttime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type Pid_t int32 - -type _Gid_t uint32 - -type dev_t uint64 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink int16 - Flag uint16 - Uid uint32 - Gid uint32 - Rdev uint64 - Ssize int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - Vfstype int32 - Vfs uint32 - Type uint32 - Gen uint32 - Reserved [9]uint32 - Padto_ll uint32 - Size int64 -} - -type StatxTimestamp struct{} - -type Statx_t struct{} - -type Dirent struct { - Offset uint64 - Ino uint64 - Reclen uint16 - Namlen uint16 - Name [256]uint8 - _ [4]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [1023]uint8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [120]uint8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [1012]uint8 -} - -type _Socklen uint32 - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofSockaddrDatalink = 0x80 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 -) - -const ( - SizeofIfMsghdr = 0x10 -) - -type IfMsgHdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Addrlen uint8 - _ [1]byte -} - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -type Ustat_t struct{} - -type Sigset_t struct { - Set [4]uint64 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x1 - AT_SYMLINK_NOFOLLOW = 0x1 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [16]uint8 -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line uint8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = 0x4000 - POLLHUP = 0x2000 - POLLIN = 0x1 - POLLNVAL = 0x8000 - POLLOUT = 0x2 - POLLPRI = 0x4 - POLLRDBAND = 0x20 - POLLRDNORM = 0x10 - POLLWRBAND = 0x40 - POLLWRNORM = 0x2 -) - -type Flock_t struct { - Type int16 - Whence int16 - Sysid uint32 - Pid int32 - Vfs int32 - Start int64 - Len int64 -} - -type Fsid_t struct { - Val [2]uint32 -} -type Fsid64_t struct { - Val [2]uint64 -} - -type Statfs_t struct { - Version int32 - Type int32 - Bsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid64_t - Vfstype int32 - Fsize uint64 - Vfsnumber int32 - Vfsoff int32 - Vfslen int32 - Vfsvers int32 - Fname [32]uint8 - Fpack [32]uint8 - Name_max int32 - _ [4]byte -} - -const RNDGETENTCNT = 0x80045200 diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go deleted file mode 100644 index 690cefc3..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ /dev/null @@ -1,806 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin -// +build amd64,darwin - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]byte - Mntonname [1024]byte - Mntfromname [1024]byte - Flags_ext uint32 - Reserved [7]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - _ [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - _ [16]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type Attrlist struct { - Bitmapcount uint16 - Reserved uint16 - Commonattr uint32 - Volattr uint32 - Dirattr uint32 - Fileattr uint32 - Forkattr uint32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type RawSockaddrCtl struct { - Sc_len uint8 - Sc_family uint8 - Ss_sysaddr uint16 - Sc_id uint32 - Sc_unit uint32 - Sc_reserved [5]uint32 -} - -type RawSockaddrVM struct { - Len uint8 - Family uint8 - Reserved1 uint16 - Port uint32 - Cid uint32 -} - -type XVSockPCB struct { - Xv_len uint32 - Xv_vsockpp uint64 - Xvp_local_cid uint32 - Xvp_local_port uint32 - Xvp_remote_cid uint32 - Xvp_remote_port uint32 - Xvp_rxcnt uint32 - Xvp_txcnt uint32 - Xvp_peer_rxhiwat uint32 - Xvp_peer_rxcnt uint32 - Xvp_last_pid int32 - Xvp_gencnt uint64 - Xv_socket XSocket - _ [4]byte -} - -type XSocket struct { - Xso_len uint32 - Xso_so uint32 - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - So_pcb uint32 - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSocket64 struct { - Xso_len uint32 - _ [8]byte - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - _ [8]byte - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSockbuf struct { - Cc uint32 - Hiwat uint32 - Mbcnt uint32 - Mbmax uint32 - Lowat int32 - Flags int16 - Timeo int16 -} - -type XVSockPgen struct { - Len uint32 - Count uint64 - Gen uint64 - Sogen uint64 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type TCPConnectionInfo struct { - State uint8 - Snd_wscale uint8 - Rcv_wscale uint8 - _ uint8 - Options uint32 - Flags uint32 - Rto uint32 - Maxseg uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Snd_wnd uint32 - Snd_sbbytes uint32 - Rcv_wnd uint32 - Rttcur uint32 - Srtt uint32 - Rttvar uint32 - Txpackets uint64 - Txbytes uint64 - Txretransmitbytes uint64 - Rxpackets uint64 - Rxbytes uint64 - Rxoutoforderbytes uint64 - Txretransmitpackets uint64 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofSockaddrCtl = 0x20 - SizeofSockaddrVM = 0xc - SizeofXvsockpcb = 0xa8 - SizeofXSocket = 0x64 - SizeofXSockbuf = 0x18 - SizeofXVSockPgen = 0x20 - SizeofXucred = 0x4c - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofTCPConnectionInfo = 0x70 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - State uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 - AT_EACCESS = 0x10 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} - -type CtlInfo struct { - Id uint32 - Name [96]byte -} - -const SizeofKinfoProc = 0x288 - -type Eproc struct { - Paddr uintptr - Sess uintptr - Pcred Pcred - Ucred Ucred - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Tdev int32 - Tpgid int32 - Tsess uintptr - Wmesg [8]byte - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Flag int32 - Login [12]byte - Spare [4]int32 - _ [4]byte -} - -type ExternProc struct { - P_starttime Timeval - P_vmspace *Vmspace - P_sigacts uintptr - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - User_stack *int8 - Exit_thread *byte - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - P_wchan *byte - P_wmesg *int8 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - P_tracep uintptr - P_siglist int32 - P_textvp uintptr - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]byte - P_pgrp uintptr - P_addr uintptr - P_xstat uint16 - P_acflag uint16 - P_ru *Rusage -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Vmspace struct { - Dummy int32 - Dummy2 *int8 - Dummy3 [5]int32 - Dummy4 [3]*int8 -} - -type Pcred struct { - Pc_lock [72]int8 - Pc_ucred uintptr - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - _ [4]byte -} - -type Ucred struct { - Ref int32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ uint16 - _ int32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Lpid int32 - Cpid int32 - Nattch uint16 - _ [34]byte -} - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go deleted file mode 100644 index 5bffc10e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ /dev/null @@ -1,806 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin -// +build arm64,darwin - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]byte - Mntonname [1024]byte - Mntfromname [1024]byte - Flags_ext uint32 - Reserved [7]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - _ [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - _ [16]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type Attrlist struct { - Bitmapcount uint16 - Reserved uint16 - Commonattr uint32 - Volattr uint32 - Dirattr uint32 - Fileattr uint32 - Forkattr uint32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type RawSockaddrCtl struct { - Sc_len uint8 - Sc_family uint8 - Ss_sysaddr uint16 - Sc_id uint32 - Sc_unit uint32 - Sc_reserved [5]uint32 -} - -type RawSockaddrVM struct { - Len uint8 - Family uint8 - Reserved1 uint16 - Port uint32 - Cid uint32 -} - -type XVSockPCB struct { - Xv_len uint32 - Xv_vsockpp uint64 - Xvp_local_cid uint32 - Xvp_local_port uint32 - Xvp_remote_cid uint32 - Xvp_remote_port uint32 - Xvp_rxcnt uint32 - Xvp_txcnt uint32 - Xvp_peer_rxhiwat uint32 - Xvp_peer_rxcnt uint32 - Xvp_last_pid int32 - Xvp_gencnt uint64 - Xv_socket XSocket - _ [4]byte -} - -type XSocket struct { - Xso_len uint32 - Xso_so uint32 - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - So_pcb uint32 - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSocket64 struct { - Xso_len uint32 - _ [8]byte - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - _ [8]byte - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSockbuf struct { - Cc uint32 - Hiwat uint32 - Mbcnt uint32 - Mbmax uint32 - Lowat int32 - Flags int16 - Timeo int16 -} - -type XVSockPgen struct { - Len uint32 - Count uint64 - Gen uint64 - Sogen uint64 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type TCPConnectionInfo struct { - State uint8 - Snd_wscale uint8 - Rcv_wscale uint8 - _ uint8 - Options uint32 - Flags uint32 - Rto uint32 - Maxseg uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Snd_wnd uint32 - Snd_sbbytes uint32 - Rcv_wnd uint32 - Rttcur uint32 - Srtt uint32 - Rttvar uint32 - Txpackets uint64 - Txbytes uint64 - Txretransmitbytes uint64 - Rxpackets uint64 - Rxbytes uint64 - Rxoutoforderbytes uint64 - Txretransmitpackets uint64 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofSockaddrCtl = 0x20 - SizeofSockaddrVM = 0xc - SizeofXvsockpcb = 0xa8 - SizeofXSocket = 0x64 - SizeofXSockbuf = 0x18 - SizeofXVSockPgen = 0x20 - SizeofXucred = 0x4c - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofTCPConnectionInfo = 0x70 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - State uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 - AT_EACCESS = 0x10 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} - -type CtlInfo struct { - Id uint32 - Name [96]byte -} - -const SizeofKinfoProc = 0x288 - -type Eproc struct { - Paddr uintptr - Sess uintptr - Pcred Pcred - Ucred Ucred - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Tdev int32 - Tpgid int32 - Tsess uintptr - Wmesg [8]byte - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Flag int32 - Login [12]byte - Spare [4]int32 - _ [4]byte -} - -type ExternProc struct { - P_starttime Timeval - P_vmspace *Vmspace - P_sigacts uintptr - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - User_stack *int8 - Exit_thread *byte - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - P_wchan *byte - P_wmesg *int8 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - P_tracep uintptr - P_siglist int32 - P_textvp uintptr - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]byte - P_pgrp uintptr - P_addr uintptr - P_xstat uint16 - P_acflag uint16 - P_ru *Rusage -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Vmspace struct { - Dummy int32 - Dummy2 *int8 - Dummy3 [5]int32 - Dummy4 [3]*int8 -} - -type Pcred struct { - Pc_lock [72]int8 - Pc_ucred uintptr - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - _ [4]byte -} - -type Ucred struct { - Ref int32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ uint16 - _ int32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Lpid int32 - Cpid int32 - Nattch uint16 - _ [34]byte -} - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go deleted file mode 100644 index d0ba8e9b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ /dev/null @@ -1,474 +0,0 @@ -// cgo -godefs types_dragonfly.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly -// +build amd64,dragonfly - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Ino uint64 - Nlink uint32 - Dev uint32 - Mode uint16 - _1 uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - _ uint32 - Flags uint32 - Gen uint32 - Lspare int32 - Blksize int64 - Qspare2 int64 -} - -type Statfs_t struct { - Spare2 int64 - Bsize int64 - Iosize int64 - Blocks int64 - Bfree int64 - Bavail int64 - Files int64 - Ffree int64 - Fsid Fsid - Owner uint32 - Type int32 - Flags int32 - Syncwrites int64 - Asyncwrites int64 - Fstypename [16]byte - Mntonname [80]byte - Syncreads int64 - Asyncreads int64 - Spares1 int16 - Mntfromname [80]byte - Spares2 int16 - Spare [2]int64 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Namlen uint16 - Type uint8 - Unused1 uint8 - Unused2 uint32 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - Rcf uint16 - Route [16]uint16 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - SizeofIfMsghdr = 0xb0 - SizeofIfData = 0xa0 - SizeofIfaMsghdr = 0x18 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Data IfData -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Mtu uint64 - Metric uint64 - Link_state uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Oqdrops uint64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Addrflags int32 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Pksent uint64 - Expire uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Recvpipe uint64 - Hopcount uint64 - Mssopt uint16 - Pad uint16 - Msl uint64 - Iwmaxsegs uint64 - Iwcapsegs uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = 0xfffafdcd - AT_SYMLINK_NOFOLLOW = 0x1 - AT_REMOVEDIR = 0x2 - AT_EACCESS = 0x4 - AT_SYMLINK_FOLLOW = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go deleted file mode 100644 index 29dc4833..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ /dev/null @@ -1,651 +0,0 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd -// +build 386,freebsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Time_t int32 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - _ int32 - Atim Timespec - _ int32 - Mtim Timespec - _ int32 - Ctim Timespec - _ int32 - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofXucred = 0x50 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [4]byte - _ [32]byte -} -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [4]byte - _ [32]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - Fs uint32 - Es uint32 - Ds uint32 - Edi uint32 - Esi uint32 - Ebp uint32 - Isp uint32 - Ebx uint32 - Edx uint32 - Ecx uint32 - Eax uint32 - Trapno uint32 - Err uint32 - Eip uint32 - Cs uint32 - Eflags uint32 - Esp uint32 - Ss uint32 - Gs uint32 -} - -type FpReg struct { - Env [7]uint32 - Acc [8][10]uint8 - Ex_sw uint32 - Pad [64]uint8 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint32 -} - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x60 - sizeofIfData = 0x98 - SizeofIfData = 0x50 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - Epoch int32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go deleted file mode 100644 index 0a89b289..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ /dev/null @@ -1,656 +0,0 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd -// +build amd64,freebsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Time_t int64 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - _ [40]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - R15 int64 - R14 int64 - R13 int64 - R12 int64 - R11 int64 - R10 int64 - R9 int64 - R8 int64 - Rdi int64 - Rsi int64 - Rbp int64 - Rbx int64 - Rdx int64 - Rcx int64 - Rax int64 - Trapno uint32 - Fs uint16 - Gs uint16 - Err uint32 - Es uint16 - Ds uint16 - Rip int64 - Cs int64 - Rflags int64 - Rsp int64 - Ss int64 -} - -type FpReg struct { - Env [4]uint64 - Acc [8][16]uint8 - Xacc [16][16]uint8 - Spare [12]uint64 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go deleted file mode 100644 index c8666bb1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ /dev/null @@ -1,642 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd -// +build arm,freebsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Time_t int64 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofXucred = 0x50 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [4]byte - _ [32]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [4]byte - _ [32]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - R [13]uint32 - Sp uint32 - Lr uint32 - Pc uint32 - Cpsr uint32 -} - -type FpReg struct { - Fpsr uint32 - Fpr [8]FpExtendedPrecision -} - -type FpExtendedPrecision struct { - Exponent uint32 - Mantissa_hi uint32 - Mantissa_lo uint32 -} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint32 -} - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - _ [4]byte - Data int64 - Udata *byte - _ [4]byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x70 - sizeofIfData = 0x98 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - _ [4]byte - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go deleted file mode 100644 index 88fb48a8..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ /dev/null @@ -1,636 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd -// +build arm64,freebsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Time_t int64 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - _ [40]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - X [30]uint64 - Lr uint64 - Sp uint64 - Elr uint64 - Spsr uint32 - _ [4]byte -} - -type FpReg struct { - Q [32][16]uint8 - Sr uint32 - Cr uint32 - _ [8]byte -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go deleted file mode 100644 index 698dc975..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +++ /dev/null @@ -1,638 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd -// +build riscv64,freebsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Time_t int64 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - _ [40]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - Ra uint64 - Sp uint64 - Gp uint64 - Tp uint64 - T [7]uint64 - S [12]uint64 - A [8]uint64 - Sepc uint64 - Sstatus uint64 -} - -type FpReg struct { - X [32][2]uint64 - Fcsr uint64 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Nhidx uint64 - Filler [2]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux.go deleted file mode 100644 index 00c3b8c2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ /dev/null @@ -1,5858 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux -// +build linux - -package unix - -const ( - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - - _C_long_long int64 -) - -type ItimerSpec struct { - Interval Timespec - Value Timespec -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -const ( - ADJ_OFFSET = 0x1 - ADJ_FREQUENCY = 0x2 - ADJ_MAXERROR = 0x4 - ADJ_ESTERROR = 0x8 - ADJ_STATUS = 0x10 - ADJ_TIMECONST = 0x20 - ADJ_TAI = 0x80 - ADJ_SETOFFSET = 0x100 - ADJ_MICRO = 0x1000 - ADJ_NANO = 0x2000 - ADJ_TICK = 0x4000 - ADJ_OFFSET_SINGLESHOT = 0x8001 - ADJ_OFFSET_SS_READ = 0xa001 -) - -const ( - STA_PLL = 0x1 - STA_PPSFREQ = 0x2 - STA_PPSTIME = 0x4 - STA_FLL = 0x8 - STA_INS = 0x10 - STA_DEL = 0x20 - STA_UNSYNC = 0x40 - STA_FREQHOLD = 0x80 - STA_PPSSIGNAL = 0x100 - STA_PPSJITTER = 0x200 - STA_PPSWANDER = 0x400 - STA_PPSERROR = 0x800 - STA_CLOCKERR = 0x1000 - STA_NANO = 0x2000 - STA_MODE = 0x4000 - STA_CLK = 0x8000 -) - -const ( - TIME_OK = 0x0 - TIME_INS = 0x1 - TIME_DEL = 0x2 - TIME_OOP = 0x3 - TIME_WAIT = 0x4 - TIME_ERROR = 0x5 - TIME_BAD = 0x5 -) - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - Mnt_id uint64 - Dio_mem_align uint32 - Dio_offset_align uint32 - _ [12]uint64 -} - -type Fsid struct { - Val [2]int32 -} - -type FileCloneRange struct { - Src_fd int64 - Src_offset uint64 - Src_length uint64 - Dest_offset uint64 -} - -type RawFileDedupeRange struct { - Src_offset uint64 - Src_length uint64 - Dest_count uint16 - Reserved1 uint16 - Reserved2 uint32 -} - -type RawFileDedupeRangeInfo struct { - Dest_fd int64 - Dest_offset uint64 - Bytes_deduped uint64 - Status int32 - Reserved uint32 -} - -const ( - SizeofRawFileDedupeRange = 0x18 - SizeofRawFileDedupeRangeInfo = 0x20 - FILE_DEDUPE_RANGE_SAME = 0x0 - FILE_DEDUPE_RANGE_DIFFERS = 0x1 -) - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type FscryptPolicyV1 struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptPolicyV2 struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - _ [4]uint8 - Master_key_identifier [16]uint8 -} - -type FscryptGetPolicyExArg struct { - Size uint64 - Policy [24]byte -} - -type FscryptKeySpecifier struct { - Type uint32 - _ uint32 - U [32]byte -} - -type FscryptAddKeyArg struct { - Key_spec FscryptKeySpecifier - Raw_size uint32 - Key_id uint32 - _ [8]uint32 -} - -type FscryptRemoveKeyArg struct { - Key_spec FscryptKeySpecifier - Removal_status_flags uint32 - _ [5]uint32 -} - -type FscryptGetKeyStatusArg struct { - Key_spec FscryptKeySpecifier - _ [6]uint32 - Status uint32 - Status_flags uint32 - User_count uint32 - _ [13]uint32 -} - -type DmIoctl struct { - Version [3]uint32 - Data_size uint32 - Data_start uint32 - Target_count uint32 - Open_count int32 - Flags uint32 - Event_nr uint32 - _ uint32 - Dev uint64 - Name [128]byte - Uuid [129]byte - Data [7]byte -} - -type DmTargetSpec struct { - Sector_start uint64 - Length uint64 - Status int32 - Next uint32 - Target_type [16]byte -} - -type DmTargetDeps struct { - Count uint32 - _ uint32 -} - -type DmTargetVersions struct { - Next uint32 - Version [3]uint32 -} - -type DmTargetMsg struct { - Sector uint64 -} - -const ( - SizeofDmIoctl = 0x138 - SizeofDmTargetSpec = 0x28 -) - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [16]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Flags uint8 - Zero [3]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - -type RawSockaddrL2TPIP struct { - Family uint16 - Unused uint16 - Addr [4]byte /* in_addr */ - Conn_id uint32 - _ [4]uint8 -} - -type RawSockaddrL2TPIP6 struct { - Family uint16 - Unused uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - Conn_id uint32 -} - -type RawSockaddrIUCV struct { - Family uint16 - Port uint16 - Addr uint32 - Nodeid [8]int8 - User_id [8]int8 - Name [8]int8 -} - -type RawSockaddrNFC struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 - Pacing_rate uint64 - Max_pacing_rate uint64 - Bytes_acked uint64 - Bytes_received uint64 - Segs_out uint32 - Segs_in uint32 - Notsent_bytes uint32 - Min_rtt uint32 - Data_segs_in uint32 - Data_segs_out uint32 - Delivery_rate uint64 - Busy_time uint64 - Rwnd_limited uint64 - Sndbuf_limited uint64 - Delivered uint32 - Delivered_ce uint32 - Bytes_sent uint64 - Bytes_retrans uint64 - Dsack_dups uint32 - Reord_seen uint32 - Rcv_ooopack uint32 - Snd_wnd uint32 - Rcv_wnd uint32 - Rehash uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - -type TCPRepairOpt struct { - Code uint32 - Val uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x18 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofSockaddrL2TPIP = 0x10 - SizeofSockaddrL2TPIP6 = 0x20 - SizeofSockaddrIUCV = 0x20 - SizeofSockaddrNFC = 0x10 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0xf0 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 -) - -const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - ICMP_FILTER = 0x1 - - ICMPV6_FILTER = 0x1 - ICMPV6_FILTER_BLOCK = 0x1 - ICMPV6_FILTER_BLOCKOTHERS = 0x3 - ICMPV6_FILTER_PASS = 0x2 - ICMPV6_FILTER_PASSONLY = 0x4 -) - -const ( - SizeofSockFilter = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -const SI_LOAD_SHIFT = 0x10 - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_RECURSIVE = 0x8000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 - - OPEN_TREE_CLONE = 0x1 - - MOVE_MOUNT_F_SYMLINKS = 0x1 - MOVE_MOUNT_F_AUTOMOUNTS = 0x2 - MOVE_MOUNT_F_EMPTY_PATH = 0x4 - MOVE_MOUNT_T_SYMLINKS = 0x10 - MOVE_MOUNT_T_AUTOMOUNTS = 0x20 - MOVE_MOUNT_T_EMPTY_PATH = 0x40 - MOVE_MOUNT_SET_GROUP = 0x100 - - FSOPEN_CLOEXEC = 0x1 - - FSPICK_CLOEXEC = 0x1 - FSPICK_SYMLINK_NOFOLLOW = 0x2 - FSPICK_NO_AUTOMOUNT = 0x4 - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 -) - -type OpenHow struct { - Flags uint64 - Mode uint64 - Resolve uint64 -} - -const SizeofOpenHow = 0x18 - -const ( - RESOLVE_BENEATH = 0x8 - RESOLVE_IN_ROOT = 0x10 - RESOLVE_NO_MAGICLINKS = 0x2 - RESOLVE_NO_SYMLINKS = 0x4 - RESOLVE_NO_XDEV = 0x1 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_CMD_GETPOLICY = 0xa - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_POLICY = 0x8 - CTRL_ATTR_OP_POLICY = 0x9 - CTRL_ATTR_OP = 0xa - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 - CTRL_ATTR_POLICY_UNSPEC = 0x0 - CTRL_ATTR_POLICY_DO = 0x1 - CTRL_ATTR_POLICY_DUMP = 0x2 - CTRL_ATTR_POLICY_DUMP_MAX = 0x2 -) - -const ( - _CPU_SETSIZE = 0x400 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 - Aux_sample_size uint32 - _ uint32 - Sig_data uint64 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ uint32 - Time_cycles uint64 - Time_mask uint64 - _ [928]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 - PerfBitWriteBackward = CBitFieldMaskBit27 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - PERF_TYPE_MAX = 0x6 - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - PERF_COUNT_HW_MAX = 0xa - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - PERF_COUNT_HW_CACHE_MAX = 0x7 - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - PERF_COUNT_HW_CACHE_OP_MAX = 0x3 - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - PERF_COUNT_HW_CACHE_RESULT_MAX = 0x2 - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - PERF_COUNT_SW_MAX = 0xc - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - PERF_SAMPLE_REGS_USER = 0x1000 - PERF_SAMPLE_STACK_USER = 0x2000 - PERF_SAMPLE_WEIGHT = 0x4000 - PERF_SAMPLE_DATA_SRC = 0x8000 - PERF_SAMPLE_IDENTIFIER = 0x10000 - PERF_SAMPLE_TRANSACTION = 0x20000 - PERF_SAMPLE_REGS_INTR = 0x40000 - PERF_SAMPLE_PHYS_ADDR = 0x80000 - PERF_SAMPLE_AUX = 0x100000 - PERF_SAMPLE_CGROUP = 0x200000 - PERF_SAMPLE_DATA_PAGE_SIZE = 0x400000 - PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000 - PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000 - PERF_SAMPLE_MAX = 0x2000000 - PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0 - PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1 - PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2 - PERF_SAMPLE_BRANCH_ANY_SHIFT = 0x3 - PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 0x4 - PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 0x5 - PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 0x6 - PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 0x7 - PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 0x8 - PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 0x9 - PERF_SAMPLE_BRANCH_COND_SHIFT = 0xa - PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 0xb - PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 0xc - PERF_SAMPLE_BRANCH_CALL_SHIFT = 0xd - PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 0xe - PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf - PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 - PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 - PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 - PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x13 - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 - PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 - PERF_SAMPLE_BRANCH_MAX = 0x80000 - PERF_BR_UNKNOWN = 0x0 - PERF_BR_COND = 0x1 - PERF_BR_UNCOND = 0x2 - PERF_BR_IND = 0x3 - PERF_BR_CALL = 0x4 - PERF_BR_IND_CALL = 0x5 - PERF_BR_RET = 0x6 - PERF_BR_SYSCALL = 0x7 - PERF_BR_SYSRET = 0x8 - PERF_BR_COND_CALL = 0x9 - PERF_BR_COND_RET = 0xa - PERF_BR_ERET = 0xb - PERF_BR_IRQ = 0xc - PERF_BR_SERROR = 0xd - PERF_BR_NO_TX = 0xe - PERF_BR_EXTEND_ABI = 0xf - PERF_BR_MAX = 0x10 - PERF_SAMPLE_REGS_ABI_NONE = 0x0 - PERF_SAMPLE_REGS_ABI_32 = 0x1 - PERF_SAMPLE_REGS_ABI_64 = 0x2 - PERF_TXN_ELISION = 0x1 - PERF_TXN_TRANSACTION = 0x2 - PERF_TXN_SYNC = 0x4 - PERF_TXN_ASYNC = 0x8 - PERF_TXN_RETRY = 0x10 - PERF_TXN_CONFLICT = 0x20 - PERF_TXN_CAPACITY_WRITE = 0x40 - PERF_TXN_CAPACITY_READ = 0x80 - PERF_TXN_MAX = 0x100 - PERF_TXN_ABORT_MASK = -0x100000000 - PERF_TXN_ABORT_SHIFT = 0x20 - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - PERF_FORMAT_LOST = 0x10 - PERF_FORMAT_MAX = 0x20 - PERF_IOC_FLAG_GROUP = 0x1 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - PERF_RECORD_KSYMBOL = 0x11 - PERF_RECORD_BPF_EVENT = 0x12 - PERF_RECORD_CGROUP = 0x13 - PERF_RECORD_TEXT_POKE = 0x14 - PERF_RECORD_AUX_OUTPUT_HW_ID = 0x15 - PERF_RECORD_MAX = 0x16 - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0x0 - PERF_RECORD_KSYMBOL_TYPE_BPF = 0x1 - PERF_RECORD_KSYMBOL_TYPE_OOL = 0x2 - PERF_RECORD_KSYMBOL_TYPE_MAX = 0x3 - PERF_BPF_EVENT_UNKNOWN = 0x0 - PERF_BPF_EVENT_PROG_LOAD = 0x1 - PERF_BPF_EVENT_PROG_UNLOAD = 0x2 - PERF_BPF_EVENT_MAX = 0x3 - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - PERF_CONTEXT_MAX = -0xfff -) - -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - Ifindex int32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_PROP_LIST = 0x34 - IFLA_ALT_IFNAME = 0x35 - IFLA_PERM_ADDRESS = 0x36 - IFLA_PROTO_DOWN_REASON = 0x37 - IFLA_PARENT_DEV_NAME = 0x38 - IFLA_PARENT_DEV_BUS_NAME = 0x39 - IFLA_GRO_MAX_SIZE = 0x3a - IFLA_TSO_MAX_SIZE = 0x3b - IFLA_TSO_MAX_SEGS = 0x3c - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 - IFLA_PROTO_DOWN_REASON_MAX = 0x2 - IFLA_INET_UNSPEC = 0x0 - IFLA_INET_CONF = 0x1 - IFLA_INET6_UNSPEC = 0x0 - IFLA_INET6_FLAGS = 0x1 - IFLA_INET6_CONF = 0x2 - IFLA_INET6_STATS = 0x3 - IFLA_INET6_MCAST = 0x4 - IFLA_INET6_CACHEINFO = 0x5 - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 - IFLA_BR_MAX_AGE = 0x3 - IFLA_BR_AGEING_TIME = 0x4 - IFLA_BR_STP_STATE = 0x5 - IFLA_BR_PRIORITY = 0x6 - IFLA_BR_VLAN_FILTERING = 0x7 - IFLA_BR_VLAN_PROTOCOL = 0x8 - IFLA_BR_GROUP_FWD_MASK = 0x9 - IFLA_BR_ROOT_ID = 0xa - IFLA_BR_BRIDGE_ID = 0xb - IFLA_BR_ROOT_PORT = 0xc - IFLA_BR_ROOT_PATH_COST = 0xd - IFLA_BR_TOPOLOGY_CHANGE = 0xe - IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 0xf - IFLA_BR_HELLO_TIMER = 0x10 - IFLA_BR_TCN_TIMER = 0x11 - IFLA_BR_TOPOLOGY_CHANGE_TIMER = 0x12 - IFLA_BR_GC_TIMER = 0x13 - IFLA_BR_GROUP_ADDR = 0x14 - IFLA_BR_FDB_FLUSH = 0x15 - IFLA_BR_MCAST_ROUTER = 0x16 - IFLA_BR_MCAST_SNOOPING = 0x17 - IFLA_BR_MCAST_QUERY_USE_IFADDR = 0x18 - IFLA_BR_MCAST_QUERIER = 0x19 - IFLA_BR_MCAST_HASH_ELASTICITY = 0x1a - IFLA_BR_MCAST_HASH_MAX = 0x1b - IFLA_BR_MCAST_LAST_MEMBER_CNT = 0x1c - IFLA_BR_MCAST_STARTUP_QUERY_CNT = 0x1d - IFLA_BR_MCAST_LAST_MEMBER_INTVL = 0x1e - IFLA_BR_MCAST_MEMBERSHIP_INTVL = 0x1f - IFLA_BR_MCAST_QUERIER_INTVL = 0x20 - IFLA_BR_MCAST_QUERY_INTVL = 0x21 - IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 0x22 - IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 0x23 - IFLA_BR_NF_CALL_IPTABLES = 0x24 - IFLA_BR_NF_CALL_IP6TABLES = 0x25 - IFLA_BR_NF_CALL_ARPTABLES = 0x26 - IFLA_BR_VLAN_DEFAULT_PVID = 0x27 - IFLA_BR_PAD = 0x28 - IFLA_BR_VLAN_STATS_ENABLED = 0x29 - IFLA_BR_MCAST_STATS_ENABLED = 0x2a - IFLA_BR_MCAST_IGMP_VERSION = 0x2b - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 - IFLA_BRPORT_COST = 0x3 - IFLA_BRPORT_MODE = 0x4 - IFLA_BRPORT_GUARD = 0x5 - IFLA_BRPORT_PROTECT = 0x6 - IFLA_BRPORT_FAST_LEAVE = 0x7 - IFLA_BRPORT_LEARNING = 0x8 - IFLA_BRPORT_UNICAST_FLOOD = 0x9 - IFLA_BRPORT_PROXYARP = 0xa - IFLA_BRPORT_LEARNING_SYNC = 0xb - IFLA_BRPORT_PROXYARP_WIFI = 0xc - IFLA_BRPORT_ROOT_ID = 0xd - IFLA_BRPORT_BRIDGE_ID = 0xe - IFLA_BRPORT_DESIGNATED_PORT = 0xf - IFLA_BRPORT_DESIGNATED_COST = 0x10 - IFLA_BRPORT_ID = 0x11 - IFLA_BRPORT_NO = 0x12 - IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 0x13 - IFLA_BRPORT_CONFIG_PENDING = 0x14 - IFLA_BRPORT_MESSAGE_AGE_TIMER = 0x15 - IFLA_BRPORT_FORWARD_DELAY_TIMER = 0x16 - IFLA_BRPORT_HOLD_TIMER = 0x17 - IFLA_BRPORT_FLUSH = 0x18 - IFLA_BRPORT_MULTICAST_ROUTER = 0x19 - IFLA_BRPORT_PAD = 0x1a - IFLA_BRPORT_MCAST_FLOOD = 0x1b - IFLA_BRPORT_MCAST_TO_UCAST = 0x1c - IFLA_BRPORT_VLAN_TUNNEL = 0x1d - IFLA_BRPORT_BCAST_FLOOD = 0x1e - IFLA_BRPORT_GROUP_FWD_MASK = 0x1f - IFLA_BRPORT_NEIGH_SUPPRESS = 0x20 - IFLA_BRPORT_ISOLATED = 0x21 - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - IFLA_VLAN_UNSPEC = 0x0 - IFLA_VLAN_ID = 0x1 - IFLA_VLAN_FLAGS = 0x2 - IFLA_VLAN_EGRESS_QOS = 0x3 - IFLA_VLAN_INGRESS_QOS = 0x4 - IFLA_VLAN_PROTOCOL = 0x5 - IFLA_VLAN_QOS_UNSPEC = 0x0 - IFLA_VLAN_QOS_MAPPING = 0x1 - IFLA_MACVLAN_UNSPEC = 0x0 - IFLA_MACVLAN_MODE = 0x1 - IFLA_MACVLAN_FLAGS = 0x2 - IFLA_MACVLAN_MACADDR_MODE = 0x3 - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 - IFLA_VRF_PORT_TABLE = 0x1 - IFLA_MACSEC_UNSPEC = 0x0 - IFLA_MACSEC_SCI = 0x1 - IFLA_MACSEC_PORT = 0x2 - IFLA_MACSEC_ICV_LEN = 0x3 - IFLA_MACSEC_CIPHER_SUITE = 0x4 - IFLA_MACSEC_WINDOW = 0x5 - IFLA_MACSEC_ENCODING_SA = 0x6 - IFLA_MACSEC_ENCRYPT = 0x7 - IFLA_MACSEC_PROTECT = 0x8 - IFLA_MACSEC_INC_SCI = 0x9 - IFLA_MACSEC_ES = 0xa - IFLA_MACSEC_SCB = 0xb - IFLA_MACSEC_REPLAY_PROTECT = 0xc - IFLA_MACSEC_VALIDATION = 0xd - IFLA_MACSEC_PAD = 0xe - IFLA_MACSEC_OFFLOAD = 0xf - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 - IFLA_VXLAN_LINK = 0x3 - IFLA_VXLAN_LOCAL = 0x4 - IFLA_VXLAN_TTL = 0x5 - IFLA_VXLAN_TOS = 0x6 - IFLA_VXLAN_LEARNING = 0x7 - IFLA_VXLAN_AGEING = 0x8 - IFLA_VXLAN_LIMIT = 0x9 - IFLA_VXLAN_PORT_RANGE = 0xa - IFLA_VXLAN_PROXY = 0xb - IFLA_VXLAN_RSC = 0xc - IFLA_VXLAN_L2MISS = 0xd - IFLA_VXLAN_L3MISS = 0xe - IFLA_VXLAN_PORT = 0xf - IFLA_VXLAN_GROUP6 = 0x10 - IFLA_VXLAN_LOCAL6 = 0x11 - IFLA_VXLAN_UDP_CSUM = 0x12 - IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 0x13 - IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 0x14 - IFLA_VXLAN_REMCSUM_TX = 0x15 - IFLA_VXLAN_REMCSUM_RX = 0x16 - IFLA_VXLAN_GBP = 0x17 - IFLA_VXLAN_REMCSUM_NOPARTIAL = 0x18 - IFLA_VXLAN_COLLECT_METADATA = 0x19 - IFLA_VXLAN_LABEL = 0x1a - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 - IFLA_GENEVE_TTL = 0x3 - IFLA_GENEVE_TOS = 0x4 - IFLA_GENEVE_PORT = 0x5 - IFLA_GENEVE_COLLECT_METADATA = 0x6 - IFLA_GENEVE_REMOTE6 = 0x7 - IFLA_GENEVE_UDP_CSUM = 0x8 - IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 0x9 - IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 0xa - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 - IFLA_BAREUDP_SRCPORT_MIN = 0x3 - IFLA_BAREUDP_MULTIPROTO_MODE = 0x4 - IFLA_PPP_UNSPEC = 0x0 - IFLA_PPP_DEV_FD = 0x1 - IFLA_GTP_UNSPEC = 0x0 - IFLA_GTP_FD0 = 0x1 - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 - IFLA_BOND_MIIMON = 0x3 - IFLA_BOND_UPDELAY = 0x4 - IFLA_BOND_DOWNDELAY = 0x5 - IFLA_BOND_USE_CARRIER = 0x6 - IFLA_BOND_ARP_INTERVAL = 0x7 - IFLA_BOND_ARP_IP_TARGET = 0x8 - IFLA_BOND_ARP_VALIDATE = 0x9 - IFLA_BOND_ARP_ALL_TARGETS = 0xa - IFLA_BOND_PRIMARY = 0xb - IFLA_BOND_PRIMARY_RESELECT = 0xc - IFLA_BOND_FAIL_OVER_MAC = 0xd - IFLA_BOND_XMIT_HASH_POLICY = 0xe - IFLA_BOND_RESEND_IGMP = 0xf - IFLA_BOND_NUM_PEER_NOTIF = 0x10 - IFLA_BOND_ALL_SLAVES_ACTIVE = 0x11 - IFLA_BOND_MIN_LINKS = 0x12 - IFLA_BOND_LP_INTERVAL = 0x13 - IFLA_BOND_PACKETS_PER_SLAVE = 0x14 - IFLA_BOND_AD_LACP_RATE = 0x15 - IFLA_BOND_AD_SELECT = 0x16 - IFLA_BOND_AD_INFO = 0x17 - IFLA_BOND_AD_ACTOR_SYS_PRIO = 0x18 - IFLA_BOND_AD_USER_PORT_KEY = 0x19 - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 - IFLA_BOND_AD_INFO_ACTOR_KEY = 0x3 - IFLA_BOND_AD_INFO_PARTNER_KEY = 0x4 - IFLA_BOND_AD_INFO_PARTNER_MAC = 0x5 - IFLA_BOND_SLAVE_UNSPEC = 0x0 - IFLA_BOND_SLAVE_STATE = 0x1 - IFLA_BOND_SLAVE_MII_STATUS = 0x2 - IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 0x3 - IFLA_BOND_SLAVE_PERM_HWADDR = 0x4 - IFLA_BOND_SLAVE_QUEUE_ID = 0x5 - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 - IFLA_VF_MAC = 0x1 - IFLA_VF_VLAN = 0x2 - IFLA_VF_TX_RATE = 0x3 - IFLA_VF_SPOOFCHK = 0x4 - IFLA_VF_LINK_STATE = 0x5 - IFLA_VF_RATE = 0x6 - IFLA_VF_RSS_QUERY_EN = 0x7 - IFLA_VF_STATS = 0x8 - IFLA_VF_TRUST = 0x9 - IFLA_VF_IB_NODE_GUID = 0xa - IFLA_VF_IB_PORT_GUID = 0xb - IFLA_VF_VLAN_LIST = 0xc - IFLA_VF_BROADCAST = 0xd - IFLA_VF_VLAN_INFO_UNSPEC = 0x0 - IFLA_VF_VLAN_INFO = 0x1 - IFLA_VF_LINK_STATE_AUTO = 0x0 - IFLA_VF_LINK_STATE_ENABLE = 0x1 - IFLA_VF_LINK_STATE_DISABLE = 0x2 - IFLA_VF_STATS_RX_PACKETS = 0x0 - IFLA_VF_STATS_TX_PACKETS = 0x1 - IFLA_VF_STATS_RX_BYTES = 0x2 - IFLA_VF_STATS_TX_BYTES = 0x3 - IFLA_VF_STATS_BROADCAST = 0x4 - IFLA_VF_STATS_MULTICAST = 0x5 - IFLA_VF_STATS_PAD = 0x6 - IFLA_VF_STATS_RX_DROPPED = 0x7 - IFLA_VF_STATS_TX_DROPPED = 0x8 - IFLA_VF_PORT_UNSPEC = 0x0 - IFLA_VF_PORT = 0x1 - IFLA_PORT_UNSPEC = 0x0 - IFLA_PORT_VF = 0x1 - IFLA_PORT_PROFILE = 0x2 - IFLA_PORT_VSI_TYPE = 0x3 - IFLA_PORT_INSTANCE_UUID = 0x4 - IFLA_PORT_HOST_UUID = 0x5 - IFLA_PORT_REQUEST = 0x6 - IFLA_PORT_RESPONSE = 0x7 - IFLA_IPOIB_UNSPEC = 0x0 - IFLA_IPOIB_PKEY = 0x1 - IFLA_IPOIB_MODE = 0x2 - IFLA_IPOIB_UMCAST = 0x3 - IFLA_HSR_UNSPEC = 0x0 - IFLA_HSR_SLAVE1 = 0x1 - IFLA_HSR_SLAVE2 = 0x2 - IFLA_HSR_MULTICAST_SPEC = 0x3 - IFLA_HSR_SUPERVISION_ADDR = 0x4 - IFLA_HSR_SEQ_NR = 0x5 - IFLA_HSR_VERSION = 0x6 - IFLA_HSR_PROTOCOL = 0x7 - IFLA_STATS_UNSPEC = 0x0 - IFLA_STATS_LINK_64 = 0x1 - IFLA_STATS_LINK_XSTATS = 0x2 - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 - IFLA_XDP_FLAGS = 0x3 - IFLA_XDP_PROG_ID = 0x4 - IFLA_XDP_DRV_PROG_ID = 0x5 - IFLA_XDP_SKB_PROG_ID = 0x6 - IFLA_XDP_HW_PROG_ID = 0x7 - IFLA_XDP_EXPECTED_FD = 0x8 - IFLA_EVENT_NONE = 0x0 - IFLA_EVENT_REBOOT = 0x1 - IFLA_EVENT_FEATURES = 0x2 - IFLA_EVENT_BONDING_FAILOVER = 0x3 - IFLA_EVENT_NOTIFY_PEERS = 0x4 - IFLA_EVENT_IGMP_RESEND = 0x5 - IFLA_EVENT_BONDING_OPTIONS = 0x6 - IFLA_TUN_UNSPEC = 0x0 - IFLA_TUN_OWNER = 0x1 - IFLA_TUN_GROUP = 0x2 - IFLA_TUN_TYPE = 0x3 - IFLA_TUN_PI = 0x4 - IFLA_TUN_VNET_HDR = 0x5 - IFLA_TUN_PERSIST = 0x6 - IFLA_TUN_MULTI_QUEUE = 0x7 - IFLA_TUN_NUM_QUEUES = 0x8 - IFLA_TUN_NUM_DISABLED_QUEUES = 0x9 - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_EGRESS = 0x1 - NF_NETDEV_NUMHOOKS = 0x2 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -const SO_ORIGINAL_DST = 0x50 - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_NEWFLOWTABLE = 0x16 - NFT_MSG_GETFLOWTABLE = 0x17 - NFT_MSG_DELFLOWTABLE = 0x18 - NFT_MSG_GETRULE_RESET = 0x19 - NFT_MSG_MAX = 0x1a - NFTA_LIST_UNSPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -const ( - NFTA_TARGET_UNSPEC = 0x0 - NFTA_TARGET_NAME = 0x1 - NFTA_TARGET_REV = 0x2 - NFTA_TARGET_INFO = 0x3 - NFTA_MATCH_UNSPEC = 0x0 - NFTA_MATCH_NAME = 0x1 - NFTA_MATCH_REV = 0x2 - NFTA_MATCH_INFO = 0x3 - NFTA_COMPAT_UNSPEC = 0x0 - NFTA_COMPAT_NAME = 0x1 - NFTA_COMPAT_REV = 0x2 - NFTA_COMPAT_TYPE = 0x3 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - -const ( - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) - -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 - NETNSA_TARGET_NSID = 0x4 - NETNSA_CURRENT_NSID = 0x5 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 - Flags uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 - Rx_ring_full uint64 - Rx_fill_ring_empty_descs uint64 - Tx_ring_empty_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - SOF_TIMESTAMPING_BIND_PHC = 0x8000 - SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 - - SOF_TIMESTAMPING_LAST = 0x10000 - SOF_TIMESTAMPING_MASK = 0x1ffff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_CGROUP_ITER_ORDER_UNSPEC = 0x0 - BPF_CGROUP_ITER_SELF_ONLY = 0x1 - BPF_CGROUP_ITER_DESCENDANTS_PRE = 0x2 - BPF_CGROUP_ITER_DESCENDANTS_POST = 0x3 - BPF_CGROUP_ITER_ANCESTORS_UP = 0x4 - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_FREEZE = 0x16 - BPF_BTF_GET_NEXT_ID = 0x17 - BPF_MAP_LOOKUP_BATCH = 0x18 - BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 - BPF_MAP_UPDATE_BATCH = 0x1a - BPF_MAP_DELETE_BATCH = 0x1b - BPF_LINK_CREATE = 0x1c - BPF_LINK_UPDATE = 0x1d - BPF_LINK_GET_FD_BY_ID = 0x1e - BPF_LINK_GET_NEXT_ID = 0x1f - BPF_ENABLE_STATS = 0x20 - BPF_ITER_CREATE = 0x21 - BPF_LINK_DETACH = 0x22 - BPF_PROG_BIND_MAP = 0x23 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 0x13 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_MAP_TYPE_SK_STORAGE = 0x18 - BPF_MAP_TYPE_DEVMAP_HASH = 0x19 - BPF_MAP_TYPE_STRUCT_OPS = 0x1a - BPF_MAP_TYPE_RINGBUF = 0x1b - BPF_MAP_TYPE_INODE_STORAGE = 0x1c - BPF_MAP_TYPE_TASK_STORAGE = 0x1d - BPF_MAP_TYPE_BLOOM_FILTER = 0x1e - BPF_MAP_TYPE_USER_RINGBUF = 0x1f - BPF_MAP_TYPE_CGRP_STORAGE = 0x20 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 - BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 - BPF_PROG_TYPE_TRACING = 0x1a - BPF_PROG_TYPE_STRUCT_OPS = 0x1b - BPF_PROG_TYPE_EXT = 0x1c - BPF_PROG_TYPE_LSM = 0x1d - BPF_PROG_TYPE_SK_LOOKUP = 0x1e - BPF_PROG_TYPE_SYSCALL = 0x1f - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_CGROUP_SYSCTL = 0x12 - BPF_CGROUP_UDP4_RECVMSG = 0x13 - BPF_CGROUP_UDP6_RECVMSG = 0x14 - BPF_CGROUP_GETSOCKOPT = 0x15 - BPF_CGROUP_SETSOCKOPT = 0x16 - BPF_TRACE_RAW_TP = 0x17 - BPF_TRACE_FENTRY = 0x18 - BPF_TRACE_FEXIT = 0x19 - BPF_MODIFY_RETURN = 0x1a - BPF_LSM_MAC = 0x1b - BPF_TRACE_ITER = 0x1c - BPF_CGROUP_INET4_GETPEERNAME = 0x1d - BPF_CGROUP_INET6_GETPEERNAME = 0x1e - BPF_CGROUP_INET4_GETSOCKNAME = 0x1f - BPF_CGROUP_INET6_GETSOCKNAME = 0x20 - BPF_XDP_DEVMAP = 0x21 - BPF_CGROUP_INET_SOCK_RELEASE = 0x22 - BPF_XDP_CPUMAP = 0x23 - BPF_SK_LOOKUP = 0x24 - BPF_XDP = 0x25 - BPF_SK_SKB_VERDICT = 0x26 - BPF_SK_REUSEPORT_SELECT = 0x27 - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 0x28 - BPF_PERF_EVENT = 0x29 - BPF_TRACE_KPROBE_MULTI = 0x2a - BPF_LSM_CGROUP = 0x2b - BPF_LINK_TYPE_UNSPEC = 0x0 - BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 - BPF_LINK_TYPE_TRACING = 0x2 - BPF_LINK_TYPE_CGROUP = 0x3 - BPF_LINK_TYPE_ITER = 0x4 - BPF_LINK_TYPE_NETNS = 0x5 - BPF_LINK_TYPE_XDP = 0x6 - BPF_LINK_TYPE_PERF_EVENT = 0x7 - BPF_LINK_TYPE_KPROBE_MULTI = 0x8 - BPF_LINK_TYPE_STRUCT_OPS = 0x9 - BPF_ANY = 0x0 - BPF_NOEXIST = 0x1 - BPF_EXIST = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NUMA_NODE = 0x4 - BPF_F_RDONLY = 0x8 - BPF_F_WRONLY = 0x10 - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_ZERO_SEED = 0x40 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_CLONE = 0x200 - BPF_F_MMAPABLE = 0x400 - BPF_F_PRESERVE_ELEMS = 0x800 - BPF_F_INNER_MAP = 0x1000 - BPF_STATS_RUN_TIME = 0x0 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_INGRESS = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_USER_STACK = 0x100 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_TUNINFO_FLAGS = 0x10 - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_NETNS = -0x1 - BPF_CSUM_LEVEL_QUERY = 0x0 - BPF_CSUM_LEVEL_INC = 0x1 - BPF_CSUM_LEVEL_DEC = 0x2 - BPF_CSUM_LEVEL_RESET = 0x3 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 - BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_LOCAL_STORAGE_GET_F_CREATE = 0x1 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 - BPF_RB_NO_WAKEUP = 0x1 - BPF_RB_FORCE_WAKEUP = 0x2 - BPF_RB_AVAIL_DATA = 0x0 - BPF_RB_RING_SIZE = 0x1 - BPF_RB_CONS_POS = 0x2 - BPF_RB_PROD_POS = 0x3 - BPF_RINGBUF_BUSY_BIT = 0x80000000 - BPF_RINGBUF_DISCARD_BIT = 0x40000000 - BPF_RINGBUF_HDR_SZ = 0x8 - BPF_SK_LOOKUP_F_REPLACE = 0x1 - BPF_SK_LOOKUP_F_NO_REUSEPORT = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_ADJ_ROOM_MAC = 0x1 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_LWT_ENCAP_IP = 0x2 - BPF_F_BPRM_SECUREEXEC = 0x1 - BPF_F_BROADCAST = 0x8 - BPF_F_EXCLUDE_INGRESS = 0x10 - BPF_SKB_TSTAMP_UNSPEC = 0x0 - BPF_SKB_TSTAMP_DELIVERY_MONO = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_LWT_REROUTE = 0x80 - BPF_FLOW_DISSECTOR_CONTINUE = 0x81 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 0x10 - BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20 - BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 0x40 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7f - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_SOCK_OPS_RTT_CB = 0xc - BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 0xd - BPF_SOCK_OPS_HDR_OPT_LEN_CB = 0xe - BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 0xf - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_BPF_DELACK_MAX = 0x3eb - TCP_BPF_RTO_MIN = 0x3ec - TCP_BPF_SYN = 0x3ed - TCP_BPF_SYN_IP = 0x3ee - TCP_BPF_SYN_MAC = 0x3ef - BPF_LOAD_HDR_OPT_TCP_SYN = 0x1 - BPF_WRITE_HDR_TCP_CURRENT_MSS = 0x1 - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 0x2 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_FIB_LOOKUP_DIRECT = 0x1 - BPF_FIB_LOOKUP_OUTPUT = 0x2 - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_MTU_CHK_SEGS = 0x1 - BPF_MTU_CHK_RET_SUCCESS = 0x0 - BPF_MTU_CHK_RET_FRAG_NEEDED = 0x1 - BPF_MTU_CHK_RET_SEGS_TOOBIG = 0x2 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 - BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 - BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 - BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 - BPF_CORE_FIELD_BYTE_OFFSET = 0x0 - BPF_CORE_FIELD_BYTE_SIZE = 0x1 - BPF_CORE_FIELD_EXISTS = 0x2 - BPF_CORE_FIELD_SIGNED = 0x3 - BPF_CORE_FIELD_LSHIFT_U64 = 0x4 - BPF_CORE_FIELD_RSHIFT_U64 = 0x5 - BPF_CORE_TYPE_ID_LOCAL = 0x6 - BPF_CORE_TYPE_ID_TARGET = 0x7 - BPF_CORE_TYPE_EXISTS = 0x8 - BPF_CORE_TYPE_SIZE = 0x9 - BPF_CORE_ENUMVAL_EXISTS = 0xa - BPF_CORE_ENUMVAL_VALUE = 0xb - BPF_CORE_TYPE_MATCHES = 0xc -) - -const ( - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_DECnet_IFADDR = 0xd - RTNLGRP_NOP2 = 0xe - RTNLGRP_DECnet_ROUTE = 0xf - RTNLGRP_DECnet_RULE = 0x10 - RTNLGRP_NOP4 = 0x11 - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - RTNLGRP_PHONET_IFADDR = 0x15 - RTNLGRP_PHONET_ROUTE = 0x16 - RTNLGRP_DCB = 0x17 - RTNLGRP_IPV4_NETCONF = 0x18 - RTNLGRP_IPV6_NETCONF = 0x19 - RTNLGRP_MDB = 0x1a - RTNLGRP_MPLS_ROUTE = 0x1b - RTNLGRP_NSID = 0x1c - RTNLGRP_MPLS_NETCONF = 0x1d - RTNLGRP_IPV4_MROUTE_R = 0x1e - RTNLGRP_IPV6_MROUTE_R = 0x1f - RTNLGRP_NEXTHOP = 0x20 - RTNLGRP_BRVLAN = 0x21 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} - -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) - -const ( - DEVLINK_CMD_UNSPEC = 0x0 - DEVLINK_CMD_GET = 0x1 - DEVLINK_CMD_SET = 0x2 - DEVLINK_CMD_NEW = 0x3 - DEVLINK_CMD_DEL = 0x4 - DEVLINK_CMD_PORT_GET = 0x5 - DEVLINK_CMD_PORT_SET = 0x6 - DEVLINK_CMD_PORT_NEW = 0x7 - DEVLINK_CMD_PORT_DEL = 0x8 - DEVLINK_CMD_PORT_SPLIT = 0x9 - DEVLINK_CMD_PORT_UNSPLIT = 0xa - DEVLINK_CMD_SB_GET = 0xb - DEVLINK_CMD_SB_SET = 0xc - DEVLINK_CMD_SB_NEW = 0xd - DEVLINK_CMD_SB_DEL = 0xe - DEVLINK_CMD_SB_POOL_GET = 0xf - DEVLINK_CMD_SB_POOL_SET = 0x10 - DEVLINK_CMD_SB_POOL_NEW = 0x11 - DEVLINK_CMD_SB_POOL_DEL = 0x12 - DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 - DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 - DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 - DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 - DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 - DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 - DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 - DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a - DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b - DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c - DEVLINK_CMD_ESWITCH_GET = 0x1d - DEVLINK_CMD_ESWITCH_SET = 0x1e - DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f - DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 - DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 - DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 - DEVLINK_CMD_RESOURCE_SET = 0x23 - DEVLINK_CMD_RESOURCE_DUMP = 0x24 - DEVLINK_CMD_RELOAD = 0x25 - DEVLINK_CMD_PARAM_GET = 0x26 - DEVLINK_CMD_PARAM_SET = 0x27 - DEVLINK_CMD_PARAM_NEW = 0x28 - DEVLINK_CMD_PARAM_DEL = 0x29 - DEVLINK_CMD_REGION_GET = 0x2a - DEVLINK_CMD_REGION_SET = 0x2b - DEVLINK_CMD_REGION_NEW = 0x2c - DEVLINK_CMD_REGION_DEL = 0x2d - DEVLINK_CMD_REGION_READ = 0x2e - DEVLINK_CMD_PORT_PARAM_GET = 0x2f - DEVLINK_CMD_PORT_PARAM_SET = 0x30 - DEVLINK_CMD_PORT_PARAM_NEW = 0x31 - DEVLINK_CMD_PORT_PARAM_DEL = 0x32 - DEVLINK_CMD_INFO_GET = 0x33 - DEVLINK_CMD_HEALTH_REPORTER_GET = 0x34 - DEVLINK_CMD_HEALTH_REPORTER_SET = 0x35 - DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 0x36 - DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 0x37 - DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 0x38 - DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 0x39 - DEVLINK_CMD_FLASH_UPDATE = 0x3a - DEVLINK_CMD_FLASH_UPDATE_END = 0x3b - DEVLINK_CMD_FLASH_UPDATE_STATUS = 0x3c - DEVLINK_CMD_TRAP_GET = 0x3d - DEVLINK_CMD_TRAP_SET = 0x3e - DEVLINK_CMD_TRAP_NEW = 0x3f - DEVLINK_CMD_TRAP_DEL = 0x40 - DEVLINK_CMD_TRAP_GROUP_GET = 0x41 - DEVLINK_CMD_TRAP_GROUP_SET = 0x42 - DEVLINK_CMD_TRAP_GROUP_NEW = 0x43 - DEVLINK_CMD_TRAP_GROUP_DEL = 0x44 - DEVLINK_CMD_TRAP_POLICER_GET = 0x45 - DEVLINK_CMD_TRAP_POLICER_SET = 0x46 - DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 - DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 - DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 - DEVLINK_CMD_RATE_GET = 0x4a - DEVLINK_CMD_RATE_SET = 0x4b - DEVLINK_CMD_RATE_NEW = 0x4c - DEVLINK_CMD_RATE_DEL = 0x4d - DEVLINK_CMD_LINECARD_GET = 0x4e - DEVLINK_CMD_LINECARD_SET = 0x4f - DEVLINK_CMD_LINECARD_NEW = 0x50 - DEVLINK_CMD_LINECARD_DEL = 0x51 - DEVLINK_CMD_SELFTESTS_GET = 0x52 - DEVLINK_CMD_MAX = 0x53 - DEVLINK_PORT_TYPE_NOTSET = 0x0 - DEVLINK_PORT_TYPE_AUTO = 0x1 - DEVLINK_PORT_TYPE_ETH = 0x2 - DEVLINK_PORT_TYPE_IB = 0x3 - DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 - DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 - DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 - DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 - DEVLINK_ESWITCH_MODE_LEGACY = 0x0 - DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 - DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 - DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 - DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 - DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 - DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 - DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 - DEVLINK_PORT_FLAVOUR_PHYSICAL = 0x0 - DEVLINK_PORT_FLAVOUR_CPU = 0x1 - DEVLINK_PORT_FLAVOUR_DSA = 0x2 - DEVLINK_PORT_FLAVOUR_PCI_PF = 0x3 - DEVLINK_PORT_FLAVOUR_PCI_VF = 0x4 - DEVLINK_PORT_FLAVOUR_VIRTUAL = 0x5 - DEVLINK_PORT_FLAVOUR_UNUSED = 0x6 - DEVLINK_PARAM_CMODE_RUNTIME = 0x0 - DEVLINK_PARAM_CMODE_DRIVERINIT = 0x1 - DEVLINK_PARAM_CMODE_PERMANENT = 0x2 - DEVLINK_PARAM_CMODE_MAX = 0x2 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER = 0x0 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH = 0x1 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK = 0x2 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN = 0x3 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS = 0x1 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER = 0x2 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK = 0x3 - DEVLINK_ATTR_STATS_RX_PACKETS = 0x0 - DEVLINK_ATTR_STATS_RX_BYTES = 0x1 - DEVLINK_ATTR_STATS_RX_DROPPED = 0x2 - DEVLINK_ATTR_STATS_MAX = 0x2 - DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0x0 - DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 0x1 - DEVLINK_FLASH_OVERWRITE_MAX_BIT = 0x1 - DEVLINK_TRAP_ACTION_DROP = 0x0 - DEVLINK_TRAP_ACTION_TRAP = 0x1 - DEVLINK_TRAP_ACTION_MIRROR = 0x2 - DEVLINK_TRAP_TYPE_DROP = 0x0 - DEVLINK_TRAP_TYPE_EXCEPTION = 0x1 - DEVLINK_TRAP_TYPE_CONTROL = 0x2 - DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0x0 - DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 0x1 - DEVLINK_RELOAD_ACTION_UNSPEC = 0x0 - DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 0x1 - DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 0x2 - DEVLINK_RELOAD_ACTION_MAX = 0x2 - DEVLINK_RELOAD_LIMIT_UNSPEC = 0x0 - DEVLINK_RELOAD_LIMIT_NO_RESET = 0x1 - DEVLINK_RELOAD_LIMIT_MAX = 0x1 - DEVLINK_ATTR_UNSPEC = 0x0 - DEVLINK_ATTR_BUS_NAME = 0x1 - DEVLINK_ATTR_DEV_NAME = 0x2 - DEVLINK_ATTR_PORT_INDEX = 0x3 - DEVLINK_ATTR_PORT_TYPE = 0x4 - DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 - DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 - DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 - DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 - DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 - DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa - DEVLINK_ATTR_SB_INDEX = 0xb - DEVLINK_ATTR_SB_SIZE = 0xc - DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd - DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe - DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf - DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 - DEVLINK_ATTR_SB_POOL_INDEX = 0x11 - DEVLINK_ATTR_SB_POOL_TYPE = 0x12 - DEVLINK_ATTR_SB_POOL_SIZE = 0x13 - DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 - DEVLINK_ATTR_SB_THRESHOLD = 0x15 - DEVLINK_ATTR_SB_TC_INDEX = 0x16 - DEVLINK_ATTR_SB_OCC_CUR = 0x17 - DEVLINK_ATTR_SB_OCC_MAX = 0x18 - DEVLINK_ATTR_ESWITCH_MODE = 0x19 - DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a - DEVLINK_ATTR_DPIPE_TABLES = 0x1b - DEVLINK_ATTR_DPIPE_TABLE = 0x1c - DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d - DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e - DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f - DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 - DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 - DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 - DEVLINK_ATTR_DPIPE_ENTRY = 0x23 - DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 - DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 - DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 - DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 - DEVLINK_ATTR_DPIPE_MATCH = 0x28 - DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 - DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a - DEVLINK_ATTR_DPIPE_ACTION = 0x2b - DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c - DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d - DEVLINK_ATTR_DPIPE_VALUE = 0x2e - DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f - DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 - DEVLINK_ATTR_DPIPE_HEADERS = 0x31 - DEVLINK_ATTR_DPIPE_HEADER = 0x32 - DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 - DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 - DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 - DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 - DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 - DEVLINK_ATTR_DPIPE_FIELD = 0x38 - DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 - DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a - DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b - DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c - DEVLINK_ATTR_PAD = 0x3d - DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e - DEVLINK_ATTR_RESOURCE_LIST = 0x3f - DEVLINK_ATTR_RESOURCE = 0x40 - DEVLINK_ATTR_RESOURCE_NAME = 0x41 - DEVLINK_ATTR_RESOURCE_ID = 0x42 - DEVLINK_ATTR_RESOURCE_SIZE = 0x43 - DEVLINK_ATTR_RESOURCE_SIZE_NEW = 0x44 - DEVLINK_ATTR_RESOURCE_SIZE_VALID = 0x45 - DEVLINK_ATTR_RESOURCE_SIZE_MIN = 0x46 - DEVLINK_ATTR_RESOURCE_SIZE_MAX = 0x47 - DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 0x48 - DEVLINK_ATTR_RESOURCE_UNIT = 0x49 - DEVLINK_ATTR_RESOURCE_OCC = 0x4a - DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 0x4b - DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 0x4c - DEVLINK_ATTR_PORT_FLAVOUR = 0x4d - DEVLINK_ATTR_PORT_NUMBER = 0x4e - DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 0x4f - DEVLINK_ATTR_PARAM = 0x50 - DEVLINK_ATTR_PARAM_NAME = 0x51 - DEVLINK_ATTR_PARAM_GENERIC = 0x52 - DEVLINK_ATTR_PARAM_TYPE = 0x53 - DEVLINK_ATTR_PARAM_VALUES_LIST = 0x54 - DEVLINK_ATTR_PARAM_VALUE = 0x55 - DEVLINK_ATTR_PARAM_VALUE_DATA = 0x56 - DEVLINK_ATTR_PARAM_VALUE_CMODE = 0x57 - DEVLINK_ATTR_REGION_NAME = 0x58 - DEVLINK_ATTR_REGION_SIZE = 0x59 - DEVLINK_ATTR_REGION_SNAPSHOTS = 0x5a - DEVLINK_ATTR_REGION_SNAPSHOT = 0x5b - DEVLINK_ATTR_REGION_SNAPSHOT_ID = 0x5c - DEVLINK_ATTR_REGION_CHUNKS = 0x5d - DEVLINK_ATTR_REGION_CHUNK = 0x5e - DEVLINK_ATTR_REGION_CHUNK_DATA = 0x5f - DEVLINK_ATTR_REGION_CHUNK_ADDR = 0x60 - DEVLINK_ATTR_REGION_CHUNK_LEN = 0x61 - DEVLINK_ATTR_INFO_DRIVER_NAME = 0x62 - DEVLINK_ATTR_INFO_SERIAL_NUMBER = 0x63 - DEVLINK_ATTR_INFO_VERSION_FIXED = 0x64 - DEVLINK_ATTR_INFO_VERSION_RUNNING = 0x65 - DEVLINK_ATTR_INFO_VERSION_STORED = 0x66 - DEVLINK_ATTR_INFO_VERSION_NAME = 0x67 - DEVLINK_ATTR_INFO_VERSION_VALUE = 0x68 - DEVLINK_ATTR_SB_POOL_CELL_SIZE = 0x69 - DEVLINK_ATTR_FMSG = 0x6a - DEVLINK_ATTR_FMSG_OBJ_NEST_START = 0x6b - DEVLINK_ATTR_FMSG_PAIR_NEST_START = 0x6c - DEVLINK_ATTR_FMSG_ARR_NEST_START = 0x6d - DEVLINK_ATTR_FMSG_NEST_END = 0x6e - DEVLINK_ATTR_FMSG_OBJ_NAME = 0x6f - DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 0x70 - DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 0x71 - DEVLINK_ATTR_HEALTH_REPORTER = 0x72 - DEVLINK_ATTR_HEALTH_REPORTER_NAME = 0x73 - DEVLINK_ATTR_HEALTH_REPORTER_STATE = 0x74 - DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 0x75 - DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 0x76 - DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 0x77 - DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 0x78 - DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 0x79 - DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 0x7a - DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 0x7b - DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 0x7c - DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 0x7d - DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 0x7e - DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 0x7f - DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 0x80 - DEVLINK_ATTR_STATS = 0x81 - DEVLINK_ATTR_TRAP_NAME = 0x82 - DEVLINK_ATTR_TRAP_ACTION = 0x83 - DEVLINK_ATTR_TRAP_TYPE = 0x84 - DEVLINK_ATTR_TRAP_GENERIC = 0x85 - DEVLINK_ATTR_TRAP_METADATA = 0x86 - DEVLINK_ATTR_TRAP_GROUP_NAME = 0x87 - DEVLINK_ATTR_RELOAD_FAILED = 0x88 - DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 0x89 - DEVLINK_ATTR_NETNS_FD = 0x8a - DEVLINK_ATTR_NETNS_PID = 0x8b - DEVLINK_ATTR_NETNS_ID = 0x8c - DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 0x8d - DEVLINK_ATTR_TRAP_POLICER_ID = 0x8e - DEVLINK_ATTR_TRAP_POLICER_RATE = 0x8f - DEVLINK_ATTR_TRAP_POLICER_BURST = 0x90 - DEVLINK_ATTR_PORT_FUNCTION = 0x91 - DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 0x92 - DEVLINK_ATTR_PORT_LANES = 0x93 - DEVLINK_ATTR_PORT_SPLITTABLE = 0x94 - DEVLINK_ATTR_PORT_EXTERNAL = 0x95 - DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 0x96 - DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 0x97 - DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 0x98 - DEVLINK_ATTR_RELOAD_ACTION = 0x99 - DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 0x9a - DEVLINK_ATTR_RELOAD_LIMITS = 0x9b - DEVLINK_ATTR_DEV_STATS = 0x9c - DEVLINK_ATTR_RELOAD_STATS = 0x9d - DEVLINK_ATTR_RELOAD_STATS_ENTRY = 0x9e - DEVLINK_ATTR_RELOAD_STATS_LIMIT = 0x9f - DEVLINK_ATTR_RELOAD_STATS_VALUE = 0xa0 - DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1 - DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2 - DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3 - DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 0xa4 - DEVLINK_ATTR_RATE_TYPE = 0xa5 - DEVLINK_ATTR_RATE_TX_SHARE = 0xa6 - DEVLINK_ATTR_RATE_TX_MAX = 0xa7 - DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 - DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 - DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa - DEVLINK_ATTR_LINECARD_INDEX = 0xab - DEVLINK_ATTR_LINECARD_STATE = 0xac - DEVLINK_ATTR_LINECARD_TYPE = 0xad - DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae - DEVLINK_ATTR_NESTED_DEVLINK = 0xaf - DEVLINK_ATTR_SELFTESTS = 0xb0 - DEVLINK_ATTR_MAX = 0xb3 - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 - DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 - DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 - DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 - DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 - DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 - DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 - DEVLINK_DPIPE_HEADER_IPV4 = 0x1 - DEVLINK_DPIPE_HEADER_IPV6 = 0x2 - DEVLINK_RESOURCE_UNIT_ENTRY = 0x0 - DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0 - DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1 - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 - DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 -) - -type FsverityDigest struct { - Algorithm uint16 - Size uint16 -} - -type FsverityEnableArg struct { - Version uint32 - Hash_algorithm uint32 - Block_size uint32 - Salt_size uint32 - Salt_ptr uint64 - Sig_size uint32 - _ uint32 - Sig_ptr uint64 - _ [11]uint64 -} - -type Nhmsg struct { - Family uint8 - Scope uint8 - Protocol uint8 - Resvd uint8 - Flags uint32 -} - -type NexthopGrp struct { - Id uint32 - Weight uint8 - Resvd1 uint8 - Resvd2 uint16 -} - -const ( - NHA_UNSPEC = 0x0 - NHA_ID = 0x1 - NHA_GROUP = 0x2 - NHA_GROUP_TYPE = 0x3 - NHA_BLACKHOLE = 0x4 - NHA_OIF = 0x5 - NHA_GATEWAY = 0x6 - NHA_ENCAP_TYPE = 0x7 - NHA_ENCAP = 0x8 - NHA_GROUPS = 0x9 - NHA_MASTER = 0xa -) - -const ( - CAN_RAW_FILTER = 0x1 - CAN_RAW_ERR_FILTER = 0x2 - CAN_RAW_LOOPBACK = 0x3 - CAN_RAW_RECV_OWN_MSGS = 0x4 - CAN_RAW_FD_FRAMES = 0x5 - CAN_RAW_JOIN_FILTERS = 0x6 -) - -type WatchdogInfo struct { - Options uint32 - Version uint32 - Identity [32]uint8 -} - -type PPSFData struct { - Info PPSKInfo - Timeout PPSKTime -} - -type PPSKParams struct { - Api_version int32 - Mode int32 - Assert_off_tu PPSKTime - Clear_off_tu PPSKTime -} - -type PPSKTime struct { - Sec int64 - Nsec int32 - Flags uint32 -} - -const ( - LWTUNNEL_ENCAP_NONE = 0x0 - LWTUNNEL_ENCAP_MPLS = 0x1 - LWTUNNEL_ENCAP_IP = 0x2 - LWTUNNEL_ENCAP_ILA = 0x3 - LWTUNNEL_ENCAP_IP6 = 0x4 - LWTUNNEL_ENCAP_SEG6 = 0x5 - LWTUNNEL_ENCAP_BPF = 0x6 - LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 - LWTUNNEL_ENCAP_RPL = 0x8 - LWTUNNEL_ENCAP_IOAM6 = 0x9 - LWTUNNEL_ENCAP_XFRM = 0xa - LWTUNNEL_ENCAP_MAX = 0xa - - MPLS_IPTUNNEL_UNSPEC = 0x0 - MPLS_IPTUNNEL_DST = 0x1 - MPLS_IPTUNNEL_TTL = 0x2 - MPLS_IPTUNNEL_MAX = 0x2 -) - -const ( - ETHTOOL_ID_UNSPEC = 0x0 - ETHTOOL_RX_COPYBREAK = 0x1 - ETHTOOL_TX_COPYBREAK = 0x2 - ETHTOOL_PFC_PREVENTION_TOUT = 0x3 - ETHTOOL_TUNABLE_UNSPEC = 0x0 - ETHTOOL_TUNABLE_U8 = 0x1 - ETHTOOL_TUNABLE_U16 = 0x2 - ETHTOOL_TUNABLE_U32 = 0x3 - ETHTOOL_TUNABLE_U64 = 0x4 - ETHTOOL_TUNABLE_STRING = 0x5 - ETHTOOL_TUNABLE_S8 = 0x6 - ETHTOOL_TUNABLE_S16 = 0x7 - ETHTOOL_TUNABLE_S32 = 0x8 - ETHTOOL_TUNABLE_S64 = 0x9 - ETHTOOL_PHY_ID_UNSPEC = 0x0 - ETHTOOL_PHY_DOWNSHIFT = 0x1 - ETHTOOL_PHY_FAST_LINK_DOWN = 0x2 - ETHTOOL_PHY_EDPD = 0x3 - ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0 - ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1 - ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2 - ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3 - ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4 - ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5 - ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6 - ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7 - ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8 - ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4 - ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6 - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3 - ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5 - ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2 - ETHTOOL_FLASH_ALL_REGIONS = 0x0 - ETHTOOL_F_UNSUPPORTED__BIT = 0x0 - ETHTOOL_F_WISH__BIT = 0x1 - ETHTOOL_F_COMPAT__BIT = 0x2 - ETHTOOL_FEC_NONE_BIT = 0x0 - ETHTOOL_FEC_AUTO_BIT = 0x1 - ETHTOOL_FEC_OFF_BIT = 0x2 - ETHTOOL_FEC_RS_BIT = 0x3 - ETHTOOL_FEC_BASER_BIT = 0x4 - ETHTOOL_FEC_LLRS_BIT = 0x5 - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0 - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1 - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2 - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3 - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4 - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5 - ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6 - ETHTOOL_LINK_MODE_TP_BIT = 0x7 - ETHTOOL_LINK_MODE_AUI_BIT = 0x8 - ETHTOOL_LINK_MODE_MII_BIT = 0x9 - ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa - ETHTOOL_LINK_MODE_BNC_BIT = 0xb - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc - ETHTOOL_LINK_MODE_Pause_BIT = 0xd - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf - ETHTOOL_LINK_MODE_Backplane_BIT = 0x10 - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11 - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12 - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13 - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14 - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15 - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16 - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17 - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18 - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19 - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20 - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21 - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22 - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23 - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24 - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25 - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26 - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27 - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28 - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29 - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30 - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31 - ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32 - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33 - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34 - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35 - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36 - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37 - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38 - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39 - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40 - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41 - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42 - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43 - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44 - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45 - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46 - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47 - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48 - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49 - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50 - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51 - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52 - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53 - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54 - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55 - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56 - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57 - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58 - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59 - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b - - ETHTOOL_MSG_USER_NONE = 0x0 - ETHTOOL_MSG_STRSET_GET = 0x1 - ETHTOOL_MSG_LINKINFO_GET = 0x2 - ETHTOOL_MSG_LINKINFO_SET = 0x3 - ETHTOOL_MSG_LINKMODES_GET = 0x4 - ETHTOOL_MSG_LINKMODES_SET = 0x5 - ETHTOOL_MSG_LINKSTATE_GET = 0x6 - ETHTOOL_MSG_DEBUG_GET = 0x7 - ETHTOOL_MSG_DEBUG_SET = 0x8 - ETHTOOL_MSG_WOL_GET = 0x9 - ETHTOOL_MSG_WOL_SET = 0xa - ETHTOOL_MSG_FEATURES_GET = 0xb - ETHTOOL_MSG_FEATURES_SET = 0xc - ETHTOOL_MSG_PRIVFLAGS_GET = 0xd - ETHTOOL_MSG_PRIVFLAGS_SET = 0xe - ETHTOOL_MSG_RINGS_GET = 0xf - ETHTOOL_MSG_RINGS_SET = 0x10 - ETHTOOL_MSG_CHANNELS_GET = 0x11 - ETHTOOL_MSG_CHANNELS_SET = 0x12 - ETHTOOL_MSG_COALESCE_GET = 0x13 - ETHTOOL_MSG_COALESCE_SET = 0x14 - ETHTOOL_MSG_PAUSE_GET = 0x15 - ETHTOOL_MSG_PAUSE_SET = 0x16 - ETHTOOL_MSG_EEE_GET = 0x17 - ETHTOOL_MSG_EEE_SET = 0x18 - ETHTOOL_MSG_TSINFO_GET = 0x19 - ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a - ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b - ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c - ETHTOOL_MSG_FEC_GET = 0x1d - ETHTOOL_MSG_FEC_SET = 0x1e - ETHTOOL_MSG_MODULE_EEPROM_GET = 0x1f - ETHTOOL_MSG_STATS_GET = 0x20 - ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 - ETHTOOL_MSG_MODULE_GET = 0x22 - ETHTOOL_MSG_MODULE_SET = 0x23 - ETHTOOL_MSG_PSE_GET = 0x24 - ETHTOOL_MSG_PSE_SET = 0x25 - ETHTOOL_MSG_RSS_GET = 0x26 - ETHTOOL_MSG_USER_MAX = 0x26 - ETHTOOL_MSG_KERNEL_NONE = 0x0 - ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 - ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 - ETHTOOL_MSG_LINKINFO_NTF = 0x3 - ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4 - ETHTOOL_MSG_LINKMODES_NTF = 0x5 - ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6 - ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7 - ETHTOOL_MSG_DEBUG_NTF = 0x8 - ETHTOOL_MSG_WOL_GET_REPLY = 0x9 - ETHTOOL_MSG_WOL_NTF = 0xa - ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb - ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc - ETHTOOL_MSG_FEATURES_NTF = 0xd - ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe - ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf - ETHTOOL_MSG_RINGS_GET_REPLY = 0x10 - ETHTOOL_MSG_RINGS_NTF = 0x11 - ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12 - ETHTOOL_MSG_CHANNELS_NTF = 0x13 - ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14 - ETHTOOL_MSG_COALESCE_NTF = 0x15 - ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16 - ETHTOOL_MSG_PAUSE_NTF = 0x17 - ETHTOOL_MSG_EEE_GET_REPLY = 0x18 - ETHTOOL_MSG_EEE_NTF = 0x19 - ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a - ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b - ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c - ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d - ETHTOOL_MSG_FEC_GET_REPLY = 0x1e - ETHTOOL_MSG_FEC_NTF = 0x1f - ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 0x20 - ETHTOOL_MSG_STATS_GET_REPLY = 0x21 - ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 - ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 - ETHTOOL_MSG_MODULE_NTF = 0x24 - ETHTOOL_MSG_PSE_GET_REPLY = 0x25 - ETHTOOL_MSG_RSS_GET_REPLY = 0x26 - ETHTOOL_MSG_KERNEL_MAX = 0x26 - ETHTOOL_A_HEADER_UNSPEC = 0x0 - ETHTOOL_A_HEADER_DEV_INDEX = 0x1 - ETHTOOL_A_HEADER_DEV_NAME = 0x2 - ETHTOOL_A_HEADER_FLAGS = 0x3 - ETHTOOL_A_HEADER_MAX = 0x3 - ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0 - ETHTOOL_A_BITSET_BIT_INDEX = 0x1 - ETHTOOL_A_BITSET_BIT_NAME = 0x2 - ETHTOOL_A_BITSET_BIT_VALUE = 0x3 - ETHTOOL_A_BITSET_BIT_MAX = 0x3 - ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0 - ETHTOOL_A_BITSET_BITS_BIT = 0x1 - ETHTOOL_A_BITSET_BITS_MAX = 0x1 - ETHTOOL_A_BITSET_UNSPEC = 0x0 - ETHTOOL_A_BITSET_NOMASK = 0x1 - ETHTOOL_A_BITSET_SIZE = 0x2 - ETHTOOL_A_BITSET_BITS = 0x3 - ETHTOOL_A_BITSET_VALUE = 0x4 - ETHTOOL_A_BITSET_MASK = 0x5 - ETHTOOL_A_BITSET_MAX = 0x5 - ETHTOOL_A_STRING_UNSPEC = 0x0 - ETHTOOL_A_STRING_INDEX = 0x1 - ETHTOOL_A_STRING_VALUE = 0x2 - ETHTOOL_A_STRING_MAX = 0x2 - ETHTOOL_A_STRINGS_UNSPEC = 0x0 - ETHTOOL_A_STRINGS_STRING = 0x1 - ETHTOOL_A_STRINGS_MAX = 0x1 - ETHTOOL_A_STRINGSET_UNSPEC = 0x0 - ETHTOOL_A_STRINGSET_ID = 0x1 - ETHTOOL_A_STRINGSET_COUNT = 0x2 - ETHTOOL_A_STRINGSET_STRINGS = 0x3 - ETHTOOL_A_STRINGSET_MAX = 0x3 - ETHTOOL_A_STRINGSETS_UNSPEC = 0x0 - ETHTOOL_A_STRINGSETS_STRINGSET = 0x1 - ETHTOOL_A_STRINGSETS_MAX = 0x1 - ETHTOOL_A_STRSET_UNSPEC = 0x0 - ETHTOOL_A_STRSET_HEADER = 0x1 - ETHTOOL_A_STRSET_STRINGSETS = 0x2 - ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3 - ETHTOOL_A_STRSET_MAX = 0x3 - ETHTOOL_A_LINKINFO_UNSPEC = 0x0 - ETHTOOL_A_LINKINFO_HEADER = 0x1 - ETHTOOL_A_LINKINFO_PORT = 0x2 - ETHTOOL_A_LINKINFO_PHYADDR = 0x3 - ETHTOOL_A_LINKINFO_TP_MDIX = 0x4 - ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5 - ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6 - ETHTOOL_A_LINKINFO_MAX = 0x6 - ETHTOOL_A_LINKMODES_UNSPEC = 0x0 - ETHTOOL_A_LINKMODES_HEADER = 0x1 - ETHTOOL_A_LINKMODES_AUTONEG = 0x2 - ETHTOOL_A_LINKMODES_OURS = 0x3 - ETHTOOL_A_LINKMODES_PEER = 0x4 - ETHTOOL_A_LINKMODES_SPEED = 0x5 - ETHTOOL_A_LINKMODES_DUPLEX = 0x6 - ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 - ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 - ETHTOOL_A_LINKMODES_LANES = 0x9 - ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa - ETHTOOL_A_LINKMODES_MAX = 0xa - ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 - ETHTOOL_A_LINKSTATE_HEADER = 0x1 - ETHTOOL_A_LINKSTATE_LINK = 0x2 - ETHTOOL_A_LINKSTATE_SQI = 0x3 - ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4 - ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5 - ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6 - ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 0x7 - ETHTOOL_A_LINKSTATE_MAX = 0x7 - ETHTOOL_A_DEBUG_UNSPEC = 0x0 - ETHTOOL_A_DEBUG_HEADER = 0x1 - ETHTOOL_A_DEBUG_MSGMASK = 0x2 - ETHTOOL_A_DEBUG_MAX = 0x2 - ETHTOOL_A_WOL_UNSPEC = 0x0 - ETHTOOL_A_WOL_HEADER = 0x1 - ETHTOOL_A_WOL_MODES = 0x2 - ETHTOOL_A_WOL_SOPASS = 0x3 - ETHTOOL_A_WOL_MAX = 0x3 - ETHTOOL_A_FEATURES_UNSPEC = 0x0 - ETHTOOL_A_FEATURES_HEADER = 0x1 - ETHTOOL_A_FEATURES_HW = 0x2 - ETHTOOL_A_FEATURES_WANTED = 0x3 - ETHTOOL_A_FEATURES_ACTIVE = 0x4 - ETHTOOL_A_FEATURES_NOCHANGE = 0x5 - ETHTOOL_A_FEATURES_MAX = 0x5 - ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0 - ETHTOOL_A_PRIVFLAGS_HEADER = 0x1 - ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2 - ETHTOOL_A_PRIVFLAGS_MAX = 0x2 - ETHTOOL_A_RINGS_UNSPEC = 0x0 - ETHTOOL_A_RINGS_HEADER = 0x1 - ETHTOOL_A_RINGS_RX_MAX = 0x2 - ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3 - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4 - ETHTOOL_A_RINGS_TX_MAX = 0x5 - ETHTOOL_A_RINGS_RX = 0x6 - ETHTOOL_A_RINGS_RX_MINI = 0x7 - ETHTOOL_A_RINGS_RX_JUMBO = 0x8 - ETHTOOL_A_RINGS_TX = 0x9 - ETHTOOL_A_RINGS_RX_BUF_LEN = 0xa - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb - ETHTOOL_A_RINGS_CQE_SIZE = 0xc - ETHTOOL_A_RINGS_TX_PUSH = 0xd - ETHTOOL_A_RINGS_MAX = 0xd - ETHTOOL_A_CHANNELS_UNSPEC = 0x0 - ETHTOOL_A_CHANNELS_HEADER = 0x1 - ETHTOOL_A_CHANNELS_RX_MAX = 0x2 - ETHTOOL_A_CHANNELS_TX_MAX = 0x3 - ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4 - ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5 - ETHTOOL_A_CHANNELS_RX_COUNT = 0x6 - ETHTOOL_A_CHANNELS_TX_COUNT = 0x7 - ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8 - ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9 - ETHTOOL_A_CHANNELS_MAX = 0x9 - ETHTOOL_A_COALESCE_UNSPEC = 0x0 - ETHTOOL_A_COALESCE_HEADER = 0x1 - ETHTOOL_A_COALESCE_RX_USECS = 0x2 - ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3 - ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4 - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5 - ETHTOOL_A_COALESCE_TX_USECS = 0x6 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7 - ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9 - ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa - ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb - ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc - ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd - ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf - ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11 - ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12 - ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13 - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14 - ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16 - ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 - ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 0x18 - ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 - ETHTOOL_A_COALESCE_MAX = 0x19 - ETHTOOL_A_PAUSE_UNSPEC = 0x0 - ETHTOOL_A_PAUSE_HEADER = 0x1 - ETHTOOL_A_PAUSE_AUTONEG = 0x2 - ETHTOOL_A_PAUSE_RX = 0x3 - ETHTOOL_A_PAUSE_TX = 0x4 - ETHTOOL_A_PAUSE_STATS = 0x5 - ETHTOOL_A_PAUSE_MAX = 0x5 - ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 - ETHTOOL_A_PAUSE_STAT_PAD = 0x1 - ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 - ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3 - ETHTOOL_A_PAUSE_STAT_MAX = 0x3 - ETHTOOL_A_EEE_UNSPEC = 0x0 - ETHTOOL_A_EEE_HEADER = 0x1 - ETHTOOL_A_EEE_MODES_OURS = 0x2 - ETHTOOL_A_EEE_MODES_PEER = 0x3 - ETHTOOL_A_EEE_ACTIVE = 0x4 - ETHTOOL_A_EEE_ENABLED = 0x5 - ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6 - ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7 - ETHTOOL_A_EEE_MAX = 0x7 - ETHTOOL_A_TSINFO_UNSPEC = 0x0 - ETHTOOL_A_TSINFO_HEADER = 0x1 - ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2 - ETHTOOL_A_TSINFO_TX_TYPES = 0x3 - ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 - ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 - ETHTOOL_A_TSINFO_MAX = 0x5 - ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_MAX = 0x1 - ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0 - ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1 - ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2 - ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3 - ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4 - ETHTOOL_A_CABLE_PAIR_A = 0x0 - ETHTOOL_A_CABLE_PAIR_B = 0x1 - ETHTOOL_A_CABLE_PAIR_C = 0x2 - ETHTOOL_A_CABLE_PAIR_D = 0x3 - ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0 - ETHTOOL_A_CABLE_RESULT_PAIR = 0x1 - ETHTOOL_A_CABLE_RESULT_CODE = 0x2 - ETHTOOL_A_CABLE_RESULT_MAX = 0x2 - ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0 - ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1 - ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2 - ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x2 - ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 - ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 - ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0 - ETHTOOL_A_CABLE_NEST_RESULT = 0x1 - ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2 - ETHTOOL_A_CABLE_NEST_MAX = 0x2 - ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2 - ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3 - ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1 - ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2 - ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4 - ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4 - ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2 - ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2 - ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0 - ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1 - ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2 - ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2 - ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0 - ETHTOOL_A_CABLE_PULSE_mV = 0x1 - ETHTOOL_A_CABLE_PULSE_MAX = 0x1 - ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0 - ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1 - ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2 - ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3 - ETHTOOL_A_CABLE_STEP_MAX = 0x3 - ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1 - ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2 - ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3 - ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2 - ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3 - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0 - ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1 - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2 - ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1 - ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2 - ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2 - ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1 - ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2 - ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3 - ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3 - ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1 - ETHTOOL_A_TUNNEL_UDP_MAX = 0x1 - ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1 - ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2 - ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 -) - -const SPEED_UNKNOWN = -0x1 - -type EthtoolDrvinfo struct { - Cmd uint32 - Driver [32]byte - Version [32]byte - Fw_version [32]byte - Bus_info [32]byte - Erom_version [32]byte - Reserved2 [12]byte - N_priv_flags uint32 - N_stats uint32 - Testinfo_len uint32 - Eedump_len uint32 - Regdump_len uint32 -} - -type ( - HIDRawReportDescriptor struct { - Size uint32 - Value [4096]uint8 - } - HIDRawDevInfo struct { - Bustype uint32 - Vendor int16 - Product int16 - } -) - -const ( - CLOSE_RANGE_UNSHARE = 0x2 - CLOSE_RANGE_CLOEXEC = 0x4 -) - -const ( - NLMSGERR_ATTR_MSG = 0x1 - NLMSGERR_ATTR_OFFS = 0x2 - NLMSGERR_ATTR_COOKIE = 0x3 -) - -type ( - EraseInfo struct { - Start uint32 - Length uint32 - } - EraseInfo64 struct { - Start uint64 - Length uint64 - } - MtdOobBuf struct { - Start uint32 - Length uint32 - Ptr *uint8 - } - MtdOobBuf64 struct { - Start uint64 - Pad uint32 - Length uint32 - Ptr uint64 - } - MtdWriteReq struct { - Start uint64 - Len uint64 - Ooblen uint64 - Data uint64 - Oob uint64 - Mode uint8 - _ [7]uint8 - } - MtdInfo struct { - Type uint8 - Flags uint32 - Size uint32 - Erasesize uint32 - Writesize uint32 - Oobsize uint32 - _ uint64 - } - RegionInfo struct { - Offset uint32 - Erasesize uint32 - Numblocks uint32 - Regionindex uint32 - } - OtpInfo struct { - Start uint32 - Length uint32 - Locked uint32 - } - NandOobinfo struct { - Useecc uint32 - Eccbytes uint32 - Oobfree [8][2]uint32 - Eccpos [32]uint32 - } - NandOobfree struct { - Offset uint32 - Length uint32 - } - NandEcclayout struct { - Eccbytes uint32 - Eccpos [64]uint32 - Oobavail uint32 - Oobfree [8]NandOobfree - } - MtdEccStats struct { - Corrected uint32 - Failed uint32 - Badblocks uint32 - Bbtblocks uint32 - } -) - -const ( - MTD_OPS_PLACE_OOB = 0x0 - MTD_OPS_AUTO_OOB = 0x1 - MTD_OPS_RAW = 0x2 -) - -const ( - MTD_FILE_MODE_NORMAL = 0x0 - MTD_FILE_MODE_OTP_FACTORY = 0x1 - MTD_FILE_MODE_OTP_USER = 0x2 - MTD_FILE_MODE_RAW = 0x3 -) - -const ( - NFC_CMD_UNSPEC = 0x0 - NFC_CMD_GET_DEVICE = 0x1 - NFC_CMD_DEV_UP = 0x2 - NFC_CMD_DEV_DOWN = 0x3 - NFC_CMD_DEP_LINK_UP = 0x4 - NFC_CMD_DEP_LINK_DOWN = 0x5 - NFC_CMD_START_POLL = 0x6 - NFC_CMD_STOP_POLL = 0x7 - NFC_CMD_GET_TARGET = 0x8 - NFC_EVENT_TARGETS_FOUND = 0x9 - NFC_EVENT_DEVICE_ADDED = 0xa - NFC_EVENT_DEVICE_REMOVED = 0xb - NFC_EVENT_TARGET_LOST = 0xc - NFC_EVENT_TM_ACTIVATED = 0xd - NFC_EVENT_TM_DEACTIVATED = 0xe - NFC_CMD_LLC_GET_PARAMS = 0xf - NFC_CMD_LLC_SET_PARAMS = 0x10 - NFC_CMD_ENABLE_SE = 0x11 - NFC_CMD_DISABLE_SE = 0x12 - NFC_CMD_LLC_SDREQ = 0x13 - NFC_EVENT_LLC_SDRES = 0x14 - NFC_CMD_FW_DOWNLOAD = 0x15 - NFC_EVENT_SE_ADDED = 0x16 - NFC_EVENT_SE_REMOVED = 0x17 - NFC_EVENT_SE_CONNECTIVITY = 0x18 - NFC_EVENT_SE_TRANSACTION = 0x19 - NFC_CMD_GET_SE = 0x1a - NFC_CMD_SE_IO = 0x1b - NFC_CMD_ACTIVATE_TARGET = 0x1c - NFC_CMD_VENDOR = 0x1d - NFC_CMD_DEACTIVATE_TARGET = 0x1e - NFC_ATTR_UNSPEC = 0x0 - NFC_ATTR_DEVICE_INDEX = 0x1 - NFC_ATTR_DEVICE_NAME = 0x2 - NFC_ATTR_PROTOCOLS = 0x3 - NFC_ATTR_TARGET_INDEX = 0x4 - NFC_ATTR_TARGET_SENS_RES = 0x5 - NFC_ATTR_TARGET_SEL_RES = 0x6 - NFC_ATTR_TARGET_NFCID1 = 0x7 - NFC_ATTR_TARGET_SENSB_RES = 0x8 - NFC_ATTR_TARGET_SENSF_RES = 0x9 - NFC_ATTR_COMM_MODE = 0xa - NFC_ATTR_RF_MODE = 0xb - NFC_ATTR_DEVICE_POWERED = 0xc - NFC_ATTR_IM_PROTOCOLS = 0xd - NFC_ATTR_TM_PROTOCOLS = 0xe - NFC_ATTR_LLC_PARAM_LTO = 0xf - NFC_ATTR_LLC_PARAM_RW = 0x10 - NFC_ATTR_LLC_PARAM_MIUX = 0x11 - NFC_ATTR_SE = 0x12 - NFC_ATTR_LLC_SDP = 0x13 - NFC_ATTR_FIRMWARE_NAME = 0x14 - NFC_ATTR_SE_INDEX = 0x15 - NFC_ATTR_SE_TYPE = 0x16 - NFC_ATTR_SE_AID = 0x17 - NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18 - NFC_ATTR_SE_APDU = 0x19 - NFC_ATTR_TARGET_ISO15693_DSFID = 0x1a - NFC_ATTR_TARGET_ISO15693_UID = 0x1b - NFC_ATTR_SE_PARAMS = 0x1c - NFC_ATTR_VENDOR_ID = 0x1d - NFC_ATTR_VENDOR_SUBCMD = 0x1e - NFC_ATTR_VENDOR_DATA = 0x1f - NFC_SDP_ATTR_UNSPEC = 0x0 - NFC_SDP_ATTR_URI = 0x1 - NFC_SDP_ATTR_SAP = 0x2 -) - -type LandlockRulesetAttr struct { - Access_fs uint64 -} - -type LandlockPathBeneathAttr struct { - Allowed_access uint64 - Parent_fd int32 -} - -const ( - LANDLOCK_RULE_PATH_BENEATH = 0x1 -) - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 - - ipc_64 = 0x100 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) - -type MountAttr struct { - Attr_set uint64 - Attr_clr uint64 - Propagation uint64 - Userns_fd uint64 -} - -const ( - WG_CMD_GET_DEVICE = 0x0 - WG_CMD_SET_DEVICE = 0x1 - WGDEVICE_F_REPLACE_PEERS = 0x1 - WGDEVICE_A_UNSPEC = 0x0 - WGDEVICE_A_IFINDEX = 0x1 - WGDEVICE_A_IFNAME = 0x2 - WGDEVICE_A_PRIVATE_KEY = 0x3 - WGDEVICE_A_PUBLIC_KEY = 0x4 - WGDEVICE_A_FLAGS = 0x5 - WGDEVICE_A_LISTEN_PORT = 0x6 - WGDEVICE_A_FWMARK = 0x7 - WGDEVICE_A_PEERS = 0x8 - WGPEER_F_REMOVE_ME = 0x1 - WGPEER_F_REPLACE_ALLOWEDIPS = 0x2 - WGPEER_F_UPDATE_ONLY = 0x4 - WGPEER_A_UNSPEC = 0x0 - WGPEER_A_PUBLIC_KEY = 0x1 - WGPEER_A_PRESHARED_KEY = 0x2 - WGPEER_A_FLAGS = 0x3 - WGPEER_A_ENDPOINT = 0x4 - WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5 - WGPEER_A_LAST_HANDSHAKE_TIME = 0x6 - WGPEER_A_RX_BYTES = 0x7 - WGPEER_A_TX_BYTES = 0x8 - WGPEER_A_ALLOWEDIPS = 0x9 - WGPEER_A_PROTOCOL_VERSION = 0xa - WGALLOWEDIP_A_UNSPEC = 0x0 - WGALLOWEDIP_A_FAMILY = 0x1 - WGALLOWEDIP_A_IPADDR = 0x2 - WGALLOWEDIP_A_CIDR_MASK = 0x3 -) - -const ( - NL_ATTR_TYPE_INVALID = 0x0 - NL_ATTR_TYPE_FLAG = 0x1 - NL_ATTR_TYPE_U8 = 0x2 - NL_ATTR_TYPE_U16 = 0x3 - NL_ATTR_TYPE_U32 = 0x4 - NL_ATTR_TYPE_U64 = 0x5 - NL_ATTR_TYPE_S8 = 0x6 - NL_ATTR_TYPE_S16 = 0x7 - NL_ATTR_TYPE_S32 = 0x8 - NL_ATTR_TYPE_S64 = 0x9 - NL_ATTR_TYPE_BINARY = 0xa - NL_ATTR_TYPE_STRING = 0xb - NL_ATTR_TYPE_NUL_STRING = 0xc - NL_ATTR_TYPE_NESTED = 0xd - NL_ATTR_TYPE_NESTED_ARRAY = 0xe - NL_ATTR_TYPE_BITFIELD32 = 0xf - - NL_POLICY_TYPE_ATTR_UNSPEC = 0x0 - NL_POLICY_TYPE_ATTR_TYPE = 0x1 - NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 0x2 - NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 0x3 - NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 0x4 - NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 0x5 - NL_POLICY_TYPE_ATTR_MIN_LENGTH = 0x6 - NL_POLICY_TYPE_ATTR_MAX_LENGTH = 0x7 - NL_POLICY_TYPE_ATTR_POLICY_IDX = 0x8 - NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 0x9 - NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa - NL_POLICY_TYPE_ATTR_PAD = 0xb - NL_POLICY_TYPE_ATTR_MASK = 0xc - NL_POLICY_TYPE_ATTR_MAX = 0xc -) - -type CANBitTiming struct { - Bitrate uint32 - Sample_point uint32 - Tq uint32 - Prop_seg uint32 - Phase_seg1 uint32 - Phase_seg2 uint32 - Sjw uint32 - Brp uint32 -} - -type CANBitTimingConst struct { - Name [16]uint8 - Tseg1_min uint32 - Tseg1_max uint32 - Tseg2_min uint32 - Tseg2_max uint32 - Sjw_max uint32 - Brp_min uint32 - Brp_max uint32 - Brp_inc uint32 -} - -type CANClock struct { - Freq uint32 -} - -type CANBusErrorCounters struct { - Txerr uint16 - Rxerr uint16 -} - -type CANCtrlMode struct { - Mask uint32 - Flags uint32 -} - -type CANDeviceStats struct { - Bus_error uint32 - Error_warning uint32 - Error_passive uint32 - Bus_off uint32 - Arbitration_lost uint32 - Restarts uint32 -} - -const ( - CAN_STATE_ERROR_ACTIVE = 0x0 - CAN_STATE_ERROR_WARNING = 0x1 - CAN_STATE_ERROR_PASSIVE = 0x2 - CAN_STATE_BUS_OFF = 0x3 - CAN_STATE_STOPPED = 0x4 - CAN_STATE_SLEEPING = 0x5 - CAN_STATE_MAX = 0x6 -) - -const ( - IFLA_CAN_UNSPEC = 0x0 - IFLA_CAN_BITTIMING = 0x1 - IFLA_CAN_BITTIMING_CONST = 0x2 - IFLA_CAN_CLOCK = 0x3 - IFLA_CAN_STATE = 0x4 - IFLA_CAN_CTRLMODE = 0x5 - IFLA_CAN_RESTART_MS = 0x6 - IFLA_CAN_RESTART = 0x7 - IFLA_CAN_BERR_COUNTER = 0x8 - IFLA_CAN_DATA_BITTIMING = 0x9 - IFLA_CAN_DATA_BITTIMING_CONST = 0xa - IFLA_CAN_TERMINATION = 0xb - IFLA_CAN_TERMINATION_CONST = 0xc - IFLA_CAN_BITRATE_CONST = 0xd - IFLA_CAN_DATA_BITRATE_CONST = 0xe - IFLA_CAN_BITRATE_MAX = 0xf -) - -type KCMAttach struct { - Fd int32 - Bpf_fd int32 -} - -type KCMUnattach struct { - Fd int32 -} - -type KCMClone struct { - Fd int32 -} - -const ( - NL80211_AC_BE = 0x2 - NL80211_AC_BK = 0x3 - NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0x0 - NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 - NL80211_AC_VI = 0x1 - NL80211_AC_VO = 0x0 - NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 - NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 - NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 - NL80211_ATTR_4ADDR = 0x53 - NL80211_ATTR_ACK = 0x5c - NL80211_ATTR_ACK_SIGNAL = 0x107 - NL80211_ATTR_ACL_POLICY = 0xa5 - NL80211_ATTR_ADMITTED_TIME = 0xd4 - NL80211_ATTR_AIRTIME_WEIGHT = 0x112 - NL80211_ATTR_AKM_SUITES = 0x4c - NL80211_ATTR_AP_ISOLATE = 0x60 - NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 - NL80211_ATTR_AUTH_DATA = 0x9c - NL80211_ATTR_AUTH_TYPE = 0x35 - NL80211_ATTR_BANDS = 0xef - NL80211_ATTR_BEACON_HEAD = 0xe - NL80211_ATTR_BEACON_INTERVAL = 0xc - NL80211_ATTR_BEACON_TAIL = 0xf - NL80211_ATTR_BG_SCAN_PERIOD = 0x98 - NL80211_ATTR_BSS_BASIC_RATES = 0x24 - NL80211_ATTR_BSS = 0x2f - NL80211_ATTR_BSS_CTS_PROT = 0x1c - NL80211_ATTR_BSS_HT_OPMODE = 0x6d - NL80211_ATTR_BSSID = 0xf5 - NL80211_ATTR_BSS_SELECT = 0xe3 - NL80211_ATTR_BSS_SHORT_PREAMBLE = 0x1d - NL80211_ATTR_BSS_SHORT_SLOT_TIME = 0x1e - NL80211_ATTR_CENTER_FREQ1 = 0xa0 - NL80211_ATTR_CENTER_FREQ1_OFFSET = 0x123 - NL80211_ATTR_CENTER_FREQ2 = 0xa1 - NL80211_ATTR_CHANNEL_WIDTH = 0x9f - NL80211_ATTR_CH_SWITCH_BLOCK_TX = 0xb8 - NL80211_ATTR_CH_SWITCH_COUNT = 0xb7 - NL80211_ATTR_CIPHER_SUITE_GROUP = 0x4a - NL80211_ATTR_CIPHER_SUITES = 0x39 - NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 0x49 - NL80211_ATTR_CNTDWN_OFFS_BEACON = 0xba - NL80211_ATTR_CNTDWN_OFFS_PRESP = 0xbb - NL80211_ATTR_COALESCE_RULE = 0xb6 - NL80211_ATTR_COALESCE_RULE_CONDITION = 0x2 - NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 - NL80211_ATTR_COALESCE_RULE_MAX = 0x3 - NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 - NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 - NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f - NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 - NL80211_ATTR_CONN_FAILED_REASON = 0x9b - NL80211_ATTR_CONTROL_PORT = 0x44 - NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 - NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 0x67 - NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 0x11e - NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 0x108 - NL80211_ATTR_COOKIE = 0x58 - NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 0x8 - NL80211_ATTR_CQM = 0x5e - NL80211_ATTR_CQM_MAX = 0x9 - NL80211_ATTR_CQM_PKT_LOSS_EVENT = 0x4 - NL80211_ATTR_CQM_RSSI_HYST = 0x2 - NL80211_ATTR_CQM_RSSI_LEVEL = 0x9 - NL80211_ATTR_CQM_RSSI_THOLD = 0x1 - NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 0x3 - NL80211_ATTR_CQM_TXE_INTVL = 0x7 - NL80211_ATTR_CQM_TXE_PKTS = 0x6 - NL80211_ATTR_CQM_TXE_RATE = 0x5 - NL80211_ATTR_CRIT_PROT_ID = 0xb3 - NL80211_ATTR_CSA_C_OFF_BEACON = 0xba - NL80211_ATTR_CSA_C_OFF_PRESP = 0xbb - NL80211_ATTR_CSA_C_OFFSETS_TX = 0xcd - NL80211_ATTR_CSA_IES = 0xb9 - NL80211_ATTR_DEVICE_AP_SME = 0x8d - NL80211_ATTR_DFS_CAC_TIME = 0x7 - NL80211_ATTR_DFS_REGION = 0x92 - NL80211_ATTR_DISABLE_EHT = 0x137 - NL80211_ATTR_DISABLE_HE = 0x12d - NL80211_ATTR_DISABLE_HT = 0x93 - NL80211_ATTR_DISABLE_VHT = 0xaf - NL80211_ATTR_DISCONNECTED_BY_AP = 0x47 - NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e - NL80211_ATTR_DTIM_PERIOD = 0xd - NL80211_ATTR_DURATION = 0x57 - NL80211_ATTR_EHT_CAPABILITY = 0x136 - NL80211_ATTR_EML_CAPABILITY = 0x13d - NL80211_ATTR_EXT_CAPA = 0xa9 - NL80211_ATTR_EXT_CAPA_MASK = 0xaa - NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 - NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 0x105 - NL80211_ATTR_EXT_FEATURES = 0xd9 - NL80211_ATTR_FEATURE_FLAGS = 0x8f - NL80211_ATTR_FILS_CACHE_ID = 0xfd - NL80211_ATTR_FILS_DISCOVERY = 0x126 - NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 0xfb - NL80211_ATTR_FILS_ERP_REALM = 0xfa - NL80211_ATTR_FILS_ERP_RRK = 0xfc - NL80211_ATTR_FILS_ERP_USERNAME = 0xf9 - NL80211_ATTR_FILS_KEK = 0xf2 - NL80211_ATTR_FILS_NONCES = 0xf3 - NL80211_ATTR_FRAME = 0x33 - NL80211_ATTR_FRAME_MATCH = 0x5b - NL80211_ATTR_FRAME_TYPE = 0x65 - NL80211_ATTR_FREQ_AFTER = 0x3b - NL80211_ATTR_FREQ_BEFORE = 0x3a - NL80211_ATTR_FREQ_FIXED = 0x3c - NL80211_ATTR_FREQ_RANGE_END = 0x3 - NL80211_ATTR_FREQ_RANGE_MAX_BW = 0x4 - NL80211_ATTR_FREQ_RANGE_START = 0x2 - NL80211_ATTR_FTM_RESPONDER = 0x10e - NL80211_ATTR_FTM_RESPONDER_STATS = 0x10f - NL80211_ATTR_GENERATION = 0x2e - NL80211_ATTR_HANDLE_DFS = 0xbf - NL80211_ATTR_HE_6GHZ_CAPABILITY = 0x125 - NL80211_ATTR_HE_BSS_COLOR = 0x11b - NL80211_ATTR_HE_CAPABILITY = 0x10d - NL80211_ATTR_HE_OBSS_PD = 0x117 - NL80211_ATTR_HIDDEN_SSID = 0x7e - NL80211_ATTR_HT_CAPABILITY = 0x1f - NL80211_ATTR_HT_CAPABILITY_MASK = 0x94 - NL80211_ATTR_IE_ASSOC_RESP = 0x80 - NL80211_ATTR_IE = 0x2a - NL80211_ATTR_IE_PROBE_RESP = 0x7f - NL80211_ATTR_IE_RIC = 0xb2 - NL80211_ATTR_IFACE_SOCKET_OWNER = 0xcc - NL80211_ATTR_IFINDEX = 0x3 - NL80211_ATTR_IFNAME = 0x4 - NL80211_ATTR_IFTYPE_AKM_SUITES = 0x11c - NL80211_ATTR_IFTYPE = 0x5 - NL80211_ATTR_IFTYPE_EXT_CAPA = 0xe6 - NL80211_ATTR_INACTIVITY_TIMEOUT = 0x96 - NL80211_ATTR_INTERFACE_COMBINATIONS = 0x78 - NL80211_ATTR_KEY_CIPHER = 0x9 - NL80211_ATTR_KEY = 0x50 - NL80211_ATTR_KEY_DATA = 0x7 - NL80211_ATTR_KEY_DEFAULT = 0xb - NL80211_ATTR_KEY_DEFAULT_MGMT = 0x28 - NL80211_ATTR_KEY_DEFAULT_TYPES = 0x6e - NL80211_ATTR_KEY_IDX = 0x8 - NL80211_ATTR_KEYS = 0x51 - NL80211_ATTR_KEY_SEQ = 0xa - NL80211_ATTR_KEY_TYPE = 0x37 - NL80211_ATTR_LOCAL_MESH_POWER_MODE = 0xa4 - NL80211_ATTR_LOCAL_STATE_CHANGE = 0x5f - NL80211_ATTR_MAC_ACL_MAX = 0xa7 - NL80211_ATTR_MAC_ADDRS = 0xa6 - NL80211_ATTR_MAC = 0x6 - NL80211_ATTR_MAC_HINT = 0xc8 - NL80211_ATTR_MAC_MASK = 0xd7 - NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x141 - NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 - NL80211_ATTR_MAX_CSA_COUNTERS = 0xce - NL80211_ATTR_MAX_MATCH_SETS = 0x85 - NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c - NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 - NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b - NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde - NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 0x7b - NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 0x6f - NL80211_ATTR_MAX_SCAN_IE_LEN = 0x38 - NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf - NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 - NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c - NL80211_ATTR_MBSSID_CONFIG = 0x132 - NL80211_ATTR_MBSSID_ELEMS = 0x133 - NL80211_ATTR_MCAST_RATE = 0x6b - NL80211_ATTR_MDID = 0xb1 - NL80211_ATTR_MEASUREMENT_DURATION = 0xeb - NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 0xec - NL80211_ATTR_MESH_CONFIG = 0x23 - NL80211_ATTR_MESH_ID = 0x18 - NL80211_ATTR_MESH_PEER_AID = 0xed - NL80211_ATTR_MESH_SETUP = 0x70 - NL80211_ATTR_MGMT_SUBTYPE = 0x29 - NL80211_ATTR_MLD_ADDR = 0x13a - NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e - NL80211_ATTR_MLO_LINK_ID = 0x139 - NL80211_ATTR_MLO_LINKS = 0x138 - NL80211_ATTR_MLO_SUPPORT = 0x13b - NL80211_ATTR_MNTR_FLAGS = 0x17 - NL80211_ATTR_MPATH_INFO = 0x1b - NL80211_ATTR_MPATH_NEXT_HOP = 0x1a - NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 0xf4 - NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 0xe8 - NL80211_ATTR_MU_MIMO_GROUP_DATA = 0xe7 - NL80211_ATTR_NAN_FUNC = 0xf0 - NL80211_ATTR_NAN_MASTER_PREF = 0xee - NL80211_ATTR_NAN_MATCH = 0xf1 - NL80211_ATTR_NETNS_FD = 0xdb - NL80211_ATTR_NOACK_MAP = 0x95 - NL80211_ATTR_NSS = 0x106 - NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e - NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c - NL80211_ATTR_OPER_CLASS = 0xd6 - NL80211_ATTR_OPMODE_NOTIF = 0xc2 - NL80211_ATTR_P2P_CTWINDOW = 0xa2 - NL80211_ATTR_P2P_OPPPS = 0xa3 - NL80211_ATTR_PAD = 0xe5 - NL80211_ATTR_PBSS = 0xe2 - NL80211_ATTR_PEER_AID = 0xb5 - NL80211_ATTR_PEER_MEASUREMENTS = 0x111 - NL80211_ATTR_PID = 0x52 - NL80211_ATTR_PMK = 0xfe - NL80211_ATTR_PMKID = 0x55 - NL80211_ATTR_PMK_LIFETIME = 0x11f - NL80211_ATTR_PMKR0_NAME = 0x102 - NL80211_ATTR_PMK_REAUTH_THRESHOLD = 0x120 - NL80211_ATTR_PMKSA_CANDIDATE = 0x86 - NL80211_ATTR_PORT_AUTHORIZED = 0x103 - NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5 - NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6 - NL80211_ATTR_PREV_BSSID = 0x4f - NL80211_ATTR_PRIVACY = 0x46 - NL80211_ATTR_PROBE_RESP = 0x91 - NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90 - NL80211_ATTR_PROTOCOL_FEATURES = 0xad - NL80211_ATTR_PS_STATE = 0x5d - NL80211_ATTR_QOS_MAP = 0xc7 - NL80211_ATTR_RADAR_BACKGROUND = 0x134 - NL80211_ATTR_RADAR_EVENT = 0xa8 - NL80211_ATTR_REASON_CODE = 0x36 - NL80211_ATTR_RECEIVE_MULTICAST = 0x121 - NL80211_ATTR_RECONNECT_REQUESTED = 0x12b - NL80211_ATTR_REG_ALPHA2 = 0x21 - NL80211_ATTR_REG_INDOOR = 0xdd - NL80211_ATTR_REG_INITIATOR = 0x30 - NL80211_ATTR_REG_RULE_FLAGS = 0x1 - NL80211_ATTR_REG_RULES = 0x22 - NL80211_ATTR_REG_TYPE = 0x31 - NL80211_ATTR_REKEY_DATA = 0x7a - NL80211_ATTR_REQ_IE = 0x4d - NL80211_ATTR_RESP_IE = 0x4e - NL80211_ATTR_ROAM_SUPPORT = 0x83 - NL80211_ATTR_RX_FRAME_TYPES = 0x64 - NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 - NL80211_ATTR_RXMGMT_FLAGS = 0xbc - NL80211_ATTR_RX_SIGNAL_DBM = 0x97 - NL80211_ATTR_S1G_CAPABILITY = 0x128 - NL80211_ATTR_S1G_CAPABILITY_MASK = 0x129 - NL80211_ATTR_SAE_DATA = 0x9c - NL80211_ATTR_SAE_PASSWORD = 0x115 - NL80211_ATTR_SAE_PWE = 0x12a - NL80211_ATTR_SAR_SPEC = 0x12c - NL80211_ATTR_SCAN_FLAGS = 0x9e - NL80211_ATTR_SCAN_FREQ_KHZ = 0x124 - NL80211_ATTR_SCAN_FREQUENCIES = 0x2c - NL80211_ATTR_SCAN_GENERATION = 0x2e - NL80211_ATTR_SCAN_SSIDS = 0x2d - NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 0xea - NL80211_ATTR_SCAN_START_TIME_TSF = 0xe9 - NL80211_ATTR_SCAN_SUPP_RATES = 0x7d - NL80211_ATTR_SCHED_SCAN_DELAY = 0xdc - NL80211_ATTR_SCHED_SCAN_INTERVAL = 0x77 - NL80211_ATTR_SCHED_SCAN_MATCH = 0x84 - NL80211_ATTR_SCHED_SCAN_MATCH_SSID = 0x1 - NL80211_ATTR_SCHED_SCAN_MAX_REQS = 0x100 - NL80211_ATTR_SCHED_SCAN_MULTI = 0xff - NL80211_ATTR_SCHED_SCAN_PLANS = 0xe1 - NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 0xf6 - NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 0xf7 - NL80211_ATTR_SMPS_MODE = 0xd5 - NL80211_ATTR_SOCKET_OWNER = 0xcc - NL80211_ATTR_SOFTWARE_IFTYPES = 0x79 - NL80211_ATTR_SPLIT_WIPHY_DUMP = 0xae - NL80211_ATTR_SSID = 0x34 - NL80211_ATTR_STA_AID = 0x10 - NL80211_ATTR_STA_CAPABILITY = 0xab - NL80211_ATTR_STA_EXT_CAPABILITY = 0xac - NL80211_ATTR_STA_FLAGS2 = 0x43 - NL80211_ATTR_STA_FLAGS = 0x11 - NL80211_ATTR_STA_INFO = 0x15 - NL80211_ATTR_STA_LISTEN_INTERVAL = 0x12 - NL80211_ATTR_STA_PLINK_ACTION = 0x19 - NL80211_ATTR_STA_PLINK_STATE = 0x74 - NL80211_ATTR_STA_SUPPORTED_CHANNELS = 0xbd - NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 0xbe - NL80211_ATTR_STA_SUPPORTED_RATES = 0x13 - NL80211_ATTR_STA_SUPPORT_P2P_PS = 0xe4 - NL80211_ATTR_STATUS_CODE = 0x48 - NL80211_ATTR_STA_TX_POWER = 0x114 - NL80211_ATTR_STA_TX_POWER_SETTING = 0x113 - NL80211_ATTR_STA_VLAN = 0x14 - NL80211_ATTR_STA_WME = 0x81 - NL80211_ATTR_SUPPORT_10_MHZ = 0xc1 - NL80211_ATTR_SUPPORT_5_MHZ = 0xc0 - NL80211_ATTR_SUPPORT_AP_UAPSD = 0x82 - NL80211_ATTR_SUPPORTED_COMMANDS = 0x32 - NL80211_ATTR_SUPPORTED_IFTYPES = 0x20 - NL80211_ATTR_SUPPORT_IBSS_RSN = 0x68 - NL80211_ATTR_SUPPORT_MESH_AUTH = 0x73 - NL80211_ATTR_SURVEY_INFO = 0x54 - NL80211_ATTR_SURVEY_RADIO_STATS = 0xda - NL80211_ATTR_TD_BITMAP = 0x141 - NL80211_ATTR_TDLS_ACTION = 0x88 - NL80211_ATTR_TDLS_DIALOG_TOKEN = 0x89 - NL80211_ATTR_TDLS_EXTERNAL_SETUP = 0x8c - NL80211_ATTR_TDLS_INITIATOR = 0xcf - NL80211_ATTR_TDLS_OPERATION = 0x8a - NL80211_ATTR_TDLS_PEER_CAPABILITY = 0xcb - NL80211_ATTR_TDLS_SUPPORT = 0x8b - NL80211_ATTR_TESTDATA = 0x45 - NL80211_ATTR_TID_CONFIG = 0x11d - NL80211_ATTR_TIMED_OUT = 0x41 - NL80211_ATTR_TIMEOUT = 0x110 - NL80211_ATTR_TIMEOUT_REASON = 0xf8 - NL80211_ATTR_TSID = 0xd2 - NL80211_ATTR_TWT_RESPONDER = 0x116 - NL80211_ATTR_TX_FRAME_TYPES = 0x63 - NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f - NL80211_ATTR_TX_NO_CCK_RATE = 0x87 - NL80211_ATTR_TXQ_LIMIT = 0x10a - NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b - NL80211_ATTR_TXQ_QUANTUM = 0x10c - NL80211_ATTR_TXQ_STATS = 0x109 - NL80211_ATTR_TX_RATES = 0x5a - NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 0x127 - NL80211_ATTR_UNSPEC = 0x0 - NL80211_ATTR_USE_MFP = 0x42 - NL80211_ATTR_USER_PRIO = 0xd3 - NL80211_ATTR_USER_REG_HINT_TYPE = 0x9a - NL80211_ATTR_USE_RRM = 0xd0 - NL80211_ATTR_VENDOR_DATA = 0xc5 - NL80211_ATTR_VENDOR_EVENTS = 0xc6 - NL80211_ATTR_VENDOR_ID = 0xc3 - NL80211_ATTR_VENDOR_SUBCMD = 0xc4 - NL80211_ATTR_VHT_CAPABILITY = 0x9d - NL80211_ATTR_VHT_CAPABILITY_MASK = 0xb0 - NL80211_ATTR_VLAN_ID = 0x11a - NL80211_ATTR_WANT_1X_4WAY_HS = 0x101 - NL80211_ATTR_WDEV = 0x99 - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 0x72 - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 0x71 - NL80211_ATTR_WIPHY_ANTENNA_RX = 0x6a - NL80211_ATTR_WIPHY_ANTENNA_TX = 0x69 - NL80211_ATTR_WIPHY_BANDS = 0x16 - NL80211_ATTR_WIPHY_CHANNEL_TYPE = 0x27 - NL80211_ATTR_WIPHY = 0x1 - NL80211_ATTR_WIPHY_COVERAGE_CLASS = 0x59 - NL80211_ATTR_WIPHY_DYN_ACK = 0xd1 - NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 0x119 - NL80211_ATTR_WIPHY_EDMG_CHANNELS = 0x118 - NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 0x3f - NL80211_ATTR_WIPHY_FREQ = 0x26 - NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9 - NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122 - NL80211_ATTR_WIPHY_NAME = 0x2 - NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e - NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d - NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40 - NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 0xd8 - NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 0x62 - NL80211_ATTR_WIPHY_TX_POWER_SETTING = 0x61 - NL80211_ATTR_WIPHY_TXQ_PARAMS = 0x25 - NL80211_ATTR_WOWLAN_TRIGGERS = 0x75 - NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 0x76 - NL80211_ATTR_WPA_VERSIONS = 0x4b - NL80211_AUTHTYPE_AUTOMATIC = 0x8 - NL80211_AUTHTYPE_FILS_PK = 0x7 - NL80211_AUTHTYPE_FILS_SK = 0x5 - NL80211_AUTHTYPE_FILS_SK_PFS = 0x6 - NL80211_AUTHTYPE_FT = 0x2 - NL80211_AUTHTYPE_MAX = 0x7 - NL80211_AUTHTYPE_NETWORK_EAP = 0x3 - NL80211_AUTHTYPE_OPEN_SYSTEM = 0x0 - NL80211_AUTHTYPE_SAE = 0x4 - NL80211_AUTHTYPE_SHARED_KEY = 0x1 - NL80211_BAND_2GHZ = 0x0 - NL80211_BAND_5GHZ = 0x1 - NL80211_BAND_60GHZ = 0x2 - NL80211_BAND_6GHZ = 0x3 - NL80211_BAND_ATTR_EDMG_BW_CONFIG = 0xb - NL80211_BAND_ATTR_EDMG_CHANNELS = 0xa - NL80211_BAND_ATTR_FREQS = 0x1 - NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 0x6 - NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 0x5 - NL80211_BAND_ATTR_HT_CAPA = 0x4 - NL80211_BAND_ATTR_HT_MCS_SET = 0x3 - NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 - NL80211_BAND_ATTR_MAX = 0xb - NL80211_BAND_ATTR_RATES = 0x2 - NL80211_BAND_ATTR_VHT_CAPA = 0x8 - NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb - NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 0x3 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 - NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 - NL80211_BAND_IFTYPE_ATTR_MAX = 0xb - NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 - NL80211_BAND_LC = 0x5 - NL80211_BAND_S1GHZ = 0x4 - NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 - NL80211_BITRATE_ATTR_MAX = 0x2 - NL80211_BITRATE_ATTR_RATE = 0x1 - NL80211_BSS_BEACON_IES = 0xb - NL80211_BSS_BEACON_INTERVAL = 0x4 - NL80211_BSS_BEACON_TSF = 0xd - NL80211_BSS_BSSID = 0x1 - NL80211_BSS_CAPABILITY = 0x5 - NL80211_BSS_CHAIN_SIGNAL = 0x13 - NL80211_BSS_CHAN_WIDTH_10 = 0x1 - NL80211_BSS_CHAN_WIDTH_1 = 0x3 - NL80211_BSS_CHAN_WIDTH_20 = 0x0 - NL80211_BSS_CHAN_WIDTH_2 = 0x4 - NL80211_BSS_CHAN_WIDTH_5 = 0x2 - NL80211_BSS_CHAN_WIDTH = 0xc - NL80211_BSS_FREQUENCY = 0x2 - NL80211_BSS_FREQUENCY_OFFSET = 0x14 - NL80211_BSS_INFORMATION_ELEMENTS = 0x6 - NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf - NL80211_BSS_MAX = 0x16 - NL80211_BSS_MLD_ADDR = 0x16 - NL80211_BSS_MLO_LINK_ID = 0x15 - NL80211_BSS_PAD = 0x10 - NL80211_BSS_PARENT_BSSID = 0x12 - NL80211_BSS_PARENT_TSF = 0x11 - NL80211_BSS_PRESP_DATA = 0xe - NL80211_BSS_SEEN_MS_AGO = 0xa - NL80211_BSS_SELECT_ATTR_BAND_PREF = 0x2 - NL80211_BSS_SELECT_ATTR_MAX = 0x3 - NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 0x3 - NL80211_BSS_SELECT_ATTR_RSSI = 0x1 - NL80211_BSS_SIGNAL_MBM = 0x7 - NL80211_BSS_SIGNAL_UNSPEC = 0x8 - NL80211_BSS_STATUS_ASSOCIATED = 0x1 - NL80211_BSS_STATUS_AUTHENTICATED = 0x0 - NL80211_BSS_STATUS = 0x9 - NL80211_BSS_STATUS_IBSS_JOINED = 0x2 - NL80211_BSS_TSF = 0x3 - NL80211_CHAN_HT20 = 0x1 - NL80211_CHAN_HT40MINUS = 0x2 - NL80211_CHAN_HT40PLUS = 0x3 - NL80211_CHAN_NO_HT = 0x0 - NL80211_CHAN_WIDTH_10 = 0x7 - NL80211_CHAN_WIDTH_160 = 0x5 - NL80211_CHAN_WIDTH_16 = 0xc - NL80211_CHAN_WIDTH_1 = 0x8 - NL80211_CHAN_WIDTH_20 = 0x1 - NL80211_CHAN_WIDTH_20_NOHT = 0x0 - NL80211_CHAN_WIDTH_2 = 0x9 - NL80211_CHAN_WIDTH_320 = 0xd - NL80211_CHAN_WIDTH_40 = 0x2 - NL80211_CHAN_WIDTH_4 = 0xa - NL80211_CHAN_WIDTH_5 = 0x6 - NL80211_CHAN_WIDTH_80 = 0x3 - NL80211_CHAN_WIDTH_80P80 = 0x4 - NL80211_CHAN_WIDTH_8 = 0xb - NL80211_CMD_ABORT_SCAN = 0x72 - NL80211_CMD_ACTION = 0x3b - NL80211_CMD_ACTION_TX_STATUS = 0x3c - NL80211_CMD_ADD_LINK = 0x94 - NL80211_CMD_ADD_LINK_STA = 0x96 - NL80211_CMD_ADD_NAN_FUNCTION = 0x75 - NL80211_CMD_ADD_TX_TS = 0x69 - NL80211_CMD_ASSOC_COMEBACK = 0x93 - NL80211_CMD_ASSOCIATE = 0x26 - NL80211_CMD_AUTHENTICATE = 0x25 - NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 - NL80211_CMD_CHANGE_NAN_CONFIG = 0x77 - NL80211_CMD_CHANNEL_SWITCH = 0x66 - NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 - NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e - NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 - NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 - NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e - NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f - NL80211_CMD_CONNECT = 0x2e - NL80211_CMD_CONN_FAILED = 0x5b - NL80211_CMD_CONTROL_PORT_FRAME = 0x81 - NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 0x8b - NL80211_CMD_CRIT_PROTOCOL_START = 0x62 - NL80211_CMD_CRIT_PROTOCOL_STOP = 0x63 - NL80211_CMD_DEAUTHENTICATE = 0x27 - NL80211_CMD_DEL_BEACON = 0x10 - NL80211_CMD_DEL_INTERFACE = 0x8 - NL80211_CMD_DEL_KEY = 0xc - NL80211_CMD_DEL_MPATH = 0x18 - NL80211_CMD_DEL_NAN_FUNCTION = 0x76 - NL80211_CMD_DEL_PMK = 0x7c - NL80211_CMD_DEL_PMKSA = 0x35 - NL80211_CMD_DEL_STATION = 0x14 - NL80211_CMD_DEL_TX_TS = 0x6a - NL80211_CMD_DEL_WIPHY = 0x4 - NL80211_CMD_DISASSOCIATE = 0x28 - NL80211_CMD_DISCONNECT = 0x30 - NL80211_CMD_EXTERNAL_AUTH = 0x7f - NL80211_CMD_FLUSH_PMKSA = 0x36 - NL80211_CMD_FRAME = 0x3b - NL80211_CMD_FRAME_TX_STATUS = 0x3c - NL80211_CMD_FRAME_WAIT_CANCEL = 0x43 - NL80211_CMD_FT_EVENT = 0x61 - NL80211_CMD_GET_BEACON = 0xd - NL80211_CMD_GET_COALESCE = 0x64 - NL80211_CMD_GET_FTM_RESPONDER_STATS = 0x82 - NL80211_CMD_GET_INTERFACE = 0x5 - NL80211_CMD_GET_KEY = 0x9 - NL80211_CMD_GET_MESH_CONFIG = 0x1c - NL80211_CMD_GET_MESH_PARAMS = 0x1c - NL80211_CMD_GET_MPATH = 0x15 - NL80211_CMD_GET_MPP = 0x6b - NL80211_CMD_GET_POWER_SAVE = 0x3e - NL80211_CMD_GET_PROTOCOL_FEATURES = 0x5f - NL80211_CMD_GET_REG = 0x1f - NL80211_CMD_GET_SCAN = 0x20 - NL80211_CMD_GET_STATION = 0x11 - NL80211_CMD_GET_SURVEY = 0x32 - NL80211_CMD_GET_WIPHY = 0x1 - NL80211_CMD_GET_WOWLAN = 0x49 - NL80211_CMD_JOIN_IBSS = 0x2b - NL80211_CMD_JOIN_MESH = 0x44 - NL80211_CMD_JOIN_OCB = 0x6c - NL80211_CMD_LEAVE_IBSS = 0x2c - NL80211_CMD_LEAVE_MESH = 0x45 - NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_MAX = 0x98 - NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 - NL80211_CMD_MODIFY_LINK_STA = 0x97 - NL80211_CMD_NAN_MATCH = 0x78 - NL80211_CMD_NEW_BEACON = 0xf - NL80211_CMD_NEW_INTERFACE = 0x7 - NL80211_CMD_NEW_KEY = 0xb - NL80211_CMD_NEW_MPATH = 0x17 - NL80211_CMD_NEW_PEER_CANDIDATE = 0x48 - NL80211_CMD_NEW_SCAN_RESULTS = 0x22 - NL80211_CMD_NEW_STATION = 0x13 - NL80211_CMD_NEW_SURVEY_RESULTS = 0x33 - NL80211_CMD_NEW_WIPHY = 0x3 - NL80211_CMD_NOTIFY_CQM = 0x40 - NL80211_CMD_NOTIFY_RADAR = 0x86 - NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d - NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 - NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 - NL80211_CMD_PEER_MEASUREMENT_START = 0x83 - NL80211_CMD_PMKSA_CANDIDATE = 0x50 - NL80211_CMD_PORT_AUTHORIZED = 0x7d - NL80211_CMD_PROBE_CLIENT = 0x54 - NL80211_CMD_PROBE_MESH_LINK = 0x88 - NL80211_CMD_RADAR_DETECT = 0x5e - NL80211_CMD_REG_BEACON_HINT = 0x2a - NL80211_CMD_REG_CHANGE = 0x24 - NL80211_CMD_REGISTER_ACTION = 0x3a - NL80211_CMD_REGISTER_BEACONS = 0x55 - NL80211_CMD_REGISTER_FRAME = 0x3a - NL80211_CMD_RELOAD_REGDB = 0x7e - NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 - NL80211_CMD_REMOVE_LINK = 0x95 - NL80211_CMD_REMOVE_LINK_STA = 0x98 - NL80211_CMD_REQ_SET_REG = 0x1b - NL80211_CMD_ROAM = 0x2f - NL80211_CMD_SCAN_ABORTED = 0x23 - NL80211_CMD_SCHED_SCAN_RESULTS = 0x4d - NL80211_CMD_SCHED_SCAN_STOPPED = 0x4e - NL80211_CMD_SET_BEACON = 0xe - NL80211_CMD_SET_BSS = 0x19 - NL80211_CMD_SET_CHANNEL = 0x41 - NL80211_CMD_SET_COALESCE = 0x65 - NL80211_CMD_SET_CQM = 0x3f - NL80211_CMD_SET_FILS_AAD = 0x92 - NL80211_CMD_SET_INTERFACE = 0x6 - NL80211_CMD_SET_KEY = 0xa - NL80211_CMD_SET_MAC_ACL = 0x5d - NL80211_CMD_SET_MCAST_RATE = 0x5c - NL80211_CMD_SET_MESH_CONFIG = 0x1d - NL80211_CMD_SET_MESH_PARAMS = 0x1d - NL80211_CMD_SET_MGMT_EXTRA_IE = 0x1e - NL80211_CMD_SET_MPATH = 0x16 - NL80211_CMD_SET_MULTICAST_TO_UNICAST = 0x79 - NL80211_CMD_SET_NOACK_MAP = 0x57 - NL80211_CMD_SET_PMK = 0x7b - NL80211_CMD_SET_PMKSA = 0x34 - NL80211_CMD_SET_POWER_SAVE = 0x3d - NL80211_CMD_SET_QOS_MAP = 0x68 - NL80211_CMD_SET_REG = 0x1a - NL80211_CMD_SET_REKEY_OFFLOAD = 0x4f - NL80211_CMD_SET_SAR_SPECS = 0x8c - NL80211_CMD_SET_STATION = 0x12 - NL80211_CMD_SET_TID_CONFIG = 0x89 - NL80211_CMD_SET_TX_BITRATE_MASK = 0x39 - NL80211_CMD_SET_WDS_PEER = 0x42 - NL80211_CMD_SET_WIPHY = 0x2 - NL80211_CMD_SET_WIPHY_NETNS = 0x31 - NL80211_CMD_SET_WOWLAN = 0x4a - NL80211_CMD_STA_OPMODE_CHANGED = 0x80 - NL80211_CMD_START_AP = 0xf - NL80211_CMD_START_NAN = 0x73 - NL80211_CMD_START_P2P_DEVICE = 0x59 - NL80211_CMD_START_SCHED_SCAN = 0x4b - NL80211_CMD_STOP_AP = 0x10 - NL80211_CMD_STOP_NAN = 0x74 - NL80211_CMD_STOP_P2P_DEVICE = 0x5a - NL80211_CMD_STOP_SCHED_SCAN = 0x4c - NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 0x70 - NL80211_CMD_TDLS_CHANNEL_SWITCH = 0x6f - NL80211_CMD_TDLS_MGMT = 0x52 - NL80211_CMD_TDLS_OPER = 0x51 - NL80211_CMD_TESTMODE = 0x2d - NL80211_CMD_TRIGGER_SCAN = 0x21 - NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 0x56 - NL80211_CMD_UNEXPECTED_FRAME = 0x53 - NL80211_CMD_UNPROT_BEACON = 0x8a - NL80211_CMD_UNPROT_DEAUTHENTICATE = 0x46 - NL80211_CMD_UNPROT_DISASSOCIATE = 0x47 - NL80211_CMD_UNSPEC = 0x0 - NL80211_CMD_UPDATE_CONNECT_PARAMS = 0x7a - NL80211_CMD_UPDATE_FT_IES = 0x60 - NL80211_CMD_UPDATE_OWE_INFO = 0x87 - NL80211_CMD_VENDOR = 0x67 - NL80211_CMD_WIPHY_REG_CHANGE = 0x71 - NL80211_COALESCE_CONDITION_MATCH = 0x0 - NL80211_COALESCE_CONDITION_NO_MATCH = 0x1 - NL80211_CONN_FAIL_BLOCKED_CLIENT = 0x1 - NL80211_CONN_FAIL_MAX_CLIENTS = 0x0 - NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 0x2 - NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 0x1 - NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0x0 - NL80211_CQM_TXE_MAX_INTVL = 0x708 - NL80211_CRIT_PROTO_APIPA = 0x3 - NL80211_CRIT_PROTO_DHCP = 0x1 - NL80211_CRIT_PROTO_EAPOL = 0x2 - NL80211_CRIT_PROTO_MAX_DURATION = 0x1388 - NL80211_CRIT_PROTO_UNSPEC = 0x0 - NL80211_DFS_AVAILABLE = 0x2 - NL80211_DFS_ETSI = 0x2 - NL80211_DFS_FCC = 0x1 - NL80211_DFS_JP = 0x3 - NL80211_DFS_UNAVAILABLE = 0x1 - NL80211_DFS_UNSET = 0x0 - NL80211_DFS_USABLE = 0x0 - NL80211_EDMG_BW_CONFIG_MAX = 0xf - NL80211_EDMG_BW_CONFIG_MIN = 0x4 - NL80211_EDMG_CHANNELS_MAX = 0x3c - NL80211_EDMG_CHANNELS_MIN = 0x1 - NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 - NL80211_EHT_MIN_CAPABILITY_LEN = 0xd - NL80211_EXTERNAL_AUTH_ABORT = 0x1 - NL80211_EXTERNAL_AUTH_START = 0x0 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 0x10 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 0xf - NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 0x12 - NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 0x1b - NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21 - NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22 - NL80211_EXT_FEATURE_AQL = 0x28 - NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e - NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29 - NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36 - NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 - NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 - NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 - NL80211_EXT_FEATURE_BSS_COLOR = 0x3a - NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 - NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f - NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 0x1a - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30 - NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd - NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b - NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c - NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 - NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 - NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 - NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b - NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 - NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 - NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe - NL80211_EXT_FEATURE_FILS_STA = 0x9 - NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 0x18 - NL80211_EXT_FEATURE_LOW_POWER_SCAN = 0x17 - NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 0x16 - NL80211_EXT_FEATURE_MFP_OPTIONAL = 0x15 - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 0xa - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 0xb - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 0x2d - NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 0x2 - NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 - NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 - NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d - NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b - NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 - NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c - NL80211_EXT_FEATURE_RRM = 0x1 - NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 - NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 - NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 0x2f - NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 0x1e - NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 0x1d - NL80211_EXT_FEATURE_SCAN_START_TIME = 0x3 - NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23 - NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc - NL80211_EXT_FEATURE_SECURE_LTF = 0x37 - NL80211_EXT_FEATURE_SECURE_RTT = 0x38 - NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5 - NL80211_EXT_FEATURE_STA_TX_PWR = 0x25 - NL80211_EXT_FEATURE_TXQS = 0x1c - NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35 - NL80211_EXT_FEATURE_VHT_IBSS = 0x0 - NL80211_EXT_FEATURE_VLAN_OFFLOAD = 0x27 - NL80211_FEATURE_ACKTO_ESTIMATION = 0x800000 - NL80211_FEATURE_ACTIVE_MONITOR = 0x20000 - NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 0x4000 - NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 0x40000 - NL80211_FEATURE_AP_SCAN = 0x100 - NL80211_FEATURE_CELL_BASE_REG_HINTS = 0x8 - NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 0x80000 - NL80211_FEATURE_DYNAMIC_SMPS = 0x2000000 - NL80211_FEATURE_FULL_AP_CLIENT_STATE = 0x8000 - NL80211_FEATURE_HT_IBSS = 0x2 - NL80211_FEATURE_INACTIVITY_TIMER = 0x4 - NL80211_FEATURE_LOW_PRIORITY_SCAN = 0x40 - NL80211_FEATURE_MAC_ON_CREATE = 0x8000000 - NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 0x80000000 - NL80211_FEATURE_NEED_OBSS_SCAN = 0x400 - NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 0x10 - NL80211_FEATURE_P2P_GO_CTWIN = 0x800 - NL80211_FEATURE_P2P_GO_OPPPS = 0x1000 - NL80211_FEATURE_QUIET = 0x200000 - NL80211_FEATURE_SAE = 0x20 - NL80211_FEATURE_SCAN_FLUSH = 0x80 - NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 0x20000000 - NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 0x40000000 - NL80211_FEATURE_SK_TX_STATUS = 0x1 - NL80211_FEATURE_STATIC_SMPS = 0x1000000 - NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 0x4000000 - NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 0x10000000 - NL80211_FEATURE_TX_POWER_INSERTION = 0x400000 - NL80211_FEATURE_USERSPACE_MPM = 0x10000 - NL80211_FEATURE_VIF_TXPOWER = 0x200 - NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 0x100000 - NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 0x2 - NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 0x1 - NL80211_FILS_DISCOVERY_ATTR_MAX = 0x3 - NL80211_FILS_DISCOVERY_ATTR_TMPL = 0x3 - NL80211_FILS_DISCOVERY_TMPL_MIN_LEN = 0x2a - NL80211_FREQUENCY_ATTR_16MHZ = 0x19 - NL80211_FREQUENCY_ATTR_1MHZ = 0x15 - NL80211_FREQUENCY_ATTR_2MHZ = 0x16 - NL80211_FREQUENCY_ATTR_4MHZ = 0x17 - NL80211_FREQUENCY_ATTR_8MHZ = 0x18 - NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd - NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7 - NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8 - NL80211_FREQUENCY_ATTR_DISABLED = 0x2 - NL80211_FREQUENCY_ATTR_FREQ = 0x1 - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_MAX = 0x1b - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc - NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 - NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a - NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb - NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b - NL80211_FREQUENCY_ATTR_NO_HE = 0x13 - NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 - NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa - NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3 - NL80211_FREQUENCY_ATTR_NO_IR = 0x3 - NL80211_FREQUENCY_ATTR_OFFSET = 0x14 - NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3 - NL80211_FREQUENCY_ATTR_RADAR = 0x5 - NL80211_FREQUENCY_ATTR_WMM = 0x12 - NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3 - NL80211_FTM_RESP_ATTR_ENABLED = 0x1 - NL80211_FTM_RESP_ATTR_LCI = 0x2 - NL80211_FTM_RESP_ATTR_MAX = 0x3 - NL80211_FTM_STATS_ASAP_NUM = 0x4 - NL80211_FTM_STATS_FAILED_NUM = 0x3 - NL80211_FTM_STATS_MAX = 0xa - NL80211_FTM_STATS_NON_ASAP_NUM = 0x5 - NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 0x9 - NL80211_FTM_STATS_PAD = 0xa - NL80211_FTM_STATS_PARTIAL_NUM = 0x2 - NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 0x8 - NL80211_FTM_STATS_SUCCESS_NUM = 0x1 - NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 0x6 - NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 0x7 - NL80211_GENL_NAME = "nl80211" - NL80211_HE_BSS_COLOR_ATTR_COLOR = 0x1 - NL80211_HE_BSS_COLOR_ATTR_DISABLED = 0x2 - NL80211_HE_BSS_COLOR_ATTR_MAX = 0x3 - NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 0x3 - NL80211_HE_MAX_CAPABILITY_LEN = 0x36 - NL80211_HE_MIN_CAPABILITY_LEN = 0x10 - NL80211_HE_NSS_MAX = 0x8 - NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 0x4 - NL80211_HE_OBSS_PD_ATTR_MAX = 0x6 - NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 0x2 - NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 0x1 - NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 0x3 - NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 0x5 - NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 0x6 - NL80211_HIDDEN_SSID_NOT_IN_USE = 0x0 - NL80211_HIDDEN_SSID_ZERO_CONTENTS = 0x2 - NL80211_HIDDEN_SSID_ZERO_LEN = 0x1 - NL80211_HT_CAPABILITY_LEN = 0x1a - NL80211_IFACE_COMB_BI_MIN_GCD = 0x7 - NL80211_IFACE_COMB_LIMITS = 0x1 - NL80211_IFACE_COMB_MAXNUM = 0x2 - NL80211_IFACE_COMB_NUM_CHANNELS = 0x4 - NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 0x6 - NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 0x5 - NL80211_IFACE_COMB_STA_AP_BI_MATCH = 0x3 - NL80211_IFACE_COMB_UNSPEC = 0x0 - NL80211_IFACE_LIMIT_MAX = 0x1 - NL80211_IFACE_LIMIT_TYPES = 0x2 - NL80211_IFACE_LIMIT_UNSPEC = 0x0 - NL80211_IFTYPE_ADHOC = 0x1 - NL80211_IFTYPE_AKM_ATTR_IFTYPES = 0x1 - NL80211_IFTYPE_AKM_ATTR_MAX = 0x2 - NL80211_IFTYPE_AKM_ATTR_SUITES = 0x2 - NL80211_IFTYPE_AP = 0x3 - NL80211_IFTYPE_AP_VLAN = 0x4 - NL80211_IFTYPE_MAX = 0xc - NL80211_IFTYPE_MESH_POINT = 0x7 - NL80211_IFTYPE_MONITOR = 0x6 - NL80211_IFTYPE_NAN = 0xc - NL80211_IFTYPE_OCB = 0xb - NL80211_IFTYPE_P2P_CLIENT = 0x8 - NL80211_IFTYPE_P2P_DEVICE = 0xa - NL80211_IFTYPE_P2P_GO = 0x9 - NL80211_IFTYPE_STATION = 0x2 - NL80211_IFTYPE_UNSPECIFIED = 0x0 - NL80211_IFTYPE_WDS = 0x5 - NL80211_KCK_EXT_LEN = 0x18 - NL80211_KCK_LEN = 0x10 - NL80211_KEK_EXT_LEN = 0x20 - NL80211_KEK_LEN = 0x10 - NL80211_KEY_CIPHER = 0x3 - NL80211_KEY_DATA = 0x1 - NL80211_KEY_DEFAULT_BEACON = 0xa - NL80211_KEY_DEFAULT = 0x5 - NL80211_KEY_DEFAULT_MGMT = 0x6 - NL80211_KEY_DEFAULT_TYPE_MULTICAST = 0x2 - NL80211_KEY_DEFAULT_TYPES = 0x8 - NL80211_KEY_DEFAULT_TYPE_UNICAST = 0x1 - NL80211_KEY_IDX = 0x2 - NL80211_KEY_MAX = 0xa - NL80211_KEY_MODE = 0x9 - NL80211_KEY_NO_TX = 0x1 - NL80211_KEY_RX_TX = 0x0 - NL80211_KEY_SEQ = 0x4 - NL80211_KEY_SET_TX = 0x2 - NL80211_KEY_TYPE = 0x7 - NL80211_KEYTYPE_GROUP = 0x0 - NL80211_KEYTYPE_PAIRWISE = 0x1 - NL80211_KEYTYPE_PEERKEY = 0x2 - NL80211_MAX_NR_AKM_SUITES = 0x2 - NL80211_MAX_NR_CIPHER_SUITES = 0x5 - NL80211_MAX_SUPP_HT_RATES = 0x4d - NL80211_MAX_SUPP_RATES = 0x20 - NL80211_MAX_SUPP_REG_RULES = 0x80 - NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 - NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 - NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 - NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 - NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 - NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 - NL80211_MESHCONF_ATTR_MAX = 0x1f - NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 - NL80211_MESHCONF_AWAKE_WINDOW = 0x1b - NL80211_MESHCONF_CONFIRM_TIMEOUT = 0x2 - NL80211_MESHCONF_CONNECTED_TO_AS = 0x1f - NL80211_MESHCONF_CONNECTED_TO_GATE = 0x1d - NL80211_MESHCONF_ELEMENT_TTL = 0xf - NL80211_MESHCONF_FORWARDING = 0x13 - NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 0x11 - NL80211_MESHCONF_HOLDING_TIMEOUT = 0x3 - NL80211_MESHCONF_HT_OPMODE = 0x16 - NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 0xb - NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 0x19 - NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 0x8 - NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 0xd - NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 0x17 - NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 0x12 - NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 0xc - NL80211_MESHCONF_HWMP_RANN_INTERVAL = 0x10 - NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 0x18 - NL80211_MESHCONF_HWMP_ROOTMODE = 0xe - NL80211_MESHCONF_MAX_PEER_LINKS = 0x4 - NL80211_MESHCONF_MAX_RETRIES = 0x5 - NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 0xa - NL80211_MESHCONF_NOLEARN = 0x1e - NL80211_MESHCONF_PATH_REFRESH_TIME = 0x9 - NL80211_MESHCONF_PLINK_TIMEOUT = 0x1c - NL80211_MESHCONF_POWER_MODE = 0x1a - NL80211_MESHCONF_RETRY_TIMEOUT = 0x1 - NL80211_MESHCONF_RSSI_THRESHOLD = 0x14 - NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 0x15 - NL80211_MESHCONF_TTL = 0x6 - NL80211_MESH_POWER_ACTIVE = 0x1 - NL80211_MESH_POWER_DEEP_SLEEP = 0x3 - NL80211_MESH_POWER_LIGHT_SLEEP = 0x2 - NL80211_MESH_POWER_MAX = 0x3 - NL80211_MESH_POWER_UNKNOWN = 0x0 - NL80211_MESH_SETUP_ATTR_MAX = 0x8 - NL80211_MESH_SETUP_AUTH_PROTOCOL = 0x8 - NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 0x2 - NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 0x1 - NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 0x6 - NL80211_MESH_SETUP_IE = 0x3 - NL80211_MESH_SETUP_USERSPACE_AMPE = 0x5 - NL80211_MESH_SETUP_USERSPACE_AUTH = 0x4 - NL80211_MESH_SETUP_USERSPACE_MPM = 0x7 - NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE = 0x3 - NL80211_MFP_NO = 0x0 - NL80211_MFP_OPTIONAL = 0x2 - NL80211_MFP_REQUIRED = 0x1 - NL80211_MIN_REMAIN_ON_CHANNEL_TIME = 0xa - NL80211_MNTR_FLAG_ACTIVE = 0x6 - NL80211_MNTR_FLAG_CONTROL = 0x3 - NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 - NL80211_MNTR_FLAG_FCSFAIL = 0x1 - NL80211_MNTR_FLAG_MAX = 0x6 - NL80211_MNTR_FLAG_OTHER_BSS = 0x4 - NL80211_MNTR_FLAG_PLCPFAIL = 0x2 - NL80211_MPATH_FLAG_ACTIVE = 0x1 - NL80211_MPATH_FLAG_FIXED = 0x8 - NL80211_MPATH_FLAG_RESOLVED = 0x10 - NL80211_MPATH_FLAG_RESOLVING = 0x2 - NL80211_MPATH_FLAG_SN_VALID = 0x4 - NL80211_MPATH_INFO_DISCOVERY_RETRIES = 0x7 - NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 0x6 - NL80211_MPATH_INFO_EXPTIME = 0x4 - NL80211_MPATH_INFO_FLAGS = 0x5 - NL80211_MPATH_INFO_FRAME_QLEN = 0x1 - NL80211_MPATH_INFO_HOP_COUNT = 0x8 - NL80211_MPATH_INFO_MAX = 0x9 - NL80211_MPATH_INFO_METRIC = 0x3 - NL80211_MPATH_INFO_PATH_CHANGE = 0x9 - NL80211_MPATH_INFO_SN = 0x2 - NL80211_MULTICAST_GROUP_CONFIG = "config" - NL80211_MULTICAST_GROUP_MLME = "mlme" - NL80211_MULTICAST_GROUP_NAN = "nan" - NL80211_MULTICAST_GROUP_REG = "regulatory" - NL80211_MULTICAST_GROUP_SCAN = "scan" - NL80211_MULTICAST_GROUP_TESTMODE = "testmode" - NL80211_MULTICAST_GROUP_VENDOR = "vendor" - NL80211_NAN_FUNC_ATTR_MAX = 0x10 - NL80211_NAN_FUNC_CLOSE_RANGE = 0x9 - NL80211_NAN_FUNC_FOLLOW_UP = 0x2 - NL80211_NAN_FUNC_FOLLOW_UP_DEST = 0x8 - NL80211_NAN_FUNC_FOLLOW_UP_ID = 0x6 - NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 0x7 - NL80211_NAN_FUNC_INSTANCE_ID = 0xf - NL80211_NAN_FUNC_MAX_TYPE = 0x2 - NL80211_NAN_FUNC_PUBLISH_BCAST = 0x4 - NL80211_NAN_FUNC_PUBLISH = 0x0 - NL80211_NAN_FUNC_PUBLISH_TYPE = 0x3 - NL80211_NAN_FUNC_RX_MATCH_FILTER = 0xd - NL80211_NAN_FUNC_SERVICE_ID = 0x2 - NL80211_NAN_FUNC_SERVICE_ID_LEN = 0x6 - NL80211_NAN_FUNC_SERVICE_INFO = 0xb - NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN = 0xff - NL80211_NAN_FUNC_SRF = 0xc - NL80211_NAN_FUNC_SRF_MAX_LEN = 0xff - NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 0x5 - NL80211_NAN_FUNC_SUBSCRIBE = 0x1 - NL80211_NAN_FUNC_TERM_REASON = 0x10 - NL80211_NAN_FUNC_TERM_REASON_ERROR = 0x2 - NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 0x1 - NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0x0 - NL80211_NAN_FUNC_TTL = 0xa - NL80211_NAN_FUNC_TX_MATCH_FILTER = 0xe - NL80211_NAN_FUNC_TYPE = 0x1 - NL80211_NAN_MATCH_ATTR_MAX = 0x2 - NL80211_NAN_MATCH_FUNC_LOCAL = 0x1 - NL80211_NAN_MATCH_FUNC_PEER = 0x2 - NL80211_NAN_SOLICITED_PUBLISH = 0x1 - NL80211_NAN_SRF_ATTR_MAX = 0x4 - NL80211_NAN_SRF_BF = 0x2 - NL80211_NAN_SRF_BF_IDX = 0x3 - NL80211_NAN_SRF_INCLUDE = 0x1 - NL80211_NAN_SRF_MAC_ADDRS = 0x4 - NL80211_NAN_UNSOLICITED_PUBLISH = 0x2 - NL80211_NUM_ACS = 0x4 - NL80211_P2P_PS_SUPPORTED = 0x1 - NL80211_P2P_PS_UNSUPPORTED = 0x0 - NL80211_PKTPAT_MASK = 0x1 - NL80211_PKTPAT_OFFSET = 0x3 - NL80211_PKTPAT_PATTERN = 0x2 - NL80211_PLINK_ACTION_BLOCK = 0x2 - NL80211_PLINK_ACTION_NO_ACTION = 0x0 - NL80211_PLINK_ACTION_OPEN = 0x1 - NL80211_PLINK_BLOCKED = 0x6 - NL80211_PLINK_CNF_RCVD = 0x3 - NL80211_PLINK_ESTAB = 0x4 - NL80211_PLINK_HOLDING = 0x5 - NL80211_PLINK_LISTEN = 0x0 - NL80211_PLINK_OPN_RCVD = 0x2 - NL80211_PLINK_OPN_SNT = 0x1 - NL80211_PMKSA_CANDIDATE_BSSID = 0x2 - NL80211_PMKSA_CANDIDATE_INDEX = 0x1 - NL80211_PMKSA_CANDIDATE_PREAUTH = 0x3 - NL80211_PMSR_ATTR_MAX = 0x5 - NL80211_PMSR_ATTR_MAX_PEERS = 0x1 - NL80211_PMSR_ATTR_PEERS = 0x5 - NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 0x3 - NL80211_PMSR_ATTR_REPORT_AP_TSF = 0x2 - NL80211_PMSR_ATTR_TYPE_CAPA = 0x4 - NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 0x1 - NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 0x6 - NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 0x7 - NL80211_PMSR_FTM_CAPA_ATTR_MAX = 0xa - NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 0x8 - NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 0x2 - NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 0xa - NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 0x5 - NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 0x4 - NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 0x3 - NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 0x9 - NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 0x7 - NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 0x5 - NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 0x1 - NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 0x6 - NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 0x4 - NL80211_PMSR_FTM_FAILURE_REJECTED = 0x2 - NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 - NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 - NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 - NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd - NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 - NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 - NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 - NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 0xc - NL80211_PMSR_FTM_REQ_ATTR_MAX = 0xd - NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 0xb - NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 0x3 - NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 0x7 - NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 0x2 - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 0x9 - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 0x8 - NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 0xa - NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 0x7 - NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 0x2 - NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 0x5 - NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 0x14 - NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 0x10 - NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 0x12 - NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 0x11 - NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 0x1 - NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 0x8 - NL80211_PMSR_FTM_RESP_ATTR_LCI = 0x13 - NL80211_PMSR_FTM_RESP_ATTR_MAX = 0x15 - NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 0x6 - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 0x3 - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 0x4 - NL80211_PMSR_FTM_RESP_ATTR_PAD = 0x15 - NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 0x9 - NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 0xa - NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 0xd - NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 0xf - NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 0xe - NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 0xc - NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 0xb - NL80211_PMSR_PEER_ATTR_ADDR = 0x1 - NL80211_PMSR_PEER_ATTR_CHAN = 0x2 - NL80211_PMSR_PEER_ATTR_MAX = 0x4 - NL80211_PMSR_PEER_ATTR_REQ = 0x3 - NL80211_PMSR_PEER_ATTR_RESP = 0x4 - NL80211_PMSR_REQ_ATTR_DATA = 0x1 - NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 0x2 - NL80211_PMSR_REQ_ATTR_MAX = 0x2 - NL80211_PMSR_RESP_ATTR_AP_TSF = 0x4 - NL80211_PMSR_RESP_ATTR_DATA = 0x1 - NL80211_PMSR_RESP_ATTR_FINAL = 0x5 - NL80211_PMSR_RESP_ATTR_HOST_TIME = 0x3 - NL80211_PMSR_RESP_ATTR_MAX = 0x6 - NL80211_PMSR_RESP_ATTR_PAD = 0x6 - NL80211_PMSR_RESP_ATTR_STATUS = 0x2 - NL80211_PMSR_STATUS_FAILURE = 0x3 - NL80211_PMSR_STATUS_REFUSED = 0x1 - NL80211_PMSR_STATUS_SUCCESS = 0x0 - NL80211_PMSR_STATUS_TIMEOUT = 0x2 - NL80211_PMSR_TYPE_FTM = 0x1 - NL80211_PMSR_TYPE_INVALID = 0x0 - NL80211_PMSR_TYPE_MAX = 0x1 - NL80211_PREAMBLE_DMG = 0x3 - NL80211_PREAMBLE_HE = 0x4 - NL80211_PREAMBLE_HT = 0x1 - NL80211_PREAMBLE_LEGACY = 0x0 - NL80211_PREAMBLE_VHT = 0x2 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 0x8 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 0x4 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 0x2 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 0x1 - NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 0x1 - NL80211_PS_DISABLED = 0x0 - NL80211_PS_ENABLED = 0x1 - NL80211_RADAR_CAC_ABORTED = 0x2 - NL80211_RADAR_CAC_FINISHED = 0x1 - NL80211_RADAR_CAC_STARTED = 0x5 - NL80211_RADAR_DETECTED = 0x0 - NL80211_RADAR_NOP_FINISHED = 0x3 - NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 - NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb - NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa - NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 - NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 - NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc - NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 - NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 - NL80211_RATE_INFO_BITRATE32 = 0x5 - NL80211_RATE_INFO_BITRATE = 0x1 - NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 - NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 - NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 - NL80211_RATE_INFO_EHT_GI = 0x15 - NL80211_RATE_INFO_EHT_MCS = 0x13 - NL80211_RATE_INFO_EHT_NSS = 0x14 - NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 - NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 - NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 - NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe - NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 - NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 - NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf - NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 - NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa - NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 - NL80211_RATE_INFO_HE_1XLTF = 0x0 - NL80211_RATE_INFO_HE_2XLTF = 0x1 - NL80211_RATE_INFO_HE_4XLTF = 0x2 - NL80211_RATE_INFO_HE_DCM = 0x10 - NL80211_RATE_INFO_HE_GI_0_8 = 0x0 - NL80211_RATE_INFO_HE_GI_1_6 = 0x1 - NL80211_RATE_INFO_HE_GI_3_2 = 0x2 - NL80211_RATE_INFO_HE_GI = 0xf - NL80211_RATE_INFO_HE_MCS = 0xd - NL80211_RATE_INFO_HE_NSS = 0xe - NL80211_RATE_INFO_HE_RU_ALLOC_106 = 0x2 - NL80211_RATE_INFO_HE_RU_ALLOC_242 = 0x3 - NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0x0 - NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 0x6 - NL80211_RATE_INFO_HE_RU_ALLOC_484 = 0x4 - NL80211_RATE_INFO_HE_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_HE_RU_ALLOC_996 = 0x5 - NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 - NL80211_RATE_INFO_MAX = 0x16 - NL80211_RATE_INFO_MCS = 0x2 - NL80211_RATE_INFO_SHORT_GI = 0x4 - NL80211_RATE_INFO_VHT_MCS = 0x6 - NL80211_RATE_INFO_VHT_NSS = 0x7 - NL80211_REGDOM_SET_BY_CORE = 0x0 - NL80211_REGDOM_SET_BY_COUNTRY_IE = 0x3 - NL80211_REGDOM_SET_BY_DRIVER = 0x2 - NL80211_REGDOM_SET_BY_USER = 0x1 - NL80211_REGDOM_TYPE_COUNTRY = 0x0 - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 - NL80211_REG_RULE_ATTR_MAX = 0x7 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 - NL80211_REKEY_DATA_REPLAY_CTR = 0x3 - NL80211_REPLAY_CTR_LEN = 0x8 - NL80211_RRF_AUTO_BW = 0x800 - NL80211_RRF_DFS = 0x10 - NL80211_RRF_GO_CONCURRENT = 0x1000 - NL80211_RRF_IR_CONCURRENT = 0x1000 - NL80211_RRF_NO_160MHZ = 0x10000 - NL80211_RRF_NO_320MHZ = 0x40000 - NL80211_RRF_NO_80MHZ = 0x8000 - NL80211_RRF_NO_CCK = 0x2 - NL80211_RRF_NO_HE = 0x20000 - NL80211_RRF_NO_HT40 = 0x6000 - NL80211_RRF_NO_HT40MINUS = 0x2000 - NL80211_RRF_NO_HT40PLUS = 0x4000 - NL80211_RRF_NO_IBSS = 0x80 - NL80211_RRF_NO_INDOOR = 0x4 - NL80211_RRF_NO_IR_ALL = 0x180 - NL80211_RRF_NO_IR = 0x80 - NL80211_RRF_NO_OFDM = 0x1 - NL80211_RRF_NO_OUTDOOR = 0x8 - NL80211_RRF_PASSIVE_SCAN = 0x80 - NL80211_RRF_PTMP_ONLY = 0x40 - NL80211_RRF_PTP_ONLY = 0x20 - NL80211_RXMGMT_FLAG_ANSWERED = 0x1 - NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 0x2 - NL80211_SAE_PWE_BOTH = 0x3 - NL80211_SAE_PWE_HASH_TO_ELEMENT = 0x2 - NL80211_SAE_PWE_HUNT_AND_PECK = 0x1 - NL80211_SAE_PWE_UNSPECIFIED = 0x0 - NL80211_SAR_ATTR_MAX = 0x2 - NL80211_SAR_ATTR_SPECS = 0x2 - NL80211_SAR_ATTR_SPECS_END_FREQ = 0x4 - NL80211_SAR_ATTR_SPECS_MAX = 0x4 - NL80211_SAR_ATTR_SPECS_POWER = 0x1 - NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 0x2 - NL80211_SAR_ATTR_SPECS_START_FREQ = 0x3 - NL80211_SAR_ATTR_TYPE = 0x1 - NL80211_SAR_TYPE_POWER = 0x0 - NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 0x20 - NL80211_SCAN_FLAG_AP = 0x4 - NL80211_SCAN_FLAG_COLOCATED_6GHZ = 0x4000 - NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 0x10 - NL80211_SCAN_FLAG_FLUSH = 0x2 - NL80211_SCAN_FLAG_FREQ_KHZ = 0x2000 - NL80211_SCAN_FLAG_HIGH_ACCURACY = 0x400 - NL80211_SCAN_FLAG_LOW_POWER = 0x200 - NL80211_SCAN_FLAG_LOW_PRIORITY = 0x1 - NL80211_SCAN_FLAG_LOW_SPAN = 0x100 - NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 0x1000 - NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x80 - NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 0x40 - NL80211_SCAN_FLAG_RANDOM_ADDR = 0x8 - NL80211_SCAN_FLAG_RANDOM_SN = 0x800 - NL80211_SCAN_RSSI_THOLD_OFF = -0x12c - NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 0x5 - NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 0x6 - NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 0x3 - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 0x4 - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 0x2 - NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 0x1 - NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 0x6 - NL80211_SCHED_SCAN_PLAN_INTERVAL = 0x1 - NL80211_SCHED_SCAN_PLAN_ITERATIONS = 0x2 - NL80211_SCHED_SCAN_PLAN_MAX = 0x2 - NL80211_SMPS_DYNAMIC = 0x2 - NL80211_SMPS_MAX = 0x2 - NL80211_SMPS_OFF = 0x0 - NL80211_SMPS_STATIC = 0x1 - NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 0x5 - NL80211_STA_BSS_PARAM_CTS_PROT = 0x1 - NL80211_STA_BSS_PARAM_DTIM_PERIOD = 0x4 - NL80211_STA_BSS_PARAM_MAX = 0x5 - NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 0x2 - NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 0x3 - NL80211_STA_FLAG_ASSOCIATED = 0x7 - NL80211_STA_FLAG_AUTHENTICATED = 0x5 - NL80211_STA_FLAG_AUTHORIZED = 0x1 - NL80211_STA_FLAG_MAX = 0x7 - NL80211_STA_FLAG_MAX_OLD_API = 0x6 - NL80211_STA_FLAG_MFP = 0x4 - NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 - NL80211_STA_FLAG_TDLS_PEER = 0x6 - NL80211_STA_FLAG_WME = 0x3 - NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23 - NL80211_STA_INFO_ACK_SIGNAL = 0x22 - NL80211_STA_INFO_AIRTIME_LINK_METRIC = 0x29 - NL80211_STA_INFO_AIRTIME_WEIGHT = 0x28 - NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 0x2a - NL80211_STA_INFO_BEACON_LOSS = 0x12 - NL80211_STA_INFO_BEACON_RX = 0x1d - NL80211_STA_INFO_BEACON_SIGNAL_AVG = 0x1e - NL80211_STA_INFO_BSS_PARAM = 0xf - NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 0x1a - NL80211_STA_INFO_CHAIN_SIGNAL = 0x19 - NL80211_STA_INFO_CONNECTED_TIME = 0x10 - NL80211_STA_INFO_CONNECTED_TO_AS = 0x2b - NL80211_STA_INFO_CONNECTED_TO_GATE = 0x26 - NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG = 0x23 - NL80211_STA_INFO_EXPECTED_THROUGHPUT = 0x1b - NL80211_STA_INFO_FCS_ERROR_COUNT = 0x25 - NL80211_STA_INFO_INACTIVE_TIME = 0x1 - NL80211_STA_INFO_LLID = 0x4 - NL80211_STA_INFO_LOCAL_PM = 0x14 - NL80211_STA_INFO_MAX = 0x2b - NL80211_STA_INFO_NONPEER_PM = 0x16 - NL80211_STA_INFO_PAD = 0x21 - NL80211_STA_INFO_PEER_PM = 0x15 - NL80211_STA_INFO_PLID = 0x5 - NL80211_STA_INFO_PLINK_STATE = 0x6 - NL80211_STA_INFO_RX_BITRATE = 0xe - NL80211_STA_INFO_RX_BYTES64 = 0x17 - NL80211_STA_INFO_RX_BYTES = 0x2 - NL80211_STA_INFO_RX_DROP_MISC = 0x1c - NL80211_STA_INFO_RX_DURATION = 0x20 - NL80211_STA_INFO_RX_MPDUS = 0x24 - NL80211_STA_INFO_RX_PACKETS = 0x9 - NL80211_STA_INFO_SIGNAL_AVG = 0xd - NL80211_STA_INFO_SIGNAL = 0x7 - NL80211_STA_INFO_STA_FLAGS = 0x11 - NL80211_STA_INFO_TID_STATS = 0x1f - NL80211_STA_INFO_T_OFFSET = 0x13 - NL80211_STA_INFO_TX_BITRATE = 0x8 - NL80211_STA_INFO_TX_BYTES64 = 0x18 - NL80211_STA_INFO_TX_BYTES = 0x3 - NL80211_STA_INFO_TX_DURATION = 0x27 - NL80211_STA_INFO_TX_FAILED = 0xc - NL80211_STA_INFO_TX_PACKETS = 0xa - NL80211_STA_INFO_TX_RETRIES = 0xb - NL80211_STA_WME_MAX = 0x2 - NL80211_STA_WME_MAX_SP = 0x2 - NL80211_STA_WME_UAPSD_QUEUES = 0x1 - NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY = 0x5 - NL80211_SURVEY_INFO_CHANNEL_TIME = 0x4 - NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 0x6 - NL80211_SURVEY_INFO_CHANNEL_TIME_RX = 0x7 - NL80211_SURVEY_INFO_CHANNEL_TIME_TX = 0x8 - NL80211_SURVEY_INFO_FREQUENCY = 0x1 - NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 0xc - NL80211_SURVEY_INFO_IN_USE = 0x3 - NL80211_SURVEY_INFO_MAX = 0xc - NL80211_SURVEY_INFO_NOISE = 0x2 - NL80211_SURVEY_INFO_PAD = 0xa - NL80211_SURVEY_INFO_TIME_BSS_RX = 0xb - NL80211_SURVEY_INFO_TIME_BUSY = 0x5 - NL80211_SURVEY_INFO_TIME = 0x4 - NL80211_SURVEY_INFO_TIME_EXT_BUSY = 0x6 - NL80211_SURVEY_INFO_TIME_RX = 0x7 - NL80211_SURVEY_INFO_TIME_SCAN = 0x9 - NL80211_SURVEY_INFO_TIME_TX = 0x8 - NL80211_TDLS_DISABLE_LINK = 0x4 - NL80211_TDLS_DISCOVERY_REQ = 0x0 - NL80211_TDLS_ENABLE_LINK = 0x3 - NL80211_TDLS_PEER_HE = 0x8 - NL80211_TDLS_PEER_HT = 0x1 - NL80211_TDLS_PEER_VHT = 0x2 - NL80211_TDLS_PEER_WMM = 0x4 - NL80211_TDLS_SETUP = 0x1 - NL80211_TDLS_TEARDOWN = 0x2 - NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 0x9 - NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 0xb - NL80211_TID_CONFIG_ATTR_MAX = 0xd - NL80211_TID_CONFIG_ATTR_NOACK = 0x6 - NL80211_TID_CONFIG_ATTR_OVERRIDE = 0x4 - NL80211_TID_CONFIG_ATTR_PAD = 0x1 - NL80211_TID_CONFIG_ATTR_PEER_SUPP = 0x3 - NL80211_TID_CONFIG_ATTR_RETRY_LONG = 0x8 - NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 0x7 - NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 0xa - NL80211_TID_CONFIG_ATTR_TIDS = 0x5 - NL80211_TID_CONFIG_ATTR_TX_RATE = 0xd - NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 0xc - NL80211_TID_CONFIG_ATTR_VIF_SUPP = 0x2 - NL80211_TID_CONFIG_DISABLE = 0x1 - NL80211_TID_CONFIG_ENABLE = 0x0 - NL80211_TID_STATS_MAX = 0x6 - NL80211_TID_STATS_PAD = 0x5 - NL80211_TID_STATS_RX_MSDU = 0x1 - NL80211_TID_STATS_TX_MSDU = 0x2 - NL80211_TID_STATS_TX_MSDU_FAILED = 0x4 - NL80211_TID_STATS_TX_MSDU_RETRIES = 0x3 - NL80211_TID_STATS_TXQ_STATS = 0x6 - NL80211_TIMEOUT_ASSOC = 0x3 - NL80211_TIMEOUT_AUTH = 0x2 - NL80211_TIMEOUT_SCAN = 0x1 - NL80211_TIMEOUT_UNSPECIFIED = 0x0 - NL80211_TKIP_DATA_OFFSET_ENCR_KEY = 0x0 - NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY = 0x18 - NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY = 0x10 - NL80211_TX_POWER_AUTOMATIC = 0x0 - NL80211_TX_POWER_FIXED = 0x2 - NL80211_TX_POWER_LIMITED = 0x1 - NL80211_TXQ_ATTR_AC = 0x1 - NL80211_TXQ_ATTR_AIFS = 0x5 - NL80211_TXQ_ATTR_CWMAX = 0x4 - NL80211_TXQ_ATTR_CWMIN = 0x3 - NL80211_TXQ_ATTR_MAX = 0x5 - NL80211_TXQ_ATTR_QUEUE = 0x1 - NL80211_TXQ_ATTR_TXOP = 0x2 - NL80211_TXQ_Q_BE = 0x2 - NL80211_TXQ_Q_BK = 0x3 - NL80211_TXQ_Q_VI = 0x1 - NL80211_TXQ_Q_VO = 0x0 - NL80211_TXQ_STATS_BACKLOG_BYTES = 0x1 - NL80211_TXQ_STATS_BACKLOG_PACKETS = 0x2 - NL80211_TXQ_STATS_COLLISIONS = 0x8 - NL80211_TXQ_STATS_DROPS = 0x4 - NL80211_TXQ_STATS_ECN_MARKS = 0x5 - NL80211_TXQ_STATS_FLOWS = 0x3 - NL80211_TXQ_STATS_MAX = 0xb - NL80211_TXQ_STATS_MAX_FLOWS = 0xb - NL80211_TXQ_STATS_OVERLIMIT = 0x6 - NL80211_TXQ_STATS_OVERMEMORY = 0x7 - NL80211_TXQ_STATS_TX_BYTES = 0x9 - NL80211_TXQ_STATS_TX_PACKETS = 0xa - NL80211_TX_RATE_AUTOMATIC = 0x0 - NL80211_TXRATE_DEFAULT_GI = 0x0 - NL80211_TX_RATE_FIXED = 0x2 - NL80211_TXRATE_FORCE_LGI = 0x2 - NL80211_TXRATE_FORCE_SGI = 0x1 - NL80211_TXRATE_GI = 0x4 - NL80211_TXRATE_HE = 0x5 - NL80211_TXRATE_HE_GI = 0x6 - NL80211_TXRATE_HE_LTF = 0x7 - NL80211_TXRATE_HT = 0x2 - NL80211_TXRATE_LEGACY = 0x1 - NL80211_TX_RATE_LIMITED = 0x1 - NL80211_TXRATE_MAX = 0x7 - NL80211_TXRATE_MCS = 0x2 - NL80211_TXRATE_VHT = 0x3 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 0x1 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 0x2 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 0x2 - NL80211_USER_REG_HINT_CELL_BASE = 0x1 - NL80211_USER_REG_HINT_INDOOR = 0x2 - NL80211_USER_REG_HINT_USER = 0x0 - NL80211_VENDOR_ID_IS_LINUX = 0x80000000 - NL80211_VHT_CAPABILITY_LEN = 0xc - NL80211_VHT_NSS_MAX = 0x8 - NL80211_WIPHY_NAME_MAXLEN = 0x40 - NL80211_WMMR_AIFSN = 0x3 - NL80211_WMMR_CW_MAX = 0x2 - NL80211_WMMR_CW_MIN = 0x1 - NL80211_WMMR_MAX = 0x4 - NL80211_WMMR_TXOP = 0x4 - NL80211_WOWLAN_PKTPAT_MASK = 0x1 - NL80211_WOWLAN_PKTPAT_OFFSET = 0x3 - NL80211_WOWLAN_PKTPAT_PATTERN = 0x2 - NL80211_WOWLAN_TCP_DATA_INTERVAL = 0x9 - NL80211_WOWLAN_TCP_DATA_PAYLOAD = 0x6 - NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 0x7 - NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 0x8 - NL80211_WOWLAN_TCP_DST_IPV4 = 0x2 - NL80211_WOWLAN_TCP_DST_MAC = 0x3 - NL80211_WOWLAN_TCP_DST_PORT = 0x5 - NL80211_WOWLAN_TCP_SRC_IPV4 = 0x1 - NL80211_WOWLAN_TCP_SRC_PORT = 0x4 - NL80211_WOWLAN_TCP_WAKE_MASK = 0xb - NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 0xa - NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 0x8 - NL80211_WOWLAN_TRIG_ANY = 0x1 - NL80211_WOWLAN_TRIG_DISCONNECT = 0x2 - NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 0x7 - NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 0x6 - NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 0x5 - NL80211_WOWLAN_TRIG_MAGIC_PKT = 0x3 - NL80211_WOWLAN_TRIG_NET_DETECT = 0x12 - NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 0x13 - NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4 - NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9 - NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 0xd - NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 0x10 - NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 0xf - NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 0x11 - NL80211_WPA_VERSION_1 = 0x1 - NL80211_WPA_VERSION_2 = 0x2 - NL80211_WPA_VERSION_3 = 0x4 -) - -const ( - FRA_UNSPEC = 0x0 - FRA_DST = 0x1 - FRA_SRC = 0x2 - FRA_IIFNAME = 0x3 - FRA_GOTO = 0x4 - FRA_UNUSED2 = 0x5 - FRA_PRIORITY = 0x6 - FRA_UNUSED3 = 0x7 - FRA_UNUSED4 = 0x8 - FRA_UNUSED5 = 0x9 - FRA_FWMARK = 0xa - FRA_FLOW = 0xb - FRA_TUN_ID = 0xc - FRA_SUPPRESS_IFGROUP = 0xd - FRA_SUPPRESS_PREFIXLEN = 0xe - FRA_TABLE = 0xf - FRA_FWMASK = 0x10 - FRA_OIFNAME = 0x11 - FRA_PAD = 0x12 - FRA_L3MDEV = 0x13 - FRA_UID_RANGE = 0x14 - FRA_PROTOCOL = 0x15 - FRA_IP_PROTO = 0x16 - FRA_SPORT_RANGE = 0x17 - FRA_DPORT_RANGE = 0x18 - FR_ACT_UNSPEC = 0x0 - FR_ACT_TO_TBL = 0x1 - FR_ACT_GOTO = 0x2 - FR_ACT_NOP = 0x3 - FR_ACT_RES3 = 0x4 - FR_ACT_RES4 = 0x5 - FR_ACT_BLACKHOLE = 0x6 - FR_ACT_UNREACHABLE = 0x7 - FR_ACT_PROHIBIT = 0x8 -) - -const ( - AUDIT_NLGRP_NONE = 0x0 - AUDIT_NLGRP_READLOG = 0x1 -) - -const ( - TUN_F_CSUM = 0x1 - TUN_F_TSO4 = 0x2 - TUN_F_TSO6 = 0x4 - TUN_F_TSO_ECN = 0x8 - TUN_F_UFO = 0x10 -) - -const ( - VIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1 - VIRTIO_NET_HDR_F_DATA_VALID = 0x2 - VIRTIO_NET_HDR_F_RSC_INFO = 0x4 -) - -const ( - VIRTIO_NET_HDR_GSO_NONE = 0x0 - VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 - VIRTIO_NET_HDR_GSO_UDP = 0x3 - VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 - VIRTIO_NET_HDR_GSO_ECN = 0x80 -) diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_386.go deleted file mode 100644 index 4ecc1495..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ /dev/null @@ -1,696 +0,0 @@ -// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux -// +build 386,linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - _ uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - Size int64 - Blksize int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [1]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -type DmNameList struct { - Dev uint64 - Next uint32 -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint16 - Inode uint32 - Rdevice uint16 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]int8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 -} - -const ( - PPS_GETPARAMS = 0x800470a1 - PPS_SETPARAMS = 0x400470a2 - PPS_GETCAP = 0x800470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ [2]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Atime_high uint32 - Dtime uint32 - Dtime_high uint32 - Ctime uint32 - Ctime_high uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go deleted file mode 100644 index 34fddff9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ /dev/null @@ -1,711 +0,0 @@ -// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux -// +build amd64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [3]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint64 - Inode uint64 - Rdevice uint64 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go deleted file mode 100644 index 3b14a603..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ /dev/null @@ -1,691 +0,0 @@ -// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux -// +build arm,linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - _ uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - _ [4]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Uregs [18]uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -type LoopInfo struct { - Number int32 - Device uint16 - Inode uint32 - Rdevice uint16 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]uint8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800470a1 - PPS_SETPARAMS = 0x400470a2 - PPS_GETCAP = 0x800470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ [2]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Atime_high uint32 - Dtime uint32 - Dtime_high uint32 - Ctime uint32 - Ctime_high uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go deleted file mode 100644 index 0517651a..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ /dev/null @@ -1,690 +0,0 @@ -// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux -// +build arm64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go deleted file mode 100644 index 3b0c5181..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ /dev/null @@ -1,691 +0,0 @@ -// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux -// +build loong64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Orig_a0 uint64 - Era uint64 - Badv uint64 - Reserved [10]uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go deleted file mode 100644 index fccdf4dd..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ /dev/null @@ -1,696 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux -// +build mips,linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - _ [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]int8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400470a1 - PPS_SETPARAMS = 0x800470a2 - PPS_GETCAP = 0x400470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Dtime uint32 - Ctime uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - Atime_high uint16 - Dtime_high uint16 - Ctime_high uint16 - _ uint16 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go deleted file mode 100644 index 500de8fc..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ /dev/null @@ -1,693 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux -// +build mips64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go deleted file mode 100644 index d0434cd2..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ /dev/null @@ -1,693 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux -// +build mips64le,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go deleted file mode 100644 index 84206ba5..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ /dev/null @@ -1,696 +0,0 @@ -// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux -// +build mipsle,linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - _ [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]int8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400470a1 - PPS_SETPARAMS = 0x800470a2 - PPS_GETCAP = 0x400470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Dtime uint32 - Ctime uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - Atime_high uint16 - Dtime_high uint16 - Ctime_high uint16 - _ uint16 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go deleted file mode 100644 index ab078cf1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ /dev/null @@ -1,704 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux -// +build ppc,linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - _ [4]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint32 - _ uint32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Gpr [32]uint32 - Nip uint32 - Msr uint32 - Orig_gpr3 uint32 - Ctr uint32 - Link uint32 - Xer uint32 - Ccr uint32 - Mq uint32 - Trap uint32 - Dar uint32 - Dsisr uint32 - Result uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]uint8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400470a1 - PPS_SETPARAMS = 0x800470a2 - PPS_GETCAP = 0x400470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime_high uint32 - Atime uint32 - Dtime_high uint32 - Dtime uint32 - Ctime_high uint32 - Ctime uint32 - _ uint32 - Segsz uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 - _ [4]byte -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go deleted file mode 100644 index 42eb2c4c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ /dev/null @@ -1,699 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux -// +build ppc64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -type LoopInfo struct { - Number int32 - Device uint64 - Inode uint64 - Rdevice uint64 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]uint8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go deleted file mode 100644 index 31304a4e..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ /dev/null @@ -1,699 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux -// +build ppc64le,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -type LoopInfo struct { - Number int32 - Device uint64 - Inode uint64 - Rdevice uint64 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]uint8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go deleted file mode 100644 index c311f961..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ /dev/null @@ -1,718 +0,0 @@ -// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux -// +build riscv64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Pc uint64 - Ra uint64 - Sp uint64 - Gp uint64 - Tp uint64 - T0 uint64 - T1 uint64 - T2 uint64 - S0 uint64 - S1 uint64 - A0 uint64 - A1 uint64 - A2 uint64 - A3 uint64 - A4 uint64 - A5 uint64 - A6 uint64 - A7 uint64 - S2 uint64 - S3 uint64 - S4 uint64 - S5 uint64 - S6 uint64 - S7 uint64 - S8 uint64 - S9 uint64 - S10 uint64 - S11 uint64 - T3 uint64 - T4 uint64 - T5 uint64 - T6 uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]uint8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go deleted file mode 100644 index bba3cefa..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ /dev/null @@ -1,713 +0,0 @@ -// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux -// +build s390x,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - _ [3]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Psw PtracePsw - Gprs [16]uint64 - Acrs [16]uint32 - Orig_gpr2 uint64 - Fp_regs PtraceFpregs - Per_info PtracePer - Ieee_instruction_pointer uint64 -} - -type PtracePsw struct { - Mask uint64 - Addr uint64 -} - -type PtraceFpregs struct { - Fpc uint32 - Fprs [16]float64 -} - -type PtracePer struct { - Control_regs [3]uint64 - _ [8]byte - Starting_addr uint64 - Ending_addr uint64 - Perc_atmid uint16 - Address uint64 - Access_id uint8 - _ [7]byte -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type uint32 - Bsize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen uint32 - Frsize uint32 - Flags uint32 - Spare [4]uint32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint16 - Inode uint64 - Rdevice uint16 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ uint16 - Seq uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go deleted file mode 100644 index ad8a0138..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ /dev/null @@ -1,694 +0,0 @@ -// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux -// +build sparc64,linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ int16 - _ [2]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [16]uint64 - Tstate uint64 - Tpc uint64 - Tnpc uint64 - Y uint32 - Magic uint32 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x400000 -) - -const ( - POLLRDHUP = 0x800 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x4 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x4000 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ uint16 - Seq uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go deleted file mode 100644 index 9bc4c8f9..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ /dev/null @@ -1,586 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd -// +build 386,netbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint32 - Bsize uint32 - Frsize uint32 - Iosize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint32 - Namemax uint32 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x84 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData - Pad_cgo_1 [4]byte -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go deleted file mode 100644 index bb05f655..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ /dev/null @@ -1,594 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd -// +build amd64,netbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - _ [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - _ [4]byte - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - _ [4]byte -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint64 - Bsize uint64 - Frsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint64 - Namemax uint64 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte - _ [4]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go deleted file mode 100644 index db40e3a1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ /dev/null @@ -1,591 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd -// +build arm,netbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - Pad_cgo_0 [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - _ [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - _ [4]byte - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - _ [4]byte -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint32 - Bsize uint32 - Frsize uint32 - Iosize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint32 - Namemax uint32 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 - Pad_cgo_0 [4]byte -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go deleted file mode 100644 index 11121151..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ /dev/null @@ -1,594 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && netbsd -// +build arm64,netbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - _ [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - _ [4]byte - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - _ [4]byte -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint64 - Bsize uint64 - Frsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint64 - Namemax uint64 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte - _ [4]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go deleted file mode 100644 index 26eba23b..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ /dev/null @@ -1,569 +0,0 @@ -// cgo -godefs types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && openbsd -// +build 386,openbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa0 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go deleted file mode 100644 index 5a547988..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ /dev/null @@ -1,569 +0,0 @@ -// cgo -godefs types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && openbsd -// +build amd64,openbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go deleted file mode 100644 index be58c4e1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ /dev/null @@ -1,576 +0,0 @@ -// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && openbsd -// +build arm,openbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ [4]byte - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - _ [4]byte - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - _ [4]byte - Data int64 - Udata *byte - _ [4]byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - _ [4]byte - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go deleted file mode 100644 index 52338266..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ /dev/null @@ -1,569 +0,0 @@ -// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && openbsd -// +build arm64,openbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go deleted file mode 100644 index 605cfdb1..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +++ /dev/null @@ -1,569 +0,0 @@ -// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && openbsd -// +build mips64,openbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go deleted file mode 100644 index d6724c01..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +++ /dev/null @@ -1,571 +0,0 @@ -// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && openbsd -// +build ppc64,openbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -type Mclpool struct{} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go deleted file mode 100644 index ddfd27a4..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +++ /dev/null @@ -1,571 +0,0 @@ -// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && openbsd -// +build riscv64,openbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -type Mclpool struct{} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/backend/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go deleted file mode 100644 index 0400747c..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ /dev/null @@ -1,517 +0,0 @@ -// cgo -godefs types_solaris.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && solaris -// +build amd64,solaris - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x400 - MaxHostNameLen = 0x100 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Blocks int64 - Fstype [16]int8 -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Sysid int32 - Pid int32 - Pad [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Name [1]int8 - _ [5]byte -} - -type _Fsblkcnt_t uint64 - -type Statvfs_t struct { - Bsize uint64 - Frsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fsid uint64 - Basetype [16]int8 - Flag uint64 - Namemax uint64 - Fstr [32]int8 -} - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - _ uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [236]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Accrights *int8 - Accrightslen int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x20 - SizeofSockaddrAny = 0xfc - SizeofSockaddrUnix = 0x6e - SizeofSockaddrDatalink = 0xfc - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x24 - SizeofICMPv6Filter = 0x20 -) - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [257]byte - Nodename [257]byte - Release [257]byte - Version [257]byte - Machine [257]byte -} - -type Ustat_t struct { - Tfree int64 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -const ( - AT_FDCWD = 0xffd19553 - AT_SYMLINK_NOFOLLOW = 0x1000 - AT_SYMLINK_FOLLOW = 0x2000 - AT_REMOVEDIR = 0x1 - AT_EACCESS = 0x4 -) - -const ( - SizeofIfMsghdr = 0x54 - SizeofIfData = 0x44 - SizeofIfaMsghdr = 0x14 - SizeofRtMsghdr = 0x4c - SizeofRtMetrics = 0x28 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - _ [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - _ [1]byte -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line int8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type fileObj struct { - Atim Timespec - Mtim Timespec - Ctim Timespec - Pad [3]uint64 - Name *int8 -} - -type portEvent struct { - Events int32 - Source uint16 - Pad uint16 - Object uint64 - User *byte -} - -const ( - PORT_SOURCE_AIO = 0x1 - PORT_SOURCE_TIMER = 0x2 - PORT_SOURCE_USER = 0x3 - PORT_SOURCE_FD = 0x4 - PORT_SOURCE_ALERT = 0x5 - PORT_SOURCE_MQ = 0x6 - PORT_SOURCE_FILE = 0x7 - PORT_ALERT_SET = 0x1 - PORT_ALERT_UPDATE = 0x2 - PORT_ALERT_INVALID = 0x3 - FILE_ACCESS = 0x1 - FILE_MODIFIED = 0x2 - FILE_ATTRIB = 0x4 - FILE_TRUNC = 0x100000 - FILE_NOFOLLOW = 0x10000000 - FILE_DELETE = 0x10 - FILE_RENAME_TO = 0x20 - FILE_RENAME_FROM = 0x40 - UNMOUNTED = 0x20000000 - MOUNTEDOVER = 0x40000000 - FILE_EXCEPTION = 0x60000070 -) - -const ( - TUNNEWPPA = 0x540001 - TUNSETPPA = 0x540002 - - I_STR = 0x5308 - I_POP = 0x5303 - I_PUSH = 0x5302 - I_LINK = 0x530c - I_UNLINK = 0x530d - I_PLINK = 0x5316 - I_PUNLINK = 0x5317 - - IF_UNITSEL = -0x7ffb8cca -) - -type strbuf struct { - Maxlen int32 - Len int32 - Buf *int8 -} - -type Strioctl struct { - Cmd int32 - Timout int32 - Len int32 - Dp *int8 -} - -type Lifreq struct { - Name [32]int8 - Lifru1 [4]byte - Type uint32 - Lifru [336]byte -} diff --git a/backend/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/backend/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go deleted file mode 100644 index aec1efcb..00000000 --- a/backend/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +++ /dev/null @@ -1,415 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x -// +build zos,s390x - -// Hand edited based on ztypes_linux_s390x.go -// TODO: auto-generate. - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 -) - -const ( - SizeofSockaddrAny = 128 - SizeofCmsghdr = 12 - SizeofIPMreq = 8 - SizeofIPv6Mreq = 20 - SizeofICMPv6Filter = 32 - SizeofIPv6MTUInfo = 32 - SizeofLinger = 8 - SizeofSockaddrInet4 = 16 - SizeofSockaddrInet6 = 28 - SizeofTCPInfo = 0x68 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type timeval_zos struct { //correct (with padding and all) - Sec int64 - _ [4]byte // pad - Usec int32 -} - -type Tms struct { //clock_t is 4-byte unsigned int in zos - Utime uint32 - Stime uint32 - Cutime uint32 - Cstime uint32 -} - -type Time_t int64 - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [108]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - _ [112]uint8 // pad -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Iov *Iovec - Control *byte - Flags int32 - Namelen int32 - Iovlen int32 - Controllen int32 -} - -type Cmsghdr struct { - Len int32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Addr [4]byte /* in_addr */ - Ifindex uint32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type _Gid_t uint32 - -type rusage_zos struct { - Utime timeval_zos - Stime timeval_zos -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -// { int, short, short } in poll.h -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -type Stat_t struct { //Linux Definition - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - _ [3]int64 -} - -type Stat_LE_t struct { - _ [4]byte // eye catcher - Length uint16 - Version uint16 - Mode int32 - Ino uint32 - Dev uint32 - Nlink int32 - Uid int32 - Gid int32 - Size int64 - Atim31 [4]byte - Mtim31 [4]byte - Ctim31 [4]byte - Rdev uint32 - Auditoraudit uint32 - Useraudit uint32 - Blksize int32 - Creatim31 [4]byte - AuditID [16]byte - _ [4]byte // rsrvd1 - File_tag struct { - Ccsid uint16 - Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14 - } - CharsetID [8]byte - Blocks int64 - Genvalue uint32 - Reftim31 [4]byte - Fid [8]byte - Filefmt byte - Fspflag2 byte - _ [2]byte // rsrvd2 - Ctimemsec int32 - Seclabel [8]byte - _ [4]byte // rsrvd3 - _ [4]byte // rsrvd4 - Atim Time_t - Mtim Time_t - Ctim Time_t - Creatim Time_t - Reftim Time_t - _ [24]byte // rsrvd5 -} - -type Statvfs_t struct { - ID [4]byte - Len int32 - Bsize uint64 - Blocks uint64 - Usedspace uint64 - Bavail uint64 - Flag uint64 - Maxfilesize int64 - _ [16]byte - Frsize uint64 - Bfree uint64 - Files uint32 - Ffree uint32 - Favail uint32 - Namemax31 uint32 - Invarsec uint32 - _ [4]byte - Fsid uint64 - Namemax uint64 -} - -type Statfs_t struct { - Type uint32 - Bsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint32 - Ffree uint32 - Fsid uint64 - Namelen uint64 - Frsize uint64 - Flags uint64 -} - -type direntLE struct { - Reclen uint16 - Namlen uint16 - Ino uint32 - Extra uintptr - Name [256]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type FdSet struct { - Bits [64]int32 -} - -// This struct is packed on z/OS so it can't be used directly. -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -type Termios struct { - Cflag uint32 - Iflag uint32 - Lflag uint32 - Oflag uint32 - Cc [11]uint8 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type W_Mnth struct { - Hid [4]byte - Size int32 - Cur1 int32 //32bit pointer - Cur2 int32 //^ - Devno uint32 - _ [4]byte -} - -type W_Mntent struct { - Fstype uint32 - Mode uint32 - Dev uint32 - Parentdev uint32 - Rootino uint32 - Status byte - Ddname [9]byte - Fstname [9]byte - Fsname [45]byte - Pathlen uint32 - Mountpoint [1024]byte - Jobname [8]byte - PID int32 - Parmoffset int32 - Parmlen int16 - Owner [8]byte - Quiesceowner [8]byte - _ [38]byte -} diff --git a/backend/vendor/golang.org/x/sys/windows/aliases.go b/backend/vendor/golang.org/x/sys/windows/aliases.go deleted file mode 100644 index a20ebea6..00000000 --- a/backend/vendor/golang.org/x/sys/windows/aliases.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows && go1.9 -// +build windows,go1.9 - -package windows - -import "syscall" - -type Errno = syscall.Errno -type SysProcAttr = syscall.SysProcAttr diff --git a/backend/vendor/golang.org/x/sys/windows/dll_windows.go b/backend/vendor/golang.org/x/sys/windows/dll_windows.go deleted file mode 100644 index 115341fb..00000000 --- a/backend/vendor/golang.org/x/sys/windows/dll_windows.go +++ /dev/null @@ -1,416 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -import ( - "sync" - "sync/atomic" - "syscall" - "unsafe" -) - -// We need to use LoadLibrary and GetProcAddress from the Go runtime, because -// the these symbols are loaded by the system linker and are required to -// dynamically load additional symbols. Note that in the Go runtime, these -// return syscall.Handle and syscall.Errno, but these are the same, in fact, -// as windows.Handle and windows.Errno, and we intend to keep these the same. - -//go:linkname syscall_loadlibrary syscall.loadlibrary -func syscall_loadlibrary(filename *uint16) (handle Handle, err Errno) - -//go:linkname syscall_getprocaddress syscall.getprocaddress -func syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno) - -// DLLError describes reasons for DLL load failures. -type DLLError struct { - Err error - ObjName string - Msg string -} - -func (e *DLLError) Error() string { return e.Msg } - -func (e *DLLError) Unwrap() error { return e.Err } - -// A DLL implements access to a single DLL. -type DLL struct { - Name string - Handle Handle -} - -// LoadDLL loads DLL file into memory. -// -// Warning: using LoadDLL without an absolute path name is subject to -// DLL preloading attacks. To safely load a system DLL, use LazyDLL -// with System set to true, or use LoadLibraryEx directly. -func LoadDLL(name string) (dll *DLL, err error) { - namep, err := UTF16PtrFromString(name) - if err != nil { - return nil, err - } - h, e := syscall_loadlibrary(namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to load " + name + ": " + e.Error(), - } - } - d := &DLL{ - Name: name, - Handle: h, - } - return d, nil -} - -// MustLoadDLL is like LoadDLL but panics if load operation failes. -func MustLoadDLL(name string) *DLL { - d, e := LoadDLL(name) - if e != nil { - panic(e) - } - return d -} - -// FindProc searches DLL d for procedure named name and returns *Proc -// if found. It returns an error if search fails. -func (d *DLL) FindProc(name string) (proc *Proc, err error) { - namep, err := BytePtrFromString(name) - if err != nil { - return nil, err - } - a, e := syscall_getprocaddress(d.Handle, namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), - } - } - p := &Proc{ - Dll: d, - Name: name, - addr: a, - } - return p, nil -} - -// MustFindProc is like FindProc but panics if search fails. -func (d *DLL) MustFindProc(name string) *Proc { - p, e := d.FindProc(name) - if e != nil { - panic(e) - } - return p -} - -// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc -// if found. It returns an error if search fails. -func (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) { - a, e := GetProcAddressByOrdinal(d.Handle, ordinal) - name := "#" + itoa(int(ordinal)) - if e != nil { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), - } - } - p := &Proc{ - Dll: d, - Name: name, - addr: a, - } - return p, nil -} - -// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails. -func (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc { - p, e := d.FindProcByOrdinal(ordinal) - if e != nil { - panic(e) - } - return p -} - -// Release unloads DLL d from memory. -func (d *DLL) Release() (err error) { - return FreeLibrary(d.Handle) -} - -// A Proc implements access to a procedure inside a DLL. -type Proc struct { - Dll *DLL - Name string - addr uintptr -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -func (p *Proc) Addr() uintptr { - return p.addr -} - -//go:uintptrescapes - -// Call executes procedure p with arguments a. It will panic, if more than 15 arguments -// are supplied. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - switch len(a) { - case 0: - return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) - case 1: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) - case 2: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) - case 3: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) - case 4: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) - case 5: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) - case 6: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) - case 7: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) - case 8: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) - case 9: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) - case 10: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) - case 11: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) - case 12: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) - case 13: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) - case 14: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) - case 15: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) - default: - panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") - } -} - -// A LazyDLL implements access to a single DLL. -// It will delay the load of the DLL until the first -// call to its Handle method or to one of its -// LazyProc's Addr method. -type LazyDLL struct { - Name string - - // System determines whether the DLL must be loaded from the - // Windows System directory, bypassing the normal DLL search - // path. - System bool - - mu sync.Mutex - dll *DLL // non nil once DLL is loaded -} - -// Load loads DLL file d.Name into memory. It returns an error if fails. -// Load will not try to load DLL, if it is already loaded into memory. -func (d *LazyDLL) Load() error { - // Non-racy version of: - // if d.dll != nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { - return nil - } - d.mu.Lock() - defer d.mu.Unlock() - if d.dll != nil { - return nil - } - - // kernel32.dll is special, since it's where LoadLibraryEx comes from. - // The kernel already special-cases its name, so it's always - // loaded from system32. - var dll *DLL - var err error - if d.Name == "kernel32.dll" { - dll, err = LoadDLL(d.Name) - } else { - dll, err = loadLibraryEx(d.Name, d.System) - } - if err != nil { - return err - } - - // Non-racy version of: - // d.dll = dll - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) - return nil -} - -// mustLoad is like Load but panics if search fails. -func (d *LazyDLL) mustLoad() { - e := d.Load() - if e != nil { - panic(e) - } -} - -// Handle returns d's module handle. -func (d *LazyDLL) Handle() uintptr { - d.mustLoad() - return uintptr(d.dll.Handle) -} - -// NewProc returns a LazyProc for accessing the named procedure in the DLL d. -func (d *LazyDLL) NewProc(name string) *LazyProc { - return &LazyProc{l: d, Name: name} -} - -// NewLazyDLL creates new LazyDLL associated with DLL file. -func NewLazyDLL(name string) *LazyDLL { - return &LazyDLL{Name: name} -} - -// NewLazySystemDLL is like NewLazyDLL, but will only -// search Windows System directory for the DLL if name is -// a base name (like "advapi32.dll"). -func NewLazySystemDLL(name string) *LazyDLL { - return &LazyDLL{Name: name, System: true} -} - -// A LazyProc implements access to a procedure inside a LazyDLL. -// It delays the lookup until the Addr method is called. -type LazyProc struct { - Name string - - mu sync.Mutex - l *LazyDLL - proc *Proc -} - -// Find searches DLL for procedure named p.Name. It returns -// an error if search fails. Find will not search procedure, -// if it is already found and loaded into memory. -func (p *LazyProc) Find() error { - // Non-racy version of: - // if p.proc == nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { - p.mu.Lock() - defer p.mu.Unlock() - if p.proc == nil { - e := p.l.Load() - if e != nil { - return e - } - proc, e := p.l.dll.FindProc(p.Name) - if e != nil { - return e - } - // Non-racy version of: - // p.proc = proc - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) - } - } - return nil -} - -// mustFind is like Find but panics if search fails. -func (p *LazyProc) mustFind() { - e := p.Find() - if e != nil { - panic(e) - } -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -// It will panic if the procedure cannot be found. -func (p *LazyProc) Addr() uintptr { - p.mustFind() - return p.proc.Addr() -} - -//go:uintptrescapes - -// Call executes procedure p with arguments a. It will panic, if more than 15 arguments -// are supplied. It will also panic if the procedure cannot be found. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - p.mustFind() - return p.proc.Call(a...) -} - -var canDoSearchSystem32Once struct { - sync.Once - v bool -} - -func initCanDoSearchSystem32() { - // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: - // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows - // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on - // systems that have KB2533623 installed. To determine whether the - // flags are available, use GetProcAddress to get the address of the - // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories - // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* - // flags can be used with LoadLibraryEx." - canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) -} - -func canDoSearchSystem32() bool { - canDoSearchSystem32Once.Do(initCanDoSearchSystem32) - return canDoSearchSystem32Once.v -} - -func isBaseName(name string) bool { - for _, c := range name { - if c == ':' || c == '/' || c == '\\' { - return false - } - } - return true -} - -// loadLibraryEx wraps the Windows LoadLibraryEx function. -// -// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx -// -// If name is not an absolute path, LoadLibraryEx searches for the DLL -// in a variety of automatic locations unless constrained by flags. -// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx -func loadLibraryEx(name string, system bool) (*DLL, error) { - loadDLL := name - var flags uintptr - if system { - if canDoSearchSystem32() { - flags = LOAD_LIBRARY_SEARCH_SYSTEM32 - } else if isBaseName(name) { - // WindowsXP or unpatched Windows machine - // trying to load "foo.dll" out of the system - // folder, but LoadLibraryEx doesn't support - // that yet on their system, so emulate it. - systemdir, err := GetSystemDirectory() - if err != nil { - return nil, err - } - loadDLL = systemdir + "\\" + name - } - } - h, err := LoadLibraryEx(loadDLL, 0, flags) - if err != nil { - return nil, err - } - return &DLL{Name: name, Handle: h}, nil -} - -type errString string - -func (s errString) Error() string { return string(s) } diff --git a/backend/vendor/golang.org/x/sys/windows/empty.s b/backend/vendor/golang.org/x/sys/windows/empty.s deleted file mode 100644 index fdbbbcd3..00000000 --- a/backend/vendor/golang.org/x/sys/windows/empty.s +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.12 -// +build !go1.12 - -// This file is here to allow bodyless functions with go:linkname for Go 1.11 -// and earlier (see https://golang.org/issue/23311). diff --git a/backend/vendor/golang.org/x/sys/windows/env_windows.go b/backend/vendor/golang.org/x/sys/windows/env_windows.go deleted file mode 100644 index b8ad1925..00000000 --- a/backend/vendor/golang.org/x/sys/windows/env_windows.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Windows environment variables. - -package windows - -import ( - "syscall" - "unsafe" -) - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -func Environ() []string { - return syscall.Environ() -} - -// Returns a default environment associated with the token, rather than the current -// process. If inheritExisting is true, then this environment also inherits the -// environment of the current process. -func (token Token) Environ(inheritExisting bool) (env []string, err error) { - var block *uint16 - err = CreateEnvironmentBlock(&block, token, inheritExisting) - if err != nil { - return nil, err - } - defer DestroyEnvironmentBlock(block) - blockp := unsafe.Pointer(block) - for { - entry := UTF16PtrToString((*uint16)(blockp)) - if len(entry) == 0 { - break - } - env = append(env, entry) - blockp = unsafe.Add(blockp, 2*(len(entry)+1)) - } - return env, nil -} - -func Unsetenv(key string) error { - return syscall.Unsetenv(key) -} diff --git a/backend/vendor/golang.org/x/sys/windows/eventlog.go b/backend/vendor/golang.org/x/sys/windows/eventlog.go deleted file mode 100644 index 2cd60645..00000000 --- a/backend/vendor/golang.org/x/sys/windows/eventlog.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -package windows - -const ( - EVENTLOG_SUCCESS = 0 - EVENTLOG_ERROR_TYPE = 1 - EVENTLOG_WARNING_TYPE = 2 - EVENTLOG_INFORMATION_TYPE = 4 - EVENTLOG_AUDIT_SUCCESS = 8 - EVENTLOG_AUDIT_FAILURE = 16 -) - -//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW -//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource -//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/backend/vendor/golang.org/x/sys/windows/exec_windows.go b/backend/vendor/golang.org/x/sys/windows/exec_windows.go deleted file mode 100644 index a52e0331..00000000 --- a/backend/vendor/golang.org/x/sys/windows/exec_windows.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Fork, exec, wait, etc. - -package windows - -import ( - errorspkg "errors" - "unsafe" -) - -// EscapeArg rewrites command line argument s as prescribed -// in http://msdn.microsoft.com/en-us/library/ms880421. -// This function returns "" (2 double quotes) if s is empty. -// Alternatively, these transformations are done: -// - every back slash (\) is doubled, but only if immediately -// followed by double quote ("); -// - every double quote (") is escaped by back slash (\); -// - finally, s is wrapped with double quotes (arg -> "arg"), -// but only if there is space or tab inside s. -func EscapeArg(s string) string { - if len(s) == 0 { - return "\"\"" - } - n := len(s) - hasSpace := false - for i := 0; i < len(s); i++ { - switch s[i] { - case '"', '\\': - n++ - case ' ', '\t': - hasSpace = true - } - } - if hasSpace { - n += 2 - } - if n == len(s) { - return s - } - - qs := make([]byte, n) - j := 0 - if hasSpace { - qs[j] = '"' - j++ - } - slashes := 0 - for i := 0; i < len(s); i++ { - switch s[i] { - default: - slashes = 0 - qs[j] = s[i] - case '\\': - slashes++ - qs[j] = s[i] - case '"': - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '\\' - j++ - qs[j] = s[i] - } - j++ - } - if hasSpace { - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '"' - j++ - } - return string(qs[:j]) -} - -// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, -// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, -// or any program that uses CommandLineToArgv. -func ComposeCommandLine(args []string) string { - var commandLine string - for i := range args { - if i > 0 { - commandLine += " " - } - commandLine += EscapeArg(args[i]) - } - return commandLine -} - -// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, -// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that -// command lines are passed around. -// DecomposeCommandLine returns error if commandLine contains NUL. -func DecomposeCommandLine(commandLine string) ([]string, error) { - if len(commandLine) == 0 { - return []string{}, nil - } - utf16CommandLine, err := UTF16FromString(commandLine) - if err != nil { - return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") - } - var argc int32 - argv, err := CommandLineToArgv(&utf16CommandLine[0], &argc) - if err != nil { - return nil, err - } - defer LocalFree(Handle(unsafe.Pointer(argv))) - var args []string - for _, v := range (*argv)[:argc] { - args = append(args, UTF16ToString((*v)[:])) - } - return args, nil -} - -func CloseOnExec(fd Handle) { - SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) -} - -// FullPath retrieves the full path of the specified file. -func FullPath(name string) (path string, err error) { - p, err := UTF16PtrFromString(name) - if err != nil { - return "", err - } - n := uint32(100) - for { - buf := make([]uint16, n) - n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) - if err != nil { - return "", err - } - if n <= uint32(len(buf)) { - return UTF16ToString(buf[:n]), nil - } - } -} - -// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. -func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) { - var size uintptr - err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) - if err != ERROR_INSUFFICIENT_BUFFER { - if err == nil { - return nil, errorspkg.New("unable to query buffer size from InitializeProcThreadAttributeList") - } - return nil, err - } - alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) - if err != nil { - return nil, err - } - // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. - al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))} - err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) - if err != nil { - return nil, err - } - return al, err -} - -// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. -func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { - al.pointers = append(al.pointers, value) - return updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil) -} - -// Delete frees ProcThreadAttributeList's resources. -func (al *ProcThreadAttributeListContainer) Delete() { - deleteProcThreadAttributeList(al.data) - LocalFree(Handle(unsafe.Pointer(al.data))) - al.data = nil - al.pointers = nil -} - -// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. -func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { - return al.data -} diff --git a/backend/vendor/golang.org/x/sys/windows/memory_windows.go b/backend/vendor/golang.org/x/sys/windows/memory_windows.go deleted file mode 100644 index 6dc0920a..00000000 --- a/backend/vendor/golang.org/x/sys/windows/memory_windows.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -const ( - MEM_COMMIT = 0x00001000 - MEM_RESERVE = 0x00002000 - MEM_DECOMMIT = 0x00004000 - MEM_RELEASE = 0x00008000 - MEM_RESET = 0x00080000 - MEM_TOP_DOWN = 0x00100000 - MEM_WRITE_WATCH = 0x00200000 - MEM_PHYSICAL = 0x00400000 - MEM_RESET_UNDO = 0x01000000 - MEM_LARGE_PAGES = 0x20000000 - - PAGE_NOACCESS = 0x00000001 - PAGE_READONLY = 0x00000002 - PAGE_READWRITE = 0x00000004 - PAGE_WRITECOPY = 0x00000008 - PAGE_EXECUTE = 0x00000010 - PAGE_EXECUTE_READ = 0x00000020 - PAGE_EXECUTE_READWRITE = 0x00000040 - PAGE_EXECUTE_WRITECOPY = 0x00000080 - PAGE_GUARD = 0x00000100 - PAGE_NOCACHE = 0x00000200 - PAGE_WRITECOMBINE = 0x00000400 - PAGE_TARGETS_INVALID = 0x40000000 - PAGE_TARGETS_NO_UPDATE = 0x40000000 - - QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 - QUOTA_LIMITS_HARDWS_MIN_ENABLE = 0x00000001 - QUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008 - QUOTA_LIMITS_HARDWS_MAX_ENABLE = 0x00000004 -) - -type MemoryBasicInformation struct { - BaseAddress uintptr - AllocationBase uintptr - AllocationProtect uint32 - PartitionId uint16 - RegionSize uintptr - State uint32 - Protect uint32 - Type uint32 -} diff --git a/backend/vendor/golang.org/x/sys/windows/mkerrors.bash b/backend/vendor/golang.org/x/sys/windows/mkerrors.bash deleted file mode 100644 index 58e0188f..00000000 --- a/backend/vendor/golang.org/x/sys/windows/mkerrors.bash +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash - -# Copyright 2019 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -set -e -shopt -s nullglob - -winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)" -[[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; } -ntstatus="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)" -[[ -n $ntstatus ]] || { echo "Unable to find ntstatus.h" >&2; exit 1; } - -declare -A errors - -{ - echo "// Code generated by 'mkerrors.bash'; DO NOT EDIT." - echo - echo "package windows" - echo "import \"syscall\"" - echo "const (" - - while read -r line; do - unset vtype - if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - vtype="${BASH_REMATCH[2]}" - elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - vtype="${BASH_REMATCH[2]}" - else - continue - fi - [[ -n $key && -n $value ]] || continue - [[ -z ${errors["$key"]} ]] || continue - errors["$key"]="$value" - if [[ -v vtype ]]; then - if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then - vtype="" - elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then - vtype="Handle" - else - vtype="syscall.Errno" - fi - last_vtype="$vtype" - else - vtype="" - if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then - value="S_OK" - elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then - value="ERROR_SUCCESS" - fi - fi - - echo "$key $vtype = $value" - done < "$winerror" - - while read -r line; do - [[ $line =~ ^#define\ (STATUS_[^\s]+)\ +\(\(NTSTATUS\)((0x)?[0-9a-fA-F]+)L?\) ]] || continue - echo "${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}" - done < "$ntstatus" - - echo ")" -} | gofmt > "zerrors_windows.go" diff --git a/backend/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/backend/vendor/golang.org/x/sys/windows/mkknownfolderids.bash deleted file mode 100644 index ab8924e9..00000000 --- a/backend/vendor/golang.org/x/sys/windows/mkknownfolderids.bash +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -# Copyright 2019 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -set -e -shopt -s nullglob - -knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" -[[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } - -{ - echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." - echo - echo "package windows" - echo "type KNOWNFOLDERID GUID" - echo "var (" - while read -r line; do - [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue - printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ - "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ - $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ - $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) - done < "$knownfolders" - echo ")" -} | gofmt > "zknownfolderids_windows.go" diff --git a/backend/vendor/golang.org/x/sys/windows/mksyscall.go b/backend/vendor/golang.org/x/sys/windows/mksyscall.go deleted file mode 100644 index 8563f79c..00000000 --- a/backend/vendor/golang.org/x/sys/windows/mksyscall.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build generate -// +build generate - -package windows - -//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go diff --git a/backend/vendor/golang.org/x/sys/windows/race.go b/backend/vendor/golang.org/x/sys/windows/race.go deleted file mode 100644 index 9196b089..00000000 --- a/backend/vendor/golang.org/x/sys/windows/race.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows && race -// +build windows,race - -package windows - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/backend/vendor/golang.org/x/sys/windows/race0.go b/backend/vendor/golang.org/x/sys/windows/race0.go deleted file mode 100644 index 7bae4817..00000000 --- a/backend/vendor/golang.org/x/sys/windows/race0.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows && !race -// +build windows,!race - -package windows - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/backend/vendor/golang.org/x/sys/windows/registry/key.go b/backend/vendor/golang.org/x/sys/windows/registry/key.go deleted file mode 100644 index 6c8d97b6..00000000 --- a/backend/vendor/golang.org/x/sys/windows/registry/key.go +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -// Package registry provides access to the Windows registry. -// -// Here is a simple example, opening a registry key and reading a string value from it. -// -// k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) -// if err != nil { -// log.Fatal(err) -// } -// defer k.Close() -// -// s, _, err := k.GetStringValue("SystemRoot") -// if err != nil { -// log.Fatal(err) -// } -// fmt.Printf("Windows system root is %q\n", s) -package registry - -import ( - "io" - "runtime" - "syscall" - "time" -) - -const ( - // Registry key security and access rights. - // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724878.aspx - // for details. - ALL_ACCESS = 0xf003f - CREATE_LINK = 0x00020 - CREATE_SUB_KEY = 0x00004 - ENUMERATE_SUB_KEYS = 0x00008 - EXECUTE = 0x20019 - NOTIFY = 0x00010 - QUERY_VALUE = 0x00001 - READ = 0x20019 - SET_VALUE = 0x00002 - WOW64_32KEY = 0x00200 - WOW64_64KEY = 0x00100 - WRITE = 0x20006 -) - -// Key is a handle to an open Windows registry key. -// Keys can be obtained by calling OpenKey; there are -// also some predefined root keys such as CURRENT_USER. -// Keys can be used directly in the Windows API. -type Key syscall.Handle - -const ( - // Windows defines some predefined root keys that are always open. - // An application can use these keys as entry points to the registry. - // Normally these keys are used in OpenKey to open new keys, - // but they can also be used anywhere a Key is required. - CLASSES_ROOT = Key(syscall.HKEY_CLASSES_ROOT) - CURRENT_USER = Key(syscall.HKEY_CURRENT_USER) - LOCAL_MACHINE = Key(syscall.HKEY_LOCAL_MACHINE) - USERS = Key(syscall.HKEY_USERS) - CURRENT_CONFIG = Key(syscall.HKEY_CURRENT_CONFIG) - PERFORMANCE_DATA = Key(syscall.HKEY_PERFORMANCE_DATA) -) - -// Close closes open key k. -func (k Key) Close() error { - return syscall.RegCloseKey(syscall.Handle(k)) -} - -// OpenKey opens a new key with path name relative to key k. -// It accepts any open key, including CURRENT_USER and others, -// and returns the new key and an error. -// The access parameter specifies desired access rights to the -// key to be opened. -func OpenKey(k Key, path string, access uint32) (Key, error) { - p, err := syscall.UTF16PtrFromString(path) - if err != nil { - return 0, err - } - var subkey syscall.Handle - err = syscall.RegOpenKeyEx(syscall.Handle(k), p, 0, access, &subkey) - if err != nil { - return 0, err - } - return Key(subkey), nil -} - -// OpenRemoteKey opens a predefined registry key on another -// computer pcname. The key to be opened is specified by k, but -// can only be one of LOCAL_MACHINE, PERFORMANCE_DATA or USERS. -// If pcname is "", OpenRemoteKey returns local computer key. -func OpenRemoteKey(pcname string, k Key) (Key, error) { - var err error - var p *uint16 - if pcname != "" { - p, err = syscall.UTF16PtrFromString(`\\` + pcname) - if err != nil { - return 0, err - } - } - var remoteKey syscall.Handle - err = regConnectRegistry(p, syscall.Handle(k), &remoteKey) - if err != nil { - return 0, err - } - return Key(remoteKey), nil -} - -// ReadSubKeyNames returns the names of subkeys of key k. -// The parameter n controls the number of returned names, -// analogous to the way os.File.Readdirnames works. -func (k Key) ReadSubKeyNames(n int) ([]string, error) { - // RegEnumKeyEx must be called repeatedly and to completion. - // During this time, this goroutine cannot migrate away from - // its current thread. See https://golang.org/issue/49320 and - // https://golang.org/issue/49466. - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - names := make([]string, 0) - // Registry key size limit is 255 bytes and described there: - // https://msdn.microsoft.com/library/windows/desktop/ms724872.aspx - buf := make([]uint16, 256) //plus extra room for terminating zero byte -loopItems: - for i := uint32(0); ; i++ { - if n > 0 { - if len(names) == n { - return names, nil - } - } - l := uint32(len(buf)) - for { - err := syscall.RegEnumKeyEx(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil) - if err == nil { - break - } - if err == syscall.ERROR_MORE_DATA { - // Double buffer size and try again. - l = uint32(2 * len(buf)) - buf = make([]uint16, l) - continue - } - if err == _ERROR_NO_MORE_ITEMS { - break loopItems - } - return names, err - } - names = append(names, syscall.UTF16ToString(buf[:l])) - } - if n > len(names) { - return names, io.EOF - } - return names, nil -} - -// CreateKey creates a key named path under open key k. -// CreateKey returns the new key and a boolean flag that reports -// whether the key already existed. -// The access parameter specifies the access rights for the key -// to be created. -func CreateKey(k Key, path string, access uint32) (newk Key, openedExisting bool, err error) { - var h syscall.Handle - var d uint32 - err = regCreateKeyEx(syscall.Handle(k), syscall.StringToUTF16Ptr(path), - 0, nil, _REG_OPTION_NON_VOLATILE, access, nil, &h, &d) - if err != nil { - return 0, false, err - } - return Key(h), d == _REG_OPENED_EXISTING_KEY, nil -} - -// DeleteKey deletes the subkey path of key k and its values. -func DeleteKey(k Key, path string) error { - return regDeleteKey(syscall.Handle(k), syscall.StringToUTF16Ptr(path)) -} - -// A KeyInfo describes the statistics of a key. It is returned by Stat. -type KeyInfo struct { - SubKeyCount uint32 - MaxSubKeyLen uint32 // size of the key's subkey with the longest name, in Unicode characters, not including the terminating zero byte - ValueCount uint32 - MaxValueNameLen uint32 // size of the key's longest value name, in Unicode characters, not including the terminating zero byte - MaxValueLen uint32 // longest data component among the key's values, in bytes - lastWriteTime syscall.Filetime -} - -// ModTime returns the key's last write time. -func (ki *KeyInfo) ModTime() time.Time { - return time.Unix(0, ki.lastWriteTime.Nanoseconds()) -} - -// Stat retrieves information about the open key k. -func (k Key) Stat() (*KeyInfo, error) { - var ki KeyInfo - err := syscall.RegQueryInfoKey(syscall.Handle(k), nil, nil, nil, - &ki.SubKeyCount, &ki.MaxSubKeyLen, nil, &ki.ValueCount, - &ki.MaxValueNameLen, &ki.MaxValueLen, nil, &ki.lastWriteTime) - if err != nil { - return nil, err - } - return &ki, nil -} diff --git a/backend/vendor/golang.org/x/sys/windows/registry/mksyscall.go b/backend/vendor/golang.org/x/sys/windows/registry/mksyscall.go deleted file mode 100644 index ee74927d..00000000 --- a/backend/vendor/golang.org/x/sys/windows/registry/mksyscall.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build generate -// +build generate - -package registry - -//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go syscall.go diff --git a/backend/vendor/golang.org/x/sys/windows/registry/syscall.go b/backend/vendor/golang.org/x/sys/windows/registry/syscall.go deleted file mode 100644 index 41733512..00000000 --- a/backend/vendor/golang.org/x/sys/windows/registry/syscall.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -package registry - -import "syscall" - -const ( - _REG_OPTION_NON_VOLATILE = 0 - - _REG_CREATED_NEW_KEY = 1 - _REG_OPENED_EXISTING_KEY = 2 - - _ERROR_NO_MORE_ITEMS syscall.Errno = 259 -) - -func LoadRegLoadMUIString() error { - return procRegLoadMUIStringW.Find() -} - -//sys regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW -//sys regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) = advapi32.RegDeleteKeyW -//sys regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) = advapi32.RegSetValueExW -//sys regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegEnumValueW -//sys regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) = advapi32.RegDeleteValueW -//sys regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) = advapi32.RegLoadMUIStringW -//sys regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) = advapi32.RegConnectRegistryW - -//sys expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW diff --git a/backend/vendor/golang.org/x/sys/windows/registry/value.go b/backend/vendor/golang.org/x/sys/windows/registry/value.go deleted file mode 100644 index 2789f6f1..00000000 --- a/backend/vendor/golang.org/x/sys/windows/registry/value.go +++ /dev/null @@ -1,387 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -package registry - -import ( - "errors" - "io" - "syscall" - "unicode/utf16" - "unsafe" -) - -const ( - // Registry value types. - NONE = 0 - SZ = 1 - EXPAND_SZ = 2 - BINARY = 3 - DWORD = 4 - DWORD_BIG_ENDIAN = 5 - LINK = 6 - MULTI_SZ = 7 - RESOURCE_LIST = 8 - FULL_RESOURCE_DESCRIPTOR = 9 - RESOURCE_REQUIREMENTS_LIST = 10 - QWORD = 11 -) - -var ( - // ErrShortBuffer is returned when the buffer was too short for the operation. - ErrShortBuffer = syscall.ERROR_MORE_DATA - - // ErrNotExist is returned when a registry key or value does not exist. - ErrNotExist = syscall.ERROR_FILE_NOT_FOUND - - // ErrUnexpectedType is returned by Get*Value when the value's type was unexpected. - ErrUnexpectedType = errors.New("unexpected key value type") -) - -// GetValue retrieves the type and data for the specified value associated -// with an open key k. It fills up buffer buf and returns the retrieved -// byte count n. If buf is too small to fit the stored value it returns -// ErrShortBuffer error along with the required buffer size n. -// If no buffer is provided, it returns true and actual buffer size n. -// If no buffer is provided, GetValue returns the value's type only. -// If the value does not exist, the error returned is ErrNotExist. -// -// GetValue is a low level function. If value's type is known, use the appropriate -// Get*Value function instead. -func (k Key) GetValue(name string, buf []byte) (n int, valtype uint32, err error) { - pname, err := syscall.UTF16PtrFromString(name) - if err != nil { - return 0, 0, err - } - var pbuf *byte - if len(buf) > 0 { - pbuf = (*byte)(unsafe.Pointer(&buf[0])) - } - l := uint32(len(buf)) - err = syscall.RegQueryValueEx(syscall.Handle(k), pname, nil, &valtype, pbuf, &l) - if err != nil { - return int(l), valtype, err - } - return int(l), valtype, nil -} - -func (k Key) getValue(name string, buf []byte) (data []byte, valtype uint32, err error) { - p, err := syscall.UTF16PtrFromString(name) - if err != nil { - return nil, 0, err - } - var t uint32 - n := uint32(len(buf)) - for { - err = syscall.RegQueryValueEx(syscall.Handle(k), p, nil, &t, (*byte)(unsafe.Pointer(&buf[0])), &n) - if err == nil { - return buf[:n], t, nil - } - if err != syscall.ERROR_MORE_DATA { - return nil, 0, err - } - if n <= uint32(len(buf)) { - return nil, 0, err - } - buf = make([]byte, n) - } -} - -// GetStringValue retrieves the string value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetStringValue returns ErrNotExist. -// If value is not SZ or EXPAND_SZ, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetStringValue(name string) (val string, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 64)) - if err2 != nil { - return "", typ, err2 - } - switch typ { - case SZ, EXPAND_SZ: - default: - return "", typ, ErrUnexpectedType - } - if len(data) == 0 { - return "", typ, nil - } - u := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[: len(data)/2 : len(data)/2] - return syscall.UTF16ToString(u), typ, nil -} - -// GetMUIStringValue retrieves the localized string value for -// the specified value name associated with an open key k. -// If the value name doesn't exist or the localized string value -// can't be resolved, GetMUIStringValue returns ErrNotExist. -// GetMUIStringValue panics if the system doesn't support -// regLoadMUIString; use LoadRegLoadMUIString to check if -// regLoadMUIString is supported before calling this function. -func (k Key) GetMUIStringValue(name string) (string, error) { - pname, err := syscall.UTF16PtrFromString(name) - if err != nil { - return "", err - } - - buf := make([]uint16, 1024) - var buflen uint32 - var pdir *uint16 - - err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) - if err == syscall.ERROR_FILE_NOT_FOUND { // Try fallback path - - // Try to resolve the string value using the system directory as - // a DLL search path; this assumes the string value is of the form - // @[path]\dllname,-strID but with no path given, e.g. @tzres.dll,-320. - - // This approach works with tzres.dll but may have to be revised - // in the future to allow callers to provide custom search paths. - - var s string - s, err = ExpandString("%SystemRoot%\\system32\\") - if err != nil { - return "", err - } - pdir, err = syscall.UTF16PtrFromString(s) - if err != nil { - return "", err - } - - err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) - } - - for err == syscall.ERROR_MORE_DATA { // Grow buffer if needed - if buflen <= uint32(len(buf)) { - break // Buffer not growing, assume race; break - } - buf = make([]uint16, buflen) - err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) - } - - if err != nil { - return "", err - } - - return syscall.UTF16ToString(buf), nil -} - -// ExpandString expands environment-variable strings and replaces -// them with the values defined for the current user. -// Use ExpandString to expand EXPAND_SZ strings. -func ExpandString(value string) (string, error) { - if value == "" { - return "", nil - } - p, err := syscall.UTF16PtrFromString(value) - if err != nil { - return "", err - } - r := make([]uint16, 100) - for { - n, err := expandEnvironmentStrings(p, &r[0], uint32(len(r))) - if err != nil { - return "", err - } - if n <= uint32(len(r)) { - return syscall.UTF16ToString(r[:n]), nil - } - r = make([]uint16, n) - } -} - -// GetStringsValue retrieves the []string value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetStringsValue returns ErrNotExist. -// If value is not MULTI_SZ, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetStringsValue(name string) (val []string, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 64)) - if err2 != nil { - return nil, typ, err2 - } - if typ != MULTI_SZ { - return nil, typ, ErrUnexpectedType - } - if len(data) == 0 { - return nil, typ, nil - } - p := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[: len(data)/2 : len(data)/2] - if len(p) == 0 { - return nil, typ, nil - } - if p[len(p)-1] == 0 { - p = p[:len(p)-1] // remove terminating null - } - val = make([]string, 0, 5) - from := 0 - for i, c := range p { - if c == 0 { - val = append(val, string(utf16.Decode(p[from:i]))) - from = i + 1 - } - } - return val, typ, nil -} - -// GetIntegerValue retrieves the integer value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetIntegerValue returns ErrNotExist. -// If value is not DWORD or QWORD, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetIntegerValue(name string) (val uint64, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 8)) - if err2 != nil { - return 0, typ, err2 - } - switch typ { - case DWORD: - if len(data) != 4 { - return 0, typ, errors.New("DWORD value is not 4 bytes long") - } - var val32 uint32 - copy((*[4]byte)(unsafe.Pointer(&val32))[:], data) - return uint64(val32), DWORD, nil - case QWORD: - if len(data) != 8 { - return 0, typ, errors.New("QWORD value is not 8 bytes long") - } - copy((*[8]byte)(unsafe.Pointer(&val))[:], data) - return val, QWORD, nil - default: - return 0, typ, ErrUnexpectedType - } -} - -// GetBinaryValue retrieves the binary value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetBinaryValue returns ErrNotExist. -// If value is not BINARY, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetBinaryValue(name string) (val []byte, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 64)) - if err2 != nil { - return nil, typ, err2 - } - if typ != BINARY { - return nil, typ, ErrUnexpectedType - } - return data, typ, nil -} - -func (k Key) setValue(name string, valtype uint32, data []byte) error { - p, err := syscall.UTF16PtrFromString(name) - if err != nil { - return err - } - if len(data) == 0 { - return regSetValueEx(syscall.Handle(k), p, 0, valtype, nil, 0) - } - return regSetValueEx(syscall.Handle(k), p, 0, valtype, &data[0], uint32(len(data))) -} - -// SetDWordValue sets the data and type of a name value -// under key k to value and DWORD. -func (k Key) SetDWordValue(name string, value uint32) error { - return k.setValue(name, DWORD, (*[4]byte)(unsafe.Pointer(&value))[:]) -} - -// SetQWordValue sets the data and type of a name value -// under key k to value and QWORD. -func (k Key) SetQWordValue(name string, value uint64) error { - return k.setValue(name, QWORD, (*[8]byte)(unsafe.Pointer(&value))[:]) -} - -func (k Key) setStringValue(name string, valtype uint32, value string) error { - v, err := syscall.UTF16FromString(value) - if err != nil { - return err - } - buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[: len(v)*2 : len(v)*2] - return k.setValue(name, valtype, buf) -} - -// SetStringValue sets the data and type of a name value -// under key k to value and SZ. The value must not contain a zero byte. -func (k Key) SetStringValue(name, value string) error { - return k.setStringValue(name, SZ, value) -} - -// SetExpandStringValue sets the data and type of a name value -// under key k to value and EXPAND_SZ. The value must not contain a zero byte. -func (k Key) SetExpandStringValue(name, value string) error { - return k.setStringValue(name, EXPAND_SZ, value) -} - -// SetStringsValue sets the data and type of a name value -// under key k to value and MULTI_SZ. The value strings -// must not contain a zero byte. -func (k Key) SetStringsValue(name string, value []string) error { - ss := "" - for _, s := range value { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return errors.New("string cannot have 0 inside") - } - } - ss += s + "\x00" - } - v := utf16.Encode([]rune(ss + "\x00")) - buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[: len(v)*2 : len(v)*2] - return k.setValue(name, MULTI_SZ, buf) -} - -// SetBinaryValue sets the data and type of a name value -// under key k to value and BINARY. -func (k Key) SetBinaryValue(name string, value []byte) error { - return k.setValue(name, BINARY, value) -} - -// DeleteValue removes a named value from the key k. -func (k Key) DeleteValue(name string) error { - return regDeleteValue(syscall.Handle(k), syscall.StringToUTF16Ptr(name)) -} - -// ReadValueNames returns the value names of key k. -// The parameter n controls the number of returned names, -// analogous to the way os.File.Readdirnames works. -func (k Key) ReadValueNames(n int) ([]string, error) { - ki, err := k.Stat() - if err != nil { - return nil, err - } - names := make([]string, 0, ki.ValueCount) - buf := make([]uint16, ki.MaxValueNameLen+1) // extra room for terminating null character -loopItems: - for i := uint32(0); ; i++ { - if n > 0 { - if len(names) == n { - return names, nil - } - } - l := uint32(len(buf)) - for { - err := regEnumValue(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil) - if err == nil { - break - } - if err == syscall.ERROR_MORE_DATA { - // Double buffer size and try again. - l = uint32(2 * len(buf)) - buf = make([]uint16, l) - continue - } - if err == _ERROR_NO_MORE_ITEMS { - break loopItems - } - return names, err - } - names = append(names, syscall.UTF16ToString(buf[:l])) - } - if n > len(names) { - return names, io.EOF - } - return names, nil -} diff --git a/backend/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go b/backend/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go deleted file mode 100644 index fc1835d8..00000000 --- a/backend/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by 'go generate'; DO NOT EDIT. - -package registry - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - - procRegConnectRegistryW = modadvapi32.NewProc("RegConnectRegistryW") - procRegCreateKeyExW = modadvapi32.NewProc("RegCreateKeyExW") - procRegDeleteKeyW = modadvapi32.NewProc("RegDeleteKeyW") - procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW") - procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") - procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW") - procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW") - procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") -) - -func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegConnectRegistryW.Addr(), 3, uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegLoadMUIStringW.Addr(), 7, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)), 0, 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/sys/windows/security_windows.go b/backend/vendor/golang.org/x/sys/windows/security_windows.go deleted file mode 100644 index d414ef13..00000000 --- a/backend/vendor/golang.org/x/sys/windows/security_windows.go +++ /dev/null @@ -1,1444 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/internal/unsafeheader" -) - -const ( - NameUnknown = 0 - NameFullyQualifiedDN = 1 - NameSamCompatible = 2 - NameDisplay = 3 - NameUniqueId = 6 - NameCanonical = 7 - NameUserPrincipal = 8 - NameCanonicalEx = 9 - NameServicePrincipal = 10 - NameDnsDomain = 12 -) - -// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. -// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx -//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW -//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW - -// TranslateAccountName converts a directory service -// object name from one format to another. -func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { - u, e := UTF16PtrFromString(username) - if e != nil { - return "", e - } - n := uint32(50) - for { - b := make([]uint16, n) - e = TranslateName(u, from, to, &b[0], &n) - if e == nil { - return UTF16ToString(b[:n]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -const ( - // do not reorder - NetSetupUnknownStatus = iota - NetSetupUnjoined - NetSetupWorkgroupName - NetSetupDomainName -) - -type UserInfo10 struct { - Name *uint16 - Comment *uint16 - UsrComment *uint16 - FullName *uint16 -} - -//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo -//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation -//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree - -const ( - // do not reorder - SidTypeUser = 1 + iota - SidTypeGroup - SidTypeDomain - SidTypeAlias - SidTypeWellKnownGroup - SidTypeDeletedAccount - SidTypeInvalid - SidTypeUnknown - SidTypeComputer - SidTypeLabel -) - -type SidIdentifierAuthority struct { - Value [6]byte -} - -var ( - SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} - SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} - SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} - SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} - SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} - SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} - SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} -) - -const ( - SECURITY_NULL_RID = 0 - SECURITY_WORLD_RID = 0 - SECURITY_LOCAL_RID = 0 - SECURITY_CREATOR_OWNER_RID = 0 - SECURITY_CREATOR_GROUP_RID = 1 - SECURITY_DIALUP_RID = 1 - SECURITY_NETWORK_RID = 2 - SECURITY_BATCH_RID = 3 - SECURITY_INTERACTIVE_RID = 4 - SECURITY_LOGON_IDS_RID = 5 - SECURITY_SERVICE_RID = 6 - SECURITY_LOCAL_SYSTEM_RID = 18 - SECURITY_BUILTIN_DOMAIN_RID = 32 - SECURITY_PRINCIPAL_SELF_RID = 10 - SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 - SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 - SECURITY_LOGON_IDS_RID_COUNT = 0x3 - SECURITY_ANONYMOUS_LOGON_RID = 0x7 - SECURITY_PROXY_RID = 0x8 - SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 - SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID - SECURITY_AUTHENTICATED_USER_RID = 0xb - SECURITY_RESTRICTED_CODE_RID = 0xc - SECURITY_NT_NON_UNIQUE_RID = 0x15 -) - -// Predefined domain-relative RIDs for local groups. -// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx -const ( - DOMAIN_ALIAS_RID_ADMINS = 0x220 - DOMAIN_ALIAS_RID_USERS = 0x221 - DOMAIN_ALIAS_RID_GUESTS = 0x222 - DOMAIN_ALIAS_RID_POWER_USERS = 0x223 - DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 - DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 - DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 - DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 - DOMAIN_ALIAS_RID_REPLICATOR = 0x228 - DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 - DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a - DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b - DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c - DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d - DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e - DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f - DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 - DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 - DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 - DOMAIN_ALIAS_RID_IUSERS = 0x238 - DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 - DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b - DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c - DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d - DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e -) - -//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW -//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW -//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW -//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW -//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid -//sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid -//sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid -//sys createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid -//sys isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid -//sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid -//sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid -//sys getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority -//sys getSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount -//sys getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority -//sys isValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid - -// The security identifier (SID) structure is a variable-length -// structure used to uniquely identify users or groups. -type SID struct{} - -// StringToSid converts a string-format security identifier -// SID into a valid, functional SID. -func StringToSid(s string) (*SID, error) { - var sid *SID - p, e := UTF16PtrFromString(s) - if e != nil { - return nil, e - } - e = ConvertStringSidToSid(p, &sid) - if e != nil { - return nil, e - } - defer LocalFree((Handle)(unsafe.Pointer(sid))) - return sid.Copy() -} - -// LookupSID retrieves a security identifier SID for the account -// and the name of the domain on which the account was found. -// System specify target computer to search. -func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { - if len(account) == 0 { - return nil, "", 0, syscall.EINVAL - } - acc, e := UTF16PtrFromString(account) - if e != nil { - return nil, "", 0, e - } - var sys *uint16 - if len(system) > 0 { - sys, e = UTF16PtrFromString(system) - if e != nil { - return nil, "", 0, e - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]byte, n) - db := make([]uint16, dn) - sid = (*SID)(unsafe.Pointer(&b[0])) - e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) - if e == nil { - return sid, UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, "", 0, e - } - if n <= uint32(len(b)) { - return nil, "", 0, e - } - } -} - -// String converts SID to a string format suitable for display, storage, or transmission. -func (sid *SID) String() string { - var s *uint16 - e := ConvertSidToStringSid(sid, &s) - if e != nil { - return "" - } - defer LocalFree((Handle)(unsafe.Pointer(s))) - return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) -} - -// Len returns the length, in bytes, of a valid security identifier SID. -func (sid *SID) Len() int { - return int(GetLengthSid(sid)) -} - -// Copy creates a duplicate of security identifier SID. -func (sid *SID) Copy() (*SID, error) { - b := make([]byte, sid.Len()) - sid2 := (*SID)(unsafe.Pointer(&b[0])) - e := CopySid(uint32(len(b)), sid2, sid) - if e != nil { - return nil, e - } - return sid2, nil -} - -// IdentifierAuthority returns the identifier authority of the SID. -func (sid *SID) IdentifierAuthority() SidIdentifierAuthority { - return *getSidIdentifierAuthority(sid) -} - -// SubAuthorityCount returns the number of sub-authorities in the SID. -func (sid *SID) SubAuthorityCount() uint8 { - return *getSidSubAuthorityCount(sid) -} - -// SubAuthority returns the sub-authority of the SID as specified by -// the index, which must be less than sid.SubAuthorityCount(). -func (sid *SID) SubAuthority(idx uint32) uint32 { - if idx >= uint32(sid.SubAuthorityCount()) { - panic("sub-authority index out of range") - } - return *getSidSubAuthority(sid, idx) -} - -// IsValid returns whether the SID has a valid revision and length. -func (sid *SID) IsValid() bool { - return isValidSid(sid) -} - -// Equals compares two SIDs for equality. -func (sid *SID) Equals(sid2 *SID) bool { - return EqualSid(sid, sid2) -} - -// IsWellKnown determines whether the SID matches the well-known sidType. -func (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool { - return isWellKnownSid(sid, sidType) -} - -// LookupAccount retrieves the name of the account for this SID -// and the name of the first domain on which this SID is found. -// System specify target computer to search for. -func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { - var sys *uint16 - if len(system) > 0 { - sys, err = UTF16PtrFromString(system) - if err != nil { - return "", "", 0, err - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]uint16, n) - db := make([]uint16, dn) - e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) - if e == nil { - return UTF16ToString(b), UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", "", 0, e - } - if n <= uint32(len(b)) { - return "", "", 0, e - } - } -} - -// Various types of pre-specified SIDs that can be synthesized and compared at runtime. -type WELL_KNOWN_SID_TYPE uint32 - -const ( - WinNullSid = 0 - WinWorldSid = 1 - WinLocalSid = 2 - WinCreatorOwnerSid = 3 - WinCreatorGroupSid = 4 - WinCreatorOwnerServerSid = 5 - WinCreatorGroupServerSid = 6 - WinNtAuthoritySid = 7 - WinDialupSid = 8 - WinNetworkSid = 9 - WinBatchSid = 10 - WinInteractiveSid = 11 - WinServiceSid = 12 - WinAnonymousSid = 13 - WinProxySid = 14 - WinEnterpriseControllersSid = 15 - WinSelfSid = 16 - WinAuthenticatedUserSid = 17 - WinRestrictedCodeSid = 18 - WinTerminalServerSid = 19 - WinRemoteLogonIdSid = 20 - WinLogonIdsSid = 21 - WinLocalSystemSid = 22 - WinLocalServiceSid = 23 - WinNetworkServiceSid = 24 - WinBuiltinDomainSid = 25 - WinBuiltinAdministratorsSid = 26 - WinBuiltinUsersSid = 27 - WinBuiltinGuestsSid = 28 - WinBuiltinPowerUsersSid = 29 - WinBuiltinAccountOperatorsSid = 30 - WinBuiltinSystemOperatorsSid = 31 - WinBuiltinPrintOperatorsSid = 32 - WinBuiltinBackupOperatorsSid = 33 - WinBuiltinReplicatorSid = 34 - WinBuiltinPreWindows2000CompatibleAccessSid = 35 - WinBuiltinRemoteDesktopUsersSid = 36 - WinBuiltinNetworkConfigurationOperatorsSid = 37 - WinAccountAdministratorSid = 38 - WinAccountGuestSid = 39 - WinAccountKrbtgtSid = 40 - WinAccountDomainAdminsSid = 41 - WinAccountDomainUsersSid = 42 - WinAccountDomainGuestsSid = 43 - WinAccountComputersSid = 44 - WinAccountControllersSid = 45 - WinAccountCertAdminsSid = 46 - WinAccountSchemaAdminsSid = 47 - WinAccountEnterpriseAdminsSid = 48 - WinAccountPolicyAdminsSid = 49 - WinAccountRasAndIasServersSid = 50 - WinNTLMAuthenticationSid = 51 - WinDigestAuthenticationSid = 52 - WinSChannelAuthenticationSid = 53 - WinThisOrganizationSid = 54 - WinOtherOrganizationSid = 55 - WinBuiltinIncomingForestTrustBuildersSid = 56 - WinBuiltinPerfMonitoringUsersSid = 57 - WinBuiltinPerfLoggingUsersSid = 58 - WinBuiltinAuthorizationAccessSid = 59 - WinBuiltinTerminalServerLicenseServersSid = 60 - WinBuiltinDCOMUsersSid = 61 - WinBuiltinIUsersSid = 62 - WinIUserSid = 63 - WinBuiltinCryptoOperatorsSid = 64 - WinUntrustedLabelSid = 65 - WinLowLabelSid = 66 - WinMediumLabelSid = 67 - WinHighLabelSid = 68 - WinSystemLabelSid = 69 - WinWriteRestrictedCodeSid = 70 - WinCreatorOwnerRightsSid = 71 - WinCacheablePrincipalsGroupSid = 72 - WinNonCacheablePrincipalsGroupSid = 73 - WinEnterpriseReadonlyControllersSid = 74 - WinAccountReadonlyControllersSid = 75 - WinBuiltinEventLogReadersGroup = 76 - WinNewEnterpriseReadonlyControllersSid = 77 - WinBuiltinCertSvcDComAccessGroup = 78 - WinMediumPlusLabelSid = 79 - WinLocalLogonSid = 80 - WinConsoleLogonSid = 81 - WinThisOrganizationCertificateSid = 82 - WinApplicationPackageAuthoritySid = 83 - WinBuiltinAnyPackageSid = 84 - WinCapabilityInternetClientSid = 85 - WinCapabilityInternetClientServerSid = 86 - WinCapabilityPrivateNetworkClientServerSid = 87 - WinCapabilityPicturesLibrarySid = 88 - WinCapabilityVideosLibrarySid = 89 - WinCapabilityMusicLibrarySid = 90 - WinCapabilityDocumentsLibrarySid = 91 - WinCapabilitySharedUserCertificatesSid = 92 - WinCapabilityEnterpriseAuthenticationSid = 93 - WinCapabilityRemovableStorageSid = 94 - WinBuiltinRDSRemoteAccessServersSid = 95 - WinBuiltinRDSEndpointServersSid = 96 - WinBuiltinRDSManagementServersSid = 97 - WinUserModeDriversSid = 98 - WinBuiltinHyperVAdminsSid = 99 - WinAccountCloneableControllersSid = 100 - WinBuiltinAccessControlAssistanceOperatorsSid = 101 - WinBuiltinRemoteManagementUsersSid = 102 - WinAuthenticationAuthorityAssertedSid = 103 - WinAuthenticationServiceAssertedSid = 104 - WinLocalAccountSid = 105 - WinLocalAccountAndAdministratorSid = 106 - WinAccountProtectedUsersSid = 107 - WinCapabilityAppointmentsSid = 108 - WinCapabilityContactsSid = 109 - WinAccountDefaultSystemManagedSid = 110 - WinBuiltinDefaultSystemManagedGroupSid = 111 - WinBuiltinStorageReplicaAdminsSid = 112 - WinAccountKeyAdminsSid = 113 - WinAccountEnterpriseKeyAdminsSid = 114 - WinAuthenticationKeyTrustSid = 115 - WinAuthenticationKeyPropertyMFASid = 116 - WinAuthenticationKeyPropertyAttestationSid = 117 - WinAuthenticationFreshKeyAuthSid = 118 - WinBuiltinDeviceOwnersSid = 119 -) - -// Creates a SID for a well-known predefined alias, generally using the constants of the form -// Win*Sid, for the local machine. -func CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) { - return CreateWellKnownDomainSid(sidType, nil) -} - -// Creates a SID for a well-known predefined alias, generally using the constants of the form -// Win*Sid, for the domain specified by the domainSid parameter. -func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { - n := uint32(50) - for { - b := make([]byte, n) - sid := (*SID)(unsafe.Pointer(&b[0])) - err := createWellKnownSid(sidType, domainSid, sid, &n) - if err == nil { - return sid, nil - } - if err != ERROR_INSUFFICIENT_BUFFER { - return nil, err - } - if n <= uint32(len(b)) { - return nil, err - } - } -} - -const ( - // do not reorder - TOKEN_ASSIGN_PRIMARY = 1 << iota - TOKEN_DUPLICATE - TOKEN_IMPERSONATE - TOKEN_QUERY - TOKEN_QUERY_SOURCE - TOKEN_ADJUST_PRIVILEGES - TOKEN_ADJUST_GROUPS - TOKEN_ADJUST_DEFAULT - TOKEN_ADJUST_SESSIONID - - TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | - TOKEN_ASSIGN_PRIMARY | - TOKEN_DUPLICATE | - TOKEN_IMPERSONATE | - TOKEN_QUERY | - TOKEN_QUERY_SOURCE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT | - TOKEN_ADJUST_SESSIONID - TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY - TOKEN_WRITE = STANDARD_RIGHTS_WRITE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT - TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE -) - -const ( - // do not reorder - TokenUser = 1 + iota - TokenGroups - TokenPrivileges - TokenOwner - TokenPrimaryGroup - TokenDefaultDacl - TokenSource - TokenType - TokenImpersonationLevel - TokenStatistics - TokenRestrictedSids - TokenSessionId - TokenGroupsAndPrivileges - TokenSessionReference - TokenSandBoxInert - TokenAuditPolicy - TokenOrigin - TokenElevationType - TokenLinkedToken - TokenElevation - TokenHasRestrictions - TokenAccessInformation - TokenVirtualizationAllowed - TokenVirtualizationEnabled - TokenIntegrityLevel - TokenUIAccess - TokenMandatoryPolicy - TokenLogonSid - MaxTokenInfoClass -) - -// Group attributes inside of Tokengroups.Groups[i].Attributes -const ( - SE_GROUP_MANDATORY = 0x00000001 - SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 - SE_GROUP_ENABLED = 0x00000004 - SE_GROUP_OWNER = 0x00000008 - SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 - SE_GROUP_INTEGRITY = 0x00000020 - SE_GROUP_INTEGRITY_ENABLED = 0x00000040 - SE_GROUP_LOGON_ID = 0xC0000000 - SE_GROUP_RESOURCE = 0x20000000 - SE_GROUP_VALID_ATTRIBUTES = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED -) - -// Privilege attributes -const ( - SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 - SE_PRIVILEGE_ENABLED = 0x00000002 - SE_PRIVILEGE_REMOVED = 0x00000004 - SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 - SE_PRIVILEGE_VALID_ATTRIBUTES = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS -) - -// Token types -const ( - TokenPrimary = 1 - TokenImpersonation = 2 -) - -// Impersonation levels -const ( - SecurityAnonymous = 0 - SecurityIdentification = 1 - SecurityImpersonation = 2 - SecurityDelegation = 3 -) - -type LUID struct { - LowPart uint32 - HighPart int32 -} - -type LUIDAndAttributes struct { - Luid LUID - Attributes uint32 -} - -type SIDAndAttributes struct { - Sid *SID - Attributes uint32 -} - -type Tokenuser struct { - User SIDAndAttributes -} - -type Tokenprimarygroup struct { - PrimaryGroup *SID -} - -type Tokengroups struct { - GroupCount uint32 - Groups [1]SIDAndAttributes // Use AllGroups() for iterating. -} - -// AllGroups returns a slice that can be used to iterate over the groups in g. -func (g *Tokengroups) AllGroups() []SIDAndAttributes { - return (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount] -} - -type Tokenprivileges struct { - PrivilegeCount uint32 - Privileges [1]LUIDAndAttributes // Use AllPrivileges() for iterating. -} - -// AllPrivileges returns a slice that can be used to iterate over the privileges in p. -func (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes { - return (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount] -} - -type Tokenmandatorylabel struct { - Label SIDAndAttributes -} - -func (tml *Tokenmandatorylabel) Size() uint32 { - return uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid) -} - -// Authorization Functions -//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership -//sys isTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted -//sys OpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken -//sys OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken -//sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf -//sys RevertToSelf() (err error) = advapi32.RevertToSelf -//sys SetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken -//sys LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW -//sys AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges -//sys AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups -//sys GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation -//sys SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation -//sys DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx -//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW -//sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW -//sys getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW -//sys getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW - -// An access token contains the security information for a logon session. -// The system creates an access token when a user logs on, and every -// process executed on behalf of the user has a copy of the token. -// The token identifies the user, the user's groups, and the user's -// privileges. The system uses the token to control access to securable -// objects and to control the ability of the user to perform various -// system-related operations on the local computer. -type Token Handle - -// OpenCurrentProcessToken opens an access token associated with current -// process with TOKEN_QUERY access. It is a real token that needs to be closed. -// -// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...) -// with the desired access instead, or use GetCurrentProcessToken for a -// TOKEN_QUERY token. -func OpenCurrentProcessToken() (Token, error) { - var token Token - err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token) - return token, err -} - -// GetCurrentProcessToken returns the access token associated with -// the current process. It is a pseudo token that does not need -// to be closed. -func GetCurrentProcessToken() Token { - return Token(^uintptr(4 - 1)) -} - -// GetCurrentThreadToken return the access token associated with -// the current thread. It is a pseudo token that does not need -// to be closed. -func GetCurrentThreadToken() Token { - return Token(^uintptr(5 - 1)) -} - -// GetCurrentThreadEffectiveToken returns the effective access token -// associated with the current thread. It is a pseudo token that does -// not need to be closed. -func GetCurrentThreadEffectiveToken() Token { - return Token(^uintptr(6 - 1)) -} - -// Close releases access to access token. -func (t Token) Close() error { - return CloseHandle(Handle(t)) -} - -// getInfo retrieves a specified type of information about an access token. -func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { - n := uint32(initSize) - for { - b := make([]byte, n) - e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) - if e == nil { - return unsafe.Pointer(&b[0]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, e - } - if n <= uint32(len(b)) { - return nil, e - } - } -} - -// GetTokenUser retrieves access token t user account information. -func (t Token) GetTokenUser() (*Tokenuser, error) { - i, e := t.getInfo(TokenUser, 50) - if e != nil { - return nil, e - } - return (*Tokenuser)(i), nil -} - -// GetTokenGroups retrieves group accounts associated with access token t. -func (t Token) GetTokenGroups() (*Tokengroups, error) { - i, e := t.getInfo(TokenGroups, 50) - if e != nil { - return nil, e - } - return (*Tokengroups)(i), nil -} - -// GetTokenPrimaryGroup retrieves access token t primary group information. -// A pointer to a SID structure representing a group that will become -// the primary group of any objects created by a process using this access token. -func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { - i, e := t.getInfo(TokenPrimaryGroup, 50) - if e != nil { - return nil, e - } - return (*Tokenprimarygroup)(i), nil -} - -// GetUserProfileDirectory retrieves path to the -// root directory of the access token t user's profile. -func (t Token) GetUserProfileDirectory() (string, error) { - n := uint32(100) - for { - b := make([]uint16, n) - e := GetUserProfileDirectory(t, &b[0], &n) - if e == nil { - return UTF16ToString(b), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -// IsElevated returns whether the current token is elevated from a UAC perspective. -func (token Token) IsElevated() bool { - var isElevated uint32 - var outLen uint32 - err := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen) - if err != nil { - return false - } - return outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0 -} - -// GetLinkedToken returns the linked token, which may be an elevated UAC token. -func (token Token) GetLinkedToken() (Token, error) { - var linkedToken Token - var outLen uint32 - err := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen) - if err != nil { - return Token(0), err - } - return linkedToken, nil -} - -// GetSystemDirectory retrieves the path to current location of the system -// directory, which is typically, though not always, `C:\Windows\System32`. -func GetSystemDirectory() (string, error) { - n := uint32(MAX_PATH) - for { - b := make([]uint16, n) - l, e := getSystemDirectory(&b[0], n) - if e != nil { - return "", e - } - if l <= n { - return UTF16ToString(b[:l]), nil - } - n = l - } -} - -// GetWindowsDirectory retrieves the path to current location of the Windows -// directory, which is typically, though not always, `C:\Windows`. This may -// be a private user directory in the case that the application is running -// under a terminal server. -func GetWindowsDirectory() (string, error) { - n := uint32(MAX_PATH) - for { - b := make([]uint16, n) - l, e := getWindowsDirectory(&b[0], n) - if e != nil { - return "", e - } - if l <= n { - return UTF16ToString(b[:l]), nil - } - n = l - } -} - -// GetSystemWindowsDirectory retrieves the path to current location of the -// Windows directory, which is typically, though not always, `C:\Windows`. -func GetSystemWindowsDirectory() (string, error) { - n := uint32(MAX_PATH) - for { - b := make([]uint16, n) - l, e := getSystemWindowsDirectory(&b[0], n) - if e != nil { - return "", e - } - if l <= n { - return UTF16ToString(b[:l]), nil - } - n = l - } -} - -// IsMember reports whether the access token t is a member of the provided SID. -func (t Token) IsMember(sid *SID) (bool, error) { - var b int32 - if e := checkTokenMembership(t, sid, &b); e != nil { - return false, e - } - return b != 0, nil -} - -// IsRestricted reports whether the access token t is a restricted token. -func (t Token) IsRestricted() (isRestricted bool, err error) { - isRestricted, err = isTokenRestricted(t) - if !isRestricted && err == syscall.EINVAL { - // If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token. - err = nil - } - return -} - -const ( - WTS_CONSOLE_CONNECT = 0x1 - WTS_CONSOLE_DISCONNECT = 0x2 - WTS_REMOTE_CONNECT = 0x3 - WTS_REMOTE_DISCONNECT = 0x4 - WTS_SESSION_LOGON = 0x5 - WTS_SESSION_LOGOFF = 0x6 - WTS_SESSION_LOCK = 0x7 - WTS_SESSION_UNLOCK = 0x8 - WTS_SESSION_REMOTE_CONTROL = 0x9 - WTS_SESSION_CREATE = 0xa - WTS_SESSION_TERMINATE = 0xb -) - -const ( - WTSActive = 0 - WTSConnected = 1 - WTSConnectQuery = 2 - WTSShadow = 3 - WTSDisconnected = 4 - WTSIdle = 5 - WTSListen = 6 - WTSReset = 7 - WTSDown = 8 - WTSInit = 9 -) - -type WTSSESSION_NOTIFICATION struct { - Size uint32 - SessionID uint32 -} - -type WTS_SESSION_INFO struct { - SessionID uint32 - WindowStationName *uint16 - State uint32 -} - -//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken -//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW -//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory -//sys WTSGetActiveConsoleSessionId() (sessionID uint32) - -type ACL struct { - aclRevision byte - sbz1 byte - aclSize uint16 - aceCount uint16 - sbz2 uint16 -} - -type SECURITY_DESCRIPTOR struct { - revision byte - sbz1 byte - control SECURITY_DESCRIPTOR_CONTROL - owner *SID - group *SID - sacl *ACL - dacl *ACL -} - -type SECURITY_QUALITY_OF_SERVICE struct { - Length uint32 - ImpersonationLevel uint32 - ContextTrackingMode byte - EffectiveOnly byte -} - -// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE. -const ( - SECURITY_STATIC_TRACKING = 0 - SECURITY_DYNAMIC_TRACKING = 1 -) - -type SecurityAttributes struct { - Length uint32 - SecurityDescriptor *SECURITY_DESCRIPTOR - InheritHandle uint32 -} - -type SE_OBJECT_TYPE uint32 - -// Constants for type SE_OBJECT_TYPE -const ( - SE_UNKNOWN_OBJECT_TYPE = 0 - SE_FILE_OBJECT = 1 - SE_SERVICE = 2 - SE_PRINTER = 3 - SE_REGISTRY_KEY = 4 - SE_LMSHARE = 5 - SE_KERNEL_OBJECT = 6 - SE_WINDOW_OBJECT = 7 - SE_DS_OBJECT = 8 - SE_DS_OBJECT_ALL = 9 - SE_PROVIDER_DEFINED_OBJECT = 10 - SE_WMIGUID_OBJECT = 11 - SE_REGISTRY_WOW64_32KEY = 12 - SE_REGISTRY_WOW64_64KEY = 13 -) - -type SECURITY_INFORMATION uint32 - -// Constants for type SECURITY_INFORMATION -const ( - OWNER_SECURITY_INFORMATION = 0x00000001 - GROUP_SECURITY_INFORMATION = 0x00000002 - DACL_SECURITY_INFORMATION = 0x00000004 - SACL_SECURITY_INFORMATION = 0x00000008 - LABEL_SECURITY_INFORMATION = 0x00000010 - ATTRIBUTE_SECURITY_INFORMATION = 0x00000020 - SCOPE_SECURITY_INFORMATION = 0x00000040 - BACKUP_SECURITY_INFORMATION = 0x00010000 - PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 - PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 - UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 - UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 -) - -type SECURITY_DESCRIPTOR_CONTROL uint16 - -// Constants for type SECURITY_DESCRIPTOR_CONTROL -const ( - SE_OWNER_DEFAULTED = 0x0001 - SE_GROUP_DEFAULTED = 0x0002 - SE_DACL_PRESENT = 0x0004 - SE_DACL_DEFAULTED = 0x0008 - SE_SACL_PRESENT = 0x0010 - SE_SACL_DEFAULTED = 0x0020 - SE_DACL_AUTO_INHERIT_REQ = 0x0100 - SE_SACL_AUTO_INHERIT_REQ = 0x0200 - SE_DACL_AUTO_INHERITED = 0x0400 - SE_SACL_AUTO_INHERITED = 0x0800 - SE_DACL_PROTECTED = 0x1000 - SE_SACL_PROTECTED = 0x2000 - SE_RM_CONTROL_VALID = 0x4000 - SE_SELF_RELATIVE = 0x8000 -) - -type ACCESS_MASK uint32 - -// Constants for type ACCESS_MASK -const ( - DELETE = 0x00010000 - READ_CONTROL = 0x00020000 - WRITE_DAC = 0x00040000 - WRITE_OWNER = 0x00080000 - SYNCHRONIZE = 0x00100000 - STANDARD_RIGHTS_REQUIRED = 0x000F0000 - STANDARD_RIGHTS_READ = READ_CONTROL - STANDARD_RIGHTS_WRITE = READ_CONTROL - STANDARD_RIGHTS_EXECUTE = READ_CONTROL - STANDARD_RIGHTS_ALL = 0x001F0000 - SPECIFIC_RIGHTS_ALL = 0x0000FFFF - ACCESS_SYSTEM_SECURITY = 0x01000000 - MAXIMUM_ALLOWED = 0x02000000 - GENERIC_READ = 0x80000000 - GENERIC_WRITE = 0x40000000 - GENERIC_EXECUTE = 0x20000000 - GENERIC_ALL = 0x10000000 -) - -type ACCESS_MODE uint32 - -// Constants for type ACCESS_MODE -const ( - NOT_USED_ACCESS = 0 - GRANT_ACCESS = 1 - SET_ACCESS = 2 - DENY_ACCESS = 3 - REVOKE_ACCESS = 4 - SET_AUDIT_SUCCESS = 5 - SET_AUDIT_FAILURE = 6 -) - -// Constants for AceFlags and Inheritance fields -const ( - NO_INHERITANCE = 0x0 - SUB_OBJECTS_ONLY_INHERIT = 0x1 - SUB_CONTAINERS_ONLY_INHERIT = 0x2 - SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3 - INHERIT_NO_PROPAGATE = 0x4 - INHERIT_ONLY = 0x8 - INHERITED_ACCESS_ENTRY = 0x10 - INHERITED_PARENT = 0x10000000 - INHERITED_GRANDPARENT = 0x20000000 - OBJECT_INHERIT_ACE = 0x1 - CONTAINER_INHERIT_ACE = 0x2 - NO_PROPAGATE_INHERIT_ACE = 0x4 - INHERIT_ONLY_ACE = 0x8 - INHERITED_ACE = 0x10 - VALID_INHERIT_FLAGS = 0x1F -) - -type MULTIPLE_TRUSTEE_OPERATION uint32 - -// Constants for MULTIPLE_TRUSTEE_OPERATION -const ( - NO_MULTIPLE_TRUSTEE = 0 - TRUSTEE_IS_IMPERSONATE = 1 -) - -type TRUSTEE_FORM uint32 - -// Constants for TRUSTEE_FORM -const ( - TRUSTEE_IS_SID = 0 - TRUSTEE_IS_NAME = 1 - TRUSTEE_BAD_FORM = 2 - TRUSTEE_IS_OBJECTS_AND_SID = 3 - TRUSTEE_IS_OBJECTS_AND_NAME = 4 -) - -type TRUSTEE_TYPE uint32 - -// Constants for TRUSTEE_TYPE -const ( - TRUSTEE_IS_UNKNOWN = 0 - TRUSTEE_IS_USER = 1 - TRUSTEE_IS_GROUP = 2 - TRUSTEE_IS_DOMAIN = 3 - TRUSTEE_IS_ALIAS = 4 - TRUSTEE_IS_WELL_KNOWN_GROUP = 5 - TRUSTEE_IS_DELETED = 6 - TRUSTEE_IS_INVALID = 7 - TRUSTEE_IS_COMPUTER = 8 -) - -// Constants for ObjectsPresent field -const ( - ACE_OBJECT_TYPE_PRESENT = 0x1 - ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 -) - -type EXPLICIT_ACCESS struct { - AccessPermissions ACCESS_MASK - AccessMode ACCESS_MODE - Inheritance uint32 - Trustee TRUSTEE -} - -// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. -type TrusteeValue uintptr - -func TrusteeValueFromString(str string) TrusteeValue { - return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str))) -} -func TrusteeValueFromSID(sid *SID) TrusteeValue { - return TrusteeValue(unsafe.Pointer(sid)) -} -func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue { - return TrusteeValue(unsafe.Pointer(objectsAndSid)) -} -func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue { - return TrusteeValue(unsafe.Pointer(objectsAndName)) -} - -type TRUSTEE struct { - MultipleTrustee *TRUSTEE - MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION - TrusteeForm TRUSTEE_FORM - TrusteeType TRUSTEE_TYPE - TrusteeValue TrusteeValue -} - -type OBJECTS_AND_SID struct { - ObjectsPresent uint32 - ObjectTypeGuid GUID - InheritedObjectTypeGuid GUID - Sid *SID -} - -type OBJECTS_AND_NAME struct { - ObjectsPresent uint32 - ObjectType SE_OBJECT_TYPE - ObjectTypeName *uint16 - InheritedObjectTypeName *uint16 - Name *uint16 -} - -//sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo -//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo -//sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW -//sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW -//sys SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity - -//sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW -//sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor - -//sys getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl -//sys getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl -//sys getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl -//sys getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner -//sys getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup -//sys getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength -//sys getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl -//sys isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor - -//sys setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl -//sys setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl -//sys setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl -//sys setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner -//sys setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup -//sys setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl - -//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW -//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW - -//sys makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD -//sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD - -//sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW - -// Control returns the security descriptor control bits. -func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) { - err = getSecurityDescriptorControl(sd, &control, &revision) - return -} - -// SetControl sets the security descriptor control bits. -func (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error { - return setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet) -} - -// RMControl returns the security descriptor resource manager control bits. -func (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) { - err = getSecurityDescriptorRMControl(sd, &control) - return -} - -// SetRMControl sets the security descriptor resource manager control bits. -func (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) { - setSecurityDescriptorRMControl(sd, &rmControl) -} - -// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil -// if a DACL exists but is an "empty DACL", meaning fully permissive. If the DACL does not exist, err returns -// ERROR_OBJECT_NOT_FOUND. -func (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) { - var present bool - err = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted) - if !present { - err = ERROR_OBJECT_NOT_FOUND - } - return -} - -// SetDACL sets the absolute security descriptor DACL. -func (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error { - return setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted) -} - -// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil -// if a SACL exists but is an "empty SACL", meaning fully permissive. If the SACL does not exist, err returns -// ERROR_OBJECT_NOT_FOUND. -func (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) { - var present bool - err = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted) - if !present { - err = ERROR_OBJECT_NOT_FOUND - } - return -} - -// SetSACL sets the absolute security descriptor SACL. -func (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error { - return setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted) -} - -// Owner returns the security descriptor owner and whether it was defaulted. -func (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) { - err = getSecurityDescriptorOwner(sd, &owner, &defaulted) - return -} - -// SetOwner sets the absolute security descriptor owner. -func (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error { - return setSecurityDescriptorOwner(absoluteSD, owner, defaulted) -} - -// Group returns the security descriptor group and whether it was defaulted. -func (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) { - err = getSecurityDescriptorGroup(sd, &group, &defaulted) - return -} - -// SetGroup sets the absolute security descriptor owner. -func (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error { - return setSecurityDescriptorGroup(absoluteSD, group, defaulted) -} - -// Length returns the length of the security descriptor. -func (sd *SECURITY_DESCRIPTOR) Length() uint32 { - return getSecurityDescriptorLength(sd) -} - -// IsValid returns whether the security descriptor is valid. -func (sd *SECURITY_DESCRIPTOR) IsValid() bool { - return isValidSecurityDescriptor(sd) -} - -// String returns the SDDL form of the security descriptor, with a function signature that can be -// used with %v formatting directives. -func (sd *SECURITY_DESCRIPTOR) String() string { - var sddl *uint16 - err := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil) - if err != nil { - return "" - } - defer LocalFree(Handle(unsafe.Pointer(sddl))) - return UTF16PtrToString(sddl) -} - -// ToAbsolute converts a self-relative security descriptor into an absolute one. -func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) { - control, _, err := selfRelativeSD.Control() - if err != nil { - return - } - if control&SE_SELF_RELATIVE == 0 { - err = ERROR_INVALID_PARAMETER - return - } - var absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32 - err = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize, - nil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize) - switch err { - case ERROR_INSUFFICIENT_BUFFER: - case nil: - // makeAbsoluteSD is expected to fail, but it succeeds. - return nil, ERROR_INTERNAL_ERROR - default: - return nil, err - } - if absoluteSDSize > 0 { - absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0])) - } - var ( - dacl *ACL - sacl *ACL - owner *SID - group *SID - ) - if daclSize > 0 { - dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0])) - } - if saclSize > 0 { - sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0])) - } - if ownerSize > 0 { - owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0])) - } - if groupSize > 0 { - group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0])) - } - err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, - dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) - return -} - -// ToSelfRelative converts an absolute security descriptor into a self-relative one. -func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) { - control, _, err := absoluteSD.Control() - if err != nil { - return - } - if control&SE_SELF_RELATIVE != 0 { - err = ERROR_INVALID_PARAMETER - return - } - var selfRelativeSDSize uint32 - err = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize) - switch err { - case ERROR_INSUFFICIENT_BUFFER: - case nil: - // makeSelfRelativeSD is expected to fail, but it succeeds. - return nil, ERROR_INTERNAL_ERROR - default: - return nil, err - } - if selfRelativeSDSize > 0 { - selfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0])) - } - err = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize) - return -} - -func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { - sdLen := int(selfRelativeSD.Length()) - const min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{})) - if sdLen < min { - sdLen = min - } - - var src []byte - h := (*unsafeheader.Slice)(unsafe.Pointer(&src)) - h.Data = unsafe.Pointer(selfRelativeSD) - h.Len = sdLen - h.Cap = sdLen - - const psize = int(unsafe.Sizeof(uintptr(0))) - - var dst []byte - h = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) - alloc := make([]uintptr, (sdLen+psize-1)/psize) - h.Data = (*unsafeheader.Slice)(unsafe.Pointer(&alloc)).Data - h.Len = sdLen - h.Cap = sdLen - - copy(dst, src) - return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) -} - -// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a -// self-relative security descriptor object allocated on the Go heap. -func SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - err = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// GetSecurityInfo queries the security information for a given handle and returns the self-relative security -// descriptor result on the Go heap. -func GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - err = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security -// descriptor result on the Go heap. -func GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - err = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and -// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor -// result on the Go heap. -func BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - var winHeapSDSize uint32 - var firstAccessEntry *EXPLICIT_ACCESS - if len(accessEntries) > 0 { - firstAccessEntry = &accessEntries[0] - } - var firstAuditEntry *EXPLICIT_ACCESS - if len(auditEntries) > 0 { - firstAuditEntry = &auditEntries[0] - } - err = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// NewSecurityDescriptor creates and initializes a new absolute security descriptor. -func NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) { - absoluteSD = &SECURITY_DESCRIPTOR{} - err = initializeSecurityDescriptor(absoluteSD, 1) - return -} - -// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL. -// Both explicitEntries and mergedACL are optional and can be nil. -func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) { - var firstExplicitEntry *EXPLICIT_ACCESS - if len(explicitEntries) > 0 { - firstExplicitEntry = &explicitEntries[0] - } - var winHeapACL *ACL - err = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapACL))) - aclBytes := make([]byte, winHeapACL.aclSize) - copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)]) - return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil -} diff --git a/backend/vendor/golang.org/x/sys/windows/service.go b/backend/vendor/golang.org/x/sys/windows/service.go deleted file mode 100644 index c964b684..00000000 --- a/backend/vendor/golang.org/x/sys/windows/service.go +++ /dev/null @@ -1,254 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -package windows - -const ( - SC_MANAGER_CONNECT = 1 - SC_MANAGER_CREATE_SERVICE = 2 - SC_MANAGER_ENUMERATE_SERVICE = 4 - SC_MANAGER_LOCK = 8 - SC_MANAGER_QUERY_LOCK_STATUS = 16 - SC_MANAGER_MODIFY_BOOT_CONFIG = 32 - SC_MANAGER_ALL_ACCESS = 0xf003f -) - -const ( - SERVICE_KERNEL_DRIVER = 1 - SERVICE_FILE_SYSTEM_DRIVER = 2 - SERVICE_ADAPTER = 4 - SERVICE_RECOGNIZER_DRIVER = 8 - SERVICE_WIN32_OWN_PROCESS = 16 - SERVICE_WIN32_SHARE_PROCESS = 32 - SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS - SERVICE_INTERACTIVE_PROCESS = 256 - SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER - SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS - - SERVICE_BOOT_START = 0 - SERVICE_SYSTEM_START = 1 - SERVICE_AUTO_START = 2 - SERVICE_DEMAND_START = 3 - SERVICE_DISABLED = 4 - - SERVICE_ERROR_IGNORE = 0 - SERVICE_ERROR_NORMAL = 1 - SERVICE_ERROR_SEVERE = 2 - SERVICE_ERROR_CRITICAL = 3 - - SC_STATUS_PROCESS_INFO = 0 - - SC_ACTION_NONE = 0 - SC_ACTION_RESTART = 1 - SC_ACTION_REBOOT = 2 - SC_ACTION_RUN_COMMAND = 3 - - SERVICE_STOPPED = 1 - SERVICE_START_PENDING = 2 - SERVICE_STOP_PENDING = 3 - SERVICE_RUNNING = 4 - SERVICE_CONTINUE_PENDING = 5 - SERVICE_PAUSE_PENDING = 6 - SERVICE_PAUSED = 7 - SERVICE_NO_CHANGE = 0xffffffff - - SERVICE_ACCEPT_STOP = 1 - SERVICE_ACCEPT_PAUSE_CONTINUE = 2 - SERVICE_ACCEPT_SHUTDOWN = 4 - SERVICE_ACCEPT_PARAMCHANGE = 8 - SERVICE_ACCEPT_NETBINDCHANGE = 16 - SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 - SERVICE_ACCEPT_POWEREVENT = 64 - SERVICE_ACCEPT_SESSIONCHANGE = 128 - SERVICE_ACCEPT_PRESHUTDOWN = 256 - - SERVICE_CONTROL_STOP = 1 - SERVICE_CONTROL_PAUSE = 2 - SERVICE_CONTROL_CONTINUE = 3 - SERVICE_CONTROL_INTERROGATE = 4 - SERVICE_CONTROL_SHUTDOWN = 5 - SERVICE_CONTROL_PARAMCHANGE = 6 - SERVICE_CONTROL_NETBINDADD = 7 - SERVICE_CONTROL_NETBINDREMOVE = 8 - SERVICE_CONTROL_NETBINDENABLE = 9 - SERVICE_CONTROL_NETBINDDISABLE = 10 - SERVICE_CONTROL_DEVICEEVENT = 11 - SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 - SERVICE_CONTROL_POWEREVENT = 13 - SERVICE_CONTROL_SESSIONCHANGE = 14 - SERVICE_CONTROL_PRESHUTDOWN = 15 - - SERVICE_ACTIVE = 1 - SERVICE_INACTIVE = 2 - SERVICE_STATE_ALL = 3 - - SERVICE_QUERY_CONFIG = 1 - SERVICE_CHANGE_CONFIG = 2 - SERVICE_QUERY_STATUS = 4 - SERVICE_ENUMERATE_DEPENDENTS = 8 - SERVICE_START = 16 - SERVICE_STOP = 32 - SERVICE_PAUSE_CONTINUE = 64 - SERVICE_INTERROGATE = 128 - SERVICE_USER_DEFINED_CONTROL = 256 - SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL - - SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 - - SERVICE_CONFIG_DESCRIPTION = 1 - SERVICE_CONFIG_FAILURE_ACTIONS = 2 - SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3 - SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4 - SERVICE_CONFIG_SERVICE_SID_INFO = 5 - SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6 - SERVICE_CONFIG_PRESHUTDOWN_INFO = 7 - SERVICE_CONFIG_TRIGGER_INFO = 8 - SERVICE_CONFIG_PREFERRED_NODE = 9 - SERVICE_CONFIG_LAUNCH_PROTECTED = 12 - - SERVICE_SID_TYPE_NONE = 0 - SERVICE_SID_TYPE_UNRESTRICTED = 1 - SERVICE_SID_TYPE_RESTRICTED = 2 | SERVICE_SID_TYPE_UNRESTRICTED - - SC_ENUM_PROCESS_INFO = 0 - - SERVICE_NOTIFY_STATUS_CHANGE = 2 - SERVICE_NOTIFY_STOPPED = 0x00000001 - SERVICE_NOTIFY_START_PENDING = 0x00000002 - SERVICE_NOTIFY_STOP_PENDING = 0x00000004 - SERVICE_NOTIFY_RUNNING = 0x00000008 - SERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010 - SERVICE_NOTIFY_PAUSE_PENDING = 0x00000020 - SERVICE_NOTIFY_PAUSED = 0x00000040 - SERVICE_NOTIFY_CREATED = 0x00000080 - SERVICE_NOTIFY_DELETED = 0x00000100 - SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 - - SC_EVENT_DATABASE_CHANGE = 0 - SC_EVENT_PROPERTY_CHANGE = 1 - SC_EVENT_STATUS_CHANGE = 2 - - SERVICE_START_REASON_DEMAND = 0x00000001 - SERVICE_START_REASON_AUTO = 0x00000002 - SERVICE_START_REASON_TRIGGER = 0x00000004 - SERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008 - SERVICE_START_REASON_DELAYEDAUTO = 0x00000010 - - SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 -) - -type ENUM_SERVICE_STATUS struct { - ServiceName *uint16 - DisplayName *uint16 - ServiceStatus SERVICE_STATUS -} - -type SERVICE_STATUS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 -} - -type SERVICE_TABLE_ENTRY struct { - ServiceName *uint16 - ServiceProc uintptr -} - -type QUERY_SERVICE_CONFIG struct { - ServiceType uint32 - StartType uint32 - ErrorControl uint32 - BinaryPathName *uint16 - LoadOrderGroup *uint16 - TagId uint32 - Dependencies *uint16 - ServiceStartName *uint16 - DisplayName *uint16 -} - -type SERVICE_DESCRIPTION struct { - Description *uint16 -} - -type SERVICE_DELAYED_AUTO_START_INFO struct { - IsDelayedAutoStartUp uint32 -} - -type SERVICE_STATUS_PROCESS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 - ProcessId uint32 - ServiceFlags uint32 -} - -type ENUM_SERVICE_STATUS_PROCESS struct { - ServiceName *uint16 - DisplayName *uint16 - ServiceStatusProcess SERVICE_STATUS_PROCESS -} - -type SERVICE_NOTIFY struct { - Version uint32 - NotifyCallback uintptr - Context uintptr - NotificationStatus uint32 - ServiceStatus SERVICE_STATUS_PROCESS - NotificationTriggered uint32 - ServiceNames *uint16 -} - -type SERVICE_FAILURE_ACTIONS struct { - ResetPeriod uint32 - RebootMsg *uint16 - Command *uint16 - ActionsCount uint32 - Actions *SC_ACTION -} - -type SC_ACTION struct { - Type uint32 - Delay uint32 -} - -type QUERY_SERVICE_LOCK_STATUS struct { - IsLocked uint32 - LockOwner *uint16 - LockDuration uint32 -} - -//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW -//sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle -//sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW -//sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW -//sys DeleteService(service Handle) (err error) = advapi32.DeleteService -//sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW -//sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus -//sys QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW -//sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService -//sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW -//sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus -//sys ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW -//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW -//sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W -//sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W -//sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW -//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx -//sys NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW -//sys SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications? -//sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? -//sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW -//sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? -//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW diff --git a/backend/vendor/golang.org/x/sys/windows/setupapi_windows.go b/backend/vendor/golang.org/x/sys/windows/setupapi_windows.go deleted file mode 100644 index f8126482..00000000 --- a/backend/vendor/golang.org/x/sys/windows/setupapi_windows.go +++ /dev/null @@ -1,1425 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -import ( - "encoding/binary" - "errors" - "fmt" - "runtime" - "strings" - "syscall" - "unsafe" -) - -// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll, -// core system functions for managing hardware devices, drivers, and the PnP tree. -// Information about these APIs can be found at: -// https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi -// https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32- - -const ( - ERROR_EXPECTED_SECTION_NAME Errno = 0x20000000 | 0xC0000000 | 0 - ERROR_BAD_SECTION_NAME_LINE Errno = 0x20000000 | 0xC0000000 | 1 - ERROR_SECTION_NAME_TOO_LONG Errno = 0x20000000 | 0xC0000000 | 2 - ERROR_GENERAL_SYNTAX Errno = 0x20000000 | 0xC0000000 | 3 - ERROR_WRONG_INF_STYLE Errno = 0x20000000 | 0xC0000000 | 0x100 - ERROR_SECTION_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x101 - ERROR_LINE_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x102 - ERROR_NO_BACKUP Errno = 0x20000000 | 0xC0000000 | 0x103 - ERROR_NO_ASSOCIATED_CLASS Errno = 0x20000000 | 0xC0000000 | 0x200 - ERROR_CLASS_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x201 - ERROR_DUPLICATE_FOUND Errno = 0x20000000 | 0xC0000000 | 0x202 - ERROR_NO_DRIVER_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x203 - ERROR_KEY_DOES_NOT_EXIST Errno = 0x20000000 | 0xC0000000 | 0x204 - ERROR_INVALID_DEVINST_NAME Errno = 0x20000000 | 0xC0000000 | 0x205 - ERROR_INVALID_CLASS Errno = 0x20000000 | 0xC0000000 | 0x206 - ERROR_DEVINST_ALREADY_EXISTS Errno = 0x20000000 | 0xC0000000 | 0x207 - ERROR_DEVINFO_NOT_REGISTERED Errno = 0x20000000 | 0xC0000000 | 0x208 - ERROR_INVALID_REG_PROPERTY Errno = 0x20000000 | 0xC0000000 | 0x209 - ERROR_NO_INF Errno = 0x20000000 | 0xC0000000 | 0x20A - ERROR_NO_SUCH_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x20B - ERROR_CANT_LOAD_CLASS_ICON Errno = 0x20000000 | 0xC0000000 | 0x20C - ERROR_INVALID_CLASS_INSTALLER Errno = 0x20000000 | 0xC0000000 | 0x20D - ERROR_DI_DO_DEFAULT Errno = 0x20000000 | 0xC0000000 | 0x20E - ERROR_DI_NOFILECOPY Errno = 0x20000000 | 0xC0000000 | 0x20F - ERROR_INVALID_HWPROFILE Errno = 0x20000000 | 0xC0000000 | 0x210 - ERROR_NO_DEVICE_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x211 - ERROR_DEVINFO_LIST_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x212 - ERROR_DEVINFO_DATA_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x213 - ERROR_DI_BAD_PATH Errno = 0x20000000 | 0xC0000000 | 0x214 - ERROR_NO_CLASSINSTALL_PARAMS Errno = 0x20000000 | 0xC0000000 | 0x215 - ERROR_FILEQUEUE_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x216 - ERROR_BAD_SERVICE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x217 - ERROR_NO_CLASS_DRIVER_LIST Errno = 0x20000000 | 0xC0000000 | 0x218 - ERROR_NO_ASSOCIATED_SERVICE Errno = 0x20000000 | 0xC0000000 | 0x219 - ERROR_NO_DEFAULT_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x21A - ERROR_DEVICE_INTERFACE_ACTIVE Errno = 0x20000000 | 0xC0000000 | 0x21B - ERROR_DEVICE_INTERFACE_REMOVED Errno = 0x20000000 | 0xC0000000 | 0x21C - ERROR_BAD_INTERFACE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x21D - ERROR_NO_SUCH_INTERFACE_CLASS Errno = 0x20000000 | 0xC0000000 | 0x21E - ERROR_INVALID_REFERENCE_STRING Errno = 0x20000000 | 0xC0000000 | 0x21F - ERROR_INVALID_MACHINENAME Errno = 0x20000000 | 0xC0000000 | 0x220 - ERROR_REMOTE_COMM_FAILURE Errno = 0x20000000 | 0xC0000000 | 0x221 - ERROR_MACHINE_UNAVAILABLE Errno = 0x20000000 | 0xC0000000 | 0x222 - ERROR_NO_CONFIGMGR_SERVICES Errno = 0x20000000 | 0xC0000000 | 0x223 - ERROR_INVALID_PROPPAGE_PROVIDER Errno = 0x20000000 | 0xC0000000 | 0x224 - ERROR_NO_SUCH_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x225 - ERROR_DI_POSTPROCESSING_REQUIRED Errno = 0x20000000 | 0xC0000000 | 0x226 - ERROR_INVALID_COINSTALLER Errno = 0x20000000 | 0xC0000000 | 0x227 - ERROR_NO_COMPAT_DRIVERS Errno = 0x20000000 | 0xC0000000 | 0x228 - ERROR_NO_DEVICE_ICON Errno = 0x20000000 | 0xC0000000 | 0x229 - ERROR_INVALID_INF_LOGCONFIG Errno = 0x20000000 | 0xC0000000 | 0x22A - ERROR_DI_DONT_INSTALL Errno = 0x20000000 | 0xC0000000 | 0x22B - ERROR_INVALID_FILTER_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22C - ERROR_NON_WINDOWS_NT_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22D - ERROR_NON_WINDOWS_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22E - ERROR_NO_CATALOG_FOR_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x22F - ERROR_DEVINSTALL_QUEUE_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x230 - ERROR_NOT_DISABLEABLE Errno = 0x20000000 | 0xC0000000 | 0x231 - ERROR_CANT_REMOVE_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x232 - ERROR_INVALID_TARGET Errno = 0x20000000 | 0xC0000000 | 0x233 - ERROR_DRIVER_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x234 - ERROR_IN_WOW64 Errno = 0x20000000 | 0xC0000000 | 0x235 - ERROR_SET_SYSTEM_RESTORE_POINT Errno = 0x20000000 | 0xC0000000 | 0x236 - ERROR_SCE_DISABLED Errno = 0x20000000 | 0xC0000000 | 0x238 - ERROR_UNKNOWN_EXCEPTION Errno = 0x20000000 | 0xC0000000 | 0x239 - ERROR_PNP_REGISTRY_ERROR Errno = 0x20000000 | 0xC0000000 | 0x23A - ERROR_REMOTE_REQUEST_UNSUPPORTED Errno = 0x20000000 | 0xC0000000 | 0x23B - ERROR_NOT_AN_INSTALLED_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x23C - ERROR_INF_IN_USE_BY_DEVICES Errno = 0x20000000 | 0xC0000000 | 0x23D - ERROR_DI_FUNCTION_OBSOLETE Errno = 0x20000000 | 0xC0000000 | 0x23E - ERROR_NO_AUTHENTICODE_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x23F - ERROR_AUTHENTICODE_DISALLOWED Errno = 0x20000000 | 0xC0000000 | 0x240 - ERROR_AUTHENTICODE_TRUSTED_PUBLISHER Errno = 0x20000000 | 0xC0000000 | 0x241 - ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED Errno = 0x20000000 | 0xC0000000 | 0x242 - ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Errno = 0x20000000 | 0xC0000000 | 0x243 - ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x244 - ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE Errno = 0x20000000 | 0xC0000000 | 0x245 - ERROR_DEVICE_INSTALLER_NOT_READY Errno = 0x20000000 | 0xC0000000 | 0x246 - ERROR_DRIVER_STORE_ADD_FAILED Errno = 0x20000000 | 0xC0000000 | 0x247 - ERROR_DEVICE_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x248 - ERROR_DRIVER_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x249 - ERROR_WRONG_INF_TYPE Errno = 0x20000000 | 0xC0000000 | 0x24A - ERROR_FILE_HASH_NOT_IN_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x24B - ERROR_DRIVER_STORE_DELETE_FAILED Errno = 0x20000000 | 0xC0000000 | 0x24C - ERROR_UNRECOVERABLE_STACK_OVERFLOW Errno = 0x20000000 | 0xC0000000 | 0x300 - EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW - ERROR_NO_DEFAULT_INTERFACE_DEVICE Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE - ERROR_INTERFACE_DEVICE_ACTIVE Errno = ERROR_DEVICE_INTERFACE_ACTIVE - ERROR_INTERFACE_DEVICE_REMOVED Errno = ERROR_DEVICE_INTERFACE_REMOVED - ERROR_NO_SUCH_INTERFACE_DEVICE Errno = ERROR_NO_SUCH_DEVICE_INTERFACE -) - -const ( - MAX_DEVICE_ID_LEN = 200 - MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN - MAX_GUID_STRING_LEN = 39 // 38 chars + terminator null - MAX_CLASS_NAME_LEN = 32 - MAX_PROFILE_LEN = 80 - MAX_CONFIG_VALUE = 9999 - MAX_INSTANCE_VALUE = 9999 - CONFIGMG_VERSION = 0x0400 -) - -// Maximum string length constants -const ( - LINE_LEN = 256 // Windows 9x-compatible maximum for displayable strings coming from a device INF. - MAX_INF_STRING_LENGTH = 4096 // Actual maximum size of an INF string (including string substitutions). - MAX_INF_SECTION_NAME_LENGTH = 255 // For Windows 9x compatibility, INF section names should be constrained to 32 characters. - MAX_TITLE_LEN = 60 - MAX_INSTRUCTION_LEN = 256 - MAX_LABEL_LEN = 30 - MAX_SERVICE_NAME_LEN = 256 - MAX_SUBTITLE_LEN = 256 -) - -const ( - // SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., "\\\\MachineName\0"). - SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 -) - -// HSPFILEQ is type for setup file queue -type HSPFILEQ uintptr - -// DevInfo holds reference to device information set -type DevInfo Handle - -// DEVINST is a handle usually recognized by cfgmgr32 APIs -type DEVINST uint32 - -// DevInfoData is a device information structure (references a device instance that is a member of a device information set) -type DevInfoData struct { - size uint32 - ClassGUID GUID - DevInst DEVINST - _ uintptr -} - -// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass). -type DevInfoListDetailData struct { - size uint32 // Use unsafeSizeOf method - ClassGUID GUID - RemoteMachineHandle Handle - remoteMachineName [SP_MAX_MACHINENAME_LENGTH]uint16 -} - -func (*DevInfoListDetailData) unsafeSizeOf() uint32 { - if unsafe.Sizeof(uintptr(0)) == 4 { - // Windows declares this with pshpack1.h - return uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName)) - } - return uint32(unsafe.Sizeof(DevInfoListDetailData{})) -} - -func (data *DevInfoListDetailData) RemoteMachineName() string { - return UTF16ToString(data.remoteMachineName[:]) -} - -func (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error { - str, err := UTF16FromString(remoteMachineName) - if err != nil { - return err - } - copy(data.remoteMachineName[:], str) - return nil -} - -// DI_FUNCTION is function type for device installer -type DI_FUNCTION uint32 - -const ( - DIF_SELECTDEVICE DI_FUNCTION = 0x00000001 - DIF_INSTALLDEVICE DI_FUNCTION = 0x00000002 - DIF_ASSIGNRESOURCES DI_FUNCTION = 0x00000003 - DIF_PROPERTIES DI_FUNCTION = 0x00000004 - DIF_REMOVE DI_FUNCTION = 0x00000005 - DIF_FIRSTTIMESETUP DI_FUNCTION = 0x00000006 - DIF_FOUNDDEVICE DI_FUNCTION = 0x00000007 - DIF_SELECTCLASSDRIVERS DI_FUNCTION = 0x00000008 - DIF_VALIDATECLASSDRIVERS DI_FUNCTION = 0x00000009 - DIF_INSTALLCLASSDRIVERS DI_FUNCTION = 0x0000000A - DIF_CALCDISKSPACE DI_FUNCTION = 0x0000000B - DIF_DESTROYPRIVATEDATA DI_FUNCTION = 0x0000000C - DIF_VALIDATEDRIVER DI_FUNCTION = 0x0000000D - DIF_DETECT DI_FUNCTION = 0x0000000F - DIF_INSTALLWIZARD DI_FUNCTION = 0x00000010 - DIF_DESTROYWIZARDDATA DI_FUNCTION = 0x00000011 - DIF_PROPERTYCHANGE DI_FUNCTION = 0x00000012 - DIF_ENABLECLASS DI_FUNCTION = 0x00000013 - DIF_DETECTVERIFY DI_FUNCTION = 0x00000014 - DIF_INSTALLDEVICEFILES DI_FUNCTION = 0x00000015 - DIF_UNREMOVE DI_FUNCTION = 0x00000016 - DIF_SELECTBESTCOMPATDRV DI_FUNCTION = 0x00000017 - DIF_ALLOW_INSTALL DI_FUNCTION = 0x00000018 - DIF_REGISTERDEVICE DI_FUNCTION = 0x00000019 - DIF_NEWDEVICEWIZARD_PRESELECT DI_FUNCTION = 0x0000001A - DIF_NEWDEVICEWIZARD_SELECT DI_FUNCTION = 0x0000001B - DIF_NEWDEVICEWIZARD_PREANALYZE DI_FUNCTION = 0x0000001C - DIF_NEWDEVICEWIZARD_POSTANALYZE DI_FUNCTION = 0x0000001D - DIF_NEWDEVICEWIZARD_FINISHINSTALL DI_FUNCTION = 0x0000001E - DIF_INSTALLINTERFACES DI_FUNCTION = 0x00000020 - DIF_DETECTCANCEL DI_FUNCTION = 0x00000021 - DIF_REGISTER_COINSTALLERS DI_FUNCTION = 0x00000022 - DIF_ADDPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000023 - DIF_ADDPROPERTYPAGE_BASIC DI_FUNCTION = 0x00000024 - DIF_TROUBLESHOOTER DI_FUNCTION = 0x00000026 - DIF_POWERMESSAGEWAKE DI_FUNCTION = 0x00000027 - DIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028 - DIF_UPDATEDRIVER_UI DI_FUNCTION = 0x00000029 - DIF_FINISHINSTALL_ACTION DI_FUNCTION = 0x0000002A -) - -// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set) -type DevInstallParams struct { - size uint32 - Flags DI_FLAGS - FlagsEx DI_FLAGSEX - hwndParent uintptr - InstallMsgHandler uintptr - InstallMsgHandlerContext uintptr - FileQueue HSPFILEQ - _ uintptr - _ uint32 - driverPath [MAX_PATH]uint16 -} - -func (params *DevInstallParams) DriverPath() string { - return UTF16ToString(params.driverPath[:]) -} - -func (params *DevInstallParams) SetDriverPath(driverPath string) error { - str, err := UTF16FromString(driverPath) - if err != nil { - return err - } - copy(params.driverPath[:], str) - return nil -} - -// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values -type DI_FLAGS uint32 - -const ( - // Flags for choosing a device - DI_SHOWOEM DI_FLAGS = 0x00000001 // support Other... button - DI_SHOWCOMPAT DI_FLAGS = 0x00000002 // show compatibility list - DI_SHOWCLASS DI_FLAGS = 0x00000004 // show class list - DI_SHOWALL DI_FLAGS = 0x00000007 // both class & compat list shown - DI_NOVCP DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue - DI_DIDCOMPAT DI_FLAGS = 0x00000010 // Searched for compatible devices - DI_DIDCLASS DI_FLAGS = 0x00000020 // Searched for class devices - DI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible - - // Flags returned by DiInstallDevice to indicate need to reboot/restart - DI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect - DI_NEEDREBOOT DI_FLAGS = 0x00000100 // "" - - // Flags for device installation - DI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk - - // Flags set by DiBuildDriverInfoList - DI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list - - // Flag indicates that device is disabled - DI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled - - // Flags for Device/Class Properties - DI_GENERALPAGE_ADDED DI_FLAGS = 0x00001000 - DI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000 - - // Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated. - DI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000 - - // Flag to indicate that the sorting from the INF file should be used. - DI_INF_IS_SORTED DI_FLAGS = 0x00008000 - - // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. - DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 - - // Flag that prevents ConfigMgr from removing/re-enumerating devices during device - // registration, installation, and deletion. - DI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000 - - // The following flag can be used to install a device disabled - DI_INSTALLDISABLED DI_FLAGS = 0x00040000 - - // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver - // list from its existing class driver list, instead of the normal INF search. - DI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000 - - // This flag is set if the Class Install params should be used. - DI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000 - - // This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT. - DI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000 - - // Flags for device installation - DI_QUIETINSTALL DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info - DI_NOFILECOPY DI_FLAGS = 0x01000000 // No file Copy necessary - DI_FORCECOPY DI_FLAGS = 0x02000000 // Force files to be copied from install path - DI_DRIVERPAGE_ADDED DI_FLAGS = 0x04000000 // Prop provider added Driver page. - DI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg - DI_OVERRIDE_INFFLAGS DI_FLAGS = 0x10000000 // Override INF flags - DI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props - - DI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs - - DI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install -) - -// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values -type DI_FLAGSEX uint32 - -const ( - DI_FLAGSEX_CI_FAILED DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer - DI_FLAGSEX_FINISHINSTALL_ACTION DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context. - DI_FLAGSEX_DIDINFOLIST DI_FLAGSEX = 0x00000010 // Did the Class Info List - DI_FLAGSEX_DIDCOMPATINFO DI_FLAGSEX = 0x00000020 // Did the Compat Info List - DI_FLAGSEX_FILTERCLASSES DI_FLAGSEX = 0x00000040 - DI_FLAGSEX_SETFAILEDINSTALL DI_FLAGSEX = 0x00000080 - DI_FLAGSEX_DEVICECHANGE DI_FLAGSEX = 0x00000100 - DI_FLAGSEX_ALWAYSWRITEIDS DI_FLAGSEX = 0x00000200 - DI_FLAGSEX_PROPCHANGE_PENDING DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur. - DI_FLAGSEX_ALLOWEXCLUDEDDRVS DI_FLAGSEX = 0x00000800 - DI_FLAGSEX_NOUIONQUERYREMOVE DI_FLAGSEX = 0x00001000 - DI_FLAGSEX_USECLASSFORCOMPAT DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) - DI_FLAGSEX_NO_DRVREG_MODIFY DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key. - DI_FLAGSEX_IN_SYSTEM_SETUP DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup. - DI_FLAGSEX_INET_DRIVER DI_FLAGSEX = 0x00020000 // Driver came from Windows Update - DI_FLAGSEX_APPENDDRIVERLIST DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list. - DI_FLAGSEX_PREINSTALLBACKUP DI_FLAGSEX = 0x00080000 // not used - DI_FLAGSEX_BACKUPONREPLACE DI_FLAGSEX = 0x00100000 // not used - DI_FLAGSEX_DRIVERLIST_FROM_URL DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website) - DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later. - DI_FLAGSEX_POWERPAGE_ADDED DI_FLAGSEX = 0x01000000 // class installer added their own power page - DI_FLAGSEX_FILTERSIMILARDRIVERS DI_FLAGSEX = 0x02000000 // only include similar drivers in class list - DI_FLAGSEX_INSTALLEDDRIVER DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list. Used in calls to SetupDiBuildDriverInfoList - DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list - DI_FLAGSEX_ALTPLATFORM_DRVSEARCH DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue - DI_FLAGSEX_RESTART_DEVICE_ONLY DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers. - DI_FLAGSEX_RECURSIVESEARCH DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search - DI_FLAGSEX_SEARCH_PUBLISHED_INFS DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a "published INF" search -) - -// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure. -type ClassInstallHeader struct { - size uint32 - InstallFunction DI_FUNCTION -} - -func MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader { - hdr := &ClassInstallHeader{InstallFunction: installFunction} - hdr.size = uint32(unsafe.Sizeof(*hdr)) - return hdr -} - -// DICS_STATE specifies values indicating a change in a device's state -type DICS_STATE uint32 - -const ( - DICS_ENABLE DICS_STATE = 0x00000001 // The device is being enabled. - DICS_DISABLE DICS_STATE = 0x00000002 // The device is being disabled. - DICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed. - DICS_START DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile). - DICS_STOP DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device. -) - -// DICS_FLAG specifies the scope of a device property change -type DICS_FLAG uint32 - -const ( - DICS_FLAG_GLOBAL DICS_FLAG = 0x00000001 // make change in all hardware profiles - DICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only - DICS_FLAG_CONFIGGENERAL DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete) -) - -// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function. -type PropChangeParams struct { - ClassInstallHeader ClassInstallHeader - StateChange DICS_STATE - Scope DICS_FLAG - HwProfile uint32 -} - -// DI_REMOVEDEVICE specifies the scope of the device removal -type DI_REMOVEDEVICE uint32 - -const ( - DI_REMOVEDEVICE_GLOBAL DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry. - DI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal. -) - -// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function. -type RemoveDeviceParams struct { - ClassInstallHeader ClassInstallHeader - Scope DI_REMOVEDEVICE - HwProfile uint32 -} - -// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set) -type DrvInfoData struct { - size uint32 - DriverType uint32 - _ uintptr - description [LINE_LEN]uint16 - mfgName [LINE_LEN]uint16 - providerName [LINE_LEN]uint16 - DriverDate Filetime - DriverVersion uint64 -} - -func (data *DrvInfoData) Description() string { - return UTF16ToString(data.description[:]) -} - -func (data *DrvInfoData) SetDescription(description string) error { - str, err := UTF16FromString(description) - if err != nil { - return err - } - copy(data.description[:], str) - return nil -} - -func (data *DrvInfoData) MfgName() string { - return UTF16ToString(data.mfgName[:]) -} - -func (data *DrvInfoData) SetMfgName(mfgName string) error { - str, err := UTF16FromString(mfgName) - if err != nil { - return err - } - copy(data.mfgName[:], str) - return nil -} - -func (data *DrvInfoData) ProviderName() string { - return UTF16ToString(data.providerName[:]) -} - -func (data *DrvInfoData) SetProviderName(providerName string) error { - str, err := UTF16FromString(providerName) - if err != nil { - return err - } - copy(data.providerName[:], str) - return nil -} - -// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters. -func (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool { - if data.DriverDate.HighDateTime > driverDate.HighDateTime { - return true - } - if data.DriverDate.HighDateTime < driverDate.HighDateTime { - return false - } - - if data.DriverDate.LowDateTime > driverDate.LowDateTime { - return true - } - if data.DriverDate.LowDateTime < driverDate.LowDateTime { - return false - } - - if data.DriverVersion > driverVersion { - return true - } - if data.DriverVersion < driverVersion { - return false - } - - return false -} - -// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure) -type DrvInfoDetailData struct { - size uint32 // Use unsafeSizeOf method - InfDate Filetime - compatIDsOffset uint32 - compatIDsLength uint32 - _ uintptr - sectionName [LINE_LEN]uint16 - infFileName [MAX_PATH]uint16 - drvDescription [LINE_LEN]uint16 - hardwareID [1]uint16 -} - -func (*DrvInfoDetailData) unsafeSizeOf() uint32 { - if unsafe.Sizeof(uintptr(0)) == 4 { - // Windows declares this with pshpack1.h - return uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID)) - } - return uint32(unsafe.Sizeof(DrvInfoDetailData{})) -} - -func (data *DrvInfoDetailData) SectionName() string { - return UTF16ToString(data.sectionName[:]) -} - -func (data *DrvInfoDetailData) InfFileName() string { - return UTF16ToString(data.infFileName[:]) -} - -func (data *DrvInfoDetailData) DrvDescription() string { - return UTF16ToString(data.drvDescription[:]) -} - -func (data *DrvInfoDetailData) HardwareID() string { - if data.compatIDsOffset > 1 { - bufW := data.getBuf() - return UTF16ToString(bufW[:wcslen(bufW)]) - } - - return "" -} - -func (data *DrvInfoDetailData) CompatIDs() []string { - a := make([]string, 0) - - if data.compatIDsLength > 0 { - bufW := data.getBuf() - bufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength] - for i := 0; i < len(bufW); { - j := i + wcslen(bufW[i:]) - if i < j { - a = append(a, UTF16ToString(bufW[i:j])) - } - i = j + 1 - } - } - - return a -} - -func (data *DrvInfoDetailData) getBuf() []uint16 { - len := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2 - sl := struct { - addr *uint16 - len int - cap int - }{&data.hardwareID[0], int(len), int(len)} - return *(*[]uint16)(unsafe.Pointer(&sl)) -} - -// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list. -func (data *DrvInfoDetailData) IsCompatible(hwid string) bool { - hwidLC := strings.ToLower(hwid) - if strings.ToLower(data.HardwareID()) == hwidLC { - return true - } - a := data.CompatIDs() - for i := range a { - if strings.ToLower(a[i]) == hwidLC { - return true - } - } - - return false -} - -// DICD flags control SetupDiCreateDeviceInfo -type DICD uint32 - -const ( - DICD_GENERATE_ID DICD = 0x00000001 - DICD_INHERIT_CLASSDRVS DICD = 0x00000002 -) - -// SUOI flags control SetupUninstallOEMInf -type SUOI uint32 - -const ( - SUOI_FORCEDELETE SUOI = 0x0001 -) - -// SPDIT flags to distinguish between class drivers and -// device drivers. (Passed in 'DriverType' parameter of -// driver information list APIs) -type SPDIT uint32 - -const ( - SPDIT_NODRIVER SPDIT = 0x00000000 - SPDIT_CLASSDRIVER SPDIT = 0x00000001 - SPDIT_COMPATDRIVER SPDIT = 0x00000002 -) - -// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs -type DIGCF uint32 - -const ( - DIGCF_DEFAULT DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE - DIGCF_PRESENT DIGCF = 0x00000002 - DIGCF_ALLCLASSES DIGCF = 0x00000004 - DIGCF_PROFILE DIGCF = 0x00000008 - DIGCF_DEVICEINTERFACE DIGCF = 0x00000010 -) - -// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey. -type DIREG uint32 - -const ( - DIREG_DEV DIREG = 0x00000001 // Open/Create/Delete device key - DIREG_DRV DIREG = 0x00000002 // Open/Create/Delete driver key - DIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key -) - -// SPDRP specifies device registry property codes -// (Codes marked as read-only (R) may only be used for -// SetupDiGetDeviceRegistryProperty) -// -// These values should cover the same set of registry properties -// as defined by the CM_DRP codes in cfgmgr32.h. -// -// Note that SPDRP codes are zero based while CM_DRP codes are one based! -type SPDRP uint32 - -const ( - SPDRP_DEVICEDESC SPDRP = 0x00000000 // DeviceDesc (R/W) - SPDRP_HARDWAREID SPDRP = 0x00000001 // HardwareID (R/W) - SPDRP_COMPATIBLEIDS SPDRP = 0x00000002 // CompatibleIDs (R/W) - SPDRP_SERVICE SPDRP = 0x00000004 // Service (R/W) - SPDRP_CLASS SPDRP = 0x00000007 // Class (R--tied to ClassGUID) - SPDRP_CLASSGUID SPDRP = 0x00000008 // ClassGUID (R/W) - SPDRP_DRIVER SPDRP = 0x00000009 // Driver (R/W) - SPDRP_CONFIGFLAGS SPDRP = 0x0000000A // ConfigFlags (R/W) - SPDRP_MFG SPDRP = 0x0000000B // Mfg (R/W) - SPDRP_FRIENDLYNAME SPDRP = 0x0000000C // FriendlyName (R/W) - SPDRP_LOCATION_INFORMATION SPDRP = 0x0000000D // LocationInformation (R/W) - SPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R) - SPDRP_CAPABILITIES SPDRP = 0x0000000F // Capabilities (R) - SPDRP_UI_NUMBER SPDRP = 0x00000010 // UiNumber (R) - SPDRP_UPPERFILTERS SPDRP = 0x00000011 // UpperFilters (R/W) - SPDRP_LOWERFILTERS SPDRP = 0x00000012 // LowerFilters (R/W) - SPDRP_BUSTYPEGUID SPDRP = 0x00000013 // BusTypeGUID (R) - SPDRP_LEGACYBUSTYPE SPDRP = 0x00000014 // LegacyBusType (R) - SPDRP_BUSNUMBER SPDRP = 0x00000015 // BusNumber (R) - SPDRP_ENUMERATOR_NAME SPDRP = 0x00000016 // Enumerator Name (R) - SPDRP_SECURITY SPDRP = 0x00000017 // Security (R/W, binary form) - SPDRP_SECURITY_SDS SPDRP = 0x00000018 // Security (W, SDS form) - SPDRP_DEVTYPE SPDRP = 0x00000019 // Device Type (R/W) - SPDRP_EXCLUSIVE SPDRP = 0x0000001A // Device is exclusive-access (R/W) - SPDRP_CHARACTERISTICS SPDRP = 0x0000001B // Device Characteristics (R/W) - SPDRP_ADDRESS SPDRP = 0x0000001C // Device Address (R) - SPDRP_UI_NUMBER_DESC_FORMAT SPDRP = 0x0000001D // UiNumberDescFormat (R/W) - SPDRP_DEVICE_POWER_DATA SPDRP = 0x0000001E // Device Power Data (R) - SPDRP_REMOVAL_POLICY SPDRP = 0x0000001F // Removal Policy (R) - SPDRP_REMOVAL_POLICY_HW_DEFAULT SPDRP = 0x00000020 // Hardware Removal Policy (R) - SPDRP_REMOVAL_POLICY_OVERRIDE SPDRP = 0x00000021 // Removal Policy Override (RW) - SPDRP_INSTALL_STATE SPDRP = 0x00000022 // Device Install State (R) - SPDRP_LOCATION_PATHS SPDRP = 0x00000023 // Device Location Paths (R) - SPDRP_BASE_CONTAINERID SPDRP = 0x00000024 // Base ContainerID (R) - - SPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals -) - -// DEVPROPTYPE represents the property-data-type identifier that specifies the -// data type of a device property value in the unified device property model. -type DEVPROPTYPE uint32 - -const ( - DEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000 - DEVPROP_TYPEMOD_LIST DEVPROPTYPE = 0x00002000 - - DEVPROP_TYPE_EMPTY DEVPROPTYPE = 0x00000000 - DEVPROP_TYPE_NULL DEVPROPTYPE = 0x00000001 - DEVPROP_TYPE_SBYTE DEVPROPTYPE = 0x00000002 - DEVPROP_TYPE_BYTE DEVPROPTYPE = 0x00000003 - DEVPROP_TYPE_INT16 DEVPROPTYPE = 0x00000004 - DEVPROP_TYPE_UINT16 DEVPROPTYPE = 0x00000005 - DEVPROP_TYPE_INT32 DEVPROPTYPE = 0x00000006 - DEVPROP_TYPE_UINT32 DEVPROPTYPE = 0x00000007 - DEVPROP_TYPE_INT64 DEVPROPTYPE = 0x00000008 - DEVPROP_TYPE_UINT64 DEVPROPTYPE = 0x00000009 - DEVPROP_TYPE_FLOAT DEVPROPTYPE = 0x0000000A - DEVPROP_TYPE_DOUBLE DEVPROPTYPE = 0x0000000B - DEVPROP_TYPE_DECIMAL DEVPROPTYPE = 0x0000000C - DEVPROP_TYPE_GUID DEVPROPTYPE = 0x0000000D - DEVPROP_TYPE_CURRENCY DEVPROPTYPE = 0x0000000E - DEVPROP_TYPE_DATE DEVPROPTYPE = 0x0000000F - DEVPROP_TYPE_FILETIME DEVPROPTYPE = 0x00000010 - DEVPROP_TYPE_BOOLEAN DEVPROPTYPE = 0x00000011 - DEVPROP_TYPE_STRING DEVPROPTYPE = 0x00000012 - DEVPROP_TYPE_STRING_LIST DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST - DEVPROP_TYPE_SECURITY_DESCRIPTOR DEVPROPTYPE = 0x00000013 - DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014 - DEVPROP_TYPE_DEVPROPKEY DEVPROPTYPE = 0x00000015 - DEVPROP_TYPE_DEVPROPTYPE DEVPROPTYPE = 0x00000016 - DEVPROP_TYPE_BINARY DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY - DEVPROP_TYPE_ERROR DEVPROPTYPE = 0x00000017 - DEVPROP_TYPE_NTSTATUS DEVPROPTYPE = 0x00000018 - DEVPROP_TYPE_STRING_INDIRECT DEVPROPTYPE = 0x00000019 - - MAX_DEVPROP_TYPE DEVPROPTYPE = 0x00000019 - MAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000 - - DEVPROP_MASK_TYPE DEVPROPTYPE = 0x00000FFF - DEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000 -) - -// DEVPROPGUID specifies a property category. -type DEVPROPGUID GUID - -// DEVPROPID uniquely identifies the property within the property category. -type DEVPROPID uint32 - -const DEVPROPID_FIRST_USABLE DEVPROPID = 2 - -// DEVPROPKEY represents a device property key for a device property in the -// unified device property model. -type DEVPROPKEY struct { - FmtID DEVPROPGUID - PID DEVPROPID -} - -// CONFIGRET is a return value or error code from cfgmgr32 APIs -type CONFIGRET uint32 - -func (ret CONFIGRET) Error() string { - if win32Error, ok := ret.Unwrap().(Errno); ok { - return fmt.Sprintf("%s (CfgMgr error: 0x%08x)", win32Error.Error(), uint32(ret)) - } - return fmt.Sprintf("CfgMgr error: 0x%08x", uint32(ret)) -} - -func (ret CONFIGRET) Win32Error(defaultError Errno) Errno { - return cm_MapCrToWin32Err(ret, defaultError) -} - -func (ret CONFIGRET) Unwrap() error { - const noMatch = Errno(^uintptr(0)) - win32Error := ret.Win32Error(noMatch) - if win32Error == noMatch { - return nil - } - return win32Error -} - -const ( - CR_SUCCESS CONFIGRET = 0x00000000 - CR_DEFAULT CONFIGRET = 0x00000001 - CR_OUT_OF_MEMORY CONFIGRET = 0x00000002 - CR_INVALID_POINTER CONFIGRET = 0x00000003 - CR_INVALID_FLAG CONFIGRET = 0x00000004 - CR_INVALID_DEVNODE CONFIGRET = 0x00000005 - CR_INVALID_DEVINST = CR_INVALID_DEVNODE - CR_INVALID_RES_DES CONFIGRET = 0x00000006 - CR_INVALID_LOG_CONF CONFIGRET = 0x00000007 - CR_INVALID_ARBITRATOR CONFIGRET = 0x00000008 - CR_INVALID_NODELIST CONFIGRET = 0x00000009 - CR_DEVNODE_HAS_REQS CONFIGRET = 0x0000000A - CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS - CR_INVALID_RESOURCEID CONFIGRET = 0x0000000B - CR_DLVXD_NOT_FOUND CONFIGRET = 0x0000000C - CR_NO_SUCH_DEVNODE CONFIGRET = 0x0000000D - CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE - CR_NO_MORE_LOG_CONF CONFIGRET = 0x0000000E - CR_NO_MORE_RES_DES CONFIGRET = 0x0000000F - CR_ALREADY_SUCH_DEVNODE CONFIGRET = 0x00000010 - CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE - CR_INVALID_RANGE_LIST CONFIGRET = 0x00000011 - CR_INVALID_RANGE CONFIGRET = 0x00000012 - CR_FAILURE CONFIGRET = 0x00000013 - CR_NO_SUCH_LOGICAL_DEV CONFIGRET = 0x00000014 - CR_CREATE_BLOCKED CONFIGRET = 0x00000015 - CR_NOT_SYSTEM_VM CONFIGRET = 0x00000016 - CR_REMOVE_VETOED CONFIGRET = 0x00000017 - CR_APM_VETOED CONFIGRET = 0x00000018 - CR_INVALID_LOAD_TYPE CONFIGRET = 0x00000019 - CR_BUFFER_SMALL CONFIGRET = 0x0000001A - CR_NO_ARBITRATOR CONFIGRET = 0x0000001B - CR_NO_REGISTRY_HANDLE CONFIGRET = 0x0000001C - CR_REGISTRY_ERROR CONFIGRET = 0x0000001D - CR_INVALID_DEVICE_ID CONFIGRET = 0x0000001E - CR_INVALID_DATA CONFIGRET = 0x0000001F - CR_INVALID_API CONFIGRET = 0x00000020 - CR_DEVLOADER_NOT_READY CONFIGRET = 0x00000021 - CR_NEED_RESTART CONFIGRET = 0x00000022 - CR_NO_MORE_HW_PROFILES CONFIGRET = 0x00000023 - CR_DEVICE_NOT_THERE CONFIGRET = 0x00000024 - CR_NO_SUCH_VALUE CONFIGRET = 0x00000025 - CR_WRONG_TYPE CONFIGRET = 0x00000026 - CR_INVALID_PRIORITY CONFIGRET = 0x00000027 - CR_NOT_DISABLEABLE CONFIGRET = 0x00000028 - CR_FREE_RESOURCES CONFIGRET = 0x00000029 - CR_QUERY_VETOED CONFIGRET = 0x0000002A - CR_CANT_SHARE_IRQ CONFIGRET = 0x0000002B - CR_NO_DEPENDENT CONFIGRET = 0x0000002C - CR_SAME_RESOURCES CONFIGRET = 0x0000002D - CR_NO_SUCH_REGISTRY_KEY CONFIGRET = 0x0000002E - CR_INVALID_MACHINENAME CONFIGRET = 0x0000002F - CR_REMOTE_COMM_FAILURE CONFIGRET = 0x00000030 - CR_MACHINE_UNAVAILABLE CONFIGRET = 0x00000031 - CR_NO_CM_SERVICES CONFIGRET = 0x00000032 - CR_ACCESS_DENIED CONFIGRET = 0x00000033 - CR_CALL_NOT_IMPLEMENTED CONFIGRET = 0x00000034 - CR_INVALID_PROPERTY CONFIGRET = 0x00000035 - CR_DEVICE_INTERFACE_ACTIVE CONFIGRET = 0x00000036 - CR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037 - CR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038 - CR_INVALID_CONFLICT_LIST CONFIGRET = 0x00000039 - CR_INVALID_INDEX CONFIGRET = 0x0000003A - CR_INVALID_STRUCTURE_SIZE CONFIGRET = 0x0000003B - NUM_CR_RESULTS CONFIGRET = 0x0000003C -) - -const ( - CM_GET_DEVICE_INTERFACE_LIST_PRESENT = 0 // only currently 'live' device interfaces - CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not -) - -const ( - DN_ROOT_ENUMERATED = 0x00000001 // Was enumerated by ROOT - DN_DRIVER_LOADED = 0x00000002 // Has Register_Device_Driver - DN_ENUM_LOADED = 0x00000004 // Has Register_Enumerator - DN_STARTED = 0x00000008 // Is currently configured - DN_MANUAL = 0x00000010 // Manually installed - DN_NEED_TO_ENUM = 0x00000020 // May need reenumeration - DN_NOT_FIRST_TIME = 0x00000040 // Has received a config - DN_HARDWARE_ENUM = 0x00000080 // Enum generates hardware ID - DN_LIAR = 0x00000100 // Lied about can reconfig once - DN_HAS_MARK = 0x00000200 // Not CM_Create_DevInst lately - DN_HAS_PROBLEM = 0x00000400 // Need device installer - DN_FILTERED = 0x00000800 // Is filtered - DN_MOVED = 0x00001000 // Has been moved - DN_DISABLEABLE = 0x00002000 // Can be disabled - DN_REMOVABLE = 0x00004000 // Can be removed - DN_PRIVATE_PROBLEM = 0x00008000 // Has a private problem - DN_MF_PARENT = 0x00010000 // Multi function parent - DN_MF_CHILD = 0x00020000 // Multi function child - DN_WILL_BE_REMOVED = 0x00040000 // DevInst is being removed - DN_NOT_FIRST_TIMEE = 0x00080000 // Has received a config enumerate - DN_STOP_FREE_RES = 0x00100000 // When child is stopped, free resources - DN_REBAL_CANDIDATE = 0x00200000 // Don't skip during rebalance - DN_BAD_PARTIAL = 0x00400000 // This devnode's log_confs do not have same resources - DN_NT_ENUMERATOR = 0x00800000 // This devnode's is an NT enumerator - DN_NT_DRIVER = 0x01000000 // This devnode's is an NT driver - DN_NEEDS_LOCKING = 0x02000000 // Devnode need lock resume processing - DN_ARM_WAKEUP = 0x04000000 // Devnode can be the wakeup device - DN_APM_ENUMERATOR = 0x08000000 // APM aware enumerator - DN_APM_DRIVER = 0x10000000 // APM aware driver - DN_SILENT_INSTALL = 0x20000000 // Silent install - DN_NO_SHOW_IN_DM = 0x40000000 // No show in device manager - DN_BOOT_LOG_PROB = 0x80000000 // Had a problem during preassignment of boot log conf - DN_NEED_RESTART = DN_LIAR // System needs to be restarted for this Devnode to work properly - DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode - DN_LEGACY_DRIVER = DN_MOVED // This device is using a legacy driver - DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK // One or more children have invalid IDs - DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING // The function driver for a device reported that the device is not connected. Typically this means a wireless device is out of range. - DN_QUERY_REMOVE_PENDING = DN_MF_PARENT // Device is part of a set of related devices collectively pending query-removal - DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD // Device is actively engaged in a query-remove IRP - DN_CHANGEABLE_FLAGS = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM -) - -//sys setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW - -// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class. -func SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) { - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - return setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0) -} - -//sys setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW - -// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. -func SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) { - data := &DevInfoListDetailData{} - data.size = data.unsafeSizeOf() - - return data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data) -} - -// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. -func (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) { - return SetupDiGetDeviceInfoListDetail(deviceInfoSet) -} - -//sys setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW - -// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set. -func SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) { - deviceNameUTF16, err := UTF16PtrFromString(deviceName) - if err != nil { - return - } - - var deviceDescriptionUTF16 *uint16 - if deviceDescription != "" { - deviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription) - if err != nil { - return - } - } - - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data) -} - -// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set. -func (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) { - return SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags) -} - -//sys setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo - -// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set. -func SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) { - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data) -} - -// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set. -func (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) { - return SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex) -} - -// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory. -//sys SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList - -// Close method deletes a device information set and frees all associated memory. -func (deviceInfoSet DevInfo) Close() error { - return SetupDiDestroyDeviceInfoList(deviceInfoSet) -} - -//sys SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList - -// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set. -func (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { - return SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType) -} - -//sys SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch - -// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread. -func (deviceInfoSet DevInfo) CancelDriverInfoSearch() error { - return SetupDiCancelDriverInfoSearch(deviceInfoSet) -} - -//sys setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW - -// SetupDiEnumDriverInfo function enumerates the members of a driver list. -func SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { - data := &DrvInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data) -} - -// EnumDriverInfo method enumerates the members of a driver list. -func (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { - return SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex) -} - -//sys setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW - -// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element. -func SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) { - data := &DrvInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data) -} - -// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) { - return SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData) -} - -//sys SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW - -// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set. -func (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error { - return SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData) -} - -//sys setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW - -// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set. -func SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { - reqSize := uint32(2048) - for { - buf := make([]byte, reqSize) - data := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0])) - data.size = data.unsafeSizeOf() - err := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - data.size = reqSize - return data, nil - } -} - -// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set. -func (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { - return SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData) -} - -//sys SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList - -// DestroyDriverInfoList method deletes a driver list. -func (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { - return SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType) -} - -//sys setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW - -// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer. -func SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) { - var enumeratorUTF16 *uint16 - if enumerator != "" { - enumeratorUTF16, err = UTF16PtrFromString(enumerator) - if err != nil { - return - } - } - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - return setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0) -} - -// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). -//sys SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller - -// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). -func (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error { - return SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData) -} - -// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information. -//sys SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey - -// OpenDevRegKey method opens a registry key for device-specific configuration information. -func (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) { - return SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired) -} - -//sys setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW - -// SetupDiGetDeviceProperty function retrieves a specified device instance property. -func SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) { - reqSize := uint32(256) - for { - var dataType DEVPROPTYPE - buf := make([]byte, reqSize) - err = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return - } - switch dataType { - case DEVPROP_TYPE_STRING: - ret := UTF16ToString(bufToUTF16(buf)) - runtime.KeepAlive(buf) - return ret, nil - } - return nil, errors.New("unimplemented property type") - } -} - -//sys setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW - -// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property. -func SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) { - reqSize := uint32(256) - for { - var dataType uint32 - buf := make([]byte, reqSize) - err = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return - } - return getRegistryValue(buf[:reqSize], dataType) - } -} - -func getRegistryValue(buf []byte, dataType uint32) (interface{}, error) { - switch dataType { - case REG_SZ: - ret := UTF16ToString(bufToUTF16(buf)) - runtime.KeepAlive(buf) - return ret, nil - case REG_EXPAND_SZ: - value := UTF16ToString(bufToUTF16(buf)) - if value == "" { - return "", nil - } - p, err := syscall.UTF16PtrFromString(value) - if err != nil { - return "", err - } - ret := make([]uint16, 100) - for { - n, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret))) - if err != nil { - return "", err - } - if n <= uint32(len(ret)) { - return UTF16ToString(ret[:n]), nil - } - ret = make([]uint16, n) - } - case REG_BINARY: - return buf, nil - case REG_DWORD_LITTLE_ENDIAN: - return binary.LittleEndian.Uint32(buf), nil - case REG_DWORD_BIG_ENDIAN: - return binary.BigEndian.Uint32(buf), nil - case REG_MULTI_SZ: - bufW := bufToUTF16(buf) - a := []string{} - for i := 0; i < len(bufW); { - j := i + wcslen(bufW[i:]) - if i < j { - a = append(a, UTF16ToString(bufW[i:j])) - } - i = j + 1 - } - runtime.KeepAlive(buf) - return a, nil - case REG_QWORD_LITTLE_ENDIAN: - return binary.LittleEndian.Uint64(buf), nil - default: - return nil, fmt.Errorf("Unsupported registry value type: %v", dataType) - } -} - -// bufToUTF16 function reinterprets []byte buffer as []uint16 -func bufToUTF16(buf []byte) []uint16 { - sl := struct { - addr *uint16 - len int - cap int - }{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2} - return *(*[]uint16)(unsafe.Pointer(&sl)) -} - -// utf16ToBuf function reinterprets []uint16 as []byte -func utf16ToBuf(buf []uint16) []byte { - sl := struct { - addr *byte - len int - cap int - }{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2} - return *(*[]byte)(unsafe.Pointer(&sl)) -} - -func wcslen(str []uint16) int { - for i := 0; i < len(str); i++ { - if str[i] == 0 { - return i - } - } - return len(str) -} - -// DeviceRegistryProperty method retrieves a specified Plug and Play device property. -func (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) { - return SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property) -} - -//sys setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW - -// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device. -func SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { - return setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers))) -} - -// SetDeviceRegistryProperty function sets a Plug and Play device property for a device. -func (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { - return SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers) -} - -// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device. -func (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error { - str16, err := UTF16FromString(str) - if err != nil { - return err - } - err = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0))) - runtime.KeepAlive(str16) - return err -} - -//sys setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW - -// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element. -func SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) { - params := &DevInstallParams{} - params.size = uint32(unsafe.Sizeof(*params)) - - return params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params) -} - -// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) { - return SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData) -} - -//sys setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW - -// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device. -func SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) { - reqSize := uint32(1024) - for { - buf := make([]uint16, reqSize) - err := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return "", err - } - return UTF16ToString(buf), nil - } -} - -// DeviceInstanceID method retrieves the instance ID of the device. -func (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) { - return SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData) -} - -// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element. -//sys SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW - -// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error { - return SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize) -} - -//sys SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW - -// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error { - return SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams) -} - -// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element. -//sys SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW - -// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error { - return SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize) -} - -//sys setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW - -// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer. -func SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) { - var classNameUTF16 [MAX_CLASS_NAME_LEN]uint16 - - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - - err = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0) - if err != nil { - return - } - - className = UTF16ToString(classNameUTF16[:]) - return -} - -//sys setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW - -// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer. -func SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) { - classNameUTF16, err := UTF16PtrFromString(className) - if err != nil { - return nil, err - } - - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return nil, err - } - } - - reqSize := uint32(4) - for { - buf := make([]GUID, reqSize) - err = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - return buf[:reqSize], nil - } -} - -//sys setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice - -// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set. -func SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) { - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiGetSelectedDevice(deviceInfoSet, data) -} - -// SelectedDevice method retrieves the selected device information element in a device information set. -func (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) { - return SetupDiGetSelectedDevice(deviceInfoSet) -} - -// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. -//sys SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice - -// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. -func (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error { - return SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData) -} - -//sys setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW - -// SetupUninstallOEMInf uninstalls the specified driver. -func SetupUninstallOEMInf(infFileName string, flags SUOI) error { - infFileName16, err := UTF16PtrFromString(infFileName) - if err != nil { - return err - } - return setupUninstallOEMInf(infFileName16, flags, 0) -} - -//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err - -//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW -//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW - -func CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) { - deviceID16, err := UTF16PtrFromString(deviceID) - if err != nil { - return nil, err - } - var buf []uint16 - var buflen uint32 - for { - if ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS { - return nil, ret - } - buf = make([]uint16, buflen) - if ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS { - break - } else if ret != CR_BUFFER_SMALL { - return nil, ret - } - } - var interfaces []string - for i := 0; i < len(buf); { - j := i + wcslen(buf[i:]) - if i < j { - interfaces = append(interfaces, UTF16ToString(buf[i:j])) - } - i = j + 1 - } - if interfaces == nil { - return nil, ERROR_NO_SUCH_DEVICE_INTERFACE - } - return interfaces, nil -} - -//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status - -func CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error { - ret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags) - if ret == CR_SUCCESS { - return nil - } - return ret -} diff --git a/backend/vendor/golang.org/x/sys/windows/str.go b/backend/vendor/golang.org/x/sys/windows/str.go deleted file mode 100644 index 4fc01434..00000000 --- a/backend/vendor/golang.org/x/sys/windows/str.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -package windows - -func itoa(val int) string { // do it here rather than with fmt to avoid dependency - if val < 0 { - return "-" + itoa(-val) - } - var buf [32]byte // big enough for int64 - i := len(buf) - 1 - for val >= 10 { - buf[i] = byte(val%10 + '0') - i-- - val /= 10 - } - buf[i] = byte(val + '0') - return string(buf[i:]) -} diff --git a/backend/vendor/golang.org/x/sys/windows/syscall.go b/backend/vendor/golang.org/x/sys/windows/syscall.go deleted file mode 100644 index 8732cdb9..00000000 --- a/backend/vendor/golang.org/x/sys/windows/syscall.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -// Package windows contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display the OS-specific documentation for the current -// system. If you want godoc to display syscall documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package windows // import "golang.org/x/sys/windows" - -import ( - "bytes" - "strings" - "syscall" - "unsafe" -) - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, syscall.EINVAL - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any -// bytes after the NUL removed. -func ByteSliceToString(s []byte) string { - if i := bytes.IndexByte(s, 0); i != -1 { - s = s[:i] - } - return string(s) -} - -// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. -// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated -// at a zero byte; if the zero byte is not present, the program may crash. -func BytePtrToString(p *byte) string { - if p == nil { - return "" - } - if *p == 0 { - return "" - } - - // Find NUL terminator. - n := 0 - for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + 1) - } - - return string(unsafe.Slice(p, n)) -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -// See mksyscall.pl. -var _zero uintptr - -func (ts *Timespec) Unix() (sec int64, nsec int64) { - return int64(ts.Sec), int64(ts.Nsec) -} - -func (tv *Timeval) Unix() (sec int64, nsec int64) { - return int64(tv.Sec), int64(tv.Usec) * 1000 -} - -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -func (tv *Timeval) Nano() int64 { - return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 -} diff --git a/backend/vendor/golang.org/x/sys/windows/syscall_windows.go b/backend/vendor/golang.org/x/sys/windows/syscall_windows.go deleted file mode 100644 index 96459007..00000000 --- a/backend/vendor/golang.org/x/sys/windows/syscall_windows.go +++ /dev/null @@ -1,1819 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Windows system calls. - -package windows - -import ( - errorspkg "errors" - "fmt" - "runtime" - "sync" - "syscall" - "time" - "unicode/utf16" - "unsafe" - - "golang.org/x/sys/internal/unsafeheader" -) - -type Handle uintptr -type HWND uintptr - -const ( - InvalidHandle = ^Handle(0) - InvalidHWND = ^HWND(0) - - // Flags for DefineDosDevice. - DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 - DDD_NO_BROADCAST_SYSTEM = 0x00000008 - DDD_RAW_TARGET_PATH = 0x00000001 - DDD_REMOVE_DEFINITION = 0x00000002 - - // Return values for GetDriveType. - DRIVE_UNKNOWN = 0 - DRIVE_NO_ROOT_DIR = 1 - DRIVE_REMOVABLE = 2 - DRIVE_FIXED = 3 - DRIVE_REMOTE = 4 - DRIVE_CDROM = 5 - DRIVE_RAMDISK = 6 - - // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. - FILE_CASE_SENSITIVE_SEARCH = 0x00000001 - FILE_CASE_PRESERVED_NAMES = 0x00000002 - FILE_FILE_COMPRESSION = 0x00000010 - FILE_DAX_VOLUME = 0x20000000 - FILE_NAMED_STREAMS = 0x00040000 - FILE_PERSISTENT_ACLS = 0x00000008 - FILE_READ_ONLY_VOLUME = 0x00080000 - FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 - FILE_SUPPORTS_ENCRYPTION = 0x00020000 - FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 - FILE_SUPPORTS_HARD_LINKS = 0x00400000 - FILE_SUPPORTS_OBJECT_IDS = 0x00010000 - FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 - FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 - FILE_SUPPORTS_SPARSE_FILES = 0x00000040 - FILE_SUPPORTS_TRANSACTIONS = 0x00200000 - FILE_SUPPORTS_USN_JOURNAL = 0x02000000 - FILE_UNICODE_ON_DISK = 0x00000004 - FILE_VOLUME_IS_COMPRESSED = 0x00008000 - FILE_VOLUME_QUOTAS = 0x00000020 - - // Flags for LockFileEx. - LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 - LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 - - // Return value of SleepEx and other APC functions - WAIT_IO_COMPLETION = 0x000000C0 -) - -// StringToUTF16 is deprecated. Use UTF16FromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16(s string) []uint16 { - a, err := UTF16FromString(s) - if err != nil { - panic("windows: string with NUL passed to StringToUTF16") - } - return a -} - -// UTF16FromString returns the UTF-16 encoding of the UTF-8 string -// s, with a terminating NUL added. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func UTF16FromString(s string) ([]uint16, error) { - return syscall.UTF16FromString(s) -} - -// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, -// with a terminating NUL and any bytes after the NUL removed. -func UTF16ToString(s []uint16) string { - return syscall.UTF16ToString(s) -} - -// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } - -// UTF16PtrFromString returns pointer to the UTF-16 encoding of -// the UTF-8 string s, with a terminating NUL added. If s -// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). -func UTF16PtrFromString(s string) (*uint16, error) { - a, err := UTF16FromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. -// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated -// at a zero word; if the zero word is not present, the program may crash. -func UTF16PtrToString(p *uint16) string { - if p == nil { - return "" - } - if *p == 0 { - return "" - } - - // Find NUL terminator. - n := 0 - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } - - return string(utf16.Decode(unsafe.Slice(p, n))) -} - -func Getpagesize() int { return 4096 } - -// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. -// This is useful when interoperating with Windows code requiring callbacks. -// The argument is expected to be a function with with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -func NewCallback(fn interface{}) uintptr { - return syscall.NewCallback(fn) -} - -// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. -// This is useful when interoperating with Windows code requiring callbacks. -// The argument is expected to be a function with with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -func NewCallbackCDecl(fn interface{}) uintptr { - return syscall.NewCallbackCDecl(fn) -} - -// windows api calls - -//sys GetLastError() (lasterr error) -//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW -//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW -//sys FreeLibrary(handle Handle) (err error) -//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) -//sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW -//sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW -//sys SetDefaultDllDirectories(directoryFlags uint32) (err error) -//sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW -//sys GetVersion() (ver uint32, err error) -//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW -//sys ExitProcess(exitcode uint32) -//sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process -//sys IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2? -//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW -//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW -//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) -//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) -//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW -//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState -//sys readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile -//sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile -//sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) -//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] -//sys CloseHandle(handle Handle) (err error) -//sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] -//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) -//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW -//sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW -//sys FindClose(handle Handle) (err error) -//sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) -//sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) -//sys SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) -//sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW -//sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW -//sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW -//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW -//sys DeleteFile(path *uint16) (err error) = DeleteFileW -//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW -//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW -//sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) -//sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) -//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW -//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW -//sys SetEndOfFile(handle Handle) (err error) -//sys GetSystemTimeAsFileTime(time *Filetime) -//sys GetSystemTimePreciseAsFileTime(time *Filetime) -//sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) -//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) -//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) -//sys CancelIo(s Handle) (err error) -//sys CancelIoEx(s Handle, o *Overlapped) (err error) -//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW -//sys CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW -//sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList -//sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList -//sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute -//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) -//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW -//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId -//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow -//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW -//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx -//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath -//sys TerminateProcess(handle Handle, exitcode uint32) (err error) -//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) -//sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW -//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) -//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) -//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] -//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects -//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW -//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) -//sys GetFileType(filehandle Handle) (n uint32, err error) -//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW -//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext -//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom -//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW -//sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW -//sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW -//sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW -//sys ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW -//sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock -//sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock -//sys getTickCount64() (ms uint64) = kernel32.GetTickCount64 -//sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) -//sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW -//sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW -//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW -//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW -//sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW -//sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] -//sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) -//sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) -//sys FlushFileBuffers(handle Handle) (err error) -//sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW -//sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW -//sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW -//sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW -//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW -//sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) -//sys UnmapViewOfFile(addr uintptr) (err error) -//sys FlushViewOfFile(addr uintptr, length uintptr) (err error) -//sys VirtualLock(addr uintptr, length uintptr) (err error) -//sys VirtualUnlock(addr uintptr, length uintptr) (err error) -//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc -//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree -//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect -//sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx -//sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery -//sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx -//sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory -//sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory -//sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile -//sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW -//sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW -//sys FindNextChangeNotification(handle Handle) (err error) -//sys FindCloseChangeNotification(handle Handle) (err error) -//sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW -//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore -//sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore -//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore -//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore -//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore -//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext -//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore -//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain -//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain -//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext -//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext -//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy -//sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW -//sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension -//sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore -//sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore -//sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey -//sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject -//sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject -//sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData -//sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData -//sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx -//sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW -//sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey -//sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW -//sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW -//sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW -//sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue -//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId -//sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId -//sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode -//sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode -//sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo -//sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition -//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW -//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW -//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot -//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW -//sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW -//sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW -//sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW -//sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) -//sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) -//sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) -// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. -//sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW -//sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW -//sys GetCurrentThreadId() (id uint32) -//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW -//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW -//sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW -//sys SetEvent(event Handle) (err error) = kernel32.SetEvent -//sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent -//sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent -//sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW -//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW -//sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW -//sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex -//sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx -//sys CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW -//sys AssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject -//sys TerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject -//sys SetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode -//sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread -//sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass -//sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass -//sys QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject -//sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) -//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) -//sys GetProcessId(process Handle) (id uint32, err error) -//sys QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW -//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) -//sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost -//sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) -//sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) -//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) -//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) -//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) -//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) -//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows -//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows -//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW -//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow -//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow -//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow -//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode -//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible -//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo -//sys GetLargePageMinimum() (size uintptr) - -// Volume Management Functions -//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW -//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW -//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW -//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW -//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW -//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW -//sys FindVolumeClose(findVolume Handle) (err error) -//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) -//sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW -//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW -//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] -//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW -//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW -//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW -//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW -//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW -//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW -//sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW -//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW -//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW -//sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW -//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters -//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters -//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString -//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 -//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid -//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree -//sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx -//sys CoUninitialize() = ole32.CoUninitialize -//sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject -//sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages -//sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages -//sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages -//sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages -//sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW -//sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource -//sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource -//sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource - -// Version APIs -//sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW -//sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW -//sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW - -// Process Status API (PSAPI) -//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses -//sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules -//sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx -//sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation -//sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW -//sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW -//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx - -// NT Native APIs -//sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb -//sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion -//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers -//sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb -//sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString -//sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString -//sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile -//sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile -//sys NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile -//sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus -//sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus -//sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl -//sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess -//sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess -//sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation -//sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation -//sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable -//sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable - -// Desktop Window Manager API (Dwmapi) -//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute -//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute - -// syscall interface implementation for other packages - -// GetCurrentProcess returns the handle for the current process. -// It is a pseudo handle that does not need to be closed. -// The returned error is always nil. -// -// Deprecated: use CurrentProcess for the same Handle without the nil -// error. -func GetCurrentProcess() (Handle, error) { - return CurrentProcess(), nil -} - -// CurrentProcess returns the handle for the current process. -// It is a pseudo handle that does not need to be closed. -func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) } - -// GetCurrentThread returns the handle for the current thread. -// It is a pseudo handle that does not need to be closed. -// The returned error is always nil. -// -// Deprecated: use CurrentThread for the same Handle without the nil -// error. -func GetCurrentThread() (Handle, error) { - return CurrentThread(), nil -} - -// CurrentThread returns the handle for the current thread. -// It is a pseudo handle that does not need to be closed. -func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) } - -// GetProcAddressByOrdinal retrieves the address of the exported -// function from module by ordinal. -func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) - proc = uintptr(r0) - if proc == 0 { - err = errnoErr(e1) - } - return -} - -func Exit(code int) { ExitProcess(uint32(code)) } - -func makeInheritSa() *SecurityAttributes { - var sa SecurityAttributes - sa.Length = uint32(unsafe.Sizeof(sa)) - sa.InheritHandle = 1 - return &sa -} - -func Open(path string, mode int, perm uint32) (fd Handle, err error) { - if len(path) == 0 { - return InvalidHandle, ERROR_FILE_NOT_FOUND - } - pathp, err := UTF16PtrFromString(path) - if err != nil { - return InvalidHandle, err - } - var access uint32 - switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { - case O_RDONLY: - access = GENERIC_READ - case O_WRONLY: - access = GENERIC_WRITE - case O_RDWR: - access = GENERIC_READ | GENERIC_WRITE - } - if mode&O_CREAT != 0 { - access |= GENERIC_WRITE - } - if mode&O_APPEND != 0 { - access &^= GENERIC_WRITE - access |= FILE_APPEND_DATA - } - sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) - var sa *SecurityAttributes - if mode&O_CLOEXEC == 0 { - sa = makeInheritSa() - } - var createmode uint32 - switch { - case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): - createmode = CREATE_NEW - case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): - createmode = CREATE_ALWAYS - case mode&O_CREAT == O_CREAT: - createmode = OPEN_ALWAYS - case mode&O_TRUNC == O_TRUNC: - createmode = TRUNCATE_EXISTING - default: - createmode = OPEN_EXISTING - } - var attrs uint32 = FILE_ATTRIBUTE_NORMAL - if perm&S_IWRITE == 0 { - attrs = FILE_ATTRIBUTE_READONLY - } - h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0) - return h, e -} - -func Read(fd Handle, p []byte) (n int, err error) { - var done uint32 - e := ReadFile(fd, p, &done, nil) - if e != nil { - if e == ERROR_BROKEN_PIPE { - // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin - return 0, nil - } - return 0, e - } - return int(done), nil -} - -func Write(fd Handle, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var done uint32 - e := WriteFile(fd, p, &done, nil) - if e != nil { - return 0, e - } - return int(done), nil -} - -func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { - err := readFile(fd, p, done, overlapped) - if raceenabled { - if *done > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), int(*done)) - } - raceAcquire(unsafe.Pointer(&ioSync)) - } - return err -} - -func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - err := writeFile(fd, p, done, overlapped) - if raceenabled && *done > 0 { - raceReadRange(unsafe.Pointer(&p[0]), int(*done)) - } - return err -} - -var ioSync int64 - -func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { - var w uint32 - switch whence { - case 0: - w = FILE_BEGIN - case 1: - w = FILE_CURRENT - case 2: - w = FILE_END - } - hi := int32(offset >> 32) - lo := int32(offset) - // use GetFileType to check pipe, pipe can't do seek - ft, _ := GetFileType(fd) - if ft == FILE_TYPE_PIPE { - return 0, syscall.EPIPE - } - rlo, e := SetFilePointer(fd, lo, &hi, w) - if e != nil { - return 0, e - } - return int64(hi)<<32 + int64(rlo), nil -} - -func Close(fd Handle) (err error) { - return CloseHandle(fd) -} - -var ( - Stdin = getStdHandle(STD_INPUT_HANDLE) - Stdout = getStdHandle(STD_OUTPUT_HANDLE) - Stderr = getStdHandle(STD_ERROR_HANDLE) -) - -func getStdHandle(stdhandle uint32) (fd Handle) { - r, _ := GetStdHandle(stdhandle) - return r -} - -const ImplementsGetwd = true - -func Getwd() (wd string, err error) { - b := make([]uint16, 300) - n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) - if e != nil { - return "", e - } - return string(utf16.Decode(b[0:n])), nil -} - -func Chdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return SetCurrentDirectory(pathp) -} - -func Mkdir(path string, mode uint32) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return CreateDirectory(pathp, nil) -} - -func Rmdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return RemoveDirectory(pathp) -} - -func Unlink(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return DeleteFile(pathp) -} - -func Rename(oldpath, newpath string) (err error) { - from, err := UTF16PtrFromString(oldpath) - if err != nil { - return err - } - to, err := UTF16PtrFromString(newpath) - if err != nil { - return err - } - return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) -} - -func ComputerName() (name string, err error) { - var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 - b := make([]uint16, n) - e := GetComputerName(&b[0], &n) - if e != nil { - return "", e - } - return string(utf16.Decode(b[0:n])), nil -} - -func DurationSinceBoot() time.Duration { - return time.Duration(getTickCount64()) * time.Millisecond -} - -func Ftruncate(fd Handle, length int64) (err error) { - curoffset, e := Seek(fd, 0, 1) - if e != nil { - return e - } - defer Seek(fd, curoffset, 0) - _, e = Seek(fd, length, 0) - if e != nil { - return e - } - e = SetEndOfFile(fd) - if e != nil { - return e - } - return nil -} - -func Gettimeofday(tv *Timeval) (err error) { - var ft Filetime - GetSystemTimeAsFileTime(&ft) - *tv = NsecToTimeval(ft.Nanoseconds()) - return nil -} - -func Pipe(p []Handle) (err error) { - if len(p) != 2 { - return syscall.EINVAL - } - var r, w Handle - e := CreatePipe(&r, &w, makeInheritSa(), 0) - if e != nil { - return e - } - p[0] = r - p[1] = w - return nil -} - -func Utimes(path string, tv []Timeval) (err error) { - if len(tv) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer CloseHandle(h) - a := NsecToFiletime(tv[0].Nanoseconds()) - w := NsecToFiletime(tv[1].Nanoseconds()) - return SetFileTime(h, nil, &a, &w) -} - -func UtimesNano(path string, ts []Timespec) (err error) { - if len(ts) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer CloseHandle(h) - a := NsecToFiletime(TimespecToNsec(ts[0])) - w := NsecToFiletime(TimespecToNsec(ts[1])) - return SetFileTime(h, nil, &a, &w) -} - -func Fsync(fd Handle) (err error) { - return FlushFileBuffers(fd) -} - -func Chmod(path string, mode uint32) (err error) { - p, e := UTF16PtrFromString(path) - if e != nil { - return e - } - attrs, e := GetFileAttributes(p) - if e != nil { - return e - } - if mode&S_IWRITE != 0 { - attrs &^= FILE_ATTRIBUTE_READONLY - } else { - attrs |= FILE_ATTRIBUTE_READONLY - } - return SetFileAttributes(p, attrs) -} - -func LoadGetSystemTimePreciseAsFileTime() error { - return procGetSystemTimePreciseAsFileTime.Find() -} - -func LoadCancelIoEx() error { - return procCancelIoEx.Find() -} - -func LoadSetFileCompletionNotificationModes() error { - return procSetFileCompletionNotificationModes.Find() -} - -func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - // Every other win32 array API takes arguments as "pointer, count", except for this function. So we - // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore - // trivially stub this ourselves. - - var handlePtr *Handle - if len(handles) > 0 { - handlePtr = &handles[0] - } - return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds) -} - -// net api calls - -const socket_error = uintptr(^uint32(0)) - -//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup -//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup -//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl -//sys WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW -//sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW -//sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd -//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket -//sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto -//sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom -//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt -//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt -//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind -//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect -//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname -//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername -//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen -//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown -//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket -//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx -//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs -//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv -//sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend -//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom -//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo -//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW -//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname -//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname -//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs -//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname -//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W -//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree -//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W -//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW -//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW -//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry -//sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo -//sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes -//sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW -//sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult -//sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses -//sys GetACP() (acp uint32) = kernel32.GetACP -//sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar -//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [100]int8 -} - -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs -} - -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -type RawSockaddrUnix struct { - Family uint16 - Path [UNIX_PATH_MAX]int8 -} - -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { - name := sa.Name - n := len(name) - if n > len(sa.raw.Path) { - return nil, 0, syscall.EINVAL - } - if n == len(sa.raw.Path) && name[0] != '@' { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := int32(2) - if n > 0 { - sl += int32(n) + 1 - } - if sa.raw.Path[0] == '@' { - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -type RawSockaddrBth struct { - AddressFamily [2]byte - BtAddr [8]byte - ServiceClassId [16]byte - Port [4]byte -} - -type SockaddrBth struct { - BtAddr uint64 - ServiceClassId GUID - Port uint32 - - raw RawSockaddrBth -} - -func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { - family := AF_BTH - sa.raw = RawSockaddrBth{ - AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), - BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), - Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), - ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), - } - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, syscall.EAFNOSUPPORT -} - -func Socket(domain, typ, proto int) (fd Handle, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return InvalidHandle, syscall.EAFNOSUPPORT - } - return socket(int32(domain), int32(typ), int32(proto)) -} - -func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { - v := int32(value) - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) -} - -func Bind(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { - ptr, _, err := sa.sockaddr() - if err != nil { - return err - } - return getBestInterfaceEx(ptr, pdwBestIfIndex) -} - -func Getsockname(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getsockname(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Getpeername(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getpeername(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Listen(s Handle, n int) (err error) { - return listen(s, int32(n)) -} - -func Shutdown(fd Handle, how int) (err error) { - return shutdown(fd, int32(how)) -} - -func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { - var rsa unsafe.Pointer - var l int32 - if to != nil { - rsa, l, err = to.sockaddr() - if err != nil { - return err - } - } - return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) -} - -func LoadGetAddrInfo() error { - return procGetAddrInfoW.Find() -} - -var connectExFunc struct { - once sync.Once - addr uintptr - err error -} - -func LoadConnectEx() error { - connectExFunc.once.Do(func() { - var s Handle - s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) - if connectExFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - connectExFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), - uint32(unsafe.Sizeof(WSAID_CONNECTEX)), - (*byte)(unsafe.Pointer(&connectExFunc.addr)), - uint32(unsafe.Sizeof(connectExFunc.addr)), - &n, nil, 0) - }) - return connectExFunc.err -} - -func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { - err := LoadConnectEx() - if err != nil { - return errorspkg.New("failed to find ConnectEx: " + err.Error()) - } - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) -} - -var sendRecvMsgFunc struct { - once sync.Once - sendAddr uintptr - recvAddr uintptr - err error -} - -func loadWSASendRecvMsg() error { - sendRecvMsgFunc.once.Do(func() { - var s Handle - s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) - if sendRecvMsgFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - sendRecvMsgFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), - uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), - (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), - uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), - &n, nil, 0) - if sendRecvMsgFunc.err != nil { - return - } - sendRecvMsgFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), - uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), - (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), - uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), - &n, nil, 0) - }) - return sendRecvMsgFunc.err -} - -func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { - err := loadWSASendRecvMsg() - if err != nil { - return err - } - r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return err -} - -func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { - err := loadWSASendRecvMsg() - if err != nil { - return err - } - r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return err -} - -// Invented structures to support what package os expects. -type Rusage struct { - CreationTime Filetime - ExitTime Filetime - KernelTime Filetime - UserTime Filetime -} - -type WaitStatus struct { - ExitCode uint32 -} - -func (w WaitStatus) Exited() bool { return true } - -func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } - -func (w WaitStatus) Signal() Signal { return -1 } - -func (w WaitStatus) CoreDump() bool { return false } - -func (w WaitStatus) Stopped() bool { return false } - -func (w WaitStatus) Continued() bool { return false } - -func (w WaitStatus) StopSignal() Signal { return -1 } - -func (w WaitStatus) Signaled() bool { return false } - -func (w WaitStatus) TrapCause() int { return -1 } - -// Timespec is an invented structure on Windows, but here for -// consistency with the corresponding package for other operating systems. -type Timespec struct { - Sec int64 - Nsec int64 -} - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -// TODO(brainman): fix all needed for net - -func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } - -func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - n32, err := recvfrom(fd, p, int32(flags), &rsa, &l) - n = int(n32) - if err != nil { - return - } - from, err = rsa.Sockaddr() - return -} - -func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { - ptr, l, err := to.sockaddr() - if err != nil { - return err - } - return sendto(fd, p, int32(flags), ptr, l) -} - -func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } - -// The Linger struct is wrong but we only noticed after Go 1. -// sysLinger is the real system call structure. - -// BUG(brainman): The definition of Linger is not appropriate for direct use -// with Setsockopt and Getsockopt. -// Use SetsockoptLinger instead. - -type Linger struct { - Onoff int32 - Linger int32 -} - -type sysLinger struct { - Onoff uint16 - Linger uint16 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -func GetsockoptInt(fd Handle, level, opt int) (int, error) { - v := int32(0) - l := int32(unsafe.Sizeof(v)) - err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l) - return int(v), err -} - -func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { - sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) -} - -func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) -} -func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) -} -func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { - return syscall.EWINDOWS -} - -func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { - // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses - // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. - var p *uint32 - if len(processIds) > 0 { - p = &processIds[0] - } - size := uint32(len(processIds) * 4) - return enumProcesses(p, size, bytesReturned) -} - -func Getpid() (pid int) { return int(GetCurrentProcessId()) } - -func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { - // NOTE(rsc): The Win32finddata struct is wrong for the system call: - // the two paths are each one uint16 short. Use the correct struct, - // a win32finddata1, and then copy the results out. - // There is no loss of expressivity here, because the final - // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. - // For Go 1.1, we might avoid the allocation of win32finddata1 here - // by adding a final Bug [2]uint16 field to the struct and then - // adjusting the fields in the result directly. - var data1 win32finddata1 - handle, err = findFirstFile1(name, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func FindNextFile(handle Handle, data *Win32finddata) (err error) { - var data1 win32finddata1 - err = findNextFile1(handle, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func getProcessEntry(pid int) (*ProcessEntry32, error) { - snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) - if err != nil { - return nil, err - } - defer CloseHandle(snapshot) - var procEntry ProcessEntry32 - procEntry.Size = uint32(unsafe.Sizeof(procEntry)) - if err = Process32First(snapshot, &procEntry); err != nil { - return nil, err - } - for { - if procEntry.ProcessID == uint32(pid) { - return &procEntry, nil - } - err = Process32Next(snapshot, &procEntry) - if err != nil { - return nil, err - } - } -} - -func Getppid() (ppid int) { - pe, err := getProcessEntry(Getpid()) - if err != nil { - return -1 - } - return int(pe.ParentProcessID) -} - -// TODO(brainman): fix all needed for os -func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } -func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } -func Symlink(path, link string) (err error) { return syscall.EWINDOWS } - -func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } -func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } - -func Getuid() (uid int) { return -1 } -func Geteuid() (euid int) { return -1 } -func Getgid() (gid int) { return -1 } -func Getegid() (egid int) { return -1 } -func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } - -type Signal int - -func (s Signal) Signal() {} - -func (s Signal) String() string { - if 0 <= s && int(s) < len(signals) { - str := signals[s] - if str != "" { - return str - } - } - return "signal " + itoa(int(s)) -} - -func LoadCreateSymbolicLink() error { - return procCreateSymbolicLinkW.Find() -} - -// Readlink returns the destination of the named symbolic link. -func Readlink(path string, buf []byte) (n int, err error) { - fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, - FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) - if err != nil { - return -1, err - } - defer CloseHandle(fd) - - rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) - var bytesReturned uint32 - err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) - if err != nil { - return -1, err - } - - rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) - var s string - switch rdb.ReparseTag { - case IO_REPARSE_TAG_SYMLINK: - data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - case IO_REPARSE_TAG_MOUNT_POINT: - data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - default: - // the path is not a symlink or junction but another type of reparse - // point - return -1, syscall.ENOENT - } - n = copy(buf, []byte(s)) - - return n, nil -} - -// GUIDFromString parses a string in the form of -// "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" into a GUID. -func GUIDFromString(str string) (GUID, error) { - guid := GUID{} - str16, err := syscall.UTF16PtrFromString(str) - if err != nil { - return guid, err - } - err = clsidFromString(str16, &guid) - if err != nil { - return guid, err - } - return guid, nil -} - -// GenerateGUID creates a new random GUID. -func GenerateGUID() (GUID, error) { - guid := GUID{} - err := coCreateGuid(&guid) - if err != nil { - return guid, err - } - return guid, nil -} - -// String returns the canonical string form of the GUID, -// in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}". -func (guid GUID) String() string { - var str [100]uint16 - chars := stringFromGUID2(&guid, &str[0], int32(len(str))) - if chars <= 1 { - return "" - } - return string(utf16.Decode(str[:chars-1])) -} - -// KnownFolderPath returns a well-known folder path for the current user, specified by one of -// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. -func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { - return Token(0).KnownFolderPath(folderID, flags) -} - -// KnownFolderPath returns a well-known folder path for the user token, specified by one of -// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. -func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { - var p *uint16 - err := shGetKnownFolderPath(folderID, flags, t, &p) - if err != nil { - return "", err - } - defer CoTaskMemFree(unsafe.Pointer(p)) - return UTF16PtrToString(p), nil -} - -// RtlGetVersion returns the version of the underlying operating system, ignoring -// manifest semantics but is affected by the application compatibility layer. -func RtlGetVersion() *OsVersionInfoEx { - info := &OsVersionInfoEx{} - info.osVersionInfoSize = uint32(unsafe.Sizeof(*info)) - // According to documentation, this function always succeeds. - // The function doesn't even check the validity of the - // osVersionInfoSize member. Disassembling ntdll.dll indicates - // that the documentation is indeed correct about that. - _ = rtlGetVersion(info) - return info -} - -// RtlGetNtVersionNumbers returns the version of the underlying operating system, -// ignoring manifest semantics and the application compatibility layer. -func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) { - rtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber) - buildNumber &= 0xffff - return -} - -// GetProcessPreferredUILanguages retrieves the process preferred UI languages. -func GetProcessPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getProcessPreferredUILanguages) -} - -// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread. -func GetThreadPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getThreadPreferredUILanguages) -} - -// GetUserPreferredUILanguages retrieves information about the user preferred UI languages. -func GetUserPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getUserPreferredUILanguages) -} - -// GetSystemPreferredUILanguages retrieves the system preferred UI languages. -func GetSystemPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getSystemPreferredUILanguages) -} - -func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) { - size := uint32(128) - for { - var numLanguages uint32 - buf := make([]uint16, size) - err := f(flags, &numLanguages, &buf[0], &size) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - buf = buf[:size] - if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0" - return []string{}, nil - } - if buf[len(buf)-1] == 0 { - buf = buf[:len(buf)-1] // remove terminating null - } - languages := make([]string, 0, numLanguages) - from := 0 - for i, c := range buf { - if c == 0 { - languages = append(languages, string(utf16.Decode(buf[from:i]))) - from = i + 1 - } - } - return languages, nil - } -} - -func SetConsoleCursorPosition(console Handle, position Coord) error { - return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) -} - -func (s NTStatus) Errno() syscall.Errno { - return rtlNtStatusToDosErrorNoTeb(s) -} - -func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) } - -func (s NTStatus) Error() string { - b := make([]uint16, 300) - n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil) - if err != nil { - return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s)) - } - // trim terminating \r and \n - for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { - } - return string(utf16.Decode(b[:n])) -} - -// NewNTUnicodeString returns a new NTUnicodeString structure for use with native -// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs -// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for -// the more common *uint16 string type. -func NewNTUnicodeString(s string) (*NTUnicodeString, error) { - var u NTUnicodeString - s16, err := UTF16PtrFromString(s) - if err != nil { - return nil, err - } - RtlInitUnicodeString(&u, s16) - return &u, nil -} - -// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. -func (s *NTUnicodeString) Slice() []uint16 { - var slice []uint16 - hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) - hdr.Data = unsafe.Pointer(s.Buffer) - hdr.Len = int(s.Length) - hdr.Cap = int(s.MaximumLength) - return slice -} - -func (s *NTUnicodeString) String() string { - return UTF16ToString(s.Slice()) -} - -// NewNTString returns a new NTString structure for use with native -// NT APIs that work over the NTString type. Note that most Windows APIs -// do not use NTString, and instead UTF16PtrFromString should be used for -// the more common *uint16 string type. -func NewNTString(s string) (*NTString, error) { - var nts NTString - s8, err := BytePtrFromString(s) - if err != nil { - return nil, err - } - RtlInitString(&nts, s8) - return &nts, nil -} - -// Slice returns a byte slice that aliases the data in the NTString. -func (s *NTString) Slice() []byte { - var slice []byte - hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) - hdr.Data = unsafe.Pointer(s.Buffer) - hdr.Len = int(s.Length) - hdr.Cap = int(s.MaximumLength) - return slice -} - -func (s *NTString) String() string { - return ByteSliceToString(s.Slice()) -} - -// FindResource resolves a resource of the given name and resource type. -func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) { - var namePtr, resTypePtr uintptr - var name16, resType16 *uint16 - var err error - resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) { - switch v := i.(type) { - case string: - *keep, err = UTF16PtrFromString(v) - if err != nil { - return 0, err - } - return uintptr(unsafe.Pointer(*keep)), nil - case ResourceID: - return uintptr(v), nil - } - return 0, errorspkg.New("parameter must be a ResourceID or a string") - } - namePtr, err = resolvePtr(name, &name16) - if err != nil { - return 0, err - } - resTypePtr, err = resolvePtr(resType, &resType16) - if err != nil { - return 0, err - } - resInfo, err := findResource(module, namePtr, resTypePtr) - runtime.KeepAlive(name16) - runtime.KeepAlive(resType16) - return resInfo, err -} - -func LoadResourceData(module, resInfo Handle) (data []byte, err error) { - size, err := SizeofResource(module, resInfo) - if err != nil { - return - } - resData, err := LoadResource(module, resInfo) - if err != nil { - return - } - ptr, err := LockResource(resData) - if err != nil { - return - } - h := (*unsafeheader.Slice)(unsafe.Pointer(&data)) - h.Data = unsafe.Pointer(ptr) - h.Len = int(size) - h.Cap = int(size) - return -} - -// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. -type PSAPI_WORKING_SET_EX_BLOCK uint64 - -// Valid returns the validity of this page. -// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. -func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { - return (b & 1) == 1 -} - -// ShareCount is the number of processes that share this page. The maximum value of this member is 7. -func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { - return b.intField(1, 3) -} - -// Win32Protection is the memory protection attributes of the page. For a list of values, see -// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants -func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { - return b.intField(4, 11) -} - -// Shared returns the shared status of this page. -// If this bit is 1, the page can be shared. -func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { - return (b & (1 << 15)) == 1 -} - -// Node is the NUMA node. The maximum value of this member is 63. -func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { - return b.intField(16, 6) -} - -// Locked returns the locked status of this page. -// If this bit is 1, the virtual page is locked in physical memory. -func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { - return (b & (1 << 22)) == 1 -} - -// LargePage returns the large page status of this page. -// If this bit is 1, the page is a large page. -func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { - return (b & (1 << 23)) == 1 -} - -// Bad returns the bad status of this page. -// If this bit is 1, the page is has been reported as bad. -func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { - return (b & (1 << 31)) == 1 -} - -// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. -func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { - var mask PSAPI_WORKING_SET_EX_BLOCK - for pos := start; pos < start+length; pos++ { - mask |= (1 << pos) - } - - masked := b & mask - return uint64(masked >> start) -} - -// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. -type PSAPI_WORKING_SET_EX_INFORMATION struct { - // The virtual address. - VirtualAddress Pointer - // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. - VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK -} diff --git a/backend/vendor/golang.org/x/sys/windows/types_windows.go b/backend/vendor/golang.org/x/sys/windows/types_windows.go deleted file mode 100644 index 88e62a63..00000000 --- a/backend/vendor/golang.org/x/sys/windows/types_windows.go +++ /dev/null @@ -1,3349 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -import ( - "net" - "syscall" - "unsafe" -) - -// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and -// other native functions. -type NTStatus uint32 - -const ( - // Invented values to support what package os expects. - O_RDONLY = 0x00000 - O_WRONLY = 0x00001 - O_RDWR = 0x00002 - O_CREAT = 0x00040 - O_EXCL = 0x00080 - O_NOCTTY = 0x00100 - O_TRUNC = 0x00200 - O_NONBLOCK = 0x00800 - O_APPEND = 0x00400 - O_SYNC = 0x01000 - O_ASYNC = 0x02000 - O_CLOEXEC = 0x80000 -) - -const ( - // More invented values for signals - SIGHUP = Signal(0x1) - SIGINT = Signal(0x2) - SIGQUIT = Signal(0x3) - SIGILL = Signal(0x4) - SIGTRAP = Signal(0x5) - SIGABRT = Signal(0x6) - SIGBUS = Signal(0x7) - SIGFPE = Signal(0x8) - SIGKILL = Signal(0x9) - SIGSEGV = Signal(0xb) - SIGPIPE = Signal(0xd) - SIGALRM = Signal(0xe) - SIGTERM = Signal(0xf) -) - -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", -} - -const ( - FILE_READ_DATA = 0x00000001 - FILE_READ_ATTRIBUTES = 0x00000080 - FILE_READ_EA = 0x00000008 - FILE_WRITE_DATA = 0x00000002 - FILE_WRITE_ATTRIBUTES = 0x00000100 - FILE_WRITE_EA = 0x00000010 - FILE_APPEND_DATA = 0x00000004 - FILE_EXECUTE = 0x00000020 - - FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE - FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE - FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE - - FILE_LIST_DIRECTORY = 0x00000001 - FILE_TRAVERSE = 0x00000020 - - FILE_SHARE_READ = 0x00000001 - FILE_SHARE_WRITE = 0x00000002 - FILE_SHARE_DELETE = 0x00000004 - - FILE_ATTRIBUTE_READONLY = 0x00000001 - FILE_ATTRIBUTE_HIDDEN = 0x00000002 - FILE_ATTRIBUTE_SYSTEM = 0x00000004 - FILE_ATTRIBUTE_DIRECTORY = 0x00000010 - FILE_ATTRIBUTE_ARCHIVE = 0x00000020 - FILE_ATTRIBUTE_DEVICE = 0x00000040 - FILE_ATTRIBUTE_NORMAL = 0x00000080 - FILE_ATTRIBUTE_TEMPORARY = 0x00000100 - FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 - FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 - FILE_ATTRIBUTE_COMPRESSED = 0x00000800 - FILE_ATTRIBUTE_OFFLINE = 0x00001000 - FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 - FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 - FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000 - FILE_ATTRIBUTE_VIRTUAL = 0x00010000 - FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000 - FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000 - FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000 - - INVALID_FILE_ATTRIBUTES = 0xffffffff - - CREATE_NEW = 1 - CREATE_ALWAYS = 2 - OPEN_EXISTING = 3 - OPEN_ALWAYS = 4 - TRUNCATE_EXISTING = 5 - - FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 - FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 - FILE_FLAG_OPEN_NO_RECALL = 0x00100000 - FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 - FILE_FLAG_SESSION_AWARE = 0x00800000 - FILE_FLAG_POSIX_SEMANTICS = 0x01000000 - FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 - FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 - FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 - FILE_FLAG_RANDOM_ACCESS = 0x10000000 - FILE_FLAG_NO_BUFFERING = 0x20000000 - FILE_FLAG_OVERLAPPED = 0x40000000 - FILE_FLAG_WRITE_THROUGH = 0x80000000 - - HANDLE_FLAG_INHERIT = 0x00000001 - STARTF_USESTDHANDLES = 0x00000100 - STARTF_USESHOWWINDOW = 0x00000001 - DUPLICATE_CLOSE_SOURCE = 0x00000001 - DUPLICATE_SAME_ACCESS = 0x00000002 - - STD_INPUT_HANDLE = -10 & (1<<32 - 1) - STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) - STD_ERROR_HANDLE = -12 & (1<<32 - 1) - - FILE_BEGIN = 0 - FILE_CURRENT = 1 - FILE_END = 2 - - LANG_ENGLISH = 0x09 - SUBLANG_ENGLISH_US = 0x01 - - FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 - FORMAT_MESSAGE_IGNORE_INSERTS = 512 - FORMAT_MESSAGE_FROM_STRING = 1024 - FORMAT_MESSAGE_FROM_HMODULE = 2048 - FORMAT_MESSAGE_FROM_SYSTEM = 4096 - FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 - FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 - - MAX_PATH = 260 - MAX_LONG_PATH = 32768 - - MAX_MODULE_NAME32 = 255 - - MAX_COMPUTERNAME_LENGTH = 15 - - MAX_DHCPV6_DUID_LENGTH = 130 - - MAX_DNS_SUFFIX_STRING_LENGTH = 256 - - TIME_ZONE_ID_UNKNOWN = 0 - TIME_ZONE_ID_STANDARD = 1 - - TIME_ZONE_ID_DAYLIGHT = 2 - IGNORE = 0 - INFINITE = 0xffffffff - - WAIT_ABANDONED = 0x00000080 - WAIT_OBJECT_0 = 0x00000000 - WAIT_FAILED = 0xFFFFFFFF - - // Access rights for process. - PROCESS_CREATE_PROCESS = 0x0080 - PROCESS_CREATE_THREAD = 0x0002 - PROCESS_DUP_HANDLE = 0x0040 - PROCESS_QUERY_INFORMATION = 0x0400 - PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 - PROCESS_SET_INFORMATION = 0x0200 - PROCESS_SET_QUOTA = 0x0100 - PROCESS_SUSPEND_RESUME = 0x0800 - PROCESS_TERMINATE = 0x0001 - PROCESS_VM_OPERATION = 0x0008 - PROCESS_VM_READ = 0x0010 - PROCESS_VM_WRITE = 0x0020 - - // Access rights for thread. - THREAD_DIRECT_IMPERSONATION = 0x0200 - THREAD_GET_CONTEXT = 0x0008 - THREAD_IMPERSONATE = 0x0100 - THREAD_QUERY_INFORMATION = 0x0040 - THREAD_QUERY_LIMITED_INFORMATION = 0x0800 - THREAD_SET_CONTEXT = 0x0010 - THREAD_SET_INFORMATION = 0x0020 - THREAD_SET_LIMITED_INFORMATION = 0x0400 - THREAD_SET_THREAD_TOKEN = 0x0080 - THREAD_SUSPEND_RESUME = 0x0002 - THREAD_TERMINATE = 0x0001 - - FILE_MAP_COPY = 0x01 - FILE_MAP_WRITE = 0x02 - FILE_MAP_READ = 0x04 - FILE_MAP_EXECUTE = 0x20 - - CTRL_C_EVENT = 0 - CTRL_BREAK_EVENT = 1 - CTRL_CLOSE_EVENT = 2 - CTRL_LOGOFF_EVENT = 5 - CTRL_SHUTDOWN_EVENT = 6 - - // Windows reserves errors >= 1<<29 for application use. - APPLICATION_ERROR = 1 << 29 -) - -const ( - // Process creation flags. - CREATE_BREAKAWAY_FROM_JOB = 0x01000000 - CREATE_DEFAULT_ERROR_MODE = 0x04000000 - CREATE_NEW_CONSOLE = 0x00000010 - CREATE_NEW_PROCESS_GROUP = 0x00000200 - CREATE_NO_WINDOW = 0x08000000 - CREATE_PROTECTED_PROCESS = 0x00040000 - CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 - CREATE_SEPARATE_WOW_VDM = 0x00000800 - CREATE_SHARED_WOW_VDM = 0x00001000 - CREATE_SUSPENDED = 0x00000004 - CREATE_UNICODE_ENVIRONMENT = 0x00000400 - DEBUG_ONLY_THIS_PROCESS = 0x00000002 - DEBUG_PROCESS = 0x00000001 - DETACHED_PROCESS = 0x00000008 - EXTENDED_STARTUPINFO_PRESENT = 0x00080000 - INHERIT_PARENT_AFFINITY = 0x00010000 -) - -const ( - // attributes for ProcThreadAttributeList - PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000 - PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002 - PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003 - PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004 - PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005 - PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 - PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 - PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b -) - -const ( - // flags for CreateToolhelp32Snapshot - TH32CS_SNAPHEAPLIST = 0x01 - TH32CS_SNAPPROCESS = 0x02 - TH32CS_SNAPTHREAD = 0x04 - TH32CS_SNAPMODULE = 0x08 - TH32CS_SNAPMODULE32 = 0x10 - TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD - TH32CS_INHERIT = 0x80000000 -) - -const ( - // flags for EnumProcessModulesEx - LIST_MODULES_32BIT = 0x01 - LIST_MODULES_64BIT = 0x02 - LIST_MODULES_ALL = 0x03 - LIST_MODULES_DEFAULT = 0x00 -) - -const ( - // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW - FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 - FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 - FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 - FILE_NOTIFY_CHANGE_SIZE = 0x008 - FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 - FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 - FILE_NOTIFY_CHANGE_CREATION = 0x040 - FILE_NOTIFY_CHANGE_SECURITY = 0x100 -) - -const ( - // do not reorder - FILE_ACTION_ADDED = iota + 1 - FILE_ACTION_REMOVED - FILE_ACTION_MODIFIED - FILE_ACTION_RENAMED_OLD_NAME - FILE_ACTION_RENAMED_NEW_NAME -) - -const ( - // wincrypt.h - /* certenrolld_begin -- PROV_RSA_*/ - PROV_RSA_FULL = 1 - PROV_RSA_SIG = 2 - PROV_DSS = 3 - PROV_FORTEZZA = 4 - PROV_MS_EXCHANGE = 5 - PROV_SSL = 6 - PROV_RSA_SCHANNEL = 12 - PROV_DSS_DH = 13 - PROV_EC_ECDSA_SIG = 14 - PROV_EC_ECNRA_SIG = 15 - PROV_EC_ECDSA_FULL = 16 - PROV_EC_ECNRA_FULL = 17 - PROV_DH_SCHANNEL = 18 - PROV_SPYRUS_LYNKS = 20 - PROV_RNG = 21 - PROV_INTEL_SEC = 22 - PROV_REPLACE_OWF = 23 - PROV_RSA_AES = 24 - - /* dwFlags definitions for CryptAcquireContext */ - CRYPT_VERIFYCONTEXT = 0xF0000000 - CRYPT_NEWKEYSET = 0x00000008 - CRYPT_DELETEKEYSET = 0x00000010 - CRYPT_MACHINE_KEYSET = 0x00000020 - CRYPT_SILENT = 0x00000040 - CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 - - /* Flags for PFXImportCertStore */ - CRYPT_EXPORTABLE = 0x00000001 - CRYPT_USER_PROTECTED = 0x00000002 - CRYPT_USER_KEYSET = 0x00001000 - PKCS12_PREFER_CNG_KSP = 0x00000100 - PKCS12_ALWAYS_CNG_KSP = 0x00000200 - PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000 - PKCS12_NO_PERSIST_KEY = 0x00008000 - PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010 - - /* Flags for CryptAcquireCertificatePrivateKey */ - CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 - CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 - CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 - CRYPT_ACQUIRE_NO_HEALING = 0x00000008 - CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 - CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080 - CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000 - CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000 - CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000 - CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000 - - /* pdwKeySpec for CryptAcquireCertificatePrivateKey */ - AT_KEYEXCHANGE = 1 - AT_SIGNATURE = 2 - CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF - - /* Default usage match type is AND with value zero */ - USAGE_MATCH_TYPE_AND = 0 - USAGE_MATCH_TYPE_OR = 1 - - /* msgAndCertEncodingType values for CertOpenStore function */ - X509_ASN_ENCODING = 0x00000001 - PKCS_7_ASN_ENCODING = 0x00010000 - - /* storeProvider values for CertOpenStore function */ - CERT_STORE_PROV_MSG = 1 - CERT_STORE_PROV_MEMORY = 2 - CERT_STORE_PROV_FILE = 3 - CERT_STORE_PROV_REG = 4 - CERT_STORE_PROV_PKCS7 = 5 - CERT_STORE_PROV_SERIALIZED = 6 - CERT_STORE_PROV_FILENAME_A = 7 - CERT_STORE_PROV_FILENAME_W = 8 - CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W - CERT_STORE_PROV_SYSTEM_A = 9 - CERT_STORE_PROV_SYSTEM_W = 10 - CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W - CERT_STORE_PROV_COLLECTION = 11 - CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12 - CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13 - CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W - CERT_STORE_PROV_PHYSICAL_W = 14 - CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W - CERT_STORE_PROV_SMART_CARD_W = 15 - CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W - CERT_STORE_PROV_LDAP_W = 16 - CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W - CERT_STORE_PROV_PKCS12 = 17 - - /* store characteristics (low WORD of flag) for CertOpenStore function */ - CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 - CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 - CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 - CERT_STORE_DELETE_FLAG = 0x00000010 - CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 - CERT_STORE_SHARE_STORE_FLAG = 0x00000040 - CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 - CERT_STORE_MANIFOLD_FLAG = 0x00000100 - CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 - CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 - CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 - CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 - CERT_STORE_CREATE_NEW_FLAG = 0x00002000 - CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 - CERT_STORE_READONLY_FLAG = 0x00008000 - - /* store locations (high WORD of flag) for CertOpenStore function */ - CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000 - CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000 - CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000 - CERT_SYSTEM_STORE_SERVICES = 0x00050000 - CERT_SYSTEM_STORE_USERS = 0x00060000 - CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000 - CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000 - CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000 - CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 - CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000 - - /* Miscellaneous high-WORD flags for CertOpenStore function */ - CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000 - CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000 - CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000 - CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000 - CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 - CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000 - CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000 - CERT_LDAP_STORE_SIGN_FLAG = 0x00010000 - CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000 - CERT_LDAP_STORE_OPENED_FLAG = 0x00040000 - CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000 - - /* addDisposition values for CertAddCertificateContextToStore function */ - CERT_STORE_ADD_NEW = 1 - CERT_STORE_ADD_USE_EXISTING = 2 - CERT_STORE_ADD_REPLACE_EXISTING = 3 - CERT_STORE_ADD_ALWAYS = 4 - CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 - CERT_STORE_ADD_NEWER = 6 - CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 - - /* ErrorStatus values for CertTrustStatus struct */ - CERT_TRUST_NO_ERROR = 0x00000000 - CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 - CERT_TRUST_IS_REVOKED = 0x00000004 - CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 - CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 - CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 - CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 - CERT_TRUST_IS_CYCLIC = 0x00000080 - CERT_TRUST_INVALID_EXTENSION = 0x00000100 - CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 - CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 - CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 - CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 - CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 - CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 - CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 - CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 - CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 - CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 - CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 - CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000 - CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 - CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 - CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 - CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 - - /* InfoStatus values for CertTrustStatus struct */ - CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 - CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 - CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 - CERT_TRUST_IS_SELF_SIGNED = 0x00000008 - CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 - CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400 - CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 - CERT_TRUST_IS_PEER_TRUSTED = 0x00000800 - CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000 - CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000 - CERT_TRUST_IS_CA_TRUSTED = 0x00004000 - CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 - - /* Certificate Information Flags */ - CERT_INFO_VERSION_FLAG = 1 - CERT_INFO_SERIAL_NUMBER_FLAG = 2 - CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 - CERT_INFO_ISSUER_FLAG = 4 - CERT_INFO_NOT_BEFORE_FLAG = 5 - CERT_INFO_NOT_AFTER_FLAG = 6 - CERT_INFO_SUBJECT_FLAG = 7 - CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 - CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 - CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 - CERT_INFO_EXTENSION_FLAG = 11 - - /* dwFindType for CertFindCertificateInStore */ - CERT_COMPARE_MASK = 0xFFFF - CERT_COMPARE_SHIFT = 16 - CERT_COMPARE_ANY = 0 - CERT_COMPARE_SHA1_HASH = 1 - CERT_COMPARE_NAME = 2 - CERT_COMPARE_ATTR = 3 - CERT_COMPARE_MD5_HASH = 4 - CERT_COMPARE_PROPERTY = 5 - CERT_COMPARE_PUBLIC_KEY = 6 - CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH - CERT_COMPARE_NAME_STR_A = 7 - CERT_COMPARE_NAME_STR_W = 8 - CERT_COMPARE_KEY_SPEC = 9 - CERT_COMPARE_ENHKEY_USAGE = 10 - CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE - CERT_COMPARE_SUBJECT_CERT = 11 - CERT_COMPARE_ISSUER_OF = 12 - CERT_COMPARE_EXISTING = 13 - CERT_COMPARE_SIGNATURE_HASH = 14 - CERT_COMPARE_KEY_IDENTIFIER = 15 - CERT_COMPARE_CERT_ID = 16 - CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 - CERT_COMPARE_PUBKEY_MD5_HASH = 18 - CERT_COMPARE_SUBJECT_INFO_ACCESS = 19 - CERT_COMPARE_HASH_STR = 20 - CERT_COMPARE_HAS_PRIVATE_KEY = 21 - CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) - CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) - CERT_FIND_HASH = CERT_FIND_SHA1_HASH - CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) - CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) - CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME<> 32 & 0xffffffff) - return ft -} - -type Win32finddata struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH - 1]uint16 - AlternateFileName [13]uint16 -} - -// This is the actual system call structure. -// Win32finddata is what we committed to in Go 1. -type win32finddata1 struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH]uint16 - AlternateFileName [14]uint16 - - // The Microsoft documentation for this struct¹ describes three additional - // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields - // are empirically only present in the macOS port of the Win32 API,² and thus - // not needed for binaries built for Windows. - // - // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe - // ² https://golang.org/issue/42637#issuecomment-760715755. -} - -func copyFindData(dst *Win32finddata, src *win32finddata1) { - dst.FileAttributes = src.FileAttributes - dst.CreationTime = src.CreationTime - dst.LastAccessTime = src.LastAccessTime - dst.LastWriteTime = src.LastWriteTime - dst.FileSizeHigh = src.FileSizeHigh - dst.FileSizeLow = src.FileSizeLow - dst.Reserved0 = src.Reserved0 - dst.Reserved1 = src.Reserved1 - - // The src is 1 element bigger than dst, but it must be NUL. - copy(dst.FileName[:], src.FileName[:]) - copy(dst.AlternateFileName[:], src.AlternateFileName[:]) -} - -type ByHandleFileInformation struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - VolumeSerialNumber uint32 - FileSizeHigh uint32 - FileSizeLow uint32 - NumberOfLinks uint32 - FileIndexHigh uint32 - FileIndexLow uint32 -} - -const ( - GetFileExInfoStandard = 0 - GetFileExMaxInfoLevel = 1 -) - -type Win32FileAttributeData struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 -} - -// ShowWindow constants -const ( - // winuser.h - SW_HIDE = 0 - SW_NORMAL = 1 - SW_SHOWNORMAL = 1 - SW_SHOWMINIMIZED = 2 - SW_SHOWMAXIMIZED = 3 - SW_MAXIMIZE = 3 - SW_SHOWNOACTIVATE = 4 - SW_SHOW = 5 - SW_MINIMIZE = 6 - SW_SHOWMINNOACTIVE = 7 - SW_SHOWNA = 8 - SW_RESTORE = 9 - SW_SHOWDEFAULT = 10 - SW_FORCEMINIMIZE = 11 -) - -type StartupInfo struct { - Cb uint32 - _ *uint16 - Desktop *uint16 - Title *uint16 - X uint32 - Y uint32 - XSize uint32 - YSize uint32 - XCountChars uint32 - YCountChars uint32 - FillAttribute uint32 - Flags uint32 - ShowWindow uint16 - _ uint16 - _ *byte - StdInput Handle - StdOutput Handle - StdErr Handle -} - -type StartupInfoEx struct { - StartupInfo - ProcThreadAttributeList *ProcThreadAttributeList -} - -// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. -// -// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update -// it with ProcThreadAttributeListContainer.Update, free its memory using -// ProcThreadAttributeListContainer.Delete, and access the list itself using -// ProcThreadAttributeListContainer.List. -type ProcThreadAttributeList struct{} - -type ProcThreadAttributeListContainer struct { - data *ProcThreadAttributeList - pointers []unsafe.Pointer -} - -type ProcessInformation struct { - Process Handle - Thread Handle - ProcessId uint32 - ThreadId uint32 -} - -type ProcessEntry32 struct { - Size uint32 - Usage uint32 - ProcessID uint32 - DefaultHeapID uintptr - ModuleID uint32 - Threads uint32 - ParentProcessID uint32 - PriClassBase int32 - Flags uint32 - ExeFile [MAX_PATH]uint16 -} - -type ThreadEntry32 struct { - Size uint32 - Usage uint32 - ThreadID uint32 - OwnerProcessID uint32 - BasePri int32 - DeltaPri int32 - Flags uint32 -} - -type ModuleEntry32 struct { - Size uint32 - ModuleID uint32 - ProcessID uint32 - GlblcntUsage uint32 - ProccntUsage uint32 - ModBaseAddr uintptr - ModBaseSize uint32 - ModuleHandle Handle - Module [MAX_MODULE_NAME32 + 1]uint16 - ExePath [MAX_PATH]uint16 -} - -const SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{}) - -type Systemtime struct { - Year uint16 - Month uint16 - DayOfWeek uint16 - Day uint16 - Hour uint16 - Minute uint16 - Second uint16 - Milliseconds uint16 -} - -type Timezoneinformation struct { - Bias int32 - StandardName [32]uint16 - StandardDate Systemtime - StandardBias int32 - DaylightName [32]uint16 - DaylightDate Systemtime - DaylightBias int32 -} - -// Socket related. - -const ( - AF_UNSPEC = 0 - AF_UNIX = 1 - AF_INET = 2 - AF_NETBIOS = 17 - AF_INET6 = 23 - AF_IRDA = 26 - AF_BTH = 32 - - SOCK_STREAM = 1 - SOCK_DGRAM = 2 - SOCK_RAW = 3 - SOCK_RDM = 4 - SOCK_SEQPACKET = 5 - - IPPROTO_IP = 0 - IPPROTO_ICMP = 1 - IPPROTO_IGMP = 2 - BTHPROTO_RFCOMM = 3 - IPPROTO_TCP = 6 - IPPROTO_UDP = 17 - IPPROTO_IPV6 = 41 - IPPROTO_ICMPV6 = 58 - IPPROTO_RM = 113 - - SOL_SOCKET = 0xffff - SO_REUSEADDR = 4 - SO_KEEPALIVE = 8 - SO_DONTROUTE = 16 - SO_BROADCAST = 32 - SO_LINGER = 128 - SO_RCVBUF = 0x1002 - SO_RCVTIMEO = 0x1006 - SO_SNDBUF = 0x1001 - SO_UPDATE_ACCEPT_CONTEXT = 0x700b - SO_UPDATE_CONNECT_CONTEXT = 0x7010 - - IOC_OUT = 0x40000000 - IOC_IN = 0x80000000 - IOC_VENDOR = 0x18000000 - IOC_INOUT = IOC_IN | IOC_OUT - IOC_WS2 = 0x08000000 - SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 - SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 - SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 - - // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 - - IP_HDRINCL = 0x2 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_LOOP = 0xb - IP_ADD_MEMBERSHIP = 0xc - IP_DROP_MEMBERSHIP = 0xd - IP_PKTINFO = 0x13 - - IPV6_V6ONLY = 0x1b - IPV6_UNICAST_HOPS = 0x4 - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_LOOP = 0xb - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_PKTINFO = 0x13 - - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_DONTROUTE = 0x4 - MSG_WAITALL = 0x8 - - MSG_TRUNC = 0x0100 - MSG_CTRUNC = 0x0200 - MSG_BCAST = 0x0400 - MSG_MCAST = 0x0800 - - SOMAXCONN = 0x7fffffff - - TCP_NODELAY = 1 - - SHUT_RD = 0 - SHUT_WR = 1 - SHUT_RDWR = 2 - - WSADESCRIPTION_LEN = 256 - WSASYS_STATUS_LEN = 128 -) - -type WSABuf struct { - Len uint32 - Buf *byte -} - -type WSAMsg struct { - Name *syscall.RawSockaddrAny - Namelen int32 - Buffers *WSABuf - BufferCount uint32 - Control WSABuf - Flags uint32 -} - -// Flags for WSASocket -const ( - WSA_FLAG_OVERLAPPED = 0x01 - WSA_FLAG_MULTIPOINT_C_ROOT = 0x02 - WSA_FLAG_MULTIPOINT_C_LEAF = 0x04 - WSA_FLAG_MULTIPOINT_D_ROOT = 0x08 - WSA_FLAG_MULTIPOINT_D_LEAF = 0x10 - WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40 - WSA_FLAG_NO_HANDLE_INHERIT = 0x80 - WSA_FLAG_REGISTERED_IO = 0x100 -) - -// Invented values to support what package os expects. -const ( - S_IFMT = 0x1f000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -const ( - FILE_TYPE_CHAR = 0x0002 - FILE_TYPE_DISK = 0x0001 - FILE_TYPE_PIPE = 0x0003 - FILE_TYPE_REMOTE = 0x8000 - FILE_TYPE_UNKNOWN = 0x0000 -) - -type Hostent struct { - Name *byte - Aliases **byte - AddrType uint16 - Length uint16 - AddrList **byte -} - -type Protoent struct { - Name *byte - Aliases **byte - Proto uint16 -} - -const ( - DNS_TYPE_A = 0x0001 - DNS_TYPE_NS = 0x0002 - DNS_TYPE_MD = 0x0003 - DNS_TYPE_MF = 0x0004 - DNS_TYPE_CNAME = 0x0005 - DNS_TYPE_SOA = 0x0006 - DNS_TYPE_MB = 0x0007 - DNS_TYPE_MG = 0x0008 - DNS_TYPE_MR = 0x0009 - DNS_TYPE_NULL = 0x000a - DNS_TYPE_WKS = 0x000b - DNS_TYPE_PTR = 0x000c - DNS_TYPE_HINFO = 0x000d - DNS_TYPE_MINFO = 0x000e - DNS_TYPE_MX = 0x000f - DNS_TYPE_TEXT = 0x0010 - DNS_TYPE_RP = 0x0011 - DNS_TYPE_AFSDB = 0x0012 - DNS_TYPE_X25 = 0x0013 - DNS_TYPE_ISDN = 0x0014 - DNS_TYPE_RT = 0x0015 - DNS_TYPE_NSAP = 0x0016 - DNS_TYPE_NSAPPTR = 0x0017 - DNS_TYPE_SIG = 0x0018 - DNS_TYPE_KEY = 0x0019 - DNS_TYPE_PX = 0x001a - DNS_TYPE_GPOS = 0x001b - DNS_TYPE_AAAA = 0x001c - DNS_TYPE_LOC = 0x001d - DNS_TYPE_NXT = 0x001e - DNS_TYPE_EID = 0x001f - DNS_TYPE_NIMLOC = 0x0020 - DNS_TYPE_SRV = 0x0021 - DNS_TYPE_ATMA = 0x0022 - DNS_TYPE_NAPTR = 0x0023 - DNS_TYPE_KX = 0x0024 - DNS_TYPE_CERT = 0x0025 - DNS_TYPE_A6 = 0x0026 - DNS_TYPE_DNAME = 0x0027 - DNS_TYPE_SINK = 0x0028 - DNS_TYPE_OPT = 0x0029 - DNS_TYPE_DS = 0x002B - DNS_TYPE_RRSIG = 0x002E - DNS_TYPE_NSEC = 0x002F - DNS_TYPE_DNSKEY = 0x0030 - DNS_TYPE_DHCID = 0x0031 - DNS_TYPE_UINFO = 0x0064 - DNS_TYPE_UID = 0x0065 - DNS_TYPE_GID = 0x0066 - DNS_TYPE_UNSPEC = 0x0067 - DNS_TYPE_ADDRS = 0x00f8 - DNS_TYPE_TKEY = 0x00f9 - DNS_TYPE_TSIG = 0x00fa - DNS_TYPE_IXFR = 0x00fb - DNS_TYPE_AXFR = 0x00fc - DNS_TYPE_MAILB = 0x00fd - DNS_TYPE_MAILA = 0x00fe - DNS_TYPE_ALL = 0x00ff - DNS_TYPE_ANY = 0x00ff - DNS_TYPE_WINS = 0xff01 - DNS_TYPE_WINSR = 0xff02 - DNS_TYPE_NBSTAT = 0xff01 -) - -const ( - // flags inside DNSRecord.Dw - DnsSectionQuestion = 0x0000 - DnsSectionAnswer = 0x0001 - DnsSectionAuthority = 0x0002 - DnsSectionAdditional = 0x0003 -) - -const ( - // flags of WSALookupService - LUP_DEEP = 0x0001 - LUP_CONTAINERS = 0x0002 - LUP_NOCONTAINERS = 0x0004 - LUP_NEAREST = 0x0008 - LUP_RETURN_NAME = 0x0010 - LUP_RETURN_TYPE = 0x0020 - LUP_RETURN_VERSION = 0x0040 - LUP_RETURN_COMMENT = 0x0080 - LUP_RETURN_ADDR = 0x0100 - LUP_RETURN_BLOB = 0x0200 - LUP_RETURN_ALIASES = 0x0400 - LUP_RETURN_QUERY_STRING = 0x0800 - LUP_RETURN_ALL = 0x0FF0 - LUP_RES_SERVICE = 0x8000 - - LUP_FLUSHCACHE = 0x1000 - LUP_FLUSHPREVIOUS = 0x2000 - - LUP_NON_AUTHORITATIVE = 0x4000 - LUP_SECURE = 0x8000 - LUP_RETURN_PREFERRED_NAMES = 0x10000 - LUP_DNS_ONLY = 0x20000 - - LUP_ADDRCONFIG = 0x100000 - LUP_DUAL_ADDR = 0x200000 - LUP_FILESERVER = 0x400000 - LUP_DISABLE_IDN_ENCODING = 0x00800000 - LUP_API_ANSI = 0x01000000 - - LUP_RESOLUTION_HANDLE = 0x80000000 -) - -const ( - // values of WSAQUERYSET's namespace - NS_ALL = 0 - NS_DNS = 12 - NS_NLA = 15 - NS_BTH = 16 - NS_EMAIL = 37 - NS_PNRPNAME = 38 - NS_PNRPCLOUD = 39 -) - -type DNSSRVData struct { - Target *uint16 - Priority uint16 - Weight uint16 - Port uint16 - Pad uint16 -} - -type DNSPTRData struct { - Host *uint16 -} - -type DNSMXData struct { - NameExchange *uint16 - Preference uint16 - Pad uint16 -} - -type DNSTXTData struct { - StringCount uint16 - StringArray [1]*uint16 -} - -type DNSRecord struct { - Next *DNSRecord - Name *uint16 - Type uint16 - Length uint16 - Dw uint32 - Ttl uint32 - Reserved uint32 - Data [40]byte -} - -const ( - TF_DISCONNECT = 1 - TF_REUSE_SOCKET = 2 - TF_WRITE_BEHIND = 4 - TF_USE_DEFAULT_WORKER = 0 - TF_USE_SYSTEM_THREAD = 16 - TF_USE_KERNEL_APC = 32 -) - -type TransmitFileBuffers struct { - Head uintptr - HeadLength uint32 - Tail uintptr - TailLength uint32 -} - -const ( - IFF_UP = 1 - IFF_BROADCAST = 2 - IFF_LOOPBACK = 4 - IFF_POINTTOPOINT = 8 - IFF_MULTICAST = 16 -) - -const SIO_GET_INTERFACE_LIST = 0x4004747F - -// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. -// will be fixed to change variable type as suitable. - -type SockaddrGen [24]byte - -type InterfaceInfo struct { - Flags uint32 - Address SockaddrGen - BroadcastAddress SockaddrGen - Netmask SockaddrGen -} - -type IpAddressString struct { - String [16]byte -} - -type IpMaskString IpAddressString - -type IpAddrString struct { - Next *IpAddrString - IpAddress IpAddressString - IpMask IpMaskString - Context uint32 -} - -const MAX_ADAPTER_NAME_LENGTH = 256 -const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 -const MAX_ADAPTER_ADDRESS_LENGTH = 8 - -type IpAdapterInfo struct { - Next *IpAdapterInfo - ComboIndex uint32 - AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte - Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte - AddressLength uint32 - Address [MAX_ADAPTER_ADDRESS_LENGTH]byte - Index uint32 - Type uint32 - DhcpEnabled uint32 - CurrentIpAddress *IpAddrString - IpAddressList IpAddrString - GatewayList IpAddrString - DhcpServer IpAddrString - HaveWins bool - PrimaryWinsServer IpAddrString - SecondaryWinsServer IpAddrString - LeaseObtained int64 - LeaseExpires int64 -} - -const MAXLEN_PHYSADDR = 8 -const MAX_INTERFACE_NAME_LEN = 256 -const MAXLEN_IFDESCR = 256 - -type MibIfRow struct { - Name [MAX_INTERFACE_NAME_LEN]uint16 - Index uint32 - Type uint32 - Mtu uint32 - Speed uint32 - PhysAddrLen uint32 - PhysAddr [MAXLEN_PHYSADDR]byte - AdminStatus uint32 - OperStatus uint32 - LastChange uint32 - InOctets uint32 - InUcastPkts uint32 - InNUcastPkts uint32 - InDiscards uint32 - InErrors uint32 - InUnknownProtos uint32 - OutOctets uint32 - OutUcastPkts uint32 - OutNUcastPkts uint32 - OutDiscards uint32 - OutErrors uint32 - OutQLen uint32 - DescrLen uint32 - Descr [MAXLEN_IFDESCR]byte -} - -type CertInfo struct { - Version uint32 - SerialNumber CryptIntegerBlob - SignatureAlgorithm CryptAlgorithmIdentifier - Issuer CertNameBlob - NotBefore Filetime - NotAfter Filetime - Subject CertNameBlob - SubjectPublicKeyInfo CertPublicKeyInfo - IssuerUniqueId CryptBitBlob - SubjectUniqueId CryptBitBlob - CountExtensions uint32 - Extensions *CertExtension -} - -type CertExtension struct { - ObjId *byte - Critical int32 - Value CryptObjidBlob -} - -type CryptAlgorithmIdentifier struct { - ObjId *byte - Parameters CryptObjidBlob -} - -type CertPublicKeyInfo struct { - Algorithm CryptAlgorithmIdentifier - PublicKey CryptBitBlob -} - -type DataBlob struct { - Size uint32 - Data *byte -} -type CryptIntegerBlob DataBlob -type CryptUintBlob DataBlob -type CryptObjidBlob DataBlob -type CertNameBlob DataBlob -type CertRdnValueBlob DataBlob -type CertBlob DataBlob -type CrlBlob DataBlob -type CryptDataBlob DataBlob -type CryptHashBlob DataBlob -type CryptDigestBlob DataBlob -type CryptDerBlob DataBlob -type CryptAttrBlob DataBlob - -type CryptBitBlob struct { - Size uint32 - Data *byte - UnusedBits uint32 -} - -type CertContext struct { - EncodingType uint32 - EncodedCert *byte - Length uint32 - CertInfo *CertInfo - Store Handle -} - -type CertChainContext struct { - Size uint32 - TrustStatus CertTrustStatus - ChainCount uint32 - Chains **CertSimpleChain - LowerQualityChainCount uint32 - LowerQualityChains **CertChainContext - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertTrustListInfo struct { - // Not implemented -} - -type CertSimpleChain struct { - Size uint32 - TrustStatus CertTrustStatus - NumElements uint32 - Elements **CertChainElement - TrustListInfo *CertTrustListInfo - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertChainElement struct { - Size uint32 - CertContext *CertContext - TrustStatus CertTrustStatus - RevocationInfo *CertRevocationInfo - IssuanceUsage *CertEnhKeyUsage - ApplicationUsage *CertEnhKeyUsage - ExtendedErrorInfo *uint16 -} - -type CertRevocationCrlInfo struct { - // Not implemented -} - -type CertRevocationInfo struct { - Size uint32 - RevocationResult uint32 - RevocationOid *byte - OidSpecificInfo Pointer - HasFreshnessTime uint32 - FreshnessTime uint32 - CrlInfo *CertRevocationCrlInfo -} - -type CertTrustStatus struct { - ErrorStatus uint32 - InfoStatus uint32 -} - -type CertUsageMatch struct { - Type uint32 - Usage CertEnhKeyUsage -} - -type CertEnhKeyUsage struct { - Length uint32 - UsageIdentifiers **byte -} - -type CertChainPara struct { - Size uint32 - RequestedUsage CertUsageMatch - RequstedIssuancePolicy CertUsageMatch - URLRetrievalTimeout uint32 - CheckRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 - CacheResync *Filetime -} - -type CertChainPolicyPara struct { - Size uint32 - Flags uint32 - ExtraPolicyPara Pointer -} - -type SSLExtraCertChainPolicyPara struct { - Size uint32 - AuthType uint32 - Checks uint32 - ServerName *uint16 -} - -type CertChainPolicyStatus struct { - Size uint32 - Error uint32 - ChainIndex uint32 - ElementIndex uint32 - ExtraPolicyStatus Pointer -} - -type CertPolicyInfo struct { - Identifier *byte - CountQualifiers uint32 - Qualifiers *CertPolicyQualifierInfo -} - -type CertPoliciesInfo struct { - Count uint32 - PolicyInfos *CertPolicyInfo -} - -type CertPolicyQualifierInfo struct { - // Not implemented -} - -type CertStrongSignPara struct { - Size uint32 - InfoChoice uint32 - InfoOrSerializedInfoOrOID unsafe.Pointer -} - -type CryptProtectPromptStruct struct { - Size uint32 - PromptFlags uint32 - App HWND - Prompt *uint16 -} - -type CertChainFindByIssuerPara struct { - Size uint32 - UsageIdentifier *byte - KeySpec uint32 - AcquirePrivateKeyFlags uint32 - IssuerCount uint32 - Issuer Pointer - FindCallback Pointer - FindArg Pointer - IssuerChainIndex *uint32 - IssuerElementIndex *uint32 -} - -type WinTrustData struct { - Size uint32 - PolicyCallbackData uintptr - SIPClientData uintptr - UIChoice uint32 - RevocationChecks uint32 - UnionChoice uint32 - FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer - StateAction uint32 - StateData Handle - URLReference *uint16 - ProvFlags uint32 - UIContext uint32 - SignatureSettings *WinTrustSignatureSettings -} - -type WinTrustFileInfo struct { - Size uint32 - FilePath *uint16 - File Handle - KnownSubject *GUID -} - -type WinTrustSignatureSettings struct { - Size uint32 - Index uint32 - Flags uint32 - SecondarySigs uint32 - VerifiedSigIndex uint32 - CryptoPolicy *CertStrongSignPara -} - -const ( - // do not reorder - HKEY_CLASSES_ROOT = 0x80000000 + iota - HKEY_CURRENT_USER - HKEY_LOCAL_MACHINE - HKEY_USERS - HKEY_PERFORMANCE_DATA - HKEY_CURRENT_CONFIG - HKEY_DYN_DATA - - KEY_QUERY_VALUE = 1 - KEY_SET_VALUE = 2 - KEY_CREATE_SUB_KEY = 4 - KEY_ENUMERATE_SUB_KEYS = 8 - KEY_NOTIFY = 16 - KEY_CREATE_LINK = 32 - KEY_WRITE = 0x20006 - KEY_EXECUTE = 0x20019 - KEY_READ = 0x20019 - KEY_WOW64_64KEY = 0x0100 - KEY_WOW64_32KEY = 0x0200 - KEY_ALL_ACCESS = 0xf003f -) - -const ( - // do not reorder - REG_NONE = iota - REG_SZ - REG_EXPAND_SZ - REG_BINARY - REG_DWORD_LITTLE_ENDIAN - REG_DWORD_BIG_ENDIAN - REG_LINK - REG_MULTI_SZ - REG_RESOURCE_LIST - REG_FULL_RESOURCE_DESCRIPTOR - REG_RESOURCE_REQUIREMENTS_LIST - REG_QWORD_LITTLE_ENDIAN - REG_DWORD = REG_DWORD_LITTLE_ENDIAN - REG_QWORD = REG_QWORD_LITTLE_ENDIAN -) - -const ( - EVENT_MODIFY_STATE = 0x0002 - EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 - - MUTANT_QUERY_STATE = 0x0001 - MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE - - SEMAPHORE_MODIFY_STATE = 0x0002 - SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 - - TIMER_QUERY_STATE = 0x0001 - TIMER_MODIFY_STATE = 0x0002 - TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE - - MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE - MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS - - CREATE_EVENT_MANUAL_RESET = 0x1 - CREATE_EVENT_INITIAL_SET = 0x2 - CREATE_MUTEX_INITIAL_OWNER = 0x1 -) - -type AddrinfoW struct { - Flags int32 - Family int32 - Socktype int32 - Protocol int32 - Addrlen uintptr - Canonname *uint16 - Addr uintptr - Next *AddrinfoW -} - -const ( - AI_PASSIVE = 1 - AI_CANONNAME = 2 - AI_NUMERICHOST = 4 -) - -type GUID struct { - Data1 uint32 - Data2 uint16 - Data3 uint16 - Data4 [8]byte -} - -var WSAID_CONNECTEX = GUID{ - 0x25a207b9, - 0xddf3, - 0x4660, - [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, -} - -var WSAID_WSASENDMSG = GUID{ - 0xa441e712, - 0x754f, - 0x43ca, - [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, -} - -var WSAID_WSARECVMSG = GUID{ - 0xf689d7c8, - 0x6f1f, - 0x436b, - [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, -} - -const ( - FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 - FILE_SKIP_SET_EVENT_ON_HANDLE = 2 -) - -const ( - WSAPROTOCOL_LEN = 255 - MAX_PROTOCOL_CHAIN = 7 - BASE_PROTOCOL = 1 - LAYERED_PROTOCOL = 0 - - XP1_CONNECTIONLESS = 0x00000001 - XP1_GUARANTEED_DELIVERY = 0x00000002 - XP1_GUARANTEED_ORDER = 0x00000004 - XP1_MESSAGE_ORIENTED = 0x00000008 - XP1_PSEUDO_STREAM = 0x00000010 - XP1_GRACEFUL_CLOSE = 0x00000020 - XP1_EXPEDITED_DATA = 0x00000040 - XP1_CONNECT_DATA = 0x00000080 - XP1_DISCONNECT_DATA = 0x00000100 - XP1_SUPPORT_BROADCAST = 0x00000200 - XP1_SUPPORT_MULTIPOINT = 0x00000400 - XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 - XP1_MULTIPOINT_DATA_PLANE = 0x00001000 - XP1_QOS_SUPPORTED = 0x00002000 - XP1_UNI_SEND = 0x00008000 - XP1_UNI_RECV = 0x00010000 - XP1_IFS_HANDLES = 0x00020000 - XP1_PARTIAL_MESSAGE = 0x00040000 - XP1_SAN_SUPPORT_SDP = 0x00080000 - - PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 - PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 - PFL_HIDDEN = 0x00000004 - PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 - PFL_NETWORKDIRECT_PROVIDER = 0x00000010 -) - -type WSAProtocolInfo struct { - ServiceFlags1 uint32 - ServiceFlags2 uint32 - ServiceFlags3 uint32 - ServiceFlags4 uint32 - ProviderFlags uint32 - ProviderId GUID - CatalogEntryId uint32 - ProtocolChain WSAProtocolChain - Version int32 - AddressFamily int32 - MaxSockAddr int32 - MinSockAddr int32 - SocketType int32 - Protocol int32 - ProtocolMaxOffset int32 - NetworkByteOrder int32 - SecurityScheme int32 - MessageSize uint32 - ProviderReserved uint32 - ProtocolName [WSAPROTOCOL_LEN + 1]uint16 -} - -type WSAProtocolChain struct { - ChainLen int32 - ChainEntries [MAX_PROTOCOL_CHAIN]uint32 -} - -type TCPKeepalive struct { - OnOff uint32 - Time uint32 - Interval uint32 -} - -type symbolicLinkReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - Flags uint32 - PathBuffer [1]uint16 -} - -type mountPointReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - PathBuffer [1]uint16 -} - -type reparseDataBuffer struct { - ReparseTag uint32 - ReparseDataLength uint16 - Reserved uint16 - - // GenericReparseBuffer - reparseBuffer byte -} - -const ( - FSCTL_CREATE_OR_GET_OBJECT_ID = 0x0900C0 - FSCTL_DELETE_OBJECT_ID = 0x0900A0 - FSCTL_DELETE_REPARSE_POINT = 0x0900AC - FSCTL_DUPLICATE_EXTENTS_TO_FILE = 0x098344 - FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = 0x0983E8 - FSCTL_FILESYSTEM_GET_STATISTICS = 0x090060 - FSCTL_FILE_LEVEL_TRIM = 0x098208 - FSCTL_FIND_FILES_BY_SID = 0x09008F - FSCTL_GET_COMPRESSION = 0x09003C - FSCTL_GET_INTEGRITY_INFORMATION = 0x09027C - FSCTL_GET_NTFS_VOLUME_DATA = 0x090064 - FSCTL_GET_REFS_VOLUME_DATA = 0x0902D8 - FSCTL_GET_OBJECT_ID = 0x09009C - FSCTL_GET_REPARSE_POINT = 0x0900A8 - FSCTL_GET_RETRIEVAL_POINTER_COUNT = 0x09042B - FSCTL_GET_RETRIEVAL_POINTERS = 0x090073 - FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3 - FSCTL_IS_PATHNAME_VALID = 0x09002C - FSCTL_LMR_SET_LINK_TRACKING_INFORMATION = 0x1400EC - FSCTL_MARK_HANDLE = 0x0900FC - FSCTL_OFFLOAD_READ = 0x094264 - FSCTL_OFFLOAD_WRITE = 0x098268 - FSCTL_PIPE_PEEK = 0x11400C - FSCTL_PIPE_TRANSCEIVE = 0x11C017 - FSCTL_PIPE_WAIT = 0x110018 - FSCTL_QUERY_ALLOCATED_RANGES = 0x0940CF - FSCTL_QUERY_FAT_BPB = 0x090058 - FSCTL_QUERY_FILE_REGIONS = 0x090284 - FSCTL_QUERY_ON_DISK_VOLUME_INFO = 0x09013C - FSCTL_QUERY_SPARING_INFO = 0x090138 - FSCTL_READ_FILE_USN_DATA = 0x0900EB - FSCTL_RECALL_FILE = 0x090117 - FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = 0x090440 - FSCTL_SET_COMPRESSION = 0x09C040 - FSCTL_SET_DEFECT_MANAGEMENT = 0x098134 - FSCTL_SET_ENCRYPTION = 0x0900D7 - FSCTL_SET_INTEGRITY_INFORMATION = 0x09C280 - FSCTL_SET_INTEGRITY_INFORMATION_EX = 0x090380 - FSCTL_SET_OBJECT_ID = 0x090098 - FSCTL_SET_OBJECT_ID_EXTENDED = 0x0900BC - FSCTL_SET_REPARSE_POINT = 0x0900A4 - FSCTL_SET_SPARSE = 0x0900C4 - FSCTL_SET_ZERO_DATA = 0x0980C8 - FSCTL_SET_ZERO_ON_DEALLOCATION = 0x090194 - FSCTL_SIS_COPYFILE = 0x090100 - FSCTL_WRITE_USN_CLOSE_RECORD = 0x0900EF - - MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 - IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 - IO_REPARSE_TAG_SYMLINK = 0xA000000C - SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 -) - -const ( - ComputerNameNetBIOS = 0 - ComputerNameDnsHostname = 1 - ComputerNameDnsDomain = 2 - ComputerNameDnsFullyQualified = 3 - ComputerNamePhysicalNetBIOS = 4 - ComputerNamePhysicalDnsHostname = 5 - ComputerNamePhysicalDnsDomain = 6 - ComputerNamePhysicalDnsFullyQualified = 7 - ComputerNameMax = 8 -) - -// For MessageBox() -const ( - MB_OK = 0x00000000 - MB_OKCANCEL = 0x00000001 - MB_ABORTRETRYIGNORE = 0x00000002 - MB_YESNOCANCEL = 0x00000003 - MB_YESNO = 0x00000004 - MB_RETRYCANCEL = 0x00000005 - MB_CANCELTRYCONTINUE = 0x00000006 - MB_ICONHAND = 0x00000010 - MB_ICONQUESTION = 0x00000020 - MB_ICONEXCLAMATION = 0x00000030 - MB_ICONASTERISK = 0x00000040 - MB_USERICON = 0x00000080 - MB_ICONWARNING = MB_ICONEXCLAMATION - MB_ICONERROR = MB_ICONHAND - MB_ICONINFORMATION = MB_ICONASTERISK - MB_ICONSTOP = MB_ICONHAND - MB_DEFBUTTON1 = 0x00000000 - MB_DEFBUTTON2 = 0x00000100 - MB_DEFBUTTON3 = 0x00000200 - MB_DEFBUTTON4 = 0x00000300 - MB_APPLMODAL = 0x00000000 - MB_SYSTEMMODAL = 0x00001000 - MB_TASKMODAL = 0x00002000 - MB_HELP = 0x00004000 - MB_NOFOCUS = 0x00008000 - MB_SETFOREGROUND = 0x00010000 - MB_DEFAULT_DESKTOP_ONLY = 0x00020000 - MB_TOPMOST = 0x00040000 - MB_RIGHT = 0x00080000 - MB_RTLREADING = 0x00100000 - MB_SERVICE_NOTIFICATION = 0x00200000 -) - -const ( - MOVEFILE_REPLACE_EXISTING = 0x1 - MOVEFILE_COPY_ALLOWED = 0x2 - MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 - MOVEFILE_WRITE_THROUGH = 0x8 - MOVEFILE_CREATE_HARDLINK = 0x10 - MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 -) - -const GAA_FLAG_INCLUDE_PREFIX = 0x00000010 - -const ( - IF_TYPE_OTHER = 1 - IF_TYPE_ETHERNET_CSMACD = 6 - IF_TYPE_ISO88025_TOKENRING = 9 - IF_TYPE_PPP = 23 - IF_TYPE_SOFTWARE_LOOPBACK = 24 - IF_TYPE_ATM = 37 - IF_TYPE_IEEE80211 = 71 - IF_TYPE_TUNNEL = 131 - IF_TYPE_IEEE1394 = 144 -) - -type SocketAddress struct { - Sockaddr *syscall.RawSockaddrAny - SockaddrLength int32 -} - -// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither. -func (addr *SocketAddress) IP() net.IP { - if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET { - return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:] - } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 { - return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:] - } - return nil -} - -type IpAdapterUnicastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterUnicastAddress - Address SocketAddress - PrefixOrigin int32 - SuffixOrigin int32 - DadState int32 - ValidLifetime uint32 - PreferredLifetime uint32 - LeaseLifetime uint32 - OnLinkPrefixLength uint8 -} - -type IpAdapterAnycastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterAnycastAddress - Address SocketAddress -} - -type IpAdapterMulticastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterMulticastAddress - Address SocketAddress -} - -type IpAdapterDnsServerAdapter struct { - Length uint32 - Reserved uint32 - Next *IpAdapterDnsServerAdapter - Address SocketAddress -} - -type IpAdapterPrefix struct { - Length uint32 - Flags uint32 - Next *IpAdapterPrefix - Address SocketAddress - PrefixLength uint32 -} - -type IpAdapterAddresses struct { - Length uint32 - IfIndex uint32 - Next *IpAdapterAddresses - AdapterName *byte - FirstUnicastAddress *IpAdapterUnicastAddress - FirstAnycastAddress *IpAdapterAnycastAddress - FirstMulticastAddress *IpAdapterMulticastAddress - FirstDnsServerAddress *IpAdapterDnsServerAdapter - DnsSuffix *uint16 - Description *uint16 - FriendlyName *uint16 - PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte - PhysicalAddressLength uint32 - Flags uint32 - Mtu uint32 - IfType uint32 - OperStatus uint32 - Ipv6IfIndex uint32 - ZoneIndices [16]uint32 - FirstPrefix *IpAdapterPrefix - TransmitLinkSpeed uint64 - ReceiveLinkSpeed uint64 - FirstWinsServerAddress *IpAdapterWinsServerAddress - FirstGatewayAddress *IpAdapterGatewayAddress - Ipv4Metric uint32 - Ipv6Metric uint32 - Luid uint64 - Dhcpv4Server SocketAddress - CompartmentId uint32 - NetworkGuid GUID - ConnectionType uint32 - TunnelType uint32 - Dhcpv6Server SocketAddress - Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte - Dhcpv6ClientDuidLength uint32 - Dhcpv6Iaid uint32 - FirstDnsSuffix *IpAdapterDNSSuffix -} - -type IpAdapterWinsServerAddress struct { - Length uint32 - Reserved uint32 - Next *IpAdapterWinsServerAddress - Address SocketAddress -} - -type IpAdapterGatewayAddress struct { - Length uint32 - Reserved uint32 - Next *IpAdapterGatewayAddress - Address SocketAddress -} - -type IpAdapterDNSSuffix struct { - Next *IpAdapterDNSSuffix - String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 -} - -const ( - IfOperStatusUp = 1 - IfOperStatusDown = 2 - IfOperStatusTesting = 3 - IfOperStatusUnknown = 4 - IfOperStatusDormant = 5 - IfOperStatusNotPresent = 6 - IfOperStatusLowerLayerDown = 7 -) - -// Console related constants used for the mode parameter to SetConsoleMode. See -// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. - -const ( - ENABLE_PROCESSED_INPUT = 0x1 - ENABLE_LINE_INPUT = 0x2 - ENABLE_ECHO_INPUT = 0x4 - ENABLE_WINDOW_INPUT = 0x8 - ENABLE_MOUSE_INPUT = 0x10 - ENABLE_INSERT_MODE = 0x20 - ENABLE_QUICK_EDIT_MODE = 0x40 - ENABLE_EXTENDED_FLAGS = 0x80 - ENABLE_AUTO_POSITION = 0x100 - ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 - - ENABLE_PROCESSED_OUTPUT = 0x1 - ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 - ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 - DISABLE_NEWLINE_AUTO_RETURN = 0x8 - ENABLE_LVB_GRID_WORLDWIDE = 0x10 -) - -type Coord struct { - X int16 - Y int16 -} - -type SmallRect struct { - Left int16 - Top int16 - Right int16 - Bottom int16 -} - -// Used with GetConsoleScreenBuffer to retrieve information about a console -// screen buffer. See -// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str -// for details. - -type ConsoleScreenBufferInfo struct { - Size Coord - CursorPosition Coord - Attributes uint16 - Window SmallRect - MaximumWindowSize Coord -} - -const UNIX_PATH_MAX = 108 // defined in afunix.h - -const ( - // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags - JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 - JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 - JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 - JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 - JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 - JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 - JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 - JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 - JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 - JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 - JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 - JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 - JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 - JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000 - JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 -) - -type IO_COUNTERS struct { - ReadOperationCount uint64 - WriteOperationCount uint64 - OtherOperationCount uint64 - ReadTransferCount uint64 - WriteTransferCount uint64 - OtherTransferCount uint64 -} - -type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct { - BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION - IoInfo IO_COUNTERS - ProcessMemoryLimit uintptr - JobMemoryLimit uintptr - PeakProcessMemoryUsed uintptr - PeakJobMemoryUsed uintptr -} - -const ( - // UIRestrictionsClass - JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 - JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 - JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 - JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 - JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 - JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 - JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 - JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 -) - -type JOBOBJECT_BASIC_UI_RESTRICTIONS struct { - UIRestrictionsClass uint32 -} - -const ( - // JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject - JobObjectAssociateCompletionPortInformation = 7 - JobObjectBasicAccountingInformation = 1 - JobObjectBasicAndIoAccountingInformation = 8 - JobObjectBasicLimitInformation = 2 - JobObjectBasicProcessIdList = 3 - JobObjectBasicUIRestrictions = 4 - JobObjectCpuRateControlInformation = 15 - JobObjectEndOfJobTimeInformation = 6 - JobObjectExtendedLimitInformation = 9 - JobObjectGroupInformation = 11 - JobObjectGroupInformationEx = 14 - JobObjectLimitViolationInformation = 13 - JobObjectLimitViolationInformation2 = 34 - JobObjectNetRateControlInformation = 32 - JobObjectNotificationLimitInformation = 12 - JobObjectNotificationLimitInformation2 = 33 - JobObjectSecurityLimitInformation = 5 -) - -const ( - KF_FLAG_DEFAULT = 0x00000000 - KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000 - KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000 - KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000 - KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000 - KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000 - KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000 - KF_FLAG_CREATE = 0x00008000 - KF_FLAG_DONT_VERIFY = 0x00004000 - KF_FLAG_DONT_UNEXPAND = 0x00002000 - KF_FLAG_NO_ALIAS = 0x00001000 - KF_FLAG_INIT = 0x00000800 - KF_FLAG_DEFAULT_PATH = 0x00000400 - KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200 - KF_FLAG_SIMPLE_IDLIST = 0x00000100 - KF_FLAG_ALIAS_ONLY = 0x80000000 -) - -type OsVersionInfoEx struct { - osVersionInfoSize uint32 - MajorVersion uint32 - MinorVersion uint32 - BuildNumber uint32 - PlatformId uint32 - CsdVersion [128]uint16 - ServicePackMajor uint16 - ServicePackMinor uint16 - SuiteMask uint16 - ProductType byte - _ byte -} - -const ( - EWX_LOGOFF = 0x00000000 - EWX_SHUTDOWN = 0x00000001 - EWX_REBOOT = 0x00000002 - EWX_FORCE = 0x00000004 - EWX_POWEROFF = 0x00000008 - EWX_FORCEIFHUNG = 0x00000010 - EWX_QUICKRESOLVE = 0x00000020 - EWX_RESTARTAPPS = 0x00000040 - EWX_HYBRID_SHUTDOWN = 0x00400000 - EWX_BOOTOPTIONS = 0x01000000 - - SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 - SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 - SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 - SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 - SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 - SHTDN_REASON_FLAG_PLANNED = 0x80000000 - SHTDN_REASON_MAJOR_OTHER = 0x00000000 - SHTDN_REASON_MAJOR_NONE = 0x00000000 - SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 - SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 - SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 - SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 - SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 - SHTDN_REASON_MAJOR_POWER = 0x00060000 - SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000 - SHTDN_REASON_MINOR_OTHER = 0x00000000 - SHTDN_REASON_MINOR_NONE = 0x000000ff - SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 - SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 - SHTDN_REASON_MINOR_UPGRADE = 0x00000003 - SHTDN_REASON_MINOR_RECONFIG = 0x00000004 - SHTDN_REASON_MINOR_HUNG = 0x00000005 - SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 - SHTDN_REASON_MINOR_DISK = 0x00000007 - SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 - SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 - SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a - SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b - SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c - SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d - SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e - SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F - SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010 - SHTDN_REASON_MINOR_HOTFIX = 0x00000011 - SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012 - SHTDN_REASON_MINOR_SECURITY = 0x00000013 - SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014 - SHTDN_REASON_MINOR_WMI = 0x00000015 - SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016 - SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017 - SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018 - SHTDN_REASON_MINOR_MMC = 0x00000019 - SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a - SHTDN_REASON_MINOR_TERMSRV = 0x00000020 - SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021 - SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022 - SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE - SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED - SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff - - SHUTDOWN_NORETRY = 0x1 -) - -// Flags used for GetModuleHandleEx -const ( - GET_MODULE_HANDLE_EX_FLAG_PIN = 1 - GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2 - GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4 -) - -// MUI function flag values -const ( - MUI_LANGUAGE_ID = 0x4 - MUI_LANGUAGE_NAME = 0x8 - MUI_MERGE_SYSTEM_FALLBACK = 0x10 - MUI_MERGE_USER_FALLBACK = 0x20 - MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK - MUI_THREAD_LANGUAGES = 0x40 - MUI_CONSOLE_FILTER = 0x100 - MUI_COMPLEX_SCRIPT_FILTER = 0x200 - MUI_RESET_FILTERS = 0x001 - MUI_USER_PREFERRED_UI_LANGUAGES = 0x10 - MUI_USE_INSTALLED_LANGUAGES = 0x20 - MUI_USE_SEARCH_ALL_LANGUAGES = 0x40 - MUI_LANG_NEUTRAL_PE_FILE = 0x100 - MUI_NON_LANG_NEUTRAL_FILE = 0x200 - MUI_MACHINE_LANGUAGE_SETTINGS = 0x400 - MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001 - MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002 - MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004 - MUI_QUERY_TYPE = 0x001 - MUI_QUERY_CHECKSUM = 0x002 - MUI_QUERY_LANGUAGE_NAME = 0x004 - MUI_QUERY_RESOURCE_TYPES = 0x008 - MUI_FILEINFO_VERSION = 0x001 - - MUI_FULL_LANGUAGE = 0x01 - MUI_PARTIAL_LANGUAGE = 0x02 - MUI_LIP_LANGUAGE = 0x04 - MUI_LANGUAGE_INSTALLED = 0x20 - MUI_LANGUAGE_LICENSED = 0x40 -) - -// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx -const ( - FileBasicInfo = 0 - FileStandardInfo = 1 - FileNameInfo = 2 - FileRenameInfo = 3 - FileDispositionInfo = 4 - FileAllocationInfo = 5 - FileEndOfFileInfo = 6 - FileStreamInfo = 7 - FileCompressionInfo = 8 - FileAttributeTagInfo = 9 - FileIdBothDirectoryInfo = 10 - FileIdBothDirectoryRestartInfo = 11 - FileIoPriorityHintInfo = 12 - FileRemoteProtocolInfo = 13 - FileFullDirectoryInfo = 14 - FileFullDirectoryRestartInfo = 15 - FileStorageInfo = 16 - FileAlignmentInfo = 17 - FileIdInfo = 18 - FileIdExtdDirectoryInfo = 19 - FileIdExtdDirectoryRestartInfo = 20 - FileDispositionInfoEx = 21 - FileRenameInfoEx = 22 - FileCaseSensitiveInfo = 23 - FileNormalizedNameInfo = 24 -) - -// LoadLibrary flags for determining from where to search for a DLL -const ( - DONT_RESOLVE_DLL_REFERENCES = 0x1 - LOAD_LIBRARY_AS_DATAFILE = 0x2 - LOAD_WITH_ALTERED_SEARCH_PATH = 0x8 - LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10 - LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20 - LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40 - LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80 - LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100 - LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200 - LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400 - LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800 - LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000 - LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000 - LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000 - LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000 -) - -// RegNotifyChangeKeyValue notifyFilter flags. -const ( - // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted. - REG_NOTIFY_CHANGE_NAME = 0x00000001 - - // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information. - REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 - - // REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value. - REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 - - // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key. - REG_NOTIFY_CHANGE_SECURITY = 0x00000008 - - // REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later. - REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000 -) - -type CommTimeouts struct { - ReadIntervalTimeout uint32 - ReadTotalTimeoutMultiplier uint32 - ReadTotalTimeoutConstant uint32 - WriteTotalTimeoutMultiplier uint32 - WriteTotalTimeoutConstant uint32 -} - -// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. -type NTUnicodeString struct { - Length uint16 - MaximumLength uint16 - Buffer *uint16 -} - -// NTString is an ANSI string for NT native APIs, corresponding to STRING. -type NTString struct { - Length uint16 - MaximumLength uint16 - Buffer *byte -} - -type LIST_ENTRY struct { - Flink *LIST_ENTRY - Blink *LIST_ENTRY -} - -type RUNTIME_FUNCTION struct { - BeginAddress uint32 - EndAddress uint32 - UnwindData uint32 -} - -type LDR_DATA_TABLE_ENTRY struct { - reserved1 [2]uintptr - InMemoryOrderLinks LIST_ENTRY - reserved2 [2]uintptr - DllBase uintptr - reserved3 [2]uintptr - FullDllName NTUnicodeString - reserved4 [8]byte - reserved5 [3]uintptr - reserved6 uintptr - TimeDateStamp uint32 -} - -type PEB_LDR_DATA struct { - reserved1 [8]byte - reserved2 [3]uintptr - InMemoryOrderModuleList LIST_ENTRY -} - -type CURDIR struct { - DosPath NTUnicodeString - Handle Handle -} - -type RTL_DRIVE_LETTER_CURDIR struct { - Flags uint16 - Length uint16 - TimeStamp uint32 - DosPath NTString -} - -type RTL_USER_PROCESS_PARAMETERS struct { - MaximumLength, Length uint32 - - Flags, DebugFlags uint32 - - ConsoleHandle Handle - ConsoleFlags uint32 - StandardInput, StandardOutput, StandardError Handle - - CurrentDirectory CURDIR - DllPath NTUnicodeString - ImagePathName NTUnicodeString - CommandLine NTUnicodeString - Environment unsafe.Pointer - - StartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32 - - WindowFlags, ShowWindowFlags uint32 - WindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString - CurrentDirectories [32]RTL_DRIVE_LETTER_CURDIR - - EnvironmentSize, EnvironmentVersion uintptr - - PackageDependencyData unsafe.Pointer - ProcessGroupId uint32 - LoaderThreads uint32 - - RedirectionDllName NTUnicodeString - HeapPartitionName NTUnicodeString - DefaultThreadpoolCpuSetMasks uintptr - DefaultThreadpoolCpuSetMaskCount uint32 -} - -type PEB struct { - reserved1 [2]byte - BeingDebugged byte - BitField byte - reserved3 uintptr - ImageBaseAddress uintptr - Ldr *PEB_LDR_DATA - ProcessParameters *RTL_USER_PROCESS_PARAMETERS - reserved4 [3]uintptr - AtlThunkSListPtr uintptr - reserved5 uintptr - reserved6 uint32 - reserved7 uintptr - reserved8 uint32 - AtlThunkSListPtr32 uint32 - reserved9 [45]uintptr - reserved10 [96]byte - PostProcessInitRoutine uintptr - reserved11 [128]byte - reserved12 [1]uintptr - SessionId uint32 -} - -type OBJECT_ATTRIBUTES struct { - Length uint32 - RootDirectory Handle - ObjectName *NTUnicodeString - Attributes uint32 - SecurityDescriptor *SECURITY_DESCRIPTOR - SecurityQoS *SECURITY_QUALITY_OF_SERVICE -} - -// Values for the Attributes member of OBJECT_ATTRIBUTES. -const ( - OBJ_INHERIT = 0x00000002 - OBJ_PERMANENT = 0x00000010 - OBJ_EXCLUSIVE = 0x00000020 - OBJ_CASE_INSENSITIVE = 0x00000040 - OBJ_OPENIF = 0x00000080 - OBJ_OPENLINK = 0x00000100 - OBJ_KERNEL_HANDLE = 0x00000200 - OBJ_FORCE_ACCESS_CHECK = 0x00000400 - OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800 - OBJ_DONT_REPARSE = 0x00001000 - OBJ_VALID_ATTRIBUTES = 0x00001FF2 -) - -type IO_STATUS_BLOCK struct { - Status NTStatus - Information uintptr -} - -type RTLP_CURDIR_REF struct { - RefCount int32 - Handle Handle -} - -type RTL_RELATIVE_NAME struct { - RelativeName NTUnicodeString - ContainingDirectory Handle - CurDirRef *RTLP_CURDIR_REF -} - -const ( - // CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile. - FILE_SUPERSEDE = 0x00000000 - FILE_OPEN = 0x00000001 - FILE_CREATE = 0x00000002 - FILE_OPEN_IF = 0x00000003 - FILE_OVERWRITE = 0x00000004 - FILE_OVERWRITE_IF = 0x00000005 - FILE_MAXIMUM_DISPOSITION = 0x00000005 - - // CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile. - FILE_DIRECTORY_FILE = 0x00000001 - FILE_WRITE_THROUGH = 0x00000002 - FILE_SEQUENTIAL_ONLY = 0x00000004 - FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008 - FILE_SYNCHRONOUS_IO_ALERT = 0x00000010 - FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020 - FILE_NON_DIRECTORY_FILE = 0x00000040 - FILE_CREATE_TREE_CONNECTION = 0x00000080 - FILE_COMPLETE_IF_OPLOCKED = 0x00000100 - FILE_NO_EA_KNOWLEDGE = 0x00000200 - FILE_OPEN_REMOTE_INSTANCE = 0x00000400 - FILE_RANDOM_ACCESS = 0x00000800 - FILE_DELETE_ON_CLOSE = 0x00001000 - FILE_OPEN_BY_FILE_ID = 0x00002000 - FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000 - FILE_NO_COMPRESSION = 0x00008000 - FILE_OPEN_REQUIRING_OPLOCK = 0x00010000 - FILE_DISALLOW_EXCLUSIVE = 0x00020000 - FILE_RESERVE_OPFILTER = 0x00100000 - FILE_OPEN_REPARSE_POINT = 0x00200000 - FILE_OPEN_NO_RECALL = 0x00400000 - FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000 - - // Parameter constants for NtCreateNamedPipeFile. - - FILE_PIPE_BYTE_STREAM_TYPE = 0x00000000 - FILE_PIPE_MESSAGE_TYPE = 0x00000001 - - FILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000 - FILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002 - - FILE_PIPE_TYPE_VALID_MASK = 0x00000003 - - FILE_PIPE_BYTE_STREAM_MODE = 0x00000000 - FILE_PIPE_MESSAGE_MODE = 0x00000001 - - FILE_PIPE_QUEUE_OPERATION = 0x00000000 - FILE_PIPE_COMPLETE_OPERATION = 0x00000001 - - FILE_PIPE_INBOUND = 0x00000000 - FILE_PIPE_OUTBOUND = 0x00000001 - FILE_PIPE_FULL_DUPLEX = 0x00000002 - - FILE_PIPE_DISCONNECTED_STATE = 0x00000001 - FILE_PIPE_LISTENING_STATE = 0x00000002 - FILE_PIPE_CONNECTED_STATE = 0x00000003 - FILE_PIPE_CLOSING_STATE = 0x00000004 - - FILE_PIPE_CLIENT_END = 0x00000000 - FILE_PIPE_SERVER_END = 0x00000001 -) - -const ( - // FileInformationClass for NtSetInformationFile - FileBasicInformation = 4 - FileRenameInformation = 10 - FileDispositionInformation = 13 - FilePositionInformation = 14 - FileEndOfFileInformation = 20 - FileValidDataLengthInformation = 39 - FileShortNameInformation = 40 - FileIoPriorityHintInformation = 43 - FileReplaceCompletionInformation = 61 - FileDispositionInformationEx = 64 - FileCaseSensitiveInformation = 71 - FileLinkInformation = 72 - FileCaseSensitiveInformationForceAccessCheck = 75 - FileKnownFolderInformation = 76 - - // Flags for FILE_RENAME_INFORMATION - FILE_RENAME_REPLACE_IF_EXISTS = 0x00000001 - FILE_RENAME_POSIX_SEMANTICS = 0x00000002 - FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE = 0x00000004 - FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 - FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 - FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 - FILE_RENAME_PRESERVE_AVAILABLE_SPACE = 0x00000030 - FILE_RENAME_IGNORE_READONLY_ATTRIBUTE = 0x00000040 - FILE_RENAME_FORCE_RESIZE_TARGET_SR = 0x00000080 - FILE_RENAME_FORCE_RESIZE_SOURCE_SR = 0x00000100 - FILE_RENAME_FORCE_RESIZE_SR = 0x00000180 - - // Flags for FILE_DISPOSITION_INFORMATION_EX - FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000 - FILE_DISPOSITION_DELETE = 0x00000001 - FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002 - FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004 - FILE_DISPOSITION_ON_CLOSE = 0x00000008 - FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010 - - // Flags for FILE_CASE_SENSITIVE_INFORMATION - FILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001 - - // Flags for FILE_LINK_INFORMATION - FILE_LINK_REPLACE_IF_EXISTS = 0x00000001 - FILE_LINK_POSIX_SEMANTICS = 0x00000002 - FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 - FILE_LINK_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 - FILE_LINK_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 - FILE_LINK_PRESERVE_AVAILABLE_SPACE = 0x00000030 - FILE_LINK_IGNORE_READONLY_ATTRIBUTE = 0x00000040 - FILE_LINK_FORCE_RESIZE_TARGET_SR = 0x00000080 - FILE_LINK_FORCE_RESIZE_SOURCE_SR = 0x00000100 - FILE_LINK_FORCE_RESIZE_SR = 0x00000180 -) - -// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess. -const ( - ProcessBasicInformation = iota - ProcessQuotaLimits - ProcessIoCounters - ProcessVmCounters - ProcessTimes - ProcessBasePriority - ProcessRaisePriority - ProcessDebugPort - ProcessExceptionPort - ProcessAccessToken - ProcessLdtInformation - ProcessLdtSize - ProcessDefaultHardErrorMode - ProcessIoPortHandlers - ProcessPooledUsageAndLimits - ProcessWorkingSetWatch - ProcessUserModeIOPL - ProcessEnableAlignmentFaultFixup - ProcessPriorityClass - ProcessWx86Information - ProcessHandleCount - ProcessAffinityMask - ProcessPriorityBoost - ProcessDeviceMap - ProcessSessionInformation - ProcessForegroundInformation - ProcessWow64Information - ProcessImageFileName - ProcessLUIDDeviceMapsEnabled - ProcessBreakOnTermination - ProcessDebugObjectHandle - ProcessDebugFlags - ProcessHandleTracing - ProcessIoPriority - ProcessExecuteFlags - ProcessTlsInformation - ProcessCookie - ProcessImageInformation - ProcessCycleTime - ProcessPagePriority - ProcessInstrumentationCallback - ProcessThreadStackAllocation - ProcessWorkingSetWatchEx - ProcessImageFileNameWin32 - ProcessImageFileMapping - ProcessAffinityUpdateMode - ProcessMemoryAllocationMode - ProcessGroupInformation - ProcessTokenVirtualizationEnabled - ProcessConsoleHostProcess - ProcessWindowInformation - ProcessHandleInformation - ProcessMitigationPolicy - ProcessDynamicFunctionTableInformation - ProcessHandleCheckingMode - ProcessKeepAliveCount - ProcessRevokeFileHandles - ProcessWorkingSetControl - ProcessHandleTable - ProcessCheckStackExtentsMode - ProcessCommandLineInformation - ProcessProtectionInformation - ProcessMemoryExhaustion - ProcessFaultInformation - ProcessTelemetryIdInformation - ProcessCommitReleaseInformation - ProcessDefaultCpuSetsInformation - ProcessAllowedCpuSetsInformation - ProcessSubsystemProcess - ProcessJobMemoryInformation - ProcessInPrivate - ProcessRaiseUMExceptionOnInvalidHandleClose - ProcessIumChallengeResponse - ProcessChildProcessInformation - ProcessHighGraphicsPriorityInformation - ProcessSubsystemInformation - ProcessEnergyValues - ProcessActivityThrottleState - ProcessActivityThrottlePolicy - ProcessWin32kSyscallFilterInformation - ProcessDisableSystemAllowedCpuSets - ProcessWakeInformation - ProcessEnergyTrackingState - ProcessManageWritesToExecutableMemory - ProcessCaptureTrustletLiveDump - ProcessTelemetryCoverage - ProcessEnclaveInformation - ProcessEnableReadWriteVmLogging - ProcessUptimeInformation - ProcessImageSection - ProcessDebugAuthInformation - ProcessSystemResourceManagement - ProcessSequenceNumber - ProcessLoaderDetour - ProcessSecurityDomainInformation - ProcessCombineSecurityDomainsInformation - ProcessEnableLogging - ProcessLeapSecondInformation - ProcessFiberShadowStackAllocation - ProcessFreeFiberShadowStackAllocation - ProcessAltSystemCallInformation - ProcessDynamicEHContinuationTargets - ProcessDynamicEnforcedCetCompatibleRanges -) - -type PROCESS_BASIC_INFORMATION struct { - ExitStatus NTStatus - PebBaseAddress *PEB - AffinityMask uintptr - BasePriority int32 - UniqueProcessId uintptr - InheritedFromUniqueProcessId uintptr -} - -type SYSTEM_PROCESS_INFORMATION struct { - NextEntryOffset uint32 - NumberOfThreads uint32 - WorkingSetPrivateSize int64 - HardFaultCount uint32 - NumberOfThreadsHighWatermark uint32 - CycleTime uint64 - CreateTime int64 - UserTime int64 - KernelTime int64 - ImageName NTUnicodeString - BasePriority int32 - UniqueProcessID uintptr - InheritedFromUniqueProcessID uintptr - HandleCount uint32 - SessionID uint32 - UniqueProcessKey *uint32 - PeakVirtualSize uintptr - VirtualSize uintptr - PageFaultCount uint32 - PeakWorkingSetSize uintptr - WorkingSetSize uintptr - QuotaPeakPagedPoolUsage uintptr - QuotaPagedPoolUsage uintptr - QuotaPeakNonPagedPoolUsage uintptr - QuotaNonPagedPoolUsage uintptr - PagefileUsage uintptr - PeakPagefileUsage uintptr - PrivatePageCount uintptr - ReadOperationCount int64 - WriteOperationCount int64 - OtherOperationCount int64 - ReadTransferCount int64 - WriteTransferCount int64 - OtherTransferCount int64 -} - -// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation -const ( - SystemBasicInformation = iota - SystemProcessorInformation - SystemPerformanceInformation - SystemTimeOfDayInformation - SystemPathInformation - SystemProcessInformation - SystemCallCountInformation - SystemDeviceInformation - SystemProcessorPerformanceInformation - SystemFlagsInformation - SystemCallTimeInformation - SystemModuleInformation - SystemLocksInformation - SystemStackTraceInformation - SystemPagedPoolInformation - SystemNonPagedPoolInformation - SystemHandleInformation - SystemObjectInformation - SystemPageFileInformation - SystemVdmInstemulInformation - SystemVdmBopInformation - SystemFileCacheInformation - SystemPoolTagInformation - SystemInterruptInformation - SystemDpcBehaviorInformation - SystemFullMemoryInformation - SystemLoadGdiDriverInformation - SystemUnloadGdiDriverInformation - SystemTimeAdjustmentInformation - SystemSummaryMemoryInformation - SystemMirrorMemoryInformation - SystemPerformanceTraceInformation - systemObsolete0 - SystemExceptionInformation - SystemCrashDumpStateInformation - SystemKernelDebuggerInformation - SystemContextSwitchInformation - SystemRegistryQuotaInformation - SystemExtendServiceTableInformation - SystemPrioritySeperation - SystemVerifierAddDriverInformation - SystemVerifierRemoveDriverInformation - SystemProcessorIdleInformation - SystemLegacyDriverInformation - SystemCurrentTimeZoneInformation - SystemLookasideInformation - SystemTimeSlipNotification - SystemSessionCreate - SystemSessionDetach - SystemSessionInformation - SystemRangeStartInformation - SystemVerifierInformation - SystemVerifierThunkExtend - SystemSessionProcessInformation - SystemLoadGdiDriverInSystemSpace - SystemNumaProcessorMap - SystemPrefetcherInformation - SystemExtendedProcessInformation - SystemRecommendedSharedDataAlignment - SystemComPlusPackage - SystemNumaAvailableMemory - SystemProcessorPowerInformation - SystemEmulationBasicInformation - SystemEmulationProcessorInformation - SystemExtendedHandleInformation - SystemLostDelayedWriteInformation - SystemBigPoolInformation - SystemSessionPoolTagInformation - SystemSessionMappedViewInformation - SystemHotpatchInformation - SystemObjectSecurityMode - SystemWatchdogTimerHandler - SystemWatchdogTimerInformation - SystemLogicalProcessorInformation - SystemWow64SharedInformationObsolete - SystemRegisterFirmwareTableInformationHandler - SystemFirmwareTableInformation - SystemModuleInformationEx - SystemVerifierTriageInformation - SystemSuperfetchInformation - SystemMemoryListInformation - SystemFileCacheInformationEx - SystemThreadPriorityClientIdInformation - SystemProcessorIdleCycleTimeInformation - SystemVerifierCancellationInformation - SystemProcessorPowerInformationEx - SystemRefTraceInformation - SystemSpecialPoolInformation - SystemProcessIdInformation - SystemErrorPortInformation - SystemBootEnvironmentInformation - SystemHypervisorInformation - SystemVerifierInformationEx - SystemTimeZoneInformation - SystemImageFileExecutionOptionsInformation - SystemCoverageInformation - SystemPrefetchPatchInformation - SystemVerifierFaultsInformation - SystemSystemPartitionInformation - SystemSystemDiskInformation - SystemProcessorPerformanceDistribution - SystemNumaProximityNodeInformation - SystemDynamicTimeZoneInformation - SystemCodeIntegrityInformation - SystemProcessorMicrocodeUpdateInformation - SystemProcessorBrandString - SystemVirtualAddressInformation - SystemLogicalProcessorAndGroupInformation - SystemProcessorCycleTimeInformation - SystemStoreInformation - SystemRegistryAppendString - SystemAitSamplingValue - SystemVhdBootInformation - SystemCpuQuotaInformation - SystemNativeBasicInformation - systemSpare1 - SystemLowPriorityIoInformation - SystemTpmBootEntropyInformation - SystemVerifierCountersInformation - SystemPagedPoolInformationEx - SystemSystemPtesInformationEx - SystemNodeDistanceInformation - SystemAcpiAuditInformation - SystemBasicPerformanceInformation - SystemQueryPerformanceCounterInformation - SystemSessionBigPoolInformation - SystemBootGraphicsInformation - SystemScrubPhysicalMemoryInformation - SystemBadPageInformation - SystemProcessorProfileControlArea - SystemCombinePhysicalMemoryInformation - SystemEntropyInterruptTimingCallback - SystemConsoleInformation - SystemPlatformBinaryInformation - SystemThrottleNotificationInformation - SystemHypervisorProcessorCountInformation - SystemDeviceDataInformation - SystemDeviceDataEnumerationInformation - SystemMemoryTopologyInformation - SystemMemoryChannelInformation - SystemBootLogoInformation - SystemProcessorPerformanceInformationEx - systemSpare0 - SystemSecureBootPolicyInformation - SystemPageFileInformationEx - SystemSecureBootInformation - SystemEntropyInterruptTimingRawInformation - SystemPortableWorkspaceEfiLauncherInformation - SystemFullProcessInformation - SystemKernelDebuggerInformationEx - SystemBootMetadataInformation - SystemSoftRebootInformation - SystemElamCertificateInformation - SystemOfflineDumpConfigInformation - SystemProcessorFeaturesInformation - SystemRegistryReconciliationInformation - SystemEdidInformation - SystemManufacturingInformation - SystemEnergyEstimationConfigInformation - SystemHypervisorDetailInformation - SystemProcessorCycleStatsInformation - SystemVmGenerationCountInformation - SystemTrustedPlatformModuleInformation - SystemKernelDebuggerFlags - SystemCodeIntegrityPolicyInformation - SystemIsolatedUserModeInformation - SystemHardwareSecurityTestInterfaceResultsInformation - SystemSingleModuleInformation - SystemAllowedCpuSetsInformation - SystemDmaProtectionInformation - SystemInterruptCpuSetsInformation - SystemSecureBootPolicyFullInformation - SystemCodeIntegrityPolicyFullInformation - SystemAffinitizedInterruptProcessorInformation - SystemRootSiloInformation -) - -type RTL_PROCESS_MODULE_INFORMATION struct { - Section Handle - MappedBase uintptr - ImageBase uintptr - ImageSize uint32 - Flags uint32 - LoadOrderIndex uint16 - InitOrderIndex uint16 - LoadCount uint16 - OffsetToFileName uint16 - FullPathName [256]byte -} - -type RTL_PROCESS_MODULES struct { - NumberOfModules uint32 - Modules [1]RTL_PROCESS_MODULE_INFORMATION -} - -// Constants for LocalAlloc flags. -const ( - LMEM_FIXED = 0x0 - LMEM_MOVEABLE = 0x2 - LMEM_NOCOMPACT = 0x10 - LMEM_NODISCARD = 0x20 - LMEM_ZEROINIT = 0x40 - LMEM_MODIFY = 0x80 - LMEM_DISCARDABLE = 0xf00 - LMEM_VALID_FLAGS = 0xf72 - LMEM_INVALID_HANDLE = 0x8000 - LHND = LMEM_MOVEABLE | LMEM_ZEROINIT - LPTR = LMEM_FIXED | LMEM_ZEROINIT - NONZEROLHND = LMEM_MOVEABLE - NONZEROLPTR = LMEM_FIXED -) - -// Constants for the CreateNamedPipe-family of functions. -const ( - PIPE_ACCESS_INBOUND = 0x1 - PIPE_ACCESS_OUTBOUND = 0x2 - PIPE_ACCESS_DUPLEX = 0x3 - - PIPE_CLIENT_END = 0x0 - PIPE_SERVER_END = 0x1 - - PIPE_WAIT = 0x0 - PIPE_NOWAIT = 0x1 - PIPE_READMODE_BYTE = 0x0 - PIPE_READMODE_MESSAGE = 0x2 - PIPE_TYPE_BYTE = 0x0 - PIPE_TYPE_MESSAGE = 0x4 - PIPE_ACCEPT_REMOTE_CLIENTS = 0x0 - PIPE_REJECT_REMOTE_CLIENTS = 0x8 - - PIPE_UNLIMITED_INSTANCES = 255 -) - -// Constants for security attributes when opening named pipes. -const ( - SECURITY_ANONYMOUS = SecurityAnonymous << 16 - SECURITY_IDENTIFICATION = SecurityIdentification << 16 - SECURITY_IMPERSONATION = SecurityImpersonation << 16 - SECURITY_DELEGATION = SecurityDelegation << 16 - - SECURITY_CONTEXT_TRACKING = 0x40000 - SECURITY_EFFECTIVE_ONLY = 0x80000 - - SECURITY_SQOS_PRESENT = 0x100000 - SECURITY_VALID_SQOS_FLAGS = 0x1f0000 -) - -// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro. -type ResourceID uint16 - -// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID, -// or a string, to specify a resource or resource type by name. -type ResourceIDOrString interface{} - -// Predefined resource names and types. -var ( - // Predefined names. - CREATEPROCESS_MANIFEST_RESOURCE_ID ResourceID = 1 - ISOLATIONAWARE_MANIFEST_RESOURCE_ID ResourceID = 2 - ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3 - ISOLATIONPOLICY_MANIFEST_RESOURCE_ID ResourceID = 4 - ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID ResourceID = 5 - MINIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 1 // inclusive - MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 16 // inclusive - - // Predefined types. - RT_CURSOR ResourceID = 1 - RT_BITMAP ResourceID = 2 - RT_ICON ResourceID = 3 - RT_MENU ResourceID = 4 - RT_DIALOG ResourceID = 5 - RT_STRING ResourceID = 6 - RT_FONTDIR ResourceID = 7 - RT_FONT ResourceID = 8 - RT_ACCELERATOR ResourceID = 9 - RT_RCDATA ResourceID = 10 - RT_MESSAGETABLE ResourceID = 11 - RT_GROUP_CURSOR ResourceID = 12 - RT_GROUP_ICON ResourceID = 14 - RT_VERSION ResourceID = 16 - RT_DLGINCLUDE ResourceID = 17 - RT_PLUGPLAY ResourceID = 19 - RT_VXD ResourceID = 20 - RT_ANICURSOR ResourceID = 21 - RT_ANIICON ResourceID = 22 - RT_HTML ResourceID = 23 - RT_MANIFEST ResourceID = 24 -) - -type VS_FIXEDFILEINFO struct { - Signature uint32 - StrucVersion uint32 - FileVersionMS uint32 - FileVersionLS uint32 - ProductVersionMS uint32 - ProductVersionLS uint32 - FileFlagsMask uint32 - FileFlags uint32 - FileOS uint32 - FileType uint32 - FileSubtype uint32 - FileDateMS uint32 - FileDateLS uint32 -} - -type COAUTHIDENTITY struct { - User *uint16 - UserLength uint32 - Domain *uint16 - DomainLength uint32 - Password *uint16 - PasswordLength uint32 - Flags uint32 -} - -type COAUTHINFO struct { - AuthnSvc uint32 - AuthzSvc uint32 - ServerPrincName *uint16 - AuthnLevel uint32 - ImpersonationLevel uint32 - AuthIdentityData *COAUTHIDENTITY - Capabilities uint32 -} - -type COSERVERINFO struct { - Reserved1 uint32 - Aame *uint16 - AuthInfo *COAUTHINFO - Reserved2 uint32 -} - -type BIND_OPTS3 struct { - CbStruct uint32 - Flags uint32 - Mode uint32 - TickCountDeadline uint32 - TrackFlags uint32 - ClassContext uint32 - Locale uint32 - ServerInfo *COSERVERINFO - Hwnd HWND -} - -const ( - CLSCTX_INPROC_SERVER = 0x1 - CLSCTX_INPROC_HANDLER = 0x2 - CLSCTX_LOCAL_SERVER = 0x4 - CLSCTX_INPROC_SERVER16 = 0x8 - CLSCTX_REMOTE_SERVER = 0x10 - CLSCTX_INPROC_HANDLER16 = 0x20 - CLSCTX_RESERVED1 = 0x40 - CLSCTX_RESERVED2 = 0x80 - CLSCTX_RESERVED3 = 0x100 - CLSCTX_RESERVED4 = 0x200 - CLSCTX_NO_CODE_DOWNLOAD = 0x400 - CLSCTX_RESERVED5 = 0x800 - CLSCTX_NO_CUSTOM_MARSHAL = 0x1000 - CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000 - CLSCTX_NO_FAILURE_LOG = 0x4000 - CLSCTX_DISABLE_AAA = 0x8000 - CLSCTX_ENABLE_AAA = 0x10000 - CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000 - CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000 - CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000 - CLSCTX_ENABLE_CLOAKING = 0x100000 - CLSCTX_APPCONTAINER = 0x400000 - CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000 - CLSCTX_PS_DLL = 0x80000000 - - COINIT_MULTITHREADED = 0x0 - COINIT_APARTMENTTHREADED = 0x2 - COINIT_DISABLE_OLE1DDE = 0x4 - COINIT_SPEED_OVER_MEMORY = 0x8 -) - -// Flag for QueryFullProcessImageName. -const PROCESS_NAME_NATIVE = 1 - -type ModuleInfo struct { - BaseOfDll uintptr - SizeOfImage uint32 - EntryPoint uintptr -} - -const ALL_PROCESSOR_GROUPS = 0xFFFF - -type Rect struct { - Left int32 - Top int32 - Right int32 - Bottom int32 -} - -type GUIThreadInfo struct { - Size uint32 - Flags uint32 - Active HWND - Focus HWND - Capture HWND - MenuOwner HWND - MoveSize HWND - CaretHandle HWND - CaretRect Rect -} - -const ( - DWMWA_NCRENDERING_ENABLED = 1 - DWMWA_NCRENDERING_POLICY = 2 - DWMWA_TRANSITIONS_FORCEDISABLED = 3 - DWMWA_ALLOW_NCPAINT = 4 - DWMWA_CAPTION_BUTTON_BOUNDS = 5 - DWMWA_NONCLIENT_RTL_LAYOUT = 6 - DWMWA_FORCE_ICONIC_REPRESENTATION = 7 - DWMWA_FLIP3D_POLICY = 8 - DWMWA_EXTENDED_FRAME_BOUNDS = 9 - DWMWA_HAS_ICONIC_BITMAP = 10 - DWMWA_DISALLOW_PEEK = 11 - DWMWA_EXCLUDED_FROM_PEEK = 12 - DWMWA_CLOAK = 13 - DWMWA_CLOAKED = 14 - DWMWA_FREEZE_REPRESENTATION = 15 - DWMWA_PASSIVE_UPDATE_MODE = 16 - DWMWA_USE_HOSTBACKDROPBRUSH = 17 - DWMWA_USE_IMMERSIVE_DARK_MODE = 20 - DWMWA_WINDOW_CORNER_PREFERENCE = 33 - DWMWA_BORDER_COLOR = 34 - DWMWA_CAPTION_COLOR = 35 - DWMWA_TEXT_COLOR = 36 - DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 -) - -type WSAQUERYSET struct { - Size uint32 - ServiceInstanceName *uint16 - ServiceClassId *GUID - Version *WSAVersion - Comment *uint16 - NameSpace uint32 - NSProviderId *GUID - Context *uint16 - NumberOfProtocols uint32 - AfpProtocols *AFProtocols - QueryString *uint16 - NumberOfCsAddrs uint32 - SaBuffer *CSAddrInfo - OutputFlags uint32 - Blob *BLOB -} - -type WSAVersion struct { - Version uint32 - EnumerationOfComparison int32 -} - -type AFProtocols struct { - AddressFamily int32 - Protocol int32 -} - -type CSAddrInfo struct { - LocalAddr SocketAddress - RemoteAddr SocketAddress - SocketType int32 - Protocol int32 -} - -type BLOB struct { - Size uint32 - BlobData *byte -} diff --git a/backend/vendor/golang.org/x/sys/windows/types_windows_386.go b/backend/vendor/golang.org/x/sys/windows/types_windows_386.go deleted file mode 100644 index 8bce3e2f..00000000 --- a/backend/vendor/golang.org/x/sys/windows/types_windows_386.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - Port uint16 - Proto *byte -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 - _ uint32 // pad to 8 byte boundary -} diff --git a/backend/vendor/golang.org/x/sys/windows/types_windows_amd64.go b/backend/vendor/golang.org/x/sys/windows/types_windows_amd64.go deleted file mode 100644 index fdddc0c7..00000000 --- a/backend/vendor/golang.org/x/sys/windows/types_windows_amd64.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte -} - -type Servent struct { - Name *byte - Aliases **byte - Proto *byte - Port uint16 -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 -} diff --git a/backend/vendor/golang.org/x/sys/windows/types_windows_arm.go b/backend/vendor/golang.org/x/sys/windows/types_windows_arm.go deleted file mode 100644 index 321872c3..00000000 --- a/backend/vendor/golang.org/x/sys/windows/types_windows_arm.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - Port uint16 - Proto *byte -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 - _ uint32 // pad to 8 byte boundary -} diff --git a/backend/vendor/golang.org/x/sys/windows/types_windows_arm64.go b/backend/vendor/golang.org/x/sys/windows/types_windows_arm64.go deleted file mode 100644 index fdddc0c7..00000000 --- a/backend/vendor/golang.org/x/sys/windows/types_windows_arm64.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte -} - -type Servent struct { - Name *byte - Aliases **byte - Proto *byte - Port uint16 -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 -} diff --git a/backend/vendor/golang.org/x/sys/windows/zerrors_windows.go b/backend/vendor/golang.org/x/sys/windows/zerrors_windows.go deleted file mode 100644 index 0cf658fb..00000000 --- a/backend/vendor/golang.org/x/sys/windows/zerrors_windows.go +++ /dev/null @@ -1,9468 +0,0 @@ -// Code generated by 'mkerrors.bash'; DO NOT EDIT. - -package windows - -import "syscall" - -const ( - FACILITY_NULL = 0 - FACILITY_RPC = 1 - FACILITY_DISPATCH = 2 - FACILITY_STORAGE = 3 - FACILITY_ITF = 4 - FACILITY_WIN32 = 7 - FACILITY_WINDOWS = 8 - FACILITY_SSPI = 9 - FACILITY_SECURITY = 9 - FACILITY_CONTROL = 10 - FACILITY_CERT = 11 - FACILITY_INTERNET = 12 - FACILITY_MEDIASERVER = 13 - FACILITY_MSMQ = 14 - FACILITY_SETUPAPI = 15 - FACILITY_SCARD = 16 - FACILITY_COMPLUS = 17 - FACILITY_AAF = 18 - FACILITY_URT = 19 - FACILITY_ACS = 20 - FACILITY_DPLAY = 21 - FACILITY_UMI = 22 - FACILITY_SXS = 23 - FACILITY_WINDOWS_CE = 24 - FACILITY_HTTP = 25 - FACILITY_USERMODE_COMMONLOG = 26 - FACILITY_WER = 27 - FACILITY_USERMODE_FILTER_MANAGER = 31 - FACILITY_BACKGROUNDCOPY = 32 - FACILITY_CONFIGURATION = 33 - FACILITY_WIA = 33 - FACILITY_STATE_MANAGEMENT = 34 - FACILITY_METADIRECTORY = 35 - FACILITY_WINDOWSUPDATE = 36 - FACILITY_DIRECTORYSERVICE = 37 - FACILITY_GRAPHICS = 38 - FACILITY_SHELL = 39 - FACILITY_NAP = 39 - FACILITY_TPM_SERVICES = 40 - FACILITY_TPM_SOFTWARE = 41 - FACILITY_UI = 42 - FACILITY_XAML = 43 - FACILITY_ACTION_QUEUE = 44 - FACILITY_PLA = 48 - FACILITY_WINDOWS_SETUP = 48 - FACILITY_FVE = 49 - FACILITY_FWP = 50 - FACILITY_WINRM = 51 - FACILITY_NDIS = 52 - FACILITY_USERMODE_HYPERVISOR = 53 - FACILITY_CMI = 54 - FACILITY_USERMODE_VIRTUALIZATION = 55 - FACILITY_USERMODE_VOLMGR = 56 - FACILITY_BCD = 57 - FACILITY_USERMODE_VHD = 58 - FACILITY_USERMODE_HNS = 59 - FACILITY_SDIAG = 60 - FACILITY_WEBSERVICES = 61 - FACILITY_WINPE = 61 - FACILITY_WPN = 62 - FACILITY_WINDOWS_STORE = 63 - FACILITY_INPUT = 64 - FACILITY_EAP = 66 - FACILITY_WINDOWS_DEFENDER = 80 - FACILITY_OPC = 81 - FACILITY_XPS = 82 - FACILITY_MBN = 84 - FACILITY_POWERSHELL = 84 - FACILITY_RAS = 83 - FACILITY_P2P_INT = 98 - FACILITY_P2P = 99 - FACILITY_DAF = 100 - FACILITY_BLUETOOTH_ATT = 101 - FACILITY_AUDIO = 102 - FACILITY_STATEREPOSITORY = 103 - FACILITY_VISUALCPP = 109 - FACILITY_SCRIPT = 112 - FACILITY_PARSE = 113 - FACILITY_BLB = 120 - FACILITY_BLB_CLI = 121 - FACILITY_WSBAPP = 122 - FACILITY_BLBUI = 128 - FACILITY_USN = 129 - FACILITY_USERMODE_VOLSNAP = 130 - FACILITY_TIERING = 131 - FACILITY_WSB_ONLINE = 133 - FACILITY_ONLINE_ID = 134 - FACILITY_DEVICE_UPDATE_AGENT = 135 - FACILITY_DRVSERVICING = 136 - FACILITY_DLS = 153 - FACILITY_DELIVERY_OPTIMIZATION = 208 - FACILITY_USERMODE_SPACES = 231 - FACILITY_USER_MODE_SECURITY_CORE = 232 - FACILITY_USERMODE_LICENSING = 234 - FACILITY_SOS = 160 - FACILITY_DEBUGGERS = 176 - FACILITY_SPP = 256 - FACILITY_RESTORE = 256 - FACILITY_DMSERVER = 256 - FACILITY_DEPLOYMENT_SERVICES_SERVER = 257 - FACILITY_DEPLOYMENT_SERVICES_IMAGING = 258 - FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = 259 - FACILITY_DEPLOYMENT_SERVICES_UTIL = 260 - FACILITY_DEPLOYMENT_SERVICES_BINLSVC = 261 - FACILITY_DEPLOYMENT_SERVICES_PXE = 263 - FACILITY_DEPLOYMENT_SERVICES_TFTP = 264 - FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = 272 - FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = 278 - FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = 289 - FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = 290 - FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = 293 - FACILITY_LINGUISTIC_SERVICES = 305 - FACILITY_AUDIOSTREAMING = 1094 - FACILITY_ACCELERATOR = 1536 - FACILITY_WMAAECMA = 1996 - FACILITY_DIRECTMUSIC = 2168 - FACILITY_DIRECT3D10 = 2169 - FACILITY_DXGI = 2170 - FACILITY_DXGI_DDI = 2171 - FACILITY_DIRECT3D11 = 2172 - FACILITY_DIRECT3D11_DEBUG = 2173 - FACILITY_DIRECT3D12 = 2174 - FACILITY_DIRECT3D12_DEBUG = 2175 - FACILITY_LEAP = 2184 - FACILITY_AUDCLNT = 2185 - FACILITY_WINCODEC_DWRITE_DWM = 2200 - FACILITY_WINML = 2192 - FACILITY_DIRECT2D = 2201 - FACILITY_DEFRAG = 2304 - FACILITY_USERMODE_SDBUS = 2305 - FACILITY_JSCRIPT = 2306 - FACILITY_PIDGENX = 2561 - FACILITY_EAS = 85 - FACILITY_WEB = 885 - FACILITY_WEB_SOCKET = 886 - FACILITY_MOBILE = 1793 - FACILITY_SQLITE = 1967 - FACILITY_UTC = 1989 - FACILITY_WEP = 2049 - FACILITY_SYNCENGINE = 2050 - FACILITY_XBOX = 2339 - FACILITY_GAME = 2340 - FACILITY_PIX = 2748 - ERROR_SUCCESS syscall.Errno = 0 - NO_ERROR = 0 - SEC_E_OK Handle = 0x00000000 - ERROR_INVALID_FUNCTION syscall.Errno = 1 - ERROR_FILE_NOT_FOUND syscall.Errno = 2 - ERROR_PATH_NOT_FOUND syscall.Errno = 3 - ERROR_TOO_MANY_OPEN_FILES syscall.Errno = 4 - ERROR_ACCESS_DENIED syscall.Errno = 5 - ERROR_INVALID_HANDLE syscall.Errno = 6 - ERROR_ARENA_TRASHED syscall.Errno = 7 - ERROR_NOT_ENOUGH_MEMORY syscall.Errno = 8 - ERROR_INVALID_BLOCK syscall.Errno = 9 - ERROR_BAD_ENVIRONMENT syscall.Errno = 10 - ERROR_BAD_FORMAT syscall.Errno = 11 - ERROR_INVALID_ACCESS syscall.Errno = 12 - ERROR_INVALID_DATA syscall.Errno = 13 - ERROR_OUTOFMEMORY syscall.Errno = 14 - ERROR_INVALID_DRIVE syscall.Errno = 15 - ERROR_CURRENT_DIRECTORY syscall.Errno = 16 - ERROR_NOT_SAME_DEVICE syscall.Errno = 17 - ERROR_NO_MORE_FILES syscall.Errno = 18 - ERROR_WRITE_PROTECT syscall.Errno = 19 - ERROR_BAD_UNIT syscall.Errno = 20 - ERROR_NOT_READY syscall.Errno = 21 - ERROR_BAD_COMMAND syscall.Errno = 22 - ERROR_CRC syscall.Errno = 23 - ERROR_BAD_LENGTH syscall.Errno = 24 - ERROR_SEEK syscall.Errno = 25 - ERROR_NOT_DOS_DISK syscall.Errno = 26 - ERROR_SECTOR_NOT_FOUND syscall.Errno = 27 - ERROR_OUT_OF_PAPER syscall.Errno = 28 - ERROR_WRITE_FAULT syscall.Errno = 29 - ERROR_READ_FAULT syscall.Errno = 30 - ERROR_GEN_FAILURE syscall.Errno = 31 - ERROR_SHARING_VIOLATION syscall.Errno = 32 - ERROR_LOCK_VIOLATION syscall.Errno = 33 - ERROR_WRONG_DISK syscall.Errno = 34 - ERROR_SHARING_BUFFER_EXCEEDED syscall.Errno = 36 - ERROR_HANDLE_EOF syscall.Errno = 38 - ERROR_HANDLE_DISK_FULL syscall.Errno = 39 - ERROR_NOT_SUPPORTED syscall.Errno = 50 - ERROR_REM_NOT_LIST syscall.Errno = 51 - ERROR_DUP_NAME syscall.Errno = 52 - ERROR_BAD_NETPATH syscall.Errno = 53 - ERROR_NETWORK_BUSY syscall.Errno = 54 - ERROR_DEV_NOT_EXIST syscall.Errno = 55 - ERROR_TOO_MANY_CMDS syscall.Errno = 56 - ERROR_ADAP_HDW_ERR syscall.Errno = 57 - ERROR_BAD_NET_RESP syscall.Errno = 58 - ERROR_UNEXP_NET_ERR syscall.Errno = 59 - ERROR_BAD_REM_ADAP syscall.Errno = 60 - ERROR_PRINTQ_FULL syscall.Errno = 61 - ERROR_NO_SPOOL_SPACE syscall.Errno = 62 - ERROR_PRINT_CANCELLED syscall.Errno = 63 - ERROR_NETNAME_DELETED syscall.Errno = 64 - ERROR_NETWORK_ACCESS_DENIED syscall.Errno = 65 - ERROR_BAD_DEV_TYPE syscall.Errno = 66 - ERROR_BAD_NET_NAME syscall.Errno = 67 - ERROR_TOO_MANY_NAMES syscall.Errno = 68 - ERROR_TOO_MANY_SESS syscall.Errno = 69 - ERROR_SHARING_PAUSED syscall.Errno = 70 - ERROR_REQ_NOT_ACCEP syscall.Errno = 71 - ERROR_REDIR_PAUSED syscall.Errno = 72 - ERROR_FILE_EXISTS syscall.Errno = 80 - ERROR_CANNOT_MAKE syscall.Errno = 82 - ERROR_FAIL_I24 syscall.Errno = 83 - ERROR_OUT_OF_STRUCTURES syscall.Errno = 84 - ERROR_ALREADY_ASSIGNED syscall.Errno = 85 - ERROR_INVALID_PASSWORD syscall.Errno = 86 - ERROR_INVALID_PARAMETER syscall.Errno = 87 - ERROR_NET_WRITE_FAULT syscall.Errno = 88 - ERROR_NO_PROC_SLOTS syscall.Errno = 89 - ERROR_TOO_MANY_SEMAPHORES syscall.Errno = 100 - ERROR_EXCL_SEM_ALREADY_OWNED syscall.Errno = 101 - ERROR_SEM_IS_SET syscall.Errno = 102 - ERROR_TOO_MANY_SEM_REQUESTS syscall.Errno = 103 - ERROR_INVALID_AT_INTERRUPT_TIME syscall.Errno = 104 - ERROR_SEM_OWNER_DIED syscall.Errno = 105 - ERROR_SEM_USER_LIMIT syscall.Errno = 106 - ERROR_DISK_CHANGE syscall.Errno = 107 - ERROR_DRIVE_LOCKED syscall.Errno = 108 - ERROR_BROKEN_PIPE syscall.Errno = 109 - ERROR_OPEN_FAILED syscall.Errno = 110 - ERROR_BUFFER_OVERFLOW syscall.Errno = 111 - ERROR_DISK_FULL syscall.Errno = 112 - ERROR_NO_MORE_SEARCH_HANDLES syscall.Errno = 113 - ERROR_INVALID_TARGET_HANDLE syscall.Errno = 114 - ERROR_INVALID_CATEGORY syscall.Errno = 117 - ERROR_INVALID_VERIFY_SWITCH syscall.Errno = 118 - ERROR_BAD_DRIVER_LEVEL syscall.Errno = 119 - ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120 - ERROR_SEM_TIMEOUT syscall.Errno = 121 - ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 - ERROR_INVALID_NAME syscall.Errno = 123 - ERROR_INVALID_LEVEL syscall.Errno = 124 - ERROR_NO_VOLUME_LABEL syscall.Errno = 125 - ERROR_MOD_NOT_FOUND syscall.Errno = 126 - ERROR_PROC_NOT_FOUND syscall.Errno = 127 - ERROR_WAIT_NO_CHILDREN syscall.Errno = 128 - ERROR_CHILD_NOT_COMPLETE syscall.Errno = 129 - ERROR_DIRECT_ACCESS_HANDLE syscall.Errno = 130 - ERROR_NEGATIVE_SEEK syscall.Errno = 131 - ERROR_SEEK_ON_DEVICE syscall.Errno = 132 - ERROR_IS_JOIN_TARGET syscall.Errno = 133 - ERROR_IS_JOINED syscall.Errno = 134 - ERROR_IS_SUBSTED syscall.Errno = 135 - ERROR_NOT_JOINED syscall.Errno = 136 - ERROR_NOT_SUBSTED syscall.Errno = 137 - ERROR_JOIN_TO_JOIN syscall.Errno = 138 - ERROR_SUBST_TO_SUBST syscall.Errno = 139 - ERROR_JOIN_TO_SUBST syscall.Errno = 140 - ERROR_SUBST_TO_JOIN syscall.Errno = 141 - ERROR_BUSY_DRIVE syscall.Errno = 142 - ERROR_SAME_DRIVE syscall.Errno = 143 - ERROR_DIR_NOT_ROOT syscall.Errno = 144 - ERROR_DIR_NOT_EMPTY syscall.Errno = 145 - ERROR_IS_SUBST_PATH syscall.Errno = 146 - ERROR_IS_JOIN_PATH syscall.Errno = 147 - ERROR_PATH_BUSY syscall.Errno = 148 - ERROR_IS_SUBST_TARGET syscall.Errno = 149 - ERROR_SYSTEM_TRACE syscall.Errno = 150 - ERROR_INVALID_EVENT_COUNT syscall.Errno = 151 - ERROR_TOO_MANY_MUXWAITERS syscall.Errno = 152 - ERROR_INVALID_LIST_FORMAT syscall.Errno = 153 - ERROR_LABEL_TOO_LONG syscall.Errno = 154 - ERROR_TOO_MANY_TCBS syscall.Errno = 155 - ERROR_SIGNAL_REFUSED syscall.Errno = 156 - ERROR_DISCARDED syscall.Errno = 157 - ERROR_NOT_LOCKED syscall.Errno = 158 - ERROR_BAD_THREADID_ADDR syscall.Errno = 159 - ERROR_BAD_ARGUMENTS syscall.Errno = 160 - ERROR_BAD_PATHNAME syscall.Errno = 161 - ERROR_SIGNAL_PENDING syscall.Errno = 162 - ERROR_MAX_THRDS_REACHED syscall.Errno = 164 - ERROR_LOCK_FAILED syscall.Errno = 167 - ERROR_BUSY syscall.Errno = 170 - ERROR_DEVICE_SUPPORT_IN_PROGRESS syscall.Errno = 171 - ERROR_CANCEL_VIOLATION syscall.Errno = 173 - ERROR_ATOMIC_LOCKS_NOT_SUPPORTED syscall.Errno = 174 - ERROR_INVALID_SEGMENT_NUMBER syscall.Errno = 180 - ERROR_INVALID_ORDINAL syscall.Errno = 182 - ERROR_ALREADY_EXISTS syscall.Errno = 183 - ERROR_INVALID_FLAG_NUMBER syscall.Errno = 186 - ERROR_SEM_NOT_FOUND syscall.Errno = 187 - ERROR_INVALID_STARTING_CODESEG syscall.Errno = 188 - ERROR_INVALID_STACKSEG syscall.Errno = 189 - ERROR_INVALID_MODULETYPE syscall.Errno = 190 - ERROR_INVALID_EXE_SIGNATURE syscall.Errno = 191 - ERROR_EXE_MARKED_INVALID syscall.Errno = 192 - ERROR_BAD_EXE_FORMAT syscall.Errno = 193 - ERROR_ITERATED_DATA_EXCEEDS_64k syscall.Errno = 194 - ERROR_INVALID_MINALLOCSIZE syscall.Errno = 195 - ERROR_DYNLINK_FROM_INVALID_RING syscall.Errno = 196 - ERROR_IOPL_NOT_ENABLED syscall.Errno = 197 - ERROR_INVALID_SEGDPL syscall.Errno = 198 - ERROR_AUTODATASEG_EXCEEDS_64k syscall.Errno = 199 - ERROR_RING2SEG_MUST_BE_MOVABLE syscall.Errno = 200 - ERROR_RELOC_CHAIN_XEEDS_SEGLIM syscall.Errno = 201 - ERROR_INFLOOP_IN_RELOC_CHAIN syscall.Errno = 202 - ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 - ERROR_NO_SIGNAL_SENT syscall.Errno = 205 - ERROR_FILENAME_EXCED_RANGE syscall.Errno = 206 - ERROR_RING2_STACK_IN_USE syscall.Errno = 207 - ERROR_META_EXPANSION_TOO_LONG syscall.Errno = 208 - ERROR_INVALID_SIGNAL_NUMBER syscall.Errno = 209 - ERROR_THREAD_1_INACTIVE syscall.Errno = 210 - ERROR_LOCKED syscall.Errno = 212 - ERROR_TOO_MANY_MODULES syscall.Errno = 214 - ERROR_NESTING_NOT_ALLOWED syscall.Errno = 215 - ERROR_EXE_MACHINE_TYPE_MISMATCH syscall.Errno = 216 - ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY syscall.Errno = 217 - ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY syscall.Errno = 218 - ERROR_FILE_CHECKED_OUT syscall.Errno = 220 - ERROR_CHECKOUT_REQUIRED syscall.Errno = 221 - ERROR_BAD_FILE_TYPE syscall.Errno = 222 - ERROR_FILE_TOO_LARGE syscall.Errno = 223 - ERROR_FORMS_AUTH_REQUIRED syscall.Errno = 224 - ERROR_VIRUS_INFECTED syscall.Errno = 225 - ERROR_VIRUS_DELETED syscall.Errno = 226 - ERROR_PIPE_LOCAL syscall.Errno = 229 - ERROR_BAD_PIPE syscall.Errno = 230 - ERROR_PIPE_BUSY syscall.Errno = 231 - ERROR_NO_DATA syscall.Errno = 232 - ERROR_PIPE_NOT_CONNECTED syscall.Errno = 233 - ERROR_MORE_DATA syscall.Errno = 234 - ERROR_NO_WORK_DONE syscall.Errno = 235 - ERROR_VC_DISCONNECTED syscall.Errno = 240 - ERROR_INVALID_EA_NAME syscall.Errno = 254 - ERROR_EA_LIST_INCONSISTENT syscall.Errno = 255 - WAIT_TIMEOUT syscall.Errno = 258 - ERROR_NO_MORE_ITEMS syscall.Errno = 259 - ERROR_CANNOT_COPY syscall.Errno = 266 - ERROR_DIRECTORY syscall.Errno = 267 - ERROR_EAS_DIDNT_FIT syscall.Errno = 275 - ERROR_EA_FILE_CORRUPT syscall.Errno = 276 - ERROR_EA_TABLE_FULL syscall.Errno = 277 - ERROR_INVALID_EA_HANDLE syscall.Errno = 278 - ERROR_EAS_NOT_SUPPORTED syscall.Errno = 282 - ERROR_NOT_OWNER syscall.Errno = 288 - ERROR_TOO_MANY_POSTS syscall.Errno = 298 - ERROR_PARTIAL_COPY syscall.Errno = 299 - ERROR_OPLOCK_NOT_GRANTED syscall.Errno = 300 - ERROR_INVALID_OPLOCK_PROTOCOL syscall.Errno = 301 - ERROR_DISK_TOO_FRAGMENTED syscall.Errno = 302 - ERROR_DELETE_PENDING syscall.Errno = 303 - ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING syscall.Errno = 304 - ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME syscall.Errno = 305 - ERROR_SECURITY_STREAM_IS_INCONSISTENT syscall.Errno = 306 - ERROR_INVALID_LOCK_RANGE syscall.Errno = 307 - ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT syscall.Errno = 308 - ERROR_NOTIFICATION_GUID_ALREADY_DEFINED syscall.Errno = 309 - ERROR_INVALID_EXCEPTION_HANDLER syscall.Errno = 310 - ERROR_DUPLICATE_PRIVILEGES syscall.Errno = 311 - ERROR_NO_RANGES_PROCESSED syscall.Errno = 312 - ERROR_NOT_ALLOWED_ON_SYSTEM_FILE syscall.Errno = 313 - ERROR_DISK_RESOURCES_EXHAUSTED syscall.Errno = 314 - ERROR_INVALID_TOKEN syscall.Errno = 315 - ERROR_DEVICE_FEATURE_NOT_SUPPORTED syscall.Errno = 316 - ERROR_MR_MID_NOT_FOUND syscall.Errno = 317 - ERROR_SCOPE_NOT_FOUND syscall.Errno = 318 - ERROR_UNDEFINED_SCOPE syscall.Errno = 319 - ERROR_INVALID_CAP syscall.Errno = 320 - ERROR_DEVICE_UNREACHABLE syscall.Errno = 321 - ERROR_DEVICE_NO_RESOURCES syscall.Errno = 322 - ERROR_DATA_CHECKSUM_ERROR syscall.Errno = 323 - ERROR_INTERMIXED_KERNEL_EA_OPERATION syscall.Errno = 324 - ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED syscall.Errno = 326 - ERROR_OFFSET_ALIGNMENT_VIOLATION syscall.Errno = 327 - ERROR_INVALID_FIELD_IN_PARAMETER_LIST syscall.Errno = 328 - ERROR_OPERATION_IN_PROGRESS syscall.Errno = 329 - ERROR_BAD_DEVICE_PATH syscall.Errno = 330 - ERROR_TOO_MANY_DESCRIPTORS syscall.Errno = 331 - ERROR_SCRUB_DATA_DISABLED syscall.Errno = 332 - ERROR_NOT_REDUNDANT_STORAGE syscall.Errno = 333 - ERROR_RESIDENT_FILE_NOT_SUPPORTED syscall.Errno = 334 - ERROR_COMPRESSED_FILE_NOT_SUPPORTED syscall.Errno = 335 - ERROR_DIRECTORY_NOT_SUPPORTED syscall.Errno = 336 - ERROR_NOT_READ_FROM_COPY syscall.Errno = 337 - ERROR_FT_WRITE_FAILURE syscall.Errno = 338 - ERROR_FT_DI_SCAN_REQUIRED syscall.Errno = 339 - ERROR_INVALID_KERNEL_INFO_VERSION syscall.Errno = 340 - ERROR_INVALID_PEP_INFO_VERSION syscall.Errno = 341 - ERROR_OBJECT_NOT_EXTERNALLY_BACKED syscall.Errno = 342 - ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN syscall.Errno = 343 - ERROR_COMPRESSION_NOT_BENEFICIAL syscall.Errno = 344 - ERROR_STORAGE_TOPOLOGY_ID_MISMATCH syscall.Errno = 345 - ERROR_BLOCKED_BY_PARENTAL_CONTROLS syscall.Errno = 346 - ERROR_BLOCK_TOO_MANY_REFERENCES syscall.Errno = 347 - ERROR_MARKED_TO_DISALLOW_WRITES syscall.Errno = 348 - ERROR_ENCLAVE_FAILURE syscall.Errno = 349 - ERROR_FAIL_NOACTION_REBOOT syscall.Errno = 350 - ERROR_FAIL_SHUTDOWN syscall.Errno = 351 - ERROR_FAIL_RESTART syscall.Errno = 352 - ERROR_MAX_SESSIONS_REACHED syscall.Errno = 353 - ERROR_NETWORK_ACCESS_DENIED_EDP syscall.Errno = 354 - ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL syscall.Errno = 355 - ERROR_EDP_POLICY_DENIES_OPERATION syscall.Errno = 356 - ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED syscall.Errno = 357 - ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT syscall.Errno = 358 - ERROR_DEVICE_IN_MAINTENANCE syscall.Errno = 359 - ERROR_NOT_SUPPORTED_ON_DAX syscall.Errno = 360 - ERROR_DAX_MAPPING_EXISTS syscall.Errno = 361 - ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING syscall.Errno = 362 - ERROR_CLOUD_FILE_METADATA_CORRUPT syscall.Errno = 363 - ERROR_CLOUD_FILE_METADATA_TOO_LARGE syscall.Errno = 364 - ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE syscall.Errno = 365 - ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH syscall.Errno = 366 - ERROR_CHILD_PROCESS_BLOCKED syscall.Errno = 367 - ERROR_STORAGE_LOST_DATA_PERSISTENCE syscall.Errno = 368 - ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE syscall.Errno = 369 - ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT syscall.Errno = 370 - ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY syscall.Errno = 371 - ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN syscall.Errno = 372 - ERROR_GDI_HANDLE_LEAK syscall.Errno = 373 - ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS syscall.Errno = 374 - ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED syscall.Errno = 375 - ERROR_NOT_A_CLOUD_FILE syscall.Errno = 376 - ERROR_CLOUD_FILE_NOT_IN_SYNC syscall.Errno = 377 - ERROR_CLOUD_FILE_ALREADY_CONNECTED syscall.Errno = 378 - ERROR_CLOUD_FILE_NOT_SUPPORTED syscall.Errno = 379 - ERROR_CLOUD_FILE_INVALID_REQUEST syscall.Errno = 380 - ERROR_CLOUD_FILE_READ_ONLY_VOLUME syscall.Errno = 381 - ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY syscall.Errno = 382 - ERROR_CLOUD_FILE_VALIDATION_FAILED syscall.Errno = 383 - ERROR_SMB1_NOT_AVAILABLE syscall.Errno = 384 - ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION syscall.Errno = 385 - ERROR_CLOUD_FILE_AUTHENTICATION_FAILED syscall.Errno = 386 - ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES syscall.Errno = 387 - ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE syscall.Errno = 388 - ERROR_CLOUD_FILE_UNSUCCESSFUL syscall.Errno = 389 - ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT syscall.Errno = 390 - ERROR_CLOUD_FILE_IN_USE syscall.Errno = 391 - ERROR_CLOUD_FILE_PINNED syscall.Errno = 392 - ERROR_CLOUD_FILE_REQUEST_ABORTED syscall.Errno = 393 - ERROR_CLOUD_FILE_PROPERTY_CORRUPT syscall.Errno = 394 - ERROR_CLOUD_FILE_ACCESS_DENIED syscall.Errno = 395 - ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS syscall.Errno = 396 - ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT syscall.Errno = 397 - ERROR_CLOUD_FILE_REQUEST_CANCELED syscall.Errno = 398 - ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED syscall.Errno = 399 - ERROR_THREAD_MODE_ALREADY_BACKGROUND syscall.Errno = 400 - ERROR_THREAD_MODE_NOT_BACKGROUND syscall.Errno = 401 - ERROR_PROCESS_MODE_ALREADY_BACKGROUND syscall.Errno = 402 - ERROR_PROCESS_MODE_NOT_BACKGROUND syscall.Errno = 403 - ERROR_CLOUD_FILE_PROVIDER_TERMINATED syscall.Errno = 404 - ERROR_NOT_A_CLOUD_SYNC_ROOT syscall.Errno = 405 - ERROR_FILE_PROTECTED_UNDER_DPL syscall.Errno = 406 - ERROR_VOLUME_NOT_CLUSTER_ALIGNED syscall.Errno = 407 - ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND syscall.Errno = 408 - ERROR_APPX_FILE_NOT_ENCRYPTED syscall.Errno = 409 - ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED syscall.Errno = 410 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET syscall.Errno = 411 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE syscall.Errno = 412 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER syscall.Errno = 413 - ERROR_LINUX_SUBSYSTEM_NOT_PRESENT syscall.Errno = 414 - ERROR_FT_READ_FAILURE syscall.Errno = 415 - ERROR_STORAGE_RESERVE_ID_INVALID syscall.Errno = 416 - ERROR_STORAGE_RESERVE_DOES_NOT_EXIST syscall.Errno = 417 - ERROR_STORAGE_RESERVE_ALREADY_EXISTS syscall.Errno = 418 - ERROR_STORAGE_RESERVE_NOT_EMPTY syscall.Errno = 419 - ERROR_NOT_A_DAX_VOLUME syscall.Errno = 420 - ERROR_NOT_DAX_MAPPABLE syscall.Errno = 421 - ERROR_TIME_SENSITIVE_THREAD syscall.Errno = 422 - ERROR_DPL_NOT_SUPPORTED_FOR_USER syscall.Errno = 423 - ERROR_CASE_DIFFERING_NAMES_IN_DIR syscall.Errno = 424 - ERROR_FILE_NOT_SUPPORTED syscall.Errno = 425 - ERROR_CLOUD_FILE_REQUEST_TIMEOUT syscall.Errno = 426 - ERROR_NO_TASK_QUEUE syscall.Errno = 427 - ERROR_SRC_SRV_DLL_LOAD_FAILED syscall.Errno = 428 - ERROR_NOT_SUPPORTED_WITH_BTT syscall.Errno = 429 - ERROR_ENCRYPTION_DISABLED syscall.Errno = 430 - ERROR_ENCRYPTING_METADATA_DISALLOWED syscall.Errno = 431 - ERROR_CANT_CLEAR_ENCRYPTION_FLAG syscall.Errno = 432 - ERROR_NO_SUCH_DEVICE syscall.Errno = 433 - ERROR_CAPAUTHZ_NOT_DEVUNLOCKED syscall.Errno = 450 - ERROR_CAPAUTHZ_CHANGE_TYPE syscall.Errno = 451 - ERROR_CAPAUTHZ_NOT_PROVISIONED syscall.Errno = 452 - ERROR_CAPAUTHZ_NOT_AUTHORIZED syscall.Errno = 453 - ERROR_CAPAUTHZ_NO_POLICY syscall.Errno = 454 - ERROR_CAPAUTHZ_DB_CORRUPTED syscall.Errno = 455 - ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG syscall.Errno = 456 - ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY syscall.Errno = 457 - ERROR_CAPAUTHZ_SCCD_PARSE_ERROR syscall.Errno = 458 - ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED syscall.Errno = 459 - ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH syscall.Errno = 460 - ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT syscall.Errno = 480 - ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT syscall.Errno = 481 - ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT syscall.Errno = 482 - ERROR_DEVICE_HARDWARE_ERROR syscall.Errno = 483 - ERROR_INVALID_ADDRESS syscall.Errno = 487 - ERROR_VRF_CFG_ENABLED syscall.Errno = 1183 - ERROR_PARTITION_TERMINATING syscall.Errno = 1184 - ERROR_USER_PROFILE_LOAD syscall.Errno = 500 - ERROR_ARITHMETIC_OVERFLOW syscall.Errno = 534 - ERROR_PIPE_CONNECTED syscall.Errno = 535 - ERROR_PIPE_LISTENING syscall.Errno = 536 - ERROR_VERIFIER_STOP syscall.Errno = 537 - ERROR_ABIOS_ERROR syscall.Errno = 538 - ERROR_WX86_WARNING syscall.Errno = 539 - ERROR_WX86_ERROR syscall.Errno = 540 - ERROR_TIMER_NOT_CANCELED syscall.Errno = 541 - ERROR_UNWIND syscall.Errno = 542 - ERROR_BAD_STACK syscall.Errno = 543 - ERROR_INVALID_UNWIND_TARGET syscall.Errno = 544 - ERROR_INVALID_PORT_ATTRIBUTES syscall.Errno = 545 - ERROR_PORT_MESSAGE_TOO_LONG syscall.Errno = 546 - ERROR_INVALID_QUOTA_LOWER syscall.Errno = 547 - ERROR_DEVICE_ALREADY_ATTACHED syscall.Errno = 548 - ERROR_INSTRUCTION_MISALIGNMENT syscall.Errno = 549 - ERROR_PROFILING_NOT_STARTED syscall.Errno = 550 - ERROR_PROFILING_NOT_STOPPED syscall.Errno = 551 - ERROR_COULD_NOT_INTERPRET syscall.Errno = 552 - ERROR_PROFILING_AT_LIMIT syscall.Errno = 553 - ERROR_CANT_WAIT syscall.Errno = 554 - ERROR_CANT_TERMINATE_SELF syscall.Errno = 555 - ERROR_UNEXPECTED_MM_CREATE_ERR syscall.Errno = 556 - ERROR_UNEXPECTED_MM_MAP_ERROR syscall.Errno = 557 - ERROR_UNEXPECTED_MM_EXTEND_ERR syscall.Errno = 558 - ERROR_BAD_FUNCTION_TABLE syscall.Errno = 559 - ERROR_NO_GUID_TRANSLATION syscall.Errno = 560 - ERROR_INVALID_LDT_SIZE syscall.Errno = 561 - ERROR_INVALID_LDT_OFFSET syscall.Errno = 563 - ERROR_INVALID_LDT_DESCRIPTOR syscall.Errno = 564 - ERROR_TOO_MANY_THREADS syscall.Errno = 565 - ERROR_THREAD_NOT_IN_PROCESS syscall.Errno = 566 - ERROR_PAGEFILE_QUOTA_EXCEEDED syscall.Errno = 567 - ERROR_LOGON_SERVER_CONFLICT syscall.Errno = 568 - ERROR_SYNCHRONIZATION_REQUIRED syscall.Errno = 569 - ERROR_NET_OPEN_FAILED syscall.Errno = 570 - ERROR_IO_PRIVILEGE_FAILED syscall.Errno = 571 - ERROR_CONTROL_C_EXIT syscall.Errno = 572 - ERROR_MISSING_SYSTEMFILE syscall.Errno = 573 - ERROR_UNHANDLED_EXCEPTION syscall.Errno = 574 - ERROR_APP_INIT_FAILURE syscall.Errno = 575 - ERROR_PAGEFILE_CREATE_FAILED syscall.Errno = 576 - ERROR_INVALID_IMAGE_HASH syscall.Errno = 577 - ERROR_NO_PAGEFILE syscall.Errno = 578 - ERROR_ILLEGAL_FLOAT_CONTEXT syscall.Errno = 579 - ERROR_NO_EVENT_PAIR syscall.Errno = 580 - ERROR_DOMAIN_CTRLR_CONFIG_ERROR syscall.Errno = 581 - ERROR_ILLEGAL_CHARACTER syscall.Errno = 582 - ERROR_UNDEFINED_CHARACTER syscall.Errno = 583 - ERROR_FLOPPY_VOLUME syscall.Errno = 584 - ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT syscall.Errno = 585 - ERROR_BACKUP_CONTROLLER syscall.Errno = 586 - ERROR_MUTANT_LIMIT_EXCEEDED syscall.Errno = 587 - ERROR_FS_DRIVER_REQUIRED syscall.Errno = 588 - ERROR_CANNOT_LOAD_REGISTRY_FILE syscall.Errno = 589 - ERROR_DEBUG_ATTACH_FAILED syscall.Errno = 590 - ERROR_SYSTEM_PROCESS_TERMINATED syscall.Errno = 591 - ERROR_DATA_NOT_ACCEPTED syscall.Errno = 592 - ERROR_VDM_HARD_ERROR syscall.Errno = 593 - ERROR_DRIVER_CANCEL_TIMEOUT syscall.Errno = 594 - ERROR_REPLY_MESSAGE_MISMATCH syscall.Errno = 595 - ERROR_LOST_WRITEBEHIND_DATA syscall.Errno = 596 - ERROR_CLIENT_SERVER_PARAMETERS_INVALID syscall.Errno = 597 - ERROR_NOT_TINY_STREAM syscall.Errno = 598 - ERROR_STACK_OVERFLOW_READ syscall.Errno = 599 - ERROR_CONVERT_TO_LARGE syscall.Errno = 600 - ERROR_FOUND_OUT_OF_SCOPE syscall.Errno = 601 - ERROR_ALLOCATE_BUCKET syscall.Errno = 602 - ERROR_MARSHALL_OVERFLOW syscall.Errno = 603 - ERROR_INVALID_VARIANT syscall.Errno = 604 - ERROR_BAD_COMPRESSION_BUFFER syscall.Errno = 605 - ERROR_AUDIT_FAILED syscall.Errno = 606 - ERROR_TIMER_RESOLUTION_NOT_SET syscall.Errno = 607 - ERROR_INSUFFICIENT_LOGON_INFO syscall.Errno = 608 - ERROR_BAD_DLL_ENTRYPOINT syscall.Errno = 609 - ERROR_BAD_SERVICE_ENTRYPOINT syscall.Errno = 610 - ERROR_IP_ADDRESS_CONFLICT1 syscall.Errno = 611 - ERROR_IP_ADDRESS_CONFLICT2 syscall.Errno = 612 - ERROR_REGISTRY_QUOTA_LIMIT syscall.Errno = 613 - ERROR_NO_CALLBACK_ACTIVE syscall.Errno = 614 - ERROR_PWD_TOO_SHORT syscall.Errno = 615 - ERROR_PWD_TOO_RECENT syscall.Errno = 616 - ERROR_PWD_HISTORY_CONFLICT syscall.Errno = 617 - ERROR_UNSUPPORTED_COMPRESSION syscall.Errno = 618 - ERROR_INVALID_HW_PROFILE syscall.Errno = 619 - ERROR_INVALID_PLUGPLAY_DEVICE_PATH syscall.Errno = 620 - ERROR_QUOTA_LIST_INCONSISTENT syscall.Errno = 621 - ERROR_EVALUATION_EXPIRATION syscall.Errno = 622 - ERROR_ILLEGAL_DLL_RELOCATION syscall.Errno = 623 - ERROR_DLL_INIT_FAILED_LOGOFF syscall.Errno = 624 - ERROR_VALIDATE_CONTINUE syscall.Errno = 625 - ERROR_NO_MORE_MATCHES syscall.Errno = 626 - ERROR_RANGE_LIST_CONFLICT syscall.Errno = 627 - ERROR_SERVER_SID_MISMATCH syscall.Errno = 628 - ERROR_CANT_ENABLE_DENY_ONLY syscall.Errno = 629 - ERROR_FLOAT_MULTIPLE_FAULTS syscall.Errno = 630 - ERROR_FLOAT_MULTIPLE_TRAPS syscall.Errno = 631 - ERROR_NOINTERFACE syscall.Errno = 632 - ERROR_DRIVER_FAILED_SLEEP syscall.Errno = 633 - ERROR_CORRUPT_SYSTEM_FILE syscall.Errno = 634 - ERROR_COMMITMENT_MINIMUM syscall.Errno = 635 - ERROR_PNP_RESTART_ENUMERATION syscall.Errno = 636 - ERROR_SYSTEM_IMAGE_BAD_SIGNATURE syscall.Errno = 637 - ERROR_PNP_REBOOT_REQUIRED syscall.Errno = 638 - ERROR_INSUFFICIENT_POWER syscall.Errno = 639 - ERROR_MULTIPLE_FAULT_VIOLATION syscall.Errno = 640 - ERROR_SYSTEM_SHUTDOWN syscall.Errno = 641 - ERROR_PORT_NOT_SET syscall.Errno = 642 - ERROR_DS_VERSION_CHECK_FAILURE syscall.Errno = 643 - ERROR_RANGE_NOT_FOUND syscall.Errno = 644 - ERROR_NOT_SAFE_MODE_DRIVER syscall.Errno = 646 - ERROR_FAILED_DRIVER_ENTRY syscall.Errno = 647 - ERROR_DEVICE_ENUMERATION_ERROR syscall.Errno = 648 - ERROR_MOUNT_POINT_NOT_RESOLVED syscall.Errno = 649 - ERROR_INVALID_DEVICE_OBJECT_PARAMETER syscall.Errno = 650 - ERROR_MCA_OCCURED syscall.Errno = 651 - ERROR_DRIVER_DATABASE_ERROR syscall.Errno = 652 - ERROR_SYSTEM_HIVE_TOO_LARGE syscall.Errno = 653 - ERROR_DRIVER_FAILED_PRIOR_UNLOAD syscall.Errno = 654 - ERROR_VOLSNAP_PREPARE_HIBERNATE syscall.Errno = 655 - ERROR_HIBERNATION_FAILURE syscall.Errno = 656 - ERROR_PWD_TOO_LONG syscall.Errno = 657 - ERROR_FILE_SYSTEM_LIMITATION syscall.Errno = 665 - ERROR_ASSERTION_FAILURE syscall.Errno = 668 - ERROR_ACPI_ERROR syscall.Errno = 669 - ERROR_WOW_ASSERTION syscall.Errno = 670 - ERROR_PNP_BAD_MPS_TABLE syscall.Errno = 671 - ERROR_PNP_TRANSLATION_FAILED syscall.Errno = 672 - ERROR_PNP_IRQ_TRANSLATION_FAILED syscall.Errno = 673 - ERROR_PNP_INVALID_ID syscall.Errno = 674 - ERROR_WAKE_SYSTEM_DEBUGGER syscall.Errno = 675 - ERROR_HANDLES_CLOSED syscall.Errno = 676 - ERROR_EXTRANEOUS_INFORMATION syscall.Errno = 677 - ERROR_RXACT_COMMIT_NECESSARY syscall.Errno = 678 - ERROR_MEDIA_CHECK syscall.Errno = 679 - ERROR_GUID_SUBSTITUTION_MADE syscall.Errno = 680 - ERROR_STOPPED_ON_SYMLINK syscall.Errno = 681 - ERROR_LONGJUMP syscall.Errno = 682 - ERROR_PLUGPLAY_QUERY_VETOED syscall.Errno = 683 - ERROR_UNWIND_CONSOLIDATE syscall.Errno = 684 - ERROR_REGISTRY_HIVE_RECOVERED syscall.Errno = 685 - ERROR_DLL_MIGHT_BE_INSECURE syscall.Errno = 686 - ERROR_DLL_MIGHT_BE_INCOMPATIBLE syscall.Errno = 687 - ERROR_DBG_EXCEPTION_NOT_HANDLED syscall.Errno = 688 - ERROR_DBG_REPLY_LATER syscall.Errno = 689 - ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE syscall.Errno = 690 - ERROR_DBG_TERMINATE_THREAD syscall.Errno = 691 - ERROR_DBG_TERMINATE_PROCESS syscall.Errno = 692 - ERROR_DBG_CONTROL_C syscall.Errno = 693 - ERROR_DBG_PRINTEXCEPTION_C syscall.Errno = 694 - ERROR_DBG_RIPEXCEPTION syscall.Errno = 695 - ERROR_DBG_CONTROL_BREAK syscall.Errno = 696 - ERROR_DBG_COMMAND_EXCEPTION syscall.Errno = 697 - ERROR_OBJECT_NAME_EXISTS syscall.Errno = 698 - ERROR_THREAD_WAS_SUSPENDED syscall.Errno = 699 - ERROR_IMAGE_NOT_AT_BASE syscall.Errno = 700 - ERROR_RXACT_STATE_CREATED syscall.Errno = 701 - ERROR_SEGMENT_NOTIFICATION syscall.Errno = 702 - ERROR_BAD_CURRENT_DIRECTORY syscall.Errno = 703 - ERROR_FT_READ_RECOVERY_FROM_BACKUP syscall.Errno = 704 - ERROR_FT_WRITE_RECOVERY syscall.Errno = 705 - ERROR_IMAGE_MACHINE_TYPE_MISMATCH syscall.Errno = 706 - ERROR_RECEIVE_PARTIAL syscall.Errno = 707 - ERROR_RECEIVE_EXPEDITED syscall.Errno = 708 - ERROR_RECEIVE_PARTIAL_EXPEDITED syscall.Errno = 709 - ERROR_EVENT_DONE syscall.Errno = 710 - ERROR_EVENT_PENDING syscall.Errno = 711 - ERROR_CHECKING_FILE_SYSTEM syscall.Errno = 712 - ERROR_FATAL_APP_EXIT syscall.Errno = 713 - ERROR_PREDEFINED_HANDLE syscall.Errno = 714 - ERROR_WAS_UNLOCKED syscall.Errno = 715 - ERROR_SERVICE_NOTIFICATION syscall.Errno = 716 - ERROR_WAS_LOCKED syscall.Errno = 717 - ERROR_LOG_HARD_ERROR syscall.Errno = 718 - ERROR_ALREADY_WIN32 syscall.Errno = 719 - ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE syscall.Errno = 720 - ERROR_NO_YIELD_PERFORMED syscall.Errno = 721 - ERROR_TIMER_RESUME_IGNORED syscall.Errno = 722 - ERROR_ARBITRATION_UNHANDLED syscall.Errno = 723 - ERROR_CARDBUS_NOT_SUPPORTED syscall.Errno = 724 - ERROR_MP_PROCESSOR_MISMATCH syscall.Errno = 725 - ERROR_HIBERNATED syscall.Errno = 726 - ERROR_RESUME_HIBERNATION syscall.Errno = 727 - ERROR_FIRMWARE_UPDATED syscall.Errno = 728 - ERROR_DRIVERS_LEAKING_LOCKED_PAGES syscall.Errno = 729 - ERROR_WAKE_SYSTEM syscall.Errno = 730 - ERROR_WAIT_1 syscall.Errno = 731 - ERROR_WAIT_2 syscall.Errno = 732 - ERROR_WAIT_3 syscall.Errno = 733 - ERROR_WAIT_63 syscall.Errno = 734 - ERROR_ABANDONED_WAIT_0 syscall.Errno = 735 - ERROR_ABANDONED_WAIT_63 syscall.Errno = 736 - ERROR_USER_APC syscall.Errno = 737 - ERROR_KERNEL_APC syscall.Errno = 738 - ERROR_ALERTED syscall.Errno = 739 - ERROR_ELEVATION_REQUIRED syscall.Errno = 740 - ERROR_REPARSE syscall.Errno = 741 - ERROR_OPLOCK_BREAK_IN_PROGRESS syscall.Errno = 742 - ERROR_VOLUME_MOUNTED syscall.Errno = 743 - ERROR_RXACT_COMMITTED syscall.Errno = 744 - ERROR_NOTIFY_CLEANUP syscall.Errno = 745 - ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED syscall.Errno = 746 - ERROR_PAGE_FAULT_TRANSITION syscall.Errno = 747 - ERROR_PAGE_FAULT_DEMAND_ZERO syscall.Errno = 748 - ERROR_PAGE_FAULT_COPY_ON_WRITE syscall.Errno = 749 - ERROR_PAGE_FAULT_GUARD_PAGE syscall.Errno = 750 - ERROR_PAGE_FAULT_PAGING_FILE syscall.Errno = 751 - ERROR_CACHE_PAGE_LOCKED syscall.Errno = 752 - ERROR_CRASH_DUMP syscall.Errno = 753 - ERROR_BUFFER_ALL_ZEROS syscall.Errno = 754 - ERROR_REPARSE_OBJECT syscall.Errno = 755 - ERROR_RESOURCE_REQUIREMENTS_CHANGED syscall.Errno = 756 - ERROR_TRANSLATION_COMPLETE syscall.Errno = 757 - ERROR_NOTHING_TO_TERMINATE syscall.Errno = 758 - ERROR_PROCESS_NOT_IN_JOB syscall.Errno = 759 - ERROR_PROCESS_IN_JOB syscall.Errno = 760 - ERROR_VOLSNAP_HIBERNATE_READY syscall.Errno = 761 - ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY syscall.Errno = 762 - ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED syscall.Errno = 763 - ERROR_INTERRUPT_STILL_CONNECTED syscall.Errno = 764 - ERROR_WAIT_FOR_OPLOCK syscall.Errno = 765 - ERROR_DBG_EXCEPTION_HANDLED syscall.Errno = 766 - ERROR_DBG_CONTINUE syscall.Errno = 767 - ERROR_CALLBACK_POP_STACK syscall.Errno = 768 - ERROR_COMPRESSION_DISABLED syscall.Errno = 769 - ERROR_CANTFETCHBACKWARDS syscall.Errno = 770 - ERROR_CANTSCROLLBACKWARDS syscall.Errno = 771 - ERROR_ROWSNOTRELEASED syscall.Errno = 772 - ERROR_BAD_ACCESSOR_FLAGS syscall.Errno = 773 - ERROR_ERRORS_ENCOUNTERED syscall.Errno = 774 - ERROR_NOT_CAPABLE syscall.Errno = 775 - ERROR_REQUEST_OUT_OF_SEQUENCE syscall.Errno = 776 - ERROR_VERSION_PARSE_ERROR syscall.Errno = 777 - ERROR_BADSTARTPOSITION syscall.Errno = 778 - ERROR_MEMORY_HARDWARE syscall.Errno = 779 - ERROR_DISK_REPAIR_DISABLED syscall.Errno = 780 - ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE syscall.Errno = 781 - ERROR_SYSTEM_POWERSTATE_TRANSITION syscall.Errno = 782 - ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION syscall.Errno = 783 - ERROR_MCA_EXCEPTION syscall.Errno = 784 - ERROR_ACCESS_AUDIT_BY_POLICY syscall.Errno = 785 - ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY syscall.Errno = 786 - ERROR_ABANDON_HIBERFILE syscall.Errno = 787 - ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED syscall.Errno = 788 - ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR syscall.Errno = 789 - ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR syscall.Errno = 790 - ERROR_BAD_MCFG_TABLE syscall.Errno = 791 - ERROR_DISK_REPAIR_REDIRECTED syscall.Errno = 792 - ERROR_DISK_REPAIR_UNSUCCESSFUL syscall.Errno = 793 - ERROR_CORRUPT_LOG_OVERFULL syscall.Errno = 794 - ERROR_CORRUPT_LOG_CORRUPTED syscall.Errno = 795 - ERROR_CORRUPT_LOG_UNAVAILABLE syscall.Errno = 796 - ERROR_CORRUPT_LOG_DELETED_FULL syscall.Errno = 797 - ERROR_CORRUPT_LOG_CLEARED syscall.Errno = 798 - ERROR_ORPHAN_NAME_EXHAUSTED syscall.Errno = 799 - ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE syscall.Errno = 800 - ERROR_CANNOT_GRANT_REQUESTED_OPLOCK syscall.Errno = 801 - ERROR_CANNOT_BREAK_OPLOCK syscall.Errno = 802 - ERROR_OPLOCK_HANDLE_CLOSED syscall.Errno = 803 - ERROR_NO_ACE_CONDITION syscall.Errno = 804 - ERROR_INVALID_ACE_CONDITION syscall.Errno = 805 - ERROR_FILE_HANDLE_REVOKED syscall.Errno = 806 - ERROR_IMAGE_AT_DIFFERENT_BASE syscall.Errno = 807 - ERROR_ENCRYPTED_IO_NOT_POSSIBLE syscall.Errno = 808 - ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS syscall.Errno = 809 - ERROR_QUOTA_ACTIVITY syscall.Errno = 810 - ERROR_HANDLE_REVOKED syscall.Errno = 811 - ERROR_CALLBACK_INVOKE_INLINE syscall.Errno = 812 - ERROR_CPU_SET_INVALID syscall.Errno = 813 - ERROR_ENCLAVE_NOT_TERMINATED syscall.Errno = 814 - ERROR_ENCLAVE_VIOLATION syscall.Errno = 815 - ERROR_EA_ACCESS_DENIED syscall.Errno = 994 - ERROR_OPERATION_ABORTED syscall.Errno = 995 - ERROR_IO_INCOMPLETE syscall.Errno = 996 - ERROR_IO_PENDING syscall.Errno = 997 - ERROR_NOACCESS syscall.Errno = 998 - ERROR_SWAPERROR syscall.Errno = 999 - ERROR_STACK_OVERFLOW syscall.Errno = 1001 - ERROR_INVALID_MESSAGE syscall.Errno = 1002 - ERROR_CAN_NOT_COMPLETE syscall.Errno = 1003 - ERROR_INVALID_FLAGS syscall.Errno = 1004 - ERROR_UNRECOGNIZED_VOLUME syscall.Errno = 1005 - ERROR_FILE_INVALID syscall.Errno = 1006 - ERROR_FULLSCREEN_MODE syscall.Errno = 1007 - ERROR_NO_TOKEN syscall.Errno = 1008 - ERROR_BADDB syscall.Errno = 1009 - ERROR_BADKEY syscall.Errno = 1010 - ERROR_CANTOPEN syscall.Errno = 1011 - ERROR_CANTREAD syscall.Errno = 1012 - ERROR_CANTWRITE syscall.Errno = 1013 - ERROR_REGISTRY_RECOVERED syscall.Errno = 1014 - ERROR_REGISTRY_CORRUPT syscall.Errno = 1015 - ERROR_REGISTRY_IO_FAILED syscall.Errno = 1016 - ERROR_NOT_REGISTRY_FILE syscall.Errno = 1017 - ERROR_KEY_DELETED syscall.Errno = 1018 - ERROR_NO_LOG_SPACE syscall.Errno = 1019 - ERROR_KEY_HAS_CHILDREN syscall.Errno = 1020 - ERROR_CHILD_MUST_BE_VOLATILE syscall.Errno = 1021 - ERROR_NOTIFY_ENUM_DIR syscall.Errno = 1022 - ERROR_DEPENDENT_SERVICES_RUNNING syscall.Errno = 1051 - ERROR_INVALID_SERVICE_CONTROL syscall.Errno = 1052 - ERROR_SERVICE_REQUEST_TIMEOUT syscall.Errno = 1053 - ERROR_SERVICE_NO_THREAD syscall.Errno = 1054 - ERROR_SERVICE_DATABASE_LOCKED syscall.Errno = 1055 - ERROR_SERVICE_ALREADY_RUNNING syscall.Errno = 1056 - ERROR_INVALID_SERVICE_ACCOUNT syscall.Errno = 1057 - ERROR_SERVICE_DISABLED syscall.Errno = 1058 - ERROR_CIRCULAR_DEPENDENCY syscall.Errno = 1059 - ERROR_SERVICE_DOES_NOT_EXIST syscall.Errno = 1060 - ERROR_SERVICE_CANNOT_ACCEPT_CTRL syscall.Errno = 1061 - ERROR_SERVICE_NOT_ACTIVE syscall.Errno = 1062 - ERROR_FAILED_SERVICE_CONTROLLER_CONNECT syscall.Errno = 1063 - ERROR_EXCEPTION_IN_SERVICE syscall.Errno = 1064 - ERROR_DATABASE_DOES_NOT_EXIST syscall.Errno = 1065 - ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 - ERROR_PROCESS_ABORTED syscall.Errno = 1067 - ERROR_SERVICE_DEPENDENCY_FAIL syscall.Errno = 1068 - ERROR_SERVICE_LOGON_FAILED syscall.Errno = 1069 - ERROR_SERVICE_START_HANG syscall.Errno = 1070 - ERROR_INVALID_SERVICE_LOCK syscall.Errno = 1071 - ERROR_SERVICE_MARKED_FOR_DELETE syscall.Errno = 1072 - ERROR_SERVICE_EXISTS syscall.Errno = 1073 - ERROR_ALREADY_RUNNING_LKG syscall.Errno = 1074 - ERROR_SERVICE_DEPENDENCY_DELETED syscall.Errno = 1075 - ERROR_BOOT_ALREADY_ACCEPTED syscall.Errno = 1076 - ERROR_SERVICE_NEVER_STARTED syscall.Errno = 1077 - ERROR_DUPLICATE_SERVICE_NAME syscall.Errno = 1078 - ERROR_DIFFERENT_SERVICE_ACCOUNT syscall.Errno = 1079 - ERROR_CANNOT_DETECT_DRIVER_FAILURE syscall.Errno = 1080 - ERROR_CANNOT_DETECT_PROCESS_ABORT syscall.Errno = 1081 - ERROR_NO_RECOVERY_PROGRAM syscall.Errno = 1082 - ERROR_SERVICE_NOT_IN_EXE syscall.Errno = 1083 - ERROR_NOT_SAFEBOOT_SERVICE syscall.Errno = 1084 - ERROR_END_OF_MEDIA syscall.Errno = 1100 - ERROR_FILEMARK_DETECTED syscall.Errno = 1101 - ERROR_BEGINNING_OF_MEDIA syscall.Errno = 1102 - ERROR_SETMARK_DETECTED syscall.Errno = 1103 - ERROR_NO_DATA_DETECTED syscall.Errno = 1104 - ERROR_PARTITION_FAILURE syscall.Errno = 1105 - ERROR_INVALID_BLOCK_LENGTH syscall.Errno = 1106 - ERROR_DEVICE_NOT_PARTITIONED syscall.Errno = 1107 - ERROR_UNABLE_TO_LOCK_MEDIA syscall.Errno = 1108 - ERROR_UNABLE_TO_UNLOAD_MEDIA syscall.Errno = 1109 - ERROR_MEDIA_CHANGED syscall.Errno = 1110 - ERROR_BUS_RESET syscall.Errno = 1111 - ERROR_NO_MEDIA_IN_DRIVE syscall.Errno = 1112 - ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113 - ERROR_DLL_INIT_FAILED syscall.Errno = 1114 - ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 1115 - ERROR_NO_SHUTDOWN_IN_PROGRESS syscall.Errno = 1116 - ERROR_IO_DEVICE syscall.Errno = 1117 - ERROR_SERIAL_NO_DEVICE syscall.Errno = 1118 - ERROR_IRQ_BUSY syscall.Errno = 1119 - ERROR_MORE_WRITES syscall.Errno = 1120 - ERROR_COUNTER_TIMEOUT syscall.Errno = 1121 - ERROR_FLOPPY_ID_MARK_NOT_FOUND syscall.Errno = 1122 - ERROR_FLOPPY_WRONG_CYLINDER syscall.Errno = 1123 - ERROR_FLOPPY_UNKNOWN_ERROR syscall.Errno = 1124 - ERROR_FLOPPY_BAD_REGISTERS syscall.Errno = 1125 - ERROR_DISK_RECALIBRATE_FAILED syscall.Errno = 1126 - ERROR_DISK_OPERATION_FAILED syscall.Errno = 1127 - ERROR_DISK_RESET_FAILED syscall.Errno = 1128 - ERROR_EOM_OVERFLOW syscall.Errno = 1129 - ERROR_NOT_ENOUGH_SERVER_MEMORY syscall.Errno = 1130 - ERROR_POSSIBLE_DEADLOCK syscall.Errno = 1131 - ERROR_MAPPED_ALIGNMENT syscall.Errno = 1132 - ERROR_SET_POWER_STATE_VETOED syscall.Errno = 1140 - ERROR_SET_POWER_STATE_FAILED syscall.Errno = 1141 - ERROR_TOO_MANY_LINKS syscall.Errno = 1142 - ERROR_OLD_WIN_VERSION syscall.Errno = 1150 - ERROR_APP_WRONG_OS syscall.Errno = 1151 - ERROR_SINGLE_INSTANCE_APP syscall.Errno = 1152 - ERROR_RMODE_APP syscall.Errno = 1153 - ERROR_INVALID_DLL syscall.Errno = 1154 - ERROR_NO_ASSOCIATION syscall.Errno = 1155 - ERROR_DDE_FAIL syscall.Errno = 1156 - ERROR_DLL_NOT_FOUND syscall.Errno = 1157 - ERROR_NO_MORE_USER_HANDLES syscall.Errno = 1158 - ERROR_MESSAGE_SYNC_ONLY syscall.Errno = 1159 - ERROR_SOURCE_ELEMENT_EMPTY syscall.Errno = 1160 - ERROR_DESTINATION_ELEMENT_FULL syscall.Errno = 1161 - ERROR_ILLEGAL_ELEMENT_ADDRESS syscall.Errno = 1162 - ERROR_MAGAZINE_NOT_PRESENT syscall.Errno = 1163 - ERROR_DEVICE_REINITIALIZATION_NEEDED syscall.Errno = 1164 - ERROR_DEVICE_REQUIRES_CLEANING syscall.Errno = 1165 - ERROR_DEVICE_DOOR_OPEN syscall.Errno = 1166 - ERROR_DEVICE_NOT_CONNECTED syscall.Errno = 1167 - ERROR_NOT_FOUND syscall.Errno = 1168 - ERROR_NO_MATCH syscall.Errno = 1169 - ERROR_SET_NOT_FOUND syscall.Errno = 1170 - ERROR_POINT_NOT_FOUND syscall.Errno = 1171 - ERROR_NO_TRACKING_SERVICE syscall.Errno = 1172 - ERROR_NO_VOLUME_ID syscall.Errno = 1173 - ERROR_UNABLE_TO_REMOVE_REPLACED syscall.Errno = 1175 - ERROR_UNABLE_TO_MOVE_REPLACEMENT syscall.Errno = 1176 - ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 syscall.Errno = 1177 - ERROR_JOURNAL_DELETE_IN_PROGRESS syscall.Errno = 1178 - ERROR_JOURNAL_NOT_ACTIVE syscall.Errno = 1179 - ERROR_POTENTIAL_FILE_FOUND syscall.Errno = 1180 - ERROR_JOURNAL_ENTRY_DELETED syscall.Errno = 1181 - ERROR_SHUTDOWN_IS_SCHEDULED syscall.Errno = 1190 - ERROR_SHUTDOWN_USERS_LOGGED_ON syscall.Errno = 1191 - ERROR_BAD_DEVICE syscall.Errno = 1200 - ERROR_CONNECTION_UNAVAIL syscall.Errno = 1201 - ERROR_DEVICE_ALREADY_REMEMBERED syscall.Errno = 1202 - ERROR_NO_NET_OR_BAD_PATH syscall.Errno = 1203 - ERROR_BAD_PROVIDER syscall.Errno = 1204 - ERROR_CANNOT_OPEN_PROFILE syscall.Errno = 1205 - ERROR_BAD_PROFILE syscall.Errno = 1206 - ERROR_NOT_CONTAINER syscall.Errno = 1207 - ERROR_EXTENDED_ERROR syscall.Errno = 1208 - ERROR_INVALID_GROUPNAME syscall.Errno = 1209 - ERROR_INVALID_COMPUTERNAME syscall.Errno = 1210 - ERROR_INVALID_EVENTNAME syscall.Errno = 1211 - ERROR_INVALID_DOMAINNAME syscall.Errno = 1212 - ERROR_INVALID_SERVICENAME syscall.Errno = 1213 - ERROR_INVALID_NETNAME syscall.Errno = 1214 - ERROR_INVALID_SHARENAME syscall.Errno = 1215 - ERROR_INVALID_PASSWORDNAME syscall.Errno = 1216 - ERROR_INVALID_MESSAGENAME syscall.Errno = 1217 - ERROR_INVALID_MESSAGEDEST syscall.Errno = 1218 - ERROR_SESSION_CREDENTIAL_CONFLICT syscall.Errno = 1219 - ERROR_REMOTE_SESSION_LIMIT_EXCEEDED syscall.Errno = 1220 - ERROR_DUP_DOMAINNAME syscall.Errno = 1221 - ERROR_NO_NETWORK syscall.Errno = 1222 - ERROR_CANCELLED syscall.Errno = 1223 - ERROR_USER_MAPPED_FILE syscall.Errno = 1224 - ERROR_CONNECTION_REFUSED syscall.Errno = 1225 - ERROR_GRACEFUL_DISCONNECT syscall.Errno = 1226 - ERROR_ADDRESS_ALREADY_ASSOCIATED syscall.Errno = 1227 - ERROR_ADDRESS_NOT_ASSOCIATED syscall.Errno = 1228 - ERROR_CONNECTION_INVALID syscall.Errno = 1229 - ERROR_CONNECTION_ACTIVE syscall.Errno = 1230 - ERROR_NETWORK_UNREACHABLE syscall.Errno = 1231 - ERROR_HOST_UNREACHABLE syscall.Errno = 1232 - ERROR_PROTOCOL_UNREACHABLE syscall.Errno = 1233 - ERROR_PORT_UNREACHABLE syscall.Errno = 1234 - ERROR_REQUEST_ABORTED syscall.Errno = 1235 - ERROR_CONNECTION_ABORTED syscall.Errno = 1236 - ERROR_RETRY syscall.Errno = 1237 - ERROR_CONNECTION_COUNT_LIMIT syscall.Errno = 1238 - ERROR_LOGIN_TIME_RESTRICTION syscall.Errno = 1239 - ERROR_LOGIN_WKSTA_RESTRICTION syscall.Errno = 1240 - ERROR_INCORRECT_ADDRESS syscall.Errno = 1241 - ERROR_ALREADY_REGISTERED syscall.Errno = 1242 - ERROR_SERVICE_NOT_FOUND syscall.Errno = 1243 - ERROR_NOT_AUTHENTICATED syscall.Errno = 1244 - ERROR_NOT_LOGGED_ON syscall.Errno = 1245 - ERROR_CONTINUE syscall.Errno = 1246 - ERROR_ALREADY_INITIALIZED syscall.Errno = 1247 - ERROR_NO_MORE_DEVICES syscall.Errno = 1248 - ERROR_NO_SUCH_SITE syscall.Errno = 1249 - ERROR_DOMAIN_CONTROLLER_EXISTS syscall.Errno = 1250 - ERROR_ONLY_IF_CONNECTED syscall.Errno = 1251 - ERROR_OVERRIDE_NOCHANGES syscall.Errno = 1252 - ERROR_BAD_USER_PROFILE syscall.Errno = 1253 - ERROR_NOT_SUPPORTED_ON_SBS syscall.Errno = 1254 - ERROR_SERVER_SHUTDOWN_IN_PROGRESS syscall.Errno = 1255 - ERROR_HOST_DOWN syscall.Errno = 1256 - ERROR_NON_ACCOUNT_SID syscall.Errno = 1257 - ERROR_NON_DOMAIN_SID syscall.Errno = 1258 - ERROR_APPHELP_BLOCK syscall.Errno = 1259 - ERROR_ACCESS_DISABLED_BY_POLICY syscall.Errno = 1260 - ERROR_REG_NAT_CONSUMPTION syscall.Errno = 1261 - ERROR_CSCSHARE_OFFLINE syscall.Errno = 1262 - ERROR_PKINIT_FAILURE syscall.Errno = 1263 - ERROR_SMARTCARD_SUBSYSTEM_FAILURE syscall.Errno = 1264 - ERROR_DOWNGRADE_DETECTED syscall.Errno = 1265 - ERROR_MACHINE_LOCKED syscall.Errno = 1271 - ERROR_SMB_GUEST_LOGON_BLOCKED syscall.Errno = 1272 - ERROR_CALLBACK_SUPPLIED_INVALID_DATA syscall.Errno = 1273 - ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED syscall.Errno = 1274 - ERROR_DRIVER_BLOCKED syscall.Errno = 1275 - ERROR_INVALID_IMPORT_OF_NON_DLL syscall.Errno = 1276 - ERROR_ACCESS_DISABLED_WEBBLADE syscall.Errno = 1277 - ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER syscall.Errno = 1278 - ERROR_RECOVERY_FAILURE syscall.Errno = 1279 - ERROR_ALREADY_FIBER syscall.Errno = 1280 - ERROR_ALREADY_THREAD syscall.Errno = 1281 - ERROR_STACK_BUFFER_OVERRUN syscall.Errno = 1282 - ERROR_PARAMETER_QUOTA_EXCEEDED syscall.Errno = 1283 - ERROR_DEBUGGER_INACTIVE syscall.Errno = 1284 - ERROR_DELAY_LOAD_FAILED syscall.Errno = 1285 - ERROR_VDM_DISALLOWED syscall.Errno = 1286 - ERROR_UNIDENTIFIED_ERROR syscall.Errno = 1287 - ERROR_INVALID_CRUNTIME_PARAMETER syscall.Errno = 1288 - ERROR_BEYOND_VDL syscall.Errno = 1289 - ERROR_INCOMPATIBLE_SERVICE_SID_TYPE syscall.Errno = 1290 - ERROR_DRIVER_PROCESS_TERMINATED syscall.Errno = 1291 - ERROR_IMPLEMENTATION_LIMIT syscall.Errno = 1292 - ERROR_PROCESS_IS_PROTECTED syscall.Errno = 1293 - ERROR_SERVICE_NOTIFY_CLIENT_LAGGING syscall.Errno = 1294 - ERROR_DISK_QUOTA_EXCEEDED syscall.Errno = 1295 - ERROR_CONTENT_BLOCKED syscall.Errno = 1296 - ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE syscall.Errno = 1297 - ERROR_APP_HANG syscall.Errno = 1298 - ERROR_INVALID_LABEL syscall.Errno = 1299 - ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 - ERROR_SOME_NOT_MAPPED syscall.Errno = 1301 - ERROR_NO_QUOTAS_FOR_ACCOUNT syscall.Errno = 1302 - ERROR_LOCAL_USER_SESSION_KEY syscall.Errno = 1303 - ERROR_NULL_LM_PASSWORD syscall.Errno = 1304 - ERROR_UNKNOWN_REVISION syscall.Errno = 1305 - ERROR_REVISION_MISMATCH syscall.Errno = 1306 - ERROR_INVALID_OWNER syscall.Errno = 1307 - ERROR_INVALID_PRIMARY_GROUP syscall.Errno = 1308 - ERROR_NO_IMPERSONATION_TOKEN syscall.Errno = 1309 - ERROR_CANT_DISABLE_MANDATORY syscall.Errno = 1310 - ERROR_NO_LOGON_SERVERS syscall.Errno = 1311 - ERROR_NO_SUCH_LOGON_SESSION syscall.Errno = 1312 - ERROR_NO_SUCH_PRIVILEGE syscall.Errno = 1313 - ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 - ERROR_INVALID_ACCOUNT_NAME syscall.Errno = 1315 - ERROR_USER_EXISTS syscall.Errno = 1316 - ERROR_NO_SUCH_USER syscall.Errno = 1317 - ERROR_GROUP_EXISTS syscall.Errno = 1318 - ERROR_NO_SUCH_GROUP syscall.Errno = 1319 - ERROR_MEMBER_IN_GROUP syscall.Errno = 1320 - ERROR_MEMBER_NOT_IN_GROUP syscall.Errno = 1321 - ERROR_LAST_ADMIN syscall.Errno = 1322 - ERROR_WRONG_PASSWORD syscall.Errno = 1323 - ERROR_ILL_FORMED_PASSWORD syscall.Errno = 1324 - ERROR_PASSWORD_RESTRICTION syscall.Errno = 1325 - ERROR_LOGON_FAILURE syscall.Errno = 1326 - ERROR_ACCOUNT_RESTRICTION syscall.Errno = 1327 - ERROR_INVALID_LOGON_HOURS syscall.Errno = 1328 - ERROR_INVALID_WORKSTATION syscall.Errno = 1329 - ERROR_PASSWORD_EXPIRED syscall.Errno = 1330 - ERROR_ACCOUNT_DISABLED syscall.Errno = 1331 - ERROR_NONE_MAPPED syscall.Errno = 1332 - ERROR_TOO_MANY_LUIDS_REQUESTED syscall.Errno = 1333 - ERROR_LUIDS_EXHAUSTED syscall.Errno = 1334 - ERROR_INVALID_SUB_AUTHORITY syscall.Errno = 1335 - ERROR_INVALID_ACL syscall.Errno = 1336 - ERROR_INVALID_SID syscall.Errno = 1337 - ERROR_INVALID_SECURITY_DESCR syscall.Errno = 1338 - ERROR_BAD_INHERITANCE_ACL syscall.Errno = 1340 - ERROR_SERVER_DISABLED syscall.Errno = 1341 - ERROR_SERVER_NOT_DISABLED syscall.Errno = 1342 - ERROR_INVALID_ID_AUTHORITY syscall.Errno = 1343 - ERROR_ALLOTTED_SPACE_EXCEEDED syscall.Errno = 1344 - ERROR_INVALID_GROUP_ATTRIBUTES syscall.Errno = 1345 - ERROR_BAD_IMPERSONATION_LEVEL syscall.Errno = 1346 - ERROR_CANT_OPEN_ANONYMOUS syscall.Errno = 1347 - ERROR_BAD_VALIDATION_CLASS syscall.Errno = 1348 - ERROR_BAD_TOKEN_TYPE syscall.Errno = 1349 - ERROR_NO_SECURITY_ON_OBJECT syscall.Errno = 1350 - ERROR_CANT_ACCESS_DOMAIN_INFO syscall.Errno = 1351 - ERROR_INVALID_SERVER_STATE syscall.Errno = 1352 - ERROR_INVALID_DOMAIN_STATE syscall.Errno = 1353 - ERROR_INVALID_DOMAIN_ROLE syscall.Errno = 1354 - ERROR_NO_SUCH_DOMAIN syscall.Errno = 1355 - ERROR_DOMAIN_EXISTS syscall.Errno = 1356 - ERROR_DOMAIN_LIMIT_EXCEEDED syscall.Errno = 1357 - ERROR_INTERNAL_DB_CORRUPTION syscall.Errno = 1358 - ERROR_INTERNAL_ERROR syscall.Errno = 1359 - ERROR_GENERIC_NOT_MAPPED syscall.Errno = 1360 - ERROR_BAD_DESCRIPTOR_FORMAT syscall.Errno = 1361 - ERROR_NOT_LOGON_PROCESS syscall.Errno = 1362 - ERROR_LOGON_SESSION_EXISTS syscall.Errno = 1363 - ERROR_NO_SUCH_PACKAGE syscall.Errno = 1364 - ERROR_BAD_LOGON_SESSION_STATE syscall.Errno = 1365 - ERROR_LOGON_SESSION_COLLISION syscall.Errno = 1366 - ERROR_INVALID_LOGON_TYPE syscall.Errno = 1367 - ERROR_CANNOT_IMPERSONATE syscall.Errno = 1368 - ERROR_RXACT_INVALID_STATE syscall.Errno = 1369 - ERROR_RXACT_COMMIT_FAILURE syscall.Errno = 1370 - ERROR_SPECIAL_ACCOUNT syscall.Errno = 1371 - ERROR_SPECIAL_GROUP syscall.Errno = 1372 - ERROR_SPECIAL_USER syscall.Errno = 1373 - ERROR_MEMBERS_PRIMARY_GROUP syscall.Errno = 1374 - ERROR_TOKEN_ALREADY_IN_USE syscall.Errno = 1375 - ERROR_NO_SUCH_ALIAS syscall.Errno = 1376 - ERROR_MEMBER_NOT_IN_ALIAS syscall.Errno = 1377 - ERROR_MEMBER_IN_ALIAS syscall.Errno = 1378 - ERROR_ALIAS_EXISTS syscall.Errno = 1379 - ERROR_LOGON_NOT_GRANTED syscall.Errno = 1380 - ERROR_TOO_MANY_SECRETS syscall.Errno = 1381 - ERROR_SECRET_TOO_LONG syscall.Errno = 1382 - ERROR_INTERNAL_DB_ERROR syscall.Errno = 1383 - ERROR_TOO_MANY_CONTEXT_IDS syscall.Errno = 1384 - ERROR_LOGON_TYPE_NOT_GRANTED syscall.Errno = 1385 - ERROR_NT_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1386 - ERROR_NO_SUCH_MEMBER syscall.Errno = 1387 - ERROR_INVALID_MEMBER syscall.Errno = 1388 - ERROR_TOO_MANY_SIDS syscall.Errno = 1389 - ERROR_LM_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1390 - ERROR_NO_INHERITANCE syscall.Errno = 1391 - ERROR_FILE_CORRUPT syscall.Errno = 1392 - ERROR_DISK_CORRUPT syscall.Errno = 1393 - ERROR_NO_USER_SESSION_KEY syscall.Errno = 1394 - ERROR_LICENSE_QUOTA_EXCEEDED syscall.Errno = 1395 - ERROR_WRONG_TARGET_NAME syscall.Errno = 1396 - ERROR_MUTUAL_AUTH_FAILED syscall.Errno = 1397 - ERROR_TIME_SKEW syscall.Errno = 1398 - ERROR_CURRENT_DOMAIN_NOT_ALLOWED syscall.Errno = 1399 - ERROR_INVALID_WINDOW_HANDLE syscall.Errno = 1400 - ERROR_INVALID_MENU_HANDLE syscall.Errno = 1401 - ERROR_INVALID_CURSOR_HANDLE syscall.Errno = 1402 - ERROR_INVALID_ACCEL_HANDLE syscall.Errno = 1403 - ERROR_INVALID_HOOK_HANDLE syscall.Errno = 1404 - ERROR_INVALID_DWP_HANDLE syscall.Errno = 1405 - ERROR_TLW_WITH_WSCHILD syscall.Errno = 1406 - ERROR_CANNOT_FIND_WND_CLASS syscall.Errno = 1407 - ERROR_WINDOW_OF_OTHER_THREAD syscall.Errno = 1408 - ERROR_HOTKEY_ALREADY_REGISTERED syscall.Errno = 1409 - ERROR_CLASS_ALREADY_EXISTS syscall.Errno = 1410 - ERROR_CLASS_DOES_NOT_EXIST syscall.Errno = 1411 - ERROR_CLASS_HAS_WINDOWS syscall.Errno = 1412 - ERROR_INVALID_INDEX syscall.Errno = 1413 - ERROR_INVALID_ICON_HANDLE syscall.Errno = 1414 - ERROR_PRIVATE_DIALOG_INDEX syscall.Errno = 1415 - ERROR_LISTBOX_ID_NOT_FOUND syscall.Errno = 1416 - ERROR_NO_WILDCARD_CHARACTERS syscall.Errno = 1417 - ERROR_CLIPBOARD_NOT_OPEN syscall.Errno = 1418 - ERROR_HOTKEY_NOT_REGISTERED syscall.Errno = 1419 - ERROR_WINDOW_NOT_DIALOG syscall.Errno = 1420 - ERROR_CONTROL_ID_NOT_FOUND syscall.Errno = 1421 - ERROR_INVALID_COMBOBOX_MESSAGE syscall.Errno = 1422 - ERROR_WINDOW_NOT_COMBOBOX syscall.Errno = 1423 - ERROR_INVALID_EDIT_HEIGHT syscall.Errno = 1424 - ERROR_DC_NOT_FOUND syscall.Errno = 1425 - ERROR_INVALID_HOOK_FILTER syscall.Errno = 1426 - ERROR_INVALID_FILTER_PROC syscall.Errno = 1427 - ERROR_HOOK_NEEDS_HMOD syscall.Errno = 1428 - ERROR_GLOBAL_ONLY_HOOK syscall.Errno = 1429 - ERROR_JOURNAL_HOOK_SET syscall.Errno = 1430 - ERROR_HOOK_NOT_INSTALLED syscall.Errno = 1431 - ERROR_INVALID_LB_MESSAGE syscall.Errno = 1432 - ERROR_SETCOUNT_ON_BAD_LB syscall.Errno = 1433 - ERROR_LB_WITHOUT_TABSTOPS syscall.Errno = 1434 - ERROR_DESTROY_OBJECT_OF_OTHER_THREAD syscall.Errno = 1435 - ERROR_CHILD_WINDOW_MENU syscall.Errno = 1436 - ERROR_NO_SYSTEM_MENU syscall.Errno = 1437 - ERROR_INVALID_MSGBOX_STYLE syscall.Errno = 1438 - ERROR_INVALID_SPI_VALUE syscall.Errno = 1439 - ERROR_SCREEN_ALREADY_LOCKED syscall.Errno = 1440 - ERROR_HWNDS_HAVE_DIFF_PARENT syscall.Errno = 1441 - ERROR_NOT_CHILD_WINDOW syscall.Errno = 1442 - ERROR_INVALID_GW_COMMAND syscall.Errno = 1443 - ERROR_INVALID_THREAD_ID syscall.Errno = 1444 - ERROR_NON_MDICHILD_WINDOW syscall.Errno = 1445 - ERROR_POPUP_ALREADY_ACTIVE syscall.Errno = 1446 - ERROR_NO_SCROLLBARS syscall.Errno = 1447 - ERROR_INVALID_SCROLLBAR_RANGE syscall.Errno = 1448 - ERROR_INVALID_SHOWWIN_COMMAND syscall.Errno = 1449 - ERROR_NO_SYSTEM_RESOURCES syscall.Errno = 1450 - ERROR_NONPAGED_SYSTEM_RESOURCES syscall.Errno = 1451 - ERROR_PAGED_SYSTEM_RESOURCES syscall.Errno = 1452 - ERROR_WORKING_SET_QUOTA syscall.Errno = 1453 - ERROR_PAGEFILE_QUOTA syscall.Errno = 1454 - ERROR_COMMITMENT_LIMIT syscall.Errno = 1455 - ERROR_MENU_ITEM_NOT_FOUND syscall.Errno = 1456 - ERROR_INVALID_KEYBOARD_HANDLE syscall.Errno = 1457 - ERROR_HOOK_TYPE_NOT_ALLOWED syscall.Errno = 1458 - ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION syscall.Errno = 1459 - ERROR_TIMEOUT syscall.Errno = 1460 - ERROR_INVALID_MONITOR_HANDLE syscall.Errno = 1461 - ERROR_INCORRECT_SIZE syscall.Errno = 1462 - ERROR_SYMLINK_CLASS_DISABLED syscall.Errno = 1463 - ERROR_SYMLINK_NOT_SUPPORTED syscall.Errno = 1464 - ERROR_XML_PARSE_ERROR syscall.Errno = 1465 - ERROR_XMLDSIG_ERROR syscall.Errno = 1466 - ERROR_RESTART_APPLICATION syscall.Errno = 1467 - ERROR_WRONG_COMPARTMENT syscall.Errno = 1468 - ERROR_AUTHIP_FAILURE syscall.Errno = 1469 - ERROR_NO_NVRAM_RESOURCES syscall.Errno = 1470 - ERROR_NOT_GUI_PROCESS syscall.Errno = 1471 - ERROR_EVENTLOG_FILE_CORRUPT syscall.Errno = 1500 - ERROR_EVENTLOG_CANT_START syscall.Errno = 1501 - ERROR_LOG_FILE_FULL syscall.Errno = 1502 - ERROR_EVENTLOG_FILE_CHANGED syscall.Errno = 1503 - ERROR_CONTAINER_ASSIGNED syscall.Errno = 1504 - ERROR_JOB_NO_CONTAINER syscall.Errno = 1505 - ERROR_INVALID_TASK_NAME syscall.Errno = 1550 - ERROR_INVALID_TASK_INDEX syscall.Errno = 1551 - ERROR_THREAD_ALREADY_IN_TASK syscall.Errno = 1552 - ERROR_INSTALL_SERVICE_FAILURE syscall.Errno = 1601 - ERROR_INSTALL_USEREXIT syscall.Errno = 1602 - ERROR_INSTALL_FAILURE syscall.Errno = 1603 - ERROR_INSTALL_SUSPEND syscall.Errno = 1604 - ERROR_UNKNOWN_PRODUCT syscall.Errno = 1605 - ERROR_UNKNOWN_FEATURE syscall.Errno = 1606 - ERROR_UNKNOWN_COMPONENT syscall.Errno = 1607 - ERROR_UNKNOWN_PROPERTY syscall.Errno = 1608 - ERROR_INVALID_HANDLE_STATE syscall.Errno = 1609 - ERROR_BAD_CONFIGURATION syscall.Errno = 1610 - ERROR_INDEX_ABSENT syscall.Errno = 1611 - ERROR_INSTALL_SOURCE_ABSENT syscall.Errno = 1612 - ERROR_INSTALL_PACKAGE_VERSION syscall.Errno = 1613 - ERROR_PRODUCT_UNINSTALLED syscall.Errno = 1614 - ERROR_BAD_QUERY_SYNTAX syscall.Errno = 1615 - ERROR_INVALID_FIELD syscall.Errno = 1616 - ERROR_DEVICE_REMOVED syscall.Errno = 1617 - ERROR_INSTALL_ALREADY_RUNNING syscall.Errno = 1618 - ERROR_INSTALL_PACKAGE_OPEN_FAILED syscall.Errno = 1619 - ERROR_INSTALL_PACKAGE_INVALID syscall.Errno = 1620 - ERROR_INSTALL_UI_FAILURE syscall.Errno = 1621 - ERROR_INSTALL_LOG_FAILURE syscall.Errno = 1622 - ERROR_INSTALL_LANGUAGE_UNSUPPORTED syscall.Errno = 1623 - ERROR_INSTALL_TRANSFORM_FAILURE syscall.Errno = 1624 - ERROR_INSTALL_PACKAGE_REJECTED syscall.Errno = 1625 - ERROR_FUNCTION_NOT_CALLED syscall.Errno = 1626 - ERROR_FUNCTION_FAILED syscall.Errno = 1627 - ERROR_INVALID_TABLE syscall.Errno = 1628 - ERROR_DATATYPE_MISMATCH syscall.Errno = 1629 - ERROR_UNSUPPORTED_TYPE syscall.Errno = 1630 - ERROR_CREATE_FAILED syscall.Errno = 1631 - ERROR_INSTALL_TEMP_UNWRITABLE syscall.Errno = 1632 - ERROR_INSTALL_PLATFORM_UNSUPPORTED syscall.Errno = 1633 - ERROR_INSTALL_NOTUSED syscall.Errno = 1634 - ERROR_PATCH_PACKAGE_OPEN_FAILED syscall.Errno = 1635 - ERROR_PATCH_PACKAGE_INVALID syscall.Errno = 1636 - ERROR_PATCH_PACKAGE_UNSUPPORTED syscall.Errno = 1637 - ERROR_PRODUCT_VERSION syscall.Errno = 1638 - ERROR_INVALID_COMMAND_LINE syscall.Errno = 1639 - ERROR_INSTALL_REMOTE_DISALLOWED syscall.Errno = 1640 - ERROR_SUCCESS_REBOOT_INITIATED syscall.Errno = 1641 - ERROR_PATCH_TARGET_NOT_FOUND syscall.Errno = 1642 - ERROR_PATCH_PACKAGE_REJECTED syscall.Errno = 1643 - ERROR_INSTALL_TRANSFORM_REJECTED syscall.Errno = 1644 - ERROR_INSTALL_REMOTE_PROHIBITED syscall.Errno = 1645 - ERROR_PATCH_REMOVAL_UNSUPPORTED syscall.Errno = 1646 - ERROR_UNKNOWN_PATCH syscall.Errno = 1647 - ERROR_PATCH_NO_SEQUENCE syscall.Errno = 1648 - ERROR_PATCH_REMOVAL_DISALLOWED syscall.Errno = 1649 - ERROR_INVALID_PATCH_XML syscall.Errno = 1650 - ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT syscall.Errno = 1651 - ERROR_INSTALL_SERVICE_SAFEBOOT syscall.Errno = 1652 - ERROR_FAIL_FAST_EXCEPTION syscall.Errno = 1653 - ERROR_INSTALL_REJECTED syscall.Errno = 1654 - ERROR_DYNAMIC_CODE_BLOCKED syscall.Errno = 1655 - ERROR_NOT_SAME_OBJECT syscall.Errno = 1656 - ERROR_STRICT_CFG_VIOLATION syscall.Errno = 1657 - ERROR_SET_CONTEXT_DENIED syscall.Errno = 1660 - ERROR_CROSS_PARTITION_VIOLATION syscall.Errno = 1661 - RPC_S_INVALID_STRING_BINDING syscall.Errno = 1700 - RPC_S_WRONG_KIND_OF_BINDING syscall.Errno = 1701 - RPC_S_INVALID_BINDING syscall.Errno = 1702 - RPC_S_PROTSEQ_NOT_SUPPORTED syscall.Errno = 1703 - RPC_S_INVALID_RPC_PROTSEQ syscall.Errno = 1704 - RPC_S_INVALID_STRING_UUID syscall.Errno = 1705 - RPC_S_INVALID_ENDPOINT_FORMAT syscall.Errno = 1706 - RPC_S_INVALID_NET_ADDR syscall.Errno = 1707 - RPC_S_NO_ENDPOINT_FOUND syscall.Errno = 1708 - RPC_S_INVALID_TIMEOUT syscall.Errno = 1709 - RPC_S_OBJECT_NOT_FOUND syscall.Errno = 1710 - RPC_S_ALREADY_REGISTERED syscall.Errno = 1711 - RPC_S_TYPE_ALREADY_REGISTERED syscall.Errno = 1712 - RPC_S_ALREADY_LISTENING syscall.Errno = 1713 - RPC_S_NO_PROTSEQS_REGISTERED syscall.Errno = 1714 - RPC_S_NOT_LISTENING syscall.Errno = 1715 - RPC_S_UNKNOWN_MGR_TYPE syscall.Errno = 1716 - RPC_S_UNKNOWN_IF syscall.Errno = 1717 - RPC_S_NO_BINDINGS syscall.Errno = 1718 - RPC_S_NO_PROTSEQS syscall.Errno = 1719 - RPC_S_CANT_CREATE_ENDPOINT syscall.Errno = 1720 - RPC_S_OUT_OF_RESOURCES syscall.Errno = 1721 - RPC_S_SERVER_UNAVAILABLE syscall.Errno = 1722 - RPC_S_SERVER_TOO_BUSY syscall.Errno = 1723 - RPC_S_INVALID_NETWORK_OPTIONS syscall.Errno = 1724 - RPC_S_NO_CALL_ACTIVE syscall.Errno = 1725 - RPC_S_CALL_FAILED syscall.Errno = 1726 - RPC_S_CALL_FAILED_DNE syscall.Errno = 1727 - RPC_S_PROTOCOL_ERROR syscall.Errno = 1728 - RPC_S_PROXY_ACCESS_DENIED syscall.Errno = 1729 - RPC_S_UNSUPPORTED_TRANS_SYN syscall.Errno = 1730 - RPC_S_UNSUPPORTED_TYPE syscall.Errno = 1732 - RPC_S_INVALID_TAG syscall.Errno = 1733 - RPC_S_INVALID_BOUND syscall.Errno = 1734 - RPC_S_NO_ENTRY_NAME syscall.Errno = 1735 - RPC_S_INVALID_NAME_SYNTAX syscall.Errno = 1736 - RPC_S_UNSUPPORTED_NAME_SYNTAX syscall.Errno = 1737 - RPC_S_UUID_NO_ADDRESS syscall.Errno = 1739 - RPC_S_DUPLICATE_ENDPOINT syscall.Errno = 1740 - RPC_S_UNKNOWN_AUTHN_TYPE syscall.Errno = 1741 - RPC_S_MAX_CALLS_TOO_SMALL syscall.Errno = 1742 - RPC_S_STRING_TOO_LONG syscall.Errno = 1743 - RPC_S_PROTSEQ_NOT_FOUND syscall.Errno = 1744 - RPC_S_PROCNUM_OUT_OF_RANGE syscall.Errno = 1745 - RPC_S_BINDING_HAS_NO_AUTH syscall.Errno = 1746 - RPC_S_UNKNOWN_AUTHN_SERVICE syscall.Errno = 1747 - RPC_S_UNKNOWN_AUTHN_LEVEL syscall.Errno = 1748 - RPC_S_INVALID_AUTH_IDENTITY syscall.Errno = 1749 - RPC_S_UNKNOWN_AUTHZ_SERVICE syscall.Errno = 1750 - EPT_S_INVALID_ENTRY syscall.Errno = 1751 - EPT_S_CANT_PERFORM_OP syscall.Errno = 1752 - EPT_S_NOT_REGISTERED syscall.Errno = 1753 - RPC_S_NOTHING_TO_EXPORT syscall.Errno = 1754 - RPC_S_INCOMPLETE_NAME syscall.Errno = 1755 - RPC_S_INVALID_VERS_OPTION syscall.Errno = 1756 - RPC_S_NO_MORE_MEMBERS syscall.Errno = 1757 - RPC_S_NOT_ALL_OBJS_UNEXPORTED syscall.Errno = 1758 - RPC_S_INTERFACE_NOT_FOUND syscall.Errno = 1759 - RPC_S_ENTRY_ALREADY_EXISTS syscall.Errno = 1760 - RPC_S_ENTRY_NOT_FOUND syscall.Errno = 1761 - RPC_S_NAME_SERVICE_UNAVAILABLE syscall.Errno = 1762 - RPC_S_INVALID_NAF_ID syscall.Errno = 1763 - RPC_S_CANNOT_SUPPORT syscall.Errno = 1764 - RPC_S_NO_CONTEXT_AVAILABLE syscall.Errno = 1765 - RPC_S_INTERNAL_ERROR syscall.Errno = 1766 - RPC_S_ZERO_DIVIDE syscall.Errno = 1767 - RPC_S_ADDRESS_ERROR syscall.Errno = 1768 - RPC_S_FP_DIV_ZERO syscall.Errno = 1769 - RPC_S_FP_UNDERFLOW syscall.Errno = 1770 - RPC_S_FP_OVERFLOW syscall.Errno = 1771 - RPC_X_NO_MORE_ENTRIES syscall.Errno = 1772 - RPC_X_SS_CHAR_TRANS_OPEN_FAIL syscall.Errno = 1773 - RPC_X_SS_CHAR_TRANS_SHORT_FILE syscall.Errno = 1774 - RPC_X_SS_IN_NULL_CONTEXT syscall.Errno = 1775 - RPC_X_SS_CONTEXT_DAMAGED syscall.Errno = 1777 - RPC_X_SS_HANDLES_MISMATCH syscall.Errno = 1778 - RPC_X_SS_CANNOT_GET_CALL_HANDLE syscall.Errno = 1779 - RPC_X_NULL_REF_POINTER syscall.Errno = 1780 - RPC_X_ENUM_VALUE_OUT_OF_RANGE syscall.Errno = 1781 - RPC_X_BYTE_COUNT_TOO_SMALL syscall.Errno = 1782 - RPC_X_BAD_STUB_DATA syscall.Errno = 1783 - ERROR_INVALID_USER_BUFFER syscall.Errno = 1784 - ERROR_UNRECOGNIZED_MEDIA syscall.Errno = 1785 - ERROR_NO_TRUST_LSA_SECRET syscall.Errno = 1786 - ERROR_NO_TRUST_SAM_ACCOUNT syscall.Errno = 1787 - ERROR_TRUSTED_DOMAIN_FAILURE syscall.Errno = 1788 - ERROR_TRUSTED_RELATIONSHIP_FAILURE syscall.Errno = 1789 - ERROR_TRUST_FAILURE syscall.Errno = 1790 - RPC_S_CALL_IN_PROGRESS syscall.Errno = 1791 - ERROR_NETLOGON_NOT_STARTED syscall.Errno = 1792 - ERROR_ACCOUNT_EXPIRED syscall.Errno = 1793 - ERROR_REDIRECTOR_HAS_OPEN_HANDLES syscall.Errno = 1794 - ERROR_PRINTER_DRIVER_ALREADY_INSTALLED syscall.Errno = 1795 - ERROR_UNKNOWN_PORT syscall.Errno = 1796 - ERROR_UNKNOWN_PRINTER_DRIVER syscall.Errno = 1797 - ERROR_UNKNOWN_PRINTPROCESSOR syscall.Errno = 1798 - ERROR_INVALID_SEPARATOR_FILE syscall.Errno = 1799 - ERROR_INVALID_PRIORITY syscall.Errno = 1800 - ERROR_INVALID_PRINTER_NAME syscall.Errno = 1801 - ERROR_PRINTER_ALREADY_EXISTS syscall.Errno = 1802 - ERROR_INVALID_PRINTER_COMMAND syscall.Errno = 1803 - ERROR_INVALID_DATATYPE syscall.Errno = 1804 - ERROR_INVALID_ENVIRONMENT syscall.Errno = 1805 - RPC_S_NO_MORE_BINDINGS syscall.Errno = 1806 - ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT syscall.Errno = 1807 - ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT syscall.Errno = 1808 - ERROR_NOLOGON_SERVER_TRUST_ACCOUNT syscall.Errno = 1809 - ERROR_DOMAIN_TRUST_INCONSISTENT syscall.Errno = 1810 - ERROR_SERVER_HAS_OPEN_HANDLES syscall.Errno = 1811 - ERROR_RESOURCE_DATA_NOT_FOUND syscall.Errno = 1812 - ERROR_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 1813 - ERROR_RESOURCE_NAME_NOT_FOUND syscall.Errno = 1814 - ERROR_RESOURCE_LANG_NOT_FOUND syscall.Errno = 1815 - ERROR_NOT_ENOUGH_QUOTA syscall.Errno = 1816 - RPC_S_NO_INTERFACES syscall.Errno = 1817 - RPC_S_CALL_CANCELLED syscall.Errno = 1818 - RPC_S_BINDING_INCOMPLETE syscall.Errno = 1819 - RPC_S_COMM_FAILURE syscall.Errno = 1820 - RPC_S_UNSUPPORTED_AUTHN_LEVEL syscall.Errno = 1821 - RPC_S_NO_PRINC_NAME syscall.Errno = 1822 - RPC_S_NOT_RPC_ERROR syscall.Errno = 1823 - RPC_S_UUID_LOCAL_ONLY syscall.Errno = 1824 - RPC_S_SEC_PKG_ERROR syscall.Errno = 1825 - RPC_S_NOT_CANCELLED syscall.Errno = 1826 - RPC_X_INVALID_ES_ACTION syscall.Errno = 1827 - RPC_X_WRONG_ES_VERSION syscall.Errno = 1828 - RPC_X_WRONG_STUB_VERSION syscall.Errno = 1829 - RPC_X_INVALID_PIPE_OBJECT syscall.Errno = 1830 - RPC_X_WRONG_PIPE_ORDER syscall.Errno = 1831 - RPC_X_WRONG_PIPE_VERSION syscall.Errno = 1832 - RPC_S_COOKIE_AUTH_FAILED syscall.Errno = 1833 - RPC_S_DO_NOT_DISTURB syscall.Errno = 1834 - RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED syscall.Errno = 1835 - RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH syscall.Errno = 1836 - RPC_S_GROUP_MEMBER_NOT_FOUND syscall.Errno = 1898 - EPT_S_CANT_CREATE syscall.Errno = 1899 - RPC_S_INVALID_OBJECT syscall.Errno = 1900 - ERROR_INVALID_TIME syscall.Errno = 1901 - ERROR_INVALID_FORM_NAME syscall.Errno = 1902 - ERROR_INVALID_FORM_SIZE syscall.Errno = 1903 - ERROR_ALREADY_WAITING syscall.Errno = 1904 - ERROR_PRINTER_DELETED syscall.Errno = 1905 - ERROR_INVALID_PRINTER_STATE syscall.Errno = 1906 - ERROR_PASSWORD_MUST_CHANGE syscall.Errno = 1907 - ERROR_DOMAIN_CONTROLLER_NOT_FOUND syscall.Errno = 1908 - ERROR_ACCOUNT_LOCKED_OUT syscall.Errno = 1909 - OR_INVALID_OXID syscall.Errno = 1910 - OR_INVALID_OID syscall.Errno = 1911 - OR_INVALID_SET syscall.Errno = 1912 - RPC_S_SEND_INCOMPLETE syscall.Errno = 1913 - RPC_S_INVALID_ASYNC_HANDLE syscall.Errno = 1914 - RPC_S_INVALID_ASYNC_CALL syscall.Errno = 1915 - RPC_X_PIPE_CLOSED syscall.Errno = 1916 - RPC_X_PIPE_DISCIPLINE_ERROR syscall.Errno = 1917 - RPC_X_PIPE_EMPTY syscall.Errno = 1918 - ERROR_NO_SITENAME syscall.Errno = 1919 - ERROR_CANT_ACCESS_FILE syscall.Errno = 1920 - ERROR_CANT_RESOLVE_FILENAME syscall.Errno = 1921 - RPC_S_ENTRY_TYPE_MISMATCH syscall.Errno = 1922 - RPC_S_NOT_ALL_OBJS_EXPORTED syscall.Errno = 1923 - RPC_S_INTERFACE_NOT_EXPORTED syscall.Errno = 1924 - RPC_S_PROFILE_NOT_ADDED syscall.Errno = 1925 - RPC_S_PRF_ELT_NOT_ADDED syscall.Errno = 1926 - RPC_S_PRF_ELT_NOT_REMOVED syscall.Errno = 1927 - RPC_S_GRP_ELT_NOT_ADDED syscall.Errno = 1928 - RPC_S_GRP_ELT_NOT_REMOVED syscall.Errno = 1929 - ERROR_KM_DRIVER_BLOCKED syscall.Errno = 1930 - ERROR_CONTEXT_EXPIRED syscall.Errno = 1931 - ERROR_PER_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1932 - ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1933 - ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED syscall.Errno = 1934 - ERROR_AUTHENTICATION_FIREWALL_FAILED syscall.Errno = 1935 - ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED syscall.Errno = 1936 - ERROR_NTLM_BLOCKED syscall.Errno = 1937 - ERROR_PASSWORD_CHANGE_REQUIRED syscall.Errno = 1938 - ERROR_LOST_MODE_LOGON_RESTRICTION syscall.Errno = 1939 - ERROR_INVALID_PIXEL_FORMAT syscall.Errno = 2000 - ERROR_BAD_DRIVER syscall.Errno = 2001 - ERROR_INVALID_WINDOW_STYLE syscall.Errno = 2002 - ERROR_METAFILE_NOT_SUPPORTED syscall.Errno = 2003 - ERROR_TRANSFORM_NOT_SUPPORTED syscall.Errno = 2004 - ERROR_CLIPPING_NOT_SUPPORTED syscall.Errno = 2005 - ERROR_INVALID_CMM syscall.Errno = 2010 - ERROR_INVALID_PROFILE syscall.Errno = 2011 - ERROR_TAG_NOT_FOUND syscall.Errno = 2012 - ERROR_TAG_NOT_PRESENT syscall.Errno = 2013 - ERROR_DUPLICATE_TAG syscall.Errno = 2014 - ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE syscall.Errno = 2015 - ERROR_PROFILE_NOT_FOUND syscall.Errno = 2016 - ERROR_INVALID_COLORSPACE syscall.Errno = 2017 - ERROR_ICM_NOT_ENABLED syscall.Errno = 2018 - ERROR_DELETING_ICM_XFORM syscall.Errno = 2019 - ERROR_INVALID_TRANSFORM syscall.Errno = 2020 - ERROR_COLORSPACE_MISMATCH syscall.Errno = 2021 - ERROR_INVALID_COLORINDEX syscall.Errno = 2022 - ERROR_PROFILE_DOES_NOT_MATCH_DEVICE syscall.Errno = 2023 - ERROR_CONNECTED_OTHER_PASSWORD syscall.Errno = 2108 - ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT syscall.Errno = 2109 - ERROR_BAD_USERNAME syscall.Errno = 2202 - ERROR_NOT_CONNECTED syscall.Errno = 2250 - ERROR_OPEN_FILES syscall.Errno = 2401 - ERROR_ACTIVE_CONNECTIONS syscall.Errno = 2402 - ERROR_DEVICE_IN_USE syscall.Errno = 2404 - ERROR_UNKNOWN_PRINT_MONITOR syscall.Errno = 3000 - ERROR_PRINTER_DRIVER_IN_USE syscall.Errno = 3001 - ERROR_SPOOL_FILE_NOT_FOUND syscall.Errno = 3002 - ERROR_SPL_NO_STARTDOC syscall.Errno = 3003 - ERROR_SPL_NO_ADDJOB syscall.Errno = 3004 - ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED syscall.Errno = 3005 - ERROR_PRINT_MONITOR_ALREADY_INSTALLED syscall.Errno = 3006 - ERROR_INVALID_PRINT_MONITOR syscall.Errno = 3007 - ERROR_PRINT_MONITOR_IN_USE syscall.Errno = 3008 - ERROR_PRINTER_HAS_JOBS_QUEUED syscall.Errno = 3009 - ERROR_SUCCESS_REBOOT_REQUIRED syscall.Errno = 3010 - ERROR_SUCCESS_RESTART_REQUIRED syscall.Errno = 3011 - ERROR_PRINTER_NOT_FOUND syscall.Errno = 3012 - ERROR_PRINTER_DRIVER_WARNED syscall.Errno = 3013 - ERROR_PRINTER_DRIVER_BLOCKED syscall.Errno = 3014 - ERROR_PRINTER_DRIVER_PACKAGE_IN_USE syscall.Errno = 3015 - ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND syscall.Errno = 3016 - ERROR_FAIL_REBOOT_REQUIRED syscall.Errno = 3017 - ERROR_FAIL_REBOOT_INITIATED syscall.Errno = 3018 - ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED syscall.Errno = 3019 - ERROR_PRINT_JOB_RESTART_REQUIRED syscall.Errno = 3020 - ERROR_INVALID_PRINTER_DRIVER_MANIFEST syscall.Errno = 3021 - ERROR_PRINTER_NOT_SHAREABLE syscall.Errno = 3022 - ERROR_REQUEST_PAUSED syscall.Errno = 3050 - ERROR_APPEXEC_CONDITION_NOT_SATISFIED syscall.Errno = 3060 - ERROR_APPEXEC_HANDLE_INVALIDATED syscall.Errno = 3061 - ERROR_APPEXEC_INVALID_HOST_GENERATION syscall.Errno = 3062 - ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION syscall.Errno = 3063 - ERROR_APPEXEC_INVALID_HOST_STATE syscall.Errno = 3064 - ERROR_APPEXEC_NO_DONOR syscall.Errno = 3065 - ERROR_APPEXEC_HOST_ID_MISMATCH syscall.Errno = 3066 - ERROR_APPEXEC_UNKNOWN_USER syscall.Errno = 3067 - ERROR_IO_REISSUE_AS_CACHED syscall.Errno = 3950 - ERROR_WINS_INTERNAL syscall.Errno = 4000 - ERROR_CAN_NOT_DEL_LOCAL_WINS syscall.Errno = 4001 - ERROR_STATIC_INIT syscall.Errno = 4002 - ERROR_INC_BACKUP syscall.Errno = 4003 - ERROR_FULL_BACKUP syscall.Errno = 4004 - ERROR_REC_NON_EXISTENT syscall.Errno = 4005 - ERROR_RPL_NOT_ALLOWED syscall.Errno = 4006 - PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED syscall.Errno = 4050 - PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO syscall.Errno = 4051 - PEERDIST_ERROR_MISSING_DATA syscall.Errno = 4052 - PEERDIST_ERROR_NO_MORE syscall.Errno = 4053 - PEERDIST_ERROR_NOT_INITIALIZED syscall.Errno = 4054 - PEERDIST_ERROR_ALREADY_INITIALIZED syscall.Errno = 4055 - PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 4056 - PEERDIST_ERROR_INVALIDATED syscall.Errno = 4057 - PEERDIST_ERROR_ALREADY_EXISTS syscall.Errno = 4058 - PEERDIST_ERROR_OPERATION_NOTFOUND syscall.Errno = 4059 - PEERDIST_ERROR_ALREADY_COMPLETED syscall.Errno = 4060 - PEERDIST_ERROR_OUT_OF_BOUNDS syscall.Errno = 4061 - PEERDIST_ERROR_VERSION_UNSUPPORTED syscall.Errno = 4062 - PEERDIST_ERROR_INVALID_CONFIGURATION syscall.Errno = 4063 - PEERDIST_ERROR_NOT_LICENSED syscall.Errno = 4064 - PEERDIST_ERROR_SERVICE_UNAVAILABLE syscall.Errno = 4065 - PEERDIST_ERROR_TRUST_FAILURE syscall.Errno = 4066 - ERROR_DHCP_ADDRESS_CONFLICT syscall.Errno = 4100 - ERROR_WMI_GUID_NOT_FOUND syscall.Errno = 4200 - ERROR_WMI_INSTANCE_NOT_FOUND syscall.Errno = 4201 - ERROR_WMI_ITEMID_NOT_FOUND syscall.Errno = 4202 - ERROR_WMI_TRY_AGAIN syscall.Errno = 4203 - ERROR_WMI_DP_NOT_FOUND syscall.Errno = 4204 - ERROR_WMI_UNRESOLVED_INSTANCE_REF syscall.Errno = 4205 - ERROR_WMI_ALREADY_ENABLED syscall.Errno = 4206 - ERROR_WMI_GUID_DISCONNECTED syscall.Errno = 4207 - ERROR_WMI_SERVER_UNAVAILABLE syscall.Errno = 4208 - ERROR_WMI_DP_FAILED syscall.Errno = 4209 - ERROR_WMI_INVALID_MOF syscall.Errno = 4210 - ERROR_WMI_INVALID_REGINFO syscall.Errno = 4211 - ERROR_WMI_ALREADY_DISABLED syscall.Errno = 4212 - ERROR_WMI_READ_ONLY syscall.Errno = 4213 - ERROR_WMI_SET_FAILURE syscall.Errno = 4214 - ERROR_NOT_APPCONTAINER syscall.Errno = 4250 - ERROR_APPCONTAINER_REQUIRED syscall.Errno = 4251 - ERROR_NOT_SUPPORTED_IN_APPCONTAINER syscall.Errno = 4252 - ERROR_INVALID_PACKAGE_SID_LENGTH syscall.Errno = 4253 - ERROR_INVALID_MEDIA syscall.Errno = 4300 - ERROR_INVALID_LIBRARY syscall.Errno = 4301 - ERROR_INVALID_MEDIA_POOL syscall.Errno = 4302 - ERROR_DRIVE_MEDIA_MISMATCH syscall.Errno = 4303 - ERROR_MEDIA_OFFLINE syscall.Errno = 4304 - ERROR_LIBRARY_OFFLINE syscall.Errno = 4305 - ERROR_EMPTY syscall.Errno = 4306 - ERROR_NOT_EMPTY syscall.Errno = 4307 - ERROR_MEDIA_UNAVAILABLE syscall.Errno = 4308 - ERROR_RESOURCE_DISABLED syscall.Errno = 4309 - ERROR_INVALID_CLEANER syscall.Errno = 4310 - ERROR_UNABLE_TO_CLEAN syscall.Errno = 4311 - ERROR_OBJECT_NOT_FOUND syscall.Errno = 4312 - ERROR_DATABASE_FAILURE syscall.Errno = 4313 - ERROR_DATABASE_FULL syscall.Errno = 4314 - ERROR_MEDIA_INCOMPATIBLE syscall.Errno = 4315 - ERROR_RESOURCE_NOT_PRESENT syscall.Errno = 4316 - ERROR_INVALID_OPERATION syscall.Errno = 4317 - ERROR_MEDIA_NOT_AVAILABLE syscall.Errno = 4318 - ERROR_DEVICE_NOT_AVAILABLE syscall.Errno = 4319 - ERROR_REQUEST_REFUSED syscall.Errno = 4320 - ERROR_INVALID_DRIVE_OBJECT syscall.Errno = 4321 - ERROR_LIBRARY_FULL syscall.Errno = 4322 - ERROR_MEDIUM_NOT_ACCESSIBLE syscall.Errno = 4323 - ERROR_UNABLE_TO_LOAD_MEDIUM syscall.Errno = 4324 - ERROR_UNABLE_TO_INVENTORY_DRIVE syscall.Errno = 4325 - ERROR_UNABLE_TO_INVENTORY_SLOT syscall.Errno = 4326 - ERROR_UNABLE_TO_INVENTORY_TRANSPORT syscall.Errno = 4327 - ERROR_TRANSPORT_FULL syscall.Errno = 4328 - ERROR_CONTROLLING_IEPORT syscall.Errno = 4329 - ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA syscall.Errno = 4330 - ERROR_CLEANER_SLOT_SET syscall.Errno = 4331 - ERROR_CLEANER_SLOT_NOT_SET syscall.Errno = 4332 - ERROR_CLEANER_CARTRIDGE_SPENT syscall.Errno = 4333 - ERROR_UNEXPECTED_OMID syscall.Errno = 4334 - ERROR_CANT_DELETE_LAST_ITEM syscall.Errno = 4335 - ERROR_MESSAGE_EXCEEDS_MAX_SIZE syscall.Errno = 4336 - ERROR_VOLUME_CONTAINS_SYS_FILES syscall.Errno = 4337 - ERROR_INDIGENOUS_TYPE syscall.Errno = 4338 - ERROR_NO_SUPPORTING_DRIVES syscall.Errno = 4339 - ERROR_CLEANER_CARTRIDGE_INSTALLED syscall.Errno = 4340 - ERROR_IEPORT_FULL syscall.Errno = 4341 - ERROR_FILE_OFFLINE syscall.Errno = 4350 - ERROR_REMOTE_STORAGE_NOT_ACTIVE syscall.Errno = 4351 - ERROR_REMOTE_STORAGE_MEDIA_ERROR syscall.Errno = 4352 - ERROR_NOT_A_REPARSE_POINT syscall.Errno = 4390 - ERROR_REPARSE_ATTRIBUTE_CONFLICT syscall.Errno = 4391 - ERROR_INVALID_REPARSE_DATA syscall.Errno = 4392 - ERROR_REPARSE_TAG_INVALID syscall.Errno = 4393 - ERROR_REPARSE_TAG_MISMATCH syscall.Errno = 4394 - ERROR_REPARSE_POINT_ENCOUNTERED syscall.Errno = 4395 - ERROR_APP_DATA_NOT_FOUND syscall.Errno = 4400 - ERROR_APP_DATA_EXPIRED syscall.Errno = 4401 - ERROR_APP_DATA_CORRUPT syscall.Errno = 4402 - ERROR_APP_DATA_LIMIT_EXCEEDED syscall.Errno = 4403 - ERROR_APP_DATA_REBOOT_REQUIRED syscall.Errno = 4404 - ERROR_SECUREBOOT_ROLLBACK_DETECTED syscall.Errno = 4420 - ERROR_SECUREBOOT_POLICY_VIOLATION syscall.Errno = 4421 - ERROR_SECUREBOOT_INVALID_POLICY syscall.Errno = 4422 - ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND syscall.Errno = 4423 - ERROR_SECUREBOOT_POLICY_NOT_SIGNED syscall.Errno = 4424 - ERROR_SECUREBOOT_NOT_ENABLED syscall.Errno = 4425 - ERROR_SECUREBOOT_FILE_REPLACED syscall.Errno = 4426 - ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED syscall.Errno = 4427 - ERROR_SECUREBOOT_POLICY_UNKNOWN syscall.Errno = 4428 - ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION syscall.Errno = 4429 - ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH syscall.Errno = 4430 - ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED syscall.Errno = 4431 - ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH syscall.Errno = 4432 - ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING syscall.Errno = 4433 - ERROR_SECUREBOOT_NOT_BASE_POLICY syscall.Errno = 4434 - ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY syscall.Errno = 4435 - ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED syscall.Errno = 4440 - ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED syscall.Errno = 4441 - ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED syscall.Errno = 4442 - ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED syscall.Errno = 4443 - ERROR_ALREADY_HAS_STREAM_ID syscall.Errno = 4444 - ERROR_SMR_GARBAGE_COLLECTION_REQUIRED syscall.Errno = 4445 - ERROR_WOF_WIM_HEADER_CORRUPT syscall.Errno = 4446 - ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT syscall.Errno = 4447 - ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT syscall.Errno = 4448 - ERROR_VOLUME_NOT_SIS_ENABLED syscall.Errno = 4500 - ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED syscall.Errno = 4550 - ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION syscall.Errno = 4551 - ERROR_SYSTEM_INTEGRITY_INVALID_POLICY syscall.Errno = 4552 - ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED syscall.Errno = 4553 - ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES syscall.Errno = 4554 - ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED syscall.Errno = 4555 - ERROR_VSM_NOT_INITIALIZED syscall.Errno = 4560 - ERROR_VSM_DMA_PROTECTION_NOT_IN_USE syscall.Errno = 4561 - ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED syscall.Errno = 4570 - ERROR_PLATFORM_MANIFEST_INVALID syscall.Errno = 4571 - ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED syscall.Errno = 4572 - ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED syscall.Errno = 4573 - ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND syscall.Errno = 4574 - ERROR_PLATFORM_MANIFEST_NOT_ACTIVE syscall.Errno = 4575 - ERROR_PLATFORM_MANIFEST_NOT_SIGNED syscall.Errno = 4576 - ERROR_DEPENDENT_RESOURCE_EXISTS syscall.Errno = 5001 - ERROR_DEPENDENCY_NOT_FOUND syscall.Errno = 5002 - ERROR_DEPENDENCY_ALREADY_EXISTS syscall.Errno = 5003 - ERROR_RESOURCE_NOT_ONLINE syscall.Errno = 5004 - ERROR_HOST_NODE_NOT_AVAILABLE syscall.Errno = 5005 - ERROR_RESOURCE_NOT_AVAILABLE syscall.Errno = 5006 - ERROR_RESOURCE_NOT_FOUND syscall.Errno = 5007 - ERROR_SHUTDOWN_CLUSTER syscall.Errno = 5008 - ERROR_CANT_EVICT_ACTIVE_NODE syscall.Errno = 5009 - ERROR_OBJECT_ALREADY_EXISTS syscall.Errno = 5010 - ERROR_OBJECT_IN_LIST syscall.Errno = 5011 - ERROR_GROUP_NOT_AVAILABLE syscall.Errno = 5012 - ERROR_GROUP_NOT_FOUND syscall.Errno = 5013 - ERROR_GROUP_NOT_ONLINE syscall.Errno = 5014 - ERROR_HOST_NODE_NOT_RESOURCE_OWNER syscall.Errno = 5015 - ERROR_HOST_NODE_NOT_GROUP_OWNER syscall.Errno = 5016 - ERROR_RESMON_CREATE_FAILED syscall.Errno = 5017 - ERROR_RESMON_ONLINE_FAILED syscall.Errno = 5018 - ERROR_RESOURCE_ONLINE syscall.Errno = 5019 - ERROR_QUORUM_RESOURCE syscall.Errno = 5020 - ERROR_NOT_QUORUM_CAPABLE syscall.Errno = 5021 - ERROR_CLUSTER_SHUTTING_DOWN syscall.Errno = 5022 - ERROR_INVALID_STATE syscall.Errno = 5023 - ERROR_RESOURCE_PROPERTIES_STORED syscall.Errno = 5024 - ERROR_NOT_QUORUM_CLASS syscall.Errno = 5025 - ERROR_CORE_RESOURCE syscall.Errno = 5026 - ERROR_QUORUM_RESOURCE_ONLINE_FAILED syscall.Errno = 5027 - ERROR_QUORUMLOG_OPEN_FAILED syscall.Errno = 5028 - ERROR_CLUSTERLOG_CORRUPT syscall.Errno = 5029 - ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE syscall.Errno = 5030 - ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE syscall.Errno = 5031 - ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND syscall.Errno = 5032 - ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE syscall.Errno = 5033 - ERROR_QUORUM_OWNER_ALIVE syscall.Errno = 5034 - ERROR_NETWORK_NOT_AVAILABLE syscall.Errno = 5035 - ERROR_NODE_NOT_AVAILABLE syscall.Errno = 5036 - ERROR_ALL_NODES_NOT_AVAILABLE syscall.Errno = 5037 - ERROR_RESOURCE_FAILED syscall.Errno = 5038 - ERROR_CLUSTER_INVALID_NODE syscall.Errno = 5039 - ERROR_CLUSTER_NODE_EXISTS syscall.Errno = 5040 - ERROR_CLUSTER_JOIN_IN_PROGRESS syscall.Errno = 5041 - ERROR_CLUSTER_NODE_NOT_FOUND syscall.Errno = 5042 - ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND syscall.Errno = 5043 - ERROR_CLUSTER_NETWORK_EXISTS syscall.Errno = 5044 - ERROR_CLUSTER_NETWORK_NOT_FOUND syscall.Errno = 5045 - ERROR_CLUSTER_NETINTERFACE_EXISTS syscall.Errno = 5046 - ERROR_CLUSTER_NETINTERFACE_NOT_FOUND syscall.Errno = 5047 - ERROR_CLUSTER_INVALID_REQUEST syscall.Errno = 5048 - ERROR_CLUSTER_INVALID_NETWORK_PROVIDER syscall.Errno = 5049 - ERROR_CLUSTER_NODE_DOWN syscall.Errno = 5050 - ERROR_CLUSTER_NODE_UNREACHABLE syscall.Errno = 5051 - ERROR_CLUSTER_NODE_NOT_MEMBER syscall.Errno = 5052 - ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS syscall.Errno = 5053 - ERROR_CLUSTER_INVALID_NETWORK syscall.Errno = 5054 - ERROR_CLUSTER_NODE_UP syscall.Errno = 5056 - ERROR_CLUSTER_IPADDR_IN_USE syscall.Errno = 5057 - ERROR_CLUSTER_NODE_NOT_PAUSED syscall.Errno = 5058 - ERROR_CLUSTER_NO_SECURITY_CONTEXT syscall.Errno = 5059 - ERROR_CLUSTER_NETWORK_NOT_INTERNAL syscall.Errno = 5060 - ERROR_CLUSTER_NODE_ALREADY_UP syscall.Errno = 5061 - ERROR_CLUSTER_NODE_ALREADY_DOWN syscall.Errno = 5062 - ERROR_CLUSTER_NETWORK_ALREADY_ONLINE syscall.Errno = 5063 - ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE syscall.Errno = 5064 - ERROR_CLUSTER_NODE_ALREADY_MEMBER syscall.Errno = 5065 - ERROR_CLUSTER_LAST_INTERNAL_NETWORK syscall.Errno = 5066 - ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS syscall.Errno = 5067 - ERROR_INVALID_OPERATION_ON_QUORUM syscall.Errno = 5068 - ERROR_DEPENDENCY_NOT_ALLOWED syscall.Errno = 5069 - ERROR_CLUSTER_NODE_PAUSED syscall.Errno = 5070 - ERROR_NODE_CANT_HOST_RESOURCE syscall.Errno = 5071 - ERROR_CLUSTER_NODE_NOT_READY syscall.Errno = 5072 - ERROR_CLUSTER_NODE_SHUTTING_DOWN syscall.Errno = 5073 - ERROR_CLUSTER_JOIN_ABORTED syscall.Errno = 5074 - ERROR_CLUSTER_INCOMPATIBLE_VERSIONS syscall.Errno = 5075 - ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED syscall.Errno = 5076 - ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED syscall.Errno = 5077 - ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 5078 - ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED syscall.Errno = 5079 - ERROR_CLUSTER_RESNAME_NOT_FOUND syscall.Errno = 5080 - ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED syscall.Errno = 5081 - ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST syscall.Errno = 5082 - ERROR_CLUSTER_DATABASE_SEQMISMATCH syscall.Errno = 5083 - ERROR_RESMON_INVALID_STATE syscall.Errno = 5084 - ERROR_CLUSTER_GUM_NOT_LOCKER syscall.Errno = 5085 - ERROR_QUORUM_DISK_NOT_FOUND syscall.Errno = 5086 - ERROR_DATABASE_BACKUP_CORRUPT syscall.Errno = 5087 - ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT syscall.Errno = 5088 - ERROR_RESOURCE_PROPERTY_UNCHANGEABLE syscall.Errno = 5089 - ERROR_NO_ADMIN_ACCESS_POINT syscall.Errno = 5090 - ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE syscall.Errno = 5890 - ERROR_CLUSTER_QUORUMLOG_NOT_FOUND syscall.Errno = 5891 - ERROR_CLUSTER_MEMBERSHIP_HALT syscall.Errno = 5892 - ERROR_CLUSTER_INSTANCE_ID_MISMATCH syscall.Errno = 5893 - ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP syscall.Errno = 5894 - ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH syscall.Errno = 5895 - ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP syscall.Errno = 5896 - ERROR_CLUSTER_PARAMETER_MISMATCH syscall.Errno = 5897 - ERROR_NODE_CANNOT_BE_CLUSTERED syscall.Errno = 5898 - ERROR_CLUSTER_WRONG_OS_VERSION syscall.Errno = 5899 - ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME syscall.Errno = 5900 - ERROR_CLUSCFG_ALREADY_COMMITTED syscall.Errno = 5901 - ERROR_CLUSCFG_ROLLBACK_FAILED syscall.Errno = 5902 - ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT syscall.Errno = 5903 - ERROR_CLUSTER_OLD_VERSION syscall.Errno = 5904 - ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME syscall.Errno = 5905 - ERROR_CLUSTER_NO_NET_ADAPTERS syscall.Errno = 5906 - ERROR_CLUSTER_POISONED syscall.Errno = 5907 - ERROR_CLUSTER_GROUP_MOVING syscall.Errno = 5908 - ERROR_CLUSTER_RESOURCE_TYPE_BUSY syscall.Errno = 5909 - ERROR_RESOURCE_CALL_TIMED_OUT syscall.Errno = 5910 - ERROR_INVALID_CLUSTER_IPV6_ADDRESS syscall.Errno = 5911 - ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION syscall.Errno = 5912 - ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS syscall.Errno = 5913 - ERROR_CLUSTER_PARTIAL_SEND syscall.Errno = 5914 - ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION syscall.Errno = 5915 - ERROR_CLUSTER_INVALID_STRING_TERMINATION syscall.Errno = 5916 - ERROR_CLUSTER_INVALID_STRING_FORMAT syscall.Errno = 5917 - ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS syscall.Errno = 5918 - ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS syscall.Errno = 5919 - ERROR_CLUSTER_NULL_DATA syscall.Errno = 5920 - ERROR_CLUSTER_PARTIAL_READ syscall.Errno = 5921 - ERROR_CLUSTER_PARTIAL_WRITE syscall.Errno = 5922 - ERROR_CLUSTER_CANT_DESERIALIZE_DATA syscall.Errno = 5923 - ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT syscall.Errno = 5924 - ERROR_CLUSTER_NO_QUORUM syscall.Errno = 5925 - ERROR_CLUSTER_INVALID_IPV6_NETWORK syscall.Errno = 5926 - ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK syscall.Errno = 5927 - ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP syscall.Errno = 5928 - ERROR_DEPENDENCY_TREE_TOO_COMPLEX syscall.Errno = 5929 - ERROR_EXCEPTION_IN_RESOURCE_CALL syscall.Errno = 5930 - ERROR_CLUSTER_RHS_FAILED_INITIALIZATION syscall.Errno = 5931 - ERROR_CLUSTER_NOT_INSTALLED syscall.Errno = 5932 - ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE syscall.Errno = 5933 - ERROR_CLUSTER_MAX_NODES_IN_CLUSTER syscall.Errno = 5934 - ERROR_CLUSTER_TOO_MANY_NODES syscall.Errno = 5935 - ERROR_CLUSTER_OBJECT_ALREADY_USED syscall.Errno = 5936 - ERROR_NONCORE_GROUPS_FOUND syscall.Errno = 5937 - ERROR_FILE_SHARE_RESOURCE_CONFLICT syscall.Errno = 5938 - ERROR_CLUSTER_EVICT_INVALID_REQUEST syscall.Errno = 5939 - ERROR_CLUSTER_SINGLETON_RESOURCE syscall.Errno = 5940 - ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE syscall.Errno = 5941 - ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED syscall.Errno = 5942 - ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR syscall.Errno = 5943 - ERROR_CLUSTER_GROUP_BUSY syscall.Errno = 5944 - ERROR_CLUSTER_NOT_SHARED_VOLUME syscall.Errno = 5945 - ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR syscall.Errno = 5946 - ERROR_CLUSTER_SHARED_VOLUMES_IN_USE syscall.Errno = 5947 - ERROR_CLUSTER_USE_SHARED_VOLUMES_API syscall.Errno = 5948 - ERROR_CLUSTER_BACKUP_IN_PROGRESS syscall.Errno = 5949 - ERROR_NON_CSV_PATH syscall.Errno = 5950 - ERROR_CSV_VOLUME_NOT_LOCAL syscall.Errno = 5951 - ERROR_CLUSTER_WATCHDOG_TERMINATING syscall.Errno = 5952 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES syscall.Errno = 5953 - ERROR_CLUSTER_INVALID_NODE_WEIGHT syscall.Errno = 5954 - ERROR_CLUSTER_RESOURCE_VETOED_CALL syscall.Errno = 5955 - ERROR_RESMON_SYSTEM_RESOURCES_LACKING syscall.Errno = 5956 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION syscall.Errno = 5957 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE syscall.Errno = 5958 - ERROR_CLUSTER_GROUP_QUEUED syscall.Errno = 5959 - ERROR_CLUSTER_RESOURCE_LOCKED_STATUS syscall.Errno = 5960 - ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED syscall.Errno = 5961 - ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS syscall.Errno = 5962 - ERROR_CLUSTER_DISK_NOT_CONNECTED syscall.Errno = 5963 - ERROR_DISK_NOT_CSV_CAPABLE syscall.Errno = 5964 - ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE syscall.Errno = 5965 - ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED syscall.Errno = 5966 - ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED syscall.Errno = 5967 - ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES syscall.Errno = 5968 - ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES syscall.Errno = 5969 - ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE syscall.Errno = 5970 - ERROR_CLUSTER_AFFINITY_CONFLICT syscall.Errno = 5971 - ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE syscall.Errno = 5972 - ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS syscall.Errno = 5973 - ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED syscall.Errno = 5974 - ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED syscall.Errno = 5975 - ERROR_CLUSTER_UPGRADE_IN_PROGRESS syscall.Errno = 5976 - ERROR_CLUSTER_UPGRADE_INCOMPLETE syscall.Errno = 5977 - ERROR_CLUSTER_NODE_IN_GRACE_PERIOD syscall.Errno = 5978 - ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT syscall.Errno = 5979 - ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER syscall.Errno = 5980 - ERROR_CLUSTER_RESOURCE_NOT_MONITORED syscall.Errno = 5981 - ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED syscall.Errno = 5982 - ERROR_CLUSTER_RESOURCE_IS_REPLICATED syscall.Errno = 5983 - ERROR_CLUSTER_NODE_ISOLATED syscall.Errno = 5984 - ERROR_CLUSTER_NODE_QUARANTINED syscall.Errno = 5985 - ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED syscall.Errno = 5986 - ERROR_CLUSTER_SPACE_DEGRADED syscall.Errno = 5987 - ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED syscall.Errno = 5988 - ERROR_CLUSTER_CSV_INVALID_HANDLE syscall.Errno = 5989 - ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR syscall.Errno = 5990 - ERROR_GROUPSET_NOT_AVAILABLE syscall.Errno = 5991 - ERROR_GROUPSET_NOT_FOUND syscall.Errno = 5992 - ERROR_GROUPSET_CANT_PROVIDE syscall.Errno = 5993 - ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND syscall.Errno = 5994 - ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY syscall.Errno = 5995 - ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION syscall.Errno = 5996 - ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS syscall.Errno = 5997 - ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME syscall.Errno = 5998 - ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE syscall.Errno = 5999 - ERROR_ENCRYPTION_FAILED syscall.Errno = 6000 - ERROR_DECRYPTION_FAILED syscall.Errno = 6001 - ERROR_FILE_ENCRYPTED syscall.Errno = 6002 - ERROR_NO_RECOVERY_POLICY syscall.Errno = 6003 - ERROR_NO_EFS syscall.Errno = 6004 - ERROR_WRONG_EFS syscall.Errno = 6005 - ERROR_NO_USER_KEYS syscall.Errno = 6006 - ERROR_FILE_NOT_ENCRYPTED syscall.Errno = 6007 - ERROR_NOT_EXPORT_FORMAT syscall.Errno = 6008 - ERROR_FILE_READ_ONLY syscall.Errno = 6009 - ERROR_DIR_EFS_DISALLOWED syscall.Errno = 6010 - ERROR_EFS_SERVER_NOT_TRUSTED syscall.Errno = 6011 - ERROR_BAD_RECOVERY_POLICY syscall.Errno = 6012 - ERROR_EFS_ALG_BLOB_TOO_BIG syscall.Errno = 6013 - ERROR_VOLUME_NOT_SUPPORT_EFS syscall.Errno = 6014 - ERROR_EFS_DISABLED syscall.Errno = 6015 - ERROR_EFS_VERSION_NOT_SUPPORT syscall.Errno = 6016 - ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE syscall.Errno = 6017 - ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER syscall.Errno = 6018 - ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE syscall.Errno = 6019 - ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE syscall.Errno = 6020 - ERROR_CS_ENCRYPTION_FILE_NOT_CSE syscall.Errno = 6021 - ERROR_ENCRYPTION_POLICY_DENIES_OPERATION syscall.Errno = 6022 - ERROR_WIP_ENCRYPTION_FAILED syscall.Errno = 6023 - ERROR_NO_BROWSER_SERVERS_FOUND syscall.Errno = 6118 - SCHED_E_SERVICE_NOT_LOCALSYSTEM syscall.Errno = 6200 - ERROR_LOG_SECTOR_INVALID syscall.Errno = 6600 - ERROR_LOG_SECTOR_PARITY_INVALID syscall.Errno = 6601 - ERROR_LOG_SECTOR_REMAPPED syscall.Errno = 6602 - ERROR_LOG_BLOCK_INCOMPLETE syscall.Errno = 6603 - ERROR_LOG_INVALID_RANGE syscall.Errno = 6604 - ERROR_LOG_BLOCKS_EXHAUSTED syscall.Errno = 6605 - ERROR_LOG_READ_CONTEXT_INVALID syscall.Errno = 6606 - ERROR_LOG_RESTART_INVALID syscall.Errno = 6607 - ERROR_LOG_BLOCK_VERSION syscall.Errno = 6608 - ERROR_LOG_BLOCK_INVALID syscall.Errno = 6609 - ERROR_LOG_READ_MODE_INVALID syscall.Errno = 6610 - ERROR_LOG_NO_RESTART syscall.Errno = 6611 - ERROR_LOG_METADATA_CORRUPT syscall.Errno = 6612 - ERROR_LOG_METADATA_INVALID syscall.Errno = 6613 - ERROR_LOG_METADATA_INCONSISTENT syscall.Errno = 6614 - ERROR_LOG_RESERVATION_INVALID syscall.Errno = 6615 - ERROR_LOG_CANT_DELETE syscall.Errno = 6616 - ERROR_LOG_CONTAINER_LIMIT_EXCEEDED syscall.Errno = 6617 - ERROR_LOG_START_OF_LOG syscall.Errno = 6618 - ERROR_LOG_POLICY_ALREADY_INSTALLED syscall.Errno = 6619 - ERROR_LOG_POLICY_NOT_INSTALLED syscall.Errno = 6620 - ERROR_LOG_POLICY_INVALID syscall.Errno = 6621 - ERROR_LOG_POLICY_CONFLICT syscall.Errno = 6622 - ERROR_LOG_PINNED_ARCHIVE_TAIL syscall.Errno = 6623 - ERROR_LOG_RECORD_NONEXISTENT syscall.Errno = 6624 - ERROR_LOG_RECORDS_RESERVED_INVALID syscall.Errno = 6625 - ERROR_LOG_SPACE_RESERVED_INVALID syscall.Errno = 6626 - ERROR_LOG_TAIL_INVALID syscall.Errno = 6627 - ERROR_LOG_FULL syscall.Errno = 6628 - ERROR_COULD_NOT_RESIZE_LOG syscall.Errno = 6629 - ERROR_LOG_MULTIPLEXED syscall.Errno = 6630 - ERROR_LOG_DEDICATED syscall.Errno = 6631 - ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS syscall.Errno = 6632 - ERROR_LOG_ARCHIVE_IN_PROGRESS syscall.Errno = 6633 - ERROR_LOG_EPHEMERAL syscall.Errno = 6634 - ERROR_LOG_NOT_ENOUGH_CONTAINERS syscall.Errno = 6635 - ERROR_LOG_CLIENT_ALREADY_REGISTERED syscall.Errno = 6636 - ERROR_LOG_CLIENT_NOT_REGISTERED syscall.Errno = 6637 - ERROR_LOG_FULL_HANDLER_IN_PROGRESS syscall.Errno = 6638 - ERROR_LOG_CONTAINER_READ_FAILED syscall.Errno = 6639 - ERROR_LOG_CONTAINER_WRITE_FAILED syscall.Errno = 6640 - ERROR_LOG_CONTAINER_OPEN_FAILED syscall.Errno = 6641 - ERROR_LOG_CONTAINER_STATE_INVALID syscall.Errno = 6642 - ERROR_LOG_STATE_INVALID syscall.Errno = 6643 - ERROR_LOG_PINNED syscall.Errno = 6644 - ERROR_LOG_METADATA_FLUSH_FAILED syscall.Errno = 6645 - ERROR_LOG_INCONSISTENT_SECURITY syscall.Errno = 6646 - ERROR_LOG_APPENDED_FLUSH_FAILED syscall.Errno = 6647 - ERROR_LOG_PINNED_RESERVATION syscall.Errno = 6648 - ERROR_INVALID_TRANSACTION syscall.Errno = 6700 - ERROR_TRANSACTION_NOT_ACTIVE syscall.Errno = 6701 - ERROR_TRANSACTION_REQUEST_NOT_VALID syscall.Errno = 6702 - ERROR_TRANSACTION_NOT_REQUESTED syscall.Errno = 6703 - ERROR_TRANSACTION_ALREADY_ABORTED syscall.Errno = 6704 - ERROR_TRANSACTION_ALREADY_COMMITTED syscall.Errno = 6705 - ERROR_TM_INITIALIZATION_FAILED syscall.Errno = 6706 - ERROR_RESOURCEMANAGER_READ_ONLY syscall.Errno = 6707 - ERROR_TRANSACTION_NOT_JOINED syscall.Errno = 6708 - ERROR_TRANSACTION_SUPERIOR_EXISTS syscall.Errno = 6709 - ERROR_CRM_PROTOCOL_ALREADY_EXISTS syscall.Errno = 6710 - ERROR_TRANSACTION_PROPAGATION_FAILED syscall.Errno = 6711 - ERROR_CRM_PROTOCOL_NOT_FOUND syscall.Errno = 6712 - ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER syscall.Errno = 6713 - ERROR_CURRENT_TRANSACTION_NOT_VALID syscall.Errno = 6714 - ERROR_TRANSACTION_NOT_FOUND syscall.Errno = 6715 - ERROR_RESOURCEMANAGER_NOT_FOUND syscall.Errno = 6716 - ERROR_ENLISTMENT_NOT_FOUND syscall.Errno = 6717 - ERROR_TRANSACTIONMANAGER_NOT_FOUND syscall.Errno = 6718 - ERROR_TRANSACTIONMANAGER_NOT_ONLINE syscall.Errno = 6719 - ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION syscall.Errno = 6720 - ERROR_TRANSACTION_NOT_ROOT syscall.Errno = 6721 - ERROR_TRANSACTION_OBJECT_EXPIRED syscall.Errno = 6722 - ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED syscall.Errno = 6723 - ERROR_TRANSACTION_RECORD_TOO_LONG syscall.Errno = 6724 - ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED syscall.Errno = 6725 - ERROR_TRANSACTION_INTEGRITY_VIOLATED syscall.Errno = 6726 - ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH syscall.Errno = 6727 - ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT syscall.Errno = 6728 - ERROR_TRANSACTION_MUST_WRITETHROUGH syscall.Errno = 6729 - ERROR_TRANSACTION_NO_SUPERIOR syscall.Errno = 6730 - ERROR_HEURISTIC_DAMAGE_POSSIBLE syscall.Errno = 6731 - ERROR_TRANSACTIONAL_CONFLICT syscall.Errno = 6800 - ERROR_RM_NOT_ACTIVE syscall.Errno = 6801 - ERROR_RM_METADATA_CORRUPT syscall.Errno = 6802 - ERROR_DIRECTORY_NOT_RM syscall.Errno = 6803 - ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE syscall.Errno = 6805 - ERROR_LOG_RESIZE_INVALID_SIZE syscall.Errno = 6806 - ERROR_OBJECT_NO_LONGER_EXISTS syscall.Errno = 6807 - ERROR_STREAM_MINIVERSION_NOT_FOUND syscall.Errno = 6808 - ERROR_STREAM_MINIVERSION_NOT_VALID syscall.Errno = 6809 - ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION syscall.Errno = 6810 - ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT syscall.Errno = 6811 - ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS syscall.Errno = 6812 - ERROR_REMOTE_FILE_VERSION_MISMATCH syscall.Errno = 6814 - ERROR_HANDLE_NO_LONGER_VALID syscall.Errno = 6815 - ERROR_NO_TXF_METADATA syscall.Errno = 6816 - ERROR_LOG_CORRUPTION_DETECTED syscall.Errno = 6817 - ERROR_CANT_RECOVER_WITH_HANDLE_OPEN syscall.Errno = 6818 - ERROR_RM_DISCONNECTED syscall.Errno = 6819 - ERROR_ENLISTMENT_NOT_SUPERIOR syscall.Errno = 6820 - ERROR_RECOVERY_NOT_NEEDED syscall.Errno = 6821 - ERROR_RM_ALREADY_STARTED syscall.Errno = 6822 - ERROR_FILE_IDENTITY_NOT_PERSISTENT syscall.Errno = 6823 - ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY syscall.Errno = 6824 - ERROR_CANT_CROSS_RM_BOUNDARY syscall.Errno = 6825 - ERROR_TXF_DIR_NOT_EMPTY syscall.Errno = 6826 - ERROR_INDOUBT_TRANSACTIONS_EXIST syscall.Errno = 6827 - ERROR_TM_VOLATILE syscall.Errno = 6828 - ERROR_ROLLBACK_TIMER_EXPIRED syscall.Errno = 6829 - ERROR_TXF_ATTRIBUTE_CORRUPT syscall.Errno = 6830 - ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6831 - ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED syscall.Errno = 6832 - ERROR_LOG_GROWTH_FAILED syscall.Errno = 6833 - ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE syscall.Errno = 6834 - ERROR_TXF_METADATA_ALREADY_PRESENT syscall.Errno = 6835 - ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET syscall.Errno = 6836 - ERROR_TRANSACTION_REQUIRED_PROMOTION syscall.Errno = 6837 - ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION syscall.Errno = 6838 - ERROR_TRANSACTIONS_NOT_FROZEN syscall.Errno = 6839 - ERROR_TRANSACTION_FREEZE_IN_PROGRESS syscall.Errno = 6840 - ERROR_NOT_SNAPSHOT_VOLUME syscall.Errno = 6841 - ERROR_NO_SAVEPOINT_WITH_OPEN_FILES syscall.Errno = 6842 - ERROR_DATA_LOST_REPAIR syscall.Errno = 6843 - ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6844 - ERROR_TM_IDENTITY_MISMATCH syscall.Errno = 6845 - ERROR_FLOATED_SECTION syscall.Errno = 6846 - ERROR_CANNOT_ACCEPT_TRANSACTED_WORK syscall.Errno = 6847 - ERROR_CANNOT_ABORT_TRANSACTIONS syscall.Errno = 6848 - ERROR_BAD_CLUSTERS syscall.Errno = 6849 - ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6850 - ERROR_VOLUME_DIRTY syscall.Errno = 6851 - ERROR_NO_LINK_TRACKING_IN_TRANSACTION syscall.Errno = 6852 - ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION syscall.Errno = 6853 - ERROR_EXPIRED_HANDLE syscall.Errno = 6854 - ERROR_TRANSACTION_NOT_ENLISTED syscall.Errno = 6855 - ERROR_CTX_WINSTATION_NAME_INVALID syscall.Errno = 7001 - ERROR_CTX_INVALID_PD syscall.Errno = 7002 - ERROR_CTX_PD_NOT_FOUND syscall.Errno = 7003 - ERROR_CTX_WD_NOT_FOUND syscall.Errno = 7004 - ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY syscall.Errno = 7005 - ERROR_CTX_SERVICE_NAME_COLLISION syscall.Errno = 7006 - ERROR_CTX_CLOSE_PENDING syscall.Errno = 7007 - ERROR_CTX_NO_OUTBUF syscall.Errno = 7008 - ERROR_CTX_MODEM_INF_NOT_FOUND syscall.Errno = 7009 - ERROR_CTX_INVALID_MODEMNAME syscall.Errno = 7010 - ERROR_CTX_MODEM_RESPONSE_ERROR syscall.Errno = 7011 - ERROR_CTX_MODEM_RESPONSE_TIMEOUT syscall.Errno = 7012 - ERROR_CTX_MODEM_RESPONSE_NO_CARRIER syscall.Errno = 7013 - ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE syscall.Errno = 7014 - ERROR_CTX_MODEM_RESPONSE_BUSY syscall.Errno = 7015 - ERROR_CTX_MODEM_RESPONSE_VOICE syscall.Errno = 7016 - ERROR_CTX_TD_ERROR syscall.Errno = 7017 - ERROR_CTX_WINSTATION_NOT_FOUND syscall.Errno = 7022 - ERROR_CTX_WINSTATION_ALREADY_EXISTS syscall.Errno = 7023 - ERROR_CTX_WINSTATION_BUSY syscall.Errno = 7024 - ERROR_CTX_BAD_VIDEO_MODE syscall.Errno = 7025 - ERROR_CTX_GRAPHICS_INVALID syscall.Errno = 7035 - ERROR_CTX_LOGON_DISABLED syscall.Errno = 7037 - ERROR_CTX_NOT_CONSOLE syscall.Errno = 7038 - ERROR_CTX_CLIENT_QUERY_TIMEOUT syscall.Errno = 7040 - ERROR_CTX_CONSOLE_DISCONNECT syscall.Errno = 7041 - ERROR_CTX_CONSOLE_CONNECT syscall.Errno = 7042 - ERROR_CTX_SHADOW_DENIED syscall.Errno = 7044 - ERROR_CTX_WINSTATION_ACCESS_DENIED syscall.Errno = 7045 - ERROR_CTX_INVALID_WD syscall.Errno = 7049 - ERROR_CTX_SHADOW_INVALID syscall.Errno = 7050 - ERROR_CTX_SHADOW_DISABLED syscall.Errno = 7051 - ERROR_CTX_CLIENT_LICENSE_IN_USE syscall.Errno = 7052 - ERROR_CTX_CLIENT_LICENSE_NOT_SET syscall.Errno = 7053 - ERROR_CTX_LICENSE_NOT_AVAILABLE syscall.Errno = 7054 - ERROR_CTX_LICENSE_CLIENT_INVALID syscall.Errno = 7055 - ERROR_CTX_LICENSE_EXPIRED syscall.Errno = 7056 - ERROR_CTX_SHADOW_NOT_RUNNING syscall.Errno = 7057 - ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE syscall.Errno = 7058 - ERROR_ACTIVATION_COUNT_EXCEEDED syscall.Errno = 7059 - ERROR_CTX_WINSTATIONS_DISABLED syscall.Errno = 7060 - ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED syscall.Errno = 7061 - ERROR_CTX_SESSION_IN_USE syscall.Errno = 7062 - ERROR_CTX_NO_FORCE_LOGOFF syscall.Errno = 7063 - ERROR_CTX_ACCOUNT_RESTRICTION syscall.Errno = 7064 - ERROR_RDP_PROTOCOL_ERROR syscall.Errno = 7065 - ERROR_CTX_CDM_CONNECT syscall.Errno = 7066 - ERROR_CTX_CDM_DISCONNECT syscall.Errno = 7067 - ERROR_CTX_SECURITY_LAYER_ERROR syscall.Errno = 7068 - ERROR_TS_INCOMPATIBLE_SESSIONS syscall.Errno = 7069 - ERROR_TS_VIDEO_SUBSYSTEM_ERROR syscall.Errno = 7070 - FRS_ERR_INVALID_API_SEQUENCE syscall.Errno = 8001 - FRS_ERR_STARTING_SERVICE syscall.Errno = 8002 - FRS_ERR_STOPPING_SERVICE syscall.Errno = 8003 - FRS_ERR_INTERNAL_API syscall.Errno = 8004 - FRS_ERR_INTERNAL syscall.Errno = 8005 - FRS_ERR_SERVICE_COMM syscall.Errno = 8006 - FRS_ERR_INSUFFICIENT_PRIV syscall.Errno = 8007 - FRS_ERR_AUTHENTICATION syscall.Errno = 8008 - FRS_ERR_PARENT_INSUFFICIENT_PRIV syscall.Errno = 8009 - FRS_ERR_PARENT_AUTHENTICATION syscall.Errno = 8010 - FRS_ERR_CHILD_TO_PARENT_COMM syscall.Errno = 8011 - FRS_ERR_PARENT_TO_CHILD_COMM syscall.Errno = 8012 - FRS_ERR_SYSVOL_POPULATE syscall.Errno = 8013 - FRS_ERR_SYSVOL_POPULATE_TIMEOUT syscall.Errno = 8014 - FRS_ERR_SYSVOL_IS_BUSY syscall.Errno = 8015 - FRS_ERR_SYSVOL_DEMOTE syscall.Errno = 8016 - FRS_ERR_INVALID_SERVICE_PARAMETER syscall.Errno = 8017 - DS_S_SUCCESS = ERROR_SUCCESS - ERROR_DS_NOT_INSTALLED syscall.Errno = 8200 - ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY syscall.Errno = 8201 - ERROR_DS_NO_ATTRIBUTE_OR_VALUE syscall.Errno = 8202 - ERROR_DS_INVALID_ATTRIBUTE_SYNTAX syscall.Errno = 8203 - ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED syscall.Errno = 8204 - ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS syscall.Errno = 8205 - ERROR_DS_BUSY syscall.Errno = 8206 - ERROR_DS_UNAVAILABLE syscall.Errno = 8207 - ERROR_DS_NO_RIDS_ALLOCATED syscall.Errno = 8208 - ERROR_DS_NO_MORE_RIDS syscall.Errno = 8209 - ERROR_DS_INCORRECT_ROLE_OWNER syscall.Errno = 8210 - ERROR_DS_RIDMGR_INIT_ERROR syscall.Errno = 8211 - ERROR_DS_OBJ_CLASS_VIOLATION syscall.Errno = 8212 - ERROR_DS_CANT_ON_NON_LEAF syscall.Errno = 8213 - ERROR_DS_CANT_ON_RDN syscall.Errno = 8214 - ERROR_DS_CANT_MOD_OBJ_CLASS syscall.Errno = 8215 - ERROR_DS_CROSS_DOM_MOVE_ERROR syscall.Errno = 8216 - ERROR_DS_GC_NOT_AVAILABLE syscall.Errno = 8217 - ERROR_SHARED_POLICY syscall.Errno = 8218 - ERROR_POLICY_OBJECT_NOT_FOUND syscall.Errno = 8219 - ERROR_POLICY_ONLY_IN_DS syscall.Errno = 8220 - ERROR_PROMOTION_ACTIVE syscall.Errno = 8221 - ERROR_NO_PROMOTION_ACTIVE syscall.Errno = 8222 - ERROR_DS_OPERATIONS_ERROR syscall.Errno = 8224 - ERROR_DS_PROTOCOL_ERROR syscall.Errno = 8225 - ERROR_DS_TIMELIMIT_EXCEEDED syscall.Errno = 8226 - ERROR_DS_SIZELIMIT_EXCEEDED syscall.Errno = 8227 - ERROR_DS_ADMIN_LIMIT_EXCEEDED syscall.Errno = 8228 - ERROR_DS_COMPARE_FALSE syscall.Errno = 8229 - ERROR_DS_COMPARE_TRUE syscall.Errno = 8230 - ERROR_DS_AUTH_METHOD_NOT_SUPPORTED syscall.Errno = 8231 - ERROR_DS_STRONG_AUTH_REQUIRED syscall.Errno = 8232 - ERROR_DS_INAPPROPRIATE_AUTH syscall.Errno = 8233 - ERROR_DS_AUTH_UNKNOWN syscall.Errno = 8234 - ERROR_DS_REFERRAL syscall.Errno = 8235 - ERROR_DS_UNAVAILABLE_CRIT_EXTENSION syscall.Errno = 8236 - ERROR_DS_CONFIDENTIALITY_REQUIRED syscall.Errno = 8237 - ERROR_DS_INAPPROPRIATE_MATCHING syscall.Errno = 8238 - ERROR_DS_CONSTRAINT_VIOLATION syscall.Errno = 8239 - ERROR_DS_NO_SUCH_OBJECT syscall.Errno = 8240 - ERROR_DS_ALIAS_PROBLEM syscall.Errno = 8241 - ERROR_DS_INVALID_DN_SYNTAX syscall.Errno = 8242 - ERROR_DS_IS_LEAF syscall.Errno = 8243 - ERROR_DS_ALIAS_DEREF_PROBLEM syscall.Errno = 8244 - ERROR_DS_UNWILLING_TO_PERFORM syscall.Errno = 8245 - ERROR_DS_LOOP_DETECT syscall.Errno = 8246 - ERROR_DS_NAMING_VIOLATION syscall.Errno = 8247 - ERROR_DS_OBJECT_RESULTS_TOO_LARGE syscall.Errno = 8248 - ERROR_DS_AFFECTS_MULTIPLE_DSAS syscall.Errno = 8249 - ERROR_DS_SERVER_DOWN syscall.Errno = 8250 - ERROR_DS_LOCAL_ERROR syscall.Errno = 8251 - ERROR_DS_ENCODING_ERROR syscall.Errno = 8252 - ERROR_DS_DECODING_ERROR syscall.Errno = 8253 - ERROR_DS_FILTER_UNKNOWN syscall.Errno = 8254 - ERROR_DS_PARAM_ERROR syscall.Errno = 8255 - ERROR_DS_NOT_SUPPORTED syscall.Errno = 8256 - ERROR_DS_NO_RESULTS_RETURNED syscall.Errno = 8257 - ERROR_DS_CONTROL_NOT_FOUND syscall.Errno = 8258 - ERROR_DS_CLIENT_LOOP syscall.Errno = 8259 - ERROR_DS_REFERRAL_LIMIT_EXCEEDED syscall.Errno = 8260 - ERROR_DS_SORT_CONTROL_MISSING syscall.Errno = 8261 - ERROR_DS_OFFSET_RANGE_ERROR syscall.Errno = 8262 - ERROR_DS_RIDMGR_DISABLED syscall.Errno = 8263 - ERROR_DS_ROOT_MUST_BE_NC syscall.Errno = 8301 - ERROR_DS_ADD_REPLICA_INHIBITED syscall.Errno = 8302 - ERROR_DS_ATT_NOT_DEF_IN_SCHEMA syscall.Errno = 8303 - ERROR_DS_MAX_OBJ_SIZE_EXCEEDED syscall.Errno = 8304 - ERROR_DS_OBJ_STRING_NAME_EXISTS syscall.Errno = 8305 - ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA syscall.Errno = 8306 - ERROR_DS_RDN_DOESNT_MATCH_SCHEMA syscall.Errno = 8307 - ERROR_DS_NO_REQUESTED_ATTS_FOUND syscall.Errno = 8308 - ERROR_DS_USER_BUFFER_TO_SMALL syscall.Errno = 8309 - ERROR_DS_ATT_IS_NOT_ON_OBJ syscall.Errno = 8310 - ERROR_DS_ILLEGAL_MOD_OPERATION syscall.Errno = 8311 - ERROR_DS_OBJ_TOO_LARGE syscall.Errno = 8312 - ERROR_DS_BAD_INSTANCE_TYPE syscall.Errno = 8313 - ERROR_DS_MASTERDSA_REQUIRED syscall.Errno = 8314 - ERROR_DS_OBJECT_CLASS_REQUIRED syscall.Errno = 8315 - ERROR_DS_MISSING_REQUIRED_ATT syscall.Errno = 8316 - ERROR_DS_ATT_NOT_DEF_FOR_CLASS syscall.Errno = 8317 - ERROR_DS_ATT_ALREADY_EXISTS syscall.Errno = 8318 - ERROR_DS_CANT_ADD_ATT_VALUES syscall.Errno = 8320 - ERROR_DS_SINGLE_VALUE_CONSTRAINT syscall.Errno = 8321 - ERROR_DS_RANGE_CONSTRAINT syscall.Errno = 8322 - ERROR_DS_ATT_VAL_ALREADY_EXISTS syscall.Errno = 8323 - ERROR_DS_CANT_REM_MISSING_ATT syscall.Errno = 8324 - ERROR_DS_CANT_REM_MISSING_ATT_VAL syscall.Errno = 8325 - ERROR_DS_ROOT_CANT_BE_SUBREF syscall.Errno = 8326 - ERROR_DS_NO_CHAINING syscall.Errno = 8327 - ERROR_DS_NO_CHAINED_EVAL syscall.Errno = 8328 - ERROR_DS_NO_PARENT_OBJECT syscall.Errno = 8329 - ERROR_DS_PARENT_IS_AN_ALIAS syscall.Errno = 8330 - ERROR_DS_CANT_MIX_MASTER_AND_REPS syscall.Errno = 8331 - ERROR_DS_CHILDREN_EXIST syscall.Errno = 8332 - ERROR_DS_OBJ_NOT_FOUND syscall.Errno = 8333 - ERROR_DS_ALIASED_OBJ_MISSING syscall.Errno = 8334 - ERROR_DS_BAD_NAME_SYNTAX syscall.Errno = 8335 - ERROR_DS_ALIAS_POINTS_TO_ALIAS syscall.Errno = 8336 - ERROR_DS_CANT_DEREF_ALIAS syscall.Errno = 8337 - ERROR_DS_OUT_OF_SCOPE syscall.Errno = 8338 - ERROR_DS_OBJECT_BEING_REMOVED syscall.Errno = 8339 - ERROR_DS_CANT_DELETE_DSA_OBJ syscall.Errno = 8340 - ERROR_DS_GENERIC_ERROR syscall.Errno = 8341 - ERROR_DS_DSA_MUST_BE_INT_MASTER syscall.Errno = 8342 - ERROR_DS_CLASS_NOT_DSA syscall.Errno = 8343 - ERROR_DS_INSUFF_ACCESS_RIGHTS syscall.Errno = 8344 - ERROR_DS_ILLEGAL_SUPERIOR syscall.Errno = 8345 - ERROR_DS_ATTRIBUTE_OWNED_BY_SAM syscall.Errno = 8346 - ERROR_DS_NAME_TOO_MANY_PARTS syscall.Errno = 8347 - ERROR_DS_NAME_TOO_LONG syscall.Errno = 8348 - ERROR_DS_NAME_VALUE_TOO_LONG syscall.Errno = 8349 - ERROR_DS_NAME_UNPARSEABLE syscall.Errno = 8350 - ERROR_DS_NAME_TYPE_UNKNOWN syscall.Errno = 8351 - ERROR_DS_NOT_AN_OBJECT syscall.Errno = 8352 - ERROR_DS_SEC_DESC_TOO_SHORT syscall.Errno = 8353 - ERROR_DS_SEC_DESC_INVALID syscall.Errno = 8354 - ERROR_DS_NO_DELETED_NAME syscall.Errno = 8355 - ERROR_DS_SUBREF_MUST_HAVE_PARENT syscall.Errno = 8356 - ERROR_DS_NCNAME_MUST_BE_NC syscall.Errno = 8357 - ERROR_DS_CANT_ADD_SYSTEM_ONLY syscall.Errno = 8358 - ERROR_DS_CLASS_MUST_BE_CONCRETE syscall.Errno = 8359 - ERROR_DS_INVALID_DMD syscall.Errno = 8360 - ERROR_DS_OBJ_GUID_EXISTS syscall.Errno = 8361 - ERROR_DS_NOT_ON_BACKLINK syscall.Errno = 8362 - ERROR_DS_NO_CROSSREF_FOR_NC syscall.Errno = 8363 - ERROR_DS_SHUTTING_DOWN syscall.Errno = 8364 - ERROR_DS_UNKNOWN_OPERATION syscall.Errno = 8365 - ERROR_DS_INVALID_ROLE_OWNER syscall.Errno = 8366 - ERROR_DS_COULDNT_CONTACT_FSMO syscall.Errno = 8367 - ERROR_DS_CROSS_NC_DN_RENAME syscall.Errno = 8368 - ERROR_DS_CANT_MOD_SYSTEM_ONLY syscall.Errno = 8369 - ERROR_DS_REPLICATOR_ONLY syscall.Errno = 8370 - ERROR_DS_OBJ_CLASS_NOT_DEFINED syscall.Errno = 8371 - ERROR_DS_OBJ_CLASS_NOT_SUBCLASS syscall.Errno = 8372 - ERROR_DS_NAME_REFERENCE_INVALID syscall.Errno = 8373 - ERROR_DS_CROSS_REF_EXISTS syscall.Errno = 8374 - ERROR_DS_CANT_DEL_MASTER_CROSSREF syscall.Errno = 8375 - ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD syscall.Errno = 8376 - ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX syscall.Errno = 8377 - ERROR_DS_DUP_RDN syscall.Errno = 8378 - ERROR_DS_DUP_OID syscall.Errno = 8379 - ERROR_DS_DUP_MAPI_ID syscall.Errno = 8380 - ERROR_DS_DUP_SCHEMA_ID_GUID syscall.Errno = 8381 - ERROR_DS_DUP_LDAP_DISPLAY_NAME syscall.Errno = 8382 - ERROR_DS_SEMANTIC_ATT_TEST syscall.Errno = 8383 - ERROR_DS_SYNTAX_MISMATCH syscall.Errno = 8384 - ERROR_DS_EXISTS_IN_MUST_HAVE syscall.Errno = 8385 - ERROR_DS_EXISTS_IN_MAY_HAVE syscall.Errno = 8386 - ERROR_DS_NONEXISTENT_MAY_HAVE syscall.Errno = 8387 - ERROR_DS_NONEXISTENT_MUST_HAVE syscall.Errno = 8388 - ERROR_DS_AUX_CLS_TEST_FAIL syscall.Errno = 8389 - ERROR_DS_NONEXISTENT_POSS_SUP syscall.Errno = 8390 - ERROR_DS_SUB_CLS_TEST_FAIL syscall.Errno = 8391 - ERROR_DS_BAD_RDN_ATT_ID_SYNTAX syscall.Errno = 8392 - ERROR_DS_EXISTS_IN_AUX_CLS syscall.Errno = 8393 - ERROR_DS_EXISTS_IN_SUB_CLS syscall.Errno = 8394 - ERROR_DS_EXISTS_IN_POSS_SUP syscall.Errno = 8395 - ERROR_DS_RECALCSCHEMA_FAILED syscall.Errno = 8396 - ERROR_DS_TREE_DELETE_NOT_FINISHED syscall.Errno = 8397 - ERROR_DS_CANT_DELETE syscall.Errno = 8398 - ERROR_DS_ATT_SCHEMA_REQ_ID syscall.Errno = 8399 - ERROR_DS_BAD_ATT_SCHEMA_SYNTAX syscall.Errno = 8400 - ERROR_DS_CANT_CACHE_ATT syscall.Errno = 8401 - ERROR_DS_CANT_CACHE_CLASS syscall.Errno = 8402 - ERROR_DS_CANT_REMOVE_ATT_CACHE syscall.Errno = 8403 - ERROR_DS_CANT_REMOVE_CLASS_CACHE syscall.Errno = 8404 - ERROR_DS_CANT_RETRIEVE_DN syscall.Errno = 8405 - ERROR_DS_MISSING_SUPREF syscall.Errno = 8406 - ERROR_DS_CANT_RETRIEVE_INSTANCE syscall.Errno = 8407 - ERROR_DS_CODE_INCONSISTENCY syscall.Errno = 8408 - ERROR_DS_DATABASE_ERROR syscall.Errno = 8409 - ERROR_DS_GOVERNSID_MISSING syscall.Errno = 8410 - ERROR_DS_MISSING_EXPECTED_ATT syscall.Errno = 8411 - ERROR_DS_NCNAME_MISSING_CR_REF syscall.Errno = 8412 - ERROR_DS_SECURITY_CHECKING_ERROR syscall.Errno = 8413 - ERROR_DS_SCHEMA_NOT_LOADED syscall.Errno = 8414 - ERROR_DS_SCHEMA_ALLOC_FAILED syscall.Errno = 8415 - ERROR_DS_ATT_SCHEMA_REQ_SYNTAX syscall.Errno = 8416 - ERROR_DS_GCVERIFY_ERROR syscall.Errno = 8417 - ERROR_DS_DRA_SCHEMA_MISMATCH syscall.Errno = 8418 - ERROR_DS_CANT_FIND_DSA_OBJ syscall.Errno = 8419 - ERROR_DS_CANT_FIND_EXPECTED_NC syscall.Errno = 8420 - ERROR_DS_CANT_FIND_NC_IN_CACHE syscall.Errno = 8421 - ERROR_DS_CANT_RETRIEVE_CHILD syscall.Errno = 8422 - ERROR_DS_SECURITY_ILLEGAL_MODIFY syscall.Errno = 8423 - ERROR_DS_CANT_REPLACE_HIDDEN_REC syscall.Errno = 8424 - ERROR_DS_BAD_HIERARCHY_FILE syscall.Errno = 8425 - ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED syscall.Errno = 8426 - ERROR_DS_CONFIG_PARAM_MISSING syscall.Errno = 8427 - ERROR_DS_COUNTING_AB_INDICES_FAILED syscall.Errno = 8428 - ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED syscall.Errno = 8429 - ERROR_DS_INTERNAL_FAILURE syscall.Errno = 8430 - ERROR_DS_UNKNOWN_ERROR syscall.Errno = 8431 - ERROR_DS_ROOT_REQUIRES_CLASS_TOP syscall.Errno = 8432 - ERROR_DS_REFUSING_FSMO_ROLES syscall.Errno = 8433 - ERROR_DS_MISSING_FSMO_SETTINGS syscall.Errno = 8434 - ERROR_DS_UNABLE_TO_SURRENDER_ROLES syscall.Errno = 8435 - ERROR_DS_DRA_GENERIC syscall.Errno = 8436 - ERROR_DS_DRA_INVALID_PARAMETER syscall.Errno = 8437 - ERROR_DS_DRA_BUSY syscall.Errno = 8438 - ERROR_DS_DRA_BAD_DN syscall.Errno = 8439 - ERROR_DS_DRA_BAD_NC syscall.Errno = 8440 - ERROR_DS_DRA_DN_EXISTS syscall.Errno = 8441 - ERROR_DS_DRA_INTERNAL_ERROR syscall.Errno = 8442 - ERROR_DS_DRA_INCONSISTENT_DIT syscall.Errno = 8443 - ERROR_DS_DRA_CONNECTION_FAILED syscall.Errno = 8444 - ERROR_DS_DRA_BAD_INSTANCE_TYPE syscall.Errno = 8445 - ERROR_DS_DRA_OUT_OF_MEM syscall.Errno = 8446 - ERROR_DS_DRA_MAIL_PROBLEM syscall.Errno = 8447 - ERROR_DS_DRA_REF_ALREADY_EXISTS syscall.Errno = 8448 - ERROR_DS_DRA_REF_NOT_FOUND syscall.Errno = 8449 - ERROR_DS_DRA_OBJ_IS_REP_SOURCE syscall.Errno = 8450 - ERROR_DS_DRA_DB_ERROR syscall.Errno = 8451 - ERROR_DS_DRA_NO_REPLICA syscall.Errno = 8452 - ERROR_DS_DRA_ACCESS_DENIED syscall.Errno = 8453 - ERROR_DS_DRA_NOT_SUPPORTED syscall.Errno = 8454 - ERROR_DS_DRA_RPC_CANCELLED syscall.Errno = 8455 - ERROR_DS_DRA_SOURCE_DISABLED syscall.Errno = 8456 - ERROR_DS_DRA_SINK_DISABLED syscall.Errno = 8457 - ERROR_DS_DRA_NAME_COLLISION syscall.Errno = 8458 - ERROR_DS_DRA_SOURCE_REINSTALLED syscall.Errno = 8459 - ERROR_DS_DRA_MISSING_PARENT syscall.Errno = 8460 - ERROR_DS_DRA_PREEMPTED syscall.Errno = 8461 - ERROR_DS_DRA_ABANDON_SYNC syscall.Errno = 8462 - ERROR_DS_DRA_SHUTDOWN syscall.Errno = 8463 - ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET syscall.Errno = 8464 - ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA syscall.Errno = 8465 - ERROR_DS_DRA_EXTN_CONNECTION_FAILED syscall.Errno = 8466 - ERROR_DS_INSTALL_SCHEMA_MISMATCH syscall.Errno = 8467 - ERROR_DS_DUP_LINK_ID syscall.Errno = 8468 - ERROR_DS_NAME_ERROR_RESOLVING syscall.Errno = 8469 - ERROR_DS_NAME_ERROR_NOT_FOUND syscall.Errno = 8470 - ERROR_DS_NAME_ERROR_NOT_UNIQUE syscall.Errno = 8471 - ERROR_DS_NAME_ERROR_NO_MAPPING syscall.Errno = 8472 - ERROR_DS_NAME_ERROR_DOMAIN_ONLY syscall.Errno = 8473 - ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING syscall.Errno = 8474 - ERROR_DS_CONSTRUCTED_ATT_MOD syscall.Errno = 8475 - ERROR_DS_WRONG_OM_OBJ_CLASS syscall.Errno = 8476 - ERROR_DS_DRA_REPL_PENDING syscall.Errno = 8477 - ERROR_DS_DS_REQUIRED syscall.Errno = 8478 - ERROR_DS_INVALID_LDAP_DISPLAY_NAME syscall.Errno = 8479 - ERROR_DS_NON_BASE_SEARCH syscall.Errno = 8480 - ERROR_DS_CANT_RETRIEVE_ATTS syscall.Errno = 8481 - ERROR_DS_BACKLINK_WITHOUT_LINK syscall.Errno = 8482 - ERROR_DS_EPOCH_MISMATCH syscall.Errno = 8483 - ERROR_DS_SRC_NAME_MISMATCH syscall.Errno = 8484 - ERROR_DS_SRC_AND_DST_NC_IDENTICAL syscall.Errno = 8485 - ERROR_DS_DST_NC_MISMATCH syscall.Errno = 8486 - ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC syscall.Errno = 8487 - ERROR_DS_SRC_GUID_MISMATCH syscall.Errno = 8488 - ERROR_DS_CANT_MOVE_DELETED_OBJECT syscall.Errno = 8489 - ERROR_DS_PDC_OPERATION_IN_PROGRESS syscall.Errno = 8490 - ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD syscall.Errno = 8491 - ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION syscall.Errno = 8492 - ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS syscall.Errno = 8493 - ERROR_DS_NC_MUST_HAVE_NC_PARENT syscall.Errno = 8494 - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE syscall.Errno = 8495 - ERROR_DS_DST_DOMAIN_NOT_NATIVE syscall.Errno = 8496 - ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER syscall.Errno = 8497 - ERROR_DS_CANT_MOVE_ACCOUNT_GROUP syscall.Errno = 8498 - ERROR_DS_CANT_MOVE_RESOURCE_GROUP syscall.Errno = 8499 - ERROR_DS_INVALID_SEARCH_FLAG syscall.Errno = 8500 - ERROR_DS_NO_TREE_DELETE_ABOVE_NC syscall.Errno = 8501 - ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE syscall.Errno = 8502 - ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE syscall.Errno = 8503 - ERROR_DS_SAM_INIT_FAILURE syscall.Errno = 8504 - ERROR_DS_SENSITIVE_GROUP_VIOLATION syscall.Errno = 8505 - ERROR_DS_CANT_MOD_PRIMARYGROUPID syscall.Errno = 8506 - ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD syscall.Errno = 8507 - ERROR_DS_NONSAFE_SCHEMA_CHANGE syscall.Errno = 8508 - ERROR_DS_SCHEMA_UPDATE_DISALLOWED syscall.Errno = 8509 - ERROR_DS_CANT_CREATE_UNDER_SCHEMA syscall.Errno = 8510 - ERROR_DS_INSTALL_NO_SRC_SCH_VERSION syscall.Errno = 8511 - ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE syscall.Errno = 8512 - ERROR_DS_INVALID_GROUP_TYPE syscall.Errno = 8513 - ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8514 - ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8515 - ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8516 - ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8517 - ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8518 - ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER syscall.Errno = 8519 - ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER syscall.Errno = 8520 - ERROR_DS_HAVE_PRIMARY_MEMBERS syscall.Errno = 8521 - ERROR_DS_STRING_SD_CONVERSION_FAILED syscall.Errno = 8522 - ERROR_DS_NAMING_MASTER_GC syscall.Errno = 8523 - ERROR_DS_DNS_LOOKUP_FAILURE syscall.Errno = 8524 - ERROR_DS_COULDNT_UPDATE_SPNS syscall.Errno = 8525 - ERROR_DS_CANT_RETRIEVE_SD syscall.Errno = 8526 - ERROR_DS_KEY_NOT_UNIQUE syscall.Errno = 8527 - ERROR_DS_WRONG_LINKED_ATT_SYNTAX syscall.Errno = 8528 - ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD syscall.Errno = 8529 - ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY syscall.Errno = 8530 - ERROR_DS_CANT_START syscall.Errno = 8531 - ERROR_DS_INIT_FAILURE syscall.Errno = 8532 - ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION syscall.Errno = 8533 - ERROR_DS_SOURCE_DOMAIN_IN_FOREST syscall.Errno = 8534 - ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST syscall.Errno = 8535 - ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED syscall.Errno = 8536 - ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN syscall.Errno = 8537 - ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER syscall.Errno = 8538 - ERROR_DS_SRC_SID_EXISTS_IN_FOREST syscall.Errno = 8539 - ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH syscall.Errno = 8540 - ERROR_SAM_INIT_FAILURE syscall.Errno = 8541 - ERROR_DS_DRA_SCHEMA_INFO_SHIP syscall.Errno = 8542 - ERROR_DS_DRA_SCHEMA_CONFLICT syscall.Errno = 8543 - ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT syscall.Errno = 8544 - ERROR_DS_DRA_OBJ_NC_MISMATCH syscall.Errno = 8545 - ERROR_DS_NC_STILL_HAS_DSAS syscall.Errno = 8546 - ERROR_DS_GC_REQUIRED syscall.Errno = 8547 - ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY syscall.Errno = 8548 - ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS syscall.Errno = 8549 - ERROR_DS_CANT_ADD_TO_GC syscall.Errno = 8550 - ERROR_DS_NO_CHECKPOINT_WITH_PDC syscall.Errno = 8551 - ERROR_DS_SOURCE_AUDITING_NOT_ENABLED syscall.Errno = 8552 - ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC syscall.Errno = 8553 - ERROR_DS_INVALID_NAME_FOR_SPN syscall.Errno = 8554 - ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS syscall.Errno = 8555 - ERROR_DS_UNICODEPWD_NOT_IN_QUOTES syscall.Errno = 8556 - ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED syscall.Errno = 8557 - ERROR_DS_MUST_BE_RUN_ON_DST_DC syscall.Errno = 8558 - ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER syscall.Errno = 8559 - ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ syscall.Errno = 8560 - ERROR_DS_INIT_FAILURE_CONSOLE syscall.Errno = 8561 - ERROR_DS_SAM_INIT_FAILURE_CONSOLE syscall.Errno = 8562 - ERROR_DS_FOREST_VERSION_TOO_HIGH syscall.Errno = 8563 - ERROR_DS_DOMAIN_VERSION_TOO_HIGH syscall.Errno = 8564 - ERROR_DS_FOREST_VERSION_TOO_LOW syscall.Errno = 8565 - ERROR_DS_DOMAIN_VERSION_TOO_LOW syscall.Errno = 8566 - ERROR_DS_INCOMPATIBLE_VERSION syscall.Errno = 8567 - ERROR_DS_LOW_DSA_VERSION syscall.Errno = 8568 - ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN syscall.Errno = 8569 - ERROR_DS_NOT_SUPPORTED_SORT_ORDER syscall.Errno = 8570 - ERROR_DS_NAME_NOT_UNIQUE syscall.Errno = 8571 - ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 syscall.Errno = 8572 - ERROR_DS_OUT_OF_VERSION_STORE syscall.Errno = 8573 - ERROR_DS_INCOMPATIBLE_CONTROLS_USED syscall.Errno = 8574 - ERROR_DS_NO_REF_DOMAIN syscall.Errno = 8575 - ERROR_DS_RESERVED_LINK_ID syscall.Errno = 8576 - ERROR_DS_LINK_ID_NOT_AVAILABLE syscall.Errno = 8577 - ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8578 - ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE syscall.Errno = 8579 - ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC syscall.Errno = 8580 - ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG syscall.Errno = 8581 - ERROR_DS_MODIFYDN_WRONG_GRANDPARENT syscall.Errno = 8582 - ERROR_DS_NAME_ERROR_TRUST_REFERRAL syscall.Errno = 8583 - ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER syscall.Errno = 8584 - ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD syscall.Errno = 8585 - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 syscall.Errno = 8586 - ERROR_DS_THREAD_LIMIT_EXCEEDED syscall.Errno = 8587 - ERROR_DS_NOT_CLOSEST syscall.Errno = 8588 - ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF syscall.Errno = 8589 - ERROR_DS_SINGLE_USER_MODE_FAILED syscall.Errno = 8590 - ERROR_DS_NTDSCRIPT_SYNTAX_ERROR syscall.Errno = 8591 - ERROR_DS_NTDSCRIPT_PROCESS_ERROR syscall.Errno = 8592 - ERROR_DS_DIFFERENT_REPL_EPOCHS syscall.Errno = 8593 - ERROR_DS_DRS_EXTENSIONS_CHANGED syscall.Errno = 8594 - ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR syscall.Errno = 8595 - ERROR_DS_NO_MSDS_INTID syscall.Errno = 8596 - ERROR_DS_DUP_MSDS_INTID syscall.Errno = 8597 - ERROR_DS_EXISTS_IN_RDNATTID syscall.Errno = 8598 - ERROR_DS_AUTHORIZATION_FAILED syscall.Errno = 8599 - ERROR_DS_INVALID_SCRIPT syscall.Errno = 8600 - ERROR_DS_REMOTE_CROSSREF_OP_FAILED syscall.Errno = 8601 - ERROR_DS_CROSS_REF_BUSY syscall.Errno = 8602 - ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN syscall.Errno = 8603 - ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC syscall.Errno = 8604 - ERROR_DS_DUPLICATE_ID_FOUND syscall.Errno = 8605 - ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT syscall.Errno = 8606 - ERROR_DS_GROUP_CONVERSION_ERROR syscall.Errno = 8607 - ERROR_DS_CANT_MOVE_APP_BASIC_GROUP syscall.Errno = 8608 - ERROR_DS_CANT_MOVE_APP_QUERY_GROUP syscall.Errno = 8609 - ERROR_DS_ROLE_NOT_VERIFIED syscall.Errno = 8610 - ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL syscall.Errno = 8611 - ERROR_DS_DOMAIN_RENAME_IN_PROGRESS syscall.Errno = 8612 - ERROR_DS_EXISTING_AD_CHILD_NC syscall.Errno = 8613 - ERROR_DS_REPL_LIFETIME_EXCEEDED syscall.Errno = 8614 - ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER syscall.Errno = 8615 - ERROR_DS_LDAP_SEND_QUEUE_FULL syscall.Errno = 8616 - ERROR_DS_DRA_OUT_SCHEDULE_WINDOW syscall.Errno = 8617 - ERROR_DS_POLICY_NOT_KNOWN syscall.Errno = 8618 - ERROR_NO_SITE_SETTINGS_OBJECT syscall.Errno = 8619 - ERROR_NO_SECRETS syscall.Errno = 8620 - ERROR_NO_WRITABLE_DC_FOUND syscall.Errno = 8621 - ERROR_DS_NO_SERVER_OBJECT syscall.Errno = 8622 - ERROR_DS_NO_NTDSA_OBJECT syscall.Errno = 8623 - ERROR_DS_NON_ASQ_SEARCH syscall.Errno = 8624 - ERROR_DS_AUDIT_FAILURE syscall.Errno = 8625 - ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE syscall.Errno = 8626 - ERROR_DS_INVALID_SEARCH_FLAG_TUPLE syscall.Errno = 8627 - ERROR_DS_HIERARCHY_TABLE_TOO_DEEP syscall.Errno = 8628 - ERROR_DS_DRA_CORRUPT_UTD_VECTOR syscall.Errno = 8629 - ERROR_DS_DRA_SECRETS_DENIED syscall.Errno = 8630 - ERROR_DS_RESERVED_MAPI_ID syscall.Errno = 8631 - ERROR_DS_MAPI_ID_NOT_AVAILABLE syscall.Errno = 8632 - ERROR_DS_DRA_MISSING_KRBTGT_SECRET syscall.Errno = 8633 - ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST syscall.Errno = 8634 - ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST syscall.Errno = 8635 - ERROR_INVALID_USER_PRINCIPAL_NAME syscall.Errno = 8636 - ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS syscall.Errno = 8637 - ERROR_DS_OID_NOT_FOUND syscall.Errno = 8638 - ERROR_DS_DRA_RECYCLED_TARGET syscall.Errno = 8639 - ERROR_DS_DISALLOWED_NC_REDIRECT syscall.Errno = 8640 - ERROR_DS_HIGH_ADLDS_FFL syscall.Errno = 8641 - ERROR_DS_HIGH_DSA_VERSION syscall.Errno = 8642 - ERROR_DS_LOW_ADLDS_FFL syscall.Errno = 8643 - ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION syscall.Errno = 8644 - ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED syscall.Errno = 8645 - ERROR_INCORRECT_ACCOUNT_TYPE syscall.Errno = 8646 - ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8647 - ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8648 - ERROR_DS_MISSING_FOREST_TRUST syscall.Errno = 8649 - ERROR_DS_VALUE_KEY_NOT_UNIQUE syscall.Errno = 8650 - DNS_ERROR_RESPONSE_CODES_BASE syscall.Errno = 9000 - DNS_ERROR_RCODE_NO_ERROR = ERROR_SUCCESS - DNS_ERROR_MASK syscall.Errno = 0x00002328 - DNS_ERROR_RCODE_FORMAT_ERROR syscall.Errno = 9001 - DNS_ERROR_RCODE_SERVER_FAILURE syscall.Errno = 9002 - DNS_ERROR_RCODE_NAME_ERROR syscall.Errno = 9003 - DNS_ERROR_RCODE_NOT_IMPLEMENTED syscall.Errno = 9004 - DNS_ERROR_RCODE_REFUSED syscall.Errno = 9005 - DNS_ERROR_RCODE_YXDOMAIN syscall.Errno = 9006 - DNS_ERROR_RCODE_YXRRSET syscall.Errno = 9007 - DNS_ERROR_RCODE_NXRRSET syscall.Errno = 9008 - DNS_ERROR_RCODE_NOTAUTH syscall.Errno = 9009 - DNS_ERROR_RCODE_NOTZONE syscall.Errno = 9010 - DNS_ERROR_RCODE_BADSIG syscall.Errno = 9016 - DNS_ERROR_RCODE_BADKEY syscall.Errno = 9017 - DNS_ERROR_RCODE_BADTIME syscall.Errno = 9018 - DNS_ERROR_RCODE_LAST = DNS_ERROR_RCODE_BADTIME - DNS_ERROR_DNSSEC_BASE syscall.Errno = 9100 - DNS_ERROR_KEYMASTER_REQUIRED syscall.Errno = 9101 - DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE syscall.Errno = 9102 - DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 syscall.Errno = 9103 - DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS syscall.Errno = 9104 - DNS_ERROR_UNSUPPORTED_ALGORITHM syscall.Errno = 9105 - DNS_ERROR_INVALID_KEY_SIZE syscall.Errno = 9106 - DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE syscall.Errno = 9107 - DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION syscall.Errno = 9108 - DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR syscall.Errno = 9109 - DNS_ERROR_UNEXPECTED_CNG_ERROR syscall.Errno = 9110 - DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION syscall.Errno = 9111 - DNS_ERROR_KSP_NOT_ACCESSIBLE syscall.Errno = 9112 - DNS_ERROR_TOO_MANY_SKDS syscall.Errno = 9113 - DNS_ERROR_INVALID_ROLLOVER_PERIOD syscall.Errno = 9114 - DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET syscall.Errno = 9115 - DNS_ERROR_ROLLOVER_IN_PROGRESS syscall.Errno = 9116 - DNS_ERROR_STANDBY_KEY_NOT_PRESENT syscall.Errno = 9117 - DNS_ERROR_NOT_ALLOWED_ON_ZSK syscall.Errno = 9118 - DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD syscall.Errno = 9119 - DNS_ERROR_ROLLOVER_ALREADY_QUEUED syscall.Errno = 9120 - DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE syscall.Errno = 9121 - DNS_ERROR_BAD_KEYMASTER syscall.Errno = 9122 - DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD syscall.Errno = 9123 - DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT syscall.Errno = 9124 - DNS_ERROR_DNSSEC_IS_DISABLED syscall.Errno = 9125 - DNS_ERROR_INVALID_XML syscall.Errno = 9126 - DNS_ERROR_NO_VALID_TRUST_ANCHORS syscall.Errno = 9127 - DNS_ERROR_ROLLOVER_NOT_POKEABLE syscall.Errno = 9128 - DNS_ERROR_NSEC3_NAME_COLLISION syscall.Errno = 9129 - DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 syscall.Errno = 9130 - DNS_ERROR_PACKET_FMT_BASE syscall.Errno = 9500 - DNS_INFO_NO_RECORDS syscall.Errno = 9501 - DNS_ERROR_BAD_PACKET syscall.Errno = 9502 - DNS_ERROR_NO_PACKET syscall.Errno = 9503 - DNS_ERROR_RCODE syscall.Errno = 9504 - DNS_ERROR_UNSECURE_PACKET syscall.Errno = 9505 - DNS_STATUS_PACKET_UNSECURE = DNS_ERROR_UNSECURE_PACKET - DNS_REQUEST_PENDING syscall.Errno = 9506 - DNS_ERROR_NO_MEMORY = ERROR_OUTOFMEMORY - DNS_ERROR_INVALID_NAME = ERROR_INVALID_NAME - DNS_ERROR_INVALID_DATA = ERROR_INVALID_DATA - DNS_ERROR_GENERAL_API_BASE syscall.Errno = 9550 - DNS_ERROR_INVALID_TYPE syscall.Errno = 9551 - DNS_ERROR_INVALID_IP_ADDRESS syscall.Errno = 9552 - DNS_ERROR_INVALID_PROPERTY syscall.Errno = 9553 - DNS_ERROR_TRY_AGAIN_LATER syscall.Errno = 9554 - DNS_ERROR_NOT_UNIQUE syscall.Errno = 9555 - DNS_ERROR_NON_RFC_NAME syscall.Errno = 9556 - DNS_STATUS_FQDN syscall.Errno = 9557 - DNS_STATUS_DOTTED_NAME syscall.Errno = 9558 - DNS_STATUS_SINGLE_PART_NAME syscall.Errno = 9559 - DNS_ERROR_INVALID_NAME_CHAR syscall.Errno = 9560 - DNS_ERROR_NUMERIC_NAME syscall.Errno = 9561 - DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER syscall.Errno = 9562 - DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION syscall.Errno = 9563 - DNS_ERROR_CANNOT_FIND_ROOT_HINTS syscall.Errno = 9564 - DNS_ERROR_INCONSISTENT_ROOT_HINTS syscall.Errno = 9565 - DNS_ERROR_DWORD_VALUE_TOO_SMALL syscall.Errno = 9566 - DNS_ERROR_DWORD_VALUE_TOO_LARGE syscall.Errno = 9567 - DNS_ERROR_BACKGROUND_LOADING syscall.Errno = 9568 - DNS_ERROR_NOT_ALLOWED_ON_RODC syscall.Errno = 9569 - DNS_ERROR_NOT_ALLOWED_UNDER_DNAME syscall.Errno = 9570 - DNS_ERROR_DELEGATION_REQUIRED syscall.Errno = 9571 - DNS_ERROR_INVALID_POLICY_TABLE syscall.Errno = 9572 - DNS_ERROR_ADDRESS_REQUIRED syscall.Errno = 9573 - DNS_ERROR_ZONE_BASE syscall.Errno = 9600 - DNS_ERROR_ZONE_DOES_NOT_EXIST syscall.Errno = 9601 - DNS_ERROR_NO_ZONE_INFO syscall.Errno = 9602 - DNS_ERROR_INVALID_ZONE_OPERATION syscall.Errno = 9603 - DNS_ERROR_ZONE_CONFIGURATION_ERROR syscall.Errno = 9604 - DNS_ERROR_ZONE_HAS_NO_SOA_RECORD syscall.Errno = 9605 - DNS_ERROR_ZONE_HAS_NO_NS_RECORDS syscall.Errno = 9606 - DNS_ERROR_ZONE_LOCKED syscall.Errno = 9607 - DNS_ERROR_ZONE_CREATION_FAILED syscall.Errno = 9608 - DNS_ERROR_ZONE_ALREADY_EXISTS syscall.Errno = 9609 - DNS_ERROR_AUTOZONE_ALREADY_EXISTS syscall.Errno = 9610 - DNS_ERROR_INVALID_ZONE_TYPE syscall.Errno = 9611 - DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP syscall.Errno = 9612 - DNS_ERROR_ZONE_NOT_SECONDARY syscall.Errno = 9613 - DNS_ERROR_NEED_SECONDARY_ADDRESSES syscall.Errno = 9614 - DNS_ERROR_WINS_INIT_FAILED syscall.Errno = 9615 - DNS_ERROR_NEED_WINS_SERVERS syscall.Errno = 9616 - DNS_ERROR_NBSTAT_INIT_FAILED syscall.Errno = 9617 - DNS_ERROR_SOA_DELETE_INVALID syscall.Errno = 9618 - DNS_ERROR_FORWARDER_ALREADY_EXISTS syscall.Errno = 9619 - DNS_ERROR_ZONE_REQUIRES_MASTER_IP syscall.Errno = 9620 - DNS_ERROR_ZONE_IS_SHUTDOWN syscall.Errno = 9621 - DNS_ERROR_ZONE_LOCKED_FOR_SIGNING syscall.Errno = 9622 - DNS_ERROR_DATAFILE_BASE syscall.Errno = 9650 - DNS_ERROR_PRIMARY_REQUIRES_DATAFILE syscall.Errno = 9651 - DNS_ERROR_INVALID_DATAFILE_NAME syscall.Errno = 9652 - DNS_ERROR_DATAFILE_OPEN_FAILURE syscall.Errno = 9653 - DNS_ERROR_FILE_WRITEBACK_FAILED syscall.Errno = 9654 - DNS_ERROR_DATAFILE_PARSING syscall.Errno = 9655 - DNS_ERROR_DATABASE_BASE syscall.Errno = 9700 - DNS_ERROR_RECORD_DOES_NOT_EXIST syscall.Errno = 9701 - DNS_ERROR_RECORD_FORMAT syscall.Errno = 9702 - DNS_ERROR_NODE_CREATION_FAILED syscall.Errno = 9703 - DNS_ERROR_UNKNOWN_RECORD_TYPE syscall.Errno = 9704 - DNS_ERROR_RECORD_TIMED_OUT syscall.Errno = 9705 - DNS_ERROR_NAME_NOT_IN_ZONE syscall.Errno = 9706 - DNS_ERROR_CNAME_LOOP syscall.Errno = 9707 - DNS_ERROR_NODE_IS_CNAME syscall.Errno = 9708 - DNS_ERROR_CNAME_COLLISION syscall.Errno = 9709 - DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT syscall.Errno = 9710 - DNS_ERROR_RECORD_ALREADY_EXISTS syscall.Errno = 9711 - DNS_ERROR_SECONDARY_DATA syscall.Errno = 9712 - DNS_ERROR_NO_CREATE_CACHE_DATA syscall.Errno = 9713 - DNS_ERROR_NAME_DOES_NOT_EXIST syscall.Errno = 9714 - DNS_WARNING_PTR_CREATE_FAILED syscall.Errno = 9715 - DNS_WARNING_DOMAIN_UNDELETED syscall.Errno = 9716 - DNS_ERROR_DS_UNAVAILABLE syscall.Errno = 9717 - DNS_ERROR_DS_ZONE_ALREADY_EXISTS syscall.Errno = 9718 - DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE syscall.Errno = 9719 - DNS_ERROR_NODE_IS_DNAME syscall.Errno = 9720 - DNS_ERROR_DNAME_COLLISION syscall.Errno = 9721 - DNS_ERROR_ALIAS_LOOP syscall.Errno = 9722 - DNS_ERROR_OPERATION_BASE syscall.Errno = 9750 - DNS_INFO_AXFR_COMPLETE syscall.Errno = 9751 - DNS_ERROR_AXFR syscall.Errno = 9752 - DNS_INFO_ADDED_LOCAL_WINS syscall.Errno = 9753 - DNS_ERROR_SECURE_BASE syscall.Errno = 9800 - DNS_STATUS_CONTINUE_NEEDED syscall.Errno = 9801 - DNS_ERROR_SETUP_BASE syscall.Errno = 9850 - DNS_ERROR_NO_TCPIP syscall.Errno = 9851 - DNS_ERROR_NO_DNS_SERVERS syscall.Errno = 9852 - DNS_ERROR_DP_BASE syscall.Errno = 9900 - DNS_ERROR_DP_DOES_NOT_EXIST syscall.Errno = 9901 - DNS_ERROR_DP_ALREADY_EXISTS syscall.Errno = 9902 - DNS_ERROR_DP_NOT_ENLISTED syscall.Errno = 9903 - DNS_ERROR_DP_ALREADY_ENLISTED syscall.Errno = 9904 - DNS_ERROR_DP_NOT_AVAILABLE syscall.Errno = 9905 - DNS_ERROR_DP_FSMO_ERROR syscall.Errno = 9906 - DNS_ERROR_RRL_NOT_ENABLED syscall.Errno = 9911 - DNS_ERROR_RRL_INVALID_WINDOW_SIZE syscall.Errno = 9912 - DNS_ERROR_RRL_INVALID_IPV4_PREFIX syscall.Errno = 9913 - DNS_ERROR_RRL_INVALID_IPV6_PREFIX syscall.Errno = 9914 - DNS_ERROR_RRL_INVALID_TC_RATE syscall.Errno = 9915 - DNS_ERROR_RRL_INVALID_LEAK_RATE syscall.Errno = 9916 - DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE syscall.Errno = 9917 - DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS syscall.Errno = 9921 - DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST syscall.Errno = 9922 - DNS_ERROR_VIRTUALIZATION_TREE_LOCKED syscall.Errno = 9923 - DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME syscall.Errno = 9924 - DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE syscall.Errno = 9925 - DNS_ERROR_ZONESCOPE_ALREADY_EXISTS syscall.Errno = 9951 - DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST syscall.Errno = 9952 - DNS_ERROR_DEFAULT_ZONESCOPE syscall.Errno = 9953 - DNS_ERROR_INVALID_ZONESCOPE_NAME syscall.Errno = 9954 - DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES syscall.Errno = 9955 - DNS_ERROR_LOAD_ZONESCOPE_FAILED syscall.Errno = 9956 - DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED syscall.Errno = 9957 - DNS_ERROR_INVALID_SCOPE_NAME syscall.Errno = 9958 - DNS_ERROR_SCOPE_DOES_NOT_EXIST syscall.Errno = 9959 - DNS_ERROR_DEFAULT_SCOPE syscall.Errno = 9960 - DNS_ERROR_INVALID_SCOPE_OPERATION syscall.Errno = 9961 - DNS_ERROR_SCOPE_LOCKED syscall.Errno = 9962 - DNS_ERROR_SCOPE_ALREADY_EXISTS syscall.Errno = 9963 - DNS_ERROR_POLICY_ALREADY_EXISTS syscall.Errno = 9971 - DNS_ERROR_POLICY_DOES_NOT_EXIST syscall.Errno = 9972 - DNS_ERROR_POLICY_INVALID_CRITERIA syscall.Errno = 9973 - DNS_ERROR_POLICY_INVALID_SETTINGS syscall.Errno = 9974 - DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED syscall.Errno = 9975 - DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST syscall.Errno = 9976 - DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS syscall.Errno = 9977 - DNS_ERROR_SUBNET_DOES_NOT_EXIST syscall.Errno = 9978 - DNS_ERROR_SUBNET_ALREADY_EXISTS syscall.Errno = 9979 - DNS_ERROR_POLICY_LOCKED syscall.Errno = 9980 - DNS_ERROR_POLICY_INVALID_WEIGHT syscall.Errno = 9981 - DNS_ERROR_POLICY_INVALID_NAME syscall.Errno = 9982 - DNS_ERROR_POLICY_MISSING_CRITERIA syscall.Errno = 9983 - DNS_ERROR_INVALID_CLIENT_SUBNET_NAME syscall.Errno = 9984 - DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID syscall.Errno = 9985 - DNS_ERROR_POLICY_SCOPE_MISSING syscall.Errno = 9986 - DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED syscall.Errno = 9987 - DNS_ERROR_SERVERSCOPE_IS_REFERENCED syscall.Errno = 9988 - DNS_ERROR_ZONESCOPE_IS_REFERENCED syscall.Errno = 9989 - DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET syscall.Errno = 9990 - DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL syscall.Errno = 9991 - DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL syscall.Errno = 9992 - DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE syscall.Errno = 9993 - DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN syscall.Errno = 9994 - DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE syscall.Errno = 9995 - DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY syscall.Errno = 9996 - WSABASEERR syscall.Errno = 10000 - WSAEINTR syscall.Errno = 10004 - WSAEBADF syscall.Errno = 10009 - WSAEACCES syscall.Errno = 10013 - WSAEFAULT syscall.Errno = 10014 - WSAEINVAL syscall.Errno = 10022 - WSAEMFILE syscall.Errno = 10024 - WSAEWOULDBLOCK syscall.Errno = 10035 - WSAEINPROGRESS syscall.Errno = 10036 - WSAEALREADY syscall.Errno = 10037 - WSAENOTSOCK syscall.Errno = 10038 - WSAEDESTADDRREQ syscall.Errno = 10039 - WSAEMSGSIZE syscall.Errno = 10040 - WSAEPROTOTYPE syscall.Errno = 10041 - WSAENOPROTOOPT syscall.Errno = 10042 - WSAEPROTONOSUPPORT syscall.Errno = 10043 - WSAESOCKTNOSUPPORT syscall.Errno = 10044 - WSAEOPNOTSUPP syscall.Errno = 10045 - WSAEPFNOSUPPORT syscall.Errno = 10046 - WSAEAFNOSUPPORT syscall.Errno = 10047 - WSAEADDRINUSE syscall.Errno = 10048 - WSAEADDRNOTAVAIL syscall.Errno = 10049 - WSAENETDOWN syscall.Errno = 10050 - WSAENETUNREACH syscall.Errno = 10051 - WSAENETRESET syscall.Errno = 10052 - WSAECONNABORTED syscall.Errno = 10053 - WSAECONNRESET syscall.Errno = 10054 - WSAENOBUFS syscall.Errno = 10055 - WSAEISCONN syscall.Errno = 10056 - WSAENOTCONN syscall.Errno = 10057 - WSAESHUTDOWN syscall.Errno = 10058 - WSAETOOMANYREFS syscall.Errno = 10059 - WSAETIMEDOUT syscall.Errno = 10060 - WSAECONNREFUSED syscall.Errno = 10061 - WSAELOOP syscall.Errno = 10062 - WSAENAMETOOLONG syscall.Errno = 10063 - WSAEHOSTDOWN syscall.Errno = 10064 - WSAEHOSTUNREACH syscall.Errno = 10065 - WSAENOTEMPTY syscall.Errno = 10066 - WSAEPROCLIM syscall.Errno = 10067 - WSAEUSERS syscall.Errno = 10068 - WSAEDQUOT syscall.Errno = 10069 - WSAESTALE syscall.Errno = 10070 - WSAEREMOTE syscall.Errno = 10071 - WSASYSNOTREADY syscall.Errno = 10091 - WSAVERNOTSUPPORTED syscall.Errno = 10092 - WSANOTINITIALISED syscall.Errno = 10093 - WSAEDISCON syscall.Errno = 10101 - WSAENOMORE syscall.Errno = 10102 - WSAECANCELLED syscall.Errno = 10103 - WSAEINVALIDPROCTABLE syscall.Errno = 10104 - WSAEINVALIDPROVIDER syscall.Errno = 10105 - WSAEPROVIDERFAILEDINIT syscall.Errno = 10106 - WSASYSCALLFAILURE syscall.Errno = 10107 - WSASERVICE_NOT_FOUND syscall.Errno = 10108 - WSATYPE_NOT_FOUND syscall.Errno = 10109 - WSA_E_NO_MORE syscall.Errno = 10110 - WSA_E_CANCELLED syscall.Errno = 10111 - WSAEREFUSED syscall.Errno = 10112 - WSAHOST_NOT_FOUND syscall.Errno = 11001 - WSATRY_AGAIN syscall.Errno = 11002 - WSANO_RECOVERY syscall.Errno = 11003 - WSANO_DATA syscall.Errno = 11004 - WSA_QOS_RECEIVERS syscall.Errno = 11005 - WSA_QOS_SENDERS syscall.Errno = 11006 - WSA_QOS_NO_SENDERS syscall.Errno = 11007 - WSA_QOS_NO_RECEIVERS syscall.Errno = 11008 - WSA_QOS_REQUEST_CONFIRMED syscall.Errno = 11009 - WSA_QOS_ADMISSION_FAILURE syscall.Errno = 11010 - WSA_QOS_POLICY_FAILURE syscall.Errno = 11011 - WSA_QOS_BAD_STYLE syscall.Errno = 11012 - WSA_QOS_BAD_OBJECT syscall.Errno = 11013 - WSA_QOS_TRAFFIC_CTRL_ERROR syscall.Errno = 11014 - WSA_QOS_GENERIC_ERROR syscall.Errno = 11015 - WSA_QOS_ESERVICETYPE syscall.Errno = 11016 - WSA_QOS_EFLOWSPEC syscall.Errno = 11017 - WSA_QOS_EPROVSPECBUF syscall.Errno = 11018 - WSA_QOS_EFILTERSTYLE syscall.Errno = 11019 - WSA_QOS_EFILTERTYPE syscall.Errno = 11020 - WSA_QOS_EFILTERCOUNT syscall.Errno = 11021 - WSA_QOS_EOBJLENGTH syscall.Errno = 11022 - WSA_QOS_EFLOWCOUNT syscall.Errno = 11023 - WSA_QOS_EUNKOWNPSOBJ syscall.Errno = 11024 - WSA_QOS_EPOLICYOBJ syscall.Errno = 11025 - WSA_QOS_EFLOWDESC syscall.Errno = 11026 - WSA_QOS_EPSFLOWSPEC syscall.Errno = 11027 - WSA_QOS_EPSFILTERSPEC syscall.Errno = 11028 - WSA_QOS_ESDMODEOBJ syscall.Errno = 11029 - WSA_QOS_ESHAPERATEOBJ syscall.Errno = 11030 - WSA_QOS_RESERVED_PETYPE syscall.Errno = 11031 - WSA_SECURE_HOST_NOT_FOUND syscall.Errno = 11032 - WSA_IPSEC_NAME_POLICY_ERROR syscall.Errno = 11033 - ERROR_IPSEC_QM_POLICY_EXISTS syscall.Errno = 13000 - ERROR_IPSEC_QM_POLICY_NOT_FOUND syscall.Errno = 13001 - ERROR_IPSEC_QM_POLICY_IN_USE syscall.Errno = 13002 - ERROR_IPSEC_MM_POLICY_EXISTS syscall.Errno = 13003 - ERROR_IPSEC_MM_POLICY_NOT_FOUND syscall.Errno = 13004 - ERROR_IPSEC_MM_POLICY_IN_USE syscall.Errno = 13005 - ERROR_IPSEC_MM_FILTER_EXISTS syscall.Errno = 13006 - ERROR_IPSEC_MM_FILTER_NOT_FOUND syscall.Errno = 13007 - ERROR_IPSEC_TRANSPORT_FILTER_EXISTS syscall.Errno = 13008 - ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND syscall.Errno = 13009 - ERROR_IPSEC_MM_AUTH_EXISTS syscall.Errno = 13010 - ERROR_IPSEC_MM_AUTH_NOT_FOUND syscall.Errno = 13011 - ERROR_IPSEC_MM_AUTH_IN_USE syscall.Errno = 13012 - ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND syscall.Errno = 13013 - ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND syscall.Errno = 13014 - ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND syscall.Errno = 13015 - ERROR_IPSEC_TUNNEL_FILTER_EXISTS syscall.Errno = 13016 - ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND syscall.Errno = 13017 - ERROR_IPSEC_MM_FILTER_PENDING_DELETION syscall.Errno = 13018 - ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION syscall.Errno = 13019 - ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION syscall.Errno = 13020 - ERROR_IPSEC_MM_POLICY_PENDING_DELETION syscall.Errno = 13021 - ERROR_IPSEC_MM_AUTH_PENDING_DELETION syscall.Errno = 13022 - ERROR_IPSEC_QM_POLICY_PENDING_DELETION syscall.Errno = 13023 - WARNING_IPSEC_MM_POLICY_PRUNED syscall.Errno = 13024 - WARNING_IPSEC_QM_POLICY_PRUNED syscall.Errno = 13025 - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN syscall.Errno = 13800 - ERROR_IPSEC_IKE_AUTH_FAIL syscall.Errno = 13801 - ERROR_IPSEC_IKE_ATTRIB_FAIL syscall.Errno = 13802 - ERROR_IPSEC_IKE_NEGOTIATION_PENDING syscall.Errno = 13803 - ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR syscall.Errno = 13804 - ERROR_IPSEC_IKE_TIMED_OUT syscall.Errno = 13805 - ERROR_IPSEC_IKE_NO_CERT syscall.Errno = 13806 - ERROR_IPSEC_IKE_SA_DELETED syscall.Errno = 13807 - ERROR_IPSEC_IKE_SA_REAPED syscall.Errno = 13808 - ERROR_IPSEC_IKE_MM_ACQUIRE_DROP syscall.Errno = 13809 - ERROR_IPSEC_IKE_QM_ACQUIRE_DROP syscall.Errno = 13810 - ERROR_IPSEC_IKE_QUEUE_DROP_MM syscall.Errno = 13811 - ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM syscall.Errno = 13812 - ERROR_IPSEC_IKE_DROP_NO_RESPONSE syscall.Errno = 13813 - ERROR_IPSEC_IKE_MM_DELAY_DROP syscall.Errno = 13814 - ERROR_IPSEC_IKE_QM_DELAY_DROP syscall.Errno = 13815 - ERROR_IPSEC_IKE_ERROR syscall.Errno = 13816 - ERROR_IPSEC_IKE_CRL_FAILED syscall.Errno = 13817 - ERROR_IPSEC_IKE_INVALID_KEY_USAGE syscall.Errno = 13818 - ERROR_IPSEC_IKE_INVALID_CERT_TYPE syscall.Errno = 13819 - ERROR_IPSEC_IKE_NO_PRIVATE_KEY syscall.Errno = 13820 - ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY syscall.Errno = 13821 - ERROR_IPSEC_IKE_DH_FAIL syscall.Errno = 13822 - ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED syscall.Errno = 13823 - ERROR_IPSEC_IKE_INVALID_HEADER syscall.Errno = 13824 - ERROR_IPSEC_IKE_NO_POLICY syscall.Errno = 13825 - ERROR_IPSEC_IKE_INVALID_SIGNATURE syscall.Errno = 13826 - ERROR_IPSEC_IKE_KERBEROS_ERROR syscall.Errno = 13827 - ERROR_IPSEC_IKE_NO_PUBLIC_KEY syscall.Errno = 13828 - ERROR_IPSEC_IKE_PROCESS_ERR syscall.Errno = 13829 - ERROR_IPSEC_IKE_PROCESS_ERR_SA syscall.Errno = 13830 - ERROR_IPSEC_IKE_PROCESS_ERR_PROP syscall.Errno = 13831 - ERROR_IPSEC_IKE_PROCESS_ERR_TRANS syscall.Errno = 13832 - ERROR_IPSEC_IKE_PROCESS_ERR_KE syscall.Errno = 13833 - ERROR_IPSEC_IKE_PROCESS_ERR_ID syscall.Errno = 13834 - ERROR_IPSEC_IKE_PROCESS_ERR_CERT syscall.Errno = 13835 - ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ syscall.Errno = 13836 - ERROR_IPSEC_IKE_PROCESS_ERR_HASH syscall.Errno = 13837 - ERROR_IPSEC_IKE_PROCESS_ERR_SIG syscall.Errno = 13838 - ERROR_IPSEC_IKE_PROCESS_ERR_NONCE syscall.Errno = 13839 - ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY syscall.Errno = 13840 - ERROR_IPSEC_IKE_PROCESS_ERR_DELETE syscall.Errno = 13841 - ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR syscall.Errno = 13842 - ERROR_IPSEC_IKE_INVALID_PAYLOAD syscall.Errno = 13843 - ERROR_IPSEC_IKE_LOAD_SOFT_SA syscall.Errno = 13844 - ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN syscall.Errno = 13845 - ERROR_IPSEC_IKE_INVALID_COOKIE syscall.Errno = 13846 - ERROR_IPSEC_IKE_NO_PEER_CERT syscall.Errno = 13847 - ERROR_IPSEC_IKE_PEER_CRL_FAILED syscall.Errno = 13848 - ERROR_IPSEC_IKE_POLICY_CHANGE syscall.Errno = 13849 - ERROR_IPSEC_IKE_NO_MM_POLICY syscall.Errno = 13850 - ERROR_IPSEC_IKE_NOTCBPRIV syscall.Errno = 13851 - ERROR_IPSEC_IKE_SECLOADFAIL syscall.Errno = 13852 - ERROR_IPSEC_IKE_FAILSSPINIT syscall.Errno = 13853 - ERROR_IPSEC_IKE_FAILQUERYSSP syscall.Errno = 13854 - ERROR_IPSEC_IKE_SRVACQFAIL syscall.Errno = 13855 - ERROR_IPSEC_IKE_SRVQUERYCRED syscall.Errno = 13856 - ERROR_IPSEC_IKE_GETSPIFAIL syscall.Errno = 13857 - ERROR_IPSEC_IKE_INVALID_FILTER syscall.Errno = 13858 - ERROR_IPSEC_IKE_OUT_OF_MEMORY syscall.Errno = 13859 - ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED syscall.Errno = 13860 - ERROR_IPSEC_IKE_INVALID_POLICY syscall.Errno = 13861 - ERROR_IPSEC_IKE_UNKNOWN_DOI syscall.Errno = 13862 - ERROR_IPSEC_IKE_INVALID_SITUATION syscall.Errno = 13863 - ERROR_IPSEC_IKE_DH_FAILURE syscall.Errno = 13864 - ERROR_IPSEC_IKE_INVALID_GROUP syscall.Errno = 13865 - ERROR_IPSEC_IKE_ENCRYPT syscall.Errno = 13866 - ERROR_IPSEC_IKE_DECRYPT syscall.Errno = 13867 - ERROR_IPSEC_IKE_POLICY_MATCH syscall.Errno = 13868 - ERROR_IPSEC_IKE_UNSUPPORTED_ID syscall.Errno = 13869 - ERROR_IPSEC_IKE_INVALID_HASH syscall.Errno = 13870 - ERROR_IPSEC_IKE_INVALID_HASH_ALG syscall.Errno = 13871 - ERROR_IPSEC_IKE_INVALID_HASH_SIZE syscall.Errno = 13872 - ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG syscall.Errno = 13873 - ERROR_IPSEC_IKE_INVALID_AUTH_ALG syscall.Errno = 13874 - ERROR_IPSEC_IKE_INVALID_SIG syscall.Errno = 13875 - ERROR_IPSEC_IKE_LOAD_FAILED syscall.Errno = 13876 - ERROR_IPSEC_IKE_RPC_DELETE syscall.Errno = 13877 - ERROR_IPSEC_IKE_BENIGN_REINIT syscall.Errno = 13878 - ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY syscall.Errno = 13879 - ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION syscall.Errno = 13880 - ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN syscall.Errno = 13881 - ERROR_IPSEC_IKE_MM_LIMIT syscall.Errno = 13882 - ERROR_IPSEC_IKE_NEGOTIATION_DISABLED syscall.Errno = 13883 - ERROR_IPSEC_IKE_QM_LIMIT syscall.Errno = 13884 - ERROR_IPSEC_IKE_MM_EXPIRED syscall.Errno = 13885 - ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID syscall.Errno = 13886 - ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH syscall.Errno = 13887 - ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID syscall.Errno = 13888 - ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD syscall.Errno = 13889 - ERROR_IPSEC_IKE_DOS_COOKIE_SENT syscall.Errno = 13890 - ERROR_IPSEC_IKE_SHUTTING_DOWN syscall.Errno = 13891 - ERROR_IPSEC_IKE_CGA_AUTH_FAILED syscall.Errno = 13892 - ERROR_IPSEC_IKE_PROCESS_ERR_NATOA syscall.Errno = 13893 - ERROR_IPSEC_IKE_INVALID_MM_FOR_QM syscall.Errno = 13894 - ERROR_IPSEC_IKE_QM_EXPIRED syscall.Errno = 13895 - ERROR_IPSEC_IKE_TOO_MANY_FILTERS syscall.Errno = 13896 - ERROR_IPSEC_IKE_NEG_STATUS_END syscall.Errno = 13897 - ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL syscall.Errno = 13898 - ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE syscall.Errno = 13899 - ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING syscall.Errno = 13900 - ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING syscall.Errno = 13901 - ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS syscall.Errno = 13902 - ERROR_IPSEC_IKE_RATELIMIT_DROP syscall.Errno = 13903 - ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE syscall.Errno = 13904 - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE syscall.Errno = 13905 - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE syscall.Errno = 13906 - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY syscall.Errno = 13907 - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE syscall.Errno = 13908 - ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END syscall.Errno = 13909 - ERROR_IPSEC_BAD_SPI syscall.Errno = 13910 - ERROR_IPSEC_SA_LIFETIME_EXPIRED syscall.Errno = 13911 - ERROR_IPSEC_WRONG_SA syscall.Errno = 13912 - ERROR_IPSEC_REPLAY_CHECK_FAILED syscall.Errno = 13913 - ERROR_IPSEC_INVALID_PACKET syscall.Errno = 13914 - ERROR_IPSEC_INTEGRITY_CHECK_FAILED syscall.Errno = 13915 - ERROR_IPSEC_CLEAR_TEXT_DROP syscall.Errno = 13916 - ERROR_IPSEC_AUTH_FIREWALL_DROP syscall.Errno = 13917 - ERROR_IPSEC_THROTTLE_DROP syscall.Errno = 13918 - ERROR_IPSEC_DOSP_BLOCK syscall.Errno = 13925 - ERROR_IPSEC_DOSP_RECEIVED_MULTICAST syscall.Errno = 13926 - ERROR_IPSEC_DOSP_INVALID_PACKET syscall.Errno = 13927 - ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED syscall.Errno = 13928 - ERROR_IPSEC_DOSP_MAX_ENTRIES syscall.Errno = 13929 - ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED syscall.Errno = 13930 - ERROR_IPSEC_DOSP_NOT_INSTALLED syscall.Errno = 13931 - ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES syscall.Errno = 13932 - ERROR_SXS_SECTION_NOT_FOUND syscall.Errno = 14000 - ERROR_SXS_CANT_GEN_ACTCTX syscall.Errno = 14001 - ERROR_SXS_INVALID_ACTCTXDATA_FORMAT syscall.Errno = 14002 - ERROR_SXS_ASSEMBLY_NOT_FOUND syscall.Errno = 14003 - ERROR_SXS_MANIFEST_FORMAT_ERROR syscall.Errno = 14004 - ERROR_SXS_MANIFEST_PARSE_ERROR syscall.Errno = 14005 - ERROR_SXS_ACTIVATION_CONTEXT_DISABLED syscall.Errno = 14006 - ERROR_SXS_KEY_NOT_FOUND syscall.Errno = 14007 - ERROR_SXS_VERSION_CONFLICT syscall.Errno = 14008 - ERROR_SXS_WRONG_SECTION_TYPE syscall.Errno = 14009 - ERROR_SXS_THREAD_QUERIES_DISABLED syscall.Errno = 14010 - ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET syscall.Errno = 14011 - ERROR_SXS_UNKNOWN_ENCODING_GROUP syscall.Errno = 14012 - ERROR_SXS_UNKNOWN_ENCODING syscall.Errno = 14013 - ERROR_SXS_INVALID_XML_NAMESPACE_URI syscall.Errno = 14014 - ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14015 - ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14016 - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14017 - ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14018 - ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14019 - ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT syscall.Errno = 14020 - ERROR_SXS_DUPLICATE_DLL_NAME syscall.Errno = 14021 - ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME syscall.Errno = 14022 - ERROR_SXS_DUPLICATE_CLSID syscall.Errno = 14023 - ERROR_SXS_DUPLICATE_IID syscall.Errno = 14024 - ERROR_SXS_DUPLICATE_TLBID syscall.Errno = 14025 - ERROR_SXS_DUPLICATE_PROGID syscall.Errno = 14026 - ERROR_SXS_DUPLICATE_ASSEMBLY_NAME syscall.Errno = 14027 - ERROR_SXS_FILE_HASH_MISMATCH syscall.Errno = 14028 - ERROR_SXS_POLICY_PARSE_ERROR syscall.Errno = 14029 - ERROR_SXS_XML_E_MISSINGQUOTE syscall.Errno = 14030 - ERROR_SXS_XML_E_COMMENTSYNTAX syscall.Errno = 14031 - ERROR_SXS_XML_E_BADSTARTNAMECHAR syscall.Errno = 14032 - ERROR_SXS_XML_E_BADNAMECHAR syscall.Errno = 14033 - ERROR_SXS_XML_E_BADCHARINSTRING syscall.Errno = 14034 - ERROR_SXS_XML_E_XMLDECLSYNTAX syscall.Errno = 14035 - ERROR_SXS_XML_E_BADCHARDATA syscall.Errno = 14036 - ERROR_SXS_XML_E_MISSINGWHITESPACE syscall.Errno = 14037 - ERROR_SXS_XML_E_EXPECTINGTAGEND syscall.Errno = 14038 - ERROR_SXS_XML_E_MISSINGSEMICOLON syscall.Errno = 14039 - ERROR_SXS_XML_E_UNBALANCEDPAREN syscall.Errno = 14040 - ERROR_SXS_XML_E_INTERNALERROR syscall.Errno = 14041 - ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE syscall.Errno = 14042 - ERROR_SXS_XML_E_INCOMPLETE_ENCODING syscall.Errno = 14043 - ERROR_SXS_XML_E_MISSING_PAREN syscall.Errno = 14044 - ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE syscall.Errno = 14045 - ERROR_SXS_XML_E_MULTIPLE_COLONS syscall.Errno = 14046 - ERROR_SXS_XML_E_INVALID_DECIMAL syscall.Errno = 14047 - ERROR_SXS_XML_E_INVALID_HEXIDECIMAL syscall.Errno = 14048 - ERROR_SXS_XML_E_INVALID_UNICODE syscall.Errno = 14049 - ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK syscall.Errno = 14050 - ERROR_SXS_XML_E_UNEXPECTEDENDTAG syscall.Errno = 14051 - ERROR_SXS_XML_E_UNCLOSEDTAG syscall.Errno = 14052 - ERROR_SXS_XML_E_DUPLICATEATTRIBUTE syscall.Errno = 14053 - ERROR_SXS_XML_E_MULTIPLEROOTS syscall.Errno = 14054 - ERROR_SXS_XML_E_INVALIDATROOTLEVEL syscall.Errno = 14055 - ERROR_SXS_XML_E_BADXMLDECL syscall.Errno = 14056 - ERROR_SXS_XML_E_MISSINGROOT syscall.Errno = 14057 - ERROR_SXS_XML_E_UNEXPECTEDEOF syscall.Errno = 14058 - ERROR_SXS_XML_E_BADPEREFINSUBSET syscall.Errno = 14059 - ERROR_SXS_XML_E_UNCLOSEDSTARTTAG syscall.Errno = 14060 - ERROR_SXS_XML_E_UNCLOSEDENDTAG syscall.Errno = 14061 - ERROR_SXS_XML_E_UNCLOSEDSTRING syscall.Errno = 14062 - ERROR_SXS_XML_E_UNCLOSEDCOMMENT syscall.Errno = 14063 - ERROR_SXS_XML_E_UNCLOSEDDECL syscall.Errno = 14064 - ERROR_SXS_XML_E_UNCLOSEDCDATA syscall.Errno = 14065 - ERROR_SXS_XML_E_RESERVEDNAMESPACE syscall.Errno = 14066 - ERROR_SXS_XML_E_INVALIDENCODING syscall.Errno = 14067 - ERROR_SXS_XML_E_INVALIDSWITCH syscall.Errno = 14068 - ERROR_SXS_XML_E_BADXMLCASE syscall.Errno = 14069 - ERROR_SXS_XML_E_INVALID_STANDALONE syscall.Errno = 14070 - ERROR_SXS_XML_E_UNEXPECTED_STANDALONE syscall.Errno = 14071 - ERROR_SXS_XML_E_INVALID_VERSION syscall.Errno = 14072 - ERROR_SXS_XML_E_MISSINGEQUALS syscall.Errno = 14073 - ERROR_SXS_PROTECTION_RECOVERY_FAILED syscall.Errno = 14074 - ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT syscall.Errno = 14075 - ERROR_SXS_PROTECTION_CATALOG_NOT_VALID syscall.Errno = 14076 - ERROR_SXS_UNTRANSLATABLE_HRESULT syscall.Errno = 14077 - ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING syscall.Errno = 14078 - ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14079 - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14080 - ERROR_SXS_ASSEMBLY_MISSING syscall.Errno = 14081 - ERROR_SXS_CORRUPT_ACTIVATION_STACK syscall.Errno = 14082 - ERROR_SXS_CORRUPTION syscall.Errno = 14083 - ERROR_SXS_EARLY_DEACTIVATION syscall.Errno = 14084 - ERROR_SXS_INVALID_DEACTIVATION syscall.Errno = 14085 - ERROR_SXS_MULTIPLE_DEACTIVATION syscall.Errno = 14086 - ERROR_SXS_PROCESS_TERMINATION_REQUESTED syscall.Errno = 14087 - ERROR_SXS_RELEASE_ACTIVATION_CONTEXT syscall.Errno = 14088 - ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY syscall.Errno = 14089 - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE syscall.Errno = 14090 - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14091 - ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE syscall.Errno = 14092 - ERROR_SXS_IDENTITY_PARSE_ERROR syscall.Errno = 14093 - ERROR_MALFORMED_SUBSTITUTION_STRING syscall.Errno = 14094 - ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN syscall.Errno = 14095 - ERROR_UNMAPPED_SUBSTITUTION_STRING syscall.Errno = 14096 - ERROR_SXS_ASSEMBLY_NOT_LOCKED syscall.Errno = 14097 - ERROR_SXS_COMPONENT_STORE_CORRUPT syscall.Errno = 14098 - ERROR_ADVANCED_INSTALLER_FAILED syscall.Errno = 14099 - ERROR_XML_ENCODING_MISMATCH syscall.Errno = 14100 - ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT syscall.Errno = 14101 - ERROR_SXS_IDENTITIES_DIFFERENT syscall.Errno = 14102 - ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT syscall.Errno = 14103 - ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY syscall.Errno = 14104 - ERROR_SXS_MANIFEST_TOO_BIG syscall.Errno = 14105 - ERROR_SXS_SETTING_NOT_REGISTERED syscall.Errno = 14106 - ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE syscall.Errno = 14107 - ERROR_SMI_PRIMITIVE_INSTALLER_FAILED syscall.Errno = 14108 - ERROR_GENERIC_COMMAND_FAILED syscall.Errno = 14109 - ERROR_SXS_FILE_HASH_MISSING syscall.Errno = 14110 - ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS syscall.Errno = 14111 - ERROR_EVT_INVALID_CHANNEL_PATH syscall.Errno = 15000 - ERROR_EVT_INVALID_QUERY syscall.Errno = 15001 - ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND syscall.Errno = 15002 - ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND syscall.Errno = 15003 - ERROR_EVT_INVALID_PUBLISHER_NAME syscall.Errno = 15004 - ERROR_EVT_INVALID_EVENT_DATA syscall.Errno = 15005 - ERROR_EVT_CHANNEL_NOT_FOUND syscall.Errno = 15007 - ERROR_EVT_MALFORMED_XML_TEXT syscall.Errno = 15008 - ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL syscall.Errno = 15009 - ERROR_EVT_CONFIGURATION_ERROR syscall.Errno = 15010 - ERROR_EVT_QUERY_RESULT_STALE syscall.Errno = 15011 - ERROR_EVT_QUERY_RESULT_INVALID_POSITION syscall.Errno = 15012 - ERROR_EVT_NON_VALIDATING_MSXML syscall.Errno = 15013 - ERROR_EVT_FILTER_ALREADYSCOPED syscall.Errno = 15014 - ERROR_EVT_FILTER_NOTELTSET syscall.Errno = 15015 - ERROR_EVT_FILTER_INVARG syscall.Errno = 15016 - ERROR_EVT_FILTER_INVTEST syscall.Errno = 15017 - ERROR_EVT_FILTER_INVTYPE syscall.Errno = 15018 - ERROR_EVT_FILTER_PARSEERR syscall.Errno = 15019 - ERROR_EVT_FILTER_UNSUPPORTEDOP syscall.Errno = 15020 - ERROR_EVT_FILTER_UNEXPECTEDTOKEN syscall.Errno = 15021 - ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL syscall.Errno = 15022 - ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE syscall.Errno = 15023 - ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE syscall.Errno = 15024 - ERROR_EVT_CHANNEL_CANNOT_ACTIVATE syscall.Errno = 15025 - ERROR_EVT_FILTER_TOO_COMPLEX syscall.Errno = 15026 - ERROR_EVT_MESSAGE_NOT_FOUND syscall.Errno = 15027 - ERROR_EVT_MESSAGE_ID_NOT_FOUND syscall.Errno = 15028 - ERROR_EVT_UNRESOLVED_VALUE_INSERT syscall.Errno = 15029 - ERROR_EVT_UNRESOLVED_PARAMETER_INSERT syscall.Errno = 15030 - ERROR_EVT_MAX_INSERTS_REACHED syscall.Errno = 15031 - ERROR_EVT_EVENT_DEFINITION_NOT_FOUND syscall.Errno = 15032 - ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND syscall.Errno = 15033 - ERROR_EVT_VERSION_TOO_OLD syscall.Errno = 15034 - ERROR_EVT_VERSION_TOO_NEW syscall.Errno = 15035 - ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY syscall.Errno = 15036 - ERROR_EVT_PUBLISHER_DISABLED syscall.Errno = 15037 - ERROR_EVT_FILTER_OUT_OF_RANGE syscall.Errno = 15038 - ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE syscall.Errno = 15080 - ERROR_EC_LOG_DISABLED syscall.Errno = 15081 - ERROR_EC_CIRCULAR_FORWARDING syscall.Errno = 15082 - ERROR_EC_CREDSTORE_FULL syscall.Errno = 15083 - ERROR_EC_CRED_NOT_FOUND syscall.Errno = 15084 - ERROR_EC_NO_ACTIVE_CHANNEL syscall.Errno = 15085 - ERROR_MUI_FILE_NOT_FOUND syscall.Errno = 15100 - ERROR_MUI_INVALID_FILE syscall.Errno = 15101 - ERROR_MUI_INVALID_RC_CONFIG syscall.Errno = 15102 - ERROR_MUI_INVALID_LOCALE_NAME syscall.Errno = 15103 - ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME syscall.Errno = 15104 - ERROR_MUI_FILE_NOT_LOADED syscall.Errno = 15105 - ERROR_RESOURCE_ENUM_USER_STOP syscall.Errno = 15106 - ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED syscall.Errno = 15107 - ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME syscall.Errno = 15108 - ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE syscall.Errno = 15110 - ERROR_MRM_INVALID_PRICONFIG syscall.Errno = 15111 - ERROR_MRM_INVALID_FILE_TYPE syscall.Errno = 15112 - ERROR_MRM_UNKNOWN_QUALIFIER syscall.Errno = 15113 - ERROR_MRM_INVALID_QUALIFIER_VALUE syscall.Errno = 15114 - ERROR_MRM_NO_CANDIDATE syscall.Errno = 15115 - ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE syscall.Errno = 15116 - ERROR_MRM_RESOURCE_TYPE_MISMATCH syscall.Errno = 15117 - ERROR_MRM_DUPLICATE_MAP_NAME syscall.Errno = 15118 - ERROR_MRM_DUPLICATE_ENTRY syscall.Errno = 15119 - ERROR_MRM_INVALID_RESOURCE_IDENTIFIER syscall.Errno = 15120 - ERROR_MRM_FILEPATH_TOO_LONG syscall.Errno = 15121 - ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE syscall.Errno = 15122 - ERROR_MRM_INVALID_PRI_FILE syscall.Errno = 15126 - ERROR_MRM_NAMED_RESOURCE_NOT_FOUND syscall.Errno = 15127 - ERROR_MRM_MAP_NOT_FOUND syscall.Errno = 15135 - ERROR_MRM_UNSUPPORTED_PROFILE_TYPE syscall.Errno = 15136 - ERROR_MRM_INVALID_QUALIFIER_OPERATOR syscall.Errno = 15137 - ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE syscall.Errno = 15138 - ERROR_MRM_AUTOMERGE_ENABLED syscall.Errno = 15139 - ERROR_MRM_TOO_MANY_RESOURCES syscall.Errno = 15140 - ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE syscall.Errno = 15141 - ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE syscall.Errno = 15142 - ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD syscall.Errno = 15143 - ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST syscall.Errno = 15144 - ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT syscall.Errno = 15145 - ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE syscall.Errno = 15146 - ERROR_MRM_GENERATION_COUNT_MISMATCH syscall.Errno = 15147 - ERROR_PRI_MERGE_VERSION_MISMATCH syscall.Errno = 15148 - ERROR_PRI_MERGE_MISSING_SCHEMA syscall.Errno = 15149 - ERROR_PRI_MERGE_LOAD_FILE_FAILED syscall.Errno = 15150 - ERROR_PRI_MERGE_ADD_FILE_FAILED syscall.Errno = 15151 - ERROR_PRI_MERGE_WRITE_FILE_FAILED syscall.Errno = 15152 - ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED syscall.Errno = 15153 - ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED syscall.Errno = 15154 - ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED syscall.Errno = 15155 - ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED syscall.Errno = 15156 - ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED syscall.Errno = 15157 - ERROR_PRI_MERGE_INVALID_FILE_NAME syscall.Errno = 15158 - ERROR_MRM_PACKAGE_NOT_FOUND syscall.Errno = 15159 - ERROR_MRM_MISSING_DEFAULT_LANGUAGE syscall.Errno = 15160 - ERROR_MCA_INVALID_CAPABILITIES_STRING syscall.Errno = 15200 - ERROR_MCA_INVALID_VCP_VERSION syscall.Errno = 15201 - ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION syscall.Errno = 15202 - ERROR_MCA_MCCS_VERSION_MISMATCH syscall.Errno = 15203 - ERROR_MCA_UNSUPPORTED_MCCS_VERSION syscall.Errno = 15204 - ERROR_MCA_INTERNAL_ERROR syscall.Errno = 15205 - ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED syscall.Errno = 15206 - ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE syscall.Errno = 15207 - ERROR_AMBIGUOUS_SYSTEM_DEVICE syscall.Errno = 15250 - ERROR_SYSTEM_DEVICE_NOT_FOUND syscall.Errno = 15299 - ERROR_HASH_NOT_SUPPORTED syscall.Errno = 15300 - ERROR_HASH_NOT_PRESENT syscall.Errno = 15301 - ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED syscall.Errno = 15321 - ERROR_GPIO_CLIENT_INFORMATION_INVALID syscall.Errno = 15322 - ERROR_GPIO_VERSION_NOT_SUPPORTED syscall.Errno = 15323 - ERROR_GPIO_INVALID_REGISTRATION_PACKET syscall.Errno = 15324 - ERROR_GPIO_OPERATION_DENIED syscall.Errno = 15325 - ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE syscall.Errno = 15326 - ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED syscall.Errno = 15327 - ERROR_CANNOT_SWITCH_RUNLEVEL syscall.Errno = 15400 - ERROR_INVALID_RUNLEVEL_SETTING syscall.Errno = 15401 - ERROR_RUNLEVEL_SWITCH_TIMEOUT syscall.Errno = 15402 - ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT syscall.Errno = 15403 - ERROR_RUNLEVEL_SWITCH_IN_PROGRESS syscall.Errno = 15404 - ERROR_SERVICES_FAILED_AUTOSTART syscall.Errno = 15405 - ERROR_COM_TASK_STOP_PENDING syscall.Errno = 15501 - ERROR_INSTALL_OPEN_PACKAGE_FAILED syscall.Errno = 15600 - ERROR_INSTALL_PACKAGE_NOT_FOUND syscall.Errno = 15601 - ERROR_INSTALL_INVALID_PACKAGE syscall.Errno = 15602 - ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED syscall.Errno = 15603 - ERROR_INSTALL_OUT_OF_DISK_SPACE syscall.Errno = 15604 - ERROR_INSTALL_NETWORK_FAILURE syscall.Errno = 15605 - ERROR_INSTALL_REGISTRATION_FAILURE syscall.Errno = 15606 - ERROR_INSTALL_DEREGISTRATION_FAILURE syscall.Errno = 15607 - ERROR_INSTALL_CANCEL syscall.Errno = 15608 - ERROR_INSTALL_FAILED syscall.Errno = 15609 - ERROR_REMOVE_FAILED syscall.Errno = 15610 - ERROR_PACKAGE_ALREADY_EXISTS syscall.Errno = 15611 - ERROR_NEEDS_REMEDIATION syscall.Errno = 15612 - ERROR_INSTALL_PREREQUISITE_FAILED syscall.Errno = 15613 - ERROR_PACKAGE_REPOSITORY_CORRUPTED syscall.Errno = 15614 - ERROR_INSTALL_POLICY_FAILURE syscall.Errno = 15615 - ERROR_PACKAGE_UPDATING syscall.Errno = 15616 - ERROR_DEPLOYMENT_BLOCKED_BY_POLICY syscall.Errno = 15617 - ERROR_PACKAGES_IN_USE syscall.Errno = 15618 - ERROR_RECOVERY_FILE_CORRUPT syscall.Errno = 15619 - ERROR_INVALID_STAGED_SIGNATURE syscall.Errno = 15620 - ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED syscall.Errno = 15621 - ERROR_INSTALL_PACKAGE_DOWNGRADE syscall.Errno = 15622 - ERROR_SYSTEM_NEEDS_REMEDIATION syscall.Errno = 15623 - ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN syscall.Errno = 15624 - ERROR_RESILIENCY_FILE_CORRUPT syscall.Errno = 15625 - ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING syscall.Errno = 15626 - ERROR_PACKAGE_MOVE_FAILED syscall.Errno = 15627 - ERROR_INSTALL_VOLUME_NOT_EMPTY syscall.Errno = 15628 - ERROR_INSTALL_VOLUME_OFFLINE syscall.Errno = 15629 - ERROR_INSTALL_VOLUME_CORRUPT syscall.Errno = 15630 - ERROR_NEEDS_REGISTRATION syscall.Errno = 15631 - ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE syscall.Errno = 15632 - ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED syscall.Errno = 15633 - ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE syscall.Errno = 15634 - ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM syscall.Errno = 15635 - ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING syscall.Errno = 15636 - ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE syscall.Errno = 15637 - ERROR_PACKAGE_STAGING_ONHOLD syscall.Errno = 15638 - ERROR_INSTALL_INVALID_RELATED_SET_UPDATE syscall.Errno = 15639 - ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640 - ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF syscall.Errno = 15641 - ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED syscall.Errno = 15642 - ERROR_PACKAGES_REPUTATION_CHECK_FAILED syscall.Errno = 15643 - ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT syscall.Errno = 15644 - ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED syscall.Errno = 15645 - ERROR_APPINSTALLER_ACTIVATION_BLOCKED syscall.Errno = 15646 - ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED syscall.Errno = 15647 - ERROR_APPX_RAW_DATA_WRITE_FAILED syscall.Errno = 15648 - ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE syscall.Errno = 15649 - ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE syscall.Errno = 15650 - ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY syscall.Errno = 15651 - ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY syscall.Errno = 15652 - ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER syscall.Errno = 15653 - ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED syscall.Errno = 15654 - ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE syscall.Errno = 15655 - ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES syscall.Errno = 15656 - APPMODEL_ERROR_NO_PACKAGE syscall.Errno = 15700 - APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT syscall.Errno = 15701 - APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT syscall.Errno = 15702 - APPMODEL_ERROR_NO_APPLICATION syscall.Errno = 15703 - APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED syscall.Errno = 15704 - APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID syscall.Errno = 15705 - APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE syscall.Errno = 15706 - APPMODEL_ERROR_NO_MUTABLE_DIRECTORY syscall.Errno = 15707 - ERROR_STATE_LOAD_STORE_FAILED syscall.Errno = 15800 - ERROR_STATE_GET_VERSION_FAILED syscall.Errno = 15801 - ERROR_STATE_SET_VERSION_FAILED syscall.Errno = 15802 - ERROR_STATE_STRUCTURED_RESET_FAILED syscall.Errno = 15803 - ERROR_STATE_OPEN_CONTAINER_FAILED syscall.Errno = 15804 - ERROR_STATE_CREATE_CONTAINER_FAILED syscall.Errno = 15805 - ERROR_STATE_DELETE_CONTAINER_FAILED syscall.Errno = 15806 - ERROR_STATE_READ_SETTING_FAILED syscall.Errno = 15807 - ERROR_STATE_WRITE_SETTING_FAILED syscall.Errno = 15808 - ERROR_STATE_DELETE_SETTING_FAILED syscall.Errno = 15809 - ERROR_STATE_QUERY_SETTING_FAILED syscall.Errno = 15810 - ERROR_STATE_READ_COMPOSITE_SETTING_FAILED syscall.Errno = 15811 - ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED syscall.Errno = 15812 - ERROR_STATE_ENUMERATE_CONTAINER_FAILED syscall.Errno = 15813 - ERROR_STATE_ENUMERATE_SETTINGS_FAILED syscall.Errno = 15814 - ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15815 - ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15816 - ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15817 - ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15818 - ERROR_API_UNAVAILABLE syscall.Errno = 15841 - STORE_ERROR_UNLICENSED syscall.Errno = 15861 - STORE_ERROR_UNLICENSED_USER syscall.Errno = 15862 - STORE_ERROR_PENDING_COM_TRANSACTION syscall.Errno = 15863 - STORE_ERROR_LICENSE_REVOKED syscall.Errno = 15864 - SEVERITY_SUCCESS syscall.Errno = 0 - SEVERITY_ERROR syscall.Errno = 1 - FACILITY_NT_BIT = 0x10000000 - E_NOT_SET = ERROR_NOT_FOUND - E_NOT_VALID_STATE = ERROR_INVALID_STATE - E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER - E_TIME_SENSITIVE_THREAD = ERROR_TIME_SENSITIVE_THREAD - E_NO_TASK_QUEUE = ERROR_NO_TASK_QUEUE - NOERROR syscall.Errno = 0 - E_UNEXPECTED Handle = 0x8000FFFF - E_NOTIMPL Handle = 0x80004001 - E_OUTOFMEMORY Handle = 0x8007000E - E_INVALIDARG Handle = 0x80070057 - E_NOINTERFACE Handle = 0x80004002 - E_POINTER Handle = 0x80004003 - E_HANDLE Handle = 0x80070006 - E_ABORT Handle = 0x80004004 - E_FAIL Handle = 0x80004005 - E_ACCESSDENIED Handle = 0x80070005 - E_PENDING Handle = 0x8000000A - E_BOUNDS Handle = 0x8000000B - E_CHANGED_STATE Handle = 0x8000000C - E_ILLEGAL_STATE_CHANGE Handle = 0x8000000D - E_ILLEGAL_METHOD_CALL Handle = 0x8000000E - RO_E_METADATA_NAME_NOT_FOUND Handle = 0x8000000F - RO_E_METADATA_NAME_IS_NAMESPACE Handle = 0x80000010 - RO_E_METADATA_INVALID_TYPE_FORMAT Handle = 0x80000011 - RO_E_INVALID_METADATA_FILE Handle = 0x80000012 - RO_E_CLOSED Handle = 0x80000013 - RO_E_EXCLUSIVE_WRITE Handle = 0x80000014 - RO_E_CHANGE_NOTIFICATION_IN_PROGRESS Handle = 0x80000015 - RO_E_ERROR_STRING_NOT_FOUND Handle = 0x80000016 - E_STRING_NOT_NULL_TERMINATED Handle = 0x80000017 - E_ILLEGAL_DELEGATE_ASSIGNMENT Handle = 0x80000018 - E_ASYNC_OPERATION_NOT_STARTED Handle = 0x80000019 - E_APPLICATION_EXITING Handle = 0x8000001A - E_APPLICATION_VIEW_EXITING Handle = 0x8000001B - RO_E_MUST_BE_AGILE Handle = 0x8000001C - RO_E_UNSUPPORTED_FROM_MTA Handle = 0x8000001D - RO_E_COMMITTED Handle = 0x8000001E - RO_E_BLOCKED_CROSS_ASTA_CALL Handle = 0x8000001F - RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER Handle = 0x80000020 - RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER Handle = 0x80000021 - CO_E_INIT_TLS Handle = 0x80004006 - CO_E_INIT_SHARED_ALLOCATOR Handle = 0x80004007 - CO_E_INIT_MEMORY_ALLOCATOR Handle = 0x80004008 - CO_E_INIT_CLASS_CACHE Handle = 0x80004009 - CO_E_INIT_RPC_CHANNEL Handle = 0x8000400A - CO_E_INIT_TLS_SET_CHANNEL_CONTROL Handle = 0x8000400B - CO_E_INIT_TLS_CHANNEL_CONTROL Handle = 0x8000400C - CO_E_INIT_UNACCEPTED_USER_ALLOCATOR Handle = 0x8000400D - CO_E_INIT_SCM_MUTEX_EXISTS Handle = 0x8000400E - CO_E_INIT_SCM_FILE_MAPPING_EXISTS Handle = 0x8000400F - CO_E_INIT_SCM_MAP_VIEW_OF_FILE Handle = 0x80004010 - CO_E_INIT_SCM_EXEC_FAILURE Handle = 0x80004011 - CO_E_INIT_ONLY_SINGLE_THREADED Handle = 0x80004012 - CO_E_CANT_REMOTE Handle = 0x80004013 - CO_E_BAD_SERVER_NAME Handle = 0x80004014 - CO_E_WRONG_SERVER_IDENTITY Handle = 0x80004015 - CO_E_OLE1DDE_DISABLED Handle = 0x80004016 - CO_E_RUNAS_SYNTAX Handle = 0x80004017 - CO_E_CREATEPROCESS_FAILURE Handle = 0x80004018 - CO_E_RUNAS_CREATEPROCESS_FAILURE Handle = 0x80004019 - CO_E_RUNAS_LOGON_FAILURE Handle = 0x8000401A - CO_E_LAUNCH_PERMSSION_DENIED Handle = 0x8000401B - CO_E_START_SERVICE_FAILURE Handle = 0x8000401C - CO_E_REMOTE_COMMUNICATION_FAILURE Handle = 0x8000401D - CO_E_SERVER_START_TIMEOUT Handle = 0x8000401E - CO_E_CLSREG_INCONSISTENT Handle = 0x8000401F - CO_E_IIDREG_INCONSISTENT Handle = 0x80004020 - CO_E_NOT_SUPPORTED Handle = 0x80004021 - CO_E_RELOAD_DLL Handle = 0x80004022 - CO_E_MSI_ERROR Handle = 0x80004023 - CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT Handle = 0x80004024 - CO_E_SERVER_PAUSED Handle = 0x80004025 - CO_E_SERVER_NOT_PAUSED Handle = 0x80004026 - CO_E_CLASS_DISABLED Handle = 0x80004027 - CO_E_CLRNOTAVAILABLE Handle = 0x80004028 - CO_E_ASYNC_WORK_REJECTED Handle = 0x80004029 - CO_E_SERVER_INIT_TIMEOUT Handle = 0x8000402A - CO_E_NO_SECCTX_IN_ACTIVATE Handle = 0x8000402B - CO_E_TRACKER_CONFIG Handle = 0x80004030 - CO_E_THREADPOOL_CONFIG Handle = 0x80004031 - CO_E_SXS_CONFIG Handle = 0x80004032 - CO_E_MALFORMED_SPN Handle = 0x80004033 - CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN Handle = 0x80004034 - CO_E_PREMATURE_STUB_RUNDOWN Handle = 0x80004035 - S_OK Handle = 0 - S_FALSE Handle = 1 - OLE_E_FIRST Handle = 0x80040000 - OLE_E_LAST Handle = 0x800400FF - OLE_S_FIRST Handle = 0x00040000 - OLE_S_LAST Handle = 0x000400FF - OLE_E_OLEVERB Handle = 0x80040000 - OLE_E_ADVF Handle = 0x80040001 - OLE_E_ENUM_NOMORE Handle = 0x80040002 - OLE_E_ADVISENOTSUPPORTED Handle = 0x80040003 - OLE_E_NOCONNECTION Handle = 0x80040004 - OLE_E_NOTRUNNING Handle = 0x80040005 - OLE_E_NOCACHE Handle = 0x80040006 - OLE_E_BLANK Handle = 0x80040007 - OLE_E_CLASSDIFF Handle = 0x80040008 - OLE_E_CANT_GETMONIKER Handle = 0x80040009 - OLE_E_CANT_BINDTOSOURCE Handle = 0x8004000A - OLE_E_STATIC Handle = 0x8004000B - OLE_E_PROMPTSAVECANCELLED Handle = 0x8004000C - OLE_E_INVALIDRECT Handle = 0x8004000D - OLE_E_WRONGCOMPOBJ Handle = 0x8004000E - OLE_E_INVALIDHWND Handle = 0x8004000F - OLE_E_NOT_INPLACEACTIVE Handle = 0x80040010 - OLE_E_CANTCONVERT Handle = 0x80040011 - OLE_E_NOSTORAGE Handle = 0x80040012 - DV_E_FORMATETC Handle = 0x80040064 - DV_E_DVTARGETDEVICE Handle = 0x80040065 - DV_E_STGMEDIUM Handle = 0x80040066 - DV_E_STATDATA Handle = 0x80040067 - DV_E_LINDEX Handle = 0x80040068 - DV_E_TYMED Handle = 0x80040069 - DV_E_CLIPFORMAT Handle = 0x8004006A - DV_E_DVASPECT Handle = 0x8004006B - DV_E_DVTARGETDEVICE_SIZE Handle = 0x8004006C - DV_E_NOIVIEWOBJECT Handle = 0x8004006D - DRAGDROP_E_FIRST syscall.Errno = 0x80040100 - DRAGDROP_E_LAST syscall.Errno = 0x8004010F - DRAGDROP_S_FIRST syscall.Errno = 0x00040100 - DRAGDROP_S_LAST syscall.Errno = 0x0004010F - DRAGDROP_E_NOTREGISTERED Handle = 0x80040100 - DRAGDROP_E_ALREADYREGISTERED Handle = 0x80040101 - DRAGDROP_E_INVALIDHWND Handle = 0x80040102 - DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED Handle = 0x80040103 - CLASSFACTORY_E_FIRST syscall.Errno = 0x80040110 - CLASSFACTORY_E_LAST syscall.Errno = 0x8004011F - CLASSFACTORY_S_FIRST syscall.Errno = 0x00040110 - CLASSFACTORY_S_LAST syscall.Errno = 0x0004011F - CLASS_E_NOAGGREGATION Handle = 0x80040110 - CLASS_E_CLASSNOTAVAILABLE Handle = 0x80040111 - CLASS_E_NOTLICENSED Handle = 0x80040112 - MARSHAL_E_FIRST syscall.Errno = 0x80040120 - MARSHAL_E_LAST syscall.Errno = 0x8004012F - MARSHAL_S_FIRST syscall.Errno = 0x00040120 - MARSHAL_S_LAST syscall.Errno = 0x0004012F - DATA_E_FIRST syscall.Errno = 0x80040130 - DATA_E_LAST syscall.Errno = 0x8004013F - DATA_S_FIRST syscall.Errno = 0x00040130 - DATA_S_LAST syscall.Errno = 0x0004013F - VIEW_E_FIRST syscall.Errno = 0x80040140 - VIEW_E_LAST syscall.Errno = 0x8004014F - VIEW_S_FIRST syscall.Errno = 0x00040140 - VIEW_S_LAST syscall.Errno = 0x0004014F - VIEW_E_DRAW Handle = 0x80040140 - REGDB_E_FIRST syscall.Errno = 0x80040150 - REGDB_E_LAST syscall.Errno = 0x8004015F - REGDB_S_FIRST syscall.Errno = 0x00040150 - REGDB_S_LAST syscall.Errno = 0x0004015F - REGDB_E_READREGDB Handle = 0x80040150 - REGDB_E_WRITEREGDB Handle = 0x80040151 - REGDB_E_KEYMISSING Handle = 0x80040152 - REGDB_E_INVALIDVALUE Handle = 0x80040153 - REGDB_E_CLASSNOTREG Handle = 0x80040154 - REGDB_E_IIDNOTREG Handle = 0x80040155 - REGDB_E_BADTHREADINGMODEL Handle = 0x80040156 - REGDB_E_PACKAGEPOLICYVIOLATION Handle = 0x80040157 - CAT_E_FIRST syscall.Errno = 0x80040160 - CAT_E_LAST syscall.Errno = 0x80040161 - CAT_E_CATIDNOEXIST Handle = 0x80040160 - CAT_E_NODESCRIPTION Handle = 0x80040161 - CS_E_FIRST syscall.Errno = 0x80040164 - CS_E_LAST syscall.Errno = 0x8004016F - CS_E_PACKAGE_NOTFOUND Handle = 0x80040164 - CS_E_NOT_DELETABLE Handle = 0x80040165 - CS_E_CLASS_NOTFOUND Handle = 0x80040166 - CS_E_INVALID_VERSION Handle = 0x80040167 - CS_E_NO_CLASSSTORE Handle = 0x80040168 - CS_E_OBJECT_NOTFOUND Handle = 0x80040169 - CS_E_OBJECT_ALREADY_EXISTS Handle = 0x8004016A - CS_E_INVALID_PATH Handle = 0x8004016B - CS_E_NETWORK_ERROR Handle = 0x8004016C - CS_E_ADMIN_LIMIT_EXCEEDED Handle = 0x8004016D - CS_E_SCHEMA_MISMATCH Handle = 0x8004016E - CS_E_INTERNAL_ERROR Handle = 0x8004016F - CACHE_E_FIRST syscall.Errno = 0x80040170 - CACHE_E_LAST syscall.Errno = 0x8004017F - CACHE_S_FIRST syscall.Errno = 0x00040170 - CACHE_S_LAST syscall.Errno = 0x0004017F - CACHE_E_NOCACHE_UPDATED Handle = 0x80040170 - OLEOBJ_E_FIRST syscall.Errno = 0x80040180 - OLEOBJ_E_LAST syscall.Errno = 0x8004018F - OLEOBJ_S_FIRST syscall.Errno = 0x00040180 - OLEOBJ_S_LAST syscall.Errno = 0x0004018F - OLEOBJ_E_NOVERBS Handle = 0x80040180 - OLEOBJ_E_INVALIDVERB Handle = 0x80040181 - CLIENTSITE_E_FIRST syscall.Errno = 0x80040190 - CLIENTSITE_E_LAST syscall.Errno = 0x8004019F - CLIENTSITE_S_FIRST syscall.Errno = 0x00040190 - CLIENTSITE_S_LAST syscall.Errno = 0x0004019F - INPLACE_E_NOTUNDOABLE Handle = 0x800401A0 - INPLACE_E_NOTOOLSPACE Handle = 0x800401A1 - INPLACE_E_FIRST syscall.Errno = 0x800401A0 - INPLACE_E_LAST syscall.Errno = 0x800401AF - INPLACE_S_FIRST syscall.Errno = 0x000401A0 - INPLACE_S_LAST syscall.Errno = 0x000401AF - ENUM_E_FIRST syscall.Errno = 0x800401B0 - ENUM_E_LAST syscall.Errno = 0x800401BF - ENUM_S_FIRST syscall.Errno = 0x000401B0 - ENUM_S_LAST syscall.Errno = 0x000401BF - CONVERT10_E_FIRST syscall.Errno = 0x800401C0 - CONVERT10_E_LAST syscall.Errno = 0x800401CF - CONVERT10_S_FIRST syscall.Errno = 0x000401C0 - CONVERT10_S_LAST syscall.Errno = 0x000401CF - CONVERT10_E_OLESTREAM_GET Handle = 0x800401C0 - CONVERT10_E_OLESTREAM_PUT Handle = 0x800401C1 - CONVERT10_E_OLESTREAM_FMT Handle = 0x800401C2 - CONVERT10_E_OLESTREAM_BITMAP_TO_DIB Handle = 0x800401C3 - CONVERT10_E_STG_FMT Handle = 0x800401C4 - CONVERT10_E_STG_NO_STD_STREAM Handle = 0x800401C5 - CONVERT10_E_STG_DIB_TO_BITMAP Handle = 0x800401C6 - CLIPBRD_E_FIRST syscall.Errno = 0x800401D0 - CLIPBRD_E_LAST syscall.Errno = 0x800401DF - CLIPBRD_S_FIRST syscall.Errno = 0x000401D0 - CLIPBRD_S_LAST syscall.Errno = 0x000401DF - CLIPBRD_E_CANT_OPEN Handle = 0x800401D0 - CLIPBRD_E_CANT_EMPTY Handle = 0x800401D1 - CLIPBRD_E_CANT_SET Handle = 0x800401D2 - CLIPBRD_E_BAD_DATA Handle = 0x800401D3 - CLIPBRD_E_CANT_CLOSE Handle = 0x800401D4 - MK_E_FIRST syscall.Errno = 0x800401E0 - MK_E_LAST syscall.Errno = 0x800401EF - MK_S_FIRST syscall.Errno = 0x000401E0 - MK_S_LAST syscall.Errno = 0x000401EF - MK_E_CONNECTMANUALLY Handle = 0x800401E0 - MK_E_EXCEEDEDDEADLINE Handle = 0x800401E1 - MK_E_NEEDGENERIC Handle = 0x800401E2 - MK_E_UNAVAILABLE Handle = 0x800401E3 - MK_E_SYNTAX Handle = 0x800401E4 - MK_E_NOOBJECT Handle = 0x800401E5 - MK_E_INVALIDEXTENSION Handle = 0x800401E6 - MK_E_INTERMEDIATEINTERFACENOTSUPPORTED Handle = 0x800401E7 - MK_E_NOTBINDABLE Handle = 0x800401E8 - MK_E_NOTBOUND Handle = 0x800401E9 - MK_E_CANTOPENFILE Handle = 0x800401EA - MK_E_MUSTBOTHERUSER Handle = 0x800401EB - MK_E_NOINVERSE Handle = 0x800401EC - MK_E_NOSTORAGE Handle = 0x800401ED - MK_E_NOPREFIX Handle = 0x800401EE - MK_E_ENUMERATION_FAILED Handle = 0x800401EF - CO_E_FIRST syscall.Errno = 0x800401F0 - CO_E_LAST syscall.Errno = 0x800401FF - CO_S_FIRST syscall.Errno = 0x000401F0 - CO_S_LAST syscall.Errno = 0x000401FF - CO_E_NOTINITIALIZED Handle = 0x800401F0 - CO_E_ALREADYINITIALIZED Handle = 0x800401F1 - CO_E_CANTDETERMINECLASS Handle = 0x800401F2 - CO_E_CLASSSTRING Handle = 0x800401F3 - CO_E_IIDSTRING Handle = 0x800401F4 - CO_E_APPNOTFOUND Handle = 0x800401F5 - CO_E_APPSINGLEUSE Handle = 0x800401F6 - CO_E_ERRORINAPP Handle = 0x800401F7 - CO_E_DLLNOTFOUND Handle = 0x800401F8 - CO_E_ERRORINDLL Handle = 0x800401F9 - CO_E_WRONGOSFORAPP Handle = 0x800401FA - CO_E_OBJNOTREG Handle = 0x800401FB - CO_E_OBJISREG Handle = 0x800401FC - CO_E_OBJNOTCONNECTED Handle = 0x800401FD - CO_E_APPDIDNTREG Handle = 0x800401FE - CO_E_RELEASED Handle = 0x800401FF - EVENT_E_FIRST syscall.Errno = 0x80040200 - EVENT_E_LAST syscall.Errno = 0x8004021F - EVENT_S_FIRST syscall.Errno = 0x00040200 - EVENT_S_LAST syscall.Errno = 0x0004021F - EVENT_S_SOME_SUBSCRIBERS_FAILED Handle = 0x00040200 - EVENT_E_ALL_SUBSCRIBERS_FAILED Handle = 0x80040201 - EVENT_S_NOSUBSCRIBERS Handle = 0x00040202 - EVENT_E_QUERYSYNTAX Handle = 0x80040203 - EVENT_E_QUERYFIELD Handle = 0x80040204 - EVENT_E_INTERNALEXCEPTION Handle = 0x80040205 - EVENT_E_INTERNALERROR Handle = 0x80040206 - EVENT_E_INVALID_PER_USER_SID Handle = 0x80040207 - EVENT_E_USER_EXCEPTION Handle = 0x80040208 - EVENT_E_TOO_MANY_METHODS Handle = 0x80040209 - EVENT_E_MISSING_EVENTCLASS Handle = 0x8004020A - EVENT_E_NOT_ALL_REMOVED Handle = 0x8004020B - EVENT_E_COMPLUS_NOT_INSTALLED Handle = 0x8004020C - EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT Handle = 0x8004020D - EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT Handle = 0x8004020E - EVENT_E_INVALID_EVENT_CLASS_PARTITION Handle = 0x8004020F - EVENT_E_PER_USER_SID_NOT_LOGGED_ON Handle = 0x80040210 - TPC_E_INVALID_PROPERTY Handle = 0x80040241 - TPC_E_NO_DEFAULT_TABLET Handle = 0x80040212 - TPC_E_UNKNOWN_PROPERTY Handle = 0x8004021B - TPC_E_INVALID_INPUT_RECT Handle = 0x80040219 - TPC_E_INVALID_STROKE Handle = 0x80040222 - TPC_E_INITIALIZE_FAIL Handle = 0x80040223 - TPC_E_NOT_RELEVANT Handle = 0x80040232 - TPC_E_INVALID_PACKET_DESCRIPTION Handle = 0x80040233 - TPC_E_RECOGNIZER_NOT_REGISTERED Handle = 0x80040235 - TPC_E_INVALID_RIGHTS Handle = 0x80040236 - TPC_E_OUT_OF_ORDER_CALL Handle = 0x80040237 - TPC_E_QUEUE_FULL Handle = 0x80040238 - TPC_E_INVALID_CONFIGURATION Handle = 0x80040239 - TPC_E_INVALID_DATA_FROM_RECOGNIZER Handle = 0x8004023A - TPC_S_TRUNCATED Handle = 0x00040252 - TPC_S_INTERRUPTED Handle = 0x00040253 - TPC_S_NO_DATA_TO_PROCESS Handle = 0x00040254 - XACT_E_FIRST syscall.Errno = 0x8004D000 - XACT_E_LAST syscall.Errno = 0x8004D02B - XACT_S_FIRST syscall.Errno = 0x0004D000 - XACT_S_LAST syscall.Errno = 0x0004D010 - XACT_E_ALREADYOTHERSINGLEPHASE Handle = 0x8004D000 - XACT_E_CANTRETAIN Handle = 0x8004D001 - XACT_E_COMMITFAILED Handle = 0x8004D002 - XACT_E_COMMITPREVENTED Handle = 0x8004D003 - XACT_E_HEURISTICABORT Handle = 0x8004D004 - XACT_E_HEURISTICCOMMIT Handle = 0x8004D005 - XACT_E_HEURISTICDAMAGE Handle = 0x8004D006 - XACT_E_HEURISTICDANGER Handle = 0x8004D007 - XACT_E_ISOLATIONLEVEL Handle = 0x8004D008 - XACT_E_NOASYNC Handle = 0x8004D009 - XACT_E_NOENLIST Handle = 0x8004D00A - XACT_E_NOISORETAIN Handle = 0x8004D00B - XACT_E_NORESOURCE Handle = 0x8004D00C - XACT_E_NOTCURRENT Handle = 0x8004D00D - XACT_E_NOTRANSACTION Handle = 0x8004D00E - XACT_E_NOTSUPPORTED Handle = 0x8004D00F - XACT_E_UNKNOWNRMGRID Handle = 0x8004D010 - XACT_E_WRONGSTATE Handle = 0x8004D011 - XACT_E_WRONGUOW Handle = 0x8004D012 - XACT_E_XTIONEXISTS Handle = 0x8004D013 - XACT_E_NOIMPORTOBJECT Handle = 0x8004D014 - XACT_E_INVALIDCOOKIE Handle = 0x8004D015 - XACT_E_INDOUBT Handle = 0x8004D016 - XACT_E_NOTIMEOUT Handle = 0x8004D017 - XACT_E_ALREADYINPROGRESS Handle = 0x8004D018 - XACT_E_ABORTED Handle = 0x8004D019 - XACT_E_LOGFULL Handle = 0x8004D01A - XACT_E_TMNOTAVAILABLE Handle = 0x8004D01B - XACT_E_CONNECTION_DOWN Handle = 0x8004D01C - XACT_E_CONNECTION_DENIED Handle = 0x8004D01D - XACT_E_REENLISTTIMEOUT Handle = 0x8004D01E - XACT_E_TIP_CONNECT_FAILED Handle = 0x8004D01F - XACT_E_TIP_PROTOCOL_ERROR Handle = 0x8004D020 - XACT_E_TIP_PULL_FAILED Handle = 0x8004D021 - XACT_E_DEST_TMNOTAVAILABLE Handle = 0x8004D022 - XACT_E_TIP_DISABLED Handle = 0x8004D023 - XACT_E_NETWORK_TX_DISABLED Handle = 0x8004D024 - XACT_E_PARTNER_NETWORK_TX_DISABLED Handle = 0x8004D025 - XACT_E_XA_TX_DISABLED Handle = 0x8004D026 - XACT_E_UNABLE_TO_READ_DTC_CONFIG Handle = 0x8004D027 - XACT_E_UNABLE_TO_LOAD_DTC_PROXY Handle = 0x8004D028 - XACT_E_ABORTING Handle = 0x8004D029 - XACT_E_PUSH_COMM_FAILURE Handle = 0x8004D02A - XACT_E_PULL_COMM_FAILURE Handle = 0x8004D02B - XACT_E_LU_TX_DISABLED Handle = 0x8004D02C - XACT_E_CLERKNOTFOUND Handle = 0x8004D080 - XACT_E_CLERKEXISTS Handle = 0x8004D081 - XACT_E_RECOVERYINPROGRESS Handle = 0x8004D082 - XACT_E_TRANSACTIONCLOSED Handle = 0x8004D083 - XACT_E_INVALIDLSN Handle = 0x8004D084 - XACT_E_REPLAYREQUEST Handle = 0x8004D085 - XACT_S_ASYNC Handle = 0x0004D000 - XACT_S_DEFECT Handle = 0x0004D001 - XACT_S_READONLY Handle = 0x0004D002 - XACT_S_SOMENORETAIN Handle = 0x0004D003 - XACT_S_OKINFORM Handle = 0x0004D004 - XACT_S_MADECHANGESCONTENT Handle = 0x0004D005 - XACT_S_MADECHANGESINFORM Handle = 0x0004D006 - XACT_S_ALLNORETAIN Handle = 0x0004D007 - XACT_S_ABORTING Handle = 0x0004D008 - XACT_S_SINGLEPHASE Handle = 0x0004D009 - XACT_S_LOCALLY_OK Handle = 0x0004D00A - XACT_S_LASTRESOURCEMANAGER Handle = 0x0004D010 - CONTEXT_E_FIRST syscall.Errno = 0x8004E000 - CONTEXT_E_LAST syscall.Errno = 0x8004E02F - CONTEXT_S_FIRST syscall.Errno = 0x0004E000 - CONTEXT_S_LAST syscall.Errno = 0x0004E02F - CONTEXT_E_ABORTED Handle = 0x8004E002 - CONTEXT_E_ABORTING Handle = 0x8004E003 - CONTEXT_E_NOCONTEXT Handle = 0x8004E004 - CONTEXT_E_WOULD_DEADLOCK Handle = 0x8004E005 - CONTEXT_E_SYNCH_TIMEOUT Handle = 0x8004E006 - CONTEXT_E_OLDREF Handle = 0x8004E007 - CONTEXT_E_ROLENOTFOUND Handle = 0x8004E00C - CONTEXT_E_TMNOTAVAILABLE Handle = 0x8004E00F - CO_E_ACTIVATIONFAILED Handle = 0x8004E021 - CO_E_ACTIVATIONFAILED_EVENTLOGGED Handle = 0x8004E022 - CO_E_ACTIVATIONFAILED_CATALOGERROR Handle = 0x8004E023 - CO_E_ACTIVATIONFAILED_TIMEOUT Handle = 0x8004E024 - CO_E_INITIALIZATIONFAILED Handle = 0x8004E025 - CONTEXT_E_NOJIT Handle = 0x8004E026 - CONTEXT_E_NOTRANSACTION Handle = 0x8004E027 - CO_E_THREADINGMODEL_CHANGED Handle = 0x8004E028 - CO_E_NOIISINTRINSICS Handle = 0x8004E029 - CO_E_NOCOOKIES Handle = 0x8004E02A - CO_E_DBERROR Handle = 0x8004E02B - CO_E_NOTPOOLED Handle = 0x8004E02C - CO_E_NOTCONSTRUCTED Handle = 0x8004E02D - CO_E_NOSYNCHRONIZATION Handle = 0x8004E02E - CO_E_ISOLEVELMISMATCH Handle = 0x8004E02F - CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED Handle = 0x8004E030 - CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED Handle = 0x8004E031 - OLE_S_USEREG Handle = 0x00040000 - OLE_S_STATIC Handle = 0x00040001 - OLE_S_MAC_CLIPFORMAT Handle = 0x00040002 - DRAGDROP_S_DROP Handle = 0x00040100 - DRAGDROP_S_CANCEL Handle = 0x00040101 - DRAGDROP_S_USEDEFAULTCURSORS Handle = 0x00040102 - DATA_S_SAMEFORMATETC Handle = 0x00040130 - VIEW_S_ALREADY_FROZEN Handle = 0x00040140 - CACHE_S_FORMATETC_NOTSUPPORTED Handle = 0x00040170 - CACHE_S_SAMECACHE Handle = 0x00040171 - CACHE_S_SOMECACHES_NOTUPDATED Handle = 0x00040172 - OLEOBJ_S_INVALIDVERB Handle = 0x00040180 - OLEOBJ_S_CANNOT_DOVERB_NOW Handle = 0x00040181 - OLEOBJ_S_INVALIDHWND Handle = 0x00040182 - INPLACE_S_TRUNCATED Handle = 0x000401A0 - CONVERT10_S_NO_PRESENTATION Handle = 0x000401C0 - MK_S_REDUCED_TO_SELF Handle = 0x000401E2 - MK_S_ME Handle = 0x000401E4 - MK_S_HIM Handle = 0x000401E5 - MK_S_US Handle = 0x000401E6 - MK_S_MONIKERALREADYREGISTERED Handle = 0x000401E7 - SCHED_S_TASK_READY Handle = 0x00041300 - SCHED_S_TASK_RUNNING Handle = 0x00041301 - SCHED_S_TASK_DISABLED Handle = 0x00041302 - SCHED_S_TASK_HAS_NOT_RUN Handle = 0x00041303 - SCHED_S_TASK_NO_MORE_RUNS Handle = 0x00041304 - SCHED_S_TASK_NOT_SCHEDULED Handle = 0x00041305 - SCHED_S_TASK_TERMINATED Handle = 0x00041306 - SCHED_S_TASK_NO_VALID_TRIGGERS Handle = 0x00041307 - SCHED_S_EVENT_TRIGGER Handle = 0x00041308 - SCHED_E_TRIGGER_NOT_FOUND Handle = 0x80041309 - SCHED_E_TASK_NOT_READY Handle = 0x8004130A - SCHED_E_TASK_NOT_RUNNING Handle = 0x8004130B - SCHED_E_SERVICE_NOT_INSTALLED Handle = 0x8004130C - SCHED_E_CANNOT_OPEN_TASK Handle = 0x8004130D - SCHED_E_INVALID_TASK Handle = 0x8004130E - SCHED_E_ACCOUNT_INFORMATION_NOT_SET Handle = 0x8004130F - SCHED_E_ACCOUNT_NAME_NOT_FOUND Handle = 0x80041310 - SCHED_E_ACCOUNT_DBASE_CORRUPT Handle = 0x80041311 - SCHED_E_NO_SECURITY_SERVICES Handle = 0x80041312 - SCHED_E_UNKNOWN_OBJECT_VERSION Handle = 0x80041313 - SCHED_E_UNSUPPORTED_ACCOUNT_OPTION Handle = 0x80041314 - SCHED_E_SERVICE_NOT_RUNNING Handle = 0x80041315 - SCHED_E_UNEXPECTEDNODE Handle = 0x80041316 - SCHED_E_NAMESPACE Handle = 0x80041317 - SCHED_E_INVALIDVALUE Handle = 0x80041318 - SCHED_E_MISSINGNODE Handle = 0x80041319 - SCHED_E_MALFORMEDXML Handle = 0x8004131A - SCHED_S_SOME_TRIGGERS_FAILED Handle = 0x0004131B - SCHED_S_BATCH_LOGON_PROBLEM Handle = 0x0004131C - SCHED_E_TOO_MANY_NODES Handle = 0x8004131D - SCHED_E_PAST_END_BOUNDARY Handle = 0x8004131E - SCHED_E_ALREADY_RUNNING Handle = 0x8004131F - SCHED_E_USER_NOT_LOGGED_ON Handle = 0x80041320 - SCHED_E_INVALID_TASK_HASH Handle = 0x80041321 - SCHED_E_SERVICE_NOT_AVAILABLE Handle = 0x80041322 - SCHED_E_SERVICE_TOO_BUSY Handle = 0x80041323 - SCHED_E_TASK_ATTEMPTED Handle = 0x80041324 - SCHED_S_TASK_QUEUED Handle = 0x00041325 - SCHED_E_TASK_DISABLED Handle = 0x80041326 - SCHED_E_TASK_NOT_V1_COMPAT Handle = 0x80041327 - SCHED_E_START_ON_DEMAND Handle = 0x80041328 - SCHED_E_TASK_NOT_UBPM_COMPAT Handle = 0x80041329 - SCHED_E_DEPRECATED_FEATURE_USED Handle = 0x80041330 - CO_E_CLASS_CREATE_FAILED Handle = 0x80080001 - CO_E_SCM_ERROR Handle = 0x80080002 - CO_E_SCM_RPC_FAILURE Handle = 0x80080003 - CO_E_BAD_PATH Handle = 0x80080004 - CO_E_SERVER_EXEC_FAILURE Handle = 0x80080005 - CO_E_OBJSRV_RPC_FAILURE Handle = 0x80080006 - MK_E_NO_NORMALIZED Handle = 0x80080007 - CO_E_SERVER_STOPPING Handle = 0x80080008 - MEM_E_INVALID_ROOT Handle = 0x80080009 - MEM_E_INVALID_LINK Handle = 0x80080010 - MEM_E_INVALID_SIZE Handle = 0x80080011 - CO_S_NOTALLINTERFACES Handle = 0x00080012 - CO_S_MACHINENAMENOTFOUND Handle = 0x00080013 - CO_E_MISSING_DISPLAYNAME Handle = 0x80080015 - CO_E_RUNAS_VALUE_MUST_BE_AAA Handle = 0x80080016 - CO_E_ELEVATION_DISABLED Handle = 0x80080017 - APPX_E_PACKAGING_INTERNAL Handle = 0x80080200 - APPX_E_INTERLEAVING_NOT_ALLOWED Handle = 0x80080201 - APPX_E_RELATIONSHIPS_NOT_ALLOWED Handle = 0x80080202 - APPX_E_MISSING_REQUIRED_FILE Handle = 0x80080203 - APPX_E_INVALID_MANIFEST Handle = 0x80080204 - APPX_E_INVALID_BLOCKMAP Handle = 0x80080205 - APPX_E_CORRUPT_CONTENT Handle = 0x80080206 - APPX_E_BLOCK_HASH_INVALID Handle = 0x80080207 - APPX_E_REQUESTED_RANGE_TOO_LARGE Handle = 0x80080208 - APPX_E_INVALID_SIP_CLIENT_DATA Handle = 0x80080209 - APPX_E_INVALID_KEY_INFO Handle = 0x8008020A - APPX_E_INVALID_CONTENTGROUPMAP Handle = 0x8008020B - APPX_E_INVALID_APPINSTALLER Handle = 0x8008020C - APPX_E_DELTA_BASELINE_VERSION_MISMATCH Handle = 0x8008020D - APPX_E_DELTA_PACKAGE_MISSING_FILE Handle = 0x8008020E - APPX_E_INVALID_DELTA_PACKAGE Handle = 0x8008020F - APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED Handle = 0x80080210 - APPX_E_INVALID_PACKAGING_LAYOUT Handle = 0x80080211 - APPX_E_INVALID_PACKAGESIGNCONFIG Handle = 0x80080212 - APPX_E_RESOURCESPRI_NOT_ALLOWED Handle = 0x80080213 - APPX_E_FILE_COMPRESSION_MISMATCH Handle = 0x80080214 - APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION Handle = 0x80080215 - APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST Handle = 0x80080216 - BT_E_SPURIOUS_ACTIVATION Handle = 0x80080300 - DISP_E_UNKNOWNINTERFACE Handle = 0x80020001 - DISP_E_MEMBERNOTFOUND Handle = 0x80020003 - DISP_E_PARAMNOTFOUND Handle = 0x80020004 - DISP_E_TYPEMISMATCH Handle = 0x80020005 - DISP_E_UNKNOWNNAME Handle = 0x80020006 - DISP_E_NONAMEDARGS Handle = 0x80020007 - DISP_E_BADVARTYPE Handle = 0x80020008 - DISP_E_EXCEPTION Handle = 0x80020009 - DISP_E_OVERFLOW Handle = 0x8002000A - DISP_E_BADINDEX Handle = 0x8002000B - DISP_E_UNKNOWNLCID Handle = 0x8002000C - DISP_E_ARRAYISLOCKED Handle = 0x8002000D - DISP_E_BADPARAMCOUNT Handle = 0x8002000E - DISP_E_PARAMNOTOPTIONAL Handle = 0x8002000F - DISP_E_BADCALLEE Handle = 0x80020010 - DISP_E_NOTACOLLECTION Handle = 0x80020011 - DISP_E_DIVBYZERO Handle = 0x80020012 - DISP_E_BUFFERTOOSMALL Handle = 0x80020013 - TYPE_E_BUFFERTOOSMALL Handle = 0x80028016 - TYPE_E_FIELDNOTFOUND Handle = 0x80028017 - TYPE_E_INVDATAREAD Handle = 0x80028018 - TYPE_E_UNSUPFORMAT Handle = 0x80028019 - TYPE_E_REGISTRYACCESS Handle = 0x8002801C - TYPE_E_LIBNOTREGISTERED Handle = 0x8002801D - TYPE_E_UNDEFINEDTYPE Handle = 0x80028027 - TYPE_E_QUALIFIEDNAMEDISALLOWED Handle = 0x80028028 - TYPE_E_INVALIDSTATE Handle = 0x80028029 - TYPE_E_WRONGTYPEKIND Handle = 0x8002802A - TYPE_E_ELEMENTNOTFOUND Handle = 0x8002802B - TYPE_E_AMBIGUOUSNAME Handle = 0x8002802C - TYPE_E_NAMECONFLICT Handle = 0x8002802D - TYPE_E_UNKNOWNLCID Handle = 0x8002802E - TYPE_E_DLLFUNCTIONNOTFOUND Handle = 0x8002802F - TYPE_E_BADMODULEKIND Handle = 0x800288BD - TYPE_E_SIZETOOBIG Handle = 0x800288C5 - TYPE_E_DUPLICATEID Handle = 0x800288C6 - TYPE_E_INVALIDID Handle = 0x800288CF - TYPE_E_TYPEMISMATCH Handle = 0x80028CA0 - TYPE_E_OUTOFBOUNDS Handle = 0x80028CA1 - TYPE_E_IOERROR Handle = 0x80028CA2 - TYPE_E_CANTCREATETMPFILE Handle = 0x80028CA3 - TYPE_E_CANTLOADLIBRARY Handle = 0x80029C4A - TYPE_E_INCONSISTENTPROPFUNCS Handle = 0x80029C83 - TYPE_E_CIRCULARTYPE Handle = 0x80029C84 - STG_E_INVALIDFUNCTION Handle = 0x80030001 - STG_E_FILENOTFOUND Handle = 0x80030002 - STG_E_PATHNOTFOUND Handle = 0x80030003 - STG_E_TOOMANYOPENFILES Handle = 0x80030004 - STG_E_ACCESSDENIED Handle = 0x80030005 - STG_E_INVALIDHANDLE Handle = 0x80030006 - STG_E_INSUFFICIENTMEMORY Handle = 0x80030008 - STG_E_INVALIDPOINTER Handle = 0x80030009 - STG_E_NOMOREFILES Handle = 0x80030012 - STG_E_DISKISWRITEPROTECTED Handle = 0x80030013 - STG_E_SEEKERROR Handle = 0x80030019 - STG_E_WRITEFAULT Handle = 0x8003001D - STG_E_READFAULT Handle = 0x8003001E - STG_E_SHAREVIOLATION Handle = 0x80030020 - STG_E_LOCKVIOLATION Handle = 0x80030021 - STG_E_FILEALREADYEXISTS Handle = 0x80030050 - STG_E_INVALIDPARAMETER Handle = 0x80030057 - STG_E_MEDIUMFULL Handle = 0x80030070 - STG_E_PROPSETMISMATCHED Handle = 0x800300F0 - STG_E_ABNORMALAPIEXIT Handle = 0x800300FA - STG_E_INVALIDHEADER Handle = 0x800300FB - STG_E_INVALIDNAME Handle = 0x800300FC - STG_E_UNKNOWN Handle = 0x800300FD - STG_E_UNIMPLEMENTEDFUNCTION Handle = 0x800300FE - STG_E_INVALIDFLAG Handle = 0x800300FF - STG_E_INUSE Handle = 0x80030100 - STG_E_NOTCURRENT Handle = 0x80030101 - STG_E_REVERTED Handle = 0x80030102 - STG_E_CANTSAVE Handle = 0x80030103 - STG_E_OLDFORMAT Handle = 0x80030104 - STG_E_OLDDLL Handle = 0x80030105 - STG_E_SHAREREQUIRED Handle = 0x80030106 - STG_E_NOTFILEBASEDSTORAGE Handle = 0x80030107 - STG_E_EXTANTMARSHALLINGS Handle = 0x80030108 - STG_E_DOCFILECORRUPT Handle = 0x80030109 - STG_E_BADBASEADDRESS Handle = 0x80030110 - STG_E_DOCFILETOOLARGE Handle = 0x80030111 - STG_E_NOTSIMPLEFORMAT Handle = 0x80030112 - STG_E_INCOMPLETE Handle = 0x80030201 - STG_E_TERMINATED Handle = 0x80030202 - STG_S_CONVERTED Handle = 0x00030200 - STG_S_BLOCK Handle = 0x00030201 - STG_S_RETRYNOW Handle = 0x00030202 - STG_S_MONITORING Handle = 0x00030203 - STG_S_MULTIPLEOPENS Handle = 0x00030204 - STG_S_CONSOLIDATIONFAILED Handle = 0x00030205 - STG_S_CANNOTCONSOLIDATE Handle = 0x00030206 - STG_S_POWER_CYCLE_REQUIRED Handle = 0x00030207 - STG_E_FIRMWARE_SLOT_INVALID Handle = 0x80030208 - STG_E_FIRMWARE_IMAGE_INVALID Handle = 0x80030209 - STG_E_DEVICE_UNRESPONSIVE Handle = 0x8003020A - STG_E_STATUS_COPY_PROTECTION_FAILURE Handle = 0x80030305 - STG_E_CSS_AUTHENTICATION_FAILURE Handle = 0x80030306 - STG_E_CSS_KEY_NOT_PRESENT Handle = 0x80030307 - STG_E_CSS_KEY_NOT_ESTABLISHED Handle = 0x80030308 - STG_E_CSS_SCRAMBLED_SECTOR Handle = 0x80030309 - STG_E_CSS_REGION_MISMATCH Handle = 0x8003030A - STG_E_RESETS_EXHAUSTED Handle = 0x8003030B - RPC_E_CALL_REJECTED Handle = 0x80010001 - RPC_E_CALL_CANCELED Handle = 0x80010002 - RPC_E_CANTPOST_INSENDCALL Handle = 0x80010003 - RPC_E_CANTCALLOUT_INASYNCCALL Handle = 0x80010004 - RPC_E_CANTCALLOUT_INEXTERNALCALL Handle = 0x80010005 - RPC_E_CONNECTION_TERMINATED Handle = 0x80010006 - RPC_E_SERVER_DIED Handle = 0x80010007 - RPC_E_CLIENT_DIED Handle = 0x80010008 - RPC_E_INVALID_DATAPACKET Handle = 0x80010009 - RPC_E_CANTTRANSMIT_CALL Handle = 0x8001000A - RPC_E_CLIENT_CANTMARSHAL_DATA Handle = 0x8001000B - RPC_E_CLIENT_CANTUNMARSHAL_DATA Handle = 0x8001000C - RPC_E_SERVER_CANTMARSHAL_DATA Handle = 0x8001000D - RPC_E_SERVER_CANTUNMARSHAL_DATA Handle = 0x8001000E - RPC_E_INVALID_DATA Handle = 0x8001000F - RPC_E_INVALID_PARAMETER Handle = 0x80010010 - RPC_E_CANTCALLOUT_AGAIN Handle = 0x80010011 - RPC_E_SERVER_DIED_DNE Handle = 0x80010012 - RPC_E_SYS_CALL_FAILED Handle = 0x80010100 - RPC_E_OUT_OF_RESOURCES Handle = 0x80010101 - RPC_E_ATTEMPTED_MULTITHREAD Handle = 0x80010102 - RPC_E_NOT_REGISTERED Handle = 0x80010103 - RPC_E_FAULT Handle = 0x80010104 - RPC_E_SERVERFAULT Handle = 0x80010105 - RPC_E_CHANGED_MODE Handle = 0x80010106 - RPC_E_INVALIDMETHOD Handle = 0x80010107 - RPC_E_DISCONNECTED Handle = 0x80010108 - RPC_E_RETRY Handle = 0x80010109 - RPC_E_SERVERCALL_RETRYLATER Handle = 0x8001010A - RPC_E_SERVERCALL_REJECTED Handle = 0x8001010B - RPC_E_INVALID_CALLDATA Handle = 0x8001010C - RPC_E_CANTCALLOUT_ININPUTSYNCCALL Handle = 0x8001010D - RPC_E_WRONG_THREAD Handle = 0x8001010E - RPC_E_THREAD_NOT_INIT Handle = 0x8001010F - RPC_E_VERSION_MISMATCH Handle = 0x80010110 - RPC_E_INVALID_HEADER Handle = 0x80010111 - RPC_E_INVALID_EXTENSION Handle = 0x80010112 - RPC_E_INVALID_IPID Handle = 0x80010113 - RPC_E_INVALID_OBJECT Handle = 0x80010114 - RPC_S_CALLPENDING Handle = 0x80010115 - RPC_S_WAITONTIMER Handle = 0x80010116 - RPC_E_CALL_COMPLETE Handle = 0x80010117 - RPC_E_UNSECURE_CALL Handle = 0x80010118 - RPC_E_TOO_LATE Handle = 0x80010119 - RPC_E_NO_GOOD_SECURITY_PACKAGES Handle = 0x8001011A - RPC_E_ACCESS_DENIED Handle = 0x8001011B - RPC_E_REMOTE_DISABLED Handle = 0x8001011C - RPC_E_INVALID_OBJREF Handle = 0x8001011D - RPC_E_NO_CONTEXT Handle = 0x8001011E - RPC_E_TIMEOUT Handle = 0x8001011F - RPC_E_NO_SYNC Handle = 0x80010120 - RPC_E_FULLSIC_REQUIRED Handle = 0x80010121 - RPC_E_INVALID_STD_NAME Handle = 0x80010122 - CO_E_FAILEDTOIMPERSONATE Handle = 0x80010123 - CO_E_FAILEDTOGETSECCTX Handle = 0x80010124 - CO_E_FAILEDTOOPENTHREADTOKEN Handle = 0x80010125 - CO_E_FAILEDTOGETTOKENINFO Handle = 0x80010126 - CO_E_TRUSTEEDOESNTMATCHCLIENT Handle = 0x80010127 - CO_E_FAILEDTOQUERYCLIENTBLANKET Handle = 0x80010128 - CO_E_FAILEDTOSETDACL Handle = 0x80010129 - CO_E_ACCESSCHECKFAILED Handle = 0x8001012A - CO_E_NETACCESSAPIFAILED Handle = 0x8001012B - CO_E_WRONGTRUSTEENAMESYNTAX Handle = 0x8001012C - CO_E_INVALIDSID Handle = 0x8001012D - CO_E_CONVERSIONFAILED Handle = 0x8001012E - CO_E_NOMATCHINGSIDFOUND Handle = 0x8001012F - CO_E_LOOKUPACCSIDFAILED Handle = 0x80010130 - CO_E_NOMATCHINGNAMEFOUND Handle = 0x80010131 - CO_E_LOOKUPACCNAMEFAILED Handle = 0x80010132 - CO_E_SETSERLHNDLFAILED Handle = 0x80010133 - CO_E_FAILEDTOGETWINDIR Handle = 0x80010134 - CO_E_PATHTOOLONG Handle = 0x80010135 - CO_E_FAILEDTOGENUUID Handle = 0x80010136 - CO_E_FAILEDTOCREATEFILE Handle = 0x80010137 - CO_E_FAILEDTOCLOSEHANDLE Handle = 0x80010138 - CO_E_EXCEEDSYSACLLIMIT Handle = 0x80010139 - CO_E_ACESINWRONGORDER Handle = 0x8001013A - CO_E_INCOMPATIBLESTREAMVERSION Handle = 0x8001013B - CO_E_FAILEDTOOPENPROCESSTOKEN Handle = 0x8001013C - CO_E_DECODEFAILED Handle = 0x8001013D - CO_E_ACNOTINITIALIZED Handle = 0x8001013F - CO_E_CANCEL_DISABLED Handle = 0x80010140 - RPC_E_UNEXPECTED Handle = 0x8001FFFF - ERROR_AUDITING_DISABLED Handle = 0xC0090001 - ERROR_ALL_SIDS_FILTERED Handle = 0xC0090002 - ERROR_BIZRULES_NOT_ENABLED Handle = 0xC0090003 - NTE_BAD_UID Handle = 0x80090001 - NTE_BAD_HASH Handle = 0x80090002 - NTE_BAD_KEY Handle = 0x80090003 - NTE_BAD_LEN Handle = 0x80090004 - NTE_BAD_DATA Handle = 0x80090005 - NTE_BAD_SIGNATURE Handle = 0x80090006 - NTE_BAD_VER Handle = 0x80090007 - NTE_BAD_ALGID Handle = 0x80090008 - NTE_BAD_FLAGS Handle = 0x80090009 - NTE_BAD_TYPE Handle = 0x8009000A - NTE_BAD_KEY_STATE Handle = 0x8009000B - NTE_BAD_HASH_STATE Handle = 0x8009000C - NTE_NO_KEY Handle = 0x8009000D - NTE_NO_MEMORY Handle = 0x8009000E - NTE_EXISTS Handle = 0x8009000F - NTE_PERM Handle = 0x80090010 - NTE_NOT_FOUND Handle = 0x80090011 - NTE_DOUBLE_ENCRYPT Handle = 0x80090012 - NTE_BAD_PROVIDER Handle = 0x80090013 - NTE_BAD_PROV_TYPE Handle = 0x80090014 - NTE_BAD_PUBLIC_KEY Handle = 0x80090015 - NTE_BAD_KEYSET Handle = 0x80090016 - NTE_PROV_TYPE_NOT_DEF Handle = 0x80090017 - NTE_PROV_TYPE_ENTRY_BAD Handle = 0x80090018 - NTE_KEYSET_NOT_DEF Handle = 0x80090019 - NTE_KEYSET_ENTRY_BAD Handle = 0x8009001A - NTE_PROV_TYPE_NO_MATCH Handle = 0x8009001B - NTE_SIGNATURE_FILE_BAD Handle = 0x8009001C - NTE_PROVIDER_DLL_FAIL Handle = 0x8009001D - NTE_PROV_DLL_NOT_FOUND Handle = 0x8009001E - NTE_BAD_KEYSET_PARAM Handle = 0x8009001F - NTE_FAIL Handle = 0x80090020 - NTE_SYS_ERR Handle = 0x80090021 - NTE_SILENT_CONTEXT Handle = 0x80090022 - NTE_TOKEN_KEYSET_STORAGE_FULL Handle = 0x80090023 - NTE_TEMPORARY_PROFILE Handle = 0x80090024 - NTE_FIXEDPARAMETER Handle = 0x80090025 - NTE_INVALID_HANDLE Handle = 0x80090026 - NTE_INVALID_PARAMETER Handle = 0x80090027 - NTE_BUFFER_TOO_SMALL Handle = 0x80090028 - NTE_NOT_SUPPORTED Handle = 0x80090029 - NTE_NO_MORE_ITEMS Handle = 0x8009002A - NTE_BUFFERS_OVERLAP Handle = 0x8009002B - NTE_DECRYPTION_FAILURE Handle = 0x8009002C - NTE_INTERNAL_ERROR Handle = 0x8009002D - NTE_UI_REQUIRED Handle = 0x8009002E - NTE_HMAC_NOT_SUPPORTED Handle = 0x8009002F - NTE_DEVICE_NOT_READY Handle = 0x80090030 - NTE_AUTHENTICATION_IGNORED Handle = 0x80090031 - NTE_VALIDATION_FAILED Handle = 0x80090032 - NTE_INCORRECT_PASSWORD Handle = 0x80090033 - NTE_ENCRYPTION_FAILURE Handle = 0x80090034 - NTE_DEVICE_NOT_FOUND Handle = 0x80090035 - NTE_USER_CANCELLED Handle = 0x80090036 - NTE_PASSWORD_CHANGE_REQUIRED Handle = 0x80090037 - NTE_NOT_ACTIVE_CONSOLE Handle = 0x80090038 - SEC_E_INSUFFICIENT_MEMORY Handle = 0x80090300 - SEC_E_INVALID_HANDLE Handle = 0x80090301 - SEC_E_UNSUPPORTED_FUNCTION Handle = 0x80090302 - SEC_E_TARGET_UNKNOWN Handle = 0x80090303 - SEC_E_INTERNAL_ERROR Handle = 0x80090304 - SEC_E_SECPKG_NOT_FOUND Handle = 0x80090305 - SEC_E_NOT_OWNER Handle = 0x80090306 - SEC_E_CANNOT_INSTALL Handle = 0x80090307 - SEC_E_INVALID_TOKEN Handle = 0x80090308 - SEC_E_CANNOT_PACK Handle = 0x80090309 - SEC_E_QOP_NOT_SUPPORTED Handle = 0x8009030A - SEC_E_NO_IMPERSONATION Handle = 0x8009030B - SEC_E_LOGON_DENIED Handle = 0x8009030C - SEC_E_UNKNOWN_CREDENTIALS Handle = 0x8009030D - SEC_E_NO_CREDENTIALS Handle = 0x8009030E - SEC_E_MESSAGE_ALTERED Handle = 0x8009030F - SEC_E_OUT_OF_SEQUENCE Handle = 0x80090310 - SEC_E_NO_AUTHENTICATING_AUTHORITY Handle = 0x80090311 - SEC_I_CONTINUE_NEEDED Handle = 0x00090312 - SEC_I_COMPLETE_NEEDED Handle = 0x00090313 - SEC_I_COMPLETE_AND_CONTINUE Handle = 0x00090314 - SEC_I_LOCAL_LOGON Handle = 0x00090315 - SEC_I_GENERIC_EXTENSION_RECEIVED Handle = 0x00090316 - SEC_E_BAD_PKGID Handle = 0x80090316 - SEC_E_CONTEXT_EXPIRED Handle = 0x80090317 - SEC_I_CONTEXT_EXPIRED Handle = 0x00090317 - SEC_E_INCOMPLETE_MESSAGE Handle = 0x80090318 - SEC_E_INCOMPLETE_CREDENTIALS Handle = 0x80090320 - SEC_E_BUFFER_TOO_SMALL Handle = 0x80090321 - SEC_I_INCOMPLETE_CREDENTIALS Handle = 0x00090320 - SEC_I_RENEGOTIATE Handle = 0x00090321 - SEC_E_WRONG_PRINCIPAL Handle = 0x80090322 - SEC_I_NO_LSA_CONTEXT Handle = 0x00090323 - SEC_E_TIME_SKEW Handle = 0x80090324 - SEC_E_UNTRUSTED_ROOT Handle = 0x80090325 - SEC_E_ILLEGAL_MESSAGE Handle = 0x80090326 - SEC_E_CERT_UNKNOWN Handle = 0x80090327 - SEC_E_CERT_EXPIRED Handle = 0x80090328 - SEC_E_ENCRYPT_FAILURE Handle = 0x80090329 - SEC_E_DECRYPT_FAILURE Handle = 0x80090330 - SEC_E_ALGORITHM_MISMATCH Handle = 0x80090331 - SEC_E_SECURITY_QOS_FAILED Handle = 0x80090332 - SEC_E_UNFINISHED_CONTEXT_DELETED Handle = 0x80090333 - SEC_E_NO_TGT_REPLY Handle = 0x80090334 - SEC_E_NO_IP_ADDRESSES Handle = 0x80090335 - SEC_E_WRONG_CREDENTIAL_HANDLE Handle = 0x80090336 - SEC_E_CRYPTO_SYSTEM_INVALID Handle = 0x80090337 - SEC_E_MAX_REFERRALS_EXCEEDED Handle = 0x80090338 - SEC_E_MUST_BE_KDC Handle = 0x80090339 - SEC_E_STRONG_CRYPTO_NOT_SUPPORTED Handle = 0x8009033A - SEC_E_TOO_MANY_PRINCIPALS Handle = 0x8009033B - SEC_E_NO_PA_DATA Handle = 0x8009033C - SEC_E_PKINIT_NAME_MISMATCH Handle = 0x8009033D - SEC_E_SMARTCARD_LOGON_REQUIRED Handle = 0x8009033E - SEC_E_SHUTDOWN_IN_PROGRESS Handle = 0x8009033F - SEC_E_KDC_INVALID_REQUEST Handle = 0x80090340 - SEC_E_KDC_UNABLE_TO_REFER Handle = 0x80090341 - SEC_E_KDC_UNKNOWN_ETYPE Handle = 0x80090342 - SEC_E_UNSUPPORTED_PREAUTH Handle = 0x80090343 - SEC_E_DELEGATION_REQUIRED Handle = 0x80090345 - SEC_E_BAD_BINDINGS Handle = 0x80090346 - SEC_E_MULTIPLE_ACCOUNTS Handle = 0x80090347 - SEC_E_NO_KERB_KEY Handle = 0x80090348 - SEC_E_CERT_WRONG_USAGE Handle = 0x80090349 - SEC_E_DOWNGRADE_DETECTED Handle = 0x80090350 - SEC_E_SMARTCARD_CERT_REVOKED Handle = 0x80090351 - SEC_E_ISSUING_CA_UNTRUSTED Handle = 0x80090352 - SEC_E_REVOCATION_OFFLINE_C Handle = 0x80090353 - SEC_E_PKINIT_CLIENT_FAILURE Handle = 0x80090354 - SEC_E_SMARTCARD_CERT_EXPIRED Handle = 0x80090355 - SEC_E_NO_S4U_PROT_SUPPORT Handle = 0x80090356 - SEC_E_CROSSREALM_DELEGATION_FAILURE Handle = 0x80090357 - SEC_E_REVOCATION_OFFLINE_KDC Handle = 0x80090358 - SEC_E_ISSUING_CA_UNTRUSTED_KDC Handle = 0x80090359 - SEC_E_KDC_CERT_EXPIRED Handle = 0x8009035A - SEC_E_KDC_CERT_REVOKED Handle = 0x8009035B - SEC_I_SIGNATURE_NEEDED Handle = 0x0009035C - SEC_E_INVALID_PARAMETER Handle = 0x8009035D - SEC_E_DELEGATION_POLICY Handle = 0x8009035E - SEC_E_POLICY_NLTM_ONLY Handle = 0x8009035F - SEC_I_NO_RENEGOTIATION Handle = 0x00090360 - SEC_E_NO_CONTEXT Handle = 0x80090361 - SEC_E_PKU2U_CERT_FAILURE Handle = 0x80090362 - SEC_E_MUTUAL_AUTH_FAILED Handle = 0x80090363 - SEC_I_MESSAGE_FRAGMENT Handle = 0x00090364 - SEC_E_ONLY_HTTPS_ALLOWED Handle = 0x80090365 - SEC_I_CONTINUE_NEEDED_MESSAGE_OK Handle = 0x00090366 - SEC_E_APPLICATION_PROTOCOL_MISMATCH Handle = 0x80090367 - SEC_I_ASYNC_CALL_PENDING Handle = 0x00090368 - SEC_E_INVALID_UPN_NAME Handle = 0x80090369 - SEC_E_EXT_BUFFER_TOO_SMALL Handle = 0x8009036A - SEC_E_INSUFFICIENT_BUFFERS Handle = 0x8009036B - SEC_E_NO_SPM = SEC_E_INTERNAL_ERROR - SEC_E_NOT_SUPPORTED = SEC_E_UNSUPPORTED_FUNCTION - CRYPT_E_MSG_ERROR Handle = 0x80091001 - CRYPT_E_UNKNOWN_ALGO Handle = 0x80091002 - CRYPT_E_OID_FORMAT Handle = 0x80091003 - CRYPT_E_INVALID_MSG_TYPE Handle = 0x80091004 - CRYPT_E_UNEXPECTED_ENCODING Handle = 0x80091005 - CRYPT_E_AUTH_ATTR_MISSING Handle = 0x80091006 - CRYPT_E_HASH_VALUE Handle = 0x80091007 - CRYPT_E_INVALID_INDEX Handle = 0x80091008 - CRYPT_E_ALREADY_DECRYPTED Handle = 0x80091009 - CRYPT_E_NOT_DECRYPTED Handle = 0x8009100A - CRYPT_E_RECIPIENT_NOT_FOUND Handle = 0x8009100B - CRYPT_E_CONTROL_TYPE Handle = 0x8009100C - CRYPT_E_ISSUER_SERIALNUMBER Handle = 0x8009100D - CRYPT_E_SIGNER_NOT_FOUND Handle = 0x8009100E - CRYPT_E_ATTRIBUTES_MISSING Handle = 0x8009100F - CRYPT_E_STREAM_MSG_NOT_READY Handle = 0x80091010 - CRYPT_E_STREAM_INSUFFICIENT_DATA Handle = 0x80091011 - CRYPT_I_NEW_PROTECTION_REQUIRED Handle = 0x00091012 - CRYPT_E_BAD_LEN Handle = 0x80092001 - CRYPT_E_BAD_ENCODE Handle = 0x80092002 - CRYPT_E_FILE_ERROR Handle = 0x80092003 - CRYPT_E_NOT_FOUND Handle = 0x80092004 - CRYPT_E_EXISTS Handle = 0x80092005 - CRYPT_E_NO_PROVIDER Handle = 0x80092006 - CRYPT_E_SELF_SIGNED Handle = 0x80092007 - CRYPT_E_DELETED_PREV Handle = 0x80092008 - CRYPT_E_NO_MATCH Handle = 0x80092009 - CRYPT_E_UNEXPECTED_MSG_TYPE Handle = 0x8009200A - CRYPT_E_NO_KEY_PROPERTY Handle = 0x8009200B - CRYPT_E_NO_DECRYPT_CERT Handle = 0x8009200C - CRYPT_E_BAD_MSG Handle = 0x8009200D - CRYPT_E_NO_SIGNER Handle = 0x8009200E - CRYPT_E_PENDING_CLOSE Handle = 0x8009200F - CRYPT_E_REVOKED Handle = 0x80092010 - CRYPT_E_NO_REVOCATION_DLL Handle = 0x80092011 - CRYPT_E_NO_REVOCATION_CHECK Handle = 0x80092012 - CRYPT_E_REVOCATION_OFFLINE Handle = 0x80092013 - CRYPT_E_NOT_IN_REVOCATION_DATABASE Handle = 0x80092014 - CRYPT_E_INVALID_NUMERIC_STRING Handle = 0x80092020 - CRYPT_E_INVALID_PRINTABLE_STRING Handle = 0x80092021 - CRYPT_E_INVALID_IA5_STRING Handle = 0x80092022 - CRYPT_E_INVALID_X500_STRING Handle = 0x80092023 - CRYPT_E_NOT_CHAR_STRING Handle = 0x80092024 - CRYPT_E_FILERESIZED Handle = 0x80092025 - CRYPT_E_SECURITY_SETTINGS Handle = 0x80092026 - CRYPT_E_NO_VERIFY_USAGE_DLL Handle = 0x80092027 - CRYPT_E_NO_VERIFY_USAGE_CHECK Handle = 0x80092028 - CRYPT_E_VERIFY_USAGE_OFFLINE Handle = 0x80092029 - CRYPT_E_NOT_IN_CTL Handle = 0x8009202A - CRYPT_E_NO_TRUSTED_SIGNER Handle = 0x8009202B - CRYPT_E_MISSING_PUBKEY_PARA Handle = 0x8009202C - CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND Handle = 0x8009202D - CRYPT_E_OSS_ERROR Handle = 0x80093000 - OSS_MORE_BUF Handle = 0x80093001 - OSS_NEGATIVE_UINTEGER Handle = 0x80093002 - OSS_PDU_RANGE Handle = 0x80093003 - OSS_MORE_INPUT Handle = 0x80093004 - OSS_DATA_ERROR Handle = 0x80093005 - OSS_BAD_ARG Handle = 0x80093006 - OSS_BAD_VERSION Handle = 0x80093007 - OSS_OUT_MEMORY Handle = 0x80093008 - OSS_PDU_MISMATCH Handle = 0x80093009 - OSS_LIMITED Handle = 0x8009300A - OSS_BAD_PTR Handle = 0x8009300B - OSS_BAD_TIME Handle = 0x8009300C - OSS_INDEFINITE_NOT_SUPPORTED Handle = 0x8009300D - OSS_MEM_ERROR Handle = 0x8009300E - OSS_BAD_TABLE Handle = 0x8009300F - OSS_TOO_LONG Handle = 0x80093010 - OSS_CONSTRAINT_VIOLATED Handle = 0x80093011 - OSS_FATAL_ERROR Handle = 0x80093012 - OSS_ACCESS_SERIALIZATION_ERROR Handle = 0x80093013 - OSS_NULL_TBL Handle = 0x80093014 - OSS_NULL_FCN Handle = 0x80093015 - OSS_BAD_ENCRULES Handle = 0x80093016 - OSS_UNAVAIL_ENCRULES Handle = 0x80093017 - OSS_CANT_OPEN_TRACE_WINDOW Handle = 0x80093018 - OSS_UNIMPLEMENTED Handle = 0x80093019 - OSS_OID_DLL_NOT_LINKED Handle = 0x8009301A - OSS_CANT_OPEN_TRACE_FILE Handle = 0x8009301B - OSS_TRACE_FILE_ALREADY_OPEN Handle = 0x8009301C - OSS_TABLE_MISMATCH Handle = 0x8009301D - OSS_TYPE_NOT_SUPPORTED Handle = 0x8009301E - OSS_REAL_DLL_NOT_LINKED Handle = 0x8009301F - OSS_REAL_CODE_NOT_LINKED Handle = 0x80093020 - OSS_OUT_OF_RANGE Handle = 0x80093021 - OSS_COPIER_DLL_NOT_LINKED Handle = 0x80093022 - OSS_CONSTRAINT_DLL_NOT_LINKED Handle = 0x80093023 - OSS_COMPARATOR_DLL_NOT_LINKED Handle = 0x80093024 - OSS_COMPARATOR_CODE_NOT_LINKED Handle = 0x80093025 - OSS_MEM_MGR_DLL_NOT_LINKED Handle = 0x80093026 - OSS_PDV_DLL_NOT_LINKED Handle = 0x80093027 - OSS_PDV_CODE_NOT_LINKED Handle = 0x80093028 - OSS_API_DLL_NOT_LINKED Handle = 0x80093029 - OSS_BERDER_DLL_NOT_LINKED Handle = 0x8009302A - OSS_PER_DLL_NOT_LINKED Handle = 0x8009302B - OSS_OPEN_TYPE_ERROR Handle = 0x8009302C - OSS_MUTEX_NOT_CREATED Handle = 0x8009302D - OSS_CANT_CLOSE_TRACE_FILE Handle = 0x8009302E - CRYPT_E_ASN1_ERROR Handle = 0x80093100 - CRYPT_E_ASN1_INTERNAL Handle = 0x80093101 - CRYPT_E_ASN1_EOD Handle = 0x80093102 - CRYPT_E_ASN1_CORRUPT Handle = 0x80093103 - CRYPT_E_ASN1_LARGE Handle = 0x80093104 - CRYPT_E_ASN1_CONSTRAINT Handle = 0x80093105 - CRYPT_E_ASN1_MEMORY Handle = 0x80093106 - CRYPT_E_ASN1_OVERFLOW Handle = 0x80093107 - CRYPT_E_ASN1_BADPDU Handle = 0x80093108 - CRYPT_E_ASN1_BADARGS Handle = 0x80093109 - CRYPT_E_ASN1_BADREAL Handle = 0x8009310A - CRYPT_E_ASN1_BADTAG Handle = 0x8009310B - CRYPT_E_ASN1_CHOICE Handle = 0x8009310C - CRYPT_E_ASN1_RULE Handle = 0x8009310D - CRYPT_E_ASN1_UTF8 Handle = 0x8009310E - CRYPT_E_ASN1_PDU_TYPE Handle = 0x80093133 - CRYPT_E_ASN1_NYI Handle = 0x80093134 - CRYPT_E_ASN1_EXTENDED Handle = 0x80093201 - CRYPT_E_ASN1_NOEOD Handle = 0x80093202 - CERTSRV_E_BAD_REQUESTSUBJECT Handle = 0x80094001 - CERTSRV_E_NO_REQUEST Handle = 0x80094002 - CERTSRV_E_BAD_REQUESTSTATUS Handle = 0x80094003 - CERTSRV_E_PROPERTY_EMPTY Handle = 0x80094004 - CERTSRV_E_INVALID_CA_CERTIFICATE Handle = 0x80094005 - CERTSRV_E_SERVER_SUSPENDED Handle = 0x80094006 - CERTSRV_E_ENCODING_LENGTH Handle = 0x80094007 - CERTSRV_E_ROLECONFLICT Handle = 0x80094008 - CERTSRV_E_RESTRICTEDOFFICER Handle = 0x80094009 - CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED Handle = 0x8009400A - CERTSRV_E_NO_VALID_KRA Handle = 0x8009400B - CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL Handle = 0x8009400C - CERTSRV_E_NO_CAADMIN_DEFINED Handle = 0x8009400D - CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE Handle = 0x8009400E - CERTSRV_E_NO_DB_SESSIONS Handle = 0x8009400F - CERTSRV_E_ALIGNMENT_FAULT Handle = 0x80094010 - CERTSRV_E_ENROLL_DENIED Handle = 0x80094011 - CERTSRV_E_TEMPLATE_DENIED Handle = 0x80094012 - CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE Handle = 0x80094013 - CERTSRV_E_ADMIN_DENIED_REQUEST Handle = 0x80094014 - CERTSRV_E_NO_POLICY_SERVER Handle = 0x80094015 - CERTSRV_E_WEAK_SIGNATURE_OR_KEY Handle = 0x80094016 - CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED Handle = 0x80094017 - CERTSRV_E_ENCRYPTION_CERT_REQUIRED Handle = 0x80094018 - CERTSRV_E_UNSUPPORTED_CERT_TYPE Handle = 0x80094800 - CERTSRV_E_NO_CERT_TYPE Handle = 0x80094801 - CERTSRV_E_TEMPLATE_CONFLICT Handle = 0x80094802 - CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED Handle = 0x80094803 - CERTSRV_E_ARCHIVED_KEY_REQUIRED Handle = 0x80094804 - CERTSRV_E_SMIME_REQUIRED Handle = 0x80094805 - CERTSRV_E_BAD_RENEWAL_SUBJECT Handle = 0x80094806 - CERTSRV_E_BAD_TEMPLATE_VERSION Handle = 0x80094807 - CERTSRV_E_TEMPLATE_POLICY_REQUIRED Handle = 0x80094808 - CERTSRV_E_SIGNATURE_POLICY_REQUIRED Handle = 0x80094809 - CERTSRV_E_SIGNATURE_COUNT Handle = 0x8009480A - CERTSRV_E_SIGNATURE_REJECTED Handle = 0x8009480B - CERTSRV_E_ISSUANCE_POLICY_REQUIRED Handle = 0x8009480C - CERTSRV_E_SUBJECT_UPN_REQUIRED Handle = 0x8009480D - CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED Handle = 0x8009480E - CERTSRV_E_SUBJECT_DNS_REQUIRED Handle = 0x8009480F - CERTSRV_E_ARCHIVED_KEY_UNEXPECTED Handle = 0x80094810 - CERTSRV_E_KEY_LENGTH Handle = 0x80094811 - CERTSRV_E_SUBJECT_EMAIL_REQUIRED Handle = 0x80094812 - CERTSRV_E_UNKNOWN_CERT_TYPE Handle = 0x80094813 - CERTSRV_E_CERT_TYPE_OVERLAP Handle = 0x80094814 - CERTSRV_E_TOO_MANY_SIGNATURES Handle = 0x80094815 - CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY Handle = 0x80094816 - CERTSRV_E_INVALID_EK Handle = 0x80094817 - CERTSRV_E_INVALID_IDBINDING Handle = 0x80094818 - CERTSRV_E_INVALID_ATTESTATION Handle = 0x80094819 - CERTSRV_E_KEY_ATTESTATION Handle = 0x8009481A - CERTSRV_E_CORRUPT_KEY_ATTESTATION Handle = 0x8009481B - CERTSRV_E_EXPIRED_CHALLENGE Handle = 0x8009481C - CERTSRV_E_INVALID_RESPONSE Handle = 0x8009481D - CERTSRV_E_INVALID_REQUESTID Handle = 0x8009481E - CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH Handle = 0x8009481F - CERTSRV_E_PENDING_CLIENT_RESPONSE Handle = 0x80094820 - XENROLL_E_KEY_NOT_EXPORTABLE Handle = 0x80095000 - XENROLL_E_CANNOT_ADD_ROOT_CERT Handle = 0x80095001 - XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND Handle = 0x80095002 - XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH Handle = 0x80095003 - XENROLL_E_RESPONSE_KA_HASH_MISMATCH Handle = 0x80095004 - XENROLL_E_KEYSPEC_SMIME_MISMATCH Handle = 0x80095005 - TRUST_E_SYSTEM_ERROR Handle = 0x80096001 - TRUST_E_NO_SIGNER_CERT Handle = 0x80096002 - TRUST_E_COUNTER_SIGNER Handle = 0x80096003 - TRUST_E_CERT_SIGNATURE Handle = 0x80096004 - TRUST_E_TIME_STAMP Handle = 0x80096005 - TRUST_E_BAD_DIGEST Handle = 0x80096010 - TRUST_E_MALFORMED_SIGNATURE Handle = 0x80096011 - TRUST_E_BASIC_CONSTRAINTS Handle = 0x80096019 - TRUST_E_FINANCIAL_CRITERIA Handle = 0x8009601E - MSSIPOTF_E_OUTOFMEMRANGE Handle = 0x80097001 - MSSIPOTF_E_CANTGETOBJECT Handle = 0x80097002 - MSSIPOTF_E_NOHEADTABLE Handle = 0x80097003 - MSSIPOTF_E_BAD_MAGICNUMBER Handle = 0x80097004 - MSSIPOTF_E_BAD_OFFSET_TABLE Handle = 0x80097005 - MSSIPOTF_E_TABLE_TAGORDER Handle = 0x80097006 - MSSIPOTF_E_TABLE_LONGWORD Handle = 0x80097007 - MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT Handle = 0x80097008 - MSSIPOTF_E_TABLES_OVERLAP Handle = 0x80097009 - MSSIPOTF_E_TABLE_PADBYTES Handle = 0x8009700A - MSSIPOTF_E_FILETOOSMALL Handle = 0x8009700B - MSSIPOTF_E_TABLE_CHECKSUM Handle = 0x8009700C - MSSIPOTF_E_FILE_CHECKSUM Handle = 0x8009700D - MSSIPOTF_E_FAILED_POLICY Handle = 0x80097010 - MSSIPOTF_E_FAILED_HINTS_CHECK Handle = 0x80097011 - MSSIPOTF_E_NOT_OPENTYPE Handle = 0x80097012 - MSSIPOTF_E_FILE Handle = 0x80097013 - MSSIPOTF_E_CRYPT Handle = 0x80097014 - MSSIPOTF_E_BADVERSION Handle = 0x80097015 - MSSIPOTF_E_DSIG_STRUCTURE Handle = 0x80097016 - MSSIPOTF_E_PCONST_CHECK Handle = 0x80097017 - MSSIPOTF_E_STRUCTURE Handle = 0x80097018 - ERROR_CRED_REQUIRES_CONFIRMATION Handle = 0x80097019 - NTE_OP_OK syscall.Errno = 0 - TRUST_E_PROVIDER_UNKNOWN Handle = 0x800B0001 - TRUST_E_ACTION_UNKNOWN Handle = 0x800B0002 - TRUST_E_SUBJECT_FORM_UNKNOWN Handle = 0x800B0003 - TRUST_E_SUBJECT_NOT_TRUSTED Handle = 0x800B0004 - DIGSIG_E_ENCODE Handle = 0x800B0005 - DIGSIG_E_DECODE Handle = 0x800B0006 - DIGSIG_E_EXTENSIBILITY Handle = 0x800B0007 - DIGSIG_E_CRYPTO Handle = 0x800B0008 - PERSIST_E_SIZEDEFINITE Handle = 0x800B0009 - PERSIST_E_SIZEINDEFINITE Handle = 0x800B000A - PERSIST_E_NOTSELFSIZING Handle = 0x800B000B - TRUST_E_NOSIGNATURE Handle = 0x800B0100 - CERT_E_EXPIRED Handle = 0x800B0101 - CERT_E_VALIDITYPERIODNESTING Handle = 0x800B0102 - CERT_E_ROLE Handle = 0x800B0103 - CERT_E_PATHLENCONST Handle = 0x800B0104 - CERT_E_CRITICAL Handle = 0x800B0105 - CERT_E_PURPOSE Handle = 0x800B0106 - CERT_E_ISSUERCHAINING Handle = 0x800B0107 - CERT_E_MALFORMED Handle = 0x800B0108 - CERT_E_UNTRUSTEDROOT Handle = 0x800B0109 - CERT_E_CHAINING Handle = 0x800B010A - TRUST_E_FAIL Handle = 0x800B010B - CERT_E_REVOKED Handle = 0x800B010C - CERT_E_UNTRUSTEDTESTROOT Handle = 0x800B010D - CERT_E_REVOCATION_FAILURE Handle = 0x800B010E - CERT_E_CN_NO_MATCH Handle = 0x800B010F - CERT_E_WRONG_USAGE Handle = 0x800B0110 - TRUST_E_EXPLICIT_DISTRUST Handle = 0x800B0111 - CERT_E_UNTRUSTEDCA Handle = 0x800B0112 - CERT_E_INVALID_POLICY Handle = 0x800B0113 - CERT_E_INVALID_NAME Handle = 0x800B0114 - SPAPI_E_EXPECTED_SECTION_NAME Handle = 0x800F0000 - SPAPI_E_BAD_SECTION_NAME_LINE Handle = 0x800F0001 - SPAPI_E_SECTION_NAME_TOO_LONG Handle = 0x800F0002 - SPAPI_E_GENERAL_SYNTAX Handle = 0x800F0003 - SPAPI_E_WRONG_INF_STYLE Handle = 0x800F0100 - SPAPI_E_SECTION_NOT_FOUND Handle = 0x800F0101 - SPAPI_E_LINE_NOT_FOUND Handle = 0x800F0102 - SPAPI_E_NO_BACKUP Handle = 0x800F0103 - SPAPI_E_NO_ASSOCIATED_CLASS Handle = 0x800F0200 - SPAPI_E_CLASS_MISMATCH Handle = 0x800F0201 - SPAPI_E_DUPLICATE_FOUND Handle = 0x800F0202 - SPAPI_E_NO_DRIVER_SELECTED Handle = 0x800F0203 - SPAPI_E_KEY_DOES_NOT_EXIST Handle = 0x800F0204 - SPAPI_E_INVALID_DEVINST_NAME Handle = 0x800F0205 - SPAPI_E_INVALID_CLASS Handle = 0x800F0206 - SPAPI_E_DEVINST_ALREADY_EXISTS Handle = 0x800F0207 - SPAPI_E_DEVINFO_NOT_REGISTERED Handle = 0x800F0208 - SPAPI_E_INVALID_REG_PROPERTY Handle = 0x800F0209 - SPAPI_E_NO_INF Handle = 0x800F020A - SPAPI_E_NO_SUCH_DEVINST Handle = 0x800F020B - SPAPI_E_CANT_LOAD_CLASS_ICON Handle = 0x800F020C - SPAPI_E_INVALID_CLASS_INSTALLER Handle = 0x800F020D - SPAPI_E_DI_DO_DEFAULT Handle = 0x800F020E - SPAPI_E_DI_NOFILECOPY Handle = 0x800F020F - SPAPI_E_INVALID_HWPROFILE Handle = 0x800F0210 - SPAPI_E_NO_DEVICE_SELECTED Handle = 0x800F0211 - SPAPI_E_DEVINFO_LIST_LOCKED Handle = 0x800F0212 - SPAPI_E_DEVINFO_DATA_LOCKED Handle = 0x800F0213 - SPAPI_E_DI_BAD_PATH Handle = 0x800F0214 - SPAPI_E_NO_CLASSINSTALL_PARAMS Handle = 0x800F0215 - SPAPI_E_FILEQUEUE_LOCKED Handle = 0x800F0216 - SPAPI_E_BAD_SERVICE_INSTALLSECT Handle = 0x800F0217 - SPAPI_E_NO_CLASS_DRIVER_LIST Handle = 0x800F0218 - SPAPI_E_NO_ASSOCIATED_SERVICE Handle = 0x800F0219 - SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE Handle = 0x800F021A - SPAPI_E_DEVICE_INTERFACE_ACTIVE Handle = 0x800F021B - SPAPI_E_DEVICE_INTERFACE_REMOVED Handle = 0x800F021C - SPAPI_E_BAD_INTERFACE_INSTALLSECT Handle = 0x800F021D - SPAPI_E_NO_SUCH_INTERFACE_CLASS Handle = 0x800F021E - SPAPI_E_INVALID_REFERENCE_STRING Handle = 0x800F021F - SPAPI_E_INVALID_MACHINENAME Handle = 0x800F0220 - SPAPI_E_REMOTE_COMM_FAILURE Handle = 0x800F0221 - SPAPI_E_MACHINE_UNAVAILABLE Handle = 0x800F0222 - SPAPI_E_NO_CONFIGMGR_SERVICES Handle = 0x800F0223 - SPAPI_E_INVALID_PROPPAGE_PROVIDER Handle = 0x800F0224 - SPAPI_E_NO_SUCH_DEVICE_INTERFACE Handle = 0x800F0225 - SPAPI_E_DI_POSTPROCESSING_REQUIRED Handle = 0x800F0226 - SPAPI_E_INVALID_COINSTALLER Handle = 0x800F0227 - SPAPI_E_NO_COMPAT_DRIVERS Handle = 0x800F0228 - SPAPI_E_NO_DEVICE_ICON Handle = 0x800F0229 - SPAPI_E_INVALID_INF_LOGCONFIG Handle = 0x800F022A - SPAPI_E_DI_DONT_INSTALL Handle = 0x800F022B - SPAPI_E_INVALID_FILTER_DRIVER Handle = 0x800F022C - SPAPI_E_NON_WINDOWS_NT_DRIVER Handle = 0x800F022D - SPAPI_E_NON_WINDOWS_DRIVER Handle = 0x800F022E - SPAPI_E_NO_CATALOG_FOR_OEM_INF Handle = 0x800F022F - SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE Handle = 0x800F0230 - SPAPI_E_NOT_DISABLEABLE Handle = 0x800F0231 - SPAPI_E_CANT_REMOVE_DEVINST Handle = 0x800F0232 - SPAPI_E_INVALID_TARGET Handle = 0x800F0233 - SPAPI_E_DRIVER_NONNATIVE Handle = 0x800F0234 - SPAPI_E_IN_WOW64 Handle = 0x800F0235 - SPAPI_E_SET_SYSTEM_RESTORE_POINT Handle = 0x800F0236 - SPAPI_E_INCORRECTLY_COPIED_INF Handle = 0x800F0237 - SPAPI_E_SCE_DISABLED Handle = 0x800F0238 - SPAPI_E_UNKNOWN_EXCEPTION Handle = 0x800F0239 - SPAPI_E_PNP_REGISTRY_ERROR Handle = 0x800F023A - SPAPI_E_REMOTE_REQUEST_UNSUPPORTED Handle = 0x800F023B - SPAPI_E_NOT_AN_INSTALLED_OEM_INF Handle = 0x800F023C - SPAPI_E_INF_IN_USE_BY_DEVICES Handle = 0x800F023D - SPAPI_E_DI_FUNCTION_OBSOLETE Handle = 0x800F023E - SPAPI_E_NO_AUTHENTICODE_CATALOG Handle = 0x800F023F - SPAPI_E_AUTHENTICODE_DISALLOWED Handle = 0x800F0240 - SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER Handle = 0x800F0241 - SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED Handle = 0x800F0242 - SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Handle = 0x800F0243 - SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH Handle = 0x800F0244 - SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE Handle = 0x800F0245 - SPAPI_E_DEVICE_INSTALLER_NOT_READY Handle = 0x800F0246 - SPAPI_E_DRIVER_STORE_ADD_FAILED Handle = 0x800F0247 - SPAPI_E_DEVICE_INSTALL_BLOCKED Handle = 0x800F0248 - SPAPI_E_DRIVER_INSTALL_BLOCKED Handle = 0x800F0249 - SPAPI_E_WRONG_INF_TYPE Handle = 0x800F024A - SPAPI_E_FILE_HASH_NOT_IN_CATALOG Handle = 0x800F024B - SPAPI_E_DRIVER_STORE_DELETE_FAILED Handle = 0x800F024C - SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW Handle = 0x800F0300 - SPAPI_E_ERROR_NOT_INSTALLED Handle = 0x800F1000 - SCARD_S_SUCCESS = S_OK - SCARD_F_INTERNAL_ERROR Handle = 0x80100001 - SCARD_E_CANCELLED Handle = 0x80100002 - SCARD_E_INVALID_HANDLE Handle = 0x80100003 - SCARD_E_INVALID_PARAMETER Handle = 0x80100004 - SCARD_E_INVALID_TARGET Handle = 0x80100005 - SCARD_E_NO_MEMORY Handle = 0x80100006 - SCARD_F_WAITED_TOO_LONG Handle = 0x80100007 - SCARD_E_INSUFFICIENT_BUFFER Handle = 0x80100008 - SCARD_E_UNKNOWN_READER Handle = 0x80100009 - SCARD_E_TIMEOUT Handle = 0x8010000A - SCARD_E_SHARING_VIOLATION Handle = 0x8010000B - SCARD_E_NO_SMARTCARD Handle = 0x8010000C - SCARD_E_UNKNOWN_CARD Handle = 0x8010000D - SCARD_E_CANT_DISPOSE Handle = 0x8010000E - SCARD_E_PROTO_MISMATCH Handle = 0x8010000F - SCARD_E_NOT_READY Handle = 0x80100010 - SCARD_E_INVALID_VALUE Handle = 0x80100011 - SCARD_E_SYSTEM_CANCELLED Handle = 0x80100012 - SCARD_F_COMM_ERROR Handle = 0x80100013 - SCARD_F_UNKNOWN_ERROR Handle = 0x80100014 - SCARD_E_INVALID_ATR Handle = 0x80100015 - SCARD_E_NOT_TRANSACTED Handle = 0x80100016 - SCARD_E_READER_UNAVAILABLE Handle = 0x80100017 - SCARD_P_SHUTDOWN Handle = 0x80100018 - SCARD_E_PCI_TOO_SMALL Handle = 0x80100019 - SCARD_E_READER_UNSUPPORTED Handle = 0x8010001A - SCARD_E_DUPLICATE_READER Handle = 0x8010001B - SCARD_E_CARD_UNSUPPORTED Handle = 0x8010001C - SCARD_E_NO_SERVICE Handle = 0x8010001D - SCARD_E_SERVICE_STOPPED Handle = 0x8010001E - SCARD_E_UNEXPECTED Handle = 0x8010001F - SCARD_E_ICC_INSTALLATION Handle = 0x80100020 - SCARD_E_ICC_CREATEORDER Handle = 0x80100021 - SCARD_E_UNSUPPORTED_FEATURE Handle = 0x80100022 - SCARD_E_DIR_NOT_FOUND Handle = 0x80100023 - SCARD_E_FILE_NOT_FOUND Handle = 0x80100024 - SCARD_E_NO_DIR Handle = 0x80100025 - SCARD_E_NO_FILE Handle = 0x80100026 - SCARD_E_NO_ACCESS Handle = 0x80100027 - SCARD_E_WRITE_TOO_MANY Handle = 0x80100028 - SCARD_E_BAD_SEEK Handle = 0x80100029 - SCARD_E_INVALID_CHV Handle = 0x8010002A - SCARD_E_UNKNOWN_RES_MNG Handle = 0x8010002B - SCARD_E_NO_SUCH_CERTIFICATE Handle = 0x8010002C - SCARD_E_CERTIFICATE_UNAVAILABLE Handle = 0x8010002D - SCARD_E_NO_READERS_AVAILABLE Handle = 0x8010002E - SCARD_E_COMM_DATA_LOST Handle = 0x8010002F - SCARD_E_NO_KEY_CONTAINER Handle = 0x80100030 - SCARD_E_SERVER_TOO_BUSY Handle = 0x80100031 - SCARD_E_PIN_CACHE_EXPIRED Handle = 0x80100032 - SCARD_E_NO_PIN_CACHE Handle = 0x80100033 - SCARD_E_READ_ONLY_CARD Handle = 0x80100034 - SCARD_W_UNSUPPORTED_CARD Handle = 0x80100065 - SCARD_W_UNRESPONSIVE_CARD Handle = 0x80100066 - SCARD_W_UNPOWERED_CARD Handle = 0x80100067 - SCARD_W_RESET_CARD Handle = 0x80100068 - SCARD_W_REMOVED_CARD Handle = 0x80100069 - SCARD_W_SECURITY_VIOLATION Handle = 0x8010006A - SCARD_W_WRONG_CHV Handle = 0x8010006B - SCARD_W_CHV_BLOCKED Handle = 0x8010006C - SCARD_W_EOF Handle = 0x8010006D - SCARD_W_CANCELLED_BY_USER Handle = 0x8010006E - SCARD_W_CARD_NOT_AUTHENTICATED Handle = 0x8010006F - SCARD_W_CACHE_ITEM_NOT_FOUND Handle = 0x80100070 - SCARD_W_CACHE_ITEM_STALE Handle = 0x80100071 - SCARD_W_CACHE_ITEM_TOO_BIG Handle = 0x80100072 - COMADMIN_E_OBJECTERRORS Handle = 0x80110401 - COMADMIN_E_OBJECTINVALID Handle = 0x80110402 - COMADMIN_E_KEYMISSING Handle = 0x80110403 - COMADMIN_E_ALREADYINSTALLED Handle = 0x80110404 - COMADMIN_E_APP_FILE_WRITEFAIL Handle = 0x80110407 - COMADMIN_E_APP_FILE_READFAIL Handle = 0x80110408 - COMADMIN_E_APP_FILE_VERSION Handle = 0x80110409 - COMADMIN_E_BADPATH Handle = 0x8011040A - COMADMIN_E_APPLICATIONEXISTS Handle = 0x8011040B - COMADMIN_E_ROLEEXISTS Handle = 0x8011040C - COMADMIN_E_CANTCOPYFILE Handle = 0x8011040D - COMADMIN_E_NOUSER Handle = 0x8011040F - COMADMIN_E_INVALIDUSERIDS Handle = 0x80110410 - COMADMIN_E_NOREGISTRYCLSID Handle = 0x80110411 - COMADMIN_E_BADREGISTRYPROGID Handle = 0x80110412 - COMADMIN_E_AUTHENTICATIONLEVEL Handle = 0x80110413 - COMADMIN_E_USERPASSWDNOTVALID Handle = 0x80110414 - COMADMIN_E_CLSIDORIIDMISMATCH Handle = 0x80110418 - COMADMIN_E_REMOTEINTERFACE Handle = 0x80110419 - COMADMIN_E_DLLREGISTERSERVER Handle = 0x8011041A - COMADMIN_E_NOSERVERSHARE Handle = 0x8011041B - COMADMIN_E_DLLLOADFAILED Handle = 0x8011041D - COMADMIN_E_BADREGISTRYLIBID Handle = 0x8011041E - COMADMIN_E_APPDIRNOTFOUND Handle = 0x8011041F - COMADMIN_E_REGISTRARFAILED Handle = 0x80110423 - COMADMIN_E_COMPFILE_DOESNOTEXIST Handle = 0x80110424 - COMADMIN_E_COMPFILE_LOADDLLFAIL Handle = 0x80110425 - COMADMIN_E_COMPFILE_GETCLASSOBJ Handle = 0x80110426 - COMADMIN_E_COMPFILE_CLASSNOTAVAIL Handle = 0x80110427 - COMADMIN_E_COMPFILE_BADTLB Handle = 0x80110428 - COMADMIN_E_COMPFILE_NOTINSTALLABLE Handle = 0x80110429 - COMADMIN_E_NOTCHANGEABLE Handle = 0x8011042A - COMADMIN_E_NOTDELETEABLE Handle = 0x8011042B - COMADMIN_E_SESSION Handle = 0x8011042C - COMADMIN_E_COMP_MOVE_LOCKED Handle = 0x8011042D - COMADMIN_E_COMP_MOVE_BAD_DEST Handle = 0x8011042E - COMADMIN_E_REGISTERTLB Handle = 0x80110430 - COMADMIN_E_SYSTEMAPP Handle = 0x80110433 - COMADMIN_E_COMPFILE_NOREGISTRAR Handle = 0x80110434 - COMADMIN_E_COREQCOMPINSTALLED Handle = 0x80110435 - COMADMIN_E_SERVICENOTINSTALLED Handle = 0x80110436 - COMADMIN_E_PROPERTYSAVEFAILED Handle = 0x80110437 - COMADMIN_E_OBJECTEXISTS Handle = 0x80110438 - COMADMIN_E_COMPONENTEXISTS Handle = 0x80110439 - COMADMIN_E_REGFILE_CORRUPT Handle = 0x8011043B - COMADMIN_E_PROPERTY_OVERFLOW Handle = 0x8011043C - COMADMIN_E_NOTINREGISTRY Handle = 0x8011043E - COMADMIN_E_OBJECTNOTPOOLABLE Handle = 0x8011043F - COMADMIN_E_APPLID_MATCHES_CLSID Handle = 0x80110446 - COMADMIN_E_ROLE_DOES_NOT_EXIST Handle = 0x80110447 - COMADMIN_E_START_APP_NEEDS_COMPONENTS Handle = 0x80110448 - COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM Handle = 0x80110449 - COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY Handle = 0x8011044A - COMADMIN_E_CAN_NOT_START_APP Handle = 0x8011044B - COMADMIN_E_CAN_NOT_EXPORT_SYS_APP Handle = 0x8011044C - COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT Handle = 0x8011044D - COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER Handle = 0x8011044E - COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE Handle = 0x8011044F - COMADMIN_E_BASE_PARTITION_ONLY Handle = 0x80110450 - COMADMIN_E_START_APP_DISABLED Handle = 0x80110451 - COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME Handle = 0x80110457 - COMADMIN_E_CAT_INVALID_PARTITION_NAME Handle = 0x80110458 - COMADMIN_E_CAT_PARTITION_IN_USE Handle = 0x80110459 - COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES Handle = 0x8011045A - COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED Handle = 0x8011045B - COMADMIN_E_AMBIGUOUS_APPLICATION_NAME Handle = 0x8011045C - COMADMIN_E_AMBIGUOUS_PARTITION_NAME Handle = 0x8011045D - COMADMIN_E_REGDB_NOTINITIALIZED Handle = 0x80110472 - COMADMIN_E_REGDB_NOTOPEN Handle = 0x80110473 - COMADMIN_E_REGDB_SYSTEMERR Handle = 0x80110474 - COMADMIN_E_REGDB_ALREADYRUNNING Handle = 0x80110475 - COMADMIN_E_MIG_VERSIONNOTSUPPORTED Handle = 0x80110480 - COMADMIN_E_MIG_SCHEMANOTFOUND Handle = 0x80110481 - COMADMIN_E_CAT_BITNESSMISMATCH Handle = 0x80110482 - COMADMIN_E_CAT_UNACCEPTABLEBITNESS Handle = 0x80110483 - COMADMIN_E_CAT_WRONGAPPBITNESS Handle = 0x80110484 - COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED Handle = 0x80110485 - COMADMIN_E_CAT_SERVERFAULT Handle = 0x80110486 - COMQC_E_APPLICATION_NOT_QUEUED Handle = 0x80110600 - COMQC_E_NO_QUEUEABLE_INTERFACES Handle = 0x80110601 - COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE Handle = 0x80110602 - COMQC_E_NO_IPERSISTSTREAM Handle = 0x80110603 - COMQC_E_BAD_MESSAGE Handle = 0x80110604 - COMQC_E_UNAUTHENTICATED Handle = 0x80110605 - COMQC_E_UNTRUSTED_ENQUEUER Handle = 0x80110606 - MSDTC_E_DUPLICATE_RESOURCE Handle = 0x80110701 - COMADMIN_E_OBJECT_PARENT_MISSING Handle = 0x80110808 - COMADMIN_E_OBJECT_DOES_NOT_EXIST Handle = 0x80110809 - COMADMIN_E_APP_NOT_RUNNING Handle = 0x8011080A - COMADMIN_E_INVALID_PARTITION Handle = 0x8011080B - COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE Handle = 0x8011080D - COMADMIN_E_USER_IN_SET Handle = 0x8011080E - COMADMIN_E_CANTRECYCLELIBRARYAPPS Handle = 0x8011080F - COMADMIN_E_CANTRECYCLESERVICEAPPS Handle = 0x80110811 - COMADMIN_E_PROCESSALREADYRECYCLED Handle = 0x80110812 - COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED Handle = 0x80110813 - COMADMIN_E_CANTMAKEINPROCSERVICE Handle = 0x80110814 - COMADMIN_E_PROGIDINUSEBYCLSID Handle = 0x80110815 - COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET Handle = 0x80110816 - COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED Handle = 0x80110817 - COMADMIN_E_PARTITION_ACCESSDENIED Handle = 0x80110818 - COMADMIN_E_PARTITION_MSI_ONLY Handle = 0x80110819 - COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT Handle = 0x8011081A - COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS Handle = 0x8011081B - COMADMIN_E_COMP_MOVE_SOURCE Handle = 0x8011081C - COMADMIN_E_COMP_MOVE_DEST Handle = 0x8011081D - COMADMIN_E_COMP_MOVE_PRIVATE Handle = 0x8011081E - COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET Handle = 0x8011081F - COMADMIN_E_CANNOT_ALIAS_EVENTCLASS Handle = 0x80110820 - COMADMIN_E_PRIVATE_ACCESSDENIED Handle = 0x80110821 - COMADMIN_E_SAFERINVALID Handle = 0x80110822 - COMADMIN_E_REGISTRY_ACCESSDENIED Handle = 0x80110823 - COMADMIN_E_PARTITIONS_DISABLED Handle = 0x80110824 - WER_S_REPORT_DEBUG Handle = 0x001B0000 - WER_S_REPORT_UPLOADED Handle = 0x001B0001 - WER_S_REPORT_QUEUED Handle = 0x001B0002 - WER_S_DISABLED Handle = 0x001B0003 - WER_S_SUSPENDED_UPLOAD Handle = 0x001B0004 - WER_S_DISABLED_QUEUE Handle = 0x001B0005 - WER_S_DISABLED_ARCHIVE Handle = 0x001B0006 - WER_S_REPORT_ASYNC Handle = 0x001B0007 - WER_S_IGNORE_ASSERT_INSTANCE Handle = 0x001B0008 - WER_S_IGNORE_ALL_ASSERTS Handle = 0x001B0009 - WER_S_ASSERT_CONTINUE Handle = 0x001B000A - WER_S_THROTTLED Handle = 0x001B000B - WER_S_REPORT_UPLOADED_CAB Handle = 0x001B000C - WER_E_CRASH_FAILURE Handle = 0x801B8000 - WER_E_CANCELED Handle = 0x801B8001 - WER_E_NETWORK_FAILURE Handle = 0x801B8002 - WER_E_NOT_INITIALIZED Handle = 0x801B8003 - WER_E_ALREADY_REPORTING Handle = 0x801B8004 - WER_E_DUMP_THROTTLED Handle = 0x801B8005 - WER_E_INSUFFICIENT_CONSENT Handle = 0x801B8006 - WER_E_TOO_HEAVY Handle = 0x801B8007 - ERROR_FLT_IO_COMPLETE Handle = 0x001F0001 - ERROR_FLT_NO_HANDLER_DEFINED Handle = 0x801F0001 - ERROR_FLT_CONTEXT_ALREADY_DEFINED Handle = 0x801F0002 - ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST Handle = 0x801F0003 - ERROR_FLT_DISALLOW_FAST_IO Handle = 0x801F0004 - ERROR_FLT_INVALID_NAME_REQUEST Handle = 0x801F0005 - ERROR_FLT_NOT_SAFE_TO_POST_OPERATION Handle = 0x801F0006 - ERROR_FLT_NOT_INITIALIZED Handle = 0x801F0007 - ERROR_FLT_FILTER_NOT_READY Handle = 0x801F0008 - ERROR_FLT_POST_OPERATION_CLEANUP Handle = 0x801F0009 - ERROR_FLT_INTERNAL_ERROR Handle = 0x801F000A - ERROR_FLT_DELETING_OBJECT Handle = 0x801F000B - ERROR_FLT_MUST_BE_NONPAGED_POOL Handle = 0x801F000C - ERROR_FLT_DUPLICATE_ENTRY Handle = 0x801F000D - ERROR_FLT_CBDQ_DISABLED Handle = 0x801F000E - ERROR_FLT_DO_NOT_ATTACH Handle = 0x801F000F - ERROR_FLT_DO_NOT_DETACH Handle = 0x801F0010 - ERROR_FLT_INSTANCE_ALTITUDE_COLLISION Handle = 0x801F0011 - ERROR_FLT_INSTANCE_NAME_COLLISION Handle = 0x801F0012 - ERROR_FLT_FILTER_NOT_FOUND Handle = 0x801F0013 - ERROR_FLT_VOLUME_NOT_FOUND Handle = 0x801F0014 - ERROR_FLT_INSTANCE_NOT_FOUND Handle = 0x801F0015 - ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND Handle = 0x801F0016 - ERROR_FLT_INVALID_CONTEXT_REGISTRATION Handle = 0x801F0017 - ERROR_FLT_NAME_CACHE_MISS Handle = 0x801F0018 - ERROR_FLT_NO_DEVICE_OBJECT Handle = 0x801F0019 - ERROR_FLT_VOLUME_ALREADY_MOUNTED Handle = 0x801F001A - ERROR_FLT_ALREADY_ENLISTED Handle = 0x801F001B - ERROR_FLT_CONTEXT_ALREADY_LINKED Handle = 0x801F001C - ERROR_FLT_NO_WAITER_FOR_REPLY Handle = 0x801F0020 - ERROR_FLT_REGISTRATION_BUSY Handle = 0x801F0023 - ERROR_HUNG_DISPLAY_DRIVER_THREAD Handle = 0x80260001 - DWM_E_COMPOSITIONDISABLED Handle = 0x80263001 - DWM_E_REMOTING_NOT_SUPPORTED Handle = 0x80263002 - DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x80263003 - DWM_E_NOT_QUEUING_PRESENTS Handle = 0x80263004 - DWM_E_ADAPTER_NOT_FOUND Handle = 0x80263005 - DWM_S_GDI_REDIRECTION_SURFACE Handle = 0x00263005 - DWM_E_TEXTURE_TOO_LARGE Handle = 0x80263007 - DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI Handle = 0x00263008 - ERROR_MONITOR_NO_DESCRIPTOR Handle = 0x00261001 - ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT Handle = 0x00261002 - ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM Handle = 0xC0261003 - ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK Handle = 0xC0261004 - ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED Handle = 0xC0261005 - ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK Handle = 0xC0261006 - ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK Handle = 0xC0261007 - ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA Handle = 0xC0261008 - ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK Handle = 0xC0261009 - ERROR_MONITOR_INVALID_MANUFACTURE_DATE Handle = 0xC026100A - ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER Handle = 0xC0262000 - ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER Handle = 0xC0262001 - ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER Handle = 0xC0262002 - ERROR_GRAPHICS_ADAPTER_WAS_RESET Handle = 0xC0262003 - ERROR_GRAPHICS_INVALID_DRIVER_MODEL Handle = 0xC0262004 - ERROR_GRAPHICS_PRESENT_MODE_CHANGED Handle = 0xC0262005 - ERROR_GRAPHICS_PRESENT_OCCLUDED Handle = 0xC0262006 - ERROR_GRAPHICS_PRESENT_DENIED Handle = 0xC0262007 - ERROR_GRAPHICS_CANNOTCOLORCONVERT Handle = 0xC0262008 - ERROR_GRAPHICS_DRIVER_MISMATCH Handle = 0xC0262009 - ERROR_GRAPHICS_PARTIAL_DATA_POPULATED Handle = 0x4026200A - ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED Handle = 0xC026200B - ERROR_GRAPHICS_PRESENT_UNOCCLUDED Handle = 0xC026200C - ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE Handle = 0xC026200D - ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED Handle = 0xC026200E - ERROR_GRAPHICS_PRESENT_INVALID_WINDOW Handle = 0xC026200F - ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND Handle = 0xC0262010 - ERROR_GRAPHICS_VAIL_STATE_CHANGED Handle = 0xC0262011 - ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN Handle = 0xC0262012 - ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED Handle = 0xC0262013 - ERROR_GRAPHICS_NO_VIDEO_MEMORY Handle = 0xC0262100 - ERROR_GRAPHICS_CANT_LOCK_MEMORY Handle = 0xC0262101 - ERROR_GRAPHICS_ALLOCATION_BUSY Handle = 0xC0262102 - ERROR_GRAPHICS_TOO_MANY_REFERENCES Handle = 0xC0262103 - ERROR_GRAPHICS_TRY_AGAIN_LATER Handle = 0xC0262104 - ERROR_GRAPHICS_TRY_AGAIN_NOW Handle = 0xC0262105 - ERROR_GRAPHICS_ALLOCATION_INVALID Handle = 0xC0262106 - ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE Handle = 0xC0262107 - ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED Handle = 0xC0262108 - ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Handle = 0xC0262109 - ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE Handle = 0xC0262110 - ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION Handle = 0xC0262111 - ERROR_GRAPHICS_ALLOCATION_CLOSED Handle = 0xC0262112 - ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE Handle = 0xC0262113 - ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE Handle = 0xC0262114 - ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE Handle = 0xC0262115 - ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST Handle = 0xC0262116 - ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE Handle = 0xC0262200 - ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION Handle = 0x40262201 - ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY Handle = 0xC0262300 - ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED Handle = 0xC0262301 - ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED Handle = 0xC0262302 - ERROR_GRAPHICS_INVALID_VIDPN Handle = 0xC0262303 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE Handle = 0xC0262304 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET Handle = 0xC0262305 - ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED Handle = 0xC0262306 - ERROR_GRAPHICS_MODE_NOT_PINNED Handle = 0x00262307 - ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Handle = 0xC0262308 - ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET Handle = 0xC0262309 - ERROR_GRAPHICS_INVALID_FREQUENCY Handle = 0xC026230A - ERROR_GRAPHICS_INVALID_ACTIVE_REGION Handle = 0xC026230B - ERROR_GRAPHICS_INVALID_TOTAL_REGION Handle = 0xC026230C - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE Handle = 0xC0262310 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE Handle = 0xC0262311 - ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET Handle = 0xC0262312 - ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY Handle = 0xC0262313 - ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET Handle = 0xC0262314 - ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET Handle = 0xC0262315 - ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET Handle = 0xC0262316 - ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET Handle = 0xC0262317 - ERROR_GRAPHICS_TARGET_ALREADY_IN_SET Handle = 0xC0262318 - ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH Handle = 0xC0262319 - ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY Handle = 0xC026231A - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET Handle = 0xC026231B - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE Handle = 0xC026231C - ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET Handle = 0xC026231D - ERROR_GRAPHICS_NO_PREFERRED_MODE Handle = 0x0026231E - ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET Handle = 0xC026231F - ERROR_GRAPHICS_STALE_MODESET Handle = 0xC0262320 - ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET Handle = 0xC0262321 - ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE Handle = 0xC0262322 - ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN Handle = 0xC0262323 - ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE Handle = 0xC0262324 - ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION Handle = 0xC0262325 - ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES Handle = 0xC0262326 - ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY Handle = 0xC0262327 - ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE Handle = 0xC0262328 - ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET Handle = 0xC0262329 - ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET Handle = 0xC026232A - ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR Handle = 0xC026232B - ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET Handle = 0xC026232C - ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET Handle = 0xC026232D - ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE Handle = 0xC026232E - ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE Handle = 0xC026232F - ERROR_GRAPHICS_RESOURCES_NOT_RELATED Handle = 0xC0262330 - ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE Handle = 0xC0262331 - ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE Handle = 0xC0262332 - ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET Handle = 0xC0262333 - ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER Handle = 0xC0262334 - ERROR_GRAPHICS_NO_VIDPNMGR Handle = 0xC0262335 - ERROR_GRAPHICS_NO_ACTIVE_VIDPN Handle = 0xC0262336 - ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY Handle = 0xC0262337 - ERROR_GRAPHICS_MONITOR_NOT_CONNECTED Handle = 0xC0262338 - ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY Handle = 0xC0262339 - ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE Handle = 0xC026233A - ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE Handle = 0xC026233B - ERROR_GRAPHICS_INVALID_STRIDE Handle = 0xC026233C - ERROR_GRAPHICS_INVALID_PIXELFORMAT Handle = 0xC026233D - ERROR_GRAPHICS_INVALID_COLORBASIS Handle = 0xC026233E - ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE Handle = 0xC026233F - ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY Handle = 0xC0262340 - ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT Handle = 0xC0262341 - ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0xC0262342 - ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN Handle = 0xC0262343 - ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL Handle = 0xC0262344 - ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION Handle = 0xC0262345 - ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED Handle = 0xC0262346 - ERROR_GRAPHICS_INVALID_GAMMA_RAMP Handle = 0xC0262347 - ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED Handle = 0xC0262348 - ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED Handle = 0xC0262349 - ERROR_GRAPHICS_MODE_NOT_IN_MODESET Handle = 0xC026234A - ERROR_GRAPHICS_DATASET_IS_EMPTY Handle = 0x0026234B - ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET Handle = 0x0026234C - ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON Handle = 0xC026234D - ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE Handle = 0xC026234E - ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE Handle = 0xC026234F - ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS Handle = 0xC0262350 - ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED Handle = 0x00262351 - ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING Handle = 0xC0262352 - ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED Handle = 0xC0262353 - ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS Handle = 0xC0262354 - ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT Handle = 0xC0262355 - ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM Handle = 0xC0262356 - ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN Handle = 0xC0262357 - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT Handle = 0xC0262358 - ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED Handle = 0xC0262359 - ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION Handle = 0xC026235A - ERROR_GRAPHICS_INVALID_CLIENT_TYPE Handle = 0xC026235B - ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET Handle = 0xC026235C - ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED Handle = 0xC0262400 - ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Handle = 0xC0262401 - ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS Handle = 0x4026242F - ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER Handle = 0xC0262430 - ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED Handle = 0xC0262431 - ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED Handle = 0xC0262432 - ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY Handle = 0xC0262433 - ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED Handle = 0xC0262434 - ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON Handle = 0xC0262435 - ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE Handle = 0xC0262436 - ERROR_GRAPHICS_LEADLINK_START_DEFERRED Handle = 0x40262437 - ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER Handle = 0xC0262438 - ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY Handle = 0x40262439 - ERROR_GRAPHICS_START_DEFERRED Handle = 0x4026243A - ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED Handle = 0xC026243B - ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS Handle = 0x4026243C - ERROR_GRAPHICS_OPM_NOT_SUPPORTED Handle = 0xC0262500 - ERROR_GRAPHICS_COPP_NOT_SUPPORTED Handle = 0xC0262501 - ERROR_GRAPHICS_UAB_NOT_SUPPORTED Handle = 0xC0262502 - ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS Handle = 0xC0262503 - ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST Handle = 0xC0262505 - ERROR_GRAPHICS_OPM_INTERNAL_ERROR Handle = 0xC026250B - ERROR_GRAPHICS_OPM_INVALID_HANDLE Handle = 0xC026250C - ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH Handle = 0xC026250E - ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED Handle = 0xC026250F - ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED Handle = 0xC0262510 - ERROR_GRAPHICS_PVP_HFS_FAILED Handle = 0xC0262511 - ERROR_GRAPHICS_OPM_INVALID_SRM Handle = 0xC0262512 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP Handle = 0xC0262513 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP Handle = 0xC0262514 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA Handle = 0xC0262515 - ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET Handle = 0xC0262516 - ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH Handle = 0xC0262517 - ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE Handle = 0xC0262518 - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS Handle = 0xC026251A - ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC026251B - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS Handle = 0xC026251C - ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST Handle = 0xC026251D - ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR Handle = 0xC026251E - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS Handle = 0xC026251F - ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED Handle = 0xC0262520 - ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST Handle = 0xC0262521 - ERROR_GRAPHICS_I2C_NOT_SUPPORTED Handle = 0xC0262580 - ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Handle = 0xC0262581 - ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA Handle = 0xC0262582 - ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA Handle = 0xC0262583 - ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED Handle = 0xC0262584 - ERROR_GRAPHICS_DDCCI_INVALID_DATA Handle = 0xC0262585 - ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE Handle = 0xC0262586 - ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING Handle = 0xC0262587 - ERROR_GRAPHICS_MCA_INTERNAL_ERROR Handle = 0xC0262588 - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND Handle = 0xC0262589 - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH Handle = 0xC026258A - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM Handle = 0xC026258B - ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE Handle = 0xC026258C - ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS Handle = 0xC026258D - ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE Handle = 0xC02625D8 - ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION Handle = 0xC02625D9 - ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION Handle = 0xC02625DA - ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH Handle = 0xC02625DB - ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION Handle = 0xC02625DC - ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED Handle = 0xC02625DE - ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE Handle = 0xC02625DF - ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED Handle = 0xC02625E0 - ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME Handle = 0xC02625E1 - ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP Handle = 0xC02625E2 - ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED Handle = 0xC02625E3 - ERROR_GRAPHICS_INVALID_POINTER Handle = 0xC02625E4 - ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE Handle = 0xC02625E5 - ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL Handle = 0xC02625E6 - ERROR_GRAPHICS_INTERNAL_ERROR Handle = 0xC02625E7 - ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC02605E8 - NAP_E_INVALID_PACKET Handle = 0x80270001 - NAP_E_MISSING_SOH Handle = 0x80270002 - NAP_E_CONFLICTING_ID Handle = 0x80270003 - NAP_E_NO_CACHED_SOH Handle = 0x80270004 - NAP_E_STILL_BOUND Handle = 0x80270005 - NAP_E_NOT_REGISTERED Handle = 0x80270006 - NAP_E_NOT_INITIALIZED Handle = 0x80270007 - NAP_E_MISMATCHED_ID Handle = 0x80270008 - NAP_E_NOT_PENDING Handle = 0x80270009 - NAP_E_ID_NOT_FOUND Handle = 0x8027000A - NAP_E_MAXSIZE_TOO_SMALL Handle = 0x8027000B - NAP_E_SERVICE_NOT_RUNNING Handle = 0x8027000C - NAP_S_CERT_ALREADY_PRESENT Handle = 0x0027000D - NAP_E_ENTITY_DISABLED Handle = 0x8027000E - NAP_E_NETSH_GROUPPOLICY_ERROR Handle = 0x8027000F - NAP_E_TOO_MANY_CALLS Handle = 0x80270010 - NAP_E_SHV_CONFIG_EXISTED Handle = 0x80270011 - NAP_E_SHV_CONFIG_NOT_FOUND Handle = 0x80270012 - NAP_E_SHV_TIMEOUT Handle = 0x80270013 - TPM_E_ERROR_MASK Handle = 0x80280000 - TPM_E_AUTHFAIL Handle = 0x80280001 - TPM_E_BADINDEX Handle = 0x80280002 - TPM_E_BAD_PARAMETER Handle = 0x80280003 - TPM_E_AUDITFAILURE Handle = 0x80280004 - TPM_E_CLEAR_DISABLED Handle = 0x80280005 - TPM_E_DEACTIVATED Handle = 0x80280006 - TPM_E_DISABLED Handle = 0x80280007 - TPM_E_DISABLED_CMD Handle = 0x80280008 - TPM_E_FAIL Handle = 0x80280009 - TPM_E_BAD_ORDINAL Handle = 0x8028000A - TPM_E_INSTALL_DISABLED Handle = 0x8028000B - TPM_E_INVALID_KEYHANDLE Handle = 0x8028000C - TPM_E_KEYNOTFOUND Handle = 0x8028000D - TPM_E_INAPPROPRIATE_ENC Handle = 0x8028000E - TPM_E_MIGRATEFAIL Handle = 0x8028000F - TPM_E_INVALID_PCR_INFO Handle = 0x80280010 - TPM_E_NOSPACE Handle = 0x80280011 - TPM_E_NOSRK Handle = 0x80280012 - TPM_E_NOTSEALED_BLOB Handle = 0x80280013 - TPM_E_OWNER_SET Handle = 0x80280014 - TPM_E_RESOURCES Handle = 0x80280015 - TPM_E_SHORTRANDOM Handle = 0x80280016 - TPM_E_SIZE Handle = 0x80280017 - TPM_E_WRONGPCRVAL Handle = 0x80280018 - TPM_E_BAD_PARAM_SIZE Handle = 0x80280019 - TPM_E_SHA_THREAD Handle = 0x8028001A - TPM_E_SHA_ERROR Handle = 0x8028001B - TPM_E_FAILEDSELFTEST Handle = 0x8028001C - TPM_E_AUTH2FAIL Handle = 0x8028001D - TPM_E_BADTAG Handle = 0x8028001E - TPM_E_IOERROR Handle = 0x8028001F - TPM_E_ENCRYPT_ERROR Handle = 0x80280020 - TPM_E_DECRYPT_ERROR Handle = 0x80280021 - TPM_E_INVALID_AUTHHANDLE Handle = 0x80280022 - TPM_E_NO_ENDORSEMENT Handle = 0x80280023 - TPM_E_INVALID_KEYUSAGE Handle = 0x80280024 - TPM_E_WRONG_ENTITYTYPE Handle = 0x80280025 - TPM_E_INVALID_POSTINIT Handle = 0x80280026 - TPM_E_INAPPROPRIATE_SIG Handle = 0x80280027 - TPM_E_BAD_KEY_PROPERTY Handle = 0x80280028 - TPM_E_BAD_MIGRATION Handle = 0x80280029 - TPM_E_BAD_SCHEME Handle = 0x8028002A - TPM_E_BAD_DATASIZE Handle = 0x8028002B - TPM_E_BAD_MODE Handle = 0x8028002C - TPM_E_BAD_PRESENCE Handle = 0x8028002D - TPM_E_BAD_VERSION Handle = 0x8028002E - TPM_E_NO_WRAP_TRANSPORT Handle = 0x8028002F - TPM_E_AUDITFAIL_UNSUCCESSFUL Handle = 0x80280030 - TPM_E_AUDITFAIL_SUCCESSFUL Handle = 0x80280031 - TPM_E_NOTRESETABLE Handle = 0x80280032 - TPM_E_NOTLOCAL Handle = 0x80280033 - TPM_E_BAD_TYPE Handle = 0x80280034 - TPM_E_INVALID_RESOURCE Handle = 0x80280035 - TPM_E_NOTFIPS Handle = 0x80280036 - TPM_E_INVALID_FAMILY Handle = 0x80280037 - TPM_E_NO_NV_PERMISSION Handle = 0x80280038 - TPM_E_REQUIRES_SIGN Handle = 0x80280039 - TPM_E_KEY_NOTSUPPORTED Handle = 0x8028003A - TPM_E_AUTH_CONFLICT Handle = 0x8028003B - TPM_E_AREA_LOCKED Handle = 0x8028003C - TPM_E_BAD_LOCALITY Handle = 0x8028003D - TPM_E_READ_ONLY Handle = 0x8028003E - TPM_E_PER_NOWRITE Handle = 0x8028003F - TPM_E_FAMILYCOUNT Handle = 0x80280040 - TPM_E_WRITE_LOCKED Handle = 0x80280041 - TPM_E_BAD_ATTRIBUTES Handle = 0x80280042 - TPM_E_INVALID_STRUCTURE Handle = 0x80280043 - TPM_E_KEY_OWNER_CONTROL Handle = 0x80280044 - TPM_E_BAD_COUNTER Handle = 0x80280045 - TPM_E_NOT_FULLWRITE Handle = 0x80280046 - TPM_E_CONTEXT_GAP Handle = 0x80280047 - TPM_E_MAXNVWRITES Handle = 0x80280048 - TPM_E_NOOPERATOR Handle = 0x80280049 - TPM_E_RESOURCEMISSING Handle = 0x8028004A - TPM_E_DELEGATE_LOCK Handle = 0x8028004B - TPM_E_DELEGATE_FAMILY Handle = 0x8028004C - TPM_E_DELEGATE_ADMIN Handle = 0x8028004D - TPM_E_TRANSPORT_NOTEXCLUSIVE Handle = 0x8028004E - TPM_E_OWNER_CONTROL Handle = 0x8028004F - TPM_E_DAA_RESOURCES Handle = 0x80280050 - TPM_E_DAA_INPUT_DATA0 Handle = 0x80280051 - TPM_E_DAA_INPUT_DATA1 Handle = 0x80280052 - TPM_E_DAA_ISSUER_SETTINGS Handle = 0x80280053 - TPM_E_DAA_TPM_SETTINGS Handle = 0x80280054 - TPM_E_DAA_STAGE Handle = 0x80280055 - TPM_E_DAA_ISSUER_VALIDITY Handle = 0x80280056 - TPM_E_DAA_WRONG_W Handle = 0x80280057 - TPM_E_BAD_HANDLE Handle = 0x80280058 - TPM_E_BAD_DELEGATE Handle = 0x80280059 - TPM_E_BADCONTEXT Handle = 0x8028005A - TPM_E_TOOMANYCONTEXTS Handle = 0x8028005B - TPM_E_MA_TICKET_SIGNATURE Handle = 0x8028005C - TPM_E_MA_DESTINATION Handle = 0x8028005D - TPM_E_MA_SOURCE Handle = 0x8028005E - TPM_E_MA_AUTHORITY Handle = 0x8028005F - TPM_E_PERMANENTEK Handle = 0x80280061 - TPM_E_BAD_SIGNATURE Handle = 0x80280062 - TPM_E_NOCONTEXTSPACE Handle = 0x80280063 - TPM_20_E_ASYMMETRIC Handle = 0x80280081 - TPM_20_E_ATTRIBUTES Handle = 0x80280082 - TPM_20_E_HASH Handle = 0x80280083 - TPM_20_E_VALUE Handle = 0x80280084 - TPM_20_E_HIERARCHY Handle = 0x80280085 - TPM_20_E_KEY_SIZE Handle = 0x80280087 - TPM_20_E_MGF Handle = 0x80280088 - TPM_20_E_MODE Handle = 0x80280089 - TPM_20_E_TYPE Handle = 0x8028008A - TPM_20_E_HANDLE Handle = 0x8028008B - TPM_20_E_KDF Handle = 0x8028008C - TPM_20_E_RANGE Handle = 0x8028008D - TPM_20_E_AUTH_FAIL Handle = 0x8028008E - TPM_20_E_NONCE Handle = 0x8028008F - TPM_20_E_PP Handle = 0x80280090 - TPM_20_E_SCHEME Handle = 0x80280092 - TPM_20_E_SIZE Handle = 0x80280095 - TPM_20_E_SYMMETRIC Handle = 0x80280096 - TPM_20_E_TAG Handle = 0x80280097 - TPM_20_E_SELECTOR Handle = 0x80280098 - TPM_20_E_INSUFFICIENT Handle = 0x8028009A - TPM_20_E_SIGNATURE Handle = 0x8028009B - TPM_20_E_KEY Handle = 0x8028009C - TPM_20_E_POLICY_FAIL Handle = 0x8028009D - TPM_20_E_INTEGRITY Handle = 0x8028009F - TPM_20_E_TICKET Handle = 0x802800A0 - TPM_20_E_RESERVED_BITS Handle = 0x802800A1 - TPM_20_E_BAD_AUTH Handle = 0x802800A2 - TPM_20_E_EXPIRED Handle = 0x802800A3 - TPM_20_E_POLICY_CC Handle = 0x802800A4 - TPM_20_E_BINDING Handle = 0x802800A5 - TPM_20_E_CURVE Handle = 0x802800A6 - TPM_20_E_ECC_POINT Handle = 0x802800A7 - TPM_20_E_INITIALIZE Handle = 0x80280100 - TPM_20_E_FAILURE Handle = 0x80280101 - TPM_20_E_SEQUENCE Handle = 0x80280103 - TPM_20_E_PRIVATE Handle = 0x8028010B - TPM_20_E_HMAC Handle = 0x80280119 - TPM_20_E_DISABLED Handle = 0x80280120 - TPM_20_E_EXCLUSIVE Handle = 0x80280121 - TPM_20_E_ECC_CURVE Handle = 0x80280123 - TPM_20_E_AUTH_TYPE Handle = 0x80280124 - TPM_20_E_AUTH_MISSING Handle = 0x80280125 - TPM_20_E_POLICY Handle = 0x80280126 - TPM_20_E_PCR Handle = 0x80280127 - TPM_20_E_PCR_CHANGED Handle = 0x80280128 - TPM_20_E_UPGRADE Handle = 0x8028012D - TPM_20_E_TOO_MANY_CONTEXTS Handle = 0x8028012E - TPM_20_E_AUTH_UNAVAILABLE Handle = 0x8028012F - TPM_20_E_REBOOT Handle = 0x80280130 - TPM_20_E_UNBALANCED Handle = 0x80280131 - TPM_20_E_COMMAND_SIZE Handle = 0x80280142 - TPM_20_E_COMMAND_CODE Handle = 0x80280143 - TPM_20_E_AUTHSIZE Handle = 0x80280144 - TPM_20_E_AUTH_CONTEXT Handle = 0x80280145 - TPM_20_E_NV_RANGE Handle = 0x80280146 - TPM_20_E_NV_SIZE Handle = 0x80280147 - TPM_20_E_NV_LOCKED Handle = 0x80280148 - TPM_20_E_NV_AUTHORIZATION Handle = 0x80280149 - TPM_20_E_NV_UNINITIALIZED Handle = 0x8028014A - TPM_20_E_NV_SPACE Handle = 0x8028014B - TPM_20_E_NV_DEFINED Handle = 0x8028014C - TPM_20_E_BAD_CONTEXT Handle = 0x80280150 - TPM_20_E_CPHASH Handle = 0x80280151 - TPM_20_E_PARENT Handle = 0x80280152 - TPM_20_E_NEEDS_TEST Handle = 0x80280153 - TPM_20_E_NO_RESULT Handle = 0x80280154 - TPM_20_E_SENSITIVE Handle = 0x80280155 - TPM_E_COMMAND_BLOCKED Handle = 0x80280400 - TPM_E_INVALID_HANDLE Handle = 0x80280401 - TPM_E_DUPLICATE_VHANDLE Handle = 0x80280402 - TPM_E_EMBEDDED_COMMAND_BLOCKED Handle = 0x80280403 - TPM_E_EMBEDDED_COMMAND_UNSUPPORTED Handle = 0x80280404 - TPM_E_RETRY Handle = 0x80280800 - TPM_E_NEEDS_SELFTEST Handle = 0x80280801 - TPM_E_DOING_SELFTEST Handle = 0x80280802 - TPM_E_DEFEND_LOCK_RUNNING Handle = 0x80280803 - TPM_20_E_CONTEXT_GAP Handle = 0x80280901 - TPM_20_E_OBJECT_MEMORY Handle = 0x80280902 - TPM_20_E_SESSION_MEMORY Handle = 0x80280903 - TPM_20_E_MEMORY Handle = 0x80280904 - TPM_20_E_SESSION_HANDLES Handle = 0x80280905 - TPM_20_E_OBJECT_HANDLES Handle = 0x80280906 - TPM_20_E_LOCALITY Handle = 0x80280907 - TPM_20_E_YIELDED Handle = 0x80280908 - TPM_20_E_CANCELED Handle = 0x80280909 - TPM_20_E_TESTING Handle = 0x8028090A - TPM_20_E_NV_RATE Handle = 0x80280920 - TPM_20_E_LOCKOUT Handle = 0x80280921 - TPM_20_E_RETRY Handle = 0x80280922 - TPM_20_E_NV_UNAVAILABLE Handle = 0x80280923 - TBS_E_INTERNAL_ERROR Handle = 0x80284001 - TBS_E_BAD_PARAMETER Handle = 0x80284002 - TBS_E_INVALID_OUTPUT_POINTER Handle = 0x80284003 - TBS_E_INVALID_CONTEXT Handle = 0x80284004 - TBS_E_INSUFFICIENT_BUFFER Handle = 0x80284005 - TBS_E_IOERROR Handle = 0x80284006 - TBS_E_INVALID_CONTEXT_PARAM Handle = 0x80284007 - TBS_E_SERVICE_NOT_RUNNING Handle = 0x80284008 - TBS_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80284009 - TBS_E_TOO_MANY_RESOURCES Handle = 0x8028400A - TBS_E_SERVICE_START_PENDING Handle = 0x8028400B - TBS_E_PPI_NOT_SUPPORTED Handle = 0x8028400C - TBS_E_COMMAND_CANCELED Handle = 0x8028400D - TBS_E_BUFFER_TOO_LARGE Handle = 0x8028400E - TBS_E_TPM_NOT_FOUND Handle = 0x8028400F - TBS_E_SERVICE_DISABLED Handle = 0x80284010 - TBS_E_NO_EVENT_LOG Handle = 0x80284011 - TBS_E_ACCESS_DENIED Handle = 0x80284012 - TBS_E_PROVISIONING_NOT_ALLOWED Handle = 0x80284013 - TBS_E_PPI_FUNCTION_UNSUPPORTED Handle = 0x80284014 - TBS_E_OWNERAUTH_NOT_FOUND Handle = 0x80284015 - TBS_E_PROVISIONING_INCOMPLETE Handle = 0x80284016 - TPMAPI_E_INVALID_STATE Handle = 0x80290100 - TPMAPI_E_NOT_ENOUGH_DATA Handle = 0x80290101 - TPMAPI_E_TOO_MUCH_DATA Handle = 0x80290102 - TPMAPI_E_INVALID_OUTPUT_POINTER Handle = 0x80290103 - TPMAPI_E_INVALID_PARAMETER Handle = 0x80290104 - TPMAPI_E_OUT_OF_MEMORY Handle = 0x80290105 - TPMAPI_E_BUFFER_TOO_SMALL Handle = 0x80290106 - TPMAPI_E_INTERNAL_ERROR Handle = 0x80290107 - TPMAPI_E_ACCESS_DENIED Handle = 0x80290108 - TPMAPI_E_AUTHORIZATION_FAILED Handle = 0x80290109 - TPMAPI_E_INVALID_CONTEXT_HANDLE Handle = 0x8029010A - TPMAPI_E_TBS_COMMUNICATION_ERROR Handle = 0x8029010B - TPMAPI_E_TPM_COMMAND_ERROR Handle = 0x8029010C - TPMAPI_E_MESSAGE_TOO_LARGE Handle = 0x8029010D - TPMAPI_E_INVALID_ENCODING Handle = 0x8029010E - TPMAPI_E_INVALID_KEY_SIZE Handle = 0x8029010F - TPMAPI_E_ENCRYPTION_FAILED Handle = 0x80290110 - TPMAPI_E_INVALID_KEY_PARAMS Handle = 0x80290111 - TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB Handle = 0x80290112 - TPMAPI_E_INVALID_PCR_INDEX Handle = 0x80290113 - TPMAPI_E_INVALID_DELEGATE_BLOB Handle = 0x80290114 - TPMAPI_E_INVALID_CONTEXT_PARAMS Handle = 0x80290115 - TPMAPI_E_INVALID_KEY_BLOB Handle = 0x80290116 - TPMAPI_E_INVALID_PCR_DATA Handle = 0x80290117 - TPMAPI_E_INVALID_OWNER_AUTH Handle = 0x80290118 - TPMAPI_E_FIPS_RNG_CHECK_FAILED Handle = 0x80290119 - TPMAPI_E_EMPTY_TCG_LOG Handle = 0x8029011A - TPMAPI_E_INVALID_TCG_LOG_ENTRY Handle = 0x8029011B - TPMAPI_E_TCG_SEPARATOR_ABSENT Handle = 0x8029011C - TPMAPI_E_TCG_INVALID_DIGEST_ENTRY Handle = 0x8029011D - TPMAPI_E_POLICY_DENIES_OPERATION Handle = 0x8029011E - TPMAPI_E_NV_BITS_NOT_DEFINED Handle = 0x8029011F - TPMAPI_E_NV_BITS_NOT_READY Handle = 0x80290120 - TPMAPI_E_SEALING_KEY_NOT_AVAILABLE Handle = 0x80290121 - TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND Handle = 0x80290122 - TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE Handle = 0x80290123 - TPMAPI_E_OWNER_AUTH_NOT_NULL Handle = 0x80290124 - TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL Handle = 0x80290125 - TPMAPI_E_AUTHORIZATION_REVOKED Handle = 0x80290126 - TPMAPI_E_MALFORMED_AUTHORIZATION_KEY Handle = 0x80290127 - TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED Handle = 0x80290128 - TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE Handle = 0x80290129 - TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY Handle = 0x8029012A - TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER Handle = 0x8029012B - TPMAPI_E_SEALING_KEY_CHANGED Handle = 0x8029012C - TBSIMP_E_BUFFER_TOO_SMALL Handle = 0x80290200 - TBSIMP_E_CLEANUP_FAILED Handle = 0x80290201 - TBSIMP_E_INVALID_CONTEXT_HANDLE Handle = 0x80290202 - TBSIMP_E_INVALID_CONTEXT_PARAM Handle = 0x80290203 - TBSIMP_E_TPM_ERROR Handle = 0x80290204 - TBSIMP_E_HASH_BAD_KEY Handle = 0x80290205 - TBSIMP_E_DUPLICATE_VHANDLE Handle = 0x80290206 - TBSIMP_E_INVALID_OUTPUT_POINTER Handle = 0x80290207 - TBSIMP_E_INVALID_PARAMETER Handle = 0x80290208 - TBSIMP_E_RPC_INIT_FAILED Handle = 0x80290209 - TBSIMP_E_SCHEDULER_NOT_RUNNING Handle = 0x8029020A - TBSIMP_E_COMMAND_CANCELED Handle = 0x8029020B - TBSIMP_E_OUT_OF_MEMORY Handle = 0x8029020C - TBSIMP_E_LIST_NO_MORE_ITEMS Handle = 0x8029020D - TBSIMP_E_LIST_NOT_FOUND Handle = 0x8029020E - TBSIMP_E_NOT_ENOUGH_SPACE Handle = 0x8029020F - TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS Handle = 0x80290210 - TBSIMP_E_COMMAND_FAILED Handle = 0x80290211 - TBSIMP_E_UNKNOWN_ORDINAL Handle = 0x80290212 - TBSIMP_E_RESOURCE_EXPIRED Handle = 0x80290213 - TBSIMP_E_INVALID_RESOURCE Handle = 0x80290214 - TBSIMP_E_NOTHING_TO_UNLOAD Handle = 0x80290215 - TBSIMP_E_HASH_TABLE_FULL Handle = 0x80290216 - TBSIMP_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80290217 - TBSIMP_E_TOO_MANY_RESOURCES Handle = 0x80290218 - TBSIMP_E_PPI_NOT_SUPPORTED Handle = 0x80290219 - TBSIMP_E_TPM_INCOMPATIBLE Handle = 0x8029021A - TBSIMP_E_NO_EVENT_LOG Handle = 0x8029021B - TPM_E_PPI_ACPI_FAILURE Handle = 0x80290300 - TPM_E_PPI_USER_ABORT Handle = 0x80290301 - TPM_E_PPI_BIOS_FAILURE Handle = 0x80290302 - TPM_E_PPI_NOT_SUPPORTED Handle = 0x80290303 - TPM_E_PPI_BLOCKED_IN_BIOS Handle = 0x80290304 - TPM_E_PCP_ERROR_MASK Handle = 0x80290400 - TPM_E_PCP_DEVICE_NOT_READY Handle = 0x80290401 - TPM_E_PCP_INVALID_HANDLE Handle = 0x80290402 - TPM_E_PCP_INVALID_PARAMETER Handle = 0x80290403 - TPM_E_PCP_FLAG_NOT_SUPPORTED Handle = 0x80290404 - TPM_E_PCP_NOT_SUPPORTED Handle = 0x80290405 - TPM_E_PCP_BUFFER_TOO_SMALL Handle = 0x80290406 - TPM_E_PCP_INTERNAL_ERROR Handle = 0x80290407 - TPM_E_PCP_AUTHENTICATION_FAILED Handle = 0x80290408 - TPM_E_PCP_AUTHENTICATION_IGNORED Handle = 0x80290409 - TPM_E_PCP_POLICY_NOT_FOUND Handle = 0x8029040A - TPM_E_PCP_PROFILE_NOT_FOUND Handle = 0x8029040B - TPM_E_PCP_VALIDATION_FAILED Handle = 0x8029040C - TPM_E_PCP_WRONG_PARENT Handle = 0x8029040E - TPM_E_KEY_NOT_LOADED Handle = 0x8029040F - TPM_E_NO_KEY_CERTIFICATION Handle = 0x80290410 - TPM_E_KEY_NOT_FINALIZED Handle = 0x80290411 - TPM_E_ATTESTATION_CHALLENGE_NOT_SET Handle = 0x80290412 - TPM_E_NOT_PCR_BOUND Handle = 0x80290413 - TPM_E_KEY_ALREADY_FINALIZED Handle = 0x80290414 - TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED Handle = 0x80290415 - TPM_E_KEY_USAGE_POLICY_INVALID Handle = 0x80290416 - TPM_E_SOFT_KEY_ERROR Handle = 0x80290417 - TPM_E_KEY_NOT_AUTHENTICATED Handle = 0x80290418 - TPM_E_PCP_KEY_NOT_AIK Handle = 0x80290419 - TPM_E_KEY_NOT_SIGNING_KEY Handle = 0x8029041A - TPM_E_LOCKED_OUT Handle = 0x8029041B - TPM_E_CLAIM_TYPE_NOT_SUPPORTED Handle = 0x8029041C - TPM_E_VERSION_NOT_SUPPORTED Handle = 0x8029041D - TPM_E_BUFFER_LENGTH_MISMATCH Handle = 0x8029041E - TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED Handle = 0x8029041F - TPM_E_PCP_TICKET_MISSING Handle = 0x80290420 - TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED Handle = 0x80290421 - TPM_E_PCP_KEY_HANDLE_INVALIDATED Handle = 0x80290422 - TPM_E_PCP_UNSUPPORTED_PSS_SALT Handle = 0x40290423 - TPM_E_ZERO_EXHAUST_ENABLED Handle = 0x80290500 - PLA_E_DCS_NOT_FOUND Handle = 0x80300002 - PLA_E_DCS_IN_USE Handle = 0x803000AA - PLA_E_TOO_MANY_FOLDERS Handle = 0x80300045 - PLA_E_NO_MIN_DISK Handle = 0x80300070 - PLA_E_DCS_ALREADY_EXISTS Handle = 0x803000B7 - PLA_S_PROPERTY_IGNORED Handle = 0x00300100 - PLA_E_PROPERTY_CONFLICT Handle = 0x80300101 - PLA_E_DCS_SINGLETON_REQUIRED Handle = 0x80300102 - PLA_E_CREDENTIALS_REQUIRED Handle = 0x80300103 - PLA_E_DCS_NOT_RUNNING Handle = 0x80300104 - PLA_E_CONFLICT_INCL_EXCL_API Handle = 0x80300105 - PLA_E_NETWORK_EXE_NOT_VALID Handle = 0x80300106 - PLA_E_EXE_ALREADY_CONFIGURED Handle = 0x80300107 - PLA_E_EXE_PATH_NOT_VALID Handle = 0x80300108 - PLA_E_DC_ALREADY_EXISTS Handle = 0x80300109 - PLA_E_DCS_START_WAIT_TIMEOUT Handle = 0x8030010A - PLA_E_DC_START_WAIT_TIMEOUT Handle = 0x8030010B - PLA_E_REPORT_WAIT_TIMEOUT Handle = 0x8030010C - PLA_E_NO_DUPLICATES Handle = 0x8030010D - PLA_E_EXE_FULL_PATH_REQUIRED Handle = 0x8030010E - PLA_E_INVALID_SESSION_NAME Handle = 0x8030010F - PLA_E_PLA_CHANNEL_NOT_ENABLED Handle = 0x80300110 - PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED Handle = 0x80300111 - PLA_E_RULES_MANAGER_FAILED Handle = 0x80300112 - PLA_E_CABAPI_FAILURE Handle = 0x80300113 - FVE_E_LOCKED_VOLUME Handle = 0x80310000 - FVE_E_NOT_ENCRYPTED Handle = 0x80310001 - FVE_E_NO_TPM_BIOS Handle = 0x80310002 - FVE_E_NO_MBR_METRIC Handle = 0x80310003 - FVE_E_NO_BOOTSECTOR_METRIC Handle = 0x80310004 - FVE_E_NO_BOOTMGR_METRIC Handle = 0x80310005 - FVE_E_WRONG_BOOTMGR Handle = 0x80310006 - FVE_E_SECURE_KEY_REQUIRED Handle = 0x80310007 - FVE_E_NOT_ACTIVATED Handle = 0x80310008 - FVE_E_ACTION_NOT_ALLOWED Handle = 0x80310009 - FVE_E_AD_SCHEMA_NOT_INSTALLED Handle = 0x8031000A - FVE_E_AD_INVALID_DATATYPE Handle = 0x8031000B - FVE_E_AD_INVALID_DATASIZE Handle = 0x8031000C - FVE_E_AD_NO_VALUES Handle = 0x8031000D - FVE_E_AD_ATTR_NOT_SET Handle = 0x8031000E - FVE_E_AD_GUID_NOT_FOUND Handle = 0x8031000F - FVE_E_BAD_INFORMATION Handle = 0x80310010 - FVE_E_TOO_SMALL Handle = 0x80310011 - FVE_E_SYSTEM_VOLUME Handle = 0x80310012 - FVE_E_FAILED_WRONG_FS Handle = 0x80310013 - FVE_E_BAD_PARTITION_SIZE Handle = 0x80310014 - FVE_E_NOT_SUPPORTED Handle = 0x80310015 - FVE_E_BAD_DATA Handle = 0x80310016 - FVE_E_VOLUME_NOT_BOUND Handle = 0x80310017 - FVE_E_TPM_NOT_OWNED Handle = 0x80310018 - FVE_E_NOT_DATA_VOLUME Handle = 0x80310019 - FVE_E_AD_INSUFFICIENT_BUFFER Handle = 0x8031001A - FVE_E_CONV_READ Handle = 0x8031001B - FVE_E_CONV_WRITE Handle = 0x8031001C - FVE_E_KEY_REQUIRED Handle = 0x8031001D - FVE_E_CLUSTERING_NOT_SUPPORTED Handle = 0x8031001E - FVE_E_VOLUME_BOUND_ALREADY Handle = 0x8031001F - FVE_E_OS_NOT_PROTECTED Handle = 0x80310020 - FVE_E_PROTECTION_DISABLED Handle = 0x80310021 - FVE_E_RECOVERY_KEY_REQUIRED Handle = 0x80310022 - FVE_E_FOREIGN_VOLUME Handle = 0x80310023 - FVE_E_OVERLAPPED_UPDATE Handle = 0x80310024 - FVE_E_TPM_SRK_AUTH_NOT_ZERO Handle = 0x80310025 - FVE_E_FAILED_SECTOR_SIZE Handle = 0x80310026 - FVE_E_FAILED_AUTHENTICATION Handle = 0x80310027 - FVE_E_NOT_OS_VOLUME Handle = 0x80310028 - FVE_E_AUTOUNLOCK_ENABLED Handle = 0x80310029 - FVE_E_WRONG_BOOTSECTOR Handle = 0x8031002A - FVE_E_WRONG_SYSTEM_FS Handle = 0x8031002B - FVE_E_POLICY_PASSWORD_REQUIRED Handle = 0x8031002C - FVE_E_CANNOT_SET_FVEK_ENCRYPTED Handle = 0x8031002D - FVE_E_CANNOT_ENCRYPT_NO_KEY Handle = 0x8031002E - FVE_E_BOOTABLE_CDDVD Handle = 0x80310030 - FVE_E_PROTECTOR_EXISTS Handle = 0x80310031 - FVE_E_RELATIVE_PATH Handle = 0x80310032 - FVE_E_PROTECTOR_NOT_FOUND Handle = 0x80310033 - FVE_E_INVALID_KEY_FORMAT Handle = 0x80310034 - FVE_E_INVALID_PASSWORD_FORMAT Handle = 0x80310035 - FVE_E_FIPS_RNG_CHECK_FAILED Handle = 0x80310036 - FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD Handle = 0x80310037 - FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT Handle = 0x80310038 - FVE_E_NOT_DECRYPTED Handle = 0x80310039 - FVE_E_INVALID_PROTECTOR_TYPE Handle = 0x8031003A - FVE_E_NO_PROTECTORS_TO_TEST Handle = 0x8031003B - FVE_E_KEYFILE_NOT_FOUND Handle = 0x8031003C - FVE_E_KEYFILE_INVALID Handle = 0x8031003D - FVE_E_KEYFILE_NO_VMK Handle = 0x8031003E - FVE_E_TPM_DISABLED Handle = 0x8031003F - FVE_E_NOT_ALLOWED_IN_SAFE_MODE Handle = 0x80310040 - FVE_E_TPM_INVALID_PCR Handle = 0x80310041 - FVE_E_TPM_NO_VMK Handle = 0x80310042 - FVE_E_PIN_INVALID Handle = 0x80310043 - FVE_E_AUTH_INVALID_APPLICATION Handle = 0x80310044 - FVE_E_AUTH_INVALID_CONFIG Handle = 0x80310045 - FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED Handle = 0x80310046 - FVE_E_FS_NOT_EXTENDED Handle = 0x80310047 - FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED Handle = 0x80310048 - FVE_E_NO_LICENSE Handle = 0x80310049 - FVE_E_NOT_ON_STACK Handle = 0x8031004A - FVE_E_FS_MOUNTED Handle = 0x8031004B - FVE_E_TOKEN_NOT_IMPERSONATED Handle = 0x8031004C - FVE_E_DRY_RUN_FAILED Handle = 0x8031004D - FVE_E_REBOOT_REQUIRED Handle = 0x8031004E - FVE_E_DEBUGGER_ENABLED Handle = 0x8031004F - FVE_E_RAW_ACCESS Handle = 0x80310050 - FVE_E_RAW_BLOCKED Handle = 0x80310051 - FVE_E_BCD_APPLICATIONS_PATH_INCORRECT Handle = 0x80310052 - FVE_E_NOT_ALLOWED_IN_VERSION Handle = 0x80310053 - FVE_E_NO_AUTOUNLOCK_MASTER_KEY Handle = 0x80310054 - FVE_E_MOR_FAILED Handle = 0x80310055 - FVE_E_HIDDEN_VOLUME Handle = 0x80310056 - FVE_E_TRANSIENT_STATE Handle = 0x80310057 - FVE_E_PUBKEY_NOT_ALLOWED Handle = 0x80310058 - FVE_E_VOLUME_HANDLE_OPEN Handle = 0x80310059 - FVE_E_NO_FEATURE_LICENSE Handle = 0x8031005A - FVE_E_INVALID_STARTUP_OPTIONS Handle = 0x8031005B - FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED Handle = 0x8031005C - FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED Handle = 0x8031005D - FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED Handle = 0x8031005E - FVE_E_POLICY_RECOVERY_KEY_REQUIRED Handle = 0x8031005F - FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED Handle = 0x80310060 - FVE_E_POLICY_STARTUP_PIN_REQUIRED Handle = 0x80310061 - FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED Handle = 0x80310062 - FVE_E_POLICY_STARTUP_KEY_REQUIRED Handle = 0x80310063 - FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED Handle = 0x80310064 - FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED Handle = 0x80310065 - FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED Handle = 0x80310066 - FVE_E_POLICY_STARTUP_TPM_REQUIRED Handle = 0x80310067 - FVE_E_POLICY_INVALID_PIN_LENGTH Handle = 0x80310068 - FVE_E_KEY_PROTECTOR_NOT_SUPPORTED Handle = 0x80310069 - FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006A - FVE_E_POLICY_PASSPHRASE_REQUIRED Handle = 0x8031006B - FVE_E_FIPS_PREVENTS_PASSPHRASE Handle = 0x8031006C - FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006D - FVE_E_INVALID_BITLOCKER_OID Handle = 0x8031006E - FVE_E_VOLUME_TOO_SMALL Handle = 0x8031006F - FVE_E_DV_NOT_SUPPORTED_ON_FS Handle = 0x80310070 - FVE_E_DV_NOT_ALLOWED_BY_GP Handle = 0x80310071 - FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED Handle = 0x80310072 - FVE_E_POLICY_USER_CERTIFICATE_REQUIRED Handle = 0x80310073 - FVE_E_POLICY_USER_CERT_MUST_BE_HW Handle = 0x80310074 - FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310075 - FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310076 - FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED Handle = 0x80310077 - FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED Handle = 0x80310078 - FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED Handle = 0x80310079 - FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH Handle = 0x80310080 - FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE Handle = 0x80310081 - FVE_E_RECOVERY_PARTITION Handle = 0x80310082 - FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON Handle = 0x80310083 - FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON Handle = 0x80310084 - FVE_E_NON_BITLOCKER_OID Handle = 0x80310085 - FVE_E_POLICY_PROHIBITS_SELFSIGNED Handle = 0x80310086 - FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED Handle = 0x80310087 - FVE_E_CONV_RECOVERY_FAILED Handle = 0x80310088 - FVE_E_VIRTUALIZED_SPACE_TOO_BIG Handle = 0x80310089 - FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON Handle = 0x80310090 - FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON Handle = 0x80310091 - FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON Handle = 0x80310092 - FVE_E_NON_BITLOCKER_KU Handle = 0x80310093 - FVE_E_PRIVATEKEY_AUTH_FAILED Handle = 0x80310094 - FVE_E_REMOVAL_OF_DRA_FAILED Handle = 0x80310095 - FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME Handle = 0x80310096 - FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME Handle = 0x80310097 - FVE_E_FIPS_HASH_KDF_NOT_ALLOWED Handle = 0x80310098 - FVE_E_ENH_PIN_INVALID Handle = 0x80310099 - FVE_E_INVALID_PIN_CHARS Handle = 0x8031009A - FVE_E_INVALID_DATUM_TYPE Handle = 0x8031009B - FVE_E_EFI_ONLY Handle = 0x8031009C - FVE_E_MULTIPLE_NKP_CERTS Handle = 0x8031009D - FVE_E_REMOVAL_OF_NKP_FAILED Handle = 0x8031009E - FVE_E_INVALID_NKP_CERT Handle = 0x8031009F - FVE_E_NO_EXISTING_PIN Handle = 0x803100A0 - FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH Handle = 0x803100A1 - FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100A2 - FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED Handle = 0x803100A3 - FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII Handle = 0x803100A4 - FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A5 - FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A6 - FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE Handle = 0x803100A7 - FVE_E_NO_EXISTING_PASSPHRASE Handle = 0x803100A8 - FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH Handle = 0x803100A9 - FVE_E_PASSPHRASE_TOO_LONG Handle = 0x803100AA - FVE_E_NO_PASSPHRASE_WITH_TPM Handle = 0x803100AB - FVE_E_NO_TPM_WITH_PASSPHRASE Handle = 0x803100AC - FVE_E_NOT_ALLOWED_ON_CSV_STACK Handle = 0x803100AD - FVE_E_NOT_ALLOWED_ON_CLUSTER Handle = 0x803100AE - FVE_E_EDRIVE_NO_FAILOVER_TO_SW Handle = 0x803100AF - FVE_E_EDRIVE_BAND_IN_USE Handle = 0x803100B0 - FVE_E_EDRIVE_DISALLOWED_BY_GP Handle = 0x803100B1 - FVE_E_EDRIVE_INCOMPATIBLE_VOLUME Handle = 0x803100B2 - FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING Handle = 0x803100B3 - FVE_E_EDRIVE_DV_NOT_SUPPORTED Handle = 0x803100B4 - FVE_E_NO_PREBOOT_KEYBOARD_DETECTED Handle = 0x803100B5 - FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED Handle = 0x803100B6 - FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE Handle = 0x803100B7 - FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE Handle = 0x803100B8 - FVE_E_WIPE_CANCEL_NOT_APPLICABLE Handle = 0x803100B9 - FVE_E_SECUREBOOT_DISABLED Handle = 0x803100BA - FVE_E_SECUREBOOT_CONFIGURATION_INVALID Handle = 0x803100BB - FVE_E_EDRIVE_DRY_RUN_FAILED Handle = 0x803100BC - FVE_E_SHADOW_COPY_PRESENT Handle = 0x803100BD - FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS Handle = 0x803100BE - FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE Handle = 0x803100BF - FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED Handle = 0x803100C0 - FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100C1 - FVE_E_LIVEID_ACCOUNT_SUSPENDED Handle = 0x803100C2 - FVE_E_LIVEID_ACCOUNT_BLOCKED Handle = 0x803100C3 - FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x803100C4 - FVE_E_DE_FIXED_DATA_NOT_SUPPORTED Handle = 0x803100C5 - FVE_E_DE_HARDWARE_NOT_COMPLIANT Handle = 0x803100C6 - FVE_E_DE_WINRE_NOT_CONFIGURED Handle = 0x803100C7 - FVE_E_DE_PROTECTION_SUSPENDED Handle = 0x803100C8 - FVE_E_DE_OS_VOLUME_NOT_PROTECTED Handle = 0x803100C9 - FVE_E_DE_DEVICE_LOCKEDOUT Handle = 0x803100CA - FVE_E_DE_PROTECTION_NOT_YET_ENABLED Handle = 0x803100CB - FVE_E_INVALID_PIN_CHARS_DETAILED Handle = 0x803100CC - FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE Handle = 0x803100CD - FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH Handle = 0x803100CE - FVE_E_BUFFER_TOO_LARGE Handle = 0x803100CF - FVE_E_NO_SUCH_CAPABILITY_ON_TARGET Handle = 0x803100D0 - FVE_E_DE_PREVENTED_FOR_OS Handle = 0x803100D1 - FVE_E_DE_VOLUME_OPTED_OUT Handle = 0x803100D2 - FVE_E_DE_VOLUME_NOT_SUPPORTED Handle = 0x803100D3 - FVE_E_EOW_NOT_SUPPORTED_IN_VERSION Handle = 0x803100D4 - FVE_E_ADBACKUP_NOT_ENABLED Handle = 0x803100D5 - FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT Handle = 0x803100D6 - FVE_E_NOT_DE_VOLUME Handle = 0x803100D7 - FVE_E_PROTECTION_CANNOT_BE_DISABLED Handle = 0x803100D8 - FVE_E_OSV_KSR_NOT_ALLOWED Handle = 0x803100D9 - FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE Handle = 0x803100DA - FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE Handle = 0x803100DB - FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE Handle = 0x803100DC - FVE_E_KEY_ROTATION_NOT_SUPPORTED Handle = 0x803100DD - FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON Handle = 0x803100DE - FVE_E_KEY_ROTATION_NOT_ENABLED Handle = 0x803100DF - FVE_E_DEVICE_NOT_JOINED Handle = 0x803100E0 - FWP_E_CALLOUT_NOT_FOUND Handle = 0x80320001 - FWP_E_CONDITION_NOT_FOUND Handle = 0x80320002 - FWP_E_FILTER_NOT_FOUND Handle = 0x80320003 - FWP_E_LAYER_NOT_FOUND Handle = 0x80320004 - FWP_E_PROVIDER_NOT_FOUND Handle = 0x80320005 - FWP_E_PROVIDER_CONTEXT_NOT_FOUND Handle = 0x80320006 - FWP_E_SUBLAYER_NOT_FOUND Handle = 0x80320007 - FWP_E_NOT_FOUND Handle = 0x80320008 - FWP_E_ALREADY_EXISTS Handle = 0x80320009 - FWP_E_IN_USE Handle = 0x8032000A - FWP_E_DYNAMIC_SESSION_IN_PROGRESS Handle = 0x8032000B - FWP_E_WRONG_SESSION Handle = 0x8032000C - FWP_E_NO_TXN_IN_PROGRESS Handle = 0x8032000D - FWP_E_TXN_IN_PROGRESS Handle = 0x8032000E - FWP_E_TXN_ABORTED Handle = 0x8032000F - FWP_E_SESSION_ABORTED Handle = 0x80320010 - FWP_E_INCOMPATIBLE_TXN Handle = 0x80320011 - FWP_E_TIMEOUT Handle = 0x80320012 - FWP_E_NET_EVENTS_DISABLED Handle = 0x80320013 - FWP_E_INCOMPATIBLE_LAYER Handle = 0x80320014 - FWP_E_KM_CLIENTS_ONLY Handle = 0x80320015 - FWP_E_LIFETIME_MISMATCH Handle = 0x80320016 - FWP_E_BUILTIN_OBJECT Handle = 0x80320017 - FWP_E_TOO_MANY_CALLOUTS Handle = 0x80320018 - FWP_E_NOTIFICATION_DROPPED Handle = 0x80320019 - FWP_E_TRAFFIC_MISMATCH Handle = 0x8032001A - FWP_E_INCOMPATIBLE_SA_STATE Handle = 0x8032001B - FWP_E_NULL_POINTER Handle = 0x8032001C - FWP_E_INVALID_ENUMERATOR Handle = 0x8032001D - FWP_E_INVALID_FLAGS Handle = 0x8032001E - FWP_E_INVALID_NET_MASK Handle = 0x8032001F - FWP_E_INVALID_RANGE Handle = 0x80320020 - FWP_E_INVALID_INTERVAL Handle = 0x80320021 - FWP_E_ZERO_LENGTH_ARRAY Handle = 0x80320022 - FWP_E_NULL_DISPLAY_NAME Handle = 0x80320023 - FWP_E_INVALID_ACTION_TYPE Handle = 0x80320024 - FWP_E_INVALID_WEIGHT Handle = 0x80320025 - FWP_E_MATCH_TYPE_MISMATCH Handle = 0x80320026 - FWP_E_TYPE_MISMATCH Handle = 0x80320027 - FWP_E_OUT_OF_BOUNDS Handle = 0x80320028 - FWP_E_RESERVED Handle = 0x80320029 - FWP_E_DUPLICATE_CONDITION Handle = 0x8032002A - FWP_E_DUPLICATE_KEYMOD Handle = 0x8032002B - FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002C - FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER Handle = 0x8032002D - FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002E - FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT Handle = 0x8032002F - FWP_E_INCOMPATIBLE_AUTH_METHOD Handle = 0x80320030 - FWP_E_INCOMPATIBLE_DH_GROUP Handle = 0x80320031 - FWP_E_EM_NOT_SUPPORTED Handle = 0x80320032 - FWP_E_NEVER_MATCH Handle = 0x80320033 - FWP_E_PROVIDER_CONTEXT_MISMATCH Handle = 0x80320034 - FWP_E_INVALID_PARAMETER Handle = 0x80320035 - FWP_E_TOO_MANY_SUBLAYERS Handle = 0x80320036 - FWP_E_CALLOUT_NOTIFICATION_FAILED Handle = 0x80320037 - FWP_E_INVALID_AUTH_TRANSFORM Handle = 0x80320038 - FWP_E_INVALID_CIPHER_TRANSFORM Handle = 0x80320039 - FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM Handle = 0x8032003A - FWP_E_INVALID_TRANSFORM_COMBINATION Handle = 0x8032003B - FWP_E_DUPLICATE_AUTH_METHOD Handle = 0x8032003C - FWP_E_INVALID_TUNNEL_ENDPOINT Handle = 0x8032003D - FWP_E_L2_DRIVER_NOT_READY Handle = 0x8032003E - FWP_E_KEY_DICTATOR_ALREADY_REGISTERED Handle = 0x8032003F - FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL Handle = 0x80320040 - FWP_E_CONNECTIONS_DISABLED Handle = 0x80320041 - FWP_E_INVALID_DNS_NAME Handle = 0x80320042 - FWP_E_STILL_ON Handle = 0x80320043 - FWP_E_IKEEXT_NOT_RUNNING Handle = 0x80320044 - FWP_E_DROP_NOICMP Handle = 0x80320104 - WS_S_ASYNC Handle = 0x003D0000 - WS_S_END Handle = 0x003D0001 - WS_E_INVALID_FORMAT Handle = 0x803D0000 - WS_E_OBJECT_FAULTED Handle = 0x803D0001 - WS_E_NUMERIC_OVERFLOW Handle = 0x803D0002 - WS_E_INVALID_OPERATION Handle = 0x803D0003 - WS_E_OPERATION_ABORTED Handle = 0x803D0004 - WS_E_ENDPOINT_ACCESS_DENIED Handle = 0x803D0005 - WS_E_OPERATION_TIMED_OUT Handle = 0x803D0006 - WS_E_OPERATION_ABANDONED Handle = 0x803D0007 - WS_E_QUOTA_EXCEEDED Handle = 0x803D0008 - WS_E_NO_TRANSLATION_AVAILABLE Handle = 0x803D0009 - WS_E_SECURITY_VERIFICATION_FAILURE Handle = 0x803D000A - WS_E_ADDRESS_IN_USE Handle = 0x803D000B - WS_E_ADDRESS_NOT_AVAILABLE Handle = 0x803D000C - WS_E_ENDPOINT_NOT_FOUND Handle = 0x803D000D - WS_E_ENDPOINT_NOT_AVAILABLE Handle = 0x803D000E - WS_E_ENDPOINT_FAILURE Handle = 0x803D000F - WS_E_ENDPOINT_UNREACHABLE Handle = 0x803D0010 - WS_E_ENDPOINT_ACTION_NOT_SUPPORTED Handle = 0x803D0011 - WS_E_ENDPOINT_TOO_BUSY Handle = 0x803D0012 - WS_E_ENDPOINT_FAULT_RECEIVED Handle = 0x803D0013 - WS_E_ENDPOINT_DISCONNECTED Handle = 0x803D0014 - WS_E_PROXY_FAILURE Handle = 0x803D0015 - WS_E_PROXY_ACCESS_DENIED Handle = 0x803D0016 - WS_E_NOT_SUPPORTED Handle = 0x803D0017 - WS_E_PROXY_REQUIRES_BASIC_AUTH Handle = 0x803D0018 - WS_E_PROXY_REQUIRES_DIGEST_AUTH Handle = 0x803D0019 - WS_E_PROXY_REQUIRES_NTLM_AUTH Handle = 0x803D001A - WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001B - WS_E_SERVER_REQUIRES_BASIC_AUTH Handle = 0x803D001C - WS_E_SERVER_REQUIRES_DIGEST_AUTH Handle = 0x803D001D - WS_E_SERVER_REQUIRES_NTLM_AUTH Handle = 0x803D001E - WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001F - WS_E_INVALID_ENDPOINT_URL Handle = 0x803D0020 - WS_E_OTHER Handle = 0x803D0021 - WS_E_SECURITY_TOKEN_EXPIRED Handle = 0x803D0022 - WS_E_SECURITY_SYSTEM_FAILURE Handle = 0x803D0023 - ERROR_NDIS_INTERFACE_CLOSING syscall.Errno = 0x80340002 - ERROR_NDIS_BAD_VERSION syscall.Errno = 0x80340004 - ERROR_NDIS_BAD_CHARACTERISTICS syscall.Errno = 0x80340005 - ERROR_NDIS_ADAPTER_NOT_FOUND syscall.Errno = 0x80340006 - ERROR_NDIS_OPEN_FAILED syscall.Errno = 0x80340007 - ERROR_NDIS_DEVICE_FAILED syscall.Errno = 0x80340008 - ERROR_NDIS_MULTICAST_FULL syscall.Errno = 0x80340009 - ERROR_NDIS_MULTICAST_EXISTS syscall.Errno = 0x8034000A - ERROR_NDIS_MULTICAST_NOT_FOUND syscall.Errno = 0x8034000B - ERROR_NDIS_REQUEST_ABORTED syscall.Errno = 0x8034000C - ERROR_NDIS_RESET_IN_PROGRESS syscall.Errno = 0x8034000D - ERROR_NDIS_NOT_SUPPORTED syscall.Errno = 0x803400BB - ERROR_NDIS_INVALID_PACKET syscall.Errno = 0x8034000F - ERROR_NDIS_ADAPTER_NOT_READY syscall.Errno = 0x80340011 - ERROR_NDIS_INVALID_LENGTH syscall.Errno = 0x80340014 - ERROR_NDIS_INVALID_DATA syscall.Errno = 0x80340015 - ERROR_NDIS_BUFFER_TOO_SHORT syscall.Errno = 0x80340016 - ERROR_NDIS_INVALID_OID syscall.Errno = 0x80340017 - ERROR_NDIS_ADAPTER_REMOVED syscall.Errno = 0x80340018 - ERROR_NDIS_UNSUPPORTED_MEDIA syscall.Errno = 0x80340019 - ERROR_NDIS_GROUP_ADDRESS_IN_USE syscall.Errno = 0x8034001A - ERROR_NDIS_FILE_NOT_FOUND syscall.Errno = 0x8034001B - ERROR_NDIS_ERROR_READING_FILE syscall.Errno = 0x8034001C - ERROR_NDIS_ALREADY_MAPPED syscall.Errno = 0x8034001D - ERROR_NDIS_RESOURCE_CONFLICT syscall.Errno = 0x8034001E - ERROR_NDIS_MEDIA_DISCONNECTED syscall.Errno = 0x8034001F - ERROR_NDIS_INVALID_ADDRESS syscall.Errno = 0x80340022 - ERROR_NDIS_INVALID_DEVICE_REQUEST syscall.Errno = 0x80340010 - ERROR_NDIS_PAUSED syscall.Errno = 0x8034002A - ERROR_NDIS_INTERFACE_NOT_FOUND syscall.Errno = 0x8034002B - ERROR_NDIS_UNSUPPORTED_REVISION syscall.Errno = 0x8034002C - ERROR_NDIS_INVALID_PORT syscall.Errno = 0x8034002D - ERROR_NDIS_INVALID_PORT_STATE syscall.Errno = 0x8034002E - ERROR_NDIS_LOW_POWER_STATE syscall.Errno = 0x8034002F - ERROR_NDIS_REINIT_REQUIRED syscall.Errno = 0x80340030 - ERROR_NDIS_NO_QUEUES syscall.Errno = 0x80340031 - ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED syscall.Errno = 0x80342000 - ERROR_NDIS_DOT11_MEDIA_IN_USE syscall.Errno = 0x80342001 - ERROR_NDIS_DOT11_POWER_STATE_INVALID syscall.Errno = 0x80342002 - ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL syscall.Errno = 0x80342003 - ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL syscall.Errno = 0x80342004 - ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342005 - ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342006 - ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED syscall.Errno = 0x80342007 - ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED syscall.Errno = 0x80342008 - ERROR_NDIS_INDICATION_REQUIRED syscall.Errno = 0x00340001 - ERROR_NDIS_OFFLOAD_POLICY syscall.Errno = 0xC034100F - ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED syscall.Errno = 0xC0341012 - ERROR_NDIS_OFFLOAD_PATH_REJECTED syscall.Errno = 0xC0341013 - ERROR_HV_INVALID_HYPERCALL_CODE syscall.Errno = 0xC0350002 - ERROR_HV_INVALID_HYPERCALL_INPUT syscall.Errno = 0xC0350003 - ERROR_HV_INVALID_ALIGNMENT syscall.Errno = 0xC0350004 - ERROR_HV_INVALID_PARAMETER syscall.Errno = 0xC0350005 - ERROR_HV_ACCESS_DENIED syscall.Errno = 0xC0350006 - ERROR_HV_INVALID_PARTITION_STATE syscall.Errno = 0xC0350007 - ERROR_HV_OPERATION_DENIED syscall.Errno = 0xC0350008 - ERROR_HV_UNKNOWN_PROPERTY syscall.Errno = 0xC0350009 - ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE syscall.Errno = 0xC035000A - ERROR_HV_INSUFFICIENT_MEMORY syscall.Errno = 0xC035000B - ERROR_HV_PARTITION_TOO_DEEP syscall.Errno = 0xC035000C - ERROR_HV_INVALID_PARTITION_ID syscall.Errno = 0xC035000D - ERROR_HV_INVALID_VP_INDEX syscall.Errno = 0xC035000E - ERROR_HV_INVALID_PORT_ID syscall.Errno = 0xC0350011 - ERROR_HV_INVALID_CONNECTION_ID syscall.Errno = 0xC0350012 - ERROR_HV_INSUFFICIENT_BUFFERS syscall.Errno = 0xC0350013 - ERROR_HV_NOT_ACKNOWLEDGED syscall.Errno = 0xC0350014 - ERROR_HV_INVALID_VP_STATE syscall.Errno = 0xC0350015 - ERROR_HV_ACKNOWLEDGED syscall.Errno = 0xC0350016 - ERROR_HV_INVALID_SAVE_RESTORE_STATE syscall.Errno = 0xC0350017 - ERROR_HV_INVALID_SYNIC_STATE syscall.Errno = 0xC0350018 - ERROR_HV_OBJECT_IN_USE syscall.Errno = 0xC0350019 - ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO syscall.Errno = 0xC035001A - ERROR_HV_NO_DATA syscall.Errno = 0xC035001B - ERROR_HV_INACTIVE syscall.Errno = 0xC035001C - ERROR_HV_NO_RESOURCES syscall.Errno = 0xC035001D - ERROR_HV_FEATURE_UNAVAILABLE syscall.Errno = 0xC035001E - ERROR_HV_INSUFFICIENT_BUFFER syscall.Errno = 0xC0350033 - ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS syscall.Errno = 0xC0350038 - ERROR_HV_CPUID_FEATURE_VALIDATION syscall.Errno = 0xC035003C - ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION syscall.Errno = 0xC035003D - ERROR_HV_PROCESSOR_STARTUP_TIMEOUT syscall.Errno = 0xC035003E - ERROR_HV_SMX_ENABLED syscall.Errno = 0xC035003F - ERROR_HV_INVALID_LP_INDEX syscall.Errno = 0xC0350041 - ERROR_HV_INVALID_REGISTER_VALUE syscall.Errno = 0xC0350050 - ERROR_HV_INVALID_VTL_STATE syscall.Errno = 0xC0350051 - ERROR_HV_NX_NOT_DETECTED syscall.Errno = 0xC0350055 - ERROR_HV_INVALID_DEVICE_ID syscall.Errno = 0xC0350057 - ERROR_HV_INVALID_DEVICE_STATE syscall.Errno = 0xC0350058 - ERROR_HV_PENDING_PAGE_REQUESTS syscall.Errno = 0x00350059 - ERROR_HV_PAGE_REQUEST_INVALID syscall.Errno = 0xC0350060 - ERROR_HV_INVALID_CPU_GROUP_ID syscall.Errno = 0xC035006F - ERROR_HV_INVALID_CPU_GROUP_STATE syscall.Errno = 0xC0350070 - ERROR_HV_OPERATION_FAILED syscall.Errno = 0xC0350071 - ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE syscall.Errno = 0xC0350072 - ERROR_HV_INSUFFICIENT_ROOT_MEMORY syscall.Errno = 0xC0350073 - ERROR_HV_NOT_PRESENT syscall.Errno = 0xC0351000 - ERROR_VID_DUPLICATE_HANDLER syscall.Errno = 0xC0370001 - ERROR_VID_TOO_MANY_HANDLERS syscall.Errno = 0xC0370002 - ERROR_VID_QUEUE_FULL syscall.Errno = 0xC0370003 - ERROR_VID_HANDLER_NOT_PRESENT syscall.Errno = 0xC0370004 - ERROR_VID_INVALID_OBJECT_NAME syscall.Errno = 0xC0370005 - ERROR_VID_PARTITION_NAME_TOO_LONG syscall.Errno = 0xC0370006 - ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG syscall.Errno = 0xC0370007 - ERROR_VID_PARTITION_ALREADY_EXISTS syscall.Errno = 0xC0370008 - ERROR_VID_PARTITION_DOES_NOT_EXIST syscall.Errno = 0xC0370009 - ERROR_VID_PARTITION_NAME_NOT_FOUND syscall.Errno = 0xC037000A - ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS syscall.Errno = 0xC037000B - ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT syscall.Errno = 0xC037000C - ERROR_VID_MB_STILL_REFERENCED syscall.Errno = 0xC037000D - ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED syscall.Errno = 0xC037000E - ERROR_VID_INVALID_NUMA_SETTINGS syscall.Errno = 0xC037000F - ERROR_VID_INVALID_NUMA_NODE_INDEX syscall.Errno = 0xC0370010 - ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED syscall.Errno = 0xC0370011 - ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE syscall.Errno = 0xC0370012 - ERROR_VID_PAGE_RANGE_OVERFLOW syscall.Errno = 0xC0370013 - ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE syscall.Errno = 0xC0370014 - ERROR_VID_INVALID_GPA_RANGE_HANDLE syscall.Errno = 0xC0370015 - ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE syscall.Errno = 0xC0370016 - ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED syscall.Errno = 0xC0370017 - ERROR_VID_INVALID_PPM_HANDLE syscall.Errno = 0xC0370018 - ERROR_VID_MBPS_ARE_LOCKED syscall.Errno = 0xC0370019 - ERROR_VID_MESSAGE_QUEUE_CLOSED syscall.Errno = 0xC037001A - ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED syscall.Errno = 0xC037001B - ERROR_VID_STOP_PENDING syscall.Errno = 0xC037001C - ERROR_VID_INVALID_PROCESSOR_STATE syscall.Errno = 0xC037001D - ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT syscall.Errno = 0xC037001E - ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED syscall.Errno = 0xC037001F - ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET syscall.Errno = 0xC0370020 - ERROR_VID_MMIO_RANGE_DESTROYED syscall.Errno = 0xC0370021 - ERROR_VID_INVALID_CHILD_GPA_PAGE_SET syscall.Errno = 0xC0370022 - ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED syscall.Errno = 0xC0370023 - ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL syscall.Errno = 0xC0370024 - ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE syscall.Errno = 0xC0370025 - ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT syscall.Errno = 0xC0370026 - ERROR_VID_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370027 - ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM syscall.Errno = 0xC0370028 - ERROR_VID_SAVED_STATE_INCOMPATIBLE syscall.Errno = 0xC0370029 - ERROR_VID_VTL_ACCESS_DENIED syscall.Errno = 0xC037002A - ERROR_VMCOMPUTE_TERMINATED_DURING_START syscall.Errno = 0xC0370100 - ERROR_VMCOMPUTE_IMAGE_MISMATCH syscall.Errno = 0xC0370101 - ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED syscall.Errno = 0xC0370102 - ERROR_VMCOMPUTE_OPERATION_PENDING syscall.Errno = 0xC0370103 - ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS syscall.Errno = 0xC0370104 - ERROR_VMCOMPUTE_INVALID_STATE syscall.Errno = 0xC0370105 - ERROR_VMCOMPUTE_UNEXPECTED_EXIT syscall.Errno = 0xC0370106 - ERROR_VMCOMPUTE_TERMINATED syscall.Errno = 0xC0370107 - ERROR_VMCOMPUTE_CONNECT_FAILED syscall.Errno = 0xC0370108 - ERROR_VMCOMPUTE_TIMEOUT syscall.Errno = 0xC0370109 - ERROR_VMCOMPUTE_CONNECTION_CLOSED syscall.Errno = 0xC037010A - ERROR_VMCOMPUTE_UNKNOWN_MESSAGE syscall.Errno = 0xC037010B - ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION syscall.Errno = 0xC037010C - ERROR_VMCOMPUTE_INVALID_JSON syscall.Errno = 0xC037010D - ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND syscall.Errno = 0xC037010E - ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS syscall.Errno = 0xC037010F - ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED syscall.Errno = 0xC0370110 - ERROR_VMCOMPUTE_PROTOCOL_ERROR syscall.Errno = 0xC0370111 - ERROR_VMCOMPUTE_INVALID_LAYER syscall.Errno = 0xC0370112 - ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED syscall.Errno = 0xC0370113 - HCS_E_TERMINATED_DURING_START Handle = 0x80370100 - HCS_E_IMAGE_MISMATCH Handle = 0x80370101 - HCS_E_HYPERV_NOT_INSTALLED Handle = 0x80370102 - HCS_E_INVALID_STATE Handle = 0x80370105 - HCS_E_UNEXPECTED_EXIT Handle = 0x80370106 - HCS_E_TERMINATED Handle = 0x80370107 - HCS_E_CONNECT_FAILED Handle = 0x80370108 - HCS_E_CONNECTION_TIMEOUT Handle = 0x80370109 - HCS_E_CONNECTION_CLOSED Handle = 0x8037010A - HCS_E_UNKNOWN_MESSAGE Handle = 0x8037010B - HCS_E_UNSUPPORTED_PROTOCOL_VERSION Handle = 0x8037010C - HCS_E_INVALID_JSON Handle = 0x8037010D - HCS_E_SYSTEM_NOT_FOUND Handle = 0x8037010E - HCS_E_SYSTEM_ALREADY_EXISTS Handle = 0x8037010F - HCS_E_SYSTEM_ALREADY_STOPPED Handle = 0x80370110 - HCS_E_PROTOCOL_ERROR Handle = 0x80370111 - HCS_E_INVALID_LAYER Handle = 0x80370112 - HCS_E_WINDOWS_INSIDER_REQUIRED Handle = 0x80370113 - HCS_E_SERVICE_NOT_AVAILABLE Handle = 0x80370114 - HCS_E_OPERATION_NOT_STARTED Handle = 0x80370115 - HCS_E_OPERATION_ALREADY_STARTED Handle = 0x80370116 - HCS_E_OPERATION_PENDING Handle = 0x80370117 - HCS_E_OPERATION_TIMEOUT Handle = 0x80370118 - HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET Handle = 0x80370119 - HCS_E_OPERATION_RESULT_ALLOCATION_FAILED Handle = 0x8037011A - HCS_E_ACCESS_DENIED Handle = 0x8037011B - HCS_E_GUEST_CRITICAL_ERROR Handle = 0x8037011C - ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND syscall.Errno = 0xC0370200 - ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED syscall.Errno = 0x80370001 - WHV_E_UNKNOWN_CAPABILITY Handle = 0x80370300 - WHV_E_INSUFFICIENT_BUFFER Handle = 0x80370301 - WHV_E_UNKNOWN_PROPERTY Handle = 0x80370302 - WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG Handle = 0x80370303 - WHV_E_INVALID_PARTITION_CONFIG Handle = 0x80370304 - WHV_E_GPA_RANGE_NOT_FOUND Handle = 0x80370305 - WHV_E_VP_ALREADY_EXISTS Handle = 0x80370306 - WHV_E_VP_DOES_NOT_EXIST Handle = 0x80370307 - WHV_E_INVALID_VP_STATE Handle = 0x80370308 - WHV_E_INVALID_VP_REGISTER_NAME Handle = 0x80370309 - ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND syscall.Errno = 0xC0370400 - ERROR_VSMB_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370401 - ERROR_VOLMGR_INCOMPLETE_REGENERATION syscall.Errno = 0x80380001 - ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION syscall.Errno = 0x80380002 - ERROR_VOLMGR_DATABASE_FULL syscall.Errno = 0xC0380001 - ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED syscall.Errno = 0xC0380002 - ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC syscall.Errno = 0xC0380003 - ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED syscall.Errno = 0xC0380004 - ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME syscall.Errno = 0xC0380005 - ERROR_VOLMGR_DISK_DUPLICATE syscall.Errno = 0xC0380006 - ERROR_VOLMGR_DISK_DYNAMIC syscall.Errno = 0xC0380007 - ERROR_VOLMGR_DISK_ID_INVALID syscall.Errno = 0xC0380008 - ERROR_VOLMGR_DISK_INVALID syscall.Errno = 0xC0380009 - ERROR_VOLMGR_DISK_LAST_VOTER syscall.Errno = 0xC038000A - ERROR_VOLMGR_DISK_LAYOUT_INVALID syscall.Errno = 0xC038000B - ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS syscall.Errno = 0xC038000C - ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED syscall.Errno = 0xC038000D - ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL syscall.Errno = 0xC038000E - ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS syscall.Errno = 0xC038000F - ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS syscall.Errno = 0xC0380010 - ERROR_VOLMGR_DISK_MISSING syscall.Errno = 0xC0380011 - ERROR_VOLMGR_DISK_NOT_EMPTY syscall.Errno = 0xC0380012 - ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE syscall.Errno = 0xC0380013 - ERROR_VOLMGR_DISK_REVECTORING_FAILED syscall.Errno = 0xC0380014 - ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID syscall.Errno = 0xC0380015 - ERROR_VOLMGR_DISK_SET_NOT_CONTAINED syscall.Errno = 0xC0380016 - ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS syscall.Errno = 0xC0380017 - ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES syscall.Errno = 0xC0380018 - ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED syscall.Errno = 0xC0380019 - ERROR_VOLMGR_EXTENT_ALREADY_USED syscall.Errno = 0xC038001A - ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS syscall.Errno = 0xC038001B - ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION syscall.Errno = 0xC038001C - ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED syscall.Errno = 0xC038001D - ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION syscall.Errno = 0xC038001E - ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH syscall.Errno = 0xC038001F - ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED syscall.Errno = 0xC0380020 - ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID syscall.Errno = 0xC0380021 - ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS syscall.Errno = 0xC0380022 - ERROR_VOLMGR_MEMBER_IN_SYNC syscall.Errno = 0xC0380023 - ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE syscall.Errno = 0xC0380024 - ERROR_VOLMGR_MEMBER_INDEX_INVALID syscall.Errno = 0xC0380025 - ERROR_VOLMGR_MEMBER_MISSING syscall.Errno = 0xC0380026 - ERROR_VOLMGR_MEMBER_NOT_DETACHED syscall.Errno = 0xC0380027 - ERROR_VOLMGR_MEMBER_REGENERATING syscall.Errno = 0xC0380028 - ERROR_VOLMGR_ALL_DISKS_FAILED syscall.Errno = 0xC0380029 - ERROR_VOLMGR_NO_REGISTERED_USERS syscall.Errno = 0xC038002A - ERROR_VOLMGR_NO_SUCH_USER syscall.Errno = 0xC038002B - ERROR_VOLMGR_NOTIFICATION_RESET syscall.Errno = 0xC038002C - ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID syscall.Errno = 0xC038002D - ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID syscall.Errno = 0xC038002E - ERROR_VOLMGR_PACK_DUPLICATE syscall.Errno = 0xC038002F - ERROR_VOLMGR_PACK_ID_INVALID syscall.Errno = 0xC0380030 - ERROR_VOLMGR_PACK_INVALID syscall.Errno = 0xC0380031 - ERROR_VOLMGR_PACK_NAME_INVALID syscall.Errno = 0xC0380032 - ERROR_VOLMGR_PACK_OFFLINE syscall.Errno = 0xC0380033 - ERROR_VOLMGR_PACK_HAS_QUORUM syscall.Errno = 0xC0380034 - ERROR_VOLMGR_PACK_WITHOUT_QUORUM syscall.Errno = 0xC0380035 - ERROR_VOLMGR_PARTITION_STYLE_INVALID syscall.Errno = 0xC0380036 - ERROR_VOLMGR_PARTITION_UPDATE_FAILED syscall.Errno = 0xC0380037 - ERROR_VOLMGR_PLEX_IN_SYNC syscall.Errno = 0xC0380038 - ERROR_VOLMGR_PLEX_INDEX_DUPLICATE syscall.Errno = 0xC0380039 - ERROR_VOLMGR_PLEX_INDEX_INVALID syscall.Errno = 0xC038003A - ERROR_VOLMGR_PLEX_LAST_ACTIVE syscall.Errno = 0xC038003B - ERROR_VOLMGR_PLEX_MISSING syscall.Errno = 0xC038003C - ERROR_VOLMGR_PLEX_REGENERATING syscall.Errno = 0xC038003D - ERROR_VOLMGR_PLEX_TYPE_INVALID syscall.Errno = 0xC038003E - ERROR_VOLMGR_PLEX_NOT_RAID5 syscall.Errno = 0xC038003F - ERROR_VOLMGR_PLEX_NOT_SIMPLE syscall.Errno = 0xC0380040 - ERROR_VOLMGR_STRUCTURE_SIZE_INVALID syscall.Errno = 0xC0380041 - ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS syscall.Errno = 0xC0380042 - ERROR_VOLMGR_TRANSACTION_IN_PROGRESS syscall.Errno = 0xC0380043 - ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE syscall.Errno = 0xC0380044 - ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK syscall.Errno = 0xC0380045 - ERROR_VOLMGR_VOLUME_ID_INVALID syscall.Errno = 0xC0380046 - ERROR_VOLMGR_VOLUME_LENGTH_INVALID syscall.Errno = 0xC0380047 - ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE syscall.Errno = 0xC0380048 - ERROR_VOLMGR_VOLUME_NOT_MIRRORED syscall.Errno = 0xC0380049 - ERROR_VOLMGR_VOLUME_NOT_RETAINED syscall.Errno = 0xC038004A - ERROR_VOLMGR_VOLUME_OFFLINE syscall.Errno = 0xC038004B - ERROR_VOLMGR_VOLUME_RETAINED syscall.Errno = 0xC038004C - ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID syscall.Errno = 0xC038004D - ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE syscall.Errno = 0xC038004E - ERROR_VOLMGR_BAD_BOOT_DISK syscall.Errno = 0xC038004F - ERROR_VOLMGR_PACK_CONFIG_OFFLINE syscall.Errno = 0xC0380050 - ERROR_VOLMGR_PACK_CONFIG_ONLINE syscall.Errno = 0xC0380051 - ERROR_VOLMGR_NOT_PRIMARY_PACK syscall.Errno = 0xC0380052 - ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED syscall.Errno = 0xC0380053 - ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID syscall.Errno = 0xC0380054 - ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID syscall.Errno = 0xC0380055 - ERROR_VOLMGR_VOLUME_MIRRORED syscall.Errno = 0xC0380056 - ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED syscall.Errno = 0xC0380057 - ERROR_VOLMGR_NO_VALID_LOG_COPIES syscall.Errno = 0xC0380058 - ERROR_VOLMGR_PRIMARY_PACK_PRESENT syscall.Errno = 0xC0380059 - ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID syscall.Errno = 0xC038005A - ERROR_VOLMGR_MIRROR_NOT_SUPPORTED syscall.Errno = 0xC038005B - ERROR_VOLMGR_RAID5_NOT_SUPPORTED syscall.Errno = 0xC038005C - ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED syscall.Errno = 0x80390001 - ERROR_BCD_TOO_MANY_ELEMENTS syscall.Errno = 0xC0390002 - ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED syscall.Errno = 0x80390003 - ERROR_VHD_DRIVE_FOOTER_MISSING syscall.Errno = 0xC03A0001 - ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0002 - ERROR_VHD_DRIVE_FOOTER_CORRUPT syscall.Errno = 0xC03A0003 - ERROR_VHD_FORMAT_UNKNOWN syscall.Errno = 0xC03A0004 - ERROR_VHD_FORMAT_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0005 - ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0006 - ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0007 - ERROR_VHD_SPARSE_HEADER_CORRUPT syscall.Errno = 0xC03A0008 - ERROR_VHD_BLOCK_ALLOCATION_FAILURE syscall.Errno = 0xC03A0009 - ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT syscall.Errno = 0xC03A000A - ERROR_VHD_INVALID_BLOCK_SIZE syscall.Errno = 0xC03A000B - ERROR_VHD_BITMAP_MISMATCH syscall.Errno = 0xC03A000C - ERROR_VHD_PARENT_VHD_NOT_FOUND syscall.Errno = 0xC03A000D - ERROR_VHD_CHILD_PARENT_ID_MISMATCH syscall.Errno = 0xC03A000E - ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH syscall.Errno = 0xC03A000F - ERROR_VHD_METADATA_READ_FAILURE syscall.Errno = 0xC03A0010 - ERROR_VHD_METADATA_WRITE_FAILURE syscall.Errno = 0xC03A0011 - ERROR_VHD_INVALID_SIZE syscall.Errno = 0xC03A0012 - ERROR_VHD_INVALID_FILE_SIZE syscall.Errno = 0xC03A0013 - ERROR_VIRTDISK_PROVIDER_NOT_FOUND syscall.Errno = 0xC03A0014 - ERROR_VIRTDISK_NOT_VIRTUAL_DISK syscall.Errno = 0xC03A0015 - ERROR_VHD_PARENT_VHD_ACCESS_DENIED syscall.Errno = 0xC03A0016 - ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH syscall.Errno = 0xC03A0017 - ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED syscall.Errno = 0xC03A0018 - ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT syscall.Errno = 0xC03A0019 - ERROR_VIRTUAL_DISK_LIMITATION syscall.Errno = 0xC03A001A - ERROR_VHD_INVALID_TYPE syscall.Errno = 0xC03A001B - ERROR_VHD_INVALID_STATE syscall.Errno = 0xC03A001C - ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE syscall.Errno = 0xC03A001D - ERROR_VIRTDISK_DISK_ALREADY_OWNED syscall.Errno = 0xC03A001E - ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE syscall.Errno = 0xC03A001F - ERROR_CTLOG_TRACKING_NOT_INITIALIZED syscall.Errno = 0xC03A0020 - ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE syscall.Errno = 0xC03A0021 - ERROR_CTLOG_VHD_CHANGED_OFFLINE syscall.Errno = 0xC03A0022 - ERROR_CTLOG_INVALID_TRACKING_STATE syscall.Errno = 0xC03A0023 - ERROR_CTLOG_INCONSISTENT_TRACKING_FILE syscall.Errno = 0xC03A0024 - ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA syscall.Errno = 0xC03A0025 - ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0026 - ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0027 - ERROR_VHD_METADATA_FULL syscall.Errno = 0xC03A0028 - ERROR_VHD_INVALID_CHANGE_TRACKING_ID syscall.Errno = 0xC03A0029 - ERROR_VHD_CHANGE_TRACKING_DISABLED syscall.Errno = 0xC03A002A - ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION syscall.Errno = 0xC03A0030 - ERROR_QUERY_STORAGE_ERROR syscall.Errno = 0x803A0001 - HCN_E_NETWORK_NOT_FOUND Handle = 0x803B0001 - HCN_E_ENDPOINT_NOT_FOUND Handle = 0x803B0002 - HCN_E_LAYER_NOT_FOUND Handle = 0x803B0003 - HCN_E_SWITCH_NOT_FOUND Handle = 0x803B0004 - HCN_E_SUBNET_NOT_FOUND Handle = 0x803B0005 - HCN_E_ADAPTER_NOT_FOUND Handle = 0x803B0006 - HCN_E_PORT_NOT_FOUND Handle = 0x803B0007 - HCN_E_POLICY_NOT_FOUND Handle = 0x803B0008 - HCN_E_VFP_PORTSETTING_NOT_FOUND Handle = 0x803B0009 - HCN_E_INVALID_NETWORK Handle = 0x803B000A - HCN_E_INVALID_NETWORK_TYPE Handle = 0x803B000B - HCN_E_INVALID_ENDPOINT Handle = 0x803B000C - HCN_E_INVALID_POLICY Handle = 0x803B000D - HCN_E_INVALID_POLICY_TYPE Handle = 0x803B000E - HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION Handle = 0x803B000F - HCN_E_NETWORK_ALREADY_EXISTS Handle = 0x803B0010 - HCN_E_LAYER_ALREADY_EXISTS Handle = 0x803B0011 - HCN_E_POLICY_ALREADY_EXISTS Handle = 0x803B0012 - HCN_E_PORT_ALREADY_EXISTS Handle = 0x803B0013 - HCN_E_ENDPOINT_ALREADY_ATTACHED Handle = 0x803B0014 - HCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0015 - HCN_E_MAPPING_NOT_SUPPORTED Handle = 0x803B0016 - HCN_E_DEGRADED_OPERATION Handle = 0x803B0017 - HCN_E_SHARED_SWITCH_MODIFICATION Handle = 0x803B0018 - HCN_E_GUID_CONVERSION_FAILURE Handle = 0x803B0019 - HCN_E_REGKEY_FAILURE Handle = 0x803B001A - HCN_E_INVALID_JSON Handle = 0x803B001B - HCN_E_INVALID_JSON_REFERENCE Handle = 0x803B001C - HCN_E_ENDPOINT_SHARING_DISABLED Handle = 0x803B001D - HCN_E_INVALID_IP Handle = 0x803B001E - HCN_E_SWITCH_EXTENSION_NOT_FOUND Handle = 0x803B001F - HCN_E_MANAGER_STOPPED Handle = 0x803B0020 - GCN_E_MODULE_NOT_FOUND Handle = 0x803B0021 - GCN_E_NO_REQUEST_HANDLERS Handle = 0x803B0022 - GCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0023 - GCN_E_RUNTIMEKEYS_FAILED Handle = 0x803B0024 - GCN_E_NETADAPTER_TIMEOUT Handle = 0x803B0025 - GCN_E_NETADAPTER_NOT_FOUND Handle = 0x803B0026 - GCN_E_NETCOMPARTMENT_NOT_FOUND Handle = 0x803B0027 - GCN_E_NETINTERFACE_NOT_FOUND Handle = 0x803B0028 - GCN_E_DEFAULTNAMESPACE_EXISTS Handle = 0x803B0029 - HCN_E_ICS_DISABLED Handle = 0x803B002A - HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS Handle = 0x803B002B - HCN_E_ENTITY_HAS_REFERENCES Handle = 0x803B002C - HCN_E_INVALID_INTERNAL_PORT Handle = 0x803B002D - HCN_E_NAMESPACE_ATTACH_FAILED Handle = 0x803B002E - HCN_E_ADDR_INVALID_OR_RESERVED Handle = 0x803B002F - SDIAG_E_CANCELLED syscall.Errno = 0x803C0100 - SDIAG_E_SCRIPT syscall.Errno = 0x803C0101 - SDIAG_E_POWERSHELL syscall.Errno = 0x803C0102 - SDIAG_E_MANAGEDHOST syscall.Errno = 0x803C0103 - SDIAG_E_NOVERIFIER syscall.Errno = 0x803C0104 - SDIAG_S_CANNOTRUN syscall.Errno = 0x003C0105 - SDIAG_E_DISABLED syscall.Errno = 0x803C0106 - SDIAG_E_TRUST syscall.Errno = 0x803C0107 - SDIAG_E_CANNOTRUN syscall.Errno = 0x803C0108 - SDIAG_E_VERSION syscall.Errno = 0x803C0109 - SDIAG_E_RESOURCE syscall.Errno = 0x803C010A - SDIAG_E_ROOTCAUSE syscall.Errno = 0x803C010B - WPN_E_CHANNEL_CLOSED Handle = 0x803E0100 - WPN_E_CHANNEL_REQUEST_NOT_COMPLETE Handle = 0x803E0101 - WPN_E_INVALID_APP Handle = 0x803E0102 - WPN_E_OUTSTANDING_CHANNEL_REQUEST Handle = 0x803E0103 - WPN_E_DUPLICATE_CHANNEL Handle = 0x803E0104 - WPN_E_PLATFORM_UNAVAILABLE Handle = 0x803E0105 - WPN_E_NOTIFICATION_POSTED Handle = 0x803E0106 - WPN_E_NOTIFICATION_HIDDEN Handle = 0x803E0107 - WPN_E_NOTIFICATION_NOT_POSTED Handle = 0x803E0108 - WPN_E_CLOUD_DISABLED Handle = 0x803E0109 - WPN_E_CLOUD_INCAPABLE Handle = 0x803E0110 - WPN_E_CLOUD_AUTH_UNAVAILABLE Handle = 0x803E011A - WPN_E_CLOUD_SERVICE_UNAVAILABLE Handle = 0x803E011B - WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION Handle = 0x803E011C - WPN_E_NOTIFICATION_DISABLED Handle = 0x803E0111 - WPN_E_NOTIFICATION_INCAPABLE Handle = 0x803E0112 - WPN_E_INTERNET_INCAPABLE Handle = 0x803E0113 - WPN_E_NOTIFICATION_TYPE_DISABLED Handle = 0x803E0114 - WPN_E_NOTIFICATION_SIZE Handle = 0x803E0115 - WPN_E_TAG_SIZE Handle = 0x803E0116 - WPN_E_ACCESS_DENIED Handle = 0x803E0117 - WPN_E_DUPLICATE_REGISTRATION Handle = 0x803E0118 - WPN_E_PUSH_NOTIFICATION_INCAPABLE Handle = 0x803E0119 - WPN_E_DEV_ID_SIZE Handle = 0x803E0120 - WPN_E_TAG_ALPHANUMERIC Handle = 0x803E012A - WPN_E_INVALID_HTTP_STATUS_CODE Handle = 0x803E012B - WPN_E_OUT_OF_SESSION Handle = 0x803E0200 - WPN_E_POWER_SAVE Handle = 0x803E0201 - WPN_E_IMAGE_NOT_FOUND_IN_CACHE Handle = 0x803E0202 - WPN_E_ALL_URL_NOT_COMPLETED Handle = 0x803E0203 - WPN_E_INVALID_CLOUD_IMAGE Handle = 0x803E0204 - WPN_E_NOTIFICATION_ID_MATCHED Handle = 0x803E0205 - WPN_E_CALLBACK_ALREADY_REGISTERED Handle = 0x803E0206 - WPN_E_TOAST_NOTIFICATION_DROPPED Handle = 0x803E0207 - WPN_E_STORAGE_LOCKED Handle = 0x803E0208 - WPN_E_GROUP_SIZE Handle = 0x803E0209 - WPN_E_GROUP_ALPHANUMERIC Handle = 0x803E020A - WPN_E_CLOUD_DISABLED_FOR_APP Handle = 0x803E020B - E_MBN_CONTEXT_NOT_ACTIVATED Handle = 0x80548201 - E_MBN_BAD_SIM Handle = 0x80548202 - E_MBN_DATA_CLASS_NOT_AVAILABLE Handle = 0x80548203 - E_MBN_INVALID_ACCESS_STRING Handle = 0x80548204 - E_MBN_MAX_ACTIVATED_CONTEXTS Handle = 0x80548205 - E_MBN_PACKET_SVC_DETACHED Handle = 0x80548206 - E_MBN_PROVIDER_NOT_VISIBLE Handle = 0x80548207 - E_MBN_RADIO_POWER_OFF Handle = 0x80548208 - E_MBN_SERVICE_NOT_ACTIVATED Handle = 0x80548209 - E_MBN_SIM_NOT_INSERTED Handle = 0x8054820A - E_MBN_VOICE_CALL_IN_PROGRESS Handle = 0x8054820B - E_MBN_INVALID_CACHE Handle = 0x8054820C - E_MBN_NOT_REGISTERED Handle = 0x8054820D - E_MBN_PROVIDERS_NOT_FOUND Handle = 0x8054820E - E_MBN_PIN_NOT_SUPPORTED Handle = 0x8054820F - E_MBN_PIN_REQUIRED Handle = 0x80548210 - E_MBN_PIN_DISABLED Handle = 0x80548211 - E_MBN_FAILURE Handle = 0x80548212 - E_MBN_INVALID_PROFILE Handle = 0x80548218 - E_MBN_DEFAULT_PROFILE_EXIST Handle = 0x80548219 - E_MBN_SMS_ENCODING_NOT_SUPPORTED Handle = 0x80548220 - E_MBN_SMS_FILTER_NOT_SUPPORTED Handle = 0x80548221 - E_MBN_SMS_INVALID_MEMORY_INDEX Handle = 0x80548222 - E_MBN_SMS_LANG_NOT_SUPPORTED Handle = 0x80548223 - E_MBN_SMS_MEMORY_FAILURE Handle = 0x80548224 - E_MBN_SMS_NETWORK_TIMEOUT Handle = 0x80548225 - E_MBN_SMS_UNKNOWN_SMSC_ADDRESS Handle = 0x80548226 - E_MBN_SMS_FORMAT_NOT_SUPPORTED Handle = 0x80548227 - E_MBN_SMS_OPERATION_NOT_ALLOWED Handle = 0x80548228 - E_MBN_SMS_MEMORY_FULL Handle = 0x80548229 - PEER_E_IPV6_NOT_INSTALLED Handle = 0x80630001 - PEER_E_NOT_INITIALIZED Handle = 0x80630002 - PEER_E_CANNOT_START_SERVICE Handle = 0x80630003 - PEER_E_NOT_LICENSED Handle = 0x80630004 - PEER_E_INVALID_GRAPH Handle = 0x80630010 - PEER_E_DBNAME_CHANGED Handle = 0x80630011 - PEER_E_DUPLICATE_GRAPH Handle = 0x80630012 - PEER_E_GRAPH_NOT_READY Handle = 0x80630013 - PEER_E_GRAPH_SHUTTING_DOWN Handle = 0x80630014 - PEER_E_GRAPH_IN_USE Handle = 0x80630015 - PEER_E_INVALID_DATABASE Handle = 0x80630016 - PEER_E_TOO_MANY_ATTRIBUTES Handle = 0x80630017 - PEER_E_CONNECTION_NOT_FOUND Handle = 0x80630103 - PEER_E_CONNECT_SELF Handle = 0x80630106 - PEER_E_ALREADY_LISTENING Handle = 0x80630107 - PEER_E_NODE_NOT_FOUND Handle = 0x80630108 - PEER_E_CONNECTION_FAILED Handle = 0x80630109 - PEER_E_CONNECTION_NOT_AUTHENTICATED Handle = 0x8063010A - PEER_E_CONNECTION_REFUSED Handle = 0x8063010B - PEER_E_CLASSIFIER_TOO_LONG Handle = 0x80630201 - PEER_E_TOO_MANY_IDENTITIES Handle = 0x80630202 - PEER_E_NO_KEY_ACCESS Handle = 0x80630203 - PEER_E_GROUPS_EXIST Handle = 0x80630204 - PEER_E_RECORD_NOT_FOUND Handle = 0x80630301 - PEER_E_DATABASE_ACCESSDENIED Handle = 0x80630302 - PEER_E_DBINITIALIZATION_FAILED Handle = 0x80630303 - PEER_E_MAX_RECORD_SIZE_EXCEEDED Handle = 0x80630304 - PEER_E_DATABASE_ALREADY_PRESENT Handle = 0x80630305 - PEER_E_DATABASE_NOT_PRESENT Handle = 0x80630306 - PEER_E_IDENTITY_NOT_FOUND Handle = 0x80630401 - PEER_E_EVENT_HANDLE_NOT_FOUND Handle = 0x80630501 - PEER_E_INVALID_SEARCH Handle = 0x80630601 - PEER_E_INVALID_ATTRIBUTES Handle = 0x80630602 - PEER_E_INVITATION_NOT_TRUSTED Handle = 0x80630701 - PEER_E_CHAIN_TOO_LONG Handle = 0x80630703 - PEER_E_INVALID_TIME_PERIOD Handle = 0x80630705 - PEER_E_CIRCULAR_CHAIN_DETECTED Handle = 0x80630706 - PEER_E_CERT_STORE_CORRUPTED Handle = 0x80630801 - PEER_E_NO_CLOUD Handle = 0x80631001 - PEER_E_CLOUD_NAME_AMBIGUOUS Handle = 0x80631005 - PEER_E_INVALID_RECORD Handle = 0x80632010 - PEER_E_NOT_AUTHORIZED Handle = 0x80632020 - PEER_E_PASSWORD_DOES_NOT_MEET_POLICY Handle = 0x80632021 - PEER_E_DEFERRED_VALIDATION Handle = 0x80632030 - PEER_E_INVALID_GROUP_PROPERTIES Handle = 0x80632040 - PEER_E_INVALID_PEER_NAME Handle = 0x80632050 - PEER_E_INVALID_CLASSIFIER Handle = 0x80632060 - PEER_E_INVALID_FRIENDLY_NAME Handle = 0x80632070 - PEER_E_INVALID_ROLE_PROPERTY Handle = 0x80632071 - PEER_E_INVALID_CLASSIFIER_PROPERTY Handle = 0x80632072 - PEER_E_INVALID_RECORD_EXPIRATION Handle = 0x80632080 - PEER_E_INVALID_CREDENTIAL_INFO Handle = 0x80632081 - PEER_E_INVALID_CREDENTIAL Handle = 0x80632082 - PEER_E_INVALID_RECORD_SIZE Handle = 0x80632083 - PEER_E_UNSUPPORTED_VERSION Handle = 0x80632090 - PEER_E_GROUP_NOT_READY Handle = 0x80632091 - PEER_E_GROUP_IN_USE Handle = 0x80632092 - PEER_E_INVALID_GROUP Handle = 0x80632093 - PEER_E_NO_MEMBERS_FOUND Handle = 0x80632094 - PEER_E_NO_MEMBER_CONNECTIONS Handle = 0x80632095 - PEER_E_UNABLE_TO_LISTEN Handle = 0x80632096 - PEER_E_IDENTITY_DELETED Handle = 0x806320A0 - PEER_E_SERVICE_NOT_AVAILABLE Handle = 0x806320A1 - PEER_E_CONTACT_NOT_FOUND Handle = 0x80636001 - PEER_S_GRAPH_DATA_CREATED Handle = 0x00630001 - PEER_S_NO_EVENT_DATA Handle = 0x00630002 - PEER_S_ALREADY_CONNECTED Handle = 0x00632000 - PEER_S_SUBSCRIPTION_EXISTS Handle = 0x00636000 - PEER_S_NO_CONNECTIVITY Handle = 0x00630005 - PEER_S_ALREADY_A_MEMBER Handle = 0x00630006 - PEER_E_CANNOT_CONVERT_PEER_NAME Handle = 0x80634001 - PEER_E_INVALID_PEER_HOST_NAME Handle = 0x80634002 - PEER_E_NO_MORE Handle = 0x80634003 - PEER_E_PNRP_DUPLICATE_PEER_NAME Handle = 0x80634005 - PEER_E_INVITE_CANCELLED Handle = 0x80637000 - PEER_E_INVITE_RESPONSE_NOT_AVAILABLE Handle = 0x80637001 - PEER_E_NOT_SIGNED_IN Handle = 0x80637003 - PEER_E_PRIVACY_DECLINED Handle = 0x80637004 - PEER_E_TIMEOUT Handle = 0x80637005 - PEER_E_INVALID_ADDRESS Handle = 0x80637007 - PEER_E_FW_EXCEPTION_DISABLED Handle = 0x80637008 - PEER_E_FW_BLOCKED_BY_POLICY Handle = 0x80637009 - PEER_E_FW_BLOCKED_BY_SHIELDS_UP Handle = 0x8063700A - PEER_E_FW_DECLINED Handle = 0x8063700B - UI_E_CREATE_FAILED Handle = 0x802A0001 - UI_E_SHUTDOWN_CALLED Handle = 0x802A0002 - UI_E_ILLEGAL_REENTRANCY Handle = 0x802A0003 - UI_E_OBJECT_SEALED Handle = 0x802A0004 - UI_E_VALUE_NOT_SET Handle = 0x802A0005 - UI_E_VALUE_NOT_DETERMINED Handle = 0x802A0006 - UI_E_INVALID_OUTPUT Handle = 0x802A0007 - UI_E_BOOLEAN_EXPECTED Handle = 0x802A0008 - UI_E_DIFFERENT_OWNER Handle = 0x802A0009 - UI_E_AMBIGUOUS_MATCH Handle = 0x802A000A - UI_E_FP_OVERFLOW Handle = 0x802A000B - UI_E_WRONG_THREAD Handle = 0x802A000C - UI_E_STORYBOARD_ACTIVE Handle = 0x802A0101 - UI_E_STORYBOARD_NOT_PLAYING Handle = 0x802A0102 - UI_E_START_KEYFRAME_AFTER_END Handle = 0x802A0103 - UI_E_END_KEYFRAME_NOT_DETERMINED Handle = 0x802A0104 - UI_E_LOOPS_OVERLAP Handle = 0x802A0105 - UI_E_TRANSITION_ALREADY_USED Handle = 0x802A0106 - UI_E_TRANSITION_NOT_IN_STORYBOARD Handle = 0x802A0107 - UI_E_TRANSITION_ECLIPSED Handle = 0x802A0108 - UI_E_TIME_BEFORE_LAST_UPDATE Handle = 0x802A0109 - UI_E_TIMER_CLIENT_ALREADY_CONNECTED Handle = 0x802A010A - UI_E_INVALID_DIMENSION Handle = 0x802A010B - UI_E_PRIMITIVE_OUT_OF_BOUNDS Handle = 0x802A010C - UI_E_WINDOW_CLOSED Handle = 0x802A0201 - E_BLUETOOTH_ATT_INVALID_HANDLE Handle = 0x80650001 - E_BLUETOOTH_ATT_READ_NOT_PERMITTED Handle = 0x80650002 - E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED Handle = 0x80650003 - E_BLUETOOTH_ATT_INVALID_PDU Handle = 0x80650004 - E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION Handle = 0x80650005 - E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED Handle = 0x80650006 - E_BLUETOOTH_ATT_INVALID_OFFSET Handle = 0x80650007 - E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION Handle = 0x80650008 - E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL Handle = 0x80650009 - E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND Handle = 0x8065000A - E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG Handle = 0x8065000B - E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE Handle = 0x8065000C - E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH Handle = 0x8065000D - E_BLUETOOTH_ATT_UNLIKELY Handle = 0x8065000E - E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION Handle = 0x8065000F - E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE Handle = 0x80650010 - E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES Handle = 0x80650011 - E_BLUETOOTH_ATT_UNKNOWN_ERROR Handle = 0x80651000 - E_AUDIO_ENGINE_NODE_NOT_FOUND Handle = 0x80660001 - E_HDAUDIO_EMPTY_CONNECTION_LIST Handle = 0x80660002 - E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED Handle = 0x80660003 - E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED Handle = 0x80660004 - E_HDAUDIO_NULL_LINKED_LIST_ENTRY Handle = 0x80660005 - STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE Handle = 0x80670001 - STATEREPOSITORY_E_STATEMENT_INPROGRESS Handle = 0x80670002 - STATEREPOSITORY_E_CONFIGURATION_INVALID Handle = 0x80670003 - STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION Handle = 0x80670004 - STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED Handle = 0x80670005 - STATEREPOSITORY_E_BLOCKED Handle = 0x80670006 - STATEREPOSITORY_E_BUSY_RETRY Handle = 0x80670007 - STATEREPOSITORY_E_BUSY_RECOVERY_RETRY Handle = 0x80670008 - STATEREPOSITORY_E_LOCKED_RETRY Handle = 0x80670009 - STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY Handle = 0x8067000A - STATEREPOSITORY_E_TRANSACTION_REQUIRED Handle = 0x8067000B - STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED Handle = 0x8067000C - STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED Handle = 0x8067000D - STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED Handle = 0x8067000E - STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED Handle = 0x8067000F - STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS Handle = 0x80670010 - STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED Handle = 0x80670011 - STATEREPOSITORY_ERROR_CACHE_CORRUPTED Handle = 0x80670012 - STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED Handle = 0x00670013 - STATEREPOSITORY_TRANSACTION_IN_PROGRESS Handle = 0x00670014 - ERROR_SPACES_POOL_WAS_DELETED Handle = 0x00E70001 - ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID Handle = 0x80E70001 - ERROR_SPACES_INTERNAL_ERROR Handle = 0x80E70002 - ERROR_SPACES_RESILIENCY_TYPE_INVALID Handle = 0x80E70003 - ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID Handle = 0x80E70004 - ERROR_SPACES_DRIVE_REDUNDANCY_INVALID Handle = 0x80E70006 - ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID Handle = 0x80E70007 - ERROR_SPACES_PARITY_LAYOUT_INVALID Handle = 0x80E70008 - ERROR_SPACES_INTERLEAVE_LENGTH_INVALID Handle = 0x80E70009 - ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID Handle = 0x80E7000A - ERROR_SPACES_NOT_ENOUGH_DRIVES Handle = 0x80E7000B - ERROR_SPACES_EXTENDED_ERROR Handle = 0x80E7000C - ERROR_SPACES_PROVISIONING_TYPE_INVALID Handle = 0x80E7000D - ERROR_SPACES_ALLOCATION_SIZE_INVALID Handle = 0x80E7000E - ERROR_SPACES_ENCLOSURE_AWARE_INVALID Handle = 0x80E7000F - ERROR_SPACES_WRITE_CACHE_SIZE_INVALID Handle = 0x80E70010 - ERROR_SPACES_NUMBER_OF_GROUPS_INVALID Handle = 0x80E70011 - ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID Handle = 0x80E70012 - ERROR_SPACES_ENTRY_INCOMPLETE Handle = 0x80E70013 - ERROR_SPACES_ENTRY_INVALID Handle = 0x80E70014 - ERROR_VOLSNAP_BOOTFILE_NOT_VALID Handle = 0x80820001 - ERROR_VOLSNAP_ACTIVATION_TIMEOUT Handle = 0x80820002 - ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME Handle = 0x80830001 - ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS Handle = 0x80830002 - ERROR_TIERING_STORAGE_TIER_NOT_FOUND Handle = 0x80830003 - ERROR_TIERING_INVALID_FILE_ID Handle = 0x80830004 - ERROR_TIERING_WRONG_CLUSTER_NODE Handle = 0x80830005 - ERROR_TIERING_ALREADY_PROCESSING Handle = 0x80830006 - ERROR_TIERING_CANNOT_PIN_OBJECT Handle = 0x80830007 - ERROR_TIERING_FILE_IS_NOT_PINNED Handle = 0x80830008 - ERROR_NOT_A_TIERED_VOLUME Handle = 0x80830009 - ERROR_ATTRIBUTE_NOT_PRESENT Handle = 0x8083000A - ERROR_SECCORE_INVALID_COMMAND Handle = 0xC0E80000 - ERROR_NO_APPLICABLE_APP_LICENSES_FOUND Handle = 0xC0EA0001 - ERROR_CLIP_LICENSE_NOT_FOUND Handle = 0xC0EA0002 - ERROR_CLIP_DEVICE_LICENSE_MISSING Handle = 0xC0EA0003 - ERROR_CLIP_LICENSE_INVALID_SIGNATURE Handle = 0xC0EA0004 - ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID Handle = 0xC0EA0005 - ERROR_CLIP_LICENSE_EXPIRED Handle = 0xC0EA0006 - ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE Handle = 0xC0EA0007 - ERROR_CLIP_LICENSE_NOT_SIGNED Handle = 0xC0EA0008 - ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE Handle = 0xC0EA0009 - ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH Handle = 0xC0EA000A - DXGI_STATUS_OCCLUDED Handle = 0x087A0001 - DXGI_STATUS_CLIPPED Handle = 0x087A0002 - DXGI_STATUS_NO_REDIRECTION Handle = 0x087A0004 - DXGI_STATUS_NO_DESKTOP_ACCESS Handle = 0x087A0005 - DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x087A0006 - DXGI_STATUS_MODE_CHANGED Handle = 0x087A0007 - DXGI_STATUS_MODE_CHANGE_IN_PROGRESS Handle = 0x087A0008 - DXGI_ERROR_INVALID_CALL Handle = 0x887A0001 - DXGI_ERROR_NOT_FOUND Handle = 0x887A0002 - DXGI_ERROR_MORE_DATA Handle = 0x887A0003 - DXGI_ERROR_UNSUPPORTED Handle = 0x887A0004 - DXGI_ERROR_DEVICE_REMOVED Handle = 0x887A0005 - DXGI_ERROR_DEVICE_HUNG Handle = 0x887A0006 - DXGI_ERROR_DEVICE_RESET Handle = 0x887A0007 - DXGI_ERROR_WAS_STILL_DRAWING Handle = 0x887A000A - DXGI_ERROR_FRAME_STATISTICS_DISJOINT Handle = 0x887A000B - DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x887A000C - DXGI_ERROR_DRIVER_INTERNAL_ERROR Handle = 0x887A0020 - DXGI_ERROR_NONEXCLUSIVE Handle = 0x887A0021 - DXGI_ERROR_NOT_CURRENTLY_AVAILABLE Handle = 0x887A0022 - DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED Handle = 0x887A0023 - DXGI_ERROR_REMOTE_OUTOFMEMORY Handle = 0x887A0024 - DXGI_ERROR_ACCESS_LOST Handle = 0x887A0026 - DXGI_ERROR_WAIT_TIMEOUT Handle = 0x887A0027 - DXGI_ERROR_SESSION_DISCONNECTED Handle = 0x887A0028 - DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE Handle = 0x887A0029 - DXGI_ERROR_CANNOT_PROTECT_CONTENT Handle = 0x887A002A - DXGI_ERROR_ACCESS_DENIED Handle = 0x887A002B - DXGI_ERROR_NAME_ALREADY_EXISTS Handle = 0x887A002C - DXGI_ERROR_SDK_COMPONENT_MISSING Handle = 0x887A002D - DXGI_ERROR_NOT_CURRENT Handle = 0x887A002E - DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY Handle = 0x887A0030 - DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION Handle = 0x887A0031 - DXGI_ERROR_NON_COMPOSITED_UI Handle = 0x887A0032 - DXGI_STATUS_UNOCCLUDED Handle = 0x087A0009 - DXGI_STATUS_DDA_WAS_STILL_DRAWING Handle = 0x087A000A - DXGI_ERROR_MODE_CHANGE_IN_PROGRESS Handle = 0x887A0025 - DXGI_STATUS_PRESENT_REQUIRED Handle = 0x087A002F - DXGI_ERROR_CACHE_CORRUPT Handle = 0x887A0033 - DXGI_ERROR_CACHE_FULL Handle = 0x887A0034 - DXGI_ERROR_CACHE_HASH_COLLISION Handle = 0x887A0035 - DXGI_ERROR_ALREADY_EXISTS Handle = 0x887A0036 - DXGI_DDI_ERR_WASSTILLDRAWING Handle = 0x887B0001 - DXGI_DDI_ERR_UNSUPPORTED Handle = 0x887B0002 - DXGI_DDI_ERR_NONEXCLUSIVE Handle = 0x887B0003 - D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x88790001 - D3D10_ERROR_FILE_NOT_FOUND Handle = 0x88790002 - D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x887C0001 - D3D11_ERROR_FILE_NOT_FOUND Handle = 0x887C0002 - D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS Handle = 0x887C0003 - D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD Handle = 0x887C0004 - D3D12_ERROR_ADAPTER_NOT_FOUND Handle = 0x887E0001 - D3D12_ERROR_DRIVER_VERSION_MISMATCH Handle = 0x887E0002 - D2DERR_WRONG_STATE Handle = 0x88990001 - D2DERR_NOT_INITIALIZED Handle = 0x88990002 - D2DERR_UNSUPPORTED_OPERATION Handle = 0x88990003 - D2DERR_SCANNER_FAILED Handle = 0x88990004 - D2DERR_SCREEN_ACCESS_DENIED Handle = 0x88990005 - D2DERR_DISPLAY_STATE_INVALID Handle = 0x88990006 - D2DERR_ZERO_VECTOR Handle = 0x88990007 - D2DERR_INTERNAL_ERROR Handle = 0x88990008 - D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED Handle = 0x88990009 - D2DERR_INVALID_CALL Handle = 0x8899000A - D2DERR_NO_HARDWARE_DEVICE Handle = 0x8899000B - D2DERR_RECREATE_TARGET Handle = 0x8899000C - D2DERR_TOO_MANY_SHADER_ELEMENTS Handle = 0x8899000D - D2DERR_SHADER_COMPILE_FAILED Handle = 0x8899000E - D2DERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8899000F - D2DERR_UNSUPPORTED_VERSION Handle = 0x88990010 - D2DERR_BAD_NUMBER Handle = 0x88990011 - D2DERR_WRONG_FACTORY Handle = 0x88990012 - D2DERR_LAYER_ALREADY_IN_USE Handle = 0x88990013 - D2DERR_POP_CALL_DID_NOT_MATCH_PUSH Handle = 0x88990014 - D2DERR_WRONG_RESOURCE_DOMAIN Handle = 0x88990015 - D2DERR_PUSH_POP_UNBALANCED Handle = 0x88990016 - D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT Handle = 0x88990017 - D2DERR_INCOMPATIBLE_BRUSH_TYPES Handle = 0x88990018 - D2DERR_WIN32_ERROR Handle = 0x88990019 - D2DERR_TARGET_NOT_GDI_COMPATIBLE Handle = 0x8899001A - D2DERR_TEXT_EFFECT_IS_WRONG_TYPE Handle = 0x8899001B - D2DERR_TEXT_RENDERER_NOT_RELEASED Handle = 0x8899001C - D2DERR_EXCEEDS_MAX_BITMAP_SIZE Handle = 0x8899001D - D2DERR_INVALID_GRAPH_CONFIGURATION Handle = 0x8899001E - D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION Handle = 0x8899001F - D2DERR_CYCLIC_GRAPH Handle = 0x88990020 - D2DERR_BITMAP_CANNOT_DRAW Handle = 0x88990021 - D2DERR_OUTSTANDING_BITMAP_REFERENCES Handle = 0x88990022 - D2DERR_ORIGINAL_TARGET_NOT_BOUND Handle = 0x88990023 - D2DERR_INVALID_TARGET Handle = 0x88990024 - D2DERR_BITMAP_BOUND_AS_TARGET Handle = 0x88990025 - D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES Handle = 0x88990026 - D2DERR_INTERMEDIATE_TOO_LARGE Handle = 0x88990027 - D2DERR_EFFECT_IS_NOT_REGISTERED Handle = 0x88990028 - D2DERR_INVALID_PROPERTY Handle = 0x88990029 - D2DERR_NO_SUBPROPERTIES Handle = 0x8899002A - D2DERR_PRINT_JOB_CLOSED Handle = 0x8899002B - D2DERR_PRINT_FORMAT_NOT_SUPPORTED Handle = 0x8899002C - D2DERR_TOO_MANY_TRANSFORM_INPUTS Handle = 0x8899002D - D2DERR_INVALID_GLYPH_IMAGE Handle = 0x8899002E - DWRITE_E_FILEFORMAT Handle = 0x88985000 - DWRITE_E_UNEXPECTED Handle = 0x88985001 - DWRITE_E_NOFONT Handle = 0x88985002 - DWRITE_E_FILENOTFOUND Handle = 0x88985003 - DWRITE_E_FILEACCESS Handle = 0x88985004 - DWRITE_E_FONTCOLLECTIONOBSOLETE Handle = 0x88985005 - DWRITE_E_ALREADYREGISTERED Handle = 0x88985006 - DWRITE_E_CACHEFORMAT Handle = 0x88985007 - DWRITE_E_CACHEVERSION Handle = 0x88985008 - DWRITE_E_UNSUPPORTEDOPERATION Handle = 0x88985009 - DWRITE_E_TEXTRENDERERINCOMPATIBLE Handle = 0x8898500A - DWRITE_E_FLOWDIRECTIONCONFLICTS Handle = 0x8898500B - DWRITE_E_NOCOLOR Handle = 0x8898500C - DWRITE_E_REMOTEFONT Handle = 0x8898500D - DWRITE_E_DOWNLOADCANCELLED Handle = 0x8898500E - DWRITE_E_DOWNLOADFAILED Handle = 0x8898500F - DWRITE_E_TOOMANYDOWNLOADS Handle = 0x88985010 - WINCODEC_ERR_WRONGSTATE Handle = 0x88982F04 - WINCODEC_ERR_VALUEOUTOFRANGE Handle = 0x88982F05 - WINCODEC_ERR_UNKNOWNIMAGEFORMAT Handle = 0x88982F07 - WINCODEC_ERR_UNSUPPORTEDVERSION Handle = 0x88982F0B - WINCODEC_ERR_NOTINITIALIZED Handle = 0x88982F0C - WINCODEC_ERR_ALREADYLOCKED Handle = 0x88982F0D - WINCODEC_ERR_PROPERTYNOTFOUND Handle = 0x88982F40 - WINCODEC_ERR_PROPERTYNOTSUPPORTED Handle = 0x88982F41 - WINCODEC_ERR_PROPERTYSIZE Handle = 0x88982F42 - WINCODEC_ERR_CODECPRESENT Handle = 0x88982F43 - WINCODEC_ERR_CODECNOTHUMBNAIL Handle = 0x88982F44 - WINCODEC_ERR_PALETTEUNAVAILABLE Handle = 0x88982F45 - WINCODEC_ERR_CODECTOOMANYSCANLINES Handle = 0x88982F46 - WINCODEC_ERR_INTERNALERROR Handle = 0x88982F48 - WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS Handle = 0x88982F49 - WINCODEC_ERR_COMPONENTNOTFOUND Handle = 0x88982F50 - WINCODEC_ERR_IMAGESIZEOUTOFRANGE Handle = 0x88982F51 - WINCODEC_ERR_TOOMUCHMETADATA Handle = 0x88982F52 - WINCODEC_ERR_BADIMAGE Handle = 0x88982F60 - WINCODEC_ERR_BADHEADER Handle = 0x88982F61 - WINCODEC_ERR_FRAMEMISSING Handle = 0x88982F62 - WINCODEC_ERR_BADMETADATAHEADER Handle = 0x88982F63 - WINCODEC_ERR_BADSTREAMDATA Handle = 0x88982F70 - WINCODEC_ERR_STREAMWRITE Handle = 0x88982F71 - WINCODEC_ERR_STREAMREAD Handle = 0x88982F72 - WINCODEC_ERR_STREAMNOTAVAILABLE Handle = 0x88982F73 - WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT Handle = 0x88982F80 - WINCODEC_ERR_UNSUPPORTEDOPERATION Handle = 0x88982F81 - WINCODEC_ERR_INVALIDREGISTRATION Handle = 0x88982F8A - WINCODEC_ERR_COMPONENTINITIALIZEFAILURE Handle = 0x88982F8B - WINCODEC_ERR_INSUFFICIENTBUFFER Handle = 0x88982F8C - WINCODEC_ERR_DUPLICATEMETADATAPRESENT Handle = 0x88982F8D - WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE Handle = 0x88982F8E - WINCODEC_ERR_UNEXPECTEDSIZE Handle = 0x88982F8F - WINCODEC_ERR_INVALIDQUERYREQUEST Handle = 0x88982F90 - WINCODEC_ERR_UNEXPECTEDMETADATATYPE Handle = 0x88982F91 - WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT Handle = 0x88982F92 - WINCODEC_ERR_INVALIDQUERYCHARACTER Handle = 0x88982F93 - WINCODEC_ERR_WIN32ERROR Handle = 0x88982F94 - WINCODEC_ERR_INVALIDPROGRESSIVELEVEL Handle = 0x88982F95 - WINCODEC_ERR_INVALIDJPEGSCANINDEX Handle = 0x88982F96 - MILERR_OBJECTBUSY Handle = 0x88980001 - MILERR_INSUFFICIENTBUFFER Handle = 0x88980002 - MILERR_WIN32ERROR Handle = 0x88980003 - MILERR_SCANNER_FAILED Handle = 0x88980004 - MILERR_SCREENACCESSDENIED Handle = 0x88980005 - MILERR_DISPLAYSTATEINVALID Handle = 0x88980006 - MILERR_NONINVERTIBLEMATRIX Handle = 0x88980007 - MILERR_ZEROVECTOR Handle = 0x88980008 - MILERR_TERMINATED Handle = 0x88980009 - MILERR_BADNUMBER Handle = 0x8898000A - MILERR_INTERNALERROR Handle = 0x88980080 - MILERR_DISPLAYFORMATNOTSUPPORTED Handle = 0x88980084 - MILERR_INVALIDCALL Handle = 0x88980085 - MILERR_ALREADYLOCKED Handle = 0x88980086 - MILERR_NOTLOCKED Handle = 0x88980087 - MILERR_DEVICECANNOTRENDERTEXT Handle = 0x88980088 - MILERR_GLYPHBITMAPMISSED Handle = 0x88980089 - MILERR_MALFORMEDGLYPHCACHE Handle = 0x8898008A - MILERR_GENERIC_IGNORE Handle = 0x8898008B - MILERR_MALFORMED_GUIDELINE_DATA Handle = 0x8898008C - MILERR_NO_HARDWARE_DEVICE Handle = 0x8898008D - MILERR_NEED_RECREATE_AND_PRESENT Handle = 0x8898008E - MILERR_ALREADY_INITIALIZED Handle = 0x8898008F - MILERR_MISMATCHED_SIZE Handle = 0x88980090 - MILERR_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x88980091 - MILERR_REMOTING_NOT_SUPPORTED Handle = 0x88980092 - MILERR_QUEUED_PRESENT_NOT_SUPPORTED Handle = 0x88980093 - MILERR_NOT_QUEUING_PRESENTS Handle = 0x88980094 - MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER Handle = 0x88980095 - MILERR_TOOMANYSHADERELEMNTS Handle = 0x88980096 - MILERR_MROW_READLOCK_FAILED Handle = 0x88980097 - MILERR_MROW_UPDATE_FAILED Handle = 0x88980098 - MILERR_SHADER_COMPILE_FAILED Handle = 0x88980099 - MILERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8898009A - MILERR_QPC_TIME_WENT_BACKWARD Handle = 0x8898009B - MILERR_DXGI_ENUMERATION_OUT_OF_SYNC Handle = 0x8898009D - MILERR_ADAPTER_NOT_FOUND Handle = 0x8898009E - MILERR_COLORSPACE_NOT_SUPPORTED Handle = 0x8898009F - MILERR_PREFILTER_NOT_SUPPORTED Handle = 0x889800A0 - MILERR_DISPLAYID_ACCESS_DENIED Handle = 0x889800A1 - UCEERR_INVALIDPACKETHEADER Handle = 0x88980400 - UCEERR_UNKNOWNPACKET Handle = 0x88980401 - UCEERR_ILLEGALPACKET Handle = 0x88980402 - UCEERR_MALFORMEDPACKET Handle = 0x88980403 - UCEERR_ILLEGALHANDLE Handle = 0x88980404 - UCEERR_HANDLELOOKUPFAILED Handle = 0x88980405 - UCEERR_RENDERTHREADFAILURE Handle = 0x88980406 - UCEERR_CTXSTACKFRSTTARGETNULL Handle = 0x88980407 - UCEERR_CONNECTIONIDLOOKUPFAILED Handle = 0x88980408 - UCEERR_BLOCKSFULL Handle = 0x88980409 - UCEERR_MEMORYFAILURE Handle = 0x8898040A - UCEERR_PACKETRECORDOUTOFRANGE Handle = 0x8898040B - UCEERR_ILLEGALRECORDTYPE Handle = 0x8898040C - UCEERR_OUTOFHANDLES Handle = 0x8898040D - UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED Handle = 0x8898040E - UCEERR_NO_MULTIPLE_WORKER_THREADS Handle = 0x8898040F - UCEERR_REMOTINGNOTSUPPORTED Handle = 0x88980410 - UCEERR_MISSINGENDCOMMAND Handle = 0x88980411 - UCEERR_MISSINGBEGINCOMMAND Handle = 0x88980412 - UCEERR_CHANNELSYNCTIMEDOUT Handle = 0x88980413 - UCEERR_CHANNELSYNCABANDONED Handle = 0x88980414 - UCEERR_UNSUPPORTEDTRANSPORTVERSION Handle = 0x88980415 - UCEERR_TRANSPORTUNAVAILABLE Handle = 0x88980416 - UCEERR_FEEDBACK_UNSUPPORTED Handle = 0x88980417 - UCEERR_COMMANDTRANSPORTDENIED Handle = 0x88980418 - UCEERR_GRAPHICSSTREAMUNAVAILABLE Handle = 0x88980419 - UCEERR_GRAPHICSSTREAMALREADYOPEN Handle = 0x88980420 - UCEERR_TRANSPORTDISCONNECTED Handle = 0x88980421 - UCEERR_TRANSPORTOVERLOADED Handle = 0x88980422 - UCEERR_PARTITION_ZOMBIED Handle = 0x88980423 - MILAVERR_NOCLOCK Handle = 0x88980500 - MILAVERR_NOMEDIATYPE Handle = 0x88980501 - MILAVERR_NOVIDEOMIXER Handle = 0x88980502 - MILAVERR_NOVIDEOPRESENTER Handle = 0x88980503 - MILAVERR_NOREADYFRAMES Handle = 0x88980504 - MILAVERR_MODULENOTLOADED Handle = 0x88980505 - MILAVERR_WMPFACTORYNOTREGISTERED Handle = 0x88980506 - MILAVERR_INVALIDWMPVERSION Handle = 0x88980507 - MILAVERR_INSUFFICIENTVIDEORESOURCES Handle = 0x88980508 - MILAVERR_VIDEOACCELERATIONNOTAVAILABLE Handle = 0x88980509 - MILAVERR_REQUESTEDTEXTURETOOBIG Handle = 0x8898050A - MILAVERR_SEEKFAILED Handle = 0x8898050B - MILAVERR_UNEXPECTEDWMPFAILURE Handle = 0x8898050C - MILAVERR_MEDIAPLAYERCLOSED Handle = 0x8898050D - MILAVERR_UNKNOWNHARDWAREERROR Handle = 0x8898050E - MILEFFECTSERR_UNKNOWNPROPERTY Handle = 0x8898060E - MILEFFECTSERR_EFFECTNOTPARTOFGROUP Handle = 0x8898060F - MILEFFECTSERR_NOINPUTSOURCEATTACHED Handle = 0x88980610 - MILEFFECTSERR_CONNECTORNOTCONNECTED Handle = 0x88980611 - MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT Handle = 0x88980612 - MILEFFECTSERR_RESERVED Handle = 0x88980613 - MILEFFECTSERR_CYCLEDETECTED Handle = 0x88980614 - MILEFFECTSERR_EFFECTINMORETHANONEGRAPH Handle = 0x88980615 - MILEFFECTSERR_EFFECTALREADYINAGRAPH Handle = 0x88980616 - MILEFFECTSERR_EFFECTHASNOCHILDREN Handle = 0x88980617 - MILEFFECTSERR_ALREADYATTACHEDTOLISTENER Handle = 0x88980618 - MILEFFECTSERR_NOTAFFINETRANSFORM Handle = 0x88980619 - MILEFFECTSERR_EMPTYBOUNDS Handle = 0x8898061A - MILEFFECTSERR_OUTPUTSIZETOOLARGE Handle = 0x8898061B - DWMERR_STATE_TRANSITION_FAILED Handle = 0x88980700 - DWMERR_THEME_FAILED Handle = 0x88980701 - DWMERR_CATASTROPHIC_FAILURE Handle = 0x88980702 - DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED Handle = 0x88980800 - DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED Handle = 0x88980801 - DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED Handle = 0x88980802 - ONL_E_INVALID_AUTHENTICATION_TARGET Handle = 0x80860001 - ONL_E_ACCESS_DENIED_BY_TOU Handle = 0x80860002 - ONL_E_INVALID_APPLICATION Handle = 0x80860003 - ONL_E_PASSWORD_UPDATE_REQUIRED Handle = 0x80860004 - ONL_E_ACCOUNT_UPDATE_REQUIRED Handle = 0x80860005 - ONL_E_FORCESIGNIN Handle = 0x80860006 - ONL_E_ACCOUNT_LOCKED Handle = 0x80860007 - ONL_E_PARENTAL_CONSENT_REQUIRED Handle = 0x80860008 - ONL_E_EMAIL_VERIFICATION_REQUIRED Handle = 0x80860009 - ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE Handle = 0x8086000A - ONL_E_ACCOUNT_SUSPENDED_ABUSE Handle = 0x8086000B - ONL_E_ACTION_REQUIRED Handle = 0x8086000C - ONL_CONNECTION_COUNT_LIMIT Handle = 0x8086000D - ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT Handle = 0x8086000E - ONL_E_USER_AUTHENTICATION_REQUIRED Handle = 0x8086000F - ONL_E_REQUEST_THROTTLED Handle = 0x80860010 - FA_E_MAX_PERSISTED_ITEMS_REACHED Handle = 0x80270220 - FA_E_HOMEGROUP_NOT_AVAILABLE Handle = 0x80270222 - E_MONITOR_RESOLUTION_TOO_LOW Handle = 0x80270250 - E_ELEVATED_ACTIVATION_NOT_SUPPORTED Handle = 0x80270251 - E_UAC_DISABLED Handle = 0x80270252 - E_FULL_ADMIN_NOT_SUPPORTED Handle = 0x80270253 - E_APPLICATION_NOT_REGISTERED Handle = 0x80270254 - E_MULTIPLE_EXTENSIONS_FOR_APPLICATION Handle = 0x80270255 - E_MULTIPLE_PACKAGES_FOR_FAMILY Handle = 0x80270256 - E_APPLICATION_MANAGER_NOT_RUNNING Handle = 0x80270257 - S_STORE_LAUNCHED_FOR_REMEDIATION Handle = 0x00270258 - S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG Handle = 0x00270259 - E_APPLICATION_ACTIVATION_TIMED_OUT Handle = 0x8027025A - E_APPLICATION_ACTIVATION_EXEC_FAILURE Handle = 0x8027025B - E_APPLICATION_TEMPORARY_LICENSE_ERROR Handle = 0x8027025C - E_APPLICATION_TRIAL_LICENSE_EXPIRED Handle = 0x8027025D - E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED Handle = 0x80270260 - E_SKYDRIVE_ROOT_TARGET_OVERLAP Handle = 0x80270261 - E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX Handle = 0x80270262 - E_SKYDRIVE_FILE_NOT_UPLOADED Handle = 0x80270263 - E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL Handle = 0x80270264 - E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED Handle = 0x80270265 - E_SYNCENGINE_FILE_SIZE_OVER_LIMIT Handle = 0x8802B001 - E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA Handle = 0x8802B002 - E_SYNCENGINE_UNSUPPORTED_FILE_NAME Handle = 0x8802B003 - E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED Handle = 0x8802B004 - E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR Handle = 0x8802B005 - E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE Handle = 0x8802B006 - E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN Handle = 0x8802C002 - E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED Handle = 0x8802C003 - E_SYNCENGINE_UNKNOWN_SERVICE_ERROR Handle = 0x8802C004 - E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE Handle = 0x8802C005 - E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE Handle = 0x8802C006 - E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR Handle = 0x8802C007 - E_SYNCENGINE_FOLDER_INACCESSIBLE Handle = 0x8802D001 - E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME Handle = 0x8802D002 - E_SYNCENGINE_UNSUPPORTED_MARKET Handle = 0x8802D003 - E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D004 - E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D005 - E_SYNCENGINE_CLIENT_UPDATE_NEEDED Handle = 0x8802D006 - E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED Handle = 0x8802D007 - E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED Handle = 0x8802D008 - E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT Handle = 0x8802D009 - E_SYNCENGINE_STORAGE_SERVICE_BLOCKED Handle = 0x8802D00A - E_SYNCENGINE_FOLDER_IN_REDIRECTION Handle = 0x8802D00B - EAS_E_POLICY_NOT_MANAGED_BY_OS Handle = 0x80550001 - EAS_E_POLICY_COMPLIANT_WITH_ACTIONS Handle = 0x80550002 - EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE Handle = 0x80550003 - EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD Handle = 0x80550004 - EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE Handle = 0x80550005 - EAS_E_USER_CANNOT_CHANGE_PASSWORD Handle = 0x80550006 - EAS_E_ADMINS_HAVE_BLANK_PASSWORD Handle = 0x80550007 - EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD Handle = 0x80550008 - EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD Handle = 0x80550009 - EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS Handle = 0x8055000A - EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000B - EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER Handle = 0x8055000C - EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000D - WEB_E_UNSUPPORTED_FORMAT Handle = 0x83750001 - WEB_E_INVALID_XML Handle = 0x83750002 - WEB_E_MISSING_REQUIRED_ELEMENT Handle = 0x83750003 - WEB_E_MISSING_REQUIRED_ATTRIBUTE Handle = 0x83750004 - WEB_E_UNEXPECTED_CONTENT Handle = 0x83750005 - WEB_E_RESOURCE_TOO_LARGE Handle = 0x83750006 - WEB_E_INVALID_JSON_STRING Handle = 0x83750007 - WEB_E_INVALID_JSON_NUMBER Handle = 0x83750008 - WEB_E_JSON_VALUE_NOT_FOUND Handle = 0x83750009 - HTTP_E_STATUS_UNEXPECTED Handle = 0x80190001 - HTTP_E_STATUS_UNEXPECTED_REDIRECTION Handle = 0x80190003 - HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR Handle = 0x80190004 - HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR Handle = 0x80190005 - HTTP_E_STATUS_AMBIGUOUS Handle = 0x8019012C - HTTP_E_STATUS_MOVED Handle = 0x8019012D - HTTP_E_STATUS_REDIRECT Handle = 0x8019012E - HTTP_E_STATUS_REDIRECT_METHOD Handle = 0x8019012F - HTTP_E_STATUS_NOT_MODIFIED Handle = 0x80190130 - HTTP_E_STATUS_USE_PROXY Handle = 0x80190131 - HTTP_E_STATUS_REDIRECT_KEEP_VERB Handle = 0x80190133 - HTTP_E_STATUS_BAD_REQUEST Handle = 0x80190190 - HTTP_E_STATUS_DENIED Handle = 0x80190191 - HTTP_E_STATUS_PAYMENT_REQ Handle = 0x80190192 - HTTP_E_STATUS_FORBIDDEN Handle = 0x80190193 - HTTP_E_STATUS_NOT_FOUND Handle = 0x80190194 - HTTP_E_STATUS_BAD_METHOD Handle = 0x80190195 - HTTP_E_STATUS_NONE_ACCEPTABLE Handle = 0x80190196 - HTTP_E_STATUS_PROXY_AUTH_REQ Handle = 0x80190197 - HTTP_E_STATUS_REQUEST_TIMEOUT Handle = 0x80190198 - HTTP_E_STATUS_CONFLICT Handle = 0x80190199 - HTTP_E_STATUS_GONE Handle = 0x8019019A - HTTP_E_STATUS_LENGTH_REQUIRED Handle = 0x8019019B - HTTP_E_STATUS_PRECOND_FAILED Handle = 0x8019019C - HTTP_E_STATUS_REQUEST_TOO_LARGE Handle = 0x8019019D - HTTP_E_STATUS_URI_TOO_LONG Handle = 0x8019019E - HTTP_E_STATUS_UNSUPPORTED_MEDIA Handle = 0x8019019F - HTTP_E_STATUS_RANGE_NOT_SATISFIABLE Handle = 0x801901A0 - HTTP_E_STATUS_EXPECTATION_FAILED Handle = 0x801901A1 - HTTP_E_STATUS_SERVER_ERROR Handle = 0x801901F4 - HTTP_E_STATUS_NOT_SUPPORTED Handle = 0x801901F5 - HTTP_E_STATUS_BAD_GATEWAY Handle = 0x801901F6 - HTTP_E_STATUS_SERVICE_UNAVAIL Handle = 0x801901F7 - HTTP_E_STATUS_GATEWAY_TIMEOUT Handle = 0x801901F8 - HTTP_E_STATUS_VERSION_NOT_SUP Handle = 0x801901F9 - E_INVALID_PROTOCOL_OPERATION Handle = 0x83760001 - E_INVALID_PROTOCOL_FORMAT Handle = 0x83760002 - E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED Handle = 0x83760003 - E_SUBPROTOCOL_NOT_SUPPORTED Handle = 0x83760004 - E_PROTOCOL_VERSION_NOT_SUPPORTED Handle = 0x83760005 - INPUT_E_OUT_OF_ORDER Handle = 0x80400000 - INPUT_E_REENTRANCY Handle = 0x80400001 - INPUT_E_MULTIMODAL Handle = 0x80400002 - INPUT_E_PACKET Handle = 0x80400003 - INPUT_E_FRAME Handle = 0x80400004 - INPUT_E_HISTORY Handle = 0x80400005 - INPUT_E_DEVICE_INFO Handle = 0x80400006 - INPUT_E_TRANSFORM Handle = 0x80400007 - INPUT_E_DEVICE_PROPERTY Handle = 0x80400008 - INET_E_INVALID_URL Handle = 0x800C0002 - INET_E_NO_SESSION Handle = 0x800C0003 - INET_E_CANNOT_CONNECT Handle = 0x800C0004 - INET_E_RESOURCE_NOT_FOUND Handle = 0x800C0005 - INET_E_OBJECT_NOT_FOUND Handle = 0x800C0006 - INET_E_DATA_NOT_AVAILABLE Handle = 0x800C0007 - INET_E_DOWNLOAD_FAILURE Handle = 0x800C0008 - INET_E_AUTHENTICATION_REQUIRED Handle = 0x800C0009 - INET_E_NO_VALID_MEDIA Handle = 0x800C000A - INET_E_CONNECTION_TIMEOUT Handle = 0x800C000B - INET_E_INVALID_REQUEST Handle = 0x800C000C - INET_E_UNKNOWN_PROTOCOL Handle = 0x800C000D - INET_E_SECURITY_PROBLEM Handle = 0x800C000E - INET_E_CANNOT_LOAD_DATA Handle = 0x800C000F - INET_E_CANNOT_INSTANTIATE_OBJECT Handle = 0x800C0010 - INET_E_INVALID_CERTIFICATE Handle = 0x800C0019 - INET_E_REDIRECT_FAILED Handle = 0x800C0014 - INET_E_REDIRECT_TO_DIR Handle = 0x800C0015 - ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00001 - ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00002 - ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00003 - ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00004 - ERROR_IO_PREEMPTED Handle = 0x89010001 - JSCRIPT_E_CANTEXECUTE Handle = 0x89020001 - WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x88010001 - WEP_E_FIXED_DATA_NOT_SUPPORTED Handle = 0x88010002 - WEP_E_HARDWARE_NOT_COMPLIANT Handle = 0x88010003 - WEP_E_LOCK_NOT_CONFIGURED Handle = 0x88010004 - WEP_E_PROTECTION_SUSPENDED Handle = 0x88010005 - WEP_E_NO_LICENSE Handle = 0x88010006 - WEP_E_OS_NOT_PROTECTED Handle = 0x88010007 - WEP_E_UNEXPECTED_FAIL Handle = 0x88010008 - WEP_E_BUFFER_TOO_LARGE Handle = 0x88010009 - ERROR_SVHDX_ERROR_STORED Handle = 0xC05C0000 - ERROR_SVHDX_ERROR_NOT_AVAILABLE Handle = 0xC05CFF00 - ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE Handle = 0xC05CFF01 - ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED Handle = 0xC05CFF02 - ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED Handle = 0xC05CFF03 - ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED Handle = 0xC05CFF04 - ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED Handle = 0xC05CFF05 - ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED Handle = 0xC05CFF06 - ERROR_SVHDX_RESERVATION_CONFLICT Handle = 0xC05CFF07 - ERROR_SVHDX_WRONG_FILE_TYPE Handle = 0xC05CFF08 - ERROR_SVHDX_VERSION_MISMATCH Handle = 0xC05CFF09 - ERROR_VHD_SHARED Handle = 0xC05CFF0A - ERROR_SVHDX_NO_INITIATOR Handle = 0xC05CFF0B - ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND Handle = 0xC05CFF0C - ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP Handle = 0xC05D0000 - ERROR_SMB_BAD_CLUSTER_DIALECT Handle = 0xC05D0001 - WININET_E_OUT_OF_HANDLES Handle = 0x80072EE1 - WININET_E_TIMEOUT Handle = 0x80072EE2 - WININET_E_EXTENDED_ERROR Handle = 0x80072EE3 - WININET_E_INTERNAL_ERROR Handle = 0x80072EE4 - WININET_E_INVALID_URL Handle = 0x80072EE5 - WININET_E_UNRECOGNIZED_SCHEME Handle = 0x80072EE6 - WININET_E_NAME_NOT_RESOLVED Handle = 0x80072EE7 - WININET_E_PROTOCOL_NOT_FOUND Handle = 0x80072EE8 - WININET_E_INVALID_OPTION Handle = 0x80072EE9 - WININET_E_BAD_OPTION_LENGTH Handle = 0x80072EEA - WININET_E_OPTION_NOT_SETTABLE Handle = 0x80072EEB - WININET_E_SHUTDOWN Handle = 0x80072EEC - WININET_E_INCORRECT_USER_NAME Handle = 0x80072EED - WININET_E_INCORRECT_PASSWORD Handle = 0x80072EEE - WININET_E_LOGIN_FAILURE Handle = 0x80072EEF - WININET_E_INVALID_OPERATION Handle = 0x80072EF0 - WININET_E_OPERATION_CANCELLED Handle = 0x80072EF1 - WININET_E_INCORRECT_HANDLE_TYPE Handle = 0x80072EF2 - WININET_E_INCORRECT_HANDLE_STATE Handle = 0x80072EF3 - WININET_E_NOT_PROXY_REQUEST Handle = 0x80072EF4 - WININET_E_REGISTRY_VALUE_NOT_FOUND Handle = 0x80072EF5 - WININET_E_BAD_REGISTRY_PARAMETER Handle = 0x80072EF6 - WININET_E_NO_DIRECT_ACCESS Handle = 0x80072EF7 - WININET_E_NO_CONTEXT Handle = 0x80072EF8 - WININET_E_NO_CALLBACK Handle = 0x80072EF9 - WININET_E_REQUEST_PENDING Handle = 0x80072EFA - WININET_E_INCORRECT_FORMAT Handle = 0x80072EFB - WININET_E_ITEM_NOT_FOUND Handle = 0x80072EFC - WININET_E_CANNOT_CONNECT Handle = 0x80072EFD - WININET_E_CONNECTION_ABORTED Handle = 0x80072EFE - WININET_E_CONNECTION_RESET Handle = 0x80072EFF - WININET_E_FORCE_RETRY Handle = 0x80072F00 - WININET_E_INVALID_PROXY_REQUEST Handle = 0x80072F01 - WININET_E_NEED_UI Handle = 0x80072F02 - WININET_E_HANDLE_EXISTS Handle = 0x80072F04 - WININET_E_SEC_CERT_DATE_INVALID Handle = 0x80072F05 - WININET_E_SEC_CERT_CN_INVALID Handle = 0x80072F06 - WININET_E_HTTP_TO_HTTPS_ON_REDIR Handle = 0x80072F07 - WININET_E_HTTPS_TO_HTTP_ON_REDIR Handle = 0x80072F08 - WININET_E_MIXED_SECURITY Handle = 0x80072F09 - WININET_E_CHG_POST_IS_NON_SECURE Handle = 0x80072F0A - WININET_E_POST_IS_NON_SECURE Handle = 0x80072F0B - WININET_E_CLIENT_AUTH_CERT_NEEDED Handle = 0x80072F0C - WININET_E_INVALID_CA Handle = 0x80072F0D - WININET_E_CLIENT_AUTH_NOT_SETUP Handle = 0x80072F0E - WININET_E_ASYNC_THREAD_FAILED Handle = 0x80072F0F - WININET_E_REDIRECT_SCHEME_CHANGE Handle = 0x80072F10 - WININET_E_DIALOG_PENDING Handle = 0x80072F11 - WININET_E_RETRY_DIALOG Handle = 0x80072F12 - WININET_E_NO_NEW_CONTAINERS Handle = 0x80072F13 - WININET_E_HTTPS_HTTP_SUBMIT_REDIR Handle = 0x80072F14 - WININET_E_SEC_CERT_ERRORS Handle = 0x80072F17 - WININET_E_SEC_CERT_REV_FAILED Handle = 0x80072F19 - WININET_E_HEADER_NOT_FOUND Handle = 0x80072F76 - WININET_E_DOWNLEVEL_SERVER Handle = 0x80072F77 - WININET_E_INVALID_SERVER_RESPONSE Handle = 0x80072F78 - WININET_E_INVALID_HEADER Handle = 0x80072F79 - WININET_E_INVALID_QUERY_REQUEST Handle = 0x80072F7A - WININET_E_HEADER_ALREADY_EXISTS Handle = 0x80072F7B - WININET_E_REDIRECT_FAILED Handle = 0x80072F7C - WININET_E_SECURITY_CHANNEL_ERROR Handle = 0x80072F7D - WININET_E_UNABLE_TO_CACHE_FILE Handle = 0x80072F7E - WININET_E_TCPIP_NOT_INSTALLED Handle = 0x80072F7F - WININET_E_DISCONNECTED Handle = 0x80072F83 - WININET_E_SERVER_UNREACHABLE Handle = 0x80072F84 - WININET_E_PROXY_SERVER_UNREACHABLE Handle = 0x80072F85 - WININET_E_BAD_AUTO_PROXY_SCRIPT Handle = 0x80072F86 - WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT Handle = 0x80072F87 - WININET_E_SEC_INVALID_CERT Handle = 0x80072F89 - WININET_E_SEC_CERT_REVOKED Handle = 0x80072F8A - WININET_E_FAILED_DUETOSECURITYCHECK Handle = 0x80072F8B - WININET_E_NOT_INITIALIZED Handle = 0x80072F8C - WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY Handle = 0x80072F8E - WININET_E_DECODING_FAILED Handle = 0x80072F8F - WININET_E_NOT_REDIRECTED Handle = 0x80072F80 - WININET_E_COOKIE_NEEDS_CONFIRMATION Handle = 0x80072F81 - WININET_E_COOKIE_DECLINED Handle = 0x80072F82 - WININET_E_REDIRECT_NEEDS_CONFIRMATION Handle = 0x80072F88 - SQLITE_E_ERROR Handle = 0x87AF0001 - SQLITE_E_INTERNAL Handle = 0x87AF0002 - SQLITE_E_PERM Handle = 0x87AF0003 - SQLITE_E_ABORT Handle = 0x87AF0004 - SQLITE_E_BUSY Handle = 0x87AF0005 - SQLITE_E_LOCKED Handle = 0x87AF0006 - SQLITE_E_NOMEM Handle = 0x87AF0007 - SQLITE_E_READONLY Handle = 0x87AF0008 - SQLITE_E_INTERRUPT Handle = 0x87AF0009 - SQLITE_E_IOERR Handle = 0x87AF000A - SQLITE_E_CORRUPT Handle = 0x87AF000B - SQLITE_E_NOTFOUND Handle = 0x87AF000C - SQLITE_E_FULL Handle = 0x87AF000D - SQLITE_E_CANTOPEN Handle = 0x87AF000E - SQLITE_E_PROTOCOL Handle = 0x87AF000F - SQLITE_E_EMPTY Handle = 0x87AF0010 - SQLITE_E_SCHEMA Handle = 0x87AF0011 - SQLITE_E_TOOBIG Handle = 0x87AF0012 - SQLITE_E_CONSTRAINT Handle = 0x87AF0013 - SQLITE_E_MISMATCH Handle = 0x87AF0014 - SQLITE_E_MISUSE Handle = 0x87AF0015 - SQLITE_E_NOLFS Handle = 0x87AF0016 - SQLITE_E_AUTH Handle = 0x87AF0017 - SQLITE_E_FORMAT Handle = 0x87AF0018 - SQLITE_E_RANGE Handle = 0x87AF0019 - SQLITE_E_NOTADB Handle = 0x87AF001A - SQLITE_E_NOTICE Handle = 0x87AF001B - SQLITE_E_WARNING Handle = 0x87AF001C - SQLITE_E_ROW Handle = 0x87AF0064 - SQLITE_E_DONE Handle = 0x87AF0065 - SQLITE_E_IOERR_READ Handle = 0x87AF010A - SQLITE_E_IOERR_SHORT_READ Handle = 0x87AF020A - SQLITE_E_IOERR_WRITE Handle = 0x87AF030A - SQLITE_E_IOERR_FSYNC Handle = 0x87AF040A - SQLITE_E_IOERR_DIR_FSYNC Handle = 0x87AF050A - SQLITE_E_IOERR_TRUNCATE Handle = 0x87AF060A - SQLITE_E_IOERR_FSTAT Handle = 0x87AF070A - SQLITE_E_IOERR_UNLOCK Handle = 0x87AF080A - SQLITE_E_IOERR_RDLOCK Handle = 0x87AF090A - SQLITE_E_IOERR_DELETE Handle = 0x87AF0A0A - SQLITE_E_IOERR_BLOCKED Handle = 0x87AF0B0A - SQLITE_E_IOERR_NOMEM Handle = 0x87AF0C0A - SQLITE_E_IOERR_ACCESS Handle = 0x87AF0D0A - SQLITE_E_IOERR_CHECKRESERVEDLOCK Handle = 0x87AF0E0A - SQLITE_E_IOERR_LOCK Handle = 0x87AF0F0A - SQLITE_E_IOERR_CLOSE Handle = 0x87AF100A - SQLITE_E_IOERR_DIR_CLOSE Handle = 0x87AF110A - SQLITE_E_IOERR_SHMOPEN Handle = 0x87AF120A - SQLITE_E_IOERR_SHMSIZE Handle = 0x87AF130A - SQLITE_E_IOERR_SHMLOCK Handle = 0x87AF140A - SQLITE_E_IOERR_SHMMAP Handle = 0x87AF150A - SQLITE_E_IOERR_SEEK Handle = 0x87AF160A - SQLITE_E_IOERR_DELETE_NOENT Handle = 0x87AF170A - SQLITE_E_IOERR_MMAP Handle = 0x87AF180A - SQLITE_E_IOERR_GETTEMPPATH Handle = 0x87AF190A - SQLITE_E_IOERR_CONVPATH Handle = 0x87AF1A0A - SQLITE_E_IOERR_VNODE Handle = 0x87AF1A02 - SQLITE_E_IOERR_AUTH Handle = 0x87AF1A03 - SQLITE_E_LOCKED_SHAREDCACHE Handle = 0x87AF0106 - SQLITE_E_BUSY_RECOVERY Handle = 0x87AF0105 - SQLITE_E_BUSY_SNAPSHOT Handle = 0x87AF0205 - SQLITE_E_CANTOPEN_NOTEMPDIR Handle = 0x87AF010E - SQLITE_E_CANTOPEN_ISDIR Handle = 0x87AF020E - SQLITE_E_CANTOPEN_FULLPATH Handle = 0x87AF030E - SQLITE_E_CANTOPEN_CONVPATH Handle = 0x87AF040E - SQLITE_E_CORRUPT_VTAB Handle = 0x87AF010B - SQLITE_E_READONLY_RECOVERY Handle = 0x87AF0108 - SQLITE_E_READONLY_CANTLOCK Handle = 0x87AF0208 - SQLITE_E_READONLY_ROLLBACK Handle = 0x87AF0308 - SQLITE_E_READONLY_DBMOVED Handle = 0x87AF0408 - SQLITE_E_ABORT_ROLLBACK Handle = 0x87AF0204 - SQLITE_E_CONSTRAINT_CHECK Handle = 0x87AF0113 - SQLITE_E_CONSTRAINT_COMMITHOOK Handle = 0x87AF0213 - SQLITE_E_CONSTRAINT_FOREIGNKEY Handle = 0x87AF0313 - SQLITE_E_CONSTRAINT_FUNCTION Handle = 0x87AF0413 - SQLITE_E_CONSTRAINT_NOTNULL Handle = 0x87AF0513 - SQLITE_E_CONSTRAINT_PRIMARYKEY Handle = 0x87AF0613 - SQLITE_E_CONSTRAINT_TRIGGER Handle = 0x87AF0713 - SQLITE_E_CONSTRAINT_UNIQUE Handle = 0x87AF0813 - SQLITE_E_CONSTRAINT_VTAB Handle = 0x87AF0913 - SQLITE_E_CONSTRAINT_ROWID Handle = 0x87AF0A13 - SQLITE_E_NOTICE_RECOVER_WAL Handle = 0x87AF011B - SQLITE_E_NOTICE_RECOVER_ROLLBACK Handle = 0x87AF021B - SQLITE_E_WARNING_AUTOINDEX Handle = 0x87AF011C - UTC_E_TOGGLE_TRACE_STARTED Handle = 0x87C51001 - UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT Handle = 0x87C51002 - UTC_E_AOT_NOT_RUNNING Handle = 0x87C51003 - UTC_E_SCRIPT_TYPE_INVALID Handle = 0x87C51004 - UTC_E_SCENARIODEF_NOT_FOUND Handle = 0x87C51005 - UTC_E_TRACEPROFILE_NOT_FOUND Handle = 0x87C51006 - UTC_E_FORWARDER_ALREADY_ENABLED Handle = 0x87C51007 - UTC_E_FORWARDER_ALREADY_DISABLED Handle = 0x87C51008 - UTC_E_EVENTLOG_ENTRY_MALFORMED Handle = 0x87C51009 - UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH Handle = 0x87C5100A - UTC_E_SCRIPT_TERMINATED Handle = 0x87C5100B - UTC_E_INVALID_CUSTOM_FILTER Handle = 0x87C5100C - UTC_E_TRACE_NOT_RUNNING Handle = 0x87C5100D - UTC_E_REESCALATED_TOO_QUICKLY Handle = 0x87C5100E - UTC_E_ESCALATION_ALREADY_RUNNING Handle = 0x87C5100F - UTC_E_PERFTRACK_ALREADY_TRACING Handle = 0x87C51010 - UTC_E_REACHED_MAX_ESCALATIONS Handle = 0x87C51011 - UTC_E_FORWARDER_PRODUCER_MISMATCH Handle = 0x87C51012 - UTC_E_INTENTIONAL_SCRIPT_FAILURE Handle = 0x87C51013 - UTC_E_SQM_INIT_FAILED Handle = 0x87C51014 - UTC_E_NO_WER_LOGGER_SUPPORTED Handle = 0x87C51015 - UTC_E_TRACERS_DONT_EXIST Handle = 0x87C51016 - UTC_E_WINRT_INIT_FAILED Handle = 0x87C51017 - UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH Handle = 0x87C51018 - UTC_E_INVALID_FILTER Handle = 0x87C51019 - UTC_E_EXE_TERMINATED Handle = 0x87C5101A - UTC_E_ESCALATION_NOT_AUTHORIZED Handle = 0x87C5101B - UTC_E_SETUP_NOT_AUTHORIZED Handle = 0x87C5101C - UTC_E_CHILD_PROCESS_FAILED Handle = 0x87C5101D - UTC_E_COMMAND_LINE_NOT_AUTHORIZED Handle = 0x87C5101E - UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML Handle = 0x87C5101F - UTC_E_ESCALATION_TIMED_OUT Handle = 0x87C51020 - UTC_E_SETUP_TIMED_OUT Handle = 0x87C51021 - UTC_E_TRIGGER_MISMATCH Handle = 0x87C51022 - UTC_E_TRIGGER_NOT_FOUND Handle = 0x87C51023 - UTC_E_SIF_NOT_SUPPORTED Handle = 0x87C51024 - UTC_E_DELAY_TERMINATED Handle = 0x87C51025 - UTC_E_DEVICE_TICKET_ERROR Handle = 0x87C51026 - UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED Handle = 0x87C51027 - UTC_E_API_RESULT_UNAVAILABLE Handle = 0x87C51028 - UTC_E_RPC_TIMEOUT Handle = 0x87C51029 - UTC_E_RPC_WAIT_FAILED Handle = 0x87C5102A - UTC_E_API_BUSY Handle = 0x87C5102B - UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET Handle = 0x87C5102C - UTC_E_EXCLUSIVITY_NOT_AVAILABLE Handle = 0x87C5102D - UTC_E_GETFILE_FILE_PATH_NOT_APPROVED Handle = 0x87C5102E - UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS Handle = 0x87C5102F - UTC_E_TIME_TRIGGER_ON_START_INVALID Handle = 0x87C51030 - UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION Handle = 0x87C51031 - UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE Handle = 0x87C51032 - UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE Handle = 0x87C51033 - UTC_E_BINARY_MISSING Handle = 0x87C51034 - UTC_E_NETWORK_CAPTURE_NOT_ALLOWED Handle = 0x87C51035 - UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID Handle = 0x87C51036 - UTC_E_UNABLE_TO_RESOLVE_SESSION Handle = 0x87C51037 - UTC_E_THROTTLED Handle = 0x87C51038 - UTC_E_UNAPPROVED_SCRIPT Handle = 0x87C51039 - UTC_E_SCRIPT_MISSING Handle = 0x87C5103A - UTC_E_SCENARIO_THROTTLED Handle = 0x87C5103B - UTC_E_API_NOT_SUPPORTED Handle = 0x87C5103C - UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED Handle = 0x87C5103D - UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED Handle = 0x87C5103E - UTC_E_CERT_REV_FAILED Handle = 0x87C5103F - UTC_E_FAILED_TO_START_NDISCAP Handle = 0x87C51040 - UTC_E_KERNELDUMP_LIMIT_REACHED Handle = 0x87C51041 - UTC_E_MISSING_AGGREGATE_EVENT_TAG Handle = 0x87C51042 - UTC_E_INVALID_AGGREGATION_STRUCT Handle = 0x87C51043 - UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION Handle = 0x87C51044 - UTC_E_FILTER_MISSING_ATTRIBUTE Handle = 0x87C51045 - UTC_E_FILTER_INVALID_TYPE Handle = 0x87C51046 - UTC_E_FILTER_VARIABLE_NOT_FOUND Handle = 0x87C51047 - UTC_E_FILTER_FUNCTION_RESTRICTED Handle = 0x87C51048 - UTC_E_FILTER_VERSION_MISMATCH Handle = 0x87C51049 - UTC_E_FILTER_INVALID_FUNCTION Handle = 0x87C51050 - UTC_E_FILTER_INVALID_FUNCTION_PARAMS Handle = 0x87C51051 - UTC_E_FILTER_INVALID_COMMAND Handle = 0x87C51052 - UTC_E_FILTER_ILLEGAL_EVAL Handle = 0x87C51053 - UTC_E_TTTRACER_RETURNED_ERROR Handle = 0x87C51054 - UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE Handle = 0x87C51055 - UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS Handle = 0x87C51056 - UTC_E_SCENARIO_HAS_NO_ACTIONS Handle = 0x87C51057 - UTC_E_TTTRACER_STORAGE_FULL Handle = 0x87C51058 - UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE Handle = 0x87C51059 - UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN Handle = 0x87C5105A - UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED Handle = 0x87C5105B - UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED Handle = 0x87C5105C - WINML_ERR_INVALID_DEVICE Handle = 0x88900001 - WINML_ERR_INVALID_BINDING Handle = 0x88900002 - WINML_ERR_VALUE_NOTFOUND Handle = 0x88900003 - WINML_ERR_SIZE_MISMATCH Handle = 0x88900004 - STATUS_WAIT_0 NTStatus = 0x00000000 - STATUS_SUCCESS NTStatus = 0x00000000 - STATUS_WAIT_1 NTStatus = 0x00000001 - STATUS_WAIT_2 NTStatus = 0x00000002 - STATUS_WAIT_3 NTStatus = 0x00000003 - STATUS_WAIT_63 NTStatus = 0x0000003F - STATUS_ABANDONED NTStatus = 0x00000080 - STATUS_ABANDONED_WAIT_0 NTStatus = 0x00000080 - STATUS_ABANDONED_WAIT_63 NTStatus = 0x000000BF - STATUS_USER_APC NTStatus = 0x000000C0 - STATUS_ALREADY_COMPLETE NTStatus = 0x000000FF - STATUS_KERNEL_APC NTStatus = 0x00000100 - STATUS_ALERTED NTStatus = 0x00000101 - STATUS_TIMEOUT NTStatus = 0x00000102 - STATUS_PENDING NTStatus = 0x00000103 - STATUS_REPARSE NTStatus = 0x00000104 - STATUS_MORE_ENTRIES NTStatus = 0x00000105 - STATUS_NOT_ALL_ASSIGNED NTStatus = 0x00000106 - STATUS_SOME_NOT_MAPPED NTStatus = 0x00000107 - STATUS_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0x00000108 - STATUS_VOLUME_MOUNTED NTStatus = 0x00000109 - STATUS_RXACT_COMMITTED NTStatus = 0x0000010A - STATUS_NOTIFY_CLEANUP NTStatus = 0x0000010B - STATUS_NOTIFY_ENUM_DIR NTStatus = 0x0000010C - STATUS_NO_QUOTAS_FOR_ACCOUNT NTStatus = 0x0000010D - STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED NTStatus = 0x0000010E - STATUS_PAGE_FAULT_TRANSITION NTStatus = 0x00000110 - STATUS_PAGE_FAULT_DEMAND_ZERO NTStatus = 0x00000111 - STATUS_PAGE_FAULT_COPY_ON_WRITE NTStatus = 0x00000112 - STATUS_PAGE_FAULT_GUARD_PAGE NTStatus = 0x00000113 - STATUS_PAGE_FAULT_PAGING_FILE NTStatus = 0x00000114 - STATUS_CACHE_PAGE_LOCKED NTStatus = 0x00000115 - STATUS_CRASH_DUMP NTStatus = 0x00000116 - STATUS_BUFFER_ALL_ZEROS NTStatus = 0x00000117 - STATUS_REPARSE_OBJECT NTStatus = 0x00000118 - STATUS_RESOURCE_REQUIREMENTS_CHANGED NTStatus = 0x00000119 - STATUS_TRANSLATION_COMPLETE NTStatus = 0x00000120 - STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY NTStatus = 0x00000121 - STATUS_NOTHING_TO_TERMINATE NTStatus = 0x00000122 - STATUS_PROCESS_NOT_IN_JOB NTStatus = 0x00000123 - STATUS_PROCESS_IN_JOB NTStatus = 0x00000124 - STATUS_VOLSNAP_HIBERNATE_READY NTStatus = 0x00000125 - STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY NTStatus = 0x00000126 - STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED NTStatus = 0x00000127 - STATUS_INTERRUPT_STILL_CONNECTED NTStatus = 0x00000128 - STATUS_PROCESS_CLONED NTStatus = 0x00000129 - STATUS_FILE_LOCKED_WITH_ONLY_READERS NTStatus = 0x0000012A - STATUS_FILE_LOCKED_WITH_WRITERS NTStatus = 0x0000012B - STATUS_VALID_IMAGE_HASH NTStatus = 0x0000012C - STATUS_VALID_CATALOG_HASH NTStatus = 0x0000012D - STATUS_VALID_STRONG_CODE_HASH NTStatus = 0x0000012E - STATUS_GHOSTED NTStatus = 0x0000012F - STATUS_DATA_OVERWRITTEN NTStatus = 0x00000130 - STATUS_RESOURCEMANAGER_READ_ONLY NTStatus = 0x00000202 - STATUS_RING_PREVIOUSLY_EMPTY NTStatus = 0x00000210 - STATUS_RING_PREVIOUSLY_FULL NTStatus = 0x00000211 - STATUS_RING_PREVIOUSLY_ABOVE_QUOTA NTStatus = 0x00000212 - STATUS_RING_NEWLY_EMPTY NTStatus = 0x00000213 - STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT NTStatus = 0x00000214 - STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE NTStatus = 0x00000215 - STATUS_OPLOCK_HANDLE_CLOSED NTStatus = 0x00000216 - STATUS_WAIT_FOR_OPLOCK NTStatus = 0x00000367 - STATUS_REPARSE_GLOBAL NTStatus = 0x00000368 - STATUS_FLT_IO_COMPLETE NTStatus = 0x001C0001 - STATUS_OBJECT_NAME_EXISTS NTStatus = 0x40000000 - STATUS_THREAD_WAS_SUSPENDED NTStatus = 0x40000001 - STATUS_WORKING_SET_LIMIT_RANGE NTStatus = 0x40000002 - STATUS_IMAGE_NOT_AT_BASE NTStatus = 0x40000003 - STATUS_RXACT_STATE_CREATED NTStatus = 0x40000004 - STATUS_SEGMENT_NOTIFICATION NTStatus = 0x40000005 - STATUS_LOCAL_USER_SESSION_KEY NTStatus = 0x40000006 - STATUS_BAD_CURRENT_DIRECTORY NTStatus = 0x40000007 - STATUS_SERIAL_MORE_WRITES NTStatus = 0x40000008 - STATUS_REGISTRY_RECOVERED NTStatus = 0x40000009 - STATUS_FT_READ_RECOVERY_FROM_BACKUP NTStatus = 0x4000000A - STATUS_FT_WRITE_RECOVERY NTStatus = 0x4000000B - STATUS_SERIAL_COUNTER_TIMEOUT NTStatus = 0x4000000C - STATUS_NULL_LM_PASSWORD NTStatus = 0x4000000D - STATUS_IMAGE_MACHINE_TYPE_MISMATCH NTStatus = 0x4000000E - STATUS_RECEIVE_PARTIAL NTStatus = 0x4000000F - STATUS_RECEIVE_EXPEDITED NTStatus = 0x40000010 - STATUS_RECEIVE_PARTIAL_EXPEDITED NTStatus = 0x40000011 - STATUS_EVENT_DONE NTStatus = 0x40000012 - STATUS_EVENT_PENDING NTStatus = 0x40000013 - STATUS_CHECKING_FILE_SYSTEM NTStatus = 0x40000014 - STATUS_FATAL_APP_EXIT NTStatus = 0x40000015 - STATUS_PREDEFINED_HANDLE NTStatus = 0x40000016 - STATUS_WAS_UNLOCKED NTStatus = 0x40000017 - STATUS_SERVICE_NOTIFICATION NTStatus = 0x40000018 - STATUS_WAS_LOCKED NTStatus = 0x40000019 - STATUS_LOG_HARD_ERROR NTStatus = 0x4000001A - STATUS_ALREADY_WIN32 NTStatus = 0x4000001B - STATUS_WX86_UNSIMULATE NTStatus = 0x4000001C - STATUS_WX86_CONTINUE NTStatus = 0x4000001D - STATUS_WX86_SINGLE_STEP NTStatus = 0x4000001E - STATUS_WX86_BREAKPOINT NTStatus = 0x4000001F - STATUS_WX86_EXCEPTION_CONTINUE NTStatus = 0x40000020 - STATUS_WX86_EXCEPTION_LASTCHANCE NTStatus = 0x40000021 - STATUS_WX86_EXCEPTION_CHAIN NTStatus = 0x40000022 - STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE NTStatus = 0x40000023 - STATUS_NO_YIELD_PERFORMED NTStatus = 0x40000024 - STATUS_TIMER_RESUME_IGNORED NTStatus = 0x40000025 - STATUS_ARBITRATION_UNHANDLED NTStatus = 0x40000026 - STATUS_CARDBUS_NOT_SUPPORTED NTStatus = 0x40000027 - STATUS_WX86_CREATEWX86TIB NTStatus = 0x40000028 - STATUS_MP_PROCESSOR_MISMATCH NTStatus = 0x40000029 - STATUS_HIBERNATED NTStatus = 0x4000002A - STATUS_RESUME_HIBERNATION NTStatus = 0x4000002B - STATUS_FIRMWARE_UPDATED NTStatus = 0x4000002C - STATUS_DRIVERS_LEAKING_LOCKED_PAGES NTStatus = 0x4000002D - STATUS_MESSAGE_RETRIEVED NTStatus = 0x4000002E - STATUS_SYSTEM_POWERSTATE_TRANSITION NTStatus = 0x4000002F - STATUS_ALPC_CHECK_COMPLETION_LIST NTStatus = 0x40000030 - STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION NTStatus = 0x40000031 - STATUS_ACCESS_AUDIT_BY_POLICY NTStatus = 0x40000032 - STATUS_ABANDON_HIBERFILE NTStatus = 0x40000033 - STATUS_BIZRULES_NOT_ENABLED NTStatus = 0x40000034 - STATUS_FT_READ_FROM_COPY NTStatus = 0x40000035 - STATUS_IMAGE_AT_DIFFERENT_BASE NTStatus = 0x40000036 - STATUS_PATCH_DEFERRED NTStatus = 0x40000037 - STATUS_HEURISTIC_DAMAGE_POSSIBLE NTStatus = 0x40190001 - STATUS_GUARD_PAGE_VIOLATION NTStatus = 0x80000001 - STATUS_DATATYPE_MISALIGNMENT NTStatus = 0x80000002 - STATUS_BREAKPOINT NTStatus = 0x80000003 - STATUS_SINGLE_STEP NTStatus = 0x80000004 - STATUS_BUFFER_OVERFLOW NTStatus = 0x80000005 - STATUS_NO_MORE_FILES NTStatus = 0x80000006 - STATUS_WAKE_SYSTEM_DEBUGGER NTStatus = 0x80000007 - STATUS_HANDLES_CLOSED NTStatus = 0x8000000A - STATUS_NO_INHERITANCE NTStatus = 0x8000000B - STATUS_GUID_SUBSTITUTION_MADE NTStatus = 0x8000000C - STATUS_PARTIAL_COPY NTStatus = 0x8000000D - STATUS_DEVICE_PAPER_EMPTY NTStatus = 0x8000000E - STATUS_DEVICE_POWERED_OFF NTStatus = 0x8000000F - STATUS_DEVICE_OFF_LINE NTStatus = 0x80000010 - STATUS_DEVICE_BUSY NTStatus = 0x80000011 - STATUS_NO_MORE_EAS NTStatus = 0x80000012 - STATUS_INVALID_EA_NAME NTStatus = 0x80000013 - STATUS_EA_LIST_INCONSISTENT NTStatus = 0x80000014 - STATUS_INVALID_EA_FLAG NTStatus = 0x80000015 - STATUS_VERIFY_REQUIRED NTStatus = 0x80000016 - STATUS_EXTRANEOUS_INFORMATION NTStatus = 0x80000017 - STATUS_RXACT_COMMIT_NECESSARY NTStatus = 0x80000018 - STATUS_NO_MORE_ENTRIES NTStatus = 0x8000001A - STATUS_FILEMARK_DETECTED NTStatus = 0x8000001B - STATUS_MEDIA_CHANGED NTStatus = 0x8000001C - STATUS_BUS_RESET NTStatus = 0x8000001D - STATUS_END_OF_MEDIA NTStatus = 0x8000001E - STATUS_BEGINNING_OF_MEDIA NTStatus = 0x8000001F - STATUS_MEDIA_CHECK NTStatus = 0x80000020 - STATUS_SETMARK_DETECTED NTStatus = 0x80000021 - STATUS_NO_DATA_DETECTED NTStatus = 0x80000022 - STATUS_REDIRECTOR_HAS_OPEN_HANDLES NTStatus = 0x80000023 - STATUS_SERVER_HAS_OPEN_HANDLES NTStatus = 0x80000024 - STATUS_ALREADY_DISCONNECTED NTStatus = 0x80000025 - STATUS_LONGJUMP NTStatus = 0x80000026 - STATUS_CLEANER_CARTRIDGE_INSTALLED NTStatus = 0x80000027 - STATUS_PLUGPLAY_QUERY_VETOED NTStatus = 0x80000028 - STATUS_UNWIND_CONSOLIDATE NTStatus = 0x80000029 - STATUS_REGISTRY_HIVE_RECOVERED NTStatus = 0x8000002A - STATUS_DLL_MIGHT_BE_INSECURE NTStatus = 0x8000002B - STATUS_DLL_MIGHT_BE_INCOMPATIBLE NTStatus = 0x8000002C - STATUS_STOPPED_ON_SYMLINK NTStatus = 0x8000002D - STATUS_CANNOT_GRANT_REQUESTED_OPLOCK NTStatus = 0x8000002E - STATUS_NO_ACE_CONDITION NTStatus = 0x8000002F - STATUS_DEVICE_SUPPORT_IN_PROGRESS NTStatus = 0x80000030 - STATUS_DEVICE_POWER_CYCLE_REQUIRED NTStatus = 0x80000031 - STATUS_NO_WORK_DONE NTStatus = 0x80000032 - STATUS_CLUSTER_NODE_ALREADY_UP NTStatus = 0x80130001 - STATUS_CLUSTER_NODE_ALREADY_DOWN NTStatus = 0x80130002 - STATUS_CLUSTER_NETWORK_ALREADY_ONLINE NTStatus = 0x80130003 - STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE NTStatus = 0x80130004 - STATUS_CLUSTER_NODE_ALREADY_MEMBER NTStatus = 0x80130005 - STATUS_FLT_BUFFER_TOO_SMALL NTStatus = 0x801C0001 - STATUS_FVE_PARTIAL_METADATA NTStatus = 0x80210001 - STATUS_FVE_TRANSIENT_STATE NTStatus = 0x80210002 - STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH NTStatus = 0x8000CF00 - STATUS_UNSUCCESSFUL NTStatus = 0xC0000001 - STATUS_NOT_IMPLEMENTED NTStatus = 0xC0000002 - STATUS_INVALID_INFO_CLASS NTStatus = 0xC0000003 - STATUS_INFO_LENGTH_MISMATCH NTStatus = 0xC0000004 - STATUS_ACCESS_VIOLATION NTStatus = 0xC0000005 - STATUS_IN_PAGE_ERROR NTStatus = 0xC0000006 - STATUS_PAGEFILE_QUOTA NTStatus = 0xC0000007 - STATUS_INVALID_HANDLE NTStatus = 0xC0000008 - STATUS_BAD_INITIAL_STACK NTStatus = 0xC0000009 - STATUS_BAD_INITIAL_PC NTStatus = 0xC000000A - STATUS_INVALID_CID NTStatus = 0xC000000B - STATUS_TIMER_NOT_CANCELED NTStatus = 0xC000000C - STATUS_INVALID_PARAMETER NTStatus = 0xC000000D - STATUS_NO_SUCH_DEVICE NTStatus = 0xC000000E - STATUS_NO_SUCH_FILE NTStatus = 0xC000000F - STATUS_INVALID_DEVICE_REQUEST NTStatus = 0xC0000010 - STATUS_END_OF_FILE NTStatus = 0xC0000011 - STATUS_WRONG_VOLUME NTStatus = 0xC0000012 - STATUS_NO_MEDIA_IN_DEVICE NTStatus = 0xC0000013 - STATUS_UNRECOGNIZED_MEDIA NTStatus = 0xC0000014 - STATUS_NONEXISTENT_SECTOR NTStatus = 0xC0000015 - STATUS_MORE_PROCESSING_REQUIRED NTStatus = 0xC0000016 - STATUS_NO_MEMORY NTStatus = 0xC0000017 - STATUS_CONFLICTING_ADDRESSES NTStatus = 0xC0000018 - STATUS_NOT_MAPPED_VIEW NTStatus = 0xC0000019 - STATUS_UNABLE_TO_FREE_VM NTStatus = 0xC000001A - STATUS_UNABLE_TO_DELETE_SECTION NTStatus = 0xC000001B - STATUS_INVALID_SYSTEM_SERVICE NTStatus = 0xC000001C - STATUS_ILLEGAL_INSTRUCTION NTStatus = 0xC000001D - STATUS_INVALID_LOCK_SEQUENCE NTStatus = 0xC000001E - STATUS_INVALID_VIEW_SIZE NTStatus = 0xC000001F - STATUS_INVALID_FILE_FOR_SECTION NTStatus = 0xC0000020 - STATUS_ALREADY_COMMITTED NTStatus = 0xC0000021 - STATUS_ACCESS_DENIED NTStatus = 0xC0000022 - STATUS_BUFFER_TOO_SMALL NTStatus = 0xC0000023 - STATUS_OBJECT_TYPE_MISMATCH NTStatus = 0xC0000024 - STATUS_NONCONTINUABLE_EXCEPTION NTStatus = 0xC0000025 - STATUS_INVALID_DISPOSITION NTStatus = 0xC0000026 - STATUS_UNWIND NTStatus = 0xC0000027 - STATUS_BAD_STACK NTStatus = 0xC0000028 - STATUS_INVALID_UNWIND_TARGET NTStatus = 0xC0000029 - STATUS_NOT_LOCKED NTStatus = 0xC000002A - STATUS_PARITY_ERROR NTStatus = 0xC000002B - STATUS_UNABLE_TO_DECOMMIT_VM NTStatus = 0xC000002C - STATUS_NOT_COMMITTED NTStatus = 0xC000002D - STATUS_INVALID_PORT_ATTRIBUTES NTStatus = 0xC000002E - STATUS_PORT_MESSAGE_TOO_LONG NTStatus = 0xC000002F - STATUS_INVALID_PARAMETER_MIX NTStatus = 0xC0000030 - STATUS_INVALID_QUOTA_LOWER NTStatus = 0xC0000031 - STATUS_DISK_CORRUPT_ERROR NTStatus = 0xC0000032 - STATUS_OBJECT_NAME_INVALID NTStatus = 0xC0000033 - STATUS_OBJECT_NAME_NOT_FOUND NTStatus = 0xC0000034 - STATUS_OBJECT_NAME_COLLISION NTStatus = 0xC0000035 - STATUS_PORT_DO_NOT_DISTURB NTStatus = 0xC0000036 - STATUS_PORT_DISCONNECTED NTStatus = 0xC0000037 - STATUS_DEVICE_ALREADY_ATTACHED NTStatus = 0xC0000038 - STATUS_OBJECT_PATH_INVALID NTStatus = 0xC0000039 - STATUS_OBJECT_PATH_NOT_FOUND NTStatus = 0xC000003A - STATUS_OBJECT_PATH_SYNTAX_BAD NTStatus = 0xC000003B - STATUS_DATA_OVERRUN NTStatus = 0xC000003C - STATUS_DATA_LATE_ERROR NTStatus = 0xC000003D - STATUS_DATA_ERROR NTStatus = 0xC000003E - STATUS_CRC_ERROR NTStatus = 0xC000003F - STATUS_SECTION_TOO_BIG NTStatus = 0xC0000040 - STATUS_PORT_CONNECTION_REFUSED NTStatus = 0xC0000041 - STATUS_INVALID_PORT_HANDLE NTStatus = 0xC0000042 - STATUS_SHARING_VIOLATION NTStatus = 0xC0000043 - STATUS_QUOTA_EXCEEDED NTStatus = 0xC0000044 - STATUS_INVALID_PAGE_PROTECTION NTStatus = 0xC0000045 - STATUS_MUTANT_NOT_OWNED NTStatus = 0xC0000046 - STATUS_SEMAPHORE_LIMIT_EXCEEDED NTStatus = 0xC0000047 - STATUS_PORT_ALREADY_SET NTStatus = 0xC0000048 - STATUS_SECTION_NOT_IMAGE NTStatus = 0xC0000049 - STATUS_SUSPEND_COUNT_EXCEEDED NTStatus = 0xC000004A - STATUS_THREAD_IS_TERMINATING NTStatus = 0xC000004B - STATUS_BAD_WORKING_SET_LIMIT NTStatus = 0xC000004C - STATUS_INCOMPATIBLE_FILE_MAP NTStatus = 0xC000004D - STATUS_SECTION_PROTECTION NTStatus = 0xC000004E - STATUS_EAS_NOT_SUPPORTED NTStatus = 0xC000004F - STATUS_EA_TOO_LARGE NTStatus = 0xC0000050 - STATUS_NONEXISTENT_EA_ENTRY NTStatus = 0xC0000051 - STATUS_NO_EAS_ON_FILE NTStatus = 0xC0000052 - STATUS_EA_CORRUPT_ERROR NTStatus = 0xC0000053 - STATUS_FILE_LOCK_CONFLICT NTStatus = 0xC0000054 - STATUS_LOCK_NOT_GRANTED NTStatus = 0xC0000055 - STATUS_DELETE_PENDING NTStatus = 0xC0000056 - STATUS_CTL_FILE_NOT_SUPPORTED NTStatus = 0xC0000057 - STATUS_UNKNOWN_REVISION NTStatus = 0xC0000058 - STATUS_REVISION_MISMATCH NTStatus = 0xC0000059 - STATUS_INVALID_OWNER NTStatus = 0xC000005A - STATUS_INVALID_PRIMARY_GROUP NTStatus = 0xC000005B - STATUS_NO_IMPERSONATION_TOKEN NTStatus = 0xC000005C - STATUS_CANT_DISABLE_MANDATORY NTStatus = 0xC000005D - STATUS_NO_LOGON_SERVERS NTStatus = 0xC000005E - STATUS_NO_SUCH_LOGON_SESSION NTStatus = 0xC000005F - STATUS_NO_SUCH_PRIVILEGE NTStatus = 0xC0000060 - STATUS_PRIVILEGE_NOT_HELD NTStatus = 0xC0000061 - STATUS_INVALID_ACCOUNT_NAME NTStatus = 0xC0000062 - STATUS_USER_EXISTS NTStatus = 0xC0000063 - STATUS_NO_SUCH_USER NTStatus = 0xC0000064 - STATUS_GROUP_EXISTS NTStatus = 0xC0000065 - STATUS_NO_SUCH_GROUP NTStatus = 0xC0000066 - STATUS_MEMBER_IN_GROUP NTStatus = 0xC0000067 - STATUS_MEMBER_NOT_IN_GROUP NTStatus = 0xC0000068 - STATUS_LAST_ADMIN NTStatus = 0xC0000069 - STATUS_WRONG_PASSWORD NTStatus = 0xC000006A - STATUS_ILL_FORMED_PASSWORD NTStatus = 0xC000006B - STATUS_PASSWORD_RESTRICTION NTStatus = 0xC000006C - STATUS_LOGON_FAILURE NTStatus = 0xC000006D - STATUS_ACCOUNT_RESTRICTION NTStatus = 0xC000006E - STATUS_INVALID_LOGON_HOURS NTStatus = 0xC000006F - STATUS_INVALID_WORKSTATION NTStatus = 0xC0000070 - STATUS_PASSWORD_EXPIRED NTStatus = 0xC0000071 - STATUS_ACCOUNT_DISABLED NTStatus = 0xC0000072 - STATUS_NONE_MAPPED NTStatus = 0xC0000073 - STATUS_TOO_MANY_LUIDS_REQUESTED NTStatus = 0xC0000074 - STATUS_LUIDS_EXHAUSTED NTStatus = 0xC0000075 - STATUS_INVALID_SUB_AUTHORITY NTStatus = 0xC0000076 - STATUS_INVALID_ACL NTStatus = 0xC0000077 - STATUS_INVALID_SID NTStatus = 0xC0000078 - STATUS_INVALID_SECURITY_DESCR NTStatus = 0xC0000079 - STATUS_PROCEDURE_NOT_FOUND NTStatus = 0xC000007A - STATUS_INVALID_IMAGE_FORMAT NTStatus = 0xC000007B - STATUS_NO_TOKEN NTStatus = 0xC000007C - STATUS_BAD_INHERITANCE_ACL NTStatus = 0xC000007D - STATUS_RANGE_NOT_LOCKED NTStatus = 0xC000007E - STATUS_DISK_FULL NTStatus = 0xC000007F - STATUS_SERVER_DISABLED NTStatus = 0xC0000080 - STATUS_SERVER_NOT_DISABLED NTStatus = 0xC0000081 - STATUS_TOO_MANY_GUIDS_REQUESTED NTStatus = 0xC0000082 - STATUS_GUIDS_EXHAUSTED NTStatus = 0xC0000083 - STATUS_INVALID_ID_AUTHORITY NTStatus = 0xC0000084 - STATUS_AGENTS_EXHAUSTED NTStatus = 0xC0000085 - STATUS_INVALID_VOLUME_LABEL NTStatus = 0xC0000086 - STATUS_SECTION_NOT_EXTENDED NTStatus = 0xC0000087 - STATUS_NOT_MAPPED_DATA NTStatus = 0xC0000088 - STATUS_RESOURCE_DATA_NOT_FOUND NTStatus = 0xC0000089 - STATUS_RESOURCE_TYPE_NOT_FOUND NTStatus = 0xC000008A - STATUS_RESOURCE_NAME_NOT_FOUND NTStatus = 0xC000008B - STATUS_ARRAY_BOUNDS_EXCEEDED NTStatus = 0xC000008C - STATUS_FLOAT_DENORMAL_OPERAND NTStatus = 0xC000008D - STATUS_FLOAT_DIVIDE_BY_ZERO NTStatus = 0xC000008E - STATUS_FLOAT_INEXACT_RESULT NTStatus = 0xC000008F - STATUS_FLOAT_INVALID_OPERATION NTStatus = 0xC0000090 - STATUS_FLOAT_OVERFLOW NTStatus = 0xC0000091 - STATUS_FLOAT_STACK_CHECK NTStatus = 0xC0000092 - STATUS_FLOAT_UNDERFLOW NTStatus = 0xC0000093 - STATUS_INTEGER_DIVIDE_BY_ZERO NTStatus = 0xC0000094 - STATUS_INTEGER_OVERFLOW NTStatus = 0xC0000095 - STATUS_PRIVILEGED_INSTRUCTION NTStatus = 0xC0000096 - STATUS_TOO_MANY_PAGING_FILES NTStatus = 0xC0000097 - STATUS_FILE_INVALID NTStatus = 0xC0000098 - STATUS_ALLOTTED_SPACE_EXCEEDED NTStatus = 0xC0000099 - STATUS_INSUFFICIENT_RESOURCES NTStatus = 0xC000009A - STATUS_DFS_EXIT_PATH_FOUND NTStatus = 0xC000009B - STATUS_DEVICE_DATA_ERROR NTStatus = 0xC000009C - STATUS_DEVICE_NOT_CONNECTED NTStatus = 0xC000009D - STATUS_DEVICE_POWER_FAILURE NTStatus = 0xC000009E - STATUS_FREE_VM_NOT_AT_BASE NTStatus = 0xC000009F - STATUS_MEMORY_NOT_ALLOCATED NTStatus = 0xC00000A0 - STATUS_WORKING_SET_QUOTA NTStatus = 0xC00000A1 - STATUS_MEDIA_WRITE_PROTECTED NTStatus = 0xC00000A2 - STATUS_DEVICE_NOT_READY NTStatus = 0xC00000A3 - STATUS_INVALID_GROUP_ATTRIBUTES NTStatus = 0xC00000A4 - STATUS_BAD_IMPERSONATION_LEVEL NTStatus = 0xC00000A5 - STATUS_CANT_OPEN_ANONYMOUS NTStatus = 0xC00000A6 - STATUS_BAD_VALIDATION_CLASS NTStatus = 0xC00000A7 - STATUS_BAD_TOKEN_TYPE NTStatus = 0xC00000A8 - STATUS_BAD_MASTER_BOOT_RECORD NTStatus = 0xC00000A9 - STATUS_INSTRUCTION_MISALIGNMENT NTStatus = 0xC00000AA - STATUS_INSTANCE_NOT_AVAILABLE NTStatus = 0xC00000AB - STATUS_PIPE_NOT_AVAILABLE NTStatus = 0xC00000AC - STATUS_INVALID_PIPE_STATE NTStatus = 0xC00000AD - STATUS_PIPE_BUSY NTStatus = 0xC00000AE - STATUS_ILLEGAL_FUNCTION NTStatus = 0xC00000AF - STATUS_PIPE_DISCONNECTED NTStatus = 0xC00000B0 - STATUS_PIPE_CLOSING NTStatus = 0xC00000B1 - STATUS_PIPE_CONNECTED NTStatus = 0xC00000B2 - STATUS_PIPE_LISTENING NTStatus = 0xC00000B3 - STATUS_INVALID_READ_MODE NTStatus = 0xC00000B4 - STATUS_IO_TIMEOUT NTStatus = 0xC00000B5 - STATUS_FILE_FORCED_CLOSED NTStatus = 0xC00000B6 - STATUS_PROFILING_NOT_STARTED NTStatus = 0xC00000B7 - STATUS_PROFILING_NOT_STOPPED NTStatus = 0xC00000B8 - STATUS_COULD_NOT_INTERPRET NTStatus = 0xC00000B9 - STATUS_FILE_IS_A_DIRECTORY NTStatus = 0xC00000BA - STATUS_NOT_SUPPORTED NTStatus = 0xC00000BB - STATUS_REMOTE_NOT_LISTENING NTStatus = 0xC00000BC - STATUS_DUPLICATE_NAME NTStatus = 0xC00000BD - STATUS_BAD_NETWORK_PATH NTStatus = 0xC00000BE - STATUS_NETWORK_BUSY NTStatus = 0xC00000BF - STATUS_DEVICE_DOES_NOT_EXIST NTStatus = 0xC00000C0 - STATUS_TOO_MANY_COMMANDS NTStatus = 0xC00000C1 - STATUS_ADAPTER_HARDWARE_ERROR NTStatus = 0xC00000C2 - STATUS_INVALID_NETWORK_RESPONSE NTStatus = 0xC00000C3 - STATUS_UNEXPECTED_NETWORK_ERROR NTStatus = 0xC00000C4 - STATUS_BAD_REMOTE_ADAPTER NTStatus = 0xC00000C5 - STATUS_PRINT_QUEUE_FULL NTStatus = 0xC00000C6 - STATUS_NO_SPOOL_SPACE NTStatus = 0xC00000C7 - STATUS_PRINT_CANCELLED NTStatus = 0xC00000C8 - STATUS_NETWORK_NAME_DELETED NTStatus = 0xC00000C9 - STATUS_NETWORK_ACCESS_DENIED NTStatus = 0xC00000CA - STATUS_BAD_DEVICE_TYPE NTStatus = 0xC00000CB - STATUS_BAD_NETWORK_NAME NTStatus = 0xC00000CC - STATUS_TOO_MANY_NAMES NTStatus = 0xC00000CD - STATUS_TOO_MANY_SESSIONS NTStatus = 0xC00000CE - STATUS_SHARING_PAUSED NTStatus = 0xC00000CF - STATUS_REQUEST_NOT_ACCEPTED NTStatus = 0xC00000D0 - STATUS_REDIRECTOR_PAUSED NTStatus = 0xC00000D1 - STATUS_NET_WRITE_FAULT NTStatus = 0xC00000D2 - STATUS_PROFILING_AT_LIMIT NTStatus = 0xC00000D3 - STATUS_NOT_SAME_DEVICE NTStatus = 0xC00000D4 - STATUS_FILE_RENAMED NTStatus = 0xC00000D5 - STATUS_VIRTUAL_CIRCUIT_CLOSED NTStatus = 0xC00000D6 - STATUS_NO_SECURITY_ON_OBJECT NTStatus = 0xC00000D7 - STATUS_CANT_WAIT NTStatus = 0xC00000D8 - STATUS_PIPE_EMPTY NTStatus = 0xC00000D9 - STATUS_CANT_ACCESS_DOMAIN_INFO NTStatus = 0xC00000DA - STATUS_CANT_TERMINATE_SELF NTStatus = 0xC00000DB - STATUS_INVALID_SERVER_STATE NTStatus = 0xC00000DC - STATUS_INVALID_DOMAIN_STATE NTStatus = 0xC00000DD - STATUS_INVALID_DOMAIN_ROLE NTStatus = 0xC00000DE - STATUS_NO_SUCH_DOMAIN NTStatus = 0xC00000DF - STATUS_DOMAIN_EXISTS NTStatus = 0xC00000E0 - STATUS_DOMAIN_LIMIT_EXCEEDED NTStatus = 0xC00000E1 - STATUS_OPLOCK_NOT_GRANTED NTStatus = 0xC00000E2 - STATUS_INVALID_OPLOCK_PROTOCOL NTStatus = 0xC00000E3 - STATUS_INTERNAL_DB_CORRUPTION NTStatus = 0xC00000E4 - STATUS_INTERNAL_ERROR NTStatus = 0xC00000E5 - STATUS_GENERIC_NOT_MAPPED NTStatus = 0xC00000E6 - STATUS_BAD_DESCRIPTOR_FORMAT NTStatus = 0xC00000E7 - STATUS_INVALID_USER_BUFFER NTStatus = 0xC00000E8 - STATUS_UNEXPECTED_IO_ERROR NTStatus = 0xC00000E9 - STATUS_UNEXPECTED_MM_CREATE_ERR NTStatus = 0xC00000EA - STATUS_UNEXPECTED_MM_MAP_ERROR NTStatus = 0xC00000EB - STATUS_UNEXPECTED_MM_EXTEND_ERR NTStatus = 0xC00000EC - STATUS_NOT_LOGON_PROCESS NTStatus = 0xC00000ED - STATUS_LOGON_SESSION_EXISTS NTStatus = 0xC00000EE - STATUS_INVALID_PARAMETER_1 NTStatus = 0xC00000EF - STATUS_INVALID_PARAMETER_2 NTStatus = 0xC00000F0 - STATUS_INVALID_PARAMETER_3 NTStatus = 0xC00000F1 - STATUS_INVALID_PARAMETER_4 NTStatus = 0xC00000F2 - STATUS_INVALID_PARAMETER_5 NTStatus = 0xC00000F3 - STATUS_INVALID_PARAMETER_6 NTStatus = 0xC00000F4 - STATUS_INVALID_PARAMETER_7 NTStatus = 0xC00000F5 - STATUS_INVALID_PARAMETER_8 NTStatus = 0xC00000F6 - STATUS_INVALID_PARAMETER_9 NTStatus = 0xC00000F7 - STATUS_INVALID_PARAMETER_10 NTStatus = 0xC00000F8 - STATUS_INVALID_PARAMETER_11 NTStatus = 0xC00000F9 - STATUS_INVALID_PARAMETER_12 NTStatus = 0xC00000FA - STATUS_REDIRECTOR_NOT_STARTED NTStatus = 0xC00000FB - STATUS_REDIRECTOR_STARTED NTStatus = 0xC00000FC - STATUS_STACK_OVERFLOW NTStatus = 0xC00000FD - STATUS_NO_SUCH_PACKAGE NTStatus = 0xC00000FE - STATUS_BAD_FUNCTION_TABLE NTStatus = 0xC00000FF - STATUS_VARIABLE_NOT_FOUND NTStatus = 0xC0000100 - STATUS_DIRECTORY_NOT_EMPTY NTStatus = 0xC0000101 - STATUS_FILE_CORRUPT_ERROR NTStatus = 0xC0000102 - STATUS_NOT_A_DIRECTORY NTStatus = 0xC0000103 - STATUS_BAD_LOGON_SESSION_STATE NTStatus = 0xC0000104 - STATUS_LOGON_SESSION_COLLISION NTStatus = 0xC0000105 - STATUS_NAME_TOO_LONG NTStatus = 0xC0000106 - STATUS_FILES_OPEN NTStatus = 0xC0000107 - STATUS_CONNECTION_IN_USE NTStatus = 0xC0000108 - STATUS_MESSAGE_NOT_FOUND NTStatus = 0xC0000109 - STATUS_PROCESS_IS_TERMINATING NTStatus = 0xC000010A - STATUS_INVALID_LOGON_TYPE NTStatus = 0xC000010B - STATUS_NO_GUID_TRANSLATION NTStatus = 0xC000010C - STATUS_CANNOT_IMPERSONATE NTStatus = 0xC000010D - STATUS_IMAGE_ALREADY_LOADED NTStatus = 0xC000010E - STATUS_ABIOS_NOT_PRESENT NTStatus = 0xC000010F - STATUS_ABIOS_LID_NOT_EXIST NTStatus = 0xC0000110 - STATUS_ABIOS_LID_ALREADY_OWNED NTStatus = 0xC0000111 - STATUS_ABIOS_NOT_LID_OWNER NTStatus = 0xC0000112 - STATUS_ABIOS_INVALID_COMMAND NTStatus = 0xC0000113 - STATUS_ABIOS_INVALID_LID NTStatus = 0xC0000114 - STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NTStatus = 0xC0000115 - STATUS_ABIOS_INVALID_SELECTOR NTStatus = 0xC0000116 - STATUS_NO_LDT NTStatus = 0xC0000117 - STATUS_INVALID_LDT_SIZE NTStatus = 0xC0000118 - STATUS_INVALID_LDT_OFFSET NTStatus = 0xC0000119 - STATUS_INVALID_LDT_DESCRIPTOR NTStatus = 0xC000011A - STATUS_INVALID_IMAGE_NE_FORMAT NTStatus = 0xC000011B - STATUS_RXACT_INVALID_STATE NTStatus = 0xC000011C - STATUS_RXACT_COMMIT_FAILURE NTStatus = 0xC000011D - STATUS_MAPPED_FILE_SIZE_ZERO NTStatus = 0xC000011E - STATUS_TOO_MANY_OPENED_FILES NTStatus = 0xC000011F - STATUS_CANCELLED NTStatus = 0xC0000120 - STATUS_CANNOT_DELETE NTStatus = 0xC0000121 - STATUS_INVALID_COMPUTER_NAME NTStatus = 0xC0000122 - STATUS_FILE_DELETED NTStatus = 0xC0000123 - STATUS_SPECIAL_ACCOUNT NTStatus = 0xC0000124 - STATUS_SPECIAL_GROUP NTStatus = 0xC0000125 - STATUS_SPECIAL_USER NTStatus = 0xC0000126 - STATUS_MEMBERS_PRIMARY_GROUP NTStatus = 0xC0000127 - STATUS_FILE_CLOSED NTStatus = 0xC0000128 - STATUS_TOO_MANY_THREADS NTStatus = 0xC0000129 - STATUS_THREAD_NOT_IN_PROCESS NTStatus = 0xC000012A - STATUS_TOKEN_ALREADY_IN_USE NTStatus = 0xC000012B - STATUS_PAGEFILE_QUOTA_EXCEEDED NTStatus = 0xC000012C - STATUS_COMMITMENT_LIMIT NTStatus = 0xC000012D - STATUS_INVALID_IMAGE_LE_FORMAT NTStatus = 0xC000012E - STATUS_INVALID_IMAGE_NOT_MZ NTStatus = 0xC000012F - STATUS_INVALID_IMAGE_PROTECT NTStatus = 0xC0000130 - STATUS_INVALID_IMAGE_WIN_16 NTStatus = 0xC0000131 - STATUS_LOGON_SERVER_CONFLICT NTStatus = 0xC0000132 - STATUS_TIME_DIFFERENCE_AT_DC NTStatus = 0xC0000133 - STATUS_SYNCHRONIZATION_REQUIRED NTStatus = 0xC0000134 - STATUS_DLL_NOT_FOUND NTStatus = 0xC0000135 - STATUS_OPEN_FAILED NTStatus = 0xC0000136 - STATUS_IO_PRIVILEGE_FAILED NTStatus = 0xC0000137 - STATUS_ORDINAL_NOT_FOUND NTStatus = 0xC0000138 - STATUS_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000139 - STATUS_CONTROL_C_EXIT NTStatus = 0xC000013A - STATUS_LOCAL_DISCONNECT NTStatus = 0xC000013B - STATUS_REMOTE_DISCONNECT NTStatus = 0xC000013C - STATUS_REMOTE_RESOURCES NTStatus = 0xC000013D - STATUS_LINK_FAILED NTStatus = 0xC000013E - STATUS_LINK_TIMEOUT NTStatus = 0xC000013F - STATUS_INVALID_CONNECTION NTStatus = 0xC0000140 - STATUS_INVALID_ADDRESS NTStatus = 0xC0000141 - STATUS_DLL_INIT_FAILED NTStatus = 0xC0000142 - STATUS_MISSING_SYSTEMFILE NTStatus = 0xC0000143 - STATUS_UNHANDLED_EXCEPTION NTStatus = 0xC0000144 - STATUS_APP_INIT_FAILURE NTStatus = 0xC0000145 - STATUS_PAGEFILE_CREATE_FAILED NTStatus = 0xC0000146 - STATUS_NO_PAGEFILE NTStatus = 0xC0000147 - STATUS_INVALID_LEVEL NTStatus = 0xC0000148 - STATUS_WRONG_PASSWORD_CORE NTStatus = 0xC0000149 - STATUS_ILLEGAL_FLOAT_CONTEXT NTStatus = 0xC000014A - STATUS_PIPE_BROKEN NTStatus = 0xC000014B - STATUS_REGISTRY_CORRUPT NTStatus = 0xC000014C - STATUS_REGISTRY_IO_FAILED NTStatus = 0xC000014D - STATUS_NO_EVENT_PAIR NTStatus = 0xC000014E - STATUS_UNRECOGNIZED_VOLUME NTStatus = 0xC000014F - STATUS_SERIAL_NO_DEVICE_INITED NTStatus = 0xC0000150 - STATUS_NO_SUCH_ALIAS NTStatus = 0xC0000151 - STATUS_MEMBER_NOT_IN_ALIAS NTStatus = 0xC0000152 - STATUS_MEMBER_IN_ALIAS NTStatus = 0xC0000153 - STATUS_ALIAS_EXISTS NTStatus = 0xC0000154 - STATUS_LOGON_NOT_GRANTED NTStatus = 0xC0000155 - STATUS_TOO_MANY_SECRETS NTStatus = 0xC0000156 - STATUS_SECRET_TOO_LONG NTStatus = 0xC0000157 - STATUS_INTERNAL_DB_ERROR NTStatus = 0xC0000158 - STATUS_FULLSCREEN_MODE NTStatus = 0xC0000159 - STATUS_TOO_MANY_CONTEXT_IDS NTStatus = 0xC000015A - STATUS_LOGON_TYPE_NOT_GRANTED NTStatus = 0xC000015B - STATUS_NOT_REGISTRY_FILE NTStatus = 0xC000015C - STATUS_NT_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000015D - STATUS_DOMAIN_CTRLR_CONFIG_ERROR NTStatus = 0xC000015E - STATUS_FT_MISSING_MEMBER NTStatus = 0xC000015F - STATUS_ILL_FORMED_SERVICE_ENTRY NTStatus = 0xC0000160 - STATUS_ILLEGAL_CHARACTER NTStatus = 0xC0000161 - STATUS_UNMAPPABLE_CHARACTER NTStatus = 0xC0000162 - STATUS_UNDEFINED_CHARACTER NTStatus = 0xC0000163 - STATUS_FLOPPY_VOLUME NTStatus = 0xC0000164 - STATUS_FLOPPY_ID_MARK_NOT_FOUND NTStatus = 0xC0000165 - STATUS_FLOPPY_WRONG_CYLINDER NTStatus = 0xC0000166 - STATUS_FLOPPY_UNKNOWN_ERROR NTStatus = 0xC0000167 - STATUS_FLOPPY_BAD_REGISTERS NTStatus = 0xC0000168 - STATUS_DISK_RECALIBRATE_FAILED NTStatus = 0xC0000169 - STATUS_DISK_OPERATION_FAILED NTStatus = 0xC000016A - STATUS_DISK_RESET_FAILED NTStatus = 0xC000016B - STATUS_SHARED_IRQ_BUSY NTStatus = 0xC000016C - STATUS_FT_ORPHANING NTStatus = 0xC000016D - STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT NTStatus = 0xC000016E - STATUS_PARTITION_FAILURE NTStatus = 0xC0000172 - STATUS_INVALID_BLOCK_LENGTH NTStatus = 0xC0000173 - STATUS_DEVICE_NOT_PARTITIONED NTStatus = 0xC0000174 - STATUS_UNABLE_TO_LOCK_MEDIA NTStatus = 0xC0000175 - STATUS_UNABLE_TO_UNLOAD_MEDIA NTStatus = 0xC0000176 - STATUS_EOM_OVERFLOW NTStatus = 0xC0000177 - STATUS_NO_MEDIA NTStatus = 0xC0000178 - STATUS_NO_SUCH_MEMBER NTStatus = 0xC000017A - STATUS_INVALID_MEMBER NTStatus = 0xC000017B - STATUS_KEY_DELETED NTStatus = 0xC000017C - STATUS_NO_LOG_SPACE NTStatus = 0xC000017D - STATUS_TOO_MANY_SIDS NTStatus = 0xC000017E - STATUS_LM_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000017F - STATUS_KEY_HAS_CHILDREN NTStatus = 0xC0000180 - STATUS_CHILD_MUST_BE_VOLATILE NTStatus = 0xC0000181 - STATUS_DEVICE_CONFIGURATION_ERROR NTStatus = 0xC0000182 - STATUS_DRIVER_INTERNAL_ERROR NTStatus = 0xC0000183 - STATUS_INVALID_DEVICE_STATE NTStatus = 0xC0000184 - STATUS_IO_DEVICE_ERROR NTStatus = 0xC0000185 - STATUS_DEVICE_PROTOCOL_ERROR NTStatus = 0xC0000186 - STATUS_BACKUP_CONTROLLER NTStatus = 0xC0000187 - STATUS_LOG_FILE_FULL NTStatus = 0xC0000188 - STATUS_TOO_LATE NTStatus = 0xC0000189 - STATUS_NO_TRUST_LSA_SECRET NTStatus = 0xC000018A - STATUS_NO_TRUST_SAM_ACCOUNT NTStatus = 0xC000018B - STATUS_TRUSTED_DOMAIN_FAILURE NTStatus = 0xC000018C - STATUS_TRUSTED_RELATIONSHIP_FAILURE NTStatus = 0xC000018D - STATUS_EVENTLOG_FILE_CORRUPT NTStatus = 0xC000018E - STATUS_EVENTLOG_CANT_START NTStatus = 0xC000018F - STATUS_TRUST_FAILURE NTStatus = 0xC0000190 - STATUS_MUTANT_LIMIT_EXCEEDED NTStatus = 0xC0000191 - STATUS_NETLOGON_NOT_STARTED NTStatus = 0xC0000192 - STATUS_ACCOUNT_EXPIRED NTStatus = 0xC0000193 - STATUS_POSSIBLE_DEADLOCK NTStatus = 0xC0000194 - STATUS_NETWORK_CREDENTIAL_CONFLICT NTStatus = 0xC0000195 - STATUS_REMOTE_SESSION_LIMIT NTStatus = 0xC0000196 - STATUS_EVENTLOG_FILE_CHANGED NTStatus = 0xC0000197 - STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NTStatus = 0xC0000198 - STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NTStatus = 0xC0000199 - STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NTStatus = 0xC000019A - STATUS_DOMAIN_TRUST_INCONSISTENT NTStatus = 0xC000019B - STATUS_FS_DRIVER_REQUIRED NTStatus = 0xC000019C - STATUS_IMAGE_ALREADY_LOADED_AS_DLL NTStatus = 0xC000019D - STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING NTStatus = 0xC000019E - STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME NTStatus = 0xC000019F - STATUS_SECURITY_STREAM_IS_INCONSISTENT NTStatus = 0xC00001A0 - STATUS_INVALID_LOCK_RANGE NTStatus = 0xC00001A1 - STATUS_INVALID_ACE_CONDITION NTStatus = 0xC00001A2 - STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT NTStatus = 0xC00001A3 - STATUS_NOTIFICATION_GUID_ALREADY_DEFINED NTStatus = 0xC00001A4 - STATUS_INVALID_EXCEPTION_HANDLER NTStatus = 0xC00001A5 - STATUS_DUPLICATE_PRIVILEGES NTStatus = 0xC00001A6 - STATUS_NOT_ALLOWED_ON_SYSTEM_FILE NTStatus = 0xC00001A7 - STATUS_REPAIR_NEEDED NTStatus = 0xC00001A8 - STATUS_QUOTA_NOT_ENABLED NTStatus = 0xC00001A9 - STATUS_NO_APPLICATION_PACKAGE NTStatus = 0xC00001AA - STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS NTStatus = 0xC00001AB - STATUS_NOT_SAME_OBJECT NTStatus = 0xC00001AC - STATUS_FATAL_MEMORY_EXHAUSTION NTStatus = 0xC00001AD - STATUS_ERROR_PROCESS_NOT_IN_JOB NTStatus = 0xC00001AE - STATUS_CPU_SET_INVALID NTStatus = 0xC00001AF - STATUS_IO_DEVICE_INVALID_DATA NTStatus = 0xC00001B0 - STATUS_IO_UNALIGNED_WRITE NTStatus = 0xC00001B1 - STATUS_NETWORK_OPEN_RESTRICTION NTStatus = 0xC0000201 - STATUS_NO_USER_SESSION_KEY NTStatus = 0xC0000202 - STATUS_USER_SESSION_DELETED NTStatus = 0xC0000203 - STATUS_RESOURCE_LANG_NOT_FOUND NTStatus = 0xC0000204 - STATUS_INSUFF_SERVER_RESOURCES NTStatus = 0xC0000205 - STATUS_INVALID_BUFFER_SIZE NTStatus = 0xC0000206 - STATUS_INVALID_ADDRESS_COMPONENT NTStatus = 0xC0000207 - STATUS_INVALID_ADDRESS_WILDCARD NTStatus = 0xC0000208 - STATUS_TOO_MANY_ADDRESSES NTStatus = 0xC0000209 - STATUS_ADDRESS_ALREADY_EXISTS NTStatus = 0xC000020A - STATUS_ADDRESS_CLOSED NTStatus = 0xC000020B - STATUS_CONNECTION_DISCONNECTED NTStatus = 0xC000020C - STATUS_CONNECTION_RESET NTStatus = 0xC000020D - STATUS_TOO_MANY_NODES NTStatus = 0xC000020E - STATUS_TRANSACTION_ABORTED NTStatus = 0xC000020F - STATUS_TRANSACTION_TIMED_OUT NTStatus = 0xC0000210 - STATUS_TRANSACTION_NO_RELEASE NTStatus = 0xC0000211 - STATUS_TRANSACTION_NO_MATCH NTStatus = 0xC0000212 - STATUS_TRANSACTION_RESPONDED NTStatus = 0xC0000213 - STATUS_TRANSACTION_INVALID_ID NTStatus = 0xC0000214 - STATUS_TRANSACTION_INVALID_TYPE NTStatus = 0xC0000215 - STATUS_NOT_SERVER_SESSION NTStatus = 0xC0000216 - STATUS_NOT_CLIENT_SESSION NTStatus = 0xC0000217 - STATUS_CANNOT_LOAD_REGISTRY_FILE NTStatus = 0xC0000218 - STATUS_DEBUG_ATTACH_FAILED NTStatus = 0xC0000219 - STATUS_SYSTEM_PROCESS_TERMINATED NTStatus = 0xC000021A - STATUS_DATA_NOT_ACCEPTED NTStatus = 0xC000021B - STATUS_NO_BROWSER_SERVERS_FOUND NTStatus = 0xC000021C - STATUS_VDM_HARD_ERROR NTStatus = 0xC000021D - STATUS_DRIVER_CANCEL_TIMEOUT NTStatus = 0xC000021E - STATUS_REPLY_MESSAGE_MISMATCH NTStatus = 0xC000021F - STATUS_MAPPED_ALIGNMENT NTStatus = 0xC0000220 - STATUS_IMAGE_CHECKSUM_MISMATCH NTStatus = 0xC0000221 - STATUS_LOST_WRITEBEHIND_DATA NTStatus = 0xC0000222 - STATUS_CLIENT_SERVER_PARAMETERS_INVALID NTStatus = 0xC0000223 - STATUS_PASSWORD_MUST_CHANGE NTStatus = 0xC0000224 - STATUS_NOT_FOUND NTStatus = 0xC0000225 - STATUS_NOT_TINY_STREAM NTStatus = 0xC0000226 - STATUS_RECOVERY_FAILURE NTStatus = 0xC0000227 - STATUS_STACK_OVERFLOW_READ NTStatus = 0xC0000228 - STATUS_FAIL_CHECK NTStatus = 0xC0000229 - STATUS_DUPLICATE_OBJECTID NTStatus = 0xC000022A - STATUS_OBJECTID_EXISTS NTStatus = 0xC000022B - STATUS_CONVERT_TO_LARGE NTStatus = 0xC000022C - STATUS_RETRY NTStatus = 0xC000022D - STATUS_FOUND_OUT_OF_SCOPE NTStatus = 0xC000022E - STATUS_ALLOCATE_BUCKET NTStatus = 0xC000022F - STATUS_PROPSET_NOT_FOUND NTStatus = 0xC0000230 - STATUS_MARSHALL_OVERFLOW NTStatus = 0xC0000231 - STATUS_INVALID_VARIANT NTStatus = 0xC0000232 - STATUS_DOMAIN_CONTROLLER_NOT_FOUND NTStatus = 0xC0000233 - STATUS_ACCOUNT_LOCKED_OUT NTStatus = 0xC0000234 - STATUS_HANDLE_NOT_CLOSABLE NTStatus = 0xC0000235 - STATUS_CONNECTION_REFUSED NTStatus = 0xC0000236 - STATUS_GRACEFUL_DISCONNECT NTStatus = 0xC0000237 - STATUS_ADDRESS_ALREADY_ASSOCIATED NTStatus = 0xC0000238 - STATUS_ADDRESS_NOT_ASSOCIATED NTStatus = 0xC0000239 - STATUS_CONNECTION_INVALID NTStatus = 0xC000023A - STATUS_CONNECTION_ACTIVE NTStatus = 0xC000023B - STATUS_NETWORK_UNREACHABLE NTStatus = 0xC000023C - STATUS_HOST_UNREACHABLE NTStatus = 0xC000023D - STATUS_PROTOCOL_UNREACHABLE NTStatus = 0xC000023E - STATUS_PORT_UNREACHABLE NTStatus = 0xC000023F - STATUS_REQUEST_ABORTED NTStatus = 0xC0000240 - STATUS_CONNECTION_ABORTED NTStatus = 0xC0000241 - STATUS_BAD_COMPRESSION_BUFFER NTStatus = 0xC0000242 - STATUS_USER_MAPPED_FILE NTStatus = 0xC0000243 - STATUS_AUDIT_FAILED NTStatus = 0xC0000244 - STATUS_TIMER_RESOLUTION_NOT_SET NTStatus = 0xC0000245 - STATUS_CONNECTION_COUNT_LIMIT NTStatus = 0xC0000246 - STATUS_LOGIN_TIME_RESTRICTION NTStatus = 0xC0000247 - STATUS_LOGIN_WKSTA_RESTRICTION NTStatus = 0xC0000248 - STATUS_IMAGE_MP_UP_MISMATCH NTStatus = 0xC0000249 - STATUS_INSUFFICIENT_LOGON_INFO NTStatus = 0xC0000250 - STATUS_BAD_DLL_ENTRYPOINT NTStatus = 0xC0000251 - STATUS_BAD_SERVICE_ENTRYPOINT NTStatus = 0xC0000252 - STATUS_LPC_REPLY_LOST NTStatus = 0xC0000253 - STATUS_IP_ADDRESS_CONFLICT1 NTStatus = 0xC0000254 - STATUS_IP_ADDRESS_CONFLICT2 NTStatus = 0xC0000255 - STATUS_REGISTRY_QUOTA_LIMIT NTStatus = 0xC0000256 - STATUS_PATH_NOT_COVERED NTStatus = 0xC0000257 - STATUS_NO_CALLBACK_ACTIVE NTStatus = 0xC0000258 - STATUS_LICENSE_QUOTA_EXCEEDED NTStatus = 0xC0000259 - STATUS_PWD_TOO_SHORT NTStatus = 0xC000025A - STATUS_PWD_TOO_RECENT NTStatus = 0xC000025B - STATUS_PWD_HISTORY_CONFLICT NTStatus = 0xC000025C - STATUS_PLUGPLAY_NO_DEVICE NTStatus = 0xC000025E - STATUS_UNSUPPORTED_COMPRESSION NTStatus = 0xC000025F - STATUS_INVALID_HW_PROFILE NTStatus = 0xC0000260 - STATUS_INVALID_PLUGPLAY_DEVICE_PATH NTStatus = 0xC0000261 - STATUS_DRIVER_ORDINAL_NOT_FOUND NTStatus = 0xC0000262 - STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000263 - STATUS_RESOURCE_NOT_OWNED NTStatus = 0xC0000264 - STATUS_TOO_MANY_LINKS NTStatus = 0xC0000265 - STATUS_QUOTA_LIST_INCONSISTENT NTStatus = 0xC0000266 - STATUS_FILE_IS_OFFLINE NTStatus = 0xC0000267 - STATUS_EVALUATION_EXPIRATION NTStatus = 0xC0000268 - STATUS_ILLEGAL_DLL_RELOCATION NTStatus = 0xC0000269 - STATUS_LICENSE_VIOLATION NTStatus = 0xC000026A - STATUS_DLL_INIT_FAILED_LOGOFF NTStatus = 0xC000026B - STATUS_DRIVER_UNABLE_TO_LOAD NTStatus = 0xC000026C - STATUS_DFS_UNAVAILABLE NTStatus = 0xC000026D - STATUS_VOLUME_DISMOUNTED NTStatus = 0xC000026E - STATUS_WX86_INTERNAL_ERROR NTStatus = 0xC000026F - STATUS_WX86_FLOAT_STACK_CHECK NTStatus = 0xC0000270 - STATUS_VALIDATE_CONTINUE NTStatus = 0xC0000271 - STATUS_NO_MATCH NTStatus = 0xC0000272 - STATUS_NO_MORE_MATCHES NTStatus = 0xC0000273 - STATUS_NOT_A_REPARSE_POINT NTStatus = 0xC0000275 - STATUS_IO_REPARSE_TAG_INVALID NTStatus = 0xC0000276 - STATUS_IO_REPARSE_TAG_MISMATCH NTStatus = 0xC0000277 - STATUS_IO_REPARSE_DATA_INVALID NTStatus = 0xC0000278 - STATUS_IO_REPARSE_TAG_NOT_HANDLED NTStatus = 0xC0000279 - STATUS_PWD_TOO_LONG NTStatus = 0xC000027A - STATUS_STOWED_EXCEPTION NTStatus = 0xC000027B - STATUS_CONTEXT_STOWED_EXCEPTION NTStatus = 0xC000027C - STATUS_REPARSE_POINT_NOT_RESOLVED NTStatus = 0xC0000280 - STATUS_DIRECTORY_IS_A_REPARSE_POINT NTStatus = 0xC0000281 - STATUS_RANGE_LIST_CONFLICT NTStatus = 0xC0000282 - STATUS_SOURCE_ELEMENT_EMPTY NTStatus = 0xC0000283 - STATUS_DESTINATION_ELEMENT_FULL NTStatus = 0xC0000284 - STATUS_ILLEGAL_ELEMENT_ADDRESS NTStatus = 0xC0000285 - STATUS_MAGAZINE_NOT_PRESENT NTStatus = 0xC0000286 - STATUS_REINITIALIZATION_NEEDED NTStatus = 0xC0000287 - STATUS_DEVICE_REQUIRES_CLEANING NTStatus = 0x80000288 - STATUS_DEVICE_DOOR_OPEN NTStatus = 0x80000289 - STATUS_ENCRYPTION_FAILED NTStatus = 0xC000028A - STATUS_DECRYPTION_FAILED NTStatus = 0xC000028B - STATUS_RANGE_NOT_FOUND NTStatus = 0xC000028C - STATUS_NO_RECOVERY_POLICY NTStatus = 0xC000028D - STATUS_NO_EFS NTStatus = 0xC000028E - STATUS_WRONG_EFS NTStatus = 0xC000028F - STATUS_NO_USER_KEYS NTStatus = 0xC0000290 - STATUS_FILE_NOT_ENCRYPTED NTStatus = 0xC0000291 - STATUS_NOT_EXPORT_FORMAT NTStatus = 0xC0000292 - STATUS_FILE_ENCRYPTED NTStatus = 0xC0000293 - STATUS_WAKE_SYSTEM NTStatus = 0x40000294 - STATUS_WMI_GUID_NOT_FOUND NTStatus = 0xC0000295 - STATUS_WMI_INSTANCE_NOT_FOUND NTStatus = 0xC0000296 - STATUS_WMI_ITEMID_NOT_FOUND NTStatus = 0xC0000297 - STATUS_WMI_TRY_AGAIN NTStatus = 0xC0000298 - STATUS_SHARED_POLICY NTStatus = 0xC0000299 - STATUS_POLICY_OBJECT_NOT_FOUND NTStatus = 0xC000029A - STATUS_POLICY_ONLY_IN_DS NTStatus = 0xC000029B - STATUS_VOLUME_NOT_UPGRADED NTStatus = 0xC000029C - STATUS_REMOTE_STORAGE_NOT_ACTIVE NTStatus = 0xC000029D - STATUS_REMOTE_STORAGE_MEDIA_ERROR NTStatus = 0xC000029E - STATUS_NO_TRACKING_SERVICE NTStatus = 0xC000029F - STATUS_SERVER_SID_MISMATCH NTStatus = 0xC00002A0 - STATUS_DS_NO_ATTRIBUTE_OR_VALUE NTStatus = 0xC00002A1 - STATUS_DS_INVALID_ATTRIBUTE_SYNTAX NTStatus = 0xC00002A2 - STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED NTStatus = 0xC00002A3 - STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS NTStatus = 0xC00002A4 - STATUS_DS_BUSY NTStatus = 0xC00002A5 - STATUS_DS_UNAVAILABLE NTStatus = 0xC00002A6 - STATUS_DS_NO_RIDS_ALLOCATED NTStatus = 0xC00002A7 - STATUS_DS_NO_MORE_RIDS NTStatus = 0xC00002A8 - STATUS_DS_INCORRECT_ROLE_OWNER NTStatus = 0xC00002A9 - STATUS_DS_RIDMGR_INIT_ERROR NTStatus = 0xC00002AA - STATUS_DS_OBJ_CLASS_VIOLATION NTStatus = 0xC00002AB - STATUS_DS_CANT_ON_NON_LEAF NTStatus = 0xC00002AC - STATUS_DS_CANT_ON_RDN NTStatus = 0xC00002AD - STATUS_DS_CANT_MOD_OBJ_CLASS NTStatus = 0xC00002AE - STATUS_DS_CROSS_DOM_MOVE_FAILED NTStatus = 0xC00002AF - STATUS_DS_GC_NOT_AVAILABLE NTStatus = 0xC00002B0 - STATUS_DIRECTORY_SERVICE_REQUIRED NTStatus = 0xC00002B1 - STATUS_REPARSE_ATTRIBUTE_CONFLICT NTStatus = 0xC00002B2 - STATUS_CANT_ENABLE_DENY_ONLY NTStatus = 0xC00002B3 - STATUS_FLOAT_MULTIPLE_FAULTS NTStatus = 0xC00002B4 - STATUS_FLOAT_MULTIPLE_TRAPS NTStatus = 0xC00002B5 - STATUS_DEVICE_REMOVED NTStatus = 0xC00002B6 - STATUS_JOURNAL_DELETE_IN_PROGRESS NTStatus = 0xC00002B7 - STATUS_JOURNAL_NOT_ACTIVE NTStatus = 0xC00002B8 - STATUS_NOINTERFACE NTStatus = 0xC00002B9 - STATUS_DS_RIDMGR_DISABLED NTStatus = 0xC00002BA - STATUS_DS_ADMIN_LIMIT_EXCEEDED NTStatus = 0xC00002C1 - STATUS_DRIVER_FAILED_SLEEP NTStatus = 0xC00002C2 - STATUS_MUTUAL_AUTHENTICATION_FAILED NTStatus = 0xC00002C3 - STATUS_CORRUPT_SYSTEM_FILE NTStatus = 0xC00002C4 - STATUS_DATATYPE_MISALIGNMENT_ERROR NTStatus = 0xC00002C5 - STATUS_WMI_READ_ONLY NTStatus = 0xC00002C6 - STATUS_WMI_SET_FAILURE NTStatus = 0xC00002C7 - STATUS_COMMITMENT_MINIMUM NTStatus = 0xC00002C8 - STATUS_REG_NAT_CONSUMPTION NTStatus = 0xC00002C9 - STATUS_TRANSPORT_FULL NTStatus = 0xC00002CA - STATUS_DS_SAM_INIT_FAILURE NTStatus = 0xC00002CB - STATUS_ONLY_IF_CONNECTED NTStatus = 0xC00002CC - STATUS_DS_SENSITIVE_GROUP_VIOLATION NTStatus = 0xC00002CD - STATUS_PNP_RESTART_ENUMERATION NTStatus = 0xC00002CE - STATUS_JOURNAL_ENTRY_DELETED NTStatus = 0xC00002CF - STATUS_DS_CANT_MOD_PRIMARYGROUPID NTStatus = 0xC00002D0 - STATUS_SYSTEM_IMAGE_BAD_SIGNATURE NTStatus = 0xC00002D1 - STATUS_PNP_REBOOT_REQUIRED NTStatus = 0xC00002D2 - STATUS_POWER_STATE_INVALID NTStatus = 0xC00002D3 - STATUS_DS_INVALID_GROUP_TYPE NTStatus = 0xC00002D4 - STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D5 - STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D6 - STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D7 - STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC00002D8 - STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D9 - STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER NTStatus = 0xC00002DA - STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER NTStatus = 0xC00002DB - STATUS_DS_HAVE_PRIMARY_MEMBERS NTStatus = 0xC00002DC - STATUS_WMI_NOT_SUPPORTED NTStatus = 0xC00002DD - STATUS_INSUFFICIENT_POWER NTStatus = 0xC00002DE - STATUS_SAM_NEED_BOOTKEY_PASSWORD NTStatus = 0xC00002DF - STATUS_SAM_NEED_BOOTKEY_FLOPPY NTStatus = 0xC00002E0 - STATUS_DS_CANT_START NTStatus = 0xC00002E1 - STATUS_DS_INIT_FAILURE NTStatus = 0xC00002E2 - STATUS_SAM_INIT_FAILURE NTStatus = 0xC00002E3 - STATUS_DS_GC_REQUIRED NTStatus = 0xC00002E4 - STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY NTStatus = 0xC00002E5 - STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS NTStatus = 0xC00002E6 - STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED NTStatus = 0xC00002E7 - STATUS_MULTIPLE_FAULT_VIOLATION NTStatus = 0xC00002E8 - STATUS_CURRENT_DOMAIN_NOT_ALLOWED NTStatus = 0xC00002E9 - STATUS_CANNOT_MAKE NTStatus = 0xC00002EA - STATUS_SYSTEM_SHUTDOWN NTStatus = 0xC00002EB - STATUS_DS_INIT_FAILURE_CONSOLE NTStatus = 0xC00002EC - STATUS_DS_SAM_INIT_FAILURE_CONSOLE NTStatus = 0xC00002ED - STATUS_UNFINISHED_CONTEXT_DELETED NTStatus = 0xC00002EE - STATUS_NO_TGT_REPLY NTStatus = 0xC00002EF - STATUS_OBJECTID_NOT_FOUND NTStatus = 0xC00002F0 - STATUS_NO_IP_ADDRESSES NTStatus = 0xC00002F1 - STATUS_WRONG_CREDENTIAL_HANDLE NTStatus = 0xC00002F2 - STATUS_CRYPTO_SYSTEM_INVALID NTStatus = 0xC00002F3 - STATUS_MAX_REFERRALS_EXCEEDED NTStatus = 0xC00002F4 - STATUS_MUST_BE_KDC NTStatus = 0xC00002F5 - STATUS_STRONG_CRYPTO_NOT_SUPPORTED NTStatus = 0xC00002F6 - STATUS_TOO_MANY_PRINCIPALS NTStatus = 0xC00002F7 - STATUS_NO_PA_DATA NTStatus = 0xC00002F8 - STATUS_PKINIT_NAME_MISMATCH NTStatus = 0xC00002F9 - STATUS_SMARTCARD_LOGON_REQUIRED NTStatus = 0xC00002FA - STATUS_KDC_INVALID_REQUEST NTStatus = 0xC00002FB - STATUS_KDC_UNABLE_TO_REFER NTStatus = 0xC00002FC - STATUS_KDC_UNKNOWN_ETYPE NTStatus = 0xC00002FD - STATUS_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FE - STATUS_SERVER_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FF - STATUS_NOT_SUPPORTED_ON_SBS NTStatus = 0xC0000300 - STATUS_WMI_GUID_DISCONNECTED NTStatus = 0xC0000301 - STATUS_WMI_ALREADY_DISABLED NTStatus = 0xC0000302 - STATUS_WMI_ALREADY_ENABLED NTStatus = 0xC0000303 - STATUS_MFT_TOO_FRAGMENTED NTStatus = 0xC0000304 - STATUS_COPY_PROTECTION_FAILURE NTStatus = 0xC0000305 - STATUS_CSS_AUTHENTICATION_FAILURE NTStatus = 0xC0000306 - STATUS_CSS_KEY_NOT_PRESENT NTStatus = 0xC0000307 - STATUS_CSS_KEY_NOT_ESTABLISHED NTStatus = 0xC0000308 - STATUS_CSS_SCRAMBLED_SECTOR NTStatus = 0xC0000309 - STATUS_CSS_REGION_MISMATCH NTStatus = 0xC000030A - STATUS_CSS_RESETS_EXHAUSTED NTStatus = 0xC000030B - STATUS_PASSWORD_CHANGE_REQUIRED NTStatus = 0xC000030C - STATUS_LOST_MODE_LOGON_RESTRICTION NTStatus = 0xC000030D - STATUS_PKINIT_FAILURE NTStatus = 0xC0000320 - STATUS_SMARTCARD_SUBSYSTEM_FAILURE NTStatus = 0xC0000321 - STATUS_NO_KERB_KEY NTStatus = 0xC0000322 - STATUS_HOST_DOWN NTStatus = 0xC0000350 - STATUS_UNSUPPORTED_PREAUTH NTStatus = 0xC0000351 - STATUS_EFS_ALG_BLOB_TOO_BIG NTStatus = 0xC0000352 - STATUS_PORT_NOT_SET NTStatus = 0xC0000353 - STATUS_DEBUGGER_INACTIVE NTStatus = 0xC0000354 - STATUS_DS_VERSION_CHECK_FAILURE NTStatus = 0xC0000355 - STATUS_AUDITING_DISABLED NTStatus = 0xC0000356 - STATUS_PRENT4_MACHINE_ACCOUNT NTStatus = 0xC0000357 - STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC0000358 - STATUS_INVALID_IMAGE_WIN_32 NTStatus = 0xC0000359 - STATUS_INVALID_IMAGE_WIN_64 NTStatus = 0xC000035A - STATUS_BAD_BINDINGS NTStatus = 0xC000035B - STATUS_NETWORK_SESSION_EXPIRED NTStatus = 0xC000035C - STATUS_APPHELP_BLOCK NTStatus = 0xC000035D - STATUS_ALL_SIDS_FILTERED NTStatus = 0xC000035E - STATUS_NOT_SAFE_MODE_DRIVER NTStatus = 0xC000035F - STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT NTStatus = 0xC0000361 - STATUS_ACCESS_DISABLED_BY_POLICY_PATH NTStatus = 0xC0000362 - STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER NTStatus = 0xC0000363 - STATUS_ACCESS_DISABLED_BY_POLICY_OTHER NTStatus = 0xC0000364 - STATUS_FAILED_DRIVER_ENTRY NTStatus = 0xC0000365 - STATUS_DEVICE_ENUMERATION_ERROR NTStatus = 0xC0000366 - STATUS_MOUNT_POINT_NOT_RESOLVED NTStatus = 0xC0000368 - STATUS_INVALID_DEVICE_OBJECT_PARAMETER NTStatus = 0xC0000369 - STATUS_MCA_OCCURED NTStatus = 0xC000036A - STATUS_DRIVER_BLOCKED_CRITICAL NTStatus = 0xC000036B - STATUS_DRIVER_BLOCKED NTStatus = 0xC000036C - STATUS_DRIVER_DATABASE_ERROR NTStatus = 0xC000036D - STATUS_SYSTEM_HIVE_TOO_LARGE NTStatus = 0xC000036E - STATUS_INVALID_IMPORT_OF_NON_DLL NTStatus = 0xC000036F - STATUS_DS_SHUTTING_DOWN NTStatus = 0x40000370 - STATUS_NO_SECRETS NTStatus = 0xC0000371 - STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY NTStatus = 0xC0000372 - STATUS_FAILED_STACK_SWITCH NTStatus = 0xC0000373 - STATUS_HEAP_CORRUPTION NTStatus = 0xC0000374 - STATUS_SMARTCARD_WRONG_PIN NTStatus = 0xC0000380 - STATUS_SMARTCARD_CARD_BLOCKED NTStatus = 0xC0000381 - STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED NTStatus = 0xC0000382 - STATUS_SMARTCARD_NO_CARD NTStatus = 0xC0000383 - STATUS_SMARTCARD_NO_KEY_CONTAINER NTStatus = 0xC0000384 - STATUS_SMARTCARD_NO_CERTIFICATE NTStatus = 0xC0000385 - STATUS_SMARTCARD_NO_KEYSET NTStatus = 0xC0000386 - STATUS_SMARTCARD_IO_ERROR NTStatus = 0xC0000387 - STATUS_DOWNGRADE_DETECTED NTStatus = 0xC0000388 - STATUS_SMARTCARD_CERT_REVOKED NTStatus = 0xC0000389 - STATUS_ISSUING_CA_UNTRUSTED NTStatus = 0xC000038A - STATUS_REVOCATION_OFFLINE_C NTStatus = 0xC000038B - STATUS_PKINIT_CLIENT_FAILURE NTStatus = 0xC000038C - STATUS_SMARTCARD_CERT_EXPIRED NTStatus = 0xC000038D - STATUS_DRIVER_FAILED_PRIOR_UNLOAD NTStatus = 0xC000038E - STATUS_SMARTCARD_SILENT_CONTEXT NTStatus = 0xC000038F - STATUS_PER_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000401 - STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000402 - STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000403 - STATUS_DS_NAME_NOT_UNIQUE NTStatus = 0xC0000404 - STATUS_DS_DUPLICATE_ID_FOUND NTStatus = 0xC0000405 - STATUS_DS_GROUP_CONVERSION_ERROR NTStatus = 0xC0000406 - STATUS_VOLSNAP_PREPARE_HIBERNATE NTStatus = 0xC0000407 - STATUS_USER2USER_REQUIRED NTStatus = 0xC0000408 - STATUS_STACK_BUFFER_OVERRUN NTStatus = 0xC0000409 - STATUS_NO_S4U_PROT_SUPPORT NTStatus = 0xC000040A - STATUS_CROSSREALM_DELEGATION_FAILURE NTStatus = 0xC000040B - STATUS_REVOCATION_OFFLINE_KDC NTStatus = 0xC000040C - STATUS_ISSUING_CA_UNTRUSTED_KDC NTStatus = 0xC000040D - STATUS_KDC_CERT_EXPIRED NTStatus = 0xC000040E - STATUS_KDC_CERT_REVOKED NTStatus = 0xC000040F - STATUS_PARAMETER_QUOTA_EXCEEDED NTStatus = 0xC0000410 - STATUS_HIBERNATION_FAILURE NTStatus = 0xC0000411 - STATUS_DELAY_LOAD_FAILED NTStatus = 0xC0000412 - STATUS_AUTHENTICATION_FIREWALL_FAILED NTStatus = 0xC0000413 - STATUS_VDM_DISALLOWED NTStatus = 0xC0000414 - STATUS_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC0000415 - STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE NTStatus = 0xC0000416 - STATUS_INVALID_CRUNTIME_PARAMETER NTStatus = 0xC0000417 - STATUS_NTLM_BLOCKED NTStatus = 0xC0000418 - STATUS_DS_SRC_SID_EXISTS_IN_FOREST NTStatus = 0xC0000419 - STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041A - STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041B - STATUS_INVALID_USER_PRINCIPAL_NAME NTStatus = 0xC000041C - STATUS_FATAL_USER_CALLBACK_EXCEPTION NTStatus = 0xC000041D - STATUS_ASSERTION_FAILURE NTStatus = 0xC0000420 - STATUS_VERIFIER_STOP NTStatus = 0xC0000421 - STATUS_CALLBACK_POP_STACK NTStatus = 0xC0000423 - STATUS_INCOMPATIBLE_DRIVER_BLOCKED NTStatus = 0xC0000424 - STATUS_HIVE_UNLOADED NTStatus = 0xC0000425 - STATUS_COMPRESSION_DISABLED NTStatus = 0xC0000426 - STATUS_FILE_SYSTEM_LIMITATION NTStatus = 0xC0000427 - STATUS_INVALID_IMAGE_HASH NTStatus = 0xC0000428 - STATUS_NOT_CAPABLE NTStatus = 0xC0000429 - STATUS_REQUEST_OUT_OF_SEQUENCE NTStatus = 0xC000042A - STATUS_IMPLEMENTATION_LIMIT NTStatus = 0xC000042B - STATUS_ELEVATION_REQUIRED NTStatus = 0xC000042C - STATUS_NO_SECURITY_CONTEXT NTStatus = 0xC000042D - STATUS_PKU2U_CERT_FAILURE NTStatus = 0xC000042F - STATUS_BEYOND_VDL NTStatus = 0xC0000432 - STATUS_ENCOUNTERED_WRITE_IN_PROGRESS NTStatus = 0xC0000433 - STATUS_PTE_CHANGED NTStatus = 0xC0000434 - STATUS_PURGE_FAILED NTStatus = 0xC0000435 - STATUS_CRED_REQUIRES_CONFIRMATION NTStatus = 0xC0000440 - STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE NTStatus = 0xC0000441 - STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER NTStatus = 0xC0000442 - STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE NTStatus = 0xC0000443 - STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE NTStatus = 0xC0000444 - STATUS_CS_ENCRYPTION_FILE_NOT_CSE NTStatus = 0xC0000445 - STATUS_INVALID_LABEL NTStatus = 0xC0000446 - STATUS_DRIVER_PROCESS_TERMINATED NTStatus = 0xC0000450 - STATUS_AMBIGUOUS_SYSTEM_DEVICE NTStatus = 0xC0000451 - STATUS_SYSTEM_DEVICE_NOT_FOUND NTStatus = 0xC0000452 - STATUS_RESTART_BOOT_APPLICATION NTStatus = 0xC0000453 - STATUS_INSUFFICIENT_NVRAM_RESOURCES NTStatus = 0xC0000454 - STATUS_INVALID_SESSION NTStatus = 0xC0000455 - STATUS_THREAD_ALREADY_IN_SESSION NTStatus = 0xC0000456 - STATUS_THREAD_NOT_IN_SESSION NTStatus = 0xC0000457 - STATUS_INVALID_WEIGHT NTStatus = 0xC0000458 - STATUS_REQUEST_PAUSED NTStatus = 0xC0000459 - STATUS_NO_RANGES_PROCESSED NTStatus = 0xC0000460 - STATUS_DISK_RESOURCES_EXHAUSTED NTStatus = 0xC0000461 - STATUS_NEEDS_REMEDIATION NTStatus = 0xC0000462 - STATUS_DEVICE_FEATURE_NOT_SUPPORTED NTStatus = 0xC0000463 - STATUS_DEVICE_UNREACHABLE NTStatus = 0xC0000464 - STATUS_INVALID_TOKEN NTStatus = 0xC0000465 - STATUS_SERVER_UNAVAILABLE NTStatus = 0xC0000466 - STATUS_FILE_NOT_AVAILABLE NTStatus = 0xC0000467 - STATUS_DEVICE_INSUFFICIENT_RESOURCES NTStatus = 0xC0000468 - STATUS_PACKAGE_UPDATING NTStatus = 0xC0000469 - STATUS_NOT_READ_FROM_COPY NTStatus = 0xC000046A - STATUS_FT_WRITE_FAILURE NTStatus = 0xC000046B - STATUS_FT_DI_SCAN_REQUIRED NTStatus = 0xC000046C - STATUS_OBJECT_NOT_EXTERNALLY_BACKED NTStatus = 0xC000046D - STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN NTStatus = 0xC000046E - STATUS_COMPRESSION_NOT_BENEFICIAL NTStatus = 0xC000046F - STATUS_DATA_CHECKSUM_ERROR NTStatus = 0xC0000470 - STATUS_INTERMIXED_KERNEL_EA_OPERATION NTStatus = 0xC0000471 - STATUS_TRIM_READ_ZERO_NOT_SUPPORTED NTStatus = 0xC0000472 - STATUS_TOO_MANY_SEGMENT_DESCRIPTORS NTStatus = 0xC0000473 - STATUS_INVALID_OFFSET_ALIGNMENT NTStatus = 0xC0000474 - STATUS_INVALID_FIELD_IN_PARAMETER_LIST NTStatus = 0xC0000475 - STATUS_OPERATION_IN_PROGRESS NTStatus = 0xC0000476 - STATUS_INVALID_INITIATOR_TARGET_PATH NTStatus = 0xC0000477 - STATUS_SCRUB_DATA_DISABLED NTStatus = 0xC0000478 - STATUS_NOT_REDUNDANT_STORAGE NTStatus = 0xC0000479 - STATUS_RESIDENT_FILE_NOT_SUPPORTED NTStatus = 0xC000047A - STATUS_COMPRESSED_FILE_NOT_SUPPORTED NTStatus = 0xC000047B - STATUS_DIRECTORY_NOT_SUPPORTED NTStatus = 0xC000047C - STATUS_IO_OPERATION_TIMEOUT NTStatus = 0xC000047D - STATUS_SYSTEM_NEEDS_REMEDIATION NTStatus = 0xC000047E - STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN NTStatus = 0xC000047F - STATUS_SHARE_UNAVAILABLE NTStatus = 0xC0000480 - STATUS_APISET_NOT_HOSTED NTStatus = 0xC0000481 - STATUS_APISET_NOT_PRESENT NTStatus = 0xC0000482 - STATUS_DEVICE_HARDWARE_ERROR NTStatus = 0xC0000483 - STATUS_FIRMWARE_SLOT_INVALID NTStatus = 0xC0000484 - STATUS_FIRMWARE_IMAGE_INVALID NTStatus = 0xC0000485 - STATUS_STORAGE_TOPOLOGY_ID_MISMATCH NTStatus = 0xC0000486 - STATUS_WIM_NOT_BOOTABLE NTStatus = 0xC0000487 - STATUS_BLOCKED_BY_PARENTAL_CONTROLS NTStatus = 0xC0000488 - STATUS_NEEDS_REGISTRATION NTStatus = 0xC0000489 - STATUS_QUOTA_ACTIVITY NTStatus = 0xC000048A - STATUS_CALLBACK_INVOKE_INLINE NTStatus = 0xC000048B - STATUS_BLOCK_TOO_MANY_REFERENCES NTStatus = 0xC000048C - STATUS_MARKED_TO_DISALLOW_WRITES NTStatus = 0xC000048D - STATUS_NETWORK_ACCESS_DENIED_EDP NTStatus = 0xC000048E - STATUS_ENCLAVE_FAILURE NTStatus = 0xC000048F - STATUS_PNP_NO_COMPAT_DRIVERS NTStatus = 0xC0000490 - STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND NTStatus = 0xC0000491 - STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND NTStatus = 0xC0000492 - STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE NTStatus = 0xC0000493 - STATUS_PNP_FUNCTION_DRIVER_REQUIRED NTStatus = 0xC0000494 - STATUS_PNP_DEVICE_CONFIGURATION_PENDING NTStatus = 0xC0000495 - STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL NTStatus = 0xC0000496 - STATUS_PACKAGE_NOT_AVAILABLE NTStatus = 0xC0000497 - STATUS_DEVICE_IN_MAINTENANCE NTStatus = 0xC0000499 - STATUS_NOT_SUPPORTED_ON_DAX NTStatus = 0xC000049A - STATUS_FREE_SPACE_TOO_FRAGMENTED NTStatus = 0xC000049B - STATUS_DAX_MAPPING_EXISTS NTStatus = 0xC000049C - STATUS_CHILD_PROCESS_BLOCKED NTStatus = 0xC000049D - STATUS_STORAGE_LOST_DATA_PERSISTENCE NTStatus = 0xC000049E - STATUS_VRF_CFG_ENABLED NTStatus = 0xC000049F - STATUS_PARTITION_TERMINATING NTStatus = 0xC00004A0 - STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED NTStatus = 0xC00004A1 - STATUS_ENCLAVE_VIOLATION NTStatus = 0xC00004A2 - STATUS_FILE_PROTECTED_UNDER_DPL NTStatus = 0xC00004A3 - STATUS_VOLUME_NOT_CLUSTER_ALIGNED NTStatus = 0xC00004A4 - STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND NTStatus = 0xC00004A5 - STATUS_APPX_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A6 - STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A7 - STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET NTStatus = 0xC00004A8 - STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE NTStatus = 0xC00004A9 - STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER NTStatus = 0xC00004AA - STATUS_FT_READ_FAILURE NTStatus = 0xC00004AB - STATUS_PATCH_CONFLICT NTStatus = 0xC00004AC - STATUS_STORAGE_RESERVE_ID_INVALID NTStatus = 0xC00004AD - STATUS_STORAGE_RESERVE_DOES_NOT_EXIST NTStatus = 0xC00004AE - STATUS_STORAGE_RESERVE_ALREADY_EXISTS NTStatus = 0xC00004AF - STATUS_STORAGE_RESERVE_NOT_EMPTY NTStatus = 0xC00004B0 - STATUS_NOT_A_DAX_VOLUME NTStatus = 0xC00004B1 - STATUS_NOT_DAX_MAPPABLE NTStatus = 0xC00004B2 - STATUS_CASE_DIFFERING_NAMES_IN_DIR NTStatus = 0xC00004B3 - STATUS_FILE_NOT_SUPPORTED NTStatus = 0xC00004B4 - STATUS_NOT_SUPPORTED_WITH_BTT NTStatus = 0xC00004B5 - STATUS_ENCRYPTION_DISABLED NTStatus = 0xC00004B6 - STATUS_ENCRYPTING_METADATA_DISALLOWED NTStatus = 0xC00004B7 - STATUS_CANT_CLEAR_ENCRYPTION_FLAG NTStatus = 0xC00004B8 - STATUS_INVALID_TASK_NAME NTStatus = 0xC0000500 - STATUS_INVALID_TASK_INDEX NTStatus = 0xC0000501 - STATUS_THREAD_ALREADY_IN_TASK NTStatus = 0xC0000502 - STATUS_CALLBACK_BYPASS NTStatus = 0xC0000503 - STATUS_UNDEFINED_SCOPE NTStatus = 0xC0000504 - STATUS_INVALID_CAP NTStatus = 0xC0000505 - STATUS_NOT_GUI_PROCESS NTStatus = 0xC0000506 - STATUS_DEVICE_HUNG NTStatus = 0xC0000507 - STATUS_CONTAINER_ASSIGNED NTStatus = 0xC0000508 - STATUS_JOB_NO_CONTAINER NTStatus = 0xC0000509 - STATUS_DEVICE_UNRESPONSIVE NTStatus = 0xC000050A - STATUS_REPARSE_POINT_ENCOUNTERED NTStatus = 0xC000050B - STATUS_ATTRIBUTE_NOT_PRESENT NTStatus = 0xC000050C - STATUS_NOT_A_TIERED_VOLUME NTStatus = 0xC000050D - STATUS_ALREADY_HAS_STREAM_ID NTStatus = 0xC000050E - STATUS_JOB_NOT_EMPTY NTStatus = 0xC000050F - STATUS_ALREADY_INITIALIZED NTStatus = 0xC0000510 - STATUS_ENCLAVE_NOT_TERMINATED NTStatus = 0xC0000511 - STATUS_ENCLAVE_IS_TERMINATING NTStatus = 0xC0000512 - STATUS_SMB1_NOT_AVAILABLE NTStatus = 0xC0000513 - STATUS_SMR_GARBAGE_COLLECTION_REQUIRED NTStatus = 0xC0000514 - STATUS_INTERRUPTED NTStatus = 0xC0000515 - STATUS_THREAD_NOT_RUNNING NTStatus = 0xC0000516 - STATUS_FAIL_FAST_EXCEPTION NTStatus = 0xC0000602 - STATUS_IMAGE_CERT_REVOKED NTStatus = 0xC0000603 - STATUS_DYNAMIC_CODE_BLOCKED NTStatus = 0xC0000604 - STATUS_IMAGE_CERT_EXPIRED NTStatus = 0xC0000605 - STATUS_STRICT_CFG_VIOLATION NTStatus = 0xC0000606 - STATUS_SET_CONTEXT_DENIED NTStatus = 0xC000060A - STATUS_CROSS_PARTITION_VIOLATION NTStatus = 0xC000060B - STATUS_PORT_CLOSED NTStatus = 0xC0000700 - STATUS_MESSAGE_LOST NTStatus = 0xC0000701 - STATUS_INVALID_MESSAGE NTStatus = 0xC0000702 - STATUS_REQUEST_CANCELED NTStatus = 0xC0000703 - STATUS_RECURSIVE_DISPATCH NTStatus = 0xC0000704 - STATUS_LPC_RECEIVE_BUFFER_EXPECTED NTStatus = 0xC0000705 - STATUS_LPC_INVALID_CONNECTION_USAGE NTStatus = 0xC0000706 - STATUS_LPC_REQUESTS_NOT_ALLOWED NTStatus = 0xC0000707 - STATUS_RESOURCE_IN_USE NTStatus = 0xC0000708 - STATUS_HARDWARE_MEMORY_ERROR NTStatus = 0xC0000709 - STATUS_THREADPOOL_HANDLE_EXCEPTION NTStatus = 0xC000070A - STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED NTStatus = 0xC000070B - STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED NTStatus = 0xC000070C - STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED NTStatus = 0xC000070D - STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED NTStatus = 0xC000070E - STATUS_THREADPOOL_RELEASED_DURING_OPERATION NTStatus = 0xC000070F - STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000710 - STATUS_APC_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000711 - STATUS_PROCESS_IS_PROTECTED NTStatus = 0xC0000712 - STATUS_MCA_EXCEPTION NTStatus = 0xC0000713 - STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE NTStatus = 0xC0000714 - STATUS_SYMLINK_CLASS_DISABLED NTStatus = 0xC0000715 - STATUS_INVALID_IDN_NORMALIZATION NTStatus = 0xC0000716 - STATUS_NO_UNICODE_TRANSLATION NTStatus = 0xC0000717 - STATUS_ALREADY_REGISTERED NTStatus = 0xC0000718 - STATUS_CONTEXT_MISMATCH NTStatus = 0xC0000719 - STATUS_PORT_ALREADY_HAS_COMPLETION_LIST NTStatus = 0xC000071A - STATUS_CALLBACK_RETURNED_THREAD_PRIORITY NTStatus = 0xC000071B - STATUS_INVALID_THREAD NTStatus = 0xC000071C - STATUS_CALLBACK_RETURNED_TRANSACTION NTStatus = 0xC000071D - STATUS_CALLBACK_RETURNED_LDR_LOCK NTStatus = 0xC000071E - STATUS_CALLBACK_RETURNED_LANG NTStatus = 0xC000071F - STATUS_CALLBACK_RETURNED_PRI_BACK NTStatus = 0xC0000720 - STATUS_CALLBACK_RETURNED_THREAD_AFFINITY NTStatus = 0xC0000721 - STATUS_LPC_HANDLE_COUNT_EXCEEDED NTStatus = 0xC0000722 - STATUS_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000723 - STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000724 - STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000725 - STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000726 - STATUS_DISK_REPAIR_DISABLED NTStatus = 0xC0000800 - STATUS_DS_DOMAIN_RENAME_IN_PROGRESS NTStatus = 0xC0000801 - STATUS_DISK_QUOTA_EXCEEDED NTStatus = 0xC0000802 - STATUS_DATA_LOST_REPAIR NTStatus = 0x80000803 - STATUS_CONTENT_BLOCKED NTStatus = 0xC0000804 - STATUS_BAD_CLUSTERS NTStatus = 0xC0000805 - STATUS_VOLUME_DIRTY NTStatus = 0xC0000806 - STATUS_DISK_REPAIR_REDIRECTED NTStatus = 0x40000807 - STATUS_DISK_REPAIR_UNSUCCESSFUL NTStatus = 0xC0000808 - STATUS_CORRUPT_LOG_OVERFULL NTStatus = 0xC0000809 - STATUS_CORRUPT_LOG_CORRUPTED NTStatus = 0xC000080A - STATUS_CORRUPT_LOG_UNAVAILABLE NTStatus = 0xC000080B - STATUS_CORRUPT_LOG_DELETED_FULL NTStatus = 0xC000080C - STATUS_CORRUPT_LOG_CLEARED NTStatus = 0xC000080D - STATUS_ORPHAN_NAME_EXHAUSTED NTStatus = 0xC000080E - STATUS_PROACTIVE_SCAN_IN_PROGRESS NTStatus = 0xC000080F - STATUS_ENCRYPTED_IO_NOT_POSSIBLE NTStatus = 0xC0000810 - STATUS_CORRUPT_LOG_UPLEVEL_RECORDS NTStatus = 0xC0000811 - STATUS_FILE_CHECKED_OUT NTStatus = 0xC0000901 - STATUS_CHECKOUT_REQUIRED NTStatus = 0xC0000902 - STATUS_BAD_FILE_TYPE NTStatus = 0xC0000903 - STATUS_FILE_TOO_LARGE NTStatus = 0xC0000904 - STATUS_FORMS_AUTH_REQUIRED NTStatus = 0xC0000905 - STATUS_VIRUS_INFECTED NTStatus = 0xC0000906 - STATUS_VIRUS_DELETED NTStatus = 0xC0000907 - STATUS_BAD_MCFG_TABLE NTStatus = 0xC0000908 - STATUS_CANNOT_BREAK_OPLOCK NTStatus = 0xC0000909 - STATUS_BAD_KEY NTStatus = 0xC000090A - STATUS_BAD_DATA NTStatus = 0xC000090B - STATUS_NO_KEY NTStatus = 0xC000090C - STATUS_FILE_HANDLE_REVOKED NTStatus = 0xC0000910 - STATUS_WOW_ASSERTION NTStatus = 0xC0009898 - STATUS_INVALID_SIGNATURE NTStatus = 0xC000A000 - STATUS_HMAC_NOT_SUPPORTED NTStatus = 0xC000A001 - STATUS_AUTH_TAG_MISMATCH NTStatus = 0xC000A002 - STATUS_INVALID_STATE_TRANSITION NTStatus = 0xC000A003 - STATUS_INVALID_KERNEL_INFO_VERSION NTStatus = 0xC000A004 - STATUS_INVALID_PEP_INFO_VERSION NTStatus = 0xC000A005 - STATUS_HANDLE_REVOKED NTStatus = 0xC000A006 - STATUS_EOF_ON_GHOSTED_RANGE NTStatus = 0xC000A007 - STATUS_IPSEC_QUEUE_OVERFLOW NTStatus = 0xC000A010 - STATUS_ND_QUEUE_OVERFLOW NTStatus = 0xC000A011 - STATUS_HOPLIMIT_EXCEEDED NTStatus = 0xC000A012 - STATUS_PROTOCOL_NOT_SUPPORTED NTStatus = 0xC000A013 - STATUS_FASTPATH_REJECTED NTStatus = 0xC000A014 - STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED NTStatus = 0xC000A080 - STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR NTStatus = 0xC000A081 - STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR NTStatus = 0xC000A082 - STATUS_XML_PARSE_ERROR NTStatus = 0xC000A083 - STATUS_XMLDSIG_ERROR NTStatus = 0xC000A084 - STATUS_WRONG_COMPARTMENT NTStatus = 0xC000A085 - STATUS_AUTHIP_FAILURE NTStatus = 0xC000A086 - STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS NTStatus = 0xC000A087 - STATUS_DS_OID_NOT_FOUND NTStatus = 0xC000A088 - STATUS_INCORRECT_ACCOUNT_TYPE NTStatus = 0xC000A089 - STATUS_HASH_NOT_SUPPORTED NTStatus = 0xC000A100 - STATUS_HASH_NOT_PRESENT NTStatus = 0xC000A101 - STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED NTStatus = 0xC000A121 - STATUS_GPIO_CLIENT_INFORMATION_INVALID NTStatus = 0xC000A122 - STATUS_GPIO_VERSION_NOT_SUPPORTED NTStatus = 0xC000A123 - STATUS_GPIO_INVALID_REGISTRATION_PACKET NTStatus = 0xC000A124 - STATUS_GPIO_OPERATION_DENIED NTStatus = 0xC000A125 - STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE NTStatus = 0xC000A126 - STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED NTStatus = 0x8000A127 - STATUS_CANNOT_SWITCH_RUNLEVEL NTStatus = 0xC000A141 - STATUS_INVALID_RUNLEVEL_SETTING NTStatus = 0xC000A142 - STATUS_RUNLEVEL_SWITCH_TIMEOUT NTStatus = 0xC000A143 - STATUS_SERVICES_FAILED_AUTOSTART NTStatus = 0x4000A144 - STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT NTStatus = 0xC000A145 - STATUS_RUNLEVEL_SWITCH_IN_PROGRESS NTStatus = 0xC000A146 - STATUS_NOT_APPCONTAINER NTStatus = 0xC000A200 - STATUS_NOT_SUPPORTED_IN_APPCONTAINER NTStatus = 0xC000A201 - STATUS_INVALID_PACKAGE_SID_LENGTH NTStatus = 0xC000A202 - STATUS_LPAC_ACCESS_DENIED NTStatus = 0xC000A203 - STATUS_ADMINLESS_ACCESS_DENIED NTStatus = 0xC000A204 - STATUS_APP_DATA_NOT_FOUND NTStatus = 0xC000A281 - STATUS_APP_DATA_EXPIRED NTStatus = 0xC000A282 - STATUS_APP_DATA_CORRUPT NTStatus = 0xC000A283 - STATUS_APP_DATA_LIMIT_EXCEEDED NTStatus = 0xC000A284 - STATUS_APP_DATA_REBOOT_REQUIRED NTStatus = 0xC000A285 - STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A1 - STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A2 - STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A3 - STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A4 - STATUS_WOF_WIM_HEADER_CORRUPT NTStatus = 0xC000A2A5 - STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A6 - STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A7 - STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE NTStatus = 0xC000CE01 - STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT NTStatus = 0xC000CE02 - STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY NTStatus = 0xC000CE03 - STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN NTStatus = 0xC000CE04 - STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION NTStatus = 0xC000CE05 - STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT NTStatus = 0xC000CF00 - STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING NTStatus = 0xC000CF01 - STATUS_CLOUD_FILE_METADATA_CORRUPT NTStatus = 0xC000CF02 - STATUS_CLOUD_FILE_METADATA_TOO_LARGE NTStatus = 0xC000CF03 - STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE NTStatus = 0x8000CF04 - STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS NTStatus = 0x8000CF05 - STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED NTStatus = 0xC000CF06 - STATUS_NOT_A_CLOUD_FILE NTStatus = 0xC000CF07 - STATUS_CLOUD_FILE_NOT_IN_SYNC NTStatus = 0xC000CF08 - STATUS_CLOUD_FILE_ALREADY_CONNECTED NTStatus = 0xC000CF09 - STATUS_CLOUD_FILE_NOT_SUPPORTED NTStatus = 0xC000CF0A - STATUS_CLOUD_FILE_INVALID_REQUEST NTStatus = 0xC000CF0B - STATUS_CLOUD_FILE_READ_ONLY_VOLUME NTStatus = 0xC000CF0C - STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY NTStatus = 0xC000CF0D - STATUS_CLOUD_FILE_VALIDATION_FAILED NTStatus = 0xC000CF0E - STATUS_CLOUD_FILE_AUTHENTICATION_FAILED NTStatus = 0xC000CF0F - STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES NTStatus = 0xC000CF10 - STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE NTStatus = 0xC000CF11 - STATUS_CLOUD_FILE_UNSUCCESSFUL NTStatus = 0xC000CF12 - STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT NTStatus = 0xC000CF13 - STATUS_CLOUD_FILE_IN_USE NTStatus = 0xC000CF14 - STATUS_CLOUD_FILE_PINNED NTStatus = 0xC000CF15 - STATUS_CLOUD_FILE_REQUEST_ABORTED NTStatus = 0xC000CF16 - STATUS_CLOUD_FILE_PROPERTY_CORRUPT NTStatus = 0xC000CF17 - STATUS_CLOUD_FILE_ACCESS_DENIED NTStatus = 0xC000CF18 - STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS NTStatus = 0xC000CF19 - STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT NTStatus = 0xC000CF1A - STATUS_CLOUD_FILE_REQUEST_CANCELED NTStatus = 0xC000CF1B - STATUS_CLOUD_FILE_PROVIDER_TERMINATED NTStatus = 0xC000CF1D - STATUS_NOT_A_CLOUD_SYNC_ROOT NTStatus = 0xC000CF1E - STATUS_CLOUD_FILE_REQUEST_TIMEOUT NTStatus = 0xC000CF1F - STATUS_ACPI_INVALID_OPCODE NTStatus = 0xC0140001 - STATUS_ACPI_STACK_OVERFLOW NTStatus = 0xC0140002 - STATUS_ACPI_ASSERT_FAILED NTStatus = 0xC0140003 - STATUS_ACPI_INVALID_INDEX NTStatus = 0xC0140004 - STATUS_ACPI_INVALID_ARGUMENT NTStatus = 0xC0140005 - STATUS_ACPI_FATAL NTStatus = 0xC0140006 - STATUS_ACPI_INVALID_SUPERNAME NTStatus = 0xC0140007 - STATUS_ACPI_INVALID_ARGTYPE NTStatus = 0xC0140008 - STATUS_ACPI_INVALID_OBJTYPE NTStatus = 0xC0140009 - STATUS_ACPI_INVALID_TARGETTYPE NTStatus = 0xC014000A - STATUS_ACPI_INCORRECT_ARGUMENT_COUNT NTStatus = 0xC014000B - STATUS_ACPI_ADDRESS_NOT_MAPPED NTStatus = 0xC014000C - STATUS_ACPI_INVALID_EVENTTYPE NTStatus = 0xC014000D - STATUS_ACPI_HANDLER_COLLISION NTStatus = 0xC014000E - STATUS_ACPI_INVALID_DATA NTStatus = 0xC014000F - STATUS_ACPI_INVALID_REGION NTStatus = 0xC0140010 - STATUS_ACPI_INVALID_ACCESS_SIZE NTStatus = 0xC0140011 - STATUS_ACPI_ACQUIRE_GLOBAL_LOCK NTStatus = 0xC0140012 - STATUS_ACPI_ALREADY_INITIALIZED NTStatus = 0xC0140013 - STATUS_ACPI_NOT_INITIALIZED NTStatus = 0xC0140014 - STATUS_ACPI_INVALID_MUTEX_LEVEL NTStatus = 0xC0140015 - STATUS_ACPI_MUTEX_NOT_OWNED NTStatus = 0xC0140016 - STATUS_ACPI_MUTEX_NOT_OWNER NTStatus = 0xC0140017 - STATUS_ACPI_RS_ACCESS NTStatus = 0xC0140018 - STATUS_ACPI_INVALID_TABLE NTStatus = 0xC0140019 - STATUS_ACPI_REG_HANDLER_FAILED NTStatus = 0xC0140020 - STATUS_ACPI_POWER_REQUEST_FAILED NTStatus = 0xC0140021 - STATUS_CTX_WINSTATION_NAME_INVALID NTStatus = 0xC00A0001 - STATUS_CTX_INVALID_PD NTStatus = 0xC00A0002 - STATUS_CTX_PD_NOT_FOUND NTStatus = 0xC00A0003 - STATUS_CTX_CDM_CONNECT NTStatus = 0x400A0004 - STATUS_CTX_CDM_DISCONNECT NTStatus = 0x400A0005 - STATUS_CTX_CLOSE_PENDING NTStatus = 0xC00A0006 - STATUS_CTX_NO_OUTBUF NTStatus = 0xC00A0007 - STATUS_CTX_MODEM_INF_NOT_FOUND NTStatus = 0xC00A0008 - STATUS_CTX_INVALID_MODEMNAME NTStatus = 0xC00A0009 - STATUS_CTX_RESPONSE_ERROR NTStatus = 0xC00A000A - STATUS_CTX_MODEM_RESPONSE_TIMEOUT NTStatus = 0xC00A000B - STATUS_CTX_MODEM_RESPONSE_NO_CARRIER NTStatus = 0xC00A000C - STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE NTStatus = 0xC00A000D - STATUS_CTX_MODEM_RESPONSE_BUSY NTStatus = 0xC00A000E - STATUS_CTX_MODEM_RESPONSE_VOICE NTStatus = 0xC00A000F - STATUS_CTX_TD_ERROR NTStatus = 0xC00A0010 - STATUS_CTX_LICENSE_CLIENT_INVALID NTStatus = 0xC00A0012 - STATUS_CTX_LICENSE_NOT_AVAILABLE NTStatus = 0xC00A0013 - STATUS_CTX_LICENSE_EXPIRED NTStatus = 0xC00A0014 - STATUS_CTX_WINSTATION_NOT_FOUND NTStatus = 0xC00A0015 - STATUS_CTX_WINSTATION_NAME_COLLISION NTStatus = 0xC00A0016 - STATUS_CTX_WINSTATION_BUSY NTStatus = 0xC00A0017 - STATUS_CTX_BAD_VIDEO_MODE NTStatus = 0xC00A0018 - STATUS_CTX_GRAPHICS_INVALID NTStatus = 0xC00A0022 - STATUS_CTX_NOT_CONSOLE NTStatus = 0xC00A0024 - STATUS_CTX_CLIENT_QUERY_TIMEOUT NTStatus = 0xC00A0026 - STATUS_CTX_CONSOLE_DISCONNECT NTStatus = 0xC00A0027 - STATUS_CTX_CONSOLE_CONNECT NTStatus = 0xC00A0028 - STATUS_CTX_SHADOW_DENIED NTStatus = 0xC00A002A - STATUS_CTX_WINSTATION_ACCESS_DENIED NTStatus = 0xC00A002B - STATUS_CTX_INVALID_WD NTStatus = 0xC00A002E - STATUS_CTX_WD_NOT_FOUND NTStatus = 0xC00A002F - STATUS_CTX_SHADOW_INVALID NTStatus = 0xC00A0030 - STATUS_CTX_SHADOW_DISABLED NTStatus = 0xC00A0031 - STATUS_RDP_PROTOCOL_ERROR NTStatus = 0xC00A0032 - STATUS_CTX_CLIENT_LICENSE_NOT_SET NTStatus = 0xC00A0033 - STATUS_CTX_CLIENT_LICENSE_IN_USE NTStatus = 0xC00A0034 - STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE NTStatus = 0xC00A0035 - STATUS_CTX_SHADOW_NOT_RUNNING NTStatus = 0xC00A0036 - STATUS_CTX_LOGON_DISABLED NTStatus = 0xC00A0037 - STATUS_CTX_SECURITY_LAYER_ERROR NTStatus = 0xC00A0038 - STATUS_TS_INCOMPATIBLE_SESSIONS NTStatus = 0xC00A0039 - STATUS_TS_VIDEO_SUBSYSTEM_ERROR NTStatus = 0xC00A003A - STATUS_PNP_BAD_MPS_TABLE NTStatus = 0xC0040035 - STATUS_PNP_TRANSLATION_FAILED NTStatus = 0xC0040036 - STATUS_PNP_IRQ_TRANSLATION_FAILED NTStatus = 0xC0040037 - STATUS_PNP_INVALID_ID NTStatus = 0xC0040038 - STATUS_IO_REISSUE_AS_CACHED NTStatus = 0xC0040039 - STATUS_MUI_FILE_NOT_FOUND NTStatus = 0xC00B0001 - STATUS_MUI_INVALID_FILE NTStatus = 0xC00B0002 - STATUS_MUI_INVALID_RC_CONFIG NTStatus = 0xC00B0003 - STATUS_MUI_INVALID_LOCALE_NAME NTStatus = 0xC00B0004 - STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME NTStatus = 0xC00B0005 - STATUS_MUI_FILE_NOT_LOADED NTStatus = 0xC00B0006 - STATUS_RESOURCE_ENUM_USER_STOP NTStatus = 0xC00B0007 - STATUS_FLT_NO_HANDLER_DEFINED NTStatus = 0xC01C0001 - STATUS_FLT_CONTEXT_ALREADY_DEFINED NTStatus = 0xC01C0002 - STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST NTStatus = 0xC01C0003 - STATUS_FLT_DISALLOW_FAST_IO NTStatus = 0xC01C0004 - STATUS_FLT_INVALID_NAME_REQUEST NTStatus = 0xC01C0005 - STATUS_FLT_NOT_SAFE_TO_POST_OPERATION NTStatus = 0xC01C0006 - STATUS_FLT_NOT_INITIALIZED NTStatus = 0xC01C0007 - STATUS_FLT_FILTER_NOT_READY NTStatus = 0xC01C0008 - STATUS_FLT_POST_OPERATION_CLEANUP NTStatus = 0xC01C0009 - STATUS_FLT_INTERNAL_ERROR NTStatus = 0xC01C000A - STATUS_FLT_DELETING_OBJECT NTStatus = 0xC01C000B - STATUS_FLT_MUST_BE_NONPAGED_POOL NTStatus = 0xC01C000C - STATUS_FLT_DUPLICATE_ENTRY NTStatus = 0xC01C000D - STATUS_FLT_CBDQ_DISABLED NTStatus = 0xC01C000E - STATUS_FLT_DO_NOT_ATTACH NTStatus = 0xC01C000F - STATUS_FLT_DO_NOT_DETACH NTStatus = 0xC01C0010 - STATUS_FLT_INSTANCE_ALTITUDE_COLLISION NTStatus = 0xC01C0011 - STATUS_FLT_INSTANCE_NAME_COLLISION NTStatus = 0xC01C0012 - STATUS_FLT_FILTER_NOT_FOUND NTStatus = 0xC01C0013 - STATUS_FLT_VOLUME_NOT_FOUND NTStatus = 0xC01C0014 - STATUS_FLT_INSTANCE_NOT_FOUND NTStatus = 0xC01C0015 - STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND NTStatus = 0xC01C0016 - STATUS_FLT_INVALID_CONTEXT_REGISTRATION NTStatus = 0xC01C0017 - STATUS_FLT_NAME_CACHE_MISS NTStatus = 0xC01C0018 - STATUS_FLT_NO_DEVICE_OBJECT NTStatus = 0xC01C0019 - STATUS_FLT_VOLUME_ALREADY_MOUNTED NTStatus = 0xC01C001A - STATUS_FLT_ALREADY_ENLISTED NTStatus = 0xC01C001B - STATUS_FLT_CONTEXT_ALREADY_LINKED NTStatus = 0xC01C001C - STATUS_FLT_NO_WAITER_FOR_REPLY NTStatus = 0xC01C0020 - STATUS_FLT_REGISTRATION_BUSY NTStatus = 0xC01C0023 - STATUS_SXS_SECTION_NOT_FOUND NTStatus = 0xC0150001 - STATUS_SXS_CANT_GEN_ACTCTX NTStatus = 0xC0150002 - STATUS_SXS_INVALID_ACTCTXDATA_FORMAT NTStatus = 0xC0150003 - STATUS_SXS_ASSEMBLY_NOT_FOUND NTStatus = 0xC0150004 - STATUS_SXS_MANIFEST_FORMAT_ERROR NTStatus = 0xC0150005 - STATUS_SXS_MANIFEST_PARSE_ERROR NTStatus = 0xC0150006 - STATUS_SXS_ACTIVATION_CONTEXT_DISABLED NTStatus = 0xC0150007 - STATUS_SXS_KEY_NOT_FOUND NTStatus = 0xC0150008 - STATUS_SXS_VERSION_CONFLICT NTStatus = 0xC0150009 - STATUS_SXS_WRONG_SECTION_TYPE NTStatus = 0xC015000A - STATUS_SXS_THREAD_QUERIES_DISABLED NTStatus = 0xC015000B - STATUS_SXS_ASSEMBLY_MISSING NTStatus = 0xC015000C - STATUS_SXS_RELEASE_ACTIVATION_CONTEXT NTStatus = 0x4015000D - STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET NTStatus = 0xC015000E - STATUS_SXS_EARLY_DEACTIVATION NTStatus = 0xC015000F - STATUS_SXS_INVALID_DEACTIVATION NTStatus = 0xC0150010 - STATUS_SXS_MULTIPLE_DEACTIVATION NTStatus = 0xC0150011 - STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY NTStatus = 0xC0150012 - STATUS_SXS_PROCESS_TERMINATION_REQUESTED NTStatus = 0xC0150013 - STATUS_SXS_CORRUPT_ACTIVATION_STACK NTStatus = 0xC0150014 - STATUS_SXS_CORRUPTION NTStatus = 0xC0150015 - STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE NTStatus = 0xC0150016 - STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME NTStatus = 0xC0150017 - STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE NTStatus = 0xC0150018 - STATUS_SXS_IDENTITY_PARSE_ERROR NTStatus = 0xC0150019 - STATUS_SXS_COMPONENT_STORE_CORRUPT NTStatus = 0xC015001A - STATUS_SXS_FILE_HASH_MISMATCH NTStatus = 0xC015001B - STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT NTStatus = 0xC015001C - STATUS_SXS_IDENTITIES_DIFFERENT NTStatus = 0xC015001D - STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT NTStatus = 0xC015001E - STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY NTStatus = 0xC015001F - STATUS_ADVANCED_INSTALLER_FAILED NTStatus = 0xC0150020 - STATUS_XML_ENCODING_MISMATCH NTStatus = 0xC0150021 - STATUS_SXS_MANIFEST_TOO_BIG NTStatus = 0xC0150022 - STATUS_SXS_SETTING_NOT_REGISTERED NTStatus = 0xC0150023 - STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE NTStatus = 0xC0150024 - STATUS_SMI_PRIMITIVE_INSTALLER_FAILED NTStatus = 0xC0150025 - STATUS_GENERIC_COMMAND_FAILED NTStatus = 0xC0150026 - STATUS_SXS_FILE_HASH_MISSING NTStatus = 0xC0150027 - STATUS_CLUSTER_INVALID_NODE NTStatus = 0xC0130001 - STATUS_CLUSTER_NODE_EXISTS NTStatus = 0xC0130002 - STATUS_CLUSTER_JOIN_IN_PROGRESS NTStatus = 0xC0130003 - STATUS_CLUSTER_NODE_NOT_FOUND NTStatus = 0xC0130004 - STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND NTStatus = 0xC0130005 - STATUS_CLUSTER_NETWORK_EXISTS NTStatus = 0xC0130006 - STATUS_CLUSTER_NETWORK_NOT_FOUND NTStatus = 0xC0130007 - STATUS_CLUSTER_NETINTERFACE_EXISTS NTStatus = 0xC0130008 - STATUS_CLUSTER_NETINTERFACE_NOT_FOUND NTStatus = 0xC0130009 - STATUS_CLUSTER_INVALID_REQUEST NTStatus = 0xC013000A - STATUS_CLUSTER_INVALID_NETWORK_PROVIDER NTStatus = 0xC013000B - STATUS_CLUSTER_NODE_DOWN NTStatus = 0xC013000C - STATUS_CLUSTER_NODE_UNREACHABLE NTStatus = 0xC013000D - STATUS_CLUSTER_NODE_NOT_MEMBER NTStatus = 0xC013000E - STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS NTStatus = 0xC013000F - STATUS_CLUSTER_INVALID_NETWORK NTStatus = 0xC0130010 - STATUS_CLUSTER_NO_NET_ADAPTERS NTStatus = 0xC0130011 - STATUS_CLUSTER_NODE_UP NTStatus = 0xC0130012 - STATUS_CLUSTER_NODE_PAUSED NTStatus = 0xC0130013 - STATUS_CLUSTER_NODE_NOT_PAUSED NTStatus = 0xC0130014 - STATUS_CLUSTER_NO_SECURITY_CONTEXT NTStatus = 0xC0130015 - STATUS_CLUSTER_NETWORK_NOT_INTERNAL NTStatus = 0xC0130016 - STATUS_CLUSTER_POISONED NTStatus = 0xC0130017 - STATUS_CLUSTER_NON_CSV_PATH NTStatus = 0xC0130018 - STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL NTStatus = 0xC0130019 - STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0xC0130020 - STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR NTStatus = 0xC0130021 - STATUS_CLUSTER_CSV_REDIRECTED NTStatus = 0xC0130022 - STATUS_CLUSTER_CSV_NOT_REDIRECTED NTStatus = 0xC0130023 - STATUS_CLUSTER_CSV_VOLUME_DRAINING NTStatus = 0xC0130024 - STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS NTStatus = 0xC0130025 - STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL NTStatus = 0xC0130026 - STATUS_CLUSTER_CSV_NO_SNAPSHOTS NTStatus = 0xC0130027 - STATUS_CSV_IO_PAUSE_TIMEOUT NTStatus = 0xC0130028 - STATUS_CLUSTER_CSV_INVALID_HANDLE NTStatus = 0xC0130029 - STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR NTStatus = 0xC0130030 - STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED NTStatus = 0xC0130031 - STATUS_TRANSACTIONAL_CONFLICT NTStatus = 0xC0190001 - STATUS_INVALID_TRANSACTION NTStatus = 0xC0190002 - STATUS_TRANSACTION_NOT_ACTIVE NTStatus = 0xC0190003 - STATUS_TM_INITIALIZATION_FAILED NTStatus = 0xC0190004 - STATUS_RM_NOT_ACTIVE NTStatus = 0xC0190005 - STATUS_RM_METADATA_CORRUPT NTStatus = 0xC0190006 - STATUS_TRANSACTION_NOT_JOINED NTStatus = 0xC0190007 - STATUS_DIRECTORY_NOT_RM NTStatus = 0xC0190008 - STATUS_COULD_NOT_RESIZE_LOG NTStatus = 0x80190009 - STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE NTStatus = 0xC019000A - STATUS_LOG_RESIZE_INVALID_SIZE NTStatus = 0xC019000B - STATUS_REMOTE_FILE_VERSION_MISMATCH NTStatus = 0xC019000C - STATUS_CRM_PROTOCOL_ALREADY_EXISTS NTStatus = 0xC019000F - STATUS_TRANSACTION_PROPAGATION_FAILED NTStatus = 0xC0190010 - STATUS_CRM_PROTOCOL_NOT_FOUND NTStatus = 0xC0190011 - STATUS_TRANSACTION_SUPERIOR_EXISTS NTStatus = 0xC0190012 - STATUS_TRANSACTION_REQUEST_NOT_VALID NTStatus = 0xC0190013 - STATUS_TRANSACTION_NOT_REQUESTED NTStatus = 0xC0190014 - STATUS_TRANSACTION_ALREADY_ABORTED NTStatus = 0xC0190015 - STATUS_TRANSACTION_ALREADY_COMMITTED NTStatus = 0xC0190016 - STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER NTStatus = 0xC0190017 - STATUS_CURRENT_TRANSACTION_NOT_VALID NTStatus = 0xC0190018 - STATUS_LOG_GROWTH_FAILED NTStatus = 0xC0190019 - STATUS_OBJECT_NO_LONGER_EXISTS NTStatus = 0xC0190021 - STATUS_STREAM_MINIVERSION_NOT_FOUND NTStatus = 0xC0190022 - STATUS_STREAM_MINIVERSION_NOT_VALID NTStatus = 0xC0190023 - STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION NTStatus = 0xC0190024 - STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT NTStatus = 0xC0190025 - STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS NTStatus = 0xC0190026 - STATUS_HANDLE_NO_LONGER_VALID NTStatus = 0xC0190028 - STATUS_NO_TXF_METADATA NTStatus = 0x80190029 - STATUS_LOG_CORRUPTION_DETECTED NTStatus = 0xC0190030 - STATUS_CANT_RECOVER_WITH_HANDLE_OPEN NTStatus = 0x80190031 - STATUS_RM_DISCONNECTED NTStatus = 0xC0190032 - STATUS_ENLISTMENT_NOT_SUPERIOR NTStatus = 0xC0190033 - STATUS_RECOVERY_NOT_NEEDED NTStatus = 0x40190034 - STATUS_RM_ALREADY_STARTED NTStatus = 0x40190035 - STATUS_FILE_IDENTITY_NOT_PERSISTENT NTStatus = 0xC0190036 - STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY NTStatus = 0xC0190037 - STATUS_CANT_CROSS_RM_BOUNDARY NTStatus = 0xC0190038 - STATUS_TXF_DIR_NOT_EMPTY NTStatus = 0xC0190039 - STATUS_INDOUBT_TRANSACTIONS_EXIST NTStatus = 0xC019003A - STATUS_TM_VOLATILE NTStatus = 0xC019003B - STATUS_ROLLBACK_TIMER_EXPIRED NTStatus = 0xC019003C - STATUS_TXF_ATTRIBUTE_CORRUPT NTStatus = 0xC019003D - STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC019003E - STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED NTStatus = 0xC019003F - STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE NTStatus = 0xC0190040 - STATUS_TXF_METADATA_ALREADY_PRESENT NTStatus = 0x80190041 - STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET NTStatus = 0x80190042 - STATUS_TRANSACTION_REQUIRED_PROMOTION NTStatus = 0xC0190043 - STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION NTStatus = 0xC0190044 - STATUS_TRANSACTIONS_NOT_FROZEN NTStatus = 0xC0190045 - STATUS_TRANSACTION_FREEZE_IN_PROGRESS NTStatus = 0xC0190046 - STATUS_NOT_SNAPSHOT_VOLUME NTStatus = 0xC0190047 - STATUS_NO_SAVEPOINT_WITH_OPEN_FILES NTStatus = 0xC0190048 - STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190049 - STATUS_TM_IDENTITY_MISMATCH NTStatus = 0xC019004A - STATUS_FLOATED_SECTION NTStatus = 0xC019004B - STATUS_CANNOT_ACCEPT_TRANSACTED_WORK NTStatus = 0xC019004C - STATUS_CANNOT_ABORT_TRANSACTIONS NTStatus = 0xC019004D - STATUS_TRANSACTION_NOT_FOUND NTStatus = 0xC019004E - STATUS_RESOURCEMANAGER_NOT_FOUND NTStatus = 0xC019004F - STATUS_ENLISTMENT_NOT_FOUND NTStatus = 0xC0190050 - STATUS_TRANSACTIONMANAGER_NOT_FOUND NTStatus = 0xC0190051 - STATUS_TRANSACTIONMANAGER_NOT_ONLINE NTStatus = 0xC0190052 - STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION NTStatus = 0xC0190053 - STATUS_TRANSACTION_NOT_ROOT NTStatus = 0xC0190054 - STATUS_TRANSACTION_OBJECT_EXPIRED NTStatus = 0xC0190055 - STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190056 - STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED NTStatus = 0xC0190057 - STATUS_TRANSACTION_RECORD_TOO_LONG NTStatus = 0xC0190058 - STATUS_NO_LINK_TRACKING_IN_TRANSACTION NTStatus = 0xC0190059 - STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION NTStatus = 0xC019005A - STATUS_TRANSACTION_INTEGRITY_VIOLATED NTStatus = 0xC019005B - STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH NTStatus = 0xC019005C - STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT NTStatus = 0xC019005D - STATUS_TRANSACTION_MUST_WRITETHROUGH NTStatus = 0xC019005E - STATUS_TRANSACTION_NO_SUPERIOR NTStatus = 0xC019005F - STATUS_EXPIRED_HANDLE NTStatus = 0xC0190060 - STATUS_TRANSACTION_NOT_ENLISTED NTStatus = 0xC0190061 - STATUS_LOG_SECTOR_INVALID NTStatus = 0xC01A0001 - STATUS_LOG_SECTOR_PARITY_INVALID NTStatus = 0xC01A0002 - STATUS_LOG_SECTOR_REMAPPED NTStatus = 0xC01A0003 - STATUS_LOG_BLOCK_INCOMPLETE NTStatus = 0xC01A0004 - STATUS_LOG_INVALID_RANGE NTStatus = 0xC01A0005 - STATUS_LOG_BLOCKS_EXHAUSTED NTStatus = 0xC01A0006 - STATUS_LOG_READ_CONTEXT_INVALID NTStatus = 0xC01A0007 - STATUS_LOG_RESTART_INVALID NTStatus = 0xC01A0008 - STATUS_LOG_BLOCK_VERSION NTStatus = 0xC01A0009 - STATUS_LOG_BLOCK_INVALID NTStatus = 0xC01A000A - STATUS_LOG_READ_MODE_INVALID NTStatus = 0xC01A000B - STATUS_LOG_NO_RESTART NTStatus = 0x401A000C - STATUS_LOG_METADATA_CORRUPT NTStatus = 0xC01A000D - STATUS_LOG_METADATA_INVALID NTStatus = 0xC01A000E - STATUS_LOG_METADATA_INCONSISTENT NTStatus = 0xC01A000F - STATUS_LOG_RESERVATION_INVALID NTStatus = 0xC01A0010 - STATUS_LOG_CANT_DELETE NTStatus = 0xC01A0011 - STATUS_LOG_CONTAINER_LIMIT_EXCEEDED NTStatus = 0xC01A0012 - STATUS_LOG_START_OF_LOG NTStatus = 0xC01A0013 - STATUS_LOG_POLICY_ALREADY_INSTALLED NTStatus = 0xC01A0014 - STATUS_LOG_POLICY_NOT_INSTALLED NTStatus = 0xC01A0015 - STATUS_LOG_POLICY_INVALID NTStatus = 0xC01A0016 - STATUS_LOG_POLICY_CONFLICT NTStatus = 0xC01A0017 - STATUS_LOG_PINNED_ARCHIVE_TAIL NTStatus = 0xC01A0018 - STATUS_LOG_RECORD_NONEXISTENT NTStatus = 0xC01A0019 - STATUS_LOG_RECORDS_RESERVED_INVALID NTStatus = 0xC01A001A - STATUS_LOG_SPACE_RESERVED_INVALID NTStatus = 0xC01A001B - STATUS_LOG_TAIL_INVALID NTStatus = 0xC01A001C - STATUS_LOG_FULL NTStatus = 0xC01A001D - STATUS_LOG_MULTIPLEXED NTStatus = 0xC01A001E - STATUS_LOG_DEDICATED NTStatus = 0xC01A001F - STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS NTStatus = 0xC01A0020 - STATUS_LOG_ARCHIVE_IN_PROGRESS NTStatus = 0xC01A0021 - STATUS_LOG_EPHEMERAL NTStatus = 0xC01A0022 - STATUS_LOG_NOT_ENOUGH_CONTAINERS NTStatus = 0xC01A0023 - STATUS_LOG_CLIENT_ALREADY_REGISTERED NTStatus = 0xC01A0024 - STATUS_LOG_CLIENT_NOT_REGISTERED NTStatus = 0xC01A0025 - STATUS_LOG_FULL_HANDLER_IN_PROGRESS NTStatus = 0xC01A0026 - STATUS_LOG_CONTAINER_READ_FAILED NTStatus = 0xC01A0027 - STATUS_LOG_CONTAINER_WRITE_FAILED NTStatus = 0xC01A0028 - STATUS_LOG_CONTAINER_OPEN_FAILED NTStatus = 0xC01A0029 - STATUS_LOG_CONTAINER_STATE_INVALID NTStatus = 0xC01A002A - STATUS_LOG_STATE_INVALID NTStatus = 0xC01A002B - STATUS_LOG_PINNED NTStatus = 0xC01A002C - STATUS_LOG_METADATA_FLUSH_FAILED NTStatus = 0xC01A002D - STATUS_LOG_INCONSISTENT_SECURITY NTStatus = 0xC01A002E - STATUS_LOG_APPENDED_FLUSH_FAILED NTStatus = 0xC01A002F - STATUS_LOG_PINNED_RESERVATION NTStatus = 0xC01A0030 - STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC01B00EA - STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED NTStatus = 0x801B00EB - STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST NTStatus = 0x401B00EC - STATUS_MONITOR_NO_DESCRIPTOR NTStatus = 0xC01D0001 - STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT NTStatus = 0xC01D0002 - STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM NTStatus = 0xC01D0003 - STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK NTStatus = 0xC01D0004 - STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED NTStatus = 0xC01D0005 - STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK NTStatus = 0xC01D0006 - STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK NTStatus = 0xC01D0007 - STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA NTStatus = 0xC01D0008 - STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK NTStatus = 0xC01D0009 - STATUS_MONITOR_INVALID_MANUFACTURE_DATE NTStatus = 0xC01D000A - STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER NTStatus = 0xC01E0000 - STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER NTStatus = 0xC01E0001 - STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER NTStatus = 0xC01E0002 - STATUS_GRAPHICS_ADAPTER_WAS_RESET NTStatus = 0xC01E0003 - STATUS_GRAPHICS_INVALID_DRIVER_MODEL NTStatus = 0xC01E0004 - STATUS_GRAPHICS_PRESENT_MODE_CHANGED NTStatus = 0xC01E0005 - STATUS_GRAPHICS_PRESENT_OCCLUDED NTStatus = 0xC01E0006 - STATUS_GRAPHICS_PRESENT_DENIED NTStatus = 0xC01E0007 - STATUS_GRAPHICS_CANNOTCOLORCONVERT NTStatus = 0xC01E0008 - STATUS_GRAPHICS_DRIVER_MISMATCH NTStatus = 0xC01E0009 - STATUS_GRAPHICS_PARTIAL_DATA_POPULATED NTStatus = 0x401E000A - STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED NTStatus = 0xC01E000B - STATUS_GRAPHICS_PRESENT_UNOCCLUDED NTStatus = 0xC01E000C - STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE NTStatus = 0xC01E000D - STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED NTStatus = 0xC01E000E - STATUS_GRAPHICS_PRESENT_INVALID_WINDOW NTStatus = 0xC01E000F - STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND NTStatus = 0xC01E0010 - STATUS_GRAPHICS_VAIL_STATE_CHANGED NTStatus = 0xC01E0011 - STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN NTStatus = 0xC01E0012 - STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED NTStatus = 0xC01E0013 - STATUS_GRAPHICS_NO_VIDEO_MEMORY NTStatus = 0xC01E0100 - STATUS_GRAPHICS_CANT_LOCK_MEMORY NTStatus = 0xC01E0101 - STATUS_GRAPHICS_ALLOCATION_BUSY NTStatus = 0xC01E0102 - STATUS_GRAPHICS_TOO_MANY_REFERENCES NTStatus = 0xC01E0103 - STATUS_GRAPHICS_TRY_AGAIN_LATER NTStatus = 0xC01E0104 - STATUS_GRAPHICS_TRY_AGAIN_NOW NTStatus = 0xC01E0105 - STATUS_GRAPHICS_ALLOCATION_INVALID NTStatus = 0xC01E0106 - STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE NTStatus = 0xC01E0107 - STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED NTStatus = 0xC01E0108 - STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION NTStatus = 0xC01E0109 - STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE NTStatus = 0xC01E0110 - STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION NTStatus = 0xC01E0111 - STATUS_GRAPHICS_ALLOCATION_CLOSED NTStatus = 0xC01E0112 - STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE NTStatus = 0xC01E0113 - STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE NTStatus = 0xC01E0114 - STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE NTStatus = 0xC01E0115 - STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST NTStatus = 0xC01E0116 - STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE NTStatus = 0xC01E0200 - STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION NTStatus = 0x401E0201 - STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY NTStatus = 0xC01E0300 - STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED NTStatus = 0xC01E0301 - STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED NTStatus = 0xC01E0302 - STATUS_GRAPHICS_INVALID_VIDPN NTStatus = 0xC01E0303 - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE NTStatus = 0xC01E0304 - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET NTStatus = 0xC01E0305 - STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED NTStatus = 0xC01E0306 - STATUS_GRAPHICS_MODE_NOT_PINNED NTStatus = 0x401E0307 - STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET NTStatus = 0xC01E0308 - STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET NTStatus = 0xC01E0309 - STATUS_GRAPHICS_INVALID_FREQUENCY NTStatus = 0xC01E030A - STATUS_GRAPHICS_INVALID_ACTIVE_REGION NTStatus = 0xC01E030B - STATUS_GRAPHICS_INVALID_TOTAL_REGION NTStatus = 0xC01E030C - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE NTStatus = 0xC01E0310 - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE NTStatus = 0xC01E0311 - STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET NTStatus = 0xC01E0312 - STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY NTStatus = 0xC01E0313 - STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET NTStatus = 0xC01E0314 - STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET NTStatus = 0xC01E0315 - STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET NTStatus = 0xC01E0316 - STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET NTStatus = 0xC01E0317 - STATUS_GRAPHICS_TARGET_ALREADY_IN_SET NTStatus = 0xC01E0318 - STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH NTStatus = 0xC01E0319 - STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY NTStatus = 0xC01E031A - STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET NTStatus = 0xC01E031B - STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE NTStatus = 0xC01E031C - STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET NTStatus = 0xC01E031D - STATUS_GRAPHICS_NO_PREFERRED_MODE NTStatus = 0x401E031E - STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET NTStatus = 0xC01E031F - STATUS_GRAPHICS_STALE_MODESET NTStatus = 0xC01E0320 - STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET NTStatus = 0xC01E0321 - STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE NTStatus = 0xC01E0322 - STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN NTStatus = 0xC01E0323 - STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0324 - STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION NTStatus = 0xC01E0325 - STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES NTStatus = 0xC01E0326 - STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY NTStatus = 0xC01E0327 - STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE NTStatus = 0xC01E0328 - STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET NTStatus = 0xC01E0329 - STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET NTStatus = 0xC01E032A - STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR NTStatus = 0xC01E032B - STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET NTStatus = 0xC01E032C - STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET NTStatus = 0xC01E032D - STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE NTStatus = 0xC01E032E - STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE NTStatus = 0xC01E032F - STATUS_GRAPHICS_RESOURCES_NOT_RELATED NTStatus = 0xC01E0330 - STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0331 - STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0332 - STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET NTStatus = 0xC01E0333 - STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER NTStatus = 0xC01E0334 - STATUS_GRAPHICS_NO_VIDPNMGR NTStatus = 0xC01E0335 - STATUS_GRAPHICS_NO_ACTIVE_VIDPN NTStatus = 0xC01E0336 - STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY NTStatus = 0xC01E0337 - STATUS_GRAPHICS_MONITOR_NOT_CONNECTED NTStatus = 0xC01E0338 - STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY NTStatus = 0xC01E0339 - STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE NTStatus = 0xC01E033A - STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE NTStatus = 0xC01E033B - STATUS_GRAPHICS_INVALID_STRIDE NTStatus = 0xC01E033C - STATUS_GRAPHICS_INVALID_PIXELFORMAT NTStatus = 0xC01E033D - STATUS_GRAPHICS_INVALID_COLORBASIS NTStatus = 0xC01E033E - STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE NTStatus = 0xC01E033F - STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY NTStatus = 0xC01E0340 - STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT NTStatus = 0xC01E0341 - STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE NTStatus = 0xC01E0342 - STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN NTStatus = 0xC01E0343 - STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL NTStatus = 0xC01E0344 - STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION NTStatus = 0xC01E0345 - STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED NTStatus = 0xC01E0346 - STATUS_GRAPHICS_INVALID_GAMMA_RAMP NTStatus = 0xC01E0347 - STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED NTStatus = 0xC01E0348 - STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED NTStatus = 0xC01E0349 - STATUS_GRAPHICS_MODE_NOT_IN_MODESET NTStatus = 0xC01E034A - STATUS_GRAPHICS_DATASET_IS_EMPTY NTStatus = 0x401E034B - STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET NTStatus = 0x401E034C - STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON NTStatus = 0xC01E034D - STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE NTStatus = 0xC01E034E - STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE NTStatus = 0xC01E034F - STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS NTStatus = 0xC01E0350 - STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED NTStatus = 0x401E0351 - STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING NTStatus = 0xC01E0352 - STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED NTStatus = 0xC01E0353 - STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS NTStatus = 0xC01E0354 - STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT NTStatus = 0xC01E0355 - STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM NTStatus = 0xC01E0356 - STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN NTStatus = 0xC01E0357 - STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT NTStatus = 0xC01E0358 - STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED NTStatus = 0xC01E0359 - STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION NTStatus = 0xC01E035A - STATUS_GRAPHICS_INVALID_CLIENT_TYPE NTStatus = 0xC01E035B - STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET NTStatus = 0xC01E035C - STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED NTStatus = 0xC01E0400 - STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED NTStatus = 0xC01E0401 - STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS NTStatus = 0x401E042F - STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER NTStatus = 0xC01E0430 - STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED NTStatus = 0xC01E0431 - STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED NTStatus = 0xC01E0432 - STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY NTStatus = 0xC01E0433 - STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED NTStatus = 0xC01E0434 - STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON NTStatus = 0xC01E0435 - STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE NTStatus = 0xC01E0436 - STATUS_GRAPHICS_LEADLINK_START_DEFERRED NTStatus = 0x401E0437 - STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER NTStatus = 0xC01E0438 - STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY NTStatus = 0x401E0439 - STATUS_GRAPHICS_START_DEFERRED NTStatus = 0x401E043A - STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED NTStatus = 0xC01E043B - STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS NTStatus = 0x401E043C - STATUS_GRAPHICS_OPM_NOT_SUPPORTED NTStatus = 0xC01E0500 - STATUS_GRAPHICS_COPP_NOT_SUPPORTED NTStatus = 0xC01E0501 - STATUS_GRAPHICS_UAB_NOT_SUPPORTED NTStatus = 0xC01E0502 - STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS NTStatus = 0xC01E0503 - STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST NTStatus = 0xC01E0505 - STATUS_GRAPHICS_OPM_INTERNAL_ERROR NTStatus = 0xC01E050B - STATUS_GRAPHICS_OPM_INVALID_HANDLE NTStatus = 0xC01E050C - STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH NTStatus = 0xC01E050E - STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED NTStatus = 0xC01E050F - STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED NTStatus = 0xC01E0510 - STATUS_GRAPHICS_PVP_HFS_FAILED NTStatus = 0xC01E0511 - STATUS_GRAPHICS_OPM_INVALID_SRM NTStatus = 0xC01E0512 - STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP NTStatus = 0xC01E0513 - STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP NTStatus = 0xC01E0514 - STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA NTStatus = 0xC01E0515 - STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET NTStatus = 0xC01E0516 - STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH NTStatus = 0xC01E0517 - STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE NTStatus = 0xC01E0518 - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS NTStatus = 0xC01E051A - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS NTStatus = 0xC01E051C - STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST NTStatus = 0xC01E051D - STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR NTStatus = 0xC01E051E - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS NTStatus = 0xC01E051F - STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED NTStatus = 0xC01E0520 - STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST NTStatus = 0xC01E0521 - STATUS_GRAPHICS_I2C_NOT_SUPPORTED NTStatus = 0xC01E0580 - STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST NTStatus = 0xC01E0581 - STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA NTStatus = 0xC01E0582 - STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA NTStatus = 0xC01E0583 - STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED NTStatus = 0xC01E0584 - STATUS_GRAPHICS_DDCCI_INVALID_DATA NTStatus = 0xC01E0585 - STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE NTStatus = 0xC01E0586 - STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING NTStatus = 0xC01E0587 - STATUS_GRAPHICS_MCA_INTERNAL_ERROR NTStatus = 0xC01E0588 - STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND NTStatus = 0xC01E0589 - STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH NTStatus = 0xC01E058A - STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM NTStatus = 0xC01E058B - STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE NTStatus = 0xC01E058C - STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS NTStatus = 0xC01E058D - STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED NTStatus = 0xC01E05E0 - STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME NTStatus = 0xC01E05E1 - STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP NTStatus = 0xC01E05E2 - STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED NTStatus = 0xC01E05E3 - STATUS_GRAPHICS_INVALID_POINTER NTStatus = 0xC01E05E4 - STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE NTStatus = 0xC01E05E5 - STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL NTStatus = 0xC01E05E6 - STATUS_GRAPHICS_INTERNAL_ERROR NTStatus = 0xC01E05E7 - STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS NTStatus = 0xC01E05E8 - STATUS_FVE_LOCKED_VOLUME NTStatus = 0xC0210000 - STATUS_FVE_NOT_ENCRYPTED NTStatus = 0xC0210001 - STATUS_FVE_BAD_INFORMATION NTStatus = 0xC0210002 - STATUS_FVE_TOO_SMALL NTStatus = 0xC0210003 - STATUS_FVE_FAILED_WRONG_FS NTStatus = 0xC0210004 - STATUS_FVE_BAD_PARTITION_SIZE NTStatus = 0xC0210005 - STATUS_FVE_FS_NOT_EXTENDED NTStatus = 0xC0210006 - STATUS_FVE_FS_MOUNTED NTStatus = 0xC0210007 - STATUS_FVE_NO_LICENSE NTStatus = 0xC0210008 - STATUS_FVE_ACTION_NOT_ALLOWED NTStatus = 0xC0210009 - STATUS_FVE_BAD_DATA NTStatus = 0xC021000A - STATUS_FVE_VOLUME_NOT_BOUND NTStatus = 0xC021000B - STATUS_FVE_NOT_DATA_VOLUME NTStatus = 0xC021000C - STATUS_FVE_CONV_READ_ERROR NTStatus = 0xC021000D - STATUS_FVE_CONV_WRITE_ERROR NTStatus = 0xC021000E - STATUS_FVE_OVERLAPPED_UPDATE NTStatus = 0xC021000F - STATUS_FVE_FAILED_SECTOR_SIZE NTStatus = 0xC0210010 - STATUS_FVE_FAILED_AUTHENTICATION NTStatus = 0xC0210011 - STATUS_FVE_NOT_OS_VOLUME NTStatus = 0xC0210012 - STATUS_FVE_KEYFILE_NOT_FOUND NTStatus = 0xC0210013 - STATUS_FVE_KEYFILE_INVALID NTStatus = 0xC0210014 - STATUS_FVE_KEYFILE_NO_VMK NTStatus = 0xC0210015 - STATUS_FVE_TPM_DISABLED NTStatus = 0xC0210016 - STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO NTStatus = 0xC0210017 - STATUS_FVE_TPM_INVALID_PCR NTStatus = 0xC0210018 - STATUS_FVE_TPM_NO_VMK NTStatus = 0xC0210019 - STATUS_FVE_PIN_INVALID NTStatus = 0xC021001A - STATUS_FVE_AUTH_INVALID_APPLICATION NTStatus = 0xC021001B - STATUS_FVE_AUTH_INVALID_CONFIG NTStatus = 0xC021001C - STATUS_FVE_DEBUGGER_ENABLED NTStatus = 0xC021001D - STATUS_FVE_DRY_RUN_FAILED NTStatus = 0xC021001E - STATUS_FVE_BAD_METADATA_POINTER NTStatus = 0xC021001F - STATUS_FVE_OLD_METADATA_COPY NTStatus = 0xC0210020 - STATUS_FVE_REBOOT_REQUIRED NTStatus = 0xC0210021 - STATUS_FVE_RAW_ACCESS NTStatus = 0xC0210022 - STATUS_FVE_RAW_BLOCKED NTStatus = 0xC0210023 - STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY NTStatus = 0xC0210024 - STATUS_FVE_MOR_FAILED NTStatus = 0xC0210025 - STATUS_FVE_NO_FEATURE_LICENSE NTStatus = 0xC0210026 - STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED NTStatus = 0xC0210027 - STATUS_FVE_CONV_RECOVERY_FAILED NTStatus = 0xC0210028 - STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG NTStatus = 0xC0210029 - STATUS_FVE_INVALID_DATUM_TYPE NTStatus = 0xC021002A - STATUS_FVE_VOLUME_TOO_SMALL NTStatus = 0xC0210030 - STATUS_FVE_ENH_PIN_INVALID NTStatus = 0xC0210031 - STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210032 - STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210033 - STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK NTStatus = 0xC0210034 - STATUS_FVE_NOT_ALLOWED_ON_CLUSTER NTStatus = 0xC0210035 - STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING NTStatus = 0xC0210036 - STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE NTStatus = 0xC0210037 - STATUS_FVE_EDRIVE_DRY_RUN_FAILED NTStatus = 0xC0210038 - STATUS_FVE_SECUREBOOT_DISABLED NTStatus = 0xC0210039 - STATUS_FVE_SECUREBOOT_CONFIG_CHANGE NTStatus = 0xC021003A - STATUS_FVE_DEVICE_LOCKEDOUT NTStatus = 0xC021003B - STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT NTStatus = 0xC021003C - STATUS_FVE_NOT_DE_VOLUME NTStatus = 0xC021003D - STATUS_FVE_PROTECTION_DISABLED NTStatus = 0xC021003E - STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED NTStatus = 0xC021003F - STATUS_FVE_OSV_KSR_NOT_ALLOWED NTStatus = 0xC0210040 - STATUS_FWP_CALLOUT_NOT_FOUND NTStatus = 0xC0220001 - STATUS_FWP_CONDITION_NOT_FOUND NTStatus = 0xC0220002 - STATUS_FWP_FILTER_NOT_FOUND NTStatus = 0xC0220003 - STATUS_FWP_LAYER_NOT_FOUND NTStatus = 0xC0220004 - STATUS_FWP_PROVIDER_NOT_FOUND NTStatus = 0xC0220005 - STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND NTStatus = 0xC0220006 - STATUS_FWP_SUBLAYER_NOT_FOUND NTStatus = 0xC0220007 - STATUS_FWP_NOT_FOUND NTStatus = 0xC0220008 - STATUS_FWP_ALREADY_EXISTS NTStatus = 0xC0220009 - STATUS_FWP_IN_USE NTStatus = 0xC022000A - STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS NTStatus = 0xC022000B - STATUS_FWP_WRONG_SESSION NTStatus = 0xC022000C - STATUS_FWP_NO_TXN_IN_PROGRESS NTStatus = 0xC022000D - STATUS_FWP_TXN_IN_PROGRESS NTStatus = 0xC022000E - STATUS_FWP_TXN_ABORTED NTStatus = 0xC022000F - STATUS_FWP_SESSION_ABORTED NTStatus = 0xC0220010 - STATUS_FWP_INCOMPATIBLE_TXN NTStatus = 0xC0220011 - STATUS_FWP_TIMEOUT NTStatus = 0xC0220012 - STATUS_FWP_NET_EVENTS_DISABLED NTStatus = 0xC0220013 - STATUS_FWP_INCOMPATIBLE_LAYER NTStatus = 0xC0220014 - STATUS_FWP_KM_CLIENTS_ONLY NTStatus = 0xC0220015 - STATUS_FWP_LIFETIME_MISMATCH NTStatus = 0xC0220016 - STATUS_FWP_BUILTIN_OBJECT NTStatus = 0xC0220017 - STATUS_FWP_TOO_MANY_CALLOUTS NTStatus = 0xC0220018 - STATUS_FWP_NOTIFICATION_DROPPED NTStatus = 0xC0220019 - STATUS_FWP_TRAFFIC_MISMATCH NTStatus = 0xC022001A - STATUS_FWP_INCOMPATIBLE_SA_STATE NTStatus = 0xC022001B - STATUS_FWP_NULL_POINTER NTStatus = 0xC022001C - STATUS_FWP_INVALID_ENUMERATOR NTStatus = 0xC022001D - STATUS_FWP_INVALID_FLAGS NTStatus = 0xC022001E - STATUS_FWP_INVALID_NET_MASK NTStatus = 0xC022001F - STATUS_FWP_INVALID_RANGE NTStatus = 0xC0220020 - STATUS_FWP_INVALID_INTERVAL NTStatus = 0xC0220021 - STATUS_FWP_ZERO_LENGTH_ARRAY NTStatus = 0xC0220022 - STATUS_FWP_NULL_DISPLAY_NAME NTStatus = 0xC0220023 - STATUS_FWP_INVALID_ACTION_TYPE NTStatus = 0xC0220024 - STATUS_FWP_INVALID_WEIGHT NTStatus = 0xC0220025 - STATUS_FWP_MATCH_TYPE_MISMATCH NTStatus = 0xC0220026 - STATUS_FWP_TYPE_MISMATCH NTStatus = 0xC0220027 - STATUS_FWP_OUT_OF_BOUNDS NTStatus = 0xC0220028 - STATUS_FWP_RESERVED NTStatus = 0xC0220029 - STATUS_FWP_DUPLICATE_CONDITION NTStatus = 0xC022002A - STATUS_FWP_DUPLICATE_KEYMOD NTStatus = 0xC022002B - STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002C - STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER NTStatus = 0xC022002D - STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002E - STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT NTStatus = 0xC022002F - STATUS_FWP_INCOMPATIBLE_AUTH_METHOD NTStatus = 0xC0220030 - STATUS_FWP_INCOMPATIBLE_DH_GROUP NTStatus = 0xC0220031 - STATUS_FWP_EM_NOT_SUPPORTED NTStatus = 0xC0220032 - STATUS_FWP_NEVER_MATCH NTStatus = 0xC0220033 - STATUS_FWP_PROVIDER_CONTEXT_MISMATCH NTStatus = 0xC0220034 - STATUS_FWP_INVALID_PARAMETER NTStatus = 0xC0220035 - STATUS_FWP_TOO_MANY_SUBLAYERS NTStatus = 0xC0220036 - STATUS_FWP_CALLOUT_NOTIFICATION_FAILED NTStatus = 0xC0220037 - STATUS_FWP_INVALID_AUTH_TRANSFORM NTStatus = 0xC0220038 - STATUS_FWP_INVALID_CIPHER_TRANSFORM NTStatus = 0xC0220039 - STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM NTStatus = 0xC022003A - STATUS_FWP_INVALID_TRANSFORM_COMBINATION NTStatus = 0xC022003B - STATUS_FWP_DUPLICATE_AUTH_METHOD NTStatus = 0xC022003C - STATUS_FWP_INVALID_TUNNEL_ENDPOINT NTStatus = 0xC022003D - STATUS_FWP_L2_DRIVER_NOT_READY NTStatus = 0xC022003E - STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED NTStatus = 0xC022003F - STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL NTStatus = 0xC0220040 - STATUS_FWP_CONNECTIONS_DISABLED NTStatus = 0xC0220041 - STATUS_FWP_INVALID_DNS_NAME NTStatus = 0xC0220042 - STATUS_FWP_STILL_ON NTStatus = 0xC0220043 - STATUS_FWP_IKEEXT_NOT_RUNNING NTStatus = 0xC0220044 - STATUS_FWP_TCPIP_NOT_READY NTStatus = 0xC0220100 - STATUS_FWP_INJECT_HANDLE_CLOSING NTStatus = 0xC0220101 - STATUS_FWP_INJECT_HANDLE_STALE NTStatus = 0xC0220102 - STATUS_FWP_CANNOT_PEND NTStatus = 0xC0220103 - STATUS_FWP_DROP_NOICMP NTStatus = 0xC0220104 - STATUS_NDIS_CLOSING NTStatus = 0xC0230002 - STATUS_NDIS_BAD_VERSION NTStatus = 0xC0230004 - STATUS_NDIS_BAD_CHARACTERISTICS NTStatus = 0xC0230005 - STATUS_NDIS_ADAPTER_NOT_FOUND NTStatus = 0xC0230006 - STATUS_NDIS_OPEN_FAILED NTStatus = 0xC0230007 - STATUS_NDIS_DEVICE_FAILED NTStatus = 0xC0230008 - STATUS_NDIS_MULTICAST_FULL NTStatus = 0xC0230009 - STATUS_NDIS_MULTICAST_EXISTS NTStatus = 0xC023000A - STATUS_NDIS_MULTICAST_NOT_FOUND NTStatus = 0xC023000B - STATUS_NDIS_REQUEST_ABORTED NTStatus = 0xC023000C - STATUS_NDIS_RESET_IN_PROGRESS NTStatus = 0xC023000D - STATUS_NDIS_NOT_SUPPORTED NTStatus = 0xC02300BB - STATUS_NDIS_INVALID_PACKET NTStatus = 0xC023000F - STATUS_NDIS_ADAPTER_NOT_READY NTStatus = 0xC0230011 - STATUS_NDIS_INVALID_LENGTH NTStatus = 0xC0230014 - STATUS_NDIS_INVALID_DATA NTStatus = 0xC0230015 - STATUS_NDIS_BUFFER_TOO_SHORT NTStatus = 0xC0230016 - STATUS_NDIS_INVALID_OID NTStatus = 0xC0230017 - STATUS_NDIS_ADAPTER_REMOVED NTStatus = 0xC0230018 - STATUS_NDIS_UNSUPPORTED_MEDIA NTStatus = 0xC0230019 - STATUS_NDIS_GROUP_ADDRESS_IN_USE NTStatus = 0xC023001A - STATUS_NDIS_FILE_NOT_FOUND NTStatus = 0xC023001B - STATUS_NDIS_ERROR_READING_FILE NTStatus = 0xC023001C - STATUS_NDIS_ALREADY_MAPPED NTStatus = 0xC023001D - STATUS_NDIS_RESOURCE_CONFLICT NTStatus = 0xC023001E - STATUS_NDIS_MEDIA_DISCONNECTED NTStatus = 0xC023001F - STATUS_NDIS_INVALID_ADDRESS NTStatus = 0xC0230022 - STATUS_NDIS_INVALID_DEVICE_REQUEST NTStatus = 0xC0230010 - STATUS_NDIS_PAUSED NTStatus = 0xC023002A - STATUS_NDIS_INTERFACE_NOT_FOUND NTStatus = 0xC023002B - STATUS_NDIS_UNSUPPORTED_REVISION NTStatus = 0xC023002C - STATUS_NDIS_INVALID_PORT NTStatus = 0xC023002D - STATUS_NDIS_INVALID_PORT_STATE NTStatus = 0xC023002E - STATUS_NDIS_LOW_POWER_STATE NTStatus = 0xC023002F - STATUS_NDIS_REINIT_REQUIRED NTStatus = 0xC0230030 - STATUS_NDIS_NO_QUEUES NTStatus = 0xC0230031 - STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED NTStatus = 0xC0232000 - STATUS_NDIS_DOT11_MEDIA_IN_USE NTStatus = 0xC0232001 - STATUS_NDIS_DOT11_POWER_STATE_INVALID NTStatus = 0xC0232002 - STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL NTStatus = 0xC0232003 - STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL NTStatus = 0xC0232004 - STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232005 - STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232006 - STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED NTStatus = 0xC0232007 - STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED NTStatus = 0xC0232008 - STATUS_NDIS_INDICATION_REQUIRED NTStatus = 0x40230001 - STATUS_NDIS_OFFLOAD_POLICY NTStatus = 0xC023100F - STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED NTStatus = 0xC0231012 - STATUS_NDIS_OFFLOAD_PATH_REJECTED NTStatus = 0xC0231013 - STATUS_TPM_ERROR_MASK NTStatus = 0xC0290000 - STATUS_TPM_AUTHFAIL NTStatus = 0xC0290001 - STATUS_TPM_BADINDEX NTStatus = 0xC0290002 - STATUS_TPM_BAD_PARAMETER NTStatus = 0xC0290003 - STATUS_TPM_AUDITFAILURE NTStatus = 0xC0290004 - STATUS_TPM_CLEAR_DISABLED NTStatus = 0xC0290005 - STATUS_TPM_DEACTIVATED NTStatus = 0xC0290006 - STATUS_TPM_DISABLED NTStatus = 0xC0290007 - STATUS_TPM_DISABLED_CMD NTStatus = 0xC0290008 - STATUS_TPM_FAIL NTStatus = 0xC0290009 - STATUS_TPM_BAD_ORDINAL NTStatus = 0xC029000A - STATUS_TPM_INSTALL_DISABLED NTStatus = 0xC029000B - STATUS_TPM_INVALID_KEYHANDLE NTStatus = 0xC029000C - STATUS_TPM_KEYNOTFOUND NTStatus = 0xC029000D - STATUS_TPM_INAPPROPRIATE_ENC NTStatus = 0xC029000E - STATUS_TPM_MIGRATEFAIL NTStatus = 0xC029000F - STATUS_TPM_INVALID_PCR_INFO NTStatus = 0xC0290010 - STATUS_TPM_NOSPACE NTStatus = 0xC0290011 - STATUS_TPM_NOSRK NTStatus = 0xC0290012 - STATUS_TPM_NOTSEALED_BLOB NTStatus = 0xC0290013 - STATUS_TPM_OWNER_SET NTStatus = 0xC0290014 - STATUS_TPM_RESOURCES NTStatus = 0xC0290015 - STATUS_TPM_SHORTRANDOM NTStatus = 0xC0290016 - STATUS_TPM_SIZE NTStatus = 0xC0290017 - STATUS_TPM_WRONGPCRVAL NTStatus = 0xC0290018 - STATUS_TPM_BAD_PARAM_SIZE NTStatus = 0xC0290019 - STATUS_TPM_SHA_THREAD NTStatus = 0xC029001A - STATUS_TPM_SHA_ERROR NTStatus = 0xC029001B - STATUS_TPM_FAILEDSELFTEST NTStatus = 0xC029001C - STATUS_TPM_AUTH2FAIL NTStatus = 0xC029001D - STATUS_TPM_BADTAG NTStatus = 0xC029001E - STATUS_TPM_IOERROR NTStatus = 0xC029001F - STATUS_TPM_ENCRYPT_ERROR NTStatus = 0xC0290020 - STATUS_TPM_DECRYPT_ERROR NTStatus = 0xC0290021 - STATUS_TPM_INVALID_AUTHHANDLE NTStatus = 0xC0290022 - STATUS_TPM_NO_ENDORSEMENT NTStatus = 0xC0290023 - STATUS_TPM_INVALID_KEYUSAGE NTStatus = 0xC0290024 - STATUS_TPM_WRONG_ENTITYTYPE NTStatus = 0xC0290025 - STATUS_TPM_INVALID_POSTINIT NTStatus = 0xC0290026 - STATUS_TPM_INAPPROPRIATE_SIG NTStatus = 0xC0290027 - STATUS_TPM_BAD_KEY_PROPERTY NTStatus = 0xC0290028 - STATUS_TPM_BAD_MIGRATION NTStatus = 0xC0290029 - STATUS_TPM_BAD_SCHEME NTStatus = 0xC029002A - STATUS_TPM_BAD_DATASIZE NTStatus = 0xC029002B - STATUS_TPM_BAD_MODE NTStatus = 0xC029002C - STATUS_TPM_BAD_PRESENCE NTStatus = 0xC029002D - STATUS_TPM_BAD_VERSION NTStatus = 0xC029002E - STATUS_TPM_NO_WRAP_TRANSPORT NTStatus = 0xC029002F - STATUS_TPM_AUDITFAIL_UNSUCCESSFUL NTStatus = 0xC0290030 - STATUS_TPM_AUDITFAIL_SUCCESSFUL NTStatus = 0xC0290031 - STATUS_TPM_NOTRESETABLE NTStatus = 0xC0290032 - STATUS_TPM_NOTLOCAL NTStatus = 0xC0290033 - STATUS_TPM_BAD_TYPE NTStatus = 0xC0290034 - STATUS_TPM_INVALID_RESOURCE NTStatus = 0xC0290035 - STATUS_TPM_NOTFIPS NTStatus = 0xC0290036 - STATUS_TPM_INVALID_FAMILY NTStatus = 0xC0290037 - STATUS_TPM_NO_NV_PERMISSION NTStatus = 0xC0290038 - STATUS_TPM_REQUIRES_SIGN NTStatus = 0xC0290039 - STATUS_TPM_KEY_NOTSUPPORTED NTStatus = 0xC029003A - STATUS_TPM_AUTH_CONFLICT NTStatus = 0xC029003B - STATUS_TPM_AREA_LOCKED NTStatus = 0xC029003C - STATUS_TPM_BAD_LOCALITY NTStatus = 0xC029003D - STATUS_TPM_READ_ONLY NTStatus = 0xC029003E - STATUS_TPM_PER_NOWRITE NTStatus = 0xC029003F - STATUS_TPM_FAMILYCOUNT NTStatus = 0xC0290040 - STATUS_TPM_WRITE_LOCKED NTStatus = 0xC0290041 - STATUS_TPM_BAD_ATTRIBUTES NTStatus = 0xC0290042 - STATUS_TPM_INVALID_STRUCTURE NTStatus = 0xC0290043 - STATUS_TPM_KEY_OWNER_CONTROL NTStatus = 0xC0290044 - STATUS_TPM_BAD_COUNTER NTStatus = 0xC0290045 - STATUS_TPM_NOT_FULLWRITE NTStatus = 0xC0290046 - STATUS_TPM_CONTEXT_GAP NTStatus = 0xC0290047 - STATUS_TPM_MAXNVWRITES NTStatus = 0xC0290048 - STATUS_TPM_NOOPERATOR NTStatus = 0xC0290049 - STATUS_TPM_RESOURCEMISSING NTStatus = 0xC029004A - STATUS_TPM_DELEGATE_LOCK NTStatus = 0xC029004B - STATUS_TPM_DELEGATE_FAMILY NTStatus = 0xC029004C - STATUS_TPM_DELEGATE_ADMIN NTStatus = 0xC029004D - STATUS_TPM_TRANSPORT_NOTEXCLUSIVE NTStatus = 0xC029004E - STATUS_TPM_OWNER_CONTROL NTStatus = 0xC029004F - STATUS_TPM_DAA_RESOURCES NTStatus = 0xC0290050 - STATUS_TPM_DAA_INPUT_DATA0 NTStatus = 0xC0290051 - STATUS_TPM_DAA_INPUT_DATA1 NTStatus = 0xC0290052 - STATUS_TPM_DAA_ISSUER_SETTINGS NTStatus = 0xC0290053 - STATUS_TPM_DAA_TPM_SETTINGS NTStatus = 0xC0290054 - STATUS_TPM_DAA_STAGE NTStatus = 0xC0290055 - STATUS_TPM_DAA_ISSUER_VALIDITY NTStatus = 0xC0290056 - STATUS_TPM_DAA_WRONG_W NTStatus = 0xC0290057 - STATUS_TPM_BAD_HANDLE NTStatus = 0xC0290058 - STATUS_TPM_BAD_DELEGATE NTStatus = 0xC0290059 - STATUS_TPM_BADCONTEXT NTStatus = 0xC029005A - STATUS_TPM_TOOMANYCONTEXTS NTStatus = 0xC029005B - STATUS_TPM_MA_TICKET_SIGNATURE NTStatus = 0xC029005C - STATUS_TPM_MA_DESTINATION NTStatus = 0xC029005D - STATUS_TPM_MA_SOURCE NTStatus = 0xC029005E - STATUS_TPM_MA_AUTHORITY NTStatus = 0xC029005F - STATUS_TPM_PERMANENTEK NTStatus = 0xC0290061 - STATUS_TPM_BAD_SIGNATURE NTStatus = 0xC0290062 - STATUS_TPM_NOCONTEXTSPACE NTStatus = 0xC0290063 - STATUS_TPM_20_E_ASYMMETRIC NTStatus = 0xC0290081 - STATUS_TPM_20_E_ATTRIBUTES NTStatus = 0xC0290082 - STATUS_TPM_20_E_HASH NTStatus = 0xC0290083 - STATUS_TPM_20_E_VALUE NTStatus = 0xC0290084 - STATUS_TPM_20_E_HIERARCHY NTStatus = 0xC0290085 - STATUS_TPM_20_E_KEY_SIZE NTStatus = 0xC0290087 - STATUS_TPM_20_E_MGF NTStatus = 0xC0290088 - STATUS_TPM_20_E_MODE NTStatus = 0xC0290089 - STATUS_TPM_20_E_TYPE NTStatus = 0xC029008A - STATUS_TPM_20_E_HANDLE NTStatus = 0xC029008B - STATUS_TPM_20_E_KDF NTStatus = 0xC029008C - STATUS_TPM_20_E_RANGE NTStatus = 0xC029008D - STATUS_TPM_20_E_AUTH_FAIL NTStatus = 0xC029008E - STATUS_TPM_20_E_NONCE NTStatus = 0xC029008F - STATUS_TPM_20_E_PP NTStatus = 0xC0290090 - STATUS_TPM_20_E_SCHEME NTStatus = 0xC0290092 - STATUS_TPM_20_E_SIZE NTStatus = 0xC0290095 - STATUS_TPM_20_E_SYMMETRIC NTStatus = 0xC0290096 - STATUS_TPM_20_E_TAG NTStatus = 0xC0290097 - STATUS_TPM_20_E_SELECTOR NTStatus = 0xC0290098 - STATUS_TPM_20_E_INSUFFICIENT NTStatus = 0xC029009A - STATUS_TPM_20_E_SIGNATURE NTStatus = 0xC029009B - STATUS_TPM_20_E_KEY NTStatus = 0xC029009C - STATUS_TPM_20_E_POLICY_FAIL NTStatus = 0xC029009D - STATUS_TPM_20_E_INTEGRITY NTStatus = 0xC029009F - STATUS_TPM_20_E_TICKET NTStatus = 0xC02900A0 - STATUS_TPM_20_E_RESERVED_BITS NTStatus = 0xC02900A1 - STATUS_TPM_20_E_BAD_AUTH NTStatus = 0xC02900A2 - STATUS_TPM_20_E_EXPIRED NTStatus = 0xC02900A3 - STATUS_TPM_20_E_POLICY_CC NTStatus = 0xC02900A4 - STATUS_TPM_20_E_BINDING NTStatus = 0xC02900A5 - STATUS_TPM_20_E_CURVE NTStatus = 0xC02900A6 - STATUS_TPM_20_E_ECC_POINT NTStatus = 0xC02900A7 - STATUS_TPM_20_E_INITIALIZE NTStatus = 0xC0290100 - STATUS_TPM_20_E_FAILURE NTStatus = 0xC0290101 - STATUS_TPM_20_E_SEQUENCE NTStatus = 0xC0290103 - STATUS_TPM_20_E_PRIVATE NTStatus = 0xC029010B - STATUS_TPM_20_E_HMAC NTStatus = 0xC0290119 - STATUS_TPM_20_E_DISABLED NTStatus = 0xC0290120 - STATUS_TPM_20_E_EXCLUSIVE NTStatus = 0xC0290121 - STATUS_TPM_20_E_ECC_CURVE NTStatus = 0xC0290123 - STATUS_TPM_20_E_AUTH_TYPE NTStatus = 0xC0290124 - STATUS_TPM_20_E_AUTH_MISSING NTStatus = 0xC0290125 - STATUS_TPM_20_E_POLICY NTStatus = 0xC0290126 - STATUS_TPM_20_E_PCR NTStatus = 0xC0290127 - STATUS_TPM_20_E_PCR_CHANGED NTStatus = 0xC0290128 - STATUS_TPM_20_E_UPGRADE NTStatus = 0xC029012D - STATUS_TPM_20_E_TOO_MANY_CONTEXTS NTStatus = 0xC029012E - STATUS_TPM_20_E_AUTH_UNAVAILABLE NTStatus = 0xC029012F - STATUS_TPM_20_E_REBOOT NTStatus = 0xC0290130 - STATUS_TPM_20_E_UNBALANCED NTStatus = 0xC0290131 - STATUS_TPM_20_E_COMMAND_SIZE NTStatus = 0xC0290142 - STATUS_TPM_20_E_COMMAND_CODE NTStatus = 0xC0290143 - STATUS_TPM_20_E_AUTHSIZE NTStatus = 0xC0290144 - STATUS_TPM_20_E_AUTH_CONTEXT NTStatus = 0xC0290145 - STATUS_TPM_20_E_NV_RANGE NTStatus = 0xC0290146 - STATUS_TPM_20_E_NV_SIZE NTStatus = 0xC0290147 - STATUS_TPM_20_E_NV_LOCKED NTStatus = 0xC0290148 - STATUS_TPM_20_E_NV_AUTHORIZATION NTStatus = 0xC0290149 - STATUS_TPM_20_E_NV_UNINITIALIZED NTStatus = 0xC029014A - STATUS_TPM_20_E_NV_SPACE NTStatus = 0xC029014B - STATUS_TPM_20_E_NV_DEFINED NTStatus = 0xC029014C - STATUS_TPM_20_E_BAD_CONTEXT NTStatus = 0xC0290150 - STATUS_TPM_20_E_CPHASH NTStatus = 0xC0290151 - STATUS_TPM_20_E_PARENT NTStatus = 0xC0290152 - STATUS_TPM_20_E_NEEDS_TEST NTStatus = 0xC0290153 - STATUS_TPM_20_E_NO_RESULT NTStatus = 0xC0290154 - STATUS_TPM_20_E_SENSITIVE NTStatus = 0xC0290155 - STATUS_TPM_COMMAND_BLOCKED NTStatus = 0xC0290400 - STATUS_TPM_INVALID_HANDLE NTStatus = 0xC0290401 - STATUS_TPM_DUPLICATE_VHANDLE NTStatus = 0xC0290402 - STATUS_TPM_EMBEDDED_COMMAND_BLOCKED NTStatus = 0xC0290403 - STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED NTStatus = 0xC0290404 - STATUS_TPM_RETRY NTStatus = 0xC0290800 - STATUS_TPM_NEEDS_SELFTEST NTStatus = 0xC0290801 - STATUS_TPM_DOING_SELFTEST NTStatus = 0xC0290802 - STATUS_TPM_DEFEND_LOCK_RUNNING NTStatus = 0xC0290803 - STATUS_TPM_COMMAND_CANCELED NTStatus = 0xC0291001 - STATUS_TPM_TOO_MANY_CONTEXTS NTStatus = 0xC0291002 - STATUS_TPM_NOT_FOUND NTStatus = 0xC0291003 - STATUS_TPM_ACCESS_DENIED NTStatus = 0xC0291004 - STATUS_TPM_INSUFFICIENT_BUFFER NTStatus = 0xC0291005 - STATUS_TPM_PPI_FUNCTION_UNSUPPORTED NTStatus = 0xC0291006 - STATUS_PCP_ERROR_MASK NTStatus = 0xC0292000 - STATUS_PCP_DEVICE_NOT_READY NTStatus = 0xC0292001 - STATUS_PCP_INVALID_HANDLE NTStatus = 0xC0292002 - STATUS_PCP_INVALID_PARAMETER NTStatus = 0xC0292003 - STATUS_PCP_FLAG_NOT_SUPPORTED NTStatus = 0xC0292004 - STATUS_PCP_NOT_SUPPORTED NTStatus = 0xC0292005 - STATUS_PCP_BUFFER_TOO_SMALL NTStatus = 0xC0292006 - STATUS_PCP_INTERNAL_ERROR NTStatus = 0xC0292007 - STATUS_PCP_AUTHENTICATION_FAILED NTStatus = 0xC0292008 - STATUS_PCP_AUTHENTICATION_IGNORED NTStatus = 0xC0292009 - STATUS_PCP_POLICY_NOT_FOUND NTStatus = 0xC029200A - STATUS_PCP_PROFILE_NOT_FOUND NTStatus = 0xC029200B - STATUS_PCP_VALIDATION_FAILED NTStatus = 0xC029200C - STATUS_PCP_DEVICE_NOT_FOUND NTStatus = 0xC029200D - STATUS_PCP_WRONG_PARENT NTStatus = 0xC029200E - STATUS_PCP_KEY_NOT_LOADED NTStatus = 0xC029200F - STATUS_PCP_NO_KEY_CERTIFICATION NTStatus = 0xC0292010 - STATUS_PCP_KEY_NOT_FINALIZED NTStatus = 0xC0292011 - STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET NTStatus = 0xC0292012 - STATUS_PCP_NOT_PCR_BOUND NTStatus = 0xC0292013 - STATUS_PCP_KEY_ALREADY_FINALIZED NTStatus = 0xC0292014 - STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED NTStatus = 0xC0292015 - STATUS_PCP_KEY_USAGE_POLICY_INVALID NTStatus = 0xC0292016 - STATUS_PCP_SOFT_KEY_ERROR NTStatus = 0xC0292017 - STATUS_PCP_KEY_NOT_AUTHENTICATED NTStatus = 0xC0292018 - STATUS_PCP_KEY_NOT_AIK NTStatus = 0xC0292019 - STATUS_PCP_KEY_NOT_SIGNING_KEY NTStatus = 0xC029201A - STATUS_PCP_LOCKED_OUT NTStatus = 0xC029201B - STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED NTStatus = 0xC029201C - STATUS_PCP_TPM_VERSION_NOT_SUPPORTED NTStatus = 0xC029201D - STATUS_PCP_BUFFER_LENGTH_MISMATCH NTStatus = 0xC029201E - STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED NTStatus = 0xC029201F - STATUS_PCP_TICKET_MISSING NTStatus = 0xC0292020 - STATUS_PCP_RAW_POLICY_NOT_SUPPORTED NTStatus = 0xC0292021 - STATUS_PCP_KEY_HANDLE_INVALIDATED NTStatus = 0xC0292022 - STATUS_PCP_UNSUPPORTED_PSS_SALT NTStatus = 0x40292023 - STATUS_RTPM_CONTEXT_CONTINUE NTStatus = 0x00293000 - STATUS_RTPM_CONTEXT_COMPLETE NTStatus = 0x00293001 - STATUS_RTPM_NO_RESULT NTStatus = 0xC0293002 - STATUS_RTPM_PCR_READ_INCOMPLETE NTStatus = 0xC0293003 - STATUS_RTPM_INVALID_CONTEXT NTStatus = 0xC0293004 - STATUS_RTPM_UNSUPPORTED_CMD NTStatus = 0xC0293005 - STATUS_TPM_ZERO_EXHAUST_ENABLED NTStatus = 0xC0294000 - STATUS_HV_INVALID_HYPERCALL_CODE NTStatus = 0xC0350002 - STATUS_HV_INVALID_HYPERCALL_INPUT NTStatus = 0xC0350003 - STATUS_HV_INVALID_ALIGNMENT NTStatus = 0xC0350004 - STATUS_HV_INVALID_PARAMETER NTStatus = 0xC0350005 - STATUS_HV_ACCESS_DENIED NTStatus = 0xC0350006 - STATUS_HV_INVALID_PARTITION_STATE NTStatus = 0xC0350007 - STATUS_HV_OPERATION_DENIED NTStatus = 0xC0350008 - STATUS_HV_UNKNOWN_PROPERTY NTStatus = 0xC0350009 - STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE NTStatus = 0xC035000A - STATUS_HV_INSUFFICIENT_MEMORY NTStatus = 0xC035000B - STATUS_HV_PARTITION_TOO_DEEP NTStatus = 0xC035000C - STATUS_HV_INVALID_PARTITION_ID NTStatus = 0xC035000D - STATUS_HV_INVALID_VP_INDEX NTStatus = 0xC035000E - STATUS_HV_INVALID_PORT_ID NTStatus = 0xC0350011 - STATUS_HV_INVALID_CONNECTION_ID NTStatus = 0xC0350012 - STATUS_HV_INSUFFICIENT_BUFFERS NTStatus = 0xC0350013 - STATUS_HV_NOT_ACKNOWLEDGED NTStatus = 0xC0350014 - STATUS_HV_INVALID_VP_STATE NTStatus = 0xC0350015 - STATUS_HV_ACKNOWLEDGED NTStatus = 0xC0350016 - STATUS_HV_INVALID_SAVE_RESTORE_STATE NTStatus = 0xC0350017 - STATUS_HV_INVALID_SYNIC_STATE NTStatus = 0xC0350018 - STATUS_HV_OBJECT_IN_USE NTStatus = 0xC0350019 - STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO NTStatus = 0xC035001A - STATUS_HV_NO_DATA NTStatus = 0xC035001B - STATUS_HV_INACTIVE NTStatus = 0xC035001C - STATUS_HV_NO_RESOURCES NTStatus = 0xC035001D - STATUS_HV_FEATURE_UNAVAILABLE NTStatus = 0xC035001E - STATUS_HV_INSUFFICIENT_BUFFER NTStatus = 0xC0350033 - STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS NTStatus = 0xC0350038 - STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003C - STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003D - STATUS_HV_PROCESSOR_STARTUP_TIMEOUT NTStatus = 0xC035003E - STATUS_HV_SMX_ENABLED NTStatus = 0xC035003F - STATUS_HV_INVALID_LP_INDEX NTStatus = 0xC0350041 - STATUS_HV_INVALID_REGISTER_VALUE NTStatus = 0xC0350050 - STATUS_HV_INVALID_VTL_STATE NTStatus = 0xC0350051 - STATUS_HV_NX_NOT_DETECTED NTStatus = 0xC0350055 - STATUS_HV_INVALID_DEVICE_ID NTStatus = 0xC0350057 - STATUS_HV_INVALID_DEVICE_STATE NTStatus = 0xC0350058 - STATUS_HV_PENDING_PAGE_REQUESTS NTStatus = 0x00350059 - STATUS_HV_PAGE_REQUEST_INVALID NTStatus = 0xC0350060 - STATUS_HV_INVALID_CPU_GROUP_ID NTStatus = 0xC035006F - STATUS_HV_INVALID_CPU_GROUP_STATE NTStatus = 0xC0350070 - STATUS_HV_OPERATION_FAILED NTStatus = 0xC0350071 - STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE NTStatus = 0xC0350072 - STATUS_HV_INSUFFICIENT_ROOT_MEMORY NTStatus = 0xC0350073 - STATUS_HV_NOT_PRESENT NTStatus = 0xC0351000 - STATUS_VID_DUPLICATE_HANDLER NTStatus = 0xC0370001 - STATUS_VID_TOO_MANY_HANDLERS NTStatus = 0xC0370002 - STATUS_VID_QUEUE_FULL NTStatus = 0xC0370003 - STATUS_VID_HANDLER_NOT_PRESENT NTStatus = 0xC0370004 - STATUS_VID_INVALID_OBJECT_NAME NTStatus = 0xC0370005 - STATUS_VID_PARTITION_NAME_TOO_LONG NTStatus = 0xC0370006 - STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG NTStatus = 0xC0370007 - STATUS_VID_PARTITION_ALREADY_EXISTS NTStatus = 0xC0370008 - STATUS_VID_PARTITION_DOES_NOT_EXIST NTStatus = 0xC0370009 - STATUS_VID_PARTITION_NAME_NOT_FOUND NTStatus = 0xC037000A - STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS NTStatus = 0xC037000B - STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT NTStatus = 0xC037000C - STATUS_VID_MB_STILL_REFERENCED NTStatus = 0xC037000D - STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED NTStatus = 0xC037000E - STATUS_VID_INVALID_NUMA_SETTINGS NTStatus = 0xC037000F - STATUS_VID_INVALID_NUMA_NODE_INDEX NTStatus = 0xC0370010 - STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED NTStatus = 0xC0370011 - STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE NTStatus = 0xC0370012 - STATUS_VID_PAGE_RANGE_OVERFLOW NTStatus = 0xC0370013 - STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE NTStatus = 0xC0370014 - STATUS_VID_INVALID_GPA_RANGE_HANDLE NTStatus = 0xC0370015 - STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE NTStatus = 0xC0370016 - STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED NTStatus = 0xC0370017 - STATUS_VID_INVALID_PPM_HANDLE NTStatus = 0xC0370018 - STATUS_VID_MBPS_ARE_LOCKED NTStatus = 0xC0370019 - STATUS_VID_MESSAGE_QUEUE_CLOSED NTStatus = 0xC037001A - STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED NTStatus = 0xC037001B - STATUS_VID_STOP_PENDING NTStatus = 0xC037001C - STATUS_VID_INVALID_PROCESSOR_STATE NTStatus = 0xC037001D - STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT NTStatus = 0xC037001E - STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED NTStatus = 0xC037001F - STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET NTStatus = 0xC0370020 - STATUS_VID_MMIO_RANGE_DESTROYED NTStatus = 0xC0370021 - STATUS_VID_INVALID_CHILD_GPA_PAGE_SET NTStatus = 0xC0370022 - STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED NTStatus = 0xC0370023 - STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL NTStatus = 0xC0370024 - STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE NTStatus = 0xC0370025 - STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT NTStatus = 0xC0370026 - STATUS_VID_SAVED_STATE_CORRUPT NTStatus = 0xC0370027 - STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM NTStatus = 0xC0370028 - STATUS_VID_SAVED_STATE_INCOMPATIBLE NTStatus = 0xC0370029 - STATUS_VID_VTL_ACCESS_DENIED NTStatus = 0xC037002A - STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED NTStatus = 0x80370001 - STATUS_IPSEC_BAD_SPI NTStatus = 0xC0360001 - STATUS_IPSEC_SA_LIFETIME_EXPIRED NTStatus = 0xC0360002 - STATUS_IPSEC_WRONG_SA NTStatus = 0xC0360003 - STATUS_IPSEC_REPLAY_CHECK_FAILED NTStatus = 0xC0360004 - STATUS_IPSEC_INVALID_PACKET NTStatus = 0xC0360005 - STATUS_IPSEC_INTEGRITY_CHECK_FAILED NTStatus = 0xC0360006 - STATUS_IPSEC_CLEAR_TEXT_DROP NTStatus = 0xC0360007 - STATUS_IPSEC_AUTH_FIREWALL_DROP NTStatus = 0xC0360008 - STATUS_IPSEC_THROTTLE_DROP NTStatus = 0xC0360009 - STATUS_IPSEC_DOSP_BLOCK NTStatus = 0xC0368000 - STATUS_IPSEC_DOSP_RECEIVED_MULTICAST NTStatus = 0xC0368001 - STATUS_IPSEC_DOSP_INVALID_PACKET NTStatus = 0xC0368002 - STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED NTStatus = 0xC0368003 - STATUS_IPSEC_DOSP_MAX_ENTRIES NTStatus = 0xC0368004 - STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED NTStatus = 0xC0368005 - STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES NTStatus = 0xC0368006 - STATUS_VOLMGR_INCOMPLETE_REGENERATION NTStatus = 0x80380001 - STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION NTStatus = 0x80380002 - STATUS_VOLMGR_DATABASE_FULL NTStatus = 0xC0380001 - STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED NTStatus = 0xC0380002 - STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC NTStatus = 0xC0380003 - STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED NTStatus = 0xC0380004 - STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME NTStatus = 0xC0380005 - STATUS_VOLMGR_DISK_DUPLICATE NTStatus = 0xC0380006 - STATUS_VOLMGR_DISK_DYNAMIC NTStatus = 0xC0380007 - STATUS_VOLMGR_DISK_ID_INVALID NTStatus = 0xC0380008 - STATUS_VOLMGR_DISK_INVALID NTStatus = 0xC0380009 - STATUS_VOLMGR_DISK_LAST_VOTER NTStatus = 0xC038000A - STATUS_VOLMGR_DISK_LAYOUT_INVALID NTStatus = 0xC038000B - STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS NTStatus = 0xC038000C - STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED NTStatus = 0xC038000D - STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL NTStatus = 0xC038000E - STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS NTStatus = 0xC038000F - STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS NTStatus = 0xC0380010 - STATUS_VOLMGR_DISK_MISSING NTStatus = 0xC0380011 - STATUS_VOLMGR_DISK_NOT_EMPTY NTStatus = 0xC0380012 - STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE NTStatus = 0xC0380013 - STATUS_VOLMGR_DISK_REVECTORING_FAILED NTStatus = 0xC0380014 - STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID NTStatus = 0xC0380015 - STATUS_VOLMGR_DISK_SET_NOT_CONTAINED NTStatus = 0xC0380016 - STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS NTStatus = 0xC0380017 - STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES NTStatus = 0xC0380018 - STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED NTStatus = 0xC0380019 - STATUS_VOLMGR_EXTENT_ALREADY_USED NTStatus = 0xC038001A - STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS NTStatus = 0xC038001B - STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION NTStatus = 0xC038001C - STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED NTStatus = 0xC038001D - STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION NTStatus = 0xC038001E - STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH NTStatus = 0xC038001F - STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED NTStatus = 0xC0380020 - STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0380021 - STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS NTStatus = 0xC0380022 - STATUS_VOLMGR_MEMBER_IN_SYNC NTStatus = 0xC0380023 - STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE NTStatus = 0xC0380024 - STATUS_VOLMGR_MEMBER_INDEX_INVALID NTStatus = 0xC0380025 - STATUS_VOLMGR_MEMBER_MISSING NTStatus = 0xC0380026 - STATUS_VOLMGR_MEMBER_NOT_DETACHED NTStatus = 0xC0380027 - STATUS_VOLMGR_MEMBER_REGENERATING NTStatus = 0xC0380028 - STATUS_VOLMGR_ALL_DISKS_FAILED NTStatus = 0xC0380029 - STATUS_VOLMGR_NO_REGISTERED_USERS NTStatus = 0xC038002A - STATUS_VOLMGR_NO_SUCH_USER NTStatus = 0xC038002B - STATUS_VOLMGR_NOTIFICATION_RESET NTStatus = 0xC038002C - STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID NTStatus = 0xC038002D - STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID NTStatus = 0xC038002E - STATUS_VOLMGR_PACK_DUPLICATE NTStatus = 0xC038002F - STATUS_VOLMGR_PACK_ID_INVALID NTStatus = 0xC0380030 - STATUS_VOLMGR_PACK_INVALID NTStatus = 0xC0380031 - STATUS_VOLMGR_PACK_NAME_INVALID NTStatus = 0xC0380032 - STATUS_VOLMGR_PACK_OFFLINE NTStatus = 0xC0380033 - STATUS_VOLMGR_PACK_HAS_QUORUM NTStatus = 0xC0380034 - STATUS_VOLMGR_PACK_WITHOUT_QUORUM NTStatus = 0xC0380035 - STATUS_VOLMGR_PARTITION_STYLE_INVALID NTStatus = 0xC0380036 - STATUS_VOLMGR_PARTITION_UPDATE_FAILED NTStatus = 0xC0380037 - STATUS_VOLMGR_PLEX_IN_SYNC NTStatus = 0xC0380038 - STATUS_VOLMGR_PLEX_INDEX_DUPLICATE NTStatus = 0xC0380039 - STATUS_VOLMGR_PLEX_INDEX_INVALID NTStatus = 0xC038003A - STATUS_VOLMGR_PLEX_LAST_ACTIVE NTStatus = 0xC038003B - STATUS_VOLMGR_PLEX_MISSING NTStatus = 0xC038003C - STATUS_VOLMGR_PLEX_REGENERATING NTStatus = 0xC038003D - STATUS_VOLMGR_PLEX_TYPE_INVALID NTStatus = 0xC038003E - STATUS_VOLMGR_PLEX_NOT_RAID5 NTStatus = 0xC038003F - STATUS_VOLMGR_PLEX_NOT_SIMPLE NTStatus = 0xC0380040 - STATUS_VOLMGR_STRUCTURE_SIZE_INVALID NTStatus = 0xC0380041 - STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS NTStatus = 0xC0380042 - STATUS_VOLMGR_TRANSACTION_IN_PROGRESS NTStatus = 0xC0380043 - STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE NTStatus = 0xC0380044 - STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK NTStatus = 0xC0380045 - STATUS_VOLMGR_VOLUME_ID_INVALID NTStatus = 0xC0380046 - STATUS_VOLMGR_VOLUME_LENGTH_INVALID NTStatus = 0xC0380047 - STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE NTStatus = 0xC0380048 - STATUS_VOLMGR_VOLUME_NOT_MIRRORED NTStatus = 0xC0380049 - STATUS_VOLMGR_VOLUME_NOT_RETAINED NTStatus = 0xC038004A - STATUS_VOLMGR_VOLUME_OFFLINE NTStatus = 0xC038004B - STATUS_VOLMGR_VOLUME_RETAINED NTStatus = 0xC038004C - STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID NTStatus = 0xC038004D - STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE NTStatus = 0xC038004E - STATUS_VOLMGR_BAD_BOOT_DISK NTStatus = 0xC038004F - STATUS_VOLMGR_PACK_CONFIG_OFFLINE NTStatus = 0xC0380050 - STATUS_VOLMGR_PACK_CONFIG_ONLINE NTStatus = 0xC0380051 - STATUS_VOLMGR_NOT_PRIMARY_PACK NTStatus = 0xC0380052 - STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED NTStatus = 0xC0380053 - STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID NTStatus = 0xC0380054 - STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID NTStatus = 0xC0380055 - STATUS_VOLMGR_VOLUME_MIRRORED NTStatus = 0xC0380056 - STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED NTStatus = 0xC0380057 - STATUS_VOLMGR_NO_VALID_LOG_COPIES NTStatus = 0xC0380058 - STATUS_VOLMGR_PRIMARY_PACK_PRESENT NTStatus = 0xC0380059 - STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID NTStatus = 0xC038005A - STATUS_VOLMGR_MIRROR_NOT_SUPPORTED NTStatus = 0xC038005B - STATUS_VOLMGR_RAID5_NOT_SUPPORTED NTStatus = 0xC038005C - STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED NTStatus = 0x80390001 - STATUS_BCD_TOO_MANY_ELEMENTS NTStatus = 0xC0390002 - STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED NTStatus = 0x80390003 - STATUS_VHD_DRIVE_FOOTER_MISSING NTStatus = 0xC03A0001 - STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH NTStatus = 0xC03A0002 - STATUS_VHD_DRIVE_FOOTER_CORRUPT NTStatus = 0xC03A0003 - STATUS_VHD_FORMAT_UNKNOWN NTStatus = 0xC03A0004 - STATUS_VHD_FORMAT_UNSUPPORTED_VERSION NTStatus = 0xC03A0005 - STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH NTStatus = 0xC03A0006 - STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION NTStatus = 0xC03A0007 - STATUS_VHD_SPARSE_HEADER_CORRUPT NTStatus = 0xC03A0008 - STATUS_VHD_BLOCK_ALLOCATION_FAILURE NTStatus = 0xC03A0009 - STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT NTStatus = 0xC03A000A - STATUS_VHD_INVALID_BLOCK_SIZE NTStatus = 0xC03A000B - STATUS_VHD_BITMAP_MISMATCH NTStatus = 0xC03A000C - STATUS_VHD_PARENT_VHD_NOT_FOUND NTStatus = 0xC03A000D - STATUS_VHD_CHILD_PARENT_ID_MISMATCH NTStatus = 0xC03A000E - STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH NTStatus = 0xC03A000F - STATUS_VHD_METADATA_READ_FAILURE NTStatus = 0xC03A0010 - STATUS_VHD_METADATA_WRITE_FAILURE NTStatus = 0xC03A0011 - STATUS_VHD_INVALID_SIZE NTStatus = 0xC03A0012 - STATUS_VHD_INVALID_FILE_SIZE NTStatus = 0xC03A0013 - STATUS_VIRTDISK_PROVIDER_NOT_FOUND NTStatus = 0xC03A0014 - STATUS_VIRTDISK_NOT_VIRTUAL_DISK NTStatus = 0xC03A0015 - STATUS_VHD_PARENT_VHD_ACCESS_DENIED NTStatus = 0xC03A0016 - STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH NTStatus = 0xC03A0017 - STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED NTStatus = 0xC03A0018 - STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT NTStatus = 0xC03A0019 - STATUS_VIRTUAL_DISK_LIMITATION NTStatus = 0xC03A001A - STATUS_VHD_INVALID_TYPE NTStatus = 0xC03A001B - STATUS_VHD_INVALID_STATE NTStatus = 0xC03A001C - STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE NTStatus = 0xC03A001D - STATUS_VIRTDISK_DISK_ALREADY_OWNED NTStatus = 0xC03A001E - STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE NTStatus = 0xC03A001F - STATUS_CTLOG_TRACKING_NOT_INITIALIZED NTStatus = 0xC03A0020 - STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE NTStatus = 0xC03A0021 - STATUS_CTLOG_VHD_CHANGED_OFFLINE NTStatus = 0xC03A0022 - STATUS_CTLOG_INVALID_TRACKING_STATE NTStatus = 0xC03A0023 - STATUS_CTLOG_INCONSISTENT_TRACKING_FILE NTStatus = 0xC03A0024 - STATUS_VHD_METADATA_FULL NTStatus = 0xC03A0028 - STATUS_VHD_INVALID_CHANGE_TRACKING_ID NTStatus = 0xC03A0029 - STATUS_VHD_CHANGE_TRACKING_DISABLED NTStatus = 0xC03A002A - STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION NTStatus = 0xC03A0030 - STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA NTStatus = 0xC03A0031 - STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0032 - STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0033 - STATUS_QUERY_STORAGE_ERROR NTStatus = 0x803A0001 - STATUS_GDI_HANDLE_LEAK NTStatus = 0x803F0001 - STATUS_RKF_KEY_NOT_FOUND NTStatus = 0xC0400001 - STATUS_RKF_DUPLICATE_KEY NTStatus = 0xC0400002 - STATUS_RKF_BLOB_FULL NTStatus = 0xC0400003 - STATUS_RKF_STORE_FULL NTStatus = 0xC0400004 - STATUS_RKF_FILE_BLOCKED NTStatus = 0xC0400005 - STATUS_RKF_ACTIVE_KEY NTStatus = 0xC0400006 - STATUS_RDBSS_RESTART_OPERATION NTStatus = 0xC0410001 - STATUS_RDBSS_CONTINUE_OPERATION NTStatus = 0xC0410002 - STATUS_RDBSS_POST_OPERATION NTStatus = 0xC0410003 - STATUS_RDBSS_RETRY_LOOKUP NTStatus = 0xC0410004 - STATUS_BTH_ATT_INVALID_HANDLE NTStatus = 0xC0420001 - STATUS_BTH_ATT_READ_NOT_PERMITTED NTStatus = 0xC0420002 - STATUS_BTH_ATT_WRITE_NOT_PERMITTED NTStatus = 0xC0420003 - STATUS_BTH_ATT_INVALID_PDU NTStatus = 0xC0420004 - STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION NTStatus = 0xC0420005 - STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED NTStatus = 0xC0420006 - STATUS_BTH_ATT_INVALID_OFFSET NTStatus = 0xC0420007 - STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION NTStatus = 0xC0420008 - STATUS_BTH_ATT_PREPARE_QUEUE_FULL NTStatus = 0xC0420009 - STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND NTStatus = 0xC042000A - STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG NTStatus = 0xC042000B - STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE NTStatus = 0xC042000C - STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH NTStatus = 0xC042000D - STATUS_BTH_ATT_UNLIKELY NTStatus = 0xC042000E - STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION NTStatus = 0xC042000F - STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE NTStatus = 0xC0420010 - STATUS_BTH_ATT_INSUFFICIENT_RESOURCES NTStatus = 0xC0420011 - STATUS_BTH_ATT_UNKNOWN_ERROR NTStatus = 0xC0421000 - STATUS_SECUREBOOT_ROLLBACK_DETECTED NTStatus = 0xC0430001 - STATUS_SECUREBOOT_POLICY_VIOLATION NTStatus = 0xC0430002 - STATUS_SECUREBOOT_INVALID_POLICY NTStatus = 0xC0430003 - STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND NTStatus = 0xC0430004 - STATUS_SECUREBOOT_POLICY_NOT_SIGNED NTStatus = 0xC0430005 - STATUS_SECUREBOOT_NOT_ENABLED NTStatus = 0x80430006 - STATUS_SECUREBOOT_FILE_REPLACED NTStatus = 0xC0430007 - STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED NTStatus = 0xC0430008 - STATUS_SECUREBOOT_POLICY_UNKNOWN NTStatus = 0xC0430009 - STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION NTStatus = 0xC043000A - STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH NTStatus = 0xC043000B - STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED NTStatus = 0xC043000C - STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH NTStatus = 0xC043000D - STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING NTStatus = 0xC043000E - STATUS_SECUREBOOT_NOT_BASE_POLICY NTStatus = 0xC043000F - STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY NTStatus = 0xC0430010 - STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED NTStatus = 0xC0EB0001 - STATUS_PLATFORM_MANIFEST_INVALID NTStatus = 0xC0EB0002 - STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED NTStatus = 0xC0EB0003 - STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED NTStatus = 0xC0EB0004 - STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND NTStatus = 0xC0EB0005 - STATUS_PLATFORM_MANIFEST_NOT_ACTIVE NTStatus = 0xC0EB0006 - STATUS_PLATFORM_MANIFEST_NOT_SIGNED NTStatus = 0xC0EB0007 - STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED NTStatus = 0xC0E90001 - STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION NTStatus = 0xC0E90002 - STATUS_SYSTEM_INTEGRITY_INVALID_POLICY NTStatus = 0xC0E90003 - STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED NTStatus = 0xC0E90004 - STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES NTStatus = 0xC0E90005 - STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED NTStatus = 0xC0E90006 - STATUS_NO_APPLICABLE_APP_LICENSES_FOUND NTStatus = 0xC0EA0001 - STATUS_CLIP_LICENSE_NOT_FOUND NTStatus = 0xC0EA0002 - STATUS_CLIP_DEVICE_LICENSE_MISSING NTStatus = 0xC0EA0003 - STATUS_CLIP_LICENSE_INVALID_SIGNATURE NTStatus = 0xC0EA0004 - STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID NTStatus = 0xC0EA0005 - STATUS_CLIP_LICENSE_EXPIRED NTStatus = 0xC0EA0006 - STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE NTStatus = 0xC0EA0007 - STATUS_CLIP_LICENSE_NOT_SIGNED NTStatus = 0xC0EA0008 - STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE NTStatus = 0xC0EA0009 - STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH NTStatus = 0xC0EA000A - STATUS_AUDIO_ENGINE_NODE_NOT_FOUND NTStatus = 0xC0440001 - STATUS_HDAUDIO_EMPTY_CONNECTION_LIST NTStatus = 0xC0440002 - STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED NTStatus = 0xC0440003 - STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED NTStatus = 0xC0440004 - STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY NTStatus = 0xC0440005 - STATUS_SPACES_REPAIRED NTStatus = 0x00E70000 - STATUS_SPACES_PAUSE NTStatus = 0x00E70001 - STATUS_SPACES_COMPLETE NTStatus = 0x00E70002 - STATUS_SPACES_REDIRECT NTStatus = 0x00E70003 - STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID NTStatus = 0xC0E70001 - STATUS_SPACES_RESILIENCY_TYPE_INVALID NTStatus = 0xC0E70003 - STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID NTStatus = 0xC0E70004 - STATUS_SPACES_DRIVE_REDUNDANCY_INVALID NTStatus = 0xC0E70006 - STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID NTStatus = 0xC0E70007 - STATUS_SPACES_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0E70009 - STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID NTStatus = 0xC0E7000A - STATUS_SPACES_NOT_ENOUGH_DRIVES NTStatus = 0xC0E7000B - STATUS_SPACES_EXTENDED_ERROR NTStatus = 0xC0E7000C - STATUS_SPACES_PROVISIONING_TYPE_INVALID NTStatus = 0xC0E7000D - STATUS_SPACES_ALLOCATION_SIZE_INVALID NTStatus = 0xC0E7000E - STATUS_SPACES_ENCLOSURE_AWARE_INVALID NTStatus = 0xC0E7000F - STATUS_SPACES_WRITE_CACHE_SIZE_INVALID NTStatus = 0xC0E70010 - STATUS_SPACES_NUMBER_OF_GROUPS_INVALID NTStatus = 0xC0E70011 - STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID NTStatus = 0xC0E70012 - STATUS_SPACES_UPDATE_COLUMN_STATE NTStatus = 0xC0E70013 - STATUS_SPACES_MAP_REQUIRED NTStatus = 0xC0E70014 - STATUS_SPACES_UNSUPPORTED_VERSION NTStatus = 0xC0E70015 - STATUS_SPACES_CORRUPT_METADATA NTStatus = 0xC0E70016 - STATUS_SPACES_DRT_FULL NTStatus = 0xC0E70017 - STATUS_SPACES_INCONSISTENCY NTStatus = 0xC0E70018 - STATUS_SPACES_LOG_NOT_READY NTStatus = 0xC0E70019 - STATUS_SPACES_NO_REDUNDANCY NTStatus = 0xC0E7001A - STATUS_SPACES_DRIVE_NOT_READY NTStatus = 0xC0E7001B - STATUS_SPACES_DRIVE_SPLIT NTStatus = 0xC0E7001C - STATUS_SPACES_DRIVE_LOST_DATA NTStatus = 0xC0E7001D - STATUS_SPACES_ENTRY_INCOMPLETE NTStatus = 0xC0E7001E - STATUS_SPACES_ENTRY_INVALID NTStatus = 0xC0E7001F - STATUS_SPACES_MARK_DIRTY NTStatus = 0xC0E70020 - STATUS_VOLSNAP_BOOTFILE_NOT_VALID NTStatus = 0xC0500003 - STATUS_VOLSNAP_ACTIVATION_TIMEOUT NTStatus = 0xC0500004 - STATUS_IO_PREEMPTED NTStatus = 0xC0510001 - STATUS_SVHDX_ERROR_STORED NTStatus = 0xC05C0000 - STATUS_SVHDX_ERROR_NOT_AVAILABLE NTStatus = 0xC05CFF00 - STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE NTStatus = 0xC05CFF01 - STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED NTStatus = 0xC05CFF02 - STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED NTStatus = 0xC05CFF03 - STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED NTStatus = 0xC05CFF04 - STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED NTStatus = 0xC05CFF05 - STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED NTStatus = 0xC05CFF06 - STATUS_SVHDX_RESERVATION_CONFLICT NTStatus = 0xC05CFF07 - STATUS_SVHDX_WRONG_FILE_TYPE NTStatus = 0xC05CFF08 - STATUS_SVHDX_VERSION_MISMATCH NTStatus = 0xC05CFF09 - STATUS_VHD_SHARED NTStatus = 0xC05CFF0A - STATUS_SVHDX_NO_INITIATOR NTStatus = 0xC05CFF0B - STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND NTStatus = 0xC05CFF0C - STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP NTStatus = 0xC05D0000 - STATUS_SMB_BAD_CLUSTER_DIALECT NTStatus = 0xC05D0001 - STATUS_SMB_GUEST_LOGON_BLOCKED NTStatus = 0xC05D0002 - STATUS_SECCORE_INVALID_COMMAND NTStatus = 0xC0E80000 - STATUS_VSM_NOT_INITIALIZED NTStatus = 0xC0450000 - STATUS_VSM_DMA_PROTECTION_NOT_IN_USE NTStatus = 0xC0450001 - STATUS_APPEXEC_CONDITION_NOT_SATISFIED NTStatus = 0xC0EC0000 - STATUS_APPEXEC_HANDLE_INVALIDATED NTStatus = 0xC0EC0001 - STATUS_APPEXEC_INVALID_HOST_GENERATION NTStatus = 0xC0EC0002 - STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION NTStatus = 0xC0EC0003 - STATUS_APPEXEC_INVALID_HOST_STATE NTStatus = 0xC0EC0004 - STATUS_APPEXEC_NO_DONOR NTStatus = 0xC0EC0005 - STATUS_APPEXEC_HOST_ID_MISMATCH NTStatus = 0xC0EC0006 - STATUS_APPEXEC_UNKNOWN_USER NTStatus = 0xC0EC0007 -) diff --git a/backend/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go b/backend/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go deleted file mode 100644 index 6048ac67..00000000 --- a/backend/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go +++ /dev/null @@ -1,149 +0,0 @@ -// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT. - -package windows - -type KNOWNFOLDERID GUID - -var ( - FOLDERID_NetworkFolder = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}} - FOLDERID_ComputerFolder = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}} - FOLDERID_InternetFolder = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}} - FOLDERID_ControlPanelFolder = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}} - FOLDERID_PrintersFolder = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}} - FOLDERID_SyncManagerFolder = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}} - FOLDERID_SyncSetupFolder = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}} - FOLDERID_ConflictFolder = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}} - FOLDERID_SyncResultsFolder = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}} - FOLDERID_RecycleBinFolder = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}} - FOLDERID_ConnectionsFolder = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}} - FOLDERID_Fonts = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}} - FOLDERID_Desktop = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}} - FOLDERID_Startup = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}} - FOLDERID_Programs = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}} - FOLDERID_StartMenu = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}} - FOLDERID_Recent = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}} - FOLDERID_SendTo = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}} - FOLDERID_Documents = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}} - FOLDERID_Favorites = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}} - FOLDERID_NetHood = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}} - FOLDERID_PrintHood = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}} - FOLDERID_Templates = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}} - FOLDERID_CommonStartup = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}} - FOLDERID_CommonPrograms = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}} - FOLDERID_CommonStartMenu = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}} - FOLDERID_PublicDesktop = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}} - FOLDERID_ProgramData = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}} - FOLDERID_CommonTemplates = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}} - FOLDERID_PublicDocuments = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}} - FOLDERID_RoamingAppData = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}} - FOLDERID_LocalAppData = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}} - FOLDERID_LocalAppDataLow = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}} - FOLDERID_InternetCache = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}} - FOLDERID_Cookies = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}} - FOLDERID_History = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}} - FOLDERID_System = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}} - FOLDERID_SystemX86 = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}} - FOLDERID_Windows = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}} - FOLDERID_Profile = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}} - FOLDERID_Pictures = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}} - FOLDERID_ProgramFilesX86 = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}} - FOLDERID_ProgramFilesCommonX86 = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}} - FOLDERID_ProgramFilesX64 = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}} - FOLDERID_ProgramFilesCommonX64 = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}} - FOLDERID_ProgramFiles = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}} - FOLDERID_ProgramFilesCommon = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}} - FOLDERID_UserProgramFiles = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}} - FOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}} - FOLDERID_AdminTools = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}} - FOLDERID_CommonAdminTools = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}} - FOLDERID_Music = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}} - FOLDERID_Videos = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}} - FOLDERID_Ringtones = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}} - FOLDERID_PublicPictures = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}} - FOLDERID_PublicMusic = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}} - FOLDERID_PublicVideos = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}} - FOLDERID_PublicRingtones = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}} - FOLDERID_ResourceDir = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}} - FOLDERID_LocalizedResourcesDir = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}} - FOLDERID_CommonOEMLinks = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}} - FOLDERID_CDBurning = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}} - FOLDERID_UserProfiles = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}} - FOLDERID_Playlists = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}} - FOLDERID_SamplePlaylists = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}} - FOLDERID_SampleMusic = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}} - FOLDERID_SamplePictures = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}} - FOLDERID_SampleVideos = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}} - FOLDERID_PhotoAlbums = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}} - FOLDERID_Public = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}} - FOLDERID_ChangeRemovePrograms = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}} - FOLDERID_AppUpdates = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}} - FOLDERID_AddNewPrograms = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}} - FOLDERID_Downloads = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}} - FOLDERID_PublicDownloads = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}} - FOLDERID_SavedSearches = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}} - FOLDERID_QuickLaunch = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}} - FOLDERID_Contacts = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}} - FOLDERID_SidebarParts = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}} - FOLDERID_SidebarDefaultParts = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}} - FOLDERID_PublicGameTasks = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}} - FOLDERID_GameTasks = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}} - FOLDERID_SavedGames = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}} - FOLDERID_Games = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}} - FOLDERID_SEARCH_MAPI = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}} - FOLDERID_SEARCH_CSC = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}} - FOLDERID_Links = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}} - FOLDERID_UsersFiles = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}} - FOLDERID_UsersLibraries = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}} - FOLDERID_SearchHome = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}} - FOLDERID_OriginalImages = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}} - FOLDERID_DocumentsLibrary = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}} - FOLDERID_MusicLibrary = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}} - FOLDERID_PicturesLibrary = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}} - FOLDERID_VideosLibrary = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}} - FOLDERID_RecordedTVLibrary = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}} - FOLDERID_HomeGroup = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}} - FOLDERID_HomeGroupCurrentUser = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}} - FOLDERID_DeviceMetadataStore = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}} - FOLDERID_Libraries = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}} - FOLDERID_PublicLibraries = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}} - FOLDERID_UserPinned = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}} - FOLDERID_ImplicitAppShortcuts = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}} - FOLDERID_AccountPictures = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}} - FOLDERID_PublicUserTiles = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}} - FOLDERID_AppsFolder = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}} - FOLDERID_StartMenuAllPrograms = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}} - FOLDERID_CommonStartMenuPlaces = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}} - FOLDERID_ApplicationShortcuts = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}} - FOLDERID_RoamingTiles = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}} - FOLDERID_RoamedTileImages = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}} - FOLDERID_Screenshots = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}} - FOLDERID_CameraRoll = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}} - FOLDERID_SkyDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} - FOLDERID_OneDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} - FOLDERID_SkyDriveDocuments = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}} - FOLDERID_SkyDrivePictures = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}} - FOLDERID_SkyDriveMusic = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}} - FOLDERID_SkyDriveCameraRoll = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}} - FOLDERID_SearchHistory = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}} - FOLDERID_SearchTemplates = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}} - FOLDERID_CameraRollLibrary = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}} - FOLDERID_SavedPictures = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}} - FOLDERID_SavedPicturesLibrary = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}} - FOLDERID_RetailDemo = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}} - FOLDERID_Device = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}} - FOLDERID_DevelopmentFiles = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}} - FOLDERID_Objects3D = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}} - FOLDERID_AppCaptures = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}} - FOLDERID_LocalDocuments = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}} - FOLDERID_LocalPictures = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}} - FOLDERID_LocalVideos = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}} - FOLDERID_LocalMusic = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}} - FOLDERID_LocalDownloads = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}} - FOLDERID_RecordedCalls = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}} - FOLDERID_AllAppMods = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}} - FOLDERID_CurrentAppMods = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}} - FOLDERID_AppDataDesktop = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}} - FOLDERID_AppDataDocuments = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}} - FOLDERID_AppDataFavorites = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}} - FOLDERID_AppDataProgramData = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}} -) diff --git a/backend/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/backend/vendor/golang.org/x/sys/windows/zsyscall_windows.go deleted file mode 100644 index 566dd3e3..00000000 --- a/backend/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ /dev/null @@ -1,4341 +0,0 @@ -// Code generated by 'go generate'; DO NOT EDIT. - -package windows - -import ( - "syscall" - "unsafe" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll") - modadvapi32 = NewLazySystemDLL("advapi32.dll") - modcrypt32 = NewLazySystemDLL("crypt32.dll") - moddnsapi = NewLazySystemDLL("dnsapi.dll") - moddwmapi = NewLazySystemDLL("dwmapi.dll") - modiphlpapi = NewLazySystemDLL("iphlpapi.dll") - modkernel32 = NewLazySystemDLL("kernel32.dll") - modmswsock = NewLazySystemDLL("mswsock.dll") - modnetapi32 = NewLazySystemDLL("netapi32.dll") - modntdll = NewLazySystemDLL("ntdll.dll") - modole32 = NewLazySystemDLL("ole32.dll") - modpsapi = NewLazySystemDLL("psapi.dll") - modsechost = NewLazySystemDLL("sechost.dll") - modsecur32 = NewLazySystemDLL("secur32.dll") - modsetupapi = NewLazySystemDLL("setupapi.dll") - modshell32 = NewLazySystemDLL("shell32.dll") - moduser32 = NewLazySystemDLL("user32.dll") - moduserenv = NewLazySystemDLL("userenv.dll") - modversion = NewLazySystemDLL("version.dll") - modwintrust = NewLazySystemDLL("wintrust.dll") - modws2_32 = NewLazySystemDLL("ws2_32.dll") - modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") - - procCM_Get_DevNode_Status = modCfgMgr32.NewProc("CM_Get_DevNode_Status") - procCM_Get_Device_Interface_ListW = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW") - procCM_Get_Device_Interface_List_SizeW = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW") - procCM_MapCrToWin32Err = modCfgMgr32.NewProc("CM_MapCrToWin32Err") - procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") - procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") - procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") - procBuildSecurityDescriptorW = modadvapi32.NewProc("BuildSecurityDescriptorW") - procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") - procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") - procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") - procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") - procControlService = modadvapi32.NewProc("ControlService") - procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") - procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") - procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") - procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") - procCopySid = modadvapi32.NewProc("CopySid") - procCreateProcessAsUserW = modadvapi32.NewProc("CreateProcessAsUserW") - procCreateServiceW = modadvapi32.NewProc("CreateServiceW") - procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") - procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") - procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") - procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") - procDeleteService = modadvapi32.NewProc("DeleteService") - procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") - procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") - procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") - procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") - procEqualSid = modadvapi32.NewProc("EqualSid") - procFreeSid = modadvapi32.NewProc("FreeSid") - procGetLengthSid = modadvapi32.NewProc("GetLengthSid") - procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW") - procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl") - procGetSecurityDescriptorDacl = modadvapi32.NewProc("GetSecurityDescriptorDacl") - procGetSecurityDescriptorGroup = modadvapi32.NewProc("GetSecurityDescriptorGroup") - procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") - procGetSecurityDescriptorOwner = modadvapi32.NewProc("GetSecurityDescriptorOwner") - procGetSecurityDescriptorRMControl = modadvapi32.NewProc("GetSecurityDescriptorRMControl") - procGetSecurityDescriptorSacl = modadvapi32.NewProc("GetSecurityDescriptorSacl") - procGetSecurityInfo = modadvapi32.NewProc("GetSecurityInfo") - procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") - procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") - procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") - procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") - procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") - procInitializeSecurityDescriptor = modadvapi32.NewProc("InitializeSecurityDescriptor") - procInitiateSystemShutdownExW = modadvapi32.NewProc("InitiateSystemShutdownExW") - procIsTokenRestricted = modadvapi32.NewProc("IsTokenRestricted") - procIsValidSecurityDescriptor = modadvapi32.NewProc("IsValidSecurityDescriptor") - procIsValidSid = modadvapi32.NewProc("IsValidSid") - procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") - procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") - procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") - procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") - procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD") - procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD") - procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") - procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") - procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") - procOpenServiceW = modadvapi32.NewProc("OpenServiceW") - procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") - procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") - procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") - procQueryServiceDynamicInformation = modadvapi32.NewProc("QueryServiceDynamicInformation") - procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") - procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") - procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") - procRegCloseKey = modadvapi32.NewProc("RegCloseKey") - procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") - procRegNotifyChangeKeyValue = modadvapi32.NewProc("RegNotifyChangeKeyValue") - procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") - procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") - procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") - procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") - procRegisterServiceCtrlHandlerExW = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW") - procReportEventW = modadvapi32.NewProc("ReportEventW") - procRevertToSelf = modadvapi32.NewProc("RevertToSelf") - procSetEntriesInAclW = modadvapi32.NewProc("SetEntriesInAclW") - procSetKernelObjectSecurity = modadvapi32.NewProc("SetKernelObjectSecurity") - procSetNamedSecurityInfoW = modadvapi32.NewProc("SetNamedSecurityInfoW") - procSetSecurityDescriptorControl = modadvapi32.NewProc("SetSecurityDescriptorControl") - procSetSecurityDescriptorDacl = modadvapi32.NewProc("SetSecurityDescriptorDacl") - procSetSecurityDescriptorGroup = modadvapi32.NewProc("SetSecurityDescriptorGroup") - procSetSecurityDescriptorOwner = modadvapi32.NewProc("SetSecurityDescriptorOwner") - procSetSecurityDescriptorRMControl = modadvapi32.NewProc("SetSecurityDescriptorRMControl") - procSetSecurityDescriptorSacl = modadvapi32.NewProc("SetSecurityDescriptorSacl") - procSetSecurityInfo = modadvapi32.NewProc("SetSecurityInfo") - procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") - procSetThreadToken = modadvapi32.NewProc("SetThreadToken") - procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") - procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") - procStartServiceW = modadvapi32.NewProc("StartServiceW") - procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") - procCertCloseStore = modcrypt32.NewProc("CertCloseStore") - procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") - procCertDeleteCertificateFromStore = modcrypt32.NewProc("CertDeleteCertificateFromStore") - procCertDuplicateCertificateContext = modcrypt32.NewProc("CertDuplicateCertificateContext") - procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") - procCertFindCertificateInStore = modcrypt32.NewProc("CertFindCertificateInStore") - procCertFindChainInStore = modcrypt32.NewProc("CertFindChainInStore") - procCertFindExtension = modcrypt32.NewProc("CertFindExtension") - procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") - procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") - procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") - procCertGetNameStringW = modcrypt32.NewProc("CertGetNameStringW") - procCertOpenStore = modcrypt32.NewProc("CertOpenStore") - procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") - procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") - procCryptAcquireCertificatePrivateKey = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey") - procCryptDecodeObject = modcrypt32.NewProc("CryptDecodeObject") - procCryptProtectData = modcrypt32.NewProc("CryptProtectData") - procCryptQueryObject = modcrypt32.NewProc("CryptQueryObject") - procCryptUnprotectData = modcrypt32.NewProc("CryptUnprotectData") - procPFXImportCertStore = modcrypt32.NewProc("PFXImportCertStore") - procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") - procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") - procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") - procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") - procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") - procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") - procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procCloseHandle = modkernel32.NewProc("CloseHandle") - procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") - procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") - procCreateEventExW = modkernel32.NewProc("CreateEventExW") - procCreateEventW = modkernel32.NewProc("CreateEventW") - procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") - procCreateFileW = modkernel32.NewProc("CreateFileW") - procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") - procCreateMutexExW = modkernel32.NewProc("CreateMutexExW") - procCreateMutexW = modkernel32.NewProc("CreateMutexW") - procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") - procCreatePipe = modkernel32.NewProc("CreatePipe") - procCreateProcessW = modkernel32.NewProc("CreateProcessW") - procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") - procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") - procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") - procDeleteFileW = modkernel32.NewProc("DeleteFileW") - procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") - procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") - procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") - procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") - procExitProcess = modkernel32.NewProc("ExitProcess") - procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") - procFindClose = modkernel32.NewProc("FindClose") - procFindCloseChangeNotification = modkernel32.NewProc("FindCloseChangeNotification") - procFindFirstChangeNotificationW = modkernel32.NewProc("FindFirstChangeNotificationW") - procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") - procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") - procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") - procFindNextChangeNotification = modkernel32.NewProc("FindNextChangeNotification") - procFindNextFileW = modkernel32.NewProc("FindNextFileW") - procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") - procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") - procFindResourceW = modkernel32.NewProc("FindResourceW") - procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") - procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") - procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") - procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") - procFormatMessageW = modkernel32.NewProc("FormatMessageW") - procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") - procFreeLibrary = modkernel32.NewProc("FreeLibrary") - procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") - procGetACP = modkernel32.NewProc("GetACP") - procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") - procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") - procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") - procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") - procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") - procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") - procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") - procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") - procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") - procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") - procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") - procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") - procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") - procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") - procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") - procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") - procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") - procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") - procGetFileType = modkernel32.NewProc("GetFileType") - procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") - procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") - procGetLastError = modkernel32.NewProc("GetLastError") - procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") - procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") - procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") - procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") - procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") - procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") - procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") - procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") - procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") - procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") - procGetProcAddress = modkernel32.NewProc("GetProcAddress") - procGetProcessId = modkernel32.NewProc("GetProcessId") - procGetProcessPreferredUILanguages = modkernel32.NewProc("GetProcessPreferredUILanguages") - procGetProcessShutdownParameters = modkernel32.NewProc("GetProcessShutdownParameters") - procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") - procGetProcessWorkingSetSizeEx = modkernel32.NewProc("GetProcessWorkingSetSizeEx") - procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") - procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") - procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") - procGetStdHandle = modkernel32.NewProc("GetStdHandle") - procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") - procGetSystemPreferredUILanguages = modkernel32.NewProc("GetSystemPreferredUILanguages") - procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") - procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") - procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW") - procGetTempPathW = modkernel32.NewProc("GetTempPathW") - procGetThreadPreferredUILanguages = modkernel32.NewProc("GetThreadPreferredUILanguages") - procGetTickCount64 = modkernel32.NewProc("GetTickCount64") - procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") - procGetUserPreferredUILanguages = modkernel32.NewProc("GetUserPreferredUILanguages") - procGetVersion = modkernel32.NewProc("GetVersion") - procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") - procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") - procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") - procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") - procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") - procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW") - procInitializeProcThreadAttributeList = modkernel32.NewProc("InitializeProcThreadAttributeList") - procIsWow64Process = modkernel32.NewProc("IsWow64Process") - procIsWow64Process2 = modkernel32.NewProc("IsWow64Process2") - procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") - procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") - procLoadResource = modkernel32.NewProc("LoadResource") - procLocalAlloc = modkernel32.NewProc("LocalAlloc") - procLocalFree = modkernel32.NewProc("LocalFree") - procLockFileEx = modkernel32.NewProc("LockFileEx") - procLockResource = modkernel32.NewProc("LockResource") - procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") - procModule32FirstW = modkernel32.NewProc("Module32FirstW") - procModule32NextW = modkernel32.NewProc("Module32NextW") - procMoveFileExW = modkernel32.NewProc("MoveFileExW") - procMoveFileW = modkernel32.NewProc("MoveFileW") - procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") - procOpenEventW = modkernel32.NewProc("OpenEventW") - procOpenMutexW = modkernel32.NewProc("OpenMutexW") - procOpenProcess = modkernel32.NewProc("OpenProcess") - procOpenThread = modkernel32.NewProc("OpenThread") - procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") - procProcess32FirstW = modkernel32.NewProc("Process32FirstW") - procProcess32NextW = modkernel32.NewProc("Process32NextW") - procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") - procPulseEvent = modkernel32.NewProc("PulseEvent") - procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") - procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") - procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") - procReadConsoleW = modkernel32.NewProc("ReadConsoleW") - procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") - procReadFile = modkernel32.NewProc("ReadFile") - procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") - procReleaseMutex = modkernel32.NewProc("ReleaseMutex") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procResetEvent = modkernel32.NewProc("ResetEvent") - procResumeThread = modkernel32.NewProc("ResumeThread") - procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") - procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") - procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") - procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") - procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") - procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") - procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") - procSetFilePointer = modkernel32.NewProc("SetFilePointer") - procSetFileTime = modkernel32.NewProc("SetFileTime") - procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") - procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") - procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") - procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") - procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost") - procSetProcessShutdownParameters = modkernel32.NewProc("SetProcessShutdownParameters") - procSetProcessWorkingSetSizeEx = modkernel32.NewProc("SetProcessWorkingSetSizeEx") - procSetStdHandle = modkernel32.NewProc("SetStdHandle") - procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") - procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") - procSizeofResource = modkernel32.NewProc("SizeofResource") - procSleepEx = modkernel32.NewProc("SleepEx") - procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") - procTerminateProcess = modkernel32.NewProc("TerminateProcess") - procThread32First = modkernel32.NewProc("Thread32First") - procThread32Next = modkernel32.NewProc("Thread32Next") - procUnlockFileEx = modkernel32.NewProc("UnlockFileEx") - procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") - procUpdateProcThreadAttribute = modkernel32.NewProc("UpdateProcThreadAttribute") - procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") - procVirtualFree = modkernel32.NewProc("VirtualFree") - procVirtualLock = modkernel32.NewProc("VirtualLock") - procVirtualProtect = modkernel32.NewProc("VirtualProtect") - procVirtualProtectEx = modkernel32.NewProc("VirtualProtectEx") - procVirtualQuery = modkernel32.NewProc("VirtualQuery") - procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") - procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") - procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") - procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") - procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") - procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") - procWriteFile = modkernel32.NewProc("WriteFile") - procWriteProcessMemory = modkernel32.NewProc("WriteProcessMemory") - procAcceptEx = modmswsock.NewProc("AcceptEx") - procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") - procTransmitFile = modmswsock.NewProc("TransmitFile") - procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") - procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") - procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") - procNtCreateFile = modntdll.NewProc("NtCreateFile") - procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") - procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") - procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") - procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") - procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") - procNtSetSystemInformation = modntdll.NewProc("NtSetSystemInformation") - procRtlAddFunctionTable = modntdll.NewProc("RtlAddFunctionTable") - procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") - procRtlDeleteFunctionTable = modntdll.NewProc("RtlDeleteFunctionTable") - procRtlDosPathNameToNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus") - procRtlDosPathNameToRelativeNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus") - procRtlGetCurrentPeb = modntdll.NewProc("RtlGetCurrentPeb") - procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers") - procRtlGetVersion = modntdll.NewProc("RtlGetVersion") - procRtlInitString = modntdll.NewProc("RtlInitString") - procRtlInitUnicodeString = modntdll.NewProc("RtlInitUnicodeString") - procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") - procCLSIDFromString = modole32.NewProc("CLSIDFromString") - procCoCreateGuid = modole32.NewProc("CoCreateGuid") - procCoGetObject = modole32.NewProc("CoGetObject") - procCoInitializeEx = modole32.NewProc("CoInitializeEx") - procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") - procCoUninitialize = modole32.NewProc("CoUninitialize") - procStringFromGUID2 = modole32.NewProc("StringFromGUID2") - procEnumProcessModules = modpsapi.NewProc("EnumProcessModules") - procEnumProcessModulesEx = modpsapi.NewProc("EnumProcessModulesEx") - procEnumProcesses = modpsapi.NewProc("EnumProcesses") - procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") - procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") - procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") - procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") - procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") - procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") - procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") - procTranslateNameW = modsecur32.NewProc("TranslateNameW") - procSetupDiBuildDriverInfoList = modsetupapi.NewProc("SetupDiBuildDriverInfoList") - procSetupDiCallClassInstaller = modsetupapi.NewProc("SetupDiCallClassInstaller") - procSetupDiCancelDriverInfoSearch = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch") - procSetupDiClassGuidsFromNameExW = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW") - procSetupDiClassNameFromGuidExW = modsetupapi.NewProc("SetupDiClassNameFromGuidExW") - procSetupDiCreateDeviceInfoListExW = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW") - procSetupDiCreateDeviceInfoW = modsetupapi.NewProc("SetupDiCreateDeviceInfoW") - procSetupDiDestroyDeviceInfoList = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList") - procSetupDiDestroyDriverInfoList = modsetupapi.NewProc("SetupDiDestroyDriverInfoList") - procSetupDiEnumDeviceInfo = modsetupapi.NewProc("SetupDiEnumDeviceInfo") - procSetupDiEnumDriverInfoW = modsetupapi.NewProc("SetupDiEnumDriverInfoW") - procSetupDiGetClassDevsExW = modsetupapi.NewProc("SetupDiGetClassDevsExW") - procSetupDiGetClassInstallParamsW = modsetupapi.NewProc("SetupDiGetClassInstallParamsW") - procSetupDiGetDeviceInfoListDetailW = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW") - procSetupDiGetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW") - procSetupDiGetDeviceInstanceIdW = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW") - procSetupDiGetDevicePropertyW = modsetupapi.NewProc("SetupDiGetDevicePropertyW") - procSetupDiGetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW") - procSetupDiGetDriverInfoDetailW = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW") - procSetupDiGetSelectedDevice = modsetupapi.NewProc("SetupDiGetSelectedDevice") - procSetupDiGetSelectedDriverW = modsetupapi.NewProc("SetupDiGetSelectedDriverW") - procSetupDiOpenDevRegKey = modsetupapi.NewProc("SetupDiOpenDevRegKey") - procSetupDiSetClassInstallParamsW = modsetupapi.NewProc("SetupDiSetClassInstallParamsW") - procSetupDiSetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW") - procSetupDiSetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW") - procSetupDiSetSelectedDevice = modsetupapi.NewProc("SetupDiSetSelectedDevice") - procSetupDiSetSelectedDriverW = modsetupapi.NewProc("SetupDiSetSelectedDriverW") - procSetupUninstallOEMInfW = modsetupapi.NewProc("SetupUninstallOEMInfW") - procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") - procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") - procShellExecuteW = modshell32.NewProc("ShellExecuteW") - procEnumChildWindows = moduser32.NewProc("EnumChildWindows") - procEnumWindows = moduser32.NewProc("EnumWindows") - procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") - procGetClassNameW = moduser32.NewProc("GetClassNameW") - procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") - procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") - procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") - procGetShellWindow = moduser32.NewProc("GetShellWindow") - procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") - procIsWindow = moduser32.NewProc("IsWindow") - procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") - procIsWindowVisible = moduser32.NewProc("IsWindowVisible") - procMessageBoxW = moduser32.NewProc("MessageBoxW") - procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") - procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") - procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") - procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") - procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") - procVerQueryValueW = modversion.NewProc("VerQueryValueW") - procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") - procWSACleanup = modws2_32.NewProc("WSACleanup") - procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") - procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") - procWSAIoctl = modws2_32.NewProc("WSAIoctl") - procWSALookupServiceBeginW = modws2_32.NewProc("WSALookupServiceBeginW") - procWSALookupServiceEnd = modws2_32.NewProc("WSALookupServiceEnd") - procWSALookupServiceNextW = modws2_32.NewProc("WSALookupServiceNextW") - procWSARecv = modws2_32.NewProc("WSARecv") - procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") - procWSASend = modws2_32.NewProc("WSASend") - procWSASendTo = modws2_32.NewProc("WSASendTo") - procWSASocketW = modws2_32.NewProc("WSASocketW") - procWSAStartup = modws2_32.NewProc("WSAStartup") - procbind = modws2_32.NewProc("bind") - procclosesocket = modws2_32.NewProc("closesocket") - procconnect = modws2_32.NewProc("connect") - procgethostbyname = modws2_32.NewProc("gethostbyname") - procgetpeername = modws2_32.NewProc("getpeername") - procgetprotobyname = modws2_32.NewProc("getprotobyname") - procgetservbyname = modws2_32.NewProc("getservbyname") - procgetsockname = modws2_32.NewProc("getsockname") - procgetsockopt = modws2_32.NewProc("getsockopt") - proclisten = modws2_32.NewProc("listen") - procntohs = modws2_32.NewProc("ntohs") - procrecvfrom = modws2_32.NewProc("recvfrom") - procsendto = modws2_32.NewProc("sendto") - procsetsockopt = modws2_32.NewProc("setsockopt") - procshutdown = modws2_32.NewProc("shutdown") - procsocket = modws2_32.NewProc("socket") - procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") - procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") - procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") -) - -func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) - ret = CONFIGRET(r0) - return -} - -func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) - ret = CONFIGRET(r0) - return -} - -func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) - ret = CONFIGRET(r0) - return -} - -func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { - r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) - ret = Errno(r0) - return -} - -func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { - var _p0 uint32 - if resetToDefault { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { - var _p0 uint32 - if disableAllPrivileges { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(str) - if err != nil { - return - } - return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) -} - -func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { - var _p0 uint32 - if inheritHandles { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) - isEqual = r0 != 0 - return -} - -func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - len = uint32(r0) - return -} - -func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - var _p0 *uint16 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return - } - return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) -} - -func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) { - var _p0 uint32 - if *daclPresent { - _p0 = 1 - } - var _p1 uint32 - if *daclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) - *daclPresent = _p0 != 0 - *daclDefaulted = _p1 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { - var _p0 uint32 - if *groupDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) - *groupDefaulted = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) - len = uint32(r0) - return -} - -func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) { - var _p0 uint32 - if *ownerDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) - *ownerDefaulted = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) { - var _p0 uint32 - if *saclPresent { - _p0 = 1 - } - var _p1 uint32 - if *saclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) - *saclPresent = _p0 != 0 - *saclDefaulted = _p1 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) - subAuthority = (*uint32)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - count = (*uint8)(unsafe.Pointer(r0)) - return -} - -func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { - r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) { - var _p0 uint32 - if forceAppsClosed { - _p0 = 1 - } - var _p1 uint32 - if rebootAfterShutdown { - _p1 = 1 - } - r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func isTokenRestricted(tokenHandle Token) (ret bool, err error) { - r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) - ret = r0 != 0 - if !ret { - err = errnoErr(e1) - } - return -} - -func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) - isValid = r0 != 0 - return -} - -func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - isValid = r0 != 0 - return -} - -func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) - isWellKnown = r0 != 0 - return -} - -func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { - r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { - var _p0 uint32 - if openAsSelf { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) { - err = procQueryServiceDynamicInformation.Find() - if err != nil { - return - } - r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { - var _p0 uint32 - if watchSubtree { - _p0 = 1 - } - var _p1 uint32 - if asynchronous { - _p1 = 1 - } - r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { - r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { - r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - var _p0 *uint16 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return - } - return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) -} - -func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) { - var _p0 uint32 - if daclPresent { - _p0 = 1 - } - var _p1 uint32 - if daclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) { - var _p0 uint32 - if groupDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) { - var _p0 uint32 - if ownerDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) - return -} - -func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) { - var _p0 uint32 - if saclPresent { - _p0 = 1 - } - var _p1 uint32 - if saclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - err = errnoErr(e1) - } - return -} - -func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { - r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) - dupContext = (*CertContext)(unsafe.Pointer(r0)) - return -} - -func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - err = errnoErr(e1) - } - return -} - -func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) - cert = (*CertContext)(unsafe.Pointer(r0)) - if cert == nil { - err = errnoErr(e1) - } - return -} - -func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) - certchain = (*CertChainContext)(unsafe.Pointer(r0)) - if certchain == nil { - err = errnoErr(e1) - } - return -} - -func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { - r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) - ret = (*CertExtension)(unsafe.Pointer(r0)) - return -} - -func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - return -} - -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { - r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) - chars = uint32(r0) - return -} - -func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) - store = Handle(r0) - if store == 0 { - err = errnoErr(e1) - } - return -} - -func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { - var _p0 uint32 - if *callerFreeProvOrNCryptKey { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) - *callerFreeProvOrNCryptKey = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) - store = Handle(r0) - if store == 0 { - err = errnoErr(e1) - } - return -} - -func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) - same = r0 != 0 - return -} - -func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - var _p0 *uint16 - _p0, status = syscall.UTF16PtrFromString(name) - if status != nil { - return - } - return _DnsQuery(_p0, qtype, options, extra, qrs, pr) -} - -func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) - if r0 != 0 { - status = syscall.Errno(r0) - } - return -} - -func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) - return -} - -func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if initialOwner { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { - var _p0 uint32 - if inheritHandles { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { - syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) - return -} - -func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { - var _p0 uint32 - if bInheritHandle { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) - return -} - -func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindCloseChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(path) - if err != nil { - return - } - return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) -} - -func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { - var _p1 uint32 - if watchSubtree { - _p1 = 1 - } - r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func FindNextChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) - resInfo = Handle(r0) - if resInfo == 0 { - err = errnoErr(e1) - } - return -} - -func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { - var _p0 *uint16 - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) - acp = uint32(r0) - return -} - -func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) - ret = uint32(r0) - return -} - -func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) - cmd = (*uint16)(unsafe.Pointer(r0)) - return -} - -func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) - pid = uint32(r0) - return -} - -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) - id = uint32(r0) - return -} - -func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) - driveType = uint32(r0) - return -} - -func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) - envs = (*uint16)(unsafe.Pointer(r0)) - if envs == nil { - err = errnoErr(e1) - } - return -} - -func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - attrs = uint32(r0) - if attrs == INVALID_FILE_ATTRIBUTES { - err = errnoErr(e1) - } - return -} - -func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetLargePageMinimum() (size uintptr) { - r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) - size = uintptr(r0) - return -} - -func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) - if r0 != 0 { - lasterr = syscall.Errno(r0) - } - return -} - -func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) - drivesBitMask = uint32(r0) - if drivesBitMask == 0 { - err = errnoErr(e1) - } - return -} - -func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) - ret = uint32(r0) - return -} - -func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { - var _p0 uint32 - if wait { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) - ret = uint32(r0) - if ret == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(procname) - if err != nil { - return - } - return _GetProcAddress(module, _p0) -} - -func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) - proc = uintptr(r0) - if proc == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) - id = uint32(r0) - if id == 0 { - err = errnoErr(e1) - } - return -} - -func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { - syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) - return -} - -func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetStartupInfo(startupInfo *StartupInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - err = errnoErr(e1) - } - return -} - -func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) - return -} - -func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) - return -} - -func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - err = errnoErr(e1) - } - return -} - -func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getTickCount64() (ms uint64) { - r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) - ms = uint64(r0) - return -} - -func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) - rc = uint32(r0) - if rc == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) - ver = uint32(r0) - if ver == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - err = errnoErr(e1) - } - return -} - -func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func IsWow64Process(handle Handle, isWow64 *bool) (err error) { - var _p0 uint32 - if *isWow64 { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) - *isWow64 = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) { - err = procIsWow64Process2.Find() - if err != nil { - return - } - r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return - } - return _LoadLibraryEx(_p0, zero, flags) -} - -func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func LoadLibrary(libname string) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return - } - return _LoadLibrary(_p0) -} - -func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) - resData = Handle(r0) - if resData == 0 { - err = errnoErr(e1) - } - return -} - -func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) - ptr = uintptr(r0) - if ptr == 0 { - err = errnoErr(e1) - } - return -} - -func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) - handle = Handle(r0) - if handle != 0 { - err = errnoErr(e1) - } - return -} - -func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LockResource(resData Handle) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) - addr = uintptr(r0) - if addr == 0 { - err = errnoErr(e1) - } - return -} - -func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) - addr = uintptr(r0) - if addr == 0 { - err = errnoErr(e1) - } - return -} - -func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) - nwrite = int32(r0) - if nwrite == 0 { - err = errnoErr(e1) - } - return -} - -func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - var _p0 uint32 - if watchSubTree { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReleaseMutex(mutex Handle) (err error) { - r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) - ret = uint32(r0) - if ret == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setConsoleCursorPosition(console Handle, position uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetDefaultDllDirectories(directoryFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetDllDirectory(path string) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(path) - if err != nil { - return - } - return _SetDllDirectory(_p0) -} - -func _SetDllDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) - ret = uint32(r0) - return -} - -func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) - newlowoffset = uint32(r0) - if newlowoffset == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) - ret = int(r0) - if ret == 0 { - err = errnoErr(e1) - } - return -} - -func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetProcessPriorityBoost(process Handle, disable bool) (err error) { - var _p0 uint32 - if disable { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { - r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) - size = uint32(r0) - if size == 0 { - err = errnoErr(e1) - } - return -} - -func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { - var _p0 uint32 - if alertable { - _p0 = 1 - } - r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) - ret = uint32(r0) - return -} - -func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) - value = uintptr(r0) - if value == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WTSGetActiveConsoleSessionId() (sessionID uint32) { - r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) - sessionID = uint32(r0) - return -} - -func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - var _p0 uint32 - if waitAll { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) - event = uint32(r0) - if event == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) - event = uint32(r0) - if event == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) - return -} - -func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { - r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) - ret = r0 != 0 - return -} - -func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) - ret = r0 != 0 - return -} - -func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlGetCurrentPeb() (peb *PEB) { - r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) - peb = (*PEB)(unsafe.Pointer(r0)) - return -} - -func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { - syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) - return -} - -func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlInitString(destinationString *NTString, sourceString *byte) { - syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) - return -} - -func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { - syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) - return -} - -func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { - r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) - ret = syscall.Errno(r0) - return -} - -func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { - r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { - r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CoTaskMemFree(address unsafe.Pointer) { - syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) - return -} - -func CoUninitialize() { - syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) - return -} - -func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) - chars = int32(r0) - return -} - -func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { - ret = procSubscribeServiceChangeNotifications.Find() - if ret != nil { - return - } - r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { - err = procUnsubscribeServiceChangeNotifications.Find() - if err != nil { - return - } - syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) - return -} - -func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) - handle = DevInfo(r0) - if handle == DevInfo(InvalidHandle) { - err = errnoErr(e1) - } - return -} - -func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) - handle = DevInfo(r0) - if handle == DevInfo(InvalidHandle) { - err = errnoErr(e1) - } - return -} - -func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) - key = Handle(r0) - if key == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) - argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) - if argv == nil { - err = errnoErr(e1) - } - return -} - -func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) - if r1 <= 32 { - err = errnoErr(e1) - } - return -} - -func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { - syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) - return -} - -func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ExitWindowsEx(flags uint32, reason uint32) (err error) { - r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { - r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) - copied = int32(r0) - if copied == 0 { - err = errnoErr(e1) - } - return -} - -func GetDesktopWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) - hwnd = HWND(r0) - return -} - -func GetForegroundWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) - hwnd = HWND(r0) - return -} - -func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetShellWindow() (shellWindow HWND) { - r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) - shellWindow = HWND(r0) - return -} - -func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) - tid = uint32(r0) - if tid == 0 { - err = errnoErr(e1) - } - return -} - -func IsWindow(hwnd HWND) (isWindow bool) { - r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) - isWindow = r0 != 0 - return -} - -func IsWindowUnicode(hwnd HWND) (isUnicode bool) { - r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) - isUnicode = r0 != 0 - return -} - -func IsWindowVisible(hwnd HWND) (isVisible bool) { - r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) - isVisible = r0 != 0 - return -} - -func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) - ret = int32(r0) - if ret == 0 { - err = errnoErr(e1) - } - return -} - -func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { - var _p0 uint32 - if inheritExisting { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(filename) - if err != nil { - return - } - return _GetFileVersionInfoSize(_p0, zeroHandle) -} - -func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) - bufSize = uint32(r0) - if bufSize == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(filename) - if err != nil { - return - } - return _GetFileVersionInfo(_p0, handle, bufSize, buffer) -} - -func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(subBlock) - if err != nil { - return - } - return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize) -} - -func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { - r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) - return -} - -func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } - return -} - -func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) - n = int32(r0) - if n == -1 { - err = errnoErr(e1) - } - return -} - -func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { - var _p0 uint32 - if wait { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceEnd(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { - r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } - return -} - -func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func GetHostByName(name string) (h *Hostent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - return _GetHostByName(_p0) -} - -func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - h = (*Hostent)(unsafe.Pointer(r0)) - if h == nil { - err = errnoErr(e1) - } - return -} - -func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func GetProtoByName(name string) (p *Protoent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - return _GetProtoByName(_p0) -} - -func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - p = (*Protoent)(unsafe.Pointer(r0)) - if p == nil { - err = errnoErr(e1) - } - return -} - -func GetServByName(name string, proto string) (s *Servent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = syscall.BytePtrFromString(proto) - if err != nil { - return - } - return _GetServByName(_p0, _p1) -} - -func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) - s = (*Servent)(unsafe.Pointer(r0)) - if s == nil { - err = errnoErr(e1) - } - return -} - -func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) - u = uint16(r0) - return -} - -func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int32(r0) - if n == -1 { - err = errnoErr(e1) - } - return -} - -func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WTSFreeMemory(ptr uintptr) { - syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) - return -} - -func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} diff --git a/backend/vendor/golang.org/x/text/LICENSE b/backend/vendor/golang.org/x/text/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/backend/vendor/golang.org/x/text/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/vendor/golang.org/x/text/PATENTS b/backend/vendor/golang.org/x/text/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/backend/vendor/golang.org/x/text/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/backend/vendor/golang.org/x/text/cases/cases.go b/backend/vendor/golang.org/x/text/cases/cases.go deleted file mode 100644 index 752cdf03..00000000 --- a/backend/vendor/golang.org/x/text/cases/cases.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go gen_trieval.go - -// Package cases provides general and language-specific case mappers. -package cases // import "golang.org/x/text/cases" - -import ( - "golang.org/x/text/language" - "golang.org/x/text/transform" -) - -// References: -// - Unicode Reference Manual Chapter 3.13, 4.2, and 5.18. -// - https://www.unicode.org/reports/tr29/ -// - https://www.unicode.org/Public/6.3.0/ucd/CaseFolding.txt -// - https://www.unicode.org/Public/6.3.0/ucd/SpecialCasing.txt -// - https://www.unicode.org/Public/6.3.0/ucd/DerivedCoreProperties.txt -// - https://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakProperty.txt -// - https://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakTest.txt -// - http://userguide.icu-project.org/transforms/casemappings - -// TODO: -// - Case folding -// - Wide and Narrow? -// - Segmenter option for title casing. -// - ASCII fast paths -// - Encode Soft-Dotted property within trie somehow. - -// A Caser transforms given input to a certain case. It implements -// transform.Transformer. -// -// A Caser may be stateful and should therefore not be shared between -// goroutines. -type Caser struct { - t transform.SpanningTransformer -} - -// Bytes returns a new byte slice with the result of converting b to the case -// form implemented by c. -func (c Caser) Bytes(b []byte) []byte { - b, _, _ = transform.Bytes(c.t, b) - return b -} - -// String returns a string with the result of transforming s to the case form -// implemented by c. -func (c Caser) String(s string) string { - s, _, _ = transform.String(c.t, s) - return s -} - -// Reset resets the Caser to be reused for new input after a previous call to -// Transform. -func (c Caser) Reset() { c.t.Reset() } - -// Transform implements the transform.Transformer interface and transforms the -// given input to the case form implemented by c. -func (c Caser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return c.t.Transform(dst, src, atEOF) -} - -// Span implements the transform.SpanningTransformer interface. -func (c Caser) Span(src []byte, atEOF bool) (n int, err error) { - return c.t.Span(src, atEOF) -} - -// Upper returns a Caser for language-specific uppercasing. -func Upper(t language.Tag, opts ...Option) Caser { - return Caser{makeUpper(t, getOpts(opts...))} -} - -// Lower returns a Caser for language-specific lowercasing. -func Lower(t language.Tag, opts ...Option) Caser { - return Caser{makeLower(t, getOpts(opts...))} -} - -// Title returns a Caser for language-specific title casing. It uses an -// approximation of the default Unicode Word Break algorithm. -func Title(t language.Tag, opts ...Option) Caser { - return Caser{makeTitle(t, getOpts(opts...))} -} - -// Fold returns a Caser that implements Unicode case folding. The returned Caser -// is stateless and safe to use concurrently by multiple goroutines. -// -// Case folding does not normalize the input and may not preserve a normal form. -// Use the collate or search package for more convenient and linguistically -// sound comparisons. Use golang.org/x/text/secure/precis for string comparisons -// where security aspects are a concern. -func Fold(opts ...Option) Caser { - return Caser{makeFold(getOpts(opts...))} -} - -// An Option is used to modify the behavior of a Caser. -type Option func(o options) options - -// TODO: consider these options to take a boolean as well, like FinalSigma. -// The advantage of using this approach is that other providers of a lower-case -// algorithm could set different defaults by prefixing a user-provided slice -// of options with their own. This is handy, for instance, for the precis -// package which would override the default to not handle the Greek final sigma. - -var ( - // NoLower disables the lowercasing of non-leading letters for a title - // caser. - NoLower Option = noLower - - // Compact omits mappings in case folding for characters that would grow the - // input. (Unimplemented.) - Compact Option = compact -) - -// TODO: option to preserve a normal form, if applicable? - -type options struct { - noLower bool - simple bool - - // TODO: segmenter, max ignorable, alternative versions, etc. - - ignoreFinalSigma bool -} - -func getOpts(o ...Option) (res options) { - for _, f := range o { - res = f(res) - } - return -} - -func noLower(o options) options { - o.noLower = true - return o -} - -func compact(o options) options { - o.simple = true - return o -} - -// HandleFinalSigma specifies whether the special handling of Greek final sigma -// should be enabled. Unicode prescribes handling the Greek final sigma for all -// locales, but standards like IDNA and PRECIS override this default. -func HandleFinalSigma(enable bool) Option { - if enable { - return handleFinalSigma - } - return ignoreFinalSigma -} - -func ignoreFinalSigma(o options) options { - o.ignoreFinalSigma = true - return o -} - -func handleFinalSigma(o options) options { - o.ignoreFinalSigma = false - return o -} diff --git a/backend/vendor/golang.org/x/text/cases/context.go b/backend/vendor/golang.org/x/text/cases/context.go deleted file mode 100644 index e9aa9e19..00000000 --- a/backend/vendor/golang.org/x/text/cases/context.go +++ /dev/null @@ -1,376 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -import "golang.org/x/text/transform" - -// A context is used for iterating over source bytes, fetching case info and -// writing to a destination buffer. -// -// Casing operations may need more than one rune of context to decide how a rune -// should be cased. Casing implementations should call checkpoint on context -// whenever it is known to be safe to return the runes processed so far. -// -// It is recommended for implementations to not allow for more than 30 case -// ignorables as lookahead (analogous to the limit in norm) and to use state if -// unbounded lookahead is needed for cased runes. -type context struct { - dst, src []byte - atEOF bool - - pDst int // pDst points past the last written rune in dst. - pSrc int // pSrc points to the start of the currently scanned rune. - - // checkpoints safe to return in Transform, where nDst <= pDst and nSrc <= pSrc. - nDst, nSrc int - err error - - sz int // size of current rune - info info // case information of currently scanned rune - - // State preserved across calls to Transform. - isMidWord bool // false if next cased letter needs to be title-cased. -} - -func (c *context) Reset() { - c.isMidWord = false -} - -// ret returns the return values for the Transform method. It checks whether -// there were insufficient bytes in src to complete and introduces an error -// accordingly, if necessary. -func (c *context) ret() (nDst, nSrc int, err error) { - if c.err != nil || c.nSrc == len(c.src) { - return c.nDst, c.nSrc, c.err - } - // This point is only reached by mappers if there was no short destination - // buffer. This means that the source buffer was exhausted and that c.sz was - // set to 0 by next. - if c.atEOF && c.pSrc == len(c.src) { - return c.pDst, c.pSrc, nil - } - return c.nDst, c.nSrc, transform.ErrShortSrc -} - -// retSpan returns the return values for the Span method. It checks whether -// there were insufficient bytes in src to complete and introduces an error -// accordingly, if necessary. -func (c *context) retSpan() (n int, err error) { - _, nSrc, err := c.ret() - return nSrc, err -} - -// checkpoint sets the return value buffer points for Transform to the current -// positions. -func (c *context) checkpoint() { - if c.err == nil { - c.nDst, c.nSrc = c.pDst, c.pSrc+c.sz - } -} - -// unreadRune causes the last rune read by next to be reread on the next -// invocation of next. Only one unreadRune may be called after a call to next. -func (c *context) unreadRune() { - c.sz = 0 -} - -func (c *context) next() bool { - c.pSrc += c.sz - if c.pSrc == len(c.src) || c.err != nil { - c.info, c.sz = 0, 0 - return false - } - v, sz := trie.lookup(c.src[c.pSrc:]) - c.info, c.sz = info(v), sz - if c.sz == 0 { - if c.atEOF { - // A zero size means we have an incomplete rune. If we are atEOF, - // this means it is an illegal rune, which we will consume one - // byte at a time. - c.sz = 1 - } else { - c.err = transform.ErrShortSrc - return false - } - } - return true -} - -// writeBytes adds bytes to dst. -func (c *context) writeBytes(b []byte) bool { - if len(c.dst)-c.pDst < len(b) { - c.err = transform.ErrShortDst - return false - } - // This loop is faster than using copy. - for _, ch := range b { - c.dst[c.pDst] = ch - c.pDst++ - } - return true -} - -// writeString writes the given string to dst. -func (c *context) writeString(s string) bool { - if len(c.dst)-c.pDst < len(s) { - c.err = transform.ErrShortDst - return false - } - // This loop is faster than using copy. - for i := 0; i < len(s); i++ { - c.dst[c.pDst] = s[i] - c.pDst++ - } - return true -} - -// copy writes the current rune to dst. -func (c *context) copy() bool { - return c.writeBytes(c.src[c.pSrc : c.pSrc+c.sz]) -} - -// copyXOR copies the current rune to dst and modifies it by applying the XOR -// pattern of the case info. It is the responsibility of the caller to ensure -// that this is a rune with a XOR pattern defined. -func (c *context) copyXOR() bool { - if !c.copy() { - return false - } - if c.info&xorIndexBit == 0 { - // Fast path for 6-bit XOR pattern, which covers most cases. - c.dst[c.pDst-1] ^= byte(c.info >> xorShift) - } else { - // Interpret XOR bits as an index. - // TODO: test performance for unrolling this loop. Verify that we have - // at least two bytes and at most three. - idx := c.info >> xorShift - for p := c.pDst - 1; ; p-- { - c.dst[p] ^= xorData[idx] - idx-- - if xorData[idx] == 0 { - break - } - } - } - return true -} - -// hasPrefix returns true if src[pSrc:] starts with the given string. -func (c *context) hasPrefix(s string) bool { - b := c.src[c.pSrc:] - if len(b) < len(s) { - return false - } - for i, c := range b[:len(s)] { - if c != s[i] { - return false - } - } - return true -} - -// caseType returns an info with only the case bits, normalized to either -// cLower, cUpper, cTitle or cUncased. -func (c *context) caseType() info { - cm := c.info & 0x7 - if cm < 4 { - return cm - } - if cm >= cXORCase { - // xor the last bit of the rune with the case type bits. - b := c.src[c.pSrc+c.sz-1] - return info(b&1) ^ cm&0x3 - } - if cm == cIgnorableCased { - return cLower - } - return cUncased -} - -// lower writes the lowercase version of the current rune to dst. -func lower(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cLower { - return c.copy() - } - if c.info&exceptionBit == 0 { - return c.copyXOR() - } - e := exceptions[c.info>>exceptionShift:] - offset := 2 + e[0]&lengthMask // size of header + fold string - if nLower := (e[1] >> lengthBits) & lengthMask; nLower != noChange { - return c.writeString(e[offset : offset+nLower]) - } - return c.copy() -} - -func isLower(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cLower { - return true - } - if c.info&exceptionBit == 0 { - c.err = transform.ErrEndOfSpan - return false - } - e := exceptions[c.info>>exceptionShift:] - if nLower := (e[1] >> lengthBits) & lengthMask; nLower != noChange { - c.err = transform.ErrEndOfSpan - return false - } - return true -} - -// upper writes the uppercase version of the current rune to dst. -func upper(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cUpper { - return c.copy() - } - if c.info&exceptionBit == 0 { - return c.copyXOR() - } - e := exceptions[c.info>>exceptionShift:] - offset := 2 + e[0]&lengthMask // size of header + fold string - // Get length of first special case mapping. - n := (e[1] >> lengthBits) & lengthMask - if ct == cTitle { - // The first special case mapping is for lower. Set n to the second. - if n == noChange { - n = 0 - } - n, e = e[1]&lengthMask, e[n:] - } - if n != noChange { - return c.writeString(e[offset : offset+n]) - } - return c.copy() -} - -// isUpper writes the isUppercase version of the current rune to dst. -func isUpper(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cUpper { - return true - } - if c.info&exceptionBit == 0 { - c.err = transform.ErrEndOfSpan - return false - } - e := exceptions[c.info>>exceptionShift:] - // Get length of first special case mapping. - n := (e[1] >> lengthBits) & lengthMask - if ct == cTitle { - n = e[1] & lengthMask - } - if n != noChange { - c.err = transform.ErrEndOfSpan - return false - } - return true -} - -// title writes the title case version of the current rune to dst. -func title(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cTitle { - return c.copy() - } - if c.info&exceptionBit == 0 { - if ct == cLower { - return c.copyXOR() - } - return c.copy() - } - // Get the exception data. - e := exceptions[c.info>>exceptionShift:] - offset := 2 + e[0]&lengthMask // size of header + fold string - - nFirst := (e[1] >> lengthBits) & lengthMask - if nTitle := e[1] & lengthMask; nTitle != noChange { - if nFirst != noChange { - e = e[nFirst:] - } - return c.writeString(e[offset : offset+nTitle]) - } - if ct == cLower && nFirst != noChange { - // Use the uppercase version instead. - return c.writeString(e[offset : offset+nFirst]) - } - // Already in correct case. - return c.copy() -} - -// isTitle reports whether the current rune is in title case. -func isTitle(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cTitle { - return true - } - if c.info&exceptionBit == 0 { - if ct == cLower { - c.err = transform.ErrEndOfSpan - return false - } - return true - } - // Get the exception data. - e := exceptions[c.info>>exceptionShift:] - if nTitle := e[1] & lengthMask; nTitle != noChange { - c.err = transform.ErrEndOfSpan - return false - } - nFirst := (e[1] >> lengthBits) & lengthMask - if ct == cLower && nFirst != noChange { - c.err = transform.ErrEndOfSpan - return false - } - return true -} - -// foldFull writes the foldFull version of the current rune to dst. -func foldFull(c *context) bool { - if c.info&hasMappingMask == 0 { - return c.copy() - } - ct := c.caseType() - if c.info&exceptionBit == 0 { - if ct != cLower || c.info&inverseFoldBit != 0 { - return c.copyXOR() - } - return c.copy() - } - e := exceptions[c.info>>exceptionShift:] - n := e[0] & lengthMask - if n == 0 { - if ct == cLower { - return c.copy() - } - n = (e[1] >> lengthBits) & lengthMask - } - return c.writeString(e[2 : 2+n]) -} - -// isFoldFull reports whether the current run is mapped to foldFull -func isFoldFull(c *context) bool { - if c.info&hasMappingMask == 0 { - return true - } - ct := c.caseType() - if c.info&exceptionBit == 0 { - if ct != cLower || c.info&inverseFoldBit != 0 { - c.err = transform.ErrEndOfSpan - return false - } - return true - } - e := exceptions[c.info>>exceptionShift:] - n := e[0] & lengthMask - if n == 0 && ct == cLower { - return true - } - c.err = transform.ErrEndOfSpan - return false -} diff --git a/backend/vendor/golang.org/x/text/cases/fold.go b/backend/vendor/golang.org/x/text/cases/fold.go deleted file mode 100644 index 85cc434f..00000000 --- a/backend/vendor/golang.org/x/text/cases/fold.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -import "golang.org/x/text/transform" - -type caseFolder struct{ transform.NopResetter } - -// caseFolder implements the Transformer interface for doing case folding. -func (t *caseFolder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - c := context{dst: dst, src: src, atEOF: atEOF} - for c.next() { - foldFull(&c) - c.checkpoint() - } - return c.ret() -} - -func (t *caseFolder) Span(src []byte, atEOF bool) (n int, err error) { - c := context{src: src, atEOF: atEOF} - for c.next() && isFoldFull(&c) { - c.checkpoint() - } - return c.retSpan() -} - -func makeFold(o options) transform.SpanningTransformer { - // TODO: Special case folding, through option Language, Special/Turkic, or - // both. - // TODO: Implement Compact options. - return &caseFolder{} -} diff --git a/backend/vendor/golang.org/x/text/cases/icu.go b/backend/vendor/golang.org/x/text/cases/icu.go deleted file mode 100644 index 2dc84b39..00000000 --- a/backend/vendor/golang.org/x/text/cases/icu.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build icu -// +build icu - -package cases - -// Ideally these functions would be defined in a test file, but go test doesn't -// allow CGO in tests. The build tag should ensure either way that these -// functions will not end up in the package. - -// TODO: Ensure that the correct ICU version is set. - -/* -#cgo LDFLAGS: -licui18n.57 -licuuc.57 -#include -#include -#include -#include -#include -*/ -import "C" - -import "unsafe" - -func doICU(tag, caser, input string) string { - err := C.UErrorCode(0) - loc := C.CString(tag) - cm := C.ucasemap_open(loc, C.uint32_t(0), &err) - - buf := make([]byte, len(input)*4) - dst := (*C.char)(unsafe.Pointer(&buf[0])) - src := C.CString(input) - - cn := C.int32_t(0) - - switch caser { - case "fold": - cn = C.ucasemap_utf8FoldCase(cm, - dst, C.int32_t(len(buf)), - src, C.int32_t(len(input)), - &err) - case "lower": - cn = C.ucasemap_utf8ToLower(cm, - dst, C.int32_t(len(buf)), - src, C.int32_t(len(input)), - &err) - case "upper": - cn = C.ucasemap_utf8ToUpper(cm, - dst, C.int32_t(len(buf)), - src, C.int32_t(len(input)), - &err) - case "title": - cn = C.ucasemap_utf8ToTitle(cm, - dst, C.int32_t(len(buf)), - src, C.int32_t(len(input)), - &err) - } - return string(buf[:cn]) -} diff --git a/backend/vendor/golang.org/x/text/cases/info.go b/backend/vendor/golang.org/x/text/cases/info.go deleted file mode 100644 index 87a7c3e9..00000000 --- a/backend/vendor/golang.org/x/text/cases/info.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -func (c info) cccVal() info { - if c&exceptionBit != 0 { - return info(exceptions[c>>exceptionShift]) & cccMask - } - return c & cccMask -} - -func (c info) cccType() info { - ccc := c.cccVal() - if ccc <= cccZero { - return cccZero - } - return ccc -} - -// TODO: Implement full Unicode breaking algorithm: -// 1) Implement breaking in separate package. -// 2) Use the breaker here. -// 3) Compare table size and performance of using the more generic breaker. -// -// Note that we can extend the current algorithm to be much more accurate. This -// only makes sense, though, if the performance and/or space penalty of using -// the generic breaker is big. Extra data will only be needed for non-cased -// runes, which means there are sufficient bits left in the caseType. -// ICU prohibits breaking in such cases as well. - -// For the purpose of title casing we use an approximation of the Unicode Word -// Breaking algorithm defined in Annex #29: -// https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table. -// -// For our approximation, we group the Word Break types into the following -// categories, with associated rules: -// -// 1) Letter: -// ALetter, Hebrew_Letter, Numeric, ExtendNumLet, Extend, Format_FE, ZWJ. -// Rule: Never break between consecutive runes of this category. -// -// 2) Mid: -// MidLetter, MidNumLet, Single_Quote. -// (Cf. case-ignorable: MidLetter, MidNumLet, Single_Quote or cat is Mn, -// Me, Cf, Lm or Sk). -// Rule: Don't break between Letter and Mid, but break between two Mids. -// -// 3) Break: -// Any other category: NewLine, MidNum, CR, LF, Double_Quote, Katakana, and -// Other. -// These categories should always result in a break between two cased letters. -// Rule: Always break. -// -// Note 1: the Katakana and MidNum categories can, in esoteric cases, result in -// preventing a break between two cased letters. For now we will ignore this -// (e.g. [ALetter] [ExtendNumLet] [Katakana] [ExtendNumLet] [ALetter] and -// [ALetter] [Numeric] [MidNum] [Numeric] [ALetter].) -// -// Note 2: the rule for Mid is very approximate, but works in most cases. To -// improve, we could store the categories in the trie value and use a FA to -// manage breaks. See TODO comment above. -// -// Note 3: according to the spec, it is possible for the Extend category to -// introduce breaks between other categories grouped in Letter. However, this -// is undesirable for our purposes. ICU prevents breaks in such cases as well. - -// isBreak returns whether this rune should introduce a break. -func (c info) isBreak() bool { - return c.cccVal() == cccBreak -} - -// isLetter returns whether the rune is of break type ALetter, Hebrew_Letter, -// Numeric, ExtendNumLet, or Extend. -func (c info) isLetter() bool { - ccc := c.cccVal() - if ccc == cccZero { - return !c.isCaseIgnorable() - } - return ccc != cccBreak -} diff --git a/backend/vendor/golang.org/x/text/cases/map.go b/backend/vendor/golang.org/x/text/cases/map.go deleted file mode 100644 index 0f7c6a14..00000000 --- a/backend/vendor/golang.org/x/text/cases/map.go +++ /dev/null @@ -1,816 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -// This file contains the definitions of case mappings for all supported -// languages. The rules for the language-specific tailorings were taken and -// modified from the CLDR transform definitions in common/transforms. - -import ( - "strings" - "unicode" - "unicode/utf8" - - "golang.org/x/text/internal" - "golang.org/x/text/language" - "golang.org/x/text/transform" - "golang.org/x/text/unicode/norm" -) - -// A mapFunc takes a context set to the current rune and writes the mapped -// version to the same context. It may advance the context to the next rune. It -// returns whether a checkpoint is possible: whether the pDst bytes written to -// dst so far won't need changing as we see more source bytes. -type mapFunc func(*context) bool - -// A spanFunc takes a context set to the current rune and returns whether this -// rune would be altered when written to the output. It may advance the context -// to the next rune. It returns whether a checkpoint is possible. -type spanFunc func(*context) bool - -// maxIgnorable defines the maximum number of ignorables to consider for -// lookahead operations. -const maxIgnorable = 30 - -// supported lists the language tags for which we have tailorings. -const supported = "und af az el lt nl tr" - -func init() { - tags := []language.Tag{} - for _, s := range strings.Split(supported, " ") { - tags = append(tags, language.MustParse(s)) - } - matcher = internal.NewInheritanceMatcher(tags) - Supported = language.NewCoverage(tags) -} - -var ( - matcher *internal.InheritanceMatcher - - Supported language.Coverage - - // We keep the following lists separate, instead of having a single per- - // language struct, to give the compiler a chance to remove unused code. - - // Some uppercase mappers are stateless, so we can precompute the - // Transformers and save a bit on runtime allocations. - upperFunc = []struct { - upper mapFunc - span spanFunc - }{ - {nil, nil}, // und - {nil, nil}, // af - {aztrUpper(upper), isUpper}, // az - {elUpper, noSpan}, // el - {ltUpper(upper), noSpan}, // lt - {nil, nil}, // nl - {aztrUpper(upper), isUpper}, // tr - } - - undUpper transform.SpanningTransformer = &undUpperCaser{} - undLower transform.SpanningTransformer = &undLowerCaser{} - undLowerIgnoreSigma transform.SpanningTransformer = &undLowerIgnoreSigmaCaser{} - - lowerFunc = []mapFunc{ - nil, // und - nil, // af - aztrLower, // az - nil, // el - ltLower, // lt - nil, // nl - aztrLower, // tr - } - - titleInfos = []struct { - title mapFunc - lower mapFunc - titleSpan spanFunc - rewrite func(*context) - }{ - {title, lower, isTitle, nil}, // und - {title, lower, isTitle, afnlRewrite}, // af - {aztrUpper(title), aztrLower, isTitle, nil}, // az - {title, lower, isTitle, nil}, // el - {ltUpper(title), ltLower, noSpan, nil}, // lt - {nlTitle, lower, nlTitleSpan, afnlRewrite}, // nl - {aztrUpper(title), aztrLower, isTitle, nil}, // tr - } -) - -func makeUpper(t language.Tag, o options) transform.SpanningTransformer { - _, i, _ := matcher.Match(t) - f := upperFunc[i].upper - if f == nil { - return undUpper - } - return &simpleCaser{f: f, span: upperFunc[i].span} -} - -func makeLower(t language.Tag, o options) transform.SpanningTransformer { - _, i, _ := matcher.Match(t) - f := lowerFunc[i] - if f == nil { - if o.ignoreFinalSigma { - return undLowerIgnoreSigma - } - return undLower - } - if o.ignoreFinalSigma { - return &simpleCaser{f: f, span: isLower} - } - return &lowerCaser{ - first: f, - midWord: finalSigma(f), - } -} - -func makeTitle(t language.Tag, o options) transform.SpanningTransformer { - _, i, _ := matcher.Match(t) - x := &titleInfos[i] - lower := x.lower - if o.noLower { - lower = (*context).copy - } else if !o.ignoreFinalSigma { - lower = finalSigma(lower) - } - return &titleCaser{ - title: x.title, - lower: lower, - titleSpan: x.titleSpan, - rewrite: x.rewrite, - } -} - -func noSpan(c *context) bool { - c.err = transform.ErrEndOfSpan - return false -} - -// TODO: consider a similar special case for the fast majority lower case. This -// is a bit more involved so will require some more precise benchmarking to -// justify it. - -type undUpperCaser struct{ transform.NopResetter } - -// undUpperCaser implements the Transformer interface for doing an upper case -// mapping for the root locale (und). It eliminates the need for an allocation -// as it prevents escaping by not using function pointers. -func (t undUpperCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - c := context{dst: dst, src: src, atEOF: atEOF} - for c.next() { - upper(&c) - c.checkpoint() - } - return c.ret() -} - -func (t undUpperCaser) Span(src []byte, atEOF bool) (n int, err error) { - c := context{src: src, atEOF: atEOF} - for c.next() && isUpper(&c) { - c.checkpoint() - } - return c.retSpan() -} - -// undLowerIgnoreSigmaCaser implements the Transformer interface for doing -// a lower case mapping for the root locale (und) ignoring final sigma -// handling. This casing algorithm is used in some performance-critical packages -// like secure/precis and x/net/http/idna, which warrants its special-casing. -type undLowerIgnoreSigmaCaser struct{ transform.NopResetter } - -func (t undLowerIgnoreSigmaCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - c := context{dst: dst, src: src, atEOF: atEOF} - for c.next() && lower(&c) { - c.checkpoint() - } - return c.ret() - -} - -// Span implements a generic lower-casing. This is possible as isLower works -// for all lowercasing variants. All lowercase variants only vary in how they -// transform a non-lowercase letter. They will never change an already lowercase -// letter. In addition, there is no state. -func (t undLowerIgnoreSigmaCaser) Span(src []byte, atEOF bool) (n int, err error) { - c := context{src: src, atEOF: atEOF} - for c.next() && isLower(&c) { - c.checkpoint() - } - return c.retSpan() -} - -type simpleCaser struct { - context - f mapFunc - span spanFunc -} - -// simpleCaser implements the Transformer interface for doing a case operation -// on a rune-by-rune basis. -func (t *simpleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - c := context{dst: dst, src: src, atEOF: atEOF} - for c.next() && t.f(&c) { - c.checkpoint() - } - return c.ret() -} - -func (t *simpleCaser) Span(src []byte, atEOF bool) (n int, err error) { - c := context{src: src, atEOF: atEOF} - for c.next() && t.span(&c) { - c.checkpoint() - } - return c.retSpan() -} - -// undLowerCaser implements the Transformer interface for doing a lower case -// mapping for the root locale (und) ignoring final sigma handling. This casing -// algorithm is used in some performance-critical packages like secure/precis -// and x/net/http/idna, which warrants its special-casing. -type undLowerCaser struct{ transform.NopResetter } - -func (t undLowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - c := context{dst: dst, src: src, atEOF: atEOF} - - for isInterWord := true; c.next(); { - if isInterWord { - if c.info.isCased() { - if !lower(&c) { - break - } - isInterWord = false - } else if !c.copy() { - break - } - } else { - if c.info.isNotCasedAndNotCaseIgnorable() { - if !c.copy() { - break - } - isInterWord = true - } else if !c.hasPrefix("Σ") { - if !lower(&c) { - break - } - } else if !finalSigmaBody(&c) { - break - } - } - c.checkpoint() - } - return c.ret() -} - -func (t undLowerCaser) Span(src []byte, atEOF bool) (n int, err error) { - c := context{src: src, atEOF: atEOF} - for c.next() && isLower(&c) { - c.checkpoint() - } - return c.retSpan() -} - -// lowerCaser implements the Transformer interface. The default Unicode lower -// casing requires different treatment for the first and subsequent characters -// of a word, most notably to handle the Greek final Sigma. -type lowerCaser struct { - undLowerIgnoreSigmaCaser - - context - - first, midWord mapFunc -} - -func (t *lowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - t.context = context{dst: dst, src: src, atEOF: atEOF} - c := &t.context - - for isInterWord := true; c.next(); { - if isInterWord { - if c.info.isCased() { - if !t.first(c) { - break - } - isInterWord = false - } else if !c.copy() { - break - } - } else { - if c.info.isNotCasedAndNotCaseIgnorable() { - if !c.copy() { - break - } - isInterWord = true - } else if !t.midWord(c) { - break - } - } - c.checkpoint() - } - return c.ret() -} - -// titleCaser implements the Transformer interface. Title casing algorithms -// distinguish between the first letter of a word and subsequent letters of the -// same word. It uses state to avoid requiring a potentially infinite lookahead. -type titleCaser struct { - context - - // rune mappings used by the actual casing algorithms. - title mapFunc - lower mapFunc - titleSpan spanFunc - - rewrite func(*context) -} - -// Transform implements the standard Unicode title case algorithm as defined in -// Chapter 3 of The Unicode Standard: -// toTitlecase(X): Find the word boundaries in X according to Unicode Standard -// Annex #29, "Unicode Text Segmentation." For each word boundary, find the -// first cased character F following the word boundary. If F exists, map F to -// Titlecase_Mapping(F); then map all characters C between F and the following -// word boundary to Lowercase_Mapping(C). -func (t *titleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - t.context = context{dst: dst, src: src, atEOF: atEOF, isMidWord: t.isMidWord} - c := &t.context - - if !c.next() { - return c.ret() - } - - for { - p := c.info - if t.rewrite != nil { - t.rewrite(c) - } - - wasMid := p.isMid() - // Break out of this loop on failure to ensure we do not modify the - // state incorrectly. - if p.isCased() { - if !c.isMidWord { - if !t.title(c) { - break - } - c.isMidWord = true - } else if !t.lower(c) { - break - } - } else if !c.copy() { - break - } else if p.isBreak() { - c.isMidWord = false - } - - // As we save the state of the transformer, it is safe to call - // checkpoint after any successful write. - if !(c.isMidWord && wasMid) { - c.checkpoint() - } - - if !c.next() { - break - } - if wasMid && c.info.isMid() { - c.isMidWord = false - } - } - return c.ret() -} - -func (t *titleCaser) Span(src []byte, atEOF bool) (n int, err error) { - t.context = context{src: src, atEOF: atEOF, isMidWord: t.isMidWord} - c := &t.context - - if !c.next() { - return c.retSpan() - } - - for { - p := c.info - if t.rewrite != nil { - t.rewrite(c) - } - - wasMid := p.isMid() - // Break out of this loop on failure to ensure we do not modify the - // state incorrectly. - if p.isCased() { - if !c.isMidWord { - if !t.titleSpan(c) { - break - } - c.isMidWord = true - } else if !isLower(c) { - break - } - } else if p.isBreak() { - c.isMidWord = false - } - // As we save the state of the transformer, it is safe to call - // checkpoint after any successful write. - if !(c.isMidWord && wasMid) { - c.checkpoint() - } - - if !c.next() { - break - } - if wasMid && c.info.isMid() { - c.isMidWord = false - } - } - return c.retSpan() -} - -// finalSigma adds Greek final Sigma handing to another casing function. It -// determines whether a lowercased sigma should be σ or ς, by looking ahead for -// case-ignorables and a cased letters. -func finalSigma(f mapFunc) mapFunc { - return func(c *context) bool { - if !c.hasPrefix("Σ") { - return f(c) - } - return finalSigmaBody(c) - } -} - -func finalSigmaBody(c *context) bool { - // Current rune must be ∑. - - // ::NFD(); - // # 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA - // Σ } [:case-ignorable:]* [:cased:] → σ; - // [:cased:] [:case-ignorable:]* { Σ → ς; - // ::Any-Lower; - // ::NFC(); - - p := c.pDst - c.writeString("ς") - - // TODO: we should do this here, but right now this will never have an - // effect as this is called when the prefix is Sigma, whereas Dutch and - // Afrikaans only test for an apostrophe. - // - // if t.rewrite != nil { - // t.rewrite(c) - // } - - // We need to do one more iteration after maxIgnorable, as a cased - // letter is not an ignorable and may modify the result. - wasMid := false - for i := 0; i < maxIgnorable+1; i++ { - if !c.next() { - return false - } - if !c.info.isCaseIgnorable() { - // All Midword runes are also case ignorable, so we are - // guaranteed to have a letter or word break here. As we are - // unreading the run, there is no need to unset c.isMidWord; - // the title caser will handle this. - if c.info.isCased() { - // p+1 is guaranteed to be in bounds: if writing ς was - // successful, p+1 will contain the second byte of ς. If not, - // this function will have returned after c.next returned false. - c.dst[p+1]++ // ς → σ - } - c.unreadRune() - return true - } - // A case ignorable may also introduce a word break, so we may need - // to continue searching even after detecting a break. - isMid := c.info.isMid() - if (wasMid && isMid) || c.info.isBreak() { - c.isMidWord = false - } - wasMid = isMid - c.copy() - } - return true -} - -// finalSigmaSpan would be the same as isLower. - -// elUpper implements Greek upper casing, which entails removing a predefined -// set of non-blocked modifiers. Note that these accents should not be removed -// for title casing! -// Example: "Οδός" -> "ΟΔΟΣ". -func elUpper(c *context) bool { - // From CLDR: - // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Above:]]*? { [\u0313\u0314\u0301\u0300\u0306\u0342\u0308\u0304] → ; - // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Iota_Subscript:]]*? { \u0345 → ; - - r, _ := utf8.DecodeRune(c.src[c.pSrc:]) - oldPDst := c.pDst - if !upper(c) { - return false - } - if !unicode.Is(unicode.Greek, r) { - return true - } - i := 0 - // Take the properties of the uppercased rune that is already written to the - // destination. This saves us the trouble of having to uppercase the - // decomposed rune again. - if b := norm.NFD.Properties(c.dst[oldPDst:]).Decomposition(); b != nil { - // Restore the destination position and process the decomposed rune. - r, sz := utf8.DecodeRune(b) - if r <= 0xFF { // See A.6.1 - return true - } - c.pDst = oldPDst - // Insert the first rune and ignore the modifiers. See A.6.2. - c.writeBytes(b[:sz]) - i = len(b[sz:]) / 2 // Greek modifiers are always of length 2. - } - - for ; i < maxIgnorable && c.next(); i++ { - switch r, _ := utf8.DecodeRune(c.src[c.pSrc:]); r { - // Above and Iota Subscript - case 0x0300, // U+0300 COMBINING GRAVE ACCENT - 0x0301, // U+0301 COMBINING ACUTE ACCENT - 0x0304, // U+0304 COMBINING MACRON - 0x0306, // U+0306 COMBINING BREVE - 0x0308, // U+0308 COMBINING DIAERESIS - 0x0313, // U+0313 COMBINING COMMA ABOVE - 0x0314, // U+0314 COMBINING REVERSED COMMA ABOVE - 0x0342, // U+0342 COMBINING GREEK PERISPOMENI - 0x0345: // U+0345 COMBINING GREEK YPOGEGRAMMENI - // No-op. Gobble the modifier. - - default: - switch v, _ := trie.lookup(c.src[c.pSrc:]); info(v).cccType() { - case cccZero: - c.unreadRune() - return true - - // We don't need to test for IotaSubscript as the only rune that - // qualifies (U+0345) was already excluded in the switch statement - // above. See A.4. - - case cccAbove: - return c.copy() - default: - // Some other modifier. We're still allowed to gobble Greek - // modifiers after this. - c.copy() - } - } - } - return i == maxIgnorable -} - -// TODO: implement elUpperSpan (low-priority: complex and infrequent). - -func ltLower(c *context) bool { - // From CLDR: - // # Introduce an explicit dot above when lowercasing capital I's and J's - // # whenever there are more accents above. - // # (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) - // # 0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I - // # 004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J - // # 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK - // # 00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE - // # 00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE - // # 0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE - // ::NFD(); - // I } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0307; - // J } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → j \u0307; - // I \u0328 (Į) } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0328 \u0307; - // I \u0300 (Ì) → i \u0307 \u0300; - // I \u0301 (Í) → i \u0307 \u0301; - // I \u0303 (Ĩ) → i \u0307 \u0303; - // ::Any-Lower(); - // ::NFC(); - - i := 0 - if r := c.src[c.pSrc]; r < utf8.RuneSelf { - lower(c) - if r != 'I' && r != 'J' { - return true - } - } else { - p := norm.NFD.Properties(c.src[c.pSrc:]) - if d := p.Decomposition(); len(d) >= 3 && (d[0] == 'I' || d[0] == 'J') { - // UTF-8 optimization: the decomposition will only have an above - // modifier if the last rune of the decomposition is in [U+300-U+311]. - // In all other cases, a decomposition starting with I is always - // an I followed by modifiers that are not cased themselves. See A.2. - if d[1] == 0xCC && d[2] <= 0x91 { // A.2.4. - if !c.writeBytes(d[:1]) { - return false - } - c.dst[c.pDst-1] += 'a' - 'A' // lower - - // Assumption: modifier never changes on lowercase. See A.1. - // Assumption: all modifiers added have CCC = Above. See A.2.3. - return c.writeString("\u0307") && c.writeBytes(d[1:]) - } - // In all other cases the additional modifiers will have a CCC - // that is less than 230 (Above). We will insert the U+0307, if - // needed, after these modifiers so that a string in FCD form - // will remain so. See A.2.2. - lower(c) - i = 1 - } else { - return lower(c) - } - } - - for ; i < maxIgnorable && c.next(); i++ { - switch c.info.cccType() { - case cccZero: - c.unreadRune() - return true - case cccAbove: - return c.writeString("\u0307") && c.copy() // See A.1. - default: - c.copy() // See A.1. - } - } - return i == maxIgnorable -} - -// ltLowerSpan would be the same as isLower. - -func ltUpper(f mapFunc) mapFunc { - return func(c *context) bool { - // Unicode: - // 0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE - // - // From CLDR: - // # Remove \u0307 following soft-dotteds (i, j, and the like), with possible - // # intervening non-230 marks. - // ::NFD(); - // [:Soft_Dotted:] [^[:ccc=Not_Reordered:][:ccc=Above:]]* { \u0307 → ; - // ::Any-Upper(); - // ::NFC(); - - // TODO: See A.5. A soft-dotted rune never has an exception. This would - // allow us to overload the exception bit and encode this property in - // info. Need to measure performance impact of this. - r, _ := utf8.DecodeRune(c.src[c.pSrc:]) - oldPDst := c.pDst - if !f(c) { - return false - } - if !unicode.Is(unicode.Soft_Dotted, r) { - return true - } - - // We don't need to do an NFD normalization, as a soft-dotted rune never - // contains U+0307. See A.3. - - i := 0 - for ; i < maxIgnorable && c.next(); i++ { - switch c.info.cccType() { - case cccZero: - c.unreadRune() - return true - case cccAbove: - if c.hasPrefix("\u0307") { - // We don't do a full NFC, but rather combine runes for - // some of the common cases. (Returning NFC or - // preserving normal form is neither a requirement nor - // a possibility anyway). - if !c.next() { - return false - } - if c.dst[oldPDst] == 'I' && c.pDst == oldPDst+1 && c.src[c.pSrc] == 0xcc { - s := "" - switch c.src[c.pSrc+1] { - case 0x80: // U+0300 COMBINING GRAVE ACCENT - s = "\u00cc" // U+00CC LATIN CAPITAL LETTER I WITH GRAVE - case 0x81: // U+0301 COMBINING ACUTE ACCENT - s = "\u00cd" // U+00CD LATIN CAPITAL LETTER I WITH ACUTE - case 0x83: // U+0303 COMBINING TILDE - s = "\u0128" // U+0128 LATIN CAPITAL LETTER I WITH TILDE - case 0x88: // U+0308 COMBINING DIAERESIS - s = "\u00cf" // U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS - default: - } - if s != "" { - c.pDst = oldPDst - return c.writeString(s) - } - } - } - return c.copy() - default: - c.copy() - } - } - return i == maxIgnorable - } -} - -// TODO: implement ltUpperSpan (low priority: complex and infrequent). - -func aztrUpper(f mapFunc) mapFunc { - return func(c *context) bool { - // i→İ; - if c.src[c.pSrc] == 'i' { - return c.writeString("İ") - } - return f(c) - } -} - -func aztrLower(c *context) (done bool) { - // From CLDR: - // # I and i-dotless; I-dot and i are case pairs in Turkish and Azeri - // # 0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE - // İ→i; - // # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. - // # This matches the behavior of the canonically equivalent I-dot_above - // # 0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE - // # When lowercasing, unless an I is before a dot_above, it turns into a dotless i. - // # 0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I - // I([^[:ccc=Not_Reordered:][:ccc=Above:]]*)\u0307 → i$1 ; - // I→ı ; - // ::Any-Lower(); - if c.hasPrefix("\u0130") { // İ - return c.writeString("i") - } - if c.src[c.pSrc] != 'I' { - return lower(c) - } - - // We ignore the lower-case I for now, but insert it later when we know - // which form we need. - start := c.pSrc + c.sz - - i := 0 -Loop: - // We check for up to n ignorables before \u0307. As \u0307 is an - // ignorable as well, n is maxIgnorable-1. - for ; i < maxIgnorable && c.next(); i++ { - switch c.info.cccType() { - case cccAbove: - if c.hasPrefix("\u0307") { - return c.writeString("i") && c.writeBytes(c.src[start:c.pSrc]) // ignore U+0307 - } - done = true - break Loop - case cccZero: - c.unreadRune() - done = true - break Loop - default: - // We'll write this rune after we know which starter to use. - } - } - if i == maxIgnorable { - done = true - } - return c.writeString("ı") && c.writeBytes(c.src[start:c.pSrc+c.sz]) && done -} - -// aztrLowerSpan would be the same as isLower. - -func nlTitle(c *context) bool { - // From CLDR: - // # Special titlecasing for Dutch initial "ij". - // ::Any-Title(); - // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) - // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; - if c.src[c.pSrc] != 'I' && c.src[c.pSrc] != 'i' { - return title(c) - } - - if !c.writeString("I") || !c.next() { - return false - } - if c.src[c.pSrc] == 'j' || c.src[c.pSrc] == 'J' { - return c.writeString("J") - } - c.unreadRune() - return true -} - -func nlTitleSpan(c *context) bool { - // From CLDR: - // # Special titlecasing for Dutch initial "ij". - // ::Any-Title(); - // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) - // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; - if c.src[c.pSrc] != 'I' { - return isTitle(c) - } - if !c.next() || c.src[c.pSrc] == 'j' { - return false - } - if c.src[c.pSrc] != 'J' { - c.unreadRune() - } - return true -} - -// Not part of CLDR, but see https://unicode.org/cldr/trac/ticket/7078. -func afnlRewrite(c *context) { - if c.hasPrefix("'") || c.hasPrefix("’") { - c.isMidWord = true - } -} diff --git a/backend/vendor/golang.org/x/text/cases/tables10.0.0.go b/backend/vendor/golang.org/x/text/cases/tables10.0.0.go deleted file mode 100644 index ca992310..00000000 --- a/backend/vendor/golang.org/x/text/cases/tables10.0.0.go +++ /dev/null @@ -1,2256 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 - -package cases - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "10.0.0" - -var xorData string = "" + // Size: 185 bytes - "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + - "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + - "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + - "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + - "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + - "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + - "\x0b!\x10\x00\x0b!0\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a\x00\x02:" + - "\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01*" + - "\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00\x01\x22" - -var exceptions string = "" + // Size: 2068 bytes - "\x00\x12\x12μΜΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x09II\x13\x1bʼnʼNʼN\x11" + - "\x09sSS\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj" + - "\x12\x12njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x1bǰJ̌J̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10" + - "\x12DZDz\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x1bⱾⱾ\x10\x1bⱿⱿ\x10\x1bⱯⱯ\x10\x1bⱭⱭ\x10" + - "\x1bⱰⱰ\x10\x1bꞫꞫ\x10\x1bꞬꞬ\x10\x1bꞍꞍ\x10\x1bꞪꞪ\x10\x1bꞮꞮ\x10\x1bⱢⱢ\x10" + - "\x1bꞭꞭ\x10\x1bⱮⱮ\x10\x1bⱤⱤ\x10\x1bꞱꞱ\x10\x1bꞲꞲ\x10\x1bꞰꞰ2\x12ιΙΙ\x166ΐ" + - "Ϊ́Ϊ́\x166ΰΫ́Ϋ́\x12\x12σΣΣ\x12\x12βΒΒ\x12\x12θΘΘ\x12\x12φΦΦ\x12" + - "\x12πΠΠ\x12\x12κΚΚ\x12\x12ρΡΡ\x12\x12εΕΕ\x14$եւԵՒԵւ\x12\x12вВВ\x12\x12дД" + - "Д\x12\x12оОО\x12\x12сСС\x12\x12тТТ\x12\x12тТТ\x12\x12ъЪЪ\x12\x12ѣѢѢ\x13" + - "\x1bꙋꙊꙊ\x13\x1bẖH̱H̱\x13\x1bẗT̈T̈\x13\x1bẘW̊W̊\x13\x1bẙY̊Y̊\x13\x1ba" + - "ʾAʾAʾ\x13\x1bṡṠṠ\x12\x10ssß\x14$ὐΥ̓Υ̓\x166ὒΥ̓̀Υ̓̀\x166ὔΥ̓́Υ̓́\x166" + - "ὖΥ̓͂Υ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ" + - "\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ" + - "\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ" + - "\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨ" + - "Ι\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15" + - "\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ" + - "\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ" + - "\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰι" + - "ᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ\x14$ᾶΑ͂Α͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12" + - "\x12ιΙΙ\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14$ῆΗ͂Η͂\x166ῆιΗ͂Ιῌ͂\x14\x1c" + - "ηιῃΗΙ\x166ῒΪ̀Ϊ̀\x166ΐΪ́Ϊ́\x14$ῖΙ͂Ι͂\x166ῗΪ͂Ϊ͂\x166ῢΫ̀Ϋ" + - "̀\x166ΰΫ́Ϋ́\x14$ῤΡ̓Ρ̓\x14$ῦΥ͂Υ͂\x166ῧΫ͂Ϋ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙ" + - "ῼ\x14$ώιΏΙΏͅ\x14$ῶΩ͂Ω͂\x166ῶιΩ͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk" + - "\x12\x10åå\x12\x10ɫɫ\x12\x10ɽɽ\x10\x12ȺȺ\x10\x12ȾȾ\x12\x10ɑɑ\x12\x10ɱɱ" + - "\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ\x12\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ" + - "\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ\x12\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFF" + - "Ff\x12\x12fiFIFi\x12\x12flFLFl\x13\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12" + - "stSTSt\x12\x12stSTSt\x14$մնՄՆՄն\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄ" + - "ԽՄխ" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// caseTrie. Total size: 11892 bytes (11.61 KiB). Checksum: c6f15484b7653775. -type caseTrie struct{} - -func newCaseTrie(i int) *caseTrie { - return &caseTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 18: - return uint16(caseValues[n<<6+uint32(b)]) - default: - n -= 18 - return uint16(sparse.lookup(n, b)) - } -} - -// caseValues: 20 blocks, 1280 entries, 2560 bytes -// The third block is the zero block. -var caseValues = [1280]uint16{ - // Block 0x0, offset 0x0 - 0x27: 0x0054, - 0x2e: 0x0054, - 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, - 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, - // Block 0x1, offset 0x40 - 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, - 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, - 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, - 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, - 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, - 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, - 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, - 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, - 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, - 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, - 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, - 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, - 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, - 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, - 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, - 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, - 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, - 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, - 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, - 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, - // Block 0x4, offset 0x100 - 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x02db, 0x105: 0x0359, - 0x106: 0x03da, 0x107: 0x043b, 0x108: 0x04b9, 0x109: 0x053a, 0x10a: 0x059b, 0x10b: 0x0619, - 0x10c: 0x069a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, - 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, - 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, - 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, - 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, - 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, - 0x130: 0x06fa, 0x131: 0x07ab, 0x132: 0x0829, 0x133: 0x08aa, 0x134: 0x0113, 0x135: 0x0112, - 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, - 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, - // Block 0x5, offset 0x140 - 0x140: 0x0a8a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, - 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, - 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x0b0a, 0x151: 0x0b8a, - 0x152: 0x0c0a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, - 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x0c8a, 0x15d: 0x0012, - 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x0d0a, 0x162: 0x0012, 0x163: 0x2052, - 0x164: 0x0012, 0x165: 0x0d8a, 0x166: 0x0e0a, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, - 0x16a: 0x0e8a, 0x16b: 0x0f0a, 0x16c: 0x0f8a, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, - 0x170: 0x0012, 0x171: 0x100a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, - 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, - 0x17c: 0x0012, 0x17d: 0x108a, 0x17e: 0x0012, 0x17f: 0x0012, - // Block 0x6, offset 0x180 - 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, - 0x186: 0x0012, 0x187: 0x110a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, - 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, - 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, - 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x118a, - 0x19e: 0x120a, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, - 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, - 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, - 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, - 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, - 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x128d, - 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, - 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, - 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, - 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, - 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, - 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, - 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, - 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, - 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, - 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, - // Block 0x8, offset 0x200 - 0x204: 0x0004, 0x205: 0x0004, - 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, - 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x130a, 0x211: 0x2013, - 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, - 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, - 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, - 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, - 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, - 0x230: 0x144a, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, - 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, - 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, - // Block 0x9, offset 0x240 - 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x158a, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, - 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, - 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x160a, 0x251: 0x168a, - 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x170a, 0x256: 0x178a, 0x257: 0x1812, - 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, - 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, - 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, - 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, - 0x270: 0x180a, 0x271: 0x188a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x190a, - 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, - 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, - // Block 0xa, offset 0x280 - 0x280: 0x0812, 0x281: 0x0812, 0x282: 0x0812, 0x283: 0x0812, 0x284: 0x0812, 0x285: 0x0812, - 0x288: 0x0813, 0x289: 0x0813, 0x28a: 0x0813, 0x28b: 0x0813, - 0x28c: 0x0813, 0x28d: 0x0813, 0x290: 0x239a, 0x291: 0x0812, - 0x292: 0x247a, 0x293: 0x0812, 0x294: 0x25ba, 0x295: 0x0812, 0x296: 0x26fa, 0x297: 0x0812, - 0x299: 0x0813, 0x29b: 0x0813, 0x29d: 0x0813, - 0x29f: 0x0813, 0x2a0: 0x0812, 0x2a1: 0x0812, 0x2a2: 0x0812, 0x2a3: 0x0812, - 0x2a4: 0x0812, 0x2a5: 0x0812, 0x2a6: 0x0812, 0x2a7: 0x0812, 0x2a8: 0x0813, 0x2a9: 0x0813, - 0x2aa: 0x0813, 0x2ab: 0x0813, 0x2ac: 0x0813, 0x2ad: 0x0813, 0x2ae: 0x0813, 0x2af: 0x0813, - 0x2b0: 0x8b52, 0x2b1: 0x8b52, 0x2b2: 0x8e52, 0x2b3: 0x8e52, 0x2b4: 0x9152, 0x2b5: 0x9152, - 0x2b6: 0x9452, 0x2b7: 0x9452, 0x2b8: 0x9752, 0x2b9: 0x9752, 0x2ba: 0x9a52, 0x2bb: 0x9a52, - 0x2bc: 0x4d52, 0x2bd: 0x4d52, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x283a, 0x2c1: 0x292a, 0x2c2: 0x2a1a, 0x2c3: 0x2b0a, 0x2c4: 0x2bfa, 0x2c5: 0x2cea, - 0x2c6: 0x2dda, 0x2c7: 0x2eca, 0x2c8: 0x2fb9, 0x2c9: 0x30a9, 0x2ca: 0x3199, 0x2cb: 0x3289, - 0x2cc: 0x3379, 0x2cd: 0x3469, 0x2ce: 0x3559, 0x2cf: 0x3649, 0x2d0: 0x373a, 0x2d1: 0x382a, - 0x2d2: 0x391a, 0x2d3: 0x3a0a, 0x2d4: 0x3afa, 0x2d5: 0x3bea, 0x2d6: 0x3cda, 0x2d7: 0x3dca, - 0x2d8: 0x3eb9, 0x2d9: 0x3fa9, 0x2da: 0x4099, 0x2db: 0x4189, 0x2dc: 0x4279, 0x2dd: 0x4369, - 0x2de: 0x4459, 0x2df: 0x4549, 0x2e0: 0x463a, 0x2e1: 0x472a, 0x2e2: 0x481a, 0x2e3: 0x490a, - 0x2e4: 0x49fa, 0x2e5: 0x4aea, 0x2e6: 0x4bda, 0x2e7: 0x4cca, 0x2e8: 0x4db9, 0x2e9: 0x4ea9, - 0x2ea: 0x4f99, 0x2eb: 0x5089, 0x2ec: 0x5179, 0x2ed: 0x5269, 0x2ee: 0x5359, 0x2ef: 0x5449, - 0x2f0: 0x0812, 0x2f1: 0x0812, 0x2f2: 0x553a, 0x2f3: 0x564a, 0x2f4: 0x571a, - 0x2f6: 0x57fa, 0x2f7: 0x58da, 0x2f8: 0x0813, 0x2f9: 0x0813, 0x2fa: 0x8b53, 0x2fb: 0x8b53, - 0x2fc: 0x5a19, 0x2fd: 0x0004, 0x2fe: 0x5aea, 0x2ff: 0x0004, - // Block 0xc, offset 0x300 - 0x300: 0x0004, 0x301: 0x0004, 0x302: 0x5b6a, 0x303: 0x5c7a, 0x304: 0x5d4a, - 0x306: 0x5e2a, 0x307: 0x5f0a, 0x308: 0x8e53, 0x309: 0x8e53, 0x30a: 0x9153, 0x30b: 0x9153, - 0x30c: 0x6049, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0812, 0x311: 0x0812, - 0x312: 0x611a, 0x313: 0x625a, 0x316: 0x639a, 0x317: 0x647a, - 0x318: 0x0813, 0x319: 0x0813, 0x31a: 0x9453, 0x31b: 0x9453, 0x31d: 0x0004, - 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0x65ba, 0x323: 0x66fa, - 0x324: 0x683a, 0x325: 0x0912, 0x326: 0x691a, 0x327: 0x69fa, 0x328: 0x0813, 0x329: 0x0813, - 0x32a: 0x9a53, 0x32b: 0x9a53, 0x32c: 0x0913, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004, - 0x332: 0x6b3a, 0x333: 0x6c4a, 0x334: 0x6d1a, - 0x336: 0x6dfa, 0x337: 0x6eda, 0x338: 0x9753, 0x339: 0x9753, 0x33a: 0x4d53, 0x33b: 0x4d53, - 0x33c: 0x7019, 0x33d: 0x0004, 0x33e: 0x0004, - // Block 0xd, offset 0x340 - 0x342: 0x0013, - 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013, - 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013, - 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013, - 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013, - 0x364: 0x0013, 0x366: 0x70eb, 0x368: 0x0013, - 0x36a: 0x714b, 0x36b: 0x718b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012, - 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x9d53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010, - 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012, - 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013, - // Block 0xe, offset 0x380 - 0x380: 0x1a13, 0x381: 0x1a13, 0x382: 0x1e13, 0x383: 0x1e13, 0x384: 0x1a13, 0x385: 0x1a13, - 0x386: 0x2613, 0x387: 0x2613, 0x388: 0x2a13, 0x389: 0x2a13, 0x38a: 0x2e13, 0x38b: 0x2e13, - 0x38c: 0x2a13, 0x38d: 0x2a13, 0x38e: 0x2613, 0x38f: 0x2613, 0x390: 0xa052, 0x391: 0xa052, - 0x392: 0xa352, 0x393: 0xa352, 0x394: 0xa652, 0x395: 0xa652, 0x396: 0xa352, 0x397: 0xa352, - 0x398: 0xa052, 0x399: 0xa052, 0x39a: 0x1a12, 0x39b: 0x1a12, 0x39c: 0x1e12, 0x39d: 0x1e12, - 0x39e: 0x1a12, 0x39f: 0x1a12, 0x3a0: 0x2612, 0x3a1: 0x2612, 0x3a2: 0x2a12, 0x3a3: 0x2a12, - 0x3a4: 0x2e12, 0x3a5: 0x2e12, 0x3a6: 0x2a12, 0x3a7: 0x2a12, 0x3a8: 0x2612, 0x3a9: 0x2612, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x6552, 0x3c1: 0x6552, 0x3c2: 0x6552, 0x3c3: 0x6552, 0x3c4: 0x6552, 0x3c5: 0x6552, - 0x3c6: 0x6552, 0x3c7: 0x6552, 0x3c8: 0x6552, 0x3c9: 0x6552, 0x3ca: 0x6552, 0x3cb: 0x6552, - 0x3cc: 0x6552, 0x3cd: 0x6552, 0x3ce: 0x6552, 0x3cf: 0x6552, 0x3d0: 0xa952, 0x3d1: 0xa952, - 0x3d2: 0xa952, 0x3d3: 0xa952, 0x3d4: 0xa952, 0x3d5: 0xa952, 0x3d6: 0xa952, 0x3d7: 0xa952, - 0x3d8: 0xa952, 0x3d9: 0xa952, 0x3da: 0xa952, 0x3db: 0xa952, 0x3dc: 0xa952, 0x3dd: 0xa952, - 0x3de: 0xa952, 0x3e0: 0x0113, 0x3e1: 0x0112, 0x3e2: 0x71eb, 0x3e3: 0x8853, - 0x3e4: 0x724b, 0x3e5: 0x72aa, 0x3e6: 0x730a, 0x3e7: 0x0f13, 0x3e8: 0x0f12, 0x3e9: 0x0313, - 0x3ea: 0x0312, 0x3eb: 0x0713, 0x3ec: 0x0712, 0x3ed: 0x736b, 0x3ee: 0x73cb, 0x3ef: 0x742b, - 0x3f0: 0x748b, 0x3f1: 0x0012, 0x3f2: 0x0113, 0x3f3: 0x0112, 0x3f4: 0x0012, 0x3f5: 0x0313, - 0x3f6: 0x0312, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012, - 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0x74eb, 0x3ff: 0x754b, - // Block 0x10, offset 0x400 - 0x400: 0x0113, 0x401: 0x0112, 0x402: 0x0113, 0x403: 0x0112, 0x404: 0x0113, 0x405: 0x0112, - 0x406: 0x0113, 0x407: 0x0112, 0x408: 0x0014, 0x409: 0x0014, 0x40a: 0x0014, 0x40b: 0x0713, - 0x40c: 0x0712, 0x40d: 0x75ab, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0113, 0x411: 0x0112, - 0x412: 0x0113, 0x413: 0x0112, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0113, 0x417: 0x0112, - 0x418: 0x0113, 0x419: 0x0112, 0x41a: 0x0113, 0x41b: 0x0112, 0x41c: 0x0113, 0x41d: 0x0112, - 0x41e: 0x0113, 0x41f: 0x0112, 0x420: 0x0113, 0x421: 0x0112, 0x422: 0x0113, 0x423: 0x0112, - 0x424: 0x0113, 0x425: 0x0112, 0x426: 0x0113, 0x427: 0x0112, 0x428: 0x0113, 0x429: 0x0112, - 0x42a: 0x760b, 0x42b: 0x766b, 0x42c: 0x76cb, 0x42d: 0x772b, 0x42e: 0x778b, - 0x430: 0x77eb, 0x431: 0x784b, 0x432: 0x78ab, 0x433: 0xac53, 0x434: 0x0113, 0x435: 0x0112, - 0x436: 0x0113, 0x437: 0x0112, - // Block 0x11, offset 0x440 - 0x440: 0x790a, 0x441: 0x798a, 0x442: 0x7a0a, 0x443: 0x7a8a, 0x444: 0x7b3a, 0x445: 0x7bea, - 0x446: 0x7c6a, - 0x453: 0x7cea, 0x454: 0x7dca, 0x455: 0x7eaa, 0x456: 0x7f8a, 0x457: 0x806a, - 0x45d: 0x0010, - 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010, - 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010, - 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010, - 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010, - 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010, - 0x47c: 0x0010, 0x47e: 0x0010, - // Block 0x12, offset 0x480 - 0x480: 0x2213, 0x481: 0x2213, 0x482: 0x2613, 0x483: 0x2613, 0x484: 0x2213, 0x485: 0x2213, - 0x486: 0x2e13, 0x487: 0x2e13, 0x488: 0x2213, 0x489: 0x2213, 0x48a: 0x2613, 0x48b: 0x2613, - 0x48c: 0x2213, 0x48d: 0x2213, 0x48e: 0x3e13, 0x48f: 0x3e13, 0x490: 0x2213, 0x491: 0x2213, - 0x492: 0x2613, 0x493: 0x2613, 0x494: 0x2213, 0x495: 0x2213, 0x496: 0x2e13, 0x497: 0x2e13, - 0x498: 0x2213, 0x499: 0x2213, 0x49a: 0x2613, 0x49b: 0x2613, 0x49c: 0x2213, 0x49d: 0x2213, - 0x49e: 0xb553, 0x49f: 0xb553, 0x4a0: 0xb853, 0x4a1: 0xb853, 0x4a2: 0x2212, 0x4a3: 0x2212, - 0x4a4: 0x2612, 0x4a5: 0x2612, 0x4a6: 0x2212, 0x4a7: 0x2212, 0x4a8: 0x2e12, 0x4a9: 0x2e12, - 0x4aa: 0x2212, 0x4ab: 0x2212, 0x4ac: 0x2612, 0x4ad: 0x2612, 0x4ae: 0x2212, 0x4af: 0x2212, - 0x4b0: 0x3e12, 0x4b1: 0x3e12, 0x4b2: 0x2212, 0x4b3: 0x2212, 0x4b4: 0x2612, 0x4b5: 0x2612, - 0x4b6: 0x2212, 0x4b7: 0x2212, 0x4b8: 0x2e12, 0x4b9: 0x2e12, 0x4ba: 0x2212, 0x4bb: 0x2212, - 0x4bc: 0x2612, 0x4bd: 0x2612, 0x4be: 0x2212, 0x4bf: 0x2212, - // Block 0x13, offset 0x4c0 - 0x4c2: 0x0010, - 0x4c7: 0x0010, 0x4c9: 0x0010, 0x4cb: 0x0010, - 0x4cd: 0x0010, 0x4ce: 0x0010, 0x4cf: 0x0010, 0x4d1: 0x0010, - 0x4d2: 0x0010, 0x4d4: 0x0010, 0x4d7: 0x0010, - 0x4d9: 0x0010, 0x4db: 0x0010, 0x4dd: 0x0010, - 0x4df: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, - 0x4e4: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, 0x4e9: 0x0010, - 0x4ea: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, - 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, - 0x4f6: 0x0010, 0x4f7: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, - 0x4fc: 0x0010, 0x4fe: 0x0010, -} - -// caseIndex: 25 blocks, 1600 entries, 3200 bytes -// Block 0 is the zero block. -var caseIndex = [1600]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x12, 0xc3: 0x13, 0xc4: 0x14, 0xc5: 0x15, 0xc6: 0x01, 0xc7: 0x02, - 0xc8: 0x16, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x17, 0xcc: 0x18, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, - 0xd0: 0x19, 0xd1: 0x1a, 0xd2: 0x1b, 0xd3: 0x1c, 0xd4: 0x1d, 0xd5: 0x1e, 0xd6: 0x1f, 0xd7: 0x20, - 0xd8: 0x21, 0xd9: 0x22, 0xda: 0x23, 0xdb: 0x24, 0xdc: 0x25, 0xdd: 0x26, 0xde: 0x27, 0xdf: 0x28, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, - 0xf0: 0x14, 0xf3: 0x16, - // Block 0x4, offset 0x100 - 0x120: 0x29, 0x121: 0x2a, 0x122: 0x2b, 0x123: 0x2c, 0x124: 0x2d, 0x125: 0x2e, 0x126: 0x2f, 0x127: 0x30, - 0x128: 0x31, 0x129: 0x32, 0x12a: 0x33, 0x12b: 0x34, 0x12c: 0x35, 0x12d: 0x36, 0x12e: 0x37, 0x12f: 0x38, - 0x130: 0x39, 0x131: 0x3a, 0x132: 0x3b, 0x133: 0x3c, 0x134: 0x3d, 0x135: 0x3e, 0x136: 0x3f, 0x137: 0x40, - 0x138: 0x41, 0x139: 0x42, 0x13a: 0x43, 0x13b: 0x44, 0x13c: 0x45, 0x13d: 0x46, 0x13e: 0x47, 0x13f: 0x48, - // Block 0x5, offset 0x140 - 0x140: 0x49, 0x141: 0x4a, 0x142: 0x4b, 0x143: 0x4c, 0x144: 0x23, 0x145: 0x23, 0x146: 0x23, 0x147: 0x23, - 0x148: 0x23, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, - 0x150: 0x54, 0x151: 0x23, 0x152: 0x23, 0x153: 0x23, 0x154: 0x23, 0x155: 0x23, 0x156: 0x23, 0x157: 0x23, - 0x158: 0x23, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, - 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, - 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69, - 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71, - 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a, - // Block 0x6, offset 0x180 - 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0b, 0x185: 0x79, 0x186: 0x7a, - 0x192: 0x7b, 0x193: 0x0c, - 0x1b0: 0x7c, 0x1b1: 0x0d, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81, - 0x1b8: 0x82, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x23, 0x1c6: 0x87, - // Block 0x8, offset 0x200 - 0x200: 0x88, 0x201: 0x23, 0x202: 0x23, 0x203: 0x23, 0x204: 0x23, 0x205: 0x23, 0x206: 0x23, 0x207: 0x23, - 0x208: 0x23, 0x209: 0x23, 0x20a: 0x23, 0x20b: 0x23, 0x20c: 0x23, 0x20d: 0x23, 0x20e: 0x23, 0x20f: 0x23, - 0x210: 0x23, 0x211: 0x23, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x23, 0x215: 0x23, 0x216: 0x23, 0x217: 0x23, - 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x0e, 0x21f: 0x91, - 0x220: 0x92, 0x221: 0x93, 0x222: 0x23, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98, - 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0, - 0x230: 0x23, 0x231: 0x23, 0x232: 0x23, 0x233: 0x23, 0x234: 0x23, 0x235: 0x23, 0x236: 0x23, 0x237: 0x23, - 0x238: 0x23, 0x239: 0x23, 0x23a: 0x23, 0x23b: 0x23, 0x23c: 0x23, 0x23d: 0x23, 0x23e: 0x23, 0x23f: 0x23, - // Block 0x9, offset 0x240 - 0x240: 0x23, 0x241: 0x23, 0x242: 0x23, 0x243: 0x23, 0x244: 0x23, 0x245: 0x23, 0x246: 0x23, 0x247: 0x23, - 0x248: 0x23, 0x249: 0x23, 0x24a: 0x23, 0x24b: 0x23, 0x24c: 0x23, 0x24d: 0x23, 0x24e: 0x23, 0x24f: 0x23, - 0x250: 0x23, 0x251: 0x23, 0x252: 0x23, 0x253: 0x23, 0x254: 0x23, 0x255: 0x23, 0x256: 0x23, 0x257: 0x23, - 0x258: 0x23, 0x259: 0x23, 0x25a: 0x23, 0x25b: 0x23, 0x25c: 0x23, 0x25d: 0x23, 0x25e: 0x23, 0x25f: 0x23, - 0x260: 0x23, 0x261: 0x23, 0x262: 0x23, 0x263: 0x23, 0x264: 0x23, 0x265: 0x23, 0x266: 0x23, 0x267: 0x23, - 0x268: 0x23, 0x269: 0x23, 0x26a: 0x23, 0x26b: 0x23, 0x26c: 0x23, 0x26d: 0x23, 0x26e: 0x23, 0x26f: 0x23, - 0x270: 0x23, 0x271: 0x23, 0x272: 0x23, 0x273: 0x23, 0x274: 0x23, 0x275: 0x23, 0x276: 0x23, 0x277: 0x23, - 0x278: 0x23, 0x279: 0x23, 0x27a: 0x23, 0x27b: 0x23, 0x27c: 0x23, 0x27d: 0x23, 0x27e: 0x23, 0x27f: 0x23, - // Block 0xa, offset 0x280 - 0x280: 0x23, 0x281: 0x23, 0x282: 0x23, 0x283: 0x23, 0x284: 0x23, 0x285: 0x23, 0x286: 0x23, 0x287: 0x23, - 0x288: 0x23, 0x289: 0x23, 0x28a: 0x23, 0x28b: 0x23, 0x28c: 0x23, 0x28d: 0x23, 0x28e: 0x23, 0x28f: 0x23, - 0x290: 0x23, 0x291: 0x23, 0x292: 0x23, 0x293: 0x23, 0x294: 0x23, 0x295: 0x23, 0x296: 0x23, 0x297: 0x23, - 0x298: 0x23, 0x299: 0x23, 0x29a: 0x23, 0x29b: 0x23, 0x29c: 0x23, 0x29d: 0x23, 0x29e: 0xa1, 0x29f: 0xa2, - // Block 0xb, offset 0x2c0 - 0x2ec: 0x0f, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5, - 0x2f0: 0x23, 0x2f1: 0x23, 0x2f2: 0x23, 0x2f3: 0x23, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9, - 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x23, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0, - // Block 0xc, offset 0x300 - 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x23, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5, - 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb, - 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1, - 0x318: 0x23, 0x319: 0x23, 0x31a: 0x23, 0x31b: 0x23, 0x31c: 0xc2, 0x31d: 0xc3, - 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9, - 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf, - 0x330: 0x23, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2, - // Block 0xd, offset 0x340 - 0x340: 0xd3, 0x341: 0xd4, 0x342: 0xd5, 0x343: 0xd6, 0x344: 0xd7, 0x345: 0xd8, 0x346: 0xd9, 0x347: 0xda, - 0x348: 0xdb, 0x34a: 0xdc, 0x34b: 0xdd, 0x34c: 0xde, 0x34d: 0xdf, - 0x350: 0xe0, 0x351: 0xe1, 0x352: 0xe2, 0x353: 0xe3, 0x356: 0xe4, 0x357: 0xe5, - 0x358: 0xe6, 0x359: 0xe7, 0x35a: 0xe8, 0x35b: 0xe9, 0x35c: 0xea, - 0x362: 0xeb, 0x363: 0xec, - 0x368: 0xed, 0x369: 0xee, 0x36a: 0xef, 0x36b: 0xf0, - 0x370: 0xf1, 0x371: 0xf2, 0x372: 0xf3, 0x374: 0xf4, 0x375: 0xf5, - // Block 0xe, offset 0x380 - 0x380: 0x23, 0x381: 0x23, 0x382: 0x23, 0x383: 0x23, 0x384: 0x23, 0x385: 0x23, 0x386: 0x23, 0x387: 0x23, - 0x388: 0x23, 0x389: 0x23, 0x38a: 0x23, 0x38b: 0x23, 0x38c: 0x23, 0x38d: 0x23, 0x38e: 0xf6, - 0x390: 0x23, 0x391: 0xf7, 0x392: 0x23, 0x393: 0x23, 0x394: 0x23, 0x395: 0xf8, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x23, 0x3c1: 0x23, 0x3c2: 0x23, 0x3c3: 0x23, 0x3c4: 0x23, 0x3c5: 0x23, 0x3c6: 0x23, 0x3c7: 0x23, - 0x3c8: 0x23, 0x3c9: 0x23, 0x3ca: 0x23, 0x3cb: 0x23, 0x3cc: 0x23, 0x3cd: 0x23, 0x3ce: 0x23, 0x3cf: 0x23, - 0x3d0: 0xf7, - // Block 0x10, offset 0x400 - 0x410: 0x23, 0x411: 0x23, 0x412: 0x23, 0x413: 0x23, 0x414: 0x23, 0x415: 0x23, 0x416: 0x23, 0x417: 0x23, - 0x418: 0x23, 0x419: 0xf9, - // Block 0x11, offset 0x440 - 0x460: 0x23, 0x461: 0x23, 0x462: 0x23, 0x463: 0x23, 0x464: 0x23, 0x465: 0x23, 0x466: 0x23, 0x467: 0x23, - 0x468: 0xf0, 0x469: 0xfa, 0x46b: 0xfb, 0x46c: 0xfc, 0x46d: 0xfd, 0x46e: 0xfe, - 0x47c: 0x23, 0x47d: 0xff, 0x47e: 0x100, 0x47f: 0x101, - // Block 0x12, offset 0x480 - 0x4b0: 0x23, 0x4b1: 0x102, 0x4b2: 0x103, - // Block 0x13, offset 0x4c0 - 0x4c5: 0x104, 0x4c6: 0x105, - 0x4c9: 0x106, - 0x4d0: 0x107, 0x4d1: 0x108, 0x4d2: 0x109, 0x4d3: 0x10a, 0x4d4: 0x10b, 0x4d5: 0x10c, 0x4d6: 0x10d, 0x4d7: 0x10e, - 0x4d8: 0x10f, 0x4d9: 0x110, 0x4da: 0x111, 0x4db: 0x112, 0x4dc: 0x113, 0x4dd: 0x114, 0x4de: 0x115, 0x4df: 0x116, - 0x4e8: 0x117, 0x4e9: 0x118, 0x4ea: 0x119, - // Block 0x14, offset 0x500 - 0x500: 0x11a, - 0x520: 0x23, 0x521: 0x23, 0x522: 0x23, 0x523: 0x11b, 0x524: 0x10, 0x525: 0x11c, - 0x538: 0x11d, 0x539: 0x11, 0x53a: 0x11e, - // Block 0x15, offset 0x540 - 0x544: 0x11f, 0x545: 0x120, 0x546: 0x121, - 0x54f: 0x122, - // Block 0x16, offset 0x580 - 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, - 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x123, 0x5c1: 0x124, 0x5c4: 0x124, 0x5c5: 0x124, 0x5c6: 0x124, 0x5c7: 0x125, - // Block 0x18, offset 0x600 - 0x620: 0x15, -} - -// sparseOffsets: 277 entries, 554 bytes -var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x35, 0x38, 0x3c, 0x3f, 0x43, 0x4d, 0x4f, 0x54, 0x64, 0x6b, 0x70, 0x7e, 0x7f, 0x8d, 0x9c, 0xa6, 0xa9, 0xaf, 0xb7, 0xba, 0xbc, 0xca, 0xd0, 0xde, 0xe9, 0xf5, 0x100, 0x10c, 0x116, 0x122, 0x12d, 0x139, 0x145, 0x14d, 0x155, 0x15f, 0x16a, 0x176, 0x17d, 0x188, 0x18d, 0x195, 0x198, 0x19d, 0x1a1, 0x1a5, 0x1ac, 0x1b5, 0x1bd, 0x1be, 0x1c7, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e7, 0x1eb, 0x1ee, 0x1f0, 0x1f3, 0x1f8, 0x1f9, 0x1fb, 0x1fd, 0x1ff, 0x206, 0x20b, 0x20f, 0x218, 0x21b, 0x21e, 0x224, 0x225, 0x230, 0x231, 0x232, 0x237, 0x244, 0x24c, 0x254, 0x25d, 0x266, 0x26f, 0x274, 0x277, 0x280, 0x28d, 0x28f, 0x296, 0x298, 0x2a4, 0x2a5, 0x2b0, 0x2b8, 0x2c0, 0x2c6, 0x2c7, 0x2d5, 0x2da, 0x2dd, 0x2e2, 0x2e6, 0x2ec, 0x2f1, 0x2f4, 0x2f9, 0x2fe, 0x2ff, 0x305, 0x307, 0x308, 0x30a, 0x30c, 0x30f, 0x310, 0x312, 0x315, 0x31b, 0x31f, 0x321, 0x326, 0x32d, 0x331, 0x33a, 0x33b, 0x343, 0x347, 0x34c, 0x354, 0x35a, 0x360, 0x36a, 0x36f, 0x378, 0x37e, 0x385, 0x389, 0x391, 0x393, 0x395, 0x398, 0x39a, 0x39c, 0x39d, 0x39e, 0x3a0, 0x3a2, 0x3a8, 0x3ad, 0x3af, 0x3b5, 0x3b8, 0x3ba, 0x3c0, 0x3c5, 0x3c7, 0x3c8, 0x3c9, 0x3ca, 0x3cc, 0x3ce, 0x3d0, 0x3d3, 0x3d5, 0x3d8, 0x3e0, 0x3e3, 0x3e7, 0x3ef, 0x3f1, 0x3f2, 0x3f3, 0x3f5, 0x3fb, 0x3fd, 0x3fe, 0x400, 0x402, 0x404, 0x411, 0x412, 0x413, 0x417, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x421, 0x425, 0x42b, 0x42d, 0x434, 0x437, 0x43b, 0x441, 0x44a, 0x450, 0x456, 0x460, 0x46a, 0x46c, 0x473, 0x479, 0x47f, 0x485, 0x488, 0x48e, 0x491, 0x499, 0x49a, 0x4a1, 0x4a2, 0x4a5, 0x4af, 0x4b5, 0x4bb, 0x4bc, 0x4c2, 0x4c5, 0x4cd, 0x4d4, 0x4db, 0x4dc, 0x4dd, 0x4de, 0x4df, 0x4e1, 0x4e3, 0x4e5, 0x4e9, 0x4ea, 0x4ec, 0x4ed, 0x4ee, 0x4f0, 0x4f5, 0x4fa, 0x4fe, 0x4ff, 0x502, 0x506, 0x511, 0x515, 0x51d, 0x522, 0x526, 0x529, 0x52d, 0x530, 0x533, 0x538, 0x53c, 0x540, 0x544, 0x548, 0x54a, 0x54c, 0x54f, 0x554, 0x556, 0x55b, 0x564, 0x569, 0x56a, 0x56d, 0x56e, 0x56f, 0x571, 0x572, 0x573} - -// sparseValues: 1395 entries, 5580 bytes -var sparseValues = [1395]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0004, lo: 0xa8, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xaa}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0004, lo: 0xaf, hi: 0xaf}, - {value: 0x0004, lo: 0xb4, hi: 0xb4}, - {value: 0x001a, lo: 0xb5, hi: 0xb5}, - {value: 0x0054, lo: 0xb7, hi: 0xb7}, - {value: 0x0004, lo: 0xb8, hi: 0xb8}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - // Block 0x1, offset 0x9 - {value: 0x2013, lo: 0x80, hi: 0x96}, - {value: 0x2013, lo: 0x98, hi: 0x9e}, - {value: 0x009a, lo: 0x9f, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xb6}, - {value: 0x2012, lo: 0xb8, hi: 0xbe}, - {value: 0x0252, lo: 0xbf, hi: 0xbf}, - // Block 0x2, offset 0xf - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x011b, lo: 0xb0, hi: 0xb0}, - {value: 0x019a, lo: 0xb1, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb7}, - {value: 0x0012, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x0553, lo: 0xbf, hi: 0xbf}, - // Block 0x3, offset 0x18 - {value: 0x0552, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x01da, lo: 0x89, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xb7}, - {value: 0x0253, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x028a, lo: 0xbf, hi: 0xbf}, - // Block 0x4, offset 0x24 - {value: 0x0117, lo: 0x80, hi: 0x9f}, - {value: 0x2f53, lo: 0xa0, hi: 0xa0}, - {value: 0x0012, lo: 0xa1, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xb3}, - {value: 0x0012, lo: 0xb4, hi: 0xb9}, - {value: 0x090b, lo: 0xba, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x2953, lo: 0xbd, hi: 0xbd}, - {value: 0x098b, lo: 0xbe, hi: 0xbe}, - {value: 0x0a0a, lo: 0xbf, hi: 0xbf}, - // Block 0x5, offset 0x2e - {value: 0x0015, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x97}, - {value: 0x0004, lo: 0x98, hi: 0x9d}, - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0015, lo: 0xa0, hi: 0xa4}, - {value: 0x0004, lo: 0xa5, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xbf}, - // Block 0x6, offset 0x35 - {value: 0x0024, lo: 0x80, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbf}, - // Block 0x7, offset 0x38 - {value: 0x6553, lo: 0x80, hi: 0x8f}, - {value: 0x2013, lo: 0x90, hi: 0x9f}, - {value: 0x5f53, lo: 0xa0, hi: 0xaf}, - {value: 0x2012, lo: 0xb0, hi: 0xbf}, - // Block 0x8, offset 0x3c - {value: 0x5f52, lo: 0x80, hi: 0x8f}, - {value: 0x6552, lo: 0x90, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x9, offset 0x3f - {value: 0x0117, lo: 0x80, hi: 0x81}, - {value: 0x0024, lo: 0x83, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xbf}, - // Block 0xa, offset 0x43 - {value: 0x0f13, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x0316, lo: 0x89, hi: 0x8a}, - {value: 0x0716, lo: 0x8b, hi: 0x8c}, - {value: 0x0316, lo: 0x8d, hi: 0x8e}, - {value: 0x0f12, lo: 0x8f, hi: 0x8f}, - {value: 0x0117, lo: 0x90, hi: 0xbf}, - // Block 0xb, offset 0x4d - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x6553, lo: 0xb1, hi: 0xbf}, - // Block 0xc, offset 0x4f - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6853, lo: 0x90, hi: 0x96}, - {value: 0x0014, lo: 0x99, hi: 0x99}, - {value: 0x6552, lo: 0xa1, hi: 0xaf}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0xd, offset 0x54 - {value: 0x6852, lo: 0x80, hi: 0x86}, - {value: 0x198a, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0024, lo: 0x92, hi: 0x95}, - {value: 0x0034, lo: 0x96, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x99}, - {value: 0x0034, lo: 0x9a, hi: 0x9b}, - {value: 0x0024, lo: 0x9c, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa7}, - {value: 0x0024, lo: 0xa8, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xbd}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xe, offset 0x64 - {value: 0x0034, lo: 0x81, hi: 0x82}, - {value: 0x0024, lo: 0x84, hi: 0x84}, - {value: 0x0034, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb3}, - {value: 0x0054, lo: 0xb4, hi: 0xb4}, - // Block 0xf, offset 0x6b - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0024, lo: 0x90, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0014, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x10, offset 0x70 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9c}, - {value: 0x0024, lo: 0x9d, hi: 0x9e}, - {value: 0x0034, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x11, offset 0x7e - {value: 0x0010, lo: 0x80, hi: 0xbf}, - // Block 0x12, offset 0x7f - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0024, lo: 0x9f, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x13, offset 0x8d - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0034, lo: 0xb1, hi: 0xb1}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0024, lo: 0xbf, hi: 0xbf}, - // Block 0x14, offset 0x9c - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0024, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x88}, - {value: 0x0024, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8d, hi: 0xbf}, - // Block 0x15, offset 0xa6 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x16, offset 0xa9 - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xb1}, - {value: 0x0034, lo: 0xb2, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - // Block 0x17, offset 0xaf - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x99}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0xa3}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xad}, - // Block 0x18, offset 0xb7 - {value: 0x0010, lo: 0x80, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0xa0, hi: 0xaa}, - // Block 0x19, offset 0xba - {value: 0x0010, lo: 0xa0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbd}, - // Block 0x1a, offset 0xbc - {value: 0x0024, lo: 0x94, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0024, lo: 0xaa, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbf}, - // Block 0x1b, offset 0xca - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1c, offset 0xd0 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0x1d, offset 0xde - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb6, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1e, offset 0xe9 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xb1}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x1f, offset 0xf5 - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x20, offset 0x100 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x99, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x21, offset 0x10c - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x22, offset 0x116 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x85}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xbf}, - // Block 0x23, offset 0x122 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x24, offset 0x12d - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x25, offset 0x139 - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0010, lo: 0xa8, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x26, offset 0x145 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x27, offset 0x14d - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb9}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbf}, - // Block 0x28, offset 0x155 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x88}, - {value: 0x0014, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x29, offset 0x15f - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x2a, offset 0x16a - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb2}, - // Block 0x2b, offset 0x176 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x2c, offset 0x17d - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x94, hi: 0x97}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xba, hi: 0xbf}, - // Block 0x2d, offset 0x188 - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x96}, - {value: 0x0010, lo: 0x9a, hi: 0xb1}, - {value: 0x0010, lo: 0xb3, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x2e, offset 0x18d - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x94}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9f}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - // Block 0x2f, offset 0x195 - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - // Block 0x30, offset 0x198 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x31, offset 0x19d - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xb9}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - // Block 0x32, offset 0x1a1 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x33, offset 0x1a5 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0034, lo: 0x98, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0034, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x34, offset 0x1ac - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xac}, - {value: 0x0034, lo: 0xb1, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xba, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x1b5 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0024, lo: 0x82, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x86, hi: 0x87}, - {value: 0x0010, lo: 0x88, hi: 0x8c}, - {value: 0x0014, lo: 0x8d, hi: 0x97}, - {value: 0x0014, lo: 0x99, hi: 0xbc}, - // Block 0x36, offset 0x1bd - {value: 0x0034, lo: 0x86, hi: 0x86}, - // Block 0x37, offset 0x1be - {value: 0x0010, lo: 0xab, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbe}, - // Block 0x38, offset 0x1c7 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x96, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0x9e, hi: 0xa0}, - {value: 0x0010, lo: 0xa2, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xad}, - {value: 0x0014, lo: 0xb1, hi: 0xb4}, - // Block 0x39, offset 0x1ce - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x6c53, lo: 0xa0, hi: 0xbf}, - // Block 0x3a, offset 0x1d6 - {value: 0x7053, lo: 0x80, hi: 0x85}, - {value: 0x7053, lo: 0x87, hi: 0x87}, - {value: 0x7053, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x3b, offset 0x1dc - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x9a, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x3c, offset 0x1e2 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x3d, offset 0x1e7 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x82, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3e, offset 0x1eb - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3f, offset 0x1ee - {value: 0x0010, lo: 0x80, hi: 0x9a}, - {value: 0x0024, lo: 0x9d, hi: 0x9f}, - // Block 0x40, offset 0x1f0 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x7453, lo: 0xa0, hi: 0xaf}, - {value: 0x7853, lo: 0xb0, hi: 0xbf}, - // Block 0x41, offset 0x1f3 - {value: 0x7c53, lo: 0x80, hi: 0x8f}, - {value: 0x8053, lo: 0x90, hi: 0x9f}, - {value: 0x7c53, lo: 0xa0, hi: 0xaf}, - {value: 0x0813, lo: 0xb0, hi: 0xb5}, - {value: 0x0892, lo: 0xb8, hi: 0xbd}, - // Block 0x42, offset 0x1f8 - {value: 0x0010, lo: 0x81, hi: 0xbf}, - // Block 0x43, offset 0x1f9 - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0010, lo: 0xaf, hi: 0xbf}, - // Block 0x44, offset 0x1fb - {value: 0x0010, lo: 0x81, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x45, offset 0x1fd - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb8}, - // Block 0x46, offset 0x1ff - {value: 0x0010, lo: 0x80, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0034, lo: 0x94, hi: 0x94}, - {value: 0x0010, lo: 0xa0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - // Block 0x47, offset 0x206 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xac}, - {value: 0x0010, lo: 0xae, hi: 0xb0}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - // Block 0x48, offset 0x20b - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x49, offset 0x20f - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0004, lo: 0x97, hi: 0x97}, - {value: 0x0024, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0x4a, offset 0x218 - {value: 0x0014, lo: 0x8b, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x4b, offset 0x21b - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb7}, - // Block 0x4c, offset 0x21e - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x4d, offset 0x224 - {value: 0x0010, lo: 0x80, hi: 0xb5}, - // Block 0x4e, offset 0x225 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbb}, - // Block 0x4f, offset 0x230 - {value: 0x0010, lo: 0x86, hi: 0x8f}, - // Block 0x50, offset 0x231 - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x51, offset 0x232 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - // Block 0x52, offset 0x237 - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x9e}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xac}, - {value: 0x0010, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xbc}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x53, offset 0x244 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xa7, hi: 0xa7}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - {value: 0x0034, lo: 0xb5, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbc}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0x54, offset 0x24c - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x55, offset 0x254 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0030, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xab, hi: 0xab}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - {value: 0x0024, lo: 0xad, hi: 0xb3}, - // Block 0x56, offset 0x25d - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0030, lo: 0xaa, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbf}, - // Block 0x57, offset 0x266 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0030, lo: 0xb2, hi: 0xb3}, - // Block 0x58, offset 0x26f - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0x59, offset 0x274 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8d, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x5a, offset 0x277 - {value: 0x1a6a, lo: 0x80, hi: 0x80}, - {value: 0x1aea, lo: 0x81, hi: 0x81}, - {value: 0x1b6a, lo: 0x82, hi: 0x82}, - {value: 0x1bea, lo: 0x83, hi: 0x83}, - {value: 0x1c6a, lo: 0x84, hi: 0x84}, - {value: 0x1cea, lo: 0x85, hi: 0x85}, - {value: 0x1d6a, lo: 0x86, hi: 0x86}, - {value: 0x1dea, lo: 0x87, hi: 0x87}, - {value: 0x1e6a, lo: 0x88, hi: 0x88}, - // Block 0x5b, offset 0x280 - {value: 0x0024, lo: 0x90, hi: 0x92}, - {value: 0x0034, lo: 0x94, hi: 0x99}, - {value: 0x0024, lo: 0x9a, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9f}, - {value: 0x0024, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xb3}, - {value: 0x0024, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb7}, - {value: 0x0024, lo: 0xb8, hi: 0xb9}, - // Block 0x5c, offset 0x28d - {value: 0x0012, lo: 0x80, hi: 0xab}, - {value: 0x0015, lo: 0xac, hi: 0xbf}, - // Block 0x5d, offset 0x28f - {value: 0x0015, lo: 0x80, hi: 0xaa}, - {value: 0x0012, lo: 0xab, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb8}, - {value: 0x8452, lo: 0xb9, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbc}, - {value: 0x8852, lo: 0xbd, hi: 0xbd}, - {value: 0x0012, lo: 0xbe, hi: 0xbf}, - // Block 0x5e, offset 0x296 - {value: 0x0012, lo: 0x80, hi: 0x9a}, - {value: 0x0015, lo: 0x9b, hi: 0xbf}, - // Block 0x5f, offset 0x298 - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0024, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb9}, - {value: 0x0024, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbd}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x60, offset 0x2a4 - {value: 0x0117, lo: 0x80, hi: 0xbf}, - // Block 0x61, offset 0x2a5 - {value: 0x0117, lo: 0x80, hi: 0x95}, - {value: 0x1f1a, lo: 0x96, hi: 0x96}, - {value: 0x1fca, lo: 0x97, hi: 0x97}, - {value: 0x207a, lo: 0x98, hi: 0x98}, - {value: 0x212a, lo: 0x99, hi: 0x99}, - {value: 0x21da, lo: 0x9a, hi: 0x9a}, - {value: 0x228a, lo: 0x9b, hi: 0x9b}, - {value: 0x0012, lo: 0x9c, hi: 0x9d}, - {value: 0x233b, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0x9f, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x62, offset 0x2b0 - {value: 0x0812, lo: 0x80, hi: 0x87}, - {value: 0x0813, lo: 0x88, hi: 0x8f}, - {value: 0x0812, lo: 0x90, hi: 0x95}, - {value: 0x0813, lo: 0x98, hi: 0x9d}, - {value: 0x0812, lo: 0xa0, hi: 0xa7}, - {value: 0x0813, lo: 0xa8, hi: 0xaf}, - {value: 0x0812, lo: 0xb0, hi: 0xb7}, - {value: 0x0813, lo: 0xb8, hi: 0xbf}, - // Block 0x63, offset 0x2b8 - {value: 0x0004, lo: 0x8b, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8f}, - {value: 0x0054, lo: 0x98, hi: 0x99}, - {value: 0x0054, lo: 0xa4, hi: 0xa4}, - {value: 0x0054, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xaa, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xaf}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x64, offset 0x2c0 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x94, hi: 0x94}, - {value: 0x0014, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa6, hi: 0xaf}, - {value: 0x0015, lo: 0xb1, hi: 0xb1}, - {value: 0x0015, lo: 0xbf, hi: 0xbf}, - // Block 0x65, offset 0x2c6 - {value: 0x0015, lo: 0x90, hi: 0x9c}, - // Block 0x66, offset 0x2c7 - {value: 0x0024, lo: 0x90, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0xa0}, - {value: 0x0024, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa4}, - {value: 0x0034, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - // Block 0x67, offset 0x2d5 - {value: 0x0016, lo: 0x85, hi: 0x86}, - {value: 0x0012, lo: 0x87, hi: 0x89}, - {value: 0x9d52, lo: 0x8e, hi: 0x8e}, - {value: 0x1013, lo: 0xa0, hi: 0xaf}, - {value: 0x1012, lo: 0xb0, hi: 0xbf}, - // Block 0x68, offset 0x2da - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x88}, - // Block 0x69, offset 0x2dd - {value: 0xa053, lo: 0xb6, hi: 0xb7}, - {value: 0xa353, lo: 0xb8, hi: 0xb9}, - {value: 0xa653, lo: 0xba, hi: 0xbb}, - {value: 0xa353, lo: 0xbc, hi: 0xbd}, - {value: 0xa053, lo: 0xbe, hi: 0xbf}, - // Block 0x6a, offset 0x2e2 - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6553, lo: 0x90, hi: 0x9f}, - {value: 0xa953, lo: 0xa0, hi: 0xae}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0x6b, offset 0x2e6 - {value: 0x0117, lo: 0x80, hi: 0xa3}, - {value: 0x0012, lo: 0xa4, hi: 0xa4}, - {value: 0x0716, lo: 0xab, hi: 0xac}, - {value: 0x0316, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb3}, - // Block 0x6c, offset 0x2ec - {value: 0x6c52, lo: 0x80, hi: 0x9f}, - {value: 0x7052, lo: 0xa0, hi: 0xa5}, - {value: 0x7052, lo: 0xa7, hi: 0xa7}, - {value: 0x7052, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x6d, offset 0x2f1 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x6e, offset 0x2f4 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0010, lo: 0xb0, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x6f, offset 0x2f9 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9e}, - {value: 0x0024, lo: 0xa0, hi: 0xbf}, - // Block 0x70, offset 0x2fe - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - // Block 0x71, offset 0x2ff - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0xaa, hi: 0xad}, - {value: 0x0030, lo: 0xae, hi: 0xaf}, - {value: 0x0004, lo: 0xb1, hi: 0xb5}, - {value: 0x0014, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x72, offset 0x305 - {value: 0x0034, lo: 0x99, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9e}, - // Block 0x73, offset 0x307 - {value: 0x0004, lo: 0xbc, hi: 0xbe}, - // Block 0x74, offset 0x308 - {value: 0x0010, lo: 0x85, hi: 0xae}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x75, offset 0x30a - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0010, lo: 0xa0, hi: 0xba}, - // Block 0x76, offset 0x30c - {value: 0x0010, lo: 0x80, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0xbf}, - // Block 0x77, offset 0x30f - {value: 0x0010, lo: 0x80, hi: 0x8c}, - // Block 0x78, offset 0x310 - {value: 0x0010, lo: 0x90, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x79, offset 0x312 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0xab}, - // Block 0x7a, offset 0x315 - {value: 0x0117, lo: 0x80, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb2}, - {value: 0x0024, lo: 0xb4, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x7b, offset 0x31b - {value: 0x0117, lo: 0x80, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9d}, - {value: 0x0024, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x7c, offset 0x31f - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb1}, - // Block 0x7d, offset 0x321 - {value: 0x0004, lo: 0x80, hi: 0x96}, - {value: 0x0014, lo: 0x97, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xaf}, - {value: 0x0012, lo: 0xb0, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xbf}, - // Block 0x7e, offset 0x326 - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x0015, lo: 0xb0, hi: 0xb0}, - {value: 0x0012, lo: 0xb1, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x8453, lo: 0xbd, hi: 0xbd}, - {value: 0x0117, lo: 0xbe, hi: 0xbf}, - // Block 0x7f, offset 0x32d - {value: 0x0010, lo: 0xb7, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbf}, - // Block 0x80, offset 0x331 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x8c, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - // Block 0x81, offset 0x33a - {value: 0x0010, lo: 0x80, hi: 0xb3}, - // Block 0x82, offset 0x33b - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xa0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb7}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x83, offset 0x343 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x84, offset 0x347 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0x92}, - {value: 0x0030, lo: 0x93, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0x85, offset 0x34c - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x86, offset 0x354 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0004, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x87, offset 0x35a - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0x88, offset 0x360 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x89, offset 0x36a - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0024, lo: 0xbe, hi: 0xbf}, - // Block 0x8a, offset 0x36f - {value: 0x0024, lo: 0x81, hi: 0x81}, - {value: 0x0004, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - // Block 0x8b, offset 0x378 - {value: 0x0010, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x8e}, - {value: 0x0010, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x8c, offset 0x37e - {value: 0x0012, lo: 0x80, hi: 0x92}, - {value: 0xac52, lo: 0x93, hi: 0x93}, - {value: 0x0012, lo: 0x94, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa5}, - {value: 0x74d2, lo: 0xb0, hi: 0xbf}, - // Block 0x8d, offset 0x385 - {value: 0x78d2, lo: 0x80, hi: 0x8f}, - {value: 0x7cd2, lo: 0x90, hi: 0x9f}, - {value: 0x80d2, lo: 0xa0, hi: 0xaf}, - {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, - // Block 0x8e, offset 0x389 - {value: 0x0010, lo: 0x80, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x8f, offset 0x391 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x90, offset 0x393 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x8b, hi: 0xbb}, - // Block 0x91, offset 0x395 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0xbf}, - // Block 0x92, offset 0x398 - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0004, lo: 0xb2, hi: 0xbf}, - // Block 0x93, offset 0x39a - {value: 0x0004, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x93, hi: 0xbf}, - // Block 0x94, offset 0x39c - {value: 0x0010, lo: 0x80, hi: 0xbd}, - // Block 0x95, offset 0x39d - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0x96, offset 0x39e - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0xbf}, - // Block 0x97, offset 0x3a0 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0xb0, hi: 0xbb}, - // Block 0x98, offset 0x3a2 - {value: 0x0014, lo: 0x80, hi: 0x8f}, - {value: 0x0054, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0xa0, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xad}, - {value: 0x0024, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - // Block 0x99, offset 0x3a8 - {value: 0x0010, lo: 0x8d, hi: 0x8f}, - {value: 0x0054, lo: 0x92, hi: 0x92}, - {value: 0x0054, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0xb0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x9a, offset 0x3ad - {value: 0x0010, lo: 0x80, hi: 0xbc}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x9b, offset 0x3af - {value: 0x0054, lo: 0x87, hi: 0x87}, - {value: 0x0054, lo: 0x8e, hi: 0x8e}, - {value: 0x0054, lo: 0x9a, hi: 0x9a}, - {value: 0x5f53, lo: 0xa1, hi: 0xba}, - {value: 0x0004, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9c, offset 0x3b5 - {value: 0x0004, lo: 0x80, hi: 0x80}, - {value: 0x5f52, lo: 0x81, hi: 0x9a}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - // Block 0x9d, offset 0x3b8 - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbe}, - // Block 0x9e, offset 0x3ba - {value: 0x0010, lo: 0x82, hi: 0x87}, - {value: 0x0010, lo: 0x8a, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0x97}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0004, lo: 0xa3, hi: 0xa3}, - {value: 0x0014, lo: 0xb9, hi: 0xbb}, - // Block 0x9f, offset 0x3c0 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0010, lo: 0x8d, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xba}, - {value: 0x0010, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xa0, offset 0x3c5 - {value: 0x0010, lo: 0x80, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x9d}, - // Block 0xa1, offset 0x3c7 - {value: 0x0010, lo: 0x80, hi: 0xba}, - // Block 0xa2, offset 0x3c8 - {value: 0x0010, lo: 0x80, hi: 0xb4}, - // Block 0xa3, offset 0x3c9 - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0xa4, offset 0x3ca - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa5, offset 0x3cc - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - // Block 0xa6, offset 0x3ce - {value: 0x0010, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xad, hi: 0xbf}, - // Block 0xa7, offset 0x3d0 - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0xb5}, - {value: 0x0024, lo: 0xb6, hi: 0xba}, - // Block 0xa8, offset 0x3d3 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa9, offset 0x3d5 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x91, hi: 0x95}, - // Block 0xaa, offset 0x3d8 - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x97}, - {value: 0xaf53, lo: 0x98, hi: 0x9f}, - {value: 0xb253, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbf}, - // Block 0xab, offset 0x3e0 - {value: 0xaf52, lo: 0x80, hi: 0x87}, - {value: 0xb252, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xac, offset 0x3e3 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0xb253, lo: 0xb0, hi: 0xb7}, - {value: 0xaf53, lo: 0xb8, hi: 0xbf}, - // Block 0xad, offset 0x3e7 - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x93}, - {value: 0xb252, lo: 0x98, hi: 0x9f}, - {value: 0xaf52, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbb}, - // Block 0xae, offset 0x3ef - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xaf, offset 0x3f1 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - // Block 0xb0, offset 0x3f2 - {value: 0x0010, lo: 0x80, hi: 0xb6}, - // Block 0xb1, offset 0x3f3 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - // Block 0xb2, offset 0x3f5 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xb3, offset 0x3fb - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xb4, offset 0x3fd - {value: 0x0010, lo: 0x80, hi: 0x9e}, - // Block 0xb5, offset 0x3fe - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - // Block 0xb6, offset 0x400 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb9}, - // Block 0xb7, offset 0x402 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0xb8, offset 0x404 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0024, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x99, hi: 0xb3}, - {value: 0x0024, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xb9, offset 0x411 - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0xba, offset 0x412 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - // Block 0xbb, offset 0x413 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - // Block 0xbc, offset 0x417 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - // Block 0xbd, offset 0x419 - {value: 0x0010, lo: 0x80, hi: 0x91}, - // Block 0xbe, offset 0x41a - {value: 0x0010, lo: 0x80, hi: 0x88}, - // Block 0xbf, offset 0x41b - {value: 0x5653, lo: 0x80, hi: 0xb2}, - // Block 0xc0, offset 0x41c - {value: 0x5652, lo: 0x80, hi: 0xb2}, - // Block 0xc1, offset 0x41d - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xc2, offset 0x421 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xc3, offset 0x425 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - // Block 0xc4, offset 0x42b - {value: 0x0010, lo: 0x90, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc5, offset 0x42d - {value: 0x0024, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0xc6, offset 0x434 - {value: 0x0010, lo: 0x90, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - // Block 0xc7, offset 0x437 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xc8, offset 0x43b - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - // Block 0xc9, offset 0x441 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - {value: 0x0030, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0xca, offset 0x44a - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xcb, offset 0x450 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa2}, - {value: 0x0014, lo: 0xa3, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xcc, offset 0x456 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xcd, offset 0x460 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0030, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9d, hi: 0xa3}, - {value: 0x0024, lo: 0xa6, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - // Block 0xce, offset 0x46a - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xcf, offset 0x46c - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd0, offset 0x473 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xd1, offset 0x479 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd2, offset 0x47f - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd3, offset 0x485 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x98, hi: 0x9b}, - {value: 0x0014, lo: 0x9c, hi: 0x9d}, - // Block 0xd4, offset 0x488 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd5, offset 0x48e - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd6, offset 0x491 - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0014, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb5}, - {value: 0x0030, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0xd7, offset 0x499 - {value: 0x0010, lo: 0x80, hi: 0x89}, - // Block 0xd8, offset 0x49a - {value: 0x0014, lo: 0x9d, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xd9, offset 0x4a1 - {value: 0x5f53, lo: 0xa0, hi: 0xbf}, - // Block 0xda, offset 0x4a2 - {value: 0x5f52, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xdb, offset 0x4a5 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8b, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbb, hi: 0xbe}, - // Block 0xdc, offset 0x4af - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0014, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x98}, - {value: 0x0014, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0x9c, hi: 0xbf}, - // Block 0xdd, offset 0x4b5 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x86, hi: 0x89}, - {value: 0x0014, lo: 0x8a, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x99}, - // Block 0xde, offset 0x4bb - {value: 0x0010, lo: 0x80, hi: 0xb8}, - // Block 0xdf, offset 0x4bc - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xe0, offset 0x4c2 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0xe1, offset 0x4c5 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0014, lo: 0x92, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xa9}, - {value: 0x0014, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0xe2, offset 0x4cd - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb6}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xe3, offset 0x4d4 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xe4, offset 0x4db - {value: 0x0010, lo: 0x80, hi: 0x99}, - // Block 0xe5, offset 0x4dc - {value: 0x0010, lo: 0x80, hi: 0xae}, - // Block 0xe6, offset 0x4dd - {value: 0x0010, lo: 0x80, hi: 0x83}, - // Block 0xe7, offset 0x4de - {value: 0x0010, lo: 0x80, hi: 0x86}, - // Block 0xe8, offset 0x4df - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xe9, offset 0x4e1 - {value: 0x0010, lo: 0x90, hi: 0xad}, - {value: 0x0034, lo: 0xb0, hi: 0xb4}, - // Block 0xea, offset 0x4e3 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - // Block 0xeb, offset 0x4e5 - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa3, hi: 0xb7}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xec, offset 0x4e9 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - // Block 0xed, offset 0x4ea - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0xbe}, - // Block 0xee, offset 0x4ec - {value: 0x0014, lo: 0x8f, hi: 0x9f}, - // Block 0xef, offset 0x4ed - {value: 0x0014, lo: 0xa0, hi: 0xa1}, - // Block 0xf0, offset 0x4ee - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbc}, - // Block 0xf1, offset 0x4f0 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0034, lo: 0x9e, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa3}, - // Block 0xf2, offset 0x4f5 - {value: 0x0030, lo: 0xa5, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xa9}, - {value: 0x0030, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbf}, - // Block 0xf3, offset 0x4fa - {value: 0x0034, lo: 0x80, hi: 0x82}, - {value: 0x0024, lo: 0x85, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8b}, - {value: 0x0024, lo: 0xaa, hi: 0xad}, - // Block 0xf4, offset 0x4fe - {value: 0x0024, lo: 0x82, hi: 0x84}, - // Block 0xf5, offset 0x4ff - {value: 0x0013, lo: 0x80, hi: 0x99}, - {value: 0x0012, lo: 0x9a, hi: 0xb3}, - {value: 0x0013, lo: 0xb4, hi: 0xbf}, - // Block 0xf6, offset 0x502 - {value: 0x0013, lo: 0x80, hi: 0x8d}, - {value: 0x0012, lo: 0x8e, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0xa7}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0xf7, offset 0x506 - {value: 0x0013, lo: 0x80, hi: 0x81}, - {value: 0x0012, lo: 0x82, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0x9c}, - {value: 0x0013, lo: 0x9e, hi: 0x9f}, - {value: 0x0013, lo: 0xa2, hi: 0xa2}, - {value: 0x0013, lo: 0xa5, hi: 0xa6}, - {value: 0x0013, lo: 0xa9, hi: 0xac}, - {value: 0x0013, lo: 0xae, hi: 0xb5}, - {value: 0x0012, lo: 0xb6, hi: 0xb9}, - {value: 0x0012, lo: 0xbb, hi: 0xbb}, - {value: 0x0012, lo: 0xbd, hi: 0xbf}, - // Block 0xf8, offset 0x511 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0012, lo: 0x85, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0xf9, offset 0x515 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0013, lo: 0x84, hi: 0x85}, - {value: 0x0013, lo: 0x87, hi: 0x8a}, - {value: 0x0013, lo: 0x8d, hi: 0x94}, - {value: 0x0013, lo: 0x96, hi: 0x9c}, - {value: 0x0012, lo: 0x9e, hi: 0xb7}, - {value: 0x0013, lo: 0xb8, hi: 0xb9}, - {value: 0x0013, lo: 0xbb, hi: 0xbe}, - // Block 0xfa, offset 0x51d - {value: 0x0013, lo: 0x80, hi: 0x84}, - {value: 0x0013, lo: 0x86, hi: 0x86}, - {value: 0x0013, lo: 0x8a, hi: 0x90}, - {value: 0x0012, lo: 0x92, hi: 0xab}, - {value: 0x0013, lo: 0xac, hi: 0xbf}, - // Block 0xfb, offset 0x522 - {value: 0x0013, lo: 0x80, hi: 0x85}, - {value: 0x0012, lo: 0x86, hi: 0x9f}, - {value: 0x0013, lo: 0xa0, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbf}, - // Block 0xfc, offset 0x526 - {value: 0x0012, lo: 0x80, hi: 0x93}, - {value: 0x0013, lo: 0x94, hi: 0xad}, - {value: 0x0012, lo: 0xae, hi: 0xbf}, - // Block 0xfd, offset 0x529 - {value: 0x0012, lo: 0x80, hi: 0x87}, - {value: 0x0013, lo: 0x88, hi: 0xa1}, - {value: 0x0012, lo: 0xa2, hi: 0xbb}, - {value: 0x0013, lo: 0xbc, hi: 0xbf}, - // Block 0xfe, offset 0x52d - {value: 0x0013, lo: 0x80, hi: 0x95}, - {value: 0x0012, lo: 0x96, hi: 0xaf}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0xff, offset 0x530 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0012, lo: 0x8a, hi: 0xa5}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0x100, offset 0x533 - {value: 0x0013, lo: 0x80, hi: 0x80}, - {value: 0x0012, lo: 0x82, hi: 0x9a}, - {value: 0x0012, lo: 0x9c, hi: 0xa1}, - {value: 0x0013, lo: 0xa2, hi: 0xba}, - {value: 0x0012, lo: 0xbc, hi: 0xbf}, - // Block 0x101, offset 0x538 - {value: 0x0012, lo: 0x80, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0xb4}, - {value: 0x0012, lo: 0xb6, hi: 0xbf}, - // Block 0x102, offset 0x53c - {value: 0x0012, lo: 0x80, hi: 0x8e}, - {value: 0x0012, lo: 0x90, hi: 0x95}, - {value: 0x0013, lo: 0x96, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x103, offset 0x540 - {value: 0x0012, lo: 0x80, hi: 0x88}, - {value: 0x0012, lo: 0x8a, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0x104, offset 0x544 - {value: 0x0012, lo: 0x80, hi: 0x82}, - {value: 0x0012, lo: 0x84, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8b}, - {value: 0x0010, lo: 0x8e, hi: 0xbf}, - // Block 0x105, offset 0x548 - {value: 0x0014, lo: 0x80, hi: 0xb6}, - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x106, offset 0x54a - {value: 0x0014, lo: 0x80, hi: 0xac}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x107, offset 0x54c - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x9b, hi: 0x9f}, - {value: 0x0014, lo: 0xa1, hi: 0xaf}, - // Block 0x108, offset 0x54f - {value: 0x0024, lo: 0x80, hi: 0x86}, - {value: 0x0024, lo: 0x88, hi: 0x98}, - {value: 0x0024, lo: 0x9b, hi: 0xa1}, - {value: 0x0024, lo: 0xa3, hi: 0xa4}, - {value: 0x0024, lo: 0xa6, hi: 0xaa}, - // Block 0x109, offset 0x554 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0034, lo: 0x90, hi: 0x96}, - // Block 0x10a, offset 0x556 - {value: 0xb552, lo: 0x80, hi: 0x81}, - {value: 0xb852, lo: 0x82, hi: 0x83}, - {value: 0x0024, lo: 0x84, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x10b, offset 0x55b - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x9f}, - {value: 0x0010, lo: 0xa1, hi: 0xa2}, - {value: 0x0010, lo: 0xa4, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb7}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - // Block 0x10c, offset 0x564 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x9b}, - {value: 0x0010, lo: 0xa1, hi: 0xa3}, - {value: 0x0010, lo: 0xa5, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xbb}, - // Block 0x10d, offset 0x569 - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x10e, offset 0x56a - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x10f, offset 0x56d - {value: 0x0013, lo: 0x80, hi: 0x89}, - // Block 0x110, offset 0x56e - {value: 0x0004, lo: 0xbb, hi: 0xbf}, - // Block 0x111, offset 0x56f - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0014, lo: 0xa0, hi: 0xbf}, - // Block 0x112, offset 0x571 - {value: 0x0014, lo: 0x80, hi: 0xbf}, - // Block 0x113, offset 0x572 - {value: 0x0014, lo: 0x80, hi: 0xaf}, -} - -// Total table size 14177 bytes (13KiB); checksum: F17D40E8 diff --git a/backend/vendor/golang.org/x/text/cases/tables11.0.0.go b/backend/vendor/golang.org/x/text/cases/tables11.0.0.go deleted file mode 100644 index b1106b41..00000000 --- a/backend/vendor/golang.org/x/text/cases/tables11.0.0.go +++ /dev/null @@ -1,2317 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 - -package cases - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "11.0.0" - -var xorData string = "" + // Size: 188 bytes - "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + - "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + - "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + - "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + - "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + - "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + - "\x0b!\x10\x00\x0b!0\x001\x00\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a" + - "\x00\x02:\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&" + - "\x00\x01*\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00" + - "\x01\x22" - -var exceptions string = "" + // Size: 2436 bytes - "\x00\x12\x12μΜΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x09II\x13\x1bʼnʼNʼN\x11" + - "\x09sSS\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj" + - "\x12\x12njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x1bǰJ̌J̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10" + - "\x12DZDz\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x1bⱾⱾ\x10\x1bⱿⱿ\x10\x1bⱯⱯ\x10\x1bⱭⱭ\x10" + - "\x1bⱰⱰ\x10\x1bꞫꞫ\x10\x1bꞬꞬ\x10\x1bꞍꞍ\x10\x1bꞪꞪ\x10\x1bꞮꞮ\x10\x1bⱢⱢ\x10" + - "\x1bꞭꞭ\x10\x1bⱮⱮ\x10\x1bⱤⱤ\x10\x1bꞱꞱ\x10\x1bꞲꞲ\x10\x1bꞰꞰ2\x12ιΙΙ\x166ΐ" + - "Ϊ́Ϊ́\x166ΰΫ́Ϋ́\x12\x12σΣΣ\x12\x12βΒΒ\x12\x12θΘΘ\x12\x12φΦΦ\x12" + - "\x12πΠΠ\x12\x12κΚΚ\x12\x12ρΡΡ\x12\x12εΕΕ\x14$եւԵՒԵւ\x10\x1bᲐა\x10\x1bᲑბ" + - "\x10\x1bᲒგ\x10\x1bᲓდ\x10\x1bᲔე\x10\x1bᲕვ\x10\x1bᲖზ\x10\x1bᲗთ\x10\x1bᲘი" + - "\x10\x1bᲙკ\x10\x1bᲚლ\x10\x1bᲛმ\x10\x1bᲜნ\x10\x1bᲝო\x10\x1bᲞპ\x10\x1bᲟჟ" + - "\x10\x1bᲠრ\x10\x1bᲡს\x10\x1bᲢტ\x10\x1bᲣუ\x10\x1bᲤფ\x10\x1bᲥქ\x10\x1bᲦღ" + - "\x10\x1bᲧყ\x10\x1bᲨშ\x10\x1bᲩჩ\x10\x1bᲪც\x10\x1bᲫძ\x10\x1bᲬწ\x10\x1bᲭჭ" + - "\x10\x1bᲮხ\x10\x1bᲯჯ\x10\x1bᲰჰ\x10\x1bᲱჱ\x10\x1bᲲჲ\x10\x1bᲳჳ\x10\x1bᲴჴ" + - "\x10\x1bᲵჵ\x10\x1bᲶჶ\x10\x1bᲷჷ\x10\x1bᲸჸ\x10\x1bᲹჹ\x10\x1bᲺჺ\x10\x1bᲽჽ" + - "\x10\x1bᲾჾ\x10\x1bᲿჿ\x12\x12вВВ\x12\x12дДД\x12\x12оОО\x12\x12сСС\x12\x12" + - "тТТ\x12\x12тТТ\x12\x12ъЪЪ\x12\x12ѣѢѢ\x13\x1bꙋꙊꙊ\x13\x1bẖH̱H̱\x13\x1bẗ" + - "T̈T̈\x13\x1bẘW̊W̊\x13\x1bẙY̊Y̊\x13\x1baʾAʾAʾ\x13\x1bṡṠṠ\x12\x10ssß\x14" + - "$ὐΥ̓Υ̓\x166ὒΥ̓̀Υ̓̀\x166ὔΥ̓́Υ̓́\x166ὖΥ̓͂Υ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ" + - "\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈ" + - "Ι\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15" + - "\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ" + - "\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨΙ\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ" + - "\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠι" + - "ὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧι" + - "ὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ" + - "\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰιᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ" + - "\x14$ᾶΑ͂Α͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x12ιΙΙ\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ" + - "\x14$ήιΉΙΉͅ\x14$ῆΗ͂Η͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ\x166ῒΪ̀Ϊ̀\x166ΐΙ" + - "̈́Ϊ́\x14$ῖΙ͂Ι͂\x166ῗΪ͂Ϊ͂\x166ῢΫ̀Ϋ̀\x166ΰΫ́Ϋ́\x14$ῤΡ̓Ρ̓" + - "\x14$ῦΥ͂Υ͂\x166ῧΫ͂Ϋ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ\x14$ῶΩ͂Ω͂\x16" + - "6ῶιΩ͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12\x10ɫɫ\x12\x10ɽ" + - "ɽ\x10\x12ȺȺ\x10\x12ȾȾ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ" + - "\x12\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ" + - "\x12\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFFFf\x12\x12fiFIFi\x12\x12flFLFl" + - "\x13\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12stSTSt\x12\x12stSTSt\x14$մնՄՆՄ" + - "ն\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄխ" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// caseTrie. Total size: 12250 bytes (11.96 KiB). Checksum: 53ff6cb7321675e1. -type caseTrie struct{} - -func newCaseTrie(i int) *caseTrie { - return &caseTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 20: - return uint16(caseValues[n<<6+uint32(b)]) - default: - n -= 20 - return uint16(sparse.lookup(n, b)) - } -} - -// caseValues: 22 blocks, 1408 entries, 2816 bytes -// The third block is the zero block. -var caseValues = [1408]uint16{ - // Block 0x0, offset 0x0 - 0x27: 0x0054, - 0x2e: 0x0054, - 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, - 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, - // Block 0x1, offset 0x40 - 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, - 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, - 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, - 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, - 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, - 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, - 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, - 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, - 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, - 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, - 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, - 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, - 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, - 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, - 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, - 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, - 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, - 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, - 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, - 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, - // Block 0x4, offset 0x100 - 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x02db, 0x105: 0x0359, - 0x106: 0x03da, 0x107: 0x043b, 0x108: 0x04b9, 0x109: 0x053a, 0x10a: 0x059b, 0x10b: 0x0619, - 0x10c: 0x069a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, - 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, - 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, - 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, - 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, - 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, - 0x130: 0x06fa, 0x131: 0x07ab, 0x132: 0x0829, 0x133: 0x08aa, 0x134: 0x0113, 0x135: 0x0112, - 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, - 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, - // Block 0x5, offset 0x140 - 0x140: 0x0a8a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, - 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, - 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x0b0a, 0x151: 0x0b8a, - 0x152: 0x0c0a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, - 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x0c8a, 0x15d: 0x0012, - 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x0d0a, 0x162: 0x0012, 0x163: 0x2052, - 0x164: 0x0012, 0x165: 0x0d8a, 0x166: 0x0e0a, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, - 0x16a: 0x0e8a, 0x16b: 0x0f0a, 0x16c: 0x0f8a, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, - 0x170: 0x0012, 0x171: 0x100a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, - 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, - 0x17c: 0x0012, 0x17d: 0x108a, 0x17e: 0x0012, 0x17f: 0x0012, - // Block 0x6, offset 0x180 - 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, - 0x186: 0x0012, 0x187: 0x110a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, - 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, - 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, - 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x118a, - 0x19e: 0x120a, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, - 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, - 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, - 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, - 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, - 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x128d, - 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, - 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, - 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, - 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, - 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, - 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, - 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, - 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, - 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, - 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, - // Block 0x8, offset 0x200 - 0x204: 0x0004, 0x205: 0x0004, - 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, - 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x130a, 0x211: 0x2013, - 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, - 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, - 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, - 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, - 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, - 0x230: 0x144a, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, - 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, - 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, - // Block 0x9, offset 0x240 - 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x158a, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, - 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, - 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x160a, 0x251: 0x168a, - 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x170a, 0x256: 0x178a, 0x257: 0x1812, - 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, - 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, - 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, - 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, - 0x270: 0x180a, 0x271: 0x188a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x190a, - 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, - 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, - // Block 0xa, offset 0x280 - 0x280: 0x6852, 0x281: 0x6852, 0x282: 0x6852, 0x283: 0x6852, 0x284: 0x6852, 0x285: 0x6852, - 0x286: 0x6852, 0x287: 0x198a, 0x288: 0x0012, - 0x291: 0x0034, - 0x292: 0x0024, 0x293: 0x0024, 0x294: 0x0024, 0x295: 0x0024, 0x296: 0x0034, 0x297: 0x0024, - 0x298: 0x0024, 0x299: 0x0024, 0x29a: 0x0034, 0x29b: 0x0034, 0x29c: 0x0024, 0x29d: 0x0024, - 0x29e: 0x0024, 0x29f: 0x0024, 0x2a0: 0x0024, 0x2a1: 0x0024, 0x2a2: 0x0034, 0x2a3: 0x0034, - 0x2a4: 0x0034, 0x2a5: 0x0034, 0x2a6: 0x0034, 0x2a7: 0x0034, 0x2a8: 0x0024, 0x2a9: 0x0024, - 0x2aa: 0x0034, 0x2ab: 0x0024, 0x2ac: 0x0024, 0x2ad: 0x0034, 0x2ae: 0x0034, 0x2af: 0x0024, - 0x2b0: 0x0034, 0x2b1: 0x0034, 0x2b2: 0x0034, 0x2b3: 0x0034, 0x2b4: 0x0034, 0x2b5: 0x0034, - 0x2b6: 0x0034, 0x2b7: 0x0034, 0x2b8: 0x0034, 0x2b9: 0x0034, 0x2ba: 0x0034, 0x2bb: 0x0034, - 0x2bc: 0x0034, 0x2bd: 0x0034, 0x2bf: 0x0034, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x7053, 0x2c1: 0x7053, 0x2c2: 0x7053, 0x2c3: 0x7053, 0x2c4: 0x7053, 0x2c5: 0x7053, - 0x2c7: 0x7053, - 0x2cd: 0x7053, 0x2d0: 0x1a6a, 0x2d1: 0x1aea, - 0x2d2: 0x1b6a, 0x2d3: 0x1bea, 0x2d4: 0x1c6a, 0x2d5: 0x1cea, 0x2d6: 0x1d6a, 0x2d7: 0x1dea, - 0x2d8: 0x1e6a, 0x2d9: 0x1eea, 0x2da: 0x1f6a, 0x2db: 0x1fea, 0x2dc: 0x206a, 0x2dd: 0x20ea, - 0x2de: 0x216a, 0x2df: 0x21ea, 0x2e0: 0x226a, 0x2e1: 0x22ea, 0x2e2: 0x236a, 0x2e3: 0x23ea, - 0x2e4: 0x246a, 0x2e5: 0x24ea, 0x2e6: 0x256a, 0x2e7: 0x25ea, 0x2e8: 0x266a, 0x2e9: 0x26ea, - 0x2ea: 0x276a, 0x2eb: 0x27ea, 0x2ec: 0x286a, 0x2ed: 0x28ea, 0x2ee: 0x296a, 0x2ef: 0x29ea, - 0x2f0: 0x2a6a, 0x2f1: 0x2aea, 0x2f2: 0x2b6a, 0x2f3: 0x2bea, 0x2f4: 0x2c6a, 0x2f5: 0x2cea, - 0x2f6: 0x2d6a, 0x2f7: 0x2dea, 0x2f8: 0x2e6a, 0x2f9: 0x2eea, 0x2fa: 0x2f6a, - 0x2fc: 0x0014, 0x2fd: 0x2fea, 0x2fe: 0x306a, 0x2ff: 0x30ea, - // Block 0xc, offset 0x300 - 0x300: 0x0812, 0x301: 0x0812, 0x302: 0x0812, 0x303: 0x0812, 0x304: 0x0812, 0x305: 0x0812, - 0x308: 0x0813, 0x309: 0x0813, 0x30a: 0x0813, 0x30b: 0x0813, - 0x30c: 0x0813, 0x30d: 0x0813, 0x310: 0x3a9a, 0x311: 0x0812, - 0x312: 0x3b7a, 0x313: 0x0812, 0x314: 0x3cba, 0x315: 0x0812, 0x316: 0x3dfa, 0x317: 0x0812, - 0x319: 0x0813, 0x31b: 0x0813, 0x31d: 0x0813, - 0x31f: 0x0813, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0x0812, 0x323: 0x0812, - 0x324: 0x0812, 0x325: 0x0812, 0x326: 0x0812, 0x327: 0x0812, 0x328: 0x0813, 0x329: 0x0813, - 0x32a: 0x0813, 0x32b: 0x0813, 0x32c: 0x0813, 0x32d: 0x0813, 0x32e: 0x0813, 0x32f: 0x0813, - 0x330: 0x8e52, 0x331: 0x8e52, 0x332: 0x9152, 0x333: 0x9152, 0x334: 0x9452, 0x335: 0x9452, - 0x336: 0x9752, 0x337: 0x9752, 0x338: 0x9a52, 0x339: 0x9a52, 0x33a: 0x9d52, 0x33b: 0x9d52, - 0x33c: 0x4d52, 0x33d: 0x4d52, - // Block 0xd, offset 0x340 - 0x340: 0x3f3a, 0x341: 0x402a, 0x342: 0x411a, 0x343: 0x420a, 0x344: 0x42fa, 0x345: 0x43ea, - 0x346: 0x44da, 0x347: 0x45ca, 0x348: 0x46b9, 0x349: 0x47a9, 0x34a: 0x4899, 0x34b: 0x4989, - 0x34c: 0x4a79, 0x34d: 0x4b69, 0x34e: 0x4c59, 0x34f: 0x4d49, 0x350: 0x4e3a, 0x351: 0x4f2a, - 0x352: 0x501a, 0x353: 0x510a, 0x354: 0x51fa, 0x355: 0x52ea, 0x356: 0x53da, 0x357: 0x54ca, - 0x358: 0x55b9, 0x359: 0x56a9, 0x35a: 0x5799, 0x35b: 0x5889, 0x35c: 0x5979, 0x35d: 0x5a69, - 0x35e: 0x5b59, 0x35f: 0x5c49, 0x360: 0x5d3a, 0x361: 0x5e2a, 0x362: 0x5f1a, 0x363: 0x600a, - 0x364: 0x60fa, 0x365: 0x61ea, 0x366: 0x62da, 0x367: 0x63ca, 0x368: 0x64b9, 0x369: 0x65a9, - 0x36a: 0x6699, 0x36b: 0x6789, 0x36c: 0x6879, 0x36d: 0x6969, 0x36e: 0x6a59, 0x36f: 0x6b49, - 0x370: 0x0812, 0x371: 0x0812, 0x372: 0x6c3a, 0x373: 0x6d4a, 0x374: 0x6e1a, - 0x376: 0x6efa, 0x377: 0x6fda, 0x378: 0x0813, 0x379: 0x0813, 0x37a: 0x8e53, 0x37b: 0x8e53, - 0x37c: 0x7119, 0x37d: 0x0004, 0x37e: 0x71ea, 0x37f: 0x0004, - // Block 0xe, offset 0x380 - 0x380: 0x0004, 0x381: 0x0004, 0x382: 0x726a, 0x383: 0x737a, 0x384: 0x744a, - 0x386: 0x752a, 0x387: 0x760a, 0x388: 0x9153, 0x389: 0x9153, 0x38a: 0x9453, 0x38b: 0x9453, - 0x38c: 0x7749, 0x38d: 0x0004, 0x38e: 0x0004, 0x38f: 0x0004, 0x390: 0x0812, 0x391: 0x0812, - 0x392: 0x781a, 0x393: 0x795a, 0x396: 0x7a9a, 0x397: 0x7b7a, - 0x398: 0x0813, 0x399: 0x0813, 0x39a: 0x9753, 0x39b: 0x9753, 0x39d: 0x0004, - 0x39e: 0x0004, 0x39f: 0x0004, 0x3a0: 0x0812, 0x3a1: 0x0812, 0x3a2: 0x7cba, 0x3a3: 0x7dfa, - 0x3a4: 0x7f3a, 0x3a5: 0x0912, 0x3a6: 0x801a, 0x3a7: 0x80fa, 0x3a8: 0x0813, 0x3a9: 0x0813, - 0x3aa: 0x9d53, 0x3ab: 0x9d53, 0x3ac: 0x0913, 0x3ad: 0x0004, 0x3ae: 0x0004, 0x3af: 0x0004, - 0x3b2: 0x823a, 0x3b3: 0x834a, 0x3b4: 0x841a, - 0x3b6: 0x84fa, 0x3b7: 0x85da, 0x3b8: 0x9a53, 0x3b9: 0x9a53, 0x3ba: 0x4d53, 0x3bb: 0x4d53, - 0x3bc: 0x8719, 0x3bd: 0x0004, 0x3be: 0x0004, - // Block 0xf, offset 0x3c0 - 0x3c2: 0x0013, - 0x3c7: 0x0013, 0x3ca: 0x0012, 0x3cb: 0x0013, - 0x3cc: 0x0013, 0x3cd: 0x0013, 0x3ce: 0x0012, 0x3cf: 0x0012, 0x3d0: 0x0013, 0x3d1: 0x0013, - 0x3d2: 0x0013, 0x3d3: 0x0012, 0x3d5: 0x0013, - 0x3d9: 0x0013, 0x3da: 0x0013, 0x3db: 0x0013, 0x3dc: 0x0013, 0x3dd: 0x0013, - 0x3e4: 0x0013, 0x3e6: 0x87eb, 0x3e8: 0x0013, - 0x3ea: 0x884b, 0x3eb: 0x888b, 0x3ec: 0x0013, 0x3ed: 0x0013, 0x3ef: 0x0012, - 0x3f0: 0x0013, 0x3f1: 0x0013, 0x3f2: 0xa053, 0x3f3: 0x0013, 0x3f4: 0x0012, 0x3f5: 0x0010, - 0x3f6: 0x0010, 0x3f7: 0x0010, 0x3f8: 0x0010, 0x3f9: 0x0012, - 0x3fc: 0x0012, 0x3fd: 0x0012, 0x3fe: 0x0013, 0x3ff: 0x0013, - // Block 0x10, offset 0x400 - 0x400: 0x1a13, 0x401: 0x1a13, 0x402: 0x1e13, 0x403: 0x1e13, 0x404: 0x1a13, 0x405: 0x1a13, - 0x406: 0x2613, 0x407: 0x2613, 0x408: 0x2a13, 0x409: 0x2a13, 0x40a: 0x2e13, 0x40b: 0x2e13, - 0x40c: 0x2a13, 0x40d: 0x2a13, 0x40e: 0x2613, 0x40f: 0x2613, 0x410: 0xa352, 0x411: 0xa352, - 0x412: 0xa652, 0x413: 0xa652, 0x414: 0xa952, 0x415: 0xa952, 0x416: 0xa652, 0x417: 0xa652, - 0x418: 0xa352, 0x419: 0xa352, 0x41a: 0x1a12, 0x41b: 0x1a12, 0x41c: 0x1e12, 0x41d: 0x1e12, - 0x41e: 0x1a12, 0x41f: 0x1a12, 0x420: 0x2612, 0x421: 0x2612, 0x422: 0x2a12, 0x423: 0x2a12, - 0x424: 0x2e12, 0x425: 0x2e12, 0x426: 0x2a12, 0x427: 0x2a12, 0x428: 0x2612, 0x429: 0x2612, - // Block 0x11, offset 0x440 - 0x440: 0x6552, 0x441: 0x6552, 0x442: 0x6552, 0x443: 0x6552, 0x444: 0x6552, 0x445: 0x6552, - 0x446: 0x6552, 0x447: 0x6552, 0x448: 0x6552, 0x449: 0x6552, 0x44a: 0x6552, 0x44b: 0x6552, - 0x44c: 0x6552, 0x44d: 0x6552, 0x44e: 0x6552, 0x44f: 0x6552, 0x450: 0xac52, 0x451: 0xac52, - 0x452: 0xac52, 0x453: 0xac52, 0x454: 0xac52, 0x455: 0xac52, 0x456: 0xac52, 0x457: 0xac52, - 0x458: 0xac52, 0x459: 0xac52, 0x45a: 0xac52, 0x45b: 0xac52, 0x45c: 0xac52, 0x45d: 0xac52, - 0x45e: 0xac52, 0x460: 0x0113, 0x461: 0x0112, 0x462: 0x88eb, 0x463: 0x8b53, - 0x464: 0x894b, 0x465: 0x89aa, 0x466: 0x8a0a, 0x467: 0x0f13, 0x468: 0x0f12, 0x469: 0x0313, - 0x46a: 0x0312, 0x46b: 0x0713, 0x46c: 0x0712, 0x46d: 0x8a6b, 0x46e: 0x8acb, 0x46f: 0x8b2b, - 0x470: 0x8b8b, 0x471: 0x0012, 0x472: 0x0113, 0x473: 0x0112, 0x474: 0x0012, 0x475: 0x0313, - 0x476: 0x0312, 0x477: 0x0012, 0x478: 0x0012, 0x479: 0x0012, 0x47a: 0x0012, 0x47b: 0x0012, - 0x47c: 0x0015, 0x47d: 0x0015, 0x47e: 0x8beb, 0x47f: 0x8c4b, - // Block 0x12, offset 0x480 - 0x480: 0x0113, 0x481: 0x0112, 0x482: 0x0113, 0x483: 0x0112, 0x484: 0x0113, 0x485: 0x0112, - 0x486: 0x0113, 0x487: 0x0112, 0x488: 0x0014, 0x489: 0x0014, 0x48a: 0x0014, 0x48b: 0x0713, - 0x48c: 0x0712, 0x48d: 0x8cab, 0x48e: 0x0012, 0x48f: 0x0010, 0x490: 0x0113, 0x491: 0x0112, - 0x492: 0x0113, 0x493: 0x0112, 0x494: 0x0012, 0x495: 0x0012, 0x496: 0x0113, 0x497: 0x0112, - 0x498: 0x0113, 0x499: 0x0112, 0x49a: 0x0113, 0x49b: 0x0112, 0x49c: 0x0113, 0x49d: 0x0112, - 0x49e: 0x0113, 0x49f: 0x0112, 0x4a0: 0x0113, 0x4a1: 0x0112, 0x4a2: 0x0113, 0x4a3: 0x0112, - 0x4a4: 0x0113, 0x4a5: 0x0112, 0x4a6: 0x0113, 0x4a7: 0x0112, 0x4a8: 0x0113, 0x4a9: 0x0112, - 0x4aa: 0x8d0b, 0x4ab: 0x8d6b, 0x4ac: 0x8dcb, 0x4ad: 0x8e2b, 0x4ae: 0x8e8b, 0x4af: 0x0012, - 0x4b0: 0x8eeb, 0x4b1: 0x8f4b, 0x4b2: 0x8fab, 0x4b3: 0xaf53, 0x4b4: 0x0113, 0x4b5: 0x0112, - 0x4b6: 0x0113, 0x4b7: 0x0112, 0x4b8: 0x0113, 0x4b9: 0x0112, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x900a, 0x4c1: 0x908a, 0x4c2: 0x910a, 0x4c3: 0x918a, 0x4c4: 0x923a, 0x4c5: 0x92ea, - 0x4c6: 0x936a, - 0x4d3: 0x93ea, 0x4d4: 0x94ca, 0x4d5: 0x95aa, 0x4d6: 0x968a, 0x4d7: 0x976a, - 0x4dd: 0x0010, - 0x4de: 0x0034, 0x4df: 0x0010, 0x4e0: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, 0x4e3: 0x0010, - 0x4e4: 0x0010, 0x4e5: 0x0010, 0x4e6: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, - 0x4ea: 0x0010, 0x4eb: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, - 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f3: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, - 0x4f6: 0x0010, 0x4f8: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, - 0x4fc: 0x0010, 0x4fe: 0x0010, - // Block 0x14, offset 0x500 - 0x500: 0x2213, 0x501: 0x2213, 0x502: 0x2613, 0x503: 0x2613, 0x504: 0x2213, 0x505: 0x2213, - 0x506: 0x2e13, 0x507: 0x2e13, 0x508: 0x2213, 0x509: 0x2213, 0x50a: 0x2613, 0x50b: 0x2613, - 0x50c: 0x2213, 0x50d: 0x2213, 0x50e: 0x3e13, 0x50f: 0x3e13, 0x510: 0x2213, 0x511: 0x2213, - 0x512: 0x2613, 0x513: 0x2613, 0x514: 0x2213, 0x515: 0x2213, 0x516: 0x2e13, 0x517: 0x2e13, - 0x518: 0x2213, 0x519: 0x2213, 0x51a: 0x2613, 0x51b: 0x2613, 0x51c: 0x2213, 0x51d: 0x2213, - 0x51e: 0xb853, 0x51f: 0xb853, 0x520: 0xbb53, 0x521: 0xbb53, 0x522: 0x2212, 0x523: 0x2212, - 0x524: 0x2612, 0x525: 0x2612, 0x526: 0x2212, 0x527: 0x2212, 0x528: 0x2e12, 0x529: 0x2e12, - 0x52a: 0x2212, 0x52b: 0x2212, 0x52c: 0x2612, 0x52d: 0x2612, 0x52e: 0x2212, 0x52f: 0x2212, - 0x530: 0x3e12, 0x531: 0x3e12, 0x532: 0x2212, 0x533: 0x2212, 0x534: 0x2612, 0x535: 0x2612, - 0x536: 0x2212, 0x537: 0x2212, 0x538: 0x2e12, 0x539: 0x2e12, 0x53a: 0x2212, 0x53b: 0x2212, - 0x53c: 0x2612, 0x53d: 0x2612, 0x53e: 0x2212, 0x53f: 0x2212, - // Block 0x15, offset 0x540 - 0x542: 0x0010, - 0x547: 0x0010, 0x549: 0x0010, 0x54b: 0x0010, - 0x54d: 0x0010, 0x54e: 0x0010, 0x54f: 0x0010, 0x551: 0x0010, - 0x552: 0x0010, 0x554: 0x0010, 0x557: 0x0010, - 0x559: 0x0010, 0x55b: 0x0010, 0x55d: 0x0010, - 0x55f: 0x0010, 0x561: 0x0010, 0x562: 0x0010, - 0x564: 0x0010, 0x567: 0x0010, 0x568: 0x0010, 0x569: 0x0010, - 0x56a: 0x0010, 0x56c: 0x0010, 0x56d: 0x0010, 0x56e: 0x0010, 0x56f: 0x0010, - 0x570: 0x0010, 0x571: 0x0010, 0x572: 0x0010, 0x574: 0x0010, 0x575: 0x0010, - 0x576: 0x0010, 0x577: 0x0010, 0x579: 0x0010, 0x57a: 0x0010, 0x57b: 0x0010, - 0x57c: 0x0010, 0x57e: 0x0010, -} - -// caseIndex: 25 blocks, 1600 entries, 3200 bytes -// Block 0 is the zero block. -var caseIndex = [1600]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x14, 0xc3: 0x15, 0xc4: 0x16, 0xc5: 0x17, 0xc6: 0x01, 0xc7: 0x02, - 0xc8: 0x18, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x19, 0xcc: 0x1a, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, - 0xd0: 0x1b, 0xd1: 0x1c, 0xd2: 0x1d, 0xd3: 0x1e, 0xd4: 0x1f, 0xd5: 0x20, 0xd6: 0x08, 0xd7: 0x21, - 0xd8: 0x22, 0xd9: 0x23, 0xda: 0x24, 0xdb: 0x25, 0xdc: 0x26, 0xdd: 0x27, 0xde: 0x28, 0xdf: 0x29, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, - 0xf0: 0x14, 0xf3: 0x16, - // Block 0x4, offset 0x100 - 0x120: 0x2a, 0x121: 0x2b, 0x122: 0x2c, 0x123: 0x2d, 0x124: 0x2e, 0x125: 0x2f, 0x126: 0x30, 0x127: 0x31, - 0x128: 0x32, 0x129: 0x33, 0x12a: 0x34, 0x12b: 0x35, 0x12c: 0x36, 0x12d: 0x37, 0x12e: 0x38, 0x12f: 0x39, - 0x130: 0x3a, 0x131: 0x3b, 0x132: 0x3c, 0x133: 0x3d, 0x134: 0x3e, 0x135: 0x3f, 0x136: 0x40, 0x137: 0x41, - 0x138: 0x42, 0x139: 0x43, 0x13a: 0x44, 0x13b: 0x45, 0x13c: 0x46, 0x13d: 0x47, 0x13e: 0x48, 0x13f: 0x49, - // Block 0x5, offset 0x140 - 0x140: 0x4a, 0x141: 0x4b, 0x142: 0x4c, 0x143: 0x09, 0x144: 0x24, 0x145: 0x24, 0x146: 0x24, 0x147: 0x24, - 0x148: 0x24, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, - 0x150: 0x54, 0x151: 0x24, 0x152: 0x24, 0x153: 0x24, 0x154: 0x24, 0x155: 0x24, 0x156: 0x24, 0x157: 0x24, - 0x158: 0x24, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, - 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, - 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69, - 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71, - 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x0a, 0x17e: 0x0b, 0x17f: 0x0c, - // Block 0x6, offset 0x180 - 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0d, 0x185: 0x79, 0x186: 0x7a, - 0x192: 0x7b, 0x193: 0x0e, - 0x1b0: 0x7c, 0x1b1: 0x0f, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81, - 0x1b8: 0x82, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x24, 0x1c6: 0x87, - // Block 0x8, offset 0x200 - 0x200: 0x88, 0x201: 0x24, 0x202: 0x24, 0x203: 0x24, 0x204: 0x24, 0x205: 0x24, 0x206: 0x24, 0x207: 0x24, - 0x208: 0x24, 0x209: 0x24, 0x20a: 0x24, 0x20b: 0x24, 0x20c: 0x24, 0x20d: 0x24, 0x20e: 0x24, 0x20f: 0x24, - 0x210: 0x24, 0x211: 0x24, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x24, 0x215: 0x24, 0x216: 0x24, 0x217: 0x24, - 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x10, 0x21f: 0x91, - 0x220: 0x92, 0x221: 0x93, 0x222: 0x24, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98, - 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0, - 0x230: 0x24, 0x231: 0x24, 0x232: 0x24, 0x233: 0x24, 0x234: 0x24, 0x235: 0x24, 0x236: 0x24, 0x237: 0x24, - 0x238: 0x24, 0x239: 0x24, 0x23a: 0x24, 0x23b: 0x24, 0x23c: 0x24, 0x23d: 0x24, 0x23e: 0x24, 0x23f: 0x24, - // Block 0x9, offset 0x240 - 0x240: 0x24, 0x241: 0x24, 0x242: 0x24, 0x243: 0x24, 0x244: 0x24, 0x245: 0x24, 0x246: 0x24, 0x247: 0x24, - 0x248: 0x24, 0x249: 0x24, 0x24a: 0x24, 0x24b: 0x24, 0x24c: 0x24, 0x24d: 0x24, 0x24e: 0x24, 0x24f: 0x24, - 0x250: 0x24, 0x251: 0x24, 0x252: 0x24, 0x253: 0x24, 0x254: 0x24, 0x255: 0x24, 0x256: 0x24, 0x257: 0x24, - 0x258: 0x24, 0x259: 0x24, 0x25a: 0x24, 0x25b: 0x24, 0x25c: 0x24, 0x25d: 0x24, 0x25e: 0x24, 0x25f: 0x24, - 0x260: 0x24, 0x261: 0x24, 0x262: 0x24, 0x263: 0x24, 0x264: 0x24, 0x265: 0x24, 0x266: 0x24, 0x267: 0x24, - 0x268: 0x24, 0x269: 0x24, 0x26a: 0x24, 0x26b: 0x24, 0x26c: 0x24, 0x26d: 0x24, 0x26e: 0x24, 0x26f: 0x24, - 0x270: 0x24, 0x271: 0x24, 0x272: 0x24, 0x273: 0x24, 0x274: 0x24, 0x275: 0x24, 0x276: 0x24, 0x277: 0x24, - 0x278: 0x24, 0x279: 0x24, 0x27a: 0x24, 0x27b: 0x24, 0x27c: 0x24, 0x27d: 0x24, 0x27e: 0x24, 0x27f: 0x24, - // Block 0xa, offset 0x280 - 0x280: 0x24, 0x281: 0x24, 0x282: 0x24, 0x283: 0x24, 0x284: 0x24, 0x285: 0x24, 0x286: 0x24, 0x287: 0x24, - 0x288: 0x24, 0x289: 0x24, 0x28a: 0x24, 0x28b: 0x24, 0x28c: 0x24, 0x28d: 0x24, 0x28e: 0x24, 0x28f: 0x24, - 0x290: 0x24, 0x291: 0x24, 0x292: 0x24, 0x293: 0x24, 0x294: 0x24, 0x295: 0x24, 0x296: 0x24, 0x297: 0x24, - 0x298: 0x24, 0x299: 0x24, 0x29a: 0x24, 0x29b: 0x24, 0x29c: 0x24, 0x29d: 0x24, 0x29e: 0xa1, 0x29f: 0xa2, - // Block 0xb, offset 0x2c0 - 0x2ec: 0x11, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5, - 0x2f0: 0x24, 0x2f1: 0x24, 0x2f2: 0x24, 0x2f3: 0x24, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9, - 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x24, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0, - // Block 0xc, offset 0x300 - 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x24, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5, - 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb, - 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1, - 0x318: 0x24, 0x319: 0x24, 0x31a: 0x24, 0x31b: 0x24, 0x31c: 0xc2, 0x31d: 0xc3, - 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9, - 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf, - 0x330: 0x24, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2, 0x334: 0xd3, - 0x33c: 0xd4, 0x33d: 0xd5, - // Block 0xd, offset 0x340 - 0x340: 0xd6, 0x341: 0xd7, 0x342: 0xd8, 0x343: 0xd9, 0x344: 0xda, 0x345: 0xdb, 0x346: 0xdc, 0x347: 0xdd, - 0x348: 0xde, 0x34a: 0xdf, 0x34b: 0xe0, 0x34c: 0xe1, 0x34d: 0xe2, - 0x350: 0xe3, 0x351: 0xe4, 0x352: 0xe5, 0x353: 0xe6, 0x356: 0xe7, 0x357: 0xe8, - 0x358: 0xe9, 0x359: 0xea, 0x35a: 0xeb, 0x35b: 0xec, 0x35c: 0xed, - 0x360: 0xee, 0x362: 0xef, 0x363: 0xf0, - 0x368: 0xf1, 0x369: 0xf2, 0x36a: 0xf3, 0x36b: 0xf4, - 0x370: 0xf5, 0x371: 0xf6, 0x372: 0xf7, 0x374: 0xf8, 0x375: 0xf9, 0x376: 0xfa, - 0x37b: 0xfb, - // Block 0xe, offset 0x380 - 0x380: 0x24, 0x381: 0x24, 0x382: 0x24, 0x383: 0x24, 0x384: 0x24, 0x385: 0x24, 0x386: 0x24, 0x387: 0x24, - 0x388: 0x24, 0x389: 0x24, 0x38a: 0x24, 0x38b: 0x24, 0x38c: 0x24, 0x38d: 0x24, 0x38e: 0xfc, - 0x390: 0x24, 0x391: 0xfd, 0x392: 0x24, 0x393: 0x24, 0x394: 0x24, 0x395: 0xfe, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x24, 0x3c1: 0x24, 0x3c2: 0x24, 0x3c3: 0x24, 0x3c4: 0x24, 0x3c5: 0x24, 0x3c6: 0x24, 0x3c7: 0x24, - 0x3c8: 0x24, 0x3c9: 0x24, 0x3ca: 0x24, 0x3cb: 0x24, 0x3cc: 0x24, 0x3cd: 0x24, 0x3ce: 0x24, 0x3cf: 0x24, - 0x3d0: 0xfd, - // Block 0x10, offset 0x400 - 0x410: 0x24, 0x411: 0x24, 0x412: 0x24, 0x413: 0x24, 0x414: 0x24, 0x415: 0x24, 0x416: 0x24, 0x417: 0x24, - 0x418: 0x24, 0x419: 0xff, - // Block 0x11, offset 0x440 - 0x460: 0x24, 0x461: 0x24, 0x462: 0x24, 0x463: 0x24, 0x464: 0x24, 0x465: 0x24, 0x466: 0x24, 0x467: 0x24, - 0x468: 0xf4, 0x469: 0x100, 0x46b: 0x101, 0x46c: 0x102, 0x46d: 0x103, 0x46e: 0x104, - 0x479: 0x105, 0x47c: 0x24, 0x47d: 0x106, 0x47e: 0x107, 0x47f: 0x108, - // Block 0x12, offset 0x480 - 0x4b0: 0x24, 0x4b1: 0x109, 0x4b2: 0x10a, - // Block 0x13, offset 0x4c0 - 0x4c5: 0x10b, 0x4c6: 0x10c, - 0x4c9: 0x10d, - 0x4d0: 0x10e, 0x4d1: 0x10f, 0x4d2: 0x110, 0x4d3: 0x111, 0x4d4: 0x112, 0x4d5: 0x113, 0x4d6: 0x114, 0x4d7: 0x115, - 0x4d8: 0x116, 0x4d9: 0x117, 0x4da: 0x118, 0x4db: 0x119, 0x4dc: 0x11a, 0x4dd: 0x11b, 0x4de: 0x11c, 0x4df: 0x11d, - 0x4e8: 0x11e, 0x4e9: 0x11f, 0x4ea: 0x120, - // Block 0x14, offset 0x500 - 0x500: 0x121, - 0x520: 0x24, 0x521: 0x24, 0x522: 0x24, 0x523: 0x122, 0x524: 0x12, 0x525: 0x123, - 0x538: 0x124, 0x539: 0x13, 0x53a: 0x125, - // Block 0x15, offset 0x540 - 0x544: 0x126, 0x545: 0x127, 0x546: 0x128, - 0x54f: 0x129, - // Block 0x16, offset 0x580 - 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, - 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x12a, 0x5c1: 0x12b, 0x5c4: 0x12b, 0x5c5: 0x12b, 0x5c6: 0x12b, 0x5c7: 0x12c, - // Block 0x18, offset 0x600 - 0x620: 0x15, -} - -// sparseOffsets: 282 entries, 564 bytes -var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x35, 0x38, 0x3c, 0x3f, 0x43, 0x4d, 0x4f, 0x57, 0x5e, 0x63, 0x71, 0x72, 0x80, 0x8f, 0x99, 0x9c, 0xa3, 0xab, 0xae, 0xb0, 0xbf, 0xc5, 0xd3, 0xde, 0xeb, 0xf6, 0x102, 0x10c, 0x118, 0x123, 0x12f, 0x13b, 0x143, 0x14c, 0x156, 0x161, 0x16d, 0x174, 0x17f, 0x184, 0x18c, 0x18f, 0x194, 0x198, 0x19c, 0x1a3, 0x1ac, 0x1b4, 0x1b5, 0x1be, 0x1c5, 0x1cd, 0x1d3, 0x1d8, 0x1dc, 0x1df, 0x1e1, 0x1e4, 0x1e9, 0x1ea, 0x1ec, 0x1ee, 0x1f0, 0x1f7, 0x1fc, 0x200, 0x209, 0x20c, 0x20f, 0x215, 0x216, 0x221, 0x222, 0x223, 0x228, 0x235, 0x23d, 0x245, 0x24e, 0x257, 0x260, 0x265, 0x268, 0x273, 0x280, 0x282, 0x289, 0x28b, 0x297, 0x298, 0x2a3, 0x2ab, 0x2b3, 0x2b9, 0x2ba, 0x2c8, 0x2cd, 0x2d0, 0x2d5, 0x2d9, 0x2df, 0x2e4, 0x2e7, 0x2ec, 0x2f1, 0x2f2, 0x2f8, 0x2fa, 0x2fb, 0x2fd, 0x2ff, 0x302, 0x303, 0x305, 0x308, 0x30e, 0x312, 0x314, 0x319, 0x320, 0x324, 0x32d, 0x32e, 0x337, 0x33b, 0x340, 0x348, 0x34e, 0x354, 0x35e, 0x363, 0x36c, 0x372, 0x379, 0x37d, 0x385, 0x387, 0x389, 0x38c, 0x38e, 0x390, 0x391, 0x392, 0x394, 0x396, 0x39c, 0x3a1, 0x3a3, 0x3a9, 0x3ac, 0x3ae, 0x3b4, 0x3b9, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3c0, 0x3c2, 0x3c4, 0x3c7, 0x3c9, 0x3cc, 0x3d4, 0x3d7, 0x3db, 0x3e3, 0x3e5, 0x3e6, 0x3e7, 0x3e9, 0x3ef, 0x3f1, 0x3f2, 0x3f4, 0x3f6, 0x3f8, 0x405, 0x406, 0x407, 0x40b, 0x40d, 0x40e, 0x40f, 0x410, 0x411, 0x414, 0x417, 0x41d, 0x421, 0x425, 0x42b, 0x42e, 0x435, 0x439, 0x43d, 0x444, 0x44d, 0x453, 0x459, 0x463, 0x46d, 0x46f, 0x477, 0x47d, 0x483, 0x489, 0x48c, 0x492, 0x495, 0x49d, 0x49e, 0x4a5, 0x4a9, 0x4aa, 0x4ad, 0x4b5, 0x4bb, 0x4c2, 0x4c3, 0x4c9, 0x4cc, 0x4d4, 0x4db, 0x4e5, 0x4ed, 0x4f0, 0x4f1, 0x4f2, 0x4f3, 0x4f4, 0x4f6, 0x4f8, 0x4fa, 0x4fe, 0x4ff, 0x501, 0x503, 0x504, 0x505, 0x507, 0x50c, 0x511, 0x515, 0x516, 0x519, 0x51d, 0x528, 0x52c, 0x534, 0x539, 0x53d, 0x540, 0x544, 0x547, 0x54a, 0x54f, 0x553, 0x557, 0x55b, 0x55f, 0x561, 0x563, 0x566, 0x56b, 0x56d, 0x572, 0x57b, 0x580, 0x581, 0x584, 0x585, 0x586, 0x588, 0x589, 0x58a} - -// sparseValues: 1418 entries, 5672 bytes -var sparseValues = [1418]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0004, lo: 0xa8, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xaa}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0004, lo: 0xaf, hi: 0xaf}, - {value: 0x0004, lo: 0xb4, hi: 0xb4}, - {value: 0x001a, lo: 0xb5, hi: 0xb5}, - {value: 0x0054, lo: 0xb7, hi: 0xb7}, - {value: 0x0004, lo: 0xb8, hi: 0xb8}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - // Block 0x1, offset 0x9 - {value: 0x2013, lo: 0x80, hi: 0x96}, - {value: 0x2013, lo: 0x98, hi: 0x9e}, - {value: 0x009a, lo: 0x9f, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xb6}, - {value: 0x2012, lo: 0xb8, hi: 0xbe}, - {value: 0x0252, lo: 0xbf, hi: 0xbf}, - // Block 0x2, offset 0xf - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x011b, lo: 0xb0, hi: 0xb0}, - {value: 0x019a, lo: 0xb1, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb7}, - {value: 0x0012, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x0553, lo: 0xbf, hi: 0xbf}, - // Block 0x3, offset 0x18 - {value: 0x0552, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x01da, lo: 0x89, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xb7}, - {value: 0x0253, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x028a, lo: 0xbf, hi: 0xbf}, - // Block 0x4, offset 0x24 - {value: 0x0117, lo: 0x80, hi: 0x9f}, - {value: 0x2f53, lo: 0xa0, hi: 0xa0}, - {value: 0x0012, lo: 0xa1, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xb3}, - {value: 0x0012, lo: 0xb4, hi: 0xb9}, - {value: 0x090b, lo: 0xba, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x2953, lo: 0xbd, hi: 0xbd}, - {value: 0x098b, lo: 0xbe, hi: 0xbe}, - {value: 0x0a0a, lo: 0xbf, hi: 0xbf}, - // Block 0x5, offset 0x2e - {value: 0x0015, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x97}, - {value: 0x0004, lo: 0x98, hi: 0x9d}, - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0015, lo: 0xa0, hi: 0xa4}, - {value: 0x0004, lo: 0xa5, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xbf}, - // Block 0x6, offset 0x35 - {value: 0x0024, lo: 0x80, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbf}, - // Block 0x7, offset 0x38 - {value: 0x6553, lo: 0x80, hi: 0x8f}, - {value: 0x2013, lo: 0x90, hi: 0x9f}, - {value: 0x5f53, lo: 0xa0, hi: 0xaf}, - {value: 0x2012, lo: 0xb0, hi: 0xbf}, - // Block 0x8, offset 0x3c - {value: 0x5f52, lo: 0x80, hi: 0x8f}, - {value: 0x6552, lo: 0x90, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x9, offset 0x3f - {value: 0x0117, lo: 0x80, hi: 0x81}, - {value: 0x0024, lo: 0x83, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xbf}, - // Block 0xa, offset 0x43 - {value: 0x0f13, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x0316, lo: 0x89, hi: 0x8a}, - {value: 0x0716, lo: 0x8b, hi: 0x8c}, - {value: 0x0316, lo: 0x8d, hi: 0x8e}, - {value: 0x0f12, lo: 0x8f, hi: 0x8f}, - {value: 0x0117, lo: 0x90, hi: 0xbf}, - // Block 0xb, offset 0x4d - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x6553, lo: 0xb1, hi: 0xbf}, - // Block 0xc, offset 0x4f - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6853, lo: 0x90, hi: 0x96}, - {value: 0x0014, lo: 0x99, hi: 0x99}, - {value: 0x0010, lo: 0x9b, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0xa0, hi: 0xa0}, - {value: 0x6552, lo: 0xa1, hi: 0xaf}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0xd, offset 0x57 - {value: 0x0034, lo: 0x81, hi: 0x82}, - {value: 0x0024, lo: 0x84, hi: 0x84}, - {value: 0x0034, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xaa}, - {value: 0x0010, lo: 0xaf, hi: 0xb3}, - {value: 0x0054, lo: 0xb4, hi: 0xb4}, - // Block 0xe, offset 0x5e - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0024, lo: 0x90, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0014, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xf, offset 0x63 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9c}, - {value: 0x0024, lo: 0x9d, hi: 0x9e}, - {value: 0x0034, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x10, offset 0x71 - {value: 0x0010, lo: 0x80, hi: 0xbf}, - // Block 0x11, offset 0x72 - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0024, lo: 0x9f, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x12, offset 0x80 - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0034, lo: 0xb1, hi: 0xb1}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0024, lo: 0xbf, hi: 0xbf}, - // Block 0x13, offset 0x8f - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0024, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x88}, - {value: 0x0024, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8d, hi: 0xbf}, - // Block 0x14, offset 0x99 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x15, offset 0x9c - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xb1}, - {value: 0x0034, lo: 0xb2, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0x16, offset 0xa3 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x99}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0xa3}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xad}, - // Block 0x17, offset 0xab - {value: 0x0010, lo: 0x80, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0xa0, hi: 0xaa}, - // Block 0x18, offset 0xae - {value: 0x0010, lo: 0xa0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbd}, - // Block 0x19, offset 0xb0 - {value: 0x0034, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0024, lo: 0xaa, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbf}, - // Block 0x1a, offset 0xbf - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1b, offset 0xc5 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0x1c, offset 0xd3 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb6, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1d, offset 0xde - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xb1}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xeb - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x1f, offset 0xf6 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x99, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x20, offset 0x102 - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x21, offset 0x10c - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x85}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xbf}, - // Block 0x22, offset 0x118 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x23, offset 0x123 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x24, offset 0x12f - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0010, lo: 0xa8, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x25, offset 0x13b - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x26, offset 0x143 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb9}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbf}, - // Block 0x27, offset 0x14c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x88}, - {value: 0x0014, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x28, offset 0x156 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x29, offset 0x161 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb2}, - // Block 0x2a, offset 0x16d - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x2b, offset 0x174 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x94, hi: 0x97}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xba, hi: 0xbf}, - // Block 0x2c, offset 0x17f - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x96}, - {value: 0x0010, lo: 0x9a, hi: 0xb1}, - {value: 0x0010, lo: 0xb3, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x2d, offset 0x184 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x94}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9f}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - // Block 0x2e, offset 0x18c - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - // Block 0x2f, offset 0x18f - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x30, offset 0x194 - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xb9}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - // Block 0x31, offset 0x198 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x32, offset 0x19c - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0034, lo: 0x98, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0034, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x33, offset 0x1a3 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xac}, - {value: 0x0034, lo: 0xb1, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xba, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x34, offset 0x1ac - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0024, lo: 0x82, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x86, hi: 0x87}, - {value: 0x0010, lo: 0x88, hi: 0x8c}, - {value: 0x0014, lo: 0x8d, hi: 0x97}, - {value: 0x0014, lo: 0x99, hi: 0xbc}, - // Block 0x35, offset 0x1b4 - {value: 0x0034, lo: 0x86, hi: 0x86}, - // Block 0x36, offset 0x1b5 - {value: 0x0010, lo: 0xab, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbe}, - // Block 0x37, offset 0x1be - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x96, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0x9e, hi: 0xa0}, - {value: 0x0010, lo: 0xa2, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xad}, - {value: 0x0014, lo: 0xb1, hi: 0xb4}, - // Block 0x38, offset 0x1c5 - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x6c53, lo: 0xa0, hi: 0xbf}, - // Block 0x39, offset 0x1cd - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x9a, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x3a, offset 0x1d3 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x3b, offset 0x1d8 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x82, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3c, offset 0x1dc - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3d, offset 0x1df - {value: 0x0010, lo: 0x80, hi: 0x9a}, - {value: 0x0024, lo: 0x9d, hi: 0x9f}, - // Block 0x3e, offset 0x1e1 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x7453, lo: 0xa0, hi: 0xaf}, - {value: 0x7853, lo: 0xb0, hi: 0xbf}, - // Block 0x3f, offset 0x1e4 - {value: 0x7c53, lo: 0x80, hi: 0x8f}, - {value: 0x8053, lo: 0x90, hi: 0x9f}, - {value: 0x7c53, lo: 0xa0, hi: 0xaf}, - {value: 0x0813, lo: 0xb0, hi: 0xb5}, - {value: 0x0892, lo: 0xb8, hi: 0xbd}, - // Block 0x40, offset 0x1e9 - {value: 0x0010, lo: 0x81, hi: 0xbf}, - // Block 0x41, offset 0x1ea - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0010, lo: 0xaf, hi: 0xbf}, - // Block 0x42, offset 0x1ec - {value: 0x0010, lo: 0x81, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x43, offset 0x1ee - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb8}, - // Block 0x44, offset 0x1f0 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0034, lo: 0x94, hi: 0x94}, - {value: 0x0010, lo: 0xa0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - // Block 0x45, offset 0x1f7 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xac}, - {value: 0x0010, lo: 0xae, hi: 0xb0}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - // Block 0x46, offset 0x1fc - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x47, offset 0x200 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0004, lo: 0x97, hi: 0x97}, - {value: 0x0024, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0x48, offset 0x209 - {value: 0x0014, lo: 0x8b, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x49, offset 0x20c - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb8}, - // Block 0x4a, offset 0x20f - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x4b, offset 0x215 - {value: 0x0010, lo: 0x80, hi: 0xb5}, - // Block 0x4c, offset 0x216 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbb}, - // Block 0x4d, offset 0x221 - {value: 0x0010, lo: 0x86, hi: 0x8f}, - // Block 0x4e, offset 0x222 - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x4f, offset 0x223 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - // Block 0x50, offset 0x228 - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x9e}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xac}, - {value: 0x0010, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xbc}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x51, offset 0x235 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xa7, hi: 0xa7}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - {value: 0x0034, lo: 0xb5, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbc}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0x52, offset 0x23d - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x53, offset 0x245 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0030, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xab, hi: 0xab}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - {value: 0x0024, lo: 0xad, hi: 0xb3}, - // Block 0x54, offset 0x24e - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0030, lo: 0xaa, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbf}, - // Block 0x55, offset 0x257 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0030, lo: 0xb2, hi: 0xb3}, - // Block 0x56, offset 0x260 - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0x57, offset 0x265 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8d, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x58, offset 0x268 - {value: 0x316a, lo: 0x80, hi: 0x80}, - {value: 0x31ea, lo: 0x81, hi: 0x81}, - {value: 0x326a, lo: 0x82, hi: 0x82}, - {value: 0x32ea, lo: 0x83, hi: 0x83}, - {value: 0x336a, lo: 0x84, hi: 0x84}, - {value: 0x33ea, lo: 0x85, hi: 0x85}, - {value: 0x346a, lo: 0x86, hi: 0x86}, - {value: 0x34ea, lo: 0x87, hi: 0x87}, - {value: 0x356a, lo: 0x88, hi: 0x88}, - {value: 0x8353, lo: 0x90, hi: 0xba}, - {value: 0x8353, lo: 0xbd, hi: 0xbf}, - // Block 0x59, offset 0x273 - {value: 0x0024, lo: 0x90, hi: 0x92}, - {value: 0x0034, lo: 0x94, hi: 0x99}, - {value: 0x0024, lo: 0x9a, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9f}, - {value: 0x0024, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xb3}, - {value: 0x0024, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb7}, - {value: 0x0024, lo: 0xb8, hi: 0xb9}, - // Block 0x5a, offset 0x280 - {value: 0x0012, lo: 0x80, hi: 0xab}, - {value: 0x0015, lo: 0xac, hi: 0xbf}, - // Block 0x5b, offset 0x282 - {value: 0x0015, lo: 0x80, hi: 0xaa}, - {value: 0x0012, lo: 0xab, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb8}, - {value: 0x8752, lo: 0xb9, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbc}, - {value: 0x8b52, lo: 0xbd, hi: 0xbd}, - {value: 0x0012, lo: 0xbe, hi: 0xbf}, - // Block 0x5c, offset 0x289 - {value: 0x0012, lo: 0x80, hi: 0x9a}, - {value: 0x0015, lo: 0x9b, hi: 0xbf}, - // Block 0x5d, offset 0x28b - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0024, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb9}, - {value: 0x0024, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbd}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x5e, offset 0x297 - {value: 0x0117, lo: 0x80, hi: 0xbf}, - // Block 0x5f, offset 0x298 - {value: 0x0117, lo: 0x80, hi: 0x95}, - {value: 0x361a, lo: 0x96, hi: 0x96}, - {value: 0x36ca, lo: 0x97, hi: 0x97}, - {value: 0x377a, lo: 0x98, hi: 0x98}, - {value: 0x382a, lo: 0x99, hi: 0x99}, - {value: 0x38da, lo: 0x9a, hi: 0x9a}, - {value: 0x398a, lo: 0x9b, hi: 0x9b}, - {value: 0x0012, lo: 0x9c, hi: 0x9d}, - {value: 0x3a3b, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0x9f, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x60, offset 0x2a3 - {value: 0x0812, lo: 0x80, hi: 0x87}, - {value: 0x0813, lo: 0x88, hi: 0x8f}, - {value: 0x0812, lo: 0x90, hi: 0x95}, - {value: 0x0813, lo: 0x98, hi: 0x9d}, - {value: 0x0812, lo: 0xa0, hi: 0xa7}, - {value: 0x0813, lo: 0xa8, hi: 0xaf}, - {value: 0x0812, lo: 0xb0, hi: 0xb7}, - {value: 0x0813, lo: 0xb8, hi: 0xbf}, - // Block 0x61, offset 0x2ab - {value: 0x0004, lo: 0x8b, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8f}, - {value: 0x0054, lo: 0x98, hi: 0x99}, - {value: 0x0054, lo: 0xa4, hi: 0xa4}, - {value: 0x0054, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xaa, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xaf}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x62, offset 0x2b3 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x94, hi: 0x94}, - {value: 0x0014, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa6, hi: 0xaf}, - {value: 0x0015, lo: 0xb1, hi: 0xb1}, - {value: 0x0015, lo: 0xbf, hi: 0xbf}, - // Block 0x63, offset 0x2b9 - {value: 0x0015, lo: 0x90, hi: 0x9c}, - // Block 0x64, offset 0x2ba - {value: 0x0024, lo: 0x90, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0xa0}, - {value: 0x0024, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa4}, - {value: 0x0034, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - // Block 0x65, offset 0x2c8 - {value: 0x0016, lo: 0x85, hi: 0x86}, - {value: 0x0012, lo: 0x87, hi: 0x89}, - {value: 0xa052, lo: 0x8e, hi: 0x8e}, - {value: 0x1013, lo: 0xa0, hi: 0xaf}, - {value: 0x1012, lo: 0xb0, hi: 0xbf}, - // Block 0x66, offset 0x2cd - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x88}, - // Block 0x67, offset 0x2d0 - {value: 0xa353, lo: 0xb6, hi: 0xb7}, - {value: 0xa653, lo: 0xb8, hi: 0xb9}, - {value: 0xa953, lo: 0xba, hi: 0xbb}, - {value: 0xa653, lo: 0xbc, hi: 0xbd}, - {value: 0xa353, lo: 0xbe, hi: 0xbf}, - // Block 0x68, offset 0x2d5 - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6553, lo: 0x90, hi: 0x9f}, - {value: 0xac53, lo: 0xa0, hi: 0xae}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0x69, offset 0x2d9 - {value: 0x0117, lo: 0x80, hi: 0xa3}, - {value: 0x0012, lo: 0xa4, hi: 0xa4}, - {value: 0x0716, lo: 0xab, hi: 0xac}, - {value: 0x0316, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb3}, - // Block 0x6a, offset 0x2df - {value: 0x6c52, lo: 0x80, hi: 0x9f}, - {value: 0x7052, lo: 0xa0, hi: 0xa5}, - {value: 0x7052, lo: 0xa7, hi: 0xa7}, - {value: 0x7052, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x6b, offset 0x2e4 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x6c, offset 0x2e7 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0010, lo: 0xb0, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x6d, offset 0x2ec - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9e}, - {value: 0x0024, lo: 0xa0, hi: 0xbf}, - // Block 0x6e, offset 0x2f1 - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - // Block 0x6f, offset 0x2f2 - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0xaa, hi: 0xad}, - {value: 0x0030, lo: 0xae, hi: 0xaf}, - {value: 0x0004, lo: 0xb1, hi: 0xb5}, - {value: 0x0014, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x70, offset 0x2f8 - {value: 0x0034, lo: 0x99, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9e}, - // Block 0x71, offset 0x2fa - {value: 0x0004, lo: 0xbc, hi: 0xbe}, - // Block 0x72, offset 0x2fb - {value: 0x0010, lo: 0x85, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x73, offset 0x2fd - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0010, lo: 0xa0, hi: 0xba}, - // Block 0x74, offset 0x2ff - {value: 0x0010, lo: 0x80, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0xbf}, - // Block 0x75, offset 0x302 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - // Block 0x76, offset 0x303 - {value: 0x0010, lo: 0x90, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x77, offset 0x305 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0xab}, - // Block 0x78, offset 0x308 - {value: 0x0117, lo: 0x80, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb2}, - {value: 0x0024, lo: 0xb4, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x79, offset 0x30e - {value: 0x0117, lo: 0x80, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9d}, - {value: 0x0024, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x7a, offset 0x312 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb1}, - // Block 0x7b, offset 0x314 - {value: 0x0004, lo: 0x80, hi: 0x96}, - {value: 0x0014, lo: 0x97, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xaf}, - {value: 0x0012, lo: 0xb0, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xbf}, - // Block 0x7c, offset 0x319 - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x0015, lo: 0xb0, hi: 0xb0}, - {value: 0x0012, lo: 0xb1, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x8753, lo: 0xbd, hi: 0xbd}, - {value: 0x0117, lo: 0xbe, hi: 0xbf}, - // Block 0x7d, offset 0x320 - {value: 0x0010, lo: 0xb7, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbf}, - // Block 0x7e, offset 0x324 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x8c, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - // Block 0x7f, offset 0x32d - {value: 0x0010, lo: 0x80, hi: 0xb3}, - // Block 0x80, offset 0x32e - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xa0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb7}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x81, offset 0x337 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x82, offset 0x33b - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0x92}, - {value: 0x0030, lo: 0x93, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0x83, offset 0x340 - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x84, offset 0x348 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0004, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x85, offset 0x34e - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0x86, offset 0x354 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x87, offset 0x35e - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0024, lo: 0xbe, hi: 0xbf}, - // Block 0x88, offset 0x363 - {value: 0x0024, lo: 0x81, hi: 0x81}, - {value: 0x0004, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - // Block 0x89, offset 0x36c - {value: 0x0010, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x8e}, - {value: 0x0010, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x8a, offset 0x372 - {value: 0x0012, lo: 0x80, hi: 0x92}, - {value: 0xaf52, lo: 0x93, hi: 0x93}, - {value: 0x0012, lo: 0x94, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa5}, - {value: 0x74d2, lo: 0xb0, hi: 0xbf}, - // Block 0x8b, offset 0x379 - {value: 0x78d2, lo: 0x80, hi: 0x8f}, - {value: 0x7cd2, lo: 0x90, hi: 0x9f}, - {value: 0x80d2, lo: 0xa0, hi: 0xaf}, - {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, - // Block 0x8c, offset 0x37d - {value: 0x0010, lo: 0x80, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x8d, offset 0x385 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x8e, offset 0x387 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x8b, hi: 0xbb}, - // Block 0x8f, offset 0x389 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0xbf}, - // Block 0x90, offset 0x38c - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0004, lo: 0xb2, hi: 0xbf}, - // Block 0x91, offset 0x38e - {value: 0x0004, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x93, hi: 0xbf}, - // Block 0x92, offset 0x390 - {value: 0x0010, lo: 0x80, hi: 0xbd}, - // Block 0x93, offset 0x391 - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0x94, offset 0x392 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0xbf}, - // Block 0x95, offset 0x394 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0xb0, hi: 0xbb}, - // Block 0x96, offset 0x396 - {value: 0x0014, lo: 0x80, hi: 0x8f}, - {value: 0x0054, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0xa0, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xad}, - {value: 0x0024, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - // Block 0x97, offset 0x39c - {value: 0x0010, lo: 0x8d, hi: 0x8f}, - {value: 0x0054, lo: 0x92, hi: 0x92}, - {value: 0x0054, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0xb0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x98, offset 0x3a1 - {value: 0x0010, lo: 0x80, hi: 0xbc}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x99, offset 0x3a3 - {value: 0x0054, lo: 0x87, hi: 0x87}, - {value: 0x0054, lo: 0x8e, hi: 0x8e}, - {value: 0x0054, lo: 0x9a, hi: 0x9a}, - {value: 0x5f53, lo: 0xa1, hi: 0xba}, - {value: 0x0004, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9a, offset 0x3a9 - {value: 0x0004, lo: 0x80, hi: 0x80}, - {value: 0x5f52, lo: 0x81, hi: 0x9a}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - // Block 0x9b, offset 0x3ac - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbe}, - // Block 0x9c, offset 0x3ae - {value: 0x0010, lo: 0x82, hi: 0x87}, - {value: 0x0010, lo: 0x8a, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0x97}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0004, lo: 0xa3, hi: 0xa3}, - {value: 0x0014, lo: 0xb9, hi: 0xbb}, - // Block 0x9d, offset 0x3b4 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0010, lo: 0x8d, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xba}, - {value: 0x0010, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9e, offset 0x3b9 - {value: 0x0010, lo: 0x80, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x9d}, - // Block 0x9f, offset 0x3bb - {value: 0x0010, lo: 0x80, hi: 0xba}, - // Block 0xa0, offset 0x3bc - {value: 0x0010, lo: 0x80, hi: 0xb4}, - // Block 0xa1, offset 0x3bd - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0xa2, offset 0x3be - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa3, offset 0x3c0 - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - // Block 0xa4, offset 0x3c2 - {value: 0x0010, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xad, hi: 0xbf}, - // Block 0xa5, offset 0x3c4 - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0xb5}, - {value: 0x0024, lo: 0xb6, hi: 0xba}, - // Block 0xa6, offset 0x3c7 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa7, offset 0x3c9 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x91, hi: 0x95}, - // Block 0xa8, offset 0x3cc - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x97}, - {value: 0xb253, lo: 0x98, hi: 0x9f}, - {value: 0xb553, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbf}, - // Block 0xa9, offset 0x3d4 - {value: 0xb252, lo: 0x80, hi: 0x87}, - {value: 0xb552, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xaa, offset 0x3d7 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0xb553, lo: 0xb0, hi: 0xb7}, - {value: 0xb253, lo: 0xb8, hi: 0xbf}, - // Block 0xab, offset 0x3db - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x93}, - {value: 0xb552, lo: 0x98, hi: 0x9f}, - {value: 0xb252, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbb}, - // Block 0xac, offset 0x3e3 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xad, offset 0x3e5 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - // Block 0xae, offset 0x3e6 - {value: 0x0010, lo: 0x80, hi: 0xb6}, - // Block 0xaf, offset 0x3e7 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - // Block 0xb0, offset 0x3e9 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xb1, offset 0x3ef - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xb2, offset 0x3f1 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - // Block 0xb3, offset 0x3f2 - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - // Block 0xb4, offset 0x3f4 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb9}, - // Block 0xb5, offset 0x3f6 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0xb6, offset 0x3f8 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0024, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x99, hi: 0xb5}, - {value: 0x0024, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xb7, offset 0x405 - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0xb8, offset 0x406 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - // Block 0xb9, offset 0x407 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - // Block 0xba, offset 0x40b - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - // Block 0xbb, offset 0x40d - {value: 0x0010, lo: 0x80, hi: 0x91}, - // Block 0xbc, offset 0x40e - {value: 0x0010, lo: 0x80, hi: 0x88}, - // Block 0xbd, offset 0x40f - {value: 0x5653, lo: 0x80, hi: 0xb2}, - // Block 0xbe, offset 0x410 - {value: 0x5652, lo: 0x80, hi: 0xb2}, - // Block 0xbf, offset 0x411 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc0, offset 0x414 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xc1, offset 0x417 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x87}, - {value: 0x0024, lo: 0x88, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x8b}, - {value: 0x0024, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - // Block 0xc2, offset 0x41d - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xc3, offset 0x421 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xc4, offset 0x425 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - // Block 0xc5, offset 0x42b - {value: 0x0014, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc6, offset 0x42e - {value: 0x0024, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0xc7, offset 0x435 - {value: 0x0010, lo: 0x84, hi: 0x86}, - {value: 0x0010, lo: 0x90, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - // Block 0xc8, offset 0x439 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xc9, offset 0x43d - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x89, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - // Block 0xca, offset 0x444 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - {value: 0x0030, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0xcb, offset 0x44d - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xcc, offset 0x453 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa2}, - {value: 0x0014, lo: 0xa3, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xcd, offset 0x459 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xce, offset 0x463 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0030, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9d, hi: 0xa3}, - {value: 0x0024, lo: 0xa6, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - // Block 0xcf, offset 0x46d - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xd0, offset 0x46f - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0x9e, hi: 0x9e}, - // Block 0xd1, offset 0x477 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xd2, offset 0x47d - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd3, offset 0x483 - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd4, offset 0x489 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x98, hi: 0x9b}, - {value: 0x0014, lo: 0x9c, hi: 0x9d}, - // Block 0xd5, offset 0x48c - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd6, offset 0x492 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd7, offset 0x495 - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0014, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb5}, - {value: 0x0030, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0xd8, offset 0x49d - {value: 0x0010, lo: 0x80, hi: 0x89}, - // Block 0xd9, offset 0x49e - {value: 0x0014, lo: 0x9d, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xda, offset 0x4a5 - {value: 0x0010, lo: 0x80, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - // Block 0xdb, offset 0x4a9 - {value: 0x5f53, lo: 0xa0, hi: 0xbf}, - // Block 0xdc, offset 0x4aa - {value: 0x5f52, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xdd, offset 0x4ad - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x8a}, - {value: 0x0010, lo: 0x8b, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbb, hi: 0xbe}, - // Block 0xde, offset 0x4b5 - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0014, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x98}, - {value: 0x0014, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0x9c, hi: 0xbf}, - // Block 0xdf, offset 0x4bb - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x86, hi: 0x89}, - {value: 0x0014, lo: 0x8a, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x99}, - {value: 0x0010, lo: 0x9d, hi: 0x9d}, - // Block 0xe0, offset 0x4c2 - {value: 0x0010, lo: 0x80, hi: 0xb8}, - // Block 0xe1, offset 0x4c3 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xe2, offset 0x4c9 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0xe3, offset 0x4cc - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0014, lo: 0x92, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xa9}, - {value: 0x0014, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0xe4, offset 0x4d4 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb6}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xe5, offset 0x4db - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa5}, - {value: 0x0010, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xbf}, - // Block 0xe6, offset 0x4e5 - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0014, lo: 0x90, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0x96}, - {value: 0x0034, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xe7, offset 0x4ed - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - // Block 0xe8, offset 0x4f0 - {value: 0x0010, lo: 0x80, hi: 0x99}, - // Block 0xe9, offset 0x4f1 - {value: 0x0010, lo: 0x80, hi: 0xae}, - // Block 0xea, offset 0x4f2 - {value: 0x0010, lo: 0x80, hi: 0x83}, - // Block 0xeb, offset 0x4f3 - {value: 0x0010, lo: 0x80, hi: 0x86}, - // Block 0xec, offset 0x4f4 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xed, offset 0x4f6 - {value: 0x0010, lo: 0x90, hi: 0xad}, - {value: 0x0034, lo: 0xb0, hi: 0xb4}, - // Block 0xee, offset 0x4f8 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - // Block 0xef, offset 0x4fa - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa3, hi: 0xb7}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xf0, offset 0x4fe - {value: 0x0010, lo: 0x80, hi: 0x8f}, - // Block 0xf1, offset 0x4ff - {value: 0x2013, lo: 0x80, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xbf}, - // Block 0xf2, offset 0x501 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0xbe}, - // Block 0xf3, offset 0x503 - {value: 0x0014, lo: 0x8f, hi: 0x9f}, - // Block 0xf4, offset 0x504 - {value: 0x0014, lo: 0xa0, hi: 0xa1}, - // Block 0xf5, offset 0x505 - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbc}, - // Block 0xf6, offset 0x507 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0034, lo: 0x9e, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa3}, - // Block 0xf7, offset 0x50c - {value: 0x0030, lo: 0xa5, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xa9}, - {value: 0x0030, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbf}, - // Block 0xf8, offset 0x511 - {value: 0x0034, lo: 0x80, hi: 0x82}, - {value: 0x0024, lo: 0x85, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8b}, - {value: 0x0024, lo: 0xaa, hi: 0xad}, - // Block 0xf9, offset 0x515 - {value: 0x0024, lo: 0x82, hi: 0x84}, - // Block 0xfa, offset 0x516 - {value: 0x0013, lo: 0x80, hi: 0x99}, - {value: 0x0012, lo: 0x9a, hi: 0xb3}, - {value: 0x0013, lo: 0xb4, hi: 0xbf}, - // Block 0xfb, offset 0x519 - {value: 0x0013, lo: 0x80, hi: 0x8d}, - {value: 0x0012, lo: 0x8e, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0xa7}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0xfc, offset 0x51d - {value: 0x0013, lo: 0x80, hi: 0x81}, - {value: 0x0012, lo: 0x82, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0x9c}, - {value: 0x0013, lo: 0x9e, hi: 0x9f}, - {value: 0x0013, lo: 0xa2, hi: 0xa2}, - {value: 0x0013, lo: 0xa5, hi: 0xa6}, - {value: 0x0013, lo: 0xa9, hi: 0xac}, - {value: 0x0013, lo: 0xae, hi: 0xb5}, - {value: 0x0012, lo: 0xb6, hi: 0xb9}, - {value: 0x0012, lo: 0xbb, hi: 0xbb}, - {value: 0x0012, lo: 0xbd, hi: 0xbf}, - // Block 0xfd, offset 0x528 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0012, lo: 0x85, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0xfe, offset 0x52c - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0013, lo: 0x84, hi: 0x85}, - {value: 0x0013, lo: 0x87, hi: 0x8a}, - {value: 0x0013, lo: 0x8d, hi: 0x94}, - {value: 0x0013, lo: 0x96, hi: 0x9c}, - {value: 0x0012, lo: 0x9e, hi: 0xb7}, - {value: 0x0013, lo: 0xb8, hi: 0xb9}, - {value: 0x0013, lo: 0xbb, hi: 0xbe}, - // Block 0xff, offset 0x534 - {value: 0x0013, lo: 0x80, hi: 0x84}, - {value: 0x0013, lo: 0x86, hi: 0x86}, - {value: 0x0013, lo: 0x8a, hi: 0x90}, - {value: 0x0012, lo: 0x92, hi: 0xab}, - {value: 0x0013, lo: 0xac, hi: 0xbf}, - // Block 0x100, offset 0x539 - {value: 0x0013, lo: 0x80, hi: 0x85}, - {value: 0x0012, lo: 0x86, hi: 0x9f}, - {value: 0x0013, lo: 0xa0, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbf}, - // Block 0x101, offset 0x53d - {value: 0x0012, lo: 0x80, hi: 0x93}, - {value: 0x0013, lo: 0x94, hi: 0xad}, - {value: 0x0012, lo: 0xae, hi: 0xbf}, - // Block 0x102, offset 0x540 - {value: 0x0012, lo: 0x80, hi: 0x87}, - {value: 0x0013, lo: 0x88, hi: 0xa1}, - {value: 0x0012, lo: 0xa2, hi: 0xbb}, - {value: 0x0013, lo: 0xbc, hi: 0xbf}, - // Block 0x103, offset 0x544 - {value: 0x0013, lo: 0x80, hi: 0x95}, - {value: 0x0012, lo: 0x96, hi: 0xaf}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x104, offset 0x547 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0012, lo: 0x8a, hi: 0xa5}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0x105, offset 0x54a - {value: 0x0013, lo: 0x80, hi: 0x80}, - {value: 0x0012, lo: 0x82, hi: 0x9a}, - {value: 0x0012, lo: 0x9c, hi: 0xa1}, - {value: 0x0013, lo: 0xa2, hi: 0xba}, - {value: 0x0012, lo: 0xbc, hi: 0xbf}, - // Block 0x106, offset 0x54f - {value: 0x0012, lo: 0x80, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0xb4}, - {value: 0x0012, lo: 0xb6, hi: 0xbf}, - // Block 0x107, offset 0x553 - {value: 0x0012, lo: 0x80, hi: 0x8e}, - {value: 0x0012, lo: 0x90, hi: 0x95}, - {value: 0x0013, lo: 0x96, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x108, offset 0x557 - {value: 0x0012, lo: 0x80, hi: 0x88}, - {value: 0x0012, lo: 0x8a, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0x109, offset 0x55b - {value: 0x0012, lo: 0x80, hi: 0x82}, - {value: 0x0012, lo: 0x84, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8b}, - {value: 0x0010, lo: 0x8e, hi: 0xbf}, - // Block 0x10a, offset 0x55f - {value: 0x0014, lo: 0x80, hi: 0xb6}, - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x10b, offset 0x561 - {value: 0x0014, lo: 0x80, hi: 0xac}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x10c, offset 0x563 - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x9b, hi: 0x9f}, - {value: 0x0014, lo: 0xa1, hi: 0xaf}, - // Block 0x10d, offset 0x566 - {value: 0x0024, lo: 0x80, hi: 0x86}, - {value: 0x0024, lo: 0x88, hi: 0x98}, - {value: 0x0024, lo: 0x9b, hi: 0xa1}, - {value: 0x0024, lo: 0xa3, hi: 0xa4}, - {value: 0x0024, lo: 0xa6, hi: 0xaa}, - // Block 0x10e, offset 0x56b - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0034, lo: 0x90, hi: 0x96}, - // Block 0x10f, offset 0x56d - {value: 0xb852, lo: 0x80, hi: 0x81}, - {value: 0xbb52, lo: 0x82, hi: 0x83}, - {value: 0x0024, lo: 0x84, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x110, offset 0x572 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x9f}, - {value: 0x0010, lo: 0xa1, hi: 0xa2}, - {value: 0x0010, lo: 0xa4, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb7}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - // Block 0x111, offset 0x57b - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x9b}, - {value: 0x0010, lo: 0xa1, hi: 0xa3}, - {value: 0x0010, lo: 0xa5, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xbb}, - // Block 0x112, offset 0x580 - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x113, offset 0x581 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x114, offset 0x584 - {value: 0x0013, lo: 0x80, hi: 0x89}, - // Block 0x115, offset 0x585 - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x116, offset 0x586 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0014, lo: 0xa0, hi: 0xbf}, - // Block 0x117, offset 0x588 - {value: 0x0014, lo: 0x80, hi: 0xbf}, - // Block 0x118, offset 0x589 - {value: 0x0014, lo: 0x80, hi: 0xaf}, -} - -// Total table size 14906 bytes (14KiB); checksum: 362795C7 diff --git a/backend/vendor/golang.org/x/text/cases/tables12.0.0.go b/backend/vendor/golang.org/x/text/cases/tables12.0.0.go deleted file mode 100644 index ae7dc240..00000000 --- a/backend/vendor/golang.org/x/text/cases/tables12.0.0.go +++ /dev/null @@ -1,2360 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 - -package cases - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "12.0.0" - -var xorData string = "" + // Size: 192 bytes - "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + - "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + - "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + - "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + - "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + - "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + - "\x0b!\x10\x00\x0b!0\x001\x00\x00\x0b(\x04\x00\x03\x04\x1e\x00\x0b)\x08" + - "\x00\x03\x0a\x00\x02:\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<" + - "\x00\x01&\x00\x01*\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01" + - "\x1e\x00\x01\x22" - -var exceptions string = "" + // Size: 2450 bytes - "\x00\x12\x12μΜΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x09II\x13\x1bʼnʼNʼN\x11" + - "\x09sSS\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj" + - "\x12\x12njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x1bǰJ̌J̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10" + - "\x12DZDz\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x1bⱾⱾ\x10\x1bⱿⱿ\x10\x1bⱯⱯ\x10\x1bⱭⱭ\x10" + - "\x1bⱰⱰ\x10\x1bꞫꞫ\x10\x1bꞬꞬ\x10\x1bꞍꞍ\x10\x1bꞪꞪ\x10\x1bꞮꞮ\x10\x1bⱢⱢ\x10" + - "\x1bꞭꞭ\x10\x1bⱮⱮ\x10\x1bⱤⱤ\x10\x1bꟅꟅ\x10\x1bꞱꞱ\x10\x1bꞲꞲ\x10\x1bꞰꞰ2\x12ι" + - "ΙΙ\x166ΐΪ́Ϊ́\x166ΰΫ́Ϋ́\x12\x12σΣΣ\x12\x12βΒΒ\x12\x12θΘΘ\x12\x12" + - "φΦΦ\x12\x12πΠΠ\x12\x12κΚΚ\x12\x12ρΡΡ\x12\x12εΕΕ\x14$եւԵՒԵւ\x10\x1bᲐა" + - "\x10\x1bᲑბ\x10\x1bᲒგ\x10\x1bᲓდ\x10\x1bᲔე\x10\x1bᲕვ\x10\x1bᲖზ\x10\x1bᲗთ" + - "\x10\x1bᲘი\x10\x1bᲙკ\x10\x1bᲚლ\x10\x1bᲛმ\x10\x1bᲜნ\x10\x1bᲝო\x10\x1bᲞპ" + - "\x10\x1bᲟჟ\x10\x1bᲠრ\x10\x1bᲡს\x10\x1bᲢტ\x10\x1bᲣუ\x10\x1bᲤფ\x10\x1bᲥქ" + - "\x10\x1bᲦღ\x10\x1bᲧყ\x10\x1bᲨშ\x10\x1bᲩჩ\x10\x1bᲪც\x10\x1bᲫძ\x10\x1bᲬწ" + - "\x10\x1bᲭჭ\x10\x1bᲮხ\x10\x1bᲯჯ\x10\x1bᲰჰ\x10\x1bᲱჱ\x10\x1bᲲჲ\x10\x1bᲳჳ" + - "\x10\x1bᲴჴ\x10\x1bᲵჵ\x10\x1bᲶჶ\x10\x1bᲷჷ\x10\x1bᲸჸ\x10\x1bᲹჹ\x10\x1bᲺჺ" + - "\x10\x1bᲽჽ\x10\x1bᲾჾ\x10\x1bᲿჿ\x12\x12вВВ\x12\x12дДД\x12\x12оОО\x12\x12с" + - "СС\x12\x12тТТ\x12\x12тТТ\x12\x12ъЪЪ\x12\x12ѣѢѢ\x13\x1bꙋꙊꙊ\x13\x1bẖH̱H̱" + - "\x13\x1bẗT̈T̈\x13\x1bẘW̊W̊\x13\x1bẙY̊Y̊\x13\x1baʾAʾAʾ\x13\x1bṡṠṠ\x12" + - "\x10ssß\x14$ὐΥ̓Υ̓\x166ὒΥ̓̀Υ̓̀\x166ὔΥ̓́Υ̓́\x166ὖΥ̓͂Υ̓͂\x15+ἀιἈΙᾈ" + - "\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ" + - "\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ\x15\x1dἄιᾄἌΙ\x15" + - "\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ\x15+ἢιἪΙᾚ\x15+ἣι" + - "ἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨΙ\x15\x1dἡιᾑἩΙ" + - "\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15\x1dἦιᾖἮΙ\x15" + - "\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ\x15+ὥιὭΙᾭ" + - "\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ\x15\x1dὣιᾣὫΙ" + - "\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰιᾺΙᾺͅ\x14#αιΑΙ" + - "ᾼ\x14$άιΆΙΆͅ\x14$ᾶΑ͂Α͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x12ιΙΙ\x15-ὴιῊΙ" + - "Ὴͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14$ῆΗ͂Η͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ\x166ῒΙ" + - "̈̀Ϊ̀\x166ΐΪ́Ϊ́\x14$ῖΙ͂Ι͂\x166ῗΪ͂Ϊ͂\x166ῢΫ̀Ϋ̀\x166ΰΫ́Ϋ" + - "́\x14$ῤΡ̓Ρ̓\x14$ῦΥ͂Υ͂\x166ῧΫ͂Ϋ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ" + - "\x14$ῶΩ͂Ω͂\x166ῶιΩ͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12" + - "\x10ɫɫ\x12\x10ɽɽ\x10\x12ȺȺ\x10\x12ȾȾ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12" + - "\x10ɒɒ\x12\x10ȿȿ\x12\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12" + - "\x10ɬɬ\x12\x10ɪɪ\x12\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x10ʂʂ\x12\x12ffFFFf" + - "\x12\x12fiFIFi\x12\x12flFLFl\x13\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12st" + - "STSt\x12\x12stSTSt\x14$մնՄՆՄն\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄ" + - "խ" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// caseTrie. Total size: 12396 bytes (12.11 KiB). Checksum: c0656238384c3da1. -type caseTrie struct{} - -func newCaseTrie(i int) *caseTrie { - return &caseTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 20: - return uint16(caseValues[n<<6+uint32(b)]) - default: - n -= 20 - return uint16(sparse.lookup(n, b)) - } -} - -// caseValues: 22 blocks, 1408 entries, 2816 bytes -// The third block is the zero block. -var caseValues = [1408]uint16{ - // Block 0x0, offset 0x0 - 0x27: 0x0054, - 0x2e: 0x0054, - 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, - 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, - // Block 0x1, offset 0x40 - 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, - 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, - 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, - 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, - 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, - 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, - 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, - 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, - 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, - 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, - 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, - 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, - 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, - 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, - 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, - 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, - 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, - 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, - 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, - 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, - // Block 0x4, offset 0x100 - 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x02db, 0x105: 0x0359, - 0x106: 0x03da, 0x107: 0x043b, 0x108: 0x04b9, 0x109: 0x053a, 0x10a: 0x059b, 0x10b: 0x0619, - 0x10c: 0x069a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, - 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, - 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, - 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, - 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, - 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, - 0x130: 0x06fa, 0x131: 0x07ab, 0x132: 0x0829, 0x133: 0x08aa, 0x134: 0x0113, 0x135: 0x0112, - 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, - 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, - // Block 0x5, offset 0x140 - 0x140: 0x0a8a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, - 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, - 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x0b0a, 0x151: 0x0b8a, - 0x152: 0x0c0a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, - 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x0c8a, 0x15d: 0x0012, - 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x0d0a, 0x162: 0x0012, 0x163: 0x2052, - 0x164: 0x0012, 0x165: 0x0d8a, 0x166: 0x0e0a, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, - 0x16a: 0x0e8a, 0x16b: 0x0f0a, 0x16c: 0x0f8a, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, - 0x170: 0x0012, 0x171: 0x100a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, - 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, - 0x17c: 0x0012, 0x17d: 0x108a, 0x17e: 0x0012, 0x17f: 0x0012, - // Block 0x6, offset 0x180 - 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x110a, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, - 0x186: 0x0012, 0x187: 0x118a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, - 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, - 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, - 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x120a, - 0x19e: 0x128a, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, - 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, - 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, - 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, - 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, - 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x130d, - 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, - 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, - 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, - 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, - 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, - 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, - 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, - 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, - 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, - 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, - // Block 0x8, offset 0x200 - 0x204: 0x0004, 0x205: 0x0004, - 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, - 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x138a, 0x211: 0x2013, - 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, - 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, - 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, - 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, - 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, - 0x230: 0x14ca, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, - 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, - 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, - // Block 0x9, offset 0x240 - 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x160a, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, - 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, - 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x168a, 0x251: 0x170a, - 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x178a, 0x256: 0x180a, 0x257: 0x1812, - 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, - 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, - 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, - 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, - 0x270: 0x188a, 0x271: 0x190a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x198a, - 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, - 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, - // Block 0xa, offset 0x280 - 0x280: 0x6852, 0x281: 0x6852, 0x282: 0x6852, 0x283: 0x6852, 0x284: 0x6852, 0x285: 0x6852, - 0x286: 0x6852, 0x287: 0x1a0a, 0x288: 0x0012, - 0x291: 0x0034, - 0x292: 0x0024, 0x293: 0x0024, 0x294: 0x0024, 0x295: 0x0024, 0x296: 0x0034, 0x297: 0x0024, - 0x298: 0x0024, 0x299: 0x0024, 0x29a: 0x0034, 0x29b: 0x0034, 0x29c: 0x0024, 0x29d: 0x0024, - 0x29e: 0x0024, 0x29f: 0x0024, 0x2a0: 0x0024, 0x2a1: 0x0024, 0x2a2: 0x0034, 0x2a3: 0x0034, - 0x2a4: 0x0034, 0x2a5: 0x0034, 0x2a6: 0x0034, 0x2a7: 0x0034, 0x2a8: 0x0024, 0x2a9: 0x0024, - 0x2aa: 0x0034, 0x2ab: 0x0024, 0x2ac: 0x0024, 0x2ad: 0x0034, 0x2ae: 0x0034, 0x2af: 0x0024, - 0x2b0: 0x0034, 0x2b1: 0x0034, 0x2b2: 0x0034, 0x2b3: 0x0034, 0x2b4: 0x0034, 0x2b5: 0x0034, - 0x2b6: 0x0034, 0x2b7: 0x0034, 0x2b8: 0x0034, 0x2b9: 0x0034, 0x2ba: 0x0034, 0x2bb: 0x0034, - 0x2bc: 0x0034, 0x2bd: 0x0034, 0x2bf: 0x0034, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x7053, 0x2c1: 0x7053, 0x2c2: 0x7053, 0x2c3: 0x7053, 0x2c4: 0x7053, 0x2c5: 0x7053, - 0x2c7: 0x7053, - 0x2cd: 0x7053, 0x2d0: 0x1aea, 0x2d1: 0x1b6a, - 0x2d2: 0x1bea, 0x2d3: 0x1c6a, 0x2d4: 0x1cea, 0x2d5: 0x1d6a, 0x2d6: 0x1dea, 0x2d7: 0x1e6a, - 0x2d8: 0x1eea, 0x2d9: 0x1f6a, 0x2da: 0x1fea, 0x2db: 0x206a, 0x2dc: 0x20ea, 0x2dd: 0x216a, - 0x2de: 0x21ea, 0x2df: 0x226a, 0x2e0: 0x22ea, 0x2e1: 0x236a, 0x2e2: 0x23ea, 0x2e3: 0x246a, - 0x2e4: 0x24ea, 0x2e5: 0x256a, 0x2e6: 0x25ea, 0x2e7: 0x266a, 0x2e8: 0x26ea, 0x2e9: 0x276a, - 0x2ea: 0x27ea, 0x2eb: 0x286a, 0x2ec: 0x28ea, 0x2ed: 0x296a, 0x2ee: 0x29ea, 0x2ef: 0x2a6a, - 0x2f0: 0x2aea, 0x2f1: 0x2b6a, 0x2f2: 0x2bea, 0x2f3: 0x2c6a, 0x2f4: 0x2cea, 0x2f5: 0x2d6a, - 0x2f6: 0x2dea, 0x2f7: 0x2e6a, 0x2f8: 0x2eea, 0x2f9: 0x2f6a, 0x2fa: 0x2fea, - 0x2fc: 0x0014, 0x2fd: 0x306a, 0x2fe: 0x30ea, 0x2ff: 0x316a, - // Block 0xc, offset 0x300 - 0x300: 0x0812, 0x301: 0x0812, 0x302: 0x0812, 0x303: 0x0812, 0x304: 0x0812, 0x305: 0x0812, - 0x308: 0x0813, 0x309: 0x0813, 0x30a: 0x0813, 0x30b: 0x0813, - 0x30c: 0x0813, 0x30d: 0x0813, 0x310: 0x3b1a, 0x311: 0x0812, - 0x312: 0x3bfa, 0x313: 0x0812, 0x314: 0x3d3a, 0x315: 0x0812, 0x316: 0x3e7a, 0x317: 0x0812, - 0x319: 0x0813, 0x31b: 0x0813, 0x31d: 0x0813, - 0x31f: 0x0813, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0x0812, 0x323: 0x0812, - 0x324: 0x0812, 0x325: 0x0812, 0x326: 0x0812, 0x327: 0x0812, 0x328: 0x0813, 0x329: 0x0813, - 0x32a: 0x0813, 0x32b: 0x0813, 0x32c: 0x0813, 0x32d: 0x0813, 0x32e: 0x0813, 0x32f: 0x0813, - 0x330: 0x9252, 0x331: 0x9252, 0x332: 0x9552, 0x333: 0x9552, 0x334: 0x9852, 0x335: 0x9852, - 0x336: 0x9b52, 0x337: 0x9b52, 0x338: 0x9e52, 0x339: 0x9e52, 0x33a: 0xa152, 0x33b: 0xa152, - 0x33c: 0x4d52, 0x33d: 0x4d52, - // Block 0xd, offset 0x340 - 0x340: 0x3fba, 0x341: 0x40aa, 0x342: 0x419a, 0x343: 0x428a, 0x344: 0x437a, 0x345: 0x446a, - 0x346: 0x455a, 0x347: 0x464a, 0x348: 0x4739, 0x349: 0x4829, 0x34a: 0x4919, 0x34b: 0x4a09, - 0x34c: 0x4af9, 0x34d: 0x4be9, 0x34e: 0x4cd9, 0x34f: 0x4dc9, 0x350: 0x4eba, 0x351: 0x4faa, - 0x352: 0x509a, 0x353: 0x518a, 0x354: 0x527a, 0x355: 0x536a, 0x356: 0x545a, 0x357: 0x554a, - 0x358: 0x5639, 0x359: 0x5729, 0x35a: 0x5819, 0x35b: 0x5909, 0x35c: 0x59f9, 0x35d: 0x5ae9, - 0x35e: 0x5bd9, 0x35f: 0x5cc9, 0x360: 0x5dba, 0x361: 0x5eaa, 0x362: 0x5f9a, 0x363: 0x608a, - 0x364: 0x617a, 0x365: 0x626a, 0x366: 0x635a, 0x367: 0x644a, 0x368: 0x6539, 0x369: 0x6629, - 0x36a: 0x6719, 0x36b: 0x6809, 0x36c: 0x68f9, 0x36d: 0x69e9, 0x36e: 0x6ad9, 0x36f: 0x6bc9, - 0x370: 0x0812, 0x371: 0x0812, 0x372: 0x6cba, 0x373: 0x6dca, 0x374: 0x6e9a, - 0x376: 0x6f7a, 0x377: 0x705a, 0x378: 0x0813, 0x379: 0x0813, 0x37a: 0x9253, 0x37b: 0x9253, - 0x37c: 0x7199, 0x37d: 0x0004, 0x37e: 0x726a, 0x37f: 0x0004, - // Block 0xe, offset 0x380 - 0x380: 0x0004, 0x381: 0x0004, 0x382: 0x72ea, 0x383: 0x73fa, 0x384: 0x74ca, - 0x386: 0x75aa, 0x387: 0x768a, 0x388: 0x9553, 0x389: 0x9553, 0x38a: 0x9853, 0x38b: 0x9853, - 0x38c: 0x77c9, 0x38d: 0x0004, 0x38e: 0x0004, 0x38f: 0x0004, 0x390: 0x0812, 0x391: 0x0812, - 0x392: 0x789a, 0x393: 0x79da, 0x396: 0x7b1a, 0x397: 0x7bfa, - 0x398: 0x0813, 0x399: 0x0813, 0x39a: 0x9b53, 0x39b: 0x9b53, 0x39d: 0x0004, - 0x39e: 0x0004, 0x39f: 0x0004, 0x3a0: 0x0812, 0x3a1: 0x0812, 0x3a2: 0x7d3a, 0x3a3: 0x7e7a, - 0x3a4: 0x7fba, 0x3a5: 0x0912, 0x3a6: 0x809a, 0x3a7: 0x817a, 0x3a8: 0x0813, 0x3a9: 0x0813, - 0x3aa: 0xa153, 0x3ab: 0xa153, 0x3ac: 0x0913, 0x3ad: 0x0004, 0x3ae: 0x0004, 0x3af: 0x0004, - 0x3b2: 0x82ba, 0x3b3: 0x83ca, 0x3b4: 0x849a, - 0x3b6: 0x857a, 0x3b7: 0x865a, 0x3b8: 0x9e53, 0x3b9: 0x9e53, 0x3ba: 0x4d53, 0x3bb: 0x4d53, - 0x3bc: 0x8799, 0x3bd: 0x0004, 0x3be: 0x0004, - // Block 0xf, offset 0x3c0 - 0x3c2: 0x0013, - 0x3c7: 0x0013, 0x3ca: 0x0012, 0x3cb: 0x0013, - 0x3cc: 0x0013, 0x3cd: 0x0013, 0x3ce: 0x0012, 0x3cf: 0x0012, 0x3d0: 0x0013, 0x3d1: 0x0013, - 0x3d2: 0x0013, 0x3d3: 0x0012, 0x3d5: 0x0013, - 0x3d9: 0x0013, 0x3da: 0x0013, 0x3db: 0x0013, 0x3dc: 0x0013, 0x3dd: 0x0013, - 0x3e4: 0x0013, 0x3e6: 0x886b, 0x3e8: 0x0013, - 0x3ea: 0x88cb, 0x3eb: 0x890b, 0x3ec: 0x0013, 0x3ed: 0x0013, 0x3ef: 0x0012, - 0x3f0: 0x0013, 0x3f1: 0x0013, 0x3f2: 0xa453, 0x3f3: 0x0013, 0x3f4: 0x0012, 0x3f5: 0x0010, - 0x3f6: 0x0010, 0x3f7: 0x0010, 0x3f8: 0x0010, 0x3f9: 0x0012, - 0x3fc: 0x0012, 0x3fd: 0x0012, 0x3fe: 0x0013, 0x3ff: 0x0013, - // Block 0x10, offset 0x400 - 0x400: 0x1a13, 0x401: 0x1a13, 0x402: 0x1e13, 0x403: 0x1e13, 0x404: 0x1a13, 0x405: 0x1a13, - 0x406: 0x2613, 0x407: 0x2613, 0x408: 0x2a13, 0x409: 0x2a13, 0x40a: 0x2e13, 0x40b: 0x2e13, - 0x40c: 0x2a13, 0x40d: 0x2a13, 0x40e: 0x2613, 0x40f: 0x2613, 0x410: 0xa752, 0x411: 0xa752, - 0x412: 0xaa52, 0x413: 0xaa52, 0x414: 0xad52, 0x415: 0xad52, 0x416: 0xaa52, 0x417: 0xaa52, - 0x418: 0xa752, 0x419: 0xa752, 0x41a: 0x1a12, 0x41b: 0x1a12, 0x41c: 0x1e12, 0x41d: 0x1e12, - 0x41e: 0x1a12, 0x41f: 0x1a12, 0x420: 0x2612, 0x421: 0x2612, 0x422: 0x2a12, 0x423: 0x2a12, - 0x424: 0x2e12, 0x425: 0x2e12, 0x426: 0x2a12, 0x427: 0x2a12, 0x428: 0x2612, 0x429: 0x2612, - // Block 0x11, offset 0x440 - 0x440: 0x6552, 0x441: 0x6552, 0x442: 0x6552, 0x443: 0x6552, 0x444: 0x6552, 0x445: 0x6552, - 0x446: 0x6552, 0x447: 0x6552, 0x448: 0x6552, 0x449: 0x6552, 0x44a: 0x6552, 0x44b: 0x6552, - 0x44c: 0x6552, 0x44d: 0x6552, 0x44e: 0x6552, 0x44f: 0x6552, 0x450: 0xb052, 0x451: 0xb052, - 0x452: 0xb052, 0x453: 0xb052, 0x454: 0xb052, 0x455: 0xb052, 0x456: 0xb052, 0x457: 0xb052, - 0x458: 0xb052, 0x459: 0xb052, 0x45a: 0xb052, 0x45b: 0xb052, 0x45c: 0xb052, 0x45d: 0xb052, - 0x45e: 0xb052, 0x460: 0x0113, 0x461: 0x0112, 0x462: 0x896b, 0x463: 0x8b53, - 0x464: 0x89cb, 0x465: 0x8a2a, 0x466: 0x8a8a, 0x467: 0x0f13, 0x468: 0x0f12, 0x469: 0x0313, - 0x46a: 0x0312, 0x46b: 0x0713, 0x46c: 0x0712, 0x46d: 0x8aeb, 0x46e: 0x8b4b, 0x46f: 0x8bab, - 0x470: 0x8c0b, 0x471: 0x0012, 0x472: 0x0113, 0x473: 0x0112, 0x474: 0x0012, 0x475: 0x0313, - 0x476: 0x0312, 0x477: 0x0012, 0x478: 0x0012, 0x479: 0x0012, 0x47a: 0x0012, 0x47b: 0x0012, - 0x47c: 0x0015, 0x47d: 0x0015, 0x47e: 0x8c6b, 0x47f: 0x8ccb, - // Block 0x12, offset 0x480 - 0x480: 0x0113, 0x481: 0x0112, 0x482: 0x0113, 0x483: 0x0112, 0x484: 0x0113, 0x485: 0x0112, - 0x486: 0x0113, 0x487: 0x0112, 0x488: 0x0014, 0x489: 0x0014, 0x48a: 0x0014, 0x48b: 0x0713, - 0x48c: 0x0712, 0x48d: 0x8d2b, 0x48e: 0x0012, 0x48f: 0x0010, 0x490: 0x0113, 0x491: 0x0112, - 0x492: 0x0113, 0x493: 0x0112, 0x494: 0x6552, 0x495: 0x0012, 0x496: 0x0113, 0x497: 0x0112, - 0x498: 0x0113, 0x499: 0x0112, 0x49a: 0x0113, 0x49b: 0x0112, 0x49c: 0x0113, 0x49d: 0x0112, - 0x49e: 0x0113, 0x49f: 0x0112, 0x4a0: 0x0113, 0x4a1: 0x0112, 0x4a2: 0x0113, 0x4a3: 0x0112, - 0x4a4: 0x0113, 0x4a5: 0x0112, 0x4a6: 0x0113, 0x4a7: 0x0112, 0x4a8: 0x0113, 0x4a9: 0x0112, - 0x4aa: 0x8d8b, 0x4ab: 0x8deb, 0x4ac: 0x8e4b, 0x4ad: 0x8eab, 0x4ae: 0x8f0b, 0x4af: 0x0012, - 0x4b0: 0x8f6b, 0x4b1: 0x8fcb, 0x4b2: 0x902b, 0x4b3: 0xb353, 0x4b4: 0x0113, 0x4b5: 0x0112, - 0x4b6: 0x0113, 0x4b7: 0x0112, 0x4b8: 0x0113, 0x4b9: 0x0112, 0x4ba: 0x0113, 0x4bb: 0x0112, - 0x4bc: 0x0113, 0x4bd: 0x0112, 0x4be: 0x0113, 0x4bf: 0x0112, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x90ea, 0x4c1: 0x916a, 0x4c2: 0x91ea, 0x4c3: 0x926a, 0x4c4: 0x931a, 0x4c5: 0x93ca, - 0x4c6: 0x944a, - 0x4d3: 0x94ca, 0x4d4: 0x95aa, 0x4d5: 0x968a, 0x4d6: 0x976a, 0x4d7: 0x984a, - 0x4dd: 0x0010, - 0x4de: 0x0034, 0x4df: 0x0010, 0x4e0: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, 0x4e3: 0x0010, - 0x4e4: 0x0010, 0x4e5: 0x0010, 0x4e6: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, - 0x4ea: 0x0010, 0x4eb: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, - 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f3: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, - 0x4f6: 0x0010, 0x4f8: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, - 0x4fc: 0x0010, 0x4fe: 0x0010, - // Block 0x14, offset 0x500 - 0x500: 0x2213, 0x501: 0x2213, 0x502: 0x2613, 0x503: 0x2613, 0x504: 0x2213, 0x505: 0x2213, - 0x506: 0x2e13, 0x507: 0x2e13, 0x508: 0x2213, 0x509: 0x2213, 0x50a: 0x2613, 0x50b: 0x2613, - 0x50c: 0x2213, 0x50d: 0x2213, 0x50e: 0x3e13, 0x50f: 0x3e13, 0x510: 0x2213, 0x511: 0x2213, - 0x512: 0x2613, 0x513: 0x2613, 0x514: 0x2213, 0x515: 0x2213, 0x516: 0x2e13, 0x517: 0x2e13, - 0x518: 0x2213, 0x519: 0x2213, 0x51a: 0x2613, 0x51b: 0x2613, 0x51c: 0x2213, 0x51d: 0x2213, - 0x51e: 0xbc53, 0x51f: 0xbc53, 0x520: 0xbf53, 0x521: 0xbf53, 0x522: 0x2212, 0x523: 0x2212, - 0x524: 0x2612, 0x525: 0x2612, 0x526: 0x2212, 0x527: 0x2212, 0x528: 0x2e12, 0x529: 0x2e12, - 0x52a: 0x2212, 0x52b: 0x2212, 0x52c: 0x2612, 0x52d: 0x2612, 0x52e: 0x2212, 0x52f: 0x2212, - 0x530: 0x3e12, 0x531: 0x3e12, 0x532: 0x2212, 0x533: 0x2212, 0x534: 0x2612, 0x535: 0x2612, - 0x536: 0x2212, 0x537: 0x2212, 0x538: 0x2e12, 0x539: 0x2e12, 0x53a: 0x2212, 0x53b: 0x2212, - 0x53c: 0x2612, 0x53d: 0x2612, 0x53e: 0x2212, 0x53f: 0x2212, - // Block 0x15, offset 0x540 - 0x542: 0x0010, - 0x547: 0x0010, 0x549: 0x0010, 0x54b: 0x0010, - 0x54d: 0x0010, 0x54e: 0x0010, 0x54f: 0x0010, 0x551: 0x0010, - 0x552: 0x0010, 0x554: 0x0010, 0x557: 0x0010, - 0x559: 0x0010, 0x55b: 0x0010, 0x55d: 0x0010, - 0x55f: 0x0010, 0x561: 0x0010, 0x562: 0x0010, - 0x564: 0x0010, 0x567: 0x0010, 0x568: 0x0010, 0x569: 0x0010, - 0x56a: 0x0010, 0x56c: 0x0010, 0x56d: 0x0010, 0x56e: 0x0010, 0x56f: 0x0010, - 0x570: 0x0010, 0x571: 0x0010, 0x572: 0x0010, 0x574: 0x0010, 0x575: 0x0010, - 0x576: 0x0010, 0x577: 0x0010, 0x579: 0x0010, 0x57a: 0x0010, 0x57b: 0x0010, - 0x57c: 0x0010, 0x57e: 0x0010, -} - -// caseIndex: 25 blocks, 1600 entries, 3200 bytes -// Block 0 is the zero block. -var caseIndex = [1600]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x14, 0xc3: 0x15, 0xc4: 0x16, 0xc5: 0x17, 0xc6: 0x01, 0xc7: 0x02, - 0xc8: 0x18, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x19, 0xcc: 0x1a, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, - 0xd0: 0x1b, 0xd1: 0x1c, 0xd2: 0x1d, 0xd3: 0x1e, 0xd4: 0x1f, 0xd5: 0x20, 0xd6: 0x08, 0xd7: 0x21, - 0xd8: 0x22, 0xd9: 0x23, 0xda: 0x24, 0xdb: 0x25, 0xdc: 0x26, 0xdd: 0x27, 0xde: 0x28, 0xdf: 0x29, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, - 0xf0: 0x14, 0xf3: 0x16, - // Block 0x4, offset 0x100 - 0x120: 0x2a, 0x121: 0x2b, 0x122: 0x2c, 0x123: 0x2d, 0x124: 0x2e, 0x125: 0x2f, 0x126: 0x30, 0x127: 0x31, - 0x128: 0x32, 0x129: 0x33, 0x12a: 0x34, 0x12b: 0x35, 0x12c: 0x36, 0x12d: 0x37, 0x12e: 0x38, 0x12f: 0x39, - 0x130: 0x3a, 0x131: 0x3b, 0x132: 0x3c, 0x133: 0x3d, 0x134: 0x3e, 0x135: 0x3f, 0x136: 0x40, 0x137: 0x41, - 0x138: 0x42, 0x139: 0x43, 0x13a: 0x44, 0x13b: 0x45, 0x13c: 0x46, 0x13d: 0x47, 0x13e: 0x48, 0x13f: 0x49, - // Block 0x5, offset 0x140 - 0x140: 0x4a, 0x141: 0x4b, 0x142: 0x4c, 0x143: 0x09, 0x144: 0x24, 0x145: 0x24, 0x146: 0x24, 0x147: 0x24, - 0x148: 0x24, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, - 0x150: 0x54, 0x151: 0x24, 0x152: 0x24, 0x153: 0x24, 0x154: 0x24, 0x155: 0x24, 0x156: 0x24, 0x157: 0x24, - 0x158: 0x24, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, - 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, - 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69, - 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71, - 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x0a, 0x17e: 0x0b, 0x17f: 0x0c, - // Block 0x6, offset 0x180 - 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0d, 0x185: 0x79, 0x186: 0x7a, - 0x192: 0x7b, 0x193: 0x0e, - 0x1b0: 0x7c, 0x1b1: 0x0f, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81, - 0x1b8: 0x82, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x24, 0x1c6: 0x87, - // Block 0x8, offset 0x200 - 0x200: 0x88, 0x201: 0x24, 0x202: 0x24, 0x203: 0x24, 0x204: 0x24, 0x205: 0x24, 0x206: 0x24, 0x207: 0x24, - 0x208: 0x24, 0x209: 0x24, 0x20a: 0x24, 0x20b: 0x24, 0x20c: 0x24, 0x20d: 0x24, 0x20e: 0x24, 0x20f: 0x24, - 0x210: 0x24, 0x211: 0x24, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x24, 0x215: 0x24, 0x216: 0x24, 0x217: 0x24, - 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x10, 0x21f: 0x91, - 0x220: 0x92, 0x221: 0x93, 0x222: 0x24, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98, - 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0, - 0x230: 0x24, 0x231: 0x24, 0x232: 0x24, 0x233: 0x24, 0x234: 0x24, 0x235: 0x24, 0x236: 0x24, 0x237: 0x24, - 0x238: 0x24, 0x239: 0x24, 0x23a: 0x24, 0x23b: 0x24, 0x23c: 0x24, 0x23d: 0x24, 0x23e: 0x24, 0x23f: 0x24, - // Block 0x9, offset 0x240 - 0x240: 0x24, 0x241: 0x24, 0x242: 0x24, 0x243: 0x24, 0x244: 0x24, 0x245: 0x24, 0x246: 0x24, 0x247: 0x24, - 0x248: 0x24, 0x249: 0x24, 0x24a: 0x24, 0x24b: 0x24, 0x24c: 0x24, 0x24d: 0x24, 0x24e: 0x24, 0x24f: 0x24, - 0x250: 0x24, 0x251: 0x24, 0x252: 0x24, 0x253: 0x24, 0x254: 0x24, 0x255: 0x24, 0x256: 0x24, 0x257: 0x24, - 0x258: 0x24, 0x259: 0x24, 0x25a: 0x24, 0x25b: 0x24, 0x25c: 0x24, 0x25d: 0x24, 0x25e: 0x24, 0x25f: 0x24, - 0x260: 0x24, 0x261: 0x24, 0x262: 0x24, 0x263: 0x24, 0x264: 0x24, 0x265: 0x24, 0x266: 0x24, 0x267: 0x24, - 0x268: 0x24, 0x269: 0x24, 0x26a: 0x24, 0x26b: 0x24, 0x26c: 0x24, 0x26d: 0x24, 0x26e: 0x24, 0x26f: 0x24, - 0x270: 0x24, 0x271: 0x24, 0x272: 0x24, 0x273: 0x24, 0x274: 0x24, 0x275: 0x24, 0x276: 0x24, 0x277: 0x24, - 0x278: 0x24, 0x279: 0x24, 0x27a: 0x24, 0x27b: 0x24, 0x27c: 0x24, 0x27d: 0x24, 0x27e: 0x24, 0x27f: 0x24, - // Block 0xa, offset 0x280 - 0x280: 0x24, 0x281: 0x24, 0x282: 0x24, 0x283: 0x24, 0x284: 0x24, 0x285: 0x24, 0x286: 0x24, 0x287: 0x24, - 0x288: 0x24, 0x289: 0x24, 0x28a: 0x24, 0x28b: 0x24, 0x28c: 0x24, 0x28d: 0x24, 0x28e: 0x24, 0x28f: 0x24, - 0x290: 0x24, 0x291: 0x24, 0x292: 0x24, 0x293: 0x24, 0x294: 0x24, 0x295: 0x24, 0x296: 0x24, 0x297: 0x24, - 0x298: 0x24, 0x299: 0x24, 0x29a: 0x24, 0x29b: 0x24, 0x29c: 0x24, 0x29d: 0x24, 0x29e: 0xa1, 0x29f: 0xa2, - // Block 0xb, offset 0x2c0 - 0x2ec: 0x11, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5, - 0x2f0: 0x24, 0x2f1: 0x24, 0x2f2: 0x24, 0x2f3: 0x24, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9, - 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x24, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0, - // Block 0xc, offset 0x300 - 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x24, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5, - 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb, - 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1, - 0x318: 0x24, 0x319: 0x24, 0x31a: 0x24, 0x31b: 0x24, 0x31c: 0xc2, 0x31d: 0xc3, - 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9, - 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf, - 0x330: 0x24, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2, 0x334: 0xd3, - 0x33c: 0xd4, 0x33d: 0xd5, 0x33f: 0xd6, - // Block 0xd, offset 0x340 - 0x340: 0xd7, 0x341: 0xd8, 0x342: 0xd9, 0x343: 0xda, 0x344: 0xdb, 0x345: 0xdc, 0x346: 0xdd, 0x347: 0xde, - 0x348: 0xdf, 0x34a: 0xe0, 0x34b: 0xe1, 0x34c: 0xe2, 0x34d: 0xe3, - 0x350: 0xe4, 0x351: 0xe5, 0x352: 0xe6, 0x353: 0xe7, 0x356: 0xe8, 0x357: 0xe9, - 0x358: 0xea, 0x359: 0xeb, 0x35a: 0xec, 0x35b: 0xed, 0x35c: 0xee, - 0x360: 0xef, 0x362: 0xf0, 0x363: 0xf1, 0x366: 0xf2, 0x367: 0xf3, - 0x368: 0xf4, 0x369: 0xf5, 0x36a: 0xf6, 0x36b: 0xf7, - 0x370: 0xf8, 0x371: 0xf9, 0x372: 0xfa, 0x374: 0xfb, 0x375: 0xfc, 0x376: 0xfd, - 0x37b: 0xfe, - // Block 0xe, offset 0x380 - 0x380: 0x24, 0x381: 0x24, 0x382: 0x24, 0x383: 0x24, 0x384: 0x24, 0x385: 0x24, 0x386: 0x24, 0x387: 0x24, - 0x388: 0x24, 0x389: 0x24, 0x38a: 0x24, 0x38b: 0x24, 0x38c: 0x24, 0x38d: 0x24, 0x38e: 0xff, - 0x390: 0x24, 0x391: 0x100, 0x392: 0x24, 0x393: 0x24, 0x394: 0x24, 0x395: 0x101, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x24, 0x3c1: 0x24, 0x3c2: 0x24, 0x3c3: 0x24, 0x3c4: 0x24, 0x3c5: 0x24, 0x3c6: 0x24, 0x3c7: 0x24, - 0x3c8: 0x24, 0x3c9: 0x24, 0x3ca: 0x24, 0x3cb: 0x24, 0x3cc: 0x24, 0x3cd: 0x24, 0x3ce: 0x24, 0x3cf: 0x24, - 0x3d0: 0x102, - // Block 0x10, offset 0x400 - 0x410: 0x24, 0x411: 0x24, 0x412: 0x24, 0x413: 0x24, 0x414: 0x24, 0x415: 0x24, 0x416: 0x24, 0x417: 0x24, - 0x418: 0x24, 0x419: 0x103, - // Block 0x11, offset 0x440 - 0x460: 0x24, 0x461: 0x24, 0x462: 0x24, 0x463: 0x24, 0x464: 0x24, 0x465: 0x24, 0x466: 0x24, 0x467: 0x24, - 0x468: 0xf7, 0x469: 0x104, 0x46b: 0x105, 0x46c: 0x106, 0x46d: 0x107, 0x46e: 0x108, - 0x479: 0x109, 0x47c: 0x24, 0x47d: 0x10a, 0x47e: 0x10b, 0x47f: 0x10c, - // Block 0x12, offset 0x480 - 0x4b0: 0x24, 0x4b1: 0x10d, 0x4b2: 0x10e, - // Block 0x13, offset 0x4c0 - 0x4c5: 0x10f, 0x4c6: 0x110, - 0x4c9: 0x111, - 0x4d0: 0x112, 0x4d1: 0x113, 0x4d2: 0x114, 0x4d3: 0x115, 0x4d4: 0x116, 0x4d5: 0x117, 0x4d6: 0x118, 0x4d7: 0x119, - 0x4d8: 0x11a, 0x4d9: 0x11b, 0x4da: 0x11c, 0x4db: 0x11d, 0x4dc: 0x11e, 0x4dd: 0x11f, 0x4de: 0x120, 0x4df: 0x121, - 0x4e8: 0x122, 0x4e9: 0x123, 0x4ea: 0x124, - // Block 0x14, offset 0x500 - 0x500: 0x125, 0x504: 0x126, 0x505: 0x127, - 0x50b: 0x128, - 0x520: 0x24, 0x521: 0x24, 0x522: 0x24, 0x523: 0x129, 0x524: 0x12, 0x525: 0x12a, - 0x538: 0x12b, 0x539: 0x13, 0x53a: 0x12c, - // Block 0x15, offset 0x540 - 0x544: 0x12d, 0x545: 0x12e, 0x546: 0x12f, - 0x54f: 0x130, - // Block 0x16, offset 0x580 - 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, - 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x131, 0x5c1: 0x132, 0x5c4: 0x132, 0x5c5: 0x132, 0x5c6: 0x132, 0x5c7: 0x133, - // Block 0x18, offset 0x600 - 0x620: 0x15, -} - -// sparseOffsets: 289 entries, 578 bytes -var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x35, 0x38, 0x3c, 0x3f, 0x43, 0x4d, 0x4f, 0x57, 0x5e, 0x63, 0x71, 0x72, 0x80, 0x8f, 0x99, 0x9c, 0xa3, 0xab, 0xae, 0xb0, 0xbf, 0xc5, 0xd3, 0xde, 0xeb, 0xf6, 0x102, 0x10c, 0x118, 0x123, 0x12f, 0x13b, 0x143, 0x14c, 0x156, 0x161, 0x16d, 0x174, 0x17f, 0x184, 0x18c, 0x18f, 0x194, 0x198, 0x19c, 0x1a3, 0x1ac, 0x1b4, 0x1b5, 0x1be, 0x1c5, 0x1cd, 0x1d3, 0x1d8, 0x1dc, 0x1df, 0x1e1, 0x1e4, 0x1e9, 0x1ea, 0x1ec, 0x1ee, 0x1f0, 0x1f7, 0x1fc, 0x200, 0x209, 0x20c, 0x20f, 0x215, 0x216, 0x221, 0x222, 0x223, 0x228, 0x235, 0x23d, 0x245, 0x24e, 0x257, 0x260, 0x265, 0x268, 0x273, 0x281, 0x283, 0x28a, 0x28e, 0x29a, 0x29b, 0x2a6, 0x2ae, 0x2b6, 0x2bc, 0x2bd, 0x2cb, 0x2d0, 0x2d3, 0x2d8, 0x2dc, 0x2e2, 0x2e7, 0x2ea, 0x2ef, 0x2f4, 0x2f5, 0x2fb, 0x2fd, 0x2fe, 0x300, 0x302, 0x305, 0x306, 0x308, 0x30b, 0x311, 0x315, 0x317, 0x31c, 0x323, 0x32b, 0x334, 0x335, 0x33e, 0x342, 0x347, 0x34f, 0x355, 0x35b, 0x365, 0x36a, 0x373, 0x379, 0x380, 0x384, 0x38c, 0x38e, 0x390, 0x393, 0x395, 0x397, 0x398, 0x399, 0x39b, 0x39d, 0x3a3, 0x3a8, 0x3aa, 0x3b1, 0x3b4, 0x3b6, 0x3bc, 0x3c1, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c8, 0x3ca, 0x3cc, 0x3cf, 0x3d1, 0x3d4, 0x3dc, 0x3df, 0x3e3, 0x3eb, 0x3ed, 0x3ee, 0x3ef, 0x3f1, 0x3f7, 0x3f9, 0x3fa, 0x3fc, 0x3fe, 0x400, 0x40d, 0x40e, 0x40f, 0x413, 0x415, 0x416, 0x417, 0x418, 0x419, 0x41c, 0x41f, 0x425, 0x426, 0x42a, 0x42e, 0x434, 0x437, 0x43e, 0x442, 0x446, 0x44d, 0x456, 0x45c, 0x462, 0x46c, 0x476, 0x478, 0x481, 0x487, 0x48d, 0x493, 0x496, 0x49c, 0x49f, 0x4a8, 0x4a9, 0x4b0, 0x4b4, 0x4b5, 0x4b8, 0x4ba, 0x4c1, 0x4c9, 0x4cf, 0x4d5, 0x4d6, 0x4dc, 0x4df, 0x4e7, 0x4ee, 0x4f8, 0x500, 0x503, 0x504, 0x505, 0x506, 0x508, 0x509, 0x50b, 0x50d, 0x50f, 0x513, 0x514, 0x516, 0x519, 0x51b, 0x51d, 0x51f, 0x524, 0x529, 0x52d, 0x52e, 0x531, 0x535, 0x540, 0x544, 0x54c, 0x551, 0x555, 0x558, 0x55c, 0x55f, 0x562, 0x567, 0x56b, 0x56f, 0x573, 0x577, 0x579, 0x57b, 0x57e, 0x583, 0x586, 0x588, 0x58b, 0x58d, 0x593, 0x59c, 0x5a1, 0x5a2, 0x5a5, 0x5a6, 0x5a7, 0x5a9, 0x5aa, 0x5ab} - -// sparseValues: 1451 entries, 5804 bytes -var sparseValues = [1451]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0004, lo: 0xa8, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xaa}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0004, lo: 0xaf, hi: 0xaf}, - {value: 0x0004, lo: 0xb4, hi: 0xb4}, - {value: 0x001a, lo: 0xb5, hi: 0xb5}, - {value: 0x0054, lo: 0xb7, hi: 0xb7}, - {value: 0x0004, lo: 0xb8, hi: 0xb8}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - // Block 0x1, offset 0x9 - {value: 0x2013, lo: 0x80, hi: 0x96}, - {value: 0x2013, lo: 0x98, hi: 0x9e}, - {value: 0x009a, lo: 0x9f, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xb6}, - {value: 0x2012, lo: 0xb8, hi: 0xbe}, - {value: 0x0252, lo: 0xbf, hi: 0xbf}, - // Block 0x2, offset 0xf - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x011b, lo: 0xb0, hi: 0xb0}, - {value: 0x019a, lo: 0xb1, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb7}, - {value: 0x0012, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x0553, lo: 0xbf, hi: 0xbf}, - // Block 0x3, offset 0x18 - {value: 0x0552, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x01da, lo: 0x89, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xb7}, - {value: 0x0253, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x028a, lo: 0xbf, hi: 0xbf}, - // Block 0x4, offset 0x24 - {value: 0x0117, lo: 0x80, hi: 0x9f}, - {value: 0x2f53, lo: 0xa0, hi: 0xa0}, - {value: 0x0012, lo: 0xa1, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xb3}, - {value: 0x0012, lo: 0xb4, hi: 0xb9}, - {value: 0x090b, lo: 0xba, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x2953, lo: 0xbd, hi: 0xbd}, - {value: 0x098b, lo: 0xbe, hi: 0xbe}, - {value: 0x0a0a, lo: 0xbf, hi: 0xbf}, - // Block 0x5, offset 0x2e - {value: 0x0015, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x97}, - {value: 0x0004, lo: 0x98, hi: 0x9d}, - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0015, lo: 0xa0, hi: 0xa4}, - {value: 0x0004, lo: 0xa5, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xbf}, - // Block 0x6, offset 0x35 - {value: 0x0024, lo: 0x80, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbf}, - // Block 0x7, offset 0x38 - {value: 0x6553, lo: 0x80, hi: 0x8f}, - {value: 0x2013, lo: 0x90, hi: 0x9f}, - {value: 0x5f53, lo: 0xa0, hi: 0xaf}, - {value: 0x2012, lo: 0xb0, hi: 0xbf}, - // Block 0x8, offset 0x3c - {value: 0x5f52, lo: 0x80, hi: 0x8f}, - {value: 0x6552, lo: 0x90, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x9, offset 0x3f - {value: 0x0117, lo: 0x80, hi: 0x81}, - {value: 0x0024, lo: 0x83, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xbf}, - // Block 0xa, offset 0x43 - {value: 0x0f13, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x0316, lo: 0x89, hi: 0x8a}, - {value: 0x0716, lo: 0x8b, hi: 0x8c}, - {value: 0x0316, lo: 0x8d, hi: 0x8e}, - {value: 0x0f12, lo: 0x8f, hi: 0x8f}, - {value: 0x0117, lo: 0x90, hi: 0xbf}, - // Block 0xb, offset 0x4d - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x6553, lo: 0xb1, hi: 0xbf}, - // Block 0xc, offset 0x4f - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6853, lo: 0x90, hi: 0x96}, - {value: 0x0014, lo: 0x99, hi: 0x99}, - {value: 0x0010, lo: 0x9b, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0xa0, hi: 0xa0}, - {value: 0x6552, lo: 0xa1, hi: 0xaf}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0xd, offset 0x57 - {value: 0x0034, lo: 0x81, hi: 0x82}, - {value: 0x0024, lo: 0x84, hi: 0x84}, - {value: 0x0034, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xaa}, - {value: 0x0010, lo: 0xaf, hi: 0xb3}, - {value: 0x0054, lo: 0xb4, hi: 0xb4}, - // Block 0xe, offset 0x5e - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0024, lo: 0x90, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0014, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xf, offset 0x63 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9c}, - {value: 0x0024, lo: 0x9d, hi: 0x9e}, - {value: 0x0034, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x10, offset 0x71 - {value: 0x0010, lo: 0x80, hi: 0xbf}, - // Block 0x11, offset 0x72 - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0024, lo: 0x9f, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x12, offset 0x80 - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0034, lo: 0xb1, hi: 0xb1}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0024, lo: 0xbf, hi: 0xbf}, - // Block 0x13, offset 0x8f - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0024, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x88}, - {value: 0x0024, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8d, hi: 0xbf}, - // Block 0x14, offset 0x99 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x15, offset 0x9c - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xb1}, - {value: 0x0034, lo: 0xb2, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0x16, offset 0xa3 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x99}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0xa3}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xad}, - // Block 0x17, offset 0xab - {value: 0x0010, lo: 0x80, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0xa0, hi: 0xaa}, - // Block 0x18, offset 0xae - {value: 0x0010, lo: 0xa0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbd}, - // Block 0x19, offset 0xb0 - {value: 0x0034, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0024, lo: 0xaa, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbf}, - // Block 0x1a, offset 0xbf - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1b, offset 0xc5 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0x1c, offset 0xd3 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb6, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1d, offset 0xde - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xb1}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xeb - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x1f, offset 0xf6 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x99, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x20, offset 0x102 - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x21, offset 0x10c - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x85}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xbf}, - // Block 0x22, offset 0x118 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x23, offset 0x123 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x24, offset 0x12f - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0010, lo: 0xa8, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x25, offset 0x13b - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x26, offset 0x143 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb9}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbf}, - // Block 0x27, offset 0x14c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x88}, - {value: 0x0014, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x28, offset 0x156 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x29, offset 0x161 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb2}, - // Block 0x2a, offset 0x16d - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x2b, offset 0x174 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x94, hi: 0x97}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xba, hi: 0xbf}, - // Block 0x2c, offset 0x17f - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x96}, - {value: 0x0010, lo: 0x9a, hi: 0xb1}, - {value: 0x0010, lo: 0xb3, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x2d, offset 0x184 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x94}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9f}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - // Block 0x2e, offset 0x18c - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - // Block 0x2f, offset 0x18f - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x30, offset 0x194 - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - // Block 0x31, offset 0x198 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x32, offset 0x19c - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0034, lo: 0x98, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0034, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x33, offset 0x1a3 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xac}, - {value: 0x0034, lo: 0xb1, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xba, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x34, offset 0x1ac - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0024, lo: 0x82, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x86, hi: 0x87}, - {value: 0x0010, lo: 0x88, hi: 0x8c}, - {value: 0x0014, lo: 0x8d, hi: 0x97}, - {value: 0x0014, lo: 0x99, hi: 0xbc}, - // Block 0x35, offset 0x1b4 - {value: 0x0034, lo: 0x86, hi: 0x86}, - // Block 0x36, offset 0x1b5 - {value: 0x0010, lo: 0xab, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbe}, - // Block 0x37, offset 0x1be - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x96, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0x9e, hi: 0xa0}, - {value: 0x0010, lo: 0xa2, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xad}, - {value: 0x0014, lo: 0xb1, hi: 0xb4}, - // Block 0x38, offset 0x1c5 - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x6c53, lo: 0xa0, hi: 0xbf}, - // Block 0x39, offset 0x1cd - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x9a, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x3a, offset 0x1d3 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x3b, offset 0x1d8 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x82, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3c, offset 0x1dc - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3d, offset 0x1df - {value: 0x0010, lo: 0x80, hi: 0x9a}, - {value: 0x0024, lo: 0x9d, hi: 0x9f}, - // Block 0x3e, offset 0x1e1 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x7453, lo: 0xa0, hi: 0xaf}, - {value: 0x7853, lo: 0xb0, hi: 0xbf}, - // Block 0x3f, offset 0x1e4 - {value: 0x7c53, lo: 0x80, hi: 0x8f}, - {value: 0x8053, lo: 0x90, hi: 0x9f}, - {value: 0x7c53, lo: 0xa0, hi: 0xaf}, - {value: 0x0813, lo: 0xb0, hi: 0xb5}, - {value: 0x0892, lo: 0xb8, hi: 0xbd}, - // Block 0x40, offset 0x1e9 - {value: 0x0010, lo: 0x81, hi: 0xbf}, - // Block 0x41, offset 0x1ea - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0010, lo: 0xaf, hi: 0xbf}, - // Block 0x42, offset 0x1ec - {value: 0x0010, lo: 0x81, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x43, offset 0x1ee - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb8}, - // Block 0x44, offset 0x1f0 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0034, lo: 0x94, hi: 0x94}, - {value: 0x0010, lo: 0xa0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - // Block 0x45, offset 0x1f7 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xac}, - {value: 0x0010, lo: 0xae, hi: 0xb0}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - // Block 0x46, offset 0x1fc - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x47, offset 0x200 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0004, lo: 0x97, hi: 0x97}, - {value: 0x0024, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0x48, offset 0x209 - {value: 0x0014, lo: 0x8b, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x49, offset 0x20c - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb8}, - // Block 0x4a, offset 0x20f - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x4b, offset 0x215 - {value: 0x0010, lo: 0x80, hi: 0xb5}, - // Block 0x4c, offset 0x216 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbb}, - // Block 0x4d, offset 0x221 - {value: 0x0010, lo: 0x86, hi: 0x8f}, - // Block 0x4e, offset 0x222 - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x4f, offset 0x223 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - // Block 0x50, offset 0x228 - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x9e}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xac}, - {value: 0x0010, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xbc}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x51, offset 0x235 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xa7, hi: 0xa7}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - {value: 0x0034, lo: 0xb5, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbc}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0x52, offset 0x23d - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x53, offset 0x245 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0030, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xab, hi: 0xab}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - {value: 0x0024, lo: 0xad, hi: 0xb3}, - // Block 0x54, offset 0x24e - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0030, lo: 0xaa, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbf}, - // Block 0x55, offset 0x257 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0030, lo: 0xb2, hi: 0xb3}, - // Block 0x56, offset 0x260 - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0x57, offset 0x265 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8d, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x58, offset 0x268 - {value: 0x31ea, lo: 0x80, hi: 0x80}, - {value: 0x326a, lo: 0x81, hi: 0x81}, - {value: 0x32ea, lo: 0x82, hi: 0x82}, - {value: 0x336a, lo: 0x83, hi: 0x83}, - {value: 0x33ea, lo: 0x84, hi: 0x84}, - {value: 0x346a, lo: 0x85, hi: 0x85}, - {value: 0x34ea, lo: 0x86, hi: 0x86}, - {value: 0x356a, lo: 0x87, hi: 0x87}, - {value: 0x35ea, lo: 0x88, hi: 0x88}, - {value: 0x8353, lo: 0x90, hi: 0xba}, - {value: 0x8353, lo: 0xbd, hi: 0xbf}, - // Block 0x59, offset 0x273 - {value: 0x0024, lo: 0x90, hi: 0x92}, - {value: 0x0034, lo: 0x94, hi: 0x99}, - {value: 0x0024, lo: 0x9a, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9f}, - {value: 0x0024, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xb3}, - {value: 0x0024, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb7}, - {value: 0x0024, lo: 0xb8, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xba}, - // Block 0x5a, offset 0x281 - {value: 0x0012, lo: 0x80, hi: 0xab}, - {value: 0x0015, lo: 0xac, hi: 0xbf}, - // Block 0x5b, offset 0x283 - {value: 0x0015, lo: 0x80, hi: 0xaa}, - {value: 0x0012, lo: 0xab, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb8}, - {value: 0x8752, lo: 0xb9, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbc}, - {value: 0x8b52, lo: 0xbd, hi: 0xbd}, - {value: 0x0012, lo: 0xbe, hi: 0xbf}, - // Block 0x5c, offset 0x28a - {value: 0x0012, lo: 0x80, hi: 0x8d}, - {value: 0x8f52, lo: 0x8e, hi: 0x8e}, - {value: 0x0012, lo: 0x8f, hi: 0x9a}, - {value: 0x0015, lo: 0x9b, hi: 0xbf}, - // Block 0x5d, offset 0x28e - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0024, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb9}, - {value: 0x0024, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbd}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x5e, offset 0x29a - {value: 0x0117, lo: 0x80, hi: 0xbf}, - // Block 0x5f, offset 0x29b - {value: 0x0117, lo: 0x80, hi: 0x95}, - {value: 0x369a, lo: 0x96, hi: 0x96}, - {value: 0x374a, lo: 0x97, hi: 0x97}, - {value: 0x37fa, lo: 0x98, hi: 0x98}, - {value: 0x38aa, lo: 0x99, hi: 0x99}, - {value: 0x395a, lo: 0x9a, hi: 0x9a}, - {value: 0x3a0a, lo: 0x9b, hi: 0x9b}, - {value: 0x0012, lo: 0x9c, hi: 0x9d}, - {value: 0x3abb, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0x9f, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x60, offset 0x2a6 - {value: 0x0812, lo: 0x80, hi: 0x87}, - {value: 0x0813, lo: 0x88, hi: 0x8f}, - {value: 0x0812, lo: 0x90, hi: 0x95}, - {value: 0x0813, lo: 0x98, hi: 0x9d}, - {value: 0x0812, lo: 0xa0, hi: 0xa7}, - {value: 0x0813, lo: 0xa8, hi: 0xaf}, - {value: 0x0812, lo: 0xb0, hi: 0xb7}, - {value: 0x0813, lo: 0xb8, hi: 0xbf}, - // Block 0x61, offset 0x2ae - {value: 0x0004, lo: 0x8b, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8f}, - {value: 0x0054, lo: 0x98, hi: 0x99}, - {value: 0x0054, lo: 0xa4, hi: 0xa4}, - {value: 0x0054, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xaa, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xaf}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x62, offset 0x2b6 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x94, hi: 0x94}, - {value: 0x0014, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa6, hi: 0xaf}, - {value: 0x0015, lo: 0xb1, hi: 0xb1}, - {value: 0x0015, lo: 0xbf, hi: 0xbf}, - // Block 0x63, offset 0x2bc - {value: 0x0015, lo: 0x90, hi: 0x9c}, - // Block 0x64, offset 0x2bd - {value: 0x0024, lo: 0x90, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0xa0}, - {value: 0x0024, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa4}, - {value: 0x0034, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - // Block 0x65, offset 0x2cb - {value: 0x0016, lo: 0x85, hi: 0x86}, - {value: 0x0012, lo: 0x87, hi: 0x89}, - {value: 0xa452, lo: 0x8e, hi: 0x8e}, - {value: 0x1013, lo: 0xa0, hi: 0xaf}, - {value: 0x1012, lo: 0xb0, hi: 0xbf}, - // Block 0x66, offset 0x2d0 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x88}, - // Block 0x67, offset 0x2d3 - {value: 0xa753, lo: 0xb6, hi: 0xb7}, - {value: 0xaa53, lo: 0xb8, hi: 0xb9}, - {value: 0xad53, lo: 0xba, hi: 0xbb}, - {value: 0xaa53, lo: 0xbc, hi: 0xbd}, - {value: 0xa753, lo: 0xbe, hi: 0xbf}, - // Block 0x68, offset 0x2d8 - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6553, lo: 0x90, hi: 0x9f}, - {value: 0xb053, lo: 0xa0, hi: 0xae}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0x69, offset 0x2dc - {value: 0x0117, lo: 0x80, hi: 0xa3}, - {value: 0x0012, lo: 0xa4, hi: 0xa4}, - {value: 0x0716, lo: 0xab, hi: 0xac}, - {value: 0x0316, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb3}, - // Block 0x6a, offset 0x2e2 - {value: 0x6c52, lo: 0x80, hi: 0x9f}, - {value: 0x7052, lo: 0xa0, hi: 0xa5}, - {value: 0x7052, lo: 0xa7, hi: 0xa7}, - {value: 0x7052, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x6b, offset 0x2e7 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x6c, offset 0x2ea - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0010, lo: 0xb0, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x6d, offset 0x2ef - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9e}, - {value: 0x0024, lo: 0xa0, hi: 0xbf}, - // Block 0x6e, offset 0x2f4 - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - // Block 0x6f, offset 0x2f5 - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0xaa, hi: 0xad}, - {value: 0x0030, lo: 0xae, hi: 0xaf}, - {value: 0x0004, lo: 0xb1, hi: 0xb5}, - {value: 0x0014, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x70, offset 0x2fb - {value: 0x0034, lo: 0x99, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9e}, - // Block 0x71, offset 0x2fd - {value: 0x0004, lo: 0xbc, hi: 0xbe}, - // Block 0x72, offset 0x2fe - {value: 0x0010, lo: 0x85, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x73, offset 0x300 - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0010, lo: 0xa0, hi: 0xba}, - // Block 0x74, offset 0x302 - {value: 0x0010, lo: 0x80, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0xbf}, - // Block 0x75, offset 0x305 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - // Block 0x76, offset 0x306 - {value: 0x0010, lo: 0x90, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x77, offset 0x308 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0xab}, - // Block 0x78, offset 0x30b - {value: 0x0117, lo: 0x80, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb2}, - {value: 0x0024, lo: 0xb4, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x79, offset 0x311 - {value: 0x0117, lo: 0x80, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9d}, - {value: 0x0024, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x7a, offset 0x315 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb1}, - // Block 0x7b, offset 0x317 - {value: 0x0004, lo: 0x80, hi: 0x96}, - {value: 0x0014, lo: 0x97, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xaf}, - {value: 0x0012, lo: 0xb0, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xbf}, - // Block 0x7c, offset 0x31c - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x0015, lo: 0xb0, hi: 0xb0}, - {value: 0x0012, lo: 0xb1, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x8753, lo: 0xbd, hi: 0xbd}, - {value: 0x0117, lo: 0xbe, hi: 0xbf}, - // Block 0x7d, offset 0x323 - {value: 0x0117, lo: 0x82, hi: 0x83}, - {value: 0x6553, lo: 0x84, hi: 0x84}, - {value: 0x908b, lo: 0x85, hi: 0x85}, - {value: 0x8f53, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xb7, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbf}, - // Block 0x7e, offset 0x32b - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x8c, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - // Block 0x7f, offset 0x334 - {value: 0x0010, lo: 0x80, hi: 0xb3}, - // Block 0x80, offset 0x335 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xa0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb7}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x81, offset 0x33e - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x82, offset 0x342 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0x92}, - {value: 0x0030, lo: 0x93, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0x83, offset 0x347 - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x84, offset 0x34f - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0004, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x85, offset 0x355 - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0x86, offset 0x35b - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x87, offset 0x365 - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0024, lo: 0xbe, hi: 0xbf}, - // Block 0x88, offset 0x36a - {value: 0x0024, lo: 0x81, hi: 0x81}, - {value: 0x0004, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - // Block 0x89, offset 0x373 - {value: 0x0010, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x8e}, - {value: 0x0010, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x8a, offset 0x379 - {value: 0x0012, lo: 0x80, hi: 0x92}, - {value: 0xb352, lo: 0x93, hi: 0x93}, - {value: 0x0012, lo: 0x94, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa7}, - {value: 0x74d2, lo: 0xb0, hi: 0xbf}, - // Block 0x8b, offset 0x380 - {value: 0x78d2, lo: 0x80, hi: 0x8f}, - {value: 0x7cd2, lo: 0x90, hi: 0x9f}, - {value: 0x80d2, lo: 0xa0, hi: 0xaf}, - {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, - // Block 0x8c, offset 0x384 - {value: 0x0010, lo: 0x80, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x8d, offset 0x38c - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x8e, offset 0x38e - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x8b, hi: 0xbb}, - // Block 0x8f, offset 0x390 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0xbf}, - // Block 0x90, offset 0x393 - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0004, lo: 0xb2, hi: 0xbf}, - // Block 0x91, offset 0x395 - {value: 0x0004, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x93, hi: 0xbf}, - // Block 0x92, offset 0x397 - {value: 0x0010, lo: 0x80, hi: 0xbd}, - // Block 0x93, offset 0x398 - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0x94, offset 0x399 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0xbf}, - // Block 0x95, offset 0x39b - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0xb0, hi: 0xbb}, - // Block 0x96, offset 0x39d - {value: 0x0014, lo: 0x80, hi: 0x8f}, - {value: 0x0054, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0xa0, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xad}, - {value: 0x0024, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - // Block 0x97, offset 0x3a3 - {value: 0x0010, lo: 0x8d, hi: 0x8f}, - {value: 0x0054, lo: 0x92, hi: 0x92}, - {value: 0x0054, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0xb0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x98, offset 0x3a8 - {value: 0x0010, lo: 0x80, hi: 0xbc}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x99, offset 0x3aa - {value: 0x0054, lo: 0x87, hi: 0x87}, - {value: 0x0054, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0054, lo: 0x9a, hi: 0x9a}, - {value: 0x5f53, lo: 0xa1, hi: 0xba}, - {value: 0x0004, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9a, offset 0x3b1 - {value: 0x0004, lo: 0x80, hi: 0x80}, - {value: 0x5f52, lo: 0x81, hi: 0x9a}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - // Block 0x9b, offset 0x3b4 - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbe}, - // Block 0x9c, offset 0x3b6 - {value: 0x0010, lo: 0x82, hi: 0x87}, - {value: 0x0010, lo: 0x8a, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0x97}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0004, lo: 0xa3, hi: 0xa3}, - {value: 0x0014, lo: 0xb9, hi: 0xbb}, - // Block 0x9d, offset 0x3bc - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0010, lo: 0x8d, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xba}, - {value: 0x0010, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9e, offset 0x3c1 - {value: 0x0010, lo: 0x80, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x9d}, - // Block 0x9f, offset 0x3c3 - {value: 0x0010, lo: 0x80, hi: 0xba}, - // Block 0xa0, offset 0x3c4 - {value: 0x0010, lo: 0x80, hi: 0xb4}, - // Block 0xa1, offset 0x3c5 - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0xa2, offset 0x3c6 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa3, offset 0x3c8 - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - // Block 0xa4, offset 0x3ca - {value: 0x0010, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xad, hi: 0xbf}, - // Block 0xa5, offset 0x3cc - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0xb5}, - {value: 0x0024, lo: 0xb6, hi: 0xba}, - // Block 0xa6, offset 0x3cf - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa7, offset 0x3d1 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x91, hi: 0x95}, - // Block 0xa8, offset 0x3d4 - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x97}, - {value: 0xb653, lo: 0x98, hi: 0x9f}, - {value: 0xb953, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbf}, - // Block 0xa9, offset 0x3dc - {value: 0xb652, lo: 0x80, hi: 0x87}, - {value: 0xb952, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xaa, offset 0x3df - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0xb953, lo: 0xb0, hi: 0xb7}, - {value: 0xb653, lo: 0xb8, hi: 0xbf}, - // Block 0xab, offset 0x3e3 - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x93}, - {value: 0xb952, lo: 0x98, hi: 0x9f}, - {value: 0xb652, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbb}, - // Block 0xac, offset 0x3eb - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xad, offset 0x3ed - {value: 0x0010, lo: 0x80, hi: 0xa3}, - // Block 0xae, offset 0x3ee - {value: 0x0010, lo: 0x80, hi: 0xb6}, - // Block 0xaf, offset 0x3ef - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - // Block 0xb0, offset 0x3f1 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xb1, offset 0x3f7 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xb2, offset 0x3f9 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - // Block 0xb3, offset 0x3fa - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - // Block 0xb4, offset 0x3fc - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb9}, - // Block 0xb5, offset 0x3fe - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0xb6, offset 0x400 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0024, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x99, hi: 0xb5}, - {value: 0x0024, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xb7, offset 0x40d - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0xb8, offset 0x40e - {value: 0x0010, lo: 0x80, hi: 0x9c}, - // Block 0xb9, offset 0x40f - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - // Block 0xba, offset 0x413 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - // Block 0xbb, offset 0x415 - {value: 0x0010, lo: 0x80, hi: 0x91}, - // Block 0xbc, offset 0x416 - {value: 0x0010, lo: 0x80, hi: 0x88}, - // Block 0xbd, offset 0x417 - {value: 0x5653, lo: 0x80, hi: 0xb2}, - // Block 0xbe, offset 0x418 - {value: 0x5652, lo: 0x80, hi: 0xb2}, - // Block 0xbf, offset 0x419 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc0, offset 0x41c - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xc1, offset 0x41f - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x87}, - {value: 0x0024, lo: 0x88, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x8b}, - {value: 0x0024, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - // Block 0xc2, offset 0x425 - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xc3, offset 0x426 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xc4, offset 0x42a - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xc5, offset 0x42e - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - // Block 0xc6, offset 0x434 - {value: 0x0014, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc7, offset 0x437 - {value: 0x0024, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0xc8, offset 0x43e - {value: 0x0010, lo: 0x84, hi: 0x86}, - {value: 0x0010, lo: 0x90, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - // Block 0xc9, offset 0x442 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xca, offset 0x446 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x89, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - // Block 0xcb, offset 0x44d - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - {value: 0x0030, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0xcc, offset 0x456 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xcd, offset 0x45c - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa2}, - {value: 0x0014, lo: 0xa3, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xce, offset 0x462 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xcf, offset 0x46c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0030, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9d, hi: 0xa3}, - {value: 0x0024, lo: 0xa6, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - // Block 0xd0, offset 0x476 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xd1, offset 0x478 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0x9f, hi: 0x9f}, - // Block 0xd2, offset 0x481 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xd3, offset 0x487 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd4, offset 0x48d - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd5, offset 0x493 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x98, hi: 0x9b}, - {value: 0x0014, lo: 0x9c, hi: 0x9d}, - // Block 0xd6, offset 0x496 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd7, offset 0x49c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd8, offset 0x49f - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0014, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb5}, - {value: 0x0030, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - // Block 0xd9, offset 0x4a8 - {value: 0x0010, lo: 0x80, hi: 0x89}, - // Block 0xda, offset 0x4a9 - {value: 0x0014, lo: 0x9d, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xdb, offset 0x4b0 - {value: 0x0010, lo: 0x80, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - // Block 0xdc, offset 0x4b4 - {value: 0x5f53, lo: 0xa0, hi: 0xbf}, - // Block 0xdd, offset 0x4b5 - {value: 0x5f52, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xde, offset 0x4b8 - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - {value: 0x0010, lo: 0xaa, hi: 0xbf}, - // Block 0xdf, offset 0x4ba - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0014, lo: 0x94, hi: 0x97}, - {value: 0x0014, lo: 0x9a, hi: 0x9b}, - {value: 0x0010, lo: 0x9c, hi: 0x9f}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - // Block 0xe0, offset 0x4c1 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x8a}, - {value: 0x0010, lo: 0x8b, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbb, hi: 0xbe}, - // Block 0xe1, offset 0x4c9 - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0014, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x98}, - {value: 0x0014, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0x9c, hi: 0xbf}, - // Block 0xe2, offset 0x4cf - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0014, lo: 0x8a, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x99}, - {value: 0x0010, lo: 0x9d, hi: 0x9d}, - // Block 0xe3, offset 0x4d5 - {value: 0x0010, lo: 0x80, hi: 0xb8}, - // Block 0xe4, offset 0x4d6 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xe5, offset 0x4dc - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0xe6, offset 0x4df - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0014, lo: 0x92, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xa9}, - {value: 0x0014, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0xe7, offset 0x4e7 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb6}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xe8, offset 0x4ee - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa5}, - {value: 0x0010, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xbf}, - // Block 0xe9, offset 0x4f8 - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0014, lo: 0x90, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0x96}, - {value: 0x0034, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xea, offset 0x500 - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - // Block 0xeb, offset 0x503 - {value: 0x0010, lo: 0x80, hi: 0x99}, - // Block 0xec, offset 0x504 - {value: 0x0010, lo: 0x80, hi: 0xae}, - // Block 0xed, offset 0x505 - {value: 0x0010, lo: 0x80, hi: 0x83}, - // Block 0xee, offset 0x506 - {value: 0x0010, lo: 0x80, hi: 0xae}, - {value: 0x0014, lo: 0xb0, hi: 0xb8}, - // Block 0xef, offset 0x508 - {value: 0x0010, lo: 0x80, hi: 0x86}, - // Block 0xf0, offset 0x509 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xf1, offset 0x50b - {value: 0x0010, lo: 0x90, hi: 0xad}, - {value: 0x0034, lo: 0xb0, hi: 0xb4}, - // Block 0xf2, offset 0x50d - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - // Block 0xf3, offset 0x50f - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa3, hi: 0xb7}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xf4, offset 0x513 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - // Block 0xf5, offset 0x514 - {value: 0x2013, lo: 0x80, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xbf}, - // Block 0xf6, offset 0x516 - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xf7, offset 0x519 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0014, lo: 0x8f, hi: 0x9f}, - // Block 0xf8, offset 0x51b - {value: 0x0014, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa3, hi: 0xa3}, - // Block 0xf9, offset 0x51d - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbc}, - // Block 0xfa, offset 0x51f - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0034, lo: 0x9e, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa3}, - // Block 0xfb, offset 0x524 - {value: 0x0030, lo: 0xa5, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xa9}, - {value: 0x0030, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbf}, - // Block 0xfc, offset 0x529 - {value: 0x0034, lo: 0x80, hi: 0x82}, - {value: 0x0024, lo: 0x85, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8b}, - {value: 0x0024, lo: 0xaa, hi: 0xad}, - // Block 0xfd, offset 0x52d - {value: 0x0024, lo: 0x82, hi: 0x84}, - // Block 0xfe, offset 0x52e - {value: 0x0013, lo: 0x80, hi: 0x99}, - {value: 0x0012, lo: 0x9a, hi: 0xb3}, - {value: 0x0013, lo: 0xb4, hi: 0xbf}, - // Block 0xff, offset 0x531 - {value: 0x0013, lo: 0x80, hi: 0x8d}, - {value: 0x0012, lo: 0x8e, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0xa7}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0x100, offset 0x535 - {value: 0x0013, lo: 0x80, hi: 0x81}, - {value: 0x0012, lo: 0x82, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0x9c}, - {value: 0x0013, lo: 0x9e, hi: 0x9f}, - {value: 0x0013, lo: 0xa2, hi: 0xa2}, - {value: 0x0013, lo: 0xa5, hi: 0xa6}, - {value: 0x0013, lo: 0xa9, hi: 0xac}, - {value: 0x0013, lo: 0xae, hi: 0xb5}, - {value: 0x0012, lo: 0xb6, hi: 0xb9}, - {value: 0x0012, lo: 0xbb, hi: 0xbb}, - {value: 0x0012, lo: 0xbd, hi: 0xbf}, - // Block 0x101, offset 0x540 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0012, lo: 0x85, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0x102, offset 0x544 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0013, lo: 0x84, hi: 0x85}, - {value: 0x0013, lo: 0x87, hi: 0x8a}, - {value: 0x0013, lo: 0x8d, hi: 0x94}, - {value: 0x0013, lo: 0x96, hi: 0x9c}, - {value: 0x0012, lo: 0x9e, hi: 0xb7}, - {value: 0x0013, lo: 0xb8, hi: 0xb9}, - {value: 0x0013, lo: 0xbb, hi: 0xbe}, - // Block 0x103, offset 0x54c - {value: 0x0013, lo: 0x80, hi: 0x84}, - {value: 0x0013, lo: 0x86, hi: 0x86}, - {value: 0x0013, lo: 0x8a, hi: 0x90}, - {value: 0x0012, lo: 0x92, hi: 0xab}, - {value: 0x0013, lo: 0xac, hi: 0xbf}, - // Block 0x104, offset 0x551 - {value: 0x0013, lo: 0x80, hi: 0x85}, - {value: 0x0012, lo: 0x86, hi: 0x9f}, - {value: 0x0013, lo: 0xa0, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbf}, - // Block 0x105, offset 0x555 - {value: 0x0012, lo: 0x80, hi: 0x93}, - {value: 0x0013, lo: 0x94, hi: 0xad}, - {value: 0x0012, lo: 0xae, hi: 0xbf}, - // Block 0x106, offset 0x558 - {value: 0x0012, lo: 0x80, hi: 0x87}, - {value: 0x0013, lo: 0x88, hi: 0xa1}, - {value: 0x0012, lo: 0xa2, hi: 0xbb}, - {value: 0x0013, lo: 0xbc, hi: 0xbf}, - // Block 0x107, offset 0x55c - {value: 0x0013, lo: 0x80, hi: 0x95}, - {value: 0x0012, lo: 0x96, hi: 0xaf}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x108, offset 0x55f - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0012, lo: 0x8a, hi: 0xa5}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0x109, offset 0x562 - {value: 0x0013, lo: 0x80, hi: 0x80}, - {value: 0x0012, lo: 0x82, hi: 0x9a}, - {value: 0x0012, lo: 0x9c, hi: 0xa1}, - {value: 0x0013, lo: 0xa2, hi: 0xba}, - {value: 0x0012, lo: 0xbc, hi: 0xbf}, - // Block 0x10a, offset 0x567 - {value: 0x0012, lo: 0x80, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0xb4}, - {value: 0x0012, lo: 0xb6, hi: 0xbf}, - // Block 0x10b, offset 0x56b - {value: 0x0012, lo: 0x80, hi: 0x8e}, - {value: 0x0012, lo: 0x90, hi: 0x95}, - {value: 0x0013, lo: 0x96, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x10c, offset 0x56f - {value: 0x0012, lo: 0x80, hi: 0x88}, - {value: 0x0012, lo: 0x8a, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0x10d, offset 0x573 - {value: 0x0012, lo: 0x80, hi: 0x82}, - {value: 0x0012, lo: 0x84, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8b}, - {value: 0x0010, lo: 0x8e, hi: 0xbf}, - // Block 0x10e, offset 0x577 - {value: 0x0014, lo: 0x80, hi: 0xb6}, - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x10f, offset 0x579 - {value: 0x0014, lo: 0x80, hi: 0xac}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x110, offset 0x57b - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x9b, hi: 0x9f}, - {value: 0x0014, lo: 0xa1, hi: 0xaf}, - // Block 0x111, offset 0x57e - {value: 0x0024, lo: 0x80, hi: 0x86}, - {value: 0x0024, lo: 0x88, hi: 0x98}, - {value: 0x0024, lo: 0x9b, hi: 0xa1}, - {value: 0x0024, lo: 0xa3, hi: 0xa4}, - {value: 0x0024, lo: 0xa6, hi: 0xaa}, - // Block 0x112, offset 0x583 - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - // Block 0x113, offset 0x586 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - // Block 0x114, offset 0x588 - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0024, lo: 0xac, hi: 0xaf}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x115, offset 0x58b - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0034, lo: 0x90, hi: 0x96}, - // Block 0x116, offset 0x58d - {value: 0xbc52, lo: 0x80, hi: 0x81}, - {value: 0xbf52, lo: 0x82, hi: 0x83}, - {value: 0x0024, lo: 0x84, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x117, offset 0x593 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x9f}, - {value: 0x0010, lo: 0xa1, hi: 0xa2}, - {value: 0x0010, lo: 0xa4, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb7}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - // Block 0x118, offset 0x59c - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x9b}, - {value: 0x0010, lo: 0xa1, hi: 0xa3}, - {value: 0x0010, lo: 0xa5, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xbb}, - // Block 0x119, offset 0x5a1 - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x11a, offset 0x5a2 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x11b, offset 0x5a5 - {value: 0x0013, lo: 0x80, hi: 0x89}, - // Block 0x11c, offset 0x5a6 - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x11d, offset 0x5a7 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0014, lo: 0xa0, hi: 0xbf}, - // Block 0x11e, offset 0x5a9 - {value: 0x0014, lo: 0x80, hi: 0xbf}, - // Block 0x11f, offset 0x5aa - {value: 0x0014, lo: 0x80, hi: 0xaf}, -} - -// Total table size 15070 bytes (14KiB); checksum: 1EB13752 diff --git a/backend/vendor/golang.org/x/text/cases/tables13.0.0.go b/backend/vendor/golang.org/x/text/cases/tables13.0.0.go deleted file mode 100644 index cd874775..00000000 --- a/backend/vendor/golang.org/x/text/cases/tables13.0.0.go +++ /dev/null @@ -1,2400 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.16 -// +build go1.16 - -package cases - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "13.0.0" - -var xorData string = "" + // Size: 192 bytes - "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + - "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + - "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + - "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + - "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + - "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + - "\x0b!\x10\x00\x0b!0\x001\x00\x00\x0b(\x04\x00\x03\x04\x1e\x00\x0b)\x08" + - "\x00\x03\x0a\x00\x02:\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<" + - "\x00\x01&\x00\x01*\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01" + - "\x1e\x00\x01\x22" - -var exceptions string = "" + // Size: 2450 bytes - "\x00\x12\x12μΜΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x09II\x13\x1bʼnʼNʼN\x11" + - "\x09sSS\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj" + - "\x12\x12njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x1bǰJ̌J̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10" + - "\x12DZDz\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x1bⱾⱾ\x10\x1bⱿⱿ\x10\x1bⱯⱯ\x10\x1bⱭⱭ\x10" + - "\x1bⱰⱰ\x10\x1bꞫꞫ\x10\x1bꞬꞬ\x10\x1bꞍꞍ\x10\x1bꞪꞪ\x10\x1bꞮꞮ\x10\x1bⱢⱢ\x10" + - "\x1bꞭꞭ\x10\x1bⱮⱮ\x10\x1bⱤⱤ\x10\x1bꟅꟅ\x10\x1bꞱꞱ\x10\x1bꞲꞲ\x10\x1bꞰꞰ2\x12ι" + - "ΙΙ\x166ΐΪ́Ϊ́\x166ΰΫ́Ϋ́\x12\x12σΣΣ\x12\x12βΒΒ\x12\x12θΘΘ\x12\x12" + - "φΦΦ\x12\x12πΠΠ\x12\x12κΚΚ\x12\x12ρΡΡ\x12\x12εΕΕ\x14$եւԵՒԵւ\x10\x1bᲐა" + - "\x10\x1bᲑბ\x10\x1bᲒგ\x10\x1bᲓდ\x10\x1bᲔე\x10\x1bᲕვ\x10\x1bᲖზ\x10\x1bᲗთ" + - "\x10\x1bᲘი\x10\x1bᲙკ\x10\x1bᲚლ\x10\x1bᲛმ\x10\x1bᲜნ\x10\x1bᲝო\x10\x1bᲞპ" + - "\x10\x1bᲟჟ\x10\x1bᲠრ\x10\x1bᲡს\x10\x1bᲢტ\x10\x1bᲣუ\x10\x1bᲤფ\x10\x1bᲥქ" + - "\x10\x1bᲦღ\x10\x1bᲧყ\x10\x1bᲨშ\x10\x1bᲩჩ\x10\x1bᲪც\x10\x1bᲫძ\x10\x1bᲬწ" + - "\x10\x1bᲭჭ\x10\x1bᲮხ\x10\x1bᲯჯ\x10\x1bᲰჰ\x10\x1bᲱჱ\x10\x1bᲲჲ\x10\x1bᲳჳ" + - "\x10\x1bᲴჴ\x10\x1bᲵჵ\x10\x1bᲶჶ\x10\x1bᲷჷ\x10\x1bᲸჸ\x10\x1bᲹჹ\x10\x1bᲺჺ" + - "\x10\x1bᲽჽ\x10\x1bᲾჾ\x10\x1bᲿჿ\x12\x12вВВ\x12\x12дДД\x12\x12оОО\x12\x12с" + - "СС\x12\x12тТТ\x12\x12тТТ\x12\x12ъЪЪ\x12\x12ѣѢѢ\x13\x1bꙋꙊꙊ\x13\x1bẖH̱H̱" + - "\x13\x1bẗT̈T̈\x13\x1bẘW̊W̊\x13\x1bẙY̊Y̊\x13\x1baʾAʾAʾ\x13\x1bṡṠṠ\x12" + - "\x10ssß\x14$ὐΥ̓Υ̓\x166ὒΥ̓̀Υ̓̀\x166ὔΥ̓́Υ̓́\x166ὖΥ̓͂Υ̓͂\x15+ἀιἈΙᾈ" + - "\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ" + - "\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ\x15\x1dἄιᾄἌΙ\x15" + - "\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ\x15+ἢιἪΙᾚ\x15+ἣι" + - "ἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨΙ\x15\x1dἡιᾑἩΙ" + - "\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15\x1dἦιᾖἮΙ\x15" + - "\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ\x15+ὥιὭΙᾭ" + - "\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ\x15\x1dὣιᾣὫΙ" + - "\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰιᾺΙᾺͅ\x14#αιΑΙ" + - "ᾼ\x14$άιΆΙΆͅ\x14$ᾶΑ͂Α͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x12ιΙΙ\x15-ὴιῊΙ" + - "Ὴͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14$ῆΗ͂Η͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ\x166ῒΙ" + - "̈̀Ϊ̀\x166ΐΪ́Ϊ́\x14$ῖΙ͂Ι͂\x166ῗΪ͂Ϊ͂\x166ῢΫ̀Ϋ̀\x166ΰΫ́Ϋ" + - "́\x14$ῤΡ̓Ρ̓\x14$ῦΥ͂Υ͂\x166ῧΫ͂Ϋ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ" + - "\x14$ῶΩ͂Ω͂\x166ῶιΩ͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12" + - "\x10ɫɫ\x12\x10ɽɽ\x10\x12ȺȺ\x10\x12ȾȾ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12" + - "\x10ɒɒ\x12\x10ȿȿ\x12\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12" + - "\x10ɬɬ\x12\x10ɪɪ\x12\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x10ʂʂ\x12\x12ffFFFf" + - "\x12\x12fiFIFi\x12\x12flFLFl\x13\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12st" + - "STSt\x12\x12stSTSt\x14$մնՄՆՄն\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄ" + - "խ" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// caseTrie. Total size: 12538 bytes (12.24 KiB). Checksum: af4dfa7d60c71d4c. -type caseTrie struct{} - -func newCaseTrie(i int) *caseTrie { - return &caseTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 20: - return uint16(caseValues[n<<6+uint32(b)]) - default: - n -= 20 - return uint16(sparse.lookup(n, b)) - } -} - -// caseValues: 22 blocks, 1408 entries, 2816 bytes -// The third block is the zero block. -var caseValues = [1408]uint16{ - // Block 0x0, offset 0x0 - 0x27: 0x0054, - 0x2e: 0x0054, - 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, - 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, - // Block 0x1, offset 0x40 - 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, - 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, - 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, - 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, - 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, - 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, - 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, - 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, - 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, - 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, - 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, - 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, - 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, - 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, - 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, - 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, - 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, - 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, - 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, - 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, - // Block 0x4, offset 0x100 - 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x02db, 0x105: 0x0359, - 0x106: 0x03da, 0x107: 0x043b, 0x108: 0x04b9, 0x109: 0x053a, 0x10a: 0x059b, 0x10b: 0x0619, - 0x10c: 0x069a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, - 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, - 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, - 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, - 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, - 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, - 0x130: 0x06fa, 0x131: 0x07ab, 0x132: 0x0829, 0x133: 0x08aa, 0x134: 0x0113, 0x135: 0x0112, - 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, - 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, - // Block 0x5, offset 0x140 - 0x140: 0x0a8a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, - 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, - 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x0b0a, 0x151: 0x0b8a, - 0x152: 0x0c0a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, - 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x0c8a, 0x15d: 0x0012, - 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x0d0a, 0x162: 0x0012, 0x163: 0x2052, - 0x164: 0x0012, 0x165: 0x0d8a, 0x166: 0x0e0a, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, - 0x16a: 0x0e8a, 0x16b: 0x0f0a, 0x16c: 0x0f8a, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, - 0x170: 0x0012, 0x171: 0x100a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, - 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, - 0x17c: 0x0012, 0x17d: 0x108a, 0x17e: 0x0012, 0x17f: 0x0012, - // Block 0x6, offset 0x180 - 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x110a, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, - 0x186: 0x0012, 0x187: 0x118a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, - 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, - 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, - 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x120a, - 0x19e: 0x128a, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, - 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, - 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, - 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, - 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, - 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x130d, - 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, - 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, - 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, - 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, - 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, - 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, - 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, - 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, - 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, - 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, - // Block 0x8, offset 0x200 - 0x204: 0x0004, 0x205: 0x0004, - 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, - 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x138a, 0x211: 0x2013, - 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, - 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, - 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, - 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, - 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, - 0x230: 0x14ca, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, - 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, - 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, - // Block 0x9, offset 0x240 - 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x160a, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, - 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, - 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x168a, 0x251: 0x170a, - 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x178a, 0x256: 0x180a, 0x257: 0x1812, - 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, - 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, - 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, - 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, - 0x270: 0x188a, 0x271: 0x190a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x198a, - 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, - 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, - // Block 0xa, offset 0x280 - 0x280: 0x6852, 0x281: 0x6852, 0x282: 0x6852, 0x283: 0x6852, 0x284: 0x6852, 0x285: 0x6852, - 0x286: 0x6852, 0x287: 0x1a0a, 0x288: 0x0012, 0x28a: 0x0010, - 0x291: 0x0034, - 0x292: 0x0024, 0x293: 0x0024, 0x294: 0x0024, 0x295: 0x0024, 0x296: 0x0034, 0x297: 0x0024, - 0x298: 0x0024, 0x299: 0x0024, 0x29a: 0x0034, 0x29b: 0x0034, 0x29c: 0x0024, 0x29d: 0x0024, - 0x29e: 0x0024, 0x29f: 0x0024, 0x2a0: 0x0024, 0x2a1: 0x0024, 0x2a2: 0x0034, 0x2a3: 0x0034, - 0x2a4: 0x0034, 0x2a5: 0x0034, 0x2a6: 0x0034, 0x2a7: 0x0034, 0x2a8: 0x0024, 0x2a9: 0x0024, - 0x2aa: 0x0034, 0x2ab: 0x0024, 0x2ac: 0x0024, 0x2ad: 0x0034, 0x2ae: 0x0034, 0x2af: 0x0024, - 0x2b0: 0x0034, 0x2b1: 0x0034, 0x2b2: 0x0034, 0x2b3: 0x0034, 0x2b4: 0x0034, 0x2b5: 0x0034, - 0x2b6: 0x0034, 0x2b7: 0x0034, 0x2b8: 0x0034, 0x2b9: 0x0034, 0x2ba: 0x0034, 0x2bb: 0x0034, - 0x2bc: 0x0034, 0x2bd: 0x0034, 0x2bf: 0x0034, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x7053, 0x2c1: 0x7053, 0x2c2: 0x7053, 0x2c3: 0x7053, 0x2c4: 0x7053, 0x2c5: 0x7053, - 0x2c7: 0x7053, - 0x2cd: 0x7053, 0x2d0: 0x1aea, 0x2d1: 0x1b6a, - 0x2d2: 0x1bea, 0x2d3: 0x1c6a, 0x2d4: 0x1cea, 0x2d5: 0x1d6a, 0x2d6: 0x1dea, 0x2d7: 0x1e6a, - 0x2d8: 0x1eea, 0x2d9: 0x1f6a, 0x2da: 0x1fea, 0x2db: 0x206a, 0x2dc: 0x20ea, 0x2dd: 0x216a, - 0x2de: 0x21ea, 0x2df: 0x226a, 0x2e0: 0x22ea, 0x2e1: 0x236a, 0x2e2: 0x23ea, 0x2e3: 0x246a, - 0x2e4: 0x24ea, 0x2e5: 0x256a, 0x2e6: 0x25ea, 0x2e7: 0x266a, 0x2e8: 0x26ea, 0x2e9: 0x276a, - 0x2ea: 0x27ea, 0x2eb: 0x286a, 0x2ec: 0x28ea, 0x2ed: 0x296a, 0x2ee: 0x29ea, 0x2ef: 0x2a6a, - 0x2f0: 0x2aea, 0x2f1: 0x2b6a, 0x2f2: 0x2bea, 0x2f3: 0x2c6a, 0x2f4: 0x2cea, 0x2f5: 0x2d6a, - 0x2f6: 0x2dea, 0x2f7: 0x2e6a, 0x2f8: 0x2eea, 0x2f9: 0x2f6a, 0x2fa: 0x2fea, - 0x2fc: 0x0014, 0x2fd: 0x306a, 0x2fe: 0x30ea, 0x2ff: 0x316a, - // Block 0xc, offset 0x300 - 0x300: 0x0812, 0x301: 0x0812, 0x302: 0x0812, 0x303: 0x0812, 0x304: 0x0812, 0x305: 0x0812, - 0x308: 0x0813, 0x309: 0x0813, 0x30a: 0x0813, 0x30b: 0x0813, - 0x30c: 0x0813, 0x30d: 0x0813, 0x310: 0x3b1a, 0x311: 0x0812, - 0x312: 0x3bfa, 0x313: 0x0812, 0x314: 0x3d3a, 0x315: 0x0812, 0x316: 0x3e7a, 0x317: 0x0812, - 0x319: 0x0813, 0x31b: 0x0813, 0x31d: 0x0813, - 0x31f: 0x0813, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0x0812, 0x323: 0x0812, - 0x324: 0x0812, 0x325: 0x0812, 0x326: 0x0812, 0x327: 0x0812, 0x328: 0x0813, 0x329: 0x0813, - 0x32a: 0x0813, 0x32b: 0x0813, 0x32c: 0x0813, 0x32d: 0x0813, 0x32e: 0x0813, 0x32f: 0x0813, - 0x330: 0x9252, 0x331: 0x9252, 0x332: 0x9552, 0x333: 0x9552, 0x334: 0x9852, 0x335: 0x9852, - 0x336: 0x9b52, 0x337: 0x9b52, 0x338: 0x9e52, 0x339: 0x9e52, 0x33a: 0xa152, 0x33b: 0xa152, - 0x33c: 0x4d52, 0x33d: 0x4d52, - // Block 0xd, offset 0x340 - 0x340: 0x3fba, 0x341: 0x40aa, 0x342: 0x419a, 0x343: 0x428a, 0x344: 0x437a, 0x345: 0x446a, - 0x346: 0x455a, 0x347: 0x464a, 0x348: 0x4739, 0x349: 0x4829, 0x34a: 0x4919, 0x34b: 0x4a09, - 0x34c: 0x4af9, 0x34d: 0x4be9, 0x34e: 0x4cd9, 0x34f: 0x4dc9, 0x350: 0x4eba, 0x351: 0x4faa, - 0x352: 0x509a, 0x353: 0x518a, 0x354: 0x527a, 0x355: 0x536a, 0x356: 0x545a, 0x357: 0x554a, - 0x358: 0x5639, 0x359: 0x5729, 0x35a: 0x5819, 0x35b: 0x5909, 0x35c: 0x59f9, 0x35d: 0x5ae9, - 0x35e: 0x5bd9, 0x35f: 0x5cc9, 0x360: 0x5dba, 0x361: 0x5eaa, 0x362: 0x5f9a, 0x363: 0x608a, - 0x364: 0x617a, 0x365: 0x626a, 0x366: 0x635a, 0x367: 0x644a, 0x368: 0x6539, 0x369: 0x6629, - 0x36a: 0x6719, 0x36b: 0x6809, 0x36c: 0x68f9, 0x36d: 0x69e9, 0x36e: 0x6ad9, 0x36f: 0x6bc9, - 0x370: 0x0812, 0x371: 0x0812, 0x372: 0x6cba, 0x373: 0x6dca, 0x374: 0x6e9a, - 0x376: 0x6f7a, 0x377: 0x705a, 0x378: 0x0813, 0x379: 0x0813, 0x37a: 0x9253, 0x37b: 0x9253, - 0x37c: 0x7199, 0x37d: 0x0004, 0x37e: 0x726a, 0x37f: 0x0004, - // Block 0xe, offset 0x380 - 0x380: 0x0004, 0x381: 0x0004, 0x382: 0x72ea, 0x383: 0x73fa, 0x384: 0x74ca, - 0x386: 0x75aa, 0x387: 0x768a, 0x388: 0x9553, 0x389: 0x9553, 0x38a: 0x9853, 0x38b: 0x9853, - 0x38c: 0x77c9, 0x38d: 0x0004, 0x38e: 0x0004, 0x38f: 0x0004, 0x390: 0x0812, 0x391: 0x0812, - 0x392: 0x789a, 0x393: 0x79da, 0x396: 0x7b1a, 0x397: 0x7bfa, - 0x398: 0x0813, 0x399: 0x0813, 0x39a: 0x9b53, 0x39b: 0x9b53, 0x39d: 0x0004, - 0x39e: 0x0004, 0x39f: 0x0004, 0x3a0: 0x0812, 0x3a1: 0x0812, 0x3a2: 0x7d3a, 0x3a3: 0x7e7a, - 0x3a4: 0x7fba, 0x3a5: 0x0912, 0x3a6: 0x809a, 0x3a7: 0x817a, 0x3a8: 0x0813, 0x3a9: 0x0813, - 0x3aa: 0xa153, 0x3ab: 0xa153, 0x3ac: 0x0913, 0x3ad: 0x0004, 0x3ae: 0x0004, 0x3af: 0x0004, - 0x3b2: 0x82ba, 0x3b3: 0x83ca, 0x3b4: 0x849a, - 0x3b6: 0x857a, 0x3b7: 0x865a, 0x3b8: 0x9e53, 0x3b9: 0x9e53, 0x3ba: 0x4d53, 0x3bb: 0x4d53, - 0x3bc: 0x8799, 0x3bd: 0x0004, 0x3be: 0x0004, - // Block 0xf, offset 0x3c0 - 0x3c2: 0x0013, - 0x3c7: 0x0013, 0x3ca: 0x0012, 0x3cb: 0x0013, - 0x3cc: 0x0013, 0x3cd: 0x0013, 0x3ce: 0x0012, 0x3cf: 0x0012, 0x3d0: 0x0013, 0x3d1: 0x0013, - 0x3d2: 0x0013, 0x3d3: 0x0012, 0x3d5: 0x0013, - 0x3d9: 0x0013, 0x3da: 0x0013, 0x3db: 0x0013, 0x3dc: 0x0013, 0x3dd: 0x0013, - 0x3e4: 0x0013, 0x3e6: 0x886b, 0x3e8: 0x0013, - 0x3ea: 0x88cb, 0x3eb: 0x890b, 0x3ec: 0x0013, 0x3ed: 0x0013, 0x3ef: 0x0012, - 0x3f0: 0x0013, 0x3f1: 0x0013, 0x3f2: 0xa453, 0x3f3: 0x0013, 0x3f4: 0x0012, 0x3f5: 0x0010, - 0x3f6: 0x0010, 0x3f7: 0x0010, 0x3f8: 0x0010, 0x3f9: 0x0012, - 0x3fc: 0x0012, 0x3fd: 0x0012, 0x3fe: 0x0013, 0x3ff: 0x0013, - // Block 0x10, offset 0x400 - 0x400: 0x1a13, 0x401: 0x1a13, 0x402: 0x1e13, 0x403: 0x1e13, 0x404: 0x1a13, 0x405: 0x1a13, - 0x406: 0x2613, 0x407: 0x2613, 0x408: 0x2a13, 0x409: 0x2a13, 0x40a: 0x2e13, 0x40b: 0x2e13, - 0x40c: 0x2a13, 0x40d: 0x2a13, 0x40e: 0x2613, 0x40f: 0x2613, 0x410: 0xa752, 0x411: 0xa752, - 0x412: 0xaa52, 0x413: 0xaa52, 0x414: 0xad52, 0x415: 0xad52, 0x416: 0xaa52, 0x417: 0xaa52, - 0x418: 0xa752, 0x419: 0xa752, 0x41a: 0x1a12, 0x41b: 0x1a12, 0x41c: 0x1e12, 0x41d: 0x1e12, - 0x41e: 0x1a12, 0x41f: 0x1a12, 0x420: 0x2612, 0x421: 0x2612, 0x422: 0x2a12, 0x423: 0x2a12, - 0x424: 0x2e12, 0x425: 0x2e12, 0x426: 0x2a12, 0x427: 0x2a12, 0x428: 0x2612, 0x429: 0x2612, - // Block 0x11, offset 0x440 - 0x440: 0x6552, 0x441: 0x6552, 0x442: 0x6552, 0x443: 0x6552, 0x444: 0x6552, 0x445: 0x6552, - 0x446: 0x6552, 0x447: 0x6552, 0x448: 0x6552, 0x449: 0x6552, 0x44a: 0x6552, 0x44b: 0x6552, - 0x44c: 0x6552, 0x44d: 0x6552, 0x44e: 0x6552, 0x44f: 0x6552, 0x450: 0xb052, 0x451: 0xb052, - 0x452: 0xb052, 0x453: 0xb052, 0x454: 0xb052, 0x455: 0xb052, 0x456: 0xb052, 0x457: 0xb052, - 0x458: 0xb052, 0x459: 0xb052, 0x45a: 0xb052, 0x45b: 0xb052, 0x45c: 0xb052, 0x45d: 0xb052, - 0x45e: 0xb052, 0x460: 0x0113, 0x461: 0x0112, 0x462: 0x896b, 0x463: 0x8b53, - 0x464: 0x89cb, 0x465: 0x8a2a, 0x466: 0x8a8a, 0x467: 0x0f13, 0x468: 0x0f12, 0x469: 0x0313, - 0x46a: 0x0312, 0x46b: 0x0713, 0x46c: 0x0712, 0x46d: 0x8aeb, 0x46e: 0x8b4b, 0x46f: 0x8bab, - 0x470: 0x8c0b, 0x471: 0x0012, 0x472: 0x0113, 0x473: 0x0112, 0x474: 0x0012, 0x475: 0x0313, - 0x476: 0x0312, 0x477: 0x0012, 0x478: 0x0012, 0x479: 0x0012, 0x47a: 0x0012, 0x47b: 0x0012, - 0x47c: 0x0015, 0x47d: 0x0015, 0x47e: 0x8c6b, 0x47f: 0x8ccb, - // Block 0x12, offset 0x480 - 0x480: 0x0113, 0x481: 0x0112, 0x482: 0x0113, 0x483: 0x0112, 0x484: 0x0113, 0x485: 0x0112, - 0x486: 0x0113, 0x487: 0x0112, 0x488: 0x0014, 0x489: 0x0014, 0x48a: 0x0014, 0x48b: 0x0713, - 0x48c: 0x0712, 0x48d: 0x8d2b, 0x48e: 0x0012, 0x48f: 0x0010, 0x490: 0x0113, 0x491: 0x0112, - 0x492: 0x0113, 0x493: 0x0112, 0x494: 0x6552, 0x495: 0x0012, 0x496: 0x0113, 0x497: 0x0112, - 0x498: 0x0113, 0x499: 0x0112, 0x49a: 0x0113, 0x49b: 0x0112, 0x49c: 0x0113, 0x49d: 0x0112, - 0x49e: 0x0113, 0x49f: 0x0112, 0x4a0: 0x0113, 0x4a1: 0x0112, 0x4a2: 0x0113, 0x4a3: 0x0112, - 0x4a4: 0x0113, 0x4a5: 0x0112, 0x4a6: 0x0113, 0x4a7: 0x0112, 0x4a8: 0x0113, 0x4a9: 0x0112, - 0x4aa: 0x8d8b, 0x4ab: 0x8deb, 0x4ac: 0x8e4b, 0x4ad: 0x8eab, 0x4ae: 0x8f0b, 0x4af: 0x0012, - 0x4b0: 0x8f6b, 0x4b1: 0x8fcb, 0x4b2: 0x902b, 0x4b3: 0xb353, 0x4b4: 0x0113, 0x4b5: 0x0112, - 0x4b6: 0x0113, 0x4b7: 0x0112, 0x4b8: 0x0113, 0x4b9: 0x0112, 0x4ba: 0x0113, 0x4bb: 0x0112, - 0x4bc: 0x0113, 0x4bd: 0x0112, 0x4be: 0x0113, 0x4bf: 0x0112, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x90ea, 0x4c1: 0x916a, 0x4c2: 0x91ea, 0x4c3: 0x926a, 0x4c4: 0x931a, 0x4c5: 0x93ca, - 0x4c6: 0x944a, - 0x4d3: 0x94ca, 0x4d4: 0x95aa, 0x4d5: 0x968a, 0x4d6: 0x976a, 0x4d7: 0x984a, - 0x4dd: 0x0010, - 0x4de: 0x0034, 0x4df: 0x0010, 0x4e0: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, 0x4e3: 0x0010, - 0x4e4: 0x0010, 0x4e5: 0x0010, 0x4e6: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, - 0x4ea: 0x0010, 0x4eb: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, - 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f3: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, - 0x4f6: 0x0010, 0x4f8: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, - 0x4fc: 0x0010, 0x4fe: 0x0010, - // Block 0x14, offset 0x500 - 0x500: 0x2213, 0x501: 0x2213, 0x502: 0x2613, 0x503: 0x2613, 0x504: 0x2213, 0x505: 0x2213, - 0x506: 0x2e13, 0x507: 0x2e13, 0x508: 0x2213, 0x509: 0x2213, 0x50a: 0x2613, 0x50b: 0x2613, - 0x50c: 0x2213, 0x50d: 0x2213, 0x50e: 0x3e13, 0x50f: 0x3e13, 0x510: 0x2213, 0x511: 0x2213, - 0x512: 0x2613, 0x513: 0x2613, 0x514: 0x2213, 0x515: 0x2213, 0x516: 0x2e13, 0x517: 0x2e13, - 0x518: 0x2213, 0x519: 0x2213, 0x51a: 0x2613, 0x51b: 0x2613, 0x51c: 0x2213, 0x51d: 0x2213, - 0x51e: 0xbc53, 0x51f: 0xbc53, 0x520: 0xbf53, 0x521: 0xbf53, 0x522: 0x2212, 0x523: 0x2212, - 0x524: 0x2612, 0x525: 0x2612, 0x526: 0x2212, 0x527: 0x2212, 0x528: 0x2e12, 0x529: 0x2e12, - 0x52a: 0x2212, 0x52b: 0x2212, 0x52c: 0x2612, 0x52d: 0x2612, 0x52e: 0x2212, 0x52f: 0x2212, - 0x530: 0x3e12, 0x531: 0x3e12, 0x532: 0x2212, 0x533: 0x2212, 0x534: 0x2612, 0x535: 0x2612, - 0x536: 0x2212, 0x537: 0x2212, 0x538: 0x2e12, 0x539: 0x2e12, 0x53a: 0x2212, 0x53b: 0x2212, - 0x53c: 0x2612, 0x53d: 0x2612, 0x53e: 0x2212, 0x53f: 0x2212, - // Block 0x15, offset 0x540 - 0x542: 0x0010, - 0x547: 0x0010, 0x549: 0x0010, 0x54b: 0x0010, - 0x54d: 0x0010, 0x54e: 0x0010, 0x54f: 0x0010, 0x551: 0x0010, - 0x552: 0x0010, 0x554: 0x0010, 0x557: 0x0010, - 0x559: 0x0010, 0x55b: 0x0010, 0x55d: 0x0010, - 0x55f: 0x0010, 0x561: 0x0010, 0x562: 0x0010, - 0x564: 0x0010, 0x567: 0x0010, 0x568: 0x0010, 0x569: 0x0010, - 0x56a: 0x0010, 0x56c: 0x0010, 0x56d: 0x0010, 0x56e: 0x0010, 0x56f: 0x0010, - 0x570: 0x0010, 0x571: 0x0010, 0x572: 0x0010, 0x574: 0x0010, 0x575: 0x0010, - 0x576: 0x0010, 0x577: 0x0010, 0x579: 0x0010, 0x57a: 0x0010, 0x57b: 0x0010, - 0x57c: 0x0010, 0x57e: 0x0010, -} - -// caseIndex: 25 blocks, 1600 entries, 3200 bytes -// Block 0 is the zero block. -var caseIndex = [1600]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x14, 0xc3: 0x15, 0xc4: 0x16, 0xc5: 0x17, 0xc6: 0x01, 0xc7: 0x02, - 0xc8: 0x18, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x19, 0xcc: 0x1a, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, - 0xd0: 0x1b, 0xd1: 0x1c, 0xd2: 0x1d, 0xd3: 0x1e, 0xd4: 0x1f, 0xd5: 0x20, 0xd6: 0x08, 0xd7: 0x21, - 0xd8: 0x22, 0xd9: 0x23, 0xda: 0x24, 0xdb: 0x25, 0xdc: 0x26, 0xdd: 0x27, 0xde: 0x28, 0xdf: 0x29, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, - 0xf0: 0x14, 0xf3: 0x16, - // Block 0x4, offset 0x100 - 0x120: 0x2a, 0x121: 0x2b, 0x122: 0x2c, 0x123: 0x2d, 0x124: 0x2e, 0x125: 0x2f, 0x126: 0x30, 0x127: 0x31, - 0x128: 0x32, 0x129: 0x33, 0x12a: 0x34, 0x12b: 0x35, 0x12c: 0x36, 0x12d: 0x37, 0x12e: 0x38, 0x12f: 0x39, - 0x130: 0x3a, 0x131: 0x3b, 0x132: 0x3c, 0x133: 0x3d, 0x134: 0x3e, 0x135: 0x3f, 0x136: 0x40, 0x137: 0x41, - 0x138: 0x42, 0x139: 0x43, 0x13a: 0x44, 0x13b: 0x45, 0x13c: 0x46, 0x13d: 0x47, 0x13e: 0x48, 0x13f: 0x49, - // Block 0x5, offset 0x140 - 0x140: 0x4a, 0x141: 0x4b, 0x142: 0x4c, 0x143: 0x09, 0x144: 0x24, 0x145: 0x24, 0x146: 0x24, 0x147: 0x24, - 0x148: 0x24, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, - 0x150: 0x54, 0x151: 0x24, 0x152: 0x24, 0x153: 0x24, 0x154: 0x24, 0x155: 0x24, 0x156: 0x24, 0x157: 0x24, - 0x158: 0x24, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, - 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, - 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16b: 0x66, 0x16c: 0x67, 0x16d: 0x68, 0x16e: 0x69, 0x16f: 0x6a, - 0x170: 0x6b, 0x171: 0x6c, 0x172: 0x6d, 0x173: 0x6e, 0x174: 0x6f, 0x175: 0x70, 0x176: 0x71, 0x177: 0x72, - 0x178: 0x73, 0x179: 0x73, 0x17a: 0x74, 0x17b: 0x73, 0x17c: 0x75, 0x17d: 0x0a, 0x17e: 0x0b, 0x17f: 0x0c, - // Block 0x6, offset 0x180 - 0x180: 0x76, 0x181: 0x77, 0x182: 0x78, 0x183: 0x79, 0x184: 0x0d, 0x185: 0x7a, 0x186: 0x7b, - 0x192: 0x7c, 0x193: 0x0e, - 0x1b0: 0x7d, 0x1b1: 0x0f, 0x1b2: 0x73, 0x1b3: 0x7e, 0x1b4: 0x7f, 0x1b5: 0x80, 0x1b6: 0x81, 0x1b7: 0x82, - 0x1b8: 0x83, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x84, 0x1c2: 0x85, 0x1c3: 0x86, 0x1c4: 0x87, 0x1c5: 0x24, 0x1c6: 0x88, - // Block 0x8, offset 0x200 - 0x200: 0x89, 0x201: 0x24, 0x202: 0x24, 0x203: 0x24, 0x204: 0x24, 0x205: 0x24, 0x206: 0x24, 0x207: 0x24, - 0x208: 0x24, 0x209: 0x24, 0x20a: 0x24, 0x20b: 0x24, 0x20c: 0x24, 0x20d: 0x24, 0x20e: 0x24, 0x20f: 0x24, - 0x210: 0x24, 0x211: 0x24, 0x212: 0x8a, 0x213: 0x8b, 0x214: 0x24, 0x215: 0x24, 0x216: 0x24, 0x217: 0x24, - 0x218: 0x8c, 0x219: 0x8d, 0x21a: 0x8e, 0x21b: 0x8f, 0x21c: 0x90, 0x21d: 0x91, 0x21e: 0x10, 0x21f: 0x92, - 0x220: 0x93, 0x221: 0x94, 0x222: 0x24, 0x223: 0x95, 0x224: 0x96, 0x225: 0x97, 0x226: 0x98, 0x227: 0x99, - 0x228: 0x9a, 0x229: 0x9b, 0x22a: 0x9c, 0x22b: 0x9d, 0x22c: 0x9e, 0x22d: 0x9f, 0x22e: 0xa0, 0x22f: 0xa1, - 0x230: 0x24, 0x231: 0x24, 0x232: 0x24, 0x233: 0x24, 0x234: 0x24, 0x235: 0x24, 0x236: 0x24, 0x237: 0x24, - 0x238: 0x24, 0x239: 0x24, 0x23a: 0x24, 0x23b: 0x24, 0x23c: 0x24, 0x23d: 0x24, 0x23e: 0x24, 0x23f: 0x24, - // Block 0x9, offset 0x240 - 0x240: 0x24, 0x241: 0x24, 0x242: 0x24, 0x243: 0x24, 0x244: 0x24, 0x245: 0x24, 0x246: 0x24, 0x247: 0x24, - 0x248: 0x24, 0x249: 0x24, 0x24a: 0x24, 0x24b: 0x24, 0x24c: 0x24, 0x24d: 0x24, 0x24e: 0x24, 0x24f: 0x24, - 0x250: 0x24, 0x251: 0x24, 0x252: 0x24, 0x253: 0x24, 0x254: 0x24, 0x255: 0x24, 0x256: 0x24, 0x257: 0x24, - 0x258: 0x24, 0x259: 0x24, 0x25a: 0x24, 0x25b: 0x24, 0x25c: 0x24, 0x25d: 0x24, 0x25e: 0x24, 0x25f: 0x24, - 0x260: 0x24, 0x261: 0x24, 0x262: 0x24, 0x263: 0x24, 0x264: 0x24, 0x265: 0x24, 0x266: 0x24, 0x267: 0x24, - 0x268: 0x24, 0x269: 0x24, 0x26a: 0x24, 0x26b: 0x24, 0x26c: 0x24, 0x26d: 0x24, 0x26e: 0x24, 0x26f: 0x24, - 0x270: 0x24, 0x271: 0x24, 0x272: 0x24, 0x273: 0x24, 0x274: 0x24, 0x275: 0x24, 0x276: 0x24, 0x277: 0x24, - 0x278: 0x24, 0x279: 0x24, 0x27a: 0x24, 0x27b: 0x24, 0x27c: 0x24, 0x27d: 0x24, 0x27e: 0x24, 0x27f: 0x24, - // Block 0xa, offset 0x280 - 0x280: 0x24, 0x281: 0x24, 0x282: 0x24, 0x283: 0x24, 0x284: 0x24, 0x285: 0x24, 0x286: 0x24, 0x287: 0x24, - 0x288: 0x24, 0x289: 0x24, 0x28a: 0x24, 0x28b: 0x24, 0x28c: 0x24, 0x28d: 0x24, 0x28e: 0x24, 0x28f: 0x24, - 0x290: 0x24, 0x291: 0x24, 0x292: 0x24, 0x293: 0x24, 0x294: 0x24, 0x295: 0x24, 0x296: 0x24, 0x297: 0x24, - 0x298: 0x24, 0x299: 0x24, 0x29a: 0x24, 0x29b: 0x24, 0x29c: 0x24, 0x29d: 0x24, 0x29e: 0xa2, 0x29f: 0xa3, - // Block 0xb, offset 0x2c0 - 0x2ec: 0x11, 0x2ed: 0xa4, 0x2ee: 0xa5, 0x2ef: 0xa6, - 0x2f0: 0x24, 0x2f1: 0x24, 0x2f2: 0x24, 0x2f3: 0x24, 0x2f4: 0xa7, 0x2f5: 0xa8, 0x2f6: 0xa9, 0x2f7: 0xaa, - 0x2f8: 0xab, 0x2f9: 0xac, 0x2fa: 0x24, 0x2fb: 0xad, 0x2fc: 0xae, 0x2fd: 0xaf, 0x2fe: 0xb0, 0x2ff: 0xb1, - // Block 0xc, offset 0x300 - 0x300: 0xb2, 0x301: 0xb3, 0x302: 0x24, 0x303: 0xb4, 0x305: 0xb5, 0x307: 0xb6, - 0x30a: 0xb7, 0x30b: 0xb8, 0x30c: 0xb9, 0x30d: 0xba, 0x30e: 0xbb, 0x30f: 0xbc, - 0x310: 0xbd, 0x311: 0xbe, 0x312: 0xbf, 0x313: 0xc0, 0x314: 0xc1, 0x315: 0xc2, - 0x318: 0x24, 0x319: 0x24, 0x31a: 0x24, 0x31b: 0x24, 0x31c: 0xc3, 0x31d: 0xc4, - 0x320: 0xc5, 0x321: 0xc6, 0x322: 0xc7, 0x323: 0xc8, 0x324: 0xc9, 0x326: 0xca, - 0x328: 0xcb, 0x329: 0xcc, 0x32a: 0xcd, 0x32b: 0xce, 0x32c: 0x5f, 0x32d: 0xcf, 0x32e: 0xd0, - 0x330: 0x24, 0x331: 0xd1, 0x332: 0xd2, 0x333: 0xd3, 0x334: 0xd4, - 0x33a: 0xd5, 0x33c: 0xd6, 0x33d: 0xd7, 0x33e: 0xd8, 0x33f: 0xd9, - // Block 0xd, offset 0x340 - 0x340: 0xda, 0x341: 0xdb, 0x342: 0xdc, 0x343: 0xdd, 0x344: 0xde, 0x345: 0xdf, 0x346: 0xe0, 0x347: 0xe1, - 0x348: 0xe2, 0x34a: 0xe3, 0x34b: 0xe4, 0x34c: 0xe5, 0x34d: 0xe6, - 0x350: 0xe7, 0x351: 0xe8, 0x352: 0xe9, 0x353: 0xea, 0x356: 0xeb, 0x357: 0xec, - 0x358: 0xed, 0x359: 0xee, 0x35a: 0xef, 0x35b: 0xf0, 0x35c: 0xf1, - 0x360: 0xf2, 0x362: 0xf3, 0x363: 0xf4, 0x364: 0xf5, 0x365: 0xf6, 0x366: 0xf7, 0x367: 0xf8, - 0x368: 0xf9, 0x369: 0xfa, 0x36a: 0xfb, 0x36b: 0xfc, - 0x370: 0xfd, 0x371: 0xfe, 0x372: 0xff, 0x374: 0x100, 0x375: 0x101, 0x376: 0x102, - 0x37b: 0x103, 0x37e: 0x104, - // Block 0xe, offset 0x380 - 0x380: 0x24, 0x381: 0x24, 0x382: 0x24, 0x383: 0x24, 0x384: 0x24, 0x385: 0x24, 0x386: 0x24, 0x387: 0x24, - 0x388: 0x24, 0x389: 0x24, 0x38a: 0x24, 0x38b: 0x24, 0x38c: 0x24, 0x38d: 0x24, 0x38e: 0x105, - 0x390: 0x24, 0x391: 0x106, 0x392: 0x24, 0x393: 0x24, 0x394: 0x24, 0x395: 0x107, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x24, 0x3c1: 0x24, 0x3c2: 0x24, 0x3c3: 0x24, 0x3c4: 0x24, 0x3c5: 0x24, 0x3c6: 0x24, 0x3c7: 0x24, - 0x3c8: 0x24, 0x3c9: 0x24, 0x3ca: 0x24, 0x3cb: 0x24, 0x3cc: 0x24, 0x3cd: 0x24, 0x3ce: 0x24, 0x3cf: 0x24, - 0x3d0: 0x108, - // Block 0x10, offset 0x400 - 0x410: 0x24, 0x411: 0x24, 0x412: 0x24, 0x413: 0x24, 0x414: 0x24, 0x415: 0x24, 0x416: 0x24, 0x417: 0x24, - 0x418: 0x24, 0x419: 0x109, - // Block 0x11, offset 0x440 - 0x460: 0x24, 0x461: 0x24, 0x462: 0x24, 0x463: 0x24, 0x464: 0x24, 0x465: 0x24, 0x466: 0x24, 0x467: 0x24, - 0x468: 0xfc, 0x469: 0x10a, 0x46b: 0x10b, 0x46c: 0x10c, 0x46d: 0x10d, 0x46e: 0x10e, - 0x479: 0x10f, 0x47c: 0x24, 0x47d: 0x110, 0x47e: 0x111, 0x47f: 0x112, - // Block 0x12, offset 0x480 - 0x4b0: 0x24, 0x4b1: 0x113, 0x4b2: 0x114, - // Block 0x13, offset 0x4c0 - 0x4c5: 0x115, 0x4c6: 0x116, - 0x4c9: 0x117, - 0x4d0: 0x118, 0x4d1: 0x119, 0x4d2: 0x11a, 0x4d3: 0x11b, 0x4d4: 0x11c, 0x4d5: 0x11d, 0x4d6: 0x11e, 0x4d7: 0x11f, - 0x4d8: 0x120, 0x4d9: 0x121, 0x4da: 0x122, 0x4db: 0x123, 0x4dc: 0x124, 0x4dd: 0x125, 0x4de: 0x126, 0x4df: 0x127, - 0x4e8: 0x128, 0x4e9: 0x129, 0x4ea: 0x12a, - // Block 0x14, offset 0x500 - 0x500: 0x12b, 0x504: 0x12c, 0x505: 0x12d, - 0x50b: 0x12e, - 0x520: 0x24, 0x521: 0x24, 0x522: 0x24, 0x523: 0x12f, 0x524: 0x12, 0x525: 0x130, - 0x538: 0x131, 0x539: 0x13, 0x53a: 0x132, - // Block 0x15, offset 0x540 - 0x544: 0x133, 0x545: 0x134, 0x546: 0x135, - 0x54f: 0x136, - 0x56f: 0x137, - // Block 0x16, offset 0x580 - 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, - 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x138, 0x5c1: 0x139, 0x5c4: 0x139, 0x5c5: 0x139, 0x5c6: 0x139, 0x5c7: 0x13a, - // Block 0x18, offset 0x600 - 0x620: 0x15, -} - -// sparseOffsets: 296 entries, 592 bytes -var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x34, 0x37, 0x3b, 0x3e, 0x42, 0x4c, 0x4e, 0x57, 0x5e, 0x63, 0x71, 0x72, 0x80, 0x8f, 0x99, 0x9c, 0xa3, 0xab, 0xae, 0xb0, 0xc0, 0xc6, 0xd4, 0xdf, 0xec, 0xf7, 0x103, 0x10d, 0x119, 0x124, 0x130, 0x13c, 0x144, 0x14d, 0x157, 0x162, 0x16e, 0x174, 0x17f, 0x185, 0x18d, 0x190, 0x195, 0x199, 0x19d, 0x1a4, 0x1ad, 0x1b5, 0x1b6, 0x1bf, 0x1c6, 0x1ce, 0x1d4, 0x1d9, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1ea, 0x1eb, 0x1ed, 0x1ef, 0x1f1, 0x1f8, 0x1fd, 0x201, 0x20a, 0x20d, 0x210, 0x216, 0x217, 0x222, 0x223, 0x224, 0x229, 0x236, 0x23f, 0x240, 0x248, 0x251, 0x25a, 0x263, 0x268, 0x26b, 0x276, 0x284, 0x286, 0x28d, 0x291, 0x29d, 0x29e, 0x2a9, 0x2b1, 0x2b9, 0x2bf, 0x2c0, 0x2ce, 0x2d3, 0x2d6, 0x2db, 0x2df, 0x2e5, 0x2ea, 0x2ed, 0x2f2, 0x2f7, 0x2f8, 0x2fe, 0x300, 0x301, 0x303, 0x305, 0x308, 0x309, 0x30b, 0x30e, 0x314, 0x318, 0x31a, 0x31f, 0x326, 0x331, 0x33b, 0x33c, 0x345, 0x349, 0x34e, 0x356, 0x35c, 0x362, 0x36c, 0x371, 0x37a, 0x380, 0x389, 0x38d, 0x395, 0x397, 0x399, 0x39c, 0x39e, 0x3a0, 0x3a1, 0x3a2, 0x3a4, 0x3a6, 0x3ac, 0x3b1, 0x3b3, 0x3ba, 0x3bd, 0x3bf, 0x3c5, 0x3ca, 0x3cc, 0x3cd, 0x3ce, 0x3cf, 0x3d1, 0x3d3, 0x3d5, 0x3d8, 0x3da, 0x3dd, 0x3e5, 0x3e8, 0x3ec, 0x3f4, 0x3f6, 0x3f7, 0x3f8, 0x3fa, 0x400, 0x402, 0x403, 0x405, 0x407, 0x409, 0x416, 0x417, 0x418, 0x41c, 0x41e, 0x41f, 0x420, 0x421, 0x422, 0x425, 0x428, 0x42b, 0x431, 0x432, 0x434, 0x438, 0x43c, 0x442, 0x445, 0x44c, 0x450, 0x454, 0x45d, 0x466, 0x46c, 0x472, 0x47c, 0x486, 0x488, 0x491, 0x497, 0x49d, 0x4a3, 0x4a6, 0x4ac, 0x4af, 0x4b8, 0x4b9, 0x4c0, 0x4c4, 0x4c5, 0x4c8, 0x4d2, 0x4d5, 0x4d7, 0x4de, 0x4e6, 0x4ec, 0x4f2, 0x4f3, 0x4f9, 0x4fc, 0x504, 0x50b, 0x515, 0x51d, 0x520, 0x521, 0x522, 0x523, 0x524, 0x526, 0x527, 0x529, 0x52b, 0x52d, 0x531, 0x532, 0x534, 0x537, 0x539, 0x53c, 0x53e, 0x543, 0x548, 0x54c, 0x54d, 0x550, 0x554, 0x55f, 0x563, 0x56b, 0x570, 0x574, 0x577, 0x57b, 0x57e, 0x581, 0x586, 0x58a, 0x58e, 0x592, 0x596, 0x598, 0x59a, 0x59d, 0x5a2, 0x5a5, 0x5a7, 0x5aa, 0x5ac, 0x5b2, 0x5bb, 0x5c0, 0x5c1, 0x5c4, 0x5c5, 0x5c6, 0x5c7, 0x5c9, 0x5ca, 0x5cb} - -// sparseValues: 1483 entries, 5932 bytes -var sparseValues = [1483]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0004, lo: 0xa8, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xaa}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0004, lo: 0xaf, hi: 0xaf}, - {value: 0x0004, lo: 0xb4, hi: 0xb4}, - {value: 0x001a, lo: 0xb5, hi: 0xb5}, - {value: 0x0054, lo: 0xb7, hi: 0xb7}, - {value: 0x0004, lo: 0xb8, hi: 0xb8}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - // Block 0x1, offset 0x9 - {value: 0x2013, lo: 0x80, hi: 0x96}, - {value: 0x2013, lo: 0x98, hi: 0x9e}, - {value: 0x009a, lo: 0x9f, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xb6}, - {value: 0x2012, lo: 0xb8, hi: 0xbe}, - {value: 0x0252, lo: 0xbf, hi: 0xbf}, - // Block 0x2, offset 0xf - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x011b, lo: 0xb0, hi: 0xb0}, - {value: 0x019a, lo: 0xb1, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb7}, - {value: 0x0012, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x0553, lo: 0xbf, hi: 0xbf}, - // Block 0x3, offset 0x18 - {value: 0x0552, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x01da, lo: 0x89, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xb7}, - {value: 0x0253, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x028a, lo: 0xbf, hi: 0xbf}, - // Block 0x4, offset 0x24 - {value: 0x0117, lo: 0x80, hi: 0x9f}, - {value: 0x2f53, lo: 0xa0, hi: 0xa0}, - {value: 0x0012, lo: 0xa1, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xb3}, - {value: 0x0012, lo: 0xb4, hi: 0xb9}, - {value: 0x090b, lo: 0xba, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x2953, lo: 0xbd, hi: 0xbd}, - {value: 0x098b, lo: 0xbe, hi: 0xbe}, - {value: 0x0a0a, lo: 0xbf, hi: 0xbf}, - // Block 0x5, offset 0x2e - {value: 0x0015, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x97}, - {value: 0x0004, lo: 0x98, hi: 0x9d}, - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0015, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xbf}, - // Block 0x6, offset 0x34 - {value: 0x0024, lo: 0x80, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbf}, - // Block 0x7, offset 0x37 - {value: 0x6553, lo: 0x80, hi: 0x8f}, - {value: 0x2013, lo: 0x90, hi: 0x9f}, - {value: 0x5f53, lo: 0xa0, hi: 0xaf}, - {value: 0x2012, lo: 0xb0, hi: 0xbf}, - // Block 0x8, offset 0x3b - {value: 0x5f52, lo: 0x80, hi: 0x8f}, - {value: 0x6552, lo: 0x90, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x9, offset 0x3e - {value: 0x0117, lo: 0x80, hi: 0x81}, - {value: 0x0024, lo: 0x83, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xbf}, - // Block 0xa, offset 0x42 - {value: 0x0f13, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x0316, lo: 0x89, hi: 0x8a}, - {value: 0x0716, lo: 0x8b, hi: 0x8c}, - {value: 0x0316, lo: 0x8d, hi: 0x8e}, - {value: 0x0f12, lo: 0x8f, hi: 0x8f}, - {value: 0x0117, lo: 0x90, hi: 0xbf}, - // Block 0xb, offset 0x4c - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x6553, lo: 0xb1, hi: 0xbf}, - // Block 0xc, offset 0x4e - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6853, lo: 0x90, hi: 0x96}, - {value: 0x0014, lo: 0x99, hi: 0x99}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0054, lo: 0x9f, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa0}, - {value: 0x6552, lo: 0xa1, hi: 0xaf}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0xd, offset 0x57 - {value: 0x0034, lo: 0x81, hi: 0x82}, - {value: 0x0024, lo: 0x84, hi: 0x84}, - {value: 0x0034, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xaa}, - {value: 0x0010, lo: 0xaf, hi: 0xb3}, - {value: 0x0054, lo: 0xb4, hi: 0xb4}, - // Block 0xe, offset 0x5e - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0024, lo: 0x90, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0014, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xf, offset 0x63 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9c}, - {value: 0x0024, lo: 0x9d, hi: 0x9e}, - {value: 0x0034, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x10, offset 0x71 - {value: 0x0010, lo: 0x80, hi: 0xbf}, - // Block 0x11, offset 0x72 - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0024, lo: 0x9f, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x12, offset 0x80 - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0034, lo: 0xb1, hi: 0xb1}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0024, lo: 0xbf, hi: 0xbf}, - // Block 0x13, offset 0x8f - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0024, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x88}, - {value: 0x0024, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8d, hi: 0xbf}, - // Block 0x14, offset 0x99 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x15, offset 0x9c - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xb1}, - {value: 0x0034, lo: 0xb2, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0x16, offset 0xa3 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x99}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0xa3}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xad}, - // Block 0x17, offset 0xab - {value: 0x0010, lo: 0x80, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0xa0, hi: 0xaa}, - // Block 0x18, offset 0xae - {value: 0x0010, lo: 0xa0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x19, offset 0xb0 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0034, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0024, lo: 0xaa, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbf}, - // Block 0x1a, offset 0xc0 - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1b, offset 0xc6 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0x1c, offset 0xd4 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb6, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1d, offset 0xdf - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xb1}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xec - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x1f, offset 0xf7 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x99, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x20, offset 0x103 - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x21, offset 0x10d - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x85}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xbf}, - // Block 0x22, offset 0x119 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x23, offset 0x124 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x24, offset 0x130 - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0010, lo: 0xa8, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x25, offset 0x13c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x26, offset 0x144 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb9}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbf}, - // Block 0x27, offset 0x14d - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x88}, - {value: 0x0014, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x28, offset 0x157 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x29, offset 0x162 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb2}, - // Block 0x2a, offset 0x16e - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x2b, offset 0x174 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x94, hi: 0x97}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xba, hi: 0xbf}, - // Block 0x2c, offset 0x17f - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x96}, - {value: 0x0010, lo: 0x9a, hi: 0xb1}, - {value: 0x0010, lo: 0xb3, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x2d, offset 0x185 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x94}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9f}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - // Block 0x2e, offset 0x18d - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - // Block 0x2f, offset 0x190 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x30, offset 0x195 - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - // Block 0x31, offset 0x199 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x32, offset 0x19d - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0034, lo: 0x98, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0034, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x33, offset 0x1a4 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xac}, - {value: 0x0034, lo: 0xb1, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xba, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x34, offset 0x1ad - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0024, lo: 0x82, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x86, hi: 0x87}, - {value: 0x0010, lo: 0x88, hi: 0x8c}, - {value: 0x0014, lo: 0x8d, hi: 0x97}, - {value: 0x0014, lo: 0x99, hi: 0xbc}, - // Block 0x35, offset 0x1b5 - {value: 0x0034, lo: 0x86, hi: 0x86}, - // Block 0x36, offset 0x1b6 - {value: 0x0010, lo: 0xab, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbe}, - // Block 0x37, offset 0x1bf - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x96, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0x9e, hi: 0xa0}, - {value: 0x0010, lo: 0xa2, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xad}, - {value: 0x0014, lo: 0xb1, hi: 0xb4}, - // Block 0x38, offset 0x1c6 - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x6c53, lo: 0xa0, hi: 0xbf}, - // Block 0x39, offset 0x1ce - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x9a, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x3a, offset 0x1d4 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x3b, offset 0x1d9 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x82, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3c, offset 0x1dd - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3d, offset 0x1e0 - {value: 0x0010, lo: 0x80, hi: 0x9a}, - {value: 0x0024, lo: 0x9d, hi: 0x9f}, - // Block 0x3e, offset 0x1e2 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x7453, lo: 0xa0, hi: 0xaf}, - {value: 0x7853, lo: 0xb0, hi: 0xbf}, - // Block 0x3f, offset 0x1e5 - {value: 0x7c53, lo: 0x80, hi: 0x8f}, - {value: 0x8053, lo: 0x90, hi: 0x9f}, - {value: 0x7c53, lo: 0xa0, hi: 0xaf}, - {value: 0x0813, lo: 0xb0, hi: 0xb5}, - {value: 0x0892, lo: 0xb8, hi: 0xbd}, - // Block 0x40, offset 0x1ea - {value: 0x0010, lo: 0x81, hi: 0xbf}, - // Block 0x41, offset 0x1eb - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0010, lo: 0xaf, hi: 0xbf}, - // Block 0x42, offset 0x1ed - {value: 0x0010, lo: 0x81, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x43, offset 0x1ef - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb8}, - // Block 0x44, offset 0x1f1 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0034, lo: 0x94, hi: 0x94}, - {value: 0x0010, lo: 0xa0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - // Block 0x45, offset 0x1f8 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xac}, - {value: 0x0010, lo: 0xae, hi: 0xb0}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - // Block 0x46, offset 0x1fd - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x47, offset 0x201 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0004, lo: 0x97, hi: 0x97}, - {value: 0x0024, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0x48, offset 0x20a - {value: 0x0014, lo: 0x8b, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x49, offset 0x20d - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb8}, - // Block 0x4a, offset 0x210 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x4b, offset 0x216 - {value: 0x0010, lo: 0x80, hi: 0xb5}, - // Block 0x4c, offset 0x217 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbb}, - // Block 0x4d, offset 0x222 - {value: 0x0010, lo: 0x86, hi: 0x8f}, - // Block 0x4e, offset 0x223 - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x4f, offset 0x224 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - // Block 0x50, offset 0x229 - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x9e}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xac}, - {value: 0x0010, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xbc}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x51, offset 0x236 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xa7, hi: 0xa7}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - {value: 0x0034, lo: 0xb5, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbc}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x52, offset 0x23f - {value: 0x0034, lo: 0x80, hi: 0x80}, - // Block 0x53, offset 0x240 - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x54, offset 0x248 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0030, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xab, hi: 0xab}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - {value: 0x0024, lo: 0xad, hi: 0xb3}, - // Block 0x55, offset 0x251 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0030, lo: 0xaa, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbf}, - // Block 0x56, offset 0x25a - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0030, lo: 0xb2, hi: 0xb3}, - // Block 0x57, offset 0x263 - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0x58, offset 0x268 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8d, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x59, offset 0x26b - {value: 0x31ea, lo: 0x80, hi: 0x80}, - {value: 0x326a, lo: 0x81, hi: 0x81}, - {value: 0x32ea, lo: 0x82, hi: 0x82}, - {value: 0x336a, lo: 0x83, hi: 0x83}, - {value: 0x33ea, lo: 0x84, hi: 0x84}, - {value: 0x346a, lo: 0x85, hi: 0x85}, - {value: 0x34ea, lo: 0x86, hi: 0x86}, - {value: 0x356a, lo: 0x87, hi: 0x87}, - {value: 0x35ea, lo: 0x88, hi: 0x88}, - {value: 0x8353, lo: 0x90, hi: 0xba}, - {value: 0x8353, lo: 0xbd, hi: 0xbf}, - // Block 0x5a, offset 0x276 - {value: 0x0024, lo: 0x90, hi: 0x92}, - {value: 0x0034, lo: 0x94, hi: 0x99}, - {value: 0x0024, lo: 0x9a, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9f}, - {value: 0x0024, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xb3}, - {value: 0x0024, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb7}, - {value: 0x0024, lo: 0xb8, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xba}, - // Block 0x5b, offset 0x284 - {value: 0x0012, lo: 0x80, hi: 0xab}, - {value: 0x0015, lo: 0xac, hi: 0xbf}, - // Block 0x5c, offset 0x286 - {value: 0x0015, lo: 0x80, hi: 0xaa}, - {value: 0x0012, lo: 0xab, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb8}, - {value: 0x8752, lo: 0xb9, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbc}, - {value: 0x8b52, lo: 0xbd, hi: 0xbd}, - {value: 0x0012, lo: 0xbe, hi: 0xbf}, - // Block 0x5d, offset 0x28d - {value: 0x0012, lo: 0x80, hi: 0x8d}, - {value: 0x8f52, lo: 0x8e, hi: 0x8e}, - {value: 0x0012, lo: 0x8f, hi: 0x9a}, - {value: 0x0015, lo: 0x9b, hi: 0xbf}, - // Block 0x5e, offset 0x291 - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0024, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb9}, - {value: 0x0024, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbd}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x5f, offset 0x29d - {value: 0x0117, lo: 0x80, hi: 0xbf}, - // Block 0x60, offset 0x29e - {value: 0x0117, lo: 0x80, hi: 0x95}, - {value: 0x369a, lo: 0x96, hi: 0x96}, - {value: 0x374a, lo: 0x97, hi: 0x97}, - {value: 0x37fa, lo: 0x98, hi: 0x98}, - {value: 0x38aa, lo: 0x99, hi: 0x99}, - {value: 0x395a, lo: 0x9a, hi: 0x9a}, - {value: 0x3a0a, lo: 0x9b, hi: 0x9b}, - {value: 0x0012, lo: 0x9c, hi: 0x9d}, - {value: 0x3abb, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0x9f, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x61, offset 0x2a9 - {value: 0x0812, lo: 0x80, hi: 0x87}, - {value: 0x0813, lo: 0x88, hi: 0x8f}, - {value: 0x0812, lo: 0x90, hi: 0x95}, - {value: 0x0813, lo: 0x98, hi: 0x9d}, - {value: 0x0812, lo: 0xa0, hi: 0xa7}, - {value: 0x0813, lo: 0xa8, hi: 0xaf}, - {value: 0x0812, lo: 0xb0, hi: 0xb7}, - {value: 0x0813, lo: 0xb8, hi: 0xbf}, - // Block 0x62, offset 0x2b1 - {value: 0x0004, lo: 0x8b, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8f}, - {value: 0x0054, lo: 0x98, hi: 0x99}, - {value: 0x0054, lo: 0xa4, hi: 0xa4}, - {value: 0x0054, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xaa, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xaf}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x63, offset 0x2b9 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x94, hi: 0x94}, - {value: 0x0014, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa6, hi: 0xaf}, - {value: 0x0015, lo: 0xb1, hi: 0xb1}, - {value: 0x0015, lo: 0xbf, hi: 0xbf}, - // Block 0x64, offset 0x2bf - {value: 0x0015, lo: 0x90, hi: 0x9c}, - // Block 0x65, offset 0x2c0 - {value: 0x0024, lo: 0x90, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0xa0}, - {value: 0x0024, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa4}, - {value: 0x0034, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - // Block 0x66, offset 0x2ce - {value: 0x0016, lo: 0x85, hi: 0x86}, - {value: 0x0012, lo: 0x87, hi: 0x89}, - {value: 0xa452, lo: 0x8e, hi: 0x8e}, - {value: 0x1013, lo: 0xa0, hi: 0xaf}, - {value: 0x1012, lo: 0xb0, hi: 0xbf}, - // Block 0x67, offset 0x2d3 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x88}, - // Block 0x68, offset 0x2d6 - {value: 0xa753, lo: 0xb6, hi: 0xb7}, - {value: 0xaa53, lo: 0xb8, hi: 0xb9}, - {value: 0xad53, lo: 0xba, hi: 0xbb}, - {value: 0xaa53, lo: 0xbc, hi: 0xbd}, - {value: 0xa753, lo: 0xbe, hi: 0xbf}, - // Block 0x69, offset 0x2db - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6553, lo: 0x90, hi: 0x9f}, - {value: 0xb053, lo: 0xa0, hi: 0xae}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0x6a, offset 0x2df - {value: 0x0117, lo: 0x80, hi: 0xa3}, - {value: 0x0012, lo: 0xa4, hi: 0xa4}, - {value: 0x0716, lo: 0xab, hi: 0xac}, - {value: 0x0316, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb3}, - // Block 0x6b, offset 0x2e5 - {value: 0x6c52, lo: 0x80, hi: 0x9f}, - {value: 0x7052, lo: 0xa0, hi: 0xa5}, - {value: 0x7052, lo: 0xa7, hi: 0xa7}, - {value: 0x7052, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x6c, offset 0x2ea - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x6d, offset 0x2ed - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0010, lo: 0xb0, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x6e, offset 0x2f2 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9e}, - {value: 0x0024, lo: 0xa0, hi: 0xbf}, - // Block 0x6f, offset 0x2f7 - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - // Block 0x70, offset 0x2f8 - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0xaa, hi: 0xad}, - {value: 0x0030, lo: 0xae, hi: 0xaf}, - {value: 0x0004, lo: 0xb1, hi: 0xb5}, - {value: 0x0014, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x71, offset 0x2fe - {value: 0x0034, lo: 0x99, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9e}, - // Block 0x72, offset 0x300 - {value: 0x0004, lo: 0xbc, hi: 0xbe}, - // Block 0x73, offset 0x301 - {value: 0x0010, lo: 0x85, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x74, offset 0x303 - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x75, offset 0x305 - {value: 0x0010, lo: 0x80, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0xbf}, - // Block 0x76, offset 0x308 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - // Block 0x77, offset 0x309 - {value: 0x0010, lo: 0x90, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x78, offset 0x30b - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0xab}, - // Block 0x79, offset 0x30e - {value: 0x0117, lo: 0x80, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb2}, - {value: 0x0024, lo: 0xb4, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x7a, offset 0x314 - {value: 0x0117, lo: 0x80, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9d}, - {value: 0x0024, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x7b, offset 0x318 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb1}, - // Block 0x7c, offset 0x31a - {value: 0x0004, lo: 0x80, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xaf}, - {value: 0x0012, lo: 0xb0, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xbf}, - // Block 0x7d, offset 0x31f - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x0015, lo: 0xb0, hi: 0xb0}, - {value: 0x0012, lo: 0xb1, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x8753, lo: 0xbd, hi: 0xbd}, - {value: 0x0117, lo: 0xbe, hi: 0xbf}, - // Block 0x7e, offset 0x326 - {value: 0x0117, lo: 0x82, hi: 0x83}, - {value: 0x6553, lo: 0x84, hi: 0x84}, - {value: 0x908b, lo: 0x85, hi: 0x85}, - {value: 0x8f53, lo: 0x86, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x0316, lo: 0x89, hi: 0x8a}, - {value: 0x0316, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbf}, - // Block 0x7f, offset 0x331 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x8c, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - // Block 0x80, offset 0x33b - {value: 0x0010, lo: 0x80, hi: 0xb3}, - // Block 0x81, offset 0x33c - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xa0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb7}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x82, offset 0x345 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x83, offset 0x349 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0x92}, - {value: 0x0030, lo: 0x93, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0x84, offset 0x34e - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x85, offset 0x356 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0004, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x86, offset 0x35c - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0x87, offset 0x362 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x88, offset 0x36c - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0024, lo: 0xbe, hi: 0xbf}, - // Block 0x89, offset 0x371 - {value: 0x0024, lo: 0x81, hi: 0x81}, - {value: 0x0004, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - // Block 0x8a, offset 0x37a - {value: 0x0010, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x8e}, - {value: 0x0010, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x8b, offset 0x380 - {value: 0x0012, lo: 0x80, hi: 0x92}, - {value: 0xb352, lo: 0x93, hi: 0x93}, - {value: 0x0012, lo: 0x94, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xa9}, - {value: 0x0004, lo: 0xaa, hi: 0xab}, - {value: 0x74d2, lo: 0xb0, hi: 0xbf}, - // Block 0x8c, offset 0x389 - {value: 0x78d2, lo: 0x80, hi: 0x8f}, - {value: 0x7cd2, lo: 0x90, hi: 0x9f}, - {value: 0x80d2, lo: 0xa0, hi: 0xaf}, - {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, - // Block 0x8d, offset 0x38d - {value: 0x0010, lo: 0x80, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x8e, offset 0x395 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x8f, offset 0x397 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x8b, hi: 0xbb}, - // Block 0x90, offset 0x399 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0xbf}, - // Block 0x91, offset 0x39c - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0004, lo: 0xb2, hi: 0xbf}, - // Block 0x92, offset 0x39e - {value: 0x0004, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x93, hi: 0xbf}, - // Block 0x93, offset 0x3a0 - {value: 0x0010, lo: 0x80, hi: 0xbd}, - // Block 0x94, offset 0x3a1 - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0x95, offset 0x3a2 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0xbf}, - // Block 0x96, offset 0x3a4 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0xb0, hi: 0xbb}, - // Block 0x97, offset 0x3a6 - {value: 0x0014, lo: 0x80, hi: 0x8f}, - {value: 0x0054, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0xa0, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xad}, - {value: 0x0024, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - // Block 0x98, offset 0x3ac - {value: 0x0010, lo: 0x8d, hi: 0x8f}, - {value: 0x0054, lo: 0x92, hi: 0x92}, - {value: 0x0054, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0xb0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x99, offset 0x3b1 - {value: 0x0010, lo: 0x80, hi: 0xbc}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x9a, offset 0x3b3 - {value: 0x0054, lo: 0x87, hi: 0x87}, - {value: 0x0054, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0054, lo: 0x9a, hi: 0x9a}, - {value: 0x5f53, lo: 0xa1, hi: 0xba}, - {value: 0x0004, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9b, offset 0x3ba - {value: 0x0004, lo: 0x80, hi: 0x80}, - {value: 0x5f52, lo: 0x81, hi: 0x9a}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - // Block 0x9c, offset 0x3bd - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbe}, - // Block 0x9d, offset 0x3bf - {value: 0x0010, lo: 0x82, hi: 0x87}, - {value: 0x0010, lo: 0x8a, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0x97}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0004, lo: 0xa3, hi: 0xa3}, - {value: 0x0014, lo: 0xb9, hi: 0xbb}, - // Block 0x9e, offset 0x3c5 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0010, lo: 0x8d, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xba}, - {value: 0x0010, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9f, offset 0x3ca - {value: 0x0010, lo: 0x80, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x9d}, - // Block 0xa0, offset 0x3cc - {value: 0x0010, lo: 0x80, hi: 0xba}, - // Block 0xa1, offset 0x3cd - {value: 0x0010, lo: 0x80, hi: 0xb4}, - // Block 0xa2, offset 0x3ce - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0xa3, offset 0x3cf - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa4, offset 0x3d1 - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - // Block 0xa5, offset 0x3d3 - {value: 0x0010, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xad, hi: 0xbf}, - // Block 0xa6, offset 0x3d5 - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0xb5}, - {value: 0x0024, lo: 0xb6, hi: 0xba}, - // Block 0xa7, offset 0x3d8 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa8, offset 0x3da - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x91, hi: 0x95}, - // Block 0xa9, offset 0x3dd - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x97}, - {value: 0xb653, lo: 0x98, hi: 0x9f}, - {value: 0xb953, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbf}, - // Block 0xaa, offset 0x3e5 - {value: 0xb652, lo: 0x80, hi: 0x87}, - {value: 0xb952, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xab, offset 0x3e8 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0xb953, lo: 0xb0, hi: 0xb7}, - {value: 0xb653, lo: 0xb8, hi: 0xbf}, - // Block 0xac, offset 0x3ec - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x93}, - {value: 0xb952, lo: 0x98, hi: 0x9f}, - {value: 0xb652, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbb}, - // Block 0xad, offset 0x3f4 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xae, offset 0x3f6 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - // Block 0xaf, offset 0x3f7 - {value: 0x0010, lo: 0x80, hi: 0xb6}, - // Block 0xb0, offset 0x3f8 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - // Block 0xb1, offset 0x3fa - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xb2, offset 0x400 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xb3, offset 0x402 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - // Block 0xb4, offset 0x403 - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - // Block 0xb5, offset 0x405 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb9}, - // Block 0xb6, offset 0x407 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0xb7, offset 0x409 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0024, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x99, hi: 0xb5}, - {value: 0x0024, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xb8, offset 0x416 - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0xb9, offset 0x417 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - // Block 0xba, offset 0x418 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - // Block 0xbb, offset 0x41c - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - // Block 0xbc, offset 0x41e - {value: 0x0010, lo: 0x80, hi: 0x91}, - // Block 0xbd, offset 0x41f - {value: 0x0010, lo: 0x80, hi: 0x88}, - // Block 0xbe, offset 0x420 - {value: 0x5653, lo: 0x80, hi: 0xb2}, - // Block 0xbf, offset 0x421 - {value: 0x5652, lo: 0x80, hi: 0xb2}, - // Block 0xc0, offset 0x422 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc1, offset 0x425 - {value: 0x0010, lo: 0x80, hi: 0xa9}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - // Block 0xc2, offset 0x428 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xc3, offset 0x42b - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x87}, - {value: 0x0024, lo: 0x88, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x8b}, - {value: 0x0024, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - // Block 0xc4, offset 0x431 - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xc5, offset 0x432 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xc6, offset 0x434 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xc7, offset 0x438 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xc8, offset 0x43c - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - // Block 0xc9, offset 0x442 - {value: 0x0014, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xca, offset 0x445 - {value: 0x0024, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0xcb, offset 0x44c - {value: 0x0010, lo: 0x84, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - // Block 0xcc, offset 0x450 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xcd, offset 0x454 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x89, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - // Block 0xce, offset 0x45d - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - {value: 0x0030, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0xcf, offset 0x466 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xd0, offset 0x46c - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa2}, - {value: 0x0014, lo: 0xa3, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xd1, offset 0x472 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xd2, offset 0x47c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0030, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9d, hi: 0xa3}, - {value: 0x0024, lo: 0xa6, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - // Block 0xd3, offset 0x486 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xd4, offset 0x488 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - // Block 0xd5, offset 0x491 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xd6, offset 0x497 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd7, offset 0x49d - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd8, offset 0x4a3 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x98, hi: 0x9b}, - {value: 0x0014, lo: 0x9c, hi: 0x9d}, - // Block 0xd9, offset 0x4a6 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xda, offset 0x4ac - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xdb, offset 0x4af - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0014, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb5}, - {value: 0x0030, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - // Block 0xdc, offset 0x4b8 - {value: 0x0010, lo: 0x80, hi: 0x89}, - // Block 0xdd, offset 0x4b9 - {value: 0x0014, lo: 0x9d, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xde, offset 0x4c0 - {value: 0x0010, lo: 0x80, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - // Block 0xdf, offset 0x4c4 - {value: 0x5f53, lo: 0xa0, hi: 0xbf}, - // Block 0xe0, offset 0x4c5 - {value: 0x5f52, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xe1, offset 0x4c8 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8c, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - {value: 0x0030, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xe2, offset 0x4d2 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0034, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xe3, offset 0x4d5 - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - {value: 0x0010, lo: 0xaa, hi: 0xbf}, - // Block 0xe4, offset 0x4d7 - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0014, lo: 0x94, hi: 0x97}, - {value: 0x0014, lo: 0x9a, hi: 0x9b}, - {value: 0x0010, lo: 0x9c, hi: 0x9f}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - // Block 0xe5, offset 0x4de - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x8a}, - {value: 0x0010, lo: 0x8b, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbb, hi: 0xbe}, - // Block 0xe6, offset 0x4e6 - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0014, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x98}, - {value: 0x0014, lo: 0x99, hi: 0x9b}, - {value: 0x0010, lo: 0x9c, hi: 0xbf}, - // Block 0xe7, offset 0x4ec - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0014, lo: 0x8a, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x99}, - {value: 0x0010, lo: 0x9d, hi: 0x9d}, - // Block 0xe8, offset 0x4f2 - {value: 0x0010, lo: 0x80, hi: 0xb8}, - // Block 0xe9, offset 0x4f3 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xea, offset 0x4f9 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0xeb, offset 0x4fc - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0014, lo: 0x92, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xa9}, - {value: 0x0014, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0xec, offset 0x504 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb6}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xed, offset 0x50b - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa5}, - {value: 0x0010, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xbf}, - // Block 0xee, offset 0x515 - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0014, lo: 0x90, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0x96}, - {value: 0x0034, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xef, offset 0x51d - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - // Block 0xf0, offset 0x520 - {value: 0x0010, lo: 0xb0, hi: 0xb0}, - // Block 0xf1, offset 0x521 - {value: 0x0010, lo: 0x80, hi: 0x99}, - // Block 0xf2, offset 0x522 - {value: 0x0010, lo: 0x80, hi: 0xae}, - // Block 0xf3, offset 0x523 - {value: 0x0010, lo: 0x80, hi: 0x83}, - // Block 0xf4, offset 0x524 - {value: 0x0010, lo: 0x80, hi: 0xae}, - {value: 0x0014, lo: 0xb0, hi: 0xb8}, - // Block 0xf5, offset 0x526 - {value: 0x0010, lo: 0x80, hi: 0x86}, - // Block 0xf6, offset 0x527 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xf7, offset 0x529 - {value: 0x0010, lo: 0x90, hi: 0xad}, - {value: 0x0034, lo: 0xb0, hi: 0xb4}, - // Block 0xf8, offset 0x52b - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - // Block 0xf9, offset 0x52d - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa3, hi: 0xb7}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xfa, offset 0x531 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - // Block 0xfb, offset 0x532 - {value: 0x2013, lo: 0x80, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xbf}, - // Block 0xfc, offset 0x534 - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xfd, offset 0x537 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0014, lo: 0x8f, hi: 0x9f}, - // Block 0xfe, offset 0x539 - {value: 0x0014, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa3, hi: 0xa4}, - {value: 0x0030, lo: 0xb0, hi: 0xb1}, - // Block 0xff, offset 0x53c - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbc}, - // Block 0x100, offset 0x53e - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0034, lo: 0x9e, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa3}, - // Block 0x101, offset 0x543 - {value: 0x0030, lo: 0xa5, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xa9}, - {value: 0x0030, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbf}, - // Block 0x102, offset 0x548 - {value: 0x0034, lo: 0x80, hi: 0x82}, - {value: 0x0024, lo: 0x85, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8b}, - {value: 0x0024, lo: 0xaa, hi: 0xad}, - // Block 0x103, offset 0x54c - {value: 0x0024, lo: 0x82, hi: 0x84}, - // Block 0x104, offset 0x54d - {value: 0x0013, lo: 0x80, hi: 0x99}, - {value: 0x0012, lo: 0x9a, hi: 0xb3}, - {value: 0x0013, lo: 0xb4, hi: 0xbf}, - // Block 0x105, offset 0x550 - {value: 0x0013, lo: 0x80, hi: 0x8d}, - {value: 0x0012, lo: 0x8e, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0xa7}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0x106, offset 0x554 - {value: 0x0013, lo: 0x80, hi: 0x81}, - {value: 0x0012, lo: 0x82, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0x9c}, - {value: 0x0013, lo: 0x9e, hi: 0x9f}, - {value: 0x0013, lo: 0xa2, hi: 0xa2}, - {value: 0x0013, lo: 0xa5, hi: 0xa6}, - {value: 0x0013, lo: 0xa9, hi: 0xac}, - {value: 0x0013, lo: 0xae, hi: 0xb5}, - {value: 0x0012, lo: 0xb6, hi: 0xb9}, - {value: 0x0012, lo: 0xbb, hi: 0xbb}, - {value: 0x0012, lo: 0xbd, hi: 0xbf}, - // Block 0x107, offset 0x55f - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0012, lo: 0x85, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0x108, offset 0x563 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0013, lo: 0x84, hi: 0x85}, - {value: 0x0013, lo: 0x87, hi: 0x8a}, - {value: 0x0013, lo: 0x8d, hi: 0x94}, - {value: 0x0013, lo: 0x96, hi: 0x9c}, - {value: 0x0012, lo: 0x9e, hi: 0xb7}, - {value: 0x0013, lo: 0xb8, hi: 0xb9}, - {value: 0x0013, lo: 0xbb, hi: 0xbe}, - // Block 0x109, offset 0x56b - {value: 0x0013, lo: 0x80, hi: 0x84}, - {value: 0x0013, lo: 0x86, hi: 0x86}, - {value: 0x0013, lo: 0x8a, hi: 0x90}, - {value: 0x0012, lo: 0x92, hi: 0xab}, - {value: 0x0013, lo: 0xac, hi: 0xbf}, - // Block 0x10a, offset 0x570 - {value: 0x0013, lo: 0x80, hi: 0x85}, - {value: 0x0012, lo: 0x86, hi: 0x9f}, - {value: 0x0013, lo: 0xa0, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbf}, - // Block 0x10b, offset 0x574 - {value: 0x0012, lo: 0x80, hi: 0x93}, - {value: 0x0013, lo: 0x94, hi: 0xad}, - {value: 0x0012, lo: 0xae, hi: 0xbf}, - // Block 0x10c, offset 0x577 - {value: 0x0012, lo: 0x80, hi: 0x87}, - {value: 0x0013, lo: 0x88, hi: 0xa1}, - {value: 0x0012, lo: 0xa2, hi: 0xbb}, - {value: 0x0013, lo: 0xbc, hi: 0xbf}, - // Block 0x10d, offset 0x57b - {value: 0x0013, lo: 0x80, hi: 0x95}, - {value: 0x0012, lo: 0x96, hi: 0xaf}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x10e, offset 0x57e - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0012, lo: 0x8a, hi: 0xa5}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0x10f, offset 0x581 - {value: 0x0013, lo: 0x80, hi: 0x80}, - {value: 0x0012, lo: 0x82, hi: 0x9a}, - {value: 0x0012, lo: 0x9c, hi: 0xa1}, - {value: 0x0013, lo: 0xa2, hi: 0xba}, - {value: 0x0012, lo: 0xbc, hi: 0xbf}, - // Block 0x110, offset 0x586 - {value: 0x0012, lo: 0x80, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0xb4}, - {value: 0x0012, lo: 0xb6, hi: 0xbf}, - // Block 0x111, offset 0x58a - {value: 0x0012, lo: 0x80, hi: 0x8e}, - {value: 0x0012, lo: 0x90, hi: 0x95}, - {value: 0x0013, lo: 0x96, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x112, offset 0x58e - {value: 0x0012, lo: 0x80, hi: 0x88}, - {value: 0x0012, lo: 0x8a, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0x113, offset 0x592 - {value: 0x0012, lo: 0x80, hi: 0x82}, - {value: 0x0012, lo: 0x84, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8b}, - {value: 0x0010, lo: 0x8e, hi: 0xbf}, - // Block 0x114, offset 0x596 - {value: 0x0014, lo: 0x80, hi: 0xb6}, - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x115, offset 0x598 - {value: 0x0014, lo: 0x80, hi: 0xac}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x116, offset 0x59a - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x9b, hi: 0x9f}, - {value: 0x0014, lo: 0xa1, hi: 0xaf}, - // Block 0x117, offset 0x59d - {value: 0x0024, lo: 0x80, hi: 0x86}, - {value: 0x0024, lo: 0x88, hi: 0x98}, - {value: 0x0024, lo: 0x9b, hi: 0xa1}, - {value: 0x0024, lo: 0xa3, hi: 0xa4}, - {value: 0x0024, lo: 0xa6, hi: 0xaa}, - // Block 0x118, offset 0x5a2 - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - // Block 0x119, offset 0x5a5 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - // Block 0x11a, offset 0x5a7 - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0024, lo: 0xac, hi: 0xaf}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x11b, offset 0x5aa - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0034, lo: 0x90, hi: 0x96}, - // Block 0x11c, offset 0x5ac - {value: 0xbc52, lo: 0x80, hi: 0x81}, - {value: 0xbf52, lo: 0x82, hi: 0x83}, - {value: 0x0024, lo: 0x84, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x11d, offset 0x5b2 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x9f}, - {value: 0x0010, lo: 0xa1, hi: 0xa2}, - {value: 0x0010, lo: 0xa4, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb7}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - // Block 0x11e, offset 0x5bb - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x9b}, - {value: 0x0010, lo: 0xa1, hi: 0xa3}, - {value: 0x0010, lo: 0xa5, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xbb}, - // Block 0x11f, offset 0x5c0 - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x120, offset 0x5c1 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x121, offset 0x5c4 - {value: 0x0013, lo: 0x80, hi: 0x89}, - // Block 0x122, offset 0x5c5 - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x123, offset 0x5c6 - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x124, offset 0x5c7 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0014, lo: 0xa0, hi: 0xbf}, - // Block 0x125, offset 0x5c9 - {value: 0x0014, lo: 0x80, hi: 0xbf}, - // Block 0x126, offset 0x5ca - {value: 0x0014, lo: 0x80, hi: 0xaf}, -} - -// Total table size 15212 bytes (14KiB); checksum: 1EB13752 diff --git a/backend/vendor/golang.org/x/text/cases/tables9.0.0.go b/backend/vendor/golang.org/x/text/cases/tables9.0.0.go deleted file mode 100644 index 636d5d14..00000000 --- a/backend/vendor/golang.org/x/text/cases/tables9.0.0.go +++ /dev/null @@ -1,2216 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build !go1.10 -// +build !go1.10 - -package cases - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "9.0.0" - -var xorData string = "" + // Size: 185 bytes - "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + - "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + - "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + - "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + - "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + - "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + - "\x0b!\x10\x00\x0b!0\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a\x00\x02:" + - "\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01*" + - "\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00\x01\x22" - -var exceptions string = "" + // Size: 2068 bytes - "\x00\x12\x12μΜΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x09II\x13\x1bʼnʼNʼN\x11" + - "\x09sSS\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj" + - "\x12\x12njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x1bǰJ̌J̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10" + - "\x12DZDz\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x1bⱾⱾ\x10\x1bⱿⱿ\x10\x1bⱯⱯ\x10\x1bⱭⱭ\x10" + - "\x1bⱰⱰ\x10\x1bꞫꞫ\x10\x1bꞬꞬ\x10\x1bꞍꞍ\x10\x1bꞪꞪ\x10\x1bꞮꞮ\x10\x1bⱢⱢ\x10" + - "\x1bꞭꞭ\x10\x1bⱮⱮ\x10\x1bⱤⱤ\x10\x1bꞱꞱ\x10\x1bꞲꞲ\x10\x1bꞰꞰ2\x12ιΙΙ\x166ΐ" + - "Ϊ́Ϊ́\x166ΰΫ́Ϋ́\x12\x12σΣΣ\x12\x12βΒΒ\x12\x12θΘΘ\x12\x12φΦΦ\x12" + - "\x12πΠΠ\x12\x12κΚΚ\x12\x12ρΡΡ\x12\x12εΕΕ\x14$եւԵՒԵւ\x12\x12вВВ\x12\x12дД" + - "Д\x12\x12оОО\x12\x12сСС\x12\x12тТТ\x12\x12тТТ\x12\x12ъЪЪ\x12\x12ѣѢѢ\x13" + - "\x1bꙋꙊꙊ\x13\x1bẖH̱H̱\x13\x1bẗT̈T̈\x13\x1bẘW̊W̊\x13\x1bẙY̊Y̊\x13\x1ba" + - "ʾAʾAʾ\x13\x1bṡṠṠ\x12\x10ssß\x14$ὐΥ̓Υ̓\x166ὒΥ̓̀Υ̓̀\x166ὔΥ̓́Υ̓́\x166" + - "ὖΥ̓͂Υ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ" + - "\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ" + - "\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ" + - "\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨ" + - "Ι\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15" + - "\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ" + - "\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ" + - "\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰι" + - "ᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ\x14$ᾶΑ͂Α͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12" + - "\x12ιΙΙ\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14$ῆΗ͂Η͂\x166ῆιΗ͂Ιῌ͂\x14\x1c" + - "ηιῃΗΙ\x166ῒΪ̀Ϊ̀\x166ΐΪ́Ϊ́\x14$ῖΙ͂Ι͂\x166ῗΪ͂Ϊ͂\x166ῢΫ̀Ϋ" + - "̀\x166ΰΫ́Ϋ́\x14$ῤΡ̓Ρ̓\x14$ῦΥ͂Υ͂\x166ῧΫ͂Ϋ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙ" + - "ῼ\x14$ώιΏΙΏͅ\x14$ῶΩ͂Ω͂\x166ῶιΩ͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk" + - "\x12\x10åå\x12\x10ɫɫ\x12\x10ɽɽ\x10\x12ȺȺ\x10\x12ȾȾ\x12\x10ɑɑ\x12\x10ɱɱ" + - "\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ\x12\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ" + - "\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ\x12\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFF" + - "Ff\x12\x12fiFIFi\x12\x12flFLFl\x13\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12" + - "stSTSt\x12\x12stSTSt\x14$մնՄՆՄն\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄ" + - "ԽՄխ" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// caseTrie. Total size: 11742 bytes (11.47 KiB). Checksum: 795fe57ee5135873. -type caseTrie struct{} - -func newCaseTrie(i int) *caseTrie { - return &caseTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 18: - return uint16(caseValues[n<<6+uint32(b)]) - default: - n -= 18 - return uint16(sparse.lookup(n, b)) - } -} - -// caseValues: 20 blocks, 1280 entries, 2560 bytes -// The third block is the zero block. -var caseValues = [1280]uint16{ - // Block 0x0, offset 0x0 - 0x27: 0x0054, - 0x2e: 0x0054, - 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, - 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, - // Block 0x1, offset 0x40 - 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, - 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, - 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, - 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, - 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, - 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, - 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, - 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, - 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, - 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, - 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, - 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, - 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, - 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, - 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, - 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, - 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, - 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, - 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, - 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, - // Block 0x4, offset 0x100 - 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x02db, 0x105: 0x0359, - 0x106: 0x03da, 0x107: 0x043b, 0x108: 0x04b9, 0x109: 0x053a, 0x10a: 0x059b, 0x10b: 0x0619, - 0x10c: 0x069a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, - 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, - 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, - 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, - 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, - 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, - 0x130: 0x06fa, 0x131: 0x07ab, 0x132: 0x0829, 0x133: 0x08aa, 0x134: 0x0113, 0x135: 0x0112, - 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, - 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, - // Block 0x5, offset 0x140 - 0x140: 0x0a8a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, - 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, - 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x0b0a, 0x151: 0x0b8a, - 0x152: 0x0c0a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, - 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x0c8a, 0x15d: 0x0012, - 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x0d0a, 0x162: 0x0012, 0x163: 0x2052, - 0x164: 0x0012, 0x165: 0x0d8a, 0x166: 0x0e0a, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, - 0x16a: 0x0e8a, 0x16b: 0x0f0a, 0x16c: 0x0f8a, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, - 0x170: 0x0012, 0x171: 0x100a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, - 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, - 0x17c: 0x0012, 0x17d: 0x108a, 0x17e: 0x0012, 0x17f: 0x0012, - // Block 0x6, offset 0x180 - 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, - 0x186: 0x0012, 0x187: 0x110a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, - 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, - 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, - 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x118a, - 0x19e: 0x120a, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, - 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, - 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, - 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, - 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, - 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x128d, - 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, - 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, - 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, - 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, - 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, - 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, - 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, - 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, - 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, - 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, - // Block 0x8, offset 0x200 - 0x204: 0x0004, 0x205: 0x0004, - 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, - 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x130a, 0x211: 0x2013, - 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, - 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, - 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, - 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, - 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, - 0x230: 0x144a, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, - 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, - 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, - // Block 0x9, offset 0x240 - 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x158a, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, - 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, - 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x160a, 0x251: 0x168a, - 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x170a, 0x256: 0x178a, 0x257: 0x1812, - 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, - 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, - 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, - 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, - 0x270: 0x180a, 0x271: 0x188a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x190a, - 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, - 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, - // Block 0xa, offset 0x280 - 0x280: 0x0812, 0x281: 0x0812, 0x282: 0x0812, 0x283: 0x0812, 0x284: 0x0812, 0x285: 0x0812, - 0x288: 0x0813, 0x289: 0x0813, 0x28a: 0x0813, 0x28b: 0x0813, - 0x28c: 0x0813, 0x28d: 0x0813, 0x290: 0x239a, 0x291: 0x0812, - 0x292: 0x247a, 0x293: 0x0812, 0x294: 0x25ba, 0x295: 0x0812, 0x296: 0x26fa, 0x297: 0x0812, - 0x299: 0x0813, 0x29b: 0x0813, 0x29d: 0x0813, - 0x29f: 0x0813, 0x2a0: 0x0812, 0x2a1: 0x0812, 0x2a2: 0x0812, 0x2a3: 0x0812, - 0x2a4: 0x0812, 0x2a5: 0x0812, 0x2a6: 0x0812, 0x2a7: 0x0812, 0x2a8: 0x0813, 0x2a9: 0x0813, - 0x2aa: 0x0813, 0x2ab: 0x0813, 0x2ac: 0x0813, 0x2ad: 0x0813, 0x2ae: 0x0813, 0x2af: 0x0813, - 0x2b0: 0x8b52, 0x2b1: 0x8b52, 0x2b2: 0x8e52, 0x2b3: 0x8e52, 0x2b4: 0x9152, 0x2b5: 0x9152, - 0x2b6: 0x9452, 0x2b7: 0x9452, 0x2b8: 0x9752, 0x2b9: 0x9752, 0x2ba: 0x9a52, 0x2bb: 0x9a52, - 0x2bc: 0x4d52, 0x2bd: 0x4d52, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x283a, 0x2c1: 0x292a, 0x2c2: 0x2a1a, 0x2c3: 0x2b0a, 0x2c4: 0x2bfa, 0x2c5: 0x2cea, - 0x2c6: 0x2dda, 0x2c7: 0x2eca, 0x2c8: 0x2fb9, 0x2c9: 0x30a9, 0x2ca: 0x3199, 0x2cb: 0x3289, - 0x2cc: 0x3379, 0x2cd: 0x3469, 0x2ce: 0x3559, 0x2cf: 0x3649, 0x2d0: 0x373a, 0x2d1: 0x382a, - 0x2d2: 0x391a, 0x2d3: 0x3a0a, 0x2d4: 0x3afa, 0x2d5: 0x3bea, 0x2d6: 0x3cda, 0x2d7: 0x3dca, - 0x2d8: 0x3eb9, 0x2d9: 0x3fa9, 0x2da: 0x4099, 0x2db: 0x4189, 0x2dc: 0x4279, 0x2dd: 0x4369, - 0x2de: 0x4459, 0x2df: 0x4549, 0x2e0: 0x463a, 0x2e1: 0x472a, 0x2e2: 0x481a, 0x2e3: 0x490a, - 0x2e4: 0x49fa, 0x2e5: 0x4aea, 0x2e6: 0x4bda, 0x2e7: 0x4cca, 0x2e8: 0x4db9, 0x2e9: 0x4ea9, - 0x2ea: 0x4f99, 0x2eb: 0x5089, 0x2ec: 0x5179, 0x2ed: 0x5269, 0x2ee: 0x5359, 0x2ef: 0x5449, - 0x2f0: 0x0812, 0x2f1: 0x0812, 0x2f2: 0x553a, 0x2f3: 0x564a, 0x2f4: 0x571a, - 0x2f6: 0x57fa, 0x2f7: 0x58da, 0x2f8: 0x0813, 0x2f9: 0x0813, 0x2fa: 0x8b53, 0x2fb: 0x8b53, - 0x2fc: 0x5a19, 0x2fd: 0x0004, 0x2fe: 0x5aea, 0x2ff: 0x0004, - // Block 0xc, offset 0x300 - 0x300: 0x0004, 0x301: 0x0004, 0x302: 0x5b6a, 0x303: 0x5c7a, 0x304: 0x5d4a, - 0x306: 0x5e2a, 0x307: 0x5f0a, 0x308: 0x8e53, 0x309: 0x8e53, 0x30a: 0x9153, 0x30b: 0x9153, - 0x30c: 0x6049, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0812, 0x311: 0x0812, - 0x312: 0x611a, 0x313: 0x625a, 0x316: 0x639a, 0x317: 0x647a, - 0x318: 0x0813, 0x319: 0x0813, 0x31a: 0x9453, 0x31b: 0x9453, 0x31d: 0x0004, - 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0x65ba, 0x323: 0x66fa, - 0x324: 0x683a, 0x325: 0x0912, 0x326: 0x691a, 0x327: 0x69fa, 0x328: 0x0813, 0x329: 0x0813, - 0x32a: 0x9a53, 0x32b: 0x9a53, 0x32c: 0x0913, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004, - 0x332: 0x6b3a, 0x333: 0x6c4a, 0x334: 0x6d1a, - 0x336: 0x6dfa, 0x337: 0x6eda, 0x338: 0x9753, 0x339: 0x9753, 0x33a: 0x4d53, 0x33b: 0x4d53, - 0x33c: 0x7019, 0x33d: 0x0004, 0x33e: 0x0004, - // Block 0xd, offset 0x340 - 0x342: 0x0013, - 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013, - 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013, - 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013, - 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013, - 0x364: 0x0013, 0x366: 0x70eb, 0x368: 0x0013, - 0x36a: 0x714b, 0x36b: 0x718b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012, - 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x9d53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010, - 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012, - 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013, - // Block 0xe, offset 0x380 - 0x380: 0x1a13, 0x381: 0x1a13, 0x382: 0x1e13, 0x383: 0x1e13, 0x384: 0x1a13, 0x385: 0x1a13, - 0x386: 0x2613, 0x387: 0x2613, 0x388: 0x2a13, 0x389: 0x2a13, 0x38a: 0x2e13, 0x38b: 0x2e13, - 0x38c: 0x2a13, 0x38d: 0x2a13, 0x38e: 0x2613, 0x38f: 0x2613, 0x390: 0xa052, 0x391: 0xa052, - 0x392: 0xa352, 0x393: 0xa352, 0x394: 0xa652, 0x395: 0xa652, 0x396: 0xa352, 0x397: 0xa352, - 0x398: 0xa052, 0x399: 0xa052, 0x39a: 0x1a12, 0x39b: 0x1a12, 0x39c: 0x1e12, 0x39d: 0x1e12, - 0x39e: 0x1a12, 0x39f: 0x1a12, 0x3a0: 0x2612, 0x3a1: 0x2612, 0x3a2: 0x2a12, 0x3a3: 0x2a12, - 0x3a4: 0x2e12, 0x3a5: 0x2e12, 0x3a6: 0x2a12, 0x3a7: 0x2a12, 0x3a8: 0x2612, 0x3a9: 0x2612, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x6552, 0x3c1: 0x6552, 0x3c2: 0x6552, 0x3c3: 0x6552, 0x3c4: 0x6552, 0x3c5: 0x6552, - 0x3c6: 0x6552, 0x3c7: 0x6552, 0x3c8: 0x6552, 0x3c9: 0x6552, 0x3ca: 0x6552, 0x3cb: 0x6552, - 0x3cc: 0x6552, 0x3cd: 0x6552, 0x3ce: 0x6552, 0x3cf: 0x6552, 0x3d0: 0xa952, 0x3d1: 0xa952, - 0x3d2: 0xa952, 0x3d3: 0xa952, 0x3d4: 0xa952, 0x3d5: 0xa952, 0x3d6: 0xa952, 0x3d7: 0xa952, - 0x3d8: 0xa952, 0x3d9: 0xa952, 0x3da: 0xa952, 0x3db: 0xa952, 0x3dc: 0xa952, 0x3dd: 0xa952, - 0x3de: 0xa952, 0x3e0: 0x0113, 0x3e1: 0x0112, 0x3e2: 0x71eb, 0x3e3: 0x8853, - 0x3e4: 0x724b, 0x3e5: 0x72aa, 0x3e6: 0x730a, 0x3e7: 0x0f13, 0x3e8: 0x0f12, 0x3e9: 0x0313, - 0x3ea: 0x0312, 0x3eb: 0x0713, 0x3ec: 0x0712, 0x3ed: 0x736b, 0x3ee: 0x73cb, 0x3ef: 0x742b, - 0x3f0: 0x748b, 0x3f1: 0x0012, 0x3f2: 0x0113, 0x3f3: 0x0112, 0x3f4: 0x0012, 0x3f5: 0x0313, - 0x3f6: 0x0312, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012, - 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0x74eb, 0x3ff: 0x754b, - // Block 0x10, offset 0x400 - 0x400: 0x0113, 0x401: 0x0112, 0x402: 0x0113, 0x403: 0x0112, 0x404: 0x0113, 0x405: 0x0112, - 0x406: 0x0113, 0x407: 0x0112, 0x408: 0x0014, 0x409: 0x0004, 0x40a: 0x0004, 0x40b: 0x0713, - 0x40c: 0x0712, 0x40d: 0x75ab, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0113, 0x411: 0x0112, - 0x412: 0x0113, 0x413: 0x0112, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0113, 0x417: 0x0112, - 0x418: 0x0113, 0x419: 0x0112, 0x41a: 0x0113, 0x41b: 0x0112, 0x41c: 0x0113, 0x41d: 0x0112, - 0x41e: 0x0113, 0x41f: 0x0112, 0x420: 0x0113, 0x421: 0x0112, 0x422: 0x0113, 0x423: 0x0112, - 0x424: 0x0113, 0x425: 0x0112, 0x426: 0x0113, 0x427: 0x0112, 0x428: 0x0113, 0x429: 0x0112, - 0x42a: 0x760b, 0x42b: 0x766b, 0x42c: 0x76cb, 0x42d: 0x772b, 0x42e: 0x778b, - 0x430: 0x77eb, 0x431: 0x784b, 0x432: 0x78ab, 0x433: 0xac53, 0x434: 0x0113, 0x435: 0x0112, - 0x436: 0x0113, 0x437: 0x0112, - // Block 0x11, offset 0x440 - 0x440: 0x790a, 0x441: 0x798a, 0x442: 0x7a0a, 0x443: 0x7a8a, 0x444: 0x7b3a, 0x445: 0x7bea, - 0x446: 0x7c6a, - 0x453: 0x7cea, 0x454: 0x7dca, 0x455: 0x7eaa, 0x456: 0x7f8a, 0x457: 0x806a, - 0x45d: 0x0010, - 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010, - 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010, - 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010, - 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010, - 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010, - 0x47c: 0x0010, 0x47e: 0x0010, - // Block 0x12, offset 0x480 - 0x480: 0x2213, 0x481: 0x2213, 0x482: 0x2613, 0x483: 0x2613, 0x484: 0x2213, 0x485: 0x2213, - 0x486: 0x2e13, 0x487: 0x2e13, 0x488: 0x2213, 0x489: 0x2213, 0x48a: 0x2613, 0x48b: 0x2613, - 0x48c: 0x2213, 0x48d: 0x2213, 0x48e: 0x3e13, 0x48f: 0x3e13, 0x490: 0x2213, 0x491: 0x2213, - 0x492: 0x2613, 0x493: 0x2613, 0x494: 0x2213, 0x495: 0x2213, 0x496: 0x2e13, 0x497: 0x2e13, - 0x498: 0x2213, 0x499: 0x2213, 0x49a: 0x2613, 0x49b: 0x2613, 0x49c: 0x2213, 0x49d: 0x2213, - 0x49e: 0xb553, 0x49f: 0xb553, 0x4a0: 0xb853, 0x4a1: 0xb853, 0x4a2: 0x2212, 0x4a3: 0x2212, - 0x4a4: 0x2612, 0x4a5: 0x2612, 0x4a6: 0x2212, 0x4a7: 0x2212, 0x4a8: 0x2e12, 0x4a9: 0x2e12, - 0x4aa: 0x2212, 0x4ab: 0x2212, 0x4ac: 0x2612, 0x4ad: 0x2612, 0x4ae: 0x2212, 0x4af: 0x2212, - 0x4b0: 0x3e12, 0x4b1: 0x3e12, 0x4b2: 0x2212, 0x4b3: 0x2212, 0x4b4: 0x2612, 0x4b5: 0x2612, - 0x4b6: 0x2212, 0x4b7: 0x2212, 0x4b8: 0x2e12, 0x4b9: 0x2e12, 0x4ba: 0x2212, 0x4bb: 0x2212, - 0x4bc: 0x2612, 0x4bd: 0x2612, 0x4be: 0x2212, 0x4bf: 0x2212, - // Block 0x13, offset 0x4c0 - 0x4c2: 0x0010, - 0x4c7: 0x0010, 0x4c9: 0x0010, 0x4cb: 0x0010, - 0x4cd: 0x0010, 0x4ce: 0x0010, 0x4cf: 0x0010, 0x4d1: 0x0010, - 0x4d2: 0x0010, 0x4d4: 0x0010, 0x4d7: 0x0010, - 0x4d9: 0x0010, 0x4db: 0x0010, 0x4dd: 0x0010, - 0x4df: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, - 0x4e4: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, 0x4e9: 0x0010, - 0x4ea: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, - 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, - 0x4f6: 0x0010, 0x4f7: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, - 0x4fc: 0x0010, 0x4fe: 0x0010, -} - -// caseIndex: 25 blocks, 1600 entries, 3200 bytes -// Block 0 is the zero block. -var caseIndex = [1600]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x12, 0xc3: 0x13, 0xc4: 0x14, 0xc5: 0x15, 0xc6: 0x01, 0xc7: 0x02, - 0xc8: 0x16, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x17, 0xcc: 0x18, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, - 0xd0: 0x19, 0xd1: 0x1a, 0xd2: 0x1b, 0xd3: 0x1c, 0xd4: 0x1d, 0xd5: 0x1e, 0xd6: 0x1f, 0xd7: 0x20, - 0xd8: 0x21, 0xd9: 0x22, 0xda: 0x23, 0xdb: 0x24, 0xdc: 0x25, 0xdd: 0x26, 0xde: 0x27, 0xdf: 0x28, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, - 0xf0: 0x14, 0xf3: 0x16, - // Block 0x4, offset 0x100 - 0x120: 0x29, 0x121: 0x2a, 0x122: 0x2b, 0x123: 0x2c, 0x124: 0x2d, 0x125: 0x2e, 0x126: 0x2f, 0x127: 0x30, - 0x128: 0x31, 0x129: 0x32, 0x12a: 0x33, 0x12b: 0x34, 0x12c: 0x35, 0x12d: 0x36, 0x12e: 0x37, 0x12f: 0x38, - 0x130: 0x39, 0x131: 0x3a, 0x132: 0x3b, 0x133: 0x3c, 0x134: 0x3d, 0x135: 0x3e, 0x136: 0x3f, 0x137: 0x40, - 0x138: 0x41, 0x139: 0x42, 0x13a: 0x43, 0x13b: 0x44, 0x13c: 0x45, 0x13d: 0x46, 0x13e: 0x47, 0x13f: 0x48, - // Block 0x5, offset 0x140 - 0x140: 0x49, 0x141: 0x4a, 0x142: 0x4b, 0x143: 0x4c, 0x144: 0x23, 0x145: 0x23, 0x146: 0x23, 0x147: 0x23, - 0x148: 0x23, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, - 0x150: 0x54, 0x151: 0x23, 0x152: 0x23, 0x153: 0x23, 0x154: 0x23, 0x155: 0x23, 0x156: 0x23, 0x157: 0x23, - 0x158: 0x23, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, - 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, - 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69, - 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71, - 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a, - // Block 0x6, offset 0x180 - 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0b, 0x185: 0x79, 0x186: 0x7a, - 0x192: 0x7b, 0x193: 0x0c, - 0x1b0: 0x7c, 0x1b1: 0x0d, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81, - 0x1b8: 0x82, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x23, 0x1c6: 0x87, - // Block 0x8, offset 0x200 - 0x200: 0x88, 0x201: 0x23, 0x202: 0x23, 0x203: 0x23, 0x204: 0x23, 0x205: 0x23, 0x206: 0x23, 0x207: 0x23, - 0x208: 0x23, 0x209: 0x23, 0x20a: 0x23, 0x20b: 0x23, 0x20c: 0x23, 0x20d: 0x23, 0x20e: 0x23, 0x20f: 0x23, - 0x210: 0x23, 0x211: 0x23, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x23, 0x215: 0x23, 0x216: 0x23, 0x217: 0x23, - 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x0e, 0x21f: 0x91, - 0x220: 0x92, 0x221: 0x93, 0x222: 0x23, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98, - 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0, - 0x230: 0x23, 0x231: 0x23, 0x232: 0x23, 0x233: 0x23, 0x234: 0x23, 0x235: 0x23, 0x236: 0x23, 0x237: 0x23, - 0x238: 0x23, 0x239: 0x23, 0x23a: 0x23, 0x23b: 0x23, 0x23c: 0x23, 0x23d: 0x23, 0x23e: 0x23, 0x23f: 0x23, - // Block 0x9, offset 0x240 - 0x240: 0x23, 0x241: 0x23, 0x242: 0x23, 0x243: 0x23, 0x244: 0x23, 0x245: 0x23, 0x246: 0x23, 0x247: 0x23, - 0x248: 0x23, 0x249: 0x23, 0x24a: 0x23, 0x24b: 0x23, 0x24c: 0x23, 0x24d: 0x23, 0x24e: 0x23, 0x24f: 0x23, - 0x250: 0x23, 0x251: 0x23, 0x252: 0x23, 0x253: 0x23, 0x254: 0x23, 0x255: 0x23, 0x256: 0x23, 0x257: 0x23, - 0x258: 0x23, 0x259: 0x23, 0x25a: 0x23, 0x25b: 0x23, 0x25c: 0x23, 0x25d: 0x23, 0x25e: 0x23, 0x25f: 0x23, - 0x260: 0x23, 0x261: 0x23, 0x262: 0x23, 0x263: 0x23, 0x264: 0x23, 0x265: 0x23, 0x266: 0x23, 0x267: 0x23, - 0x268: 0x23, 0x269: 0x23, 0x26a: 0x23, 0x26b: 0x23, 0x26c: 0x23, 0x26d: 0x23, 0x26e: 0x23, 0x26f: 0x23, - 0x270: 0x23, 0x271: 0x23, 0x272: 0x23, 0x273: 0x23, 0x274: 0x23, 0x275: 0x23, 0x276: 0x23, 0x277: 0x23, - 0x278: 0x23, 0x279: 0x23, 0x27a: 0x23, 0x27b: 0x23, 0x27c: 0x23, 0x27d: 0x23, 0x27e: 0x23, 0x27f: 0x23, - // Block 0xa, offset 0x280 - 0x280: 0x23, 0x281: 0x23, 0x282: 0x23, 0x283: 0x23, 0x284: 0x23, 0x285: 0x23, 0x286: 0x23, 0x287: 0x23, - 0x288: 0x23, 0x289: 0x23, 0x28a: 0x23, 0x28b: 0x23, 0x28c: 0x23, 0x28d: 0x23, 0x28e: 0x23, 0x28f: 0x23, - 0x290: 0x23, 0x291: 0x23, 0x292: 0x23, 0x293: 0x23, 0x294: 0x23, 0x295: 0x23, 0x296: 0x23, 0x297: 0x23, - 0x298: 0x23, 0x299: 0x23, 0x29a: 0x23, 0x29b: 0x23, 0x29c: 0x23, 0x29d: 0x23, 0x29e: 0xa1, 0x29f: 0xa2, - // Block 0xb, offset 0x2c0 - 0x2ec: 0x0f, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5, - 0x2f0: 0x23, 0x2f1: 0x23, 0x2f2: 0x23, 0x2f3: 0x23, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9, - 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x23, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0, - // Block 0xc, offset 0x300 - 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x23, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5, - 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb, - 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1, - 0x318: 0x23, 0x319: 0x23, 0x31a: 0x23, 0x31b: 0x23, 0x31c: 0xc2, 0x31d: 0xc3, - 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9, - 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf, - 0x330: 0x23, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2, - // Block 0xd, offset 0x340 - 0x340: 0xd3, 0x341: 0xd4, 0x342: 0xd5, 0x343: 0xd6, 0x344: 0xd7, 0x345: 0xd8, 0x346: 0xd9, 0x347: 0xda, - 0x348: 0xdb, 0x34a: 0xdc, 0x34b: 0xdd, 0x34c: 0xde, 0x34d: 0xdf, - 0x350: 0xe0, 0x351: 0xe1, 0x352: 0xe2, 0x353: 0xe3, 0x356: 0xe4, 0x357: 0xe5, - 0x358: 0xe6, 0x359: 0xe7, 0x35a: 0xe8, 0x35b: 0xe9, 0x35c: 0xea, - 0x362: 0xeb, 0x363: 0xec, - 0x36b: 0xed, - 0x370: 0xee, 0x371: 0xef, 0x372: 0xf0, - // Block 0xe, offset 0x380 - 0x380: 0x23, 0x381: 0x23, 0x382: 0x23, 0x383: 0x23, 0x384: 0x23, 0x385: 0x23, 0x386: 0x23, 0x387: 0x23, - 0x388: 0x23, 0x389: 0x23, 0x38a: 0x23, 0x38b: 0x23, 0x38c: 0x23, 0x38d: 0x23, 0x38e: 0xf1, - 0x390: 0x23, 0x391: 0xf2, 0x392: 0x23, 0x393: 0x23, 0x394: 0x23, 0x395: 0xf3, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x23, 0x3c1: 0x23, 0x3c2: 0x23, 0x3c3: 0x23, 0x3c4: 0x23, 0x3c5: 0x23, 0x3c6: 0x23, 0x3c7: 0x23, - 0x3c8: 0x23, 0x3c9: 0x23, 0x3ca: 0x23, 0x3cb: 0x23, 0x3cc: 0x23, 0x3cd: 0x23, 0x3ce: 0x23, 0x3cf: 0x23, - 0x3d0: 0xf2, - // Block 0x10, offset 0x400 - 0x410: 0x23, 0x411: 0x23, 0x412: 0x23, 0x413: 0x23, 0x414: 0x23, 0x415: 0x23, 0x416: 0x23, 0x417: 0x23, - 0x418: 0x23, 0x419: 0xf4, - // Block 0x11, offset 0x440 - 0x460: 0x23, 0x461: 0x23, 0x462: 0x23, 0x463: 0x23, 0x464: 0x23, 0x465: 0x23, 0x466: 0x23, 0x467: 0x23, - 0x468: 0xed, 0x469: 0xf5, 0x46b: 0xf6, 0x46c: 0xf7, 0x46d: 0xf8, 0x46e: 0xf9, - 0x47c: 0x23, 0x47d: 0xfa, 0x47e: 0xfb, 0x47f: 0xfc, - // Block 0x12, offset 0x480 - 0x4b0: 0x23, 0x4b1: 0xfd, 0x4b2: 0xfe, - // Block 0x13, offset 0x4c0 - 0x4c5: 0xff, 0x4c6: 0x100, - 0x4c9: 0x101, - 0x4d0: 0x102, 0x4d1: 0x103, 0x4d2: 0x104, 0x4d3: 0x105, 0x4d4: 0x106, 0x4d5: 0x107, 0x4d6: 0x108, 0x4d7: 0x109, - 0x4d8: 0x10a, 0x4d9: 0x10b, 0x4da: 0x10c, 0x4db: 0x10d, 0x4dc: 0x10e, 0x4dd: 0x10f, 0x4de: 0x110, 0x4df: 0x111, - 0x4e8: 0x112, 0x4e9: 0x113, 0x4ea: 0x114, - // Block 0x14, offset 0x500 - 0x500: 0x115, - 0x520: 0x23, 0x521: 0x23, 0x522: 0x23, 0x523: 0x116, 0x524: 0x10, 0x525: 0x117, - 0x538: 0x118, 0x539: 0x11, 0x53a: 0x119, - // Block 0x15, offset 0x540 - 0x544: 0x11a, 0x545: 0x11b, 0x546: 0x11c, - 0x54f: 0x11d, - // Block 0x16, offset 0x580 - 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, - 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x11e, 0x5c1: 0x11f, 0x5c4: 0x11f, 0x5c5: 0x11f, 0x5c6: 0x11f, 0x5c7: 0x120, - // Block 0x18, offset 0x600 - 0x620: 0x15, -} - -// sparseOffsets: 272 entries, 544 bytes -var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x3a, 0x3d, 0x41, 0x44, 0x48, 0x52, 0x54, 0x59, 0x69, 0x70, 0x75, 0x83, 0x84, 0x92, 0xa1, 0xab, 0xae, 0xb4, 0xbc, 0xbe, 0xc0, 0xce, 0xd4, 0xe2, 0xed, 0xf8, 0x103, 0x10f, 0x119, 0x124, 0x12f, 0x13b, 0x147, 0x14f, 0x157, 0x161, 0x16c, 0x178, 0x17e, 0x189, 0x18e, 0x196, 0x199, 0x19e, 0x1a2, 0x1a6, 0x1ad, 0x1b6, 0x1be, 0x1bf, 0x1c8, 0x1cf, 0x1d7, 0x1dd, 0x1e3, 0x1e8, 0x1ec, 0x1ef, 0x1f1, 0x1f4, 0x1f9, 0x1fa, 0x1fc, 0x1fe, 0x200, 0x207, 0x20c, 0x210, 0x219, 0x21c, 0x21f, 0x225, 0x226, 0x231, 0x232, 0x233, 0x238, 0x245, 0x24d, 0x255, 0x25e, 0x267, 0x270, 0x275, 0x278, 0x281, 0x28e, 0x290, 0x297, 0x299, 0x2a4, 0x2a5, 0x2b0, 0x2b8, 0x2c0, 0x2c6, 0x2c7, 0x2d5, 0x2da, 0x2dd, 0x2e2, 0x2e6, 0x2ec, 0x2f1, 0x2f4, 0x2f9, 0x2fe, 0x2ff, 0x305, 0x307, 0x308, 0x30a, 0x30c, 0x30f, 0x310, 0x312, 0x315, 0x31b, 0x31f, 0x321, 0x327, 0x32e, 0x332, 0x33b, 0x33c, 0x344, 0x348, 0x34d, 0x355, 0x35b, 0x361, 0x36b, 0x370, 0x379, 0x37f, 0x386, 0x38a, 0x392, 0x394, 0x396, 0x399, 0x39b, 0x39d, 0x39e, 0x39f, 0x3a1, 0x3a3, 0x3a9, 0x3ae, 0x3b0, 0x3b6, 0x3b9, 0x3bb, 0x3c1, 0x3c6, 0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x3cd, 0x3cf, 0x3d1, 0x3d4, 0x3d6, 0x3d9, 0x3e1, 0x3e4, 0x3e8, 0x3f0, 0x3f2, 0x3f3, 0x3f4, 0x3f6, 0x3fc, 0x3fe, 0x3ff, 0x401, 0x403, 0x405, 0x412, 0x413, 0x414, 0x418, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x422, 0x426, 0x42c, 0x42e, 0x435, 0x438, 0x43c, 0x442, 0x44b, 0x451, 0x457, 0x461, 0x46b, 0x46d, 0x474, 0x47a, 0x480, 0x486, 0x489, 0x48f, 0x492, 0x49a, 0x49b, 0x4a2, 0x4a3, 0x4a6, 0x4a7, 0x4ad, 0x4b0, 0x4b8, 0x4b9, 0x4ba, 0x4bb, 0x4bc, 0x4be, 0x4c0, 0x4c2, 0x4c6, 0x4c7, 0x4c9, 0x4ca, 0x4cb, 0x4cd, 0x4d2, 0x4d7, 0x4db, 0x4dc, 0x4df, 0x4e3, 0x4ee, 0x4f2, 0x4fa, 0x4ff, 0x503, 0x506, 0x50a, 0x50d, 0x510, 0x515, 0x519, 0x51d, 0x521, 0x525, 0x527, 0x529, 0x52c, 0x531, 0x533, 0x538, 0x541, 0x546, 0x547, 0x54a, 0x54b, 0x54c, 0x54e, 0x54f, 0x550} - -// sparseValues: 1360 entries, 5440 bytes -var sparseValues = [1360]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0004, lo: 0xa8, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xaa}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0004, lo: 0xaf, hi: 0xaf}, - {value: 0x0004, lo: 0xb4, hi: 0xb4}, - {value: 0x001a, lo: 0xb5, hi: 0xb5}, - {value: 0x0054, lo: 0xb7, hi: 0xb7}, - {value: 0x0004, lo: 0xb8, hi: 0xb8}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - // Block 0x1, offset 0x9 - {value: 0x2013, lo: 0x80, hi: 0x96}, - {value: 0x2013, lo: 0x98, hi: 0x9e}, - {value: 0x009a, lo: 0x9f, hi: 0x9f}, - {value: 0x2012, lo: 0xa0, hi: 0xb6}, - {value: 0x2012, lo: 0xb8, hi: 0xbe}, - {value: 0x0252, lo: 0xbf, hi: 0xbf}, - // Block 0x2, offset 0xf - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x011b, lo: 0xb0, hi: 0xb0}, - {value: 0x019a, lo: 0xb1, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb7}, - {value: 0x0012, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x0553, lo: 0xbf, hi: 0xbf}, - // Block 0x3, offset 0x18 - {value: 0x0552, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x01da, lo: 0x89, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xb7}, - {value: 0x0253, lo: 0xb8, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x0316, lo: 0xbd, hi: 0xbe}, - {value: 0x028a, lo: 0xbf, hi: 0xbf}, - // Block 0x4, offset 0x24 - {value: 0x0117, lo: 0x80, hi: 0x9f}, - {value: 0x2f53, lo: 0xa0, hi: 0xa0}, - {value: 0x0012, lo: 0xa1, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xb3}, - {value: 0x0012, lo: 0xb4, hi: 0xb9}, - {value: 0x090b, lo: 0xba, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x2953, lo: 0xbd, hi: 0xbd}, - {value: 0x098b, lo: 0xbe, hi: 0xbe}, - {value: 0x0a0a, lo: 0xbf, hi: 0xbf}, - // Block 0x5, offset 0x2e - {value: 0x0015, lo: 0x80, hi: 0x81}, - {value: 0x0004, lo: 0x82, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x91}, - {value: 0x0004, lo: 0x92, hi: 0x96}, - {value: 0x0054, lo: 0x97, hi: 0x97}, - {value: 0x0004, lo: 0x98, hi: 0x9f}, - {value: 0x0015, lo: 0xa0, hi: 0xa4}, - {value: 0x0004, lo: 0xa5, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xac}, - {value: 0x0004, lo: 0xad, hi: 0xad}, - {value: 0x0014, lo: 0xae, hi: 0xae}, - {value: 0x0004, lo: 0xaf, hi: 0xbf}, - // Block 0x6, offset 0x3a - {value: 0x0024, lo: 0x80, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbf}, - // Block 0x7, offset 0x3d - {value: 0x6553, lo: 0x80, hi: 0x8f}, - {value: 0x2013, lo: 0x90, hi: 0x9f}, - {value: 0x5f53, lo: 0xa0, hi: 0xaf}, - {value: 0x2012, lo: 0xb0, hi: 0xbf}, - // Block 0x8, offset 0x41 - {value: 0x5f52, lo: 0x80, hi: 0x8f}, - {value: 0x6552, lo: 0x90, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x9, offset 0x44 - {value: 0x0117, lo: 0x80, hi: 0x81}, - {value: 0x0024, lo: 0x83, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0x89}, - {value: 0x0117, lo: 0x8a, hi: 0xbf}, - // Block 0xa, offset 0x48 - {value: 0x0f13, lo: 0x80, hi: 0x80}, - {value: 0x0316, lo: 0x81, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0316, lo: 0x85, hi: 0x86}, - {value: 0x0f16, lo: 0x87, hi: 0x88}, - {value: 0x0316, lo: 0x89, hi: 0x8a}, - {value: 0x0716, lo: 0x8b, hi: 0x8c}, - {value: 0x0316, lo: 0x8d, hi: 0x8e}, - {value: 0x0f12, lo: 0x8f, hi: 0x8f}, - {value: 0x0117, lo: 0x90, hi: 0xbf}, - // Block 0xb, offset 0x52 - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x6553, lo: 0xb1, hi: 0xbf}, - // Block 0xc, offset 0x54 - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6853, lo: 0x90, hi: 0x96}, - {value: 0x0014, lo: 0x99, hi: 0x99}, - {value: 0x6552, lo: 0xa1, hi: 0xaf}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0xd, offset 0x59 - {value: 0x6852, lo: 0x80, hi: 0x86}, - {value: 0x198a, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0024, lo: 0x92, hi: 0x95}, - {value: 0x0034, lo: 0x96, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x99}, - {value: 0x0034, lo: 0x9a, hi: 0x9b}, - {value: 0x0024, lo: 0x9c, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa7}, - {value: 0x0024, lo: 0xa8, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xbd}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xe, offset 0x69 - {value: 0x0034, lo: 0x81, hi: 0x82}, - {value: 0x0024, lo: 0x84, hi: 0x84}, - {value: 0x0034, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb3}, - {value: 0x0054, lo: 0xb4, hi: 0xb4}, - // Block 0xf, offset 0x70 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0024, lo: 0x90, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0014, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x10, offset 0x75 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9c}, - {value: 0x0024, lo: 0x9d, hi: 0x9e}, - {value: 0x0034, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x11, offset 0x83 - {value: 0x0010, lo: 0x80, hi: 0xbf}, - // Block 0x12, offset 0x84 - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0024, lo: 0x9f, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x13, offset 0x92 - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0034, lo: 0xb1, hi: 0xb1}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0024, lo: 0xbf, hi: 0xbf}, - // Block 0x14, offset 0xa1 - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0024, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x88}, - {value: 0x0024, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8d, hi: 0xbf}, - // Block 0x15, offset 0xab - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x16, offset 0xae - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xb1}, - {value: 0x0034, lo: 0xb2, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - // Block 0x17, offset 0xb4 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x99}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0xa3}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xad}, - // Block 0x18, offset 0xbc - {value: 0x0010, lo: 0x80, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x9b}, - // Block 0x19, offset 0xbe - {value: 0x0010, lo: 0xa0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbd}, - // Block 0x1a, offset 0xc0 - {value: 0x0024, lo: 0x94, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0024, lo: 0xaa, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbf}, - // Block 0x1b, offset 0xce - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1c, offset 0xd4 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0x1d, offset 0xe2 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb6, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1e, offset 0xed - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xb1}, - // Block 0x1f, offset 0xf8 - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x20, offset 0x103 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x99, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x21, offset 0x10f - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x22, offset 0x119 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x85}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - // Block 0x23, offset 0x124 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x24, offset 0x12f - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x25, offset 0x13b - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0010, lo: 0xa8, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x26, offset 0x147 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x27, offset 0x14f - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb9}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbf}, - // Block 0x28, offset 0x157 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x88}, - {value: 0x0014, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x29, offset 0x161 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x2a, offset 0x16c - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb2}, - // Block 0x2b, offset 0x178 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xba}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x2c, offset 0x17e - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x94, hi: 0x97}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xba, hi: 0xbf}, - // Block 0x2d, offset 0x189 - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x96}, - {value: 0x0010, lo: 0x9a, hi: 0xb1}, - {value: 0x0010, lo: 0xb3, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x2e, offset 0x18e - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x94}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9f}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - // Block 0x2f, offset 0x196 - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - // Block 0x30, offset 0x199 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x31, offset 0x19e - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xb9}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - // Block 0x32, offset 0x1a2 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x33, offset 0x1a6 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0034, lo: 0x98, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0034, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x34, offset 0x1ad - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xac}, - {value: 0x0034, lo: 0xb1, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xba, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x1b6 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0024, lo: 0x82, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x86, hi: 0x87}, - {value: 0x0010, lo: 0x88, hi: 0x8c}, - {value: 0x0014, lo: 0x8d, hi: 0x97}, - {value: 0x0014, lo: 0x99, hi: 0xbc}, - // Block 0x36, offset 0x1be - {value: 0x0034, lo: 0x86, hi: 0x86}, - // Block 0x37, offset 0x1bf - {value: 0x0010, lo: 0xab, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbe}, - // Block 0x38, offset 0x1c8 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x96, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0x9e, hi: 0xa0}, - {value: 0x0010, lo: 0xa2, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xad}, - {value: 0x0014, lo: 0xb1, hi: 0xb4}, - // Block 0x39, offset 0x1cf - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x6c53, lo: 0xa0, hi: 0xbf}, - // Block 0x3a, offset 0x1d7 - {value: 0x7053, lo: 0x80, hi: 0x85}, - {value: 0x7053, lo: 0x87, hi: 0x87}, - {value: 0x7053, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x3b, offset 0x1dd - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x9a, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x3c, offset 0x1e3 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x3d, offset 0x1e8 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x82, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3e, offset 0x1ec - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3f, offset 0x1ef - {value: 0x0010, lo: 0x80, hi: 0x9a}, - {value: 0x0024, lo: 0x9d, hi: 0x9f}, - // Block 0x40, offset 0x1f1 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x7453, lo: 0xa0, hi: 0xaf}, - {value: 0x7853, lo: 0xb0, hi: 0xbf}, - // Block 0x41, offset 0x1f4 - {value: 0x7c53, lo: 0x80, hi: 0x8f}, - {value: 0x8053, lo: 0x90, hi: 0x9f}, - {value: 0x7c53, lo: 0xa0, hi: 0xaf}, - {value: 0x0813, lo: 0xb0, hi: 0xb5}, - {value: 0x0892, lo: 0xb8, hi: 0xbd}, - // Block 0x42, offset 0x1f9 - {value: 0x0010, lo: 0x81, hi: 0xbf}, - // Block 0x43, offset 0x1fa - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0010, lo: 0xaf, hi: 0xbf}, - // Block 0x44, offset 0x1fc - {value: 0x0010, lo: 0x81, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x45, offset 0x1fe - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb8}, - // Block 0x46, offset 0x200 - {value: 0x0010, lo: 0x80, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0034, lo: 0x94, hi: 0x94}, - {value: 0x0010, lo: 0xa0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - // Block 0x47, offset 0x207 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xac}, - {value: 0x0010, lo: 0xae, hi: 0xb0}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - // Block 0x48, offset 0x20c - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x49, offset 0x210 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0004, lo: 0x97, hi: 0x97}, - {value: 0x0024, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0x4a, offset 0x219 - {value: 0x0014, lo: 0x8b, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x4b, offset 0x21c - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb7}, - // Block 0x4c, offset 0x21f - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x4d, offset 0x225 - {value: 0x0010, lo: 0x80, hi: 0xb5}, - // Block 0x4e, offset 0x226 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbb}, - // Block 0x4f, offset 0x231 - {value: 0x0010, lo: 0x86, hi: 0x8f}, - // Block 0x50, offset 0x232 - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x51, offset 0x233 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - // Block 0x52, offset 0x238 - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x9e}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xac}, - {value: 0x0010, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xbc}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x53, offset 0x245 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xa7, hi: 0xa7}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - {value: 0x0034, lo: 0xb5, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbc}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0x54, offset 0x24d - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x55, offset 0x255 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0030, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xab, hi: 0xab}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - {value: 0x0024, lo: 0xad, hi: 0xb3}, - // Block 0x56, offset 0x25e - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0030, lo: 0xaa, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbf}, - // Block 0x57, offset 0x267 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0030, lo: 0xb2, hi: 0xb3}, - // Block 0x58, offset 0x270 - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0x59, offset 0x275 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8d, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x5a, offset 0x278 - {value: 0x1a6a, lo: 0x80, hi: 0x80}, - {value: 0x1aea, lo: 0x81, hi: 0x81}, - {value: 0x1b6a, lo: 0x82, hi: 0x82}, - {value: 0x1bea, lo: 0x83, hi: 0x83}, - {value: 0x1c6a, lo: 0x84, hi: 0x84}, - {value: 0x1cea, lo: 0x85, hi: 0x85}, - {value: 0x1d6a, lo: 0x86, hi: 0x86}, - {value: 0x1dea, lo: 0x87, hi: 0x87}, - {value: 0x1e6a, lo: 0x88, hi: 0x88}, - // Block 0x5b, offset 0x281 - {value: 0x0024, lo: 0x90, hi: 0x92}, - {value: 0x0034, lo: 0x94, hi: 0x99}, - {value: 0x0024, lo: 0x9a, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9f}, - {value: 0x0024, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xb3}, - {value: 0x0024, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0024, lo: 0xb8, hi: 0xb9}, - // Block 0x5c, offset 0x28e - {value: 0x0012, lo: 0x80, hi: 0xab}, - {value: 0x0015, lo: 0xac, hi: 0xbf}, - // Block 0x5d, offset 0x290 - {value: 0x0015, lo: 0x80, hi: 0xaa}, - {value: 0x0012, lo: 0xab, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb8}, - {value: 0x8452, lo: 0xb9, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbc}, - {value: 0x8852, lo: 0xbd, hi: 0xbd}, - {value: 0x0012, lo: 0xbe, hi: 0xbf}, - // Block 0x5e, offset 0x297 - {value: 0x0012, lo: 0x80, hi: 0x9a}, - {value: 0x0015, lo: 0x9b, hi: 0xbf}, - // Block 0x5f, offset 0x299 - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0024, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0xb5}, - {value: 0x0024, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbd}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x60, offset 0x2a4 - {value: 0x0117, lo: 0x80, hi: 0xbf}, - // Block 0x61, offset 0x2a5 - {value: 0x0117, lo: 0x80, hi: 0x95}, - {value: 0x1f1a, lo: 0x96, hi: 0x96}, - {value: 0x1fca, lo: 0x97, hi: 0x97}, - {value: 0x207a, lo: 0x98, hi: 0x98}, - {value: 0x212a, lo: 0x99, hi: 0x99}, - {value: 0x21da, lo: 0x9a, hi: 0x9a}, - {value: 0x228a, lo: 0x9b, hi: 0x9b}, - {value: 0x0012, lo: 0x9c, hi: 0x9d}, - {value: 0x233b, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0x9f, hi: 0x9f}, - {value: 0x0117, lo: 0xa0, hi: 0xbf}, - // Block 0x62, offset 0x2b0 - {value: 0x0812, lo: 0x80, hi: 0x87}, - {value: 0x0813, lo: 0x88, hi: 0x8f}, - {value: 0x0812, lo: 0x90, hi: 0x95}, - {value: 0x0813, lo: 0x98, hi: 0x9d}, - {value: 0x0812, lo: 0xa0, hi: 0xa7}, - {value: 0x0813, lo: 0xa8, hi: 0xaf}, - {value: 0x0812, lo: 0xb0, hi: 0xb7}, - {value: 0x0813, lo: 0xb8, hi: 0xbf}, - // Block 0x63, offset 0x2b8 - {value: 0x0004, lo: 0x8b, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8f}, - {value: 0x0054, lo: 0x98, hi: 0x99}, - {value: 0x0054, lo: 0xa4, hi: 0xa4}, - {value: 0x0054, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xaa, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xaf}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x64, offset 0x2c0 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x94, hi: 0x94}, - {value: 0x0014, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa6, hi: 0xaf}, - {value: 0x0015, lo: 0xb1, hi: 0xb1}, - {value: 0x0015, lo: 0xbf, hi: 0xbf}, - // Block 0x65, offset 0x2c6 - {value: 0x0015, lo: 0x90, hi: 0x9c}, - // Block 0x66, offset 0x2c7 - {value: 0x0024, lo: 0x90, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0xa0}, - {value: 0x0024, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa4}, - {value: 0x0034, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - // Block 0x67, offset 0x2d5 - {value: 0x0016, lo: 0x85, hi: 0x86}, - {value: 0x0012, lo: 0x87, hi: 0x89}, - {value: 0x9d52, lo: 0x8e, hi: 0x8e}, - {value: 0x1013, lo: 0xa0, hi: 0xaf}, - {value: 0x1012, lo: 0xb0, hi: 0xbf}, - // Block 0x68, offset 0x2da - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0716, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x88}, - // Block 0x69, offset 0x2dd - {value: 0xa053, lo: 0xb6, hi: 0xb7}, - {value: 0xa353, lo: 0xb8, hi: 0xb9}, - {value: 0xa653, lo: 0xba, hi: 0xbb}, - {value: 0xa353, lo: 0xbc, hi: 0xbd}, - {value: 0xa053, lo: 0xbe, hi: 0xbf}, - // Block 0x6a, offset 0x2e2 - {value: 0x3013, lo: 0x80, hi: 0x8f}, - {value: 0x6553, lo: 0x90, hi: 0x9f}, - {value: 0xa953, lo: 0xa0, hi: 0xae}, - {value: 0x3012, lo: 0xb0, hi: 0xbf}, - // Block 0x6b, offset 0x2e6 - {value: 0x0117, lo: 0x80, hi: 0xa3}, - {value: 0x0012, lo: 0xa4, hi: 0xa4}, - {value: 0x0716, lo: 0xab, hi: 0xac}, - {value: 0x0316, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xb3}, - // Block 0x6c, offset 0x2ec - {value: 0x6c52, lo: 0x80, hi: 0x9f}, - {value: 0x7052, lo: 0xa0, hi: 0xa5}, - {value: 0x7052, lo: 0xa7, hi: 0xa7}, - {value: 0x7052, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x6d, offset 0x2f1 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x6e, offset 0x2f4 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0010, lo: 0xb0, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x6f, offset 0x2f9 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9e}, - {value: 0x0024, lo: 0xa0, hi: 0xbf}, - // Block 0x70, offset 0x2fe - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - // Block 0x71, offset 0x2ff - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0xaa, hi: 0xad}, - {value: 0x0030, lo: 0xae, hi: 0xaf}, - {value: 0x0004, lo: 0xb1, hi: 0xb5}, - {value: 0x0014, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x72, offset 0x305 - {value: 0x0034, lo: 0x99, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9e}, - // Block 0x73, offset 0x307 - {value: 0x0004, lo: 0xbc, hi: 0xbe}, - // Block 0x74, offset 0x308 - {value: 0x0010, lo: 0x85, hi: 0xad}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x75, offset 0x30a - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0010, lo: 0xa0, hi: 0xba}, - // Block 0x76, offset 0x30c - {value: 0x0010, lo: 0x80, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0xbf}, - // Block 0x77, offset 0x30f - {value: 0x0010, lo: 0x80, hi: 0x8c}, - // Block 0x78, offset 0x310 - {value: 0x0010, lo: 0x90, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x79, offset 0x312 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0xab}, - // Block 0x7a, offset 0x315 - {value: 0x0117, lo: 0x80, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb2}, - {value: 0x0024, lo: 0xb4, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x7b, offset 0x31b - {value: 0x0117, lo: 0x80, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9d}, - {value: 0x0024, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x7c, offset 0x31f - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb1}, - // Block 0x7d, offset 0x321 - {value: 0x0004, lo: 0x80, hi: 0x96}, - {value: 0x0014, lo: 0x97, hi: 0x9f}, - {value: 0x0004, lo: 0xa0, hi: 0xa1}, - {value: 0x0117, lo: 0xa2, hi: 0xaf}, - {value: 0x0012, lo: 0xb0, hi: 0xb1}, - {value: 0x0117, lo: 0xb2, hi: 0xbf}, - // Block 0x7e, offset 0x327 - {value: 0x0117, lo: 0x80, hi: 0xaf}, - {value: 0x0015, lo: 0xb0, hi: 0xb0}, - {value: 0x0012, lo: 0xb1, hi: 0xb8}, - {value: 0x0316, lo: 0xb9, hi: 0xba}, - {value: 0x0716, lo: 0xbb, hi: 0xbc}, - {value: 0x8453, lo: 0xbd, hi: 0xbd}, - {value: 0x0117, lo: 0xbe, hi: 0xbf}, - // Block 0x7f, offset 0x32e - {value: 0x0010, lo: 0xb7, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbf}, - // Block 0x80, offset 0x332 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x8c, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - // Block 0x81, offset 0x33b - {value: 0x0010, lo: 0x80, hi: 0xb3}, - // Block 0x82, offset 0x33c - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xa0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb7}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x83, offset 0x344 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x84, offset 0x348 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0x92}, - {value: 0x0030, lo: 0x93, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0x85, offset 0x34d - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x86, offset 0x355 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0004, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x87, offset 0x35b - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0x88, offset 0x361 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x89, offset 0x36b - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0024, lo: 0xbe, hi: 0xbf}, - // Block 0x8a, offset 0x370 - {value: 0x0024, lo: 0x81, hi: 0x81}, - {value: 0x0004, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - // Block 0x8b, offset 0x379 - {value: 0x0010, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x8e}, - {value: 0x0010, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x8c, offset 0x37f - {value: 0x0012, lo: 0x80, hi: 0x92}, - {value: 0xac52, lo: 0x93, hi: 0x93}, - {value: 0x0012, lo: 0x94, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa5}, - {value: 0x74d2, lo: 0xb0, hi: 0xbf}, - // Block 0x8d, offset 0x386 - {value: 0x78d2, lo: 0x80, hi: 0x8f}, - {value: 0x7cd2, lo: 0x90, hi: 0x9f}, - {value: 0x80d2, lo: 0xa0, hi: 0xaf}, - {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, - // Block 0x8e, offset 0x38a - {value: 0x0010, lo: 0x80, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x8f, offset 0x392 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x90, offset 0x394 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x8b, hi: 0xbb}, - // Block 0x91, offset 0x396 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0xbf}, - // Block 0x92, offset 0x399 - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0004, lo: 0xb2, hi: 0xbf}, - // Block 0x93, offset 0x39b - {value: 0x0004, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x93, hi: 0xbf}, - // Block 0x94, offset 0x39d - {value: 0x0010, lo: 0x80, hi: 0xbd}, - // Block 0x95, offset 0x39e - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0x96, offset 0x39f - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0xbf}, - // Block 0x97, offset 0x3a1 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0xb0, hi: 0xbb}, - // Block 0x98, offset 0x3a3 - {value: 0x0014, lo: 0x80, hi: 0x8f}, - {value: 0x0054, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0xa0, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xad}, - {value: 0x0024, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - // Block 0x99, offset 0x3a9 - {value: 0x0010, lo: 0x8d, hi: 0x8f}, - {value: 0x0054, lo: 0x92, hi: 0x92}, - {value: 0x0054, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0xb0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x9a, offset 0x3ae - {value: 0x0010, lo: 0x80, hi: 0xbc}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x9b, offset 0x3b0 - {value: 0x0054, lo: 0x87, hi: 0x87}, - {value: 0x0054, lo: 0x8e, hi: 0x8e}, - {value: 0x0054, lo: 0x9a, hi: 0x9a}, - {value: 0x5f53, lo: 0xa1, hi: 0xba}, - {value: 0x0004, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9c, offset 0x3b6 - {value: 0x0004, lo: 0x80, hi: 0x80}, - {value: 0x5f52, lo: 0x81, hi: 0x9a}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - // Block 0x9d, offset 0x3b9 - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbe}, - // Block 0x9e, offset 0x3bb - {value: 0x0010, lo: 0x82, hi: 0x87}, - {value: 0x0010, lo: 0x8a, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0x97}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0004, lo: 0xa3, hi: 0xa3}, - {value: 0x0014, lo: 0xb9, hi: 0xbb}, - // Block 0x9f, offset 0x3c1 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0010, lo: 0x8d, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xba}, - {value: 0x0010, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xa0, offset 0x3c6 - {value: 0x0010, lo: 0x80, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x9d}, - // Block 0xa1, offset 0x3c8 - {value: 0x0010, lo: 0x80, hi: 0xba}, - // Block 0xa2, offset 0x3c9 - {value: 0x0010, lo: 0x80, hi: 0xb4}, - // Block 0xa3, offset 0x3ca - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0xa4, offset 0x3cb - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa5, offset 0x3cd - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - // Block 0xa6, offset 0x3cf - {value: 0x0010, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xa7, offset 0x3d1 - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0xb5}, - {value: 0x0024, lo: 0xb6, hi: 0xba}, - // Block 0xa8, offset 0x3d4 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa9, offset 0x3d6 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x91, hi: 0x95}, - // Block 0xaa, offset 0x3d9 - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x97}, - {value: 0xaf53, lo: 0x98, hi: 0x9f}, - {value: 0xb253, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbf}, - // Block 0xab, offset 0x3e1 - {value: 0xaf52, lo: 0x80, hi: 0x87}, - {value: 0xb252, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xac, offset 0x3e4 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0xb253, lo: 0xb0, hi: 0xb7}, - {value: 0xaf53, lo: 0xb8, hi: 0xbf}, - // Block 0xad, offset 0x3e8 - {value: 0x2813, lo: 0x80, hi: 0x87}, - {value: 0x3813, lo: 0x88, hi: 0x8f}, - {value: 0x2813, lo: 0x90, hi: 0x93}, - {value: 0xb252, lo: 0x98, hi: 0x9f}, - {value: 0xaf52, lo: 0xa0, hi: 0xa7}, - {value: 0x2812, lo: 0xa8, hi: 0xaf}, - {value: 0x3812, lo: 0xb0, hi: 0xb7}, - {value: 0x2812, lo: 0xb8, hi: 0xbb}, - // Block 0xae, offset 0x3f0 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xaf, offset 0x3f2 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - // Block 0xb0, offset 0x3f3 - {value: 0x0010, lo: 0x80, hi: 0xb6}, - // Block 0xb1, offset 0x3f4 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - // Block 0xb2, offset 0x3f6 - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xb3, offset 0x3fc - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xb4, offset 0x3fe - {value: 0x0010, lo: 0x80, hi: 0x9e}, - // Block 0xb5, offset 0x3ff - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - // Block 0xb6, offset 0x401 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb9}, - // Block 0xb7, offset 0x403 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0xb8, offset 0x405 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0024, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x99, hi: 0xb3}, - {value: 0x0024, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xb9, offset 0x412 - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0xba, offset 0x413 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - // Block 0xbb, offset 0x414 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - // Block 0xbc, offset 0x418 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - // Block 0xbd, offset 0x41a - {value: 0x0010, lo: 0x80, hi: 0x91}, - // Block 0xbe, offset 0x41b - {value: 0x0010, lo: 0x80, hi: 0x88}, - // Block 0xbf, offset 0x41c - {value: 0x5653, lo: 0x80, hi: 0xb2}, - // Block 0xc0, offset 0x41d - {value: 0x5652, lo: 0x80, hi: 0xb2}, - // Block 0xc1, offset 0x41e - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xc2, offset 0x422 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xc3, offset 0x426 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - // Block 0xc4, offset 0x42c - {value: 0x0010, lo: 0x90, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc5, offset 0x42e - {value: 0x0024, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0xc6, offset 0x435 - {value: 0x0010, lo: 0x90, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - // Block 0xc7, offset 0x438 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xc8, offset 0x43c - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - // Block 0xc9, offset 0x442 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - {value: 0x0030, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0xca, offset 0x44b - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xcb, offset 0x451 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa2}, - {value: 0x0014, lo: 0xa3, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xcc, offset 0x457 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xcd, offset 0x461 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0030, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9d, hi: 0xa3}, - {value: 0x0024, lo: 0xa6, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - // Block 0xce, offset 0x46b - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xcf, offset 0x46d - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd0, offset 0x474 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xd1, offset 0x47a - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd2, offset 0x480 - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd3, offset 0x486 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x98, hi: 0x9b}, - {value: 0x0014, lo: 0x9c, hi: 0x9d}, - // Block 0xd4, offset 0x489 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd5, offset 0x48f - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd6, offset 0x492 - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0014, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb5}, - {value: 0x0030, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0xd7, offset 0x49a - {value: 0x0010, lo: 0x80, hi: 0x89}, - // Block 0xd8, offset 0x49b - {value: 0x0014, lo: 0x9d, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xd9, offset 0x4a2 - {value: 0x5f53, lo: 0xa0, hi: 0xbf}, - // Block 0xda, offset 0x4a3 - {value: 0x5f52, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xdb, offset 0x4a6 - {value: 0x0010, lo: 0x80, hi: 0xb8}, - // Block 0xdc, offset 0x4a7 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb6}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xdd, offset 0x4ad - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0xde, offset 0x4b0 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0014, lo: 0x92, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xa9}, - {value: 0x0014, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0xdf, offset 0x4b8 - {value: 0x0010, lo: 0x80, hi: 0x99}, - // Block 0xe0, offset 0x4b9 - {value: 0x0010, lo: 0x80, hi: 0xae}, - // Block 0xe1, offset 0x4ba - {value: 0x0010, lo: 0x80, hi: 0x83}, - // Block 0xe2, offset 0x4bb - {value: 0x0010, lo: 0x80, hi: 0x86}, - // Block 0xe3, offset 0x4bc - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xe4, offset 0x4be - {value: 0x0010, lo: 0x90, hi: 0xad}, - {value: 0x0034, lo: 0xb0, hi: 0xb4}, - // Block 0xe5, offset 0x4c0 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - // Block 0xe6, offset 0x4c2 - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa3, hi: 0xb7}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xe7, offset 0x4c6 - {value: 0x0010, lo: 0x80, hi: 0x8f}, - // Block 0xe8, offset 0x4c7 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0xbe}, - // Block 0xe9, offset 0x4c9 - {value: 0x0014, lo: 0x8f, hi: 0x9f}, - // Block 0xea, offset 0x4ca - {value: 0x0014, lo: 0xa0, hi: 0xa0}, - // Block 0xeb, offset 0x4cb - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbc}, - // Block 0xec, offset 0x4cd - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0034, lo: 0x9e, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa3}, - // Block 0xed, offset 0x4d2 - {value: 0x0030, lo: 0xa5, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xa9}, - {value: 0x0030, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbf}, - // Block 0xee, offset 0x4d7 - {value: 0x0034, lo: 0x80, hi: 0x82}, - {value: 0x0024, lo: 0x85, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8b}, - {value: 0x0024, lo: 0xaa, hi: 0xad}, - // Block 0xef, offset 0x4db - {value: 0x0024, lo: 0x82, hi: 0x84}, - // Block 0xf0, offset 0x4dc - {value: 0x0013, lo: 0x80, hi: 0x99}, - {value: 0x0012, lo: 0x9a, hi: 0xb3}, - {value: 0x0013, lo: 0xb4, hi: 0xbf}, - // Block 0xf1, offset 0x4df - {value: 0x0013, lo: 0x80, hi: 0x8d}, - {value: 0x0012, lo: 0x8e, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0xa7}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0xf2, offset 0x4e3 - {value: 0x0013, lo: 0x80, hi: 0x81}, - {value: 0x0012, lo: 0x82, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0x9c}, - {value: 0x0013, lo: 0x9e, hi: 0x9f}, - {value: 0x0013, lo: 0xa2, hi: 0xa2}, - {value: 0x0013, lo: 0xa5, hi: 0xa6}, - {value: 0x0013, lo: 0xa9, hi: 0xac}, - {value: 0x0013, lo: 0xae, hi: 0xb5}, - {value: 0x0012, lo: 0xb6, hi: 0xb9}, - {value: 0x0012, lo: 0xbb, hi: 0xbb}, - {value: 0x0012, lo: 0xbd, hi: 0xbf}, - // Block 0xf3, offset 0x4ee - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0012, lo: 0x85, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0xf4, offset 0x4f2 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0013, lo: 0x84, hi: 0x85}, - {value: 0x0013, lo: 0x87, hi: 0x8a}, - {value: 0x0013, lo: 0x8d, hi: 0x94}, - {value: 0x0013, lo: 0x96, hi: 0x9c}, - {value: 0x0012, lo: 0x9e, hi: 0xb7}, - {value: 0x0013, lo: 0xb8, hi: 0xb9}, - {value: 0x0013, lo: 0xbb, hi: 0xbe}, - // Block 0xf5, offset 0x4fa - {value: 0x0013, lo: 0x80, hi: 0x84}, - {value: 0x0013, lo: 0x86, hi: 0x86}, - {value: 0x0013, lo: 0x8a, hi: 0x90}, - {value: 0x0012, lo: 0x92, hi: 0xab}, - {value: 0x0013, lo: 0xac, hi: 0xbf}, - // Block 0xf6, offset 0x4ff - {value: 0x0013, lo: 0x80, hi: 0x85}, - {value: 0x0012, lo: 0x86, hi: 0x9f}, - {value: 0x0013, lo: 0xa0, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbf}, - // Block 0xf7, offset 0x503 - {value: 0x0012, lo: 0x80, hi: 0x93}, - {value: 0x0013, lo: 0x94, hi: 0xad}, - {value: 0x0012, lo: 0xae, hi: 0xbf}, - // Block 0xf8, offset 0x506 - {value: 0x0012, lo: 0x80, hi: 0x87}, - {value: 0x0013, lo: 0x88, hi: 0xa1}, - {value: 0x0012, lo: 0xa2, hi: 0xbb}, - {value: 0x0013, lo: 0xbc, hi: 0xbf}, - // Block 0xf9, offset 0x50a - {value: 0x0013, lo: 0x80, hi: 0x95}, - {value: 0x0012, lo: 0x96, hi: 0xaf}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0xfa, offset 0x50d - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0012, lo: 0x8a, hi: 0xa5}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0xfb, offset 0x510 - {value: 0x0013, lo: 0x80, hi: 0x80}, - {value: 0x0012, lo: 0x82, hi: 0x9a}, - {value: 0x0012, lo: 0x9c, hi: 0xa1}, - {value: 0x0013, lo: 0xa2, hi: 0xba}, - {value: 0x0012, lo: 0xbc, hi: 0xbf}, - // Block 0xfc, offset 0x515 - {value: 0x0012, lo: 0x80, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0xb4}, - {value: 0x0012, lo: 0xb6, hi: 0xbf}, - // Block 0xfd, offset 0x519 - {value: 0x0012, lo: 0x80, hi: 0x8e}, - {value: 0x0012, lo: 0x90, hi: 0x95}, - {value: 0x0013, lo: 0x96, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0xfe, offset 0x51d - {value: 0x0012, lo: 0x80, hi: 0x88}, - {value: 0x0012, lo: 0x8a, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0xff, offset 0x521 - {value: 0x0012, lo: 0x80, hi: 0x82}, - {value: 0x0012, lo: 0x84, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8b}, - {value: 0x0010, lo: 0x8e, hi: 0xbf}, - // Block 0x100, offset 0x525 - {value: 0x0014, lo: 0x80, hi: 0xb6}, - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0x101, offset 0x527 - {value: 0x0014, lo: 0x80, hi: 0xac}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x102, offset 0x529 - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x9b, hi: 0x9f}, - {value: 0x0014, lo: 0xa1, hi: 0xaf}, - // Block 0x103, offset 0x52c - {value: 0x0024, lo: 0x80, hi: 0x86}, - {value: 0x0024, lo: 0x88, hi: 0x98}, - {value: 0x0024, lo: 0x9b, hi: 0xa1}, - {value: 0x0024, lo: 0xa3, hi: 0xa4}, - {value: 0x0024, lo: 0xa6, hi: 0xaa}, - // Block 0x104, offset 0x531 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0034, lo: 0x90, hi: 0x96}, - // Block 0x105, offset 0x533 - {value: 0xb552, lo: 0x80, hi: 0x81}, - {value: 0xb852, lo: 0x82, hi: 0x83}, - {value: 0x0024, lo: 0x84, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x106, offset 0x538 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x9f}, - {value: 0x0010, lo: 0xa1, hi: 0xa2}, - {value: 0x0010, lo: 0xa4, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb7}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - // Block 0x107, offset 0x541 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x9b}, - {value: 0x0010, lo: 0xa1, hi: 0xa3}, - {value: 0x0010, lo: 0xa5, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xbb}, - // Block 0x108, offset 0x546 - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x109, offset 0x547 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x10a, offset 0x54a - {value: 0x0013, lo: 0x80, hi: 0x89}, - // Block 0x10b, offset 0x54b - {value: 0x0004, lo: 0xbb, hi: 0xbf}, - // Block 0x10c, offset 0x54c - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0014, lo: 0xa0, hi: 0xbf}, - // Block 0x10d, offset 0x54e - {value: 0x0014, lo: 0x80, hi: 0xbf}, - // Block 0x10e, offset 0x54f - {value: 0x0014, lo: 0x80, hi: 0xaf}, -} - -// Total table size 14027 bytes (13KiB); checksum: F17D40E8 diff --git a/backend/vendor/golang.org/x/text/cases/trieval.go b/backend/vendor/golang.org/x/text/cases/trieval.go deleted file mode 100644 index 4e4d13fe..00000000 --- a/backend/vendor/golang.org/x/text/cases/trieval.go +++ /dev/null @@ -1,217 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package cases - -// This file contains definitions for interpreting the trie value of the case -// trie generated by "go run gen*.go". It is shared by both the generator -// program and the resultant package. Sharing is achieved by the generator -// copying gen_trieval.go to trieval.go and changing what's above this comment. - -// info holds case information for a single rune. It is the value returned -// by a trie lookup. Most mapping information can be stored in a single 16-bit -// value. If not, for example when a rune is mapped to multiple runes, the value -// stores some basic case data and an index into an array with additional data. -// -// The per-rune values have the following format: -// -// if (exception) { -// 15..4 unsigned exception index -// } else { -// 15..8 XOR pattern or index to XOR pattern for case mapping -// Only 13..8 are used for XOR patterns. -// 7 inverseFold (fold to upper, not to lower) -// 6 index: interpret the XOR pattern as an index -// or isMid if case mode is cIgnorableUncased. -// 5..4 CCC: zero (normal or break), above or other -// } -// 3 exception: interpret this value as an exception index -// (TODO: is this bit necessary? Probably implied from case mode.) -// 2..0 case mode -// -// For the non-exceptional cases, a rune must be either uncased, lowercase or -// uppercase. If the rune is cased, the XOR pattern maps either a lowercase -// rune to uppercase or an uppercase rune to lowercase (applied to the 10 -// least-significant bits of the rune). -// -// See the definitions below for a more detailed description of the various -// bits. -type info uint16 - -const ( - casedMask = 0x0003 - fullCasedMask = 0x0007 - ignorableMask = 0x0006 - ignorableValue = 0x0004 - - inverseFoldBit = 1 << 7 - isMidBit = 1 << 6 - - exceptionBit = 1 << 3 - exceptionShift = 4 - numExceptionBits = 12 - - xorIndexBit = 1 << 6 - xorShift = 8 - - // There is no mapping if all xor bits and the exception bit are zero. - hasMappingMask = 0xff80 | exceptionBit -) - -// The case mode bits encodes the case type of a rune. This includes uncased, -// title, upper and lower case and case ignorable. (For a definition of these -// terms see Chapter 3 of The Unicode Standard Core Specification.) In some rare -// cases, a rune can be both cased and case-ignorable. This is encoded by -// cIgnorableCased. A rune of this type is always lower case. Some runes are -// cased while not having a mapping. -// -// A common pattern for scripts in the Unicode standard is for upper and lower -// case runes to alternate for increasing rune values (e.g. the accented Latin -// ranges starting from U+0100 and U+1E00 among others and some Cyrillic -// characters). We use this property by defining a cXORCase mode, where the case -// mode (always upper or lower case) is derived from the rune value. As the XOR -// pattern for case mappings is often identical for successive runes, using -// cXORCase can result in large series of identical trie values. This, in turn, -// allows us to better compress the trie blocks. -const ( - cUncased info = iota // 000 - cTitle // 001 - cLower // 010 - cUpper // 011 - cIgnorableUncased // 100 - cIgnorableCased // 101 // lower case if mappings exist - cXORCase // 11x // case is cLower | ((rune&1) ^ x) - - maxCaseMode = cUpper -) - -func (c info) isCased() bool { - return c&casedMask != 0 -} - -func (c info) isCaseIgnorable() bool { - return c&ignorableMask == ignorableValue -} - -func (c info) isNotCasedAndNotCaseIgnorable() bool { - return c&fullCasedMask == 0 -} - -func (c info) isCaseIgnorableAndNotCased() bool { - return c&fullCasedMask == cIgnorableUncased -} - -func (c info) isMid() bool { - return c&(fullCasedMask|isMidBit) == isMidBit|cIgnorableUncased -} - -// The case mapping implementation will need to know about various Canonical -// Combining Class (CCC) values. We encode two of these in the trie value: -// cccZero (0) and cccAbove (230). If the value is cccOther, it means that -// CCC(r) > 0, but not 230. A value of cccBreak means that CCC(r) == 0 and that -// the rune also has the break category Break (see below). -const ( - cccBreak info = iota << 4 - cccZero - cccAbove - cccOther - - cccMask = cccBreak | cccZero | cccAbove | cccOther -) - -const ( - starter = 0 - above = 230 - iotaSubscript = 240 -) - -// The exceptions slice holds data that does not fit in a normal info entry. -// The entry is pointed to by the exception index in an entry. It has the -// following format: -// -// Header: -// -// byte 0: -// 7..6 unused -// 5..4 CCC type (same bits as entry) -// 3 unused -// 2..0 length of fold -// -// byte 1: -// 7..6 unused -// 5..3 length of 1st mapping of case type -// 2..0 length of 2nd mapping of case type -// -// case 1st 2nd -// lower -> upper, title -// upper -> lower, title -// title -> lower, upper -// -// Lengths with the value 0x7 indicate no value and implies no change. -// A length of 0 indicates a mapping to zero-length string. -// -// Body bytes: -// -// case folding bytes -// lowercase mapping bytes -// uppercase mapping bytes -// titlecase mapping bytes -// closure mapping bytes (for NFKC_Casefold). (TODO) -// -// Fallbacks: -// -// missing fold -> lower -// missing title -> upper -// all missing -> original rune -// -// exceptions starts with a dummy byte to enforce that there is no zero index -// value. -const ( - lengthMask = 0x07 - lengthBits = 3 - noChange = 0 -) - -// References to generated trie. - -var trie = newCaseTrie(0) - -var sparse = sparseBlocks{ - values: sparseValues[:], - offsets: sparseOffsets[:], -} - -// Sparse block lookup code. - -// valueRange is an entry in a sparse block. -type valueRange struct { - value uint16 - lo, hi byte -} - -type sparseBlocks struct { - values []valueRange - offsets []uint16 -} - -// lookup returns the value from values block n for byte b using binary search. -func (s *sparseBlocks) lookup(n uint32, b byte) uint16 { - lo := s.offsets[n] - hi := s.offsets[n+1] - for lo < hi { - m := lo + (hi-lo)/2 - r := s.values[m] - if r.lo <= b && b <= r.hi { - return r.value - } - if b < r.lo { - hi = m - } else { - lo = m + 1 - } - } - return 0 -} - -// lastRuneForTesting is the last rune used for testing. Everything after this -// is boring. -const lastRuneForTesting = rune(0x1FFFF) diff --git a/backend/vendor/golang.org/x/text/internal/internal.go b/backend/vendor/golang.org/x/text/internal/internal.go deleted file mode 100644 index 3cddbbdd..00000000 --- a/backend/vendor/golang.org/x/text/internal/internal.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package internal contains non-exported functionality that are used by -// packages in the text repository. -package internal // import "golang.org/x/text/internal" - -import ( - "sort" - - "golang.org/x/text/language" -) - -// SortTags sorts tags in place. -func SortTags(tags []language.Tag) { - sort.Sort(sorter(tags)) -} - -type sorter []language.Tag - -func (s sorter) Len() int { - return len(s) -} - -func (s sorter) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} - -func (s sorter) Less(i, j int) bool { - return s[i].String() < s[j].String() -} - -// UniqueTags sorts and filters duplicate tags in place and returns a slice with -// only unique tags. -func UniqueTags(tags []language.Tag) []language.Tag { - if len(tags) <= 1 { - return tags - } - SortTags(tags) - k := 0 - for i := 1; i < len(tags); i++ { - if tags[k].String() < tags[i].String() { - k++ - tags[k] = tags[i] - } - } - return tags[:k+1] -} diff --git a/backend/vendor/golang.org/x/text/internal/language/common.go b/backend/vendor/golang.org/x/text/internal/language/common.go deleted file mode 100644 index cdfdb749..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/common.go +++ /dev/null @@ -1,16 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package language - -// This file contains code common to the maketables.go and the package code. - -// AliasType is the type of an alias in AliasMap. -type AliasType int8 - -const ( - Deprecated AliasType = iota - Macro - Legacy - - AliasTypeUnknown AliasType = -1 -) diff --git a/backend/vendor/golang.org/x/text/internal/language/compact.go b/backend/vendor/golang.org/x/text/internal/language/compact.go deleted file mode 100644 index 46a00150..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compact.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -// CompactCoreInfo is a compact integer with the three core tags encoded. -type CompactCoreInfo uint32 - -// GetCompactCore generates a uint32 value that is guaranteed to be unique for -// different language, region, and script values. -func GetCompactCore(t Tag) (cci CompactCoreInfo, ok bool) { - if t.LangID > langNoIndexOffset { - return 0, false - } - cci |= CompactCoreInfo(t.LangID) << (8 + 12) - cci |= CompactCoreInfo(t.ScriptID) << 12 - cci |= CompactCoreInfo(t.RegionID) - return cci, true -} - -// Tag generates a tag from c. -func (c CompactCoreInfo) Tag() Tag { - return Tag{ - LangID: Language(c >> 20), - RegionID: Region(c & 0x3ff), - ScriptID: Script(c>>12) & 0xff, - } -} diff --git a/backend/vendor/golang.org/x/text/internal/language/compact/compact.go b/backend/vendor/golang.org/x/text/internal/language/compact/compact.go deleted file mode 100644 index 1b36935e..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compact/compact.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package compact defines a compact representation of language tags. -// -// Common language tags (at least all for which locale information is defined -// in CLDR) are assigned a unique index. Each Tag is associated with such an -// ID for selecting language-related resources (such as translations) as well -// as one for selecting regional defaults (currency, number formatting, etc.) -// -// It may want to export this functionality at some point, but at this point -// this is only available for use within x/text. -package compact // import "golang.org/x/text/internal/language/compact" - -import ( - "sort" - "strings" - - "golang.org/x/text/internal/language" -) - -// ID is an integer identifying a single tag. -type ID uint16 - -func getCoreIndex(t language.Tag) (id ID, ok bool) { - cci, ok := language.GetCompactCore(t) - if !ok { - return 0, false - } - i := sort.Search(len(coreTags), func(i int) bool { - return cci <= coreTags[i] - }) - if i == len(coreTags) || coreTags[i] != cci { - return 0, false - } - return ID(i), true -} - -// Parent returns the ID of the parent or the root ID if id is already the root. -func (id ID) Parent() ID { - return parents[id] -} - -// Tag converts id to an internal language Tag. -func (id ID) Tag() language.Tag { - if int(id) >= len(coreTags) { - return specialTags[int(id)-len(coreTags)] - } - return coreTags[id].Tag() -} - -var specialTags []language.Tag - -func init() { - tags := strings.Split(specialTagsStr, " ") - specialTags = make([]language.Tag, len(tags)) - for i, t := range tags { - specialTags[i] = language.MustParse(t) - } -} diff --git a/backend/vendor/golang.org/x/text/internal/language/compact/language.go b/backend/vendor/golang.org/x/text/internal/language/compact/language.go deleted file mode 100644 index 8c1b6666..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compact/language.go +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go gen_index.go -output tables.go -//go:generate go run gen_parents.go - -package compact - -// TODO: Remove above NOTE after: -// - verifying that tables are dropped correctly (most notably matcher tables). - -import ( - "strings" - - "golang.org/x/text/internal/language" -) - -// Tag represents a BCP 47 language tag. It is used to specify an instance of a -// specific language or locale. All language tag values are guaranteed to be -// well-formed. -type Tag struct { - // NOTE: exported tags will become part of the public API. - language ID - locale ID - full fullTag // always a language.Tag for now. -} - -const _und = 0 - -type fullTag interface { - IsRoot() bool - Parent() language.Tag -} - -// Make a compact Tag from a fully specified internal language Tag. -func Make(t language.Tag) (tag Tag) { - if region := t.TypeForKey("rg"); len(region) == 6 && region[2:] == "zzzz" { - if r, err := language.ParseRegion(region[:2]); err == nil { - tFull := t - t, _ = t.SetTypeForKey("rg", "") - // TODO: should we not consider "va" for the language tag? - var exact1, exact2 bool - tag.language, exact1 = FromTag(t) - t.RegionID = r - tag.locale, exact2 = FromTag(t) - if !exact1 || !exact2 { - tag.full = tFull - } - return tag - } - } - lang, ok := FromTag(t) - tag.language = lang - tag.locale = lang - if !ok { - tag.full = t - } - return tag -} - -// Tag returns an internal language Tag version of this tag. -func (t Tag) Tag() language.Tag { - if t.full != nil { - return t.full.(language.Tag) - } - tag := t.language.Tag() - if t.language != t.locale { - loc := t.locale.Tag() - tag, _ = tag.SetTypeForKey("rg", strings.ToLower(loc.RegionID.String())+"zzzz") - } - return tag -} - -// IsCompact reports whether this tag is fully defined in terms of ID. -func (t *Tag) IsCompact() bool { - return t.full == nil -} - -// MayHaveVariants reports whether a tag may have variants. If it returns false -// it is guaranteed the tag does not have variants. -func (t Tag) MayHaveVariants() bool { - return t.full != nil || int(t.language) >= len(coreTags) -} - -// MayHaveExtensions reports whether a tag may have extensions. If it returns -// false it is guaranteed the tag does not have them. -func (t Tag) MayHaveExtensions() bool { - return t.full != nil || - int(t.language) >= len(coreTags) || - t.language != t.locale -} - -// IsRoot returns true if t is equal to language "und". -func (t Tag) IsRoot() bool { - if t.full != nil { - return t.full.IsRoot() - } - return t.language == _und -} - -// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a -// specific language are substituted with fields from the parent language. -// The parent for a language may change for newer versions of CLDR. -func (t Tag) Parent() Tag { - if t.full != nil { - return Make(t.full.Parent()) - } - if t.language != t.locale { - // Simulate stripping -u-rg-xxxxxx - return Tag{language: t.language, locale: t.language} - } - // TODO: use parent lookup table once cycle from internal package is - // removed. Probably by internalizing the table and declaring this fast - // enough. - // lang := compactID(internal.Parent(uint16(t.language))) - lang, _ := FromTag(t.language.Tag().Parent()) - return Tag{language: lang, locale: lang} -} - -// nextToken returns token t and the rest of the string. -func nextToken(s string) (t, tail string) { - p := strings.Index(s[1:], "-") - if p == -1 { - return s[1:], "" - } - p++ - return s[1:p], s[p:] -} - -// LanguageID returns an index, where 0 <= index < NumCompactTags, for tags -// for which data exists in the text repository.The index will change over time -// and should not be stored in persistent storage. If t does not match a compact -// index, exact will be false and the compact index will be returned for the -// first match after repeatedly taking the Parent of t. -func LanguageID(t Tag) (id ID, exact bool) { - return t.language, t.full == nil -} - -// RegionalID returns the ID for the regional variant of this tag. This index is -// used to indicate region-specific overrides, such as default currency, default -// calendar and week data, default time cycle, and default measurement system -// and unit preferences. -// -// For instance, the tag en-GB-u-rg-uszzzz specifies British English with US -// settings for currency, number formatting, etc. The CompactIndex for this tag -// will be that for en-GB, while the RegionalID will be the one corresponding to -// en-US. -func RegionalID(t Tag) (id ID, exact bool) { - return t.locale, t.full == nil -} - -// LanguageTag returns t stripped of regional variant indicators. -// -// At the moment this means it is stripped of a regional and variant subtag "rg" -// and "va" in the "u" extension. -func (t Tag) LanguageTag() Tag { - if t.full == nil { - return Tag{language: t.language, locale: t.language} - } - tt := t.Tag() - tt.SetTypeForKey("rg", "") - tt.SetTypeForKey("va", "") - return Make(tt) -} - -// RegionalTag returns the regional variant of the tag. -// -// At the moment this means that the region is set from the regional subtag -// "rg" in the "u" extension. -func (t Tag) RegionalTag() Tag { - rt := Tag{language: t.locale, locale: t.locale} - if t.full == nil { - return rt - } - b := language.Builder{} - tag := t.Tag() - // tag, _ = tag.SetTypeForKey("rg", "") - b.SetTag(t.locale.Tag()) - if v := tag.Variants(); v != "" { - for _, v := range strings.Split(v, "-") { - b.AddVariant(v) - } - } - for _, e := range tag.Extensions() { - b.AddExt(e) - } - return t -} - -// FromTag reports closest matching ID for an internal language Tag. -func FromTag(t language.Tag) (id ID, exact bool) { - // TODO: perhaps give more frequent tags a lower index. - // TODO: we could make the indexes stable. This will excluded some - // possibilities for optimization, so don't do this quite yet. - exact = true - - b, s, r := t.Raw() - if t.HasString() { - if t.IsPrivateUse() { - // We have no entries for user-defined tags. - return 0, false - } - hasExtra := false - if t.HasVariants() { - if t.HasExtensions() { - build := language.Builder{} - build.SetTag(language.Tag{LangID: b, ScriptID: s, RegionID: r}) - build.AddVariant(t.Variants()) - exact = false - t = build.Make() - } - hasExtra = true - } else if _, ok := t.Extension('u'); ok { - // TODO: va may mean something else. Consider not considering it. - // Strip all but the 'va' entry. - old := t - variant := t.TypeForKey("va") - t = language.Tag{LangID: b, ScriptID: s, RegionID: r} - if variant != "" { - t, _ = t.SetTypeForKey("va", variant) - hasExtra = true - } - exact = old == t - } else { - exact = false - } - if hasExtra { - // We have some variants. - for i, s := range specialTags { - if s == t { - return ID(i + len(coreTags)), exact - } - } - exact = false - } - } - if x, ok := getCoreIndex(t); ok { - return x, exact - } - exact = false - if r != 0 && s == 0 { - // Deal with cases where an extra script is inserted for the region. - t, _ := t.Maximize() - if x, ok := getCoreIndex(t); ok { - return x, exact - } - } - for t = t.Parent(); t != root; t = t.Parent() { - // No variants specified: just compare core components. - // The key has the form lllssrrr, where l, s, and r are nibbles for - // respectively the langID, scriptID, and regionID. - if x, ok := getCoreIndex(t); ok { - return x, exact - } - } - return 0, exact -} - -var root = language.Tag{} diff --git a/backend/vendor/golang.org/x/text/internal/language/compact/parents.go b/backend/vendor/golang.org/x/text/internal/language/compact/parents.go deleted file mode 100644 index 8d810723..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compact/parents.go +++ /dev/null @@ -1,120 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package compact - -// parents maps a compact index of a tag to the compact index of the parent of -// this tag. -var parents = []ID{ // 775 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0004, 0x0000, 0x0006, - 0x0000, 0x0008, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, - 0x0000, 0x0028, 0x0000, 0x002a, 0x0000, 0x002c, 0x0000, 0x0000, - 0x002f, 0x002e, 0x002e, 0x0000, 0x0033, 0x0000, 0x0035, 0x0000, - 0x0037, 0x0000, 0x0039, 0x0000, 0x003b, 0x0000, 0x0000, 0x003e, - // Entry 40 - 7F - 0x0000, 0x0040, 0x0040, 0x0000, 0x0043, 0x0043, 0x0000, 0x0046, - 0x0000, 0x0048, 0x0000, 0x0000, 0x004b, 0x004a, 0x004a, 0x0000, - 0x004f, 0x004f, 0x004f, 0x004f, 0x0000, 0x0054, 0x0054, 0x0000, - 0x0057, 0x0000, 0x0059, 0x0000, 0x005b, 0x0000, 0x005d, 0x005d, - 0x0000, 0x0060, 0x0000, 0x0062, 0x0000, 0x0064, 0x0000, 0x0066, - 0x0066, 0x0000, 0x0069, 0x0000, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x0000, 0x0073, 0x0000, 0x0075, 0x0000, - 0x0077, 0x0000, 0x0000, 0x007a, 0x0000, 0x007c, 0x0000, 0x007e, - // Entry 80 - BF - 0x0000, 0x0080, 0x0080, 0x0000, 0x0083, 0x0083, 0x0000, 0x0086, - 0x0087, 0x0087, 0x0087, 0x0086, 0x0088, 0x0087, 0x0087, 0x0087, - 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, 0x0087, 0x0088, 0x0087, - 0x0087, 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0086, 0x0087, 0x0086, - // Entry C0 - FF - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, 0x0087, - 0x0087, 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0086, 0x0086, 0x0087, - 0x0087, 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0000, - 0x00ef, 0x0000, 0x00f1, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, - 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f1, 0x00f2, 0x00f1, 0x00f1, - // Entry 100 - 13F - 0x00f2, 0x00f2, 0x00f1, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f1, - 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x0000, 0x010e, - 0x0000, 0x0110, 0x0000, 0x0112, 0x0000, 0x0114, 0x0114, 0x0000, - 0x0117, 0x0117, 0x0117, 0x0117, 0x0000, 0x011c, 0x0000, 0x011e, - 0x0000, 0x0120, 0x0120, 0x0000, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - // Entry 140 - 17F - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0000, 0x0152, 0x0000, 0x0154, 0x0000, 0x0156, - 0x0000, 0x0158, 0x0000, 0x015a, 0x0000, 0x015c, 0x015c, 0x015c, - 0x0000, 0x0160, 0x0000, 0x0000, 0x0163, 0x0000, 0x0165, 0x0000, - 0x0167, 0x0167, 0x0167, 0x0000, 0x016b, 0x0000, 0x016d, 0x0000, - 0x016f, 0x0000, 0x0171, 0x0171, 0x0000, 0x0174, 0x0000, 0x0176, - 0x0000, 0x0178, 0x0000, 0x017a, 0x0000, 0x017c, 0x0000, 0x017e, - // Entry 180 - 1BF - 0x0000, 0x0000, 0x0000, 0x0182, 0x0000, 0x0184, 0x0184, 0x0184, - 0x0184, 0x0000, 0x0000, 0x0000, 0x018b, 0x0000, 0x0000, 0x018e, - 0x0000, 0x0000, 0x0191, 0x0000, 0x0000, 0x0000, 0x0195, 0x0000, - 0x0197, 0x0000, 0x0000, 0x019a, 0x0000, 0x0000, 0x019d, 0x0000, - 0x019f, 0x0000, 0x01a1, 0x0000, 0x01a3, 0x0000, 0x01a5, 0x0000, - 0x01a7, 0x0000, 0x01a9, 0x0000, 0x01ab, 0x0000, 0x01ad, 0x0000, - 0x01af, 0x0000, 0x01b1, 0x01b1, 0x0000, 0x01b4, 0x0000, 0x01b6, - 0x0000, 0x01b8, 0x0000, 0x01ba, 0x0000, 0x01bc, 0x0000, 0x0000, - // Entry 1C0 - 1FF - 0x01bf, 0x0000, 0x01c1, 0x0000, 0x01c3, 0x0000, 0x01c5, 0x0000, - 0x01c7, 0x0000, 0x01c9, 0x0000, 0x01cb, 0x01cb, 0x01cb, 0x01cb, - 0x0000, 0x01d0, 0x0000, 0x01d2, 0x01d2, 0x0000, 0x01d5, 0x0000, - 0x01d7, 0x0000, 0x01d9, 0x0000, 0x01db, 0x0000, 0x01dd, 0x0000, - 0x01df, 0x01df, 0x0000, 0x01e2, 0x0000, 0x01e4, 0x0000, 0x01e6, - 0x0000, 0x01e8, 0x0000, 0x01ea, 0x0000, 0x01ec, 0x0000, 0x01ee, - 0x0000, 0x01f0, 0x0000, 0x0000, 0x01f3, 0x0000, 0x01f5, 0x01f5, - 0x01f5, 0x0000, 0x01f9, 0x0000, 0x01fb, 0x0000, 0x01fd, 0x0000, - // Entry 200 - 23F - 0x01ff, 0x0000, 0x0000, 0x0202, 0x0000, 0x0204, 0x0204, 0x0000, - 0x0207, 0x0000, 0x0209, 0x0209, 0x0000, 0x020c, 0x020c, 0x0000, - 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x0000, - 0x0217, 0x0000, 0x0219, 0x0000, 0x021b, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0221, 0x0000, 0x0000, 0x0224, 0x0000, 0x0226, - 0x0226, 0x0000, 0x0229, 0x0000, 0x022b, 0x022b, 0x0000, 0x0000, - 0x022f, 0x022e, 0x022e, 0x0000, 0x0000, 0x0234, 0x0000, 0x0236, - 0x0000, 0x0238, 0x0000, 0x0244, 0x023a, 0x0244, 0x0244, 0x0244, - // Entry 240 - 27F - 0x0244, 0x0244, 0x0244, 0x0244, 0x023a, 0x0244, 0x0244, 0x0000, - 0x0247, 0x0247, 0x0247, 0x0000, 0x024b, 0x0000, 0x024d, 0x0000, - 0x024f, 0x024f, 0x0000, 0x0252, 0x0000, 0x0254, 0x0254, 0x0254, - 0x0254, 0x0254, 0x0254, 0x0000, 0x025b, 0x0000, 0x025d, 0x0000, - 0x025f, 0x0000, 0x0261, 0x0000, 0x0263, 0x0000, 0x0265, 0x0000, - 0x0000, 0x0268, 0x0268, 0x0268, 0x0000, 0x026c, 0x0000, 0x026e, - 0x0000, 0x0270, 0x0000, 0x0000, 0x0000, 0x0274, 0x0273, 0x0273, - 0x0000, 0x0278, 0x0000, 0x027a, 0x0000, 0x027c, 0x0000, 0x0000, - // Entry 280 - 2BF - 0x0000, 0x0000, 0x0281, 0x0000, 0x0000, 0x0284, 0x0000, 0x0286, - 0x0286, 0x0286, 0x0286, 0x0000, 0x028b, 0x028b, 0x028b, 0x0000, - 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x0000, 0x0295, 0x0295, - 0x0295, 0x0295, 0x0000, 0x0000, 0x0000, 0x0000, 0x029d, 0x029d, - 0x029d, 0x0000, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x0000, 0x0000, - 0x02a7, 0x02a7, 0x02a7, 0x02a7, 0x0000, 0x02ac, 0x0000, 0x02ae, - 0x02ae, 0x0000, 0x02b1, 0x0000, 0x02b3, 0x0000, 0x02b5, 0x02b5, - 0x0000, 0x0000, 0x02b9, 0x0000, 0x0000, 0x0000, 0x02bd, 0x0000, - // Entry 2C0 - 2FF - 0x02bf, 0x02bf, 0x0000, 0x0000, 0x02c3, 0x0000, 0x02c5, 0x0000, - 0x02c7, 0x0000, 0x02c9, 0x0000, 0x02cb, 0x0000, 0x02cd, 0x02cd, - 0x0000, 0x0000, 0x02d1, 0x0000, 0x02d3, 0x02d0, 0x02d0, 0x0000, - 0x0000, 0x02d8, 0x02d7, 0x02d7, 0x0000, 0x0000, 0x02dd, 0x0000, - 0x02df, 0x0000, 0x02e1, 0x0000, 0x0000, 0x02e4, 0x0000, 0x02e6, - 0x0000, 0x0000, 0x02e9, 0x0000, 0x02eb, 0x0000, 0x02ed, 0x0000, - 0x02ef, 0x02ef, 0x0000, 0x0000, 0x02f3, 0x02f2, 0x02f2, 0x0000, - 0x02f7, 0x0000, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x0000, - // Entry 300 - 33F - 0x02ff, 0x0300, 0x02ff, 0x0000, 0x0303, 0x0051, 0x00e6, -} // Size: 1574 bytes - -// Total table size 1574 bytes (1KiB); checksum: 895AAF0B diff --git a/backend/vendor/golang.org/x/text/internal/language/compact/tables.go b/backend/vendor/golang.org/x/text/internal/language/compact/tables.go deleted file mode 100644 index 32af9de5..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compact/tables.go +++ /dev/null @@ -1,1015 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package compact - -import "golang.org/x/text/internal/language" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "32" - -// NumCompactTags is the number of common tags. The maximum tag is -// NumCompactTags-1. -const NumCompactTags = 775 -const ( - undIndex ID = 0 - afIndex ID = 1 - afNAIndex ID = 2 - afZAIndex ID = 3 - agqIndex ID = 4 - agqCMIndex ID = 5 - akIndex ID = 6 - akGHIndex ID = 7 - amIndex ID = 8 - amETIndex ID = 9 - arIndex ID = 10 - ar001Index ID = 11 - arAEIndex ID = 12 - arBHIndex ID = 13 - arDJIndex ID = 14 - arDZIndex ID = 15 - arEGIndex ID = 16 - arEHIndex ID = 17 - arERIndex ID = 18 - arILIndex ID = 19 - arIQIndex ID = 20 - arJOIndex ID = 21 - arKMIndex ID = 22 - arKWIndex ID = 23 - arLBIndex ID = 24 - arLYIndex ID = 25 - arMAIndex ID = 26 - arMRIndex ID = 27 - arOMIndex ID = 28 - arPSIndex ID = 29 - arQAIndex ID = 30 - arSAIndex ID = 31 - arSDIndex ID = 32 - arSOIndex ID = 33 - arSSIndex ID = 34 - arSYIndex ID = 35 - arTDIndex ID = 36 - arTNIndex ID = 37 - arYEIndex ID = 38 - arsIndex ID = 39 - asIndex ID = 40 - asINIndex ID = 41 - asaIndex ID = 42 - asaTZIndex ID = 43 - astIndex ID = 44 - astESIndex ID = 45 - azIndex ID = 46 - azCyrlIndex ID = 47 - azCyrlAZIndex ID = 48 - azLatnIndex ID = 49 - azLatnAZIndex ID = 50 - basIndex ID = 51 - basCMIndex ID = 52 - beIndex ID = 53 - beBYIndex ID = 54 - bemIndex ID = 55 - bemZMIndex ID = 56 - bezIndex ID = 57 - bezTZIndex ID = 58 - bgIndex ID = 59 - bgBGIndex ID = 60 - bhIndex ID = 61 - bmIndex ID = 62 - bmMLIndex ID = 63 - bnIndex ID = 64 - bnBDIndex ID = 65 - bnINIndex ID = 66 - boIndex ID = 67 - boCNIndex ID = 68 - boINIndex ID = 69 - brIndex ID = 70 - brFRIndex ID = 71 - brxIndex ID = 72 - brxINIndex ID = 73 - bsIndex ID = 74 - bsCyrlIndex ID = 75 - bsCyrlBAIndex ID = 76 - bsLatnIndex ID = 77 - bsLatnBAIndex ID = 78 - caIndex ID = 79 - caADIndex ID = 80 - caESIndex ID = 81 - caFRIndex ID = 82 - caITIndex ID = 83 - ccpIndex ID = 84 - ccpBDIndex ID = 85 - ccpINIndex ID = 86 - ceIndex ID = 87 - ceRUIndex ID = 88 - cggIndex ID = 89 - cggUGIndex ID = 90 - chrIndex ID = 91 - chrUSIndex ID = 92 - ckbIndex ID = 93 - ckbIQIndex ID = 94 - ckbIRIndex ID = 95 - csIndex ID = 96 - csCZIndex ID = 97 - cuIndex ID = 98 - cuRUIndex ID = 99 - cyIndex ID = 100 - cyGBIndex ID = 101 - daIndex ID = 102 - daDKIndex ID = 103 - daGLIndex ID = 104 - davIndex ID = 105 - davKEIndex ID = 106 - deIndex ID = 107 - deATIndex ID = 108 - deBEIndex ID = 109 - deCHIndex ID = 110 - deDEIndex ID = 111 - deITIndex ID = 112 - deLIIndex ID = 113 - deLUIndex ID = 114 - djeIndex ID = 115 - djeNEIndex ID = 116 - dsbIndex ID = 117 - dsbDEIndex ID = 118 - duaIndex ID = 119 - duaCMIndex ID = 120 - dvIndex ID = 121 - dyoIndex ID = 122 - dyoSNIndex ID = 123 - dzIndex ID = 124 - dzBTIndex ID = 125 - ebuIndex ID = 126 - ebuKEIndex ID = 127 - eeIndex ID = 128 - eeGHIndex ID = 129 - eeTGIndex ID = 130 - elIndex ID = 131 - elCYIndex ID = 132 - elGRIndex ID = 133 - enIndex ID = 134 - en001Index ID = 135 - en150Index ID = 136 - enAGIndex ID = 137 - enAIIndex ID = 138 - enASIndex ID = 139 - enATIndex ID = 140 - enAUIndex ID = 141 - enBBIndex ID = 142 - enBEIndex ID = 143 - enBIIndex ID = 144 - enBMIndex ID = 145 - enBSIndex ID = 146 - enBWIndex ID = 147 - enBZIndex ID = 148 - enCAIndex ID = 149 - enCCIndex ID = 150 - enCHIndex ID = 151 - enCKIndex ID = 152 - enCMIndex ID = 153 - enCXIndex ID = 154 - enCYIndex ID = 155 - enDEIndex ID = 156 - enDGIndex ID = 157 - enDKIndex ID = 158 - enDMIndex ID = 159 - enERIndex ID = 160 - enFIIndex ID = 161 - enFJIndex ID = 162 - enFKIndex ID = 163 - enFMIndex ID = 164 - enGBIndex ID = 165 - enGDIndex ID = 166 - enGGIndex ID = 167 - enGHIndex ID = 168 - enGIIndex ID = 169 - enGMIndex ID = 170 - enGUIndex ID = 171 - enGYIndex ID = 172 - enHKIndex ID = 173 - enIEIndex ID = 174 - enILIndex ID = 175 - enIMIndex ID = 176 - enINIndex ID = 177 - enIOIndex ID = 178 - enJEIndex ID = 179 - enJMIndex ID = 180 - enKEIndex ID = 181 - enKIIndex ID = 182 - enKNIndex ID = 183 - enKYIndex ID = 184 - enLCIndex ID = 185 - enLRIndex ID = 186 - enLSIndex ID = 187 - enMGIndex ID = 188 - enMHIndex ID = 189 - enMOIndex ID = 190 - enMPIndex ID = 191 - enMSIndex ID = 192 - enMTIndex ID = 193 - enMUIndex ID = 194 - enMWIndex ID = 195 - enMYIndex ID = 196 - enNAIndex ID = 197 - enNFIndex ID = 198 - enNGIndex ID = 199 - enNLIndex ID = 200 - enNRIndex ID = 201 - enNUIndex ID = 202 - enNZIndex ID = 203 - enPGIndex ID = 204 - enPHIndex ID = 205 - enPKIndex ID = 206 - enPNIndex ID = 207 - enPRIndex ID = 208 - enPWIndex ID = 209 - enRWIndex ID = 210 - enSBIndex ID = 211 - enSCIndex ID = 212 - enSDIndex ID = 213 - enSEIndex ID = 214 - enSGIndex ID = 215 - enSHIndex ID = 216 - enSIIndex ID = 217 - enSLIndex ID = 218 - enSSIndex ID = 219 - enSXIndex ID = 220 - enSZIndex ID = 221 - enTCIndex ID = 222 - enTKIndex ID = 223 - enTOIndex ID = 224 - enTTIndex ID = 225 - enTVIndex ID = 226 - enTZIndex ID = 227 - enUGIndex ID = 228 - enUMIndex ID = 229 - enUSIndex ID = 230 - enVCIndex ID = 231 - enVGIndex ID = 232 - enVIIndex ID = 233 - enVUIndex ID = 234 - enWSIndex ID = 235 - enZAIndex ID = 236 - enZMIndex ID = 237 - enZWIndex ID = 238 - eoIndex ID = 239 - eo001Index ID = 240 - esIndex ID = 241 - es419Index ID = 242 - esARIndex ID = 243 - esBOIndex ID = 244 - esBRIndex ID = 245 - esBZIndex ID = 246 - esCLIndex ID = 247 - esCOIndex ID = 248 - esCRIndex ID = 249 - esCUIndex ID = 250 - esDOIndex ID = 251 - esEAIndex ID = 252 - esECIndex ID = 253 - esESIndex ID = 254 - esGQIndex ID = 255 - esGTIndex ID = 256 - esHNIndex ID = 257 - esICIndex ID = 258 - esMXIndex ID = 259 - esNIIndex ID = 260 - esPAIndex ID = 261 - esPEIndex ID = 262 - esPHIndex ID = 263 - esPRIndex ID = 264 - esPYIndex ID = 265 - esSVIndex ID = 266 - esUSIndex ID = 267 - esUYIndex ID = 268 - esVEIndex ID = 269 - etIndex ID = 270 - etEEIndex ID = 271 - euIndex ID = 272 - euESIndex ID = 273 - ewoIndex ID = 274 - ewoCMIndex ID = 275 - faIndex ID = 276 - faAFIndex ID = 277 - faIRIndex ID = 278 - ffIndex ID = 279 - ffCMIndex ID = 280 - ffGNIndex ID = 281 - ffMRIndex ID = 282 - ffSNIndex ID = 283 - fiIndex ID = 284 - fiFIIndex ID = 285 - filIndex ID = 286 - filPHIndex ID = 287 - foIndex ID = 288 - foDKIndex ID = 289 - foFOIndex ID = 290 - frIndex ID = 291 - frBEIndex ID = 292 - frBFIndex ID = 293 - frBIIndex ID = 294 - frBJIndex ID = 295 - frBLIndex ID = 296 - frCAIndex ID = 297 - frCDIndex ID = 298 - frCFIndex ID = 299 - frCGIndex ID = 300 - frCHIndex ID = 301 - frCIIndex ID = 302 - frCMIndex ID = 303 - frDJIndex ID = 304 - frDZIndex ID = 305 - frFRIndex ID = 306 - frGAIndex ID = 307 - frGFIndex ID = 308 - frGNIndex ID = 309 - frGPIndex ID = 310 - frGQIndex ID = 311 - frHTIndex ID = 312 - frKMIndex ID = 313 - frLUIndex ID = 314 - frMAIndex ID = 315 - frMCIndex ID = 316 - frMFIndex ID = 317 - frMGIndex ID = 318 - frMLIndex ID = 319 - frMQIndex ID = 320 - frMRIndex ID = 321 - frMUIndex ID = 322 - frNCIndex ID = 323 - frNEIndex ID = 324 - frPFIndex ID = 325 - frPMIndex ID = 326 - frREIndex ID = 327 - frRWIndex ID = 328 - frSCIndex ID = 329 - frSNIndex ID = 330 - frSYIndex ID = 331 - frTDIndex ID = 332 - frTGIndex ID = 333 - frTNIndex ID = 334 - frVUIndex ID = 335 - frWFIndex ID = 336 - frYTIndex ID = 337 - furIndex ID = 338 - furITIndex ID = 339 - fyIndex ID = 340 - fyNLIndex ID = 341 - gaIndex ID = 342 - gaIEIndex ID = 343 - gdIndex ID = 344 - gdGBIndex ID = 345 - glIndex ID = 346 - glESIndex ID = 347 - gswIndex ID = 348 - gswCHIndex ID = 349 - gswFRIndex ID = 350 - gswLIIndex ID = 351 - guIndex ID = 352 - guINIndex ID = 353 - guwIndex ID = 354 - guzIndex ID = 355 - guzKEIndex ID = 356 - gvIndex ID = 357 - gvIMIndex ID = 358 - haIndex ID = 359 - haGHIndex ID = 360 - haNEIndex ID = 361 - haNGIndex ID = 362 - hawIndex ID = 363 - hawUSIndex ID = 364 - heIndex ID = 365 - heILIndex ID = 366 - hiIndex ID = 367 - hiINIndex ID = 368 - hrIndex ID = 369 - hrBAIndex ID = 370 - hrHRIndex ID = 371 - hsbIndex ID = 372 - hsbDEIndex ID = 373 - huIndex ID = 374 - huHUIndex ID = 375 - hyIndex ID = 376 - hyAMIndex ID = 377 - idIndex ID = 378 - idIDIndex ID = 379 - igIndex ID = 380 - igNGIndex ID = 381 - iiIndex ID = 382 - iiCNIndex ID = 383 - inIndex ID = 384 - ioIndex ID = 385 - isIndex ID = 386 - isISIndex ID = 387 - itIndex ID = 388 - itCHIndex ID = 389 - itITIndex ID = 390 - itSMIndex ID = 391 - itVAIndex ID = 392 - iuIndex ID = 393 - iwIndex ID = 394 - jaIndex ID = 395 - jaJPIndex ID = 396 - jboIndex ID = 397 - jgoIndex ID = 398 - jgoCMIndex ID = 399 - jiIndex ID = 400 - jmcIndex ID = 401 - jmcTZIndex ID = 402 - jvIndex ID = 403 - jwIndex ID = 404 - kaIndex ID = 405 - kaGEIndex ID = 406 - kabIndex ID = 407 - kabDZIndex ID = 408 - kajIndex ID = 409 - kamIndex ID = 410 - kamKEIndex ID = 411 - kcgIndex ID = 412 - kdeIndex ID = 413 - kdeTZIndex ID = 414 - keaIndex ID = 415 - keaCVIndex ID = 416 - khqIndex ID = 417 - khqMLIndex ID = 418 - kiIndex ID = 419 - kiKEIndex ID = 420 - kkIndex ID = 421 - kkKZIndex ID = 422 - kkjIndex ID = 423 - kkjCMIndex ID = 424 - klIndex ID = 425 - klGLIndex ID = 426 - klnIndex ID = 427 - klnKEIndex ID = 428 - kmIndex ID = 429 - kmKHIndex ID = 430 - knIndex ID = 431 - knINIndex ID = 432 - koIndex ID = 433 - koKPIndex ID = 434 - koKRIndex ID = 435 - kokIndex ID = 436 - kokINIndex ID = 437 - ksIndex ID = 438 - ksINIndex ID = 439 - ksbIndex ID = 440 - ksbTZIndex ID = 441 - ksfIndex ID = 442 - ksfCMIndex ID = 443 - kshIndex ID = 444 - kshDEIndex ID = 445 - kuIndex ID = 446 - kwIndex ID = 447 - kwGBIndex ID = 448 - kyIndex ID = 449 - kyKGIndex ID = 450 - lagIndex ID = 451 - lagTZIndex ID = 452 - lbIndex ID = 453 - lbLUIndex ID = 454 - lgIndex ID = 455 - lgUGIndex ID = 456 - lktIndex ID = 457 - lktUSIndex ID = 458 - lnIndex ID = 459 - lnAOIndex ID = 460 - lnCDIndex ID = 461 - lnCFIndex ID = 462 - lnCGIndex ID = 463 - loIndex ID = 464 - loLAIndex ID = 465 - lrcIndex ID = 466 - lrcIQIndex ID = 467 - lrcIRIndex ID = 468 - ltIndex ID = 469 - ltLTIndex ID = 470 - luIndex ID = 471 - luCDIndex ID = 472 - luoIndex ID = 473 - luoKEIndex ID = 474 - luyIndex ID = 475 - luyKEIndex ID = 476 - lvIndex ID = 477 - lvLVIndex ID = 478 - masIndex ID = 479 - masKEIndex ID = 480 - masTZIndex ID = 481 - merIndex ID = 482 - merKEIndex ID = 483 - mfeIndex ID = 484 - mfeMUIndex ID = 485 - mgIndex ID = 486 - mgMGIndex ID = 487 - mghIndex ID = 488 - mghMZIndex ID = 489 - mgoIndex ID = 490 - mgoCMIndex ID = 491 - mkIndex ID = 492 - mkMKIndex ID = 493 - mlIndex ID = 494 - mlINIndex ID = 495 - mnIndex ID = 496 - mnMNIndex ID = 497 - moIndex ID = 498 - mrIndex ID = 499 - mrINIndex ID = 500 - msIndex ID = 501 - msBNIndex ID = 502 - msMYIndex ID = 503 - msSGIndex ID = 504 - mtIndex ID = 505 - mtMTIndex ID = 506 - muaIndex ID = 507 - muaCMIndex ID = 508 - myIndex ID = 509 - myMMIndex ID = 510 - mznIndex ID = 511 - mznIRIndex ID = 512 - nahIndex ID = 513 - naqIndex ID = 514 - naqNAIndex ID = 515 - nbIndex ID = 516 - nbNOIndex ID = 517 - nbSJIndex ID = 518 - ndIndex ID = 519 - ndZWIndex ID = 520 - ndsIndex ID = 521 - ndsDEIndex ID = 522 - ndsNLIndex ID = 523 - neIndex ID = 524 - neINIndex ID = 525 - neNPIndex ID = 526 - nlIndex ID = 527 - nlAWIndex ID = 528 - nlBEIndex ID = 529 - nlBQIndex ID = 530 - nlCWIndex ID = 531 - nlNLIndex ID = 532 - nlSRIndex ID = 533 - nlSXIndex ID = 534 - nmgIndex ID = 535 - nmgCMIndex ID = 536 - nnIndex ID = 537 - nnNOIndex ID = 538 - nnhIndex ID = 539 - nnhCMIndex ID = 540 - noIndex ID = 541 - nqoIndex ID = 542 - nrIndex ID = 543 - nsoIndex ID = 544 - nusIndex ID = 545 - nusSSIndex ID = 546 - nyIndex ID = 547 - nynIndex ID = 548 - nynUGIndex ID = 549 - omIndex ID = 550 - omETIndex ID = 551 - omKEIndex ID = 552 - orIndex ID = 553 - orINIndex ID = 554 - osIndex ID = 555 - osGEIndex ID = 556 - osRUIndex ID = 557 - paIndex ID = 558 - paArabIndex ID = 559 - paArabPKIndex ID = 560 - paGuruIndex ID = 561 - paGuruINIndex ID = 562 - papIndex ID = 563 - plIndex ID = 564 - plPLIndex ID = 565 - prgIndex ID = 566 - prg001Index ID = 567 - psIndex ID = 568 - psAFIndex ID = 569 - ptIndex ID = 570 - ptAOIndex ID = 571 - ptBRIndex ID = 572 - ptCHIndex ID = 573 - ptCVIndex ID = 574 - ptGQIndex ID = 575 - ptGWIndex ID = 576 - ptLUIndex ID = 577 - ptMOIndex ID = 578 - ptMZIndex ID = 579 - ptPTIndex ID = 580 - ptSTIndex ID = 581 - ptTLIndex ID = 582 - quIndex ID = 583 - quBOIndex ID = 584 - quECIndex ID = 585 - quPEIndex ID = 586 - rmIndex ID = 587 - rmCHIndex ID = 588 - rnIndex ID = 589 - rnBIIndex ID = 590 - roIndex ID = 591 - roMDIndex ID = 592 - roROIndex ID = 593 - rofIndex ID = 594 - rofTZIndex ID = 595 - ruIndex ID = 596 - ruBYIndex ID = 597 - ruKGIndex ID = 598 - ruKZIndex ID = 599 - ruMDIndex ID = 600 - ruRUIndex ID = 601 - ruUAIndex ID = 602 - rwIndex ID = 603 - rwRWIndex ID = 604 - rwkIndex ID = 605 - rwkTZIndex ID = 606 - sahIndex ID = 607 - sahRUIndex ID = 608 - saqIndex ID = 609 - saqKEIndex ID = 610 - sbpIndex ID = 611 - sbpTZIndex ID = 612 - sdIndex ID = 613 - sdPKIndex ID = 614 - sdhIndex ID = 615 - seIndex ID = 616 - seFIIndex ID = 617 - seNOIndex ID = 618 - seSEIndex ID = 619 - sehIndex ID = 620 - sehMZIndex ID = 621 - sesIndex ID = 622 - sesMLIndex ID = 623 - sgIndex ID = 624 - sgCFIndex ID = 625 - shIndex ID = 626 - shiIndex ID = 627 - shiLatnIndex ID = 628 - shiLatnMAIndex ID = 629 - shiTfngIndex ID = 630 - shiTfngMAIndex ID = 631 - siIndex ID = 632 - siLKIndex ID = 633 - skIndex ID = 634 - skSKIndex ID = 635 - slIndex ID = 636 - slSIIndex ID = 637 - smaIndex ID = 638 - smiIndex ID = 639 - smjIndex ID = 640 - smnIndex ID = 641 - smnFIIndex ID = 642 - smsIndex ID = 643 - snIndex ID = 644 - snZWIndex ID = 645 - soIndex ID = 646 - soDJIndex ID = 647 - soETIndex ID = 648 - soKEIndex ID = 649 - soSOIndex ID = 650 - sqIndex ID = 651 - sqALIndex ID = 652 - sqMKIndex ID = 653 - sqXKIndex ID = 654 - srIndex ID = 655 - srCyrlIndex ID = 656 - srCyrlBAIndex ID = 657 - srCyrlMEIndex ID = 658 - srCyrlRSIndex ID = 659 - srCyrlXKIndex ID = 660 - srLatnIndex ID = 661 - srLatnBAIndex ID = 662 - srLatnMEIndex ID = 663 - srLatnRSIndex ID = 664 - srLatnXKIndex ID = 665 - ssIndex ID = 666 - ssyIndex ID = 667 - stIndex ID = 668 - svIndex ID = 669 - svAXIndex ID = 670 - svFIIndex ID = 671 - svSEIndex ID = 672 - swIndex ID = 673 - swCDIndex ID = 674 - swKEIndex ID = 675 - swTZIndex ID = 676 - swUGIndex ID = 677 - syrIndex ID = 678 - taIndex ID = 679 - taINIndex ID = 680 - taLKIndex ID = 681 - taMYIndex ID = 682 - taSGIndex ID = 683 - teIndex ID = 684 - teINIndex ID = 685 - teoIndex ID = 686 - teoKEIndex ID = 687 - teoUGIndex ID = 688 - tgIndex ID = 689 - tgTJIndex ID = 690 - thIndex ID = 691 - thTHIndex ID = 692 - tiIndex ID = 693 - tiERIndex ID = 694 - tiETIndex ID = 695 - tigIndex ID = 696 - tkIndex ID = 697 - tkTMIndex ID = 698 - tlIndex ID = 699 - tnIndex ID = 700 - toIndex ID = 701 - toTOIndex ID = 702 - trIndex ID = 703 - trCYIndex ID = 704 - trTRIndex ID = 705 - tsIndex ID = 706 - ttIndex ID = 707 - ttRUIndex ID = 708 - twqIndex ID = 709 - twqNEIndex ID = 710 - tzmIndex ID = 711 - tzmMAIndex ID = 712 - ugIndex ID = 713 - ugCNIndex ID = 714 - ukIndex ID = 715 - ukUAIndex ID = 716 - urIndex ID = 717 - urINIndex ID = 718 - urPKIndex ID = 719 - uzIndex ID = 720 - uzArabIndex ID = 721 - uzArabAFIndex ID = 722 - uzCyrlIndex ID = 723 - uzCyrlUZIndex ID = 724 - uzLatnIndex ID = 725 - uzLatnUZIndex ID = 726 - vaiIndex ID = 727 - vaiLatnIndex ID = 728 - vaiLatnLRIndex ID = 729 - vaiVaiiIndex ID = 730 - vaiVaiiLRIndex ID = 731 - veIndex ID = 732 - viIndex ID = 733 - viVNIndex ID = 734 - voIndex ID = 735 - vo001Index ID = 736 - vunIndex ID = 737 - vunTZIndex ID = 738 - waIndex ID = 739 - waeIndex ID = 740 - waeCHIndex ID = 741 - woIndex ID = 742 - woSNIndex ID = 743 - xhIndex ID = 744 - xogIndex ID = 745 - xogUGIndex ID = 746 - yavIndex ID = 747 - yavCMIndex ID = 748 - yiIndex ID = 749 - yi001Index ID = 750 - yoIndex ID = 751 - yoBJIndex ID = 752 - yoNGIndex ID = 753 - yueIndex ID = 754 - yueHansIndex ID = 755 - yueHansCNIndex ID = 756 - yueHantIndex ID = 757 - yueHantHKIndex ID = 758 - zghIndex ID = 759 - zghMAIndex ID = 760 - zhIndex ID = 761 - zhHansIndex ID = 762 - zhHansCNIndex ID = 763 - zhHansHKIndex ID = 764 - zhHansMOIndex ID = 765 - zhHansSGIndex ID = 766 - zhHantIndex ID = 767 - zhHantHKIndex ID = 768 - zhHantMOIndex ID = 769 - zhHantTWIndex ID = 770 - zuIndex ID = 771 - zuZAIndex ID = 772 - caESvalenciaIndex ID = 773 - enUSuvaposixIndex ID = 774 -) - -var coreTags = []language.CompactCoreInfo{ // 773 elements - // Entry 0 - 1F - 0x00000000, 0x01600000, 0x016000d2, 0x01600161, - 0x01c00000, 0x01c00052, 0x02100000, 0x02100080, - 0x02700000, 0x0270006f, 0x03a00000, 0x03a00001, - 0x03a00023, 0x03a00039, 0x03a00062, 0x03a00067, - 0x03a0006b, 0x03a0006c, 0x03a0006d, 0x03a00097, - 0x03a0009b, 0x03a000a1, 0x03a000a8, 0x03a000ac, - 0x03a000b0, 0x03a000b9, 0x03a000ba, 0x03a000c9, - 0x03a000e1, 0x03a000ed, 0x03a000f3, 0x03a00108, - // Entry 20 - 3F - 0x03a0010b, 0x03a00115, 0x03a00117, 0x03a0011c, - 0x03a00120, 0x03a00128, 0x03a0015e, 0x04000000, - 0x04300000, 0x04300099, 0x04400000, 0x0440012f, - 0x04800000, 0x0480006e, 0x05800000, 0x05820000, - 0x05820032, 0x0585a000, 0x0585a032, 0x05e00000, - 0x05e00052, 0x07100000, 0x07100047, 0x07500000, - 0x07500162, 0x07900000, 0x0790012f, 0x07e00000, - 0x07e00038, 0x08200000, 0x0a000000, 0x0a0000c3, - // Entry 40 - 5F - 0x0a500000, 0x0a500035, 0x0a500099, 0x0a900000, - 0x0a900053, 0x0a900099, 0x0b200000, 0x0b200078, - 0x0b500000, 0x0b500099, 0x0b700000, 0x0b720000, - 0x0b720033, 0x0b75a000, 0x0b75a033, 0x0d700000, - 0x0d700022, 0x0d70006e, 0x0d700078, 0x0d70009e, - 0x0db00000, 0x0db00035, 0x0db00099, 0x0dc00000, - 0x0dc00106, 0x0df00000, 0x0df00131, 0x0e500000, - 0x0e500135, 0x0e900000, 0x0e90009b, 0x0e90009c, - // Entry 60 - 7F - 0x0fa00000, 0x0fa0005e, 0x0fe00000, 0x0fe00106, - 0x10000000, 0x1000007b, 0x10100000, 0x10100063, - 0x10100082, 0x10800000, 0x108000a4, 0x10d00000, - 0x10d0002e, 0x10d00036, 0x10d0004e, 0x10d00060, - 0x10d0009e, 0x10d000b2, 0x10d000b7, 0x11700000, - 0x117000d4, 0x11f00000, 0x11f00060, 0x12400000, - 0x12400052, 0x12800000, 0x12b00000, 0x12b00114, - 0x12d00000, 0x12d00043, 0x12f00000, 0x12f000a4, - // Entry 80 - 9F - 0x13000000, 0x13000080, 0x13000122, 0x13600000, - 0x1360005d, 0x13600087, 0x13900000, 0x13900001, - 0x1390001a, 0x13900025, 0x13900026, 0x1390002d, - 0x1390002e, 0x1390002f, 0x13900034, 0x13900036, - 0x1390003a, 0x1390003d, 0x13900042, 0x13900046, - 0x13900048, 0x13900049, 0x1390004a, 0x1390004e, - 0x13900050, 0x13900052, 0x1390005c, 0x1390005d, - 0x13900060, 0x13900061, 0x13900063, 0x13900064, - // Entry A0 - BF - 0x1390006d, 0x13900072, 0x13900073, 0x13900074, - 0x13900075, 0x1390007b, 0x1390007c, 0x1390007f, - 0x13900080, 0x13900081, 0x13900083, 0x1390008a, - 0x1390008c, 0x1390008d, 0x13900096, 0x13900097, - 0x13900098, 0x13900099, 0x1390009a, 0x1390009f, - 0x139000a0, 0x139000a4, 0x139000a7, 0x139000a9, - 0x139000ad, 0x139000b1, 0x139000b4, 0x139000b5, - 0x139000bf, 0x139000c0, 0x139000c6, 0x139000c7, - // Entry C0 - DF - 0x139000ca, 0x139000cb, 0x139000cc, 0x139000ce, - 0x139000d0, 0x139000d2, 0x139000d5, 0x139000d6, - 0x139000d9, 0x139000dd, 0x139000df, 0x139000e0, - 0x139000e6, 0x139000e7, 0x139000e8, 0x139000eb, - 0x139000ec, 0x139000f0, 0x13900107, 0x13900109, - 0x1390010a, 0x1390010b, 0x1390010c, 0x1390010d, - 0x1390010e, 0x1390010f, 0x13900112, 0x13900117, - 0x1390011b, 0x1390011d, 0x1390011f, 0x13900125, - // Entry E0 - FF - 0x13900129, 0x1390012c, 0x1390012d, 0x1390012f, - 0x13900131, 0x13900133, 0x13900135, 0x13900139, - 0x1390013c, 0x1390013d, 0x1390013f, 0x13900142, - 0x13900161, 0x13900162, 0x13900164, 0x13c00000, - 0x13c00001, 0x13e00000, 0x13e0001f, 0x13e0002c, - 0x13e0003f, 0x13e00041, 0x13e00048, 0x13e00051, - 0x13e00054, 0x13e00056, 0x13e00059, 0x13e00065, - 0x13e00068, 0x13e00069, 0x13e0006e, 0x13e00086, - // Entry 100 - 11F - 0x13e00089, 0x13e0008f, 0x13e00094, 0x13e000cf, - 0x13e000d8, 0x13e000e2, 0x13e000e4, 0x13e000e7, - 0x13e000ec, 0x13e000f1, 0x13e0011a, 0x13e00135, - 0x13e00136, 0x13e0013b, 0x14000000, 0x1400006a, - 0x14500000, 0x1450006e, 0x14600000, 0x14600052, - 0x14800000, 0x14800024, 0x1480009c, 0x14e00000, - 0x14e00052, 0x14e00084, 0x14e000c9, 0x14e00114, - 0x15100000, 0x15100072, 0x15300000, 0x153000e7, - // Entry 120 - 13F - 0x15800000, 0x15800063, 0x15800076, 0x15e00000, - 0x15e00036, 0x15e00037, 0x15e0003a, 0x15e0003b, - 0x15e0003c, 0x15e00049, 0x15e0004b, 0x15e0004c, - 0x15e0004d, 0x15e0004e, 0x15e0004f, 0x15e00052, - 0x15e00062, 0x15e00067, 0x15e00078, 0x15e0007a, - 0x15e0007e, 0x15e00084, 0x15e00085, 0x15e00086, - 0x15e00091, 0x15e000a8, 0x15e000b7, 0x15e000ba, - 0x15e000bb, 0x15e000be, 0x15e000bf, 0x15e000c3, - // Entry 140 - 15F - 0x15e000c8, 0x15e000c9, 0x15e000cc, 0x15e000d3, - 0x15e000d4, 0x15e000e5, 0x15e000ea, 0x15e00102, - 0x15e00107, 0x15e0010a, 0x15e00114, 0x15e0011c, - 0x15e00120, 0x15e00122, 0x15e00128, 0x15e0013f, - 0x15e00140, 0x15e0015f, 0x16900000, 0x1690009e, - 0x16d00000, 0x16d000d9, 0x16e00000, 0x16e00096, - 0x17e00000, 0x17e0007b, 0x19000000, 0x1900006e, - 0x1a300000, 0x1a30004e, 0x1a300078, 0x1a3000b2, - // Entry 160 - 17F - 0x1a400000, 0x1a400099, 0x1a900000, 0x1ab00000, - 0x1ab000a4, 0x1ac00000, 0x1ac00098, 0x1b400000, - 0x1b400080, 0x1b4000d4, 0x1b4000d6, 0x1b800000, - 0x1b800135, 0x1bc00000, 0x1bc00097, 0x1be00000, - 0x1be00099, 0x1d100000, 0x1d100033, 0x1d100090, - 0x1d200000, 0x1d200060, 0x1d500000, 0x1d500092, - 0x1d700000, 0x1d700028, 0x1e100000, 0x1e100095, - 0x1e700000, 0x1e7000d6, 0x1ea00000, 0x1ea00053, - // Entry 180 - 19F - 0x1f300000, 0x1f500000, 0x1f800000, 0x1f80009d, - 0x1f900000, 0x1f90004e, 0x1f90009e, 0x1f900113, - 0x1f900138, 0x1fa00000, 0x1fb00000, 0x20000000, - 0x200000a2, 0x20300000, 0x20700000, 0x20700052, - 0x20800000, 0x20a00000, 0x20a0012f, 0x20e00000, - 0x20f00000, 0x21000000, 0x2100007d, 0x21200000, - 0x21200067, 0x21600000, 0x21700000, 0x217000a4, - 0x21f00000, 0x22300000, 0x2230012f, 0x22700000, - // Entry 1A0 - 1BF - 0x2270005a, 0x23400000, 0x234000c3, 0x23900000, - 0x239000a4, 0x24200000, 0x242000ae, 0x24400000, - 0x24400052, 0x24500000, 0x24500082, 0x24600000, - 0x246000a4, 0x24a00000, 0x24a000a6, 0x25100000, - 0x25100099, 0x25400000, 0x254000aa, 0x254000ab, - 0x25600000, 0x25600099, 0x26a00000, 0x26a00099, - 0x26b00000, 0x26b0012f, 0x26d00000, 0x26d00052, - 0x26e00000, 0x26e00060, 0x27400000, 0x28100000, - // Entry 1C0 - 1DF - 0x2810007b, 0x28a00000, 0x28a000a5, 0x29100000, - 0x2910012f, 0x29500000, 0x295000b7, 0x2a300000, - 0x2a300131, 0x2af00000, 0x2af00135, 0x2b500000, - 0x2b50002a, 0x2b50004b, 0x2b50004c, 0x2b50004d, - 0x2b800000, 0x2b8000af, 0x2bf00000, 0x2bf0009b, - 0x2bf0009c, 0x2c000000, 0x2c0000b6, 0x2c200000, - 0x2c20004b, 0x2c400000, 0x2c4000a4, 0x2c500000, - 0x2c5000a4, 0x2c700000, 0x2c7000b8, 0x2d100000, - // Entry 1E0 - 1FF - 0x2d1000a4, 0x2d10012f, 0x2e900000, 0x2e9000a4, - 0x2ed00000, 0x2ed000cc, 0x2f100000, 0x2f1000bf, - 0x2f200000, 0x2f2000d1, 0x2f400000, 0x2f400052, - 0x2ff00000, 0x2ff000c2, 0x30400000, 0x30400099, - 0x30b00000, 0x30b000c5, 0x31000000, 0x31b00000, - 0x31b00099, 0x31f00000, 0x31f0003e, 0x31f000d0, - 0x31f0010d, 0x32000000, 0x320000cb, 0x32500000, - 0x32500052, 0x33100000, 0x331000c4, 0x33a00000, - // Entry 200 - 21F - 0x33a0009c, 0x34100000, 0x34500000, 0x345000d2, - 0x34700000, 0x347000da, 0x34700110, 0x34e00000, - 0x34e00164, 0x35000000, 0x35000060, 0x350000d9, - 0x35100000, 0x35100099, 0x351000db, 0x36700000, - 0x36700030, 0x36700036, 0x36700040, 0x3670005b, - 0x367000d9, 0x36700116, 0x3670011b, 0x36800000, - 0x36800052, 0x36a00000, 0x36a000da, 0x36c00000, - 0x36c00052, 0x36f00000, 0x37500000, 0x37600000, - // Entry 220 - 23F - 0x37a00000, 0x38000000, 0x38000117, 0x38700000, - 0x38900000, 0x38900131, 0x39000000, 0x3900006f, - 0x390000a4, 0x39500000, 0x39500099, 0x39800000, - 0x3980007d, 0x39800106, 0x39d00000, 0x39d05000, - 0x39d050e8, 0x39d36000, 0x39d36099, 0x3a100000, - 0x3b300000, 0x3b3000e9, 0x3bd00000, 0x3bd00001, - 0x3be00000, 0x3be00024, 0x3c000000, 0x3c00002a, - 0x3c000041, 0x3c00004e, 0x3c00005a, 0x3c000086, - // Entry 240 - 25F - 0x3c00008b, 0x3c0000b7, 0x3c0000c6, 0x3c0000d1, - 0x3c0000ee, 0x3c000118, 0x3c000126, 0x3c400000, - 0x3c40003f, 0x3c400069, 0x3c4000e4, 0x3d400000, - 0x3d40004e, 0x3d900000, 0x3d90003a, 0x3dc00000, - 0x3dc000bc, 0x3dc00104, 0x3de00000, 0x3de0012f, - 0x3e200000, 0x3e200047, 0x3e2000a5, 0x3e2000ae, - 0x3e2000bc, 0x3e200106, 0x3e200130, 0x3e500000, - 0x3e500107, 0x3e600000, 0x3e60012f, 0x3eb00000, - // Entry 260 - 27F - 0x3eb00106, 0x3ec00000, 0x3ec000a4, 0x3f300000, - 0x3f30012f, 0x3fa00000, 0x3fa000e8, 0x3fc00000, - 0x3fd00000, 0x3fd00072, 0x3fd000da, 0x3fd0010c, - 0x3ff00000, 0x3ff000d1, 0x40100000, 0x401000c3, - 0x40200000, 0x4020004c, 0x40700000, 0x40800000, - 0x4085a000, 0x4085a0ba, 0x408e8000, 0x408e80ba, - 0x40c00000, 0x40c000b3, 0x41200000, 0x41200111, - 0x41600000, 0x4160010f, 0x41c00000, 0x41d00000, - // Entry 280 - 29F - 0x41e00000, 0x41f00000, 0x41f00072, 0x42200000, - 0x42300000, 0x42300164, 0x42900000, 0x42900062, - 0x4290006f, 0x429000a4, 0x42900115, 0x43100000, - 0x43100027, 0x431000c2, 0x4310014d, 0x43200000, - 0x43220000, 0x43220033, 0x432200bd, 0x43220105, - 0x4322014d, 0x4325a000, 0x4325a033, 0x4325a0bd, - 0x4325a105, 0x4325a14d, 0x43700000, 0x43a00000, - 0x43b00000, 0x44400000, 0x44400031, 0x44400072, - // Entry 2A0 - 2BF - 0x4440010c, 0x44500000, 0x4450004b, 0x445000a4, - 0x4450012f, 0x44500131, 0x44e00000, 0x45000000, - 0x45000099, 0x450000b3, 0x450000d0, 0x4500010d, - 0x46100000, 0x46100099, 0x46400000, 0x464000a4, - 0x46400131, 0x46700000, 0x46700124, 0x46b00000, - 0x46b00123, 0x46f00000, 0x46f0006d, 0x46f0006f, - 0x47100000, 0x47600000, 0x47600127, 0x47a00000, - 0x48000000, 0x48200000, 0x48200129, 0x48a00000, - // Entry 2C0 - 2DF - 0x48a0005d, 0x48a0012b, 0x48e00000, 0x49400000, - 0x49400106, 0x4a400000, 0x4a4000d4, 0x4a900000, - 0x4a9000ba, 0x4ac00000, 0x4ac00053, 0x4ae00000, - 0x4ae00130, 0x4b400000, 0x4b400099, 0x4b4000e8, - 0x4bc00000, 0x4bc05000, 0x4bc05024, 0x4bc20000, - 0x4bc20137, 0x4bc5a000, 0x4bc5a137, 0x4be00000, - 0x4be5a000, 0x4be5a0b4, 0x4bef1000, 0x4bef10b4, - 0x4c000000, 0x4c300000, 0x4c30013e, 0x4c900000, - // Entry 2E0 - 2FF - 0x4c900001, 0x4cc00000, 0x4cc0012f, 0x4ce00000, - 0x4cf00000, 0x4cf0004e, 0x4e500000, 0x4e500114, - 0x4f200000, 0x4fb00000, 0x4fb00131, 0x50900000, - 0x50900052, 0x51200000, 0x51200001, 0x51800000, - 0x5180003b, 0x518000d6, 0x51f00000, 0x51f3b000, - 0x51f3b053, 0x51f3c000, 0x51f3c08d, 0x52800000, - 0x528000ba, 0x52900000, 0x5293b000, 0x5293b053, - 0x5293b08d, 0x5293b0c6, 0x5293b10d, 0x5293c000, - // Entry 300 - 31F - 0x5293c08d, 0x5293c0c6, 0x5293c12e, 0x52f00000, - 0x52f00161, -} // Size: 3116 bytes - -const specialTagsStr string = "ca-ES-valencia en-US-u-va-posix" - -// Total table size 3147 bytes (3KiB); checksum: 6772C83C diff --git a/backend/vendor/golang.org/x/text/internal/language/compact/tags.go b/backend/vendor/golang.org/x/text/internal/language/compact/tags.go deleted file mode 100644 index ca135d29..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compact/tags.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package compact - -var ( - und = Tag{} - - Und Tag = Tag{} - - Afrikaans Tag = Tag{language: afIndex, locale: afIndex} - Amharic Tag = Tag{language: amIndex, locale: amIndex} - Arabic Tag = Tag{language: arIndex, locale: arIndex} - ModernStandardArabic Tag = Tag{language: ar001Index, locale: ar001Index} - Azerbaijani Tag = Tag{language: azIndex, locale: azIndex} - Bulgarian Tag = Tag{language: bgIndex, locale: bgIndex} - Bengali Tag = Tag{language: bnIndex, locale: bnIndex} - Catalan Tag = Tag{language: caIndex, locale: caIndex} - Czech Tag = Tag{language: csIndex, locale: csIndex} - Danish Tag = Tag{language: daIndex, locale: daIndex} - German Tag = Tag{language: deIndex, locale: deIndex} - Greek Tag = Tag{language: elIndex, locale: elIndex} - English Tag = Tag{language: enIndex, locale: enIndex} - AmericanEnglish Tag = Tag{language: enUSIndex, locale: enUSIndex} - BritishEnglish Tag = Tag{language: enGBIndex, locale: enGBIndex} - Spanish Tag = Tag{language: esIndex, locale: esIndex} - EuropeanSpanish Tag = Tag{language: esESIndex, locale: esESIndex} - LatinAmericanSpanish Tag = Tag{language: es419Index, locale: es419Index} - Estonian Tag = Tag{language: etIndex, locale: etIndex} - Persian Tag = Tag{language: faIndex, locale: faIndex} - Finnish Tag = Tag{language: fiIndex, locale: fiIndex} - Filipino Tag = Tag{language: filIndex, locale: filIndex} - French Tag = Tag{language: frIndex, locale: frIndex} - CanadianFrench Tag = Tag{language: frCAIndex, locale: frCAIndex} - Gujarati Tag = Tag{language: guIndex, locale: guIndex} - Hebrew Tag = Tag{language: heIndex, locale: heIndex} - Hindi Tag = Tag{language: hiIndex, locale: hiIndex} - Croatian Tag = Tag{language: hrIndex, locale: hrIndex} - Hungarian Tag = Tag{language: huIndex, locale: huIndex} - Armenian Tag = Tag{language: hyIndex, locale: hyIndex} - Indonesian Tag = Tag{language: idIndex, locale: idIndex} - Icelandic Tag = Tag{language: isIndex, locale: isIndex} - Italian Tag = Tag{language: itIndex, locale: itIndex} - Japanese Tag = Tag{language: jaIndex, locale: jaIndex} - Georgian Tag = Tag{language: kaIndex, locale: kaIndex} - Kazakh Tag = Tag{language: kkIndex, locale: kkIndex} - Khmer Tag = Tag{language: kmIndex, locale: kmIndex} - Kannada Tag = Tag{language: knIndex, locale: knIndex} - Korean Tag = Tag{language: koIndex, locale: koIndex} - Kirghiz Tag = Tag{language: kyIndex, locale: kyIndex} - Lao Tag = Tag{language: loIndex, locale: loIndex} - Lithuanian Tag = Tag{language: ltIndex, locale: ltIndex} - Latvian Tag = Tag{language: lvIndex, locale: lvIndex} - Macedonian Tag = Tag{language: mkIndex, locale: mkIndex} - Malayalam Tag = Tag{language: mlIndex, locale: mlIndex} - Mongolian Tag = Tag{language: mnIndex, locale: mnIndex} - Marathi Tag = Tag{language: mrIndex, locale: mrIndex} - Malay Tag = Tag{language: msIndex, locale: msIndex} - Burmese Tag = Tag{language: myIndex, locale: myIndex} - Nepali Tag = Tag{language: neIndex, locale: neIndex} - Dutch Tag = Tag{language: nlIndex, locale: nlIndex} - Norwegian Tag = Tag{language: noIndex, locale: noIndex} - Punjabi Tag = Tag{language: paIndex, locale: paIndex} - Polish Tag = Tag{language: plIndex, locale: plIndex} - Portuguese Tag = Tag{language: ptIndex, locale: ptIndex} - BrazilianPortuguese Tag = Tag{language: ptBRIndex, locale: ptBRIndex} - EuropeanPortuguese Tag = Tag{language: ptPTIndex, locale: ptPTIndex} - Romanian Tag = Tag{language: roIndex, locale: roIndex} - Russian Tag = Tag{language: ruIndex, locale: ruIndex} - Sinhala Tag = Tag{language: siIndex, locale: siIndex} - Slovak Tag = Tag{language: skIndex, locale: skIndex} - Slovenian Tag = Tag{language: slIndex, locale: slIndex} - Albanian Tag = Tag{language: sqIndex, locale: sqIndex} - Serbian Tag = Tag{language: srIndex, locale: srIndex} - SerbianLatin Tag = Tag{language: srLatnIndex, locale: srLatnIndex} - Swedish Tag = Tag{language: svIndex, locale: svIndex} - Swahili Tag = Tag{language: swIndex, locale: swIndex} - Tamil Tag = Tag{language: taIndex, locale: taIndex} - Telugu Tag = Tag{language: teIndex, locale: teIndex} - Thai Tag = Tag{language: thIndex, locale: thIndex} - Turkish Tag = Tag{language: trIndex, locale: trIndex} - Ukrainian Tag = Tag{language: ukIndex, locale: ukIndex} - Urdu Tag = Tag{language: urIndex, locale: urIndex} - Uzbek Tag = Tag{language: uzIndex, locale: uzIndex} - Vietnamese Tag = Tag{language: viIndex, locale: viIndex} - Chinese Tag = Tag{language: zhIndex, locale: zhIndex} - SimplifiedChinese Tag = Tag{language: zhHansIndex, locale: zhHansIndex} - TraditionalChinese Tag = Tag{language: zhHantIndex, locale: zhHantIndex} - Zulu Tag = Tag{language: zuIndex, locale: zuIndex} -) diff --git a/backend/vendor/golang.org/x/text/internal/language/compose.go b/backend/vendor/golang.org/x/text/internal/language/compose.go deleted file mode 100644 index 4ae78e0f..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/compose.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "sort" - "strings" -) - -// A Builder allows constructing a Tag from individual components. -// Its main user is Compose in the top-level language package. -type Builder struct { - Tag Tag - - private string // the x extension - variants []string - extensions []string -} - -// Make returns a new Tag from the current settings. -func (b *Builder) Make() Tag { - t := b.Tag - - if len(b.extensions) > 0 || len(b.variants) > 0 { - sort.Sort(sortVariants(b.variants)) - sort.Strings(b.extensions) - - if b.private != "" { - b.extensions = append(b.extensions, b.private) - } - n := maxCoreSize + tokenLen(b.variants...) + tokenLen(b.extensions...) - buf := make([]byte, n) - p := t.genCoreBytes(buf) - t.pVariant = byte(p) - p += appendTokens(buf[p:], b.variants...) - t.pExt = uint16(p) - p += appendTokens(buf[p:], b.extensions...) - t.str = string(buf[:p]) - // We may not always need to remake the string, but when or when not - // to do so is rather tricky. - scan := makeScanner(buf[:p]) - t, _ = parse(&scan, "") - return t - - } else if b.private != "" { - t.str = b.private - t.RemakeString() - } - return t -} - -// SetTag copies all the settings from a given Tag. Any previously set values -// are discarded. -func (b *Builder) SetTag(t Tag) { - b.Tag.LangID = t.LangID - b.Tag.RegionID = t.RegionID - b.Tag.ScriptID = t.ScriptID - // TODO: optimize - b.variants = b.variants[:0] - if variants := t.Variants(); variants != "" { - for _, vr := range strings.Split(variants[1:], "-") { - b.variants = append(b.variants, vr) - } - } - b.extensions, b.private = b.extensions[:0], "" - for _, e := range t.Extensions() { - b.AddExt(e) - } -} - -// AddExt adds extension e to the tag. e must be a valid extension as returned -// by Tag.Extension. If the extension already exists, it will be discarded, -// except for a -u extension, where non-existing key-type pairs will added. -func (b *Builder) AddExt(e string) { - if e[0] == 'x' { - if b.private == "" { - b.private = e - } - return - } - for i, s := range b.extensions { - if s[0] == e[0] { - if e[0] == 'u' { - b.extensions[i] += e[1:] - } - return - } - } - b.extensions = append(b.extensions, e) -} - -// SetExt sets the extension e to the tag. e must be a valid extension as -// returned by Tag.Extension. If the extension already exists, it will be -// overwritten, except for a -u extension, where the individual key-type pairs -// will be set. -func (b *Builder) SetExt(e string) { - if e[0] == 'x' { - b.private = e - return - } - for i, s := range b.extensions { - if s[0] == e[0] { - if e[0] == 'u' { - b.extensions[i] = e + s[1:] - } else { - b.extensions[i] = e - } - return - } - } - b.extensions = append(b.extensions, e) -} - -// AddVariant adds any number of variants. -func (b *Builder) AddVariant(v ...string) { - for _, v := range v { - if v != "" { - b.variants = append(b.variants, v) - } - } -} - -// ClearVariants removes any variants previously added, including those -// copied from a Tag in SetTag. -func (b *Builder) ClearVariants() { - b.variants = b.variants[:0] -} - -// ClearExtensions removes any extensions previously added, including those -// copied from a Tag in SetTag. -func (b *Builder) ClearExtensions() { - b.private = "" - b.extensions = b.extensions[:0] -} - -func tokenLen(token ...string) (n int) { - for _, t := range token { - n += len(t) + 1 - } - return -} - -func appendTokens(b []byte, token ...string) int { - p := 0 - for _, t := range token { - b[p] = '-' - copy(b[p+1:], t) - p += 1 + len(t) - } - return p -} - -type sortVariants []string - -func (s sortVariants) Len() int { - return len(s) -} - -func (s sortVariants) Swap(i, j int) { - s[j], s[i] = s[i], s[j] -} - -func (s sortVariants) Less(i, j int) bool { - return variantIndex[s[i]] < variantIndex[s[j]] -} diff --git a/backend/vendor/golang.org/x/text/internal/language/coverage.go b/backend/vendor/golang.org/x/text/internal/language/coverage.go deleted file mode 100644 index 9b20b88f..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/coverage.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -// BaseLanguages returns the list of all supported base languages. It generates -// the list by traversing the internal structures. -func BaseLanguages() []Language { - base := make([]Language, 0, NumLanguages) - for i := 0; i < langNoIndexOffset; i++ { - // We included "und" already for the value 0. - if i != nonCanonicalUnd { - base = append(base, Language(i)) - } - } - i := langNoIndexOffset - for _, v := range langNoIndex { - for k := 0; k < 8; k++ { - if v&1 == 1 { - base = append(base, Language(i)) - } - v >>= 1 - i++ - } - } - return base -} diff --git a/backend/vendor/golang.org/x/text/internal/language/language.go b/backend/vendor/golang.org/x/text/internal/language/language.go deleted file mode 100644 index 09d41c73..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/language.go +++ /dev/null @@ -1,627 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go gen_common.go -output tables.go - -package language // import "golang.org/x/text/internal/language" - -// TODO: Remove above NOTE after: -// - verifying that tables are dropped correctly (most notably matcher tables). - -import ( - "errors" - "fmt" - "strings" -) - -const ( - // maxCoreSize is the maximum size of a BCP 47 tag without variants and - // extensions. Equals max lang (3) + script (4) + max reg (3) + 2 dashes. - maxCoreSize = 12 - - // max99thPercentileSize is a somewhat arbitrary buffer size that presumably - // is large enough to hold at least 99% of the BCP 47 tags. - max99thPercentileSize = 32 - - // maxSimpleUExtensionSize is the maximum size of a -u extension with one - // key-type pair. Equals len("-u-") + key (2) + dash + max value (8). - maxSimpleUExtensionSize = 14 -) - -// Tag represents a BCP 47 language tag. It is used to specify an instance of a -// specific language or locale. All language tag values are guaranteed to be -// well-formed. The zero value of Tag is Und. -type Tag struct { - // TODO: the following fields have the form TagTypeID. This name is chosen - // to allow refactoring the public package without conflicting with its - // Base, Script, and Region methods. Once the transition is fully completed - // the ID can be stripped from the name. - - LangID Language - RegionID Region - // TODO: we will soon run out of positions for ScriptID. Idea: instead of - // storing lang, region, and ScriptID codes, store only the compact index and - // have a lookup table from this code to its expansion. This greatly speeds - // up table lookup, speed up common variant cases. - // This will also immediately free up 3 extra bytes. Also, the pVariant - // field can now be moved to the lookup table, as the compact index uniquely - // determines the offset of a possible variant. - ScriptID Script - pVariant byte // offset in str, includes preceding '-' - pExt uint16 // offset of first extension, includes preceding '-' - - // str is the string representation of the Tag. It will only be used if the - // tag has variants or extensions. - str string -} - -// Make is a convenience wrapper for Parse that omits the error. -// In case of an error, a sensible default is returned. -func Make(s string) Tag { - t, _ := Parse(s) - return t -} - -// Raw returns the raw base language, script and region, without making an -// attempt to infer their values. -// TODO: consider removing -func (t Tag) Raw() (b Language, s Script, r Region) { - return t.LangID, t.ScriptID, t.RegionID -} - -// equalTags compares language, script and region subtags only. -func (t Tag) equalTags(a Tag) bool { - return t.LangID == a.LangID && t.ScriptID == a.ScriptID && t.RegionID == a.RegionID -} - -// IsRoot returns true if t is equal to language "und". -func (t Tag) IsRoot() bool { - if int(t.pVariant) < len(t.str) { - return false - } - return t.equalTags(Und) -} - -// IsPrivateUse reports whether the Tag consists solely of an IsPrivateUse use -// tag. -func (t Tag) IsPrivateUse() bool { - return t.str != "" && t.pVariant == 0 -} - -// RemakeString is used to update t.str in case lang, script or region changed. -// It is assumed that pExt and pVariant still point to the start of the -// respective parts. -func (t *Tag) RemakeString() { - if t.str == "" { - return - } - extra := t.str[t.pVariant:] - if t.pVariant > 0 { - extra = extra[1:] - } - if t.equalTags(Und) && strings.HasPrefix(extra, "x-") { - t.str = extra - t.pVariant = 0 - t.pExt = 0 - return - } - var buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases. - b := buf[:t.genCoreBytes(buf[:])] - if extra != "" { - diff := len(b) - int(t.pVariant) - b = append(b, '-') - b = append(b, extra...) - t.pVariant = uint8(int(t.pVariant) + diff) - t.pExt = uint16(int(t.pExt) + diff) - } else { - t.pVariant = uint8(len(b)) - t.pExt = uint16(len(b)) - } - t.str = string(b) -} - -// genCoreBytes writes a string for the base languages, script and region tags -// to the given buffer and returns the number of bytes written. It will never -// write more than maxCoreSize bytes. -func (t *Tag) genCoreBytes(buf []byte) int { - n := t.LangID.StringToBuf(buf[:]) - if t.ScriptID != 0 { - n += copy(buf[n:], "-") - n += copy(buf[n:], t.ScriptID.String()) - } - if t.RegionID != 0 { - n += copy(buf[n:], "-") - n += copy(buf[n:], t.RegionID.String()) - } - return n -} - -// String returns the canonical string representation of the language tag. -func (t Tag) String() string { - if t.str != "" { - return t.str - } - if t.ScriptID == 0 && t.RegionID == 0 { - return t.LangID.String() - } - buf := [maxCoreSize]byte{} - return string(buf[:t.genCoreBytes(buf[:])]) -} - -// MarshalText implements encoding.TextMarshaler. -func (t Tag) MarshalText() (text []byte, err error) { - if t.str != "" { - text = append(text, t.str...) - } else if t.ScriptID == 0 && t.RegionID == 0 { - text = append(text, t.LangID.String()...) - } else { - buf := [maxCoreSize]byte{} - text = buf[:t.genCoreBytes(buf[:])] - } - return text, nil -} - -// UnmarshalText implements encoding.TextUnmarshaler. -func (t *Tag) UnmarshalText(text []byte) error { - tag, err := Parse(string(text)) - *t = tag - return err -} - -// Variants returns the part of the tag holding all variants or the empty string -// if there are no variants defined. -func (t Tag) Variants() string { - if t.pVariant == 0 { - return "" - } - return t.str[t.pVariant:t.pExt] -} - -// VariantOrPrivateUseTags returns variants or private use tags. -func (t Tag) VariantOrPrivateUseTags() string { - if t.pExt > 0 { - return t.str[t.pVariant:t.pExt] - } - return t.str[t.pVariant:] -} - -// HasString reports whether this tag defines more than just the raw -// components. -func (t Tag) HasString() bool { - return t.str != "" -} - -// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a -// specific language are substituted with fields from the parent language. -// The parent for a language may change for newer versions of CLDR. -func (t Tag) Parent() Tag { - if t.str != "" { - // Strip the variants and extensions. - b, s, r := t.Raw() - t = Tag{LangID: b, ScriptID: s, RegionID: r} - if t.RegionID == 0 && t.ScriptID != 0 && t.LangID != 0 { - base, _ := addTags(Tag{LangID: t.LangID}) - if base.ScriptID == t.ScriptID { - return Tag{LangID: t.LangID} - } - } - return t - } - if t.LangID != 0 { - if t.RegionID != 0 { - maxScript := t.ScriptID - if maxScript == 0 { - max, _ := addTags(t) - maxScript = max.ScriptID - } - - for i := range parents { - if Language(parents[i].lang) == t.LangID && Script(parents[i].maxScript) == maxScript { - for _, r := range parents[i].fromRegion { - if Region(r) == t.RegionID { - return Tag{ - LangID: t.LangID, - ScriptID: Script(parents[i].script), - RegionID: Region(parents[i].toRegion), - } - } - } - } - } - - // Strip the script if it is the default one. - base, _ := addTags(Tag{LangID: t.LangID}) - if base.ScriptID != maxScript { - return Tag{LangID: t.LangID, ScriptID: maxScript} - } - return Tag{LangID: t.LangID} - } else if t.ScriptID != 0 { - // The parent for an base-script pair with a non-default script is - // "und" instead of the base language. - base, _ := addTags(Tag{LangID: t.LangID}) - if base.ScriptID != t.ScriptID { - return Und - } - return Tag{LangID: t.LangID} - } - } - return Und -} - -// ParseExtension parses s as an extension and returns it on success. -func ParseExtension(s string) (ext string, err error) { - defer func() { - if recover() != nil { - ext = "" - err = ErrSyntax - } - }() - - scan := makeScannerString(s) - var end int - if n := len(scan.token); n != 1 { - return "", ErrSyntax - } - scan.toLower(0, len(scan.b)) - end = parseExtension(&scan) - if end != len(s) { - return "", ErrSyntax - } - return string(scan.b), nil -} - -// HasVariants reports whether t has variants. -func (t Tag) HasVariants() bool { - return uint16(t.pVariant) < t.pExt -} - -// HasExtensions reports whether t has extensions. -func (t Tag) HasExtensions() bool { - return int(t.pExt) < len(t.str) -} - -// Extension returns the extension of type x for tag t. It will return -// false for ok if t does not have the requested extension. The returned -// extension will be invalid in this case. -func (t Tag) Extension(x byte) (ext string, ok bool) { - for i := int(t.pExt); i < len(t.str)-1; { - var ext string - i, ext = getExtension(t.str, i) - if ext[0] == x { - return ext, true - } - } - return "", false -} - -// Extensions returns all extensions of t. -func (t Tag) Extensions() []string { - e := []string{} - for i := int(t.pExt); i < len(t.str)-1; { - var ext string - i, ext = getExtension(t.str, i) - e = append(e, ext) - } - return e -} - -// TypeForKey returns the type associated with the given key, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// TypeForKey will traverse the inheritance chain to get the correct value. -// -// If there are multiple types associated with a key, only the first will be -// returned. If there is no type associated with a key, it returns the empty -// string. -func (t Tag) TypeForKey(key string) string { - if _, start, end, _ := t.findTypeForKey(key); end != start { - s := t.str[start:end] - if p := strings.IndexByte(s, '-'); p >= 0 { - s = s[:p] - } - return s - } - return "" -} - -var ( - errPrivateUse = errors.New("cannot set a key on a private use tag") - errInvalidArguments = errors.New("invalid key or type") -) - -// SetTypeForKey returns a new Tag with the key set to type, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// An empty value removes an existing pair with the same key. -func (t Tag) SetTypeForKey(key, value string) (Tag, error) { - if t.IsPrivateUse() { - return t, errPrivateUse - } - if len(key) != 2 { - return t, errInvalidArguments - } - - // Remove the setting if value is "". - if value == "" { - start, sep, end, _ := t.findTypeForKey(key) - if start != sep { - // Remove a possible empty extension. - switch { - case t.str[start-2] != '-': // has previous elements. - case end == len(t.str), // end of string - end+2 < len(t.str) && t.str[end+2] == '-': // end of extension - start -= 2 - } - if start == int(t.pVariant) && end == len(t.str) { - t.str = "" - t.pVariant, t.pExt = 0, 0 - } else { - t.str = fmt.Sprintf("%s%s", t.str[:start], t.str[end:]) - } - } - return t, nil - } - - if len(value) < 3 || len(value) > 8 { - return t, errInvalidArguments - } - - var ( - buf [maxCoreSize + maxSimpleUExtensionSize]byte - uStart int // start of the -u extension. - ) - - // Generate the tag string if needed. - if t.str == "" { - uStart = t.genCoreBytes(buf[:]) - buf[uStart] = '-' - uStart++ - } - - // Create new key-type pair and parse it to verify. - b := buf[uStart:] - copy(b, "u-") - copy(b[2:], key) - b[4] = '-' - b = b[:5+copy(b[5:], value)] - scan := makeScanner(b) - if parseExtensions(&scan); scan.err != nil { - return t, scan.err - } - - // Assemble the replacement string. - if t.str == "" { - t.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1) - t.str = string(buf[:uStart+len(b)]) - } else { - s := t.str - start, sep, end, hasExt := t.findTypeForKey(key) - if start == sep { - if hasExt { - b = b[2:] - } - t.str = fmt.Sprintf("%s-%s%s", s[:sep], b, s[end:]) - } else { - t.str = fmt.Sprintf("%s-%s%s", s[:start+3], value, s[end:]) - } - } - return t, nil -} - -// findTypeForKey returns the start and end position for the type corresponding -// to key or the point at which to insert the key-value pair if the type -// wasn't found. The hasExt return value reports whether an -u extension was present. -// Note: the extensions are typically very small and are likely to contain -// only one key-type pair. -func (t Tag) findTypeForKey(key string) (start, sep, end int, hasExt bool) { - p := int(t.pExt) - if len(key) != 2 || p == len(t.str) || p == 0 { - return p, p, p, false - } - s := t.str - - // Find the correct extension. - for p++; s[p] != 'u'; p++ { - if s[p] > 'u' { - p-- - return p, p, p, false - } - if p = nextExtension(s, p); p == len(s) { - return len(s), len(s), len(s), false - } - } - // Proceed to the hyphen following the extension name. - p++ - - // curKey is the key currently being processed. - curKey := "" - - // Iterate over keys until we get the end of a section. - for { - end = p - for p++; p < len(s) && s[p] != '-'; p++ { - } - n := p - end - 1 - if n <= 2 && curKey == key { - if sep < end { - sep++ - } - return start, sep, end, true - } - switch n { - case 0, // invalid string - 1: // next extension - return end, end, end, true - case 2: - // next key - curKey = s[end+1 : p] - if curKey > key { - return end, end, end, true - } - start = end - sep = p - } - } -} - -// ParseBase parses a 2- or 3-letter ISO 639 code. -// It returns a ValueError if s is a well-formed but unknown language identifier -// or another error if another error occurred. -func ParseBase(s string) (l Language, err error) { - defer func() { - if recover() != nil { - l = 0 - err = ErrSyntax - } - }() - - if n := len(s); n < 2 || 3 < n { - return 0, ErrSyntax - } - var buf [3]byte - return getLangID(buf[:copy(buf[:], s)]) -} - -// ParseScript parses a 4-letter ISO 15924 code. -// It returns a ValueError if s is a well-formed but unknown script identifier -// or another error if another error occurred. -func ParseScript(s string) (scr Script, err error) { - defer func() { - if recover() != nil { - scr = 0 - err = ErrSyntax - } - }() - - if len(s) != 4 { - return 0, ErrSyntax - } - var buf [4]byte - return getScriptID(script, buf[:copy(buf[:], s)]) -} - -// EncodeM49 returns the Region for the given UN M.49 code. -// It returns an error if r is not a valid code. -func EncodeM49(r int) (Region, error) { - return getRegionM49(r) -} - -// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code. -// It returns a ValueError if s is a well-formed but unknown region identifier -// or another error if another error occurred. -func ParseRegion(s string) (r Region, err error) { - defer func() { - if recover() != nil { - r = 0 - err = ErrSyntax - } - }() - - if n := len(s); n < 2 || 3 < n { - return 0, ErrSyntax - } - var buf [3]byte - return getRegionID(buf[:copy(buf[:], s)]) -} - -// IsCountry returns whether this region is a country or autonomous area. This -// includes non-standard definitions from CLDR. -func (r Region) IsCountry() bool { - if r == 0 || r.IsGroup() || r.IsPrivateUse() && r != _XK { - return false - } - return true -} - -// IsGroup returns whether this region defines a collection of regions. This -// includes non-standard definitions from CLDR. -func (r Region) IsGroup() bool { - if r == 0 { - return false - } - return int(regionInclusion[r]) < len(regionContainment) -} - -// Contains returns whether Region c is contained by Region r. It returns true -// if c == r. -func (r Region) Contains(c Region) bool { - if r == c { - return true - } - g := regionInclusion[r] - if g >= nRegionGroups { - return false - } - m := regionContainment[g] - - d := regionInclusion[c] - b := regionInclusionBits[d] - - // A contained country may belong to multiple disjoint groups. Matching any - // of these indicates containment. If the contained region is a group, it - // must strictly be a subset. - if d >= nRegionGroups { - return b&m != 0 - } - return b&^m == 0 -} - -var errNoTLD = errors.New("language: region is not a valid ccTLD") - -// TLD returns the country code top-level domain (ccTLD). UK is returned for GB. -// In all other cases it returns either the region itself or an error. -// -// This method may return an error for a region for which there exists a -// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The -// region will already be canonicalized it was obtained from a Tag that was -// obtained using any of the default methods. -func (r Region) TLD() (Region, error) { - // See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the - // difference between ISO 3166-1 and IANA ccTLD. - if r == _GB { - r = _UK - } - if (r.typ() & ccTLD) == 0 { - return 0, errNoTLD - } - return r, nil -} - -// Canonicalize returns the region or a possible replacement if the region is -// deprecated. It will not return a replacement for deprecated regions that -// are split into multiple regions. -func (r Region) Canonicalize() Region { - if cr := normRegion(r); cr != 0 { - return cr - } - return r -} - -// Variant represents a registered variant of a language as defined by BCP 47. -type Variant struct { - ID uint8 - str string -} - -// ParseVariant parses and returns a Variant. An error is returned if s is not -// a valid variant. -func ParseVariant(s string) (v Variant, err error) { - defer func() { - if recover() != nil { - v = Variant{} - err = ErrSyntax - } - }() - - s = strings.ToLower(s) - if id, ok := variantIndex[s]; ok { - return Variant{id, s}, nil - } - return Variant{}, NewValueError([]byte(s)) -} - -// String returns the string representation of the variant. -func (v Variant) String() string { - return v.str -} diff --git a/backend/vendor/golang.org/x/text/internal/language/lookup.go b/backend/vendor/golang.org/x/text/internal/language/lookup.go deleted file mode 100644 index 231b4fbd..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/lookup.go +++ /dev/null @@ -1,412 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "bytes" - "fmt" - "sort" - "strconv" - - "golang.org/x/text/internal/tag" -) - -// findIndex tries to find the given tag in idx and returns a standardized error -// if it could not be found. -func findIndex(idx tag.Index, key []byte, form string) (index int, err error) { - if !tag.FixCase(form, key) { - return 0, ErrSyntax - } - i := idx.Index(key) - if i == -1 { - return 0, NewValueError(key) - } - return i, nil -} - -func searchUint(imap []uint16, key uint16) int { - return sort.Search(len(imap), func(i int) bool { - return imap[i] >= key - }) -} - -type Language uint16 - -// getLangID returns the langID of s if s is a canonical subtag -// or langUnknown if s is not a canonical subtag. -func getLangID(s []byte) (Language, error) { - if len(s) == 2 { - return getLangISO2(s) - } - return getLangISO3(s) -} - -// TODO language normalization as well as the AliasMaps could be moved to the -// higher level package, but it is a bit tricky to separate the generation. - -func (id Language) Canonicalize() (Language, AliasType) { - return normLang(id) -} - -// normLang returns the mapped langID of id according to mapping m. -func normLang(id Language) (Language, AliasType) { - k := sort.Search(len(AliasMap), func(i int) bool { - return AliasMap[i].From >= uint16(id) - }) - if k < len(AliasMap) && AliasMap[k].From == uint16(id) { - return Language(AliasMap[k].To), AliasTypes[k] - } - return id, AliasTypeUnknown -} - -// getLangISO2 returns the langID for the given 2-letter ISO language code -// or unknownLang if this does not exist. -func getLangISO2(s []byte) (Language, error) { - if !tag.FixCase("zz", s) { - return 0, ErrSyntax - } - if i := lang.Index(s); i != -1 && lang.Elem(i)[3] != 0 { - return Language(i), nil - } - return 0, NewValueError(s) -} - -const base = 'z' - 'a' + 1 - -func strToInt(s []byte) uint { - v := uint(0) - for i := 0; i < len(s); i++ { - v *= base - v += uint(s[i] - 'a') - } - return v -} - -// converts the given integer to the original ASCII string passed to strToInt. -// len(s) must match the number of characters obtained. -func intToStr(v uint, s []byte) { - for i := len(s) - 1; i >= 0; i-- { - s[i] = byte(v%base) + 'a' - v /= base - } -} - -// getLangISO3 returns the langID for the given 3-letter ISO language code -// or unknownLang if this does not exist. -func getLangISO3(s []byte) (Language, error) { - if tag.FixCase("und", s) { - // first try to match canonical 3-letter entries - for i := lang.Index(s[:2]); i != -1; i = lang.Next(s[:2], i) { - if e := lang.Elem(i); e[3] == 0 && e[2] == s[2] { - // We treat "und" as special and always translate it to "unspecified". - // Note that ZZ and Zzzz are private use and are not treated as - // unspecified by default. - id := Language(i) - if id == nonCanonicalUnd { - return 0, nil - } - return id, nil - } - } - if i := altLangISO3.Index(s); i != -1 { - return Language(altLangIndex[altLangISO3.Elem(i)[3]]), nil - } - n := strToInt(s) - if langNoIndex[n/8]&(1<<(n%8)) != 0 { - return Language(n) + langNoIndexOffset, nil - } - // Check for non-canonical uses of ISO3. - for i := lang.Index(s[:1]); i != -1; i = lang.Next(s[:1], i) { - if e := lang.Elem(i); e[2] == s[1] && e[3] == s[2] { - return Language(i), nil - } - } - return 0, NewValueError(s) - } - return 0, ErrSyntax -} - -// StringToBuf writes the string to b and returns the number of bytes -// written. cap(b) must be >= 3. -func (id Language) StringToBuf(b []byte) int { - if id >= langNoIndexOffset { - intToStr(uint(id)-langNoIndexOffset, b[:3]) - return 3 - } else if id == 0 { - return copy(b, "und") - } - l := lang[id<<2:] - if l[3] == 0 { - return copy(b, l[:3]) - } - return copy(b, l[:2]) -} - -// String returns the BCP 47 representation of the langID. -// Use b as variable name, instead of id, to ensure the variable -// used is consistent with that of Base in which this type is embedded. -func (b Language) String() string { - if b == 0 { - return "und" - } else if b >= langNoIndexOffset { - b -= langNoIndexOffset - buf := [3]byte{} - intToStr(uint(b), buf[:]) - return string(buf[:]) - } - l := lang.Elem(int(b)) - if l[3] == 0 { - return l[:3] - } - return l[:2] -} - -// ISO3 returns the ISO 639-3 language code. -func (b Language) ISO3() string { - if b == 0 || b >= langNoIndexOffset { - return b.String() - } - l := lang.Elem(int(b)) - if l[3] == 0 { - return l[:3] - } else if l[2] == 0 { - return altLangISO3.Elem(int(l[3]))[:3] - } - // This allocation will only happen for 3-letter ISO codes - // that are non-canonical BCP 47 language identifiers. - return l[0:1] + l[2:4] -} - -// IsPrivateUse reports whether this language code is reserved for private use. -func (b Language) IsPrivateUse() bool { - return langPrivateStart <= b && b <= langPrivateEnd -} - -// SuppressScript returns the script marked as SuppressScript in the IANA -// language tag repository, or 0 if there is no such script. -func (b Language) SuppressScript() Script { - if b < langNoIndexOffset { - return Script(suppressScript[b]) - } - return 0 -} - -type Region uint16 - -// getRegionID returns the region id for s if s is a valid 2-letter region code -// or unknownRegion. -func getRegionID(s []byte) (Region, error) { - if len(s) == 3 { - if isAlpha(s[0]) { - return getRegionISO3(s) - } - if i, err := strconv.ParseUint(string(s), 10, 10); err == nil { - return getRegionM49(int(i)) - } - } - return getRegionISO2(s) -} - -// getRegionISO2 returns the regionID for the given 2-letter ISO country code -// or unknownRegion if this does not exist. -func getRegionISO2(s []byte) (Region, error) { - i, err := findIndex(regionISO, s, "ZZ") - if err != nil { - return 0, err - } - return Region(i) + isoRegionOffset, nil -} - -// getRegionISO3 returns the regionID for the given 3-letter ISO country code -// or unknownRegion if this does not exist. -func getRegionISO3(s []byte) (Region, error) { - if tag.FixCase("ZZZ", s) { - for i := regionISO.Index(s[:1]); i != -1; i = regionISO.Next(s[:1], i) { - if e := regionISO.Elem(i); e[2] == s[1] && e[3] == s[2] { - return Region(i) + isoRegionOffset, nil - } - } - for i := 0; i < len(altRegionISO3); i += 3 { - if tag.Compare(altRegionISO3[i:i+3], s) == 0 { - return Region(altRegionIDs[i/3]), nil - } - } - return 0, NewValueError(s) - } - return 0, ErrSyntax -} - -func getRegionM49(n int) (Region, error) { - if 0 < n && n <= 999 { - const ( - searchBits = 7 - regionBits = 9 - regionMask = 1<> searchBits - buf := fromM49[m49Index[idx]:m49Index[idx+1]] - val := uint16(n) << regionBits // we rely on bits shifting out - i := sort.Search(len(buf), func(i int) bool { - return buf[i] >= val - }) - if r := fromM49[int(m49Index[idx])+i]; r&^regionMask == val { - return Region(r & regionMask), nil - } - } - var e ValueError - fmt.Fprint(bytes.NewBuffer([]byte(e.v[:])), n) - return 0, e -} - -// normRegion returns a region if r is deprecated or 0 otherwise. -// TODO: consider supporting BYS (-> BLR), CSK (-> 200 or CZ), PHI (-> PHL) and AFI (-> DJ). -// TODO: consider mapping split up regions to new most populous one (like CLDR). -func normRegion(r Region) Region { - m := regionOldMap - k := sort.Search(len(m), func(i int) bool { - return m[i].From >= uint16(r) - }) - if k < len(m) && m[k].From == uint16(r) { - return Region(m[k].To) - } - return 0 -} - -const ( - iso3166UserAssigned = 1 << iota - ccTLD - bcp47Region -) - -func (r Region) typ() byte { - return regionTypes[r] -} - -// String returns the BCP 47 representation for the region. -// It returns "ZZ" for an unspecified region. -func (r Region) String() string { - if r < isoRegionOffset { - if r == 0 { - return "ZZ" - } - return fmt.Sprintf("%03d", r.M49()) - } - r -= isoRegionOffset - return regionISO.Elem(int(r))[:2] -} - -// ISO3 returns the 3-letter ISO code of r. -// Note that not all regions have a 3-letter ISO code. -// In such cases this method returns "ZZZ". -func (r Region) ISO3() string { - if r < isoRegionOffset { - return "ZZZ" - } - r -= isoRegionOffset - reg := regionISO.Elem(int(r)) - switch reg[2] { - case 0: - return altRegionISO3[reg[3]:][:3] - case ' ': - return "ZZZ" - } - return reg[0:1] + reg[2:4] -} - -// M49 returns the UN M.49 encoding of r, or 0 if this encoding -// is not defined for r. -func (r Region) M49() int { - return int(m49[r]) -} - -// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This -// may include private-use tags that are assigned by CLDR and used in this -// implementation. So IsPrivateUse and IsCountry can be simultaneously true. -func (r Region) IsPrivateUse() bool { - return r.typ()&iso3166UserAssigned != 0 -} - -type Script uint16 - -// getScriptID returns the script id for string s. It assumes that s -// is of the format [A-Z][a-z]{3}. -func getScriptID(idx tag.Index, s []byte) (Script, error) { - i, err := findIndex(idx, s, "Zzzz") - return Script(i), err -} - -// String returns the script code in title case. -// It returns "Zzzz" for an unspecified script. -func (s Script) String() string { - if s == 0 { - return "Zzzz" - } - return script.Elem(int(s)) -} - -// IsPrivateUse reports whether this script code is reserved for private use. -func (s Script) IsPrivateUse() bool { - return _Qaaa <= s && s <= _Qabx -} - -const ( - maxAltTaglen = len("en-US-POSIX") - maxLen = maxAltTaglen -) - -var ( - // grandfatheredMap holds a mapping from legacy and grandfathered tags to - // their base language or index to more elaborate tag. - grandfatheredMap = map[[maxLen]byte]int16{ - [maxLen]byte{'a', 'r', 't', '-', 'l', 'o', 'j', 'b', 'a', 'n'}: _jbo, // art-lojban - [maxLen]byte{'i', '-', 'a', 'm', 'i'}: _ami, // i-ami - [maxLen]byte{'i', '-', 'b', 'n', 'n'}: _bnn, // i-bnn - [maxLen]byte{'i', '-', 'h', 'a', 'k'}: _hak, // i-hak - [maxLen]byte{'i', '-', 'k', 'l', 'i', 'n', 'g', 'o', 'n'}: _tlh, // i-klingon - [maxLen]byte{'i', '-', 'l', 'u', 'x'}: _lb, // i-lux - [maxLen]byte{'i', '-', 'n', 'a', 'v', 'a', 'j', 'o'}: _nv, // i-navajo - [maxLen]byte{'i', '-', 'p', 'w', 'n'}: _pwn, // i-pwn - [maxLen]byte{'i', '-', 't', 'a', 'o'}: _tao, // i-tao - [maxLen]byte{'i', '-', 't', 'a', 'y'}: _tay, // i-tay - [maxLen]byte{'i', '-', 't', 's', 'u'}: _tsu, // i-tsu - [maxLen]byte{'n', 'o', '-', 'b', 'o', 'k'}: _nb, // no-bok - [maxLen]byte{'n', 'o', '-', 'n', 'y', 'n'}: _nn, // no-nyn - [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'f', 'r'}: _sfb, // sgn-BE-FR - [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'n', 'l'}: _vgt, // sgn-BE-NL - [maxLen]byte{'s', 'g', 'n', '-', 'c', 'h', '-', 'd', 'e'}: _sgg, // sgn-CH-DE - [maxLen]byte{'z', 'h', '-', 'g', 'u', 'o', 'y', 'u'}: _cmn, // zh-guoyu - [maxLen]byte{'z', 'h', '-', 'h', 'a', 'k', 'k', 'a'}: _hak, // zh-hakka - [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n', '-', 'n', 'a', 'n'}: _nan, // zh-min-nan - [maxLen]byte{'z', 'h', '-', 'x', 'i', 'a', 'n', 'g'}: _hsn, // zh-xiang - - // Grandfathered tags with no modern replacement will be converted as - // follows: - [maxLen]byte{'c', 'e', 'l', '-', 'g', 'a', 'u', 'l', 'i', 's', 'h'}: -1, // cel-gaulish - [maxLen]byte{'e', 'n', '-', 'g', 'b', '-', 'o', 'e', 'd'}: -2, // en-GB-oed - [maxLen]byte{'i', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't'}: -3, // i-default - [maxLen]byte{'i', '-', 'e', 'n', 'o', 'c', 'h', 'i', 'a', 'n'}: -4, // i-enochian - [maxLen]byte{'i', '-', 'm', 'i', 'n', 'g', 'o'}: -5, // i-mingo - [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n'}: -6, // zh-min - - // CLDR-specific tag. - [maxLen]byte{'r', 'o', 'o', 't'}: 0, // root - [maxLen]byte{'e', 'n', '-', 'u', 's', '-', 'p', 'o', 's', 'i', 'x'}: -7, // en_US_POSIX" - } - - altTagIndex = [...]uint8{0, 17, 31, 45, 61, 74, 86, 102} - - altTags = "xtg-x-cel-gaulishen-GB-oxendicten-x-i-defaultund-x-i-enochiansee-x-i-mingonan-x-zh-minen-US-u-va-posix" -) - -func grandfathered(s [maxAltTaglen]byte) (t Tag, ok bool) { - if v, ok := grandfatheredMap[s]; ok { - if v < 0 { - return Make(altTags[altTagIndex[-v-1]:altTagIndex[-v]]), true - } - t.LangID = Language(v) - return t, true - } - return t, false -} diff --git a/backend/vendor/golang.org/x/text/internal/language/match.go b/backend/vendor/golang.org/x/text/internal/language/match.go deleted file mode 100644 index 75a2dbca..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/match.go +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import "errors" - -type scriptRegionFlags uint8 - -const ( - isList = 1 << iota - scriptInFrom - regionInFrom -) - -func (t *Tag) setUndefinedLang(id Language) { - if t.LangID == 0 { - t.LangID = id - } -} - -func (t *Tag) setUndefinedScript(id Script) { - if t.ScriptID == 0 { - t.ScriptID = id - } -} - -func (t *Tag) setUndefinedRegion(id Region) { - if t.RegionID == 0 || t.RegionID.Contains(id) { - t.RegionID = id - } -} - -// ErrMissingLikelyTagsData indicates no information was available -// to compute likely values of missing tags. -var ErrMissingLikelyTagsData = errors.New("missing likely tags data") - -// addLikelySubtags sets subtags to their most likely value, given the locale. -// In most cases this means setting fields for unknown values, but in some -// cases it may alter a value. It returns an ErrMissingLikelyTagsData error -// if the given locale cannot be expanded. -func (t Tag) addLikelySubtags() (Tag, error) { - id, err := addTags(t) - if err != nil { - return t, err - } else if id.equalTags(t) { - return t, nil - } - id.RemakeString() - return id, nil -} - -// specializeRegion attempts to specialize a group region. -func specializeRegion(t *Tag) bool { - if i := regionInclusion[t.RegionID]; i < nRegionGroups { - x := likelyRegionGroup[i] - if Language(x.lang) == t.LangID && Script(x.script) == t.ScriptID { - t.RegionID = Region(x.region) - } - return true - } - return false -} - -// Maximize returns a new tag with missing tags filled in. -func (t Tag) Maximize() (Tag, error) { - return addTags(t) -} - -func addTags(t Tag) (Tag, error) { - // We leave private use identifiers alone. - if t.IsPrivateUse() { - return t, nil - } - if t.ScriptID != 0 && t.RegionID != 0 { - if t.LangID != 0 { - // already fully specified - specializeRegion(&t) - return t, nil - } - // Search matches for und-script-region. Note that for these cases - // region will never be a group so there is no need to check for this. - list := likelyRegion[t.RegionID : t.RegionID+1] - if x := list[0]; x.flags&isList != 0 { - list = likelyRegionList[x.lang : x.lang+uint16(x.script)] - } - for _, x := range list { - // Deviating from the spec. See match_test.go for details. - if Script(x.script) == t.ScriptID { - t.setUndefinedLang(Language(x.lang)) - return t, nil - } - } - } - if t.LangID != 0 { - // Search matches for lang-script and lang-region, where lang != und. - if t.LangID < langNoIndexOffset { - x := likelyLang[t.LangID] - if x.flags&isList != 0 { - list := likelyLangList[x.region : x.region+uint16(x.script)] - if t.ScriptID != 0 { - for _, x := range list { - if Script(x.script) == t.ScriptID && x.flags&scriptInFrom != 0 { - t.setUndefinedRegion(Region(x.region)) - return t, nil - } - } - } else if t.RegionID != 0 { - count := 0 - goodScript := true - tt := t - for _, x := range list { - // We visit all entries for which the script was not - // defined, including the ones where the region was not - // defined. This allows for proper disambiguation within - // regions. - if x.flags&scriptInFrom == 0 && t.RegionID.Contains(Region(x.region)) { - tt.RegionID = Region(x.region) - tt.setUndefinedScript(Script(x.script)) - goodScript = goodScript && tt.ScriptID == Script(x.script) - count++ - } - } - if count == 1 { - return tt, nil - } - // Even if we fail to find a unique Region, we might have - // an unambiguous script. - if goodScript { - t.ScriptID = tt.ScriptID - } - } - } - } - } else { - // Search matches for und-script. - if t.ScriptID != 0 { - x := likelyScript[t.ScriptID] - if x.region != 0 { - t.setUndefinedRegion(Region(x.region)) - t.setUndefinedLang(Language(x.lang)) - return t, nil - } - } - // Search matches for und-region. If und-script-region exists, it would - // have been found earlier. - if t.RegionID != 0 { - if i := regionInclusion[t.RegionID]; i < nRegionGroups { - x := likelyRegionGroup[i] - if x.region != 0 { - t.setUndefinedLang(Language(x.lang)) - t.setUndefinedScript(Script(x.script)) - t.RegionID = Region(x.region) - } - } else { - x := likelyRegion[t.RegionID] - if x.flags&isList != 0 { - x = likelyRegionList[x.lang] - } - if x.script != 0 && x.flags != scriptInFrom { - t.setUndefinedLang(Language(x.lang)) - t.setUndefinedScript(Script(x.script)) - return t, nil - } - } - } - } - - // Search matches for lang. - if t.LangID < langNoIndexOffset { - x := likelyLang[t.LangID] - if x.flags&isList != 0 { - x = likelyLangList[x.region] - } - if x.region != 0 { - t.setUndefinedScript(Script(x.script)) - t.setUndefinedRegion(Region(x.region)) - } - specializeRegion(&t) - if t.LangID == 0 { - t.LangID = _en // default language - } - return t, nil - } - return t, ErrMissingLikelyTagsData -} - -func (t *Tag) setTagsFrom(id Tag) { - t.LangID = id.LangID - t.ScriptID = id.ScriptID - t.RegionID = id.RegionID -} - -// minimize removes the region or script subtags from t such that -// t.addLikelySubtags() == t.minimize().addLikelySubtags(). -func (t Tag) minimize() (Tag, error) { - t, err := minimizeTags(t) - if err != nil { - return t, err - } - t.RemakeString() - return t, nil -} - -// minimizeTags mimics the behavior of the ICU 51 C implementation. -func minimizeTags(t Tag) (Tag, error) { - if t.equalTags(Und) { - return t, nil - } - max, err := addTags(t) - if err != nil { - return t, err - } - for _, id := range [...]Tag{ - {LangID: t.LangID}, - {LangID: t.LangID, RegionID: t.RegionID}, - {LangID: t.LangID, ScriptID: t.ScriptID}, - } { - if x, err := addTags(id); err == nil && max.equalTags(x) { - t.setTagsFrom(id) - break - } - } - return t, nil -} diff --git a/backend/vendor/golang.org/x/text/internal/language/parse.go b/backend/vendor/golang.org/x/text/internal/language/parse.go deleted file mode 100644 index aad1e0ac..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/parse.go +++ /dev/null @@ -1,608 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "bytes" - "errors" - "fmt" - "sort" - - "golang.org/x/text/internal/tag" -) - -// isAlpha returns true if the byte is not a digit. -// b must be an ASCII letter or digit. -func isAlpha(b byte) bool { - return b > '9' -} - -// isAlphaNum returns true if the string contains only ASCII letters or digits. -func isAlphaNum(s []byte) bool { - for _, c := range s { - if !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') { - return false - } - } - return true -} - -// ErrSyntax is returned by any of the parsing functions when the -// input is not well-formed, according to BCP 47. -// TODO: return the position at which the syntax error occurred? -var ErrSyntax = errors.New("language: tag is not well-formed") - -// ErrDuplicateKey is returned when a tag contains the same key twice with -// different values in the -u section. -var ErrDuplicateKey = errors.New("language: different values for same key in -u extension") - -// ValueError is returned by any of the parsing functions when the -// input is well-formed but the respective subtag is not recognized -// as a valid value. -type ValueError struct { - v [8]byte -} - -// NewValueError creates a new ValueError. -func NewValueError(tag []byte) ValueError { - var e ValueError - copy(e.v[:], tag) - return e -} - -func (e ValueError) tag() []byte { - n := bytes.IndexByte(e.v[:], 0) - if n == -1 { - n = 8 - } - return e.v[:n] -} - -// Error implements the error interface. -func (e ValueError) Error() string { - return fmt.Sprintf("language: subtag %q is well-formed but unknown", e.tag()) -} - -// Subtag returns the subtag for which the error occurred. -func (e ValueError) Subtag() string { - return string(e.tag()) -} - -// scanner is used to scan BCP 47 tokens, which are separated by _ or -. -type scanner struct { - b []byte - bytes [max99thPercentileSize]byte - token []byte - start int // start position of the current token - end int // end position of the current token - next int // next point for scan - err error - done bool -} - -func makeScannerString(s string) scanner { - scan := scanner{} - if len(s) <= len(scan.bytes) { - scan.b = scan.bytes[:copy(scan.bytes[:], s)] - } else { - scan.b = []byte(s) - } - scan.init() - return scan -} - -// makeScanner returns a scanner using b as the input buffer. -// b is not copied and may be modified by the scanner routines. -func makeScanner(b []byte) scanner { - scan := scanner{b: b} - scan.init() - return scan -} - -func (s *scanner) init() { - for i, c := range s.b { - if c == '_' { - s.b[i] = '-' - } - } - s.scan() -} - -// restToLower converts the string between start and end to lower case. -func (s *scanner) toLower(start, end int) { - for i := start; i < end; i++ { - c := s.b[i] - if 'A' <= c && c <= 'Z' { - s.b[i] += 'a' - 'A' - } - } -} - -func (s *scanner) setError(e error) { - if s.err == nil || (e == ErrSyntax && s.err != ErrSyntax) { - s.err = e - } -} - -// resizeRange shrinks or grows the array at position oldStart such that -// a new string of size newSize can fit between oldStart and oldEnd. -// Sets the scan point to after the resized range. -func (s *scanner) resizeRange(oldStart, oldEnd, newSize int) { - s.start = oldStart - if end := oldStart + newSize; end != oldEnd { - diff := end - oldEnd - var b []byte - if n := len(s.b) + diff; n > cap(s.b) { - b = make([]byte, n) - copy(b, s.b[:oldStart]) - } else { - b = s.b[:n] - } - copy(b[end:], s.b[oldEnd:]) - s.b = b - s.next = end + (s.next - s.end) - s.end = end - } -} - -// replace replaces the current token with repl. -func (s *scanner) replace(repl string) { - s.resizeRange(s.start, s.end, len(repl)) - copy(s.b[s.start:], repl) -} - -// gobble removes the current token from the input. -// Caller must call scan after calling gobble. -func (s *scanner) gobble(e error) { - s.setError(e) - if s.start == 0 { - s.b = s.b[:+copy(s.b, s.b[s.next:])] - s.end = 0 - } else { - s.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])] - s.end = s.start - 1 - } - s.next = s.start -} - -// deleteRange removes the given range from s.b before the current token. -func (s *scanner) deleteRange(start, end int) { - s.b = s.b[:start+copy(s.b[start:], s.b[end:])] - diff := end - start - s.next -= diff - s.start -= diff - s.end -= diff -} - -// scan parses the next token of a BCP 47 string. Tokens that are larger -// than 8 characters or include non-alphanumeric characters result in an error -// and are gobbled and removed from the output. -// It returns the end position of the last token consumed. -func (s *scanner) scan() (end int) { - end = s.end - s.token = nil - for s.start = s.next; s.next < len(s.b); { - i := bytes.IndexByte(s.b[s.next:], '-') - if i == -1 { - s.end = len(s.b) - s.next = len(s.b) - i = s.end - s.start - } else { - s.end = s.next + i - s.next = s.end + 1 - } - token := s.b[s.start:s.end] - if i < 1 || i > 8 || !isAlphaNum(token) { - s.gobble(ErrSyntax) - continue - } - s.token = token - return end - } - if n := len(s.b); n > 0 && s.b[n-1] == '-' { - s.setError(ErrSyntax) - s.b = s.b[:len(s.b)-1] - } - s.done = true - return end -} - -// acceptMinSize parses multiple tokens of the given size or greater. -// It returns the end position of the last token consumed. -func (s *scanner) acceptMinSize(min int) (end int) { - end = s.end - s.scan() - for ; len(s.token) >= min; s.scan() { - end = s.end - } - return end -} - -// Parse parses the given BCP 47 string and returns a valid Tag. If parsing -// failed it returns an error and any part of the tag that could be parsed. -// If parsing succeeded but an unknown value was found, it returns -// ValueError. The Tag returned in this case is just stripped of the unknown -// value. All other values are preserved. It accepts tags in the BCP 47 format -// and extensions to this standard defined in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -func Parse(s string) (t Tag, err error) { - // TODO: consider supporting old-style locale key-value pairs. - if s == "" { - return Und, ErrSyntax - } - defer func() { - if recover() != nil { - t = Und - err = ErrSyntax - return - } - }() - if len(s) <= maxAltTaglen { - b := [maxAltTaglen]byte{} - for i, c := range s { - // Generating invalid UTF-8 is okay as it won't match. - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } else if c == '_' { - c = '-' - } - b[i] = byte(c) - } - if t, ok := grandfathered(b); ok { - return t, nil - } - } - scan := makeScannerString(s) - return parse(&scan, s) -} - -func parse(scan *scanner, s string) (t Tag, err error) { - t = Und - var end int - if n := len(scan.token); n <= 1 { - scan.toLower(0, len(scan.b)) - if n == 0 || scan.token[0] != 'x' { - return t, ErrSyntax - } - end = parseExtensions(scan) - } else if n >= 4 { - return Und, ErrSyntax - } else { // the usual case - t, end = parseTag(scan, true) - if n := len(scan.token); n == 1 { - t.pExt = uint16(end) - end = parseExtensions(scan) - } else if end < len(scan.b) { - scan.setError(ErrSyntax) - scan.b = scan.b[:end] - } - } - if int(t.pVariant) < len(scan.b) { - if end < len(s) { - s = s[:end] - } - if len(s) > 0 && tag.Compare(s, scan.b) == 0 { - t.str = s - } else { - t.str = string(scan.b) - } - } else { - t.pVariant, t.pExt = 0, 0 - } - return t, scan.err -} - -// parseTag parses language, script, region and variants. -// It returns a Tag and the end position in the input that was parsed. -// If doNorm is true, then - will be normalized to . -func parseTag(scan *scanner, doNorm bool) (t Tag, end int) { - var e error - // TODO: set an error if an unknown lang, script or region is encountered. - t.LangID, e = getLangID(scan.token) - scan.setError(e) - scan.replace(t.LangID.String()) - langStart := scan.start - end = scan.scan() - for len(scan.token) == 3 && isAlpha(scan.token[0]) { - // From http://tools.ietf.org/html/bcp47, - tags are equivalent - // to a tag of the form . - if doNorm { - lang, e := getLangID(scan.token) - if lang != 0 { - t.LangID = lang - langStr := lang.String() - copy(scan.b[langStart:], langStr) - scan.b[langStart+len(langStr)] = '-' - scan.start = langStart + len(langStr) + 1 - } - scan.gobble(e) - } - end = scan.scan() - } - if len(scan.token) == 4 && isAlpha(scan.token[0]) { - t.ScriptID, e = getScriptID(script, scan.token) - if t.ScriptID == 0 { - scan.gobble(e) - } - end = scan.scan() - } - if n := len(scan.token); n >= 2 && n <= 3 { - t.RegionID, e = getRegionID(scan.token) - if t.RegionID == 0 { - scan.gobble(e) - } else { - scan.replace(t.RegionID.String()) - } - end = scan.scan() - } - scan.toLower(scan.start, len(scan.b)) - t.pVariant = byte(end) - end = parseVariants(scan, end, t) - t.pExt = uint16(end) - return t, end -} - -var separator = []byte{'-'} - -// parseVariants scans tokens as long as each token is a valid variant string. -// Duplicate variants are removed. -func parseVariants(scan *scanner, end int, t Tag) int { - start := scan.start - varIDBuf := [4]uint8{} - variantBuf := [4][]byte{} - varID := varIDBuf[:0] - variant := variantBuf[:0] - last := -1 - needSort := false - for ; len(scan.token) >= 4; scan.scan() { - // TODO: measure the impact of needing this conversion and redesign - // the data structure if there is an issue. - v, ok := variantIndex[string(scan.token)] - if !ok { - // unknown variant - // TODO: allow user-defined variants? - scan.gobble(NewValueError(scan.token)) - continue - } - varID = append(varID, v) - variant = append(variant, scan.token) - if !needSort { - if last < int(v) { - last = int(v) - } else { - needSort = true - // There is no legal combinations of more than 7 variants - // (and this is by no means a useful sequence). - const maxVariants = 8 - if len(varID) > maxVariants { - break - } - } - } - end = scan.end - } - if needSort { - sort.Sort(variantsSort{varID, variant}) - k, l := 0, -1 - for i, v := range varID { - w := int(v) - if l == w { - // Remove duplicates. - continue - } - varID[k] = varID[i] - variant[k] = variant[i] - k++ - l = w - } - if str := bytes.Join(variant[:k], separator); len(str) == 0 { - end = start - 1 - } else { - scan.resizeRange(start, end, len(str)) - copy(scan.b[scan.start:], str) - end = scan.end - } - } - return end -} - -type variantsSort struct { - i []uint8 - v [][]byte -} - -func (s variantsSort) Len() int { - return len(s.i) -} - -func (s variantsSort) Swap(i, j int) { - s.i[i], s.i[j] = s.i[j], s.i[i] - s.v[i], s.v[j] = s.v[j], s.v[i] -} - -func (s variantsSort) Less(i, j int) bool { - return s.i[i] < s.i[j] -} - -type bytesSort struct { - b [][]byte - n int // first n bytes to compare -} - -func (b bytesSort) Len() int { - return len(b.b) -} - -func (b bytesSort) Swap(i, j int) { - b.b[i], b.b[j] = b.b[j], b.b[i] -} - -func (b bytesSort) Less(i, j int) bool { - for k := 0; k < b.n; k++ { - if b.b[i][k] == b.b[j][k] { - continue - } - return b.b[i][k] < b.b[j][k] - } - return false -} - -// parseExtensions parses and normalizes the extensions in the buffer. -// It returns the last position of scan.b that is part of any extension. -// It also trims scan.b to remove excess parts accordingly. -func parseExtensions(scan *scanner) int { - start := scan.start - exts := [][]byte{} - private := []byte{} - end := scan.end - for len(scan.token) == 1 { - extStart := scan.start - ext := scan.token[0] - end = parseExtension(scan) - extension := scan.b[extStart:end] - if len(extension) < 3 || (ext != 'x' && len(extension) < 4) { - scan.setError(ErrSyntax) - end = extStart - continue - } else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) { - scan.b = scan.b[:end] - return end - } else if ext == 'x' { - private = extension - break - } - exts = append(exts, extension) - } - sort.Sort(bytesSort{exts, 1}) - if len(private) > 0 { - exts = append(exts, private) - } - scan.b = scan.b[:start] - if len(exts) > 0 { - scan.b = append(scan.b, bytes.Join(exts, separator)...) - } else if start > 0 { - // Strip trailing '-'. - scan.b = scan.b[:start-1] - } - return end -} - -// parseExtension parses a single extension and returns the position of -// the extension end. -func parseExtension(scan *scanner) int { - start, end := scan.start, scan.end - switch scan.token[0] { - case 'u': // https://www.ietf.org/rfc/rfc6067.txt - attrStart := end - scan.scan() - for last := []byte{}; len(scan.token) > 2; scan.scan() { - if bytes.Compare(scan.token, last) != -1 { - // Attributes are unsorted. Start over from scratch. - p := attrStart + 1 - scan.next = p - attrs := [][]byte{} - for scan.scan(); len(scan.token) > 2; scan.scan() { - attrs = append(attrs, scan.token) - end = scan.end - } - sort.Sort(bytesSort{attrs, 3}) - copy(scan.b[p:], bytes.Join(attrs, separator)) - break - } - last = scan.token - end = scan.end - } - // Scan key-type sequences. A key is of length 2 and may be followed - // by 0 or more "type" subtags from 3 to the maximum of 8 letters. - var last, key []byte - for attrEnd := end; len(scan.token) == 2; last = key { - key = scan.token - end = scan.end - for scan.scan(); end < scan.end && len(scan.token) > 2; scan.scan() { - end = scan.end - } - // TODO: check key value validity - if bytes.Compare(key, last) != 1 || scan.err != nil { - // We have an invalid key or the keys are not sorted. - // Start scanning keys from scratch and reorder. - p := attrEnd + 1 - scan.next = p - keys := [][]byte{} - for scan.scan(); len(scan.token) == 2; { - keyStart := scan.start - end = scan.end - for scan.scan(); end < scan.end && len(scan.token) > 2; scan.scan() { - end = scan.end - } - keys = append(keys, scan.b[keyStart:end]) - } - sort.Stable(bytesSort{keys, 2}) - if n := len(keys); n > 0 { - k := 0 - for i := 1; i < n; i++ { - if !bytes.Equal(keys[k][:2], keys[i][:2]) { - k++ - keys[k] = keys[i] - } else if !bytes.Equal(keys[k], keys[i]) { - scan.setError(ErrDuplicateKey) - } - } - keys = keys[:k+1] - } - reordered := bytes.Join(keys, separator) - if e := p + len(reordered); e < end { - scan.deleteRange(e, end) - end = e - } - copy(scan.b[p:], reordered) - break - } - } - case 't': // https://www.ietf.org/rfc/rfc6497.txt - scan.scan() - if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) { - _, end = parseTag(scan, false) - scan.toLower(start, end) - } - for len(scan.token) == 2 && !isAlpha(scan.token[1]) { - end = scan.acceptMinSize(3) - } - case 'x': - end = scan.acceptMinSize(1) - default: - end = scan.acceptMinSize(2) - } - return end -} - -// getExtension returns the name, body and end position of the extension. -func getExtension(s string, p int) (end int, ext string) { - if s[p] == '-' { - p++ - } - if s[p] == 'x' { - return len(s), s[p:] - } - end = nextExtension(s, p) - return end, s[p:end] -} - -// nextExtension finds the next extension within the string, searching -// for the -- pattern from position p. -// In the fast majority of cases, language tags will have at most -// one extension and extensions tend to be small. -func nextExtension(s string, p int) int { - for n := len(s) - 3; p < n; { - if s[p] == '-' { - if s[p+2] == '-' { - return p - } - p += 3 - } else { - p++ - } - } - return len(s) -} diff --git a/backend/vendor/golang.org/x/text/internal/language/tables.go b/backend/vendor/golang.org/x/text/internal/language/tables.go deleted file mode 100644 index fb6b5837..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/tables.go +++ /dev/null @@ -1,3472 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package language - -import "golang.org/x/text/internal/tag" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "32" - -const NumLanguages = 8752 - -const NumScripts = 258 - -const NumRegions = 357 - -type FromTo struct { - From uint16 - To uint16 -} - -const nonCanonicalUnd = 1201 -const ( - _af = 22 - _am = 39 - _ar = 58 - _az = 88 - _bg = 126 - _bn = 165 - _ca = 215 - _cs = 250 - _da = 257 - _de = 269 - _el = 310 - _en = 313 - _es = 318 - _et = 320 - _fa = 328 - _fi = 337 - _fil = 339 - _fr = 350 - _gu = 420 - _he = 444 - _hi = 446 - _hr = 465 - _hu = 469 - _hy = 471 - _id = 481 - _is = 504 - _it = 505 - _ja = 512 - _ka = 528 - _kk = 578 - _km = 586 - _kn = 593 - _ko = 596 - _ky = 650 - _lo = 696 - _lt = 704 - _lv = 711 - _mk = 767 - _ml = 772 - _mn = 779 - _mo = 784 - _mr = 795 - _ms = 799 - _mul = 806 - _my = 817 - _nb = 839 - _ne = 849 - _nl = 871 - _no = 879 - _pa = 925 - _pl = 947 - _pt = 960 - _ro = 988 - _ru = 994 - _sh = 1031 - _si = 1036 - _sk = 1042 - _sl = 1046 - _sq = 1073 - _sr = 1074 - _sv = 1092 - _sw = 1093 - _ta = 1104 - _te = 1121 - _th = 1131 - _tl = 1146 - _tn = 1152 - _tr = 1162 - _uk = 1198 - _ur = 1204 - _uz = 1212 - _vi = 1219 - _zh = 1321 - _zu = 1327 - _jbo = 515 - _ami = 1650 - _bnn = 2357 - _hak = 438 - _tlh = 14467 - _lb = 661 - _nv = 899 - _pwn = 12055 - _tao = 14188 - _tay = 14198 - _tsu = 14662 - _nn = 874 - _sfb = 13629 - _vgt = 15701 - _sgg = 13660 - _cmn = 3007 - _nan = 835 - _hsn = 467 -) - -const langPrivateStart = 0x2f72 - -const langPrivateEnd = 0x3179 - -// lang holds an alphabetically sorted list of ISO-639 language identifiers. -// All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. -// For 2-byte language identifiers, the two successive bytes have the following meaning: -// - if the first letter of the 2- and 3-letter ISO codes are the same: -// the second and third letter of the 3-letter ISO code. -// - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. -// -// For 3-byte language identifiers the 4th byte is 0. -const lang tag.Index = "" + // Size: 5324 bytes - "---\x00aaaraai\x00aak\x00aau\x00abbkabi\x00abq\x00abr\x00abt\x00aby\x00a" + - "cd\x00ace\x00ach\x00ada\x00ade\x00adj\x00ady\x00adz\x00aeveaeb\x00aey" + - "\x00affragc\x00agd\x00agg\x00agm\x00ago\x00agq\x00aha\x00ahl\x00aho\x00a" + - "jg\x00akkaakk\x00ala\x00ali\x00aln\x00alt\x00ammhamm\x00amn\x00amo\x00am" + - "p\x00anrganc\x00ank\x00ann\x00any\x00aoj\x00aom\x00aoz\x00apc\x00apd\x00" + - "ape\x00apr\x00aps\x00apz\x00arraarc\x00arh\x00arn\x00aro\x00arq\x00ars" + - "\x00ary\x00arz\x00assmasa\x00ase\x00asg\x00aso\x00ast\x00ata\x00atg\x00a" + - "tj\x00auy\x00avvaavl\x00avn\x00avt\x00avu\x00awa\x00awb\x00awo\x00awx" + - "\x00ayymayb\x00azzebaakbal\x00ban\x00bap\x00bar\x00bas\x00bav\x00bax\x00" + - "bba\x00bbb\x00bbc\x00bbd\x00bbj\x00bbp\x00bbr\x00bcf\x00bch\x00bci\x00bc" + - "m\x00bcn\x00bco\x00bcq\x00bcu\x00bdd\x00beelbef\x00beh\x00bej\x00bem\x00" + - "bet\x00bew\x00bex\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc\x00bgn" + - "\x00bgx\x00bhihbhb\x00bhg\x00bhi\x00bhk\x00bhl\x00bho\x00bhy\x00biisbib" + - "\x00big\x00bik\x00bim\x00bin\x00bio\x00biq\x00bjh\x00bji\x00bjj\x00bjn" + - "\x00bjo\x00bjr\x00bjt\x00bjz\x00bkc\x00bkm\x00bkq\x00bku\x00bkv\x00blt" + - "\x00bmambmh\x00bmk\x00bmq\x00bmu\x00bnenbng\x00bnm\x00bnp\x00boodboj\x00" + - "bom\x00bon\x00bpy\x00bqc\x00bqi\x00bqp\x00bqv\x00brrebra\x00brh\x00brx" + - "\x00brz\x00bsosbsj\x00bsq\x00bss\x00bst\x00bto\x00btt\x00btv\x00bua\x00b" + - "uc\x00bud\x00bug\x00buk\x00bum\x00buo\x00bus\x00buu\x00bvb\x00bwd\x00bwr" + - "\x00bxh\x00bye\x00byn\x00byr\x00bys\x00byv\x00byx\x00bza\x00bze\x00bzf" + - "\x00bzh\x00bzw\x00caatcan\x00cbj\x00cch\x00ccp\x00ceheceb\x00cfa\x00cgg" + - "\x00chhachk\x00chm\x00cho\x00chp\x00chr\x00cja\x00cjm\x00cjv\x00ckb\x00c" + - "kl\x00cko\x00cky\x00cla\x00cme\x00cmg\x00cooscop\x00cps\x00crrecrh\x00cr" + - "j\x00crk\x00crl\x00crm\x00crs\x00csescsb\x00csw\x00ctd\x00cuhucvhvcyymda" + - "andad\x00daf\x00dag\x00dah\x00dak\x00dar\x00dav\x00dbd\x00dbq\x00dcc\x00" + - "ddn\x00deeuded\x00den\x00dga\x00dgh\x00dgi\x00dgl\x00dgr\x00dgz\x00dia" + - "\x00dje\x00dnj\x00dob\x00doi\x00dop\x00dow\x00dri\x00drs\x00dsb\x00dtm" + - "\x00dtp\x00dts\x00dty\x00dua\x00duc\x00dud\x00dug\x00dvivdva\x00dww\x00d" + - "yo\x00dyu\x00dzzodzg\x00ebu\x00eeweefi\x00egl\x00egy\x00eka\x00eky\x00el" + - "llema\x00emi\x00enngenn\x00enq\x00eopoeri\x00es\x00\x05esu\x00etstetr" + - "\x00ett\x00etu\x00etx\x00euusewo\x00ext\x00faasfaa\x00fab\x00fag\x00fai" + - "\x00fan\x00ffulffi\x00ffm\x00fiinfia\x00fil\x00fit\x00fjijflr\x00fmp\x00" + - "foaofod\x00fon\x00for\x00fpe\x00fqs\x00frrafrc\x00frp\x00frr\x00frs\x00f" + - "ub\x00fud\x00fue\x00fuf\x00fuh\x00fuq\x00fur\x00fuv\x00fuy\x00fvr\x00fyr" + - "ygalegaa\x00gaf\x00gag\x00gah\x00gaj\x00gam\x00gan\x00gaw\x00gay\x00gba" + - "\x00gbf\x00gbm\x00gby\x00gbz\x00gcr\x00gdlagde\x00gdn\x00gdr\x00geb\x00g" + - "ej\x00gel\x00gez\x00gfk\x00ggn\x00ghs\x00gil\x00gim\x00gjk\x00gjn\x00gju" + - "\x00gkn\x00gkp\x00gllgglk\x00gmm\x00gmv\x00gnrngnd\x00gng\x00god\x00gof" + - "\x00goi\x00gom\x00gon\x00gor\x00gos\x00got\x00grb\x00grc\x00grt\x00grw" + - "\x00gsw\x00guujgub\x00guc\x00gud\x00gur\x00guw\x00gux\x00guz\x00gvlvgvf" + - "\x00gvr\x00gvs\x00gwc\x00gwi\x00gwt\x00gyi\x00haauhag\x00hak\x00ham\x00h" + - "aw\x00haz\x00hbb\x00hdy\x00heebhhy\x00hiinhia\x00hif\x00hig\x00hih\x00hi" + - "l\x00hla\x00hlu\x00hmd\x00hmt\x00hnd\x00hne\x00hnj\x00hnn\x00hno\x00homo" + - "hoc\x00hoj\x00hot\x00hrrvhsb\x00hsn\x00htathuunhui\x00hyyehzerianaian" + - "\x00iar\x00iba\x00ibb\x00iby\x00ica\x00ich\x00idndidd\x00idi\x00idu\x00i" + - "eleife\x00igboigb\x00ige\x00iiiiijj\x00ikpkikk\x00ikt\x00ikw\x00ikx\x00i" + - "lo\x00imo\x00inndinh\x00iodoiou\x00iri\x00isslittaiukuiw\x00\x03iwm\x00i" + - "ws\x00izh\x00izi\x00japnjab\x00jam\x00jbo\x00jbu\x00jen\x00jgk\x00jgo" + - "\x00ji\x00\x06jib\x00jmc\x00jml\x00jra\x00jut\x00jvavjwavkaatkaa\x00kab" + - "\x00kac\x00kad\x00kai\x00kaj\x00kam\x00kao\x00kbd\x00kbm\x00kbp\x00kbq" + - "\x00kbx\x00kby\x00kcg\x00kck\x00kcl\x00kct\x00kde\x00kdh\x00kdl\x00kdt" + - "\x00kea\x00ken\x00kez\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgf\x00kgp\x00k" + - "ha\x00khb\x00khn\x00khq\x00khs\x00kht\x00khw\x00khz\x00kiikkij\x00kiu" + - "\x00kiw\x00kjuakjd\x00kjg\x00kjs\x00kjy\x00kkazkkc\x00kkj\x00klalkln\x00" + - "klq\x00klt\x00klx\x00kmhmkmb\x00kmh\x00kmo\x00kms\x00kmu\x00kmw\x00knank" + - "nf\x00knp\x00koorkoi\x00kok\x00kol\x00kos\x00koz\x00kpe\x00kpf\x00kpo" + - "\x00kpr\x00kpx\x00kqb\x00kqf\x00kqs\x00kqy\x00kraukrc\x00kri\x00krj\x00k" + - "rl\x00krs\x00kru\x00ksasksb\x00ksd\x00ksf\x00ksh\x00ksj\x00ksr\x00ktb" + - "\x00ktm\x00kto\x00kuurkub\x00kud\x00kue\x00kuj\x00kum\x00kun\x00kup\x00k" + - "us\x00kvomkvg\x00kvr\x00kvx\x00kw\x00\x01kwj\x00kwo\x00kxa\x00kxc\x00kxm" + - "\x00kxp\x00kxw\x00kxz\x00kyirkye\x00kyx\x00kzr\x00laatlab\x00lad\x00lag" + - "\x00lah\x00laj\x00las\x00lbtzlbe\x00lbu\x00lbw\x00lcm\x00lcp\x00ldb\x00l" + - "ed\x00lee\x00lem\x00lep\x00leq\x00leu\x00lez\x00lguglgg\x00liimlia\x00li" + - "d\x00lif\x00lig\x00lih\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lle\x00lln" + - "\x00lmn\x00lmo\x00lmp\x00lninlns\x00lnu\x00loaoloj\x00lok\x00lol\x00lor" + - "\x00los\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy\x00luz\x00lvav" + - "lwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00man\x00mas\x00ma" + - "w\x00maz\x00mbh\x00mbo\x00mbq\x00mbu\x00mbw\x00mci\x00mcp\x00mcq\x00mcr" + - "\x00mcu\x00mda\x00mde\x00mdf\x00mdh\x00mdj\x00mdr\x00mdx\x00med\x00mee" + - "\x00mek\x00men\x00mer\x00met\x00meu\x00mfa\x00mfe\x00mfn\x00mfo\x00mfq" + - "\x00mglgmgh\x00mgl\x00mgo\x00mgp\x00mgy\x00mhahmhi\x00mhl\x00mirimif\x00" + - "min\x00mis\x00miw\x00mkkdmki\x00mkl\x00mkp\x00mkw\x00mlalmle\x00mlp\x00m" + - "ls\x00mmo\x00mmu\x00mmx\x00mnonmna\x00mnf\x00mni\x00mnw\x00moolmoa\x00mo" + - "e\x00moh\x00mos\x00mox\x00mpp\x00mps\x00mpt\x00mpx\x00mql\x00mrarmrd\x00" + - "mrj\x00mro\x00mssamtltmtc\x00mtf\x00mti\x00mtr\x00mua\x00mul\x00mur\x00m" + - "us\x00mva\x00mvn\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00mxm\x00myyamyk" + - "\x00mym\x00myv\x00myw\x00myx\x00myz\x00mzk\x00mzm\x00mzn\x00mzp\x00mzw" + - "\x00mzz\x00naaunac\x00naf\x00nah\x00nak\x00nan\x00nap\x00naq\x00nas\x00n" + - "bobnca\x00nce\x00ncf\x00nch\x00nco\x00ncu\x00nddendc\x00nds\x00neepneb" + - "\x00new\x00nex\x00nfr\x00ngdonga\x00ngb\x00ngl\x00nhb\x00nhe\x00nhw\x00n" + - "if\x00nii\x00nij\x00nin\x00niu\x00niy\x00niz\x00njo\x00nkg\x00nko\x00nll" + - "dnmg\x00nmz\x00nnnonnf\x00nnh\x00nnk\x00nnm\x00noornod\x00noe\x00non\x00" + - "nop\x00nou\x00nqo\x00nrblnrb\x00nsk\x00nsn\x00nso\x00nss\x00ntm\x00ntr" + - "\x00nui\x00nup\x00nus\x00nuv\x00nux\x00nvavnwb\x00nxq\x00nxr\x00nyyanym" + - "\x00nyn\x00nzi\x00occiogc\x00ojjiokr\x00okv\x00omrmong\x00onn\x00ons\x00" + - "opm\x00orrioro\x00oru\x00osssosa\x00ota\x00otk\x00ozm\x00paanpag\x00pal" + - "\x00pam\x00pap\x00pau\x00pbi\x00pcd\x00pcm\x00pdc\x00pdt\x00ped\x00peo" + - "\x00pex\x00pfl\x00phl\x00phn\x00pilipil\x00pip\x00pka\x00pko\x00plolpla" + - "\x00pms\x00png\x00pnn\x00pnt\x00pon\x00ppo\x00pra\x00prd\x00prg\x00psusp" + - "ss\x00ptorptp\x00puu\x00pwa\x00quuequc\x00qug\x00rai\x00raj\x00rao\x00rc" + - "f\x00rej\x00rel\x00res\x00rgn\x00rhg\x00ria\x00rif\x00rjs\x00rkt\x00rmoh" + - "rmf\x00rmo\x00rmt\x00rmu\x00rnunrna\x00rng\x00roonrob\x00rof\x00roo\x00r" + - "ro\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00rwo\x00ryu\x00saansaf" + - "\x00sah\x00saq\x00sas\x00sat\x00sav\x00saz\x00sba\x00sbe\x00sbp\x00scrds" + - "ck\x00scl\x00scn\x00sco\x00scs\x00sdndsdc\x00sdh\x00semesef\x00seh\x00se" + - "i\x00ses\x00sgagsga\x00sgs\x00sgw\x00sgz\x00sh\x00\x02shi\x00shk\x00shn" + - "\x00shu\x00siinsid\x00sig\x00sil\x00sim\x00sjr\x00sklkskc\x00skr\x00sks" + - "\x00sllvsld\x00sli\x00sll\x00sly\x00smmosma\x00smi\x00smj\x00smn\x00smp" + - "\x00smq\x00sms\x00snnasnc\x00snk\x00snp\x00snx\x00sny\x00soomsok\x00soq" + - "\x00sou\x00soy\x00spd\x00spl\x00sps\x00sqqisrrpsrb\x00srn\x00srr\x00srx" + - "\x00ssswssd\x00ssg\x00ssy\x00stotstk\x00stq\x00suunsua\x00sue\x00suk\x00" + - "sur\x00sus\x00svweswwaswb\x00swc\x00swg\x00swp\x00swv\x00sxn\x00sxw\x00s" + - "yl\x00syr\x00szl\x00taamtaj\x00tal\x00tan\x00taq\x00tbc\x00tbd\x00tbf" + - "\x00tbg\x00tbo\x00tbw\x00tbz\x00tci\x00tcy\x00tdd\x00tdg\x00tdh\x00teelt" + - "ed\x00tem\x00teo\x00tet\x00tfi\x00tggktgc\x00tgo\x00tgu\x00thhathl\x00th" + - "q\x00thr\x00tiirtif\x00tig\x00tik\x00tim\x00tio\x00tiv\x00tkuktkl\x00tkr" + - "\x00tkt\x00tlgltlf\x00tlx\x00tly\x00tmh\x00tmy\x00tnsntnh\x00toontof\x00" + - "tog\x00toq\x00tpi\x00tpm\x00tpz\x00tqo\x00trurtru\x00trv\x00trw\x00tssot" + - "sd\x00tsf\x00tsg\x00tsj\x00tsw\x00ttatttd\x00tte\x00ttj\x00ttr\x00tts" + - "\x00ttt\x00tuh\x00tul\x00tum\x00tuq\x00tvd\x00tvl\x00tvu\x00twwitwh\x00t" + - "wq\x00txg\x00tyahtya\x00tyv\x00tzm\x00ubu\x00udm\x00ugiguga\x00ukkruli" + - "\x00umb\x00und\x00unr\x00unx\x00urrduri\x00urt\x00urw\x00usa\x00utr\x00u" + - "vh\x00uvl\x00uzzbvag\x00vai\x00van\x00veenvec\x00vep\x00viievic\x00viv" + - "\x00vls\x00vmf\x00vmw\x00voolvot\x00vro\x00vun\x00vut\x00walnwae\x00waj" + - "\x00wal\x00wan\x00war\x00wbp\x00wbq\x00wbr\x00wci\x00wer\x00wgi\x00whg" + - "\x00wib\x00wiu\x00wiv\x00wja\x00wji\x00wls\x00wmo\x00wnc\x00wni\x00wnu" + - "\x00woolwob\x00wos\x00wrs\x00wsk\x00wtm\x00wuu\x00wuv\x00wwa\x00xav\x00x" + - "bi\x00xcr\x00xes\x00xhhoxla\x00xlc\x00xld\x00xmf\x00xmn\x00xmr\x00xna" + - "\x00xnr\x00xog\x00xon\x00xpr\x00xrb\x00xsa\x00xsi\x00xsm\x00xsr\x00xwe" + - "\x00yam\x00yao\x00yap\x00yas\x00yat\x00yav\x00yay\x00yaz\x00yba\x00ybb" + - "\x00yby\x00yer\x00ygr\x00ygw\x00yiidyko\x00yle\x00ylg\x00yll\x00yml\x00y" + - "ooryon\x00yrb\x00yre\x00yrl\x00yss\x00yua\x00yue\x00yuj\x00yut\x00yuw" + - "\x00zahazag\x00zbl\x00zdj\x00zea\x00zgh\x00zhhozhx\x00zia\x00zlm\x00zmi" + - "\x00zne\x00zuulzxx\x00zza\x00\xff\xff\xff\xff" - -const langNoIndexOffset = 1330 - -// langNoIndex is a bit vector of all 3-letter language codes that are not used as an index -// in lookup tables. The language ids for these language codes are derived directly -// from the letters and are not consecutive. -// Size: 2197 bytes, 2197 elements -var langNoIndex = [2197]uint8{ - // Entry 0 - 3F - 0xff, 0xf8, 0xed, 0xfe, 0xeb, 0xd3, 0x3b, 0xd2, - 0xfb, 0xbf, 0x7a, 0xfa, 0x37, 0x1d, 0x3c, 0x57, - 0x6e, 0x97, 0x73, 0x38, 0xfb, 0xea, 0xbf, 0x70, - 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62, - 0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77, - 0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2, - 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xbc, 0x0a, 0x6a, - 0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff, - // Entry 40 - 7F - 0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0, - 0x5d, 0xe3, 0x97, 0x14, 0x07, 0x20, 0xdd, 0xed, - 0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0x35, - 0x7c, 0x5f, 0xff, 0x5f, 0x8e, 0x6e, 0xdf, 0xff, - 0xff, 0xff, 0x55, 0x7c, 0xd3, 0xfd, 0xbf, 0xb5, - 0x7b, 0xdf, 0x7f, 0xf7, 0xca, 0xfe, 0xdb, 0xa3, - 0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce, - 0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf, - // Entry 80 - BF - 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x6f, 0xff, 0xff, - 0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7, - 0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba, - 0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff, - 0xfd, 0xdf, 0xfb, 0xfe, 0x9d, 0xb4, 0xd3, 0xff, - 0xef, 0xff, 0xdf, 0xf7, 0x7f, 0xb7, 0xfd, 0xd5, - 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c, - 0x08, 0x21, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80, - // Entry C0 - FF - 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96, - 0x1b, 0x14, 0x08, 0xf3, 0x2b, 0xe7, 0x17, 0x56, - 0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x7b, 0xf3, 0xef, - 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, - 0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x7b, 0x35, - 0x3e, 0xc7, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00, - 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d, - // Entry 100 - 13F - 0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64, - 0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00, - 0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3, - 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x41, 0x0c, - 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc7, 0x67, 0x5f, - 0x56, 0x99, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00, - 0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56, - 0x90, 0x69, 0x01, 0x2c, 0x96, 0x69, 0x20, 0xfb, - // Entry 140 - 17F - 0xff, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x16, - 0x03, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x06, - 0x0a, 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x09, - 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, - 0x08, 0x00, 0x00, 0x05, 0x00, 0x80, 0x28, 0x04, - 0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35, - 0x24, 0x52, 0xf4, 0xd5, 0xbf, 0x62, 0xc9, 0x03, - // Entry 180 - 1BF - 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98, - 0x21, 0x18, 0x81, 0x00, 0x00, 0x01, 0x40, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0x80, 0xea, - 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - // Entry 1C0 - 1FF - 0x00, 0x03, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x20, 0x04, 0xa6, 0x00, 0x04, 0x00, 0x00, - 0x81, 0x50, 0x00, 0x00, 0x00, 0x11, 0x84, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x55, - 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x40, - 0x30, 0x83, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1e, 0xcd, 0xbf, 0x7a, 0xbf, - // Entry 200 - 23F - 0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27, - 0xed, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5, - 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe1, 0xdf, - 0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x81, 0xe3, - 0x92, 0x54, 0xdb, 0x28, 0xd3, 0x5f, 0xfe, 0x6d, - 0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, - 0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f, - 0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54, - // Entry 240 - 27F - 0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00, - 0x20, 0x7b, 0x78, 0x02, 0x07, 0x84, 0x00, 0xf0, - 0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00, - 0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04, - 0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00, - 0x91, 0x24, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff, - 0x7b, 0x7f, 0x70, 0x00, 0x05, 0x9b, 0xdd, 0x66, - // Entry 280 - 2BF - 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05, - 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51, - 0xe2, 0xef, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x60, - 0xe7, 0x48, 0x00, 0x81, 0x20, 0xc0, 0x05, 0x80, - 0x03, 0x00, 0x00, 0x00, 0x8c, 0x50, 0x40, 0x04, - 0x84, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20, - // Entry 2C0 - 2FF - 0x02, 0x50, 0x80, 0x11, 0x00, 0x91, 0x6c, 0xe2, - 0x50, 0x27, 0x1d, 0x11, 0x29, 0x06, 0x59, 0xe9, - 0x33, 0x08, 0x00, 0x20, 0x04, 0x40, 0x10, 0x00, - 0x00, 0x00, 0x50, 0x44, 0x92, 0x49, 0xd6, 0x5d, - 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01, - 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08, - 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x8d, 0x12, 0x00, - // Entry 300 - 33F - 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0, - 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80, - 0x00, 0x01, 0xd0, 0x16, 0x40, 0x00, 0x10, 0xb0, - 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00, - 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80, - 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00, - // Entry 340 - 37F - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, - 0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x84, 0xe3, - 0xdd, 0xbf, 0xf9, 0xf9, 0x3b, 0x7f, 0x7f, 0xdb, - 0xfd, 0xfc, 0xfe, 0xdf, 0xff, 0xfd, 0xff, 0xf6, - 0xfb, 0xfc, 0xf7, 0x1f, 0xff, 0xb3, 0x6c, 0xff, - 0xd9, 0xad, 0xdf, 0xfe, 0xef, 0xba, 0xdf, 0xff, - 0xff, 0xff, 0xb7, 0xdd, 0x7d, 0xbf, 0xab, 0x7f, - 0xfd, 0xfd, 0xdf, 0x2f, 0x9c, 0xdf, 0xf3, 0x6f, - // Entry 380 - 3BF - 0xdf, 0xdd, 0xff, 0xfb, 0xee, 0xd2, 0xab, 0x5f, - 0xd5, 0xdf, 0x7f, 0xff, 0xeb, 0xff, 0xe4, 0x4d, - 0xf9, 0xff, 0xfe, 0xf7, 0xfd, 0xdf, 0xfb, 0xbf, - 0xee, 0xdb, 0x6f, 0xef, 0xff, 0x7f, 0xff, 0xff, - 0xf7, 0x5f, 0xd3, 0x3b, 0xfd, 0xd9, 0xdf, 0xeb, - 0xbc, 0x08, 0x05, 0x24, 0xff, 0x07, 0x70, 0xfe, - 0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x3d, 0x1b, - 0x06, 0xe6, 0x72, 0x60, 0xd1, 0x3c, 0x7f, 0x44, - // Entry 3C0 - 3FF - 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57, - 0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7, - 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, - 0x40, 0x54, 0x9f, 0x8a, 0xdb, 0xf9, 0x2e, 0x11, - 0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x40, 0x01, - 0x05, 0xd1, 0x50, 0x5c, 0x00, 0x40, 0x00, 0x10, - 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, - 0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe, - // Entry 400 - 43F - 0x53, 0x6f, 0xdf, 0xe7, 0xdb, 0x65, 0xbb, 0x7f, - 0xfa, 0xff, 0x77, 0xf3, 0xef, 0xbf, 0xfd, 0xf7, - 0xdf, 0xdf, 0x9b, 0x7f, 0xff, 0xff, 0x7f, 0x6f, - 0xf7, 0xfb, 0xeb, 0xdf, 0xbc, 0xff, 0xbf, 0x6b, - 0x7b, 0xfb, 0xff, 0xce, 0x76, 0xbd, 0xf7, 0xf7, - 0xdf, 0xdc, 0xf7, 0xf7, 0xff, 0xdf, 0xf3, 0xfe, - 0xef, 0xff, 0xff, 0xff, 0xb6, 0x7f, 0x7f, 0xde, - 0xf7, 0xb9, 0xeb, 0x77, 0xff, 0xfb, 0xbf, 0xdf, - // Entry 440 - 47F - 0xfd, 0xfe, 0xfb, 0xff, 0xfe, 0xeb, 0x1f, 0x7d, - 0x2f, 0xfd, 0xb6, 0xb5, 0xa5, 0xfc, 0xff, 0xfd, - 0x7f, 0x4e, 0xbf, 0x8f, 0xae, 0xff, 0xee, 0xdf, - 0x7f, 0xf7, 0x73, 0x02, 0x02, 0x04, 0xfc, 0xf7, - 0xff, 0xb7, 0xd7, 0xef, 0xfe, 0xcd, 0xf5, 0xce, - 0xe2, 0x8e, 0xe7, 0xbf, 0xb7, 0xff, 0x56, 0xfd, - 0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff, - 0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x06, 0xc4, - // Entry 480 - 4BF - 0x93, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb, - 0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20, - 0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41, - 0xe2, 0xff, 0xfc, 0xdf, 0x02, 0x05, 0xc5, 0x05, - 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x05, - 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00, - 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xf1, - // Entry 4C0 - 4FF - 0xfd, 0x47, 0x69, 0x06, 0x95, 0x06, 0x57, 0xed, - 0xfb, 0x4d, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40, - 0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83, - 0xb8, 0x4f, 0x10, 0x8e, 0x89, 0x46, 0xde, 0xf7, - 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00, - 0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d, - 0xbe, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41, - // Entry 500 - 53F - 0x30, 0xff, 0x79, 0x72, 0x04, 0x00, 0x00, 0x49, - 0x2d, 0x14, 0x27, 0x57, 0xed, 0xf1, 0x3f, 0xe7, - 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xf8, - 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xe7, 0xf7, - 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7e, 0x10, - 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9, - 0x5b, 0x05, 0x86, 0xed, 0xf5, 0x77, 0xbd, 0x3c, - 0x00, 0x00, 0x00, 0x42, 0x71, 0x42, 0x00, 0x40, - // Entry 540 - 57F - 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - // Entry 580 - 5BF - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d, - 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0xce, 0xfb, 0xbf, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x30, 0x15, 0xa3, 0x10, 0x00, 0x00, 0x00, - 0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x00, 0x81, - 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40, - // Entry 5C0 - 5FF - 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x3e, 0x02, - 0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02, - 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, - 0x31, 0x00, 0x00, 0x00, 0x01, 0x18, 0x02, 0x20, - 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00, - 0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f, - 0x1f, 0x98, 0xcf, 0x9c, 0xff, 0xaf, 0x5f, 0xfe, - // Entry 600 - 63F - 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xd9, - 0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1, - 0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7, - 0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd, - 0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x9f, - 0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe, - 0xbe, 0x5f, 0x46, 0x5b, 0xe9, 0x5f, 0x50, 0x18, - 0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f, - // Entry 640 - 67F - 0x75, 0xc4, 0x7d, 0x81, 0x92, 0xf5, 0x57, 0x6c, - 0xff, 0xe4, 0xef, 0x6f, 0xff, 0xfc, 0xdd, 0xde, - 0xfc, 0xfd, 0x76, 0x5f, 0x7a, 0x3f, 0x00, 0x98, - 0x02, 0xfb, 0xa3, 0xef, 0xf3, 0xd6, 0xf2, 0xff, - 0xb9, 0xda, 0x7d, 0xd0, 0x3e, 0x15, 0x7b, 0xb4, - 0xf5, 0x3e, 0xff, 0xff, 0xf1, 0xf7, 0xff, 0xe7, - 0x5f, 0xff, 0xff, 0x9e, 0xdb, 0xf6, 0xd7, 0xb9, - 0xef, 0x27, 0x80, 0xbb, 0xc5, 0xff, 0xff, 0xe3, - // Entry 680 - 6BF - 0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37, - 0xce, 0x7f, 0x04, 0x1d, 0x73, 0x7f, 0xf8, 0xda, - 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x79, 0xa0, - 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08, - 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, - 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, - 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x04, 0x00, 0x10, 0xdc, 0x58, 0xd7, 0x0d, 0x0f, - // Entry 6C0 - 6FF - 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd5, 0x42, 0x08, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, - 0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x48, 0x41, - 0x24, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xab, - 0x6d, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00, - // Entry 700 - 73F - 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01, - 0xff, 0x18, 0x02, 0x00, 0x02, 0xf0, 0xfd, 0x79, - 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 740 - 77F - 0x00, 0x00, 0x00, 0xef, 0xd5, 0xfd, 0xcf, 0x7e, - 0xb0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x44, - 0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04, - 0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a, - 0x01, 0x00, 0x00, 0xb0, 0x80, 0x20, 0x55, 0x75, - 0x97, 0x7c, 0xdf, 0x31, 0xcc, 0x68, 0xd1, 0x03, - 0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60, - // Entry 780 - 7BF - 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01, - 0x00, 0x00, 0x20, 0x00, 0x24, 0x44, 0x00, 0x00, - 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0, - 0xf5, 0xff, 0xd5, 0x97, 0xbc, 0x70, 0xd6, 0x78, - 0x78, 0x15, 0x50, 0x01, 0xa4, 0x84, 0xa9, 0x41, - 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00, - 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, - 0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed, - // Entry 7C0 - 7FF - 0xdd, 0xbf, 0xf2, 0x5d, 0xc7, 0x0c, 0xd5, 0x42, - 0xfc, 0xff, 0xf7, 0x1f, 0x00, 0x80, 0x40, 0x56, - 0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff, - 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d, - 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80, - 0x10, 0x20, 0x24, 0x00, 0xff, 0x2f, 0xd3, 0x60, - 0xfe, 0x01, 0x02, 0x88, 0x0a, 0x40, 0x16, 0x01, - 0x01, 0x15, 0x2b, 0x3c, 0x01, 0x00, 0x00, 0x10, - // Entry 800 - 83F - 0x90, 0x49, 0x41, 0x02, 0x02, 0x01, 0xe1, 0xbf, - 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa3, 0xd1, - 0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3, - 0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80, - 0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84, - 0x2f, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93, - 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, - 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, - // Entry 840 - 87F - 0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x16, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, - 0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00, - 0x00, 0xcb, 0xe4, 0x3a, 0x46, 0x88, 0x14, 0xf1, - 0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50, - 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, - 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, - // Entry 880 - 8BF - 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, - 0x0a, 0x00, 0x80, 0x00, 0x00, -} - -// altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives -// to 2-letter language codes that cannot be derived using the method described above. -// Each 3-letter code is followed by its 1-byte langID. -const altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff" - -// altLangIndex is used to convert indexes in altLangISO3 to langIDs. -// Size: 12 bytes, 6 elements -var altLangIndex = [6]uint16{ - 0x0281, 0x0407, 0x01fb, 0x03e5, 0x013e, 0x0208, -} - -// AliasMap maps langIDs to their suggested replacements. -// Size: 716 bytes, 179 elements -var AliasMap = [179]FromTo{ - 0: {From: 0x82, To: 0x88}, - 1: {From: 0x187, To: 0x1ae}, - 2: {From: 0x1f3, To: 0x1e1}, - 3: {From: 0x1fb, To: 0x1bc}, - 4: {From: 0x208, To: 0x512}, - 5: {From: 0x20f, To: 0x20e}, - 6: {From: 0x310, To: 0x3dc}, - 7: {From: 0x347, To: 0x36f}, - 8: {From: 0x407, To: 0x432}, - 9: {From: 0x47a, To: 0x153}, - 10: {From: 0x490, To: 0x451}, - 11: {From: 0x4a2, To: 0x21}, - 12: {From: 0x53e, To: 0x544}, - 13: {From: 0x58f, To: 0x12d}, - 14: {From: 0x630, To: 0x1eb1}, - 15: {From: 0x651, To: 0x431}, - 16: {From: 0x662, To: 0x431}, - 17: {From: 0x6ed, To: 0x3a}, - 18: {From: 0x6f8, To: 0x1d7}, - 19: {From: 0x709, To: 0x3625}, - 20: {From: 0x73e, To: 0x21a1}, - 21: {From: 0x7b3, To: 0x56}, - 22: {From: 0x7b9, To: 0x299b}, - 23: {From: 0x7c5, To: 0x58}, - 24: {From: 0x7e6, To: 0x145}, - 25: {From: 0x80c, To: 0x5a}, - 26: {From: 0x815, To: 0x8d}, - 27: {From: 0x87e, To: 0x810}, - 28: {From: 0x8a8, To: 0x8b7}, - 29: {From: 0x8c3, To: 0xee3}, - 30: {From: 0x8fa, To: 0x1dc}, - 31: {From: 0x9ef, To: 0x331}, - 32: {From: 0xa36, To: 0x2c5}, - 33: {From: 0xa3d, To: 0xbf}, - 34: {From: 0xabe, To: 0x3322}, - 35: {From: 0xb38, To: 0x529}, - 36: {From: 0xb75, To: 0x265a}, - 37: {From: 0xb7e, To: 0xbc3}, - 38: {From: 0xb9b, To: 0x44e}, - 39: {From: 0xbbc, To: 0x4229}, - 40: {From: 0xbbf, To: 0x529}, - 41: {From: 0xbfe, To: 0x2da7}, - 42: {From: 0xc2e, To: 0x3181}, - 43: {From: 0xcb9, To: 0xf3}, - 44: {From: 0xd08, To: 0xfa}, - 45: {From: 0xdc8, To: 0x11a}, - 46: {From: 0xdd7, To: 0x32d}, - 47: {From: 0xdf8, To: 0xdfb}, - 48: {From: 0xdfe, To: 0x531}, - 49: {From: 0xe01, To: 0xdf3}, - 50: {From: 0xedf, To: 0x205a}, - 51: {From: 0xee9, To: 0x222e}, - 52: {From: 0xeee, To: 0x2e9a}, - 53: {From: 0xf39, To: 0x367}, - 54: {From: 0x10d0, To: 0x140}, - 55: {From: 0x1104, To: 0x2d0}, - 56: {From: 0x11a0, To: 0x1ec}, - 57: {From: 0x1279, To: 0x21}, - 58: {From: 0x1424, To: 0x15e}, - 59: {From: 0x1470, To: 0x14e}, - 60: {From: 0x151f, To: 0xd9b}, - 61: {From: 0x1523, To: 0x390}, - 62: {From: 0x1532, To: 0x19f}, - 63: {From: 0x1580, To: 0x210}, - 64: {From: 0x1583, To: 0x10d}, - 65: {From: 0x15a3, To: 0x3caf}, - 66: {From: 0x1630, To: 0x222e}, - 67: {From: 0x166a, To: 0x19b}, - 68: {From: 0x16c8, To: 0x136}, - 69: {From: 0x1700, To: 0x29f8}, - 70: {From: 0x1718, To: 0x194}, - 71: {From: 0x1727, To: 0xf3f}, - 72: {From: 0x177a, To: 0x178}, - 73: {From: 0x1809, To: 0x17b6}, - 74: {From: 0x1816, To: 0x18f3}, - 75: {From: 0x188a, To: 0x436}, - 76: {From: 0x1979, To: 0x1d01}, - 77: {From: 0x1a74, To: 0x2bb0}, - 78: {From: 0x1a8a, To: 0x1f8}, - 79: {From: 0x1b5a, To: 0x1fa}, - 80: {From: 0x1b86, To: 0x1515}, - 81: {From: 0x1d64, To: 0x2c9b}, - 82: {From: 0x2038, To: 0x37b1}, - 83: {From: 0x203d, To: 0x20dd}, - 84: {From: 0x205a, To: 0x30b}, - 85: {From: 0x20e3, To: 0x274}, - 86: {From: 0x20ee, To: 0x263}, - 87: {From: 0x20f2, To: 0x22d}, - 88: {From: 0x20f9, To: 0x256}, - 89: {From: 0x210f, To: 0x21eb}, - 90: {From: 0x2135, To: 0x27d}, - 91: {From: 0x2160, To: 0x913}, - 92: {From: 0x2199, To: 0x121}, - 93: {From: 0x21ce, To: 0x1561}, - 94: {From: 0x21e6, To: 0x504}, - 95: {From: 0x21f4, To: 0x49f}, - 96: {From: 0x21fb, To: 0x269}, - 97: {From: 0x222d, To: 0x121}, - 98: {From: 0x2237, To: 0x121}, - 99: {From: 0x2262, To: 0x92a}, - 100: {From: 0x2316, To: 0x3226}, - 101: {From: 0x236a, To: 0x2835}, - 102: {From: 0x2382, To: 0x3365}, - 103: {From: 0x2472, To: 0x2c7}, - 104: {From: 0x24e4, To: 0x2ff}, - 105: {From: 0x24f0, To: 0x2fa}, - 106: {From: 0x24fa, To: 0x31f}, - 107: {From: 0x2550, To: 0xb5b}, - 108: {From: 0x25a9, To: 0xe2}, - 109: {From: 0x263e, To: 0x2d0}, - 110: {From: 0x26c9, To: 0x26b4}, - 111: {From: 0x26f9, To: 0x3c8}, - 112: {From: 0x2727, To: 0x3caf}, - 113: {From: 0x2755, To: 0x6a4}, - 114: {From: 0x2765, To: 0x26b4}, - 115: {From: 0x2789, To: 0x4358}, - 116: {From: 0x27c9, To: 0x2001}, - 117: {From: 0x28ea, To: 0x27b1}, - 118: {From: 0x28ef, To: 0x2837}, - 119: {From: 0x2914, To: 0x351}, - 120: {From: 0x2986, To: 0x2da7}, - 121: {From: 0x29f0, To: 0x96b}, - 122: {From: 0x2b1a, To: 0x38d}, - 123: {From: 0x2bfc, To: 0x395}, - 124: {From: 0x2c3f, To: 0x3caf}, - 125: {From: 0x2ce1, To: 0x2201}, - 126: {From: 0x2cfc, To: 0x3be}, - 127: {From: 0x2d13, To: 0x597}, - 128: {From: 0x2d47, To: 0x148}, - 129: {From: 0x2d48, To: 0x148}, - 130: {From: 0x2dff, To: 0x2f1}, - 131: {From: 0x2e08, To: 0x19cc}, - 132: {From: 0x2e1a, To: 0x2d95}, - 133: {From: 0x2e21, To: 0x292}, - 134: {From: 0x2e54, To: 0x7d}, - 135: {From: 0x2e65, To: 0x2282}, - 136: {From: 0x2ea0, To: 0x2e9b}, - 137: {From: 0x2eef, To: 0x2ed7}, - 138: {From: 0x3193, To: 0x3c4}, - 139: {From: 0x3366, To: 0x338e}, - 140: {From: 0x342a, To: 0x3dc}, - 141: {From: 0x34ee, To: 0x18d0}, - 142: {From: 0x35c8, To: 0x2c9b}, - 143: {From: 0x35e6, To: 0x412}, - 144: {From: 0x3658, To: 0x246}, - 145: {From: 0x3676, To: 0x3f4}, - 146: {From: 0x36fd, To: 0x445}, - 147: {From: 0x37c0, To: 0x121}, - 148: {From: 0x3816, To: 0x38f2}, - 149: {From: 0x382a, To: 0x2b48}, - 150: {From: 0x382b, To: 0x2c9b}, - 151: {From: 0x382f, To: 0xa9}, - 152: {From: 0x3832, To: 0x3228}, - 153: {From: 0x386c, To: 0x39a6}, - 154: {From: 0x3892, To: 0x3fc0}, - 155: {From: 0x38a5, To: 0x39d7}, - 156: {From: 0x38b4, To: 0x1fa4}, - 157: {From: 0x38b5, To: 0x2e9a}, - 158: {From: 0x395c, To: 0x47e}, - 159: {From: 0x3b4e, To: 0xd91}, - 160: {From: 0x3b78, To: 0x137}, - 161: {From: 0x3c99, To: 0x4bc}, - 162: {From: 0x3fbd, To: 0x100}, - 163: {From: 0x4208, To: 0xa91}, - 164: {From: 0x42be, To: 0x573}, - 165: {From: 0x42f9, To: 0x3f60}, - 166: {From: 0x4378, To: 0x25a}, - 167: {From: 0x43b8, To: 0xe6c}, - 168: {From: 0x43cd, To: 0x10f}, - 169: {From: 0x44af, To: 0x3322}, - 170: {From: 0x44e3, To: 0x512}, - 171: {From: 0x45ca, To: 0x2409}, - 172: {From: 0x45dd, To: 0x26dc}, - 173: {From: 0x4610, To: 0x48ae}, - 174: {From: 0x46ae, To: 0x46a0}, - 175: {From: 0x473e, To: 0x4745}, - 176: {From: 0x4817, To: 0x3503}, - 177: {From: 0x4916, To: 0x31f}, - 178: {From: 0x49a7, To: 0x523}, -} - -// Size: 179 bytes, 179 elements -var AliasTypes = [179]AliasType{ - // Entry 0 - 3F - 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, - 1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 0, 0, 2, - 1, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, - 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, - // Entry 40 - 7F - 2, 0, 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, - // Entry 80 - BF - 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, - 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, - 0, 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, - 0, 1, 1, -} - -const ( - _Latn = 90 - _Hani = 57 - _Hans = 59 - _Hant = 60 - _Qaaa = 147 - _Qaai = 155 - _Qabx = 196 - _Zinh = 252 - _Zyyy = 257 - _Zzzz = 258 -) - -// script is an alphabetically sorted list of ISO 15924 codes. The index -// of the script in the string, divided by 4, is the internal scriptID. -const script tag.Index = "" + // Size: 1040 bytes - "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" + - "BrahBraiBugiBuhdCakmCansCariChamCherChrsCirtCoptCpmnCprtCyrlCyrsDevaDiak" + - "DogrDsrtDuplEgydEgyhEgypElbaElymEthiGeokGeorGlagGongGonmGothGranGrekGujr" + - "GuruHanbHangHaniHanoHansHantHatrHebrHiraHluwHmngHmnpHrktHungIndsItalJamo" + - "JavaJpanJurcKaliKanaKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatfLatg" + - "LatnLekeLepcLimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedfMend" + - "MercMeroMlymModiMongMoonMrooMteiMultMymrNandNarbNbatNewaNkdbNkgbNkooNshu" + - "OgamOlckOrkhOryaOsgeOsmaOugrPalmPaucPcunPelmPermPhagPhliPhlpPhlvPhnxPiqd" + - "PlrdPrtiPsinQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaao" + - "QaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabg" + - "QabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRanj" + - "RjngRohgRoroRunrSamrSaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogdSogoSora" + - "SoyoSundSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglg" + - "ThaaThaiTibtTirhTnsaTotoUgarVaiiVispVithWaraWchoWoleXpeoXsuxYeziYiiiZanb" + - "ZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff" - -// suppressScript is an index from langID to the dominant script for that language, -// if it exists. If a script is given, it should be suppressed from the language tag. -// Size: 1330 bytes, 1330 elements -var suppressScript = [1330]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 40 - 7F - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - // Entry 80 - BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry C0 - FF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 100 - 13F - 0x5a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xea, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x5a, 0x00, - // Entry 140 - 17F - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x5a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 180 - 1BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5a, 0x35, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x22, 0x00, - // Entry 1C0 - 1FF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x5a, 0x00, 0x5a, 0x5a, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x5a, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, - // Entry 200 - 23F - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 240 - 27F - 0x00, 0x00, 0x20, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x52, 0x00, 0x00, 0x53, 0x00, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 280 - 2BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 2C0 - 2FF - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, - // Entry 300 - 33F - 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x5a, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, - // Entry 340 - 37F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x5a, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x5a, 0x00, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 380 - 3BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, - // Entry 3C0 - 3FF - 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x00, 0x5a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 400 - 43F - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - // Entry 440 - 47F - 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe6, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x2c, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, - // Entry 480 - 4BF - 0x5a, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 4C0 - 4FF - 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 500 - 53F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, - 0x00, 0x00, -} - -const ( - _001 = 1 - _419 = 31 - _BR = 65 - _CA = 73 - _ES = 110 - _GB = 123 - _MD = 188 - _PT = 238 - _UK = 306 - _US = 309 - _ZZ = 357 - _XA = 323 - _XC = 325 - _XK = 333 -) - -// isoRegionOffset needs to be added to the index of regionISO to obtain the regionID -// for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for -// the UN.M49 codes used for groups.) -const isoRegionOffset = 32 - -// regionTypes defines the status of a region for various standards. -// Size: 358 bytes, 358 elements -var regionTypes = [358]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 40 - 7F - 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, - 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, - 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 80 - BF - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry C0 - FF - 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, - 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - // Entry 100 - 13F - 0x05, 0x05, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x02, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 140 - 17F - 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, 0x06, - 0x04, 0x06, 0x06, 0x04, 0x06, 0x05, -} - -// regionISO holds a list of alphabetically sorted 2-letter ISO region codes. -// Each 2-letter codes is followed by two bytes with the following meaning: -// - [A-Z}{2}: the first letter of the 2-letter code plus these two -// letters form the 3-letter ISO code. -// - 0, n: index into altRegionISO3. -const regionISO tag.Index = "" + // Size: 1308 bytes - "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + - "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + - "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" + - "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" + - "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03EZ FIINFJJIFKLKFMSMFORO" + - "FQ\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGR" + - "RCGS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSR" + - "IMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00" + - "\x09KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTU" + - "LUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQ" + - "MRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOOR" + - "NPPLNQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00" + - "\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTT" + - "QU\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYC" + - "SDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYR" + - "SZWZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTV" + - "UVTWWNTZZAUAKRUGGAUK UMMIUN USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVU" + - "UTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXO" + - "OOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAF" + - "ZMMBZRARZWWEZZZZ\xff\xff\xff\xff" - -// altRegionISO3 holds a list of 3-letter region codes that cannot be -// mapped to 2-letter codes using the default algorithm. This is a short list. -const altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN" - -// altRegionIDs holds a list of regionIDs the positions of which match those -// of the 3-letter ISO codes in altRegionISO3. -// Size: 22 bytes, 11 elements -var altRegionIDs = [11]uint16{ - 0x0057, 0x0070, 0x0088, 0x00a8, 0x00aa, 0x00ad, 0x00ea, 0x0105, - 0x0121, 0x015f, 0x00dc, -} - -// Size: 80 bytes, 20 elements -var regionOldMap = [20]FromTo{ - 0: {From: 0x44, To: 0xc4}, - 1: {From: 0x58, To: 0xa7}, - 2: {From: 0x5f, To: 0x60}, - 3: {From: 0x66, To: 0x3b}, - 4: {From: 0x79, To: 0x78}, - 5: {From: 0x93, To: 0x37}, - 6: {From: 0xa3, To: 0x133}, - 7: {From: 0xc1, To: 0x133}, - 8: {From: 0xd7, To: 0x13f}, - 9: {From: 0xdc, To: 0x2b}, - 10: {From: 0xef, To: 0x133}, - 11: {From: 0xf2, To: 0xe2}, - 12: {From: 0xfc, To: 0x70}, - 13: {From: 0x103, To: 0x164}, - 14: {From: 0x12a, To: 0x126}, - 15: {From: 0x132, To: 0x7b}, - 16: {From: 0x13a, To: 0x13e}, - 17: {From: 0x141, To: 0x133}, - 18: {From: 0x15d, To: 0x15e}, - 19: {From: 0x163, To: 0x4b}, -} - -// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are -// codes indicating collections of regions. -// Size: 716 bytes, 358 elements -var m49 = [358]int16{ - // Entry 0 - 3F - 0, 1, 2, 3, 5, 9, 11, 13, - 14, 15, 17, 18, 19, 21, 29, 30, - 34, 35, 39, 53, 54, 57, 61, 142, - 143, 145, 150, 151, 154, 155, 202, 419, - 958, 0, 20, 784, 4, 28, 660, 8, - 51, 530, 24, 10, 32, 16, 40, 36, - 533, 248, 31, 70, 52, 50, 56, 854, - 100, 48, 108, 204, 652, 60, 96, 68, - // Entry 40 - 7F - 535, 76, 44, 64, 104, 74, 72, 112, - 84, 124, 166, 180, 140, 178, 756, 384, - 184, 152, 120, 156, 170, 0, 188, 891, - 296, 192, 132, 531, 162, 196, 203, 278, - 276, 0, 262, 208, 212, 214, 204, 12, - 0, 218, 233, 818, 732, 232, 724, 231, - 967, 0, 246, 242, 238, 583, 234, 0, - 250, 249, 266, 826, 308, 268, 254, 831, - // Entry 80 - BF - 288, 292, 304, 270, 324, 312, 226, 300, - 239, 320, 316, 624, 328, 344, 334, 340, - 191, 332, 348, 854, 0, 360, 372, 376, - 833, 356, 86, 368, 364, 352, 380, 832, - 388, 400, 392, 581, 404, 417, 116, 296, - 174, 659, 408, 410, 414, 136, 398, 418, - 422, 662, 438, 144, 430, 426, 440, 442, - 428, 434, 504, 492, 498, 499, 663, 450, - // Entry C0 - FF - 584, 581, 807, 466, 104, 496, 446, 580, - 474, 478, 500, 470, 480, 462, 454, 484, - 458, 508, 516, 540, 562, 574, 566, 548, - 558, 528, 578, 524, 10, 520, 536, 570, - 554, 512, 591, 0, 604, 258, 598, 608, - 586, 616, 666, 612, 630, 275, 620, 581, - 585, 600, 591, 634, 959, 960, 961, 962, - 963, 964, 965, 966, 967, 968, 969, 970, - // Entry 100 - 13F - 971, 972, 638, 716, 642, 688, 643, 646, - 682, 90, 690, 729, 752, 702, 654, 705, - 744, 703, 694, 674, 686, 706, 740, 728, - 678, 810, 222, 534, 760, 748, 0, 796, - 148, 260, 768, 764, 762, 772, 626, 795, - 788, 776, 626, 792, 780, 798, 158, 834, - 804, 800, 826, 581, 0, 840, 858, 860, - 336, 670, 704, 862, 92, 850, 704, 548, - // Entry 140 - 17F - 876, 581, 882, 973, 974, 975, 976, 977, - 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, - 994, 995, 996, 997, 998, 720, 887, 175, - 891, 710, 894, 180, 716, 999, -} - -// m49Index gives indexes into fromM49 based on the three most significant bits -// of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in -// -// fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] -// -// for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. -// The region code is stored in the 9 lsb of the indexed value. -// Size: 18 bytes, 9 elements -var m49Index = [9]int16{ - 0, 59, 108, 143, 181, 220, 259, 291, - 333, -} - -// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details. -// Size: 666 bytes, 333 elements -var fromM49 = [333]uint16{ - // Entry 0 - 3F - 0x0201, 0x0402, 0x0603, 0x0824, 0x0a04, 0x1027, 0x1205, 0x142b, - 0x1606, 0x1867, 0x1a07, 0x1c08, 0x1e09, 0x202d, 0x220a, 0x240b, - 0x260c, 0x2822, 0x2a0d, 0x302a, 0x3825, 0x3a0e, 0x3c0f, 0x3e32, - 0x402c, 0x4410, 0x4611, 0x482f, 0x4e12, 0x502e, 0x5842, 0x6039, - 0x6435, 0x6628, 0x6834, 0x6a13, 0x6c14, 0x7036, 0x7215, 0x783d, - 0x7a16, 0x8043, 0x883f, 0x8c33, 0x9046, 0x9445, 0x9841, 0xa848, - 0xac9a, 0xb509, 0xb93c, 0xc03e, 0xc838, 0xd0c4, 0xd83a, 0xe047, - 0xe8a6, 0xf052, 0xf849, 0x085a, 0x10ad, 0x184c, 0x1c17, 0x1e18, - // Entry 40 - 7F - 0x20b3, 0x2219, 0x2920, 0x2c1a, 0x2e1b, 0x3051, 0x341c, 0x361d, - 0x3853, 0x3d2e, 0x445c, 0x4c4a, 0x5454, 0x5ca8, 0x5f5f, 0x644d, - 0x684b, 0x7050, 0x7856, 0x7e90, 0x8059, 0x885d, 0x941e, 0x965e, - 0x983b, 0xa063, 0xa864, 0xac65, 0xb469, 0xbd1a, 0xc486, 0xcc6f, - 0xce6f, 0xd06d, 0xd26a, 0xd476, 0xdc74, 0xde88, 0xe473, 0xec72, - 0xf031, 0xf279, 0xf478, 0xfc7e, 0x04e5, 0x0921, 0x0c62, 0x147a, - 0x187d, 0x1c83, 0x26ed, 0x2860, 0x2c5f, 0x3060, 0x4080, 0x4881, - 0x50a7, 0x5887, 0x6082, 0x687c, 0x7085, 0x788a, 0x8089, 0x8884, - // Entry 80 - BF - 0x908c, 0x9891, 0x9c8e, 0xa138, 0xa88f, 0xb08d, 0xb892, 0xc09d, - 0xc899, 0xd095, 0xd89c, 0xe09b, 0xe896, 0xf097, 0xf89e, 0x004f, - 0x08a0, 0x10a2, 0x1cae, 0x20a1, 0x28a4, 0x30aa, 0x34ab, 0x3cac, - 0x42a5, 0x44af, 0x461f, 0x4cb0, 0x54b5, 0x58b8, 0x5cb4, 0x64b9, - 0x6cb2, 0x70b6, 0x74b7, 0x7cc6, 0x84bf, 0x8cce, 0x94d0, 0x9ccd, - 0xa4c3, 0xaccb, 0xb4c8, 0xbcc9, 0xc0cc, 0xc8cf, 0xd8bb, 0xe0c5, - 0xe4bc, 0xe6bd, 0xe8ca, 0xf0ba, 0xf8d1, 0x00e1, 0x08d2, 0x10dd, - 0x18db, 0x20d9, 0x2429, 0x265b, 0x2a30, 0x2d1b, 0x2e40, 0x30de, - // Entry C0 - FF - 0x38d3, 0x493f, 0x54e0, 0x5cd8, 0x64d4, 0x6cd6, 0x74df, 0x7cd5, - 0x84da, 0x88c7, 0x8b33, 0x8e75, 0x90c0, 0x92f0, 0x94e8, 0x9ee2, - 0xace6, 0xb0f1, 0xb8e4, 0xc0e7, 0xc8eb, 0xd0e9, 0xd8ee, 0xe08b, - 0xe526, 0xecec, 0xf4f3, 0xfd02, 0x0504, 0x0706, 0x0d07, 0x183c, - 0x1d0e, 0x26a9, 0x2826, 0x2cb1, 0x2ebe, 0x34ea, 0x3d39, 0x4513, - 0x4d18, 0x5508, 0x5d14, 0x6105, 0x650a, 0x6d12, 0x7d0d, 0x7f11, - 0x813e, 0x830f, 0x8515, 0x8d61, 0x9964, 0xa15d, 0xa86e, 0xb117, - 0xb30b, 0xb86c, 0xc10b, 0xc916, 0xd110, 0xd91d, 0xe10c, 0xe84e, - // Entry 100 - 13F - 0xf11c, 0xf524, 0xf923, 0x0122, 0x0925, 0x1129, 0x192c, 0x2023, - 0x2928, 0x312b, 0x3727, 0x391f, 0x3d2d, 0x4131, 0x4930, 0x4ec2, - 0x5519, 0x646b, 0x747b, 0x7e7f, 0x809f, 0x8298, 0x852f, 0x9135, - 0xa53d, 0xac37, 0xb536, 0xb937, 0xbd3b, 0xd940, 0xe542, 0xed5e, - 0xef5e, 0xf657, 0xfd62, 0x7c20, 0x7ef4, 0x80f5, 0x82f6, 0x84f7, - 0x86f8, 0x88f9, 0x8afa, 0x8cfb, 0x8e70, 0x90fd, 0x92fe, 0x94ff, - 0x9700, 0x9901, 0x9b43, 0x9d44, 0x9f45, 0xa146, 0xa347, 0xa548, - 0xa749, 0xa94a, 0xab4b, 0xad4c, 0xaf4d, 0xb14e, 0xb34f, 0xb550, - // Entry 140 - 17F - 0xb751, 0xb952, 0xbb53, 0xbd54, 0xbf55, 0xc156, 0xc357, 0xc558, - 0xc759, 0xc95a, 0xcb5b, 0xcd5c, 0xcf65, -} - -// Size: 2014 bytes -var variantIndex = map[string]uint8{ - "1606nict": 0x0, - "1694acad": 0x1, - "1901": 0x2, - "1959acad": 0x3, - "1994": 0x61, - "1996": 0x4, - "abl1943": 0x5, - "akuapem": 0x6, - "alalc97": 0x63, - "aluku": 0x7, - "ao1990": 0x8, - "aranes": 0x9, - "arevela": 0xa, - "arevmda": 0xb, - "arkaika": 0xc, - "asante": 0xd, - "auvern": 0xe, - "baku1926": 0xf, - "balanka": 0x10, - "barla": 0x11, - "basiceng": 0x12, - "bauddha": 0x13, - "biscayan": 0x14, - "biske": 0x5c, - "bohoric": 0x15, - "boont": 0x16, - "bornholm": 0x17, - "cisaup": 0x18, - "colb1945": 0x19, - "cornu": 0x1a, - "creiss": 0x1b, - "dajnko": 0x1c, - "ekavsk": 0x1d, - "emodeng": 0x1e, - "fonipa": 0x64, - "fonkirsh": 0x65, - "fonnapa": 0x66, - "fonupa": 0x67, - "fonxsamp": 0x68, - "gascon": 0x1f, - "grclass": 0x20, - "grital": 0x21, - "grmistr": 0x22, - "hepburn": 0x23, - "heploc": 0x62, - "hognorsk": 0x24, - "hsistemo": 0x25, - "ijekavsk": 0x26, - "itihasa": 0x27, - "ivanchov": 0x28, - "jauer": 0x29, - "jyutping": 0x2a, - "kkcor": 0x2b, - "kociewie": 0x2c, - "kscor": 0x2d, - "laukika": 0x2e, - "lemosin": 0x2f, - "lengadoc": 0x30, - "lipaw": 0x5d, - "luna1918": 0x31, - "metelko": 0x32, - "monoton": 0x33, - "ndyuka": 0x34, - "nedis": 0x35, - "newfound": 0x36, - "nicard": 0x37, - "njiva": 0x5e, - "nulik": 0x38, - "osojs": 0x5f, - "oxendict": 0x39, - "pahawh2": 0x3a, - "pahawh3": 0x3b, - "pahawh4": 0x3c, - "pamaka": 0x3d, - "peano": 0x3e, - "petr1708": 0x3f, - "pinyin": 0x40, - "polyton": 0x41, - "provenc": 0x42, - "puter": 0x43, - "rigik": 0x44, - "rozaj": 0x45, - "rumgr": 0x46, - "scotland": 0x47, - "scouse": 0x48, - "simple": 0x69, - "solba": 0x60, - "sotav": 0x49, - "spanglis": 0x4a, - "surmiran": 0x4b, - "sursilv": 0x4c, - "sutsilv": 0x4d, - "tarask": 0x4e, - "tongyong": 0x4f, - "tunumiit": 0x50, - "uccor": 0x51, - "ucrcor": 0x52, - "ulster": 0x53, - "unifon": 0x54, - "vaidika": 0x55, - "valencia": 0x56, - "vallader": 0x57, - "vecdruka": 0x58, - "vivaraup": 0x59, - "wadegile": 0x5a, - "xsistemo": 0x5b, -} - -// variantNumSpecialized is the number of specialized variants in variants. -const variantNumSpecialized = 99 - -// nRegionGroups is the number of region groups. -const nRegionGroups = 33 - -type likelyLangRegion struct { - lang uint16 - region uint16 -} - -// likelyScript is a lookup table, indexed by scriptID, for the most likely -// languages and regions given a script. -// Size: 1040 bytes, 260 elements -var likelyScript = [260]likelyLangRegion{ - 1: {lang: 0x14e, region: 0x84}, - 3: {lang: 0x2a2, region: 0x106}, - 4: {lang: 0x1f, region: 0x99}, - 5: {lang: 0x3a, region: 0x6b}, - 7: {lang: 0x3b, region: 0x9c}, - 8: {lang: 0x1d7, region: 0x28}, - 9: {lang: 0x13, region: 0x9c}, - 10: {lang: 0x5b, region: 0x95}, - 11: {lang: 0x60, region: 0x52}, - 12: {lang: 0xb9, region: 0xb4}, - 13: {lang: 0x63, region: 0x95}, - 14: {lang: 0xa5, region: 0x35}, - 15: {lang: 0x3e9, region: 0x99}, - 17: {lang: 0x529, region: 0x12e}, - 18: {lang: 0x3b1, region: 0x99}, - 19: {lang: 0x15e, region: 0x78}, - 20: {lang: 0xc2, region: 0x95}, - 21: {lang: 0x9d, region: 0xe7}, - 22: {lang: 0xdb, region: 0x35}, - 23: {lang: 0xf3, region: 0x49}, - 24: {lang: 0x4f0, region: 0x12b}, - 25: {lang: 0xe7, region: 0x13e}, - 26: {lang: 0xe5, region: 0x135}, - 29: {lang: 0xf1, region: 0x6b}, - 31: {lang: 0x1a0, region: 0x5d}, - 32: {lang: 0x3e2, region: 0x106}, - 34: {lang: 0x1be, region: 0x99}, - 38: {lang: 0x15e, region: 0x78}, - 41: {lang: 0x133, region: 0x6b}, - 42: {lang: 0x431, region: 0x27}, - 44: {lang: 0x27, region: 0x6f}, - 46: {lang: 0x210, region: 0x7d}, - 47: {lang: 0xfe, region: 0x38}, - 49: {lang: 0x19b, region: 0x99}, - 50: {lang: 0x19e, region: 0x130}, - 51: {lang: 0x3e9, region: 0x99}, - 52: {lang: 0x136, region: 0x87}, - 53: {lang: 0x1a4, region: 0x99}, - 54: {lang: 0x39d, region: 0x99}, - 55: {lang: 0x529, region: 0x12e}, - 56: {lang: 0x254, region: 0xab}, - 57: {lang: 0x529, region: 0x53}, - 58: {lang: 0x1cb, region: 0xe7}, - 59: {lang: 0x529, region: 0x53}, - 60: {lang: 0x529, region: 0x12e}, - 61: {lang: 0x2fd, region: 0x9b}, - 62: {lang: 0x1bc, region: 0x97}, - 63: {lang: 0x200, region: 0xa2}, - 64: {lang: 0x1c5, region: 0x12b}, - 65: {lang: 0x1ca, region: 0xaf}, - 68: {lang: 0x1d5, region: 0x92}, - 70: {lang: 0x142, region: 0x9e}, - 71: {lang: 0x254, region: 0xab}, - 72: {lang: 0x20e, region: 0x95}, - 73: {lang: 0x200, region: 0xa2}, - 75: {lang: 0x135, region: 0xc4}, - 76: {lang: 0x200, region: 0xa2}, - 77: {lang: 0x3bb, region: 0xe8}, - 78: {lang: 0x24a, region: 0xa6}, - 79: {lang: 0x3fa, region: 0x99}, - 82: {lang: 0x251, region: 0x99}, - 83: {lang: 0x254, region: 0xab}, - 85: {lang: 0x88, region: 0x99}, - 86: {lang: 0x370, region: 0x123}, - 87: {lang: 0x2b8, region: 0xaf}, - 92: {lang: 0x29f, region: 0x99}, - 93: {lang: 0x2a8, region: 0x99}, - 94: {lang: 0x28f, region: 0x87}, - 95: {lang: 0x1a0, region: 0x87}, - 96: {lang: 0x2ac, region: 0x53}, - 98: {lang: 0x4f4, region: 0x12b}, - 99: {lang: 0x4f5, region: 0x12b}, - 100: {lang: 0x1be, region: 0x99}, - 102: {lang: 0x337, region: 0x9c}, - 103: {lang: 0x4f7, region: 0x53}, - 104: {lang: 0xa9, region: 0x53}, - 107: {lang: 0x2e8, region: 0x112}, - 108: {lang: 0x4f8, region: 0x10b}, - 109: {lang: 0x4f8, region: 0x10b}, - 110: {lang: 0x304, region: 0x99}, - 111: {lang: 0x31b, region: 0x99}, - 112: {lang: 0x30b, region: 0x53}, - 114: {lang: 0x31e, region: 0x35}, - 115: {lang: 0x30e, region: 0x99}, - 116: {lang: 0x414, region: 0xe8}, - 117: {lang: 0x331, region: 0xc4}, - 119: {lang: 0x4f9, region: 0x108}, - 120: {lang: 0x3b, region: 0xa1}, - 121: {lang: 0x353, region: 0xdb}, - 124: {lang: 0x2d0, region: 0x84}, - 125: {lang: 0x52a, region: 0x53}, - 126: {lang: 0x403, region: 0x96}, - 127: {lang: 0x3ee, region: 0x99}, - 128: {lang: 0x39b, region: 0xc5}, - 129: {lang: 0x395, region: 0x99}, - 130: {lang: 0x399, region: 0x135}, - 131: {lang: 0x429, region: 0x115}, - 133: {lang: 0x3b, region: 0x11c}, - 134: {lang: 0xfd, region: 0xc4}, - 137: {lang: 0x27d, region: 0x106}, - 138: {lang: 0x2c9, region: 0x53}, - 139: {lang: 0x39f, region: 0x9c}, - 140: {lang: 0x39f, region: 0x53}, - 142: {lang: 0x3ad, region: 0xb0}, - 144: {lang: 0x1c6, region: 0x53}, - 145: {lang: 0x4fd, region: 0x9c}, - 198: {lang: 0x3cb, region: 0x95}, - 201: {lang: 0x372, region: 0x10c}, - 202: {lang: 0x420, region: 0x97}, - 204: {lang: 0x4ff, region: 0x15e}, - 205: {lang: 0x3f0, region: 0x99}, - 206: {lang: 0x45, region: 0x135}, - 207: {lang: 0x139, region: 0x7b}, - 208: {lang: 0x3e9, region: 0x99}, - 210: {lang: 0x3e9, region: 0x99}, - 211: {lang: 0x3fa, region: 0x99}, - 212: {lang: 0x40c, region: 0xb3}, - 215: {lang: 0x433, region: 0x99}, - 216: {lang: 0xef, region: 0xc5}, - 217: {lang: 0x43e, region: 0x95}, - 218: {lang: 0x44d, region: 0x35}, - 219: {lang: 0x44e, region: 0x9b}, - 223: {lang: 0x45a, region: 0xe7}, - 224: {lang: 0x11a, region: 0x99}, - 225: {lang: 0x45e, region: 0x53}, - 226: {lang: 0x232, region: 0x53}, - 227: {lang: 0x450, region: 0x99}, - 228: {lang: 0x4a5, region: 0x53}, - 229: {lang: 0x9f, region: 0x13e}, - 230: {lang: 0x461, region: 0x99}, - 232: {lang: 0x528, region: 0xba}, - 233: {lang: 0x153, region: 0xe7}, - 234: {lang: 0x128, region: 0xcd}, - 235: {lang: 0x46b, region: 0x123}, - 236: {lang: 0xa9, region: 0x53}, - 237: {lang: 0x2ce, region: 0x99}, - 240: {lang: 0x4ad, region: 0x11c}, - 241: {lang: 0x4be, region: 0xb4}, - 244: {lang: 0x1ce, region: 0x99}, - 247: {lang: 0x3a9, region: 0x9c}, - 248: {lang: 0x22, region: 0x9b}, - 250: {lang: 0x1ea, region: 0x53}, - 251: {lang: 0xef, region: 0xc5}, -} - -type likelyScriptRegion struct { - region uint16 - script uint16 - flags uint8 -} - -// likelyLang is a lookup table, indexed by langID, for the most likely -// scripts and regions given incomplete information. If more entries exist for a -// given language, region and script are the index and size respectively -// of the list in likelyLangList. -// Size: 7980 bytes, 1330 elements -var likelyLang = [1330]likelyScriptRegion{ - 0: {region: 0x135, script: 0x5a, flags: 0x0}, - 1: {region: 0x6f, script: 0x5a, flags: 0x0}, - 2: {region: 0x165, script: 0x5a, flags: 0x0}, - 3: {region: 0x165, script: 0x5a, flags: 0x0}, - 4: {region: 0x165, script: 0x5a, flags: 0x0}, - 5: {region: 0x7d, script: 0x20, flags: 0x0}, - 6: {region: 0x165, script: 0x5a, flags: 0x0}, - 7: {region: 0x165, script: 0x20, flags: 0x0}, - 8: {region: 0x80, script: 0x5a, flags: 0x0}, - 9: {region: 0x165, script: 0x5a, flags: 0x0}, - 10: {region: 0x165, script: 0x5a, flags: 0x0}, - 11: {region: 0x165, script: 0x5a, flags: 0x0}, - 12: {region: 0x95, script: 0x5a, flags: 0x0}, - 13: {region: 0x131, script: 0x5a, flags: 0x0}, - 14: {region: 0x80, script: 0x5a, flags: 0x0}, - 15: {region: 0x165, script: 0x5a, flags: 0x0}, - 16: {region: 0x165, script: 0x5a, flags: 0x0}, - 17: {region: 0x106, script: 0x20, flags: 0x0}, - 18: {region: 0x165, script: 0x5a, flags: 0x0}, - 19: {region: 0x9c, script: 0x9, flags: 0x0}, - 20: {region: 0x128, script: 0x5, flags: 0x0}, - 21: {region: 0x165, script: 0x5a, flags: 0x0}, - 22: {region: 0x161, script: 0x5a, flags: 0x0}, - 23: {region: 0x165, script: 0x5a, flags: 0x0}, - 24: {region: 0x165, script: 0x5a, flags: 0x0}, - 25: {region: 0x165, script: 0x5a, flags: 0x0}, - 26: {region: 0x165, script: 0x5a, flags: 0x0}, - 27: {region: 0x165, script: 0x5a, flags: 0x0}, - 28: {region: 0x52, script: 0x5a, flags: 0x0}, - 29: {region: 0x165, script: 0x5a, flags: 0x0}, - 30: {region: 0x165, script: 0x5a, flags: 0x0}, - 31: {region: 0x99, script: 0x4, flags: 0x0}, - 32: {region: 0x165, script: 0x5a, flags: 0x0}, - 33: {region: 0x80, script: 0x5a, flags: 0x0}, - 34: {region: 0x9b, script: 0xf8, flags: 0x0}, - 35: {region: 0x165, script: 0x5a, flags: 0x0}, - 36: {region: 0x165, script: 0x5a, flags: 0x0}, - 37: {region: 0x14d, script: 0x5a, flags: 0x0}, - 38: {region: 0x106, script: 0x20, flags: 0x0}, - 39: {region: 0x6f, script: 0x2c, flags: 0x0}, - 40: {region: 0x165, script: 0x5a, flags: 0x0}, - 41: {region: 0x165, script: 0x5a, flags: 0x0}, - 42: {region: 0xd6, script: 0x5a, flags: 0x0}, - 43: {region: 0x165, script: 0x5a, flags: 0x0}, - 45: {region: 0x165, script: 0x5a, flags: 0x0}, - 46: {region: 0x165, script: 0x5a, flags: 0x0}, - 47: {region: 0x165, script: 0x5a, flags: 0x0}, - 48: {region: 0x165, script: 0x5a, flags: 0x0}, - 49: {region: 0x165, script: 0x5a, flags: 0x0}, - 50: {region: 0x165, script: 0x5a, flags: 0x0}, - 51: {region: 0x95, script: 0x5a, flags: 0x0}, - 52: {region: 0x165, script: 0x5, flags: 0x0}, - 53: {region: 0x122, script: 0x5, flags: 0x0}, - 54: {region: 0x165, script: 0x5a, flags: 0x0}, - 55: {region: 0x165, script: 0x5a, flags: 0x0}, - 56: {region: 0x165, script: 0x5a, flags: 0x0}, - 57: {region: 0x165, script: 0x5a, flags: 0x0}, - 58: {region: 0x6b, script: 0x5, flags: 0x0}, - 59: {region: 0x0, script: 0x3, flags: 0x1}, - 60: {region: 0x165, script: 0x5a, flags: 0x0}, - 61: {region: 0x51, script: 0x5a, flags: 0x0}, - 62: {region: 0x3f, script: 0x5a, flags: 0x0}, - 63: {region: 0x67, script: 0x5, flags: 0x0}, - 65: {region: 0xba, script: 0x5, flags: 0x0}, - 66: {region: 0x6b, script: 0x5, flags: 0x0}, - 67: {region: 0x99, script: 0xe, flags: 0x0}, - 68: {region: 0x12f, script: 0x5a, flags: 0x0}, - 69: {region: 0x135, script: 0xce, flags: 0x0}, - 70: {region: 0x165, script: 0x5a, flags: 0x0}, - 71: {region: 0x165, script: 0x5a, flags: 0x0}, - 72: {region: 0x6e, script: 0x5a, flags: 0x0}, - 73: {region: 0x165, script: 0x5a, flags: 0x0}, - 74: {region: 0x165, script: 0x5a, flags: 0x0}, - 75: {region: 0x49, script: 0x5a, flags: 0x0}, - 76: {region: 0x165, script: 0x5a, flags: 0x0}, - 77: {region: 0x106, script: 0x20, flags: 0x0}, - 78: {region: 0x165, script: 0x5, flags: 0x0}, - 79: {region: 0x165, script: 0x5a, flags: 0x0}, - 80: {region: 0x165, script: 0x5a, flags: 0x0}, - 81: {region: 0x165, script: 0x5a, flags: 0x0}, - 82: {region: 0x99, script: 0x22, flags: 0x0}, - 83: {region: 0x165, script: 0x5a, flags: 0x0}, - 84: {region: 0x165, script: 0x5a, flags: 0x0}, - 85: {region: 0x165, script: 0x5a, flags: 0x0}, - 86: {region: 0x3f, script: 0x5a, flags: 0x0}, - 87: {region: 0x165, script: 0x5a, flags: 0x0}, - 88: {region: 0x3, script: 0x5, flags: 0x1}, - 89: {region: 0x106, script: 0x20, flags: 0x0}, - 90: {region: 0xe8, script: 0x5, flags: 0x0}, - 91: {region: 0x95, script: 0x5a, flags: 0x0}, - 92: {region: 0xdb, script: 0x22, flags: 0x0}, - 93: {region: 0x2e, script: 0x5a, flags: 0x0}, - 94: {region: 0x52, script: 0x5a, flags: 0x0}, - 95: {region: 0x165, script: 0x5a, flags: 0x0}, - 96: {region: 0x52, script: 0xb, flags: 0x0}, - 97: {region: 0x165, script: 0x5a, flags: 0x0}, - 98: {region: 0x165, script: 0x5a, flags: 0x0}, - 99: {region: 0x95, script: 0x5a, flags: 0x0}, - 100: {region: 0x165, script: 0x5a, flags: 0x0}, - 101: {region: 0x52, script: 0x5a, flags: 0x0}, - 102: {region: 0x165, script: 0x5a, flags: 0x0}, - 103: {region: 0x165, script: 0x5a, flags: 0x0}, - 104: {region: 0x165, script: 0x5a, flags: 0x0}, - 105: {region: 0x165, script: 0x5a, flags: 0x0}, - 106: {region: 0x4f, script: 0x5a, flags: 0x0}, - 107: {region: 0x165, script: 0x5a, flags: 0x0}, - 108: {region: 0x165, script: 0x5a, flags: 0x0}, - 109: {region: 0x165, script: 0x5a, flags: 0x0}, - 110: {region: 0x165, script: 0x2c, flags: 0x0}, - 111: {region: 0x165, script: 0x5a, flags: 0x0}, - 112: {region: 0x165, script: 0x5a, flags: 0x0}, - 113: {region: 0x47, script: 0x20, flags: 0x0}, - 114: {region: 0x165, script: 0x5a, flags: 0x0}, - 115: {region: 0x165, script: 0x5a, flags: 0x0}, - 116: {region: 0x10b, script: 0x5, flags: 0x0}, - 117: {region: 0x162, script: 0x5a, flags: 0x0}, - 118: {region: 0x165, script: 0x5a, flags: 0x0}, - 119: {region: 0x95, script: 0x5a, flags: 0x0}, - 120: {region: 0x165, script: 0x5a, flags: 0x0}, - 121: {region: 0x12f, script: 0x5a, flags: 0x0}, - 122: {region: 0x52, script: 0x5a, flags: 0x0}, - 123: {region: 0x99, script: 0xe3, flags: 0x0}, - 124: {region: 0xe8, script: 0x5, flags: 0x0}, - 125: {region: 0x99, script: 0x22, flags: 0x0}, - 126: {region: 0x38, script: 0x20, flags: 0x0}, - 127: {region: 0x99, script: 0x22, flags: 0x0}, - 128: {region: 0xe8, script: 0x5, flags: 0x0}, - 129: {region: 0x12b, script: 0x34, flags: 0x0}, - 131: {region: 0x99, script: 0x22, flags: 0x0}, - 132: {region: 0x165, script: 0x5a, flags: 0x0}, - 133: {region: 0x99, script: 0x22, flags: 0x0}, - 134: {region: 0xe7, script: 0x5a, flags: 0x0}, - 135: {region: 0x165, script: 0x5a, flags: 0x0}, - 136: {region: 0x99, script: 0x22, flags: 0x0}, - 137: {region: 0x165, script: 0x5a, flags: 0x0}, - 138: {region: 0x13f, script: 0x5a, flags: 0x0}, - 139: {region: 0x165, script: 0x5a, flags: 0x0}, - 140: {region: 0x165, script: 0x5a, flags: 0x0}, - 141: {region: 0xe7, script: 0x5a, flags: 0x0}, - 142: {region: 0x165, script: 0x5a, flags: 0x0}, - 143: {region: 0xd6, script: 0x5a, flags: 0x0}, - 144: {region: 0x165, script: 0x5a, flags: 0x0}, - 145: {region: 0x165, script: 0x5a, flags: 0x0}, - 146: {region: 0x165, script: 0x5a, flags: 0x0}, - 147: {region: 0x165, script: 0x2c, flags: 0x0}, - 148: {region: 0x99, script: 0x22, flags: 0x0}, - 149: {region: 0x95, script: 0x5a, flags: 0x0}, - 150: {region: 0x165, script: 0x5a, flags: 0x0}, - 151: {region: 0x165, script: 0x5a, flags: 0x0}, - 152: {region: 0x114, script: 0x5a, flags: 0x0}, - 153: {region: 0x165, script: 0x5a, flags: 0x0}, - 154: {region: 0x165, script: 0x5a, flags: 0x0}, - 155: {region: 0x52, script: 0x5a, flags: 0x0}, - 156: {region: 0x165, script: 0x5a, flags: 0x0}, - 157: {region: 0xe7, script: 0x5a, flags: 0x0}, - 158: {region: 0x165, script: 0x5a, flags: 0x0}, - 159: {region: 0x13e, script: 0xe5, flags: 0x0}, - 160: {region: 0xc3, script: 0x5a, flags: 0x0}, - 161: {region: 0x165, script: 0x5a, flags: 0x0}, - 162: {region: 0x165, script: 0x5a, flags: 0x0}, - 163: {region: 0xc3, script: 0x5a, flags: 0x0}, - 164: {region: 0x165, script: 0x5a, flags: 0x0}, - 165: {region: 0x35, script: 0xe, flags: 0x0}, - 166: {region: 0x165, script: 0x5a, flags: 0x0}, - 167: {region: 0x165, script: 0x5a, flags: 0x0}, - 168: {region: 0x165, script: 0x5a, flags: 0x0}, - 169: {region: 0x53, script: 0xec, flags: 0x0}, - 170: {region: 0x165, script: 0x5a, flags: 0x0}, - 171: {region: 0x165, script: 0x5a, flags: 0x0}, - 172: {region: 0x165, script: 0x5a, flags: 0x0}, - 173: {region: 0x99, script: 0xe, flags: 0x0}, - 174: {region: 0x165, script: 0x5a, flags: 0x0}, - 175: {region: 0x9c, script: 0x5, flags: 0x0}, - 176: {region: 0x165, script: 0x5a, flags: 0x0}, - 177: {region: 0x4f, script: 0x5a, flags: 0x0}, - 178: {region: 0x78, script: 0x5a, flags: 0x0}, - 179: {region: 0x99, script: 0x22, flags: 0x0}, - 180: {region: 0xe8, script: 0x5, flags: 0x0}, - 181: {region: 0x99, script: 0x22, flags: 0x0}, - 182: {region: 0x165, script: 0x5a, flags: 0x0}, - 183: {region: 0x33, script: 0x5a, flags: 0x0}, - 184: {region: 0x165, script: 0x5a, flags: 0x0}, - 185: {region: 0xb4, script: 0xc, flags: 0x0}, - 186: {region: 0x52, script: 0x5a, flags: 0x0}, - 187: {region: 0x165, script: 0x2c, flags: 0x0}, - 188: {region: 0xe7, script: 0x5a, flags: 0x0}, - 189: {region: 0x165, script: 0x5a, flags: 0x0}, - 190: {region: 0xe8, script: 0x22, flags: 0x0}, - 191: {region: 0x106, script: 0x20, flags: 0x0}, - 192: {region: 0x15f, script: 0x5a, flags: 0x0}, - 193: {region: 0x165, script: 0x5a, flags: 0x0}, - 194: {region: 0x95, script: 0x5a, flags: 0x0}, - 195: {region: 0x165, script: 0x5a, flags: 0x0}, - 196: {region: 0x52, script: 0x5a, flags: 0x0}, - 197: {region: 0x165, script: 0x5a, flags: 0x0}, - 198: {region: 0x165, script: 0x5a, flags: 0x0}, - 199: {region: 0x165, script: 0x5a, flags: 0x0}, - 200: {region: 0x86, script: 0x5a, flags: 0x0}, - 201: {region: 0x165, script: 0x5a, flags: 0x0}, - 202: {region: 0x165, script: 0x5a, flags: 0x0}, - 203: {region: 0x165, script: 0x5a, flags: 0x0}, - 204: {region: 0x165, script: 0x5a, flags: 0x0}, - 205: {region: 0x6d, script: 0x2c, flags: 0x0}, - 206: {region: 0x165, script: 0x5a, flags: 0x0}, - 207: {region: 0x165, script: 0x5a, flags: 0x0}, - 208: {region: 0x52, script: 0x5a, flags: 0x0}, - 209: {region: 0x165, script: 0x5a, flags: 0x0}, - 210: {region: 0x165, script: 0x5a, flags: 0x0}, - 211: {region: 0xc3, script: 0x5a, flags: 0x0}, - 212: {region: 0x165, script: 0x5a, flags: 0x0}, - 213: {region: 0x165, script: 0x5a, flags: 0x0}, - 214: {region: 0x165, script: 0x5a, flags: 0x0}, - 215: {region: 0x6e, script: 0x5a, flags: 0x0}, - 216: {region: 0x165, script: 0x5a, flags: 0x0}, - 217: {region: 0x165, script: 0x5a, flags: 0x0}, - 218: {region: 0xd6, script: 0x5a, flags: 0x0}, - 219: {region: 0x35, script: 0x16, flags: 0x0}, - 220: {region: 0x106, script: 0x20, flags: 0x0}, - 221: {region: 0xe7, script: 0x5a, flags: 0x0}, - 222: {region: 0x165, script: 0x5a, flags: 0x0}, - 223: {region: 0x131, script: 0x5a, flags: 0x0}, - 224: {region: 0x8a, script: 0x5a, flags: 0x0}, - 225: {region: 0x75, script: 0x5a, flags: 0x0}, - 226: {region: 0x106, script: 0x20, flags: 0x0}, - 227: {region: 0x135, script: 0x5a, flags: 0x0}, - 228: {region: 0x49, script: 0x5a, flags: 0x0}, - 229: {region: 0x135, script: 0x1a, flags: 0x0}, - 230: {region: 0xa6, script: 0x5, flags: 0x0}, - 231: {region: 0x13e, script: 0x19, flags: 0x0}, - 232: {region: 0x165, script: 0x5a, flags: 0x0}, - 233: {region: 0x9b, script: 0x5, flags: 0x0}, - 234: {region: 0x165, script: 0x5a, flags: 0x0}, - 235: {region: 0x165, script: 0x5a, flags: 0x0}, - 236: {region: 0x165, script: 0x5a, flags: 0x0}, - 237: {region: 0x165, script: 0x5a, flags: 0x0}, - 238: {region: 0x165, script: 0x5a, flags: 0x0}, - 239: {region: 0xc5, script: 0xd8, flags: 0x0}, - 240: {region: 0x78, script: 0x5a, flags: 0x0}, - 241: {region: 0x6b, script: 0x1d, flags: 0x0}, - 242: {region: 0xe7, script: 0x5a, flags: 0x0}, - 243: {region: 0x49, script: 0x17, flags: 0x0}, - 244: {region: 0x130, script: 0x20, flags: 0x0}, - 245: {region: 0x49, script: 0x17, flags: 0x0}, - 246: {region: 0x49, script: 0x17, flags: 0x0}, - 247: {region: 0x49, script: 0x17, flags: 0x0}, - 248: {region: 0x49, script: 0x17, flags: 0x0}, - 249: {region: 0x10a, script: 0x5a, flags: 0x0}, - 250: {region: 0x5e, script: 0x5a, flags: 0x0}, - 251: {region: 0xe9, script: 0x5a, flags: 0x0}, - 252: {region: 0x49, script: 0x17, flags: 0x0}, - 253: {region: 0xc4, script: 0x86, flags: 0x0}, - 254: {region: 0x8, script: 0x2, flags: 0x1}, - 255: {region: 0x106, script: 0x20, flags: 0x0}, - 256: {region: 0x7b, script: 0x5a, flags: 0x0}, - 257: {region: 0x63, script: 0x5a, flags: 0x0}, - 258: {region: 0x165, script: 0x5a, flags: 0x0}, - 259: {region: 0x165, script: 0x5a, flags: 0x0}, - 260: {region: 0x165, script: 0x5a, flags: 0x0}, - 261: {region: 0x165, script: 0x5a, flags: 0x0}, - 262: {region: 0x135, script: 0x5a, flags: 0x0}, - 263: {region: 0x106, script: 0x20, flags: 0x0}, - 264: {region: 0xa4, script: 0x5a, flags: 0x0}, - 265: {region: 0x165, script: 0x5a, flags: 0x0}, - 266: {region: 0x165, script: 0x5a, flags: 0x0}, - 267: {region: 0x99, script: 0x5, flags: 0x0}, - 268: {region: 0x165, script: 0x5a, flags: 0x0}, - 269: {region: 0x60, script: 0x5a, flags: 0x0}, - 270: {region: 0x165, script: 0x5a, flags: 0x0}, - 271: {region: 0x49, script: 0x5a, flags: 0x0}, - 272: {region: 0x165, script: 0x5a, flags: 0x0}, - 273: {region: 0x165, script: 0x5a, flags: 0x0}, - 274: {region: 0x165, script: 0x5a, flags: 0x0}, - 275: {region: 0x165, script: 0x5, flags: 0x0}, - 276: {region: 0x49, script: 0x5a, flags: 0x0}, - 277: {region: 0x165, script: 0x5a, flags: 0x0}, - 278: {region: 0x165, script: 0x5a, flags: 0x0}, - 279: {region: 0xd4, script: 0x5a, flags: 0x0}, - 280: {region: 0x4f, script: 0x5a, flags: 0x0}, - 281: {region: 0x165, script: 0x5a, flags: 0x0}, - 282: {region: 0x99, script: 0x5, flags: 0x0}, - 283: {region: 0x165, script: 0x5a, flags: 0x0}, - 284: {region: 0x165, script: 0x5a, flags: 0x0}, - 285: {region: 0x165, script: 0x5a, flags: 0x0}, - 286: {region: 0x165, script: 0x2c, flags: 0x0}, - 287: {region: 0x60, script: 0x5a, flags: 0x0}, - 288: {region: 0xc3, script: 0x5a, flags: 0x0}, - 289: {region: 0xd0, script: 0x5a, flags: 0x0}, - 290: {region: 0x165, script: 0x5a, flags: 0x0}, - 291: {region: 0xdb, script: 0x22, flags: 0x0}, - 292: {region: 0x52, script: 0x5a, flags: 0x0}, - 293: {region: 0x165, script: 0x5a, flags: 0x0}, - 294: {region: 0x165, script: 0x5a, flags: 0x0}, - 295: {region: 0x165, script: 0x5a, flags: 0x0}, - 296: {region: 0xcd, script: 0xea, flags: 0x0}, - 297: {region: 0x165, script: 0x5a, flags: 0x0}, - 298: {region: 0x165, script: 0x5a, flags: 0x0}, - 299: {region: 0x114, script: 0x5a, flags: 0x0}, - 300: {region: 0x37, script: 0x5a, flags: 0x0}, - 301: {region: 0x43, script: 0xec, flags: 0x0}, - 302: {region: 0x165, script: 0x5a, flags: 0x0}, - 303: {region: 0xa4, script: 0x5a, flags: 0x0}, - 304: {region: 0x80, script: 0x5a, flags: 0x0}, - 305: {region: 0xd6, script: 0x5a, flags: 0x0}, - 306: {region: 0x9e, script: 0x5a, flags: 0x0}, - 307: {region: 0x6b, script: 0x29, flags: 0x0}, - 308: {region: 0x165, script: 0x5a, flags: 0x0}, - 309: {region: 0xc4, script: 0x4b, flags: 0x0}, - 310: {region: 0x87, script: 0x34, flags: 0x0}, - 311: {region: 0x165, script: 0x5a, flags: 0x0}, - 312: {region: 0x165, script: 0x5a, flags: 0x0}, - 313: {region: 0xa, script: 0x2, flags: 0x1}, - 314: {region: 0x165, script: 0x5a, flags: 0x0}, - 315: {region: 0x165, script: 0x5a, flags: 0x0}, - 316: {region: 0x1, script: 0x5a, flags: 0x0}, - 317: {region: 0x165, script: 0x5a, flags: 0x0}, - 318: {region: 0x6e, script: 0x5a, flags: 0x0}, - 319: {region: 0x135, script: 0x5a, flags: 0x0}, - 320: {region: 0x6a, script: 0x5a, flags: 0x0}, - 321: {region: 0x165, script: 0x5a, flags: 0x0}, - 322: {region: 0x9e, script: 0x46, flags: 0x0}, - 323: {region: 0x165, script: 0x5a, flags: 0x0}, - 324: {region: 0x165, script: 0x5a, flags: 0x0}, - 325: {region: 0x6e, script: 0x5a, flags: 0x0}, - 326: {region: 0x52, script: 0x5a, flags: 0x0}, - 327: {region: 0x6e, script: 0x5a, flags: 0x0}, - 328: {region: 0x9c, script: 0x5, flags: 0x0}, - 329: {region: 0x165, script: 0x5a, flags: 0x0}, - 330: {region: 0x165, script: 0x5a, flags: 0x0}, - 331: {region: 0x165, script: 0x5a, flags: 0x0}, - 332: {region: 0x165, script: 0x5a, flags: 0x0}, - 333: {region: 0x86, script: 0x5a, flags: 0x0}, - 334: {region: 0xc, script: 0x2, flags: 0x1}, - 335: {region: 0x165, script: 0x5a, flags: 0x0}, - 336: {region: 0xc3, script: 0x5a, flags: 0x0}, - 337: {region: 0x72, script: 0x5a, flags: 0x0}, - 338: {region: 0x10b, script: 0x5, flags: 0x0}, - 339: {region: 0xe7, script: 0x5a, flags: 0x0}, - 340: {region: 0x10c, script: 0x5a, flags: 0x0}, - 341: {region: 0x73, script: 0x5a, flags: 0x0}, - 342: {region: 0x165, script: 0x5a, flags: 0x0}, - 343: {region: 0x165, script: 0x5a, flags: 0x0}, - 344: {region: 0x76, script: 0x5a, flags: 0x0}, - 345: {region: 0x165, script: 0x5a, flags: 0x0}, - 346: {region: 0x3b, script: 0x5a, flags: 0x0}, - 347: {region: 0x165, script: 0x5a, flags: 0x0}, - 348: {region: 0x165, script: 0x5a, flags: 0x0}, - 349: {region: 0x165, script: 0x5a, flags: 0x0}, - 350: {region: 0x78, script: 0x5a, flags: 0x0}, - 351: {region: 0x135, script: 0x5a, flags: 0x0}, - 352: {region: 0x78, script: 0x5a, flags: 0x0}, - 353: {region: 0x60, script: 0x5a, flags: 0x0}, - 354: {region: 0x60, script: 0x5a, flags: 0x0}, - 355: {region: 0x52, script: 0x5, flags: 0x0}, - 356: {region: 0x140, script: 0x5a, flags: 0x0}, - 357: {region: 0x165, script: 0x5a, flags: 0x0}, - 358: {region: 0x84, script: 0x5a, flags: 0x0}, - 359: {region: 0x165, script: 0x5a, flags: 0x0}, - 360: {region: 0xd4, script: 0x5a, flags: 0x0}, - 361: {region: 0x9e, script: 0x5a, flags: 0x0}, - 362: {region: 0xd6, script: 0x5a, flags: 0x0}, - 363: {region: 0x165, script: 0x5a, flags: 0x0}, - 364: {region: 0x10b, script: 0x5a, flags: 0x0}, - 365: {region: 0xd9, script: 0x5a, flags: 0x0}, - 366: {region: 0x96, script: 0x5a, flags: 0x0}, - 367: {region: 0x80, script: 0x5a, flags: 0x0}, - 368: {region: 0x165, script: 0x5a, flags: 0x0}, - 369: {region: 0xbc, script: 0x5a, flags: 0x0}, - 370: {region: 0x165, script: 0x5a, flags: 0x0}, - 371: {region: 0x165, script: 0x5a, flags: 0x0}, - 372: {region: 0x165, script: 0x5a, flags: 0x0}, - 373: {region: 0x53, script: 0x3b, flags: 0x0}, - 374: {region: 0x165, script: 0x5a, flags: 0x0}, - 375: {region: 0x95, script: 0x5a, flags: 0x0}, - 376: {region: 0x165, script: 0x5a, flags: 0x0}, - 377: {region: 0x165, script: 0x5a, flags: 0x0}, - 378: {region: 0x99, script: 0x22, flags: 0x0}, - 379: {region: 0x165, script: 0x5a, flags: 0x0}, - 380: {region: 0x9c, script: 0x5, flags: 0x0}, - 381: {region: 0x7e, script: 0x5a, flags: 0x0}, - 382: {region: 0x7b, script: 0x5a, flags: 0x0}, - 383: {region: 0x165, script: 0x5a, flags: 0x0}, - 384: {region: 0x165, script: 0x5a, flags: 0x0}, - 385: {region: 0x165, script: 0x5a, flags: 0x0}, - 386: {region: 0x165, script: 0x5a, flags: 0x0}, - 387: {region: 0x165, script: 0x5a, flags: 0x0}, - 388: {region: 0x165, script: 0x5a, flags: 0x0}, - 389: {region: 0x6f, script: 0x2c, flags: 0x0}, - 390: {region: 0x165, script: 0x5a, flags: 0x0}, - 391: {region: 0xdb, script: 0x22, flags: 0x0}, - 392: {region: 0x165, script: 0x5a, flags: 0x0}, - 393: {region: 0xa7, script: 0x5a, flags: 0x0}, - 394: {region: 0x165, script: 0x5a, flags: 0x0}, - 395: {region: 0xe8, script: 0x5, flags: 0x0}, - 396: {region: 0x165, script: 0x5a, flags: 0x0}, - 397: {region: 0xe8, script: 0x5, flags: 0x0}, - 398: {region: 0x165, script: 0x5a, flags: 0x0}, - 399: {region: 0x165, script: 0x5a, flags: 0x0}, - 400: {region: 0x6e, script: 0x5a, flags: 0x0}, - 401: {region: 0x9c, script: 0x5, flags: 0x0}, - 402: {region: 0x165, script: 0x5a, flags: 0x0}, - 403: {region: 0x165, script: 0x2c, flags: 0x0}, - 404: {region: 0xf1, script: 0x5a, flags: 0x0}, - 405: {region: 0x165, script: 0x5a, flags: 0x0}, - 406: {region: 0x165, script: 0x5a, flags: 0x0}, - 407: {region: 0x165, script: 0x5a, flags: 0x0}, - 408: {region: 0x165, script: 0x2c, flags: 0x0}, - 409: {region: 0x165, script: 0x5a, flags: 0x0}, - 410: {region: 0x99, script: 0x22, flags: 0x0}, - 411: {region: 0x99, script: 0xe6, flags: 0x0}, - 412: {region: 0x95, script: 0x5a, flags: 0x0}, - 413: {region: 0xd9, script: 0x5a, flags: 0x0}, - 414: {region: 0x130, script: 0x32, flags: 0x0}, - 415: {region: 0x165, script: 0x5a, flags: 0x0}, - 416: {region: 0xe, script: 0x2, flags: 0x1}, - 417: {region: 0x99, script: 0xe, flags: 0x0}, - 418: {region: 0x165, script: 0x5a, flags: 0x0}, - 419: {region: 0x4e, script: 0x5a, flags: 0x0}, - 420: {region: 0x99, script: 0x35, flags: 0x0}, - 421: {region: 0x41, script: 0x5a, flags: 0x0}, - 422: {region: 0x54, script: 0x5a, flags: 0x0}, - 423: {region: 0x165, script: 0x5a, flags: 0x0}, - 424: {region: 0x80, script: 0x5a, flags: 0x0}, - 425: {region: 0x165, script: 0x5a, flags: 0x0}, - 426: {region: 0x165, script: 0x5a, flags: 0x0}, - 427: {region: 0xa4, script: 0x5a, flags: 0x0}, - 428: {region: 0x98, script: 0x5a, flags: 0x0}, - 429: {region: 0x165, script: 0x5a, flags: 0x0}, - 430: {region: 0xdb, script: 0x22, flags: 0x0}, - 431: {region: 0x165, script: 0x5a, flags: 0x0}, - 432: {region: 0x165, script: 0x5, flags: 0x0}, - 433: {region: 0x49, script: 0x5a, flags: 0x0}, - 434: {region: 0x165, script: 0x5, flags: 0x0}, - 435: {region: 0x165, script: 0x5a, flags: 0x0}, - 436: {region: 0x10, script: 0x3, flags: 0x1}, - 437: {region: 0x165, script: 0x5a, flags: 0x0}, - 438: {region: 0x53, script: 0x3b, flags: 0x0}, - 439: {region: 0x165, script: 0x5a, flags: 0x0}, - 440: {region: 0x135, script: 0x5a, flags: 0x0}, - 441: {region: 0x24, script: 0x5, flags: 0x0}, - 442: {region: 0x165, script: 0x5a, flags: 0x0}, - 443: {region: 0x165, script: 0x2c, flags: 0x0}, - 444: {region: 0x97, script: 0x3e, flags: 0x0}, - 445: {region: 0x165, script: 0x5a, flags: 0x0}, - 446: {region: 0x99, script: 0x22, flags: 0x0}, - 447: {region: 0x165, script: 0x5a, flags: 0x0}, - 448: {region: 0x73, script: 0x5a, flags: 0x0}, - 449: {region: 0x165, script: 0x5a, flags: 0x0}, - 450: {region: 0x165, script: 0x5a, flags: 0x0}, - 451: {region: 0xe7, script: 0x5a, flags: 0x0}, - 452: {region: 0x165, script: 0x5a, flags: 0x0}, - 453: {region: 0x12b, script: 0x40, flags: 0x0}, - 454: {region: 0x53, script: 0x90, flags: 0x0}, - 455: {region: 0x165, script: 0x5a, flags: 0x0}, - 456: {region: 0xe8, script: 0x5, flags: 0x0}, - 457: {region: 0x99, script: 0x22, flags: 0x0}, - 458: {region: 0xaf, script: 0x41, flags: 0x0}, - 459: {region: 0xe7, script: 0x5a, flags: 0x0}, - 460: {region: 0xe8, script: 0x5, flags: 0x0}, - 461: {region: 0xe6, script: 0x5a, flags: 0x0}, - 462: {region: 0x99, script: 0x22, flags: 0x0}, - 463: {region: 0x99, script: 0x22, flags: 0x0}, - 464: {region: 0x165, script: 0x5a, flags: 0x0}, - 465: {region: 0x90, script: 0x5a, flags: 0x0}, - 466: {region: 0x60, script: 0x5a, flags: 0x0}, - 467: {region: 0x53, script: 0x3b, flags: 0x0}, - 468: {region: 0x91, script: 0x5a, flags: 0x0}, - 469: {region: 0x92, script: 0x5a, flags: 0x0}, - 470: {region: 0x165, script: 0x5a, flags: 0x0}, - 471: {region: 0x28, script: 0x8, flags: 0x0}, - 472: {region: 0xd2, script: 0x5a, flags: 0x0}, - 473: {region: 0x78, script: 0x5a, flags: 0x0}, - 474: {region: 0x165, script: 0x5a, flags: 0x0}, - 475: {region: 0x165, script: 0x5a, flags: 0x0}, - 476: {region: 0xd0, script: 0x5a, flags: 0x0}, - 477: {region: 0xd6, script: 0x5a, flags: 0x0}, - 478: {region: 0x165, script: 0x5a, flags: 0x0}, - 479: {region: 0x165, script: 0x5a, flags: 0x0}, - 480: {region: 0x165, script: 0x5a, flags: 0x0}, - 481: {region: 0x95, script: 0x5a, flags: 0x0}, - 482: {region: 0x165, script: 0x5a, flags: 0x0}, - 483: {region: 0x165, script: 0x5a, flags: 0x0}, - 484: {region: 0x165, script: 0x5a, flags: 0x0}, - 486: {region: 0x122, script: 0x5a, flags: 0x0}, - 487: {region: 0xd6, script: 0x5a, flags: 0x0}, - 488: {region: 0x165, script: 0x5a, flags: 0x0}, - 489: {region: 0x165, script: 0x5a, flags: 0x0}, - 490: {region: 0x53, script: 0xfa, flags: 0x0}, - 491: {region: 0x165, script: 0x5a, flags: 0x0}, - 492: {region: 0x135, script: 0x5a, flags: 0x0}, - 493: {region: 0x165, script: 0x5a, flags: 0x0}, - 494: {region: 0x49, script: 0x5a, flags: 0x0}, - 495: {region: 0x165, script: 0x5a, flags: 0x0}, - 496: {region: 0x165, script: 0x5a, flags: 0x0}, - 497: {region: 0xe7, script: 0x5a, flags: 0x0}, - 498: {region: 0x165, script: 0x5a, flags: 0x0}, - 499: {region: 0x95, script: 0x5a, flags: 0x0}, - 500: {region: 0x106, script: 0x20, flags: 0x0}, - 501: {region: 0x1, script: 0x5a, flags: 0x0}, - 502: {region: 0x165, script: 0x5a, flags: 0x0}, - 503: {region: 0x165, script: 0x5a, flags: 0x0}, - 504: {region: 0x9d, script: 0x5a, flags: 0x0}, - 505: {region: 0x9e, script: 0x5a, flags: 0x0}, - 506: {region: 0x49, script: 0x17, flags: 0x0}, - 507: {region: 0x97, script: 0x3e, flags: 0x0}, - 508: {region: 0x165, script: 0x5a, flags: 0x0}, - 509: {region: 0x165, script: 0x5a, flags: 0x0}, - 510: {region: 0x106, script: 0x5a, flags: 0x0}, - 511: {region: 0x165, script: 0x5a, flags: 0x0}, - 512: {region: 0xa2, script: 0x49, flags: 0x0}, - 513: {region: 0x165, script: 0x5a, flags: 0x0}, - 514: {region: 0xa0, script: 0x5a, flags: 0x0}, - 515: {region: 0x1, script: 0x5a, flags: 0x0}, - 516: {region: 0x165, script: 0x5a, flags: 0x0}, - 517: {region: 0x165, script: 0x5a, flags: 0x0}, - 518: {region: 0x165, script: 0x5a, flags: 0x0}, - 519: {region: 0x52, script: 0x5a, flags: 0x0}, - 520: {region: 0x130, script: 0x3e, flags: 0x0}, - 521: {region: 0x165, script: 0x5a, flags: 0x0}, - 522: {region: 0x12f, script: 0x5a, flags: 0x0}, - 523: {region: 0xdb, script: 0x22, flags: 0x0}, - 524: {region: 0x165, script: 0x5a, flags: 0x0}, - 525: {region: 0x63, script: 0x5a, flags: 0x0}, - 526: {region: 0x95, script: 0x5a, flags: 0x0}, - 527: {region: 0x95, script: 0x5a, flags: 0x0}, - 528: {region: 0x7d, script: 0x2e, flags: 0x0}, - 529: {region: 0x137, script: 0x20, flags: 0x0}, - 530: {region: 0x67, script: 0x5a, flags: 0x0}, - 531: {region: 0xc4, script: 0x5a, flags: 0x0}, - 532: {region: 0x165, script: 0x5a, flags: 0x0}, - 533: {region: 0x165, script: 0x5a, flags: 0x0}, - 534: {region: 0xd6, script: 0x5a, flags: 0x0}, - 535: {region: 0xa4, script: 0x5a, flags: 0x0}, - 536: {region: 0xc3, script: 0x5a, flags: 0x0}, - 537: {region: 0x106, script: 0x20, flags: 0x0}, - 538: {region: 0x165, script: 0x5a, flags: 0x0}, - 539: {region: 0x165, script: 0x5a, flags: 0x0}, - 540: {region: 0x165, script: 0x5a, flags: 0x0}, - 541: {region: 0x165, script: 0x5a, flags: 0x0}, - 542: {region: 0xd4, script: 0x5, flags: 0x0}, - 543: {region: 0xd6, script: 0x5a, flags: 0x0}, - 544: {region: 0x164, script: 0x5a, flags: 0x0}, - 545: {region: 0x165, script: 0x5a, flags: 0x0}, - 546: {region: 0x165, script: 0x5a, flags: 0x0}, - 547: {region: 0x12f, script: 0x5a, flags: 0x0}, - 548: {region: 0x122, script: 0x5, flags: 0x0}, - 549: {region: 0x165, script: 0x5a, flags: 0x0}, - 550: {region: 0x123, script: 0xeb, flags: 0x0}, - 551: {region: 0x5a, script: 0x5a, flags: 0x0}, - 552: {region: 0x52, script: 0x5a, flags: 0x0}, - 553: {region: 0x165, script: 0x5a, flags: 0x0}, - 554: {region: 0x4f, script: 0x5a, flags: 0x0}, - 555: {region: 0x99, script: 0x22, flags: 0x0}, - 556: {region: 0x99, script: 0x22, flags: 0x0}, - 557: {region: 0x4b, script: 0x5a, flags: 0x0}, - 558: {region: 0x95, script: 0x5a, flags: 0x0}, - 559: {region: 0x165, script: 0x5a, flags: 0x0}, - 560: {region: 0x41, script: 0x5a, flags: 0x0}, - 561: {region: 0x99, script: 0x5a, flags: 0x0}, - 562: {region: 0x53, script: 0xe2, flags: 0x0}, - 563: {region: 0x99, script: 0x22, flags: 0x0}, - 564: {region: 0xc3, script: 0x5a, flags: 0x0}, - 565: {region: 0x165, script: 0x5a, flags: 0x0}, - 566: {region: 0x99, script: 0x75, flags: 0x0}, - 567: {region: 0xe8, script: 0x5, flags: 0x0}, - 568: {region: 0x165, script: 0x5a, flags: 0x0}, - 569: {region: 0xa4, script: 0x5a, flags: 0x0}, - 570: {region: 0x165, script: 0x5a, flags: 0x0}, - 571: {region: 0x12b, script: 0x5a, flags: 0x0}, - 572: {region: 0x165, script: 0x5a, flags: 0x0}, - 573: {region: 0xd2, script: 0x5a, flags: 0x0}, - 574: {region: 0x165, script: 0x5a, flags: 0x0}, - 575: {region: 0xaf, script: 0x57, flags: 0x0}, - 576: {region: 0x165, script: 0x5a, flags: 0x0}, - 577: {region: 0x165, script: 0x5a, flags: 0x0}, - 578: {region: 0x13, script: 0x6, flags: 0x1}, - 579: {region: 0x165, script: 0x5a, flags: 0x0}, - 580: {region: 0x52, script: 0x5a, flags: 0x0}, - 581: {region: 0x82, script: 0x5a, flags: 0x0}, - 582: {region: 0xa4, script: 0x5a, flags: 0x0}, - 583: {region: 0x165, script: 0x5a, flags: 0x0}, - 584: {region: 0x165, script: 0x5a, flags: 0x0}, - 585: {region: 0x165, script: 0x5a, flags: 0x0}, - 586: {region: 0xa6, script: 0x4e, flags: 0x0}, - 587: {region: 0x2a, script: 0x5a, flags: 0x0}, - 588: {region: 0x165, script: 0x5a, flags: 0x0}, - 589: {region: 0x165, script: 0x5a, flags: 0x0}, - 590: {region: 0x165, script: 0x5a, flags: 0x0}, - 591: {region: 0x165, script: 0x5a, flags: 0x0}, - 592: {region: 0x165, script: 0x5a, flags: 0x0}, - 593: {region: 0x99, script: 0x52, flags: 0x0}, - 594: {region: 0x8b, script: 0x5a, flags: 0x0}, - 595: {region: 0x165, script: 0x5a, flags: 0x0}, - 596: {region: 0xab, script: 0x53, flags: 0x0}, - 597: {region: 0x106, script: 0x20, flags: 0x0}, - 598: {region: 0x99, script: 0x22, flags: 0x0}, - 599: {region: 0x165, script: 0x5a, flags: 0x0}, - 600: {region: 0x75, script: 0x5a, flags: 0x0}, - 601: {region: 0x165, script: 0x5a, flags: 0x0}, - 602: {region: 0xb4, script: 0x5a, flags: 0x0}, - 603: {region: 0x165, script: 0x5a, flags: 0x0}, - 604: {region: 0x165, script: 0x5a, flags: 0x0}, - 605: {region: 0x165, script: 0x5a, flags: 0x0}, - 606: {region: 0x165, script: 0x5a, flags: 0x0}, - 607: {region: 0x165, script: 0x5a, flags: 0x0}, - 608: {region: 0x165, script: 0x5a, flags: 0x0}, - 609: {region: 0x165, script: 0x5a, flags: 0x0}, - 610: {region: 0x165, script: 0x2c, flags: 0x0}, - 611: {region: 0x165, script: 0x5a, flags: 0x0}, - 612: {region: 0x106, script: 0x20, flags: 0x0}, - 613: {region: 0x112, script: 0x5a, flags: 0x0}, - 614: {region: 0xe7, script: 0x5a, flags: 0x0}, - 615: {region: 0x106, script: 0x5a, flags: 0x0}, - 616: {region: 0x165, script: 0x5a, flags: 0x0}, - 617: {region: 0x99, script: 0x22, flags: 0x0}, - 618: {region: 0x99, script: 0x5, flags: 0x0}, - 619: {region: 0x12f, script: 0x5a, flags: 0x0}, - 620: {region: 0x165, script: 0x5a, flags: 0x0}, - 621: {region: 0x52, script: 0x5a, flags: 0x0}, - 622: {region: 0x60, script: 0x5a, flags: 0x0}, - 623: {region: 0x165, script: 0x5a, flags: 0x0}, - 624: {region: 0x165, script: 0x5a, flags: 0x0}, - 625: {region: 0x165, script: 0x2c, flags: 0x0}, - 626: {region: 0x165, script: 0x5a, flags: 0x0}, - 627: {region: 0x165, script: 0x5a, flags: 0x0}, - 628: {region: 0x19, script: 0x3, flags: 0x1}, - 629: {region: 0x165, script: 0x5a, flags: 0x0}, - 630: {region: 0x165, script: 0x5a, flags: 0x0}, - 631: {region: 0x165, script: 0x5a, flags: 0x0}, - 632: {region: 0x165, script: 0x5a, flags: 0x0}, - 633: {region: 0x106, script: 0x20, flags: 0x0}, - 634: {region: 0x165, script: 0x5a, flags: 0x0}, - 635: {region: 0x165, script: 0x5a, flags: 0x0}, - 636: {region: 0x165, script: 0x5a, flags: 0x0}, - 637: {region: 0x106, script: 0x20, flags: 0x0}, - 638: {region: 0x165, script: 0x5a, flags: 0x0}, - 639: {region: 0x95, script: 0x5a, flags: 0x0}, - 640: {region: 0xe8, script: 0x5, flags: 0x0}, - 641: {region: 0x7b, script: 0x5a, flags: 0x0}, - 642: {region: 0x165, script: 0x5a, flags: 0x0}, - 643: {region: 0x165, script: 0x5a, flags: 0x0}, - 644: {region: 0x165, script: 0x5a, flags: 0x0}, - 645: {region: 0x165, script: 0x2c, flags: 0x0}, - 646: {region: 0x123, script: 0xeb, flags: 0x0}, - 647: {region: 0xe8, script: 0x5, flags: 0x0}, - 648: {region: 0x165, script: 0x5a, flags: 0x0}, - 649: {region: 0x165, script: 0x5a, flags: 0x0}, - 650: {region: 0x1c, script: 0x5, flags: 0x1}, - 651: {region: 0x165, script: 0x5a, flags: 0x0}, - 652: {region: 0x165, script: 0x5a, flags: 0x0}, - 653: {region: 0x165, script: 0x5a, flags: 0x0}, - 654: {region: 0x138, script: 0x5a, flags: 0x0}, - 655: {region: 0x87, script: 0x5e, flags: 0x0}, - 656: {region: 0x97, script: 0x3e, flags: 0x0}, - 657: {region: 0x12f, script: 0x5a, flags: 0x0}, - 658: {region: 0xe8, script: 0x5, flags: 0x0}, - 659: {region: 0x131, script: 0x5a, flags: 0x0}, - 660: {region: 0x165, script: 0x5a, flags: 0x0}, - 661: {region: 0xb7, script: 0x5a, flags: 0x0}, - 662: {region: 0x106, script: 0x20, flags: 0x0}, - 663: {region: 0x165, script: 0x5a, flags: 0x0}, - 664: {region: 0x95, script: 0x5a, flags: 0x0}, - 665: {region: 0x165, script: 0x5a, flags: 0x0}, - 666: {region: 0x53, script: 0xeb, flags: 0x0}, - 667: {region: 0x165, script: 0x5a, flags: 0x0}, - 668: {region: 0x165, script: 0x5a, flags: 0x0}, - 669: {region: 0x165, script: 0x5a, flags: 0x0}, - 670: {region: 0x165, script: 0x5a, flags: 0x0}, - 671: {region: 0x99, script: 0x5c, flags: 0x0}, - 672: {region: 0x165, script: 0x5a, flags: 0x0}, - 673: {region: 0x165, script: 0x5a, flags: 0x0}, - 674: {region: 0x106, script: 0x20, flags: 0x0}, - 675: {region: 0x131, script: 0x5a, flags: 0x0}, - 676: {region: 0x165, script: 0x5a, flags: 0x0}, - 677: {region: 0xd9, script: 0x5a, flags: 0x0}, - 678: {region: 0x165, script: 0x5a, flags: 0x0}, - 679: {region: 0x165, script: 0x5a, flags: 0x0}, - 680: {region: 0x21, script: 0x2, flags: 0x1}, - 681: {region: 0x165, script: 0x5a, flags: 0x0}, - 682: {region: 0x165, script: 0x5a, flags: 0x0}, - 683: {region: 0x9e, script: 0x5a, flags: 0x0}, - 684: {region: 0x53, script: 0x60, flags: 0x0}, - 685: {region: 0x95, script: 0x5a, flags: 0x0}, - 686: {region: 0x9c, script: 0x5, flags: 0x0}, - 687: {region: 0x135, script: 0x5a, flags: 0x0}, - 688: {region: 0x165, script: 0x5a, flags: 0x0}, - 689: {region: 0x165, script: 0x5a, flags: 0x0}, - 690: {region: 0x99, script: 0xe6, flags: 0x0}, - 691: {region: 0x9e, script: 0x5a, flags: 0x0}, - 692: {region: 0x165, script: 0x5a, flags: 0x0}, - 693: {region: 0x4b, script: 0x5a, flags: 0x0}, - 694: {region: 0x165, script: 0x5a, flags: 0x0}, - 695: {region: 0x165, script: 0x5a, flags: 0x0}, - 696: {region: 0xaf, script: 0x57, flags: 0x0}, - 697: {region: 0x165, script: 0x5a, flags: 0x0}, - 698: {region: 0x165, script: 0x5a, flags: 0x0}, - 699: {region: 0x4b, script: 0x5a, flags: 0x0}, - 700: {region: 0x165, script: 0x5a, flags: 0x0}, - 701: {region: 0x165, script: 0x5a, flags: 0x0}, - 702: {region: 0x162, script: 0x5a, flags: 0x0}, - 703: {region: 0x9c, script: 0x5, flags: 0x0}, - 704: {region: 0xb6, script: 0x5a, flags: 0x0}, - 705: {region: 0xb8, script: 0x5a, flags: 0x0}, - 706: {region: 0x4b, script: 0x5a, flags: 0x0}, - 707: {region: 0x4b, script: 0x5a, flags: 0x0}, - 708: {region: 0xa4, script: 0x5a, flags: 0x0}, - 709: {region: 0xa4, script: 0x5a, flags: 0x0}, - 710: {region: 0x9c, script: 0x5, flags: 0x0}, - 711: {region: 0xb8, script: 0x5a, flags: 0x0}, - 712: {region: 0x123, script: 0xeb, flags: 0x0}, - 713: {region: 0x53, script: 0x3b, flags: 0x0}, - 714: {region: 0x12b, script: 0x5a, flags: 0x0}, - 715: {region: 0x95, script: 0x5a, flags: 0x0}, - 716: {region: 0x52, script: 0x5a, flags: 0x0}, - 717: {region: 0x99, script: 0x22, flags: 0x0}, - 718: {region: 0x99, script: 0x22, flags: 0x0}, - 719: {region: 0x95, script: 0x5a, flags: 0x0}, - 720: {region: 0x23, script: 0x3, flags: 0x1}, - 721: {region: 0xa4, script: 0x5a, flags: 0x0}, - 722: {region: 0x165, script: 0x5a, flags: 0x0}, - 723: {region: 0xcf, script: 0x5a, flags: 0x0}, - 724: {region: 0x165, script: 0x5a, flags: 0x0}, - 725: {region: 0x165, script: 0x5a, flags: 0x0}, - 726: {region: 0x165, script: 0x5a, flags: 0x0}, - 727: {region: 0x165, script: 0x5a, flags: 0x0}, - 728: {region: 0x165, script: 0x5a, flags: 0x0}, - 729: {region: 0x165, script: 0x5a, flags: 0x0}, - 730: {region: 0x165, script: 0x5a, flags: 0x0}, - 731: {region: 0x165, script: 0x5a, flags: 0x0}, - 732: {region: 0x165, script: 0x5a, flags: 0x0}, - 733: {region: 0x165, script: 0x5a, flags: 0x0}, - 734: {region: 0x165, script: 0x5a, flags: 0x0}, - 735: {region: 0x165, script: 0x5, flags: 0x0}, - 736: {region: 0x106, script: 0x20, flags: 0x0}, - 737: {region: 0xe7, script: 0x5a, flags: 0x0}, - 738: {region: 0x165, script: 0x5a, flags: 0x0}, - 739: {region: 0x95, script: 0x5a, flags: 0x0}, - 740: {region: 0x165, script: 0x2c, flags: 0x0}, - 741: {region: 0x165, script: 0x5a, flags: 0x0}, - 742: {region: 0x165, script: 0x5a, flags: 0x0}, - 743: {region: 0x165, script: 0x5a, flags: 0x0}, - 744: {region: 0x112, script: 0x5a, flags: 0x0}, - 745: {region: 0xa4, script: 0x5a, flags: 0x0}, - 746: {region: 0x165, script: 0x5a, flags: 0x0}, - 747: {region: 0x165, script: 0x5a, flags: 0x0}, - 748: {region: 0x123, script: 0x5, flags: 0x0}, - 749: {region: 0xcc, script: 0x5a, flags: 0x0}, - 750: {region: 0x165, script: 0x5a, flags: 0x0}, - 751: {region: 0x165, script: 0x5a, flags: 0x0}, - 752: {region: 0x165, script: 0x5a, flags: 0x0}, - 753: {region: 0xbf, script: 0x5a, flags: 0x0}, - 754: {region: 0xd1, script: 0x5a, flags: 0x0}, - 755: {region: 0x165, script: 0x5a, flags: 0x0}, - 756: {region: 0x52, script: 0x5a, flags: 0x0}, - 757: {region: 0xdb, script: 0x22, flags: 0x0}, - 758: {region: 0x12f, script: 0x5a, flags: 0x0}, - 759: {region: 0xc0, script: 0x5a, flags: 0x0}, - 760: {region: 0x165, script: 0x5a, flags: 0x0}, - 761: {region: 0x165, script: 0x5a, flags: 0x0}, - 762: {region: 0xe0, script: 0x5a, flags: 0x0}, - 763: {region: 0x165, script: 0x5a, flags: 0x0}, - 764: {region: 0x95, script: 0x5a, flags: 0x0}, - 765: {region: 0x9b, script: 0x3d, flags: 0x0}, - 766: {region: 0x165, script: 0x5a, flags: 0x0}, - 767: {region: 0xc2, script: 0x20, flags: 0x0}, - 768: {region: 0x165, script: 0x5, flags: 0x0}, - 769: {region: 0x165, script: 0x5a, flags: 0x0}, - 770: {region: 0x165, script: 0x5a, flags: 0x0}, - 771: {region: 0x165, script: 0x5a, flags: 0x0}, - 772: {region: 0x99, script: 0x6e, flags: 0x0}, - 773: {region: 0x165, script: 0x5a, flags: 0x0}, - 774: {region: 0x165, script: 0x5a, flags: 0x0}, - 775: {region: 0x10b, script: 0x5a, flags: 0x0}, - 776: {region: 0x165, script: 0x5a, flags: 0x0}, - 777: {region: 0x165, script: 0x5a, flags: 0x0}, - 778: {region: 0x165, script: 0x5a, flags: 0x0}, - 779: {region: 0x26, script: 0x3, flags: 0x1}, - 780: {region: 0x165, script: 0x5a, flags: 0x0}, - 781: {region: 0x165, script: 0x5a, flags: 0x0}, - 782: {region: 0x99, script: 0xe, flags: 0x0}, - 783: {region: 0xc4, script: 0x75, flags: 0x0}, - 785: {region: 0x165, script: 0x5a, flags: 0x0}, - 786: {region: 0x49, script: 0x5a, flags: 0x0}, - 787: {region: 0x49, script: 0x5a, flags: 0x0}, - 788: {region: 0x37, script: 0x5a, flags: 0x0}, - 789: {region: 0x165, script: 0x5a, flags: 0x0}, - 790: {region: 0x165, script: 0x5a, flags: 0x0}, - 791: {region: 0x165, script: 0x5a, flags: 0x0}, - 792: {region: 0x165, script: 0x5a, flags: 0x0}, - 793: {region: 0x165, script: 0x5a, flags: 0x0}, - 794: {region: 0x165, script: 0x5a, flags: 0x0}, - 795: {region: 0x99, script: 0x22, flags: 0x0}, - 796: {region: 0xdb, script: 0x22, flags: 0x0}, - 797: {region: 0x106, script: 0x20, flags: 0x0}, - 798: {region: 0x35, script: 0x72, flags: 0x0}, - 799: {region: 0x29, script: 0x3, flags: 0x1}, - 800: {region: 0xcb, script: 0x5a, flags: 0x0}, - 801: {region: 0x165, script: 0x5a, flags: 0x0}, - 802: {region: 0x165, script: 0x5a, flags: 0x0}, - 803: {region: 0x165, script: 0x5a, flags: 0x0}, - 804: {region: 0x99, script: 0x22, flags: 0x0}, - 805: {region: 0x52, script: 0x5a, flags: 0x0}, - 807: {region: 0x165, script: 0x5a, flags: 0x0}, - 808: {region: 0x135, script: 0x5a, flags: 0x0}, - 809: {region: 0x165, script: 0x5a, flags: 0x0}, - 810: {region: 0x165, script: 0x5a, flags: 0x0}, - 811: {region: 0xe8, script: 0x5, flags: 0x0}, - 812: {region: 0xc3, script: 0x5a, flags: 0x0}, - 813: {region: 0x99, script: 0x22, flags: 0x0}, - 814: {region: 0x95, script: 0x5a, flags: 0x0}, - 815: {region: 0x164, script: 0x5a, flags: 0x0}, - 816: {region: 0x165, script: 0x5a, flags: 0x0}, - 817: {region: 0xc4, script: 0x75, flags: 0x0}, - 818: {region: 0x165, script: 0x5a, flags: 0x0}, - 819: {region: 0x165, script: 0x2c, flags: 0x0}, - 820: {region: 0x106, script: 0x20, flags: 0x0}, - 821: {region: 0x165, script: 0x5a, flags: 0x0}, - 822: {region: 0x131, script: 0x5a, flags: 0x0}, - 823: {region: 0x9c, script: 0x66, flags: 0x0}, - 824: {region: 0x165, script: 0x5a, flags: 0x0}, - 825: {region: 0x165, script: 0x5a, flags: 0x0}, - 826: {region: 0x9c, script: 0x5, flags: 0x0}, - 827: {region: 0x165, script: 0x5a, flags: 0x0}, - 828: {region: 0x165, script: 0x5a, flags: 0x0}, - 829: {region: 0x165, script: 0x5a, flags: 0x0}, - 830: {region: 0xdd, script: 0x5a, flags: 0x0}, - 831: {region: 0x165, script: 0x5a, flags: 0x0}, - 832: {region: 0x165, script: 0x5a, flags: 0x0}, - 834: {region: 0x165, script: 0x5a, flags: 0x0}, - 835: {region: 0x53, script: 0x3b, flags: 0x0}, - 836: {region: 0x9e, script: 0x5a, flags: 0x0}, - 837: {region: 0xd2, script: 0x5a, flags: 0x0}, - 838: {region: 0x165, script: 0x5a, flags: 0x0}, - 839: {region: 0xda, script: 0x5a, flags: 0x0}, - 840: {region: 0x165, script: 0x5a, flags: 0x0}, - 841: {region: 0x165, script: 0x5a, flags: 0x0}, - 842: {region: 0x165, script: 0x5a, flags: 0x0}, - 843: {region: 0xcf, script: 0x5a, flags: 0x0}, - 844: {region: 0x165, script: 0x5a, flags: 0x0}, - 845: {region: 0x165, script: 0x5a, flags: 0x0}, - 846: {region: 0x164, script: 0x5a, flags: 0x0}, - 847: {region: 0xd1, script: 0x5a, flags: 0x0}, - 848: {region: 0x60, script: 0x5a, flags: 0x0}, - 849: {region: 0xdb, script: 0x22, flags: 0x0}, - 850: {region: 0x165, script: 0x5a, flags: 0x0}, - 851: {region: 0xdb, script: 0x22, flags: 0x0}, - 852: {region: 0x165, script: 0x5a, flags: 0x0}, - 853: {region: 0x165, script: 0x5a, flags: 0x0}, - 854: {region: 0xd2, script: 0x5a, flags: 0x0}, - 855: {region: 0x165, script: 0x5a, flags: 0x0}, - 856: {region: 0x165, script: 0x5a, flags: 0x0}, - 857: {region: 0xd1, script: 0x5a, flags: 0x0}, - 858: {region: 0x165, script: 0x5a, flags: 0x0}, - 859: {region: 0xcf, script: 0x5a, flags: 0x0}, - 860: {region: 0xcf, script: 0x5a, flags: 0x0}, - 861: {region: 0x165, script: 0x5a, flags: 0x0}, - 862: {region: 0x165, script: 0x5a, flags: 0x0}, - 863: {region: 0x95, script: 0x5a, flags: 0x0}, - 864: {region: 0x165, script: 0x5a, flags: 0x0}, - 865: {region: 0xdf, script: 0x5a, flags: 0x0}, - 866: {region: 0x165, script: 0x5a, flags: 0x0}, - 867: {region: 0x165, script: 0x5a, flags: 0x0}, - 868: {region: 0x99, script: 0x5a, flags: 0x0}, - 869: {region: 0x165, script: 0x5a, flags: 0x0}, - 870: {region: 0x165, script: 0x5a, flags: 0x0}, - 871: {region: 0xd9, script: 0x5a, flags: 0x0}, - 872: {region: 0x52, script: 0x5a, flags: 0x0}, - 873: {region: 0x165, script: 0x5a, flags: 0x0}, - 874: {region: 0xda, script: 0x5a, flags: 0x0}, - 875: {region: 0x165, script: 0x5a, flags: 0x0}, - 876: {region: 0x52, script: 0x5a, flags: 0x0}, - 877: {region: 0x165, script: 0x5a, flags: 0x0}, - 878: {region: 0x165, script: 0x5a, flags: 0x0}, - 879: {region: 0xda, script: 0x5a, flags: 0x0}, - 880: {region: 0x123, script: 0x56, flags: 0x0}, - 881: {region: 0x99, script: 0x22, flags: 0x0}, - 882: {region: 0x10c, script: 0xc9, flags: 0x0}, - 883: {region: 0x165, script: 0x5a, flags: 0x0}, - 884: {region: 0x165, script: 0x5a, flags: 0x0}, - 885: {region: 0x84, script: 0x7c, flags: 0x0}, - 886: {region: 0x161, script: 0x5a, flags: 0x0}, - 887: {region: 0x165, script: 0x5a, flags: 0x0}, - 888: {region: 0x49, script: 0x17, flags: 0x0}, - 889: {region: 0x165, script: 0x5a, flags: 0x0}, - 890: {region: 0x161, script: 0x5a, flags: 0x0}, - 891: {region: 0x165, script: 0x5a, flags: 0x0}, - 892: {region: 0x165, script: 0x5a, flags: 0x0}, - 893: {region: 0x165, script: 0x5a, flags: 0x0}, - 894: {region: 0x165, script: 0x5a, flags: 0x0}, - 895: {region: 0x165, script: 0x5a, flags: 0x0}, - 896: {region: 0x117, script: 0x5a, flags: 0x0}, - 897: {region: 0x165, script: 0x5a, flags: 0x0}, - 898: {region: 0x165, script: 0x5a, flags: 0x0}, - 899: {region: 0x135, script: 0x5a, flags: 0x0}, - 900: {region: 0x165, script: 0x5a, flags: 0x0}, - 901: {region: 0x53, script: 0x5a, flags: 0x0}, - 902: {region: 0x165, script: 0x5a, flags: 0x0}, - 903: {region: 0xce, script: 0x5a, flags: 0x0}, - 904: {region: 0x12f, script: 0x5a, flags: 0x0}, - 905: {region: 0x131, script: 0x5a, flags: 0x0}, - 906: {region: 0x80, script: 0x5a, flags: 0x0}, - 907: {region: 0x78, script: 0x5a, flags: 0x0}, - 908: {region: 0x165, script: 0x5a, flags: 0x0}, - 910: {region: 0x165, script: 0x5a, flags: 0x0}, - 911: {region: 0x165, script: 0x5a, flags: 0x0}, - 912: {region: 0x6f, script: 0x5a, flags: 0x0}, - 913: {region: 0x165, script: 0x5a, flags: 0x0}, - 914: {region: 0x165, script: 0x5a, flags: 0x0}, - 915: {region: 0x165, script: 0x5a, flags: 0x0}, - 916: {region: 0x165, script: 0x5a, flags: 0x0}, - 917: {region: 0x99, script: 0x81, flags: 0x0}, - 918: {region: 0x165, script: 0x5a, flags: 0x0}, - 919: {region: 0x165, script: 0x5, flags: 0x0}, - 920: {region: 0x7d, script: 0x20, flags: 0x0}, - 921: {region: 0x135, script: 0x82, flags: 0x0}, - 922: {region: 0x165, script: 0x5, flags: 0x0}, - 923: {region: 0xc5, script: 0x80, flags: 0x0}, - 924: {region: 0x165, script: 0x5a, flags: 0x0}, - 925: {region: 0x2c, script: 0x3, flags: 0x1}, - 926: {region: 0xe7, script: 0x5a, flags: 0x0}, - 927: {region: 0x2f, script: 0x2, flags: 0x1}, - 928: {region: 0xe7, script: 0x5a, flags: 0x0}, - 929: {region: 0x30, script: 0x5a, flags: 0x0}, - 930: {region: 0xf0, script: 0x5a, flags: 0x0}, - 931: {region: 0x165, script: 0x5a, flags: 0x0}, - 932: {region: 0x78, script: 0x5a, flags: 0x0}, - 933: {region: 0xd6, script: 0x5a, flags: 0x0}, - 934: {region: 0x135, script: 0x5a, flags: 0x0}, - 935: {region: 0x49, script: 0x5a, flags: 0x0}, - 936: {region: 0x165, script: 0x5a, flags: 0x0}, - 937: {region: 0x9c, script: 0xf7, flags: 0x0}, - 938: {region: 0x165, script: 0x5a, flags: 0x0}, - 939: {region: 0x60, script: 0x5a, flags: 0x0}, - 940: {region: 0x165, script: 0x5, flags: 0x0}, - 941: {region: 0xb0, script: 0x8e, flags: 0x0}, - 943: {region: 0x165, script: 0x5a, flags: 0x0}, - 944: {region: 0x165, script: 0x5a, flags: 0x0}, - 945: {region: 0x99, script: 0x12, flags: 0x0}, - 946: {region: 0xa4, script: 0x5a, flags: 0x0}, - 947: {region: 0xe9, script: 0x5a, flags: 0x0}, - 948: {region: 0x165, script: 0x5a, flags: 0x0}, - 949: {region: 0x9e, script: 0x5a, flags: 0x0}, - 950: {region: 0x165, script: 0x5a, flags: 0x0}, - 951: {region: 0x165, script: 0x5a, flags: 0x0}, - 952: {region: 0x87, script: 0x34, flags: 0x0}, - 953: {region: 0x75, script: 0x5a, flags: 0x0}, - 954: {region: 0x165, script: 0x5a, flags: 0x0}, - 955: {region: 0xe8, script: 0x4d, flags: 0x0}, - 956: {region: 0x9c, script: 0x5, flags: 0x0}, - 957: {region: 0x1, script: 0x5a, flags: 0x0}, - 958: {region: 0x24, script: 0x5, flags: 0x0}, - 959: {region: 0x165, script: 0x5a, flags: 0x0}, - 960: {region: 0x41, script: 0x5a, flags: 0x0}, - 961: {region: 0x165, script: 0x5a, flags: 0x0}, - 962: {region: 0x7a, script: 0x5a, flags: 0x0}, - 963: {region: 0x165, script: 0x5a, flags: 0x0}, - 964: {region: 0xe4, script: 0x5a, flags: 0x0}, - 965: {region: 0x89, script: 0x5a, flags: 0x0}, - 966: {region: 0x69, script: 0x5a, flags: 0x0}, - 967: {region: 0x165, script: 0x5a, flags: 0x0}, - 968: {region: 0x99, script: 0x22, flags: 0x0}, - 969: {region: 0x165, script: 0x5a, flags: 0x0}, - 970: {region: 0x102, script: 0x5a, flags: 0x0}, - 971: {region: 0x95, script: 0x5a, flags: 0x0}, - 972: {region: 0x165, script: 0x5a, flags: 0x0}, - 973: {region: 0x165, script: 0x5a, flags: 0x0}, - 974: {region: 0x9e, script: 0x5a, flags: 0x0}, - 975: {region: 0x165, script: 0x5, flags: 0x0}, - 976: {region: 0x99, script: 0x5a, flags: 0x0}, - 977: {region: 0x31, script: 0x2, flags: 0x1}, - 978: {region: 0xdb, script: 0x22, flags: 0x0}, - 979: {region: 0x35, script: 0xe, flags: 0x0}, - 980: {region: 0x4e, script: 0x5a, flags: 0x0}, - 981: {region: 0x72, script: 0x5a, flags: 0x0}, - 982: {region: 0x4e, script: 0x5a, flags: 0x0}, - 983: {region: 0x9c, script: 0x5, flags: 0x0}, - 984: {region: 0x10c, script: 0x5a, flags: 0x0}, - 985: {region: 0x3a, script: 0x5a, flags: 0x0}, - 986: {region: 0x165, script: 0x5a, flags: 0x0}, - 987: {region: 0xd1, script: 0x5a, flags: 0x0}, - 988: {region: 0x104, script: 0x5a, flags: 0x0}, - 989: {region: 0x95, script: 0x5a, flags: 0x0}, - 990: {region: 0x12f, script: 0x5a, flags: 0x0}, - 991: {region: 0x165, script: 0x5a, flags: 0x0}, - 992: {region: 0x165, script: 0x5a, flags: 0x0}, - 993: {region: 0x73, script: 0x5a, flags: 0x0}, - 994: {region: 0x106, script: 0x20, flags: 0x0}, - 995: {region: 0x130, script: 0x20, flags: 0x0}, - 996: {region: 0x109, script: 0x5a, flags: 0x0}, - 997: {region: 0x107, script: 0x5a, flags: 0x0}, - 998: {region: 0x12f, script: 0x5a, flags: 0x0}, - 999: {region: 0x165, script: 0x5a, flags: 0x0}, - 1000: {region: 0xa2, script: 0x4c, flags: 0x0}, - 1001: {region: 0x99, script: 0x22, flags: 0x0}, - 1002: {region: 0x80, script: 0x5a, flags: 0x0}, - 1003: {region: 0x106, script: 0x20, flags: 0x0}, - 1004: {region: 0xa4, script: 0x5a, flags: 0x0}, - 1005: {region: 0x95, script: 0x5a, flags: 0x0}, - 1006: {region: 0x99, script: 0x5a, flags: 0x0}, - 1007: {region: 0x114, script: 0x5a, flags: 0x0}, - 1008: {region: 0x99, script: 0xcd, flags: 0x0}, - 1009: {region: 0x165, script: 0x5a, flags: 0x0}, - 1010: {region: 0x165, script: 0x5a, flags: 0x0}, - 1011: {region: 0x12f, script: 0x5a, flags: 0x0}, - 1012: {region: 0x9e, script: 0x5a, flags: 0x0}, - 1013: {region: 0x99, script: 0x22, flags: 0x0}, - 1014: {region: 0x165, script: 0x5, flags: 0x0}, - 1015: {region: 0x9e, script: 0x5a, flags: 0x0}, - 1016: {region: 0x7b, script: 0x5a, flags: 0x0}, - 1017: {region: 0x49, script: 0x5a, flags: 0x0}, - 1018: {region: 0x33, script: 0x4, flags: 0x1}, - 1019: {region: 0x9e, script: 0x5a, flags: 0x0}, - 1020: {region: 0x9c, script: 0x5, flags: 0x0}, - 1021: {region: 0xda, script: 0x5a, flags: 0x0}, - 1022: {region: 0x4f, script: 0x5a, flags: 0x0}, - 1023: {region: 0xd1, script: 0x5a, flags: 0x0}, - 1024: {region: 0xcf, script: 0x5a, flags: 0x0}, - 1025: {region: 0xc3, script: 0x5a, flags: 0x0}, - 1026: {region: 0x4c, script: 0x5a, flags: 0x0}, - 1027: {region: 0x96, script: 0x7e, flags: 0x0}, - 1028: {region: 0xb6, script: 0x5a, flags: 0x0}, - 1029: {region: 0x165, script: 0x2c, flags: 0x0}, - 1030: {region: 0x165, script: 0x5a, flags: 0x0}, - 1032: {region: 0xba, script: 0xe8, flags: 0x0}, - 1033: {region: 0x165, script: 0x5a, flags: 0x0}, - 1034: {region: 0xc4, script: 0x75, flags: 0x0}, - 1035: {region: 0x165, script: 0x5, flags: 0x0}, - 1036: {region: 0xb3, script: 0xd4, flags: 0x0}, - 1037: {region: 0x6f, script: 0x5a, flags: 0x0}, - 1038: {region: 0x165, script: 0x5a, flags: 0x0}, - 1039: {region: 0x165, script: 0x5a, flags: 0x0}, - 1040: {region: 0x165, script: 0x5a, flags: 0x0}, - 1041: {region: 0x165, script: 0x5a, flags: 0x0}, - 1042: {region: 0x111, script: 0x5a, flags: 0x0}, - 1043: {region: 0x165, script: 0x5a, flags: 0x0}, - 1044: {region: 0xe8, script: 0x5, flags: 0x0}, - 1045: {region: 0x165, script: 0x5a, flags: 0x0}, - 1046: {region: 0x10f, script: 0x5a, flags: 0x0}, - 1047: {region: 0x165, script: 0x5a, flags: 0x0}, - 1048: {region: 0xe9, script: 0x5a, flags: 0x0}, - 1049: {region: 0x165, script: 0x5a, flags: 0x0}, - 1050: {region: 0x95, script: 0x5a, flags: 0x0}, - 1051: {region: 0x142, script: 0x5a, flags: 0x0}, - 1052: {region: 0x10c, script: 0x5a, flags: 0x0}, - 1054: {region: 0x10c, script: 0x5a, flags: 0x0}, - 1055: {region: 0x72, script: 0x5a, flags: 0x0}, - 1056: {region: 0x97, script: 0xca, flags: 0x0}, - 1057: {region: 0x165, script: 0x5a, flags: 0x0}, - 1058: {region: 0x72, script: 0x5a, flags: 0x0}, - 1059: {region: 0x164, script: 0x5a, flags: 0x0}, - 1060: {region: 0x165, script: 0x5a, flags: 0x0}, - 1061: {region: 0xc3, script: 0x5a, flags: 0x0}, - 1062: {region: 0x165, script: 0x5a, flags: 0x0}, - 1063: {region: 0x165, script: 0x5a, flags: 0x0}, - 1064: {region: 0x165, script: 0x5a, flags: 0x0}, - 1065: {region: 0x115, script: 0x5a, flags: 0x0}, - 1066: {region: 0x165, script: 0x5a, flags: 0x0}, - 1067: {region: 0x165, script: 0x5a, flags: 0x0}, - 1068: {region: 0x123, script: 0xeb, flags: 0x0}, - 1069: {region: 0x165, script: 0x5a, flags: 0x0}, - 1070: {region: 0x165, script: 0x5a, flags: 0x0}, - 1071: {region: 0x165, script: 0x5a, flags: 0x0}, - 1072: {region: 0x165, script: 0x5a, flags: 0x0}, - 1073: {region: 0x27, script: 0x5a, flags: 0x0}, - 1074: {region: 0x37, script: 0x5, flags: 0x1}, - 1075: {region: 0x99, script: 0xd7, flags: 0x0}, - 1076: {region: 0x116, script: 0x5a, flags: 0x0}, - 1077: {region: 0x114, script: 0x5a, flags: 0x0}, - 1078: {region: 0x99, script: 0x22, flags: 0x0}, - 1079: {region: 0x161, script: 0x5a, flags: 0x0}, - 1080: {region: 0x165, script: 0x5a, flags: 0x0}, - 1081: {region: 0x165, script: 0x5a, flags: 0x0}, - 1082: {region: 0x6d, script: 0x5a, flags: 0x0}, - 1083: {region: 0x161, script: 0x5a, flags: 0x0}, - 1084: {region: 0x165, script: 0x5a, flags: 0x0}, - 1085: {region: 0x60, script: 0x5a, flags: 0x0}, - 1086: {region: 0x95, script: 0x5a, flags: 0x0}, - 1087: {region: 0x165, script: 0x5a, flags: 0x0}, - 1088: {region: 0x165, script: 0x5a, flags: 0x0}, - 1089: {region: 0x12f, script: 0x5a, flags: 0x0}, - 1090: {region: 0x165, script: 0x5a, flags: 0x0}, - 1091: {region: 0x84, script: 0x5a, flags: 0x0}, - 1092: {region: 0x10c, script: 0x5a, flags: 0x0}, - 1093: {region: 0x12f, script: 0x5a, flags: 0x0}, - 1094: {region: 0x15f, script: 0x5, flags: 0x0}, - 1095: {region: 0x4b, script: 0x5a, flags: 0x0}, - 1096: {region: 0x60, script: 0x5a, flags: 0x0}, - 1097: {region: 0x165, script: 0x5a, flags: 0x0}, - 1098: {region: 0x99, script: 0x22, flags: 0x0}, - 1099: {region: 0x95, script: 0x5a, flags: 0x0}, - 1100: {region: 0x165, script: 0x5a, flags: 0x0}, - 1101: {region: 0x35, script: 0xe, flags: 0x0}, - 1102: {region: 0x9b, script: 0xdb, flags: 0x0}, - 1103: {region: 0xe9, script: 0x5a, flags: 0x0}, - 1104: {region: 0x99, script: 0xe3, flags: 0x0}, - 1105: {region: 0xdb, script: 0x22, flags: 0x0}, - 1106: {region: 0x165, script: 0x5a, flags: 0x0}, - 1107: {region: 0x165, script: 0x5a, flags: 0x0}, - 1108: {region: 0x165, script: 0x5a, flags: 0x0}, - 1109: {region: 0x165, script: 0x5a, flags: 0x0}, - 1110: {region: 0x165, script: 0x5a, flags: 0x0}, - 1111: {region: 0x165, script: 0x5a, flags: 0x0}, - 1112: {region: 0x165, script: 0x5a, flags: 0x0}, - 1113: {region: 0x165, script: 0x5a, flags: 0x0}, - 1114: {region: 0xe7, script: 0x5a, flags: 0x0}, - 1115: {region: 0x165, script: 0x5a, flags: 0x0}, - 1116: {region: 0x165, script: 0x5a, flags: 0x0}, - 1117: {region: 0x99, script: 0x52, flags: 0x0}, - 1118: {region: 0x53, script: 0xe1, flags: 0x0}, - 1119: {region: 0xdb, script: 0x22, flags: 0x0}, - 1120: {region: 0xdb, script: 0x22, flags: 0x0}, - 1121: {region: 0x99, script: 0xe6, flags: 0x0}, - 1122: {region: 0x165, script: 0x5a, flags: 0x0}, - 1123: {region: 0x112, script: 0x5a, flags: 0x0}, - 1124: {region: 0x131, script: 0x5a, flags: 0x0}, - 1125: {region: 0x126, script: 0x5a, flags: 0x0}, - 1126: {region: 0x165, script: 0x5a, flags: 0x0}, - 1127: {region: 0x3c, script: 0x3, flags: 0x1}, - 1128: {region: 0x165, script: 0x5a, flags: 0x0}, - 1129: {region: 0x165, script: 0x5a, flags: 0x0}, - 1130: {region: 0x165, script: 0x5a, flags: 0x0}, - 1131: {region: 0x123, script: 0xeb, flags: 0x0}, - 1132: {region: 0xdb, script: 0x22, flags: 0x0}, - 1133: {region: 0xdb, script: 0x22, flags: 0x0}, - 1134: {region: 0xdb, script: 0x22, flags: 0x0}, - 1135: {region: 0x6f, script: 0x2c, flags: 0x0}, - 1136: {region: 0x165, script: 0x5a, flags: 0x0}, - 1137: {region: 0x6d, script: 0x2c, flags: 0x0}, - 1138: {region: 0x165, script: 0x5a, flags: 0x0}, - 1139: {region: 0x165, script: 0x5a, flags: 0x0}, - 1140: {region: 0x165, script: 0x5a, flags: 0x0}, - 1141: {region: 0xd6, script: 0x5a, flags: 0x0}, - 1142: {region: 0x127, script: 0x5a, flags: 0x0}, - 1143: {region: 0x125, script: 0x5a, flags: 0x0}, - 1144: {region: 0x32, script: 0x5a, flags: 0x0}, - 1145: {region: 0xdb, script: 0x22, flags: 0x0}, - 1146: {region: 0xe7, script: 0x5a, flags: 0x0}, - 1147: {region: 0x165, script: 0x5a, flags: 0x0}, - 1148: {region: 0x165, script: 0x5a, flags: 0x0}, - 1149: {region: 0x32, script: 0x5a, flags: 0x0}, - 1150: {region: 0xd4, script: 0x5a, flags: 0x0}, - 1151: {region: 0x165, script: 0x5a, flags: 0x0}, - 1152: {region: 0x161, script: 0x5a, flags: 0x0}, - 1153: {region: 0x165, script: 0x5a, flags: 0x0}, - 1154: {region: 0x129, script: 0x5a, flags: 0x0}, - 1155: {region: 0x165, script: 0x5a, flags: 0x0}, - 1156: {region: 0xce, script: 0x5a, flags: 0x0}, - 1157: {region: 0x165, script: 0x5a, flags: 0x0}, - 1158: {region: 0xe6, script: 0x5a, flags: 0x0}, - 1159: {region: 0x165, script: 0x5a, flags: 0x0}, - 1160: {region: 0x165, script: 0x5a, flags: 0x0}, - 1161: {region: 0x165, script: 0x5a, flags: 0x0}, - 1162: {region: 0x12b, script: 0x5a, flags: 0x0}, - 1163: {region: 0x12b, script: 0x5a, flags: 0x0}, - 1164: {region: 0x12e, script: 0x5a, flags: 0x0}, - 1165: {region: 0x165, script: 0x5, flags: 0x0}, - 1166: {region: 0x161, script: 0x5a, flags: 0x0}, - 1167: {region: 0x87, script: 0x34, flags: 0x0}, - 1168: {region: 0xdb, script: 0x22, flags: 0x0}, - 1169: {region: 0xe7, script: 0x5a, flags: 0x0}, - 1170: {region: 0x43, script: 0xec, flags: 0x0}, - 1171: {region: 0x165, script: 0x5a, flags: 0x0}, - 1172: {region: 0x106, script: 0x20, flags: 0x0}, - 1173: {region: 0x165, script: 0x5a, flags: 0x0}, - 1174: {region: 0x165, script: 0x5a, flags: 0x0}, - 1175: {region: 0x131, script: 0x5a, flags: 0x0}, - 1176: {region: 0x165, script: 0x5a, flags: 0x0}, - 1177: {region: 0x123, script: 0xeb, flags: 0x0}, - 1178: {region: 0x32, script: 0x5a, flags: 0x0}, - 1179: {region: 0x165, script: 0x5a, flags: 0x0}, - 1180: {region: 0x165, script: 0x5a, flags: 0x0}, - 1181: {region: 0xce, script: 0x5a, flags: 0x0}, - 1182: {region: 0x165, script: 0x5a, flags: 0x0}, - 1183: {region: 0x165, script: 0x5a, flags: 0x0}, - 1184: {region: 0x12d, script: 0x5a, flags: 0x0}, - 1185: {region: 0x165, script: 0x5a, flags: 0x0}, - 1187: {region: 0x165, script: 0x5a, flags: 0x0}, - 1188: {region: 0xd4, script: 0x5a, flags: 0x0}, - 1189: {region: 0x53, script: 0xe4, flags: 0x0}, - 1190: {region: 0xe5, script: 0x5a, flags: 0x0}, - 1191: {region: 0x165, script: 0x5a, flags: 0x0}, - 1192: {region: 0x106, script: 0x20, flags: 0x0}, - 1193: {region: 0xba, script: 0x5a, flags: 0x0}, - 1194: {region: 0x165, script: 0x5a, flags: 0x0}, - 1195: {region: 0x106, script: 0x20, flags: 0x0}, - 1196: {region: 0x3f, script: 0x4, flags: 0x1}, - 1197: {region: 0x11c, script: 0xf0, flags: 0x0}, - 1198: {region: 0x130, script: 0x20, flags: 0x0}, - 1199: {region: 0x75, script: 0x5a, flags: 0x0}, - 1200: {region: 0x2a, script: 0x5a, flags: 0x0}, - 1202: {region: 0x43, script: 0x3, flags: 0x1}, - 1203: {region: 0x99, script: 0xe, flags: 0x0}, - 1204: {region: 0xe8, script: 0x5, flags: 0x0}, - 1205: {region: 0x165, script: 0x5a, flags: 0x0}, - 1206: {region: 0x165, script: 0x5a, flags: 0x0}, - 1207: {region: 0x165, script: 0x5a, flags: 0x0}, - 1208: {region: 0x165, script: 0x5a, flags: 0x0}, - 1209: {region: 0x165, script: 0x5a, flags: 0x0}, - 1210: {region: 0x165, script: 0x5a, flags: 0x0}, - 1211: {region: 0x165, script: 0x5a, flags: 0x0}, - 1212: {region: 0x46, script: 0x4, flags: 0x1}, - 1213: {region: 0x165, script: 0x5a, flags: 0x0}, - 1214: {region: 0xb4, script: 0xf1, flags: 0x0}, - 1215: {region: 0x165, script: 0x5a, flags: 0x0}, - 1216: {region: 0x161, script: 0x5a, flags: 0x0}, - 1217: {region: 0x9e, script: 0x5a, flags: 0x0}, - 1218: {region: 0x106, script: 0x5a, flags: 0x0}, - 1219: {region: 0x13e, script: 0x5a, flags: 0x0}, - 1220: {region: 0x11b, script: 0x5a, flags: 0x0}, - 1221: {region: 0x165, script: 0x5a, flags: 0x0}, - 1222: {region: 0x36, script: 0x5a, flags: 0x0}, - 1223: {region: 0x60, script: 0x5a, flags: 0x0}, - 1224: {region: 0xd1, script: 0x5a, flags: 0x0}, - 1225: {region: 0x1, script: 0x5a, flags: 0x0}, - 1226: {region: 0x106, script: 0x5a, flags: 0x0}, - 1227: {region: 0x6a, script: 0x5a, flags: 0x0}, - 1228: {region: 0x12f, script: 0x5a, flags: 0x0}, - 1229: {region: 0x165, script: 0x5a, flags: 0x0}, - 1230: {region: 0x36, script: 0x5a, flags: 0x0}, - 1231: {region: 0x4e, script: 0x5a, flags: 0x0}, - 1232: {region: 0x165, script: 0x5a, flags: 0x0}, - 1233: {region: 0x6f, script: 0x2c, flags: 0x0}, - 1234: {region: 0x165, script: 0x5a, flags: 0x0}, - 1235: {region: 0xe7, script: 0x5a, flags: 0x0}, - 1236: {region: 0x2f, script: 0x5a, flags: 0x0}, - 1237: {region: 0x99, script: 0xe6, flags: 0x0}, - 1238: {region: 0x99, script: 0x22, flags: 0x0}, - 1239: {region: 0x165, script: 0x5a, flags: 0x0}, - 1240: {region: 0x165, script: 0x5a, flags: 0x0}, - 1241: {region: 0x165, script: 0x5a, flags: 0x0}, - 1242: {region: 0x165, script: 0x5a, flags: 0x0}, - 1243: {region: 0x165, script: 0x5a, flags: 0x0}, - 1244: {region: 0x165, script: 0x5a, flags: 0x0}, - 1245: {region: 0x165, script: 0x5a, flags: 0x0}, - 1246: {region: 0x165, script: 0x5a, flags: 0x0}, - 1247: {region: 0x165, script: 0x5a, flags: 0x0}, - 1248: {region: 0x140, script: 0x5a, flags: 0x0}, - 1249: {region: 0x165, script: 0x5a, flags: 0x0}, - 1250: {region: 0x165, script: 0x5a, flags: 0x0}, - 1251: {region: 0xa8, script: 0x5, flags: 0x0}, - 1252: {region: 0x165, script: 0x5a, flags: 0x0}, - 1253: {region: 0x114, script: 0x5a, flags: 0x0}, - 1254: {region: 0x165, script: 0x5a, flags: 0x0}, - 1255: {region: 0x165, script: 0x5a, flags: 0x0}, - 1256: {region: 0x165, script: 0x5a, flags: 0x0}, - 1257: {region: 0x165, script: 0x5a, flags: 0x0}, - 1258: {region: 0x99, script: 0x22, flags: 0x0}, - 1259: {region: 0x53, script: 0x3b, flags: 0x0}, - 1260: {region: 0x165, script: 0x5a, flags: 0x0}, - 1261: {region: 0x165, script: 0x5a, flags: 0x0}, - 1262: {region: 0x41, script: 0x5a, flags: 0x0}, - 1263: {region: 0x165, script: 0x5a, flags: 0x0}, - 1264: {region: 0x12b, script: 0x18, flags: 0x0}, - 1265: {region: 0x165, script: 0x5a, flags: 0x0}, - 1266: {region: 0x161, script: 0x5a, flags: 0x0}, - 1267: {region: 0x165, script: 0x5a, flags: 0x0}, - 1268: {region: 0x12b, script: 0x62, flags: 0x0}, - 1269: {region: 0x12b, script: 0x63, flags: 0x0}, - 1270: {region: 0x7d, script: 0x2e, flags: 0x0}, - 1271: {region: 0x53, script: 0x67, flags: 0x0}, - 1272: {region: 0x10b, script: 0x6c, flags: 0x0}, - 1273: {region: 0x108, script: 0x77, flags: 0x0}, - 1274: {region: 0x99, script: 0x22, flags: 0x0}, - 1275: {region: 0x131, script: 0x5a, flags: 0x0}, - 1276: {region: 0x165, script: 0x5a, flags: 0x0}, - 1277: {region: 0x9c, script: 0x91, flags: 0x0}, - 1278: {region: 0x165, script: 0x5a, flags: 0x0}, - 1279: {region: 0x15e, script: 0xcc, flags: 0x0}, - 1280: {region: 0x165, script: 0x5a, flags: 0x0}, - 1281: {region: 0x165, script: 0x5a, flags: 0x0}, - 1282: {region: 0xdb, script: 0x22, flags: 0x0}, - 1283: {region: 0x165, script: 0x5a, flags: 0x0}, - 1284: {region: 0x165, script: 0x5a, flags: 0x0}, - 1285: {region: 0xd1, script: 0x5a, flags: 0x0}, - 1286: {region: 0x75, script: 0x5a, flags: 0x0}, - 1287: {region: 0x165, script: 0x5a, flags: 0x0}, - 1288: {region: 0x165, script: 0x5a, flags: 0x0}, - 1289: {region: 0x52, script: 0x5a, flags: 0x0}, - 1290: {region: 0x165, script: 0x5a, flags: 0x0}, - 1291: {region: 0x165, script: 0x5a, flags: 0x0}, - 1292: {region: 0x165, script: 0x5a, flags: 0x0}, - 1293: {region: 0x52, script: 0x5a, flags: 0x0}, - 1294: {region: 0x165, script: 0x5a, flags: 0x0}, - 1295: {region: 0x165, script: 0x5a, flags: 0x0}, - 1296: {region: 0x165, script: 0x5a, flags: 0x0}, - 1297: {region: 0x165, script: 0x5a, flags: 0x0}, - 1298: {region: 0x1, script: 0x3e, flags: 0x0}, - 1299: {region: 0x165, script: 0x5a, flags: 0x0}, - 1300: {region: 0x165, script: 0x5a, flags: 0x0}, - 1301: {region: 0x165, script: 0x5a, flags: 0x0}, - 1302: {region: 0x165, script: 0x5a, flags: 0x0}, - 1303: {region: 0x165, script: 0x5a, flags: 0x0}, - 1304: {region: 0xd6, script: 0x5a, flags: 0x0}, - 1305: {region: 0x165, script: 0x5a, flags: 0x0}, - 1306: {region: 0x165, script: 0x5a, flags: 0x0}, - 1307: {region: 0x165, script: 0x5a, flags: 0x0}, - 1308: {region: 0x41, script: 0x5a, flags: 0x0}, - 1309: {region: 0x165, script: 0x5a, flags: 0x0}, - 1310: {region: 0xcf, script: 0x5a, flags: 0x0}, - 1311: {region: 0x4a, script: 0x3, flags: 0x1}, - 1312: {region: 0x165, script: 0x5a, flags: 0x0}, - 1313: {region: 0x165, script: 0x5a, flags: 0x0}, - 1314: {region: 0x165, script: 0x5a, flags: 0x0}, - 1315: {region: 0x53, script: 0x5a, flags: 0x0}, - 1316: {region: 0x10b, script: 0x5a, flags: 0x0}, - 1318: {region: 0xa8, script: 0x5, flags: 0x0}, - 1319: {region: 0xd9, script: 0x5a, flags: 0x0}, - 1320: {region: 0xba, script: 0xe8, flags: 0x0}, - 1321: {region: 0x4d, script: 0x14, flags: 0x1}, - 1322: {region: 0x53, script: 0x7d, flags: 0x0}, - 1323: {region: 0x165, script: 0x5a, flags: 0x0}, - 1324: {region: 0x122, script: 0x5a, flags: 0x0}, - 1325: {region: 0xd0, script: 0x5a, flags: 0x0}, - 1326: {region: 0x165, script: 0x5a, flags: 0x0}, - 1327: {region: 0x161, script: 0x5a, flags: 0x0}, - 1329: {region: 0x12b, script: 0x5a, flags: 0x0}, -} - -// likelyLangList holds lists info associated with likelyLang. -// Size: 582 bytes, 97 elements -var likelyLangList = [97]likelyScriptRegion{ - 0: {region: 0x9c, script: 0x7, flags: 0x0}, - 1: {region: 0xa1, script: 0x78, flags: 0x2}, - 2: {region: 0x11c, script: 0x85, flags: 0x2}, - 3: {region: 0x32, script: 0x5a, flags: 0x0}, - 4: {region: 0x9b, script: 0x5, flags: 0x4}, - 5: {region: 0x9c, script: 0x5, flags: 0x4}, - 6: {region: 0x106, script: 0x20, flags: 0x4}, - 7: {region: 0x9c, script: 0x5, flags: 0x2}, - 8: {region: 0x106, script: 0x20, flags: 0x0}, - 9: {region: 0x38, script: 0x2f, flags: 0x2}, - 10: {region: 0x135, script: 0x5a, flags: 0x0}, - 11: {region: 0x7b, script: 0xcf, flags: 0x2}, - 12: {region: 0x114, script: 0x5a, flags: 0x0}, - 13: {region: 0x84, script: 0x1, flags: 0x2}, - 14: {region: 0x5d, script: 0x1f, flags: 0x0}, - 15: {region: 0x87, script: 0x5f, flags: 0x2}, - 16: {region: 0xd6, script: 0x5a, flags: 0x0}, - 17: {region: 0x52, script: 0x5, flags: 0x4}, - 18: {region: 0x10b, script: 0x5, flags: 0x4}, - 19: {region: 0xae, script: 0x20, flags: 0x0}, - 20: {region: 0x24, script: 0x5, flags: 0x4}, - 21: {region: 0x53, script: 0x5, flags: 0x4}, - 22: {region: 0x9c, script: 0x5, flags: 0x4}, - 23: {region: 0xc5, script: 0x5, flags: 0x4}, - 24: {region: 0x53, script: 0x5, flags: 0x2}, - 25: {region: 0x12b, script: 0x5a, flags: 0x0}, - 26: {region: 0xb0, script: 0x5, flags: 0x4}, - 27: {region: 0x9b, script: 0x5, flags: 0x2}, - 28: {region: 0xa5, script: 0x20, flags: 0x0}, - 29: {region: 0x53, script: 0x5, flags: 0x4}, - 30: {region: 0x12b, script: 0x5a, flags: 0x4}, - 31: {region: 0x53, script: 0x5, flags: 0x2}, - 32: {region: 0x12b, script: 0x5a, flags: 0x2}, - 33: {region: 0xdb, script: 0x22, flags: 0x0}, - 34: {region: 0x99, script: 0x5d, flags: 0x2}, - 35: {region: 0x83, script: 0x5a, flags: 0x0}, - 36: {region: 0x84, script: 0x7c, flags: 0x4}, - 37: {region: 0x84, script: 0x7c, flags: 0x2}, - 38: {region: 0xc5, script: 0x20, flags: 0x0}, - 39: {region: 0x53, script: 0x70, flags: 0x4}, - 40: {region: 0x53, script: 0x70, flags: 0x2}, - 41: {region: 0xd0, script: 0x5a, flags: 0x0}, - 42: {region: 0x4a, script: 0x5, flags: 0x4}, - 43: {region: 0x95, script: 0x5, flags: 0x4}, - 44: {region: 0x99, script: 0x36, flags: 0x0}, - 45: {region: 0xe8, script: 0x5, flags: 0x4}, - 46: {region: 0xe8, script: 0x5, flags: 0x2}, - 47: {region: 0x9c, script: 0x8b, flags: 0x0}, - 48: {region: 0x53, script: 0x8c, flags: 0x2}, - 49: {region: 0xba, script: 0xe8, flags: 0x0}, - 50: {region: 0xd9, script: 0x5a, flags: 0x4}, - 51: {region: 0xe8, script: 0x5, flags: 0x0}, - 52: {region: 0x99, script: 0x22, flags: 0x2}, - 53: {region: 0x99, script: 0x4f, flags: 0x2}, - 54: {region: 0x99, script: 0xd3, flags: 0x2}, - 55: {region: 0x105, script: 0x20, flags: 0x0}, - 56: {region: 0xbd, script: 0x5a, flags: 0x4}, - 57: {region: 0x104, script: 0x5a, flags: 0x4}, - 58: {region: 0x106, script: 0x5a, flags: 0x4}, - 59: {region: 0x12b, script: 0x5a, flags: 0x4}, - 60: {region: 0x124, script: 0x20, flags: 0x0}, - 61: {region: 0xe8, script: 0x5, flags: 0x4}, - 62: {region: 0xe8, script: 0x5, flags: 0x2}, - 63: {region: 0x53, script: 0x5, flags: 0x0}, - 64: {region: 0xae, script: 0x20, flags: 0x4}, - 65: {region: 0xc5, script: 0x20, flags: 0x4}, - 66: {region: 0xae, script: 0x20, flags: 0x2}, - 67: {region: 0x99, script: 0xe, flags: 0x0}, - 68: {region: 0xdb, script: 0x22, flags: 0x4}, - 69: {region: 0xdb, script: 0x22, flags: 0x2}, - 70: {region: 0x137, script: 0x5a, flags: 0x0}, - 71: {region: 0x24, script: 0x5, flags: 0x4}, - 72: {region: 0x53, script: 0x20, flags: 0x4}, - 73: {region: 0x24, script: 0x5, flags: 0x2}, - 74: {region: 0x8d, script: 0x3c, flags: 0x0}, - 75: {region: 0x53, script: 0x3b, flags: 0x4}, - 76: {region: 0x53, script: 0x3b, flags: 0x2}, - 77: {region: 0x53, script: 0x3b, flags: 0x0}, - 78: {region: 0x2f, script: 0x3c, flags: 0x4}, - 79: {region: 0x3e, script: 0x3c, flags: 0x4}, - 80: {region: 0x7b, script: 0x3c, flags: 0x4}, - 81: {region: 0x7e, script: 0x3c, flags: 0x4}, - 82: {region: 0x8d, script: 0x3c, flags: 0x4}, - 83: {region: 0x95, script: 0x3c, flags: 0x4}, - 84: {region: 0xc6, script: 0x3c, flags: 0x4}, - 85: {region: 0xd0, script: 0x3c, flags: 0x4}, - 86: {region: 0xe2, script: 0x3c, flags: 0x4}, - 87: {region: 0xe5, script: 0x3c, flags: 0x4}, - 88: {region: 0xe7, script: 0x3c, flags: 0x4}, - 89: {region: 0x116, script: 0x3c, flags: 0x4}, - 90: {region: 0x123, script: 0x3c, flags: 0x4}, - 91: {region: 0x12e, script: 0x3c, flags: 0x4}, - 92: {region: 0x135, script: 0x3c, flags: 0x4}, - 93: {region: 0x13e, script: 0x3c, flags: 0x4}, - 94: {region: 0x12e, script: 0x11, flags: 0x2}, - 95: {region: 0x12e, script: 0x37, flags: 0x2}, - 96: {region: 0x12e, script: 0x3c, flags: 0x2}, -} - -type likelyLangScript struct { - lang uint16 - script uint16 - flags uint8 -} - -// likelyRegion is a lookup table, indexed by regionID, for the most likely -// languages and scripts given incomplete information. If more entries exist -// for a given regionID, lang and script are the index and size respectively -// of the list in likelyRegionList. -// TODO: exclude containers and user-definable regions from the list. -// Size: 2148 bytes, 358 elements -var likelyRegion = [358]likelyLangScript{ - 34: {lang: 0xd7, script: 0x5a, flags: 0x0}, - 35: {lang: 0x3a, script: 0x5, flags: 0x0}, - 36: {lang: 0x0, script: 0x2, flags: 0x1}, - 39: {lang: 0x2, script: 0x2, flags: 0x1}, - 40: {lang: 0x4, script: 0x2, flags: 0x1}, - 42: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 43: {lang: 0x0, script: 0x5a, flags: 0x0}, - 44: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 45: {lang: 0x41b, script: 0x5a, flags: 0x0}, - 46: {lang: 0x10d, script: 0x5a, flags: 0x0}, - 48: {lang: 0x367, script: 0x5a, flags: 0x0}, - 49: {lang: 0x444, script: 0x5a, flags: 0x0}, - 50: {lang: 0x58, script: 0x5a, flags: 0x0}, - 51: {lang: 0x6, script: 0x2, flags: 0x1}, - 53: {lang: 0xa5, script: 0xe, flags: 0x0}, - 54: {lang: 0x367, script: 0x5a, flags: 0x0}, - 55: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 56: {lang: 0x7e, script: 0x20, flags: 0x0}, - 57: {lang: 0x3a, script: 0x5, flags: 0x0}, - 58: {lang: 0x3d9, script: 0x5a, flags: 0x0}, - 59: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 60: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 62: {lang: 0x31f, script: 0x5a, flags: 0x0}, - 63: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 64: {lang: 0x3a1, script: 0x5a, flags: 0x0}, - 65: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 67: {lang: 0x8, script: 0x2, flags: 0x1}, - 69: {lang: 0x0, script: 0x5a, flags: 0x0}, - 71: {lang: 0x71, script: 0x20, flags: 0x0}, - 73: {lang: 0x512, script: 0x3e, flags: 0x2}, - 74: {lang: 0x31f, script: 0x5, flags: 0x2}, - 75: {lang: 0x445, script: 0x5a, flags: 0x0}, - 76: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 77: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 78: {lang: 0x10d, script: 0x5a, flags: 0x0}, - 79: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 81: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 82: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 83: {lang: 0xa, script: 0x4, flags: 0x1}, - 84: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 85: {lang: 0x0, script: 0x5a, flags: 0x0}, - 86: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 89: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 90: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 91: {lang: 0x3a1, script: 0x5a, flags: 0x0}, - 93: {lang: 0xe, script: 0x2, flags: 0x1}, - 94: {lang: 0xfa, script: 0x5a, flags: 0x0}, - 96: {lang: 0x10d, script: 0x5a, flags: 0x0}, - 98: {lang: 0x1, script: 0x5a, flags: 0x0}, - 99: {lang: 0x101, script: 0x5a, flags: 0x0}, - 101: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 103: {lang: 0x10, script: 0x2, flags: 0x1}, - 104: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 105: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 106: {lang: 0x140, script: 0x5a, flags: 0x0}, - 107: {lang: 0x3a, script: 0x5, flags: 0x0}, - 108: {lang: 0x3a, script: 0x5, flags: 0x0}, - 109: {lang: 0x46f, script: 0x2c, flags: 0x0}, - 110: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 111: {lang: 0x12, script: 0x2, flags: 0x1}, - 113: {lang: 0x10d, script: 0x5a, flags: 0x0}, - 114: {lang: 0x151, script: 0x5a, flags: 0x0}, - 115: {lang: 0x1c0, script: 0x22, flags: 0x2}, - 118: {lang: 0x158, script: 0x5a, flags: 0x0}, - 120: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 122: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 123: {lang: 0x14, script: 0x2, flags: 0x1}, - 125: {lang: 0x16, script: 0x3, flags: 0x1}, - 126: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 128: {lang: 0x21, script: 0x5a, flags: 0x0}, - 130: {lang: 0x245, script: 0x5a, flags: 0x0}, - 132: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 133: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 134: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 135: {lang: 0x19, script: 0x2, flags: 0x1}, - 136: {lang: 0x0, script: 0x5a, flags: 0x0}, - 137: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 139: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 141: {lang: 0x529, script: 0x3c, flags: 0x0}, - 142: {lang: 0x0, script: 0x5a, flags: 0x0}, - 143: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 144: {lang: 0x1d1, script: 0x5a, flags: 0x0}, - 145: {lang: 0x1d4, script: 0x5a, flags: 0x0}, - 146: {lang: 0x1d5, script: 0x5a, flags: 0x0}, - 148: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 149: {lang: 0x1b, script: 0x2, flags: 0x1}, - 151: {lang: 0x1bc, script: 0x3e, flags: 0x0}, - 153: {lang: 0x1d, script: 0x3, flags: 0x1}, - 155: {lang: 0x3a, script: 0x5, flags: 0x0}, - 156: {lang: 0x20, script: 0x2, flags: 0x1}, - 157: {lang: 0x1f8, script: 0x5a, flags: 0x0}, - 158: {lang: 0x1f9, script: 0x5a, flags: 0x0}, - 161: {lang: 0x3a, script: 0x5, flags: 0x0}, - 162: {lang: 0x200, script: 0x49, flags: 0x0}, - 164: {lang: 0x445, script: 0x5a, flags: 0x0}, - 165: {lang: 0x28a, script: 0x20, flags: 0x0}, - 166: {lang: 0x22, script: 0x3, flags: 0x1}, - 168: {lang: 0x25, script: 0x2, flags: 0x1}, - 170: {lang: 0x254, script: 0x53, flags: 0x0}, - 171: {lang: 0x254, script: 0x53, flags: 0x0}, - 172: {lang: 0x3a, script: 0x5, flags: 0x0}, - 174: {lang: 0x3e2, script: 0x20, flags: 0x0}, - 175: {lang: 0x27, script: 0x2, flags: 0x1}, - 176: {lang: 0x3a, script: 0x5, flags: 0x0}, - 178: {lang: 0x10d, script: 0x5a, flags: 0x0}, - 179: {lang: 0x40c, script: 0xd4, flags: 0x0}, - 181: {lang: 0x43b, script: 0x5a, flags: 0x0}, - 182: {lang: 0x2c0, script: 0x5a, flags: 0x0}, - 183: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 184: {lang: 0x2c7, script: 0x5a, flags: 0x0}, - 185: {lang: 0x3a, script: 0x5, flags: 0x0}, - 186: {lang: 0x29, script: 0x2, flags: 0x1}, - 187: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 188: {lang: 0x2b, script: 0x2, flags: 0x1}, - 189: {lang: 0x432, script: 0x5a, flags: 0x0}, - 190: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 191: {lang: 0x2f1, script: 0x5a, flags: 0x0}, - 194: {lang: 0x2d, script: 0x2, flags: 0x1}, - 195: {lang: 0xa0, script: 0x5a, flags: 0x0}, - 196: {lang: 0x2f, script: 0x2, flags: 0x1}, - 197: {lang: 0x31, script: 0x2, flags: 0x1}, - 198: {lang: 0x33, script: 0x2, flags: 0x1}, - 200: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 201: {lang: 0x35, script: 0x2, flags: 0x1}, - 203: {lang: 0x320, script: 0x5a, flags: 0x0}, - 204: {lang: 0x37, script: 0x3, flags: 0x1}, - 205: {lang: 0x128, script: 0xea, flags: 0x0}, - 207: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 208: {lang: 0x31f, script: 0x5a, flags: 0x0}, - 209: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 210: {lang: 0x16, script: 0x5a, flags: 0x0}, - 211: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 212: {lang: 0x1b4, script: 0x5a, flags: 0x0}, - 214: {lang: 0x1b4, script: 0x5, flags: 0x2}, - 216: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 217: {lang: 0x367, script: 0x5a, flags: 0x0}, - 218: {lang: 0x347, script: 0x5a, flags: 0x0}, - 219: {lang: 0x351, script: 0x22, flags: 0x0}, - 225: {lang: 0x3a, script: 0x5, flags: 0x0}, - 226: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 228: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 229: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 230: {lang: 0x486, script: 0x5a, flags: 0x0}, - 231: {lang: 0x153, script: 0x5a, flags: 0x0}, - 232: {lang: 0x3a, script: 0x3, flags: 0x1}, - 233: {lang: 0x3b3, script: 0x5a, flags: 0x0}, - 234: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 236: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 237: {lang: 0x3a, script: 0x5, flags: 0x0}, - 238: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 240: {lang: 0x3a2, script: 0x5a, flags: 0x0}, - 241: {lang: 0x194, script: 0x5a, flags: 0x0}, - 243: {lang: 0x3a, script: 0x5, flags: 0x0}, - 258: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 260: {lang: 0x3d, script: 0x2, flags: 0x1}, - 261: {lang: 0x432, script: 0x20, flags: 0x0}, - 262: {lang: 0x3f, script: 0x2, flags: 0x1}, - 263: {lang: 0x3e5, script: 0x5a, flags: 0x0}, - 264: {lang: 0x3a, script: 0x5, flags: 0x0}, - 266: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 267: {lang: 0x3a, script: 0x5, flags: 0x0}, - 268: {lang: 0x41, script: 0x2, flags: 0x1}, - 271: {lang: 0x416, script: 0x5a, flags: 0x0}, - 272: {lang: 0x347, script: 0x5a, flags: 0x0}, - 273: {lang: 0x43, script: 0x2, flags: 0x1}, - 275: {lang: 0x1f9, script: 0x5a, flags: 0x0}, - 276: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 277: {lang: 0x429, script: 0x5a, flags: 0x0}, - 278: {lang: 0x367, script: 0x5a, flags: 0x0}, - 280: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 282: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 284: {lang: 0x45, script: 0x2, flags: 0x1}, - 288: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 289: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 290: {lang: 0x47, script: 0x2, flags: 0x1}, - 291: {lang: 0x49, script: 0x3, flags: 0x1}, - 292: {lang: 0x4c, script: 0x2, flags: 0x1}, - 293: {lang: 0x477, script: 0x5a, flags: 0x0}, - 294: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 295: {lang: 0x476, script: 0x5a, flags: 0x0}, - 296: {lang: 0x4e, script: 0x2, flags: 0x1}, - 297: {lang: 0x482, script: 0x5a, flags: 0x0}, - 299: {lang: 0x50, script: 0x4, flags: 0x1}, - 301: {lang: 0x4a0, script: 0x5a, flags: 0x0}, - 302: {lang: 0x54, script: 0x2, flags: 0x1}, - 303: {lang: 0x445, script: 0x5a, flags: 0x0}, - 304: {lang: 0x56, script: 0x3, flags: 0x1}, - 305: {lang: 0x445, script: 0x5a, flags: 0x0}, - 309: {lang: 0x512, script: 0x3e, flags: 0x2}, - 310: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 311: {lang: 0x4bc, script: 0x5a, flags: 0x0}, - 312: {lang: 0x1f9, script: 0x5a, flags: 0x0}, - 315: {lang: 0x13e, script: 0x5a, flags: 0x0}, - 318: {lang: 0x4c3, script: 0x5a, flags: 0x0}, - 319: {lang: 0x8a, script: 0x5a, flags: 0x0}, - 320: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 322: {lang: 0x41b, script: 0x5a, flags: 0x0}, - 333: {lang: 0x59, script: 0x2, flags: 0x1}, - 350: {lang: 0x3a, script: 0x5, flags: 0x0}, - 351: {lang: 0x5b, script: 0x2, flags: 0x1}, - 356: {lang: 0x423, script: 0x5a, flags: 0x0}, -} - -// likelyRegionList holds lists info associated with likelyRegion. -// Size: 558 bytes, 93 elements -var likelyRegionList = [93]likelyLangScript{ - 0: {lang: 0x148, script: 0x5, flags: 0x0}, - 1: {lang: 0x476, script: 0x5a, flags: 0x0}, - 2: {lang: 0x431, script: 0x5a, flags: 0x0}, - 3: {lang: 0x2ff, script: 0x20, flags: 0x0}, - 4: {lang: 0x1d7, script: 0x8, flags: 0x0}, - 5: {lang: 0x274, script: 0x5a, flags: 0x0}, - 6: {lang: 0xb7, script: 0x5a, flags: 0x0}, - 7: {lang: 0x432, script: 0x20, flags: 0x0}, - 8: {lang: 0x12d, script: 0xec, flags: 0x0}, - 9: {lang: 0x351, script: 0x22, flags: 0x0}, - 10: {lang: 0x529, script: 0x3b, flags: 0x0}, - 11: {lang: 0x4ac, script: 0x5, flags: 0x0}, - 12: {lang: 0x523, script: 0x5a, flags: 0x0}, - 13: {lang: 0x29a, script: 0xeb, flags: 0x0}, - 14: {lang: 0x136, script: 0x34, flags: 0x0}, - 15: {lang: 0x48a, script: 0x5a, flags: 0x0}, - 16: {lang: 0x3a, script: 0x5, flags: 0x0}, - 17: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 18: {lang: 0x27, script: 0x2c, flags: 0x0}, - 19: {lang: 0x139, script: 0x5a, flags: 0x0}, - 20: {lang: 0x26a, script: 0x5, flags: 0x2}, - 21: {lang: 0x512, script: 0x3e, flags: 0x2}, - 22: {lang: 0x210, script: 0x2e, flags: 0x0}, - 23: {lang: 0x5, script: 0x20, flags: 0x0}, - 24: {lang: 0x274, script: 0x5a, flags: 0x0}, - 25: {lang: 0x136, script: 0x34, flags: 0x0}, - 26: {lang: 0x2ff, script: 0x20, flags: 0x0}, - 27: {lang: 0x1e1, script: 0x5a, flags: 0x0}, - 28: {lang: 0x31f, script: 0x5, flags: 0x0}, - 29: {lang: 0x1be, script: 0x22, flags: 0x0}, - 30: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 31: {lang: 0x236, script: 0x75, flags: 0x0}, - 32: {lang: 0x148, script: 0x5, flags: 0x0}, - 33: {lang: 0x476, script: 0x5a, flags: 0x0}, - 34: {lang: 0x24a, script: 0x4e, flags: 0x0}, - 35: {lang: 0xe6, script: 0x5, flags: 0x0}, - 36: {lang: 0x226, script: 0xeb, flags: 0x0}, - 37: {lang: 0x3a, script: 0x5, flags: 0x0}, - 38: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 39: {lang: 0x2b8, script: 0x57, flags: 0x0}, - 40: {lang: 0x226, script: 0xeb, flags: 0x0}, - 41: {lang: 0x3a, script: 0x5, flags: 0x0}, - 42: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 43: {lang: 0x3dc, script: 0x5a, flags: 0x0}, - 44: {lang: 0x4ae, script: 0x20, flags: 0x0}, - 45: {lang: 0x2ff, script: 0x20, flags: 0x0}, - 46: {lang: 0x431, script: 0x5a, flags: 0x0}, - 47: {lang: 0x331, script: 0x75, flags: 0x0}, - 48: {lang: 0x213, script: 0x5a, flags: 0x0}, - 49: {lang: 0x30b, script: 0x20, flags: 0x0}, - 50: {lang: 0x242, script: 0x5, flags: 0x0}, - 51: {lang: 0x529, script: 0x3c, flags: 0x0}, - 52: {lang: 0x3c0, script: 0x5a, flags: 0x0}, - 53: {lang: 0x3a, script: 0x5, flags: 0x0}, - 54: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 55: {lang: 0x2ed, script: 0x5a, flags: 0x0}, - 56: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 57: {lang: 0x88, script: 0x22, flags: 0x0}, - 58: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 59: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 60: {lang: 0xbe, script: 0x22, flags: 0x0}, - 61: {lang: 0x3dc, script: 0x5a, flags: 0x0}, - 62: {lang: 0x7e, script: 0x20, flags: 0x0}, - 63: {lang: 0x3e2, script: 0x20, flags: 0x0}, - 64: {lang: 0x267, script: 0x5a, flags: 0x0}, - 65: {lang: 0x444, script: 0x5a, flags: 0x0}, - 66: {lang: 0x512, script: 0x3e, flags: 0x0}, - 67: {lang: 0x412, script: 0x5a, flags: 0x0}, - 68: {lang: 0x4ae, script: 0x20, flags: 0x0}, - 69: {lang: 0x3a, script: 0x5, flags: 0x0}, - 70: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 71: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 72: {lang: 0x35, script: 0x5, flags: 0x0}, - 73: {lang: 0x46b, script: 0xeb, flags: 0x0}, - 74: {lang: 0x2ec, script: 0x5, flags: 0x0}, - 75: {lang: 0x30f, script: 0x75, flags: 0x0}, - 76: {lang: 0x467, script: 0x20, flags: 0x0}, - 77: {lang: 0x148, script: 0x5, flags: 0x0}, - 78: {lang: 0x3a, script: 0x5, flags: 0x0}, - 79: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 80: {lang: 0x48a, script: 0x5a, flags: 0x0}, - 81: {lang: 0x58, script: 0x5, flags: 0x0}, - 82: {lang: 0x219, script: 0x20, flags: 0x0}, - 83: {lang: 0x81, script: 0x34, flags: 0x0}, - 84: {lang: 0x529, script: 0x3c, flags: 0x0}, - 85: {lang: 0x48c, script: 0x5a, flags: 0x0}, - 86: {lang: 0x4ae, script: 0x20, flags: 0x0}, - 87: {lang: 0x512, script: 0x3e, flags: 0x0}, - 88: {lang: 0x3b3, script: 0x5a, flags: 0x0}, - 89: {lang: 0x431, script: 0x5a, flags: 0x0}, - 90: {lang: 0x432, script: 0x20, flags: 0x0}, - 91: {lang: 0x15e, script: 0x5a, flags: 0x0}, - 92: {lang: 0x446, script: 0x5, flags: 0x0}, -} - -type likelyTag struct { - lang uint16 - region uint16 - script uint16 -} - -// Size: 198 bytes, 33 elements -var likelyRegionGroup = [33]likelyTag{ - 1: {lang: 0x139, region: 0xd6, script: 0x5a}, - 2: {lang: 0x139, region: 0x135, script: 0x5a}, - 3: {lang: 0x3c0, region: 0x41, script: 0x5a}, - 4: {lang: 0x139, region: 0x2f, script: 0x5a}, - 5: {lang: 0x139, region: 0xd6, script: 0x5a}, - 6: {lang: 0x13e, region: 0xcf, script: 0x5a}, - 7: {lang: 0x445, region: 0x12f, script: 0x5a}, - 8: {lang: 0x3a, region: 0x6b, script: 0x5}, - 9: {lang: 0x445, region: 0x4b, script: 0x5a}, - 10: {lang: 0x139, region: 0x161, script: 0x5a}, - 11: {lang: 0x139, region: 0x135, script: 0x5a}, - 12: {lang: 0x139, region: 0x135, script: 0x5a}, - 13: {lang: 0x13e, region: 0x59, script: 0x5a}, - 14: {lang: 0x529, region: 0x53, script: 0x3b}, - 15: {lang: 0x1be, region: 0x99, script: 0x22}, - 16: {lang: 0x1e1, region: 0x95, script: 0x5a}, - 17: {lang: 0x1f9, region: 0x9e, script: 0x5a}, - 18: {lang: 0x139, region: 0x2f, script: 0x5a}, - 19: {lang: 0x139, region: 0xe6, script: 0x5a}, - 20: {lang: 0x139, region: 0x8a, script: 0x5a}, - 21: {lang: 0x41b, region: 0x142, script: 0x5a}, - 22: {lang: 0x529, region: 0x53, script: 0x3b}, - 23: {lang: 0x4bc, region: 0x137, script: 0x5a}, - 24: {lang: 0x3a, region: 0x108, script: 0x5}, - 25: {lang: 0x3e2, region: 0x106, script: 0x20}, - 26: {lang: 0x3e2, region: 0x106, script: 0x20}, - 27: {lang: 0x139, region: 0x7b, script: 0x5a}, - 28: {lang: 0x10d, region: 0x60, script: 0x5a}, - 29: {lang: 0x139, region: 0xd6, script: 0x5a}, - 30: {lang: 0x13e, region: 0x1f, script: 0x5a}, - 31: {lang: 0x139, region: 0x9a, script: 0x5a}, - 32: {lang: 0x139, region: 0x7b, script: 0x5a}, -} - -// Size: 264 bytes, 33 elements -var regionContainment = [33]uint64{ - // Entry 0 - 1F - 0x00000001ffffffff, 0x00000000200007a2, 0x0000000000003044, 0x0000000000000008, - 0x00000000803c0010, 0x0000000000000020, 0x0000000000000040, 0x0000000000000080, - 0x0000000000000100, 0x0000000000000200, 0x0000000000000400, 0x000000004000384c, - 0x0000000000001000, 0x0000000000002000, 0x0000000000004000, 0x0000000000008000, - 0x0000000000010000, 0x0000000000020000, 0x0000000000040000, 0x0000000000080000, - 0x0000000000100000, 0x0000000000200000, 0x0000000001c1c000, 0x0000000000800000, - 0x0000000001000000, 0x000000001e020000, 0x0000000004000000, 0x0000000008000000, - 0x0000000010000000, 0x00000000200006a0, 0x0000000040002048, 0x0000000080000000, - // Entry 20 - 3F - 0x0000000100000000, -} - -// regionInclusion maps region identifiers to sets of regions in regionInclusionBits, -// where each set holds all groupings that are directly connected in a region -// containment graph. -// Size: 358 bytes, 358 elements -var regionInclusion = [358]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x26, 0x23, - 0x24, 0x26, 0x27, 0x22, 0x28, 0x29, 0x2a, 0x2b, - 0x26, 0x2c, 0x24, 0x23, 0x26, 0x25, 0x2a, 0x2d, - 0x2e, 0x24, 0x2f, 0x2d, 0x26, 0x30, 0x31, 0x28, - // Entry 40 - 7F - 0x26, 0x28, 0x26, 0x25, 0x31, 0x22, 0x32, 0x33, - 0x34, 0x30, 0x22, 0x27, 0x27, 0x27, 0x35, 0x2d, - 0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x34, 0x23, - 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e, 0x35, - 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21, 0x39, - 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a, 0x2f, - 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c, 0x21, - 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28, 0x2c, - // Entry 80 - BF - 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27, 0x3a, - 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22, 0x34, - 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38, 0x24, - 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a, 0x2c, - 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31, 0x3c, - 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d, 0x31, - 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38, 0x2a, - 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26, 0x2f, - // Entry C0 - FF - 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36, 0x3c, - 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f, 0x34, - 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d, 0x21, - 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24, 0x29, - 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b, 0x31, - 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a, 0x21, - 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - // Entry 100 - 13F - 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33, 0x2f, - 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d, 0x3a, - 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28, 0x2f, - 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22, 0x26, - 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31, 0x3d, - 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36, 0x2f, - 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28, 0x3d, - 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31, 0x3b, - // Entry 140 - 17F - 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24, 0x2f, - 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21, -} - -// regionInclusionBits is an array of bit vectors where every vector represents -// a set of region groupings. These sets are used to compute the distance -// between two regions for the purpose of language matching. -// Size: 584 bytes, 73 elements -var regionInclusionBits = [73]uint64{ - // Entry 0 - 1F - 0x0000000102400813, 0x00000000200007a3, 0x0000000000003844, 0x0000000040000808, - 0x00000000803c0011, 0x0000000020000022, 0x0000000040000844, 0x0000000020000082, - 0x0000000000000102, 0x0000000020000202, 0x0000000020000402, 0x000000004000384d, - 0x0000000000001804, 0x0000000040002804, 0x0000000000404000, 0x0000000000408000, - 0x0000000000410000, 0x0000000002020000, 0x0000000000040010, 0x0000000000080010, - 0x0000000000100010, 0x0000000000200010, 0x0000000001c1c001, 0x0000000000c00000, - 0x0000000001400000, 0x000000001e020001, 0x0000000006000000, 0x000000000a000000, - 0x0000000012000000, 0x00000000200006a2, 0x0000000040002848, 0x0000000080000010, - // Entry 20 - 3F - 0x0000000100000001, 0x0000000000000001, 0x0000000080000000, 0x0000000000020000, - 0x0000000001000000, 0x0000000000008000, 0x0000000000002000, 0x0000000000000200, - 0x0000000000000008, 0x0000000000200000, 0x0000000110000000, 0x0000000000040000, - 0x0000000008000000, 0x0000000000000020, 0x0000000104000000, 0x0000000000000080, - 0x0000000000001000, 0x0000000000010000, 0x0000000000000400, 0x0000000004000000, - 0x0000000000000040, 0x0000000010000000, 0x0000000000004000, 0x0000000101000000, - 0x0000000108000000, 0x0000000000000100, 0x0000000100020000, 0x0000000000080000, - 0x0000000000100000, 0x0000000000800000, 0x00000001ffffffff, 0x0000000122400fb3, - // Entry 40 - 5F - 0x00000001827c0813, 0x000000014240385f, 0x0000000103c1c813, 0x000000011e420813, - 0x0000000112000001, 0x0000000106000001, 0x0000000101400001, 0x000000010a000001, - 0x0000000102020001, -} - -// regionInclusionNext marks, for each entry in regionInclusionBits, the set of -// all groups that are reachable from the groups set in the respective entry. -// Size: 73 bytes, 73 elements -var regionInclusionNext = [73]uint8{ - // Entry 0 - 3F - 0x3e, 0x3f, 0x0b, 0x0b, 0x40, 0x01, 0x0b, 0x01, - 0x01, 0x01, 0x01, 0x41, 0x0b, 0x0b, 0x16, 0x16, - 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x42, 0x16, - 0x16, 0x43, 0x19, 0x19, 0x19, 0x01, 0x0b, 0x04, - 0x00, 0x00, 0x1f, 0x11, 0x18, 0x0f, 0x0d, 0x09, - 0x03, 0x15, 0x44, 0x12, 0x1b, 0x05, 0x45, 0x07, - 0x0c, 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x46, - 0x47, 0x08, 0x48, 0x13, 0x14, 0x17, 0x3e, 0x3e, - // Entry 40 - 7F - 0x3e, 0x3e, 0x3e, 0x3e, 0x43, 0x43, 0x42, 0x43, - 0x43, -} - -type parentRel struct { - lang uint16 - script uint16 - maxScript uint16 - toRegion uint16 - fromRegion []uint16 -} - -// Size: 414 bytes, 5 elements -var parents = [5]parentRel{ - 0: {lang: 0x139, script: 0x0, maxScript: 0x5a, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5c, 0x5d, 0x61, 0x64, 0x6d, 0x73, 0x74, 0x75, 0x7b, 0x7c, 0x7f, 0x80, 0x81, 0x83, 0x8c, 0x8d, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9f, 0xa0, 0xa4, 0xa7, 0xa9, 0xad, 0xb1, 0xb4, 0xb5, 0xbf, 0xc6, 0xca, 0xcb, 0xcc, 0xce, 0xd0, 0xd2, 0xd5, 0xd6, 0xdd, 0xdf, 0xe0, 0xe6, 0xe7, 0xe8, 0xeb, 0xf0, 0x107, 0x109, 0x10a, 0x10b, 0x10d, 0x10e, 0x112, 0x117, 0x11b, 0x11d, 0x11f, 0x125, 0x129, 0x12c, 0x12d, 0x12f, 0x131, 0x139, 0x13c, 0x13f, 0x142, 0x161, 0x162, 0x164}}, - 1: {lang: 0x139, script: 0x0, maxScript: 0x5a, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x60, 0x63, 0x72, 0xd9, 0x10c, 0x10f}}, - 2: {lang: 0x13e, script: 0x0, maxScript: 0x5a, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x56, 0x59, 0x65, 0x69, 0x89, 0x8f, 0xcf, 0xd8, 0xe2, 0xe4, 0xec, 0xf1, 0x11a, 0x135, 0x136, 0x13b}}, - 3: {lang: 0x3c0, script: 0x0, maxScript: 0x5a, toRegion: 0xee, fromRegion: []uint16{0x2a, 0x4e, 0x5a, 0x86, 0x8b, 0xb7, 0xc6, 0xd1, 0x118, 0x126}}, - 4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8d, fromRegion: []uint16{0xc6}}, -} - -// Total table size 30244 bytes (29KiB); checksum: B6B15F30 diff --git a/backend/vendor/golang.org/x/text/internal/language/tags.go b/backend/vendor/golang.org/x/text/internal/language/tags.go deleted file mode 100644 index e7afd318..00000000 --- a/backend/vendor/golang.org/x/text/internal/language/tags.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. -// It simplifies safe initialization of Tag values. -func MustParse(s string) Tag { - t, err := Parse(s) - if err != nil { - panic(err) - } - return t -} - -// MustParseBase is like ParseBase, but panics if the given base cannot be parsed. -// It simplifies safe initialization of Base values. -func MustParseBase(s string) Language { - b, err := ParseBase(s) - if err != nil { - panic(err) - } - return b -} - -// MustParseScript is like ParseScript, but panics if the given script cannot be -// parsed. It simplifies safe initialization of Script values. -func MustParseScript(s string) Script { - scr, err := ParseScript(s) - if err != nil { - panic(err) - } - return scr -} - -// MustParseRegion is like ParseRegion, but panics if the given region cannot be -// parsed. It simplifies safe initialization of Region values. -func MustParseRegion(s string) Region { - r, err := ParseRegion(s) - if err != nil { - panic(err) - } - return r -} - -// Und is the root language. -var Und Tag diff --git a/backend/vendor/golang.org/x/text/internal/match.go b/backend/vendor/golang.org/x/text/internal/match.go deleted file mode 100644 index 1cc004a6..00000000 --- a/backend/vendor/golang.org/x/text/internal/match.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package internal - -// This file contains matchers that implement CLDR inheritance. -// -// See https://unicode.org/reports/tr35/#Locale_Inheritance. -// -// Some of the inheritance described in this document is already handled by -// the cldr package. - -import ( - "golang.org/x/text/language" -) - -// TODO: consider if (some of the) matching algorithm needs to be public after -// getting some feel about what is generic and what is specific. - -// NewInheritanceMatcher returns a matcher that matches based on the inheritance -// chain. -// -// The matcher uses canonicalization and the parent relationship to find a -// match. The resulting match will always be either Und or a language with the -// same language and script as the requested language. It will not match -// languages for which there is understood to be mutual or one-directional -// intelligibility. -// -// A Match will indicate an Exact match if the language matches after -// canonicalization and High if the matched tag is a parent. -func NewInheritanceMatcher(t []language.Tag) *InheritanceMatcher { - tags := &InheritanceMatcher{make(map[language.Tag]int)} - for i, tag := range t { - ct, err := language.All.Canonicalize(tag) - if err != nil { - ct = tag - } - tags.index[ct] = i - } - return tags -} - -type InheritanceMatcher struct { - index map[language.Tag]int -} - -func (m InheritanceMatcher) Match(want ...language.Tag) (language.Tag, int, language.Confidence) { - for _, t := range want { - ct, err := language.All.Canonicalize(t) - if err != nil { - ct = t - } - conf := language.Exact - for { - if index, ok := m.index[ct]; ok { - return ct, index, conf - } - if ct == language.Und { - break - } - ct = ct.Parent() - conf = language.High - } - } - return language.Und, 0, language.No -} diff --git a/backend/vendor/golang.org/x/text/internal/tag/tag.go b/backend/vendor/golang.org/x/text/internal/tag/tag.go deleted file mode 100644 index b5d34889..00000000 --- a/backend/vendor/golang.org/x/text/internal/tag/tag.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package tag contains functionality handling tags and related data. -package tag // import "golang.org/x/text/internal/tag" - -import "sort" - -// An Index converts tags to a compact numeric value. -// -// All elements are of size 4. Tags may be up to 4 bytes long. Excess bytes can -// be used to store additional information about the tag. -type Index string - -// Elem returns the element data at the given index. -func (s Index) Elem(x int) string { - return string(s[x*4 : x*4+4]) -} - -// Index reports the index of the given key or -1 if it could not be found. -// Only the first len(key) bytes from the start of the 4-byte entries will be -// considered for the search and the first match in Index will be returned. -func (s Index) Index(key []byte) int { - n := len(key) - // search the index of the first entry with an equal or higher value than - // key in s. - index := sort.Search(len(s)/4, func(i int) bool { - return cmp(s[i*4:i*4+n], key) != -1 - }) - i := index * 4 - if cmp(s[i:i+len(key)], key) != 0 { - return -1 - } - return index -} - -// Next finds the next occurrence of key after index x, which must have been -// obtained from a call to Index using the same key. It returns x+1 or -1. -func (s Index) Next(key []byte, x int) int { - if x++; x*4 < len(s) && cmp(s[x*4:x*4+len(key)], key) == 0 { - return x - } - return -1 -} - -// cmp returns an integer comparing a and b lexicographically. -func cmp(a Index, b []byte) int { - n := len(a) - if len(b) < n { - n = len(b) - } - for i, c := range b[:n] { - switch { - case a[i] > c: - return 1 - case a[i] < c: - return -1 - } - } - switch { - case len(a) < len(b): - return -1 - case len(a) > len(b): - return 1 - } - return 0 -} - -// Compare returns an integer comparing a and b lexicographically. -func Compare(a string, b []byte) int { - return cmp(Index(a), b) -} - -// FixCase reformats b to the same pattern of cases as form. -// If returns false if string b is malformed. -func FixCase(form string, b []byte) bool { - if len(form) != len(b) { - return false - } - for i, c := range b { - if form[i] <= 'Z' { - if c >= 'a' { - c -= 'z' - 'Z' - } - if c < 'A' || 'Z' < c { - return false - } - } else { - if c <= 'Z' { - c += 'z' - 'Z' - } - if c < 'a' || 'z' < c { - return false - } - } - b[i] = c - } - return true -} diff --git a/backend/vendor/golang.org/x/text/language/coverage.go b/backend/vendor/golang.org/x/text/language/coverage.go deleted file mode 100644 index a24fd1a4..00000000 --- a/backend/vendor/golang.org/x/text/language/coverage.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "fmt" - "sort" - - "golang.org/x/text/internal/language" -) - -// The Coverage interface is used to define the level of coverage of an -// internationalization service. Note that not all types are supported by all -// services. As lists may be generated on the fly, it is recommended that users -// of a Coverage cache the results. -type Coverage interface { - // Tags returns the list of supported tags. - Tags() []Tag - - // BaseLanguages returns the list of supported base languages. - BaseLanguages() []Base - - // Scripts returns the list of supported scripts. - Scripts() []Script - - // Regions returns the list of supported regions. - Regions() []Region -} - -var ( - // Supported defines a Coverage that lists all supported subtags. Tags - // always returns nil. - Supported Coverage = allSubtags{} -) - -// TODO: -// - Support Variants, numbering systems. -// - CLDR coverage levels. -// - Set of common tags defined in this package. - -type allSubtags struct{} - -// Regions returns the list of supported regions. As all regions are in a -// consecutive range, it simply returns a slice of numbers in increasing order. -// The "undefined" region is not returned. -func (s allSubtags) Regions() []Region { - reg := make([]Region, language.NumRegions) - for i := range reg { - reg[i] = Region{language.Region(i + 1)} - } - return reg -} - -// Scripts returns the list of supported scripts. As all scripts are in a -// consecutive range, it simply returns a slice of numbers in increasing order. -// The "undefined" script is not returned. -func (s allSubtags) Scripts() []Script { - scr := make([]Script, language.NumScripts) - for i := range scr { - scr[i] = Script{language.Script(i + 1)} - } - return scr -} - -// BaseLanguages returns the list of all supported base languages. It generates -// the list by traversing the internal structures. -func (s allSubtags) BaseLanguages() []Base { - bs := language.BaseLanguages() - base := make([]Base, len(bs)) - for i, b := range bs { - base[i] = Base{b} - } - return base -} - -// Tags always returns nil. -func (s allSubtags) Tags() []Tag { - return nil -} - -// coverage is used by NewCoverage which is used as a convenient way for -// creating Coverage implementations for partially defined data. Very often a -// package will only need to define a subset of slices. coverage provides a -// convenient way to do this. Moreover, packages using NewCoverage, instead of -// their own implementation, will not break if later new slice types are added. -type coverage struct { - tags func() []Tag - bases func() []Base - scripts func() []Script - regions func() []Region -} - -func (s *coverage) Tags() []Tag { - if s.tags == nil { - return nil - } - return s.tags() -} - -// bases implements sort.Interface and is used to sort base languages. -type bases []Base - -func (b bases) Len() int { - return len(b) -} - -func (b bases) Swap(i, j int) { - b[i], b[j] = b[j], b[i] -} - -func (b bases) Less(i, j int) bool { - return b[i].langID < b[j].langID -} - -// BaseLanguages returns the result from calling s.bases if it is specified or -// otherwise derives the set of supported base languages from tags. -func (s *coverage) BaseLanguages() []Base { - if s.bases == nil { - tags := s.Tags() - if len(tags) == 0 { - return nil - } - a := make([]Base, len(tags)) - for i, t := range tags { - a[i] = Base{language.Language(t.lang())} - } - sort.Sort(bases(a)) - k := 0 - for i := 1; i < len(a); i++ { - if a[k] != a[i] { - k++ - a[k] = a[i] - } - } - return a[:k+1] - } - return s.bases() -} - -func (s *coverage) Scripts() []Script { - if s.scripts == nil { - return nil - } - return s.scripts() -} - -func (s *coverage) Regions() []Region { - if s.regions == nil { - return nil - } - return s.regions() -} - -// NewCoverage returns a Coverage for the given lists. It is typically used by -// packages providing internationalization services to define their level of -// coverage. A list may be of type []T or func() []T, where T is either Tag, -// Base, Script or Region. The returned Coverage derives the value for Bases -// from Tags if no func or slice for []Base is specified. For other unspecified -// types the returned Coverage will return nil for the respective methods. -func NewCoverage(list ...interface{}) Coverage { - s := &coverage{} - for _, x := range list { - switch v := x.(type) { - case func() []Base: - s.bases = v - case func() []Script: - s.scripts = v - case func() []Region: - s.regions = v - case func() []Tag: - s.tags = v - case []Base: - s.bases = func() []Base { return v } - case []Script: - s.scripts = func() []Script { return v } - case []Region: - s.regions = func() []Region { return v } - case []Tag: - s.tags = func() []Tag { return v } - default: - panic(fmt.Sprintf("language: unsupported set type %T", v)) - } - } - return s -} diff --git a/backend/vendor/golang.org/x/text/language/doc.go b/backend/vendor/golang.org/x/text/language/doc.go deleted file mode 100644 index 212b77c9..00000000 --- a/backend/vendor/golang.org/x/text/language/doc.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package language implements BCP 47 language tags and related functionality. -// -// The most important function of package language is to match a list of -// user-preferred languages to a list of supported languages. -// It alleviates the developer of dealing with the complexity of this process -// and provides the user with the best experience -// (see https://blog.golang.org/matchlang). -// -// # Matching preferred against supported languages -// -// A Matcher for an application that supports English, Australian English, -// Danish, and standard Mandarin can be created as follows: -// -// var matcher = language.NewMatcher([]language.Tag{ -// language.English, // The first language is used as fallback. -// language.MustParse("en-AU"), -// language.Danish, -// language.Chinese, -// }) -// -// This list of supported languages is typically implied by the languages for -// which there exists translations of the user interface. -// -// User-preferred languages usually come as a comma-separated list of BCP 47 -// language tags. -// The MatchString finds best matches for such strings: -// -// handler(w http.ResponseWriter, r *http.Request) { -// lang, _ := r.Cookie("lang") -// accept := r.Header.Get("Accept-Language") -// tag, _ := language.MatchStrings(matcher, lang.String(), accept) -// -// // tag should now be used for the initialization of any -// // locale-specific service. -// } -// -// The Matcher's Match method can be used to match Tags directly. -// -// Matchers are aware of the intricacies of equivalence between languages, such -// as deprecated subtags, legacy tags, macro languages, mutual -// intelligibility between scripts and languages, and transparently passing -// BCP 47 user configuration. -// For instance, it will know that a reader of Bokmål Danish can read Norwegian -// and will know that Cantonese ("yue") is a good match for "zh-HK". -// -// # Using match results -// -// To guarantee a consistent user experience to the user it is important to -// use the same language tag for the selection of any locale-specific services. -// For example, it is utterly confusing to substitute spelled-out numbers -// or dates in one language in text of another language. -// More subtly confusing is using the wrong sorting order or casing -// algorithm for a certain language. -// -// All the packages in x/text that provide locale-specific services -// (e.g. collate, cases) should be initialized with the tag that was -// obtained at the start of an interaction with the user. -// -// Note that Tag that is returned by Match and MatchString may differ from any -// of the supported languages, as it may contain carried over settings from -// the user tags. -// This may be inconvenient when your application has some additional -// locale-specific data for your supported languages. -// Match and MatchString both return the index of the matched supported tag -// to simplify associating such data with the matched tag. -// -// # Canonicalization -// -// If one uses the Matcher to compare languages one does not need to -// worry about canonicalization. -// -// The meaning of a Tag varies per application. The language package -// therefore delays canonicalization and preserves information as much -// as possible. The Matcher, however, will always take into account that -// two different tags may represent the same language. -// -// By default, only legacy and deprecated tags are converted into their -// canonical equivalent. All other information is preserved. This approach makes -// the confidence scores more accurate and allows matchers to distinguish -// between variants that are otherwise lost. -// -// As a consequence, two tags that should be treated as identical according to -// BCP 47 or CLDR, like "en-Latn" and "en", will be represented differently. The -// Matcher handles such distinctions, though, and is aware of the -// equivalence relations. The CanonType type can be used to alter the -// canonicalization form. -// -// # References -// -// BCP 47 - Tags for Identifying Languages http://tools.ietf.org/html/bcp47 -package language // import "golang.org/x/text/language" - -// TODO: explanation on how to match languages for your own locale-specific -// service. diff --git a/backend/vendor/golang.org/x/text/language/language.go b/backend/vendor/golang.org/x/text/language/language.go deleted file mode 100644 index 4d9c6612..00000000 --- a/backend/vendor/golang.org/x/text/language/language.go +++ /dev/null @@ -1,605 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go -output tables.go - -package language - -// TODO: Remove above NOTE after: -// - verifying that tables are dropped correctly (most notably matcher tables). - -import ( - "strings" - - "golang.org/x/text/internal/language" - "golang.org/x/text/internal/language/compact" -) - -// Tag represents a BCP 47 language tag. It is used to specify an instance of a -// specific language or locale. All language tag values are guaranteed to be -// well-formed. -type Tag compact.Tag - -func makeTag(t language.Tag) (tag Tag) { - return Tag(compact.Make(t)) -} - -func (t *Tag) tag() language.Tag { - return (*compact.Tag)(t).Tag() -} - -func (t *Tag) isCompact() bool { - return (*compact.Tag)(t).IsCompact() -} - -// TODO: improve performance. -func (t *Tag) lang() language.Language { return t.tag().LangID } -func (t *Tag) region() language.Region { return t.tag().RegionID } -func (t *Tag) script() language.Script { return t.tag().ScriptID } - -// Make is a convenience wrapper for Parse that omits the error. -// In case of an error, a sensible default is returned. -func Make(s string) Tag { - return Default.Make(s) -} - -// Make is a convenience wrapper for c.Parse that omits the error. -// In case of an error, a sensible default is returned. -func (c CanonType) Make(s string) Tag { - t, _ := c.Parse(s) - return t -} - -// Raw returns the raw base language, script and region, without making an -// attempt to infer their values. -func (t Tag) Raw() (b Base, s Script, r Region) { - tt := t.tag() - return Base{tt.LangID}, Script{tt.ScriptID}, Region{tt.RegionID} -} - -// IsRoot returns true if t is equal to language "und". -func (t Tag) IsRoot() bool { - return compact.Tag(t).IsRoot() -} - -// CanonType can be used to enable or disable various types of canonicalization. -type CanonType int - -const ( - // Replace deprecated base languages with their preferred replacements. - DeprecatedBase CanonType = 1 << iota - // Replace deprecated scripts with their preferred replacements. - DeprecatedScript - // Replace deprecated regions with their preferred replacements. - DeprecatedRegion - // Remove redundant scripts. - SuppressScript - // Normalize legacy encodings. This includes legacy languages defined in - // CLDR as well as bibliographic codes defined in ISO-639. - Legacy - // Map the dominant language of a macro language group to the macro language - // subtag. For example cmn -> zh. - Macro - // The CLDR flag should be used if full compatibility with CLDR is required. - // There are a few cases where language.Tag may differ from CLDR. To follow all - // of CLDR's suggestions, use All|CLDR. - CLDR - - // Raw can be used to Compose or Parse without Canonicalization. - Raw CanonType = 0 - - // Replace all deprecated tags with their preferred replacements. - Deprecated = DeprecatedBase | DeprecatedScript | DeprecatedRegion - - // All canonicalizations recommended by BCP 47. - BCP47 = Deprecated | SuppressScript - - // All canonicalizations. - All = BCP47 | Legacy | Macro - - // Default is the canonicalization used by Parse, Make and Compose. To - // preserve as much information as possible, canonicalizations that remove - // potentially valuable information are not included. The Matcher is - // designed to recognize similar tags that would be the same if - // they were canonicalized using All. - Default = Deprecated | Legacy - - canonLang = DeprecatedBase | Legacy | Macro - - // TODO: LikelyScript, LikelyRegion: suppress similar to ICU. -) - -// canonicalize returns the canonicalized equivalent of the tag and -// whether there was any change. -func canonicalize(c CanonType, t language.Tag) (language.Tag, bool) { - if c == Raw { - return t, false - } - changed := false - if c&SuppressScript != 0 { - if t.LangID.SuppressScript() == t.ScriptID { - t.ScriptID = 0 - changed = true - } - } - if c&canonLang != 0 { - for { - if l, aliasType := t.LangID.Canonicalize(); l != t.LangID { - switch aliasType { - case language.Legacy: - if c&Legacy != 0 { - if t.LangID == _sh && t.ScriptID == 0 { - t.ScriptID = _Latn - } - t.LangID = l - changed = true - } - case language.Macro: - if c&Macro != 0 { - // We deviate here from CLDR. The mapping "nb" -> "no" - // qualifies as a typical Macro language mapping. However, - // for legacy reasons, CLDR maps "no", the macro language - // code for Norwegian, to the dominant variant "nb". This - // change is currently under consideration for CLDR as well. - // See https://unicode.org/cldr/trac/ticket/2698 and also - // https://unicode.org/cldr/trac/ticket/1790 for some of the - // practical implications. TODO: this check could be removed - // if CLDR adopts this change. - if c&CLDR == 0 || t.LangID != _nb { - changed = true - t.LangID = l - } - } - case language.Deprecated: - if c&DeprecatedBase != 0 { - if t.LangID == _mo && t.RegionID == 0 { - t.RegionID = _MD - } - t.LangID = l - changed = true - // Other canonicalization types may still apply. - continue - } - } - } else if c&Legacy != 0 && t.LangID == _no && c&CLDR != 0 { - t.LangID = _nb - changed = true - } - break - } - } - if c&DeprecatedScript != 0 { - if t.ScriptID == _Qaai { - changed = true - t.ScriptID = _Zinh - } - } - if c&DeprecatedRegion != 0 { - if r := t.RegionID.Canonicalize(); r != t.RegionID { - changed = true - t.RegionID = r - } - } - return t, changed -} - -// Canonicalize returns the canonicalized equivalent of the tag. -func (c CanonType) Canonicalize(t Tag) (Tag, error) { - // First try fast path. - if t.isCompact() { - if _, changed := canonicalize(c, compact.Tag(t).Tag()); !changed { - return t, nil - } - } - // It is unlikely that one will canonicalize a tag after matching. So do - // a slow but simple approach here. - if tag, changed := canonicalize(c, t.tag()); changed { - tag.RemakeString() - return makeTag(tag), nil - } - return t, nil - -} - -// Confidence indicates the level of certainty for a given return value. -// For example, Serbian may be written in Cyrillic or Latin script. -// The confidence level indicates whether a value was explicitly specified, -// whether it is typically the only possible value, or whether there is -// an ambiguity. -type Confidence int - -const ( - No Confidence = iota // full confidence that there was no match - Low // most likely value picked out of a set of alternatives - High // value is generally assumed to be the correct match - Exact // exact match or explicitly specified value -) - -var confName = []string{"No", "Low", "High", "Exact"} - -func (c Confidence) String() string { - return confName[c] -} - -// String returns the canonical string representation of the language tag. -func (t Tag) String() string { - return t.tag().String() -} - -// MarshalText implements encoding.TextMarshaler. -func (t Tag) MarshalText() (text []byte, err error) { - return t.tag().MarshalText() -} - -// UnmarshalText implements encoding.TextUnmarshaler. -func (t *Tag) UnmarshalText(text []byte) error { - var tag language.Tag - err := tag.UnmarshalText(text) - *t = makeTag(tag) - return err -} - -// Base returns the base language of the language tag. If the base language is -// unspecified, an attempt will be made to infer it from the context. -// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. -func (t Tag) Base() (Base, Confidence) { - if b := t.lang(); b != 0 { - return Base{b}, Exact - } - tt := t.tag() - c := High - if tt.ScriptID == 0 && !tt.RegionID.IsCountry() { - c = Low - } - if tag, err := tt.Maximize(); err == nil && tag.LangID != 0 { - return Base{tag.LangID}, c - } - return Base{0}, No -} - -// Script infers the script for the language tag. If it was not explicitly given, it will infer -// a most likely candidate. -// If more than one script is commonly used for a language, the most likely one -// is returned with a low confidence indication. For example, it returns (Cyrl, Low) -// for Serbian. -// If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined) -// as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks -// common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts. -// See https://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for -// unknown value in CLDR. (Zzzz, Exact) is returned if Zzzz was explicitly specified. -// Note that an inferred script is never guaranteed to be the correct one. Latin is -// almost exclusively used for Afrikaans, but Arabic has been used for some texts -// in the past. Also, the script that is commonly used may change over time. -// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. -func (t Tag) Script() (Script, Confidence) { - if scr := t.script(); scr != 0 { - return Script{scr}, Exact - } - tt := t.tag() - sc, c := language.Script(_Zzzz), No - if scr := tt.LangID.SuppressScript(); scr != 0 { - // Note: it is not always the case that a language with a suppress - // script value is only written in one script (e.g. kk, ms, pa). - if tt.RegionID == 0 { - return Script{scr}, High - } - sc, c = scr, High - } - if tag, err := tt.Maximize(); err == nil { - if tag.ScriptID != sc { - sc, c = tag.ScriptID, Low - } - } else { - tt, _ = canonicalize(Deprecated|Macro, tt) - if tag, err := tt.Maximize(); err == nil && tag.ScriptID != sc { - sc, c = tag.ScriptID, Low - } - } - return Script{sc}, c -} - -// Region returns the region for the language tag. If it was not explicitly given, it will -// infer a most likely candidate from the context. -// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. -func (t Tag) Region() (Region, Confidence) { - if r := t.region(); r != 0 { - return Region{r}, Exact - } - tt := t.tag() - if tt, err := tt.Maximize(); err == nil { - return Region{tt.RegionID}, Low // TODO: differentiate between high and low. - } - tt, _ = canonicalize(Deprecated|Macro, tt) - if tag, err := tt.Maximize(); err == nil { - return Region{tag.RegionID}, Low - } - return Region{_ZZ}, No // TODO: return world instead of undetermined? -} - -// Variants returns the variants specified explicitly for this language tag. -// or nil if no variant was specified. -func (t Tag) Variants() []Variant { - if !compact.Tag(t).MayHaveVariants() { - return nil - } - v := []Variant{} - x, str := "", t.tag().Variants() - for str != "" { - x, str = nextToken(str) - v = append(v, Variant{x}) - } - return v -} - -// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a -// specific language are substituted with fields from the parent language. -// The parent for a language may change for newer versions of CLDR. -// -// Parent returns a tag for a less specific language that is mutually -// intelligible or Und if there is no such language. This may not be the same as -// simply stripping the last BCP 47 subtag. For instance, the parent of "zh-TW" -// is "zh-Hant", and the parent of "zh-Hant" is "und". -func (t Tag) Parent() Tag { - return Tag(compact.Tag(t).Parent()) -} - -// nextToken returns token t and the rest of the string. -func nextToken(s string) (t, tail string) { - p := strings.Index(s[1:], "-") - if p == -1 { - return s[1:], "" - } - p++ - return s[1:p], s[p:] -} - -// Extension is a single BCP 47 extension. -type Extension struct { - s string -} - -// String returns the string representation of the extension, including the -// type tag. -func (e Extension) String() string { - return e.s -} - -// ParseExtension parses s as an extension and returns it on success. -func ParseExtension(s string) (e Extension, err error) { - ext, err := language.ParseExtension(s) - return Extension{ext}, err -} - -// Type returns the one-byte extension type of e. It returns 0 for the zero -// exception. -func (e Extension) Type() byte { - if e.s == "" { - return 0 - } - return e.s[0] -} - -// Tokens returns the list of tokens of e. -func (e Extension) Tokens() []string { - return strings.Split(e.s, "-") -} - -// Extension returns the extension of type x for tag t. It will return -// false for ok if t does not have the requested extension. The returned -// extension will be invalid in this case. -func (t Tag) Extension(x byte) (ext Extension, ok bool) { - if !compact.Tag(t).MayHaveExtensions() { - return Extension{}, false - } - e, ok := t.tag().Extension(x) - return Extension{e}, ok -} - -// Extensions returns all extensions of t. -func (t Tag) Extensions() []Extension { - if !compact.Tag(t).MayHaveExtensions() { - return nil - } - e := []Extension{} - for _, ext := range t.tag().Extensions() { - e = append(e, Extension{ext}) - } - return e -} - -// TypeForKey returns the type associated with the given key, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// TypeForKey will traverse the inheritance chain to get the correct value. -// -// If there are multiple types associated with a key, only the first will be -// returned. If there is no type associated with a key, it returns the empty -// string. -func (t Tag) TypeForKey(key string) string { - if !compact.Tag(t).MayHaveExtensions() { - if key != "rg" && key != "va" { - return "" - } - } - return t.tag().TypeForKey(key) -} - -// SetTypeForKey returns a new Tag with the key set to type, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// An empty value removes an existing pair with the same key. -func (t Tag) SetTypeForKey(key, value string) (Tag, error) { - tt, err := t.tag().SetTypeForKey(key, value) - return makeTag(tt), err -} - -// NumCompactTags is the number of compact tags. The maximum tag is -// NumCompactTags-1. -const NumCompactTags = compact.NumCompactTags - -// CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags -// for which data exists in the text repository.The index will change over time -// and should not be stored in persistent storage. If t does not match a compact -// index, exact will be false and the compact index will be returned for the -// first match after repeatedly taking the Parent of t. -func CompactIndex(t Tag) (index int, exact bool) { - id, exact := compact.LanguageID(compact.Tag(t)) - return int(id), exact -} - -var root = language.Tag{} - -// Base is an ISO 639 language code, used for encoding the base language -// of a language tag. -type Base struct { - langID language.Language -} - -// ParseBase parses a 2- or 3-letter ISO 639 code. -// It returns a ValueError if s is a well-formed but unknown language identifier -// or another error if another error occurred. -func ParseBase(s string) (Base, error) { - l, err := language.ParseBase(s) - return Base{l}, err -} - -// String returns the BCP 47 representation of the base language. -func (b Base) String() string { - return b.langID.String() -} - -// ISO3 returns the ISO 639-3 language code. -func (b Base) ISO3() string { - return b.langID.ISO3() -} - -// IsPrivateUse reports whether this language code is reserved for private use. -func (b Base) IsPrivateUse() bool { - return b.langID.IsPrivateUse() -} - -// Script is a 4-letter ISO 15924 code for representing scripts. -// It is idiomatically represented in title case. -type Script struct { - scriptID language.Script -} - -// ParseScript parses a 4-letter ISO 15924 code. -// It returns a ValueError if s is a well-formed but unknown script identifier -// or another error if another error occurred. -func ParseScript(s string) (Script, error) { - sc, err := language.ParseScript(s) - return Script{sc}, err -} - -// String returns the script code in title case. -// It returns "Zzzz" for an unspecified script. -func (s Script) String() string { - return s.scriptID.String() -} - -// IsPrivateUse reports whether this script code is reserved for private use. -func (s Script) IsPrivateUse() bool { - return s.scriptID.IsPrivateUse() -} - -// Region is an ISO 3166-1 or UN M.49 code for representing countries and regions. -type Region struct { - regionID language.Region -} - -// EncodeM49 returns the Region for the given UN M.49 code. -// It returns an error if r is not a valid code. -func EncodeM49(r int) (Region, error) { - rid, err := language.EncodeM49(r) - return Region{rid}, err -} - -// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code. -// It returns a ValueError if s is a well-formed but unknown region identifier -// or another error if another error occurred. -func ParseRegion(s string) (Region, error) { - r, err := language.ParseRegion(s) - return Region{r}, err -} - -// String returns the BCP 47 representation for the region. -// It returns "ZZ" for an unspecified region. -func (r Region) String() string { - return r.regionID.String() -} - -// ISO3 returns the 3-letter ISO code of r. -// Note that not all regions have a 3-letter ISO code. -// In such cases this method returns "ZZZ". -func (r Region) ISO3() string { - return r.regionID.ISO3() -} - -// M49 returns the UN M.49 encoding of r, or 0 if this encoding -// is not defined for r. -func (r Region) M49() int { - return r.regionID.M49() -} - -// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This -// may include private-use tags that are assigned by CLDR and used in this -// implementation. So IsPrivateUse and IsCountry can be simultaneously true. -func (r Region) IsPrivateUse() bool { - return r.regionID.IsPrivateUse() -} - -// IsCountry returns whether this region is a country or autonomous area. This -// includes non-standard definitions from CLDR. -func (r Region) IsCountry() bool { - return r.regionID.IsCountry() -} - -// IsGroup returns whether this region defines a collection of regions. This -// includes non-standard definitions from CLDR. -func (r Region) IsGroup() bool { - return r.regionID.IsGroup() -} - -// Contains returns whether Region c is contained by Region r. It returns true -// if c == r. -func (r Region) Contains(c Region) bool { - return r.regionID.Contains(c.regionID) -} - -// TLD returns the country code top-level domain (ccTLD). UK is returned for GB. -// In all other cases it returns either the region itself or an error. -// -// This method may return an error for a region for which there exists a -// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The -// region will already be canonicalized it was obtained from a Tag that was -// obtained using any of the default methods. -func (r Region) TLD() (Region, error) { - tld, err := r.regionID.TLD() - return Region{tld}, err -} - -// Canonicalize returns the region or a possible replacement if the region is -// deprecated. It will not return a replacement for deprecated regions that -// are split into multiple regions. -func (r Region) Canonicalize() Region { - return Region{r.regionID.Canonicalize()} -} - -// Variant represents a registered variant of a language as defined by BCP 47. -type Variant struct { - variant string -} - -// ParseVariant parses and returns a Variant. An error is returned if s is not -// a valid variant. -func ParseVariant(s string) (Variant, error) { - v, err := language.ParseVariant(s) - return Variant{v.String()}, err -} - -// String returns the string representation of the variant. -func (v Variant) String() string { - return v.variant -} diff --git a/backend/vendor/golang.org/x/text/language/match.go b/backend/vendor/golang.org/x/text/language/match.go deleted file mode 100644 index ee45f494..00000000 --- a/backend/vendor/golang.org/x/text/language/match.go +++ /dev/null @@ -1,735 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "errors" - "strings" - - "golang.org/x/text/internal/language" -) - -// A MatchOption configures a Matcher. -type MatchOption func(*matcher) - -// PreferSameScript will, in the absence of a match, result in the first -// preferred tag with the same script as a supported tag to match this supported -// tag. The default is currently true, but this may change in the future. -func PreferSameScript(preferSame bool) MatchOption { - return func(m *matcher) { m.preferSameScript = preferSame } -} - -// TODO(v1.0.0): consider making Matcher a concrete type, instead of interface. -// There doesn't seem to be too much need for multiple types. -// Making it a concrete type allows MatchStrings to be a method, which will -// improve its discoverability. - -// MatchStrings parses and matches the given strings until one of them matches -// the language in the Matcher. A string may be an Accept-Language header as -// handled by ParseAcceptLanguage. The default language is returned if no -// other language matched. -func MatchStrings(m Matcher, lang ...string) (tag Tag, index int) { - for _, accept := range lang { - desired, _, err := ParseAcceptLanguage(accept) - if err != nil { - continue - } - if tag, index, conf := m.Match(desired...); conf != No { - return tag, index - } - } - tag, index, _ = m.Match() - return -} - -// Matcher is the interface that wraps the Match method. -// -// Match returns the best match for any of the given tags, along with -// a unique index associated with the returned tag and a confidence -// score. -type Matcher interface { - Match(t ...Tag) (tag Tag, index int, c Confidence) -} - -// Comprehends reports the confidence score for a speaker of a given language -// to being able to comprehend the written form of an alternative language. -func Comprehends(speaker, alternative Tag) Confidence { - _, _, c := NewMatcher([]Tag{alternative}).Match(speaker) - return c -} - -// NewMatcher returns a Matcher that matches an ordered list of preferred tags -// against a list of supported tags based on written intelligibility, closeness -// of dialect, equivalence of subtags and various other rules. It is initialized -// with the list of supported tags. The first element is used as the default -// value in case no match is found. -// -// Its Match method matches the first of the given Tags to reach a certain -// confidence threshold. The tags passed to Match should therefore be specified -// in order of preference. Extensions are ignored for matching. -// -// The index returned by the Match method corresponds to the index of the -// matched tag in t, but is augmented with the Unicode extension ('u')of the -// corresponding preferred tag. This allows user locale options to be passed -// transparently. -func NewMatcher(t []Tag, options ...MatchOption) Matcher { - return newMatcher(t, options) -} - -func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) { - var tt language.Tag - match, w, c := m.getBest(want...) - if match != nil { - tt, index = match.tag, match.index - } else { - // TODO: this should be an option - tt = m.default_.tag - if m.preferSameScript { - outer: - for _, w := range want { - script, _ := w.Script() - if script.scriptID == 0 { - // Don't do anything if there is no script, such as with - // private subtags. - continue - } - for i, h := range m.supported { - if script.scriptID == h.maxScript { - tt, index = h.tag, i - break outer - } - } - } - } - // TODO: select first language tag based on script. - } - if w.RegionID != tt.RegionID && w.RegionID != 0 { - if w.RegionID != 0 && tt.RegionID != 0 && tt.RegionID.Contains(w.RegionID) { - tt.RegionID = w.RegionID - tt.RemakeString() - } else if r := w.RegionID.String(); len(r) == 2 { - // TODO: also filter macro and deprecated. - tt, _ = tt.SetTypeForKey("rg", strings.ToLower(r)+"zzzz") - } - } - // Copy options from the user-provided tag into the result tag. This is hard - // to do after the fact, so we do it here. - // TODO: add in alternative variants to -u-va-. - // TODO: add preferred region to -u-rg-. - if e := w.Extensions(); len(e) > 0 { - b := language.Builder{} - b.SetTag(tt) - for _, e := range e { - b.AddExt(e) - } - tt = b.Make() - } - return makeTag(tt), index, c -} - -// ErrMissingLikelyTagsData indicates no information was available -// to compute likely values of missing tags. -var ErrMissingLikelyTagsData = errors.New("missing likely tags data") - -// func (t *Tag) setTagsFrom(id Tag) { -// t.LangID = id.LangID -// t.ScriptID = id.ScriptID -// t.RegionID = id.RegionID -// } - -// Tag Matching -// CLDR defines an algorithm for finding the best match between two sets of language -// tags. The basic algorithm defines how to score a possible match and then find -// the match with the best score -// (see https://www.unicode.org/reports/tr35/#LanguageMatching). -// Using scoring has several disadvantages. The scoring obfuscates the importance of -// the various factors considered, making the algorithm harder to understand. Using -// scoring also requires the full score to be computed for each pair of tags. -// -// We will use a different algorithm which aims to have the following properties: -// - clarity on the precedence of the various selection factors, and -// - improved performance by allowing early termination of a comparison. -// -// Matching algorithm (overview) -// Input: -// - supported: a set of supported tags -// - default: the default tag to return in case there is no match -// - desired: list of desired tags, ordered by preference, starting with -// the most-preferred. -// -// Algorithm: -// 1) Set the best match to the lowest confidence level -// 2) For each tag in "desired": -// a) For each tag in "supported": -// 1) compute the match between the two tags. -// 2) if the match is better than the previous best match, replace it -// with the new match. (see next section) -// b) if the current best match is Exact and pin is true the result will be -// frozen to the language found thusfar, although better matches may -// still be found for the same language. -// 3) If the best match so far is below a certain threshold, return "default". -// -// Ranking: -// We use two phases to determine whether one pair of tags are a better match -// than another pair of tags. First, we determine a rough confidence level. If the -// levels are different, the one with the highest confidence wins. -// Second, if the rough confidence levels are identical, we use a set of tie-breaker -// rules. -// -// The confidence level of matching a pair of tags is determined by finding the -// lowest confidence level of any matches of the corresponding subtags (the -// result is deemed as good as its weakest link). -// We define the following levels: -// Exact - An exact match of a subtag, before adding likely subtags. -// MaxExact - An exact match of a subtag, after adding likely subtags. -// [See Note 2]. -// High - High level of mutual intelligibility between different subtag -// variants. -// Low - Low level of mutual intelligibility between different subtag -// variants. -// No - No mutual intelligibility. -// -// The following levels can occur for each type of subtag: -// Base: Exact, MaxExact, High, Low, No -// Script: Exact, MaxExact [see Note 3], Low, No -// Region: Exact, MaxExact, High -// Variant: Exact, High -// Private: Exact, No -// -// Any result with a confidence level of Low or higher is deemed a possible match. -// Once a desired tag matches any of the supported tags with a level of MaxExact -// or higher, the next desired tag is not considered (see Step 2.b). -// Note that CLDR provides languageMatching data that defines close equivalence -// classes for base languages, scripts and regions. -// -// Tie-breaking -// If we get the same confidence level for two matches, we apply a sequence of -// tie-breaking rules. The first that succeeds defines the result. The rules are -// applied in the following order. -// 1) Original language was defined and was identical. -// 2) Original region was defined and was identical. -// 3) Distance between two maximized regions was the smallest. -// 4) Original script was defined and was identical. -// 5) Distance from want tag to have tag using the parent relation [see Note 5.] -// If there is still no winner after these rules are applied, the first match -// found wins. -// -// Notes: -// [2] In practice, as matching of Exact is done in a separate phase from -// matching the other levels, we reuse the Exact level to mean MaxExact in -// the second phase. As a consequence, we only need the levels defined by -// the Confidence type. The MaxExact confidence level is mapped to High in -// the public API. -// [3] We do not differentiate between maximized script values that were derived -// from suppressScript versus most likely tag data. We determined that in -// ranking the two, one ranks just after the other. Moreover, the two cannot -// occur concurrently. As a consequence, they are identical for practical -// purposes. -// [4] In case of deprecated, macro-equivalents and legacy mappings, we assign -// the MaxExact level to allow iw vs he to still be a closer match than -// en-AU vs en-US, for example. -// [5] In CLDR a locale inherits fields that are unspecified for this locale -// from its parent. Therefore, if a locale is a parent of another locale, -// it is a strong measure for closeness, especially when no other tie -// breaker rule applies. One could also argue it is inconsistent, for -// example, when pt-AO matches pt (which CLDR equates with pt-BR), even -// though its parent is pt-PT according to the inheritance rules. -// -// Implementation Details: -// There are several performance considerations worth pointing out. Most notably, -// we preprocess as much as possible (within reason) at the time of creation of a -// matcher. This includes: -// - creating a per-language map, which includes data for the raw base language -// and its canonicalized variant (if applicable), -// - expanding entries for the equivalence classes defined in CLDR's -// languageMatch data. -// The per-language map ensures that typically only a very small number of tags -// need to be considered. The pre-expansion of canonicalized subtags and -// equivalence classes reduces the amount of map lookups that need to be done at -// runtime. - -// matcher keeps a set of supported language tags, indexed by language. -type matcher struct { - default_ *haveTag - supported []*haveTag - index map[language.Language]*matchHeader - passSettings bool - preferSameScript bool -} - -// matchHeader has the lists of tags for exact matches and matches based on -// maximized and canonicalized tags for a given language. -type matchHeader struct { - haveTags []*haveTag - original bool -} - -// haveTag holds a supported Tag and its maximized script and region. The maximized -// or canonicalized language is not stored as it is not needed during matching. -type haveTag struct { - tag language.Tag - - // index of this tag in the original list of supported tags. - index int - - // conf is the maximum confidence that can result from matching this haveTag. - // When conf < Exact this means it was inserted after applying a CLDR equivalence rule. - conf Confidence - - // Maximized region and script. - maxRegion language.Region - maxScript language.Script - - // altScript may be checked as an alternative match to maxScript. If altScript - // matches, the confidence level for this match is Low. Theoretically there - // could be multiple alternative scripts. This does not occur in practice. - altScript language.Script - - // nextMax is the index of the next haveTag with the same maximized tags. - nextMax uint16 -} - -func makeHaveTag(tag language.Tag, index int) (haveTag, language.Language) { - max := tag - if tag.LangID != 0 || tag.RegionID != 0 || tag.ScriptID != 0 { - max, _ = canonicalize(All, max) - max, _ = max.Maximize() - max.RemakeString() - } - return haveTag{tag, index, Exact, max.RegionID, max.ScriptID, altScript(max.LangID, max.ScriptID), 0}, max.LangID -} - -// altScript returns an alternative script that may match the given script with -// a low confidence. At the moment, the langMatch data allows for at most one -// script to map to another and we rely on this to keep the code simple. -func altScript(l language.Language, s language.Script) language.Script { - for _, alt := range matchScript { - // TODO: also match cases where language is not the same. - if (language.Language(alt.wantLang) == l || language.Language(alt.haveLang) == l) && - language.Script(alt.haveScript) == s { - return language.Script(alt.wantScript) - } - } - return 0 -} - -// addIfNew adds a haveTag to the list of tags only if it is a unique tag. -// Tags that have the same maximized values are linked by index. -func (h *matchHeader) addIfNew(n haveTag, exact bool) { - h.original = h.original || exact - // Don't add new exact matches. - for _, v := range h.haveTags { - if equalsRest(v.tag, n.tag) { - return - } - } - // Allow duplicate maximized tags, but create a linked list to allow quickly - // comparing the equivalents and bail out. - for i, v := range h.haveTags { - if v.maxScript == n.maxScript && - v.maxRegion == n.maxRegion && - v.tag.VariantOrPrivateUseTags() == n.tag.VariantOrPrivateUseTags() { - for h.haveTags[i].nextMax != 0 { - i = int(h.haveTags[i].nextMax) - } - h.haveTags[i].nextMax = uint16(len(h.haveTags)) - break - } - } - h.haveTags = append(h.haveTags, &n) -} - -// header returns the matchHeader for the given language. It creates one if -// it doesn't already exist. -func (m *matcher) header(l language.Language) *matchHeader { - if h := m.index[l]; h != nil { - return h - } - h := &matchHeader{} - m.index[l] = h - return h -} - -func toConf(d uint8) Confidence { - if d <= 10 { - return High - } - if d < 30 { - return Low - } - return No -} - -// newMatcher builds an index for the given supported tags and returns it as -// a matcher. It also expands the index by considering various equivalence classes -// for a given tag. -func newMatcher(supported []Tag, options []MatchOption) *matcher { - m := &matcher{ - index: make(map[language.Language]*matchHeader), - preferSameScript: true, - } - for _, o := range options { - o(m) - } - if len(supported) == 0 { - m.default_ = &haveTag{} - return m - } - // Add supported languages to the index. Add exact matches first to give - // them precedence. - for i, tag := range supported { - tt := tag.tag() - pair, _ := makeHaveTag(tt, i) - m.header(tt.LangID).addIfNew(pair, true) - m.supported = append(m.supported, &pair) - } - m.default_ = m.header(supported[0].lang()).haveTags[0] - // Keep these in two different loops to support the case that two equivalent - // languages are distinguished, such as iw and he. - for i, tag := range supported { - tt := tag.tag() - pair, max := makeHaveTag(tt, i) - if max != tt.LangID { - m.header(max).addIfNew(pair, true) - } - } - - // update is used to add indexes in the map for equivalent languages. - // update will only add entries to original indexes, thus not computing any - // transitive relations. - update := func(want, have uint16, conf Confidence) { - if hh := m.index[language.Language(have)]; hh != nil { - if !hh.original { - return - } - hw := m.header(language.Language(want)) - for _, ht := range hh.haveTags { - v := *ht - if conf < v.conf { - v.conf = conf - } - v.nextMax = 0 // this value needs to be recomputed - if v.altScript != 0 { - v.altScript = altScript(language.Language(want), v.maxScript) - } - hw.addIfNew(v, conf == Exact && hh.original) - } - } - } - - // Add entries for languages with mutual intelligibility as defined by CLDR's - // languageMatch data. - for _, ml := range matchLang { - update(ml.want, ml.have, toConf(ml.distance)) - if !ml.oneway { - update(ml.have, ml.want, toConf(ml.distance)) - } - } - - // Add entries for possible canonicalizations. This is an optimization to - // ensure that only one map lookup needs to be done at runtime per desired tag. - // First we match deprecated equivalents. If they are perfect equivalents - // (their canonicalization simply substitutes a different language code, but - // nothing else), the match confidence is Exact, otherwise it is High. - for i, lm := range language.AliasMap { - // If deprecated codes match and there is no fiddling with the script or - // or region, we consider it an exact match. - conf := Exact - if language.AliasTypes[i] != language.Macro { - if !isExactEquivalent(language.Language(lm.From)) { - conf = High - } - update(lm.To, lm.From, conf) - } - update(lm.From, lm.To, conf) - } - return m -} - -// getBest gets the best matching tag in m for any of the given tags, taking into -// account the order of preference of the given tags. -func (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confidence) { - best := bestMatch{} - for i, ww := range want { - w := ww.tag() - var max language.Tag - // Check for exact match first. - h := m.index[w.LangID] - if w.LangID != 0 { - if h == nil { - continue - } - // Base language is defined. - max, _ = canonicalize(Legacy|Deprecated|Macro, w) - // A region that is added through canonicalization is stronger than - // a maximized region: set it in the original (e.g. mo -> ro-MD). - if w.RegionID != max.RegionID { - w.RegionID = max.RegionID - } - // TODO: should we do the same for scripts? - // See test case: en, sr, nl ; sh ; sr - max, _ = max.Maximize() - } else { - // Base language is not defined. - if h != nil { - for i := range h.haveTags { - have := h.haveTags[i] - if equalsRest(have.tag, w) { - return have, w, Exact - } - } - } - if w.ScriptID == 0 && w.RegionID == 0 { - // We skip all tags matching und for approximate matching, including - // private tags. - continue - } - max, _ = w.Maximize() - if h = m.index[max.LangID]; h == nil { - continue - } - } - pin := true - for _, t := range want[i+1:] { - if w.LangID == t.lang() { - pin = false - break - } - } - // Check for match based on maximized tag. - for i := range h.haveTags { - have := h.haveTags[i] - best.update(have, w, max.ScriptID, max.RegionID, pin) - if best.conf == Exact { - for have.nextMax != 0 { - have = h.haveTags[have.nextMax] - best.update(have, w, max.ScriptID, max.RegionID, pin) - } - return best.have, best.want, best.conf - } - } - } - if best.conf <= No { - if len(want) != 0 { - return nil, want[0].tag(), No - } - return nil, language.Tag{}, No - } - return best.have, best.want, best.conf -} - -// bestMatch accumulates the best match so far. -type bestMatch struct { - have *haveTag - want language.Tag - conf Confidence - pinnedRegion language.Region - pinLanguage bool - sameRegionGroup bool - // Cached results from applying tie-breaking rules. - origLang bool - origReg bool - paradigmReg bool - regGroupDist uint8 - origScript bool -} - -// update updates the existing best match if the new pair is considered to be a -// better match. To determine if the given pair is a better match, it first -// computes the rough confidence level. If this surpasses the current match, it -// will replace it and update the tie-breaker rule cache. If there is a tie, it -// proceeds with applying a series of tie-breaker rules. If there is no -// conclusive winner after applying the tie-breaker rules, it leaves the current -// match as the preferred match. -// -// If pin is true and have and tag are a strong match, it will henceforth only -// consider matches for this language. This corresponds to the idea that most -// users have a strong preference for the first defined language. A user can -// still prefer a second language over a dialect of the preferred language by -// explicitly specifying dialects, e.g. "en, nl, en-GB". In this case pin should -// be false. -func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.Script, maxRegion language.Region, pin bool) { - // Bail if the maximum attainable confidence is below that of the current best match. - c := have.conf - if c < m.conf { - return - } - // Don't change the language once we already have found an exact match. - if m.pinLanguage && tag.LangID != m.want.LangID { - return - } - // Pin the region group if we are comparing tags for the same language. - if tag.LangID == m.want.LangID && m.sameRegionGroup { - _, sameGroup := regionGroupDist(m.pinnedRegion, have.maxRegion, have.maxScript, m.want.LangID) - if !sameGroup { - return - } - } - if c == Exact && have.maxScript == maxScript { - // If there is another language and then another entry of this language, - // don't pin anything, otherwise pin the language. - m.pinLanguage = pin - } - if equalsRest(have.tag, tag) { - } else if have.maxScript != maxScript { - // There is usually very little comprehension between different scripts. - // In a few cases there may still be Low comprehension. This possibility - // is pre-computed and stored in have.altScript. - if Low < m.conf || have.altScript != maxScript { - return - } - c = Low - } else if have.maxRegion != maxRegion { - if High < c { - // There is usually a small difference between languages across regions. - c = High - } - } - - // We store the results of the computations of the tie-breaker rules along - // with the best match. There is no need to do the checks once we determine - // we have a winner, but we do still need to do the tie-breaker computations. - // We use "beaten" to keep track if we still need to do the checks. - beaten := false // true if the new pair defeats the current one. - if c != m.conf { - if c < m.conf { - return - } - beaten = true - } - - // Tie-breaker rules: - // We prefer if the pre-maximized language was specified and identical. - origLang := have.tag.LangID == tag.LangID && tag.LangID != 0 - if !beaten && m.origLang != origLang { - if m.origLang { - return - } - beaten = true - } - - // We prefer if the pre-maximized region was specified and identical. - origReg := have.tag.RegionID == tag.RegionID && tag.RegionID != 0 - if !beaten && m.origReg != origReg { - if m.origReg { - return - } - beaten = true - } - - regGroupDist, sameGroup := regionGroupDist(have.maxRegion, maxRegion, maxScript, tag.LangID) - if !beaten && m.regGroupDist != regGroupDist { - if regGroupDist > m.regGroupDist { - return - } - beaten = true - } - - paradigmReg := isParadigmLocale(tag.LangID, have.maxRegion) - if !beaten && m.paradigmReg != paradigmReg { - if !paradigmReg { - return - } - beaten = true - } - - // Next we prefer if the pre-maximized script was specified and identical. - origScript := have.tag.ScriptID == tag.ScriptID && tag.ScriptID != 0 - if !beaten && m.origScript != origScript { - if m.origScript { - return - } - beaten = true - } - - // Update m to the newly found best match. - if beaten { - m.have = have - m.want = tag - m.conf = c - m.pinnedRegion = maxRegion - m.sameRegionGroup = sameGroup - m.origLang = origLang - m.origReg = origReg - m.paradigmReg = paradigmReg - m.origScript = origScript - m.regGroupDist = regGroupDist - } -} - -func isParadigmLocale(lang language.Language, r language.Region) bool { - for _, e := range paradigmLocales { - if language.Language(e[0]) == lang && (r == language.Region(e[1]) || r == language.Region(e[2])) { - return true - } - } - return false -} - -// regionGroupDist computes the distance between two regions based on their -// CLDR grouping. -func regionGroupDist(a, b language.Region, script language.Script, lang language.Language) (dist uint8, same bool) { - const defaultDistance = 4 - - aGroup := uint(regionToGroups[a]) << 1 - bGroup := uint(regionToGroups[b]) << 1 - for _, ri := range matchRegion { - if language.Language(ri.lang) == lang && (ri.script == 0 || language.Script(ri.script) == script) { - group := uint(1 << (ri.group &^ 0x80)) - if 0x80&ri.group == 0 { - if aGroup&bGroup&group != 0 { // Both regions are in the group. - return ri.distance, ri.distance == defaultDistance - } - } else { - if (aGroup|bGroup)&group == 0 { // Both regions are not in the group. - return ri.distance, ri.distance == defaultDistance - } - } - } - } - return defaultDistance, true -} - -// equalsRest compares everything except the language. -func equalsRest(a, b language.Tag) bool { - // TODO: don't include extensions in this comparison. To do this efficiently, - // though, we should handle private tags separately. - return a.ScriptID == b.ScriptID && a.RegionID == b.RegionID && a.VariantOrPrivateUseTags() == b.VariantOrPrivateUseTags() -} - -// isExactEquivalent returns true if canonicalizing the language will not alter -// the script or region of a tag. -func isExactEquivalent(l language.Language) bool { - for _, o := range notEquivalent { - if o == l { - return false - } - } - return true -} - -var notEquivalent []language.Language - -func init() { - // Create a list of all languages for which canonicalization may alter the - // script or region. - for _, lm := range language.AliasMap { - tag := language.Tag{LangID: language.Language(lm.From)} - if tag, _ = canonicalize(All, tag); tag.ScriptID != 0 || tag.RegionID != 0 { - notEquivalent = append(notEquivalent, language.Language(lm.From)) - } - } - // Maximize undefined regions of paradigm locales. - for i, v := range paradigmLocales { - t := language.Tag{LangID: language.Language(v[0])} - max, _ := t.Maximize() - if v[1] == 0 { - paradigmLocales[i][1] = uint16(max.RegionID) - } - if v[2] == 0 { - paradigmLocales[i][2] = uint16(max.RegionID) - } - } -} diff --git a/backend/vendor/golang.org/x/text/language/parse.go b/backend/vendor/golang.org/x/text/language/parse.go deleted file mode 100644 index 4d57222e..00000000 --- a/backend/vendor/golang.org/x/text/language/parse.go +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "errors" - "sort" - "strconv" - "strings" - - "golang.org/x/text/internal/language" -) - -// ValueError is returned by any of the parsing functions when the -// input is well-formed but the respective subtag is not recognized -// as a valid value. -type ValueError interface { - error - - // Subtag returns the subtag for which the error occurred. - Subtag() string -} - -// Parse parses the given BCP 47 string and returns a valid Tag. If parsing -// failed it returns an error and any part of the tag that could be parsed. -// If parsing succeeded but an unknown value was found, it returns -// ValueError. The Tag returned in this case is just stripped of the unknown -// value. All other values are preserved. It accepts tags in the BCP 47 format -// and extensions to this standard defined in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// The resulting tag is canonicalized using the default canonicalization type. -func Parse(s string) (t Tag, err error) { - return Default.Parse(s) -} - -// Parse parses the given BCP 47 string and returns a valid Tag. If parsing -// failed it returns an error and any part of the tag that could be parsed. -// If parsing succeeded but an unknown value was found, it returns -// ValueError. The Tag returned in this case is just stripped of the unknown -// value. All other values are preserved. It accepts tags in the BCP 47 format -// and extensions to this standard defined in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// The resulting tag is canonicalized using the canonicalization type c. -func (c CanonType) Parse(s string) (t Tag, err error) { - defer func() { - if recover() != nil { - t = Tag{} - err = language.ErrSyntax - } - }() - - tt, err := language.Parse(s) - if err != nil { - return makeTag(tt), err - } - tt, changed := canonicalize(c, tt) - if changed { - tt.RemakeString() - } - return makeTag(tt), err -} - -// Compose creates a Tag from individual parts, which may be of type Tag, Base, -// Script, Region, Variant, []Variant, Extension, []Extension or error. If a -// Base, Script or Region or slice of type Variant or Extension is passed more -// than once, the latter will overwrite the former. Variants and Extensions are -// accumulated, but if two extensions of the same type are passed, the latter -// will replace the former. For -u extensions, though, the key-type pairs are -// added, where later values overwrite older ones. A Tag overwrites all former -// values and typically only makes sense as the first argument. The resulting -// tag is returned after canonicalizing using the Default CanonType. If one or -// more errors are encountered, one of the errors is returned. -func Compose(part ...interface{}) (t Tag, err error) { - return Default.Compose(part...) -} - -// Compose creates a Tag from individual parts, which may be of type Tag, Base, -// Script, Region, Variant, []Variant, Extension, []Extension or error. If a -// Base, Script or Region or slice of type Variant or Extension is passed more -// than once, the latter will overwrite the former. Variants and Extensions are -// accumulated, but if two extensions of the same type are passed, the latter -// will replace the former. For -u extensions, though, the key-type pairs are -// added, where later values overwrite older ones. A Tag overwrites all former -// values and typically only makes sense as the first argument. The resulting -// tag is returned after canonicalizing using CanonType c. If one or more errors -// are encountered, one of the errors is returned. -func (c CanonType) Compose(part ...interface{}) (t Tag, err error) { - defer func() { - if recover() != nil { - t = Tag{} - err = language.ErrSyntax - } - }() - - var b language.Builder - if err = update(&b, part...); err != nil { - return und, err - } - b.Tag, _ = canonicalize(c, b.Tag) - return makeTag(b.Make()), err -} - -var errInvalidArgument = errors.New("invalid Extension or Variant") - -func update(b *language.Builder, part ...interface{}) (err error) { - for _, x := range part { - switch v := x.(type) { - case Tag: - b.SetTag(v.tag()) - case Base: - b.Tag.LangID = v.langID - case Script: - b.Tag.ScriptID = v.scriptID - case Region: - b.Tag.RegionID = v.regionID - case Variant: - if v.variant == "" { - err = errInvalidArgument - break - } - b.AddVariant(v.variant) - case Extension: - if v.s == "" { - err = errInvalidArgument - break - } - b.SetExt(v.s) - case []Variant: - b.ClearVariants() - for _, v := range v { - b.AddVariant(v.variant) - } - case []Extension: - b.ClearExtensions() - for _, e := range v { - b.SetExt(e.s) - } - // TODO: support parsing of raw strings based on morphology or just extensions? - case error: - if v != nil { - err = v - } - } - } - return -} - -var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight") -var errTagListTooLarge = errors.New("tag list exceeds max length") - -// ParseAcceptLanguage parses the contents of an Accept-Language header as -// defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and -// a list of corresponding quality weights. It is more permissive than RFC 2616 -// and may return non-nil slices even if the input is not valid. -// The Tags will be sorted by highest weight first and then by first occurrence. -// Tags with a weight of zero will be dropped. An error will be returned if the -// input could not be parsed. -func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { - defer func() { - if recover() != nil { - tag = nil - q = nil - err = language.ErrSyntax - } - }() - - if strings.Count(s, "-") > 1000 { - return nil, nil, errTagListTooLarge - } - - var entry string - for s != "" { - if entry, s = split(s, ','); entry == "" { - continue - } - - entry, weight := split(entry, ';') - - // Scan the language. - t, err := Parse(entry) - if err != nil { - id, ok := acceptFallback[entry] - if !ok { - return nil, nil, err - } - t = makeTag(language.Tag{LangID: id}) - } - - // Scan the optional weight. - w := 1.0 - if weight != "" { - weight = consume(weight, 'q') - weight = consume(weight, '=') - // consume returns the empty string when a token could not be - // consumed, resulting in an error for ParseFloat. - if w, err = strconv.ParseFloat(weight, 32); err != nil { - return nil, nil, errInvalidWeight - } - // Drop tags with a quality weight of 0. - if w <= 0 { - continue - } - } - - tag = append(tag, t) - q = append(q, float32(w)) - } - sort.Stable(&tagSort{tag, q}) - return tag, q, nil -} - -// consume removes a leading token c from s and returns the result or the empty -// string if there is no such token. -func consume(s string, c byte) string { - if s == "" || s[0] != c { - return "" - } - return strings.TrimSpace(s[1:]) -} - -func split(s string, c byte) (head, tail string) { - if i := strings.IndexByte(s, c); i >= 0 { - return strings.TrimSpace(s[:i]), strings.TrimSpace(s[i+1:]) - } - return strings.TrimSpace(s), "" -} - -// Add hack mapping to deal with a small number of cases that occur -// in Accept-Language (with reasonable frequency). -var acceptFallback = map[string]language.Language{ - "english": _en, - "deutsch": _de, - "italian": _it, - "french": _fr, - "*": _mul, // defined in the spec to match all languages. -} - -type tagSort struct { - tag []Tag - q []float32 -} - -func (s *tagSort) Len() int { - return len(s.q) -} - -func (s *tagSort) Less(i, j int) bool { - return s.q[i] > s.q[j] -} - -func (s *tagSort) Swap(i, j int) { - s.tag[i], s.tag[j] = s.tag[j], s.tag[i] - s.q[i], s.q[j] = s.q[j], s.q[i] -} diff --git a/backend/vendor/golang.org/x/text/language/tables.go b/backend/vendor/golang.org/x/text/language/tables.go deleted file mode 100644 index 34a732b6..00000000 --- a/backend/vendor/golang.org/x/text/language/tables.go +++ /dev/null @@ -1,298 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package language - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "32" - -const ( - _de = 269 - _en = 313 - _fr = 350 - _it = 505 - _mo = 784 - _no = 879 - _nb = 839 - _pt = 960 - _sh = 1031 - _mul = 806 - _und = 0 -) -const ( - _001 = 1 - _419 = 31 - _BR = 65 - _CA = 73 - _ES = 110 - _GB = 123 - _MD = 188 - _PT = 238 - _UK = 306 - _US = 309 - _ZZ = 357 - _XA = 323 - _XC = 325 - _XK = 333 -) -const ( - _Latn = 90 - _Hani = 57 - _Hans = 59 - _Hant = 60 - _Qaaa = 147 - _Qaai = 155 - _Qabx = 196 - _Zinh = 252 - _Zyyy = 257 - _Zzzz = 258 -) - -var regionToGroups = []uint8{ // 358 elements - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x04, - // Entry 40 - 7F - 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, - 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x08, - 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, - // Entry 80 - BF - 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x01, 0x00, 0x04, 0x02, 0x00, 0x04, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, - // Entry C0 - FF - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, - 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 100 - 13F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x04, 0x00, - 0x00, 0x04, 0x00, 0x04, 0x04, 0x05, 0x00, 0x00, - // Entry 140 - 17F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -} // Size: 382 bytes - -var paradigmLocales = [][3]uint16{ // 3 elements - 0: [3]uint16{0x139, 0x0, 0x7b}, - 1: [3]uint16{0x13e, 0x0, 0x1f}, - 2: [3]uint16{0x3c0, 0x41, 0xee}, -} // Size: 42 bytes - -type mutualIntelligibility struct { - want uint16 - have uint16 - distance uint8 - oneway bool -} -type scriptIntelligibility struct { - wantLang uint16 - haveLang uint16 - wantScript uint8 - haveScript uint8 - distance uint8 -} -type regionIntelligibility struct { - lang uint16 - script uint8 - group uint8 - distance uint8 -} - -// matchLang holds pairs of langIDs of base languages that are typically -// mutually intelligible. Each pair is associated with a confidence and -// whether the intelligibility goes one or both ways. -var matchLang = []mutualIntelligibility{ // 113 elements - 0: {want: 0x1d1, have: 0xb7, distance: 0x4, oneway: false}, - 1: {want: 0x407, have: 0xb7, distance: 0x4, oneway: false}, - 2: {want: 0x407, have: 0x1d1, distance: 0x4, oneway: false}, - 3: {want: 0x407, have: 0x432, distance: 0x4, oneway: false}, - 4: {want: 0x43a, have: 0x1, distance: 0x4, oneway: false}, - 5: {want: 0x1a3, have: 0x10d, distance: 0x4, oneway: true}, - 6: {want: 0x295, have: 0x10d, distance: 0x4, oneway: true}, - 7: {want: 0x101, have: 0x36f, distance: 0x8, oneway: false}, - 8: {want: 0x101, have: 0x347, distance: 0x8, oneway: false}, - 9: {want: 0x5, have: 0x3e2, distance: 0xa, oneway: true}, - 10: {want: 0xd, have: 0x139, distance: 0xa, oneway: true}, - 11: {want: 0x16, have: 0x367, distance: 0xa, oneway: true}, - 12: {want: 0x21, have: 0x139, distance: 0xa, oneway: true}, - 13: {want: 0x56, have: 0x13e, distance: 0xa, oneway: true}, - 14: {want: 0x58, have: 0x3e2, distance: 0xa, oneway: true}, - 15: {want: 0x71, have: 0x3e2, distance: 0xa, oneway: true}, - 16: {want: 0x75, have: 0x139, distance: 0xa, oneway: true}, - 17: {want: 0x82, have: 0x1be, distance: 0xa, oneway: true}, - 18: {want: 0xa5, have: 0x139, distance: 0xa, oneway: true}, - 19: {want: 0xb2, have: 0x15e, distance: 0xa, oneway: true}, - 20: {want: 0xdd, have: 0x153, distance: 0xa, oneway: true}, - 21: {want: 0xe5, have: 0x139, distance: 0xa, oneway: true}, - 22: {want: 0xe9, have: 0x3a, distance: 0xa, oneway: true}, - 23: {want: 0xf0, have: 0x15e, distance: 0xa, oneway: true}, - 24: {want: 0xf9, have: 0x15e, distance: 0xa, oneway: true}, - 25: {want: 0x100, have: 0x139, distance: 0xa, oneway: true}, - 26: {want: 0x130, have: 0x139, distance: 0xa, oneway: true}, - 27: {want: 0x13c, have: 0x139, distance: 0xa, oneway: true}, - 28: {want: 0x140, have: 0x151, distance: 0xa, oneway: true}, - 29: {want: 0x145, have: 0x13e, distance: 0xa, oneway: true}, - 30: {want: 0x158, have: 0x101, distance: 0xa, oneway: true}, - 31: {want: 0x16d, have: 0x367, distance: 0xa, oneway: true}, - 32: {want: 0x16e, have: 0x139, distance: 0xa, oneway: true}, - 33: {want: 0x16f, have: 0x139, distance: 0xa, oneway: true}, - 34: {want: 0x17e, have: 0x139, distance: 0xa, oneway: true}, - 35: {want: 0x190, have: 0x13e, distance: 0xa, oneway: true}, - 36: {want: 0x194, have: 0x13e, distance: 0xa, oneway: true}, - 37: {want: 0x1a4, have: 0x1be, distance: 0xa, oneway: true}, - 38: {want: 0x1b4, have: 0x139, distance: 0xa, oneway: true}, - 39: {want: 0x1b8, have: 0x139, distance: 0xa, oneway: true}, - 40: {want: 0x1d4, have: 0x15e, distance: 0xa, oneway: true}, - 41: {want: 0x1d7, have: 0x3e2, distance: 0xa, oneway: true}, - 42: {want: 0x1d9, have: 0x139, distance: 0xa, oneway: true}, - 43: {want: 0x1e7, have: 0x139, distance: 0xa, oneway: true}, - 44: {want: 0x1f8, have: 0x139, distance: 0xa, oneway: true}, - 45: {want: 0x20e, have: 0x1e1, distance: 0xa, oneway: true}, - 46: {want: 0x210, have: 0x139, distance: 0xa, oneway: true}, - 47: {want: 0x22d, have: 0x15e, distance: 0xa, oneway: true}, - 48: {want: 0x242, have: 0x3e2, distance: 0xa, oneway: true}, - 49: {want: 0x24a, have: 0x139, distance: 0xa, oneway: true}, - 50: {want: 0x251, have: 0x139, distance: 0xa, oneway: true}, - 51: {want: 0x265, have: 0x139, distance: 0xa, oneway: true}, - 52: {want: 0x274, have: 0x48a, distance: 0xa, oneway: true}, - 53: {want: 0x28a, have: 0x3e2, distance: 0xa, oneway: true}, - 54: {want: 0x28e, have: 0x1f9, distance: 0xa, oneway: true}, - 55: {want: 0x2a3, have: 0x139, distance: 0xa, oneway: true}, - 56: {want: 0x2b5, have: 0x15e, distance: 0xa, oneway: true}, - 57: {want: 0x2b8, have: 0x139, distance: 0xa, oneway: true}, - 58: {want: 0x2be, have: 0x139, distance: 0xa, oneway: true}, - 59: {want: 0x2c3, have: 0x15e, distance: 0xa, oneway: true}, - 60: {want: 0x2ed, have: 0x139, distance: 0xa, oneway: true}, - 61: {want: 0x2f1, have: 0x15e, distance: 0xa, oneway: true}, - 62: {want: 0x2fa, have: 0x139, distance: 0xa, oneway: true}, - 63: {want: 0x2ff, have: 0x7e, distance: 0xa, oneway: true}, - 64: {want: 0x304, have: 0x139, distance: 0xa, oneway: true}, - 65: {want: 0x30b, have: 0x3e2, distance: 0xa, oneway: true}, - 66: {want: 0x31b, have: 0x1be, distance: 0xa, oneway: true}, - 67: {want: 0x31f, have: 0x1e1, distance: 0xa, oneway: true}, - 68: {want: 0x320, have: 0x139, distance: 0xa, oneway: true}, - 69: {want: 0x331, have: 0x139, distance: 0xa, oneway: true}, - 70: {want: 0x351, have: 0x139, distance: 0xa, oneway: true}, - 71: {want: 0x36a, have: 0x347, distance: 0xa, oneway: false}, - 72: {want: 0x36a, have: 0x36f, distance: 0xa, oneway: true}, - 73: {want: 0x37a, have: 0x139, distance: 0xa, oneway: true}, - 74: {want: 0x387, have: 0x139, distance: 0xa, oneway: true}, - 75: {want: 0x389, have: 0x139, distance: 0xa, oneway: true}, - 76: {want: 0x38b, have: 0x15e, distance: 0xa, oneway: true}, - 77: {want: 0x390, have: 0x139, distance: 0xa, oneway: true}, - 78: {want: 0x395, have: 0x139, distance: 0xa, oneway: true}, - 79: {want: 0x39d, have: 0x139, distance: 0xa, oneway: true}, - 80: {want: 0x3a5, have: 0x139, distance: 0xa, oneway: true}, - 81: {want: 0x3be, have: 0x139, distance: 0xa, oneway: true}, - 82: {want: 0x3c4, have: 0x13e, distance: 0xa, oneway: true}, - 83: {want: 0x3d4, have: 0x10d, distance: 0xa, oneway: true}, - 84: {want: 0x3d9, have: 0x139, distance: 0xa, oneway: true}, - 85: {want: 0x3e5, have: 0x15e, distance: 0xa, oneway: true}, - 86: {want: 0x3e9, have: 0x1be, distance: 0xa, oneway: true}, - 87: {want: 0x3fa, have: 0x139, distance: 0xa, oneway: true}, - 88: {want: 0x40c, have: 0x139, distance: 0xa, oneway: true}, - 89: {want: 0x423, have: 0x139, distance: 0xa, oneway: true}, - 90: {want: 0x429, have: 0x139, distance: 0xa, oneway: true}, - 91: {want: 0x431, have: 0x139, distance: 0xa, oneway: true}, - 92: {want: 0x43b, have: 0x139, distance: 0xa, oneway: true}, - 93: {want: 0x43e, have: 0x1e1, distance: 0xa, oneway: true}, - 94: {want: 0x445, have: 0x139, distance: 0xa, oneway: true}, - 95: {want: 0x450, have: 0x139, distance: 0xa, oneway: true}, - 96: {want: 0x461, have: 0x139, distance: 0xa, oneway: true}, - 97: {want: 0x467, have: 0x3e2, distance: 0xa, oneway: true}, - 98: {want: 0x46f, have: 0x139, distance: 0xa, oneway: true}, - 99: {want: 0x476, have: 0x3e2, distance: 0xa, oneway: true}, - 100: {want: 0x3883, have: 0x139, distance: 0xa, oneway: true}, - 101: {want: 0x480, have: 0x139, distance: 0xa, oneway: true}, - 102: {want: 0x482, have: 0x139, distance: 0xa, oneway: true}, - 103: {want: 0x494, have: 0x3e2, distance: 0xa, oneway: true}, - 104: {want: 0x49d, have: 0x139, distance: 0xa, oneway: true}, - 105: {want: 0x4ac, have: 0x529, distance: 0xa, oneway: true}, - 106: {want: 0x4b4, have: 0x139, distance: 0xa, oneway: true}, - 107: {want: 0x4bc, have: 0x3e2, distance: 0xa, oneway: true}, - 108: {want: 0x4e5, have: 0x15e, distance: 0xa, oneway: true}, - 109: {want: 0x4f2, have: 0x139, distance: 0xa, oneway: true}, - 110: {want: 0x512, have: 0x139, distance: 0xa, oneway: true}, - 111: {want: 0x518, have: 0x139, distance: 0xa, oneway: true}, - 112: {want: 0x52f, have: 0x139, distance: 0xa, oneway: true}, -} // Size: 702 bytes - -// matchScript holds pairs of scriptIDs where readers of one script -// can typically also read the other. Each is associated with a confidence. -var matchScript = []scriptIntelligibility{ // 26 elements - 0: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x5a, haveScript: 0x20, distance: 0x5}, - 1: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x20, haveScript: 0x5a, distance: 0x5}, - 2: {wantLang: 0x58, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, - 3: {wantLang: 0xa5, haveLang: 0x139, wantScript: 0xe, haveScript: 0x5a, distance: 0xa}, - 4: {wantLang: 0x1d7, haveLang: 0x3e2, wantScript: 0x8, haveScript: 0x20, distance: 0xa}, - 5: {wantLang: 0x210, haveLang: 0x139, wantScript: 0x2e, haveScript: 0x5a, distance: 0xa}, - 6: {wantLang: 0x24a, haveLang: 0x139, wantScript: 0x4e, haveScript: 0x5a, distance: 0xa}, - 7: {wantLang: 0x251, haveLang: 0x139, wantScript: 0x52, haveScript: 0x5a, distance: 0xa}, - 8: {wantLang: 0x2b8, haveLang: 0x139, wantScript: 0x57, haveScript: 0x5a, distance: 0xa}, - 9: {wantLang: 0x304, haveLang: 0x139, wantScript: 0x6e, haveScript: 0x5a, distance: 0xa}, - 10: {wantLang: 0x331, haveLang: 0x139, wantScript: 0x75, haveScript: 0x5a, distance: 0xa}, - 11: {wantLang: 0x351, haveLang: 0x139, wantScript: 0x22, haveScript: 0x5a, distance: 0xa}, - 12: {wantLang: 0x395, haveLang: 0x139, wantScript: 0x81, haveScript: 0x5a, distance: 0xa}, - 13: {wantLang: 0x39d, haveLang: 0x139, wantScript: 0x36, haveScript: 0x5a, distance: 0xa}, - 14: {wantLang: 0x3be, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, - 15: {wantLang: 0x3fa, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, - 16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xd4, haveScript: 0x5a, distance: 0xa}, - 17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xe3, haveScript: 0x5a, distance: 0xa}, - 18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe6, haveScript: 0x5a, distance: 0xa}, - 19: {wantLang: 0x46f, haveLang: 0x139, wantScript: 0x2c, haveScript: 0x5a, distance: 0xa}, - 20: {wantLang: 0x476, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, - 21: {wantLang: 0x4b4, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, - 22: {wantLang: 0x4bc, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, - 23: {wantLang: 0x512, haveLang: 0x139, wantScript: 0x3e, haveScript: 0x5a, distance: 0xa}, - 24: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x3b, haveScript: 0x3c, distance: 0xf}, - 25: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x3c, haveScript: 0x3b, distance: 0x13}, -} // Size: 232 bytes - -var matchRegion = []regionIntelligibility{ // 15 elements - 0: {lang: 0x3a, script: 0x0, group: 0x4, distance: 0x4}, - 1: {lang: 0x3a, script: 0x0, group: 0x84, distance: 0x4}, - 2: {lang: 0x139, script: 0x0, group: 0x1, distance: 0x4}, - 3: {lang: 0x139, script: 0x0, group: 0x81, distance: 0x4}, - 4: {lang: 0x13e, script: 0x0, group: 0x3, distance: 0x4}, - 5: {lang: 0x13e, script: 0x0, group: 0x83, distance: 0x4}, - 6: {lang: 0x3c0, script: 0x0, group: 0x3, distance: 0x4}, - 7: {lang: 0x3c0, script: 0x0, group: 0x83, distance: 0x4}, - 8: {lang: 0x529, script: 0x3c, group: 0x2, distance: 0x4}, - 9: {lang: 0x529, script: 0x3c, group: 0x82, distance: 0x4}, - 10: {lang: 0x3a, script: 0x0, group: 0x80, distance: 0x5}, - 11: {lang: 0x139, script: 0x0, group: 0x80, distance: 0x5}, - 12: {lang: 0x13e, script: 0x0, group: 0x80, distance: 0x5}, - 13: {lang: 0x3c0, script: 0x0, group: 0x80, distance: 0x5}, - 14: {lang: 0x529, script: 0x3c, group: 0x80, distance: 0x5}, -} // Size: 114 bytes - -// Total table size 1472 bytes (1KiB); checksum: F86C669 diff --git a/backend/vendor/golang.org/x/text/language/tags.go b/backend/vendor/golang.org/x/text/language/tags.go deleted file mode 100644 index 42ea7926..00000000 --- a/backend/vendor/golang.org/x/text/language/tags.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import "golang.org/x/text/internal/language/compact" - -// TODO: Various sets of commonly use tags and regions. - -// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. -// It simplifies safe initialization of Tag values. -func MustParse(s string) Tag { - t, err := Parse(s) - if err != nil { - panic(err) - } - return t -} - -// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. -// It simplifies safe initialization of Tag values. -func (c CanonType) MustParse(s string) Tag { - t, err := c.Parse(s) - if err != nil { - panic(err) - } - return t -} - -// MustParseBase is like ParseBase, but panics if the given base cannot be parsed. -// It simplifies safe initialization of Base values. -func MustParseBase(s string) Base { - b, err := ParseBase(s) - if err != nil { - panic(err) - } - return b -} - -// MustParseScript is like ParseScript, but panics if the given script cannot be -// parsed. It simplifies safe initialization of Script values. -func MustParseScript(s string) Script { - scr, err := ParseScript(s) - if err != nil { - panic(err) - } - return scr -} - -// MustParseRegion is like ParseRegion, but panics if the given region cannot be -// parsed. It simplifies safe initialization of Region values. -func MustParseRegion(s string) Region { - r, err := ParseRegion(s) - if err != nil { - panic(err) - } - return r -} - -var ( - und = Tag{} - - Und Tag = Tag{} - - Afrikaans Tag = Tag(compact.Afrikaans) - Amharic Tag = Tag(compact.Amharic) - Arabic Tag = Tag(compact.Arabic) - ModernStandardArabic Tag = Tag(compact.ModernStandardArabic) - Azerbaijani Tag = Tag(compact.Azerbaijani) - Bulgarian Tag = Tag(compact.Bulgarian) - Bengali Tag = Tag(compact.Bengali) - Catalan Tag = Tag(compact.Catalan) - Czech Tag = Tag(compact.Czech) - Danish Tag = Tag(compact.Danish) - German Tag = Tag(compact.German) - Greek Tag = Tag(compact.Greek) - English Tag = Tag(compact.English) - AmericanEnglish Tag = Tag(compact.AmericanEnglish) - BritishEnglish Tag = Tag(compact.BritishEnglish) - Spanish Tag = Tag(compact.Spanish) - EuropeanSpanish Tag = Tag(compact.EuropeanSpanish) - LatinAmericanSpanish Tag = Tag(compact.LatinAmericanSpanish) - Estonian Tag = Tag(compact.Estonian) - Persian Tag = Tag(compact.Persian) - Finnish Tag = Tag(compact.Finnish) - Filipino Tag = Tag(compact.Filipino) - French Tag = Tag(compact.French) - CanadianFrench Tag = Tag(compact.CanadianFrench) - Gujarati Tag = Tag(compact.Gujarati) - Hebrew Tag = Tag(compact.Hebrew) - Hindi Tag = Tag(compact.Hindi) - Croatian Tag = Tag(compact.Croatian) - Hungarian Tag = Tag(compact.Hungarian) - Armenian Tag = Tag(compact.Armenian) - Indonesian Tag = Tag(compact.Indonesian) - Icelandic Tag = Tag(compact.Icelandic) - Italian Tag = Tag(compact.Italian) - Japanese Tag = Tag(compact.Japanese) - Georgian Tag = Tag(compact.Georgian) - Kazakh Tag = Tag(compact.Kazakh) - Khmer Tag = Tag(compact.Khmer) - Kannada Tag = Tag(compact.Kannada) - Korean Tag = Tag(compact.Korean) - Kirghiz Tag = Tag(compact.Kirghiz) - Lao Tag = Tag(compact.Lao) - Lithuanian Tag = Tag(compact.Lithuanian) - Latvian Tag = Tag(compact.Latvian) - Macedonian Tag = Tag(compact.Macedonian) - Malayalam Tag = Tag(compact.Malayalam) - Mongolian Tag = Tag(compact.Mongolian) - Marathi Tag = Tag(compact.Marathi) - Malay Tag = Tag(compact.Malay) - Burmese Tag = Tag(compact.Burmese) - Nepali Tag = Tag(compact.Nepali) - Dutch Tag = Tag(compact.Dutch) - Norwegian Tag = Tag(compact.Norwegian) - Punjabi Tag = Tag(compact.Punjabi) - Polish Tag = Tag(compact.Polish) - Portuguese Tag = Tag(compact.Portuguese) - BrazilianPortuguese Tag = Tag(compact.BrazilianPortuguese) - EuropeanPortuguese Tag = Tag(compact.EuropeanPortuguese) - Romanian Tag = Tag(compact.Romanian) - Russian Tag = Tag(compact.Russian) - Sinhala Tag = Tag(compact.Sinhala) - Slovak Tag = Tag(compact.Slovak) - Slovenian Tag = Tag(compact.Slovenian) - Albanian Tag = Tag(compact.Albanian) - Serbian Tag = Tag(compact.Serbian) - SerbianLatin Tag = Tag(compact.SerbianLatin) - Swedish Tag = Tag(compact.Swedish) - Swahili Tag = Tag(compact.Swahili) - Tamil Tag = Tag(compact.Tamil) - Telugu Tag = Tag(compact.Telugu) - Thai Tag = Tag(compact.Thai) - Turkish Tag = Tag(compact.Turkish) - Ukrainian Tag = Tag(compact.Ukrainian) - Urdu Tag = Tag(compact.Urdu) - Uzbek Tag = Tag(compact.Uzbek) - Vietnamese Tag = Tag(compact.Vietnamese) - Chinese Tag = Tag(compact.Chinese) - SimplifiedChinese Tag = Tag(compact.SimplifiedChinese) - TraditionalChinese Tag = Tag(compact.TraditionalChinese) - Zulu Tag = Tag(compact.Zulu) -) diff --git a/backend/vendor/golang.org/x/text/runes/cond.go b/backend/vendor/golang.org/x/text/runes/cond.go deleted file mode 100644 index df7aa02d..00000000 --- a/backend/vendor/golang.org/x/text/runes/cond.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package runes - -import ( - "unicode/utf8" - - "golang.org/x/text/transform" -) - -// Note: below we pass invalid UTF-8 to the tIn and tNotIn transformers as is. -// This is done for various reasons: -// - To retain the semantics of the Nop transformer: if input is passed to a Nop -// one would expect it to be unchanged. -// - It would be very expensive to pass a converted RuneError to a transformer: -// a transformer might need more source bytes after RuneError, meaning that -// the only way to pass it safely is to create a new buffer and manage the -// intermingling of RuneErrors and normal input. -// - Many transformers leave ill-formed UTF-8 as is, so this is not -// inconsistent. Generally ill-formed UTF-8 is only replaced if it is a -// logical consequence of the operation (as for Map) or if it otherwise would -// pose security concerns (as for Remove). -// - An alternative would be to return an error on ill-formed UTF-8, but this -// would be inconsistent with other operations. - -// If returns a transformer that applies tIn to consecutive runes for which -// s.Contains(r) and tNotIn to consecutive runes for which !s.Contains(r). Reset -// is called on tIn and tNotIn at the start of each run. A Nop transformer will -// substitute a nil value passed to tIn or tNotIn. Invalid UTF-8 is translated -// to RuneError to determine which transformer to apply, but is passed as is to -// the respective transformer. -func If(s Set, tIn, tNotIn transform.Transformer) Transformer { - if tIn == nil && tNotIn == nil { - return Transformer{transform.Nop} - } - if tIn == nil { - tIn = transform.Nop - } - if tNotIn == nil { - tNotIn = transform.Nop - } - sIn, ok := tIn.(transform.SpanningTransformer) - if !ok { - sIn = dummySpan{tIn} - } - sNotIn, ok := tNotIn.(transform.SpanningTransformer) - if !ok { - sNotIn = dummySpan{tNotIn} - } - - a := &cond{ - tIn: sIn, - tNotIn: sNotIn, - f: s.Contains, - } - a.Reset() - return Transformer{a} -} - -type dummySpan struct{ transform.Transformer } - -func (d dummySpan) Span(src []byte, atEOF bool) (n int, err error) { - return 0, transform.ErrEndOfSpan -} - -type cond struct { - tIn, tNotIn transform.SpanningTransformer - f func(rune) bool - check func(rune) bool // current check to perform - t transform.SpanningTransformer // current transformer to use -} - -// Reset implements transform.Transformer. -func (t *cond) Reset() { - t.check = t.is - t.t = t.tIn - t.t.Reset() // notIn will be reset on first usage. -} - -func (t *cond) is(r rune) bool { - if t.f(r) { - return true - } - t.check = t.isNot - t.t = t.tNotIn - t.tNotIn.Reset() - return false -} - -func (t *cond) isNot(r rune) bool { - if !t.f(r) { - return true - } - t.check = t.is - t.t = t.tIn - t.tIn.Reset() - return false -} - -// This implementation of Span doesn't help all too much, but it needs to be -// there to satisfy this package's Transformer interface. -// TODO: there are certainly room for improvements, though. For example, if -// t.t == transform.Nop (which will a common occurrence) it will save a bundle -// to special-case that loop. -func (t *cond) Span(src []byte, atEOF bool) (n int, err error) { - p := 0 - for n < len(src) && err == nil { - // Don't process too much at a time as the Spanner that will be - // called on this block may terminate early. - const maxChunk = 4096 - max := len(src) - if v := n + maxChunk; v < max { - max = v - } - atEnd := false - size := 0 - current := t.t - for ; p < max; p += size { - r := rune(src[p]) - if r < utf8.RuneSelf { - size = 1 - } else if r, size = utf8.DecodeRune(src[p:]); size == 1 { - if !atEOF && !utf8.FullRune(src[p:]) { - err = transform.ErrShortSrc - break - } - } - if !t.check(r) { - // The next rune will be the start of a new run. - atEnd = true - break - } - } - n2, err2 := current.Span(src[n:p], atEnd || (atEOF && p == len(src))) - n += n2 - if err2 != nil { - return n, err2 - } - // At this point either err != nil or t.check will pass for the rune at p. - p = n + size - } - return n, err -} - -func (t *cond) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - p := 0 - for nSrc < len(src) && err == nil { - // Don't process too much at a time, as the work might be wasted if the - // destination buffer isn't large enough to hold the result or a - // transform returns an error early. - const maxChunk = 4096 - max := len(src) - if n := nSrc + maxChunk; n < len(src) { - max = n - } - atEnd := false - size := 0 - current := t.t - for ; p < max; p += size { - r := rune(src[p]) - if r < utf8.RuneSelf { - size = 1 - } else if r, size = utf8.DecodeRune(src[p:]); size == 1 { - if !atEOF && !utf8.FullRune(src[p:]) { - err = transform.ErrShortSrc - break - } - } - if !t.check(r) { - // The next rune will be the start of a new run. - atEnd = true - break - } - } - nDst2, nSrc2, err2 := current.Transform(dst[nDst:], src[nSrc:p], atEnd || (atEOF && p == len(src))) - nDst += nDst2 - nSrc += nSrc2 - if err2 != nil { - return nDst, nSrc, err2 - } - // At this point either err != nil or t.check will pass for the rune at p. - p = nSrc + size - } - return nDst, nSrc, err -} diff --git a/backend/vendor/golang.org/x/text/runes/runes.go b/backend/vendor/golang.org/x/text/runes/runes.go deleted file mode 100644 index 930e87fe..00000000 --- a/backend/vendor/golang.org/x/text/runes/runes.go +++ /dev/null @@ -1,355 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package runes provide transforms for UTF-8 encoded text. -package runes // import "golang.org/x/text/runes" - -import ( - "unicode" - "unicode/utf8" - - "golang.org/x/text/transform" -) - -// A Set is a collection of runes. -type Set interface { - // Contains returns true if r is contained in the set. - Contains(r rune) bool -} - -type setFunc func(rune) bool - -func (s setFunc) Contains(r rune) bool { - return s(r) -} - -// Note: using funcs here instead of wrapping types result in cleaner -// documentation and a smaller API. - -// In creates a Set with a Contains method that returns true for all runes in -// the given RangeTable. -func In(rt *unicode.RangeTable) Set { - return setFunc(func(r rune) bool { return unicode.Is(rt, r) }) -} - -// NotIn creates a Set with a Contains method that returns true for all runes not -// in the given RangeTable. -func NotIn(rt *unicode.RangeTable) Set { - return setFunc(func(r rune) bool { return !unicode.Is(rt, r) }) -} - -// Predicate creates a Set with a Contains method that returns f(r). -func Predicate(f func(rune) bool) Set { - return setFunc(f) -} - -// Transformer implements the transform.Transformer interface. -type Transformer struct { - t transform.SpanningTransformer -} - -func (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return t.t.Transform(dst, src, atEOF) -} - -func (t Transformer) Span(b []byte, atEOF bool) (n int, err error) { - return t.t.Span(b, atEOF) -} - -func (t Transformer) Reset() { t.t.Reset() } - -// Bytes returns a new byte slice with the result of converting b using t. It -// calls Reset on t. It returns nil if any error was found. This can only happen -// if an error-producing Transformer is passed to If. -func (t Transformer) Bytes(b []byte) []byte { - b, _, err := transform.Bytes(t, b) - if err != nil { - return nil - } - return b -} - -// String returns a string with the result of converting s using t. It calls -// Reset on t. It returns the empty string if any error was found. This can only -// happen if an error-producing Transformer is passed to If. -func (t Transformer) String(s string) string { - s, _, err := transform.String(t, s) - if err != nil { - return "" - } - return s -} - -// TODO: -// - Copy: copying strings and bytes in whole-rune units. -// - Validation (maybe) -// - Well-formed-ness (maybe) - -const runeErrorString = string(utf8.RuneError) - -// Remove returns a Transformer that removes runes r for which s.Contains(r). -// Illegal input bytes are replaced by RuneError before being passed to f. -func Remove(s Set) Transformer { - if f, ok := s.(setFunc); ok { - // This little trick cuts the running time of BenchmarkRemove for sets - // created by Predicate roughly in half. - // TODO: special-case RangeTables as well. - return Transformer{remove(f)} - } - return Transformer{remove(s.Contains)} -} - -// TODO: remove transform.RemoveFunc. - -type remove func(r rune) bool - -func (remove) Reset() {} - -// Span implements transform.Spanner. -func (t remove) Span(src []byte, atEOF bool) (n int, err error) { - for r, size := rune(0), 0; n < len(src); { - if r = rune(src[n]); r < utf8.RuneSelf { - size = 1 - } else if r, size = utf8.DecodeRune(src[n:]); size == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src[n:]) { - err = transform.ErrShortSrc - } else { - err = transform.ErrEndOfSpan - } - break - } - if t(r) { - err = transform.ErrEndOfSpan - break - } - n += size - } - return -} - -// Transform implements transform.Transformer. -func (t remove) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for r, size := rune(0), 0; nSrc < len(src); { - if r = rune(src[nSrc]); r < utf8.RuneSelf { - size = 1 - } else if r, size = utf8.DecodeRune(src[nSrc:]); size == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - // We replace illegal bytes with RuneError. Not doing so might - // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. - // The resulting byte sequence may subsequently contain runes - // for which t(r) is true that were passed unnoticed. - if !t(utf8.RuneError) { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = runeErrorString[0] - dst[nDst+1] = runeErrorString[1] - dst[nDst+2] = runeErrorString[2] - nDst += 3 - } - nSrc++ - continue - } - if t(r) { - nSrc += size - continue - } - if nDst+size > len(dst) { - err = transform.ErrShortDst - break - } - for i := 0; i < size; i++ { - dst[nDst] = src[nSrc] - nDst++ - nSrc++ - } - } - return -} - -// Map returns a Transformer that maps the runes in the input using the given -// mapping. Illegal bytes in the input are converted to utf8.RuneError before -// being passed to the mapping func. -func Map(mapping func(rune) rune) Transformer { - return Transformer{mapper(mapping)} -} - -type mapper func(rune) rune - -func (mapper) Reset() {} - -// Span implements transform.Spanner. -func (t mapper) Span(src []byte, atEOF bool) (n int, err error) { - for r, size := rune(0), 0; n < len(src); n += size { - if r = rune(src[n]); r < utf8.RuneSelf { - size = 1 - } else if r, size = utf8.DecodeRune(src[n:]); size == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src[n:]) { - err = transform.ErrShortSrc - } else { - err = transform.ErrEndOfSpan - } - break - } - if t(r) != r { - err = transform.ErrEndOfSpan - break - } - } - return n, err -} - -// Transform implements transform.Transformer. -func (t mapper) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - var replacement rune - var b [utf8.UTFMax]byte - - for r, size := rune(0), 0; nSrc < len(src); { - if r = rune(src[nSrc]); r < utf8.RuneSelf { - if replacement = t(r); replacement < utf8.RuneSelf { - if nDst == len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = byte(replacement) - nDst++ - nSrc++ - continue - } - size = 1 - } else if r, size = utf8.DecodeRune(src[nSrc:]); size == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - - if replacement = t(utf8.RuneError); replacement == utf8.RuneError { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = runeErrorString[0] - dst[nDst+1] = runeErrorString[1] - dst[nDst+2] = runeErrorString[2] - nDst += 3 - nSrc++ - continue - } - } else if replacement = t(r); replacement == r { - if nDst+size > len(dst) { - err = transform.ErrShortDst - break - } - for i := 0; i < size; i++ { - dst[nDst] = src[nSrc] - nDst++ - nSrc++ - } - continue - } - - n := utf8.EncodeRune(b[:], replacement) - - if nDst+n > len(dst) { - err = transform.ErrShortDst - break - } - for i := 0; i < n; i++ { - dst[nDst] = b[i] - nDst++ - } - nSrc += size - } - return -} - -// ReplaceIllFormed returns a transformer that replaces all input bytes that are -// not part of a well-formed UTF-8 code sequence with utf8.RuneError. -func ReplaceIllFormed() Transformer { - return Transformer{&replaceIllFormed{}} -} - -type replaceIllFormed struct{ transform.NopResetter } - -func (t replaceIllFormed) Span(src []byte, atEOF bool) (n int, err error) { - for n < len(src) { - // ASCII fast path. - if src[n] < utf8.RuneSelf { - n++ - continue - } - - r, size := utf8.DecodeRune(src[n:]) - - // Look for a valid non-ASCII rune. - if r != utf8.RuneError || size != 1 { - n += size - continue - } - - // Look for short source data. - if !atEOF && !utf8.FullRune(src[n:]) { - err = transform.ErrShortSrc - break - } - - // We have an invalid rune. - err = transform.ErrEndOfSpan - break - } - return n, err -} - -func (t replaceIllFormed) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for nSrc < len(src) { - // ASCII fast path. - if r := src[nSrc]; r < utf8.RuneSelf { - if nDst == len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = r - nDst++ - nSrc++ - continue - } - - // Look for a valid non-ASCII rune. - if _, size := utf8.DecodeRune(src[nSrc:]); size != 1 { - if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { - err = transform.ErrShortDst - break - } - nDst += size - nSrc += size - continue - } - - // Look for short source data. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - - // We have an invalid rune. - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = runeErrorString[0] - dst[nDst+1] = runeErrorString[1] - dst[nDst+2] = runeErrorString[2] - nDst += 3 - nSrc++ - } - return nDst, nSrc, err -} diff --git a/backend/vendor/golang.org/x/text/transform/transform.go b/backend/vendor/golang.org/x/text/transform/transform.go deleted file mode 100644 index 48ec64b4..00000000 --- a/backend/vendor/golang.org/x/text/transform/transform.go +++ /dev/null @@ -1,709 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package transform provides reader and writer wrappers that transform the -// bytes passing through as well as various transformations. Example -// transformations provided by other packages include normalization and -// conversion between character sets. -package transform // import "golang.org/x/text/transform" - -import ( - "bytes" - "errors" - "io" - "unicode/utf8" -) - -var ( - // ErrShortDst means that the destination buffer was too short to - // receive all of the transformed bytes. - ErrShortDst = errors.New("transform: short destination buffer") - - // ErrShortSrc means that the source buffer has insufficient data to - // complete the transformation. - ErrShortSrc = errors.New("transform: short source buffer") - - // ErrEndOfSpan means that the input and output (the transformed input) - // are not identical. - ErrEndOfSpan = errors.New("transform: input and output are not identical") - - // errInconsistentByteCount means that Transform returned success (nil - // error) but also returned nSrc inconsistent with the src argument. - errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") - - // errShortInternal means that an internal buffer is not large enough - // to make progress and the Transform operation must be aborted. - errShortInternal = errors.New("transform: short internal buffer") -) - -// Transformer transforms bytes. -type Transformer interface { - // Transform writes to dst the transformed bytes read from src, and - // returns the number of dst bytes written and src bytes read. The - // atEOF argument tells whether src represents the last bytes of the - // input. - // - // Callers should always process the nDst bytes produced and account - // for the nSrc bytes consumed before considering the error err. - // - // A nil error means that all of the transformed bytes (whether freshly - // transformed from src or left over from previous Transform calls) - // were written to dst. A nil error can be returned regardless of - // whether atEOF is true. If err is nil then nSrc must equal len(src); - // the converse is not necessarily true. - // - // ErrShortDst means that dst was too short to receive all of the - // transformed bytes. ErrShortSrc means that src had insufficient data - // to complete the transformation. If both conditions apply, then - // either error may be returned. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) - - // Reset resets the state and allows a Transformer to be reused. - Reset() -} - -// SpanningTransformer extends the Transformer interface with a Span method -// that determines how much of the input already conforms to the Transformer. -type SpanningTransformer interface { - Transformer - - // Span returns a position in src such that transforming src[:n] results in - // identical output src[:n] for these bytes. It does not necessarily return - // the largest such n. The atEOF argument tells whether src represents the - // last bytes of the input. - // - // Callers should always account for the n bytes consumed before - // considering the error err. - // - // A nil error means that all input bytes are known to be identical to the - // output produced by the Transformer. A nil error can be returned - // regardless of whether atEOF is true. If err is nil, then n must - // equal len(src); the converse is not necessarily true. - // - // ErrEndOfSpan means that the Transformer output may differ from the - // input after n bytes. Note that n may be len(src), meaning that the output - // would contain additional bytes after otherwise identical output. - // ErrShortSrc means that src had insufficient data to determine whether the - // remaining bytes would change. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - // - // Calling Span can modify the Transformer state as a side effect. In - // effect, it does the transformation just as calling Transform would, only - // without copying to a destination buffer and only up to a point it can - // determine the input and output bytes are the same. This is obviously more - // limited than calling Transform, but can be more efficient in terms of - // copying and allocating buffers. Calls to Span and Transform may be - // interleaved. - Span(src []byte, atEOF bool) (n int, err error) -} - -// NopResetter can be embedded by implementations of Transformer to add a nop -// Reset method. -type NopResetter struct{} - -// Reset implements the Reset method of the Transformer interface. -func (NopResetter) Reset() {} - -// Reader wraps another io.Reader by transforming the bytes read. -type Reader struct { - r io.Reader - t Transformer - err error - - // dst[dst0:dst1] contains bytes that have been transformed by t but - // not yet copied out via Read. - dst []byte - dst0, dst1 int - - // src[src0:src1] contains bytes that have been read from r but not - // yet transformed through t. - src []byte - src0, src1 int - - // transformComplete is whether the transformation is complete, - // regardless of whether or not it was successful. - transformComplete bool -} - -const defaultBufSize = 4096 - -// NewReader returns a new Reader that wraps r by transforming the bytes read -// via t. It calls Reset on t. -func NewReader(r io.Reader, t Transformer) *Reader { - t.Reset() - return &Reader{ - r: r, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Read implements the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - n, err := 0, error(nil) - for { - // Copy out any transformed bytes and return the final error if we are done. - if r.dst0 != r.dst1 { - n = copy(p, r.dst[r.dst0:r.dst1]) - r.dst0 += n - if r.dst0 == r.dst1 && r.transformComplete { - return n, r.err - } - return n, nil - } else if r.transformComplete { - return 0, r.err - } - - // Try to transform some source bytes, or to flush the transformer if we - // are out of source bytes. We do this even if r.r.Read returned an error. - // As the io.Reader documentation says, "process the n > 0 bytes returned - // before considering the error". - if r.src0 != r.src1 || r.err != nil { - r.dst0 = 0 - r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) - r.src0 += n - - switch { - case err == nil: - if r.src0 != r.src1 { - r.err = errInconsistentByteCount - } - // The Transform call was successful; we are complete if we - // cannot read more bytes into src. - r.transformComplete = r.err != nil - continue - case err == ErrShortDst && (r.dst1 != 0 || n != 0): - // Make room in dst by copying out, and try again. - continue - case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: - // Read more bytes into src via the code below, and try again. - default: - r.transformComplete = true - // The reader error (r.err) takes precedence over the - // transformer error (err) unless r.err is nil or io.EOF. - if r.err == nil || r.err == io.EOF { - r.err = err - } - continue - } - } - - // Move any untransformed source bytes to the start of the buffer - // and read more bytes. - if r.src0 != 0 { - r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) - } - n, r.err = r.r.Read(r.src[r.src1:]) - r.src1 += n - } -} - -// TODO: implement ReadByte (and ReadRune??). - -// Writer wraps another io.Writer by transforming the bytes read. -// The user needs to call Close to flush unwritten bytes that may -// be buffered. -type Writer struct { - w io.Writer - t Transformer - dst []byte - - // src[:n] contains bytes that have not yet passed through t. - src []byte - n int -} - -// NewWriter returns a new Writer that wraps w by transforming the bytes written -// via t. It calls Reset on t. -func NewWriter(w io.Writer, t Transformer) *Writer { - t.Reset() - return &Writer{ - w: w, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Write implements the io.Writer interface. If there are not enough -// bytes available to complete a Transform, the bytes will be buffered -// for the next write. Call Close to convert the remaining bytes. -func (w *Writer) Write(data []byte) (n int, err error) { - src := data - if w.n > 0 { - // Append bytes from data to the last remainder. - // TODO: limit the amount copied on first try. - n = copy(w.src[w.n:], data) - w.n += n - src = w.src[:w.n] - } - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, false) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return n, werr - } - src = src[nSrc:] - if w.n == 0 { - n += nSrc - } else if len(src) <= n { - // Enough bytes from w.src have been consumed. We make src point - // to data instead to reduce the copying. - w.n = 0 - n -= len(src) - src = data[n:] - if n < len(data) && (err == nil || err == ErrShortSrc) { - continue - } - } - switch err { - case ErrShortDst: - // This error is okay as long as we are making progress. - if nDst > 0 || nSrc > 0 { - continue - } - case ErrShortSrc: - if len(src) < len(w.src) { - m := copy(w.src, src) - // If w.n > 0, bytes from data were already copied to w.src and n - // was already set to the number of bytes consumed. - if w.n == 0 { - n += m - } - w.n = m - err = nil - } else if nDst > 0 || nSrc > 0 { - // Not enough buffer to store the remainder. Keep processing as - // long as there is progress. Without this case, transforms that - // require a lookahead larger than the buffer may result in an - // error. This is not something one may expect to be common in - // practice, but it may occur when buffers are set to small - // sizes during testing. - continue - } - case nil: - if w.n > 0 { - err = errInconsistentByteCount - } - } - return n, err - } -} - -// Close implements the io.Closer interface. -func (w *Writer) Close() error { - src := w.src[:w.n] - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, true) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return werr - } - if err != ErrShortDst { - return err - } - src = src[nSrc:] - } -} - -type nop struct{ NopResetter } - -func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := copy(dst, src) - if n < len(src) { - err = ErrShortDst - } - return n, n, err -} - -func (nop) Span(src []byte, atEOF bool) (n int, err error) { - return len(src), nil -} - -type discard struct{ NopResetter } - -func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return 0, len(src), nil -} - -var ( - // Discard is a Transformer for which all Transform calls succeed - // by consuming all bytes and writing nothing. - Discard Transformer = discard{} - - // Nop is a SpanningTransformer that copies src to dst. - Nop SpanningTransformer = nop{} -) - -// chain is a sequence of links. A chain with N Transformers has N+1 links and -// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst -// buffers given to chain.Transform and the middle N-1 buffers are intermediate -// buffers owned by the chain. The i'th link transforms bytes from the i'th -// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer -// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). -type chain struct { - link []link - err error - // errStart is the index at which the error occurred plus 1. Processing - // errStart at this level at the next call to Transform. As long as - // errStart > 0, chain will not consume any more source bytes. - errStart int -} - -func (c *chain) fatalError(errIndex int, err error) { - if i := errIndex + 1; i > c.errStart { - c.errStart = i - c.err = err - } -} - -type link struct { - t Transformer - // b[p:n] holds the bytes to be transformed by t. - b []byte - p int - n int -} - -func (l *link) src() []byte { - return l.b[l.p:l.n] -} - -func (l *link) dst() []byte { - return l.b[l.n:] -} - -// Chain returns a Transformer that applies t in sequence. -func Chain(t ...Transformer) Transformer { - if len(t) == 0 { - return nop{} - } - c := &chain{link: make([]link, len(t)+1)} - for i, tt := range t { - c.link[i].t = tt - } - // Allocate intermediate buffers. - b := make([][defaultBufSize]byte, len(t)-1) - for i := range b { - c.link[i+1].b = b[i][:] - } - return c -} - -// Reset resets the state of Chain. It calls Reset on all the Transformers. -func (c *chain) Reset() { - for i, l := range c.link { - if l.t != nil { - l.t.Reset() - } - c.link[i].p, c.link[i].n = 0, 0 - } -} - -// TODO: make chain use Span (is going to be fun to implement!) - -// Transform applies the transformers of c in sequence. -func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // Set up src and dst in the chain. - srcL := &c.link[0] - dstL := &c.link[len(c.link)-1] - srcL.b, srcL.p, srcL.n = src, 0, len(src) - dstL.b, dstL.n = dst, 0 - var lastFull, needProgress bool // for detecting progress - - // i is the index of the next Transformer to apply, for i in [low, high]. - // low is the lowest index for which c.link[low] may still produce bytes. - // high is the highest index for which c.link[high] has a Transformer. - // The error returned by Transform determines whether to increase or - // decrease i. We try to completely fill a buffer before converting it. - for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { - in, out := &c.link[i], &c.link[i+1] - nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) - out.n += nDst - in.p += nSrc - if i > 0 && in.p == in.n { - in.p, in.n = 0, 0 - } - needProgress, lastFull = lastFull, false - switch err0 { - case ErrShortDst: - // Process the destination buffer next. Return if we are already - // at the high index. - if i == high { - return dstL.n, srcL.p, ErrShortDst - } - if out.n != 0 { - i++ - // If the Transformer at the next index is not able to process any - // source bytes there is nothing that can be done to make progress - // and the bytes will remain unprocessed. lastFull is used to - // detect this and break out of the loop with a fatal error. - lastFull = true - continue - } - // The destination buffer was too small, but is completely empty. - // Return a fatal error as this transformation can never complete. - c.fatalError(i, errShortInternal) - case ErrShortSrc: - if i == 0 { - // Save ErrShortSrc in err. All other errors take precedence. - err = ErrShortSrc - break - } - // Source bytes were depleted before filling up the destination buffer. - // Verify we made some progress, move the remaining bytes to the errStart - // and try to get more source bytes. - if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { - // There were not enough source bytes to proceed while the source - // buffer cannot hold any more bytes. Return a fatal error as this - // transformation can never complete. - c.fatalError(i, errShortInternal) - break - } - // in.b is an internal buffer and we can make progress. - in.p, in.n = 0, copy(in.b, in.src()) - fallthrough - case nil: - // if i == low, we have depleted the bytes at index i or any lower levels. - // In that case we increase low and i. In all other cases we decrease i to - // fetch more bytes before proceeding to the next index. - if i > low { - i-- - continue - } - default: - c.fatalError(i, err0) - } - // Exhausted level low or fatal error: increase low and continue - // to process the bytes accepted so far. - i++ - low = i - } - - // If c.errStart > 0, this means we found a fatal error. We will clear - // all upstream buffers. At this point, no more progress can be made - // downstream, as Transform would have bailed while handling ErrShortDst. - if c.errStart > 0 { - for i := 1; i < c.errStart; i++ { - c.link[i].p, c.link[i].n = 0, 0 - } - err, c.errStart, c.err = c.err, 0, nil - } - return dstL.n, srcL.p, err -} - -// Deprecated: Use runes.Remove instead. -func RemoveFunc(f func(r rune) bool) Transformer { - return removeF(f) -} - -type removeF func(r rune) bool - -func (removeF) Reset() {} - -// Transform implements the Transformer interface. -func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { - - if r = rune(src[0]); r < utf8.RuneSelf { - sz = 1 - } else { - r, sz = utf8.DecodeRune(src) - - if sz == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src) { - err = ErrShortSrc - break - } - // We replace illegal bytes with RuneError. Not doing so might - // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. - // The resulting byte sequence may subsequently contain runes - // for which t(r) is true that were passed unnoticed. - if !t(r) { - if nDst+3 > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], "\uFFFD") - } - nSrc++ - continue - } - } - - if !t(r) { - if nDst+sz > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], src[:sz]) - } - nSrc += sz - } - return -} - -// grow returns a new []byte that is longer than b, and copies the first n bytes -// of b to the start of the new slice. -func grow(b []byte, n int) []byte { - m := len(b) - if m <= 32 { - m = 64 - } else if m <= 256 { - m *= 2 - } else { - m += m >> 1 - } - buf := make([]byte, m) - copy(buf, b[:n]) - return buf -} - -const initialBufSize = 128 - -// String returns a string with the result of converting s[:n] using t, where -// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. -func String(t Transformer, s string) (result string, n int, err error) { - t.Reset() - if s == "" { - // Fast path for the common case for empty input. Results in about a - // 86% reduction of running time for BenchmarkStringLowerEmpty. - if _, _, err := t.Transform(nil, nil, true); err == nil { - return "", 0, nil - } - } - - // Allocate only once. Note that both dst and src escape when passed to - // Transform. - buf := [2 * initialBufSize]byte{} - dst := buf[:initialBufSize:initialBufSize] - src := buf[initialBufSize : 2*initialBufSize] - - // The input string s is transformed in multiple chunks (starting with a - // chunk size of initialBufSize). nDst and nSrc are per-chunk (or - // per-Transform-call) indexes, pDst and pSrc are overall indexes. - nDst, nSrc := 0, 0 - pDst, pSrc := 0, 0 - - // pPrefix is the length of a common prefix: the first pPrefix bytes of the - // result will equal the first pPrefix bytes of s. It is not guaranteed to - // be the largest such value, but if pPrefix, len(result) and len(s) are - // all equal after the final transform (i.e. calling Transform with atEOF - // being true returned nil error) then we don't need to allocate a new - // result string. - pPrefix := 0 - for { - // Invariant: pDst == pPrefix && pSrc == pPrefix. - - n := copy(src, s[pSrc:]) - nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - // TODO: let transformers implement an optional Spanner interface, akin - // to norm's QuickSpan. This would even allow us to avoid any allocation. - if !bytes.Equal(dst[:nDst], src[:nSrc]) { - break - } - pPrefix = pSrc - if err == ErrShortDst { - // A buffer can only be short if a transformer modifies its input. - break - } else if err == ErrShortSrc { - if nSrc == 0 { - // No progress was made. - break - } - // Equal so far and !atEOF, so continue checking. - } else if err != nil || pPrefix == len(s) { - return string(s[:pPrefix]), pPrefix, err - } - } - // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. - - // We have transformed the first pSrc bytes of the input s to become pDst - // transformed bytes. Those transformed bytes are discontiguous: the first - // pPrefix of them equal s[:pPrefix] and the last nDst of them equal - // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so - // that they become one contiguous slice: dst[:pDst]. - if pPrefix != 0 { - newDst := dst - if pDst > len(newDst) { - newDst = make([]byte, len(s)+nDst-nSrc) - } - copy(newDst[pPrefix:pDst], dst[:nDst]) - copy(newDst[:pPrefix], s[:pPrefix]) - dst = newDst - } - - // Prevent duplicate Transform calls with atEOF being true at the end of - // the input. Also return if we have an unrecoverable error. - if (err == nil && pSrc == len(s)) || - (err != nil && err != ErrShortDst && err != ErrShortSrc) { - return string(dst[:pDst]), pSrc, err - } - - // Transform the remaining input, growing dst and src buffers as necessary. - for { - n := copy(src, s[pSrc:]) - atEOF := pSrc+n == len(s) - nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF) - pDst += nDst - pSrc += nSrc - - // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can - // make progress. This may avoid excessive allocations. - if err == ErrShortDst { - if nDst == 0 { - dst = grow(dst, pDst) - } - } else if err == ErrShortSrc { - if atEOF { - return string(dst[:pDst]), pSrc, err - } - if nSrc == 0 { - src = grow(src, 0) - } - } else if err != nil || pSrc == len(s) { - return string(dst[:pDst]), pSrc, err - } - } -} - -// Bytes returns a new byte slice with the result of converting b[:n] using t, -// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. -func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { - return doAppend(t, 0, make([]byte, len(b)), b) -} - -// Append appends the result of converting src[:n] using t to dst, where -// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. -func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { - if len(dst) == cap(dst) { - n := len(src) + len(dst) // It is okay for this to be 0. - b := make([]byte, n) - dst = b[:copy(b, dst)] - } - return doAppend(t, len(dst), dst[:cap(dst)], src) -} - -func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { - t.Reset() - pSrc := 0 - for { - nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) - pDst += nDst - pSrc += nSrc - if err != ErrShortDst { - return dst[:pDst], pSrc, err - } - - // Grow the destination buffer, but do not grow as long as we can make - // progress. This may avoid excessive allocations. - if nDst == 0 { - dst = grow(dst, pDst) - } - } -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/composition.go b/backend/vendor/golang.org/x/text/unicode/norm/composition.go deleted file mode 100644 index e2087bce..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/composition.go +++ /dev/null @@ -1,512 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "unicode/utf8" - -const ( - maxNonStarters = 30 - // The maximum number of characters needed for a buffer is - // maxNonStarters + 1 for the starter + 1 for the GCJ - maxBufferSize = maxNonStarters + 2 - maxNFCExpansion = 3 // NFC(0x1D160) - maxNFKCExpansion = 18 // NFKC(0xFDFA) - - maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128 -) - -// ssState is used for reporting the segment state after inserting a rune. -// It is returned by streamSafe.next. -type ssState int - -const ( - // Indicates a rune was successfully added to the segment. - ssSuccess ssState = iota - // Indicates a rune starts a new segment and should not be added. - ssStarter - // Indicates a rune caused a segment overflow and a CGJ should be inserted. - ssOverflow -) - -// streamSafe implements the policy of when a CGJ should be inserted. -type streamSafe uint8 - -// first inserts the first rune of a segment. It is a faster version of next if -// it is known p represents the first rune in a segment. -func (ss *streamSafe) first(p Properties) { - *ss = streamSafe(p.nTrailingNonStarters()) -} - -// insert returns a ssState value to indicate whether a rune represented by p -// can be inserted. -func (ss *streamSafe) next(p Properties) ssState { - if *ss > maxNonStarters { - panic("streamSafe was not reset") - } - n := p.nLeadingNonStarters() - if *ss += streamSafe(n); *ss > maxNonStarters { - *ss = 0 - return ssOverflow - } - // The Stream-Safe Text Processing prescribes that the counting can stop - // as soon as a starter is encountered. However, there are some starters, - // like Jamo V and T, that can combine with other runes, leaving their - // successive non-starters appended to the previous, possibly causing an - // overflow. We will therefore consider any rune with a non-zero nLead to - // be a non-starter. Note that it always hold that if nLead > 0 then - // nLead == nTrail. - if n == 0 { - *ss = streamSafe(p.nTrailingNonStarters()) - return ssStarter - } - return ssSuccess -} - -// backwards is used for checking for overflow and segment starts -// when traversing a string backwards. Users do not need to call first -// for the first rune. The state of the streamSafe retains the count of -// the non-starters loaded. -func (ss *streamSafe) backwards(p Properties) ssState { - if *ss > maxNonStarters { - panic("streamSafe was not reset") - } - c := *ss + streamSafe(p.nTrailingNonStarters()) - if c > maxNonStarters { - return ssOverflow - } - *ss = c - if p.nLeadingNonStarters() == 0 { - return ssStarter - } - return ssSuccess -} - -func (ss streamSafe) isMax() bool { - return ss == maxNonStarters -} - -// GraphemeJoiner is inserted after maxNonStarters non-starter runes. -const GraphemeJoiner = "\u034F" - -// reorderBuffer is used to normalize a single segment. Characters inserted with -// insert are decomposed and reordered based on CCC. The compose method can -// be used to recombine characters. Note that the byte buffer does not hold -// the UTF-8 characters in order. Only the rune array is maintained in sorted -// order. flush writes the resulting segment to a byte array. -type reorderBuffer struct { - rune [maxBufferSize]Properties // Per character info. - byte [maxByteBufferSize]byte // UTF-8 buffer. Referenced by runeInfo.pos. - nbyte uint8 // Number or bytes. - ss streamSafe // For limiting length of non-starter sequence. - nrune int // Number of runeInfos. - f formInfo - - src input - nsrc int - tmpBytes input - - out []byte - flushF func(*reorderBuffer) bool -} - -func (rb *reorderBuffer) init(f Form, src []byte) { - rb.f = *formTable[f] - rb.src.setBytes(src) - rb.nsrc = len(src) - rb.ss = 0 -} - -func (rb *reorderBuffer) initString(f Form, src string) { - rb.f = *formTable[f] - rb.src.setString(src) - rb.nsrc = len(src) - rb.ss = 0 -} - -func (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) { - rb.out = out - rb.flushF = f -} - -// reset discards all characters from the buffer. -func (rb *reorderBuffer) reset() { - rb.nrune = 0 - rb.nbyte = 0 -} - -func (rb *reorderBuffer) doFlush() bool { - if rb.f.composing { - rb.compose() - } - res := rb.flushF(rb) - rb.reset() - return res -} - -// appendFlush appends the normalized segment to rb.out. -func appendFlush(rb *reorderBuffer) bool { - for i := 0; i < rb.nrune; i++ { - start := rb.rune[i].pos - end := start + rb.rune[i].size - rb.out = append(rb.out, rb.byte[start:end]...) - } - return true -} - -// flush appends the normalized segment to out and resets rb. -func (rb *reorderBuffer) flush(out []byte) []byte { - for i := 0; i < rb.nrune; i++ { - start := rb.rune[i].pos - end := start + rb.rune[i].size - out = append(out, rb.byte[start:end]...) - } - rb.reset() - return out -} - -// flushCopy copies the normalized segment to buf and resets rb. -// It returns the number of bytes written to buf. -func (rb *reorderBuffer) flushCopy(buf []byte) int { - p := 0 - for i := 0; i < rb.nrune; i++ { - runep := rb.rune[i] - p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size]) - } - rb.reset() - return p -} - -// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class. -// It returns false if the buffer is not large enough to hold the rune. -// It is used internally by insert and insertString only. -func (rb *reorderBuffer) insertOrdered(info Properties) { - n := rb.nrune - b := rb.rune[:] - cc := info.ccc - if cc > 0 { - // Find insertion position + move elements to make room. - for ; n > 0; n-- { - if b[n-1].ccc <= cc { - break - } - b[n] = b[n-1] - } - } - rb.nrune += 1 - pos := uint8(rb.nbyte) - rb.nbyte += utf8.UTFMax - info.pos = pos - b[n] = info -} - -// insertErr is an error code returned by insert. Using this type instead -// of error improves performance up to 20% for many of the benchmarks. -type insertErr int - -const ( - iSuccess insertErr = -iota - iShortDst - iShortSrc -) - -// insertFlush inserts the given rune in the buffer ordered by CCC. -// If a decomposition with multiple segments are encountered, they leading -// ones are flushed. -// It returns a non-zero error code if the rune was not inserted. -func (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr { - if rune := src.hangul(i); rune != 0 { - rb.decomposeHangul(rune) - return iSuccess - } - if info.hasDecomposition() { - return rb.insertDecomposed(info.Decomposition()) - } - rb.insertSingle(src, i, info) - return iSuccess -} - -// insertUnsafe inserts the given rune in the buffer ordered by CCC. -// It is assumed there is sufficient space to hold the runes. It is the -// responsibility of the caller to ensure this. This can be done by checking -// the state returned by the streamSafe type. -func (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) { - if rune := src.hangul(i); rune != 0 { - rb.decomposeHangul(rune) - } - if info.hasDecomposition() { - // TODO: inline. - rb.insertDecomposed(info.Decomposition()) - } else { - rb.insertSingle(src, i, info) - } -} - -// insertDecomposed inserts an entry in to the reorderBuffer for each rune -// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes. -// It flushes the buffer on each new segment start. -func (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr { - rb.tmpBytes.setBytes(dcomp) - // As the streamSafe accounting already handles the counting for modifiers, - // we don't have to call next. However, we do need to keep the accounting - // intact when flushing the buffer. - for i := 0; i < len(dcomp); { - info := rb.f.info(rb.tmpBytes, i) - if info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() { - return iShortDst - } - i += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)]) - rb.insertOrdered(info) - } - return iSuccess -} - -// insertSingle inserts an entry in the reorderBuffer for the rune at -// position i. info is the runeInfo for the rune at position i. -func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) { - src.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size)) - rb.insertOrdered(info) -} - -// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb. -func (rb *reorderBuffer) insertCGJ() { - rb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))}) -} - -// appendRune inserts a rune at the end of the buffer. It is used for Hangul. -func (rb *reorderBuffer) appendRune(r rune) { - bn := rb.nbyte - sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) - rb.nbyte += utf8.UTFMax - rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)} - rb.nrune++ -} - -// assignRune sets a rune at position pos. It is used for Hangul and recomposition. -func (rb *reorderBuffer) assignRune(pos int, r rune) { - bn := rb.rune[pos].pos - sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) - rb.rune[pos] = Properties{pos: bn, size: uint8(sz)} -} - -// runeAt returns the rune at position n. It is used for Hangul and recomposition. -func (rb *reorderBuffer) runeAt(n int) rune { - inf := rb.rune[n] - r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size]) - return r -} - -// bytesAt returns the UTF-8 encoding of the rune at position n. -// It is used for Hangul and recomposition. -func (rb *reorderBuffer) bytesAt(n int) []byte { - inf := rb.rune[n] - return rb.byte[inf.pos : int(inf.pos)+int(inf.size)] -} - -// For Hangul we combine algorithmically, instead of using tables. -const ( - hangulBase = 0xAC00 // UTF-8(hangulBase) -> EA B0 80 - hangulBase0 = 0xEA - hangulBase1 = 0xB0 - hangulBase2 = 0x80 - - hangulEnd = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4 - hangulEnd0 = 0xED - hangulEnd1 = 0x9E - hangulEnd2 = 0xA4 - - jamoLBase = 0x1100 // UTF-8(jamoLBase) -> E1 84 00 - jamoLBase0 = 0xE1 - jamoLBase1 = 0x84 - jamoLEnd = 0x1113 - jamoVBase = 0x1161 - jamoVEnd = 0x1176 - jamoTBase = 0x11A7 - jamoTEnd = 0x11C3 - - jamoTCount = 28 - jamoVCount = 21 - jamoVTCount = 21 * 28 - jamoLVTCount = 19 * 21 * 28 -) - -const hangulUTF8Size = 3 - -func isHangul(b []byte) bool { - if len(b) < hangulUTF8Size { - return false - } - b0 := b[0] - if b0 < hangulBase0 { - return false - } - b1 := b[1] - switch { - case b0 == hangulBase0: - return b1 >= hangulBase1 - case b0 < hangulEnd0: - return true - case b0 > hangulEnd0: - return false - case b1 < hangulEnd1: - return true - } - return b1 == hangulEnd1 && b[2] < hangulEnd2 -} - -func isHangulString(b string) bool { - if len(b) < hangulUTF8Size { - return false - } - b0 := b[0] - if b0 < hangulBase0 { - return false - } - b1 := b[1] - switch { - case b0 == hangulBase0: - return b1 >= hangulBase1 - case b0 < hangulEnd0: - return true - case b0 > hangulEnd0: - return false - case b1 < hangulEnd1: - return true - } - return b1 == hangulEnd1 && b[2] < hangulEnd2 -} - -// Caller must ensure len(b) >= 2. -func isJamoVT(b []byte) bool { - // True if (rune & 0xff00) == jamoLBase - return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1 -} - -func isHangulWithoutJamoT(b []byte) bool { - c, _ := utf8.DecodeRune(b) - c -= hangulBase - return c < jamoLVTCount && c%jamoTCount == 0 -} - -// decomposeHangul writes the decomposed Hangul to buf and returns the number -// of bytes written. len(buf) should be at least 9. -func decomposeHangul(buf []byte, r rune) int { - const JamoUTF8Len = 3 - r -= hangulBase - x := r % jamoTCount - r /= jamoTCount - utf8.EncodeRune(buf, jamoLBase+r/jamoVCount) - utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount) - if x != 0 { - utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x) - return 3 * JamoUTF8Len - } - return 2 * JamoUTF8Len -} - -// decomposeHangul algorithmically decomposes a Hangul rune into -// its Jamo components. -// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. -func (rb *reorderBuffer) decomposeHangul(r rune) { - r -= hangulBase - x := r % jamoTCount - r /= jamoTCount - rb.appendRune(jamoLBase + r/jamoVCount) - rb.appendRune(jamoVBase + r%jamoVCount) - if x != 0 { - rb.appendRune(jamoTBase + x) - } -} - -// combineHangul algorithmically combines Jamo character components into Hangul. -// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul. -func (rb *reorderBuffer) combineHangul(s, i, k int) { - b := rb.rune[:] - bn := rb.nrune - for ; i < bn; i++ { - cccB := b[k-1].ccc - cccC := b[i].ccc - if cccB == 0 { - s = k - 1 - } - if s != k-1 && cccB >= cccC { - // b[i] is blocked by greater-equal cccX below it - b[k] = b[i] - k++ - } else { - l := rb.runeAt(s) // also used to compare to hangulBase - v := rb.runeAt(i) // also used to compare to jamoT - switch { - case jamoLBase <= l && l < jamoLEnd && - jamoVBase <= v && v < jamoVEnd: - // 11xx plus 116x to LV - rb.assignRune(s, hangulBase+ - (l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount) - case hangulBase <= l && l < hangulEnd && - jamoTBase < v && v < jamoTEnd && - ((l-hangulBase)%jamoTCount) == 0: - // ACxx plus 11Ax to LVT - rb.assignRune(s, l+v-jamoTBase) - default: - b[k] = b[i] - k++ - } - } - } - rb.nrune = k -} - -// compose recombines the runes in the buffer. -// It should only be used to recompose a single segment, as it will not -// handle alternations between Hangul and non-Hangul characters correctly. -func (rb *reorderBuffer) compose() { - // Lazily load the map used by the combine func below, but do - // it outside of the loop. - recompMapOnce.Do(buildRecompMap) - - // UAX #15, section X5 , including Corrigendum #5 - // "In any character sequence beginning with starter S, a character C is - // blocked from S if and only if there is some character B between S - // and C, and either B is a starter or it has the same or higher - // combining class as C." - bn := rb.nrune - if bn == 0 { - return - } - k := 1 - b := rb.rune[:] - for s, i := 0, 1; i < bn; i++ { - if isJamoVT(rb.bytesAt(i)) { - // Redo from start in Hangul mode. Necessary to support - // U+320E..U+321E in NFKC mode. - rb.combineHangul(s, i, k) - return - } - ii := b[i] - // We can only use combineForward as a filter if we later - // get the info for the combined character. This is more - // expensive than using the filter. Using combinesBackward() - // is safe. - if ii.combinesBackward() { - cccB := b[k-1].ccc - cccC := ii.ccc - blocked := false // b[i] blocked by starter or greater or equal CCC? - if cccB == 0 { - s = k - 1 - } else { - blocked = s != k-1 && cccB >= cccC - } - if !blocked { - combined := combine(rb.runeAt(s), rb.runeAt(i)) - if combined != 0 { - rb.assignRune(s, combined) - continue - } - } - } - b[k] = b[i] - k++ - } - rb.nrune = k -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/forminfo.go b/backend/vendor/golang.org/x/text/unicode/norm/forminfo.go deleted file mode 100644 index 487335d1..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ /dev/null @@ -1,279 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "encoding/binary" - -// This file contains Form-specific logic and wrappers for data in tables.go. - -// Rune info is stored in a separate trie per composing form. A composing form -// and its corresponding decomposing form share the same trie. Each trie maps -// a rune to a uint16. The values take two forms. For v >= 0x8000: -// bits -// 15: 1 (inverse of NFD_QC bit of qcInfo) -// 13..7: qcInfo (see below). isYesD is always true (no decomposition). -// 6..0: ccc (compressed CCC value). -// For v < 0x8000, the respective rune has a decomposition and v is an index -// into a byte array of UTF-8 decomposition sequences and additional info and -// has the form: -//

* [ []] -// The header contains the number of bytes in the decomposition (excluding this -// length byte). The two most significant bits of this length byte correspond -// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1. -// The byte sequence is followed by a trailing and leading CCC if the values -// for these are not zero. The value of v determines which ccc are appended -// to the sequences. For v < firstCCC, there are none, for v >= firstCCC, -// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC -// there is an additional leading ccc. The value of tccc itself is the -// trailing CCC shifted left 2 bits. The two least-significant bits of tccc -// are the number of trailing non-starters. - -const ( - qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo - headerLenMask = 0x3F // extract the length value from the header byte - headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte -) - -// Properties provides access to normalization properties of a rune. -type Properties struct { - pos uint8 // start position in reorderBuffer; used in composition.go - size uint8 // length of UTF-8 encoding of this rune - ccc uint8 // leading canonical combining class (ccc if not decomposition) - tccc uint8 // trailing canonical combining class (ccc if not decomposition) - nLead uint8 // number of leading non-starters. - flags qcInfo // quick check flags - index uint16 -} - -// functions dispatchable per form -type lookupFunc func(b input, i int) Properties - -// formInfo holds Form-specific functions and tables. -type formInfo struct { - form Form - composing, compatibility bool // form type - info lookupFunc - nextMain iterFunc -} - -var formTable = []*formInfo{{ - form: NFC, - composing: true, - compatibility: false, - info: lookupInfoNFC, - nextMain: nextComposed, -}, { - form: NFD, - composing: false, - compatibility: false, - info: lookupInfoNFC, - nextMain: nextDecomposed, -}, { - form: NFKC, - composing: true, - compatibility: true, - info: lookupInfoNFKC, - nextMain: nextComposed, -}, { - form: NFKD, - composing: false, - compatibility: true, - info: lookupInfoNFKC, - nextMain: nextDecomposed, -}} - -// We do not distinguish between boundaries for NFC, NFD, etc. to avoid -// unexpected behavior for the user. For example, in NFD, there is a boundary -// after 'a'. However, 'a' might combine with modifiers, so from the application's -// perspective it is not a good boundary. We will therefore always use the -// boundaries for the combining variants. - -// BoundaryBefore returns true if this rune starts a new segment and -// cannot combine with any rune on the left. -func (p Properties) BoundaryBefore() bool { - if p.ccc == 0 && !p.combinesBackward() { - return true - } - // We assume that the CCC of the first character in a decomposition - // is always non-zero if different from info.ccc and that we can return - // false at this point. This is verified by maketables. - return false -} - -// BoundaryAfter returns true if runes cannot combine with or otherwise -// interact with this or previous runes. -func (p Properties) BoundaryAfter() bool { - // TODO: loosen these conditions. - return p.isInert() -} - -// We pack quick check data in 4 bits: -// -// 5: Combines forward (0 == false, 1 == true) -// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) -// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. -// 1..0: Number of trailing non-starters. -// -// When all 4 bits are zero, the character is inert, meaning it is never -// influenced by normalization. -type qcInfo uint8 - -func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } -func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } - -func (p Properties) combinesForward() bool { return p.flags&0x20 != 0 } -func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe -func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD - -func (p Properties) isInert() bool { - return p.flags&qcInfoMask == 0 && p.ccc == 0 -} - -func (p Properties) multiSegment() bool { - return p.index >= firstMulti && p.index < endMulti -} - -func (p Properties) nLeadingNonStarters() uint8 { - return p.nLead -} - -func (p Properties) nTrailingNonStarters() uint8 { - return uint8(p.flags & 0x03) -} - -// Decomposition returns the decomposition for the underlying rune -// or nil if there is none. -func (p Properties) Decomposition() []byte { - // TODO: create the decomposition for Hangul? - if p.index == 0 { - return nil - } - i := p.index - n := decomps[i] & headerLenMask - i++ - return decomps[i : i+uint16(n)] -} - -// Size returns the length of UTF-8 encoding of the rune. -func (p Properties) Size() int { - return int(p.size) -} - -// CCC returns the canonical combining class of the underlying rune. -func (p Properties) CCC() uint8 { - if p.index >= firstCCCZeroExcept { - return 0 - } - return ccc[p.ccc] -} - -// LeadCCC returns the CCC of the first rune in the decomposition. -// If there is no decomposition, LeadCCC equals CCC. -func (p Properties) LeadCCC() uint8 { - return ccc[p.ccc] -} - -// TrailCCC returns the CCC of the last rune in the decomposition. -// If there is no decomposition, TrailCCC equals CCC. -func (p Properties) TrailCCC() uint8 { - return ccc[p.tccc] -} - -func buildRecompMap() { - recompMap = make(map[uint32]rune, len(recompMapPacked)/8) - var buf [8]byte - for i := 0; i < len(recompMapPacked); i += 8 { - copy(buf[:], recompMapPacked[i:i+8]) - key := binary.BigEndian.Uint32(buf[:4]) - val := binary.BigEndian.Uint32(buf[4:]) - recompMap[key] = rune(val) - } -} - -// Recomposition -// We use 32-bit keys instead of 64-bit for the two codepoint keys. -// This clips off the bits of three entries, but we know this will not -// result in a collision. In the unlikely event that changes to -// UnicodeData.txt introduce collisions, the compiler will catch it. -// Note that the recomposition map for NFC and NFKC are identical. - -// combine returns the combined rune or 0 if it doesn't exist. -// -// The caller is responsible for calling -// recompMapOnce.Do(buildRecompMap) sometime before this is called. -func combine(a, b rune) rune { - key := uint32(uint16(a))<<16 + uint32(uint16(b)) - if recompMap == nil { - panic("caller error") // see func comment - } - return recompMap[key] -} - -func lookupInfoNFC(b input, i int) Properties { - v, sz := b.charinfoNFC(i) - return compInfo(v, sz) -} - -func lookupInfoNFKC(b input, i int) Properties { - v, sz := b.charinfoNFKC(i) - return compInfo(v, sz) -} - -// Properties returns properties for the first rune in s. -func (f Form) Properties(s []byte) Properties { - if f == NFC || f == NFD { - return compInfo(nfcData.lookup(s)) - } - return compInfo(nfkcData.lookup(s)) -} - -// PropertiesString returns properties for the first rune in s. -func (f Form) PropertiesString(s string) Properties { - if f == NFC || f == NFD { - return compInfo(nfcData.lookupString(s)) - } - return compInfo(nfkcData.lookupString(s)) -} - -// compInfo converts the information contained in v and sz -// to a Properties. See the comment at the top of the file -// for more information on the format. -func compInfo(v uint16, sz int) Properties { - if v == 0 { - return Properties{size: uint8(sz)} - } else if v >= 0x8000 { - p := Properties{ - size: uint8(sz), - ccc: uint8(v), - tccc: uint8(v), - flags: qcInfo(v >> 8), - } - if p.ccc > 0 || p.combinesBackward() { - p.nLead = uint8(p.flags & 0x3) - } - return p - } - // has decomposition - h := decomps[v] - f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4 - p := Properties{size: uint8(sz), flags: f, index: v} - if v >= firstCCC { - v += uint16(h&headerLenMask) + 1 - c := decomps[v] - p.tccc = c >> 2 - p.flags |= qcInfo(c & 0x3) - if v >= firstLeadingCCC { - p.nLead = c & 0x3 - if v >= firstStarterWithNLead { - // We were tricked. Remove the decomposition. - p.flags &= 0x03 - p.index = 0 - return p - } - p.ccc = decomps[v+1] - } - } - return p -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/input.go b/backend/vendor/golang.org/x/text/unicode/norm/input.go deleted file mode 100644 index 479e35bc..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/input.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "unicode/utf8" - -type input struct { - str string - bytes []byte -} - -func inputBytes(str []byte) input { - return input{bytes: str} -} - -func inputString(str string) input { - return input{str: str} -} - -func (in *input) setBytes(str []byte) { - in.str = "" - in.bytes = str -} - -func (in *input) setString(str string) { - in.str = str - in.bytes = nil -} - -func (in *input) _byte(p int) byte { - if in.bytes == nil { - return in.str[p] - } - return in.bytes[p] -} - -func (in *input) skipASCII(p, max int) int { - if in.bytes == nil { - for ; p < max && in.str[p] < utf8.RuneSelf; p++ { - } - } else { - for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { - } - } - return p -} - -func (in *input) skipContinuationBytes(p int) int { - if in.bytes == nil { - for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { - } - } else { - for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { - } - } - return p -} - -func (in *input) appendSlice(buf []byte, b, e int) []byte { - if in.bytes != nil { - return append(buf, in.bytes[b:e]...) - } - for i := b; i < e; i++ { - buf = append(buf, in.str[i]) - } - return buf -} - -func (in *input) copySlice(buf []byte, b, e int) int { - if in.bytes == nil { - return copy(buf, in.str[b:e]) - } - return copy(buf, in.bytes[b:e]) -} - -func (in *input) charinfoNFC(p int) (uint16, int) { - if in.bytes == nil { - return nfcData.lookupString(in.str[p:]) - } - return nfcData.lookup(in.bytes[p:]) -} - -func (in *input) charinfoNFKC(p int) (uint16, int) { - if in.bytes == nil { - return nfkcData.lookupString(in.str[p:]) - } - return nfkcData.lookup(in.bytes[p:]) -} - -func (in *input) hangul(p int) (r rune) { - var size int - if in.bytes == nil { - if !isHangulString(in.str[p:]) { - return 0 - } - r, size = utf8.DecodeRuneInString(in.str[p:]) - } else { - if !isHangul(in.bytes[p:]) { - return 0 - } - r, size = utf8.DecodeRune(in.bytes[p:]) - } - if size != hangulUTF8Size { - return 0 - } - return r -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/iter.go b/backend/vendor/golang.org/x/text/unicode/norm/iter.go deleted file mode 100644 index 417c6b26..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/iter.go +++ /dev/null @@ -1,458 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import ( - "fmt" - "unicode/utf8" -) - -// MaxSegmentSize is the maximum size of a byte buffer needed to consider any -// sequence of starter and non-starter runes for the purpose of normalization. -const MaxSegmentSize = maxByteBufferSize - -// An Iter iterates over a string or byte slice, while normalizing it -// to a given Form. -type Iter struct { - rb reorderBuffer - buf [maxByteBufferSize]byte - info Properties // first character saved from previous iteration - next iterFunc // implementation of next depends on form - asciiF iterFunc - - p int // current position in input source - multiSeg []byte // remainder of multi-segment decomposition -} - -type iterFunc func(*Iter) []byte - -// Init initializes i to iterate over src after normalizing it to Form f. -func (i *Iter) Init(f Form, src []byte) { - i.p = 0 - if len(src) == 0 { - i.setDone() - i.rb.nsrc = 0 - return - } - i.multiSeg = nil - i.rb.init(f, src) - i.next = i.rb.f.nextMain - i.asciiF = nextASCIIBytes - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) -} - -// InitString initializes i to iterate over src after normalizing it to Form f. -func (i *Iter) InitString(f Form, src string) { - i.p = 0 - if len(src) == 0 { - i.setDone() - i.rb.nsrc = 0 - return - } - i.multiSeg = nil - i.rb.initString(f, src) - i.next = i.rb.f.nextMain - i.asciiF = nextASCIIString - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) -} - -// Seek sets the segment to be returned by the next call to Next to start -// at position p. It is the responsibility of the caller to set p to the -// start of a segment. -func (i *Iter) Seek(offset int64, whence int) (int64, error) { - var abs int64 - switch whence { - case 0: - abs = offset - case 1: - abs = int64(i.p) + offset - case 2: - abs = int64(i.rb.nsrc) + offset - default: - return 0, fmt.Errorf("norm: invalid whence") - } - if abs < 0 { - return 0, fmt.Errorf("norm: negative position") - } - if int(abs) >= i.rb.nsrc { - i.setDone() - return int64(i.p), nil - } - i.p = int(abs) - i.multiSeg = nil - i.next = i.rb.f.nextMain - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) - return abs, nil -} - -// returnSlice returns a slice of the underlying input type as a byte slice. -// If the underlying is of type []byte, it will simply return a slice. -// If the underlying is of type string, it will copy the slice to the buffer -// and return that. -func (i *Iter) returnSlice(a, b int) []byte { - if i.rb.src.bytes == nil { - return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])] - } - return i.rb.src.bytes[a:b] -} - -// Pos returns the byte position at which the next call to Next will commence processing. -func (i *Iter) Pos() int { - return i.p -} - -func (i *Iter) setDone() { - i.next = nextDone - i.p = i.rb.nsrc -} - -// Done returns true if there is no more input to process. -func (i *Iter) Done() bool { - return i.p >= i.rb.nsrc -} - -// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input. -// For any input a and b for which f(a) == f(b), subsequent calls -// to Next will return the same segments. -// Modifying runes are grouped together with the preceding starter, if such a starter exists. -// Although not guaranteed, n will typically be the smallest possible n. -func (i *Iter) Next() []byte { - return i.next(i) -} - -func nextASCIIBytes(i *Iter) []byte { - p := i.p + 1 - if p >= i.rb.nsrc { - p0 := i.p - i.setDone() - return i.rb.src.bytes[p0:p] - } - if i.rb.src.bytes[p] < utf8.RuneSelf { - p0 := i.p - i.p = p - return i.rb.src.bytes[p0:p] - } - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) -} - -func nextASCIIString(i *Iter) []byte { - p := i.p + 1 - if p >= i.rb.nsrc { - i.buf[0] = i.rb.src.str[i.p] - i.setDone() - return i.buf[:1] - } - if i.rb.src.str[p] < utf8.RuneSelf { - i.buf[0] = i.rb.src.str[i.p] - i.p = p - return i.buf[:1] - } - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) -} - -func nextHangul(i *Iter) []byte { - p := i.p - next := p + hangulUTF8Size - if next >= i.rb.nsrc { - i.setDone() - } else if i.rb.src.hangul(next) == 0 { - i.rb.ss.next(i.info) - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) - } - i.p = next - return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))] -} - -func nextDone(i *Iter) []byte { - return nil -} - -// nextMulti is used for iterating over multi-segment decompositions -// for decomposing normal forms. -func nextMulti(i *Iter) []byte { - j := 0 - d := i.multiSeg - // skip first rune - for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ { - } - for j < len(d) { - info := i.rb.f.info(input{bytes: d}, j) - if info.BoundaryBefore() { - i.multiSeg = d[j:] - return d[:j] - } - j += int(info.size) - } - // treat last segment as normal decomposition - i.next = i.rb.f.nextMain - return i.next(i) -} - -// nextMultiNorm is used for iterating over multi-segment decompositions -// for composing normal forms. -func nextMultiNorm(i *Iter) []byte { - j := 0 - d := i.multiSeg - for j < len(d) { - info := i.rb.f.info(input{bytes: d}, j) - if info.BoundaryBefore() { - i.rb.compose() - seg := i.buf[:i.rb.flushCopy(i.buf[:])] - i.rb.insertUnsafe(input{bytes: d}, j, info) - i.multiSeg = d[j+int(info.size):] - return seg - } - i.rb.insertUnsafe(input{bytes: d}, j, info) - j += int(info.size) - } - i.multiSeg = nil - i.next = nextComposed - return doNormComposed(i) -} - -// nextDecomposed is the implementation of Next for forms NFD and NFKD. -func nextDecomposed(i *Iter) (next []byte) { - outp := 0 - inCopyStart, outCopyStart := i.p, 0 - for { - if sz := int(i.info.size); sz <= 1 { - i.rb.ss = 0 - p := i.p - i.p++ // ASCII or illegal byte. Either way, advance by 1. - if i.p >= i.rb.nsrc { - i.setDone() - return i.returnSlice(p, i.p) - } else if i.rb.src._byte(i.p) < utf8.RuneSelf { - i.next = i.asciiF - return i.returnSlice(p, i.p) - } - outp++ - } else if d := i.info.Decomposition(); d != nil { - // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero. - // Case 1: there is a leftover to copy. In this case the decomposition - // must begin with a modifier and should always be appended. - // Case 2: no leftover. Simply return d if followed by a ccc == 0 value. - p := outp + len(d) - if outp > 0 { - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - // TODO: this condition should not be possible, but we leave it - // in for defensive purposes. - if p > len(i.buf) { - return i.buf[:outp] - } - } else if i.info.multiSegment() { - // outp must be 0 as multi-segment decompositions always - // start a new segment. - if i.multiSeg == nil { - i.multiSeg = d - i.next = nextMulti - return nextMulti(i) - } - // We are in the last segment. Treat as normal decomposition. - d = i.multiSeg - i.multiSeg = nil - p = len(d) - } - prevCC := i.info.tccc - if i.p += sz; i.p >= i.rb.nsrc { - i.setDone() - i.info = Properties{} // Force BoundaryBefore to succeed. - } else { - i.info = i.rb.f.info(i.rb.src, i.p) - } - switch i.rb.ss.next(i.info) { - case ssOverflow: - i.next = nextCGJDecompose - fallthrough - case ssStarter: - if outp > 0 { - copy(i.buf[outp:], d) - return i.buf[:p] - } - return d - } - copy(i.buf[outp:], d) - outp = p - inCopyStart, outCopyStart = i.p, outp - if i.info.ccc < prevCC { - goto doNorm - } - continue - } else if r := i.rb.src.hangul(i.p); r != 0 { - outp = decomposeHangul(i.buf[:], r) - i.p += hangulUTF8Size - inCopyStart, outCopyStart = i.p, outp - if i.p >= i.rb.nsrc { - i.setDone() - break - } else if i.rb.src.hangul(i.p) != 0 { - i.next = nextHangul - return i.buf[:outp] - } - } else { - p := outp + sz - if p > len(i.buf) { - break - } - outp = p - i.p += sz - } - if i.p >= i.rb.nsrc { - i.setDone() - break - } - prevCC := i.info.tccc - i.info = i.rb.f.info(i.rb.src, i.p) - if v := i.rb.ss.next(i.info); v == ssStarter { - break - } else if v == ssOverflow { - i.next = nextCGJDecompose - break - } - if i.info.ccc < prevCC { - goto doNorm - } - } - if outCopyStart == 0 { - return i.returnSlice(inCopyStart, i.p) - } else if inCopyStart < i.p { - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - } - return i.buf[:outp] -doNorm: - // Insert what we have decomposed so far in the reorderBuffer. - // As we will only reorder, there will always be enough room. - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - i.rb.insertDecomposed(i.buf[0:outp]) - return doNormDecomposed(i) -} - -func doNormDecomposed(i *Iter) []byte { - for { - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - if i.p += int(i.info.size); i.p >= i.rb.nsrc { - i.setDone() - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if i.info.ccc == 0 { - break - } - if s := i.rb.ss.next(i.info); s == ssOverflow { - i.next = nextCGJDecompose - break - } - } - // new segment or too many combining characters: exit normalization - return i.buf[:i.rb.flushCopy(i.buf[:])] -} - -func nextCGJDecompose(i *Iter) []byte { - i.rb.ss = 0 - i.rb.insertCGJ() - i.next = nextDecomposed - i.rb.ss.first(i.info) - buf := doNormDecomposed(i) - return buf -} - -// nextComposed is the implementation of Next for forms NFC and NFKC. -func nextComposed(i *Iter) []byte { - outp, startp := 0, i.p - var prevCC uint8 - for { - if !i.info.isYesC() { - goto doNorm - } - prevCC = i.info.tccc - sz := int(i.info.size) - if sz == 0 { - sz = 1 // illegal rune: copy byte-by-byte - } - p := outp + sz - if p > len(i.buf) { - break - } - outp = p - i.p += sz - if i.p >= i.rb.nsrc { - i.setDone() - break - } else if i.rb.src._byte(i.p) < utf8.RuneSelf { - i.rb.ss = 0 - i.next = i.asciiF - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if v := i.rb.ss.next(i.info); v == ssStarter { - break - } else if v == ssOverflow { - i.next = nextCGJCompose - break - } - if i.info.ccc < prevCC { - goto doNorm - } - } - return i.returnSlice(startp, i.p) -doNorm: - // reset to start position - i.p = startp - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) - if i.info.multiSegment() { - d := i.info.Decomposition() - info := i.rb.f.info(input{bytes: d}, 0) - i.rb.insertUnsafe(input{bytes: d}, 0, info) - i.multiSeg = d[int(info.size):] - i.next = nextMultiNorm - return nextMultiNorm(i) - } - i.rb.ss.first(i.info) - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - return doNormComposed(i) -} - -func doNormComposed(i *Iter) []byte { - // First rune should already be inserted. - for { - if i.p += int(i.info.size); i.p >= i.rb.nsrc { - i.setDone() - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if s := i.rb.ss.next(i.info); s == ssStarter { - break - } else if s == ssOverflow { - i.next = nextCGJCompose - break - } - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - } - i.rb.compose() - seg := i.buf[:i.rb.flushCopy(i.buf[:])] - return seg -} - -func nextCGJCompose(i *Iter) []byte { - i.rb.ss = 0 // instead of first - i.rb.insertCGJ() - i.next = nextComposed - // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter, - // even if they are not. This is particularly dubious for U+FF9E and UFF9A. - // If we ever change that, insert a check here. - i.rb.ss.first(i.info) - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - return doNormComposed(i) -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/normalize.go b/backend/vendor/golang.org/x/text/unicode/norm/normalize.go deleted file mode 100644 index 4747ad07..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/normalize.go +++ /dev/null @@ -1,610 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Note: the file data_test.go that is generated should not be checked in. -//go:generate go run maketables.go triegen.go -//go:generate go test -tags test - -// Package norm contains types and functions for normalizing Unicode strings. -package norm // import "golang.org/x/text/unicode/norm" - -import ( - "unicode/utf8" - - "golang.org/x/text/transform" -) - -// A Form denotes a canonical representation of Unicode code points. -// The Unicode-defined normalization and equivalence forms are: -// -// NFC Unicode Normalization Form C -// NFD Unicode Normalization Form D -// NFKC Unicode Normalization Form KC -// NFKD Unicode Normalization Form KD -// -// For a Form f, this documentation uses the notation f(x) to mean -// the bytes or string x converted to the given form. -// A position n in x is called a boundary if conversion to the form can -// proceed independently on both sides: -// -// f(x) == append(f(x[0:n]), f(x[n:])...) -// -// References: https://unicode.org/reports/tr15/ and -// https://unicode.org/notes/tn5/. -type Form int - -const ( - NFC Form = iota - NFD - NFKC - NFKD -) - -// Bytes returns f(b). May return b if f(b) = b. -func (f Form) Bytes(b []byte) []byte { - src := inputBytes(b) - ft := formTable[f] - n, ok := ft.quickSpan(src, 0, len(b), true) - if ok { - return b - } - out := make([]byte, n, len(b)) - copy(out, b[0:n]) - rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush} - return doAppendInner(&rb, n) -} - -// String returns f(s). -func (f Form) String(s string) string { - src := inputString(s) - ft := formTable[f] - n, ok := ft.quickSpan(src, 0, len(s), true) - if ok { - return s - } - out := make([]byte, n, len(s)) - copy(out, s[0:n]) - rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush} - return string(doAppendInner(&rb, n)) -} - -// IsNormal returns true if b == f(b). -func (f Form) IsNormal(b []byte) bool { - src := inputBytes(b) - ft := formTable[f] - bp, ok := ft.quickSpan(src, 0, len(b), true) - if ok { - return true - } - rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)} - rb.setFlusher(nil, cmpNormalBytes) - for bp < len(b) { - rb.out = b[bp:] - if bp = decomposeSegment(&rb, bp, true); bp < 0 { - return false - } - bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true) - } - return true -} - -func cmpNormalBytes(rb *reorderBuffer) bool { - b := rb.out - for i := 0; i < rb.nrune; i++ { - info := rb.rune[i] - if int(info.size) > len(b) { - return false - } - p := info.pos - pe := p + info.size - for ; p < pe; p++ { - if b[0] != rb.byte[p] { - return false - } - b = b[1:] - } - } - return true -} - -// IsNormalString returns true if s == f(s). -func (f Form) IsNormalString(s string) bool { - src := inputString(s) - ft := formTable[f] - bp, ok := ft.quickSpan(src, 0, len(s), true) - if ok { - return true - } - rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)} - rb.setFlusher(nil, func(rb *reorderBuffer) bool { - for i := 0; i < rb.nrune; i++ { - info := rb.rune[i] - if bp+int(info.size) > len(s) { - return false - } - p := info.pos - pe := p + info.size - for ; p < pe; p++ { - if s[bp] != rb.byte[p] { - return false - } - bp++ - } - } - return true - }) - for bp < len(s) { - if bp = decomposeSegment(&rb, bp, true); bp < 0 { - return false - } - bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true) - } - return true -} - -// patchTail fixes a case where a rune may be incorrectly normalized -// if it is followed by illegal continuation bytes. It returns the -// patched buffer and whether the decomposition is still in progress. -func patchTail(rb *reorderBuffer) bool { - info, p := lastRuneStart(&rb.f, rb.out) - if p == -1 || info.size == 0 { - return true - } - end := p + int(info.size) - extra := len(rb.out) - end - if extra > 0 { - // Potentially allocating memory. However, this only - // happens with ill-formed UTF-8. - x := make([]byte, 0) - x = append(x, rb.out[len(rb.out)-extra:]...) - rb.out = rb.out[:end] - decomposeToLastBoundary(rb) - rb.doFlush() - rb.out = append(rb.out, x...) - return false - } - buf := rb.out[p:] - rb.out = rb.out[:p] - decomposeToLastBoundary(rb) - if s := rb.ss.next(info); s == ssStarter { - rb.doFlush() - rb.ss.first(info) - } else if s == ssOverflow { - rb.doFlush() - rb.insertCGJ() - rb.ss = 0 - } - rb.insertUnsafe(inputBytes(buf), 0, info) - return true -} - -func appendQuick(rb *reorderBuffer, i int) int { - if rb.nsrc == i { - return i - } - end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true) - rb.out = rb.src.appendSlice(rb.out, i, end) - return end -} - -// Append returns f(append(out, b...)). -// The buffer out must be nil, empty, or equal to f(out). -func (f Form) Append(out []byte, src ...byte) []byte { - return f.doAppend(out, inputBytes(src), len(src)) -} - -func (f Form) doAppend(out []byte, src input, n int) []byte { - if n == 0 { - return out - } - ft := formTable[f] - // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer. - if len(out) == 0 { - p, _ := ft.quickSpan(src, 0, n, true) - out = src.appendSlice(out, 0, p) - if p == n { - return out - } - rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush} - return doAppendInner(&rb, p) - } - rb := reorderBuffer{f: *ft, src: src, nsrc: n} - return doAppend(&rb, out, 0) -} - -func doAppend(rb *reorderBuffer, out []byte, p int) []byte { - rb.setFlusher(out, appendFlush) - src, n := rb.src, rb.nsrc - doMerge := len(out) > 0 - if q := src.skipContinuationBytes(p); q > p { - // Move leading non-starters to destination. - rb.out = src.appendSlice(rb.out, p, q) - p = q - doMerge = patchTail(rb) - } - fd := &rb.f - if doMerge { - var info Properties - if p < n { - info = fd.info(src, p) - if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { - if p == 0 { - decomposeToLastBoundary(rb) - } - p = decomposeSegment(rb, p, true) - } - } - if info.size == 0 { - rb.doFlush() - // Append incomplete UTF-8 encoding. - return src.appendSlice(rb.out, p, n) - } - if rb.nrune > 0 { - return doAppendInner(rb, p) - } - } - p = appendQuick(rb, p) - return doAppendInner(rb, p) -} - -func doAppendInner(rb *reorderBuffer, p int) []byte { - for n := rb.nsrc; p < n; { - p = decomposeSegment(rb, p, true) - p = appendQuick(rb, p) - } - return rb.out -} - -// AppendString returns f(append(out, []byte(s))). -// The buffer out must be nil, empty, or equal to f(out). -func (f Form) AppendString(out []byte, src string) []byte { - return f.doAppend(out, inputString(src), len(src)) -} - -// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) QuickSpan(b []byte) int { - n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true) - return n -} - -// Span implements transform.SpanningTransformer. It returns a boundary n such -// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n. -func (f Form) Span(b []byte, atEOF bool) (n int, err error) { - n, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF) - if n < len(b) { - if !ok { - err = transform.ErrEndOfSpan - } else { - err = transform.ErrShortSrc - } - } - return n, err -} - -// SpanString returns a boundary n such that s[0:n] == f(s[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) SpanString(s string, atEOF bool) (n int, err error) { - n, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF) - if n < len(s) { - if !ok { - err = transform.ErrEndOfSpan - } else { - err = transform.ErrShortSrc - } - } - return n, err -} - -// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and -// whether any non-normalized parts were found. If atEOF is false, n will -// not point past the last segment if this segment might be become -// non-normalized by appending other runes. -func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) { - var lastCC uint8 - ss := streamSafe(0) - lastSegStart := i - for n = end; i < n; { - if j := src.skipASCII(i, n); i != j { - i = j - lastSegStart = i - 1 - lastCC = 0 - ss = 0 - continue - } - info := f.info(src, i) - if info.size == 0 { - if atEOF { - // include incomplete runes - return n, true - } - return lastSegStart, true - } - // This block needs to be before the next, because it is possible to - // have an overflow for runes that are starters (e.g. with U+FF9E). - switch ss.next(info) { - case ssStarter: - lastSegStart = i - case ssOverflow: - return lastSegStart, false - case ssSuccess: - if lastCC > info.ccc { - return lastSegStart, false - } - } - if f.composing { - if !info.isYesC() { - break - } - } else { - if !info.isYesD() { - break - } - } - lastCC = info.ccc - i += int(info.size) - } - if i == n { - if !atEOF { - n = lastSegStart - } - return n, true - } - return lastSegStart, false -} - -// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) QuickSpanString(s string) int { - n, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true) - return n -} - -// FirstBoundary returns the position i of the first boundary in b -// or -1 if b contains no boundary. -func (f Form) FirstBoundary(b []byte) int { - return f.firstBoundary(inputBytes(b), len(b)) -} - -func (f Form) firstBoundary(src input, nsrc int) int { - i := src.skipContinuationBytes(0) - if i >= nsrc { - return -1 - } - fd := formTable[f] - ss := streamSafe(0) - // We should call ss.first here, but we can't as the first rune is - // skipped already. This means FirstBoundary can't really determine - // CGJ insertion points correctly. Luckily it doesn't have to. - for { - info := fd.info(src, i) - if info.size == 0 { - return -1 - } - if s := ss.next(info); s != ssSuccess { - return i - } - i += int(info.size) - if i >= nsrc { - if !info.BoundaryAfter() && !ss.isMax() { - return -1 - } - return nsrc - } - } -} - -// FirstBoundaryInString returns the position i of the first boundary in s -// or -1 if s contains no boundary. -func (f Form) FirstBoundaryInString(s string) int { - return f.firstBoundary(inputString(s), len(s)) -} - -// NextBoundary reports the index of the boundary between the first and next -// segment in b or -1 if atEOF is false and there are not enough bytes to -// determine this boundary. -func (f Form) NextBoundary(b []byte, atEOF bool) int { - return f.nextBoundary(inputBytes(b), len(b), atEOF) -} - -// NextBoundaryInString reports the index of the boundary between the first and -// next segment in b or -1 if atEOF is false and there are not enough bytes to -// determine this boundary. -func (f Form) NextBoundaryInString(s string, atEOF bool) int { - return f.nextBoundary(inputString(s), len(s), atEOF) -} - -func (f Form) nextBoundary(src input, nsrc int, atEOF bool) int { - if nsrc == 0 { - if atEOF { - return 0 - } - return -1 - } - fd := formTable[f] - info := fd.info(src, 0) - if info.size == 0 { - if atEOF { - return 1 - } - return -1 - } - ss := streamSafe(0) - ss.first(info) - - for i := int(info.size); i < nsrc; i += int(info.size) { - info = fd.info(src, i) - if info.size == 0 { - if atEOF { - return i - } - return -1 - } - // TODO: Using streamSafe to determine the boundary isn't the same as - // using BoundaryBefore. Determine which should be used. - if s := ss.next(info); s != ssSuccess { - return i - } - } - if !atEOF && !info.BoundaryAfter() && !ss.isMax() { - return -1 - } - return nsrc -} - -// LastBoundary returns the position i of the last boundary in b -// or -1 if b contains no boundary. -func (f Form) LastBoundary(b []byte) int { - return lastBoundary(formTable[f], b) -} - -func lastBoundary(fd *formInfo, b []byte) int { - i := len(b) - info, p := lastRuneStart(fd, b) - if p == -1 { - return -1 - } - if info.size == 0 { // ends with incomplete rune - if p == 0 { // starts with incomplete rune - return -1 - } - i = p - info, p = lastRuneStart(fd, b[:i]) - if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter - return i - } - } - if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8 - return i - } - if info.BoundaryAfter() { - return i - } - ss := streamSafe(0) - v := ss.backwards(info) - for i = p; i >= 0 && v != ssStarter; i = p { - info, p = lastRuneStart(fd, b[:i]) - if v = ss.backwards(info); v == ssOverflow { - break - } - if p+int(info.size) != i { - if p == -1 { // no boundary found - return -1 - } - return i // boundary after an illegal UTF-8 encoding - } - } - return i -} - -// decomposeSegment scans the first segment in src into rb. It inserts 0x034f -// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters -// and returns the number of bytes consumed from src or iShortDst or iShortSrc. -func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { - // Force one character to be consumed. - info := rb.f.info(rb.src, sp) - if info.size == 0 { - return 0 - } - if s := rb.ss.next(info); s == ssStarter { - // TODO: this could be removed if we don't support merging. - if rb.nrune > 0 { - goto end - } - } else if s == ssOverflow { - rb.insertCGJ() - goto end - } - if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { - return int(err) - } - for { - sp += int(info.size) - if sp >= rb.nsrc { - if !atEOF && !info.BoundaryAfter() { - return int(iShortSrc) - } - break - } - info = rb.f.info(rb.src, sp) - if info.size == 0 { - if !atEOF { - return int(iShortSrc) - } - break - } - if s := rb.ss.next(info); s == ssStarter { - break - } else if s == ssOverflow { - rb.insertCGJ() - break - } - if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { - return int(err) - } - } -end: - if !rb.doFlush() { - return int(iShortDst) - } - return sp -} - -// lastRuneStart returns the runeInfo and position of the last -// rune in buf or the zero runeInfo and -1 if no rune was found. -func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) { - p := len(buf) - 1 - for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- { - } - if p < 0 { - return Properties{}, -1 - } - return fd.info(inputBytes(buf), p), p -} - -// decomposeToLastBoundary finds an open segment at the end of the buffer -// and scans it into rb. Returns the buffer minus the last segment. -func decomposeToLastBoundary(rb *reorderBuffer) { - fd := &rb.f - info, i := lastRuneStart(fd, rb.out) - if int(info.size) != len(rb.out)-i { - // illegal trailing continuation bytes - return - } - if info.BoundaryAfter() { - return - } - var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order - padd := 0 - ss := streamSafe(0) - p := len(rb.out) - for { - add[padd] = info - v := ss.backwards(info) - if v == ssOverflow { - // Note that if we have an overflow, it the string we are appending to - // is not correctly normalized. In this case the behavior is undefined. - break - } - padd++ - p -= int(info.size) - if v == ssStarter || p < 0 { - break - } - info, i = lastRuneStart(fd, rb.out[:p]) - if int(info.size) != p-i { - break - } - } - rb.ss = ss - // Copy bytes for insertion as we may need to overwrite rb.out. - var buf [maxBufferSize * utf8.UTFMax]byte - cp := buf[:copy(buf[:], rb.out[p:])] - rb.out = rb.out[:p] - for padd--; padd >= 0; padd-- { - info = add[padd] - rb.insertUnsafe(inputBytes(cp), 0, info) - cp = cp[info.size:] - } -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/readwriter.go b/backend/vendor/golang.org/x/text/unicode/norm/readwriter.go deleted file mode 100644 index b38096f5..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/readwriter.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "io" - -type normWriter struct { - rb reorderBuffer - w io.Writer - buf []byte -} - -// Write implements the standard write interface. If the last characters are -// not at a normalization boundary, the bytes will be buffered for the next -// write. The remaining bytes will be written on close. -func (w *normWriter) Write(data []byte) (n int, err error) { - // Process data in pieces to keep w.buf size bounded. - const chunk = 4000 - - for len(data) > 0 { - // Normalize into w.buf. - m := len(data) - if m > chunk { - m = chunk - } - w.rb.src = inputBytes(data[:m]) - w.rb.nsrc = m - w.buf = doAppend(&w.rb, w.buf, 0) - data = data[m:] - n += m - - // Write out complete prefix, save remainder. - // Note that lastBoundary looks back at most 31 runes. - i := lastBoundary(&w.rb.f, w.buf) - if i == -1 { - i = 0 - } - if i > 0 { - if _, err = w.w.Write(w.buf[:i]); err != nil { - break - } - bn := copy(w.buf, w.buf[i:]) - w.buf = w.buf[:bn] - } - } - return n, err -} - -// Close forces data that remains in the buffer to be written. -func (w *normWriter) Close() error { - if len(w.buf) > 0 { - _, err := w.w.Write(w.buf) - if err != nil { - return err - } - } - return nil -} - -// Writer returns a new writer that implements Write(b) -// by writing f(b) to w. The returned writer may use an -// internal buffer to maintain state across Write calls. -// Calling its Close method writes any buffered data to w. -func (f Form) Writer(w io.Writer) io.WriteCloser { - wr := &normWriter{rb: reorderBuffer{}, w: w} - wr.rb.init(f, nil) - return wr -} - -type normReader struct { - rb reorderBuffer - r io.Reader - inbuf []byte - outbuf []byte - bufStart int - lastBoundary int - err error -} - -// Read implements the standard read interface. -func (r *normReader) Read(p []byte) (int, error) { - for { - if r.lastBoundary-r.bufStart > 0 { - n := copy(p, r.outbuf[r.bufStart:r.lastBoundary]) - r.bufStart += n - if r.lastBoundary-r.bufStart > 0 { - return n, nil - } - return n, r.err - } - if r.err != nil { - return 0, r.err - } - outn := copy(r.outbuf, r.outbuf[r.lastBoundary:]) - r.outbuf = r.outbuf[0:outn] - r.bufStart = 0 - - n, err := r.r.Read(r.inbuf) - r.rb.src = inputBytes(r.inbuf[0:n]) - r.rb.nsrc, r.err = n, err - if n > 0 { - r.outbuf = doAppend(&r.rb, r.outbuf, 0) - } - if err == io.EOF { - r.lastBoundary = len(r.outbuf) - } else { - r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf) - if r.lastBoundary == -1 { - r.lastBoundary = 0 - } - } - } -} - -// Reader returns a new reader that implements Read -// by reading data from r and returning f(data). -func (f Form) Reader(r io.Reader) io.Reader { - const chunk = 4000 - buf := make([]byte, chunk) - rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf} - rr.rb.init(f, buf) - return rr -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/backend/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go deleted file mode 100644 index f5a07882..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +++ /dev/null @@ -1,7658 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 - -package norm - -import "sync" - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "10.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [55]uint8{ - 0, 1, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, - 84, 91, 103, 107, 118, 122, 129, 130, - 132, 202, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x186D - firstCCC = 0x2C9E - endMulti = 0x2F60 - firstLeadingCCC = 0x49AE - firstCCCZeroExcept = 0x4A78 - firstStarterWithNLead = 0x4A9F - lastDecomp = 0x4AA1 - maxDecomp = 0x8000 -) - -// decomps: 19105 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, - 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, - 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, - 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, - 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, - 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, - 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, - 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, - 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, - 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, - 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, - 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, - 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, - 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, - 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, - 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, - 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, - 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, - // Bytes 200 - 23f - 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, - 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, - 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, - 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, - 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, - 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, - 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, - 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, - 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, - 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, - 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, - 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, - 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, - 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, - 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, - 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, - 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, - 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, - 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, - 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, - 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, - 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, - 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, - 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, - 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, - 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, - 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, - 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, - 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, - // Bytes 300 - 33f - 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, - 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, - 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, - 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, - 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, - 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, - 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, - 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, - // Bytes 340 - 37f - 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, - 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, - 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, - 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, - 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, - 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, - 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, - 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, - // Bytes 380 - 3bf - 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, - 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, - 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, - 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, - 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, - 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, - 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, - 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, - // Bytes 3c0 - 3ff - 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, - 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, - 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, - 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, - 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, - 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, - 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, - 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, - // Bytes 400 - 43f - 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, - 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, - 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, - 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, - 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, - 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, - 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, - 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, - // Bytes 440 - 47f - 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, - 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, - 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, - 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, - 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, - 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, - 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, - 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, - // Bytes 480 - 4bf - 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, - 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, - 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, - 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, - 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, - 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, - 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, - 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, - // Bytes 4c0 - 4ff - 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, - 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, - 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, - 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, - 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, - 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, - 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, - 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, - // Bytes 500 - 53f - 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, - 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, - 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, - 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, - 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, - 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, - 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, - 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, - // Bytes 540 - 57f - 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, - 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, - 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, - 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, - 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, - 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, - 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, - 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, - // Bytes 580 - 5bf - 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, - 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, - 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, - 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, - 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, - 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, - 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, - 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, - // Bytes 5c0 - 5ff - 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, - 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, - 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, - 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, - 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, - 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, - 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, - 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, - // Bytes 600 - 63f - 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, - 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, - 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, - 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, - 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, - 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, - 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, - 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, - // Bytes 640 - 67f - 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, - 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, - 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, - 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, - 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, - 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, - 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, - 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, - // Bytes 680 - 6bf - 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, - 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, - 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, - 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, - 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, - 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, - 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, - 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, - // Bytes 6c0 - 6ff - 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, - 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, - 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, - 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, - 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, - 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, - 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, - 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, - // Bytes 700 - 73f - 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, - 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, - 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, - 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, - 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, - 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, - 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, - 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, - // Bytes 740 - 77f - 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, - 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, - 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, - 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, - 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, - 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, - 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, - 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, - // Bytes 780 - 7bf - 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, - 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, - 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, - 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, - 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, - 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, - 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, - 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, - // Bytes 7c0 - 7ff - 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, - 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, - 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, - 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, - 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, - 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, - 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, - 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, - // Bytes 800 - 83f - 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, - 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, - 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, - 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, - 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, - 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, - 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, - 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, - // Bytes 840 - 87f - 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, - 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, - 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, - 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, - 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, - 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, - 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, - 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, - // Bytes 880 - 8bf - 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, - 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, - 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, - 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, - 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, - 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, - 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, - 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, - // Bytes 8c0 - 8ff - 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, - 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, - 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, - 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, - 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, - 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, - 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, - 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, - // Bytes 900 - 93f - 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, - 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, - 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, - 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, - 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, - 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, - 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, - 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, - // Bytes 940 - 97f - 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, - 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, - 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, - 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, - 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, - 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, - 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, - 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, - // Bytes 980 - 9bf - 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, - 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, - 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, - 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, - 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, - 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, - 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, - 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, - // Bytes 9c0 - 9ff - 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, - 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, - 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, - 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, - 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, - 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, - 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, - 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, - // Bytes a00 - a3f - 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, - 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, - 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, - 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, - 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, - 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, - 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, - 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, - // Bytes a40 - a7f - 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, - 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, - 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, - 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, - 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, - 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, - 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, - 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, - // Bytes a80 - abf - 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, - 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, - 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, - 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, - 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, - 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, - 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, - 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, - // Bytes ac0 - aff - 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, - 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, - 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, - 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, - 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, - 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, - 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, - 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, - // Bytes b00 - b3f - 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, - 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, - 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, - 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, - 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, - 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, - 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, - 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, - // Bytes b40 - b7f - 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, - 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, - 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, - 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, - 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, - 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, - 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, - 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, - // Bytes b80 - bbf - 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, - 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, - 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, - 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, - 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, - 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, - 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, - 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, - // Bytes bc0 - bff - 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, - 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, - 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, - 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, - 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, - 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, - 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, - 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, - // Bytes c00 - c3f - 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, - 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, - 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, - 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, - 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, - 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, - 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, - 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, - // Bytes c40 - c7f - 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, - 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, - 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, - 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, - 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, - 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, - 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, - 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, - // Bytes c80 - cbf - 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, - 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, - 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, - 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, - 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, - 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, - 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, - 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, - // Bytes cc0 - cff - 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, - 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, - 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, - 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, - 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, - 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, - 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, - 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, - // Bytes d00 - d3f - 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, - 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, - 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, - 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, - 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, - 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, - 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, - 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, - // Bytes d40 - d7f - 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, - 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, - 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, - 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, - 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, - 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, - 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, - 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, - // Bytes d80 - dbf - 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, - 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, - 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, - 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, - 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, - 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, - 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, - 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, - // Bytes dc0 - dff - 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, - 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, - 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, - 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, - 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, - 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, - 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, - 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, - // Bytes e00 - e3f - 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, - 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, - 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, - 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, - 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, - 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, - 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, - 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, - // Bytes e40 - e7f - 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, - 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, - 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, - 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, - 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, - 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, - 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, - 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, - // Bytes e80 - ebf - 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, - 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, - 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, - 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, - 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, - 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, - 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, - 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, - // Bytes ec0 - eff - 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, - 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, - 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, - 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, - 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, - 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, - 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, - 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, - // Bytes f00 - f3f - 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, - 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, - 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, - 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, - 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, - 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, - 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, - 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, - // Bytes f40 - f7f - 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, - 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, - 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, - 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, - 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, - 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, - 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, - 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, - // Bytes f80 - fbf - 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, - 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, - 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, - 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, - 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, - 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, - 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, - 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, - // Bytes fc0 - fff - 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, - 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, - 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, - 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, - 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, - 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, - 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, - 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, - // Bytes 1000 - 103f - 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, - 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, - 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, - 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, - 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, - 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, - 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, - 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, - // Bytes 1040 - 107f - 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, - 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, - 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, - 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, - 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, - 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, - 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, - 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, - // Bytes 1080 - 10bf - 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, - 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, - 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, - 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, - 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, - 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, - 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, - 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, - // Bytes 10c0 - 10ff - 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, - 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, - 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, - 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, - 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, - 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, - 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, - 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, - // Bytes 1100 - 113f - 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, - 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, - 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, - 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, - 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, - 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, - 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, - 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, - // Bytes 1140 - 117f - 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, - 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, - 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, - 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, - 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, - 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, - 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, - 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, - // Bytes 1180 - 11bf - 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, - 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, - 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, - 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, - 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, - 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, - 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, - 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, - // Bytes 11c0 - 11ff - 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, - 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, - 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, - 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, - 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, - 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, - 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, - 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, - // Bytes 1200 - 123f - 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, - 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, - 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, - 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, - 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, - 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, - 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, - 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, - // Bytes 1240 - 127f - 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, - 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, - 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, - 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, - 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, - 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, - 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, - 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, - // Bytes 1280 - 12bf - 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, - 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, - 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, - 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, - 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, - 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, - 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, - 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, - // Bytes 12c0 - 12ff - 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, - 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, - 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, - 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, - 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, - 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, - 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, - 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, - // Bytes 1300 - 133f - 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, - 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, - 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, - 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, - 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, - 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, - 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, - 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, - // Bytes 1340 - 137f - 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, - 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, - 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, - 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, - 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, - 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, - 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, - 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, - // Bytes 1380 - 13bf - 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, - 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, - 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, - 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, - 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, - 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, - 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, - 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, - // Bytes 13c0 - 13ff - 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, - 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, - 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, - 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, - 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, - 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, - 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, - 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, - // Bytes 1400 - 143f - 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, - 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, - 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, - 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, - 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, - 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, - 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, - 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, - // Bytes 1440 - 147f - 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, - 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, - 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, - 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, - 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, - 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, - 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, - 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, - // Bytes 1480 - 14bf - 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, - 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, - 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, - 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, - 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, - 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, - 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, - 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, - // Bytes 14c0 - 14ff - 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, - 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, - 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, - 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, - 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, - 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, - 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, - 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, - // Bytes 1500 - 153f - 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, - 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, - 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, - 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, - 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, - 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, - 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, - 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, - // Bytes 1540 - 157f - 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, - 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, - 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, - 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, - 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, - 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, - 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, - 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, - // Bytes 1580 - 15bf - 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, - 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, - 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, - 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, - 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, - 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, - 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, - 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, - // Bytes 15c0 - 15ff - 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, - 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, - 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, - 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, - 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, - 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, - 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, - 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, - // Bytes 1600 - 163f - 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, - 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, - 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, - 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, - 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, - 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, - 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, - 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, - // Bytes 1640 - 167f - 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, - 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, - 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, - 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, - 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, - 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, - 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, - 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, - // Bytes 1680 - 16bf - 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, - 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, - 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, - 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, - 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, - 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, - 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, - 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, - // Bytes 16c0 - 16ff - 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, - 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, - 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, - 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, - 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, - 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, - 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, - 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, - // Bytes 1700 - 173f - 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, - 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, - 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, - 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, - 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, - 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, - 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, - 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, - // Bytes 1740 - 177f - 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, - 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, - 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, - 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, - 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, - 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, - 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, - 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, - // Bytes 1780 - 17bf - 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, - 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, - 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, - 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, - 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, - 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, - 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, - 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, - // Bytes 17c0 - 17ff - 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, - 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, - 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, - 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, - 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, - 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, - 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, - 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, - // Bytes 1800 - 183f - 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, - 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, - 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, - 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, - 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, - 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, - 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, - 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, - // Bytes 1840 - 187f - 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, - 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, - 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, - 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, - 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, - 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, - 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, - 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, - 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, - 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, - 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, - 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, - 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, - 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, - 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, - 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, - 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, - 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, - 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, - 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, - 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, - 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, - // Bytes 1900 - 193f - 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, - 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, - 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, - 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, - 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, - 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, - 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, - 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, - // Bytes 1940 - 197f - 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, - 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, - 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, - 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, - 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, - 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, - 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, - 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, - 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, - 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, - 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, - 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, - 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, - 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, - 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, - 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, - 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, - 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, - 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, - 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, - 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, - 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, - 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, - 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, - 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, - 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, - 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, - 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, - 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, - 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, - 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, - 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, - 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, - 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, - 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, - 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, - // Bytes 1a80 - 1abf - 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, - 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, - 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, - 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, - 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, - 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, - 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, - 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, - // Bytes 1ac0 - 1aff - 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, - 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, - 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, - 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, - 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, - 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, - 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, - 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, - // Bytes 1b00 - 1b3f - 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, - 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, - 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, - 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, - 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, - 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, - 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, - 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, - // Bytes 1b40 - 1b7f - 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, - 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, - 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, - 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, - 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, - 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, - 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, - 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, - // Bytes 1b80 - 1bbf - 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, - 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, - 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, - 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, - 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, - 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, - 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, - 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, - // Bytes 1bc0 - 1bff - 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, - 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, - 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, - 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, - 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, - 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, - 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, - 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, - // Bytes 1c00 - 1c3f - 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, - 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, - 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, - 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, - 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, - 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, - 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, - 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, - // Bytes 1c40 - 1c7f - 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, - 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, - 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, - 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, - 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, - 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, - 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, - 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, - // Bytes 1c80 - 1cbf - 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, - 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, - 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, - 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, - 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, - 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, - 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, - 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, - // Bytes 1cc0 - 1cff - 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, - 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, - 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, - 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, - 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, - 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, - 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, - 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, - // Bytes 1d00 - 1d3f - 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, - 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, - 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, - 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, - 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, - 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, - 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, - 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, - // Bytes 1d40 - 1d7f - 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, - 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, - 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, - 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, - 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, - 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, - 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, - 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, - // Bytes 1d80 - 1dbf - 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, - 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, - 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, - 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, - 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, - 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, - 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, - 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, - // Bytes 1dc0 - 1dff - 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, - 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, - 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, - 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, - 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, - 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, - 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, - 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, - // Bytes 1e00 - 1e3f - 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, - 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, - 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, - 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, - 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, - 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, - 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, - 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, - // Bytes 1e40 - 1e7f - 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, - 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, - 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, - 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, - 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, - 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, - 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, - 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1e80 - 1ebf - 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, - 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, - 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, - 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, - 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, - 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, - 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, - 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, - // Bytes 1ec0 - 1eff - 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, - 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, - 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, - 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, - 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, - 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, - 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, - 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, - // Bytes 1f00 - 1f3f - 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, - 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, - 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, - 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, - 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, - 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, - 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, - 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, - // Bytes 1f40 - 1f7f - 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, - 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, - 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, - 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, - 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, - 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, - 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, - 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, - // Bytes 1f80 - 1fbf - 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, - 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, - 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, - 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, - 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, - 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, - 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, - 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, - // Bytes 1fc0 - 1fff - 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, - 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, - 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, - 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, - 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, - 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, - 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, - 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, - // Bytes 2000 - 203f - 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, - 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, - 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, - 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, - 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, - 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, - 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, - 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, - // Bytes 2040 - 207f - 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, - 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, - 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, - 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, - // Bytes 2080 - 20bf - 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, - 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, - 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, - 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, - // Bytes 20c0 - 20ff - 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, - 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, - 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, - 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, - 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, - 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, - 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, - 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, - // Bytes 2100 - 213f - 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, - 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, - 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, - 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, - 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, - 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, - 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, - 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, - // Bytes 2140 - 217f - 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, - 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, - 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, - 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, - 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, - 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, - 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, - 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, - // Bytes 2180 - 21bf - 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, - 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, - // Bytes 21c0 - 21ff - 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, - // Bytes 2200 - 223f - 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, - // Bytes 2240 - 227f - 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, - // Bytes 2280 - 22bf - 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, - 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, - 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - // Bytes 22c0 - 22ff - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, - 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, - 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, - 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, - 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, - 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, - 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, - // Bytes 2300 - 233f - 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, - 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, - // Bytes 2340 - 237f - 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, - 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, - 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - // Bytes 2380 - 23bf - 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, - 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, - // Bytes 23c0 - 23ff - 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, - 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, - 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, - 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, - // Bytes 2400 - 243f - 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, - 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, - 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, - // Bytes 2440 - 247f - 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, - 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, - 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, - // Bytes 2480 - 24bf - 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, - 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, - 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, - // Bytes 24c0 - 24ff - 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, - 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, - 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, - // Bytes 2500 - 253f - 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, - 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, - 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - // Bytes 2540 - 257f - 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, - 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, - 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, - // Bytes 2580 - 25bf - 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, - 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, - // Bytes 25c0 - 25ff - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, - // Bytes 2600 - 263f - 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, - 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, - 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, - 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, - // Bytes 2640 - 267f - 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, - 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, - 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, - // Bytes 2680 - 26bf - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, - 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, - 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, - 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, - 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, - // Bytes 26c0 - 26ff - 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, - 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, - 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, - 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, - 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, - 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, - // Bytes 2700 - 273f - 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, - 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, - 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, - 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, - 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, - // Bytes 2740 - 277f - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, - // Bytes 2780 - 27bf - 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, - 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, - 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, - // Bytes 27c0 - 27ff - 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, - 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, - 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, - 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, - 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, - // Bytes 2800 - 283f - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, - 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, - // Bytes 2840 - 287f - 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, - 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, - // Bytes 2880 - 28bf - 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, - 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, - 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, - // Bytes 28c0 - 28ff - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, - 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, - // Bytes 2900 - 293f - 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, - 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, - // Bytes 2940 - 297f - 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, - 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, - // Bytes 2980 - 29bf - 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, - 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, - // Bytes 29c0 - 29ff - 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, - 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, - 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, - 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2a40 - 2a7f - 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - // Bytes 2a80 - 2abf - 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, - 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, - 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, - // Bytes 2b00 - 2b3f - 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, - // Bytes 2b40 - 2b7f - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, - // Bytes 2b80 - 2bbf - 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, - 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, - // Bytes 2bc0 - 2bff - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2c00 - 2c3f - 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, - // Bytes 2c40 - 2c7f - 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, - 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, - // Bytes 2c80 - 2cbf - 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2cc0 - 2cff - 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, - 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2d00 - 2d3f - 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, - 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, - 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, - 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - // Bytes 2d40 - 2d7f - 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, - // Bytes 2d80 - 2dbf - 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, - 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, - 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, - 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, - 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, - 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, - 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, - 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, - // Bytes 2dc0 - 2dff - 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, - 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, - 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, - 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, - 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, - 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, - 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, - // Bytes 2e00 - 2e3f - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e40 - 2e7f - 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, - 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e80 - 2ebf - 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, - 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, - 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - // Bytes 2ec0 - 2eff - 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, - 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2f00 - 2f3f - 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, - // Bytes 2f40 - 2f7f - 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, - 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, - 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, - 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, - 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, - 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, - // Bytes 2f80 - 2fbf - 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, - 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, - 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, - 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, - 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, - 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, - 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, - 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, - // Bytes 2fc0 - 2fff - 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, - 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, - 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, - 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, - 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, - 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, - 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, - 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, - // Bytes 3000 - 303f - 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, - 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, - 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, - 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, - 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, - 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, - 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, - 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, - // Bytes 3040 - 307f - 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, - 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, - 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, - 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, - 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, - 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, - 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, - 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, - // Bytes 3080 - 30bf - 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, - 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, - 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, - 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, - 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, - 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, - 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, - 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, - // Bytes 30c0 - 30ff - 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, - 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, - 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, - 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, - 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, - 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, - 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, - 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, - // Bytes 3100 - 313f - 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, - 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, - 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, - 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, - 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, - 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, - 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, - 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, - // Bytes 3140 - 317f - 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, - 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, - 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, - 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, - 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, - 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, - 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, - 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, - // Bytes 3180 - 31bf - 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, - 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, - 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, - 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, - 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, - 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, - 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, - 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, - // Bytes 31c0 - 31ff - 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, - 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, - 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, - 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, - 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, - 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, - 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, - 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, - // Bytes 3200 - 323f - 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, - 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, - 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, - 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, - 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, - 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, - 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, - 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, - // Bytes 3240 - 327f - 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, - 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, - 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, - 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, - 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, - 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, - 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, - 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, - // Bytes 3280 - 32bf - 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, - 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, - 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, - 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, - 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, - 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, - 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, - 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, - // Bytes 32c0 - 32ff - 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, - 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, - 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, - 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, - 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, - 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, - 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, - 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, - // Bytes 3300 - 333f - 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, - 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, - 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, - 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, - 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, - 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, - 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, - 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, - // Bytes 3340 - 337f - 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, - 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, - 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, - 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, - 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, - 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, - 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, - 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3380 - 33bf - 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, - 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, - 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, - 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, - 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, - 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, - 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, - 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, - // Bytes 33c0 - 33ff - 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, - 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, - 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, - 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, - 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, - 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, - 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, - 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, - // Bytes 3400 - 343f - 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, - 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, - 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, - 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, - 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, - 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, - 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, - 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, - // Bytes 3440 - 347f - 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, - 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, - 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, - 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, - 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, - 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, - 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, - 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, - // Bytes 3480 - 34bf - 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, - 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, - 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, - 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, - 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, - 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, - 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, - 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, - // Bytes 34c0 - 34ff - 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, - 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, - 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, - 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, - 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, - 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, - 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, - 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, - // Bytes 3500 - 353f - 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, - 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, - 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, - 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, - 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, - 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, - 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, - 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, - // Bytes 3540 - 357f - 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, - 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, - 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, - 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, - 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, - 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, - 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, - 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, - // Bytes 3580 - 35bf - 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, - 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, - 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, - 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, - 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, - 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, - 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, - 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, - // Bytes 35c0 - 35ff - 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, - 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, - 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, - 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, - 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, - // Bytes 3600 - 363f - 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, - 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, - // Bytes 3640 - 367f - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, - // Bytes 3680 - 36bf - 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, - 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, - 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, - // Bytes 36c0 - 36ff - 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, - 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, - 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, - 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, - 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, - 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, - 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, - // Bytes 3700 - 373f - 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, - 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3740 - 377f - 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, - 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, - 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, - 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, - 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, - // Bytes 3780 - 37bf - 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, - // Bytes 37c0 - 37ff - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, - 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, - 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, - 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, - 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3800 - 383f - 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, - 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, - 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, - 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, - 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, - 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, - 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, - 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, - // Bytes 3840 - 387f - 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, - 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, - 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, - 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, - 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, - 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3880 - 38bf - 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, - 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, - 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, - 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, - 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, - 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, - // Bytes 38c0 - 38ff - 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, - 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, - 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, - 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, - // Bytes 3900 - 393f - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, - 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, - 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, - 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, - // Bytes 3940 - 397f - 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, - 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, - 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, - 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, - 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, - 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, - 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, - // Bytes 3980 - 39bf - 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, - 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, - 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, - 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, - 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, - 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, - 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, - 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, - // Bytes 39c0 - 39ff - 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, - 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, - 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, - 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - // Bytes 3a00 - 3a3f - 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, - 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, - 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, - 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, - 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - // Bytes 3a40 - 3a7f - 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, - 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, - 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, - 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, - 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, - 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, - 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, - // Bytes 3a80 - 3abf - 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, - 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, - 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, - 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, - 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, - 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, - // Bytes 3ac0 - 3aff - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, - 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, - 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, - 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, - 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, - // Bytes 3b00 - 3b3f - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, - 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, - 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, - 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, - // Bytes 3b40 - 3b7f - 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, - 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, - 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, - 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, - 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, - // Bytes 3b80 - 3bbf - 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, - 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, - 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, - 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, - 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, - 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, - 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, - 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, - // Bytes 3bc0 - 3bff - 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, - 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3c00 - 3c3f - 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - // Bytes 3c40 - 3c7f - 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - // Bytes 3c80 - 3cbf - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, - // Bytes 3cc0 - 3cff - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, - 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 3d00 - 3d3f - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3d40 - 3d7f - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 3d80 - 3dbf - 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - // Bytes 3dc0 - 3dff - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - // Bytes 3e00 - 3e3f - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3e40 - 3e7f - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - // Bytes 3e80 - 3ebf - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - // Bytes 3ec0 - 3eff - 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, - 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, - // Bytes 3f00 - 3f3f - 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f40 - 3f7f - 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f80 - 3fbf - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, - // Bytes 3fc0 - 3fff - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4000 - 403f - 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4040 - 407f - 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4080 - 40bf - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 40c0 - 40ff - 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - // Bytes 4100 - 413f - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - // Bytes 4140 - 417f - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, - // Bytes 4180 - 41bf - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - // Bytes 41c0 - 41ff - 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - // Bytes 4200 - 423f - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, - // Bytes 4240 - 427f - 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, - 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, - 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, - 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, - 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, - 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, - 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, - 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, - // Bytes 4280 - 42bf - 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, - 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, - 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, - 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, - 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, - 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, - 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, - 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, - // Bytes 42c0 - 42ff - 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, - 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, - 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, - 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, - 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, - 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, - 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, - // Bytes 4300 - 433f - 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, - 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, - // Bytes 4340 - 437f - 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, - 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, - 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, - // Bytes 4380 - 43bf - 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, - 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, - // Bytes 43c0 - 43ff - 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, - 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, - 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, - // Bytes 4400 - 443f - 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, - 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, - 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, - 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, - 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, - 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, - 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, - // Bytes 4440 - 447f - 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, - 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, - 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, - 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, - 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, - 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, - 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, - // Bytes 4480 - 44bf - 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, - 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, - 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, - 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, - 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, - // Bytes 44c0 - 44ff - 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, - 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, - 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, - 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, - 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, - 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, - // Bytes 4500 - 453f - 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, - 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, - // Bytes 4540 - 457f - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, - // Bytes 4580 - 45bf - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, - // Bytes 45c0 - 45ff - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, - 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, - 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, - // Bytes 4600 - 463f - 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, - 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, - 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - // Bytes 4640 - 467f - 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, - 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, - 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - // Bytes 4680 - 46bf - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, - 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, - 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, - 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, - 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, - 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, - 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, - 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, - // Bytes 46c0 - 46ff - 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, - 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, - 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, - 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, - 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, - 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, - 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, - 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, - // Bytes 4700 - 473f - 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, - 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, - 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, - 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, - 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, - 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, - 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, - 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, - // Bytes 4740 - 477f - 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, - 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, - 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, - 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, - 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, - 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, - 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, - 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, - // Bytes 4780 - 47bf - 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, - 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, - 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, - 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, - 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, - 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, - // Bytes 47c0 - 47ff - 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, - // Bytes 4800 - 483f - 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, - 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, - 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, - 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, - // Bytes 4840 - 487f - 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, - 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, - 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, - 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, - 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, - // Bytes 4880 - 48bf - 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - // Bytes 48c0 - 48ff - 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - // Bytes 4900 - 493f - 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - // Bytes 4940 - 497f - 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - // Bytes 4980 - 49bf - 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, - 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, - 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, - // Bytes 49c0 - 49ff - 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, - // Bytes 4a00 - 4a3f - 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, - // Bytes 4a40 - 4a7f - 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, - 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, - 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, - 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, - // Bytes 4a80 - 4abf - 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, - 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 45: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 45 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 47 blocks, 3008 entries, 6016 bytes -// The third block is the zero block. -var nfcValues = [3008]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, - // Block 0x5, offset 0x140 - 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35a1, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, - 0x2c6: 0xa000, 0x2c7: 0x3709, - 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x3733, 0x302: 0x37b7, - 0x310: 0x370f, 0x311: 0x3793, - 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, - 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, - 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, - 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, - 0x338: 0x3787, 0x339: 0x380b, - // Block 0xd, offset 0x340 - 0x351: 0x812d, - 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, - 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, - 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, - 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, - 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, - 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, - 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, - 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, - 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, - 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x812d, - 0x3b0: 0x811e, - // Block 0xf, offset 0x3c0 - 0x3c5: 0xa000, - 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, - 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, - 0x3d2: 0x2d4e, - 0x3f4: 0x8102, 0x3f5: 0x9900, - 0x3fa: 0xa000, 0x3fb: 0x2d56, - 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, - // Block 0x10, offset 0x400 - 0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132, - 0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132, - 0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132, - 0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, - 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, - 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132, - 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132, - 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132, - 0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, - 0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132, - 0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d, - // Block 0x11, offset 0x440 - 0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2, - 0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0, - 0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df, - 0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85, - 0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93, - 0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c, - 0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370, - 0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a, - 0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de, - 0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7, - 0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc, - // Block 0x12, offset 0x480 - 0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a, - 0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e, - 0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9, - 0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465, - 0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26, - 0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791, - 0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b, - 0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4, - 0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f, - 0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49, - 0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532, - 0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541, - 0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582, - 0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6, - 0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1, - 0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f, - 0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15, - 0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23, - 0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a, - 0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c, - 0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69, - // Block 0x14, offset 0x500 - 0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70, - 0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1, - 0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf, - 0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6, - 0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5, - 0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11, - 0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73, - 0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a, - 0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578, - 0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a, - // Block 0x15, offset 0x540 - 0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e, - 0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6, - 0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c, - 0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0, - 0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00, - 0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966, - 0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8, - 0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6, - 0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38, - 0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30, - 0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40, - // Block 0x16, offset 0x580 - 0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60, - 0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58, - 0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a, - 0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8, - 0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70, - 0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996, - 0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2, - 0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916, - 0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a, - 0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c, - 0x5bc: 0x4870, 0x5bd: 0x4342, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac, - 0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee, - 0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0, - 0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2, - 0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134, - 0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a, - 0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88, - 0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a, - 0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98, - 0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee, - 0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100, - // Block 0x18, offset 0x600 - 0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0, - 0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa, - 0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af, - 0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10, - 0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4, - 0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec, - 0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b, - 0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081, - 0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8, - 0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318, - 0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100, - // Block 0x19, offset 0x640 - 0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000, - 0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b, - 0x64d: 0xa000, - 0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29, - 0x664: 0xa000, 0x665: 0xa000, - 0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a, - 0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45, - 0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000, - 0x67c: 0xa000, 0x67d: 0xa000, - // Block 0x1a, offset 0x680 - 0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d, - 0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b, - 0x691: 0xa000, - 0x692: 0xa000, - 0x6a2: 0xa000, - 0x6a8: 0xa000, 0x6a9: 0xa000, - 0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5, - 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000, - // Block 0x1b, offset 0x6c0 - 0x6c6: 0xa000, 0x6cb: 0xa000, - 0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000, - 0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000, - 0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000, - 0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60, - 0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78, - 0x6ef: 0xa000, - 0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000, - 0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000, - 0x6fc: 0x3fc0, 0x6fd: 0x3fc8, - // Block 0x1c, offset 0x700 - 0x714: 0x3f00, - 0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000, - 0x71e: 0x3fd0, - 0x726: 0xa000, - 0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000, - 0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000, - 0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000, - 0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000, - // Block 0x1d, offset 0x740 - 0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040, - 0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050, - 0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060, - 0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080, - 0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0, - 0x76f: 0xa000, - 0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8, - 0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0, - 0x77d: 0xa000, 0x77e: 0x40c8, - // Block 0x1e, offset 0x780 - 0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb, - 0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943, - 0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3, - 0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43, - 0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87, - 0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283, - 0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f, - 0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853, - 0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b, - 0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b, - 0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b, - 0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f, - 0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7, - 0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127, - 0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357, - 0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873, - 0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3, - 0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b, - 0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57, - 0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb, - 0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b, - // Block 0x20, offset 0x800 - 0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f, - 0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3, - 0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83, - 0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193, - 0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b, - 0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b, - 0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f, - 0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b, - 0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753, - 0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777, - 0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73, - // Block 0x21, offset 0x840 - 0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3, - 0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47, - 0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af, - 0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df, - 0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817, - 0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3, - 0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457, - 0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b, - 0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27, - 0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f, - 0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b, - // Block 0x22, offset 0x880 - 0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03, - 0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27, - 0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af, - 0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3, - 0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb, - 0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353, - 0x8a5: 0x1407, 0x8a6: 0x1433, - 0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7, - 0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897, - 0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93, - 0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b, - 0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f, - 0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f, - 0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f, - 0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff, - 0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f, - 0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f, - 0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3, - 0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7, - 0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963, - 0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f, - // Block 0x24, offset 0x900 - 0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b, - 0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb, - 0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf, - 0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f, - 0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013, - 0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f, - 0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b, - 0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b, - 0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb, - 0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343, - 0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f, - // Block 0x25, offset 0x940 - 0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b, - 0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b, - 0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2, - 0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809, - 0x958: 0x1617, 0x959: 0x1627, - // Block 0x26, offset 0x980 - 0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757, - 0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773, - 0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3, - 0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf, - 0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff, - 0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f, - 0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867, - 0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af, - 0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93, - 0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3, - 0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f, - 0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983, - 0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf, - 0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3, - 0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef, - 0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23, - 0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37, - 0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63, - 0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f, - 0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692, - 0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7, - // Block 0x28, offset 0xa00 - 0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb, - 0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f, - 0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6, - 0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9, - 0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83, - 0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3, - 0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf, - 0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7, - 0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f, - 0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b, - 0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f, - // Block 0x29, offset 0xa40 - 0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87, - 0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb, - 0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7, - 0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663, - 0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd, - 0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7, - 0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b, - 0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f, - 0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7, - 0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700, - 0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23, - 0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53, - 0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714, - 0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b, - 0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719, - 0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728, - 0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37, - 0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57, - 0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737, - 0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741, - 0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b, - // Block 0x2b, offset 0xac0 - 0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff, - 0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637, - 0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f, - 0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093, - 0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782, - 0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3, - 0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7, - 0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133, - 0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa, - 0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4, - 0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197, - // Block 0x2c, offset 0xb00 - 0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7, - 0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7, - 0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b, - 0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd, - 0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f, - 0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f, - 0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273, - 0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677, - 0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7, - 0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb, - 0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f, - // Block 0x2d, offset 0xb40 - 0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5, - 0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa, - 0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b, - 0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7, - 0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665, - 0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f, - 0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477, - 0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693, - 0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb, - 0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b, - 0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b, - // Block 0x2e, offset 0xb80 - 0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567, - 0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7, - 0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7, - 0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef, - 0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31, - 0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34, - 0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, - 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, - 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, - 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, - // Block 0x5, offset 0x140 - 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, - 0x14d: 0x5c, - 0x15c: 0x5d, 0x15f: 0x5e, - 0x162: 0x5f, 0x164: 0x60, - 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, - 0x170: 0x67, 0x173: 0x68, 0x177: 0x0e, - 0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16, - // Block 0x6, offset 0x180 - 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, - 0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70, - 0x1ab: 0x71, - 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77, - 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, - // Block 0x8, offset 0x200 - 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, - 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, - 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, - 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, - 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, - // Block 0x9, offset 0x240 - 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, - 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, - 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, - 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, - 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, - 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, - 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, - 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, - // Block 0xa, offset 0x280 - 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, - 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, - 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, - 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, - 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, - 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, - 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, - 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, - 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, - 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, - 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, - // Block 0xc, offset 0x300 - 0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f, - 0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, - 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, - 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, - // Block 0xd, offset 0x340 - 0x347: 0x9c, - 0x34b: 0x9d, 0x34d: 0x9e, - 0x368: 0x9f, 0x36b: 0xa0, - // Block 0xe, offset 0x380 - 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, - 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7, - 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, - 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, - 0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1, - 0x3b0: 0x73, 0x3b5: 0xb2, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xb3, 0x3ec: 0xb4, - // Block 0x10, offset 0x400 - 0x432: 0xb5, - // Block 0x11, offset 0x440 - 0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8, - 0x449: 0xb9, - // Block 0x12, offset 0x480 - 0x480: 0xba, - 0x4a3: 0xbb, 0x4a5: 0xbc, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xbd, - // Block 0x14, offset 0x500 - 0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b, - 0x528: 0x2c, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 145 entries, 290 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8} - -// nfcSparseValues: 682 entries, 2728 bytes -var nfcSparseValues = [682]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4840, lo: 0x8a, hi: 0x8a}, - {value: 0x485e, lo: 0x8b, hi: 0x8b}, - {value: 0x36c7, lo: 0x8c, hi: 0x8c}, - {value: 0x36df, lo: 0x8d, hi: 0x8d}, - {value: 0x4876, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x36fd, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - // Block 0xd, offset 0x62 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x67 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x69 - {value: 0x0000, lo: 0x10}, - {value: 0x8132, lo: 0x94, hi: 0xa1}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xa9, hi: 0xa9}, - {value: 0x8132, lo: 0xaa, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xaf}, - {value: 0x8116, lo: 0xb0, hi: 0xb0}, - {value: 0x8117, lo: 0xb1, hi: 0xb1}, - {value: 0x8118, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb5}, - {value: 0x812d, lo: 0xb6, hi: 0xb6}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x812d, lo: 0xb9, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbf}, - // Block 0x10, offset 0x7a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x11, offset 0x82 - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x12, offset 0x89 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x8c - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - // Block 0x14, offset 0x93 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x97 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x16, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x17, offset 0x9d - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x18, offset 0x9f - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x19, offset 0xa8 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1a, offset 0xac - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1b, offset 0xb3 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xb8 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1d, offset 0xbb - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1e, offset 0xc5 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1f, offset 0xc8 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x20, offset 0xcf - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x21, offset 0xd7 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x22, offset 0xda - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x23, offset 0xdc - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x24, offset 0xde - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x25, offset 0xe0 - {value: 0x0000, lo: 0x04}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0xe5 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x27, offset 0xf6 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x28, offset 0x102 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x29, offset 0x104 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x2a, offset 0x10a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2b, offset 0x10c - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x10e - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x110 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x112 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x114 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x116 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x119 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x11c - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x11e - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x121 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x124 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x128 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x37, offset 0x12d - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x136 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x138 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x13b - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x13d - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x148 - {value: 0x0004, lo: 0x03}, - {value: 0x0433, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3d, offset 0x14c - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x3e, offset 0x15a - {value: 0x427b, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x3f, offset 0x15d - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x40, offset 0x163 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x41, offset 0x169 - {value: 0x6408, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x42, offset 0x174 - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x43, offset 0x178 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x44, offset 0x17a - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x45, offset 0x17c - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x46, offset 0x17e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x47, offset 0x180 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x48, offset 0x182 - {value: 0x0000, lo: 0x05}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xaf}, - // Block 0x49, offset 0x188 - {value: 0x0000, lo: 0x03}, - {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, - {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, - {value: 0x4a9f, lo: 0xba, hi: 0xbf}, - // Block 0x4a, offset 0x18c - {value: 0x0000, lo: 0x01}, - {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, - // Block 0x4b, offset 0x18e - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4c, offset 0x190 - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4d, offset 0x198 - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4e, offset 0x19c - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x4f, offset 0x19f - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x50, offset 0x1a1 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x51, offset 0x1a3 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x52, offset 0x1a5 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x53, offset 0x1a8 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x54, offset 0x1aa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x55, offset 0x1ac - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x56, offset 0x1ae - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x57, offset 0x1b0 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x58, offset 0x1b6 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x59, offset 0x1b9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x5a, offset 0x1bb - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5b, offset 0x1c2 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5c, offset 0x1c8 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5d, offset 0x1ce - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5e, offset 0x1d6 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x5f, offset 0x1dc - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x60, offset 0x1e2 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x61, offset 0x1e8 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x62, offset 0x1ec - {value: 0x0006, lo: 0x0d}, - {value: 0x4390, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4402, lo: 0x9f, hi: 0x9f}, - {value: 0x43f0, lo: 0xaa, hi: 0xab}, - {value: 0x44f4, lo: 0xac, hi: 0xac}, - {value: 0x44fc, lo: 0xad, hi: 0xad}, - {value: 0x4348, lo: 0xae, hi: 0xb1}, - {value: 0x4366, lo: 0xb2, hi: 0xb4}, - {value: 0x437e, lo: 0xb5, hi: 0xb6}, - {value: 0x438a, lo: 0xb8, hi: 0xb8}, - {value: 0x4396, lo: 0xb9, hi: 0xbb}, - {value: 0x43ae, lo: 0xbc, hi: 0xbc}, - {value: 0x43b4, lo: 0xbe, hi: 0xbe}, - // Block 0x63, offset 0x1fa - {value: 0x0006, lo: 0x08}, - {value: 0x43ba, lo: 0x80, hi: 0x81}, - {value: 0x43c6, lo: 0x83, hi: 0x84}, - {value: 0x43d8, lo: 0x86, hi: 0x89}, - {value: 0x43fc, lo: 0x8a, hi: 0x8a}, - {value: 0x4378, lo: 0x8b, hi: 0x8b}, - {value: 0x4360, lo: 0x8c, hi: 0x8c}, - {value: 0x43a8, lo: 0x8d, hi: 0x8d}, - {value: 0x43d2, lo: 0x8e, hi: 0x8e}, - // Block 0x64, offset 0x203 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x65, offset 0x206 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x66, offset 0x209 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x67, offset 0x20b - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x68, offset 0x20e - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x69, offset 0x210 - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xa0, hi: 0xa6}, - {value: 0x812d, lo: 0xa7, hi: 0xad}, - {value: 0x8132, lo: 0xae, hi: 0xaf}, - // Block 0x6a, offset 0x214 - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6b, offset 0x219 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6c, offset 0x21b - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6d, offset 0x21d - {value: 0x0000, lo: 0x04}, - {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, - {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, - {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, - {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, - // Block 0x6e, offset 0x222 - {value: 0x0000, lo: 0x05}, - {value: 0x4a9f, lo: 0x82, hi: 0x87}, - {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, - {value: 0x4a9f, lo: 0x92, hi: 0x97}, - {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x6f, offset 0x228 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x70, offset 0x22a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x71, offset 0x22c - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x72, offset 0x22e - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x73, offset 0x234 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x74, offset 0x237 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x75, offset 0x23a - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x76, offset 0x242 - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x77, offset 0x249 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x78, offset 0x24c - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x79, offset 0x24f - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7a, offset 0x251 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x7b, offset 0x259 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - // Block 0x7c, offset 0x25c - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7d, offset 0x263 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7e, offset 0x266 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7f, offset 0x26c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x80, offset 0x26e - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x81, offset 0x271 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x82, offset 0x273 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x83, offset 0x275 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x84, offset 0x277 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x85, offset 0x279 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x86, offset 0x27c - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x87, offset 0x27e - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x88, offset 0x280 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x89, offset 0x282 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8a, offset 0x28f - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x8b, offset 0x299 - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x8c, offset 0x29b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8d, offset 0x29d - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x8e, offset 0x2a3 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x8f, offset 0x2a5 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x90, offset 0x2a8 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 91: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 91 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 93 blocks, 5952 entries, 11904 bytes -// The third block is the zero block. -var nfkcValues = [5952]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, - // Block 0x5, offset 0x140 - 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2dee, 0x185: 0x2df4, - 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, - 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x42a5, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x425a, 0x285: 0x447b, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, - 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, - 0x306: 0xa000, 0x307: 0x3709, - 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x3733, 0x342: 0x37b7, - 0x350: 0x370f, 0x351: 0x3793, - 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, - 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, - 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, - 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, - 0x378: 0x3787, 0x379: 0x380b, - // Block 0xe, offset 0x380 - 0x387: 0x1d61, - 0x391: 0x812d, - 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, - 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, - 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, - 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, - 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, - 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, - 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, - 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x812d, - 0x3f0: 0x811e, 0x3f5: 0x1d84, - 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, - 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, - 0x412: 0x2d4e, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d56, - 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, - 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, - 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, - 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, - 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, - 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, - 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, - 0x46a: 0x01fd, - 0x478: 0x020c, - // Block 0x12, offset 0x480 - 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, - 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, - 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, - 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, - 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, - 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, - 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132, - 0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132, - 0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132, - 0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132, - 0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132, - 0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132, - 0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132, - 0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132, - 0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132, - 0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132, - 0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d, - // Block 0x14, offset 0x500 - 0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2, - 0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0, - 0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df, - 0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85, - 0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93, - 0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c, - 0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370, - 0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a, - 0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de, - 0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7, - 0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc, - // Block 0x15, offset 0x540 - 0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a, - 0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e, - 0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9, - 0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465, - 0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26, - 0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791, - 0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b, - 0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4, - 0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f, - 0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49, - 0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519, - // Block 0x16, offset 0x580 - 0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532, - 0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541, - 0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582, - 0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6, - 0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7, - 0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f, - 0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15, - 0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23, - 0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a, - 0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c, - 0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70, - 0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1, - 0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf, - 0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6, - 0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5, - 0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11, - 0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73, - 0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a, - 0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578, - 0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a, - // Block 0x18, offset 0x600 - 0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e, - 0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6, - 0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c, - 0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0, - 0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00, - 0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966, - 0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8, - 0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6, - 0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38, - 0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30, - 0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40, - // Block 0x19, offset 0x640 - 0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60, - 0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58, - 0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a, - 0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8, - 0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70, - 0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996, - 0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2, - 0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916, - 0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a, - 0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c, - 0x67c: 0x4870, 0x67d: 0x4342, - // Block 0x1a, offset 0x680 - 0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac, - 0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee, - 0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0, - 0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2, - 0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134, - 0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a, - 0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88, - 0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a, - 0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98, - 0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee, - 0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0, - 0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa, - 0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af, - 0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10, - 0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e, - 0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec, - 0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b, - 0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081, - 0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8, - 0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318, - 0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c, - // Block 0x1c, offset 0x700 - 0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8, - 0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051, - 0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053, - 0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d, - 0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065, - 0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8, - 0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075, - 0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b, - 0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215, - 0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98, - 0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0, - // Block 0x1d, offset 0x740 - 0x740: 0x0463, 0x745: 0x0049, - 0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095, - 0x750: 0x222e, 0x751: 0x223a, - 0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8, - 0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0, - 0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963, - 0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071, - 0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b, - 0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62, - 0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50, - 0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b, - // Block 0x1e, offset 0x780 - 0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000, - 0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b, - 0x78d: 0xa000, - 0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29, - 0x7a4: 0xa000, 0x7a5: 0xa000, - 0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a, - 0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45, - 0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000, - 0x7bc: 0xa000, 0x7bd: 0xa000, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d, - 0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b, - 0x7d1: 0xa000, - 0x7d2: 0xa000, - 0x7e2: 0xa000, - 0x7e8: 0xa000, 0x7e9: 0xa000, - 0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5, - 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000, - // Block 0x20, offset 0x800 - 0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029, - 0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882, - 0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894, - 0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c, - 0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84, - 0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a, - // Block 0x21, offset 0x840 - 0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8, - 0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb, - 0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60, - 0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78, - 0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8, - 0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10, - 0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28, - 0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40, - 0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58, - 0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d, - 0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055, - // Block 0x22, offset 0x880 - 0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713, - 0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab, - 0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803, - 0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887, - 0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db, - 0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb, - 0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b, - 0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7, - 0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33, - 0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63, - 0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb, - 0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b, - 0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb, - 0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3, - 0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f, - 0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83, - 0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7, - 0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f, - 0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf, - 0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f, - 0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187, - // Block 0x24, offset 0x900 - 0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3, - 0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb, - 0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b, - 0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b, - 0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf, - 0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f, - 0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f, - 0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503, - 0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f, - 0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f, - 0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593, - // Block 0x25, offset 0x940 - 0x946: 0xa000, 0x94b: 0xa000, - 0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000, - 0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000, - 0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000, - 0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60, - 0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78, - 0x96f: 0xa000, - 0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000, - 0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000, - 0x97c: 0x3fc0, 0x97d: 0x3fc8, - // Block 0x26, offset 0x980 - 0x994: 0x3f00, - 0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000, - 0x99e: 0x3fd0, 0x99f: 0x26b4, - 0x9a6: 0xa000, - 0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000, - 0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000, - 0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000, - 0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040, - 0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050, - 0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060, - 0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080, - 0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0, - 0x9ef: 0xa000, - 0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8, - 0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0, - 0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9, - // Block 0x28, offset 0xa00 - 0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337, - 0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f, - 0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9, - 0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed, - 0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11, - 0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35, - 0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef, - 0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403, - 0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383, - 0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b, - 0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab, - // Block 0x29, offset 0xa40 - 0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb, - 0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7, - 0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3, - 0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7, - 0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff, - 0xa5e: 0x098f, 0xa5f: 0x072f, - // Block 0x2a, offset 0xa80 - 0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072, - 0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096, - 0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741, - 0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780, - 0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac, - 0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108, - 0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0, - 0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e, - 0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144, - 0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114, - 0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6, - // Block 0x2b, offset 0xac0 - 0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03, - 0xac6: 0x0ca7, 0xac7: 0x10c7, - 0xad0: 0x1bc4, 0xad1: 0x18a9, - 0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb, - 0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3, - 0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327, - 0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b, - 0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20, - 0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50, - 0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88, - 0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58, - // Block 0x2c, offset 0xb00 - 0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af, - 0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f, - 0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b, - 0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f, - 0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f, - 0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b, - 0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f, - 0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b, - 0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee, - 0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900, - 0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912, - // Block 0x2d, offset 0xb40 - 0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11, - 0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0, - 0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3, - 0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7, - 0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f, - 0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b, - 0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543, - 0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b, - 0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f, - 0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597, - 0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3, - // Block 0x2e, offset 0xb80 - 0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a, - 0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2, - 0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6, - 0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c, - 0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6, - 0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da, - 0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8, - 0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51, - 0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920, - 0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06, - 0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c, - 0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90, - 0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6, - 0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984, - 0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07, - 0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4, - 0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2, - 0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a, - 0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47, - 0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701, - 0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0, - // Block 0x30, offset 0xc00 - 0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969, - 0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35, - 0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c, - 0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9, - 0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0, - 0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40, - 0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996, - 0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad, - 0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38, - 0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b, - 0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984, - // Block 0x31, offset 0xc40 - 0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd, - 0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e, - 0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e, - 0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990, - 0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4, - 0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee, - 0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186, - 0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0, - 0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258, - 0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e, - 0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10, - // Block 0x32, offset 0xc80 - 0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb, - 0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943, - 0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3, - 0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43, - 0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87, - 0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283, - 0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f, - 0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853, - 0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b, - 0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b, - 0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b, - 0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f, - 0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7, - 0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127, - 0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357, - 0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873, - 0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3, - 0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b, - 0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57, - 0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb, - 0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b, - // Block 0x34, offset 0xd00 - 0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f, - 0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3, - 0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83, - 0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193, - 0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b, - 0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b, - 0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f, - 0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b, - 0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753, - 0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777, - 0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73, - // Block 0x35, offset 0xd40 - 0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3, - 0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47, - 0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af, - 0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df, - 0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817, - 0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3, - 0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457, - 0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b, - 0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27, - 0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f, - 0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b, - // Block 0x36, offset 0xd80 - 0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03, - 0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27, - 0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af, - 0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3, - 0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb, - 0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353, - 0xda5: 0x1407, 0xda6: 0x1433, - 0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7, - 0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897, - 0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93, - 0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b, - 0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f, - 0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f, - 0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f, - 0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff, - 0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f, - 0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f, - 0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3, - 0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7, - 0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963, - 0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f, - // Block 0x38, offset 0xe00 - 0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b, - 0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb, - 0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf, - 0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f, - 0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013, - 0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f, - 0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b, - 0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b, - 0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb, - 0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343, - 0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f, - // Block 0x39, offset 0xe40 - 0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b, - 0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b, - 0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2, - 0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809, - 0xe58: 0x1617, 0xe59: 0x1627, - // Block 0x3a, offset 0xe80 - 0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f, - 0xe86: 0x1a5f, - 0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70, - 0xe9d: 0x4390, - 0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221, - 0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017, - 0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e, - 0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e, - 0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2, - 0xebc: 0x43ae, 0xebe: 0x43b4, - // Block 0x3b, offset 0xec0 - 0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc, - 0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378, - 0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299, - 0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5, - 0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab, - 0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8, - 0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c, - 0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2, - 0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1, - 0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4, - 0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7, - // Block 0x3c, offset 0xf00 - 0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd, - 0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9, - 0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5, - 0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1, - 0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de, - 0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7, - 0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed, - 0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308, - 0xf30: 0x4468, 0xf31: 0x4468, - // Block 0x3d, offset 0xf40 - 0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6, - 0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f, - 0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc, - 0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d, - 0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9, - 0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c, - 0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0, - 0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302, - // Block 0x3e, offset 0xf80 - 0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89, - 0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb, - 0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded, - 0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29, - 0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b, - 0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9, - 0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00, - 0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32, - 0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50, - 0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e, - 0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf, - 0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd, - 0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff, - 0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022, - 0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c, - 0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6, - 0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7, - 0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6, - 0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8, - 0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10, - 0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96, - 0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1, - 0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027, - 0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1, - 0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e, - 0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5, - 0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29, - 0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60, - 0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9, - 0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05, - 0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d, - // Block 0x41, offset 0x1040 - 0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64, - 0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91, - 0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe, - 0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff, - 0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031, - 0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4, - 0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92, - 0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0, - 0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1, - 0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74, - 0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33, - // Block 0x42, offset 0x1080 - 0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba, - 0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88, - 0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1, - 0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74, - 0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f, - 0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd, - 0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d, - 0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88, - 0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b, - 0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb, - 0x10bc: 0x4408, 0x10bd: 0x4408, - // Block 0x43, offset 0x10c0 - 0x10d0: 0x2311, 0x10d1: 0x2326, - 0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357, - 0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4, - 0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5, - 0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc, - 0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430, - 0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c, - 0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f, - 0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499, - // Block 0x44, offset 0x1100 - 0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df, - 0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e, - 0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c, - 0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548, - 0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c, - 0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365, - 0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406, - 0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e, - 0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca, - 0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7, - 0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f, - // Block 0x45, offset 0x1140 - 0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b, - 0x1146: 0x23c0, 0x1147: 0x2556, - 0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da, - 0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc, - 0x117c: 0x27d1, - // Block 0x46, offset 0x1180 - 0x1190: 0x0019, 0x1191: 0x0483, - 0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf, - 0x1198: 0x04c3, 0x1199: 0x1b5c, - 0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132, - 0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d, - 0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132, - 0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011, - 0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab, - 0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7, - 0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269, - 0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483, - 0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003, - 0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7, - 0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b, - 0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009, - 0x11ea: 0x000b, 0x11eb: 0x0041, - 0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4, - 0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e, - 0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a, - // Block 0x48, offset 0x1200 - 0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456, - 0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462, - 0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c, - 0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242, - 0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248, - 0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b, - 0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251, - 0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a, - 0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260, - 0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263, - 0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266, - // Block 0x49, offset 0x1240 - 0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c, - 0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f, - 0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275, - 0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278, - 0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e, - 0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281, - 0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287, - 0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d, - 0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00, - 0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82, - 0x127c: 0x1f82, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b, - 0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097, - 0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3, - 0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af, - 0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb, - 0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f, - 0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7, - 0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f, - 0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb, - 0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503, - 0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f, - 0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547, - 0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f, - 0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583, - 0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7, - 0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b, - 0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327, - 0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b, - 0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337, - 0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f, - 0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b, - // Block 0x4c, offset 0x1300 - 0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf, - 0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7, - 0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff, - 0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23, - 0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35, - 0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264, - 0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b, - 0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473, - // Block 0x4d, offset 0x1340 - 0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d, - 0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085, - 0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091, - 0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d, - 0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9, - 0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5, - 0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176, - 0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188, - 0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a, - 0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9, - 0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5, - // Block 0x4e, offset 0x1380 - 0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0, - 0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209, - 0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027, - 0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033, - 0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b, - 0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023, - 0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f, - 0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027, - 0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033, - 0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b, - 0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a, - 0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e, - 0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263, - 0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e, - 0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4, - 0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, - 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290, - 0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, - 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, - 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272, - // Block 0x50, offset 0x1400 - 0x1402: 0x0248, - 0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e, - 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263, - 0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e, - 0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4, - 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, - 0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, - 0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, - 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, - 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, - 0x143c: 0x0293, 0x143e: 0x02cc, - // Block 0x51, offset 0x1440 - 0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a, - 0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e, - 0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263, - 0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e, - 0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272, - 0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251, - 0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, - 0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, - 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242, - 0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, - // Block 0x52, offset 0x1480 - 0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8, - 0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927, - 0x1490: 0x1a8c, 0x1491: 0x1a90, - 0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8, - 0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0, - 0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8, - 0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0, - 0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1, - 0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d, - 0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059, - 0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503, - 0x14d0: 0x0c0f, 0x14d1: 0x0a47, - 0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff, - 0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b, - 0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b, - 0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf, - 0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b, - 0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43, - 0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443, - // Block 0x54, offset 0x1500 - 0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757, - 0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773, - 0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3, - 0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf, - 0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff, - 0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f, - 0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867, - 0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af, - 0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93, - 0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3, - 0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917, - // Block 0x55, offset 0x1540 - 0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f, - 0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983, - 0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf, - 0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3, - 0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef, - 0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23, - 0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37, - 0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63, - 0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f, - 0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692, - 0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7, - // Block 0x56, offset 0x1580 - 0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb, - 0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f, - 0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6, - 0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9, - 0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83, - 0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3, - 0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf, - 0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7, - 0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f, - 0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b, - 0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87, - 0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb, - 0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7, - 0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663, - 0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd, - 0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7, - 0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b, - 0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f, - 0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7, - 0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700, - 0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb, - // Block 0x58, offset 0x1600 - 0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23, - 0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53, - 0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714, - 0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b, - 0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719, - 0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728, - 0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37, - 0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57, - 0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737, - 0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741, - 0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b, - // Block 0x59, offset 0x1640 - 0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff, - 0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637, - 0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f, - 0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093, - 0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782, - 0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3, - 0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7, - 0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133, - 0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa, - 0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4, - 0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197, - // Block 0x5a, offset 0x1680 - 0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7, - 0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7, - 0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b, - 0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd, - 0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f, - 0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f, - 0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273, - 0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677, - 0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7, - 0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb, - 0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5, - 0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa, - 0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b, - 0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7, - 0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665, - 0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f, - 0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477, - 0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693, - 0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb, - 0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b, - 0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b, - // Block 0x5c, offset 0x1700 - 0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567, - 0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7, - 0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7, - 0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef, - 0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868, -} - -// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61, - 0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, - 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, - 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, - 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, - // Block 0x5, offset 0x140 - 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, - 0x14d: 0x8a, - 0x15c: 0x8b, 0x15f: 0x8c, - 0x162: 0x8d, 0x164: 0x8e, - 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, - 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11, - 0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19, - // Block 0x6, offset 0x180 - 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d, - 0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0, - 0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1, - 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, - 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, - 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27, - 0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f, - // Block 0x8, offset 0x200 - 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, - 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, - 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, - 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, - 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, - // Block 0x9, offset 0x240 - 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, - 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, - 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, - 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, - 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, - 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, - 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, - 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, - // Block 0xa, offset 0x280 - 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, - 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, - 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, - 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, - 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, - 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, - 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, - 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, - 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, - 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, - 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, - // Block 0xc, offset 0x300 - 0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33, - 0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b, - 0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43, - 0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a, - // Block 0xd, offset 0x340 - 0x347: 0xc6, - 0x34b: 0xc7, 0x34d: 0xc8, - 0x368: 0xc9, 0x36b: 0xca, - // Block 0xe, offset 0x380 - 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, - 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1, - 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, - 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, - 0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc, - 0x3b0: 0xd7, 0x3b5: 0xdd, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xde, 0x3ec: 0xdf, - // Block 0x10, offset 0x400 - 0x432: 0xe0, - // Block 0x11, offset 0x440 - 0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3, - 0x449: 0xe4, - 0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec, - 0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c, - // Block 0x12, offset 0x480 - 0x480: 0xf3, - 0x4a3: 0xf4, 0x4a5: 0xf5, - 0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7, - 0x4c8: 0x51, 0x4c9: 0xf8, - // Block 0x14, offset 0x500 - 0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59, - 0x528: 0x5a, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 158 entries, 316 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b} - -// nfkcSparseValues: 869 entries, 3476 bytes -var nfkcSparseValues = [869]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x4278, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4264, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x425a, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x4291, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x221c, lo: 0xbc, hi: 0xbc}, - {value: 0x2210, lo: 0xbd, hi: 0xbd}, - {value: 0x22b2, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x426e, lo: 0x98, hi: 0x98}, - {value: 0x4273, lo: 0x99, hi: 0x9a}, - {value: 0x4296, lo: 0x9b, hi: 0x9b}, - {value: 0x425f, lo: 0x9c, hi: 0x9c}, - {value: 0x4282, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x0167, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - // Block 0xc, offset 0x6f - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x74 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x76 - {value: 0x0000, lo: 0x10}, - {value: 0x8132, lo: 0x94, hi: 0xa1}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xa9, hi: 0xa9}, - {value: 0x8132, lo: 0xaa, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xaf}, - {value: 0x8116, lo: 0xb0, hi: 0xb0}, - {value: 0x8117, lo: 0xb1, hi: 0xb1}, - {value: 0x8118, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb5}, - {value: 0x812d, lo: 0xb6, hi: 0xb6}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x812d, lo: 0xb9, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbf}, - // Block 0xf, offset 0x87 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x8f - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x96 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x99 - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - // Block 0x13, offset 0xa0 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0xa4 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0xa8 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0xaa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0xac - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0xb5 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xc0 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xc5 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xc8 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xd2 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xd5 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xdc - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xe4 - {value: 0x0000, lo: 0x03}, - {value: 0x2621, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xe8 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xea - {value: 0x0000, lo: 0x02}, - {value: 0x2636, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x23, offset 0xed - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x2628, lo: 0x9c, hi: 0x9c}, - {value: 0x262f, lo: 0x9d, hi: 0x9d}, - // Block 0x24, offset 0xf1 - {value: 0x0000, lo: 0x05}, - {value: 0x030b, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xf7 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x45f4, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x45ff, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0x108 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0x114 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0x116 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0x11c - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0x11e - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2b, offset 0x120 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x122 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x124 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x126 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x128 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x12a - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x12d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x130 - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x132 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x135 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x138 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x13c - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x37, offset 0x141 - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x14a - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x14c - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x14f - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x151 - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x15c - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3d, offset 0x167 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x429b, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1873, lo: 0xa5, hi: 0xa5}, - {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2691, lo: 0xb3, hi: 0xb3}, - {value: 0x27fe, lo: 0xb4, hi: 0xb4}, - {value: 0x2698, lo: 0xb6, hi: 0xb6}, - {value: 0x2808, lo: 0xb7, hi: 0xb7}, - {value: 0x186d, lo: 0xbc, hi: 0xbc}, - {value: 0x4269, lo: 0xbe, hi: 0xbe}, - // Block 0x3e, offset 0x175 - {value: 0x0002, lo: 0x0d}, - {value: 0x1933, lo: 0x87, hi: 0x87}, - {value: 0x1930, lo: 0x88, hi: 0x88}, - {value: 0x1870, lo: 0x89, hi: 0x89}, - {value: 0x298e, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x0467, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x3f, offset 0x183 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x0467, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x1999, lo: 0xa8, hi: 0xa8}, - // Block 0x40, offset 0x193 - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x41, offset 0x1a1 - {value: 0x0007, lo: 0x06}, - {value: 0x2180, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x42, offset 0x1a8 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x43, offset 0x1ae - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0x269f, lo: 0xac, hi: 0xad}, - {value: 0x26a6, lo: 0xaf, hi: 0xaf}, - {value: 0x281c, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x44, offset 0x1bd - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x45, offset 0x1c1 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x46, offset 0x1c3 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x47, offset 0x1c7 - {value: 0x0000, lo: 0x01}, - {value: 0x299b, lo: 0x8c, hi: 0x8c}, - // Block 0x48, offset 0x1c9 - {value: 0x0263, lo: 0x02}, - {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, - {value: 0x192d, lo: 0xb5, hi: 0xb6}, - // Block 0x49, offset 0x1cc - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x4a, offset 0x1ce - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4b, offset 0x1d1 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4c, offset 0x1d3 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4d, offset 0x1d6 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4e, offset 0x1d8 - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x4f, offset 0x1da - {value: 0x0000, lo: 0x01}, - {value: 0x162f, lo: 0xb3, hi: 0xb3}, - // Block 0x50, offset 0x1dc - {value: 0x0004, lo: 0x0b}, - {value: 0x1597, lo: 0x80, hi: 0x82}, - {value: 0x15af, lo: 0x83, hi: 0x83}, - {value: 0x15c7, lo: 0x84, hi: 0x85}, - {value: 0x15d7, lo: 0x86, hi: 0x89}, - {value: 0x15eb, lo: 0x8a, hi: 0x8c}, - {value: 0x15ff, lo: 0x8d, hi: 0x8d}, - {value: 0x1607, lo: 0x8e, hi: 0x8e}, - {value: 0x160f, lo: 0x8f, hi: 0x90}, - {value: 0x161b, lo: 0x91, hi: 0x93}, - {value: 0x162b, lo: 0x94, hi: 0x94}, - {value: 0x1633, lo: 0x95, hi: 0x95}, - // Block 0x51, offset 0x1e8 - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xae}, - {value: 0x812f, lo: 0xaf, hi: 0xaf}, - {value: 0x04b3, lo: 0xb6, hi: 0xb6}, - {value: 0x0887, lo: 0xb8, hi: 0xba}, - // Block 0x52, offset 0x1f2 - {value: 0x0006, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4a41, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4a4d, lo: 0xba, hi: 0xbf}, - // Block 0x53, offset 0x1fc - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x54, offset 0x1ff - {value: 0x0000, lo: 0x03}, - {value: 0x020f, lo: 0x9c, hi: 0x9c}, - {value: 0x0212, lo: 0x9d, hi: 0x9d}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x55, offset 0x203 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x56, offset 0x205 - {value: 0x0000, lo: 0x01}, - {value: 0x163b, lo: 0xb0, hi: 0xb0}, - // Block 0x57, offset 0x207 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x58, offset 0x209 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x59, offset 0x20b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x5a, offset 0x20e - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5b, offset 0x210 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5c, offset 0x212 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5d, offset 0x214 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5e, offset 0x216 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x5f, offset 0x21c - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x60, offset 0x21f - {value: 0x0008, lo: 0x03}, - {value: 0x1637, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1643, lo: 0x9f, hi: 0x9f}, - // Block 0x61, offset 0x223 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x62, offset 0x225 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x63, offset 0x22c - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x64, offset 0x232 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x65, offset 0x238 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x66, offset 0x240 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x67, offset 0x246 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x68, offset 0x24c - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x69, offset 0x252 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x6a, offset 0x256 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6b, offset 0x258 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6c, offset 0x25a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6d, offset 0x25c - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6e, offset 0x25e - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x6f, offset 0x264 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x70, offset 0x267 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x71, offset 0x26a - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x72, offset 0x272 - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x73, offset 0x279 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x74, offset 0x27c - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x75, offset 0x27f - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x76, offset 0x281 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x77, offset 0x289 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - // Block 0x78, offset 0x28c - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x79, offset 0x293 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7a, offset 0x296 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7b, offset 0x29c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7c, offset 0x29e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7d, offset 0x2a0 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x7e, offset 0x2a3 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x7f, offset 0x2a5 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x80, offset 0x2a7 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x81, offset 0x2a9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x82, offset 0x2ab - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x83, offset 0x2ae - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x84, offset 0x2b0 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x85, offset 0x2b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x86, offset 0x2b4 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x87, offset 0x2c1 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x88, offset 0x2cb - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x89, offset 0x2cd - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8a, offset 0x2cf - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x8b, offset 0x2d3 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x8c, offset 0x2d8 - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x8d, offset 0x2e4 - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x8e, offset 0x2e9 - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x8f, offset 0x2f2 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x90, offset 0x2f8 - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x91, offset 0x2fd - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x92, offset 0x301 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x93, offset 0x306 - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x94, offset 0x30a - {value: 0x0003, lo: 0x0f}, - {value: 0x01b8, lo: 0x80, hi: 0x80}, - {value: 0x045f, lo: 0x81, hi: 0x81}, - {value: 0x01bb, lo: 0x82, hi: 0x9a}, - {value: 0x045b, lo: 0x9b, hi: 0x9b}, - {value: 0x01c7, lo: 0x9c, hi: 0x9c}, - {value: 0x01d0, lo: 0x9d, hi: 0x9d}, - {value: 0x01d6, lo: 0x9e, hi: 0x9e}, - {value: 0x01fa, lo: 0x9f, hi: 0x9f}, - {value: 0x01eb, lo: 0xa0, hi: 0xa0}, - {value: 0x01e8, lo: 0xa1, hi: 0xa1}, - {value: 0x0173, lo: 0xa2, hi: 0xb2}, - {value: 0x0188, lo: 0xb3, hi: 0xb3}, - {value: 0x01a6, lo: 0xb4, hi: 0xba}, - {value: 0x045f, lo: 0xbb, hi: 0xbb}, - {value: 0x01bb, lo: 0xbc, hi: 0xbf}, - // Block 0x95, offset 0x31a - {value: 0x0003, lo: 0x0d}, - {value: 0x01c7, lo: 0x80, hi: 0x94}, - {value: 0x045b, lo: 0x95, hi: 0x95}, - {value: 0x01c7, lo: 0x96, hi: 0x96}, - {value: 0x01d0, lo: 0x97, hi: 0x97}, - {value: 0x01d6, lo: 0x98, hi: 0x98}, - {value: 0x01fa, lo: 0x99, hi: 0x99}, - {value: 0x01eb, lo: 0x9a, hi: 0x9a}, - {value: 0x01e8, lo: 0x9b, hi: 0x9b}, - {value: 0x0173, lo: 0x9c, hi: 0xac}, - {value: 0x0188, lo: 0xad, hi: 0xad}, - {value: 0x01a6, lo: 0xae, hi: 0xb4}, - {value: 0x045f, lo: 0xb5, hi: 0xb5}, - {value: 0x01bb, lo: 0xb6, hi: 0xbf}, - // Block 0x96, offset 0x328 - {value: 0x0003, lo: 0x0d}, - {value: 0x01d9, lo: 0x80, hi: 0x8e}, - {value: 0x045b, lo: 0x8f, hi: 0x8f}, - {value: 0x01c7, lo: 0x90, hi: 0x90}, - {value: 0x01d0, lo: 0x91, hi: 0x91}, - {value: 0x01d6, lo: 0x92, hi: 0x92}, - {value: 0x01fa, lo: 0x93, hi: 0x93}, - {value: 0x01eb, lo: 0x94, hi: 0x94}, - {value: 0x01e8, lo: 0x95, hi: 0x95}, - {value: 0x0173, lo: 0x96, hi: 0xa6}, - {value: 0x0188, lo: 0xa7, hi: 0xa7}, - {value: 0x01a6, lo: 0xa8, hi: 0xae}, - {value: 0x045f, lo: 0xaf, hi: 0xaf}, - {value: 0x01bb, lo: 0xb0, hi: 0xbf}, - // Block 0x97, offset 0x336 - {value: 0x0003, lo: 0x0d}, - {value: 0x01eb, lo: 0x80, hi: 0x88}, - {value: 0x045b, lo: 0x89, hi: 0x89}, - {value: 0x01c7, lo: 0x8a, hi: 0x8a}, - {value: 0x01d0, lo: 0x8b, hi: 0x8b}, - {value: 0x01d6, lo: 0x8c, hi: 0x8c}, - {value: 0x01fa, lo: 0x8d, hi: 0x8d}, - {value: 0x01eb, lo: 0x8e, hi: 0x8e}, - {value: 0x01e8, lo: 0x8f, hi: 0x8f}, - {value: 0x0173, lo: 0x90, hi: 0xa0}, - {value: 0x0188, lo: 0xa1, hi: 0xa1}, - {value: 0x01a6, lo: 0xa2, hi: 0xa8}, - {value: 0x045f, lo: 0xa9, hi: 0xa9}, - {value: 0x01bb, lo: 0xaa, hi: 0xbf}, - // Block 0x98, offset 0x344 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x99, offset 0x34a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x9a, offset 0x34c - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x9b, offset 0x34f - {value: 0x0002, lo: 0x09}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1951, lo: 0x8a, hi: 0x8a}, - {value: 0x1981, lo: 0x8b, hi: 0x8b}, - {value: 0x199c, lo: 0x8c, hi: 0x8c}, - {value: 0x19a2, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, - {value: 0x19ae, lo: 0x8f, hi: 0x8f}, - {value: 0x197b, lo: 0xaa, hi: 0xaa}, - {value: 0x197e, lo: 0xab, hi: 0xab}, - // Block 0x9c, offset 0x359 - {value: 0x0000, lo: 0x01}, - {value: 0x193f, lo: 0x90, hi: 0x90}, - // Block 0x9d, offset 0x35b - {value: 0x0028, lo: 0x09}, - {value: 0x2862, lo: 0x80, hi: 0x80}, - {value: 0x2826, lo: 0x81, hi: 0x81}, - {value: 0x2830, lo: 0x82, hi: 0x82}, - {value: 0x2844, lo: 0x83, hi: 0x84}, - {value: 0x284e, lo: 0x85, hi: 0x86}, - {value: 0x283a, lo: 0x87, hi: 0x87}, - {value: 0x2858, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once - -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 53KB (54226 bytes) diff --git a/backend/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/backend/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go deleted file mode 100644 index cb7239c4..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +++ /dev/null @@ -1,7694 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 - -package norm - -import "sync" - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "11.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [55]uint8{ - 0, 1, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, - 84, 91, 103, 107, 118, 122, 129, 130, - 132, 202, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x186D - firstCCC = 0x2C9E - endMulti = 0x2F60 - firstLeadingCCC = 0x49AE - firstCCCZeroExcept = 0x4A78 - firstStarterWithNLead = 0x4A9F - lastDecomp = 0x4AA1 - maxDecomp = 0x8000 -) - -// decomps: 19105 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, - 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, - 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, - 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, - 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, - 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, - 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, - 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, - 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, - 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, - 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, - 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, - 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, - 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, - 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, - 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, - 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, - 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, - // Bytes 200 - 23f - 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, - 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, - 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, - 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, - 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, - 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, - 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, - 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, - 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, - 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, - 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, - 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, - 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, - 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, - 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, - 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, - 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, - 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, - 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, - 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, - 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, - 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, - 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, - 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, - 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, - 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, - 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, - 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, - 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, - // Bytes 300 - 33f - 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, - 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, - 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, - 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, - 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, - 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, - 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, - 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, - // Bytes 340 - 37f - 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, - 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, - 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, - 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, - 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, - 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, - 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, - 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, - // Bytes 380 - 3bf - 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, - 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, - 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, - 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, - 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, - 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, - 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, - 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, - // Bytes 3c0 - 3ff - 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, - 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, - 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, - 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, - 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, - 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, - 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, - 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, - // Bytes 400 - 43f - 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, - 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, - 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, - 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, - 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, - 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, - 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, - 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, - // Bytes 440 - 47f - 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, - 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, - 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, - 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, - 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, - 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, - 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, - 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, - // Bytes 480 - 4bf - 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, - 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, - 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, - 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, - 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, - 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, - 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, - 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, - // Bytes 4c0 - 4ff - 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, - 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, - 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, - 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, - 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, - 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, - 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, - 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, - // Bytes 500 - 53f - 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, - 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, - 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, - 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, - 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, - 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, - 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, - 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, - // Bytes 540 - 57f - 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, - 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, - 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, - 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, - 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, - 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, - 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, - 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, - // Bytes 580 - 5bf - 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, - 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, - 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, - 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, - 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, - 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, - 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, - 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, - // Bytes 5c0 - 5ff - 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, - 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, - 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, - 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, - 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, - 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, - 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, - 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, - // Bytes 600 - 63f - 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, - 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, - 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, - 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, - 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, - 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, - 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, - 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, - // Bytes 640 - 67f - 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, - 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, - 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, - 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, - 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, - 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, - 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, - 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, - // Bytes 680 - 6bf - 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, - 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, - 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, - 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, - 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, - 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, - 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, - 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, - // Bytes 6c0 - 6ff - 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, - 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, - 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, - 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, - 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, - 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, - 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, - 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, - // Bytes 700 - 73f - 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, - 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, - 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, - 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, - 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, - 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, - 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, - 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, - // Bytes 740 - 77f - 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, - 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, - 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, - 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, - 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, - 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, - 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, - 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, - // Bytes 780 - 7bf - 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, - 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, - 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, - 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, - 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, - 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, - 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, - 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, - // Bytes 7c0 - 7ff - 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, - 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, - 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, - 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, - 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, - 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, - 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, - 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, - // Bytes 800 - 83f - 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, - 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, - 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, - 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, - 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, - 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, - 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, - 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, - // Bytes 840 - 87f - 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, - 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, - 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, - 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, - 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, - 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, - 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, - 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, - // Bytes 880 - 8bf - 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, - 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, - 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, - 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, - 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, - 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, - 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, - 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, - // Bytes 8c0 - 8ff - 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, - 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, - 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, - 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, - 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, - 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, - 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, - 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, - // Bytes 900 - 93f - 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, - 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, - 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, - 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, - 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, - 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, - 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, - 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, - // Bytes 940 - 97f - 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, - 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, - 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, - 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, - 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, - 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, - 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, - 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, - // Bytes 980 - 9bf - 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, - 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, - 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, - 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, - 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, - 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, - 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, - 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, - // Bytes 9c0 - 9ff - 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, - 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, - 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, - 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, - 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, - 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, - 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, - 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, - // Bytes a00 - a3f - 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, - 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, - 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, - 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, - 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, - 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, - 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, - 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, - // Bytes a40 - a7f - 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, - 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, - 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, - 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, - 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, - 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, - 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, - 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, - // Bytes a80 - abf - 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, - 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, - 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, - 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, - 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, - 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, - 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, - 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, - // Bytes ac0 - aff - 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, - 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, - 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, - 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, - 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, - 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, - 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, - 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, - // Bytes b00 - b3f - 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, - 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, - 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, - 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, - 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, - 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, - 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, - 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, - // Bytes b40 - b7f - 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, - 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, - 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, - 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, - 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, - 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, - 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, - 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, - // Bytes b80 - bbf - 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, - 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, - 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, - 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, - 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, - 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, - 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, - 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, - // Bytes bc0 - bff - 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, - 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, - 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, - 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, - 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, - 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, - 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, - 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, - // Bytes c00 - c3f - 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, - 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, - 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, - 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, - 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, - 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, - 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, - 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, - // Bytes c40 - c7f - 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, - 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, - 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, - 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, - 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, - 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, - 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, - 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, - // Bytes c80 - cbf - 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, - 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, - 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, - 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, - 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, - 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, - 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, - 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, - // Bytes cc0 - cff - 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, - 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, - 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, - 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, - 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, - 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, - 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, - 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, - // Bytes d00 - d3f - 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, - 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, - 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, - 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, - 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, - 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, - 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, - 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, - // Bytes d40 - d7f - 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, - 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, - 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, - 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, - 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, - 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, - 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, - 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, - // Bytes d80 - dbf - 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, - 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, - 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, - 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, - 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, - 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, - 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, - 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, - // Bytes dc0 - dff - 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, - 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, - 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, - 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, - 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, - 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, - 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, - 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, - // Bytes e00 - e3f - 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, - 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, - 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, - 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, - 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, - 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, - 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, - 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, - // Bytes e40 - e7f - 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, - 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, - 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, - 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, - 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, - 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, - 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, - 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, - // Bytes e80 - ebf - 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, - 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, - 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, - 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, - 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, - 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, - 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, - 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, - // Bytes ec0 - eff - 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, - 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, - 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, - 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, - 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, - 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, - 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, - 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, - // Bytes f00 - f3f - 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, - 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, - 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, - 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, - 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, - 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, - 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, - 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, - // Bytes f40 - f7f - 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, - 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, - 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, - 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, - 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, - 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, - 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, - 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, - // Bytes f80 - fbf - 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, - 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, - 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, - 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, - 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, - 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, - 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, - 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, - // Bytes fc0 - fff - 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, - 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, - 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, - 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, - 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, - 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, - 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, - 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, - // Bytes 1000 - 103f - 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, - 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, - 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, - 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, - 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, - 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, - 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, - 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, - // Bytes 1040 - 107f - 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, - 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, - 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, - 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, - 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, - 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, - 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, - 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, - // Bytes 1080 - 10bf - 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, - 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, - 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, - 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, - 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, - 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, - 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, - 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, - // Bytes 10c0 - 10ff - 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, - 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, - 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, - 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, - 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, - 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, - 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, - 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, - // Bytes 1100 - 113f - 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, - 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, - 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, - 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, - 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, - 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, - 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, - 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, - // Bytes 1140 - 117f - 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, - 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, - 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, - 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, - 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, - 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, - 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, - 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, - // Bytes 1180 - 11bf - 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, - 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, - 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, - 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, - 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, - 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, - 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, - 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, - // Bytes 11c0 - 11ff - 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, - 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, - 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, - 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, - 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, - 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, - 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, - 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, - // Bytes 1200 - 123f - 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, - 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, - 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, - 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, - 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, - 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, - 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, - 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, - // Bytes 1240 - 127f - 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, - 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, - 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, - 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, - 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, - 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, - 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, - 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, - // Bytes 1280 - 12bf - 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, - 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, - 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, - 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, - 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, - 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, - 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, - 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, - // Bytes 12c0 - 12ff - 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, - 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, - 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, - 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, - 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, - 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, - 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, - 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, - // Bytes 1300 - 133f - 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, - 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, - 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, - 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, - 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, - 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, - 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, - 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, - // Bytes 1340 - 137f - 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, - 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, - 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, - 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, - 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, - 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, - 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, - 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, - // Bytes 1380 - 13bf - 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, - 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, - 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, - 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, - 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, - 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, - 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, - 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, - // Bytes 13c0 - 13ff - 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, - 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, - 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, - 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, - 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, - 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, - 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, - 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, - // Bytes 1400 - 143f - 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, - 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, - 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, - 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, - 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, - 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, - 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, - 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, - // Bytes 1440 - 147f - 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, - 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, - 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, - 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, - 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, - 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, - 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, - 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, - // Bytes 1480 - 14bf - 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, - 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, - 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, - 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, - 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, - 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, - 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, - 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, - // Bytes 14c0 - 14ff - 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, - 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, - 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, - 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, - 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, - 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, - 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, - 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, - // Bytes 1500 - 153f - 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, - 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, - 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, - 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, - 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, - 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, - 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, - 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, - // Bytes 1540 - 157f - 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, - 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, - 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, - 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, - 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, - 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, - 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, - 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, - // Bytes 1580 - 15bf - 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, - 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, - 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, - 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, - 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, - 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, - 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, - 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, - // Bytes 15c0 - 15ff - 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, - 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, - 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, - 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, - 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, - 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, - 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, - 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, - // Bytes 1600 - 163f - 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, - 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, - 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, - 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, - 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, - 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, - 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, - 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, - // Bytes 1640 - 167f - 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, - 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, - 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, - 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, - 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, - 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, - 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, - 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, - // Bytes 1680 - 16bf - 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, - 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, - 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, - 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, - 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, - 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, - 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, - 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, - // Bytes 16c0 - 16ff - 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, - 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, - 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, - 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, - 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, - 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, - 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, - 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, - // Bytes 1700 - 173f - 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, - 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, - 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, - 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, - 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, - 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, - 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, - 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, - // Bytes 1740 - 177f - 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, - 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, - 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, - 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, - 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, - 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, - 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, - 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, - // Bytes 1780 - 17bf - 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, - 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, - 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, - 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, - 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, - 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, - 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, - 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, - // Bytes 17c0 - 17ff - 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, - 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, - 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, - 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, - 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, - 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, - 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, - 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, - // Bytes 1800 - 183f - 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, - 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, - 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, - 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, - 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, - 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, - 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, - 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, - // Bytes 1840 - 187f - 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, - 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, - 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, - 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, - 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, - 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, - 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, - 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, - 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, - 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, - 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, - 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, - 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, - 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, - 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, - 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, - 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, - 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, - 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, - 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, - 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, - 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, - // Bytes 1900 - 193f - 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, - 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, - 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, - 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, - 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, - 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, - 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, - 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, - // Bytes 1940 - 197f - 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, - 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, - 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, - 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, - 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, - 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, - 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, - 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, - 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, - 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, - 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, - 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, - 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, - 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, - 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, - 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, - 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, - 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, - 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, - 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, - 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, - 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, - 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, - 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, - 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, - 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, - 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, - 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, - 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, - 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, - 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, - 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, - 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, - 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, - 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, - 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, - // Bytes 1a80 - 1abf - 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, - 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, - 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, - 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, - 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, - 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, - 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, - 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, - // Bytes 1ac0 - 1aff - 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, - 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, - 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, - 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, - 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, - 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, - 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, - 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, - // Bytes 1b00 - 1b3f - 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, - 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, - 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, - 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, - 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, - 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, - 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, - 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, - // Bytes 1b40 - 1b7f - 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, - 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, - 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, - 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, - 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, - 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, - 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, - 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, - // Bytes 1b80 - 1bbf - 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, - 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, - 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, - 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, - 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, - 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, - 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, - 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, - // Bytes 1bc0 - 1bff - 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, - 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, - 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, - 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, - 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, - 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, - 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, - 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, - // Bytes 1c00 - 1c3f - 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, - 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, - 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, - 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, - 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, - 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, - 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, - 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, - // Bytes 1c40 - 1c7f - 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, - 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, - 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, - 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, - 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, - 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, - 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, - 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, - // Bytes 1c80 - 1cbf - 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, - 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, - 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, - 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, - 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, - 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, - 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, - 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, - // Bytes 1cc0 - 1cff - 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, - 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, - 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, - 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, - 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, - 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, - 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, - 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, - // Bytes 1d00 - 1d3f - 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, - 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, - 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, - 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, - 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, - 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, - 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, - 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, - // Bytes 1d40 - 1d7f - 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, - 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, - 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, - 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, - 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, - 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, - 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, - 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, - // Bytes 1d80 - 1dbf - 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, - 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, - 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, - 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, - 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, - 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, - 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, - 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, - // Bytes 1dc0 - 1dff - 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, - 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, - 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, - 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, - 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, - 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, - 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, - 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, - // Bytes 1e00 - 1e3f - 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, - 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, - 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, - 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, - 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, - 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, - 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, - 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, - // Bytes 1e40 - 1e7f - 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, - 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, - 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, - 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, - 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, - 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, - 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, - 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1e80 - 1ebf - 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, - 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, - 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, - 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, - 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, - 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, - 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, - 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, - // Bytes 1ec0 - 1eff - 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, - 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, - 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, - 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, - 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, - 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, - 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, - 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, - // Bytes 1f00 - 1f3f - 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, - 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, - 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, - 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, - 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, - 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, - 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, - 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, - // Bytes 1f40 - 1f7f - 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, - 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, - 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, - 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, - 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, - 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, - 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, - 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, - // Bytes 1f80 - 1fbf - 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, - 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, - 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, - 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, - 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, - 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, - 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, - 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, - // Bytes 1fc0 - 1fff - 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, - 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, - 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, - 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, - 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, - 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, - 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, - 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, - // Bytes 2000 - 203f - 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, - 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, - 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, - 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, - 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, - 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, - 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, - 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, - // Bytes 2040 - 207f - 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, - 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, - 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, - 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, - // Bytes 2080 - 20bf - 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, - 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, - 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, - 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, - // Bytes 20c0 - 20ff - 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, - 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, - 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, - 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, - 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, - 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, - 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, - 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, - // Bytes 2100 - 213f - 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, - 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, - 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, - 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, - 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, - 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, - 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, - 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, - // Bytes 2140 - 217f - 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, - 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, - 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, - 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, - 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, - 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, - 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, - 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, - // Bytes 2180 - 21bf - 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, - 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, - // Bytes 21c0 - 21ff - 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, - // Bytes 2200 - 223f - 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, - // Bytes 2240 - 227f - 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, - // Bytes 2280 - 22bf - 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, - 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, - 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - // Bytes 22c0 - 22ff - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, - 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, - 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, - 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, - 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, - 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, - 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, - // Bytes 2300 - 233f - 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, - 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, - // Bytes 2340 - 237f - 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, - 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, - 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - // Bytes 2380 - 23bf - 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, - 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, - // Bytes 23c0 - 23ff - 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, - 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, - 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, - 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, - // Bytes 2400 - 243f - 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, - 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, - 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, - // Bytes 2440 - 247f - 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, - 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, - 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, - // Bytes 2480 - 24bf - 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, - 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, - 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, - // Bytes 24c0 - 24ff - 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, - 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, - 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, - // Bytes 2500 - 253f - 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, - 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, - 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - // Bytes 2540 - 257f - 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, - 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, - 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, - // Bytes 2580 - 25bf - 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, - 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, - // Bytes 25c0 - 25ff - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, - // Bytes 2600 - 263f - 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, - 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, - 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, - 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, - // Bytes 2640 - 267f - 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, - 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, - 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, - // Bytes 2680 - 26bf - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, - 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, - 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, - 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, - 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, - // Bytes 26c0 - 26ff - 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, - 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, - 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, - 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, - 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, - 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, - // Bytes 2700 - 273f - 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, - 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, - 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, - 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, - 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, - // Bytes 2740 - 277f - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, - // Bytes 2780 - 27bf - 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, - 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, - 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, - // Bytes 27c0 - 27ff - 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, - 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, - 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, - 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, - 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, - // Bytes 2800 - 283f - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, - 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, - // Bytes 2840 - 287f - 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, - 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, - // Bytes 2880 - 28bf - 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, - 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, - 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, - // Bytes 28c0 - 28ff - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, - 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, - // Bytes 2900 - 293f - 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, - 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, - // Bytes 2940 - 297f - 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, - 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, - // Bytes 2980 - 29bf - 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, - 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, - // Bytes 29c0 - 29ff - 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, - 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, - 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, - 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2a40 - 2a7f - 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - // Bytes 2a80 - 2abf - 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, - 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, - 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, - // Bytes 2b00 - 2b3f - 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, - // Bytes 2b40 - 2b7f - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, - // Bytes 2b80 - 2bbf - 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, - 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, - // Bytes 2bc0 - 2bff - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2c00 - 2c3f - 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, - // Bytes 2c40 - 2c7f - 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, - 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, - // Bytes 2c80 - 2cbf - 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2cc0 - 2cff - 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, - 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2d00 - 2d3f - 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, - 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, - 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, - 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - // Bytes 2d40 - 2d7f - 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, - // Bytes 2d80 - 2dbf - 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, - 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, - 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, - 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, - 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, - 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, - 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, - 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, - // Bytes 2dc0 - 2dff - 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, - 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, - 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, - 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, - 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, - 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, - 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, - // Bytes 2e00 - 2e3f - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e40 - 2e7f - 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, - 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e80 - 2ebf - 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, - 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, - 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - // Bytes 2ec0 - 2eff - 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, - 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2f00 - 2f3f - 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, - // Bytes 2f40 - 2f7f - 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, - 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, - 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, - 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, - 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, - 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, - // Bytes 2f80 - 2fbf - 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, - 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, - 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, - 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, - 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, - 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, - 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, - 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, - // Bytes 2fc0 - 2fff - 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, - 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, - 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, - 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, - 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, - 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, - 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, - 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, - // Bytes 3000 - 303f - 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, - 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, - 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, - 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, - 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, - 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, - 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, - 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, - // Bytes 3040 - 307f - 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, - 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, - 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, - 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, - 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, - 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, - 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, - 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, - // Bytes 3080 - 30bf - 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, - 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, - 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, - 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, - 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, - 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, - 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, - 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, - // Bytes 30c0 - 30ff - 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, - 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, - 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, - 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, - 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, - 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, - 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, - 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, - // Bytes 3100 - 313f - 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, - 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, - 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, - 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, - 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, - 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, - 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, - 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, - // Bytes 3140 - 317f - 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, - 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, - 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, - 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, - 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, - 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, - 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, - 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, - // Bytes 3180 - 31bf - 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, - 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, - 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, - 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, - 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, - 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, - 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, - 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, - // Bytes 31c0 - 31ff - 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, - 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, - 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, - 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, - 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, - 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, - 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, - 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, - // Bytes 3200 - 323f - 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, - 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, - 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, - 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, - 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, - 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, - 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, - 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, - // Bytes 3240 - 327f - 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, - 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, - 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, - 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, - 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, - 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, - 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, - 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, - // Bytes 3280 - 32bf - 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, - 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, - 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, - 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, - 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, - 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, - 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, - 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, - // Bytes 32c0 - 32ff - 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, - 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, - 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, - 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, - 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, - 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, - 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, - 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, - // Bytes 3300 - 333f - 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, - 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, - 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, - 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, - 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, - 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, - 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, - 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, - // Bytes 3340 - 337f - 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, - 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, - 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, - 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, - 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, - 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, - 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, - 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3380 - 33bf - 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, - 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, - 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, - 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, - 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, - 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, - 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, - 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, - // Bytes 33c0 - 33ff - 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, - 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, - 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, - 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, - 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, - 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, - 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, - 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, - // Bytes 3400 - 343f - 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, - 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, - 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, - 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, - 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, - 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, - 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, - 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, - // Bytes 3440 - 347f - 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, - 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, - 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, - 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, - 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, - 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, - 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, - 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, - // Bytes 3480 - 34bf - 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, - 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, - 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, - 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, - 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, - 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, - 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, - 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, - // Bytes 34c0 - 34ff - 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, - 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, - 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, - 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, - 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, - 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, - 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, - 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, - // Bytes 3500 - 353f - 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, - 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, - 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, - 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, - 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, - 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, - 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, - 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, - // Bytes 3540 - 357f - 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, - 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, - 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, - 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, - 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, - 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, - 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, - 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, - // Bytes 3580 - 35bf - 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, - 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, - 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, - 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, - 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, - 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, - 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, - 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, - // Bytes 35c0 - 35ff - 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, - 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, - 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, - 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, - 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, - // Bytes 3600 - 363f - 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, - 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, - // Bytes 3640 - 367f - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, - // Bytes 3680 - 36bf - 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, - 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, - 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, - // Bytes 36c0 - 36ff - 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, - 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, - 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, - 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, - 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, - 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, - 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, - // Bytes 3700 - 373f - 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, - 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3740 - 377f - 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, - 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, - 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, - 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, - 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, - // Bytes 3780 - 37bf - 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, - // Bytes 37c0 - 37ff - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, - 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, - 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, - 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, - 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3800 - 383f - 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, - 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, - 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, - 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, - 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, - 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, - 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, - 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, - // Bytes 3840 - 387f - 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, - 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, - 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, - 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, - 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, - 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3880 - 38bf - 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, - 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, - 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, - 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, - 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, - 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, - // Bytes 38c0 - 38ff - 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, - 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, - 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, - 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, - // Bytes 3900 - 393f - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, - 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, - 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, - 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, - // Bytes 3940 - 397f - 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, - 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, - 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, - 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, - 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, - 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, - 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, - // Bytes 3980 - 39bf - 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, - 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, - 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, - 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, - 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, - 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, - 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, - 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, - // Bytes 39c0 - 39ff - 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, - 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, - 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, - 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - // Bytes 3a00 - 3a3f - 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, - 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, - 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, - 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, - 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - // Bytes 3a40 - 3a7f - 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, - 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, - 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, - 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, - 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, - 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, - 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, - // Bytes 3a80 - 3abf - 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, - 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, - 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, - 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, - 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, - 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, - // Bytes 3ac0 - 3aff - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, - 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, - 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, - 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, - 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, - // Bytes 3b00 - 3b3f - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, - 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, - 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, - 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, - // Bytes 3b40 - 3b7f - 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, - 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, - 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, - 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, - 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, - // Bytes 3b80 - 3bbf - 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, - 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, - 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, - 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, - 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, - 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, - 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, - 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, - // Bytes 3bc0 - 3bff - 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, - 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3c00 - 3c3f - 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - // Bytes 3c40 - 3c7f - 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - // Bytes 3c80 - 3cbf - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, - // Bytes 3cc0 - 3cff - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, - 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 3d00 - 3d3f - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3d40 - 3d7f - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 3d80 - 3dbf - 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - // Bytes 3dc0 - 3dff - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - // Bytes 3e00 - 3e3f - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3e40 - 3e7f - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - // Bytes 3e80 - 3ebf - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - // Bytes 3ec0 - 3eff - 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, - 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, - // Bytes 3f00 - 3f3f - 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f40 - 3f7f - 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f80 - 3fbf - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, - // Bytes 3fc0 - 3fff - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4000 - 403f - 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4040 - 407f - 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4080 - 40bf - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 40c0 - 40ff - 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - // Bytes 4100 - 413f - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - // Bytes 4140 - 417f - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, - // Bytes 4180 - 41bf - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - // Bytes 41c0 - 41ff - 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - // Bytes 4200 - 423f - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, - // Bytes 4240 - 427f - 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, - 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, - 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, - 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, - 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, - 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, - 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, - 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, - // Bytes 4280 - 42bf - 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, - 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, - 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, - 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, - 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, - 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, - 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, - 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, - // Bytes 42c0 - 42ff - 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, - 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, - 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, - 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, - 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, - 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, - 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, - // Bytes 4300 - 433f - 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, - 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, - // Bytes 4340 - 437f - 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, - 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, - 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, - // Bytes 4380 - 43bf - 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, - 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, - // Bytes 43c0 - 43ff - 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, - 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, - 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, - // Bytes 4400 - 443f - 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, - 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, - 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, - 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, - 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, - 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, - 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, - // Bytes 4440 - 447f - 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, - 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, - 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, - 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, - 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, - 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, - 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, - // Bytes 4480 - 44bf - 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, - 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, - 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, - 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, - 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, - // Bytes 44c0 - 44ff - 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, - 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, - 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, - 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, - 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, - 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, - // Bytes 4500 - 453f - 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, - 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, - // Bytes 4540 - 457f - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, - // Bytes 4580 - 45bf - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, - // Bytes 45c0 - 45ff - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, - 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, - 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, - // Bytes 4600 - 463f - 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, - 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, - 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - // Bytes 4640 - 467f - 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, - 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, - 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - // Bytes 4680 - 46bf - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, - 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, - 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, - 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, - 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, - 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, - 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, - 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, - // Bytes 46c0 - 46ff - 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, - 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, - 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, - 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, - 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, - 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, - 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, - 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, - // Bytes 4700 - 473f - 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, - 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, - 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, - 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, - 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, - 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, - 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, - 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, - // Bytes 4740 - 477f - 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, - 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, - 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, - 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, - 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, - 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, - 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, - 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, - // Bytes 4780 - 47bf - 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, - 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, - 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, - 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, - 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, - 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, - // Bytes 47c0 - 47ff - 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, - // Bytes 4800 - 483f - 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, - 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, - 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, - 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, - // Bytes 4840 - 487f - 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, - 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, - 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, - 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, - 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, - // Bytes 4880 - 48bf - 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - // Bytes 48c0 - 48ff - 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - // Bytes 4900 - 493f - 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - // Bytes 4940 - 497f - 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - // Bytes 4980 - 49bf - 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, - 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, - 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, - // Bytes 49c0 - 49ff - 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, - // Bytes 4a00 - 4a3f - 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, - // Bytes 4a40 - 4a7f - 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, - 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, - 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, - 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, - // Bytes 4a80 - 4abf - 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, - 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 46: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 46 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 48 blocks, 3072 entries, 6144 bytes -// The third block is the zero block. -var nfcValues = [3072]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, - // Block 0x5, offset 0x140 - 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35a1, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, - 0x2c6: 0xa000, 0x2c7: 0x3709, - 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x3733, 0x302: 0x37b7, - 0x310: 0x370f, 0x311: 0x3793, - 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, - 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, - 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, - 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, - 0x338: 0x3787, 0x339: 0x380b, - // Block 0xd, offset 0x340 - 0x351: 0x812d, - 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, - 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, - 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, - 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, - 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, - 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, - 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, - 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, - 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, - 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x812d, - 0x3b0: 0x811e, - // Block 0xf, offset 0x3c0 - 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, - 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, - 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, - 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, - 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, - 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, - 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, - 0x412: 0x2d4e, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d56, - 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, - 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, - 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, - 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, - 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, - 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, - 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, - 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, - 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, - 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, - 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, - // Block 0x12, offset 0x480 - 0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2, - 0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0, - 0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df, - 0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85, - 0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93, - 0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c, - 0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370, - 0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a, - 0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de, - 0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7, - 0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a, - 0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e, - 0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9, - 0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465, - 0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26, - 0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791, - 0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b, - 0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4, - 0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f, - 0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49, - 0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519, - // Block 0x14, offset 0x500 - 0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532, - 0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541, - 0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582, - 0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6, - 0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1, - 0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f, - 0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15, - 0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23, - 0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a, - 0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c, - 0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69, - // Block 0x15, offset 0x540 - 0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70, - 0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1, - 0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf, - 0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6, - 0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5, - 0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11, - 0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73, - 0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a, - 0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578, - 0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a, - // Block 0x16, offset 0x580 - 0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e, - 0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6, - 0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c, - 0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0, - 0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00, - 0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966, - 0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8, - 0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6, - 0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38, - 0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30, - 0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60, - 0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58, - 0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a, - 0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8, - 0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70, - 0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996, - 0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2, - 0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916, - 0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a, - 0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c, - 0x5fc: 0x4870, 0x5fd: 0x4342, - // Block 0x18, offset 0x600 - 0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac, - 0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee, - 0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0, - 0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2, - 0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134, - 0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a, - 0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88, - 0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a, - 0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98, - 0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee, - 0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, - // Block 0x19, offset 0x640 - 0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0, - 0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa, - 0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af, - 0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10, - 0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4, - 0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec, - 0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b, - 0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081, - 0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8, - 0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318, - 0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100, - // Block 0x1a, offset 0x680 - 0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000, - 0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b, - 0x68d: 0xa000, - 0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29, - 0x6a4: 0xa000, 0x6a5: 0xa000, - 0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a, - 0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45, - 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000, - 0x6bc: 0xa000, 0x6bd: 0xa000, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d, - 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b, - 0x6d1: 0xa000, - 0x6d2: 0xa000, - 0x6e2: 0xa000, - 0x6e8: 0xa000, 0x6e9: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5, - 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, - // Block 0x1c, offset 0x700 - 0x706: 0xa000, 0x70b: 0xa000, - 0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000, - 0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000, - 0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000, - 0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60, - 0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78, - 0x72f: 0xa000, - 0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000, - 0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000, - 0x73c: 0x3fc0, 0x73d: 0x3fc8, - // Block 0x1d, offset 0x740 - 0x754: 0x3f00, - 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, - 0x75e: 0x3fd0, - 0x766: 0xa000, - 0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000, - 0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000, - 0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000, - 0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040, - 0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050, - 0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060, - 0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080, - 0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0, - 0x7af: 0xa000, - 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8, - 0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0, - 0x7bd: 0xa000, 0x7be: 0x40c8, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, - 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, - 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, - 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, - 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, - 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, - 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, - 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, - 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, - 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, - 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, - // Block 0x20, offset 0x800 - 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, - 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, - 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, - 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, - 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, - 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, - 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, - 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, - 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, - 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, - 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, - // Block 0x21, offset 0x840 - 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, - 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, - 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, - 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, - 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, - 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, - 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, - 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, - 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, - 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, - 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, - // Block 0x22, offset 0x880 - 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, - 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, - 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, - 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, - 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, - 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, - 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, - 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, - 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, - 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, - 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, - 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, - 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, - 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, - 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, - 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, - 0x8e5: 0x1407, 0x8e6: 0x1433, - 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, - 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, - 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, - 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, - // Block 0x24, offset 0x900 - 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, - 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, - 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, - 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, - 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, - 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, - 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, - 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, - 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, - 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, - 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, - // Block 0x25, offset 0x940 - 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, - 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, - 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, - 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, - 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, - 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, - 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, - 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, - 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, - 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, - 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, - // Block 0x26, offset 0x980 - 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, - 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, - 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, - 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, - 0x998: 0x1617, 0x999: 0x1627, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, - 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, - 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, - 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, - 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, - 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, - 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, - 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, - 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, - 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, - 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, - // Block 0x28, offset 0xa00 - 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, - 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, - 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, - 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, - 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, - 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, - 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, - 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, - 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, - 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, - 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, - // Block 0x29, offset 0xa40 - 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, - 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, - 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, - 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, - 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, - 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, - 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, - 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, - 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, - 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, - 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, - 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, - 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, - 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, - 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, - 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, - 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, - 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, - 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, - 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, - 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, - // Block 0x2b, offset 0xac0 - 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, - 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, - 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, - 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, - 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, - 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, - 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, - 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, - 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, - 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, - 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, - // Block 0x2c, offset 0xb00 - 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, - 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, - 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, - 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, - 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, - 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, - 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, - 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, - 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, - 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, - 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, - // Block 0x2d, offset 0xb40 - 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, - 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, - 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, - 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, - 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, - 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, - 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, - 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, - 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, - 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, - 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, - // Block 0x2e, offset 0xb80 - 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, - 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, - 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, - 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, - 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, - 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, - 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, - 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, - 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, - 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, - 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, - 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, - 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, - 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, - 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, - 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, - 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, - 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, - 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, - 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, - // Block 0x5, offset 0x140 - 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, - 0x14d: 0x5c, - 0x15c: 0x5d, 0x15f: 0x5e, - 0x162: 0x5f, 0x164: 0x60, - 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, - 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, - 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, - // Block 0x6, offset 0x180 - 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, - 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, - 0x1ab: 0x71, - 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, - 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, - // Block 0x8, offset 0x200 - 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, - 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, - 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, - 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, - 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, - // Block 0x9, offset 0x240 - 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, - 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, - 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, - 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, - 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, - 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, - 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, - 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, - // Block 0xa, offset 0x280 - 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, - 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, - 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, - 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, - 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, - 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, - 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, - 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, - 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, - 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, - 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, - // Block 0xc, offset 0x300 - 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, - 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, - 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, - 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, - // Block 0xd, offset 0x340 - 0x347: 0x9c, - 0x34b: 0x9d, 0x34d: 0x9e, - 0x368: 0x9f, 0x36b: 0xa0, - 0x374: 0xa1, - 0x37d: 0xa2, - // Block 0xe, offset 0x380 - 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, - 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, - 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, - 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, - 0x3a0: 0xb2, - 0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5, - 0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xb8, 0x3ec: 0xb9, - // Block 0x10, offset 0x400 - 0x432: 0xba, - // Block 0x11, offset 0x440 - 0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd, - 0x449: 0xbe, - // Block 0x12, offset 0x480 - 0x480: 0xbf, - 0x4a3: 0xc0, 0x4a5: 0xc1, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xc2, - // Block 0x14, offset 0x500 - 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, - 0x528: 0x2d, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 149 entries, 298 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa} - -// nfcSparseValues: 684 entries, 2736 bytes -var nfcSparseValues = [684]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4840, lo: 0x8a, hi: 0x8a}, - {value: 0x485e, lo: 0x8b, hi: 0x8b}, - {value: 0x36c7, lo: 0x8c, hi: 0x8c}, - {value: 0x36df, lo: 0x8d, hi: 0x8d}, - {value: 0x4876, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x36fd, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0xd, offset 0x63 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x68 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x6a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x72 - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x79 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x7c - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x84 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0x88 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0x8c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0x8e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0x90 - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0x99 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0x9d - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xa4 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xa9 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xac - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xc0 - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xc8 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xcb - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xcd - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x23, offset 0xcf - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x24, offset 0xd1 - {value: 0x0000, lo: 0x04}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xd6 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0xe7 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0xf3 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0xf5 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0xfb - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0xfd - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0xff - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x101 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x103 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x105 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x107 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x10a - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x10d - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x10f - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x112 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x115 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x119 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x36, offset 0x11e - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x37, offset 0x127 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x38, offset 0x129 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x39, offset 0x12c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3a, offset 0x12e - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3b, offset 0x139 - {value: 0x0004, lo: 0x03}, - {value: 0x0433, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3c, offset 0x13d - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x3d, offset 0x14b - {value: 0x427b, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x3e, offset 0x14e - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x3f, offset 0x154 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x40, offset 0x15a - {value: 0x6408, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x41, offset 0x165 - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x42, offset 0x169 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x43, offset 0x16b - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x44, offset 0x16d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x45, offset 0x16f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x46, offset 0x171 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x47, offset 0x173 - {value: 0x0000, lo: 0x05}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xaf}, - // Block 0x48, offset 0x179 - {value: 0x0000, lo: 0x03}, - {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, - {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, - {value: 0x4a9f, lo: 0xba, hi: 0xbf}, - // Block 0x49, offset 0x17d - {value: 0x0000, lo: 0x01}, - {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, - // Block 0x4a, offset 0x17f - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4b, offset 0x181 - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4c, offset 0x189 - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4d, offset 0x18d - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x4e, offset 0x190 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x4f, offset 0x192 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x50, offset 0x194 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x51, offset 0x196 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x52, offset 0x199 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x53, offset 0x19b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x54, offset 0x19d - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x55, offset 0x19f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x56, offset 0x1a1 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x57, offset 0x1a7 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x58, offset 0x1aa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x59, offset 0x1ac - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5a, offset 0x1b3 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5b, offset 0x1b9 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5c, offset 0x1bf - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5d, offset 0x1c7 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x5e, offset 0x1cd - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x5f, offset 0x1d3 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x60, offset 0x1d9 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x61, offset 0x1dd - {value: 0x0006, lo: 0x0d}, - {value: 0x4390, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4402, lo: 0x9f, hi: 0x9f}, - {value: 0x43f0, lo: 0xaa, hi: 0xab}, - {value: 0x44f4, lo: 0xac, hi: 0xac}, - {value: 0x44fc, lo: 0xad, hi: 0xad}, - {value: 0x4348, lo: 0xae, hi: 0xb1}, - {value: 0x4366, lo: 0xb2, hi: 0xb4}, - {value: 0x437e, lo: 0xb5, hi: 0xb6}, - {value: 0x438a, lo: 0xb8, hi: 0xb8}, - {value: 0x4396, lo: 0xb9, hi: 0xbb}, - {value: 0x43ae, lo: 0xbc, hi: 0xbc}, - {value: 0x43b4, lo: 0xbe, hi: 0xbe}, - // Block 0x62, offset 0x1eb - {value: 0x0006, lo: 0x08}, - {value: 0x43ba, lo: 0x80, hi: 0x81}, - {value: 0x43c6, lo: 0x83, hi: 0x84}, - {value: 0x43d8, lo: 0x86, hi: 0x89}, - {value: 0x43fc, lo: 0x8a, hi: 0x8a}, - {value: 0x4378, lo: 0x8b, hi: 0x8b}, - {value: 0x4360, lo: 0x8c, hi: 0x8c}, - {value: 0x43a8, lo: 0x8d, hi: 0x8d}, - {value: 0x43d2, lo: 0x8e, hi: 0x8e}, - // Block 0x63, offset 0x1f4 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x64, offset 0x1f7 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x65, offset 0x1fa - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x66, offset 0x1fc - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x67, offset 0x1ff - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x68, offset 0x201 - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xa0, hi: 0xa6}, - {value: 0x812d, lo: 0xa7, hi: 0xad}, - {value: 0x8132, lo: 0xae, hi: 0xaf}, - // Block 0x69, offset 0x205 - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6a, offset 0x20a - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6b, offset 0x20c - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6c, offset 0x20e - {value: 0x0000, lo: 0x04}, - {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, - {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, - {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, - {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, - // Block 0x6d, offset 0x213 - {value: 0x0000, lo: 0x05}, - {value: 0x4a9f, lo: 0x82, hi: 0x87}, - {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, - {value: 0x4a9f, lo: 0x92, hi: 0x97}, - {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x6e, offset 0x219 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6f, offset 0x21b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x70, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x71, offset 0x21f - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x225 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x73, offset 0x228 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa4, hi: 0xa7}, - // Block 0x74, offset 0x22a - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x8132, lo: 0x88, hi: 0x8a}, - {value: 0x812d, lo: 0x8b, hi: 0x8b}, - {value: 0x8132, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x8d, hi: 0x90}, - // Block 0x75, offset 0x230 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x76, offset 0x233 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x77, offset 0x23b - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x78, offset 0x242 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x79, offset 0x245 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x7a, offset 0x248 - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7b, offset 0x24a - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x7c, offset 0x24d - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x7d, offset 0x255 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - {value: 0x8132, lo: 0x9e, hi: 0x9e}, - // Block 0x7e, offset 0x259 - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7f, offset 0x260 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x80, offset 0x263 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x81, offset 0x269 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x82, offset 0x26b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x83, offset 0x26e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x84, offset 0x270 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb9, hi: 0xb9}, - {value: 0x8102, lo: 0xba, hi: 0xba}, - // Block 0x85, offset 0x273 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x86, offset 0x275 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x87, offset 0x277 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x88, offset 0x279 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x89, offset 0x27c - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x97, hi: 0x97}, - // Block 0x8a, offset 0x27e - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x8b, offset 0x280 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x8c, offset 0x282 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x8d, offset 0x284 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8e, offset 0x291 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x8f, offset 0x29b - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x90, offset 0x29d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x91, offset 0x29f - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x92, offset 0x2a5 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x93, offset 0x2a7 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x94, offset 0x2aa - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 92: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 92 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 94 blocks, 6016 entries, 12032 bytes -// The third block is the zero block. -var nfkcValues = [6016]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, - // Block 0x5, offset 0x140 - 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2dee, 0x185: 0x2df4, - 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, - 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x42a5, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x425a, 0x285: 0x447b, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, - 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, - 0x306: 0xa000, 0x307: 0x3709, - 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x3733, 0x342: 0x37b7, - 0x350: 0x370f, 0x351: 0x3793, - 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, - 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, - 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, - 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, - 0x378: 0x3787, 0x379: 0x380b, - // Block 0xe, offset 0x380 - 0x387: 0x1d61, - 0x391: 0x812d, - 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, - 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, - 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, - 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, - 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, - 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, - 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, - 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x812d, - 0x3f0: 0x811e, 0x3f5: 0x1d84, - 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, - // Block 0x10, offset 0x400 - 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, - 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, - 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, - 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, - 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, - 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, - 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, - 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, - // Block 0x11, offset 0x440 - 0x445: 0xa000, - 0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000, - 0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000, - 0x452: 0x2d4e, - 0x474: 0x8102, 0x475: 0x9900, - 0x47a: 0xa000, 0x47b: 0x2d56, - 0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000, - // Block 0x12, offset 0x480 - 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, - 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, - 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, - 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, - 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, - 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, - 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, - 0x4aa: 0x01fd, - 0x4b8: 0x020c, - // Block 0x13, offset 0x4c0 - 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, - 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, - 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, - 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, - 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, - 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, - 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, - // Block 0x14, offset 0x500 - 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, - 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, - 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, - 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, - 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, - 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, - 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, - 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, - 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, - 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, - 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, - // Block 0x15, offset 0x540 - 0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2, - 0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0, - 0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df, - 0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85, - 0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93, - 0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c, - 0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370, - 0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a, - 0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de, - 0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7, - 0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc, - // Block 0x16, offset 0x580 - 0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a, - 0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e, - 0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9, - 0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465, - 0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26, - 0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791, - 0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b, - 0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4, - 0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f, - 0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49, - 0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532, - 0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541, - 0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582, - 0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6, - 0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7, - 0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f, - 0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15, - 0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23, - 0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a, - 0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c, - 0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69, - // Block 0x18, offset 0x600 - 0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70, - 0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1, - 0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf, - 0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6, - 0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5, - 0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11, - 0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73, - 0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a, - 0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578, - 0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a, - // Block 0x19, offset 0x640 - 0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e, - 0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6, - 0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c, - 0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0, - 0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00, - 0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966, - 0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8, - 0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6, - 0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38, - 0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30, - 0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40, - // Block 0x1a, offset 0x680 - 0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60, - 0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58, - 0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a, - 0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8, - 0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70, - 0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996, - 0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2, - 0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916, - 0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a, - 0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c, - 0x6bc: 0x4870, 0x6bd: 0x4342, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac, - 0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee, - 0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0, - 0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2, - 0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134, - 0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a, - 0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88, - 0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a, - 0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98, - 0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee, - 0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287, - // Block 0x1c, offset 0x700 - 0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0, - 0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa, - 0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af, - 0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10, - 0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e, - 0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec, - 0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b, - 0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081, - 0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8, - 0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318, - 0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c, - // Block 0x1d, offset 0x740 - 0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8, - 0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051, - 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, - 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d, - 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, - 0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8, - 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, - 0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, - 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, - 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98, - 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, - // Block 0x1e, offset 0x780 - 0x780: 0x0463, 0x785: 0x0049, - 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, - 0x790: 0x222e, 0x791: 0x223a, - 0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8, - 0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0, - 0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963, - 0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071, - 0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, - 0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62, - 0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50, - 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, - // Block 0x1f, offset 0x7c0 - 0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000, - 0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b, - 0x7cd: 0xa000, - 0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29, - 0x7e4: 0xa000, 0x7e5: 0xa000, - 0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a, - 0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45, - 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000, - 0x7fc: 0xa000, 0x7fd: 0xa000, - // Block 0x20, offset 0x800 - 0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d, - 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b, - 0x811: 0xa000, - 0x812: 0xa000, - 0x822: 0xa000, - 0x828: 0xa000, 0x829: 0xa000, - 0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5, - 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, - // Block 0x21, offset 0x840 - 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, - 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, - 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, - 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c, - 0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84, - 0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a, - // Block 0x22, offset 0x880 - 0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8, - 0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, - 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60, - 0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78, - 0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8, - 0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10, - 0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28, - 0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40, - 0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58, - 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, - 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, - 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, - 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, - 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, - 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, - 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, - 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, - 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, - 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, - 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, - 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, - // Block 0x24, offset 0x900 - 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, - 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, - 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, - 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, - 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, - 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, - 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, - 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, - 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, - 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, - 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, - // Block 0x25, offset 0x940 - 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, - 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, - 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, - 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, - 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, - 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, - 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, - 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, - 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, - 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, - 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, - // Block 0x26, offset 0x980 - 0x986: 0xa000, 0x98b: 0xa000, - 0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000, - 0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000, - 0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000, - 0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60, - 0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78, - 0x9af: 0xa000, - 0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000, - 0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000, - 0x9bc: 0x3fc0, 0x9bd: 0x3fc8, - // Block 0x27, offset 0x9c0 - 0x9d4: 0x3f00, - 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000, - 0x9de: 0x3fd0, 0x9df: 0x26b4, - 0x9e6: 0xa000, - 0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000, - 0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000, - 0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000, - 0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000, - // Block 0x28, offset 0xa00 - 0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040, - 0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050, - 0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060, - 0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080, - 0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0, - 0xa2f: 0xa000, - 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8, - 0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0, - 0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9, - // Block 0x29, offset 0xa40 - 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, - 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, - 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9, - 0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed, - 0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11, - 0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35, - 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, - 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, - 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, - 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, - 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, - // Block 0x2a, offset 0xa80 - 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, - 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, - 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, - 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, - 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, - 0xa9e: 0x098f, 0xa9f: 0x072f, - // Block 0x2b, offset 0xac0 - 0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072, - 0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096, - 0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741, - 0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780, - 0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac, - 0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108, - 0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0, - 0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e, - 0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144, - 0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114, - 0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6, - // Block 0x2c, offset 0xb00 - 0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03, - 0xb06: 0x0ca7, 0xb07: 0x10c7, - 0xb10: 0x1bc4, 0xb11: 0x18a9, - 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, - 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, - 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, - 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, - 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20, - 0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50, - 0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88, - 0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58, - // Block 0x2d, offset 0xb40 - 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, - 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, - 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, - 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, - 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, - 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, - 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, - 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, - 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, - 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, - 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, - // Block 0x2e, offset 0xb80 - 0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11, - 0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0, - 0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3, - 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, - 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, - 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, - 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, - 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, - 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, - 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, - 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a, - 0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2, - 0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6, - 0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c, - 0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6, - 0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da, - 0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8, - 0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51, - 0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920, - 0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06, - 0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de, - // Block 0x30, offset 0xc00 - 0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c, - 0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90, - 0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6, - 0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984, - 0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07, - 0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4, - 0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2, - 0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a, - 0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47, - 0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701, - 0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0, - // Block 0x31, offset 0xc40 - 0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969, - 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35, - 0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c, - 0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9, - 0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0, - 0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40, - 0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996, - 0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad, - 0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38, - 0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b, - 0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984, - // Block 0x32, offset 0xc80 - 0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd, - 0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e, - 0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e, - 0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990, - 0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4, - 0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee, - 0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186, - 0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0, - 0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258, - 0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e, - 0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, - 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, - 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, - 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, - 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, - 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, - 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, - 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, - 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, - 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, - 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, - // Block 0x34, offset 0xd00 - 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, - 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, - 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, - 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, - 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, - 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, - 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, - 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, - 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, - 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, - 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, - // Block 0x35, offset 0xd40 - 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, - 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, - 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, - 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, - 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, - 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, - 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, - 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, - 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, - 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, - 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, - // Block 0x36, offset 0xd80 - 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, - 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, - 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, - 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, - 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, - 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, - 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, - 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, - 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, - 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, - 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, - 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, - 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, - 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, - 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, - 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, - 0xde5: 0x1407, 0xde6: 0x1433, - 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, - 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, - 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, - 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, - // Block 0x38, offset 0xe00 - 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, - 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, - 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, - 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, - 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, - 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, - 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, - 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, - 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, - 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, - 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, - // Block 0x39, offset 0xe40 - 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, - 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, - 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, - 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, - 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, - 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, - 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, - 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, - 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, - 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, - 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, - // Block 0x3a, offset 0xe80 - 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, - 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, - 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, - 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, - 0xe98: 0x1617, 0xe99: 0x1627, - // Block 0x3b, offset 0xec0 - 0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f, - 0xec6: 0x1a5f, - 0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70, - 0xedd: 0x4390, - 0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, - 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, - 0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e, - 0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e, - 0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2, - 0xefc: 0x43ae, 0xefe: 0x43b4, - // Block 0x3c, offset 0xf00 - 0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc, - 0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378, - 0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299, - 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, - 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, - 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, - 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, - 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, - 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, - 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, - 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, - // Block 0x3d, offset 0xf40 - 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, - 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, - 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, - 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, - 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, - 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, - 0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, - 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, - 0xf70: 0x4468, 0xf71: 0x4468, - // Block 0x3e, offset 0xf80 - 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, - 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f, - 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, - 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, - 0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9, - 0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c, - 0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0, - 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89, - 0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb, - 0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded, - 0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29, - 0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b, - 0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9, - 0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00, - 0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32, - 0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50, - 0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e, - 0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf, - 0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd, - 0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff, - 0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022, - 0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c, - 0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6, - 0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7, - 0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6, - 0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8, - 0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10, - 0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55, - // Block 0x41, offset 0x1040 - 0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96, - 0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1, - 0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027, - 0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1, - 0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e, - 0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5, - 0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29, - 0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60, - 0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9, - 0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05, - 0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d, - // Block 0x42, offset 0x1080 - 0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64, - 0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91, - 0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe, - 0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff, - 0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031, - 0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4, - 0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92, - 0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0, - 0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1, - 0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74, - 0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba, - 0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88, - 0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1, - 0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74, - 0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f, - 0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd, - 0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d, - 0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88, - 0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b, - 0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb, - 0x10fc: 0x4408, 0x10fd: 0x4408, - // Block 0x44, offset 0x1100 - 0x1110: 0x2311, 0x1111: 0x2326, - 0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357, - 0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4, - 0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5, - 0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc, - 0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430, - 0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c, - 0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f, - 0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499, - // Block 0x45, offset 0x1140 - 0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df, - 0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e, - 0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c, - 0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548, - 0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c, - 0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365, - 0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406, - 0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e, - 0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca, - 0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7, - 0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f, - // Block 0x46, offset 0x1180 - 0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b, - 0x1186: 0x23c0, 0x1187: 0x2556, - 0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da, - 0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc, - 0x11bc: 0x27d1, - // Block 0x47, offset 0x11c0 - 0x11d0: 0x0019, 0x11d1: 0x0483, - 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, - 0x11d8: 0x04c3, 0x11d9: 0x1b5c, - 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, - 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, - 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, - 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, - 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, - 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, - // Block 0x48, offset 0x1200 - 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, - 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269, - 0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, - 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, - 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, - 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, - 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, - 0x122a: 0x000b, 0x122b: 0x0041, - 0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4, - 0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e, - 0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a, - // Block 0x49, offset 0x1240 - 0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456, - 0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462, - 0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, - 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, - 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, - 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, - 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, - 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, - 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, - 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, - 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, - 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, - 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, - 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, - 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, - 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, - 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, - 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, - 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00, - 0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82, - 0x12bc: 0x1f82, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, - 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, - 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, - 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, - 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, - 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, - 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, - 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, - 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, - 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, - 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, - // Block 0x4c, offset 0x1300 - 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, - 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, - 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, - 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, - 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, - 0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b, - 0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, - 0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b, - 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, - 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, - 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, - // Block 0x4d, offset 0x1340 - 0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf, - 0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7, - 0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff, - 0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23, - 0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35, - 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264, - 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, - 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, - // Block 0x4e, offset 0x1380 - 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, - 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, - 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, - 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, - 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, - 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, - 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, - 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, - 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, - 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, - 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, - 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, - 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, - 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, - 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, - 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, - 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, - 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, - 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, - 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, - 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, - // Block 0x50, offset 0x1400 - 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, - 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, - 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, - 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, - 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, - 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, - 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, - 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, - 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, - 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, - // Block 0x51, offset 0x1440 - 0x1442: 0x0248, - 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, - 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, - 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, - 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, - 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, - 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, - 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, - 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, - 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, - 0x147c: 0x0293, 0x147e: 0x02cc, - // Block 0x52, offset 0x1480 - 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, - 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, - 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, - 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, - 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, - 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, - 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, - 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, - 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, - 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, - 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, - 0x14d0: 0x1a8c, 0x14d1: 0x1a90, - 0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8, - 0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0, - 0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8, - 0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0, - 0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1, - 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, - 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, - 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, - // Block 0x54, offset 0x1500 - 0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503, - 0x1510: 0x0c0f, 0x1511: 0x0a47, - 0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, - 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, - 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, - 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, - 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, - 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, - 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, - // Block 0x55, offset 0x1540 - 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, - 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, - 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, - 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, - 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, - 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, - 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, - 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, - 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, - 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, - 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, - // Block 0x56, offset 0x1580 - 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, - 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, - 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, - 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, - 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, - 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, - 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, - 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, - 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, - 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, - 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, - 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, - 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, - 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, - 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, - 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, - 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, - 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, - 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, - 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, - 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, - // Block 0x58, offset 0x1600 - 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, - 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, - 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, - 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, - 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, - 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, - 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, - 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, - 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, - 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, - 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, - // Block 0x59, offset 0x1640 - 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, - 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, - 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, - 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, - 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, - 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, - 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, - 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, - 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, - 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, - 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, - // Block 0x5a, offset 0x1680 - 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, - 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, - 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, - 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, - 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, - 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, - 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, - 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, - 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, - 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, - 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, - 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, - 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, - 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, - 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, - 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, - 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, - 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, - 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, - 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, - 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, - // Block 0x5c, offset 0x1700 - 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, - 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, - 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, - 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, - 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, - 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, - 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, - 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, - 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, - 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, - 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, - // Block 0x5d, offset 0x1740 - 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, - 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, - 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, - 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, - 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, -} - -// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, - 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, - 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, - 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, - 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, - // Block 0x5, offset 0x140 - 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, - 0x14d: 0x8a, - 0x15c: 0x8b, 0x15f: 0x8c, - 0x162: 0x8d, 0x164: 0x8e, - 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, - 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, - 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, - // Block 0x6, offset 0x180 - 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, - 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, - 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, - 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, - 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, - 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, - 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, - // Block 0x8, offset 0x200 - 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, - 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, - 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, - 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, - 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, - // Block 0x9, offset 0x240 - 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, - 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, - 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, - 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, - 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, - 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, - 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, - 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, - // Block 0xa, offset 0x280 - 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, - 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, - 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, - 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, - 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, - 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, - 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, - 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, - 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, - 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, - 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, - // Block 0xc, offset 0x300 - 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, - 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, - 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, - 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, - // Block 0xd, offset 0x340 - 0x347: 0xc6, - 0x34b: 0xc7, 0x34d: 0xc8, - 0x368: 0xc9, 0x36b: 0xca, - 0x374: 0xcb, - 0x37d: 0xcc, - // Block 0xe, offset 0x380 - 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, - 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, - 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, - 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, - 0x3a0: 0xdd, - 0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0, - 0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xe3, 0x3ec: 0xe4, - // Block 0x10, offset 0x400 - 0x432: 0xe5, - // Block 0x11, offset 0x440 - 0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8, - 0x449: 0xe9, - 0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1, - 0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d, - // Block 0x12, offset 0x480 - 0x480: 0xf8, - 0x4a3: 0xf9, 0x4a5: 0xfa, - 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc, - 0x4c8: 0x52, 0x4c9: 0xfd, - // Block 0x14, offset 0x500 - 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, - 0x528: 0x5b, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 162 entries, 324 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d} - -// nfkcSparseValues: 871 entries, 3484 bytes -var nfkcSparseValues = [871]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x4278, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4264, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x425a, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x4291, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x221c, lo: 0xbc, hi: 0xbc}, - {value: 0x2210, lo: 0xbd, hi: 0xbd}, - {value: 0x22b2, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x426e, lo: 0x98, hi: 0x98}, - {value: 0x4273, lo: 0x99, hi: 0x9a}, - {value: 0x4296, lo: 0x9b, hi: 0x9b}, - {value: 0x425f, lo: 0x9c, hi: 0x9c}, - {value: 0x4282, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x0167, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0xc, offset 0x70 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x75 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x77 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0xf, offset 0x7f - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x10, offset 0x86 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x11, offset 0x89 - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x91 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x13, offset 0x95 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x14, offset 0x99 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x16, offset 0x9d - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x17, offset 0xa6 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x18, offset 0xaa - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x19, offset 0xb1 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1a, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1b, offset 0xb9 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xc3 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1d, offset 0xc6 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1e, offset 0xcd - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x1f, offset 0xd5 - {value: 0x0000, lo: 0x03}, - {value: 0x2621, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x20, offset 0xd9 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x21, offset 0xdb - {value: 0x0000, lo: 0x02}, - {value: 0x2636, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x22, offset 0xde - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x2628, lo: 0x9c, hi: 0x9c}, - {value: 0x262f, lo: 0x9d, hi: 0x9d}, - // Block 0x23, offset 0xe2 - {value: 0x0000, lo: 0x05}, - {value: 0x030b, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x24, offset 0xe8 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x45f4, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x45ff, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x25, offset 0xf9 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0x105 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x27, offset 0x107 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x28, offset 0x10d - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x29, offset 0x10f - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2a, offset 0x111 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0x113 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x115 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x117 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x119 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x11b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x11e - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x121 - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x123 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x126 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x129 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x12d - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x36, offset 0x132 - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x37, offset 0x13b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x38, offset 0x13d - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x39, offset 0x140 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3a, offset 0x142 - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3b, offset 0x14d - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3c, offset 0x158 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x429b, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1873, lo: 0xa5, hi: 0xa5}, - {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2691, lo: 0xb3, hi: 0xb3}, - {value: 0x27fe, lo: 0xb4, hi: 0xb4}, - {value: 0x2698, lo: 0xb6, hi: 0xb6}, - {value: 0x2808, lo: 0xb7, hi: 0xb7}, - {value: 0x186d, lo: 0xbc, hi: 0xbc}, - {value: 0x4269, lo: 0xbe, hi: 0xbe}, - // Block 0x3d, offset 0x166 - {value: 0x0002, lo: 0x0d}, - {value: 0x1933, lo: 0x87, hi: 0x87}, - {value: 0x1930, lo: 0x88, hi: 0x88}, - {value: 0x1870, lo: 0x89, hi: 0x89}, - {value: 0x298e, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x0467, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x3e, offset 0x174 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x0467, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x1999, lo: 0xa8, hi: 0xa8}, - // Block 0x3f, offset 0x184 - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x40, offset 0x192 - {value: 0x0007, lo: 0x06}, - {value: 0x2180, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x41, offset 0x199 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x42, offset 0x19f - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0x269f, lo: 0xac, hi: 0xad}, - {value: 0x26a6, lo: 0xaf, hi: 0xaf}, - {value: 0x281c, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x43, offset 0x1ae - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x44, offset 0x1b2 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x45, offset 0x1b4 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x46, offset 0x1b8 - {value: 0x0000, lo: 0x01}, - {value: 0x299b, lo: 0x8c, hi: 0x8c}, - // Block 0x47, offset 0x1ba - {value: 0x0263, lo: 0x02}, - {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, - {value: 0x192d, lo: 0xb5, hi: 0xb6}, - // Block 0x48, offset 0x1bd - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x49, offset 0x1bf - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4a, offset 0x1c2 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4b, offset 0x1c4 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4c, offset 0x1c7 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4d, offset 0x1c9 - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x4e, offset 0x1cb - {value: 0x0000, lo: 0x01}, - {value: 0x162f, lo: 0xb3, hi: 0xb3}, - // Block 0x4f, offset 0x1cd - {value: 0x0004, lo: 0x0b}, - {value: 0x1597, lo: 0x80, hi: 0x82}, - {value: 0x15af, lo: 0x83, hi: 0x83}, - {value: 0x15c7, lo: 0x84, hi: 0x85}, - {value: 0x15d7, lo: 0x86, hi: 0x89}, - {value: 0x15eb, lo: 0x8a, hi: 0x8c}, - {value: 0x15ff, lo: 0x8d, hi: 0x8d}, - {value: 0x1607, lo: 0x8e, hi: 0x8e}, - {value: 0x160f, lo: 0x8f, hi: 0x90}, - {value: 0x161b, lo: 0x91, hi: 0x93}, - {value: 0x162b, lo: 0x94, hi: 0x94}, - {value: 0x1633, lo: 0x95, hi: 0x95}, - // Block 0x50, offset 0x1d9 - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xae}, - {value: 0x812f, lo: 0xaf, hi: 0xaf}, - {value: 0x04b3, lo: 0xb6, hi: 0xb6}, - {value: 0x0887, lo: 0xb8, hi: 0xba}, - // Block 0x51, offset 0x1e3 - {value: 0x0006, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4a41, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4a4d, lo: 0xba, hi: 0xbf}, - // Block 0x52, offset 0x1ed - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x53, offset 0x1f0 - {value: 0x0000, lo: 0x03}, - {value: 0x020f, lo: 0x9c, hi: 0x9c}, - {value: 0x0212, lo: 0x9d, hi: 0x9d}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x54, offset 0x1f4 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x55, offset 0x1f6 - {value: 0x0000, lo: 0x01}, - {value: 0x163b, lo: 0xb0, hi: 0xb0}, - // Block 0x56, offset 0x1f8 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x57, offset 0x1fa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x58, offset 0x1fc - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x59, offset 0x1ff - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5a, offset 0x201 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5b, offset 0x203 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5c, offset 0x205 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5d, offset 0x207 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x5e, offset 0x20d - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x5f, offset 0x210 - {value: 0x0008, lo: 0x03}, - {value: 0x1637, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1643, lo: 0x9f, hi: 0x9f}, - // Block 0x60, offset 0x214 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x61, offset 0x216 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x62, offset 0x21d - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x63, offset 0x223 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x64, offset 0x229 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x65, offset 0x231 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x66, offset 0x237 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x67, offset 0x23d - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x68, offset 0x243 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x69, offset 0x247 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6a, offset 0x249 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6b, offset 0x24b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6c, offset 0x24d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6d, offset 0x24f - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x6e, offset 0x255 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x6f, offset 0x258 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa4, hi: 0xa7}, - // Block 0x70, offset 0x25a - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x8132, lo: 0x88, hi: 0x8a}, - {value: 0x812d, lo: 0x8b, hi: 0x8b}, - {value: 0x8132, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x8d, hi: 0x90}, - // Block 0x71, offset 0x260 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x263 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x73, offset 0x26b - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x74, offset 0x272 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x75, offset 0x275 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x76, offset 0x278 - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x77, offset 0x27a - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x78, offset 0x27d - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x79, offset 0x285 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - {value: 0x8132, lo: 0x9e, hi: 0x9e}, - // Block 0x7a, offset 0x289 - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7b, offset 0x290 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7c, offset 0x293 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7d, offset 0x299 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7e, offset 0x29b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7f, offset 0x29d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x80, offset 0x2a0 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x81, offset 0x2a2 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb9, hi: 0xb9}, - {value: 0x8102, lo: 0xba, hi: 0xba}, - // Block 0x82, offset 0x2a5 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x83, offset 0x2a7 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x84, offset 0x2a9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x85, offset 0x2ab - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x86, offset 0x2ae - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x97, hi: 0x97}, - // Block 0x87, offset 0x2b0 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x88, offset 0x2b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x89, offset 0x2b4 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x8a, offset 0x2b6 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8b, offset 0x2c3 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x8c, offset 0x2cd - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x8d, offset 0x2cf - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8e, offset 0x2d1 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x8f, offset 0x2d5 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x90, offset 0x2da - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x91, offset 0x2e6 - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x92, offset 0x2eb - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x93, offset 0x2f4 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x94, offset 0x2fa - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x95, offset 0x2ff - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x96, offset 0x303 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x97, offset 0x308 - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x98, offset 0x30c - {value: 0x0003, lo: 0x0f}, - {value: 0x01b8, lo: 0x80, hi: 0x80}, - {value: 0x045f, lo: 0x81, hi: 0x81}, - {value: 0x01bb, lo: 0x82, hi: 0x9a}, - {value: 0x045b, lo: 0x9b, hi: 0x9b}, - {value: 0x01c7, lo: 0x9c, hi: 0x9c}, - {value: 0x01d0, lo: 0x9d, hi: 0x9d}, - {value: 0x01d6, lo: 0x9e, hi: 0x9e}, - {value: 0x01fa, lo: 0x9f, hi: 0x9f}, - {value: 0x01eb, lo: 0xa0, hi: 0xa0}, - {value: 0x01e8, lo: 0xa1, hi: 0xa1}, - {value: 0x0173, lo: 0xa2, hi: 0xb2}, - {value: 0x0188, lo: 0xb3, hi: 0xb3}, - {value: 0x01a6, lo: 0xb4, hi: 0xba}, - {value: 0x045f, lo: 0xbb, hi: 0xbb}, - {value: 0x01bb, lo: 0xbc, hi: 0xbf}, - // Block 0x99, offset 0x31c - {value: 0x0003, lo: 0x0d}, - {value: 0x01c7, lo: 0x80, hi: 0x94}, - {value: 0x045b, lo: 0x95, hi: 0x95}, - {value: 0x01c7, lo: 0x96, hi: 0x96}, - {value: 0x01d0, lo: 0x97, hi: 0x97}, - {value: 0x01d6, lo: 0x98, hi: 0x98}, - {value: 0x01fa, lo: 0x99, hi: 0x99}, - {value: 0x01eb, lo: 0x9a, hi: 0x9a}, - {value: 0x01e8, lo: 0x9b, hi: 0x9b}, - {value: 0x0173, lo: 0x9c, hi: 0xac}, - {value: 0x0188, lo: 0xad, hi: 0xad}, - {value: 0x01a6, lo: 0xae, hi: 0xb4}, - {value: 0x045f, lo: 0xb5, hi: 0xb5}, - {value: 0x01bb, lo: 0xb6, hi: 0xbf}, - // Block 0x9a, offset 0x32a - {value: 0x0003, lo: 0x0d}, - {value: 0x01d9, lo: 0x80, hi: 0x8e}, - {value: 0x045b, lo: 0x8f, hi: 0x8f}, - {value: 0x01c7, lo: 0x90, hi: 0x90}, - {value: 0x01d0, lo: 0x91, hi: 0x91}, - {value: 0x01d6, lo: 0x92, hi: 0x92}, - {value: 0x01fa, lo: 0x93, hi: 0x93}, - {value: 0x01eb, lo: 0x94, hi: 0x94}, - {value: 0x01e8, lo: 0x95, hi: 0x95}, - {value: 0x0173, lo: 0x96, hi: 0xa6}, - {value: 0x0188, lo: 0xa7, hi: 0xa7}, - {value: 0x01a6, lo: 0xa8, hi: 0xae}, - {value: 0x045f, lo: 0xaf, hi: 0xaf}, - {value: 0x01bb, lo: 0xb0, hi: 0xbf}, - // Block 0x9b, offset 0x338 - {value: 0x0003, lo: 0x0d}, - {value: 0x01eb, lo: 0x80, hi: 0x88}, - {value: 0x045b, lo: 0x89, hi: 0x89}, - {value: 0x01c7, lo: 0x8a, hi: 0x8a}, - {value: 0x01d0, lo: 0x8b, hi: 0x8b}, - {value: 0x01d6, lo: 0x8c, hi: 0x8c}, - {value: 0x01fa, lo: 0x8d, hi: 0x8d}, - {value: 0x01eb, lo: 0x8e, hi: 0x8e}, - {value: 0x01e8, lo: 0x8f, hi: 0x8f}, - {value: 0x0173, lo: 0x90, hi: 0xa0}, - {value: 0x0188, lo: 0xa1, hi: 0xa1}, - {value: 0x01a6, lo: 0xa2, hi: 0xa8}, - {value: 0x045f, lo: 0xa9, hi: 0xa9}, - {value: 0x01bb, lo: 0xaa, hi: 0xbf}, - // Block 0x9c, offset 0x346 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x9d, offset 0x34c - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x9e, offset 0x34e - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x9f, offset 0x351 - {value: 0x0002, lo: 0x09}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1951, lo: 0x8a, hi: 0x8a}, - {value: 0x1981, lo: 0x8b, hi: 0x8b}, - {value: 0x199c, lo: 0x8c, hi: 0x8c}, - {value: 0x19a2, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, - {value: 0x19ae, lo: 0x8f, hi: 0x8f}, - {value: 0x197b, lo: 0xaa, hi: 0xaa}, - {value: 0x197e, lo: 0xab, hi: 0xab}, - // Block 0xa0, offset 0x35b - {value: 0x0000, lo: 0x01}, - {value: 0x193f, lo: 0x90, hi: 0x90}, - // Block 0xa1, offset 0x35d - {value: 0x0028, lo: 0x09}, - {value: 0x2862, lo: 0x80, hi: 0x80}, - {value: 0x2826, lo: 0x81, hi: 0x81}, - {value: 0x2830, lo: 0x82, hi: 0x82}, - {value: 0x2844, lo: 0x83, hi: 0x84}, - {value: 0x284e, lo: 0x85, hi: 0x86}, - {value: 0x283a, lo: 0x87, hi: 0x87}, - {value: 0x2858, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once - -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 53KB (54514 bytes) diff --git a/backend/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/backend/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go deleted file mode 100644 index 11b27330..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +++ /dev/null @@ -1,7711 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 - -package norm - -import "sync" - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "12.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [55]uint8{ - 0, 1, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, - 84, 91, 103, 107, 118, 122, 129, 130, - 132, 202, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x186D - firstCCC = 0x2CA1 - endMulti = 0x2F63 - firstLeadingCCC = 0x49B1 - firstCCCZeroExcept = 0x4A7B - firstStarterWithNLead = 0x4AA2 - lastDecomp = 0x4AA4 - maxDecomp = 0x8000 -) - -// decomps: 19108 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, - 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, - 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, - 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, - 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, - 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, - 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, - 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, - 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, - 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, - 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, - 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, - 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, - 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, - 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, - 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, - 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, - 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, - // Bytes 200 - 23f - 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, - 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, - 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, - 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, - 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, - 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, - 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, - 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, - 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, - 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, - 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, - 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, - 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, - 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, - 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, - 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, - 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, - 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, - 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, - 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, - 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, - 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, - 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, - 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, - 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, - 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, - 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, - 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, - 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, - // Bytes 300 - 33f - 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, - 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, - 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, - 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, - 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, - 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, - 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, - 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, - // Bytes 340 - 37f - 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, - 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, - 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, - 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, - 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, - 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, - 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, - 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, - // Bytes 380 - 3bf - 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, - 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, - 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, - 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, - 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, - 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, - 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, - 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, - // Bytes 3c0 - 3ff - 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, - 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, - 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, - 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, - 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, - 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, - 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, - 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, - // Bytes 400 - 43f - 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, - 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, - 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, - 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, - 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, - 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, - 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, - 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, - // Bytes 440 - 47f - 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, - 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, - 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, - 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, - 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, - 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, - 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, - 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, - // Bytes 480 - 4bf - 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, - 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, - 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, - 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, - 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, - 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, - 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, - 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, - // Bytes 4c0 - 4ff - 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, - 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, - 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, - 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, - 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, - 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, - 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, - 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, - // Bytes 500 - 53f - 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, - 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, - 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, - 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, - 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, - 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, - 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, - 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, - // Bytes 540 - 57f - 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, - 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, - 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, - 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, - 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, - 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, - 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, - 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, - // Bytes 580 - 5bf - 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, - 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, - 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, - 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, - 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, - 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, - 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, - 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, - // Bytes 5c0 - 5ff - 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, - 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, - 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, - 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, - 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, - 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, - 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, - 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, - // Bytes 600 - 63f - 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, - 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, - 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, - 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, - 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, - 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, - 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, - 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, - // Bytes 640 - 67f - 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, - 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, - 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, - 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, - 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, - 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, - 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, - 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, - // Bytes 680 - 6bf - 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, - 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, - 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, - 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, - 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, - 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, - 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, - 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, - // Bytes 6c0 - 6ff - 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, - 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, - 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, - 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, - 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, - 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, - 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, - 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, - // Bytes 700 - 73f - 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, - 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, - 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, - 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, - 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, - 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, - 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, - 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, - // Bytes 740 - 77f - 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, - 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, - 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, - 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, - 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, - 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, - 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, - 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, - // Bytes 780 - 7bf - 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, - 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, - 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, - 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, - 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, - 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, - 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, - 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, - // Bytes 7c0 - 7ff - 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, - 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, - 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, - 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, - 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, - 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, - 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, - 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, - // Bytes 800 - 83f - 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, - 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, - 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, - 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, - 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, - 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, - 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, - 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, - // Bytes 840 - 87f - 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, - 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, - 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, - 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, - 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, - 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, - 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, - 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, - // Bytes 880 - 8bf - 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, - 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, - 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, - 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, - 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, - 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, - 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, - 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, - // Bytes 8c0 - 8ff - 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, - 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, - 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, - 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, - 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, - 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, - 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, - 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, - // Bytes 900 - 93f - 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, - 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, - 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, - 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, - 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, - 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, - 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, - 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, - // Bytes 940 - 97f - 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, - 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, - 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, - 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, - 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, - 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, - 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, - 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, - // Bytes 980 - 9bf - 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, - 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, - 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, - 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, - 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, - 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, - 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, - 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, - // Bytes 9c0 - 9ff - 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, - 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, - 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, - 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, - 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, - 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, - 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, - 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, - // Bytes a00 - a3f - 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, - 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, - 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, - 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, - 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, - 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, - 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, - 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, - // Bytes a40 - a7f - 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, - 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, - 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, - 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, - 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, - 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, - 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, - 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, - // Bytes a80 - abf - 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, - 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, - 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, - 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, - 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, - 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, - 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, - 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, - // Bytes ac0 - aff - 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, - 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, - 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, - 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, - 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, - 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, - 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, - 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, - // Bytes b00 - b3f - 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, - 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, - 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, - 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, - 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, - 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, - 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, - 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, - // Bytes b40 - b7f - 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, - 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, - 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, - 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, - 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, - 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, - 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, - 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, - // Bytes b80 - bbf - 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, - 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, - 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, - 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, - 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, - 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, - 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, - 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, - // Bytes bc0 - bff - 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, - 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, - 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, - 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, - 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, - 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, - 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, - 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, - // Bytes c00 - c3f - 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, - 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, - 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, - 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, - 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, - 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, - 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, - 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, - // Bytes c40 - c7f - 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, - 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, - 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, - 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, - 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, - 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, - 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, - 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, - // Bytes c80 - cbf - 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, - 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, - 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, - 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, - 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, - 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, - 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, - 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, - // Bytes cc0 - cff - 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, - 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, - 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, - 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, - 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, - 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, - 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, - 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, - // Bytes d00 - d3f - 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, - 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, - 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, - 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, - 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, - 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, - 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, - 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, - // Bytes d40 - d7f - 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, - 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, - 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, - 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, - 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, - 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, - 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, - 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, - // Bytes d80 - dbf - 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, - 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, - 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, - 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, - 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, - 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, - 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, - 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, - // Bytes dc0 - dff - 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, - 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, - 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, - 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, - 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, - 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, - 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, - 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, - // Bytes e00 - e3f - 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, - 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, - 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, - 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, - 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, - 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, - 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, - 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, - // Bytes e40 - e7f - 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, - 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, - 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, - 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, - 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, - 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, - 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, - 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, - // Bytes e80 - ebf - 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, - 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, - 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, - 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, - 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, - 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, - 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, - 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, - // Bytes ec0 - eff - 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, - 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, - 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, - 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, - 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, - 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, - 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, - 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, - // Bytes f00 - f3f - 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, - 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, - 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, - 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, - 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, - 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, - 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, - 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, - // Bytes f40 - f7f - 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, - 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, - 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, - 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, - 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, - 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, - 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, - 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, - // Bytes f80 - fbf - 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, - 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, - 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, - 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, - 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, - 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, - 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, - 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, - // Bytes fc0 - fff - 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, - 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, - 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, - 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, - 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, - 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, - 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, - 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, - // Bytes 1000 - 103f - 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, - 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, - 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, - 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, - 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, - 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, - 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, - 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, - // Bytes 1040 - 107f - 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, - 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, - 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, - 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, - 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, - 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, - 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, - 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, - // Bytes 1080 - 10bf - 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, - 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, - 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, - 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, - 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, - 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, - 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, - 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, - // Bytes 10c0 - 10ff - 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, - 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, - 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, - 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, - 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, - 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, - 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, - 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, - // Bytes 1100 - 113f - 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, - 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, - 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, - 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, - 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, - 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, - 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, - 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, - // Bytes 1140 - 117f - 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, - 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, - 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, - 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, - 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, - 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, - 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, - 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, - // Bytes 1180 - 11bf - 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, - 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, - 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, - 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, - 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, - 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, - 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, - 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, - // Bytes 11c0 - 11ff - 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, - 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, - 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, - 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, - 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, - 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, - 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, - 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, - // Bytes 1200 - 123f - 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, - 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, - 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, - 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, - 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, - 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, - 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, - 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, - // Bytes 1240 - 127f - 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, - 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, - 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, - 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, - 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, - 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, - 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, - 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, - // Bytes 1280 - 12bf - 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, - 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, - 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, - 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, - 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, - 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, - 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, - 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, - // Bytes 12c0 - 12ff - 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, - 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, - 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, - 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, - 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, - 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, - 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, - 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, - // Bytes 1300 - 133f - 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, - 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, - 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, - 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, - 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, - 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, - 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, - 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, - // Bytes 1340 - 137f - 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, - 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, - 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, - 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, - 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, - 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, - 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, - 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, - // Bytes 1380 - 13bf - 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, - 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, - 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, - 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, - 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, - 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, - 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, - 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, - // Bytes 13c0 - 13ff - 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, - 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, - 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, - 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, - 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, - 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, - 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, - 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, - // Bytes 1400 - 143f - 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, - 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, - 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, - 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, - 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, - 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, - 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, - 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, - // Bytes 1440 - 147f - 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, - 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, - 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, - 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, - 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, - 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, - 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, - 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, - // Bytes 1480 - 14bf - 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, - 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, - 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, - 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, - 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, - 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, - 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, - 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, - // Bytes 14c0 - 14ff - 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, - 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, - 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, - 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, - 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, - 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, - 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, - 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, - // Bytes 1500 - 153f - 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, - 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, - 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, - 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, - 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, - 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, - 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, - 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, - // Bytes 1540 - 157f - 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, - 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, - 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, - 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, - 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, - 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, - 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, - 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, - // Bytes 1580 - 15bf - 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, - 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, - 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, - 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, - 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, - 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, - 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, - 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, - // Bytes 15c0 - 15ff - 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, - 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, - 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, - 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, - 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, - 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, - 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, - 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, - // Bytes 1600 - 163f - 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, - 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, - 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, - 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, - 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, - 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, - 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, - 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, - // Bytes 1640 - 167f - 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, - 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, - 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, - 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, - 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, - 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, - 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, - 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, - // Bytes 1680 - 16bf - 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, - 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, - 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, - 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, - 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, - 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, - 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, - 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, - // Bytes 16c0 - 16ff - 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, - 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, - 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, - 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, - 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, - 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, - 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, - 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, - // Bytes 1700 - 173f - 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, - 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, - 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, - 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, - 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, - 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, - 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, - 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, - // Bytes 1740 - 177f - 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, - 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, - 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, - 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, - 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, - 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, - 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, - 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, - // Bytes 1780 - 17bf - 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, - 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, - 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, - 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, - 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, - 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, - 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, - 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, - // Bytes 17c0 - 17ff - 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, - 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, - 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, - 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, - 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, - 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, - 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, - 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, - // Bytes 1800 - 183f - 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, - 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, - 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, - 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, - 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, - 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, - 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, - 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, - // Bytes 1840 - 187f - 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, - 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, - 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, - 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, - 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, - 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, - 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, - 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, - 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, - 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, - 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, - 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, - 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, - 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, - 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, - 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, - 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, - 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, - 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, - 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, - 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, - 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, - // Bytes 1900 - 193f - 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, - 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, - 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, - 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, - 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, - 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, - 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, - 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, - // Bytes 1940 - 197f - 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, - 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, - 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, - 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, - 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, - 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, - 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, - 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42, - 0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A, - 0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50, - 0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42, - 0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53, - 0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56, - 0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42, - 0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64, - 0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42, - 0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56, - 0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66, - 0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42, - 0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E, - 0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B, - 0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D, - 0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C, - 0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42, - 0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41, - 0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D, - 0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42, - 0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41, - 0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42, - 0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41, - 0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70, - 0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42, - 0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69, - 0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43, - 0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43, - 0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43, - // Bytes 1a80 - 1abf - 0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43, - 0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43, - 0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43, - 0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43, - 0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43, - 0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43, - 0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43, - 0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43, - // Bytes 1ac0 - 1aff - 0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43, - 0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43, - 0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43, - 0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43, - 0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43, - 0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43, - 0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43, - 0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43, - // Bytes 1b00 - 1b3f - 0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43, - 0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43, - 0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43, - 0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43, - 0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43, - 0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43, - 0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43, - 0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43, - // Bytes 1b40 - 1b7f - 0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43, - 0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43, - 0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43, - 0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43, - 0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43, - 0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43, - 0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43, - 0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43, - // Bytes 1b80 - 1bbf - 0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43, - 0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43, - 0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43, - 0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43, - 0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43, - 0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43, - 0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43, - 0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43, - // Bytes 1bc0 - 1bff - 0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43, - 0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43, - 0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43, - 0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43, - 0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43, - 0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43, - 0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43, - 0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43, - // Bytes 1c00 - 1c3f - 0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43, - 0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43, - 0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43, - 0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43, - 0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43, - 0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43, - 0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43, - 0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43, - // Bytes 1c40 - 1c7f - 0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43, - 0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43, - 0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43, - 0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43, - 0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43, - 0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43, - 0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43, - 0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43, - // Bytes 1c80 - 1cbf - 0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29, - 0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31, - 0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44, - 0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35, - 0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28, - 0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29, - 0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32, - 0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44, - // Bytes 1cc0 - 1cff - 0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97, - 0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31, - 0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5, - 0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7, - 0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44, - 0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82, - 0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34, - 0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9, - // Bytes 1d00 - 1d3f - 0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6, - 0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44, - 0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C, - 0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37, - 0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88, - 0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6, - 0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44, - 0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97, - // Bytes 1d40 - 1d7f - 0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39, - 0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49, - 0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63, - 0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44, - 0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6, - 0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5, - 0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD, - 0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE, - // Bytes 1d80 - 1dbf - 0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44, - 0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8, - 0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8, - 0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1, - 0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8, - 0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44, - 0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9, - 0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1dc0 - 1dff - 0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD, - 0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA, - 0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44, - 0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9, - 0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8, - 0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A, - 0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB, - 0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44, - // Bytes 1e00 - 1e3f - 0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9, - 0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8, - 0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A, - 0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC, - 0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44, - 0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8, - 0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8, - 0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A, - // Bytes 1e40 - 1e7f - 0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE, - 0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44, - 0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9, - 0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8, - 0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE, - 0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3, - 0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44, - 0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9, - // Bytes 1e80 - 1ebf - 0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8, - 0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE, - 0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4, - 0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44, - 0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9, - 0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8, - 0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1, - 0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5, - // Bytes 1ec0 - 1eff - 0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44, - 0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8, - 0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8, - 0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85, - 0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6, - 0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44, - 0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9, - 0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1f00 - 1f3f - 0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC, - 0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9, - 0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44, - 0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9, - 0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8, - 0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC, - 0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81, - 0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44, - // Bytes 1f40 - 1f7f - 0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9, - 0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9, - 0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89, - 0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83, - 0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44, - 0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8, - 0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9, - 0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89, - // Bytes 1f80 - 1fbf - 0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84, - 0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44, - 0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8, - 0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9, - 0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89, - 0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85, - 0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44, - 0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8, - // Bytes 1fc0 - 1fff - 0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9, - 0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A, - 0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86, - 0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44, - 0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8, - 0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9, - 0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87, - 0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86, - // Bytes 2000 - 203f - 0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44, - 0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9, - 0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9, - 0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC, - 0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A, - 0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44, - 0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9, - 0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9, - // Bytes 2040 - 207f - 0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89, - 0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A, - 0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45, - 0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1, - 0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83, - 0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45, - 0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1, - 0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89, - // Bytes 2080 - 20bf - 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45, - 0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1, - 0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F, - 0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45, - 0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1, - 0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80, - 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45, - 0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4, - // Bytes 20c0 - 20ff - 0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C, - 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45, - 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4, - 0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91, - 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45, - 0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5, - 0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81, - 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45, - // Bytes 2100 - 213f - 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5, - 0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B, - 0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45, - 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6, - 0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88, - 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45, - 0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6, - 0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4, - // Bytes 2140 - 217f - 0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45, - 0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7, - 0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE, - 0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45, - 0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8, - 0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3, - 0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45, - 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9, - // Bytes 2180 - 21bf - 0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84, - 0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45, - 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30, - 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97, - 0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45, - 0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32, - 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C, - 0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45, - // Bytes 21c0 - 21ff - 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33, - 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97, - 0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45, - 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35, - 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97, - 0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45, - 0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37, - 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97, - // Bytes 2200 - 223f - 0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45, - 0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39, - 0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84, - 0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45, - 0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2, - 0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84, - 0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45, - 0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2, - // Bytes 2240 - 227f - 0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97, - 0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45, - 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31, - 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97, - 0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45, - 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33, - 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97, - 0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45, - // Bytes 2280 - 22bf - 0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36, - 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97, - 0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45, - 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2, - 0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84, - 0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45, - 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2, - 0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84, - // Bytes 22c0 - 22ff - 0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45, - 0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2, - 0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84, - 0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45, - 0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2, - 0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95, - 0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30, - 0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46, - // Bytes 2300 - 233f - 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8, - 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8, - 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, - 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, - 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, - 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46, - 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, - // Bytes 2340 - 237f - 0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9, - 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85, - 0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, - 0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, - 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, - // Bytes 2380 - 23bf - 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9, - 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, - 0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8, - 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3, - 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8, - // Bytes 23c0 - 23ff - 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, - 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, - 0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD, - 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46, - 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4, - 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9, - 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85, - // Bytes 2400 - 243f - 0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, - 0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46, - 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8, - 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6, - 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8, - 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE, - 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, - // Bytes 2440 - 247f - 0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, - 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9, - 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, - // Bytes 2480 - 24bf - 0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46, - 0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, - 0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82, - 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, - 0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46, - // Bytes 24c0 - 24ff - 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, - 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD, - 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, - // Bytes 2500 - 253f - 0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85, - 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD, - 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46, - 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, - 0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85, - // Bytes 2540 - 257f - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC, - 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46, - 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, - 0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86, - 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9, - // Bytes 2580 - 25bf - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85, - 0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9, - 0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - // Bytes 25c0 - 25ff - 0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - // Bytes 2600 - 263f - 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D, - 0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, - 0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, - 0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, - // Bytes 2640 - 267f - 0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46, - 0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, - 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, - 0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, - 0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46, - // Bytes 2680 - 26bf - 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, - 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, - 0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46, - 0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3, - // Bytes 26c0 - 26ff - 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82, - 0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3, - 0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83, - 0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, - 0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3, - 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4, - // Bytes 2700 - 273f - 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3, - 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6, - 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92, - 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, - 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80, - 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83, - // Bytes 2740 - 277f - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, - // Bytes 2780 - 27bf - 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, - 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8, - // Bytes 27c0 - 27ff - 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, - 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3, - 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB, - 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5, - 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8, - 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF, - 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, - // Bytes 2800 - 283f - 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, - 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89, - 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4, - 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, - // Bytes 2840 - 287f - 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49, - 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80, - 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93, - 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, - 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, - 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49, - 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80, - 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97, - // Bytes 2880 - 28bf - 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, - 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83, - 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, - 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82, - 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49, - // Bytes 28c0 - 28ff - 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, - 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, - 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49, - 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82, - 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3, - // Bytes 2900 - 293f - 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49, - 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49, - 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, - // Bytes 2940 - 297f - 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, - 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49, - 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, - // Bytes 2980 - 29bf - 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49, - 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, - 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, - // Bytes 29c0 - 29ff - 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, - 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3, - 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, - 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, - 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, - 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82, - 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, - 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82, - // Bytes 2a40 - 2a7f - 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3, - // Bytes 2a80 - 2abf - 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, - 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82, - 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C, - 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, - 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, - 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, - 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, - 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F, - // Bytes 2b00 - 2b3f - 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9, - 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F, - 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F, - 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F, - 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F, - // Bytes 2b40 - 2b7f - 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F, - 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, - 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F, - // Bytes 2b80 - 2bbf - 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F, - 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51, - 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, - 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB, - // Bytes 2bc0 - 2bff - 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52, - 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82, - // Bytes 2c00 - 2c3f - 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, - 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, - 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, - 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, - 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9, - // Bytes 2c40 - 2c7f - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83, - 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, - 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61, - // Bytes 2c80 - 2cbf - 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8, - 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20, - 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, - 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, - 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, - 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97, - 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, - 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96, - // Bytes 2cc0 - 2cff - 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, - 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, - 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE, - 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, - 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, - 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, - 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, - 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, - // Bytes 2d00 - 2d3f - 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, - 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97, - 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, - 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, - 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, - 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, - // Bytes 2d40 - 2d7f - 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, - 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, - // Bytes 2d80 - 2dbf - 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91, - 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2, - 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, - 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08, - 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97, - 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, - 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, - 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91, - // Bytes 2dc0 - 2dff - 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08, - 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF, - 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91, - 0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, - 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, - 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, - 0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44, - 0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A, - // Bytes 2e00 - 2e3f - 0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, - // Bytes 2e40 - 2e7f - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, - 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, - // Bytes 2e80 - 2ebf - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, - 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, - 0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, - 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1, - 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, - 0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, - // Bytes 2ec0 - 2eff - 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, - 0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1, - 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, - 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, - 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, - // Bytes 2f00 - 2f3f - 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, - 0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, - 0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3, - 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52, - // Bytes 2f40 - 2f7f - 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0, - 0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, - 0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, - 0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03, - 0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83, - // Bytes 2f80 - 2fbf - 0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41, - 0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9, - 0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC, - 0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03, - 0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87, - 0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42, - 0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9, - 0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC, - // Bytes 2fc0 - 2fff - 0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03, - 0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C, - 0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44, - 0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5, - 0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC, - 0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03, - 0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86, - 0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45, - // Bytes 3000 - 303f - 0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9, - 0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC, - 0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03, - 0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD, - 0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46, - 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9, - 0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC, - 0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03, - // Bytes 3040 - 307f - 0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C, - 0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48, - 0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9, - 0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC, - 0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03, - 0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE, - 0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49, - 0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9, - // Bytes 3080 - 30bf - 0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC, - 0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03, - 0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89, - 0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49, - 0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9, - 0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC, - 0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03, - 0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81, - // Bytes 30c0 - 30ff - 0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B, - 0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5, - 0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC, - 0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03, - 0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD, - 0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D, - 0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9, - 0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, - // Bytes 3100 - 313f - 0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03, - 0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87, - 0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E, - 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5, - 0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC, - 0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03, - 0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86, - 0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F, - // Bytes 3140 - 317f - 0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9, - 0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC, - 0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03, - 0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81, - 0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52, - 0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9, - 0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC, - 0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3180 - 31bf - 0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87, - 0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53, - 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9, - 0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC, - 0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03, - 0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD, - 0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55, - 0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9, - // Bytes 31c0 - 31ff - 0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC, - 0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03, - 0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B, - 0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55, - 0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9, - 0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC, - 0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03, - 0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0, - // Bytes 3200 - 323f - 0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56, - 0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9, - 0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC, - 0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03, - 0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3, - 0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58, - 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9, - 0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC, - // Bytes 3240 - 327f - 0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03, - 0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87, - 0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59, - 0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5, - 0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC, - 0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03, - 0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3, - 0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61, - // Bytes 3280 - 32bf - 0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9, - 0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC, - 0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03, - 0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F, - 0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61, - 0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5, - 0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC, - 0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 32c0 - 32ff - 0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82, - 0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63, - 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9, - 0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, - 0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03, - 0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1, - 0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65, - 0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9, - // Bytes 3300 - 333f - 0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC, - 0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03, - 0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C, - 0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65, - 0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5, - 0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC, - 0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03, - 0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82, - // Bytes 3340 - 337f - 0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67, - 0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9, - 0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC, - 0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03, - 0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88, - 0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68, - 0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5, - 0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC, - // Bytes 3380 - 33bf - 0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03, - 0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82, - 0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69, - 0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9, - 0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC, - 0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03, - 0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3, - 0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69, - // Bytes 33c0 - 33ff - 0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9, - 0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, - 0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03, - 0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7, - 0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C, - 0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9, - 0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC, - 0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3400 - 343f - 0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87, - 0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, - 0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9, - 0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC, - 0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03, - 0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7, - 0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E, - 0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9, - // Bytes 3440 - 347f - 0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC, - 0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03, - 0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C, - 0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F, - 0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9, - 0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, - 0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03, - 0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F, - // Bytes 3480 - 34bf - 0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72, - 0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5, - 0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC, - 0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03, - 0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87, - 0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74, - 0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5, - 0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC, - // Bytes 34c0 - 34ff - 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03, - 0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80, - 0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75, - 0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9, - 0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC, - 0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03, - 0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F, - 0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75, - // Bytes 3500 - 353f - 0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5, - 0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC, - 0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03, - 0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3, - 0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77, - 0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9, - 0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC, - 0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03, - // Bytes 3540 - 357f - 0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87, - 0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79, - 0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9, - 0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC, - 0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03, - 0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88, - 0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79, - 0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5, - // Bytes 3580 - 35bf - 0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC, - 0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03, - 0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3, - 0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2, - 0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC, - 0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA, - 0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3, - 0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC, - // Bytes 35c0 - 35ff - 0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9, - 0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3, - 0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC, - 0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, - 0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE, - 0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC, - 0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9, - 0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE, - // Bytes 3600 - 363f - 0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC, - 0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9, - 0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE, - 0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD, - 0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9, - 0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE, - 0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC, - 0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9, - // Bytes 3640 - 367f - 0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE, - 0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC, - 0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9, - 0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, - 0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, - 0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, - 0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, - 0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD, - // Bytes 3680 - 36bf - 0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9, - 0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE, - 0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC, - 0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9, - 0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE, - 0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, - 0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9, - 0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE, - // Bytes 36c0 - 36ff - 0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, - 0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, - 0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF, - 0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC, - 0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9, - 0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF, - 0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD, - 0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9, - // Bytes 3700 - 373f - 0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF, - 0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC, - 0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9, - 0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0, - 0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC, - 0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9, - 0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0, - 0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC, - // Bytes 3740 - 377f - 0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9, - 0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0, - 0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC, - 0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9, - 0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0, - 0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, - 0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9, - 0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0, - // Bytes 3780 - 37bf - 0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC, - 0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9, - 0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0, - 0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, - 0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9, - 0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0, - 0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, - 0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9, - // Bytes 37c0 - 37ff - 0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0, - 0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, - 0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9, - 0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0, - 0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC, - 0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9, - 0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1, - 0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC, - // Bytes 3800 - 383f - 0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9, - 0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1, - 0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC, - 0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9, - 0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1, - 0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC, - 0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9, - 0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3, - // Bytes 3840 - 387f - 0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, - 0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, - 0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9, - 0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9, - 0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9, - 0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB, - 0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82, - 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, - // Bytes 3880 - 38bf - 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, - 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA, - 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, - 0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41, - 0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC, - 0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87, - 0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC, - 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, - // Bytes 38c0 - 38ff - 0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, - 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, - 0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45, - 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC, - 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, - 0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, - 0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, - 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA, - // Bytes 3900 - 393f - 0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49, - 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC, - 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82, - 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, - 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, - 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, - 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3940 - 397f - 0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F, - 0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC, - 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84, - 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC, - 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, - 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, - 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, - 0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F, - // Bytes 3980 - 39bf - 0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, - 0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3, - 0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, - 0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, - 0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA, - 0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, - 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55, - 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, - // Bytes 39c0 - 39ff - 0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, - 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, - 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, - 0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55, - 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC, - 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B, - // Bytes 3a00 - 3a3f - 0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61, - 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, - 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86, - 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC, - // Bytes 3a40 - 3a7f - 0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, - 0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, - 0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63, - 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, - 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82, - 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, - 0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, - // Bytes 3a80 - 3abf - 0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA, - 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, - 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65, - 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3, - 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - // Bytes 3ac0 - 3aff - 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, - 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84, - 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, - 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, - 0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, - 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, - // Bytes 3b00 - 3b3f - 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, - 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, - 0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, - 0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, - 0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, - 0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, - 0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73, - // Bytes 3b40 - 3b7f - 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC, - 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84, - 0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, - 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, - 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA, - 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, - 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75, - 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, - // Bytes 3b80 - 3bbf - 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B, - 0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, - 0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA, - 0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05, - 0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1, - 0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF, - 0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90, - // Bytes 3bc0 - 3bff - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, - 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, - // Bytes 3c00 - 3c3f - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, - // Bytes 3c40 - 3c7f - 0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, - // Bytes 3c80 - 3cbf - 0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3cc0 - 3cff - 0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, - 0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, - // Bytes 3d00 - 3d3f - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, - 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, - // Bytes 3d40 - 3d7f - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, - // Bytes 3d80 - 3dbf - 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, - // Bytes 3dc0 - 3dff - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94, - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82, - // Bytes 3e00 - 3e3f - 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, - 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, - 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, - // Bytes 3e40 - 3e7f - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, - 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, - 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, - // Bytes 3e80 - 3ebf - 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, - 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, - 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, - 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, - 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80, - 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81, - // Bytes 3ec0 - 3eff - 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93, - 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94, - 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82, - 0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, - 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, - 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, - 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0, - 0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0, - // Bytes 3f00 - 3f3f - 0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3, - // Bytes 3f40 - 3f7f - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3, - // Bytes 3f80 - 3fbf - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, - // Bytes 3fc0 - 3fff - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3, - // Bytes 4000 - 403f - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3, - // Bytes 4040 - 407f - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, - // Bytes 4080 - 40bf - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, - 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3, - // Bytes 40c0 - 40ff - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3, - 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3, - 0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, - // Bytes 4100 - 413f - 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - // Bytes 4140 - 417f - 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, - // Bytes 4180 - 41bf - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, - // Bytes 41c0 - 41ff - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, - 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, - // Bytes 4200 - 423f - 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, - 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99, - // Bytes 4240 - 427f - 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, - 0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, - 0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, - 0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, - 0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43, - 0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85, - 0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20, - 0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9, - // Bytes 4280 - 42bf - 0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC, - 0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43, - 0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7, - 0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20, - 0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9, - 0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9, - 0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43, - 0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E, - // Bytes 42c0 - 42ff - 0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20, - 0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71, - 0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC, - 0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44, - 0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3, - 0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81, - 0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44, - 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97, - // Bytes 4300 - 433f - 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81, - 0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44, - 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, - 0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81, - 0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44, - 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7, - 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81, - 0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44, - // Bytes 4340 - 437f - 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89, - 0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7, - 0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44, - 0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, - 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF, - 0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44, - 0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94, - 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9, - // Bytes 4380 - 43bf - 0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44, - 0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98, - 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4, - 0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44, - 0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, - 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, - 0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44, - 0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0, - // Bytes 43c0 - 43ff - 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, - 0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44, - 0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, - 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, - 0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44, - 0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, - 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81, - 0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44, - // Bytes 4400 - 443f - 0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2, - 0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, - 0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44, - 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, - 0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44, - 0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80, - 0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F, - // Bytes 4440 - 447f - 0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44, - 0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80, - 0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0, - 0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44, - 0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A, - 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94, - 0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45, - 0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20, - // Bytes 4480 - 44bf - 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, - 0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93, - 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, - 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45, - 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20, - 0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, - // Bytes 44c0 - 44ff - 0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E, - 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, - 0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A, - 0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, - 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, - 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, - 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46, - // Bytes 4500 - 453f - 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46, - 0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46, - 0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46, - 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46, - 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - // Bytes 4540 - 457f - 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46, - 0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46, - 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46, - 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46, - 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46, - // Bytes 4580 - 45bf - 0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46, - 0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46, - 0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46, - 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46, - 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46, - 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46, - 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46, - 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46, - // Bytes 45c0 - 45ff - 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46, - 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48, - 0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, - 0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, - 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9, - 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, - 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49, - 0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, - // Bytes 4600 - 463f - 0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D, - 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, - 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, - 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C, - 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, - // Bytes 4640 - 467f - 0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, - 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, - 0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, - 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, - 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, - 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, - // Bytes 4680 - 46bf - 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, - 0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9, - 0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC, - 0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83, - 0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3, - 0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45, - 0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9, - 0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC, - // Bytes 46c0 - 46ff - 0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83, - 0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82, - 0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F, - 0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9, - 0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC, - 0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83, - 0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3, - 0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53, - // Bytes 4700 - 473f - 0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5, - 0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC, - 0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83, - 0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82, - 0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61, - 0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9, - 0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC, - 0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83, - // Bytes 4740 - 477f - 0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84, - 0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65, - 0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9, - 0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, - 0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83, - 0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87, - 0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F, - 0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5, - // Bytes 4780 - 47bf - 0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC, - 0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83, - 0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3, - 0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75, - 0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9, - 0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91, - 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94, - 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84, - // Bytes 47c0 - 47ff - 0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97, - 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94, - 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84, - 0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F, - 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94, - 0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84, - 0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9, - 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80, - // Bytes 4800 - 483f - 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84, - 0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1, - 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82, - 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84, - 0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, - 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81, - 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84, - 0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, - // Bytes 4840 - 487f - 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88, - 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84, - 0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF, - 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94, - 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84, - 0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85, - 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80, - 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84, - // Bytes 4880 - 48bf - 0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89, - 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82, - 0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, - // Bytes 48c0 - 48ff - 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, - // Bytes 4900 - 493f - 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, - // Bytes 4940 - 497f - 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, - 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, - 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, - // Bytes 4980 - 49bf - 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, - 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, - 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, - 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, - 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, - 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, - 0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC, - 0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32, - // Bytes 49c0 - 49ff - 0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, - // Bytes 4a00 - 4a3f - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, - // Bytes 4a40 - 4a7f - 0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, - 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, - 0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, - 0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, - 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, - 0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, - 0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4a80 - 4abf - 0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26, - 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, - 0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, - 0x9E, 0x26, 0x00, 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 46: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 46 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 48 blocks, 3072 entries, 6144 bytes -// The third block is the zero block. -var nfcValues = [3072]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, - 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, - 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, - 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, - 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, - 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, - 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, - 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, - 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, - 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, - 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, - // Block 0x4, offset 0x100 - 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, - 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, - 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, - 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, - 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, - 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, - 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, - 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, - 0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3, - 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, - 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, - // Block 0x5, offset 0x140 - 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, - 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, - 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, - 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, - 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, - 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, - 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, - 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, - 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, - 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, - 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, - 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, - 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, - 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, - 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, - 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, - 0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337, - 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, - 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, - 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, - 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, - 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, - 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, - 0x1de: 0x305d, 0x1df: 0x3369, - 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, - 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, - 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35a4, - 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, - 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, - 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e, - 0x2c6: 0xa000, 0x2c7: 0x370c, - 0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x3736, 0x302: 0x37ba, - 0x310: 0x3712, 0x311: 0x3796, - 0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0, - 0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2, - 0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0, - 0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808, - 0x338: 0x378a, 0x339: 0x380e, - // Block 0xd, offset 0x340 - 0x351: 0x812d, - 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, - 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, - 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, - 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, - 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, - 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, - 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, - 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, - 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, - 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x812d, - 0x3b0: 0x811e, - // Block 0xf, offset 0x3c0 - 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, - 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, - 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, - 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, - 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, - 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000, - 0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000, - 0x412: 0x2d51, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d59, - 0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, - 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, - 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, - 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, - 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, - 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, - 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, - 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, - 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, - 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, - 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, - // Block 0x12, offset 0x480 - 0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5, - 0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3, - 0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2, - 0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88, - 0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96, - 0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f, - 0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373, - 0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d, - 0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1, - 0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa, - 0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d, - 0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431, - 0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc, - 0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468, - 0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29, - 0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794, - 0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e, - 0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7, - 0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512, - 0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c, - 0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c, - // Block 0x14, offset 0x500 - 0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535, - 0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544, - 0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585, - 0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9, - 0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4, - 0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292, - 0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18, - 0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26, - 0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d, - 0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f, - 0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c, - // Block 0x15, offset 0x540 - 0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73, - 0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4, - 0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2, - 0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9, - 0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8, - 0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14, - 0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76, - 0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d, - 0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b, - 0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d, - // Block 0x16, offset 0x580 - 0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941, - 0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9, - 0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f, - 0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3, - 0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03, - 0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969, - 0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb, - 0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9, - 0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b, - 0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33, - 0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63, - 0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b, - 0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d, - 0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab, - 0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73, - 0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999, - 0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5, - 0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919, - 0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d, - 0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f, - 0x5fc: 0x4873, 0x5fd: 0x4345, - // Block 0x18, offset 0x600 - 0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af, - 0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1, - 0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3, - 0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5, - 0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137, - 0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d, - 0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b, - 0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d, - 0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b, - 0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1, - 0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, - // Block 0x19, offset 0x640 - 0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3, - 0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd, - 0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2, - 0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13, - 0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7, - 0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef, - 0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e, - 0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081, - 0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb, - 0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b, - 0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100, - // Block 0x1a, offset 0x680 - 0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000, - 0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e, - 0x68d: 0xa000, - 0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c, - 0x6a4: 0xa000, 0x6a5: 0xa000, - 0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d, - 0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48, - 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000, - 0x6bc: 0xa000, 0x6bd: 0xa000, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80, - 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e, - 0x6d1: 0xa000, - 0x6d2: 0xa000, - 0x6e2: 0xa000, - 0x6e8: 0xa000, 0x6e9: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8, - 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, - // Block 0x1c, offset 0x700 - 0x706: 0xa000, 0x70b: 0xa000, - 0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000, - 0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000, - 0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000, - 0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63, - 0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b, - 0x72f: 0xa000, - 0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000, - 0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000, - 0x73c: 0x3fc3, 0x73d: 0x3fcb, - // Block 0x1d, offset 0x740 - 0x754: 0x3f03, - 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, - 0x75e: 0x3fd3, - 0x766: 0xa000, - 0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000, - 0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000, - 0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000, - 0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043, - 0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053, - 0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063, - 0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083, - 0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3, - 0x7af: 0xa000, - 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb, - 0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3, - 0x7bd: 0xa000, 0x7be: 0x40cb, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, - 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, - 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, - 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, - 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, - 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, - 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, - 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, - 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, - 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, - 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, - // Block 0x20, offset 0x800 - 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, - 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, - 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, - 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, - 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, - 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, - 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, - 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, - 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, - 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, - 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, - // Block 0x21, offset 0x840 - 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, - 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, - 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, - 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, - 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, - 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, - 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, - 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, - 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, - 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, - 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, - // Block 0x22, offset 0x880 - 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, - 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, - 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, - 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, - 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, - 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, - 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, - 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, - 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, - 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, - 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, - 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, - 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, - 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, - 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, - 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, - 0x8e5: 0x1407, 0x8e6: 0x1433, - 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, - 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, - 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, - 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, - // Block 0x24, offset 0x900 - 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, - 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, - 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, - 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, - 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, - 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, - 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, - 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, - 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, - 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, - 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, - // Block 0x25, offset 0x940 - 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, - 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, - 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, - 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, - 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, - 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, - 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, - 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, - 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, - 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, - 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, - // Block 0x26, offset 0x980 - 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, - 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, - 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, - 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, - 0x998: 0x1617, 0x999: 0x1627, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, - 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, - 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, - 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, - 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, - 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, - 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, - 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, - 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, - 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, - 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, - // Block 0x28, offset 0xa00 - 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, - 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, - 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, - 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, - 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, - 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, - 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, - 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, - 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, - 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, - 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, - // Block 0x29, offset 0xa40 - 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, - 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, - 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, - 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, - 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, - 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, - 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, - 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, - 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, - 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, - 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, - 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, - 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, - 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, - 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, - 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, - 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, - 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, - 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, - 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, - 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, - // Block 0x2b, offset 0xac0 - 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, - 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, - 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, - 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, - 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, - 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, - 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, - 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, - 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, - 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, - 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, - // Block 0x2c, offset 0xb00 - 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, - 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, - 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, - 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, - 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, - 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, - 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, - 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, - 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, - 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, - 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, - // Block 0x2d, offset 0xb40 - 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, - 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, - 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, - 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, - 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, - 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, - 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, - 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, - 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, - 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, - 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, - // Block 0x2e, offset 0xb80 - 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, - 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, - 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, - 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, - 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, - 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, - 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, - 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, - 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, - 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, - 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, - 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, - 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, - 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, - 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, - 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, - 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, - 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, - 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, - 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, - // Block 0x5, offset 0x140 - 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, - 0x14d: 0x5c, - 0x15c: 0x5d, 0x15f: 0x5e, - 0x162: 0x5f, 0x164: 0x60, - 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, - 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, - 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, - // Block 0x6, offset 0x180 - 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, - 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, - 0x1ab: 0x71, - 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, - 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, - // Block 0x8, offset 0x200 - 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, - 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, - 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, - 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, - 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, - // Block 0x9, offset 0x240 - 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, - 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, - 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, - 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, - 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, - 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, - 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, - 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, - // Block 0xa, offset 0x280 - 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, - 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, - 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, - 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, - 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, - 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, - 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, - 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, - 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, - 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, - 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, - // Block 0xc, offset 0x300 - 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, - 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, - 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, - 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, - // Block 0xd, offset 0x340 - 0x347: 0x9c, - 0x34b: 0x9d, 0x34d: 0x9e, - 0x368: 0x9f, 0x36b: 0xa0, - 0x374: 0xa1, - 0x37d: 0xa2, - // Block 0xe, offset 0x380 - 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, - 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, - 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, - 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, - 0x3a0: 0xb2, 0x3a7: 0xb3, - 0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6, - 0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xb9, 0x3ec: 0xba, - // Block 0x10, offset 0x400 - 0x432: 0xbb, - // Block 0x11, offset 0x440 - 0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe, - 0x449: 0xbf, - // Block 0x12, offset 0x480 - 0x480: 0xc0, 0x484: 0xba, - 0x48b: 0xc1, - 0x4a3: 0xc2, 0x4a5: 0xc3, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xc4, - // Block 0x14, offset 0x500 - 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, - 0x528: 0x2d, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 151 entries, 302 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af} - -// nfcSparseValues: 689 entries, 2756 bytes -var nfcSparseValues = [689]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46e5, lo: 0xa0, hi: 0xa1}, - {value: 0x4717, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4843, lo: 0x8a, hi: 0x8a}, - {value: 0x4861, lo: 0x8b, hi: 0x8b}, - {value: 0x36ca, lo: 0x8c, hi: 0x8c}, - {value: 0x36e2, lo: 0x8d, hi: 0x8d}, - {value: 0x4879, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3700, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a8, lo: 0x90, hi: 0x90}, - {value: 0x37b4, lo: 0x91, hi: 0x91}, - {value: 0x37a2, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x381a, lo: 0x97, hi: 0x97}, - {value: 0x37e4, lo: 0x9c, hi: 0x9c}, - {value: 0x37cc, lo: 0x9d, hi: 0x9d}, - {value: 0x37f6, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x3820, lo: 0xb6, hi: 0xb6}, - {value: 0x3826, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3844, lo: 0xa2, hi: 0xa2}, - {value: 0x384a, lo: 0xa3, hi: 0xa3}, - {value: 0x3856, lo: 0xa4, hi: 0xa4}, - {value: 0x3850, lo: 0xa5, hi: 0xa5}, - {value: 0x385c, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x386e, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x3862, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3868, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0xd, offset 0x63 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x68 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x6a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3edb, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x72 - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451f, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x79 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x7c - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455f, lo: 0x9c, hi: 0x9d}, - {value: 0x456f, lo: 0x9f, hi: 0x9f}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x84 - {value: 0x0000, lo: 0x03}, - {value: 0x4597, lo: 0xb3, hi: 0xb3}, - {value: 0x459f, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0x88 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4577, lo: 0x99, hi: 0x9b}, - {value: 0x458f, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0x8c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0x8e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0x90 - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb9, lo: 0x88, hi: 0x88}, - {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, - {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a7, lo: 0x9c, hi: 0x9c}, - {value: 0x45af, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0x99 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc9, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0x9d - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, - {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xa4 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef3, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xa9 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xac - {value: 0x0000, lo: 0x09}, - {value: 0x2ce9, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cf1, lo: 0x87, hi: 0x87}, - {value: 0x2cf9, lo: 0x88, hi: 0x88}, - {value: 0x2f53, lo: 0x8a, hi: 0x8a}, - {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2d01, lo: 0x8a, hi: 0x8a}, - {value: 0x2d11, lo: 0x8b, hi: 0x8b}, - {value: 0x2d09, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xc0 - {value: 0x6be7, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3efb, lo: 0x9a, hi: 0x9a}, - {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, - {value: 0x2de6, lo: 0x9d, hi: 0x9d}, - {value: 0x2d19, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xc8 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xcb - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xcd - {value: 0x0000, lo: 0x02}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x23, offset 0xd0 - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x24, offset 0xd2 - {value: 0x0000, lo: 0x04}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xd7 - {value: 0x0000, lo: 0x10}, - {value: 0x2647, lo: 0x83, hi: 0x83}, - {value: 0x264e, lo: 0x8d, hi: 0x8d}, - {value: 0x2655, lo: 0x92, hi: 0x92}, - {value: 0x265c, lo: 0x97, hi: 0x97}, - {value: 0x2663, lo: 0x9c, hi: 0x9c}, - {value: 0x2640, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a87, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a90, lo: 0xb5, hi: 0xb5}, - {value: 0x45b7, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45bf, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0xe8 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a99, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x2671, lo: 0x93, hi: 0x93}, - {value: 0x2678, lo: 0x9d, hi: 0x9d}, - {value: 0x267f, lo: 0xa2, hi: 0xa2}, - {value: 0x2686, lo: 0xa7, hi: 0xa7}, - {value: 0x268d, lo: 0xac, hi: 0xac}, - {value: 0x266a, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0xf4 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0xf6 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d21, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0xfc - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0xfe - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0x100 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x102 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x104 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x106 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x108 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x10b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x10e - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x110 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x113 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x116 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x11a - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x36, offset 0x11f - {value: 0x0000, lo: 0x08}, - {value: 0x2d69, lo: 0x80, hi: 0x80}, - {value: 0x2d71, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d79, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x37, offset 0x128 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x38, offset 0x12a - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x39, offset 0x12d - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3a, offset 0x12f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3b, offset 0x13a - {value: 0x0004, lo: 0x03}, - {value: 0x0433, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3c, offset 0x13e - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x3d, offset 0x14c - {value: 0x427e, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x3e, offset 0x14f - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, - {value: 0x3bca, lo: 0xae, hi: 0xae}, - // Block 0x3f, offset 0x155 - {value: 0x000e, lo: 0x05}, - {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x40, offset 0x15b - {value: 0x6405, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be6, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bed, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bfb, lo: 0xa4, hi: 0xa5}, - {value: 0x3c02, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x41, offset 0x166 - {value: 0x0007, lo: 0x03}, - {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, - {value: 0x3c95, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbf, lo: 0xaa, hi: 0xad}, - // Block 0x42, offset 0x16a - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x43, offset 0x16c - {value: 0x0000, lo: 0x01}, - {value: 0x44e0, lo: 0x9c, hi: 0x9c}, - // Block 0x44, offset 0x16e - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x45, offset 0x170 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x46, offset 0x172 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x47, offset 0x174 - {value: 0x0000, lo: 0x05}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xaf}, - // Block 0x48, offset 0x17a - {value: 0x0000, lo: 0x03}, - {value: 0x4aa2, lo: 0xb3, hi: 0xb3}, - {value: 0x4aa2, lo: 0xb5, hi: 0xb6}, - {value: 0x4aa2, lo: 0xba, hi: 0xbf}, - // Block 0x49, offset 0x17e - {value: 0x0000, lo: 0x01}, - {value: 0x4aa2, lo: 0x8f, hi: 0xa3}, - // Block 0x4a, offset 0x180 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4b, offset 0x182 - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4c, offset 0x18a - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4d, offset 0x18e - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x4e, offset 0x191 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x4f, offset 0x193 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x50, offset 0x195 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x51, offset 0x197 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x52, offset 0x19a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x53, offset 0x19c - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x54, offset 0x19e - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x55, offset 0x1a0 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x56, offset 0x1a2 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x57, offset 0x1a8 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x58, offset 0x1ab - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x59, offset 0x1ad - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5a, offset 0x1b4 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5b, offset 0x1ba - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5c, offset 0x1c0 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5d, offset 0x1c8 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x5e, offset 0x1ce - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x5f, offset 0x1d4 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x60, offset 0x1da - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x61, offset 0x1de - {value: 0x0006, lo: 0x0d}, - {value: 0x4393, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4405, lo: 0x9f, hi: 0x9f}, - {value: 0x43f3, lo: 0xaa, hi: 0xab}, - {value: 0x44f7, lo: 0xac, hi: 0xac}, - {value: 0x44ff, lo: 0xad, hi: 0xad}, - {value: 0x434b, lo: 0xae, hi: 0xb1}, - {value: 0x4369, lo: 0xb2, hi: 0xb4}, - {value: 0x4381, lo: 0xb5, hi: 0xb6}, - {value: 0x438d, lo: 0xb8, hi: 0xb8}, - {value: 0x4399, lo: 0xb9, hi: 0xbb}, - {value: 0x43b1, lo: 0xbc, hi: 0xbc}, - {value: 0x43b7, lo: 0xbe, hi: 0xbe}, - // Block 0x62, offset 0x1ec - {value: 0x0006, lo: 0x08}, - {value: 0x43bd, lo: 0x80, hi: 0x81}, - {value: 0x43c9, lo: 0x83, hi: 0x84}, - {value: 0x43db, lo: 0x86, hi: 0x89}, - {value: 0x43ff, lo: 0x8a, hi: 0x8a}, - {value: 0x437b, lo: 0x8b, hi: 0x8b}, - {value: 0x4363, lo: 0x8c, hi: 0x8c}, - {value: 0x43ab, lo: 0x8d, hi: 0x8d}, - {value: 0x43d5, lo: 0x8e, hi: 0x8e}, - // Block 0x63, offset 0x1f5 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x64, offset 0x1f8 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x65, offset 0x1fb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x66, offset 0x1fd - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x67, offset 0x200 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x68, offset 0x202 - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xa0, hi: 0xa6}, - {value: 0x812d, lo: 0xa7, hi: 0xad}, - {value: 0x8132, lo: 0xae, hi: 0xaf}, - // Block 0x69, offset 0x206 - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6a, offset 0x20b - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6b, offset 0x20d - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6c, offset 0x20f - {value: 0x0000, lo: 0x04}, - {value: 0x4aa2, lo: 0x9e, hi: 0x9f}, - {value: 0x4aa2, lo: 0xa3, hi: 0xa3}, - {value: 0x4aa2, lo: 0xa5, hi: 0xa6}, - {value: 0x4aa2, lo: 0xaa, hi: 0xaf}, - // Block 0x6d, offset 0x214 - {value: 0x0000, lo: 0x05}, - {value: 0x4aa2, lo: 0x82, hi: 0x87}, - {value: 0x4aa2, lo: 0x8a, hi: 0x8f}, - {value: 0x4aa2, lo: 0x92, hi: 0x97}, - {value: 0x4aa2, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x6e, offset 0x21a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6f, offset 0x21c - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x70, offset 0x21e - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x71, offset 0x220 - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x226 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x73, offset 0x229 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa4, hi: 0xa7}, - // Block 0x74, offset 0x22b - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x8132, lo: 0x88, hi: 0x8a}, - {value: 0x812d, lo: 0x8b, hi: 0x8b}, - {value: 0x8132, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x8d, hi: 0x90}, - // Block 0x75, offset 0x231 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x76, offset 0x234 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x423b, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4245, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424f, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x77, offset 0x23c - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d81, lo: 0xae, hi: 0xae}, - {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x78, offset 0x243 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x79, offset 0x246 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x7a, offset 0x249 - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7b, offset 0x24b - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x7c, offset 0x24e - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d95, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x7d, offset 0x256 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - {value: 0x8132, lo: 0x9e, hi: 0x9e}, - // Block 0x7e, offset 0x25a - {value: 0x6b57, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db3, lo: 0xbb, hi: 0xbb}, - {value: 0x2da9, lo: 0xbc, hi: 0xbd}, - {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, - // Block 0x7f, offset 0x261 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x80, offset 0x264 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc7, lo: 0xba, hi: 0xba}, - {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x81, offset 0x26a - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x82, offset 0x26c - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x83, offset 0x26f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x84, offset 0x271 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb9, hi: 0xb9}, - {value: 0x8102, lo: 0xba, hi: 0xba}, - // Block 0x85, offset 0x274 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - // Block 0x86, offset 0x276 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x87, offset 0x278 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x88, offset 0x27a - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x89, offset 0x27c - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x8a, offset 0x27f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x97, hi: 0x97}, - // Block 0x8b, offset 0x281 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x8c, offset 0x283 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x8d, offset 0x285 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x8e, offset 0x287 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cf, lo: 0x9e, hi: 0x9e}, - {value: 0x45d9, lo: 0x9f, hi: 0x9f}, - {value: 0x460d, lo: 0xa0, hi: 0xa0}, - {value: 0x461b, lo: 0xa1, hi: 0xa1}, - {value: 0x4629, lo: 0xa2, hi: 0xa2}, - {value: 0x4637, lo: 0xa3, hi: 0xa3}, - {value: 0x4645, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8f, offset 0x294 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e3, lo: 0xbb, hi: 0xbb}, - {value: 0x45ed, lo: 0xbc, hi: 0xbc}, - {value: 0x4653, lo: 0xbd, hi: 0xbd}, - {value: 0x466f, lo: 0xbe, hi: 0xbe}, - {value: 0x4661, lo: 0xbf, hi: 0xbf}, - // Block 0x90, offset 0x29e - {value: 0x0000, lo: 0x01}, - {value: 0x467d, lo: 0x80, hi: 0x80}, - // Block 0x91, offset 0x2a0 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x92, offset 0x2a2 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x93, offset 0x2a8 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xac, hi: 0xaf}, - // Block 0x94, offset 0x2aa - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x95, offset 0x2ac - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x96, offset 0x2af - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 92: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 92 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 94 blocks, 6016 entries, 12032 bytes -// The third block is the zero block. -var nfkcValues = [6016]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, - 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, - 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, - 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, - 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, - 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, - 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, - 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, - 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, - 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, - 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, - // Block 0x4, offset 0x100 - 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, - 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, - 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, - 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, - 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, - 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, - 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, - 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, - 0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3, - 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, - 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf, - // Block 0x5, offset 0x140 - 0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, - 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f, - 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, - 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, - 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, - 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, - 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, - 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, - 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, - 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, - 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2df1, 0x185: 0x2df7, - 0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d, - 0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, - 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, - 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, - 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, - 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, - 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, - 0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337, - 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, - 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, - 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, - 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, - 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, - 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, - 0x1de: 0x305d, 0x1df: 0x3369, - 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, - 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, - 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x42a8, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x425d, 0x285: 0x447e, - 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, - 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, - 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861, - 0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e, - 0x306: 0xa000, 0x307: 0x370c, - 0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x3736, 0x342: 0x37ba, - 0x350: 0x3712, 0x351: 0x3796, - 0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0, - 0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2, - 0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0, - 0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808, - 0x378: 0x378a, 0x379: 0x380e, - // Block 0xe, offset 0x380 - 0x387: 0x1d64, - 0x391: 0x812d, - 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, - 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, - 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, - 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, - 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, - 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, - 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, - 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x812d, - 0x3f0: 0x811e, 0x3f5: 0x1d87, - 0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d, - // Block 0x10, offset 0x400 - 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, - 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, - 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, - 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, - 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, - 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, - 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, - 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, - // Block 0x11, offset 0x440 - 0x445: 0xa000, - 0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000, - 0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000, - 0x452: 0x2d51, - 0x474: 0x8102, 0x475: 0x9900, - 0x47a: 0xa000, 0x47b: 0x2d59, - 0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000, - // Block 0x12, offset 0x480 - 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, - 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, - 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, - 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, - 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, - 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, - 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, - 0x4aa: 0x01fd, - 0x4b8: 0x020c, - // Block 0x13, offset 0x4c0 - 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, - 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, - 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, - 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, - 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, - 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, - 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, - // Block 0x14, offset 0x500 - 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, - 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, - 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, - 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, - 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, - 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, - 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, - 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, - 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, - 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, - 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, - // Block 0x15, offset 0x540 - 0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5, - 0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3, - 0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2, - 0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88, - 0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96, - 0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f, - 0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373, - 0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d, - 0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1, - 0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa, - 0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff, - // Block 0x16, offset 0x580 - 0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d, - 0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431, - 0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc, - 0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468, - 0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29, - 0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794, - 0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e, - 0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7, - 0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512, - 0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c, - 0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535, - 0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544, - 0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585, - 0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9, - 0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da, - 0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292, - 0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18, - 0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26, - 0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d, - 0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f, - 0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c, - // Block 0x18, offset 0x600 - 0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73, - 0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4, - 0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2, - 0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9, - 0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8, - 0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14, - 0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76, - 0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d, - 0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b, - 0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d, - // Block 0x19, offset 0x640 - 0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941, - 0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9, - 0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f, - 0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3, - 0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03, - 0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969, - 0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb, - 0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9, - 0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b, - 0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33, - 0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43, - // Block 0x1a, offset 0x680 - 0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63, - 0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b, - 0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d, - 0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab, - 0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73, - 0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999, - 0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5, - 0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919, - 0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d, - 0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f, - 0x6bc: 0x4873, 0x6bd: 0x4345, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af, - 0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1, - 0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3, - 0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5, - 0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137, - 0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d, - 0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b, - 0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d, - 0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b, - 0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1, - 0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a, - // Block 0x1c, offset 0x700 - 0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3, - 0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd, - 0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2, - 0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13, - 0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1, - 0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef, - 0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e, - 0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081, - 0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb, - 0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b, - 0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f, - // Block 0x1d, offset 0x740 - 0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb, - 0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051, - 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, - 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990, - 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, - 0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab, - 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, - 0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, - 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, - 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b, - 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, - // Block 0x1e, offset 0x780 - 0x780: 0x0463, 0x785: 0x0049, - 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, - 0x790: 0x2231, 0x791: 0x223d, - 0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb, - 0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3, - 0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963, - 0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071, - 0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, - 0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65, - 0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53, - 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, - // Block 0x1f, offset 0x7c0 - 0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000, - 0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e, - 0x7cd: 0xa000, - 0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c, - 0x7e4: 0xa000, 0x7e5: 0xa000, - 0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d, - 0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48, - 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000, - 0x7fc: 0xa000, 0x7fd: 0xa000, - // Block 0x20, offset 0x800 - 0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80, - 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e, - 0x811: 0xa000, - 0x812: 0xa000, - 0x822: 0xa000, - 0x828: 0xa000, 0x829: 0xa000, - 0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8, - 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, - // Block 0x21, offset 0x840 - 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, - 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, - 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, - 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f, - 0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87, - 0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d, - // Block 0x22, offset 0x880 - 0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab, - 0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, - 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63, - 0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b, - 0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb, - 0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13, - 0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b, - 0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43, - 0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b, - 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, - 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, - 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, - 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, - 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, - 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, - 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, - 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, - 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, - 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, - 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, - 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, - // Block 0x24, offset 0x900 - 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, - 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, - 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, - 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, - 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, - 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, - 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, - 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, - 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, - 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, - 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, - // Block 0x25, offset 0x940 - 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, - 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, - 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, - 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, - 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, - 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, - 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, - 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, - 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, - 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, - 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, - // Block 0x26, offset 0x980 - 0x986: 0xa000, 0x98b: 0xa000, - 0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000, - 0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000, - 0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000, - 0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63, - 0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b, - 0x9af: 0xa000, - 0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000, - 0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000, - 0x9bc: 0x3fc3, 0x9bd: 0x3fcb, - // Block 0x27, offset 0x9c0 - 0x9d4: 0x3f03, - 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000, - 0x9de: 0x3fd3, 0x9df: 0x26b7, - 0x9e6: 0xa000, - 0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000, - 0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000, - 0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000, - 0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000, - // Block 0x28, offset 0xa00 - 0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043, - 0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053, - 0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063, - 0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083, - 0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3, - 0xa2f: 0xa000, - 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb, - 0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3, - 0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc, - // Block 0x29, offset 0xa40 - 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, - 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, - 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc, - 0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0, - 0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14, - 0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38, - 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, - 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, - 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, - 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, - 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, - // Block 0x2a, offset 0xa80 - 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, - 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, - 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, - 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, - 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, - 0xa9e: 0x098f, 0xa9f: 0x072f, - // Block 0x2b, offset 0xac0 - 0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075, - 0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099, - 0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744, - 0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783, - 0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf, - 0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b, - 0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3, - 0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111, - 0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147, - 0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117, - 0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9, - // Block 0x2c, offset 0xb00 - 0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03, - 0xb06: 0x0ca7, 0xb07: 0x10c7, - 0xb10: 0x1bc7, 0xb11: 0x18a9, - 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, - 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, - 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, - 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, - 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23, - 0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53, - 0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b, - 0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b, - // Block 0x2d, offset 0xb40 - 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, - 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, - 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, - 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, - 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, - 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, - 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, - 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, - 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, - 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, - 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, - // Block 0x2e, offset 0xb80 - 0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14, - 0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3, - 0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3, - 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, - 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, - 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, - 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, - 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, - 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, - 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, - 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d, - 0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5, - 0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9, - 0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f, - 0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9, - 0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd, - 0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb, - 0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54, - 0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923, - 0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09, - 0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1, - // Block 0x30, offset 0xc00 - 0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f, - 0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93, - 0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9, - 0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987, - 0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a, - 0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7, - 0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5, - 0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d, - 0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a, - 0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704, - 0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3, - // Block 0x31, offset 0xc40 - 0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969, - 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38, - 0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f, - 0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc, - 0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3, - 0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43, - 0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999, - 0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0, - 0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b, - 0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e, - 0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987, - // Block 0x32, offset 0xc80 - 0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0, - 0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e, - 0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11, - 0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993, - 0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7, - 0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1, - 0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189, - 0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3, - 0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b, - 0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291, - 0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, - 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, - 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, - 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, - 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, - 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, - 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, - 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, - 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, - 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, - 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, - // Block 0x34, offset 0xd00 - 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, - 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, - 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, - 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, - 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, - 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, - 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, - 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, - 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, - 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, - 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, - // Block 0x35, offset 0xd40 - 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, - 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, - 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, - 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, - 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, - 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, - 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, - 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, - 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, - 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, - 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, - // Block 0x36, offset 0xd80 - 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, - 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, - 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, - 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, - 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, - 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, - 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, - 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, - 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, - 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, - 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, - 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, - 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, - 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, - 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, - 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, - 0xde5: 0x1407, 0xde6: 0x1433, - 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, - 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, - 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, - 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, - // Block 0x38, offset 0xe00 - 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, - 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, - 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, - 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, - 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, - 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, - 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, - 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, - 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, - 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, - 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, - // Block 0x39, offset 0xe40 - 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, - 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, - 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, - 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, - 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, - 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, - 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, - 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, - 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, - 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, - 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, - // Block 0x3a, offset 0xe80 - 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, - 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, - 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, - 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, - 0xe98: 0x1617, 0xe99: 0x1627, - // Block 0x3b, offset 0xec0 - 0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62, - 0xec6: 0x1a62, - 0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73, - 0xedd: 0x4393, - 0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, - 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, - 0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351, - 0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381, - 0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5, - 0xefc: 0x43b1, 0xefe: 0x43b7, - // Block 0x3c, offset 0xf00 - 0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf, - 0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b, - 0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299, - 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, - 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, - 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, - 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, - 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, - 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, - 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, - 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, - // Block 0x3d, offset 0xf40 - 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, - 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, - 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, - 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, - 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, - 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, - 0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, - 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, - 0xf70: 0x446b, 0xf71: 0x446b, - // Block 0x3e, offset 0xf80 - 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, - 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052, - 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, - 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, - 0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec, - 0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f, - 0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3, - 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c, - 0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe, - 0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0, - 0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c, - 0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e, - 0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc, - 0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03, - 0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35, - 0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53, - 0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71, - 0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2, - 0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0, - 0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002, - 0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025, - 0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f, - 0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9, - 0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa, - 0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9, - 0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb, - 0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13, - 0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58, - // Block 0x41, offset 0x1040 - 0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99, - 0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4, - 0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a, - 0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4, - 0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91, - 0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8, - 0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c, - 0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63, - 0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc, - 0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08, - 0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30, - // Block 0x42, offset 0x1080 - 0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67, - 0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94, - 0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1, - 0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002, - 0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034, - 0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7, - 0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95, - 0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3, - 0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4, - 0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77, - 0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd, - 0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b, - 0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4, - 0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77, - 0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22, - 0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0, - 0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90, - 0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b, - 0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e, - 0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe, - 0x10fc: 0x440b, 0x10fd: 0x440b, - // Block 0x44, offset 0x1100 - 0x1110: 0x2314, 0x1111: 0x2329, - 0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a, - 0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7, - 0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8, - 0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df, - 0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433, - 0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f, - 0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472, - 0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c, - // Block 0x45, offset 0x1140 - 0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2, - 0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521, - 0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f, - 0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b, - 0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f, - 0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368, - 0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409, - 0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591, - 0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd, - 0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa, - 0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392, - // Block 0x46, offset 0x1180 - 0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e, - 0x1186: 0x23c3, 0x1187: 0x2559, - 0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd, - 0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff, - 0x11bc: 0x27d4, - // Block 0x47, offset 0x11c0 - 0x11d0: 0x0019, 0x11d1: 0x0483, - 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, - 0x11d8: 0x04c3, 0x11d9: 0x1b5f, - 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, - 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, - 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, - 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, - 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, - 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, - // Block 0x48, offset 0x1200 - 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, - 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c, - 0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, - 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, - 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, - 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, - 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, - 0x122a: 0x000b, 0x122b: 0x0041, - 0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7, - 0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441, - 0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d, - // Block 0x49, offset 0x1240 - 0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459, - 0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465, - 0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, - 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, - 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, - 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, - 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, - 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, - 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, - 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, - 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, - 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, - 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, - 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, - 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, - 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, - 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, - 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, - 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03, - 0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85, - 0x12bc: 0x1f85, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, - 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, - 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, - 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, - 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, - 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, - 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, - 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, - 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, - 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, - 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, - // Block 0x4c, offset 0x1300 - 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, - 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, - 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, - 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, - 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, - 0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e, - 0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, - 0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e, - 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, - 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, - 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, - // Block 0x4d, offset 0x1340 - 0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2, - 0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea, - 0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02, - 0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26, - 0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38, - 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267, - 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, - 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, - // Block 0x4e, offset 0x1380 - 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, - 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, - 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, - 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, - 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, - 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, - 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, - 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, - 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, - 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, - 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, - 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, - 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, - 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, - 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, - 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, - 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, - 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, - 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, - 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, - 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, - // Block 0x50, offset 0x1400 - 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, - 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, - 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, - 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, - 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, - 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, - 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, - 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, - 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, - 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, - // Block 0x51, offset 0x1440 - 0x1442: 0x0248, - 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, - 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, - 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, - 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, - 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, - 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, - 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, - 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, - 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, - 0x147c: 0x0293, 0x147e: 0x02cc, - // Block 0x52, offset 0x1480 - 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, - 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, - 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, - 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, - 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, - 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, - 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, - 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, - 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, - 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, - 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, - 0x14d0: 0x1a8f, 0x14d1: 0x1a93, - 0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab, - 0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3, - 0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb, - 0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3, - 0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4, - 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, - 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, - 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, - // Block 0x54, offset 0x1500 - 0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503, - 0x1510: 0x0c0f, 0x1511: 0x0a47, - 0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, - 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, - 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, - 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, - 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, - 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, - 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, - // Block 0x55, offset 0x1540 - 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, - 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, - 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, - 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, - 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, - 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, - 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, - 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, - 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, - 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, - 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, - // Block 0x56, offset 0x1580 - 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, - 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, - 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, - 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, - 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, - 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, - 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, - 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, - 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, - 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, - 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, - 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, - 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, - 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, - 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, - 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, - 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, - 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, - 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, - 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, - 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, - // Block 0x58, offset 0x1600 - 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, - 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, - 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, - 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, - 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, - 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, - 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, - 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, - 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, - 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, - 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, - // Block 0x59, offset 0x1640 - 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, - 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, - 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, - 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, - 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, - 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, - 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, - 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, - 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, - 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, - 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, - // Block 0x5a, offset 0x1680 - 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, - 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, - 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, - 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, - 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, - 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, - 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, - 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, - 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, - 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, - 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, - 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, - 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, - 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, - 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, - 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, - 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, - 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, - 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, - 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, - 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, - // Block 0x5c, offset 0x1700 - 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, - 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, - 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, - 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, - 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, - 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, - 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, - 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, - 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, - 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, - 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, - // Block 0x5d, offset 0x1740 - 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, - 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, - 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, - 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, - 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, -} - -// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, - 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, - 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, - 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, - 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, - // Block 0x5, offset 0x140 - 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, - 0x14d: 0x8a, - 0x15c: 0x8b, 0x15f: 0x8c, - 0x162: 0x8d, 0x164: 0x8e, - 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, - 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, - 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, - // Block 0x6, offset 0x180 - 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, - 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, - 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, - 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, - 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, - 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, - 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, - // Block 0x8, offset 0x200 - 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, - 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, - 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, - 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, - 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, - // Block 0x9, offset 0x240 - 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, - 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, - 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, - 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, - 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, - 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, - 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, - 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, - // Block 0xa, offset 0x280 - 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, - 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, - 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, - 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, - 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, - 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, - 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, - 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, - 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, - 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, - 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, - // Block 0xc, offset 0x300 - 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, - 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, - 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, - 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, - // Block 0xd, offset 0x340 - 0x347: 0xc6, - 0x34b: 0xc7, 0x34d: 0xc8, - 0x368: 0xc9, 0x36b: 0xca, - 0x374: 0xcb, - 0x37d: 0xcc, - // Block 0xe, offset 0x380 - 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, - 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, - 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, - 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, - 0x3a0: 0xdd, 0x3a7: 0xde, - 0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1, - 0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xe4, 0x3ec: 0xe5, - // Block 0x10, offset 0x400 - 0x432: 0xe6, - // Block 0x11, offset 0x440 - 0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9, - 0x449: 0xea, - 0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2, - 0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d, - // Block 0x12, offset 0x480 - 0x480: 0xf9, 0x484: 0xe5, - 0x48b: 0xfa, - 0x4a3: 0xfb, 0x4a5: 0xfc, - 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe, - 0x4c8: 0x52, 0x4c9: 0xff, - // Block 0x14, offset 0x500 - 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, - 0x528: 0x5b, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 164 entries, 328 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363} - -// nfkcSparseValues: 877 entries, 3508 bytes -var nfkcSparseValues = [877]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x427b, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4267, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x425d, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x4294, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x221f, lo: 0xbc, hi: 0xbc}, - {value: 0x2213, lo: 0xbd, hi: 0xbd}, - {value: 0x22b5, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46e5, lo: 0xa0, hi: 0xa1}, - {value: 0x4717, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x4271, lo: 0x98, hi: 0x98}, - {value: 0x4276, lo: 0x99, hi: 0x9a}, - {value: 0x4299, lo: 0x9b, hi: 0x9b}, - {value: 0x4262, lo: 0x9c, hi: 0x9c}, - {value: 0x4285, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x0167, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a8, lo: 0x90, hi: 0x90}, - {value: 0x37b4, lo: 0x91, hi: 0x91}, - {value: 0x37a2, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x381a, lo: 0x97, hi: 0x97}, - {value: 0x37e4, lo: 0x9c, hi: 0x9c}, - {value: 0x37cc, lo: 0x9d, hi: 0x9d}, - {value: 0x37f6, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x3820, lo: 0xb6, hi: 0xb6}, - {value: 0x3826, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3844, lo: 0xa2, hi: 0xa2}, - {value: 0x384a, lo: 0xa3, hi: 0xa3}, - {value: 0x3856, lo: 0xa4, hi: 0xa4}, - {value: 0x3850, lo: 0xa5, hi: 0xa5}, - {value: 0x385c, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x386e, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x3862, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3868, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0xc, offset 0x70 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x75 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x77 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3edb, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0xf, offset 0x7f - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451f, lo: 0x98, hi: 0x9f}, - // Block 0x10, offset 0x86 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x11, offset 0x89 - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455f, lo: 0x9c, hi: 0x9d}, - {value: 0x456f, lo: 0x9f, hi: 0x9f}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x91 - {value: 0x0000, lo: 0x03}, - {value: 0x4597, lo: 0xb3, hi: 0xb3}, - {value: 0x459f, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x13, offset 0x95 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4577, lo: 0x99, hi: 0x9b}, - {value: 0x458f, lo: 0x9e, hi: 0x9e}, - // Block 0x14, offset 0x99 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x16, offset 0x9d - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb9, lo: 0x88, hi: 0x88}, - {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, - {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a7, lo: 0x9c, hi: 0x9c}, - {value: 0x45af, lo: 0x9d, hi: 0x9d}, - // Block 0x17, offset 0xa6 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc9, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x18, offset 0xaa - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, - {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x19, offset 0xb1 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef3, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1a, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1b, offset 0xb9 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce9, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cf1, lo: 0x87, hi: 0x87}, - {value: 0x2cf9, lo: 0x88, hi: 0x88}, - {value: 0x2f53, lo: 0x8a, hi: 0x8a}, - {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xc3 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1d, offset 0xc6 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2d01, lo: 0x8a, hi: 0x8a}, - {value: 0x2d11, lo: 0x8b, hi: 0x8b}, - {value: 0x2d09, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1e, offset 0xcd - {value: 0x6be7, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3efb, lo: 0x9a, hi: 0x9a}, - {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, - {value: 0x2de6, lo: 0x9d, hi: 0x9d}, - {value: 0x2d19, lo: 0x9e, hi: 0x9f}, - // Block 0x1f, offset 0xd5 - {value: 0x0000, lo: 0x03}, - {value: 0x2624, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x20, offset 0xd9 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x21, offset 0xdb - {value: 0x0000, lo: 0x03}, - {value: 0x2639, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x22, offset 0xdf - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x262b, lo: 0x9c, hi: 0x9c}, - {value: 0x2632, lo: 0x9d, hi: 0x9d}, - // Block 0x23, offset 0xe3 - {value: 0x0000, lo: 0x05}, - {value: 0x030b, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x24, offset 0xe9 - {value: 0x0000, lo: 0x10}, - {value: 0x2647, lo: 0x83, hi: 0x83}, - {value: 0x264e, lo: 0x8d, hi: 0x8d}, - {value: 0x2655, lo: 0x92, hi: 0x92}, - {value: 0x265c, lo: 0x97, hi: 0x97}, - {value: 0x2663, lo: 0x9c, hi: 0x9c}, - {value: 0x2640, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a87, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a90, lo: 0xb5, hi: 0xb5}, - {value: 0x45b7, lo: 0xb6, hi: 0xb6}, - {value: 0x45f7, lo: 0xb7, hi: 0xb7}, - {value: 0x45bf, lo: 0xb8, hi: 0xb8}, - {value: 0x4602, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x25, offset 0xfa - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a99, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x2671, lo: 0x93, hi: 0x93}, - {value: 0x2678, lo: 0x9d, hi: 0x9d}, - {value: 0x267f, lo: 0xa2, hi: 0xa2}, - {value: 0x2686, lo: 0xa7, hi: 0xa7}, - {value: 0x268d, lo: 0xac, hi: 0xac}, - {value: 0x266a, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0x106 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x27, offset 0x108 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d21, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x28, offset 0x10e - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x29, offset 0x110 - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2a, offset 0x112 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0x114 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x116 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x118 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x11a - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x11c - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x11f - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x122 - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x124 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x127 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x12a - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x12e - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x36, offset 0x133 - {value: 0x0000, lo: 0x08}, - {value: 0x2d69, lo: 0x80, hi: 0x80}, - {value: 0x2d71, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d79, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x37, offset 0x13c - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x38, offset 0x13e - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x39, offset 0x141 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3a, offset 0x143 - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3b, offset 0x14e - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3c, offset 0x159 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x429e, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1873, lo: 0xa5, hi: 0xa5}, - {value: 0x1b5f, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2694, lo: 0xb3, hi: 0xb3}, - {value: 0x2801, lo: 0xb4, hi: 0xb4}, - {value: 0x269b, lo: 0xb6, hi: 0xb6}, - {value: 0x280b, lo: 0xb7, hi: 0xb7}, - {value: 0x186d, lo: 0xbc, hi: 0xbc}, - {value: 0x426c, lo: 0xbe, hi: 0xbe}, - // Block 0x3d, offset 0x167 - {value: 0x0002, lo: 0x0d}, - {value: 0x1933, lo: 0x87, hi: 0x87}, - {value: 0x1930, lo: 0x88, hi: 0x88}, - {value: 0x1870, lo: 0x89, hi: 0x89}, - {value: 0x2991, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x0467, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x3e, offset 0x175 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x0467, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x199c, lo: 0xa8, hi: 0xa8}, - // Block 0x3f, offset 0x185 - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x40, offset 0x193 - {value: 0x0007, lo: 0x06}, - {value: 0x2183, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, - {value: 0x3bca, lo: 0xae, hi: 0xae}, - // Block 0x41, offset 0x19a - {value: 0x000e, lo: 0x05}, - {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x42, offset 0x1a0 - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be6, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bed, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bfb, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3c02, lo: 0xa6, hi: 0xa6}, - {value: 0x26a2, lo: 0xac, hi: 0xad}, - {value: 0x26a9, lo: 0xaf, hi: 0xaf}, - {value: 0x281f, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x43, offset 0x1af - {value: 0x0007, lo: 0x03}, - {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, - {value: 0x3c95, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbf, lo: 0xaa, hi: 0xad}, - // Block 0x44, offset 0x1b3 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x45, offset 0x1b5 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x46, offset 0x1b9 - {value: 0x0000, lo: 0x01}, - {value: 0x299e, lo: 0x8c, hi: 0x8c}, - // Block 0x47, offset 0x1bb - {value: 0x0266, lo: 0x02}, - {value: 0x1b8f, lo: 0xb4, hi: 0xb4}, - {value: 0x192d, lo: 0xb5, hi: 0xb6}, - // Block 0x48, offset 0x1be - {value: 0x0000, lo: 0x01}, - {value: 0x44e0, lo: 0x9c, hi: 0x9c}, - // Block 0x49, offset 0x1c0 - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4a, offset 0x1c3 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4b, offset 0x1c5 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4c, offset 0x1c8 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4d, offset 0x1ca - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x4e, offset 0x1cc - {value: 0x0000, lo: 0x01}, - {value: 0x162f, lo: 0xb3, hi: 0xb3}, - // Block 0x4f, offset 0x1ce - {value: 0x0004, lo: 0x0b}, - {value: 0x1597, lo: 0x80, hi: 0x82}, - {value: 0x15af, lo: 0x83, hi: 0x83}, - {value: 0x15c7, lo: 0x84, hi: 0x85}, - {value: 0x15d7, lo: 0x86, hi: 0x89}, - {value: 0x15eb, lo: 0x8a, hi: 0x8c}, - {value: 0x15ff, lo: 0x8d, hi: 0x8d}, - {value: 0x1607, lo: 0x8e, hi: 0x8e}, - {value: 0x160f, lo: 0x8f, hi: 0x90}, - {value: 0x161b, lo: 0x91, hi: 0x93}, - {value: 0x162b, lo: 0x94, hi: 0x94}, - {value: 0x1633, lo: 0x95, hi: 0x95}, - // Block 0x50, offset 0x1da - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xae}, - {value: 0x812f, lo: 0xaf, hi: 0xaf}, - {value: 0x04b3, lo: 0xb6, hi: 0xb6}, - {value: 0x0887, lo: 0xb8, hi: 0xba}, - // Block 0x51, offset 0x1e4 - {value: 0x0006, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4a3e, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4a44, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4a50, lo: 0xba, hi: 0xbf}, - // Block 0x52, offset 0x1ee - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x53, offset 0x1f1 - {value: 0x0000, lo: 0x03}, - {value: 0x020f, lo: 0x9c, hi: 0x9c}, - {value: 0x0212, lo: 0x9d, hi: 0x9d}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x54, offset 0x1f5 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x55, offset 0x1f7 - {value: 0x0000, lo: 0x01}, - {value: 0x163b, lo: 0xb0, hi: 0xb0}, - // Block 0x56, offset 0x1f9 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x57, offset 0x1fb - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x58, offset 0x1fd - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x59, offset 0x200 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5a, offset 0x202 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5b, offset 0x204 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5c, offset 0x206 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5d, offset 0x208 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x5e, offset 0x20e - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x5f, offset 0x211 - {value: 0x0008, lo: 0x03}, - {value: 0x1637, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1643, lo: 0x9f, hi: 0x9f}, - // Block 0x60, offset 0x215 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x61, offset 0x217 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x62, offset 0x21e - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x63, offset 0x224 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x64, offset 0x22a - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x65, offset 0x232 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x66, offset 0x238 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x67, offset 0x23e - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x68, offset 0x244 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x69, offset 0x248 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6a, offset 0x24a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6b, offset 0x24c - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6c, offset 0x24e - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6d, offset 0x250 - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x6e, offset 0x256 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x6f, offset 0x259 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa4, hi: 0xa7}, - // Block 0x70, offset 0x25b - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x8132, lo: 0x88, hi: 0x8a}, - {value: 0x812d, lo: 0x8b, hi: 0x8b}, - {value: 0x8132, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x8d, hi: 0x90}, - // Block 0x71, offset 0x261 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x264 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x423b, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4245, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424f, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x73, offset 0x26c - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d81, lo: 0xae, hi: 0xae}, - {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x74, offset 0x273 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x75, offset 0x276 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x76, offset 0x279 - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x77, offset 0x27b - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x78, offset 0x27e - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d95, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x79, offset 0x286 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - {value: 0x8132, lo: 0x9e, hi: 0x9e}, - // Block 0x7a, offset 0x28a - {value: 0x6b57, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db3, lo: 0xbb, hi: 0xbb}, - {value: 0x2da9, lo: 0xbc, hi: 0xbd}, - {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, - // Block 0x7b, offset 0x291 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7c, offset 0x294 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc7, lo: 0xba, hi: 0xba}, - {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7d, offset 0x29a - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7e, offset 0x29c - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7f, offset 0x29e - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x80, offset 0x2a1 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x81, offset 0x2a3 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb9, hi: 0xb9}, - {value: 0x8102, lo: 0xba, hi: 0xba}, - // Block 0x82, offset 0x2a6 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - // Block 0x83, offset 0x2a8 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x84, offset 0x2aa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x85, offset 0x2ac - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x86, offset 0x2ae - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x87, offset 0x2b1 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x97, hi: 0x97}, - // Block 0x88, offset 0x2b3 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x89, offset 0x2b5 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x8a, offset 0x2b7 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x8b, offset 0x2b9 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cf, lo: 0x9e, hi: 0x9e}, - {value: 0x45d9, lo: 0x9f, hi: 0x9f}, - {value: 0x460d, lo: 0xa0, hi: 0xa0}, - {value: 0x461b, lo: 0xa1, hi: 0xa1}, - {value: 0x4629, lo: 0xa2, hi: 0xa2}, - {value: 0x4637, lo: 0xa3, hi: 0xa3}, - {value: 0x4645, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8c, offset 0x2c6 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e3, lo: 0xbb, hi: 0xbb}, - {value: 0x45ed, lo: 0xbc, hi: 0xbc}, - {value: 0x4653, lo: 0xbd, hi: 0xbd}, - {value: 0x466f, lo: 0xbe, hi: 0xbe}, - {value: 0x4661, lo: 0xbf, hi: 0xbf}, - // Block 0x8d, offset 0x2d0 - {value: 0x0000, lo: 0x01}, - {value: 0x467d, lo: 0x80, hi: 0x80}, - // Block 0x8e, offset 0x2d2 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8f, offset 0x2d4 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x90, offset 0x2d8 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x91, offset 0x2dd - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x92, offset 0x2e9 - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x93, offset 0x2ee - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x94, offset 0x2f7 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x95, offset 0x2fd - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x96, offset 0x302 - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x97, offset 0x306 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x98, offset 0x30b - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x99, offset 0x30f - {value: 0x0003, lo: 0x0f}, - {value: 0x01b8, lo: 0x80, hi: 0x80}, - {value: 0x045f, lo: 0x81, hi: 0x81}, - {value: 0x01bb, lo: 0x82, hi: 0x9a}, - {value: 0x045b, lo: 0x9b, hi: 0x9b}, - {value: 0x01c7, lo: 0x9c, hi: 0x9c}, - {value: 0x01d0, lo: 0x9d, hi: 0x9d}, - {value: 0x01d6, lo: 0x9e, hi: 0x9e}, - {value: 0x01fa, lo: 0x9f, hi: 0x9f}, - {value: 0x01eb, lo: 0xa0, hi: 0xa0}, - {value: 0x01e8, lo: 0xa1, hi: 0xa1}, - {value: 0x0173, lo: 0xa2, hi: 0xb2}, - {value: 0x0188, lo: 0xb3, hi: 0xb3}, - {value: 0x01a6, lo: 0xb4, hi: 0xba}, - {value: 0x045f, lo: 0xbb, hi: 0xbb}, - {value: 0x01bb, lo: 0xbc, hi: 0xbf}, - // Block 0x9a, offset 0x31f - {value: 0x0003, lo: 0x0d}, - {value: 0x01c7, lo: 0x80, hi: 0x94}, - {value: 0x045b, lo: 0x95, hi: 0x95}, - {value: 0x01c7, lo: 0x96, hi: 0x96}, - {value: 0x01d0, lo: 0x97, hi: 0x97}, - {value: 0x01d6, lo: 0x98, hi: 0x98}, - {value: 0x01fa, lo: 0x99, hi: 0x99}, - {value: 0x01eb, lo: 0x9a, hi: 0x9a}, - {value: 0x01e8, lo: 0x9b, hi: 0x9b}, - {value: 0x0173, lo: 0x9c, hi: 0xac}, - {value: 0x0188, lo: 0xad, hi: 0xad}, - {value: 0x01a6, lo: 0xae, hi: 0xb4}, - {value: 0x045f, lo: 0xb5, hi: 0xb5}, - {value: 0x01bb, lo: 0xb6, hi: 0xbf}, - // Block 0x9b, offset 0x32d - {value: 0x0003, lo: 0x0d}, - {value: 0x01d9, lo: 0x80, hi: 0x8e}, - {value: 0x045b, lo: 0x8f, hi: 0x8f}, - {value: 0x01c7, lo: 0x90, hi: 0x90}, - {value: 0x01d0, lo: 0x91, hi: 0x91}, - {value: 0x01d6, lo: 0x92, hi: 0x92}, - {value: 0x01fa, lo: 0x93, hi: 0x93}, - {value: 0x01eb, lo: 0x94, hi: 0x94}, - {value: 0x01e8, lo: 0x95, hi: 0x95}, - {value: 0x0173, lo: 0x96, hi: 0xa6}, - {value: 0x0188, lo: 0xa7, hi: 0xa7}, - {value: 0x01a6, lo: 0xa8, hi: 0xae}, - {value: 0x045f, lo: 0xaf, hi: 0xaf}, - {value: 0x01bb, lo: 0xb0, hi: 0xbf}, - // Block 0x9c, offset 0x33b - {value: 0x0003, lo: 0x0d}, - {value: 0x01eb, lo: 0x80, hi: 0x88}, - {value: 0x045b, lo: 0x89, hi: 0x89}, - {value: 0x01c7, lo: 0x8a, hi: 0x8a}, - {value: 0x01d0, lo: 0x8b, hi: 0x8b}, - {value: 0x01d6, lo: 0x8c, hi: 0x8c}, - {value: 0x01fa, lo: 0x8d, hi: 0x8d}, - {value: 0x01eb, lo: 0x8e, hi: 0x8e}, - {value: 0x01e8, lo: 0x8f, hi: 0x8f}, - {value: 0x0173, lo: 0x90, hi: 0xa0}, - {value: 0x0188, lo: 0xa1, hi: 0xa1}, - {value: 0x01a6, lo: 0xa2, hi: 0xa8}, - {value: 0x045f, lo: 0xa9, hi: 0xa9}, - {value: 0x01bb, lo: 0xaa, hi: 0xbf}, - // Block 0x9d, offset 0x349 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x9e, offset 0x34f - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xac, hi: 0xaf}, - // Block 0x9f, offset 0x351 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0xa0, offset 0x353 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0xa1, offset 0x356 - {value: 0x0002, lo: 0x0a}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1951, lo: 0x8a, hi: 0x8a}, - {value: 0x1984, lo: 0x8b, hi: 0x8b}, - {value: 0x199f, lo: 0x8c, hi: 0x8c}, - {value: 0x19a5, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc3, lo: 0x8e, hi: 0x8e}, - {value: 0x19b1, lo: 0x8f, hi: 0x8f}, - {value: 0x197b, lo: 0xaa, hi: 0xaa}, - {value: 0x197e, lo: 0xab, hi: 0xab}, - {value: 0x1981, lo: 0xac, hi: 0xac}, - // Block 0xa2, offset 0x361 - {value: 0x0000, lo: 0x01}, - {value: 0x193f, lo: 0x90, hi: 0x90}, - // Block 0xa3, offset 0x363 - {value: 0x0028, lo: 0x09}, - {value: 0x2865, lo: 0x80, hi: 0x80}, - {value: 0x2829, lo: 0x81, hi: 0x81}, - {value: 0x2833, lo: 0x82, hi: 0x82}, - {value: 0x2847, lo: 0x83, hi: 0x84}, - {value: 0x2851, lo: 0x85, hi: 0x86}, - {value: 0x283d, lo: 0x87, hi: 0x87}, - {value: 0x285b, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once - -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 55KB (55977 bytes) diff --git a/backend/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/backend/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go deleted file mode 100644 index 9115ef25..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +++ /dev/null @@ -1,7761 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build go1.16 -// +build go1.16 - -package norm - -import "sync" - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "13.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [56]uint8{ - 0, 1, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, - 36, 84, 91, 103, 107, 118, 122, 129, - 130, 132, 202, 214, 216, 218, 220, 222, - 224, 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x1870 - firstCCC = 0x2CAB - endMulti = 0x2F77 - firstLeadingCCC = 0x49C5 - firstCCCZeroExcept = 0x4A8F - firstStarterWithNLead = 0x4AB6 - lastDecomp = 0x4AB8 - maxDecomp = 0x8000 -) - -// decomps: 19128 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x8D, 0x42, 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42, - 0xCA, 0x92, 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x9D, - 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xB9, 0x42, 0xCE, - 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE, 0x96, - 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42, 0xCE, - 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B, 0x42, - 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE, 0x9E, - 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42, 0xCE, - 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4, 0x42, - 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE, 0xA7, - 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3, 0x42, - 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE, 0xB6, - 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42, 0xCE, - 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB, 0x42, - 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE, 0xBE, - 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42, 0xCF, - 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83, 0x42, - 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF, 0x86, - // Bytes 200 - 23f - 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42, 0xCF, - 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D, 0x42, - 0xD0, 0xBD, 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8C, - 0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7, - 0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42, - 0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D, - 0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7, - 0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA, - 0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8, - 0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42, - 0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2, - 0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8, - 0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42, - 0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA, - 0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42, - 0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88, - 0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9, - 0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42, - 0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB, - 0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA, - 0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42, - 0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA, - 0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42, - 0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6, - 0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA, - 0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42, - 0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE, - 0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB, - 0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42, - // Bytes 300 - 33f - 0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C, - 0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0, - 0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1, - 0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1, - 0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1, - 0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1, - 0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1, - 0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1, - // Bytes 340 - 37f - 0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1, - 0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1, - 0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1, - 0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1, - 0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1, - 0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1, - 0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1, - 0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1, - // Bytes 380 - 3bf - 0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1, - 0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1, - 0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1, - 0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1, - 0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1, - 0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1, - 0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1, - 0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1, - // Bytes 3c0 - 3ff - 0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1, - 0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1, - 0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1, - 0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1, - 0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1, - 0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1, - 0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1, - 0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1, - // Bytes 400 - 43f - 0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1, - 0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1, - 0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1, - 0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1, - 0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1, - 0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1, - 0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2, - 0x80, 0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2, - // Bytes 440 - 47f - 0x80, 0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2, - 0x80, 0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2, - 0x86, 0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2, - 0x86, 0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2, - 0x88, 0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2, - 0x88, 0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2, - 0x94, 0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2, - 0x97, 0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2, - // Bytes 480 - 4bf - 0xA6, 0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3, - 0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3, - 0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3, - 0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3, - 0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3, - 0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3, - 0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3, - 0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3, - // Bytes 4c0 - 4ff - 0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3, - 0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3, - 0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3, - 0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3, - 0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3, - 0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3, - 0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3, - 0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3, - // Bytes 500 - 53f - 0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3, - 0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3, - 0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3, - 0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3, - 0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3, - 0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3, - 0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3, - 0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3, - // Bytes 540 - 57f - 0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3, - 0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3, - 0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3, - 0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3, - 0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3, - 0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3, - 0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3, - 0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3, - // Bytes 580 - 5bf - 0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3, - 0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3, - 0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3, - 0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3, - 0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3, - 0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3, - 0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3, - 0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3, - // Bytes 5c0 - 5ff - 0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3, - 0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3, - 0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3, - 0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3, - 0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3, - 0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3, - 0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3, - 0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3, - // Bytes 600 - 63f - 0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3, - 0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3, - 0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3, - 0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3, - 0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3, - 0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4, - 0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4, - 0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4, - // Bytes 640 - 67f - 0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4, - 0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4, - 0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4, - 0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4, - 0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4, - 0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4, - 0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4, - 0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4, - // Bytes 680 - 6bf - 0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4, - 0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4, - 0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4, - 0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4, - 0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4, - 0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4, - 0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4, - 0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4, - // Bytes 6c0 - 6ff - 0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4, - 0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4, - 0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4, - 0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4, - 0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4, - 0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4, - 0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4, - 0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4, - // Bytes 700 - 73f - 0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4, - 0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4, - 0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4, - 0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4, - 0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4, - 0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4, - 0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4, - 0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4, - // Bytes 740 - 77f - 0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4, - 0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4, - 0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4, - 0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4, - 0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5, - 0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5, - 0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5, - 0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5, - // Bytes 780 - 7bf - 0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5, - 0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5, - 0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5, - 0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5, - 0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5, - 0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5, - 0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5, - 0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5, - // Bytes 7c0 - 7ff - 0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5, - 0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5, - 0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5, - 0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5, - 0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5, - 0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5, - 0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5, - 0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5, - // Bytes 800 - 83f - 0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5, - 0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5, - 0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5, - 0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5, - 0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5, - 0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5, - 0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5, - 0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5, - // Bytes 840 - 87f - 0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5, - 0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5, - 0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5, - 0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5, - 0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5, - 0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5, - 0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5, - 0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5, - // Bytes 880 - 8bf - 0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5, - 0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5, - 0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5, - 0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5, - 0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5, - 0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5, - 0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5, - 0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5, - // Bytes 8c0 - 8ff - 0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5, - 0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5, - 0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5, - 0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5, - 0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5, - 0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5, - 0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5, - 0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5, - // Bytes 900 - 93f - 0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5, - 0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5, - 0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5, - 0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5, - 0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5, - 0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5, - 0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5, - 0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5, - // Bytes 940 - 97f - 0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5, - 0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5, - 0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5, - 0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5, - 0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5, - 0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5, - 0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5, - 0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5, - // Bytes 980 - 9bf - 0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5, - 0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5, - 0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5, - 0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5, - 0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5, - 0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5, - 0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5, - 0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5, - // Bytes 9c0 - 9ff - 0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5, - 0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5, - 0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5, - 0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5, - 0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5, - 0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5, - 0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5, - 0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5, - // Bytes a00 - a3f - 0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5, - 0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5, - 0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5, - 0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5, - 0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5, - 0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5, - 0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5, - 0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5, - // Bytes a40 - a7f - 0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5, - 0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5, - 0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5, - 0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5, - 0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5, - 0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5, - 0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5, - 0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5, - // Bytes a80 - abf - 0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5, - 0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5, - 0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5, - 0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5, - 0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5, - 0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5, - 0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5, - 0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5, - // Bytes ac0 - aff - 0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5, - 0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5, - 0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5, - 0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5, - 0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5, - 0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5, - 0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5, - 0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5, - // Bytes b00 - b3f - 0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5, - 0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5, - 0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5, - 0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5, - 0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5, - 0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5, - 0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5, - 0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5, - // Bytes b40 - b7f - 0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5, - 0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5, - 0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5, - 0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5, - 0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5, - 0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5, - 0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5, - 0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5, - // Bytes b80 - bbf - 0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5, - 0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5, - 0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6, - 0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6, - 0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6, - 0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6, - 0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6, - 0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6, - // Bytes bc0 - bff - 0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6, - 0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6, - 0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6, - 0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6, - 0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6, - 0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6, - 0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6, - 0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6, - // Bytes c00 - c3f - 0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6, - 0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6, - 0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6, - 0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6, - 0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6, - 0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6, - 0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6, - 0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6, - // Bytes c40 - c7f - 0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6, - 0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6, - 0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6, - 0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6, - 0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6, - 0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6, - 0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6, - 0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6, - // Bytes c80 - cbf - 0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6, - 0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6, - 0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6, - 0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6, - 0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6, - 0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6, - 0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6, - 0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6, - // Bytes cc0 - cff - 0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6, - 0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6, - 0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6, - 0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6, - 0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6, - 0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6, - 0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6, - 0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6, - // Bytes d00 - d3f - 0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6, - 0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6, - 0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6, - 0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6, - 0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6, - 0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6, - 0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6, - 0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6, - // Bytes d40 - d7f - 0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6, - 0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6, - 0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6, - 0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6, - 0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6, - 0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6, - 0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6, - 0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6, - // Bytes d80 - dbf - 0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6, - 0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6, - 0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6, - 0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6, - 0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6, - 0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6, - 0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6, - 0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6, - // Bytes dc0 - dff - 0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6, - 0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6, - 0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6, - 0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6, - 0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6, - 0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6, - 0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6, - 0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6, - // Bytes e00 - e3f - 0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6, - 0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6, - 0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6, - 0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6, - 0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6, - 0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6, - 0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6, - 0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6, - // Bytes e40 - e7f - 0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6, - 0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6, - 0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6, - 0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6, - 0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6, - 0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6, - 0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6, - 0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6, - // Bytes e80 - ebf - 0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7, - 0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7, - 0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7, - 0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7, - 0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7, - 0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7, - 0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7, - 0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7, - // Bytes ec0 - eff - 0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7, - 0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7, - 0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7, - 0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7, - 0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7, - 0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7, - 0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7, - 0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7, - // Bytes f00 - f3f - 0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7, - 0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7, - 0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7, - 0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7, - 0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7, - 0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7, - 0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7, - 0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7, - // Bytes f40 - f7f - 0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7, - 0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7, - 0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7, - 0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7, - 0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7, - 0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7, - 0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7, - 0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7, - // Bytes f80 - fbf - 0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7, - 0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7, - 0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7, - 0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7, - 0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7, - 0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7, - 0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7, - 0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7, - // Bytes fc0 - fff - 0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7, - 0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7, - 0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7, - 0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7, - 0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7, - 0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7, - 0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7, - 0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7, - // Bytes 1000 - 103f - 0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7, - 0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7, - 0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7, - 0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7, - 0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7, - 0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7, - 0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7, - 0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7, - // Bytes 1040 - 107f - 0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7, - 0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7, - 0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7, - 0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7, - 0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7, - 0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7, - 0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7, - 0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7, - // Bytes 1080 - 10bf - 0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7, - 0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7, - 0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7, - 0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7, - 0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7, - 0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7, - 0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7, - 0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7, - // Bytes 10c0 - 10ff - 0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7, - 0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7, - 0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7, - 0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7, - 0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7, - 0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7, - 0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7, - 0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7, - // Bytes 1100 - 113f - 0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7, - 0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7, - 0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7, - 0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7, - 0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7, - 0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7, - 0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7, - 0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7, - // Bytes 1140 - 117f - 0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7, - 0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7, - 0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7, - 0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7, - 0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7, - 0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7, - 0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7, - 0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8, - // Bytes 1180 - 11bf - 0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8, - 0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8, - 0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8, - 0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8, - 0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8, - 0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8, - 0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8, - 0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8, - // Bytes 11c0 - 11ff - 0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8, - 0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8, - 0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8, - 0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8, - 0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8, - 0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8, - 0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8, - 0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8, - // Bytes 1200 - 123f - 0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8, - 0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8, - 0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8, - 0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8, - 0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8, - 0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8, - 0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8, - 0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8, - // Bytes 1240 - 127f - 0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8, - 0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8, - 0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8, - 0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8, - 0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8, - 0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8, - 0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8, - 0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8, - // Bytes 1280 - 12bf - 0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8, - 0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8, - 0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8, - 0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8, - 0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8, - 0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8, - 0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8, - 0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8, - // Bytes 12c0 - 12ff - 0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8, - 0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8, - 0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8, - 0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8, - 0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8, - 0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8, - 0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8, - 0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8, - // Bytes 1300 - 133f - 0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8, - 0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8, - 0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8, - 0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8, - 0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8, - 0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8, - 0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8, - 0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8, - // Bytes 1340 - 137f - 0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8, - 0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8, - 0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8, - 0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8, - 0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8, - 0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8, - 0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8, - 0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8, - // Bytes 1380 - 13bf - 0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8, - 0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8, - 0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8, - 0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8, - 0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8, - 0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8, - 0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8, - 0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8, - // Bytes 13c0 - 13ff - 0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8, - 0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8, - 0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8, - 0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8, - 0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8, - 0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8, - 0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8, - 0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8, - // Bytes 1400 - 143f - 0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9, - 0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9, - 0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9, - 0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9, - 0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9, - 0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9, - 0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9, - 0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9, - // Bytes 1440 - 147f - 0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9, - 0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9, - 0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9, - 0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9, - 0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9, - 0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9, - 0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9, - 0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9, - // Bytes 1480 - 14bf - 0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9, - 0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9, - 0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9, - 0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9, - 0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9, - 0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9, - 0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9, - 0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9, - // Bytes 14c0 - 14ff - 0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9, - 0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9, - 0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9, - 0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9, - 0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9, - 0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9, - 0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9, - 0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9, - // Bytes 1500 - 153f - 0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9, - 0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9, - 0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9, - 0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9, - 0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9, - 0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9, - 0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9, - 0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9, - // Bytes 1540 - 157f - 0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9, - 0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9, - 0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9, - 0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9, - 0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9, - 0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9, - 0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9, - 0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9, - // Bytes 1580 - 15bf - 0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9, - 0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9, - 0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9, - 0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9, - 0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9, - 0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9, - 0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9, - 0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9, - // Bytes 15c0 - 15ff - 0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9, - 0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9, - 0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9, - 0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9, - 0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9, - 0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9, - 0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9, - 0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9, - // Bytes 1600 - 163f - 0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9, - 0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9, - 0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9, - 0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9, - 0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9, - 0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9, - 0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9, - 0xBE, 0xA0, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA, - // Bytes 1640 - 167f - 0x9D, 0xAF, 0x43, 0xEA, 0xAC, 0xB7, 0x43, 0xEA, - 0xAD, 0x92, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44, - 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94, - 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0, - 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84, - 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0, - 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44, - 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A, - // Bytes 1680 - 16bf - 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0, - 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98, - 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1, - 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44, - 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86, - 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0, - 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84, - 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2, - // Bytes 16c0 - 16ff - 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44, - 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A, - 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0, - 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C, - 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3, - 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44, - 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2, - 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0, - // Bytes 1700 - 173f - 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC, - 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3, - 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44, - 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89, - 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0, - 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88, - 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4, - 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44, - // Bytes 1740 - 177f - 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE, - 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0, - 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2, - 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5, - 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44, - 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90, - 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0, - 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85, - // Bytes 1780 - 17bf - 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5, - 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44, - 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3, - 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0, - 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8, - 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6, - 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44, - 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94, - // Bytes 17c0 - 17ff - 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0, - 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5, - 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6, - 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44, - 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC, - 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0, - 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A, - 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7, - // Bytes 1800 - 183f - 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44, - 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB, - 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0, - 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD, - 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8, - 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44, - 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87, - 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0, - // Bytes 1840 - 187f - 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96, - 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9, - 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44, - 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88, - 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0, - 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80, - 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E, - 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30, - 0x42, 0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31, - 0x33, 0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42, - 0x31, 0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38, - 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32, - 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42, - 0x32, 0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34, - 0x42, 0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x37, 0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42, - 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30, - 0x42, 0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33, - 0x33, 0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42, - 0x33, 0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38, - 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34, - 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42, - 0x34, 0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34, - // Bytes 1900 - 193f - 0x42, 0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34, - 0x37, 0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42, - 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30, - 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37, - 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42, - 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E, - 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F, - 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42, - // Bytes 1940 - 197f - 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A, - 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47, - 0x79, 0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42, - 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49, - 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49, - 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42, - 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A, - 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D, 0x52, 0x42, - 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, 0x4E, 0x4A, - 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, 0x42, 0x50, - 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, 0x61, 0x42, - 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, 0x53, 0x4D, - 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, 0x42, 0x54, - 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, 0x43, 0x42, - 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, 0x58, 0x49, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, 0x42, 0x63, - 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, 0x61, 0x42, - 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, 0x64, 0x7A, - 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, 0x42, 0x66, - 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, 0x6D, 0x42, - 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, 0x69, 0x6A, - 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, 0x42, 0x69, - 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, 0x56, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, 0x6B, 0x6C, - 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, 0x42, 0x6C, - 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, 0x6E, 0x42, - 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, 0x6D, 0x33, - 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, 0x42, 0x6D, - 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, 0x67, 0x42, - 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, 0x6D, 0x73, - 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, 0x6A, 0x42, - 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, 0x6F, 0x56, - 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, 0x42, 0x70, - 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, 0x63, 0x42, - 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, 0x73, 0x74, - 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, 0x43, 0x28, - 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, 0x43, 0x28, - 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, 0x43, 0x28, - // Bytes 1a80 - 1abf - 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, 0x43, 0x28, - 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, 0x43, 0x28, - 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, 0x43, 0x28, - 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, 0x43, 0x28, - 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, 0x43, 0x28, - 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, 0x43, 0x28, - 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, 0x43, 0x28, - 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, 0x43, 0x28, - // Bytes 1ac0 - 1aff - 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, 0x43, 0x28, - 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, 0x43, 0x28, - 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, 0x43, 0x28, - 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, 0x43, 0x28, - 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, 0x43, 0x28, - 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, 0x43, 0x28, - 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, 0x43, 0x28, - 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, 0x43, 0x28, - // Bytes 1b00 - 1b3f - 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, 0x43, 0x28, - 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, 0x43, 0x28, - 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, 0x43, 0x28, - 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, 0x43, 0x28, - 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, 0x43, 0x28, - 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, 0x43, 0x28, - 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, 0x43, 0x28, - 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, 0x43, 0x28, - // Bytes 1b40 - 1b7f - 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, 0x43, 0x28, - 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, 0x43, 0x28, - 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, 0x43, 0x28, - 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, 0x43, 0x28, - 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, 0x43, 0x31, - 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, 0x43, 0x31, - 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, 0x43, 0x31, - 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, 0x43, 0x31, - // Bytes 1b80 - 1bbf - 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, 0x43, 0x31, - 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, 0x43, 0x32, - 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, 0x43, 0x3D, - 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, 0x43, 0x46, - 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, 0x43, 0x47, - 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, 0x43, 0x4C, - 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, 0x43, 0x4D, - 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, 0x43, 0x4D, - // Bytes 1bc0 - 1bff - 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, 0x43, 0x50, - 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, 0x43, 0x54, - 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, 0x43, 0x56, - 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, 0x43, 0x61, - 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, 0x43, 0x61, - 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, 0x43, 0x63, - 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, 0x43, 0x63, - 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, 0x43, 0x63, - // Bytes 1c00 - 1c3f - 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, 0x43, 0x64, - 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, 0x43, 0x66, - 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, 0x43, 0x67, - 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, 0x43, 0x69, - 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, 0x43, 0x6B, - 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, 0x43, 0x6B, - 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, 0x43, 0x6C, - 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, 0x43, 0x6D, - // Bytes 1c40 - 1c7f - 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, 0x43, 0x6D, - 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, 0x43, 0x72, - 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, 0x43, 0x78, - 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, 0x43, 0xC2, - 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, 0x43, 0xCE, - 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, 0x43, 0xCE, - 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, 0x43, 0xCE, - 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, 0x43, 0xCE, - // Bytes 1c80 - 1cbf - 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, 0x44, 0x28, - 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, 0x31, 0x29, - 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, 0x28, 0x31, - 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, 0x29, 0x44, - 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, 0x31, 0x36, - 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, 0x44, 0x28, - 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, 0x39, 0x29, - 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, 0x30, 0xE7, - // Bytes 1cc0 - 1cff - 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, 0x84, 0x44, - 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, 0xE6, 0x9C, - 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, 0x44, 0x32, - 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, 0x9C, 0x88, - 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, 0x33, 0xE6, - 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, 0x88, 0x44, - 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, 0xE6, 0x97, - 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, 0x44, 0x34, - // Bytes 1d00 - 1d3f - 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, 0x97, 0xA5, - 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, 0x35, 0xE7, - 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, 0xA5, 0x44, - 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, 0xE7, 0x82, - 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, 0x44, 0x37, - 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, 0x82, 0xB9, - 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, 0x38, 0xE6, - 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, 0xB9, 0x44, - // Bytes 1d40 - 1d7f - 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, 0xE6, 0x9C, - 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, 0x44, 0x56, - 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, 0x6D, 0x2E, - 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, 0x70, 0x2E, - 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, 0x69, 0x44, - 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, 0xB4, 0xD5, - 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, 0x44, 0xD5, - 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, 0xD5, 0xB6, - // Bytes 1d80 - 1dbf - 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, 0xD7, 0x90, - 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, 0xB4, 0x44, - 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, 0xA8, 0xD8, - 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, 0x44, 0xD8, - 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, 0xD8, 0xB2, - 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, 0xD8, 0xA8, - 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, 0x87, 0x44, - 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, 0xA8, 0xD9, - // Bytes 1dc0 - 1dff - 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, 0x44, 0xD8, - 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, 0xD8, 0xAE, - 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, 0xD8, 0xAA, - 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, 0x85, 0x44, - 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, 0xAA, 0xD9, - 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, 0x44, 0xD8, - 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, 0xD8, 0xAC, - 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, 0xD8, 0xAB, - // Bytes 1e00 - 1e3f - 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, 0x85, 0x44, - 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, 0xAB, 0xD9, - 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, 0x44, 0xD8, - 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, 0xD8, 0xAD, - 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, 0xD8, 0xAC, - 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, 0x8A, 0x44, - 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, 0xAD, 0xD9, - 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, 0x44, 0xD8, - // Bytes 1e40 - 1e7f - 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, 0xD8, 0xAC, - 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, 0xD8, 0xAE, - 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, 0x89, 0x44, - 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, 0xB3, 0xD8, - 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, 0x44, 0xD8, - 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, 0xD8, 0xB1, - 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, 0xD8, 0xB3, - 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, 0x89, 0x44, - // Bytes 1e80 - 1ebf - 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, 0xB4, 0xD8, - 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, 0x44, 0xD8, - 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, 0xD8, 0xB1, - 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, 0xD8, 0xB4, - 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, 0x89, 0x44, - 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, 0xB5, 0xD8, - 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, 0x44, 0xD8, - 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, 0xD9, 0x85, - // Bytes 1ec0 - 1eff - 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, 0xD8, 0xB5, - 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, 0xAC, 0x44, - 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, 0xB6, 0xD8, - 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, 0x44, 0xD8, - 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, 0xD9, 0x89, - 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, 0xD8, 0xB7, - 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, 0x85, 0x44, - 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, 0xB7, 0xD9, - // Bytes 1f00 - 1f3f - 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, 0x44, 0xD8, - 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, 0xD9, 0x85, - 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, 0xD8, 0xB9, - 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, 0xAC, 0x44, - 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, 0xBA, 0xD9, - 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, 0x44, 0xD9, - 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, 0xD8, 0xAD, - 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, 0xD9, 0x81, - // Bytes 1f40 - 1f7f - 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, 0x89, 0x44, - 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, 0x82, 0xD8, - 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, 0x44, 0xD9, - 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, 0xD9, 0x8A, - 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, 0xD9, 0x83, - 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, 0xAD, 0x44, - 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, 0x83, 0xD9, - 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, 0x44, 0xD9, - // Bytes 1f80 - 1fbf - 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, 0xD9, 0x8A, - 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, 0xD9, 0x84, - 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, 0xAD, 0x44, - 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, 0x84, 0xD9, - 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, 0x44, 0xD9, - 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, 0xD9, 0x8A, - 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, 0xD9, 0x85, - 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, 0xAD, 0x44, - // Bytes 1fc0 - 1fff - 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, 0x85, 0xD9, - 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, 0x44, 0xD9, - 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, 0xD8, 0xAC, - 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, 0xD9, 0x86, - 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, 0xB1, 0x44, - 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, 0x86, 0xD9, - 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, 0x44, 0xD9, - 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, 0xD9, 0x89, - // Bytes 2000 - 203f - 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, 0xD9, 0x87, - 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, 0x85, 0x44, - 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, 0x87, 0xD9, - 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, 0x44, 0xD9, - 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, 0xD8, 0xAD, - 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, 0xD9, 0x8A, - 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, 0xB2, 0x44, - 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, 0x8A, 0xD9, - // Bytes 2040 - 207f - 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, 0x44, 0xD9, - 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, 0xD9, 0x8A, - 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, 0xDB, 0x87, - 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, 0x80, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x86, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, 0x45, 0x28, - // Bytes 2080 - 20bf - 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8C, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x91, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, 0x45, 0x28, - 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, 0xE4, 0xB8, - 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x89, 0x29, - // Bytes 20c0 - 20ff - 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, 0x45, 0x28, - 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, 0xE4, 0xBA, - 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, 0xA3, 0x29, - 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, 0x45, 0x28, - 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, 0xE5, 0x85, - 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAD, 0x29, - 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, 0x45, 0x28, - 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, 0xE5, 0x8D, - // Bytes 2100 - 213f - 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, 0x8D, 0x29, - 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, 0x45, 0x28, - 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, 0xE5, 0x9C, - 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, 0xA6, 0x29, - 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, 0x45, 0x28, - 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, 0xE6, 0x9C, - 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0xA8, 0x29, - 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x45, 0x28, - // Bytes 2140 - 217f - 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, 0xE7, 0x81, - 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, 0xB9, 0x29, - 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x45, 0x28, - 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, 0xE7, 0xA5, - 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, 0xAD, 0x29, - 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, 0x45, 0x28, - 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, 0xE8, 0xB2, - 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, 0x87, 0x29, - // Bytes 2180 - 21bf - 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x45, 0x30, - 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0x30, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, 0x9C, 0x88, - 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x31, - 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x31, 0xE6, - 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x32, 0xE7, - // Bytes 21c0 - 21ff - 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x31, - 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x34, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, 0x45, 0x31, - 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x36, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x45, 0x31, - // Bytes 2200 - 223f - 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x38, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x34, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x38, - // Bytes 2240 - 227f - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, 0x45, 0x32, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x30, 0xE7, - 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x32, - 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x32, 0xE7, - 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x32, - 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x34, 0xE7, - // Bytes 2280 - 22bf - 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x38, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x32, - 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0x30, 0xE6, - 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, 0x97, 0xA5, - 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x33, - // Bytes 22c0 - 22ff - 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, 0x84, 0x35, - 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x35, - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, 0x95, 0x6D, - 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x6D, - 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, 0xE2, 0x81, - 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, 0x88, 0x95, - // Bytes 2300 - 233f - 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, 0x95, 0x73, - 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, - 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, - 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, - // Bytes 2340 - 237f - 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x89, - 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, - 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAA, - 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xAA, 0xD9, - 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, - // Bytes 2380 - 23bf - 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, - 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, - 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD9, - 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, - 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, - 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, - // Bytes 23c0 - 23ff - 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, - 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, - 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD9, - 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, - 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x85, - 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, - // Bytes 2400 - 243f - 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB5, - 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, 0xB5, 0xD8, - 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, 0xD9, 0x84, - 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xDB, - 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0x46, - 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, - 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xB7, - // Bytes 2440 - 247f - 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB7, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x89, 0x46, - 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xBA, - 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xBA, 0xD9, - // Bytes 2480 - 24bf - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, 0xD8, 0xAE, - 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, 0x85, 0xD9, - 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, 0xDB, 0x92, - 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x83, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x83, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAC, - // Bytes 24c0 - 24ff - 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x85, 0x46, - 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, - 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD9, - 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, - // Bytes 2500 - 253f - 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAE, - 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, 0x46, - 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, - 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD9, 0x85, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAE, - 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x8A, - // Bytes 2540 - 257f - 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x86, - 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89, 0x46, - // Bytes 2580 - 25bf - 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, - 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD9, 0x87, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, - 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, 0x46, 0xD9, - // Bytes 25c0 - 25ff - 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x86, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x87, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, 0xD9, 0x8A, - // Bytes 2600 - 263f - 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95, 0x46, - 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, 0x46, 0xE0, - 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, 0xE0, 0xBA, - 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, 0xBB, 0x8D, - // Bytes 2640 - 267f - 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, 0x80, 0xE0, - 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, 0xB7, 0x46, - 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, - 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBE, 0x92, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x9C, 0xE0, - // Bytes 2680 - 26bf - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0x46, - 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x46, 0xE2, - 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, 0xBB, 0xE3, - 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, 0xE3, 0x82, - // Bytes 26c0 - 26ff - 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB3, 0x46, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, 0x46, 0xE3, - 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, - 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, 0x83, 0x9B, - 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x9F, 0xE3, - 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, 0xE3, 0x83, - 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0, - // Bytes 2700 - 273f - 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92, 0x8C, 0x46, - 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, - 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, - 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, - 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, - 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, - 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - // Bytes 2740 - 277f - 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, - // Bytes 2780 - 27bf - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, - // Bytes 27c0 - 27ff - 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, - 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, - 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, - 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, - 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, - 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, - 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, - 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, - // Bytes 2800 - 283f - 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, - 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, - 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, - 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, - // Bytes 2840 - 287f - 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, - 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, - 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, - 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, - 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, - 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, - 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, - 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, - // Bytes 2880 - 28bf - 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, - 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, - 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, - 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, - 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, - 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, - 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, - // Bytes 28c0 - 28ff - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, - 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, - 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, - // Bytes 2900 - 293f - 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, - 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, - 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, - 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, - // Bytes 2940 - 297f - 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, - 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, - 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, - 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, - // Bytes 2980 - 29bf - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, - 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, - 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, - 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, - 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, - // Bytes 29c0 - 29ff - 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, - 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, - 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, - 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, - 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - // Bytes 2a40 - 2a7f - 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, - 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, - // Bytes 2a80 - 2abf - 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, - 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, - 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, - 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, - 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, - 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, - 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, - 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, - // Bytes 2b00 - 2b3f - 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, - 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, - 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, - 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, - 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - // Bytes 2b40 - 2b7f - 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, - 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, - 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, - // Bytes 2b80 - 2bbf - 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, - 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, - 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, - 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, - // Bytes 2bc0 - 2bff - 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, - 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, - 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - // Bytes 2c00 - 2c3f - 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, - 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, - 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, - // Bytes 2c40 - 2c7f - 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, - 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, - 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, - 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - // Bytes 2c80 - 2cbf - 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, - 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, - 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, - 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, - 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, - 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, - 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, - // Bytes 2cc0 - 2cff - 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, - 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, - 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, - 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, - 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, - 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, - 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, - 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, - // Bytes 2d00 - 2d3f - 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, - 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, - 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, - 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, - 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, - 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, - // Bytes 2d40 - 2d7f - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, - // Bytes 2d80 - 2dbf - 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, - 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, - 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, - 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, - 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, - 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, - 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, - 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, - // Bytes 2dc0 - 2dff - 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, - 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, - 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, - 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, - 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, - 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0, 0x01, 0x09, - 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, - 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, - // Bytes 2e00 - 2e3f - 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44, 0x44, 0x5A, - 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, 0xCC, 0x8C, - 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xCD, 0x46, - 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x46, - 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x46, - 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x46, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, 0x46, - // Bytes 2e40 - 2e7f - 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, 0x46, - 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, 0x46, - // Bytes 2e80 - 2ebf - 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, 0x46, - 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, 0x49, - 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85, - 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x01, - // Bytes 2ec0 - 2eff - 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, 0x83, 0xA4, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, - 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, 0x85, - 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, 0xE1, - 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, 0xE3, - // Bytes 2f00 - 2f3f - 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, - 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x82, 0xB7, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, - 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52, - // Bytes 2f40 - 2f7f - 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x86, - 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86, - 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x03, - 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, 0xB8, - // Bytes 2f80 - 2fbf - 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, 0x41, - 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, 0x81, 0xCD, - 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, 0x41, 0xCC, - 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89, 0xCD, 0x03, - 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, 0xCC, 0x8F, - 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, 0x03, 0x41, - 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, 0xA8, 0xA9, - 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, 0x42, 0xCC, - // Bytes 2fc0 - 2fff - 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, 0xB9, 0x03, - 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, 0xCC, 0x82, - 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, 0x03, 0x43, - 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, 0x87, 0xCD, - 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, - 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, 0xA9, 0x03, - 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, 0xCC, 0xB1, - 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, 0x03, 0x45, - // Bytes 3000 - 303f - 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, 0x83, 0xCD, - 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, 0x45, 0xCC, - 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, 0xCD, 0x03, - 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45, 0xCC, 0x8C, - 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, 0x03, 0x45, - 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, 0xA8, 0xA9, - 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, 0x45, 0xCC, - 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, 0xCD, 0x03, - // Bytes 3040 - 307f - 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, 0xCC, 0x82, - 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, 0x03, 0x47, - 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, 0x87, 0xCD, - 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03, 0x47, 0xCC, - 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, 0xCD, 0x03, - 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, 0xCC, 0x88, - 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, 0x03, 0x48, - 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, 0xA7, 0xA9, - // Bytes 3080 - 30bf - 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, 0x49, 0xCC, - 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, 0xCD, 0x03, - 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, 0xCC, 0x83, - 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD, 0x03, 0x49, - 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, 0x87, 0xCD, - 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, 0x49, 0xCC, - 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, 0xCD, 0x03, - 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, 0xCC, 0xA3, - // Bytes 30c0 - 30ff - 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, 0x03, 0x49, - 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, 0x82, 0xCD, - 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, 0x4B, 0xCC, - 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3, 0xB9, 0x03, - 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, 0xCC, 0xB1, - 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, 0x03, 0x4C, - 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, 0xA7, 0xA9, - 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, 0x4C, 0xCC, - // Bytes 3100 - 313f - 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, 0xCD, 0x03, - 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, 0xCC, 0xA3, - 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, 0x03, 0x4E, - 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC, 0x83, 0xCD, - 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, 0x4E, 0xCC, - 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, 0xB9, 0x03, - 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, 0xCC, 0xAD, - 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, 0x03, 0x4F, - // Bytes 3140 - 317f - 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, 0x81, 0xCD, - 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, 0x4F, 0xCC, - 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, 0xCD, 0x03, - 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F, 0xCC, 0x8F, - 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, 0x03, 0x50, - 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, 0x87, 0xCD, - 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, 0x52, 0xCC, - 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, 0xCD, 0x03, - // Bytes 3180 - 31bf - 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, 0xCC, 0x91, - 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, 0x03, 0x52, - 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, 0x82, 0xCD, - 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03, 0x53, 0xCC, - 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, 0xA9, 0x03, - 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, 0xCC, 0x8C, - 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, 0x03, 0x54, - 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, 0xA7, 0xA9, - // Bytes 31c0 - 31ff - 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, 0x54, 0xCC, - 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, 0xCD, 0x03, - 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, 0xCC, 0x82, - 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD, 0x03, 0x55, - 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, 0x8A, 0xCD, - 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, 0x55, 0xCC, - 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, 0xCD, 0x03, - 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, 0xCC, 0xA3, - // Bytes 3200 - 323f - 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, 0x03, 0x55, - 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, 0xAD, 0xB9, - 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, 0x56, 0xCC, - 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3, 0xB9, 0x03, - 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, 0xCC, 0x81, - 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, 0x03, 0x57, - 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, 0x88, 0xCD, - 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, 0x58, 0xCC, - // Bytes 3240 - 327f - 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, 0xCD, 0x03, - 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, 0xCC, 0x81, - 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, 0x03, 0x59, - 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC, 0x84, 0xCD, - 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, 0x59, 0xCC, - 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, 0xCD, 0x03, - 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, 0x81, - 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, 0x03, 0x5A, - // Bytes 3280 - 32bf - 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, 0x8C, 0xCD, - 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, - 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, 0xCD, 0x03, - 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61, 0xCC, 0x83, - 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, 0x03, 0x61, - 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, 0x8C, 0xCD, - 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, 0x61, 0xCC, - 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, 0xB9, 0x03, - // Bytes 32c0 - 32ff - 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, 0xCC, 0x87, - 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, 0x03, 0x62, - 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, 0x81, 0xCD, - 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03, 0x63, 0xCC, - 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, 0xCD, 0x03, - 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, 0xCC, 0x8C, - 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, 0x03, 0x64, - 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, 0xAD, 0xB9, - // Bytes 3300 - 333f - 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, 0x65, 0xCC, - 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, 0xCD, 0x03, - 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, 0xCC, 0x86, - 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD, 0x03, 0x65, - 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, 0x89, 0xCD, - 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, 0x65, 0xCC, - 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, 0xCD, 0x03, - 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, 0xCC, 0xAD, - // Bytes 3340 - 337f - 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, 0x03, 0x66, - 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x81, 0xCD, - 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, 0x67, 0xCC, - 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86, 0xCD, 0x03, - 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x8C, - 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, 0x03, 0x68, - 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, 0x87, 0xCD, - 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, 0x68, 0xCC, - // Bytes 3380 - 33bf - 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, 0xB9, 0x03, - 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, 0xCC, 0xAE, - 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, 0x03, 0x69, - 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC, 0x81, 0xCD, - 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, 0x69, 0xCC, - 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, 0xCD, 0x03, - 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, 0xCC, 0x89, - 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, 0x03, 0x69, - // Bytes 33c0 - 33ff - 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, 0x91, 0xCD, - 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, 0x69, 0xCC, - 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, 0xB9, 0x03, - 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A, 0xCC, 0x8C, - 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, 0x03, 0x6B, - 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0xA3, 0xB9, - 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, 0x6B, 0xCC, - 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, 0xCD, 0x03, - // Bytes 3400 - 343f - 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, 0xCC, 0xA7, - 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, 0x03, 0x6C, - 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, 0x81, 0xCD, - 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03, 0x6D, 0xCC, - 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, 0xCD, 0x03, - 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, 0xCC, 0x83, - 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, 0x03, 0x6E, - 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, 0xA3, 0xB9, - // Bytes 3440 - 347f - 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, 0x6E, 0xCC, - 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, 0xB9, 0x03, - 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, 0xCC, 0x81, - 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD, 0x03, 0x6F, - 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, 0x8B, 0xCD, - 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, 0x6F, 0xCC, - 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, 0xCD, 0x03, - 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, 0xCC, 0x87, - // Bytes 3480 - 34bf - 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, 0x03, 0x72, - 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x8C, 0xCD, - 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, 0x72, 0xCC, - 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7, 0xA9, 0x03, - 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, 0xCC, 0x82, - 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, 0x03, 0x73, - 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, 0xA7, 0xA9, - 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, 0x74, 0xCC, - // Bytes 34c0 - 34ff - 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, 0xCD, 0x03, - 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, 0xCC, 0xA6, - 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, 0x03, 0x74, - 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC, 0xB1, 0xB9, - 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, 0x75, 0xCC, - 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, 0xCD, 0x03, - 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, 0xCC, 0x89, - 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, 0x03, 0x75, - // Bytes 3500 - 353f - 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, 0x8C, 0xCD, - 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, 0x75, 0xCC, - 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, 0xB9, 0x03, - 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75, 0xCC, 0xA8, - 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, 0x03, 0x75, - 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, 0x83, 0xCD, - 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, 0x77, 0xCC, - 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, 0xCD, 0x03, - // Bytes 3540 - 357f - 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, 0xCC, 0x87, - 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, 0x03, 0x77, - 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, 0xA3, 0xB9, - 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03, 0x78, 0xCC, - 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, 0xCD, 0x03, - 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, 0xCC, 0x82, - 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, 0x03, 0x79, - 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, 0x87, 0xCD, - // Bytes 3580 - 35bf - 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC, - 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, 0xCD, 0x03, - 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, 0x81, - 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD, 0x03, 0x7A, - 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, 0x8C, 0xCD, - 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, - 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, 0x80, 0xCE, - 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x04, 0xC2, - // Bytes 35c0 - 35ff - 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, 0x86, 0xCC, - 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, 0x84, 0xCD, - 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, 0x04, 0xC3, - 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0xA6, 0xCC, - 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, 0x81, 0xCD, - 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, 0x04, 0xC6, - 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, 0x92, 0xCC, - 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x80, 0xCD, - // Bytes 3600 - 363f - 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x04, 0xCE, - 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0x91, 0xCC, - 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, 0x85, 0xDD, - 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xCE, - 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCC, - 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, 0x81, 0xCD, - 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, 0x04, 0xCE, - 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x99, 0xCC, - // Bytes 3640 - 367f - 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x84, 0xCD, - 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, 0x04, 0xCE, - 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, - 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, 0x81, 0xCD, - 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, 0x04, 0xCE, - 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, - 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x84, 0xCD, - 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, 0x04, 0xCE, - // Bytes 3680 - 36bf - 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, - 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, 0x81, 0xCD, - 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, 0x04, 0xCE, - 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB1, 0xCC, - 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, 0x85, 0xDD, - 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, - 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xB7, 0xCD, - 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, 0x80, 0xCD, - // Bytes 36c0 - 36ff - 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x04, 0xCE, - 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB9, 0xCC, - 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, 0x82, 0xCD, - 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD, 0x04, 0xCE, - 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x81, 0xCC, - 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, 0x94, 0xCD, - 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, 0x04, 0xCF, - 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x85, 0xCC, - // Bytes 3700 - 373f - 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x86, 0xCD, - 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, 0x04, 0xCF, - 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, 0x92, 0xCC, - 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC, 0x88, 0xCD, - 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, 0x04, 0xD0, - 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x90, 0xCC, - 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, 0x81, 0xCD, - 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xD0, - // Bytes 3740 - 377f - 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x95, 0xCC, - 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x86, 0xCD, - 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD0, - 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x98, 0xCC, - 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x84, 0xCD, - 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, 0x04, 0xD0, - 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x9A, 0xCC, - 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, 0x88, 0xCD, - // Bytes 3780 - 37bf - 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, 0x04, 0xD0, - 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, - 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, 0xCD, - 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD, 0x04, 0xD0, - 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xAD, 0xCC, - 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x86, 0xCD, - 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, 0x04, 0xD0, - 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, - // Bytes 37c0 - 37ff - 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x86, 0xCD, - 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, 0x04, 0xD0, - 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB6, 0xCC, - 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC, 0x88, 0xCD, - 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, 0x04, 0xD0, - 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, - 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x88, 0xCD, - 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, 0x04, 0xD0, - // Bytes 3800 - 383f - 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x83, 0xCC, - 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x86, 0xCD, - 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, 0x04, 0xD1, - 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1, 0x87, 0xCC, - 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, 0x88, 0xCD, - 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, 0x04, 0xD1, - 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0xB4, 0xCC, - 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, 0xCD, - // Bytes 3840 - 387f - 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD3, - 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA8, 0xCC, - 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, 0x88, 0xCD, - 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x04, 0xD8, - 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, 0xA7, 0xD9, - 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, 0x94, 0xCD, - 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x04, 0xDB, - 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x92, 0xD9, - // Bytes 3880 - 38bf - 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, 0x94, 0xCD, - 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, - 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x41, - 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC, - 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x86, - 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, - 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x83, - 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, 0xCE, - // Bytes 38c0 - 38ff - 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, - 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x41, - 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC, - 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41, 0xCC, 0xA3, - 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, 0xA7, 0xCC, - 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x80, - 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xCE, - 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, - // Bytes 3900 - 393f - 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x45, - 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC, - 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0xA3, - 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC, 0xA7, 0xCC, - 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, 0xCC, 0x81, - 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, - 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, - 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x4F, - // Bytes 3940 - 397f - 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC, - 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x83, - 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, - 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x88, - 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, - 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, - 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x4F, - 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC, - // Bytes 3980 - 39bf - 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, - 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, - 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x89, - 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, - 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, - 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x52, - 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x53, 0xCC, - 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0x8C, - // Bytes 39c0 - 39ff - 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0xA3, 0xCC, - 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, 0xCC, 0x81, - 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xCE, - 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, - 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x55, - 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x55, 0xCC, - 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, 0xCC, 0x9B, - 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, - // Bytes 3a00 - 3a3f - 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x83, - 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, - 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, - 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x61, - 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, - 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x82, - 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, - 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x81, - // Bytes 3a40 - 3a7f - 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xCE, - 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCE, 0x05, - 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x61, - 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x61, 0xCC, - 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0xA3, - 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, 0xA3, 0xCC, - 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, 0xCC, 0x81, - 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, 0xCE, - // Bytes 3a80 - 3abf - 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, - 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x65, - 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x65, 0xCC, - 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x84, - 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0xA3, 0xCC, - 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, 0xCC, 0x86, - 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, 0xCE, - 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, - // Bytes 3ac0 - 3aff - 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x6F, - 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, - 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x82, - 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, - 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x84, - 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xCE, - 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, - 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x6F, - // Bytes 3b00 - 3b3f - 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, - 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, - 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, - 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x83, - 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, - 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, - 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x6F, - 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x72, 0xCC, - // Bytes 3b40 - 3b7f - 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, 0xCC, 0x81, - 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0x8C, 0xCC, - 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, 0xCC, 0x87, - 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, 0xCE, - 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCE, 0x05, - 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, 0x75, - 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC, - 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, 0xCC, 0x88, - // Bytes 3b80 - 3bbf - 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x81, - 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xCE, - 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, 0x05, - 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, 0xE1, - 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBE, - 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBE, 0xBF, - 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, - // Bytes 3bc0 - 3bff - 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, 0x81, - 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, 0xCE, - 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, - 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x92, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, 0xB8, - // Bytes 3c00 - 3c3f - 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, - 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x83, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0x05, - // Bytes 3c40 - 3c7f - 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB3, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3c80 - 3cbf - 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x83, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - // Bytes 3cc0 - 3cff - 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xAB, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, 0x06, - 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, - // Bytes 3d00 - 3d3f - 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - // Bytes 3d40 - 3d7f - 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06, - 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, - 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - // Bytes 3d80 - 3dbf - 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, - 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, - // Bytes 3dc0 - 3dff - 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06, - // Bytes 3e00 - 3e3f - 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06, - 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - // Bytes 3e40 - 3e7f - 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, - 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - // Bytes 3e80 - 3ebf - 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, - 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, - // Bytes 3ec0 - 3eff - 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, - 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06, - 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06, - 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, - 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, - 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06, - 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x0D, 0x06, - 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x0D, 0x06, - // Bytes 3f00 - 3f3f - 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x0D, 0x06, - 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x89, 0x06, - 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x15, 0x06, - 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x11, 0x06, - // Bytes 3f40 - 3f7f - 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x11, 0x06, - // Bytes 3f80 - 3fbf - 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06, - // Bytes 3fc0 - 3fff - 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x06, - // Bytes 4000 - 403f - 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06, - // Bytes 4040 - 407f - 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x11, 0x06, - // Bytes 4080 - 40bf - 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x11, 0x06, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x06, - // Bytes 40c0 - 40ff - 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06, - 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x08, - 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, - // Bytes 4100 - 413f - 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, - 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, - 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - // Bytes 4140 - 417f - 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, - 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, - // Bytes 4180 - 41bf - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, - 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, - 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, - // Bytes 41c0 - 41ff - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, - 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, - // Bytes 4200 - 423f - 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, - 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, - // Bytes 4240 - 427f - 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, - 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, 0xBA, - 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, 0x91, - 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0xA5, - 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42, 0xC2, 0xB4, - 0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD, 0x43, 0x20, - 0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC, 0x84, 0xCD, - // Bytes 4280 - 42bf - 0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43, 0x20, 0xCC, - 0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87, 0xCD, 0x43, - 0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20, 0xCC, 0x8A, - 0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD, 0x43, 0x20, - 0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC, 0x94, 0xCD, - 0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43, 0x20, 0xCC, - 0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3, 0xB9, 0x43, - 0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20, 0xCD, 0x85, - // Bytes 42c0 - 42ff - 0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D, 0x43, 0x20, - 0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9, 0x8D, 0x65, - 0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43, 0x20, 0xD9, - 0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90, 0x71, 0x43, - 0x20, 0xD9, 0x91, 0x75, 0x43, 0x20, 0xD9, 0x92, - 0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD, 0x43, 0x73, - 0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3, 0x82, 0x99, - 0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x11, 0x44, - // Bytes 4300 - 433f - 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44, 0xCE, 0x91, - 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95, 0xCC, 0x81, - 0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xCD, 0x44, - 0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x9F, - 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x81, - 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x44, - 0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB1, - 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5, 0xCC, 0x81, - // Bytes 4340 - 437f - 0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x44, - 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xBF, - 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85, 0xCC, 0x81, - 0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x44, - 0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44, 0xD7, 0x90, - 0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x45, 0x44, - 0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x92, - // Bytes 4380 - 43bf - 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x45, 0x44, - 0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44, 0xD7, 0x95, - 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x45, 0x44, - 0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44, 0xD7, 0x99, - 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x45, 0x44, - // Bytes 43c0 - 43ff - 0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x9C, - 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x45, 0x44, - 0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA3, - 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x4D, 0x44, - 0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA7, - 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8, 0xD6, 0xBC, - // Bytes 4400 - 443f - 0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x45, 0x44, - 0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44, 0xD7, 0xA9, - 0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA, 0xD6, 0xBC, - 0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x35, 0x44, - 0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44, 0xD8, 0xA7, - 0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x94, - 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x44, - 0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44, 0xD8, 0xB1, - // Bytes 4440 - 447f - 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80, 0xD9, 0x8B, - 0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x69, 0x44, - 0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44, 0xD9, 0x80, - 0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x91, - 0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x79, 0x44, - 0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x88, - 0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89, 0xD9, 0xB0, - 0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x44, - // Bytes 4480 - 44bf - 0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44, 0xDB, 0x95, - 0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC, 0x88, 0xCC, - 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81, - 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCE, - 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x45, - 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x45, 0x20, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xCC, - 0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x94, - // Bytes 44c0 - 44ff - 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x94, 0xCD, - 0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91, - 0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x76, - 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x45, - 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x45, 0x20, - 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9, - 0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2, 0xAB, 0x9D, - 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88, - // Bytes 4500 - 453f - 0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85, 0xCC, 0x88, - 0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, - 0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, - 0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80, 0xD9, 0x8E, - 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x8F, - 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x90, - 0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4, 0x95, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x96, 0xE0, - // Bytes 4540 - 457f - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x97, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x9C, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA1, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA2, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAB, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAF, 0xE0, - 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA1, 0xE0, - 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA2, 0xE0, - // Bytes 4580 - 45bf - 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xAF, 0xE0, - 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x96, 0xE0, - 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x97, 0xE0, - 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x9C, 0xE0, - 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xAB, 0xE0, - 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB2, 0xE0, - 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB8, 0xE0, - 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA1, 0xE0, - // Bytes 45c0 - 45ff - 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA2, 0xE0, - 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE, 0xB2, 0xE0, - 0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE, 0xB3, 0xE0, - 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83, 0x86, 0xE3, - 0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D, 0x85, 0x97, - 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D, - 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, - 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, - // Bytes 4600 - 463f - 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, - 0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE, 0xB2, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x49, 0xE0, - 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, - 0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, - 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, - 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, - // Bytes 4640 - 467f - 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, - 0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1, - 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xB2, 0x4C, - 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, - 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D, - 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, - // Bytes 4680 - 46bf - 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, - 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x83, - 0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41, 0xCC, 0x86, - 0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD, 0x83, 0x41, - 0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC, 0x8A, 0xCD, - 0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83, 0x43, 0xCC, - // Bytes 46c0 - 46ff - 0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82, 0xCD, 0x83, - 0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45, 0xCC, 0xA3, - 0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9, 0x83, 0x49, - 0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC, 0xA3, 0xB9, - 0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83, 0x4F, 0xCC, - 0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84, 0xCD, 0x83, - 0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F, 0xCC, 0x88, - 0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1, 0x83, 0x4F, - // Bytes 4700 - 473f - 0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0xA8, 0xA9, - 0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83, 0x53, 0xCC, - 0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C, 0xCD, 0x83, - 0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55, 0xCC, 0x83, - 0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD, 0x83, 0x55, - 0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC, 0x9B, 0xB1, - 0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83, 0x61, 0xCC, - 0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87, 0xCD, 0x83, - // Bytes 4740 - 477f - 0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61, 0xCC, 0x8A, - 0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9, 0x83, 0x63, - 0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC, 0x82, 0xCD, - 0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83, 0x65, 0xCC, - 0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7, 0xA9, 0x83, - 0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C, 0xCC, 0xA3, - 0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD, 0x83, 0x6F, - 0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC, 0x84, 0xCD, - // Bytes 4780 - 47bf - 0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83, 0x6F, 0xCC, - 0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B, 0xB1, 0x83, - 0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0xA8, - 0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9, 0x83, 0x73, - 0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC, 0x8C, 0xCD, - 0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83, 0x75, 0xCC, - 0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84, 0xCD, 0x83, - 0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75, 0xCC, 0x9B, - // Bytes 47c0 - 47ff - 0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x84, - 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x95, - 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95, 0xCC, 0x94, - 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x84, - 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x99, - 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99, 0xCC, 0x94, - 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xCD, 0x84, - 0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA5, - // Bytes 4800 - 483f - 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x93, - 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x84, - 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84, 0xCE, 0xB1, - 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x93, - 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x84, - 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84, 0xCE, 0xB5, - 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5, 0xCC, 0x94, - 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x84, - // Bytes 4840 - 487f - 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB7, - 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x94, - 0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x84, - 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84, 0xCE, 0xB9, - 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x94, - 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xCD, 0x84, - 0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84, 0xCF, 0x85, - 0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x93, - // Bytes 4880 - 48bf - 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x84, - 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84, 0xCF, 0x89, - 0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x93, - 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x84, - 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86, 0xCE, 0x91, - 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91, - 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x91, - // Bytes 48c0 - 48ff - 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91, - 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91, - 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97, - 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97, - 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97, - 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97, - 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97, - // Bytes 4900 - 493f - 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9, - 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9, - 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9, - 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9, - 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9, - 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1, - 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1, - // Bytes 4940 - 497f - 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1, - 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1, - 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1, - 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7, - 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7, - 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7, - // Bytes 4980 - 49bf - 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7, - 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7, - 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89, - 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89, - 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89, - 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89, - 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89, - 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89, - // Bytes 49c0 - 49ff - 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42, 0xCC, 0x80, - 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD, 0x33, 0x42, - 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1, 0x85, 0xA1, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA5, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, 0xE1, - // Bytes 4a00 - 4a3f - 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA9, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAD, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, 0x00, - 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB1, - 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x00, - // Bytes 4a40 - 4a7f - 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, 0xE1, - 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB5, - 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, 0x00, - 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, 0xE1, - 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB0, - 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x00, - 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, 0xE1, - 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB4, - // Bytes 4a80 - 4abf - 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, 0x00, - 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x33, 0x43, - 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43, 0xE3, 0x82, - 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, - 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27, 0x00, 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10680 bytes (10.43 KiB). Checksum: a555db76d4becdd2. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 46: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 46 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 48 blocks, 3072 entries, 6144 bytes -// The third block is the zero block. -var nfcValues = [3072]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3, - 0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012, - 0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b, - 0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4, - 0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c, - 0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c, - 0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a, - 0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767, - 0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776, - 0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea, - 0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580, - // Block 0x4, offset 0x100 - 0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf, - 0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd, - 0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec, - 0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319, - 0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350, - 0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369, - 0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5, - 0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd, - 0x130: 0x30a3, 0x134: 0x30cb, 0x135: 0x33d7, - 0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3, - 0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, - // Block 0x5, offset 0x140 - 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f, - 0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, - 0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463, - 0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a, - 0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4, - 0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1, - 0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad, - 0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9, - 0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f, - 0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e, - 0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157, - 0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df, - 0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67, - 0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc, - 0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6, - 0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4, - 0x1b0: 0x33dc, 0x1b4: 0x303f, 0x1b5: 0x334b, - 0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d, - 0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d, - 0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3, - 0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490, - 0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d, - 0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc, - 0x1de: 0x3071, 0x1df: 0x337d, - 0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762, - 0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780, - 0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576, - // Block 0x8, offset 0x200 - 0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133, - 0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933, - 0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933, - 0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e, - 0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e, - 0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e, - 0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e, - 0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e, - 0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e, - 0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133, - // Block 0x9, offset 0x240 - 0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937, - 0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133, - 0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133, - 0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133, - 0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136, - 0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133, - 0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133, - 0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133, - 0x274: 0x0173, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35b8, - 0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c, - 0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0, - 0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3738, 0x2c1: 0x3744, 0x2c3: 0x3732, - 0x2c6: 0xa000, 0x2c7: 0x3720, - 0x2cc: 0x3774, 0x2cd: 0x375c, 0x2ce: 0x3786, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3768, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37ec, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x374a, 0x302: 0x37ce, - 0x310: 0x3726, 0x311: 0x37aa, - 0x312: 0x372c, 0x313: 0x37b0, 0x316: 0x373e, 0x317: 0x37c2, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3840, 0x31b: 0x3846, 0x31c: 0x3750, 0x31d: 0x37d4, - 0x31e: 0x3756, 0x31f: 0x37da, 0x322: 0x3762, 0x323: 0x37e6, - 0x324: 0x376e, 0x325: 0x37f2, 0x326: 0x377a, 0x327: 0x37fe, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x384c, 0x32b: 0x3852, 0x32c: 0x37a4, 0x32d: 0x3828, 0x32e: 0x3780, 0x32f: 0x3804, - 0x330: 0x378c, 0x331: 0x3810, 0x332: 0x3792, 0x333: 0x3816, 0x334: 0x3798, 0x335: 0x381c, - 0x338: 0x379e, 0x339: 0x3822, - // Block 0xd, offset 0x340 - 0x351: 0x812e, - 0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133, - 0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133, - 0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e, - 0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133, - 0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133, - 0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b, - 0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110, - 0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117, - 0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d, - 0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133, - 0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133, - 0x39e: 0x8133, 0x39f: 0x812e, - 0x3b0: 0x811f, - // Block 0xf, offset 0x3c0 - 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133, - 0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133, - 0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e, - 0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e, - 0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e, - 0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133, - 0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133, - 0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d33, 0x407: 0xa000, 0x408: 0x2d3b, 0x409: 0xa000, 0x40a: 0x2d43, 0x40b: 0xa000, - 0x40c: 0x2d4b, 0x40d: 0xa000, 0x40e: 0x2d53, 0x411: 0xa000, - 0x412: 0x2d5b, - 0x434: 0x8103, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d63, - 0x43c: 0xa000, 0x43d: 0x2d6b, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133, - 0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133, - 0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133, - 0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133, - 0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133, - 0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133, - 0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133, - 0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133, - 0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133, - 0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47b: 0x8133, - 0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e, - // Block 0x12, offset 0x480 - 0x480: 0x2fae, 0x481: 0x32ba, 0x482: 0x2fb8, 0x483: 0x32c4, 0x484: 0x2fbd, 0x485: 0x32c9, - 0x486: 0x2fc2, 0x487: 0x32ce, 0x488: 0x38e3, 0x489: 0x3a72, 0x48a: 0x2fdb, 0x48b: 0x32e7, - 0x48c: 0x2fe5, 0x48d: 0x32f1, 0x48e: 0x2ff4, 0x48f: 0x3300, 0x490: 0x2fea, 0x491: 0x32f6, - 0x492: 0x2fef, 0x493: 0x32fb, 0x494: 0x3906, 0x495: 0x3a95, 0x496: 0x390d, 0x497: 0x3a9c, - 0x498: 0x3030, 0x499: 0x333c, 0x49a: 0x3035, 0x49b: 0x3341, 0x49c: 0x391b, 0x49d: 0x3aaa, - 0x49e: 0x303a, 0x49f: 0x3346, 0x4a0: 0x3049, 0x4a1: 0x3355, 0x4a2: 0x3067, 0x4a3: 0x3373, - 0x4a4: 0x3076, 0x4a5: 0x3382, 0x4a6: 0x306c, 0x4a7: 0x3378, 0x4a8: 0x307b, 0x4a9: 0x3387, - 0x4aa: 0x3080, 0x4ab: 0x338c, 0x4ac: 0x30c6, 0x4ad: 0x33d2, 0x4ae: 0x3922, 0x4af: 0x3ab1, - 0x4b0: 0x30d0, 0x4b1: 0x33e1, 0x4b2: 0x30da, 0x4b3: 0x33eb, 0x4b4: 0x30e4, 0x4b5: 0x33f5, - 0x4b6: 0x46db, 0x4b7: 0x476c, 0x4b8: 0x3929, 0x4b9: 0x3ab8, 0x4ba: 0x30fd, 0x4bb: 0x340e, - 0x4bc: 0x30f8, 0x4bd: 0x3409, 0x4be: 0x3102, 0x4bf: 0x3413, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x3107, 0x4c1: 0x3418, 0x4c2: 0x310c, 0x4c3: 0x341d, 0x4c4: 0x3120, 0x4c5: 0x3431, - 0x4c6: 0x312a, 0x4c7: 0x343b, 0x4c8: 0x3139, 0x4c9: 0x344a, 0x4ca: 0x3134, 0x4cb: 0x3445, - 0x4cc: 0x394c, 0x4cd: 0x3adb, 0x4ce: 0x395a, 0x4cf: 0x3ae9, 0x4d0: 0x3961, 0x4d1: 0x3af0, - 0x4d2: 0x3968, 0x4d3: 0x3af7, 0x4d4: 0x3166, 0x4d5: 0x3477, 0x4d6: 0x316b, 0x4d7: 0x347c, - 0x4d8: 0x3175, 0x4d9: 0x3486, 0x4da: 0x4708, 0x4db: 0x4799, 0x4dc: 0x39ae, 0x4dd: 0x3b3d, - 0x4de: 0x318e, 0x4df: 0x349f, 0x4e0: 0x3198, 0x4e1: 0x34a9, 0x4e2: 0x4717, 0x4e3: 0x47a8, - 0x4e4: 0x39b5, 0x4e5: 0x3b44, 0x4e6: 0x39bc, 0x4e7: 0x3b4b, 0x4e8: 0x39c3, 0x4e9: 0x3b52, - 0x4ea: 0x31a7, 0x4eb: 0x34b8, 0x4ec: 0x31b1, 0x4ed: 0x34c7, 0x4ee: 0x31c5, 0x4ef: 0x34db, - 0x4f0: 0x31c0, 0x4f1: 0x34d6, 0x4f2: 0x3201, 0x4f3: 0x3517, 0x4f4: 0x3210, 0x4f5: 0x3526, - 0x4f6: 0x320b, 0x4f7: 0x3521, 0x4f8: 0x39ca, 0x4f9: 0x3b59, 0x4fa: 0x39d1, 0x4fb: 0x3b60, - 0x4fc: 0x3215, 0x4fd: 0x352b, 0x4fe: 0x321a, 0x4ff: 0x3530, - // Block 0x14, offset 0x500 - 0x500: 0x321f, 0x501: 0x3535, 0x502: 0x3224, 0x503: 0x353a, 0x504: 0x3233, 0x505: 0x3549, - 0x506: 0x322e, 0x507: 0x3544, 0x508: 0x3238, 0x509: 0x3553, 0x50a: 0x323d, 0x50b: 0x3558, - 0x50c: 0x3242, 0x50d: 0x355d, 0x50e: 0x3260, 0x50f: 0x357b, 0x510: 0x3279, 0x511: 0x3599, - 0x512: 0x3288, 0x513: 0x35a8, 0x514: 0x328d, 0x515: 0x35ad, 0x516: 0x3391, 0x517: 0x34bd, - 0x518: 0x354e, 0x519: 0x358a, 0x51b: 0x35e8, - 0x520: 0x46b8, 0x521: 0x4749, 0x522: 0x2f9a, 0x523: 0x32a6, - 0x524: 0x388f, 0x525: 0x3a1e, 0x526: 0x3888, 0x527: 0x3a17, 0x528: 0x389d, 0x529: 0x3a2c, - 0x52a: 0x3896, 0x52b: 0x3a25, 0x52c: 0x38d5, 0x52d: 0x3a64, 0x52e: 0x38ab, 0x52f: 0x3a3a, - 0x530: 0x38a4, 0x531: 0x3a33, 0x532: 0x38b9, 0x533: 0x3a48, 0x534: 0x38b2, 0x535: 0x3a41, - 0x536: 0x38dc, 0x537: 0x3a6b, 0x538: 0x46cc, 0x539: 0x475d, 0x53a: 0x3017, 0x53b: 0x3323, - 0x53c: 0x3003, 0x53d: 0x330f, 0x53e: 0x38f1, 0x53f: 0x3a80, - // Block 0x15, offset 0x540 - 0x540: 0x38ea, 0x541: 0x3a79, 0x542: 0x38ff, 0x543: 0x3a8e, 0x544: 0x38f8, 0x545: 0x3a87, - 0x546: 0x3914, 0x547: 0x3aa3, 0x548: 0x30a8, 0x549: 0x33b4, 0x54a: 0x30bc, 0x54b: 0x33c8, - 0x54c: 0x46fe, 0x54d: 0x478f, 0x54e: 0x314d, 0x54f: 0x345e, 0x550: 0x3937, 0x551: 0x3ac6, - 0x552: 0x3930, 0x553: 0x3abf, 0x554: 0x3945, 0x555: 0x3ad4, 0x556: 0x393e, 0x557: 0x3acd, - 0x558: 0x39a0, 0x559: 0x3b2f, 0x55a: 0x3984, 0x55b: 0x3b13, 0x55c: 0x397d, 0x55d: 0x3b0c, - 0x55e: 0x3992, 0x55f: 0x3b21, 0x560: 0x398b, 0x561: 0x3b1a, 0x562: 0x3999, 0x563: 0x3b28, - 0x564: 0x31fc, 0x565: 0x3512, 0x566: 0x31de, 0x567: 0x34f4, 0x568: 0x39fb, 0x569: 0x3b8a, - 0x56a: 0x39f4, 0x56b: 0x3b83, 0x56c: 0x3a09, 0x56d: 0x3b98, 0x56e: 0x3a02, 0x56f: 0x3b91, - 0x570: 0x3a10, 0x571: 0x3b9f, 0x572: 0x3247, 0x573: 0x3562, 0x574: 0x326f, 0x575: 0x358f, - 0x576: 0x326a, 0x577: 0x3585, 0x578: 0x3256, 0x579: 0x3571, - // Block 0x16, offset 0x580 - 0x580: 0x481b, 0x581: 0x4821, 0x582: 0x4935, 0x583: 0x494d, 0x584: 0x493d, 0x585: 0x4955, - 0x586: 0x4945, 0x587: 0x495d, 0x588: 0x47c1, 0x589: 0x47c7, 0x58a: 0x48a5, 0x58b: 0x48bd, - 0x58c: 0x48ad, 0x58d: 0x48c5, 0x58e: 0x48b5, 0x58f: 0x48cd, 0x590: 0x482d, 0x591: 0x4833, - 0x592: 0x3dcf, 0x593: 0x3ddf, 0x594: 0x3dd7, 0x595: 0x3de7, - 0x598: 0x47cd, 0x599: 0x47d3, 0x59a: 0x3cff, 0x59b: 0x3d0f, 0x59c: 0x3d07, 0x59d: 0x3d17, - 0x5a0: 0x4845, 0x5a1: 0x484b, 0x5a2: 0x4965, 0x5a3: 0x497d, - 0x5a4: 0x496d, 0x5a5: 0x4985, 0x5a6: 0x4975, 0x5a7: 0x498d, 0x5a8: 0x47d9, 0x5a9: 0x47df, - 0x5aa: 0x48d5, 0x5ab: 0x48ed, 0x5ac: 0x48dd, 0x5ad: 0x48f5, 0x5ae: 0x48e5, 0x5af: 0x48fd, - 0x5b0: 0x485d, 0x5b1: 0x4863, 0x5b2: 0x3e2f, 0x5b3: 0x3e47, 0x5b4: 0x3e37, 0x5b5: 0x3e4f, - 0x5b6: 0x3e3f, 0x5b7: 0x3e57, 0x5b8: 0x47e5, 0x5b9: 0x47eb, 0x5ba: 0x3d2f, 0x5bb: 0x3d47, - 0x5bc: 0x3d37, 0x5bd: 0x3d4f, 0x5be: 0x3d3f, 0x5bf: 0x3d57, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4869, 0x5c1: 0x486f, 0x5c2: 0x3e5f, 0x5c3: 0x3e6f, 0x5c4: 0x3e67, 0x5c5: 0x3e77, - 0x5c8: 0x47f1, 0x5c9: 0x47f7, 0x5ca: 0x3d5f, 0x5cb: 0x3d6f, - 0x5cc: 0x3d67, 0x5cd: 0x3d77, 0x5d0: 0x487b, 0x5d1: 0x4881, - 0x5d2: 0x3e97, 0x5d3: 0x3eaf, 0x5d4: 0x3e9f, 0x5d5: 0x3eb7, 0x5d6: 0x3ea7, 0x5d7: 0x3ebf, - 0x5d9: 0x47fd, 0x5db: 0x3d7f, 0x5dd: 0x3d87, - 0x5df: 0x3d8f, 0x5e0: 0x4893, 0x5e1: 0x4899, 0x5e2: 0x4995, 0x5e3: 0x49ad, - 0x5e4: 0x499d, 0x5e5: 0x49b5, 0x5e6: 0x49a5, 0x5e7: 0x49bd, 0x5e8: 0x4803, 0x5e9: 0x4809, - 0x5ea: 0x4905, 0x5eb: 0x491d, 0x5ec: 0x490d, 0x5ed: 0x4925, 0x5ee: 0x4915, 0x5ef: 0x492d, - 0x5f0: 0x480f, 0x5f1: 0x4335, 0x5f2: 0x36a8, 0x5f3: 0x433b, 0x5f4: 0x4839, 0x5f5: 0x4341, - 0x5f6: 0x36ba, 0x5f7: 0x4347, 0x5f8: 0x36d8, 0x5f9: 0x434d, 0x5fa: 0x36f0, 0x5fb: 0x4353, - 0x5fc: 0x4887, 0x5fd: 0x4359, - // Block 0x18, offset 0x600 - 0x600: 0x3db7, 0x601: 0x3dbf, 0x602: 0x419b, 0x603: 0x41b9, 0x604: 0x41a5, 0x605: 0x41c3, - 0x606: 0x41af, 0x607: 0x41cd, 0x608: 0x3cef, 0x609: 0x3cf7, 0x60a: 0x40e7, 0x60b: 0x4105, - 0x60c: 0x40f1, 0x60d: 0x410f, 0x60e: 0x40fb, 0x60f: 0x4119, 0x610: 0x3dff, 0x611: 0x3e07, - 0x612: 0x41d7, 0x613: 0x41f5, 0x614: 0x41e1, 0x615: 0x41ff, 0x616: 0x41eb, 0x617: 0x4209, - 0x618: 0x3d1f, 0x619: 0x3d27, 0x61a: 0x4123, 0x61b: 0x4141, 0x61c: 0x412d, 0x61d: 0x414b, - 0x61e: 0x4137, 0x61f: 0x4155, 0x620: 0x3ed7, 0x621: 0x3edf, 0x622: 0x4213, 0x623: 0x4231, - 0x624: 0x421d, 0x625: 0x423b, 0x626: 0x4227, 0x627: 0x4245, 0x628: 0x3d97, 0x629: 0x3d9f, - 0x62a: 0x415f, 0x62b: 0x417d, 0x62c: 0x4169, 0x62d: 0x4187, 0x62e: 0x4173, 0x62f: 0x4191, - 0x630: 0x369c, 0x631: 0x3696, 0x632: 0x3da7, 0x633: 0x36a2, 0x634: 0x3daf, - 0x636: 0x4827, 0x637: 0x3dc7, 0x638: 0x360c, 0x639: 0x3606, 0x63a: 0x35fa, 0x63b: 0x4305, - 0x63c: 0x3612, 0x63d: 0x8100, 0x63e: 0x01d6, 0x63f: 0xa100, - // Block 0x19, offset 0x640 - 0x640: 0x8100, 0x641: 0x35be, 0x642: 0x3def, 0x643: 0x36b4, 0x644: 0x3df7, - 0x646: 0x4851, 0x647: 0x3e0f, 0x648: 0x3618, 0x649: 0x430b, 0x64a: 0x3624, 0x64b: 0x4311, - 0x64c: 0x3630, 0x64d: 0x3ba6, 0x64e: 0x3bad, 0x64f: 0x3bb4, 0x650: 0x36cc, 0x651: 0x36c6, - 0x652: 0x3e17, 0x653: 0x44fb, 0x656: 0x36d2, 0x657: 0x3e27, - 0x658: 0x3648, 0x659: 0x3642, 0x65a: 0x3636, 0x65b: 0x4317, 0x65d: 0x3bbb, - 0x65e: 0x3bc2, 0x65f: 0x3bc9, 0x660: 0x3702, 0x661: 0x36fc, 0x662: 0x3e7f, 0x663: 0x4503, - 0x664: 0x36e4, 0x665: 0x36ea, 0x666: 0x3708, 0x667: 0x3e8f, 0x668: 0x3678, 0x669: 0x3672, - 0x66a: 0x3666, 0x66b: 0x4323, 0x66c: 0x3660, 0x66d: 0x35b2, 0x66e: 0x42ff, 0x66f: 0x0081, - 0x672: 0x3ec7, 0x673: 0x370e, 0x674: 0x3ecf, - 0x676: 0x489f, 0x677: 0x3ee7, 0x678: 0x3654, 0x679: 0x431d, 0x67a: 0x3684, 0x67b: 0x432f, - 0x67c: 0x3690, 0x67d: 0x426d, 0x67e: 0xa100, - // Block 0x1a, offset 0x680 - 0x681: 0x3c1d, 0x683: 0xa000, 0x684: 0x3c24, 0x685: 0xa000, - 0x687: 0x3c2b, 0x688: 0xa000, 0x689: 0x3c32, - 0x68d: 0xa000, - 0x6a0: 0x2f7c, 0x6a1: 0xa000, 0x6a2: 0x3c40, - 0x6a4: 0xa000, 0x6a5: 0xa000, - 0x6ad: 0x3c39, 0x6ae: 0x2f77, 0x6af: 0x2f81, - 0x6b0: 0x3c47, 0x6b1: 0x3c4e, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c55, 0x6b5: 0x3c5c, - 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c63, 0x6b9: 0x3c6a, 0x6ba: 0xa000, 0x6bb: 0xa000, - 0x6bc: 0xa000, 0x6bd: 0xa000, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3c71, 0x6c1: 0x3c78, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c8d, 0x6c5: 0x3c94, - 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c9b, 0x6c9: 0x3ca2, - 0x6d1: 0xa000, - 0x6d2: 0xa000, - 0x6e2: 0xa000, - 0x6e8: 0xa000, 0x6e9: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3cb7, 0x6ed: 0x3cbe, 0x6ee: 0x3cc5, 0x6ef: 0x3ccc, - 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, - // Block 0x1c, offset 0x700 - 0x706: 0xa000, 0x70b: 0xa000, - 0x70c: 0x3f1f, 0x70d: 0xa000, 0x70e: 0x3f27, 0x70f: 0xa000, 0x710: 0x3f2f, 0x711: 0xa000, - 0x712: 0x3f37, 0x713: 0xa000, 0x714: 0x3f3f, 0x715: 0xa000, 0x716: 0x3f47, 0x717: 0xa000, - 0x718: 0x3f4f, 0x719: 0xa000, 0x71a: 0x3f57, 0x71b: 0xa000, 0x71c: 0x3f5f, 0x71d: 0xa000, - 0x71e: 0x3f67, 0x71f: 0xa000, 0x720: 0x3f6f, 0x721: 0xa000, 0x722: 0x3f77, - 0x724: 0xa000, 0x725: 0x3f7f, 0x726: 0xa000, 0x727: 0x3f87, 0x728: 0xa000, 0x729: 0x3f8f, - 0x72f: 0xa000, - 0x730: 0x3f97, 0x731: 0x3f9f, 0x732: 0xa000, 0x733: 0x3fa7, 0x734: 0x3faf, 0x735: 0xa000, - 0x736: 0x3fb7, 0x737: 0x3fbf, 0x738: 0xa000, 0x739: 0x3fc7, 0x73a: 0x3fcf, 0x73b: 0xa000, - 0x73c: 0x3fd7, 0x73d: 0x3fdf, - // Block 0x1d, offset 0x740 - 0x754: 0x3f17, - 0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, - 0x75e: 0x3fe7, - 0x766: 0xa000, - 0x76b: 0xa000, 0x76c: 0x3ff7, 0x76d: 0xa000, 0x76e: 0x3fff, 0x76f: 0xa000, - 0x770: 0x4007, 0x771: 0xa000, 0x772: 0x400f, 0x773: 0xa000, 0x774: 0x4017, 0x775: 0xa000, - 0x776: 0x401f, 0x777: 0xa000, 0x778: 0x4027, 0x779: 0xa000, 0x77a: 0x402f, 0x77b: 0xa000, - 0x77c: 0x4037, 0x77d: 0xa000, 0x77e: 0x403f, 0x77f: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x4047, 0x781: 0xa000, 0x782: 0x404f, 0x784: 0xa000, 0x785: 0x4057, - 0x786: 0xa000, 0x787: 0x405f, 0x788: 0xa000, 0x789: 0x4067, - 0x78f: 0xa000, 0x790: 0x406f, 0x791: 0x4077, - 0x792: 0xa000, 0x793: 0x407f, 0x794: 0x4087, 0x795: 0xa000, 0x796: 0x408f, 0x797: 0x4097, - 0x798: 0xa000, 0x799: 0x409f, 0x79a: 0x40a7, 0x79b: 0xa000, 0x79c: 0x40af, 0x79d: 0x40b7, - 0x7af: 0xa000, - 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fef, - 0x7b7: 0x40bf, 0x7b8: 0x40c7, 0x7b9: 0x40cf, 0x7ba: 0x40d7, - 0x7bd: 0xa000, 0x7be: 0x40df, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x137a, 0x7c1: 0x0cfe, 0x7c2: 0x13d6, 0x7c3: 0x13a2, 0x7c4: 0x0e5a, 0x7c5: 0x06ee, - 0x7c6: 0x08e2, 0x7c7: 0x162e, 0x7c8: 0x162e, 0x7c9: 0x0a0e, 0x7ca: 0x1462, 0x7cb: 0x0946, - 0x7cc: 0x0a0a, 0x7cd: 0x0bf2, 0x7ce: 0x0fd2, 0x7cf: 0x1162, 0x7d0: 0x129a, 0x7d1: 0x12d6, - 0x7d2: 0x130a, 0x7d3: 0x141e, 0x7d4: 0x0d76, 0x7d5: 0x0e02, 0x7d6: 0x0eae, 0x7d7: 0x0f46, - 0x7d8: 0x1262, 0x7d9: 0x144a, 0x7da: 0x1576, 0x7db: 0x0712, 0x7dc: 0x08b6, 0x7dd: 0x0d8a, - 0x7de: 0x0ed2, 0x7df: 0x1296, 0x7e0: 0x15c6, 0x7e1: 0x0ab6, 0x7e2: 0x0e7a, 0x7e3: 0x1286, - 0x7e4: 0x131a, 0x7e5: 0x0c26, 0x7e6: 0x11be, 0x7e7: 0x12e2, 0x7e8: 0x0b22, 0x7e9: 0x0d12, - 0x7ea: 0x0e1a, 0x7eb: 0x0f1e, 0x7ec: 0x142a, 0x7ed: 0x0752, 0x7ee: 0x07ea, 0x7ef: 0x0856, - 0x7f0: 0x0c8e, 0x7f1: 0x0d82, 0x7f2: 0x0ece, 0x7f3: 0x0ff2, 0x7f4: 0x117a, 0x7f5: 0x128e, - 0x7f6: 0x12a6, 0x7f7: 0x13ca, 0x7f8: 0x14f2, 0x7f9: 0x15a6, 0x7fa: 0x15c2, 0x7fb: 0x102e, - 0x7fc: 0x106e, 0x7fd: 0x1126, 0x7fe: 0x1246, 0x7ff: 0x147e, - // Block 0x20, offset 0x800 - 0x800: 0x15ce, 0x801: 0x134e, 0x802: 0x09ca, 0x803: 0x0b3e, 0x804: 0x10de, 0x805: 0x119e, - 0x806: 0x0f02, 0x807: 0x1036, 0x808: 0x139a, 0x809: 0x14ea, 0x80a: 0x09c6, 0x80b: 0x0a92, - 0x80c: 0x0d7a, 0x80d: 0x0e2e, 0x80e: 0x0e62, 0x80f: 0x1116, 0x810: 0x113e, 0x811: 0x14aa, - 0x812: 0x0852, 0x813: 0x11aa, 0x814: 0x07f6, 0x815: 0x07f2, 0x816: 0x109a, 0x817: 0x112a, - 0x818: 0x125e, 0x819: 0x14b2, 0x81a: 0x136a, 0x81b: 0x0c2a, 0x81c: 0x0d76, 0x81d: 0x135a, - 0x81e: 0x06fa, 0x81f: 0x0a66, 0x820: 0x0b96, 0x821: 0x0f32, 0x822: 0x0fb2, 0x823: 0x0876, - 0x824: 0x103e, 0x825: 0x0762, 0x826: 0x0b7a, 0x827: 0x06da, 0x828: 0x0dee, 0x829: 0x0ca6, - 0x82a: 0x1112, 0x82b: 0x08ca, 0x82c: 0x09b6, 0x82d: 0x0ffe, 0x82e: 0x1266, 0x82f: 0x133e, - 0x830: 0x0dba, 0x831: 0x13fa, 0x832: 0x0de6, 0x833: 0x0c3a, 0x834: 0x121e, 0x835: 0x0c5a, - 0x836: 0x0fae, 0x837: 0x072e, 0x838: 0x07aa, 0x839: 0x07ee, 0x83a: 0x0d56, 0x83b: 0x10fe, - 0x83c: 0x11f6, 0x83d: 0x134a, 0x83e: 0x145e, 0x83f: 0x085e, - // Block 0x21, offset 0x840 - 0x840: 0x0912, 0x841: 0x0a1a, 0x842: 0x0b32, 0x843: 0x0cc2, 0x844: 0x0e7e, 0x845: 0x1042, - 0x846: 0x149a, 0x847: 0x157e, 0x848: 0x15d2, 0x849: 0x15ea, 0x84a: 0x083a, 0x84b: 0x0cf6, - 0x84c: 0x0da6, 0x84d: 0x13ee, 0x84e: 0x0afe, 0x84f: 0x0bda, 0x850: 0x0bf6, 0x851: 0x0c86, - 0x852: 0x0e6e, 0x853: 0x0eba, 0x854: 0x0f6a, 0x855: 0x108e, 0x856: 0x1132, 0x857: 0x1196, - 0x858: 0x13de, 0x859: 0x126e, 0x85a: 0x1406, 0x85b: 0x1482, 0x85c: 0x0812, 0x85d: 0x083e, - 0x85e: 0x0926, 0x85f: 0x0eaa, 0x860: 0x12f6, 0x861: 0x133e, 0x862: 0x0b1e, 0x863: 0x0b8e, - 0x864: 0x0c52, 0x865: 0x0db2, 0x866: 0x10da, 0x867: 0x0f26, 0x868: 0x073e, 0x869: 0x0982, - 0x86a: 0x0a66, 0x86b: 0x0aca, 0x86c: 0x0b9a, 0x86d: 0x0f42, 0x86e: 0x0f5e, 0x86f: 0x116e, - 0x870: 0x118e, 0x871: 0x1466, 0x872: 0x14e6, 0x873: 0x14f6, 0x874: 0x1532, 0x875: 0x0756, - 0x876: 0x1082, 0x877: 0x1452, 0x878: 0x14ce, 0x879: 0x0bb2, 0x87a: 0x071a, 0x87b: 0x077a, - 0x87c: 0x0a6a, 0x87d: 0x0a8a, 0x87e: 0x0cb2, 0x87f: 0x0d76, - // Block 0x22, offset 0x880 - 0x880: 0x0ec6, 0x881: 0x0fce, 0x882: 0x127a, 0x883: 0x141a, 0x884: 0x1626, 0x885: 0x0ce6, - 0x886: 0x14a6, 0x887: 0x0836, 0x888: 0x0d32, 0x889: 0x0d3e, 0x88a: 0x0e12, 0x88b: 0x0e4a, - 0x88c: 0x0f4e, 0x88d: 0x0faa, 0x88e: 0x102a, 0x88f: 0x110e, 0x890: 0x153e, 0x891: 0x07b2, - 0x892: 0x0c06, 0x893: 0x14b6, 0x894: 0x076a, 0x895: 0x0aae, 0x896: 0x0e32, 0x897: 0x13e2, - 0x898: 0x0b6a, 0x899: 0x0bba, 0x89a: 0x0d46, 0x89b: 0x0f32, 0x89c: 0x14be, 0x89d: 0x081a, - 0x89e: 0x0902, 0x89f: 0x0a9a, 0x8a0: 0x0cd6, 0x8a1: 0x0d22, 0x8a2: 0x0d62, 0x8a3: 0x0df6, - 0x8a4: 0x0f4a, 0x8a5: 0x0fbe, 0x8a6: 0x115a, 0x8a7: 0x12fa, 0x8a8: 0x1306, 0x8a9: 0x145a, - 0x8aa: 0x14da, 0x8ab: 0x0886, 0x8ac: 0x0e4e, 0x8ad: 0x0906, 0x8ae: 0x0eca, 0x8af: 0x0f6e, - 0x8b0: 0x128a, 0x8b1: 0x14c2, 0x8b2: 0x15ae, 0x8b3: 0x15d6, 0x8b4: 0x0d3a, 0x8b5: 0x0e2a, - 0x8b6: 0x11c6, 0x8b7: 0x10ba, 0x8b8: 0x10c6, 0x8b9: 0x10ea, 0x8ba: 0x0f1a, 0x8bb: 0x0ea2, - 0x8bc: 0x1366, 0x8bd: 0x0736, 0x8be: 0x122e, 0x8bf: 0x081e, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x080e, 0x8c1: 0x0b0e, 0x8c2: 0x0c2e, 0x8c3: 0x10f6, 0x8c4: 0x0a56, 0x8c5: 0x0e06, - 0x8c6: 0x0cf2, 0x8c7: 0x13ea, 0x8c8: 0x12ea, 0x8c9: 0x14ae, 0x8ca: 0x1326, 0x8cb: 0x0b2a, - 0x8cc: 0x078a, 0x8cd: 0x095e, 0x8d0: 0x09b2, - 0x8d2: 0x0ce2, 0x8d5: 0x07fa, 0x8d6: 0x0f22, 0x8d7: 0x0fe6, - 0x8d8: 0x104a, 0x8d9: 0x1066, 0x8da: 0x106a, 0x8db: 0x107e, 0x8dc: 0x14fe, 0x8dd: 0x10ee, - 0x8de: 0x1172, 0x8e0: 0x1292, 0x8e2: 0x1356, - 0x8e5: 0x140a, 0x8e6: 0x1436, - 0x8ea: 0x1552, 0x8eb: 0x1556, 0x8ec: 0x155a, 0x8ed: 0x15be, 0x8ee: 0x142e, 0x8ef: 0x14ca, - 0x8f0: 0x075a, 0x8f1: 0x077e, 0x8f2: 0x0792, 0x8f3: 0x084e, 0x8f4: 0x085a, 0x8f5: 0x089a, - 0x8f6: 0x094e, 0x8f7: 0x096a, 0x8f8: 0x0972, 0x8f9: 0x09ae, 0x8fa: 0x09ba, 0x8fb: 0x0a96, - 0x8fc: 0x0a9e, 0x8fd: 0x0ba6, 0x8fe: 0x0bce, 0x8ff: 0x0bd6, - // Block 0x24, offset 0x900 - 0x900: 0x0bee, 0x901: 0x0c9a, 0x902: 0x0cca, 0x903: 0x0cea, 0x904: 0x0d5a, 0x905: 0x0e1e, - 0x906: 0x0e3a, 0x907: 0x0e6a, 0x908: 0x0ebe, 0x909: 0x0ede, 0x90a: 0x0f52, 0x90b: 0x1032, - 0x90c: 0x104e, 0x90d: 0x1056, 0x90e: 0x1052, 0x90f: 0x105a, 0x910: 0x105e, 0x911: 0x1062, - 0x912: 0x1076, 0x913: 0x107a, 0x914: 0x109e, 0x915: 0x10b2, 0x916: 0x10ce, 0x917: 0x1132, - 0x918: 0x113a, 0x919: 0x1142, 0x91a: 0x1156, 0x91b: 0x117e, 0x91c: 0x11ce, 0x91d: 0x1202, - 0x91e: 0x1202, 0x91f: 0x126a, 0x920: 0x1312, 0x921: 0x132a, 0x922: 0x135e, 0x923: 0x1362, - 0x924: 0x13a6, 0x925: 0x13aa, 0x926: 0x1402, 0x927: 0x140a, 0x928: 0x14de, 0x929: 0x1522, - 0x92a: 0x153a, 0x92b: 0x0b9e, 0x92c: 0x1721, 0x92d: 0x11e6, - 0x930: 0x06e2, 0x931: 0x07e6, 0x932: 0x07a6, 0x933: 0x074e, 0x934: 0x078e, 0x935: 0x07ba, - 0x936: 0x084a, 0x937: 0x0866, 0x938: 0x094e, 0x939: 0x093a, 0x93a: 0x094a, 0x93b: 0x0966, - 0x93c: 0x09b2, 0x93d: 0x09c2, 0x93e: 0x0a06, 0x93f: 0x0a12, - // Block 0x25, offset 0x940 - 0x940: 0x0a2e, 0x941: 0x0a3e, 0x942: 0x0b26, 0x943: 0x0b2e, 0x944: 0x0b5e, 0x945: 0x0b7e, - 0x946: 0x0bae, 0x947: 0x0bc6, 0x948: 0x0bb6, 0x949: 0x0bd6, 0x94a: 0x0bca, 0x94b: 0x0bee, - 0x94c: 0x0c0a, 0x94d: 0x0c62, 0x94e: 0x0c6e, 0x94f: 0x0c76, 0x950: 0x0c9e, 0x951: 0x0ce2, - 0x952: 0x0d12, 0x953: 0x0d16, 0x954: 0x0d2a, 0x955: 0x0daa, 0x956: 0x0dba, 0x957: 0x0e12, - 0x958: 0x0e5e, 0x959: 0x0e56, 0x95a: 0x0e6a, 0x95b: 0x0e86, 0x95c: 0x0ebe, 0x95d: 0x1016, - 0x95e: 0x0ee2, 0x95f: 0x0f16, 0x960: 0x0f22, 0x961: 0x0f62, 0x962: 0x0f7e, 0x963: 0x0fa2, - 0x964: 0x0fc6, 0x965: 0x0fca, 0x966: 0x0fe6, 0x967: 0x0fea, 0x968: 0x0ffa, 0x969: 0x100e, - 0x96a: 0x100a, 0x96b: 0x103a, 0x96c: 0x10b6, 0x96d: 0x10ce, 0x96e: 0x10e6, 0x96f: 0x111e, - 0x970: 0x1132, 0x971: 0x114e, 0x972: 0x117e, 0x973: 0x1232, 0x974: 0x125a, 0x975: 0x12ce, - 0x976: 0x1316, 0x977: 0x1322, 0x978: 0x132a, 0x979: 0x1342, 0x97a: 0x1356, 0x97b: 0x1346, - 0x97c: 0x135e, 0x97d: 0x135a, 0x97e: 0x1352, 0x97f: 0x1362, - // Block 0x26, offset 0x980 - 0x980: 0x136e, 0x981: 0x13aa, 0x982: 0x13e6, 0x983: 0x1416, 0x984: 0x144e, 0x985: 0x146e, - 0x986: 0x14ba, 0x987: 0x14de, 0x988: 0x14fe, 0x989: 0x1512, 0x98a: 0x1522, 0x98b: 0x152e, - 0x98c: 0x153a, 0x98d: 0x158e, 0x98e: 0x162e, 0x98f: 0x16b8, 0x990: 0x16b3, 0x991: 0x16e5, - 0x992: 0x060a, 0x993: 0x0632, 0x994: 0x0636, 0x995: 0x1767, 0x996: 0x1794, 0x997: 0x180c, - 0x998: 0x161a, 0x999: 0x162a, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x06fe, 0x9c1: 0x06f6, 0x9c2: 0x0706, 0x9c3: 0x164a, 0x9c4: 0x074a, 0x9c5: 0x075a, - 0x9c6: 0x075e, 0x9c7: 0x0766, 0x9c8: 0x076e, 0x9c9: 0x0772, 0x9ca: 0x077e, 0x9cb: 0x0776, - 0x9cc: 0x05b6, 0x9cd: 0x165e, 0x9ce: 0x0792, 0x9cf: 0x0796, 0x9d0: 0x079a, 0x9d1: 0x07b6, - 0x9d2: 0x164f, 0x9d3: 0x05ba, 0x9d4: 0x07a2, 0x9d5: 0x07c2, 0x9d6: 0x1659, 0x9d7: 0x07d2, - 0x9d8: 0x07da, 0x9d9: 0x073a, 0x9da: 0x07e2, 0x9db: 0x07e6, 0x9dc: 0x1834, 0x9dd: 0x0802, - 0x9de: 0x080a, 0x9df: 0x05c2, 0x9e0: 0x0822, 0x9e1: 0x0826, 0x9e2: 0x082e, 0x9e3: 0x0832, - 0x9e4: 0x05c6, 0x9e5: 0x084a, 0x9e6: 0x084e, 0x9e7: 0x085a, 0x9e8: 0x0866, 0x9e9: 0x086a, - 0x9ea: 0x086e, 0x9eb: 0x0876, 0x9ec: 0x0896, 0x9ed: 0x089a, 0x9ee: 0x08a2, 0x9ef: 0x08b2, - 0x9f0: 0x08ba, 0x9f1: 0x08be, 0x9f2: 0x08be, 0x9f3: 0x08be, 0x9f4: 0x166d, 0x9f5: 0x0e96, - 0x9f6: 0x08d2, 0x9f7: 0x08da, 0x9f8: 0x1672, 0x9f9: 0x08e6, 0x9fa: 0x08ee, 0x9fb: 0x08f6, - 0x9fc: 0x091e, 0x9fd: 0x090a, 0x9fe: 0x0916, 0x9ff: 0x091a, - // Block 0x28, offset 0xa00 - 0xa00: 0x0922, 0xa01: 0x092a, 0xa02: 0x092e, 0xa03: 0x0936, 0xa04: 0x093e, 0xa05: 0x0942, - 0xa06: 0x0942, 0xa07: 0x094a, 0xa08: 0x0952, 0xa09: 0x0956, 0xa0a: 0x0962, 0xa0b: 0x0986, - 0xa0c: 0x096a, 0xa0d: 0x098a, 0xa0e: 0x096e, 0xa0f: 0x0976, 0xa10: 0x080e, 0xa11: 0x09d2, - 0xa12: 0x099a, 0xa13: 0x099e, 0xa14: 0x09a2, 0xa15: 0x0996, 0xa16: 0x09aa, 0xa17: 0x09a6, - 0xa18: 0x09be, 0xa19: 0x1677, 0xa1a: 0x09da, 0xa1b: 0x09de, 0xa1c: 0x09e6, 0xa1d: 0x09f2, - 0xa1e: 0x09fa, 0xa1f: 0x0a16, 0xa20: 0x167c, 0xa21: 0x1681, 0xa22: 0x0a22, 0xa23: 0x0a26, - 0xa24: 0x0a2a, 0xa25: 0x0a1e, 0xa26: 0x0a32, 0xa27: 0x05ca, 0xa28: 0x05ce, 0xa29: 0x0a3a, - 0xa2a: 0x0a42, 0xa2b: 0x0a42, 0xa2c: 0x1686, 0xa2d: 0x0a5e, 0xa2e: 0x0a62, 0xa2f: 0x0a66, - 0xa30: 0x0a6e, 0xa31: 0x168b, 0xa32: 0x0a76, 0xa33: 0x0a7a, 0xa34: 0x0b52, 0xa35: 0x0a82, - 0xa36: 0x05d2, 0xa37: 0x0a8e, 0xa38: 0x0a9e, 0xa39: 0x0aaa, 0xa3a: 0x0aa6, 0xa3b: 0x1695, - 0xa3c: 0x0ab2, 0xa3d: 0x169a, 0xa3e: 0x0abe, 0xa3f: 0x0aba, - // Block 0x29, offset 0xa40 - 0xa40: 0x0ac2, 0xa41: 0x0ad2, 0xa42: 0x0ad6, 0xa43: 0x05d6, 0xa44: 0x0ae6, 0xa45: 0x0aee, - 0xa46: 0x0af2, 0xa47: 0x0af6, 0xa48: 0x05da, 0xa49: 0x169f, 0xa4a: 0x05de, 0xa4b: 0x0b12, - 0xa4c: 0x0b16, 0xa4d: 0x0b1a, 0xa4e: 0x0b22, 0xa4f: 0x1866, 0xa50: 0x0b3a, 0xa51: 0x16a9, - 0xa52: 0x16a9, 0xa53: 0x11da, 0xa54: 0x0b4a, 0xa55: 0x0b4a, 0xa56: 0x05e2, 0xa57: 0x16cc, - 0xa58: 0x179e, 0xa59: 0x0b5a, 0xa5a: 0x0b62, 0xa5b: 0x05e6, 0xa5c: 0x0b76, 0xa5d: 0x0b86, - 0xa5e: 0x0b8a, 0xa5f: 0x0b92, 0xa60: 0x0ba2, 0xa61: 0x05ee, 0xa62: 0x05ea, 0xa63: 0x0ba6, - 0xa64: 0x16ae, 0xa65: 0x0baa, 0xa66: 0x0bbe, 0xa67: 0x0bc2, 0xa68: 0x0bc6, 0xa69: 0x0bc2, - 0xa6a: 0x0bd2, 0xa6b: 0x0bd6, 0xa6c: 0x0be6, 0xa6d: 0x0bde, 0xa6e: 0x0be2, 0xa6f: 0x0bea, - 0xa70: 0x0bee, 0xa71: 0x0bf2, 0xa72: 0x0bfe, 0xa73: 0x0c02, 0xa74: 0x0c1a, 0xa75: 0x0c22, - 0xa76: 0x0c32, 0xa77: 0x0c46, 0xa78: 0x16bd, 0xa79: 0x0c42, 0xa7a: 0x0c36, 0xa7b: 0x0c4e, - 0xa7c: 0x0c56, 0xa7d: 0x0c6a, 0xa7e: 0x16c2, 0xa7f: 0x0c72, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0c66, 0xa81: 0x0c5e, 0xa82: 0x05f2, 0xa83: 0x0c7a, 0xa84: 0x0c82, 0xa85: 0x0c8a, - 0xa86: 0x0c7e, 0xa87: 0x05f6, 0xa88: 0x0c9a, 0xa89: 0x0ca2, 0xa8a: 0x16c7, 0xa8b: 0x0cce, - 0xa8c: 0x0d02, 0xa8d: 0x0cde, 0xa8e: 0x0602, 0xa8f: 0x0cea, 0xa90: 0x05fe, 0xa91: 0x05fa, - 0xa92: 0x07c6, 0xa93: 0x07ca, 0xa94: 0x0d06, 0xa95: 0x0cee, 0xa96: 0x11ae, 0xa97: 0x0666, - 0xa98: 0x0d12, 0xa99: 0x0d16, 0xa9a: 0x0d1a, 0xa9b: 0x0d2e, 0xa9c: 0x0d26, 0xa9d: 0x16e0, - 0xa9e: 0x0606, 0xa9f: 0x0d42, 0xaa0: 0x0d36, 0xaa1: 0x0d52, 0xaa2: 0x0d5a, 0xaa3: 0x16ea, - 0xaa4: 0x0d5e, 0xaa5: 0x0d4a, 0xaa6: 0x0d66, 0xaa7: 0x060a, 0xaa8: 0x0d6a, 0xaa9: 0x0d6e, - 0xaaa: 0x0d72, 0xaab: 0x0d7e, 0xaac: 0x16ef, 0xaad: 0x0d86, 0xaae: 0x060e, 0xaaf: 0x0d92, - 0xab0: 0x16f4, 0xab1: 0x0d96, 0xab2: 0x0612, 0xab3: 0x0da2, 0xab4: 0x0dae, 0xab5: 0x0dba, - 0xab6: 0x0dbe, 0xab7: 0x16f9, 0xab8: 0x1690, 0xab9: 0x16fe, 0xaba: 0x0dde, 0xabb: 0x1703, - 0xabc: 0x0dea, 0xabd: 0x0df2, 0xabe: 0x0de2, 0xabf: 0x0dfe, - // Block 0x2b, offset 0xac0 - 0xac0: 0x0e0e, 0xac1: 0x0e1e, 0xac2: 0x0e12, 0xac3: 0x0e16, 0xac4: 0x0e22, 0xac5: 0x0e26, - 0xac6: 0x1708, 0xac7: 0x0e0a, 0xac8: 0x0e3e, 0xac9: 0x0e42, 0xaca: 0x0616, 0xacb: 0x0e56, - 0xacc: 0x0e52, 0xacd: 0x170d, 0xace: 0x0e36, 0xacf: 0x0e72, 0xad0: 0x1712, 0xad1: 0x1717, - 0xad2: 0x0e76, 0xad3: 0x0e8a, 0xad4: 0x0e86, 0xad5: 0x0e82, 0xad6: 0x061a, 0xad7: 0x0e8e, - 0xad8: 0x0e9e, 0xad9: 0x0e9a, 0xada: 0x0ea6, 0xadb: 0x1654, 0xadc: 0x0eb6, 0xadd: 0x171c, - 0xade: 0x0ec2, 0xadf: 0x1726, 0xae0: 0x0ed6, 0xae1: 0x0ee2, 0xae2: 0x0ef6, 0xae3: 0x172b, - 0xae4: 0x0f0a, 0xae5: 0x0f0e, 0xae6: 0x1730, 0xae7: 0x1735, 0xae8: 0x0f2a, 0xae9: 0x0f3a, - 0xaea: 0x061e, 0xaeb: 0x0f3e, 0xaec: 0x0622, 0xaed: 0x0622, 0xaee: 0x0f56, 0xaef: 0x0f5a, - 0xaf0: 0x0f62, 0xaf1: 0x0f66, 0xaf2: 0x0f72, 0xaf3: 0x0626, 0xaf4: 0x0f8a, 0xaf5: 0x173a, - 0xaf6: 0x0fa6, 0xaf7: 0x173f, 0xaf8: 0x0fb2, 0xaf9: 0x16a4, 0xafa: 0x0fc2, 0xafb: 0x1744, - 0xafc: 0x1749, 0xafd: 0x174e, 0xafe: 0x062a, 0xaff: 0x062e, - // Block 0x2c, offset 0xb00 - 0xb00: 0x0ffa, 0xb01: 0x1758, 0xb02: 0x1753, 0xb03: 0x175d, 0xb04: 0x1762, 0xb05: 0x1002, - 0xb06: 0x1006, 0xb07: 0x1006, 0xb08: 0x100e, 0xb09: 0x0636, 0xb0a: 0x1012, 0xb0b: 0x063a, - 0xb0c: 0x063e, 0xb0d: 0x176c, 0xb0e: 0x1026, 0xb0f: 0x102e, 0xb10: 0x103a, 0xb11: 0x0642, - 0xb12: 0x1771, 0xb13: 0x105e, 0xb14: 0x1776, 0xb15: 0x177b, 0xb16: 0x107e, 0xb17: 0x1096, - 0xb18: 0x0646, 0xb19: 0x109e, 0xb1a: 0x10a2, 0xb1b: 0x10a6, 0xb1c: 0x1780, 0xb1d: 0x1785, - 0xb1e: 0x1785, 0xb1f: 0x10be, 0xb20: 0x064a, 0xb21: 0x178a, 0xb22: 0x10d2, 0xb23: 0x10d6, - 0xb24: 0x064e, 0xb25: 0x178f, 0xb26: 0x10f2, 0xb27: 0x0652, 0xb28: 0x1102, 0xb29: 0x10fa, - 0xb2a: 0x110a, 0xb2b: 0x1799, 0xb2c: 0x1122, 0xb2d: 0x0656, 0xb2e: 0x112e, 0xb2f: 0x1136, - 0xb30: 0x1146, 0xb31: 0x065a, 0xb32: 0x17a3, 0xb33: 0x17a8, 0xb34: 0x065e, 0xb35: 0x17ad, - 0xb36: 0x115e, 0xb37: 0x17b2, 0xb38: 0x116a, 0xb39: 0x1176, 0xb3a: 0x117e, 0xb3b: 0x17b7, - 0xb3c: 0x17bc, 0xb3d: 0x1192, 0xb3e: 0x17c1, 0xb3f: 0x119a, - // Block 0x2d, offset 0xb40 - 0xb40: 0x16d1, 0xb41: 0x0662, 0xb42: 0x11b2, 0xb43: 0x11b6, 0xb44: 0x066a, 0xb45: 0x11ba, - 0xb46: 0x0a36, 0xb47: 0x17c6, 0xb48: 0x17cb, 0xb49: 0x16d6, 0xb4a: 0x16db, 0xb4b: 0x11da, - 0xb4c: 0x11de, 0xb4d: 0x13f6, 0xb4e: 0x066e, 0xb4f: 0x120a, 0xb50: 0x1206, 0xb51: 0x120e, - 0xb52: 0x0842, 0xb53: 0x1212, 0xb54: 0x1216, 0xb55: 0x121a, 0xb56: 0x1222, 0xb57: 0x17d0, - 0xb58: 0x121e, 0xb59: 0x1226, 0xb5a: 0x123a, 0xb5b: 0x123e, 0xb5c: 0x122a, 0xb5d: 0x1242, - 0xb5e: 0x1256, 0xb5f: 0x126a, 0xb60: 0x1236, 0xb61: 0x124a, 0xb62: 0x124e, 0xb63: 0x1252, - 0xb64: 0x17d5, 0xb65: 0x17df, 0xb66: 0x17da, 0xb67: 0x0672, 0xb68: 0x1272, 0xb69: 0x1276, - 0xb6a: 0x127e, 0xb6b: 0x17f3, 0xb6c: 0x1282, 0xb6d: 0x17e4, 0xb6e: 0x0676, 0xb6f: 0x067a, - 0xb70: 0x17e9, 0xb71: 0x17ee, 0xb72: 0x067e, 0xb73: 0x12a2, 0xb74: 0x12a6, 0xb75: 0x12aa, - 0xb76: 0x12ae, 0xb77: 0x12ba, 0xb78: 0x12b6, 0xb79: 0x12c2, 0xb7a: 0x12be, 0xb7b: 0x12ce, - 0xb7c: 0x12c6, 0xb7d: 0x12ca, 0xb7e: 0x12d2, 0xb7f: 0x0682, - // Block 0x2e, offset 0xb80 - 0xb80: 0x12da, 0xb81: 0x12de, 0xb82: 0x0686, 0xb83: 0x12ee, 0xb84: 0x12f2, 0xb85: 0x17f8, - 0xb86: 0x12fe, 0xb87: 0x1302, 0xb88: 0x068a, 0xb89: 0x130e, 0xb8a: 0x05be, 0xb8b: 0x17fd, - 0xb8c: 0x1802, 0xb8d: 0x068e, 0xb8e: 0x0692, 0xb8f: 0x133a, 0xb90: 0x1352, 0xb91: 0x136e, - 0xb92: 0x137e, 0xb93: 0x1807, 0xb94: 0x1392, 0xb95: 0x1396, 0xb96: 0x13ae, 0xb97: 0x13ba, - 0xb98: 0x1811, 0xb99: 0x1663, 0xb9a: 0x13c6, 0xb9b: 0x13c2, 0xb9c: 0x13ce, 0xb9d: 0x1668, - 0xb9e: 0x13da, 0xb9f: 0x13e6, 0xba0: 0x1816, 0xba1: 0x181b, 0xba2: 0x1426, 0xba3: 0x1432, - 0xba4: 0x143a, 0xba5: 0x1820, 0xba6: 0x143e, 0xba7: 0x146a, 0xba8: 0x1476, 0xba9: 0x147a, - 0xbaa: 0x1472, 0xbab: 0x1486, 0xbac: 0x148a, 0xbad: 0x1825, 0xbae: 0x1496, 0xbaf: 0x0696, - 0xbb0: 0x149e, 0xbb1: 0x182a, 0xbb2: 0x069a, 0xbb3: 0x14d6, 0xbb4: 0x0ac6, 0xbb5: 0x14ee, - 0xbb6: 0x182f, 0xbb7: 0x1839, 0xbb8: 0x069e, 0xbb9: 0x06a2, 0xbba: 0x1516, 0xbbb: 0x183e, - 0xbbc: 0x06a6, 0xbbd: 0x1843, 0xbbe: 0x152e, 0xbbf: 0x152e, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1536, 0xbc1: 0x1848, 0xbc2: 0x154e, 0xbc3: 0x06aa, 0xbc4: 0x155e, 0xbc5: 0x156a, - 0xbc6: 0x1572, 0xbc7: 0x157a, 0xbc8: 0x06ae, 0xbc9: 0x184d, 0xbca: 0x158e, 0xbcb: 0x15aa, - 0xbcc: 0x15b6, 0xbcd: 0x06b2, 0xbce: 0x06b6, 0xbcf: 0x15ba, 0xbd0: 0x1852, 0xbd1: 0x06ba, - 0xbd2: 0x1857, 0xbd3: 0x185c, 0xbd4: 0x1861, 0xbd5: 0x15de, 0xbd6: 0x06be, 0xbd7: 0x15f2, - 0xbd8: 0x15fa, 0xbd9: 0x15fe, 0xbda: 0x1606, 0xbdb: 0x160e, 0xbdc: 0x1616, 0xbdd: 0x186b, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, - 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, - 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, - 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, - 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, - 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, - // Block 0x5, offset 0x140 - 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, - 0x14d: 0x5c, - 0x15c: 0x5d, 0x15f: 0x5e, - 0x162: 0x5f, 0x164: 0x60, - 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16b: 0x64, 0x16c: 0x0e, 0x16d: 0x65, 0x16e: 0x66, 0x16f: 0x67, - 0x170: 0x68, 0x173: 0x69, 0x177: 0x0f, - 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, - // Block 0x6, offset 0x180 - 0x180: 0x6a, 0x183: 0x6b, 0x184: 0x6c, 0x186: 0x6d, 0x187: 0x6e, - 0x188: 0x6f, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x70, 0x18c: 0x71, - 0x1ab: 0x72, - 0x1b3: 0x73, 0x1b5: 0x74, 0x1b7: 0x75, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x76, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x77, 0x1c5: 0x78, - 0x1c9: 0x79, 0x1cc: 0x7a, 0x1cd: 0x7b, - // Block 0x8, offset 0x200 - 0x219: 0x7c, 0x21a: 0x7d, 0x21b: 0x7e, - 0x220: 0x7f, 0x223: 0x80, 0x224: 0x81, 0x225: 0x82, 0x226: 0x83, 0x227: 0x84, - 0x22a: 0x85, 0x22b: 0x86, 0x22f: 0x87, - 0x230: 0x88, 0x231: 0x89, 0x232: 0x8a, 0x233: 0x8b, 0x234: 0x8c, 0x235: 0x8d, 0x236: 0x8e, 0x237: 0x88, - 0x238: 0x89, 0x239: 0x8a, 0x23a: 0x8b, 0x23b: 0x8c, 0x23c: 0x8d, 0x23d: 0x8e, 0x23e: 0x88, 0x23f: 0x89, - // Block 0x9, offset 0x240 - 0x240: 0x8a, 0x241: 0x8b, 0x242: 0x8c, 0x243: 0x8d, 0x244: 0x8e, 0x245: 0x88, 0x246: 0x89, 0x247: 0x8a, - 0x248: 0x8b, 0x249: 0x8c, 0x24a: 0x8d, 0x24b: 0x8e, 0x24c: 0x88, 0x24d: 0x89, 0x24e: 0x8a, 0x24f: 0x8b, - 0x250: 0x8c, 0x251: 0x8d, 0x252: 0x8e, 0x253: 0x88, 0x254: 0x89, 0x255: 0x8a, 0x256: 0x8b, 0x257: 0x8c, - 0x258: 0x8d, 0x259: 0x8e, 0x25a: 0x88, 0x25b: 0x89, 0x25c: 0x8a, 0x25d: 0x8b, 0x25e: 0x8c, 0x25f: 0x8d, - 0x260: 0x8e, 0x261: 0x88, 0x262: 0x89, 0x263: 0x8a, 0x264: 0x8b, 0x265: 0x8c, 0x266: 0x8d, 0x267: 0x8e, - 0x268: 0x88, 0x269: 0x89, 0x26a: 0x8a, 0x26b: 0x8b, 0x26c: 0x8c, 0x26d: 0x8d, 0x26e: 0x8e, 0x26f: 0x88, - 0x270: 0x89, 0x271: 0x8a, 0x272: 0x8b, 0x273: 0x8c, 0x274: 0x8d, 0x275: 0x8e, 0x276: 0x88, 0x277: 0x89, - 0x278: 0x8a, 0x279: 0x8b, 0x27a: 0x8c, 0x27b: 0x8d, 0x27c: 0x8e, 0x27d: 0x88, 0x27e: 0x89, 0x27f: 0x8a, - // Block 0xa, offset 0x280 - 0x280: 0x8b, 0x281: 0x8c, 0x282: 0x8d, 0x283: 0x8e, 0x284: 0x88, 0x285: 0x89, 0x286: 0x8a, 0x287: 0x8b, - 0x288: 0x8c, 0x289: 0x8d, 0x28a: 0x8e, 0x28b: 0x88, 0x28c: 0x89, 0x28d: 0x8a, 0x28e: 0x8b, 0x28f: 0x8c, - 0x290: 0x8d, 0x291: 0x8e, 0x292: 0x88, 0x293: 0x89, 0x294: 0x8a, 0x295: 0x8b, 0x296: 0x8c, 0x297: 0x8d, - 0x298: 0x8e, 0x299: 0x88, 0x29a: 0x89, 0x29b: 0x8a, 0x29c: 0x8b, 0x29d: 0x8c, 0x29e: 0x8d, 0x29f: 0x8e, - 0x2a0: 0x88, 0x2a1: 0x89, 0x2a2: 0x8a, 0x2a3: 0x8b, 0x2a4: 0x8c, 0x2a5: 0x8d, 0x2a6: 0x8e, 0x2a7: 0x88, - 0x2a8: 0x89, 0x2a9: 0x8a, 0x2aa: 0x8b, 0x2ab: 0x8c, 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x88, 0x2af: 0x89, - 0x2b0: 0x8a, 0x2b1: 0x8b, 0x2b2: 0x8c, 0x2b3: 0x8d, 0x2b4: 0x8e, 0x2b5: 0x88, 0x2b6: 0x89, 0x2b7: 0x8a, - 0x2b8: 0x8b, 0x2b9: 0x8c, 0x2ba: 0x8d, 0x2bb: 0x8e, 0x2bc: 0x88, 0x2bd: 0x89, 0x2be: 0x8a, 0x2bf: 0x8b, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8c, 0x2c1: 0x8d, 0x2c2: 0x8e, 0x2c3: 0x88, 0x2c4: 0x89, 0x2c5: 0x8a, 0x2c6: 0x8b, 0x2c7: 0x8c, - 0x2c8: 0x8d, 0x2c9: 0x8e, 0x2ca: 0x88, 0x2cb: 0x89, 0x2cc: 0x8a, 0x2cd: 0x8b, 0x2ce: 0x8c, 0x2cf: 0x8d, - 0x2d0: 0x8e, 0x2d1: 0x88, 0x2d2: 0x89, 0x2d3: 0x8a, 0x2d4: 0x8b, 0x2d5: 0x8c, 0x2d6: 0x8d, 0x2d7: 0x8e, - 0x2d8: 0x88, 0x2d9: 0x89, 0x2da: 0x8a, 0x2db: 0x8b, 0x2dc: 0x8c, 0x2dd: 0x8d, 0x2de: 0x8f, - // Block 0xc, offset 0x300 - 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, - 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x90, 0x32d: 0x91, 0x32e: 0x92, - 0x331: 0x93, 0x332: 0x94, 0x333: 0x95, 0x334: 0x96, - 0x338: 0x97, 0x339: 0x98, 0x33a: 0x99, 0x33b: 0x9a, 0x33e: 0x9b, 0x33f: 0x9c, - // Block 0xd, offset 0x340 - 0x347: 0x9d, - 0x34b: 0x9e, 0x34d: 0x9f, - 0x368: 0xa0, 0x36b: 0xa1, - 0x374: 0xa2, - 0x37a: 0xa3, 0x37d: 0xa4, - // Block 0xe, offset 0x380 - 0x381: 0xa5, 0x382: 0xa6, 0x384: 0xa7, 0x385: 0x83, 0x387: 0xa8, - 0x388: 0xa9, 0x38b: 0xaa, 0x38c: 0xab, 0x38d: 0xac, - 0x391: 0xad, 0x392: 0xae, 0x393: 0xaf, 0x396: 0xb0, 0x397: 0xb1, - 0x398: 0x74, 0x39a: 0xb2, 0x39c: 0xb3, - 0x3a0: 0xb4, 0x3a4: 0xb5, 0x3a5: 0xb6, 0x3a7: 0xb7, - 0x3a8: 0xb8, 0x3a9: 0xb9, 0x3aa: 0xba, - 0x3b0: 0x74, 0x3b5: 0xbb, 0x3b6: 0xbc, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xbd, 0x3ec: 0xbe, - 0x3ff: 0xbf, - // Block 0x10, offset 0x400 - 0x432: 0xc0, - // Block 0x11, offset 0x440 - 0x445: 0xc1, 0x446: 0xc2, 0x447: 0xc3, - 0x449: 0xc4, - // Block 0x12, offset 0x480 - 0x480: 0xc5, 0x484: 0xbe, - 0x48b: 0xc6, - 0x4a3: 0xc7, 0x4a5: 0xc8, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xc9, - // Block 0x14, offset 0x500 - 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, - 0x528: 0x2d, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 156 entries, 312 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x120, 0x122, 0x12b, 0x12d, 0x130, 0x132, 0x13d, 0x141, 0x14f, 0x152, 0x158, 0x15e, 0x169, 0x16d, 0x16f, 0x171, 0x173, 0x175, 0x177, 0x17d, 0x181, 0x183, 0x185, 0x18d, 0x191, 0x194, 0x196, 0x198, 0x19b, 0x19e, 0x1a0, 0x1a2, 0x1a4, 0x1a6, 0x1ac, 0x1af, 0x1b1, 0x1b8, 0x1be, 0x1c4, 0x1cc, 0x1d2, 0x1d8, 0x1de, 0x1e2, 0x1f0, 0x1f9, 0x1fc, 0x1ff, 0x201, 0x204, 0x206, 0x20a, 0x20f, 0x211, 0x213, 0x218, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x254, 0x25c, 0x260, 0x267, 0x26a, 0x270, 0x272, 0x275, 0x277, 0x27a, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x289, 0x28c, 0x28e, 0x290, 0x292, 0x294, 0x296, 0x2a3, 0x2ad, 0x2af, 0x2b1, 0x2b7, 0x2b9, 0x2bb, 0x2be} - -// nfcSparseValues: 704 entries, 2816 bytes -var nfcSparseValues = [704]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46f9, lo: 0xa0, hi: 0xa1}, - {value: 0x472b, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4857, lo: 0x8a, hi: 0x8a}, - {value: 0x4875, lo: 0x8b, hi: 0x8b}, - {value: 0x36de, lo: 0x8c, hi: 0x8c}, - {value: 0x36f6, lo: 0x8d, hi: 0x8d}, - {value: 0x488d, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3714, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37bc, lo: 0x90, hi: 0x90}, - {value: 0x37c8, lo: 0x91, hi: 0x91}, - {value: 0x37b6, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x382e, lo: 0x97, hi: 0x97}, - {value: 0x37f8, lo: 0x9c, hi: 0x9c}, - {value: 0x37e0, lo: 0x9d, hi: 0x9d}, - {value: 0x380a, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x3834, lo: 0xb6, hi: 0xb6}, - {value: 0x383a, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8114, lo: 0x81, hi: 0x82}, - {value: 0x8133, lo: 0x84, hi: 0x84}, - {value: 0x812e, lo: 0x85, hi: 0x85}, - {value: 0x810e, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8133, lo: 0x90, hi: 0x97}, - {value: 0x811a, lo: 0x98, hi: 0x98}, - {value: 0x811b, lo: 0x99, hi: 0x99}, - {value: 0x811c, lo: 0x9a, hi: 0x9a}, - {value: 0x3858, lo: 0xa2, hi: 0xa2}, - {value: 0x385e, lo: 0xa3, hi: 0xa3}, - {value: 0x386a, lo: 0xa4, hi: 0xa4}, - {value: 0x3864, lo: 0xa5, hi: 0xa5}, - {value: 0x3870, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x3882, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x3876, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x387c, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8133, lo: 0x96, hi: 0x9c}, - {value: 0x8133, lo: 0x9f, hi: 0xa2}, - {value: 0x812e, lo: 0xa3, hi: 0xa3}, - {value: 0x8133, lo: 0xa4, hi: 0xa4}, - {value: 0x8133, lo: 0xa7, hi: 0xa8}, - {value: 0x812e, lo: 0xaa, hi: 0xaa}, - {value: 0x8133, lo: 0xab, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x8120, lo: 0x91, hi: 0x91}, - {value: 0x8133, lo: 0xb0, hi: 0xb0}, - {value: 0x812e, lo: 0xb1, hi: 0xb1}, - {value: 0x8133, lo: 0xb2, hi: 0xb3}, - {value: 0x812e, lo: 0xb4, hi: 0xb4}, - {value: 0x8133, lo: 0xb5, hi: 0xb6}, - {value: 0x812e, lo: 0xb7, hi: 0xb9}, - {value: 0x8133, lo: 0xba, hi: 0xba}, - {value: 0x812e, lo: 0xbb, hi: 0xbc}, - {value: 0x8133, lo: 0xbd, hi: 0xbd}, - {value: 0x812e, lo: 0xbe, hi: 0xbe}, - {value: 0x8133, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8133, lo: 0x80, hi: 0x80}, - {value: 0x8133, lo: 0x81, hi: 0x81}, - {value: 0x812e, lo: 0x82, hi: 0x83}, - {value: 0x812e, lo: 0x84, hi: 0x85}, - {value: 0x812e, lo: 0x86, hi: 0x87}, - {value: 0x812e, lo: 0x88, hi: 0x89}, - {value: 0x8133, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x04}, - {value: 0x8133, lo: 0xab, hi: 0xb1}, - {value: 0x812e, lo: 0xb2, hi: 0xb2}, - {value: 0x8133, lo: 0xb3, hi: 0xb3}, - {value: 0x812e, lo: 0xbd, hi: 0xbd}, - // Block 0xd, offset 0x63 - {value: 0x0000, lo: 0x04}, - {value: 0x8133, lo: 0x96, hi: 0x99}, - {value: 0x8133, lo: 0x9b, hi: 0xa3}, - {value: 0x8133, lo: 0xa5, hi: 0xa7}, - {value: 0x8133, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x68 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x6a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3eef, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ef7, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3eff, lo: 0xb4, hi: 0xb4}, - {value: 0x9903, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x72 - {value: 0x0008, lo: 0x06}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x8133, lo: 0x91, hi: 0x91}, - {value: 0x812e, lo: 0x92, hi: 0x92}, - {value: 0x8133, lo: 0x93, hi: 0x93}, - {value: 0x8133, lo: 0x94, hi: 0x94}, - {value: 0x4533, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x79 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x7c - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cab, lo: 0x8b, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x4573, lo: 0x9c, hi: 0x9d}, - {value: 0x4583, lo: 0x9f, hi: 0x9f}, - {value: 0x8133, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x84 - {value: 0x0000, lo: 0x03}, - {value: 0x45ab, lo: 0xb3, hi: 0xb3}, - {value: 0x45b3, lo: 0xb6, hi: 0xb6}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0x88 - {value: 0x0008, lo: 0x03}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x458b, lo: 0x99, hi: 0x9b}, - {value: 0x45a3, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0x8c - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0x8e - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0x90 - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cc3, lo: 0x88, hi: 0x88}, - {value: 0x2cbb, lo: 0x8b, hi: 0x8b}, - {value: 0x2ccb, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45bb, lo: 0x9c, hi: 0x9c}, - {value: 0x45c3, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0x99 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cd3, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0x9d - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cdb, lo: 0x8a, hi: 0x8a}, - {value: 0x2ceb, lo: 0x8b, hi: 0x8b}, - {value: 0x2ce3, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xa4 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3f07, lo: 0x88, hi: 0x88}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x8121, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xa9 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xac - {value: 0x0000, lo: 0x09}, - {value: 0x2cf3, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cfb, lo: 0x87, hi: 0x87}, - {value: 0x2d03, lo: 0x88, hi: 0x88}, - {value: 0x2f67, lo: 0x8a, hi: 0x8a}, - {value: 0x2def, lo: 0x8b, hi: 0x8b}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2d0b, lo: 0x8a, hi: 0x8a}, - {value: 0x2d1b, lo: 0x8b, hi: 0x8b}, - {value: 0x2d13, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xc0 - {value: 0x6bdd, lo: 0x07}, - {value: 0x9905, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3f0f, lo: 0x9a, hi: 0x9a}, - {value: 0x2f6f, lo: 0x9c, hi: 0x9c}, - {value: 0x2dfa, lo: 0x9d, hi: 0x9d}, - {value: 0x2d23, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xc8 - {value: 0x0000, lo: 0x02}, - {value: 0x8123, lo: 0xb8, hi: 0xb9}, - {value: 0x8105, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xcb - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xcd - {value: 0x0000, lo: 0x02}, - {value: 0x8125, lo: 0xb8, hi: 0xb9}, - {value: 0x8105, lo: 0xba, hi: 0xba}, - // Block 0x23, offset 0xd0 - {value: 0x0000, lo: 0x01}, - {value: 0x8126, lo: 0x88, hi: 0x8b}, - // Block 0x24, offset 0xd2 - {value: 0x0000, lo: 0x04}, - {value: 0x812e, lo: 0x98, hi: 0x99}, - {value: 0x812e, lo: 0xb5, hi: 0xb5}, - {value: 0x812e, lo: 0xb7, hi: 0xb7}, - {value: 0x812c, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xd7 - {value: 0x0000, lo: 0x10}, - {value: 0x264a, lo: 0x83, hi: 0x83}, - {value: 0x2651, lo: 0x8d, hi: 0x8d}, - {value: 0x2658, lo: 0x92, hi: 0x92}, - {value: 0x265f, lo: 0x97, hi: 0x97}, - {value: 0x2666, lo: 0x9c, hi: 0x9c}, - {value: 0x2643, lo: 0xa9, hi: 0xa9}, - {value: 0x8127, lo: 0xb1, hi: 0xb1}, - {value: 0x8128, lo: 0xb2, hi: 0xb2}, - {value: 0x4a9b, lo: 0xb3, hi: 0xb3}, - {value: 0x8129, lo: 0xb4, hi: 0xb4}, - {value: 0x4aa4, lo: 0xb5, hi: 0xb5}, - {value: 0x45cb, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45d3, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8128, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0xe8 - {value: 0x0000, lo: 0x0b}, - {value: 0x8128, lo: 0x80, hi: 0x80}, - {value: 0x4aad, lo: 0x81, hi: 0x81}, - {value: 0x8133, lo: 0x82, hi: 0x83}, - {value: 0x8105, lo: 0x84, hi: 0x84}, - {value: 0x8133, lo: 0x86, hi: 0x87}, - {value: 0x2674, lo: 0x93, hi: 0x93}, - {value: 0x267b, lo: 0x9d, hi: 0x9d}, - {value: 0x2682, lo: 0xa2, hi: 0xa2}, - {value: 0x2689, lo: 0xa7, hi: 0xa7}, - {value: 0x2690, lo: 0xac, hi: 0xac}, - {value: 0x266d, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0xf4 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0xf6 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d2b, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8103, lo: 0xb7, hi: 0xb7}, - {value: 0x8105, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0xfc - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0xfe - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0x100 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x102 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x104 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x106 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x108 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x94, hi: 0x94}, - {value: 0x8105, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x10b - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x92, hi: 0x92}, - {value: 0x8133, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x10e - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x110 - {value: 0x0004, lo: 0x02}, - {value: 0x812f, lo: 0xb9, hi: 0xba}, - {value: 0x812e, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x113 - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0x97, hi: 0x97}, - {value: 0x812e, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x116 - {value: 0x0000, lo: 0x03}, - {value: 0x8105, lo: 0xa0, hi: 0xa0}, - {value: 0x8133, lo: 0xb5, hi: 0xbc}, - {value: 0x812e, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x11a - {value: 0x0000, lo: 0x05}, - {value: 0x8133, lo: 0xb0, hi: 0xb4}, - {value: 0x812e, lo: 0xb5, hi: 0xba}, - {value: 0x8133, lo: 0xbb, hi: 0xbc}, - {value: 0x812e, lo: 0xbd, hi: 0xbd}, - {value: 0x812e, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x120 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x80, hi: 0x80}, - // Block 0x37, offset 0x122 - {value: 0x0000, lo: 0x08}, - {value: 0x2d73, lo: 0x80, hi: 0x80}, - {value: 0x2d7b, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d83, lo: 0x83, hi: 0x83}, - {value: 0x8105, lo: 0x84, hi: 0x84}, - {value: 0x8133, lo: 0xab, hi: 0xab}, - {value: 0x812e, lo: 0xac, hi: 0xac}, - {value: 0x8133, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x12b - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x12d - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xa6, hi: 0xa6}, - {value: 0x8105, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x130 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x132 - {value: 0x0000, lo: 0x0a}, - {value: 0x8133, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812e, lo: 0x95, hi: 0x99}, - {value: 0x8133, lo: 0x9a, hi: 0x9b}, - {value: 0x812e, lo: 0x9c, hi: 0x9f}, - {value: 0x8133, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x8133, lo: 0xb4, hi: 0xb4}, - {value: 0x8133, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x13d - {value: 0x0004, lo: 0x03}, - {value: 0x0436, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3d, offset 0x141 - {value: 0x0000, lo: 0x0d}, - {value: 0x8133, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8133, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8133, lo: 0x9b, hi: 0x9c}, - {value: 0x8133, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8133, lo: 0xa7, hi: 0xa7}, - {value: 0x812e, lo: 0xa8, hi: 0xa8}, - {value: 0x8133, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812e, lo: 0xac, hi: 0xaf}, - {value: 0x8133, lo: 0xb0, hi: 0xb0}, - // Block 0x3e, offset 0x14f - {value: 0x4292, lo: 0x02}, - {value: 0x01bb, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x3f, offset 0x152 - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bd0, lo: 0x9a, hi: 0x9b}, - {value: 0x3bde, lo: 0xae, hi: 0xae}, - // Block 0x40, offset 0x158 - {value: 0x000e, lo: 0x05}, - {value: 0x3be5, lo: 0x8d, hi: 0x8e}, - {value: 0x3bec, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x41, offset 0x15e - {value: 0x63f1, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3bfa, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3c01, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3c08, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3c0f, lo: 0xa4, hi: 0xa5}, - {value: 0x3c16, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x42, offset 0x169 - {value: 0x0007, lo: 0x03}, - {value: 0x3c7f, lo: 0xa0, hi: 0xa1}, - {value: 0x3ca9, lo: 0xa2, hi: 0xa3}, - {value: 0x3cd3, lo: 0xaa, hi: 0xad}, - // Block 0x43, offset 0x16d - {value: 0x0004, lo: 0x01}, - {value: 0x048e, lo: 0xa9, hi: 0xaa}, - // Block 0x44, offset 0x16f - {value: 0x0000, lo: 0x01}, - {value: 0x44f4, lo: 0x9c, hi: 0x9c}, - // Block 0x45, offset 0x171 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xaf, hi: 0xb1}, - // Block 0x46, offset 0x173 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x47, offset 0x175 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xa0, hi: 0xbf}, - // Block 0x48, offset 0x177 - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x8134, lo: 0xac, hi: 0xac}, - {value: 0x812f, lo: 0xad, hi: 0xad}, - {value: 0x8130, lo: 0xae, hi: 0xaf}, - // Block 0x49, offset 0x17d - {value: 0x0000, lo: 0x03}, - {value: 0x4ab6, lo: 0xb3, hi: 0xb3}, - {value: 0x4ab6, lo: 0xb5, hi: 0xb6}, - {value: 0x4ab6, lo: 0xba, hi: 0xbf}, - // Block 0x4a, offset 0x181 - {value: 0x0000, lo: 0x01}, - {value: 0x4ab6, lo: 0x8f, hi: 0xa3}, - // Block 0x4b, offset 0x183 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4c, offset 0x185 - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4d, offset 0x18d - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4e, offset 0x191 - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0xaf, hi: 0xaf}, - {value: 0x8133, lo: 0xb4, hi: 0xbd}, - // Block 0x4f, offset 0x194 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x9e, hi: 0x9f}, - // Block 0x50, offset 0x196 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xb0, hi: 0xb1}, - // Block 0x51, offset 0x198 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x86, hi: 0x86}, - {value: 0x8105, lo: 0xac, hi: 0xac}, - // Block 0x52, offset 0x19b - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x84, hi: 0x84}, - {value: 0x8133, lo: 0xa0, hi: 0xb1}, - // Block 0x53, offset 0x19e - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0xab, hi: 0xad}, - // Block 0x54, offset 0x1a0 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x93, hi: 0x93}, - // Block 0x55, offset 0x1a2 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0xb3, hi: 0xb3}, - // Block 0x56, offset 0x1a4 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x80, hi: 0x80}, - // Block 0x57, offset 0x1a6 - {value: 0x0000, lo: 0x05}, - {value: 0x8133, lo: 0xb0, hi: 0xb0}, - {value: 0x8133, lo: 0xb2, hi: 0xb3}, - {value: 0x812e, lo: 0xb4, hi: 0xb4}, - {value: 0x8133, lo: 0xb7, hi: 0xb8}, - {value: 0x8133, lo: 0xbe, hi: 0xbf}, - // Block 0x58, offset 0x1ac - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0x81, hi: 0x81}, - {value: 0x8105, lo: 0xb6, hi: 0xb6}, - // Block 0x59, offset 0x1af - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xad, hi: 0xad}, - // Block 0x5a, offset 0x1b1 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5b, offset 0x1b8 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5c, offset 0x1be - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5d, offset 0x1c4 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5e, offset 0x1cc - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x5f, offset 0x1d2 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x60, offset 0x1d8 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x61, offset 0x1de - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x62, offset 0x1e2 - {value: 0x0006, lo: 0x0d}, - {value: 0x43a7, lo: 0x9d, hi: 0x9d}, - {value: 0x8116, lo: 0x9e, hi: 0x9e}, - {value: 0x4419, lo: 0x9f, hi: 0x9f}, - {value: 0x4407, lo: 0xaa, hi: 0xab}, - {value: 0x450b, lo: 0xac, hi: 0xac}, - {value: 0x4513, lo: 0xad, hi: 0xad}, - {value: 0x435f, lo: 0xae, hi: 0xb1}, - {value: 0x437d, lo: 0xb2, hi: 0xb4}, - {value: 0x4395, lo: 0xb5, hi: 0xb6}, - {value: 0x43a1, lo: 0xb8, hi: 0xb8}, - {value: 0x43ad, lo: 0xb9, hi: 0xbb}, - {value: 0x43c5, lo: 0xbc, hi: 0xbc}, - {value: 0x43cb, lo: 0xbe, hi: 0xbe}, - // Block 0x63, offset 0x1f0 - {value: 0x0006, lo: 0x08}, - {value: 0x43d1, lo: 0x80, hi: 0x81}, - {value: 0x43dd, lo: 0x83, hi: 0x84}, - {value: 0x43ef, lo: 0x86, hi: 0x89}, - {value: 0x4413, lo: 0x8a, hi: 0x8a}, - {value: 0x438f, lo: 0x8b, hi: 0x8b}, - {value: 0x4377, lo: 0x8c, hi: 0x8c}, - {value: 0x43bf, lo: 0x8d, hi: 0x8d}, - {value: 0x43e9, lo: 0x8e, hi: 0x8e}, - // Block 0x64, offset 0x1f9 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x65, offset 0x1fc - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x66, offset 0x1ff - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x67, offset 0x201 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x68, offset 0x204 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x69, offset 0x206 - {value: 0x0000, lo: 0x03}, - {value: 0x8133, lo: 0xa0, hi: 0xa6}, - {value: 0x812e, lo: 0xa7, hi: 0xad}, - {value: 0x8133, lo: 0xae, hi: 0xaf}, - // Block 0x6a, offset 0x20a - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6b, offset 0x20f - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6c, offset 0x211 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6d, offset 0x213 - {value: 0x0000, lo: 0x04}, - {value: 0x4ab6, lo: 0x9e, hi: 0x9f}, - {value: 0x4ab6, lo: 0xa3, hi: 0xa3}, - {value: 0x4ab6, lo: 0xa5, hi: 0xa6}, - {value: 0x4ab6, lo: 0xaa, hi: 0xaf}, - // Block 0x6e, offset 0x218 - {value: 0x0000, lo: 0x05}, - {value: 0x4ab6, lo: 0x82, hi: 0x87}, - {value: 0x4ab6, lo: 0x8a, hi: 0x8f}, - {value: 0x4ab6, lo: 0x92, hi: 0x97}, - {value: 0x4ab6, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x6f, offset 0x21e - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0xbd, hi: 0xbd}, - // Block 0x70, offset 0x220 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0xa0, hi: 0xa0}, - // Block 0x71, offset 0x222 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xb6, hi: 0xba}, - // Block 0x72, offset 0x224 - {value: 0x002d, lo: 0x05}, - {value: 0x812e, lo: 0x8d, hi: 0x8d}, - {value: 0x8133, lo: 0x8f, hi: 0x8f}, - {value: 0x8133, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x73, offset 0x22a - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0xa5, hi: 0xa5}, - {value: 0x812e, lo: 0xa6, hi: 0xa6}, - // Block 0x74, offset 0x22d - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xa4, hi: 0xa7}, - // Block 0x75, offset 0x22f - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xab, hi: 0xac}, - // Block 0x76, offset 0x231 - {value: 0x0000, lo: 0x05}, - {value: 0x812e, lo: 0x86, hi: 0x87}, - {value: 0x8133, lo: 0x88, hi: 0x8a}, - {value: 0x812e, lo: 0x8b, hi: 0x8b}, - {value: 0x8133, lo: 0x8c, hi: 0x8c}, - {value: 0x812e, lo: 0x8d, hi: 0x90}, - // Block 0x77, offset 0x237 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x86, hi: 0x86}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x78, offset 0x23a - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x424f, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4259, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x4263, lo: 0xab, hi: 0xab}, - {value: 0x8105, lo: 0xb9, hi: 0xba}, - // Block 0x79, offset 0x242 - {value: 0x0000, lo: 0x06}, - {value: 0x8133, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d8b, lo: 0xae, hi: 0xae}, - {value: 0x2d95, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8105, lo: 0xb3, hi: 0xb4}, - // Block 0x7a, offset 0x249 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x80, hi: 0x80}, - {value: 0x8103, lo: 0x8a, hi: 0x8a}, - // Block 0x7b, offset 0x24c - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xb5, hi: 0xb5}, - {value: 0x8103, lo: 0xb6, hi: 0xb6}, - // Block 0x7c, offset 0x24f - {value: 0x0002, lo: 0x01}, - {value: 0x8103, lo: 0xa9, hi: 0xaa}, - // Block 0x7d, offset 0x251 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x7e, offset 0x254 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d9f, lo: 0x8b, hi: 0x8b}, - {value: 0x2da9, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8133, lo: 0xa6, hi: 0xac}, - {value: 0x8133, lo: 0xb0, hi: 0xb4}, - // Block 0x7f, offset 0x25c - {value: 0x0000, lo: 0x03}, - {value: 0x8105, lo: 0x82, hi: 0x82}, - {value: 0x8103, lo: 0x86, hi: 0x86}, - {value: 0x8133, lo: 0x9e, hi: 0x9e}, - // Block 0x80, offset 0x260 - {value: 0x6b4d, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2dbd, lo: 0xbb, hi: 0xbb}, - {value: 0x2db3, lo: 0xbc, hi: 0xbd}, - {value: 0x2dc7, lo: 0xbe, hi: 0xbe}, - // Block 0x81, offset 0x267 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x82, hi: 0x82}, - {value: 0x8103, lo: 0x83, hi: 0x83}, - // Block 0x82, offset 0x26a - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dd1, lo: 0xba, hi: 0xba}, - {value: 0x2ddb, lo: 0xbb, hi: 0xbb}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x83, offset 0x270 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0x80, hi: 0x80}, - // Block 0x84, offset 0x272 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xb6, hi: 0xb6}, - {value: 0x8103, lo: 0xb7, hi: 0xb7}, - // Block 0x85, offset 0x275 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xab, hi: 0xab}, - // Block 0x86, offset 0x277 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xb9, hi: 0xb9}, - {value: 0x8103, lo: 0xba, hi: 0xba}, - // Block 0x87, offset 0x27a - {value: 0x0000, lo: 0x04}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb5, hi: 0xb5}, - {value: 0x2de5, lo: 0xb8, hi: 0xb8}, - {value: 0x8105, lo: 0xbd, hi: 0xbe}, - // Block 0x88, offset 0x27f - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0x83, hi: 0x83}, - // Block 0x89, offset 0x281 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xa0, hi: 0xa0}, - // Block 0x8a, offset 0x283 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xb4, hi: 0xb4}, - // Block 0x8b, offset 0x285 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x87, hi: 0x87}, - // Block 0x8c, offset 0x287 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x99, hi: 0x99}, - // Block 0x8d, offset 0x289 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0x82, hi: 0x82}, - {value: 0x8105, lo: 0x84, hi: 0x85}, - // Block 0x8e, offset 0x28c - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x97, hi: 0x97}, - // Block 0x8f, offset 0x28e - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x90, offset 0x290 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xb0, hi: 0xb6}, - // Block 0x91, offset 0x292 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb0, hi: 0xb1}, - // Block 0x92, offset 0x294 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x93, offset 0x296 - {value: 0x0000, lo: 0x0c}, - {value: 0x45e3, lo: 0x9e, hi: 0x9e}, - {value: 0x45ed, lo: 0x9f, hi: 0x9f}, - {value: 0x4621, lo: 0xa0, hi: 0xa0}, - {value: 0x462f, lo: 0xa1, hi: 0xa1}, - {value: 0x463d, lo: 0xa2, hi: 0xa2}, - {value: 0x464b, lo: 0xa3, hi: 0xa3}, - {value: 0x4659, lo: 0xa4, hi: 0xa4}, - {value: 0x812c, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8131, lo: 0xad, hi: 0xad}, - {value: 0x812c, lo: 0xae, hi: 0xb2}, - {value: 0x812e, lo: 0xbb, hi: 0xbf}, - // Block 0x94, offset 0x2a3 - {value: 0x0000, lo: 0x09}, - {value: 0x812e, lo: 0x80, hi: 0x82}, - {value: 0x8133, lo: 0x85, hi: 0x89}, - {value: 0x812e, lo: 0x8a, hi: 0x8b}, - {value: 0x8133, lo: 0xaa, hi: 0xad}, - {value: 0x45f7, lo: 0xbb, hi: 0xbb}, - {value: 0x4601, lo: 0xbc, hi: 0xbc}, - {value: 0x4667, lo: 0xbd, hi: 0xbd}, - {value: 0x4683, lo: 0xbe, hi: 0xbe}, - {value: 0x4675, lo: 0xbf, hi: 0xbf}, - // Block 0x95, offset 0x2ad - {value: 0x0000, lo: 0x01}, - {value: 0x4691, lo: 0x80, hi: 0x80}, - // Block 0x96, offset 0x2af - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x82, hi: 0x84}, - // Block 0x97, offset 0x2b1 - {value: 0x0000, lo: 0x05}, - {value: 0x8133, lo: 0x80, hi: 0x86}, - {value: 0x8133, lo: 0x88, hi: 0x98}, - {value: 0x8133, lo: 0x9b, hi: 0xa1}, - {value: 0x8133, lo: 0xa3, hi: 0xa4}, - {value: 0x8133, lo: 0xa6, hi: 0xaa}, - // Block 0x98, offset 0x2b7 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xac, hi: 0xaf}, - // Block 0x99, offset 0x2b9 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x90, hi: 0x96}, - // Block 0x9a, offset 0x2bb - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0x84, hi: 0x89}, - {value: 0x8103, lo: 0x8a, hi: 0x8a}, - // Block 0x9b, offset 0x2be - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 18768 bytes (18.33 KiB). Checksum: c51186dd2412943d. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 92: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 92 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 94 blocks, 6016 entries, 12032 bytes -// The third block is the zero block. -var nfkcValues = [6016]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3, - 0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012, - 0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b, - 0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4, - 0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c, - 0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c, - 0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a, - 0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767, - 0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776, - 0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea, - 0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580, - // Block 0x4, offset 0x100 - 0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf, - 0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd, - 0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec, - 0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319, - 0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350, - 0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369, - 0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5, - 0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd, - 0x130: 0x30a3, 0x132: 0x1960, 0x133: 0x19ed, 0x134: 0x30cb, 0x135: 0x33d7, - 0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3, - 0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, 0x13f: 0x1bb2, - // Block 0x5, offset 0x140 - 0x140: 0x1c3a, 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f, - 0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, 0x149: 0x1c62, - 0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463, - 0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a, - 0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4, - 0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1, - 0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad, - 0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9, - 0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f, - 0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e, - 0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2e05, 0x185: 0x2e0b, - 0x186: 0x2e11, 0x187: 0x1975, 0x188: 0x1978, 0x189: 0x1a0e, 0x18a: 0x198d, 0x18b: 0x1990, - 0x18c: 0x1a44, 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157, - 0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df, - 0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67, - 0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc, - 0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6, - 0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4, - 0x1b0: 0x33dc, 0x1b1: 0x1945, 0x1b2: 0x1948, 0x1b3: 0x19d5, 0x1b4: 0x303f, 0x1b5: 0x334b, - 0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d, - 0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d, - 0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3, - 0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490, - 0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d, - 0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc, - 0x1de: 0x3071, 0x1df: 0x337d, - 0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762, - 0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780, - 0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576, - // Block 0x8, offset 0x200 - 0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133, - 0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933, - 0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933, - 0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e, - 0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e, - 0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e, - 0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e, - 0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e, - 0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e, - 0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133, - // Block 0x9, offset 0x240 - 0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937, - 0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133, - 0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133, - 0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133, - 0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136, - 0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133, - 0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133, - 0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133, - 0x274: 0x0173, - 0x27a: 0x42bc, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x4271, 0x285: 0x4492, - 0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c, - 0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0, - 0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4857, 0x2cb: 0x4875, - 0x2cc: 0x36de, 0x2cd: 0x36f6, 0x2ce: 0x488d, 0x2d0: 0x01c1, 0x2d1: 0x01d3, - 0x2d2: 0x01af, 0x2d3: 0x4323, 0x2d4: 0x4329, 0x2d5: 0x01fd, 0x2d6: 0x01eb, - 0x2f0: 0x01d9, 0x2f1: 0x01ee, 0x2f2: 0x01f1, 0x2f4: 0x018b, 0x2f5: 0x01ca, - 0x2f9: 0x01a9, - // Block 0xc, offset 0x300 - 0x300: 0x3738, 0x301: 0x3744, 0x303: 0x3732, - 0x306: 0xa000, 0x307: 0x3720, - 0x30c: 0x3774, 0x30d: 0x375c, 0x30e: 0x3786, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3768, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37ec, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x374a, 0x342: 0x37ce, - 0x350: 0x3726, 0x351: 0x37aa, - 0x352: 0x372c, 0x353: 0x37b0, 0x356: 0x373e, 0x357: 0x37c2, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3840, 0x35b: 0x3846, 0x35c: 0x3750, 0x35d: 0x37d4, - 0x35e: 0x3756, 0x35f: 0x37da, 0x362: 0x3762, 0x363: 0x37e6, - 0x364: 0x376e, 0x365: 0x37f2, 0x366: 0x377a, 0x367: 0x37fe, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x384c, 0x36b: 0x3852, 0x36c: 0x37a4, 0x36d: 0x3828, 0x36e: 0x3780, 0x36f: 0x3804, - 0x370: 0x378c, 0x371: 0x3810, 0x372: 0x3792, 0x373: 0x3816, 0x374: 0x3798, 0x375: 0x381c, - 0x378: 0x379e, 0x379: 0x3822, - // Block 0xe, offset 0x380 - 0x387: 0x1d67, - 0x391: 0x812e, - 0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133, - 0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133, - 0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e, - 0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133, - 0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133, - 0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b, - 0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110, - 0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117, - 0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d, - 0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133, - 0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133, - 0x3de: 0x8133, 0x3df: 0x812e, - 0x3f0: 0x811f, 0x3f5: 0x1d8a, - 0x3f6: 0x2019, 0x3f7: 0x2055, 0x3f8: 0x2050, - // Block 0x10, offset 0x400 - 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133, - 0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133, - 0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e, - 0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e, - 0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e, - 0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133, - 0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133, - 0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133, - // Block 0x11, offset 0x440 - 0x445: 0xa000, - 0x446: 0x2d33, 0x447: 0xa000, 0x448: 0x2d3b, 0x449: 0xa000, 0x44a: 0x2d43, 0x44b: 0xa000, - 0x44c: 0x2d4b, 0x44d: 0xa000, 0x44e: 0x2d53, 0x451: 0xa000, - 0x452: 0x2d5b, - 0x474: 0x8103, 0x475: 0x9900, - 0x47a: 0xa000, 0x47b: 0x2d63, - 0x47c: 0xa000, 0x47d: 0x2d6b, 0x47e: 0xa000, 0x47f: 0xa000, - // Block 0x12, offset 0x480 - 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, - 0x486: 0x0416, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, - 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, - 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x041a, 0x495: 0x041e, 0x496: 0x00a1, 0x497: 0x00a9, - 0x498: 0x00ab, 0x499: 0x0426, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x042a, 0x49d: 0x01c1, - 0x49e: 0x01c4, 0x49f: 0x01c7, 0x4a0: 0x01fd, 0x4a1: 0x0200, 0x4a2: 0x0093, 0x4a3: 0x00a5, - 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01c1, 0x4a7: 0x01c4, 0x4a8: 0x01ee, 0x4a9: 0x01fd, - 0x4aa: 0x0200, - 0x4b8: 0x020f, - // Block 0x13, offset 0x4c0 - 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, - 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, - 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042e, 0x4e8: 0x016d, 0x4e9: 0x0128, - 0x4ea: 0x0432, 0x4eb: 0x0170, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, - 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, - 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x0422, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, - 0x4fc: 0x0161, 0x4fd: 0x0164, 0x4fe: 0x0167, 0x4ff: 0x01d3, - // Block 0x14, offset 0x500 - 0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133, - 0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133, - 0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133, - 0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133, - 0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133, - 0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133, - 0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133, - 0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133, - 0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133, - 0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53b: 0x8133, - 0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e, - // Block 0x15, offset 0x540 - 0x540: 0x2fae, 0x541: 0x32ba, 0x542: 0x2fb8, 0x543: 0x32c4, 0x544: 0x2fbd, 0x545: 0x32c9, - 0x546: 0x2fc2, 0x547: 0x32ce, 0x548: 0x38e3, 0x549: 0x3a72, 0x54a: 0x2fdb, 0x54b: 0x32e7, - 0x54c: 0x2fe5, 0x54d: 0x32f1, 0x54e: 0x2ff4, 0x54f: 0x3300, 0x550: 0x2fea, 0x551: 0x32f6, - 0x552: 0x2fef, 0x553: 0x32fb, 0x554: 0x3906, 0x555: 0x3a95, 0x556: 0x390d, 0x557: 0x3a9c, - 0x558: 0x3030, 0x559: 0x333c, 0x55a: 0x3035, 0x55b: 0x3341, 0x55c: 0x391b, 0x55d: 0x3aaa, - 0x55e: 0x303a, 0x55f: 0x3346, 0x560: 0x3049, 0x561: 0x3355, 0x562: 0x3067, 0x563: 0x3373, - 0x564: 0x3076, 0x565: 0x3382, 0x566: 0x306c, 0x567: 0x3378, 0x568: 0x307b, 0x569: 0x3387, - 0x56a: 0x3080, 0x56b: 0x338c, 0x56c: 0x30c6, 0x56d: 0x33d2, 0x56e: 0x3922, 0x56f: 0x3ab1, - 0x570: 0x30d0, 0x571: 0x33e1, 0x572: 0x30da, 0x573: 0x33eb, 0x574: 0x30e4, 0x575: 0x33f5, - 0x576: 0x46db, 0x577: 0x476c, 0x578: 0x3929, 0x579: 0x3ab8, 0x57a: 0x30fd, 0x57b: 0x340e, - 0x57c: 0x30f8, 0x57d: 0x3409, 0x57e: 0x3102, 0x57f: 0x3413, - // Block 0x16, offset 0x580 - 0x580: 0x3107, 0x581: 0x3418, 0x582: 0x310c, 0x583: 0x341d, 0x584: 0x3120, 0x585: 0x3431, - 0x586: 0x312a, 0x587: 0x343b, 0x588: 0x3139, 0x589: 0x344a, 0x58a: 0x3134, 0x58b: 0x3445, - 0x58c: 0x394c, 0x58d: 0x3adb, 0x58e: 0x395a, 0x58f: 0x3ae9, 0x590: 0x3961, 0x591: 0x3af0, - 0x592: 0x3968, 0x593: 0x3af7, 0x594: 0x3166, 0x595: 0x3477, 0x596: 0x316b, 0x597: 0x347c, - 0x598: 0x3175, 0x599: 0x3486, 0x59a: 0x4708, 0x59b: 0x4799, 0x59c: 0x39ae, 0x59d: 0x3b3d, - 0x59e: 0x318e, 0x59f: 0x349f, 0x5a0: 0x3198, 0x5a1: 0x34a9, 0x5a2: 0x4717, 0x5a3: 0x47a8, - 0x5a4: 0x39b5, 0x5a5: 0x3b44, 0x5a6: 0x39bc, 0x5a7: 0x3b4b, 0x5a8: 0x39c3, 0x5a9: 0x3b52, - 0x5aa: 0x31a7, 0x5ab: 0x34b8, 0x5ac: 0x31b1, 0x5ad: 0x34c7, 0x5ae: 0x31c5, 0x5af: 0x34db, - 0x5b0: 0x31c0, 0x5b1: 0x34d6, 0x5b2: 0x3201, 0x5b3: 0x3517, 0x5b4: 0x3210, 0x5b5: 0x3526, - 0x5b6: 0x320b, 0x5b7: 0x3521, 0x5b8: 0x39ca, 0x5b9: 0x3b59, 0x5ba: 0x39d1, 0x5bb: 0x3b60, - 0x5bc: 0x3215, 0x5bd: 0x352b, 0x5be: 0x321a, 0x5bf: 0x3530, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x321f, 0x5c1: 0x3535, 0x5c2: 0x3224, 0x5c3: 0x353a, 0x5c4: 0x3233, 0x5c5: 0x3549, - 0x5c6: 0x322e, 0x5c7: 0x3544, 0x5c8: 0x3238, 0x5c9: 0x3553, 0x5ca: 0x323d, 0x5cb: 0x3558, - 0x5cc: 0x3242, 0x5cd: 0x355d, 0x5ce: 0x3260, 0x5cf: 0x357b, 0x5d0: 0x3279, 0x5d1: 0x3599, - 0x5d2: 0x3288, 0x5d3: 0x35a8, 0x5d4: 0x328d, 0x5d5: 0x35ad, 0x5d6: 0x3391, 0x5d7: 0x34bd, - 0x5d8: 0x354e, 0x5d9: 0x358a, 0x5da: 0x1be6, 0x5db: 0x42ee, - 0x5e0: 0x46b8, 0x5e1: 0x4749, 0x5e2: 0x2f9a, 0x5e3: 0x32a6, - 0x5e4: 0x388f, 0x5e5: 0x3a1e, 0x5e6: 0x3888, 0x5e7: 0x3a17, 0x5e8: 0x389d, 0x5e9: 0x3a2c, - 0x5ea: 0x3896, 0x5eb: 0x3a25, 0x5ec: 0x38d5, 0x5ed: 0x3a64, 0x5ee: 0x38ab, 0x5ef: 0x3a3a, - 0x5f0: 0x38a4, 0x5f1: 0x3a33, 0x5f2: 0x38b9, 0x5f3: 0x3a48, 0x5f4: 0x38b2, 0x5f5: 0x3a41, - 0x5f6: 0x38dc, 0x5f7: 0x3a6b, 0x5f8: 0x46cc, 0x5f9: 0x475d, 0x5fa: 0x3017, 0x5fb: 0x3323, - 0x5fc: 0x3003, 0x5fd: 0x330f, 0x5fe: 0x38f1, 0x5ff: 0x3a80, - // Block 0x18, offset 0x600 - 0x600: 0x38ea, 0x601: 0x3a79, 0x602: 0x38ff, 0x603: 0x3a8e, 0x604: 0x38f8, 0x605: 0x3a87, - 0x606: 0x3914, 0x607: 0x3aa3, 0x608: 0x30a8, 0x609: 0x33b4, 0x60a: 0x30bc, 0x60b: 0x33c8, - 0x60c: 0x46fe, 0x60d: 0x478f, 0x60e: 0x314d, 0x60f: 0x345e, 0x610: 0x3937, 0x611: 0x3ac6, - 0x612: 0x3930, 0x613: 0x3abf, 0x614: 0x3945, 0x615: 0x3ad4, 0x616: 0x393e, 0x617: 0x3acd, - 0x618: 0x39a0, 0x619: 0x3b2f, 0x61a: 0x3984, 0x61b: 0x3b13, 0x61c: 0x397d, 0x61d: 0x3b0c, - 0x61e: 0x3992, 0x61f: 0x3b21, 0x620: 0x398b, 0x621: 0x3b1a, 0x622: 0x3999, 0x623: 0x3b28, - 0x624: 0x31fc, 0x625: 0x3512, 0x626: 0x31de, 0x627: 0x34f4, 0x628: 0x39fb, 0x629: 0x3b8a, - 0x62a: 0x39f4, 0x62b: 0x3b83, 0x62c: 0x3a09, 0x62d: 0x3b98, 0x62e: 0x3a02, 0x62f: 0x3b91, - 0x630: 0x3a10, 0x631: 0x3b9f, 0x632: 0x3247, 0x633: 0x3562, 0x634: 0x326f, 0x635: 0x358f, - 0x636: 0x326a, 0x637: 0x3585, 0x638: 0x3256, 0x639: 0x3571, - // Block 0x19, offset 0x640 - 0x640: 0x481b, 0x641: 0x4821, 0x642: 0x4935, 0x643: 0x494d, 0x644: 0x493d, 0x645: 0x4955, - 0x646: 0x4945, 0x647: 0x495d, 0x648: 0x47c1, 0x649: 0x47c7, 0x64a: 0x48a5, 0x64b: 0x48bd, - 0x64c: 0x48ad, 0x64d: 0x48c5, 0x64e: 0x48b5, 0x64f: 0x48cd, 0x650: 0x482d, 0x651: 0x4833, - 0x652: 0x3dcf, 0x653: 0x3ddf, 0x654: 0x3dd7, 0x655: 0x3de7, - 0x658: 0x47cd, 0x659: 0x47d3, 0x65a: 0x3cff, 0x65b: 0x3d0f, 0x65c: 0x3d07, 0x65d: 0x3d17, - 0x660: 0x4845, 0x661: 0x484b, 0x662: 0x4965, 0x663: 0x497d, - 0x664: 0x496d, 0x665: 0x4985, 0x666: 0x4975, 0x667: 0x498d, 0x668: 0x47d9, 0x669: 0x47df, - 0x66a: 0x48d5, 0x66b: 0x48ed, 0x66c: 0x48dd, 0x66d: 0x48f5, 0x66e: 0x48e5, 0x66f: 0x48fd, - 0x670: 0x485d, 0x671: 0x4863, 0x672: 0x3e2f, 0x673: 0x3e47, 0x674: 0x3e37, 0x675: 0x3e4f, - 0x676: 0x3e3f, 0x677: 0x3e57, 0x678: 0x47e5, 0x679: 0x47eb, 0x67a: 0x3d2f, 0x67b: 0x3d47, - 0x67c: 0x3d37, 0x67d: 0x3d4f, 0x67e: 0x3d3f, 0x67f: 0x3d57, - // Block 0x1a, offset 0x680 - 0x680: 0x4869, 0x681: 0x486f, 0x682: 0x3e5f, 0x683: 0x3e6f, 0x684: 0x3e67, 0x685: 0x3e77, - 0x688: 0x47f1, 0x689: 0x47f7, 0x68a: 0x3d5f, 0x68b: 0x3d6f, - 0x68c: 0x3d67, 0x68d: 0x3d77, 0x690: 0x487b, 0x691: 0x4881, - 0x692: 0x3e97, 0x693: 0x3eaf, 0x694: 0x3e9f, 0x695: 0x3eb7, 0x696: 0x3ea7, 0x697: 0x3ebf, - 0x699: 0x47fd, 0x69b: 0x3d7f, 0x69d: 0x3d87, - 0x69f: 0x3d8f, 0x6a0: 0x4893, 0x6a1: 0x4899, 0x6a2: 0x4995, 0x6a3: 0x49ad, - 0x6a4: 0x499d, 0x6a5: 0x49b5, 0x6a6: 0x49a5, 0x6a7: 0x49bd, 0x6a8: 0x4803, 0x6a9: 0x4809, - 0x6aa: 0x4905, 0x6ab: 0x491d, 0x6ac: 0x490d, 0x6ad: 0x4925, 0x6ae: 0x4915, 0x6af: 0x492d, - 0x6b0: 0x480f, 0x6b1: 0x4335, 0x6b2: 0x36a8, 0x6b3: 0x433b, 0x6b4: 0x4839, 0x6b5: 0x4341, - 0x6b6: 0x36ba, 0x6b7: 0x4347, 0x6b8: 0x36d8, 0x6b9: 0x434d, 0x6ba: 0x36f0, 0x6bb: 0x4353, - 0x6bc: 0x4887, 0x6bd: 0x4359, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3db7, 0x6c1: 0x3dbf, 0x6c2: 0x419b, 0x6c3: 0x41b9, 0x6c4: 0x41a5, 0x6c5: 0x41c3, - 0x6c6: 0x41af, 0x6c7: 0x41cd, 0x6c8: 0x3cef, 0x6c9: 0x3cf7, 0x6ca: 0x40e7, 0x6cb: 0x4105, - 0x6cc: 0x40f1, 0x6cd: 0x410f, 0x6ce: 0x40fb, 0x6cf: 0x4119, 0x6d0: 0x3dff, 0x6d1: 0x3e07, - 0x6d2: 0x41d7, 0x6d3: 0x41f5, 0x6d4: 0x41e1, 0x6d5: 0x41ff, 0x6d6: 0x41eb, 0x6d7: 0x4209, - 0x6d8: 0x3d1f, 0x6d9: 0x3d27, 0x6da: 0x4123, 0x6db: 0x4141, 0x6dc: 0x412d, 0x6dd: 0x414b, - 0x6de: 0x4137, 0x6df: 0x4155, 0x6e0: 0x3ed7, 0x6e1: 0x3edf, 0x6e2: 0x4213, 0x6e3: 0x4231, - 0x6e4: 0x421d, 0x6e5: 0x423b, 0x6e6: 0x4227, 0x6e7: 0x4245, 0x6e8: 0x3d97, 0x6e9: 0x3d9f, - 0x6ea: 0x415f, 0x6eb: 0x417d, 0x6ec: 0x4169, 0x6ed: 0x4187, 0x6ee: 0x4173, 0x6ef: 0x4191, - 0x6f0: 0x369c, 0x6f1: 0x3696, 0x6f2: 0x3da7, 0x6f3: 0x36a2, 0x6f4: 0x3daf, - 0x6f6: 0x4827, 0x6f7: 0x3dc7, 0x6f8: 0x360c, 0x6f9: 0x3606, 0x6fa: 0x35fa, 0x6fb: 0x4305, - 0x6fc: 0x3612, 0x6fd: 0x429e, 0x6fe: 0x01d6, 0x6ff: 0x429e, - // Block 0x1c, offset 0x700 - 0x700: 0x42b7, 0x701: 0x4499, 0x702: 0x3def, 0x703: 0x36b4, 0x704: 0x3df7, - 0x706: 0x4851, 0x707: 0x3e0f, 0x708: 0x3618, 0x709: 0x430b, 0x70a: 0x3624, 0x70b: 0x4311, - 0x70c: 0x3630, 0x70d: 0x44a0, 0x70e: 0x44a7, 0x70f: 0x44ae, 0x710: 0x36cc, 0x711: 0x36c6, - 0x712: 0x3e17, 0x713: 0x44fb, 0x716: 0x36d2, 0x717: 0x3e27, - 0x718: 0x3648, 0x719: 0x3642, 0x71a: 0x3636, 0x71b: 0x4317, 0x71d: 0x44b5, - 0x71e: 0x44bc, 0x71f: 0x44c3, 0x720: 0x3702, 0x721: 0x36fc, 0x722: 0x3e7f, 0x723: 0x4503, - 0x724: 0x36e4, 0x725: 0x36ea, 0x726: 0x3708, 0x727: 0x3e8f, 0x728: 0x3678, 0x729: 0x3672, - 0x72a: 0x3666, 0x72b: 0x4323, 0x72c: 0x3660, 0x72d: 0x448b, 0x72e: 0x4492, 0x72f: 0x0081, - 0x732: 0x3ec7, 0x733: 0x370e, 0x734: 0x3ecf, - 0x736: 0x489f, 0x737: 0x3ee7, 0x738: 0x3654, 0x739: 0x431d, 0x73a: 0x3684, 0x73b: 0x432f, - 0x73c: 0x3690, 0x73d: 0x4271, 0x73e: 0x42a3, - // Block 0x1d, offset 0x740 - 0x740: 0x1bde, 0x741: 0x1be2, 0x742: 0x0047, 0x743: 0x1c5a, 0x745: 0x1bee, - 0x746: 0x1bf2, 0x747: 0x00e9, 0x749: 0x1c5e, 0x74a: 0x008f, 0x74b: 0x0051, - 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, - 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1993, - 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, - 0x760: 0x19a5, 0x761: 0x1bce, 0x762: 0x19ae, - 0x764: 0x0075, 0x766: 0x01bb, 0x768: 0x0075, - 0x76a: 0x0057, 0x76b: 0x42e9, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, - 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0218, - 0x776: 0x021b, 0x777: 0x021e, 0x778: 0x0221, 0x779: 0x0093, 0x77b: 0x1b9e, - 0x77c: 0x01eb, 0x77d: 0x01c4, 0x77e: 0x017c, 0x77f: 0x01a3, - // Block 0x1e, offset 0x780 - 0x780: 0x0466, 0x785: 0x0049, - 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, - 0x790: 0x2234, 0x791: 0x2240, - 0x792: 0x22f4, 0x793: 0x221c, 0x794: 0x22a0, 0x795: 0x2228, 0x796: 0x22a6, 0x797: 0x22be, - 0x798: 0x22ca, 0x799: 0x222e, 0x79a: 0x22d0, 0x79b: 0x223a, 0x79c: 0x22c4, 0x79d: 0x22d6, - 0x79e: 0x22dc, 0x79f: 0x1cc2, 0x7a0: 0x0053, 0x7a1: 0x195d, 0x7a2: 0x1baa, 0x7a3: 0x1966, - 0x7a4: 0x006d, 0x7a5: 0x19b1, 0x7a6: 0x1bd6, 0x7a7: 0x1d4e, 0x7a8: 0x1969, 0x7a9: 0x0071, - 0x7aa: 0x19bd, 0x7ab: 0x1bda, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, - 0x7b0: 0x0093, 0x7b1: 0x19ea, 0x7b2: 0x1c1e, 0x7b3: 0x19f3, 0x7b4: 0x00ad, 0x7b5: 0x1a68, - 0x7b6: 0x1c52, 0x7b7: 0x1d62, 0x7b8: 0x19f6, 0x7b9: 0x00b1, 0x7ba: 0x1a6b, 0x7bb: 0x1c56, - 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, - // Block 0x1f, offset 0x7c0 - 0x7c1: 0x3c1d, 0x7c3: 0xa000, 0x7c4: 0x3c24, 0x7c5: 0xa000, - 0x7c7: 0x3c2b, 0x7c8: 0xa000, 0x7c9: 0x3c32, - 0x7cd: 0xa000, - 0x7e0: 0x2f7c, 0x7e1: 0xa000, 0x7e2: 0x3c40, - 0x7e4: 0xa000, 0x7e5: 0xa000, - 0x7ed: 0x3c39, 0x7ee: 0x2f77, 0x7ef: 0x2f81, - 0x7f0: 0x3c47, 0x7f1: 0x3c4e, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c55, 0x7f5: 0x3c5c, - 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c63, 0x7f9: 0x3c6a, 0x7fa: 0xa000, 0x7fb: 0xa000, - 0x7fc: 0xa000, 0x7fd: 0xa000, - // Block 0x20, offset 0x800 - 0x800: 0x3c71, 0x801: 0x3c78, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c8d, 0x805: 0x3c94, - 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c9b, 0x809: 0x3ca2, - 0x811: 0xa000, - 0x812: 0xa000, - 0x822: 0xa000, - 0x828: 0xa000, 0x829: 0xa000, - 0x82b: 0xa000, 0x82c: 0x3cb7, 0x82d: 0x3cbe, 0x82e: 0x3cc5, 0x82f: 0x3ccc, - 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, - // Block 0x21, offset 0x840 - 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, - 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1885, - 0x86a: 0x1888, 0x86b: 0x188b, 0x86c: 0x188e, 0x86d: 0x1891, 0x86e: 0x1894, 0x86f: 0x1897, - 0x870: 0x189a, 0x871: 0x189d, 0x872: 0x18a0, 0x873: 0x18a9, 0x874: 0x1a6e, 0x875: 0x1a72, - 0x876: 0x1a76, 0x877: 0x1a7a, 0x878: 0x1a7e, 0x879: 0x1a82, 0x87a: 0x1a86, 0x87b: 0x1a8a, - 0x87c: 0x1a8e, 0x87d: 0x1c86, 0x87e: 0x1c8b, 0x87f: 0x1c90, - // Block 0x22, offset 0x880 - 0x880: 0x1c95, 0x881: 0x1c9a, 0x882: 0x1c9f, 0x883: 0x1ca4, 0x884: 0x1ca9, 0x885: 0x1cae, - 0x886: 0x1cb3, 0x887: 0x1cb8, 0x888: 0x1882, 0x889: 0x18a6, 0x88a: 0x18ca, 0x88b: 0x18ee, - 0x88c: 0x1912, 0x88d: 0x191b, 0x88e: 0x1921, 0x88f: 0x1927, 0x890: 0x192d, 0x891: 0x1b66, - 0x892: 0x1b6a, 0x893: 0x1b6e, 0x894: 0x1b72, 0x895: 0x1b76, 0x896: 0x1b7a, 0x897: 0x1b7e, - 0x898: 0x1b82, 0x899: 0x1b86, 0x89a: 0x1b8a, 0x89b: 0x1b8e, 0x89c: 0x1afa, 0x89d: 0x1afe, - 0x89e: 0x1b02, 0x89f: 0x1b06, 0x8a0: 0x1b0a, 0x8a1: 0x1b0e, 0x8a2: 0x1b12, 0x8a3: 0x1b16, - 0x8a4: 0x1b1a, 0x8a5: 0x1b1e, 0x8a6: 0x1b22, 0x8a7: 0x1b26, 0x8a8: 0x1b2a, 0x8a9: 0x1b2e, - 0x8aa: 0x1b32, 0x8ab: 0x1b36, 0x8ac: 0x1b3a, 0x8ad: 0x1b3e, 0x8ae: 0x1b42, 0x8af: 0x1b46, - 0x8b0: 0x1b4a, 0x8b1: 0x1b4e, 0x8b2: 0x1b52, 0x8b3: 0x1b56, 0x8b4: 0x1b5a, 0x8b5: 0x1b5e, - 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, - 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x06c2, 0x8c1: 0x06e6, 0x8c2: 0x06f2, 0x8c3: 0x0702, 0x8c4: 0x070a, 0x8c5: 0x0716, - 0x8c6: 0x071e, 0x8c7: 0x0726, 0x8c8: 0x0732, 0x8c9: 0x0786, 0x8ca: 0x079e, 0x8cb: 0x07ae, - 0x8cc: 0x07be, 0x8cd: 0x07ce, 0x8ce: 0x07de, 0x8cf: 0x07fe, 0x8d0: 0x0802, 0x8d1: 0x0806, - 0x8d2: 0x083a, 0x8d3: 0x0862, 0x8d4: 0x0872, 0x8d5: 0x087a, 0x8d6: 0x087e, 0x8d7: 0x088a, - 0x8d8: 0x08a6, 0x8d9: 0x08aa, 0x8da: 0x08c2, 0x8db: 0x08c6, 0x8dc: 0x08ce, 0x8dd: 0x08de, - 0x8de: 0x097a, 0x8df: 0x098e, 0x8e0: 0x09ce, 0x8e1: 0x09e2, 0x8e2: 0x09ea, 0x8e3: 0x09ee, - 0x8e4: 0x09fe, 0x8e5: 0x0a1a, 0x8e6: 0x0a46, 0x8e7: 0x0a52, 0x8e8: 0x0a72, 0x8e9: 0x0a7e, - 0x8ea: 0x0a82, 0x8eb: 0x0a86, 0x8ec: 0x0a9e, 0x8ed: 0x0aa2, 0x8ee: 0x0ace, 0x8ef: 0x0ada, - 0x8f0: 0x0ae2, 0x8f1: 0x0aea, 0x8f2: 0x0afa, 0x8f3: 0x0b02, 0x8f4: 0x0b0a, 0x8f5: 0x0b36, - 0x8f6: 0x0b3a, 0x8f7: 0x0b42, 0x8f8: 0x0b46, 0x8f9: 0x0b4e, 0x8fa: 0x0b56, 0x8fb: 0x0b66, - 0x8fc: 0x0b82, 0x8fd: 0x0bfa, 0x8fe: 0x0c0e, 0x8ff: 0x0c12, - // Block 0x24, offset 0x900 - 0x900: 0x0c92, 0x901: 0x0c96, 0x902: 0x0caa, 0x903: 0x0cae, 0x904: 0x0cb6, 0x905: 0x0cbe, - 0x906: 0x0cc6, 0x907: 0x0cd2, 0x908: 0x0cfa, 0x909: 0x0d0a, 0x90a: 0x0d1e, 0x90b: 0x0d8e, - 0x90c: 0x0d9a, 0x90d: 0x0daa, 0x90e: 0x0db6, 0x90f: 0x0dc2, 0x910: 0x0dca, 0x911: 0x0dce, - 0x912: 0x0dd2, 0x913: 0x0dd6, 0x914: 0x0dda, 0x915: 0x0e92, 0x916: 0x0eda, 0x917: 0x0ee6, - 0x918: 0x0eea, 0x919: 0x0eee, 0x91a: 0x0ef2, 0x91b: 0x0efa, 0x91c: 0x0efe, 0x91d: 0x0f12, - 0x91e: 0x0f2e, 0x91f: 0x0f36, 0x920: 0x0f76, 0x921: 0x0f7a, 0x922: 0x0f82, 0x923: 0x0f86, - 0x924: 0x0f8e, 0x925: 0x0f92, 0x926: 0x0fb6, 0x927: 0x0fba, 0x928: 0x0fd6, 0x929: 0x0fda, - 0x92a: 0x0fde, 0x92b: 0x0fe2, 0x92c: 0x0ff6, 0x92d: 0x101a, 0x92e: 0x101e, 0x92f: 0x1022, - 0x930: 0x1046, 0x931: 0x1086, 0x932: 0x108a, 0x933: 0x10aa, 0x934: 0x10ba, 0x935: 0x10c2, - 0x936: 0x10e2, 0x937: 0x1106, 0x938: 0x114a, 0x939: 0x1152, 0x93a: 0x1166, 0x93b: 0x1172, - 0x93c: 0x117a, 0x93d: 0x1182, 0x93e: 0x1186, 0x93f: 0x118a, - // Block 0x25, offset 0x940 - 0x940: 0x11a2, 0x941: 0x11a6, 0x942: 0x11c2, 0x943: 0x11ca, 0x944: 0x11d2, 0x945: 0x11d6, - 0x946: 0x11e2, 0x947: 0x11ea, 0x948: 0x11ee, 0x949: 0x11f2, 0x94a: 0x11fa, 0x94b: 0x11fe, - 0x94c: 0x129e, 0x94d: 0x12b2, 0x94e: 0x12e6, 0x94f: 0x12ea, 0x950: 0x12f2, 0x951: 0x131e, - 0x952: 0x1326, 0x953: 0x132e, 0x954: 0x1336, 0x955: 0x1372, 0x956: 0x1376, 0x957: 0x137e, - 0x958: 0x1382, 0x959: 0x1386, 0x95a: 0x13b2, 0x95b: 0x13b6, 0x95c: 0x13be, 0x95d: 0x13d2, - 0x95e: 0x13d6, 0x95f: 0x13f2, 0x960: 0x13fa, 0x961: 0x13fe, 0x962: 0x1422, 0x963: 0x1442, - 0x964: 0x1456, 0x965: 0x145a, 0x966: 0x1462, 0x967: 0x148e, 0x968: 0x1492, 0x969: 0x14a2, - 0x96a: 0x14c6, 0x96b: 0x14d2, 0x96c: 0x14e2, 0x96d: 0x14fa, 0x96e: 0x1502, 0x96f: 0x1506, - 0x970: 0x150a, 0x971: 0x150e, 0x972: 0x151a, 0x973: 0x151e, 0x974: 0x1526, 0x975: 0x1542, - 0x976: 0x1546, 0x977: 0x154a, 0x978: 0x1562, 0x979: 0x1566, 0x97a: 0x156e, 0x97b: 0x1582, - 0x97c: 0x1586, 0x97d: 0x158a, 0x97e: 0x1592, 0x97f: 0x1596, - // Block 0x26, offset 0x980 - 0x986: 0xa000, 0x98b: 0xa000, - 0x98c: 0x3f1f, 0x98d: 0xa000, 0x98e: 0x3f27, 0x98f: 0xa000, 0x990: 0x3f2f, 0x991: 0xa000, - 0x992: 0x3f37, 0x993: 0xa000, 0x994: 0x3f3f, 0x995: 0xa000, 0x996: 0x3f47, 0x997: 0xa000, - 0x998: 0x3f4f, 0x999: 0xa000, 0x99a: 0x3f57, 0x99b: 0xa000, 0x99c: 0x3f5f, 0x99d: 0xa000, - 0x99e: 0x3f67, 0x99f: 0xa000, 0x9a0: 0x3f6f, 0x9a1: 0xa000, 0x9a2: 0x3f77, - 0x9a4: 0xa000, 0x9a5: 0x3f7f, 0x9a6: 0xa000, 0x9a7: 0x3f87, 0x9a8: 0xa000, 0x9a9: 0x3f8f, - 0x9af: 0xa000, - 0x9b0: 0x3f97, 0x9b1: 0x3f9f, 0x9b2: 0xa000, 0x9b3: 0x3fa7, 0x9b4: 0x3faf, 0x9b5: 0xa000, - 0x9b6: 0x3fb7, 0x9b7: 0x3fbf, 0x9b8: 0xa000, 0x9b9: 0x3fc7, 0x9ba: 0x3fcf, 0x9bb: 0xa000, - 0x9bc: 0x3fd7, 0x9bd: 0x3fdf, - // Block 0x27, offset 0x9c0 - 0x9d4: 0x3f17, - 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x42f3, 0x9dc: 0x42f9, 0x9dd: 0xa000, - 0x9de: 0x3fe7, 0x9df: 0x26ba, - 0x9e6: 0xa000, - 0x9eb: 0xa000, 0x9ec: 0x3ff7, 0x9ed: 0xa000, 0x9ee: 0x3fff, 0x9ef: 0xa000, - 0x9f0: 0x4007, 0x9f1: 0xa000, 0x9f2: 0x400f, 0x9f3: 0xa000, 0x9f4: 0x4017, 0x9f5: 0xa000, - 0x9f6: 0x401f, 0x9f7: 0xa000, 0x9f8: 0x4027, 0x9f9: 0xa000, 0x9fa: 0x402f, 0x9fb: 0xa000, - 0x9fc: 0x4037, 0x9fd: 0xa000, 0x9fe: 0x403f, 0x9ff: 0xa000, - // Block 0x28, offset 0xa00 - 0xa00: 0x4047, 0xa01: 0xa000, 0xa02: 0x404f, 0xa04: 0xa000, 0xa05: 0x4057, - 0xa06: 0xa000, 0xa07: 0x405f, 0xa08: 0xa000, 0xa09: 0x4067, - 0xa0f: 0xa000, 0xa10: 0x406f, 0xa11: 0x4077, - 0xa12: 0xa000, 0xa13: 0x407f, 0xa14: 0x4087, 0xa15: 0xa000, 0xa16: 0x408f, 0xa17: 0x4097, - 0xa18: 0xa000, 0xa19: 0x409f, 0xa1a: 0x40a7, 0xa1b: 0xa000, 0xa1c: 0x40af, 0xa1d: 0x40b7, - 0xa2f: 0xa000, - 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fef, - 0xa37: 0x40bf, 0xa38: 0x40c7, 0xa39: 0x40cf, 0xa3a: 0x40d7, - 0xa3d: 0xa000, 0xa3e: 0x40df, 0xa3f: 0x26cf, - // Block 0x29, offset 0xa40 - 0xa40: 0x036a, 0xa41: 0x032e, 0xa42: 0x0332, 0xa43: 0x0336, 0xa44: 0x037e, 0xa45: 0x033a, - 0xa46: 0x033e, 0xa47: 0x0342, 0xa48: 0x0346, 0xa49: 0x034a, 0xa4a: 0x034e, 0xa4b: 0x0352, - 0xa4c: 0x0356, 0xa4d: 0x035a, 0xa4e: 0x035e, 0xa4f: 0x49d4, 0xa50: 0x49da, 0xa51: 0x49e0, - 0xa52: 0x49e6, 0xa53: 0x49ec, 0xa54: 0x49f2, 0xa55: 0x49f8, 0xa56: 0x49fe, 0xa57: 0x4a04, - 0xa58: 0x4a0a, 0xa59: 0x4a10, 0xa5a: 0x4a16, 0xa5b: 0x4a1c, 0xa5c: 0x4a22, 0xa5d: 0x4a28, - 0xa5e: 0x4a2e, 0xa5f: 0x4a34, 0xa60: 0x4a3a, 0xa61: 0x4a40, 0xa62: 0x4a46, 0xa63: 0x4a4c, - 0xa64: 0x03c6, 0xa65: 0x0362, 0xa66: 0x0366, 0xa67: 0x03ea, 0xa68: 0x03ee, 0xa69: 0x03f2, - 0xa6a: 0x03f6, 0xa6b: 0x03fa, 0xa6c: 0x03fe, 0xa6d: 0x0402, 0xa6e: 0x036e, 0xa6f: 0x0406, - 0xa70: 0x040a, 0xa71: 0x0372, 0xa72: 0x0376, 0xa73: 0x037a, 0xa74: 0x0382, 0xa75: 0x0386, - 0xa76: 0x038a, 0xa77: 0x038e, 0xa78: 0x0392, 0xa79: 0x0396, 0xa7a: 0x039a, 0xa7b: 0x039e, - 0xa7c: 0x03a2, 0xa7d: 0x03a6, 0xa7e: 0x03aa, 0xa7f: 0x03ae, - // Block 0x2a, offset 0xa80 - 0xa80: 0x03b2, 0xa81: 0x03b6, 0xa82: 0x040e, 0xa83: 0x0412, 0xa84: 0x03ba, 0xa85: 0x03be, - 0xa86: 0x03c2, 0xa87: 0x03ca, 0xa88: 0x03ce, 0xa89: 0x03d2, 0xa8a: 0x03d6, 0xa8b: 0x03da, - 0xa8c: 0x03de, 0xa8d: 0x03e2, 0xa8e: 0x03e6, - 0xa92: 0x06c2, 0xa93: 0x071e, 0xa94: 0x06ce, 0xa95: 0x097e, 0xa96: 0x06d2, 0xa97: 0x06ea, - 0xa98: 0x06d6, 0xa99: 0x0f96, 0xa9a: 0x070a, 0xa9b: 0x06de, 0xa9c: 0x06c6, 0xa9d: 0x0a02, - 0xa9e: 0x0992, 0xa9f: 0x0732, - // Block 0x2b, offset 0xac0 - 0xac0: 0x205a, 0xac1: 0x2060, 0xac2: 0x2066, 0xac3: 0x206c, 0xac4: 0x2072, 0xac5: 0x2078, - 0xac6: 0x207e, 0xac7: 0x2084, 0xac8: 0x208a, 0xac9: 0x2090, 0xaca: 0x2096, 0xacb: 0x209c, - 0xacc: 0x20a2, 0xacd: 0x20a8, 0xace: 0x2733, 0xacf: 0x273c, 0xad0: 0x2745, 0xad1: 0x274e, - 0xad2: 0x2757, 0xad3: 0x2760, 0xad4: 0x2769, 0xad5: 0x2772, 0xad6: 0x277b, 0xad7: 0x278d, - 0xad8: 0x2796, 0xad9: 0x279f, 0xada: 0x27a8, 0xadb: 0x27b1, 0xadc: 0x2784, 0xadd: 0x2bb9, - 0xade: 0x2afa, 0xae0: 0x20ae, 0xae1: 0x20c6, 0xae2: 0x20ba, 0xae3: 0x210e, - 0xae4: 0x20cc, 0xae5: 0x20ea, 0xae6: 0x20b4, 0xae7: 0x20e4, 0xae8: 0x20c0, 0xae9: 0x20f6, - 0xaea: 0x2126, 0xaeb: 0x2144, 0xaec: 0x213e, 0xaed: 0x2132, 0xaee: 0x2180, 0xaef: 0x2114, - 0xaf0: 0x2120, 0xaf1: 0x2138, 0xaf2: 0x212c, 0xaf3: 0x2156, 0xaf4: 0x2102, 0xaf5: 0x214a, - 0xaf6: 0x2174, 0xaf7: 0x215c, 0xaf8: 0x20f0, 0xaf9: 0x20d2, 0xafa: 0x2108, 0xafb: 0x211a, - 0xafc: 0x2150, 0xafd: 0x20d8, 0xafe: 0x217a, 0xaff: 0x20fc, - // Block 0x2c, offset 0xb00 - 0xb00: 0x2162, 0xb01: 0x20de, 0xb02: 0x2168, 0xb03: 0x216e, 0xb04: 0x0932, 0xb05: 0x0b06, - 0xb06: 0x0caa, 0xb07: 0x10ca, - 0xb10: 0x1bca, 0xb11: 0x18ac, - 0xb12: 0x18af, 0xb13: 0x18b2, 0xb14: 0x18b5, 0xb15: 0x18b8, 0xb16: 0x18bb, 0xb17: 0x18be, - 0xb18: 0x18c1, 0xb19: 0x18c4, 0xb1a: 0x18cd, 0xb1b: 0x18d0, 0xb1c: 0x18d3, 0xb1d: 0x18d6, - 0xb1e: 0x18d9, 0xb1f: 0x18dc, 0xb20: 0x0316, 0xb21: 0x031e, 0xb22: 0x0322, 0xb23: 0x032a, - 0xb24: 0x032e, 0xb25: 0x0332, 0xb26: 0x033a, 0xb27: 0x0342, 0xb28: 0x0346, 0xb29: 0x034e, - 0xb2a: 0x0352, 0xb2b: 0x0356, 0xb2c: 0x035a, 0xb2d: 0x035e, 0xb2e: 0x2e2f, 0xb2f: 0x2e37, - 0xb30: 0x2e3f, 0xb31: 0x2e47, 0xb32: 0x2e4f, 0xb33: 0x2e57, 0xb34: 0x2e5f, 0xb35: 0x2e67, - 0xb36: 0x2e77, 0xb37: 0x2e7f, 0xb38: 0x2e87, 0xb39: 0x2e8f, 0xb3a: 0x2e97, 0xb3b: 0x2e9f, - 0xb3c: 0x2eea, 0xb3d: 0x2eb2, 0xb3e: 0x2e6f, - // Block 0x2d, offset 0xb40 - 0xb40: 0x06c2, 0xb41: 0x071e, 0xb42: 0x06ce, 0xb43: 0x097e, 0xb44: 0x0722, 0xb45: 0x07b2, - 0xb46: 0x06ca, 0xb47: 0x07ae, 0xb48: 0x070e, 0xb49: 0x088a, 0xb4a: 0x0d0a, 0xb4b: 0x0e92, - 0xb4c: 0x0dda, 0xb4d: 0x0d1e, 0xb4e: 0x1462, 0xb4f: 0x098e, 0xb50: 0x0cd2, 0xb51: 0x0d4e, - 0xb52: 0x0d0e, 0xb53: 0x104e, 0xb54: 0x08fe, 0xb55: 0x0f06, 0xb56: 0x138a, 0xb57: 0x1062, - 0xb58: 0x0846, 0xb59: 0x1092, 0xb5a: 0x0f9e, 0xb5b: 0x0a1a, 0xb5c: 0x1412, 0xb5d: 0x0782, - 0xb5e: 0x08ae, 0xb5f: 0x0dfa, 0xb60: 0x152a, 0xb61: 0x0746, 0xb62: 0x07d6, 0xb63: 0x0d9e, - 0xb64: 0x06d2, 0xb65: 0x06ea, 0xb66: 0x06d6, 0xb67: 0x0ade, 0xb68: 0x08f2, 0xb69: 0x0882, - 0xb6a: 0x0a5a, 0xb6b: 0x0a4e, 0xb6c: 0x0fee, 0xb6d: 0x0742, 0xb6e: 0x139e, 0xb6f: 0x089e, - 0xb70: 0x09f6, 0xb71: 0x18df, 0xb72: 0x18e2, 0xb73: 0x18e5, 0xb74: 0x18e8, 0xb75: 0x18f1, - 0xb76: 0x18f4, 0xb77: 0x18f7, 0xb78: 0x18fa, 0xb79: 0x18fd, 0xb7a: 0x1900, 0xb7b: 0x1903, - 0xb7c: 0x1906, 0xb7d: 0x1909, 0xb7e: 0x190c, 0xb7f: 0x1915, - // Block 0x2e, offset 0xb80 - 0xb80: 0x1ccc, 0xb81: 0x1cdb, 0xb82: 0x1cea, 0xb83: 0x1cf9, 0xb84: 0x1d08, 0xb85: 0x1d17, - 0xb86: 0x1d26, 0xb87: 0x1d35, 0xb88: 0x1d44, 0xb89: 0x2192, 0xb8a: 0x21a4, 0xb8b: 0x21b6, - 0xb8c: 0x1957, 0xb8d: 0x1c0a, 0xb8e: 0x19d8, 0xb8f: 0x1bae, 0xb90: 0x04ce, 0xb91: 0x04d6, - 0xb92: 0x04de, 0xb93: 0x04e6, 0xb94: 0x04ee, 0xb95: 0x04f2, 0xb96: 0x04f6, 0xb97: 0x04fa, - 0xb98: 0x04fe, 0xb99: 0x0502, 0xb9a: 0x0506, 0xb9b: 0x050a, 0xb9c: 0x050e, 0xb9d: 0x0512, - 0xb9e: 0x0516, 0xb9f: 0x051a, 0xba0: 0x051e, 0xba1: 0x0526, 0xba2: 0x052a, 0xba3: 0x052e, - 0xba4: 0x0532, 0xba5: 0x0536, 0xba6: 0x053a, 0xba7: 0x053e, 0xba8: 0x0542, 0xba9: 0x0546, - 0xbaa: 0x054a, 0xbab: 0x054e, 0xbac: 0x0552, 0xbad: 0x0556, 0xbae: 0x055a, 0xbaf: 0x055e, - 0xbb0: 0x0562, 0xbb1: 0x0566, 0xbb2: 0x056a, 0xbb3: 0x0572, 0xbb4: 0x057a, 0xbb5: 0x0582, - 0xbb6: 0x0586, 0xbb7: 0x058a, 0xbb8: 0x058e, 0xbb9: 0x0592, 0xbba: 0x0596, 0xbbb: 0x059a, - 0xbbc: 0x059e, 0xbbd: 0x05a2, 0xbbe: 0x05a6, 0xbbf: 0x2700, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x2b19, 0xbc1: 0x29b5, 0xbc2: 0x2b29, 0xbc3: 0x288d, 0xbc4: 0x2efb, 0xbc5: 0x2897, - 0xbc6: 0x28a1, 0xbc7: 0x2f3f, 0xbc8: 0x29c2, 0xbc9: 0x28ab, 0xbca: 0x28b5, 0xbcb: 0x28bf, - 0xbcc: 0x29e9, 0xbcd: 0x29f6, 0xbce: 0x29cf, 0xbcf: 0x29dc, 0xbd0: 0x2ec0, 0xbd1: 0x2a03, - 0xbd2: 0x2a10, 0xbd3: 0x2bcb, 0xbd4: 0x26c1, 0xbd5: 0x2bde, 0xbd6: 0x2bf1, 0xbd7: 0x2b39, - 0xbd8: 0x2a1d, 0xbd9: 0x2c04, 0xbda: 0x2c17, 0xbdb: 0x2a2a, 0xbdc: 0x28c9, 0xbdd: 0x28d3, - 0xbde: 0x2ece, 0xbdf: 0x2a37, 0xbe0: 0x2b49, 0xbe1: 0x2f0c, 0xbe2: 0x28dd, 0xbe3: 0x28e7, - 0xbe4: 0x2a44, 0xbe5: 0x28f1, 0xbe6: 0x28fb, 0xbe7: 0x26d6, 0xbe8: 0x26dd, 0xbe9: 0x2905, - 0xbea: 0x290f, 0xbeb: 0x2c2a, 0xbec: 0x2a51, 0xbed: 0x2b59, 0xbee: 0x2c3d, 0xbef: 0x2a5e, - 0xbf0: 0x2923, 0xbf1: 0x2919, 0xbf2: 0x2f53, 0xbf3: 0x2a6b, 0xbf4: 0x2c50, 0xbf5: 0x292d, - 0xbf6: 0x2b69, 0xbf7: 0x2937, 0xbf8: 0x2a85, 0xbf9: 0x2941, 0xbfa: 0x2a92, 0xbfb: 0x2f1d, - 0xbfc: 0x2a78, 0xbfd: 0x2b79, 0xbfe: 0x2a9f, 0xbff: 0x26e4, - // Block 0x30, offset 0xc00 - 0xc00: 0x2f2e, 0xc01: 0x294b, 0xc02: 0x2955, 0xc03: 0x2aac, 0xc04: 0x295f, 0xc05: 0x2969, - 0xc06: 0x2973, 0xc07: 0x2b89, 0xc08: 0x2ab9, 0xc09: 0x26eb, 0xc0a: 0x2c63, 0xc0b: 0x2ea7, - 0xc0c: 0x2b99, 0xc0d: 0x2ac6, 0xc0e: 0x2edc, 0xc0f: 0x297d, 0xc10: 0x2987, 0xc11: 0x2ad3, - 0xc12: 0x26f2, 0xc13: 0x2ae0, 0xc14: 0x2ba9, 0xc15: 0x26f9, 0xc16: 0x2c76, 0xc17: 0x2991, - 0xc18: 0x1cbd, 0xc19: 0x1cd1, 0xc1a: 0x1ce0, 0xc1b: 0x1cef, 0xc1c: 0x1cfe, 0xc1d: 0x1d0d, - 0xc1e: 0x1d1c, 0xc1f: 0x1d2b, 0xc20: 0x1d3a, 0xc21: 0x1d49, 0xc22: 0x2198, 0xc23: 0x21aa, - 0xc24: 0x21bc, 0xc25: 0x21c8, 0xc26: 0x21d4, 0xc27: 0x21e0, 0xc28: 0x21ec, 0xc29: 0x21f8, - 0xc2a: 0x2204, 0xc2b: 0x2210, 0xc2c: 0x224c, 0xc2d: 0x2258, 0xc2e: 0x2264, 0xc2f: 0x2270, - 0xc30: 0x227c, 0xc31: 0x1c1a, 0xc32: 0x19cc, 0xc33: 0x1939, 0xc34: 0x1bea, 0xc35: 0x1a4d, - 0xc36: 0x1a5c, 0xc37: 0x19d2, 0xc38: 0x1c02, 0xc39: 0x1c06, 0xc3a: 0x1963, 0xc3b: 0x270e, - 0xc3c: 0x271c, 0xc3d: 0x2707, 0xc3e: 0x2715, 0xc3f: 0x2aed, - // Block 0x31, offset 0xc40 - 0xc40: 0x1a50, 0xc41: 0x1a38, 0xc42: 0x1c66, 0xc43: 0x1a20, 0xc44: 0x19f9, 0xc45: 0x196c, - 0xc46: 0x197b, 0xc47: 0x194b, 0xc48: 0x1bf6, 0xc49: 0x1d58, 0xc4a: 0x1a53, 0xc4b: 0x1a3b, - 0xc4c: 0x1c6a, 0xc4d: 0x1c76, 0xc4e: 0x1a2c, 0xc4f: 0x1a02, 0xc50: 0x195a, 0xc51: 0x1c22, - 0xc52: 0x1bb6, 0xc53: 0x1ba2, 0xc54: 0x1bd2, 0xc55: 0x1c7a, 0xc56: 0x1a2f, 0xc57: 0x19cf, - 0xc58: 0x1a05, 0xc59: 0x19e4, 0xc5a: 0x1a47, 0xc5b: 0x1c7e, 0xc5c: 0x1a32, 0xc5d: 0x19c6, - 0xc5e: 0x1a08, 0xc5f: 0x1c42, 0xc60: 0x1bfa, 0xc61: 0x1a1a, 0xc62: 0x1c2a, 0xc63: 0x1c46, - 0xc64: 0x1bfe, 0xc65: 0x1a1d, 0xc66: 0x1c2e, 0xc67: 0x22ee, 0xc68: 0x2302, 0xc69: 0x199c, - 0xc6a: 0x1c26, 0xc6b: 0x1bba, 0xc6c: 0x1ba6, 0xc6d: 0x1c4e, 0xc6e: 0x2723, 0xc6f: 0x27ba, - 0xc70: 0x1a5f, 0xc71: 0x1a4a, 0xc72: 0x1c82, 0xc73: 0x1a35, 0xc74: 0x1a56, 0xc75: 0x1a3e, - 0xc76: 0x1c6e, 0xc77: 0x1a23, 0xc78: 0x19fc, 0xc79: 0x1987, 0xc7a: 0x1a59, 0xc7b: 0x1a41, - 0xc7c: 0x1c72, 0xc7d: 0x1a26, 0xc7e: 0x19ff, 0xc7f: 0x198a, - // Block 0x32, offset 0xc80 - 0xc80: 0x1c32, 0xc81: 0x1bbe, 0xc82: 0x1d53, 0xc83: 0x193c, 0xc84: 0x19c0, 0xc85: 0x19c3, - 0xc86: 0x22fb, 0xc87: 0x1b9a, 0xc88: 0x19c9, 0xc89: 0x194e, 0xc8a: 0x19e7, 0xc8b: 0x1951, - 0xc8c: 0x19f0, 0xc8d: 0x196f, 0xc8e: 0x1972, 0xc8f: 0x1a0b, 0xc90: 0x1a11, 0xc91: 0x1a14, - 0xc92: 0x1c36, 0xc93: 0x1a17, 0xc94: 0x1a29, 0xc95: 0x1c3e, 0xc96: 0x1c4a, 0xc97: 0x1996, - 0xc98: 0x1d5d, 0xc99: 0x1bc2, 0xc9a: 0x1999, 0xc9b: 0x1a62, 0xc9c: 0x19ab, 0xc9d: 0x19ba, - 0xc9e: 0x22e8, 0xc9f: 0x22e2, 0xca0: 0x1cc7, 0xca1: 0x1cd6, 0xca2: 0x1ce5, 0xca3: 0x1cf4, - 0xca4: 0x1d03, 0xca5: 0x1d12, 0xca6: 0x1d21, 0xca7: 0x1d30, 0xca8: 0x1d3f, 0xca9: 0x218c, - 0xcaa: 0x219e, 0xcab: 0x21b0, 0xcac: 0x21c2, 0xcad: 0x21ce, 0xcae: 0x21da, 0xcaf: 0x21e6, - 0xcb0: 0x21f2, 0xcb1: 0x21fe, 0xcb2: 0x220a, 0xcb3: 0x2246, 0xcb4: 0x2252, 0xcb5: 0x225e, - 0xcb6: 0x226a, 0xcb7: 0x2276, 0xcb8: 0x2282, 0xcb9: 0x2288, 0xcba: 0x228e, 0xcbb: 0x2294, - 0xcbc: 0x229a, 0xcbd: 0x22ac, 0xcbe: 0x22b2, 0xcbf: 0x1c16, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x137a, 0xcc1: 0x0cfe, 0xcc2: 0x13d6, 0xcc3: 0x13a2, 0xcc4: 0x0e5a, 0xcc5: 0x06ee, - 0xcc6: 0x08e2, 0xcc7: 0x162e, 0xcc8: 0x162e, 0xcc9: 0x0a0e, 0xcca: 0x1462, 0xccb: 0x0946, - 0xccc: 0x0a0a, 0xccd: 0x0bf2, 0xcce: 0x0fd2, 0xccf: 0x1162, 0xcd0: 0x129a, 0xcd1: 0x12d6, - 0xcd2: 0x130a, 0xcd3: 0x141e, 0xcd4: 0x0d76, 0xcd5: 0x0e02, 0xcd6: 0x0eae, 0xcd7: 0x0f46, - 0xcd8: 0x1262, 0xcd9: 0x144a, 0xcda: 0x1576, 0xcdb: 0x0712, 0xcdc: 0x08b6, 0xcdd: 0x0d8a, - 0xcde: 0x0ed2, 0xcdf: 0x1296, 0xce0: 0x15c6, 0xce1: 0x0ab6, 0xce2: 0x0e7a, 0xce3: 0x1286, - 0xce4: 0x131a, 0xce5: 0x0c26, 0xce6: 0x11be, 0xce7: 0x12e2, 0xce8: 0x0b22, 0xce9: 0x0d12, - 0xcea: 0x0e1a, 0xceb: 0x0f1e, 0xcec: 0x142a, 0xced: 0x0752, 0xcee: 0x07ea, 0xcef: 0x0856, - 0xcf0: 0x0c8e, 0xcf1: 0x0d82, 0xcf2: 0x0ece, 0xcf3: 0x0ff2, 0xcf4: 0x117a, 0xcf5: 0x128e, - 0xcf6: 0x12a6, 0xcf7: 0x13ca, 0xcf8: 0x14f2, 0xcf9: 0x15a6, 0xcfa: 0x15c2, 0xcfb: 0x102e, - 0xcfc: 0x106e, 0xcfd: 0x1126, 0xcfe: 0x1246, 0xcff: 0x147e, - // Block 0x34, offset 0xd00 - 0xd00: 0x15ce, 0xd01: 0x134e, 0xd02: 0x09ca, 0xd03: 0x0b3e, 0xd04: 0x10de, 0xd05: 0x119e, - 0xd06: 0x0f02, 0xd07: 0x1036, 0xd08: 0x139a, 0xd09: 0x14ea, 0xd0a: 0x09c6, 0xd0b: 0x0a92, - 0xd0c: 0x0d7a, 0xd0d: 0x0e2e, 0xd0e: 0x0e62, 0xd0f: 0x1116, 0xd10: 0x113e, 0xd11: 0x14aa, - 0xd12: 0x0852, 0xd13: 0x11aa, 0xd14: 0x07f6, 0xd15: 0x07f2, 0xd16: 0x109a, 0xd17: 0x112a, - 0xd18: 0x125e, 0xd19: 0x14b2, 0xd1a: 0x136a, 0xd1b: 0x0c2a, 0xd1c: 0x0d76, 0xd1d: 0x135a, - 0xd1e: 0x06fa, 0xd1f: 0x0a66, 0xd20: 0x0b96, 0xd21: 0x0f32, 0xd22: 0x0fb2, 0xd23: 0x0876, - 0xd24: 0x103e, 0xd25: 0x0762, 0xd26: 0x0b7a, 0xd27: 0x06da, 0xd28: 0x0dee, 0xd29: 0x0ca6, - 0xd2a: 0x1112, 0xd2b: 0x08ca, 0xd2c: 0x09b6, 0xd2d: 0x0ffe, 0xd2e: 0x1266, 0xd2f: 0x133e, - 0xd30: 0x0dba, 0xd31: 0x13fa, 0xd32: 0x0de6, 0xd33: 0x0c3a, 0xd34: 0x121e, 0xd35: 0x0c5a, - 0xd36: 0x0fae, 0xd37: 0x072e, 0xd38: 0x07aa, 0xd39: 0x07ee, 0xd3a: 0x0d56, 0xd3b: 0x10fe, - 0xd3c: 0x11f6, 0xd3d: 0x134a, 0xd3e: 0x145e, 0xd3f: 0x085e, - // Block 0x35, offset 0xd40 - 0xd40: 0x0912, 0xd41: 0x0a1a, 0xd42: 0x0b32, 0xd43: 0x0cc2, 0xd44: 0x0e7e, 0xd45: 0x1042, - 0xd46: 0x149a, 0xd47: 0x157e, 0xd48: 0x15d2, 0xd49: 0x15ea, 0xd4a: 0x083a, 0xd4b: 0x0cf6, - 0xd4c: 0x0da6, 0xd4d: 0x13ee, 0xd4e: 0x0afe, 0xd4f: 0x0bda, 0xd50: 0x0bf6, 0xd51: 0x0c86, - 0xd52: 0x0e6e, 0xd53: 0x0eba, 0xd54: 0x0f6a, 0xd55: 0x108e, 0xd56: 0x1132, 0xd57: 0x1196, - 0xd58: 0x13de, 0xd59: 0x126e, 0xd5a: 0x1406, 0xd5b: 0x1482, 0xd5c: 0x0812, 0xd5d: 0x083e, - 0xd5e: 0x0926, 0xd5f: 0x0eaa, 0xd60: 0x12f6, 0xd61: 0x133e, 0xd62: 0x0b1e, 0xd63: 0x0b8e, - 0xd64: 0x0c52, 0xd65: 0x0db2, 0xd66: 0x10da, 0xd67: 0x0f26, 0xd68: 0x073e, 0xd69: 0x0982, - 0xd6a: 0x0a66, 0xd6b: 0x0aca, 0xd6c: 0x0b9a, 0xd6d: 0x0f42, 0xd6e: 0x0f5e, 0xd6f: 0x116e, - 0xd70: 0x118e, 0xd71: 0x1466, 0xd72: 0x14e6, 0xd73: 0x14f6, 0xd74: 0x1532, 0xd75: 0x0756, - 0xd76: 0x1082, 0xd77: 0x1452, 0xd78: 0x14ce, 0xd79: 0x0bb2, 0xd7a: 0x071a, 0xd7b: 0x077a, - 0xd7c: 0x0a6a, 0xd7d: 0x0a8a, 0xd7e: 0x0cb2, 0xd7f: 0x0d76, - // Block 0x36, offset 0xd80 - 0xd80: 0x0ec6, 0xd81: 0x0fce, 0xd82: 0x127a, 0xd83: 0x141a, 0xd84: 0x1626, 0xd85: 0x0ce6, - 0xd86: 0x14a6, 0xd87: 0x0836, 0xd88: 0x0d32, 0xd89: 0x0d3e, 0xd8a: 0x0e12, 0xd8b: 0x0e4a, - 0xd8c: 0x0f4e, 0xd8d: 0x0faa, 0xd8e: 0x102a, 0xd8f: 0x110e, 0xd90: 0x153e, 0xd91: 0x07b2, - 0xd92: 0x0c06, 0xd93: 0x14b6, 0xd94: 0x076a, 0xd95: 0x0aae, 0xd96: 0x0e32, 0xd97: 0x13e2, - 0xd98: 0x0b6a, 0xd99: 0x0bba, 0xd9a: 0x0d46, 0xd9b: 0x0f32, 0xd9c: 0x14be, 0xd9d: 0x081a, - 0xd9e: 0x0902, 0xd9f: 0x0a9a, 0xda0: 0x0cd6, 0xda1: 0x0d22, 0xda2: 0x0d62, 0xda3: 0x0df6, - 0xda4: 0x0f4a, 0xda5: 0x0fbe, 0xda6: 0x115a, 0xda7: 0x12fa, 0xda8: 0x1306, 0xda9: 0x145a, - 0xdaa: 0x14da, 0xdab: 0x0886, 0xdac: 0x0e4e, 0xdad: 0x0906, 0xdae: 0x0eca, 0xdaf: 0x0f6e, - 0xdb0: 0x128a, 0xdb1: 0x14c2, 0xdb2: 0x15ae, 0xdb3: 0x15d6, 0xdb4: 0x0d3a, 0xdb5: 0x0e2a, - 0xdb6: 0x11c6, 0xdb7: 0x10ba, 0xdb8: 0x10c6, 0xdb9: 0x10ea, 0xdba: 0x0f1a, 0xdbb: 0x0ea2, - 0xdbc: 0x1366, 0xdbd: 0x0736, 0xdbe: 0x122e, 0xdbf: 0x081e, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x080e, 0xdc1: 0x0b0e, 0xdc2: 0x0c2e, 0xdc3: 0x10f6, 0xdc4: 0x0a56, 0xdc5: 0x0e06, - 0xdc6: 0x0cf2, 0xdc7: 0x13ea, 0xdc8: 0x12ea, 0xdc9: 0x14ae, 0xdca: 0x1326, 0xdcb: 0x0b2a, - 0xdcc: 0x078a, 0xdcd: 0x095e, 0xdd0: 0x09b2, - 0xdd2: 0x0ce2, 0xdd5: 0x07fa, 0xdd6: 0x0f22, 0xdd7: 0x0fe6, - 0xdd8: 0x104a, 0xdd9: 0x1066, 0xdda: 0x106a, 0xddb: 0x107e, 0xddc: 0x14fe, 0xddd: 0x10ee, - 0xdde: 0x1172, 0xde0: 0x1292, 0xde2: 0x1356, - 0xde5: 0x140a, 0xde6: 0x1436, - 0xdea: 0x1552, 0xdeb: 0x1556, 0xdec: 0x155a, 0xded: 0x15be, 0xdee: 0x142e, 0xdef: 0x14ca, - 0xdf0: 0x075a, 0xdf1: 0x077e, 0xdf2: 0x0792, 0xdf3: 0x084e, 0xdf4: 0x085a, 0xdf5: 0x089a, - 0xdf6: 0x094e, 0xdf7: 0x096a, 0xdf8: 0x0972, 0xdf9: 0x09ae, 0xdfa: 0x09ba, 0xdfb: 0x0a96, - 0xdfc: 0x0a9e, 0xdfd: 0x0ba6, 0xdfe: 0x0bce, 0xdff: 0x0bd6, - // Block 0x38, offset 0xe00 - 0xe00: 0x0bee, 0xe01: 0x0c9a, 0xe02: 0x0cca, 0xe03: 0x0cea, 0xe04: 0x0d5a, 0xe05: 0x0e1e, - 0xe06: 0x0e3a, 0xe07: 0x0e6a, 0xe08: 0x0ebe, 0xe09: 0x0ede, 0xe0a: 0x0f52, 0xe0b: 0x1032, - 0xe0c: 0x104e, 0xe0d: 0x1056, 0xe0e: 0x1052, 0xe0f: 0x105a, 0xe10: 0x105e, 0xe11: 0x1062, - 0xe12: 0x1076, 0xe13: 0x107a, 0xe14: 0x109e, 0xe15: 0x10b2, 0xe16: 0x10ce, 0xe17: 0x1132, - 0xe18: 0x113a, 0xe19: 0x1142, 0xe1a: 0x1156, 0xe1b: 0x117e, 0xe1c: 0x11ce, 0xe1d: 0x1202, - 0xe1e: 0x1202, 0xe1f: 0x126a, 0xe20: 0x1312, 0xe21: 0x132a, 0xe22: 0x135e, 0xe23: 0x1362, - 0xe24: 0x13a6, 0xe25: 0x13aa, 0xe26: 0x1402, 0xe27: 0x140a, 0xe28: 0x14de, 0xe29: 0x1522, - 0xe2a: 0x153a, 0xe2b: 0x0b9e, 0xe2c: 0x1721, 0xe2d: 0x11e6, - 0xe30: 0x06e2, 0xe31: 0x07e6, 0xe32: 0x07a6, 0xe33: 0x074e, 0xe34: 0x078e, 0xe35: 0x07ba, - 0xe36: 0x084a, 0xe37: 0x0866, 0xe38: 0x094e, 0xe39: 0x093a, 0xe3a: 0x094a, 0xe3b: 0x0966, - 0xe3c: 0x09b2, 0xe3d: 0x09c2, 0xe3e: 0x0a06, 0xe3f: 0x0a12, - // Block 0x39, offset 0xe40 - 0xe40: 0x0a2e, 0xe41: 0x0a3e, 0xe42: 0x0b26, 0xe43: 0x0b2e, 0xe44: 0x0b5e, 0xe45: 0x0b7e, - 0xe46: 0x0bae, 0xe47: 0x0bc6, 0xe48: 0x0bb6, 0xe49: 0x0bd6, 0xe4a: 0x0bca, 0xe4b: 0x0bee, - 0xe4c: 0x0c0a, 0xe4d: 0x0c62, 0xe4e: 0x0c6e, 0xe4f: 0x0c76, 0xe50: 0x0c9e, 0xe51: 0x0ce2, - 0xe52: 0x0d12, 0xe53: 0x0d16, 0xe54: 0x0d2a, 0xe55: 0x0daa, 0xe56: 0x0dba, 0xe57: 0x0e12, - 0xe58: 0x0e5e, 0xe59: 0x0e56, 0xe5a: 0x0e6a, 0xe5b: 0x0e86, 0xe5c: 0x0ebe, 0xe5d: 0x1016, - 0xe5e: 0x0ee2, 0xe5f: 0x0f16, 0xe60: 0x0f22, 0xe61: 0x0f62, 0xe62: 0x0f7e, 0xe63: 0x0fa2, - 0xe64: 0x0fc6, 0xe65: 0x0fca, 0xe66: 0x0fe6, 0xe67: 0x0fea, 0xe68: 0x0ffa, 0xe69: 0x100e, - 0xe6a: 0x100a, 0xe6b: 0x103a, 0xe6c: 0x10b6, 0xe6d: 0x10ce, 0xe6e: 0x10e6, 0xe6f: 0x111e, - 0xe70: 0x1132, 0xe71: 0x114e, 0xe72: 0x117e, 0xe73: 0x1232, 0xe74: 0x125a, 0xe75: 0x12ce, - 0xe76: 0x1316, 0xe77: 0x1322, 0xe78: 0x132a, 0xe79: 0x1342, 0xe7a: 0x1356, 0xe7b: 0x1346, - 0xe7c: 0x135e, 0xe7d: 0x135a, 0xe7e: 0x1352, 0xe7f: 0x1362, - // Block 0x3a, offset 0xe80 - 0xe80: 0x136e, 0xe81: 0x13aa, 0xe82: 0x13e6, 0xe83: 0x1416, 0xe84: 0x144e, 0xe85: 0x146e, - 0xe86: 0x14ba, 0xe87: 0x14de, 0xe88: 0x14fe, 0xe89: 0x1512, 0xe8a: 0x1522, 0xe8b: 0x152e, - 0xe8c: 0x153a, 0xe8d: 0x158e, 0xe8e: 0x162e, 0xe8f: 0x16b8, 0xe90: 0x16b3, 0xe91: 0x16e5, - 0xe92: 0x060a, 0xe93: 0x0632, 0xe94: 0x0636, 0xe95: 0x1767, 0xe96: 0x1794, 0xe97: 0x180c, - 0xe98: 0x161a, 0xe99: 0x162a, - // Block 0x3b, offset 0xec0 - 0xec0: 0x19db, 0xec1: 0x19de, 0xec2: 0x19e1, 0xec3: 0x1c0e, 0xec4: 0x1c12, 0xec5: 0x1a65, - 0xec6: 0x1a65, - 0xed3: 0x1d7b, 0xed4: 0x1d6c, 0xed5: 0x1d71, 0xed6: 0x1d80, 0xed7: 0x1d76, - 0xedd: 0x43a7, - 0xede: 0x8116, 0xedf: 0x4419, 0xee0: 0x0230, 0xee1: 0x0218, 0xee2: 0x0221, 0xee3: 0x0224, - 0xee4: 0x0227, 0xee5: 0x022a, 0xee6: 0x022d, 0xee7: 0x0233, 0xee8: 0x0236, 0xee9: 0x0017, - 0xeea: 0x4407, 0xeeb: 0x440d, 0xeec: 0x450b, 0xeed: 0x4513, 0xeee: 0x435f, 0xeef: 0x4365, - 0xef0: 0x436b, 0xef1: 0x4371, 0xef2: 0x437d, 0xef3: 0x4383, 0xef4: 0x4389, 0xef5: 0x4395, - 0xef6: 0x439b, 0xef8: 0x43a1, 0xef9: 0x43ad, 0xefa: 0x43b3, 0xefb: 0x43b9, - 0xefc: 0x43c5, 0xefe: 0x43cb, - // Block 0x3c, offset 0xf00 - 0xf00: 0x43d1, 0xf01: 0x43d7, 0xf03: 0x43dd, 0xf04: 0x43e3, - 0xf06: 0x43ef, 0xf07: 0x43f5, 0xf08: 0x43fb, 0xf09: 0x4401, 0xf0a: 0x4413, 0xf0b: 0x438f, - 0xf0c: 0x4377, 0xf0d: 0x43bf, 0xf0e: 0x43e9, 0xf0f: 0x1d85, 0xf10: 0x029c, 0xf11: 0x029c, - 0xf12: 0x02a5, 0xf13: 0x02a5, 0xf14: 0x02a5, 0xf15: 0x02a5, 0xf16: 0x02a8, 0xf17: 0x02a8, - 0xf18: 0x02a8, 0xf19: 0x02a8, 0xf1a: 0x02ae, 0xf1b: 0x02ae, 0xf1c: 0x02ae, 0xf1d: 0x02ae, - 0xf1e: 0x02a2, 0xf1f: 0x02a2, 0xf20: 0x02a2, 0xf21: 0x02a2, 0xf22: 0x02ab, 0xf23: 0x02ab, - 0xf24: 0x02ab, 0xf25: 0x02ab, 0xf26: 0x029f, 0xf27: 0x029f, 0xf28: 0x029f, 0xf29: 0x029f, - 0xf2a: 0x02d2, 0xf2b: 0x02d2, 0xf2c: 0x02d2, 0xf2d: 0x02d2, 0xf2e: 0x02d5, 0xf2f: 0x02d5, - 0xf30: 0x02d5, 0xf31: 0x02d5, 0xf32: 0x02b4, 0xf33: 0x02b4, 0xf34: 0x02b4, 0xf35: 0x02b4, - 0xf36: 0x02b1, 0xf37: 0x02b1, 0xf38: 0x02b1, 0xf39: 0x02b1, 0xf3a: 0x02b7, 0xf3b: 0x02b7, - 0xf3c: 0x02b7, 0xf3d: 0x02b7, 0xf3e: 0x02ba, 0xf3f: 0x02ba, - // Block 0x3d, offset 0xf40 - 0xf40: 0x02ba, 0xf41: 0x02ba, 0xf42: 0x02c3, 0xf43: 0x02c3, 0xf44: 0x02c0, 0xf45: 0x02c0, - 0xf46: 0x02c6, 0xf47: 0x02c6, 0xf48: 0x02bd, 0xf49: 0x02bd, 0xf4a: 0x02cc, 0xf4b: 0x02cc, - 0xf4c: 0x02c9, 0xf4d: 0x02c9, 0xf4e: 0x02d8, 0xf4f: 0x02d8, 0xf50: 0x02d8, 0xf51: 0x02d8, - 0xf52: 0x02de, 0xf53: 0x02de, 0xf54: 0x02de, 0xf55: 0x02de, 0xf56: 0x02e4, 0xf57: 0x02e4, - 0xf58: 0x02e4, 0xf59: 0x02e4, 0xf5a: 0x02e1, 0xf5b: 0x02e1, 0xf5c: 0x02e1, 0xf5d: 0x02e1, - 0xf5e: 0x02e7, 0xf5f: 0x02e7, 0xf60: 0x02ea, 0xf61: 0x02ea, 0xf62: 0x02ea, 0xf63: 0x02ea, - 0xf64: 0x4485, 0xf65: 0x4485, 0xf66: 0x02f0, 0xf67: 0x02f0, 0xf68: 0x02f0, 0xf69: 0x02f0, - 0xf6a: 0x02ed, 0xf6b: 0x02ed, 0xf6c: 0x02ed, 0xf6d: 0x02ed, 0xf6e: 0x030b, 0xf6f: 0x030b, - 0xf70: 0x447f, 0xf71: 0x447f, - // Block 0x3e, offset 0xf80 - 0xf93: 0x02db, 0xf94: 0x02db, 0xf95: 0x02db, 0xf96: 0x02db, 0xf97: 0x02f9, - 0xf98: 0x02f9, 0xf99: 0x02f6, 0xf9a: 0x02f6, 0xf9b: 0x02fc, 0xf9c: 0x02fc, 0xf9d: 0x2055, - 0xf9e: 0x0302, 0xf9f: 0x0302, 0xfa0: 0x02f3, 0xfa1: 0x02f3, 0xfa2: 0x02ff, 0xfa3: 0x02ff, - 0xfa4: 0x0308, 0xfa5: 0x0308, 0xfa6: 0x0308, 0xfa7: 0x0308, 0xfa8: 0x0290, 0xfa9: 0x0290, - 0xfaa: 0x25b0, 0xfab: 0x25b0, 0xfac: 0x2620, 0xfad: 0x2620, 0xfae: 0x25ef, 0xfaf: 0x25ef, - 0xfb0: 0x260b, 0xfb1: 0x260b, 0xfb2: 0x2604, 0xfb3: 0x2604, 0xfb4: 0x2612, 0xfb5: 0x2612, - 0xfb6: 0x2619, 0xfb7: 0x2619, 0xfb8: 0x2619, 0xfb9: 0x25f6, 0xfba: 0x25f6, 0xfbb: 0x25f6, - 0xfbc: 0x0305, 0xfbd: 0x0305, 0xfbe: 0x0305, 0xfbf: 0x0305, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x25b7, 0xfc1: 0x25be, 0xfc2: 0x25da, 0xfc3: 0x25f6, 0xfc4: 0x25fd, 0xfc5: 0x1d8f, - 0xfc6: 0x1d94, 0xfc7: 0x1d99, 0xfc8: 0x1da8, 0xfc9: 0x1db7, 0xfca: 0x1dbc, 0xfcb: 0x1dc1, - 0xfcc: 0x1dc6, 0xfcd: 0x1dcb, 0xfce: 0x1dda, 0xfcf: 0x1de9, 0xfd0: 0x1dee, 0xfd1: 0x1df3, - 0xfd2: 0x1e02, 0xfd3: 0x1e11, 0xfd4: 0x1e16, 0xfd5: 0x1e1b, 0xfd6: 0x1e20, 0xfd7: 0x1e2f, - 0xfd8: 0x1e34, 0xfd9: 0x1e43, 0xfda: 0x1e48, 0xfdb: 0x1e4d, 0xfdc: 0x1e5c, 0xfdd: 0x1e61, - 0xfde: 0x1e66, 0xfdf: 0x1e70, 0xfe0: 0x1eac, 0xfe1: 0x1ebb, 0xfe2: 0x1eca, 0xfe3: 0x1ecf, - 0xfe4: 0x1ed4, 0xfe5: 0x1ede, 0xfe6: 0x1eed, 0xfe7: 0x1ef2, 0xfe8: 0x1f01, 0xfe9: 0x1f06, - 0xfea: 0x1f0b, 0xfeb: 0x1f1a, 0xfec: 0x1f1f, 0xfed: 0x1f2e, 0xfee: 0x1f33, 0xfef: 0x1f38, - 0xff0: 0x1f3d, 0xff1: 0x1f42, 0xff2: 0x1f47, 0xff3: 0x1f4c, 0xff4: 0x1f51, 0xff5: 0x1f56, - 0xff6: 0x1f5b, 0xff7: 0x1f60, 0xff8: 0x1f65, 0xff9: 0x1f6a, 0xffa: 0x1f6f, 0xffb: 0x1f74, - 0xffc: 0x1f79, 0xffd: 0x1f7e, 0xffe: 0x1f83, 0xfff: 0x1f8d, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f92, 0x1001: 0x1f97, 0x1002: 0x1f9c, 0x1003: 0x1fa6, 0x1004: 0x1fab, 0x1005: 0x1fb5, - 0x1006: 0x1fba, 0x1007: 0x1fbf, 0x1008: 0x1fc4, 0x1009: 0x1fc9, 0x100a: 0x1fce, 0x100b: 0x1fd3, - 0x100c: 0x1fd8, 0x100d: 0x1fdd, 0x100e: 0x1fec, 0x100f: 0x1ffb, 0x1010: 0x2000, 0x1011: 0x2005, - 0x1012: 0x200a, 0x1013: 0x200f, 0x1014: 0x2014, 0x1015: 0x201e, 0x1016: 0x2023, 0x1017: 0x2028, - 0x1018: 0x2037, 0x1019: 0x2046, 0x101a: 0x204b, 0x101b: 0x4437, 0x101c: 0x443d, 0x101d: 0x4473, - 0x101e: 0x44ca, 0x101f: 0x44d1, 0x1020: 0x44d8, 0x1021: 0x44df, 0x1022: 0x44e6, 0x1023: 0x44ed, - 0x1024: 0x25cc, 0x1025: 0x25d3, 0x1026: 0x25da, 0x1027: 0x25e1, 0x1028: 0x25f6, 0x1029: 0x25fd, - 0x102a: 0x1d9e, 0x102b: 0x1da3, 0x102c: 0x1da8, 0x102d: 0x1dad, 0x102e: 0x1db7, 0x102f: 0x1dbc, - 0x1030: 0x1dd0, 0x1031: 0x1dd5, 0x1032: 0x1dda, 0x1033: 0x1ddf, 0x1034: 0x1de9, 0x1035: 0x1dee, - 0x1036: 0x1df8, 0x1037: 0x1dfd, 0x1038: 0x1e02, 0x1039: 0x1e07, 0x103a: 0x1e11, 0x103b: 0x1e16, - 0x103c: 0x1f42, 0x103d: 0x1f47, 0x103e: 0x1f56, 0x103f: 0x1f5b, - // Block 0x41, offset 0x1040 - 0x1040: 0x1f60, 0x1041: 0x1f74, 0x1042: 0x1f79, 0x1043: 0x1f7e, 0x1044: 0x1f83, 0x1045: 0x1f9c, - 0x1046: 0x1fa6, 0x1047: 0x1fab, 0x1048: 0x1fb0, 0x1049: 0x1fc4, 0x104a: 0x1fe2, 0x104b: 0x1fe7, - 0x104c: 0x1fec, 0x104d: 0x1ff1, 0x104e: 0x1ffb, 0x104f: 0x2000, 0x1050: 0x4473, 0x1051: 0x202d, - 0x1052: 0x2032, 0x1053: 0x2037, 0x1054: 0x203c, 0x1055: 0x2046, 0x1056: 0x204b, 0x1057: 0x25b7, - 0x1058: 0x25be, 0x1059: 0x25c5, 0x105a: 0x25da, 0x105b: 0x25e8, 0x105c: 0x1d8f, 0x105d: 0x1d94, - 0x105e: 0x1d99, 0x105f: 0x1da8, 0x1060: 0x1db2, 0x1061: 0x1dc1, 0x1062: 0x1dc6, 0x1063: 0x1dcb, - 0x1064: 0x1dda, 0x1065: 0x1de4, 0x1066: 0x1e02, 0x1067: 0x1e1b, 0x1068: 0x1e20, 0x1069: 0x1e2f, - 0x106a: 0x1e34, 0x106b: 0x1e43, 0x106c: 0x1e4d, 0x106d: 0x1e5c, 0x106e: 0x1e61, 0x106f: 0x1e66, - 0x1070: 0x1e70, 0x1071: 0x1eac, 0x1072: 0x1eb1, 0x1073: 0x1ebb, 0x1074: 0x1eca, 0x1075: 0x1ecf, - 0x1076: 0x1ed4, 0x1077: 0x1ede, 0x1078: 0x1eed, 0x1079: 0x1f01, 0x107a: 0x1f06, 0x107b: 0x1f0b, - 0x107c: 0x1f1a, 0x107d: 0x1f1f, 0x107e: 0x1f2e, 0x107f: 0x1f33, - // Block 0x42, offset 0x1080 - 0x1080: 0x1f38, 0x1081: 0x1f3d, 0x1082: 0x1f4c, 0x1083: 0x1f51, 0x1084: 0x1f65, 0x1085: 0x1f6a, - 0x1086: 0x1f6f, 0x1087: 0x1f74, 0x1088: 0x1f79, 0x1089: 0x1f8d, 0x108a: 0x1f92, 0x108b: 0x1f97, - 0x108c: 0x1f9c, 0x108d: 0x1fa1, 0x108e: 0x1fb5, 0x108f: 0x1fba, 0x1090: 0x1fbf, 0x1091: 0x1fc4, - 0x1092: 0x1fd3, 0x1093: 0x1fd8, 0x1094: 0x1fdd, 0x1095: 0x1fec, 0x1096: 0x1ff6, 0x1097: 0x2005, - 0x1098: 0x200a, 0x1099: 0x4467, 0x109a: 0x201e, 0x109b: 0x2023, 0x109c: 0x2028, 0x109d: 0x2037, - 0x109e: 0x2041, 0x109f: 0x25da, 0x10a0: 0x25e8, 0x10a1: 0x1da8, 0x10a2: 0x1db2, 0x10a3: 0x1dda, - 0x10a4: 0x1de4, 0x10a5: 0x1e02, 0x10a6: 0x1e0c, 0x10a7: 0x1e70, 0x10a8: 0x1e75, 0x10a9: 0x1e98, - 0x10aa: 0x1e9d, 0x10ab: 0x1f74, 0x10ac: 0x1f79, 0x10ad: 0x1f9c, 0x10ae: 0x1fec, 0x10af: 0x1ff6, - 0x10b0: 0x2037, 0x10b1: 0x2041, 0x10b2: 0x451b, 0x10b3: 0x4523, 0x10b4: 0x452b, 0x10b5: 0x1ef7, - 0x10b6: 0x1efc, 0x10b7: 0x1f10, 0x10b8: 0x1f15, 0x10b9: 0x1f24, 0x10ba: 0x1f29, 0x10bb: 0x1e7a, - 0x10bc: 0x1e7f, 0x10bd: 0x1ea2, 0x10be: 0x1ea7, 0x10bf: 0x1e39, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x1e3e, 0x10c1: 0x1e25, 0x10c2: 0x1e2a, 0x10c3: 0x1e52, 0x10c4: 0x1e57, 0x10c5: 0x1ec0, - 0x10c6: 0x1ec5, 0x10c7: 0x1ee3, 0x10c8: 0x1ee8, 0x10c9: 0x1e84, 0x10ca: 0x1e89, 0x10cb: 0x1e8e, - 0x10cc: 0x1e98, 0x10cd: 0x1e93, 0x10ce: 0x1e6b, 0x10cf: 0x1eb6, 0x10d0: 0x1ed9, 0x10d1: 0x1ef7, - 0x10d2: 0x1efc, 0x10d3: 0x1f10, 0x10d4: 0x1f15, 0x10d5: 0x1f24, 0x10d6: 0x1f29, 0x10d7: 0x1e7a, - 0x10d8: 0x1e7f, 0x10d9: 0x1ea2, 0x10da: 0x1ea7, 0x10db: 0x1e39, 0x10dc: 0x1e3e, 0x10dd: 0x1e25, - 0x10de: 0x1e2a, 0x10df: 0x1e52, 0x10e0: 0x1e57, 0x10e1: 0x1ec0, 0x10e2: 0x1ec5, 0x10e3: 0x1ee3, - 0x10e4: 0x1ee8, 0x10e5: 0x1e84, 0x10e6: 0x1e89, 0x10e7: 0x1e8e, 0x10e8: 0x1e98, 0x10e9: 0x1e93, - 0x10ea: 0x1e6b, 0x10eb: 0x1eb6, 0x10ec: 0x1ed9, 0x10ed: 0x1e84, 0x10ee: 0x1e89, 0x10ef: 0x1e8e, - 0x10f0: 0x1e98, 0x10f1: 0x1e75, 0x10f2: 0x1e9d, 0x10f3: 0x1ef2, 0x10f4: 0x1e5c, 0x10f5: 0x1e61, - 0x10f6: 0x1e66, 0x10f7: 0x1e84, 0x10f8: 0x1e89, 0x10f9: 0x1e8e, 0x10fa: 0x1ef2, 0x10fb: 0x1f01, - 0x10fc: 0x441f, 0x10fd: 0x441f, - // Block 0x44, offset 0x1100 - 0x1110: 0x2317, 0x1111: 0x232c, - 0x1112: 0x232c, 0x1113: 0x2333, 0x1114: 0x233a, 0x1115: 0x234f, 0x1116: 0x2356, 0x1117: 0x235d, - 0x1118: 0x2380, 0x1119: 0x2380, 0x111a: 0x23a3, 0x111b: 0x239c, 0x111c: 0x23b8, 0x111d: 0x23aa, - 0x111e: 0x23b1, 0x111f: 0x23d4, 0x1120: 0x23d4, 0x1121: 0x23cd, 0x1122: 0x23db, 0x1123: 0x23db, - 0x1124: 0x2405, 0x1125: 0x2405, 0x1126: 0x2421, 0x1127: 0x23e9, 0x1128: 0x23e9, 0x1129: 0x23e2, - 0x112a: 0x23f7, 0x112b: 0x23f7, 0x112c: 0x23fe, 0x112d: 0x23fe, 0x112e: 0x2428, 0x112f: 0x2436, - 0x1130: 0x2436, 0x1131: 0x243d, 0x1132: 0x243d, 0x1133: 0x2444, 0x1134: 0x244b, 0x1135: 0x2452, - 0x1136: 0x2459, 0x1137: 0x2459, 0x1138: 0x2460, 0x1139: 0x246e, 0x113a: 0x247c, 0x113b: 0x2475, - 0x113c: 0x2483, 0x113d: 0x2483, 0x113e: 0x2498, 0x113f: 0x249f, - // Block 0x45, offset 0x1140 - 0x1140: 0x24d0, 0x1141: 0x24de, 0x1142: 0x24d7, 0x1143: 0x24bb, 0x1144: 0x24bb, 0x1145: 0x24e5, - 0x1146: 0x24e5, 0x1147: 0x24ec, 0x1148: 0x24ec, 0x1149: 0x2516, 0x114a: 0x251d, 0x114b: 0x2524, - 0x114c: 0x24fa, 0x114d: 0x2508, 0x114e: 0x252b, 0x114f: 0x2532, - 0x1152: 0x2501, 0x1153: 0x2586, 0x1154: 0x258d, 0x1155: 0x2563, 0x1156: 0x256a, 0x1157: 0x254e, - 0x1158: 0x254e, 0x1159: 0x2555, 0x115a: 0x257f, 0x115b: 0x2578, 0x115c: 0x25a2, 0x115d: 0x25a2, - 0x115e: 0x2310, 0x115f: 0x2325, 0x1160: 0x231e, 0x1161: 0x2348, 0x1162: 0x2341, 0x1163: 0x236b, - 0x1164: 0x2364, 0x1165: 0x238e, 0x1166: 0x2372, 0x1167: 0x2387, 0x1168: 0x23bf, 0x1169: 0x240c, - 0x116a: 0x23f0, 0x116b: 0x242f, 0x116c: 0x24c9, 0x116d: 0x24f3, 0x116e: 0x259b, 0x116f: 0x2594, - 0x1170: 0x25a9, 0x1171: 0x2540, 0x1172: 0x24a6, 0x1173: 0x2571, 0x1174: 0x2498, 0x1175: 0x24d0, - 0x1176: 0x2467, 0x1177: 0x24b4, 0x1178: 0x2547, 0x1179: 0x2539, 0x117a: 0x24c2, 0x117b: 0x24ad, - 0x117c: 0x24c2, 0x117d: 0x2547, 0x117e: 0x2379, 0x117f: 0x2395, - // Block 0x46, offset 0x1180 - 0x1180: 0x250f, 0x1181: 0x248a, 0x1182: 0x2309, 0x1183: 0x24ad, 0x1184: 0x2452, 0x1185: 0x2421, - 0x1186: 0x23c6, 0x1187: 0x255c, - 0x11b0: 0x241a, 0x11b1: 0x2491, 0x11b2: 0x27cc, 0x11b3: 0x27c3, 0x11b4: 0x27f9, 0x11b5: 0x27e7, - 0x11b6: 0x27d5, 0x11b7: 0x27f0, 0x11b8: 0x2802, 0x11b9: 0x2413, 0x11ba: 0x2c89, 0x11bb: 0x2b09, - 0x11bc: 0x27de, - // Block 0x47, offset 0x11c0 - 0x11d0: 0x0019, 0x11d1: 0x0486, - 0x11d2: 0x048a, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04c2, - 0x11d8: 0x04c6, 0x11d9: 0x1b62, - 0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133, - 0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e, - 0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133, - 0x11f0: 0x1876, 0x11f1: 0x0446, 0x11f2: 0x0442, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, - 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04ba, 0x11fa: 0x04be, 0x11fb: 0x04ae, - 0x11fc: 0x04b2, 0x11fd: 0x0496, 0x11fe: 0x049a, 0x11ff: 0x048e, - // Block 0x48, offset 0x1200 - 0x1200: 0x0492, 0x1201: 0x049e, 0x1202: 0x04a2, 0x1203: 0x04a6, 0x1204: 0x04aa, - 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4280, 0x120a: 0x4280, 0x120b: 0x4280, - 0x120c: 0x4280, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0486, - 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, - 0x1218: 0x0446, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04ba, - 0x121e: 0x04be, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, - 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, - 0x122a: 0x000b, 0x122b: 0x0041, - 0x1230: 0x42c1, 0x1231: 0x4443, 0x1232: 0x42c6, 0x1234: 0x42cb, - 0x1236: 0x42d0, 0x1237: 0x4449, 0x1238: 0x42d5, 0x1239: 0x444f, 0x123a: 0x42da, 0x123b: 0x4455, - 0x123c: 0x42df, 0x123d: 0x445b, 0x123e: 0x42e4, 0x123f: 0x4461, - // Block 0x49, offset 0x1240 - 0x1240: 0x0239, 0x1241: 0x4425, 0x1242: 0x4425, 0x1243: 0x442b, 0x1244: 0x442b, 0x1245: 0x446d, - 0x1246: 0x446d, 0x1247: 0x4431, 0x1248: 0x4431, 0x1249: 0x4479, 0x124a: 0x4479, 0x124b: 0x4479, - 0x124c: 0x4479, 0x124d: 0x023c, 0x124e: 0x023c, 0x124f: 0x023f, 0x1250: 0x023f, 0x1251: 0x023f, - 0x1252: 0x023f, 0x1253: 0x0242, 0x1254: 0x0242, 0x1255: 0x0245, 0x1256: 0x0245, 0x1257: 0x0245, - 0x1258: 0x0245, 0x1259: 0x0248, 0x125a: 0x0248, 0x125b: 0x0248, 0x125c: 0x0248, 0x125d: 0x024b, - 0x125e: 0x024b, 0x125f: 0x024b, 0x1260: 0x024b, 0x1261: 0x024e, 0x1262: 0x024e, 0x1263: 0x024e, - 0x1264: 0x024e, 0x1265: 0x0251, 0x1266: 0x0251, 0x1267: 0x0251, 0x1268: 0x0251, 0x1269: 0x0254, - 0x126a: 0x0254, 0x126b: 0x0257, 0x126c: 0x0257, 0x126d: 0x025a, 0x126e: 0x025a, 0x126f: 0x025d, - 0x1270: 0x025d, 0x1271: 0x0260, 0x1272: 0x0260, 0x1273: 0x0260, 0x1274: 0x0260, 0x1275: 0x0263, - 0x1276: 0x0263, 0x1277: 0x0263, 0x1278: 0x0263, 0x1279: 0x0266, 0x127a: 0x0266, 0x127b: 0x0266, - 0x127c: 0x0266, 0x127d: 0x0269, 0x127e: 0x0269, 0x127f: 0x0269, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0269, 0x1281: 0x026c, 0x1282: 0x026c, 0x1283: 0x026c, 0x1284: 0x026c, 0x1285: 0x026f, - 0x1286: 0x026f, 0x1287: 0x026f, 0x1288: 0x026f, 0x1289: 0x0272, 0x128a: 0x0272, 0x128b: 0x0272, - 0x128c: 0x0272, 0x128d: 0x0275, 0x128e: 0x0275, 0x128f: 0x0275, 0x1290: 0x0275, 0x1291: 0x0278, - 0x1292: 0x0278, 0x1293: 0x0278, 0x1294: 0x0278, 0x1295: 0x027b, 0x1296: 0x027b, 0x1297: 0x027b, - 0x1298: 0x027b, 0x1299: 0x027e, 0x129a: 0x027e, 0x129b: 0x027e, 0x129c: 0x027e, 0x129d: 0x0281, - 0x129e: 0x0281, 0x129f: 0x0281, 0x12a0: 0x0281, 0x12a1: 0x0284, 0x12a2: 0x0284, 0x12a3: 0x0284, - 0x12a4: 0x0284, 0x12a5: 0x0287, 0x12a6: 0x0287, 0x12a7: 0x0287, 0x12a8: 0x0287, 0x12a9: 0x028a, - 0x12aa: 0x028a, 0x12ab: 0x028a, 0x12ac: 0x028a, 0x12ad: 0x028d, 0x12ae: 0x028d, 0x12af: 0x0290, - 0x12b0: 0x0290, 0x12b1: 0x0293, 0x12b2: 0x0293, 0x12b3: 0x0293, 0x12b4: 0x0293, 0x12b5: 0x2e17, - 0x12b6: 0x2e17, 0x12b7: 0x2e1f, 0x12b8: 0x2e1f, 0x12b9: 0x2e27, 0x12ba: 0x2e27, 0x12bb: 0x1f88, - 0x12bc: 0x1f88, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, - 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, - 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, - 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, - 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, - 0x12de: 0x00bd, 0x12df: 0x047a, 0x12e0: 0x047e, 0x12e1: 0x048a, 0x12e2: 0x049e, 0x12e3: 0x04a2, - 0x12e4: 0x0486, 0x12e5: 0x05ae, 0x12e6: 0x05a6, 0x12e7: 0x04ca, 0x12e8: 0x04d2, 0x12e9: 0x04da, - 0x12ea: 0x04e2, 0x12eb: 0x04ea, 0x12ec: 0x056e, 0x12ed: 0x0576, 0x12ee: 0x057e, 0x12ef: 0x0522, - 0x12f0: 0x05b2, 0x12f1: 0x04ce, 0x12f2: 0x04d6, 0x12f3: 0x04de, 0x12f4: 0x04e6, 0x12f5: 0x04ee, - 0x12f6: 0x04f2, 0x12f7: 0x04f6, 0x12f8: 0x04fa, 0x12f9: 0x04fe, 0x12fa: 0x0502, 0x12fb: 0x0506, - 0x12fc: 0x050a, 0x12fd: 0x050e, 0x12fe: 0x0512, 0x12ff: 0x0516, - // Block 0x4c, offset 0x1300 - 0x1300: 0x051a, 0x1301: 0x051e, 0x1302: 0x0526, 0x1303: 0x052a, 0x1304: 0x052e, 0x1305: 0x0532, - 0x1306: 0x0536, 0x1307: 0x053a, 0x1308: 0x053e, 0x1309: 0x0542, 0x130a: 0x0546, 0x130b: 0x054a, - 0x130c: 0x054e, 0x130d: 0x0552, 0x130e: 0x0556, 0x130f: 0x055a, 0x1310: 0x055e, 0x1311: 0x0562, - 0x1312: 0x0566, 0x1313: 0x056a, 0x1314: 0x0572, 0x1315: 0x057a, 0x1316: 0x0582, 0x1317: 0x0586, - 0x1318: 0x058a, 0x1319: 0x058e, 0x131a: 0x0592, 0x131b: 0x0596, 0x131c: 0x059a, 0x131d: 0x05aa, - 0x131e: 0x4a8f, 0x131f: 0x4a95, 0x1320: 0x03c6, 0x1321: 0x0316, 0x1322: 0x031a, 0x1323: 0x4a52, - 0x1324: 0x031e, 0x1325: 0x4a58, 0x1326: 0x4a5e, 0x1327: 0x0322, 0x1328: 0x0326, 0x1329: 0x032a, - 0x132a: 0x4a64, 0x132b: 0x4a6a, 0x132c: 0x4a70, 0x132d: 0x4a76, 0x132e: 0x4a7c, 0x132f: 0x4a82, - 0x1330: 0x036a, 0x1331: 0x032e, 0x1332: 0x0332, 0x1333: 0x0336, 0x1334: 0x037e, 0x1335: 0x033a, - 0x1336: 0x033e, 0x1337: 0x0342, 0x1338: 0x0346, 0x1339: 0x034a, 0x133a: 0x034e, 0x133b: 0x0352, - 0x133c: 0x0356, 0x133d: 0x035a, 0x133e: 0x035e, - // Block 0x4d, offset 0x1340 - 0x1342: 0x49d4, 0x1343: 0x49da, 0x1344: 0x49e0, 0x1345: 0x49e6, - 0x1346: 0x49ec, 0x1347: 0x49f2, 0x134a: 0x49f8, 0x134b: 0x49fe, - 0x134c: 0x4a04, 0x134d: 0x4a0a, 0x134e: 0x4a10, 0x134f: 0x4a16, - 0x1352: 0x4a1c, 0x1353: 0x4a22, 0x1354: 0x4a28, 0x1355: 0x4a2e, 0x1356: 0x4a34, 0x1357: 0x4a3a, - 0x135a: 0x4a40, 0x135b: 0x4a46, 0x135c: 0x4a4c, - 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x427b, - 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x044a, 0x1368: 0x046e, 0x1369: 0x044e, - 0x136a: 0x0452, 0x136b: 0x0456, 0x136c: 0x045a, 0x136d: 0x0472, 0x136e: 0x0476, - // Block 0x4e, offset 0x1380 - 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, - 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, - 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, - 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, - 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, - 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, - 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0176, 0x13a9: 0x0179, - 0x13aa: 0x017c, 0x13ab: 0x017f, 0x13ac: 0x0182, 0x13ad: 0x0185, 0x13ae: 0x0188, 0x13af: 0x018b, - 0x13b0: 0x018e, 0x13b1: 0x0191, 0x13b2: 0x0194, 0x13b3: 0x0197, 0x13b4: 0x019a, 0x13b5: 0x019d, - 0x13b6: 0x01a0, 0x13b7: 0x01a3, 0x13b8: 0x01a6, 0x13b9: 0x018b, 0x13ba: 0x01a9, 0x13bb: 0x01ac, - 0x13bc: 0x01af, 0x13bd: 0x01b2, 0x13be: 0x01b5, 0x13bf: 0x01b8, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x0200, 0x13c1: 0x0203, 0x13c2: 0x0206, 0x13c3: 0x045e, 0x13c4: 0x01ca, 0x13c5: 0x01d3, - 0x13c6: 0x01d9, 0x13c7: 0x01fd, 0x13c8: 0x01ee, 0x13c9: 0x01eb, 0x13ca: 0x0209, 0x13cb: 0x020c, - 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, - 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, - 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, - 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, - 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, - 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, - 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, - 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, - 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, - // Block 0x50, offset 0x1400 - 0x1400: 0x023c, 0x1401: 0x023f, 0x1402: 0x024b, 0x1403: 0x0254, 0x1405: 0x028d, - 0x1406: 0x025d, 0x1407: 0x024e, 0x1408: 0x026c, 0x1409: 0x0293, 0x140a: 0x027e, 0x140b: 0x0281, - 0x140c: 0x0284, 0x140d: 0x0287, 0x140e: 0x0260, 0x140f: 0x0272, 0x1410: 0x0278, 0x1411: 0x0266, - 0x1412: 0x027b, 0x1413: 0x025a, 0x1414: 0x0263, 0x1415: 0x0245, 0x1416: 0x0248, 0x1417: 0x0251, - 0x1418: 0x0257, 0x1419: 0x0269, 0x141a: 0x026f, 0x141b: 0x0275, 0x141c: 0x0296, 0x141d: 0x02e7, - 0x141e: 0x02cf, 0x141f: 0x0299, 0x1421: 0x023f, 0x1422: 0x024b, - 0x1424: 0x028a, 0x1427: 0x024e, 0x1429: 0x0293, - 0x142a: 0x027e, 0x142b: 0x0281, 0x142c: 0x0284, 0x142d: 0x0287, 0x142e: 0x0260, 0x142f: 0x0272, - 0x1430: 0x0278, 0x1431: 0x0266, 0x1432: 0x027b, 0x1434: 0x0263, 0x1435: 0x0245, - 0x1436: 0x0248, 0x1437: 0x0251, 0x1439: 0x0269, 0x143b: 0x0275, - // Block 0x51, offset 0x1440 - 0x1442: 0x024b, - 0x1447: 0x024e, 0x1449: 0x0293, 0x144b: 0x0281, - 0x144d: 0x0287, 0x144e: 0x0260, 0x144f: 0x0272, 0x1451: 0x0266, - 0x1452: 0x027b, 0x1454: 0x0263, 0x1457: 0x0251, - 0x1459: 0x0269, 0x145b: 0x0275, 0x145d: 0x02e7, - 0x145f: 0x0299, 0x1461: 0x023f, 0x1462: 0x024b, - 0x1464: 0x028a, 0x1467: 0x024e, 0x1468: 0x026c, 0x1469: 0x0293, - 0x146a: 0x027e, 0x146c: 0x0284, 0x146d: 0x0287, 0x146e: 0x0260, 0x146f: 0x0272, - 0x1470: 0x0278, 0x1471: 0x0266, 0x1472: 0x027b, 0x1474: 0x0263, 0x1475: 0x0245, - 0x1476: 0x0248, 0x1477: 0x0251, 0x1479: 0x0269, 0x147a: 0x026f, 0x147b: 0x0275, - 0x147c: 0x0296, 0x147e: 0x02cf, - // Block 0x52, offset 0x1480 - 0x1480: 0x023c, 0x1481: 0x023f, 0x1482: 0x024b, 0x1483: 0x0254, 0x1484: 0x028a, 0x1485: 0x028d, - 0x1486: 0x025d, 0x1487: 0x024e, 0x1488: 0x026c, 0x1489: 0x0293, 0x148b: 0x0281, - 0x148c: 0x0284, 0x148d: 0x0287, 0x148e: 0x0260, 0x148f: 0x0272, 0x1490: 0x0278, 0x1491: 0x0266, - 0x1492: 0x027b, 0x1493: 0x025a, 0x1494: 0x0263, 0x1495: 0x0245, 0x1496: 0x0248, 0x1497: 0x0251, - 0x1498: 0x0257, 0x1499: 0x0269, 0x149a: 0x026f, 0x149b: 0x0275, - 0x14a1: 0x023f, 0x14a2: 0x024b, 0x14a3: 0x0254, - 0x14a5: 0x028d, 0x14a6: 0x025d, 0x14a7: 0x024e, 0x14a8: 0x026c, 0x14a9: 0x0293, - 0x14ab: 0x0281, 0x14ac: 0x0284, 0x14ad: 0x0287, 0x14ae: 0x0260, 0x14af: 0x0272, - 0x14b0: 0x0278, 0x14b1: 0x0266, 0x14b2: 0x027b, 0x14b3: 0x025a, 0x14b4: 0x0263, 0x14b5: 0x0245, - 0x14b6: 0x0248, 0x14b7: 0x0251, 0x14b8: 0x0257, 0x14b9: 0x0269, 0x14ba: 0x026f, 0x14bb: 0x0275, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x187c, 0x14c1: 0x1879, 0x14c2: 0x187f, 0x14c3: 0x18a3, 0x14c4: 0x18c7, 0x14c5: 0x18eb, - 0x14c6: 0x190f, 0x14c7: 0x1918, 0x14c8: 0x191e, 0x14c9: 0x1924, 0x14ca: 0x192a, - 0x14d0: 0x1a92, 0x14d1: 0x1a96, - 0x14d2: 0x1a9a, 0x14d3: 0x1a9e, 0x14d4: 0x1aa2, 0x14d5: 0x1aa6, 0x14d6: 0x1aaa, 0x14d7: 0x1aae, - 0x14d8: 0x1ab2, 0x14d9: 0x1ab6, 0x14da: 0x1aba, 0x14db: 0x1abe, 0x14dc: 0x1ac2, 0x14dd: 0x1ac6, - 0x14de: 0x1aca, 0x14df: 0x1ace, 0x14e0: 0x1ad2, 0x14e1: 0x1ad6, 0x14e2: 0x1ada, 0x14e3: 0x1ade, - 0x14e4: 0x1ae2, 0x14e5: 0x1ae6, 0x14e6: 0x1aea, 0x14e7: 0x1aee, 0x14e8: 0x1af2, 0x14e9: 0x1af6, - 0x14ea: 0x272b, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193f, 0x14ee: 0x19b7, - 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, - 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, - 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, - // Block 0x54, offset 0x1500 - 0x1500: 0x26b3, 0x1501: 0x26c8, 0x1502: 0x0506, - 0x1510: 0x0c12, 0x1511: 0x0a4a, - 0x1512: 0x08d6, 0x1513: 0x45db, 0x1514: 0x071e, 0x1515: 0x09f2, 0x1516: 0x1332, 0x1517: 0x0a02, - 0x1518: 0x072a, 0x1519: 0x0cda, 0x151a: 0x0eb2, 0x151b: 0x0cb2, 0x151c: 0x082a, 0x151d: 0x0b6e, - 0x151e: 0x07c2, 0x151f: 0x0cba, 0x1520: 0x0816, 0x1521: 0x111a, 0x1522: 0x0f86, 0x1523: 0x138e, - 0x1524: 0x09d6, 0x1525: 0x090e, 0x1526: 0x0e66, 0x1527: 0x0c1e, 0x1528: 0x0c4a, 0x1529: 0x06c2, - 0x152a: 0x06ce, 0x152b: 0x140e, 0x152c: 0x0ade, 0x152d: 0x06ea, 0x152e: 0x08f2, 0x152f: 0x0c3e, - 0x1530: 0x13b6, 0x1531: 0x0c16, 0x1532: 0x1072, 0x1533: 0x10ae, 0x1534: 0x08fa, 0x1535: 0x0e46, - 0x1536: 0x0d0e, 0x1537: 0x0d0a, 0x1538: 0x0f9a, 0x1539: 0x082e, 0x153a: 0x095a, 0x153b: 0x1446, - // Block 0x55, offset 0x1540 - 0x1540: 0x06fe, 0x1541: 0x06f6, 0x1542: 0x0706, 0x1543: 0x164a, 0x1544: 0x074a, 0x1545: 0x075a, - 0x1546: 0x075e, 0x1547: 0x0766, 0x1548: 0x076e, 0x1549: 0x0772, 0x154a: 0x077e, 0x154b: 0x0776, - 0x154c: 0x05b6, 0x154d: 0x165e, 0x154e: 0x0792, 0x154f: 0x0796, 0x1550: 0x079a, 0x1551: 0x07b6, - 0x1552: 0x164f, 0x1553: 0x05ba, 0x1554: 0x07a2, 0x1555: 0x07c2, 0x1556: 0x1659, 0x1557: 0x07d2, - 0x1558: 0x07da, 0x1559: 0x073a, 0x155a: 0x07e2, 0x155b: 0x07e6, 0x155c: 0x1834, 0x155d: 0x0802, - 0x155e: 0x080a, 0x155f: 0x05c2, 0x1560: 0x0822, 0x1561: 0x0826, 0x1562: 0x082e, 0x1563: 0x0832, - 0x1564: 0x05c6, 0x1565: 0x084a, 0x1566: 0x084e, 0x1567: 0x085a, 0x1568: 0x0866, 0x1569: 0x086a, - 0x156a: 0x086e, 0x156b: 0x0876, 0x156c: 0x0896, 0x156d: 0x089a, 0x156e: 0x08a2, 0x156f: 0x08b2, - 0x1570: 0x08ba, 0x1571: 0x08be, 0x1572: 0x08be, 0x1573: 0x08be, 0x1574: 0x166d, 0x1575: 0x0e96, - 0x1576: 0x08d2, 0x1577: 0x08da, 0x1578: 0x1672, 0x1579: 0x08e6, 0x157a: 0x08ee, 0x157b: 0x08f6, - 0x157c: 0x091e, 0x157d: 0x090a, 0x157e: 0x0916, 0x157f: 0x091a, - // Block 0x56, offset 0x1580 - 0x1580: 0x0922, 0x1581: 0x092a, 0x1582: 0x092e, 0x1583: 0x0936, 0x1584: 0x093e, 0x1585: 0x0942, - 0x1586: 0x0942, 0x1587: 0x094a, 0x1588: 0x0952, 0x1589: 0x0956, 0x158a: 0x0962, 0x158b: 0x0986, - 0x158c: 0x096a, 0x158d: 0x098a, 0x158e: 0x096e, 0x158f: 0x0976, 0x1590: 0x080e, 0x1591: 0x09d2, - 0x1592: 0x099a, 0x1593: 0x099e, 0x1594: 0x09a2, 0x1595: 0x0996, 0x1596: 0x09aa, 0x1597: 0x09a6, - 0x1598: 0x09be, 0x1599: 0x1677, 0x159a: 0x09da, 0x159b: 0x09de, 0x159c: 0x09e6, 0x159d: 0x09f2, - 0x159e: 0x09fa, 0x159f: 0x0a16, 0x15a0: 0x167c, 0x15a1: 0x1681, 0x15a2: 0x0a22, 0x15a3: 0x0a26, - 0x15a4: 0x0a2a, 0x15a5: 0x0a1e, 0x15a6: 0x0a32, 0x15a7: 0x05ca, 0x15a8: 0x05ce, 0x15a9: 0x0a3a, - 0x15aa: 0x0a42, 0x15ab: 0x0a42, 0x15ac: 0x1686, 0x15ad: 0x0a5e, 0x15ae: 0x0a62, 0x15af: 0x0a66, - 0x15b0: 0x0a6e, 0x15b1: 0x168b, 0x15b2: 0x0a76, 0x15b3: 0x0a7a, 0x15b4: 0x0b52, 0x15b5: 0x0a82, - 0x15b6: 0x05d2, 0x15b7: 0x0a8e, 0x15b8: 0x0a9e, 0x15b9: 0x0aaa, 0x15ba: 0x0aa6, 0x15bb: 0x1695, - 0x15bc: 0x0ab2, 0x15bd: 0x169a, 0x15be: 0x0abe, 0x15bf: 0x0aba, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0ac2, 0x15c1: 0x0ad2, 0x15c2: 0x0ad6, 0x15c3: 0x05d6, 0x15c4: 0x0ae6, 0x15c5: 0x0aee, - 0x15c6: 0x0af2, 0x15c7: 0x0af6, 0x15c8: 0x05da, 0x15c9: 0x169f, 0x15ca: 0x05de, 0x15cb: 0x0b12, - 0x15cc: 0x0b16, 0x15cd: 0x0b1a, 0x15ce: 0x0b22, 0x15cf: 0x1866, 0x15d0: 0x0b3a, 0x15d1: 0x16a9, - 0x15d2: 0x16a9, 0x15d3: 0x11da, 0x15d4: 0x0b4a, 0x15d5: 0x0b4a, 0x15d6: 0x05e2, 0x15d7: 0x16cc, - 0x15d8: 0x179e, 0x15d9: 0x0b5a, 0x15da: 0x0b62, 0x15db: 0x05e6, 0x15dc: 0x0b76, 0x15dd: 0x0b86, - 0x15de: 0x0b8a, 0x15df: 0x0b92, 0x15e0: 0x0ba2, 0x15e1: 0x05ee, 0x15e2: 0x05ea, 0x15e3: 0x0ba6, - 0x15e4: 0x16ae, 0x15e5: 0x0baa, 0x15e6: 0x0bbe, 0x15e7: 0x0bc2, 0x15e8: 0x0bc6, 0x15e9: 0x0bc2, - 0x15ea: 0x0bd2, 0x15eb: 0x0bd6, 0x15ec: 0x0be6, 0x15ed: 0x0bde, 0x15ee: 0x0be2, 0x15ef: 0x0bea, - 0x15f0: 0x0bee, 0x15f1: 0x0bf2, 0x15f2: 0x0bfe, 0x15f3: 0x0c02, 0x15f4: 0x0c1a, 0x15f5: 0x0c22, - 0x15f6: 0x0c32, 0x15f7: 0x0c46, 0x15f8: 0x16bd, 0x15f9: 0x0c42, 0x15fa: 0x0c36, 0x15fb: 0x0c4e, - 0x15fc: 0x0c56, 0x15fd: 0x0c6a, 0x15fe: 0x16c2, 0x15ff: 0x0c72, - // Block 0x58, offset 0x1600 - 0x1600: 0x0c66, 0x1601: 0x0c5e, 0x1602: 0x05f2, 0x1603: 0x0c7a, 0x1604: 0x0c82, 0x1605: 0x0c8a, - 0x1606: 0x0c7e, 0x1607: 0x05f6, 0x1608: 0x0c9a, 0x1609: 0x0ca2, 0x160a: 0x16c7, 0x160b: 0x0cce, - 0x160c: 0x0d02, 0x160d: 0x0cde, 0x160e: 0x0602, 0x160f: 0x0cea, 0x1610: 0x05fe, 0x1611: 0x05fa, - 0x1612: 0x07c6, 0x1613: 0x07ca, 0x1614: 0x0d06, 0x1615: 0x0cee, 0x1616: 0x11ae, 0x1617: 0x0666, - 0x1618: 0x0d12, 0x1619: 0x0d16, 0x161a: 0x0d1a, 0x161b: 0x0d2e, 0x161c: 0x0d26, 0x161d: 0x16e0, - 0x161e: 0x0606, 0x161f: 0x0d42, 0x1620: 0x0d36, 0x1621: 0x0d52, 0x1622: 0x0d5a, 0x1623: 0x16ea, - 0x1624: 0x0d5e, 0x1625: 0x0d4a, 0x1626: 0x0d66, 0x1627: 0x060a, 0x1628: 0x0d6a, 0x1629: 0x0d6e, - 0x162a: 0x0d72, 0x162b: 0x0d7e, 0x162c: 0x16ef, 0x162d: 0x0d86, 0x162e: 0x060e, 0x162f: 0x0d92, - 0x1630: 0x16f4, 0x1631: 0x0d96, 0x1632: 0x0612, 0x1633: 0x0da2, 0x1634: 0x0dae, 0x1635: 0x0dba, - 0x1636: 0x0dbe, 0x1637: 0x16f9, 0x1638: 0x1690, 0x1639: 0x16fe, 0x163a: 0x0dde, 0x163b: 0x1703, - 0x163c: 0x0dea, 0x163d: 0x0df2, 0x163e: 0x0de2, 0x163f: 0x0dfe, - // Block 0x59, offset 0x1640 - 0x1640: 0x0e0e, 0x1641: 0x0e1e, 0x1642: 0x0e12, 0x1643: 0x0e16, 0x1644: 0x0e22, 0x1645: 0x0e26, - 0x1646: 0x1708, 0x1647: 0x0e0a, 0x1648: 0x0e3e, 0x1649: 0x0e42, 0x164a: 0x0616, 0x164b: 0x0e56, - 0x164c: 0x0e52, 0x164d: 0x170d, 0x164e: 0x0e36, 0x164f: 0x0e72, 0x1650: 0x1712, 0x1651: 0x1717, - 0x1652: 0x0e76, 0x1653: 0x0e8a, 0x1654: 0x0e86, 0x1655: 0x0e82, 0x1656: 0x061a, 0x1657: 0x0e8e, - 0x1658: 0x0e9e, 0x1659: 0x0e9a, 0x165a: 0x0ea6, 0x165b: 0x1654, 0x165c: 0x0eb6, 0x165d: 0x171c, - 0x165e: 0x0ec2, 0x165f: 0x1726, 0x1660: 0x0ed6, 0x1661: 0x0ee2, 0x1662: 0x0ef6, 0x1663: 0x172b, - 0x1664: 0x0f0a, 0x1665: 0x0f0e, 0x1666: 0x1730, 0x1667: 0x1735, 0x1668: 0x0f2a, 0x1669: 0x0f3a, - 0x166a: 0x061e, 0x166b: 0x0f3e, 0x166c: 0x0622, 0x166d: 0x0622, 0x166e: 0x0f56, 0x166f: 0x0f5a, - 0x1670: 0x0f62, 0x1671: 0x0f66, 0x1672: 0x0f72, 0x1673: 0x0626, 0x1674: 0x0f8a, 0x1675: 0x173a, - 0x1676: 0x0fa6, 0x1677: 0x173f, 0x1678: 0x0fb2, 0x1679: 0x16a4, 0x167a: 0x0fc2, 0x167b: 0x1744, - 0x167c: 0x1749, 0x167d: 0x174e, 0x167e: 0x062a, 0x167f: 0x062e, - // Block 0x5a, offset 0x1680 - 0x1680: 0x0ffa, 0x1681: 0x1758, 0x1682: 0x1753, 0x1683: 0x175d, 0x1684: 0x1762, 0x1685: 0x1002, - 0x1686: 0x1006, 0x1687: 0x1006, 0x1688: 0x100e, 0x1689: 0x0636, 0x168a: 0x1012, 0x168b: 0x063a, - 0x168c: 0x063e, 0x168d: 0x176c, 0x168e: 0x1026, 0x168f: 0x102e, 0x1690: 0x103a, 0x1691: 0x0642, - 0x1692: 0x1771, 0x1693: 0x105e, 0x1694: 0x1776, 0x1695: 0x177b, 0x1696: 0x107e, 0x1697: 0x1096, - 0x1698: 0x0646, 0x1699: 0x109e, 0x169a: 0x10a2, 0x169b: 0x10a6, 0x169c: 0x1780, 0x169d: 0x1785, - 0x169e: 0x1785, 0x169f: 0x10be, 0x16a0: 0x064a, 0x16a1: 0x178a, 0x16a2: 0x10d2, 0x16a3: 0x10d6, - 0x16a4: 0x064e, 0x16a5: 0x178f, 0x16a6: 0x10f2, 0x16a7: 0x0652, 0x16a8: 0x1102, 0x16a9: 0x10fa, - 0x16aa: 0x110a, 0x16ab: 0x1799, 0x16ac: 0x1122, 0x16ad: 0x0656, 0x16ae: 0x112e, 0x16af: 0x1136, - 0x16b0: 0x1146, 0x16b1: 0x065a, 0x16b2: 0x17a3, 0x16b3: 0x17a8, 0x16b4: 0x065e, 0x16b5: 0x17ad, - 0x16b6: 0x115e, 0x16b7: 0x17b2, 0x16b8: 0x116a, 0x16b9: 0x1176, 0x16ba: 0x117e, 0x16bb: 0x17b7, - 0x16bc: 0x17bc, 0x16bd: 0x1192, 0x16be: 0x17c1, 0x16bf: 0x119a, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x16d1, 0x16c1: 0x0662, 0x16c2: 0x11b2, 0x16c3: 0x11b6, 0x16c4: 0x066a, 0x16c5: 0x11ba, - 0x16c6: 0x0a36, 0x16c7: 0x17c6, 0x16c8: 0x17cb, 0x16c9: 0x16d6, 0x16ca: 0x16db, 0x16cb: 0x11da, - 0x16cc: 0x11de, 0x16cd: 0x13f6, 0x16ce: 0x066e, 0x16cf: 0x120a, 0x16d0: 0x1206, 0x16d1: 0x120e, - 0x16d2: 0x0842, 0x16d3: 0x1212, 0x16d4: 0x1216, 0x16d5: 0x121a, 0x16d6: 0x1222, 0x16d7: 0x17d0, - 0x16d8: 0x121e, 0x16d9: 0x1226, 0x16da: 0x123a, 0x16db: 0x123e, 0x16dc: 0x122a, 0x16dd: 0x1242, - 0x16de: 0x1256, 0x16df: 0x126a, 0x16e0: 0x1236, 0x16e1: 0x124a, 0x16e2: 0x124e, 0x16e3: 0x1252, - 0x16e4: 0x17d5, 0x16e5: 0x17df, 0x16e6: 0x17da, 0x16e7: 0x0672, 0x16e8: 0x1272, 0x16e9: 0x1276, - 0x16ea: 0x127e, 0x16eb: 0x17f3, 0x16ec: 0x1282, 0x16ed: 0x17e4, 0x16ee: 0x0676, 0x16ef: 0x067a, - 0x16f0: 0x17e9, 0x16f1: 0x17ee, 0x16f2: 0x067e, 0x16f3: 0x12a2, 0x16f4: 0x12a6, 0x16f5: 0x12aa, - 0x16f6: 0x12ae, 0x16f7: 0x12ba, 0x16f8: 0x12b6, 0x16f9: 0x12c2, 0x16fa: 0x12be, 0x16fb: 0x12ce, - 0x16fc: 0x12c6, 0x16fd: 0x12ca, 0x16fe: 0x12d2, 0x16ff: 0x0682, - // Block 0x5c, offset 0x1700 - 0x1700: 0x12da, 0x1701: 0x12de, 0x1702: 0x0686, 0x1703: 0x12ee, 0x1704: 0x12f2, 0x1705: 0x17f8, - 0x1706: 0x12fe, 0x1707: 0x1302, 0x1708: 0x068a, 0x1709: 0x130e, 0x170a: 0x05be, 0x170b: 0x17fd, - 0x170c: 0x1802, 0x170d: 0x068e, 0x170e: 0x0692, 0x170f: 0x133a, 0x1710: 0x1352, 0x1711: 0x136e, - 0x1712: 0x137e, 0x1713: 0x1807, 0x1714: 0x1392, 0x1715: 0x1396, 0x1716: 0x13ae, 0x1717: 0x13ba, - 0x1718: 0x1811, 0x1719: 0x1663, 0x171a: 0x13c6, 0x171b: 0x13c2, 0x171c: 0x13ce, 0x171d: 0x1668, - 0x171e: 0x13da, 0x171f: 0x13e6, 0x1720: 0x1816, 0x1721: 0x181b, 0x1722: 0x1426, 0x1723: 0x1432, - 0x1724: 0x143a, 0x1725: 0x1820, 0x1726: 0x143e, 0x1727: 0x146a, 0x1728: 0x1476, 0x1729: 0x147a, - 0x172a: 0x1472, 0x172b: 0x1486, 0x172c: 0x148a, 0x172d: 0x1825, 0x172e: 0x1496, 0x172f: 0x0696, - 0x1730: 0x149e, 0x1731: 0x182a, 0x1732: 0x069a, 0x1733: 0x14d6, 0x1734: 0x0ac6, 0x1735: 0x14ee, - 0x1736: 0x182f, 0x1737: 0x1839, 0x1738: 0x069e, 0x1739: 0x06a2, 0x173a: 0x1516, 0x173b: 0x183e, - 0x173c: 0x06a6, 0x173d: 0x1843, 0x173e: 0x152e, 0x173f: 0x152e, - // Block 0x5d, offset 0x1740 - 0x1740: 0x1536, 0x1741: 0x1848, 0x1742: 0x154e, 0x1743: 0x06aa, 0x1744: 0x155e, 0x1745: 0x156a, - 0x1746: 0x1572, 0x1747: 0x157a, 0x1748: 0x06ae, 0x1749: 0x184d, 0x174a: 0x158e, 0x174b: 0x15aa, - 0x174c: 0x15b6, 0x174d: 0x06b2, 0x174e: 0x06b6, 0x174f: 0x15ba, 0x1750: 0x1852, 0x1751: 0x06ba, - 0x1752: 0x1857, 0x1753: 0x185c, 0x1754: 0x1861, 0x1755: 0x15de, 0x1756: 0x06be, 0x1757: 0x15f2, - 0x1758: 0x15fa, 0x1759: 0x15fe, 0x175a: 0x1606, 0x175b: 0x160e, 0x175c: 0x1616, 0x175d: 0x186b, -} - -// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, - 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, - 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, - 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, - 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, - // Block 0x5, offset 0x140 - 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, - 0x14d: 0x8a, - 0x15c: 0x8b, 0x15f: 0x8c, - 0x162: 0x8d, 0x164: 0x8e, - 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16b: 0x92, 0x16c: 0x0f, 0x16d: 0x93, 0x16e: 0x94, 0x16f: 0x95, - 0x170: 0x96, 0x173: 0x97, 0x174: 0x98, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, - 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, - // Block 0x6, offset 0x180 - 0x180: 0x99, 0x181: 0x9a, 0x182: 0x9b, 0x183: 0x9c, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9d, 0x187: 0x9e, - 0x188: 0x9f, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa0, 0x18c: 0xa1, - 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa2, - 0x1a8: 0xa3, 0x1a9: 0xa4, 0x1ab: 0xa5, - 0x1b1: 0xa6, 0x1b3: 0xa7, 0x1b5: 0xa8, 0x1b7: 0xa9, - 0x1ba: 0xaa, 0x1bb: 0xab, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xac, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xad, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xae, 0x1c5: 0x27, 0x1c6: 0x28, - 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, - // Block 0x8, offset 0x200 - 0x219: 0xaf, 0x21a: 0xb0, 0x21b: 0xb1, 0x21d: 0xb2, 0x21f: 0xb3, - 0x220: 0xb4, 0x223: 0xb5, 0x224: 0xb6, 0x225: 0xb7, 0x226: 0xb8, 0x227: 0xb9, - 0x22a: 0xba, 0x22b: 0xbb, 0x22d: 0xbc, 0x22f: 0xbd, - 0x230: 0xbe, 0x231: 0xbf, 0x232: 0xc0, 0x233: 0xc1, 0x234: 0xc2, 0x235: 0xc3, 0x236: 0xc4, 0x237: 0xbe, - 0x238: 0xbf, 0x239: 0xc0, 0x23a: 0xc1, 0x23b: 0xc2, 0x23c: 0xc3, 0x23d: 0xc4, 0x23e: 0xbe, 0x23f: 0xbf, - // Block 0x9, offset 0x240 - 0x240: 0xc0, 0x241: 0xc1, 0x242: 0xc2, 0x243: 0xc3, 0x244: 0xc4, 0x245: 0xbe, 0x246: 0xbf, 0x247: 0xc0, - 0x248: 0xc1, 0x249: 0xc2, 0x24a: 0xc3, 0x24b: 0xc4, 0x24c: 0xbe, 0x24d: 0xbf, 0x24e: 0xc0, 0x24f: 0xc1, - 0x250: 0xc2, 0x251: 0xc3, 0x252: 0xc4, 0x253: 0xbe, 0x254: 0xbf, 0x255: 0xc0, 0x256: 0xc1, 0x257: 0xc2, - 0x258: 0xc3, 0x259: 0xc4, 0x25a: 0xbe, 0x25b: 0xbf, 0x25c: 0xc0, 0x25d: 0xc1, 0x25e: 0xc2, 0x25f: 0xc3, - 0x260: 0xc4, 0x261: 0xbe, 0x262: 0xbf, 0x263: 0xc0, 0x264: 0xc1, 0x265: 0xc2, 0x266: 0xc3, 0x267: 0xc4, - 0x268: 0xbe, 0x269: 0xbf, 0x26a: 0xc0, 0x26b: 0xc1, 0x26c: 0xc2, 0x26d: 0xc3, 0x26e: 0xc4, 0x26f: 0xbe, - 0x270: 0xbf, 0x271: 0xc0, 0x272: 0xc1, 0x273: 0xc2, 0x274: 0xc3, 0x275: 0xc4, 0x276: 0xbe, 0x277: 0xbf, - 0x278: 0xc0, 0x279: 0xc1, 0x27a: 0xc2, 0x27b: 0xc3, 0x27c: 0xc4, 0x27d: 0xbe, 0x27e: 0xbf, 0x27f: 0xc0, - // Block 0xa, offset 0x280 - 0x280: 0xc1, 0x281: 0xc2, 0x282: 0xc3, 0x283: 0xc4, 0x284: 0xbe, 0x285: 0xbf, 0x286: 0xc0, 0x287: 0xc1, - 0x288: 0xc2, 0x289: 0xc3, 0x28a: 0xc4, 0x28b: 0xbe, 0x28c: 0xbf, 0x28d: 0xc0, 0x28e: 0xc1, 0x28f: 0xc2, - 0x290: 0xc3, 0x291: 0xc4, 0x292: 0xbe, 0x293: 0xbf, 0x294: 0xc0, 0x295: 0xc1, 0x296: 0xc2, 0x297: 0xc3, - 0x298: 0xc4, 0x299: 0xbe, 0x29a: 0xbf, 0x29b: 0xc0, 0x29c: 0xc1, 0x29d: 0xc2, 0x29e: 0xc3, 0x29f: 0xc4, - 0x2a0: 0xbe, 0x2a1: 0xbf, 0x2a2: 0xc0, 0x2a3: 0xc1, 0x2a4: 0xc2, 0x2a5: 0xc3, 0x2a6: 0xc4, 0x2a7: 0xbe, - 0x2a8: 0xbf, 0x2a9: 0xc0, 0x2aa: 0xc1, 0x2ab: 0xc2, 0x2ac: 0xc3, 0x2ad: 0xc4, 0x2ae: 0xbe, 0x2af: 0xbf, - 0x2b0: 0xc0, 0x2b1: 0xc1, 0x2b2: 0xc2, 0x2b3: 0xc3, 0x2b4: 0xc4, 0x2b5: 0xbe, 0x2b6: 0xbf, 0x2b7: 0xc0, - 0x2b8: 0xc1, 0x2b9: 0xc2, 0x2ba: 0xc3, 0x2bb: 0xc4, 0x2bc: 0xbe, 0x2bd: 0xbf, 0x2be: 0xc0, 0x2bf: 0xc1, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc2, 0x2c1: 0xc3, 0x2c2: 0xc4, 0x2c3: 0xbe, 0x2c4: 0xbf, 0x2c5: 0xc0, 0x2c6: 0xc1, 0x2c7: 0xc2, - 0x2c8: 0xc3, 0x2c9: 0xc4, 0x2ca: 0xbe, 0x2cb: 0xbf, 0x2cc: 0xc0, 0x2cd: 0xc1, 0x2ce: 0xc2, 0x2cf: 0xc3, - 0x2d0: 0xc4, 0x2d1: 0xbe, 0x2d2: 0xbf, 0x2d3: 0xc0, 0x2d4: 0xc1, 0x2d5: 0xc2, 0x2d6: 0xc3, 0x2d7: 0xc4, - 0x2d8: 0xbe, 0x2d9: 0xbf, 0x2da: 0xc0, 0x2db: 0xc1, 0x2dc: 0xc2, 0x2dd: 0xc3, 0x2de: 0xc5, - // Block 0xc, offset 0x300 - 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, - 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, - 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, - 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc6, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, - // Block 0xd, offset 0x340 - 0x347: 0xc7, - 0x34b: 0xc8, 0x34d: 0xc9, - 0x368: 0xca, 0x36b: 0xcb, - 0x374: 0xcc, - 0x37a: 0xcd, 0x37d: 0xce, - // Block 0xe, offset 0x380 - 0x381: 0xcf, 0x382: 0xd0, 0x384: 0xd1, 0x385: 0xb8, 0x387: 0xd2, - 0x388: 0xd3, 0x38b: 0xd4, 0x38c: 0xd5, 0x38d: 0xd6, - 0x391: 0xd7, 0x392: 0xd8, 0x393: 0xd9, 0x396: 0xda, 0x397: 0xdb, - 0x398: 0xdc, 0x39a: 0xdd, 0x39c: 0xde, - 0x3a0: 0xdf, 0x3a4: 0xe0, 0x3a5: 0xe1, 0x3a7: 0xe2, - 0x3a8: 0xe3, 0x3a9: 0xe4, 0x3aa: 0xe5, - 0x3b0: 0xdc, 0x3b5: 0xe6, 0x3b6: 0xe7, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xe8, 0x3ec: 0xe9, - 0x3ff: 0xea, - // Block 0x10, offset 0x400 - 0x432: 0xeb, - // Block 0x11, offset 0x440 - 0x445: 0xec, 0x446: 0xed, 0x447: 0xee, - 0x449: 0xef, - 0x450: 0xf0, 0x451: 0xf1, 0x452: 0xf2, 0x453: 0xf3, 0x454: 0xf4, 0x455: 0xf5, 0x456: 0xf6, 0x457: 0xf7, - 0x458: 0xf8, 0x459: 0xf9, 0x45a: 0x4c, 0x45b: 0xfa, 0x45c: 0xfb, 0x45d: 0xfc, 0x45e: 0xfd, 0x45f: 0x4d, - // Block 0x12, offset 0x480 - 0x480: 0xfe, 0x484: 0xe9, - 0x48b: 0xff, - 0x4a3: 0x100, 0x4a5: 0x101, - 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x51, 0x4c5: 0x102, 0x4c6: 0x103, - 0x4c8: 0x52, 0x4c9: 0x104, - 0x4ef: 0x105, - // Block 0x14, offset 0x500 - 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, - 0x528: 0x5b, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 170 entries, 340 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x134, 0x136, 0x13f, 0x141, 0x144, 0x146, 0x151, 0x15c, 0x16a, 0x178, 0x188, 0x196, 0x19d, 0x1a3, 0x1b2, 0x1b6, 0x1b8, 0x1bc, 0x1be, 0x1c1, 0x1c3, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1cf, 0x1d1, 0x1dd, 0x1e7, 0x1f1, 0x1f4, 0x1f8, 0x1fa, 0x1fc, 0x1fe, 0x201, 0x204, 0x206, 0x208, 0x20a, 0x20c, 0x212, 0x215, 0x21a, 0x21c, 0x223, 0x229, 0x22f, 0x237, 0x23d, 0x243, 0x249, 0x24d, 0x24f, 0x251, 0x253, 0x255, 0x25b, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x273, 0x27a, 0x27d, 0x280, 0x282, 0x285, 0x28d, 0x291, 0x298, 0x29b, 0x2a1, 0x2a3, 0x2a5, 0x2a8, 0x2aa, 0x2ad, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2bc, 0x2bf, 0x2c1, 0x2c3, 0x2c5, 0x2c7, 0x2c9, 0x2d6, 0x2e0, 0x2e2, 0x2e4, 0x2e8, 0x2ed, 0x2f9, 0x2fe, 0x307, 0x30d, 0x312, 0x316, 0x31b, 0x31f, 0x32f, 0x33d, 0x34b, 0x359, 0x35f, 0x361, 0x363, 0x366, 0x371, 0x373, 0x37d} - -// nfkcSparseValues: 895 entries, 3580 bytes -var nfkcSparseValues = [895]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x428f, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x427b, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x4271, lo: 0xb4, hi: 0xb4}, - {value: 0x01df, lo: 0xb5, hi: 0xb5}, - {value: 0x42a8, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x2222, lo: 0xbc, hi: 0xbc}, - {value: 0x2216, lo: 0xbd, hi: 0xbd}, - {value: 0x22b8, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46f9, lo: 0xa0, hi: 0xa1}, - {value: 0x472b, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x4285, lo: 0x98, hi: 0x98}, - {value: 0x428a, lo: 0x99, hi: 0x9a}, - {value: 0x42ad, lo: 0x9b, hi: 0x9b}, - {value: 0x4276, lo: 0x9c, hi: 0x9c}, - {value: 0x4299, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x016a, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37bc, lo: 0x90, hi: 0x90}, - {value: 0x37c8, lo: 0x91, hi: 0x91}, - {value: 0x37b6, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x382e, lo: 0x97, hi: 0x97}, - {value: 0x37f8, lo: 0x9c, hi: 0x9c}, - {value: 0x37e0, lo: 0x9d, hi: 0x9d}, - {value: 0x380a, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x3834, lo: 0xb6, hi: 0xb6}, - {value: 0x383a, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8114, lo: 0x81, hi: 0x82}, - {value: 0x8133, lo: 0x84, hi: 0x84}, - {value: 0x812e, lo: 0x85, hi: 0x85}, - {value: 0x810e, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8133, lo: 0x90, hi: 0x97}, - {value: 0x811a, lo: 0x98, hi: 0x98}, - {value: 0x811b, lo: 0x99, hi: 0x99}, - {value: 0x811c, lo: 0x9a, hi: 0x9a}, - {value: 0x3858, lo: 0xa2, hi: 0xa2}, - {value: 0x385e, lo: 0xa3, hi: 0xa3}, - {value: 0x386a, lo: 0xa4, hi: 0xa4}, - {value: 0x3864, lo: 0xa5, hi: 0xa5}, - {value: 0x3870, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x3882, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x3876, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x387c, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8133, lo: 0x96, hi: 0x9c}, - {value: 0x8133, lo: 0x9f, hi: 0xa2}, - {value: 0x812e, lo: 0xa3, hi: 0xa3}, - {value: 0x8133, lo: 0xa4, hi: 0xa4}, - {value: 0x8133, lo: 0xa7, hi: 0xa8}, - {value: 0x812e, lo: 0xaa, hi: 0xaa}, - {value: 0x8133, lo: 0xab, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x8120, lo: 0x91, hi: 0x91}, - {value: 0x8133, lo: 0xb0, hi: 0xb0}, - {value: 0x812e, lo: 0xb1, hi: 0xb1}, - {value: 0x8133, lo: 0xb2, hi: 0xb3}, - {value: 0x812e, lo: 0xb4, hi: 0xb4}, - {value: 0x8133, lo: 0xb5, hi: 0xb6}, - {value: 0x812e, lo: 0xb7, hi: 0xb9}, - {value: 0x8133, lo: 0xba, hi: 0xba}, - {value: 0x812e, lo: 0xbb, hi: 0xbc}, - {value: 0x8133, lo: 0xbd, hi: 0xbd}, - {value: 0x812e, lo: 0xbe, hi: 0xbe}, - {value: 0x8133, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8133, lo: 0x80, hi: 0x80}, - {value: 0x8133, lo: 0x81, hi: 0x81}, - {value: 0x812e, lo: 0x82, hi: 0x83}, - {value: 0x812e, lo: 0x84, hi: 0x85}, - {value: 0x812e, lo: 0x86, hi: 0x87}, - {value: 0x812e, lo: 0x88, hi: 0x89}, - {value: 0x8133, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x04}, - {value: 0x8133, lo: 0xab, hi: 0xb1}, - {value: 0x812e, lo: 0xb2, hi: 0xb2}, - {value: 0x8133, lo: 0xb3, hi: 0xb3}, - {value: 0x812e, lo: 0xbd, hi: 0xbd}, - // Block 0xc, offset 0x70 - {value: 0x0000, lo: 0x04}, - {value: 0x8133, lo: 0x96, hi: 0x99}, - {value: 0x8133, lo: 0x9b, hi: 0xa3}, - {value: 0x8133, lo: 0xa5, hi: 0xa7}, - {value: 0x8133, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x75 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x77 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3eef, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ef7, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3eff, lo: 0xb4, hi: 0xb4}, - {value: 0x9903, lo: 0xbc, hi: 0xbc}, - // Block 0xf, offset 0x7f - {value: 0x0008, lo: 0x06}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x8133, lo: 0x91, hi: 0x91}, - {value: 0x812e, lo: 0x92, hi: 0x92}, - {value: 0x8133, lo: 0x93, hi: 0x93}, - {value: 0x8133, lo: 0x94, hi: 0x94}, - {value: 0x4533, lo: 0x98, hi: 0x9f}, - // Block 0x10, offset 0x86 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x11, offset 0x89 - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cab, lo: 0x8b, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x4573, lo: 0x9c, hi: 0x9d}, - {value: 0x4583, lo: 0x9f, hi: 0x9f}, - {value: 0x8133, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x91 - {value: 0x0000, lo: 0x03}, - {value: 0x45ab, lo: 0xb3, hi: 0xb3}, - {value: 0x45b3, lo: 0xb6, hi: 0xb6}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - // Block 0x13, offset 0x95 - {value: 0x0008, lo: 0x03}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x458b, lo: 0x99, hi: 0x9b}, - {value: 0x45a3, lo: 0x9e, hi: 0x9e}, - // Block 0x14, offset 0x99 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - // Block 0x16, offset 0x9d - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cc3, lo: 0x88, hi: 0x88}, - {value: 0x2cbb, lo: 0x8b, hi: 0x8b}, - {value: 0x2ccb, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45bb, lo: 0x9c, hi: 0x9c}, - {value: 0x45c3, lo: 0x9d, hi: 0x9d}, - // Block 0x17, offset 0xa6 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cd3, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x18, offset 0xaa - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cdb, lo: 0x8a, hi: 0x8a}, - {value: 0x2ceb, lo: 0x8b, hi: 0x8b}, - {value: 0x2ce3, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x19, offset 0xb1 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3f07, lo: 0x88, hi: 0x88}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x8121, lo: 0x95, hi: 0x96}, - // Block 0x1a, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1b, offset 0xb9 - {value: 0x0000, lo: 0x09}, - {value: 0x2cf3, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cfb, lo: 0x87, hi: 0x87}, - {value: 0x2d03, lo: 0x88, hi: 0x88}, - {value: 0x2f67, lo: 0x8a, hi: 0x8a}, - {value: 0x2def, lo: 0x8b, hi: 0x8b}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xc3 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1d, offset 0xc6 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2d0b, lo: 0x8a, hi: 0x8a}, - {value: 0x2d1b, lo: 0x8b, hi: 0x8b}, - {value: 0x2d13, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1e, offset 0xcd - {value: 0x6bdd, lo: 0x07}, - {value: 0x9905, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3f0f, lo: 0x9a, hi: 0x9a}, - {value: 0x2f6f, lo: 0x9c, hi: 0x9c}, - {value: 0x2dfa, lo: 0x9d, hi: 0x9d}, - {value: 0x2d23, lo: 0x9e, hi: 0x9f}, - // Block 0x1f, offset 0xd5 - {value: 0x0000, lo: 0x03}, - {value: 0x2627, lo: 0xb3, hi: 0xb3}, - {value: 0x8123, lo: 0xb8, hi: 0xb9}, - {value: 0x8105, lo: 0xba, hi: 0xba}, - // Block 0x20, offset 0xd9 - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0x88, hi: 0x8b}, - // Block 0x21, offset 0xdb - {value: 0x0000, lo: 0x03}, - {value: 0x263c, lo: 0xb3, hi: 0xb3}, - {value: 0x8125, lo: 0xb8, hi: 0xb9}, - {value: 0x8105, lo: 0xba, hi: 0xba}, - // Block 0x22, offset 0xdf - {value: 0x0000, lo: 0x03}, - {value: 0x8126, lo: 0x88, hi: 0x8b}, - {value: 0x262e, lo: 0x9c, hi: 0x9c}, - {value: 0x2635, lo: 0x9d, hi: 0x9d}, - // Block 0x23, offset 0xe3 - {value: 0x0000, lo: 0x05}, - {value: 0x030e, lo: 0x8c, hi: 0x8c}, - {value: 0x812e, lo: 0x98, hi: 0x99}, - {value: 0x812e, lo: 0xb5, hi: 0xb5}, - {value: 0x812e, lo: 0xb7, hi: 0xb7}, - {value: 0x812c, lo: 0xb9, hi: 0xb9}, - // Block 0x24, offset 0xe9 - {value: 0x0000, lo: 0x10}, - {value: 0x264a, lo: 0x83, hi: 0x83}, - {value: 0x2651, lo: 0x8d, hi: 0x8d}, - {value: 0x2658, lo: 0x92, hi: 0x92}, - {value: 0x265f, lo: 0x97, hi: 0x97}, - {value: 0x2666, lo: 0x9c, hi: 0x9c}, - {value: 0x2643, lo: 0xa9, hi: 0xa9}, - {value: 0x8127, lo: 0xb1, hi: 0xb1}, - {value: 0x8128, lo: 0xb2, hi: 0xb2}, - {value: 0x4a9b, lo: 0xb3, hi: 0xb3}, - {value: 0x8129, lo: 0xb4, hi: 0xb4}, - {value: 0x4aa4, lo: 0xb5, hi: 0xb5}, - {value: 0x45cb, lo: 0xb6, hi: 0xb6}, - {value: 0x460b, lo: 0xb7, hi: 0xb7}, - {value: 0x45d3, lo: 0xb8, hi: 0xb8}, - {value: 0x4616, lo: 0xb9, hi: 0xb9}, - {value: 0x8128, lo: 0xba, hi: 0xbd}, - // Block 0x25, offset 0xfa - {value: 0x0000, lo: 0x0b}, - {value: 0x8128, lo: 0x80, hi: 0x80}, - {value: 0x4aad, lo: 0x81, hi: 0x81}, - {value: 0x8133, lo: 0x82, hi: 0x83}, - {value: 0x8105, lo: 0x84, hi: 0x84}, - {value: 0x8133, lo: 0x86, hi: 0x87}, - {value: 0x2674, lo: 0x93, hi: 0x93}, - {value: 0x267b, lo: 0x9d, hi: 0x9d}, - {value: 0x2682, lo: 0xa2, hi: 0xa2}, - {value: 0x2689, lo: 0xa7, hi: 0xa7}, - {value: 0x2690, lo: 0xac, hi: 0xac}, - {value: 0x266d, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0x106 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x86, hi: 0x86}, - // Block 0x27, offset 0x108 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d2b, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8103, lo: 0xb7, hi: 0xb7}, - {value: 0x8105, lo: 0xb9, hi: 0xba}, - // Block 0x28, offset 0x10e - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x8d, hi: 0x8d}, - // Block 0x29, offset 0x110 - {value: 0x0000, lo: 0x01}, - {value: 0x0312, lo: 0xbc, hi: 0xbc}, - // Block 0x2a, offset 0x112 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0x114 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x116 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x118 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x11a - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x11c - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x94, hi: 0x94}, - {value: 0x8105, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x11f - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x92, hi: 0x92}, - {value: 0x8133, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x122 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x124 - {value: 0x0004, lo: 0x02}, - {value: 0x812f, lo: 0xb9, hi: 0xba}, - {value: 0x812e, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x127 - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0x97, hi: 0x97}, - {value: 0x812e, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x12a - {value: 0x0000, lo: 0x03}, - {value: 0x8105, lo: 0xa0, hi: 0xa0}, - {value: 0x8133, lo: 0xb5, hi: 0xbc}, - {value: 0x812e, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x12e - {value: 0x0000, lo: 0x05}, - {value: 0x8133, lo: 0xb0, hi: 0xb4}, - {value: 0x812e, lo: 0xb5, hi: 0xba}, - {value: 0x8133, lo: 0xbb, hi: 0xbc}, - {value: 0x812e, lo: 0xbd, hi: 0xbd}, - {value: 0x812e, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x134 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x80, hi: 0x80}, - // Block 0x37, offset 0x136 - {value: 0x0000, lo: 0x08}, - {value: 0x2d73, lo: 0x80, hi: 0x80}, - {value: 0x2d7b, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d83, lo: 0x83, hi: 0x83}, - {value: 0x8105, lo: 0x84, hi: 0x84}, - {value: 0x8133, lo: 0xab, hi: 0xab}, - {value: 0x812e, lo: 0xac, hi: 0xac}, - {value: 0x8133, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x13f - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x141 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xa6, hi: 0xa6}, - {value: 0x8105, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x144 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x146 - {value: 0x0000, lo: 0x0a}, - {value: 0x8133, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812e, lo: 0x95, hi: 0x99}, - {value: 0x8133, lo: 0x9a, hi: 0x9b}, - {value: 0x812e, lo: 0x9c, hi: 0x9f}, - {value: 0x8133, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x8133, lo: 0xb4, hi: 0xb4}, - {value: 0x8133, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x151 - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3d, offset 0x15c - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043e, lo: 0x91, hi: 0x91}, - {value: 0x42b2, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1876, lo: 0xa5, hi: 0xa5}, - {value: 0x1b62, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2697, lo: 0xb3, hi: 0xb3}, - {value: 0x280b, lo: 0xb4, hi: 0xb4}, - {value: 0x269e, lo: 0xb6, hi: 0xb6}, - {value: 0x2815, lo: 0xb7, hi: 0xb7}, - {value: 0x1870, lo: 0xbc, hi: 0xbc}, - {value: 0x4280, lo: 0xbe, hi: 0xbe}, - // Block 0x3e, offset 0x16a - {value: 0x0002, lo: 0x0d}, - {value: 0x1936, lo: 0x87, hi: 0x87}, - {value: 0x1933, lo: 0x88, hi: 0x88}, - {value: 0x1873, lo: 0x89, hi: 0x89}, - {value: 0x299b, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x046a, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x3f, offset 0x178 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x046a, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x199f, lo: 0xa8, hi: 0xa8}, - // Block 0x40, offset 0x188 - {value: 0x0000, lo: 0x0d}, - {value: 0x8133, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8133, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8133, lo: 0x9b, hi: 0x9c}, - {value: 0x8133, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8133, lo: 0xa7, hi: 0xa7}, - {value: 0x812e, lo: 0xa8, hi: 0xa8}, - {value: 0x8133, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812e, lo: 0xac, hi: 0xaf}, - {value: 0x8133, lo: 0xb0, hi: 0xb0}, - // Block 0x41, offset 0x196 - {value: 0x0007, lo: 0x06}, - {value: 0x2186, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bd0, lo: 0x9a, hi: 0x9b}, - {value: 0x3bde, lo: 0xae, hi: 0xae}, - // Block 0x42, offset 0x19d - {value: 0x000e, lo: 0x05}, - {value: 0x3be5, lo: 0x8d, hi: 0x8e}, - {value: 0x3bec, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x43, offset 0x1a3 - {value: 0x017a, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3bfa, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3c01, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3c08, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3c0f, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3c16, lo: 0xa6, hi: 0xa6}, - {value: 0x26a5, lo: 0xac, hi: 0xad}, - {value: 0x26ac, lo: 0xaf, hi: 0xaf}, - {value: 0x2829, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x44, offset 0x1b2 - {value: 0x0007, lo: 0x03}, - {value: 0x3c7f, lo: 0xa0, hi: 0xa1}, - {value: 0x3ca9, lo: 0xa2, hi: 0xa3}, - {value: 0x3cd3, lo: 0xaa, hi: 0xad}, - // Block 0x45, offset 0x1b6 - {value: 0x0004, lo: 0x01}, - {value: 0x048e, lo: 0xa9, hi: 0xaa}, - // Block 0x46, offset 0x1b8 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x47, offset 0x1bc - {value: 0x0000, lo: 0x01}, - {value: 0x29a8, lo: 0x8c, hi: 0x8c}, - // Block 0x48, offset 0x1be - {value: 0x0266, lo: 0x02}, - {value: 0x1b92, lo: 0xb4, hi: 0xb4}, - {value: 0x1930, lo: 0xb5, hi: 0xb6}, - // Block 0x49, offset 0x1c1 - {value: 0x0000, lo: 0x01}, - {value: 0x44f4, lo: 0x9c, hi: 0x9c}, - // Block 0x4a, offset 0x1c3 - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4b, offset 0x1c6 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xaf, hi: 0xb1}, - // Block 0x4c, offset 0x1c8 - {value: 0x0000, lo: 0x02}, - {value: 0x0482, lo: 0xaf, hi: 0xaf}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x4d, offset 0x1cb - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xa0, hi: 0xbf}, - // Block 0x4e, offset 0x1cd - {value: 0x0000, lo: 0x01}, - {value: 0x0dc6, lo: 0x9f, hi: 0x9f}, - // Block 0x4f, offset 0x1cf - {value: 0x0000, lo: 0x01}, - {value: 0x1632, lo: 0xb3, hi: 0xb3}, - // Block 0x50, offset 0x1d1 - {value: 0x0004, lo: 0x0b}, - {value: 0x159a, lo: 0x80, hi: 0x82}, - {value: 0x15b2, lo: 0x83, hi: 0x83}, - {value: 0x15ca, lo: 0x84, hi: 0x85}, - {value: 0x15da, lo: 0x86, hi: 0x89}, - {value: 0x15ee, lo: 0x8a, hi: 0x8c}, - {value: 0x1602, lo: 0x8d, hi: 0x8d}, - {value: 0x160a, lo: 0x8e, hi: 0x8e}, - {value: 0x1612, lo: 0x8f, hi: 0x90}, - {value: 0x161e, lo: 0x91, hi: 0x93}, - {value: 0x162e, lo: 0x94, hi: 0x94}, - {value: 0x1636, lo: 0x95, hi: 0x95}, - // Block 0x51, offset 0x1dd - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x8134, lo: 0xac, hi: 0xac}, - {value: 0x812f, lo: 0xad, hi: 0xad}, - {value: 0x8130, lo: 0xae, hi: 0xae}, - {value: 0x8130, lo: 0xaf, hi: 0xaf}, - {value: 0x04b6, lo: 0xb6, hi: 0xb6}, - {value: 0x088a, lo: 0xb8, hi: 0xba}, - // Block 0x52, offset 0x1e7 - {value: 0x0006, lo: 0x09}, - {value: 0x0316, lo: 0xb1, hi: 0xb1}, - {value: 0x031a, lo: 0xb2, hi: 0xb2}, - {value: 0x4a52, lo: 0xb3, hi: 0xb3}, - {value: 0x031e, lo: 0xb4, hi: 0xb4}, - {value: 0x4a58, lo: 0xb5, hi: 0xb6}, - {value: 0x0322, lo: 0xb7, hi: 0xb7}, - {value: 0x0326, lo: 0xb8, hi: 0xb8}, - {value: 0x032a, lo: 0xb9, hi: 0xb9}, - {value: 0x4a64, lo: 0xba, hi: 0xbf}, - // Block 0x53, offset 0x1f1 - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0xaf, hi: 0xaf}, - {value: 0x8133, lo: 0xb4, hi: 0xbd}, - // Block 0x54, offset 0x1f4 - {value: 0x0000, lo: 0x03}, - {value: 0x0212, lo: 0x9c, hi: 0x9c}, - {value: 0x0215, lo: 0x9d, hi: 0x9d}, - {value: 0x8133, lo: 0x9e, hi: 0x9f}, - // Block 0x55, offset 0x1f8 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xb0, hi: 0xb1}, - // Block 0x56, offset 0x1fa - {value: 0x0000, lo: 0x01}, - {value: 0x163e, lo: 0xb0, hi: 0xb0}, - // Block 0x57, offset 0x1fc - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x58, offset 0x1fe - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x86, hi: 0x86}, - {value: 0x8105, lo: 0xac, hi: 0xac}, - // Block 0x59, offset 0x201 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x84, hi: 0x84}, - {value: 0x8133, lo: 0xa0, hi: 0xb1}, - // Block 0x5a, offset 0x204 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0xab, hi: 0xad}, - // Block 0x5b, offset 0x206 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x93, hi: 0x93}, - // Block 0x5c, offset 0x208 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0xb3, hi: 0xb3}, - // Block 0x5d, offset 0x20a - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x80, hi: 0x80}, - // Block 0x5e, offset 0x20c - {value: 0x0000, lo: 0x05}, - {value: 0x8133, lo: 0xb0, hi: 0xb0}, - {value: 0x8133, lo: 0xb2, hi: 0xb3}, - {value: 0x812e, lo: 0xb4, hi: 0xb4}, - {value: 0x8133, lo: 0xb7, hi: 0xb8}, - {value: 0x8133, lo: 0xbe, hi: 0xbf}, - // Block 0x5f, offset 0x212 - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0x81, hi: 0x81}, - {value: 0x8105, lo: 0xb6, hi: 0xb6}, - // Block 0x60, offset 0x215 - {value: 0x0008, lo: 0x04}, - {value: 0x163a, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1646, lo: 0x9f, hi: 0x9f}, - {value: 0x015e, lo: 0xa9, hi: 0xa9}, - // Block 0x61, offset 0x21a - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xad, hi: 0xad}, - // Block 0x62, offset 0x21c - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x63, offset 0x223 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x64, offset 0x229 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x65, offset 0x22f - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x66, offset 0x237 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x67, offset 0x23d - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x68, offset 0x243 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x69, offset 0x249 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x6a, offset 0x24d - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6b, offset 0x24f - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0xbd, hi: 0xbd}, - // Block 0x6c, offset 0x251 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0xa0, hi: 0xa0}, - // Block 0x6d, offset 0x253 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xb6, hi: 0xba}, - // Block 0x6e, offset 0x255 - {value: 0x002d, lo: 0x05}, - {value: 0x812e, lo: 0x8d, hi: 0x8d}, - {value: 0x8133, lo: 0x8f, hi: 0x8f}, - {value: 0x8133, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x6f, offset 0x25b - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0xa5, hi: 0xa5}, - {value: 0x812e, lo: 0xa6, hi: 0xa6}, - // Block 0x70, offset 0x25e - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xa4, hi: 0xa7}, - // Block 0x71, offset 0x260 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xab, hi: 0xac}, - // Block 0x72, offset 0x262 - {value: 0x0000, lo: 0x05}, - {value: 0x812e, lo: 0x86, hi: 0x87}, - {value: 0x8133, lo: 0x88, hi: 0x8a}, - {value: 0x812e, lo: 0x8b, hi: 0x8b}, - {value: 0x8133, lo: 0x8c, hi: 0x8c}, - {value: 0x812e, lo: 0x8d, hi: 0x90}, - // Block 0x73, offset 0x268 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x86, hi: 0x86}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x74, offset 0x26b - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x424f, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4259, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x4263, lo: 0xab, hi: 0xab}, - {value: 0x8105, lo: 0xb9, hi: 0xba}, - // Block 0x75, offset 0x273 - {value: 0x0000, lo: 0x06}, - {value: 0x8133, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d8b, lo: 0xae, hi: 0xae}, - {value: 0x2d95, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8105, lo: 0xb3, hi: 0xb4}, - // Block 0x76, offset 0x27a - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x80, hi: 0x80}, - {value: 0x8103, lo: 0x8a, hi: 0x8a}, - // Block 0x77, offset 0x27d - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xb5, hi: 0xb5}, - {value: 0x8103, lo: 0xb6, hi: 0xb6}, - // Block 0x78, offset 0x280 - {value: 0x0002, lo: 0x01}, - {value: 0x8103, lo: 0xa9, hi: 0xaa}, - // Block 0x79, offset 0x282 - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x7a, offset 0x285 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d9f, lo: 0x8b, hi: 0x8b}, - {value: 0x2da9, lo: 0x8c, hi: 0x8c}, - {value: 0x8105, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8133, lo: 0xa6, hi: 0xac}, - {value: 0x8133, lo: 0xb0, hi: 0xb4}, - // Block 0x7b, offset 0x28d - {value: 0x0000, lo: 0x03}, - {value: 0x8105, lo: 0x82, hi: 0x82}, - {value: 0x8103, lo: 0x86, hi: 0x86}, - {value: 0x8133, lo: 0x9e, hi: 0x9e}, - // Block 0x7c, offset 0x291 - {value: 0x6b4d, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2dbd, lo: 0xbb, hi: 0xbb}, - {value: 0x2db3, lo: 0xbc, hi: 0xbd}, - {value: 0x2dc7, lo: 0xbe, hi: 0xbe}, - // Block 0x7d, offset 0x298 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0x82, hi: 0x82}, - {value: 0x8103, lo: 0x83, hi: 0x83}, - // Block 0x7e, offset 0x29b - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dd1, lo: 0xba, hi: 0xba}, - {value: 0x2ddb, lo: 0xbb, hi: 0xbb}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x7f, offset 0x2a1 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0x80, hi: 0x80}, - // Block 0x80, offset 0x2a3 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xbf, hi: 0xbf}, - // Block 0x81, offset 0x2a5 - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xb6, hi: 0xb6}, - {value: 0x8103, lo: 0xb7, hi: 0xb7}, - // Block 0x82, offset 0x2a8 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xab, hi: 0xab}, - // Block 0x83, offset 0x2aa - {value: 0x0000, lo: 0x02}, - {value: 0x8105, lo: 0xb9, hi: 0xb9}, - {value: 0x8103, lo: 0xba, hi: 0xba}, - // Block 0x84, offset 0x2ad - {value: 0x0000, lo: 0x04}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb5, hi: 0xb5}, - {value: 0x2de5, lo: 0xb8, hi: 0xb8}, - {value: 0x8105, lo: 0xbd, hi: 0xbe}, - // Block 0x85, offset 0x2b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8103, lo: 0x83, hi: 0x83}, - // Block 0x86, offset 0x2b4 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xa0, hi: 0xa0}, - // Block 0x87, offset 0x2b6 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0xb4, hi: 0xb4}, - // Block 0x88, offset 0x2b8 - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x87, hi: 0x87}, - // Block 0x89, offset 0x2ba - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x99, hi: 0x99}, - // Block 0x8a, offset 0x2bc - {value: 0x0000, lo: 0x02}, - {value: 0x8103, lo: 0x82, hi: 0x82}, - {value: 0x8105, lo: 0x84, hi: 0x85}, - // Block 0x8b, offset 0x2bf - {value: 0x0000, lo: 0x01}, - {value: 0x8105, lo: 0x97, hi: 0x97}, - // Block 0x8c, offset 0x2c1 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x8d, offset 0x2c3 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xb0, hi: 0xb6}, - // Block 0x8e, offset 0x2c5 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb0, hi: 0xb1}, - // Block 0x8f, offset 0x2c7 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x90, offset 0x2c9 - {value: 0x0000, lo: 0x0c}, - {value: 0x45e3, lo: 0x9e, hi: 0x9e}, - {value: 0x45ed, lo: 0x9f, hi: 0x9f}, - {value: 0x4621, lo: 0xa0, hi: 0xa0}, - {value: 0x462f, lo: 0xa1, hi: 0xa1}, - {value: 0x463d, lo: 0xa2, hi: 0xa2}, - {value: 0x464b, lo: 0xa3, hi: 0xa3}, - {value: 0x4659, lo: 0xa4, hi: 0xa4}, - {value: 0x812c, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8131, lo: 0xad, hi: 0xad}, - {value: 0x812c, lo: 0xae, hi: 0xb2}, - {value: 0x812e, lo: 0xbb, hi: 0xbf}, - // Block 0x91, offset 0x2d6 - {value: 0x0000, lo: 0x09}, - {value: 0x812e, lo: 0x80, hi: 0x82}, - {value: 0x8133, lo: 0x85, hi: 0x89}, - {value: 0x812e, lo: 0x8a, hi: 0x8b}, - {value: 0x8133, lo: 0xaa, hi: 0xad}, - {value: 0x45f7, lo: 0xbb, hi: 0xbb}, - {value: 0x4601, lo: 0xbc, hi: 0xbc}, - {value: 0x4667, lo: 0xbd, hi: 0xbd}, - {value: 0x4683, lo: 0xbe, hi: 0xbe}, - {value: 0x4675, lo: 0xbf, hi: 0xbf}, - // Block 0x92, offset 0x2e0 - {value: 0x0000, lo: 0x01}, - {value: 0x4691, lo: 0x80, hi: 0x80}, - // Block 0x93, offset 0x2e2 - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0x82, hi: 0x84}, - // Block 0x94, offset 0x2e4 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x95, offset 0x2e8 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x96, offset 0x2ed - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x97, offset 0x2f9 - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x98, offset 0x2fe - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x99, offset 0x307 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x9a, offset 0x30d - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x9b, offset 0x312 - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x9c, offset 0x316 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x9d, offset 0x31b - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x9e, offset 0x31f - {value: 0x0003, lo: 0x0f}, - {value: 0x01bb, lo: 0x80, hi: 0x80}, - {value: 0x0462, lo: 0x81, hi: 0x81}, - {value: 0x01be, lo: 0x82, hi: 0x9a}, - {value: 0x045e, lo: 0x9b, hi: 0x9b}, - {value: 0x01ca, lo: 0x9c, hi: 0x9c}, - {value: 0x01d3, lo: 0x9d, hi: 0x9d}, - {value: 0x01d9, lo: 0x9e, hi: 0x9e}, - {value: 0x01fd, lo: 0x9f, hi: 0x9f}, - {value: 0x01ee, lo: 0xa0, hi: 0xa0}, - {value: 0x01eb, lo: 0xa1, hi: 0xa1}, - {value: 0x0176, lo: 0xa2, hi: 0xb2}, - {value: 0x018b, lo: 0xb3, hi: 0xb3}, - {value: 0x01a9, lo: 0xb4, hi: 0xba}, - {value: 0x0462, lo: 0xbb, hi: 0xbb}, - {value: 0x01be, lo: 0xbc, hi: 0xbf}, - // Block 0x9f, offset 0x32f - {value: 0x0003, lo: 0x0d}, - {value: 0x01ca, lo: 0x80, hi: 0x94}, - {value: 0x045e, lo: 0x95, hi: 0x95}, - {value: 0x01ca, lo: 0x96, hi: 0x96}, - {value: 0x01d3, lo: 0x97, hi: 0x97}, - {value: 0x01d9, lo: 0x98, hi: 0x98}, - {value: 0x01fd, lo: 0x99, hi: 0x99}, - {value: 0x01ee, lo: 0x9a, hi: 0x9a}, - {value: 0x01eb, lo: 0x9b, hi: 0x9b}, - {value: 0x0176, lo: 0x9c, hi: 0xac}, - {value: 0x018b, lo: 0xad, hi: 0xad}, - {value: 0x01a9, lo: 0xae, hi: 0xb4}, - {value: 0x0462, lo: 0xb5, hi: 0xb5}, - {value: 0x01be, lo: 0xb6, hi: 0xbf}, - // Block 0xa0, offset 0x33d - {value: 0x0003, lo: 0x0d}, - {value: 0x01dc, lo: 0x80, hi: 0x8e}, - {value: 0x045e, lo: 0x8f, hi: 0x8f}, - {value: 0x01ca, lo: 0x90, hi: 0x90}, - {value: 0x01d3, lo: 0x91, hi: 0x91}, - {value: 0x01d9, lo: 0x92, hi: 0x92}, - {value: 0x01fd, lo: 0x93, hi: 0x93}, - {value: 0x01ee, lo: 0x94, hi: 0x94}, - {value: 0x01eb, lo: 0x95, hi: 0x95}, - {value: 0x0176, lo: 0x96, hi: 0xa6}, - {value: 0x018b, lo: 0xa7, hi: 0xa7}, - {value: 0x01a9, lo: 0xa8, hi: 0xae}, - {value: 0x0462, lo: 0xaf, hi: 0xaf}, - {value: 0x01be, lo: 0xb0, hi: 0xbf}, - // Block 0xa1, offset 0x34b - {value: 0x0003, lo: 0x0d}, - {value: 0x01ee, lo: 0x80, hi: 0x88}, - {value: 0x045e, lo: 0x89, hi: 0x89}, - {value: 0x01ca, lo: 0x8a, hi: 0x8a}, - {value: 0x01d3, lo: 0x8b, hi: 0x8b}, - {value: 0x01d9, lo: 0x8c, hi: 0x8c}, - {value: 0x01fd, lo: 0x8d, hi: 0x8d}, - {value: 0x01ee, lo: 0x8e, hi: 0x8e}, - {value: 0x01eb, lo: 0x8f, hi: 0x8f}, - {value: 0x0176, lo: 0x90, hi: 0xa0}, - {value: 0x018b, lo: 0xa1, hi: 0xa1}, - {value: 0x01a9, lo: 0xa2, hi: 0xa8}, - {value: 0x0462, lo: 0xa9, hi: 0xa9}, - {value: 0x01be, lo: 0xaa, hi: 0xbf}, - // Block 0xa2, offset 0x359 - {value: 0x0000, lo: 0x05}, - {value: 0x8133, lo: 0x80, hi: 0x86}, - {value: 0x8133, lo: 0x88, hi: 0x98}, - {value: 0x8133, lo: 0x9b, hi: 0xa1}, - {value: 0x8133, lo: 0xa3, hi: 0xa4}, - {value: 0x8133, lo: 0xa6, hi: 0xaa}, - // Block 0xa3, offset 0x35f - {value: 0x0000, lo: 0x01}, - {value: 0x8133, lo: 0xac, hi: 0xaf}, - // Block 0xa4, offset 0x361 - {value: 0x0000, lo: 0x01}, - {value: 0x812e, lo: 0x90, hi: 0x96}, - // Block 0xa5, offset 0x363 - {value: 0x0000, lo: 0x02}, - {value: 0x8133, lo: 0x84, hi: 0x89}, - {value: 0x8103, lo: 0x8a, hi: 0x8a}, - // Block 0xa6, offset 0x366 - {value: 0x0002, lo: 0x0a}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1954, lo: 0x8a, hi: 0x8a}, - {value: 0x1987, lo: 0x8b, hi: 0x8b}, - {value: 0x19a2, lo: 0x8c, hi: 0x8c}, - {value: 0x19a8, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc6, lo: 0x8e, hi: 0x8e}, - {value: 0x19b4, lo: 0x8f, hi: 0x8f}, - {value: 0x197e, lo: 0xaa, hi: 0xaa}, - {value: 0x1981, lo: 0xab, hi: 0xab}, - {value: 0x1984, lo: 0xac, hi: 0xac}, - // Block 0xa7, offset 0x371 - {value: 0x0000, lo: 0x01}, - {value: 0x1942, lo: 0x90, hi: 0x90}, - // Block 0xa8, offset 0x373 - {value: 0x0028, lo: 0x09}, - {value: 0x286f, lo: 0x80, hi: 0x80}, - {value: 0x2833, lo: 0x81, hi: 0x81}, - {value: 0x283d, lo: 0x82, hi: 0x82}, - {value: 0x2851, lo: 0x83, hi: 0x84}, - {value: 0x285b, lo: 0x85, hi: 0x86}, - {value: 0x2847, lo: 0x87, hi: 0x87}, - {value: 0x2865, lo: 0x88, hi: 0x88}, - {value: 0x0b72, lo: 0x90, hi: 0x90}, - {value: 0x08ea, lo: 0x91, hi: 0x91}, - // Block 0xa9, offset 0x37d - {value: 0x0002, lo: 0x01}, - {value: 0x0021, lo: 0xb0, hi: 0xb9}, -} - -// recompMap: 7528 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once - -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\x7f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\x7f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "\x195\x190\x00\x01\x198" + // 0x19351930: 0x00011938 - "" - // Total size of tables: 55KB (56160 bytes) diff --git a/backend/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/backend/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go deleted file mode 100644 index 0175eae5..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +++ /dev/null @@ -1,7638 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -//go:build !go1.10 -// +build !go1.10 - -package norm - -import "sync" - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "9.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [55]uint8{ - 0, 1, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, - 84, 91, 103, 107, 118, 122, 129, 130, - 132, 202, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x186D - firstCCC = 0x2C9E - endMulti = 0x2F60 - firstLeadingCCC = 0x49AE - firstCCCZeroExcept = 0x4A78 - firstStarterWithNLead = 0x4A9F - lastDecomp = 0x4AA1 - maxDecomp = 0x8000 -) - -// decomps: 19105 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, - 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, - 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, - 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, - 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, - 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, - 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, - 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, - 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, - 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, - 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, - 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, - 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, - 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, - 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, - 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, - 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, - 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, - // Bytes 200 - 23f - 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, - 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, - 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, - 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, - 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, - 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, - 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, - 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, - 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, - 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, - 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, - 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, - 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, - 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, - 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, - 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, - 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, - 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, - 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, - 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, - 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, - 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, - 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, - 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, - 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, - 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, - 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, - 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, - 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, - // Bytes 300 - 33f - 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, - 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, - 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, - 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, - 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, - 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, - 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, - 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, - // Bytes 340 - 37f - 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, - 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, - 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, - 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, - 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, - 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, - 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, - 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, - // Bytes 380 - 3bf - 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, - 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, - 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, - 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, - 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, - 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, - 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, - 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, - // Bytes 3c0 - 3ff - 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, - 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, - 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, - 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, - 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, - 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, - 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, - 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, - // Bytes 400 - 43f - 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, - 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, - 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, - 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, - 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, - 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, - 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, - 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, - // Bytes 440 - 47f - 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, - 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, - 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, - 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, - 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, - 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, - 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, - 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, - // Bytes 480 - 4bf - 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, - 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, - 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, - 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, - 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, - 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, - 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, - 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, - // Bytes 4c0 - 4ff - 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, - 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, - 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, - 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, - 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, - 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, - 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, - 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, - // Bytes 500 - 53f - 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, - 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, - 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, - 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, - 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, - 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, - 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, - 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, - // Bytes 540 - 57f - 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, - 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, - 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, - 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, - 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, - 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, - 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, - 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, - // Bytes 580 - 5bf - 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, - 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, - 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, - 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, - 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, - 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, - 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, - 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, - // Bytes 5c0 - 5ff - 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, - 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, - 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, - 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, - 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, - 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, - 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, - 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, - // Bytes 600 - 63f - 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, - 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, - 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, - 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, - 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, - 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, - 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, - 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, - // Bytes 640 - 67f - 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, - 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, - 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, - 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, - 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, - 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, - 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, - 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, - // Bytes 680 - 6bf - 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, - 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, - 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, - 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, - 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, - 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, - 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, - 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, - // Bytes 6c0 - 6ff - 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, - 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, - 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, - 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, - 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, - 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, - 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, - 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, - // Bytes 700 - 73f - 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, - 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, - 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, - 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, - 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, - 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, - 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, - 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, - // Bytes 740 - 77f - 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, - 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, - 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, - 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, - 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, - 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, - 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, - 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, - // Bytes 780 - 7bf - 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, - 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, - 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, - 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, - 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, - 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, - 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, - 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, - // Bytes 7c0 - 7ff - 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, - 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, - 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, - 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, - 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, - 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, - 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, - 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, - // Bytes 800 - 83f - 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, - 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, - 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, - 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, - 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, - 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, - 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, - 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, - // Bytes 840 - 87f - 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, - 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, - 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, - 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, - 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, - 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, - 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, - 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, - // Bytes 880 - 8bf - 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, - 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, - 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, - 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, - 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, - 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, - 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, - 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, - // Bytes 8c0 - 8ff - 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, - 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, - 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, - 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, - 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, - 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, - 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, - 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, - // Bytes 900 - 93f - 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, - 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, - 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, - 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, - 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, - 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, - 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, - 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, - // Bytes 940 - 97f - 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, - 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, - 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, - 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, - 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, - 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, - 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, - 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, - // Bytes 980 - 9bf - 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, - 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, - 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, - 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, - 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, - 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, - 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, - 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, - // Bytes 9c0 - 9ff - 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, - 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, - 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, - 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, - 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, - 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, - 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, - 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, - // Bytes a00 - a3f - 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, - 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, - 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, - 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, - 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, - 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, - 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, - 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, - // Bytes a40 - a7f - 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, - 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, - 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, - 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, - 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, - 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, - 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, - 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, - // Bytes a80 - abf - 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, - 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, - 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, - 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, - 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, - 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, - 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, - 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, - // Bytes ac0 - aff - 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, - 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, - 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, - 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, - 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, - 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, - 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, - 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, - // Bytes b00 - b3f - 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, - 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, - 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, - 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, - 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, - 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, - 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, - 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, - // Bytes b40 - b7f - 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, - 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, - 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, - 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, - 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, - 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, - 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, - 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, - // Bytes b80 - bbf - 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, - 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, - 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, - 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, - 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, - 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, - 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, - 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, - // Bytes bc0 - bff - 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, - 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, - 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, - 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, - 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, - 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, - 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, - 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, - // Bytes c00 - c3f - 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, - 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, - 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, - 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, - 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, - 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, - 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, - 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, - // Bytes c40 - c7f - 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, - 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, - 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, - 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, - 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, - 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, - 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, - 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, - // Bytes c80 - cbf - 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, - 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, - 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, - 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, - 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, - 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, - 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, - 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, - // Bytes cc0 - cff - 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, - 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, - 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, - 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, - 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, - 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, - 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, - 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, - // Bytes d00 - d3f - 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, - 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, - 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, - 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, - 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, - 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, - 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, - 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, - // Bytes d40 - d7f - 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, - 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, - 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, - 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, - 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, - 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, - 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, - 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, - // Bytes d80 - dbf - 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, - 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, - 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, - 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, - 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, - 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, - 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, - 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, - // Bytes dc0 - dff - 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, - 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, - 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, - 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, - 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, - 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, - 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, - 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, - // Bytes e00 - e3f - 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, - 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, - 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, - 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, - 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, - 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, - 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, - 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, - // Bytes e40 - e7f - 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, - 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, - 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, - 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, - 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, - 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, - 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, - 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, - // Bytes e80 - ebf - 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, - 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, - 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, - 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, - 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, - 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, - 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, - 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, - // Bytes ec0 - eff - 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, - 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, - 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, - 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, - 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, - 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, - 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, - 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, - // Bytes f00 - f3f - 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, - 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, - 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, - 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, - 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, - 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, - 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, - 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, - // Bytes f40 - f7f - 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, - 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, - 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, - 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, - 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, - 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, - 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, - 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, - // Bytes f80 - fbf - 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, - 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, - 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, - 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, - 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, - 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, - 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, - 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, - // Bytes fc0 - fff - 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, - 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, - 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, - 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, - 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, - 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, - 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, - 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, - // Bytes 1000 - 103f - 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, - 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, - 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, - 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, - 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, - 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, - 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, - 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, - // Bytes 1040 - 107f - 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, - 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, - 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, - 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, - 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, - 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, - 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, - 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, - // Bytes 1080 - 10bf - 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, - 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, - 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, - 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, - 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, - 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, - 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, - 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, - // Bytes 10c0 - 10ff - 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, - 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, - 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, - 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, - 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, - 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, - 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, - 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, - // Bytes 1100 - 113f - 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, - 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, - 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, - 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, - 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, - 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, - 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, - 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, - // Bytes 1140 - 117f - 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, - 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, - 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, - 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, - 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, - 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, - 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, - 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, - // Bytes 1180 - 11bf - 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, - 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, - 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, - 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, - 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, - 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, - 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, - 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, - // Bytes 11c0 - 11ff - 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, - 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, - 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, - 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, - 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, - 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, - 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, - 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, - // Bytes 1200 - 123f - 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, - 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, - 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, - 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, - 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, - 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, - 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, - 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, - // Bytes 1240 - 127f - 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, - 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, - 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, - 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, - 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, - 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, - 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, - 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, - // Bytes 1280 - 12bf - 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, - 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, - 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, - 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, - 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, - 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, - 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, - 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, - // Bytes 12c0 - 12ff - 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, - 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, - 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, - 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, - 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, - 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, - 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, - 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, - // Bytes 1300 - 133f - 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, - 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, - 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, - 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, - 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, - 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, - 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, - 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, - // Bytes 1340 - 137f - 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, - 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, - 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, - 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, - 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, - 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, - 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, - 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, - // Bytes 1380 - 13bf - 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, - 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, - 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, - 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, - 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, - 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, - 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, - 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, - // Bytes 13c0 - 13ff - 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, - 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, - 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, - 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, - 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, - 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, - 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, - 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, - // Bytes 1400 - 143f - 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, - 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, - 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, - 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, - 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, - 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, - 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, - 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, - // Bytes 1440 - 147f - 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, - 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, - 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, - 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, - 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, - 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, - 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, - 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, - // Bytes 1480 - 14bf - 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, - 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, - 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, - 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, - 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, - 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, - 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, - 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, - // Bytes 14c0 - 14ff - 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, - 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, - 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, - 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, - 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, - 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, - 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, - 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, - // Bytes 1500 - 153f - 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, - 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, - 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, - 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, - 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, - 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, - 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, - 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, - // Bytes 1540 - 157f - 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, - 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, - 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, - 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, - 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, - 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, - 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, - 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, - // Bytes 1580 - 15bf - 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, - 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, - 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, - 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, - 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, - 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, - 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, - 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, - // Bytes 15c0 - 15ff - 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, - 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, - 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, - 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, - 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, - 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, - 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, - 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, - // Bytes 1600 - 163f - 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, - 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, - 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, - 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, - 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, - 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, - 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, - 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, - // Bytes 1640 - 167f - 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, - 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, - 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, - 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, - 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, - 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, - 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, - 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, - // Bytes 1680 - 16bf - 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, - 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, - 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, - 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, - 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, - 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, - 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, - 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, - // Bytes 16c0 - 16ff - 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, - 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, - 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, - 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, - 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, - 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, - 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, - 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, - // Bytes 1700 - 173f - 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, - 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, - 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, - 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, - 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, - 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, - 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, - 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, - // Bytes 1740 - 177f - 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, - 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, - 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, - 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, - 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, - 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, - 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, - 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, - // Bytes 1780 - 17bf - 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, - 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, - 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, - 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, - 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, - 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, - 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, - 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, - // Bytes 17c0 - 17ff - 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, - 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, - 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, - 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, - 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, - 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, - 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, - 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, - // Bytes 1800 - 183f - 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, - 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, - 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, - 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, - 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, - 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, - 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, - 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, - // Bytes 1840 - 187f - 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, - 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, - 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, - 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, - 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, - 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, - 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, - 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, - 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, - 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, - 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, - 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, - 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, - 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, - 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, - 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, - 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, - 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, - 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, - 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, - 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, - 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, - // Bytes 1900 - 193f - 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, - 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, - 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, - 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, - 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, - 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, - 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, - 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, - // Bytes 1940 - 197f - 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, - 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, - 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, - 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, - 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, - 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, - 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, - 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, - 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, - 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, - 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, - 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, - 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, - 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, - 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, - 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, - 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, - 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, - 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, - 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, - 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, - 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, - 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, - 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, - 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, - 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, - 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, - 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, - 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, - 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, - 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, - 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, - 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, - 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, - 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, - 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, - // Bytes 1a80 - 1abf - 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, - 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, - 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, - 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, - 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, - 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, - 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, - 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, - // Bytes 1ac0 - 1aff - 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, - 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, - 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, - 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, - 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, - 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, - 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, - 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, - // Bytes 1b00 - 1b3f - 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, - 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, - 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, - 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, - 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, - 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, - 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, - 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, - // Bytes 1b40 - 1b7f - 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, - 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, - 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, - 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, - 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, - 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, - 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, - 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, - // Bytes 1b80 - 1bbf - 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, - 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, - 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, - 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, - 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, - 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, - 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, - 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, - // Bytes 1bc0 - 1bff - 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, - 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, - 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, - 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, - 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, - 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, - 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, - 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, - // Bytes 1c00 - 1c3f - 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, - 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, - 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, - 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, - 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, - 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, - 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, - 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, - // Bytes 1c40 - 1c7f - 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, - 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, - 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, - 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, - 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, - 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, - 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, - 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, - // Bytes 1c80 - 1cbf - 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, - 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, - 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, - 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, - 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, - 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, - 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, - 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, - // Bytes 1cc0 - 1cff - 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, - 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, - 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, - 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, - 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, - 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, - 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, - 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, - // Bytes 1d00 - 1d3f - 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, - 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, - 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, - 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, - 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, - 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, - 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, - 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, - // Bytes 1d40 - 1d7f - 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, - 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, - 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, - 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, - 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, - 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, - 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, - 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, - // Bytes 1d80 - 1dbf - 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, - 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, - 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, - 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, - 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, - 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, - 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, - 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, - // Bytes 1dc0 - 1dff - 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, - 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, - 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, - 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, - 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, - 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, - 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, - 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, - // Bytes 1e00 - 1e3f - 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, - 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, - 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, - 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, - 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, - 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, - 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, - 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, - // Bytes 1e40 - 1e7f - 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, - 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, - 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, - 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, - 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, - 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, - 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, - 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1e80 - 1ebf - 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, - 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, - 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, - 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, - 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, - 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, - 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, - 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, - // Bytes 1ec0 - 1eff - 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, - 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, - 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, - 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, - 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, - 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, - 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, - 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, - // Bytes 1f00 - 1f3f - 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, - 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, - 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, - 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, - 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, - 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, - 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, - 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, - // Bytes 1f40 - 1f7f - 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, - 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, - 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, - 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, - 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, - 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, - 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, - 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, - // Bytes 1f80 - 1fbf - 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, - 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, - 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, - 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, - 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, - 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, - 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, - 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, - // Bytes 1fc0 - 1fff - 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, - 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, - 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, - 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, - 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, - 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, - 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, - 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, - // Bytes 2000 - 203f - 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, - 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, - 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, - 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, - 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, - 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, - 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, - 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, - // Bytes 2040 - 207f - 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, - 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, - 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, - 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, - // Bytes 2080 - 20bf - 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, - 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, - 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, - 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, - // Bytes 20c0 - 20ff - 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, - 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, - 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, - 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, - 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, - 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, - 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, - 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, - // Bytes 2100 - 213f - 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, - 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, - 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, - 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, - 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, - 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, - 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, - 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, - // Bytes 2140 - 217f - 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, - 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, - 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, - 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, - 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, - 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, - 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, - 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, - // Bytes 2180 - 21bf - 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, - 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, - // Bytes 21c0 - 21ff - 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, - // Bytes 2200 - 223f - 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, - // Bytes 2240 - 227f - 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, - // Bytes 2280 - 22bf - 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, - 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, - 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - // Bytes 22c0 - 22ff - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, - 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, - 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, - 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, - 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, - 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, - 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, - // Bytes 2300 - 233f - 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, - 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, - // Bytes 2340 - 237f - 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, - 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, - 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - // Bytes 2380 - 23bf - 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, - 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, - // Bytes 23c0 - 23ff - 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, - 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, - 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, - 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, - // Bytes 2400 - 243f - 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, - 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, - 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, - // Bytes 2440 - 247f - 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, - 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, - 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, - // Bytes 2480 - 24bf - 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, - 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, - 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, - // Bytes 24c0 - 24ff - 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, - 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, - 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, - // Bytes 2500 - 253f - 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, - 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, - 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - // Bytes 2540 - 257f - 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, - 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, - 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, - // Bytes 2580 - 25bf - 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, - 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, - // Bytes 25c0 - 25ff - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, - // Bytes 2600 - 263f - 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, - 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, - 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, - 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, - // Bytes 2640 - 267f - 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, - 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, - 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, - // Bytes 2680 - 26bf - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, - 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, - 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, - 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, - 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, - // Bytes 26c0 - 26ff - 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, - 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, - 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, - 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, - 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, - 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, - // Bytes 2700 - 273f - 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, - 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, - 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, - 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, - 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, - // Bytes 2740 - 277f - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, - // Bytes 2780 - 27bf - 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, - 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, - 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, - // Bytes 27c0 - 27ff - 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, - 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, - 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, - 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, - 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, - // Bytes 2800 - 283f - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, - 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, - // Bytes 2840 - 287f - 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, - 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, - // Bytes 2880 - 28bf - 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, - 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, - 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, - // Bytes 28c0 - 28ff - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, - 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, - // Bytes 2900 - 293f - 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, - 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, - // Bytes 2940 - 297f - 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, - 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, - // Bytes 2980 - 29bf - 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, - 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, - // Bytes 29c0 - 29ff - 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, - 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, - 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, - 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2a40 - 2a7f - 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - // Bytes 2a80 - 2abf - 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, - 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, - 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, - // Bytes 2b00 - 2b3f - 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, - // Bytes 2b40 - 2b7f - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, - // Bytes 2b80 - 2bbf - 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, - 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, - // Bytes 2bc0 - 2bff - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2c00 - 2c3f - 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, - // Bytes 2c40 - 2c7f - 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, - 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, - // Bytes 2c80 - 2cbf - 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2cc0 - 2cff - 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, - 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2d00 - 2d3f - 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, - 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, - 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, - 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - // Bytes 2d40 - 2d7f - 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, - // Bytes 2d80 - 2dbf - 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, - 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, - 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, - 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, - 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, - 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, - 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, - 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, - // Bytes 2dc0 - 2dff - 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, - 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, - 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, - 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, - 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, - 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, - 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, - // Bytes 2e00 - 2e3f - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e40 - 2e7f - 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, - 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e80 - 2ebf - 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, - 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, - 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - // Bytes 2ec0 - 2eff - 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, - 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2f00 - 2f3f - 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, - // Bytes 2f40 - 2f7f - 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, - 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, - 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, - 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, - 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, - 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, - // Bytes 2f80 - 2fbf - 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, - 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, - 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, - 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, - 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, - 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, - 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, - 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, - // Bytes 2fc0 - 2fff - 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, - 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, - 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, - 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, - 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, - 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, - 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, - 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, - // Bytes 3000 - 303f - 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, - 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, - 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, - 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, - 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, - 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, - 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, - 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, - // Bytes 3040 - 307f - 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, - 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, - 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, - 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, - 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, - 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, - 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, - 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, - // Bytes 3080 - 30bf - 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, - 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, - 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, - 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, - 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, - 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, - 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, - 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, - // Bytes 30c0 - 30ff - 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, - 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, - 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, - 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, - 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, - 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, - 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, - 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, - // Bytes 3100 - 313f - 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, - 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, - 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, - 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, - 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, - 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, - 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, - 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, - // Bytes 3140 - 317f - 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, - 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, - 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, - 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, - 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, - 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, - 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, - 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, - // Bytes 3180 - 31bf - 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, - 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, - 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, - 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, - 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, - 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, - 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, - 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, - // Bytes 31c0 - 31ff - 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, - 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, - 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, - 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, - 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, - 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, - 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, - 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, - // Bytes 3200 - 323f - 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, - 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, - 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, - 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, - 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, - 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, - 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, - 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, - // Bytes 3240 - 327f - 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, - 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, - 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, - 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, - 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, - 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, - 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, - 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, - // Bytes 3280 - 32bf - 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, - 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, - 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, - 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, - 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, - 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, - 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, - 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, - // Bytes 32c0 - 32ff - 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, - 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, - 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, - 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, - 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, - 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, - 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, - 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, - // Bytes 3300 - 333f - 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, - 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, - 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, - 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, - 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, - 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, - 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, - 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, - // Bytes 3340 - 337f - 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, - 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, - 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, - 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, - 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, - 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, - 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, - 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3380 - 33bf - 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, - 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, - 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, - 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, - 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, - 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, - 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, - 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, - // Bytes 33c0 - 33ff - 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, - 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, - 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, - 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, - 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, - 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, - 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, - 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, - // Bytes 3400 - 343f - 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, - 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, - 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, - 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, - 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, - 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, - 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, - 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, - // Bytes 3440 - 347f - 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, - 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, - 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, - 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, - 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, - 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, - 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, - 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, - // Bytes 3480 - 34bf - 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, - 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, - 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, - 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, - 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, - 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, - 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, - 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, - // Bytes 34c0 - 34ff - 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, - 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, - 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, - 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, - 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, - 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, - 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, - 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, - // Bytes 3500 - 353f - 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, - 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, - 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, - 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, - 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, - 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, - 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, - 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, - // Bytes 3540 - 357f - 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, - 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, - 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, - 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, - 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, - 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, - 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, - 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, - // Bytes 3580 - 35bf - 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, - 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, - 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, - 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, - 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, - 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, - 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, - 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, - // Bytes 35c0 - 35ff - 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, - 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, - 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, - 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, - 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, - // Bytes 3600 - 363f - 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, - 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, - // Bytes 3640 - 367f - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, - // Bytes 3680 - 36bf - 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, - 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, - 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, - // Bytes 36c0 - 36ff - 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, - 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, - 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, - 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, - 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, - 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, - 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, - // Bytes 3700 - 373f - 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, - 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3740 - 377f - 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, - 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, - 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, - 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, - 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, - // Bytes 3780 - 37bf - 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, - // Bytes 37c0 - 37ff - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, - 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, - 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, - 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, - 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3800 - 383f - 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, - 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, - 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, - 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, - 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, - 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, - 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, - 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, - // Bytes 3840 - 387f - 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, - 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, - 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, - 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, - 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, - 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3880 - 38bf - 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, - 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, - 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, - 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, - 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, - 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, - // Bytes 38c0 - 38ff - 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, - 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, - 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, - 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, - // Bytes 3900 - 393f - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, - 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, - 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, - 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, - // Bytes 3940 - 397f - 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, - 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, - 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, - 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, - 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, - 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, - 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, - // Bytes 3980 - 39bf - 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, - 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, - 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, - 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, - 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, - 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, - 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, - 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, - // Bytes 39c0 - 39ff - 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, - 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, - 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, - 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - // Bytes 3a00 - 3a3f - 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, - 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, - 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, - 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, - 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - // Bytes 3a40 - 3a7f - 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, - 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, - 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, - 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, - 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, - 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, - 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, - // Bytes 3a80 - 3abf - 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, - 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, - 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, - 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, - 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, - 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, - // Bytes 3ac0 - 3aff - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, - 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, - 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, - 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, - 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, - // Bytes 3b00 - 3b3f - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, - 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, - 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, - 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, - // Bytes 3b40 - 3b7f - 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, - 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, - 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, - 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, - 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, - // Bytes 3b80 - 3bbf - 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, - 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, - 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, - 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, - 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, - 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, - 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, - 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, - // Bytes 3bc0 - 3bff - 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, - 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3c00 - 3c3f - 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - // Bytes 3c40 - 3c7f - 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - // Bytes 3c80 - 3cbf - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, - // Bytes 3cc0 - 3cff - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, - 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 3d00 - 3d3f - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3d40 - 3d7f - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 3d80 - 3dbf - 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - // Bytes 3dc0 - 3dff - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - // Bytes 3e00 - 3e3f - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3e40 - 3e7f - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - // Bytes 3e80 - 3ebf - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - // Bytes 3ec0 - 3eff - 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, - 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, - // Bytes 3f00 - 3f3f - 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f40 - 3f7f - 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f80 - 3fbf - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, - // Bytes 3fc0 - 3fff - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4000 - 403f - 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4040 - 407f - 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4080 - 40bf - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 40c0 - 40ff - 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - // Bytes 4100 - 413f - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - // Bytes 4140 - 417f - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, - // Bytes 4180 - 41bf - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - // Bytes 41c0 - 41ff - 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - // Bytes 4200 - 423f - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, - // Bytes 4240 - 427f - 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, - 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, - 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, - 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, - 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, - 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, - 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, - 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, - // Bytes 4280 - 42bf - 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, - 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, - 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, - 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, - 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, - 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, - 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, - 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, - // Bytes 42c0 - 42ff - 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, - 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, - 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, - 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, - 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, - 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, - 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, - // Bytes 4300 - 433f - 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, - 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, - // Bytes 4340 - 437f - 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, - 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, - 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, - // Bytes 4380 - 43bf - 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, - 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, - // Bytes 43c0 - 43ff - 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, - 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, - 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, - // Bytes 4400 - 443f - 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, - 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, - 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, - 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, - 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, - 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, - 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, - // Bytes 4440 - 447f - 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, - 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, - 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, - 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, - 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, - 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, - 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, - // Bytes 4480 - 44bf - 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, - 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, - 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, - 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, - 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, - // Bytes 44c0 - 44ff - 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, - 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, - 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, - 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, - 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, - 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, - // Bytes 4500 - 453f - 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, - 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, - // Bytes 4540 - 457f - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, - // Bytes 4580 - 45bf - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, - // Bytes 45c0 - 45ff - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, - 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, - 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, - // Bytes 4600 - 463f - 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, - 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, - 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - // Bytes 4640 - 467f - 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, - 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, - 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - // Bytes 4680 - 46bf - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, - 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, - 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, - 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, - 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, - 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, - 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, - 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, - // Bytes 46c0 - 46ff - 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, - 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, - 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, - 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, - 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, - 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, - 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, - 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, - // Bytes 4700 - 473f - 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, - 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, - 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, - 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, - 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, - 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, - 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, - 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, - // Bytes 4740 - 477f - 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, - 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, - 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, - 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, - 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, - 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, - 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, - 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, - // Bytes 4780 - 47bf - 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, - 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, - 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, - 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, - 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, - 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, - // Bytes 47c0 - 47ff - 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, - // Bytes 4800 - 483f - 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, - 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, - 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, - 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, - // Bytes 4840 - 487f - 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, - 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, - 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, - 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, - 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, - // Bytes 4880 - 48bf - 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - // Bytes 48c0 - 48ff - 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - // Bytes 4900 - 493f - 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - // Bytes 4940 - 497f - 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - // Bytes 4980 - 49bf - 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, - 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, - 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, - // Bytes 49c0 - 49ff - 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, - // Bytes 4a00 - 4a3f - 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, - // Bytes 4a40 - 4a7f - 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, - 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, - 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, - 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, - // Bytes 4a80 - 4abf - 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, - 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 44: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 44 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 46 blocks, 2944 entries, 5888 bytes -// The third block is the zero block. -var nfcValues = [2944]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, - // Block 0x5, offset 0x140 - 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35a1, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, - 0x2c6: 0xa000, 0x2c7: 0x3709, - 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x3733, 0x302: 0x37b7, - 0x310: 0x370f, 0x311: 0x3793, - 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, - 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, - 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, - 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, - 0x338: 0x3787, 0x339: 0x380b, - // Block 0xd, offset 0x340 - 0x351: 0x812d, - 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, - 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, - 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, - 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, - 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, - 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, - 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, - 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, - 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, - 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x812d, - 0x3b0: 0x811e, - // Block 0xf, offset 0x3c0 - 0x3c5: 0xa000, - 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, - 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, - 0x3d2: 0x2d4e, - 0x3f4: 0x8102, 0x3f5: 0x9900, - 0x3fa: 0xa000, 0x3fb: 0x2d56, - 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, - // Block 0x10, offset 0x400 - 0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2, - 0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0, - 0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df, - 0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85, - 0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93, - 0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c, - 0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370, - 0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a, - 0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de, - 0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7, - 0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc, - // Block 0x11, offset 0x440 - 0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a, - 0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e, - 0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9, - 0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465, - 0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26, - 0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791, - 0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b, - 0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4, - 0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f, - 0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49, - 0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519, - // Block 0x12, offset 0x480 - 0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532, - 0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541, - 0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582, - 0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6, - 0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1, - 0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f, - 0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15, - 0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23, - 0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a, - 0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c, - 0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70, - 0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1, - 0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf, - 0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6, - 0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5, - 0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11, - 0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73, - 0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a, - 0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578, - 0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a, - // Block 0x14, offset 0x500 - 0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e, - 0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6, - 0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c, - 0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0, - 0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00, - 0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966, - 0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8, - 0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6, - 0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38, - 0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30, - 0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40, - // Block 0x15, offset 0x540 - 0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60, - 0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58, - 0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a, - 0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8, - 0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70, - 0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996, - 0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2, - 0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916, - 0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a, - 0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c, - 0x57c: 0x4870, 0x57d: 0x4342, - // Block 0x16, offset 0x580 - 0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac, - 0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee, - 0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0, - 0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2, - 0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134, - 0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a, - 0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88, - 0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a, - 0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98, - 0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee, - 0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0, - 0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa, - 0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af, - 0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10, - 0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4, - 0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec, - 0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b, - 0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081, - 0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8, - 0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318, - 0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100, - // Block 0x18, offset 0x600 - 0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000, - 0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b, - 0x60d: 0xa000, - 0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29, - 0x624: 0xa000, 0x625: 0xa000, - 0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a, - 0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45, - 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000, - 0x63c: 0xa000, 0x63d: 0xa000, - // Block 0x19, offset 0x640 - 0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d, - 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b, - 0x651: 0xa000, - 0x652: 0xa000, - 0x662: 0xa000, - 0x668: 0xa000, 0x669: 0xa000, - 0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5, - 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000, - // Block 0x1a, offset 0x680 - 0x686: 0xa000, 0x68b: 0xa000, - 0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000, - 0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000, - 0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000, - 0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60, - 0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78, - 0x6af: 0xa000, - 0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000, - 0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000, - 0x6bc: 0x3fc0, 0x6bd: 0x3fc8, - // Block 0x1b, offset 0x6c0 - 0x6d4: 0x3f00, - 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000, - 0x6de: 0x3fd0, - 0x6e6: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000, - 0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000, - 0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000, - 0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000, - // Block 0x1c, offset 0x700 - 0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040, - 0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050, - 0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060, - 0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080, - 0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0, - 0x72f: 0xa000, - 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8, - 0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0, - 0x73d: 0xa000, 0x73e: 0x40c8, - // Block 0x1d, offset 0x740 - 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb, - 0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943, - 0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3, - 0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43, - 0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87, - 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283, - 0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f, - 0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853, - 0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b, - 0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b, - 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b, - // Block 0x1e, offset 0x780 - 0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b, - 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f, - 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7, - 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127, - 0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357, - 0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873, - 0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3, - 0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b, - 0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57, - 0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb, - 0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f, - 0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3, - 0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83, - 0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193, - 0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b, - 0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b, - 0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f, - 0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b, - 0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753, - 0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777, - 0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73, - // Block 0x20, offset 0x800 - 0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3, - 0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47, - 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af, - 0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df, - 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817, - 0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3, - 0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457, - 0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b, - 0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27, - 0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f, - 0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b, - // Block 0x21, offset 0x840 - 0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03, - 0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27, - 0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af, - 0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3, - 0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb, - 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353, - 0x865: 0x1407, 0x866: 0x1433, - 0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7, - 0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897, - 0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93, - 0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3, - // Block 0x22, offset 0x880 - 0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b, - 0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f, - 0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f, - 0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f, - 0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff, - 0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f, - 0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f, - 0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3, - 0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7, - 0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963, - 0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b, - 0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb, - 0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf, - 0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f, - 0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013, - 0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f, - 0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b, - 0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b, - 0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb, - 0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343, - 0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f, - // Block 0x24, offset 0x900 - 0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b, - 0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b, - 0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2, - 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809, - 0x918: 0x1617, 0x919: 0x1627, - // Block 0x25, offset 0x940 - 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757, - 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773, - 0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3, - 0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf, - 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff, - 0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f, - 0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867, - 0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af, - 0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93, - 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3, - 0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917, - // Block 0x26, offset 0x980 - 0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f, - 0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983, - 0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf, - 0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3, - 0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef, - 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23, - 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37, - 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63, - 0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f, - 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692, - 0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb, - 0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f, - 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6, - 0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9, - 0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83, - 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3, - 0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf, - 0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7, - 0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f, - 0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b, - 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f, - // Block 0x28, offset 0xa00 - 0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87, - 0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb, - 0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7, - 0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663, - 0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd, - 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7, - 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b, - 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f, - 0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7, - 0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700, - 0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb, - // Block 0x29, offset 0xa40 - 0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23, - 0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53, - 0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714, - 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b, - 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719, - 0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728, - 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37, - 0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57, - 0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737, - 0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741, - 0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff, - 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637, - 0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f, - 0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093, - 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782, - 0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3, - 0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7, - 0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133, - 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa, - 0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4, - 0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197, - // Block 0x2b, offset 0xac0 - 0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7, - 0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7, - 0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b, - 0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd, - 0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f, - 0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f, - 0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273, - 0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677, - 0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7, - 0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb, - 0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f, - // Block 0x2c, offset 0xb00 - 0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5, - 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa, - 0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b, - 0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7, - 0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665, - 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f, - 0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477, - 0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693, - 0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb, - 0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b, - 0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b, - // Block 0x2d, offset 0xb40 - 0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567, - 0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7, - 0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7, - 0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef, - 0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30, - 0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33, - 0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f, - 0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46, - 0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c, - 0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54, - // Block 0x5, offset 0x140 - 0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a, - 0x14d: 0x5b, - 0x15c: 0x5c, 0x15f: 0x5d, - 0x162: 0x5e, 0x164: 0x5f, - 0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65, - 0x170: 0x66, 0x173: 0x67, 0x177: 0x68, - 0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15, - // Block 0x6, offset 0x180 - 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, - 0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70, - 0x1ab: 0x71, - 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77, - 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, - // Block 0x8, offset 0x200 - 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, - 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, - 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, - 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, - 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, - // Block 0x9, offset 0x240 - 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, - 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, - 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, - 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, - 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, - 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, - 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, - 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, - // Block 0xa, offset 0x280 - 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, - 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, - 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, - 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, - 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, - 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, - 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, - 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, - 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, - 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, - 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, - // Block 0xc, offset 0x300 - 0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e, - 0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, - 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, - 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, - // Block 0xd, offset 0x340 - 0x347: 0x9c, - 0x34b: 0x9d, 0x34d: 0x9e, - 0x368: 0x9f, 0x36b: 0xa0, - // Block 0xe, offset 0x380 - 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, - 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7, - 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, - 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, - 0x3b0: 0x73, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xaf, 0x3ec: 0xb0, - // Block 0x10, offset 0x400 - 0x432: 0xb1, - // Block 0x11, offset 0x440 - 0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4, - 0x449: 0xb5, - // Block 0x12, offset 0x480 - 0x480: 0xb6, - 0x4a3: 0xb7, 0x4a5: 0xb8, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xb9, - // Block 0x14, offset 0x500 - 0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a, - 0x528: 0x2b, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 142 entries, 284 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae} - -// nfcSparseValues: 688 entries, 2752 bytes -var nfcSparseValues = [688]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4840, lo: 0x8a, hi: 0x8a}, - {value: 0x485e, lo: 0x8b, hi: 0x8b}, - {value: 0x36c7, lo: 0x8c, hi: 0x8c}, - {value: 0x36df, lo: 0x8d, hi: 0x8d}, - {value: 0x4876, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x36fd, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - // Block 0xd, offset 0x62 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x67 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x69 - {value: 0x0000, lo: 0x10}, - {value: 0x8132, lo: 0x94, hi: 0xa1}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xa9, hi: 0xa9}, - {value: 0x8132, lo: 0xaa, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xaf}, - {value: 0x8116, lo: 0xb0, hi: 0xb0}, - {value: 0x8117, lo: 0xb1, hi: 0xb1}, - {value: 0x8118, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb5}, - {value: 0x812d, lo: 0xb6, hi: 0xb6}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x812d, lo: 0xb9, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbf}, - // Block 0x10, offset 0x7a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x11, offset 0x82 - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x12, offset 0x89 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x8c - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - // Block 0x14, offset 0x93 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x97 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x16, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x17, offset 0x9d - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x18, offset 0x9f - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x19, offset 0xa8 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1a, offset 0xac - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1b, offset 0xb3 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xb8 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1d, offset 0xbb - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1e, offset 0xc5 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1f, offset 0xc7 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x20, offset 0xce - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x21, offset 0xd6 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x22, offset 0xd9 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x23, offset 0xdb - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x24, offset 0xdd - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x25, offset 0xdf - {value: 0x0000, lo: 0x04}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0xe4 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x27, offset 0xf5 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x28, offset 0x101 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x29, offset 0x103 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x2a, offset 0x109 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2b, offset 0x10b - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x10d - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x10f - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x111 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x113 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x115 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x118 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x11b - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x11d - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x120 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x123 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x127 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x37, offset 0x12c - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x135 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x137 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x13a - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x13c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x147 - {value: 0x0000, lo: 0x0f}, - {value: 0x8132, lo: 0x80, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x82}, - {value: 0x8132, lo: 0x83, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8a}, - {value: 0x8132, lo: 0x8b, hi: 0x8c}, - {value: 0x8135, lo: 0x8d, hi: 0x8d}, - {value: 0x812a, lo: 0x8e, hi: 0x8e}, - {value: 0x812d, lo: 0x8f, hi: 0x8f}, - {value: 0x8129, lo: 0x90, hi: 0x90}, - {value: 0x8132, lo: 0x91, hi: 0xb5}, - {value: 0x8132, lo: 0xbb, hi: 0xbb}, - {value: 0x8134, lo: 0xbc, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x3d, offset 0x157 - {value: 0x0004, lo: 0x03}, - {value: 0x0433, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3e, offset 0x15b - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x3f, offset 0x169 - {value: 0x427b, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x40, offset 0x16c - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x41, offset 0x172 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x42, offset 0x178 - {value: 0x6408, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x43, offset 0x183 - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x44, offset 0x187 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x45, offset 0x189 - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x46, offset 0x18b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x47, offset 0x18d - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x48, offset 0x18f - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x49, offset 0x191 - {value: 0x0000, lo: 0x05}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xaf}, - // Block 0x4a, offset 0x197 - {value: 0x0000, lo: 0x03}, - {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, - {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, - {value: 0x4a9f, lo: 0xba, hi: 0xbf}, - // Block 0x4b, offset 0x19b - {value: 0x0000, lo: 0x01}, - {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, - // Block 0x4c, offset 0x19d - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4d, offset 0x19f - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4e, offset 0x1a7 - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4f, offset 0x1ab - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x50, offset 0x1ae - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x51, offset 0x1b0 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x52, offset 0x1b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x53, offset 0x1b4 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x54, offset 0x1b7 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x55, offset 0x1b9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x56, offset 0x1bb - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x57, offset 0x1bd - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x58, offset 0x1bf - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x59, offset 0x1c5 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x5a, offset 0x1c8 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x5b, offset 0x1ca - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5c, offset 0x1d1 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5d, offset 0x1d7 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5e, offset 0x1dd - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5f, offset 0x1e5 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x60, offset 0x1eb - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x61, offset 0x1f1 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x62, offset 0x1f7 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x63, offset 0x1fb - {value: 0x0006, lo: 0x0d}, - {value: 0x4390, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4402, lo: 0x9f, hi: 0x9f}, - {value: 0x43f0, lo: 0xaa, hi: 0xab}, - {value: 0x44f4, lo: 0xac, hi: 0xac}, - {value: 0x44fc, lo: 0xad, hi: 0xad}, - {value: 0x4348, lo: 0xae, hi: 0xb1}, - {value: 0x4366, lo: 0xb2, hi: 0xb4}, - {value: 0x437e, lo: 0xb5, hi: 0xb6}, - {value: 0x438a, lo: 0xb8, hi: 0xb8}, - {value: 0x4396, lo: 0xb9, hi: 0xbb}, - {value: 0x43ae, lo: 0xbc, hi: 0xbc}, - {value: 0x43b4, lo: 0xbe, hi: 0xbe}, - // Block 0x64, offset 0x209 - {value: 0x0006, lo: 0x08}, - {value: 0x43ba, lo: 0x80, hi: 0x81}, - {value: 0x43c6, lo: 0x83, hi: 0x84}, - {value: 0x43d8, lo: 0x86, hi: 0x89}, - {value: 0x43fc, lo: 0x8a, hi: 0x8a}, - {value: 0x4378, lo: 0x8b, hi: 0x8b}, - {value: 0x4360, lo: 0x8c, hi: 0x8c}, - {value: 0x43a8, lo: 0x8d, hi: 0x8d}, - {value: 0x43d2, lo: 0x8e, hi: 0x8e}, - // Block 0x65, offset 0x212 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x66, offset 0x215 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x67, offset 0x218 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x68, offset 0x21a - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x69, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x6a, offset 0x21f - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xa0, hi: 0xa6}, - {value: 0x812d, lo: 0xa7, hi: 0xad}, - {value: 0x8132, lo: 0xae, hi: 0xaf}, - // Block 0x6b, offset 0x223 - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6c, offset 0x228 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6d, offset 0x22a - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6e, offset 0x22c - {value: 0x0000, lo: 0x04}, - {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, - {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, - {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, - {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, - // Block 0x6f, offset 0x231 - {value: 0x0000, lo: 0x05}, - {value: 0x4a9f, lo: 0x82, hi: 0x87}, - {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, - {value: 0x4a9f, lo: 0x92, hi: 0x97}, - {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x70, offset 0x237 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x71, offset 0x239 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x72, offset 0x23b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x73, offset 0x23d - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x74, offset 0x243 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x75, offset 0x246 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x76, offset 0x249 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x77, offset 0x251 - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x78, offset 0x258 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x79, offset 0x25b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x7a, offset 0x25e - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7b, offset 0x260 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x7c, offset 0x268 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - // Block 0x7d, offset 0x26b - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7e, offset 0x272 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7f, offset 0x275 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x80, offset 0x27b - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x81, offset 0x27d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x82, offset 0x280 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x83, offset 0x282 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x84, offset 0x284 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x85, offset 0x286 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x86, offset 0x288 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x87, offset 0x295 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x88, offset 0x29f - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x89, offset 0x2a1 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8a, offset 0x2a3 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x8b, offset 0x2a9 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x8c, offset 0x2ab - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x8d, offset 0x2ae - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 90: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 90 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 92 blocks, 5888 entries, 11776 bytes -// The third block is the zero block. -var nfkcValues = [5888]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, - // Block 0x5, offset 0x140 - 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2dee, 0x185: 0x2df4, - 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, - 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x42a5, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x425a, 0x285: 0x447b, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, - 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, - 0x306: 0xa000, 0x307: 0x3709, - 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x3733, 0x342: 0x37b7, - 0x350: 0x370f, 0x351: 0x3793, - 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, - 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, - 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, - 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, - 0x378: 0x3787, 0x379: 0x380b, - // Block 0xe, offset 0x380 - 0x387: 0x1d61, - 0x391: 0x812d, - 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, - 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, - 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, - 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, - 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, - 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, - 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, - 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x812d, - 0x3f0: 0x811e, 0x3f5: 0x1d84, - 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, - 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, - 0x412: 0x2d4e, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d56, - 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, - 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, - 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, - 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, - 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, - 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, - 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, - 0x46a: 0x01fd, - 0x478: 0x020c, - // Block 0x12, offset 0x480 - 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, - 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, - 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, - 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, - 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, - 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, - 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2, - 0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0, - 0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df, - 0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85, - 0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93, - 0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c, - 0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370, - 0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a, - 0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de, - 0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7, - 0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc, - // Block 0x14, offset 0x500 - 0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a, - 0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e, - 0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9, - 0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465, - 0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26, - 0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791, - 0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b, - 0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4, - 0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f, - 0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49, - 0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519, - // Block 0x15, offset 0x540 - 0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532, - 0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541, - 0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582, - 0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6, - 0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7, - 0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f, - 0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15, - 0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23, - 0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a, - 0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c, - 0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69, - // Block 0x16, offset 0x580 - 0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70, - 0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1, - 0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf, - 0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6, - 0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5, - 0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11, - 0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73, - 0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a, - 0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578, - 0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e, - 0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6, - 0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c, - 0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0, - 0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00, - 0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966, - 0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8, - 0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6, - 0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38, - 0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30, - 0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40, - // Block 0x18, offset 0x600 - 0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60, - 0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58, - 0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a, - 0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8, - 0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70, - 0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996, - 0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2, - 0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916, - 0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a, - 0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c, - 0x63c: 0x4870, 0x63d: 0x4342, - // Block 0x19, offset 0x640 - 0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac, - 0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee, - 0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0, - 0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2, - 0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134, - 0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a, - 0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88, - 0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a, - 0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98, - 0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee, - 0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287, - // Block 0x1a, offset 0x680 - 0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0, - 0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa, - 0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af, - 0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10, - 0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e, - 0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec, - 0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b, - 0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081, - 0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8, - 0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318, - 0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8, - 0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051, - 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053, - 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d, - 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065, - 0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8, - 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075, - 0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b, - 0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215, - 0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98, - 0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0, - // Block 0x1c, offset 0x700 - 0x700: 0x0463, 0x705: 0x0049, - 0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095, - 0x710: 0x222e, 0x711: 0x223a, - 0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8, - 0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0, - 0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963, - 0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071, - 0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b, - 0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62, - 0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50, - 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b, - // Block 0x1d, offset 0x740 - 0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000, - 0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b, - 0x74d: 0xa000, - 0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29, - 0x764: 0xa000, 0x765: 0xa000, - 0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a, - 0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45, - 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000, - 0x77c: 0xa000, 0x77d: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d, - 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b, - 0x791: 0xa000, - 0x792: 0xa000, - 0x7a2: 0xa000, - 0x7a8: 0xa000, 0x7a9: 0xa000, - 0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5, - 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000, - // Block 0x1f, offset 0x7c0 - 0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029, - 0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882, - 0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894, - 0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c, - 0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84, - 0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a, - // Block 0x20, offset 0x800 - 0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8, - 0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb, - 0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60, - 0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78, - 0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8, - 0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10, - 0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28, - 0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40, - 0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58, - 0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d, - 0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055, - // Block 0x21, offset 0x840 - 0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713, - 0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab, - 0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803, - 0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887, - 0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db, - 0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb, - 0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b, - 0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7, - 0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33, - 0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63, - 0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f, - // Block 0x22, offset 0x880 - 0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb, - 0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b, - 0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb, - 0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3, - 0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f, - 0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83, - 0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7, - 0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f, - 0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf, - 0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f, - 0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3, - 0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb, - 0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b, - 0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b, - 0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf, - 0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f, - 0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f, - 0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503, - 0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f, - 0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f, - 0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593, - // Block 0x24, offset 0x900 - 0x906: 0xa000, 0x90b: 0xa000, - 0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000, - 0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000, - 0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000, - 0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60, - 0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78, - 0x92f: 0xa000, - 0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000, - 0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000, - 0x93c: 0x3fc0, 0x93d: 0x3fc8, - // Block 0x25, offset 0x940 - 0x954: 0x3f00, - 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000, - 0x95e: 0x3fd0, 0x95f: 0x26b4, - 0x966: 0xa000, - 0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000, - 0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000, - 0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000, - 0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000, - // Block 0x26, offset 0x980 - 0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040, - 0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050, - 0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060, - 0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080, - 0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0, - 0x9af: 0xa000, - 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8, - 0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0, - 0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337, - 0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f, - 0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9, - 0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed, - 0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11, - 0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35, - 0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef, - 0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403, - 0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383, - 0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b, - 0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab, - // Block 0x28, offset 0xa00 - 0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb, - 0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7, - 0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3, - 0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7, - 0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff, - 0xa1e: 0x098f, 0xa1f: 0x072f, - // Block 0x29, offset 0xa40 - 0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072, - 0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096, - 0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741, - 0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780, - 0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac, - 0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108, - 0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0, - 0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e, - 0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144, - 0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114, - 0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6, - // Block 0x2a, offset 0xa80 - 0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03, - 0xa86: 0x0ca7, 0xa87: 0x10c7, - 0xa90: 0x1bc4, 0xa91: 0x18a9, - 0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb, - 0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3, - 0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327, - 0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b, - 0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20, - 0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50, - 0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88, - 0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58, - // Block 0x2b, offset 0xac0 - 0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af, - 0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f, - 0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b, - 0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f, - 0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f, - 0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b, - 0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f, - 0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b, - 0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee, - 0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900, - 0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912, - // Block 0x2c, offset 0xb00 - 0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11, - 0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0, - 0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3, - 0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7, - 0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f, - 0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b, - 0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543, - 0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b, - 0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f, - 0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597, - 0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3, - // Block 0x2d, offset 0xb40 - 0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a, - 0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2, - 0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6, - 0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c, - 0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6, - 0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da, - 0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8, - 0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51, - 0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920, - 0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06, - 0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de, - // Block 0x2e, offset 0xb80 - 0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c, - 0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90, - 0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6, - 0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984, - 0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07, - 0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4, - 0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2, - 0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a, - 0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47, - 0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701, - 0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969, - 0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35, - 0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c, - 0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9, - 0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0, - 0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40, - 0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996, - 0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad, - 0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38, - 0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b, - 0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984, - // Block 0x30, offset 0xc00 - 0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd, - 0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e, - 0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e, - 0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990, - 0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4, - 0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee, - 0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186, - 0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0, - 0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258, - 0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e, - 0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10, - // Block 0x31, offset 0xc40 - 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb, - 0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943, - 0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3, - 0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43, - 0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87, - 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283, - 0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f, - 0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853, - 0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b, - 0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b, - 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b, - // Block 0x32, offset 0xc80 - 0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b, - 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f, - 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7, - 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127, - 0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357, - 0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873, - 0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3, - 0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b, - 0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57, - 0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb, - 0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f, - 0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3, - 0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83, - 0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193, - 0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b, - 0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b, - 0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f, - 0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b, - 0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753, - 0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777, - 0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73, - // Block 0x34, offset 0xd00 - 0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3, - 0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47, - 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af, - 0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df, - 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817, - 0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3, - 0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457, - 0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b, - 0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27, - 0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f, - 0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b, - // Block 0x35, offset 0xd40 - 0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03, - 0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27, - 0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af, - 0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3, - 0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb, - 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353, - 0xd65: 0x1407, 0xd66: 0x1433, - 0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7, - 0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897, - 0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93, - 0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3, - // Block 0x36, offset 0xd80 - 0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b, - 0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f, - 0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f, - 0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f, - 0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff, - 0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f, - 0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f, - 0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3, - 0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7, - 0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963, - 0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b, - 0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb, - 0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf, - 0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f, - 0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013, - 0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f, - 0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b, - 0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b, - 0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb, - 0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343, - 0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f, - // Block 0x38, offset 0xe00 - 0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b, - 0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b, - 0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2, - 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809, - 0xe18: 0x1617, 0xe19: 0x1627, - // Block 0x39, offset 0xe40 - 0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f, - 0xe46: 0x1a5f, - 0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70, - 0xe5d: 0x4390, - 0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221, - 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017, - 0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e, - 0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e, - 0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2, - 0xe7c: 0x43ae, 0xe7e: 0x43b4, - // Block 0x3a, offset 0xe80 - 0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc, - 0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378, - 0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299, - 0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5, - 0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab, - 0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8, - 0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c, - 0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2, - 0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1, - 0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4, - 0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7, - // Block 0x3b, offset 0xec0 - 0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd, - 0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9, - 0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5, - 0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1, - 0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de, - 0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7, - 0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed, - 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308, - 0xef0: 0x4468, 0xef1: 0x4468, - // Block 0x3c, offset 0xf00 - 0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6, - 0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f, - 0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc, - 0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d, - 0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9, - 0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c, - 0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0, - 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302, - // Block 0x3d, offset 0xf40 - 0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89, - 0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb, - 0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded, - 0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29, - 0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b, - 0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9, - 0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00, - 0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32, - 0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50, - 0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e, - 0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87, - // Block 0x3e, offset 0xf80 - 0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf, - 0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd, - 0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff, - 0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022, - 0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c, - 0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6, - 0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7, - 0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6, - 0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8, - 0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10, - 0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96, - 0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1, - 0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027, - 0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1, - 0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e, - 0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5, - 0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29, - 0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60, - 0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9, - 0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05, - 0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64, - 0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91, - 0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe, - 0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff, - 0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031, - 0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4, - 0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92, - 0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0, - 0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1, - 0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74, - 0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33, - // Block 0x41, offset 0x1040 - 0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba, - 0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88, - 0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1, - 0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74, - 0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f, - 0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd, - 0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d, - 0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88, - 0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b, - 0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb, - 0x107c: 0x4408, 0x107d: 0x4408, - // Block 0x42, offset 0x1080 - 0x1090: 0x2311, 0x1091: 0x2326, - 0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357, - 0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4, - 0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5, - 0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc, - 0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430, - 0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c, - 0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f, - 0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df, - 0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e, - 0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c, - 0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548, - 0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c, - 0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365, - 0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406, - 0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e, - 0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca, - 0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7, - 0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f, - // Block 0x44, offset 0x1100 - 0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b, - 0x1106: 0x23c0, 0x1107: 0x2556, - 0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da, - 0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc, - 0x113c: 0x27d1, - // Block 0x45, offset 0x1140 - 0x1150: 0x0019, 0x1151: 0x0483, - 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf, - 0x1158: 0x04c3, 0x1159: 0x1b5c, - 0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132, - 0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d, - 0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132, - 0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011, - 0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab, - 0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b, - // Block 0x46, offset 0x1180 - 0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7, - 0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269, - 0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483, - 0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003, - 0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7, - 0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b, - 0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009, - 0x11aa: 0x000b, 0x11ab: 0x0041, - 0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4, - 0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e, - 0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456, - 0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462, - 0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c, - 0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242, - 0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248, - 0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b, - 0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251, - 0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a, - 0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260, - 0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263, - 0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266, - // Block 0x48, offset 0x1200 - 0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c, - 0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f, - 0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275, - 0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278, - 0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e, - 0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281, - 0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287, - 0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d, - 0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00, - 0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82, - 0x123c: 0x1f82, - // Block 0x49, offset 0x1240 - 0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b, - 0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097, - 0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3, - 0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af, - 0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb, - 0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f, - 0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7, - 0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f, - 0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb, - 0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503, - 0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f, - 0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547, - 0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f, - 0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583, - 0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7, - 0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b, - 0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327, - 0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b, - 0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337, - 0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f, - 0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b, - // Block 0x4b, offset 0x12c0 - 0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf, - 0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7, - 0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff, - 0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23, - 0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35, - 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264, - 0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b, - 0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473, - // Block 0x4c, offset 0x1300 - 0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d, - 0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085, - 0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091, - 0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d, - 0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9, - 0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5, - 0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176, - 0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188, - 0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a, - 0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9, - 0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5, - // Block 0x4d, offset 0x1340 - 0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0, - 0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209, - 0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027, - 0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033, - 0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b, - 0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023, - 0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f, - 0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027, - 0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033, - 0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b, - 0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033, - // Block 0x4e, offset 0x1380 - 0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a, - 0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e, - 0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263, - 0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e, - 0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4, - 0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248, - 0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290, - 0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f, - 0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242, - 0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272, - // Block 0x4f, offset 0x13c0 - 0x13c2: 0x0248, - 0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e, - 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263, - 0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e, - 0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4, - 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, - 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290, - 0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, - 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, - 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272, - 0x13fc: 0x0293, 0x13fe: 0x02cc, - // Block 0x50, offset 0x1400 - 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a, - 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e, - 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, - 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, - 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, - 0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251, - 0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, - 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, - 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242, - 0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, - // Block 0x51, offset 0x1440 - 0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8, - 0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927, - 0x1450: 0x1a8c, 0x1451: 0x1a90, - 0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8, - 0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0, - 0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8, - 0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0, - 0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1, - 0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d, - 0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059, - 0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061, - // Block 0x52, offset 0x1480 - 0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503, - 0x1490: 0x0c0f, 0x1491: 0x0a47, - 0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff, - 0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b, - 0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b, - 0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf, - 0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b, - 0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43, - 0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757, - 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773, - 0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3, - 0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf, - 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff, - 0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f, - 0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867, - 0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af, - 0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93, - 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3, - 0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917, - // Block 0x54, offset 0x1500 - 0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f, - 0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983, - 0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf, - 0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3, - 0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef, - 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23, - 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37, - 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63, - 0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f, - 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692, - 0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7, - // Block 0x55, offset 0x1540 - 0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb, - 0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f, - 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6, - 0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9, - 0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83, - 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3, - 0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf, - 0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7, - 0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f, - 0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b, - 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f, - // Block 0x56, offset 0x1580 - 0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87, - 0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb, - 0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7, - 0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663, - 0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd, - 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7, - 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b, - 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f, - 0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7, - 0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700, - 0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23, - 0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53, - 0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714, - 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b, - 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719, - 0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728, - 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37, - 0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57, - 0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737, - 0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741, - 0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b, - // Block 0x58, offset 0x1600 - 0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff, - 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637, - 0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f, - 0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093, - 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782, - 0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3, - 0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7, - 0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133, - 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa, - 0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4, - 0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197, - // Block 0x59, offset 0x1640 - 0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7, - 0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7, - 0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b, - 0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd, - 0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f, - 0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f, - 0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273, - 0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677, - 0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7, - 0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb, - 0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f, - // Block 0x5a, offset 0x1680 - 0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5, - 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa, - 0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b, - 0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7, - 0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665, - 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f, - 0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477, - 0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693, - 0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb, - 0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b, - 0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567, - 0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7, - 0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7, - 0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef, - 0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868, -} - -// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60, - 0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c, - 0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73, - 0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79, - 0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81, - // Block 0x5, offset 0x140 - 0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88, - 0x14d: 0x89, - 0x15c: 0x8a, 0x15f: 0x8b, - 0x162: 0x8c, 0x164: 0x8d, - 0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93, - 0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97, - 0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18, - // Block 0x6, offset 0x180 - 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d, - 0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0, - 0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1, - 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, - 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, - 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26, - 0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e, - // Block 0x8, offset 0x200 - 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, - 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, - 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, - 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, - 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, - // Block 0x9, offset 0x240 - 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, - 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, - 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, - 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, - 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, - 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, - 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, - 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, - // Block 0xa, offset 0x280 - 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, - 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, - 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, - 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, - 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, - 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, - 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, - 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, - 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, - 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, - 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, - // Block 0xc, offset 0x300 - 0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32, - 0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a, - 0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42, - 0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49, - // Block 0xd, offset 0x340 - 0x347: 0xc6, - 0x34b: 0xc7, 0x34d: 0xc8, - 0x368: 0xc9, 0x36b: 0xca, - // Block 0xe, offset 0x380 - 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, - 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1, - 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, - 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, - 0x3b0: 0xd7, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xda, 0x3ec: 0xdb, - // Block 0x10, offset 0x400 - 0x432: 0xdc, - // Block 0x11, offset 0x440 - 0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf, - 0x449: 0xe0, - 0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8, - 0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b, - // Block 0x12, offset 0x480 - 0x480: 0xef, - 0x4a3: 0xf0, 0x4a5: 0xf1, - 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3, - 0x4c8: 0x50, 0x4c9: 0xf4, - // Block 0x14, offset 0x500 - 0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58, - 0x528: 0x59, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 155 entries, 310 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361} - -// nfkcSparseValues: 875 entries, 3500 bytes -var nfkcSparseValues = [875]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x4278, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4264, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x425a, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x4291, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x221c, lo: 0xbc, hi: 0xbc}, - {value: 0x2210, lo: 0xbd, hi: 0xbd}, - {value: 0x22b2, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x426e, lo: 0x98, hi: 0x98}, - {value: 0x4273, lo: 0x99, hi: 0x9a}, - {value: 0x4296, lo: 0x9b, hi: 0x9b}, - {value: 0x425f, lo: 0x9c, hi: 0x9c}, - {value: 0x4282, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x0167, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - // Block 0xc, offset 0x6f - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x74 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x76 - {value: 0x0000, lo: 0x10}, - {value: 0x8132, lo: 0x94, hi: 0xa1}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xa9, hi: 0xa9}, - {value: 0x8132, lo: 0xaa, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xaf}, - {value: 0x8116, lo: 0xb0, hi: 0xb0}, - {value: 0x8117, lo: 0xb1, hi: 0xb1}, - {value: 0x8118, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb5}, - {value: 0x812d, lo: 0xb6, hi: 0xb6}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x812d, lo: 0xb9, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbf}, - // Block 0xf, offset 0x87 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x8f - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x96 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x99 - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - // Block 0x13, offset 0xa0 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0xa4 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0xa8 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0xaa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0xac - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0xb5 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xc0 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xc5 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xc8 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xd2 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xd4 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xdb - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xe3 - {value: 0x0000, lo: 0x03}, - {value: 0x2621, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xe7 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xe9 - {value: 0x0000, lo: 0x02}, - {value: 0x2636, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x23, offset 0xec - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x2628, lo: 0x9c, hi: 0x9c}, - {value: 0x262f, lo: 0x9d, hi: 0x9d}, - // Block 0x24, offset 0xf0 - {value: 0x0000, lo: 0x05}, - {value: 0x030b, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xf6 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x45f4, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x45ff, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0x107 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0x113 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0x115 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0x11b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0x11d - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2b, offset 0x11f - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x121 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x123 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x125 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x127 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x129 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x12c - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x12f - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x131 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x134 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x137 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x13b - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x37, offset 0x140 - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x149 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x14b - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x14e - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x150 - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x15b - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3d, offset 0x166 - {value: 0x0000, lo: 0x0f}, - {value: 0x8132, lo: 0x80, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x82}, - {value: 0x8132, lo: 0x83, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8a}, - {value: 0x8132, lo: 0x8b, hi: 0x8c}, - {value: 0x8135, lo: 0x8d, hi: 0x8d}, - {value: 0x812a, lo: 0x8e, hi: 0x8e}, - {value: 0x812d, lo: 0x8f, hi: 0x8f}, - {value: 0x8129, lo: 0x90, hi: 0x90}, - {value: 0x8132, lo: 0x91, hi: 0xb5}, - {value: 0x8132, lo: 0xbb, hi: 0xbb}, - {value: 0x8134, lo: 0xbc, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x3e, offset 0x176 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x429b, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1873, lo: 0xa5, hi: 0xa5}, - {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2691, lo: 0xb3, hi: 0xb3}, - {value: 0x27fe, lo: 0xb4, hi: 0xb4}, - {value: 0x2698, lo: 0xb6, hi: 0xb6}, - {value: 0x2808, lo: 0xb7, hi: 0xb7}, - {value: 0x186d, lo: 0xbc, hi: 0xbc}, - {value: 0x4269, lo: 0xbe, hi: 0xbe}, - // Block 0x3f, offset 0x184 - {value: 0x0002, lo: 0x0d}, - {value: 0x1933, lo: 0x87, hi: 0x87}, - {value: 0x1930, lo: 0x88, hi: 0x88}, - {value: 0x1870, lo: 0x89, hi: 0x89}, - {value: 0x298e, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x0467, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x40, offset 0x192 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x0467, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x1999, lo: 0xa8, hi: 0xa8}, - // Block 0x41, offset 0x1a2 - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x42, offset 0x1b0 - {value: 0x0007, lo: 0x06}, - {value: 0x2180, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x43, offset 0x1b7 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x44, offset 0x1bd - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0x269f, lo: 0xac, hi: 0xad}, - {value: 0x26a6, lo: 0xaf, hi: 0xaf}, - {value: 0x281c, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x45, offset 0x1cc - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x46, offset 0x1d0 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x47, offset 0x1d2 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x48, offset 0x1d6 - {value: 0x0000, lo: 0x01}, - {value: 0x299b, lo: 0x8c, hi: 0x8c}, - // Block 0x49, offset 0x1d8 - {value: 0x0263, lo: 0x02}, - {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, - {value: 0x192d, lo: 0xb5, hi: 0xb6}, - // Block 0x4a, offset 0x1db - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x4b, offset 0x1dd - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4c, offset 0x1e0 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4d, offset 0x1e2 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4e, offset 0x1e5 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4f, offset 0x1e7 - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x50, offset 0x1e9 - {value: 0x0000, lo: 0x01}, - {value: 0x162f, lo: 0xb3, hi: 0xb3}, - // Block 0x51, offset 0x1eb - {value: 0x0004, lo: 0x0b}, - {value: 0x1597, lo: 0x80, hi: 0x82}, - {value: 0x15af, lo: 0x83, hi: 0x83}, - {value: 0x15c7, lo: 0x84, hi: 0x85}, - {value: 0x15d7, lo: 0x86, hi: 0x89}, - {value: 0x15eb, lo: 0x8a, hi: 0x8c}, - {value: 0x15ff, lo: 0x8d, hi: 0x8d}, - {value: 0x1607, lo: 0x8e, hi: 0x8e}, - {value: 0x160f, lo: 0x8f, hi: 0x90}, - {value: 0x161b, lo: 0x91, hi: 0x93}, - {value: 0x162b, lo: 0x94, hi: 0x94}, - {value: 0x1633, lo: 0x95, hi: 0x95}, - // Block 0x52, offset 0x1f7 - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xae}, - {value: 0x812f, lo: 0xaf, hi: 0xaf}, - {value: 0x04b3, lo: 0xb6, hi: 0xb6}, - {value: 0x0887, lo: 0xb8, hi: 0xba}, - // Block 0x53, offset 0x201 - {value: 0x0006, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4a41, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4a4d, lo: 0xba, hi: 0xbf}, - // Block 0x54, offset 0x20b - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x55, offset 0x20e - {value: 0x0000, lo: 0x03}, - {value: 0x020f, lo: 0x9c, hi: 0x9c}, - {value: 0x0212, lo: 0x9d, hi: 0x9d}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x56, offset 0x212 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x57, offset 0x214 - {value: 0x0000, lo: 0x01}, - {value: 0x163b, lo: 0xb0, hi: 0xb0}, - // Block 0x58, offset 0x216 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x59, offset 0x218 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x5a, offset 0x21a - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x5b, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5c, offset 0x21f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5d, offset 0x221 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5e, offset 0x223 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5f, offset 0x225 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x60, offset 0x22b - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x61, offset 0x22e - {value: 0x0008, lo: 0x03}, - {value: 0x1637, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1643, lo: 0x9f, hi: 0x9f}, - // Block 0x62, offset 0x232 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x63, offset 0x234 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x64, offset 0x23b - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x65, offset 0x241 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x66, offset 0x247 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x67, offset 0x24f - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x68, offset 0x255 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x69, offset 0x25b - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x6a, offset 0x261 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x6b, offset 0x265 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6c, offset 0x267 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6d, offset 0x269 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6e, offset 0x26b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6f, offset 0x26d - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x70, offset 0x273 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x71, offset 0x276 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x279 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x73, offset 0x281 - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x74, offset 0x288 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x75, offset 0x28b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x76, offset 0x28e - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x77, offset 0x290 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x78, offset 0x298 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - // Block 0x79, offset 0x29b - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7a, offset 0x2a2 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7b, offset 0x2a5 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7c, offset 0x2ab - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7d, offset 0x2ad - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7e, offset 0x2af - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x7f, offset 0x2b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x80, offset 0x2b4 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x81, offset 0x2b6 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x82, offset 0x2b8 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x83, offset 0x2ba - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x84, offset 0x2c7 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x85, offset 0x2d1 - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x86, offset 0x2d3 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x87, offset 0x2d5 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x88, offset 0x2d9 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x89, offset 0x2de - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x8a, offset 0x2ea - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x8b, offset 0x2ef - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x8c, offset 0x2f8 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x8d, offset 0x2fe - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x8e, offset 0x303 - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x8f, offset 0x307 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x90, offset 0x30c - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x91, offset 0x310 - {value: 0x0003, lo: 0x0f}, - {value: 0x01b8, lo: 0x80, hi: 0x80}, - {value: 0x045f, lo: 0x81, hi: 0x81}, - {value: 0x01bb, lo: 0x82, hi: 0x9a}, - {value: 0x045b, lo: 0x9b, hi: 0x9b}, - {value: 0x01c7, lo: 0x9c, hi: 0x9c}, - {value: 0x01d0, lo: 0x9d, hi: 0x9d}, - {value: 0x01d6, lo: 0x9e, hi: 0x9e}, - {value: 0x01fa, lo: 0x9f, hi: 0x9f}, - {value: 0x01eb, lo: 0xa0, hi: 0xa0}, - {value: 0x01e8, lo: 0xa1, hi: 0xa1}, - {value: 0x0173, lo: 0xa2, hi: 0xb2}, - {value: 0x0188, lo: 0xb3, hi: 0xb3}, - {value: 0x01a6, lo: 0xb4, hi: 0xba}, - {value: 0x045f, lo: 0xbb, hi: 0xbb}, - {value: 0x01bb, lo: 0xbc, hi: 0xbf}, - // Block 0x92, offset 0x320 - {value: 0x0003, lo: 0x0d}, - {value: 0x01c7, lo: 0x80, hi: 0x94}, - {value: 0x045b, lo: 0x95, hi: 0x95}, - {value: 0x01c7, lo: 0x96, hi: 0x96}, - {value: 0x01d0, lo: 0x97, hi: 0x97}, - {value: 0x01d6, lo: 0x98, hi: 0x98}, - {value: 0x01fa, lo: 0x99, hi: 0x99}, - {value: 0x01eb, lo: 0x9a, hi: 0x9a}, - {value: 0x01e8, lo: 0x9b, hi: 0x9b}, - {value: 0x0173, lo: 0x9c, hi: 0xac}, - {value: 0x0188, lo: 0xad, hi: 0xad}, - {value: 0x01a6, lo: 0xae, hi: 0xb4}, - {value: 0x045f, lo: 0xb5, hi: 0xb5}, - {value: 0x01bb, lo: 0xb6, hi: 0xbf}, - // Block 0x93, offset 0x32e - {value: 0x0003, lo: 0x0d}, - {value: 0x01d9, lo: 0x80, hi: 0x8e}, - {value: 0x045b, lo: 0x8f, hi: 0x8f}, - {value: 0x01c7, lo: 0x90, hi: 0x90}, - {value: 0x01d0, lo: 0x91, hi: 0x91}, - {value: 0x01d6, lo: 0x92, hi: 0x92}, - {value: 0x01fa, lo: 0x93, hi: 0x93}, - {value: 0x01eb, lo: 0x94, hi: 0x94}, - {value: 0x01e8, lo: 0x95, hi: 0x95}, - {value: 0x0173, lo: 0x96, hi: 0xa6}, - {value: 0x0188, lo: 0xa7, hi: 0xa7}, - {value: 0x01a6, lo: 0xa8, hi: 0xae}, - {value: 0x045f, lo: 0xaf, hi: 0xaf}, - {value: 0x01bb, lo: 0xb0, hi: 0xbf}, - // Block 0x94, offset 0x33c - {value: 0x0003, lo: 0x0d}, - {value: 0x01eb, lo: 0x80, hi: 0x88}, - {value: 0x045b, lo: 0x89, hi: 0x89}, - {value: 0x01c7, lo: 0x8a, hi: 0x8a}, - {value: 0x01d0, lo: 0x8b, hi: 0x8b}, - {value: 0x01d6, lo: 0x8c, hi: 0x8c}, - {value: 0x01fa, lo: 0x8d, hi: 0x8d}, - {value: 0x01eb, lo: 0x8e, hi: 0x8e}, - {value: 0x01e8, lo: 0x8f, hi: 0x8f}, - {value: 0x0173, lo: 0x90, hi: 0xa0}, - {value: 0x0188, lo: 0xa1, hi: 0xa1}, - {value: 0x01a6, lo: 0xa2, hi: 0xa8}, - {value: 0x045f, lo: 0xa9, hi: 0xa9}, - {value: 0x01bb, lo: 0xaa, hi: 0xbf}, - // Block 0x95, offset 0x34a - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x96, offset 0x350 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x97, offset 0x352 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x98, offset 0x355 - {value: 0x0002, lo: 0x09}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1951, lo: 0x8a, hi: 0x8a}, - {value: 0x1981, lo: 0x8b, hi: 0x8b}, - {value: 0x199c, lo: 0x8c, hi: 0x8c}, - {value: 0x19a2, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, - {value: 0x19ae, lo: 0x8f, hi: 0x8f}, - {value: 0x197b, lo: 0xaa, hi: 0xaa}, - {value: 0x197e, lo: 0xab, hi: 0xab}, - // Block 0x99, offset 0x35f - {value: 0x0000, lo: 0x01}, - {value: 0x193f, lo: 0x90, hi: 0x90}, - // Block 0x9a, offset 0x361 - {value: 0x0028, lo: 0x09}, - {value: 0x2862, lo: 0x80, hi: 0x80}, - {value: 0x2826, lo: 0x81, hi: 0x81}, - {value: 0x2830, lo: 0x82, hi: 0x82}, - {value: 0x2844, lo: 0x83, hi: 0x84}, - {value: 0x284e, lo: 0x85, hi: 0x86}, - {value: 0x283a, lo: 0x87, hi: 0x87}, - {value: 0x2858, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once - -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 53KB (54006 bytes) diff --git a/backend/vendor/golang.org/x/text/unicode/norm/transform.go b/backend/vendor/golang.org/x/text/unicode/norm/transform.go deleted file mode 100644 index a1d366ae..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/transform.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import ( - "unicode/utf8" - - "golang.org/x/text/transform" -) - -// Reset implements the Reset method of the transform.Transformer interface. -func (Form) Reset() {} - -// Transform implements the Transform method of the transform.Transformer -// interface. It may need to write segments of up to MaxSegmentSize at once. -// Users should either catch ErrShortDst and allow dst to grow or have dst be at -// least of size MaxTransformChunkSize to be guaranteed of progress. -func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // Cap the maximum number of src bytes to check. - b := src - eof := atEOF - if ns := len(dst); ns < len(b) { - err = transform.ErrShortDst - eof = false - b = b[:ns] - } - i, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof) - n := copy(dst, b[:i]) - if !ok { - nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) - return nDst + n, nSrc + n, err - } - - if err == nil && n < len(src) && !atEOF { - err = transform.ErrShortSrc - } - return n, n, err -} - -func flushTransform(rb *reorderBuffer) bool { - // Write out (must fully fit in dst, or else it is an ErrShortDst). - if len(rb.out) < rb.nrune*utf8.UTFMax { - return false - } - rb.out = rb.out[rb.flushCopy(rb.out):] - return true -} - -var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc} - -// transform implements the transform.Transformer interface. It is only called -// when quickSpan does not pass for a given string. -func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // TODO: get rid of reorderBuffer. See CL 23460044. - rb := reorderBuffer{} - rb.init(f, src) - for { - // Load segment into reorder buffer. - rb.setFlusher(dst[nDst:], flushTransform) - end := decomposeSegment(&rb, nSrc, atEOF) - if end < 0 { - return nDst, nSrc, errs[-end] - } - nDst = len(dst) - len(rb.out) - nSrc = end - - // Next quickSpan. - end = rb.nsrc - eof := atEOF - if n := nSrc + len(dst) - nDst; n < end { - err = transform.ErrShortDst - end = n - eof = false - } - end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof) - n := copy(dst[nDst:], rb.src.bytes[nSrc:end]) - nSrc += n - nDst += n - if ok { - if err == nil && n < rb.nsrc && !atEOF { - err = transform.ErrShortSrc - } - return nDst, nSrc, err - } - } -} diff --git a/backend/vendor/golang.org/x/text/unicode/norm/trie.go b/backend/vendor/golang.org/x/text/unicode/norm/trie.go deleted file mode 100644 index 423386bf..00000000 --- a/backend/vendor/golang.org/x/text/unicode/norm/trie.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -type valueRange struct { - value uint16 // header: value:stride - lo, hi byte // header: lo:n -} - -type sparseBlocks struct { - values []valueRange - offset []uint16 -} - -var nfcSparse = sparseBlocks{ - values: nfcSparseValues[:], - offset: nfcSparseOffset[:], -} - -var nfkcSparse = sparseBlocks{ - values: nfkcSparseValues[:], - offset: nfkcSparseOffset[:], -} - -var ( - nfcData = newNfcTrie(0) - nfkcData = newNfkcTrie(0) -) - -// lookupValue determines the type of block n and looks up the value for b. -// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block -// is a list of ranges with an accompanying value. Given a matching range r, -// the value for b is by r.value + (b - r.lo) * stride. -func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { - offset := t.offset[n] - header := t.values[offset] - lo := offset + 1 - hi := lo + uint16(header.lo) - for lo < hi { - m := lo + (hi-lo)/2 - r := t.values[m] - if r.lo <= b && b <= r.hi { - return r.value + uint16(b-r.lo)*header.value - } - if b < r.lo { - hi = m - } else { - lo = m + 1 - } - } - return 0 -} diff --git a/backend/vendor/gopkg.in/ini.v1/.editorconfig b/backend/vendor/gopkg.in/ini.v1/.editorconfig deleted file mode 100644 index 4a2d9180..00000000 --- a/backend/vendor/gopkg.in/ini.v1/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -# http://editorconfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*_test.go] -trim_trailing_whitespace = false diff --git a/backend/vendor/gopkg.in/ini.v1/.gitignore b/backend/vendor/gopkg.in/ini.v1/.gitignore deleted file mode 100644 index 588388bd..00000000 --- a/backend/vendor/gopkg.in/ini.v1/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -testdata/conf_out.ini -ini.sublime-project -ini.sublime-workspace -testdata/conf_reflect.ini -.idea -/.vscode -.DS_Store diff --git a/backend/vendor/gopkg.in/ini.v1/.golangci.yml b/backend/vendor/gopkg.in/ini.v1/.golangci.yml deleted file mode 100644 index 631e3692..00000000 --- a/backend/vendor/gopkg.in/ini.v1/.golangci.yml +++ /dev/null @@ -1,27 +0,0 @@ -linters-settings: - staticcheck: - checks: [ - "all", - "-SA1019" # There are valid use cases of strings.Title - ] - nakedret: - max-func-lines: 0 # Disallow any unnamed return statement - -linters: - enable: - - deadcode - - errcheck - - gosimple - - govet - - ineffassign - - staticcheck - - structcheck - - typecheck - - unused - - varcheck - - nakedret - - gofmt - - rowserrcheck - - unconvert - - goimports - - unparam diff --git a/backend/vendor/gopkg.in/ini.v1/LICENSE b/backend/vendor/gopkg.in/ini.v1/LICENSE deleted file mode 100644 index d361bbcd..00000000 --- a/backend/vendor/gopkg.in/ini.v1/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright -owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities -that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or -indirect, to cause the direction or management of such entity, whether by -contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including -but not limited to software source code, documentation source, and configuration -files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object code, -generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made -available under the License, as indicated by a copyright notice that is included -in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative Works -shall not include works that remain separable from, or merely link (or bind by -name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version -of the Work and any modifications or additions to that Work or Derivative Works -thereof, that is intentionally submitted to Licensor for inclusion in the Work -by the copyright owner or by an individual or Legal Entity authorized to submit -on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, and -issue tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding communication -that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the Work and such -Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable (except as stated in this section) patent license to make, have -made, use, offer to sell, sell, import, and otherwise transfer the Work, where -such license applies only to those patent claims licensable by such Contributor -that are necessarily infringed by their Contribution(s) alone or by combination -of their Contribution(s) with the Work to which such Contribution(s) was -submitted. If You institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work or a -Contribution incorporated within the Work constitutes direct or contributory -patent infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof -in any medium, with or without modifications, and in Source or Object form, -provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that You -changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, -all copyright, patent, trademark, and attribution notices from the Source form -of the Work, excluding those notices that do not pertain to any part of the -Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any -Derivative Works that You distribute must include a readable copy of the -attribution notices contained within such NOTICE file, excluding those notices -that do not pertain to any part of the Derivative Works, in at least one of the -following places: within a NOTICE text file distributed as part of the -Derivative Works; within the Source form or documentation, if provided along -with the Derivative Works; or, within a display generated by the Derivative -Works, if and wherever such third-party notices normally appear. The contents of -the NOTICE file are for informational purposes only and do not modify the -License. You may add Your own attribution notices within Derivative Works that -You distribute, alongside or as an addendum to the NOTICE text from the Work, -provided that such additional attribution notices cannot be construed as -modifying the License. -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a whole, -provided Your use, reproduction, and distribution of the Work otherwise complies -with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted -for inclusion in the Work by You to the Licensor shall be under the terms and -conditions of this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify the terms of -any separate license agreement you may have executed with Licensor regarding -such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, -service marks, or product names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, -including, without limitation, any warranties or conditions of TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are -solely responsible for determining the appropriateness of using or -redistributing the Work and assume any risks associated with Your exercise of -permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), -contract, or otherwise, unless required by applicable law (such as deliberate -and grossly negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, incidental, -or consequential damages of any character arising as a result of this License or -out of the use or inability to use the Work (including but not limited to -damages for loss of goodwill, work stoppage, computer failure or malfunction, or -any and all other commercial damages or losses), even if such Contributor has -been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to -offer, and charge a fee for, acceptance of support, warranty, indemnity, or -other liability obligations and/or rights consistent with this License. However, -in accepting such obligations, You may act only on Your own behalf and on Your -sole responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work - -To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be -enclosed in the appropriate comment syntax for the file format. We also -recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within -third-party archives. - - Copyright 2014 Unknwon - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/vendor/gopkg.in/ini.v1/Makefile b/backend/vendor/gopkg.in/ini.v1/Makefile deleted file mode 100644 index f3b0dae2..00000000 --- a/backend/vendor/gopkg.in/ini.v1/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -.PHONY: build test bench vet coverage - -build: vet bench - -test: - go test -v -cover -race - -bench: - go test -v -cover -test.bench=. -test.benchmem - -vet: - go vet - -coverage: - go test -coverprofile=c.out && go tool cover -html=c.out && rm c.out diff --git a/backend/vendor/gopkg.in/ini.v1/README.md b/backend/vendor/gopkg.in/ini.v1/README.md deleted file mode 100644 index 30606d97..00000000 --- a/backend/vendor/gopkg.in/ini.v1/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# INI - -[![GitHub Workflow Status](https://img.shields.io/github/checks-status/go-ini/ini/main?logo=github&style=for-the-badge)](https://github.com/go-ini/ini/actions?query=branch%3Amain) -[![codecov](https://img.shields.io/codecov/c/github/go-ini/ini/master?logo=codecov&style=for-the-badge)](https://codecov.io/gh/go-ini/ini) -[![GoDoc](https://img.shields.io/badge/GoDoc-Reference-blue?style=for-the-badge&logo=go)](https://pkg.go.dev/github.com/go-ini/ini?tab=doc) -[![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg?style=for-the-badge&logo=sourcegraph)](https://sourcegraph.com/github.com/go-ini/ini) - -![](https://avatars0.githubusercontent.com/u/10216035?v=3&s=200) - -Package ini provides INI file read and write functionality in Go. - -## Features - -- Load from multiple data sources(file, `[]byte`, `io.Reader` and `io.ReadCloser`) with overwrites. -- Read with recursion values. -- Read with parent-child sections. -- Read with auto-increment key names. -- Read with multiple-line values. -- Read with tons of helper methods. -- Read and convert values to Go types. -- Read and **WRITE** comments of sections and keys. -- Manipulate sections, keys and comments with ease. -- Keep sections and keys in order as you parse and save. - -## Installation - -The minimum requirement of Go is **1.13**. - -```sh -$ go get gopkg.in/ini.v1 -``` - -Please add `-u` flag to update in the future. - -## Getting Help - -- [Getting Started](https://ini.unknwon.io/docs/intro/getting_started) -- [API Documentation](https://gowalker.org/gopkg.in/ini.v1) -- 中国大陆镜像:https://ini.unknwon.cn - -## License - -This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text. diff --git a/backend/vendor/gopkg.in/ini.v1/codecov.yml b/backend/vendor/gopkg.in/ini.v1/codecov.yml deleted file mode 100644 index e02ec84b..00000000 --- a/backend/vendor/gopkg.in/ini.v1/codecov.yml +++ /dev/null @@ -1,16 +0,0 @@ -coverage: - range: "60...95" - status: - project: - default: - threshold: 1% - informational: true - patch: - defualt: - only_pulls: true - informational: true - -comment: - layout: 'diff' - -github_checks: false diff --git a/backend/vendor/gopkg.in/ini.v1/data_source.go b/backend/vendor/gopkg.in/ini.v1/data_source.go deleted file mode 100644 index c3a541f1..00000000 --- a/backend/vendor/gopkg.in/ini.v1/data_source.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2019 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "os" -) - -var ( - _ dataSource = (*sourceFile)(nil) - _ dataSource = (*sourceData)(nil) - _ dataSource = (*sourceReadCloser)(nil) -) - -// dataSource is an interface that returns object which can be read and closed. -type dataSource interface { - ReadCloser() (io.ReadCloser, error) -} - -// sourceFile represents an object that contains content on the local file system. -type sourceFile struct { - name string -} - -func (s sourceFile) ReadCloser() (_ io.ReadCloser, err error) { - return os.Open(s.name) -} - -// sourceData represents an object that contains content in memory. -type sourceData struct { - data []byte -} - -func (s *sourceData) ReadCloser() (io.ReadCloser, error) { - return ioutil.NopCloser(bytes.NewReader(s.data)), nil -} - -// sourceReadCloser represents an input stream with Close method. -type sourceReadCloser struct { - reader io.ReadCloser -} - -func (s *sourceReadCloser) ReadCloser() (io.ReadCloser, error) { - return s.reader, nil -} - -func parseDataSource(source interface{}) (dataSource, error) { - switch s := source.(type) { - case string: - return sourceFile{s}, nil - case []byte: - return &sourceData{s}, nil - case io.ReadCloser: - return &sourceReadCloser{s}, nil - case io.Reader: - return &sourceReadCloser{ioutil.NopCloser(s)}, nil - default: - return nil, fmt.Errorf("error parsing data source: unknown type %q", s) - } -} diff --git a/backend/vendor/gopkg.in/ini.v1/deprecated.go b/backend/vendor/gopkg.in/ini.v1/deprecated.go deleted file mode 100644 index 48b8e66d..00000000 --- a/backend/vendor/gopkg.in/ini.v1/deprecated.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -var ( - // Deprecated: Use "DefaultSection" instead. - DEFAULT_SECTION = DefaultSection - // Deprecated: AllCapsUnderscore converts to format ALL_CAPS_UNDERSCORE. - AllCapsUnderscore = SnackCase -) diff --git a/backend/vendor/gopkg.in/ini.v1/error.go b/backend/vendor/gopkg.in/ini.v1/error.go deleted file mode 100644 index f66bc94b..00000000 --- a/backend/vendor/gopkg.in/ini.v1/error.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2016 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "fmt" -) - -// ErrDelimiterNotFound indicates the error type of no delimiter is found which there should be one. -type ErrDelimiterNotFound struct { - Line string -} - -// IsErrDelimiterNotFound returns true if the given error is an instance of ErrDelimiterNotFound. -func IsErrDelimiterNotFound(err error) bool { - _, ok := err.(ErrDelimiterNotFound) - return ok -} - -func (err ErrDelimiterNotFound) Error() string { - return fmt.Sprintf("key-value delimiter not found: %s", err.Line) -} - -// ErrEmptyKeyName indicates the error type of no key name is found which there should be one. -type ErrEmptyKeyName struct { - Line string -} - -// IsErrEmptyKeyName returns true if the given error is an instance of ErrEmptyKeyName. -func IsErrEmptyKeyName(err error) bool { - _, ok := err.(ErrEmptyKeyName) - return ok -} - -func (err ErrEmptyKeyName) Error() string { - return fmt.Sprintf("empty key name: %s", err.Line) -} diff --git a/backend/vendor/gopkg.in/ini.v1/file.go b/backend/vendor/gopkg.in/ini.v1/file.go deleted file mode 100644 index f8b22408..00000000 --- a/backend/vendor/gopkg.in/ini.v1/file.go +++ /dev/null @@ -1,541 +0,0 @@ -// Copyright 2017 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "strings" - "sync" -) - -// File represents a combination of one or more INI files in memory. -type File struct { - options LoadOptions - dataSources []dataSource - - // Should make things safe, but sometimes doesn't matter. - BlockMode bool - lock sync.RWMutex - - // To keep data in order. - sectionList []string - // To keep track of the index of a section with same name. - // This meta list is only used with non-unique section names are allowed. - sectionIndexes []int - - // Actual data is stored here. - sections map[string][]*Section - - NameMapper - ValueMapper -} - -// newFile initializes File object with given data sources. -func newFile(dataSources []dataSource, opts LoadOptions) *File { - if len(opts.KeyValueDelimiters) == 0 { - opts.KeyValueDelimiters = "=:" - } - if len(opts.KeyValueDelimiterOnWrite) == 0 { - opts.KeyValueDelimiterOnWrite = "=" - } - if len(opts.ChildSectionDelimiter) == 0 { - opts.ChildSectionDelimiter = "." - } - - return &File{ - BlockMode: true, - dataSources: dataSources, - sections: make(map[string][]*Section), - options: opts, - } -} - -// Empty returns an empty file object. -func Empty(opts ...LoadOptions) *File { - var opt LoadOptions - if len(opts) > 0 { - opt = opts[0] - } - - // Ignore error here, we are sure our data is good. - f, _ := LoadSources(opt, []byte("")) - return f -} - -// NewSection creates a new section. -func (f *File) NewSection(name string) (*Section, error) { - if len(name) == 0 { - return nil, errors.New("empty section name") - } - - if (f.options.Insensitive || f.options.InsensitiveSections) && name != DefaultSection { - name = strings.ToLower(name) - } - - if f.BlockMode { - f.lock.Lock() - defer f.lock.Unlock() - } - - if !f.options.AllowNonUniqueSections && inSlice(name, f.sectionList) { - return f.sections[name][0], nil - } - - f.sectionList = append(f.sectionList, name) - - // NOTE: Append to indexes must happen before appending to sections, - // otherwise index will have off-by-one problem. - f.sectionIndexes = append(f.sectionIndexes, len(f.sections[name])) - - sec := newSection(f, name) - f.sections[name] = append(f.sections[name], sec) - - return sec, nil -} - -// NewRawSection creates a new section with an unparseable body. -func (f *File) NewRawSection(name, body string) (*Section, error) { - section, err := f.NewSection(name) - if err != nil { - return nil, err - } - - section.isRawSection = true - section.rawBody = body - return section, nil -} - -// NewSections creates a list of sections. -func (f *File) NewSections(names ...string) (err error) { - for _, name := range names { - if _, err = f.NewSection(name); err != nil { - return err - } - } - return nil -} - -// GetSection returns section by given name. -func (f *File) GetSection(name string) (*Section, error) { - secs, err := f.SectionsByName(name) - if err != nil { - return nil, err - } - - return secs[0], err -} - -// HasSection returns true if the file contains a section with given name. -func (f *File) HasSection(name string) bool { - section, _ := f.GetSection(name) - return section != nil -} - -// SectionsByName returns all sections with given name. -func (f *File) SectionsByName(name string) ([]*Section, error) { - if len(name) == 0 { - name = DefaultSection - } - if f.options.Insensitive || f.options.InsensitiveSections { - name = strings.ToLower(name) - } - - if f.BlockMode { - f.lock.RLock() - defer f.lock.RUnlock() - } - - secs := f.sections[name] - if len(secs) == 0 { - return nil, fmt.Errorf("section %q does not exist", name) - } - - return secs, nil -} - -// Section assumes named section exists and returns a zero-value when not. -func (f *File) Section(name string) *Section { - sec, err := f.GetSection(name) - if err != nil { - if name == "" { - name = DefaultSection - } - sec, _ = f.NewSection(name) - return sec - } - return sec -} - -// SectionWithIndex assumes named section exists and returns a new section when not. -func (f *File) SectionWithIndex(name string, index int) *Section { - secs, err := f.SectionsByName(name) - if err != nil || len(secs) <= index { - // NOTE: It's OK here because the only possible error is empty section name, - // but if it's empty, this piece of code won't be executed. - newSec, _ := f.NewSection(name) - return newSec - } - - return secs[index] -} - -// Sections returns a list of Section stored in the current instance. -func (f *File) Sections() []*Section { - if f.BlockMode { - f.lock.RLock() - defer f.lock.RUnlock() - } - - sections := make([]*Section, len(f.sectionList)) - for i, name := range f.sectionList { - sections[i] = f.sections[name][f.sectionIndexes[i]] - } - return sections -} - -// ChildSections returns a list of child sections of given section name. -func (f *File) ChildSections(name string) []*Section { - return f.Section(name).ChildSections() -} - -// SectionStrings returns list of section names. -func (f *File) SectionStrings() []string { - list := make([]string, len(f.sectionList)) - copy(list, f.sectionList) - return list -} - -// DeleteSection deletes a section or all sections with given name. -func (f *File) DeleteSection(name string) { - secs, err := f.SectionsByName(name) - if err != nil { - return - } - - for i := 0; i < len(secs); i++ { - // For non-unique sections, it is always needed to remove the first one so - // in the next iteration, the subsequent section continue having index 0. - // Ignoring the error as index 0 never returns an error. - _ = f.DeleteSectionWithIndex(name, 0) - } -} - -// DeleteSectionWithIndex deletes a section with given name and index. -func (f *File) DeleteSectionWithIndex(name string, index int) error { - if !f.options.AllowNonUniqueSections && index != 0 { - return fmt.Errorf("delete section with non-zero index is only allowed when non-unique sections is enabled") - } - - if len(name) == 0 { - name = DefaultSection - } - if f.options.Insensitive || f.options.InsensitiveSections { - name = strings.ToLower(name) - } - - if f.BlockMode { - f.lock.Lock() - defer f.lock.Unlock() - } - - // Count occurrences of the sections - occurrences := 0 - - sectionListCopy := make([]string, len(f.sectionList)) - copy(sectionListCopy, f.sectionList) - - for i, s := range sectionListCopy { - if s != name { - continue - } - - if occurrences == index { - if len(f.sections[name]) <= 1 { - delete(f.sections, name) // The last one in the map - } else { - f.sections[name] = append(f.sections[name][:index], f.sections[name][index+1:]...) - } - - // Fix section lists - f.sectionList = append(f.sectionList[:i], f.sectionList[i+1:]...) - f.sectionIndexes = append(f.sectionIndexes[:i], f.sectionIndexes[i+1:]...) - - } else if occurrences > index { - // Fix the indices of all following sections with this name. - f.sectionIndexes[i-1]-- - } - - occurrences++ - } - - return nil -} - -func (f *File) reload(s dataSource) error { - r, err := s.ReadCloser() - if err != nil { - return err - } - defer r.Close() - - return f.parse(r) -} - -// Reload reloads and parses all data sources. -func (f *File) Reload() (err error) { - for _, s := range f.dataSources { - if err = f.reload(s); err != nil { - // In loose mode, we create an empty default section for nonexistent files. - if os.IsNotExist(err) && f.options.Loose { - _ = f.parse(bytes.NewBuffer(nil)) - continue - } - return err - } - if f.options.ShortCircuit { - return nil - } - } - return nil -} - -// Append appends one or more data sources and reloads automatically. -func (f *File) Append(source interface{}, others ...interface{}) error { - ds, err := parseDataSource(source) - if err != nil { - return err - } - f.dataSources = append(f.dataSources, ds) - for _, s := range others { - ds, err = parseDataSource(s) - if err != nil { - return err - } - f.dataSources = append(f.dataSources, ds) - } - return f.Reload() -} - -func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { - equalSign := DefaultFormatLeft + f.options.KeyValueDelimiterOnWrite + DefaultFormatRight - - if PrettyFormat || PrettyEqual { - equalSign = fmt.Sprintf(" %s ", f.options.KeyValueDelimiterOnWrite) - } - - // Use buffer to make sure target is safe until finish encoding. - buf := bytes.NewBuffer(nil) - lastSectionIdx := len(f.sectionList) - 1 - for i, sname := range f.sectionList { - sec := f.SectionWithIndex(sname, f.sectionIndexes[i]) - if len(sec.Comment) > 0 { - // Support multiline comments - lines := strings.Split(sec.Comment, LineBreak) - for i := range lines { - if lines[i][0] != '#' && lines[i][0] != ';' { - lines[i] = "; " + lines[i] - } else { - lines[i] = lines[i][:1] + " " + strings.TrimSpace(lines[i][1:]) - } - - if _, err := buf.WriteString(lines[i] + LineBreak); err != nil { - return nil, err - } - } - } - - if i > 0 || DefaultHeader || (i == 0 && strings.ToUpper(sec.name) != DefaultSection) { - if _, err := buf.WriteString("[" + sname + "]" + LineBreak); err != nil { - return nil, err - } - } else { - // Write nothing if default section is empty - if len(sec.keyList) == 0 { - continue - } - } - - isLastSection := i == lastSectionIdx - if sec.isRawSection { - if _, err := buf.WriteString(sec.rawBody); err != nil { - return nil, err - } - - if PrettySection && !isLastSection { - // Put a line between sections - if _, err := buf.WriteString(LineBreak); err != nil { - return nil, err - } - } - continue - } - - // Count and generate alignment length and buffer spaces using the - // longest key. Keys may be modified if they contain certain characters so - // we need to take that into account in our calculation. - alignLength := 0 - if PrettyFormat { - for _, kname := range sec.keyList { - keyLength := len(kname) - // First case will surround key by ` and second by """ - if strings.Contains(kname, "\"") || strings.ContainsAny(kname, f.options.KeyValueDelimiters) { - keyLength += 2 - } else if strings.Contains(kname, "`") { - keyLength += 6 - } - - if keyLength > alignLength { - alignLength = keyLength - } - } - } - alignSpaces := bytes.Repeat([]byte(" "), alignLength) - - KeyList: - for _, kname := range sec.keyList { - key := sec.Key(kname) - if len(key.Comment) > 0 { - if len(indent) > 0 && sname != DefaultSection { - buf.WriteString(indent) - } - - // Support multiline comments - lines := strings.Split(key.Comment, LineBreak) - for i := range lines { - if lines[i][0] != '#' && lines[i][0] != ';' { - lines[i] = "; " + strings.TrimSpace(lines[i]) - } else { - lines[i] = lines[i][:1] + " " + strings.TrimSpace(lines[i][1:]) - } - - if _, err := buf.WriteString(lines[i] + LineBreak); err != nil { - return nil, err - } - } - } - - if len(indent) > 0 && sname != DefaultSection { - buf.WriteString(indent) - } - - switch { - case key.isAutoIncrement: - kname = "-" - case strings.Contains(kname, "\"") || strings.ContainsAny(kname, f.options.KeyValueDelimiters): - kname = "`" + kname + "`" - case strings.Contains(kname, "`"): - kname = `"""` + kname + `"""` - } - - writeKeyValue := func(val string) (bool, error) { - if _, err := buf.WriteString(kname); err != nil { - return false, err - } - - if key.isBooleanType { - buf.WriteString(LineBreak) - return true, nil - } - - // Write out alignment spaces before "=" sign - if PrettyFormat { - buf.Write(alignSpaces[:alignLength-len(kname)]) - } - - // In case key value contains "\n", "`", "\"", "#" or ";" - if strings.ContainsAny(val, "\n`") { - val = `"""` + val + `"""` - } else if !f.options.IgnoreInlineComment && strings.ContainsAny(val, "#;") { - val = "`" + val + "`" - } else if len(strings.TrimSpace(val)) != len(val) { - val = `"` + val + `"` - } - if _, err := buf.WriteString(equalSign + val + LineBreak); err != nil { - return false, err - } - return false, nil - } - - shadows := key.ValueWithShadows() - if len(shadows) == 0 { - if _, err := writeKeyValue(""); err != nil { - return nil, err - } - } - - for _, val := range shadows { - exitLoop, err := writeKeyValue(val) - if err != nil { - return nil, err - } else if exitLoop { - continue KeyList - } - } - - for _, val := range key.nestedValues { - if _, err := buf.WriteString(indent + " " + val + LineBreak); err != nil { - return nil, err - } - } - } - - if PrettySection && !isLastSection { - // Put a line between sections - if _, err := buf.WriteString(LineBreak); err != nil { - return nil, err - } - } - } - - return buf, nil -} - -// WriteToIndent writes content into io.Writer with given indention. -// If PrettyFormat has been set to be true, -// it will align "=" sign with spaces under each section. -func (f *File) WriteToIndent(w io.Writer, indent string) (int64, error) { - buf, err := f.writeToBuffer(indent) - if err != nil { - return 0, err - } - return buf.WriteTo(w) -} - -// WriteTo writes file content into io.Writer. -func (f *File) WriteTo(w io.Writer) (int64, error) { - return f.WriteToIndent(w, "") -} - -// SaveToIndent writes content to file system with given value indention. -func (f *File) SaveToIndent(filename, indent string) error { - // Note: Because we are truncating with os.Create, - // so it's safer to save to a temporary file location and rename after done. - buf, err := f.writeToBuffer(indent) - if err != nil { - return err - } - - return ioutil.WriteFile(filename, buf.Bytes(), 0666) -} - -// SaveTo writes content to file system. -func (f *File) SaveTo(filename string) error { - return f.SaveToIndent(filename, "") -} diff --git a/backend/vendor/gopkg.in/ini.v1/helper.go b/backend/vendor/gopkg.in/ini.v1/helper.go deleted file mode 100644 index f9d80a68..00000000 --- a/backend/vendor/gopkg.in/ini.v1/helper.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2019 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -func inSlice(str string, s []string) bool { - for _, v := range s { - if str == v { - return true - } - } - return false -} diff --git a/backend/vendor/gopkg.in/ini.v1/ini.go b/backend/vendor/gopkg.in/ini.v1/ini.go deleted file mode 100644 index 99e7f865..00000000 --- a/backend/vendor/gopkg.in/ini.v1/ini.go +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2014 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -// Package ini provides INI file read and write functionality in Go. -package ini - -import ( - "os" - "regexp" - "runtime" - "strings" -) - -const ( - // Maximum allowed depth when recursively substituing variable names. - depthValues = 99 -) - -var ( - // DefaultSection is the name of default section. You can use this var or the string literal. - // In most of cases, an empty string is all you need to access the section. - DefaultSection = "DEFAULT" - - // LineBreak is the delimiter to determine or compose a new line. - // This variable will be changed to "\r\n" automatically on Windows at package init time. - LineBreak = "\n" - - // Variable regexp pattern: %(variable)s - varPattern = regexp.MustCompile(`%\(([^)]+)\)s`) - - // DefaultHeader explicitly writes default section header. - DefaultHeader = false - - // PrettySection indicates whether to put a line between sections. - PrettySection = true - // PrettyFormat indicates whether to align "=" sign with spaces to produce pretty output - // or reduce all possible spaces for compact format. - PrettyFormat = true - // PrettyEqual places spaces around "=" sign even when PrettyFormat is false. - PrettyEqual = false - // DefaultFormatLeft places custom spaces on the left when PrettyFormat and PrettyEqual are both disabled. - DefaultFormatLeft = "" - // DefaultFormatRight places custom spaces on the right when PrettyFormat and PrettyEqual are both disabled. - DefaultFormatRight = "" -) - -var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test") - -func init() { - if runtime.GOOS == "windows" && !inTest { - LineBreak = "\r\n" - } -} - -// LoadOptions contains all customized options used for load data source(s). -type LoadOptions struct { - // Loose indicates whether the parser should ignore nonexistent files or return error. - Loose bool - // Insensitive indicates whether the parser forces all section and key names to lowercase. - Insensitive bool - // InsensitiveSections indicates whether the parser forces all section to lowercase. - InsensitiveSections bool - // InsensitiveKeys indicates whether the parser forces all key names to lowercase. - InsensitiveKeys bool - // IgnoreContinuation indicates whether to ignore continuation lines while parsing. - IgnoreContinuation bool - // IgnoreInlineComment indicates whether to ignore comments at the end of value and treat it as part of value. - IgnoreInlineComment bool - // SkipUnrecognizableLines indicates whether to skip unrecognizable lines that do not conform to key/value pairs. - SkipUnrecognizableLines bool - // ShortCircuit indicates whether to ignore other configuration sources after loaded the first available configuration source. - ShortCircuit bool - // AllowBooleanKeys indicates whether to allow boolean type keys or treat as value is missing. - // This type of keys are mostly used in my.cnf. - AllowBooleanKeys bool - // AllowShadows indicates whether to keep track of keys with same name under same section. - AllowShadows bool - // AllowNestedValues indicates whether to allow AWS-like nested values. - // Docs: http://docs.aws.amazon.com/cli/latest/topic/config-vars.html#nested-values - AllowNestedValues bool - // AllowPythonMultilineValues indicates whether to allow Python-like multi-line values. - // Docs: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure - // Relevant quote: Values can also span multiple lines, as long as they are indented deeper - // than the first line of the value. - AllowPythonMultilineValues bool - // SpaceBeforeInlineComment indicates whether to allow comment symbols (\# and \;) inside value. - // Docs: https://docs.python.org/2/library/configparser.html - // Quote: Comments may appear on their own in an otherwise empty line, or may be entered in lines holding values or section names. - // In the latter case, they need to be preceded by a whitespace character to be recognized as a comment. - SpaceBeforeInlineComment bool - // UnescapeValueDoubleQuotes indicates whether to unescape double quotes inside value to regular format - // when value is surrounded by double quotes, e.g. key="a \"value\"" => key=a "value" - UnescapeValueDoubleQuotes bool - // UnescapeValueCommentSymbols indicates to unescape comment symbols (\# and \;) inside value to regular format - // when value is NOT surrounded by any quotes. - // Note: UNSTABLE, behavior might change to only unescape inside double quotes but may noy necessary at all. - UnescapeValueCommentSymbols bool - // UnparseableSections stores a list of blocks that are allowed with raw content which do not otherwise - // conform to key/value pairs. Specify the names of those blocks here. - UnparseableSections []string - // KeyValueDelimiters is the sequence of delimiters that are used to separate key and value. By default, it is "=:". - KeyValueDelimiters string - // KeyValueDelimiterOnWrite is the delimiter that are used to separate key and value output. By default, it is "=". - KeyValueDelimiterOnWrite string - // ChildSectionDelimiter is the delimiter that is used to separate child sections. By default, it is ".". - ChildSectionDelimiter string - // PreserveSurroundedQuote indicates whether to preserve surrounded quote (single and double quotes). - PreserveSurroundedQuote bool - // DebugFunc is called to collect debug information (currently only useful to debug parsing Python-style multiline values). - DebugFunc DebugFunc - // ReaderBufferSize is the buffer size of the reader in bytes. - ReaderBufferSize int - // AllowNonUniqueSections indicates whether to allow sections with the same name multiple times. - AllowNonUniqueSections bool - // AllowDuplicateShadowValues indicates whether values for shadowed keys should be deduplicated. - AllowDuplicateShadowValues bool -} - -// DebugFunc is the type of function called to log parse events. -type DebugFunc func(message string) - -// LoadSources allows caller to apply customized options for loading from data source(s). -func LoadSources(opts LoadOptions, source interface{}, others ...interface{}) (_ *File, err error) { - sources := make([]dataSource, len(others)+1) - sources[0], err = parseDataSource(source) - if err != nil { - return nil, err - } - for i := range others { - sources[i+1], err = parseDataSource(others[i]) - if err != nil { - return nil, err - } - } - f := newFile(sources, opts) - if err = f.Reload(); err != nil { - return nil, err - } - return f, nil -} - -// Load loads and parses from INI data sources. -// Arguments can be mixed of file name with string type, or raw data in []byte. -// It will return error if list contains nonexistent files. -func Load(source interface{}, others ...interface{}) (*File, error) { - return LoadSources(LoadOptions{}, source, others...) -} - -// LooseLoad has exactly same functionality as Load function -// except it ignores nonexistent files instead of returning error. -func LooseLoad(source interface{}, others ...interface{}) (*File, error) { - return LoadSources(LoadOptions{Loose: true}, source, others...) -} - -// InsensitiveLoad has exactly same functionality as Load function -// except it forces all section and key names to be lowercased. -func InsensitiveLoad(source interface{}, others ...interface{}) (*File, error) { - return LoadSources(LoadOptions{Insensitive: true}, source, others...) -} - -// ShadowLoad has exactly same functionality as Load function -// except it allows have shadow keys. -func ShadowLoad(source interface{}, others ...interface{}) (*File, error) { - return LoadSources(LoadOptions{AllowShadows: true}, source, others...) -} diff --git a/backend/vendor/gopkg.in/ini.v1/key.go b/backend/vendor/gopkg.in/ini.v1/key.go deleted file mode 100644 index a19d9f38..00000000 --- a/backend/vendor/gopkg.in/ini.v1/key.go +++ /dev/null @@ -1,837 +0,0 @@ -// Copyright 2014 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "bytes" - "errors" - "fmt" - "strconv" - "strings" - "time" -) - -// Key represents a key under a section. -type Key struct { - s *Section - Comment string - name string - value string - isAutoIncrement bool - isBooleanType bool - - isShadow bool - shadows []*Key - - nestedValues []string -} - -// newKey simply return a key object with given values. -func newKey(s *Section, name, val string) *Key { - return &Key{ - s: s, - name: name, - value: val, - } -} - -func (k *Key) addShadow(val string) error { - if k.isShadow { - return errors.New("cannot add shadow to another shadow key") - } else if k.isAutoIncrement || k.isBooleanType { - return errors.New("cannot add shadow to auto-increment or boolean key") - } - - if !k.s.f.options.AllowDuplicateShadowValues { - // Deduplicate shadows based on their values. - if k.value == val { - return nil - } - for i := range k.shadows { - if k.shadows[i].value == val { - return nil - } - } - } - - shadow := newKey(k.s, k.name, val) - shadow.isShadow = true - k.shadows = append(k.shadows, shadow) - return nil -} - -// AddShadow adds a new shadow key to itself. -func (k *Key) AddShadow(val string) error { - if !k.s.f.options.AllowShadows { - return errors.New("shadow key is not allowed") - } - return k.addShadow(val) -} - -func (k *Key) addNestedValue(val string) error { - if k.isAutoIncrement || k.isBooleanType { - return errors.New("cannot add nested value to auto-increment or boolean key") - } - - k.nestedValues = append(k.nestedValues, val) - return nil -} - -// AddNestedValue adds a nested value to the key. -func (k *Key) AddNestedValue(val string) error { - if !k.s.f.options.AllowNestedValues { - return errors.New("nested value is not allowed") - } - return k.addNestedValue(val) -} - -// ValueMapper represents a mapping function for values, e.g. os.ExpandEnv -type ValueMapper func(string) string - -// Name returns name of key. -func (k *Key) Name() string { - return k.name -} - -// Value returns raw value of key for performance purpose. -func (k *Key) Value() string { - return k.value -} - -// ValueWithShadows returns raw values of key and its shadows if any. Shadow -// keys with empty values are ignored from the returned list. -func (k *Key) ValueWithShadows() []string { - if len(k.shadows) == 0 { - if k.value == "" { - return []string{} - } - return []string{k.value} - } - - vals := make([]string, 0, len(k.shadows)+1) - if k.value != "" { - vals = append(vals, k.value) - } - for _, s := range k.shadows { - if s.value != "" { - vals = append(vals, s.value) - } - } - return vals -} - -// NestedValues returns nested values stored in the key. -// It is possible returned value is nil if no nested values stored in the key. -func (k *Key) NestedValues() []string { - return k.nestedValues -} - -// transformValue takes a raw value and transforms to its final string. -func (k *Key) transformValue(val string) string { - if k.s.f.ValueMapper != nil { - val = k.s.f.ValueMapper(val) - } - - // Fail-fast if no indicate char found for recursive value - if !strings.Contains(val, "%") { - return val - } - for i := 0; i < depthValues; i++ { - vr := varPattern.FindString(val) - if len(vr) == 0 { - break - } - - // Take off leading '%(' and trailing ')s'. - noption := vr[2 : len(vr)-2] - - // Search in the same section. - // If not found or found the key itself, then search again in default section. - nk, err := k.s.GetKey(noption) - if err != nil || k == nk { - nk, _ = k.s.f.Section("").GetKey(noption) - if nk == nil { - // Stop when no results found in the default section, - // and returns the value as-is. - break - } - } - - // Substitute by new value and take off leading '%(' and trailing ')s'. - val = strings.Replace(val, vr, nk.value, -1) - } - return val -} - -// String returns string representation of value. -func (k *Key) String() string { - return k.transformValue(k.value) -} - -// Validate accepts a validate function which can -// return modifed result as key value. -func (k *Key) Validate(fn func(string) string) string { - return fn(k.String()) -} - -// parseBool returns the boolean value represented by the string. -// -// It accepts 1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On, -// 0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off. -// Any other value returns an error. -func parseBool(str string) (value bool, err error) { - switch str { - case "1", "t", "T", "true", "TRUE", "True", "YES", "yes", "Yes", "y", "ON", "on", "On": - return true, nil - case "0", "f", "F", "false", "FALSE", "False", "NO", "no", "No", "n", "OFF", "off", "Off": - return false, nil - } - return false, fmt.Errorf("parsing \"%s\": invalid syntax", str) -} - -// Bool returns bool type value. -func (k *Key) Bool() (bool, error) { - return parseBool(k.String()) -} - -// Float64 returns float64 type value. -func (k *Key) Float64() (float64, error) { - return strconv.ParseFloat(k.String(), 64) -} - -// Int returns int type value. -func (k *Key) Int() (int, error) { - v, err := strconv.ParseInt(k.String(), 0, 64) - return int(v), err -} - -// Int64 returns int64 type value. -func (k *Key) Int64() (int64, error) { - return strconv.ParseInt(k.String(), 0, 64) -} - -// Uint returns uint type valued. -func (k *Key) Uint() (uint, error) { - u, e := strconv.ParseUint(k.String(), 0, 64) - return uint(u), e -} - -// Uint64 returns uint64 type value. -func (k *Key) Uint64() (uint64, error) { - return strconv.ParseUint(k.String(), 0, 64) -} - -// Duration returns time.Duration type value. -func (k *Key) Duration() (time.Duration, error) { - return time.ParseDuration(k.String()) -} - -// TimeFormat parses with given format and returns time.Time type value. -func (k *Key) TimeFormat(format string) (time.Time, error) { - return time.Parse(format, k.String()) -} - -// Time parses with RFC3339 format and returns time.Time type value. -func (k *Key) Time() (time.Time, error) { - return k.TimeFormat(time.RFC3339) -} - -// MustString returns default value if key value is empty. -func (k *Key) MustString(defaultVal string) string { - val := k.String() - if len(val) == 0 { - k.value = defaultVal - return defaultVal - } - return val -} - -// MustBool always returns value without error, -// it returns false if error occurs. -func (k *Key) MustBool(defaultVal ...bool) bool { - val, err := k.Bool() - if len(defaultVal) > 0 && err != nil { - k.value = strconv.FormatBool(defaultVal[0]) - return defaultVal[0] - } - return val -} - -// MustFloat64 always returns value without error, -// it returns 0.0 if error occurs. -func (k *Key) MustFloat64(defaultVal ...float64) float64 { - val, err := k.Float64() - if len(defaultVal) > 0 && err != nil { - k.value = strconv.FormatFloat(defaultVal[0], 'f', -1, 64) - return defaultVal[0] - } - return val -} - -// MustInt always returns value without error, -// it returns 0 if error occurs. -func (k *Key) MustInt(defaultVal ...int) int { - val, err := k.Int() - if len(defaultVal) > 0 && err != nil { - k.value = strconv.FormatInt(int64(defaultVal[0]), 10) - return defaultVal[0] - } - return val -} - -// MustInt64 always returns value without error, -// it returns 0 if error occurs. -func (k *Key) MustInt64(defaultVal ...int64) int64 { - val, err := k.Int64() - if len(defaultVal) > 0 && err != nil { - k.value = strconv.FormatInt(defaultVal[0], 10) - return defaultVal[0] - } - return val -} - -// MustUint always returns value without error, -// it returns 0 if error occurs. -func (k *Key) MustUint(defaultVal ...uint) uint { - val, err := k.Uint() - if len(defaultVal) > 0 && err != nil { - k.value = strconv.FormatUint(uint64(defaultVal[0]), 10) - return defaultVal[0] - } - return val -} - -// MustUint64 always returns value without error, -// it returns 0 if error occurs. -func (k *Key) MustUint64(defaultVal ...uint64) uint64 { - val, err := k.Uint64() - if len(defaultVal) > 0 && err != nil { - k.value = strconv.FormatUint(defaultVal[0], 10) - return defaultVal[0] - } - return val -} - -// MustDuration always returns value without error, -// it returns zero value if error occurs. -func (k *Key) MustDuration(defaultVal ...time.Duration) time.Duration { - val, err := k.Duration() - if len(defaultVal) > 0 && err != nil { - k.value = defaultVal[0].String() - return defaultVal[0] - } - return val -} - -// MustTimeFormat always parses with given format and returns value without error, -// it returns zero value if error occurs. -func (k *Key) MustTimeFormat(format string, defaultVal ...time.Time) time.Time { - val, err := k.TimeFormat(format) - if len(defaultVal) > 0 && err != nil { - k.value = defaultVal[0].Format(format) - return defaultVal[0] - } - return val -} - -// MustTime always parses with RFC3339 format and returns value without error, -// it returns zero value if error occurs. -func (k *Key) MustTime(defaultVal ...time.Time) time.Time { - return k.MustTimeFormat(time.RFC3339, defaultVal...) -} - -// In always returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) In(defaultVal string, candidates []string) string { - val := k.String() - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InFloat64 always returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InFloat64(defaultVal float64, candidates []float64) float64 { - val := k.MustFloat64() - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InInt always returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InInt(defaultVal int, candidates []int) int { - val := k.MustInt() - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InInt64 always returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InInt64(defaultVal int64, candidates []int64) int64 { - val := k.MustInt64() - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InUint always returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InUint(defaultVal uint, candidates []uint) uint { - val := k.MustUint() - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InUint64 always returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InUint64(defaultVal uint64, candidates []uint64) uint64 { - val := k.MustUint64() - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InTimeFormat always parses with given format and returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InTimeFormat(format string, defaultVal time.Time, candidates []time.Time) time.Time { - val := k.MustTimeFormat(format) - for _, cand := range candidates { - if val == cand { - return val - } - } - return defaultVal -} - -// InTime always parses with RFC3339 format and returns value without error, -// it returns default value if error occurs or doesn't fit into candidates. -func (k *Key) InTime(defaultVal time.Time, candidates []time.Time) time.Time { - return k.InTimeFormat(time.RFC3339, defaultVal, candidates) -} - -// RangeFloat64 checks if value is in given range inclusively, -// and returns default value if it's not. -func (k *Key) RangeFloat64(defaultVal, min, max float64) float64 { - val := k.MustFloat64() - if val < min || val > max { - return defaultVal - } - return val -} - -// RangeInt checks if value is in given range inclusively, -// and returns default value if it's not. -func (k *Key) RangeInt(defaultVal, min, max int) int { - val := k.MustInt() - if val < min || val > max { - return defaultVal - } - return val -} - -// RangeInt64 checks if value is in given range inclusively, -// and returns default value if it's not. -func (k *Key) RangeInt64(defaultVal, min, max int64) int64 { - val := k.MustInt64() - if val < min || val > max { - return defaultVal - } - return val -} - -// RangeTimeFormat checks if value with given format is in given range inclusively, -// and returns default value if it's not. -func (k *Key) RangeTimeFormat(format string, defaultVal, min, max time.Time) time.Time { - val := k.MustTimeFormat(format) - if val.Unix() < min.Unix() || val.Unix() > max.Unix() { - return defaultVal - } - return val -} - -// RangeTime checks if value with RFC3339 format is in given range inclusively, -// and returns default value if it's not. -func (k *Key) RangeTime(defaultVal, min, max time.Time) time.Time { - return k.RangeTimeFormat(time.RFC3339, defaultVal, min, max) -} - -// Strings returns list of string divided by given delimiter. -func (k *Key) Strings(delim string) []string { - str := k.String() - if len(str) == 0 { - return []string{} - } - - runes := []rune(str) - vals := make([]string, 0, 2) - var buf bytes.Buffer - escape := false - idx := 0 - for { - if escape { - escape = false - if runes[idx] != '\\' && !strings.HasPrefix(string(runes[idx:]), delim) { - buf.WriteRune('\\') - } - buf.WriteRune(runes[idx]) - } else { - if runes[idx] == '\\' { - escape = true - } else if strings.HasPrefix(string(runes[idx:]), delim) { - idx += len(delim) - 1 - vals = append(vals, strings.TrimSpace(buf.String())) - buf.Reset() - } else { - buf.WriteRune(runes[idx]) - } - } - idx++ - if idx == len(runes) { - break - } - } - - if buf.Len() > 0 { - vals = append(vals, strings.TrimSpace(buf.String())) - } - - return vals -} - -// StringsWithShadows returns list of string divided by given delimiter. -// Shadows will also be appended if any. -func (k *Key) StringsWithShadows(delim string) []string { - vals := k.ValueWithShadows() - results := make([]string, 0, len(vals)*2) - for i := range vals { - if len(vals) == 0 { - continue - } - - results = append(results, strings.Split(vals[i], delim)...) - } - - for i := range results { - results[i] = k.transformValue(strings.TrimSpace(results[i])) - } - return results -} - -// Float64s returns list of float64 divided by given delimiter. Any invalid input will be treated as zero value. -func (k *Key) Float64s(delim string) []float64 { - vals, _ := k.parseFloat64s(k.Strings(delim), true, false) - return vals -} - -// Ints returns list of int divided by given delimiter. Any invalid input will be treated as zero value. -func (k *Key) Ints(delim string) []int { - vals, _ := k.parseInts(k.Strings(delim), true, false) - return vals -} - -// Int64s returns list of int64 divided by given delimiter. Any invalid input will be treated as zero value. -func (k *Key) Int64s(delim string) []int64 { - vals, _ := k.parseInt64s(k.Strings(delim), true, false) - return vals -} - -// Uints returns list of uint divided by given delimiter. Any invalid input will be treated as zero value. -func (k *Key) Uints(delim string) []uint { - vals, _ := k.parseUints(k.Strings(delim), true, false) - return vals -} - -// Uint64s returns list of uint64 divided by given delimiter. Any invalid input will be treated as zero value. -func (k *Key) Uint64s(delim string) []uint64 { - vals, _ := k.parseUint64s(k.Strings(delim), true, false) - return vals -} - -// Bools returns list of bool divided by given delimiter. Any invalid input will be treated as zero value. -func (k *Key) Bools(delim string) []bool { - vals, _ := k.parseBools(k.Strings(delim), true, false) - return vals -} - -// TimesFormat parses with given format and returns list of time.Time divided by given delimiter. -// Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC). -func (k *Key) TimesFormat(format, delim string) []time.Time { - vals, _ := k.parseTimesFormat(format, k.Strings(delim), true, false) - return vals -} - -// Times parses with RFC3339 format and returns list of time.Time divided by given delimiter. -// Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC). -func (k *Key) Times(delim string) []time.Time { - return k.TimesFormat(time.RFC3339, delim) -} - -// ValidFloat64s returns list of float64 divided by given delimiter. If some value is not float, then -// it will not be included to result list. -func (k *Key) ValidFloat64s(delim string) []float64 { - vals, _ := k.parseFloat64s(k.Strings(delim), false, false) - return vals -} - -// ValidInts returns list of int divided by given delimiter. If some value is not integer, then it will -// not be included to result list. -func (k *Key) ValidInts(delim string) []int { - vals, _ := k.parseInts(k.Strings(delim), false, false) - return vals -} - -// ValidInt64s returns list of int64 divided by given delimiter. If some value is not 64-bit integer, -// then it will not be included to result list. -func (k *Key) ValidInt64s(delim string) []int64 { - vals, _ := k.parseInt64s(k.Strings(delim), false, false) - return vals -} - -// ValidUints returns list of uint divided by given delimiter. If some value is not unsigned integer, -// then it will not be included to result list. -func (k *Key) ValidUints(delim string) []uint { - vals, _ := k.parseUints(k.Strings(delim), false, false) - return vals -} - -// ValidUint64s returns list of uint64 divided by given delimiter. If some value is not 64-bit unsigned -// integer, then it will not be included to result list. -func (k *Key) ValidUint64s(delim string) []uint64 { - vals, _ := k.parseUint64s(k.Strings(delim), false, false) - return vals -} - -// ValidBools returns list of bool divided by given delimiter. If some value is not 64-bit unsigned -// integer, then it will not be included to result list. -func (k *Key) ValidBools(delim string) []bool { - vals, _ := k.parseBools(k.Strings(delim), false, false) - return vals -} - -// ValidTimesFormat parses with given format and returns list of time.Time divided by given delimiter. -func (k *Key) ValidTimesFormat(format, delim string) []time.Time { - vals, _ := k.parseTimesFormat(format, k.Strings(delim), false, false) - return vals -} - -// ValidTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter. -func (k *Key) ValidTimes(delim string) []time.Time { - return k.ValidTimesFormat(time.RFC3339, delim) -} - -// StrictFloat64s returns list of float64 divided by given delimiter or error on first invalid input. -func (k *Key) StrictFloat64s(delim string) ([]float64, error) { - return k.parseFloat64s(k.Strings(delim), false, true) -} - -// StrictInts returns list of int divided by given delimiter or error on first invalid input. -func (k *Key) StrictInts(delim string) ([]int, error) { - return k.parseInts(k.Strings(delim), false, true) -} - -// StrictInt64s returns list of int64 divided by given delimiter or error on first invalid input. -func (k *Key) StrictInt64s(delim string) ([]int64, error) { - return k.parseInt64s(k.Strings(delim), false, true) -} - -// StrictUints returns list of uint divided by given delimiter or error on first invalid input. -func (k *Key) StrictUints(delim string) ([]uint, error) { - return k.parseUints(k.Strings(delim), false, true) -} - -// StrictUint64s returns list of uint64 divided by given delimiter or error on first invalid input. -func (k *Key) StrictUint64s(delim string) ([]uint64, error) { - return k.parseUint64s(k.Strings(delim), false, true) -} - -// StrictBools returns list of bool divided by given delimiter or error on first invalid input. -func (k *Key) StrictBools(delim string) ([]bool, error) { - return k.parseBools(k.Strings(delim), false, true) -} - -// StrictTimesFormat parses with given format and returns list of time.Time divided by given delimiter -// or error on first invalid input. -func (k *Key) StrictTimesFormat(format, delim string) ([]time.Time, error) { - return k.parseTimesFormat(format, k.Strings(delim), false, true) -} - -// StrictTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter -// or error on first invalid input. -func (k *Key) StrictTimes(delim string) ([]time.Time, error) { - return k.StrictTimesFormat(time.RFC3339, delim) -} - -// parseBools transforms strings to bools. -func (k *Key) parseBools(strs []string, addInvalid, returnOnInvalid bool) ([]bool, error) { - vals := make([]bool, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := parseBool(str) - return val, err - } - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, val.(bool)) - } - } - return vals, err -} - -// parseFloat64s transforms strings to float64s. -func (k *Key) parseFloat64s(strs []string, addInvalid, returnOnInvalid bool) ([]float64, error) { - vals := make([]float64, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := strconv.ParseFloat(str, 64) - return val, err - } - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, val.(float64)) - } - } - return vals, err -} - -// parseInts transforms strings to ints. -func (k *Key) parseInts(strs []string, addInvalid, returnOnInvalid bool) ([]int, error) { - vals := make([]int, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := strconv.ParseInt(str, 0, 64) - return val, err - } - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, int(val.(int64))) - } - } - return vals, err -} - -// parseInt64s transforms strings to int64s. -func (k *Key) parseInt64s(strs []string, addInvalid, returnOnInvalid bool) ([]int64, error) { - vals := make([]int64, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := strconv.ParseInt(str, 0, 64) - return val, err - } - - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, val.(int64)) - } - } - return vals, err -} - -// parseUints transforms strings to uints. -func (k *Key) parseUints(strs []string, addInvalid, returnOnInvalid bool) ([]uint, error) { - vals := make([]uint, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := strconv.ParseUint(str, 0, 64) - return val, err - } - - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, uint(val.(uint64))) - } - } - return vals, err -} - -// parseUint64s transforms strings to uint64s. -func (k *Key) parseUint64s(strs []string, addInvalid, returnOnInvalid bool) ([]uint64, error) { - vals := make([]uint64, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := strconv.ParseUint(str, 0, 64) - return val, err - } - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, val.(uint64)) - } - } - return vals, err -} - -type Parser func(str string) (interface{}, error) - -// parseTimesFormat transforms strings to times in given format. -func (k *Key) parseTimesFormat(format string, strs []string, addInvalid, returnOnInvalid bool) ([]time.Time, error) { - vals := make([]time.Time, 0, len(strs)) - parser := func(str string) (interface{}, error) { - val, err := time.Parse(format, str) - return val, err - } - rawVals, err := k.doParse(strs, addInvalid, returnOnInvalid, parser) - if err == nil { - for _, val := range rawVals { - vals = append(vals, val.(time.Time)) - } - } - return vals, err -} - -// doParse transforms strings to different types -func (k *Key) doParse(strs []string, addInvalid, returnOnInvalid bool, parser Parser) ([]interface{}, error) { - vals := make([]interface{}, 0, len(strs)) - for _, str := range strs { - val, err := parser(str) - if err != nil && returnOnInvalid { - return nil, err - } - if err == nil || addInvalid { - vals = append(vals, val) - } - } - return vals, nil -} - -// SetValue changes key value. -func (k *Key) SetValue(v string) { - if k.s.f.BlockMode { - k.s.f.lock.Lock() - defer k.s.f.lock.Unlock() - } - - k.value = v - k.s.keysHash[k.name] = v -} diff --git a/backend/vendor/gopkg.in/ini.v1/parser.go b/backend/vendor/gopkg.in/ini.v1/parser.go deleted file mode 100644 index 44fc526c..00000000 --- a/backend/vendor/gopkg.in/ini.v1/parser.go +++ /dev/null @@ -1,520 +0,0 @@ -// Copyright 2015 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "bufio" - "bytes" - "fmt" - "io" - "regexp" - "strconv" - "strings" - "unicode" -) - -const minReaderBufferSize = 4096 - -var pythonMultiline = regexp.MustCompile(`^([\t\f ]+)(.*)`) - -type parserOptions struct { - IgnoreContinuation bool - IgnoreInlineComment bool - AllowPythonMultilineValues bool - SpaceBeforeInlineComment bool - UnescapeValueDoubleQuotes bool - UnescapeValueCommentSymbols bool - PreserveSurroundedQuote bool - DebugFunc DebugFunc - ReaderBufferSize int -} - -type parser struct { - buf *bufio.Reader - options parserOptions - - isEOF bool - count int - comment *bytes.Buffer -} - -func (p *parser) debug(format string, args ...interface{}) { - if p.options.DebugFunc != nil { - p.options.DebugFunc(fmt.Sprintf(format, args...)) - } -} - -func newParser(r io.Reader, opts parserOptions) *parser { - size := opts.ReaderBufferSize - if size < minReaderBufferSize { - size = minReaderBufferSize - } - - return &parser{ - buf: bufio.NewReaderSize(r, size), - options: opts, - count: 1, - comment: &bytes.Buffer{}, - } -} - -// BOM handles header of UTF-8, UTF-16 LE and UTF-16 BE's BOM format. -// http://en.wikipedia.org/wiki/Byte_order_mark#Representations_of_byte_order_marks_by_encoding -func (p *parser) BOM() error { - mask, err := p.buf.Peek(2) - if err != nil && err != io.EOF { - return err - } else if len(mask) < 2 { - return nil - } - - switch { - case mask[0] == 254 && mask[1] == 255: - fallthrough - case mask[0] == 255 && mask[1] == 254: - _, err = p.buf.Read(mask) - if err != nil { - return err - } - case mask[0] == 239 && mask[1] == 187: - mask, err := p.buf.Peek(3) - if err != nil && err != io.EOF { - return err - } else if len(mask) < 3 { - return nil - } - if mask[2] == 191 { - _, err = p.buf.Read(mask) - if err != nil { - return err - } - } - } - return nil -} - -func (p *parser) readUntil(delim byte) ([]byte, error) { - data, err := p.buf.ReadBytes(delim) - if err != nil { - if err == io.EOF { - p.isEOF = true - } else { - return nil, err - } - } - return data, nil -} - -func cleanComment(in []byte) ([]byte, bool) { - i := bytes.IndexAny(in, "#;") - if i == -1 { - return nil, false - } - return in[i:], true -} - -func readKeyName(delimiters string, in []byte) (string, int, error) { - line := string(in) - - // Check if key name surrounded by quotes. - var keyQuote string - if line[0] == '"' { - if len(line) > 6 && line[0:3] == `"""` { - keyQuote = `"""` - } else { - keyQuote = `"` - } - } else if line[0] == '`' { - keyQuote = "`" - } - - // Get out key name - var endIdx int - if len(keyQuote) > 0 { - startIdx := len(keyQuote) - // FIXME: fail case -> """"""name"""=value - pos := strings.Index(line[startIdx:], keyQuote) - if pos == -1 { - return "", -1, fmt.Errorf("missing closing key quote: %s", line) - } - pos += startIdx - - // Find key-value delimiter - i := strings.IndexAny(line[pos+startIdx:], delimiters) - if i < 0 { - return "", -1, ErrDelimiterNotFound{line} - } - endIdx = pos + i - return strings.TrimSpace(line[startIdx:pos]), endIdx + startIdx + 1, nil - } - - endIdx = strings.IndexAny(line, delimiters) - if endIdx < 0 { - return "", -1, ErrDelimiterNotFound{line} - } - if endIdx == 0 { - return "", -1, ErrEmptyKeyName{line} - } - - return strings.TrimSpace(line[0:endIdx]), endIdx + 1, nil -} - -func (p *parser) readMultilines(line, val, valQuote string) (string, error) { - for { - data, err := p.readUntil('\n') - if err != nil { - return "", err - } - next := string(data) - - pos := strings.LastIndex(next, valQuote) - if pos > -1 { - val += next[:pos] - - comment, has := cleanComment([]byte(next[pos:])) - if has { - p.comment.Write(bytes.TrimSpace(comment)) - } - break - } - val += next - if p.isEOF { - return "", fmt.Errorf("missing closing key quote from %q to %q", line, next) - } - } - return val, nil -} - -func (p *parser) readContinuationLines(val string) (string, error) { - for { - data, err := p.readUntil('\n') - if err != nil { - return "", err - } - next := strings.TrimSpace(string(data)) - - if len(next) == 0 { - break - } - val += next - if val[len(val)-1] != '\\' { - break - } - val = val[:len(val)-1] - } - return val, nil -} - -// hasSurroundedQuote check if and only if the first and last characters -// are quotes \" or \'. -// It returns false if any other parts also contain same kind of quotes. -func hasSurroundedQuote(in string, quote byte) bool { - return len(in) >= 2 && in[0] == quote && in[len(in)-1] == quote && - strings.IndexByte(in[1:], quote) == len(in)-2 -} - -func (p *parser) readValue(in []byte, bufferSize int) (string, error) { - - line := strings.TrimLeftFunc(string(in), unicode.IsSpace) - if len(line) == 0 { - if p.options.AllowPythonMultilineValues && len(in) > 0 && in[len(in)-1] == '\n' { - return p.readPythonMultilines(line, bufferSize) - } - return "", nil - } - - var valQuote string - if len(line) > 3 && line[0:3] == `"""` { - valQuote = `"""` - } else if line[0] == '`' { - valQuote = "`" - } else if p.options.UnescapeValueDoubleQuotes && line[0] == '"' { - valQuote = `"` - } - - if len(valQuote) > 0 { - startIdx := len(valQuote) - pos := strings.LastIndex(line[startIdx:], valQuote) - // Check for multi-line value - if pos == -1 { - return p.readMultilines(line, line[startIdx:], valQuote) - } - - if p.options.UnescapeValueDoubleQuotes && valQuote == `"` { - return strings.Replace(line[startIdx:pos+startIdx], `\"`, `"`, -1), nil - } - return line[startIdx : pos+startIdx], nil - } - - lastChar := line[len(line)-1] - // Won't be able to reach here if value only contains whitespace - line = strings.TrimSpace(line) - trimmedLastChar := line[len(line)-1] - - // Check continuation lines when desired - if !p.options.IgnoreContinuation && trimmedLastChar == '\\' { - return p.readContinuationLines(line[:len(line)-1]) - } - - // Check if ignore inline comment - if !p.options.IgnoreInlineComment { - var i int - if p.options.SpaceBeforeInlineComment { - i = strings.Index(line, " #") - if i == -1 { - i = strings.Index(line, " ;") - } - - } else { - i = strings.IndexAny(line, "#;") - } - - if i > -1 { - p.comment.WriteString(line[i:]) - line = strings.TrimSpace(line[:i]) - } - - } - - // Trim single and double quotes - if (hasSurroundedQuote(line, '\'') || - hasSurroundedQuote(line, '"')) && !p.options.PreserveSurroundedQuote { - line = line[1 : len(line)-1] - } else if len(valQuote) == 0 && p.options.UnescapeValueCommentSymbols { - line = strings.ReplaceAll(line, `\;`, ";") - line = strings.ReplaceAll(line, `\#`, "#") - } else if p.options.AllowPythonMultilineValues && lastChar == '\n' { - return p.readPythonMultilines(line, bufferSize) - } - - return line, nil -} - -func (p *parser) readPythonMultilines(line string, bufferSize int) (string, error) { - parserBufferPeekResult, _ := p.buf.Peek(bufferSize) - peekBuffer := bytes.NewBuffer(parserBufferPeekResult) - - for { - peekData, peekErr := peekBuffer.ReadBytes('\n') - if peekErr != nil && peekErr != io.EOF { - p.debug("readPythonMultilines: failed to peek with error: %v", peekErr) - return "", peekErr - } - - p.debug("readPythonMultilines: parsing %q", string(peekData)) - - peekMatches := pythonMultiline.FindStringSubmatch(string(peekData)) - p.debug("readPythonMultilines: matched %d parts", len(peekMatches)) - for n, v := range peekMatches { - p.debug(" %d: %q", n, v) - } - - // Return if not a Python multiline value. - if len(peekMatches) != 3 { - p.debug("readPythonMultilines: end of value, got: %q", line) - return line, nil - } - - // Advance the parser reader (buffer) in-sync with the peek buffer. - _, err := p.buf.Discard(len(peekData)) - if err != nil { - p.debug("readPythonMultilines: failed to skip to the end, returning error") - return "", err - } - - line += "\n" + peekMatches[0] - } -} - -// parse parses data through an io.Reader. -func (f *File) parse(reader io.Reader) (err error) { - p := newParser(reader, parserOptions{ - IgnoreContinuation: f.options.IgnoreContinuation, - IgnoreInlineComment: f.options.IgnoreInlineComment, - AllowPythonMultilineValues: f.options.AllowPythonMultilineValues, - SpaceBeforeInlineComment: f.options.SpaceBeforeInlineComment, - UnescapeValueDoubleQuotes: f.options.UnescapeValueDoubleQuotes, - UnescapeValueCommentSymbols: f.options.UnescapeValueCommentSymbols, - PreserveSurroundedQuote: f.options.PreserveSurroundedQuote, - DebugFunc: f.options.DebugFunc, - ReaderBufferSize: f.options.ReaderBufferSize, - }) - if err = p.BOM(); err != nil { - return fmt.Errorf("BOM: %v", err) - } - - // Ignore error because default section name is never empty string. - name := DefaultSection - if f.options.Insensitive || f.options.InsensitiveSections { - name = strings.ToLower(DefaultSection) - } - section, _ := f.NewSection(name) - - // This "last" is not strictly equivalent to "previous one" if current key is not the first nested key - var isLastValueEmpty bool - var lastRegularKey *Key - - var line []byte - var inUnparseableSection bool - - // NOTE: Iterate and increase `currentPeekSize` until - // the size of the parser buffer is found. - // TODO(unknwon): When Golang 1.10 is the lowest version supported, replace with `parserBufferSize := p.buf.Size()`. - parserBufferSize := 0 - // NOTE: Peek 4kb at a time. - currentPeekSize := minReaderBufferSize - - if f.options.AllowPythonMultilineValues { - for { - peekBytes, _ := p.buf.Peek(currentPeekSize) - peekBytesLength := len(peekBytes) - - if parserBufferSize >= peekBytesLength { - break - } - - currentPeekSize *= 2 - parserBufferSize = peekBytesLength - } - } - - for !p.isEOF { - line, err = p.readUntil('\n') - if err != nil { - return err - } - - if f.options.AllowNestedValues && - isLastValueEmpty && len(line) > 0 { - if line[0] == ' ' || line[0] == '\t' { - err = lastRegularKey.addNestedValue(string(bytes.TrimSpace(line))) - if err != nil { - return err - } - continue - } - } - - line = bytes.TrimLeftFunc(line, unicode.IsSpace) - if len(line) == 0 { - continue - } - - // Comments - if line[0] == '#' || line[0] == ';' { - // Note: we do not care ending line break, - // it is needed for adding second line, - // so just clean it once at the end when set to value. - p.comment.Write(line) - continue - } - - // Section - if line[0] == '[' { - // Read to the next ']' (TODO: support quoted strings) - closeIdx := bytes.LastIndexByte(line, ']') - if closeIdx == -1 { - return fmt.Errorf("unclosed section: %s", line) - } - - name := string(line[1:closeIdx]) - section, err = f.NewSection(name) - if err != nil { - return err - } - - comment, has := cleanComment(line[closeIdx+1:]) - if has { - p.comment.Write(comment) - } - - section.Comment = strings.TrimSpace(p.comment.String()) - - // Reset auto-counter and comments - p.comment.Reset() - p.count = 1 - // Nested values can't span sections - isLastValueEmpty = false - - inUnparseableSection = false - for i := range f.options.UnparseableSections { - if f.options.UnparseableSections[i] == name || - ((f.options.Insensitive || f.options.InsensitiveSections) && strings.EqualFold(f.options.UnparseableSections[i], name)) { - inUnparseableSection = true - continue - } - } - continue - } - - if inUnparseableSection { - section.isRawSection = true - section.rawBody += string(line) - continue - } - - kname, offset, err := readKeyName(f.options.KeyValueDelimiters, line) - if err != nil { - switch { - // Treat as boolean key when desired, and whole line is key name. - case IsErrDelimiterNotFound(err): - switch { - case f.options.AllowBooleanKeys: - kname, err := p.readValue(line, parserBufferSize) - if err != nil { - return err - } - key, err := section.NewBooleanKey(kname) - if err != nil { - return err - } - key.Comment = strings.TrimSpace(p.comment.String()) - p.comment.Reset() - continue - - case f.options.SkipUnrecognizableLines: - continue - } - case IsErrEmptyKeyName(err) && f.options.SkipUnrecognizableLines: - continue - } - return err - } - - // Auto increment. - isAutoIncr := false - if kname == "-" { - isAutoIncr = true - kname = "#" + strconv.Itoa(p.count) - p.count++ - } - - value, err := p.readValue(line[offset:], parserBufferSize) - if err != nil { - return err - } - isLastValueEmpty = len(value) == 0 - - key, err := section.NewKey(kname, value) - if err != nil { - return err - } - key.isAutoIncrement = isAutoIncr - key.Comment = strings.TrimSpace(p.comment.String()) - p.comment.Reset() - lastRegularKey = key - } - return nil -} diff --git a/backend/vendor/gopkg.in/ini.v1/section.go b/backend/vendor/gopkg.in/ini.v1/section.go deleted file mode 100644 index a3615d82..00000000 --- a/backend/vendor/gopkg.in/ini.v1/section.go +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright 2014 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "errors" - "fmt" - "strings" -) - -// Section represents a config section. -type Section struct { - f *File - Comment string - name string - keys map[string]*Key - keyList []string - keysHash map[string]string - - isRawSection bool - rawBody string -} - -func newSection(f *File, name string) *Section { - return &Section{ - f: f, - name: name, - keys: make(map[string]*Key), - keyList: make([]string, 0, 10), - keysHash: make(map[string]string), - } -} - -// Name returns name of Section. -func (s *Section) Name() string { - return s.name -} - -// Body returns rawBody of Section if the section was marked as unparseable. -// It still follows the other rules of the INI format surrounding leading/trailing whitespace. -func (s *Section) Body() string { - return strings.TrimSpace(s.rawBody) -} - -// SetBody updates body content only if section is raw. -func (s *Section) SetBody(body string) { - if !s.isRawSection { - return - } - s.rawBody = body -} - -// NewKey creates a new key to given section. -func (s *Section) NewKey(name, val string) (*Key, error) { - if len(name) == 0 { - return nil, errors.New("error creating new key: empty key name") - } else if s.f.options.Insensitive || s.f.options.InsensitiveKeys { - name = strings.ToLower(name) - } - - if s.f.BlockMode { - s.f.lock.Lock() - defer s.f.lock.Unlock() - } - - if inSlice(name, s.keyList) { - if s.f.options.AllowShadows { - if err := s.keys[name].addShadow(val); err != nil { - return nil, err - } - } else { - s.keys[name].value = val - s.keysHash[name] = val - } - return s.keys[name], nil - } - - s.keyList = append(s.keyList, name) - s.keys[name] = newKey(s, name, val) - s.keysHash[name] = val - return s.keys[name], nil -} - -// NewBooleanKey creates a new boolean type key to given section. -func (s *Section) NewBooleanKey(name string) (*Key, error) { - key, err := s.NewKey(name, "true") - if err != nil { - return nil, err - } - - key.isBooleanType = true - return key, nil -} - -// GetKey returns key in section by given name. -func (s *Section) GetKey(name string) (*Key, error) { - if s.f.BlockMode { - s.f.lock.RLock() - } - if s.f.options.Insensitive || s.f.options.InsensitiveKeys { - name = strings.ToLower(name) - } - key := s.keys[name] - if s.f.BlockMode { - s.f.lock.RUnlock() - } - - if key == nil { - // Check if it is a child-section. - sname := s.name - for { - if i := strings.LastIndex(sname, s.f.options.ChildSectionDelimiter); i > -1 { - sname = sname[:i] - sec, err := s.f.GetSection(sname) - if err != nil { - continue - } - return sec.GetKey(name) - } - break - } - return nil, fmt.Errorf("error when getting key of section %q: key %q not exists", s.name, name) - } - return key, nil -} - -// HasKey returns true if section contains a key with given name. -func (s *Section) HasKey(name string) bool { - key, _ := s.GetKey(name) - return key != nil -} - -// Deprecated: Use "HasKey" instead. -func (s *Section) Haskey(name string) bool { - return s.HasKey(name) -} - -// HasValue returns true if section contains given raw value. -func (s *Section) HasValue(value string) bool { - if s.f.BlockMode { - s.f.lock.RLock() - defer s.f.lock.RUnlock() - } - - for _, k := range s.keys { - if value == k.value { - return true - } - } - return false -} - -// Key assumes named Key exists in section and returns a zero-value when not. -func (s *Section) Key(name string) *Key { - key, err := s.GetKey(name) - if err != nil { - // It's OK here because the only possible error is empty key name, - // but if it's empty, this piece of code won't be executed. - key, _ = s.NewKey(name, "") - return key - } - return key -} - -// Keys returns list of keys of section. -func (s *Section) Keys() []*Key { - keys := make([]*Key, len(s.keyList)) - for i := range s.keyList { - keys[i] = s.Key(s.keyList[i]) - } - return keys -} - -// ParentKeys returns list of keys of parent section. -func (s *Section) ParentKeys() []*Key { - var parentKeys []*Key - sname := s.name - for { - if i := strings.LastIndex(sname, s.f.options.ChildSectionDelimiter); i > -1 { - sname = sname[:i] - sec, err := s.f.GetSection(sname) - if err != nil { - continue - } - parentKeys = append(parentKeys, sec.Keys()...) - } else { - break - } - - } - return parentKeys -} - -// KeyStrings returns list of key names of section. -func (s *Section) KeyStrings() []string { - list := make([]string, len(s.keyList)) - copy(list, s.keyList) - return list -} - -// KeysHash returns keys hash consisting of names and values. -func (s *Section) KeysHash() map[string]string { - if s.f.BlockMode { - s.f.lock.RLock() - defer s.f.lock.RUnlock() - } - - hash := make(map[string]string, len(s.keysHash)) - for key, value := range s.keysHash { - hash[key] = value - } - return hash -} - -// DeleteKey deletes a key from section. -func (s *Section) DeleteKey(name string) { - if s.f.BlockMode { - s.f.lock.Lock() - defer s.f.lock.Unlock() - } - - for i, k := range s.keyList { - if k == name { - s.keyList = append(s.keyList[:i], s.keyList[i+1:]...) - delete(s.keys, name) - delete(s.keysHash, name) - return - } - } -} - -// ChildSections returns a list of child sections of current section. -// For example, "[parent.child1]" and "[parent.child12]" are child sections -// of section "[parent]". -func (s *Section) ChildSections() []*Section { - prefix := s.name + s.f.options.ChildSectionDelimiter - children := make([]*Section, 0, 3) - for _, name := range s.f.sectionList { - if strings.HasPrefix(name, prefix) { - children = append(children, s.f.sections[name]...) - } - } - return children -} diff --git a/backend/vendor/gopkg.in/ini.v1/struct.go b/backend/vendor/gopkg.in/ini.v1/struct.go deleted file mode 100644 index a486b2fe..00000000 --- a/backend/vendor/gopkg.in/ini.v1/struct.go +++ /dev/null @@ -1,747 +0,0 @@ -// Copyright 2014 Unknwon -// -// Licensed under the Apache License, Version 2.0 (the "License"): you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations -// under the License. - -package ini - -import ( - "bytes" - "errors" - "fmt" - "reflect" - "strings" - "time" - "unicode" -) - -// NameMapper represents a ini tag name mapper. -type NameMapper func(string) string - -// Built-in name getters. -var ( - // SnackCase converts to format SNACK_CASE. - SnackCase NameMapper = func(raw string) string { - newstr := make([]rune, 0, len(raw)) - for i, chr := range raw { - if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { - if i > 0 { - newstr = append(newstr, '_') - } - } - newstr = append(newstr, unicode.ToUpper(chr)) - } - return string(newstr) - } - // TitleUnderscore converts to format title_underscore. - TitleUnderscore NameMapper = func(raw string) string { - newstr := make([]rune, 0, len(raw)) - for i, chr := range raw { - if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { - if i > 0 { - newstr = append(newstr, '_') - } - chr -= 'A' - 'a' - } - newstr = append(newstr, chr) - } - return string(newstr) - } -) - -func (s *Section) parseFieldName(raw, actual string) string { - if len(actual) > 0 { - return actual - } - if s.f.NameMapper != nil { - return s.f.NameMapper(raw) - } - return raw -} - -func parseDelim(actual string) string { - if len(actual) > 0 { - return actual - } - return "," -} - -var reflectTime = reflect.TypeOf(time.Now()).Kind() - -// setSliceWithProperType sets proper values to slice based on its type. -func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error { - var strs []string - if allowShadow { - strs = key.StringsWithShadows(delim) - } else { - strs = key.Strings(delim) - } - - numVals := len(strs) - if numVals == 0 { - return nil - } - - var vals interface{} - var err error - - sliceOf := field.Type().Elem().Kind() - switch sliceOf { - case reflect.String: - vals = strs - case reflect.Int: - vals, err = key.parseInts(strs, true, false) - case reflect.Int64: - vals, err = key.parseInt64s(strs, true, false) - case reflect.Uint: - vals, err = key.parseUints(strs, true, false) - case reflect.Uint64: - vals, err = key.parseUint64s(strs, true, false) - case reflect.Float64: - vals, err = key.parseFloat64s(strs, true, false) - case reflect.Bool: - vals, err = key.parseBools(strs, true, false) - case reflectTime: - vals, err = key.parseTimesFormat(time.RFC3339, strs, true, false) - default: - return fmt.Errorf("unsupported type '[]%s'", sliceOf) - } - if err != nil && isStrict { - return err - } - - slice := reflect.MakeSlice(field.Type(), numVals, numVals) - for i := 0; i < numVals; i++ { - switch sliceOf { - case reflect.String: - slice.Index(i).Set(reflect.ValueOf(vals.([]string)[i])) - case reflect.Int: - slice.Index(i).Set(reflect.ValueOf(vals.([]int)[i])) - case reflect.Int64: - slice.Index(i).Set(reflect.ValueOf(vals.([]int64)[i])) - case reflect.Uint: - slice.Index(i).Set(reflect.ValueOf(vals.([]uint)[i])) - case reflect.Uint64: - slice.Index(i).Set(reflect.ValueOf(vals.([]uint64)[i])) - case reflect.Float64: - slice.Index(i).Set(reflect.ValueOf(vals.([]float64)[i])) - case reflect.Bool: - slice.Index(i).Set(reflect.ValueOf(vals.([]bool)[i])) - case reflectTime: - slice.Index(i).Set(reflect.ValueOf(vals.([]time.Time)[i])) - } - } - field.Set(slice) - return nil -} - -func wrapStrictError(err error, isStrict bool) error { - if isStrict { - return err - } - return nil -} - -// setWithProperType sets proper value to field based on its type, -// but it does not return error for failing parsing, -// because we want to use default value that is already assigned to struct. -func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error { - vt := t - isPtr := t.Kind() == reflect.Ptr - if isPtr { - vt = t.Elem() - } - switch vt.Kind() { - case reflect.String: - stringVal := key.String() - if isPtr { - field.Set(reflect.ValueOf(&stringVal)) - } else if len(stringVal) > 0 { - field.SetString(key.String()) - } - case reflect.Bool: - boolVal, err := key.Bool() - if err != nil { - return wrapStrictError(err, isStrict) - } - if isPtr { - field.Set(reflect.ValueOf(&boolVal)) - } else { - field.SetBool(boolVal) - } - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - // ParseDuration will not return err for `0`, so check the type name - if vt.Name() == "Duration" { - durationVal, err := key.Duration() - if err != nil { - if intVal, err := key.Int64(); err == nil { - field.SetInt(intVal) - return nil - } - return wrapStrictError(err, isStrict) - } - if isPtr { - field.Set(reflect.ValueOf(&durationVal)) - } else if int64(durationVal) > 0 { - field.Set(reflect.ValueOf(durationVal)) - } - return nil - } - - intVal, err := key.Int64() - if err != nil { - return wrapStrictError(err, isStrict) - } - if isPtr { - pv := reflect.New(t.Elem()) - pv.Elem().SetInt(intVal) - field.Set(pv) - } else { - field.SetInt(intVal) - } - // byte is an alias for uint8, so supporting uint8 breaks support for byte - case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64: - durationVal, err := key.Duration() - // Skip zero value - if err == nil && uint64(durationVal) > 0 { - if isPtr { - field.Set(reflect.ValueOf(&durationVal)) - } else { - field.Set(reflect.ValueOf(durationVal)) - } - return nil - } - - uintVal, err := key.Uint64() - if err != nil { - return wrapStrictError(err, isStrict) - } - if isPtr { - pv := reflect.New(t.Elem()) - pv.Elem().SetUint(uintVal) - field.Set(pv) - } else { - field.SetUint(uintVal) - } - - case reflect.Float32, reflect.Float64: - floatVal, err := key.Float64() - if err != nil { - return wrapStrictError(err, isStrict) - } - if isPtr { - pv := reflect.New(t.Elem()) - pv.Elem().SetFloat(floatVal) - field.Set(pv) - } else { - field.SetFloat(floatVal) - } - case reflectTime: - timeVal, err := key.Time() - if err != nil { - return wrapStrictError(err, isStrict) - } - if isPtr { - field.Set(reflect.ValueOf(&timeVal)) - } else { - field.Set(reflect.ValueOf(timeVal)) - } - case reflect.Slice: - return setSliceWithProperType(key, field, delim, allowShadow, isStrict) - default: - return fmt.Errorf("unsupported type %q", t) - } - return nil -} - -func parseTagOptions(tag string) (rawName string, omitEmpty bool, allowShadow bool, allowNonUnique bool, extends bool) { - opts := strings.SplitN(tag, ",", 5) - rawName = opts[0] - for _, opt := range opts[1:] { - omitEmpty = omitEmpty || (opt == "omitempty") - allowShadow = allowShadow || (opt == "allowshadow") - allowNonUnique = allowNonUnique || (opt == "nonunique") - extends = extends || (opt == "extends") - } - return rawName, omitEmpty, allowShadow, allowNonUnique, extends -} - -// mapToField maps the given value to the matching field of the given section. -// The sectionIndex is the index (if non unique sections are enabled) to which the value should be added. -func (s *Section) mapToField(val reflect.Value, isStrict bool, sectionIndex int, sectionName string) error { - if val.Kind() == reflect.Ptr { - val = val.Elem() - } - typ := val.Type() - - for i := 0; i < typ.NumField(); i++ { - field := val.Field(i) - tpField := typ.Field(i) - - tag := tpField.Tag.Get("ini") - if tag == "-" { - continue - } - - rawName, _, allowShadow, allowNonUnique, extends := parseTagOptions(tag) - fieldName := s.parseFieldName(tpField.Name, rawName) - if len(fieldName) == 0 || !field.CanSet() { - continue - } - - isStruct := tpField.Type.Kind() == reflect.Struct - isStructPtr := tpField.Type.Kind() == reflect.Ptr && tpField.Type.Elem().Kind() == reflect.Struct - isAnonymousPtr := tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous - if isAnonymousPtr { - field.Set(reflect.New(tpField.Type.Elem())) - } - - if extends && (isAnonymousPtr || (isStruct && tpField.Anonymous)) { - if isStructPtr && field.IsNil() { - field.Set(reflect.New(tpField.Type.Elem())) - } - fieldSection := s - if rawName != "" { - sectionName = s.name + s.f.options.ChildSectionDelimiter + rawName - if secs, err := s.f.SectionsByName(sectionName); err == nil && sectionIndex < len(secs) { - fieldSection = secs[sectionIndex] - } - } - if err := fieldSection.mapToField(field, isStrict, sectionIndex, sectionName); err != nil { - return fmt.Errorf("map to field %q: %v", fieldName, err) - } - } else if isAnonymousPtr || isStruct || isStructPtr { - if secs, err := s.f.SectionsByName(fieldName); err == nil { - if len(secs) <= sectionIndex { - return fmt.Errorf("there are not enough sections (%d <= %d) for the field %q", len(secs), sectionIndex, fieldName) - } - // Only set the field to non-nil struct value if we have a section for it. - // Otherwise, we end up with a non-nil struct ptr even though there is no data. - if isStructPtr && field.IsNil() { - field.Set(reflect.New(tpField.Type.Elem())) - } - if err = secs[sectionIndex].mapToField(field, isStrict, sectionIndex, fieldName); err != nil { - return fmt.Errorf("map to field %q: %v", fieldName, err) - } - continue - } - } - - // Map non-unique sections - if allowNonUnique && tpField.Type.Kind() == reflect.Slice { - newField, err := s.mapToSlice(fieldName, field, isStrict) - if err != nil { - return fmt.Errorf("map to slice %q: %v", fieldName, err) - } - - field.Set(newField) - continue - } - - if key, err := s.GetKey(fieldName); err == nil { - delim := parseDelim(tpField.Tag.Get("delim")) - if err = setWithProperType(tpField.Type, key, field, delim, allowShadow, isStrict); err != nil { - return fmt.Errorf("set field %q: %v", fieldName, err) - } - } - } - return nil -} - -// mapToSlice maps all sections with the same name and returns the new value. -// The type of the Value must be a slice. -func (s *Section) mapToSlice(secName string, val reflect.Value, isStrict bool) (reflect.Value, error) { - secs, err := s.f.SectionsByName(secName) - if err != nil { - return reflect.Value{}, err - } - - typ := val.Type().Elem() - for i, sec := range secs { - elem := reflect.New(typ) - if err = sec.mapToField(elem, isStrict, i, sec.name); err != nil { - return reflect.Value{}, fmt.Errorf("map to field from section %q: %v", secName, err) - } - - val = reflect.Append(val, elem.Elem()) - } - return val, nil -} - -// mapTo maps a section to object v. -func (s *Section) mapTo(v interface{}, isStrict bool) error { - typ := reflect.TypeOf(v) - val := reflect.ValueOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - val = val.Elem() - } else { - return errors.New("not a pointer to a struct") - } - - if typ.Kind() == reflect.Slice { - newField, err := s.mapToSlice(s.name, val, isStrict) - if err != nil { - return err - } - - val.Set(newField) - return nil - } - - return s.mapToField(val, isStrict, 0, s.name) -} - -// MapTo maps section to given struct. -func (s *Section) MapTo(v interface{}) error { - return s.mapTo(v, false) -} - -// StrictMapTo maps section to given struct in strict mode, -// which returns all possible error including value parsing error. -func (s *Section) StrictMapTo(v interface{}) error { - return s.mapTo(v, true) -} - -// MapTo maps file to given struct. -func (f *File) MapTo(v interface{}) error { - return f.Section("").MapTo(v) -} - -// StrictMapTo maps file to given struct in strict mode, -// which returns all possible error including value parsing error. -func (f *File) StrictMapTo(v interface{}) error { - return f.Section("").StrictMapTo(v) -} - -// MapToWithMapper maps data sources to given struct with name mapper. -func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { - cfg, err := Load(source, others...) - if err != nil { - return err - } - cfg.NameMapper = mapper - return cfg.MapTo(v) -} - -// StrictMapToWithMapper maps data sources to given struct with name mapper in strict mode, -// which returns all possible error including value parsing error. -func StrictMapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { - cfg, err := Load(source, others...) - if err != nil { - return err - } - cfg.NameMapper = mapper - return cfg.StrictMapTo(v) -} - -// MapTo maps data sources to given struct. -func MapTo(v, source interface{}, others ...interface{}) error { - return MapToWithMapper(v, nil, source, others...) -} - -// StrictMapTo maps data sources to given struct in strict mode, -// which returns all possible error including value parsing error. -func StrictMapTo(v, source interface{}, others ...interface{}) error { - return StrictMapToWithMapper(v, nil, source, others...) -} - -// reflectSliceWithProperType does the opposite thing as setSliceWithProperType. -func reflectSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow bool) error { - slice := field.Slice(0, field.Len()) - if field.Len() == 0 { - return nil - } - sliceOf := field.Type().Elem().Kind() - - if allowShadow { - var keyWithShadows *Key - for i := 0; i < field.Len(); i++ { - var val string - switch sliceOf { - case reflect.String: - val = slice.Index(i).String() - case reflect.Int, reflect.Int64: - val = fmt.Sprint(slice.Index(i).Int()) - case reflect.Uint, reflect.Uint64: - val = fmt.Sprint(slice.Index(i).Uint()) - case reflect.Float64: - val = fmt.Sprint(slice.Index(i).Float()) - case reflect.Bool: - val = fmt.Sprint(slice.Index(i).Bool()) - case reflectTime: - val = slice.Index(i).Interface().(time.Time).Format(time.RFC3339) - default: - return fmt.Errorf("unsupported type '[]%s'", sliceOf) - } - - if i == 0 { - keyWithShadows = newKey(key.s, key.name, val) - } else { - _ = keyWithShadows.AddShadow(val) - } - } - *key = *keyWithShadows - return nil - } - - var buf bytes.Buffer - for i := 0; i < field.Len(); i++ { - switch sliceOf { - case reflect.String: - buf.WriteString(slice.Index(i).String()) - case reflect.Int, reflect.Int64: - buf.WriteString(fmt.Sprint(slice.Index(i).Int())) - case reflect.Uint, reflect.Uint64: - buf.WriteString(fmt.Sprint(slice.Index(i).Uint())) - case reflect.Float64: - buf.WriteString(fmt.Sprint(slice.Index(i).Float())) - case reflect.Bool: - buf.WriteString(fmt.Sprint(slice.Index(i).Bool())) - case reflectTime: - buf.WriteString(slice.Index(i).Interface().(time.Time).Format(time.RFC3339)) - default: - return fmt.Errorf("unsupported type '[]%s'", sliceOf) - } - buf.WriteString(delim) - } - key.SetValue(buf.String()[:buf.Len()-len(delim)]) - return nil -} - -// reflectWithProperType does the opposite thing as setWithProperType. -func reflectWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow bool) error { - switch t.Kind() { - case reflect.String: - key.SetValue(field.String()) - case reflect.Bool: - key.SetValue(fmt.Sprint(field.Bool())) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - key.SetValue(fmt.Sprint(field.Int())) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - key.SetValue(fmt.Sprint(field.Uint())) - case reflect.Float32, reflect.Float64: - key.SetValue(fmt.Sprint(field.Float())) - case reflectTime: - key.SetValue(fmt.Sprint(field.Interface().(time.Time).Format(time.RFC3339))) - case reflect.Slice: - return reflectSliceWithProperType(key, field, delim, allowShadow) - case reflect.Ptr: - if !field.IsNil() { - return reflectWithProperType(t.Elem(), key, field.Elem(), delim, allowShadow) - } - default: - return fmt.Errorf("unsupported type %q", t) - } - return nil -} - -// CR: copied from encoding/json/encode.go with modifications of time.Time support. -// TODO: add more test coverage. -func isEmptyValue(v reflect.Value) bool { - switch v.Kind() { - case reflect.Array, reflect.Map, reflect.Slice, reflect.String: - return v.Len() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - case reflectTime: - t, ok := v.Interface().(time.Time) - return ok && t.IsZero() - } - return false -} - -// StructReflector is the interface implemented by struct types that can extract themselves into INI objects. -type StructReflector interface { - ReflectINIStruct(*File) error -} - -func (s *Section) reflectFrom(val reflect.Value) error { - if val.Kind() == reflect.Ptr { - val = val.Elem() - } - typ := val.Type() - - for i := 0; i < typ.NumField(); i++ { - if !val.Field(i).CanInterface() { - continue - } - - field := val.Field(i) - tpField := typ.Field(i) - - tag := tpField.Tag.Get("ini") - if tag == "-" { - continue - } - - rawName, omitEmpty, allowShadow, allowNonUnique, extends := parseTagOptions(tag) - if omitEmpty && isEmptyValue(field) { - continue - } - - if r, ok := field.Interface().(StructReflector); ok { - return r.ReflectINIStruct(s.f) - } - - fieldName := s.parseFieldName(tpField.Name, rawName) - if len(fieldName) == 0 || !field.CanSet() { - continue - } - - if extends && tpField.Anonymous && (tpField.Type.Kind() == reflect.Ptr || tpField.Type.Kind() == reflect.Struct) { - if err := s.reflectFrom(field); err != nil { - return fmt.Errorf("reflect from field %q: %v", fieldName, err) - } - continue - } - - if (tpField.Type.Kind() == reflect.Ptr && tpField.Type.Elem().Kind() == reflect.Struct) || - (tpField.Type.Kind() == reflect.Struct && tpField.Type.Name() != "Time") { - // Note: The only error here is section doesn't exist. - sec, err := s.f.GetSection(fieldName) - if err != nil { - // Note: fieldName can never be empty here, ignore error. - sec, _ = s.f.NewSection(fieldName) - } - - // Add comment from comment tag - if len(sec.Comment) == 0 { - sec.Comment = tpField.Tag.Get("comment") - } - - if err = sec.reflectFrom(field); err != nil { - return fmt.Errorf("reflect from field %q: %v", fieldName, err) - } - continue - } - - if allowNonUnique && tpField.Type.Kind() == reflect.Slice { - slice := field.Slice(0, field.Len()) - if field.Len() == 0 { - return nil - } - sliceOf := field.Type().Elem().Kind() - - for i := 0; i < field.Len(); i++ { - if sliceOf != reflect.Struct && sliceOf != reflect.Ptr { - return fmt.Errorf("field %q is not a slice of pointer or struct", fieldName) - } - - sec, err := s.f.NewSection(fieldName) - if err != nil { - return err - } - - // Add comment from comment tag - if len(sec.Comment) == 0 { - sec.Comment = tpField.Tag.Get("comment") - } - - if err := sec.reflectFrom(slice.Index(i)); err != nil { - return fmt.Errorf("reflect from field %q: %v", fieldName, err) - } - } - continue - } - - // Note: Same reason as section. - key, err := s.GetKey(fieldName) - if err != nil { - key, _ = s.NewKey(fieldName, "") - } - - // Add comment from comment tag - if len(key.Comment) == 0 { - key.Comment = tpField.Tag.Get("comment") - } - - delim := parseDelim(tpField.Tag.Get("delim")) - if err = reflectWithProperType(tpField.Type, key, field, delim, allowShadow); err != nil { - return fmt.Errorf("reflect field %q: %v", fieldName, err) - } - - } - return nil -} - -// ReflectFrom reflects section from given struct. It overwrites existing ones. -func (s *Section) ReflectFrom(v interface{}) error { - typ := reflect.TypeOf(v) - val := reflect.ValueOf(v) - - if s.name != DefaultSection && s.f.options.AllowNonUniqueSections && - (typ.Kind() == reflect.Slice || typ.Kind() == reflect.Ptr) { - // Clear sections to make sure none exists before adding the new ones - s.f.DeleteSection(s.name) - - if typ.Kind() == reflect.Ptr { - sec, err := s.f.NewSection(s.name) - if err != nil { - return err - } - return sec.reflectFrom(val.Elem()) - } - - slice := val.Slice(0, val.Len()) - sliceOf := val.Type().Elem().Kind() - if sliceOf != reflect.Ptr { - return fmt.Errorf("not a slice of pointers") - } - - for i := 0; i < slice.Len(); i++ { - sec, err := s.f.NewSection(s.name) - if err != nil { - return err - } - - err = sec.reflectFrom(slice.Index(i)) - if err != nil { - return fmt.Errorf("reflect from %dth field: %v", i, err) - } - } - - return nil - } - - if typ.Kind() == reflect.Ptr { - val = val.Elem() - } else { - return errors.New("not a pointer to a struct") - } - - return s.reflectFrom(val) -} - -// ReflectFrom reflects file from given struct. -func (f *File) ReflectFrom(v interface{}) error { - return f.Section("").ReflectFrom(v) -} - -// ReflectFromWithMapper reflects data sources from given struct with name mapper. -func ReflectFromWithMapper(cfg *File, v interface{}, mapper NameMapper) error { - cfg.NameMapper = mapper - return cfg.ReflectFrom(v) -} - -// ReflectFrom reflects data sources from given struct. -func ReflectFrom(cfg *File, v interface{}) error { - return ReflectFromWithMapper(cfg, v, nil) -} diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore deleted file mode 100644 index 83656241..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml deleted file mode 100644 index 21166f5c..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go - -go: - - tip - - 1.15.x - - 1.14.x - - 1.13.x - - 1.12.x - -env: - - GO111MODULE=on diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE deleted file mode 100644 index c3d4cc30..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Nate Finch - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/README.md b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/README.md deleted file mode 100644 index 060eae52..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/README.md +++ /dev/null @@ -1,179 +0,0 @@ -# lumberjack [![GoDoc](https://godoc.org/gopkg.in/natefinch/lumberjack.v2?status.png)](https://godoc.org/gopkg.in/natefinch/lumberjack.v2) [![Build Status](https://travis-ci.org/natefinch/lumberjack.svg?branch=v2.0)](https://travis-ci.org/natefinch/lumberjack) [![Build status](https://ci.appveyor.com/api/projects/status/00gchpxtg4gkrt5d)](https://ci.appveyor.com/project/natefinch/lumberjack) [![Coverage Status](https://coveralls.io/repos/natefinch/lumberjack/badge.svg?branch=v2.0)](https://coveralls.io/r/natefinch/lumberjack?branch=v2.0) - -### Lumberjack is a Go package for writing logs to rolling files. - -Package lumberjack provides a rolling logger. - -Note that this is v2.0 of lumberjack, and should be imported using gopkg.in -thusly: - - import "gopkg.in/natefinch/lumberjack.v2" - -The package name remains simply lumberjack, and the code resides at -https://github.com/natefinch/lumberjack under the v2.0 branch. - -Lumberjack is intended to be one part of a logging infrastructure. -It is not an all-in-one solution, but instead is a pluggable -component at the bottom of the logging stack that simply controls the files -to which logs are written. - -Lumberjack plays well with any logging package that can write to an -io.Writer, including the standard library's log package. - -Lumberjack assumes that only one process is writing to the output files. -Using the same lumberjack configuration from multiple processes on the same -machine will result in improper behavior. - - -**Example** - -To use lumberjack with the standard library's log package, just pass it into the SetOutput function when your application starts. - -Code: - -```go -log.SetOutput(&lumberjack.Logger{ - Filename: "/var/log/myapp/foo.log", - MaxSize: 500, // megabytes - MaxBackups: 3, - MaxAge: 28, //days - Compress: true, // disabled by default -}) -``` - - - -## type Logger -``` go -type Logger struct { - // Filename is the file to write logs to. Backup log files will be retained - // in the same directory. It uses -lumberjack.log in - // os.TempDir() if empty. - Filename string `json:"filename" yaml:"filename"` - - // MaxSize is the maximum size in megabytes of the log file before it gets - // rotated. It defaults to 100 megabytes. - MaxSize int `json:"maxsize" yaml:"maxsize"` - - // MaxAge is the maximum number of days to retain old log files based on the - // timestamp encoded in their filename. Note that a day is defined as 24 - // hours and may not exactly correspond to calendar days due to daylight - // savings, leap seconds, etc. The default is not to remove old log files - // based on age. - MaxAge int `json:"maxage" yaml:"maxage"` - - // MaxBackups is the maximum number of old log files to retain. The default - // is to retain all old log files (though MaxAge may still cause them to get - // deleted.) - MaxBackups int `json:"maxbackups" yaml:"maxbackups"` - - // LocalTime determines if the time used for formatting the timestamps in - // backup files is the computer's local time. The default is to use UTC - // time. - LocalTime bool `json:"localtime" yaml:"localtime"` - - // Compress determines if the rotated log files should be compressed - // using gzip. The default is not to perform compression. - Compress bool `json:"compress" yaml:"compress"` - // contains filtered or unexported fields -} -``` -Logger is an io.WriteCloser that writes to the specified filename. - -Logger opens or creates the logfile on first Write. If the file exists and -is less than MaxSize megabytes, lumberjack will open and append to that file. -If the file exists and its size is >= MaxSize megabytes, the file is renamed -by putting the current time in a timestamp in the name immediately before the -file's extension (or the end of the filename if there's no extension). A new -log file is then created using original filename. - -Whenever a write would cause the current log file exceed MaxSize megabytes, -the current file is closed, renamed, and a new log file created with the -original name. Thus, the filename you give Logger is always the "current" log -file. - -Backups use the log file name given to Logger, in the form `name-timestamp.ext` -where name is the filename without the extension, timestamp is the time at which -the log was rotated formatted with the time.Time format of -`2006-01-02T15-04-05.000` and the extension is the original extension. For -example, if your Logger.Filename is `/var/log/foo/server.log`, a backup created -at 6:30pm on Nov 11 2016 would use the filename -`/var/log/foo/server-2016-11-04T18-30-00.000.log` - -### Cleaning Up Old Log Files -Whenever a new logfile gets created, old log files may be deleted. The most -recent files according to the encoded timestamp will be retained, up to a -number equal to MaxBackups (or all of them if MaxBackups is 0). Any files -with an encoded timestamp older than MaxAge days are deleted, regardless of -MaxBackups. Note that the time encoded in the timestamp is the rotation -time, which may differ from the last time that file was written to. - -If MaxBackups and MaxAge are both 0, no old log files will be deleted. - - - - - - - - - - - -### func (\*Logger) Close -``` go -func (l *Logger) Close() error -``` -Close implements io.Closer, and closes the current logfile. - - - -### func (\*Logger) Rotate -``` go -func (l *Logger) Rotate() error -``` -Rotate causes Logger to close the existing log file and immediately create a -new one. This is a helper function for applications that want to initiate -rotations outside of the normal rotation rules, such as in response to -SIGHUP. After rotating, this initiates a cleanup of old log files according -to the normal rules. - -**Example** - -Example of how to rotate in response to SIGHUP. - -Code: - -```go -l := &lumberjack.Logger{} -log.SetOutput(l) -c := make(chan os.Signal, 1) -signal.Notify(c, syscall.SIGHUP) - -go func() { - for { - <-c - l.Rotate() - } -}() -``` - -### func (\*Logger) Write -``` go -func (l *Logger) Write(p []byte) (n int, err error) -``` -Write implements io.Writer. If a write would cause the log file to be larger -than MaxSize, the file is closed, renamed to include a timestamp of the -current time, and a new log file is created using the original log file name. -If the length of the write is greater than MaxSize, an error is returned. - - - - - - - - - -- - - -Generated by [godoc2md](http://godoc.org/github.com/davecheney/godoc2md) diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go deleted file mode 100644 index 948f989a..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !linux -// +build !linux - -package lumberjack - -import ( - "os" -) - -func chown(_ string, _ os.FileInfo) error { - return nil -} diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go deleted file mode 100644 index 465f5692..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go +++ /dev/null @@ -1,19 +0,0 @@ -package lumberjack - -import ( - "os" - "syscall" -) - -// osChown is a var so we can mock it out during tests. -var osChown = os.Chown - -func chown(name string, info os.FileInfo) error { - f, err := os.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, info.Mode()) - if err != nil { - return err - } - f.Close() - stat := info.Sys().(*syscall.Stat_t) - return osChown(name, int(stat.Uid), int(stat.Gid)) -} diff --git a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go b/backend/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go deleted file mode 100644 index 8fe043e0..00000000 --- a/backend/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go +++ /dev/null @@ -1,541 +0,0 @@ -// Package lumberjack provides a rolling logger. -// -// Note that this is v2.0 of lumberjack, and should be imported using gopkg.in -// thusly: -// -// import "gopkg.in/natefinch/lumberjack.v2" -// -// The package name remains simply lumberjack, and the code resides at -// https://github.com/natefinch/lumberjack under the v2.0 branch. -// -// Lumberjack is intended to be one part of a logging infrastructure. -// It is not an all-in-one solution, but instead is a pluggable -// component at the bottom of the logging stack that simply controls the files -// to which logs are written. -// -// Lumberjack plays well with any logging package that can write to an -// io.Writer, including the standard library's log package. -// -// Lumberjack assumes that only one process is writing to the output files. -// Using the same lumberjack configuration from multiple processes on the same -// machine will result in improper behavior. -package lumberjack - -import ( - "compress/gzip" - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "sort" - "strings" - "sync" - "time" -) - -const ( - backupTimeFormat = "2006-01-02T15-04-05.000" - compressSuffix = ".gz" - defaultMaxSize = 100 -) - -// ensure we always implement io.WriteCloser -var _ io.WriteCloser = (*Logger)(nil) - -// Logger is an io.WriteCloser that writes to the specified filename. -// -// Logger opens or creates the logfile on first Write. If the file exists and -// is less than MaxSize megabytes, lumberjack will open and append to that file. -// If the file exists and its size is >= MaxSize megabytes, the file is renamed -// by putting the current time in a timestamp in the name immediately before the -// file's extension (or the end of the filename if there's no extension). A new -// log file is then created using original filename. -// -// Whenever a write would cause the current log file exceed MaxSize megabytes, -// the current file is closed, renamed, and a new log file created with the -// original name. Thus, the filename you give Logger is always the "current" log -// file. -// -// Backups use the log file name given to Logger, in the form -// `name-timestamp.ext` where name is the filename without the extension, -// timestamp is the time at which the log was rotated formatted with the -// time.Time format of `2006-01-02T15-04-05.000` and the extension is the -// original extension. For example, if your Logger.Filename is -// `/var/log/foo/server.log`, a backup created at 6:30pm on Nov 11 2016 would -// use the filename `/var/log/foo/server-2016-11-04T18-30-00.000.log` -// -// # Cleaning Up Old Log Files -// -// Whenever a new logfile gets created, old log files may be deleted. The most -// recent files according to the encoded timestamp will be retained, up to a -// number equal to MaxBackups (or all of them if MaxBackups is 0). Any files -// with an encoded timestamp older than MaxAge days are deleted, regardless of -// MaxBackups. Note that the time encoded in the timestamp is the rotation -// time, which may differ from the last time that file was written to. -// -// If MaxBackups and MaxAge are both 0, no old log files will be deleted. -type Logger struct { - // Filename is the file to write logs to. Backup log files will be retained - // in the same directory. It uses -lumberjack.log in - // os.TempDir() if empty. - Filename string `json:"filename" yaml:"filename"` - - // MaxSize is the maximum size in megabytes of the log file before it gets - // rotated. It defaults to 100 megabytes. - MaxSize int `json:"maxsize" yaml:"maxsize"` - - // MaxAge is the maximum number of days to retain old log files based on the - // timestamp encoded in their filename. Note that a day is defined as 24 - // hours and may not exactly correspond to calendar days due to daylight - // savings, leap seconds, etc. The default is not to remove old log files - // based on age. - MaxAge int `json:"maxage" yaml:"maxage"` - - // MaxBackups is the maximum number of old log files to retain. The default - // is to retain all old log files (though MaxAge may still cause them to get - // deleted.) - MaxBackups int `json:"maxbackups" yaml:"maxbackups"` - - // LocalTime determines if the time used for formatting the timestamps in - // backup files is the computer's local time. The default is to use UTC - // time. - LocalTime bool `json:"localtime" yaml:"localtime"` - - // Compress determines if the rotated log files should be compressed - // using gzip. The default is not to perform compression. - Compress bool `json:"compress" yaml:"compress"` - - size int64 - file *os.File - mu sync.Mutex - - millCh chan bool - startMill sync.Once -} - -var ( - // currentTime exists so it can be mocked out by tests. - currentTime = time.Now - - // os_Stat exists so it can be mocked out by tests. - osStat = os.Stat - - // megabyte is the conversion factor between MaxSize and bytes. It is a - // variable so tests can mock it out and not need to write megabytes of data - // to disk. - megabyte = 1024 * 1024 -) - -// Write implements io.Writer. If a write would cause the log file to be larger -// than MaxSize, the file is closed, renamed to include a timestamp of the -// current time, and a new log file is created using the original log file name. -// If the length of the write is greater than MaxSize, an error is returned. -func (l *Logger) Write(p []byte) (n int, err error) { - l.mu.Lock() - defer l.mu.Unlock() - - writeLen := int64(len(p)) - if writeLen > l.max() { - return 0, fmt.Errorf( - "write length %d exceeds maximum file size %d", writeLen, l.max(), - ) - } - - if l.file == nil { - if err = l.openExistingOrNew(len(p)); err != nil { - return 0, err - } - } - - if l.size+writeLen > l.max() { - if err := l.rotate(); err != nil { - return 0, err - } - } - - n, err = l.file.Write(p) - l.size += int64(n) - - return n, err -} - -// Close implements io.Closer, and closes the current logfile. -func (l *Logger) Close() error { - l.mu.Lock() - defer l.mu.Unlock() - return l.close() -} - -// close closes the file if it is open. -func (l *Logger) close() error { - if l.file == nil { - return nil - } - err := l.file.Close() - l.file = nil - return err -} - -// Rotate causes Logger to close the existing log file and immediately create a -// new one. This is a helper function for applications that want to initiate -// rotations outside of the normal rotation rules, such as in response to -// SIGHUP. After rotating, this initiates compression and removal of old log -// files according to the configuration. -func (l *Logger) Rotate() error { - l.mu.Lock() - defer l.mu.Unlock() - return l.rotate() -} - -// rotate closes the current file, moves it aside with a timestamp in the name, -// (if it exists), opens a new file with the original filename, and then runs -// post-rotation processing and removal. -func (l *Logger) rotate() error { - if err := l.close(); err != nil { - return err - } - if err := l.openNew(); err != nil { - return err - } - l.mill() - return nil -} - -// openNew opens a new log file for writing, moving any old log file out of the -// way. This methods assumes the file has already been closed. -func (l *Logger) openNew() error { - err := os.MkdirAll(l.dir(), 0755) - if err != nil { - return fmt.Errorf("can't make directories for new logfile: %s", err) - } - - name := l.filename() - mode := os.FileMode(0600) - info, err := osStat(name) - if err == nil { - // Copy the mode off the old logfile. - mode = info.Mode() - // move the existing file - newname := backupName(name, l.LocalTime) - if err := os.Rename(name, newname); err != nil { - return fmt.Errorf("can't rename log file: %s", err) - } - - // this is a no-op anywhere but linux - if err := chown(name, info); err != nil { - return err - } - } - - // we use truncate here because this should only get called when we've moved - // the file ourselves. if someone else creates the file in the meantime, - // just wipe out the contents. - f, err := os.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, mode) - if err != nil { - return fmt.Errorf("can't open new logfile: %s", err) - } - l.file = f - l.size = 0 - return nil -} - -// backupName creates a new filename from the given name, inserting a timestamp -// between the filename and the extension, using the local time if requested -// (otherwise UTC). -func backupName(name string, local bool) string { - dir := filepath.Dir(name) - filename := filepath.Base(name) - ext := filepath.Ext(filename) - prefix := filename[:len(filename)-len(ext)] - t := currentTime() - if !local { - t = t.UTC() - } - - timestamp := t.Format(backupTimeFormat) - return filepath.Join(dir, fmt.Sprintf("%s-%s%s", prefix, timestamp, ext)) -} - -// openExistingOrNew opens the logfile if it exists and if the current write -// would not put it over MaxSize. If there is no such file or the write would -// put it over the MaxSize, a new file is created. -func (l *Logger) openExistingOrNew(writeLen int) error { - l.mill() - - filename := l.filename() - info, err := osStat(filename) - if os.IsNotExist(err) { - return l.openNew() - } - if err != nil { - return fmt.Errorf("error getting log file info: %s", err) - } - - if info.Size()+int64(writeLen) >= l.max() { - return l.rotate() - } - - file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644) - if err != nil { - // if we fail to open the old log file for some reason, just ignore - // it and open a new log file. - return l.openNew() - } - l.file = file - l.size = info.Size() - return nil -} - -// filename generates the name of the logfile from the current time. -func (l *Logger) filename() string { - if l.Filename != "" { - return l.Filename - } - name := filepath.Base(os.Args[0]) + "-lumberjack.log" - return filepath.Join(os.TempDir(), name) -} - -// millRunOnce performs compression and removal of stale log files. -// Log files are compressed if enabled via configuration and old log -// files are removed, keeping at most l.MaxBackups files, as long as -// none of them are older than MaxAge. -func (l *Logger) millRunOnce() error { - if l.MaxBackups == 0 && l.MaxAge == 0 && !l.Compress { - return nil - } - - files, err := l.oldLogFiles() - if err != nil { - return err - } - - var compress, remove []logInfo - - if l.MaxBackups > 0 && l.MaxBackups < len(files) { - preserved := make(map[string]bool) - var remaining []logInfo - for _, f := range files { - // Only count the uncompressed log file or the - // compressed log file, not both. - fn := f.Name() - if strings.HasSuffix(fn, compressSuffix) { - fn = fn[:len(fn)-len(compressSuffix)] - } - preserved[fn] = true - - if len(preserved) > l.MaxBackups { - remove = append(remove, f) - } else { - remaining = append(remaining, f) - } - } - files = remaining - } - if l.MaxAge > 0 { - diff := time.Duration(int64(24*time.Hour) * int64(l.MaxAge)) - cutoff := currentTime().Add(-1 * diff) - - var remaining []logInfo - for _, f := range files { - if f.timestamp.Before(cutoff) { - remove = append(remove, f) - } else { - remaining = append(remaining, f) - } - } - files = remaining - } - - if l.Compress { - for _, f := range files { - if !strings.HasSuffix(f.Name(), compressSuffix) { - compress = append(compress, f) - } - } - } - - for _, f := range remove { - errRemove := os.Remove(filepath.Join(l.dir(), f.Name())) - if err == nil && errRemove != nil { - err = errRemove - } - } - for _, f := range compress { - fn := filepath.Join(l.dir(), f.Name()) - errCompress := compressLogFile(fn, fn+compressSuffix) - if err == nil && errCompress != nil { - err = errCompress - } - } - - return err -} - -// millRun runs in a goroutine to manage post-rotation compression and removal -// of old log files. -func (l *Logger) millRun() { - for range l.millCh { - // what am I going to do, log this? - _ = l.millRunOnce() - } -} - -// mill performs post-rotation compression and removal of stale log files, -// starting the mill goroutine if necessary. -func (l *Logger) mill() { - l.startMill.Do(func() { - l.millCh = make(chan bool, 1) - go l.millRun() - }) - select { - case l.millCh <- true: - default: - } -} - -// oldLogFiles returns the list of backup log files stored in the same -// directory as the current log file, sorted by ModTime -func (l *Logger) oldLogFiles() ([]logInfo, error) { - files, err := ioutil.ReadDir(l.dir()) - if err != nil { - return nil, fmt.Errorf("can't read log file directory: %s", err) - } - logFiles := []logInfo{} - - prefix, ext := l.prefixAndExt() - - for _, f := range files { - if f.IsDir() { - continue - } - if t, err := l.timeFromName(f.Name(), prefix, ext); err == nil { - logFiles = append(logFiles, logInfo{t, f}) - continue - } - if t, err := l.timeFromName(f.Name(), prefix, ext+compressSuffix); err == nil { - logFiles = append(logFiles, logInfo{t, f}) - continue - } - // error parsing means that the suffix at the end was not generated - // by lumberjack, and therefore it's not a backup file. - } - - sort.Sort(byFormatTime(logFiles)) - - return logFiles, nil -} - -// timeFromName extracts the formatted time from the filename by stripping off -// the filename's prefix and extension. This prevents someone's filename from -// confusing time.parse. -func (l *Logger) timeFromName(filename, prefix, ext string) (time.Time, error) { - if !strings.HasPrefix(filename, prefix) { - return time.Time{}, errors.New("mismatched prefix") - } - if !strings.HasSuffix(filename, ext) { - return time.Time{}, errors.New("mismatched extension") - } - ts := filename[len(prefix) : len(filename)-len(ext)] - return time.Parse(backupTimeFormat, ts) -} - -// max returns the maximum size in bytes of log files before rolling. -func (l *Logger) max() int64 { - if l.MaxSize == 0 { - return int64(defaultMaxSize * megabyte) - } - return int64(l.MaxSize) * int64(megabyte) -} - -// dir returns the directory for the current filename. -func (l *Logger) dir() string { - return filepath.Dir(l.filename()) -} - -// prefixAndExt returns the filename part and extension part from the Logger's -// filename. -func (l *Logger) prefixAndExt() (prefix, ext string) { - filename := filepath.Base(l.filename()) - ext = filepath.Ext(filename) - prefix = filename[:len(filename)-len(ext)] + "-" - return prefix, ext -} - -// compressLogFile compresses the given log file, removing the -// uncompressed log file if successful. -func compressLogFile(src, dst string) (err error) { - f, err := os.Open(src) - if err != nil { - return fmt.Errorf("failed to open log file: %v", err) - } - defer f.Close() - - fi, err := osStat(src) - if err != nil { - return fmt.Errorf("failed to stat log file: %v", err) - } - - if err := chown(dst, fi); err != nil { - return fmt.Errorf("failed to chown compressed log file: %v", err) - } - - // If this file already exists, we presume it was created by - // a previous attempt to compress the log file. - gzf, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, fi.Mode()) - if err != nil { - return fmt.Errorf("failed to open compressed log file: %v", err) - } - defer gzf.Close() - - gz := gzip.NewWriter(gzf) - - defer func() { - if err != nil { - os.Remove(dst) - err = fmt.Errorf("failed to compress log file: %v", err) - } - }() - - if _, err := io.Copy(gz, f); err != nil { - return err - } - if err := gz.Close(); err != nil { - return err - } - if err := gzf.Close(); err != nil { - return err - } - - if err := f.Close(); err != nil { - return err - } - if err := os.Remove(src); err != nil { - return err - } - - return nil -} - -// logInfo is a convenience struct to return the filename and its embedded -// timestamp. -type logInfo struct { - timestamp time.Time - os.FileInfo -} - -// byFormatTime sorts by newest time formatted in the name. -type byFormatTime []logInfo - -func (b byFormatTime) Less(i, j int) bool { - return b[i].timestamp.After(b[j].timestamp) -} - -func (b byFormatTime) Swap(i, j int) { - b[i], b[j] = b[j], b[i] -} - -func (b byFormatTime) Len() int { - return len(b) -} diff --git a/backend/vendor/gopkg.in/yaml.v2/.travis.yml b/backend/vendor/gopkg.in/yaml.v2/.travis.yml deleted file mode 100644 index 7348c50c..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -language: go - -go: - - "1.4.x" - - "1.5.x" - - "1.6.x" - - "1.7.x" - - "1.8.x" - - "1.9.x" - - "1.10.x" - - "1.11.x" - - "1.12.x" - - "1.13.x" - - "1.14.x" - - "tip" - -go_import_path: gopkg.in/yaml.v2 diff --git a/backend/vendor/gopkg.in/yaml.v2/LICENSE b/backend/vendor/gopkg.in/yaml.v2/LICENSE deleted file mode 100644 index 8dada3ed..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/vendor/gopkg.in/yaml.v2/LICENSE.libyaml b/backend/vendor/gopkg.in/yaml.v2/LICENSE.libyaml deleted file mode 100644 index 8da58fbf..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/LICENSE.libyaml +++ /dev/null @@ -1,31 +0,0 @@ -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original copyright and license: - - apic.go - emitterc.go - parserc.go - readerc.go - scannerc.go - writerc.go - yamlh.go - yamlprivateh.go - -Copyright (c) 2006 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/vendor/gopkg.in/yaml.v2/NOTICE b/backend/vendor/gopkg.in/yaml.v2/NOTICE deleted file mode 100644 index 866d74a7..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2011-2016 Canonical Ltd. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/backend/vendor/gopkg.in/yaml.v2/README.md b/backend/vendor/gopkg.in/yaml.v2/README.md deleted file mode 100644 index b50c6e87..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# YAML support for the Go language - -Introduction ------------- - -The yaml package enables Go programs to comfortably encode and decode YAML -values. It was developed within [Canonical](https://www.canonical.com) as -part of the [juju](https://juju.ubuntu.com) project, and is based on a -pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) -C library to parse and generate YAML data quickly and reliably. - -Compatibility -------------- - -The yaml package supports most of YAML 1.1 and 1.2, including support for -anchors, tags, map merging, etc. Multi-document unmarshalling is not yet -implemented, and base-60 floats from YAML 1.1 are purposefully not -supported since they're a poor design and are gone in YAML 1.2. - -Installation and usage ----------------------- - -The import path for the package is *gopkg.in/yaml.v2*. - -To install it, run: - - go get gopkg.in/yaml.v2 - -API documentation ------------------ - -If opened in a browser, the import path itself leads to the API documentation: - - * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) - -API stability -------------- - -The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in). - - -License -------- - -The yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details. - - -Example -------- - -```Go -package main - -import ( - "fmt" - "log" - - "gopkg.in/yaml.v2" -) - -var data = ` -a: Easy! -b: - c: 2 - d: [3, 4] -` - -// Note: struct fields must be public in order for unmarshal to -// correctly populate the data. -type T struct { - A string - B struct { - RenamedC int `yaml:"c"` - D []int `yaml:",flow"` - } -} - -func main() { - t := T{} - - err := yaml.Unmarshal([]byte(data), &t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t:\n%v\n\n", t) - - d, err := yaml.Marshal(&t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t dump:\n%s\n\n", string(d)) - - m := make(map[interface{}]interface{}) - - err = yaml.Unmarshal([]byte(data), &m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m:\n%v\n\n", m) - - d, err = yaml.Marshal(&m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m dump:\n%s\n\n", string(d)) -} -``` - -This example will generate the following output: - -``` ---- t: -{Easy! {2 [3 4]}} - ---- t dump: -a: Easy! -b: - c: 2 - d: [3, 4] - - ---- m: -map[a:Easy! b:map[c:2 d:[3 4]]] - ---- m dump: -a: Easy! -b: - c: 2 - d: - - 3 - - 4 -``` - diff --git a/backend/vendor/gopkg.in/yaml.v2/apic.go b/backend/vendor/gopkg.in/yaml.v2/apic.go deleted file mode 100644 index fb2821e1..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/apic.go +++ /dev/null @@ -1,744 +0,0 @@ -package yaml - -import ( - "io" -) - -func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { - //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) - - // Check if we can move the queue at the beginning of the buffer. - if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { - if parser.tokens_head != len(parser.tokens) { - copy(parser.tokens, parser.tokens[parser.tokens_head:]) - } - parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] - parser.tokens_head = 0 - } - parser.tokens = append(parser.tokens, *token) - if pos < 0 { - return - } - copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) - parser.tokens[parser.tokens_head+pos] = *token -} - -// Create a new parser object. -func yaml_parser_initialize(parser *yaml_parser_t) bool { - *parser = yaml_parser_t{ - raw_buffer: make([]byte, 0, input_raw_buffer_size), - buffer: make([]byte, 0, input_buffer_size), - } - return true -} - -// Destroy a parser object. -func yaml_parser_delete(parser *yaml_parser_t) { - *parser = yaml_parser_t{} -} - -// String read handler. -func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - if parser.input_pos == len(parser.input) { - return 0, io.EOF - } - n = copy(buffer, parser.input[parser.input_pos:]) - parser.input_pos += n - return n, nil -} - -// Reader read handler. -func yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - return parser.input_reader.Read(buffer) -} - -// Set a string input. -func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_string_read_handler - parser.input = input - parser.input_pos = 0 -} - -// Set a file input. -func yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_reader_read_handler - parser.input_reader = r -} - -// Set the source encoding. -func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { - if parser.encoding != yaml_ANY_ENCODING { - panic("must set the encoding only once") - } - parser.encoding = encoding -} - -var disableLineWrapping = false - -// Create a new emitter object. -func yaml_emitter_initialize(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{ - buffer: make([]byte, output_buffer_size), - raw_buffer: make([]byte, 0, output_raw_buffer_size), - states: make([]yaml_emitter_state_t, 0, initial_stack_size), - events: make([]yaml_event_t, 0, initial_queue_size), - } - if disableLineWrapping { - emitter.best_width = -1 - } -} - -// Destroy an emitter object. -func yaml_emitter_delete(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{} -} - -// String write handler. -func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - *emitter.output_buffer = append(*emitter.output_buffer, buffer...) - return nil -} - -// yaml_writer_write_handler uses emitter.output_writer to write the -// emitted text. -func yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - _, err := emitter.output_writer.Write(buffer) - return err -} - -// Set a string output. -func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_string_write_handler - emitter.output_buffer = output_buffer -} - -// Set a file output. -func yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_writer_write_handler - emitter.output_writer = w -} - -// Set the output encoding. -func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { - if emitter.encoding != yaml_ANY_ENCODING { - panic("must set the output encoding only once") - } - emitter.encoding = encoding -} - -// Set the canonical output style. -func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { - emitter.canonical = canonical -} - -// // Set the indentation increment. -func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { - if indent < 2 || indent > 9 { - indent = 2 - } - emitter.best_indent = indent -} - -// Set the preferred line width. -func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { - if width < 0 { - width = -1 - } - emitter.best_width = width -} - -// Set if unescaped non-ASCII characters are allowed. -func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { - emitter.unicode = unicode -} - -// Set the preferred line break character. -func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { - emitter.line_break = line_break -} - -///* -// * Destroy a token object. -// */ -// -//YAML_DECLARE(void) -//yaml_token_delete(yaml_token_t *token) -//{ -// assert(token); // Non-NULL token object expected. -// -// switch (token.type) -// { -// case YAML_TAG_DIRECTIVE_TOKEN: -// yaml_free(token.data.tag_directive.handle); -// yaml_free(token.data.tag_directive.prefix); -// break; -// -// case YAML_ALIAS_TOKEN: -// yaml_free(token.data.alias.value); -// break; -// -// case YAML_ANCHOR_TOKEN: -// yaml_free(token.data.anchor.value); -// break; -// -// case YAML_TAG_TOKEN: -// yaml_free(token.data.tag.handle); -// yaml_free(token.data.tag.suffix); -// break; -// -// case YAML_SCALAR_TOKEN: -// yaml_free(token.data.scalar.value); -// break; -// -// default: -// break; -// } -// -// memset(token, 0, sizeof(yaml_token_t)); -//} -// -///* -// * Check if a string is a valid UTF-8 sequence. -// * -// * Check 'reader.c' for more details on UTF-8 encoding. -// */ -// -//static int -//yaml_check_utf8(yaml_char_t *start, size_t length) -//{ -// yaml_char_t *end = start+length; -// yaml_char_t *pointer = start; -// -// while (pointer < end) { -// unsigned char octet; -// unsigned int width; -// unsigned int value; -// size_t k; -// -// octet = pointer[0]; -// width = (octet & 0x80) == 0x00 ? 1 : -// (octet & 0xE0) == 0xC0 ? 2 : -// (octet & 0xF0) == 0xE0 ? 3 : -// (octet & 0xF8) == 0xF0 ? 4 : 0; -// value = (octet & 0x80) == 0x00 ? octet & 0x7F : -// (octet & 0xE0) == 0xC0 ? octet & 0x1F : -// (octet & 0xF0) == 0xE0 ? octet & 0x0F : -// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; -// if (!width) return 0; -// if (pointer+width > end) return 0; -// for (k = 1; k < width; k ++) { -// octet = pointer[k]; -// if ((octet & 0xC0) != 0x80) return 0; -// value = (value << 6) + (octet & 0x3F); -// } -// if (!((width == 1) || -// (width == 2 && value >= 0x80) || -// (width == 3 && value >= 0x800) || -// (width == 4 && value >= 0x10000))) return 0; -// -// pointer += width; -// } -// -// return 1; -//} -// - -// Create STREAM-START. -func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - encoding: encoding, - } -} - -// Create STREAM-END. -func yaml_stream_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - } -} - -// Create DOCUMENT-START. -func yaml_document_start_event_initialize( - event *yaml_event_t, - version_directive *yaml_version_directive_t, - tag_directives []yaml_tag_directive_t, - implicit bool, -) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: implicit, - } -} - -// Create DOCUMENT-END. -func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - implicit: implicit, - } -} - -///* -// * Create ALIAS. -// */ -// -//YAML_DECLARE(int) -//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t) -//{ -// mark yaml_mark_t = { 0, 0, 0 } -// anchor_copy *yaml_char_t = NULL -// -// assert(event) // Non-NULL event object is expected. -// assert(anchor) // Non-NULL anchor is expected. -// -// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0 -// -// anchor_copy = yaml_strdup(anchor) -// if (!anchor_copy) -// return 0 -// -// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark) -// -// return 1 -//} - -// Create SCALAR. -func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - anchor: anchor, - tag: tag, - value: value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-START. -func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-END. -func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - } - return true -} - -// Create MAPPING-START. -func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } -} - -// Create MAPPING-END. -func yaml_mapping_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - } -} - -// Destroy an event object. -func yaml_event_delete(event *yaml_event_t) { - *event = yaml_event_t{} -} - -///* -// * Create a document object. -// */ -// -//YAML_DECLARE(int) -//yaml_document_initialize(document *yaml_document_t, -// version_directive *yaml_version_directive_t, -// tag_directives_start *yaml_tag_directive_t, -// tag_directives_end *yaml_tag_directive_t, -// start_implicit int, end_implicit int) -//{ -// struct { -// error yaml_error_type_t -// } context -// struct { -// start *yaml_node_t -// end *yaml_node_t -// top *yaml_node_t -// } nodes = { NULL, NULL, NULL } -// version_directive_copy *yaml_version_directive_t = NULL -// struct { -// start *yaml_tag_directive_t -// end *yaml_tag_directive_t -// top *yaml_tag_directive_t -// } tag_directives_copy = { NULL, NULL, NULL } -// value yaml_tag_directive_t = { NULL, NULL } -// mark yaml_mark_t = { 0, 0, 0 } -// -// assert(document) // Non-NULL document object is expected. -// assert((tag_directives_start && tag_directives_end) || -// (tag_directives_start == tag_directives_end)) -// // Valid tag directives are expected. -// -// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error -// -// if (version_directive) { -// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) -// if (!version_directive_copy) goto error -// version_directive_copy.major = version_directive.major -// version_directive_copy.minor = version_directive.minor -// } -// -// if (tag_directives_start != tag_directives_end) { -// tag_directive *yaml_tag_directive_t -// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) -// goto error -// for (tag_directive = tag_directives_start -// tag_directive != tag_directives_end; tag_directive ++) { -// assert(tag_directive.handle) -// assert(tag_directive.prefix) -// if (!yaml_check_utf8(tag_directive.handle, -// strlen((char *)tag_directive.handle))) -// goto error -// if (!yaml_check_utf8(tag_directive.prefix, -// strlen((char *)tag_directive.prefix))) -// goto error -// value.handle = yaml_strdup(tag_directive.handle) -// value.prefix = yaml_strdup(tag_directive.prefix) -// if (!value.handle || !value.prefix) goto error -// if (!PUSH(&context, tag_directives_copy, value)) -// goto error -// value.handle = NULL -// value.prefix = NULL -// } -// } -// -// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, -// tag_directives_copy.start, tag_directives_copy.top, -// start_implicit, end_implicit, mark, mark) -// -// return 1 -// -//error: -// STACK_DEL(&context, nodes) -// yaml_free(version_directive_copy) -// while (!STACK_EMPTY(&context, tag_directives_copy)) { -// value yaml_tag_directive_t = POP(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// } -// STACK_DEL(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// -// return 0 -//} -// -///* -// * Destroy a document object. -// */ -// -//YAML_DECLARE(void) -//yaml_document_delete(document *yaml_document_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// tag_directive *yaml_tag_directive_t -// -// context.error = YAML_NO_ERROR // Eliminate a compiler warning. -// -// assert(document) // Non-NULL document object is expected. -// -// while (!STACK_EMPTY(&context, document.nodes)) { -// node yaml_node_t = POP(&context, document.nodes) -// yaml_free(node.tag) -// switch (node.type) { -// case YAML_SCALAR_NODE: -// yaml_free(node.data.scalar.value) -// break -// case YAML_SEQUENCE_NODE: -// STACK_DEL(&context, node.data.sequence.items) -// break -// case YAML_MAPPING_NODE: -// STACK_DEL(&context, node.data.mapping.pairs) -// break -// default: -// assert(0) // Should not happen. -// } -// } -// STACK_DEL(&context, document.nodes) -// -// yaml_free(document.version_directive) -// for (tag_directive = document.tag_directives.start -// tag_directive != document.tag_directives.end -// tag_directive++) { -// yaml_free(tag_directive.handle) -// yaml_free(tag_directive.prefix) -// } -// yaml_free(document.tag_directives.start) -// -// memset(document, 0, sizeof(yaml_document_t)) -//} -// -///** -// * Get a document node. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_node(document *yaml_document_t, index int) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (index > 0 && document.nodes.start + index <= document.nodes.top) { -// return document.nodes.start + index - 1 -// } -// return NULL -//} -// -///** -// * Get the root object. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_root_node(document *yaml_document_t) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (document.nodes.top != document.nodes.start) { -// return document.nodes.start -// } -// return NULL -//} -// -///* -// * Add a scalar node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_scalar(document *yaml_document_t, -// tag *yaml_char_t, value *yaml_char_t, length int, -// style yaml_scalar_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// value_copy *yaml_char_t = NULL -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// assert(value) // Non-NULL value is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (length < 0) { -// length = strlen((char *)value) -// } -// -// if (!yaml_check_utf8(value, length)) goto error -// value_copy = yaml_malloc(length+1) -// if (!value_copy) goto error -// memcpy(value_copy, value, length) -// value_copy[length] = '\0' -// -// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// yaml_free(tag_copy) -// yaml_free(value_copy) -// -// return 0 -//} -// -///* -// * Add a sequence node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_sequence(document *yaml_document_t, -// tag *yaml_char_t, style yaml_sequence_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_item_t -// end *yaml_node_item_t -// top *yaml_node_item_t -// } items = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error -// -// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, items) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Add a mapping node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_mapping(document *yaml_document_t, -// tag *yaml_char_t, style yaml_mapping_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_pair_t -// end *yaml_node_pair_t -// top *yaml_node_pair_t -// } pairs = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error -// -// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, pairs) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Append an item to a sequence node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_sequence_item(document *yaml_document_t, -// sequence int, item int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// assert(document) // Non-NULL document is required. -// assert(sequence > 0 -// && document.nodes.start + sequence <= document.nodes.top) -// // Valid sequence id is required. -// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) -// // A sequence node is required. -// assert(item > 0 && document.nodes.start + item <= document.nodes.top) -// // Valid item id is required. -// -// if (!PUSH(&context, -// document.nodes.start[sequence-1].data.sequence.items, item)) -// return 0 -// -// return 1 -//} -// -///* -// * Append a pair of a key and a value to a mapping node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_mapping_pair(document *yaml_document_t, -// mapping int, key int, value int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// pair yaml_node_pair_t -// -// assert(document) // Non-NULL document is required. -// assert(mapping > 0 -// && document.nodes.start + mapping <= document.nodes.top) -// // Valid mapping id is required. -// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) -// // A mapping node is required. -// assert(key > 0 && document.nodes.start + key <= document.nodes.top) -// // Valid key id is required. -// assert(value > 0 && document.nodes.start + value <= document.nodes.top) -// // Valid value id is required. -// -// pair.key = key -// pair.value = value -// -// if (!PUSH(&context, -// document.nodes.start[mapping-1].data.mapping.pairs, pair)) -// return 0 -// -// return 1 -//} -// -// diff --git a/backend/vendor/gopkg.in/yaml.v2/decode.go b/backend/vendor/gopkg.in/yaml.v2/decode.go deleted file mode 100644 index 129bc2a9..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/decode.go +++ /dev/null @@ -1,815 +0,0 @@ -package yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "io" - "math" - "reflect" - "strconv" - "time" -) - -const ( - documentNode = 1 << iota - mappingNode - sequenceNode - scalarNode - aliasNode -) - -type node struct { - kind int - line, column int - tag string - // For an alias node, alias holds the resolved alias. - alias *node - value string - implicit bool - children []*node - anchors map[string]*node -} - -// ---------------------------------------------------------------------------- -// Parser, produces a node tree out of a libyaml event stream. - -type parser struct { - parser yaml_parser_t - event yaml_event_t - doc *node - doneInit bool -} - -func newParser(b []byte) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - if len(b) == 0 { - b = []byte{'\n'} - } - yaml_parser_set_input_string(&p.parser, b) - return &p -} - -func newParserFromReader(r io.Reader) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - yaml_parser_set_input_reader(&p.parser, r) - return &p -} - -func (p *parser) init() { - if p.doneInit { - return - } - p.expect(yaml_STREAM_START_EVENT) - p.doneInit = true -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -// expect consumes an event from the event stream and -// checks that it's of the expected type. -func (p *parser) expect(e yaml_event_type_t) { - if p.event.typ == yaml_NO_EVENT { - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - } - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - if p.event.typ != e { - p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) - p.fail() - } - yaml_event_delete(&p.event) - p.event.typ = yaml_NO_EVENT -} - -// peek peeks at the next event in the event stream, -// puts the results into p.event and returns the event type. -func (p *parser) peek() yaml_event_type_t { - if p.event.typ != yaml_NO_EVENT { - return p.event.typ - } - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - return p.event.typ -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } else if p.parser.context_mark.line != 0 { - line = p.parser.context_mark.line - } - if line != 0 { - where = "line " + strconv.Itoa(line) + ": " - } - var msg string - if len(p.parser.problem) > 0 { - msg = p.parser.problem - } else { - msg = "unknown problem parsing YAML content" - } - failf("%s%s", where, msg) -} - -func (p *parser) anchor(n *node, anchor []byte) { - if anchor != nil { - p.doc.anchors[string(anchor)] = n - } -} - -func (p *parser) parse() *node { - p.init() - switch p.peek() { - case yaml_SCALAR_EVENT: - return p.scalar() - case yaml_ALIAS_EVENT: - return p.alias() - case yaml_MAPPING_START_EVENT: - return p.mapping() - case yaml_SEQUENCE_START_EVENT: - return p.sequence() - case yaml_DOCUMENT_START_EVENT: - return p.document() - case yaml_STREAM_END_EVENT: - // Happens when attempting to decode an empty buffer. - return nil - default: - panic("attempted to parse unknown event: " + p.event.typ.String()) - } -} - -func (p *parser) node(kind int) *node { - return &node{ - kind: kind, - line: p.event.start_mark.line, - column: p.event.start_mark.column, - } -} - -func (p *parser) document() *node { - n := p.node(documentNode) - n.anchors = make(map[string]*node) - p.doc = n - p.expect(yaml_DOCUMENT_START_EVENT) - n.children = append(n.children, p.parse()) - p.expect(yaml_DOCUMENT_END_EVENT) - return n -} - -func (p *parser) alias() *node { - n := p.node(aliasNode) - n.value = string(p.event.anchor) - n.alias = p.doc.anchors[n.value] - if n.alias == nil { - failf("unknown anchor '%s' referenced", n.value) - } - p.expect(yaml_ALIAS_EVENT) - return n -} - -func (p *parser) scalar() *node { - n := p.node(scalarNode) - n.value = string(p.event.value) - n.tag = string(p.event.tag) - n.implicit = p.event.implicit - p.anchor(n, p.event.anchor) - p.expect(yaml_SCALAR_EVENT) - return n -} - -func (p *parser) sequence() *node { - n := p.node(sequenceNode) - p.anchor(n, p.event.anchor) - p.expect(yaml_SEQUENCE_START_EVENT) - for p.peek() != yaml_SEQUENCE_END_EVENT { - n.children = append(n.children, p.parse()) - } - p.expect(yaml_SEQUENCE_END_EVENT) - return n -} - -func (p *parser) mapping() *node { - n := p.node(mappingNode) - p.anchor(n, p.event.anchor) - p.expect(yaml_MAPPING_START_EVENT) - for p.peek() != yaml_MAPPING_END_EVENT { - n.children = append(n.children, p.parse(), p.parse()) - } - p.expect(yaml_MAPPING_END_EVENT) - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *node - aliases map[*node]bool - mapType reflect.Type - terrors []string - strict bool - - decodeCount int - aliasCount int - aliasDepth int -} - -var ( - mapItemType = reflect.TypeOf(MapItem{}) - durationType = reflect.TypeOf(time.Duration(0)) - defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = defaultMapType.Elem() - timeType = reflect.TypeOf(time.Time{}) - ptrTimeType = reflect.TypeOf(&time.Time{}) -) - -func newDecoder(strict bool) *decoder { - d := &decoder{mapType: defaultMapType, strict: strict} - d.aliases = make(map[*node]bool) - return d -} - -func (d *decoder) terror(n *node, tag string, out reflect.Value) { - if n.tag != "" { - tag = n.tag - } - value := n.value - if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG { - if len(value) > 10 { - value = " `" + value[:7] + "...`" - } else { - value = " `" + value + "`" - } - } - d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type())) -} - -func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) { - terrlen := len(d.terrors) - err := u.UnmarshalYAML(func(v interface{}) (err error) { - defer handleErr(&err) - d.unmarshal(n, reflect.ValueOf(v)) - if len(d.terrors) > terrlen { - issues := d.terrors[terrlen:] - d.terrors = d.terrors[:terrlen] - return &TypeError{issues} - } - return nil - }) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -// d.prepare initializes and dereferences pointers and calls UnmarshalYAML -// if a value is found to implement it. -// It returns the initialized and dereferenced out value, whether -// unmarshalling was already done by UnmarshalYAML, and if so whether -// its types unmarshalled appropriately. -// -// If n holds a null value, prepare returns before doing anything. -func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "~" || n.value == "" && n.implicit) { - return out, false, false - } - again := true - for again { - again = false - if out.Kind() == reflect.Ptr { - if out.IsNil() { - out.Set(reflect.New(out.Type().Elem())) - } - out = out.Elem() - again = true - } - if out.CanAddr() { - if u, ok := out.Addr().Interface().(Unmarshaler); ok { - good = d.callUnmarshaler(n, u) - return out, true, good - } - } - } - return out, false, false -} - -const ( - // 400,000 decode operations is ~500kb of dense object declarations, or - // ~5kb of dense object declarations with 10000% alias expansion - alias_ratio_range_low = 400000 - - // 4,000,000 decode operations is ~5MB of dense object declarations, or - // ~4.5MB of dense object declarations with 10% alias expansion - alias_ratio_range_high = 4000000 - - // alias_ratio_range is the range over which we scale allowed alias ratios - alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) -) - -func allowedAliasRatio(decodeCount int) float64 { - switch { - case decodeCount <= alias_ratio_range_low: - // allow 99% to come from alias expansion for small-to-medium documents - return 0.99 - case decodeCount >= alias_ratio_range_high: - // allow 10% to come from alias expansion for very large documents - return 0.10 - default: - // scale smoothly from 99% down to 10% over the range. - // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. - // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). - return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) - } -} - -func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { - d.decodeCount++ - if d.aliasDepth > 0 { - d.aliasCount++ - } - if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { - failf("document contains excessive aliasing") - } - switch n.kind { - case documentNode: - return d.document(n, out) - case aliasNode: - return d.alias(n, out) - } - out, unmarshaled, good := d.prepare(n, out) - if unmarshaled { - return good - } - switch n.kind { - case scalarNode: - good = d.scalar(n, out) - case mappingNode: - good = d.mapping(n, out) - case sequenceNode: - good = d.sequence(n, out) - default: - panic("internal error: unknown node kind: " + strconv.Itoa(n.kind)) - } - return good -} - -func (d *decoder) document(n *node, out reflect.Value) (good bool) { - if len(n.children) == 1 { - d.doc = n - d.unmarshal(n.children[0], out) - return true - } - return false -} - -func (d *decoder) alias(n *node, out reflect.Value) (good bool) { - if d.aliases[n] { - // TODO this could actually be allowed in some circumstances. - failf("anchor '%s' value contains itself", n.value) - } - d.aliases[n] = true - d.aliasDepth++ - good = d.unmarshal(n.alias, out) - d.aliasDepth-- - delete(d.aliases, n) - return good -} - -var zeroValue reflect.Value - -func resetMap(out reflect.Value) { - for _, k := range out.MapKeys() { - out.SetMapIndex(k, zeroValue) - } -} - -func (d *decoder) scalar(n *node, out reflect.Value) bool { - var tag string - var resolved interface{} - if n.tag == "" && !n.implicit { - tag = yaml_STR_TAG - resolved = n.value - } else { - tag, resolved = resolve(n.tag, n.value) - if tag == yaml_BINARY_TAG { - data, err := base64.StdEncoding.DecodeString(resolved.(string)) - if err != nil { - failf("!!binary value contains invalid base64 data") - } - resolved = string(data) - } - } - if resolved == nil { - if out.Kind() == reflect.Map && !out.CanAddr() { - resetMap(out) - } else { - out.Set(reflect.Zero(out.Type())) - } - return true - } - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - // We've resolved to exactly the type we want, so use that. - out.Set(resolvedv) - return true - } - // Perhaps we can use the value as a TextUnmarshaler to - // set its value. - if out.CanAddr() { - u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) - if ok { - var text []byte - if tag == yaml_BINARY_TAG { - text = []byte(resolved.(string)) - } else { - // We let any value be unmarshaled into TextUnmarshaler. - // That might be more lax than we'd like, but the - // TextUnmarshaler itself should bowl out any dubious values. - text = []byte(n.value) - } - err := u.UnmarshalText(text) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == yaml_BINARY_TAG { - out.SetString(resolved.(string)) - return true - } - if resolved != nil { - out.SetString(n.value) - return true - } - case reflect.Interface: - if resolved == nil { - out.Set(reflect.Zero(out.Type())) - } else if tag == yaml_TIMESTAMP_TAG { - // It looks like a timestamp but for backward compatibility - // reasons we set it as a string, so that code that unmarshals - // timestamp-like values into interface{} will continue to - // see a string and not a time.Time. - // TODO(v3) Drop this. - out.Set(reflect.ValueOf(n.value)) - } else { - out.Set(reflect.ValueOf(resolved)) - } - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - switch resolved := resolved.(type) { - case int: - if !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case int64: - if !out.OverflowInt(resolved) { - out.SetInt(resolved) - return true - } - case uint64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case float64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - return true - } - } - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch resolved := resolved.(type) { - case int: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - return true - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - return true - case int64: - out.SetFloat(float64(resolved)) - return true - case uint64: - out.SetFloat(float64(resolved)) - return true - case float64: - out.SetFloat(resolved) - return true - } - case reflect.Struct: - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - out.Set(resolvedv) - return true - } - case reflect.Ptr: - if out.Type().Elem() == reflect.TypeOf(resolved) { - // TODO DOes this make sense? When is out a Ptr except when decoding a nil value? - elem := reflect.New(out.Type().Elem()) - elem.Elem().Set(reflect.ValueOf(resolved)) - out.Set(elem) - return true - } - } - d.terror(n, tag, out) - return false -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -func (d *decoder) sequence(n *node, out reflect.Value) (good bool) { - l := len(n.children) - - var iface reflect.Value - switch out.Kind() { - case reflect.Slice: - out.Set(reflect.MakeSlice(out.Type(), l, l)) - case reflect.Array: - if l != out.Len() { - failf("invalid array: want %d elements but got %d", out.Len(), l) - } - case reflect.Interface: - // No type hints. Will have to use a generic sequence. - iface = out - out = settableValueOf(make([]interface{}, l)) - default: - d.terror(n, yaml_SEQ_TAG, out) - return false - } - et := out.Type().Elem() - - j := 0 - for i := 0; i < l; i++ { - e := reflect.New(et).Elem() - if ok := d.unmarshal(n.children[i], e); ok { - out.Index(j).Set(e) - j++ - } - } - if out.Kind() != reflect.Array { - out.Set(out.Slice(0, j)) - } - if iface.IsValid() { - iface.Set(out) - } - return true -} - -func (d *decoder) mapping(n *node, out reflect.Value) (good bool) { - switch out.Kind() { - case reflect.Struct: - return d.mappingStruct(n, out) - case reflect.Slice: - return d.mappingSlice(n, out) - case reflect.Map: - // okay - case reflect.Interface: - if d.mapType.Kind() == reflect.Map { - iface := out - out = reflect.MakeMap(d.mapType) - iface.Set(out) - } else { - slicev := reflect.New(d.mapType).Elem() - if !d.mappingSlice(n, slicev) { - return false - } - out.Set(slicev) - return true - } - default: - d.terror(n, yaml_MAP_TAG, out) - return false - } - outt := out.Type() - kt := outt.Key() - et := outt.Elem() - - mapType := d.mapType - if outt.Key() == ifaceType && outt.Elem() == ifaceType { - d.mapType = outt - } - - if out.IsNil() { - out.Set(reflect.MakeMap(outt)) - } - l := len(n.children) - for i := 0; i < l; i += 2 { - if isMerge(n.children[i]) { - d.merge(n.children[i+1], out) - continue - } - k := reflect.New(kt).Elem() - if d.unmarshal(n.children[i], k) { - kkind := k.Kind() - if kkind == reflect.Interface { - kkind = k.Elem().Kind() - } - if kkind == reflect.Map || kkind == reflect.Slice { - failf("invalid map key: %#v", k.Interface()) - } - e := reflect.New(et).Elem() - if d.unmarshal(n.children[i+1], e) { - d.setMapIndex(n.children[i+1], out, k, e) - } - } - } - d.mapType = mapType - return true -} - -func (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) { - if d.strict && out.MapIndex(k) != zeroValue { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: key %#v already set in map", n.line+1, k.Interface())) - return - } - out.SetMapIndex(k, v) -} - -func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) { - outt := out.Type() - if outt.Elem() != mapItemType { - d.terror(n, yaml_MAP_TAG, out) - return false - } - - mapType := d.mapType - d.mapType = outt - - var slice []MapItem - var l = len(n.children) - for i := 0; i < l; i += 2 { - if isMerge(n.children[i]) { - d.merge(n.children[i+1], out) - continue - } - item := MapItem{} - k := reflect.ValueOf(&item.Key).Elem() - if d.unmarshal(n.children[i], k) { - v := reflect.ValueOf(&item.Value).Elem() - if d.unmarshal(n.children[i+1], v) { - slice = append(slice, item) - } - } - } - out.Set(reflect.ValueOf(slice)) - d.mapType = mapType - return true -} - -func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - name := settableValueOf("") - l := len(n.children) - - var inlineMap reflect.Value - var elemType reflect.Type - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - inlineMap.Set(reflect.New(inlineMap.Type()).Elem()) - elemType = inlineMap.Type().Elem() - } - - var doneFields []bool - if d.strict { - doneFields = make([]bool, len(sinfo.FieldsList)) - } - for i := 0; i < l; i += 2 { - ni := n.children[i] - if isMerge(ni) { - d.merge(n.children[i+1], out) - continue - } - if !d.unmarshal(ni, name) { - continue - } - if info, ok := sinfo.FieldsMap[name.String()]; ok { - if d.strict { - if doneFields[info.Id] { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.line+1, name.String(), out.Type())) - continue - } - doneFields[info.Id] = true - } - var field reflect.Value - if info.Inline == nil { - field = out.Field(info.Num) - } else { - field = out.FieldByIndex(info.Inline) - } - d.unmarshal(n.children[i+1], field) - } else if sinfo.InlineMap != -1 { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - value := reflect.New(elemType).Elem() - d.unmarshal(n.children[i+1], value) - d.setMapIndex(n.children[i+1], inlineMap, name, value) - } else if d.strict { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.line+1, name.String(), out.Type())) - } - } - return true -} - -func failWantMap() { - failf("map merge requires map or sequence of maps as the value") -} - -func (d *decoder) merge(n *node, out reflect.Value) { - switch n.kind { - case mappingNode: - d.unmarshal(n, out) - case aliasNode: - if n.alias != nil && n.alias.kind != mappingNode { - failWantMap() - } - d.unmarshal(n, out) - case sequenceNode: - // Step backwards as earlier nodes take precedence. - for i := len(n.children) - 1; i >= 0; i-- { - ni := n.children[i] - if ni.kind == aliasNode { - if ni.alias != nil && ni.alias.kind != mappingNode { - failWantMap() - } - } else if ni.kind != mappingNode { - failWantMap() - } - d.unmarshal(ni, out) - } - default: - failWantMap() - } -} - -func isMerge(n *node) bool { - return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG) -} diff --git a/backend/vendor/gopkg.in/yaml.v2/emitterc.go b/backend/vendor/gopkg.in/yaml.v2/emitterc.go deleted file mode 100644 index 638a268c..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/emitterc.go +++ /dev/null @@ -1,1684 +0,0 @@ -package yaml - -import ( - "bytes" - "fmt" -) - -// Flush the buffer if needed. -func flush(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) { - return yaml_emitter_flush(emitter) - } - return true -} - -// Put a character to the output buffer. -func put(emitter *yaml_emitter_t, value byte) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - emitter.buffer[emitter.buffer_pos] = value - emitter.buffer_pos++ - emitter.column++ - return true -} - -// Put a line break to the output buffer. -func put_break(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - switch emitter.line_break { - case yaml_CR_BREAK: - emitter.buffer[emitter.buffer_pos] = '\r' - emitter.buffer_pos += 1 - case yaml_LN_BREAK: - emitter.buffer[emitter.buffer_pos] = '\n' - emitter.buffer_pos += 1 - case yaml_CRLN_BREAK: - emitter.buffer[emitter.buffer_pos+0] = '\r' - emitter.buffer[emitter.buffer_pos+1] = '\n' - emitter.buffer_pos += 2 - default: - panic("unknown line break setting") - } - emitter.column = 0 - emitter.line++ - return true -} - -// Copy a character from a string into buffer. -func write(emitter *yaml_emitter_t, s []byte, i *int) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - p := emitter.buffer_pos - w := width(s[*i]) - switch w { - case 4: - emitter.buffer[p+3] = s[*i+3] - fallthrough - case 3: - emitter.buffer[p+2] = s[*i+2] - fallthrough - case 2: - emitter.buffer[p+1] = s[*i+1] - fallthrough - case 1: - emitter.buffer[p+0] = s[*i+0] - default: - panic("unknown character width") - } - emitter.column++ - emitter.buffer_pos += w - *i += w - return true -} - -// Write a whole string into buffer. -func write_all(emitter *yaml_emitter_t, s []byte) bool { - for i := 0; i < len(s); { - if !write(emitter, s, &i) { - return false - } - } - return true -} - -// Copy a line break character from a string into buffer. -func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { - if s[*i] == '\n' { - if !put_break(emitter) { - return false - } - *i++ - } else { - if !write(emitter, s, i) { - return false - } - emitter.column = 0 - emitter.line++ - } - return true -} - -// Set an emitter error and return false. -func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_EMITTER_ERROR - emitter.problem = problem - return false -} - -// Emit an event. -func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.events = append(emitter.events, *event) - for !yaml_emitter_need_more_events(emitter) { - event := &emitter.events[emitter.events_head] - if !yaml_emitter_analyze_event(emitter, event) { - return false - } - if !yaml_emitter_state_machine(emitter, event) { - return false - } - yaml_event_delete(event) - emitter.events_head++ - } - return true -} - -// Check if we need to accumulate more events before emitting. -// -// We accumulate extra -// - 1 event for DOCUMENT-START -// - 2 events for SEQUENCE-START -// - 3 events for MAPPING-START -func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { - if emitter.events_head == len(emitter.events) { - return true - } - var accumulate int - switch emitter.events[emitter.events_head].typ { - case yaml_DOCUMENT_START_EVENT: - accumulate = 1 - break - case yaml_SEQUENCE_START_EVENT: - accumulate = 2 - break - case yaml_MAPPING_START_EVENT: - accumulate = 3 - break - default: - return false - } - if len(emitter.events)-emitter.events_head > accumulate { - return false - } - var level int - for i := emitter.events_head; i < len(emitter.events); i++ { - switch emitter.events[i].typ { - case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: - level++ - case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: - level-- - } - if level == 0 { - return false - } - } - return true -} - -// Append a directive to the directives stack. -func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { - for i := 0; i < len(emitter.tag_directives); i++ { - if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") - } - } - - // [Go] Do we actually need to copy this given garbage collection - // and the lack of deallocating destructors? - tag_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(tag_copy.handle, value.handle) - copy(tag_copy.prefix, value.prefix) - emitter.tag_directives = append(emitter.tag_directives, tag_copy) - return true -} - -// Increase the indentation level. -func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { - emitter.indents = append(emitter.indents, emitter.indent) - if emitter.indent < 0 { - if flow { - emitter.indent = emitter.best_indent - } else { - emitter.indent = 0 - } - } else if !indentless { - emitter.indent += emitter.best_indent - } - return true -} - -// State dispatcher. -func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { - switch emitter.state { - default: - case yaml_EMIT_STREAM_START_STATE: - return yaml_emitter_emit_stream_start(emitter, event) - - case yaml_EMIT_FIRST_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, true) - - case yaml_EMIT_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, false) - - case yaml_EMIT_DOCUMENT_CONTENT_STATE: - return yaml_emitter_emit_document_content(emitter, event) - - case yaml_EMIT_DOCUMENT_END_STATE: - return yaml_emitter_emit_document_end(emitter, event) - - case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, true) - - case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false) - - case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false) - - case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, false) - - case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, true) - - case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, false) - - case yaml_EMIT_END_STATE: - return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") - } - panic("invalid emitter state") -} - -// Expect STREAM-START. -func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_STREAM_START_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") - } - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = event.encoding - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = yaml_UTF8_ENCODING - } - } - if emitter.best_indent < 2 || emitter.best_indent > 9 { - emitter.best_indent = 2 - } - if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { - emitter.best_width = 80 - } - if emitter.best_width < 0 { - emitter.best_width = 1<<31 - 1 - } - if emitter.line_break == yaml_ANY_BREAK { - emitter.line_break = yaml_LN_BREAK - } - - emitter.indent = -1 - emitter.line = 0 - emitter.column = 0 - emitter.whitespace = true - emitter.indention = true - - if emitter.encoding != yaml_UTF8_ENCODING { - if !yaml_emitter_write_bom(emitter) { - return false - } - } - emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE - return true -} - -// Expect DOCUMENT-START or STREAM-END. -func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - - if event.typ == yaml_DOCUMENT_START_EVENT { - - if event.version_directive != nil { - if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { - return false - } - } - - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { - return false - } - if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { - return false - } - } - - for i := 0; i < len(default_tag_directives); i++ { - tag_directive := &default_tag_directives[i] - if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { - return false - } - } - - implicit := event.implicit - if !first || emitter.canonical { - implicit = false - } - - if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if event.version_directive != nil { - implicit = false - if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if len(event.tag_directives) > 0 { - implicit = false - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { - return false - } - if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if yaml_emitter_check_empty_document(emitter) { - implicit = false - } - if !implicit { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { - return false - } - if emitter.canonical { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE - return true - } - - if event.typ == yaml_STREAM_END_EVENT { - if emitter.open_ended { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_END_STATE - return true - } - - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") -} - -// Expect the root node. -func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) - return yaml_emitter_emit_node(emitter, event, true, false, false, false) -} - -// Expect DOCUMENT-END. -func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_DOCUMENT_END_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !event.implicit { - // [Go] Allocate the slice elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_DOCUMENT_START_STATE - emitter.tag_directives = emitter.tag_directives[:0] - return true -} - -// Expect a flow item node. -func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - - return true - } - - if !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) - return yaml_emitter_emit_node(emitter, event, false, true, false, false) -} - -// Expect a flow key node. -func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_MAPPING_END_EVENT { - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - - if !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a flow value node. -func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { - return false - } - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block item node. -func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) { - return false - } - } - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) - return yaml_emitter_emit_node(emitter, event, false, true, false, false) -} - -// Expect a block key node. -func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if event.typ == yaml_MAPPING_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block value node. -func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { - return false - } - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a node. -func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, - root bool, sequence bool, mapping bool, simple_key bool) bool { - - emitter.root_context = root - emitter.sequence_context = sequence - emitter.mapping_context = mapping - emitter.simple_key_context = simple_key - - switch event.typ { - case yaml_ALIAS_EVENT: - return yaml_emitter_emit_alias(emitter, event) - case yaml_SCALAR_EVENT: - return yaml_emitter_emit_scalar(emitter, event) - case yaml_SEQUENCE_START_EVENT: - return yaml_emitter_emit_sequence_start(emitter, event) - case yaml_MAPPING_START_EVENT: - return yaml_emitter_emit_mapping_start(emitter, event) - default: - return yaml_emitter_set_emitter_error(emitter, - fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ)) - } -} - -// Expect ALIAS. -func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SCALAR. -func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_select_scalar_style(emitter, event) { - return false - } - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - if !yaml_emitter_process_scalar(emitter) { - return false - } - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SEQUENCE-START. -func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || - yaml_emitter_check_empty_sequence(emitter) { - emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE - } - return true -} - -// Expect MAPPING-START. -func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || - yaml_emitter_check_empty_mapping(emitter) { - emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE - } - return true -} - -// Check if the document content is an empty scalar. -func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { - return false // [Go] Huh? -} - -// Check if the next events represent an empty sequence. -func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT -} - -// Check if the next events represent an empty mapping. -func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT -} - -// Check if the next node can be expressed as a simple key. -func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { - length := 0 - switch emitter.events[emitter.events_head].typ { - case yaml_ALIAS_EVENT: - length += len(emitter.anchor_data.anchor) - case yaml_SCALAR_EVENT: - if emitter.scalar_data.multiline { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) + - len(emitter.scalar_data.value) - case yaml_SEQUENCE_START_EVENT: - if !yaml_emitter_check_empty_sequence(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - case yaml_MAPPING_START_EVENT: - if !yaml_emitter_check_empty_mapping(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - default: - return false - } - return length <= 128 -} - -// Determine an acceptable scalar style. -func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 - if no_tag && !event.implicit && !event.quoted_implicit { - return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") - } - - style := event.scalar_style() - if style == yaml_ANY_SCALAR_STYLE { - style = yaml_PLAIN_SCALAR_STYLE - } - if emitter.canonical { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - if emitter.simple_key_context && emitter.scalar_data.multiline { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - if style == yaml_PLAIN_SCALAR_STYLE { - if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || - emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if no_tag && !event.implicit { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { - if !emitter.scalar_data.single_quoted_allowed { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { - if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - - if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { - emitter.tag_data.handle = []byte{'!'} - } - emitter.scalar_data.style = style - return true -} - -// Write an anchor. -func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { - if emitter.anchor_data.anchor == nil { - return true - } - c := []byte{'&'} - if emitter.anchor_data.alias { - c[0] = '*' - } - if !yaml_emitter_write_indicator(emitter, c, true, false, false) { - return false - } - return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) -} - -// Write a tag. -func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { - if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { - return true - } - if len(emitter.tag_data.handle) > 0 { - if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { - return false - } - if len(emitter.tag_data.suffix) > 0 { - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - } - } else { - // [Go] Allocate these slices elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { - return false - } - } - return true -} - -// Write a scalar. -func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { - switch emitter.scalar_data.style { - case yaml_PLAIN_SCALAR_STYLE: - return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_SINGLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_DOUBLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_LITERAL_SCALAR_STYLE: - return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) - - case yaml_FOLDED_SCALAR_STYLE: - return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) - } - panic("unknown scalar style") -} - -// Check if a %YAML directive is valid. -func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { - if version_directive.major != 1 || version_directive.minor != 1 { - return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") - } - return true -} - -// Check if a %TAG directive is valid. -func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { - handle := tag_directive.handle - prefix := tag_directive.prefix - if len(handle) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") - } - if handle[0] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") - } - if handle[len(handle)-1] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") - } - for i := 1; i < len(handle)-1; i += width(handle[i]) { - if !is_alpha(handle, i) { - return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") - } - } - if len(prefix) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") - } - return true -} - -// Check if an anchor is valid. -func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { - if len(anchor) == 0 { - problem := "anchor value must not be empty" - if alias { - problem = "alias value must not be empty" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - for i := 0; i < len(anchor); i += width(anchor[i]) { - if !is_alpha(anchor, i) { - problem := "anchor value must contain alphanumerical characters only" - if alias { - problem = "alias value must contain alphanumerical characters only" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - } - emitter.anchor_data.anchor = anchor - emitter.anchor_data.alias = alias - return true -} - -// Check if a tag is valid. -func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { - if len(tag) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") - } - for i := 0; i < len(emitter.tag_directives); i++ { - tag_directive := &emitter.tag_directives[i] - if bytes.HasPrefix(tag, tag_directive.prefix) { - emitter.tag_data.handle = tag_directive.handle - emitter.tag_data.suffix = tag[len(tag_directive.prefix):] - return true - } - } - emitter.tag_data.suffix = tag - return true -} - -// Check if a scalar is valid. -func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { - var ( - block_indicators = false - flow_indicators = false - line_breaks = false - special_characters = false - - leading_space = false - leading_break = false - trailing_space = false - trailing_break = false - break_space = false - space_break = false - - preceded_by_whitespace = false - followed_by_whitespace = false - previous_space = false - previous_break = false - ) - - emitter.scalar_data.value = value - - if len(value) == 0 { - emitter.scalar_data.multiline = false - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = false - return true - } - - if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { - block_indicators = true - flow_indicators = true - } - - preceded_by_whitespace = true - for i, w := 0, 0; i < len(value); i += w { - w = width(value[i]) - followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) - - if i == 0 { - switch value[i] { - case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': - flow_indicators = true - block_indicators = true - case '?', ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '-': - if followed_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } else { - switch value[i] { - case ',', '?', '[', ']', '{', '}': - flow_indicators = true - case ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '#': - if preceded_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } - - if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { - special_characters = true - } - if is_space(value, i) { - if i == 0 { - leading_space = true - } - if i+width(value[i]) == len(value) { - trailing_space = true - } - if previous_break { - break_space = true - } - previous_space = true - previous_break = false - } else if is_break(value, i) { - line_breaks = true - if i == 0 { - leading_break = true - } - if i+width(value[i]) == len(value) { - trailing_break = true - } - if previous_space { - space_break = true - } - previous_space = false - previous_break = true - } else { - previous_space = false - previous_break = false - } - - // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. - preceded_by_whitespace = is_blankz(value, i) - } - - emitter.scalar_data.multiline = line_breaks - emitter.scalar_data.flow_plain_allowed = true - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = true - - if leading_space || leading_break || trailing_space || trailing_break { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if trailing_space { - emitter.scalar_data.block_allowed = false - } - if break_space { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || special_characters { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - emitter.scalar_data.block_allowed = false - } - if line_breaks { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if flow_indicators { - emitter.scalar_data.flow_plain_allowed = false - } - if block_indicators { - emitter.scalar_data.block_plain_allowed = false - } - return true -} - -// Check if the event data is valid. -func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - emitter.anchor_data.anchor = nil - emitter.tag_data.handle = nil - emitter.tag_data.suffix = nil - emitter.scalar_data.value = nil - - switch event.typ { - case yaml_ALIAS_EVENT: - if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { - return false - } - - case yaml_SCALAR_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - if !yaml_emitter_analyze_scalar(emitter, event.value) { - return false - } - - case yaml_SEQUENCE_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - - case yaml_MAPPING_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - } - return true -} - -// Write the BOM character. -func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { - if !flush(emitter) { - return false - } - pos := emitter.buffer_pos - emitter.buffer[pos+0] = '\xEF' - emitter.buffer[pos+1] = '\xBB' - emitter.buffer[pos+2] = '\xBF' - emitter.buffer_pos += 3 - return true -} - -func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { - indent := emitter.indent - if indent < 0 { - indent = 0 - } - if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { - if !put_break(emitter) { - return false - } - } - for emitter.column < indent { - if !put(emitter, ' ') { - return false - } - } - emitter.whitespace = true - emitter.indention = true - return true -} - -func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, indicator) { - return false - } - emitter.whitespace = is_whitespace - emitter.indention = (emitter.indention && is_indention) - emitter.open_ended = false - return true -} - -func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - for i := 0; i < len(value); { - var must_write bool - switch value[i] { - case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': - must_write = true - default: - must_write = is_alpha(value, i) - } - if must_write { - if !write(emitter, value, &i) { - return false - } - } else { - w := width(value[i]) - for k := 0; k < w; k++ { - octet := value[i] - i++ - if !put(emitter, '%') { - return false - } - - c := octet >> 4 - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - - c = octet & 0x0f - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - } - } - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - - emitter.whitespace = false - emitter.indention = false - if emitter.root_context { - emitter.open_ended = true - } - - return true -} - -func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { - return false - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if value[i] == '\'' { - if !put(emitter, '\'') { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - spaces := false - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { - return false - } - - for i := 0; i < len(value); { - if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || - is_bom(value, i) || is_break(value, i) || - value[i] == '"' || value[i] == '\\' { - - octet := value[i] - - var w int - var v rune - switch { - case octet&0x80 == 0x00: - w, v = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, v = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, v = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, v = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = value[i+k] - v = (v << 6) + (rune(octet) & 0x3F) - } - i += w - - if !put(emitter, '\\') { - return false - } - - var ok bool - switch v { - case 0x00: - ok = put(emitter, '0') - case 0x07: - ok = put(emitter, 'a') - case 0x08: - ok = put(emitter, 'b') - case 0x09: - ok = put(emitter, 't') - case 0x0A: - ok = put(emitter, 'n') - case 0x0b: - ok = put(emitter, 'v') - case 0x0c: - ok = put(emitter, 'f') - case 0x0d: - ok = put(emitter, 'r') - case 0x1b: - ok = put(emitter, 'e') - case 0x22: - ok = put(emitter, '"') - case 0x5c: - ok = put(emitter, '\\') - case 0x85: - ok = put(emitter, 'N') - case 0xA0: - ok = put(emitter, '_') - case 0x2028: - ok = put(emitter, 'L') - case 0x2029: - ok = put(emitter, 'P') - default: - if v <= 0xFF { - ok = put(emitter, 'x') - w = 2 - } else if v <= 0xFFFF { - ok = put(emitter, 'u') - w = 4 - } else { - ok = put(emitter, 'U') - w = 8 - } - for k := (w - 1) * 4; ok && k >= 0; k -= 4 { - digit := byte((v >> uint(k)) & 0x0F) - if digit < 10 { - ok = put(emitter, digit+'0') - } else { - ok = put(emitter, digit+'A'-10) - } - } - } - if !ok { - return false - } - spaces = false - } else if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if is_space(value, i+1) { - if !put(emitter, '\\') { - return false - } - } - i += width(value[i]) - } else if !write(emitter, value, &i) { - return false - } - spaces = true - } else { - if !write(emitter, value, &i) { - return false - } - spaces = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { - if is_space(value, 0) || is_break(value, 0) { - indent_hint := []byte{'0' + byte(emitter.best_indent)} - if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { - return false - } - } - - emitter.open_ended = false - - var chomp_hint [1]byte - if len(value) == 0 { - chomp_hint[0] = '-' - } else { - i := len(value) - 1 - for value[i]&0xC0 == 0x80 { - i-- - } - if !is_break(value, i) { - chomp_hint[0] = '-' - } else if i == 0 { - chomp_hint[0] = '+' - emitter.open_ended = true - } else { - i-- - for value[i]&0xC0 == 0x80 { - i-- - } - if is_break(value, i) { - chomp_hint[0] = '+' - emitter.open_ended = true - } - } - } - if chomp_hint[0] != 0 { - if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { - return false - } - } - return true -} - -func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !put_break(emitter) { - return false - } - emitter.indention = true - emitter.whitespace = true - breaks := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - - return true -} - -func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - - if !put_break(emitter) { - return false - } - emitter.indention = true - emitter.whitespace = true - - breaks := true - leading_spaces := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !breaks && !leading_spaces && value[i] == '\n' { - k := 0 - for is_break(value, k) { - k += width(value[k]) - } - if !is_blankz(value, k) { - if !put_break(emitter) { - return false - } - } - } - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - leading_spaces = is_blank(value, i) - } - if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - emitter.indention = false - breaks = false - } - } - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v2/encode.go b/backend/vendor/gopkg.in/yaml.v2/encode.go deleted file mode 100644 index 0ee738e1..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/encode.go +++ /dev/null @@ -1,390 +0,0 @@ -package yaml - -import ( - "encoding" - "fmt" - "io" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -// jsonNumber is the interface of the encoding/json.Number datatype. -// Repeating the interface here avoids a dependency on encoding/json, and also -// supports other libraries like jsoniter, which use a similar datatype with -// the same interface. Detecting this interface is useful when dealing with -// structures containing json.Number, which is a string under the hood. The -// encoder should prefer the use of Int64(), Float64() and string(), in that -// order, when encoding this type. -type jsonNumber interface { - Float64() (float64, error) - Int64() (int64, error) - String() string -} - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool - // doneInit holds whether the initial stream_start_event has been - // emitted. - doneInit bool -} - -func newEncoder() *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func newEncoderWithWriter(w io.Writer) *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_writer(&e.emitter, w) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func (e *encoder) init() { - if e.doneInit { - return - } - yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) - e.emit() - e.doneInit = true -} - -func (e *encoder) finish() { - e.emitter.open_ended = false - yaml_stream_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) destroy() { - yaml_emitter_delete(&e.emitter) -} - -func (e *encoder) emit() { - // This will internally delete the e.event value. - e.must(yaml_emitter_emit(&e.emitter, &e.event)) -} - -func (e *encoder) must(ok bool) { - if !ok { - msg := e.emitter.problem - if msg == "" { - msg = "unknown problem generating YAML content" - } - failf("%s", msg) - } -} - -func (e *encoder) marshalDoc(tag string, in reflect.Value) { - e.init() - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.emit() - e.marshal(tag, in) - yaml_document_end_event_initialize(&e.event, true) - e.emit() -} - -func (e *encoder) marshal(tag string, in reflect.Value) { - if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { - e.nilv() - return - } - iface := in.Interface() - switch m := iface.(type) { - case jsonNumber: - integer, err := m.Int64() - if err == nil { - // In this case the json.Number is a valid int64 - in = reflect.ValueOf(integer) - break - } - float, err := m.Float64() - if err == nil { - // In this case the json.Number is a valid float64 - in = reflect.ValueOf(float) - break - } - // fallback case - no number could be obtained - in = reflect.ValueOf(m.String()) - case time.Time, *time.Time: - // Although time.Time implements TextMarshaler, - // we don't want to treat it as a string for YAML - // purposes because YAML has special support for - // timestamps. - case Marshaler: - v, err := m.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - in = reflect.ValueOf(v) - case encoding.TextMarshaler: - text, err := m.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - case nil: - e.nilv() - return - } - switch in.Kind() { - case reflect.Interface: - e.marshal(tag, in.Elem()) - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - if in.Type() == ptrTimeType { - e.timev(tag, in.Elem()) - } else { - e.marshal(tag, in.Elem()) - } - case reflect.Struct: - if in.Type() == timeType { - e.timev(tag, in) - } else { - e.structv(tag, in) - } - case reflect.Slice, reflect.Array: - if in.Type().Elem() == mapItemType { - e.itemsv(tag, in) - } else { - e.slicev(tag, in) - } - case reflect.String: - e.stringv(tag, in) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if in.Type() == durationType { - e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String())) - } else { - e.intv(tag, in) - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - e.uintv(tag, in) - case reflect.Float32, reflect.Float64: - e.floatv(tag, in) - case reflect.Bool: - e.boolv(tag, in) - default: - panic("cannot marshal type: " + in.Type().String()) - } -} - -func (e *encoder) mapv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - keys := keyList(in.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - e.marshal("", k) - e.marshal("", in.MapIndex(k)) - } - }) -} - -func (e *encoder) itemsv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem) - for _, item := range slice { - e.marshal("", reflect.ValueOf(item.Key)) - e.marshal("", reflect.ValueOf(item.Value)) - } - }) -} - -func (e *encoder) structv(tag string, in reflect.Value) { - sinfo, err := getStructInfo(in.Type()) - if err != nil { - panic(err) - } - e.mappingv(tag, func() { - for _, info := range sinfo.FieldsList { - var value reflect.Value - if info.Inline == nil { - value = in.Field(info.Num) - } else { - value = in.FieldByIndex(info.Inline) - } - if info.OmitEmpty && isZero(value) { - continue - } - e.marshal("", reflect.ValueOf(info.Key)) - e.flow = info.Flow - e.marshal("", value) - } - if sinfo.InlineMap >= 0 { - m := in.Field(sinfo.InlineMap) - if m.Len() > 0 { - e.flow = false - keys := keyList(m.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - if _, found := sinfo.FieldsMap[k.String()]; found { - panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String())) - } - e.marshal("", k) - e.flow = false - e.marshal("", m.MapIndex(k)) - } - } - } - }) -} - -func (e *encoder) mappingv(tag string, f func()) { - implicit := tag == "" - style := yaml_BLOCK_MAPPING_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) - e.emit() - f() - yaml_mapping_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) slicev(tag string, in reflect.Value) { - implicit := tag == "" - style := yaml_BLOCK_SEQUENCE_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - n := in.Len() - for i := 0; i < n; i++ { - e.marshal("", in.Index(i)) - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.emit() -} - -// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. -// -// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported -// in YAML 1.2 and by this package, but these should be marshalled quoted for -// the time being for compatibility with other parsers. -func isBase60Float(s string) (result bool) { - // Fast path. - if s == "" { - return false - } - c := s[0] - if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { - return false - } - // Do the full match. - return base60float.MatchString(s) -} - -// From http://yaml.org/type/float.html, except the regular expression there -// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. -var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) - -func (e *encoder) stringv(tag string, in reflect.Value) { - var style yaml_scalar_style_t - s := in.String() - canUsePlain := true - switch { - case !utf8.ValidString(s): - if tag == yaml_BINARY_TAG { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if tag != "" { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = yaml_BINARY_TAG - s = encodeBase64(s) - case tag == "": - // Check to see if it would resolve to a specific - // tag when encoded unquoted. If it doesn't, - // there's no need to quote it. - rtag, _ := resolve("", s) - canUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s) - } - // Note: it's possible for user code to emit invalid YAML - // if they explicitly specify a tag and a string containing - // text that's incompatible with that tag. - switch { - case strings.Contains(s, "\n"): - style = yaml_LITERAL_SCALAR_STYLE - case canUsePlain: - style = yaml_PLAIN_SCALAR_STYLE - default: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - e.emitScalar(s, "", tag, style) -} - -func (e *encoder) boolv(tag string, in reflect.Value) { - var s string - if in.Bool() { - s = "true" - } else { - s = "false" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) intv(tag string, in reflect.Value) { - s := strconv.FormatInt(in.Int(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) uintv(tag string, in reflect.Value) { - s := strconv.FormatUint(in.Uint(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) timev(tag string, in reflect.Value) { - t := in.Interface().(time.Time) - s := t.Format(time.RFC3339Nano) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) floatv(tag string, in reflect.Value) { - // Issue #352: When formatting, use the precision of the underlying value - precision := 64 - if in.Kind() == reflect.Float32 { - precision = 32 - } - - s := strconv.FormatFloat(in.Float(), 'g', -1, precision) - switch s { - case "+Inf": - s = ".inf" - case "-Inf": - s = "-.inf" - case "NaN": - s = ".nan" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) nilv() { - e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) { - implicit := tag == "" - e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) - e.emit() -} diff --git a/backend/vendor/gopkg.in/yaml.v2/parserc.go b/backend/vendor/gopkg.in/yaml.v2/parserc.go deleted file mode 100644 index 2883e5c5..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/parserc.go +++ /dev/null @@ -1,1111 +0,0 @@ -package yaml - -import ( - "bytes" -) - -// The parser implements the following grammar: -// -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// implicit_document ::= block_node DOCUMENT-END* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// block_node_or_indentless_sequence ::= -// ALIAS -// | properties (block_content | indentless_block_sequence)? -// | block_content -// | indentless_block_sequence -// block_node ::= ALIAS -// | properties block_content? -// | block_content -// flow_node ::= ALIAS -// | properties flow_content? -// | flow_content -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// block_content ::= block_collection | flow_collection | SCALAR -// flow_content ::= flow_collection | SCALAR -// block_collection ::= block_sequence | block_mapping -// flow_collection ::= flow_sequence | flow_mapping -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// block_mapping ::= BLOCK-MAPPING_START -// ((KEY block_node_or_indentless_sequence?)? -// (VALUE block_node_or_indentless_sequence?)?)* -// BLOCK-END -// flow_sequence ::= FLOW-SEQUENCE-START -// (flow_sequence_entry FLOW-ENTRY)* -// flow_sequence_entry? -// FLOW-SEQUENCE-END -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// flow_mapping ::= FLOW-MAPPING-START -// (flow_mapping_entry FLOW-ENTRY)* -// flow_mapping_entry? -// FLOW-MAPPING-END -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? - -// Peek the next token in the token queue. -func peek_token(parser *yaml_parser_t) *yaml_token_t { - if parser.token_available || yaml_parser_fetch_more_tokens(parser) { - return &parser.tokens[parser.tokens_head] - } - return nil -} - -// Remove the next token from the queue (must be called after peek_token). -func skip_token(parser *yaml_parser_t) { - parser.token_available = false - parser.tokens_parsed++ - parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN - parser.tokens_head++ -} - -// Get the next event. -func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { - // Erase the event object. - *event = yaml_event_t{} - - // No events after the end of the stream or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { - return true - } - - // Generate the next event. - return yaml_parser_state_machine(parser, event) -} - -// Set parser error. -func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -// State dispatcher. -func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { - //trace("yaml_parser_state_machine", "state:", parser.state.String()) - - switch parser.state { - case yaml_PARSE_STREAM_START_STATE: - return yaml_parser_parse_stream_start(parser, event) - - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, true) - - case yaml_PARSE_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, false) - - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return yaml_parser_parse_document_content(parser, event) - - case yaml_PARSE_DOCUMENT_END_STATE: - return yaml_parser_parse_document_end(parser, event) - - case yaml_PARSE_BLOCK_NODE_STATE: - return yaml_parser_parse_node(parser, event, true, false) - - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return yaml_parser_parse_node(parser, event, true, true) - - case yaml_PARSE_FLOW_NODE_STATE: - return yaml_parser_parse_node(parser, event, false, false) - - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, true) - - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, false) - - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_indentless_sequence_entry(parser, event) - - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, true) - - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, false) - - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return yaml_parser_parse_block_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, true) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, false) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) - - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, true) - - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, true) - - default: - panic("invalid parser state") - } -} - -// Parse the production: -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// -// ************ -func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_STREAM_START_TOKEN { - return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) - } - parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - encoding: token.encoding, - } - skip_token(parser) - return true -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// -// * -// -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -// ************************* -func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { - - token := peek_token(parser) - if token == nil { - return false - } - - // Parse extra document end indicators. - if !implicit { - for token.typ == yaml_DOCUMENT_END_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && - token.typ != yaml_TAG_DIRECTIVE_TOKEN && - token.typ != yaml_DOCUMENT_START_TOKEN && - token.typ != yaml_STREAM_END_TOKEN { - // Parse an implicit document. - if !yaml_parser_process_directives(parser, nil, nil) { - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_BLOCK_NODE_STATE - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - } else if token.typ != yaml_STREAM_END_TOKEN { - // Parse an explicit document. - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - start_mark := token.start_mark - if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { - return false - } - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_DOCUMENT_START_TOKEN { - yaml_parser_set_parser_error(parser, - "did not find expected ", token.start_mark) - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE - end_mark := token.end_mark - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: false, - } - skip_token(parser) - - } else { - // Parse the stream end. - parser.state = yaml_PARSE_END_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - } - - return true -} - -// Parse the productions: -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -// *********** -func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || - token.typ == yaml_TAG_DIRECTIVE_TOKEN || - token.typ == yaml_DOCUMENT_START_TOKEN || - token.typ == yaml_DOCUMENT_END_TOKEN || - token.typ == yaml_STREAM_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - return yaml_parser_process_empty_scalar(parser, event, - token.start_mark) - } - return yaml_parser_parse_node(parser, event, true, false) -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// -// ************* -// -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - start_mark := token.start_mark - end_mark := token.start_mark - - implicit := true - if token.typ == yaml_DOCUMENT_END_TOKEN { - end_mark = token.end_mark - skip_token(parser) - implicit = false - } - - parser.tag_directives = parser.tag_directives[:0] - - parser.state = yaml_PARSE_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - start_mark: start_mark, - end_mark: end_mark, - implicit: implicit, - } - return true -} - -// Parse the productions: -// block_node_or_indentless_sequence ::= -// -// ALIAS -// ***** -// | properties (block_content | indentless_block_sequence)? -// ********** * -// | block_content | indentless_block_sequence -// * -// -// block_node ::= ALIAS -// -// ***** -// | properties block_content? -// ********** * -// | block_content -// * -// -// flow_node ::= ALIAS -// -// ***** -// | properties flow_content? -// ********** * -// | flow_content -// * -// -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// -// ************************* -// -// block_content ::= block_collection | flow_collection | SCALAR -// -// ****** -// -// flow_content ::= flow_collection | SCALAR -// -// ****** -func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { - //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_ALIAS_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - anchor: token.value, - } - skip_token(parser) - return true - } - - start_mark := token.start_mark - end_mark := token.start_mark - - var tag_token bool - var tag_handle, tag_suffix, anchor []byte - var tag_mark yaml_mark_t - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - start_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } else if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - start_mark = token.start_mark - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - var tag []byte - if tag_token { - if len(tag_handle) == 0 { - tag = tag_suffix - tag_suffix = nil - } else { - for i := range parser.tag_directives { - if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { - tag = append([]byte(nil), parser.tag_directives[i].prefix...) - tag = append(tag, tag_suffix...) - break - } - } - if len(tag) == 0 { - yaml_parser_set_parser_error_context(parser, - "while parsing a node", start_mark, - "found undefined tag handle", tag_mark) - return false - } - } - } - - implicit := len(tag) == 0 - if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_SCALAR_TOKEN { - var plain_implicit, quoted_implicit bool - end_mark = token.end_mark - if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { - plain_implicit = true - } else if len(tag) == 0 { - quoted_implicit = true - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - value: token.value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(token.style), - } - skip_token(parser) - return true - } - if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { - // [Go] Some of the events below can be merged as they differ only on style. - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_FLOW_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - return true - } - if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), - } - return true - } - if len(anchor) > 0 || len(tag) > 0 { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - quoted_implicit: false, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true - } - - context := "while parsing a flow node" - if block { - context = "while parsing a block node" - } - yaml_parser_set_parser_error_context(parser, context, start_mark, - "did not find expected node content", token.start_mark) - return false -} - -// Parse the productions: -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// -// ******************** *********** * ********* -func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } else { - parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } - if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block collection", context_mark, - "did not find expected '-' indicator", token.start_mark) -} - -// Parse the productions: -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// -// *********** * -func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && - token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? - } - return true -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ******************* -// ((KEY block_node_or_indentless_sequence?)? -// *** * -// (VALUE block_node_or_indentless_sequence?)?)* -// -// BLOCK-END -// ********* -func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_KEY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } else { - parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } else if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block mapping", context_mark, - "did not find expected key", token.start_mark) -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ((KEY block_node_or_indentless_sequence?)? -// -// (VALUE block_node_or_indentless_sequence?)?)* -// ***** * -// BLOCK-END -func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence ::= FLOW-SEQUENCE-START -// -// ******************* -// (flow_sequence_entry FLOW-ENTRY)* -// * ********** -// flow_sequence_entry? -// * -// FLOW-SEQUENCE-END -// ***************** -// -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// * -func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow sequence", context_mark, - "did not find expected ',' or ']'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - implicit: true, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - skip_token(parser) - return true - } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// *** * -func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - mark := token.end_mark - skip_token(parser) - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// ***** * -func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// * -func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? - } - return true -} - -// Parse the productions: -// flow_mapping ::= FLOW-MAPPING-START -// -// ****************** -// (flow_mapping_entry FLOW-ENTRY)* -// * ********** -// flow_mapping_entry? -// ****************** -// FLOW-MAPPING-END -// **************** -// -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// - *** * -func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow mapping", context_mark, - "did not find expected ',' or '}'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } else { - parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - return true -} - -// Parse the productions: -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// - ***** * -func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { - token := peek_token(parser) - if token == nil { - return false - } - if empty { - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Generate an empty scalar event. -func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: mark, - end_mark: mark, - value: nil, // Empty - implicit: true, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true -} - -var default_tag_directives = []yaml_tag_directive_t{ - {[]byte("!"), []byte("!")}, - {[]byte("!!"), []byte("tag:yaml.org,2002:")}, -} - -// Parse directives. -func yaml_parser_process_directives(parser *yaml_parser_t, - version_directive_ref **yaml_version_directive_t, - tag_directives_ref *[]yaml_tag_directive_t) bool { - - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - - token := peek_token(parser) - if token == nil { - return false - } - - for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { - if version_directive != nil { - yaml_parser_set_parser_error(parser, - "found duplicate %YAML directive", token.start_mark) - return false - } - if token.major != 1 || token.minor != 1 { - yaml_parser_set_parser_error(parser, - "found incompatible YAML document", token.start_mark) - return false - } - version_directive = &yaml_version_directive_t{ - major: token.major, - minor: token.minor, - } - } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { - value := yaml_tag_directive_t{ - handle: token.value, - prefix: token.prefix, - } - if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { - return false - } - tag_directives = append(tag_directives, value) - } - - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - - for i := range default_tag_directives { - if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { - return false - } - } - - if version_directive_ref != nil { - *version_directive_ref = version_directive - } - if tag_directives_ref != nil { - *tag_directives_ref = tag_directives - } - return true -} - -// Append a tag directive to the directives stack. -func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { - for i := range parser.tag_directives { - if bytes.Equal(value.handle, parser.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) - } - } - - // [Go] I suspect the copy is unnecessary. This was likely done - // because there was no way to track ownership of the data. - value_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(value_copy.handle, value.handle) - copy(value_copy.prefix, value.prefix) - parser.tag_directives = append(parser.tag_directives, value_copy) - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v2/readerc.go b/backend/vendor/gopkg.in/yaml.v2/readerc.go deleted file mode 100644 index b0c436c4..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/readerc.go +++ /dev/null @@ -1,412 +0,0 @@ -package yaml - -import ( - "io" -) - -// Set the reader error and return 0. -func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { - parser.error = yaml_READER_ERROR - parser.problem = problem - parser.problem_offset = offset - parser.problem_value = value - return false -} - -// Byte order marks. -const ( - bom_UTF8 = "\xef\xbb\xbf" - bom_UTF16LE = "\xff\xfe" - bom_UTF16BE = "\xfe\xff" -) - -// Determine the input stream encoding by checking the BOM symbol. If no BOM is -// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. -func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { - // Ensure that we had enough bytes in the raw buffer. - for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { - if !yaml_parser_update_raw_buffer(parser) { - return false - } - } - - // Determine the encoding. - buf := parser.raw_buffer - pos := parser.raw_buffer_pos - avail := len(buf) - pos - if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { - parser.encoding = yaml_UTF16LE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { - parser.encoding = yaml_UTF16BE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { - parser.encoding = yaml_UTF8_ENCODING - parser.raw_buffer_pos += 3 - parser.offset += 3 - } else { - parser.encoding = yaml_UTF8_ENCODING - } - return true -} - -// Update the raw buffer. -func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { - size_read := 0 - - // Return if the raw buffer is full. - if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { - return true - } - - // Return on EOF. - if parser.eof { - return true - } - - // Move the remaining bytes in the raw buffer to the beginning. - if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { - copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) - } - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] - parser.raw_buffer_pos = 0 - - // Call the read handler to fill the buffer. - size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] - if err == io.EOF { - parser.eof = true - } else if err != nil { - return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) - } - return true -} - -// Ensure that the buffer contains at least `length` characters. -// Return true on success, false on failure. -// -// The length is supposed to be significantly less that the buffer size. -func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { - if parser.read_handler == nil { - panic("read handler must be set") - } - - // [Go] This function was changed to guarantee the requested length size at EOF. - // The fact we need to do this is pretty awful, but the description above implies - // for that to be the case, and there are tests - - // If the EOF flag is set and the raw buffer is empty, do nothing. - if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { - // [Go] ACTUALLY! Read the documentation of this function above. - // This is just broken. To return true, we need to have the - // given length in the buffer. Not doing that means every single - // check that calls this function to make sure the buffer has a - // given length is Go) panicking; or C) accessing invalid memory. - //return true - } - - // Return if the buffer contains enough characters. - if parser.unread >= length { - return true - } - - // Determine the input encoding if it is not known yet. - if parser.encoding == yaml_ANY_ENCODING { - if !yaml_parser_determine_encoding(parser) { - return false - } - } - - // Move the unread characters to the beginning of the buffer. - buffer_len := len(parser.buffer) - if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { - copy(parser.buffer, parser.buffer[parser.buffer_pos:]) - buffer_len -= parser.buffer_pos - parser.buffer_pos = 0 - } else if parser.buffer_pos == buffer_len { - buffer_len = 0 - parser.buffer_pos = 0 - } - - // Open the whole buffer for writing, and cut it before returning. - parser.buffer = parser.buffer[:cap(parser.buffer)] - - // Fill the buffer until it has enough characters. - first := true - for parser.unread < length { - - // Fill the raw buffer if necessary. - if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { - if !yaml_parser_update_raw_buffer(parser) { - parser.buffer = parser.buffer[:buffer_len] - return false - } - } - first = false - - // Decode the raw buffer. - inner: - for parser.raw_buffer_pos != len(parser.raw_buffer) { - var value rune - var width int - - raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos - - // Decode the next character. - switch parser.encoding { - case yaml_UTF8_ENCODING: - // Decode a UTF-8 character. Check RFC 3629 - // (http://www.ietf.org/rfc/rfc3629.txt) for more details. - // - // The following table (taken from the RFC) is used for - // decoding. - // - // Char. number range | UTF-8 octet sequence - // (hexadecimal) | (binary) - // --------------------+------------------------------------ - // 0000 0000-0000 007F | 0xxxxxxx - // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - // - // Additionally, the characters in the range 0xD800-0xDFFF - // are prohibited as they are reserved for use with UTF-16 - // surrogate pairs. - - // Determine the length of the UTF-8 sequence. - octet := parser.raw_buffer[parser.raw_buffer_pos] - switch { - case octet&0x80 == 0x00: - width = 1 - case octet&0xE0 == 0xC0: - width = 2 - case octet&0xF0 == 0xE0: - width = 3 - case octet&0xF8 == 0xF0: - width = 4 - default: - // The leading octet is invalid. - return yaml_parser_set_reader_error(parser, - "invalid leading UTF-8 octet", - parser.offset, int(octet)) - } - - // Check if the raw buffer contains an incomplete character. - if width > raw_unread { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-8 octet sequence", - parser.offset, -1) - } - break inner - } - - // Decode the leading octet. - switch { - case octet&0x80 == 0x00: - value = rune(octet & 0x7F) - case octet&0xE0 == 0xC0: - value = rune(octet & 0x1F) - case octet&0xF0 == 0xE0: - value = rune(octet & 0x0F) - case octet&0xF8 == 0xF0: - value = rune(octet & 0x07) - default: - value = 0 - } - - // Check and decode the trailing octets. - for k := 1; k < width; k++ { - octet = parser.raw_buffer[parser.raw_buffer_pos+k] - - // Check if the octet is valid. - if (octet & 0xC0) != 0x80 { - return yaml_parser_set_reader_error(parser, - "invalid trailing UTF-8 octet", - parser.offset+k, int(octet)) - } - - // Decode the octet. - value = (value << 6) + rune(octet&0x3F) - } - - // Check the length of the sequence against the value. - switch { - case width == 1: - case width == 2 && value >= 0x80: - case width == 3 && value >= 0x800: - case width == 4 && value >= 0x10000: - default: - return yaml_parser_set_reader_error(parser, - "invalid length of a UTF-8 sequence", - parser.offset, -1) - } - - // Check the range of the value. - if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { - return yaml_parser_set_reader_error(parser, - "invalid Unicode character", - parser.offset, int(value)) - } - - case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: - var low, high int - if parser.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - low, high = 1, 0 - } - - // The UTF-16 encoding is not as simple as one might - // naively think. Check RFC 2781 - // (http://www.ietf.org/rfc/rfc2781.txt). - // - // Normally, two subsequent bytes describe a Unicode - // character. However a special technique (called a - // surrogate pair) is used for specifying character - // values larger than 0xFFFF. - // - // A surrogate pair consists of two pseudo-characters: - // high surrogate area (0xD800-0xDBFF) - // low surrogate area (0xDC00-0xDFFF) - // - // The following formulas are used for decoding - // and encoding characters using surrogate pairs: - // - // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) - // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) - // W1 = 110110yyyyyyyyyy - // W2 = 110111xxxxxxxxxx - // - // where U is the character value, W1 is the high surrogate - // area, W2 is the low surrogate area. - - // Check for incomplete UTF-16 character. - if raw_unread < 2 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 character", - parser.offset, -1) - } - break inner - } - - // Get the character. - value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) - - // Check for unexpected low surrogate area. - if value&0xFC00 == 0xDC00 { - return yaml_parser_set_reader_error(parser, - "unexpected low surrogate area", - parser.offset, int(value)) - } - - // Check for a high surrogate area. - if value&0xFC00 == 0xD800 { - width = 4 - - // Check for incomplete surrogate pair. - if raw_unread < 4 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 surrogate pair", - parser.offset, -1) - } - break inner - } - - // Get the next character. - value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) - - // Check for a low surrogate area. - if value2&0xFC00 != 0xDC00 { - return yaml_parser_set_reader_error(parser, - "expected low surrogate area", - parser.offset+2, int(value2)) - } - - // Generate the value of the surrogate pair. - value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) - } else { - width = 2 - } - - default: - panic("impossible") - } - - // Check if the character is in the allowed range: - // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) - // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) - // | [#x10000-#x10FFFF] (32 bit) - switch { - case value == 0x09: - case value == 0x0A: - case value == 0x0D: - case value >= 0x20 && value <= 0x7E: - case value == 0x85: - case value >= 0xA0 && value <= 0xD7FF: - case value >= 0xE000 && value <= 0xFFFD: - case value >= 0x10000 && value <= 0x10FFFF: - default: - return yaml_parser_set_reader_error(parser, - "control characters are not allowed", - parser.offset, int(value)) - } - - // Move the raw pointers. - parser.raw_buffer_pos += width - parser.offset += width - - // Finally put the character into the buffer. - if value <= 0x7F { - // 0000 0000-0000 007F . 0xxxxxxx - parser.buffer[buffer_len+0] = byte(value) - buffer_len += 1 - } else if value <= 0x7FF { - // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) - parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) - buffer_len += 2 - } else if value <= 0xFFFF { - // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) - buffer_len += 3 - } else { - // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) - buffer_len += 4 - } - - parser.unread++ - } - - // On EOF, put NUL into the buffer and return. - if parser.eof { - parser.buffer[buffer_len] = 0 - buffer_len++ - parser.unread++ - break - } - } - // [Go] Read the documentation of this function above. To return true, - // we need to have the given length in the buffer. Not doing that means - // every single check that calls this function to make sure the buffer - // has a given length is Go) panicking; or C) accessing invalid memory. - // This happens here due to the EOF above breaking early. - for buffer_len < length { - parser.buffer[buffer_len] = 0 - buffer_len++ - } - parser.buffer = parser.buffer[:buffer_len] - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v2/resolve.go b/backend/vendor/gopkg.in/yaml.v2/resolve.go deleted file mode 100644 index e29c364b..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/resolve.go +++ /dev/null @@ -1,258 +0,0 @@ -package yaml - -import ( - "encoding/base64" - "math" - "regexp" - "strconv" - "strings" - "time" -) - -type resolveMapItem struct { - value interface{} - tag string -} - -var resolveTable = make([]byte, 256) -var resolveMap = make(map[string]resolveMapItem) - -func init() { - t := resolveTable - t[int('+')] = 'S' // Sign - t[int('-')] = 'S' - for _, c := range "0123456789" { - t[int(c)] = 'D' // Digit - } - for _, c := range "yYnNtTfFoO~" { - t[int(c)] = 'M' // In map - } - t[int('.')] = '.' // Float (potentially in map) - - var resolveMapList = []struct { - v interface{} - tag string - l []string - }{ - {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}}, - {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}}, - {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}}, - {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}}, - {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}}, - {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}}, - {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}}, - {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}}, - {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}}, - {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}}, - {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}}, - {"<<", yaml_MERGE_TAG, []string{"<<"}}, - } - - m := resolveMap - for _, item := range resolveMapList { - for _, s := range item.l { - m[s] = resolveMapItem{item.v, item.tag} - } - } -} - -const longTagPrefix = "tag:yaml.org,2002:" - -func shortTag(tag string) string { - // TODO This can easily be made faster and produce less garbage. - if strings.HasPrefix(tag, longTagPrefix) { - return "!!" + tag[len(longTagPrefix):] - } - return tag -} - -func longTag(tag string) string { - if strings.HasPrefix(tag, "!!") { - return longTagPrefix + tag[2:] - } - return tag -} - -func resolvableTag(tag string) bool { - switch tag { - case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG: - return true - } - return false -} - -var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`) - -func resolve(tag string, in string) (rtag string, out interface{}) { - if !resolvableTag(tag) { - return tag, in - } - - defer func() { - switch tag { - case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG: - return - case yaml_FLOAT_TAG: - if rtag == yaml_INT_TAG { - switch v := out.(type) { - case int64: - rtag = yaml_FLOAT_TAG - out = float64(v) - return - case int: - rtag = yaml_FLOAT_TAG - out = float64(v) - return - } - } - } - failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) - }() - - // Any data is accepted as a !!str or !!binary. - // Otherwise, the prefix is enough of a hint about what it might be. - hint := byte('N') - if in != "" { - hint = resolveTable[in[0]] - } - if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG { - // Handle things we can lookup in a map. - if item, ok := resolveMap[in]; ok { - return item.tag, item.value - } - - // Base 60 floats are a bad idea, were dropped in YAML 1.2, and - // are purposefully unsupported here. They're still quoted on - // the way out for compatibility with other parser, though. - - switch hint { - case 'M': - // We've already checked the map above. - - case '.': - // Not in the map, so maybe a normal float. - floatv, err := strconv.ParseFloat(in, 64) - if err == nil { - return yaml_FLOAT_TAG, floatv - } - - case 'D', 'S': - // Int, float, or timestamp. - // Only try values as a timestamp if the value is unquoted or there's an explicit - // !!timestamp tag. - if tag == "" || tag == yaml_TIMESTAMP_TAG { - t, ok := parseTimestamp(in) - if ok { - return yaml_TIMESTAMP_TAG, t - } - } - - plain := strings.Replace(in, "_", "", -1) - intv, err := strconv.ParseInt(plain, 0, 64) - if err == nil { - if intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) - } else { - return yaml_INT_TAG, intv - } - } - uintv, err := strconv.ParseUint(plain, 0, 64) - if err == nil { - return yaml_INT_TAG, uintv - } - if yamlStyleFloat.MatchString(plain) { - floatv, err := strconv.ParseFloat(plain, 64) - if err == nil { - return yaml_FLOAT_TAG, floatv - } - } - if strings.HasPrefix(plain, "0b") { - intv, err := strconv.ParseInt(plain[2:], 2, 64) - if err == nil { - if intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) - } else { - return yaml_INT_TAG, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 2, 64) - if err == nil { - return yaml_INT_TAG, uintv - } - } else if strings.HasPrefix(plain, "-0b") { - intv, err := strconv.ParseInt("-"+plain[3:], 2, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) - } else { - return yaml_INT_TAG, intv - } - } - } - default: - panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") - } - } - return yaml_STR_TAG, in -} - -// encodeBase64 encodes s as base64 that is broken up into multiple lines -// as appropriate for the resulting length. -func encodeBase64(s string) string { - const lineLen = 70 - encLen := base64.StdEncoding.EncodedLen(len(s)) - lines := encLen/lineLen + 1 - buf := make([]byte, encLen*2+lines) - in := buf[0:encLen] - out := buf[encLen:] - base64.StdEncoding.Encode(in, []byte(s)) - k := 0 - for i := 0; i < len(in); i += lineLen { - j := i + lineLen - if j > len(in) { - j = len(in) - } - k += copy(out[k:], in[i:j]) - if lines > 1 { - out[k] = '\n' - k++ - } - } - return string(out[:k]) -} - -// This is a subset of the formats allowed by the regular expression -// defined at http://yaml.org/type/timestamp.html. -var allowedTimestampFormats = []string{ - "2006-1-2T15:4:5.999999999Z07:00", // RCF3339Nano with short date fields. - "2006-1-2t15:4:5.999999999Z07:00", // RFC3339Nano with short date fields and lower-case "t". - "2006-1-2 15:4:5.999999999", // space separated with no time zone - "2006-1-2", // date only - // Notable exception: time.Parse cannot handle: "2001-12-14 21:59:43.10 -5" - // from the set of examples. -} - -// parseTimestamp parses s as a timestamp string and -// returns the timestamp and reports whether it succeeded. -// Timestamp formats are defined at http://yaml.org/type/timestamp.html -func parseTimestamp(s string) (time.Time, bool) { - // TODO write code to check all the formats supported by - // http://yaml.org/type/timestamp.html instead of using time.Parse. - - // Quick check: all date formats start with YYYY-. - i := 0 - for ; i < len(s); i++ { - if c := s[i]; c < '0' || c > '9' { - break - } - } - if i != 4 || i == len(s) || s[i] != '-' { - return time.Time{}, false - } - for _, format := range allowedTimestampFormats { - if t, err := time.Parse(format, s); err == nil { - return t, true - } - } - return time.Time{}, false -} diff --git a/backend/vendor/gopkg.in/yaml.v2/scannerc.go b/backend/vendor/gopkg.in/yaml.v2/scannerc.go deleted file mode 100644 index d634dca4..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/scannerc.go +++ /dev/null @@ -1,2713 +0,0 @@ -package yaml - -import ( - "bytes" - "fmt" -) - -// Introduction -// ************ -// -// The following notes assume that you are familiar with the YAML specification -// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in -// some cases we are less restrictive that it requires. -// -// The process of transforming a YAML stream into a sequence of events is -// divided on two steps: Scanning and Parsing. -// -// The Scanner transforms the input stream into a sequence of tokens, while the -// parser transform the sequence of tokens produced by the Scanner into a -// sequence of parsing events. -// -// The Scanner is rather clever and complicated. The Parser, on the contrary, -// is a straightforward implementation of a recursive-descendant parser (or, -// LL(1) parser, as it is usually called). -// -// Actually there are two issues of Scanning that might be called "clever", the -// rest is quite straightforward. The issues are "block collection start" and -// "simple keys". Both issues are explained below in details. -// -// Here the Scanning step is explained and implemented. We start with the list -// of all the tokens produced by the Scanner together with short descriptions. -// -// Now, tokens: -// -// STREAM-START(encoding) # The stream start. -// STREAM-END # The stream end. -// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. -// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. -// DOCUMENT-START # '---' -// DOCUMENT-END # '...' -// BLOCK-SEQUENCE-START # Indentation increase denoting a block -// BLOCK-MAPPING-START # sequence or a block mapping. -// BLOCK-END # Indentation decrease. -// FLOW-SEQUENCE-START # '[' -// FLOW-SEQUENCE-END # ']' -// BLOCK-SEQUENCE-START # '{' -// BLOCK-SEQUENCE-END # '}' -// BLOCK-ENTRY # '-' -// FLOW-ENTRY # ',' -// KEY # '?' or nothing (simple keys). -// VALUE # ':' -// ALIAS(anchor) # '*anchor' -// ANCHOR(anchor) # '&anchor' -// TAG(handle,suffix) # '!handle!suffix' -// SCALAR(value,style) # A scalar. -// -// The following two tokens are "virtual" tokens denoting the beginning and the -// end of the stream: -// -// STREAM-START(encoding) -// STREAM-END -// -// We pass the information about the input stream encoding with the -// STREAM-START token. -// -// The next two tokens are responsible for tags: -// -// VERSION-DIRECTIVE(major,minor) -// TAG-DIRECTIVE(handle,prefix) -// -// Example: -// -// %YAML 1.1 -// %TAG ! !foo -// %TAG !yaml! tag:yaml.org,2002: -// --- -// -// The correspoding sequence of tokens: -// -// STREAM-START(utf-8) -// VERSION-DIRECTIVE(1,1) -// TAG-DIRECTIVE("!","!foo") -// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") -// DOCUMENT-START -// STREAM-END -// -// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole -// line. -// -// The document start and end indicators are represented by: -// -// DOCUMENT-START -// DOCUMENT-END -// -// Note that if a YAML stream contains an implicit document (without '---' -// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be -// produced. -// -// In the following examples, we present whole documents together with the -// produced tokens. -// -// 1. An implicit document: -// -// 'a scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// STREAM-END -// -// 2. An explicit document: -// -// --- -// 'a scalar' -// ... -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// SCALAR("a scalar",single-quoted) -// DOCUMENT-END -// STREAM-END -// -// 3. Several documents in a stream: -// -// 'a scalar' -// --- -// 'another scalar' -// --- -// 'yet another scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// DOCUMENT-START -// SCALAR("another scalar",single-quoted) -// DOCUMENT-START -// SCALAR("yet another scalar",single-quoted) -// STREAM-END -// -// We have already introduced the SCALAR token above. The following tokens are -// used to describe aliases, anchors, tag, and scalars: -// -// ALIAS(anchor) -// ANCHOR(anchor) -// TAG(handle,suffix) -// SCALAR(value,style) -// -// The following series of examples illustrate the usage of these tokens: -// -// 1. A recursive sequence: -// -// &A [ *A ] -// -// Tokens: -// -// STREAM-START(utf-8) -// ANCHOR("A") -// FLOW-SEQUENCE-START -// ALIAS("A") -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A tagged scalar: -// -// !!float "3.14" # A good approximation. -// -// Tokens: -// -// STREAM-START(utf-8) -// TAG("!!","float") -// SCALAR("3.14",double-quoted) -// STREAM-END -// -// 3. Various scalar styles: -// -// --- # Implicit empty plain scalars do not produce tokens. -// --- a plain scalar -// --- 'a single-quoted scalar' -// --- "a double-quoted scalar" -// --- |- -// a literal scalar -// --- >- -// a folded -// scalar -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// DOCUMENT-START -// SCALAR("a plain scalar",plain) -// DOCUMENT-START -// SCALAR("a single-quoted scalar",single-quoted) -// DOCUMENT-START -// SCALAR("a double-quoted scalar",double-quoted) -// DOCUMENT-START -// SCALAR("a literal scalar",literal) -// DOCUMENT-START -// SCALAR("a folded scalar",folded) -// STREAM-END -// -// Now it's time to review collection-related tokens. We will start with -// flow collections: -// -// FLOW-SEQUENCE-START -// FLOW-SEQUENCE-END -// FLOW-MAPPING-START -// FLOW-MAPPING-END -// FLOW-ENTRY -// KEY -// VALUE -// -// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and -// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' -// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the -// indicators '?' and ':', which are used for denoting mapping keys and values, -// are represented by the KEY and VALUE tokens. -// -// The following examples show flow collections: -// -// 1. A flow sequence: -// -// [item 1, item 2, item 3] -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-SEQUENCE-START -// SCALAR("item 1",plain) -// FLOW-ENTRY -// SCALAR("item 2",plain) -// FLOW-ENTRY -// SCALAR("item 3",plain) -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A flow mapping: -// -// { -// a simple key: a value, # Note that the KEY token is produced. -// ? a complex key: another value, -// } -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// FLOW-ENTRY -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// FLOW-ENTRY -// FLOW-MAPPING-END -// STREAM-END -// -// A simple key is a key which is not denoted by the '?' indicator. Note that -// the Scanner still produce the KEY token whenever it encounters a simple key. -// -// For scanning block collections, the following tokens are used (note that we -// repeat KEY and VALUE here): -// -// BLOCK-SEQUENCE-START -// BLOCK-MAPPING-START -// BLOCK-END -// BLOCK-ENTRY -// KEY -// VALUE -// -// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation -// increase that precedes a block collection (cf. the INDENT token in Python). -// The token BLOCK-END denote indentation decrease that ends a block collection -// (cf. the DEDENT token in Python). However YAML has some syntax pecularities -// that makes detections of these tokens more complex. -// -// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators -// '-', '?', and ':' correspondingly. -// -// The following examples show how the tokens BLOCK-SEQUENCE-START, -// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: -// -// 1. Block sequences: -// -// - item 1 -// - item 2 -// - -// - item 3.1 -// - item 3.2 -// - -// key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 3.1",plain) -// BLOCK-ENTRY -// SCALAR("item 3.2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Block mappings: -// -// a simple key: a value # The KEY token is produced here. -// ? a complex key -// : another value -// a mapping: -// key 1: value 1 -// key 2: value 2 -// a sequence: -// - item 1 -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// KEY -// SCALAR("a mapping",plain) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML does not always require to start a new block collection from a new -// line. If the current line contains only '-', '?', and ':' indicators, a new -// block collection may start at the current line. The following examples -// illustrate this case: -// -// 1. Collections in a sequence: -// -// - - item 1 -// - item 2 -// - key 1: value 1 -// key 2: value 2 -// - ? complex key -// : complex value -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("complex key") -// VALUE -// SCALAR("complex value") -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Collections in a mapping: -// -// ? a sequence -// : - item 1 -// - item 2 -// ? a mapping -// : key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// KEY -// SCALAR("a mapping",plain) -// VALUE -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML also permits non-indented sequences if they are included into a block -// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: -// -// key: -// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key",plain) -// VALUE -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// - -// Ensure that the buffer contains the required number of characters. -// Return true on success, false on failure (reader error or memory error). -func cache(parser *yaml_parser_t, length int) bool { - // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) - return parser.unread >= length || yaml_parser_update_buffer(parser, length) -} - -// Advance the buffer pointer. -func skip(parser *yaml_parser_t) { - parser.mark.index++ - parser.mark.column++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) -} - -func skip_line(parser *yaml_parser_t) { - if is_crlf(parser.buffer, parser.buffer_pos) { - parser.mark.index += 2 - parser.mark.column = 0 - parser.mark.line++ - parser.unread -= 2 - parser.buffer_pos += 2 - } else if is_break(parser.buffer, parser.buffer_pos) { - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) - } -} - -// Copy a character to a string buffer and advance pointers. -func read(parser *yaml_parser_t, s []byte) []byte { - w := width(parser.buffer[parser.buffer_pos]) - if w == 0 { - panic("invalid character sequence") - } - if len(s) == 0 { - s = make([]byte, 0, 32) - } - if w == 1 && len(s)+w <= cap(s) { - s = s[:len(s)+1] - s[len(s)-1] = parser.buffer[parser.buffer_pos] - parser.buffer_pos++ - } else { - s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) - parser.buffer_pos += w - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - return s -} - -// Copy a line break character to a string buffer and advance pointers. -func read_line(parser *yaml_parser_t, s []byte) []byte { - buf := parser.buffer - pos := parser.buffer_pos - switch { - case buf[pos] == '\r' && buf[pos+1] == '\n': - // CR LF . LF - s = append(s, '\n') - parser.buffer_pos += 2 - parser.mark.index++ - parser.unread-- - case buf[pos] == '\r' || buf[pos] == '\n': - // CR|LF . LF - s = append(s, '\n') - parser.buffer_pos += 1 - case buf[pos] == '\xC2' && buf[pos+1] == '\x85': - // NEL . LF - s = append(s, '\n') - parser.buffer_pos += 2 - case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): - // LS|PS . LS|PS - s = append(s, buf[parser.buffer_pos:pos+3]...) - parser.buffer_pos += 3 - default: - return s - } - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - return s -} - -// Get the next token. -func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { - // Erase the token object. - *token = yaml_token_t{} // [Go] Is this necessary? - - // No tokens after STREAM-END or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR { - return true - } - - // Ensure that the tokens queue contains enough tokens. - if !parser.token_available { - if !yaml_parser_fetch_more_tokens(parser) { - return false - } - } - - // Fetch the next token from the queue. - *token = parser.tokens[parser.tokens_head] - parser.tokens_head++ - parser.tokens_parsed++ - parser.token_available = false - - if token.typ == yaml_STREAM_END_TOKEN { - parser.stream_end_produced = true - } - return true -} - -// Set the scanner error and return false. -func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { - parser.error = yaml_SCANNER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = parser.mark - return false -} - -func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { - context := "while parsing a tag" - if directive { - context = "while parsing a %TAG directive" - } - return yaml_parser_set_scanner_error(parser, context, context_mark, problem) -} - -func trace(args ...interface{}) func() { - pargs := append([]interface{}{"+++"}, args...) - fmt.Println(pargs...) - pargs = append([]interface{}{"---"}, args...) - return func() { fmt.Println(pargs...) } -} - -// Ensure that the tokens queue contains at least one token which can be -// returned to the Parser. -func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { - // While we need more tokens to fetch, do it. - for { - if parser.tokens_head != len(parser.tokens) { - // If queue is non-empty, check if any potential simple key may - // occupy the head position. - head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed] - if !ok { - break - } else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok { - return false - } else if !valid { - break - } - } - // Fetch the next token. - if !yaml_parser_fetch_next_token(parser) { - return false - } - } - - parser.token_available = true - return true -} - -// The dispatcher for token fetchers. -func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { - // Ensure that the buffer is initialized. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we just started scanning. Fetch STREAM-START then. - if !parser.stream_start_produced { - return yaml_parser_fetch_stream_start(parser) - } - - // Eat whitespaces and comments until we reach the next token. - if !yaml_parser_scan_to_next_token(parser) { - return false - } - - // Check the indentation level against the current column. - if !yaml_parser_unroll_indent(parser, parser.mark.column) { - return false - } - - // Ensure that the buffer contains at least 4 characters. 4 is the length - // of the longest indicators ('--- ' and '... '). - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - // Is it the end of the stream? - if is_z(parser.buffer, parser.buffer_pos) { - return yaml_parser_fetch_stream_end(parser) - } - - // Is it a directive? - if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { - return yaml_parser_fetch_directive(parser) - } - - buf := parser.buffer - pos := parser.buffer_pos - - // Is it the document start indicator? - if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) - } - - // Is it the document end indicator? - if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) - } - - // Is it the flow sequence start indicator? - if buf[pos] == '[' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) - } - - // Is it the flow mapping start indicator? - if parser.buffer[parser.buffer_pos] == '{' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) - } - - // Is it the flow sequence end indicator? - if parser.buffer[parser.buffer_pos] == ']' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_SEQUENCE_END_TOKEN) - } - - // Is it the flow mapping end indicator? - if parser.buffer[parser.buffer_pos] == '}' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_MAPPING_END_TOKEN) - } - - // Is it the flow entry indicator? - if parser.buffer[parser.buffer_pos] == ',' { - return yaml_parser_fetch_flow_entry(parser) - } - - // Is it the block entry indicator? - if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { - return yaml_parser_fetch_block_entry(parser) - } - - // Is it the key indicator? - if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_key(parser) - } - - // Is it the value indicator? - if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_value(parser) - } - - // Is it an alias? - if parser.buffer[parser.buffer_pos] == '*' { - return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) - } - - // Is it an anchor? - if parser.buffer[parser.buffer_pos] == '&' { - return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) - } - - // Is it a tag? - if parser.buffer[parser.buffer_pos] == '!' { - return yaml_parser_fetch_tag(parser) - } - - // Is it a literal scalar? - if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, true) - } - - // Is it a folded scalar? - if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, false) - } - - // Is it a single-quoted scalar? - if parser.buffer[parser.buffer_pos] == '\'' { - return yaml_parser_fetch_flow_scalar(parser, true) - } - - // Is it a double-quoted scalar? - if parser.buffer[parser.buffer_pos] == '"' { - return yaml_parser_fetch_flow_scalar(parser, false) - } - - // Is it a plain scalar? - // - // A plain scalar may start with any non-blank characters except - // - // '-', '?', ':', ',', '[', ']', '{', '}', - // '#', '&', '*', '!', '|', '>', '\'', '\"', - // '%', '@', '`'. - // - // In the block context (and, for the '-' indicator, in the flow context - // too), it may also start with the characters - // - // '-', '?', ':' - // - // if it is followed by a non-space character. - // - // The last rule is more restrictive than the specification requires. - // [Go] Make this logic more reasonable. - //switch parser.buffer[parser.buffer_pos] { - //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': - //} - if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || - parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || - parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || - (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level == 0 && - (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && - !is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_plain_scalar(parser) - } - - // If we don't determine the token type so far, it is an error. - return yaml_parser_set_scanner_error(parser, - "while scanning for the next token", parser.mark, - "found character that cannot start any token") -} - -func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) { - if !simple_key.possible { - return false, true - } - - // The 1.2 specification says: - // - // "If the ? indicator is omitted, parsing needs to see past the - // implicit key to recognize it as such. To limit the amount of - // lookahead required, the “:” indicator must appear at most 1024 - // Unicode characters beyond the start of the key. In addition, the key - // is restricted to a single line." - // - if simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index { - // Check if the potential simple key to be removed is required. - if simple_key.required { - return false, yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false - return false, true - } - return true, true -} - -// Check if a simple key may start at the current position and add it if -// needed. -func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { - // A simple key is required at the current position if the scanner is in - // the block context and the current column coincides with the indentation - // level. - - required := parser.flow_level == 0 && parser.indent == parser.mark.column - - // - // If the current position may start a simple key, save it. - // - if parser.simple_key_allowed { - simple_key := yaml_simple_key_t{ - possible: true, - required: required, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - } - - if !yaml_parser_remove_simple_key(parser) { - return false - } - parser.simple_keys[len(parser.simple_keys)-1] = simple_key - parser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1 - } - return true -} - -// Remove a potential simple key at the current flow level. -func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { - i := len(parser.simple_keys) - 1 - if parser.simple_keys[i].possible { - // If the key is required, it is an error. - if parser.simple_keys[i].required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", parser.simple_keys[i].mark, - "could not find expected ':'") - } - // Remove the key from the stack. - parser.simple_keys[i].possible = false - delete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number) - } - return true -} - -// max_flow_level limits the flow_level -const max_flow_level = 10000 - -// Increase the flow level and resize the simple key list if needed. -func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { - // Reset the simple key on the next level. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{ - possible: false, - required: false, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - }) - - // Increase the flow level. - parser.flow_level++ - if parser.flow_level > max_flow_level { - return yaml_parser_set_scanner_error(parser, - "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_flow_level)) - } - return true -} - -// Decrease the flow level. -func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { - if parser.flow_level > 0 { - parser.flow_level-- - last := len(parser.simple_keys) - 1 - delete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number) - parser.simple_keys = parser.simple_keys[:last] - } - return true -} - -// max_indents limits the indents stack size -const max_indents = 10000 - -// Push the current indentation level to the stack and set the new level -// the current column is greater than the indentation level. In this case, -// append or insert the specified token into the token queue. -func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - if parser.indent < column { - // Push the current indentation level to the stack and set the new - // indentation level. - parser.indents = append(parser.indents, parser.indent) - parser.indent = column - if len(parser.indents) > max_indents { - return yaml_parser_set_scanner_error(parser, - "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_indents)) - } - - // Create a token and insert it into the queue. - token := yaml_token_t{ - typ: typ, - start_mark: mark, - end_mark: mark, - } - if number > -1 { - number -= parser.tokens_parsed - } - yaml_insert_token(parser, number, &token) - } - return true -} - -// Pop indentation levels from the indents stack until the current level -// becomes less or equal to the column. For each indentation level, append -// the BLOCK-END token. -func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - // Loop through the indentation levels in the stack. - for parser.indent > column { - // Create a token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - - // Pop the indentation level. - parser.indent = parser.indents[len(parser.indents)-1] - parser.indents = parser.indents[:len(parser.indents)-1] - } - return true -} - -// Initialize the scanner and produce the STREAM-START token. -func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { - - // Set the initial indentation. - parser.indent = -1 - - // Initialize the simple key stack. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) - - parser.simple_keys_by_tok = make(map[int]int) - - // A simple key is allowed at the beginning of the stream. - parser.simple_key_allowed = true - - // We have started. - parser.stream_start_produced = true - - // Create the STREAM-START token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_START_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - encoding: parser.encoding, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the STREAM-END token and shut down the scanner. -func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { - - // Force new line. - if parser.mark.column != 0 { - parser.mark.column = 0 - parser.mark.line++ - } - - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the STREAM-END token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. -func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. - token := yaml_token_t{} - if !yaml_parser_scan_directive(parser, &token) { - return false - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the DOCUMENT-START or DOCUMENT-END token. -func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Consume the token. - start_mark := parser.mark - - skip(parser) - skip(parser) - skip(parser) - - end_mark := parser.mark - - // Create the DOCUMENT-START or DOCUMENT-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. -func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // The indicators '[' and '{' may start a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // Increase the flow level. - if !yaml_parser_increase_flow_level(parser) { - return false - } - - // A simple key may follow the indicators '[' and '{'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. -func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset any potential simple key on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Decrease the flow level. - if !yaml_parser_decrease_flow_level(parser) { - return false - } - - // No simple keys after the indicators ']' and '}'. - parser.simple_key_allowed = false - - // Consume the token. - - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-ENTRY token. -func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after ','. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_FLOW_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the BLOCK-ENTRY token. -func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { - // Check if the scanner is in the block context. - if parser.flow_level == 0 { - // Check if we are allowed to start a new entry. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "block sequence entries are not allowed in this context") - } - // Add the BLOCK-SEQUENCE-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { - return false - } - } else { - // It is an error for the '-' indicator to occur in the flow context, - // but we let the Parser detect and report about it because the Parser - // is able to point to the context. - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '-'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the BLOCK-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the KEY token. -func yaml_parser_fetch_key(parser *yaml_parser_t) bool { - - // In the block context, additional checks are required. - if parser.flow_level == 0 { - // Check if we are allowed to start a new key (not nessesary simple). - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping keys are not allowed in this context") - } - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '?' in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the KEY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the VALUE token. -func yaml_parser_fetch_value(parser *yaml_parser_t) bool { - - simple_key := &parser.simple_keys[len(parser.simple_keys)-1] - - // Have we found a simple key? - if valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok { - return false - - } else if valid { - - // Create the KEY token and insert it into the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: simple_key.mark, - end_mark: simple_key.mark, - } - yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) - - // In the block context, we may need to add the BLOCK-MAPPING-START token. - if !yaml_parser_roll_indent(parser, simple_key.mark.column, - simple_key.token_number, - yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { - return false - } - - // Remove the simple key. - simple_key.possible = false - delete(parser.simple_keys_by_tok, simple_key.token_number) - - // A simple key cannot follow another simple key. - parser.simple_key_allowed = false - - } else { - // The ':' indicator follows a complex key. - - // In the block context, extra checks are required. - if parser.flow_level == 0 { - - // Check if we are allowed to start a complex value. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping values are not allowed in this context") - } - - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Simple keys after ':' are allowed in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - } - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the VALUE token and append it to the queue. - token := yaml_token_t{ - typ: yaml_VALUE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the ALIAS or ANCHOR token. -func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // An anchor or an alias could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow an anchor or an alias. - parser.simple_key_allowed = false - - // Create the ALIAS or ANCHOR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_anchor(parser, &token, typ) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the TAG token. -func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { - // A tag could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a tag. - parser.simple_key_allowed = false - - // Create the TAG token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_tag(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. -func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { - // Remove any potential simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // A simple key may follow a block scalar. - parser.simple_key_allowed = true - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_block_scalar(parser, &token, literal) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. -func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_flow_scalar(parser, &token, single) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,plain) token. -func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_plain_scalar(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Eat whitespaces and comments until the next token is found. -func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { - - // Until the next token is not found. - for { - // Allow the BOM mark to start a line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { - skip(parser) - } - - // Eat whitespaces. - // Tabs are allowed: - // - in the flow context - // - in the block context, but not at the beginning of the line or - // after '-', '?', or ':' (complex value). - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Eat a comment until a line break. - if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // If it is a line break, eat it. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - - // In the block context, a new line may start a simple key. - if parser.flow_level == 0 { - parser.simple_key_allowed = true - } - } else { - break // We have found a token. - } - } - - return true -} - -// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { - // Eat '%'. - start_mark := parser.mark - skip(parser) - - // Scan the directive name. - var name []byte - if !yaml_parser_scan_directive_name(parser, start_mark, &name) { - return false - } - - // Is it a YAML directive? - if bytes.Equal(name, []byte("YAML")) { - // Scan the VERSION directive value. - var major, minor int8 - if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { - return false - } - end_mark := parser.mark - - // Create a VERSION-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_VERSION_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - major: major, - minor: minor, - } - - // Is it a TAG directive? - } else if bytes.Equal(name, []byte("TAG")) { - // Scan the TAG directive value. - var handle, prefix []byte - if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { - return false - } - end_mark := parser.mark - - // Create a TAG-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_TAG_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - prefix: prefix, - } - - // Unknown directive. - } else { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unknown directive name") - return false - } - - // Eat the rest of the line including any comments. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - return true -} - -// Scan the directive name. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^ -func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { - // Consume the directive name. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - var s []byte - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the name is empty. - if len(s) == 0 { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "could not find expected directive name") - return false - } - - // Check for an blank character after the name. - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unexpected non-alphabetical character") - return false - } - *name = s - return true -} - -// Scan the value of VERSION-DIRECTIVE. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^^^^^^ -func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the major version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { - return false - } - - // Eat '.'. - if parser.buffer[parser.buffer_pos] != '.' { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected digit or '.' character") - } - - skip(parser) - - // Consume the minor version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { - return false - } - return true -} - -const max_number_length = 2 - -// Scan the version number of VERSION-DIRECTIVE. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^ -// %YAML 1.1 # a comment \n -// ^ -func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { - - // Repeat while the next character is digit. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var value, length int8 - for is_digit(parser.buffer, parser.buffer_pos) { - // Check if the number is too long. - length++ - if length > max_number_length { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "found extremely long version number") - } - value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the number was present. - if length == 0 { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected version number") - } - *number = value - return true -} - -// Scan the value of a TAG-DIRECTIVE token. -// -// Scope: -// -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { - var handle_value, prefix_value []byte - - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a handle. - if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { - return false - } - - // Expect a whitespace. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blank(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace") - return false - } - - // Eat whitespaces. - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a prefix. - if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { - return false - } - - // Expect a whitespace or line break. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace or line break") - return false - } - - *handle = handle_value - *prefix = prefix_value - return true -} - -func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { - var s []byte - - // Eat the indicator character. - start_mark := parser.mark - skip(parser) - - // Consume the value. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - end_mark := parser.mark - - /* - * Check if length of the anchor is greater than 0 and it is followed by - * a whitespace character or one of the indicators: - * - * '?', ':', ',', ']', '}', '%', '@', '`'. - */ - - if len(s) == 0 || - !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || - parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '`') { - context := "while scanning an alias" - if typ == yaml_ANCHOR_TOKEN { - context = "while scanning an anchor" - } - yaml_parser_set_scanner_error(parser, context, start_mark, - "did not find expected alphabetic or numeric character") - return false - } - - // Create a token. - *token = yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - value: s, - } - - return true -} - -/* - * Scan a TAG token. - */ - -func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { - var handle, suffix []byte - - start_mark := parser.mark - - // Check if the tag is in the canonical form. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - if parser.buffer[parser.buffer_pos+1] == '<' { - // Keep the handle as '' - - // Eat '!<' - skip(parser) - skip(parser) - - // Consume the tag value. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - - // Check for '>' and eat it. - if parser.buffer[parser.buffer_pos] != '>' { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find the expected '>'") - return false - } - - skip(parser) - } else { - // The tag has either the '!suffix' or the '!handle!suffix' form. - - // First, try to scan a handle. - if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { - return false - } - - // Check if it is, indeed, handle. - if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { - // Scan the suffix now. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - } else { - // It wasn't a handle after all. Scan the rest of the tag. - if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { - return false - } - - // Set the handle to '!'. - handle = []byte{'!'} - - // A special case: the '!' tag. Set the handle to '' and the - // suffix to '!'. - if len(suffix) == 0 { - handle, suffix = suffix, handle - } - } - } - - // Check the character which ends the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find expected whitespace or line break") - return false - } - - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_TAG_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - suffix: suffix, - } - return true -} - -// Scan a tag handle. -func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { - // Check the initial '!' character. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] != '!' { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - - var s []byte - - // Copy the '!' character. - s = read(parser, s) - - // Copy all subsequent alphabetical and numerical characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the trailing character is '!' and copy it. - if parser.buffer[parser.buffer_pos] == '!' { - s = read(parser, s) - } else { - // It's either the '!' tag or not really a tag handle. If it's a %TAG - // directive, it's an error. If it's a tag token, it must be a part of URI. - if directive && string(s) != "!" { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - } - - *handle = s - return true -} - -// Scan a tag. -func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { - //size_t length = head ? strlen((char *)head) : 0 - var s []byte - hasTag := len(head) > 0 - - // Copy the head if needed. - // - // Note that we don't copy the leading '!' character. - if len(head) > 1 { - s = append(s, head[1:]...) - } - - // Scan the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // The set of characters that may appear in URI is as follows: - // - // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', - // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', - // '%'. - // [Go] Convert this into more reasonable logic. - for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || - parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || - parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || - parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || - parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || - parser.buffer[parser.buffer_pos] == '%' { - // Check if it is a URI-escape sequence. - if parser.buffer[parser.buffer_pos] == '%' { - if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { - return false - } - } else { - s = read(parser, s) - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - hasTag = true - } - - if !hasTag { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected tag URI") - return false - } - *uri = s - return true -} - -// Decode an URI-escape sequence corresponding to a single UTF-8 character. -func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { - - // Decode the required number of characters. - w := 1024 - for w > 0 { - // Check for a URI-escaped octet. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - - if !(parser.buffer[parser.buffer_pos] == '%' && - is_hex(parser.buffer, parser.buffer_pos+1) && - is_hex(parser.buffer, parser.buffer_pos+2)) { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find URI escaped octet") - } - - // Get the octet. - octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) - - // If it is the leading octet, determine the length of the UTF-8 sequence. - if w == 1024 { - w = width(octet) - if w == 0 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect leading UTF-8 octet") - } - } else { - // Check if the trailing octet is correct. - if octet&0xC0 != 0x80 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect trailing UTF-8 octet") - } - } - - // Copy the octet and move the pointers. - *s = append(*s, octet) - skip(parser) - skip(parser) - skip(parser) - w-- - } - return true -} - -// Scan a block scalar. -func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { - // Eat the indicator '|' or '>'. - start_mark := parser.mark - skip(parser) - - // Scan the additional block scalar indicators. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check for a chomping indicator. - var chomping, increment int - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - // Set the chomping method and eat the indicator. - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - - // Check for an indentation indicator. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_digit(parser.buffer, parser.buffer_pos) { - // Check that the indentation is greater than 0. - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - - // Get the indentation level and eat the indicator. - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - } - - } else if is_digit(parser.buffer, parser.buffer_pos) { - // Do the same as above, but in the opposite order. - - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - } - } - - // Eat whitespaces and comments to the end of the line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - end_mark := parser.mark - - // Set the indentation level if it was specified. - var indent int - if increment > 0 { - if parser.indent >= 0 { - indent = parser.indent + increment - } else { - indent = increment - } - } - - // Scan the leading line breaks and determine the indentation level if needed. - var s, leading_break, trailing_breaks []byte - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - - // Scan the block scalar content. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var leading_blank, trailing_blank bool - for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { - // We are at the beginning of a non-empty line. - - // Is it a trailing whitespace? - trailing_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Check if we need to fold the leading line break. - if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { - // Do we need to join the lines by space? - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } - } else { - s = append(s, leading_break...) - } - leading_break = leading_break[:0] - - // Append the remaining line breaks. - s = append(s, trailing_breaks...) - trailing_breaks = trailing_breaks[:0] - - // Is it a leading whitespace? - leading_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Consume the current line. - for !is_breakz(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - leading_break = read_line(parser, leading_break) - - // Eat the following indentation spaces and line breaks. - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - } - - // Chomp the tail. - if chomping != -1 { - s = append(s, leading_break...) - } - if chomping == 1 { - s = append(s, trailing_breaks...) - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_LITERAL_SCALAR_STYLE, - } - if !literal { - token.style = yaml_FOLDED_SCALAR_STYLE - } - return true -} - -// Scan indentation spaces and line breaks for a block scalar. Determine the -// indentation level if needed. -func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { - *end_mark = parser.mark - - // Eat the indentation spaces and line breaks. - max_indent := 0 - for { - // Eat the indentation spaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.mark.column > max_indent { - max_indent = parser.mark.column - } - - // Check for a tab character messing the indentation. - if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { - return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found a tab character where an indentation space is expected") - } - - // Have we found a non-empty line? - if !is_break(parser.buffer, parser.buffer_pos) { - break - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - // [Go] Should really be returning breaks instead. - *breaks = read_line(parser, *breaks) - *end_mark = parser.mark - } - - // Determine the indentation level if needed. - if *indent == 0 { - *indent = max_indent - if *indent < parser.indent+1 { - *indent = parser.indent + 1 - } - if *indent < 1 { - *indent = 1 - } - } - return true -} - -// Scan a quoted scalar. -func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { - // Eat the left quote. - start_mark := parser.mark - skip(parser) - - // Consume the content of the quoted scalar. - var s, leading_break, trailing_breaks, whitespaces []byte - for { - // Check that there are no document indicators at the beginning of the line. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected document indicator") - return false - } - - // Check for EOF. - if is_z(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected end of stream") - return false - } - - // Consume non-blank characters. - leading_blanks := false - for !is_blankz(parser.buffer, parser.buffer_pos) { - if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { - // Is is an escaped single quote. - s = append(s, '\'') - skip(parser) - skip(parser) - - } else if single && parser.buffer[parser.buffer_pos] == '\'' { - // It is a right single quote. - break - } else if !single && parser.buffer[parser.buffer_pos] == '"' { - // It is a right double quote. - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { - // It is an escaped line break. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - skip(parser) - skip_line(parser) - leading_blanks = true - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' { - // It is an escape sequence. - code_length := 0 - - // Check the escape character. - switch parser.buffer[parser.buffer_pos+1] { - case '0': - s = append(s, 0) - case 'a': - s = append(s, '\x07') - case 'b': - s = append(s, '\x08') - case 't', '\t': - s = append(s, '\x09') - case 'n': - s = append(s, '\x0A') - case 'v': - s = append(s, '\x0B') - case 'f': - s = append(s, '\x0C') - case 'r': - s = append(s, '\x0D') - case 'e': - s = append(s, '\x1B') - case ' ': - s = append(s, '\x20') - case '"': - s = append(s, '"') - case '\'': - s = append(s, '\'') - case '\\': - s = append(s, '\\') - case 'N': // NEL (#x85) - s = append(s, '\xC2') - s = append(s, '\x85') - case '_': // #xA0 - s = append(s, '\xC2') - s = append(s, '\xA0') - case 'L': // LS (#x2028) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA8') - case 'P': // PS (#x2029) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA9') - case 'x': - code_length = 2 - case 'u': - code_length = 4 - case 'U': - code_length = 8 - default: - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found unknown escape character") - return false - } - - skip(parser) - skip(parser) - - // Consume an arbitrary escape code. - if code_length > 0 { - var value int - - // Scan the character value. - if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { - return false - } - for k := 0; k < code_length; k++ { - if !is_hex(parser.buffer, parser.buffer_pos+k) { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "did not find expected hexdecimal number") - return false - } - value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) - } - - // Check the value and write the character. - if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found invalid Unicode character escape code") - return false - } - if value <= 0x7F { - s = append(s, byte(value)) - } else if value <= 0x7FF { - s = append(s, byte(0xC0+(value>>6))) - s = append(s, byte(0x80+(value&0x3F))) - } else if value <= 0xFFFF { - s = append(s, byte(0xE0+(value>>12))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } else { - s = append(s, byte(0xF0+(value>>18))) - s = append(s, byte(0x80+((value>>12)&0x3F))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } - - // Advance the pointer. - for k := 0; k < code_length; k++ { - skip(parser) - } - } - } else { - // It is a non-escaped non-blank character. - s = read(parser, s) - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we are at the end of the scalar. - if single { - if parser.buffer[parser.buffer_pos] == '\'' { - break - } - } else { - if parser.buffer[parser.buffer_pos] == '"' { - break - } - } - - // Consume blank characters. - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Join the whitespaces or fold line breaks. - if leading_blanks { - // Do we need to fold line breaks? - if len(leading_break) > 0 && leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Eat the right quote. - skip(parser) - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_SINGLE_QUOTED_SCALAR_STYLE, - } - if !single { - token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - return true -} - -// Scan a plain scalar. -func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { - - var s, leading_break, trailing_breaks, whitespaces []byte - var leading_blanks bool - var indent = parser.indent + 1 - - start_mark := parser.mark - end_mark := parser.mark - - // Consume the content of the plain scalar. - for { - // Check for a document indicator. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - break - } - - // Check for a comment. - if parser.buffer[parser.buffer_pos] == '#' { - break - } - - // Consume non-blank characters. - for !is_blankz(parser.buffer, parser.buffer_pos) { - - // Check for indicators that may end a plain scalar. - if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level > 0 && - (parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}')) { - break - } - - // Check if we need to join whitespaces and breaks. - if leading_blanks || len(whitespaces) > 0 { - if leading_blanks { - // Do we need to fold line breaks? - if leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - leading_blanks = false - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Copy the character. - s = read(parser, s) - - end_mark = parser.mark - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - // Is it the end? - if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { - break - } - - // Consume blank characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - - // Check for tab characters that abuse indentation. - if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found a tab character that violates indentation") - return false - } - - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check indentation level. - if parser.flow_level == 0 && parser.mark.column < indent { - break - } - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_PLAIN_SCALAR_STYLE, - } - - // Note that we change the 'simple_key_allowed' flag. - if leading_blanks { - parser.simple_key_allowed = true - } - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v2/sorter.go b/backend/vendor/gopkg.in/yaml.v2/sorter.go deleted file mode 100644 index 2edd7340..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/sorter.go +++ /dev/null @@ -1,113 +0,0 @@ -package yaml - -import ( - "reflect" - "unicode" -) - -type keyList []reflect.Value - -func (l keyList) Len() int { return len(l) } -func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l keyList) Less(i, j int) bool { - a := l[i] - b := l[j] - ak := a.Kind() - bk := b.Kind() - for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { - a = a.Elem() - ak = a.Kind() - } - for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { - b = b.Elem() - bk = b.Kind() - } - af, aok := keyFloat(a) - bf, bok := keyFloat(b) - if aok && bok { - if af != bf { - return af < bf - } - if ak != bk { - return ak < bk - } - return numLess(a, b) - } - if ak != reflect.String || bk != reflect.String { - return ak < bk - } - ar, br := []rune(a.String()), []rune(b.String()) - for i := 0; i < len(ar) && i < len(br); i++ { - if ar[i] == br[i] { - continue - } - al := unicode.IsLetter(ar[i]) - bl := unicode.IsLetter(br[i]) - if al && bl { - return ar[i] < br[i] - } - if al || bl { - return bl - } - var ai, bi int - var an, bn int64 - if ar[i] == '0' || br[i] == '0' { - for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- { - if ar[j] != '0' { - an = 1 - bn = 1 - break - } - } - } - for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { - an = an*10 + int64(ar[ai]-'0') - } - for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { - bn = bn*10 + int64(br[bi]-'0') - } - if an != bn { - return an < bn - } - if ai != bi { - return ai < bi - } - return ar[i] < br[i] - } - return len(ar) < len(br) -} - -// keyFloat returns a float value for v if it is a number/bool -// and whether it is a number/bool or not. -func keyFloat(v reflect.Value) (f float64, ok bool) { - switch v.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return float64(v.Int()), true - case reflect.Float32, reflect.Float64: - return v.Float(), true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return float64(v.Uint()), true - case reflect.Bool: - if v.Bool() { - return 1, true - } - return 0, true - } - return 0, false -} - -// numLess returns whether a < b. -// a and b must necessarily have the same kind. -func numLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return a.Int() < b.Int() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Bool: - return !a.Bool() && b.Bool() - } - panic("not a number") -} diff --git a/backend/vendor/gopkg.in/yaml.v2/writerc.go b/backend/vendor/gopkg.in/yaml.v2/writerc.go deleted file mode 100644 index a2dde608..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/writerc.go +++ /dev/null @@ -1,26 +0,0 @@ -package yaml - -// Set the writer error and return false. -func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_WRITER_ERROR - emitter.problem = problem - return false -} - -// Flush the output buffer. -func yaml_emitter_flush(emitter *yaml_emitter_t) bool { - if emitter.write_handler == nil { - panic("write handler not set") - } - - // Check if the buffer is empty. - if emitter.buffer_pos == 0 { - return true - } - - if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v2/yaml.go b/backend/vendor/gopkg.in/yaml.v2/yaml.go deleted file mode 100644 index 03756f6b..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/yaml.go +++ /dev/null @@ -1,475 +0,0 @@ -// Package yaml implements YAML support for the Go language. -// -// Source code and other details for the project are available at GitHub: -// -// https://github.com/go-yaml/yaml -package yaml - -import ( - "errors" - "fmt" - "io" - "reflect" - "strings" - "sync" -) - -// MapSlice encodes and decodes as a YAML map. -// The order of keys is preserved when encoding and decoding. -type MapSlice []MapItem - -// MapItem is an item in a MapSlice. -type MapItem struct { - Key, Value interface{} -} - -// The Unmarshaler interface may be implemented by types to customize their -// behavior when being unmarshaled from a YAML document. The UnmarshalYAML -// method receives a function that may be called to unmarshal the original -// YAML value into a field or variable. It is safe to call the unmarshal -// function parameter more than once if necessary. -type Unmarshaler interface { - UnmarshalYAML(unmarshal func(interface{}) error) error -} - -// The Marshaler interface may be implemented by types to customize their -// behavior when being marshaled into a YAML document. The returned value -// is marshaled in place of the original value implementing Marshaler. -// -// If an error is returned by MarshalYAML, the marshaling procedure stops -// and returns with the provided error. -type Marshaler interface { - MarshalYAML() (interface{}, error) -} - -// Unmarshal decodes the first document found within the in byte slice -// and assigns decoded values into the out value. -// -// Maps and pointers (to a struct, string, int, etc) are accepted as out -// values. If an internal pointer within a struct is not initialized, -// the yaml package will initialize it if necessary for unmarshalling -// the provided data. The out parameter must not be nil. -// -// The type of the decoded values should be compatible with the respective -// values in out. If one or more values cannot be decoded due to a type -// mismatches, decoding continues partially until the end of the YAML -// content, and a *yaml.TypeError is returned with details for all -// missed values. -// -// Struct fields are only unmarshalled if they are exported (have an -// upper case first letter), and are unmarshalled using the field name -// lowercased as the default key. Custom keys may be defined via the -// "yaml" name in the field tag: the content preceding the first comma -// is used as the key, and the following comma-separated options are -// used to tweak the marshalling process (see Marshal). -// Conflicting names result in a runtime error. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// var t T -// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) -// -// See the documentation of Marshal for the format of tags and a list of -// supported tag options. -func Unmarshal(in []byte, out interface{}) (err error) { - return unmarshal(in, out, false) -} - -// UnmarshalStrict is like Unmarshal except that any fields that are found -// in the data that do not have corresponding struct members, or mapping -// keys that are duplicates, will result in -// an error. -func UnmarshalStrict(in []byte, out interface{}) (err error) { - return unmarshal(in, out, true) -} - -// A Decoder reads and decodes YAML values from an input stream. -type Decoder struct { - strict bool - parser *parser -} - -// NewDecoder returns a new decoder that reads from r. -// -// The decoder introduces its own buffering and may read -// data from r beyond the YAML values requested. -func NewDecoder(r io.Reader) *Decoder { - return &Decoder{ - parser: newParserFromReader(r), - } -} - -// SetStrict sets whether strict decoding behaviour is enabled when -// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict. -func (dec *Decoder) SetStrict(strict bool) { - dec.strict = strict -} - -// Decode reads the next YAML-encoded value from its input -// and stores it in the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (dec *Decoder) Decode(v interface{}) (err error) { - d := newDecoder(dec.strict) - defer handleErr(&err) - node := dec.parser.parse() - if node == nil { - return io.EOF - } - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(node, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -func unmarshal(in []byte, out interface{}, strict bool) (err error) { - defer handleErr(&err) - d := newDecoder(strict) - p := newParser(in) - defer p.destroy() - node := p.parse() - if node != nil { - v := reflect.ValueOf(out) - if v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - d.unmarshal(node, v) - } - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Marshal serializes the value provided into a YAML document. The structure -// of the generated document will reflect the structure of the value itself. -// Maps and pointers (to struct, string, int, etc) are accepted as the in value. -// -// Struct fields are only marshalled if they are exported (have an upper case -// first letter), and are marshalled using the field name lowercased as the -// default key. Custom keys may be defined via the "yaml" name in the field -// tag: the content preceding the first comma is used as the key, and the -// following comma-separated options are used to tweak the marshalling process. -// Conflicting names result in a runtime error. -// -// The field tag format accepted is: -// -// `(...) yaml:"[][,[,]]" (...)` -// -// The following flags are currently supported: -// -// omitempty Only include the field if it's not set to the zero -// value for the type or to empty slices or maps. -// Zero valued structs will be omitted if all their public -// fields are zero, unless they implement an IsZero -// method (see the IsZeroer interface type), in which -// case the field will be excluded if IsZero returns true. -// -// flow Marshal using a flow style (useful for structs, -// sequences and maps). -// -// inline Inline the field, which must be a struct or a map, -// causing all of its fields or keys to be processed as if -// they were part of the outer struct. For maps, keys must -// not conflict with the yaml keys of other struct fields. -// -// In addition, if the key is "-", the field is ignored. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" -// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" -func Marshal(in interface{}) (out []byte, err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(in)) - e.finish() - out = e.out - return -} - -// An Encoder writes YAML values to an output stream. -type Encoder struct { - encoder *encoder -} - -// NewEncoder returns a new encoder that writes to w. -// The Encoder should be closed after use to flush all data -// to w. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - encoder: newEncoderWithWriter(w), - } -} - -// Encode writes the YAML encoding of v to the stream. -// If multiple items are encoded to the stream, the -// second and subsequent document will be preceded -// with a "---" document separator, but the first will not. -// -// See the documentation for Marshal for details about the conversion of Go -// values to YAML. -func (e *Encoder) Encode(v interface{}) (err error) { - defer handleErr(&err) - e.encoder.marshalDoc("", reflect.ValueOf(v)) - return nil -} - -// Close closes the encoder by writing any remaining data. -// It does not write a stream terminating string "...". -func (e *Encoder) Close() (err error) { - defer handleErr(&err) - e.encoder.finish() - return nil -} - -func handleErr(err *error) { - if v := recover(); v != nil { - if e, ok := v.(yamlError); ok { - *err = e.err - } else { - panic(v) - } - } -} - -type yamlError struct { - err error -} - -func fail(err error) { - panic(yamlError{err}) -} - -func failf(format string, args ...interface{}) { - panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) -} - -// A TypeError is returned by Unmarshal when one or more fields in -// the YAML document cannot be properly decoded into the requested -// types. When this error is returned, the value is still -// unmarshaled partially. -type TypeError struct { - Errors []string -} - -func (e *TypeError) Error() string { - return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) -} - -// -------------------------------------------------------------------------- -// Maintain a mapping of keys to structure field indexes - -// The code in this section was copied from mgo/bson. - -// structInfo holds details for the serialization of fields of -// a given struct. -type structInfo struct { - FieldsMap map[string]fieldInfo - FieldsList []fieldInfo - - // InlineMap is the number of the field in the struct that - // contains an ,inline map, or -1 if there's none. - InlineMap int -} - -type fieldInfo struct { - Key string - Num int - OmitEmpty bool - Flow bool - // Id holds the unique field identifier, so we can cheaply - // check for field duplicates without maintaining an extra map. - Id int - - // Inline holds the field index if the field is part of an inlined struct. - Inline []int -} - -var structMap = make(map[reflect.Type]*structInfo) -var fieldMapMutex sync.RWMutex - -func getStructInfo(st reflect.Type) (*structInfo, error) { - fieldMapMutex.RLock() - sinfo, found := structMap[st] - fieldMapMutex.RUnlock() - if found { - return sinfo, nil - } - - n := st.NumField() - fieldsMap := make(map[string]fieldInfo) - fieldsList := make([]fieldInfo, 0, n) - inlineMap := -1 - for i := 0; i != n; i++ { - field := st.Field(i) - if field.PkgPath != "" && !field.Anonymous { - continue // Private field - } - - info := fieldInfo{Num: i} - - tag := field.Tag.Get("yaml") - if tag == "" && strings.Index(string(field.Tag), ":") < 0 { - tag = string(field.Tag) - } - if tag == "-" { - continue - } - - inline := false - fields := strings.Split(tag, ",") - if len(fields) > 1 { - for _, flag := range fields[1:] { - switch flag { - case "omitempty": - info.OmitEmpty = true - case "flow": - info.Flow = true - case "inline": - inline = true - default: - return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st)) - } - } - tag = fields[0] - } - - if inline { - switch field.Type.Kind() { - case reflect.Map: - if inlineMap >= 0 { - return nil, errors.New("Multiple ,inline maps in struct " + st.String()) - } - if field.Type.Key() != reflect.TypeOf("") { - return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String()) - } - inlineMap = info.Num - case reflect.Struct: - sinfo, err := getStructInfo(field.Type) - if err != nil { - return nil, err - } - for _, finfo := range sinfo.FieldsList { - if _, found := fieldsMap[finfo.Key]; found { - msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - if finfo.Inline == nil { - finfo.Inline = []int{i, finfo.Num} - } else { - finfo.Inline = append([]int{i}, finfo.Inline...) - } - finfo.Id = len(fieldsList) - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) - } - default: - //return nil, errors.New("Option ,inline needs a struct value or map field") - return nil, errors.New("Option ,inline needs a struct value field") - } - continue - } - - if tag != "" { - info.Key = tag - } else { - info.Key = strings.ToLower(field.Name) - } - - if _, found = fieldsMap[info.Key]; found { - msg := "Duplicated key '" + info.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - - info.Id = len(fieldsList) - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - - sinfo = &structInfo{ - FieldsMap: fieldsMap, - FieldsList: fieldsList, - InlineMap: inlineMap, - } - - fieldMapMutex.Lock() - structMap[st] = sinfo - fieldMapMutex.Unlock() - return sinfo, nil -} - -// IsZeroer is used to check whether an object is zero to -// determine whether it should be omitted when marshaling -// with the omitempty flag. One notable implementation -// is time.Time. -type IsZeroer interface { - IsZero() bool -} - -func isZero(v reflect.Value) bool { - kind := v.Kind() - if z, ok := v.Interface().(IsZeroer); ok { - if (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() { - return true - } - return z.IsZero() - } - switch kind { - case reflect.String: - return len(v.String()) == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - case reflect.Slice: - return v.Len() == 0 - case reflect.Map: - return v.Len() == 0 - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Struct: - vt := v.Type() - for i := v.NumField() - 1; i >= 0; i-- { - if vt.Field(i).PkgPath != "" { - continue // Private field - } - if !isZero(v.Field(i)) { - return false - } - } - return true - } - return false -} - -// FutureLineWrap globally disables line wrapping when encoding long strings. -// This is a temporary and thus deprecated method introduced to faciliate -// migration towards v3, which offers more control of line lengths on -// individual encodings, and has a default matching the behavior introduced -// by this function. -// -// The default formatting of v2 was erroneously changed in v2.3.0 and reverted -// in v2.4.0, at which point this function was introduced to help migration. -func FutureLineWrap() { - disableLineWrapping = true -} diff --git a/backend/vendor/gopkg.in/yaml.v2/yamlh.go b/backend/vendor/gopkg.in/yaml.v2/yamlh.go deleted file mode 100644 index 640f9d95..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/yamlh.go +++ /dev/null @@ -1,742 +0,0 @@ -package yaml - -import ( - "fmt" - "io" -) - -// The version directive data. -type yaml_version_directive_t struct { - major int8 // The major version number. - minor int8 // The minor version number. -} - -// The tag directive data. -type yaml_tag_directive_t struct { - handle []byte // The tag handle. - prefix []byte // The tag prefix. -} - -type yaml_encoding_t int - -// The stream encoding. -const ( - // Let the parser choose the encoding. - yaml_ANY_ENCODING yaml_encoding_t = iota - - yaml_UTF8_ENCODING // The default UTF-8 encoding. - yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. - yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. -) - -type yaml_break_t int - -// Line break types. -const ( - // Let the parser choose the break type. - yaml_ANY_BREAK yaml_break_t = iota - - yaml_CR_BREAK // Use CR for line breaks (Mac style). - yaml_LN_BREAK // Use LN for line breaks (Unix style). - yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). -) - -type yaml_error_type_t int - -// Many bad things could happen with the parser and emitter. -const ( - // No error is produced. - yaml_NO_ERROR yaml_error_type_t = iota - - yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. - yaml_READER_ERROR // Cannot read or decode the input stream. - yaml_SCANNER_ERROR // Cannot scan the input stream. - yaml_PARSER_ERROR // Cannot parse the input stream. - yaml_COMPOSER_ERROR // Cannot compose a YAML document. - yaml_WRITER_ERROR // Cannot write to the output stream. - yaml_EMITTER_ERROR // Cannot emit a YAML stream. -) - -// The pointer position. -type yaml_mark_t struct { - index int // The position index. - line int // The position line. - column int // The position column. -} - -// Node Styles - -type yaml_style_t int8 - -type yaml_scalar_style_t yaml_style_t - -// Scalar styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota - - yaml_PLAIN_SCALAR_STYLE // The plain scalar style. - yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. - yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. - yaml_LITERAL_SCALAR_STYLE // The literal scalar style. - yaml_FOLDED_SCALAR_STYLE // The folded scalar style. -) - -type yaml_sequence_style_t yaml_style_t - -// Sequence styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota - - yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. - yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. -) - -type yaml_mapping_style_t yaml_style_t - -// Mapping styles. -const ( - // Let the emitter choose the style. - yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota - - yaml_BLOCK_MAPPING_STYLE // The block mapping style. - yaml_FLOW_MAPPING_STYLE // The flow mapping style. -) - -// Tokens - -type yaml_token_type_t int - -// Token types. -const ( - // An empty token. - yaml_NO_TOKEN yaml_token_type_t = iota - - yaml_STREAM_START_TOKEN // A STREAM-START token. - yaml_STREAM_END_TOKEN // A STREAM-END token. - - yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. - yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. - yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. - yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. - - yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. - yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. - yaml_BLOCK_END_TOKEN // A BLOCK-END token. - - yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. - yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. - yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. - yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. - - yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. - yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. - yaml_KEY_TOKEN // A KEY token. - yaml_VALUE_TOKEN // A VALUE token. - - yaml_ALIAS_TOKEN // An ALIAS token. - yaml_ANCHOR_TOKEN // An ANCHOR token. - yaml_TAG_TOKEN // A TAG token. - yaml_SCALAR_TOKEN // A SCALAR token. -) - -func (tt yaml_token_type_t) String() string { - switch tt { - case yaml_NO_TOKEN: - return "yaml_NO_TOKEN" - case yaml_STREAM_START_TOKEN: - return "yaml_STREAM_START_TOKEN" - case yaml_STREAM_END_TOKEN: - return "yaml_STREAM_END_TOKEN" - case yaml_VERSION_DIRECTIVE_TOKEN: - return "yaml_VERSION_DIRECTIVE_TOKEN" - case yaml_TAG_DIRECTIVE_TOKEN: - return "yaml_TAG_DIRECTIVE_TOKEN" - case yaml_DOCUMENT_START_TOKEN: - return "yaml_DOCUMENT_START_TOKEN" - case yaml_DOCUMENT_END_TOKEN: - return "yaml_DOCUMENT_END_TOKEN" - case yaml_BLOCK_SEQUENCE_START_TOKEN: - return "yaml_BLOCK_SEQUENCE_START_TOKEN" - case yaml_BLOCK_MAPPING_START_TOKEN: - return "yaml_BLOCK_MAPPING_START_TOKEN" - case yaml_BLOCK_END_TOKEN: - return "yaml_BLOCK_END_TOKEN" - case yaml_FLOW_SEQUENCE_START_TOKEN: - return "yaml_FLOW_SEQUENCE_START_TOKEN" - case yaml_FLOW_SEQUENCE_END_TOKEN: - return "yaml_FLOW_SEQUENCE_END_TOKEN" - case yaml_FLOW_MAPPING_START_TOKEN: - return "yaml_FLOW_MAPPING_START_TOKEN" - case yaml_FLOW_MAPPING_END_TOKEN: - return "yaml_FLOW_MAPPING_END_TOKEN" - case yaml_BLOCK_ENTRY_TOKEN: - return "yaml_BLOCK_ENTRY_TOKEN" - case yaml_FLOW_ENTRY_TOKEN: - return "yaml_FLOW_ENTRY_TOKEN" - case yaml_KEY_TOKEN: - return "yaml_KEY_TOKEN" - case yaml_VALUE_TOKEN: - return "yaml_VALUE_TOKEN" - case yaml_ALIAS_TOKEN: - return "yaml_ALIAS_TOKEN" - case yaml_ANCHOR_TOKEN: - return "yaml_ANCHOR_TOKEN" - case yaml_TAG_TOKEN: - return "yaml_TAG_TOKEN" - case yaml_SCALAR_TOKEN: - return "yaml_SCALAR_TOKEN" - } - return "" -} - -// The token structure. -type yaml_token_t struct { - // The token type. - typ yaml_token_type_t - - // The start/end of the token. - start_mark, end_mark yaml_mark_t - - // The stream encoding (for yaml_STREAM_START_TOKEN). - encoding yaml_encoding_t - - // The alias/anchor/scalar value or tag/tag directive handle - // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). - value []byte - - // The tag suffix (for yaml_TAG_TOKEN). - suffix []byte - - // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). - prefix []byte - - // The scalar style (for yaml_SCALAR_TOKEN). - style yaml_scalar_style_t - - // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). - major, minor int8 -} - -// Events - -type yaml_event_type_t int8 - -// Event types. -const ( - // An empty event. - yaml_NO_EVENT yaml_event_type_t = iota - - yaml_STREAM_START_EVENT // A STREAM-START event. - yaml_STREAM_END_EVENT // A STREAM-END event. - yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. - yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. - yaml_ALIAS_EVENT // An ALIAS event. - yaml_SCALAR_EVENT // A SCALAR event. - yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. - yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. - yaml_MAPPING_START_EVENT // A MAPPING-START event. - yaml_MAPPING_END_EVENT // A MAPPING-END event. -) - -var eventStrings = []string{ - yaml_NO_EVENT: "none", - yaml_STREAM_START_EVENT: "stream start", - yaml_STREAM_END_EVENT: "stream end", - yaml_DOCUMENT_START_EVENT: "document start", - yaml_DOCUMENT_END_EVENT: "document end", - yaml_ALIAS_EVENT: "alias", - yaml_SCALAR_EVENT: "scalar", - yaml_SEQUENCE_START_EVENT: "sequence start", - yaml_SEQUENCE_END_EVENT: "sequence end", - yaml_MAPPING_START_EVENT: "mapping start", - yaml_MAPPING_END_EVENT: "mapping end", -} - -func (e yaml_event_type_t) String() string { - if e < 0 || int(e) >= len(eventStrings) { - return fmt.Sprintf("unknown event %d", e) - } - return eventStrings[e] -} - -// The event structure. -type yaml_event_t struct { - - // The event type. - typ yaml_event_type_t - - // The start and end of the event. - start_mark, end_mark yaml_mark_t - - // The document encoding (for yaml_STREAM_START_EVENT). - encoding yaml_encoding_t - - // The version directive (for yaml_DOCUMENT_START_EVENT). - version_directive *yaml_version_directive_t - - // The list of tag directives (for yaml_DOCUMENT_START_EVENT). - tag_directives []yaml_tag_directive_t - - // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). - anchor []byte - - // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - tag []byte - - // The scalar value (for yaml_SCALAR_EVENT). - value []byte - - // Is the document start/end indicator implicit, or the tag optional? - // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). - implicit bool - - // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). - quoted_implicit bool - - // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - style yaml_style_t -} - -func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } -func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } -func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } - -// Nodes - -const ( - yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. - yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. - yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. - yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. - yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. - yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. - - yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. - yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. - - // Not in original libyaml. - yaml_BINARY_TAG = "tag:yaml.org,2002:binary" - yaml_MERGE_TAG = "tag:yaml.org,2002:merge" - - yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. - yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. - yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. -) - -type yaml_node_type_t int - -// Node types. -const ( - // An empty node. - yaml_NO_NODE yaml_node_type_t = iota - - yaml_SCALAR_NODE // A scalar node. - yaml_SEQUENCE_NODE // A sequence node. - yaml_MAPPING_NODE // A mapping node. -) - -// An element of a sequence node. -type yaml_node_item_t int - -// An element of a mapping node. -type yaml_node_pair_t struct { - key int // The key of the element. - value int // The value of the element. -} - -// The node structure. -type yaml_node_t struct { - typ yaml_node_type_t // The node type. - tag []byte // The node tag. - - // The node data. - - // The scalar parameters (for yaml_SCALAR_NODE). - scalar struct { - value []byte // The scalar value. - length int // The length of the scalar value. - style yaml_scalar_style_t // The scalar style. - } - - // The sequence parameters (for YAML_SEQUENCE_NODE). - sequence struct { - items_data []yaml_node_item_t // The stack of sequence items. - style yaml_sequence_style_t // The sequence style. - } - - // The mapping parameters (for yaml_MAPPING_NODE). - mapping struct { - pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). - pairs_start *yaml_node_pair_t // The beginning of the stack. - pairs_end *yaml_node_pair_t // The end of the stack. - pairs_top *yaml_node_pair_t // The top of the stack. - style yaml_mapping_style_t // The mapping style. - } - - start_mark yaml_mark_t // The beginning of the node. - end_mark yaml_mark_t // The end of the node. - -} - -// The document structure. -type yaml_document_t struct { - - // The document nodes. - nodes []yaml_node_t - - // The version directive. - version_directive *yaml_version_directive_t - - // The list of tag directives. - tag_directives_data []yaml_tag_directive_t - tag_directives_start int // The beginning of the tag directives list. - tag_directives_end int // The end of the tag directives list. - - start_implicit int // Is the document start indicator implicit? - end_implicit int // Is the document end indicator implicit? - - // The start/end of the document. - start_mark, end_mark yaml_mark_t -} - -// The prototype of a read handler. -// -// The read handler is called when the parser needs to read more bytes from the -// source. The handler should write not more than size bytes to the buffer. -// The number of written bytes should be set to the size_read variable. -// -// [in,out] data A pointer to an application data specified by -// -// yaml_parser_set_input(). -// -// [out] buffer The buffer to write the data from the source. -// [in] size The size of the buffer. -// [out] size_read The actual number of bytes read from the source. -// -// On success, the handler should return 1. If the handler failed, -// the returned value should be 0. On EOF, the handler should set the -// size_read to 0 and return 1. -type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) - -// This structure holds information about a potential simple key. -type yaml_simple_key_t struct { - possible bool // Is a simple key possible? - required bool // Is a simple key required? - token_number int // The number of the token. - mark yaml_mark_t // The position mark. -} - -// The states of the parser. -type yaml_parser_state_t int - -const ( - yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota - - yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. - yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. - yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. - yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. - yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. - yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. - yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. - yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. - yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. - yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. - yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. - yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. - yaml_PARSE_END_STATE // Expect nothing. -) - -func (ps yaml_parser_state_t) String() string { - switch ps { - case yaml_PARSE_STREAM_START_STATE: - return "yaml_PARSE_STREAM_START_STATE" - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_START_STATE: - return "yaml_PARSE_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return "yaml_PARSE_DOCUMENT_CONTENT_STATE" - case yaml_PARSE_DOCUMENT_END_STATE: - return "yaml_PARSE_DOCUMENT_END_STATE" - case yaml_PARSE_BLOCK_NODE_STATE: - return "yaml_PARSE_BLOCK_NODE_STATE" - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" - case yaml_PARSE_FLOW_NODE_STATE: - return "yaml_PARSE_FLOW_NODE_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" - case yaml_PARSE_END_STATE: - return "yaml_PARSE_END_STATE" - } - return "" -} - -// This structure holds aliases data. -type yaml_alias_data_t struct { - anchor []byte // The anchor. - index int // The node id. - mark yaml_mark_t // The anchor mark. -} - -// The parser structure. -// -// All members are internal. Manage the structure using the -// yaml_parser_ family of functions. -type yaml_parser_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - - problem string // Error description. - - // The byte about which the problem occurred. - problem_offset int - problem_value int - problem_mark yaml_mark_t - - // The error context. - context string - context_mark yaml_mark_t - - // Reader stuff - - read_handler yaml_read_handler_t // Read handler. - - input_reader io.Reader // File input data. - input []byte // String input data. - input_pos int - - eof bool // EOF flag - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - unread int // The number of unread characters in the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The input encoding. - - offset int // The offset of the current position (in bytes). - mark yaml_mark_t // The mark of the current position. - - // Scanner stuff - - stream_start_produced bool // Have we started to scan the input stream? - stream_end_produced bool // Have we reached the end of the input stream? - - flow_level int // The number of unclosed '[' and '{' indicators. - - tokens []yaml_token_t // The tokens queue. - tokens_head int // The head of the tokens queue. - tokens_parsed int // The number of tokens fetched from the queue. - token_available bool // Does the tokens queue contain a token ready for dequeueing. - - indent int // The current indentation level. - indents []int // The indentation levels stack. - - simple_key_allowed bool // May a simple key occur at the current position? - simple_keys []yaml_simple_key_t // The stack of simple keys. - simple_keys_by_tok map[int]int // possible simple_key indexes indexed by token_number - - // Parser stuff - - state yaml_parser_state_t // The current parser state. - states []yaml_parser_state_t // The parser states stack. - marks []yaml_mark_t // The stack of marks. - tag_directives []yaml_tag_directive_t // The list of TAG directives. - - // Dumper stuff - - aliases []yaml_alias_data_t // The alias data. - - document *yaml_document_t // The currently parsed document. -} - -// Emitter Definitions - -// The prototype of a write handler. -// -// The write handler is called when the emitter needs to flush the accumulated -// characters to the output. The handler should write @a size bytes of the -// @a buffer to the output. -// -// @param[in,out] data A pointer to an application data specified by -// -// yaml_emitter_set_output(). -// -// @param[in] buffer The buffer with bytes to be written. -// @param[in] size The size of the buffer. -// -// @returns On success, the handler should return @c 1. If the handler failed, -// the returned value should be @c 0. -type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error - -type yaml_emitter_state_t int - -// The emitter states. -const ( - // Expect STREAM-START. - yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota - - yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. - yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. - yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. - yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. - yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. - yaml_EMIT_END_STATE // Expect nothing. -) - -// The emitter structure. -// -// All members are internal. Manage the structure using the @c yaml_emitter_ -// family of functions. -type yaml_emitter_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - problem string // Error description. - - // Writer stuff - - write_handler yaml_write_handler_t // Write handler. - - output_buffer *[]byte // String output data. - output_writer io.Writer // File output data. - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The stream encoding. - - // Emitter stuff - - canonical bool // If the output is in the canonical style? - best_indent int // The number of indentation spaces. - best_width int // The preferred width of the output lines. - unicode bool // Allow unescaped non-ASCII characters? - line_break yaml_break_t // The preferred line break. - - state yaml_emitter_state_t // The current emitter state. - states []yaml_emitter_state_t // The stack of states. - - events []yaml_event_t // The event queue. - events_head int // The head of the event queue. - - indents []int // The stack of indentation levels. - - tag_directives []yaml_tag_directive_t // The list of tag directives. - - indent int // The current indentation level. - - flow_level int // The current flow level. - - root_context bool // Is it the document root context? - sequence_context bool // Is it a sequence context? - mapping_context bool // Is it a mapping context? - simple_key_context bool // Is it a simple mapping key context? - - line int // The current line. - column int // The current column. - whitespace bool // If the last character was a whitespace? - indention bool // If the last character was an indentation character (' ', '-', '?', ':')? - open_ended bool // If an explicit document end is required? - - // Anchor analysis. - anchor_data struct { - anchor []byte // The anchor value. - alias bool // Is it an alias? - } - - // Tag analysis. - tag_data struct { - handle []byte // The tag handle. - suffix []byte // The tag suffix. - } - - // Scalar analysis. - scalar_data struct { - value []byte // The scalar value. - multiline bool // Does the scalar contain line breaks? - flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? - block_plain_allowed bool // Can the scalar be expressed in the block plain style? - single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? - block_allowed bool // Can the scalar be expressed in the literal or folded styles? - style yaml_scalar_style_t // The output style. - } - - // Dumper stuff - - opened bool // If the stream was already opened? - closed bool // If the stream was already closed? - - // The information associated with the document nodes. - anchors *struct { - references int // The number of references. - anchor int // The anchor id. - serialized bool // If the node has been emitted? - } - - last_anchor_id int // The last assigned anchor id. - - document *yaml_document_t // The currently emitted document. -} diff --git a/backend/vendor/gopkg.in/yaml.v2/yamlprivateh.go b/backend/vendor/gopkg.in/yaml.v2/yamlprivateh.go deleted file mode 100644 index 8110ce3c..00000000 --- a/backend/vendor/gopkg.in/yaml.v2/yamlprivateh.go +++ /dev/null @@ -1,173 +0,0 @@ -package yaml - -const ( - // The size of the input raw buffer. - input_raw_buffer_size = 512 - - // The size of the input buffer. - // It should be possible to decode the whole raw buffer. - input_buffer_size = input_raw_buffer_size * 3 - - // The size of the output buffer. - output_buffer_size = 128 - - // The size of the output raw buffer. - // It should be possible to encode the whole output buffer. - output_raw_buffer_size = (output_buffer_size*2 + 2) - - // The size of other stacks and queues. - initial_stack_size = 16 - initial_queue_size = 16 - initial_string_size = 16 -) - -// Check if the character at the specified position is an alphabetical -// character, a digit, '_', or '-'. -func is_alpha(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' -} - -// Check if the character at the specified position is a digit. -func is_digit(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' -} - -// Get the value of a digit. -func as_digit(b []byte, i int) int { - return int(b[i]) - '0' -} - -// Check if the character at the specified position is a hex-digit. -func is_hex(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' -} - -// Get the value of a hex-digit. -func as_hex(b []byte, i int) int { - bi := b[i] - if bi >= 'A' && bi <= 'F' { - return int(bi) - 'A' + 10 - } - if bi >= 'a' && bi <= 'f' { - return int(bi) - 'a' + 10 - } - return int(bi) - '0' -} - -// Check if the character is ASCII. -func is_ascii(b []byte, i int) bool { - return b[i] <= 0x7F -} - -// Check if the character at the start of the buffer can be printed unescaped. -func is_printable(b []byte, i int) bool { - return ((b[i] == 0x0A) || // . == #x0A - (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E - (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF - (b[i] > 0xC2 && b[i] < 0xED) || - (b[i] == 0xED && b[i+1] < 0xA0) || - (b[i] == 0xEE) || - (b[i] == 0xEF && // #xE000 <= . <= #xFFFD - !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF - !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) -} - -// Check if the character at the specified position is NUL. -func is_z(b []byte, i int) bool { - return b[i] == 0x00 -} - -// Check if the beginning of the buffer is a BOM. -func is_bom(b []byte, i int) bool { - return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF -} - -// Check if the character at the specified position is space. -func is_space(b []byte, i int) bool { - return b[i] == ' ' -} - -// Check if the character at the specified position is tab. -func is_tab(b []byte, i int) bool { - return b[i] == '\t' -} - -// Check if the character at the specified position is blank (space or tab). -func is_blank(b []byte, i int) bool { - //return is_space(b, i) || is_tab(b, i) - return b[i] == ' ' || b[i] == '\t' -} - -// Check if the character at the specified position is a line break. -func is_break(b []byte, i int) bool { - return (b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) -} - -func is_crlf(b []byte, i int) bool { - return b[i] == '\r' && b[i+1] == '\n' -} - -// Check if the character is a line break or NUL. -func is_breakz(b []byte, i int) bool { - //return is_break(b, i) || is_z(b, i) - return ( // is_break: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - // is_z: - b[i] == 0) -} - -// Check if the character is a line break, space, or NUL. -func is_spacez(b []byte, i int) bool { - //return is_space(b, i) || is_breakz(b, i) - return ( // is_space: - b[i] == ' ' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Check if the character is a line break, space, tab, or NUL. -func is_blankz(b []byte, i int) bool { - //return is_blank(b, i) || is_breakz(b, i) - return ( // is_blank: - b[i] == ' ' || b[i] == '\t' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Determine the width of the character. -func width(b byte) int { - // Don't replace these by a switch without first - // confirming that it is being inlined. - if b&0x80 == 0x00 { - return 1 - } - if b&0xE0 == 0xC0 { - return 2 - } - if b&0xF0 == 0xE0 { - return 3 - } - if b&0xF8 == 0xF0 { - return 4 - } - return 0 - -} diff --git a/backend/vendor/gopkg.in/yaml.v3/LICENSE b/backend/vendor/gopkg.in/yaml.v3/LICENSE deleted file mode 100644 index 2683e4bb..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/LICENSE +++ /dev/null @@ -1,50 +0,0 @@ - -This project is covered by two different licenses: MIT and Apache. - -#### MIT License #### - -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original MIT license, with the additional -copyright staring in 2011 when the project was ported over: - - apic.go emitterc.go parserc.go readerc.go scannerc.go - writerc.go yamlh.go yamlprivateh.go - -Copyright (c) 2006-2010 Kirill Simonov -Copyright (c) 2006-2011 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -### Apache License ### - -All the remaining project files are covered by the Apache license: - -Copyright (c) 2011-2019 Canonical Ltd - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/backend/vendor/gopkg.in/yaml.v3/NOTICE b/backend/vendor/gopkg.in/yaml.v3/NOTICE deleted file mode 100644 index 866d74a7..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2011-2016 Canonical Ltd. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/backend/vendor/gopkg.in/yaml.v3/README.md b/backend/vendor/gopkg.in/yaml.v3/README.md deleted file mode 100644 index 08eb1bab..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# YAML support for the Go language - -Introduction ------------- - -The yaml package enables Go programs to comfortably encode and decode YAML -values. It was developed within [Canonical](https://www.canonical.com) as -part of the [juju](https://juju.ubuntu.com) project, and is based on a -pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) -C library to parse and generate YAML data quickly and reliably. - -Compatibility -------------- - -The yaml package supports most of YAML 1.2, but preserves some behavior -from 1.1 for backwards compatibility. - -Specifically, as of v3 of the yaml package: - - - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being - decoded into a typed bool value. Otherwise they behave as a string. Booleans - in YAML 1.2 are _true/false_ only. - - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_ - as specified in YAML 1.2, because most parsers still use the old format. - Octals in the _0o777_ format are supported though, so new files work. - - Does not support base-60 floats. These are gone from YAML 1.2, and were - actually never supported by this package as it's clearly a poor choice. - -and offers backwards -compatibility with YAML 1.1 in some cases. -1.2, including support for -anchors, tags, map merging, etc. Multi-document unmarshalling is not yet -implemented, and base-60 floats from YAML 1.1 are purposefully not -supported since they're a poor design and are gone in YAML 1.2. - -Installation and usage ----------------------- - -The import path for the package is *gopkg.in/yaml.v3*. - -To install it, run: - - go get gopkg.in/yaml.v3 - -API documentation ------------------ - -If opened in a browser, the import path itself leads to the API documentation: - - - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3) - -API stability -------------- - -The package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in). - - -License -------- - -The yaml package is licensed under the MIT and Apache License 2.0 licenses. -Please see the LICENSE file for details. - - -Example -------- - -```Go -package main - -import ( - "fmt" - "log" - - "gopkg.in/yaml.v3" -) - -var data = ` -a: Easy! -b: - c: 2 - d: [3, 4] -` - -// Note: struct fields must be public in order for unmarshal to -// correctly populate the data. -type T struct { - A string - B struct { - RenamedC int `yaml:"c"` - D []int `yaml:",flow"` - } -} - -func main() { - t := T{} - - err := yaml.Unmarshal([]byte(data), &t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t:\n%v\n\n", t) - - d, err := yaml.Marshal(&t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t dump:\n%s\n\n", string(d)) - - m := make(map[interface{}]interface{}) - - err = yaml.Unmarshal([]byte(data), &m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m:\n%v\n\n", m) - - d, err = yaml.Marshal(&m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m dump:\n%s\n\n", string(d)) -} -``` - -This example will generate the following output: - -``` ---- t: -{Easy! {2 [3 4]}} - ---- t dump: -a: Easy! -b: - c: 2 - d: [3, 4] - - ---- m: -map[a:Easy! b:map[c:2 d:[3 4]]] - ---- m dump: -a: Easy! -b: - c: 2 - d: - - 3 - - 4 -``` - diff --git a/backend/vendor/gopkg.in/yaml.v3/apic.go b/backend/vendor/gopkg.in/yaml.v3/apic.go deleted file mode 100644 index 05fd305d..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/apic.go +++ /dev/null @@ -1,747 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "io" -) - -func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { - //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) - - // Check if we can move the queue at the beginning of the buffer. - if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { - if parser.tokens_head != len(parser.tokens) { - copy(parser.tokens, parser.tokens[parser.tokens_head:]) - } - parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] - parser.tokens_head = 0 - } - parser.tokens = append(parser.tokens, *token) - if pos < 0 { - return - } - copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) - parser.tokens[parser.tokens_head+pos] = *token -} - -// Create a new parser object. -func yaml_parser_initialize(parser *yaml_parser_t) bool { - *parser = yaml_parser_t{ - raw_buffer: make([]byte, 0, input_raw_buffer_size), - buffer: make([]byte, 0, input_buffer_size), - } - return true -} - -// Destroy a parser object. -func yaml_parser_delete(parser *yaml_parser_t) { - *parser = yaml_parser_t{} -} - -// String read handler. -func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - if parser.input_pos == len(parser.input) { - return 0, io.EOF - } - n = copy(buffer, parser.input[parser.input_pos:]) - parser.input_pos += n - return n, nil -} - -// Reader read handler. -func yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - return parser.input_reader.Read(buffer) -} - -// Set a string input. -func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_string_read_handler - parser.input = input - parser.input_pos = 0 -} - -// Set a file input. -func yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_reader_read_handler - parser.input_reader = r -} - -// Set the source encoding. -func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { - if parser.encoding != yaml_ANY_ENCODING { - panic("must set the encoding only once") - } - parser.encoding = encoding -} - -// Create a new emitter object. -func yaml_emitter_initialize(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{ - buffer: make([]byte, output_buffer_size), - raw_buffer: make([]byte, 0, output_raw_buffer_size), - states: make([]yaml_emitter_state_t, 0, initial_stack_size), - events: make([]yaml_event_t, 0, initial_queue_size), - best_width: -1, - } -} - -// Destroy an emitter object. -func yaml_emitter_delete(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{} -} - -// String write handler. -func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - *emitter.output_buffer = append(*emitter.output_buffer, buffer...) - return nil -} - -// yaml_writer_write_handler uses emitter.output_writer to write the -// emitted text. -func yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - _, err := emitter.output_writer.Write(buffer) - return err -} - -// Set a string output. -func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_string_write_handler - emitter.output_buffer = output_buffer -} - -// Set a file output. -func yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_writer_write_handler - emitter.output_writer = w -} - -// Set the output encoding. -func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { - if emitter.encoding != yaml_ANY_ENCODING { - panic("must set the output encoding only once") - } - emitter.encoding = encoding -} - -// Set the canonical output style. -func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { - emitter.canonical = canonical -} - -// Set the indentation increment. -func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { - if indent < 2 || indent > 9 { - indent = 2 - } - emitter.best_indent = indent -} - -// Set the preferred line width. -func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { - if width < 0 { - width = -1 - } - emitter.best_width = width -} - -// Set if unescaped non-ASCII characters are allowed. -func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { - emitter.unicode = unicode -} - -// Set the preferred line break character. -func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { - emitter.line_break = line_break -} - -///* -// * Destroy a token object. -// */ -// -//YAML_DECLARE(void) -//yaml_token_delete(yaml_token_t *token) -//{ -// assert(token); // Non-NULL token object expected. -// -// switch (token.type) -// { -// case YAML_TAG_DIRECTIVE_TOKEN: -// yaml_free(token.data.tag_directive.handle); -// yaml_free(token.data.tag_directive.prefix); -// break; -// -// case YAML_ALIAS_TOKEN: -// yaml_free(token.data.alias.value); -// break; -// -// case YAML_ANCHOR_TOKEN: -// yaml_free(token.data.anchor.value); -// break; -// -// case YAML_TAG_TOKEN: -// yaml_free(token.data.tag.handle); -// yaml_free(token.data.tag.suffix); -// break; -// -// case YAML_SCALAR_TOKEN: -// yaml_free(token.data.scalar.value); -// break; -// -// default: -// break; -// } -// -// memset(token, 0, sizeof(yaml_token_t)); -//} -// -///* -// * Check if a string is a valid UTF-8 sequence. -// * -// * Check 'reader.c' for more details on UTF-8 encoding. -// */ -// -//static int -//yaml_check_utf8(yaml_char_t *start, size_t length) -//{ -// yaml_char_t *end = start+length; -// yaml_char_t *pointer = start; -// -// while (pointer < end) { -// unsigned char octet; -// unsigned int width; -// unsigned int value; -// size_t k; -// -// octet = pointer[0]; -// width = (octet & 0x80) == 0x00 ? 1 : -// (octet & 0xE0) == 0xC0 ? 2 : -// (octet & 0xF0) == 0xE0 ? 3 : -// (octet & 0xF8) == 0xF0 ? 4 : 0; -// value = (octet & 0x80) == 0x00 ? octet & 0x7F : -// (octet & 0xE0) == 0xC0 ? octet & 0x1F : -// (octet & 0xF0) == 0xE0 ? octet & 0x0F : -// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; -// if (!width) return 0; -// if (pointer+width > end) return 0; -// for (k = 1; k < width; k ++) { -// octet = pointer[k]; -// if ((octet & 0xC0) != 0x80) return 0; -// value = (value << 6) + (octet & 0x3F); -// } -// if (!((width == 1) || -// (width == 2 && value >= 0x80) || -// (width == 3 && value >= 0x800) || -// (width == 4 && value >= 0x10000))) return 0; -// -// pointer += width; -// } -// -// return 1; -//} -// - -// Create STREAM-START. -func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - encoding: encoding, - } -} - -// Create STREAM-END. -func yaml_stream_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - } -} - -// Create DOCUMENT-START. -func yaml_document_start_event_initialize( - event *yaml_event_t, - version_directive *yaml_version_directive_t, - tag_directives []yaml_tag_directive_t, - implicit bool, -) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: implicit, - } -} - -// Create DOCUMENT-END. -func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - implicit: implicit, - } -} - -// Create ALIAS. -func yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool { - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - anchor: anchor, - } - return true -} - -// Create SCALAR. -func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - anchor: anchor, - tag: tag, - value: value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-START. -func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-END. -func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - } - return true -} - -// Create MAPPING-START. -func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } -} - -// Create MAPPING-END. -func yaml_mapping_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - } -} - -// Destroy an event object. -func yaml_event_delete(event *yaml_event_t) { - *event = yaml_event_t{} -} - -///* -// * Create a document object. -// */ -// -//YAML_DECLARE(int) -//yaml_document_initialize(document *yaml_document_t, -// version_directive *yaml_version_directive_t, -// tag_directives_start *yaml_tag_directive_t, -// tag_directives_end *yaml_tag_directive_t, -// start_implicit int, end_implicit int) -//{ -// struct { -// error yaml_error_type_t -// } context -// struct { -// start *yaml_node_t -// end *yaml_node_t -// top *yaml_node_t -// } nodes = { NULL, NULL, NULL } -// version_directive_copy *yaml_version_directive_t = NULL -// struct { -// start *yaml_tag_directive_t -// end *yaml_tag_directive_t -// top *yaml_tag_directive_t -// } tag_directives_copy = { NULL, NULL, NULL } -// value yaml_tag_directive_t = { NULL, NULL } -// mark yaml_mark_t = { 0, 0, 0 } -// -// assert(document) // Non-NULL document object is expected. -// assert((tag_directives_start && tag_directives_end) || -// (tag_directives_start == tag_directives_end)) -// // Valid tag directives are expected. -// -// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error -// -// if (version_directive) { -// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) -// if (!version_directive_copy) goto error -// version_directive_copy.major = version_directive.major -// version_directive_copy.minor = version_directive.minor -// } -// -// if (tag_directives_start != tag_directives_end) { -// tag_directive *yaml_tag_directive_t -// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) -// goto error -// for (tag_directive = tag_directives_start -// tag_directive != tag_directives_end; tag_directive ++) { -// assert(tag_directive.handle) -// assert(tag_directive.prefix) -// if (!yaml_check_utf8(tag_directive.handle, -// strlen((char *)tag_directive.handle))) -// goto error -// if (!yaml_check_utf8(tag_directive.prefix, -// strlen((char *)tag_directive.prefix))) -// goto error -// value.handle = yaml_strdup(tag_directive.handle) -// value.prefix = yaml_strdup(tag_directive.prefix) -// if (!value.handle || !value.prefix) goto error -// if (!PUSH(&context, tag_directives_copy, value)) -// goto error -// value.handle = NULL -// value.prefix = NULL -// } -// } -// -// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, -// tag_directives_copy.start, tag_directives_copy.top, -// start_implicit, end_implicit, mark, mark) -// -// return 1 -// -//error: -// STACK_DEL(&context, nodes) -// yaml_free(version_directive_copy) -// while (!STACK_EMPTY(&context, tag_directives_copy)) { -// value yaml_tag_directive_t = POP(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// } -// STACK_DEL(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// -// return 0 -//} -// -///* -// * Destroy a document object. -// */ -// -//YAML_DECLARE(void) -//yaml_document_delete(document *yaml_document_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// tag_directive *yaml_tag_directive_t -// -// context.error = YAML_NO_ERROR // Eliminate a compiler warning. -// -// assert(document) // Non-NULL document object is expected. -// -// while (!STACK_EMPTY(&context, document.nodes)) { -// node yaml_node_t = POP(&context, document.nodes) -// yaml_free(node.tag) -// switch (node.type) { -// case YAML_SCALAR_NODE: -// yaml_free(node.data.scalar.value) -// break -// case YAML_SEQUENCE_NODE: -// STACK_DEL(&context, node.data.sequence.items) -// break -// case YAML_MAPPING_NODE: -// STACK_DEL(&context, node.data.mapping.pairs) -// break -// default: -// assert(0) // Should not happen. -// } -// } -// STACK_DEL(&context, document.nodes) -// -// yaml_free(document.version_directive) -// for (tag_directive = document.tag_directives.start -// tag_directive != document.tag_directives.end -// tag_directive++) { -// yaml_free(tag_directive.handle) -// yaml_free(tag_directive.prefix) -// } -// yaml_free(document.tag_directives.start) -// -// memset(document, 0, sizeof(yaml_document_t)) -//} -// -///** -// * Get a document node. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_node(document *yaml_document_t, index int) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (index > 0 && document.nodes.start + index <= document.nodes.top) { -// return document.nodes.start + index - 1 -// } -// return NULL -//} -// -///** -// * Get the root object. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_root_node(document *yaml_document_t) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (document.nodes.top != document.nodes.start) { -// return document.nodes.start -// } -// return NULL -//} -// -///* -// * Add a scalar node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_scalar(document *yaml_document_t, -// tag *yaml_char_t, value *yaml_char_t, length int, -// style yaml_scalar_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// value_copy *yaml_char_t = NULL -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// assert(value) // Non-NULL value is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (length < 0) { -// length = strlen((char *)value) -// } -// -// if (!yaml_check_utf8(value, length)) goto error -// value_copy = yaml_malloc(length+1) -// if (!value_copy) goto error -// memcpy(value_copy, value, length) -// value_copy[length] = '\0' -// -// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// yaml_free(tag_copy) -// yaml_free(value_copy) -// -// return 0 -//} -// -///* -// * Add a sequence node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_sequence(document *yaml_document_t, -// tag *yaml_char_t, style yaml_sequence_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_item_t -// end *yaml_node_item_t -// top *yaml_node_item_t -// } items = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error -// -// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, items) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Add a mapping node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_mapping(document *yaml_document_t, -// tag *yaml_char_t, style yaml_mapping_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_pair_t -// end *yaml_node_pair_t -// top *yaml_node_pair_t -// } pairs = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error -// -// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, pairs) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Append an item to a sequence node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_sequence_item(document *yaml_document_t, -// sequence int, item int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// assert(document) // Non-NULL document is required. -// assert(sequence > 0 -// && document.nodes.start + sequence <= document.nodes.top) -// // Valid sequence id is required. -// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) -// // A sequence node is required. -// assert(item > 0 && document.nodes.start + item <= document.nodes.top) -// // Valid item id is required. -// -// if (!PUSH(&context, -// document.nodes.start[sequence-1].data.sequence.items, item)) -// return 0 -// -// return 1 -//} -// -///* -// * Append a pair of a key and a value to a mapping node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_mapping_pair(document *yaml_document_t, -// mapping int, key int, value int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// pair yaml_node_pair_t -// -// assert(document) // Non-NULL document is required. -// assert(mapping > 0 -// && document.nodes.start + mapping <= document.nodes.top) -// // Valid mapping id is required. -// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) -// // A mapping node is required. -// assert(key > 0 && document.nodes.start + key <= document.nodes.top) -// // Valid key id is required. -// assert(value > 0 && document.nodes.start + value <= document.nodes.top) -// // Valid value id is required. -// -// pair.key = key -// pair.value = value -// -// if (!PUSH(&context, -// document.nodes.start[mapping-1].data.mapping.pairs, pair)) -// return 0 -// -// return 1 -//} -// -// diff --git a/backend/vendor/gopkg.in/yaml.v3/decode.go b/backend/vendor/gopkg.in/yaml.v3/decode.go deleted file mode 100644 index 0173b698..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/decode.go +++ /dev/null @@ -1,1000 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "io" - "math" - "reflect" - "strconv" - "time" -) - -// ---------------------------------------------------------------------------- -// Parser, produces a node tree out of a libyaml event stream. - -type parser struct { - parser yaml_parser_t - event yaml_event_t - doc *Node - anchors map[string]*Node - doneInit bool - textless bool -} - -func newParser(b []byte) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - if len(b) == 0 { - b = []byte{'\n'} - } - yaml_parser_set_input_string(&p.parser, b) - return &p -} - -func newParserFromReader(r io.Reader) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - yaml_parser_set_input_reader(&p.parser, r) - return &p -} - -func (p *parser) init() { - if p.doneInit { - return - } - p.anchors = make(map[string]*Node) - p.expect(yaml_STREAM_START_EVENT) - p.doneInit = true -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -// expect consumes an event from the event stream and -// checks that it's of the expected type. -func (p *parser) expect(e yaml_event_type_t) { - if p.event.typ == yaml_NO_EVENT { - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - } - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - if p.event.typ != e { - p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) - p.fail() - } - yaml_event_delete(&p.event) - p.event.typ = yaml_NO_EVENT -} - -// peek peeks at the next event in the event stream, -// puts the results into p.event and returns the event type. -func (p *parser) peek() yaml_event_type_t { - if p.event.typ != yaml_NO_EVENT { - return p.event.typ - } - // It's curious choice from the underlying API to generally return a - // positive result on success, but on this case return true in an error - // scenario. This was the source of bugs in the past (issue #666). - if !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR { - p.fail() - } - return p.event.typ -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.context_mark.line != 0 { - line = p.parser.context_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } else if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } - if line != 0 { - where = "line " + strconv.Itoa(line) + ": " - } - var msg string - if len(p.parser.problem) > 0 { - msg = p.parser.problem - } else { - msg = "unknown problem parsing YAML content" - } - failf("%s%s", where, msg) -} - -func (p *parser) anchor(n *Node, anchor []byte) { - if anchor != nil { - n.Anchor = string(anchor) - p.anchors[n.Anchor] = n - } -} - -func (p *parser) parse() *Node { - p.init() - switch p.peek() { - case yaml_SCALAR_EVENT: - return p.scalar() - case yaml_ALIAS_EVENT: - return p.alias() - case yaml_MAPPING_START_EVENT: - return p.mapping() - case yaml_SEQUENCE_START_EVENT: - return p.sequence() - case yaml_DOCUMENT_START_EVENT: - return p.document() - case yaml_STREAM_END_EVENT: - // Happens when attempting to decode an empty buffer. - return nil - case yaml_TAIL_COMMENT_EVENT: - panic("internal error: unexpected tail comment event (please report)") - default: - panic("internal error: attempted to parse unknown event (please report): " + p.event.typ.String()) - } -} - -func (p *parser) node(kind Kind, defaultTag, tag, value string) *Node { - var style Style - if tag != "" && tag != "!" { - tag = shortTag(tag) - style = TaggedStyle - } else if defaultTag != "" { - tag = defaultTag - } else if kind == ScalarNode { - tag, _ = resolve("", value) - } - n := &Node{ - Kind: kind, - Tag: tag, - Value: value, - Style: style, - } - if !p.textless { - n.Line = p.event.start_mark.line + 1 - n.Column = p.event.start_mark.column + 1 - n.HeadComment = string(p.event.head_comment) - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - } - return n -} - -func (p *parser) parseChild(parent *Node) *Node { - child := p.parse() - parent.Content = append(parent.Content, child) - return child -} - -func (p *parser) document() *Node { - n := p.node(DocumentNode, "", "", "") - p.doc = n - p.expect(yaml_DOCUMENT_START_EVENT) - p.parseChild(n) - if p.peek() == yaml_DOCUMENT_END_EVENT { - n.FootComment = string(p.event.foot_comment) - } - p.expect(yaml_DOCUMENT_END_EVENT) - return n -} - -func (p *parser) alias() *Node { - n := p.node(AliasNode, "", "", string(p.event.anchor)) - n.Alias = p.anchors[n.Value] - if n.Alias == nil { - failf("unknown anchor '%s' referenced", n.Value) - } - p.expect(yaml_ALIAS_EVENT) - return n -} - -func (p *parser) scalar() *Node { - var parsedStyle = p.event.scalar_style() - var nodeStyle Style - switch { - case parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0: - nodeStyle = DoubleQuotedStyle - case parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0: - nodeStyle = SingleQuotedStyle - case parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0: - nodeStyle = LiteralStyle - case parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0: - nodeStyle = FoldedStyle - } - var nodeValue = string(p.event.value) - var nodeTag = string(p.event.tag) - var defaultTag string - if nodeStyle == 0 { - if nodeValue == "<<" { - defaultTag = mergeTag - } - } else { - defaultTag = strTag - } - n := p.node(ScalarNode, defaultTag, nodeTag, nodeValue) - n.Style |= nodeStyle - p.anchor(n, p.event.anchor) - p.expect(yaml_SCALAR_EVENT) - return n -} - -func (p *parser) sequence() *Node { - n := p.node(SequenceNode, seqTag, string(p.event.tag), "") - if p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 { - n.Style |= FlowStyle - } - p.anchor(n, p.event.anchor) - p.expect(yaml_SEQUENCE_START_EVENT) - for p.peek() != yaml_SEQUENCE_END_EVENT { - p.parseChild(n) - } - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - p.expect(yaml_SEQUENCE_END_EVENT) - return n -} - -func (p *parser) mapping() *Node { - n := p.node(MappingNode, mapTag, string(p.event.tag), "") - block := true - if p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 { - block = false - n.Style |= FlowStyle - } - p.anchor(n, p.event.anchor) - p.expect(yaml_MAPPING_START_EVENT) - for p.peek() != yaml_MAPPING_END_EVENT { - k := p.parseChild(n) - if block && k.FootComment != "" { - // Must be a foot comment for the prior value when being dedented. - if len(n.Content) > 2 { - n.Content[len(n.Content)-3].FootComment = k.FootComment - k.FootComment = "" - } - } - v := p.parseChild(n) - if k.FootComment == "" && v.FootComment != "" { - k.FootComment = v.FootComment - v.FootComment = "" - } - if p.peek() == yaml_TAIL_COMMENT_EVENT { - if k.FootComment == "" { - k.FootComment = string(p.event.foot_comment) - } - p.expect(yaml_TAIL_COMMENT_EVENT) - } - } - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - if n.Style&FlowStyle == 0 && n.FootComment != "" && len(n.Content) > 1 { - n.Content[len(n.Content)-2].FootComment = n.FootComment - n.FootComment = "" - } - p.expect(yaml_MAPPING_END_EVENT) - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *Node - aliases map[*Node]bool - terrors []string - - stringMapType reflect.Type - generalMapType reflect.Type - - knownFields bool - uniqueKeys bool - decodeCount int - aliasCount int - aliasDepth int - - mergedFields map[interface{}]bool -} - -var ( - nodeType = reflect.TypeOf(Node{}) - durationType = reflect.TypeOf(time.Duration(0)) - stringMapType = reflect.TypeOf(map[string]interface{}{}) - generalMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = generalMapType.Elem() - timeType = reflect.TypeOf(time.Time{}) - ptrTimeType = reflect.TypeOf(&time.Time{}) -) - -func newDecoder() *decoder { - d := &decoder{ - stringMapType: stringMapType, - generalMapType: generalMapType, - uniqueKeys: true, - } - d.aliases = make(map[*Node]bool) - return d -} - -func (d *decoder) terror(n *Node, tag string, out reflect.Value) { - if n.Tag != "" { - tag = n.Tag - } - value := n.Value - if tag != seqTag && tag != mapTag { - if len(value) > 10 { - value = " `" + value[:7] + "...`" - } else { - value = " `" + value + "`" - } - } - d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.Line, shortTag(tag), value, out.Type())) -} - -func (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) { - err := u.UnmarshalYAML(n) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) { - terrlen := len(d.terrors) - err := u.UnmarshalYAML(func(v interface{}) (err error) { - defer handleErr(&err) - d.unmarshal(n, reflect.ValueOf(v)) - if len(d.terrors) > terrlen { - issues := d.terrors[terrlen:] - d.terrors = d.terrors[:terrlen] - return &TypeError{issues} - } - return nil - }) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -// d.prepare initializes and dereferences pointers and calls UnmarshalYAML -// if a value is found to implement it. -// It returns the initialized and dereferenced out value, whether -// unmarshalling was already done by UnmarshalYAML, and if so whether -// its types unmarshalled appropriately. -// -// If n holds a null value, prepare returns before doing anything. -func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.ShortTag() == nullTag { - return out, false, false - } - again := true - for again { - again = false - if out.Kind() == reflect.Ptr { - if out.IsNil() { - out.Set(reflect.New(out.Type().Elem())) - } - out = out.Elem() - again = true - } - if out.CanAddr() { - outi := out.Addr().Interface() - if u, ok := outi.(Unmarshaler); ok { - good = d.callUnmarshaler(n, u) - return out, true, good - } - if u, ok := outi.(obsoleteUnmarshaler); ok { - good = d.callObsoleteUnmarshaler(n, u) - return out, true, good - } - } - } - return out, false, false -} - -func (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) { - if n.ShortTag() == nullTag { - return reflect.Value{} - } - for _, num := range index { - for { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - continue - } - break - } - v = v.Field(num) - } - return v -} - -const ( - // 400,000 decode operations is ~500kb of dense object declarations, or - // ~5kb of dense object declarations with 10000% alias expansion - alias_ratio_range_low = 400000 - - // 4,000,000 decode operations is ~5MB of dense object declarations, or - // ~4.5MB of dense object declarations with 10% alias expansion - alias_ratio_range_high = 4000000 - - // alias_ratio_range is the range over which we scale allowed alias ratios - alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) -) - -func allowedAliasRatio(decodeCount int) float64 { - switch { - case decodeCount <= alias_ratio_range_low: - // allow 99% to come from alias expansion for small-to-medium documents - return 0.99 - case decodeCount >= alias_ratio_range_high: - // allow 10% to come from alias expansion for very large documents - return 0.10 - default: - // scale smoothly from 99% down to 10% over the range. - // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. - // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). - return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) - } -} - -func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) { - d.decodeCount++ - if d.aliasDepth > 0 { - d.aliasCount++ - } - if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { - failf("document contains excessive aliasing") - } - if out.Type() == nodeType { - out.Set(reflect.ValueOf(n).Elem()) - return true - } - switch n.Kind { - case DocumentNode: - return d.document(n, out) - case AliasNode: - return d.alias(n, out) - } - out, unmarshaled, good := d.prepare(n, out) - if unmarshaled { - return good - } - switch n.Kind { - case ScalarNode: - good = d.scalar(n, out) - case MappingNode: - good = d.mapping(n, out) - case SequenceNode: - good = d.sequence(n, out) - case 0: - if n.IsZero() { - return d.null(out) - } - fallthrough - default: - failf("cannot decode node with unknown kind %d", n.Kind) - } - return good -} - -func (d *decoder) document(n *Node, out reflect.Value) (good bool) { - if len(n.Content) == 1 { - d.doc = n - d.unmarshal(n.Content[0], out) - return true - } - return false -} - -func (d *decoder) alias(n *Node, out reflect.Value) (good bool) { - if d.aliases[n] { - // TODO this could actually be allowed in some circumstances. - failf("anchor '%s' value contains itself", n.Value) - } - d.aliases[n] = true - d.aliasDepth++ - good = d.unmarshal(n.Alias, out) - d.aliasDepth-- - delete(d.aliases, n) - return good -} - -var zeroValue reflect.Value - -func resetMap(out reflect.Value) { - for _, k := range out.MapKeys() { - out.SetMapIndex(k, zeroValue) - } -} - -func (d *decoder) null(out reflect.Value) bool { - if out.CanAddr() { - switch out.Kind() { - case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: - out.Set(reflect.Zero(out.Type())) - return true - } - } - return false -} - -func (d *decoder) scalar(n *Node, out reflect.Value) bool { - var tag string - var resolved interface{} - if n.indicatedString() { - tag = strTag - resolved = n.Value - } else { - tag, resolved = resolve(n.Tag, n.Value) - if tag == binaryTag { - data, err := base64.StdEncoding.DecodeString(resolved.(string)) - if err != nil { - failf("!!binary value contains invalid base64 data") - } - resolved = string(data) - } - } - if resolved == nil { - return d.null(out) - } - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - // We've resolved to exactly the type we want, so use that. - out.Set(resolvedv) - return true - } - // Perhaps we can use the value as a TextUnmarshaler to - // set its value. - if out.CanAddr() { - u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) - if ok { - var text []byte - if tag == binaryTag { - text = []byte(resolved.(string)) - } else { - // We let any value be unmarshaled into TextUnmarshaler. - // That might be more lax than we'd like, but the - // TextUnmarshaler itself should bowl out any dubious values. - text = []byte(n.Value) - } - err := u.UnmarshalText(text) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == binaryTag { - out.SetString(resolved.(string)) - return true - } - out.SetString(n.Value) - return true - case reflect.Interface: - out.Set(reflect.ValueOf(resolved)) - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - // This used to work in v2, but it's very unfriendly. - isDuration := out.Type() == durationType - - switch resolved := resolved.(type) { - case int: - if !isDuration && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case int64: - if !isDuration && !out.OverflowInt(resolved) { - out.SetInt(resolved) - return true - } - case uint64: - if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case float64: - if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - return true - } - } - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch resolved := resolved.(type) { - case int: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - return true - case string: - // This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html). - // It only works if explicitly attempting to unmarshal into a typed bool value. - switch resolved { - case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON": - out.SetBool(true) - return true - case "n", "N", "no", "No", "NO", "off", "Off", "OFF": - out.SetBool(false) - return true - } - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - return true - case int64: - out.SetFloat(float64(resolved)) - return true - case uint64: - out.SetFloat(float64(resolved)) - return true - case float64: - out.SetFloat(resolved) - return true - } - case reflect.Struct: - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - out.Set(resolvedv) - return true - } - case reflect.Ptr: - panic("yaml internal error: please report the issue") - } - d.terror(n, tag, out) - return false -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) { - l := len(n.Content) - - var iface reflect.Value - switch out.Kind() { - case reflect.Slice: - out.Set(reflect.MakeSlice(out.Type(), l, l)) - case reflect.Array: - if l != out.Len() { - failf("invalid array: want %d elements but got %d", out.Len(), l) - } - case reflect.Interface: - // No type hints. Will have to use a generic sequence. - iface = out - out = settableValueOf(make([]interface{}, l)) - default: - d.terror(n, seqTag, out) - return false - } - et := out.Type().Elem() - - j := 0 - for i := 0; i < l; i++ { - e := reflect.New(et).Elem() - if ok := d.unmarshal(n.Content[i], e); ok { - out.Index(j).Set(e) - j++ - } - } - if out.Kind() != reflect.Array { - out.Set(out.Slice(0, j)) - } - if iface.IsValid() { - iface.Set(out) - } - return true -} - -func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) { - l := len(n.Content) - if d.uniqueKeys { - nerrs := len(d.terrors) - for i := 0; i < l; i += 2 { - ni := n.Content[i] - for j := i + 2; j < l; j += 2 { - nj := n.Content[j] - if ni.Kind == nj.Kind && ni.Value == nj.Value { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: mapping key %#v already defined at line %d", nj.Line, nj.Value, ni.Line)) - } - } - } - if len(d.terrors) > nerrs { - return false - } - } - switch out.Kind() { - case reflect.Struct: - return d.mappingStruct(n, out) - case reflect.Map: - // okay - case reflect.Interface: - iface := out - if isStringMap(n) { - out = reflect.MakeMap(d.stringMapType) - } else { - out = reflect.MakeMap(d.generalMapType) - } - iface.Set(out) - default: - d.terror(n, mapTag, out) - return false - } - - outt := out.Type() - kt := outt.Key() - et := outt.Elem() - - stringMapType := d.stringMapType - generalMapType := d.generalMapType - if outt.Elem() == ifaceType { - if outt.Key().Kind() == reflect.String { - d.stringMapType = outt - } else if outt.Key() == ifaceType { - d.generalMapType = outt - } - } - - mergedFields := d.mergedFields - d.mergedFields = nil - - var mergeNode *Node - - mapIsNew := false - if out.IsNil() { - out.Set(reflect.MakeMap(outt)) - mapIsNew = true - } - for i := 0; i < l; i += 2 { - if isMerge(n.Content[i]) { - mergeNode = n.Content[i+1] - continue - } - k := reflect.New(kt).Elem() - if d.unmarshal(n.Content[i], k) { - if mergedFields != nil { - ki := k.Interface() - if mergedFields[ki] { - continue - } - mergedFields[ki] = true - } - kkind := k.Kind() - if kkind == reflect.Interface { - kkind = k.Elem().Kind() - } - if kkind == reflect.Map || kkind == reflect.Slice { - failf("invalid map key: %#v", k.Interface()) - } - e := reflect.New(et).Elem() - if d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) { - out.SetMapIndex(k, e) - } - } - } - - d.mergedFields = mergedFields - if mergeNode != nil { - d.merge(n, mergeNode, out) - } - - d.stringMapType = stringMapType - d.generalMapType = generalMapType - return true -} - -func isStringMap(n *Node) bool { - if n.Kind != MappingNode { - return false - } - l := len(n.Content) - for i := 0; i < l; i += 2 { - shortTag := n.Content[i].ShortTag() - if shortTag != strTag && shortTag != mergeTag { - return false - } - } - return true -} - -func (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - - var inlineMap reflect.Value - var elemType reflect.Type - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - elemType = inlineMap.Type().Elem() - } - - for _, index := range sinfo.InlineUnmarshalers { - field := d.fieldByIndex(n, out, index) - d.prepare(n, field) - } - - mergedFields := d.mergedFields - d.mergedFields = nil - var mergeNode *Node - var doneFields []bool - if d.uniqueKeys { - doneFields = make([]bool, len(sinfo.FieldsList)) - } - name := settableValueOf("") - l := len(n.Content) - for i := 0; i < l; i += 2 { - ni := n.Content[i] - if isMerge(ni) { - mergeNode = n.Content[i+1] - continue - } - if !d.unmarshal(ni, name) { - continue - } - sname := name.String() - if mergedFields != nil { - if mergedFields[sname] { - continue - } - mergedFields[sname] = true - } - if info, ok := sinfo.FieldsMap[sname]; ok { - if d.uniqueKeys { - if doneFields[info.Id] { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.Line, name.String(), out.Type())) - continue - } - doneFields[info.Id] = true - } - var field reflect.Value - if info.Inline == nil { - field = out.Field(info.Num) - } else { - field = d.fieldByIndex(n, out, info.Inline) - } - d.unmarshal(n.Content[i+1], field) - } else if sinfo.InlineMap != -1 { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - value := reflect.New(elemType).Elem() - d.unmarshal(n.Content[i+1], value) - inlineMap.SetMapIndex(name, value) - } else if d.knownFields { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.Line, name.String(), out.Type())) - } - } - - d.mergedFields = mergedFields - if mergeNode != nil { - d.merge(n, mergeNode, out) - } - return true -} - -func failWantMap() { - failf("map merge requires map or sequence of maps as the value") -} - -func (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) { - mergedFields := d.mergedFields - if mergedFields == nil { - d.mergedFields = make(map[interface{}]bool) - for i := 0; i < len(parent.Content); i += 2 { - k := reflect.New(ifaceType).Elem() - if d.unmarshal(parent.Content[i], k) { - d.mergedFields[k.Interface()] = true - } - } - } - - switch merge.Kind { - case MappingNode: - d.unmarshal(merge, out) - case AliasNode: - if merge.Alias != nil && merge.Alias.Kind != MappingNode { - failWantMap() - } - d.unmarshal(merge, out) - case SequenceNode: - for i := 0; i < len(merge.Content); i++ { - ni := merge.Content[i] - if ni.Kind == AliasNode { - if ni.Alias != nil && ni.Alias.Kind != MappingNode { - failWantMap() - } - } else if ni.Kind != MappingNode { - failWantMap() - } - d.unmarshal(ni, out) - } - default: - failWantMap() - } - - d.mergedFields = mergedFields -} - -func isMerge(n *Node) bool { - return n.Kind == ScalarNode && n.Value == "<<" && (n.Tag == "" || n.Tag == "!" || shortTag(n.Tag) == mergeTag) -} diff --git a/backend/vendor/gopkg.in/yaml.v3/emitterc.go b/backend/vendor/gopkg.in/yaml.v3/emitterc.go deleted file mode 100644 index dde20e50..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/emitterc.go +++ /dev/null @@ -1,2019 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" - "fmt" -) - -// Flush the buffer if needed. -func flush(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) { - return yaml_emitter_flush(emitter) - } - return true -} - -// Put a character to the output buffer. -func put(emitter *yaml_emitter_t, value byte) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - emitter.buffer[emitter.buffer_pos] = value - emitter.buffer_pos++ - emitter.column++ - return true -} - -// Put a line break to the output buffer. -func put_break(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - switch emitter.line_break { - case yaml_CR_BREAK: - emitter.buffer[emitter.buffer_pos] = '\r' - emitter.buffer_pos += 1 - case yaml_LN_BREAK: - emitter.buffer[emitter.buffer_pos] = '\n' - emitter.buffer_pos += 1 - case yaml_CRLN_BREAK: - emitter.buffer[emitter.buffer_pos+0] = '\r' - emitter.buffer[emitter.buffer_pos+1] = '\n' - emitter.buffer_pos += 2 - default: - panic("unknown line break setting") - } - if emitter.column == 0 { - emitter.space_above = true - } - emitter.column = 0 - emitter.line++ - // [Go] Do this here and below and drop from everywhere else (see commented lines). - emitter.indention = true - return true -} - -// Copy a character from a string into buffer. -func write(emitter *yaml_emitter_t, s []byte, i *int) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - p := emitter.buffer_pos - w := width(s[*i]) - switch w { - case 4: - emitter.buffer[p+3] = s[*i+3] - fallthrough - case 3: - emitter.buffer[p+2] = s[*i+2] - fallthrough - case 2: - emitter.buffer[p+1] = s[*i+1] - fallthrough - case 1: - emitter.buffer[p+0] = s[*i+0] - default: - panic("unknown character width") - } - emitter.column++ - emitter.buffer_pos += w - *i += w - return true -} - -// Write a whole string into buffer. -func write_all(emitter *yaml_emitter_t, s []byte) bool { - for i := 0; i < len(s); { - if !write(emitter, s, &i) { - return false - } - } - return true -} - -// Copy a line break character from a string into buffer. -func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { - if s[*i] == '\n' { - if !put_break(emitter) { - return false - } - *i++ - } else { - if !write(emitter, s, i) { - return false - } - if emitter.column == 0 { - emitter.space_above = true - } - emitter.column = 0 - emitter.line++ - // [Go] Do this here and above and drop from everywhere else (see commented lines). - emitter.indention = true - } - return true -} - -// Set an emitter error and return false. -func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_EMITTER_ERROR - emitter.problem = problem - return false -} - -// Emit an event. -func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.events = append(emitter.events, *event) - for !yaml_emitter_need_more_events(emitter) { - event := &emitter.events[emitter.events_head] - if !yaml_emitter_analyze_event(emitter, event) { - return false - } - if !yaml_emitter_state_machine(emitter, event) { - return false - } - yaml_event_delete(event) - emitter.events_head++ - } - return true -} - -// Check if we need to accumulate more events before emitting. -// -// We accumulate extra -// - 1 event for DOCUMENT-START -// - 2 events for SEQUENCE-START -// - 3 events for MAPPING-START -func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { - if emitter.events_head == len(emitter.events) { - return true - } - var accumulate int - switch emitter.events[emitter.events_head].typ { - case yaml_DOCUMENT_START_EVENT: - accumulate = 1 - break - case yaml_SEQUENCE_START_EVENT: - accumulate = 2 - break - case yaml_MAPPING_START_EVENT: - accumulate = 3 - break - default: - return false - } - if len(emitter.events)-emitter.events_head > accumulate { - return false - } - var level int - for i := emitter.events_head; i < len(emitter.events); i++ { - switch emitter.events[i].typ { - case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: - level++ - case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: - level-- - } - if level == 0 { - return false - } - } - return true -} - -// Append a directive to the directives stack. -func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { - for i := 0; i < len(emitter.tag_directives); i++ { - if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") - } - } - - // [Go] Do we actually need to copy this given garbage collection - // and the lack of deallocating destructors? - tag_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(tag_copy.handle, value.handle) - copy(tag_copy.prefix, value.prefix) - emitter.tag_directives = append(emitter.tag_directives, tag_copy) - return true -} - -// Increase the indentation level. -func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { - emitter.indents = append(emitter.indents, emitter.indent) - if emitter.indent < 0 { - if flow { - emitter.indent = emitter.best_indent - } else { - emitter.indent = 0 - } - } else if !indentless { - // [Go] This was changed so that indentations are more regular. - if emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE { - // The first indent inside a sequence will just skip the "- " indicator. - emitter.indent += 2 - } else { - // Everything else aligns to the chosen indentation. - emitter.indent = emitter.best_indent * ((emitter.indent + emitter.best_indent) / emitter.best_indent) - } - } - return true -} - -// State dispatcher. -func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { - switch emitter.state { - default: - case yaml_EMIT_STREAM_START_STATE: - return yaml_emitter_emit_stream_start(emitter, event) - - case yaml_EMIT_FIRST_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, true) - - case yaml_EMIT_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, false) - - case yaml_EMIT_DOCUMENT_CONTENT_STATE: - return yaml_emitter_emit_document_content(emitter, event) - - case yaml_EMIT_DOCUMENT_END_STATE: - return yaml_emitter_emit_document_end(emitter, event) - - case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, true, false) - - case yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false, true) - - case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false, false) - - case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, true, false) - - case yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false, true) - - case yaml_EMIT_FLOW_MAPPING_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false, false) - - case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, false) - - case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, true) - - case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, false) - - case yaml_EMIT_END_STATE: - return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") - } - panic("invalid emitter state") -} - -// Expect STREAM-START. -func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_STREAM_START_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") - } - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = event.encoding - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = yaml_UTF8_ENCODING - } - } - if emitter.best_indent < 2 || emitter.best_indent > 9 { - emitter.best_indent = 2 - } - if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { - emitter.best_width = 80 - } - if emitter.best_width < 0 { - emitter.best_width = 1<<31 - 1 - } - if emitter.line_break == yaml_ANY_BREAK { - emitter.line_break = yaml_LN_BREAK - } - - emitter.indent = -1 - emitter.line = 0 - emitter.column = 0 - emitter.whitespace = true - emitter.indention = true - emitter.space_above = true - emitter.foot_indent = -1 - - if emitter.encoding != yaml_UTF8_ENCODING { - if !yaml_emitter_write_bom(emitter) { - return false - } - } - emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE - return true -} - -// Expect DOCUMENT-START or STREAM-END. -func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - - if event.typ == yaml_DOCUMENT_START_EVENT { - - if event.version_directive != nil { - if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { - return false - } - } - - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { - return false - } - if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { - return false - } - } - - for i := 0; i < len(default_tag_directives); i++ { - tag_directive := &default_tag_directives[i] - if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { - return false - } - } - - implicit := event.implicit - if !first || emitter.canonical { - implicit = false - } - - if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if event.version_directive != nil { - implicit = false - if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if len(event.tag_directives) > 0 { - implicit = false - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { - return false - } - if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if yaml_emitter_check_empty_document(emitter) { - implicit = false - } - if !implicit { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { - return false - } - if emitter.canonical || true { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if len(emitter.head_comment) > 0 { - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !put_break(emitter) { - return false - } - } - - emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE - return true - } - - if event.typ == yaml_STREAM_END_EVENT { - if emitter.open_ended { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_END_STATE - return true - } - - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") -} - -// Expect the root node. -func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !yaml_emitter_emit_node(emitter, event, true, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect DOCUMENT-END. -func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_DOCUMENT_END_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") - } - // [Go] Force document foot separation. - emitter.foot_indent = 0 - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.foot_indent = -1 - if !yaml_emitter_write_indent(emitter) { - return false - } - if !event.implicit { - // [Go] Allocate the slice elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_DOCUMENT_START_STATE - emitter.tag_directives = emitter.tag_directives[:0] - return true -} - -// Expect a flow item node. -func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_SEQUENCE_END_EVENT { - if emitter.canonical && !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.column == 0 || emitter.canonical && !first { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - - return true - } - - if !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if emitter.column == 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE) - } else { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) - } - if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { - return false - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a flow key node. -func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_MAPPING_END_EVENT { - if (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - - if !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - - if emitter.column == 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a flow value node. -func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { - return false - } - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE) - } else { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) - } - if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { - return false - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a block item node. -func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) - if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a block key node. -func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if event.typ == yaml_MAPPING_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if len(emitter.line_comment) > 0 { - // [Go] A line comment was provided for the key. That's unusual as the - // scanner associates line comments with the value. Either way, - // save the line comment and render it appropriately later. - emitter.key_line_comment = emitter.line_comment - emitter.line_comment = nil - } - if yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block value node. -func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { - return false - } - } - if len(emitter.key_line_comment) > 0 { - // [Go] Line comments are generally associated with the value, but when there's - // no value on the same line as a mapping key they end up attached to the - // key itself. - if event.typ == yaml_SCALAR_EVENT { - if len(emitter.line_comment) == 0 { - // A scalar is coming and it has no line comments by itself yet, - // so just let it handle the line comment as usual. If it has a - // line comment, we can't have both so the one from the key is lost. - emitter.line_comment = emitter.key_line_comment - emitter.key_line_comment = nil - } - } else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) { - // An indented block follows, so write the comment right now. - emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment - if !yaml_emitter_process_line_comment(emitter) { - return false - } - emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment - } - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) - if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -func yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - return event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0 -} - -// Expect a node. -func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, - root bool, sequence bool, mapping bool, simple_key bool) bool { - - emitter.root_context = root - emitter.sequence_context = sequence - emitter.mapping_context = mapping - emitter.simple_key_context = simple_key - - switch event.typ { - case yaml_ALIAS_EVENT: - return yaml_emitter_emit_alias(emitter, event) - case yaml_SCALAR_EVENT: - return yaml_emitter_emit_scalar(emitter, event) - case yaml_SEQUENCE_START_EVENT: - return yaml_emitter_emit_sequence_start(emitter, event) - case yaml_MAPPING_START_EVENT: - return yaml_emitter_emit_mapping_start(emitter, event) - default: - return yaml_emitter_set_emitter_error(emitter, - fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ)) - } -} - -// Expect ALIAS. -func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SCALAR. -func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_select_scalar_style(emitter, event) { - return false - } - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - if !yaml_emitter_process_scalar(emitter) { - return false - } - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SEQUENCE-START. -func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || - yaml_emitter_check_empty_sequence(emitter) { - emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE - } - return true -} - -// Expect MAPPING-START. -func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || - yaml_emitter_check_empty_mapping(emitter) { - emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE - } - return true -} - -// Check if the document content is an empty scalar. -func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { - return false // [Go] Huh? -} - -// Check if the next events represent an empty sequence. -func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT -} - -// Check if the next events represent an empty mapping. -func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT -} - -// Check if the next node can be expressed as a simple key. -func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { - length := 0 - switch emitter.events[emitter.events_head].typ { - case yaml_ALIAS_EVENT: - length += len(emitter.anchor_data.anchor) - case yaml_SCALAR_EVENT: - if emitter.scalar_data.multiline { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) + - len(emitter.scalar_data.value) - case yaml_SEQUENCE_START_EVENT: - if !yaml_emitter_check_empty_sequence(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - case yaml_MAPPING_START_EVENT: - if !yaml_emitter_check_empty_mapping(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - default: - return false - } - return length <= 128 -} - -// Determine an acceptable scalar style. -func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 - if no_tag && !event.implicit && !event.quoted_implicit { - return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") - } - - style := event.scalar_style() - if style == yaml_ANY_SCALAR_STYLE { - style = yaml_PLAIN_SCALAR_STYLE - } - if emitter.canonical { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - if emitter.simple_key_context && emitter.scalar_data.multiline { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - if style == yaml_PLAIN_SCALAR_STYLE { - if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || - emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if no_tag && !event.implicit { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { - if !emitter.scalar_data.single_quoted_allowed { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { - if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - - if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { - emitter.tag_data.handle = []byte{'!'} - } - emitter.scalar_data.style = style - return true -} - -// Write an anchor. -func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { - if emitter.anchor_data.anchor == nil { - return true - } - c := []byte{'&'} - if emitter.anchor_data.alias { - c[0] = '*' - } - if !yaml_emitter_write_indicator(emitter, c, true, false, false) { - return false - } - return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) -} - -// Write a tag. -func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { - if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { - return true - } - if len(emitter.tag_data.handle) > 0 { - if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { - return false - } - if len(emitter.tag_data.suffix) > 0 { - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - } - } else { - // [Go] Allocate these slices elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { - return false - } - } - return true -} - -// Write a scalar. -func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { - switch emitter.scalar_data.style { - case yaml_PLAIN_SCALAR_STYLE: - return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_SINGLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_DOUBLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_LITERAL_SCALAR_STYLE: - return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) - - case yaml_FOLDED_SCALAR_STYLE: - return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) - } - panic("unknown scalar style") -} - -// Write a head comment. -func yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool { - if len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.tail_comment) { - return false - } - emitter.tail_comment = emitter.tail_comment[:0] - emitter.foot_indent = emitter.indent - if emitter.foot_indent < 0 { - emitter.foot_indent = 0 - } - } - - if len(emitter.head_comment) == 0 { - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.head_comment) { - return false - } - emitter.head_comment = emitter.head_comment[:0] - return true -} - -// Write an line comment. -func yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool { - if len(emitter.line_comment) == 0 { - return true - } - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !yaml_emitter_write_comment(emitter, emitter.line_comment) { - return false - } - emitter.line_comment = emitter.line_comment[:0] - return true -} - -// Write a foot comment. -func yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool { - if len(emitter.foot_comment) == 0 { - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.foot_comment) { - return false - } - emitter.foot_comment = emitter.foot_comment[:0] - emitter.foot_indent = emitter.indent - if emitter.foot_indent < 0 { - emitter.foot_indent = 0 - } - return true -} - -// Check if a %YAML directive is valid. -func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { - if version_directive.major != 1 || version_directive.minor != 1 { - return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") - } - return true -} - -// Check if a %TAG directive is valid. -func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { - handle := tag_directive.handle - prefix := tag_directive.prefix - if len(handle) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") - } - if handle[0] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") - } - if handle[len(handle)-1] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") - } - for i := 1; i < len(handle)-1; i += width(handle[i]) { - if !is_alpha(handle, i) { - return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") - } - } - if len(prefix) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") - } - return true -} - -// Check if an anchor is valid. -func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { - if len(anchor) == 0 { - problem := "anchor value must not be empty" - if alias { - problem = "alias value must not be empty" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - for i := 0; i < len(anchor); i += width(anchor[i]) { - if !is_alpha(anchor, i) { - problem := "anchor value must contain alphanumerical characters only" - if alias { - problem = "alias value must contain alphanumerical characters only" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - } - emitter.anchor_data.anchor = anchor - emitter.anchor_data.alias = alias - return true -} - -// Check if a tag is valid. -func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { - if len(tag) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") - } - for i := 0; i < len(emitter.tag_directives); i++ { - tag_directive := &emitter.tag_directives[i] - if bytes.HasPrefix(tag, tag_directive.prefix) { - emitter.tag_data.handle = tag_directive.handle - emitter.tag_data.suffix = tag[len(tag_directive.prefix):] - return true - } - } - emitter.tag_data.suffix = tag - return true -} - -// Check if a scalar is valid. -func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { - var ( - block_indicators = false - flow_indicators = false - line_breaks = false - special_characters = false - tab_characters = false - - leading_space = false - leading_break = false - trailing_space = false - trailing_break = false - break_space = false - space_break = false - - preceded_by_whitespace = false - followed_by_whitespace = false - previous_space = false - previous_break = false - ) - - emitter.scalar_data.value = value - - if len(value) == 0 { - emitter.scalar_data.multiline = false - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = false - return true - } - - if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { - block_indicators = true - flow_indicators = true - } - - preceded_by_whitespace = true - for i, w := 0, 0; i < len(value); i += w { - w = width(value[i]) - followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) - - if i == 0 { - switch value[i] { - case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': - flow_indicators = true - block_indicators = true - case '?', ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '-': - if followed_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } else { - switch value[i] { - case ',', '?', '[', ']', '{', '}': - flow_indicators = true - case ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '#': - if preceded_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } - - if value[i] == '\t' { - tab_characters = true - } else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { - special_characters = true - } - if is_space(value, i) { - if i == 0 { - leading_space = true - } - if i+width(value[i]) == len(value) { - trailing_space = true - } - if previous_break { - break_space = true - } - previous_space = true - previous_break = false - } else if is_break(value, i) { - line_breaks = true - if i == 0 { - leading_break = true - } - if i+width(value[i]) == len(value) { - trailing_break = true - } - if previous_space { - space_break = true - } - previous_space = false - previous_break = true - } else { - previous_space = false - previous_break = false - } - - // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. - preceded_by_whitespace = is_blankz(value, i) - } - - emitter.scalar_data.multiline = line_breaks - emitter.scalar_data.flow_plain_allowed = true - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = true - - if leading_space || leading_break || trailing_space || trailing_break { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if trailing_space { - emitter.scalar_data.block_allowed = false - } - if break_space { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || tab_characters || special_characters { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || special_characters { - emitter.scalar_data.block_allowed = false - } - if line_breaks { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if flow_indicators { - emitter.scalar_data.flow_plain_allowed = false - } - if block_indicators { - emitter.scalar_data.block_plain_allowed = false - } - return true -} - -// Check if the event data is valid. -func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - emitter.anchor_data.anchor = nil - emitter.tag_data.handle = nil - emitter.tag_data.suffix = nil - emitter.scalar_data.value = nil - - if len(event.head_comment) > 0 { - emitter.head_comment = event.head_comment - } - if len(event.line_comment) > 0 { - emitter.line_comment = event.line_comment - } - if len(event.foot_comment) > 0 { - emitter.foot_comment = event.foot_comment - } - if len(event.tail_comment) > 0 { - emitter.tail_comment = event.tail_comment - } - - switch event.typ { - case yaml_ALIAS_EVENT: - if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { - return false - } - - case yaml_SCALAR_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - if !yaml_emitter_analyze_scalar(emitter, event.value) { - return false - } - - case yaml_SEQUENCE_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - - case yaml_MAPPING_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - } - return true -} - -// Write the BOM character. -func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { - if !flush(emitter) { - return false - } - pos := emitter.buffer_pos - emitter.buffer[pos+0] = '\xEF' - emitter.buffer[pos+1] = '\xBB' - emitter.buffer[pos+2] = '\xBF' - emitter.buffer_pos += 3 - return true -} - -func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { - indent := emitter.indent - if indent < 0 { - indent = 0 - } - if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { - if !put_break(emitter) { - return false - } - } - if emitter.foot_indent == indent { - if !put_break(emitter) { - return false - } - } - for emitter.column < indent { - if !put(emitter, ' ') { - return false - } - } - emitter.whitespace = true - //emitter.indention = true - emitter.space_above = false - emitter.foot_indent = -1 - return true -} - -func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, indicator) { - return false - } - emitter.whitespace = is_whitespace - emitter.indention = (emitter.indention && is_indention) - emitter.open_ended = false - return true -} - -func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - for i := 0; i < len(value); { - var must_write bool - switch value[i] { - case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': - must_write = true - default: - must_write = is_alpha(value, i) - } - if must_write { - if !write(emitter, value, &i) { - return false - } - } else { - w := width(value[i]) - for k := 0; k < w; k++ { - octet := value[i] - i++ - if !put(emitter, '%') { - return false - } - - c := octet >> 4 - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - - c = octet & 0x0f - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - } - } - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - if len(value) > 0 && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - - if len(value) > 0 { - emitter.whitespace = false - } - emitter.indention = false - if emitter.root_context { - emitter.open_ended = true - } - - return true -} - -func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { - return false - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if value[i] == '\'' { - if !put(emitter, '\'') { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - spaces := false - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { - return false - } - - for i := 0; i < len(value); { - if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || - is_bom(value, i) || is_break(value, i) || - value[i] == '"' || value[i] == '\\' { - - octet := value[i] - - var w int - var v rune - switch { - case octet&0x80 == 0x00: - w, v = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, v = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, v = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, v = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = value[i+k] - v = (v << 6) + (rune(octet) & 0x3F) - } - i += w - - if !put(emitter, '\\') { - return false - } - - var ok bool - switch v { - case 0x00: - ok = put(emitter, '0') - case 0x07: - ok = put(emitter, 'a') - case 0x08: - ok = put(emitter, 'b') - case 0x09: - ok = put(emitter, 't') - case 0x0A: - ok = put(emitter, 'n') - case 0x0b: - ok = put(emitter, 'v') - case 0x0c: - ok = put(emitter, 'f') - case 0x0d: - ok = put(emitter, 'r') - case 0x1b: - ok = put(emitter, 'e') - case 0x22: - ok = put(emitter, '"') - case 0x5c: - ok = put(emitter, '\\') - case 0x85: - ok = put(emitter, 'N') - case 0xA0: - ok = put(emitter, '_') - case 0x2028: - ok = put(emitter, 'L') - case 0x2029: - ok = put(emitter, 'P') - default: - if v <= 0xFF { - ok = put(emitter, 'x') - w = 2 - } else if v <= 0xFFFF { - ok = put(emitter, 'u') - w = 4 - } else { - ok = put(emitter, 'U') - w = 8 - } - for k := (w - 1) * 4; ok && k >= 0; k -= 4 { - digit := byte((v >> uint(k)) & 0x0F) - if digit < 10 { - ok = put(emitter, digit+'0') - } else { - ok = put(emitter, digit+'A'-10) - } - } - } - if !ok { - return false - } - spaces = false - } else if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if is_space(value, i+1) { - if !put(emitter, '\\') { - return false - } - } - i += width(value[i]) - } else if !write(emitter, value, &i) { - return false - } - spaces = true - } else { - if !write(emitter, value, &i) { - return false - } - spaces = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { - if is_space(value, 0) || is_break(value, 0) { - indent_hint := []byte{'0' + byte(emitter.best_indent)} - if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { - return false - } - } - - emitter.open_ended = false - - var chomp_hint [1]byte - if len(value) == 0 { - chomp_hint[0] = '-' - } else { - i := len(value) - 1 - for value[i]&0xC0 == 0x80 { - i-- - } - if !is_break(value, i) { - chomp_hint[0] = '-' - } else if i == 0 { - chomp_hint[0] = '+' - emitter.open_ended = true - } else { - i-- - for value[i]&0xC0 == 0x80 { - i-- - } - if is_break(value, i) { - chomp_hint[0] = '+' - emitter.open_ended = true - } - } - } - if chomp_hint[0] != 0 { - if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { - return false - } - } - return true -} - -func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - //emitter.indention = true - emitter.whitespace = true - breaks := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - - return true -} - -func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - - //emitter.indention = true - emitter.whitespace = true - - breaks := true - leading_spaces := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !breaks && !leading_spaces && value[i] == '\n' { - k := 0 - for is_break(value, k) { - k += width(value[k]) - } - if !is_blankz(value, k) { - if !put_break(emitter) { - return false - } - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - leading_spaces = is_blank(value, i) - } - if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - emitter.indention = false - breaks = false - } - } - return true -} - -func yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool { - breaks := false - pound := false - for i := 0; i < len(comment); { - if is_break(comment, i) { - if !write_break(emitter, comment, &i) { - return false - } - //emitter.indention = true - breaks = true - pound = false - } else { - if breaks && !yaml_emitter_write_indent(emitter) { - return false - } - if !pound { - if comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) { - return false - } - pound = true - } - if !write(emitter, comment, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - if !breaks && !put_break(emitter) { - return false - } - - emitter.whitespace = true - //emitter.indention = true - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v3/encode.go b/backend/vendor/gopkg.in/yaml.v3/encode.go deleted file mode 100644 index de9e72a3..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/encode.go +++ /dev/null @@ -1,577 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package yaml - -import ( - "encoding" - "fmt" - "io" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool - indent int - doneInit bool -} - -func newEncoder() *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func newEncoderWithWriter(w io.Writer) *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_writer(&e.emitter, w) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func (e *encoder) init() { - if e.doneInit { - return - } - if e.indent == 0 { - e.indent = 4 - } - e.emitter.best_indent = e.indent - yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) - e.emit() - e.doneInit = true -} - -func (e *encoder) finish() { - e.emitter.open_ended = false - yaml_stream_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) destroy() { - yaml_emitter_delete(&e.emitter) -} - -func (e *encoder) emit() { - // This will internally delete the e.event value. - e.must(yaml_emitter_emit(&e.emitter, &e.event)) -} - -func (e *encoder) must(ok bool) { - if !ok { - msg := e.emitter.problem - if msg == "" { - msg = "unknown problem generating YAML content" - } - failf("%s", msg) - } -} - -func (e *encoder) marshalDoc(tag string, in reflect.Value) { - e.init() - var node *Node - if in.IsValid() { - node, _ = in.Interface().(*Node) - } - if node != nil && node.Kind == DocumentNode { - e.nodev(in) - } else { - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.emit() - e.marshal(tag, in) - yaml_document_end_event_initialize(&e.event, true) - e.emit() - } -} - -func (e *encoder) marshal(tag string, in reflect.Value) { - tag = shortTag(tag) - if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { - e.nilv() - return - } - iface := in.Interface() - switch value := iface.(type) { - case *Node: - e.nodev(in) - return - case Node: - if !in.CanAddr() { - var n = reflect.New(in.Type()).Elem() - n.Set(in) - in = n - } - e.nodev(in.Addr()) - return - case time.Time: - e.timev(tag, in) - return - case *time.Time: - e.timev(tag, in.Elem()) - return - case time.Duration: - e.stringv(tag, reflect.ValueOf(value.String())) - return - case Marshaler: - v, err := value.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - e.marshal(tag, reflect.ValueOf(v)) - return - case encoding.TextMarshaler: - text, err := value.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - case nil: - e.nilv() - return - } - switch in.Kind() { - case reflect.Interface: - e.marshal(tag, in.Elem()) - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - e.marshal(tag, in.Elem()) - case reflect.Struct: - e.structv(tag, in) - case reflect.Slice, reflect.Array: - e.slicev(tag, in) - case reflect.String: - e.stringv(tag, in) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - e.intv(tag, in) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - e.uintv(tag, in) - case reflect.Float32, reflect.Float64: - e.floatv(tag, in) - case reflect.Bool: - e.boolv(tag, in) - default: - panic("cannot marshal type: " + in.Type().String()) - } -} - -func (e *encoder) mapv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - keys := keyList(in.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - e.marshal("", k) - e.marshal("", in.MapIndex(k)) - } - }) -} - -func (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) { - for _, num := range index { - for { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - return reflect.Value{} - } - v = v.Elem() - continue - } - break - } - v = v.Field(num) - } - return v -} - -func (e *encoder) structv(tag string, in reflect.Value) { - sinfo, err := getStructInfo(in.Type()) - if err != nil { - panic(err) - } - e.mappingv(tag, func() { - for _, info := range sinfo.FieldsList { - var value reflect.Value - if info.Inline == nil { - value = in.Field(info.Num) - } else { - value = e.fieldByIndex(in, info.Inline) - if !value.IsValid() { - continue - } - } - if info.OmitEmpty && isZero(value) { - continue - } - e.marshal("", reflect.ValueOf(info.Key)) - e.flow = info.Flow - e.marshal("", value) - } - if sinfo.InlineMap >= 0 { - m := in.Field(sinfo.InlineMap) - if m.Len() > 0 { - e.flow = false - keys := keyList(m.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - if _, found := sinfo.FieldsMap[k.String()]; found { - panic(fmt.Sprintf("cannot have key %q in inlined map: conflicts with struct field", k.String())) - } - e.marshal("", k) - e.flow = false - e.marshal("", m.MapIndex(k)) - } - } - } - }) -} - -func (e *encoder) mappingv(tag string, f func()) { - implicit := tag == "" - style := yaml_BLOCK_MAPPING_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) - e.emit() - f() - yaml_mapping_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) slicev(tag string, in reflect.Value) { - implicit := tag == "" - style := yaml_BLOCK_SEQUENCE_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - n := in.Len() - for i := 0; i < n; i++ { - e.marshal("", in.Index(i)) - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.emit() -} - -// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. -// -// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported -// in YAML 1.2 and by this package, but these should be marshalled quoted for -// the time being for compatibility with other parsers. -func isBase60Float(s string) (result bool) { - // Fast path. - if s == "" { - return false - } - c := s[0] - if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { - return false - } - // Do the full match. - return base60float.MatchString(s) -} - -// From http://yaml.org/type/float.html, except the regular expression there -// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. -var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) - -// isOldBool returns whether s is bool notation as defined in YAML 1.1. -// -// We continue to force strings that YAML 1.1 would interpret as booleans to be -// rendered as quotes strings so that the marshalled output valid for YAML 1.1 -// parsing. -func isOldBool(s string) (result bool) { - switch s { - case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON", - "n", "N", "no", "No", "NO", "off", "Off", "OFF": - return true - default: - return false - } -} - -func (e *encoder) stringv(tag string, in reflect.Value) { - var style yaml_scalar_style_t - s := in.String() - canUsePlain := true - switch { - case !utf8.ValidString(s): - if tag == binaryTag { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if tag != "" { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = binaryTag - s = encodeBase64(s) - case tag == "": - // Check to see if it would resolve to a specific - // tag when encoded unquoted. If it doesn't, - // there's no need to quote it. - rtag, _ := resolve("", s) - canUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s)) - } - // Note: it's possible for user code to emit invalid YAML - // if they explicitly specify a tag and a string containing - // text that's incompatible with that tag. - switch { - case strings.Contains(s, "\n"): - if e.flow { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } else { - style = yaml_LITERAL_SCALAR_STYLE - } - case canUsePlain: - style = yaml_PLAIN_SCALAR_STYLE - default: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - e.emitScalar(s, "", tag, style, nil, nil, nil, nil) -} - -func (e *encoder) boolv(tag string, in reflect.Value) { - var s string - if in.Bool() { - s = "true" - } else { - s = "false" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) intv(tag string, in reflect.Value) { - s := strconv.FormatInt(in.Int(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) uintv(tag string, in reflect.Value) { - s := strconv.FormatUint(in.Uint(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) timev(tag string, in reflect.Value) { - t := in.Interface().(time.Time) - s := t.Format(time.RFC3339Nano) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) floatv(tag string, in reflect.Value) { - // Issue #352: When formatting, use the precision of the underlying value - precision := 64 - if in.Kind() == reflect.Float32 { - precision = 32 - } - - s := strconv.FormatFloat(in.Float(), 'g', -1, precision) - switch s { - case "+Inf": - s = ".inf" - case "-Inf": - s = "-.inf" - case "NaN": - s = ".nan" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) nilv() { - e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) { - // TODO Kill this function. Replace all initialize calls by their underlining Go literals. - implicit := tag == "" - if !implicit { - tag = longTag(tag) - } - e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) - e.event.head_comment = head - e.event.line_comment = line - e.event.foot_comment = foot - e.event.tail_comment = tail - e.emit() -} - -func (e *encoder) nodev(in reflect.Value) { - e.node(in.Interface().(*Node), "") -} - -func (e *encoder) node(node *Node, tail string) { - // Zero nodes behave as nil. - if node.Kind == 0 && node.IsZero() { - e.nilv() - return - } - - // If the tag was not explicitly requested, and dropping it won't change the - // implicit tag of the value, don't include it in the presentation. - var tag = node.Tag - var stag = shortTag(tag) - var forceQuoting bool - if tag != "" && node.Style&TaggedStyle == 0 { - if node.Kind == ScalarNode { - if stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 { - tag = "" - } else { - rtag, _ := resolve("", node.Value) - if rtag == stag { - tag = "" - } else if stag == strTag { - tag = "" - forceQuoting = true - } - } - } else { - var rtag string - switch node.Kind { - case MappingNode: - rtag = mapTag - case SequenceNode: - rtag = seqTag - } - if rtag == stag { - tag = "" - } - } - } - - switch node.Kind { - case DocumentNode: - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - for _, node := range node.Content { - e.node(node, "") - } - yaml_document_end_event_initialize(&e.event, true) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case SequenceNode: - style := yaml_BLOCK_SEQUENCE_STYLE - if node.Style&FlowStyle != 0 { - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style)) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - for _, node := range node.Content { - e.node(node, "") - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case MappingNode: - style := yaml_BLOCK_MAPPING_STYLE - if node.Style&FlowStyle != 0 { - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style) - e.event.tail_comment = []byte(tail) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - - // The tail logic below moves the foot comment of prior keys to the following key, - // since the value for each key may be a nested structure and the foot needs to be - // processed only the entirety of the value is streamed. The last tail is processed - // with the mapping end event. - var tail string - for i := 0; i+1 < len(node.Content); i += 2 { - k := node.Content[i] - foot := k.FootComment - if foot != "" { - kopy := *k - kopy.FootComment = "" - k = &kopy - } - e.node(k, tail) - tail = foot - - v := node.Content[i+1] - e.node(v, "") - } - - yaml_mapping_end_event_initialize(&e.event) - e.event.tail_comment = []byte(tail) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case AliasNode: - yaml_alias_event_initialize(&e.event, []byte(node.Value)) - e.event.head_comment = []byte(node.HeadComment) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case ScalarNode: - value := node.Value - if !utf8.ValidString(value) { - if stag == binaryTag { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if stag != "" { - failf("cannot marshal invalid UTF-8 data as %s", stag) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = binaryTag - value = encodeBase64(value) - } - - style := yaml_PLAIN_SCALAR_STYLE - switch { - case node.Style&DoubleQuotedStyle != 0: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - case node.Style&SingleQuotedStyle != 0: - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - case node.Style&LiteralStyle != 0: - style = yaml_LITERAL_SCALAR_STYLE - case node.Style&FoldedStyle != 0: - style = yaml_FOLDED_SCALAR_STYLE - case strings.Contains(value, "\n"): - style = yaml_LITERAL_SCALAR_STYLE - case forceQuoting: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - e.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail)) - default: - failf("cannot encode node with unknown kind %d", node.Kind) - } -} diff --git a/backend/vendor/gopkg.in/yaml.v3/parserc.go b/backend/vendor/gopkg.in/yaml.v3/parserc.go deleted file mode 100644 index 25fe8236..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/parserc.go +++ /dev/null @@ -1,1274 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" -) - -// The parser implements the following grammar: -// -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// implicit_document ::= block_node DOCUMENT-END* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// block_node_or_indentless_sequence ::= -// ALIAS -// | properties (block_content | indentless_block_sequence)? -// | block_content -// | indentless_block_sequence -// block_node ::= ALIAS -// | properties block_content? -// | block_content -// flow_node ::= ALIAS -// | properties flow_content? -// | flow_content -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// block_content ::= block_collection | flow_collection | SCALAR -// flow_content ::= flow_collection | SCALAR -// block_collection ::= block_sequence | block_mapping -// flow_collection ::= flow_sequence | flow_mapping -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// block_mapping ::= BLOCK-MAPPING_START -// ((KEY block_node_or_indentless_sequence?)? -// (VALUE block_node_or_indentless_sequence?)?)* -// BLOCK-END -// flow_sequence ::= FLOW-SEQUENCE-START -// (flow_sequence_entry FLOW-ENTRY)* -// flow_sequence_entry? -// FLOW-SEQUENCE-END -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// flow_mapping ::= FLOW-MAPPING-START -// (flow_mapping_entry FLOW-ENTRY)* -// flow_mapping_entry? -// FLOW-MAPPING-END -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? - -// Peek the next token in the token queue. -func peek_token(parser *yaml_parser_t) *yaml_token_t { - if parser.token_available || yaml_parser_fetch_more_tokens(parser) { - token := &parser.tokens[parser.tokens_head] - yaml_parser_unfold_comments(parser, token) - return token - } - return nil -} - -// yaml_parser_unfold_comments walks through the comments queue and joins all -// comments behind the position of the provided token into the respective -// top-level comment slices in the parser. -func yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) { - for parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index { - comment := &parser.comments[parser.comments_head] - if len(comment.head) > 0 { - if token.typ == yaml_BLOCK_END_TOKEN { - // No heads on ends, so keep comment.head for a follow up token. - break - } - if len(parser.head_comment) > 0 { - parser.head_comment = append(parser.head_comment, '\n') - } - parser.head_comment = append(parser.head_comment, comment.head...) - } - if len(comment.foot) > 0 { - if len(parser.foot_comment) > 0 { - parser.foot_comment = append(parser.foot_comment, '\n') - } - parser.foot_comment = append(parser.foot_comment, comment.foot...) - } - if len(comment.line) > 0 { - if len(parser.line_comment) > 0 { - parser.line_comment = append(parser.line_comment, '\n') - } - parser.line_comment = append(parser.line_comment, comment.line...) - } - *comment = yaml_comment_t{} - parser.comments_head++ - } -} - -// Remove the next token from the queue (must be called after peek_token). -func skip_token(parser *yaml_parser_t) { - parser.token_available = false - parser.tokens_parsed++ - parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN - parser.tokens_head++ -} - -// Get the next event. -func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { - // Erase the event object. - *event = yaml_event_t{} - - // No events after the end of the stream or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { - return true - } - - // Generate the next event. - return yaml_parser_state_machine(parser, event) -} - -// Set parser error. -func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -// State dispatcher. -func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { - //trace("yaml_parser_state_machine", "state:", parser.state.String()) - - switch parser.state { - case yaml_PARSE_STREAM_START_STATE: - return yaml_parser_parse_stream_start(parser, event) - - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, true) - - case yaml_PARSE_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, false) - - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return yaml_parser_parse_document_content(parser, event) - - case yaml_PARSE_DOCUMENT_END_STATE: - return yaml_parser_parse_document_end(parser, event) - - case yaml_PARSE_BLOCK_NODE_STATE: - return yaml_parser_parse_node(parser, event, true, false) - - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return yaml_parser_parse_node(parser, event, true, true) - - case yaml_PARSE_FLOW_NODE_STATE: - return yaml_parser_parse_node(parser, event, false, false) - - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, true) - - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, false) - - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_indentless_sequence_entry(parser, event) - - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, true) - - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, false) - - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return yaml_parser_parse_block_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, true) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, false) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) - - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, true) - - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, true) - - default: - panic("invalid parser state") - } -} - -// Parse the production: -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// -// ************ -func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_STREAM_START_TOKEN { - return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) - } - parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - encoding: token.encoding, - } - skip_token(parser) - return true -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// -// * -// -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -// ************************* -func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { - - token := peek_token(parser) - if token == nil { - return false - } - - // Parse extra document end indicators. - if !implicit { - for token.typ == yaml_DOCUMENT_END_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && - token.typ != yaml_TAG_DIRECTIVE_TOKEN && - token.typ != yaml_DOCUMENT_START_TOKEN && - token.typ != yaml_STREAM_END_TOKEN { - // Parse an implicit document. - if !yaml_parser_process_directives(parser, nil, nil) { - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_BLOCK_NODE_STATE - - var head_comment []byte - if len(parser.head_comment) > 0 { - // [Go] Scan the header comment backwards, and if an empty line is found, break - // the header so the part before the last empty line goes into the - // document header, while the bottom of it goes into a follow up event. - for i := len(parser.head_comment) - 1; i > 0; i-- { - if parser.head_comment[i] == '\n' { - if i == len(parser.head_comment)-1 { - head_comment = parser.head_comment[:i] - parser.head_comment = parser.head_comment[i+1:] - break - } else if parser.head_comment[i-1] == '\n' { - head_comment = parser.head_comment[:i-1] - parser.head_comment = parser.head_comment[i+1:] - break - } - } - } - } - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - - head_comment: head_comment, - } - - } else if token.typ != yaml_STREAM_END_TOKEN { - // Parse an explicit document. - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - start_mark := token.start_mark - if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { - return false - } - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_DOCUMENT_START_TOKEN { - yaml_parser_set_parser_error(parser, - "did not find expected ", token.start_mark) - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE - end_mark := token.end_mark - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: false, - } - skip_token(parser) - - } else { - // Parse the stream end. - parser.state = yaml_PARSE_END_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - } - - return true -} - -// Parse the productions: -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -// *********** -func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || - token.typ == yaml_TAG_DIRECTIVE_TOKEN || - token.typ == yaml_DOCUMENT_START_TOKEN || - token.typ == yaml_DOCUMENT_END_TOKEN || - token.typ == yaml_STREAM_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - return yaml_parser_process_empty_scalar(parser, event, - token.start_mark) - } - return yaml_parser_parse_node(parser, event, true, false) -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// -// ************* -// -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - start_mark := token.start_mark - end_mark := token.start_mark - - implicit := true - if token.typ == yaml_DOCUMENT_END_TOKEN { - end_mark = token.end_mark - skip_token(parser) - implicit = false - } - - parser.tag_directives = parser.tag_directives[:0] - - parser.state = yaml_PARSE_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - start_mark: start_mark, - end_mark: end_mark, - implicit: implicit, - } - yaml_parser_set_event_comments(parser, event) - if len(event.head_comment) > 0 && len(event.foot_comment) == 0 { - event.foot_comment = event.head_comment - event.head_comment = nil - } - return true -} - -func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) { - event.head_comment = parser.head_comment - event.line_comment = parser.line_comment - event.foot_comment = parser.foot_comment - parser.head_comment = nil - parser.line_comment = nil - parser.foot_comment = nil - parser.tail_comment = nil - parser.stem_comment = nil -} - -// Parse the productions: -// block_node_or_indentless_sequence ::= -// -// ALIAS -// ***** -// | properties (block_content | indentless_block_sequence)? -// ********** * -// | block_content | indentless_block_sequence -// * -// -// block_node ::= ALIAS -// -// ***** -// | properties block_content? -// ********** * -// | block_content -// * -// -// flow_node ::= ALIAS -// -// ***** -// | properties flow_content? -// ********** * -// | flow_content -// * -// -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// -// ************************* -// -// block_content ::= block_collection | flow_collection | SCALAR -// -// ****** -// -// flow_content ::= flow_collection | SCALAR -// -// ****** -func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { - //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_ALIAS_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - anchor: token.value, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - - start_mark := token.start_mark - end_mark := token.start_mark - - var tag_token bool - var tag_handle, tag_suffix, anchor []byte - var tag_mark yaml_mark_t - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - start_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } else if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - start_mark = token.start_mark - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - var tag []byte - if tag_token { - if len(tag_handle) == 0 { - tag = tag_suffix - tag_suffix = nil - } else { - for i := range parser.tag_directives { - if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { - tag = append([]byte(nil), parser.tag_directives[i].prefix...) - tag = append(tag, tag_suffix...) - break - } - } - if len(tag) == 0 { - yaml_parser_set_parser_error_context(parser, - "while parsing a node", start_mark, - "found undefined tag handle", tag_mark) - return false - } - } - } - - implicit := len(tag) == 0 - if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_SCALAR_TOKEN { - var plain_implicit, quoted_implicit bool - end_mark = token.end_mark - if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { - plain_implicit = true - } else if len(tag) == 0 { - quoted_implicit = true - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - value: token.value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(token.style), - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { - // [Go] Some of the events below can be merged as they differ only on style. - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), - } - yaml_parser_set_event_comments(parser, event) - return true - } - if token.typ == yaml_FLOW_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - yaml_parser_set_event_comments(parser, event) - return true - } - if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - if parser.stem_comment != nil { - event.head_comment = parser.stem_comment - parser.stem_comment = nil - } - return true - } - if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), - } - if parser.stem_comment != nil { - event.head_comment = parser.stem_comment - parser.stem_comment = nil - } - return true - } - if len(anchor) > 0 || len(tag) > 0 { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - quoted_implicit: false, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true - } - - context := "while parsing a flow node" - if block { - context = "while parsing a block node" - } - yaml_parser_set_parser_error_context(parser, context, start_mark, - "did not find expected node content", token.start_mark) - return false -} - -// Parse the productions: -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// -// ******************** *********** * ********* -func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - prior_head_len := len(parser.head_comment) - skip_token(parser) - yaml_parser_split_stem_comment(parser, prior_head_len) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } else { - parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } - if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block collection", context_mark, - "did not find expected '-' indicator", token.start_mark) -} - -// Parse the productions: -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// -// *********** * -func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - prior_head_len := len(parser.head_comment) - skip_token(parser) - yaml_parser_split_stem_comment(parser, prior_head_len) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && - token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? - } - return true -} - -// Split stem comment from head comment. -// -// When a sequence or map is found under a sequence entry, the former head comment -// is assigned to the underlying sequence or map as a whole, not the individual -// sequence or map entry as would be expected otherwise. To handle this case the -// previous head comment is moved aside as the stem comment. -func yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) { - if stem_len == 0 { - return - } - - token := peek_token(parser) - if token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN { - return - } - - parser.stem_comment = parser.head_comment[:stem_len] - if len(parser.head_comment) == stem_len { - parser.head_comment = nil - } else { - // Copy suffix to prevent very strange bugs if someone ever appends - // further bytes to the prefix in the stem_comment slice above. - parser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...) - } -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ******************* -// ((KEY block_node_or_indentless_sequence?)? -// *** * -// (VALUE block_node_or_indentless_sequence?)?)* -// -// BLOCK-END -// ********* -func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - // [Go] A tail comment was left from the prior mapping value processed. Emit an event - // as it needs to be processed with that value and not the following key. - if len(parser.tail_comment) > 0 { - *event = yaml_event_t{ - typ: yaml_TAIL_COMMENT_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - foot_comment: parser.tail_comment, - } - parser.tail_comment = nil - return true - } - - if token.typ == yaml_KEY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } else { - parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } else if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block mapping", context_mark, - "did not find expected key", token.start_mark) -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ((KEY block_node_or_indentless_sequence?)? -// -// (VALUE block_node_or_indentless_sequence?)?)* -// ***** * -// BLOCK-END -func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence ::= FLOW-SEQUENCE-START -// -// ******************* -// (flow_sequence_entry FLOW-ENTRY)* -// * ********** -// flow_sequence_entry? -// * -// FLOW-SEQUENCE-END -// ***************** -// -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// * -func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow sequence", context_mark, - "did not find expected ',' or ']'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - implicit: true, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - skip_token(parser) - return true - } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - - skip_token(parser) - return true -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// *** * -func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - mark := token.end_mark - skip_token(parser) - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// ***** * -func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// -// * -func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? - } - return true -} - -// Parse the productions: -// flow_mapping ::= FLOW-MAPPING-START -// -// ****************** -// (flow_mapping_entry FLOW-ENTRY)* -// * ********** -// flow_mapping_entry? -// ****************** -// FLOW-MAPPING-END -// **************** -// -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// - *** * -func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow mapping", context_mark, - "did not find expected ',' or '}'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } else { - parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true -} - -// Parse the productions: -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// - ***** * -func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { - token := peek_token(parser) - if token == nil { - return false - } - if empty { - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Generate an empty scalar event. -func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: mark, - end_mark: mark, - value: nil, // Empty - implicit: true, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true -} - -var default_tag_directives = []yaml_tag_directive_t{ - {[]byte("!"), []byte("!")}, - {[]byte("!!"), []byte("tag:yaml.org,2002:")}, -} - -// Parse directives. -func yaml_parser_process_directives(parser *yaml_parser_t, - version_directive_ref **yaml_version_directive_t, - tag_directives_ref *[]yaml_tag_directive_t) bool { - - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - - token := peek_token(parser) - if token == nil { - return false - } - - for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { - if version_directive != nil { - yaml_parser_set_parser_error(parser, - "found duplicate %YAML directive", token.start_mark) - return false - } - if token.major != 1 || token.minor != 1 { - yaml_parser_set_parser_error(parser, - "found incompatible YAML document", token.start_mark) - return false - } - version_directive = &yaml_version_directive_t{ - major: token.major, - minor: token.minor, - } - } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { - value := yaml_tag_directive_t{ - handle: token.value, - prefix: token.prefix, - } - if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { - return false - } - tag_directives = append(tag_directives, value) - } - - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - - for i := range default_tag_directives { - if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { - return false - } - } - - if version_directive_ref != nil { - *version_directive_ref = version_directive - } - if tag_directives_ref != nil { - *tag_directives_ref = tag_directives - } - return true -} - -// Append a tag directive to the directives stack. -func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { - for i := range parser.tag_directives { - if bytes.Equal(value.handle, parser.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) - } - } - - // [Go] I suspect the copy is unnecessary. This was likely done - // because there was no way to track ownership of the data. - value_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(value_copy.handle, value.handle) - copy(value_copy.prefix, value.prefix) - parser.tag_directives = append(parser.tag_directives, value_copy) - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v3/readerc.go b/backend/vendor/gopkg.in/yaml.v3/readerc.go deleted file mode 100644 index 56af2453..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/readerc.go +++ /dev/null @@ -1,434 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "io" -) - -// Set the reader error and return 0. -func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { - parser.error = yaml_READER_ERROR - parser.problem = problem - parser.problem_offset = offset - parser.problem_value = value - return false -} - -// Byte order marks. -const ( - bom_UTF8 = "\xef\xbb\xbf" - bom_UTF16LE = "\xff\xfe" - bom_UTF16BE = "\xfe\xff" -) - -// Determine the input stream encoding by checking the BOM symbol. If no BOM is -// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. -func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { - // Ensure that we had enough bytes in the raw buffer. - for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { - if !yaml_parser_update_raw_buffer(parser) { - return false - } - } - - // Determine the encoding. - buf := parser.raw_buffer - pos := parser.raw_buffer_pos - avail := len(buf) - pos - if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { - parser.encoding = yaml_UTF16LE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { - parser.encoding = yaml_UTF16BE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { - parser.encoding = yaml_UTF8_ENCODING - parser.raw_buffer_pos += 3 - parser.offset += 3 - } else { - parser.encoding = yaml_UTF8_ENCODING - } - return true -} - -// Update the raw buffer. -func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { - size_read := 0 - - // Return if the raw buffer is full. - if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { - return true - } - - // Return on EOF. - if parser.eof { - return true - } - - // Move the remaining bytes in the raw buffer to the beginning. - if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { - copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) - } - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] - parser.raw_buffer_pos = 0 - - // Call the read handler to fill the buffer. - size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] - if err == io.EOF { - parser.eof = true - } else if err != nil { - return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) - } - return true -} - -// Ensure that the buffer contains at least `length` characters. -// Return true on success, false on failure. -// -// The length is supposed to be significantly less that the buffer size. -func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { - if parser.read_handler == nil { - panic("read handler must be set") - } - - // [Go] This function was changed to guarantee the requested length size at EOF. - // The fact we need to do this is pretty awful, but the description above implies - // for that to be the case, and there are tests - - // If the EOF flag is set and the raw buffer is empty, do nothing. - if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { - // [Go] ACTUALLY! Read the documentation of this function above. - // This is just broken. To return true, we need to have the - // given length in the buffer. Not doing that means every single - // check that calls this function to make sure the buffer has a - // given length is Go) panicking; or C) accessing invalid memory. - //return true - } - - // Return if the buffer contains enough characters. - if parser.unread >= length { - return true - } - - // Determine the input encoding if it is not known yet. - if parser.encoding == yaml_ANY_ENCODING { - if !yaml_parser_determine_encoding(parser) { - return false - } - } - - // Move the unread characters to the beginning of the buffer. - buffer_len := len(parser.buffer) - if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { - copy(parser.buffer, parser.buffer[parser.buffer_pos:]) - buffer_len -= parser.buffer_pos - parser.buffer_pos = 0 - } else if parser.buffer_pos == buffer_len { - buffer_len = 0 - parser.buffer_pos = 0 - } - - // Open the whole buffer for writing, and cut it before returning. - parser.buffer = parser.buffer[:cap(parser.buffer)] - - // Fill the buffer until it has enough characters. - first := true - for parser.unread < length { - - // Fill the raw buffer if necessary. - if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { - if !yaml_parser_update_raw_buffer(parser) { - parser.buffer = parser.buffer[:buffer_len] - return false - } - } - first = false - - // Decode the raw buffer. - inner: - for parser.raw_buffer_pos != len(parser.raw_buffer) { - var value rune - var width int - - raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos - - // Decode the next character. - switch parser.encoding { - case yaml_UTF8_ENCODING: - // Decode a UTF-8 character. Check RFC 3629 - // (http://www.ietf.org/rfc/rfc3629.txt) for more details. - // - // The following table (taken from the RFC) is used for - // decoding. - // - // Char. number range | UTF-8 octet sequence - // (hexadecimal) | (binary) - // --------------------+------------------------------------ - // 0000 0000-0000 007F | 0xxxxxxx - // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - // - // Additionally, the characters in the range 0xD800-0xDFFF - // are prohibited as they are reserved for use with UTF-16 - // surrogate pairs. - - // Determine the length of the UTF-8 sequence. - octet := parser.raw_buffer[parser.raw_buffer_pos] - switch { - case octet&0x80 == 0x00: - width = 1 - case octet&0xE0 == 0xC0: - width = 2 - case octet&0xF0 == 0xE0: - width = 3 - case octet&0xF8 == 0xF0: - width = 4 - default: - // The leading octet is invalid. - return yaml_parser_set_reader_error(parser, - "invalid leading UTF-8 octet", - parser.offset, int(octet)) - } - - // Check if the raw buffer contains an incomplete character. - if width > raw_unread { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-8 octet sequence", - parser.offset, -1) - } - break inner - } - - // Decode the leading octet. - switch { - case octet&0x80 == 0x00: - value = rune(octet & 0x7F) - case octet&0xE0 == 0xC0: - value = rune(octet & 0x1F) - case octet&0xF0 == 0xE0: - value = rune(octet & 0x0F) - case octet&0xF8 == 0xF0: - value = rune(octet & 0x07) - default: - value = 0 - } - - // Check and decode the trailing octets. - for k := 1; k < width; k++ { - octet = parser.raw_buffer[parser.raw_buffer_pos+k] - - // Check if the octet is valid. - if (octet & 0xC0) != 0x80 { - return yaml_parser_set_reader_error(parser, - "invalid trailing UTF-8 octet", - parser.offset+k, int(octet)) - } - - // Decode the octet. - value = (value << 6) + rune(octet&0x3F) - } - - // Check the length of the sequence against the value. - switch { - case width == 1: - case width == 2 && value >= 0x80: - case width == 3 && value >= 0x800: - case width == 4 && value >= 0x10000: - default: - return yaml_parser_set_reader_error(parser, - "invalid length of a UTF-8 sequence", - parser.offset, -1) - } - - // Check the range of the value. - if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { - return yaml_parser_set_reader_error(parser, - "invalid Unicode character", - parser.offset, int(value)) - } - - case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: - var low, high int - if parser.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - low, high = 1, 0 - } - - // The UTF-16 encoding is not as simple as one might - // naively think. Check RFC 2781 - // (http://www.ietf.org/rfc/rfc2781.txt). - // - // Normally, two subsequent bytes describe a Unicode - // character. However a special technique (called a - // surrogate pair) is used for specifying character - // values larger than 0xFFFF. - // - // A surrogate pair consists of two pseudo-characters: - // high surrogate area (0xD800-0xDBFF) - // low surrogate area (0xDC00-0xDFFF) - // - // The following formulas are used for decoding - // and encoding characters using surrogate pairs: - // - // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) - // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) - // W1 = 110110yyyyyyyyyy - // W2 = 110111xxxxxxxxxx - // - // where U is the character value, W1 is the high surrogate - // area, W2 is the low surrogate area. - - // Check for incomplete UTF-16 character. - if raw_unread < 2 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 character", - parser.offset, -1) - } - break inner - } - - // Get the character. - value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) - - // Check for unexpected low surrogate area. - if value&0xFC00 == 0xDC00 { - return yaml_parser_set_reader_error(parser, - "unexpected low surrogate area", - parser.offset, int(value)) - } - - // Check for a high surrogate area. - if value&0xFC00 == 0xD800 { - width = 4 - - // Check for incomplete surrogate pair. - if raw_unread < 4 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 surrogate pair", - parser.offset, -1) - } - break inner - } - - // Get the next character. - value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) - - // Check for a low surrogate area. - if value2&0xFC00 != 0xDC00 { - return yaml_parser_set_reader_error(parser, - "expected low surrogate area", - parser.offset+2, int(value2)) - } - - // Generate the value of the surrogate pair. - value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) - } else { - width = 2 - } - - default: - panic("impossible") - } - - // Check if the character is in the allowed range: - // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) - // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) - // | [#x10000-#x10FFFF] (32 bit) - switch { - case value == 0x09: - case value == 0x0A: - case value == 0x0D: - case value >= 0x20 && value <= 0x7E: - case value == 0x85: - case value >= 0xA0 && value <= 0xD7FF: - case value >= 0xE000 && value <= 0xFFFD: - case value >= 0x10000 && value <= 0x10FFFF: - default: - return yaml_parser_set_reader_error(parser, - "control characters are not allowed", - parser.offset, int(value)) - } - - // Move the raw pointers. - parser.raw_buffer_pos += width - parser.offset += width - - // Finally put the character into the buffer. - if value <= 0x7F { - // 0000 0000-0000 007F . 0xxxxxxx - parser.buffer[buffer_len+0] = byte(value) - buffer_len += 1 - } else if value <= 0x7FF { - // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) - parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) - buffer_len += 2 - } else if value <= 0xFFFF { - // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) - buffer_len += 3 - } else { - // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) - buffer_len += 4 - } - - parser.unread++ - } - - // On EOF, put NUL into the buffer and return. - if parser.eof { - parser.buffer[buffer_len] = 0 - buffer_len++ - parser.unread++ - break - } - } - // [Go] Read the documentation of this function above. To return true, - // we need to have the given length in the buffer. Not doing that means - // every single check that calls this function to make sure the buffer - // has a given length is Go) panicking; or C) accessing invalid memory. - // This happens here due to the EOF above breaking early. - for buffer_len < length { - parser.buffer[buffer_len] = 0 - buffer_len++ - } - parser.buffer = parser.buffer[:buffer_len] - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v3/resolve.go b/backend/vendor/gopkg.in/yaml.v3/resolve.go deleted file mode 100644 index 64ae8880..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/resolve.go +++ /dev/null @@ -1,326 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package yaml - -import ( - "encoding/base64" - "math" - "regexp" - "strconv" - "strings" - "time" -) - -type resolveMapItem struct { - value interface{} - tag string -} - -var resolveTable = make([]byte, 256) -var resolveMap = make(map[string]resolveMapItem) - -func init() { - t := resolveTable - t[int('+')] = 'S' // Sign - t[int('-')] = 'S' - for _, c := range "0123456789" { - t[int(c)] = 'D' // Digit - } - for _, c := range "yYnNtTfFoO~" { - t[int(c)] = 'M' // In map - } - t[int('.')] = '.' // Float (potentially in map) - - var resolveMapList = []struct { - v interface{} - tag string - l []string - }{ - {true, boolTag, []string{"true", "True", "TRUE"}}, - {false, boolTag, []string{"false", "False", "FALSE"}}, - {nil, nullTag, []string{"", "~", "null", "Null", "NULL"}}, - {math.NaN(), floatTag, []string{".nan", ".NaN", ".NAN"}}, - {math.Inf(+1), floatTag, []string{".inf", ".Inf", ".INF"}}, - {math.Inf(+1), floatTag, []string{"+.inf", "+.Inf", "+.INF"}}, - {math.Inf(-1), floatTag, []string{"-.inf", "-.Inf", "-.INF"}}, - {"<<", mergeTag, []string{"<<"}}, - } - - m := resolveMap - for _, item := range resolveMapList { - for _, s := range item.l { - m[s] = resolveMapItem{item.v, item.tag} - } - } -} - -const ( - nullTag = "!!null" - boolTag = "!!bool" - strTag = "!!str" - intTag = "!!int" - floatTag = "!!float" - timestampTag = "!!timestamp" - seqTag = "!!seq" - mapTag = "!!map" - binaryTag = "!!binary" - mergeTag = "!!merge" -) - -var longTags = make(map[string]string) -var shortTags = make(map[string]string) - -func init() { - for _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} { - ltag := longTag(stag) - longTags[stag] = ltag - shortTags[ltag] = stag - } -} - -const longTagPrefix = "tag:yaml.org,2002:" - -func shortTag(tag string) string { - if strings.HasPrefix(tag, longTagPrefix) { - if stag, ok := shortTags[tag]; ok { - return stag - } - return "!!" + tag[len(longTagPrefix):] - } - return tag -} - -func longTag(tag string) string { - if strings.HasPrefix(tag, "!!") { - if ltag, ok := longTags[tag]; ok { - return ltag - } - return longTagPrefix + tag[2:] - } - return tag -} - -func resolvableTag(tag string) bool { - switch tag { - case "", strTag, boolTag, intTag, floatTag, nullTag, timestampTag: - return true - } - return false -} - -var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`) - -func resolve(tag string, in string) (rtag string, out interface{}) { - tag = shortTag(tag) - if !resolvableTag(tag) { - return tag, in - } - - defer func() { - switch tag { - case "", rtag, strTag, binaryTag: - return - case floatTag: - if rtag == intTag { - switch v := out.(type) { - case int64: - rtag = floatTag - out = float64(v) - return - case int: - rtag = floatTag - out = float64(v) - return - } - } - } - failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) - }() - - // Any data is accepted as a !!str or !!binary. - // Otherwise, the prefix is enough of a hint about what it might be. - hint := byte('N') - if in != "" { - hint = resolveTable[in[0]] - } - if hint != 0 && tag != strTag && tag != binaryTag { - // Handle things we can lookup in a map. - if item, ok := resolveMap[in]; ok { - return item.tag, item.value - } - - // Base 60 floats are a bad idea, were dropped in YAML 1.2, and - // are purposefully unsupported here. They're still quoted on - // the way out for compatibility with other parser, though. - - switch hint { - case 'M': - // We've already checked the map above. - - case '.': - // Not in the map, so maybe a normal float. - floatv, err := strconv.ParseFloat(in, 64) - if err == nil { - return floatTag, floatv - } - - case 'D', 'S': - // Int, float, or timestamp. - // Only try values as a timestamp if the value is unquoted or there's an explicit - // !!timestamp tag. - if tag == "" || tag == timestampTag { - t, ok := parseTimestamp(in) - if ok { - return timestampTag, t - } - } - - plain := strings.Replace(in, "_", "", -1) - intv, err := strconv.ParseInt(plain, 0, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain, 0, 64) - if err == nil { - return intTag, uintv - } - if yamlStyleFloat.MatchString(plain) { - floatv, err := strconv.ParseFloat(plain, 64) - if err == nil { - return floatTag, floatv - } - } - if strings.HasPrefix(plain, "0b") { - intv, err := strconv.ParseInt(plain[2:], 2, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 2, 64) - if err == nil { - return intTag, uintv - } - } else if strings.HasPrefix(plain, "-0b") { - intv, err := strconv.ParseInt("-"+plain[3:], 2, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - } - // Octals as introduced in version 1.2 of the spec. - // Octals from the 1.1 spec, spelled as 0777, are still - // decoded by default in v3 as well for compatibility. - // May be dropped in v4 depending on how usage evolves. - if strings.HasPrefix(plain, "0o") { - intv, err := strconv.ParseInt(plain[2:], 8, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 8, 64) - if err == nil { - return intTag, uintv - } - } else if strings.HasPrefix(plain, "-0o") { - intv, err := strconv.ParseInt("-"+plain[3:], 8, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - } - default: - panic("internal error: missing handler for resolver table: " + string(rune(hint)) + " (with " + in + ")") - } - } - return strTag, in -} - -// encodeBase64 encodes s as base64 that is broken up into multiple lines -// as appropriate for the resulting length. -func encodeBase64(s string) string { - const lineLen = 70 - encLen := base64.StdEncoding.EncodedLen(len(s)) - lines := encLen/lineLen + 1 - buf := make([]byte, encLen*2+lines) - in := buf[0:encLen] - out := buf[encLen:] - base64.StdEncoding.Encode(in, []byte(s)) - k := 0 - for i := 0; i < len(in); i += lineLen { - j := i + lineLen - if j > len(in) { - j = len(in) - } - k += copy(out[k:], in[i:j]) - if lines > 1 { - out[k] = '\n' - k++ - } - } - return string(out[:k]) -} - -// This is a subset of the formats allowed by the regular expression -// defined at http://yaml.org/type/timestamp.html. -var allowedTimestampFormats = []string{ - "2006-1-2T15:4:5.999999999Z07:00", // RCF3339Nano with short date fields. - "2006-1-2t15:4:5.999999999Z07:00", // RFC3339Nano with short date fields and lower-case "t". - "2006-1-2 15:4:5.999999999", // space separated with no time zone - "2006-1-2", // date only - // Notable exception: time.Parse cannot handle: "2001-12-14 21:59:43.10 -5" - // from the set of examples. -} - -// parseTimestamp parses s as a timestamp string and -// returns the timestamp and reports whether it succeeded. -// Timestamp formats are defined at http://yaml.org/type/timestamp.html -func parseTimestamp(s string) (time.Time, bool) { - // TODO write code to check all the formats supported by - // http://yaml.org/type/timestamp.html instead of using time.Parse. - - // Quick check: all date formats start with YYYY-. - i := 0 - for ; i < len(s); i++ { - if c := s[i]; c < '0' || c > '9' { - break - } - } - if i != 4 || i == len(s) || s[i] != '-' { - return time.Time{}, false - } - for _, format := range allowedTimestampFormats { - if t, err := time.Parse(format, s); err == nil { - return t, true - } - } - return time.Time{}, false -} diff --git a/backend/vendor/gopkg.in/yaml.v3/scannerc.go b/backend/vendor/gopkg.in/yaml.v3/scannerc.go deleted file mode 100644 index 30b1f089..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/scannerc.go +++ /dev/null @@ -1,3040 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" - "fmt" -) - -// Introduction -// ************ -// -// The following notes assume that you are familiar with the YAML specification -// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in -// some cases we are less restrictive that it requires. -// -// The process of transforming a YAML stream into a sequence of events is -// divided on two steps: Scanning and Parsing. -// -// The Scanner transforms the input stream into a sequence of tokens, while the -// parser transform the sequence of tokens produced by the Scanner into a -// sequence of parsing events. -// -// The Scanner is rather clever and complicated. The Parser, on the contrary, -// is a straightforward implementation of a recursive-descendant parser (or, -// LL(1) parser, as it is usually called). -// -// Actually there are two issues of Scanning that might be called "clever", the -// rest is quite straightforward. The issues are "block collection start" and -// "simple keys". Both issues are explained below in details. -// -// Here the Scanning step is explained and implemented. We start with the list -// of all the tokens produced by the Scanner together with short descriptions. -// -// Now, tokens: -// -// STREAM-START(encoding) # The stream start. -// STREAM-END # The stream end. -// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. -// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. -// DOCUMENT-START # '---' -// DOCUMENT-END # '...' -// BLOCK-SEQUENCE-START # Indentation increase denoting a block -// BLOCK-MAPPING-START # sequence or a block mapping. -// BLOCK-END # Indentation decrease. -// FLOW-SEQUENCE-START # '[' -// FLOW-SEQUENCE-END # ']' -// BLOCK-SEQUENCE-START # '{' -// BLOCK-SEQUENCE-END # '}' -// BLOCK-ENTRY # '-' -// FLOW-ENTRY # ',' -// KEY # '?' or nothing (simple keys). -// VALUE # ':' -// ALIAS(anchor) # '*anchor' -// ANCHOR(anchor) # '&anchor' -// TAG(handle,suffix) # '!handle!suffix' -// SCALAR(value,style) # A scalar. -// -// The following two tokens are "virtual" tokens denoting the beginning and the -// end of the stream: -// -// STREAM-START(encoding) -// STREAM-END -// -// We pass the information about the input stream encoding with the -// STREAM-START token. -// -// The next two tokens are responsible for tags: -// -// VERSION-DIRECTIVE(major,minor) -// TAG-DIRECTIVE(handle,prefix) -// -// Example: -// -// %YAML 1.1 -// %TAG ! !foo -// %TAG !yaml! tag:yaml.org,2002: -// --- -// -// The correspoding sequence of tokens: -// -// STREAM-START(utf-8) -// VERSION-DIRECTIVE(1,1) -// TAG-DIRECTIVE("!","!foo") -// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") -// DOCUMENT-START -// STREAM-END -// -// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole -// line. -// -// The document start and end indicators are represented by: -// -// DOCUMENT-START -// DOCUMENT-END -// -// Note that if a YAML stream contains an implicit document (without '---' -// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be -// produced. -// -// In the following examples, we present whole documents together with the -// produced tokens. -// -// 1. An implicit document: -// -// 'a scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// STREAM-END -// -// 2. An explicit document: -// -// --- -// 'a scalar' -// ... -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// SCALAR("a scalar",single-quoted) -// DOCUMENT-END -// STREAM-END -// -// 3. Several documents in a stream: -// -// 'a scalar' -// --- -// 'another scalar' -// --- -// 'yet another scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// DOCUMENT-START -// SCALAR("another scalar",single-quoted) -// DOCUMENT-START -// SCALAR("yet another scalar",single-quoted) -// STREAM-END -// -// We have already introduced the SCALAR token above. The following tokens are -// used to describe aliases, anchors, tag, and scalars: -// -// ALIAS(anchor) -// ANCHOR(anchor) -// TAG(handle,suffix) -// SCALAR(value,style) -// -// The following series of examples illustrate the usage of these tokens: -// -// 1. A recursive sequence: -// -// &A [ *A ] -// -// Tokens: -// -// STREAM-START(utf-8) -// ANCHOR("A") -// FLOW-SEQUENCE-START -// ALIAS("A") -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A tagged scalar: -// -// !!float "3.14" # A good approximation. -// -// Tokens: -// -// STREAM-START(utf-8) -// TAG("!!","float") -// SCALAR("3.14",double-quoted) -// STREAM-END -// -// 3. Various scalar styles: -// -// --- # Implicit empty plain scalars do not produce tokens. -// --- a plain scalar -// --- 'a single-quoted scalar' -// --- "a double-quoted scalar" -// --- |- -// a literal scalar -// --- >- -// a folded -// scalar -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// DOCUMENT-START -// SCALAR("a plain scalar",plain) -// DOCUMENT-START -// SCALAR("a single-quoted scalar",single-quoted) -// DOCUMENT-START -// SCALAR("a double-quoted scalar",double-quoted) -// DOCUMENT-START -// SCALAR("a literal scalar",literal) -// DOCUMENT-START -// SCALAR("a folded scalar",folded) -// STREAM-END -// -// Now it's time to review collection-related tokens. We will start with -// flow collections: -// -// FLOW-SEQUENCE-START -// FLOW-SEQUENCE-END -// FLOW-MAPPING-START -// FLOW-MAPPING-END -// FLOW-ENTRY -// KEY -// VALUE -// -// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and -// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' -// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the -// indicators '?' and ':', which are used for denoting mapping keys and values, -// are represented by the KEY and VALUE tokens. -// -// The following examples show flow collections: -// -// 1. A flow sequence: -// -// [item 1, item 2, item 3] -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-SEQUENCE-START -// SCALAR("item 1",plain) -// FLOW-ENTRY -// SCALAR("item 2",plain) -// FLOW-ENTRY -// SCALAR("item 3",plain) -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A flow mapping: -// -// { -// a simple key: a value, # Note that the KEY token is produced. -// ? a complex key: another value, -// } -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// FLOW-ENTRY -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// FLOW-ENTRY -// FLOW-MAPPING-END -// STREAM-END -// -// A simple key is a key which is not denoted by the '?' indicator. Note that -// the Scanner still produce the KEY token whenever it encounters a simple key. -// -// For scanning block collections, the following tokens are used (note that we -// repeat KEY and VALUE here): -// -// BLOCK-SEQUENCE-START -// BLOCK-MAPPING-START -// BLOCK-END -// BLOCK-ENTRY -// KEY -// VALUE -// -// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation -// increase that precedes a block collection (cf. the INDENT token in Python). -// The token BLOCK-END denote indentation decrease that ends a block collection -// (cf. the DEDENT token in Python). However YAML has some syntax pecularities -// that makes detections of these tokens more complex. -// -// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators -// '-', '?', and ':' correspondingly. -// -// The following examples show how the tokens BLOCK-SEQUENCE-START, -// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: -// -// 1. Block sequences: -// -// - item 1 -// - item 2 -// - -// - item 3.1 -// - item 3.2 -// - -// key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 3.1",plain) -// BLOCK-ENTRY -// SCALAR("item 3.2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Block mappings: -// -// a simple key: a value # The KEY token is produced here. -// ? a complex key -// : another value -// a mapping: -// key 1: value 1 -// key 2: value 2 -// a sequence: -// - item 1 -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// KEY -// SCALAR("a mapping",plain) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML does not always require to start a new block collection from a new -// line. If the current line contains only '-', '?', and ':' indicators, a new -// block collection may start at the current line. The following examples -// illustrate this case: -// -// 1. Collections in a sequence: -// -// - - item 1 -// - item 2 -// - key 1: value 1 -// key 2: value 2 -// - ? complex key -// : complex value -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("complex key") -// VALUE -// SCALAR("complex value") -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Collections in a mapping: -// -// ? a sequence -// : - item 1 -// - item 2 -// ? a mapping -// : key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// KEY -// SCALAR("a mapping",plain) -// VALUE -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML also permits non-indented sequences if they are included into a block -// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: -// -// key: -// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key",plain) -// VALUE -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// - -// Ensure that the buffer contains the required number of characters. -// Return true on success, false on failure (reader error or memory error). -func cache(parser *yaml_parser_t, length int) bool { - // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) - return parser.unread >= length || yaml_parser_update_buffer(parser, length) -} - -// Advance the buffer pointer. -func skip(parser *yaml_parser_t) { - if !is_blank(parser.buffer, parser.buffer_pos) { - parser.newlines = 0 - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) -} - -func skip_line(parser *yaml_parser_t) { - if is_crlf(parser.buffer, parser.buffer_pos) { - parser.mark.index += 2 - parser.mark.column = 0 - parser.mark.line++ - parser.unread -= 2 - parser.buffer_pos += 2 - parser.newlines++ - } else if is_break(parser.buffer, parser.buffer_pos) { - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) - parser.newlines++ - } -} - -// Copy a character to a string buffer and advance pointers. -func read(parser *yaml_parser_t, s []byte) []byte { - if !is_blank(parser.buffer, parser.buffer_pos) { - parser.newlines = 0 - } - w := width(parser.buffer[parser.buffer_pos]) - if w == 0 { - panic("invalid character sequence") - } - if len(s) == 0 { - s = make([]byte, 0, 32) - } - if w == 1 && len(s)+w <= cap(s) { - s = s[:len(s)+1] - s[len(s)-1] = parser.buffer[parser.buffer_pos] - parser.buffer_pos++ - } else { - s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) - parser.buffer_pos += w - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - return s -} - -// Copy a line break character to a string buffer and advance pointers. -func read_line(parser *yaml_parser_t, s []byte) []byte { - buf := parser.buffer - pos := parser.buffer_pos - switch { - case buf[pos] == '\r' && buf[pos+1] == '\n': - // CR LF . LF - s = append(s, '\n') - parser.buffer_pos += 2 - parser.mark.index++ - parser.unread-- - case buf[pos] == '\r' || buf[pos] == '\n': - // CR|LF . LF - s = append(s, '\n') - parser.buffer_pos += 1 - case buf[pos] == '\xC2' && buf[pos+1] == '\x85': - // NEL . LF - s = append(s, '\n') - parser.buffer_pos += 2 - case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): - // LS|PS . LS|PS - s = append(s, buf[parser.buffer_pos:pos+3]...) - parser.buffer_pos += 3 - default: - return s - } - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.newlines++ - return s -} - -// Get the next token. -func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { - // Erase the token object. - *token = yaml_token_t{} // [Go] Is this necessary? - - // No tokens after STREAM-END or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR { - return true - } - - // Ensure that the tokens queue contains enough tokens. - if !parser.token_available { - if !yaml_parser_fetch_more_tokens(parser) { - return false - } - } - - // Fetch the next token from the queue. - *token = parser.tokens[parser.tokens_head] - parser.tokens_head++ - parser.tokens_parsed++ - parser.token_available = false - - if token.typ == yaml_STREAM_END_TOKEN { - parser.stream_end_produced = true - } - return true -} - -// Set the scanner error and return false. -func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { - parser.error = yaml_SCANNER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = parser.mark - return false -} - -func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { - context := "while parsing a tag" - if directive { - context = "while parsing a %TAG directive" - } - return yaml_parser_set_scanner_error(parser, context, context_mark, problem) -} - -func trace(args ...interface{}) func() { - pargs := append([]interface{}{"+++"}, args...) - fmt.Println(pargs...) - pargs = append([]interface{}{"---"}, args...) - return func() { fmt.Println(pargs...) } -} - -// Ensure that the tokens queue contains at least one token which can be -// returned to the Parser. -func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { - // While we need more tokens to fetch, do it. - for { - // [Go] The comment parsing logic requires a lookahead of two tokens - // so that foot comments may be parsed in time of associating them - // with the tokens that are parsed before them, and also for line - // comments to be transformed into head comments in some edge cases. - if parser.tokens_head < len(parser.tokens)-2 { - // If a potential simple key is at the head position, we need to fetch - // the next token to disambiguate it. - head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed] - if !ok { - break - } else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok { - return false - } else if !valid { - break - } - } - // Fetch the next token. - if !yaml_parser_fetch_next_token(parser) { - return false - } - } - - parser.token_available = true - return true -} - -// The dispatcher for token fetchers. -func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) { - // Ensure that the buffer is initialized. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we just started scanning. Fetch STREAM-START then. - if !parser.stream_start_produced { - return yaml_parser_fetch_stream_start(parser) - } - - scan_mark := parser.mark - - // Eat whitespaces and comments until we reach the next token. - if !yaml_parser_scan_to_next_token(parser) { - return false - } - - // [Go] While unrolling indents, transform the head comments of prior - // indentation levels observed after scan_start into foot comments at - // the respective indexes. - - // Check the indentation level against the current column. - if !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) { - return false - } - - // Ensure that the buffer contains at least 4 characters. 4 is the length - // of the longest indicators ('--- ' and '... '). - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - // Is it the end of the stream? - if is_z(parser.buffer, parser.buffer_pos) { - return yaml_parser_fetch_stream_end(parser) - } - - // Is it a directive? - if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { - return yaml_parser_fetch_directive(parser) - } - - buf := parser.buffer - pos := parser.buffer_pos - - // Is it the document start indicator? - if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) - } - - // Is it the document end indicator? - if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) - } - - comment_mark := parser.mark - if len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') { - // Associate any following comments with the prior token. - comment_mark = parser.tokens[len(parser.tokens)-1].start_mark - } - defer func() { - if !ok { - return - } - if len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN { - // Sequence indicators alone have no line comments. It becomes - // a head comment for whatever follows. - return - } - if !yaml_parser_scan_line_comment(parser, comment_mark) { - ok = false - return - } - }() - - // Is it the flow sequence start indicator? - if buf[pos] == '[' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) - } - - // Is it the flow mapping start indicator? - if parser.buffer[parser.buffer_pos] == '{' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) - } - - // Is it the flow sequence end indicator? - if parser.buffer[parser.buffer_pos] == ']' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_SEQUENCE_END_TOKEN) - } - - // Is it the flow mapping end indicator? - if parser.buffer[parser.buffer_pos] == '}' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_MAPPING_END_TOKEN) - } - - // Is it the flow entry indicator? - if parser.buffer[parser.buffer_pos] == ',' { - return yaml_parser_fetch_flow_entry(parser) - } - - // Is it the block entry indicator? - if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { - return yaml_parser_fetch_block_entry(parser) - } - - // Is it the key indicator? - if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_key(parser) - } - - // Is it the value indicator? - if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_value(parser) - } - - // Is it an alias? - if parser.buffer[parser.buffer_pos] == '*' { - return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) - } - - // Is it an anchor? - if parser.buffer[parser.buffer_pos] == '&' { - return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) - } - - // Is it a tag? - if parser.buffer[parser.buffer_pos] == '!' { - return yaml_parser_fetch_tag(parser) - } - - // Is it a literal scalar? - if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, true) - } - - // Is it a folded scalar? - if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, false) - } - - // Is it a single-quoted scalar? - if parser.buffer[parser.buffer_pos] == '\'' { - return yaml_parser_fetch_flow_scalar(parser, true) - } - - // Is it a double-quoted scalar? - if parser.buffer[parser.buffer_pos] == '"' { - return yaml_parser_fetch_flow_scalar(parser, false) - } - - // Is it a plain scalar? - // - // A plain scalar may start with any non-blank characters except - // - // '-', '?', ':', ',', '[', ']', '{', '}', - // '#', '&', '*', '!', '|', '>', '\'', '\"', - // '%', '@', '`'. - // - // In the block context (and, for the '-' indicator, in the flow context - // too), it may also start with the characters - // - // '-', '?', ':' - // - // if it is followed by a non-space character. - // - // The last rule is more restrictive than the specification requires. - // [Go] TODO Make this logic more reasonable. - //switch parser.buffer[parser.buffer_pos] { - //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': - //} - if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || - parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || - parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || - (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level == 0 && - (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && - !is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_plain_scalar(parser) - } - - // If we don't determine the token type so far, it is an error. - return yaml_parser_set_scanner_error(parser, - "while scanning for the next token", parser.mark, - "found character that cannot start any token") -} - -func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) { - if !simple_key.possible { - return false, true - } - - // The 1.2 specification says: - // - // "If the ? indicator is omitted, parsing needs to see past the - // implicit key to recognize it as such. To limit the amount of - // lookahead required, the “:” indicator must appear at most 1024 - // Unicode characters beyond the start of the key. In addition, the key - // is restricted to a single line." - // - if simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index { - // Check if the potential simple key to be removed is required. - if simple_key.required { - return false, yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false - return false, true - } - return true, true -} - -// Check if a simple key may start at the current position and add it if -// needed. -func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { - // A simple key is required at the current position if the scanner is in - // the block context and the current column coincides with the indentation - // level. - - required := parser.flow_level == 0 && parser.indent == parser.mark.column - - // - // If the current position may start a simple key, save it. - // - if parser.simple_key_allowed { - simple_key := yaml_simple_key_t{ - possible: true, - required: required, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - } - - if !yaml_parser_remove_simple_key(parser) { - return false - } - parser.simple_keys[len(parser.simple_keys)-1] = simple_key - parser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1 - } - return true -} - -// Remove a potential simple key at the current flow level. -func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { - i := len(parser.simple_keys) - 1 - if parser.simple_keys[i].possible { - // If the key is required, it is an error. - if parser.simple_keys[i].required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", parser.simple_keys[i].mark, - "could not find expected ':'") - } - // Remove the key from the stack. - parser.simple_keys[i].possible = false - delete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number) - } - return true -} - -// max_flow_level limits the flow_level -const max_flow_level = 10000 - -// Increase the flow level and resize the simple key list if needed. -func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { - // Reset the simple key on the next level. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{ - possible: false, - required: false, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - }) - - // Increase the flow level. - parser.flow_level++ - if parser.flow_level > max_flow_level { - return yaml_parser_set_scanner_error(parser, - "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_flow_level)) - } - return true -} - -// Decrease the flow level. -func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { - if parser.flow_level > 0 { - parser.flow_level-- - last := len(parser.simple_keys) - 1 - delete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number) - parser.simple_keys = parser.simple_keys[:last] - } - return true -} - -// max_indents limits the indents stack size -const max_indents = 10000 - -// Push the current indentation level to the stack and set the new level -// the current column is greater than the indentation level. In this case, -// append or insert the specified token into the token queue. -func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - if parser.indent < column { - // Push the current indentation level to the stack and set the new - // indentation level. - parser.indents = append(parser.indents, parser.indent) - parser.indent = column - if len(parser.indents) > max_indents { - return yaml_parser_set_scanner_error(parser, - "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_indents)) - } - - // Create a token and insert it into the queue. - token := yaml_token_t{ - typ: typ, - start_mark: mark, - end_mark: mark, - } - if number > -1 { - number -= parser.tokens_parsed - } - yaml_insert_token(parser, number, &token) - } - return true -} - -// Pop indentation levels from the indents stack until the current level -// becomes less or equal to the column. For each indentation level, append -// the BLOCK-END token. -func yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - block_mark := scan_mark - block_mark.index-- - - // Loop through the indentation levels in the stack. - for parser.indent > column { - - // [Go] Reposition the end token before potential following - // foot comments of parent blocks. For that, search - // backwards for recent comments that were at the same - // indent as the block that is ending now. - stop_index := block_mark.index - for i := len(parser.comments) - 1; i >= 0; i-- { - comment := &parser.comments[i] - - if comment.end_mark.index < stop_index { - // Don't go back beyond the start of the comment/whitespace scan, unless column < 0. - // If requested indent column is < 0, then the document is over and everything else - // is a foot anyway. - break - } - if comment.start_mark.column == parser.indent+1 { - // This is a good match. But maybe there's a former comment - // at that same indent level, so keep searching. - block_mark = comment.start_mark - } - - // While the end of the former comment matches with - // the start of the following one, we know there's - // nothing in between and scanning is still safe. - stop_index = comment.scan_mark.index - } - - // Create a token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_END_TOKEN, - start_mark: block_mark, - end_mark: block_mark, - } - yaml_insert_token(parser, -1, &token) - - // Pop the indentation level. - parser.indent = parser.indents[len(parser.indents)-1] - parser.indents = parser.indents[:len(parser.indents)-1] - } - return true -} - -// Initialize the scanner and produce the STREAM-START token. -func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { - - // Set the initial indentation. - parser.indent = -1 - - // Initialize the simple key stack. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) - - parser.simple_keys_by_tok = make(map[int]int) - - // A simple key is allowed at the beginning of the stream. - parser.simple_key_allowed = true - - // We have started. - parser.stream_start_produced = true - - // Create the STREAM-START token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_START_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - encoding: parser.encoding, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the STREAM-END token and shut down the scanner. -func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { - - // Force new line. - if parser.mark.column != 0 { - parser.mark.column = 0 - parser.mark.line++ - } - - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the STREAM-END token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. -func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. - token := yaml_token_t{} - if !yaml_parser_scan_directive(parser, &token) { - return false - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the DOCUMENT-START or DOCUMENT-END token. -func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Consume the token. - start_mark := parser.mark - - skip(parser) - skip(parser) - skip(parser) - - end_mark := parser.mark - - // Create the DOCUMENT-START or DOCUMENT-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. -func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { - - // The indicators '[' and '{' may start a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // Increase the flow level. - if !yaml_parser_increase_flow_level(parser) { - return false - } - - // A simple key may follow the indicators '[' and '{'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. -func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset any potential simple key on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Decrease the flow level. - if !yaml_parser_decrease_flow_level(parser) { - return false - } - - // No simple keys after the indicators ']' and '}'. - parser.simple_key_allowed = false - - // Consume the token. - - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-ENTRY token. -func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after ','. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_FLOW_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the BLOCK-ENTRY token. -func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { - // Check if the scanner is in the block context. - if parser.flow_level == 0 { - // Check if we are allowed to start a new entry. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "block sequence entries are not allowed in this context") - } - // Add the BLOCK-SEQUENCE-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { - return false - } - } else { - // It is an error for the '-' indicator to occur in the flow context, - // but we let the Parser detect and report about it because the Parser - // is able to point to the context. - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '-'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the BLOCK-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the KEY token. -func yaml_parser_fetch_key(parser *yaml_parser_t) bool { - - // In the block context, additional checks are required. - if parser.flow_level == 0 { - // Check if we are allowed to start a new key (not nessesary simple). - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping keys are not allowed in this context") - } - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '?' in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the KEY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the VALUE token. -func yaml_parser_fetch_value(parser *yaml_parser_t) bool { - - simple_key := &parser.simple_keys[len(parser.simple_keys)-1] - - // Have we found a simple key? - if valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok { - return false - - } else if valid { - - // Create the KEY token and insert it into the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: simple_key.mark, - end_mark: simple_key.mark, - } - yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) - - // In the block context, we may need to add the BLOCK-MAPPING-START token. - if !yaml_parser_roll_indent(parser, simple_key.mark.column, - simple_key.token_number, - yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { - return false - } - - // Remove the simple key. - simple_key.possible = false - delete(parser.simple_keys_by_tok, simple_key.token_number) - - // A simple key cannot follow another simple key. - parser.simple_key_allowed = false - - } else { - // The ':' indicator follows a complex key. - - // In the block context, extra checks are required. - if parser.flow_level == 0 { - - // Check if we are allowed to start a complex value. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping values are not allowed in this context") - } - - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Simple keys after ':' are allowed in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - } - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the VALUE token and append it to the queue. - token := yaml_token_t{ - typ: yaml_VALUE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the ALIAS or ANCHOR token. -func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // An anchor or an alias could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow an anchor or an alias. - parser.simple_key_allowed = false - - // Create the ALIAS or ANCHOR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_anchor(parser, &token, typ) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the TAG token. -func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { - // A tag could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a tag. - parser.simple_key_allowed = false - - // Create the TAG token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_tag(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. -func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { - // Remove any potential simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // A simple key may follow a block scalar. - parser.simple_key_allowed = true - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_block_scalar(parser, &token, literal) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. -func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_flow_scalar(parser, &token, single) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,plain) token. -func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_plain_scalar(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Eat whitespaces and comments until the next token is found. -func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { - - scan_mark := parser.mark - - // Until the next token is not found. - for { - // Allow the BOM mark to start a line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { - skip(parser) - } - - // Eat whitespaces. - // Tabs are allowed: - // - in the flow context - // - in the block context, but not at the beginning of the line or - // after '-', '?', or ':' (complex value). - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if we just had a line comment under a sequence entry that - // looks more like a header to the following content. Similar to this: - // - // - # The comment - // - Some data - // - // If so, transform the line comment to a head comment and reposition. - if len(parser.comments) > 0 && len(parser.tokens) > 1 { - tokenA := parser.tokens[len(parser.tokens)-2] - tokenB := parser.tokens[len(parser.tokens)-1] - comment := &parser.comments[len(parser.comments)-1] - if tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) { - // If it was in the prior line, reposition so it becomes a - // header of the follow up token. Otherwise, keep it in place - // so it becomes a header of the former. - comment.head = comment.line - comment.line = nil - if comment.start_mark.line == parser.mark.line-1 { - comment.token_mark = parser.mark - } - } - } - - // Eat a comment until a line break. - if parser.buffer[parser.buffer_pos] == '#' { - if !yaml_parser_scan_comments(parser, scan_mark) { - return false - } - } - - // If it is a line break, eat it. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - - // In the block context, a new line may start a simple key. - if parser.flow_level == 0 { - parser.simple_key_allowed = true - } - } else { - break // We have found a token. - } - } - - return true -} - -// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { - // Eat '%'. - start_mark := parser.mark - skip(parser) - - // Scan the directive name. - var name []byte - if !yaml_parser_scan_directive_name(parser, start_mark, &name) { - return false - } - - // Is it a YAML directive? - if bytes.Equal(name, []byte("YAML")) { - // Scan the VERSION directive value. - var major, minor int8 - if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { - return false - } - end_mark := parser.mark - - // Create a VERSION-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_VERSION_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - major: major, - minor: minor, - } - - // Is it a TAG directive? - } else if bytes.Equal(name, []byte("TAG")) { - // Scan the TAG directive value. - var handle, prefix []byte - if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { - return false - } - end_mark := parser.mark - - // Create a TAG-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_TAG_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - prefix: prefix, - } - - // Unknown directive. - } else { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unknown directive name") - return false - } - - // Eat the rest of the line including any comments. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - if parser.buffer[parser.buffer_pos] == '#' { - // [Go] Discard this inline comment for the time being. - //if !yaml_parser_scan_line_comment(parser, start_mark) { - // return false - //} - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - return true -} - -// Scan the directive name. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^ -func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { - // Consume the directive name. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - var s []byte - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the name is empty. - if len(s) == 0 { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "could not find expected directive name") - return false - } - - // Check for an blank character after the name. - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unexpected non-alphabetical character") - return false - } - *name = s - return true -} - -// Scan the value of VERSION-DIRECTIVE. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^^^^^^ -func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the major version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { - return false - } - - // Eat '.'. - if parser.buffer[parser.buffer_pos] != '.' { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected digit or '.' character") - } - - skip(parser) - - // Consume the minor version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { - return false - } - return true -} - -const max_number_length = 2 - -// Scan the version number of VERSION-DIRECTIVE. -// -// Scope: -// -// %YAML 1.1 # a comment \n -// ^ -// %YAML 1.1 # a comment \n -// ^ -func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { - - // Repeat while the next character is digit. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var value, length int8 - for is_digit(parser.buffer, parser.buffer_pos) { - // Check if the number is too long. - length++ - if length > max_number_length { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "found extremely long version number") - } - value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the number was present. - if length == 0 { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected version number") - } - *number = value - return true -} - -// Scan the value of a TAG-DIRECTIVE token. -// -// Scope: -// -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { - var handle_value, prefix_value []byte - - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a handle. - if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { - return false - } - - // Expect a whitespace. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blank(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace") - return false - } - - // Eat whitespaces. - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a prefix. - if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { - return false - } - - // Expect a whitespace or line break. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace or line break") - return false - } - - *handle = handle_value - *prefix = prefix_value - return true -} - -func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { - var s []byte - - // Eat the indicator character. - start_mark := parser.mark - skip(parser) - - // Consume the value. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - end_mark := parser.mark - - /* - * Check if length of the anchor is greater than 0 and it is followed by - * a whitespace character or one of the indicators: - * - * '?', ':', ',', ']', '}', '%', '@', '`'. - */ - - if len(s) == 0 || - !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || - parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '`') { - context := "while scanning an alias" - if typ == yaml_ANCHOR_TOKEN { - context = "while scanning an anchor" - } - yaml_parser_set_scanner_error(parser, context, start_mark, - "did not find expected alphabetic or numeric character") - return false - } - - // Create a token. - *token = yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - value: s, - } - - return true -} - -/* - * Scan a TAG token. - */ - -func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { - var handle, suffix []byte - - start_mark := parser.mark - - // Check if the tag is in the canonical form. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - if parser.buffer[parser.buffer_pos+1] == '<' { - // Keep the handle as '' - - // Eat '!<' - skip(parser) - skip(parser) - - // Consume the tag value. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - - // Check for '>' and eat it. - if parser.buffer[parser.buffer_pos] != '>' { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find the expected '>'") - return false - } - - skip(parser) - } else { - // The tag has either the '!suffix' or the '!handle!suffix' form. - - // First, try to scan a handle. - if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { - return false - } - - // Check if it is, indeed, handle. - if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { - // Scan the suffix now. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - } else { - // It wasn't a handle after all. Scan the rest of the tag. - if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { - return false - } - - // Set the handle to '!'. - handle = []byte{'!'} - - // A special case: the '!' tag. Set the handle to '' and the - // suffix to '!'. - if len(suffix) == 0 { - handle, suffix = suffix, handle - } - } - } - - // Check the character which ends the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find expected whitespace or line break") - return false - } - - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_TAG_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - suffix: suffix, - } - return true -} - -// Scan a tag handle. -func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { - // Check the initial '!' character. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] != '!' { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - - var s []byte - - // Copy the '!' character. - s = read(parser, s) - - // Copy all subsequent alphabetical and numerical characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the trailing character is '!' and copy it. - if parser.buffer[parser.buffer_pos] == '!' { - s = read(parser, s) - } else { - // It's either the '!' tag or not really a tag handle. If it's a %TAG - // directive, it's an error. If it's a tag token, it must be a part of URI. - if directive && string(s) != "!" { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - } - - *handle = s - return true -} - -// Scan a tag. -func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { - //size_t length = head ? strlen((char *)head) : 0 - var s []byte - hasTag := len(head) > 0 - - // Copy the head if needed. - // - // Note that we don't copy the leading '!' character. - if len(head) > 1 { - s = append(s, head[1:]...) - } - - // Scan the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // The set of characters that may appear in URI is as follows: - // - // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', - // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', - // '%'. - // [Go] TODO Convert this into more reasonable logic. - for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || - parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || - parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || - parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || - parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || - parser.buffer[parser.buffer_pos] == '%' { - // Check if it is a URI-escape sequence. - if parser.buffer[parser.buffer_pos] == '%' { - if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { - return false - } - } else { - s = read(parser, s) - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - hasTag = true - } - - if !hasTag { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected tag URI") - return false - } - *uri = s - return true -} - -// Decode an URI-escape sequence corresponding to a single UTF-8 character. -func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { - - // Decode the required number of characters. - w := 1024 - for w > 0 { - // Check for a URI-escaped octet. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - - if !(parser.buffer[parser.buffer_pos] == '%' && - is_hex(parser.buffer, parser.buffer_pos+1) && - is_hex(parser.buffer, parser.buffer_pos+2)) { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find URI escaped octet") - } - - // Get the octet. - octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) - - // If it is the leading octet, determine the length of the UTF-8 sequence. - if w == 1024 { - w = width(octet) - if w == 0 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect leading UTF-8 octet") - } - } else { - // Check if the trailing octet is correct. - if octet&0xC0 != 0x80 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect trailing UTF-8 octet") - } - } - - // Copy the octet and move the pointers. - *s = append(*s, octet) - skip(parser) - skip(parser) - skip(parser) - w-- - } - return true -} - -// Scan a block scalar. -func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { - // Eat the indicator '|' or '>'. - start_mark := parser.mark - skip(parser) - - // Scan the additional block scalar indicators. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check for a chomping indicator. - var chomping, increment int - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - // Set the chomping method and eat the indicator. - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - - // Check for an indentation indicator. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_digit(parser.buffer, parser.buffer_pos) { - // Check that the indentation is greater than 0. - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - - // Get the indentation level and eat the indicator. - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - } - - } else if is_digit(parser.buffer, parser.buffer_pos) { - // Do the same as above, but in the opposite order. - - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - } - } - - // Eat whitespaces and comments to the end of the line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.buffer[parser.buffer_pos] == '#' { - if !yaml_parser_scan_line_comment(parser, start_mark) { - return false - } - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - end_mark := parser.mark - - // Set the indentation level if it was specified. - var indent int - if increment > 0 { - if parser.indent >= 0 { - indent = parser.indent + increment - } else { - indent = increment - } - } - - // Scan the leading line breaks and determine the indentation level if needed. - var s, leading_break, trailing_breaks []byte - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - - // Scan the block scalar content. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var leading_blank, trailing_blank bool - for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { - // We are at the beginning of a non-empty line. - - // Is it a trailing whitespace? - trailing_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Check if we need to fold the leading line break. - if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { - // Do we need to join the lines by space? - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } - } else { - s = append(s, leading_break...) - } - leading_break = leading_break[:0] - - // Append the remaining line breaks. - s = append(s, trailing_breaks...) - trailing_breaks = trailing_breaks[:0] - - // Is it a leading whitespace? - leading_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Consume the current line. - for !is_breakz(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - leading_break = read_line(parser, leading_break) - - // Eat the following indentation spaces and line breaks. - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - } - - // Chomp the tail. - if chomping != -1 { - s = append(s, leading_break...) - } - if chomping == 1 { - s = append(s, trailing_breaks...) - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_LITERAL_SCALAR_STYLE, - } - if !literal { - token.style = yaml_FOLDED_SCALAR_STYLE - } - return true -} - -// Scan indentation spaces and line breaks for a block scalar. Determine the -// indentation level if needed. -func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { - *end_mark = parser.mark - - // Eat the indentation spaces and line breaks. - max_indent := 0 - for { - // Eat the indentation spaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.mark.column > max_indent { - max_indent = parser.mark.column - } - - // Check for a tab character messing the indentation. - if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { - return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found a tab character where an indentation space is expected") - } - - // Have we found a non-empty line? - if !is_break(parser.buffer, parser.buffer_pos) { - break - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - // [Go] Should really be returning breaks instead. - *breaks = read_line(parser, *breaks) - *end_mark = parser.mark - } - - // Determine the indentation level if needed. - if *indent == 0 { - *indent = max_indent - if *indent < parser.indent+1 { - *indent = parser.indent + 1 - } - if *indent < 1 { - *indent = 1 - } - } - return true -} - -// Scan a quoted scalar. -func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { - // Eat the left quote. - start_mark := parser.mark - skip(parser) - - // Consume the content of the quoted scalar. - var s, leading_break, trailing_breaks, whitespaces []byte - for { - // Check that there are no document indicators at the beginning of the line. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected document indicator") - return false - } - - // Check for EOF. - if is_z(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected end of stream") - return false - } - - // Consume non-blank characters. - leading_blanks := false - for !is_blankz(parser.buffer, parser.buffer_pos) { - if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { - // Is is an escaped single quote. - s = append(s, '\'') - skip(parser) - skip(parser) - - } else if single && parser.buffer[parser.buffer_pos] == '\'' { - // It is a right single quote. - break - } else if !single && parser.buffer[parser.buffer_pos] == '"' { - // It is a right double quote. - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { - // It is an escaped line break. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - skip(parser) - skip_line(parser) - leading_blanks = true - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' { - // It is an escape sequence. - code_length := 0 - - // Check the escape character. - switch parser.buffer[parser.buffer_pos+1] { - case '0': - s = append(s, 0) - case 'a': - s = append(s, '\x07') - case 'b': - s = append(s, '\x08') - case 't', '\t': - s = append(s, '\x09') - case 'n': - s = append(s, '\x0A') - case 'v': - s = append(s, '\x0B') - case 'f': - s = append(s, '\x0C') - case 'r': - s = append(s, '\x0D') - case 'e': - s = append(s, '\x1B') - case ' ': - s = append(s, '\x20') - case '"': - s = append(s, '"') - case '\'': - s = append(s, '\'') - case '\\': - s = append(s, '\\') - case 'N': // NEL (#x85) - s = append(s, '\xC2') - s = append(s, '\x85') - case '_': // #xA0 - s = append(s, '\xC2') - s = append(s, '\xA0') - case 'L': // LS (#x2028) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA8') - case 'P': // PS (#x2029) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA9') - case 'x': - code_length = 2 - case 'u': - code_length = 4 - case 'U': - code_length = 8 - default: - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found unknown escape character") - return false - } - - skip(parser) - skip(parser) - - // Consume an arbitrary escape code. - if code_length > 0 { - var value int - - // Scan the character value. - if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { - return false - } - for k := 0; k < code_length; k++ { - if !is_hex(parser.buffer, parser.buffer_pos+k) { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "did not find expected hexdecimal number") - return false - } - value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) - } - - // Check the value and write the character. - if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found invalid Unicode character escape code") - return false - } - if value <= 0x7F { - s = append(s, byte(value)) - } else if value <= 0x7FF { - s = append(s, byte(0xC0+(value>>6))) - s = append(s, byte(0x80+(value&0x3F))) - } else if value <= 0xFFFF { - s = append(s, byte(0xE0+(value>>12))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } else { - s = append(s, byte(0xF0+(value>>18))) - s = append(s, byte(0x80+((value>>12)&0x3F))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } - - // Advance the pointer. - for k := 0; k < code_length; k++ { - skip(parser) - } - } - } else { - // It is a non-escaped non-blank character. - s = read(parser, s) - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we are at the end of the scalar. - if single { - if parser.buffer[parser.buffer_pos] == '\'' { - break - } - } else { - if parser.buffer[parser.buffer_pos] == '"' { - break - } - } - - // Consume blank characters. - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Join the whitespaces or fold line breaks. - if leading_blanks { - // Do we need to fold line breaks? - if len(leading_break) > 0 && leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Eat the right quote. - skip(parser) - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_SINGLE_QUOTED_SCALAR_STYLE, - } - if !single { - token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - return true -} - -// Scan a plain scalar. -func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { - - var s, leading_break, trailing_breaks, whitespaces []byte - var leading_blanks bool - var indent = parser.indent + 1 - - start_mark := parser.mark - end_mark := parser.mark - - // Consume the content of the plain scalar. - for { - // Check for a document indicator. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - break - } - - // Check for a comment. - if parser.buffer[parser.buffer_pos] == '#' { - break - } - - // Consume non-blank characters. - for !is_blankz(parser.buffer, parser.buffer_pos) { - - // Check for indicators that may end a plain scalar. - if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level > 0 && - (parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}')) { - break - } - - // Check if we need to join whitespaces and breaks. - if leading_blanks || len(whitespaces) > 0 { - if leading_blanks { - // Do we need to fold line breaks? - if leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - leading_blanks = false - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Copy the character. - s = read(parser, s) - - end_mark = parser.mark - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - // Is it the end? - if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { - break - } - - // Consume blank characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - - // Check for tab characters that abuse indentation. - if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found a tab character that violates indentation") - return false - } - - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check indentation level. - if parser.flow_level == 0 && parser.mark.column < indent { - break - } - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_PLAIN_SCALAR_STYLE, - } - - // Note that we change the 'simple_key_allowed' flag. - if leading_blanks { - parser.simple_key_allowed = true - } - return true -} - -func yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool { - if parser.newlines > 0 { - return true - } - - var start_mark yaml_mark_t - var text []byte - - for peek := 0; peek < 512; peek++ { - if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { - break - } - if is_blank(parser.buffer, parser.buffer_pos+peek) { - continue - } - if parser.buffer[parser.buffer_pos+peek] == '#' { - seen := parser.mark.index + peek - for { - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_breakz(parser.buffer, parser.buffer_pos) { - if parser.mark.index >= seen { - break - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } else if parser.mark.index >= seen { - if len(text) == 0 { - start_mark = parser.mark - } - text = read(parser, text) - } else { - skip(parser) - } - } - } - break - } - if len(text) > 0 { - parser.comments = append(parser.comments, yaml_comment_t{ - token_mark: token_mark, - start_mark: start_mark, - line: text, - }) - } - return true -} - -func yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool { - token := parser.tokens[len(parser.tokens)-1] - - if token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 { - token = parser.tokens[len(parser.tokens)-2] - } - - var token_mark = token.start_mark - var start_mark yaml_mark_t - var next_indent = parser.indent - if next_indent < 0 { - next_indent = 0 - } - - var recent_empty = false - var first_empty = parser.newlines <= 1 - - var line = parser.mark.line - var column = parser.mark.column - - var text []byte - - // The foot line is the place where a comment must start to - // still be considered as a foot of the prior content. - // If there's some content in the currently parsed line, then - // the foot is the line below it. - var foot_line = -1 - if scan_mark.line > 0 { - foot_line = parser.mark.line - parser.newlines + 1 - if parser.newlines == 0 && parser.mark.column > 1 { - foot_line++ - } - } - - var peek = 0 - for ; peek < 512; peek++ { - if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { - break - } - column++ - if is_blank(parser.buffer, parser.buffer_pos+peek) { - continue - } - c := parser.buffer[parser.buffer_pos+peek] - var close_flow = parser.flow_level > 0 && (c == ']' || c == '}') - if close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) { - // Got line break or terminator. - if close_flow || !recent_empty { - if close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) { - // This is the first empty line and there were no empty lines before, - // so this initial part of the comment is a foot of the prior token - // instead of being a head for the following one. Split it up. - // Alternatively, this might also be the last comment inside a flow - // scope, so it must be a footer. - if len(text) > 0 { - if start_mark.column-1 < next_indent { - // If dedented it's unrelated to the prior token. - token_mark = start_mark - } - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: token_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, - foot: text, - }) - scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} - token_mark = scan_mark - text = nil - } - } else { - if len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 { - text = append(text, '\n') - } - } - } - if !is_break(parser.buffer, parser.buffer_pos+peek) { - break - } - first_empty = false - recent_empty = true - column = 0 - line++ - continue - } - - if len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) { - // The comment at the different indentation is a foot of the - // preceding data rather than a head of the upcoming one. - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: token_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, - foot: text, - }) - scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} - token_mark = scan_mark - text = nil - } - - if parser.buffer[parser.buffer_pos+peek] != '#' { - break - } - - if len(text) == 0 { - start_mark = yaml_mark_t{parser.mark.index + peek, line, column} - } else { - text = append(text, '\n') - } - - recent_empty = false - - // Consume until after the consumed comment line. - seen := parser.mark.index + peek - for { - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_breakz(parser.buffer, parser.buffer_pos) { - if parser.mark.index >= seen { - break - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } else if parser.mark.index >= seen { - text = read(parser, text) - } else { - skip(parser) - } - } - - peek = 0 - column = 0 - line = parser.mark.line - next_indent = parser.indent - if next_indent < 0 { - next_indent = 0 - } - } - - if len(text) > 0 { - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: start_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek - 1, line, column}, - head: text, - }) - } - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v3/sorter.go b/backend/vendor/gopkg.in/yaml.v3/sorter.go deleted file mode 100644 index 9210ece7..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/sorter.go +++ /dev/null @@ -1,134 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package yaml - -import ( - "reflect" - "unicode" -) - -type keyList []reflect.Value - -func (l keyList) Len() int { return len(l) } -func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l keyList) Less(i, j int) bool { - a := l[i] - b := l[j] - ak := a.Kind() - bk := b.Kind() - for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { - a = a.Elem() - ak = a.Kind() - } - for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { - b = b.Elem() - bk = b.Kind() - } - af, aok := keyFloat(a) - bf, bok := keyFloat(b) - if aok && bok { - if af != bf { - return af < bf - } - if ak != bk { - return ak < bk - } - return numLess(a, b) - } - if ak != reflect.String || bk != reflect.String { - return ak < bk - } - ar, br := []rune(a.String()), []rune(b.String()) - digits := false - for i := 0; i < len(ar) && i < len(br); i++ { - if ar[i] == br[i] { - digits = unicode.IsDigit(ar[i]) - continue - } - al := unicode.IsLetter(ar[i]) - bl := unicode.IsLetter(br[i]) - if al && bl { - return ar[i] < br[i] - } - if al || bl { - if digits { - return al - } else { - return bl - } - } - var ai, bi int - var an, bn int64 - if ar[i] == '0' || br[i] == '0' { - for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- { - if ar[j] != '0' { - an = 1 - bn = 1 - break - } - } - } - for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { - an = an*10 + int64(ar[ai]-'0') - } - for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { - bn = bn*10 + int64(br[bi]-'0') - } - if an != bn { - return an < bn - } - if ai != bi { - return ai < bi - } - return ar[i] < br[i] - } - return len(ar) < len(br) -} - -// keyFloat returns a float value for v if it is a number/bool -// and whether it is a number/bool or not. -func keyFloat(v reflect.Value) (f float64, ok bool) { - switch v.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return float64(v.Int()), true - case reflect.Float32, reflect.Float64: - return v.Float(), true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return float64(v.Uint()), true - case reflect.Bool: - if v.Bool() { - return 1, true - } - return 0, true - } - return 0, false -} - -// numLess returns whether a < b. -// a and b must necessarily have the same kind. -func numLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return a.Int() < b.Int() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Bool: - return !a.Bool() && b.Bool() - } - panic("not a number") -} diff --git a/backend/vendor/gopkg.in/yaml.v3/writerc.go b/backend/vendor/gopkg.in/yaml.v3/writerc.go deleted file mode 100644 index 266d0b09..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/writerc.go +++ /dev/null @@ -1,48 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -// Set the writer error and return false. -func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_WRITER_ERROR - emitter.problem = problem - return false -} - -// Flush the output buffer. -func yaml_emitter_flush(emitter *yaml_emitter_t) bool { - if emitter.write_handler == nil { - panic("write handler not set") - } - - // Check if the buffer is empty. - if emitter.buffer_pos == 0 { - return true - } - - if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - return true -} diff --git a/backend/vendor/gopkg.in/yaml.v3/yaml.go b/backend/vendor/gopkg.in/yaml.v3/yaml.go deleted file mode 100644 index f0bedf3d..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/yaml.go +++ /dev/null @@ -1,693 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package yaml implements YAML support for the Go language. -// -// Source code and other details for the project are available at GitHub: -// -// https://github.com/go-yaml/yaml -package yaml - -import ( - "errors" - "fmt" - "io" - "reflect" - "strings" - "sync" - "unicode/utf8" -) - -// The Unmarshaler interface may be implemented by types to customize their -// behavior when being unmarshaled from a YAML document. -type Unmarshaler interface { - UnmarshalYAML(value *Node) error -} - -type obsoleteUnmarshaler interface { - UnmarshalYAML(unmarshal func(interface{}) error) error -} - -// The Marshaler interface may be implemented by types to customize their -// behavior when being marshaled into a YAML document. The returned value -// is marshaled in place of the original value implementing Marshaler. -// -// If an error is returned by MarshalYAML, the marshaling procedure stops -// and returns with the provided error. -type Marshaler interface { - MarshalYAML() (interface{}, error) -} - -// Unmarshal decodes the first document found within the in byte slice -// and assigns decoded values into the out value. -// -// Maps and pointers (to a struct, string, int, etc) are accepted as out -// values. If an internal pointer within a struct is not initialized, -// the yaml package will initialize it if necessary for unmarshalling -// the provided data. The out parameter must not be nil. -// -// The type of the decoded values should be compatible with the respective -// values in out. If one or more values cannot be decoded due to a type -// mismatches, decoding continues partially until the end of the YAML -// content, and a *yaml.TypeError is returned with details for all -// missed values. -// -// Struct fields are only unmarshalled if they are exported (have an -// upper case first letter), and are unmarshalled using the field name -// lowercased as the default key. Custom keys may be defined via the -// "yaml" name in the field tag: the content preceding the first comma -// is used as the key, and the following comma-separated options are -// used to tweak the marshalling process (see Marshal). -// Conflicting names result in a runtime error. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// var t T -// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) -// -// See the documentation of Marshal for the format of tags and a list of -// supported tag options. -func Unmarshal(in []byte, out interface{}) (err error) { - return unmarshal(in, out, false) -} - -// A Decoder reads and decodes YAML values from an input stream. -type Decoder struct { - parser *parser - knownFields bool -} - -// NewDecoder returns a new decoder that reads from r. -// -// The decoder introduces its own buffering and may read -// data from r beyond the YAML values requested. -func NewDecoder(r io.Reader) *Decoder { - return &Decoder{ - parser: newParserFromReader(r), - } -} - -// KnownFields ensures that the keys in decoded mappings to -// exist as fields in the struct being decoded into. -func (dec *Decoder) KnownFields(enable bool) { - dec.knownFields = enable -} - -// Decode reads the next YAML-encoded value from its input -// and stores it in the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (dec *Decoder) Decode(v interface{}) (err error) { - d := newDecoder() - d.knownFields = dec.knownFields - defer handleErr(&err) - node := dec.parser.parse() - if node == nil { - return io.EOF - } - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(node, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Decode decodes the node and stores its data into the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (n *Node) Decode(v interface{}) (err error) { - d := newDecoder() - defer handleErr(&err) - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(n, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -func unmarshal(in []byte, out interface{}, strict bool) (err error) { - defer handleErr(&err) - d := newDecoder() - p := newParser(in) - defer p.destroy() - node := p.parse() - if node != nil { - v := reflect.ValueOf(out) - if v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - d.unmarshal(node, v) - } - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Marshal serializes the value provided into a YAML document. The structure -// of the generated document will reflect the structure of the value itself. -// Maps and pointers (to struct, string, int, etc) are accepted as the in value. -// -// Struct fields are only marshalled if they are exported (have an upper case -// first letter), and are marshalled using the field name lowercased as the -// default key. Custom keys may be defined via the "yaml" name in the field -// tag: the content preceding the first comma is used as the key, and the -// following comma-separated options are used to tweak the marshalling process. -// Conflicting names result in a runtime error. -// -// The field tag format accepted is: -// -// `(...) yaml:"[][,[,]]" (...)` -// -// The following flags are currently supported: -// -// omitempty Only include the field if it's not set to the zero -// value for the type or to empty slices or maps. -// Zero valued structs will be omitted if all their public -// fields are zero, unless they implement an IsZero -// method (see the IsZeroer interface type), in which -// case the field will be excluded if IsZero returns true. -// -// flow Marshal using a flow style (useful for structs, -// sequences and maps). -// -// inline Inline the field, which must be a struct or a map, -// causing all of its fields or keys to be processed as if -// they were part of the outer struct. For maps, keys must -// not conflict with the yaml keys of other struct fields. -// -// In addition, if the key is "-", the field is ignored. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" -// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" -func Marshal(in interface{}) (out []byte, err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(in)) - e.finish() - out = e.out - return -} - -// An Encoder writes YAML values to an output stream. -type Encoder struct { - encoder *encoder -} - -// NewEncoder returns a new encoder that writes to w. -// The Encoder should be closed after use to flush all data -// to w. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - encoder: newEncoderWithWriter(w), - } -} - -// Encode writes the YAML encoding of v to the stream. -// If multiple items are encoded to the stream, the -// second and subsequent document will be preceded -// with a "---" document separator, but the first will not. -// -// See the documentation for Marshal for details about the conversion of Go -// values to YAML. -func (e *Encoder) Encode(v interface{}) (err error) { - defer handleErr(&err) - e.encoder.marshalDoc("", reflect.ValueOf(v)) - return nil -} - -// Encode encodes value v and stores its representation in n. -// -// See the documentation for Marshal for details about the -// conversion of Go values into YAML. -func (n *Node) Encode(v interface{}) (err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(v)) - e.finish() - p := newParser(e.out) - p.textless = true - defer p.destroy() - doc := p.parse() - *n = *doc.Content[0] - return nil -} - -// SetIndent changes the used indentation used when encoding. -func (e *Encoder) SetIndent(spaces int) { - if spaces < 0 { - panic("yaml: cannot indent to a negative number of spaces") - } - e.encoder.indent = spaces -} - -// Close closes the encoder by writing any remaining data. -// It does not write a stream terminating string "...". -func (e *Encoder) Close() (err error) { - defer handleErr(&err) - e.encoder.finish() - return nil -} - -func handleErr(err *error) { - if v := recover(); v != nil { - if e, ok := v.(yamlError); ok { - *err = e.err - } else { - panic(v) - } - } -} - -type yamlError struct { - err error -} - -func fail(err error) { - panic(yamlError{err}) -} - -func failf(format string, args ...interface{}) { - panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) -} - -// A TypeError is returned by Unmarshal when one or more fields in -// the YAML document cannot be properly decoded into the requested -// types. When this error is returned, the value is still -// unmarshaled partially. -type TypeError struct { - Errors []string -} - -func (e *TypeError) Error() string { - return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) -} - -type Kind uint32 - -const ( - DocumentNode Kind = 1 << iota - SequenceNode - MappingNode - ScalarNode - AliasNode -) - -type Style uint32 - -const ( - TaggedStyle Style = 1 << iota - DoubleQuotedStyle - SingleQuotedStyle - LiteralStyle - FoldedStyle - FlowStyle -) - -// Node represents an element in the YAML document hierarchy. While documents -// are typically encoded and decoded into higher level types, such as structs -// and maps, Node is an intermediate representation that allows detailed -// control over the content being decoded or encoded. -// -// It's worth noting that although Node offers access into details such as -// line numbers, colums, and comments, the content when re-encoded will not -// have its original textual representation preserved. An effort is made to -// render the data plesantly, and to preserve comments near the data they -// describe, though. -// -// Values that make use of the Node type interact with the yaml package in the -// same way any other type would do, by encoding and decoding yaml data -// directly or indirectly into them. -// -// For example: -// -// var person struct { -// Name string -// Address yaml.Node -// } -// err := yaml.Unmarshal(data, &person) -// -// Or by itself: -// -// var person Node -// err := yaml.Unmarshal(data, &person) -type Node struct { - // Kind defines whether the node is a document, a mapping, a sequence, - // a scalar value, or an alias to another node. The specific data type of - // scalar nodes may be obtained via the ShortTag and LongTag methods. - Kind Kind - - // Style allows customizing the apperance of the node in the tree. - Style Style - - // Tag holds the YAML tag defining the data type for the value. - // When decoding, this field will always be set to the resolved tag, - // even when it wasn't explicitly provided in the YAML content. - // When encoding, if this field is unset the value type will be - // implied from the node properties, and if it is set, it will only - // be serialized into the representation if TaggedStyle is used or - // the implicit tag diverges from the provided one. - Tag string - - // Value holds the unescaped and unquoted represenation of the value. - Value string - - // Anchor holds the anchor name for this node, which allows aliases to point to it. - Anchor string - - // Alias holds the node that this alias points to. Only valid when Kind is AliasNode. - Alias *Node - - // Content holds contained nodes for documents, mappings, and sequences. - Content []*Node - - // HeadComment holds any comments in the lines preceding the node and - // not separated by an empty line. - HeadComment string - - // LineComment holds any comments at the end of the line where the node is in. - LineComment string - - // FootComment holds any comments following the node and before empty lines. - FootComment string - - // Line and Column hold the node position in the decoded YAML text. - // These fields are not respected when encoding the node. - Line int - Column int -} - -// IsZero returns whether the node has all of its fields unset. -func (n *Node) IsZero() bool { - return n.Kind == 0 && n.Style == 0 && n.Tag == "" && n.Value == "" && n.Anchor == "" && n.Alias == nil && n.Content == nil && - n.HeadComment == "" && n.LineComment == "" && n.FootComment == "" && n.Line == 0 && n.Column == 0 -} - -// LongTag returns the long form of the tag that indicates the data type for -// the node. If the Tag field isn't explicitly defined, one will be computed -// based on the node properties. -func (n *Node) LongTag() string { - return longTag(n.ShortTag()) -} - -// ShortTag returns the short form of the YAML tag that indicates data type for -// the node. If the Tag field isn't explicitly defined, one will be computed -// based on the node properties. -func (n *Node) ShortTag() string { - if n.indicatedString() { - return strTag - } - if n.Tag == "" || n.Tag == "!" { - switch n.Kind { - case MappingNode: - return mapTag - case SequenceNode: - return seqTag - case AliasNode: - if n.Alias != nil { - return n.Alias.ShortTag() - } - case ScalarNode: - tag, _ := resolve("", n.Value) - return tag - case 0: - // Special case to make the zero value convenient. - if n.IsZero() { - return nullTag - } - } - return "" - } - return shortTag(n.Tag) -} - -func (n *Node) indicatedString() bool { - return n.Kind == ScalarNode && - (shortTag(n.Tag) == strTag || - (n.Tag == "" || n.Tag == "!") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0) -} - -// SetString is a convenience function that sets the node to a string value -// and defines its style in a pleasant way depending on its content. -func (n *Node) SetString(s string) { - n.Kind = ScalarNode - if utf8.ValidString(s) { - n.Value = s - n.Tag = strTag - } else { - n.Value = encodeBase64(s) - n.Tag = binaryTag - } - if strings.Contains(n.Value, "\n") { - n.Style = LiteralStyle - } -} - -// -------------------------------------------------------------------------- -// Maintain a mapping of keys to structure field indexes - -// The code in this section was copied from mgo/bson. - -// structInfo holds details for the serialization of fields of -// a given struct. -type structInfo struct { - FieldsMap map[string]fieldInfo - FieldsList []fieldInfo - - // InlineMap is the number of the field in the struct that - // contains an ,inline map, or -1 if there's none. - InlineMap int - - // InlineUnmarshalers holds indexes to inlined fields that - // contain unmarshaler values. - InlineUnmarshalers [][]int -} - -type fieldInfo struct { - Key string - Num int - OmitEmpty bool - Flow bool - // Id holds the unique field identifier, so we can cheaply - // check for field duplicates without maintaining an extra map. - Id int - - // Inline holds the field index if the field is part of an inlined struct. - Inline []int -} - -var structMap = make(map[reflect.Type]*structInfo) -var fieldMapMutex sync.RWMutex -var unmarshalerType reflect.Type - -func init() { - var v Unmarshaler - unmarshalerType = reflect.ValueOf(&v).Elem().Type() -} - -func getStructInfo(st reflect.Type) (*structInfo, error) { - fieldMapMutex.RLock() - sinfo, found := structMap[st] - fieldMapMutex.RUnlock() - if found { - return sinfo, nil - } - - n := st.NumField() - fieldsMap := make(map[string]fieldInfo) - fieldsList := make([]fieldInfo, 0, n) - inlineMap := -1 - inlineUnmarshalers := [][]int(nil) - for i := 0; i != n; i++ { - field := st.Field(i) - if field.PkgPath != "" && !field.Anonymous { - continue // Private field - } - - info := fieldInfo{Num: i} - - tag := field.Tag.Get("yaml") - if tag == "" && strings.Index(string(field.Tag), ":") < 0 { - tag = string(field.Tag) - } - if tag == "-" { - continue - } - - inline := false - fields := strings.Split(tag, ",") - if len(fields) > 1 { - for _, flag := range fields[1:] { - switch flag { - case "omitempty": - info.OmitEmpty = true - case "flow": - info.Flow = true - case "inline": - inline = true - default: - return nil, errors.New(fmt.Sprintf("unsupported flag %q in tag %q of type %s", flag, tag, st)) - } - } - tag = fields[0] - } - - if inline { - switch field.Type.Kind() { - case reflect.Map: - if inlineMap >= 0 { - return nil, errors.New("multiple ,inline maps in struct " + st.String()) - } - if field.Type.Key() != reflect.TypeOf("") { - return nil, errors.New("option ,inline needs a map with string keys in struct " + st.String()) - } - inlineMap = info.Num - case reflect.Struct, reflect.Ptr: - ftype := field.Type - for ftype.Kind() == reflect.Ptr { - ftype = ftype.Elem() - } - if ftype.Kind() != reflect.Struct { - return nil, errors.New("option ,inline may only be used on a struct or map field") - } - if reflect.PtrTo(ftype).Implements(unmarshalerType) { - inlineUnmarshalers = append(inlineUnmarshalers, []int{i}) - } else { - sinfo, err := getStructInfo(ftype) - if err != nil { - return nil, err - } - for _, index := range sinfo.InlineUnmarshalers { - inlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...)) - } - for _, finfo := range sinfo.FieldsList { - if _, found := fieldsMap[finfo.Key]; found { - msg := "duplicated key '" + finfo.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - if finfo.Inline == nil { - finfo.Inline = []int{i, finfo.Num} - } else { - finfo.Inline = append([]int{i}, finfo.Inline...) - } - finfo.Id = len(fieldsList) - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) - } - } - default: - return nil, errors.New("option ,inline may only be used on a struct or map field") - } - continue - } - - if tag != "" { - info.Key = tag - } else { - info.Key = strings.ToLower(field.Name) - } - - if _, found = fieldsMap[info.Key]; found { - msg := "duplicated key '" + info.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - - info.Id = len(fieldsList) - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - - sinfo = &structInfo{ - FieldsMap: fieldsMap, - FieldsList: fieldsList, - InlineMap: inlineMap, - InlineUnmarshalers: inlineUnmarshalers, - } - - fieldMapMutex.Lock() - structMap[st] = sinfo - fieldMapMutex.Unlock() - return sinfo, nil -} - -// IsZeroer is used to check whether an object is zero to -// determine whether it should be omitted when marshaling -// with the omitempty flag. One notable implementation -// is time.Time. -type IsZeroer interface { - IsZero() bool -} - -func isZero(v reflect.Value) bool { - kind := v.Kind() - if z, ok := v.Interface().(IsZeroer); ok { - if (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() { - return true - } - return z.IsZero() - } - switch kind { - case reflect.String: - return len(v.String()) == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - case reflect.Slice: - return v.Len() == 0 - case reflect.Map: - return v.Len() == 0 - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Struct: - vt := v.Type() - for i := v.NumField() - 1; i >= 0; i-- { - if vt.Field(i).PkgPath != "" { - continue // Private field - } - if !isZero(v.Field(i)) { - return false - } - } - return true - } - return false -} diff --git a/backend/vendor/gopkg.in/yaml.v3/yamlh.go b/backend/vendor/gopkg.in/yaml.v3/yamlh.go deleted file mode 100644 index ddcd5513..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/yamlh.go +++ /dev/null @@ -1,809 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "fmt" - "io" -) - -// The version directive data. -type yaml_version_directive_t struct { - major int8 // The major version number. - minor int8 // The minor version number. -} - -// The tag directive data. -type yaml_tag_directive_t struct { - handle []byte // The tag handle. - prefix []byte // The tag prefix. -} - -type yaml_encoding_t int - -// The stream encoding. -const ( - // Let the parser choose the encoding. - yaml_ANY_ENCODING yaml_encoding_t = iota - - yaml_UTF8_ENCODING // The default UTF-8 encoding. - yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. - yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. -) - -type yaml_break_t int - -// Line break types. -const ( - // Let the parser choose the break type. - yaml_ANY_BREAK yaml_break_t = iota - - yaml_CR_BREAK // Use CR for line breaks (Mac style). - yaml_LN_BREAK // Use LN for line breaks (Unix style). - yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). -) - -type yaml_error_type_t int - -// Many bad things could happen with the parser and emitter. -const ( - // No error is produced. - yaml_NO_ERROR yaml_error_type_t = iota - - yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. - yaml_READER_ERROR // Cannot read or decode the input stream. - yaml_SCANNER_ERROR // Cannot scan the input stream. - yaml_PARSER_ERROR // Cannot parse the input stream. - yaml_COMPOSER_ERROR // Cannot compose a YAML document. - yaml_WRITER_ERROR // Cannot write to the output stream. - yaml_EMITTER_ERROR // Cannot emit a YAML stream. -) - -// The pointer position. -type yaml_mark_t struct { - index int // The position index. - line int // The position line. - column int // The position column. -} - -// Node Styles - -type yaml_style_t int8 - -type yaml_scalar_style_t yaml_style_t - -// Scalar styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0 - - yaml_PLAIN_SCALAR_STYLE yaml_scalar_style_t = 1 << iota // The plain scalar style. - yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. - yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. - yaml_LITERAL_SCALAR_STYLE // The literal scalar style. - yaml_FOLDED_SCALAR_STYLE // The folded scalar style. -) - -type yaml_sequence_style_t yaml_style_t - -// Sequence styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota - - yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. - yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. -) - -type yaml_mapping_style_t yaml_style_t - -// Mapping styles. -const ( - // Let the emitter choose the style. - yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota - - yaml_BLOCK_MAPPING_STYLE // The block mapping style. - yaml_FLOW_MAPPING_STYLE // The flow mapping style. -) - -// Tokens - -type yaml_token_type_t int - -// Token types. -const ( - // An empty token. - yaml_NO_TOKEN yaml_token_type_t = iota - - yaml_STREAM_START_TOKEN // A STREAM-START token. - yaml_STREAM_END_TOKEN // A STREAM-END token. - - yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. - yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. - yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. - yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. - - yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. - yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. - yaml_BLOCK_END_TOKEN // A BLOCK-END token. - - yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. - yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. - yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. - yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. - - yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. - yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. - yaml_KEY_TOKEN // A KEY token. - yaml_VALUE_TOKEN // A VALUE token. - - yaml_ALIAS_TOKEN // An ALIAS token. - yaml_ANCHOR_TOKEN // An ANCHOR token. - yaml_TAG_TOKEN // A TAG token. - yaml_SCALAR_TOKEN // A SCALAR token. -) - -func (tt yaml_token_type_t) String() string { - switch tt { - case yaml_NO_TOKEN: - return "yaml_NO_TOKEN" - case yaml_STREAM_START_TOKEN: - return "yaml_STREAM_START_TOKEN" - case yaml_STREAM_END_TOKEN: - return "yaml_STREAM_END_TOKEN" - case yaml_VERSION_DIRECTIVE_TOKEN: - return "yaml_VERSION_DIRECTIVE_TOKEN" - case yaml_TAG_DIRECTIVE_TOKEN: - return "yaml_TAG_DIRECTIVE_TOKEN" - case yaml_DOCUMENT_START_TOKEN: - return "yaml_DOCUMENT_START_TOKEN" - case yaml_DOCUMENT_END_TOKEN: - return "yaml_DOCUMENT_END_TOKEN" - case yaml_BLOCK_SEQUENCE_START_TOKEN: - return "yaml_BLOCK_SEQUENCE_START_TOKEN" - case yaml_BLOCK_MAPPING_START_TOKEN: - return "yaml_BLOCK_MAPPING_START_TOKEN" - case yaml_BLOCK_END_TOKEN: - return "yaml_BLOCK_END_TOKEN" - case yaml_FLOW_SEQUENCE_START_TOKEN: - return "yaml_FLOW_SEQUENCE_START_TOKEN" - case yaml_FLOW_SEQUENCE_END_TOKEN: - return "yaml_FLOW_SEQUENCE_END_TOKEN" - case yaml_FLOW_MAPPING_START_TOKEN: - return "yaml_FLOW_MAPPING_START_TOKEN" - case yaml_FLOW_MAPPING_END_TOKEN: - return "yaml_FLOW_MAPPING_END_TOKEN" - case yaml_BLOCK_ENTRY_TOKEN: - return "yaml_BLOCK_ENTRY_TOKEN" - case yaml_FLOW_ENTRY_TOKEN: - return "yaml_FLOW_ENTRY_TOKEN" - case yaml_KEY_TOKEN: - return "yaml_KEY_TOKEN" - case yaml_VALUE_TOKEN: - return "yaml_VALUE_TOKEN" - case yaml_ALIAS_TOKEN: - return "yaml_ALIAS_TOKEN" - case yaml_ANCHOR_TOKEN: - return "yaml_ANCHOR_TOKEN" - case yaml_TAG_TOKEN: - return "yaml_TAG_TOKEN" - case yaml_SCALAR_TOKEN: - return "yaml_SCALAR_TOKEN" - } - return "" -} - -// The token structure. -type yaml_token_t struct { - // The token type. - typ yaml_token_type_t - - // The start/end of the token. - start_mark, end_mark yaml_mark_t - - // The stream encoding (for yaml_STREAM_START_TOKEN). - encoding yaml_encoding_t - - // The alias/anchor/scalar value or tag/tag directive handle - // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). - value []byte - - // The tag suffix (for yaml_TAG_TOKEN). - suffix []byte - - // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). - prefix []byte - - // The scalar style (for yaml_SCALAR_TOKEN). - style yaml_scalar_style_t - - // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). - major, minor int8 -} - -// Events - -type yaml_event_type_t int8 - -// Event types. -const ( - // An empty event. - yaml_NO_EVENT yaml_event_type_t = iota - - yaml_STREAM_START_EVENT // A STREAM-START event. - yaml_STREAM_END_EVENT // A STREAM-END event. - yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. - yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. - yaml_ALIAS_EVENT // An ALIAS event. - yaml_SCALAR_EVENT // A SCALAR event. - yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. - yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. - yaml_MAPPING_START_EVENT // A MAPPING-START event. - yaml_MAPPING_END_EVENT // A MAPPING-END event. - yaml_TAIL_COMMENT_EVENT -) - -var eventStrings = []string{ - yaml_NO_EVENT: "none", - yaml_STREAM_START_EVENT: "stream start", - yaml_STREAM_END_EVENT: "stream end", - yaml_DOCUMENT_START_EVENT: "document start", - yaml_DOCUMENT_END_EVENT: "document end", - yaml_ALIAS_EVENT: "alias", - yaml_SCALAR_EVENT: "scalar", - yaml_SEQUENCE_START_EVENT: "sequence start", - yaml_SEQUENCE_END_EVENT: "sequence end", - yaml_MAPPING_START_EVENT: "mapping start", - yaml_MAPPING_END_EVENT: "mapping end", - yaml_TAIL_COMMENT_EVENT: "tail comment", -} - -func (e yaml_event_type_t) String() string { - if e < 0 || int(e) >= len(eventStrings) { - return fmt.Sprintf("unknown event %d", e) - } - return eventStrings[e] -} - -// The event structure. -type yaml_event_t struct { - - // The event type. - typ yaml_event_type_t - - // The start and end of the event. - start_mark, end_mark yaml_mark_t - - // The document encoding (for yaml_STREAM_START_EVENT). - encoding yaml_encoding_t - - // The version directive (for yaml_DOCUMENT_START_EVENT). - version_directive *yaml_version_directive_t - - // The list of tag directives (for yaml_DOCUMENT_START_EVENT). - tag_directives []yaml_tag_directive_t - - // The comments - head_comment []byte - line_comment []byte - foot_comment []byte - tail_comment []byte - - // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). - anchor []byte - - // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - tag []byte - - // The scalar value (for yaml_SCALAR_EVENT). - value []byte - - // Is the document start/end indicator implicit, or the tag optional? - // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). - implicit bool - - // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). - quoted_implicit bool - - // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - style yaml_style_t -} - -func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } -func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } -func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } - -// Nodes - -const ( - yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. - yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. - yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. - yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. - yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. - yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. - - yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. - yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. - - // Not in original libyaml. - yaml_BINARY_TAG = "tag:yaml.org,2002:binary" - yaml_MERGE_TAG = "tag:yaml.org,2002:merge" - - yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. - yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. - yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. -) - -type yaml_node_type_t int - -// Node types. -const ( - // An empty node. - yaml_NO_NODE yaml_node_type_t = iota - - yaml_SCALAR_NODE // A scalar node. - yaml_SEQUENCE_NODE // A sequence node. - yaml_MAPPING_NODE // A mapping node. -) - -// An element of a sequence node. -type yaml_node_item_t int - -// An element of a mapping node. -type yaml_node_pair_t struct { - key int // The key of the element. - value int // The value of the element. -} - -// The node structure. -type yaml_node_t struct { - typ yaml_node_type_t // The node type. - tag []byte // The node tag. - - // The node data. - - // The scalar parameters (for yaml_SCALAR_NODE). - scalar struct { - value []byte // The scalar value. - length int // The length of the scalar value. - style yaml_scalar_style_t // The scalar style. - } - - // The sequence parameters (for YAML_SEQUENCE_NODE). - sequence struct { - items_data []yaml_node_item_t // The stack of sequence items. - style yaml_sequence_style_t // The sequence style. - } - - // The mapping parameters (for yaml_MAPPING_NODE). - mapping struct { - pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). - pairs_start *yaml_node_pair_t // The beginning of the stack. - pairs_end *yaml_node_pair_t // The end of the stack. - pairs_top *yaml_node_pair_t // The top of the stack. - style yaml_mapping_style_t // The mapping style. - } - - start_mark yaml_mark_t // The beginning of the node. - end_mark yaml_mark_t // The end of the node. - -} - -// The document structure. -type yaml_document_t struct { - - // The document nodes. - nodes []yaml_node_t - - // The version directive. - version_directive *yaml_version_directive_t - - // The list of tag directives. - tag_directives_data []yaml_tag_directive_t - tag_directives_start int // The beginning of the tag directives list. - tag_directives_end int // The end of the tag directives list. - - start_implicit int // Is the document start indicator implicit? - end_implicit int // Is the document end indicator implicit? - - // The start/end of the document. - start_mark, end_mark yaml_mark_t -} - -// The prototype of a read handler. -// -// The read handler is called when the parser needs to read more bytes from the -// source. The handler should write not more than size bytes to the buffer. -// The number of written bytes should be set to the size_read variable. -// -// [in,out] data A pointer to an application data specified by -// -// yaml_parser_set_input(). -// -// [out] buffer The buffer to write the data from the source. -// [in] size The size of the buffer. -// [out] size_read The actual number of bytes read from the source. -// -// On success, the handler should return 1. If the handler failed, -// the returned value should be 0. On EOF, the handler should set the -// size_read to 0 and return 1. -type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) - -// This structure holds information about a potential simple key. -type yaml_simple_key_t struct { - possible bool // Is a simple key possible? - required bool // Is a simple key required? - token_number int // The number of the token. - mark yaml_mark_t // The position mark. -} - -// The states of the parser. -type yaml_parser_state_t int - -const ( - yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota - - yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. - yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. - yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. - yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. - yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. - yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. - yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. - yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. - yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. - yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. - yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. - yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. - yaml_PARSE_END_STATE // Expect nothing. -) - -func (ps yaml_parser_state_t) String() string { - switch ps { - case yaml_PARSE_STREAM_START_STATE: - return "yaml_PARSE_STREAM_START_STATE" - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_START_STATE: - return "yaml_PARSE_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return "yaml_PARSE_DOCUMENT_CONTENT_STATE" - case yaml_PARSE_DOCUMENT_END_STATE: - return "yaml_PARSE_DOCUMENT_END_STATE" - case yaml_PARSE_BLOCK_NODE_STATE: - return "yaml_PARSE_BLOCK_NODE_STATE" - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" - case yaml_PARSE_FLOW_NODE_STATE: - return "yaml_PARSE_FLOW_NODE_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" - case yaml_PARSE_END_STATE: - return "yaml_PARSE_END_STATE" - } - return "" -} - -// This structure holds aliases data. -type yaml_alias_data_t struct { - anchor []byte // The anchor. - index int // The node id. - mark yaml_mark_t // The anchor mark. -} - -// The parser structure. -// -// All members are internal. Manage the structure using the -// yaml_parser_ family of functions. -type yaml_parser_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - - problem string // Error description. - - // The byte about which the problem occurred. - problem_offset int - problem_value int - problem_mark yaml_mark_t - - // The error context. - context string - context_mark yaml_mark_t - - // Reader stuff - - read_handler yaml_read_handler_t // Read handler. - - input_reader io.Reader // File input data. - input []byte // String input data. - input_pos int - - eof bool // EOF flag - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - unread int // The number of unread characters in the buffer. - - newlines int // The number of line breaks since last non-break/non-blank character - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The input encoding. - - offset int // The offset of the current position (in bytes). - mark yaml_mark_t // The mark of the current position. - - // Comments - - head_comment []byte // The current head comments - line_comment []byte // The current line comments - foot_comment []byte // The current foot comments - tail_comment []byte // Foot comment that happens at the end of a block. - stem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc) - - comments []yaml_comment_t // The folded comments for all parsed tokens - comments_head int - - // Scanner stuff - - stream_start_produced bool // Have we started to scan the input stream? - stream_end_produced bool // Have we reached the end of the input stream? - - flow_level int // The number of unclosed '[' and '{' indicators. - - tokens []yaml_token_t // The tokens queue. - tokens_head int // The head of the tokens queue. - tokens_parsed int // The number of tokens fetched from the queue. - token_available bool // Does the tokens queue contain a token ready for dequeueing. - - indent int // The current indentation level. - indents []int // The indentation levels stack. - - simple_key_allowed bool // May a simple key occur at the current position? - simple_keys []yaml_simple_key_t // The stack of simple keys. - simple_keys_by_tok map[int]int // possible simple_key indexes indexed by token_number - - // Parser stuff - - state yaml_parser_state_t // The current parser state. - states []yaml_parser_state_t // The parser states stack. - marks []yaml_mark_t // The stack of marks. - tag_directives []yaml_tag_directive_t // The list of TAG directives. - - // Dumper stuff - - aliases []yaml_alias_data_t // The alias data. - - document *yaml_document_t // The currently parsed document. -} - -type yaml_comment_t struct { - scan_mark yaml_mark_t // Position where scanning for comments started - token_mark yaml_mark_t // Position after which tokens will be associated with this comment - start_mark yaml_mark_t // Position of '#' comment mark - end_mark yaml_mark_t // Position where comment terminated - - head []byte - line []byte - foot []byte -} - -// Emitter Definitions - -// The prototype of a write handler. -// -// The write handler is called when the emitter needs to flush the accumulated -// characters to the output. The handler should write @a size bytes of the -// @a buffer to the output. -// -// @param[in,out] data A pointer to an application data specified by -// -// yaml_emitter_set_output(). -// -// @param[in] buffer The buffer with bytes to be written. -// @param[in] size The size of the buffer. -// -// @returns On success, the handler should return @c 1. If the handler failed, -// the returned value should be @c 0. -type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error - -type yaml_emitter_state_t int - -// The emitter states. -const ( - // Expect STREAM-START. - yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota - - yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. - yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE // Expect the next item of a flow sequence, with the comma already written out - yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. - yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE // Expect the next key of a flow mapping, with the comma already written out - yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. - yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. - yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. - yaml_EMIT_END_STATE // Expect nothing. -) - -// The emitter structure. -// -// All members are internal. Manage the structure using the @c yaml_emitter_ -// family of functions. -type yaml_emitter_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - problem string // Error description. - - // Writer stuff - - write_handler yaml_write_handler_t // Write handler. - - output_buffer *[]byte // String output data. - output_writer io.Writer // File output data. - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The stream encoding. - - // Emitter stuff - - canonical bool // If the output is in the canonical style? - best_indent int // The number of indentation spaces. - best_width int // The preferred width of the output lines. - unicode bool // Allow unescaped non-ASCII characters? - line_break yaml_break_t // The preferred line break. - - state yaml_emitter_state_t // The current emitter state. - states []yaml_emitter_state_t // The stack of states. - - events []yaml_event_t // The event queue. - events_head int // The head of the event queue. - - indents []int // The stack of indentation levels. - - tag_directives []yaml_tag_directive_t // The list of tag directives. - - indent int // The current indentation level. - - flow_level int // The current flow level. - - root_context bool // Is it the document root context? - sequence_context bool // Is it a sequence context? - mapping_context bool // Is it a mapping context? - simple_key_context bool // Is it a simple mapping key context? - - line int // The current line. - column int // The current column. - whitespace bool // If the last character was a whitespace? - indention bool // If the last character was an indentation character (' ', '-', '?', ':')? - open_ended bool // If an explicit document end is required? - - space_above bool // Is there's an empty line above? - foot_indent int // The indent used to write the foot comment above, or -1 if none. - - // Anchor analysis. - anchor_data struct { - anchor []byte // The anchor value. - alias bool // Is it an alias? - } - - // Tag analysis. - tag_data struct { - handle []byte // The tag handle. - suffix []byte // The tag suffix. - } - - // Scalar analysis. - scalar_data struct { - value []byte // The scalar value. - multiline bool // Does the scalar contain line breaks? - flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? - block_plain_allowed bool // Can the scalar be expressed in the block plain style? - single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? - block_allowed bool // Can the scalar be expressed in the literal or folded styles? - style yaml_scalar_style_t // The output style. - } - - // Comments - head_comment []byte - line_comment []byte - foot_comment []byte - tail_comment []byte - - key_line_comment []byte - - // Dumper stuff - - opened bool // If the stream was already opened? - closed bool // If the stream was already closed? - - // The information associated with the document nodes. - anchors *struct { - references int // The number of references. - anchor int // The anchor id. - serialized bool // If the node has been emitted? - } - - last_anchor_id int // The last assigned anchor id. - - document *yaml_document_t // The currently emitted document. -} diff --git a/backend/vendor/gopkg.in/yaml.v3/yamlprivateh.go b/backend/vendor/gopkg.in/yaml.v3/yamlprivateh.go deleted file mode 100644 index dea1ba96..00000000 --- a/backend/vendor/gopkg.in/yaml.v3/yamlprivateh.go +++ /dev/null @@ -1,198 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -const ( - // The size of the input raw buffer. - input_raw_buffer_size = 512 - - // The size of the input buffer. - // It should be possible to decode the whole raw buffer. - input_buffer_size = input_raw_buffer_size * 3 - - // The size of the output buffer. - output_buffer_size = 128 - - // The size of the output raw buffer. - // It should be possible to encode the whole output buffer. - output_raw_buffer_size = (output_buffer_size*2 + 2) - - // The size of other stacks and queues. - initial_stack_size = 16 - initial_queue_size = 16 - initial_string_size = 16 -) - -// Check if the character at the specified position is an alphabetical -// character, a digit, '_', or '-'. -func is_alpha(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' -} - -// Check if the character at the specified position is a digit. -func is_digit(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' -} - -// Get the value of a digit. -func as_digit(b []byte, i int) int { - return int(b[i]) - '0' -} - -// Check if the character at the specified position is a hex-digit. -func is_hex(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' -} - -// Get the value of a hex-digit. -func as_hex(b []byte, i int) int { - bi := b[i] - if bi >= 'A' && bi <= 'F' { - return int(bi) - 'A' + 10 - } - if bi >= 'a' && bi <= 'f' { - return int(bi) - 'a' + 10 - } - return int(bi) - '0' -} - -// Check if the character is ASCII. -func is_ascii(b []byte, i int) bool { - return b[i] <= 0x7F -} - -// Check if the character at the start of the buffer can be printed unescaped. -func is_printable(b []byte, i int) bool { - return ((b[i] == 0x0A) || // . == #x0A - (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E - (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF - (b[i] > 0xC2 && b[i] < 0xED) || - (b[i] == 0xED && b[i+1] < 0xA0) || - (b[i] == 0xEE) || - (b[i] == 0xEF && // #xE000 <= . <= #xFFFD - !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF - !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) -} - -// Check if the character at the specified position is NUL. -func is_z(b []byte, i int) bool { - return b[i] == 0x00 -} - -// Check if the beginning of the buffer is a BOM. -func is_bom(b []byte, i int) bool { - return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF -} - -// Check if the character at the specified position is space. -func is_space(b []byte, i int) bool { - return b[i] == ' ' -} - -// Check if the character at the specified position is tab. -func is_tab(b []byte, i int) bool { - return b[i] == '\t' -} - -// Check if the character at the specified position is blank (space or tab). -func is_blank(b []byte, i int) bool { - //return is_space(b, i) || is_tab(b, i) - return b[i] == ' ' || b[i] == '\t' -} - -// Check if the character at the specified position is a line break. -func is_break(b []byte, i int) bool { - return (b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) -} - -func is_crlf(b []byte, i int) bool { - return b[i] == '\r' && b[i+1] == '\n' -} - -// Check if the character is a line break or NUL. -func is_breakz(b []byte, i int) bool { - //return is_break(b, i) || is_z(b, i) - return ( - // is_break: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - // is_z: - b[i] == 0) -} - -// Check if the character is a line break, space, or NUL. -func is_spacez(b []byte, i int) bool { - //return is_space(b, i) || is_breakz(b, i) - return ( - // is_space: - b[i] == ' ' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Check if the character is a line break, space, tab, or NUL. -func is_blankz(b []byte, i int) bool { - //return is_blank(b, i) || is_breakz(b, i) - return ( - // is_blank: - b[i] == ' ' || b[i] == '\t' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Determine the width of the character. -func width(b byte) int { - // Don't replace these by a switch without first - // confirming that it is being inlined. - if b&0x80 == 0x00 { - return 1 - } - if b&0xE0 == 0xC0 { - return 2 - } - if b&0xF0 == 0xE0 { - return 3 - } - if b&0xF8 == 0xF0 { - return 4 - } - return 0 - -} diff --git a/backend/vendor/modules.txt b/backend/vendor/modules.txt deleted file mode 100644 index f53dd888..00000000 --- a/backend/vendor/modules.txt +++ /dev/null @@ -1,234 +0,0 @@ -# github.com/andybalholm/brotli v1.0.1 -## explicit; go 1.12 -github.com/andybalholm/brotli -# github.com/asdine/storm/v3 v3.2.1 -## explicit; go 1.13 -github.com/asdine/storm/v3 -github.com/asdine/storm/v3/codec -github.com/asdine/storm/v3/codec/json -github.com/asdine/storm/v3/index -github.com/asdine/storm/v3/internal -github.com/asdine/storm/v3/q -# github.com/davecgh/go-spew v1.1.1 -## explicit -github.com/davecgh/go-spew/spew -# github.com/disintegration/imaging v1.6.2 -## explicit -github.com/disintegration/imaging -# github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 -## explicit; go 1.9 -github.com/dsnet/compress -github.com/dsnet/compress/bzip2 -github.com/dsnet/compress/bzip2/internal/sais -github.com/dsnet/compress/internal -github.com/dsnet/compress/internal/errors -github.com/dsnet/compress/internal/prefix -# github.com/dsoprea/go-exif/v3 v3.0.1 -## explicit; go 1.12 -github.com/dsoprea/go-exif/v3 -github.com/dsoprea/go-exif/v3/common -github.com/dsoprea/go-exif/v3/undefined -# github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd -## explicit; go 1.13 -github.com/dsoprea/go-logging -# github.com/dsoprea/go-utility/v2 v2.0.0-20221003172846-a3e1774ef349 -## explicit; go 1.12 -github.com/dsoprea/go-utility/v2/filesystem -# github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 -## explicit -github.com/flynn/go-shlex -# github.com/fsnotify/fsnotify v1.6.0 -## explicit; go 1.16 -github.com/fsnotify/fsnotify -# github.com/go-errors/errors v1.4.2 -## explicit; go 1.14 -github.com/go-errors/errors -# github.com/go-ole/go-ole v1.2.6 -## explicit; go 1.12 -github.com/go-ole/go-ole -github.com/go-ole/go-ole/oleutil -# github.com/golang-jwt/jwt/v4 v4.5.0 -## explicit; go 1.16 -github.com/golang-jwt/jwt/v4 -github.com/golang-jwt/jwt/v4/request -# github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 -## explicit; go 1.12 -github.com/golang/geo/r1 -github.com/golang/geo/r2 -github.com/golang/geo/r3 -github.com/golang/geo/s1 -github.com/golang/geo/s2 -# github.com/golang/snappy v0.0.2 -## explicit -github.com/golang/snappy -# github.com/gorilla/mux v1.8.0 -## explicit; go 1.12 -github.com/gorilla/mux -# github.com/gorilla/websocket v1.5.0 -## explicit; go 1.12 -github.com/gorilla/websocket -# github.com/hashicorp/hcl v1.0.0 -## explicit -github.com/hashicorp/hcl -github.com/hashicorp/hcl/hcl/ast -github.com/hashicorp/hcl/hcl/parser -github.com/hashicorp/hcl/hcl/printer -github.com/hashicorp/hcl/hcl/scanner -github.com/hashicorp/hcl/hcl/strconv -github.com/hashicorp/hcl/hcl/token -github.com/hashicorp/hcl/json/parser -github.com/hashicorp/hcl/json/scanner -github.com/hashicorp/hcl/json/token -# github.com/inconshreveable/mousetrap v1.1.0 -## explicit; go 1.18 -github.com/inconshreveable/mousetrap -# github.com/klauspost/compress v1.11.4 -## explicit; go 1.13 -github.com/klauspost/compress/flate -github.com/klauspost/compress/fse -github.com/klauspost/compress/gzip -github.com/klauspost/compress/huff0 -github.com/klauspost/compress/snappy -github.com/klauspost/compress/zip -github.com/klauspost/compress/zstd -github.com/klauspost/compress/zstd/internal/xxhash -# github.com/klauspost/pgzip v1.2.5 -## explicit -github.com/klauspost/pgzip -# github.com/magiconair/properties v1.8.7 -## explicit; go 1.19 -github.com/magiconair/properties -# github.com/maruel/natural v1.1.0 -## explicit; go 1.11 -github.com/maruel/natural -# github.com/marusama/semaphore/v2 v2.5.0 -## explicit; go 1.11 -github.com/marusama/semaphore/v2 -# github.com/mholt/archiver/v3 v3.5.1 -## explicit; go 1.13 -github.com/mholt/archiver/v3 -# github.com/mitchellh/mapstructure v1.5.0 -## explicit; go 1.14 -github.com/mitchellh/mapstructure -# github.com/nwaples/rardecode v1.1.0 -## explicit -github.com/nwaples/rardecode -# github.com/pelletier/go-toml/v2 v2.0.8 -## explicit; go 1.16 -github.com/pelletier/go-toml/v2 -github.com/pelletier/go-toml/v2/internal/characters -github.com/pelletier/go-toml/v2/internal/danger -github.com/pelletier/go-toml/v2/internal/tracker -github.com/pelletier/go-toml/v2/unstable -# github.com/pierrec/lz4/v4 v4.1.2 -## explicit; go 1.14 -github.com/pierrec/lz4/v4 -github.com/pierrec/lz4/v4/internal/lz4block -github.com/pierrec/lz4/v4/internal/lz4errors -github.com/pierrec/lz4/v4/internal/lz4stream -github.com/pierrec/lz4/v4/internal/xxh32 -# github.com/pmezard/go-difflib v1.0.0 -## explicit -github.com/pmezard/go-difflib/difflib -# github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c -## explicit; go 1.14 -github.com/power-devops/perfstat -# github.com/shirou/gopsutil/v3 v3.23.5 -## explicit; go 1.15 -github.com/shirou/gopsutil/v3/disk -github.com/shirou/gopsutil/v3/internal/common -# github.com/spf13/afero v1.9.5 -## explicit; go 1.16 -github.com/spf13/afero -github.com/spf13/afero/internal/common -github.com/spf13/afero/mem -# github.com/spf13/cast v1.5.1 -## explicit; go 1.18 -github.com/spf13/cast -# github.com/spf13/cobra v1.7.0 -## explicit; go 1.15 -github.com/spf13/cobra -# github.com/spf13/jwalterweatherman v1.1.0 -## explicit -github.com/spf13/jwalterweatherman -# github.com/spf13/pflag v1.0.5 -## explicit; go 1.12 -github.com/spf13/pflag -# github.com/spf13/viper v1.16.0 -## explicit; go 1.17 -github.com/spf13/viper -github.com/spf13/viper/internal/encoding -github.com/spf13/viper/internal/encoding/dotenv -github.com/spf13/viper/internal/encoding/hcl -github.com/spf13/viper/internal/encoding/ini -github.com/spf13/viper/internal/encoding/javaproperties -github.com/spf13/viper/internal/encoding/json -github.com/spf13/viper/internal/encoding/toml -github.com/spf13/viper/internal/encoding/yaml -# github.com/stretchr/testify v1.8.4 -## explicit; go 1.20 -github.com/stretchr/testify/assert -github.com/stretchr/testify/require -# github.com/subosito/gotenv v1.4.2 -## explicit; go 1.18 -github.com/subosito/gotenv -# github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce -## explicit -github.com/tomasen/realip -# github.com/ulikunitz/xz v0.5.9 -## explicit; go 1.12 -github.com/ulikunitz/xz -github.com/ulikunitz/xz/internal/hash -github.com/ulikunitz/xz/internal/xlog -github.com/ulikunitz/xz/lzma -# github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 -## explicit -github.com/xi2/xz -# github.com/yusufpapurcu/wmi v1.2.3 -## explicit; go 1.16 -github.com/yusufpapurcu/wmi -# go.etcd.io/bbolt v1.3.7 -## explicit; go 1.17 -go.etcd.io/bbolt -# golang.org/x/crypto v0.10.0 -## explicit; go 1.17 -golang.org/x/crypto/bcrypt -golang.org/x/crypto/blowfish -# golang.org/x/image v0.8.0 -## explicit; go 1.12 -golang.org/x/image/bmp -golang.org/x/image/ccitt -golang.org/x/image/tiff -golang.org/x/image/tiff/lzw -# golang.org/x/net v0.10.0 -## explicit; go 1.17 -golang.org/x/net/context -# golang.org/x/sys v0.9.0 -## explicit; go 1.17 -golang.org/x/sys/internal/unsafeheader -golang.org/x/sys/unix -golang.org/x/sys/windows -golang.org/x/sys/windows/registry -# golang.org/x/text v0.10.0 -## explicit; go 1.17 -golang.org/x/text/cases -golang.org/x/text/internal -golang.org/x/text/internal/language -golang.org/x/text/internal/language/compact -golang.org/x/text/internal/tag -golang.org/x/text/language -golang.org/x/text/runes -golang.org/x/text/transform -golang.org/x/text/unicode/norm -# gopkg.in/ini.v1 v1.67.0 -## explicit -gopkg.in/ini.v1 -# gopkg.in/natefinch/lumberjack.v2 v2.2.1 -## explicit; go 1.13 -gopkg.in/natefinch/lumberjack.v2 -# gopkg.in/yaml.v2 v2.4.0 -## explicit; go 1.15 -gopkg.in/yaml.v2 -# gopkg.in/yaml.v3 v3.0.1 -## explicit -gopkg.in/yaml.v3 diff --git a/frontend/src/components/Search.vue b/frontend/src/components/Search.vue index cc74b2bf..e426bfc9 100644 --- a/frontend/src/components/Search.vue +++ b/frontend/src/components/Search.vue @@ -37,11 +37,12 @@